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 1w2NLc-000EYQ-0J for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Mar 2026 05:52:08 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2NLb-00GDwk-07 for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Mar 2026 05:52:07 +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 1w2NLZ-00GDwb-2q for pgsql-hackers@lists.postgresql.org; Tue, 17 Mar 2026 05:52:06 +0000 Received: from mail-vs1-xe32.google.com ([2607:f8b0:4864:20::e32]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w2NLN-000000008ao-0fNP for pgsql-hackers@lists.postgresql.org; Tue, 17 Mar 2026 05:52:04 +0000 Received: by mail-vs1-xe32.google.com with SMTP id ada2fe7eead31-5ffea5acd19so3242452137.1 for ; Mon, 16 Mar 2026 22:51:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773726714; cv=none; d=google.com; s=arc-20240605; b=HvLmykWv6fSesQ6LQfCAOCz07ghOkZ4wInmJhjjK3aLwf8Tj2DLnnh6x7ySC4GMCan J/O3T+r86qASvvYqgMaHrOO1CMGygwzbgbE6EftIQ9O8ShJd4aSaaqx0hdx72fc2i0Ec 28KkAK7y9Dm9lHt1asqxSzPXrwY/0lk4RhNi3OOHTYq3r4Aq/6hdtkzdueP4AUB8EPcN xk4Rop1w5TDYaM7zj+HDiTFpy6D2zynxFEdPF+kKFYeyft7hrY3BLJgwQ6Ut+BWCJIBI Pb7UE9zBpVpJwvSghwF2HHYF6YzE0tP/JYOYhZNY/vQHGrOMalo0LSwf/f20QrBlo1FU as3g== 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=G7ogoQIFqjQvGYYLvFqmxgnnZ3OUgrZCxLHuM0k8y7w=; fh=ScL0s0fhO+vc3WDYI0CfcRJV3ZmTPR7vkZGl5cbq7y0=; b=KAbsGtLinhgkqwWaQQujUNYbMYVPK8cq9TTykwJbr/NpJ0/mUF5OKEsBgZ5sfj4wUe H9yplJha2I/s//loudYQ2/ln6dRm+Tw6Nb00FSFb309grnv2L+RIJevTlTyVvFQX35dC rT/pIlpK00lb3znnDPIdlLGq64F6PFZkb8NN0lJPYV2vOr5GAmUrS6zDyUO4LvhLj2V+ 9eNxA3FutU/Gm+xY91vqOEDEG12cBG+tO/y5Jf+bvEfsYUAleULYtcOSw6TnJJ1LZAzp Hmj+4HMUyDccJDsllzhiOcE8WtjdwiAkq0qBRW9CkblpMKsOGiJhCVAU7sZIrXQ8lXhb cCpA==; 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=1773726714; x=1774331514; 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=G7ogoQIFqjQvGYYLvFqmxgnnZ3OUgrZCxLHuM0k8y7w=; b=HZxZ7m3PgQnHb30m1+JXlej0w5QTgLyxhkof142ZbQvkzXCu/MgAQdYcRPzp5s2ZQz EGD+HBh9ajvzkicE/9V+0Nq/Mv9qoXaRc6X+Qsu0uh+jO4dBEUc7MNPwyjdg90M3n+Iv jsHM5XU2ZJ7DJ6GADU+OMrv9V9IH0w1v76Pw80JO0U40P2oA5/G0Ub+cE/YIdX8lgJ+A vqKfBNtq+1M7fSALfNJSYxrJ0Eo1Zq7FYvcPmNduR+d65oyyA7MKcc+h1SwM/pMs2omp sEJJL3iVOwvjnaN+OQ+JvE9oDKrj1/e+DN5UasGuYBh+G15lzeD20HOWm6fOoFv/sxZ6 frrg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773726714; x=1774331514; 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=G7ogoQIFqjQvGYYLvFqmxgnnZ3OUgrZCxLHuM0k8y7w=; b=g5eUal+Q4l1VPsvva0kdys6Gl7znv/acpvP3CUJwS7kd46eKFU80hLDEx1ZS7SiSFp AfW/iGuVpWL1irwWBT7oui2uUY9u8c/rB6/llf47bJxrCxqIqMKCJjA4qUJq37nOsOlm Rmt0pSeuSq+skcrUtvRpNVu4ZywL8cDP+qvUGoYpOeiItK7LVNdcEaI4RyS3i5Wms0oC xLxlOpP5DiSADukmUn7qBT7aNFHT83+ooNwi13Jn9eoVnHDvGkIoYoSYE3VEtD5MSktv 9nBGQo6PSLaeLb6CCfedxH4o+vUFivZrfKpK/6QoWmWAFM5WuY36GLdOWpFfk3mzVEX3 C9Sg== X-Forwarded-Encrypted: i=1; AJvYcCVN0gyBcx7y/bQWI/fjN0zdzKtZg3NLAvuqPSfbMCy363ADXsYa3NIjUTojVDkR2ZGVj/KzdjY6//Smpfzc@lists.postgresql.org X-Gm-Message-State: AOJu0YzvU35I6K+Gfo7oXErvxyeg6SvXziQoJ4VgC4VbzsNsAwinn+Pj LYFdsyyu2h/sKDOXRK2RAylI7K2P7cg3RPYsQs09Qfyjr5KAYkjBZfgOcEhJ5Qr/MgsDPefgPe/ dG7XWptp+w6w4b4hKUYN6L/2hlj4k8L0= X-Gm-Gg: ATEYQzwR6XXrO0UkuefUoZpJTCLrdl0HpM6ookECxFUGFml4JfZHKAK8xnxSzrBkGs3 2MU7nrG/GW0A2wbKHc8ksq9IVOjbOlVr33EOOiNvy81zMELoNKITifEa6Ro3wmNjLRUh0cYsOjq KcN+mkCm/H97bRym32v8g6KkWtcurcWeEGOiPfPufws2G9XVJYuoCqKRcyb9fGc4cd7zeyTqprM ft+5t7zGwCe34SZP6VMcxWeYL64+NOR35WOXF5hCjIt+mXhCJ7OBr5SJvigSArjEu7uYJEld6Gy AWMVpGWQ3D46RTVWouZopvPBgjedXgks5kjBnUPT5smQborFKsIBSu6raFZiHrn+WlowV9rmvn5 asH430NRfBtC//mISHIA9nWRT662ev0zAdsB6wPyfG1hl1oqG8MwK4IlysUxabZSyNhih67T6uu T23nAfIgM+TENyS//3NeBM+w== X-Received: by 2002:a05:6102:5094:b0:5ff:d1c8:a847 with SMTP id ada2fe7eead31-6020e50371emr6723498137.26.1773726713850; Mon, 16 Mar 2026 22:51:53 -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: Tue, 17 Mar 2026 13:51:15 +0800 X-Gm-Features: AaiRm52G8L3VN5CBuI64YLEGidC8reSTrPufbb8YNHB0s1zLj4GjTCxq2R-WjnE 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="000000000000b56dfd064d31ee60" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b56dfd064d31ee60 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Mar 16, 2026 at 11:48=E2=80=AFAM Corey Huinker wrote: > > LGTM. Thanks for the review. For the context of v20-0022-CAST-expr-AS-newtype-DEFAULT-expr-ON-CONVERSION-ERROR.patch +/* + * Check type coercion is error safe or not. If not then report error + */ +static void +CoercionErrorSafeCheck(ParseState *pstate, Node *castexpr, Node *source, + Oid inputType, Oid targetType) +{ + Oid inputBaseType; + Oid targetBaseType; + Oid inputElementType; + Oid inputElementBaseType; + Oid targetElementType; + Oid targetElementBaseType; + inputElementType =3D get_element_type(inputType); + + if (OidIsValid(inputElementType)) + inputElementBaseType =3D getBaseType(inputElementType); + else + { + inputBaseType =3D getBaseType(inputType); + inputElementBaseType =3D get_element_type(inputBaseType); + + if (!OidIsValid(inputElementBaseType)) + inputElementBaseType =3D inputBaseType; + } + + targetElementType =3D get_element_type(targetType); + + if (OidIsValid(targetElementType)) + targetElementBaseType =3D getBaseType(targetElementType); + else + { + targetBaseType =3D getBaseType(targetType); + targetElementBaseType =3D get_element_type(targetBaseType); + + if (!OidIsValid(targetElementBaseType)) + targetElementBaseType =3D targetBaseType; + } + + if (inputElementBaseType =3D=3D MONEYOID || + targetElementBaseType =3D=3D MONEYOID || + (inputElementBaseType =3D=3D CIRCLEOID && + targetElementBaseType =3D=3D POLYGONOID)) + { + errorsafe_coercion =3D false; + } + Inspired by https://commitfest.postgresql.org/patch/5759/ I found out the above code is wrong, because it failed to imagine cases like domain over a domain array. for example: CREATE DOMAIN d_int42 as int check (value =3D 42) NOT NULL; CREATE DOMAIN d_int42arr as d_int42[]; CREATE DOMAIN d_int42arr1 as d_int42arr; select typname,typtype, typbasetype::regtype, typelem::regtype from pg_type where typname in ('d_int42', 'd_int42arr', 'd_int42arr1', '_d_int42'); Therefore we need a little bit of recursive to get the base elements type, please check new function: CoercionErrorSafe_Internal in v21-0022. Given the interaction with array and domain coercion, we need to think more about error-safe type casts for user-defined range, multirange, and composi= te types. For now, we should disallow error-safe casting for these types. -- jian https://www.enterprisedb.com/ --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s2c3 RnJvbSBkMGU1MGE0N2Q1MzhiMWNkNjIyMjJlZmQyZGNjYzI3NWMwMTBjM2VhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTIgTWFyIDIwMjYgMDk6MzY6MDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAwMy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdG8gb3RoZXIgdHlwZXMg cGVyCiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVn dHlwZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJv bmFtZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3Rm dW5jIGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSdjaGFyYWN0 ZXInOjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8 ICAgIGNhc3R0YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2Qg fCAgIHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogY2hhcmFjdGVyICB8IHRleHQgICAgICAgICAgICAgIHwgICAgICA0MDEgfCBpICAgICAg ICAgICB8IGYgICAgICAgICAgfCBydHJpbTEgICAgICB8IHRleHQKIGNoYXJhY3RlciAgfCBjaGFy YWN0ZXIgdmFyeWluZyB8ICAgICAgNDAxIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgcnRy aW0xICAgICAgfCB0ZXh0CiBjaGFyYWN0ZXIgIHwgImNoYXIiICAgICAgICAgICAgfCAgICAgIDk0 NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgIHwgY2hhcgogY2hhcmFj dGVyICB8IG5hbWUgICAgICAgICAgICAgIHwgICAgICA0MDkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCBicGNoYXJfbmFtZSB8IG5hbWUKIGNoYXJhY3RlciAgfCB4bWwgICAgICAgICAgICAg ICB8ICAgICAyODk2IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgfCB4 bWwKIGNoYXJhY3RlciAgfCBjaGFyYWN0ZXIgICAgICAgICB8ICAgICAgNjY4IHwgaSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgYnBjaGFyICAgICAgfCBicGNoYXIKKDYgcm93cykKCm9ubHkgdGV4 dHRveG1sLCBicGNoYXIoUEdfRlVOQ1RJT05fQVJHUykgbmVlZCB0YWtlIGNhcmUgb2YgZXJyb3Ig aGFuZGxpbmcuCm90aGVyIGZ1bmN0aW9ucyBhbHJlYWR5IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4 alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMgfCAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmNoYXIu YyAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQveG1sLmMgICAgICAgICAgIHwg MTggKysrKysrKysrKysrLS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy94bWwuaCAgICAgICAgICAg ICAgIHwgIDIgKy0KIDQgZmlsZXMgY2hhbmdlZCwgMTUgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCA2MWZmNWRkYzc0 Yy4uNjljMTdlMDI0ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAt NDU0Niw3ICs0NTQ2LDcgQEAgRXhlY0V2YWxYbWxFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJF dmFsU3RlcCAqb3ApCiAKIAkJCQkqb3AtPnJlc3ZhbHVlID0gUG9pbnRlckdldERhdHVtKHhtbHBh cnNlKGRhdGEsCiAJCQkJCQkJCQkJCQkJCSB4ZXhwci0+eG1sb3B0aW9uLAotCQkJCQkJCQkJCQkJ CQkgcHJlc2VydmVfd2hpdGVzcGFjZSkpOworCQkJCQkJCQkJCQkJCQkgcHJlc2VydmVfd2hpdGVz cGFjZSwgTlVMTCkpOwogCQkJCSpvcC0+cmVzbnVsbCA9IGZhbHNlOwogCQkJfQogCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCBkZjMwNTA5ODEzMC4uNmYwODM5NzNmZTcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtMzA3LDcgKzMwNyw3IEBAIGJwY2hhcihQR19GVU5D VElPTl9BUkdTKQogCQl7CiAJCQlmb3IgKGkgPSBtYXhtYmxlbjsgaSA8IGxlbjsgaSsrKQogCQkJ CWlmIChzW2ldICE9ICcgJykKLQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZv ciB0eXBlIGNoYXJhY3RlciglZCkiLAogCQkJCQkJCQkJbWF4bGVuKSkpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5j CmluZGV4IDc5ZjZjZjdiNGZhLi41MmY0ZjhmYzQ5MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtNjYw LDcgKzY2MCw3IEBAIHRleHR0b3htbChQR19GVU5DVElPTl9BUkdTKQogewogCXRleHQJICAgKmRh dGEgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKIAotCVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShk YXRhLCB4bWxvcHRpb24sIHRydWUpKTsKKwlQR19SRVRVUk5fWE1MX1AoeG1scGFyc2UoZGF0YSwg eG1sb3B0aW9uLCB0cnVlLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0xMDI5LDE5ICsx MDI5LDI1IEBAIHhtbGVsZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAKIAogeG1sdHlwZSAqCi14bWxw YXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2Vy dmVfd2hpdGVzcGFjZSkKK3htbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0 aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpCiB7CiAj aWZkZWYgVVNFX0xJQlhNTAogCXhtbERvY1B0cglkb2M7CiAKIAlkb2MgPSB4bWxfcGFyc2UoZGF0 YSwgeG1sb3B0aW9uX2FyZywgcHJlc2VydmVfd2hpdGVzcGFjZSwKLQkJCQkJR2V0RGF0YWJhc2VF bmNvZGluZygpLCBOVUxMLCBOVUxMLCBOVUxMKTsKLQl4bWxGcmVlRG9jKGRvYyk7CisJCQkJCUdl dERhdGFiYXNlRW5jb2RpbmcoKSwgTlVMTCwgTlVMTCwgZXNjb250ZXh0KTsKKwlpZiAoZG9jKQor CQl4bWxGcmVlRG9jKGRvYyk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiAoeG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQlO T19YTUxfU1VQUE9SVCgpOwotCXJldHVybiBOVUxMOworCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxM LAorCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQllcnJtc2co InVuc3VwcG9ydGVkIFhNTCBmZWF0dXJlIiksCisJCQllcnJkZXRhaWwoIlRoaXMgZnVuY3Rpb25h bGl0eSByZXF1aXJlcyB0aGUgc2VydmVyIHRvIGJlIGJ1aWx0IHdpdGggbGlieG1sIHN1cHBvcnQu IikpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oIGIv c3JjL2luY2x1ZGUvdXRpbHMveG1sLmgKaW5kZXggMDIzZmRlYjQ1MzEuLmNhMjY2ZjQ0OGQ2IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy94bWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGls cy94bWwuaApAQCAtNzMsNyArNzMsNyBAQCBleHRlcm4geG1sdHlwZSAqeG1sY29uY2F0KExpc3Qg KmFyZ3MpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbGVsZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAJCQkJ CQkgICBjb25zdCBEYXR1bSAqbmFtZWRfYXJndmFsdWUsIGNvbnN0IGJvb2wgKm5hbWVkX2FyZ251 bGwsCiAJCQkJCQkgICBjb25zdCBEYXR1bSAqYXJndmFsdWUsIGNvbnN0IGJvb2wgKmFyZ251bGwp OwotZXh0ZXJuIHhtbHR5cGUgKnhtbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1s b3B0aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlKTsKK2V4dGVybiB4bWx0eXBlICp4 bWxwYXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJl c2VydmVfd2hpdGVzcGFjZSwgTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiB4bWx0eXBlICp4bWxw aShjb25zdCBjaGFyICp0YXJnZXQsIHRleHQgKmFyZywgYm9vbCBhcmdfaXNfbnVsbCwgYm9vbCAq cmVzdWx0X2lzX251bGwpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbHJvb3QoeG1sdHlwZSAqZGF0YSwg dGV4dCAqdmVyc2lvbiwgaW50IHN0YW5kYWxvbmUpOwogZXh0ZXJuIGJvb2wgeG1sX2lzX2RvY3Vt ZW50KHhtbHR5cGUgKmFyZyk7Ci0tIAoyLjM0LjEKCg== --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="UTF-8"; name="v21-0022-CAST-expr-AS-newtype-DEFAULT-expr-ON-CONVERSION-ERROR.patch" Content-Disposition: attachment; filename="v21-0022-CAST-expr-AS-newtype-DEFAULT-expr-ON-CONVERSION-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s241 RnJvbSA0MTc3ZmMzYmU4ZjM2MDhkNzFkMGI2ODk3MjFkODQ5Nzg3NDQ1YzM5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTcgTWFyIDIwMjYgMTE6NTE6NTIgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAyMi8yM10gQ0FTVChleHByIEFTIG5ld3R5cGUgREVGQVVMVCBleHByIE9OIENPTlZFUlNJT04K IEVSUk9SKQoKSW50cm9kdWNlIFNRTC1zdGFuZGFyZCBzYWZlIHR5cGUgY2FzdCBzeW50YXg6CiAg ICBDQVNUKGV4cHIgQVMgbmV3dHlwZSBERUZBVUxUIGV4cHIgT04gQ09OVkVSU0lPTiBFUlJPUikK VGhpcyBhbGxvdyB1c2VycyB0byBzcGVjaWZ5IGEgZGVmYXVsdCBmYWxsYmFjayBleHByZXNzaW9u IGlmIGEgdHlwZSBjb252ZXJzaW9uCmZhaWxzLCByYXRoZXIgdGhhbiByYWlzaW5nIGFuIGVycm9y LgoKV2l0aCB0aGlzIHBhdGNoc2V0LCBhbG1vc3QgYWxsIG9mIHRoZSBjYXN0IGZ1bmN0aW9ucyBp biBwZ19jYXN0LmNhc3RmdW5jIGFyZSBub3cKZXJyb3Itc2FmZS4gIENvZXJjZVZpYUlPIGFuZCBD b2VyY2VUb0RvbWFpbiB3ZXJlIGFscmVhZHkgZXJyb3Itc2FmZSBpbiB0aGUgSEVBRCwKc2VlIFsw XSwgdGhpcyBwYXRjaCBleHRlbmRzIGVycm9yLXNhZmUgYmVoYXZpb3IgdG8gQXJyYXlDb2VyY2VF eHByLgoKRXhhbXBsZToKICAgIC0tIFJldHVybnMgJzIwMTEtMDEtMDEnIGluc3RlYWQgb2YgdGhy b3dpbmcgYW4gaW52YWxpZCBpbnB1dCBzeW50YXggZXJyb3IuCiAgICBTRUxFQ1QgQ0FTVCgnMScg QVMgZGF0ZSBERUZBVUxUICcyMDExLTAxLTAxJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKCiMgQnVt cHMgY2F0dmVyc2lvbiByZXF1aXJlZAoKWzBdOiBodHRwczovL2dpdC5wb3N0Z3Jlc3FsLm9yZy9j Z2l0L3Bvc3RncmVzcWwuZ2l0L2NvbW1pdC8/aWQ9YWFhZjk0NDllYzZiZTYyY2IwZDMwZWQzNTg4 ZGMzODRmNTYyNzRiCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpm WTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCmNv bW1pdGZlc3Q6IGh0dHBzOi8vY29tbWl0ZmVzdC5wb3N0Z3Jlc3FsLm9yZy9wYXRjaC81OTQxCi0t LQogY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dCAgICAgICAgICAgIHwgICA1ICsK IGNvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dCAgICAgICAgICB8ICAgNSArCiBj b250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbCAgICAgICAgICAgICAgICAgfCAgIDIgKwogLi4u L3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0ICAgIHwgIDI0ICstCiBjb250 cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbCAgICAgfCAgIDUgKwogZG9jL3Ny Yy9zZ21sL3N5bnRheC5zZ21sICAgICAgICAgICAgICAgICAgICAgIHwgIDMyICsKIHNyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICA2OCArLQogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAgICAgICAgIHwgIDI5ICsKIHNyYy9iYWNrZW5k L2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICAyNyArCiBzcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgNTMgKysKIHNyYy9iYWNrZW5kL29w dGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgICAgICB8ICA1MiArLQogc3JjL2JhY2tlbmQvcGFy c2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDIzICsKIHNyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfY29lcmNlLmMgICAgICAgICAgICAgfCAgNjkgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9leHByLmMgICAgICAgICAgICAgICB8IDQxNyArKysrKysrKy0KIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdHlwZS5jICAgICAgICAgICAgICAgfCAgMTggKwogc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3V0aWxjbWQuYyAgICAgICAgICAgIHwgICAyICstCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvYXJyYXlmdW5jcy5jICAgICAgICAgICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3J1bGV1dGlscy5jICAgICAgICAgICAgIHwgIDI1ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2ZtZ3Iv Zm1nci5jICAgICAgICAgICAgICAgICB8ICAxMyArCiBzcmMvaW5jbHVkZS9leGVjdXRvci9leGVj RXhwci5oICAgICAgICAgICAgICAgfCAgIDcgKwogc3JjL2luY2x1ZGUvZm1nci5oICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5o ICAgICAgICAgICAgICAgICB8ICAyMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgg ICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAg ICAgICAgICAgICAgIHwgIDI1ICsKIHNyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaCAg ICAgICAgICAgICB8ICAgMiArLQogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5oICAg ICAgICAgICAgIHwgIDEzICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggICAgICAg ICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oICAgICAgICAg ICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dCAgICAgICAg ICAgIHwgODYwICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9j cmVhdGVfY2FzdC5vdXQgICAgIHwgICA1ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1 aXZjbGFzcy5vdXQgICAgICB8ICAgNyArCiBzcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVk dWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsICAg ICAgICAgICAgICAgICB8IDM2NiArKysrKysrKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRl X2Nhc3Quc3FsICAgICAgICAgIHwgICAxICsKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2VxdWl2Y2xh c3Muc3FsICAgICAgICAgICB8ICAgMyArCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dCAgICAgICAgICAgICAgfCAgIDIgKwogMzggZmlsZXMgY2hhbmdlZCwgMjE1NyBpbnNlcnRpb25z KCspLCA1NSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2Nhc3Qub3V0CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9z cWwvY2FzdC5zcWwKCmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQu b3V0IGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dAppbmRleCA4YzBiZjU0ZjBm My4uZWNmYWYyYWE4NWEgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4 dC5vdXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dApAQCAtMTAsNiAr MTAsMTEgQEAgV0hFUkUgb3BjLm9pZCA+PSAxNjM4NCBBTkQgTk9UIGFtdmFsaWRhdGUob3BjLm9p ZCk7CiAtLS0tLS0tLSstLS0tLS0tLS0KICgwIHJvd3MpCiAKK1NFTEVDVCBDQVNUKCdhYmMnOjpi cGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJy b3IKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBjaGFyYWN0ZXIgdG8gY2l0ZXh0IHdoZW4gREVG QVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVS Uk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSS4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgU2FmZSB0 eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQuCiAt LSBUZXN0IHRoZSBvcGVyYXRvcnMgYW5kIGluZGV4aW5nIGZ1bmN0aW9ucwogLS0gVGVzdCA9IGFu ZCA8Pi4KIFNFTEVDVCAnYSc6OmNpdGV4dCA9ICdhJzo6Y2l0ZXh0IEFTIHQ7CmRpZmYgLS1naXQg YS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQgYi9jb250cmliL2NpdGV4dC9l eHBlY3RlZC9jaXRleHRfMS5vdXQKaW5kZXggYzVlNWYxODBmMmIuLjNlMTJjZDc5M2FkIDEwMDY0 NAotLS0gYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQKKysrIGIvY29udHJp Yi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CkBAIC0xMCw2ICsxMCwxMSBAQCBXSEVSRSBv cGMub2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lkKTsKIC0tLS0tLS0tKy0t LS0tLS0tLQogKDAgcm93cykKIAorU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBjYW5u b3QgY2FzdCB0eXBlIGNoYXJhY3RlciB0byBjaXRleHQgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24g aXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VM RUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ Li4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNl ci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4KIC0tIFRlc3QgdGhlIG9wZXJh dG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5kIDw+LgogU0VMRUNUICdh Jzo6Y2l0ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0 L3NxbC9jaXRleHQuc3FsIGIvY29udHJpYi9jaXRleHQvc3FsL2NpdGV4dC5zcWwKaW5kZXggYWEx Y2Y5YWJkNWMuLmM4MjBiMGJkNGQ5IDEwMDY0NAotLS0gYS9jb250cmliL2NpdGV4dC9zcWwvY2l0 ZXh0LnNxbAorKysgYi9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbApAQCAtOSw2ICs5LDgg QEAgU0VMRUNUIGFtbmFtZSwgb3BjbmFtZQogRlJPTSBwZ19vcGNsYXNzIG9wYyBMRUZUIEpPSU4g cGdfYW0gYW0gT04gYW0ub2lkID0gb3BjbWV0aG9kCiBXSEVSRSBvcGMub2lkID49IDE2Mzg0IEFO RCBOT1QgYW12YWxpZGF0ZShvcGMub2lkKTsKIAorU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBB UyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorCiAt LSBUZXN0IHRoZSBvcGVyYXRvcnMgYW5kIGluZGV4aW5nIGZ1bmN0aW9ucwogCiAtLSBUZXN0ID0g YW5kIDw+LgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQv c2VsZWN0Lm91dCBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5v dXQKaW5kZXggYTA2OTExOWM3OTAuLjg0ZjEwODEwZjcyIDEwMDY0NAotLS0gYS9jb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0CisrKyBiL2NvbnRyaWIvcGdfc3Rh dF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQKQEAgLTczLDYgKzczLDI1IEBAIFNFTEVD VCAxIEFTICJpbnQiIE9GRlNFVCAyIEZFVENIIEZJUlNUIDMgUk9XIE9OTFk7CiAtLS0tLQogKDAg cm93cykKIAorLS0gZXJyb3Igc2FmZSB0eXBlIGNhc3QKK1NFTEVDVCBDQVNUKCdhJyBBUyBpbnQg REVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0tLS0KKyAgICAyCiso MSByb3cpCisKK1NFTEVDVCBDQVNUKCcxMicgQVMgbnVtZXJpYyBERUZBVUxUIDIgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgbnVtZXJpYyAKKy0tLS0tLS0tLQorICAgICAgMTIKKygxIHJvdykKKwor U0VMRUNUIENBU1QoJzEyJyBBUyBudW1lcmljKDEwKSBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgbnVtZXJpYyAKKy0tLS0tLS0tLQorICAgICAgMTIKKygxIHJvdykKKwogLS0gRElT VElOQ1QgYW5kIE9SREVSIEJZIHBhdHRlcm5zCiAtLSBUcnkgc29tZSBxdWVyeSBwZXJtdXRhdGlv bnMgd2hpY2ggb25jZSBwcm9kdWNlZCBpZGVudGljYWwgcXVlcnkgSURzCiBTRUxFQ1QgRElTVElO Q1QgMSBBUyAiaW50IjsKQEAgLTIyMiw2ICsyNDEsOSBAQCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1 ZXJ5IEZST00gcGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiOwog ICAgICAyIHwgICAgMiB8IFNFTEVDVCAkMSBBUyAiaW50IiBPUkRFUiBCWSAxCiAgICAgIDEgfCAg ICAyIHwgU0VMRUNUICQxIEFTIGkgVU5JT04gU0VMRUNUICQyIE9SREVSIEJZIGkKICAgICAgMSB8 ICAgIDEgfCBTRUxFQ1QgJDEgfHwgJDIKKyAgICAgMSB8ICAgIDEgfCBTRUxFQ1QgQ0FTVCgkMSBB UyBpbnQgREVGQVVMVCAkMiBPTiBDT05WRVJTSU9OIEVSUk9SKQorICAgICAxIHwgICAgMSB8IFNF TEVDVCBDQVNUKCQxIEFTIG51bWVyaWMgREVGQVVMVCAkMiBPTiBDT05WRVJTSU9OIEVSUk9SKQor ICAgICAxIHwgICAgMSB8IFNFTEVDVCBDQVNUKCQxIEFTIG51bWVyaWMoMTApIERFRkFVTFQgJDIg T04gQ09OVkVSU0lPTiBFUlJPUikKICAgICAgMiB8ICAgIDIgfCBTRUxFQ1QgRElTVElOQ1QgJDEg QVMgImludCIKICAgICAgMCB8ICAgIDAgfCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1ZXJ5IEZST00g cGdfc3RhdF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiCiAgICAgIDEgfCAg ICAxIHwgU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5PVCBOVUxMIEFTIHQK QEAgLTIzMCw3ICsyNTIsNyBAQCBTRUxFQ1QgY2FsbHMsIHJvd3MsIHF1ZXJ5IEZST00gcGdfc3Rh dF9zdGF0ZW1lbnRzIE9SREVSIEJZIHF1ZXJ5IENPTExBVEUgIkMiOwogICAgICAgIHwgICAgICB8 ICkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICArCiAgICAgICAgfCAgICAgIHwgICBTRUxFQ1QgZiBGUk9NIHQg T1JERVIgQlkgZgogICAgICAxIHwgICAgMSB8IHNlbGVjdCAkMTo6anNvbmIgPyAkMgotKDE3IHJv d3MpCisoMjAgcm93cykKIAogU0VMRUNUIHBnX3N0YXRfc3RhdGVtZW50c19yZXNldCgpIElTIE5P VCBOVUxMIEFTIHQ7CiAgdCAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRz L3NxbC9zZWxlY3Quc3FsIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5z cWwKaW5kZXggYTEwZDYxOGMwMzQuLjRiZTk3OTc3YmE2IDEwMDY0NAotLS0gYS9jb250cmliL3Bn X3N0YXRfc3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbAorKysgYi9jb250cmliL3BnX3N0YXRfc3Rh dGVtZW50cy9zcWwvc2VsZWN0LnNxbApAQCAtMjUsNiArMjUsMTEgQEAgU0VMRUNUIDEgQVMgImlu dCIgTElNSVQgMyBPRkZTRVQgMzsKIFNFTEVDVCAxIEFTICJpbnQiIE9GRlNFVCAxIEZFVENIIEZJ UlNUIDIgUk9XIE9OTFk7CiBTRUxFQ1QgMSBBUyAiaW50IiBPRkZTRVQgMiBGRVRDSCBGSVJTVCAz IFJPVyBPTkxZOwogCistLSBlcnJvciBzYWZlIHR5cGUgY2FzdAorU0VMRUNUIENBU1QoJ2EnIEFT IGludCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTInIEFT IG51bWVyaWMgREVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzEy JyBBUyBudW1lcmljKDEwKSBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKIC0tIERJ U1RJTkNUIGFuZCBPUkRFUiBCWSBwYXR0ZXJucwogLS0gVHJ5IHNvbWUgcXVlcnkgcGVybXV0YXRp b25zIHdoaWNoIG9uY2UgcHJvZHVjZWQgaWRlbnRpY2FsIHF1ZXJ5IElEcwogU0VMRUNUIERJU1RJ TkNUIDEgQVMgImludCI7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwgYi9k b2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKaW5kZXggNjc0ODI5OTY4NjEuLjRhYmQ1ZTY3MWFlIDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3N5 bnRheC5zZ21sCkBAIC0yMDcxLDYgKzIwNzEsMTAgQEAgQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHBy ZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPgog ICAgIFRoZSA8bGl0ZXJhbD5DQVNUPC9saXRlcmFsPiBzeW50YXggY29uZm9ybXMgdG8gU1FMOyB0 aGUgc3ludGF4IHdpdGgKICAgICA8bGl0ZXJhbD46OjwvbGl0ZXJhbD4gaXMgaGlzdG9yaWNhbCA8 cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+CiAgICAgdXNhZ2UuCisgICAgVGhl IGVxdWl2YWxlbnQgT04gQ09OVkVSU0lPTiBFUlJPUiBiZWhhdmlvciBpczoKKzxzeW5vcHNpcz4K K0NBU1QgKCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNl YWJsZT50eXBlPC9yZXBsYWNlYWJsZT4gRVJST1IgT04gQ09OVkVSU0lPTiBFUlJPUiApCis8L3N5 bm9wc2lzPgogICAgPC9wYXJhPgogCiAgICA8cGFyYT4KQEAgLTIxMjUsNiArMjEyOSwzNCBAQCBD QVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFjZWFi bGU+dHlwZTwvcmVwbGFjZWFibGU+CiAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1jcmVhdGVjYXN0 Ii8+LgogICAgIDwvcGFyYT4KICAgIDwvbm90ZT4KKworIDxzZWN0MyBpZD0ic3FsLXN5bnRheC10 eXBlLWNhc3RzLXNhZmUiPgorICA8dGl0bGU+U2FmZSBUeXBlIENhc3Q8L3RpdGxlPgorICAgPHBh cmE+CisgICAgQSB0eXBlIGNhc3QgbWF5IG9jY2FzaW9uYWxseSBmYWlsLiBUbyBndWFyZCBhZ2Fp bnN0IHN1Y2ggZmFpbHVyZXMsIHlvdSBjYW4KKyAgICBwcm92aWRlIGFuIDxsaXRlcmFsPk9OIENP TlZFUlNJT04gRVJST1I8L2xpdGVyYWw+IGNsYXVzZSB0byBoYW5kbGUgcG90ZW50aWFsIGVycm9y cy4KKyAgICBUaGUgc3ludGF4IGZvciBzYWZlIHR5cGUgY2FzdCBpczoKKzxzeW5vcHNpcz4KK0NB U1QgKCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJs ZT50eXBlPC9yZXBsYWNlYWJsZT4gREVGQVVMVCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVw bGFjZWFibGU+IE9OIENPTlZFUlNJT04gRVJST1IgKQorPC9zeW5vcHNpcz4KKyAgICBJZiB0aGUg dHlwZSBjYXN0IGZhaWxzLCBhbiBlcnJvciBpcyBub3QgcmFpc2VkLiAgSW5zdGVhZCwgZXZhbHVh dGlvbiBmYWxscworICAgIGJhY2sgdG8gdGhlIGRlZmF1bHQgPHJlcGxhY2VhYmxlPmV4cHJlc3Np b248L3JlcGxhY2VhYmxlPiBzcGVjaWZpZWQgaW4gdGhlCisgICAgPGxpdGVyYWw+T04gQ09OVkVS U0lPTiBFUlJPUjwvbGl0ZXJhbD4gY2xhdXNlLgorICAgIEF0IHByZXNlbnQsIHRoaXMgb25seSBz dXBwb3J0IGJ1aWx0LWluIHR5cGUgY2FzdHMsIHNlZSA8eHJlZiBsaW5rZW5kPSJjYXRhbG9nLXBn LWNhc3QiLz4uCisgICAgVXNlci1kZWZpbmVkIHR5cGUgY2FzdHMgY3JlYXRlZCB3aXRoIDxsaW5r IGxpbmtlbmQ9InNxbC1jcmVhdGVjYXN0Ij5DUkVBVEUgQ0FTVDwvbGluaz4KKyAgICBhcmUgbm90 IHN1cHBvcnRlZC4KKyAgPC9wYXJhPgorCisgICAgPHBhcmE+CisgICAgU29tZSBleGFtcGxlczoK KzxzY3JlZW4+CitTRUxFQ1QgQ0FTVChURVhUICdlcnJvcicgQVMgaW50ZWdlciBERUZBVUxUIDMg T04gQ09OVkVSU0lPTiBFUlJPUik7Cis8bGluZWFubm90YXRpb24+UmVzdWx0OiA8L2xpbmVhbm5v dGF0aW9uPjxjb21wdXRlcm91dHB1dD4zPC9jb21wdXRlcm91dHB1dD4KK1NFTEVDVCBDQVNUKFRF WFQgJ2Vycm9yJyBBUyBudW1lcmljIERFRkFVTFQgMS4xIE9OIENPTlZFUlNJT04gRVJST1IpOwor PGxpbmVhbm5vdGF0aW9uPlJlc3VsdDogPC9saW5lYW5ub3RhdGlvbj48Y29tcHV0ZXJvdXRwdXQ+ MS4xPC9jb21wdXRlcm91dHB1dD4KKzwvc2NyZWVuPgorICAgIDwvcGFyYT4KKyAgPC9zZWN0Mz4K ICAgPC9zZWN0Mj4KIAogICA8c2VjdDIgaWQ9InNxbC1zeW50YXgtY29sbGF0ZS1leHBycyI+CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHIuYwppbmRleCBiZDQ2Yjc1ZTQ5OC4uYzkyNGU3YjEyM2YgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHIuYwpAQCAtOTksNiArOTksOSBAQCBzdGF0aWMgdm9pZCBFeGVjQnVp bGRBZ2dUcmFuc0NhbGwoRXhwclN0YXRlICpzdGF0ZSwgQWdnU3RhdGUgKmFnZ3N0YXRlLAogc3Rh dGljIHZvaWQgRXhlY0luaXRKc29uRXhwcihKc29uRXhwciAqanNleHByLCBFeHByU3RhdGUgKnN0 YXRlLAogCQkJCQkJCSBEYXR1bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKIAkJCQkJCQkgRXhwckV2 YWxTdGVwICpzY3JhdGNoKTsKK3N0YXRpYyB2b2lkIEV4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcihT YWZlVHlwZUNhc3RFeHByICpzdGNleHByLCBFeHByU3RhdGUgKnN0YXRlLAorCQkJCQkJCQkJIERh dHVtICpyZXN2LCBib29sICpyZXNudWxsLAorCQkJCQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRj aCk7CiBzdGF0aWMgdm9pZCBFeGVjSW5pdEpzb25Db2VyY2lvbihFeHByU3RhdGUgKnN0YXRlLCBK c29uUmV0dXJuaW5nICpyZXR1cm5pbmcsCiAJCQkJCQkJCSBFcnJvclNhdmVDb250ZXh0ICplc2Nv bnRleHQsIGJvb2wgb21pdF9xdW90ZXMsCiAJCQkJCQkJCSBib29sIGV4aXN0c19jb2VyY2UsCkBA IC0xNzM0LDYgKzE3MzcsNyBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRl ICpzdGF0ZSwKIAogCQkJCWVsZW1zdGF0ZS0+aW5uZXJtb3N0X2Nhc2V2YWwgPSBwYWxsb2Nfb2Jq ZWN0KERhdHVtKTsKIAkJCQllbGVtc3RhdGUtPmlubmVybW9zdF9jYXNlbnVsbCA9IHBhbGxvY19v YmplY3QoYm9vbCk7CisJCQkJZWxlbXN0YXRlLT5lc2NvbnRleHQgPSBzdGF0ZS0+ZXNjb250ZXh0 OwogCiAJCQkJRXhlY0luaXRFeHByUmVjKGFjb2VyY2UtPmVsZW1leHByLCBlbGVtc3RhdGUsCiAJ CQkJCQkJCSZlbGVtc3RhdGUtPnJlc3ZhbHVlLCAmZWxlbXN0YXRlLT5yZXNudWxsKTsKQEAgLTIy MDksNiArMjIxMywxNSBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpz dGF0ZSwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJ CXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICpzdGNleHByID0gY2FzdE5vZGUoU2FmZVR5cGVDYXN0 RXhwciwgbm9kZSk7CisKKwkJCQlFeGVjSW5pdFNhZmVUeXBlQ2FzdEV4cHIoc3RjZXhwciwgc3Rh dGUsIHJlc3YsIHJlc251bGwsICZzY3JhdGNoKTsKKworCQkJCWJyZWFrOworCQkJfQorCiAJCWNh c2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJQ29hbGVzY2VFeHByICpjb2FsZXNjZSA9IChD b2FsZXNjZUV4cHIgKikgbm9kZTsKQEAgLTI3NjksNyArMjc4Miw4IEBAIEV4ZWNJbml0RnVuYyhF eHByRXZhbFN0ZXAgKnNjcmF0Y2gsIEV4cHIgKm5vZGUsIExpc3QgKmFyZ3MsIE9pZCBmdW5jaWQs CiAKIAkvKiBJbml0aWFsaXplIGZ1bmN0aW9uIGNhbGwgcGFyYW1ldGVyIHN0cnVjdHVyZSB0b28g Ki8KIAlJbml0RnVuY3Rpb25DYWxsSW5mb0RhdGEoKmZjaW5mbywgZmxpbmZvLAotCQkJCQkJCSBu YXJncywgaW5wdXRjb2xsaWQsIE5VTEwsIE5VTEwpOworCQkJCQkJCSBuYXJncywgaW5wdXRjb2xs aWQsCisJCQkJCQkJIChOb2RlICopIHN0YXRlLT5lc2NvbnRleHQsIE5VTEwpOwogCiAJLyogS2Vl cCBleHRyYSBjb3BpZXMgb2YgdGhpcyBpbmZvIHRvIHNhdmUgYW4gaW5kaXJlY3Rpb24gYXQgcnVu dGltZSAqLwogCXNjcmF0Y2gtPmQuZnVuYy5mbl9hZGRyID0gZmxpbmZvLT5mbl9hZGRyOwpAQCAt NDc2OCw2ICs0NzgyLDU4IEBAIEV4ZWNCdWlsZFBhcmFtU2V0RXF1YWwoVHVwbGVEZXNjIGRlc2Ms CiAJcmV0dXJuIHN0YXRlOwogfQogCisvKgorICogUHVzaCBzdGVwcyB0byBldmFsdWF0ZSBhIFNh ZmVUeXBlQ2FzdEV4cHIgYW5kIGl0cyB2YXJpb3VzIHN1YnNpZGlhcnkKKyAqIGV4cHJlc3Npb25z LgorICovCitzdGF0aWMgdm9pZAorRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByKFNhZmVUeXBlQ2Fz dEV4cHIgKnN0Y2V4cHIsIEV4cHJTdGF0ZSAqc3RhdGUsCisJCQkJCQkgRGF0dW0gKnJlc3YsIGJv b2wgKnJlc251bGwsCisJCQkJCQkgRXhwckV2YWxTdGVwICpzY3JhdGNoKQoreworCS8qCisJICog Q29lcmNpb24gdG8gdGhlIHRhcmdldCB0eXBlIGZhaWxlZC4gRmFsbGluZyBiYWNrIHRvIHRoZSBE RUZBVUxUCisJICogZXhwcmVzc2lvbiBmcm9tIHRoZSBPTiBDT05WRVJTSU9OIEVSUk9SIGNsYXVz ZSB0byBmaW5pc2guCisJICovCisJaWYgKHN0Y2V4cHItPmNhc3RleHByID09IE5VTEwpCisJewor CQlFeGVjSW5pdEV4cHJSZWMoc3RjZXhwci0+ZGVmZXhwciwgc3RhdGUsIHJlc3YsIHJlc251bGwp OworCisJCXJldHVybjsKKwl9CisJZWxzZQorCXsKKwkJU2FmZVR5cGVDYXN0U3RhdGUgKnN0Y3N0 YXRlID0gcGFsbG9jMF9vYmplY3QoU2FmZVR5cGVDYXN0U3RhdGUpOworCQlFcnJvclNhdmVDb250 ZXh0ICpzYXZlZF9lc2NvbnRleHQgPSBzdGF0ZS0+ZXNjb250ZXh0OworCisJCXN0Y3N0YXRlLT5z dGNleHByID0gc3RjZXhwcjsKKwkJc3Rjc3RhdGUtPmVzY29udGV4dC50eXBlID0gVF9FcnJvclNh dmVDb250ZXh0OworCQlzdGF0ZS0+ZXNjb250ZXh0ID0gJnN0Y3N0YXRlLT5lc2NvbnRleHQ7CisK KwkJLyogZXZhbHVhdGUgYXJndW1lbnQgZXhwcmVzc2lvbiBpbnRvIHN0ZXAncyByZXN1bHQgYXJl YSAqLworCQlFeGVjSW5pdEV4cHJSZWMoc3RjZXhwci0+Y2FzdGV4cHIsIHN0YXRlLCByZXN2LCBy ZXNudWxsKTsKKwkJc2NyYXRjaC0+b3Bjb2RlID0gRUVPUF9TQUZFVFlQRV9DQVNUOworCQlzY3Jh dGNoLT5kLnN0Y2V4cHIuc3Rjc3RhdGUgPSBzdGNzdGF0ZTsKKwkJRXhwckV2YWxQdXNoU3RlcChz dGF0ZSwgc2NyYXRjaCk7CisKKwkJLyoKKwkJICogRXZhbHVhdGUgdGhlIERFRkFVTFQgZXhwcmVz c2lvbiwgc2tpcHBpbmcgaWYgaXQncyBhIGJpbmFyeSBjb2VyY2lvbgorCQkgKiBjYXN0LiBzdGF0 ZS0+ZXNjb250ZXh0IG11c3QgYmUgTlVMTCwgYXMgdGhpcyBldmFsdWF0aW9uIHNob3VsZCBub3QK KwkJICogYmUgZXJyb3Itc2FmZS4KKwkJICovCisJCWlmICghSXNBKHN0Y2V4cHItPmNhc3RleHBy LCBSZWxhYmVsVHlwZSkpCisJCXsKKwkJCXN0YXRlLT5lc2NvbnRleHQgPSBOVUxMOworCisJCQlF eGVjSW5pdEV4cHJSZWMoc3Rjc3RhdGUtPnN0Y2V4cHItPmRlZmV4cHIsIHN0YXRlLCByZXN2LCBy ZXNudWxsKTsKKwkJfQorCisJCXN0YXRlLT5lc2NvbnRleHQgPSBzYXZlZF9lc2NvbnRleHQ7CisK KwkJc3Rjc3RhdGUtPmp1bXBfZW5kID0gc3RhdGUtPnN0ZXBzX2xlbjsKKwl9Cit9CisKIC8qCiAg KiBQdXNoIHN0ZXBzIHRvIGV2YWx1YXRlIGEgSnNvbkV4cHIgYW5kIGl0cyB2YXJpb3VzIHN1YnNp ZGlhcnkgZXhwcmVzc2lvbnMuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5j CmluZGV4IDY5YzE3ZTAyNGYyLi43YWMxZTYzYzUxMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj RXhwckludGVycC5jCkBAIC01NjgsNiArNTY4LDcgQEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRl ICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LCBib29sICppc251bGwpCiAJCSYmQ0FTRV9F RU9QX1hNTEVYUFIsCiAJCSYmQ0FTRV9FRU9QX0pTT05fQ09OU1RSVUNUT1IsCiAJCSYmQ0FTRV9F RU9QX0lTX0pTT04sCisJCSYmQ0FTRV9FRU9QX1NBRkVUWVBFX0NBU1QsCiAJCSYmQ0FTRV9FRU9Q X0pTT05FWFBSX1BBVEgsCiAJCSYmQ0FTRV9FRU9QX0pTT05FWFBSX0NPRVJDSU9OLAogCQkmJkNB U0VfRUVPUF9KU09ORVhQUl9DT0VSQ0lPTl9GSU5JU0gsCkBAIC0xOTI2LDYgKzE5MjcsMjggQEAg RXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LCBi b29sICppc251bGwpCiAJCQlFRU9fTkVYVCgpOwogCQl9CiAKKwkJRUVPX0NBU0UoRUVPUF9TQUZF VFlQRV9DQVNUKQorCQl7CisJCQlTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGUgPSBvcC0+ZC5z dGNleHByLnN0Y3N0YXRlOworCisJCQlpZiAoIVNPRlRfRVJST1JfT0NDVVJSRUQoJnN0Y3N0YXRl LT5lc2NvbnRleHQpKQorCQkJCUVFT19KVU1QKHN0Y3N0YXRlLT5qdW1wX2VuZCk7CisJCQllbHNl CisJCQl7CisJCQkJKm9wLT5yZXN2YWx1ZSA9IChEYXR1bSkgMDsKKwkJCQkqb3AtPnJlc251bGwg PSB0cnVlOworCisJCQkJLyoKKwkJCQkgKiBSZXNldCBmb3IgbmV4dCB1c2Ugc3VjaCBhcyBmb3Ig Y2F0Y2hpbmcgZXJyb3JzIHdoZW4KKwkJCQkgKiBjb2VyY2luZyBhIGV4cHJlc3Npb24uCisJCQkJ ICovCisJCQkJc3Rjc3RhdGUtPmVzY29udGV4dC5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOworCQkJ CXN0Y3N0YXRlLT5lc2NvbnRleHQuZGV0YWlsc193YW50ZWQgPSBmYWxzZTsKKworCQkJCUVFT19O RVhUKCk7CisJCQl9CisJCX0KKwogCQlFRU9fQ0FTRShFRU9QX0pTT05FWFBSX1BBVEgpCiAJCXsK IAkJCS8qIHRvbyBjb21wbGV4IGZvciBhbiBpbmxpbmUgaW1wbGVtZW50YXRpb24gKi8KQEAgLTM2 NDQsNiArMzY2NywxMiBAQCBFeGVjRXZhbEFycmF5Q29lcmNlKEV4cHJTdGF0ZSAqc3RhdGUsIEV4 cHJFdmFsU3RlcCAqb3AsIEV4cHJDb250ZXh0ICplY29udGV4dCkKIAkJCQkJCQkgIGVjb250ZXh0 LAogCQkJCQkJCSAgb3AtPmQuYXJyYXljb2VyY2UucmVzdWx0ZWxlbXR5cGUsCiAJCQkJCQkJICBv cC0+ZC5hcnJheWNvZXJjZS5hbXN0YXRlKTsKKworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKG9w LT5kLmFycmF5Y29lcmNlLmVsZW1leHByc3RhdGUtPmVzY29udGV4dCkpCisJeworCQkqb3AtPnJl c3ZhbHVlID0gKERhdHVtKSAwOworCQkqb3AtPnJlc251bGwgPSB0cnVlOworCX0KIH0KIAogLyoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIvc3JjL2Jh Y2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXggNjUwZjFkNDJhOTMuLmFkNGI3NGIx YWM4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYworKysg Yi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwpAQCAtMjI1Niw2ICsyMjU2LDMz IEBAIGxsdm1fY29tcGlsZV9leHByKEV4cHJTdGF0ZSAqc3RhdGUpCiAJCQkJTExWTUJ1aWxkQnIo Yiwgb3BibG9ja3Nbb3BubyArIDFdKTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBFRU9QX1NBRkVU WVBFX0NBU1Q6CisJCQkJeworCQkJCQlTYWZlVHlwZUNhc3RTdGF0ZSAqc3Rjc3RhdGUgPSBvcC0+ ZC5zdGNleHByLnN0Y3N0YXRlOworCisJCQkJCWlmICghU09GVF9FUlJPUl9PQ0NVUlJFRCgmc3Rj c3RhdGUtPmVzY29udGV4dCkpCisJCQkJCQlMTFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tzdGNzdGF0 ZS0+anVtcF9lbmRdKTsKKwkJCQkJZWxzZQorCQkJCQl7CisJCQkJCQkvKgorCQkJCQkJICogUmVz ZXQgZm9yIG5leHQgdXNlIHN1Y2ggYXMgZm9yIGNhdGNoaW5nIGVycm9ycyB3aGVuCisJCQkJCQkg KiBjb2VyY2luZyBhIGV4cHJlc3Npb24uCisJCQkJCQkgKi8KKwkJCQkJCXN0Y3N0YXRlLT5lc2Nv bnRleHQuZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwkJCQkJCXN0Y3N0YXRlLT5lc2NvbnRleHQu ZGV0YWlsc193YW50ZWQgPSBmYWxzZTsKKworCQkJCQkJLyogc2V0IHJlc251bGwgdG8gdHJ1ZSAq LworCQkJCQkJTExWTUJ1aWxkU3RvcmUoYiwgbF9zYm9vbF9jb25zdCgxKSwgdl9yZXNudWxscCk7 CisKKwkJCQkJCS8qIHJlc2V0IHJlc3ZhbHVlICovCisJCQkJCQlMTFZNQnVpbGRTdG9yZShiLCBs X2RhdHVtX2NvbnN0KDApLCB2X3Jlc3ZhbHVlcCk7CisKKwkJCQkJCUxMVk1CdWlsZEJyKGIsIG9w YmxvY2tzW29wbm8gKyAxXSk7CisJCQkJCX0KKworCQkJCQlicmVhazsKKwkJCQl9CisKIAkJCWNh c2UgRUVPUF9KU09ORVhQUl9QQVRIOgogCQkJCXsKIAkJCQkJSnNvbkV4cHJTdGF0ZSAqanNlc3Rh dGUgPSBvcC0+ZC5qc29uZXhwci5qc2VzdGF0ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggMTk5 ZWQyNzk5NWYuLjRmMzhkZmEwYzMxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9ub2Rlcy9ub2Rl RnVuY3MuYworKysgYi9zcmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYwpAQCAtMjA2LDYgKzIw Niw5IEBAIGV4cHJUeXBlKGNvbnN0IE5vZGUgKmV4cHIpCiAJCWNhc2UgVF9Sb3dDb21wYXJlRXhw cjoKIAkJCXR5cGUgPSBCT09MT0lEOwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RF eHByOgorCQkJdHlwZSA9ICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAqKSBleHByKS0+cmVzdWx0 dHlwZTsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJdHlwZSA9ICgoY29u c3QgQ29hbGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZXR5cGU7CiAJCQlicmVhazsKQEAgLTQ1 MCw2ICs0NTMsOCBAQCBleHByVHlwbW9kKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkJcmV0dXJuIHR5 cG1vZDsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXJl dHVybiAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3VsdHR5cG1vZDsKIAkJ Y2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXsKIAkJCQkvKgpAQCAtOTY1LDYgKzk3MCw5IEBAIGV4 cHJDb2xsYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJCS8qIFJvd0NvbXBhcmVFeHByJ3MgcmVz dWx0IGlzIGJvb2xlYW4gLi4uICovCiAJCQljb2xsID0gSW52YWxpZE9pZDsJLyogLi4uIHNvIGl0 IGhhcyBubyBjb2xsYXRpb24gKi8KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhw cjoKKwkJCWNvbGwgPSAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3VsdGNv bGxpZDsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJY29sbCA9ICgoY29u c3QgQ29hbGVzY2VFeHByICopIGV4cHIpLT5jb2FsZXNjZWNvbGxpZDsKIAkJCWJyZWFrOwpAQCAt MTIzMiw2ICsxMjQwLDkgQEAgZXhwclNldENvbGxhdGlvbihOb2RlICpleHByLCBPaWQgY29sbGF0 aW9uKQogCQkJLyogUm93Q29tcGFyZUV4cHIncyByZXN1bHQgaXMgYm9vbGVhbiAuLi4gKi8KIAkJ CUFzc2VydCghT2lkSXNWYWxpZChjb2xsYXRpb24pKTsgLyogLi4uIHNvIG5ldmVyIHNldCBhIGNv bGxhdGlvbiAqLwogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJKChT YWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHRjb2xsaWQgPSBjb2xsYXRpb247CisJCQli cmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCSgoQ29hbGVzY2VFeHByICopIGV4cHIp LT5jb2FsZXNjZWNvbGxpZCA9IGNvbGxhdGlvbjsKIAkJCWJyZWFrOwpAQCAtMTU1MCw2ICsxNTYx LDkgQEAgZXhwckxvY2F0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkvKiBqdXN0IHVzZSBsZWZ0 bW9zdCBhcmd1bWVudCdzIGxvY2F0aW9uICovCiAJCQlsb2MgPSBleHByTG9jYXRpb24oKE5vZGUg KikgKChjb25zdCBSb3dDb21wYXJlRXhwciAqKSBleHByKS0+bGFyZ3MpOwogCQkJYnJlYWs7CisJ CWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJbG9jID0gKChjb25zdCBTYWZlVHlwZUNhc3RF eHByICopIGV4cHIpLT5sb2NhdGlvbjsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHBy OgogCQkJLyogQ09BTEVTQ0Uga2V5d29yZCBzaG91bGQgYWx3YXlzIGJlIHRoZSBmaXJzdCB0aGlu ZyAqLwogCQkJbG9jID0gKChjb25zdCBDb2FsZXNjZUV4cHIgKikgZXhwciktPmxvY2F0aW9uOwpA QCAtMjMyNCw2ICsyMzM4LDE4IEBAIGV4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpu b2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5 cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICpzdGNleHByID0gY2FzdE5v ZGUoU2FmZVR5cGVDYXN0RXhwciwgbm9kZSk7CisKKwkJCQlpZiAoV0FMSyhzdGNleHByLT5zb3Vy Y2UpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzdGNleHByLT5jYXN0ZXhwcikp CisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHN0Y2V4cHItPmRlZmV4cHIpKQorCQkJ CQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgog CQkJcmV0dXJuIFdBTEsoKChDb2FsZXNjZUV4cHIgKikgbm9kZSktPmFyZ3MpOwogCQljYXNlIFRf TWluTWF4RXhwcjoKQEAgLTMzMzMsNiArMzM1OSwxOSBAQCBleHByZXNzaW9uX3RyZWVfbXV0YXRv cl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CiAJCQl9CiAJ CQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVD YXN0RXhwciAqc3RjZXhwciA9IGNhc3ROb2RlKFNhZmVUeXBlQ2FzdEV4cHIsIG5vZGUpOworCQkJ CVNhZmVUeXBlQ2FzdEV4cHIgKm5ld25vZGU7CisKKwkJCQlGTEFUQ09QWShuZXdub2RlLCBzdGNl eHByLCBTYWZlVHlwZUNhc3RFeHByKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+c291cmNlLCBzdGNl eHByLT5zb3VyY2UsIEV4cHIgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPmNhc3RleHByLCBzdGNl eHByLT5jYXN0ZXhwciwgRXhwciAqKTsKKwkJCQlNVVRBVEUobmV3bm9kZS0+ZGVmZXhwciwgc3Rj ZXhwci0+ZGVmZXhwciwgRXhwciAqKTsKKworCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwor CQkJfQorCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJQ29hbGVz Y2VFeHByICpjb2FsZXNjZWV4cHIgPSAoQ29hbGVzY2VFeHByICopIG5vZGU7CkBAIC00NDY1LDYg KzQ1MDQsMjAgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChOb2RlICpub2RlLAog CQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQlpZiAoV0FMSyh0Yy0+dHlwZU5hbWUpKQogCQkJCQlyZXR1 cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyh0Yy0+ZGVmZXhwcikpCisJCQkJCXJldHVybiB0cnVlOwor CQkJfQorCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNh ZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4cHIgPSBjYXN0Tm9kZShTYWZlVHlwZUNhc3RFeHByLCBub2Rl KTsKKworCQkJCWlmIChXQUxLKHN0Y2V4cHItPnNvdXJjZSkpCisJCQkJCXJldHVybiB0cnVlOwor CQkJCWlmIChXQUxLKHN0Y2V4cHItPmNhc3RleHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJ aWYgKFdBTEsoc3RjZXhwci0+ZGVmZXhwcikpCisJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJ YnJlYWs7CiAJCWNhc2UgVF9Db2xsYXRlQ2xhdXNlOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xh dXNlcy5jCmluZGV4IDlmYjI2NmQwODlkLi5lMmI0MjE4ZWRjNiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwpAQCAtMjY3NSw3ICsyNjc1LDggQEAgZXN0aW1hdGVfZXhwcmVzc2lv bl92YWx1ZShQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSkKIAkoKE5vZGUgKikgZXZhbHVh dGVfZXhwcigoRXhwciAqKSAobm9kZSksIFwKIAkJCQkJCQlleHByVHlwZSgoTm9kZSAqKSAobm9k ZSkpLCBcCiAJCQkJCQkJZXhwclR5cG1vZCgoTm9kZSAqKSAobm9kZSkpLCBcCi0JCQkJCQkJZXhw ckNvbGxhdGlvbigoTm9kZSAqKSAobm9kZSkpKSkKKwkJCQkJCQlleHByQ29sbGF0aW9uKChOb2Rl ICopIChub2RlKSksIFwKKwkJCQkJCQlOVUxMKSkKIAogLyoKICAqIFJlY3Vyc2l2ZSBndXRzIG9m IGV2YWxfY29uc3RfZXhwcmVzc2lvbnMvZXN0aW1hdGVfZXhwcmVzc2lvbl92YWx1ZQpAQCAtMzI2 Nyw2ICszMjY4LDM2IEBAIGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihOb2RlICpub2Rl LAogCQkJCQkJCQkJCQkJICBjb3B5T2JqZWN0KGp2ZS0+Zm9ybWF0KSk7CiAJCQl9CiAKKwkJY2Fz ZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAqbmV3ZXhw cjsKKworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgKnN0YyA9IGNhc3ROb2RlKFNhZmVUeXBlQ2FzdEV4 cHIsIG5vZGUpOworCisJCQkJTm9kZQkgICAqc291cmNlID0gKE5vZGUgKikgc3RjLT5zb3VyY2U7 CisJCQkJTm9kZQkgICAqZGVmZXhwciA9IChOb2RlICopIHN0Yy0+ZGVmZXhwcjsKKworCQkJCXNv dXJjZSA9IGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihzb3VyY2UsCisJCQkJCQkJCQkJ CQkJCWNvbnRleHQpOworCQkJCWRlZmV4cHIgPSBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0 b3IoZGVmZXhwciwKKwkJCQkJCQkJCQkJCQkJIGNvbnRleHQpOworCisJCQkJLyoKKwkJCQkgKiBE ZWZlciBjb25zdGFudCBmb2xkaW5nIGZvciBjYXN0ZXhwci4gRXZhbHVhdGluZworCQkJCSAqIHJl Y29nbml6YWJsZSBjb25zdGFudHMgYXQgdGhpcyBzdGFnZSBpcyBub3QgZXJyb3Itc2FmZSBhbmQK KwkJCQkgKiBtYXkgbGVhZCB0byBwcmVtYXR1cmUgZXJyb3JzLgorCQkJCSAqLworCQkJCW5ld2V4 cHIgPSBtYWtlTm9kZShTYWZlVHlwZUNhc3RFeHByKTsKKwkJCQluZXdleHByLT5zb3VyY2UgPSAo RXhwciAqKSBzb3VyY2U7CisJCQkJbmV3ZXhwci0+Y2FzdGV4cHIgPSAoRXhwciAqKSBzdGMtPmNh c3RleHByOworCQkJCW5ld2V4cHItPmRlZmV4cHIgPSAoRXhwciAqKSBkZWZleHByOworCQkJCW5l d2V4cHItPnJlc3VsdHR5cGUgPSBzdGMtPnJlc3VsdHR5cGU7CisJCQkJbmV3ZXhwci0+cmVzdWx0 dHlwbW9kID0gc3RjLT5yZXN1bHR0eXBtb2Q7CisJCQkJbmV3ZXhwci0+cmVzdWx0Y29sbGlkID0g c3RjLT5yZXN1bHRjb2xsaWQ7CisKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3ZXhwcjsKKwkJCX0K KwogCQljYXNlIFRfU3ViUGxhbjoKIAkJY2FzZSBUX0FsdGVybmF0aXZlU3ViUGxhbjoKIApAQCAt MzY5OCw3ICszNzI5LDggQEAgZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5v ZGUsCiAJCQkJCXJldHVybiAoTm9kZSAqKSBldmFsdWF0ZV9leHByKChFeHByICopIHN2ZiwKIAkJ CQkJCQkJCQkJCSAgc3ZmLT50eXBlLAogCQkJCQkJCQkJCQkJICBzdmYtPnR5cG1vZCwKLQkJCQkJ CQkJCQkJCSAgSW52YWxpZE9pZCk7CisJCQkJCQkJCQkJCQkgIEludmFsaWRPaWQsCisJCQkJCQkJ CQkJCQkgIE5VTEwpOwogCQkJCWVsc2UKIAkJCQkJcmV0dXJuIGNvcHlPYmplY3QoKE5vZGUgKikg c3ZmKTsKIAkJCX0KQEAgLTUyMjksNyArNTI2MSw3IEBAIGV2YWx1YXRlX2Z1bmN0aW9uKE9pZCBm dW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKIAluZXdleHByLT5s b2NhdGlvbiA9IC0xOwogCiAJcmV0dXJuIGV2YWx1YXRlX2V4cHIoKEV4cHIgKikgbmV3ZXhwciwg cmVzdWx0X3R5cGUsIHJlc3VsdF90eXBtb2QsCi0JCQkJCQkgcmVzdWx0X2NvbGxpZCk7CisJCQkJ CQkgcmVzdWx0X2NvbGxpZCwgTlVMTCk7CiB9CiAKIC8qCkBAIC01NjgzLDEwICs1NzE1LDEzIEBA IHNxbF9pbmxpbmVfZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogICoKICAqIFdlIHVzZSB0aGUg ZXhlY3V0b3IncyByb3V0aW5lIEV4ZWNFdmFsRXhwcigpIHRvIGF2b2lkIGR1cGxpY2F0aW9uIG9m CiAgKiBjb2RlIGFuZCBlbnN1cmUgd2UgZ2V0IHRoZSBzYW1lIHJlc3VsdCBhcyB0aGUgZXhlY3V0 b3Igd291bGQgZ2V0LgorICoKKyAqIFdoZW4gZXNjb250ZXh0IGlzIG5vbi1OVUxMLCBzYWZlbHkg ZXZhbHVhdGVzIHRoZSBjb25zdGFudCBleHByZXNzaW9uLgorICogUmV0dXJucyBOVUxMIG9uIGZh aWx1cmUgcmF0aGVyIHRoYW4gdGhyb3dpbmcgYW4gZXJyb3IuCiAgKi8KIEV4cHIgKgogZXZhbHVh dGVfZXhwcihFeHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3VsdF90eXBtb2Qs Ci0JCQkgIE9pZCByZXN1bHRfY29sbGF0aW9uKQorCQkJICBPaWQgcmVzdWx0X2NvbGxhdGlvbiwg Tm9kZSAqZXNjb250ZXh0KQogewogCUVTdGF0ZQkgICAqZXN0YXRlOwogCUV4cHJTdGF0ZSAgKmV4 cHJzdGF0ZTsKQEAgLTU3MTEsNyArNTc0Niw3IEBAIGV2YWx1YXRlX2V4cHIoRXhwciAqZXhwciwg T2lkIHJlc3VsdF90eXBlLCBpbnQzMiByZXN1bHRfdHlwbW9kLAogCSAqIFByZXBhcmUgZXhwciBm b3IgZXhlY3V0aW9uLiAgKE5vdGU6IHdlIGNhbid0IHVzZSBFeGVjUHJlcGFyZUV4cHIKIAkgKiBi ZWNhdXNlIGl0J2QgcmVzdWx0IGluIHJlY3Vyc2l2ZWx5IGludm9raW5nIGV2YWxfY29uc3RfZXhw cmVzc2lvbnMuKQogCSAqLwotCWV4cHJzdGF0ZSA9IEV4ZWNJbml0RXhwcihleHByLCBOVUxMKTsK KwlleHByc3RhdGUgPSBFeGVjSW5pdEV4cHJXaXRoQ29udGV4dChleHByLCBOVUxMLCBlc2NvbnRl eHQpOwogCiAJLyoKIAkgKiBBbmQgZXZhbHVhdGUgaXQuCkBAIC01NzMxLDYgKzU3NjYsMTMgQEAg ZXZhbHVhdGVfZXhwcihFeHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3VsdF90 eXBtb2QsCiAJLyogR2V0IGJhY2sgdG8gb3V0ZXIgbWVtb3J5IGNvbnRleHQgKi8KIAlNZW1vcnlD b250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiAKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChl eHByc3RhdGUtPmVzY29udGV4dCkpCisJeworCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOwor CisJCXJldHVybiBOVUxMOworCX0KKwogCS8qCiAJICogTXVzdCBjb3B5IHJlc3VsdCBvdXQgb2Yg c3ViLWNvbnRleHQgdXNlZCBieSBleHByZXNzaW9uIGV2YWwuCiAJICoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4 IGYwMWY1NzM0ZmU5Li43NjEyYjg4NGFlMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2Vy L2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xNTgsNiArMTU4LDgg QEAgc3RhdGljIHZvaWQgdXBkYXRlUmF3U3RtdEVuZChSYXdTdG10ICpycywgaW50IGVuZF9sb2Nh dGlvbik7CiBzdGF0aWMgTm9kZSAqbWFrZUNvbHVtblJlZihjaGFyICpjb2xuYW1lLCBMaXN0ICpp bmRpcmVjdGlvbiwKIAkJCQkJCSAgIGludCBsb2NhdGlvbiwgY29yZV95eXNjYW5fdCB5eXNjYW5u ZXIpOwogc3RhdGljIE5vZGUgKm1ha2VUeXBlQ2FzdChOb2RlICphcmcsIFR5cGVOYW1lICp0eXBl bmFtZSwgaW50IGxvY2F0aW9uKTsKK3N0YXRpYyBOb2RlICptYWtlVHlwZUNhc3RXaXRoRGVmYXVs dChOb2RlICphcmcsIFR5cGVOYW1lICp0eXBlbmFtZSwKKwkJCQkJCQkJCSBOb2RlICpyYXdfZGVm YXVsdCwgaW50IGxvY2F0aW9uKTsKIHN0YXRpYyBOb2RlICptYWtlU3RyaW5nQ29uc3RDYXN0KGNo YXIgKnN0ciwgaW50IGxvY2F0aW9uLCBUeXBlTmFtZSAqdHlwZW5hbWUpOwogc3RhdGljIE5vZGUg Km1ha2VJbnRDb25zdChpbnQgdmFsLCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKm1ha2VG bG9hdENvbnN0KGNoYXIgKnN0ciwgaW50IGxvY2F0aW9uKTsKQEAgLTE2MTkxLDYgKzE2MTkzLDEy IEBAIGZ1bmNfZXhwcl9jb21tb25fc3ViZXhwcjoKIAkJCQl9CiAJCQl8IENBU1QgJygnIGFfZXhw ciBBUyBUeXBlbmFtZSAnKScKIAkJCQl7ICQkID0gbWFrZVR5cGVDYXN0KCQzLCAkNSwgQDEpOyB9 CisJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSBFUlJPUl9QIE9OIENPTlZFUlNJT05f UCBFUlJPUl9QICcpJworCQkJCXsgJCQgPSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7IH0KKwkJ CXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5cGVuYW1lIE5VTExfUCBPTiBDT05WRVJTSU9OX1AgRVJS T1JfUCAnKScKKwkJCQl7ICQkID0gbWFrZVR5cGVDYXN0V2l0aERlZmF1bHQoJDMsICQ1LCBtYWtl TnVsbEFDb25zdCgtMSksIEAxKTsgfQorCQkJfCBDQVNUICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUg REVGQVVMVCBhX2V4cHIgT04gQ09OVkVSU0lPTl9QIEVSUk9SX1AgJyknCisJCQkJeyAkJCA9IG1h a2VUeXBlQ2FzdFdpdGhEZWZhdWx0KCQzLCAkNSwgJDcsIEAxKTsgfQogCQkJfCBFWFRSQUNUICco JyBleHRyYWN0X2xpc3QgJyknCiAJCQkJewogCQkJCQkkJCA9IChOb2RlICopIG1ha2VGdW5jQ2Fs bChTeXN0ZW1GdW5jTmFtZSgiZXh0cmFjdCIpLApAQCAtMTkxMjQsMTAgKzE5MTMyLDI1IEBAIG1h a2VUeXBlQ2FzdChOb2RlICphcmcsIFR5cGVOYW1lICp0eXBlbmFtZSwgaW50IGxvY2F0aW9uKQog CiAJbi0+YXJnID0gYXJnOwogCW4tPnR5cGVOYW1lID0gdHlwZW5hbWU7CisJbi0+ZGVmZXhwciA9 IE5VTEw7CiAJbi0+bG9jYXRpb24gPSBsb2NhdGlvbjsKIAlyZXR1cm4gKE5vZGUgKikgbjsKIH0K IAorc3RhdGljIE5vZGUgKgorbWFrZVR5cGVDYXN0V2l0aERlZmF1bHQoTm9kZSAqYXJnLCBUeXBl TmFtZSAqdHlwZW5hbWUsIE5vZGUgKmRlZmV4cHIsCisJCQkJCQlpbnQgbG9jYXRpb24pCit7CisJ VHlwZUNhc3QgICAqbiA9IG1ha2VOb2RlKFR5cGVDYXN0KTsKKworCW4tPmFyZyA9IGFyZzsKKwlu LT50eXBlTmFtZSA9IHR5cGVuYW1lOworCW4tPmRlZmV4cHIgPSBkZWZleHByOworCW4tPmxvY2F0 aW9uID0gbG9jYXRpb247CisKKwlyZXR1cm4gKE5vZGUgKikgbjsKK30KKwogc3RhdGljIE5vZGUg KgogbWFrZVN0cmluZ0NvbnN0Q2FzdChjaGFyICpzdHIsIGludCBsb2NhdGlvbiwgVHlwZU5hbWUg KnR5cGVuYW1lKQogewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IDMzZmQyY2NjYWU1Li5hMThk MjBkYmZkYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNDkxLDYgKzQ5MSwxMiBAQCBjaGVj a19hZ2dsZXZlbHNfYW5kX2NvbnN0cmFpbnRzKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhw cikKIAkJCQllcnIgPSBfKCJncm91cGluZyBvcGVyYXRpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBj aGVjayBjb25zdHJhaW50cyIpOwogCiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9E RUZBVUxUOgorCQkJaWYgKGlzQWdnKQorCQkJCWVyciA9IF8oImFnZ3JlZ2F0ZSBmdW5jdGlvbnMg YXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucyIpOworCQkJZWxzZQor CQkJCWVyciA9IF8oImdyb3VwaW5nIG9wZXJhdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1Qg REVGQVVMVCBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVN Tl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCkBAIC05ODQs NiArOTkwLDkgQEAgdHJhbnNmb3JtV2luZG93RnVuY0NhbGwoUGFyc2VTdGF0ZSAqcHN0YXRlLCBX aW5kb3dGdW5jICp3ZnVuYywKIAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNLOgogCQkJZXJy ID0gXygid2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gY2hlY2sgY29uc3RyYWlu dHMiKTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQllcnIg PSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhw cmVzc2lvbnMiKTsKKwkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVGQVVMVDoK IAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIAkJCWVyciA9IF8oIndpbmRvdyBm dW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9jb2VyY2UuYwppbmRleCA5MTNjYTUzNjY2Zi4uMDEyNjRkNWUwY2IgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfY29lcmNlLmMKQEAgLTgxLDYgKzgxLDI4IEBAIGNvZXJjZV90b190YXJn ZXRfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIsIE9pZCBleHBydHlwZSwKIAkJ CQkJICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsCiAJCQkJCSAgQ29lcmNpb25Gb3JtIGNmb3Jt YXQsCiAJCQkJCSAgaW50IGxvY2F0aW9uKQoreworCXJldHVybiBjb2VyY2VfdG9fdGFyZ2V0X3R5 cGVfZXh0ZW5kZWQocHN0YXRlLCBleHByLCBleHBydHlwZSwKKwkJCQkJCQkJCQkgIHRhcmdldHR5 cGUsIHRhcmdldHR5cG1vZCwKKwkJCQkJCQkJCQkgIGNjb250ZXh0LAorCQkJCQkJCQkJCSAgY2Zv cm1hdCwKKwkJCQkJCQkJCQkgIGxvY2F0aW9uLAorCQkJCQkJCQkJCSAgTlVMTCk7Cit9CisKKy8q CisgKiBlc2NvbnRleHQ6IElmIG5vbi1OVUxMLCBzYWZlbHkgY29lcmNlcyAnZXhwcicgdG8gdGhl IHRhcmdldCB0eXBlCisgKiB3aXRob3V0IHJhaXNpbmcgYW4gZXJyb3IuIFJldHVybnMgTlVMTCBp ZiB0aGUgY29lcmNpb24gZmFpbHMuCisgKgorICogU2VlICdjb2VyY2VfdG9fdGFyZ2V0X3R5cGUn IGFib3ZlIGZvciBkZXRhaWxzIG9uIG90aGVyIHBhcmFtZXRlcnMuCisgKi8KK05vZGUgKgorY29l cmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVkKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhw ciwgT2lkIGV4cHJ0eXBlLAorCQkJCQkJCSAgIE9pZCB0YXJnZXR0eXBlLCBpbnQzMiB0YXJnZXR0 eXBtb2QsCisJCQkJCQkJICAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LAorCQkJCQkJCSAgIENv ZXJjaW9uRm9ybSBjZm9ybWF0LAorCQkJCQkJCSAgIGludCBsb2NhdGlvbiwKKwkJCQkJCQkgICBO b2RlICplc2NvbnRleHQpCiB7CiAJTm9kZQkgICAqcmVzdWx0OwogCU5vZGUJICAgKm9yaWdleHBy OwpAQCAtMTAyLDkgKzEyNCwxNSBAQCBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpleHByLCBPaWQgZXhwcnR5cGUsCiAJd2hpbGUgKGV4cHIgJiYgSXNBKGV4 cHIsIENvbGxhdGVFeHByKSkKIAkJZXhwciA9IChOb2RlICopICgoQ29sbGF0ZUV4cHIgKikgZXhw ciktPmFyZzsKIAotCXJlc3VsdCA9IGNvZXJjZV90eXBlKHBzdGF0ZSwgZXhwciwgZXhwcnR5cGUs Ci0JCQkJCQkgdGFyZ2V0dHlwZSwgdGFyZ2V0dHlwbW9kLAotCQkJCQkJIGNjb250ZXh0LCBjZm9y bWF0LCBsb2NhdGlvbik7CisJcmVzdWx0ID0gY29lcmNlX3R5cGVfZXh0ZW5kZWQocHN0YXRlLCBl eHByLCBleHBydHlwZSwKKwkJCQkJCQkJICB0YXJnZXR0eXBlLCB0YXJnZXR0eXBtb2QsCisJCQkJ CQkJCSAgY2NvbnRleHQsCisJCQkJCQkJCSAgY2Zvcm1hdCwKKwkJCQkJCQkJICBsb2NhdGlvbiwK KwkJCQkJCQkJICBlc2NvbnRleHQpOworCisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250 ZXh0KSkKKwkJcmV0dXJuIE5VTEw7CiAKIAkvKgogCSAqIElmIHRoZSB0YXJnZXQgaXMgYSBmaXhl ZC1sZW5ndGggdHlwZSwgaXQgbWF5IG5lZWQgYSBsZW5ndGggY29lcmNpb24gYXMKQEAgLTE1OCw2 ICsxODYsMTggQEAgTm9kZSAqCiBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg Km5vZGUsCiAJCQlPaWQgaW5wdXRUeXBlSWQsIE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdl dFR5cGVNb2QsCiAJCQlDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9uRm9ybSBjZm9y bWF0LCBpbnQgbG9jYXRpb24pCit7CisJcmV0dXJuIGNvZXJjZV90eXBlX2V4dGVuZGVkKHBzdGF0 ZSwgbm9kZSwKKwkJCQkJCQkJaW5wdXRUeXBlSWQsIHRhcmdldFR5cGVJZCwgdGFyZ2V0VHlwZU1v ZCwKKwkJCQkJCQkJY2NvbnRleHQsIGNmb3JtYXQsIGxvY2F0aW9uLAorCQkJCQkJCQlOVUxMKTsK K30KKworTm9kZSAqCitjb2VyY2VfdHlwZV9leHRlbmRlZChQYXJzZVN0YXRlICpwc3RhdGUsIE5v ZGUgKm5vZGUsCisJCQkJCSBPaWQgaW5wdXRUeXBlSWQsIE9pZCB0YXJnZXRUeXBlSWQsIGludDMy IHRhcmdldFR5cGVNb2QsCisJCQkJCSBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9u Rm9ybSBjZm9ybWF0LCBpbnQgbG9jYXRpb24sCisJCQkJCSBOb2RlICplc2NvbnRleHQpCiB7CiAJ Tm9kZQkgICAqcmVzdWx0OwogCUNvZXJjaW9uUGF0aFR5cGUgcGF0aHR5cGU7CkBAIC0yNTYsNiAr Mjk2LDcgQEAgY29lcmNlX3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCQlp bnQzMgkJaW5wdXRUeXBlTW9kOwogCQlUeXBlCQliYXNlVHlwZTsKIAkJUGFyc2VDYWxsYmFja1N0 YXRlIHBjYnN0YXRlOworCQljaGFyCSAgICpzdHJpbmcgPSBOVUxMOwogCiAJCS8qCiAJCSAqIElm IHRoZSB0YXJnZXQgdHlwZSBpcyBhIGRvbWFpbiwgd2Ugd2FudCB0byBjYWxsIGl0cyBiYXNlIHR5 cGUncwpAQCAtMzA5LDEzICszNTAsMjEgQEAgY29lcmNlX3R5cGUoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpub2RlLAogCQkgKiBhcyBDU1RSSU5HLgogCQkgKi8KIAkJaWYgKCFjb24tPmNvbnN0 aXNudWxsKQotCQkJbmV3Y29uLT5jb25zdHZhbHVlID0gc3RyaW5nVHlwZURhdHVtKGJhc2VUeXBl LAotCQkJCQkJCQkJCQkJIERhdHVtR2V0Q1N0cmluZyhjb24tPmNvbnN0dmFsdWUpLAotCQkJCQkJ CQkJCQkJIGlucHV0VHlwZU1vZCk7Ci0JCWVsc2UKLQkJCW5ld2Nvbi0+Y29uc3R2YWx1ZSA9IHN0 cmluZ1R5cGVEYXR1bShiYXNlVHlwZSwKLQkJCQkJCQkJCQkJCSBOVUxMLAotCQkJCQkJCQkJCQkJ IGlucHV0VHlwZU1vZCk7CisJCQlzdHJpbmcgPSBEYXR1bUdldENTdHJpbmcoY29uLT5jb25zdHZh bHVlKTsKKworCQlpZiAoIXN0cmluZ1R5cGVEYXR1bVNhZmUoYmFzZVR5cGUsCisJCQkJCQkJCSBz dHJpbmcsCisJCQkJCQkJCSBpbnB1dFR5cGVNb2QsCisJCQkJCQkJCSBlc2NvbnRleHQsCisJCQkJ CQkJCSAmbmV3Y29uLT5jb25zdHZhbHVlKSkKKwkJeworCQkJLyogVU5LTk9XTiBDb25zdCBjYW5u b3QgY29lcmNlIHRvIHRhcmdldFR5cGUsIGV4aXQgbm93ICovCisJCQljYW5jZWxfcGFyc2VyX2Vy cnBvc2l0aW9uX2NhbGxiYWNrKCZwY2JzdGF0ZSk7CisKKwkJCVJlbGVhc2VTeXNDYWNoZShiYXNl VHlwZSk7CisKKwkJCXJldHVybiBOVUxMOworCQl9CiAKIAkJLyoKIAkJICogSWYgaXQncyBhIHZh cmxlbmEgdmFsdWUsIGZvcmNlIGl0IHRvIGJlIGluIG5vbi1leHBhbmRlZApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMKaW5kZXggOTY5OTFjYWU3NjQuLjNlMmYyZTJkN2ZmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMKQEAgLTE3LDYgKzE3LDcgQEAKIAogI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFp bHMuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oIgorI2luY2x1ZGUgImNhdGFs b2cvcGdfY2FzdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1ZGUgIm1p c2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgpAQCAtMzcsNiArMzgsNyBA QAogI2luY2x1ZGUgInV0aWxzL2RhdGUuaCIKICNpbmNsdWRlICJ1dGlscy9mbWdyb2lkcy5oIgog I2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgi CiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCiAjaW5jbHVkZSAidXRpbHMvdHlwY2FjaGUu aCIKICNpbmNsdWRlICJ1dGlscy94bWwuaCIKQEAgLTYxLDcgKzYzLDggQEAgc3RhdGljIE5vZGUg KnRyYW5zZm9ybU11bHRpQXNzaWduUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTXVsdGlBc3NpZ25S ZWYgKm1hcmVmKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1DYXNlRXhwcihQYXJzZVN0YXRlICpw c3RhdGUsIENhc2VFeHByICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1TdWJMaW5rKFBhcnNl U3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluayk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3Jt QXJyYXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCi0JCQkJCQkJCU9p ZCBhcnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBtb2QpOworCQkJCQkJCQlP aWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50MzIgdHlwbW9kLAorCQkJCQkJCQli b29sICppc19jb2VyY2libGUpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybVJvd0V4cHIoUGFyc2VT dGF0ZSAqcHN0YXRlLCBSb3dFeHByICpyLCBib29sIGFsbG93RGVmYXVsdCk7CiBzdGF0aWMgTm9k ZSAqdHJhbnNmb3JtQ29hbGVzY2VFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29hbGVzY2VFeHBy ICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1NaW5NYXhFeHByKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTWluTWF4RXhwciAqbSk7CkBAIC03Nyw2ICs4MCwxMSBAQCBzdGF0aWMgTm9kZSAqdHJhbnNm b3JtV2hvbGVSb3dSZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkgIGludCBzdWJsZXZl bHNfdXAsIGludCBsb2NhdGlvbik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSW5kaXJlY3Rpb24o UGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpOwogc3RhdGljIE5vZGUgKnRy YW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRjKTsKK3N0YXRp YyB2b2lkIENvZXJjaW9uRXJyb3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpj YXN0ZXhwciwKKwkJCQkJCQkJICAgTm9kZSAqc291cmNlLCBPaWQgaW5wdXRUeXBlLCBPaWQgdGFy Z2V0VHlwZSk7CitzdGF0aWMgdm9pZCBDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChPaWQgaW5w dXRUeXBlLCBPaWQgdGFyZ2V0VHlwZSwKKwkJCQkJCQkJCSAgIGJvb2wgKmVycm9yc2FmZV9jb2Vy Y2lvbiwKKwkJCQkJCQkJCSAgIGJvb2wgKnVzZXJkZWZpbmVkKTsKIHN0YXRpYyBOb2RlICp0cmFu c2Zvcm1Db2xsYXRlQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sbGF0ZUNsYXVzZSAqYyk7 CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbk9iamVjdENvbnN0cnVjdG9yKFBhcnNlU3RhdGUg KnBzdGF0ZSwKIAkJCQkJCQkJCQkJSnNvbk9iamVjdENvbnN0cnVjdG9yICpjdG9yKTsKQEAgLTE2 NSw3ICsxNzMsNyBAQCB0cmFuc2Zvcm1FeHByUmVjdXJzZShQYXJzZVN0YXRlICpwc3RhdGUsIE5v ZGUgKmV4cHIpCiAKIAkJY2FzZSBUX0FfQXJyYXlFeHByOgogCQkJcmVzdWx0ID0gdHJhbnNmb3Jt QXJyYXlFeHByKHBzdGF0ZSwgKEFfQXJyYXlFeHByICopIGV4cHIsCi0JCQkJCQkJCQkJSW52YWxp ZE9pZCwgSW52YWxpZE9pZCwgLTEpOworCQkJCQkJCQkJCUludmFsaWRPaWQsIEludmFsaWRPaWQs IC0xLCBOVUxMKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgVF9UeXBlQ2FzdDoKQEAgLTU2NSw2ICs1 NzMsNyBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYg KmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5EX1ZBTFVFU19TSU5HTEU6CiAJCWNhc2UgRVhQUl9LSU5E X0NIRUNLX0NPTlNUUkFJTlQ6CiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKKwkJY2Fz ZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZB VUxUOgogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgogCQljYXNlIEVYUFJfS0lO RF9JTkRFWF9QUkVESUNBVEU6CkBAIC0xODM0LDYgKzE4NDMsOSBAQCB0cmFuc2Zvcm1TdWJMaW5r KFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRf RE9NQUlOX0NIRUNLOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBjaGVjayBj b25zdHJhaW50Iik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUOgor CQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lv biIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNl IEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygiY2Fubm90IHVzZSBzdWJx dWVyeSBpbiBERUZBVUxUIGV4cHJlc3Npb24iKTsKQEAgLTIwMjEsMTcgKzIwMzMsMjMgQEAgdHJh bnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAgKiBJ ZiB0aGUgY2FsbGVyIHNwZWNpZmllcyB0aGUgdGFyZ2V0IHR5cGUsIHRoZSByZXN1bHRpbmcgYXJy YXkgd2lsbAogICogYmUgb2YgZXhhY3RseSB0aGF0IHR5cGUuICBPdGhlcndpc2Ugd2UgdHJ5IHRv IGluZmVyIGEgY29tbW9uIHR5cGUKICAqIGZvciB0aGUgZWxlbWVudHMgdXNpbmcgc2VsZWN0X2Nv bW1vbl90eXBlKCkuCisgKgorICogaXNfY29lcmNpYmxlIGlzIHR5cGljYWxseSBOVUxMLCBleGNl cHQgZHVyaW5nIHBhcnNlIGFuYWx5c2lzIGZvcgorICogQ0FTVCguLi4gREVGQVVMVCAuLi4gT04g Q09OVkVSU0lPTiBFUlJPUikuIFdoZW4gcHJvdmlkZWQsIGl0IGRlZmF1bHRzCisgKiB0byB0cnVl IGJ1dCB3aWxsIGJlIHNldCB0byBmYWxzZSBpZiBjb2VyY2luZyBhcnJheSBlbGVtZW50cyBmYWls cy4KICAqLwogc3RhdGljIE5vZGUgKgogdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQV9BcnJheUV4cHIgKmEsCi0JCQkJICAgT2lkIGFycmF5X3R5cGUsIE9pZCBlbGVtZW50 X3R5cGUsIGludDMyIHR5cG1vZCkKKwkJCQkgICBPaWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1lbnRf dHlwZSwgaW50MzIgdHlwbW9kLCBib29sICppc19jb2VyY2libGUpCiB7CiAJQXJyYXlFeHByICAq bmV3YSA9IG1ha2VOb2RlKEFycmF5RXhwcik7CiAJTGlzdAkgICAqbmV3ZWxlbXMgPSBOSUw7CiAJ TGlzdAkgICAqbmV3Y29lcmNlZGVsZW1zID0gTklMOwogCUxpc3RDZWxsICAgKmVsZW1lbnQ7CiAJ T2lkCQkJY29lcmNlX3R5cGU7CisJT2lkCQkJY29lcmNlX3R5cGVfY29sbDsKIAlib29sCQljb2Vy Y2VfaGFyZDsKKwlFcnJvclNhdmVDb250ZXh0IGVzY29udGV4dCA9IHtUX0Vycm9yU2F2ZUNvbnRl eHR9OwogCiAJLyoKIAkgKiBUcmFuc2Zvcm0gdGhlIGVsZW1lbnQgZXhwcmVzc2lvbnMKQEAgLTIw NTUsOSArMjA3MywxMCBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBB X0FycmF5RXhwciAqYSwKIAkJCQkJCQkJCSAgKEFfQXJyYXlFeHByICopIGUsCiAJCQkJCQkJCQkg IGFycmF5X3R5cGUsCiAJCQkJCQkJCQkgIGVsZW1lbnRfdHlwZSwKLQkJCQkJCQkJCSAgdHlwbW9k KTsKKwkJCQkJCQkJCSAgdHlwbW9kLAorCQkJCQkJCQkJICBpc19jb2VyY2libGUpOwogCQkJLyog d2UgY2VydGFpbmx5IGhhdmUgYW4gYXJyYXkgaGVyZSAqLwotCQkJQXNzZXJ0KGFycmF5X3R5cGUg PT0gSW52YWxpZE9pZCB8fCBhcnJheV90eXBlID09IGV4cHJUeXBlKG5ld2UpKTsKKwkJCUFzc2Vy dChpc19jb2VyY2libGUgfHwgYXJyYXlfdHlwZSA9PSBJbnZhbGlkT2lkIHx8IGFycmF5X3R5cGUg PT0gZXhwclR5cGUobmV3ZSkpOwogCQkJbmV3YS0+bXVsdGlkaW1zID0gdHJ1ZTsKIAkJfQogCQll bHNlCkBAIC0yMDk4LDYgKzIxMTcsOCBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAq cHN0YXRlLCBBX0FycmF5RXhwciAqYSwKIAl9CiAJZWxzZQogCXsKKwkJQXNzZXJ0KGlzX2NvZXJj aWJsZSA9PSBOVUxMKTsKKwogCQkvKiBDYW4ndCBoYW5kbGUgYW4gZW1wdHkgYXJyYXkgd2l0aG91 dCBhIHRhcmdldCB0eXBlICovCiAJCWlmIChuZXdlbGVtcyA9PSBOSUwpCiAJCQllcmVwb3J0KEVS Uk9SLApAQCAtMjEzNSw2ICsyMTU2LDggQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCiAJCWNvZXJjZV9oYXJkID0gZmFsc2U7CiAJfQogCisJ Y29lcmNlX3R5cGVfY29sbCA9IGdldF90eXBjb2xsYXRpb24oY29lcmNlX3R5cGUpOworCiAJLyoK IAkgKiBDb2VyY2UgZWxlbWVudHMgdG8gdGFyZ2V0IHR5cGUKIAkgKgpAQCAtMjE0NCwyOCArMjE2 Nyw3OSBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhw ciAqYSwKIAkgKiBJZiB0aGUgYXJyYXkncyB0eXBlIHdhcyBtZXJlbHkgZGVyaXZlZCBmcm9tIHRo ZSBjb21tb24gdHlwZSBvZiBpdHMKIAkgKiBlbGVtZW50cywgdGhlbiB0aGUgZWxlbWVudHMgYXJl IGltcGxpY2l0bHkgY29lcmNlZCB0byB0aGUgY29tbW9uIHR5cGUuCiAJICogVGhpcyBpcyBjb25z aXN0ZW50IHdpdGggb3RoZXIgdXNlcyBvZiBzZWxlY3RfY29tbW9uX3R5cGUoKS4KKwkgKgorCSAq IElmIGlzX2NvZXJjaWJsZSBpcyBub3QgTlVMTCwgY2hlY2sgd2hldGhlciBlYWNoIGVsZW1lbnQg Y2FuIGJlIGNvZXJjZWQKKwkgKiB0byB0aGUgdGFyZ2V0IHR5cGUsIHNpbWlsYXIgdG8gd2hhdCBp cyBkb25lIGluIHRyYW5zZm9ybVR5cGVDYXN0LgogCSAqLwogCWZvcmVhY2goZWxlbWVudCwgbmV3 ZWxlbXMpCiAJewogCQlOb2RlCSAgICplID0gKE5vZGUgKikgbGZpcnN0KGVsZW1lbnQpOwotCQlO b2RlCSAgICpuZXdlOworCQlOb2RlCSAgICpuZXdlID0gTlVMTDsKIAogCQlpZiAoY29lcmNlX2hh cmQpCiAJCXsKLQkJCW5ld2UgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBlLAotCQkJ CQkJCQkJCSBleHByVHlwZShlKSwKLQkJCQkJCQkJCQkgY29lcmNlX3R5cGUsCi0JCQkJCQkJCQkJ IHR5cG1vZCwKLQkJCQkJCQkJCQkgQ09FUkNJT05fRVhQTElDSVQsCi0JCQkJCQkJCQkJIENPRVJD RV9FWFBMSUNJVF9DQVNULAotCQkJCQkJCQkJCSAtMSk7Ci0JCQlpZiAobmV3ZSA9PSBOVUxMKQot CQkJCWVyZXBvcnQoRVJST1IsCi0JCQkJCQkoZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0Up LAotCQkJCQkJIGVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyIsCi0JCQkJCQkJCWZv cm1hdF90eXBlX2JlKGV4cHJUeXBlKGUpKSwKLQkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29lcmNl X3R5cGUpKSwKLQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24o ZSkpKSk7CisJCQkvKgorCQkJICogQ2Fubm90IGNvZXJjZSwganVzdCBhcHBlbmQgdGhlIHRyYW5z Zm9ybWVkIGVsZW1lbnQgZXhwcmVzc2lvbgorCQkJICogdG8gdGhlIGxpc3QuCisJCQkgKi8KKwkJ CWlmIChpc19jb2VyY2libGUgJiYgKCEqaXNfY29lcmNpYmxlKSkKKwkJCQluZXdlID0gZTsKKwkJ CWVsc2UKKwkJCXsKKwkJCQlOb2RlCSAgICplY29weSA9IE5VTEw7CisKKwkJCQlpZiAoaXNfY29l cmNpYmxlKQorCQkJCQllY29weSA9IGNvcHlPYmplY3QoZSk7CisKKwkJCQluZXdlID0gY29lcmNl X3RvX3RhcmdldF90eXBlX2V4dGVuZGVkKHBzdGF0ZSwgZSwKKwkJCQkJCQkJCQkJCQkgIGV4cHJU eXBlKGUpLAorCQkJCQkJCQkJCQkJCSAgY29lcmNlX3R5cGUsCisJCQkJCQkJCQkJCQkJICB0eXBt b2QsCisJCQkJCQkJCQkJCQkJICBDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJCQkJCQkJCQkJCQkgIENP RVJDRV9FWFBMSUNJVF9DQVNULAorCQkJCQkJCQkJCQkJCSAgLTEsCisJCQkJCQkJCQkJCQkJICAo Tm9kZSAqKSAmZXNjb250ZXh0KTsKKwkJCQlpZiAobmV3ZSA9PSBOVUxMKQorCQkJCXsKKwkJCQkJ LyoKKwkJCQkJICogQ2Fubm90IGNvZXJjZS4gUmFpc2UgYW4gZXJyb3Igb3IgYXBwZW5kIHRoZSB0 cmFuc2Zvcm1lZAorCQkJCQkgKiBlbGVtZW50IHRvIHRoZSBsaXN0LgorCQkJCQkgKi8KKwkJCQkJ aWYgKCFpc19jb2VyY2libGUpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0UpLAorCQkJCQkJCQkgZXJybXNnKCJjYW5ub3QgY2FzdCB0 eXBlICVzIHRvICVzIiwKKwkJCQkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHByVHlwZShlKSksCisJ CQkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoY29lcmNlX3R5cGUpKSwKKwkJCQkJCQkJIHBhcnNlcl9l cnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihlKSkpKTsKKwkJCQkJZWxzZQorCQkJCQl7 CisJCQkJCQluZXdlID0gZWNvcHk7CisJCQkJCQkqaXNfY29lcmNpYmxlID0gZmFsc2U7CisJCQkJ CX0KKwkJCQl9CisJCQkJZWxzZSBpZiAoaXNfY29lcmNpYmxlICYmIElzQShlY29weSwgQ29uc3Qp ICYmIElzQShuZXdlLCBGdW5jRXhwcikpCisJCQkJeworCQkJCQlOb2RlCSAgICpuZXdleHByID0g Y29weU9iamVjdChuZXdlKTsKKworCQkJCQkvKgorCQkJCQkgKiBQcmUtZXZhbHVhdGUgc2ltcGxl IGNvbnN0YW50IGNhc3QgZXhwcmVzc2lvbnMgaW4gYSB3YXkKKwkJCQkJICogdGhhdCB0b2xlcmF0 ZSBlcnJvcnMuCisJCQkJCSAqLworCQkJCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwg bmV3ZXhwcik7CisKKwkJCQkJbmV3ZXhwciA9IChOb2RlICopIGV2YWx1YXRlX2V4cHIoKEV4cHIg KikgbmV3ZXhwciwKKwkJCQkJCQkJCQkJCQkgY29lcmNlX3R5cGUsCisJCQkJCQkJCQkJCQkJIHR5 cG1vZCwKKwkJCQkJCQkJCQkJCQkgY29lcmNlX3R5cGVfY29sbCwKKwkJCQkJCQkJCQkJCQkgKE5v ZGUgKikgJmVzY29udGV4dCk7CisJCQkJCWlmIChuZXdleHByID09IE5VTEwpCisJCQkJCXsKKwkJ CQkJCW5ld2UgPSBlY29weTsKKwkJCQkJCSppc19jb2VyY2libGUgPSBmYWxzZTsKKwkJCQkJfQor CQkJCX0KKwkJCX0KIAkJfQogCQllbHNlCiAJCQluZXdlID0gY29lcmNlX3RvX2NvbW1vbl90eXBl KHBzdGF0ZSwgZSwKQEAgLTI3MDYsNyArMjc4MCw4IEBAIHRyYW5zZm9ybVdob2xlUm93UmVmKFBh cnNlU3RhdGUgKnBzdGF0ZSwgUGFyc2VOYW1lc3BhY2VJdGVtICpuc2l0ZW0sCiB9CiAKIC8qCi0g KiBIYW5kbGUgYW4gZXhwbGljaXQgQ0FTVCBjb25zdHJ1Y3QuCisgKiBIYW5kbGUgYW4gZXhwbGlj aXQgQ0FTVCBjb25zdHJ1Y3Qgb3IKKyAqIENBU1QoLi4uIERFRkFVTFQgLi4uIE9OIENPTlZFUlNJ T04gRVJST1IpIGNvbnN0cnVjdC4KICAqCiAgKiBUcmFuc2Zvcm0gdGhlIGFyZ3VtZW50LCBsb29r IHVwIHRoZSB0eXBlIG5hbWUsIGFuZCBhcHBseSBhbnkgbmVjZXNzYXJ5CiAgKiBjb2VyY2lvbiBm dW5jdGlvbihzKS4KQEAgLTI3MTQsMTcgKzI3ODksNjMgQEAgdHJhbnNmb3JtV2hvbGVSb3dSZWYo UGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJzZU5hbWVzcGFjZUl0ZW0gKm5zaXRlbSwKIHN0YXRpYyBO b2RlICoKIHRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRj KQogewotCU5vZGUJICAgKnJlc3VsdDsKKwlTYWZlVHlwZUNhc3RFeHByICpzdGM7CisJTm9kZQkg ICAqY2FzdGV4cHIgPSBOVUxMOworCU5vZGUJICAgKmRlZmV4cHIgPSBOVUxMOwogCU5vZGUJICAg KmFyZyA9IHRjLT5hcmc7CisJTm9kZQkgICAqc291cmNlOwogCU5vZGUJICAgKmV4cHI7CiAJT2lk CQkJaW5wdXRUeXBlOwogCU9pZAkJCXRhcmdldFR5cGU7CisJT2lkCQkJdGFyZ2V0VHlwZWNvbGw7 CiAJaW50MzIJCXRhcmdldFR5cG1vZDsKIAlpbnQJCQlsb2NhdGlvbjsKKwlib29sCQlpc19jb2Vy Y2libGUgPSB0cnVlOworCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0ID0ge1RfRXJyb3JTYXZl Q29udGV4dH07CiAKIAkvKiBMb29rIHVwIHRoZSB0eXBlIG5hbWUgZmlyc3QgKi8KIAl0eXBlbmFt ZVR5cGVJZEFuZE1vZChwc3RhdGUsIHRjLT50eXBlTmFtZSwgJnRhcmdldFR5cGUsICZ0YXJnZXRU eXBtb2QpOwogCisJdGFyZ2V0VHlwZWNvbGwgPSBnZXRfdHlwY29sbGF0aW9uKHRhcmdldFR5cGUp OworCisJLyogbG9va2luZyBhdCBERUZBVUxUIGV4cHJlc3Npb24gKi8KKwlpZiAodGMtPmRlZmV4 cHIpCisJeworCQlPaWQJCQlkZWZDb2xsOworCisJCWRlZmV4cHIgPSB0cmFuc2Zvcm1FeHByKHBz dGF0ZSwgdGMtPmRlZmV4cHIsIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQpOworCisJCWRlZmV4cHIg PSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBkZWZleHByLCBleHByVHlwZShkZWZleHBy KSwKKwkJCQkJCQkJCQl0YXJnZXRUeXBlLCB0YXJnZXRUeXBtb2QsCisJCQkJCQkJCQkJQ09FUkNJ T05fRVhQTElDSVQsCisJCQkJCQkJCQkJQ09FUkNFX0VYUExJQ0lUX0NBU1QsCisJCQkJCQkJCQkJ ZXhwckxvY2F0aW9uKGRlZmV4cHIpKTsKKwkJaWYgKGRlZmV4cHIgPT0gTlVMTCkKKwkJCWVyZXBv cnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9DQU5OT1RfQ09FUkNFKSwKKwkJCQkJZXJy bXNnKCJjYW5ub3QgY29lcmNlICVzIGV4cHJlc3Npb24gdG8gdHlwZSAlcyIsCisJCQkJCQkgICAi Q0FTVCBERUZBVUxUIiwKKwkJCQkJCSAgIGZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGUpKSwKKwkJ CQkJcGFyc2VyX2NvZXJjaW9uX2VycnBvc2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKHRjLT5k ZWZleHByKSwgZGVmZXhwcikpOworCisJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCBk ZWZleHByKTsKKworCQkvKgorCQkgKiBUaGUgY29sbGF0aW9uIG9mIERFRkFVTFQgZXhwcmVzc2lv biBtdXN0IG1hdGNoIHRoZSBjb2xsYXRpb24gb2YgdGhlCisJCSAqIHRhcmdldCB0eXBlLgorCQkg Ki8KKwkJZGVmQ29sbCA9IGV4cHJDb2xsYXRpb24oZGVmZXhwcik7CisKKwkJaWYgKHRhcmdldFR5 cGVjb2xsICE9IGRlZkNvbGwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNP REVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQllcnJtc2coInRoZSBjb2xsYXRpb24gb2YgQ0FT VCBERUZBVUxUIGV4cHJlc3Npb24gY29uZmxpY3RzIHdpdGggdGFyZ2V0IHR5cGUgY29sbGF0aW9u IiksCisJCQkJCWVycmRldGFpbCgiXCIlc1wiIHZlcnN1cyBcIiVzXCIiLAorCQkJCQkJCSAgZ2V0 X2NvbGxhdGlvbl9uYW1lKHRhcmdldFR5cGVjb2xsKSwKKwkJCQkJCQkgIGdldF9jb2xsYXRpb25f bmFtZShkZWZDb2xsKSksCisJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2Nh dGlvbihkZWZleHByKSkpOworCX0KKwogCS8qCiAJICogSWYgdGhlIHN1YmplY3Qgb2YgdGhlIHR5 cGVjYXN0IGlzIGFuIEFSUkFZW10gY29uc3RydWN0IGFuZCB0aGUgdGFyZ2V0CiAJICogdHlwZSBp cyBhbiBhcnJheSB0eXBlLCB3ZSBpbnZva2UgdHJhbnNmb3JtQXJyYXlFeHByKCkgZGlyZWN0bHkg c28gdGhhdApAQCAtMjc1Myw3ICsyODc0LDggQEAgdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpCiAJCQkJCQkJCQkgIChBX0FycmF5RXhwciAqKSBhcmcs CiAJCQkJCQkJCQkgIHRhcmdldEJhc2VUeXBlLAogCQkJCQkJCQkJICBlbGVtZW50VHlwZSwKLQkJ CQkJCQkJCSAgdGFyZ2V0QmFzZVR5cG1vZCk7CisJCQkJCQkJCQkgIHRhcmdldEJhc2VUeXBtb2Qs CisJCQkJCQkJCQkgIGRlZmV4cHIgPyAmaXNfY29lcmNpYmxlIDogTlVMTCk7CiAJCX0KIAkJZWxz ZQogCQkJZXhwciA9IHRyYW5zZm9ybUV4cHJSZWN1cnNlKHBzdGF0ZSwgYXJnKTsKQEAgLTI3NzQs MjAgKzI4OTYsMjQzIEBAIHRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlw ZUNhc3QgKnRjKQogCWlmIChsb2NhdGlvbiA8IDApCiAJCWxvY2F0aW9uID0gdGMtPnR5cGVOYW1l LT5sb2NhdGlvbjsKIAotCXJlc3VsdCA9IGNvZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUsIGV4 cHIsIGlucHV0VHlwZSwKLQkJCQkJCQkJICAgdGFyZ2V0VHlwZSwgdGFyZ2V0VHlwbW9kLAotCQkJ CQkJCQkgICBDT0VSQ0lPTl9FWFBMSUNJVCwKLQkJCQkJCQkJICAgQ09FUkNFX0VYUExJQ0lUX0NB U1QsCi0JCQkJCQkJCSAgIGxvY2F0aW9uKTsKLQlpZiAocmVzdWx0ID09IE5VTEwpCisJLyoKKwkg KiBjb2VyY2VfdG9fdGFyZ2V0X3R5cGVfZXh0ZW5kZWQgaXMgdW5saWtlbHkgdG8gbW9kaWZ5IHRo ZSBzb3VyY2UKKwkgKiBleHByZXNzaW9uLCBidXQgd2Ugc3RpbGwgY3JlYXRlIGEgY29weSBiZWZv cmVoYW5kLiBUaGlzIGFsbG93cworCSAqIFNhZmVUeXBlQ2FzdEV4cHIgdG8gcmVjZWl2ZSB0aGUg dHJhbnNmb3JtZWQgc291cmNlIGV4cHJlc3Npb24KKwkgKiB1bmNoYW5nZWQuCisJICovCisJc291 cmNlID0gY29weU9iamVjdChleHByKTsKKworCWlmIChpc19jb2VyY2libGUpCisJeworCQljYXN0 ZXhwciA9IGNvZXJjZV90b190YXJnZXRfdHlwZV9leHRlbmRlZChwc3RhdGUsIGV4cHIsIGlucHV0 VHlwZSwKKwkJCQkJCQkJCQkJCSAgdGFyZ2V0VHlwZSwgdGFyZ2V0VHlwbW9kLAorCQkJCQkJCQkJ CQkJICBDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJCQkJCQkJCQkJCSAgQ09FUkNFX0VYUExJQ0lUX0NB U1QsCisJCQkJCQkJCQkJCQkgIGxvY2F0aW9uLAorCQkJCQkJCQkJCQkJICBkZWZleHByID8gKE5v ZGUgKikgJmVzY29udGV4dCA6IE5VTEwpOworCisJCS8qIENhbm5vdCBjb2VyY2UuIFNldCBpc19j b2VyY2libGUgdG8gZmFsc2Ugb3IgcmFpc2UgYW4gZXJyb3IgKi8KKwkJaWYgKCFjYXN0ZXhwcikK KwkJeworCQkJaXNfY29lcmNpYmxlID0gZmFsc2U7CisKKwkJCWlmICghZGVmZXhwcikKKwkJCQll cmVwb3J0KEVSUk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9DQU5OT1RfQ09FUkNFKSwKKwkJ CQkJCSBlcnJtc2coImNhbm5vdCBjYXN0IHR5cGUgJXMgdG8gJXMiLAorCQkJCQkJCQlmb3JtYXRf dHlwZV9iZShpbnB1dFR5cGUpLAorCQkJCQkJCQlmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlKSks CisJCQkJCQkgcGFyc2VyX2NvZXJjaW9uX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24sIGV4 cHIpKSk7CisJCX0KKworCQkvKiBObyBERUZBVUxUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SLCBl eGl0IG5vdyAqLworCQlpZiAoIWRlZmV4cHIpCisJCQlyZXR1cm4gY2FzdGV4cHI7CisJfQorCisJ LyogRnVydGhlciBjaGVjayBmb3IgQ0FTVCguLi4gREVGQVVMVCAuLi4gT04gQ09OVkVSU0lPTiBF UlJPUikgKi8KKwlDb2VyY2lvbkVycm9yU2FmZUNoZWNrKHBzdGF0ZSwgY2FzdGV4cHIsIHNvdXJj ZSwgaW5wdXRUeXBlLAorCQkJCQkJICAgdGFyZ2V0VHlwZSk7CisKKwlpZiAoSXNBKHNvdXJjZSwg Q29uc3QpICYmIGNhc3RleHByICYmIElzQShjYXN0ZXhwciwgRnVuY0V4cHIpKQorCXsKKwkJTm9k ZQkgICAqbmV3ZXhwciA9IGNvcHlPYmplY3QoY2FzdGV4cHIpOworCisJCWFzc2lnbl9leHByX2Nv bGxhdGlvbnMocHN0YXRlLCBuZXdleHByKTsKKworCQkvKgorCQkgKiBQcmUtZXZhbHVhdGUgc2lt cGxlIGNvbnN0YW50IGNhc3QgZXhwcmVzc2lvbnMgaW4gYW4gZXJyb3Itc2FmZQorCQkgKiBtYW5u ZXIgdmlhIGV2YWx1YXRlX2V4cHIuCisJCSAqCisJCSAqIFJhdGlvbmFsZTogMS4gTGF0ZXIgb3Bl cmF0aW9ucywgc3VjaCBhcyBkZXBhcnNpbmcgc2FmZS1jYXN0CisJCSAqIGV4cHJlc3Npb25zLCBt YXkgaW52b2tlIGV2YWxfY29uc3RfZXhwcmVzc2lvbnMoKS4gQmVjYXVzZSB0aGF0CisJCSAqIGZ1 bmN0aW9uIGNhbm5vdCBoYW5kbGUgZXJyb3JzIGdyYWNlZnVsbHksIHdlIHByZWVtcHRpdmVseSBw ZXJmb3JtCisJCSAqIHRoZSBldmFsdWF0aW9uIGhlcmUgdXNpbmcgdGhlIGVycm9yLXNhZmUgZXZh bHVhdGVfZXhwcigpIGluc3RlYWQuCisJCSAqCisJCSAqIDIuIEV2ZW4gaWYgdGhlIEZ1bmNFeHBy IChmb3IgY2FzdGZ1bmMpIGhhcyB0aHJlZSBhcmd1bWVudHMsIHRoZQorCQkgKiBzZWNvbmQgYW5k IHRoaXJkIGFyZ3VtZW50cyBhcmUgZ3VhcmFudGVlZCB0byBiZSBjb25zdGFudHMgKHNlZQorCQkg KiBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUpLiBFdmFsdWF0aW5nIGEgRnVuY0V4cHIgd2hlcmUgYWxs IGFyZ3VtZW50cworCQkgKiBhcmUgQ29uc3Qgbm9kZXMgaXMgc2FmZSBpbiBldmFsdWF0ZV9leHBy LgorCQkgKi8KKwkJbmV3ZXhwciA9IChOb2RlICopIGV2YWx1YXRlX2V4cHIoKEV4cHIgKikgbmV3 ZXhwciwKKwkJCQkJCQkJCQkgdGFyZ2V0VHlwZSwKKwkJCQkJCQkJCQkgdGFyZ2V0VHlwbW9kLAor CQkJCQkJCQkJCSB0YXJnZXRUeXBlY29sbCwKKwkJCQkJCQkJCQkgKE5vZGUgKikgJmVzY29udGV4 dCk7CisJCS8qIENhbm5vdCBjb2VyY2UgKi8KKwkJaWYgKG5ld2V4cHIgPT0gTlVMTCkKKwkJewor CQkJaXNfY29lcmNpYmxlID0gZmFsc2U7CisJCQljYXN0ZXhwciA9IE5VTEw7CisJCX0KKwl9CisK KwlBc3NlcnQoaXNfY29lcmNpYmxlIHx8IGNhc3RleHByID09IE5VTEwpOworCisJc3RjID0gbWFr ZU5vZGUoU2FmZVR5cGVDYXN0RXhwcik7CisJc3RjLT5zb3VyY2UgPSAoRXhwciAqKSBzb3VyY2U7 CisJc3RjLT5jYXN0ZXhwciA9IChFeHByICopIGNhc3RleHByOworCXN0Yy0+ZGVmZXhwciA9IChF eHByICopIGRlZmV4cHI7CisJc3RjLT5yZXN1bHR0eXBlID0gdGFyZ2V0VHlwZTsKKwlzdGMtPnJl c3VsdHR5cG1vZCA9IHRhcmdldFR5cG1vZDsKKwlzdGMtPnJlc3VsdGNvbGxpZCA9IHRhcmdldFR5 cGVjb2xsOworCXN0Yy0+bG9jYXRpb24gPSBsb2NhdGlvbjsKKworCXJldHVybiAoTm9kZSAqKSBz dGM7Cit9CisKKy8qCisgKiBDaGVjayB0eXBlIGNvZXJjaW9uIGlzIGVycm9yIHNhZmUgb3Igbm90 LiAgSWYgbm90IHRoZW4gcmVwb3J0IGVycm9yCisgKi8KK3N0YXRpYyB2b2lkCitDb2VyY2lvbkVy cm9yU2FmZUNoZWNrKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4cHIsIE5vZGUgKnNv dXJjZSwKKwkJCQkJICAgT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdldFR5cGUpCit7CisJYm9vbAkJ ZXJyb3JzYWZlX2NvZXJjaW9uID0gdHJ1ZTsKKwlib29sCQl1c2VyZGVmaW5lZCA9IGZhbHNlOwor CisJLyoKKwkgKiBCaW5hcnkgY29lcmNpb24gY2FzdCBpcyBlcnJvci1zYWZlLCBDb2VyY2VWaWFJ TyBjYW4gYWxzbyBiZSBldmFsdWF0ZWQKKwkgKiBpbiBhbiBlcnJvci1zYWZlIG1hbm5lci4gU2tp cCB0aGVzZSBjYXNlcy4KKwkgKi8KKwlpZiAoY2FzdGV4cHIgPT0gTlVMTCB8fAorCQlJc0JpbmFy eUNvZXJjaWJsZShpbnB1dFR5cGUsIHRhcmdldFR5cGUpIHx8CisJCUlzQShjYXN0ZXhwciwgQ29l cmNlVmlhSU8pKQorCQlyZXR1cm47CisKKwlDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChpbnB1 dFR5cGUsIHRhcmdldFR5cGUsCisJCQkJCQkJICAgJmVycm9yc2FmZV9jb2VyY2lvbiwKKwkJCQkJ CQkgICAmdXNlcmRlZmluZWQpOworCisJaWYgKCFlcnJvcnNhZmVfY29lcmNpb24pCiAJCWVyZXBv cnQoRVJST1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9DQU5OT1RfQ09FUkNFKSwKLQkJCQkgZXJy bXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRvICVzIiwKLQkJCQkJCWZvcm1hdF90eXBlX2JlKGlu cHV0VHlwZSksCi0JCQkJCQlmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlKSksCi0JCQkJIHBhcnNl cl9jb2VyY2lvbl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uLCBleHByKSkpOworCQkJCWVy cmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCWVycm1zZygiY2Fubm90 IGNhc3QgdHlwZSAlcyB0byAlcyB3aGVuICVzIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluICVz IiwKKwkJCQkJICAgZm9ybWF0X3R5cGVfYmUoaW5wdXRUeXBlKSwKKwkJCQkJICAgZm9ybWF0X3R5 cGVfYmUodGFyZ2V0VHlwZSksCisJCQkJCSAgICJERUZBVUxUIiwKKwkJCQkJICAgIkNBU1QgLi4u IE9OIENPTlZFUlNJT04gRVJST1IiKSwKKwkJCQl1c2VyZGVmaW5lZAorCQkJCT8gZXJyaGludCgi U2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90IHlldCBzdXBwb3J0 ZWQuIikKKwkJCQk6IGVycmhpbnQoIkV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5p dGlvbiBpcyBub3QgZXJyb3Igc2FmZS4iKSwKKwkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCBleHByTG9jYXRpb24oc291cmNlKSkpOworfQogCi0JcmV0dXJuIHJlc3VsdDsKK3N0YXRpYyB2 b2lkCitDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChPaWQgaW5wdXRUeXBlLCBPaWQgdGFyZ2V0 VHlwZSwKKwkJCQkJCSAgIGJvb2wgKmVycm9yc2FmZV9jb2VyY2lvbiwgYm9vbCAqdXNlcmRlZmlu ZWQpCit7CisJSGVhcFR1cGxlCXR1cGxlOworCisJY2hhcgkJaW5wdXRfdHlwdHlwZSA9IGdldF90 eXB0eXBlKGlucHV0VHlwZSk7CisJY2hhcgkJdGFyZ2V0X3R5cHR5cGUgPSBnZXRfdHlwdHlwZSh0 YXJnZXRUeXBlKTsKKworCS8qIHNpbmNlIHRoaXMgZnVuY3Rpb24gcmVjdXJzZXMsIGl0IGNvdWxk IGJlIGRyaXZlbiB0byBzdGFjayBvdmVyZmxvdyAqLworCWNoZWNrX3N0YWNrX2RlcHRoKCk7CisK KwlBc3NlcnQoZXJyb3JzYWZlX2NvZXJjaW9uICE9IE5VTEwpOworCUFzc2VydCh1c2VyZGVmaW5l ZCAhPSBOVUxMKTsKKworCWlmICghKCplcnJvcnNhZmVfY29lcmNpb24pKQorCQlyZXR1cm47CisK KwlpZiAoaW5wdXRfdHlwdHlwZSA9PSBUWVBUWVBFX0RPTUFJTiAmJgorCQl0YXJnZXRfdHlwdHlw ZSA9PSBUWVBUWVBFX0RPTUFJTikKKwl7CisJCUNvZXJjaW9uRXJyb3JTYWZlX0ludGVybmFsKGdl dEJhc2VUeXBlKGlucHV0VHlwZSksCisJCQkJCQkJCSAgIGdldEJhc2VUeXBlKHRhcmdldFR5cGUp LAorCQkJCQkJCQkgICBlcnJvcnNhZmVfY29lcmNpb24sCisJCQkJCQkJCSAgIHVzZXJkZWZpbmVk KTsKKwkJcmV0dXJuOworCX0KKwllbHNlIGlmIChpbnB1dF90eXB0eXBlID09IFRZUFRZUEVfRE9N QUlOKQorCXsKKwkJQ29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwoZ2V0QmFzZVR5cGUoaW5wdXRU eXBlKSwKKwkJCQkJCQkJICAgdGFyZ2V0VHlwZSwKKwkJCQkJCQkJICAgZXJyb3JzYWZlX2NvZXJj aW9uLAorCQkJCQkJCQkgICB1c2VyZGVmaW5lZCk7CisJCXJldHVybjsKKwl9CisJZWxzZSBpZiAo dGFyZ2V0X3R5cHR5cGUgPT0gVFlQVFlQRV9ET01BSU4pCisJeworCQlDb2VyY2lvbkVycm9yU2Fm ZV9JbnRlcm5hbChpbnB1dFR5cGUsCisJCQkJCQkJCSAgIGdldEJhc2VUeXBlKHRhcmdldFR5cGUp LAorCQkJCQkJCQkgICBlcnJvcnNhZmVfY29lcmNpb24sCisJCQkJCQkJCSAgIHVzZXJkZWZpbmVk KTsKKwkJcmV0dXJuOworCX0KKwllbHNlIGlmICgoaW5wdXRfdHlwdHlwZSAhPSBUWVBUWVBFX0JB U0UgJiYgaW5wdXRUeXBlID4gRmlyc3RVbnBpbm5lZE9iamVjdElkKQorCQkJIHx8ICh0YXJnZXRf dHlwdHlwZSAhPSBUWVBUWVBFX0JBU0UgJiYgdGFyZ2V0VHlwZSA+IEZpcnN0VW5waW5uZWRPYmpl Y3RJZCkpCisJeworCQkvKgorCQkgKiBDb21wb3NpdGUtdG8tY29tcG9zaXRlIGNhc3RpbmcgaXMg bm90IGltcGxlbWVudGVkLCBzbyBlcnJvci1zYWZlCisJCSAqIGNhc3QgYmV0d2VlbiB0aGVtIHNo b3VsZCBub3QgYmUgcG9zc2libGU7IHdlIGZvcmJpZCBpdCBoZXJlLgorCQkgKgorCQkgKiBPdXIg dHlwZSBzeXN0ZW0gZG9lcyBub3QgYXV0b21hdGljYWxseSBjYXN0IGEgdXNlci1kZWZpbmVkIHJh bmdlCisJCSAqIHR5cGUgdG8gYW4gYnVpbHQtaW4gcmFuZ2UgdHlwZSwgZXZlbiBpZiB0aGVpciBi YXNlIGVsZW1lbnQgdHlwZXMKKwkJICogYXJlIHRoZSBzYW1lLiBUaGVyZSBtYXkgYmUgY29tcGxl eCBlZGdlIGNhc2VzIHRvIGNvbnNpZGVyLCBzYWZlciB0bworCQkgKiBzaW1wbHkgZGlzYWxsb3cg ZXJyb3Itc2FmZSBjYXN0aW5nIGZvciB0aGVtIG5vdy4KKwkJICovCisJCSplcnJvcnNhZmVfY29l cmNpb24gPSBmYWxzZTsKKworCQlyZXR1cm47CisJfQorCWVsc2UKKwl7CisJCU9pZAkJCWlucHV0 X3R5cGVsZW0gPSBnZXRfZWxlbWVudF90eXBlKGlucHV0VHlwZSk7CisJCU9pZAkJCXRhcmdldF90 eXBlbGVtID0gZ2V0X2VsZW1lbnRfdHlwZSh0YXJnZXRUeXBlKTsKKworCQlpZiAoT2lkSXNWYWxp ZChpbnB1dF90eXBlbGVtKSAmJiBPaWRJc1ZhbGlkKHRhcmdldF90eXBlbGVtKSkKKwkJeworCQkJ LyogcmVjdXJzZSBpbnRvIGFycmF5IGVsZW1lbnQgdHlwZSAqLworCQkJQ29lcmNpb25FcnJvclNh ZmVfSW50ZXJuYWwoaW5wdXRfdHlwZWxlbSwKKwkJCQkJCQkJCSAgIHRhcmdldF90eXBlbGVtLAor CQkJCQkJCQkJICAgZXJyb3JzYWZlX2NvZXJjaW9uLAorCQkJCQkJCQkJICAgdXNlcmRlZmluZWQp OworCQkJcmV0dXJuOworCQl9CisJfQorCisJLyoKKwkgKiBDYXN0cyBpbnZvbHZpbmcgdHlwZSBN T05FWSBhcmUgbm90IGVycm9yIHNhZmUuICBUeXBlIENJUkNMRSB0byB0eXBlCisJICogUE9MWUdP TiBjYXN0IGlzIHVuc2FmZSBiZWNhdXNlIGl0IHJlbGllcyBvbiBhIFNRTC1sYW5ndWFnZSBmdW5j dGlvbjsKKwkgKiBvbmx5IEMtbGFuZ3VhZ2UgZnVuY3Rpb25zIGFyZSBjdXJyZW50bHkgc3VwcG9y dGVkIGZvciBlcnJvciBzYWZlIGNhc3RzLgorCSAqLworCWlmIChpbnB1dFR5cGUgPT0gTU9ORVlP SUQgfHwKKwkJdGFyZ2V0VHlwZSA9PSBNT05FWU9JRCB8fAorCQkoaW5wdXRUeXBlID09IENJUkNM RU9JRCAmJiB0YXJnZXRUeXBlID09IFBPTFlHT05PSUQpKQorCXsKKwkJKmVycm9yc2FmZV9jb2Vy Y2lvbiA9IGZhbHNlOworCQlyZXR1cm47CisJfQorCisJaWYgKGlucHV0VHlwZSAhPSB0YXJnZXRU eXBlKQorCXsKKwkJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIoQ0FTVFNPVVJDRVRBUkdFVCwKKwkJ CQkJCQkJT2JqZWN0SWRHZXREYXR1bShpbnB1dFR5cGUpLAorCQkJCQkJCQlPYmplY3RJZEdldERh dHVtKHRhcmdldFR5cGUpKTsKKworCQkvKgorCQkgKiBBIHBnX2Nhc3QgZW50cnkgbWlnaHQgbm90 IGV4aXN0IGZvciB0aGlzIHNwZWNpZmljIGNhc3Q7IGZvcgorCQkgKiBleGFtcGxlLCB3aGVuIHVz aW5nIENvZXJjZVZpYUlPLgorCQkgKi8KKwkJaWYgKEhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQor CQl7CisJCQlGb3JtX3BnX2Nhc3QgY2FzdEZvcm0gPSAoRm9ybV9wZ19jYXN0KSBHRVRTVFJVQ1Qo dHVwbGUpOworCisJCQlpZiAoY2FzdEZvcm0tPm9pZCA+IEZpcnN0VW5waW5uZWRPYmplY3RJZCAm JgorCQkJCWNhc3RGb3JtLT5jYXN0bWV0aG9kICE9IENPRVJDSU9OX01FVEhPRF9CSU5BUlkpCisJ CQl7CisJCQkJKmVycm9yc2FmZV9jb2VyY2lvbiA9IGZhbHNlOworCQkJCSp1c2VyZGVmaW5lZCA9 IHRydWU7CisJCQl9CisJCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOworCQl9CisJCWVsc2UgaWYg KGlucHV0VHlwZSA+IEZpcnN0VW5waW5uZWRPYmplY3RJZCAmJiB0YXJnZXRUeXBlID4gRmlyc3RV bnBpbm5lZE9iamVjdElkKQorCQkJKmVycm9yc2FmZV9jb2VyY2lvbiA9IGZhbHNlOworCX0KIH0K IAogLyoKQEAgLTMyMDMsNiArMzU0OCw4IEBAIFBhcnNlRXhwcktpbmROYW1lKFBhcnNlRXhwcktp bmQgZXhwcktpbmQpCiAJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6CiAJCWNhc2Ug RVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKIAkJCXJldHVybiAiQ0hFQ0siOworCQljYXNlIEVYUFJf S0lORF9DQVNUX0RFRkFVTFQ6CisJCQlyZXR1cm4gIkNBU1QgREVGQVVMVCI7CiAJCWNhc2UgRVhQ Ul9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxU OgogCQkJcmV0dXJuICJERUZBVUxUIjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9mdW5jLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4IDI0ZjY3 NDU5MjNiLi41OTBhOGE3ODVjOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl X2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCkBAIC0yNzQzLDYg KzI3NDMsOSBAQCBjaGVja19zcmZfY2FsbF9wbGFjZW1lbnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBO b2RlICpsYXN0X3NyZiwgaW50IGxvY2F0aW9uKQogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hF Q0s6CiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQg aW4gY2hlY2sgY29uc3RyYWludHMiKTsKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9DQVNU X0RFRkFVTFQ6CisJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFs bG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAkJY2FzZSBF WFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFV TFQ6CiAJCQllcnIgPSBfKCJzZXQtcmV0dXJuaW5nIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQg aW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3R5cGUuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMKaW5kZXggYmI3 ZWNjZGU5ZmQuLjI4M2RmYzJlZTk5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfdHlwZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMKQEAgLTY2MCw2 ICs2NjAsMjQgQEAgc3RyaW5nVHlwZURhdHVtKFR5cGUgdHAsIGNoYXIgKnN0cmluZywgaW50MzIg YXR0dHlwbW9kKQogCXJldHVybiBPaWRJbnB1dEZ1bmN0aW9uQ2FsbCh0eXBpbnB1dCwgc3RyaW5n LCB0eXBpb3BhcmFtLCBhdHR0eXBtb2QpOwogfQogCisvKgorICogRXJyb3Itc2FmZSB2ZXJzaW9u IG9mIHN0cmluZ1R5cGVEYXR1bS4KKyAqCisgKiBSZXR1cm5zIHRydWUgaWYgInN0cmluZyIgaXMg YSB2YWxpZCByZXByZXNlbnRhdGlvbiBvZiB0eXBlICJ0cCIuCisgKiBPbiBzdWNjZXNzLCB0aGUg aW50ZXJuYWwgRGF0dW0gcmVwcmVzZW50YXRpb24gaXMgd3JpdHRlbiB0byAicmVzdWx0Ii4KKyAq LworYm9vbAorc3RyaW5nVHlwZURhdHVtU2FmZShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMy IGF0dHR5cG1vZCwKKwkJCQkJTm9kZSAqZXNjb250ZXh0LCBEYXR1bSAqcmVzdWx0KQoreworCUZv cm1fcGdfdHlwZSB0eXBmb3JtID0gKEZvcm1fcGdfdHlwZSkgR0VUU1RSVUNUKHRwKTsKKwlPaWQJ CQl0eXBpbnB1dCA9IHR5cGZvcm0tPnR5cGlucHV0OworCU9pZAkJCXR5cGlvcGFyYW0gPSBnZXRU eXBlSU9QYXJhbSh0cCk7CisKKwlyZXR1cm4gT2lkSW5wdXRGdW5jdGlvbkNhbGxTYWZlKHR5cGlu cHV0LCBzdHJpbmcsIHR5cGlvcGFyYW0sIGF0dHR5cG1vZCwKKwkJCQkJCQkJCWVzY29udGV4dCwg cmVzdWx0KTsKK30KKwogLyoKICAqIEdpdmVuIGEgdHlwZWlkLCByZXR1cm4gdGhlIHR5cGUncyB0 eXByZWxpZCAoYXNzb2NpYXRlZCByZWxhdGlvbiksIGlmIGFueS4KICAqIFJldHVybnMgSW52YWxp ZE9pZCBpZiB0eXBlIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlLgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91 dGlsY21kLmMKaW5kZXggY2MyNDRjNDllOWUuLjRhNTA4MmIzNTY1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV91dGlsY21kLmMKQEAgLTQ5NTAsNyArNDk1MCw3IEBAIHRyYW5zZm9ybVBhcnRpdGlvbkJv dW5kVmFsdWUoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICp2YWwsCiAJCWFzc2lnbl9leHByX2Nv bGxhdGlvbnMocHN0YXRlLCB2YWx1ZSk7CiAJCXZhbHVlID0gKE5vZGUgKikgZXhwcmVzc2lvbl9w bGFubmVyKChFeHByICopIHZhbHVlKTsKIAkJdmFsdWUgPSAoTm9kZSAqKSBldmFsdWF0ZV9leHBy KChFeHByICopIHZhbHVlLCBjb2xUeXBlLCBjb2xUeXBtb2QsCi0JCQkJCQkJCQkgICBwYXJ0Q29s bGF0aW9uKTsKKwkJCQkJCQkJCSAgIHBhcnRDb2xsYXRpb24sIE5VTEwpOwogCQlpZiAoIUlzQSh2 YWx1ZSwgQ29uc3QpKQogCQkJZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBldmFsdWF0ZSBwYXJ0aXRp b24gYm91bmQgZXhwcmVzc2lvbiIpOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9hcnJheWZ1bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jCmlu ZGV4IDczNGU1ZmVhNDVlLi5kYmZlNWY0YTc5ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L2FycmF5ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5j cy5jCkBAIC0zMjk0LDYgKzMyOTQsMTUgQEAgYXJyYXlfbWFwKERhdHVtIGFycmF5ZCwKIAkJLyog QXBwbHkgdGhlIGdpdmVuIGV4cHJlc3Npb24gdG8gc291cmNlIGVsZW1lbnQgKi8KIAkJdmFsdWVz W2ldID0gRXhlY0V2YWxFeHByKGV4cHJzdGF0ZSwgZWNvbnRleHQsICZudWxsc1tpXSk7CiAKKwkJ LyogRXhpdCBlYXJseSBpZiBldmFsdWF0aW9uIGZhaWxlZCAqLworCQlpZiAoU09GVF9FUlJPUl9P Q0NVUlJFRChleHByc3RhdGUtPmVzY29udGV4dCkpCisJCXsKKwkJCXBmcmVlKHZhbHVlcyk7CisJ CQlwZnJlZShudWxscyk7CisKKwkJCXJldHVybiAoRGF0dW0pIDA7CisJCX0KKwogCQlpZiAobnVs bHNbaV0pCiAJCQloYXNudWxscyA9IHRydWU7CiAJCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRp bHMuYwppbmRleCA2Mjk4YTM3Zjg4ZS4uNzgyOTJhNmM5NmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVs ZXV0aWxzLmMKQEAgLTEwNTg0LDYgKzEwNTg0LDMxIEBAIGdldF9ydWxlX2V4cHIoTm9kZSAqbm9k ZSwgZGVwYXJzZV9jb250ZXh0ICpjb250ZXh0LAogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBU X1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwciA9 IGNhc3ROb2RlKFNhZmVUeXBlQ2FzdEV4cHIsIG5vZGUpOworCisJCQkJLyoKKwkJCQkgKiBXZSBj YW5ub3QganVzdCBkZXBhcnNpbmcgY2FzdGV4cHIgZGlyZWN0bHkgaGVyZSwgc2luY2UKKwkJCQkg KiB0cmFuc2Zvcm1UeXBlQ2FzdCBtYXkgaGF2ZSBhbHJlYWR5IGNvbnN0YW50LWZvbGRpbmcgaXQg aW50bworCQkJCSAqIGEgTlVMTC4gSW5zdGVhZCwgd2UgdXNlIHNvdXJjZSBhbmQgZGVmZXhwciB0 byByZWNvbnN0cnVjdAorCQkJCSAqIHRoZSBDQVNUIERFRkFVTFQgY2xhdXNlLgorCQkJCSAqLwor CQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiQ0FTVCgiKTsKKwkJCQlnZXRfcnVsZV9l eHByKChOb2RlICopIHN0Y2V4cHItPnNvdXJjZSwgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKKwor CQkJCWFwcGVuZFN0cmluZ0luZm8oYnVmLCAiIEFTICVzICIsCisJCQkJCQkJCSBmb3JtYXRfdHlw ZV93aXRoX3R5cGVtb2Qoc3RjZXhwci0+cmVzdWx0dHlwZSwKKwkJCQkJCQkJCQkJCQkJICBzdGNl eHByLT5yZXN1bHR0eXBtb2QpKTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAi REVGQVVMVCAiKTsKKworCQkJCWdldF9ydWxlX2V4cHIoKE5vZGUgKikgc3RjZXhwci0+ZGVmZXhw ciwgY29udGV4dCwgc2hvd2ltcGxpY2l0KTsKKworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmco YnVmLCAiIE9OIENPTlZFUlNJT04gRVJST1IpIik7CisJCQl9CisJCQlicmVhazsKKwogCQljYXNl IFRfSnNvbkV4cHI6CiAJCQl7CiAJCQkJSnNvbkV4cHIgICAqamV4cHIgPSAoSnNvbkV4cHIgKikg bm9kZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKaW5kZXggNGUyNmRmN2M2M2EuLmM2NzA3ZThjMzVjIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9mbWdyL2ZtZ3IuYwpAQCAtMTc1OSw2ICsxNzU5LDE5IEBAIE9pZElucHV0RnVuY3Rp 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 eCA2M2MwNjdkNWFhZS4uMDhlNzVlNzA5NjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0xMDYy LDYgKzEwNjIsMjcgQEAgdHlwZWRlZiBzdHJ1Y3QgRG9tYWluQ29uc3RyYWludFN0YXRlCiAJRXhw clN0YXRlICAqY2hlY2tfZXhwcnN0YXRlOwkvKiBjaGVja19leHByJ3MgZXZhbCBzdGF0ZSwgb3Ig TlVMTCAqLwogfSBEb21haW5Db25zdHJhaW50U3RhdGU7CiAKK3R5cGVkZWYgc3RydWN0IFNhZmVU eXBlQ2FzdFN0YXRlCit7CisJU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwcjsKKworCS8qCisJICog QWRkcmVzcyB0byBqdW1wIHRvIHdoZW4gc2tpcHBpbmcgYWxsIHRoZSBzdGVwcyB0byBldmF1bGF0 ZSB0aGUgZGVmYXVsdAorCSAqIGV4cHJlc3Npb24uCisJICovCisJaW50CQkJanVtcF9lbmQ7CisK KwkvKgorCSAqIEZvciBlcnJvci1zYWZlIGV2YWx1YXRpb24gb2YgY29lcmNpb25zLiBBIHBvaW50 ZXIgdG8gdGhpcyBpcyBwYXNzZWQgdG8KKwkgKiBFeGVjSW5pdEV4cHJSZWMoKSB3aGVuIGluaXRp YWxpemluZyB0aGUgY29lcmNpb24gZXhwcmVzc2lvbnMsIHNlZQorCSAqIEV4ZWNJbml0U2FmZVR5 cGVDYXN0RXhwci4KKwkgKgorCSAqIFJlc2V0IGZvciBlYWNoIGV2YWx1YXRpb24gb2YgRUVPUF9T QUZFVFlQRV9DQVNULgorCSAqLworCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0OworCit9IFNh ZmVUeXBlQ2FzdFN0YXRlOworCiAvKgogICogU3RhdGUgZm9yIEpzb25FeHByIGV2YWx1YXRpb24s IHRvbyBiaWcgdG8gaW5saW5lLgogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBmM2QzMmVm MDE4OC4uOGIwZWQzYWVmYTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM5Nyw2ICszOTcs NyBAQCB0eXBlZGVmIHN0cnVjdCBUeXBlQ2FzdAogCU5vZGVUYWcJCXR5cGU7CiAJTm9kZQkgICAq YXJnOwkJCS8qIHRoZSBleHByZXNzaW9uIGJlaW5nIGNhc3RlZCAqLwogCVR5cGVOYW1lICAgKnR5 cGVOYW1lOwkJLyogdGhlIHRhcmdldCB0eXBlICovCisJTm9kZQkgICAqZGVmZXhwcjsJCS8qIERF RkFVTFQgZXhwcmVzc2lvbiAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwkJLyogdG9rZW4gbG9jYXRp b24sIG9yIC0xIGlmIHVua25vd24gKi8KIH0gVHlwZUNhc3Q7CiAKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgK aW5kZXggMzg0ZGY1MGM4MGEuLmZjOTYzYTYwNzJiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9wcmltbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaApAQCAt NzcwLDYgKzc3MCwzMSBAQCB0eXBlZGVmIGVudW0gQ29lcmNpb25Gb3JtCiAJQ09FUkNFX1NRTF9T WU5UQVgsCQkJLyogZGlzcGxheSB3aXRoIFNRTC1tYW5kYXRlZCBzcGVjaWFsIHN5bnRheCAqLwog fSBDb2VyY2lvbkZvcm07CiAKKy8qCisgKiBTYWZlVHlwZUNhc3RFeHByIC0KKyAqCQlUcmFuc2Zv cm1lZCByZXByZXNlbnRhdGlvbiBvZgorICogCQlDQVNUKGV4cHIgQVMgdHlwZW5hbWUgREVGQVVM VCBleHByIE9OIENPTlZFUlNJT04gRVJST1IpCisgKiAJCUNBU1QoZXhwciBBUyB0eXBlbmFtZSBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpCisgKi8KK3R5cGVkZWYgc3RydWN0IFNhZmVUeXBlQ2Fz dEV4cHIKK3sKKwlFeHByCQl4cHI7CisJLyogdHJhbnNmb3JtZWQgc291cmNlIGV4cHJlc3Npb24g ZnJvbSBwYXJzZXIgKi8KKwlFeHByCSAgICpzb3VyY2U7CisJLyogdHJhbnNmb3JtZWQgY2FzdCBl eHByZXNzaW9uLCBOVUxMIG1lYW5zIGNhbm5vdCBjb2VyY2UgdG8gdGFyZ2V0IHR5cGUgKi8KKwlF eHByCSAgICpjYXN0ZXhwciBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisJLyog RmFsbC1iYWNrIHRvIHRoZSBkZWZhdWx0IGV4cHJlc3Npb24gaWYgY2FzdCBldmFsdWF0aW9uIGZh aWxzICovCisJRXhwcgkgICAqZGVmZXhwcjsKKwkvKiB0YXJnZXQgdHlwZSBPaWQgKi8KKwlPaWQJ CQlyZXN1bHR0eXBlOworCS8qIHRhcmdldCB0eXBlIG1vZGlmaWVyICovCisJaW50MzIJCXJlc3Vs dHR5cG1vZDsKKwkvKiBPSUQgb2YgY29sbGF0aW9uLCBvciBJbnZhbGlkT2lkIGlmIG5vbmUgKi8K KwlPaWQJCQlyZXN1bHRjb2xsaWQ7CisJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0xIGlmIHVua25v d24gKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsKK30gU2FmZVR5cGVDYXN0RXhwcjsKKwogLyoKICAq IEZ1bmNFeHByIC0gZXhwcmVzc2lvbiBub2RlIGZvciBhIGZ1bmN0aW9uIGNhbGwKICAqCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmggYi9zcmMvaW5jbHVkZS9v cHRpbWl6ZXIvb3B0aW1pemVyLmgKaW5kZXggZThiNDA5YWZiN2YuLmI2ODZiZTA0OWI5IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmgKKysrIGIvc3JjL2luY2x1 ZGUvb3B0aW1pemVyL29wdGltaXplci5oCkBAIC0xNTEsNyArMTUxLDcgQEAgZXh0ZXJuIHZvaWQg Y29udmVydF9zYW9wX3RvX2hhc2hlZF9zYW9wKE5vZGUgKm5vZGUpOwogZXh0ZXJuIE5vZGUgKmVz dGltYXRlX2V4cHJlc3Npb25fdmFsdWUoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpOwog CiBleHRlcm4gRXhwciAqZXZhbHVhdGVfZXhwcihFeHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUs IGludDMyIHJlc3VsdF90eXBtb2QsCi0JCQkJCQkgICBPaWQgcmVzdWx0X2NvbGxhdGlvbik7CisJ CQkJCQkgICBPaWQgcmVzdWx0X2NvbGxhdGlvbiwgTm9kZSAqZXNjb250ZXh0KTsKIAogZXh0ZXJu IGJvb2wgdmFyX2lzX25vbm51bGxhYmxlKFBsYW5uZXJJbmZvICpyb290LCBWYXIgKnZhciwKIAkJ CQkJCQkgICBOb3ROdWxsU291cmNlIHNvdXJjZSk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfY29lcmNlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfY29lcmNlLmgK aW5kZXggYWFiYWNkNDliNjUuLmVlOTM5ZWFjNTU2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfY29lcmNlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJj ZS5oCkBAIC00MywxMSArNDMsMjQgQEAgZXh0ZXJuIE5vZGUgKmNvZXJjZV90b190YXJnZXRfdHlw ZShQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCSAgIENvZXJjaW9uQ29udGV4dCBjY29udGV4 dCwKIAkJCQkJCQkJICAgQ29lcmNpb25Gb3JtIGNmb3JtYXQsCiAJCQkJCQkJCSAgIGludCBsb2Nh dGlvbik7CitleHRlcm4gTm9kZSAqY29lcmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVkKFBhcnNl U3RhdGUgKnBzdGF0ZSwKKwkJCQkJCQkJCQkJTm9kZSAqZXhwciwKKwkJCQkJCQkJCQkJT2lkIGV4 cHJ0eXBlLAorCQkJCQkJCQkJCQlPaWQgdGFyZ2V0dHlwZSwKKwkJCQkJCQkJCQkJaW50MzIgdGFy Z2V0dHlwbW9kLAorCQkJCQkJCQkJCQlDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsCisJCQkJCQkJ CQkJCUNvZXJjaW9uRm9ybSBjZm9ybWF0LAorCQkJCQkJCQkJCQlpbnQgbG9jYXRpb24sCisJCQkJ CQkJCQkJCU5vZGUgKmVzY29udGV4dCk7CiBleHRlcm4gYm9vbCBjYW5fY29lcmNlX3R5cGUoaW50 IG5hcmdzLCBjb25zdCBPaWQgKmlucHV0X3R5cGVpZHMsIGNvbnN0IE9pZCAqdGFyZ2V0X3R5cGVp ZHMsCiAJCQkJCQkJQ29lcmNpb25Db250ZXh0IGNjb250ZXh0KTsKIGV4dGVybiBOb2RlICpjb2Vy Y2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCiAJCQkJCQkgT2lkIGlucHV0 VHlwZUlkLCBPaWQgdGFyZ2V0VHlwZUlkLCBpbnQzMiB0YXJnZXRUeXBlTW9kLAogCQkJCQkJIENv ZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsIGludCBsb2NhdGlv bik7CitleHRlcm4gTm9kZSAqY29lcmNlX3R5cGVfZXh0ZW5kZWQoUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpub2RlLAorCQkJCQkJCQkgIE9pZCBpbnB1dFR5cGVJZCwgT2lkIHRhcmdldFR5cGVJ ZCwgaW50MzIgdGFyZ2V0VHlwZU1vZCwKKwkJCQkJCQkJICBDb2VyY2lvbkNvbnRleHQgY2NvbnRl eHQsIENvZXJjaW9uRm9ybSBjZm9ybWF0LCBpbnQgbG9jYXRpb24sCisJCQkJCQkJCSAgTm9kZSAq ZXNjb250ZXh0KTsKIGV4dGVybiBOb2RlICpjb2VyY2VfdG9fZG9tYWluKE5vZGUgKmFyZywgT2lk IGJhc2VUeXBlSWQsIGludDMyIGJhc2VUeXBlTW9kLAogCQkJCQkJCSAgT2lkIHR5cGVJZCwKIAkJ CQkJCQkgIENvZXJjaW9uQ29udGV4dCBjY29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsIGlu dCBsb2NhdGlvbiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgg Yi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4IGYyM2UyMWYzMThiLi4yZGQw YzA5NWNlZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAorKysg Yi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCkBAIC02Nyw2ICs2Nyw4IEBAIHR5cGVk ZWYgZW51bSBQYXJzZUV4cHJLaW5kCiAJRVhQUl9LSU5EX1ZBTFVFU19TSU5HTEUsCS8qIHNpbmds ZS1yb3cgVkFMVUVTIChpbiBJTlNFUlQgb25seSkgKi8KIAlFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RS QUlOVCwgLyogQ0hFQ0sgY29uc3RyYWludCBmb3IgYSB0YWJsZSAqLwogCUVYUFJfS0lORF9ET01B SU5fQ0hFQ0ssCQkvKiBDSEVDSyBjb25zdHJhaW50IGZvciBhIGRvbWFpbiAqLworCUVYUFJfS0lO RF9DQVNUX0RFRkFVTFQsCQkvKiBkZWZhdWx0IGV4cHJlc3Npb24gaW4gQ0FTVCBERUZBVUxUIE9O CisJCQkJCQkJCSAqIENPTlZFUlNJT04gRVJST1IgKi8KIAlFWFBSX0tJTkRfQ09MVU1OX0RFRkFV TFQsCS8qIGRlZmF1bHQgdmFsdWUgZm9yIGEgdGFibGUgY29sdW1uICovCiAJRVhQUl9LSU5EX0ZV TkNUSU9OX0RFRkFVTFQsIC8qIGRlZmF1bHQgcGFyYW1ldGVyIHZhbHVlIGZvciBmdW5jdGlvbiAq LwogCUVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OLCAvKiBpbmRleCBleHByZXNzaW9uICovCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oIGIvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX3R5cGUuaAppbmRleCBhMzM1ODA3YjBiMC4uZTMwM2ExMDczYzEgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmgKKysrIGIvc3JjL2luY2x1ZGUv cGFyc2VyL3BhcnNlX3R5cGUuaApAQCAtNDcsNiArNDcsOCBAQCBleHRlcm4gY2hhciAqdHlwZVR5 cGVOYW1lKFR5cGUgdCk7CiBleHRlcm4gT2lkCXR5cGVUeXBlUmVsaWQoVHlwZSB0eXApOwogZXh0 ZXJuIE9pZAl0eXBlVHlwZUNvbGxhdGlvbihUeXBlIHR5cCk7CiBleHRlcm4gRGF0dW0gc3RyaW5n VHlwZURhdHVtKFR5cGUgdHAsIGNoYXIgKnN0cmluZywgaW50MzIgYXR0dHlwbW9kKTsKK2V4dGVy biBib29sIHN0cmluZ1R5cGVEYXR1bVNhZmUoVHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBh dHR0eXBtb2QsCisJCQkJCQkJCU5vZGUgKmVzY29udGV4dCwgRGF0dW0gKnJlc3VsdCk7CiAKIGV4 dGVybiBPaWQJdHlwZWlkVHlwZVJlbGlkKE9pZCB0eXBlX2lkKTsKIGV4dGVybiBPaWQJdHlwZU9y RG9tYWluVHlwZVJlbGlkKE9pZCB0eXBlX2lkKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY2FzdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0 Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNmFjOTU5NzYyNQotLS0g L2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKQEAgLTAs MCArMSw4NjAgQEAKK1NFVCBleHRyYV9mbG9hdF9kaWdpdHMgPSAwOworLS0gQ0FTVCBERUZBVUxU IE9OIENPTlZFUlNJT04gRVJST1IKK1NFTEVDVCBDQVNUKEInMDEnIEFTIGRhdGUgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGRhdGUgCistLS0tLS0KKyAKKygxIHJvdykKKwor U0VMRUNUIENBU1QoQklUJzAxJyBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBkYXRlIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKFRSVUUgQVMg ZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQor IAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxLjEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgxIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGRhdGUgCist LS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoMTExMSBBUyAiY2hhciIgREVGQVVMVCAn QScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY2hhciAKKy0tLS0tLQorIEEKKygxIHJvdykKKwor LS0gc291cmNlIGV4cHJlc3Npb24gaXMgYSB1bmtub3duIGNvbnN0CitWQUxVRVMgKENBU1QoJ2Vy cm9yJyBBUyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IpKTsgLS0gZXJyb3IKK0VS Uk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogImVycm9yIgorTElO RSAxOiBWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZFUlNJT04g RVJST1IpKTsKKyAgICAgICAgICAgICAgICAgICAgIF4KK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFT IGludGVnZXIgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgY29sdW1uMSAKKy0tLS0tLS0t LQorICAgICAgICAKKygxIHJvdykKKworVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBE RUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisg ICAgICA0MgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgMTggT04g Q09OVkVSU0lPTiBFUlJPUik7CisgaW50NCAKKy0tLS0tLQorICAgMTgKKygxIHJvdykKKworU0VM RUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsg LS0gZXJyb3IKK0VSUk9SOiAgYWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4g Q0FTVCBERUZBVUxUIGV4cHJlc3Npb25zCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQg REVGQVVMVCBzdW0oMSkgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3Vt KDEpIG92ZXIoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK0VSUk9SOiAgd2luZG93 IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zCitM SU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3ZlcigpIE9OIENP TlZFUlNJT04gRS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor U0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIChTRUxFQ1QgTlVMTCkgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gQ0FTVCBE RUZBVUxUIGV4cHJlc3Npb24KK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxU IChTRUxFQ1QgTlVMTCkgT04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRh eCBmb3IgdHlwZSBpbnRlZ2VyOiAiYiIKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBE RUZBVUxUICdiJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJzo6aW50IGFzIGludCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQg c3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJhIgorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYSc6Omlu dCBhcyBpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IuLi4KKyAgICAgICAgICAg ICAgICAgICAgXgorLS0gdGhlIGRlZmF1bHQgZXhwcmVzc2lvbuKAmXMgY29sbGF0aW9uIHNob3Vs ZCBtYXRjaCB0YXJnZXQgdHlwZSBjb2xsYXRpb24KK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIHRl eHQgREVGQVVMVCAnMScgQ09MTEFURSAiQyIgT04gQ09OVkVSU0lPTiBFUlJPUikpOworRVJST1I6 ICB0aGUgY29sbGF0aW9uIG9mIENBU1QgREVGQVVMVCBleHByZXNzaW9uIGNvbmZsaWN0cyB3aXRo IHRhcmdldCB0eXBlIGNvbGxhdGlvbgorTElORSAxOiBWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyB0 ZXh0IERFRkFVTFQgJzEnIENPTExBVEUgIkMiIE9OIENPTlYuLi4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJTDogICJkZWZhdWx0IiB2ZXJzdXMg IkMiCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yIERFRkFVTFQgJzEgMycgIE9O IENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgMSAzCisoMSByb3cp CisKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7MSAzfScg IE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0tLS0tLS0tCisgeyIxIDMifQor KDEgcm93KQorCistLSBzb3VyY2UgZXhwcmVzc2lvbiBjb250YWluIHN1YnF1ZXJ5CitTRUxFQ1Qg Q0FTVCgoU0VMRUNUIGIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSksIChWQUxVRVMoJ0gnKSkg cyhiKSkKKyAgICAgICAgICAgIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7MSAzfScgIE9OIENP TlZFUlNJT04gRVJST1IpOworICAgIGIgICAgCistLS0tLS0tLS0KKyB7IjEgMyJ9CisoMSByb3cp CisKK1NFTEVDVCBDQVNUKChTRUxFQ1QgQVJSQVkoKFNFTEVDVCBiIEZST00gZ2VuZXJhdGVfc2Vy aWVzKDEsIDIpIGcsIChWQUxVRVMoJ0gnKSkgcyhiKSkpKQorICAgICAgICAgICAgQVMgSU5UW10K KyAgICAgICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAK Ky0tLS0tLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIEZVTkNUSU9OIHJldF9pbnQ4KCkgUkVUVVJO UyBCSUdJTlQgQVMKKyQkCitCRUdJTiBSRVRVUk4gMjE0NzQ4MzY0ODsgRU5EOworJCQKK0xBTkdV QUdFIHBscGdzcWwgSU1NVVRBQkxFOworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHJl dF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGludGVnZXIg b3V0IG9mIHJhbmdlCitTRUxFQ1QgQ0FTVCgnYScgYXMgZGF0ZSBERUZBVUxUIHJldF9pbnQ4KCkg T04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIGNhbm5vdCBjb2VyY2UgQ0FT VCBERUZBVUxUIGV4cHJlc3Npb24gdG8gdHlwZSBkYXRlCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdh JyBhcyBkYXRlIERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUi4uLgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KKy0tIERFRkFVTFQgZXhwcmVzc2lv biBjYW5ub3QgYmUgc2V0LXJldHVybmluZworQ1JFQVRFIEZVTkNUSU9OIHJldF9zZXRpbnQoKSBS RVRVUk5TIFNFVE9GIGludGVnZXIgQVMKKyQkCitCRUdJTiBSRVRVUk4gUVVFUlkgRVhFQ1VURSAn c2VsZWN0IDEgdW5pb24gYWxsIHNlbGVjdCAxJzsgRU5EOworJCQKK0xBTkdVQUdFIHBscGdzcWwg SU1NVVRBQkxFOworQ1JFQVRFIFRBQkxFIHRjYXN0KGEgdGV4dFtdLCBiIGludCBHRU5FUkFURUQg QlkgREVGQVVMVCBBUyBJREVOVElUWSk7CitJTlNFUlQgSU5UTyB0Y2FzdCBWQUxVRVMgKCd7MTJ9 JyksICgnezEsYSwgYn0nKSwgKCd7ezEsMn0sIHtjLGR9fScpLCAoJ3sxM30nKTsKK1NFTEVDVCBD QVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfc2V0aW50KCkgT04gQ09OVkVSU0lPTiBFUlJPUikg RlJPTSB0Y2FzdDsgLS0gZXJyb3IKK0VSUk9SOiAgc2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJl IG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucworTElORSAxOiBTRUxFQ1Qg Q0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZFUlNJT04gRVIuLi4K KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKHQg QVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMiwgJyB8fCBiIHx8ICd9JyBPTiBDT05WRVJTSU9OIEVS Uk9SKSBGUk9NIHRjYXN0IGFzIHQ7CisgICAgIHQgICAgIAorLS0tLS0tLS0tLS0KKyB7MjEsMjIs MX0KKyB7MjEsMjIsMn0KKyB7MjEsMjIsM30KKyB7MjEsMjIsNH0KKyg0IHJvd3MpCisKK1NFTEVD VCBDQVNUKHQuYSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9Jzo6aW50W10gfHwgYiBPTiBDT05W RVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CisgICAgIGEgICAgIAorLS0tLS0tLS0tLS0K KyB7MTJ9CisgezIxLDIyLDJ9CisgezIxLDIyLDN9CisgezEzfQorKDQgcm93cykKKworLS0gdGVz dCB3aXRoIHVzZXItZGVmaW5lZCB0eXBlLCBkb21haW4sIGFycmF5IG92ZXIgZG9tYWluLCBkb21h aW4gb3ZlciBhcnJheQorQ1JFQVRFIERPTUFJTiBkX2ludDQyIGFzIGludCBjaGVjayAodmFsdWUg PSA0MikgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfaW50NDJhcnIgYXMgZF9pbnQ0MltdOwor Q1JFQVRFIERPTUFJTiBkX2ludDQyYXJyMSBhcyBkX2ludDQyYXJyOworQ1JFQVRFIERPTUFJTiBk X2ludDggYXMgaW50OCBjaGVjayAodmFsdWUgPiAwKTsKK0NSRUFURSBET01BSU4gZF9pbnQ4YXJy IGFzIGRfaW50OFtdOworQ1JFQVRFIERPTUFJTiBkX2NoYXIzX25vdF9udWxsIGFzIGNoYXIoMykg Tk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfdmFyY2hhciBhcyB2YXJjaGFyKDMpIE5PVCBOVUxM OworQ1JFQVRFIERPTUFJTiBkX2ludF9hcnIgYXMgaW50W10gY2hlY2sgKHZhbHVlID0gJ3s0MSwg NDN9JykgTk9UIE5VTEw7CitDUkVBVEUgVFlQRSBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBBUyAo YSBkX2NoYXIzX25vdF9udWxsLCBiIGludCk7CitDUkVBVEUgVFlQRSBjb21wMiBBUyAoYSBkX3Zh cmNoYXIpOworU0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQxIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGRfaW50NDIgdmlv bGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZF9pbnQ0Ml9jaGVjayIKK1NFTEVDVCBDQVNUKE5VTEwg QVMgZF9pbnQ0MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitF UlJPUjogIGRvbWFpbiBkX2ludDQyIGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCitTRUxFQ1Qg Q0FTVCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZF9p bnQ0MiAKKy0tLS0tLS0tLQorICAgICAgNDIKKygxIHJvdykKKworU0VMRUNUIENBU1QoTlVMTCBB UyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZF9pbnQ0MiAKKy0t LS0tLS0tLQorICAgICAgNDIKKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlbNDJdOjpkX2lu dDQyYXJyMSBBUyBkX2ludDggREVGQVVMVCAnMScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJy YXkgCistLS0tLS0tCisgICAgIDEKKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlbNDJdOjpk X2ludDQyYXJyMSBBUyBkX2ludDhbXSBERUZBVUxUICd7MX0nIE9OIENPTlZFUlNJT04gRVJST1Ip OworIGFycmF5IAorLS0tLS0tLQorIHs0Mn0KKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlb NDJdOjpkX2ludDQyYXJyMSBBUyBkX2ludDhhcnIgREVGQVVMVCAnezF9JyBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyB7NDJ9CisoMSByb3cpCisKK1NFTEVDVCBDQVNU KEFSUkFZWzQyXTo6ZF9pbnQ0MmFycjEgQVMgZF9pbnQ4YXJyW10gREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1Qg Q0FTVChBUlJBWVs0Miw0MV0gQVMgZF9pbnQ0MltdIERFRkFVTFQgJ3s0MiwgNDJ9JyBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyAgYXJyYXkgIAorLS0tLS0tLS0tCisgezQyLDQyfQorKDEgcm93KQor CitTRUxFQ1QgQ0FTVChBUlJBWVs0Miw0MV0gQVMgZF9pbnRfYXJyIERFRkFVTFQgJ3s0MSwgNDN9 JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgYXJyYXkgIAorLS0tLS0tLS0tCisgezQxLDQzfQor KDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVs0MiwgNDFdOjpkX2ludDQyYXJyMSBBUyBkX2lu dDhhcnIgREVGQVVMVCAnezEsMiwzfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgIGFycmF5ICAK Ky0tLS0tLS0tLQorIHsxLDIsM30KKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlbNDIsIDQx XSBBUyBkX2ludDQyYXJyMSBERUZBVUxUICd7NDIsIDQyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgIGFycmF5ICAKKy0tLS0tLS0tLQorIHs0Miw0Mn0KKygxIHJvdykKKworU0VMRUNUCisgICAg Q0FTVChDQVNUKEFSUkFZW0NBU1QoQVJSQVlbNDIsIDQyXSBBUyBkX2ludDQyYXJyKV0gQVMgZF9p bnQ0MmFycjFbXSkgQVMgZF9pbnQ4YXJyW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworICAgIGFycmF5ICAgIAorLS0tLS0tLS0tLS0tLQorIHsiezQyLDQyfSJ9CisoMSByb3cp CisKK1NFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMyKScgT04gQ09O VkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIHZhbHVlIHRvbyBsb25nIGZvciB0eXBl IGNoYXJhY3RlciB2YXJ5aW5nKDMpCitMSU5FIDE6IFNFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNv bXAyIERFRkFVTFQgJygxMjMyKScgT04gQ09OVkVSU0lPTi4uLgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNv bXAyIERFRkFVTFQgJygxMjMpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjb21wMiAKKy0tLS0t LS0KKyAoMTIzKQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKCw0MiknIEFTIGNvbXBfZG9tYWlu X3dpdGhfdHlwbW9kIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjb21wX2Rv bWFpbl93aXRoX3R5cG1vZCAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAKKygxIHJvdykK KworU0VMRUNUIENBU1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVG QVVMVCAnKDEsMiknIE9OIENPTlZFUlNJT04gRVJST1IpOworIGNvbXBfZG9tYWluX3dpdGhfdHlw bW9kIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgiMSAgIiwyKQorKDEgcm93KQorCitT RUxFQ1QgQ0FTVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxU ICcoMTIzNCwyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjogIHZhbHVl IHRvbyBsb25nIGZvciB0eXBlIGNoYXJhY3RlcigzKQorTElORSAxOiAuLi5TVCgnKE5VTEwsNDIp JyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMTIzNCwyKScuLi4KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CistLSB0ZXN0IGFycmF5IGNvZXJjZQorU0VMRUNUIENBU1QoYXJyYXlbJ2EnOjp0ZXh0XSBBUyBp bnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitFUlJPUjog IGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJhIgorU0VMRUNUIENBU1Qo YXJyYXlbJ2EnXSBBUyBpbnRbXSBERUZBVUxUIEFSUkFZWzFdIE9OIENPTlZFUlNJT04gRVJST1Ip OworIGFycmF5IAorLS0tLS0tLQorIHsxfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChhcnJheVsx MS4xMl0gQVMgZGF0ZVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJh eSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoYXJyYXlbMTExMTExMTExMTEx MTExMTFdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJh eSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoYXJyYXlbWydhYmMnXSxbNDU2 XV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAor LS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnezEyMyxhYmMsNDU2fScgQVMgaW50 W10gREVGQVVMVCAney03ODl9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgaW50NCAgCistLS0t LS0tLQorIHstNzg5fQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnezIzNCxkZWYsNTY3fSc6OnRl eHRbXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAney0xMDExfScgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgIGludDQgICAKKy0tLS0tLS0tLQorIHstMTAxMX0KKygxIHJvdykKKworU0VMRUNUIENBU1Qo QVJSQVlbWycxJ10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezEsMn0nIE9O IENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIHsxLDJ9CisoMSByb3cpCisK K1NFTEVDVCBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnLCAnYSddXSBBUyBpbnRbXSBE RUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vaworICBhcnJheSAgCist LS0tLS0tLS0KKyB7MjEsMjJ9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKEFSUkFZW1snMScsICcy J10sIFsndGhyZWUnOjppbnQsICdhJ11dIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBm b3IgdHlwZSBpbnRlZ2VyOiAidGhyZWUiCitMSU5FIDE6IFNFTEVDVCBDQVNUKEFSUkFZW1snMScs ICcyJ10sIFsndGhyZWUnOjppbnQsICdhJ11dIEFTIGludFtdIC4uLgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1QoQVJSQVlbMSwgJ3RocmVlJzo6 aW50XSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0g ZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogInRo cmVlIgorTElORSAxOiBTRUxFQ1QgQ0FTVChBUlJBWVsxLCAndGhyZWUnOjppbnRdIEFTIGludFtd IERFRkFVTFQgJ3syMSwyMn0uLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorLS0t LS1zYWZlIGNhc3Qgd2l0aCBnZW9tZXRyeSBkYXRhIHR5cGUKK1NFTEVDVCBDQVNUKCcoMSwyKSc6 OnBvaW50IEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGJv eCAgICAgCistLS0tLS0tLS0tLS0tCisgKDEsMiksKDEsMikKKygxIHJvdykKKworU0VMRUNUIENB U1QoJ1soTmFOLDEpLChOYU4saW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0tLS0tLS0t LQorIChOYU4sSW5maW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbKDFlKzMwMCxJbmZp bml0eSksKDFlKzMwMCxJbmZpbml0eSldJzo6bHNlZyBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgcG9pbnQgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tCisgKDFlKzMwMCxJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1soMSwyKSwo Myw0KV0nOjpwYXRoIGFzIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworIHBvbHlnb24gCistLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOYU4s MS4wLE5hTixpbmZpbml0eSknOjpib3ggQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIChOYU4sSW5m aW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBB UyBsc2VnIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgbHNlZyAgICAg IAorLS0tLS0tLS0tLS0tLS0tCisgWygyLDIpLCgwLDApXQorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgICAgICAgICAgcG9seWdvbiAgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorICgoMCwwKSwoMCwyKSwoMiwyKSwoMiwwKSkKKygxIHJvdykKKwor U0VMRUNUIENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIHBhdGggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworIHBhdGggCistLS0tLS0KKyAKKygxIHJvdykKKworU0VM RUNUIENBU1QoJygyLjAsaW5maW5pdHksTmFOLGluZmluaXR5KSc6OmJveCBBUyBjaXJjbGUgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICBjaXJjbGUgICAgICAgIAor LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDwoTmFOLEluZmluaXR5KSxOYU4+CisoMSByb3cpCisK K1NFTEVDVCBDQVNUKCcoTmFOLDAuMCksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdv biBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHBvaW50 ICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgKE5hTixJbmZpbml0eSkKKygxIHJvdykKKworU0VM RUNUIENBU1QoJygyLjAsMC4wKSwoMi4wLDQuMCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBwYXRo IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgcGF0aCAgICAgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKCgyLDApLCgyLDQpLCgwLDApKQorKDEgcm93KQor CitTRUxFQ1QgQ0FTVCgnKDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5Z29uIEFT IGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGJveCAgICAgCist LS0tLS0tLS0tLS0tCisgKDIsNCksKDAsMCkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOYU4s aW5maW5pdHkpLCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgY2lyY2xlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgY2lyY2xlICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA8KE5hTixJbmZpbml0eSksTmFOPgorKDEgcm93KQor CitTRUxFQ1QgQ0FTVCgnPCg1LDEpLDM+Jzo6Y2lyY2xlIEFTIHBvaW50IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKKyBwb2ludCAKKy0tLS0tLS0KKyAoNSwxKQorKDEgcm93KQor CitTRUxFQ1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIGJveCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUik7CisgICAgIGJveCAgICAgCistLS0tLS0tLS0tLS0tCisgKDMsNSks KDMsNSkKKygxIHJvdykKKworLS0gY2FzdCBmcm9tIHR5cGUgY2lyY2xlIHRvIHR5cGUgcG9seWdv biBpcyBpbXBsZW1lbnRlZCBhcyBhbiBTUUwgZnVuY3Rpb24sIHdoaWNoIGNhbm5vdCBiZSBlcnJv ci1zYWZlCitTRUxFQ1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIHBvbHlnb24gREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNp cmNsZSB0byBwb2x5Z29uIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBD QVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKCc8KDMsNSks MD4nOjpjaXJjbGUgYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQy4uLgorICAgICAgICAgICAg ICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9u IGlzIG5vdCBlcnJvciBzYWZlLgorLS0tIHNhZmUgY2FzdCBmcm9tL3RvIG1vbmV5IHR5cGUgaXMg bm90IHN1cHBvcnRlZCwgYWxsIHRoZSBmb2xsb3dpbmcgd291bGQgcmVzdWx0IGVycm9yCitTRUxF Q1QgQ0FTVChOVUxMOjppbnQ4IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBiaWdpbnQgdG8gbW9uZXkgd2hlbiBERUZB VUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJS T1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6aW50OCBBUyBtb25leSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNp dCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUuCitTRUxF Q1QgQ0FTVChOVUxMOjppbnQ0IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBpbnRlZ2VyIHRvIG1vbmV5IHdoZW4gREVG QVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVS Uk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6OmludDQgQVMgbW9uZXkgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgRXhwbGlj aXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZlLgorU0VM RUNUIENBU1QoTlVMTDo6bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgbnVtZXJpYyB0byBtb25leSB3aGVu IERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lP TiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChOVUxMOjpudW1lcmljIEFTIG1vbmV5IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU8uLi4KKyAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIEV4 cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJyb3Igc2FmZS4K K1NFTEVDVCBDQVNUKE5VTEw6Om1vbmV5IEFTIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIG1vbmV5IHRvIG51bWVyaWMg d2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZF UlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMgbnVtZXJpYyBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6 ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNh ZmUuCitTRUxFQ1QgQ0FTVChOVUxMOjptb25leVtdIEFTIG51bWVyaWNbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgbW9uZXlbXSB0 byBudW1lcmljW10gd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1Qg Li4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6bW9uZXlb XSBBUyBudW1lcmljW10gREVGQVVMVCBOVUxMIE9OIENPTlZFLi4uCisgICAgICAgICAgICAgICAg ICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMg bm90IGVycm9yIHNhZmUuCistLSBzYWZlIGNhc3QgZnJvbSBieXRlYSB0eXBlIHRvIG90aGVyIGRh dGEgdHlwZXMKK1NFTEVDVCBDQVNUICgnXHgxMTIyMzM0NDU1NjY3Nzg4OTknOjpieXRlYSBBUyBp bnQ4IERFRkFVTFQgMTkgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50OCAKKy0tLS0tLQorICAg MTkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1x4MTIzNDU2Nzg5QSc6OmJ5dGVhIEFTIGludDQg REVGQVVMVCAyMCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAyMAor KDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTYnOjpieXRlYSBBUyBpbnQyIERFRkFVTFQg MjEgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50MiAKKy0tLS0tLQorICAgMjEKKygxIHJvdykK KworLS0gc2FmZSBjYXN0IGZyb20gYml0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNU IENBU1QoJzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFTIElOVCBERUZBVUxUIDIyIE9OIENP TlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0tLS0KKyAgIDIyCisoMSByb3cpCisKK1NFTEVD VCBDQVNUICgnMTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UOCBERUZBVUxUIDIzIE9O IENPTlZFUlNJT04gRVJST1IpOworIGludDggCistLS0tLS0KKyAgIDIzCisoMSByb3cpCisKKy0t LSBzYWZlIGNhc3QgZnJvbSB0ZXh0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworc2VsZWN0IENB U1QoJ2EuYi5jLmQnOjp0ZXh0IGFzIHJlZ2NsYXNzIGRlZmF1bHQgTlVMTCBvbiBjb252ZXJzaW9u IGVycm9yKTsKKyByZWdjbGFzcyAKKy0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIFRB QkxFIHRlc3Rfc2FmZWNhc3QoY29sMCB0ZXh0KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3Qo Y29sMCkgVkFMVUVTICgnPHZhbHVlPm9uZTwvdmFsdWUnKTsKK1NFTEVDVCBjb2wwIGFzIHRleHQs CisgICAgICAgQ0FTVChjb2wwIEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19yZWdjbGFzcywKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5VTEwgYXMgZXhwZWN0X3RydWUsCisg ICAgICAgQ0FTVChjb2wwIEFTICJjaGFyIiAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2NoYXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG5hbWUgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX25hbWUsCisgICAgICAgQ0FTVChjb2wwIEFTIHhtbCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9feG1sCitGUk9NIHRlc3Rfc2Fm ZWNhc3Q7CisgICAgICAgdGV4dCAgICAgICAgfCB0b19yZWdjbGFzcyB8IGV4cGVjdF90cnVlIHwg dG9fY2hhciB8ICAgICAgdG9fbmFtZSAgICAgIHwgdG9feG1sIAorLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0KKyA8dmFsdWU+b25lPC92YWx1ZSB8ICAgICAgICAgICAgIHwgdCAgICAgICAg ICAgfCA8ICAgICAgIHwgPHZhbHVlPm9uZTwvdmFsdWUgfCAKKygxIHJvdykKKworU0VMRUNUIENB U1QoJzE5Mi4xNjguMS54JyBhcyBpbmV0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyBpbmV0IAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEu Mi8zMCcgYXMgY2lkciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY2lkciAK Ky0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnMjI6MDA6NWM6MDg6NTU6MDg6MDE6 MDInOjptYWNhZGRyOCBhcyBtYWNhZGRyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyBtYWNhZGRyIAorLS0tLS0tLS0tCisgCisoMSByb3cpCisKKy0tLSBzYWZlIGNhc3QgYmV0 d2VlZW4gcmFuZ2UgZGF0YSB0eXBlcworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50NHJhbmdlIEFT IGludDRtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0 bXVsdGlyYW5nZSAKKy0tLS0tLS0tLS0tLS0tLS0KKyB7WzEsMyl9CisoMSByb3cpCisKK1NFTEVD VCBDQVNUKCdbMSwyXSc6OmludDhyYW5nZSBBUyBpbnQ4bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50OG11bHRpcmFuZ2UgCistLS0tLS0tLS0tLS0tLS0t Cisge1sxLDMpfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjpudW1yYW5nZSAgQVMg bnVtbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgbnVtbXVs dGlyYW5nZSAKKy0tLS0tLS0tLS0tLS0tLQorIHtbMSwyXX0KKygxIHJvdykKKworU0VMRUNUIENB U1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6ZGF0ZXJhbmdlIEFTIGRhdGVtdWx0aXJhbmdlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgZGF0ZW11bHRpcmFuZ2UgICAg IAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1staW5maW5pdHksaW5maW5pdHldfQorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjp0c3JhbmdlIEFTIHRz bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICB0c211 bHRpcmFuZ2UgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbLWluZmluaXR5LGlu ZmluaXR5XX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6 dHN0enJhbmdlIEFTIHRzdHptdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyAgICAgdHN0em11bHRpcmFuZ2UgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Cisge1staW5maW5pdHksaW5maW5pdHldfQorKDEgcm93KQorCistLSBzYWZlIGNhc3QgYmV0d2Vl ZW4gbnVtZXJpYyBkYXRhIHR5cGVzCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDEoCisgIGNv bDEgZmxvYXQ0LCBjb2wyIGZsb2F0OCwgY29sMyBudW1lcmljLCBjb2w0IG51bWVyaWNbXSwKKyAg Y29sNSBpbnQyIGRlZmF1bHQgMzI3NjcsCisgIGNvbDYgaW50NCBkZWZhdWx0IDMyNzY4LAorICBj b2w3IGludDggZGVmYXVsdCA0Mjk0OTY3Mjk2KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3Qx IFZBTFVFUygnMTEuMTIzNCcsICcxMS4xMjM0JywgJzkyMjMzNzIwMzY4NTQ3NzU4MDgnLCAnezEx LjEyMzR9Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygn aW5mJywgJ2luZicsICdpbmYnLCAnezExLjEyMzQsIDEyLCBpbmYsIE5hTn0nOjpudW1lcmljW10p OworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCctaW5mJywgJy1pbmYnLCAnLWlu ZicsICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8g dGVzdF9zYWZlY2FzdDEgVkFMVUVTKCdOYU4nLCAnTmFOJywgJ05hTicsICd7MTEuMTIzNCwgMTIs IC1pbmYsIE5hTn0nOjpudW1lcmljW10pOworU0VMRUNUIGNvbDUgYXMgaW50MiwKKyAgICAgICBD QVNUKGNvbDUgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDUgQVMgb2lkIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w1IGFzIGlu dDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAg Q0FTVChjb2w1IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJp YyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAg ICBDQVNUKGNvbDUgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyBpbnQyICB8 IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zs b2F0OCB8IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8 ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3IHwg ICAgICAgICAgMzI3NjcuMAorIDMyNzY3IHwgICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAg IDMyNzY3IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgICAzMjc2NyB8ICAgICAgICAgIDMy NzY3LjAKKyAzMjc2NyB8ICAgMzI3NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAg ICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAgMzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCisgMzI3 NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAg ICAgMzI3NjcgfCAgICAgIDMyNzY3IHwgICAgICAgICAgMzI3NjcuMAorKDQgcm93cykKKworU0VM RUNUIGNvbDYgYXMgaW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50MiBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50 NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBD QVNUKGNvbDYgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19v aWQsCisgICAgICAgQ0FTVChjb2w2IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0NCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNiBh cyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwK KyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYygxMCwxKSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJP TSB0ZXN0X3NhZmVjYXN0MTsKKyBpbnQ0ICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwg dG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX251bWVyaWMgfCB0b19udW1lcmlj X3NjYWxlIAorLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisg MzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3Njgg fCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorIDMyNzY4IHwgICAg ICAgICB8ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgIDMyNzY4 IHwgICAgICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAKKyAzMjc2OCB8ICAgICAgICAgfCAgIDMy NzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3 NjggfCAgICAgICAgICAzMjc2OC4wCisgMzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2 OCB8ICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAg ICAgMzI3NjguMAorKDQgcm93cykKKworU0VMRUNUIGNvbDcgYXMgaW50OCwKKyAgICAgICBDQVNU KGNvbDcgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50 MiwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDcgQVMgb2lkIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w3IGFzIGludDgg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FT VChjb2w3IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f ZmxvYXQ0LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVtZXJpYyBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBD QVNUKGNvbDcgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAgICBpbnQ4ICAg IHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCAgdG9faW50OCAgIHwgIHRvX2Zsb2F0NCAg fCB0b19mbG9hdDggIHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIDQyOTQ5Njcy OTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSsw OSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5Njcy OTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSsw OSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5Njcy OTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSsw OSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5Njcy OTYgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSsw OSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3Mjk2IHwgICAgICAgICAgICAgICAgIAorKDQgcm93cykK KworU0VMRUNUIGNvbDMgYXMgbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50MiBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNv bDMgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwK KyAgICAgICBDQVNUKGNvbDMgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wzIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0NCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENB U1QoY29sMyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJp YygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19z Y2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAgICAgICBudW1lcmljICAgICAgIHwgdG9faW50 MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgIHRvX2Zsb2F0NCAgfCAgICAgIHRvX2Zs b2F0OCAgICAgICB8ICAgICB0b19udW1lcmljICAgICAgfCB0b19udW1lcmljX3NjYWxlIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgOTIyMzM3MjAzNjg1NDc3NTgwOCB8ICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgIHwgICAgICAgICB8IDkuMjIzMzdlKzE4IHwgOS4yMjMzNzIwMzY4NTQ3 OGUrMTggfCA5MjIzMzcyMDM2ODU0Nzc1ODA4IHwgICAgICAgICAgICAgICAgIAorICAgICAgICAg ICAgSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICBJ bmZpbml0eSB8ICAgICAgICAgICAgIEluZmluaXR5IHwgICAgICAgICAgICBJbmZpbml0eSB8ICAg ICAgICAgICAgICAgICAKKyAgICAgICAgICAgLUluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgfCAgICAgICAgIHwgICAtSW5maW5pdHkgfCAgICAgICAgICAgIC1JbmZpbml0eSB8 ICAgICAgICAgICAtSW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg IE5hTiB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgTmFO IHwgICAgICAgICAgICAgICAgICBOYU4gfCAgICAgICAgICAgICAgICAgTmFOIHwgICAgICAgICAg ICAgIE5hTgorKDQgcm93cykKKworU0VMRUNUIGNvbDQgYXMgbnVtX2FyciwKKyAgICAgICBDQVNU KGNvbDQgQVMgaW50MltdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQy YXJyLAorICAgICAgIENBU1QoY29sNCBBUyBpbnQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIGludDRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGludDhbXSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50OGFyciwKKyAgICAgICBDQVNUKGNvbDQg YXMgZmxvYXQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY0YXJyLAor ICAgICAgIENBU1QoY29sNCBhcyBmbG9hdDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgZjhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIG51bWVyaWMoMTAsMSlbXSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgbnVtYXJyCitGUk9NIHRlc3Rfc2FmZWNh c3QxOworICAgICAgICAgIG51bV9hcnIgICAgICAgICAgIHwgaW50MmFyciB8IGludDRhcnIgfCBp bnQ4YXJyIHwgICAgICAgICAgIGY0YXJyICAgICAgICAgICAgfCAgICAgICAgICAgZjhhcnIgICAg ICAgICAgICB8IG51bWFyciAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tCisgezExLjEyMzR9ICAgICAgICAgICAgICAg ICAgfCB7MTF9ICAgIHwgezExfSAgICB8IHsxMX0gICAgfCB7MTEuMTIzNH0gICAgICAgICAgICAg ICAgICB8IHsxMS4xMjM0fSAgICAgICAgICAgICAgICAgIHwgezExLjF9CisgezExLjEyMzQsMTIs SW5maW5pdHksTmFOfSAgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB7MTEuMTIzNCwx MixJbmZpbml0eSxOYU59ICB8IHsxMS4xMjM0LDEyLEluZmluaXR5LE5hTn0gIHwgCisgezExLjEy MzQsMTIsLUluZmluaXR5LE5hTn0gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB7MTEu MTIzNCwxMiwtSW5maW5pdHksTmFOfSB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgCisg ezExLjEyMzQsMTIsLUluZmluaXR5LE5hTn0gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAg fCB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59 IHwgCisoNCByb3dzKQorCitTRUxFQ1QgY29sMSBhcyBmbG9hdDQsCisgICAgICAgQ0FTVChjb2wx IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisg ICAgICAgQ0FTVChjb2wxIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wxIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMSBhcyBpbnQ4IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29s MSBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0 NCwKKyAgICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChj b2wxIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisgIGZsb2F0NCAgIHwgdG9f aW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgICAgdG9fZmxv YXQ4ICAgICB8IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDExLjEyMzQgfCAg ICAgIDExIHwgICAgICAxMSB8ICAgICAgICB8ICAgICAgMTEgfCAgIDExLjEyMzQgfCAxMS4xMjMz OTk3MzQ0OTcxIHwgICAgMTEuMTIzNCB8ICAgICAgICAgICAgIDExLjEKKyAgSW5maW5pdHkgfCAg ICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgSW5maW5pdHkgfCAgICAgICAg IEluZmluaXR5IHwgICBJbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAtSW5maW5pdHkgfCAg ICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAtSW5maW5pdHkgfCAgICAgICAg LUluZmluaXR5IHwgIC1JbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAgICAgICBOYU4gfCAg ICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICAgICBOYU4gfCAgICAgICAg ICAgICAgTmFOIHwgICAgICAgIE5hTiB8ICAgICAgICAgICAgICBOYU4KKyg0IHJvd3MpCisKK1NF TEVDVCBjb2wyIGFzIGZsb2F0OCwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50MiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDIgQVMg aW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAg ICBDQVNUKGNvbDIgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19vaWQsCisgICAgICAgQ0FTVChjb2wyIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0NCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29s MiBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0 OCwKKyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJpYygxMCwx KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQor RlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAgZmxvYXQ4ICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRv X29pZCB8IHRvX2ludDggfCB0b19mbG9hdDQgfCB0b19mbG9hdDggfCB0b19udW1lcmljIHwgdG9f bnVtZXJpY19zY2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0r LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0KKyAgIDExLjEyMzQgfCAgICAgIDExIHwgICAgICAxMSB8ICAgICAgICB8ICAgICAg MTEgfCAgIDExLjEyMzQgfCAgIDExLjEyMzQgfCAgICAxMS4xMjM0IHwgICAgICAgICAgICAgMTEu MQorICBJbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICBJ bmZpbml0eSB8ICBJbmZpbml0eSB8ICAgSW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisgLUlu ZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgLUluZmluaXR5 IHwgLUluZmluaXR5IHwgIC1JbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAgICAgICBOYU4g fCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICAgICBOYU4gfCAgICAg ICBOYU4gfCAgICAgICAgTmFOIHwgICAgICAgICAgICAgIE5hTgorKDQgcm93cykKKworLS0gc2Fm ZSB0eXBlIGNhc3QgZm9yIHR5cGUgZGF0ZS90aW1lc3RhbXAvdGltZXN0YW1wdHovaW50ZXJ2YWwK K0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0MigKKyAgY29sMCBkYXRlLCBjb2wxIHRpbWVzdGFt cCwgY29sMiB0aW1lc3RhbXB0eiwKKyAgY29sMyBpbnRlcnZhbCwgY29sNCB0aW1lLCBjb2w1IHRp bWV0eik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MiBWQUxVRVMKKygnLWluZmluaXR5Jywg Jy1pbmZpbml0eScsICctaW5maW5pdHknLCAnLWluZmluaXR5JywKKyAgJzIwMDMtMDMtMDcgMTU6 MzY6MzkgQW1lcmljYS9OZXdfWW9yaycsICcyMDAzLTA3LTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3 X1lvcmsnKSwKKygnLWluZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5 JywgJzExOjU5OjU5Ljk5IFBNJywgJzExOjU5OjU5Ljk5IFBNIFBEVCcpOworU0VMRUNUIGNvbDAg YXMgZGF0ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMCBB UyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAg ICAgIENBU1QoY29sMCBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWVz dGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1w X3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworICAgZGF0ZSAgICB8IHRvX3RpbWVzdGFtcHR6 IHwgIHRvX2RhdGUgIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUg CistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtaW5maW5pdHkgfCAtaW5maW5pdHkgICAg ICB8IC1pbmZpbml0eSB8ICAgICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5CisgLWluZmlu aXR5IHwgLWluZmluaXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAgICAgICB8 IC1pbmZpbml0eQorKDIgcm93cykKKworU0VMRUNUIGNvbDEgYXMgdGltZXN0YW1wLAorICAgICAg IENBU1QoY29sMSBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wxIEFTIGRhdGUgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wxIEFT IHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAg ICAgIENBU1QoY29sMSBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gdGVz dF9zYWZlY2FzdDI7CisgdGltZXN0YW1wIHwgdG9fdGltZXN0YW1wdHogfCAgdG9fZGF0ZSAgfCB0 b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSAKKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSB8IC1pbmZpbml0eSAgICAgIHwgLWluZmluaXR5IHwg ICAgICAgICAgfCAgICAgICAgICAgfCAtaW5maW5pdHkKKyBpbmZpbml0eSAgfCBpbmZpbml0eSAg ICAgICB8IGluZmluaXR5ICB8ICAgICAgICAgIHwgICAgICAgICAgIHwgaW5maW5pdHkKKygyIHJv d3MpCisKK1NFTEVDVCBjb2wyIGFzIHRpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMiBBUyB0 aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0 YW1wdHosCisgICAgICAgQ0FTVChjb2wyIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWUgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMiBB UyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwK KyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7Cisg dGltZXN0YW1wdHogfCB0b190aW1lc3RhbXB0eiB8ICB0b19kYXRlICB8IHRvX3RpbWVzIHwgdG9f dGltZXR6IHwgdG9fdGltZXN0YW1wX3NjYWxlIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyAtaW5maW5pdHkgICB8IC1pbmZpbml0eSAgICAgIHwgLWluZmluaXR5IHwgICAgICAgICAg fCAgICAgICAgICAgfCAtaW5maW5pdHkKKyBpbmZpbml0eSAgICB8IGluZmluaXR5ICAgICAgIHwg aW5maW5pdHkgIHwgICAgICAgICAgfCAgICAgICAgICAgfCBpbmZpbml0eQorKDIgcm93cykKKwor U0VMRUNUIGNvbDMgYXMgaW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcHR6 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAg ICAgICBDQVNUKGNvbDMgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWV0eiBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENB U1QoY29sMyBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWVzdGFtcF9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50ZXJ2YWwoMikg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxlCitG Uk9NIHRlc3Rfc2FmZWNhc3QyOworIGludGVydmFsICB8IHRvX3RpbWVzdGFtcHR6IHwgdG9fZGF0 ZSB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwgdG9fdGltZXN0YW1wX3NjYWxlIHwgdG9faW50ZXJ2 YWxfc2NhbGUgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0K KyAtaW5maW5pdHkgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICB8IC1pbmZpbml0eQorIGluZmluaXR5ICB8ICAgICAg ICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAg ICAgICAgIHwgaW5maW5pdHkKKygyIHJvd3MpCisKK1NFTEVDVCBjb2w0IGFzIHRpbWUsCisgICAg ICAgQ0FTVChjb2w0IEFTIHRpbWUoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sNCBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIElTIE5PVCBOVUxMIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNU KGNvbDQgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2ludGVydmFsLAorICAgICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9z YWZlY2FzdDI7CisgICAgdGltZSAgICAgfCAgdG9fdGltZXMgICB8IHRvX3RpbWV0eiB8ICAgICAg ICAgIHRvX2ludGVydmFsICAgICAgICAgIHwgICAgICAgdG9faW50ZXJ2YWxfc2NhbGUgICAgICAg CistLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgMTU6MzY6 MzkgICAgfCAxNTozNjozOSAgICB8IHQgICAgICAgICB8IEAgMTUgaG91cnMgMzYgbWlucyAzOSBz ZWNzICAgIHwgQCAxNSBob3VycyAzNiBtaW5zIDM5IHNlY3MKKyAyMzo1OTo1OS45OSB8IDIzOjU5 OjU5Ljk5IHwgdCAgICAgICAgIHwgQCAyMyBob3VycyA1OSBtaW5zIDU5Ljk5IHNlY3MgfCBAIDIz IGhvdXJzIDU5IG1pbnMgNTkuOTkgc2VjcworKDIgcm93cykKKworU0VMRUNUIGNvbDUgYXMgdGlt ZXR6LAorICAgICAgIENBU1QoY29sNSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1lLAorICAgICAgIENBU1QoY29sNSBBUyB0aW1lKDIpIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lX3NjYWxlLAorICAgICAgIENBU1Qo Y29sNSBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWV0eiwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZXR6KDYpIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHpfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1IEFTIGlu dGVydmFsIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbCwK KyAgICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludGVydmFsX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworICAg ICB0aW1ldHogICAgIHwgICB0b190aW1lICAgfCB0b190aW1lX3NjYWxlIHwgICB0b190aW1ldHog ICAgfCB0b190aW1ldHpfc2NhbGUgfCB0b19pbnRlcnZhbCB8IHRvX2ludGVydmFsX3NjYWxlIAor LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LQorIDE1OjM2OjM5LTA0ICAgIHwgMTU6MzY6MzkgICAgfCAxNTozNjozOSAgICAgIHwgMTU6MzY6 MzktMDQgICAgfCAxNTozNjozOS0wNCAgICAgfCAgICAgICAgICAgICB8IAorIDIzOjU5OjU5Ljk5 LTA3IHwgMjM6NTk6NTkuOTkgfCAyMzo1OTo1OS45OSAgIHwgMjM6NTk6NTkuOTktMDcgfCAyMzo1 OTo1OS45OS0wNyAgfCAgICAgICAgICAgICB8IAorKDIgcm93cykKKworQ1JFQVRFIFRBQkxFIHRl c3Rfc2FmZWNhc3QzKGNvbDAganNvbmIpOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDMoY29s MCkgVkFMVUVTICgnInRlc3QiJyk7CitTRUxFQ1QgY29sMCBhcyBqc29uYiwKKyAgICAgICBDQVNU KGNvbDAgQVMgaW50ZWdlciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50ZWdlciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDAgQVMgYmlnaW50 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENB U1QoY29sMCBBUyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wwIEFTIGJvb2xlYW4g REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Jvb2wsCisgICAgICAgQ0FT VChjb2wwIEFTIHNtYWxsaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19zbWFsbGludAorRlJPTSB0ZXN0X3NhZmVjYXN0MzsKKyBqc29uYiAgfCB0b19pbnRlZ2VyIHwg dG9fbnVtZXJpYyB8IHRvX2ludDggfCB0b19mbG9hdDQgfCB0b19mbG9hdDggfCB0b19ib29sIHwg dG9fc21hbGxpbnQgCistLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorICJ0ZXN0 IiB8ICAgICAgICAgICAgfCAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICB8ICAgICAg ICAgICB8ICAgICAgICAgfCAgICAgICAgICAgIAorKDEgcm93KQorCistLSB0ZXN0IGRlcGFyc2UK K1NFVCBkYXRlc3R5bGUgVE8gSVNPLCBZTUQ7CitDUkVBVEUgVklFVyBzYWZlY2FzdHZpZXcgQVMK K1NFTEVDVCBDQVNUKCcxMjM0JyBhcyBjaGFyKDMpIERFRkFVTFQgLTExMTEgT04gQ09OVkVSU0lP TiBFUlJPUiksCisgICAgICAgQ0FTVCgxIGFzIGRhdGUgREVGQVVMVCAoKCcyMDI1LURlYy0wNic6 OmRhdGUgKyByYW5kb20obWluPT4xLCBtYXg9PjE6OmludCkpKSBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyBjYXN0MCwKKyAgICAgICBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydhJ11dIEFT IGludFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MSwKKyAg ICAgICBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnLCAnYSddXSBBUyBkYXRlW10gREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QyLAorICAgICAgIENBU1QoQVJS QVlbJ3RocmVlJ10gQVMgSU5UW10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIGNhc3QzOworXHN2IHNhZmVjYXN0dmlldworQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJs aWMuc2FmZWNhc3R2aWV3IEFTCisgU0VMRUNUIENBU1QoJzEyMzQnIEFTIGNoYXJhY3RlcigzKSBE RUZBVUxUICctMTExMSc6OmludGVnZXI6OmNoYXJhY3RlcigzKSBPTiBDT05WRVJTSU9OIEVSUk9S KSBBUyBicGNoYXIsCisgICAgQ0FTVCgxIEFTIGRhdGUgREVGQVVMVCAnMjAyNS0xMi0wNic6OmRh dGUgKyByYW5kb20obWluID0+IDEsIG1heCA9PiAxKSBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBj YXN0MCwKKyAgICBDQVNUKEFSUkFZW0FSUkFZWzFdLCBBUlJBWVsndGhyZWUnXSwgQVJSQVlbJ2En XV0gQVMgaW50ZWdlcltdIERFRkFVTFQgJ3sxLDJ9Jzo6aW50ZWdlcltdIE9OIENPTlZFUlNJT04g RVJST1IpIEFTIGNhc3QxLAorICAgIENBU1QoQVJSQVlbQVJSQVlbJzEnLCAnMiddLCBBUlJBWVsn dGhyZWUnLCAnYSddXSBBUyBkYXRlW10gREVGQVVMVCBOVUxMOjpkYXRlW10gT04gQ09OVkVSU0lP TiBFUlJPUikgQVMgY2FzdDIsCisgICAgQ0FTVChBUlJBWVsndGhyZWUnXSBBUyBpbnRlZ2VyW10g REVGQVVMVCAnezEsMn0nOjppbnRlZ2VyW10gT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDMK K1NFTEVDVCAqIEZST00gc2FmZWNhc3R2aWV3OworIGJwY2hhciB8ICAgY2FzdDAgICAgfCBjYXN0 MSB8IGNhc3QyIHwgY2FzdDMgCistLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0t Ky0tLS0tLS0KKyAxMjMgICAgfCAyMDI1LTEyLTA3IHwgezEsMn0gfCAgICAgICB8IHsxLDJ9Ciso MSByb3cpCisKK0NSRUFURSBWSUVXIHNhZmVjYXN0dmlldzEgQVMKK1NFTEVDVCBDQVNUKEFSUkFZ W1snMSddLCBbJ3RocmVlJ10sWydhJ11dIEFTIGRfaW50X2FycgorICAgICAgICAgICAgREVGQVVM VCAnezQxLDQzfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDEsCisgICAgICAgQ0FTVChB UlJBWVtbJzEnLCAnMicsIDEuMV0sIFsndGhyZWUnLCB0cnVlLCBCJzAxJ11dIEFTIGRfaW50X2Fy cgorICAgICAgICAgICAgREVGQVVMVCAnezQxLDQzfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg Y2FzdDI7Citcc3Ygc2FmZWNhc3R2aWV3MQorQ1JFQVRFIE9SIFJFUExBQ0UgVklFVyBwdWJsaWMu c2FmZWNhc3R2aWV3MSBBUworIFNFTEVDVCBDQVNUKEFSUkFZW0FSUkFZWzFdLCBBUlJBWVsndGhy ZWUnXSwgQVJSQVlbJ2EnXV0gQVMgZF9pbnRfYXJyIERFRkFVTFQgJ3s0MSw0M30nOjppbnRlZ2Vy W106OmRfaW50X2FyciBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBjYXN0MSwKKyAgICBDQVNUKEFS UkFZW0FSUkFZWzEsIDIsIDEuMTo6aW50ZWdlcl0sIEFSUkFZWyd0aHJlZScsIHRydWUsICcwMSc6 OiJiaXQiXV0gQVMgZF9pbnRfYXJyIERFRkFVTFQgJ3s0MSw0M30nOjppbnRlZ2VyW106OmRfaW50 X2FyciBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBjYXN0MgorU0VMRUNUICogRlJPTSBzYWZlY2Fz dHZpZXcxOworICBjYXN0MSAgfCAgY2FzdDIgIAorLS0tLS0tLS0tKy0tLS0tLS0tLQorIHs0MSw0 M30gfCB7NDEsNDN9CisoMSByb3cpCisKK1JFU0VUIGRhdGVzdHlsZTsKKy0tIHRlc3QgQ0FTVCBE RUZBVUxUIGV4cHJlc3Npb24gbXV0YWJpbGl0eQorQ1JFQVRFIElOREVYIGNhc3RfZXJyb3JfaWR4 IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgaW50IERFRkFVTFQgcmFuZG9tKG1pbj0+ MSwgbWF4PT4xKSBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOyAtLSBlcnJvcgorRVJST1I6ICBmdW5j dGlvbnMgaW4gaW5kZXggZXhwcmVzc2lvbiBtdXN0IGJlIG1hcmtlZCBJTU1VVEFCTEUKK0xJTkUg MTogQ1JFQVRFIElOREVYIGNhc3RfZXJyb3JfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNv bDAgYXMgLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCitDUkVBVEUgSU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMo KENBU1QoY29sMCBhcyB4aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKSk7IC0t IGVycm9yCitFUlJPUjogIGRhdGEgdHlwZSB4aWQgaGFzIG5vIGRlZmF1bHQgb3BlcmF0b3IgY2xh c3MgZm9yIGFjY2VzcyBtZXRob2QgImJ0cmVlIgorSElOVDogIFlvdSBtdXN0IHNwZWNpZnkgYW4g b3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBpbmRleCBvciBkZWZpbmUgYSBkZWZhdWx0IG9wZXJhdG9y IGNsYXNzIGZvciB0aGUgZGF0YSB0eXBlLgorQ1JFQVRFIElOREVYIGNhc3RfZXJyb3JfaWR4IE9O IHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSkpOyAtLW9rCitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKCdjYXN0X2Vycm9yX2lk eCc6OnJlZ2NsYXNzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIENSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiBwdWJsaWMudGVzdF9zYWZlY2FzdDMg VVNJTkcgYnRyZWUgKChDQVNUKGNvbDAgQVMgaW50ZWdlciBERUZBVUxUIE5VTEw6OmludGVnZXIg T04gQ09OVkVSU0lPTiBFUlJPUikpKQorKDEgcm93KQorCitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNh c3Q7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QxOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0 MjsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDM7CitEUk9QIFRBQkxFIHRjYXN0OworRFJPUCBG VU5DVElPTiByZXRfaW50ODsKK0RST1AgRlVOQ1RJT04gcmV0X3NldGludDsKK0RST1AgVFlQRSBj b21wX2RvbWFpbl93aXRoX3R5cG1vZDsKK0RST1AgVFlQRSBjb21wMjsKK0RST1AgRE9NQUlOIGRf dmFyY2hhcjsKK0RST1AgRE9NQUlOIGRfaW50OGFycjsKK0RST1AgRE9NQUlOIGRfaW50ODsKK0RS T1AgRE9NQUlOIGRfaW50NDJhcnIxOworRFJPUCBET01BSU4gZF9pbnQ0MmFycjsKK0RST1AgRE9N QUlOIGRfaW50NDI7CitEUk9QIERPTUFJTiBkX2NoYXIzX25vdF9udWxsOworUkVTRVQgZXh0cmFf ZmxvYXRfZGlnaXRzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVh dGVfY2FzdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dApp bmRleCAwZTY5NjQ0YmNhMi4uNjhlNjlkMWM1ODQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY3JlYXRlX2Nhc3Qub3V0CkBAIC04OCw2ICs4OCwxMSBAQCBTRUxFQ1QgMTIzNDo6aW50NDo6 Y2FzdHRlc3R0eXBlOyAtLSBTaG91bGQgd29yayBub3cKICBiYXIxMjM0CiAoMSByb3cpCiAKK1NF TEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBpbnRlZ2Vy IHRvIGNhc3R0ZXN0dHlwZSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4g Q0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVCgxMjM0Ojpp bnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwgT04gQ09OVkUuLi4KKyAgICAgICAgICAg ICAgICAgICAgXgorSElOVDogIFNhZmUgdHlwZSBjYXN0IGZvciB1c2VyLWRlZmluZWQgdHlwZXMg YXJlIG5vdCB5ZXQgc3VwcG9ydGVkLgogLS0gY2hlY2sgZGVwZW5kZW5jaWVzIGdlbmVyYXRlZCBm b3IgdGhhdAogU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdChjbGFzc2lkLCBvYmppZCwgb2Jqc3Vi aWQpIGFzIG9iaiwKICAgICAgICBwZ19kZXNjcmliZV9vYmplY3QocmVmY2xhc3NpZCwgcmVmb2Jq aWQsIHJlZm9ianN1YmlkKSBhcyBvYmpyZWYsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcXVp dmNsYXNzLm91dAppbmRleCBhZDhhYjI5NGZmNi4uZTNmOGEyODA3ZjkgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1aXZjbGFzcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9lcXVpdmNsYXNzLm91dApAQCAtOTUsNiArOTUsMTMgQEAgY3JlYXRlIGZ1 bmN0aW9uIGludDhhbGlhczFjbXAoaW50OCwgaW50OGFsaWFzMSkgcmV0dXJucyBpbnQKICAgc3Ry aWN0IGltbXV0YWJsZSBsYW5ndWFnZSBpbnRlcm5hbCBhcyAnYnRpbnQ4Y21wJzsKIGFsdGVyIG9w ZXJhdG9yIGZhbWlseSBpbnRlZ2VyX29wcyB1c2luZyBidHJlZSBhZGQKICAgZnVuY3Rpb24gMSBp bnQ4YWxpYXMxY21wIChpbnQ4LCBpbnQ4YWxpYXMxKTsKKy0tIGludDhhbGlhczIgYmluYXJ5LWNv ZXJjaWJsZSB0byBpbnQ4LCB0aGlzIHNob3VsZCBub3QgZmFpbAorc2VsZWN0IGNhc3QoJzEnOjpp bnQ4IGFzIGludDhhbGlhczIgZGVmYXVsdCBudWxsIG9uIGNvbnZlcnNpb24gZXJyb3IpOworIGlu dDhhbGlhczIgCistLS0tLS0tLS0tLS0KKyAxCisoMSByb3cpCisKIGNyZWF0ZSB0YWJsZSBlYzAg KGZmIGludDggcHJpbWFyeSBrZXksIGYxIGludDgsIGYyIGludDgpOwogY3JlYXRlIHRhYmxlIGVj MSAoZmYgaW50OCBwcmltYXJ5IGtleSwgZjEgaW50OGFsaWFzMSwgZjIgaW50OGFsaWFzMik7CiBj cmVhdGUgdGFibGUgZWMyICh4ZiBpbnQ4IHByaW1hcnkga2V5LCB4MSBpbnQ4YWxpYXMxLCB4MiBp bnQ4YWxpYXMyKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCmluZGV4IDU0OWU5YjJkN2Jl Li5iYzhjMDJiNTNlMCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hl ZHVsZQorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC04MSw3ICs4 MSw3IEBAIHRlc3Q6IGNyZWF0ZV90YWJsZV9saWtlIGFsdGVyX2dlbmVyaWMgYWx0ZXJfb3BlcmF0 b3IgbWlzYyBhc3luYyBkYnNpemUgbWVyZ2UgbWlzCiAjIGNvbGxhdGUubGludXgudXRmOCBhbmQg Y29sbGF0ZS5pY3UudXRmOCB0ZXN0cyBjYW5ub3QgYmUgcnVuIGluIHBhcmFsbGVsIHdpdGggZWFj aCBvdGhlcgogIyBwc3FsIGRlcGVuZHMgb24gY3JlYXRlX2FtCiAjIGFtdXRpbHMgZGVwZW5kcyBv biBnZW9tZXRyeSwgY3JlYXRlX2luZGV4X3NwZ2lzdCwgaGFzaF9pbmRleCwgYnJpbgotdGVzdDog cnVsZXMgcHNxbCBwc3FsX2Nyb3NzdGFiIHBzcWxfcGlwZWxpbmUgYW11dGlscyBzdGF0c19leHQg Y29sbGF0ZS5saW51eC51dGY4IGNvbGxhdGUud2luZG93cy53aW4xMjUyCit0ZXN0OiBydWxlcyBw c3FsIHBzcWxfY3Jvc3N0YWIgcHNxbF9waXBlbGluZSBhbXV0aWxzIHN0YXRzX2V4dCBjb2xsYXRl LmxpbnV4LnV0ZjggY29sbGF0ZS53aW5kb3dzLndpbjEyNTIgY2FzdAogCiAjIC0tLS0tLS0tLS0K ICMgUnVuIHRoZXNlIGFsb25lIHNvIHRoZXkgZG9uJ3QgcnVuIG91dCBvZiBwYXJhbGxlbCB3b3Jr ZXJzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jYXN0LnNxbCBiL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwLi42MmQ0OWI5NGViYgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2Nhc3Quc3FsCkBAIC0wLDAgKzEsMzY2IEBACitTRVQgZXh0cmFfZmxvYXRfZGlnaXRzID0gMDsK KworLS0gQ0FTVCBERUZBVUxUIE9OIENPTlZFUlNJT04gRVJST1IKK1NFTEVDVCBDQVNUKEInMDEn IEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1Qo QklUJzAxJyBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKFRSVUUgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitT RUxFQ1QgQ0FTVCgxLjEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CitTRUxFQ1QgQ0FTVCgxIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoMTExMSBBUyAiY2hhciIgREVGQVVMVCAnQScgT04gQ09OVkVSU0lPTiBF UlJPUik7CisKKy0tIHNvdXJjZSBleHByZXNzaW9uIGlzIGEgdW5rbm93biBjb25zdAorVkFMVUVT IChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7IC0t IGVycm9yCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikpOworVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBERUZBVUxUIDQyIE9O IENPTlZFUlNJT04gRVJST1IpKTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAxOCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0o MSkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50 IERFRkFVTFQgc3VtKDEpIG92ZXIoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK1NF TEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAoU0VMRUNUIE5VTEwpIE9OIENPTlZFUlNJT04g RVJST1IpOyAtLSBlcnJvcgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUICdiJyBPTiBD T05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK1NFTEVDVCBDQVNUKCdhJzo6aW50IGFzIGludCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCisKKy0tIHRoZSBkZWZh dWx0IGV4cHJlc3Npb27igJlzIGNvbGxhdGlvbiBzaG91bGQgbWF0Y2ggdGFyZ2V0IHR5cGUgY29s bGF0aW9uCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyB0ZXh0IERFRkFVTFQgJzEnIENPTExBVEUg IkMiIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKworVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50 MnZlY3RvciBERUZBVUxUICcxIDMnICBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CitWQUxVRVMgKENB U1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yW10gREVGQVVMVCAnezEgM30nICBPTiBDT05WRVJTSU9O IEVSUk9SKSk7CisKKy0tIHNvdXJjZSBleHByZXNzaW9uIGNvbnRhaW4gc3VicXVlcnkKK1NFTEVD VCBDQVNUKChTRUxFQ1QgYiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAxKSwgKFZBTFVFUygnSCcp KSBzKGIpKQorICAgICAgICAgICAgQVMgaW50MnZlY3RvcltdIERFRkFVTFQgJ3sxIDN9JyAgT04g Q09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgoU0VMRUNUIEFSUkFZKChTRUxFQ1QgYiBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLCAyKSBnLCAoVkFMVUVTKCdIJykpIHMoYikpKSkKKyAgICAg ICAgICAgIEFTIElOVFtdCisgICAgICAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisKK0NSRUFURSBGVU5DVElPTiByZXRfaW50OCgpIFJFVFVSTlMgQklHSU5UIEFTCisk JAorQkVHSU4gUkVUVVJOIDIxNDc0ODM2NDg7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsIElN TVVUQUJMRTsKKworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHJldF9pbnQ4KCkgT04g Q09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCitTRUxFQ1QgQ0FTVCgnYScgYXMgZGF0ZSBERUZB VUxUIHJldF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCisKKy0tIERFRkFV TFQgZXhwcmVzc2lvbiBjYW5ub3QgYmUgc2V0LXJldHVybmluZworQ1JFQVRFIEZVTkNUSU9OIHJl dF9zZXRpbnQoKSBSRVRVUk5TIFNFVE9GIGludGVnZXIgQVMKKyQkCitCRUdJTiBSRVRVUk4gUVVF UlkgRVhFQ1VURSAnc2VsZWN0IDEgdW5pb24gYWxsIHNlbGVjdCAxJzsgRU5EOworJCQKK0xBTkdV QUdFIHBscGdzcWwgSU1NVVRBQkxFOworCitDUkVBVEUgVEFCTEUgdGNhc3QoYSB0ZXh0W10sIGIg aW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIElERU5USVRZKTsKK0lOU0VSVCBJTlRPIHRjYXN0 IFZBTFVFUyAoJ3sxMn0nKSwgKCd7MSxhLCBifScpLCAoJ3t7MSwyfSwge2MsZH19JyksICgnezEz fScpOworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHJldF9zZXRpbnQoKSBPTiBDT05W RVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0OyAtLSBlcnJvcgorU0VMRUNUIENBU1QodCBBUyB0ZXh0 W10gREVGQVVMVCAnezIxLDIyLCAnIHx8IGIgfHwgJ30nIE9OIENPTlZFUlNJT04gRVJST1IpIEZS T00gdGNhc3QgYXMgdDsKK1NFTEVDVCBDQVNUKHQuYSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9 Jzo6aW50W10gfHwgYiBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CisKKy0t IHRlc3Qgd2l0aCB1c2VyLWRlZmluZWQgdHlwZSwgZG9tYWluLCBhcnJheSBvdmVyIGRvbWFpbiwg ZG9tYWluIG92ZXIgYXJyYXkKK0NSRUFURSBET01BSU4gZF9pbnQ0MiBhcyBpbnQgY2hlY2sgKHZh bHVlID0gNDIpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX2ludDQyYXJyIGFzIGRfaW50NDJb XTsKK0NSRUFURSBET01BSU4gZF9pbnQ0MmFycjEgYXMgZF9pbnQ0MmFycjsKK0NSRUFURSBET01B SU4gZF9pbnQ4IGFzIGludDggY2hlY2sgKHZhbHVlID4gMCk7CitDUkVBVEUgRE9NQUlOIGRfaW50 OGFyciBhcyBkX2ludDhbXTsKK0NSRUFURSBET01BSU4gZF9jaGFyM19ub3RfbnVsbCBhcyBjaGFy KDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX3ZhcmNoYXIgYXMgdmFyY2hhcigzKSBOT1Qg TlVMTDsKK0NSRUFURSBET01BSU4gZF9pbnRfYXJyIGFzIGludFtdIGNoZWNrICh2YWx1ZSA9ICd7 NDEsIDQzfScpIE5PVCBOVUxMOworQ1JFQVRFIFRZUEUgY29tcF9kb21haW5fd2l0aF90eXBtb2Qg QVMgKGEgZF9jaGFyM19ub3RfbnVsbCwgYiBpbnQpOworQ1JFQVRFIFRZUEUgY29tcDIgQVMgKGEg ZF92YXJjaGFyKTsKKworU0VMRUNUIENBU1QoMTEgQVMgZF9pbnQ0MiBERUZBVUxUIDQxIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK1NFTEVDVCBDQVNUKDEx IEFTIGRfaW50NDIgREVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04gRVJST1IpOworCitTRUxF Q1QgQ0FTVChBUlJBWVs0Ml06OmRfaW50NDJhcnIxIEFTIGRfaW50OCBERUZBVUxUICcxJyBPTiBD T05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKEFSUkFZWzQyXTo6ZF9pbnQ0MmFycjEgQVMg ZF9pbnQ4W10gREVGQVVMVCAnezF9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KEFSUkFZWzQyXTo6ZF9pbnQ0MmFycjEgQVMgZF9pbnQ4YXJyIERFRkFVTFQgJ3sxfScgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChBUlJBWVs0Ml06OmRfaW50NDJhcnIxIEFTIGRf aW50OGFycltdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworU0VMRUNUIENB U1QoQVJSQVlbNDIsNDFdIEFTIGRfaW50NDJbXSBERUZBVUxUICd7NDIsIDQyfScgT04gQ09OVkVS U0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChBUlJBWVs0Miw0MV0gQVMgZF9pbnRfYXJyIERFRkFV TFQgJ3s0MSwgNDN9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKEFSUkFZWzQy LCA0MV06OmRfaW50NDJhcnIxIEFTIGRfaW50OGFyciBERUZBVUxUICd7MSwyLDN9JyBPTiBDT05W RVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKEFSUkFZWzQyLCA0MV0gQVMgZF9pbnQ0MmFycjEg REVGQVVMVCAnezQyLCA0Mn0nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUCisgICAgQ0FT VChDQVNUKEFSUkFZW0NBU1QoQVJSQVlbNDIsIDQyXSBBUyBkX2ludDQyYXJyKV0gQVMgZF9pbnQ0 MmFycjFbXSkgQVMgZF9pbnQ4YXJyW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworCitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBBUyBjb21wMiBERUZBVUxUICcoMTIzMiknIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIg REVGQVVMVCAnKDEyMyknIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygsNDIp JyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1v ZCBERUZBVUxUICcoMSwyKScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5V TEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMTIzNCwyKScgT04g Q09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCisKKy0tIHRlc3QgYXJyYXkgY29lcmNlCitTRUxF Q1QgQ0FTVChhcnJheVsnYSc6OnRleHRdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsgLS0gZXJyb3IKK1NFTEVDVCBDQVNUKGFycmF5WydhJ10gQVMgaW50W10gREVG QVVMVCBBUlJBWVsxXSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKGFycmF5WzEx LjEyXSBBUyBkYXRlW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNU IENBU1QoYXJyYXlbMTExMTExMTExMTExMTExMTFdIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKGFycmF5W1snYWJjJ10sWzQ1Nl1dIEFTIGlu dFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCd7MTIz LGFiYyw0NTZ9JyBBUyBpbnRbXSBERUZBVUxUICd7LTc4OX0nIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoJ3syMzQsZGVmLDU2N30nOjp0ZXh0W10gQVMgaW50ZWdlcltdIERFRkFV TFQgJ3stMTAxMX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbWycx J10sIFsndGhyZWUnXSxbJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11d IEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCitT RUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJzo6aW50LCAnYSddXSBBUyBpbnRb XSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKK1NFTEVD VCBDQVNUKEFSUkFZWzEsICd0aHJlZSc6OmludF0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScg T04gQ09OVkVSU0lPTiBFUlJPUik7IC0tIGVycm9yCisKKy0tLS0tc2FmZSBjYXN0IHdpdGggZ2Vv bWV0cnkgZGF0YSB0eXBlCitTRUxFQ1QgQ0FTVCgnKDEsMiknOjpwb2ludCBBUyBib3ggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1soTmFOLDEpLChOYU4s aW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworU0VMRUNUIENBU1QoJ1soMWUrMzAwLEluZmluaXR5KSwoMWUrMzAwLEluZmluaXR5KV0n Ojpsc2VnIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKCdbKDEsMiksKDMsNCldJzo6cGF0aCBhcyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTmFOLDEuMCxOYU4saW5maW5pdHkpJzo6 Ym94IEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBsc2VnIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBw b2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCco Mi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBwYXRoIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLGluZmluaXR5LE5hTixpbmZpbml0eSknOjpib3gg QVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KCcoTmFOLDAuMCksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdvbiBBUyBwb2ludCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKDIuMCwwLjAp LCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMC4wKSwoMi4wLDQuMCksKDAuMCww LjApJzo6cG9seWdvbiBBUyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor U0VMRUNUIENBU1QoJyhOYU4saW5maW5pdHkpLCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBv bHlnb24gQVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKCc8KDUsMSksMz4nOjpjaXJjbGUgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzwoMyw1KSwwPic6OmNpcmNsZSBhcyBib3ggREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLSBjYXN0IGZyb20gdHlwZSBjaXJj bGUgdG8gdHlwZSBwb2x5Z29uIGlzIGltcGxlbWVudGVkIGFzIGFuIFNRTCBmdW5jdGlvbiwgd2hp Y2ggY2Fubm90IGJlIGVycm9yLXNhZmUKK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUg YXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tLSBzYWZl IGNhc3QgZnJvbS90byBtb25leSB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQsIGFsbCB0aGUgZm9sbG93 aW5nIHdvdWxkIHJlc3VsdCBlcnJvcgorU0VMRUNUIENBU1QoTlVMTDo6aW50OCBBUyBtb25leSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChOVUxMOjppbnQ0 IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KE5VTEw6Om51bWVyaWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworU0VMRUNUIENBU1QoTlVMTDo6bW9uZXkgQVMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChOVUxMOjptb25leVtdIEFTIG51bWVyaWNbXSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tIHNhZmUgY2FzdCBmcm9tIGJ5 dGVhIHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1QgKCdceDExMjIzMzQ0NTU2 Njc3ODg5OSc6OmJ5dGVhIEFTIGludDggREVGQVVMVCAxOSBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKCdceDEyMzQ1Njc4OUEnOjpieXRlYSBBUyBpbnQ0IERFRkFVTFQgMjAgT04g Q09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTYnOjpieXRlYSBBUyBpbnQy IERFRkFVTFQgMjEgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0tIHNhZmUgY2FzdCBmcm9tIGJp dCB0eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCcxMTExMTExMTExMDAwMDEn OjpiaXQoMTAwKSBBUyBJTlQgREVGQVVMVCAyMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUICgnMTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UOCBERUZBVUxUIDIzIE9O IENPTlZFUlNJT04gRVJST1IpOworCistLS0gc2FmZSBjYXN0IGZyb20gdGV4dCB0eXBlIHRvIG90 aGVyIGRhdGEgdHlwZXMKK3NlbGVjdCBDQVNUKCdhLmIuYy5kJzo6dGV4dCBhcyByZWdjbGFzcyBk ZWZhdWx0IE5VTEwgb24gY29udmVyc2lvbiBlcnJvcik7CisKK0NSRUFURSBUQUJMRSB0ZXN0X3Nh ZmVjYXN0KGNvbDAgdGV4dCk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0KGNvbDApIFZBTFVF UyAoJzx2YWx1ZT5vbmU8L3ZhbHVlJyk7CisKK1NFTEVDVCBjb2wwIGFzIHRleHQsCisgICAgICAg Q0FTVChjb2wwIEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19yZWdjbGFzcywKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5VTEwgYXMgZXhwZWN0X3RydWUsCisgICAgICAgQ0FT VChjb2wwIEFTICJjaGFyIiAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2NoYXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG5hbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX25hbWUsCisgICAgICAgQ0FTVChjb2wwIEFTIHhtbCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9feG1sCitGUk9NIHRlc3Rfc2FmZWNhc3Q7CisK K1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEueCcgYXMgaW5ldCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLjIvMzAnIGFzIGNpZHIgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzIyOjAwOjVjOjA4OjU1 OjA4OjAxOjAyJzo6bWFjYWRkcjggYXMgbWFjYWRkciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisKKy0tLSBzYWZlIGNhc3QgYmV0d2VlZW4gcmFuZ2UgZGF0YSB0eXBlcworU0VM RUNUIENBU1QoJ1sxLDJdJzo6aW50NHJhbmdlIEFTIGludDRtdWx0aXJhbmdlIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbMSwyXSc6OmludDhyYW5nZSBB UyBpbnQ4bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVCgnWzEsMl0nOjpudW1yYW5nZSAgQVMgbnVtbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0n OjpkYXRlcmFuZ2UgQVMgZGF0ZW11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6dHNyYW5nZSBBUyB0 c211bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6dHN0enJhbmdlIEFTIHRzdHptdWx0aXJhbmdlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0gc2FmZSBjYXN0IGJldHdlZWVu IG51bWVyaWMgZGF0YSB0eXBlcworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QxKAorICBjb2wx IGZsb2F0NCwgY29sMiBmbG9hdDgsIGNvbDMgbnVtZXJpYywgY29sNCBudW1lcmljW10sCisgIGNv bDUgaW50MiBkZWZhdWx0IDMyNzY3LAorICBjb2w2IGludDQgZGVmYXVsdCAzMjc2OCwKKyAgY29s NyBpbnQ4IGRlZmF1bHQgNDI5NDk2NzI5Nik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBW QUxVRVMoJzExLjEyMzQnLCAnMTEuMTIzNCcsICc5MjIzMzcyMDM2ODU0Nzc1ODA4JywgJ3sxMS4x MjM0fSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJ2lu ZicsICdpbmYnLCAnaW5mJywgJ3sxMS4xMjM0LCAxMiwgaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsK K0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnLWluZicsICctaW5mJywgJy1pbmYn LCAnezExLjEyMzQsIDEyLCAtaW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKK0lOU0VSVCBJTlRPIHRl c3Rfc2FmZWNhc3QxIFZBTFVFUygnTmFOJywgJ05hTicsICdOYU4nLCAnezExLjEyMzQsIDEyLCAt aW5mLCBOYU59Jzo6bnVtZXJpY1tdKTsKKworU0VMRUNUIGNvbDUgYXMgaW50MiwKKyAgICAgICBD QVNUKGNvbDUgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDUgQVMgb2lkIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w1IGFzIGlu dDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAg Q0FTVChjb2w1IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJp YyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAg ICBDQVNUKGNvbDUgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNU IGNvbDYgYXMgaW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50MiBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50NCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNU KGNvbDYgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQs CisgICAgICAgQ0FTVChjb2w2IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNiBhcyBm bG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAg ICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYygxMCwxKSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0 ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDcgYXMgaW50OCwKKyAgICAgICBDQVNUKGNvbDcg QVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAg ICAgICBDQVNUKGNvbDcgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDcgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w3IGFzIGludDggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w3 IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0 LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVtZXJpYyBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNv bDcgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDMgYXMg bnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50NCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDMg QVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAg ICAgQ0FTVChjb2wzIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMyBhcyBmbG9hdDgg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBD QVNUKGNvbDMgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3Nh ZmVjYXN0MTsKKworU0VMRUNUIGNvbDQgYXMgbnVtX2FyciwKKyAgICAgICBDQVNUKGNvbDQgQVMg aW50MltdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQyYXJyLAorICAg ICAgIENBU1QoY29sNCBBUyBpbnQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIGludDRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGludDhbXSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgaW50OGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgZmxvYXQ0 W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY0YXJyLAorICAgICAgIENB U1QoY29sNCBhcyBmbG9hdDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg ZjhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIG51bWVyaWMoMTAsMSlbXSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgbnVtYXJyCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworCitT RUxFQ1QgY29sMSBhcyBmbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIEFTIGludDIgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2wxIEFT IGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAg ICAgQ0FTVChjb2wxIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fb2lkLAorICAgICAgIENBU1QoY29sMSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNv bDEgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9h dDgsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMoMTAs MSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUK K0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2wyIGFzIGZsb2F0OCwKKyAgICAgICBD QVNUKGNvbDIgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50MiwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDIgQVMgb2lkIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wyIGFzIGlu dDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAg Q0FTVChjb2wyIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJp YyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAg ICBDQVNUKGNvbDIgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworLS0gc2Fm ZSB0eXBlIGNhc3QgZm9yIHR5cGUgZGF0ZS90aW1lc3RhbXAvdGltZXN0YW1wdHovaW50ZXJ2YWwK K0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0MigKKyAgY29sMCBkYXRlLCBjb2wxIHRpbWVzdGFt cCwgY29sMiB0aW1lc3RhbXB0eiwKKyAgY29sMyBpbnRlcnZhbCwgY29sNCB0aW1lLCBjb2w1IHRp bWV0eik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MiBWQUxVRVMKKygnLWluZmluaXR5Jywg Jy1pbmZpbml0eScsICctaW5maW5pdHknLCAnLWluZmluaXR5JywKKyAgJzIwMDMtMDMtMDcgMTU6 MzY6MzkgQW1lcmljYS9OZXdfWW9yaycsICcyMDAzLTA3LTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3 X1lvcmsnKSwKKygnLWluZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5 JywgJzExOjU5OjU5Ljk5IFBNJywgJzExOjU5OjU5Ljk5IFBNIFBEVCcpOworCitTRUxFQ1QgY29s MCBhcyBkYXRlLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2ww IEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisg ICAgICAgQ0FTVChjb2wwIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGlt ZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3Rh bXBfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2wxIGFzIHRpbWVzdGFt cCwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMSBBUyBkYXRl IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENB U1QoY29sMSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190 aW1lcywKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcCgy KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxl CitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sMiBhcyB0aW1lc3RhbXB0eiwKKyAg ICAgICBDQVNUKGNvbDIgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMiBBUyBkYXRlIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29s MiBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywK KyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcCgyKSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9N IHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sMyBhcyBpbnRlcnZhbCwKKyAgICAgICBDQVNU KGNvbDMgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMyBBUyBkYXRlIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMyBBUyB0aW1l IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBD QVNUKGNvbDMgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1ldHosCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlLAorICAgICAgIENBU1Qo Y29sMyBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2w0IGFz IHRpbWUsCisgICAgICAgQ0FTVChjb2w0IEFTIHRpbWUoMikgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sNCBBUyB0aW1ldHogREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5PVCBOVUxMIGFzIHRvX3RpbWV0eiwK KyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgy KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUK K0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2w1IGFzIHRpbWV0eiwKKyAgICAgICBD QVNUKGNvbDUgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f dGltZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fdGltZV9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZXR6 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAg Q0FTVChjb2w1IEFTIHRpbWV0eig2KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fdGltZXR6X3NjYWxlLAorICAgICAgIENBU1QoY29sNSBBUyBpbnRlcnZhbCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChj b2w1IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworQ1JFQVRFIFRBQkxFIHRl c3Rfc2FmZWNhc3QzKGNvbDAganNvbmIpOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDMoY29s MCkgVkFMVUVTICgnInRlc3QiJyk7CitTRUxFQ1QgY29sMCBhcyBqc29uYiwKKyAgICAgICBDQVNU KGNvbDAgQVMgaW50ZWdlciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50ZWdlciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDAgQVMgYmlnaW50 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENB U1QoY29sMCBBUyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wwIEFTIGJvb2xlYW4g REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Jvb2wsCisgICAgICAgQ0FT VChjb2wwIEFTIHNtYWxsaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19zbWFsbGludAorRlJPTSB0ZXN0X3NhZmVjYXN0MzsKKworLS0gdGVzdCBkZXBhcnNlCitTRVQg ZGF0ZXN0eWxlIFRPIElTTywgWU1EOworQ1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3IEFTCitTRUxF Q1QgQ0FTVCgnMTIzNCcgYXMgY2hhcigzKSBERUZBVUxUIC0xMTExIE9OIENPTlZFUlNJT04gRVJS T1IpLAorICAgICAgIENBU1QoMSBhcyBkYXRlIERFRkFVTFQgKCgnMjAyNS1EZWMtMDYnOjpkYXRl ICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg Y2FzdDAsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBpbnRb XSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDEsCisgICAgICAg Q0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgZGF0ZVtdIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MiwKKyAgICAgICBDQVNUKEFSUkFZWyd0 aHJlZSddIEFTIElOVFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBj YXN0MzsKK1xzdiBzYWZlY2FzdHZpZXcKK1NFTEVDVCAqIEZST00gc2FmZWNhc3R2aWV3OworCitD UkVBVEUgVklFVyBzYWZlY2FzdHZpZXcxIEFTCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnXSwgWyd0 aHJlZSddLFsnYSddXSBBUyBkX2ludF9hcnIKKyAgICAgICAgICAgIERFRkFVTFQgJ3s0MSw0M30n IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywg JzInLCAxLjFdLCBbJ3RocmVlJywgdHJ1ZSwgQicwMSddXSBBUyBkX2ludF9hcnIKKyAgICAgICAg ICAgIERFRkFVTFQgJ3s0MSw0M30nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QyOworXHN2 IHNhZmVjYXN0dmlldzEKK1NFTEVDVCAqIEZST00gc2FmZWNhc3R2aWV3MTsKKworUkVTRVQgZGF0 ZXN0eWxlOworCistLSB0ZXN0IENBU1QgREVGQVVMVCBleHByZXNzaW9uIG11dGFiaWxpdHkKK0NS RUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFz IGludCBERUZBVUxUIHJhbmRvbShtaW49PjEsIG1heD0+MSkgT04gQ09OVkVSU0lPTiBFUlJPUikp KTsgLS0gZXJyb3IKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVjYXN0 MygoQ0FTVChjb2wwIGFzIHhpZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsg LS0gZXJyb3IKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0ZXN0X3NhZmVjYXN0Mygo Q0FTVChjb2wwIGFzIGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsgLS1v aworU0VMRUNUIHBnX2dldF9pbmRleGRlZignY2FzdF9lcnJvcl9pZHgnOjpyZWdjbGFzcyk7CisK K0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDE7CitE Uk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QyOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MzsKK0RS T1AgVEFCTEUgdGNhc3Q7CitEUk9QIEZVTkNUSU9OIHJldF9pbnQ4OworRFJPUCBGVU5DVElPTiBy ZXRfc2V0aW50OworRFJPUCBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kOworRFJPUCBUWVBF IGNvbXAyOworRFJPUCBET01BSU4gZF92YXJjaGFyOworRFJPUCBET01BSU4gZF9pbnQ4YXJyOwor RFJPUCBET01BSU4gZF9pbnQ4OworRFJPUCBET01BSU4gZF9pbnQ0MmFycjE7CitEUk9QIERPTUFJ TiBkX2ludDQyYXJyOworRFJPUCBET01BSU4gZF9pbnQ0MjsKK0RST1AgRE9NQUlOIGRfY2hhcjNf bm90X251bGw7CitSRVNFVCBleHRyYV9mbG9hdF9kaWdpdHM7CmRpZmYgLS1naXQgYS9zcmMvdGVz dC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVh dGVfY2FzdC5zcWwKaW5kZXggMzIxODc4NTNjYzcuLjBhMTVhNzk1ZDg3IDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVz cy9zcWwvY3JlYXRlX2Nhc3Quc3FsCkBAIC02Miw2ICs2Miw3IEBAICQkIFNFTEVDVCAoJ2Jhcic6 OnRleHQgfHwgJDE6OnRleHQpOyAkJDsKIAogQ1JFQVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0 eXBlKSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgQVMgSU1QTElDSVQ7CiBTRUxF Q1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91bGQgd29yayBub3cKK1NFTEVDVCBD QVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsgLS0gZXJyb3IKIAogLS0gY2hlY2sgZGVwZW5kZW5jaWVzIGdlbmVyYXRlZCBmb3Ig dGhhdAogU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdChjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQp IGFzIG9iaiwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2VxdWl2Y2xhc3Muc3Fs IGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXF1aXZjbGFzcy5zcWwKaW5kZXggN2ZjMjE1OTM0OWIu LjdhZGE0YmI1NTA0IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9lcXVpdmNsYXNz LnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9lcXVpdmNsYXNzLnNxbApAQCAtOTgsNiAr OTgsOSBAQCBjcmVhdGUgZnVuY3Rpb24gaW50OGFsaWFzMWNtcChpbnQ4LCBpbnQ4YWxpYXMxKSBy ZXR1cm5zIGludAogYWx0ZXIgb3BlcmF0b3IgZmFtaWx5IGludGVnZXJfb3BzIHVzaW5nIGJ0cmVl IGFkZAogICBmdW5jdGlvbiAxIGludDhhbGlhczFjbXAgKGludDgsIGludDhhbGlhczEpOwogCist LSBpbnQ4YWxpYXMyIGJpbmFyeS1jb2VyY2libGUgdG8gaW50OCwgdGhpcyBzaG91bGQgbm90IGZh aWwKK3NlbGVjdCBjYXN0KCcxJzo6aW50OCBhcyBpbnQ4YWxpYXMyIGRlZmF1bHQgbnVsbCBvbiBj b252ZXJzaW9uIGVycm9yKTsKKwogY3JlYXRlIHRhYmxlIGVjMCAoZmYgaW50OCBwcmltYXJ5IGtl eSwgZjEgaW50OCwgZjIgaW50OCk7CiBjcmVhdGUgdGFibGUgZWMxIChmZiBpbnQ4IHByaW1hcnkg a2V5LCBmMSBpbnQ4YWxpYXMxLCBmMiBpbnQ4YWxpYXMyKTsKIGNyZWF0ZSB0YWJsZSBlYzIgKHhm IGludDggcHJpbWFyeSBrZXksIHgxIGludDhhbGlhczEsIHgyIGludDhhbGlhczIpOwpkaWZmIC0t Z2l0IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRl bnQvdHlwZWRlZnMubGlzdAppbmRleCAwZGU1NTE4Mzc5My4uMzA3MDI3ZjEwOWQgMTAwNjQ0Ci0t LSBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2lu ZGVudC90eXBlZGVmcy5saXN0CkBAIC0yNzA1LDYgKzI3MDUsOCBAQCBTVFJMRU4KIFNWCiBTWU5D SFJPTklaQVRJT05fQkFSUklFUgogU1lTVEVNX0lORk8KK1NhZmVUeXBlQ2FzdEV4cHIKK1NhZmVU eXBlQ2FzdFN0YXRlCiBTYW1wbGVTY2FuCiBTYW1wbGVTY2FuR2V0U2FtcGxlU2l6ZV9mdW5jdGlv bgogU2FtcGxlU2NhblN0YXRlCi0tIAoyLjM0LjEKCg== --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0021-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v21-0021-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s2d4 RnJvbSBmZjU3OGE0OGJjNGNhYjYxODZiMTQzNmRjZThlZWJhNDgwZWI2YzAyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTIgTWFyIDIwMjYgMTQ6MTY6MjUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAyMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBnZW9tZXRyeSBkYXRhIHR5cGUKCnNlbGVj dCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBwcC5wcm9zcmMKZnJv bSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0ZnVuYwpqb2lu IHBnX3R5cGUgcHQgb24gcHQub2lkID0gY2FzdHNvdXJjZQpqb2luIHBnX3R5cGUgcHQxIG9uIHB0 MS5vaWQgPSBjYXN0dGFyZ2V0CmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kICBwdC50eXBhcnJheSA8 PiAwCmFuZCBwdC50eXBuYW1lc3BhY2UgPSAncGdfY2F0YWxvZyc6OnJlZ25hbWVzcGFjZQphbmQg cHQxLnR5cG5hbWVzcGFjZSA9ICdwZ19jYXRhbG9nJzo6cmVnbmFtZXNwYWNlCmFuZCAocHQudHlw Y2F0ZWdvcnkgID0gJ0cnIG9yIHB0MS50eXBjYXRlZ29yeSAgPSAnRycpCm9yZGVyIGJ5IGNhc3Rz b3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0 YXJnZXQgfCAgICBwcm9zcmMKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0KIHBvaW50ICAgICAgfCBib3ggICAgICAgIHwgcG9pbnRfYm94CiBsc2VnICAgICAgIHwgcG9p bnQgICAgICB8IGxzZWdfY2VudGVyCiBwYXRoICAgICAgIHwgcG9seWdvbiAgICB8IHBhdGhfcG9s eQogYm94ICAgICAgICB8IHBvaW50ICAgICAgfCBib3hfY2VudGVyCiBib3ggICAgICAgIHwgbHNl ZyAgICAgICB8IGJveF9kaWFnb25hbAogYm94ICAgICAgICB8IHBvbHlnb24gICAgfCBib3hfcG9s eQogYm94ICAgICAgICB8IGNpcmNsZSAgICAgfCBib3hfY2lyY2xlCiBwb2x5Z29uICAgIHwgcG9p bnQgICAgICB8IHBvbHlfY2VudGVyCiBwb2x5Z29uICAgIHwgcGF0aCAgICAgICB8IHBvbHlfcGF0 aAogcG9seWdvbiAgICB8IGJveCAgICAgICAgfCBwb2x5X2JveAogcG9seWdvbiAgICB8IGNpcmNs ZSAgICAgfCBwb2x5X2NpcmNsZQogY2lyY2xlICAgICB8IHBvaW50ICAgICAgfCBjaXJjbGVfY2Vu dGVyCiBjaXJjbGUgICAgIHwgYm94ICAgICAgICB8IGNpcmNsZV9ib3gKIGNpcmNsZSAgICAgfCBw b2x5Z29uICAgIHwKKDE0IHJvd3MpCgphbHJlYWR5IGVycm9yIHNhZmU6IHBvaW50X2JveCwgYm94 X2RpYWdvbmFsLCBib3hfcG9seSwgcG9seV9wYXRoLCBwb2x5X2JveCwgY2lyY2xlX2NlbnRlci4K ClRoaXMgcGF0Y2ggbWFrZSB0aGVzZSBmdW5jdGlvbnMgZXJyb3Igc2FmZTogbHNlZ19jZW50ZXIs IHBhdGhfcG9seSwgYm94X2NlbnRlciwKYm94X2NpcmNsZSwgcG9seV9jZW50ZXIsIHBvbHlfY2ly Y2xlLCBjaXJjbGVfYm94LgoKRnVuY3Rpb24gdGhhdCBjYXN0aW5nIHR5cGUgY2lyY2xlIHRvIHR5 cGUgcG9seWdvbiBjYW5ub3QgYmUgZXJyb3Igc2FmZSwgYmVjYXVzZQppdCdzIGEgU1FMIGZ1bmN0 aW9uLgoKRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQUNKdWZ4SENNenJIT1c9d1Jl OEwzMHJNaEIzc2p3QXYxTEU5MjhGYTdzeE11MVR4LWdAbWFpbC5nbWFpbC5jb20KQ29tbWl0ZmVz dDogaHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwub3JnL3BhdGNoLzU5NDEKLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jIHwgMTk5ICsrKysrKysrKysrKysrKysrKysrKysr KystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTU3IGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9u cygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCmluZGV4IGM2NTViMDE1YzE0Li41YjE1NjA3NDc5 NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCkBAIC03Nyw3ICs3Nyw4IEBAIGVudW0gcGF0aF9k ZWxpbQogCiAvKiBSb3V0aW5lcyBmb3IgcG9pbnRzICovCiBzdGF0aWMgaW5saW5lIHZvaWQgcG9p bnRfY29uc3RydWN0KFBvaW50ICpyZXN1bHQsIGZsb2F0OCB4LCBmbG9hdDggeSk7Ci1zdGF0aWMg aW5saW5lIHZvaWQgcG9pbnRfYWRkX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBv aW50ICpwdDIpOworc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2FkZF9wb2ludChQb2ludCAqcmVz dWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyLAorCQkJCQkJCQkgICBOb2RlICplc2NvbnRleHQp Owogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X3N1Yl9wb2ludChQb2ludCAqcmVzdWx0LCBQb2lu dCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9tdWxfcG9pbnQo UG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5saW5lIHZv aWQgcG9pbnRfZGl2X3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIp OwpAQCAtMTA4LDcgKzEwOSw3IEBAIHN0YXRpYyBmbG9hdDggbHNlZ19jbG9zZXB0X2xzZWcoUG9p bnQgKnJlc3VsdCwgTFNFRyAqb25fbHNlZywgTFNFRyAqdG9fbHNlZyk7CiAKIC8qIFJvdXRpbmVz IGZvciBib3hlcyAqLwogc3RhdGljIGlubGluZSB2b2lkIGJveF9jb25zdHJ1Y3QoQk9YICpyZXN1 bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwotc3RhdGljIHZvaWQgYm94X2NuKFBvaW50ICpj ZW50ZXIsIEJPWCAqYm94KTsKK3N0YXRpYyBib29sIGJveF9jbihQb2ludCAqY2VudGVyLCBCT1gg KmJveCwgTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBib29sIGJveF9vdihCT1ggKmJveDEsIEJP WCAqYm94Mik7CiBzdGF0aWMgZmxvYXQ4IGJveF9hcihCT1ggKmJveCk7CiBzdGF0aWMgZmxvYXQ4 IGJveF9odChCT1ggKmJveCk7CkBAIC0xMjUsNyArMTI2LDcgQEAgc3RhdGljIGZsb2F0OCBjaXJj bGVfYXIoQ0lSQ0xFICpjaXJjbGUpOwogCiAvKiBSb3V0aW5lcyBmb3IgcG9seWdvbnMgKi8KIHN0 YXRpYyB2b2lkIG1ha2VfYm91bmRfYm94KFBPTFlHT04gKnBvbHkpOwotc3RhdGljIHZvaWQgcG9s eV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpOworc3RhdGljIGJvb2wg cG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHksIE5vZGUgKmVzY29u dGV4dCk7CiBzdGF0aWMgYm9vbCBsc2VnX2luc2lkZV9wb2x5KFBvaW50ICphLCBQb2ludCAqYiwg UE9MWUdPTiAqcG9seSwgaW50IHN0YXJ0KTsKIHN0YXRpYyBib29sIHBvbHlfY29udGFpbl9wb2x5 KFBPTFlHT04gKmNvbnRhaW5zX3BvbHksIFBPTFlHT04gKmNvbnRhaW5lZF9wb2x5KTsKIHN0YXRp YyBib29sIHBsaXN0X3NhbWUoaW50IG5wdHMsIFBvaW50ICpwMSwgUG9pbnQgKnAyKTsKQEAgLTgz Niw4ICs4MzcsOCBAQCBib3hfZGlzdGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAlQb2ludAkJYSwK IAkJCQliOwogCi0JYm94X2NuKCZhLCBib3gxKTsKLQlib3hfY24oJmIsIGJveDIpOworCSh2b2lk KSBib3hfY24oJmEsIGJveDEsIGZjaW5mby0+Y29udGV4dCk7CisJKHZvaWQpIGJveF9jbigmYiwg Ym94MiwgZmNpbmZvLT5jb250ZXh0KTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQoJmEs ICZiLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KQEAgLTg1MSw3ICs4NTIsOCBAQCBib3hfY2VudGVy KFBHX0ZVTkNUSU9OX0FSR1MpCiAJQk9YCQkgICAqYm94ID0gUEdfR0VUQVJHX0JPWF9QKDApOwog CVBvaW50CSAgICpyZXN1bHQgPSBwYWxsb2Nfb2JqZWN0KFBvaW50KTsKIAotCWJveF9jbihyZXN1 bHQsIGJveCk7CisJaWYgKCFib3hfY24ocmVzdWx0LCBib3gsIGZjaW5mby0+Y29udGV4dCkpCisJ CVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQpOwogfQpAQCAt ODY4LDE0ICs4NzAsMzEgQEAgYm94X2FyKEJPWCAqYm94KQogCiAvKgkJYm94X2NuCS0JCXN0b3Jl cyB0aGUgY2VudGVycG9pbnQgb2YgdGhlIGJveCBpbnRvICpjZW50ZXIuCiAgKi8KLXN0YXRpYyB2 b2lkCi1ib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpib3gpCitzdGF0aWMgYm9vbAorYm94X2Nu KFBvaW50ICpjZW50ZXIsIEJPWCAqYm94LCBOb2RlICplc2NvbnRleHQpCiB7Ci0JY2VudGVyLT54 ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLngsIGJveC0+bG93LngpLCAyLjApOwot CWNlbnRlci0+eSA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC55LCBib3gtPmxvdy55 KSwgMi4wKTsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5OworCisJeCA9IGZsb2F0OF9wbF9zYWZl KGJveC0+aGlnaC54LCBib3gtPmxvdy54LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCWNlbnRlci0+eCA9IGZsb2F0 OF9kaXZfc2FmZSh4LCAyLjAsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQo ZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJeSA9IGZsb2F0OF9wbF9zYWZlKGJveC0+ aGlnaC55LCBib3gtPmxvdy55LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVE KGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCWNlbnRlci0+eSA9IGZsb2F0OF9kaXZf c2FmZSh5LCAyLjAsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250 ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7CiB9CiAKLQogLyoJCWJveF93 ZAktCQlyZXR1cm5zIHRoZSB3aWR0aCAobGVuZ3RoKSBvZiB0aGUgYm94CiAgKgkJCQkJCQkJICAo aG9yaXpvbnRhbCBtYWduaXR1ZGUpLgogICovCkBAIC0yMzI5LDEzICsyMzQ4LDMxIEBAIGxzZWdf Y2VudGVyKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJTFNFRwkgICAqbHNlZyA9IFBHX0dFVEFSR19M U0VHX1AoMCk7CiAJUG9pbnQJICAgKnJlc3VsdDsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5Owog CiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChQb2ludCk7CiAKLQlyZXN1bHQtPnggPSBmbG9hdDhf ZGl2KGZsb2F0OF9wbChsc2VnLT5wWzBdLngsIGxzZWctPnBbMV0ueCksIDIuMCk7Ci0JcmVzdWx0 LT55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwobHNlZy0+cFswXS55LCBsc2VnLT5wWzFdLnkpLCAy LjApOworCXggPSBmbG9hdDhfcGxfc2FmZShsc2VnLT5wWzBdLngsIGxzZWctPnBbMV0ueCwgZmNp bmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQp KQorCQlnb3RvIGZhaWw7CisKKwlyZXN1bHQtPnggPSBmbG9hdDhfZGl2X3NhZmUoeCwgMi4wLCBm Y2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4 dCkpCisJCWdvdG8gZmFpbDsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShsc2VnLT5wWzBdLnksIGxz ZWctPnBbMV0ueSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChm Y2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlyZXN1bHQtPnkgPSBmbG9hdDhfZGl2 X3NhZmUoeSwgMi4wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVE KGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJl c3VsdCk7CisKK2ZhaWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0KIAogCkBAIC0zMjkwLDcgKzMz MjcsNyBAQCBib3hfaW50ZXJwdF9sc2VnKFBvaW50ICpyZXN1bHQsIEJPWCAqYm94LCBMU0VHICps c2VnKQogCiAJaWYgKHJlc3VsdCAhPSBOVUxMKQogCXsKLQkJYm94X2NuKCZwb2ludCwgYm94KTsK KwkJKHZvaWQpIGJveF9jbigmcG9pbnQsIGJveCwgTlVMTCk7CiAJCWxzZWdfY2xvc2VwdF9wb2lu dChyZXN1bHQsIGxzZWcsICZwb2ludCk7CiAJfQogCkBAIC00MTIxLDExICs0MTU4LDIwIEBAIGNv bnN0cnVjdF9wb2ludChQR19GVU5DVElPTl9BUkdTKQogCiAKIHN0YXRpYyBpbmxpbmUgdm9pZAot cG9pbnRfYWRkX3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpCitw b2ludF9hZGRfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9k ZSAqZXNjb250ZXh0KQogewotCXBvaW50X2NvbnN0cnVjdChyZXN1bHQsCi0JCQkJCWZsb2F0OF9w bChwdDEtPngsIHB0Mi0+eCksCi0JCQkJCWZsb2F0OF9wbChwdDEtPnksIHB0Mi0+eSkpOworCWZs b2F0OAkJeDsKKwlmbG9hdDgJCXk7CisKKwl4ID0gZmxvYXQ4X3BsX3NhZmUocHQxLT54LCBwdDIt PngsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJ cmV0dXJuOworCisJeSA9IGZsb2F0OF9wbF9zYWZlKHB0MS0+eSwgcHQyLT55LCBlc2NvbnRleHQp OworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybjsKKworCXBv aW50X2NvbnN0cnVjdChyZXN1bHQsIHgsIHkpOwogfQogCiBEYXR1bQpAQCAtNDEzNyw3ICs0MTgz LDcgQEAgcG9pbnRfYWRkKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBwYWxsb2Nfb2Jq ZWN0KFBvaW50KTsKIAotCXBvaW50X2FkZF9wb2ludChyZXN1bHQsIHAxLCBwMik7CisJcG9pbnRf YWRkX3BvaW50KHJlc3VsdCwgcDEsIHAyLCBmY2luZm8tPmNvbnRleHQpOwogCiAJUEdfUkVUVVJO X1BPSU5UX1AocmVzdWx0KTsKIH0KQEAgLTQyNDksOCArNDI5NSw4IEBAIGJveF9hZGQoUEdfRlVO Q1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHBhbGxvY19vYmplY3QoQk9YKTsKIAotCXBvaW50X2Fk ZF9wb2ludCgmcmVzdWx0LT5oaWdoLCAmYm94LT5oaWdoLCBwKTsKLQlwb2ludF9hZGRfcG9pbnQo JnJlc3VsdC0+bG93LCAmYm94LT5sb3csIHApOworCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5o aWdoLCAmYm94LT5oaWdoLCBwLCBmY2luZm8tPmNvbnRleHQpOworCXBvaW50X2FkZF9wb2ludCgm cmVzdWx0LT5sb3csICZib3gtPmxvdywgcCwgZmNpbmZvLT5jb250ZXh0KTsKIAogCVBHX1JFVFVS Tl9CT1hfUChyZXN1bHQpOwogfQpAQCAtNDQxMyw3ICs0NDU5LDcgQEAgcGF0aF9hZGRfcHQoUEdf RlVOQ1RJT05fQVJHUykKIAlpbnQJCQlpOwogCiAJZm9yIChpID0gMDsgaSA8IHBhdGgtPm5wdHM7 IGkrKykKLQkJcG9pbnRfYWRkX3BvaW50KCZwYXRoLT5wW2ldLCAmcGF0aC0+cFtpXSwgcG9pbnQp OworCQlwb2ludF9hZGRfcG9pbnQoJnBhdGgtPnBbaV0sICZwYXRoLT5wW2ldLCBwb2ludCwgZmNp bmZvLT5jb250ZXh0KTsKIAogCVBHX1JFVFVSTl9QQVRIX1AocGF0aCk7CiB9CkBAIC00NDcxLDcg KzQ1MTcsNyBAQCBwYXRoX3BvbHkoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFRoaXMgaXMgbm90 IHZlcnkgY29uc2lzdGVudCAtLS0gb3RoZXIgc2ltaWxhciBjYXNlcyByZXR1cm4gTlVMTCAuLi4g Ki8KIAlpZiAoIXBhdGgtPmNsb3NlZCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFS QU1FVEVSX1ZBTFVFKSwKIAkJCQkgZXJybXNnKCJvcGVuIHBhdGggY2Fubm90IGJlIGNvbnZlcnRl ZCB0byBwb2x5Z29uIikpKTsKIApAQCAtNDUyMSw3ICs0NTY3LDkgQEAgcG9seV9jZW50ZXIoUEdf RlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHBhbGxvY19vYmplY3QoUG9pbnQpOwogCi0JcG9s eV90b19jaXJjbGUoJmNpcmNsZSwgcG9seSk7CisJaWYgKCFwb2x5X3RvX2NpcmNsZSgmY2lyY2xl LCBwb2x5LCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCiAJKnJlc3Vs dCA9IGNpcmNsZS5jZW50ZXI7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQpOwpAQCAtNDk4 Myw3ICs1MDMxLDcgQEAgY2lyY2xlX2FkZF9wdChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0 ID0gcGFsbG9jX29iamVjdChDSVJDTEUpOwogCi0JcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQtPmNl bnRlciwgJmNpcmNsZS0+Y2VudGVyLCBwb2ludCk7CisJcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQt PmNlbnRlciwgJmNpcmNsZS0+Y2VudGVyLCBwb2ludCwgZmNpbmZvLT5jb250ZXh0KTsKIAlyZXN1 bHQtPnJhZGl1cyA9IGNpcmNsZS0+cmFkaXVzOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3Vs dCk7CkBAIC01MjA0LDE0ICs1MjUyLDMwIEBAIGNpcmNsZV9ib3goUEdfRlVOQ1RJT05fQVJHUykK IAogCWJveCA9IHBhbGxvY19vYmplY3QoQk9YKTsKIAotCWRlbHRhID0gZmxvYXQ4X2RpdihjaXJj bGUtPnJhZGl1cywgc3FydCgyLjApKTsKKwlkZWx0YSA9IGZsb2F0OF9kaXZfc2FmZShjaXJjbGUt PnJhZGl1cywgc3FydCgyLjApLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAotCWJveC0+aGlnaC54ID0g ZmxvYXQ4X3BsKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmxvdy54ID0gZmxvYXQ4 X21pKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhKTsKLQlib3gtPmhpZ2gueSA9IGZsb2F0OF9wbChj aXJjbGUtPmNlbnRlci55LCBkZWx0YSk7Ci0JYm94LT5sb3cueSA9IGZsb2F0OF9taShjaXJjbGUt PmNlbnRlci55LCBkZWx0YSk7CisJYm94LT5oaWdoLnggPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUt PmNlbnRlci54LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NV UlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy54ID0gZmxv YXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50ZXIueCwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwor CisJYm94LT5oaWdoLnkgPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSwg ZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRl eHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy55ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xl LT5jZW50ZXIueSwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0ND VVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwogCiAJUEdfUkVUVVJOX0JPWF9Q KGJveCk7CisKK2ZhaWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0KIAogLyogYm94X2NpcmNsZSgp CkBAIC01MjIyLDE1ICs1Mjg2LDM1IEBAIGJveF9jaXJjbGUoUEdfRlVOQ1RJT05fQVJHUykKIHsK IAlCT1gJCSAgICpib3ggPSBQR19HRVRBUkdfQk9YX1AoMCk7CiAJQ0lSQ0xFCSAgICpjaXJjbGU7 CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAogCWNpcmNsZSA9IHBhbGxvY19vYmplY3QoQ0lS Q0xFKTsKIAotCWNpcmNsZS0+Y2VudGVyLnggPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhp Z2gueCwgYm94LT5sb3cueCksIDIuMCk7Ci0JY2lyY2xlLT5jZW50ZXIueSA9IGZsb2F0OF9kaXYo ZmxvYXQ4X3BsKGJveC0+aGlnaC55LCBib3gtPmxvdy55KSwgMi4wKTsKKwl4ID0gZmxvYXQ4X3Bs X3NhZmUoYm94LT5oaWdoLngsIGJveC0+bG93LngsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNP RlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJY2ly Y2xlLT5jZW50ZXIueCA9IGZsb2F0OF9kaXZfc2FmZSh4LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7 CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWls OworCisJeSA9IGZsb2F0OF9wbF9zYWZlKGJveC0+aGlnaC55LCBib3gtPmxvdy55LCBmY2luZm8t PmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJ CWdvdG8gZmFpbDsKKworCWNpcmNsZS0+Y2VudGVyLnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwgMi4w LCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29u dGV4dCkpCisJCWdvdG8gZmFpbDsKIAogCWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNs ZS0+Y2VudGVyLCAmYm94LT5oaWdoLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9S X09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9D SVJDTEVfUChjaXJjbGUpOworCitmYWlsOgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAKIApAQCAt NTI4OSwxNSArNTM3MywxNiBAQCBjaXJjbGVfcG9seShQR19GVU5DVElPTl9BUkdTKQogLyoKICAq IENvbnZlcnQgcG9seWdvbiB0byBjaXJjbGUKICAqCi0gKiBUaGUgcmVzdWx0IG11c3QgYmUgcHJl YWxsb2NhdGVkLgorICogVGhlIHBhcmFtZXRlciAicmVzdWx0IiBtdXN0IGJlIHByZWFsbG9jYXRl ZC4KICAqCiAgKiBYWFggVGhpcyBhbGdvcml0aG0gc2hvdWxkIHVzZSB3ZWlnaHRlZCBtZWFucyBv ZiBsaW5lIHNlZ21lbnRzCiAgKglyYXRoZXIgdGhhbiBzdHJhaWdodCBhdmVyYWdlIHZhbHVlcyBv ZiBwb2ludHMgLSB0Z2wgOTcvMDEvMjEuCiAgKi8KLXN0YXRpYyB2b2lkCi1wb2x5X3RvX2NpcmNs ZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdPTiAqcG9seSkKK3N0YXRpYyBib29sCitwb2x5X3RvX2Np cmNsZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdPTiAqcG9seSwgTm9kZSAqZXNjb250ZXh0KQogewog CWludAkJCWk7CisJZmxvYXQ4CQl4OwogCiAJQXNzZXJ0KHBvbHktPm5wdHMgPiAwKTsKIApAQCAt NTMwNiwxNCArNTM5MSw0MyBAQCBwb2x5X3RvX2NpcmNsZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdP TiAqcG9seSkKIAlyZXN1bHQtPnJhZGl1cyA9IDA7CiAKIAlmb3IgKGkgPSAwOyBpIDwgcG9seS0+ bnB0czsgaSsrKQotCQlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAmcmVzdWx0LT5j ZW50ZXIsICZwb2x5LT5wW2ldKTsKLQlyZXN1bHQtPmNlbnRlci54ID0gZmxvYXQ4X2RpdihyZXN1 bHQtPmNlbnRlci54LCBwb2x5LT5ucHRzKTsKLQlyZXN1bHQtPmNlbnRlci55ID0gZmxvYXQ4X2Rp dihyZXN1bHQtPmNlbnRlci55LCBwb2x5LT5ucHRzKTsKKwl7CisJCXBvaW50X2FkZF9wb2ludCgm cmVzdWx0LT5jZW50ZXIsCisJCQkJCQkmcmVzdWx0LT5jZW50ZXIsCisJCQkJCQkmcG9seS0+cFtp XSwKKwkJCQkJCWVzY29udGV4dCk7CisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4 dCkpCisJCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmVzdWx0LT5jZW50ZXIueCA9IGZsb2F0OF9k aXZfc2FmZShyZXN1bHQtPmNlbnRlci54LAorCQkJCQkJCQkJICAgcG9seS0+bnB0cywKKwkJCQkJ CQkJCSAgIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkK KwkJcmV0dXJuIGZhbHNlOworCisJcmVzdWx0LT5jZW50ZXIueSA9IGZsb2F0OF9kaXZfc2FmZShy ZXN1bHQtPmNlbnRlci55LAorCQkJCQkJCQkJICAgcG9seS0+bnB0cywKKwkJCQkJCQkJCSAgIGVz Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJu IGZhbHNlOwogCiAJZm9yIChpID0gMDsgaSA8IHBvbHktPm5wdHM7IGkrKykKLQkJcmVzdWx0LT5y YWRpdXMgPSBmbG9hdDhfcGwocmVzdWx0LT5yYWRpdXMsCi0JCQkJCQkJCSAgIHBvaW50X2R0KCZw b2x5LT5wW2ldLCAmcmVzdWx0LT5jZW50ZXIsIE5VTEwpKTsKLQlyZXN1bHQtPnJhZGl1cyA9IGZs b2F0OF9kaXYocmVzdWx0LT5yYWRpdXMsIHBvbHktPm5wdHMpOworCXsKKwkJeCA9IHBvaW50X2R0 KCZwb2x5LT5wW2ldLCAmcmVzdWx0LT5jZW50ZXIsIGVzY29udGV4dCk7CisJCWlmIChTT0ZUX0VS Uk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCQlyZXR1cm4gZmFsc2U7CisKKwkJcmVzdWx0LT5y YWRpdXMgPSBmbG9hdDhfcGxfc2FmZShyZXN1bHQtPnJhZGl1cywgeCwgZXNjb250ZXh0KTsKKwkJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJCXJldHVybiBmYWxzZTsKKwl9 CisKKwlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9kaXZfc2FmZShyZXN1bHQtPnJhZGl1cywgcG9s eS0+bnB0cywgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQlyZXR1cm4gZmFsc2U7CisKKwlyZXR1cm4gdHJ1ZTsKIH0KIAogRGF0dW0KQEAgLTUzMjQs NyArNTQzOCw4IEBAIHBvbHlfY2lyY2xlKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBw YWxsb2Nfb2JqZWN0KENJUkNMRSk7CiAKLQlwb2x5X3RvX2NpcmNsZShyZXN1bHQsIHBvbHkpOwor CWlmICghcG9seV90b19jaXJjbGUocmVzdWx0LCBwb2x5LCBmY2luZm8tPmNvbnRleHQpKQorCQlQ R19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3VsdCk7CiB9Ci0tIAoy LjM0LjEKCg== --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Disposition: attachment; filename="v21-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s1m0 RnJvbSBkZTg0MTNlY2RhMGQ1NWJkZTE2MjlmODFjMzhjOGRlMTUzZWE3MjA5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTcgTWFyIDIwMjYgMTE6NDU6MDMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAyMy8yM10gZXJyb3Igc2FmZSBmb3IgdXNlciBkZWZpbmVkIENSRUFURSBDQVNUCgpwZ19jYXN0 LmNhc3RlcnJvcnNhZmUgY29sdW1uIHRvIGluZGljYXRlIGNhc3RmdW5jIGlzIGVycm9yIHNhZmUg b3Igbm90LgpjaGFuZ2Ugc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCB0byBpbmRpY2F0 ZSB0aGF0IG1vc3Qgb2YgdGhlIHN5c3RlbSBjYXN0CmZ1bmN0aW9uIHN1cHBvcnQgc29mdCBlcnJv ciBldmFsdWF0aW9uLgoKVGhlIFNBRkUga2V5d29yZCBpcyBpbnRyb2R1Y2VkIGZvciBhbGxvdyB1 c2VyLWRlZmluZWQgQ1JFQVRFIENBU1QgY2FuIGFsc28gYmUKZXZhbHVhdGVkIGluIHNvZnQtZXJy b3IuCgpUaGUgbmV3IHN5bm9wc2lzIG9mIENSRUFURSBDQVNUIGlzOgpDUkVBVEUgQ0FTVCAoc291 cmNlX3R5cGUgQVMgdGFyZ2V0X3R5cGUpCiAgICBXSVRIIFtTQUZFXSBGVU5DVElPTiBmdW5jdGlv bl9uYW1lIFsgKGFyZ3VtZW50X3R5cGUgWywgLi4uXSkgXQogICAgWyBBUyBBU1NJR05NRU5UIHwg QVMgSU1QTElDSVQgXQoKVGhlIGZvbGxvd2luZyBjYXN0IGluIGNpdGV4dCwgaHN0b3JlIGNvbnRy aWIgbW9kdWxlIHJlZmFjdG9yZWQgdG8gZXJyb3Igc2FmZToKQ0FTVCAoYnBjaGFyIEFTIGNpdGV4 dCkKQ0FTVCAoYm9vbGVhbiBBUyBjaXRleHQpCkNBU1QgKGluZXQgQVMgY2l0ZXh0KQpDQVNUICh0 ZXh0W10gQVMgaHN0b3JlKQpDQVNUIChoc3RvcmUgQVMganNvbikKQ0FTVCAoaHN0b3JlIEFTIGpz b25iKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1q Y3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KY29tbWl0ZmVz dDogaHR0cHM6Ly9jb21taXRmZXN0LnBvc3RncmVzcWwub3JnL3BhdGNoLzU5NDEKLS0tCiBjb250 cmliL2NpdGV4dC9jaXRleHQtLTEuNC5zcWwgICAgICAgICAgICB8ICAgNiArLQogY29udHJpYi9j aXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dCAgICAgICAgfCAgMjQgKy0KIGNvbnRyaWIvY2l0ZXh0 L2V4cGVjdGVkL2NpdGV4dF8xLm91dCAgICAgIHwgIDI0ICstCiBjb250cmliL2NpdGV4dC9zcWwv Y2l0ZXh0LnNxbCAgICAgICAgICAgICB8ICAgNSArLQogY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQv aHN0b3JlLm91dCAgICAgICAgfCAgMzcgKysrCiBjb250cmliL2hzdG9yZS9oc3RvcmUtLTEuMi0t MS4zLnNxbCAgICAgICB8ICAgMiArLQogY29udHJpYi9oc3RvcmUvaHN0b3JlLS0xLjQuc3FsICAg ICAgICAgICAgfCAgIDYgKy0KIGNvbnRyaWIvaHN0b3JlL2hzdG9yZV9pby5jICAgICAgICAgICAg ICAgIHwgICA4ICstCiBjb250cmliL2hzdG9yZS9zcWwvaHN0b3JlLnNxbCAgICAgICAgICAgICB8 ICAxMSArCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICB8ICAxNSAr CiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jYXN0LnNnbWwgICAgICAgICB8ICAxNCArLQogZG9j L3NyYy9zZ21sL3N5bnRheC5zZ21sICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfY2FzdC5jICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9j b21tYW5kcy9mdW5jdGlvbmNtZHMuYyAgICAgICB8ICAgOSArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdHlwZWNtZHMuYyAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eSAgICAgICAgICAgICAgICAgfCAgMTggKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMgICAgICAgICAgIHwgIDMzICstLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCAg ICAgICAgICAgfCAzMzAgKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19jYXN0LmggICAgICAgICAgICAgfCAgIDUgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vu b2Rlcy5oICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAg ICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2Fz dC5vdXQgfCAgIDggKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQg IHwgIDI0ICstCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgICAgICB8ICAg NSArCiAyNCBmaWxlcyBjaGFuZ2VkLCAzNjEgaW5zZXJ0aW9ucygrKSwgMjMzIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0L2NpdGV4dC0tMS40LnNxbCBiL2NvbnRyaWIv Y2l0ZXh0L2NpdGV4dC0tMS40LnNxbAppbmRleCA3YjA2MTk4OTM1Mi4uNWM4NzgyMDM4OGYgMTAw NjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L2NpdGV4dC0tMS40LnNxbAorKysgYi9jb250cmliL2Np dGV4dC9jaXRleHQtLTEuNC5zcWwKQEAgLTg1LDkgKzg1LDkgQEAgQ1JFQVRFIENBU1QgKGNpdGV4 dCBBUyB2YXJjaGFyKSBXSVRIT1VUIEZVTkNUSU9OIEFTIElNUExJQ0lUOwogQ1JFQVRFIENBU1Qg KGNpdGV4dCBBUyBicGNoYXIpICBXSVRIT1VUIEZVTkNUSU9OIEFTIEFTU0lHTk1FTlQ7CiBDUkVB VEUgQ0FTVCAodGV4dCBBUyBjaXRleHQpICAgIFdJVEhPVVQgRlVOQ1RJT04gQVMgQVNTSUdOTUVO VDsKIENSRUFURSBDQVNUICh2YXJjaGFyIEFTIGNpdGV4dCkgV0lUSE9VVCBGVU5DVElPTiBBUyBB U1NJR05NRU5UOwotQ1JFQVRFIENBU1QgKGJwY2hhciBBUyBjaXRleHQpICBXSVRIIEZVTkNUSU9O IGNpdGV4dChicGNoYXIpICBBUyBBU1NJR05NRU5UOwotQ1JFQVRFIENBU1QgKGJvb2xlYW4gQVMg Y2l0ZXh0KSBXSVRIIEZVTkNUSU9OIGNpdGV4dChib29sZWFuKSBBUyBBU1NJR05NRU5UOwotQ1JF QVRFIENBU1QgKGluZXQgQVMgY2l0ZXh0KSAgICBXSVRIIEZVTkNUSU9OIGNpdGV4dChpbmV0KSAg ICBBUyBBU1NJR05NRU5UOworQ1JFQVRFIENBU1QgKGJwY2hhciBBUyBjaXRleHQpICBXSVRIIFNB RkUgRlVOQ1RJT04gY2l0ZXh0KGJwY2hhcikgIEFTIEFTU0lHTk1FTlQ7CitDUkVBVEUgQ0FTVCAo Ym9vbGVhbiBBUyBjaXRleHQpIFdJVEggU0FGRSBGVU5DVElPTiBjaXRleHQoYm9vbGVhbikgQVMg QVNTSUdOTUVOVDsKK0NSRUFURSBDQVNUIChpbmV0IEFTIGNpdGV4dCkgICAgV0lUSCBTQUZFIEZV TkNUSU9OIGNpdGV4dChpbmV0KSAgICBBUyBBU1NJR05NRU5UOwogCiAtLQogLS0gT3BlcmF0b3Ig RnVuY3Rpb25zLgpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91 dCBiL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQKaW5kZXggZWNmYWYyYWE4NWEu LmJlMzI4NzE1NDkyIDEwMDY0NAotLS0gYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQu b3V0CisrKyBiL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQKQEAgLTEwLDExICsx MCwxMiBAQCBXSEVSRSBvcGMub2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lk KTsKIC0tLS0tLS0tKy0tLS0tLS0tLQogKDAgcm93cykKIAotU0VMRUNUIENBU1QoJ2FiYyc6OmJw Y2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJv cgotRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNoYXJhY3RlciB0byBjaXRleHQgd2hlbiBERUZB VUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJS T1IKLUxJTkUgMTogU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJLi4uCi0gICAgICAgICAgICAgICAgICAgIF4KLUhJTlQ6ICBTYWZlIHR5 cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4KK1NF TEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyBjaXRleHQgCistLS0tLS0tLQorIGFiYworKDEgcm93KQorCiAtLSBUZXN0 IHRoZSBvcGVyYXRvcnMgYW5kIGluZGV4aW5nIGZ1bmN0aW9ucwogLS0gVGVzdCA9IGFuZCA8Pi4K IFNFTEVDVCAnYSc6OmNpdGV4dCA9ICdhJzo6Y2l0ZXh0IEFTIHQ7CkBAIC01MjMsNiArNTI0LDEy IEBAIFNFTEVDVCB0cnVlOjpjaXRleHQgPSAndHJ1ZScgQVMgdDsKICB0CiAoMSByb3cpCiAKK1NF TEVDVCBDQVNUKHRydWUgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyBjaXRleHQgCistLS0tLS0tLQorIHRydWUKKygxIHJvdykKKwogU0VMRUNUICd0cnVlJzo6 Y2l0ZXh0Ojpib29sZWFuID0gdHJ1ZSBBUyB0OwogIHQgCiAtLS0KQEAgLTc4Nyw2ICs3OTQsMTMg QEAgU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjpjaXRleHQ6OmluZXQgPSAnMTkyLjE2OC4xMDAu MTI4Jzo6aW5ldCBBUyB0OwogIHQKICgxIHJvdykKIAorU0VMRUNUIENBU1QoaW5ldCAnMTkyLjE2 OC4xMDAuMTI4JyBBUyBjaXRleHQKKyAgICAgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpID0gJzE5Mi4xNjguMTAwLjEyOC8zMicgQVMgdDsKKyB0IAorLS0tCisgdAorKDEg cm93KQorCiBTRUxFQ1QgJzA4OjAwOjJiOjAxOjAyOjAzJzo6bWFjYWRkcjo6Y2l0ZXh0ID0gJzA4 OjAwOjJiOjAxOjAyOjAzJyBBUyB0OwogIHQgCiAtLS0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0 ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dCBiL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4 dF8xLm91dAppbmRleCAzZTEyY2Q3OTNhZC4uZTlmODQ1NGM2NjIgMTAwNjQ0Ci0tLSBhL2NvbnRy aWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dAorKysgYi9jb250cmliL2NpdGV4dC9leHBl Y3RlZC9jaXRleHRfMS5vdXQKQEAgLTEwLDExICsxMCwxMiBAQCBXSEVSRSBvcGMub2lkID49IDE2 Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lkKTsKIC0tLS0tLS0tKy0tLS0tLS0tLQogKDAg cm93cykKIAotU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgotRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBl IGNoYXJhY3RlciB0byBjaXRleHQgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVk IGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKLUxJTkUgMTogU0VMRUNUIENBU1QoJ2Fi Yyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJLi4uCi0gICAgICAg ICAgICAgICAgICAgIF4KLUhJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5 cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4KK1NFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMg Y2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjaXRleHQgCistLS0t LS0tLQorIGFiYworKDEgcm93KQorCiAtLSBUZXN0IHRoZSBvcGVyYXRvcnMgYW5kIGluZGV4aW5n IGZ1bmN0aW9ucwogLS0gVGVzdCA9IGFuZCA8Pi4KIFNFTEVDVCAnYSc6OmNpdGV4dCA9ICdhJzo6 Y2l0ZXh0IEFTIHQ7CkBAIC01MjMsNiArNTI0LDEyIEBAIFNFTEVDVCB0cnVlOjpjaXRleHQgPSAn dHJ1ZScgQVMgdDsKICB0CiAoMSByb3cpCiAKK1NFTEVDVCBDQVNUKHRydWUgQVMgY2l0ZXh0IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjaXRleHQgCistLS0tLS0tLQorIHRy dWUKKygxIHJvdykKKwogU0VMRUNUICd0cnVlJzo6Y2l0ZXh0Ojpib29sZWFuID0gdHJ1ZSBBUyB0 OwogIHQgCiAtLS0KQEAgLTc4Nyw2ICs3OTQsMTMgQEAgU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgn OjpjaXRleHQ6OmluZXQgPSAnMTkyLjE2OC4xMDAuMTI4Jzo6aW5ldCBBUyB0OwogIHQKICgxIHJv dykKIAorU0VMRUNUIENBU1QoaW5ldCAnMTkyLjE2OC4xMDAuMTI4JyBBUyBjaXRleHQKKyAgICAg ICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpID0gJzE5Mi4xNjguMTAwLjEy OC8zMicgQVMgdDsKKyB0IAorLS0tCisgdAorKDEgcm93KQorCiBTRUxFQ1QgJzA4OjAwOjJiOjAx OjAyOjAzJzo6bWFjYWRkcjo6Y2l0ZXh0ID0gJzA4OjAwOjJiOjAxOjAyOjAzJyBBUyB0OwogIHQg CiAtLS0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsIGIvY29udHJp Yi9jaXRleHQvc3FsL2NpdGV4dC5zcWwKaW5kZXggYzgyMGIwYmQ0ZDkuLjYyZjgzZDc0OWY5IDEw MDY0NAotLS0gYS9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbAorKysgYi9jb250cmliL2Np dGV4dC9zcWwvY2l0ZXh0LnNxbApAQCAtOSw3ICs5LDcgQEAgU0VMRUNUIGFtbmFtZSwgb3BjbmFt ZQogRlJPTSBwZ19vcGNsYXNzIG9wYyBMRUZUIEpPSU4gcGdfYW0gYW0gT04gYW0ub2lkID0gb3Bj bWV0aG9kCiBXSEVSRSBvcGMub2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lk KTsKIAotU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLSBlcnJvcgorU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBB UyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwogCiAtLSBUZXN0IHRo ZSBvcGVyYXRvcnMgYW5kIGluZGV4aW5nIGZ1bmN0aW9ucwogCkBAIC0xNjUsNiArMTY1LDcgQEAg U0VMRUNUIG5hbWUgRlJPTSBzcnQgV0hFUkUgbmFtZSBTSU1JTEFSIFRPICclQS4qJzsKIAogLS0g RXhwbGljaXQgY2FzdHMuCiBTRUxFQ1QgdHJ1ZTo6Y2l0ZXh0ID0gJ3RydWUnIEFTIHQ7CitTRUxF Q1QgQ0FTVCh0cnVlIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CiBTRUxFQ1QgJ3RydWUnOjpjaXRleHQ6OmJvb2xlYW4gPSB0cnVlIEFTIHQ7CiAKIFNFTEVDVCA0 OjpjaXRleHQgPSAnNCcgQVMgdDsKQEAgLTIyNCw2ICsyMjUsOCBAQCBTRUxFQ1QgJzE5Mi4xNjgu MTAwLjEyOC8yNSc6OmNpdGV4dDo6Y2lkciA9ICcxOTIuMTY4LjEwMC4xMjgvMjUnOjpjaWRyIEFT IHQ7CiAKIFNFTEVDVCAnMTkyLjE2OC4xMDAuMTI4Jzo6aW5ldDo6Y2l0ZXh0ID0gJzE5Mi4xNjgu MTAwLjEyOC8zMicgQVMgdDsKIFNFTEVDVCAnMTkyLjE2OC4xMDAuMTI4Jzo6Y2l0ZXh0OjppbmV0 ID0gJzE5Mi4xNjguMTAwLjEyOCc6OmluZXQgQVMgdDsKK1NFTEVDVCBDQVNUKGluZXQgJzE5Mi4x NjguMTAwLjEyOCcgQVMgY2l0ZXh0CisgICAgICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSA9ICcxOTIuMTY4LjEwMC4xMjgvMzInIEFTIHQ7CiAKIFNFTEVDVCAnMDg6MDA6 MmI6MDE6MDI6MDMnOjptYWNhZGRyOjpjaXRleHQgPSAnMDg6MDA6MmI6MDE6MDI6MDMnIEFTIHQ7 CiBTRUxFQ1QgJzA4OjAwOjJiOjAxOjAyOjAzJzo6Y2l0ZXh0OjptYWNhZGRyID0gJzA4OjAwOjJi OjAxOjAyOjAzJzo6bWFjYWRkciBBUyB0OwpkaWZmIC0tZ2l0IGEvY29udHJpYi9oc3RvcmUvZXhw ZWN0ZWQvaHN0b3JlLm91dCBiL2NvbnRyaWIvaHN0b3JlL2V4cGVjdGVkL2hzdG9yZS5vdXQKaW5k ZXggYWNlYTg4MDZiYTQuLjE5MDg0ZjMzNzFkIDEwMDY0NAotLS0gYS9jb250cmliL2hzdG9yZS9l eHBlY3RlZC9oc3RvcmUub3V0CisrKyBiL2NvbnRyaWIvaHN0b3JlL2V4cGVjdGVkL2hzdG9yZS5v dXQKQEAgLTg0MCwxMiArODQwLDI4IEBAIHNlbGVjdCAne30nOjp0ZXh0W106OmhzdG9yZTsKIAog c2VsZWN0IEFSUkFZWydhJywnZycsJ2InLCdoJywnYXNkJ106OmhzdG9yZTsKIEVSUk9SOiAgYXJy YXkgbXVzdCBoYXZlIGV2ZW4gbnVtYmVyIG9mIGVsZW1lbnRzCitzZWxlY3QgQ0FTVChBUlJBWVsn YScsJ2cnLCdiJywnaCcsJ2FzZCddIEFTIGhzdG9yZQorICAgICAgIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0 IEFSUkFZWydhJywnZycsJ2InLCdoJywnYXNkJywnaSddOjpoc3RvcmU7CiAgICAgICAgICAgICAg YXJyYXkgICAgICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAi YSI9PiJnIiwgImIiPT4iaCIsICJhc2QiPT4iaSIKICgxIHJvdykKIAorc2VsZWN0IEFSUkFZWydh JywnZycsJ2InLCdoJyxudWxsLCdpJ106OmhzdG9yZTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBub3Qg YWxsb3dlZCBmb3IgaHN0b3JlIGtleQorc2VsZWN0IENBU1QoQVJSQVlbJ2EnLCdnJywnYicsJ2gn LG51bGwsJ2knXSBBUyBoc3RvcmUKKyAgICAgICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKIHNlbGVjdCBBUlJBWVtbJ2En LCdnJ10sWydiJywnaCddLFsnYXNkJywnaSddXTo6aHN0b3JlOwogICAgICAgICAgICAgIGFycmF5 ICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC04NTQs NiArODcwLDEzIEBAIHNlbGVjdCBBUlJBWVtbJ2EnLCdnJ10sWydiJywnaCddLFsnYXNkJywnaSdd XTo6aHN0b3JlOwogCiBzZWxlY3QgQVJSQVlbWydhJywnZycsJ2InXSxbJ2gnLCdhc2QnLCdpJ11d Ojpoc3RvcmU7CiBFUlJPUjogIGFycmF5IG11c3QgaGF2ZSB0d28gY29sdW1ucworc2VsZWN0IENB U1QoQVJSQVlbWydhJywnZycsJ2InXSxbJ2gnLCdhc2QnLCdpJ11dIEFTIGhzdG9yZQorICAgICAg IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyAK KygxIHJvdykKKwogc2VsZWN0IEFSUkFZW1tbJ2EnLCdnJ10sWydiJywnaCddLFsnYXNkJywnaSdd XV06OmhzdG9yZTsKIEVSUk9SOiAgd3JvbmcgbnVtYmVyIG9mIGFycmF5IHN1YnNjcmlwdHMKIHNl bGVjdCBoc3RvcmUoJ3t9Jzo6dGV4dFtdKTsKQEAgLTE1NTIsNiArMTU3NSwxMyBAQCBzZWxlY3Qg Y2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUs IGUgPT4gMDEyMzQ1LCBmPQogIHsiYiI6ICJ0IiwgImMiOiBudWxsLCAiZCI6ICIxMjM0NSIsICJl IjogIjAxMjM0NSIsICJmIjogIjEuMjM0IiwgImciOiAiMi4zNDVlKzQiLCAiYSBrZXkiOiAiMSJ9 CiAoMSByb3cpCiAKK3NlbGVjdCBjYXN0KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBj ID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0 JyBhcyBqc29uCisgICAgICAgICAgICBkZWZhdWx0IG51bGwgb24gY29udmVyc2lvbiBlcnJvcik7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganNvbiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgeyJiIjogInQiLCAiYyI6IG51bGwsICJkIjog IjEyMzQ1IiwgImUiOiAiMDEyMzQ1IiwgImYiOiAiMS4yMzQiLCAiZyI6ICIyLjM0NWUrNCIsICJh IGtleSI6ICIxIn0KKygxIHJvdykKKwogc2VsZWN0IGhzdG9yZV90b19qc29uX2xvb3NlKCciYSBr ZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAx LjIzNCwgZz0+IDIuMzQ1ZSs0LCBoPT4gIjIwMTYtMDEtMDEiJyk7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhzdG9yZV90b19qc29uX2xvb3NlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCkBAIC0xNTcwLDYgKzE2MDAsMTMgQEAg c2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+ IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0KICB7ImIiOiAidCIsICJjIjogbnVsbCwgImQiOiAiMTIz NDUiLCAiZSI6ICIwMTIzNDUiLCAiZiI6ICIxLjIzNCIsICJnIjogIjIuMzQ1ZSs0IiwgImEga2V5 IjogIjEifQogKDEgcm93KQogCitzZWxlY3QgY2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIg PT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAy LjM0NWUrNCcgYXMganNvbmIKKyAgICAgICAgICAgIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9u IGVycm9yKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBq c29uYiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7ImIiOiAidCIsICJjIjogbnVs bCwgImQiOiAiMTIzNDUiLCAiZSI6ICIwMTIzNDUiLCAiZiI6ICIxLjIzNCIsICJnIjogIjIuMzQ1 ZSs0IiwgImEga2V5IjogIjEifQorKDEgcm93KQorCiBzZWxlY3QgaHN0b3JlX3RvX2pzb25iX2xv b3NlKCciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIz NDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0LCBoPT4gIjIwMTYtMDEtMDEiJyk7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoc3RvcmVfdG9fanNvbmJfbG9vc2Ug ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmRpZmYgLS1naXQgYS9jb250cmli L2hzdG9yZS9oc3RvcmUtLTEuMi0tMS4zLnNxbCBiL2NvbnRyaWIvaHN0b3JlL2hzdG9yZS0tMS4y LS0xLjMuc3FsCmluZGV4IDBhNzA1NjAxNWI3Li5jYmIxYTEzOWU2OSAxMDA2NDQKLS0tIGEvY29u dHJpYi9oc3RvcmUvaHN0b3JlLS0xLjItLTEuMy5zcWwKKysrIGIvY29udHJpYi9oc3RvcmUvaHN0 b3JlLS0xLjItLTEuMy5zcWwKQEAgLTksNyArOSw3IEBAIEFTICdNT0RVTEVfUEFUSE5BTUUnLCAn aHN0b3JlX3RvX2pzb25iJwogTEFOR1VBR0UgQyBJTU1VVEFCTEUgU1RSSUNUOwogCiBDUkVBVEUg Q0FTVCAoaHN0b3JlIEFTIGpzb25iKQotICBXSVRIIEZVTkNUSU9OIGhzdG9yZV90b19qc29uYiho c3RvcmUpOworICBXSVRIIFNBRkUgRlVOQ1RJT04gaHN0b3JlX3RvX2pzb25iKGhzdG9yZSk7CiAK IENSRUFURSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmJfbG9vc2UoaHN0b3JlKQogUkVUVVJOUyBq c29uYgpkaWZmIC0tZ2l0IGEvY29udHJpYi9oc3RvcmUvaHN0b3JlLS0xLjQuc3FsIGIvY29udHJp Yi9oc3RvcmUvaHN0b3JlLS0xLjQuc3FsCmluZGV4IDQyOTRkMTRjZWI1Li40NTFjMmVkODE4NyAx MDA2NDQKLS0tIGEvY29udHJpYi9oc3RvcmUvaHN0b3JlLS0xLjQuc3FsCisrKyBiL2NvbnRyaWIv aHN0b3JlL2hzdG9yZS0tMS40LnNxbApAQCAtMjMyLDcgKzIzMiw3IEBAIEFTICdNT0RVTEVfUEFU SE5BTUUnLCAnaHN0b3JlX2Zyb21fYXJyYXknCiBMQU5HVUFHRSBDIElNTVVUQUJMRSBTVFJJQ1Qg UEFSQUxMRUwgU0FGRTsKIAogQ1JFQVRFIENBU1QgKHRleHRbXSBBUyBoc3RvcmUpCi0gIFdJVEgg RlVOQ1RJT04gaHN0b3JlKHRleHRbXSk7CisgIFdJVEggU0FGRSBGVU5DVElPTiBoc3RvcmUodGV4 dFtdKTsKIAogQ1JFQVRFIEZVTkNUSU9OIGhzdG9yZV90b19qc29uKGhzdG9yZSkKIFJFVFVSTlMg anNvbgpAQCAtMjQwLDcgKzI0MCw3IEBAIEFTICdNT0RVTEVfUEFUSE5BTUUnLCAnaHN0b3JlX3Rv X2pzb24nCiBMQU5HVUFHRSBDIElNTVVUQUJMRSBTVFJJQ1QgUEFSQUxMRUwgU0FGRTsKIAogQ1JF QVRFIENBU1QgKGhzdG9yZSBBUyBqc29uKQotICBXSVRIIEZVTkNUSU9OIGhzdG9yZV90b19qc29u KGhzdG9yZSk7CisgIFdJVEggU0FGRSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbihoc3RvcmUpOwog CiBDUkVBVEUgRlVOQ1RJT04gaHN0b3JlX3RvX2pzb25fbG9vc2UoaHN0b3JlKQogUkVUVVJOUyBq c29uCkBAIC0yNTMsNyArMjUzLDcgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScsICdoc3RvcmVfdG9f anNvbmInCiBMQU5HVUFHRSBDIElNTVVUQUJMRSBTVFJJQ1QgUEFSQUxMRUwgU0FGRTsKIAogQ1JF QVRFIENBU1QgKGhzdG9yZSBBUyBqc29uYikKLSAgV0lUSCBGVU5DVElPTiBoc3RvcmVfdG9fanNv bmIoaHN0b3JlKTsKKyAgV0lUSCBTQUZFIEZVTkNUSU9OIGhzdG9yZV90b19qc29uYihoc3RvcmUp OwogCiBDUkVBVEUgRlVOQ1RJT04gaHN0b3JlX3RvX2pzb25iX2xvb3NlKGhzdG9yZSkKIFJFVFVS TlMganNvbmIKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9pby5jIGIvY29udHJp Yi9oc3RvcmUvaHN0b3JlX2lvLmMKaW5kZXggOWI3MmVmYjg2NzQuLjU5YTQ1YjUyYTllIDEwMDY0 NAotLS0gYS9jb250cmliL2hzdG9yZS9oc3RvcmVfaW8uYworKysgYi9jb250cmliL2hzdG9yZS9o c3RvcmVfaW8uYwpAQCAtNzM5LDIwICs3MzksMjAgQEAgaHN0b3JlX2Zyb21fYXJyYXkoUEdfRlVO Q1RJT05fQVJHUykKIAogCQljYXNlIDE6CiAJCQlpZiAoKEFSUl9ESU1TKGluX2FycmF5KVswXSkg JSAyKQotCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfQVJSQVlfU1VCU0NSSVBUX0VSUk9SKSwK IAkJCQkJCSBlcnJtc2coImFycmF5IG11c3QgaGF2ZSBldmVuIG51bWJlciBvZiBlbGVtZW50cyIp KSk7CiAJCQlicmVhazsKIAogCQljYXNlIDI6CiAJCQlpZiAoKEFSUl9ESU1TKGluX2FycmF5KVsx XSkgIT0gMikKLQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0 LCAoRGF0dW0pIDAsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FSUkFZX1NVQlNDUklQVF9FUlJP UiksCiAJCQkJCQkgZXJybXNnKCJhcnJheSBtdXN0IGhhdmUgdHdvIGNvbHVtbnMiKSkpOwogCQkJ YnJlYWs7CiAKIAkJZGVmYXVsdDoKLQkJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9BUlJBWV9TVUJT Q1JJUFRfRVJST1IpLAogCQkJCQkgZXJybXNnKCJ3cm9uZyBudW1iZXIgb2YgYXJyYXkgc3Vic2Ny aXB0cyIpKSk7CiAJfQpAQCAtNzczLDcgKzc3Myw3IEBAIGhzdG9yZV9mcm9tX2FycmF5KFBHX0ZV TkNUSU9OX0FSR1MpCiAJZm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpCiAJewogCQlpZiAoaW5f bnVsbHNbaSAqIDJdKQotCQkJZXJlcG9ydChFUlJPUiwKKwkJCWVyZXR1cm4oZmNpbmZvLT5jb250 ZXh0LCAoRGF0dW0pIDAsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfTlVMTF9WQUxVRV9OT1RfQUxM T1dFRCksCiAJCQkJCSBlcnJtc2coIm51bGwgdmFsdWUgbm90IGFsbG93ZWQgZm9yIGhzdG9yZSBr ZXkiKSkpOwogCmRpZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9zcWwvaHN0b3JlLnNxbCBiL2Nv bnRyaWIvaHN0b3JlL3NxbC9oc3RvcmUuc3FsCmluZGV4IDhhZTk1ZThhNTEwLi5hODAzZTExZWM4 NCAxMDA2NDQKLS0tIGEvY29udHJpYi9oc3RvcmUvc3FsL2hzdG9yZS5zcWwKKysrIGIvY29udHJp Yi9oc3RvcmUvc3FsL2hzdG9yZS5zcWwKQEAgLTE5MCw5ICsxOTAsMTYgQEAgc2VsZWN0IHBnX2Nv bHVtbl9zaXplKHNsaWNlKGhzdG9yZSAnYWE9PjEsIGI9PjIsIGM9PjMnLCBBUlJBWVsnYycsJ2In LCdhYSddKSkKIC0tIGFycmF5IGlucHV0CiBzZWxlY3QgJ3t9Jzo6dGV4dFtdOjpoc3RvcmU7CiBz ZWxlY3QgQVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnXTo6aHN0b3JlOworc2VsZWN0IENBU1Qo QVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnXSBBUyBoc3RvcmUKKyAgICAgICBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CiBzZWxlY3QgQVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdh c2QnLCdpJ106OmhzdG9yZTsKK3NlbGVjdCBBUlJBWVsnYScsJ2cnLCdiJywnaCcsbnVsbCwnaSdd Ojpoc3RvcmU7CitzZWxlY3QgQ0FTVChBUlJBWVsnYScsJ2cnLCdiJywnaCcsbnVsbCwnaSddIEFT IGhzdG9yZQorICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKIHNlbGVj dCBBUlJBWVtbJ2EnLCdnJ10sWydiJywnaCddLFsnYXNkJywnaSddXTo6aHN0b3JlOwogc2VsZWN0 IEFSUkFZW1snYScsJ2cnLCdiJ10sWydoJywnYXNkJywnaSddXTo6aHN0b3JlOworc2VsZWN0IENB U1QoQVJSQVlbWydhJywnZycsJ2InXSxbJ2gnLCdhc2QnLCdpJ11dIEFTIGhzdG9yZQorICAgICAg IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKIHNlbGVjdCBBUlJBWVtbWydhJywn ZyddLFsnYicsJ2gnXSxbJ2FzZCcsJ2knXV1dOjpoc3RvcmU7CiBzZWxlY3QgaHN0b3JlKCd7fSc6 OnRleHRbXSk7CiBzZWxlY3QgaHN0b3JlKEFSUkFZWydhJywnZycsJ2InLCdoJywnYXNkJ10pOwpA QCAtMzYxLDEwICszNjgsMTQgQEAgc2VsZWN0IGNvdW50KCopIGZyb20gdGVzdGhzdG9yZSB3aGVy ZSBoID0gJ3Bvcz0+OTgsIGxpbmU9PjM3MSwgbm9kZT0+Q0JBLCBpbmRleGUKIC0tIGpzb24gYW5k IGpzb25iCiBzZWxlY3QgaHN0b3JlX3RvX2pzb24oJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4g bnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnKTsK IHNlbGVjdCBjYXN0KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9 PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0JyBhcyBqc29uKTsK K3NlbGVjdCBjYXN0KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9 PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0JyBhcyBqc29uCisg ICAgICAgICAgICBkZWZhdWx0IG51bGwgb24gY29udmVyc2lvbiBlcnJvcik7CiBzZWxlY3QgaHN0 b3JlX3RvX2pzb25fbG9vc2UoJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEy MzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQsIGg9PiAiMjAxNi0wMS0w MSInKTsKIAogc2VsZWN0IGhzdG9yZV90b19qc29uYignImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9 PiBudWxsLCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcp Owogc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwg ZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb25i KTsKK3NlbGVjdCBjYXN0KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGws IGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0JyBhcyBqc29u YgorICAgICAgICAgICAgZGVmYXVsdCBudWxsIG9uIGNvbnZlcnNpb24gZXJyb3IpOwogc2VsZWN0 IGhzdG9yZV90b19qc29uYl9sb29zZSgnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBk PT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCwgaD0+ICIyMDE2 LTAxLTAxIicpOwogCiBjcmVhdGUgdGFibGUgdGVzdF9qc29uX2FnZyAoZjEgdGV4dCwgZjIgaHN0 b3JlKTsKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9jL3NyYy9z Z21sL2NhdGFsb2dzLnNnbWwKaW5kZXggNjk1ODg5Mzc3MTkuLjMyMmIwNTI5NmI0IDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxv Z3Muc2dtbApAQCAtMTg0OSw2ICsxODQ5LDIxIEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxl PiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAg ICAgICAgPGxpdGVyYWw+YjwvbGl0ZXJhbD4gbWVhbnMgdGhhdCB0aGUgdHlwZXMgYXJlIGJpbmFy eS1jb2VyY2libGUsIHRodXMgbm8gY29udmVyc2lvbiBpcyByZXF1aXJlZC4KICAgICAgIDwvcGFy YT48L2VudHJ5PgogICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9 ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAg ICAgICA8c3RydWN0ZmllbGQ+Y2FzdGVycm9yc2FmZTwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8 L3R5cGU+CisgICAgICAgPC9wYXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGlzIGZsYWcg aW5kaWNhdGVzIHdoZXRoZXIgdGhlIDxzdHJ1Y3RmaWVsZD5jYXN0ZnVuYzwvc3RydWN0ZmllbGQ+ IGZ1bmN0aW9uCisgICAgICAgIGlzIGVycm9yLXNhZmUuIEl0IGlzIG1lYW5pbmdmdWwgb25seSB3 aGVuIDxzdHJ1Y3RmaWVsZD5jYXN0ZnVuYzwvc3RydWN0ZmllbGQ+CisgICAgICAgIGlzIG5vdCB6 ZXJvLiBVc2VyLWRlZmluZWQgY2FzdHMgY2FuIHNldCBpdAorICAgICAgICB0byA8bGl0ZXJhbD50 cnVlPC9saXRlcmFsPiB2aWEgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZWNhc3QiPkNSRUFURSBD QVNUPC9saW5rPi4KKyAgICAgICAgRm9yIGVycm9yLXNhZmUgdHlwZSBjYXN0LCBzZWUgPHhyZWYg bGlua2VuZD0ic3FsLXN5bnRheC10eXBlLWNhc3RzLXNhZmUiLz4uCisgICAgICAgPC9wYXJhPgor ICAgICAgPC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICA8L3Rib2R5PgogICAgPC90Z3JvdXA+ CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jYXN0LnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jYXN0LnNnbWwKaW5kZXggYmFkNzViYzFkY2Uu Ljg4OGQ3MTQyZTQyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jYXN0LnNn bWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfY2FzdC5zZ21sCkBAIC0yMiw3ICsyMiw3 IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogIDxyZWZzeW5vcHNpc2Rpdj4KIDxzeW5vcHNp cz4KIENSRUFURSBDQVNUICg8cmVwbGFjZWFibGU+c291cmNlX3R5cGU8L3JlcGxhY2VhYmxlPiBB UyA8cmVwbGFjZWFibGU+dGFyZ2V0X3R5cGU8L3JlcGxhY2VhYmxlPikKLSAgICBXSVRIIEZVTkNU SU9OIDxyZXBsYWNlYWJsZT5mdW5jdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT4gWyAoPHJlcGxhY2Vh YmxlPmFyZ3VtZW50X3R5cGU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dKSBdCisgICAgV0lUSCBbU0FG RV0gRlVOQ1RJT04gPHJlcGxhY2VhYmxlPmZ1bmN0aW9uX25hbWU8L3JlcGxhY2VhYmxlPiBbICg8 cmVwbGFjZWFibGU+YXJndW1lbnRfdHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0pIF0KICAgICBb IEFTIEFTU0lHTk1FTlQgfCBBUyBJTVBMSUNJVCBdCiAKIENSRUFURSBDQVNUICg8cmVwbGFjZWFi bGU+c291cmNlX3R5cGU8L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFjZWFibGU+dGFyZ2V0X3R5cGU8 L3JlcGxhY2VhYmxlPikKQEAgLTE5NCw2ICsxOTQsMTggQEAgU0VMRUNUIENBU1QgKCAyIEFTIG51 bWVyaWMgKSArIDQuMDsKICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3RlbnRyeT4KIAor ICAgIDx2YXJsaXN0ZW50cnk+CisgICAgIDx0ZXJtPjxsaXRlcmFsPlNBRkU8L2xpdGVyYWw+PC90 ZXJtPgorICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZnVuY3Rpb24g dXNlZCB0byBwZXJmb3JtIHRoZSBjYXN0IHN1cHBvcnQgc29mdC1lcnJvciBldmFsdWF0aW9uLAor ICAgICAgIEN1cnJlbnRseSwgb25seSBmdW5jdGlvbnMgd3JpdHRlbiBpbiBDIG9yIHRoZSBpbnRl cm5hbCBsYW5ndWFnZSBhcmUgc3VwcG9ydGVkLgorICAgICAgIEFuIGFsdGVybmF0ZSBleHByZXNz aW9uIGNhbiBiZSBzcGVjaWZpZWQgdG8gYmUgZXZhbHVhdGVkIGlmIHRoZSBjYXN0CisgICAgICAg ZXJyb3Igb2NjdXJzLiAgU2VlIDxsaW5rIGxpbmtlbmQ9InNxbC1zeW50YXgtdHlwZS1jYXN0cy1z YWZlIj5zYWZlIHR5cGUgY2FzdDwvbGluaz4uCisgICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0 ZW0+CisgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICA8dmFybGlzdGVudHJ5PgogICAgICA8dGVy bT48bGl0ZXJhbD48cmVwbGFjZWFibGU+ZnVuY3Rpb25fbmFtZTwvcmVwbGFjZWFibGU+Wyg8cmVw bGFjZWFibGU+YXJndW1lbnRfdHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0pXTwvbGl0ZXJhbD48 L3Rlcm0+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbCBiL2RvYy9zcmMv c2dtbC9zeW50YXguc2dtbAppbmRleCA0YWJkNWU2NzFhZS4uMGQ2NjM1YmJlYmQgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvc3ludGF4LnNn bWwKQEAgLTIxNDIsOSArMjE0Miw4IEBAIENBU1QgKCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwv cmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50eXBlPC9yZXBsYWNlYWJsZT4KICAgICBJZiB0 aGUgdHlwZSBjYXN0IGZhaWxzLCBhbiBlcnJvciBpcyBub3QgcmFpc2VkLiAgSW5zdGVhZCwgZXZh bHVhdGlvbiBmYWxscwogICAgIGJhY2sgdG8gdGhlIGRlZmF1bHQgPHJlcGxhY2VhYmxlPmV4cHJl c3Npb248L3JlcGxhY2VhYmxlPiBzcGVjaWZpZWQgaW4gdGhlCiAgICAgPGxpdGVyYWw+T04gQ09O VkVSU0lPTiBFUlJPUjwvbGl0ZXJhbD4gY2xhdXNlLgotICAgIEF0IHByZXNlbnQsIHRoaXMgb25s eSBzdXBwb3J0IGJ1aWx0LWluIHR5cGUgY2FzdHMsIHNlZSA8eHJlZiBsaW5rZW5kPSJjYXRhbG9n LXBnLWNhc3QiLz4uCiAgICAgVXNlci1kZWZpbmVkIHR5cGUgY2FzdHMgY3JlYXRlZCB3aXRoIDxs aW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVjYXN0Ij5DUkVBVEUgQ0FTVDwvbGluaz4KLSAgICBhcmUg bm90IHN1cHBvcnRlZC4KKyAgICBhcmUgc3VwcG9ydGVkIHRvby4KICAgPC9wYXJhPgogCiAgICAg PHBhcmE+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYyBiL3NyYy9i YWNrZW5kL2NhdGFsb2cvcGdfY2FzdC5jCmluZGV4IDUxMTljMmFjZGEyLi45ZWZmOTQxZWFiYiAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMKKysrIGIvc3JjL2JhY2tl bmQvY2F0YWxvZy9wZ19jYXN0LmMKQEAgLTQ4LDcgKzQ4LDggQEAKIE9iamVjdEFkZHJlc3MKIENh c3RDcmVhdGUoT2lkIHNvdXJjZXR5cGVpZCwgT2lkIHRhcmdldHR5cGVpZCwKIAkJICAgT2lkIGZ1 bmNpZCwgT2lkIGluY2FzdGlkLCBPaWQgb3V0Y2FzdGlkLAotCQkgICBjaGFyIGNhc3Rjb250ZXh0 LCBjaGFyIGNhc3RtZXRob2QsIERlcGVuZGVuY3lUeXBlIGJlaGF2aW9yKQorCQkgICBjaGFyIGNh c3Rjb250ZXh0LCBjaGFyIGNhc3RtZXRob2QsIGJvb2wgY2FzdGVycm9yc2FmZSwKKwkJICAgRGVw ZW5kZW5jeVR5cGUgYmVoYXZpb3IpCiB7CiAJUmVsYXRpb24JcmVsYXRpb247CiAJSGVhcFR1cGxl CXR1cGxlOwpAQCAtODQsNiArODUsNyBAQCBDYXN0Q3JlYXRlKE9pZCBzb3VyY2V0eXBlaWQsIE9p ZCB0YXJnZXR0eXBlaWQsCiAJdmFsdWVzW0FudW1fcGdfY2FzdF9jYXN0ZnVuYyAtIDFdID0gT2Jq ZWN0SWRHZXREYXR1bShmdW5jaWQpOwogCXZhbHVlc1tBbnVtX3BnX2Nhc3RfY2FzdGNvbnRleHQg LSAxXSA9IENoYXJHZXREYXR1bShjYXN0Y29udGV4dCk7CiAJdmFsdWVzW0FudW1fcGdfY2FzdF9j YXN0bWV0aG9kIC0gMV0gPSBDaGFyR2V0RGF0dW0oY2FzdG1ldGhvZCk7CisJdmFsdWVzW0FudW1f cGdfY2FzdF9jYXN0ZXJyb3JzYWZlIC0gMV0gPSBCb29sR2V0RGF0dW0oY2FzdGVycm9yc2FmZSk7 CiAKIAl0dXBsZSA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlvbkdldERlc2NyKHJlbGF0aW9uKSwg dmFsdWVzLCBudWxscyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0 aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZnVuY3Rpb25jbWRzLmMKaW5kZXggMjQy MzcyYjFlNjguLjAwZDlkYzc5N2M1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9m dW5jdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9mdW5jdGlvbmNtZHMuYwpA QCAtMTY2OCw2ICsxNjY4LDEzIEBAIENyZWF0ZUNhc3QoQ3JlYXRlQ2FzdFN0bXQgKnN0bXQpCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9PQkpFQ1RfREVGSU5JVElPTiksCiAJCQkJCSBl cnJtc2coImNhc3QgZnVuY3Rpb24gbXVzdCBub3QgcmV0dXJuIGEgc2V0IikpKTsKIAorCQlpZiAo c3RtdC0+c2FmZSAmJgorCQkJcHJvY3N0cnVjdC0+cHJvbGFuZyAhPSBJTlRFUk5BTGxhbmd1YWdl SWQgJiYKKwkJCXByb2NzdHJ1Y3QtPnByb2xhbmcgIT0gQ2xhbmd1YWdlSWQpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJ CQkJZXJybXNnKCJzYWZlIHR5cGUgY2FzdCBmdW5jdGlvbnMgYXJlIG9ubHkgc3VwcG9ydGVkIGZv ciBDIGFuZCBpbnRlcm5hbCBsYW5ndWFnZXMiKSk7CisKIAkJUmVsZWFzZVN5c0NhY2hlKHR1cGxl KTsKIAl9CiAJZWxzZQpAQCAtMTc5Niw3ICsxODAzLDcgQEAgQ3JlYXRlQ2FzdChDcmVhdGVDYXN0 U3RtdCAqc3RtdCkKIAl9CiAKIAlteXNlbGYgPSBDYXN0Q3JlYXRlKHNvdXJjZXR5cGVpZCwgdGFy Z2V0dHlwZWlkLCBmdW5jaWQsIGluY2FzdGlkLCBvdXRjYXN0aWQsCi0JCQkJCQljYXN0Y29udGV4 dCwgY2FzdG1ldGhvZCwgREVQRU5ERU5DWV9OT1JNQUwpOworCQkJCQkJY2FzdGNvbnRleHQsIGNh c3RtZXRob2QsIHN0bXQtPnNhZmUsIERFUEVOREVOQ1lfTk9STUFMKTsKIAlyZXR1cm4gbXlzZWxm OwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwppbmRleCAzZGFiNmJiNWE3OS4uYjM3MTNiODUx M2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMKKysrIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwpAQCAtMTc2NSw2ICsxNzY1LDcgQEAgRGVmaW5l UmFuZ2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDcmVhdGVSYW5nZVN0bXQgKnN0bXQpCiAJLyogQ3Jl YXRlIGNhc3QgZnJvbSB0aGUgcmFuZ2UgdHlwZSB0byBpdHMgbXVsdGlyYW5nZSB0eXBlICovCiAJ Q2FzdENyZWF0ZSh0eXBvaWQsIG11bHRpcmFuZ2VPaWQsIGNhc3RGdW5jT2lkLCBJbnZhbGlkT2lk LCBJbnZhbGlkT2lkLAogCQkJICAgQ09FUkNJT05fQ09ERV9FWFBMSUNJVCwgQ09FUkNJT05fTUVU SE9EX0ZVTkNUSU9OLAorCQkJICAgZmFsc2UsCiAJCQkgICBERVBFTkRFTkNZX0lOVEVSTkFMKTsK IAogCXBmcmVlKG11bHRpcmFuZ2VBcnJheU5hbWUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNzYxMmI4ODRh ZTMuLjAyNGQ3MThiZWEwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55Cisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTM1Nyw3ICszNTcsNyBAQCBzdGF0aWMg Tm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNl cywgTm9kZSAqcXVlcnkpOwogJXR5cGUgPGRlZmVsdD4JZHJvcF9vcHRpb24KICV0eXBlIDxib29s ZWFuPglvcHRfb3JfcmVwbGFjZSBvcHRfbm8KIAkJCQlvcHRfZ3JhbnRfZ3JhbnRfb3B0aW9uCi0J CQkJb3B0X25vd2FpdCBvcHRfaWZfZXhpc3RzIG9wdF93aXRoX2RhdGEKKwkJCQlvcHRfbm93YWl0 IG9wdF9zYWZlIG9wdF9pZl9leGlzdHMgb3B0X3dpdGhfZGF0YQogCQkJCW9wdF90cmFuc2FjdGlv bl9jaGFpbgogJXR5cGUgPGxpc3Q+CWdyYW50X3JvbGVfb3B0X2xpc3QKICV0eXBlIDxkZWZlbHQ+ CWdyYW50X3JvbGVfb3B0CkBAIC03ODIsNyArNzgyLDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1 cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5 KTsKIAlSRVNFVCBSRVNQRUNUX1AgUkVTVEFSVCBSRVNUUklDVCBSRVRVUk4gUkVUVVJOSU5HIFJF VFVSTlMgUkVWT0tFIFJJR0hUIFJPTEUgUk9MTEJBQ0sgUk9MTFVQCiAJUk9VVElORSBST1VUSU5F UyBST1cgUk9XUyBSVUxFCiAKLQlTQVZFUE9JTlQgU0NBTEFSIFNDSEVNQSBTQ0hFTUFTIFNDUk9M TCBTRUFSQ0ggU0VDT05EX1AgU0VDVVJJVFkgU0VMRUNUCisJU0FGRSBTQVZFUE9JTlQgU0NBTEFS IFNDSEVNQSBTQ0hFTUFTIFNDUk9MTCBTRUFSQ0ggU0VDT05EX1AgU0VDVVJJVFkgU0VMRUNUCiAJ U0VRVUVOQ0UgU0VRVUVOQ0VTCiAJU0VSSUFMSVpBQkxFIFNFUlZFUiBTRVNTSU9OIFNFU1NJT05f VVNFUiBTRVQgU0VUUyBTRVRPRiBTSEFSRSBTSE9XCiAJU0lNSUxBUiBTSU1QTEUgU0tJUCBTTUFM TElOVCBTTkFQU0hPVCBTT01FIFNQTElUIFNPVVJDRSBTUUxfUCBTVEFCTEUgU1RBTkRBTE9ORV9Q CkBAIC05MzYwLDE0ICs5MzYwLDE1IEBAIGRvc3RtdF9vcHRfaXRlbToKICAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KIAogQ3JlYXRlQ2FzdFN0bXQ6IENSRUFURSBDQVNUICcoJyBUeXBlbmFtZSBBUyBU eXBlbmFtZSAnKScKLQkJCQkJV0lUSCBGVU5DVElPTiBmdW5jdGlvbl93aXRoX2FyZ3R5cGVzIGNh c3RfY29udGV4dAorCQkJCQlXSVRIIG9wdF9zYWZlIEZVTkNUSU9OIGZ1bmN0aW9uX3dpdGhfYXJn dHlwZXMgY2FzdF9jb250ZXh0CiAJCQkJewogCQkJCQlDcmVhdGVDYXN0U3RtdCAqbiA9IG1ha2VO b2RlKENyZWF0ZUNhc3RTdG10KTsKIAogCQkJCQluLT5zb3VyY2V0eXBlID0gJDQ7CiAJCQkJCW4t PnRhcmdldHR5cGUgPSAkNjsKLQkJCQkJbi0+ZnVuYyA9ICQxMDsKLQkJCQkJbi0+Y29udGV4dCA9 IChDb2VyY2lvbkNvbnRleHQpICQxMTsKKwkJCQkJbi0+c2FmZSA9ICQ5OworCQkJCQluLT5mdW5j ID0gJDExOworCQkJCQluLT5jb250ZXh0ID0gKENvZXJjaW9uQ29udGV4dCkgJDEyOwogCQkJCQlu LT5pbm91dCA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpAQCAtOTM3OCw2 ICs5Mzc5LDcgQEAgQ3JlYXRlQ2FzdFN0bXQ6IENSRUFURSBDQVNUICcoJyBUeXBlbmFtZSBBUyBU eXBlbmFtZSAnKScKIAogCQkJCQluLT5zb3VyY2V0eXBlID0gJDQ7CiAJCQkJCW4tPnRhcmdldHR5 cGUgPSAkNjsKKwkJCQkJbi0+c2FmZSA9IGZhbHNlOwogCQkJCQluLT5mdW5jID0gTlVMTDsKIAkJ CQkJbi0+Y29udGV4dCA9IChDb2VyY2lvbkNvbnRleHQpICQxMDsKIAkJCQkJbi0+aW5vdXQgPSBm YWxzZTsKQEAgLTkzOTAsNiArOTM5Miw3IEBAIENyZWF0ZUNhc3RTdG10OiBDUkVBVEUgQ0FTVCAn KCcgVHlwZW5hbWUgQVMgVHlwZW5hbWUgJyknCiAKIAkJCQkJbi0+c291cmNldHlwZSA9ICQ0Owog CQkJCQluLT50YXJnZXR0eXBlID0gJDY7CisJCQkJCW4tPnNhZmUgPSBmYWxzZTsKIAkJCQkJbi0+ ZnVuYyA9IE5VTEw7CiAJCQkJCW4tPmNvbnRleHQgPSAoQ29lcmNpb25Db250ZXh0KSAkMTA7CiAJ CQkJCW4tPmlub3V0ID0gdHJ1ZTsKQEAgLTk0MDIsNiArOTQwNSw5IEBAIGNhc3RfY29udGV4dDog IEFTIElNUExJQ0lUX1AJCQkJCXsgJCQgPSBDT0VSQ0lPTl9JTVBMSUNJVDsgfQogCQl8IC8qRU1Q VFkqLwkJCQkJCQkJeyAkJCA9IENPRVJDSU9OX0VYUExJQ0lUOyB9CiAJCTsKIAorb3B0X3NhZmU6 IFNBRkUJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQl8IC8qRU1QVFkqLwkJCQkJeyAkJCA9IGZhbHNl OyB9CisJCTsKIAogRHJvcENhc3RTdG10OiBEUk9QIENBU1Qgb3B0X2lmX2V4aXN0cyAnKCcgVHlw ZW5hbWUgQVMgVHlwZW5hbWUgJyknIG9wdF9kcm9wX2JlaGF2aW9yCiAJCQkJewpAQCAtMTgyNzQs NiArMTgyODAsNyBAQCB1bnJlc2VydmVkX2tleXdvcmQ6CiAJCQl8IFJPVVRJTkVTCiAJCQl8IFJP V1MKIAkJCXwgUlVMRQorCQkJfCBTQUZFCiAJCQl8IFNBVkVQT0lOVAogCQkJfCBTQ0FMQVIKIAkJ CXwgU0NIRU1BCkBAIC0xODkxMyw2ICsxODkyMCw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJ CXwgUk9XCiAJCQl8IFJPV1MKIAkJCXwgUlVMRQorCQkJfCBTQUZFCiAJCQl8IFNBVkVQT0lOVAog CQkJfCBTQ0FMQVIKIAkJCXwgU0NIRU1BCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAzZTJm MmUyZDdmZi4uMTIyYzY1NWZmZjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtODMsOCAr ODMsNyBAQCBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRl LCBUeXBlQ2FzdCAqdGMpOwogc3RhdGljIHZvaWQgQ29lcmNpb25FcnJvclNhZmVDaGVjayhQYXJz ZVN0YXRlICpwc3RhdGUsIE5vZGUgKmNhc3RleHByLAogCQkJCQkJCQkgICBOb2RlICpzb3VyY2Us IE9pZCBpbnB1dFR5cGUsIE9pZCB0YXJnZXRUeXBlKTsKIHN0YXRpYyB2b2lkIENvZXJjaW9uRXJy b3JTYWZlX0ludGVybmFsKE9pZCBpbnB1dFR5cGUsIE9pZCB0YXJnZXRUeXBlLAotCQkJCQkJCQkJ ICAgYm9vbCAqZXJyb3JzYWZlX2NvZXJjaW9uLAotCQkJCQkJCQkJICAgYm9vbCAqdXNlcmRlZmlu ZWQpOworCQkJCQkJCQkJICAgYm9vbCAqZXJyb3JzYWZlX2NvZXJjaW9uKTsKIHN0YXRpYyBOb2Rl ICp0cmFuc2Zvcm1Db2xsYXRlQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ29sbGF0ZUNsYXVz ZSAqYyk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbk9iamVjdENvbnN0cnVjdG9yKFBhcnNl U3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJSnNvbk9iamVjdENvbnN0cnVjdG9yICpjdG9yKTsK QEAgLTI5OTEsNyArMjk5MCw2IEBAIENvZXJjaW9uRXJyb3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpjYXN0ZXhwciwgTm9kZSAqc291cmNlLAogCQkJCQkgICBPaWQgaW5wdXRU eXBlLCBPaWQgdGFyZ2V0VHlwZSkKIHsKIAlib29sCQllcnJvcnNhZmVfY29lcmNpb24gPSB0cnVl OwotCWJvb2wJCXVzZXJkZWZpbmVkID0gZmFsc2U7CiAKIAkvKgogCSAqIEJpbmFyeSBjb2VyY2lv biBjYXN0IGlzIGVycm9yLXNhZmUsIENvZXJjZVZpYUlPIGNhbiBhbHNvIGJlIGV2YWx1YXRlZApA QCAtMzAwMyw4ICszMDAxLDcgQEAgQ29lcmNpb25FcnJvclNhZmVDaGVjayhQYXJzZVN0YXRlICpw c3RhdGUsIE5vZGUgKmNhc3RleHByLCBOb2RlICpzb3VyY2UsCiAJCXJldHVybjsKIAogCUNvZXJj aW9uRXJyb3JTYWZlX0ludGVybmFsKGlucHV0VHlwZSwgdGFyZ2V0VHlwZSwKLQkJCQkJCQkgICAm ZXJyb3JzYWZlX2NvZXJjaW9uLAotCQkJCQkJCSAgICZ1c2VyZGVmaW5lZCk7CisJCQkJCQkJICAg JmVycm9yc2FmZV9jb2VyY2lvbik7CiAKIAlpZiAoIWVycm9yc2FmZV9jb2VyY2lvbikKIAkJZXJl cG9ydChFUlJPUiwKQEAgLTMwMTQsMTUgKzMwMTEsMTMgQEAgQ29lcmNpb25FcnJvclNhZmVDaGVj ayhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmNhc3RleHByLCBOb2RlICpzb3VyY2UsCiAJCQkJ CSAgIGZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGUpLAogCQkJCQkgICAiREVGQVVMVCIsCiAJCQkJ CSAgICJDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SIiksCi0JCQkJdXNlcmRlZmluZWQKLQkJ CQk/IGVycmhpbnQoIlNhZmUgdHlwZSBjYXN0IGZvciB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIG5v dCB5ZXQgc3VwcG9ydGVkLiIpCi0JCQkJOiBlcnJoaW50KCJFeHBsaWNpdCBjYXN0IGlzIGRlZmlu ZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUuIiksCisJCQkJZXJyaGludCgiRXhw bGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZlLiIp LAogCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzb3VyY2UpKSk7 CiB9CiAKIHN0YXRpYyB2b2lkCiBDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChPaWQgaW5wdXRU eXBlLCBPaWQgdGFyZ2V0VHlwZSwKLQkJCQkJCSAgIGJvb2wgKmVycm9yc2FmZV9jb2VyY2lvbiwg Ym9vbCAqdXNlcmRlZmluZWQpCisJCQkJCQkgICBib29sICplcnJvcnNhZmVfY29lcmNpb24pCiB7 CiAJSGVhcFR1cGxlCXR1cGxlOwogCkBAIC0zMDMzLDcgKzMwMjgsNiBAQCBDb2VyY2lvbkVycm9y U2FmZV9JbnRlcm5hbChPaWQgaW5wdXRUeXBlLCBPaWQgdGFyZ2V0VHlwZSwKIAljaGVja19zdGFj a19kZXB0aCgpOwogCiAJQXNzZXJ0KGVycm9yc2FmZV9jb2VyY2lvbiAhPSBOVUxMKTsKLQlBc3Nl cnQodXNlcmRlZmluZWQgIT0gTlVMTCk7CiAKIAlpZiAoISgqZXJyb3JzYWZlX2NvZXJjaW9uKSkK IAkJcmV0dXJuOwpAQCAtMzA0MywyNCArMzAzNywyMSBAQCBDb2VyY2lvbkVycm9yU2FmZV9JbnRl cm5hbChPaWQgaW5wdXRUeXBlLCBPaWQgdGFyZ2V0VHlwZSwKIAl7CiAJCUNvZXJjaW9uRXJyb3JT YWZlX0ludGVybmFsKGdldEJhc2VUeXBlKGlucHV0VHlwZSksCiAJCQkJCQkJCSAgIGdldEJhc2VU eXBlKHRhcmdldFR5cGUpLAotCQkJCQkJCQkgICBlcnJvcnNhZmVfY29lcmNpb24sCi0JCQkJCQkJ CSAgIHVzZXJkZWZpbmVkKTsKKwkJCQkJCQkJICAgZXJyb3JzYWZlX2NvZXJjaW9uKTsKIAkJcmV0 dXJuOwogCX0KIAllbHNlIGlmIChpbnB1dF90eXB0eXBlID09IFRZUFRZUEVfRE9NQUlOKQogCXsK IAkJQ29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwoZ2V0QmFzZVR5cGUoaW5wdXRUeXBlKSwKIAkJ CQkJCQkJICAgdGFyZ2V0VHlwZSwKLQkJCQkJCQkJICAgZXJyb3JzYWZlX2NvZXJjaW9uLAotCQkJ CQkJCQkgICB1c2VyZGVmaW5lZCk7CisJCQkJCQkJCSAgIGVycm9yc2FmZV9jb2VyY2lvbik7CiAJ CXJldHVybjsKIAl9CiAJZWxzZSBpZiAodGFyZ2V0X3R5cHR5cGUgPT0gVFlQVFlQRV9ET01BSU4p CiAJewogCQlDb2VyY2lvbkVycm9yU2FmZV9JbnRlcm5hbChpbnB1dFR5cGUsCiAJCQkJCQkJCSAg IGdldEJhc2VUeXBlKHRhcmdldFR5cGUpLAotCQkJCQkJCQkgICBlcnJvcnNhZmVfY29lcmNpb24s Ci0JCQkJCQkJCSAgIHVzZXJkZWZpbmVkKTsKKwkJCQkJCQkJICAgZXJyb3JzYWZlX2NvZXJjaW9u KTsKIAkJcmV0dXJuOwogCX0KIAllbHNlIGlmICgoaW5wdXRfdHlwdHlwZSAhPSBUWVBUWVBFX0JB U0UgJiYgaW5wdXRUeXBlID4gRmlyc3RVbnBpbm5lZE9iamVjdElkKQpAQCAtMzA4OSw4ICszMDgw LDcgQEAgQ29lcmNpb25FcnJvclNhZmVfSW50ZXJuYWwoT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdl dFR5cGUsCiAJCQkvKiByZWN1cnNlIGludG8gYXJyYXkgZWxlbWVudCB0eXBlICovCiAJCQlDb2Vy Y2lvbkVycm9yU2FmZV9JbnRlcm5hbChpbnB1dF90eXBlbGVtLAogCQkJCQkJCQkJICAgdGFyZ2V0 X3R5cGVsZW0sCi0JCQkJCQkJCQkgICBlcnJvcnNhZmVfY29lcmNpb24sCi0JCQkJCQkJCQkgICB1 c2VyZGVmaW5lZCk7CisJCQkJCQkJCQkgICBlcnJvcnNhZmVfY29lcmNpb24pOwogCQkJcmV0dXJu OwogCQl9CiAJfQpAQCAtMzEyMiwxNiArMzExMiwxMyBAQCBDb2VyY2lvbkVycm9yU2FmZV9JbnRl cm5hbChPaWQgaW5wdXRUeXBlLCBPaWQgdGFyZ2V0VHlwZSwKIAkJewogCQkJRm9ybV9wZ19jYXN0 IGNhc3RGb3JtID0gKEZvcm1fcGdfY2FzdCkgR0VUU1RSVUNUKHR1cGxlKTsKIAotCQkJaWYgKGNh c3RGb3JtLT5vaWQgPiBGaXJzdFVucGlubmVkT2JqZWN0SWQgJiYKLQkJCQljYXN0Rm9ybS0+Y2Fz dG1ldGhvZCAhPSBDT0VSQ0lPTl9NRVRIT0RfQklOQVJZKQorCQkJaWYgKGNhc3RGb3JtLT5jYXN0 bWV0aG9kICE9IENPRVJDSU9OX01FVEhPRF9CSU5BUlkgJiYKKwkJCQkhY2FzdEZvcm0tPmNhc3Rl cnJvcnNhZmUpCiAJCQl7CiAJCQkJKmVycm9yc2FmZV9jb2VyY2lvbiA9IGZhbHNlOwotCQkJCSp1 c2VyZGVmaW5lZCA9IHRydWU7CiAJCQl9CiAJCQlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOwogCQl9 Ci0JCWVsc2UgaWYgKGlucHV0VHlwZSA+IEZpcnN0VW5waW5uZWRPYmplY3RJZCAmJiB0YXJnZXRU eXBlID4gRmlyc3RVbnBpbm5lZE9iamVjdElkKQotCQkJKmVycm9yc2FmZV9jb2VyY2lvbiA9IGZh bHNlOwogCX0KIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRh dCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKaW5kZXggOWIxY2ZiMWI1OTAuLmQz YjVmMjdiMTVjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0Cisr KyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKQEAgLTE5LDY1ICsxOSw2NSBAQAog IyBpbnQyLT5pbnQ0LT5pbnQ4LT5udW1lcmljLT5mbG9hdDQtPmZsb2F0OCwgd2hpbGUgY2FzdHMg aW4gdGhlCiAjIHJldmVyc2UgZGlyZWN0aW9uIGFyZSBhc3NpZ25tZW50LW9ubHkuCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIo aW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3Rm dW5jID0+ICdpbnQ0KGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4g J2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4 JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChpbnQ4KScsCi0g IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4g J251bWVyaWMoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnaW50 OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0 YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGludDIp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5j ID0+ICdmbG9hdDgoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAn bnVtZXJpYycsIGNhc3RmdW5jID0+ICdudW1lcmljKGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50 NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChpbnQ0KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIo aW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2Fz dGZ1bmMgPT4gJ2Zsb2F0NChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0 ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGludDQpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn aW50NCcsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhpbnQ0 KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVu YyA9PiAnaW50OChmbG9hdDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9 PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGZsb2F0NCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9h dDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoZmxvYXQ0KScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ ICdmbG9hdDgoZmxvYXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4g J251bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDQpJywgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9h dDQpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ2lu dDgnLCBjYXN0ZnVuYyA9PiAnaW50OChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4Jywg Y2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGZsb2F0OCknLAotICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQo ZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcs IGNhc3RmdW5jID0+ICdmbG9hdDQoZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNh c3R0YXJnZXQgPT4gJ251bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhmbG9hdDgpJywg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAn bnVtZXJpYyhmbG9hdDgpJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgobnVtZXJpYyknLAotICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKG51 bWVyaWMpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBj YXN0ZnVuYyA9PiAnaW50NChudW1lcmljKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0 dGFyZ2V0ID0+ICdmbG9hdDQnLAotICBjYXN0ZnVuYyA9PiAnZmxvYXQ0KG51bWVyaWMpJywgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZmxv YXQ0KG51bWVyaWMpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFy Z2V0ID0+ICdmbG9hdDgnLAotICBjYXN0ZnVuYyA9PiAnZmxvYXQ4KG51bWVyaWMpJywgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZmxvYXQ4 KG51bWVyaWMpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ21vbmV5JywgY2FzdHRhcmdldCA9 PiAnbnVtZXJpYycsIGNhc3RmdW5jID0+ICdudW1lcmljKG1vbmV5KScsCiAgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycs IGNhc3R0YXJnZXQgPT4gJ21vbmV5JywgY2FzdGZ1bmMgPT4gJ21vbmV5KG51bWVyaWMpJywKQEAg LTg5LDEzICs4OSwxMyBAQAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGlu dDQgYW5kIGJvb2wKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2Jvb2wn LCBjYXN0ZnVuYyA9PiAnYm9vbChpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoYm9vbCknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEFsbG93IGV4cGxpY2l0 IGNvZXJjaW9ucyBiZXR3ZWVuIHhpZDggYW5kIHhpZAogeyBjYXN0c291cmNlID0+ICd4aWQ4Jywg Y2FzdHRhcmdldCA9PiAneGlkJywgY2FzdGZ1bmMgPT4gJ3hpZCh4aWQ4KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgT0lEIGNhdGVn b3J5OiBhbGxvdyBpbXBsaWNpdCBjb252ZXJzaW9uIGZyb20gYW55IGludGVncmFsIHR5cGUgKGlu Y2x1ZGluZwogIyBpbnQ4LCB0byBzdXBwb3J0IE9JRCBsaXRlcmFscyA+IDJHKSB0byBPSUQsIGFz IHdlbGwgYXMgYXNzaWdubWVudCBjb2VyY2lvbgpAQCAtMTA2LDEzICsxMDYsMTMgQEAKICMgY2Fz dHMgZnJvbSB0ZXh0IGFuZCB2YXJjaGFyIHRvIHJlZ2NsYXNzLCB3aGljaCBleGlzdCBtYWlubHkg dG8gc3VwcG9ydAogIyBsZWdhY3kgZm9ybXMgb2YgbmV4dHZhbCgpIGFuZCByZWxhdGVkIGZ1bmN0 aW9ucy4KIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3Rm dW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnb2lkJywg Y2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdl dCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ2lu dDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRh cmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ ICdyZWdwcm9jJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTIwLDEzICsxMjAsMTMgQEAKIHsgY2Fz dHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcw JywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICdvaWQn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5j ID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3Jl Z3Byb2MnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0YXJnZXQgPT4gJ2lu dDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNh c3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvYycsIGNhc3R0 YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTEzOCwxMyArMTM4 LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3R0YXJnZXQgPT4gJ29p ZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVncHJvY2Vk dXJlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0 ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAnMCcs CiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJj ZSA9PiAncmVncHJvY2VkdXJlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdp bnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFyZ2V0ID0+ICdp bnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXIn LCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xNTIsMTMgKzE1MiwxMyBAQAogeyBjYXN0c291cmNlID0+ ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJ2ludDQo aW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcicsIGNh c3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9 LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3Rm dW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9 PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyJywgY2FzdHRhcmdldCA9PiAn cmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xNzAsMTMgKzE3MCwxMyBAQAogeyBj YXN0c291cmNlID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVu YyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXJh dG9yJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2Fz dHRhcmdldCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcmF0 b3InLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICcw JywKQEAgLTE4NCwxMyArMTg0LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywgY2Fz dHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0 ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywg Y2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICcw JywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291 cmNlID0+ICdyZWdjbGFzcycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50 OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY2xhc3MnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0Jywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbics IGNhc3RmdW5jID0+ICcwJywKQEAgLTE5OCwxMyArMTk4LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4g J3JlZ2NvbGxhdGlvbicsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnY29sbGF0aW9uJywgY2FzdGZ1bmMgPT4gJ29pZCcs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0 ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ ICdyZWdjb2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29sbGF0aW9uJywgY2Fz dHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdyZWdjb2xsYXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0y MTIsMTMgKzIxMiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWd0eXBlJywgY2FzdHRhcmdldCA9 PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0 eXBlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0 ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ0JywgY2FzdHRhcmdldCA9PiAncmVndHlwZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWd0 eXBlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWd0eXBlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcw JywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291 cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAnMCcs CkBAIC0yMjYsMTMgKzIyNiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdjb25maWcnLCBjYXN0 dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ2NvbmZpZycsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywg Y2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ2NvbmZpZycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAn aW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29uZmlnJywgY2FzdHRhcmdldCA9PiAnaW50 NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkaWN0aW9u YXJ5JywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjQwLDMxICsyNDAsMzEgQEAKIHsgY2FzdHNvdXJj ZSA9PiAncmVnZGljdGlvbmFyeScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcw JywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3RmdW5jID0+ ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFy eScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0 YXJnZXQgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGljdGlv bmFyeScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAncmVnZGljdGlvbmFyeScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMg PT4gJ3JlZ2NsYXNzJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3Jl Z2NsYXNzJywgY2FzdGZ1bmMgPT4gJ3JlZ2NsYXNzJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2Fz dHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdyb2xlJywgY2Fz dHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0 ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVncm9sZScsIGNhc3RmdW5jID0+ICcwJywK ICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNl ID0+ICdyZWdyb2xlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9p ZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdyZWdyb2xlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0 ZnVuYyA9PiAnMCcsCkBAIC0yNzIsMTMgKzI3MiwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdu YW1lc3BhY2UnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50 OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMg PT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVn bmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3R0YXJn ZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVn bmFtZXNwYWNlJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdv aWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTI4 NiwxMyArMjg2LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdHRhcmdl dCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdy ZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2Fz dHRhcmdldCA9PiAncmVnZGF0YWJhc2UnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9 PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGF0YWJhc2UnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiAKQEAgLTMxNiw1NyArMzE2LDU3IEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3Rl eHQnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hh cicsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChicGNoYXIpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ ICd0ZXh0KGJwY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAn dGV4dCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnYnBj aGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0Jywg Y2FzdGZ1bmMgPT4gJ3RleHQoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaGFyJywgY2FzdHRhcmdl dCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJ2JwY2hhcihjaGFyKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2NoYXInLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoY2hhcikn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICduYW1lJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ ICd0ZXh0KG5hbWUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbmFtZScsIGNhc3R0YXJnZXQgPT4gJ2JwY2hh cicsIGNhc3RmdW5jID0+ICdicGNoYXIobmFtZSknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICduYW1lJywgY2Fz dHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd2YXJjaGFyKG5hbWUpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hhcih0 ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0 ZnVuYyA9PiAnY2hhcih0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0 ID0+ICdjaGFyJywgY2FzdGZ1bmMgPT4gJ2NoYXIodGV4dCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0 JywgY2FzdHRhcmdldCA9PiAnbmFtZScsIGNhc3RmdW5jID0+ICduYW1lKHRleHQpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAnbmFtZScsIGNhc3RmdW5jID0+ICduYW1l KGJwY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAnbmFtZScs IGNhc3RmdW5jID0+ICduYW1lKHZhcmNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBBbGxvdyBleHBsaWNpdCBjb2VyY2lvbnMg YmV0d2VlbiBieXRlYSBhbmQgaW50ZWdlciB0eXBlcwogeyBjYXN0c291cmNlID0+ICdpbnQyJywg Y2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAnYnl0ZWEoaW50MiknLAotICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0ZnVuYyA9PiAnYnl0ZWEo aW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnYnl0ZWEnLCBjYXN0 ZnVuYyA9PiAnYnl0ZWEoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdieXRlYScsIGNhc3R0YXJnZXQg PT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihieXRlYSknLAotICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdieXRl YScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChieXRlYSknLAotICBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdieXRlYScsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50 OChieXRlYSknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGludDQgYW5kICJj aGFyIgogeyBjYXN0c291cmNlID0+ICdjaGFyJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3Rm dW5jID0+ICdpbnQ0KGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4g J2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hhcihpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgcGdfbm9kZV90cmVlIGNhbiBiZSBj b2VyY2VkIHRvLCBidXQgbm90IGZyb20sIHRleHQKIHsgY2FzdHNvdXJjZSA9PiAncGdfbm9kZV90 cmVlJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICcwJywKQEAgLTM5Miw3MyAr MzkyLDczIEBACiAKICMgRGF0ZXRpbWUgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnZGF0ZScs IGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAoZGF0 ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5j ID0+ICd0aW1lc3RhbXAoZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZGF0ZScsIGNh c3R0YXJnZXQgPT4gJ3RpbWVzdGFtcHR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KGRh dGUpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVu YyA9PiAndGltZXN0YW1wdHooZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZScs IGNhc3R0YXJnZXQgPT4gJ2ludGVydmFsJywgY2FzdGZ1bmMgPT4gJ2ludGVydmFsKHRpbWUpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAndGltZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsIGNhc3RmdW5jID0+ ICd0aW1ldHoodGltZSknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ ICdkYXRlJywKLSAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1w KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICd0 aW1lJywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wKScs IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICd0aW1l c3RhbXB0eicsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3RhbXApJywgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXN0 YW1wdHoodGltZXN0YW1wKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eics IGNhc3R0YXJnZXQgPT4gJ2RhdGUnLAotICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXB0eikn LCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ ICdkYXRlKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0 eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLAotICBjYXN0ZnVuYyA9PiAndGltZSh0aW1lc3RhbXB0 eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5j ID0+ICd0aW1lKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3Rh bXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcCcsCi0gIGNhc3RmdW5jID0+ICd0aW1lc3Rh bXAodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eicsCi0gIGNhc3Rm dW5jID0+ICd0aW1ldHoodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWVzdGFtcHR6KScsIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdpbnRlcnZhbCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0 ZnVuYyA9PiAndGltZShpbnRlcnZhbCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1ldHonLCBjYXN0dGFy Z2V0ID0+ICd0aW1lJywgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXR6KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgR2VvbWV0cmljIGNh dGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ3BvaW50JywgY2FzdHRhcmdldCA9PiAnYm94JywgY2Fz dGZ1bmMgPT4gJ2JveChwb2ludCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2xzZWcnLCBjYXN0dGFyZ2V0ID0+ ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2ludChsc2VnKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncGF0aCcs IGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24nLCBjYXN0ZnVuYyA9PiAncG9seWdvbihwYXRoKScsCi0g IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAncG9pbnQnLCBjYXN0ZnVuYyA9PiAncG9p bnQoYm94KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAnbHNlZycsIGNhc3Rm dW5jID0+ICdsc2VnKGJveCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNhc3R0YXJnZXQgPT4gJ3Bv bHlnb24nLCBjYXN0ZnVuYyA9PiAncG9seWdvbihib3gpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gnLCBj YXN0dGFyZ2V0ID0+ICdjaXJjbGUnLCBjYXN0ZnVuYyA9PiAnY2lyY2xlKGJveCknLAotICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3BvbHlnb24nLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2lu dChwb2x5Z29uKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4gJ3BhdGgn LCBjYXN0ZnVuYyA9PiAncGF0aCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQg PT4gJ2JveCcsIGNhc3RmdW5jID0+ICdib3gocG9seWdvbiknLAotICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3BvbHln b24nLCBjYXN0dGFyZ2V0ID0+ICdjaXJjbGUnLAotICBjYXN0ZnVuYyA9PiAnY2lyY2xlKHBvbHln b24pJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVu YyA9PiAnY2lyY2xlKHBvbHlnb24pJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2lyY2xlJywg Y2FzdHRhcmdldCA9PiAncG9pbnQnLCBjYXN0ZnVuYyA9PiAncG9pbnQoY2lyY2xlKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnY2lyY2xlJywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMgPT4gJ2JveChj aXJjbGUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0ID0+ICdwb2x5Z29uJywK LSAgY2FzdGZ1bmMgPT4gJ3BvbHlnb24oY2lyY2xlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3BvbHlnb24oY2lyY2xlKScsIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZid9LAogCiAjIE1BQyBhZGRyZXNzIGNhdGVn b3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ21hY2FkZHInLCBjYXN0dGFyZ2V0ID0+ICdtYWNhZGRyOCcs IGNhc3RmdW5jID0+ICdtYWNhZGRyOCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ21hY2FkZHI4JywgY2FzdHRh cmdldCA9PiAnbWFjYWRkcicsIGNhc3RmdW5jID0+ICdtYWNhZGRyJywKLSAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBJTkVUIGNhdGVnb3J5 CiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICdpbmV0JywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdjaWRyJywgY2FzdGZ1bmMgPT4gJ2Np ZHInLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogCiAjIEJpdFN0cmluZyBjYXRlZ29yeQogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFy Z2V0ID0+ICd2YXJiaXQnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC00NjgsMTMgKzQ2OCwxMyBAQAog CiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIGJldHdlZW4gYml0IGFuZCBpbnQ0LCBpbnQ4CiB7IGNh c3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBjYXN0ZnVuYyA9PiAnYml0 KGludDgsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnYml0Jywg Y2FzdGZ1bmMgPT4gJ2JpdChpbnQ0LGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYml0JywgY2FzdHRh cmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGJpdCknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdi aXQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoYml0KScsCi0gIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQ3Jv c3MtY2F0ZWdvcnkgY2FzdHMgdG8gYW5kIGZyb20gVEVYVAogIyBXZSBuZWVkIGVudHJpZXMgaGVy ZSBvbmx5IGZvciBhIGZldyBzcGVjaWFsaXplZCBjYXNlcyB3aGVyZSB0aGUgYmVoYXZpb3IKQEAg LTQ4NSw2OCArNDg1LDY4IEBACiAjIGJlaGF2aW9yIHdpbGwgZW5zdWUgd2hlbiB0aGUgYXV0b21h dGljIGNhc3QgaXMgYXBwbGllZCBpbnN0ZWFkIG9mIHRoZQogIyBwZ19jYXN0IGVudHJ5IQogeyBj YXN0c291cmNlID0+ICdjaWRyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0 ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBj YXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0 ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd4bWwn LCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0 dGFyZ2V0ID0+ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRlZ29yeSBjYXN0 cyB0byBhbmQgZnJvbSBWQVJDSEFSCiAjIFdlIHN1cHBvcnQgYWxsIHRoZSBzYW1lIGNhc3RzIGFz IGZvciBURVhULgogeyBjYXN0c291cmNlID0+ICdjaWRyJywgY2FzdHRhcmdldCA9PiAndmFyY2hh cicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0 YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoYm9v bCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICd4bWwnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICd4bWwnLCBjYXN0ZnVuYyA9 PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIAogIyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJvbSBCUENIQVIKICMgV2Ug c3VwcG9ydCBhbGwgdGhlIHNhbWUgY2FzdHMgYXMgZm9yIFRFWFQuCiB7IGNhc3Rzb3VyY2UgPT4g J2NpZHInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChpbmV0KScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2luZXQnLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9 PiAndGV4dChpbmV0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jvb2wnLCBjYXN0dGFyZ2V0ID0+ICdicGNo YXInLCBjYXN0ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcsIGNhc3R0 YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFy Z2V0ID0+ICd4bWwnLCBjYXN0ZnVuYyA9PiAneG1sJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBMZW5ndGgtY29lcmNpb24gZnVuY3Rp b25zCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsCiAg IGNhc3RmdW5jID0+ICdicGNoYXIoYnBjaGFyLGludDQsYm9vbCknLCBjYXN0Y29udGV4dCA9PiAn aScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQg PT4gJ3ZhcmNoYXInLAogICBjYXN0ZnVuYyA9PiAndmFyY2hhcih2YXJjaGFyLGludDQsYm9vbCkn LCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRo b2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGlt ZScsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAndGltZSh0aW1lLGludDQpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAndGltZXN0YW1wJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wJywKICAg Y2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcCh0aW1lc3RhbXAsaW50NCknLCBjYXN0Y29udGV4dCA9PiAn aScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXN0YW1wdHonLCBjYXN0dGFy Z2V0ID0+ICd0aW1lc3RhbXB0eicsCiAgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3Rh bXB0eixpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnRlcnZhbCcsIGNhc3R0YXJnZXQgPT4gJ2ludGVydmFsJywKICAgY2FzdGZ1bmMg PT4gJ2ludGVydmFsKGludGVydmFsLGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLAotICBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWV0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWV0eics Ci0gIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZXR6LGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZXR6KHRpbWV0eixpbnQ0 KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBj YXN0ZnVuYyA9PiAnYml0KGJpdCxpbnQ0LGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyYml0Jywg Y2FzdHRhcmdldCA9PiAndmFyYml0JywgY2FzdGZ1bmMgPT4gJ3ZhcmJpdCcsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywKLSAgY2FzdGZ1bmMgPT4gJ251 bWVyaWMobnVtZXJpYyxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ251bWVyaWMobnVtZXJpYyxpbnQ0KScsIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAj IGpzb24gdG8vZnJvbSBqc29uYgogeyBjYXN0c291cmNlID0+ICdqc29uJywgY2FzdHRhcmdldCA9 PiAnanNvbmInLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC01NTYsMzYgKzU1NiwzNiBAQAogCiAjIGpz b25iIHRvIG51bWVyaWMgYW5kIGJvb2wgdHlwZXMKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBj YXN0dGFyZ2V0ID0+ICdib29sJywgY2FzdGZ1bmMgPT4gJ2Jvb2woanNvbmIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVy aWMoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywg Y2FzdGZ1bmMgPT4gJ2ludDIoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoanNvbmIpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn anNvbmInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoanNvbmIpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9 PiAnZmxvYXQ0KGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb25iJywgY2FzdHRhcmdldCA9PiAn ZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIHJhbmdlIHRvIG11bHRpcmFu Z2UKIHsgY2FzdHNvdXJjZSA9PiAnaW50NHJhbmdlJywgY2FzdHRhcmdldCA9PiAnaW50NG11bHRp cmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAnaW50NG11bHRpcmFuZ2UoaW50NHJhbmdlKScsIGNhc3Rj b250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4cmFuZ2Un LCBjYXN0dGFyZ2V0ID0+ICdpbnQ4bXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdpbnQ4bXVs dGlyYW5nZShpbnQ4cmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ251bXJhbmdlJywgY2FzdHRhcmdldCA9PiAnbnVtbXVsdGlyYW5nZScs CiAgIGNhc3RmdW5jID0+ICdudW1tdWx0aXJhbmdlKG51bXJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdkYXRlcmFuZ2UnLCBjYXN0dGFy Z2V0ID0+ICdkYXRlbXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdkYXRlbXVsdGlyYW5nZShk YXRlcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3RzcmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICd0c211bHRpcmFuZ2UnLAotICBjYXN0ZnVu YyA9PiAndHNtdWx0aXJhbmdlKHRzcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndHNtdWx0aXJhbmdlKHRzcmFuZ2UpJywgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RzdHpyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ3RzdHptdWx0 aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ3RzdHptdWx0aXJhbmdlKHRzdHpyYW5nZSknLCBjYXN0 Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIF0KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfY2FzdC5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmgKaW5kZXgg ZDgxMzE0OTQ2ZWUuLjZkZWRlZDNlMDRlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2Nhc3QuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaApAQCAtNDksNiAr NDksMTAgQEAgQ0FUQUxPRyhwZ19jYXN0LDI2MDUsQ2FzdFJlbGF0aW9uSWQpCiAKIAkvKiBjYXN0 IG1ldGhvZCAqLwogCWNoYXIJCWNhc3RtZXRob2Q7CisKKwkvKiBjYXN0IGZ1bmN0aW9uIGVycm9y IHNhZmUgKi8KKwlib29sCQljYXN0ZXJyb3JzYWZlIEJLSV9ERUZBVUxUKGYpOworCiB9IEZvcm1E YXRhX3BnX2Nhc3Q7CiAKIEVORF9DQVRBTE9HX1NUUlVDVApAQCAtMTA1LDYgKzEwOSw3IEBAIGV4 dGVybiBPYmplY3RBZGRyZXNzIENhc3RDcmVhdGUoT2lkIHNvdXJjZXR5cGVpZCwKIAkJCQkJCQkJ T2lkIG91dGNhc3RpZCwKIAkJCQkJCQkJY2hhciBjYXN0Y29udGV4dCwKIAkJCQkJCQkJY2hhciBj YXN0bWV0aG9kLAorCQkJCQkJCQlib29sIGNhc3RlcnJvcnNhZmUsCiAJCQkJCQkJCURlcGVuZGVu Y3lUeXBlIGJlaGF2aW9yKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBHX0NBU1RfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCmluZGV4IDhiMGVkM2FlZmE1Li4xMDM5NDEzOWUwYyAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaApAQCAtNDE4NSw2ICs0MTg1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlQ2Fz dFN0bXQKIAlPYmplY3RXaXRoQXJncyAqZnVuYzsKIAlDb2VyY2lvbkNvbnRleHQgY29udGV4dDsK IAlib29sCQlpbm91dDsKKwlib29sCQlzYWZlOwogfSBDcmVhdGVDYXN0U3RtdDsKIAogLyogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlz dC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IDZmNzRhOGMwNWM3Li5hZmNm OWE1M2I0YyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtMzk4LDYgKzM5OCw3IEBAIFBHX0tFWVdPUkQo InJvdXRpbmVzIiwgUk9VVElORVMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInJvdyIsIFJPVywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tF WVdPUkQoInJvd3MiLCBST1dTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJydWxlIiwgUlVMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdf S0VZV09SRCgic2FmZSIsIFNBRkUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInNhdmVwb2ludCIsIFNBVkVQT0lOVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgic2NhbGFyIiwgU0NBTEFSLCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJzY2hlbWEiLCBTQ0hFTUEsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y3JlYXRlX2Nhc3Qub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5v dXQKaW5kZXggNjhlNjlkMWM1ODQuLmIzYzdkNjJlNTI2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dApAQCAtODEsNiArODEsMTIgQEAgTk9USUNFOiAgZHJvcCBj YXNjYWRlcyB0byBjYXN0IGZyb20gaW50ZWdlciB0byBjYXN0dGVzdHR5cGUKIC0tIFRyeSBpdCB3 aXRoIGEgZnVuY3Rpb24gdGhhdCByZXF1aXJlcyBhbiBpbXBsaWNpdCBjYXN0CiBDUkVBVEUgRlVO Q1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBSRVRVUk5TIHRleHQgTEFOR1VBR0UgU1FMIEFTCiAk JCBTRUxFQ1QgKCdiYXInOjp0ZXh0IHx8ICQxOjp0ZXh0KTsgJCQ7CitDUkVBVEUgRlVOQ1RJT04g YmFyX2ludDRfdGV4dF9wbHBnKGludDQpIFJFVFVSTlMgdGV4dCBMQU5HVUFHRSBwbHBnc3FsIEFT CiskJCBCRUdJTiBSRVRVUk4gKCdiYXInOjp0ZXh0IHx8ICQxOjp0ZXh0KTsgRU5EICQkOworQ1JF QVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIFNBRkUgRlVOQ1RJT04gYmFyX2lu dDRfdGV4dChpbnQ0KSBBUyBJTVBMSUNJVDsgLS0gZXJyb3IKK0VSUk9SOiAgc2FmZSB0eXBlIGNh c3QgZnVuY3Rpb25zIGFyZSBvbmx5IHN1cHBvcnRlZCBmb3IgQyBhbmQgaW50ZXJuYWwgbGFuZ3Vh Z2VzCitDUkVBVEUgQ0FTVCAoaW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEggU0FGRSBGVU5DVElP TiBiYXJfaW50NF90ZXh0X3BscGcoaW50NCkgQVMgSU1QTElDSVQ7IC0tIGVycm9yCitFUlJPUjog IHNhZmUgdHlwZSBjYXN0IGZ1bmN0aW9ucyBhcmUgb25seSBzdXBwb3J0ZWQgZm9yIEMgYW5kIGlu dGVybmFsIGxhbmd1YWdlcwogQ1JFQVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRI IEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgQVMgSU1QTElDSVQ7CiBTRUxFQ1QgMTIzNDo6 aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91bGQgd29yayBub3cKICBjYXN0dGVzdHR5cGUgCkBA IC05Miw3ICs5OCw3IEBAIFNFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyCiBFUlJPUjogIGNhbm5vdCBj YXN0IHR5cGUgaW50ZWdlciB0byBjYXN0dGVzdHR5cGUgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24g aXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKIExJTkUgMTogU0VM RUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZF Li4uCiAgICAgICAgICAgICAgICAgICAgIF4KLUhJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNl ci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4KK0hJTlQ6ICBFeHBsaWNpdCBj YXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUuCiAtLSBjaGVj ayBkZXBlbmRlbmNpZXMgZ2VuZXJhdGVkIGZvciB0aGF0CiBTRUxFQ1QgcGdfZGVzY3JpYmVfb2Jq ZWN0KGNsYXNzaWQsIG9iamlkLCBvYmpzdWJpZCkgYXMgb2JqLAogICAgICAgIHBnX2Rlc2NyaWJl X29iamVjdChyZWZjbGFzc2lkLCByZWZvYmppZCwgcmVmb2Jqc3ViaWQpIGFzIG9ianJlZiwKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CmluZGV4IDZmZjRkN2VlOTAxLi45 OTQzYTQxOTY5NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2Fu aXR5Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CkBA IC05NTAsOCArOTUwLDggQEAgU0VMRUNUICoKIEZST00gcGdfY2FzdCBjCiBXSEVSRSBjYXN0c291 cmNlID0gMCBPUiBjYXN0dGFyZ2V0ID0gMCBPUiBjYXN0Y29udGV4dCBOT1QgSU4gKCdlJywgJ2En LCAnaScpCiAgICAgT1IgY2FzdG1ldGhvZCBOT1QgSU4gKCdmJywgJ2InICwnaScpOwotIG9pZCB8 IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3Rt ZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNh c3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIENoZWNrIHRoYXQgY2FzdGZ1 bmMgaXMgbm9uemVybyBvbmx5IGZvciBjYXN0IG1ldGhvZHMgdGhhdCBuZWVkIGEgZnVuY3Rpb24s CkBAIC05NjAsOCArOTYwLDggQEAgU0VMRUNUICoKIEZST00gcGdfY2FzdCBjCiBXSEVSRSAoY2Fz dG1ldGhvZCA9ICdmJyBBTkQgY2FzdGZ1bmMgPSAwKQogICAgT1IgKGNhc3RtZXRob2QgSU4gKCdi JywgJ2knKSBBTkQgY2FzdGZ1bmMgPD4gMCk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJn ZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8 IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LQogKDAgcm93cykKIAogLS0gTG9vayBmb3IgY2FzdHMgdG8vZnJvbSB0aGUgc2FtZSB0eXBlIHRo YXQgYXJlbid0IGxlbmd0aCBjb2VyY2lvbiBmdW5jdGlvbnMuCkBAIC05NzAsMTUgKzk3MCwxNSBA QCBXSEVSRSAoY2FzdG1ldGhvZCA9ICdmJyBBTkQgY2FzdGZ1bmMgPSAwKQogU0VMRUNUICoKIEZS T00gcGdfY2FzdCBjCiBXSEVSRSBjYXN0c291cmNlID0gY2FzdHRhcmdldCBBTkQgY2FzdGZ1bmMg PSAwOwotIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29u dGV4dCB8IGNhc3RtZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2Fz dHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9y c2FmZSAKKy0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIFNFTEVDVCBj LioKIEZST00gcGdfY2FzdCBjLCBwZ19wcm9jIHAKIFdIRVJFIGMuY2FzdGZ1bmMgPSBwLm9pZCBB TkQgcC5wcm9uYXJncyA8IDIgQU5EIGNhc3Rzb3VyY2UgPSBjYXN0dGFyZ2V0OwotIG9pZCB8IGNh c3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRo b2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3Rm dW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIExvb2sgZm9yIGNhc3QgZnVuY3Rp b25zIHRoYXQgZG9uJ3QgaGF2ZSB0aGUgcmlnaHQgc2lnbmF0dXJlLiAgVGhlCkBAIC05OTYsOCAr OTk2LDggQEAgV0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFORAogICAgICAgICAgICAgIE9SIChj LmNhc3Rzb3VyY2UgPSAnY2hhcmFjdGVyJzo6cmVndHlwZSBBTkQKICAgICAgICAgICAgICAgICAg cC5wcm9hcmd0eXBlc1swXSA9ICd0ZXh0Jzo6cmVndHlwZSkpCiAgICAgIE9SIE5PVCBiaW5hcnlf Y29lcmNpYmxlKHAucHJvcmV0dHlwZSwgYy5jYXN0dGFyZ2V0KSk7Ci0gb2lkIHwgY2FzdHNvdXJj ZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBj YXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogU0VMRUNUIGMuKgpAQCAtMTAwNSw4ICsxMDA1LDgg QEAgRlJPTSBwZ19jYXN0IGMsIHBnX3Byb2MgcAogV0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFO RAogICAgICgocC5wcm9uYXJncyA+IDEgQU5EIHAucHJvYXJndHlwZXNbMV0gIT0gJ2ludDQnOjpy ZWd0eXBlKSBPUgogICAgICAocC5wcm9uYXJncyA+IDIgQU5EIHAucHJvYXJndHlwZXNbMl0gIT0g J2Jvb2wnOjpyZWd0eXBlKSk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0 ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNh c3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRo b2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93 cykKIAogLS0gTG9vayBmb3IgYmluYXJ5IGNvbXBhdGlibGUgY2FzdHMgdGhhdCBkbyBub3QgaGF2 ZSB0aGUgcmV2ZXJzZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nh c3Quc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCmluZGV4IDBhMTVh Nzk1ZDg3Li4zMGEwZmYwNzdjOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3Jl YXRlX2Nhc3Quc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbApA QCAtNjAsNiArNjAsMTEgQEAgRFJPUCBGVU5DVElPTiBpbnQ0X2Nhc3R0ZXN0dHlwZShpbnQ0KSBD QVNDQURFOwogQ1JFQVRFIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgUkVUVVJOUyB0ZXh0 IExBTkdVQUdFIFNRTCBBUwogJCQgU0VMRUNUICgnYmFyJzo6dGV4dCB8fCAkMTo6dGV4dCk7ICQk OwogCitDUkVBVEUgRlVOQ1RJT04gYmFyX2ludDRfdGV4dF9wbHBnKGludDQpIFJFVFVSTlMgdGV4 dCBMQU5HVUFHRSBwbHBnc3FsIEFTCiskJCBCRUdJTiBSRVRVUk4gKCdiYXInOjp0ZXh0IHx8ICQx Ojp0ZXh0KTsgRU5EICQkOworCitDUkVBVEUgQ0FTVCAoaW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJ VEggU0FGRSBGVU5DVElPTiBiYXJfaW50NF90ZXh0KGludDQpIEFTIElNUExJQ0lUOyAtLSBlcnJv cgorQ1JFQVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIFNBRkUgRlVOQ1RJT04g YmFyX2ludDRfdGV4dF9wbHBnKGludDQpIEFTIElNUExJQ0lUOyAtLSBlcnJvcgogQ1JFQVRFIENB U1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50 NCkgQVMgSU1QTElDSVQ7CiBTRUxFQ1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91 bGQgd29yayBub3cKIFNFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKLS0gCjIuMzQuMQoK --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s292 RnJvbSAyMzAyZTc3YzViODcxMGYxMDM0Y2NmODQxOTg5YmY2NGU5YzAwZjEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjowNDo0MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIx IDE1LzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcHR6IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSd0aW1lc3RhbXB0eic6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7Cgog ICAgICAgIGNhc3Rzb3VyY2UgICAgICAgIHwgICAgICAgICBjYXN0dGFyZ2V0ICAgICAgICAgIHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgICAgcHJvc3JjICAgICAg ICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpv bmUgfCBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMTE3OCB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X2RhdGUgICAgICB8IGRhdGUKIHRpbWVzdGFtcCB3 aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUgICAgICB8ICAgICAyMDE5IHwg YSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wdHpfdGltZSAgICAgIHwgdGltZQog dGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwg ICAgIDIwMjcgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0el90aW1lc3Rh bXAgfCB0aW1lc3RhbXAKIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aCB0aW1l IHpvbmUgICAgICAgICB8ICAgICAxMzg4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGlt ZXN0YW1wdHpfdGltZXR6ICAgIHwgdGltZXR6CiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgfCB0 aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgICAgfCAgICAgMTk2NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IHRpbWVzdGFtcHR6X3NjYWxlICAgICB8IHRpbWVzdGFtcHR6Cig1IHJvd3MpCgpk aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpR aXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMgICAgICB8ICA5ICsrKysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jIHwgMTAgKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IGJjNGM2Nzc3 NWRkLi5iZTUyNzc3ZDg4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0xNDA2LDcgKzE0MDYsMTAg QEAgdGltZXN0YW1wdHpfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcFR6IHRpbWVz dGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgTlVMTCk7CisJcmVzdWx0ID0g dGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmFyZ3MpKQorCQlQR19SRVRVUk5fTlVMTCgpOwor CiAJUEdfUkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAzNiw3ICsyMDM5LDcgQEAg dGltZXN0YW1wdHpfdGltZShQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwog CiAJaWYgKHRpbWVzdGFtcDJ0bSh0aW1lc3RhbXAsICZ0eiwgdG0sICZmc2VjLCBOVUxMLCBOVUxM KSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtMjk1NSw3 ICsyOTU4LDcgQEAgdGltZXN0YW1wdHpfdGltZXR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JF VFVSTl9OVUxMKCk7CiAKIAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgJnR6LCB0bSwgJmZz ZWMsIE5VTEwsIE5VTEwpICE9IDApCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZv LT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkp OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggOGNkOTdjY2E5MjYuLjA0ODdmODQ1 N2YyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC04NzMsNyArODczLDggQEAgdGlt ZXN0YW1wdHpfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHRpbWVzdGFtcDsK IAotCUFkanVzdFRpbWVzdGFtcEZvclR5cG1vZCgmcmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlm ICghQWRqdXN0VGltZXN0YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgZmNpbmZvLT5jb250 ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVBUWihyZXN1 bHQpOwogfQpAQCAtNjQ5Miw4ICs2NDkzLDEzIEBAIERhdHVtCiB0aW1lc3RhbXB0el90aW1lc3Rh bXAoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlUaW1lc3RhbXBUeiB0aW1lc3RhbXAgPSBQR19HRVRB UkdfVElNRVNUQU1QVFooMCk7CisJVGltZXN0YW1wCXJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1F U1RBTVAodGltZXN0YW1wdHoydGltZXN0YW1wKHRpbWVzdGFtcCkpOworCXJlc3VsdCA9IHRpbWVz dGFtcHR6MnRpbWVzdGFtcF9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo dW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KIAogLyoKLS0g CjIuMzQuMQoK --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0020-refactor-point_dt.patch" Content-Disposition: attachment; filename="v21-0020-refactor-point_dt.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s2h5 RnJvbSBiNDAxNzA1NWNjODQ4NzhlMTMyYzI5NDk4MGU3NWIyNTVkYThmNTE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNSBKYW4gMjAyNiAxMzozMzo1MSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIx IDIwLzIzXSByZWZhY3RvciBwb2ludF9kdAoKcG9pbnRfZHQgaXMgdXNlZCBpbiBtdWx0aXBsZSBs b2NhdGlvbnMgYW5kIHdpbGwgYmUgbmVlZGVkIGJ5IGEgbGF0ZXIgcGF0Y2gsIHRodXMKcmVmYWN0 b3JpbmcgbWFrZSBpdCBlcnJvciBzYWZlLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jIHwgNzkgKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDYgaW5zZXJ0 aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2dlb19vcHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMKaW5kZXggYmZi NDg1OWI0Y2IuLmM2NTViMDE1YzE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv Z2VvX29wcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMKQEAgLTgyLDcg KzgyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHBvaW50X3N1Yl9wb2ludChQb2ludCAqcmVzdWx0 LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9tdWxf cG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5s aW5lIHZvaWQgcG9pbnRfZGl2X3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50 ICpwdDIpOwogc3RhdGljIGlubGluZSBib29sIHBvaW50X2VxX3BvaW50KFBvaW50ICpwdDEsIFBv aW50ICpwdDIpOwotc3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRfZHQoUG9pbnQgKnB0MSwgUG9p bnQgKnB0Mik7CitzdGF0aWMgaW5saW5lIGZsb2F0OCBwb2ludF9kdChQb2ludCAqcHQxLCBQb2lu dCAqcHQyLCBOb2RlICplc2NvbnRleHQpOwogc3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRfc2wo UG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW50CXBvaW50X2luc2lkZShQb2ludCAq cCwgaW50IG5wdHMsIFBvaW50ICpwbGlzdCk7CiAKQEAgLTgzOSw3ICs4MzksNyBAQCBib3hfZGlz dGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAlib3hfY24oJmEsIGJveDEpOwogCWJveF9jbigmYiwg Ym94Mik7CiAKLQlQR19SRVRVUk5fRkxPQVQ4KHBvaW50X2R0KCZhLCAmYikpOworCVBHX1JFVFVS Tl9GTE9BVDgocG9pbnRfZHQoJmEsICZiLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0x ODA4LDcgKzE4MDgsOCBAQCBwYXRoX2xlbmd0aChQR19GVU5DVElPTl9BUkdTKQogCQkJaXByZXYg PSBwYXRoLT5ucHRzIC0gMTsgLyogaW5jbHVkZSB0aGUgY2xvc3VyZSBzZWdtZW50ICovCiAJCX0K IAotCQlyZXN1bHQgPSBmbG9hdDhfcGwocmVzdWx0LCBwb2ludF9kdCgmcGF0aC0+cFtpcHJldl0s ICZwYXRoLT5wW2ldKSk7CisJCXJlc3VsdCA9IGZsb2F0OF9wbChyZXN1bHQsCisJCQkJCQkgICBw b2ludF9kdCgmcGF0aC0+cFtpcHJldl0sICZwYXRoLT5wW2ldLCBmY2luZm8tPmNvbnRleHQpKTsK IAl9CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CkBAIC0xOTk1LDEzICsxOTk2LDI0IEBA IHBvaW50X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUG9pbnQJICAgKnB0MSA9IFBHX0dF VEFSR19QT0lOVF9QKDApOwogCVBvaW50CSAgICpwdDIgPSBQR19HRVRBUkdfUE9JTlRfUCgxKTsK IAotCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQocHQxLCBwdDIpKTsKKwlQR19SRVRVUk5fRkxP QVQ4KHBvaW50X2R0KHB0MSwgcHQyLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogc3RhdGljIGlu bGluZSBmbG9hdDgKLXBvaW50X2R0KFBvaW50ICpwdDEsIFBvaW50ICpwdDIpCitwb2ludF9kdChQ b2ludCAqcHQxLCBQb2ludCAqcHQyLCBOb2RlICplc2NvbnRleHQpCiB7Ci0JcmV0dXJuIGh5cG90 KGZsb2F0OF9taShwdDEtPngsIHB0Mi0+eCksIGZsb2F0OF9taShwdDEtPnksIHB0Mi0+eSkpOwor CWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CisKKwl4ID0gZmxvYXQ4X21pX3NhZmUocHQxLT54LCBw dDItPngsIGVzY29udGV4dCk7CisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNj b250ZXh0KSkpCisJCXJldHVybiAwLjA7CisKKwl5ID0gZmxvYXQ4X21pX3NhZmUocHQxLT55LCBw dDItPnksIGVzY29udGV4dCk7CisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNj b250ZXh0KSkpCisJCXJldHVybiAwLjA7CisKKwlyZXR1cm4gaHlwb3QoeCwgeSk7CiB9CiAKIERh dHVtCkBAIC0yMTczLDcgKzIxODUsNyBAQCBsc2VnX2xlbmd0aChQR19GVU5DVElPTl9BUkdTKQog ewogCUxTRUcJICAgKmxzZWcgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCi0JUEdfUkVUVVJOX0ZM T0FUOChwb2ludF9kdCgmbHNlZy0+cFswXSwgJmxzZWctPnBbMV0pKTsKKwlQR19SRVRVUk5fRkxP QVQ4KHBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSk7 CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpAQCAtMjI1OCw4ICsyMjcwLDggQEAgbHNlZ19sdChQR19GVU5DVElPTl9BUkdT KQogCUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBH X0dFVEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGx0KHBvaW50X2R0KCZsMS0+ cFswXSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkp OworCVBHX1JFVFVSTl9CT09MKEZQbHQocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZj aW5mby0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNp bmZvLT5jb250ZXh0KSkpOwogfQogCiBEYXR1bQpAQCAtMjI2OCw4ICsyMjgwLDggQEAgbHNlZ19s ZShQR19GVU5DVElPTl9BUkdTKQogCUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsK IAlMU0VHCSAgICpsMiA9IFBHX0dFVEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChG UGxlKHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+ cFswXSwgJmwyLT5wWzFdKSkpOworCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmwxLT5w WzBdLCAmbDEtPnBbMV0sIGZjaW5mby0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBb MF0sICZsMi0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSkpOwogfQogCiBEYXR1bQpAQCAtMjI3OCw4 ICsyMjkwLDggQEAgbHNlZ19ndChQR19GVU5DVElPTl9BUkdTKQogCUxTRUcJICAgKmwxID0gUEdf R0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dFVEFSR19MU0VHX1AoMSk7CiAK LQlQR19SRVRVUk5fQk9PTChGUGd0KHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdKSwKLQkJ CQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOworCVBHX1JFVFVSTl9CT09MKEZQ Z3QocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZjaW5mby0+Y29udGV4dCksCisJCQkJ CQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSkpOwogfQog CiBEYXR1bQpAQCAtMjI4OCw4ICsyMzAwLDggQEAgbHNlZ19nZShQR19GVU5DVElPTl9BUkdTKQog CUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dF VEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGdlKHBvaW50X2R0KCZsMS0+cFsw XSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOwor CVBHX1JFVFVSTl9CT09MKEZQZ2UocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZjaW5m by0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNpbmZv LT5jb250ZXh0KSkpOwogfQogCiAKQEAgLTI3NDMsNyArMjc1NSw3IEBAIGxpbmVfY2xvc2VwdF9w b2ludChQb2ludCAqcmVzdWx0LCBMSU5FICpsaW5lLCBQb2ludCAqcG9pbnQpCiAJaWYgKHJlc3Vs dCAhPSBOVUxMKQogCQkqcmVzdWx0ID0gY2xvc2VwdDsKIAotCXJldHVybiBwb2ludF9kdCgmY2xv c2VwdCwgcG9pbnQpOworCXJldHVybiBwb2ludF9kdCgmY2xvc2VwdCwgcG9pbnQsIE5VTEwpOwog fQogCiBEYXR1bQpAQCAtMjc4NCw3ICsyNzk2LDcgQEAgbHNlZ19jbG9zZXB0X3BvaW50KFBvaW50 ICpyZXN1bHQsIExTRUcgKmxzZWcsIFBvaW50ICpwdCkKIAlpZiAocmVzdWx0ICE9IE5VTEwpCiAJ CSpyZXN1bHQgPSBjbG9zZXB0OwogCi0JcmV0dXJuIHBvaW50X2R0KCZjbG9zZXB0LCBwdCk7CisJ cmV0dXJuIHBvaW50X2R0KCZjbG9zZXB0LCBwdCwgTlVMTCk7CiB9CiAKIERhdHVtCkBAIC0zMTA4 LDkgKzMxMjAsOSBAQCBvbl9wbChQR19GVU5DVElPTl9BUkdTKQogc3RhdGljIGJvb2wKIGxzZWdf Y29udGFpbl9wb2ludChMU0VHICpsc2VnLCBQb2ludCAqcHQpCiB7Ci0JcmV0dXJuIEZQZXEocG9p bnRfZHQocHQsICZsc2VnLT5wWzBdKSArCi0JCQkJcG9pbnRfZHQocHQsICZsc2VnLT5wWzFdKSwK LQkJCQlwb2ludF9kdCgmbHNlZy0+cFswXSwgJmxzZWctPnBbMV0pKTsKKwlyZXR1cm4gRlBlcShw b2ludF9kdChwdCwgJmxzZWctPnBbMF0sIE5VTEwpICsKKwkJCQlwb2ludF9kdChwdCwgJmxzZWct PnBbMV0sIE5VTEwpLAorCQkJCXBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsxXSwgTlVM TCkpOwogfQogCiBEYXR1bQpAQCAtMzE3NiwxMSArMzE4OCwxMiBAQCBvbl9wcGF0aChQR19GVU5D VElPTl9BUkdTKQogCWlmICghcGF0aC0+Y2xvc2VkKQogCXsKIAkJbiA9IHBhdGgtPm5wdHMgLSAx OwotCQlhID0gcG9pbnRfZHQocHQsICZwYXRoLT5wWzBdKTsKKwkJYSA9IHBvaW50X2R0KHB0LCAm cGF0aC0+cFswXSwgZmNpbmZvLT5jb250ZXh0KTsKIAkJZm9yIChpID0gMDsgaSA8IG47IGkrKykK IAkJewotCQkJYiA9IHBvaW50X2R0KHB0LCAmcGF0aC0+cFtpICsgMV0pOwotCQkJaWYgKEZQZXEo ZmxvYXQ4X3BsKGEsIGIpLCBwb2ludF9kdCgmcGF0aC0+cFtpXSwgJnBhdGgtPnBbaSArIDFdKSkp CisJCQliID0gcG9pbnRfZHQocHQsICZwYXRoLT5wW2kgKyAxXSwgZmNpbmZvLT5jb250ZXh0KTsK KwkJCWlmIChGUGVxKGZsb2F0OF9wbChhLCBiKSwKKwkJCQkJIHBvaW50X2R0KCZwYXRoLT5wW2ld LCAmcGF0aC0+cFtpICsgMV0sIGZjaW5mby0+Y29udGV4dCkpKQogCQkJCVBHX1JFVFVSTl9CT09M KHRydWUpOwogCQkJYSA9IGI7CiAJCX0KQEAgLTQ3NjYsNyArNDc3OSw3IEBAIGNpcmNsZV9vdmVy bGFwKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpjaXJjbGUxID0gUEdfR0VUQVJHX0NJ UkNMRV9QKDApOwogCUNJUkNMRQkgICAqY2lyY2xlMiA9IFBHX0dFVEFSR19DSVJDTEVfUCgxKTsK IAotCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNs ZTItPmNlbnRlciksCisJUEdfUkVUVVJOX0JPT0woRlBsZShwb2ludF9kdCgmY2lyY2xlMS0+Y2Vu dGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2luZm8tPmNvbnRleHQpLAogCQkJCQkJZmxvYXQ4X3Bs KGNpcmNsZTEtPnJhZGl1cywgY2lyY2xlMi0+cmFkaXVzKSkpOwogfQogCkBAIC00ODI4LDcgKzQ4 NDEsNyBAQCBjaXJjbGVfY29udGFpbmVkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpj aXJjbGUxID0gUEdfR0VUQVJHX0NJUkNMRV9QKDApOwogCUNJUkNMRQkgICAqY2lyY2xlMiA9IFBH X0dFVEFSR19DSVJDTEVfUCgxKTsKIAotCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNp cmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNlbnRlciksCisJUEdfUkVUVVJOX0JPT0woRlBsZShw b2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2luZm8tPmNvbnRl eHQpLAogCQkJCQkJZmxvYXQ4X21pKGNpcmNsZTItPnJhZGl1cywgY2lyY2xlMS0+cmFkaXVzKSkp OwogfQogCkBAIC00ODQwLDcgKzQ4NTMsNyBAQCBjaXJjbGVfY29udGFpbihQR19GVU5DVElPTl9B UkdTKQogCUNJUkNMRQkgICAqY2lyY2xlMSA9IFBHX0dFVEFSR19DSVJDTEVfUCgwKTsKIAlDSVJD TEUJICAgKmNpcmNsZTIgPSBQR19HRVRBUkdfQ0lSQ0xFX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9P TChGUGxlKHBvaW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCVBH X1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNl bnRlciwgZmNpbmZvLT5jb250ZXh0KSwKIAkJCQkJCWZsb2F0OF9taShjaXJjbGUxLT5yYWRpdXMs IGNpcmNsZTItPnJhZGl1cykpKTsKIH0KIApAQCAtNTA2OSw3ICs1MDgyLDcgQEAgY2lyY2xlX2Rp c3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpjaXJjbGUyID0gUEdfR0VUQVJH X0NJUkNMRV9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVzdWx0ID0gZmxvYXQ4X21pKHBv aW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCXJlc3VsdCA9IGZs b2F0OF9taShwb2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2lu Zm8tPmNvbnRleHQpLAogCQkJCQkgICBmbG9hdDhfcGwoY2lyY2xlMS0+cmFkaXVzLCBjaXJjbGUy LT5yYWRpdXMpKTsKIAlpZiAocmVzdWx0IDwgMC4wKQogCQlyZXN1bHQgPSAwLjA7CkBAIC01MDg1 LDcgKzUwOTgsNyBAQCBjaXJjbGVfY29udGFpbl9wdChQR19GVU5DVElPTl9BUkdTKQogCVBvaW50 CSAgICpwb2ludCA9IFBHX0dFVEFSR19QT0lOVF9QKDEpOwogCWZsb2F0OAkJZDsKIAotCWQgPSBw b2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsIHBvaW50KTsKKwlkID0gcG9pbnRfZHQoJmNpcmNsZS0+ Y2VudGVyLCBwb2ludCwgZmNpbmZvLT5jb250ZXh0KTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNp cmNsZS0+cmFkaXVzKTsKIH0KIApAQCAtNTA5Nyw3ICs1MTEwLDcgQEAgcHRfY29udGFpbmVkX2Np cmNsZShQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlID0gUEdfR0VUQVJHX0NJ UkNMRV9QKDEpOwogCWZsb2F0OAkJZDsKIAotCWQgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIs IHBvaW50KTsKKwlkID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2VudGVyLCBwb2ludCwgZmNpbmZvLT5j b250ZXh0KTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNpcmNsZS0+cmFkaXVzKTsKIH0KIApAQCAt NTExMiw3ICs1MTI1LDcgQEAgZGlzdF9wYyhQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAq Y2lyY2xlID0gUEdfR0VUQVJHX0NJUkNMRV9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gZmxvYXQ4X21pKHBvaW50X2R0KHBvaW50LCAmY2lyY2xlLT5jZW50ZXIpLAorCXJlc3Vs dCA9IGZsb2F0OF9taShwb2ludF9kdChwb2ludCwgJmNpcmNsZS0+Y2VudGVyLCBmY2luZm8tPmNv bnRleHQpLAogCQkJCQkgICBjaXJjbGUtPnJhZGl1cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJ cmVzdWx0ID0gMC4wOwpAQCAtNTEzMCw3ICs1MTQzLDcgQEAgZGlzdF9jcG9pbnQoUEdfRlVOQ1RJ T05fQVJHUykKIAlQb2ludAkgICAqcG9pbnQgPSBQR19HRVRBUkdfUE9JTlRfUCgxKTsKIAlmbG9h dDgJCXJlc3VsdDsKIAotCXJlc3VsdCA9IGZsb2F0OF9taShwb2ludF9kdChwb2ludCwgJmNpcmNs ZS0+Y2VudGVyKSwgY2lyY2xlLT5yYWRpdXMpOworCXJlc3VsdCA9IGZsb2F0OF9taShwb2ludF9k dChwb2ludCwgJmNpcmNsZS0+Y2VudGVyLCBmY2luZm8tPmNvbnRleHQpLCBjaXJjbGUtPnJhZGl1 cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJcmVzdWx0ID0gMC4wOwogCkBAIC01MjE1LDcgKzUy MjgsNyBAQCBib3hfY2lyY2xlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJY2lyY2xlLT5jZW50ZXIueCA9 IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBib3gtPmxvdy54KSwgMi4wKTsKIAlj aXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLnksIGJveC0+ bG93LnkpLCAyLjApOwogCi0JY2lyY2xlLT5yYWRpdXMgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50 ZXIsICZib3gtPmhpZ2gpOworCWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2Vu dGVyLCAmYm94LT5oaWdoLCBmY2luZm8tPmNvbnRleHQpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9Q KGNpcmNsZSk7CiB9CkBAIC01Mjk5LDcgKzUzMTIsNyBAQCBwb2x5X3RvX2NpcmNsZShDSVJDTEUg KnJlc3VsdCwgUE9MWUdPTiAqcG9seSkKIAogCWZvciAoaSA9IDA7IGkgPCBwb2x5LT5ucHRzOyBp KyspCiAJCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsKHJlc3VsdC0+cmFkaXVzLAotCQkJCQkJ CQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyKSk7CisJCQkJCQkJCSAg IHBvaW50X2R0KCZwb2x5LT5wW2ldLCAmcmVzdWx0LT5jZW50ZXIsIE5VTEwpKTsKIAlyZXN1bHQt PnJhZGl1cyA9IGZsb2F0OF9kaXYocmVzdWx0LT5yYWRpdXMsIHBvbHktPm5wdHMpOwogfQogCi0t IAoyLjM0LjEKCg== --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0019-introduce-float8-safe-function.patch" Content-Disposition: attachment; filename="v21-0019-introduce-float8-safe-function.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s2i6 RnJvbSBkMzZjYzljMDI1NmI5ODU3MDcwYWY3ZDVmNzE3MWRlNjRkY2UwNjVhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMiBKYW4gMjAyNiAxNjoxNDoyOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIx IDE5LzIzXSBpbnRyb2R1Y2UgZmxvYXQ4IHNhZmUgZnVuY3Rpb24KCnRoaXMgcGF0Y2ggaW50cm9k dWNlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb246CmZsb2F0OF9wbF9zYWZlCmZsb2F0OF9taV9zYWZl CmZsb2F0OF9tdWxfc2FmZQpmbG9hdDhfZGl2X3NhZmUKCnJlZmFjdG9yaW5nIGV4aXN0aW5nIGZ1 bmN0aW9uIGlzIGJlIHRvbyBpbnZhc2l2ZS4gIHRodXMgYWRkIHRoZXNlIG5ldyBmdW5jdGlvbnMu Ckl0J3MgY2xvc2UgdG8gZXhpc3Rpbmcgbm9uLXNhZmUgdmVyc2lvbiBmdW5jdGlvbnMuCgpkaXNj dXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhO Vmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmggfCA3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxv YXQuaAppbmRleCBkMmU5ODk5NjBhNS4uODcyM2I0YzAwYjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApAQCAtMTA5 LDE2ICsxMDksMjQgQEAgZmxvYXQ0X3BsKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQg dmFsMikKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0OAorZmxvYXQ4 X3BsX3NhZmUoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9k ZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJcmVzdWx0OworCisJcmVzdWx0ID0gdmFsMSArIHZh bDI7CisJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNp bmYodmFsMikpCisJeworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1 cm4gMC4wOworCX0KKwlyZXR1cm4gcmVzdWx0OworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0OAog ZmxvYXQ4X3BsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIHsKLQlmbG9h dDgJCXJlc3VsdDsKLQotCXJlc3VsdCA9IHZhbDEgKyB2YWwyOwotCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVy Zmxvd19lcnJvcihOVUxMKTsKLQotCXJldHVybiByZXN1bHQ7CisJcmV0dXJuIGZsb2F0OF9wbF9z YWZlKHZhbDEsIHZhbDIsIE5VTEwpOzsKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDQKQEAgLTEz MywxNiArMTQxLDI0IEBAIGZsb2F0NF9taShjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0 IHZhbDIpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0 OF9taV9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwgc3RydWN0IE5v ZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJlc3VsdDsKKworCXJlc3VsdCA9IHZhbDEgLSB2 YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlz aW5mKHZhbDIpKQorCXsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKKwkJcmV0 dXJuIDAuMDsKKwl9CisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdDgK IGZsb2F0OF9taShjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiB7Ci0JZmxv YXQ4CQlyZXN1bHQ7Ci0KLQlyZXN1bHQgPSB2YWwxIC0gdmFsMjsKLQlpZiAodW5saWtlbHkoaXNp bmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3Zl cmZsb3dfZXJyb3IoTlVMTCk7Ci0KLQlyZXR1cm4gcmVzdWx0OworCXJldHVybiBmbG9hdDhfbWlf c2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDQKQEAgLTE2 MCwxOSArMTc2LDMzIEBAIGZsb2F0NF9tdWwoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0 NCB2YWwyKQogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0OAotZmxvYXQ4X211bChjb25zdCBmbG9h dDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCitmbG9hdDhfbXVsX3NhZmUoY29uc3QgZmxvYXQ4 IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogewogCWZs b2F0OAkJcmVzdWx0OwogCiAJcmVzdWx0ID0gdmFsMSAqIHZhbDI7CiAJaWYgKHVubGlrZWx5KGlz aW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFsMikpCi0JCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOworCXsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0 KTsKKwkJcmV0dXJuIDAuMDsKKwl9CisKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYg dmFsMSAhPSAwLjAgJiYgdmFsMiAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxM KTsKKwl7CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1cm4gMC4w OworCX0KIAogCXJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgZmxvYXQ4CitmbG9h dDhfbXVsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKK3sKKwlyZXR1cm4g ZmxvYXQ4X211bF9zYWZlKHZhbDEsIHZhbDIsIE5VTEwpOworfQorCisKIHN0YXRpYyBpbmxpbmUg ZmxvYXQ0CiBmbG9hdDRfZGl2KGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikK IHsKQEAgLTE5MCwyMSArMjIwLDI4IEBAIGZsb2F0NF9kaXYoY29uc3QgZmxvYXQ0IHZhbDEsIGNv bnN0IGZsb2F0NCB2YWwyKQogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0OAotZmxvYXQ4X2Rpdihj b25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCitmbG9hdDhfZGl2X3NhZmUoY29u c3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0 KQogewogCWZsb2F0OAkJcmVzdWx0OwogCiAJaWYgKHVubGlrZWx5KHZhbDIgPT0gMC4wKSAmJiAh aXNuYW4odmFsMSkpCi0JCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKE5VTEwpOworCQlmbG9hdF96 ZXJvX2RpdmlkZV9lcnJvcihlc2NvbnRleHQpOwogCXJlc3VsdCA9IHZhbDEgLyB2YWwyOwogCWlm ICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkpCi0JCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOwogCWlm ICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSAmJiB2YWwxICE9IDAuMCAmJiAhaXNpbmYodmFsMikp Ci0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9y KGVzY29udGV4dCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0 OAorZmxvYXQ4X2Rpdihjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCit7CisJ cmV0dXJuIGZsb2F0OF9kaXZfc2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKK30KKworCiAvKgogICog Um91dGluZXMgZm9yIE5hTi1hd2FyZSBjb21wYXJpc29ucwogICoKLS0gCjIuMzQuMQoK --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s2o8 RnJvbSA4OTYyMWJjMTg2YzMyOGIyYjcyOTU3OTQxYWI1MTQ2MWU2YjE0YmQyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTQ6MjY6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAxNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBqc29uYiB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l IGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdqc29uYic6OnJl Z3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgICAgY2Fz dHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgcHJv c3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0K IGpzb25iICAgICAgfCBib29sZWFuICAgICAgICAgIHwgICAgIDM1NTYgfCBlICAgICAgICAgICB8 IGYgICAgICAgICAgfCBqc29uYl9ib29sICAgIHwgYm9vbAoganNvbmIgICAgICB8IG51bWVyaWMg ICAgICAgICAgfCAgICAgMzQ0OSB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX251 bWVyaWMgfCBudW1lcmljCiBqc29uYiAgICAgIHwgc21hbGxpbnQgICAgICAgICB8ICAgICAzNDUw IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwganNvbmJfaW50MiAgICB8IGludDIKIGpzb25i ICAgICAgfCBpbnRlZ2VyICAgICAgICAgIHwgICAgIDM0NTEgfCBlICAgICAgICAgICB8IGYgICAg ICAgICAgfCBqc29uYl9pbnQ0ICAgIHwgaW50NAoganNvbmIgICAgICB8IGJpZ2ludCAgICAgICAg ICAgfCAgICAgMzQ1MiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGpzb25iX2ludDggICAg fCBpbnQ4CiBqc29uYiAgICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAzNDUzIHwgZSAgICAg ICAgICAgfCBmICAgICAgICAgIHwganNvbmJfZmxvYXQ0ICB8IGZsb2F0NAoganNvbmIgICAgICB8 IGRvdWJsZSBwcmVjaXNpb24gfCAgICAgMjU4MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8 IGpzb25iX2Zsb2F0OCAgfCBmbG9hdDgKKDcgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9z dGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1Nmlf NGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMgfCA3 NCArKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDU4 IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9qc29uYi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMKaW5kZXgg MGEzYTc3ZWU3ODYuLjhlYTlmYTFjNzlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmIuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYwpAQCAtMTgxOCw3 ICsxODE4LDcgQEAgSnNvbmJFeHRyYWN0U2NhbGFyKEpzb25iQ29udGFpbmVyICpqYmMsIEpzb25i VmFsdWUgKnJlcykKICAqIEVtaXQgY29ycmVjdCwgdHJhbnNsYXRhYmxlIGNhc3QgZXJyb3IgbWVz c2FnZQogICovCiBzdGF0aWMgdm9pZAotY2Fubm90Q2FzdEpzb25iVmFsdWUoZW51bSBqYnZUeXBl IHR5cGUsIGNvbnN0IGNoYXIgKnNxbHR5cGUpCitjYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpi dlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSwgTm9kZSAqZXNjb250ZXh0KQogewogCXN0 YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CkBAIC0xODM5LDcgKzE4MzksNyBAQCBjYW5ub3RDYXN0SnNv bmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSkKIAogCWZvciAo aSA9IDA7IGkgPCBsZW5ndGhvZihtZXNzYWdlcyk7IGkrKykKIAkJaWYgKG1lc3NhZ2VzW2ldLnR5 cGUgPT0gdHlwZSkKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJy bXNnKG1lc3NhZ2VzW2ldLm1zZywgc3FsdHlwZSkpKTsKIApAQCAtMTg1NCw3ICsxODU0LDEwIEBA IGpzb25iX2Jvb2woUEdfRlVOQ1RJT05fQVJHUykKIAlKc29uYlZhbHVlCXY7CiAKIAlpZiAoIUpz b25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUo di50eXBlLCAiYm9vbGVhbiIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi Ym9vbGVhbiIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJ aWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE4NjMsNyArMTg2NiwxMCBAQCBqc29uYl9i b29sKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZCb29sKQotCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIik7CisJeworCQljYW5ub3RDYXN0 SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVU VVJOX05VTEwoKTsKKwl9CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4sIDApOwogCkBAIC0xODc4LDcg KzE4ODQsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCU51bWVyaWMJCXJl dFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNh bm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiKTsKKwl7CisJCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRV Uk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUgPT0gamJ2TnVsbCkKIAl7CkBAIC0xODg3LDcg KzE4OTYsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2 LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVt ZXJpYyIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJLyoKIAkgKiB2LnZh bC5udW1lcmljIHBvaW50cyBpbnRvIGpzb25iIGJvZHksIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNv cHkgdG8KQEAgLTE5MDgsNyArMTkyMCwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290 LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInNtYWxsaW50Iik7CisJewor CQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIsIGZjaW5mby0+Y29udGV4 dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQog CXsKQEAgLTE5MTcsNyArMTkzMiwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ fQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2 LnR5cGUsICJzbWFsbGludCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi c21hbGxpbnQiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAog CXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDIsCiAJCQkJCQkJCSAg IE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0xOTM1LDcgKzE5NTMsMTAgQEAg anNvbmJfaW50NChQR19GVU5DVElPTl9BUkdTKQogCURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICgh SnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1 ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUs ICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAK IAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMTk0NCw3ICsxOTY1LDEwIEBAIGpzb25i X2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMp Ci0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiLCBmY2luZm8tPmNvbnRleHQpOworCQlQ R19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShu dW1lcmljX2ludDQsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7 CkBAIC0xOTYyLDcgKzE5ODYsMTAgQEAganNvbmJfaW50OChQR19GVU5DVElPTl9BUkdTKQogCURh dHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYp KQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdpbnQiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBH X1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE5 NzEsNyArMTk5OCwxMCBAQCBqc29uYl9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYg KHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJi aWdpbnQiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBE aXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERh dHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTE5ODksNyArMjAxOSwxMCBAQCBqc29uYl9mbG9hdDQo UEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAoIUpzb25iRXh0cmFj dFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi cmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5m by0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBq YnZOdWxsKQogCXsKQEAgLTE5OTgsNyArMjAzMSwxMCBAQCBqc29uYl9mbG9hdDQoUEdfRlVOQ1RJ T05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgInJlYWwiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYu dHlwZSwgInJlYWwiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0K IAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0NCwKIAkJCQkJ CQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIwMTYsNyArMjA1Miwx MCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAK IAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIpOworCXsKKwkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIsIGZjaW5mby0+Y29udGV4dCk7CisJ CVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAg LTIwMjUsNyArMjA2NCwxMCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAK IAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVM TCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0 OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKLS0gCjIuMzQu MQoK --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s2p9 RnJvbSA1ZTVhYzgzNjMyYjhhMjZmYmVmNWRhNThlOTE5ZWI0ZTZlYzhhY2ViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjoxNDozNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIx IDE2LzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKICAgICAgIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywg cHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBj LmNhc3RmdW5jCmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIChjYXN0c291cmNlOjpyZWd0eXBlID0n dGltZXN0YW1wJzo6cmVndHlwZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICAg ICAgIGNhc3Rzb3VyY2UgICAgICAgICAgfCAgICAgICAgIGNhc3R0YXJnZXQgICAgICAgICAgfCBj YXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICAgICBwcm9zcmMgICAgICAg ICB8ICAgcHJvbmFtZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIHRpbWVzdGFtcCB3aXRob3V0IHRp bWUgem9uZSB8IGRhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAyMDI5IHwgYSAgICAg ICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX2RhdGUgICAgICAgIHwgZGF0ZQogdGltZXN0 YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZSB3aXRob3V0IHRpbWUgem9uZSAgICAgIHwgICAg IDEzMTYgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXBfdGltZSAgICAgICAg fCB0aW1lCiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aCB0aW1l IHpvbmUgICAgfCAgICAgMjAyOCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFt cF90aW1lc3RhbXB0eiB8IHRpbWVzdGFtcHR6CiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUg fCB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCAgICAgMTk2MSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IHRpbWVzdGFtcF9zY2FsZSAgICAgICB8IHRpbWVzdGFtcAooNCByb3dzKQoK ZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJq UWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAgNyArKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvdGltZXN0YW1wLmMgfCAxMCArKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggYmU1Mjc3N2Q4 OGQuLmEwNTc0NzEwOTlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTEzMzAsNyArMTMzMCwxMCBA QCB0aW1lc3RhbXBfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcAl0aW1lc3RhbXAg PSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCURhdGVBRFQJCXJlc3VsdDsKIAotCXJlc3VsdCA9 IHRpbWVzdGFtcDJkYXRlX3NhZmUodGltZXN0YW1wLCBOVUxMKTsKKwlyZXN1bHQgPSB0aW1lc3Rh bXAyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCiAJUEdf UkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAwOCw3ICsyMDExLDcgQEAgdGltZXN0 YW1wX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVUVVJOX05VTEwoKTsKIAogCWlmICh0 aW1lc3RhbXAydG0odGltZXN0YW1wLCBOVUxMLCB0bSwgJmZzZWMsIE5VTEwsIE5VTEwpICE9IDAp Ci0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAs CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJ CSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKaW5kZXggMDQ4N2Y4NDU3ZjIuLjc0ZGYxM2M2MWM4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jCkBAIC0zNTAsNyArMzUwLDggQEAgdGltZXN0YW1wX3NjYWxlKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAlyZXN1bHQgPSB0aW1lc3RhbXA7CiAKLQlBZGp1c3RUaW1lc3RhbXBGb3JU eXBtb2QoJnJlc3VsdCwgdHlwbW9kLCBOVUxMKTsKKwlpZiAoIUFkanVzdFRpbWVzdGFtcEZvclR5 cG1vZCgmcmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxM KCk7CiAKIAlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC02NDMwLDggKzY0MzEs MTMgQEAgRGF0dW0KIHRpbWVzdGFtcF90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdTKQogewog CVRpbWVzdGFtcAl0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOworCVRpbWVzdGFt cFR6IHJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1FU1RBTVBUWih0aW1lc3RhbXAydGltZXN0YW1w dHoodGltZXN0YW1wKSk7CisJcmVzdWx0ID0gdGltZXN0YW1wMnRpbWVzdGFtcHR6X3NhZmUodGlt ZXN0YW1wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5m by0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fVElNRVNUQU1Q VFoocmVzdWx0KTsKIH0KIAogLyoKLS0gCjIuMzQuMQoK --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Disposition: attachment; filename="v21-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s2m7 RnJvbSA5MjgxMTIzM2FhOTJlYTE2ODBkMWYxYmUyZTM5ZmU5MDAxMjNhN2EzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgOSBEZWMgMjAyNSAxNDozNjozOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIx IDE4LzIzXSByZWZhY3RvcgogZmxvYXRfb3ZlcmZsb3dfZXJyb3IsZmxvYXRfdW5kZXJmbG93X2Vy cm9yLGZsb2F0X3plcm9fZGl2aWRlX2Vycm9yCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5l cy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBt YWlsLmdtYWlsLmNvbQotLS0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYyB8ICAg MiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jIHwgICA0ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvZmxvYXQuYyAgICAgfCAxMDQgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oICAgICAgICAgfCAgMzQgKysrKystLS0t LQogNCBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA3MiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMgYi9jb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKaW5kZXggYzA3NjkxOGZkNDguLmZhNmIzODUyZjkyIDEw MDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKKysrIGIvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0NC5jCkBAIC0xMDEsNyArMTAxLDcgQEAgZmxvYXQ0X2Rp c3QoUEdfRlVOQ1RJT05fQVJHUykKIAogCXIgPSBhIC0gYjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cikpICYmICFpc2luZihhKSAmJiAhaXNpbmYoYikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUNChmYWJz ZihyKSk7CiB9CmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMg Yi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMKaW5kZXggZDczODZlODg1YTIuLjc5 NzE5ZmRiNzI1IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMK KysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jCkBAIC03OSw3ICs3OSw3IEBA IGdidF9mbG9hdDhfZGlzdChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBGbWdySW5mbyAq ZmxpbmZvKQogCiAJciA9IGFyZzEgLSBhcmcyOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYg IWlzaW5mKGFyZzEpICYmICFpc2luZihhcmcyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsK KwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJcmV0dXJuIGZhYnMocik7CiB9CiAKQEAg LTEwOSw3ICsxMDksNyBAQCBmbG9hdDhfZGlzdChQR19GVU5DVElPTl9BUkdTKQogCiAJciA9IGEg LSBiOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYgIWlzaW5mKGEpICYmICFpc2luZihiKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAKIAlQR19SRVRVUk5fRkxPQVQ4KGZhYnMocikpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2Zsb2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRl eCA5NzkyODBlMTQ3OC4uYjg2YTJiMDk3YTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mbG9hdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC04Mywy NSArODMsMjUgQEAgc3RhdGljIHZvaWQgaW5pdF9kZWdyZWVfY29uc3RhbnRzKHZvaWQpOwogICog VGhpcyBkb2VzIG1lYW4gdGhhdCB5b3UgZG9uJ3QgZ2V0IGEgdXNlZnVsIGVycm9yIGxvY2F0aW9u IGluZGljYXRvci4KICAqLwogcGdfbm9pbmxpbmUgdm9pZAotZmxvYXRfb3ZlcmZsb3dfZXJyb3Io dm9pZCkKK2Zsb2F0X292ZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7Ci0J ZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2RlKEVSUkNPREVf TlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUgb3V0IG9mIHJh bmdlOiBvdmVyZmxvdyIpKSk7CiB9CiAKIHBnX25vaW5saW5lIHZvaWQKLWZsb2F0X3VuZGVyZmxv d19lcnJvcih2b2lkKQorZmxvYXRfdW5kZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRl eHQpCiB7Ci0JZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2Rl KEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUg b3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ciKSkpOwogfQogCiBwZ19ub2lubGluZSB2b2lkCi1mbG9h dF96ZXJvX2RpdmlkZV9lcnJvcih2b2lkKQorZmxvYXRfemVyb19kaXZpZGVfZXJyb3Ioc3RydWN0 IE5vZGUgKmVzY29udGV4dCkKIHsKLQllcmVwb3J0KEVSUk9SLAorCWVycnNhdmUoZXNjb250ZXh0 LAogCQkJKGVycmNvZGUoRVJSQ09ERV9ESVZJU0lPTl9CWV9aRVJPKSwKIAkJCSBlcnJtc2coImRp dmlzaW9uIGJ5IHplcm8iKSkpOwogfQpAQCAtMTQ2MCw5ICsxNDYwLDkgQEAgZHNxcnQoUEdfRlVO Q1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHNxcnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjAp ICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5k ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAt MTQ3OSw5ICsxNDc5LDkgQEAgZGNicnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IGNi cnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTYxNywyNCArMTYxNywyNCBAQCBkcG93KFBH X0ZVTkNUSU9OX0FSR1MpCiAJCQkJaWYgKGFic3ggPT0gMS4wKQogCQkJCQlyZXN1bHQgPSAxLjA7 CiAJCQkJZWxzZSBpZiAoYXJnMiA+PSAwLjAgPyAoYWJzeCA+IDEuMCkgOiAoYWJzeCA8IDEuMCkp Ci0JCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCQkJCWVsc2UKLQkJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJCX0KIAkJfQogCQllbHNlIGlmIChlcnJubyA9 PSBFUkFOR0UpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0gMC4wKQotCQkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwp OwogCQl9CiAJCWVsc2UKIAkJewogCQkJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJCQlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAwLjApCi0JCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CQl9CiAJfQogCkBAIC0xNjc0LDE0ICsxNjc0LDE0IEBAIGRleHAoUEdfRlVOQ1RJT05fQVJHUykK IAkJaWYgKHVubGlrZWx5KGVycm5vID09IEVSQU5HRSkpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0g MC4wKQotCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCQl9CiAJCWVsc2UgaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKE5VTEwpOwogCQllbHNlIGlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSkKLQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CX0KIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKQEAgLTE3MTIsOSArMTcxMiw5IEBAIGRs b2cxKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBsb2coYXJnMSk7CiAJaWYgKHVubGlr ZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3Vs dCA9PSAwLjApICYmIGFyZzEgIT0gMS4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQp OwogfQpAQCAtMTc0NSw5ICsxNzQ1LDkgQEAgZGxvZzEwKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAly ZXN1bHQgPSBsb2cxMChhcmcxKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlz aW5mKGFyZzEpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAxLjAp Ci0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVM TCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xNzc4LDcgKzE3NzgsNyBA QCBkYWNvcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gYWNvcyhhcmcxKTsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZs b2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwog fQpAQCAtMTgwOSw3ICsxODA5LDcgQEAgZGFzaW4oUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3Vs dCA9IGFzaW4oYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9v dmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JF VFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE4MzUsNyArMTgzNSw3IEBAIGRhdGFuKFBHX0ZV TkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0gYXRhbihhcmcxKTsKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTg2 MSw3ICsxODYxLDcgQEAgZGF0YW4yKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0g YXRhbjIoYXJnMSwgYXJnMik7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9h dF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBH X1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE5MDIsNyArMTkwMiw3IEBAIGRjb3MoUEdf RlVOQ1RJT05fQVJHUykKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnB1dCBpcyBvdXQgb2YgcmFuZ2UiKSkpOwogCWlmICh1 bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9 CkBAIC0xOTU3LDcgKzE5NTcsNyBAQCBkc2luKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW5w dXQgaXMgb3V0IG9mIHJhbmdlIikpKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0J CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwog CiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjEzNyw3ICsyMTM3LDcgQEAgZGFj b3NkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJlc3VsdCA9IDkwLjAgKyBhc2luZF9xMSgtYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjE3NCw3ICsyMTc0LDcgQEAgZGFzaW5kKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCXJlc3VsdCA9IC1hc2luZF9xMSgtYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVz dWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjIwNiw3ICsyMjA2 LDcgQEAgZGF0YW5kKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gKGF0YW5fYXJnMSAvIGF0 YW5fMV8wKSAqIDQ1LjA7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjI0Miw3ICsyMjQyLDcgQEAgZGF0YW4yZChQ R19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IChhdGFuMl9hcmcxX2FyZzIgLyBhdGFuXzFfMCkg KiA0NS4wOwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9G TE9BVDgocmVzdWx0KTsKIH0KQEAgLTIzNjUsNyArMjM2NSw3IEBAIGRjb3NkKFBHX0ZVTkNUSU9O X0FSR1MpCiAJcmVzdWx0ID0gc2lnbiAqIGNvc2RfcTEoYXJnMSk7CiAKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjQ4 Nyw3ICsyNDg3LDcgQEAgZHNpbmQoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBzaWduICog c2luZF9xMShhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19S RVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNjQ1LDcgKzI2NDUsNyBAQCBkY29zaChQR19G VU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X2luZmluaXR5KCk7CiAKIAlpZiAo dW5saWtlbHkocmVzdWx0ID09IDAuMCkpCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlm bG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7 CiB9CkBAIC0yNjY1LDcgKzI2NjUsNyBAQCBkdGFuaChQR19GVU5DVElPTl9BUkdTKQogCXJlc3Vs dCA9IHRhbmgoYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjc2NSw3ICsyNzY1LDcgQEAgZGVyZihQR19G VU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZihhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNzg1LDcg KzI3ODUsNyBAQCBkZXJmYyhQR19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZmMoYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjgxNCw3ICsyODE0LDcgQEAgZGdhbW1hKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCS8qIFBlciBQT1NJWCwgYW4gaW5wdXQgb2YgLUluZiBjYXVzZXMgYSBkb21haW4gZXJyb3Ig Ki8KIAkJaWYgKGFyZzEgPCAwKQogCQl7Ci0JCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X25hbigp OwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCiAJCX0KIAkJZWxzZQpAQCAtMjgzNiwxMiArMjgz NiwxMiBAQCBkZ2FtbWEoUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGVycm5vICE9IDAgfHwgaXNp bmYocmVzdWx0KSB8fCBpc25hbihyZXN1bHQpKQogCQl7CiAJCQlpZiAocmVzdWx0ICE9IDAuMCkK LQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5V TEwpOwogCQkJZWxzZQotCQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X3Vu ZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJfQogCQllbHNlIGlmIChyZXN1bHQgPT0gMC4wKQotCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJfQogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwpAQCAtMjg3OSw3ICsyODc5LDcgQEAg ZGxnYW1tYShQR19GVU5DVElPTl9BUkdTKQogCSAqIHRvIHJlcG9ydCBvdmVyZmxvdywgYnV0IGl0 IHNob3VsZCBuZXZlciB1bmRlcmZsb3cuCiAJICovCiAJaWYgKGVycm5vID09IEVSQU5HRSB8fCAo aXNpbmYocmVzdWx0KSAmJiAhaXNpbmYoYXJnMSkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVz dWx0KTsKIH0KQEAgLTMwMTksNyArMzAxOSw3IEBAIGZsb2F0OF9jb21iaW5lKFBHX0ZVTkNUSU9O X0FSR1MpCiAJCXRtcCA9IFN4MSAvIE4xIC0gU3gyIC8gTjI7CiAJCVN4eCA9IFN4eDEgKyBTeHgy ICsgTjEgKiBOMiAqIHRtcCAqIHRtcCAvIE47CiAJCWlmICh1bmxpa2VseShpc2luZihTeHgpKSAm JiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3Io KTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCX0KIAogCS8qCkBAIC0zMDg2LDcg KzMwODYsNyBAQCBmbG9hdDhfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGlzaW5mKFN4 KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVzWzFdKSAmJiAh aXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigpOwogCQl9CkBA IC0zMTY5LDcgKzMxNjksNyBAQCBmbG9hdDRfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYg KGlzaW5mKFN4KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVz WzFdKSAmJiAhaXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigp OwogCQl9CkBAIC0zNDM2LDcgKzM0MzYsNyBAQCBmbG9hdDhfcmVncl9hY2N1bShQR19GVU5DVElP Tl9BUkdTKQogCQkJCShpc2luZihTeHkpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1sxXSkg JiYgIWlzaW5mKG5ld3ZhbFgpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1szXSkgJiYgIWlz aW5mKG5ld3ZhbFkpKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlpZiAoaXNpbmYoU3h4KSkKIAkJCQlTeHggPSBnZXRf ZmxvYXQ4X25hbigpOwpAQCAtMzYwOSwxNSArMzYwOSwxNSBAQCBmbG9hdDhfcmVncl9jb21iaW5l KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXRtcDEgPSBTeDEgLyBOMSAtIFN4MiAvIE4yOwogCQlTeHgg PSBTeHgxICsgU3h4MiArIE4xICogTjIgKiB0bXAxICogdG1wMSAvIE47CiAJCWlmICh1bmxpa2Vs eShpc2luZihTeHgpKSAmJiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlTeSA9 IGZsb2F0OF9wbChTeTEsIFN5Mik7CiAJCXRtcDIgPSBTeTEgLyBOMSAtIFN5MiAvIE4yOwogCQlT eXkgPSBTeXkxICsgU3l5MiArIE4xICogTjIgKiB0bXAyICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeXkpKSAmJiAhaXNpbmYoU3l5MSkgJiYgIWlzaW5mKFN5eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlT eHkgPSBTeHkxICsgU3h5MiArIE4xICogTjIgKiB0bXAxICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeHkpKSAmJiAhaXNpbmYoU3h5MSkgJiYgIWlzaW5mKFN4eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlp ZiAoZmxvYXQ4X2VxKEN4MSwgQ3gyKSkKIAkJCUN4ID0gQ3gxOwogCQllbHNlCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApp bmRleCBiMzQwNjc4Y2E5Mi4uZDJlOTg5OTYwYTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApAQCAtMzAsOSArMzAs OSBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IGV4dHJhX2Zsb2F0X2RpZ2l0czsKIC8qCiAgKiBV dGlsaXR5IGZ1bmN0aW9ucyBpbiBmbG9hdC5jCiAgKi8KLXBnX25vcmV0dXJuIGV4dGVybiB2b2lk IGZsb2F0X292ZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxv YXRfdW5kZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxvYXRf emVyb19kaXZpZGVfZXJyb3Iodm9pZCk7CitleHRlcm4gdm9pZCBmbG9hdF9vdmVyZmxvd19lcnJv cihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3VuZGVyZmxvd19l cnJvcihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3plcm9fZGl2 aWRlX2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIGludAlpc19pbmZpbml0 ZShmbG9hdDggdmFsKTsKIGV4dGVybiBmbG9hdDggZmxvYXQ4aW5faW50ZXJuYWwoY2hhciAqbnVt LCBjaGFyICoqZW5kcHRyX3AsCiAJCQkJCQkJCWNvbnN0IGNoYXIgKnR5cGVfbmFtZSwgY29uc3Qg Y2hhciAqb3JpZ19zdHJpbmcsCkBAIC0xMDQsNyArMTA0LDcgQEAgZmxvYXQ0X3BsKGNvbnN0IGZs b2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKyB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMTYsNyArMTE2LDcgQEAgZmxvYXQ4X3Bs KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEg KyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYg IWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxv d19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMjgsNyArMTI4LDcgQEAg ZmxvYXQ0X21pKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3Vs dCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYo dmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9h dF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xNDAsNyAr MTQwLDcgQEAgZmxvYXQ4X21pKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikK IAogCXJlc3VsdCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAm JiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xNTIsOSArMTUyLDkgQEAgZmxvYXQ0X211bChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxv YXQ0IHZhbDIpCiAKIAlyZXN1bHQgPSB2YWwxICogdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZs b3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5 KHJlc3VsdCA9PSAwLjBmKSAmJiB2YWwxICE9IDAuMGYgJiYgdmFsMiAhPSAwLjBmKQotCQlmbG9h dF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJ cmV0dXJuIHJlc3VsdDsKIH0KQEAgLTE2Niw5ICsxNjYsOSBAQCBmbG9hdDhfbXVsKGNvbnN0IGZs b2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKiB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgdmFs MiAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMTc5LDEyICsxNzksMTIgQEAg ZmxvYXQ0X2Rpdihjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJZmxvYXQ0 CQlyZXN1bHQ7CiAKIAlpZiAodW5saWtlbHkodmFsMiA9PSAwLjBmKSAmJiAhaXNuYW4odmFsMSkp Ci0JCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKCk7CisJCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9y KE5VTEwpOwogCXJlc3VsdCA9IHZhbDEgLyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1 bHQpKSAmJiAhaXNpbmYodmFsMSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0 X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wZikgJiYg dmFsMSAhPSAwLjBmICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xOTUsMTIgKzE5NSwxMiBAQCBmbG9hdDhfZGl2KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBm bG9hdDggdmFsMikKIAlmbG9hdDgJCXJlc3VsdDsKIAogCWlmICh1bmxpa2VseSh2YWwyID09IDAu MCkgJiYgIWlzbmFuKHZhbDEpKQotCQlmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcigpOworCQlmbG9h dF96ZXJvX2RpdmlkZV9lcnJvcihOVUxMKTsKIAlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHko cmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJcmV0 dXJuIHJlc3VsdDsKIH0KLS0gCjIuMzQuMQoK --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s2s10 RnJvbSBkMTEzOGU4OGI3YmE0NTAwN2ZkMTJkNzQwMzUyNjkzODliZjhhMmYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MDU6MjYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAxNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlcnZhbCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lIGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1 bmMgYW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbnRlcnZh bCc6OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwg ICAgICAgY2FzdHRhcmdldCAgICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0 aG9kIHwgICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KIGludGVydmFsICAgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25l IHwgICAgIDE0MTkgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF90aW1lICB8 IHRpbWUKIGludGVydmFsICAgfCBpbnRlcnZhbCAgICAgICAgICAgICAgIHwgICAgIDEyMDAgfCBp ICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF9zY2FsZSB8IGludGVydmFsCigyIHJv d3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpj d3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMgICAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC90aW1lc3RhbXAuYyB8IDMgKystCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCBlOGRjOGQyNzZiZi4uYmM0YzY3 Nzc1ZGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAtMjEwNiw3ICsyMTA2LDcgQEAgaW50ZXJ2YWxf dGltZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVBRFQJCXJlc3VsdDsKIAogCWlmIChJTlRFUlZB TF9OT1RfRklOSVRFKHNwYW4pKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+ Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVf T1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgY29udmVydCBpbmZpbml0ZSBpbnRl cnZhbCB0byB0aW1lIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rp bWVzdGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCmluZGV4IDZmOGNm MjljOTEwLi44Y2Q5N2NjYTkyNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rp bWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMTMz Miw3ICsxMzMyLDggQEAgaW50ZXJ2YWxfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQg PSBwYWxsb2Nfb2JqZWN0KEludGVydmFsKTsKIAkqcmVzdWx0ID0gKmludGVydmFsOwogCi0JQWRq dXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0 SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fSU5URVJWQUxfUChyZXN1bHQpOwogfQotLSAK Mi4zNC4xCgo= --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s2z12 RnJvbSAzNGFiY2FmZmQ3YTM2OWJkYjFmMjVjNDIxMjFlN2I0ZmRmZjE1ZWY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MzE6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAxMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ4Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAg fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBkb3VibGUgcHJlY2lzaW9uIHwgYmlnaW50ICAgICB8ICAgICAgNDgzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZHRvaTggICAgICAgICAgfCBpbnQ4CiBkb3VibGUgcHJlY2lzaW9u IHwgc21hbGxpbnQgICB8ICAgICAgMjM3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRv aTIgICAgICAgICAgfCBpbnQyCiBkb3VibGUgcHJlY2lzaW9uIHwgaW50ZWdlciAgICB8ICAgICAg MzE3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRvaTQgICAgICAgICAgfCBpbnQ0CiBk b3VibGUgcHJlY2lzaW9uIHwgcmVhbCAgICAgICB8ICAgICAgMzEyIHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZHRvZiAgICAgICAgICAgfCBmbG9hdDQKIGRvdWJsZSBwcmVjaXNpb24gfCBu dW1lcmljICAgIHwgICAgIDE3NDMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDhf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDEzICsr KysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyB8ICAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKaW5kZXgg ZjY2MzNkZWQwOTIuLjk3OTI4MGUxNDc4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwpAQCAtMTE5OSw5 ICsxMTk5LDE0IEBAIGR0b2YoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IChmbG9hdDQp IG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKG51bSkpCi0JCWZs b2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJ CQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisKIAlpZiAodW5saWtl bHkocmVzdWx0ID09IDAuMGYpICYmIG51bSAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJv cigpOworCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAorCQkJCWVycmNvZGUo RVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBv dXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKIAogCVBHX1JFVFVSTl9GTE9BVDQocmVzdWx0KTsK IH0KQEAgLTEyMjQsNyArMTIyOSw3IEBAIGR0b2k0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBS YW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19J Tl9JTlQzMihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7CiAKQEAgLTEy NDksNyArMTI1NCw3IEBAIGR0b2kyKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVj ayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19JTl9JTlQxNihu dW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1 bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK IAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YwppbmRleCA4ZmQ1NTFiZDUyYi4uMTliYjMwZjJkMGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9pbnQ4LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYwpAQCAt MTMwNyw3ICsxMzA3LDcgQEAgZHRvaTgoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNo ZWNrICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUOF9GSVRTX0lOX0lOVDY0 KG51bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwppbmRleCA5MTYwNTMwMDdlYS4uNWMyZTEyZmU3OGUgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwpAQCAtNDU1OSw3ICs0NTU5LDggQEAgZmxvYXQ4X251bWVyaWMoUEdfRlVOQ1RJT05f QVJHUykKIAlpbml0X3ZhcigmcmVzdWx0KTsKIAogCS8qIEFzc3VtZSB3ZSBuZWVkIG5vdCB3b3Jy eSBhYm91dCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNlcyAqLwotCSh2b2lkKSBzZXRfdmFyX2Zyb21f c3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBOVUxMKTsKKwlpZiAoIXNldF92YXJfZnJv bV9zdHIoYnVmLCBidWYsICZyZXN1bHQsICZlbmRwdHIsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlyZXMgPSBtYWtlX3Jlc3VsdCgmcmVzdWx0KTsKIAotLSAKMi4z NC4xCgo= --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s2w11 RnJvbSBmY2VhMzBiZGMzNmRhZDg1Yjg0NDNmODEwYWU1NDEyNDJiMDIxYmUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMzoxNTozMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjIx IDEzLzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGRhdGUgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZGF0ZSc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCmNhc3Rzb3VyY2UgfCAgICAgICAgIGNh c3R0YXJnZXQgICAgICAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 ICAgICAgcHJvc3JjICAgICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0 aG91dCB0aW1lIHpvbmUgfCAgICAgMjAyNCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRh dGVfdGltZXN0YW1wICAgfCB0aW1lc3RhbXAKIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0aCB0 aW1lIHpvbmUgICAgfCAgICAgMTE3NCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRhdGVf dGltZXN0YW1wdHogfCB0aW1lc3RhbXB0egooMiByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2 aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIHwg MTcgKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IDYyMWI5MTc1YzEyLi5lOGRjOGQy NzZiZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC03MzAsMTUgKzczMCw2IEBAIGRhdGUydGltZXN0 YW1wdHpfc2FmZShEYXRlQURUIGRhdGVWYWwsIE5vZGUgKmVzY29udGV4dCkKIAlyZXR1cm4gcmVz dWx0OwogfQogCi0vKgotICogUHJvbW90ZSBkYXRlIHRvIHRpbWVzdGFtcHR6LCB0aHJvd2luZyBl cnJvciBmb3Igb3ZlcmZsb3cuCi0gKi8KLXN0YXRpYyBUaW1lc3RhbXBUegotZGF0ZTJ0aW1lc3Rh bXB0eihEYXRlQURUIGRhdGVWYWwpCi17Ci0JcmV0dXJuIGRhdGUydGltZXN0YW1wdHpfc2FmZShk YXRlVmFsLCBOVUxMKTsKLX0KLQogLyoKICAqIGRhdGUydGltZXN0YW1wX25vX292ZXJmbG93CiAg KgpAQCAtMTMyMyw3ICsxMzE0LDkgQEAgZGF0ZV90aW1lc3RhbXAoUEdfRlVOQ1RJT05fQVJHUykK IAlEYXRlQURUCQlkYXRlVmFsID0gUEdfR0VUQVJHX0RBVEVBRFQoMCk7CiAJVGltZXN0YW1wCXJl c3VsdDsKIAotCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wKGRhdGVWYWwpOworCXJlc3VsdCA9IGRh dGUydGltZXN0YW1wX3NhZmUoZGF0ZVZhbCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZihTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQ R19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC0xMzk2LDcgKzEzODksOSBAQCBkYXRl X3RpbWVzdGFtcHR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dF VEFSR19EQVRFQURUKDApOwogCVRpbWVzdGFtcFR6IHJlc3VsdDsKIAotCXJlc3VsdCA9IGRhdGUy dGltZXN0YW1wdHooZGF0ZVZhbCk7CisJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXB0el9zYWZlKGRh dGVWYWwsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVAo cmVzdWx0KTsKIH0KLS0gCjIuMzQuMQoK --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s3213 RnJvbSBjMDYxMDhjYzY4YjY4MWE4OTQ0ZDYyZGNmNTBjNzcxYjUyZGZjOGE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6Mjg6MjAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAxMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ0Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiByZWFsICAgICAgIHwgYmlnaW50ICAgICAgICAgICB8ICAgICAgNjUzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZnRvaTggICAgICAgICAgfCBpbnQ4CiByZWFsICAgICAgIHwgc21h bGxpbnQgICAgICAgICB8ICAgICAgMjM4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRv aTIgICAgICAgICAgfCBpbnQyCiByZWFsICAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAg MzE5IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRvaTQgICAgICAgICAgfCBpbnQ0CiBy ZWFsICAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzExIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZnRvZCAgICAgICAgICAgfCBmbG9hdDgKIHJlYWwgICAgICAgfCBudW1lcmlj ICAgICAgICAgIHwgICAgIDE3NDIgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDRf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDQgKyst LQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9udW1lcmljLmMgfCAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zs b2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRleCA2NDFlN2RlMjFhMC4u ZjY2MzNkZWQwOTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC0xMjk4LDcgKzEyOTgsNyBAQCBm dG9pNChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtl bHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW50 ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMzIzLDcgKzEzMjMsNyBAQCBmdG9pMihQR19G VU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4o bnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJ CWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggZGEzOTIxODk3NDMuLjhmZDU1 MWJkNTJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEzNDIsNyArMTM0Miw3IEBAIGZ0b2k4KFBH X0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25h bihudW0pIHx8ICFGTE9BVDRfRklUU19JTl9JTlQ2NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwK KwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJD T0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVy aWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKaW5kZXggZDY2ZmI4NjY2MmYu LjkxNjA1MzAwN2VhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKQEAgLTQ2NTcsNyArNDY1Nyw4 IEBAIGZsb2F0NF9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnJlc3VsdCk7 CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBub3Qgd29ycnkgYWJvdXQgbGVhZGluZy90cmFpbGluZyBz cGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zhcl9mcm9tX3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVu ZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRfdmFyX2Zyb21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAm ZW5kcHRyLCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJcmVzID0g bWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAKLS0gCjIuMzQuMQoK --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s3414 RnJvbSBiZjUwMjRiNzM0NjY1NjNmYTAzYzY0MDFlMzFmZDg5Yzg3ZThlMjViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjU6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAxMC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBudW1lcmljIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ251bWVyaWMn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgpjYXN0c291cmNlIHwgICAg Y2FzdHRhcmdldCAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAg IHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLQogbnVtZXJpYyAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgMTc3OSB8IGEgICAgICAg ICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50OCAgIHwgaW50OAogbnVtZXJpYyAgICB8IHNt YWxsaW50ICAgICAgICAgfCAgICAgMTc4MyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51 bWVyaWNfaW50MiAgIHwgaW50MgogbnVtZXJpYyAgICB8IGludGVnZXIgICAgICAgICAgfCAgICAg MTc0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IG51bWVyaWNfaW50NCAgIHwgaW50NAog bnVtZXJpYyAgICB8IHJlYWwgICAgICAgICAgICAgfCAgICAgMTc0NSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IG51bWVyaWNfZmxvYXQ0IHwgZmxvYXQ0CiBudW1lcmljICAgIHwgZG91Ymxl IHByZWNpc2lvbiB8ICAgICAxNzQ2IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbnVtZXJp Y19mbG9hdDggfCBmbG9hdDgKIG51bWVyaWMgICAgfCBtb25leSAgICAgICAgICAgIHwgICAgIDM4 MjQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBudW1lcmljX2Nhc2ggICB8IG1vbmV5CiBu dW1lcmljICAgIHwgbnVtZXJpYyAgICAgICAgICB8ICAgICAxNzAzIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgbnVtZXJpYyAgICAgICAgfCBudW1lcmljCig3IHJvd3MpCgpkaXNjdXNzaW9u OiBodHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhIQ016ckhPVz13UmU4TDMwck1oQjNzandBdjFM RTkyOEZhN3N4TXUxVHgtZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC9udW1lcmljLmMgfCA1OCArKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwppbmRleCBkMjViOGFkNTA1ZC4uZDY2ZmI4NjY2MmYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwpAQCAtMTI0NCw3ICsxMjQ0LDggQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FS R1MpCiAJICovCiAJaWYgKE5VTUVSSUNfSVNfU1BFQ0lBTChudW0pKQogCXsKLQkJKHZvaWQpIGFw cGx5X3R5cG1vZF9zcGVjaWFsKG51bSwgdHlwbW9kLCBOVUxMKTsKKwkJaWYgKCFhcHBseV90eXBt b2Rfc3BlY2lhbChudW0sIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CiAJCVBHX1JFVFVSTl9OVU1FUklDKGR1cGxpY2F0ZV9udW1lcmljKG51bSkpOwogCX0K IApAQCAtMTI5NSw4ICsxMjk2LDkgQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5p dF92YXIoJnZhcik7CiAKIAlzZXRfdmFyX2Zyb21fbnVtKG51bSwgJnZhcik7Ci0JKHZvaWQpIGFw cGx5X3R5cG1vZCgmdmFyLCB0eXBtb2QsIE5VTEwpOwotCW5ldyA9IG1ha2VfcmVzdWx0KCZ2YXIp OworCWlmICghYXBwbHlfdHlwbW9kKCZ2YXIsIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJ UEdfUkVUVVJOX05VTEwoKTsKKwluZXcgPSBtYWtlX3Jlc3VsdF9zYWZlKCZ2YXIsIGZjaW5mby0+ Y29udGV4dCk7CiAKIAlmcmVlX3ZhcigmdmFyKTsKIApAQCAtMzAxOCw3ICszMDIwLDEwIEBAIG51 bWVyaWNfbXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTnVtZXJpYwkJbnVtMiA9IFBHX0dFVEFSR19O VU1FUklDKDEpOwogCU51bWVyaWMJCXJlczsKIAotCXJlcyA9IG51bWVyaWNfbXVsX3NhZmUobnVt MSwgbnVtMiwgTlVMTCk7CisJcmVzID0gbnVtZXJpY19tdWxfc2FmZShudW0xLCBudW0yLCBmY2lu Zm8tPmNvbnRleHQpOworCisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fTlVNRVJJQyhy ZXMpOwogfQpAQCAtNDM5Miw5ICs0Mzk3LDE1IEBAIG51bWVyaWNfaW50NF9zYWZlKE51bWVyaWMg bnVtLCBOb2RlICplc2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ0KFBHX0ZVTkNUSU9OX0FS R1MpCiB7CisJaW50MzIJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJ QygwKTsKIAotCVBHX1JFVFVSTl9JTlQzMihudW1lcmljX2ludDRfc2FmZShudW0sIE5VTEwpKTsK KwlyZXN1bHQgPSBudW1lcmljX2ludDRfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlp ZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdf UkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9JTlQzMihyZXN1bHQpOwogfQogCiAvKgpAQCAt NDQ2Miw5ICs0NDczLDE1IEBAIG51bWVyaWNfaW50OF9zYWZlKE51bWVyaWMgbnVtLCBOb2RlICpl c2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CisJaW50 NjQJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJQygwKTsKIAotCVBH X1JFVFVSTl9JTlQ2NChudW1lcmljX2ludDhfc2FmZShudW0sIE5VTEwpKTsKKwlyZXN1bHQgPSBu dW1lcmljX2ludDhfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHko U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwo KTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCiAKQEAgLTQ0ODgsMTEgKzQ1MDUs MTEgQEAgbnVtZXJpY19pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKE5VTUVSSUNfSVNfU1BF Q0lBTChudW0pKQogCXsKIAkJaWYgKE5VTUVSSUNfSVNfTkFOKG51bSkpCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBOYU4gdG8gJXMiLCAic21hbGxpbnQiKSkpOwogCQllbHNlCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBpbmZpbml0eSB0byAlcyIsICJzbWFsbGludCIpKSk7CiAJfQpAQCAtNDUwMSwxMiAr NDUxOCwxMiBAQCBudW1lcmljX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAlpbml0X3Zhcl9mcm9t X251bShudW0sICZ4KTsKIAogCWlmICghbnVtZXJpY3Zhcl90b19pbnQ2NCgmeCwgJnZhbCkpCi0J CWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAogCWlmICh1bmxpa2VseSh2YWwgPCBQ R19JTlQxNl9NSU4pIHx8IHVubGlrZWx5KHZhbCA+IFBHX0lOVDE2X01BWCkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21h bGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtNDU3MSwxMCArNDU4OCwxNCBAQCBudW1lcmlj X2Zsb2F0OChQR19GVU5DVElPTl9BUkdTKQogCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVj dEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVt KG51bSkpKTsKLQotCXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ4aW4sIENTdHJp bmdHZXREYXR1bSh0bXApKTsKLQotCXBmcmVlKHRtcCk7CisJaWYgKCFEaXJlY3RJbnB1dEZ1bmN0 aW9uQ2FsbFNhZmUoZmxvYXQ4aW4sIHRtcCwKKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAtMSwKKwkJ CQkJCQkJCSAoTm9kZSAqKSBmY2luZm8tPmNvbnRleHQsCisJCQkJCQkJCQkgJnJlc3VsdCkpCisJ eworCQlwZnJlZSh0bXApOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9E QVRVTShyZXN1bHQpOwogfQpAQCAtNDY2Niw3ICs0Njg3LDE0IEBAIG51bWVyaWNfZmxvYXQ0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2Fs bDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVtKG51bSkpKTsKIAot CXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ0aW4sIENTdHJpbmdHZXREYXR1bSh0 bXApKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShmbG9hdDRpbiwgdG1wLAor CQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopIGZjaW5mby0+Y29u dGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7CisJCXBmcmVlKHRtcCk7CisJCVBHX1JFVFVS Tl9OVUxMKCk7CisJfQogCiAJcGZyZWUodG1wKTsKIAotLSAKMi4zNC4xCgo= --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s3615 RnJvbSA0NzFmOWVmYmUzNjNjMTU5MjEwNmMzMTVjMjE0ODQzNGY0NjQ5MDM0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjI6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAwOS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaWdpbnQgdG8gb3RoZXIgdHlwZXMgcGVy 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 OHRvZiwgaTh0b2QsIGludDhfbnVtZXJpYywgaW50OF9ieXRlYSwgYml0ZnJvbWludDgKZGlzY3Vz c2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZp c2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGls cy9hZHQvaW50OC5jIHwgNiArKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlvbnMoKyks IDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggNmM4ZmI3YjcyNzUuLmRhMzky MTg5NzQzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEyNTEsNyArMTI1MSw3IEBAIGludDg0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsKIAogCWlm ICh1bmxpa2VseShhcmcgPCBQR19JTlQzMl9NSU4pIHx8IHVubGlrZWx5KGFyZyA+IFBHX0lOVDMy X01BWCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0 dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMjcyLDcgKzEy NzIsNyBAQCBpbnQ4MihQR19GVU5DVElPTl9BUkdTKQogCWludDY0CQlhcmcgPSBQR19HRVRBUkdf SU5UNjQoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnIDwgUEdfSU5UMTZfTUlOKSB8fCB1bmxpa2Vs eShhcmcgPiBQR19JTlQxNl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTEzNTUsNyArMTM1NSw3IEBAIGk4dG9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2 NAkJYXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IDApIHx8 IHVubGlrZWx5KGFyZyA+IFBHX1VJTlQzMl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0 dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVN RVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coIk9JRCBvdXQgb2YgcmFuZ2Ui KSkpOwogCi0tIAoyLjM0LjEKCg== --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s3816 RnJvbSAwMjEwNWIyZWZlNTc2Y2RlNTk5NTNhOTgzYTRlMmU4MTMwNTc1Y2Q2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjA6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAwOC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlZ2VyIHRvIG90aGVyIHR5cGVzIHBl 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 b3JpbmcuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZh LWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMgfCAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQv aW50LmMgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2NoYXIuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKaW5kZXggM2U0ZGVmNjhmZTQuLjY5ODg2MzkyNGVlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvY2hhci5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9jaGFyLmMKQEAgLTE5Miw3ICsxOTIsNyBAQCBpNHRvY2hhcihQR19GVU5DVElP Tl9BUkdTKQogCWludDMyCQlhcmcxID0gUEdfR0VUQVJHX0lOVDMyKDApOwogCiAJaWYgKGFyZzEg PCBTQ0hBUl9NSU4gfHwgYXJnMSA+IFNDSEFSX01BWCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJcImNoYXJcIiBvdXQgb2Yg cmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5kZXggZmY1NGQ1MGVhOWQuLjRjODk0YTQ5ZDVk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNzksNyArMzc5LDcgQEAgaTR0b2kyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRBUkdfSU5UMzIoMCk7CiAKIAlpZiAodW5saWtl bHkoYXJnMSA8IFNIUlRfTUlOKSB8fCB1bmxpa2VseShhcmcxID4gU0hSVF9NQVgpKQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2co InNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Disposition: attachment; filename="v21-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s3d19 RnJvbSA4OWViMWU1OGY3NTM3OGM4ODRmOWY5ZDY3ZGE5ODA2MjE2M2NlOWU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MTM6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAwNS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdmFyeWluZyB0byBvdGhl cgogdHlwZXMgcGVyIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFy Z2V0OjpyZWd0eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMgYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQKKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSAnY2hhcmFjdGVyIHZhcnlpbmcnOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0 eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAgIHwgICAgY2FzdHRhcmdldCAgICAgfCBjYXN0ZnVuYyB8 IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCiBjaGFyYWN0ZXIgdmFy eWluZyB8IHJlZ2NsYXNzICAgICAgICAgIHwgICAgIDEwNzkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCB0ZXh0X3JlZ2NsYXNzIHwgcmVnY2xhc3MKIGNoYXJhY3RlciB2YXJ5aW5nIHwgImNo YXIiICAgICAgICAgICAgfCAgICAgIDk0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRl eHRfY2hhciAgICAgfCBjaGFyCiBjaGFyYWN0ZXIgdmFyeWluZyB8IG5hbWUgICAgICAgICAgICAg IHwgICAgIDE0MDAgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X25hbWUgICAgIHwg bmFtZQogY2hhcmFjdGVyIHZhcnlpbmcgfCB4bWwgICAgICAgICAgICAgICB8ICAgICAyODk2IHwg ZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgICB8IHhtbAogY2hhcmFjdGVy IHZhcnlpbmcgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgNjY5IHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgdmFyY2hhciAgICAgICB8IHZhcmNoYXIKKDUgcm93cykKCnRleHR0b3htbCwg dGV4dF9yZWdjbGFzcyB3YXMgcmVmYWN0b3JlZCBhcyBlcnJvciBzYWZlIGluIHByaW9yIHBhdGNo Lgp0ZXh0X2NoYXIsIHRleHRfbmFtZSBpcyBhbHJlYWR5IGVycm9yIHNhZmUuCnNvIGhlcmUgd2Ug b25seSBuZWVkIGhhbmRsZSBmdW5jdGlvbiAidmFyY2hhciIuCgpkaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2 NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFy LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCA2ZjA4Mzk3M2ZlNy4uYTYyZTU1ZWVjMTkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtNjM0LDcgKzYzNCw3IEBAIHZhcmNoYXIoUEdfRlVO Q1RJT05fQVJHUykKIAl7CiAJCWZvciAoaSA9IG1heG1ibGVuOyBpIDwgbGVuOyBpKyspCiAJCQlp ZiAoc19kYXRhW2ldICE9ICcgJykKLQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNp bmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJIGVycm1zZygidmFsdWUgdG9vIGxvbmcgZm9y IHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoJWQpIiwKIAkJCQkJCQkJbWF4bGVuKSkpOwotLSAKMi4z NC4xCgo= --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s3917 RnJvbSBlYTkwYTA1NWUwYzU2MjdkOGQ0OTU0ZTM0NzEwY2VmYjgyMGUxOGJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MDM6MDYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAwNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBtYWNhZGRyOCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J21hY2FkZHI4 Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBj YXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgIHBy b3NyYyAgICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t CiBtYWNhZGRyOCAgIHwgbWFjYWRkciAgICB8ICAgICA0MTI0IHwgaSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgbWFjYWRkcjh0b21hY2FkZHIgfCBtYWNhZGRyCigxIHJvdykKCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L21hYzguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWM4LmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IGMxYmY5ZmQ1NzgzLi4wNDI1ZWE0NzNhNSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUwLDcgQEAgbWFjYWRkcjh0b21hY2FkZHIoUEdf RlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBwYWxsb2MwX29iamVjdChtYWNhZGRyKTsKIAogCWlm ICgoYWRkci0+ZCAhPSAweEZGKSB8fCAoYWRkci0+ZSAhPSAweEZFKSkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJtYWNhZGRy OCBkYXRhIG91dCBvZiByYW5nZSB0byBjb252ZXJ0IHRvIG1hY2FkZHIiKSwKIAkJCQkgZXJyaGlu dCgiT25seSBhZGRyZXNzZXMgdGhhdCBoYXZlIEZGIGFuZCBGRSBhcyB2YWx1ZXMgaW4gdGhlICIK LS0gCjIuMzQuMQoK --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s3b18 RnJvbSA2Yjg4OWU4OWFmOTU2Zjg1N2JiYzg3ZGI0ODlhYzcwMGQ1MDBkOWU3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6Mjg6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAwNi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbmV0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2luZXQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9z cmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBp bmV0ICAgICAgIHwgY2lkciAgICAgICAgICAgICAgfCAgICAgMTcxNSB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGluZXRfdG9fY2lkciB8IGNpZHIKIGluZXQgICAgICAgfCB0ZXh0ICAgICAg ICAgICAgICB8ICAgICAgNzMwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19z aG93IHwgdGV4dAogaW5ldCAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICA3MzAgfCBh ICAgICAgICAgICB8IGYgICAgICAgICAgfCBuZXR3b3JrX3Nob3cgfCB0ZXh0CiBpbmV0ICAgICAg IHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAg ICB8IG5ldHdvcmtfc2hvdyB8IHRleHQKKDQgcm93cykKCmluZXRfdG9fY2lkciBpcyBhbHJlYWR5 IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFK Zlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQot LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrLmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbmV0d29yay5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpp bmRleCAzYTIwMDIwOTdkZC4uYzdlMDgyODc2NGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9uZXR3b3JrLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpA QCAtMTEzNyw3ICsxMTM3LDcgQEAgbmV0d29ya19zaG93KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlp ZiAocGdfaW5ldF9uZXRfbnRvcChpcF9mYW1pbHkoaXApLCBpcF9hZGRyKGlwKSwgaXBfbWF4Yml0 cyhpcCksCiAJCQkJCQkgdG1wLCBzaXplb2YodG1wKSkgPT0gTlVMTCkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFUSU9OKSwKIAkJCQkgZXJybXNnKCJjb3Vs ZCBub3QgZm9ybWF0IGluZXQgdmFsdWU6ICVtIikpKTsKIAotLSAKMi4zNC4xCgo= --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s3i21 RnJvbSBiMmE3YmE2M2NiMDdjZjI3YTJkODg0MGI4ZTYyOTZkNmQwMzQ2YzEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6MzM6MDggKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAwMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaXQvdmFyYml0IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKd2hlcmUgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlw ZSA9J2JpdCc6OnJlZ3R5cGUgb3IKY2FzdHNvdXJjZTo6cmVndHlwZSA9J3ZhcmJpdCc6OnJlZ3R5 cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSAgfCBjYXN0dGFy Z2V0ICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJpdCAgICAgICAgIHwgYmln aW50ICAgICAgfCAgICAgMjA3NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50 OCB8IGludDgKIGJpdCAgICAgICAgIHwgaW50ZWdlciAgICAgfCAgICAgMTY4NCB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50NCB8IGludDQKIGJpdCAgICAgICAgIHwgYml0ICAg ICAgICAgfCAgICAgMTY4NSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdCAgICAgICB8 IGJpdAogYml0IHZhcnlpbmcgfCBiaXQgdmFyeWluZyB8ICAgICAxNjg3IHwgaSAgICAgICAgICAg fCBmICAgICAgICAgIHwgdmFyYml0ICAgIHwgdmFyYml0Cig0IHJvd3MpCgpkaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1 M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92 YXJiaXQuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCmluZGV4IDY1YWQxYmZlMThmLi5jNDZi NWJhZTcwZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQuYwpAQCAtNDAxLDcgKzQwMSw3IEBAIGJpdChQ R19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fVkFSQklUX1AoYXJnKTsKIAogCWlmICghaXNF eHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRD SCksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyBsZW5ndGggJWQgZG9lcyBub3QgbWF0Y2ggdHlw ZSBiaXQoJWQpIiwKIAkJCQkJCVZBUkJJVExFTihhcmcpLCBsZW4pKSk7CkBAIC03NTIsNyArNzUy LDcgQEAgdmFyYml0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JFVFVSTl9WQVJCSVRfUChhcmcp OwogCiAJaWYgKCFpc0V4cGxpY2l0KQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFf UklHSFRfVFJVTkNBVElPTiksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyB0b28gbG9uZyBmb3Ig dHlwZSBiaXQgdmFyeWluZyglZCkiLAogCQkJCQkJbGVuKSkpOwpAQCAtMTU5MSw3ICsxNTkxLDcg QEAgYml0dG9pbnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQg c3RyaW5nIGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihy ZXN1bHQpICogQklUU19QRVJfQllURSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFM VUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTE2NzEsNyArMTY3MSw3IEBAIGJpdHRvaW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJ LyogQ2hlY2sgdGhhdCB0aGUgYml0IHN0cmluZyBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAoVkFS QklUTEVOKGFyZykgPiBzaXplb2YocmVzdWx0KSAqIEJJVFNfUEVSX0JZVEUpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiYmln aW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s3f20 RnJvbSBkYTAyNjAzNjg0MzM0OWY3MzJiZGM0ZDYyYWMxMGZkODhkN2M0YjU0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgMTIgTWFyIDIwMjYgMDk6Mzg6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAwNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyB0ZXh0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ3RleHQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0YXJn ZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAg fCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogdGV4dCAgICAgICB8 IHJlZ2NsYXNzICAgfCAgICAgMTA3OSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRf cmVnY2xhc3MgfCByZWdjbGFzcwogdGV4dCAgICAgICB8ICJjaGFyIiAgICAgfCAgICAgIDk0NCB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgICAgfCBjaGFyCiB0ZXh0ICAg ICAgIHwgbmFtZSAgICAgICB8ICAgICAgNDA3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwg dGV4dF9uYW1lICAgICB8IG5hbWUKIHRleHQgICAgICAgfCB4bWwgICAgICAgIHwgICAgIDI4OTYg fCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0dG94bWwgICAgIHwgeG1sCig0IHJvd3Mp CgphbHJlYWR5IGVycm9yIHNhZmU6IHRleHRfbmFtZSwgdGV4dF9jaGFyLgp0ZXh0dG94bWwgaXMg cmVmYWN0b3JlZCBpbiBjaGFyYWN0ZXIgdHlwZSBlcnJvciBzYWZlIHBhdGNoLgoKZGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tR OGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9n L25hbWVzcGFjZS5jIHwgNTggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jIHwgMTMgKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC92YXJsZW5hLmMgfCAxMCArKysrLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNw YWNlLmggfCAgNiArKysrCiBzcmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmggICAgIHwgIDEgKwog NSBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9uYW1lc3BhY2UuYwppbmRleCA1NmI4N2Q4NzhlOC4uMTljOGI1ODZiNTUgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9uYW1lc3BhY2UuYwpAQCAtNDQyLDYgKzQ0MiwxNiBAQCBPaWQKIFJhbmdlVmFyR2V0UmVs aWRFeHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAog CQkJCQkJIHVpbnQzMiBmbGFncywKIAkJCQkJCSBSYW5nZVZhckdldFJlbGlkQ2FsbGJhY2sgY2Fs bGJhY2ssIHZvaWQgKmNhbGxiYWNrX2FyZykKK3sKKwlyZXR1cm4gUmFuZ2VWYXJHZXRSZWxpZEV4 dGVuZGVkU2FmZShyZWxhdGlvbiwgbG9ja21vZGUsIGZsYWdzLAorCQkJCQkJCQkJCWNhbGxiYWNr LCBjYWxsYmFja19hcmcsCisJCQkJCQkJCQkJTlVMTCk7Cit9CisKK09pZAorUmFuZ2VWYXJHZXRS ZWxpZEV4dGVuZGVkU2FmZShjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2tt b2RlLCB1aW50MzIgZmxhZ3MsCisJCQkJCQkJIFJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxs YmFjaywgdm9pZCAqY2FsbGJhY2tfYXJnLAorCQkJCQkJCSBOb2RlICplc2NvbnRleHQpCiB7CiAJ dWludDY0CQlpbnZhbF9jb3VudDsKIAlPaWQJCQlyZWxJZDsKQEAgLTQ1OCw3ICs0NjgsNyBAQCBS YW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLCBMT0NLTU9E RSBsb2NrbW9kZSwKIAlpZiAocmVsYXRpb24tPmNhdGFsb2duYW1lKQogCXsKIAkJaWYgKHN0cmNt cChyZWxhdGlvbi0+Y2F0YWxvZ25hbWUsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkp ICE9IDApCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRP aWQsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkJ IGVycm1zZygiY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBc IiVzLiVzLiVzXCIiLAogCQkJCQkJCXJlbGF0aW9uLT5jYXRhbG9nbmFtZSwgcmVsYXRpb24tPnNj aGVtYW5hbWUsCkBAIC01MTUsNyArNTI1LDcgQEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNv bnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJCQkJCSAqIHJldHVy biBJbnZhbGlkT2lkLgogCQkJCQkgKi8KIAkJCQkJaWYgKG5hbWVzcGFjZUlkICE9IG15VGVtcE5h bWVzcGFjZSkKLQkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcmV0dXJuKGVzY29udGV4dCwg SW52YWxpZE9pZCwKIAkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RBQkxFX0RFRklO SVRJT04pLAogCQkJCQkJCQkgZXJybXNnKCJ0ZW1wb3JhcnkgdGFibGVzIGNhbm5vdCBzcGVjaWZ5 IGEgc2NoZW1hIG5hbWUiKSkpOwogCQkJCX0KQEAgLTU5NSwxMyArNjA1LDIzIEBAIFJhbmdlVmFy R2V0UmVsaWRFeHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2tt b2RlLAogCQl7CiAJCQlpbnQJCQllbGV2ZWwgPSAoZmxhZ3MgJiBSVlJfU0tJUF9MT0NLRUQpID8g REVCVUcxIDogRVJST1I7CiAKLQkJCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSkKLQkJCQllcmVw b3J0KGVsZXZlbCwKKwkJCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSAmJiBlbGV2ZWwgPT0gREVC VUcxKQorCQkJCWVyZXBvcnQoREVCVUcxLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9MT0NLX05P VF9BVkFJTEFCTEUpLAogCQkJCQkJIGVycm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJl bGF0aW9uIFwiJXMuJXNcIiIsCiAJCQkJCQkJCXJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlv bi0+cmVsbmFtZSkpKTsKLQkJCWVsc2UKLQkJCQllcmVwb3J0KGVsZXZlbCwKKwkJCWVsc2UgaWYg KHJlbGF0aW9uLT5zY2hlbWFuYW1lICYmIGVsZXZlbCA9PSBFUlJPUikKKwkJCQllcmV0dXJuKGVz Y29udGV4dCwgSW52YWxpZE9pZCwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJ TEFCTEUpLAorCQkJCQkJZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24g XCIlcy4lc1wiIiwKKwkJCQkJCQkgICByZWxhdGlvbi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJl bG5hbWUpKTsKKwkJCWVsc2UgaWYgKGVsZXZlbCA9PSBERUJVRzEpCisJCQkJZXJlcG9ydChERUJV RzEsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfTE9DS19OT1RfQVZBSUxBQkxFKSwKKwkJCQkJCWVy cm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9uIFwiJXNcIiIsCisJCQkJCQkJ ICAgcmVsYXRpb24tPnJlbG5hbWUpKTsKKwkJCWVsc2UgaWYgKGVsZXZlbCA9PSBFUlJPUikKKwkJ CQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVf TE9DS19OT1RfQVZBSUxBQkxFKSwKIAkJCQkJCSBlcnJtc2coImNvdWxkIG5vdCBvYnRhaW4gbG9j ayBvbiByZWxhdGlvbiBcIiVzXCIiLAogCQkJCQkJCQlyZWxhdGlvbi0+cmVsbmFtZSkpKTsKQEAg LTYyOCwxMyArNjQ4LDIzIEBAIFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChjb25zdCBSYW5nZVZh ciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAogCXsKIAkJaW50CQkJZWxldmVsID0gbWlz c2luZ19vayA/IERFQlVHMSA6IEVSUk9SOwogCi0JCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSkK LQkJCWVyZXBvcnQoZWxldmVsLAorCQlpZiAocmVsYXRpb24tPnNjaGVtYW5hbWUgJiYgZWxldmVs ID09IERFQlVHMSkKKwkJCWVyZXBvcnQoREVCVUcxLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9UQUJMRSksCiAJCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXMuJXNcIiBkb2VzIG5v dCBleGlzdCIsCiAJCQkJCQkJcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1l KSkpOwotCQllbHNlCi0JCQllcmVwb3J0KGVsZXZlbCwKKwkJZWxzZSBpZiAocmVsYXRpb24tPnNj aGVtYW5hbWUgJiYgZWxldmVsID09IEVSUk9SKQorCQkJZXJldHVybihlc2NvbnRleHQsIEludmFs aWRPaWQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfVEFCTEUpLAorCQkJCQllcnJt c2coInJlbGF0aW9uIFwiJXMuJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkgICByZWxhdGlv bi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJlbG5hbWUpKTsKKwkJZWxzZSBpZiAoZWxldmVsID09 IERFQlVHMSkKKwkJCWVyZXBvcnQoREVCVUcxLAorCQkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJ TkVEX1RBQkxFKSwKKwkJCQkJZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3Qi LAorCQkJCQkJICAgcmVsYXRpb24tPnJlbG5hbWUpKTsKKwkJZWxzZSBpZiAoZWxldmVsID09IEVS Uk9SKQorCQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRPaWQsCiAJCQkJCShlcnJjb2RlKEVS UkNPREVfVU5ERUZJTkVEX1RBQkxFKSwKIAkJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGRv ZXMgbm90IGV4aXN0IiwKIAkJCQkJCQlyZWxhdGlvbi0+cmVsbmFtZSkpKTsKQEAgLTM2MjQsNiAr MzY1NCwxMiBAQCBnZXRfbmFtZXNwYWNlX29pZChjb25zdCBjaGFyICpuc3BuYW1lLCBib29sIG1p c3Npbmdfb2spCiAgKi8KIFJhbmdlVmFyICoKIG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdChjb25z dCBMaXN0ICpuYW1lcykKK3sKKwlyZXR1cm4gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0U2FmZShu YW1lcywgTlVMTCk7Cit9CisKK1JhbmdlVmFyICoKK21ha2VSYW5nZVZhckZyb21OYW1lTGlzdFNh ZmUoY29uc3QgTGlzdCAqbmFtZXMsIE5vZGUgKmVzY29udGV4dCkKIHsKIAlSYW5nZVZhciAgICpy ZWwgPSBtYWtlUmFuZ2VWYXIoTlVMTCwgTlVMTCwgLTEpOwogCkBAIC0zNjQyLDcgKzM2NzgsNyBA QCBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3QoY29uc3QgTGlzdCAqbmFtZXMpCiAJCQlyZWwtPnJl bG5hbWUgPSBzdHJWYWwobHRoaXJkKG5hbWVzKSk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKLQkJ CWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwgTlVMTCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAogCQkJCQkgZXJybXNnKCJpbXByb3BlciByZWxhdGlv biBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAlcyIsCiAJCQkJCQkJTmFtZUxpc3RUb1N0 cmluZyhuYW1lcykpKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmVncHJv Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYwppbmRleCBlZTM0ZDFkODVmOC4u NjA0ZTE5YTFjYjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yZWdwcm9jLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYwpAQCAtMTkwMSwxMiArMTkwMSwx OSBAQCB0ZXh0X3JlZ2NsYXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJdGV4dAkgICAqcmVsbmFtZSA9 IFBHX0dFVEFSR19URVhUX1BQKDApOwogCU9pZAkJCXJlc3VsdDsKIAlSYW5nZVZhciAgICpydjsK KwlMaXN0CSAgICpuYW1lbGlzdDsKIAotCXJ2ID0gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KHRl eHRUb1F1YWxpZmllZE5hbWVMaXN0KHJlbG5hbWUpKTsKKwluYW1lbGlzdCA9IHRleHRUb1F1YWxp ZmllZE5hbWVMaXN0U2FmZShyZWxuYW1lLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwly diA9IG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdFNhZmUobmFtZWxpc3QsIGZjaW5mby0+Y29udGV4 dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKIAogCS8qIFdlIG1pZ2h0IG5vdCBldmVuIGhhdmUgcGVybWlzc2lvbnMgb24g dGhpcyByZWxhdGlvbjsgZG9uJ3QgbG9jayBpdC4gKi8KLQlyZXN1bHQgPSBSYW5nZVZhckdldFJl bGlkKHJ2LCBOb0xvY2ssIGZhbHNlKTsKLQorCXJlc3VsdCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRl bmRlZFNhZmUocnYsIE5vTG9jaywgMCwgTlVMTCwgTlVMTCwKKwkJCQkJCQkJCQkgIGZjaW5mby0+ Y29udGV4dCk7CiAJUEdfUkVUVVJOX09JRChyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Zhcmxl bmEuYwppbmRleCA3Y2FmNzAwZmQ2MS4uZDBmMjQxZDM3ZTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Zhcmxl bmEuYwpAQCAtMjcxNSw2ICsyNzE1LDEyIEBAIG5hbWVfdGV4dChQR19GVU5DVElPTl9BUkdTKQog ICovCiBMaXN0ICoKIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpCit7CisJ cmV0dXJuIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0dmFsLCBOVUxMKTsKK30KKwor TGlzdCAqCit0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUodGV4dCAqdGV4dHZhbCwgTm9kZSAq ZXNjb250ZXh0KQogewogCWNoYXIJICAgKnJhd25hbWU7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklM OwpAQCAtMjcyNiwxMiArMjczMiwxMiBAQCB0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCh0ZXh0ICp0 ZXh0dmFsKQogCXJhd25hbWUgPSB0ZXh0X3RvX2NzdHJpbmcodGV4dHZhbCk7CiAKIAlpZiAoIVNw bGl0SWRlbnRpZmllclN0cmluZyhyYXduYW1lLCAnLicsICZuYW1lbGlzdCkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZXNjb250ZXh0LCBOSUwsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9J TlZBTElEX05BTUUpLAogCQkJCSBlcnJtc2coImludmFsaWQgbmFtZSBzeW50YXgiKSkpOwogCiAJ aWYgKG5hbWVsaXN0ID09IE5JTCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihlc2NvbnRl eHQsIE5JTCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfTkFNRSksCiAJCQkJIGVycm1z ZygiaW52YWxpZCBuYW1lIHN5bnRheCIpKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4 IDFhMjU5NzM2ODVjLi4xNTNhNDM5ZTM3NCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC0x MDMsNiArMTAzLDExIEBAIGV4dGVybiBPaWQJUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0 IFJhbmdlVmFyICpyZWxhdGlvbiwKIAkJCQkJCQkJCSBMT0NLTU9ERSBsb2NrbW9kZSwgdWludDMy IGZsYWdzLAogCQkJCQkJCQkJIFJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxsYmFjaywKIAkJ CQkJCQkJCSB2b2lkICpjYWxsYmFja19hcmcpOworZXh0ZXJuIE9pZCBSYW5nZVZhckdldFJlbGlk RXh0ZW5kZWRTYWZlKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwKKwkJCQkJCQkJCQlMT0NLTU9E RSBsb2NrbW9kZSwgdWludDMyIGZsYWdzLAorCQkJCQkJCQkJCVJhbmdlVmFyR2V0UmVsaWRDYWxs YmFjayBjYWxsYmFjaywKKwkJCQkJCQkJCQl2b2lkICpjYWxsYmFja19hcmcsCisJCQkJCQkJCQkJ Tm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBPaWQJUmFuZ2VWYXJHZXRDcmVhdGlvbk5hbWVzcGFj ZShjb25zdCBSYW5nZVZhciAqbmV3UmVsYXRpb24pOwogZXh0ZXJuIE9pZAlSYW5nZVZhckdldEFu ZENoZWNrQ3JlYXRpb25OYW1lc3BhY2UoUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJCQkJCQkJ IExPQ0tNT0RFIGxvY2ttb2RlLApAQCAtMTY4LDYgKzE3Myw3IEBAIGV4dGVybiBPaWQJTG9va3Vw Q3JlYXRpb25OYW1lc3BhY2UoY29uc3QgY2hhciAqbnNwbmFtZSk7CiBleHRlcm4gdm9pZCBDaGVj a1NldE5hbWVzcGFjZShPaWQgb2xkTnNwT2lkLCBPaWQgbnNwT2lkKTsKIGV4dGVybiBPaWQJUXVh bGlmaWVkTmFtZUdldENyZWF0aW9uTmFtZXNwYWNlKGNvbnN0IExpc3QgKm5hbWVzLCBjaGFyICoq b2JqbmFtZV9wKTsKIGV4dGVybiBSYW5nZVZhciAqbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KGNv bnN0IExpc3QgKm5hbWVzKTsKK2V4dGVybiBSYW5nZVZhciAqbWFrZVJhbmdlVmFyRnJvbU5hbWVM aXN0U2FmZShjb25zdCBMaXN0ICpuYW1lcywgTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBjaGFy ICpOYW1lTGlzdFRvU3RyaW5nKGNvbnN0IExpc3QgKm5hbWVzKTsKIGV4dGVybiBjaGFyICpOYW1l TGlzdFRvUXVvdGVkU3RyaW5nKGNvbnN0IExpc3QgKm5hbWVzKTsKIApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdXRpbHMvdmFybGVuYS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvdmFybGVuYS5oCmlu ZGV4IDRiMzI1NzRhMDc1Li41YmM3OGFhMDJjMCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRp bHMvdmFybGVuYS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaApAQCAtMjcsNiAr MjcsNyBAQCBleHRlcm4gaW50CXZhcnN0cl9sZXZlbnNodGVpbl9sZXNzX2VxdWFsKGNvbnN0IGNo YXIgKnNvdXJjZSwgaW50IHNsZW4sCiAJCQkJCQkJCQkJICBpbnQgaW5zX2MsIGludCBkZWxfYywg aW50IHN1Yl9jLAogCQkJCQkJCQkJCSAgaW50IG1heF9kLCBib29sIHRydXN0ZWQpOwogZXh0ZXJu IExpc3QgKnRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpOworZXh0ZXJuIExp c3QgKnRleHRUb1F1YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0ICp0ZXh0dmFsLCBOb2RlICplc2Nv bnRleHQpOwogZXh0ZXJuIGJvb2wgU3BsaXRJZGVudGlmaWVyU3RyaW5nKGNoYXIgKnJhd3N0cmlu ZywgY2hhciBzZXBhcmF0b3IsCiAJCQkJCQkJCSAgTGlzdCAqKm5hbWVsaXN0KTsKIGV4dGVybiBi b29sIFNwbGl0RGlyZWN0b3JpZXNTdHJpbmcoY2hhciAqcmF3c3RyaW5nLCBjaGFyIHNlcGFyYXRv ciwKLS0gCjIuMzQuMQoK --000000000000b56dfd064d31ee60 Content-Type: text/x-patch; charset="US-ASCII"; name="v21-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v21-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmu71s3l22 RnJvbSAwMjU3NDIyZDQ3OTU4ZDlhM2JhMWE1MjAyZmI2MjAwMmQ4ZTQ0NDU1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MDg6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy MSAwMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBieXRlYSB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l CmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J2J5dGVhJzo6cmVn dHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFy Z2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQogYnl0ZWEgICAgICB8IHNtYWxs aW50ICAgfCAgICAgNjM3MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJ5dGVhX2ludDIg fCBpbnQyCiBieXRlYSAgICAgIHwgaW50ZWdlciAgICB8ICAgICA2MzcxIHwgZSAgICAgICAgICAg fCBmICAgICAgICAgIHwgYnl0ZWFfaW50NCB8IGludDQKIGJ5dGVhICAgICAgfCBiaWdpbnQgICAg IHwgICAgIDYzNzIgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBieXRlYV9pbnQ4IHwgaW50 OAooMyByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZ NFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0t CiBzcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ieXRlYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMKaW5k ZXggZmQ3NjYyZDQxZWUuLmEwMmIwNTRiODczIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvYnl0ZWEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYwpAQCAtMTI1 NSw3ICsxMjU1LDcgQEAgYnl0ZWFfaW50MihQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sg dGhhdCB0aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9m KHJlc3VsdCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAo RGF0dW0pIDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQllcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKTsKIApAQCAtMTI4MCw3ICsx MjgwLDcgQEAgYnl0ZWFfaW50NChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0 aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3Vs dCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJ CQllcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpOwogCkBAIC0xMzA1LDcgKzEzMDUsNyBA QCBieXRlYV9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBieXRl IGFycmF5IGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChsZW4gPiBzaXplb2YocmVzdWx0KSkKLQkJ ZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJ CQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCWVycm1z ZygiYmlnaW50IG91dCBvZiByYW5nZSIpKTsKIAotLSAKMi4zNC4xCgo= --000000000000b56dfd064d31ee60--