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 1vNjI9-00COtq-1u for pgsql-hackers@arkaria.postgresql.org; Tue, 25 Nov 2025 03:00:34 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vNjI7-0063vq-0O for pgsql-hackers@arkaria.postgresql.org; Tue, 25 Nov 2025 03:00:31 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vNjI6-0063vg-1c for pgsql-hackers@lists.postgresql.org; Tue, 25 Nov 2025 03:00:31 +0000 Received: from mail-vk1-xa2b.google.com ([2607:f8b0:4864:20::a2b]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vNjI1-001LKG-33 for pgsql-hackers@lists.postgresql.org; Tue, 25 Nov 2025 03:00:30 +0000 Received: by mail-vk1-xa2b.google.com with SMTP id 71dfb90a1353d-5599688d06dso1249153e0c.2 for ; Mon, 24 Nov 2025 19:00:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1764039622; x=1764644422; 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=oboG1vvvXit/O52H41M90GcMXbFo4rPVfm6rLbm6pYc=; b=GmFuiVBEhxU8JAdA4g5uqCbqP54diadJFAAHOqJOI7PRv4DHtrKeqxYg6EsaGDo9Xs EoTuz1VWCfjPpWSLtrJORJbhfgfpkFeu4RX7BLe4aDh9n6jD3Sx1LJUsMM8Ka/vtyzip DNznRdkyKS7B6OSD18EHi4EnBIycQ72kx5qD88HF7JicgXkQEnxJ0tOtf14uaCqg9qXZ 6YuH9fYBUJzSiGHE/0yCXr/AOQfaJRUM5bJOSCDEhp5gklcZAERmhNvqUszQf9JPShhl m1I3kqMskad/jehWYAqSuu1SblsSXdQwSe4zpO/dHb/aSIG5fliyYvhPESj/THtjWUwK CVNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764039622; x=1764644422; 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=oboG1vvvXit/O52H41M90GcMXbFo4rPVfm6rLbm6pYc=; b=aMo09zh7rmSDNl6WZr//MBoWPARlgfUU/UQfwZfsxeeuVDEtuVfLrkg5kxX4IGu+NL ISf1R4hfRSfT/NkUW0DJRJ+wqAmgb7jS5tAb1r/v5255xanyQxoROPnwcLaUvGMvJUKR vFQjeYDNn8VdBXQa/JBsFqqyhkbewrHL9T6THDEVHMGmqyvgVoQonI3WbU3uj5I9J/WT xfsKkYpmiPe2LMNtklES4yIOs8V1f1ckmzjPvANfgmaXPbzxmsg1EUKf6jPUXCcHkHzE NAaJzUcg1G9oeIQIzJC0YE3r1w2b75B5hbyqe4hHHX1pQM81Q9Pzb/Toe4L2oOci1fbA u4PA== X-Forwarded-Encrypted: i=1; AJvYcCXWatMcZ+GAiKrUgvKchgFQcznopSV26V4ML9W7NJa094xaL19xd7lb+zel06QbxDGWQGLfmb/8P24/kKc9@lists.postgresql.org X-Gm-Message-State: AOJu0YylYtz+r5HxhlI5Kio9nIFzbdbt94OyJb4ybjgavCMRT/X+ZGia g1RTDDcKAZkpQfo5vGHy49chjUMLyG36SCzSreyz8omqbatRWqarqRlaUJcKLEZ0gmh5GcVJ4cT ppn61JmO8nCpUueFiLu1QDrjkAbJs+YI= X-Gm-Gg: ASbGncvqEq03EsaDGQWngknqkxGfkcHixs/udiW786lu2J3HnW23x/pmPbQ1Z6Yw/qW oVWGzej3DN4BskLe6ExK7t+SdIYOmqtTyszygocnhIX+9CCCUFFslFtNbofFnc2N9/35os74wz4 YPg0bMKNuodObfjcF4XX/aj3GIFXDOtisUXjMpddfDxx2/VuLA3v3sEWRHY1LIPVVjsgqbJjXhh EE40F7BY+oL0Ia5HoFh1AyDAI5PNlt8U9pwszkUPXQaHYNaZdxA67nGmTpBssEOn04VQ+aOf2hy eR473aonDHvAljaahObGrn4zat6fc4/9rxSVUGZ8Zbu/SMVCmrI2dfIoE39+4SS+b3Mh1dlwA+T FitzCY3xVs/NiijutaBX1wcFQVTXpgu4z+m/kD0GhF1DzZQbYOcr4DAKpSzw+m82E3WnX+swHXS KQm7JdMqJq X-Google-Smtp-Source: AGHT+IEXNTidLF1j3ZhsB+V0QuwRggbmqBgbiJZdqmoiUWFeVHvV6bX7pPtUSMP9fMD+vtTonSsrfmwYlzIa1ZWU39c= X-Received: by 2002:a05:6102:c8c:b0:5df:b31d:d5c2 with SMTP id ada2fe7eead31-5e1de2fe1e9mr4529943137.28.1764039622475; Mon, 24 Nov 2025 19:00:22 -0800 (PST) MIME-Version: 1.0 References: <04afcd1f-ed7d-4c0a-add1-50e3719ccbf9@postgresfriends.org> <762ae707-7fdc-43d8-a77a-3a10d12ce21d@postgresfriends.org> In-Reply-To: From: jian he Date: Tue, 25 Nov 2025 10:59:42 +0800 X-Gm-Features: AWmQ_bk76GZ4e41mE38zp0jQa4FBKwihSRUOX6Qn-TeoeLJW-d6oWlgHa_jvW4U Message-ID: Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions To: Amul Sul Cc: Corey Huinker , Vik Fearing , Isaac Morland , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000001175540644627b25" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001175540644627b25 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Mon, Nov 24, 2025 at 11:38=E2=80=AFAM Amul Sul wrote= : > > The change I was suggesting will be as below: > > --- a/src/backend/utils/adt/varlena.c > +++ b/src/backend/utils/adt/varlena.c > @@ -2684,6 +2684,13 @@ name_text(PG_FUNCTION_ARGS) > */ > List * > textToQualifiedNameList(text *textval) > +{ > + textToQualifiedNameListSafe(textval, NULL); > +} > + > +/* error safe version of textToQualifiedNameList */ > +List * > +textToQualifiedNameListSafe(text *textval, Node *escontext) > { > char *rawname; > List *result =3D NIL; > > > We must try to avoid duplication whenever possible, as any bug fixes > or enhancements would need to be copied to multiple places, which is > often overlooked. > hi. great idea! I incorporated all of your ideas into v11. I replaced all errsave to ereturn. I aslo simplified T_SafeTypeCastExpr expression initialization, evaluation = logic within execExpr.c, execExprInterp.c. but one thing I didn't touch: float8_div. +static inline float8 +float8_div_safe(const float8 val1, const float8 val2, struct Node *esconte= xt) but we can change float8_div to: static inline float8 float8_div(const float8 val1, const float8 val2) { return float8_div_safe(val1, val2, NULL); } I am worried that entering another function would cause a minor performance degradation. And since these simple functions are so simple, keeping them separated should not be a big problem. also I placed float8_div, float8_div_safe together. -- jian https://www.enterprisedb.com/ --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0018-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v11-0018-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5p42 RnJvbSA3OGYzOWJjMDcyYTBlMjI4ZWEyMjViNTEyZDRhNzk0MGY5Yjc0ZTYzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTY6Mzg6MjMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAxOC8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBnZW9tZXRyeSBkYXRhIHR5cGUKCnNlbGVj dCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBlLCBwcC5wcm9zcmMKZnJv bSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0ZnVuYwpqb2lu IHBnX3R5cGUgcHQgb24gcHQub2lkID0gY2FzdHNvdXJjZQpqb2luIHBnX3R5cGUgcHQxIG9uIHB0 MS5vaWQgPSBjYXN0dGFyZ2V0CmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kICBwdC50eXBhcnJheSA8 PiAwCmFuZCBwdC50eXBuYW1lc3BhY2UgPSAncGdfY2F0YWxvZyc6OnJlZ25hbWVzcGFjZQphbmQg cHQxLnR5cG5hbWVzcGFjZSA9ICdwZ19jYXRhbG9nJzo6cmVnbmFtZXNwYWNlCmFuZCAocHQudHlw Y2F0ZWdvcnkgID0gJ0cnIG9yIHB0MS50eXBjYXRlZ29yeSAgPSAnRycpCm9yZGVyIGJ5IGNhc3Rz b3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0 YXJnZXQgfCAgICBwcm9zcmMKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0KIHBvaW50ICAgICAgfCBib3ggICAgICAgIHwgcG9pbnRfYm94CiBsc2VnICAgICAgIHwgcG9p bnQgICAgICB8IGxzZWdfY2VudGVyCiBwYXRoICAgICAgIHwgcG9seWdvbiAgICB8IHBhdGhfcG9s eQogYm94ICAgICAgICB8IHBvaW50ICAgICAgfCBib3hfY2VudGVyCiBib3ggICAgICAgIHwgbHNl ZyAgICAgICB8IGJveF9kaWFnb25hbAogYm94ICAgICAgICB8IHBvbHlnb24gICAgfCBib3hfcG9s eQogYm94ICAgICAgICB8IGNpcmNsZSAgICAgfCBib3hfY2lyY2xlCiBwb2x5Z29uICAgIHwgcG9p bnQgICAgICB8IHBvbHlfY2VudGVyCiBwb2x5Z29uICAgIHwgcGF0aCAgICAgICB8IHBvbHlfcGF0 aAogcG9seWdvbiAgICB8IGJveCAgICAgICAgfCBwb2x5X2JveAogcG9seWdvbiAgICB8IGNpcmNs ZSAgICAgfCBwb2x5X2NpcmNsZQogY2lyY2xlICAgICB8IHBvaW50ICAgICAgfCBjaXJjbGVfY2Vu dGVyCiBjaXJjbGUgICAgIHwgYm94ICAgICAgICB8IGNpcmNsZV9ib3gKIGNpcmNsZSAgICAgfCBw b2x5Z29uICAgIHwKKDE0IHJvd3MpCgphbHJlYWR5IGVycm9yIHNhZmU6IHBvaW50X2JveCwgYm94 X2RpYWdvbmFsLCBib3hfcG9seSwgcG9seV9wYXRoLCBwb2x5X2JveCwgY2lyY2xlX2NlbnRlcgph bG1vc3QgZXJyb3Igc2FmZTogcGF0aF9wb2x5CmNhbiBub3QgZXJyb3Igc2FmZTogY2FzdCBjaXJj bGUgdG8gcG9seWdvbiwgYmVjYXVzZSBpdCdzIGEgU1FMIGZ1bmN0aW9uCgpkaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBQ0p1ZnhIQ016ckhPVz13UmU4TDMwck1oQjNzandBdjFMRTky OEZhN3N4TXUxVHgtZ0BtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9zcGdp c3Qvc3BncHJvYy5jIHwgICAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jICAg ICB8IDIyNSArKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvZ2VvX3NwZ2lzdC5jICB8ICAgMiArLQogc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaCAgICAg ICAgICAgfCAgNzcgKysrKysrKysrKwogc3JjL2luY2x1ZGUvdXRpbHMvZ2VvX2RlY2xzLmggICAg ICAgfCAgIDQgKy0KIDUgZmlsZXMgY2hhbmdlZCwgMjcxIGluc2VydGlvbnMoKyksIDM5IGRlbGV0 aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BncHJvYy5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGdwcm9jLmMKaW5kZXggNjYwMDA5MjkxZGEu LmIzZTBmYmM1OWJhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3By b2MuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3Byb2MuYwpAQCAtNTEsNyAr NTEsNyBAQCBwb2ludF9ib3hfZGlzdGFuY2UoUG9pbnQgKnBvaW50LCBCT1ggKmJveCkKIAllbHNl CiAJCWR5ID0gMC4wOwogCi0JcmV0dXJuIEhZUE9UKGR4LCBkeSk7CisJcmV0dXJuIEhZUE9UKGR4 LCBkeSwgTlVMTCk7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQv Z2VvX29wcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYwppbmRleCAzNzdhMWIz ZjNhZC4uYmFlODczMGMzNDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9f b3BzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2dlb19vcHMuYwpAQCAtNzgsMTEgKzc4 LDE0IEBAIGVudW0gcGF0aF9kZWxpbQogLyogUm91dGluZXMgZm9yIHBvaW50cyAqLwogc3RhdGlj IGlubGluZSB2b2lkIHBvaW50X2NvbnN0cnVjdChQb2ludCAqcmVzdWx0LCBmbG9hdDggeCwgZmxv YXQ4IHkpOwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X2FkZF9wb2ludChQb2ludCAqcmVzdWx0 LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKK3N0YXRpYyBpbmxpbmUgYm9vbCBwb2ludF9hZGRf cG9pbnRfc2FmZShQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyLAorCQkJCQkJ CQkJCU5vZGUgKmVzY29udGV4dCk7CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfc3ViX3BvaW50 KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwogc3RhdGljIGlubGluZSB2 b2lkIHBvaW50X211bF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQy KTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9kaXZfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9p bnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5saW5lIGJvb2wgcG9pbnRfZXFfcG9pbnQo UG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5saW5lIGZsb2F0OCBwb2ludF9kdChQ b2ludCAqcHQxLCBQb2ludCAqcHQyKTsKK3N0YXRpYyBpbmxpbmUgZmxvYXQ4IHBvaW50X2R0X3Nh ZmUoUG9pbnQgKnB0MSwgUG9pbnQgKnB0MiwgTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBpbmxp bmUgZmxvYXQ4IHBvaW50X3NsKFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwogc3RhdGljIGludAlw b2ludF9pbnNpZGUoUG9pbnQgKnAsIGludCBucHRzLCBQb2ludCAqcGxpc3QpOwogCkBAIC0xMDks NiArMTEyLDcgQEAgc3RhdGljIGZsb2F0OCBsc2VnX2Nsb3NlcHRfbHNlZyhQb2ludCAqcmVzdWx0 LCBMU0VHICpvbl9sc2VnLCBMU0VHICp0b19sc2VnKTsKIC8qIFJvdXRpbmVzIGZvciBib3hlcyAq Lwogc3RhdGljIGlubGluZSB2b2lkIGJveF9jb25zdHJ1Y3QoQk9YICpyZXN1bHQsIFBvaW50ICpw dDEsIFBvaW50ICpwdDIpOwogc3RhdGljIHZvaWQgYm94X2NuKFBvaW50ICpjZW50ZXIsIEJPWCAq Ym94KTsKK3N0YXRpYyBib29sIGJveF9jbl9zYWZlKFBvaW50ICpjZW50ZXIsIEJPWCAqYm94LCBO b2RlKiBlc2NvbnRleHQpOwogc3RhdGljIGJvb2wgYm94X292KEJPWCAqYm94MSwgQk9YICpib3gy KTsKIHN0YXRpYyBmbG9hdDggYm94X2FyKEJPWCAqYm94KTsKIHN0YXRpYyBmbG9hdDggYm94X2h0 KEJPWCAqYm94KTsKQEAgLTEyNSw3ICsxMjksNyBAQCBzdGF0aWMgZmxvYXQ4IGNpcmNsZV9hcihD SVJDTEUgKmNpcmNsZSk7CiAKIC8qIFJvdXRpbmVzIGZvciBwb2x5Z29ucyAqLwogc3RhdGljIHZv aWQgbWFrZV9ib3VuZF9ib3goUE9MWUdPTiAqcG9seSk7Ci1zdGF0aWMgdm9pZCBwb2x5X3RvX2Np cmNsZShDSVJDTEUgKnJlc3VsdCwgUE9MWUdPTiAqcG9seSk7CitzdGF0aWMgYm9vbCBwb2x5X3Rv X2NpcmNsZV9zYWZlKENJUkNMRSAqcmVzdWx0LCBQT0xZR09OICpwb2x5LCBOb2RlICplc2NvbnRl eHQpOwogc3RhdGljIGJvb2wgbHNlZ19pbnNpZGVfcG9seShQb2ludCAqYSwgUG9pbnQgKmIsIFBP TFlHT04gKnBvbHksIGludCBzdGFydCk7CiBzdGF0aWMgYm9vbCBwb2x5X2NvbnRhaW5fcG9seShQ T0xZR09OICpjb250YWluc19wb2x5LCBQT0xZR09OICpjb250YWluZWRfcG9seSk7CiBzdGF0aWMg Ym9vbCBwbGlzdF9zYW1lKGludCBucHRzLCBQb2ludCAqcDEsIFBvaW50ICpwMik7CkBAIC04NTEs NyArODU1LDggQEAgYm94X2NlbnRlcihQR19GVU5DVElPTl9BUkdTKQogCUJPWAkJICAgKmJveCA9 IFBHX0dFVEFSR19CT1hfUCgwKTsKIAlQb2ludAkgICAqcmVzdWx0ID0gKFBvaW50ICopIHBhbGxv YyhzaXplb2YoUG9pbnQpKTsKIAotCWJveF9jbihyZXN1bHQsIGJveCk7CisJaWYgKCFib3hfY25f c2FmZShyZXN1bHQsIGJveCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsK IAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7CiB9CkBAIC04NzEsMTAgKzg3NiwzMyBAQCBi b3hfYXIoQk9YICpib3gpCiBzdGF0aWMgdm9pZAogYm94X2NuKFBvaW50ICpjZW50ZXIsIEJPWCAq Ym94KQogewotCWNlbnRlci0+eCA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBi b3gtPmxvdy54KSwgMi4wKTsKLQljZW50ZXItPnkgPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gt PmhpZ2gueSwgYm94LT5sb3cueSksIDIuMCk7CisJKHZvaWQpIGJveF9jbl9zYWZlKGNlbnRlciwg Ym94LCBOVUxMKTsKIH0KIAorc3RhdGljIGJvb2wKK2JveF9jbl9zYWZlKFBvaW50ICpjZW50ZXIs IEJPWCAqYm94LCBOb2RlKiBlc2NvbnRleHQpCit7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsK KworCXggPSBmbG9hdDhfcGxfc2FmZShib3gtPmhpZ2gueCwgYm94LT5sb3cueCwgZXNjb250ZXh0 KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gZmFsc2U7 CisKKwljZW50ZXItPnggPSBmbG9hdDhfZGl2X3NhZmUoeCwgMi4wLCBlc2NvbnRleHQpOworCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXkg PSBmbG9hdDhfcGxfc2FmZShib3gtPmhpZ2gueSwgYm94LT5sb3cueSwgZXNjb250ZXh0KTsKKwlp ZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm4gZmFsc2U7CisKKwlj ZW50ZXItPnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwgMi4wLCBlc2NvbnRleHQpOworCWlmIChTT0ZU X0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0 cnVlOworfQogCiAvKgkJYm94X3dkCS0JCXJldHVybnMgdGhlIHdpZHRoIChsZW5ndGgpIG9mIHRo ZSBib3gKICAqCQkJCQkJCQkgIChob3Jpem9udGFsIG1hZ25pdHVkZSkuCkBAIC0xMjc2LDcgKzEz MDQsNyBAQCBsaW5lX2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19SRVRVUk5fRkxP QVQ4KGZsb2F0OF9kaXYoZmFicyhmbG9hdDhfbWkobDEtPkMsCiAJCQkJCQkJCQkJCSAgIGZsb2F0 OF9tdWwocmF0aW8sIGwyLT5DKSkpLAotCQkJCQkJCQlIWVBPVChsMS0+QSwgbDEtPkIpKSk7CisJ CQkJCQkJCUhZUE9UKGwxLT5BLCBsMS0+QiwgTlVMTCkpKTsKIH0KIAogLyogbGluZV9pbnRlcnB0 KCkKQEAgLTIwMDEsOSArMjAyOSwyNyBAQCBwb2ludF9kaXN0YW5jZShQR19GVU5DVElPTl9BUkdT KQogc3RhdGljIGlubGluZSBmbG9hdDgKIHBvaW50X2R0KFBvaW50ICpwdDEsIFBvaW50ICpwdDIp CiB7Ci0JcmV0dXJuIEhZUE9UKGZsb2F0OF9taShwdDEtPngsIHB0Mi0+eCksIGZsb2F0OF9taShw dDEtPnksIHB0Mi0+eSkpOworCXJldHVybiBwb2ludF9kdF9zYWZlKHB0MSwgcHQyLCBOVUxMKTsK IH0KIAorc3RhdGljIGlubGluZSBmbG9hdDgKK3BvaW50X2R0X3NhZmUoUG9pbnQgKnB0MSwgUG9p bnQgKnB0MiwgTm9kZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CisK Kwl4ID0gZmxvYXQ4X21pX3NhZmUocHQxLT54LCBwdDItPngsIGVzY29udGV4dCk7CisJaWYgKFNP RlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIDAuMDsKKworCXkgID0gZmxv YXQ4X21pX3NhZmUocHQxLT55LCBwdDItPnksIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1Jf T0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIDAuMDsKKworCXJldHVybiBIWVBPVCh4LCB5 LCBlc2NvbnRleHQpOworfQorCisKIERhdHVtCiBwb2ludF9zbG9wZShQR19GVU5DVElPTl9BUkdT KQogewpAQCAtMjMxNywxMyArMjM2MywzMSBAQCBsc2VnX2NlbnRlcihQR19GVU5DVElPTl9BUkdT KQogewogCUxTRUcJICAgKmxzZWcgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCVBvaW50CSAgICpy ZXN1bHQ7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJeTsKIAogCXJlc3VsdCA9IChQb2ludCAqKSBw YWxsb2Moc2l6ZW9mKFBvaW50KSk7CiAKLQlyZXN1bHQtPnggPSBmbG9hdDhfZGl2KGZsb2F0OF9w bChsc2VnLT5wWzBdLngsIGxzZWctPnBbMV0ueCksIDIuMCk7Ci0JcmVzdWx0LT55ID0gZmxvYXQ4 X2RpdihmbG9hdDhfcGwobHNlZy0+cFswXS55LCBsc2VnLT5wWzFdLnkpLCAyLjApOworCXggPSBm bG9hdDhfcGxfc2FmZShsc2VnLT5wWzBdLngsIGxzZWctPnBbMV0ueCwgZmNpbmZvLT5jb250ZXh0 KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZh aWw7CisKKwlyZXN1bHQtPnggPSBmbG9hdDhfZGl2X3NhZmUoeCwgMi4wLCBmY2luZm8tPmNvbnRl eHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8g ZmFpbDsKKworCXkgPSBmbG9hdDhfcGxfc2FmZShsc2VnLT5wWzBdLnksIGxzZWctPnBbMV0ueSwg ZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRl eHQpKQorCQlnb3RvIGZhaWw7CisKKwlyZXN1bHQtPnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwgMi4w LCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29u dGV4dCkpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7CisKK2Zh aWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0KIAogCkBAIC00MTEwLDkgKzQxNzQsMjcgQEAgY29u c3RydWN0X3BvaW50KFBHX0ZVTkNUSU9OX0FSR1MpCiBzdGF0aWMgaW5saW5lIHZvaWQKIHBvaW50 X2FkZF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKQogewotCXBv aW50X2NvbnN0cnVjdChyZXN1bHQsCi0JCQkJCWZsb2F0OF9wbChwdDEtPngsIHB0Mi0+eCksCi0J CQkJCWZsb2F0OF9wbChwdDEtPnksIHB0Mi0+eSkpOworCSh2b2lkKSBwb2ludF9hZGRfcG9pbnRf c2FmZShyZXN1bHQsIHB0MSwgcHQyLCBOVUxMKTsKK30KKworc3RhdGljIGlubGluZSBib29sCitw b2ludF9hZGRfcG9pbnRfc2FmZShQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQy LAorCQkJCQkgTm9kZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CisK Kwl4ID0gZmxvYXQ4X3BsX3NhZmUocHQxLT54LCBwdDItPngsIGVzY29udGV4dCk7CisJaWYgKFNP RlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJeSA9IGZs b2F0OF9wbF9zYWZlKHB0MS0+eSwgcHQyLT55LCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9S X09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXBvaW50X2NvbnN0cnVj dChyZXN1bHQsIHgsIHkpOworCisJcmV0dXJuIHRydWU7CiB9CiAKIERhdHVtCkBAIC00NDU4LDcg KzQ1NDAsNyBAQCBwYXRoX3BvbHkoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFRoaXMgaXMgbm90 IHZlcnkgY29uc2lzdGVudCAtLS0gb3RoZXIgc2ltaWxhciBjYXNlcyByZXR1cm4gTlVMTCAuLi4g Ki8KIAlpZiAoIXBhdGgtPmNsb3NlZCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfUEFS QU1FVEVSX1ZBTFVFKSwKIAkJCQkgZXJybXNnKCJvcGVuIHBhdGggY2Fubm90IGJlIGNvbnZlcnRl ZCB0byBwb2x5Z29uIikpKTsKIApAQCAtNDUwOCw3ICs0NTkwLDkgQEAgcG9seV9jZW50ZXIoUEdf RlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IChQb2ludCAqKSBwYWxsb2Moc2l6ZW9mKFBvaW50 KSk7CiAKLQlwb2x5X3RvX2NpcmNsZSgmY2lyY2xlLCBwb2x5KTsKKwlpZiAoIXBvbHlfdG9fY2ly Y2xlX3NhZmUoJmNpcmNsZSwgcG9seSwgZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05V TEwoKTsKKwogCSpyZXN1bHQgPSBjaXJjbGUuY2VudGVyOwogCiAJUEdfUkVUVVJOX1BPSU5UX1Ao cmVzdWx0KTsKQEAgLTUwMDUsNyArNTA4OSw3IEBAIGNpcmNsZV9tdWxfcHQoUEdfRlVOQ1RJT05f QVJHUykKIAlyZXN1bHQgPSAoQ0lSQ0xFICopIHBhbGxvYyhzaXplb2YoQ0lSQ0xFKSk7CiAKIAlw b2ludF9tdWxfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAmY2lyY2xlLT5jZW50ZXIsIHBvaW50KTsK LQlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9tdWwoY2lyY2xlLT5yYWRpdXMsIEhZUE9UKHBvaW50 LT54LCBwb2ludC0+eSkpOworCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X211bChjaXJjbGUtPnJh ZGl1cywgSFlQT1QocG9pbnQtPngsIHBvaW50LT55LCBOVUxMKSk7CiAKIAlQR19SRVRVUk5fQ0lS Q0xFX1AocmVzdWx0KTsKIH0KQEAgLTUwMjAsNyArNTEwNCw3IEBAIGNpcmNsZV9kaXZfcHQoUEdf RlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSAoQ0lSQ0xFICopIHBhbGxvYyhzaXplb2YoQ0lSQ0xF KSk7CiAKIAlwb2ludF9kaXZfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAmY2lyY2xlLT5jZW50ZXIs IHBvaW50KTsKLQlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9kaXYoY2lyY2xlLT5yYWRpdXMsIEhZ UE9UKHBvaW50LT54LCBwb2ludC0+eSkpOworCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X2Rpdihj aXJjbGUtPnJhZGl1cywgSFlQT1QocG9pbnQtPngsIHBvaW50LT55LCBOVUxMKSk7CiAKIAlQR19S RVRVUk5fQ0lSQ0xFX1AocmVzdWx0KTsKIH0KQEAgLTUxOTEsMTQgKzUyNzUsMzAgQEAgY2lyY2xl X2JveChQR19GVU5DVElPTl9BUkdTKQogCiAJYm94ID0gKEJPWCAqKSBwYWxsb2Moc2l6ZW9mKEJP WCkpOwogCi0JZGVsdGEgPSBmbG9hdDhfZGl2KGNpcmNsZS0+cmFkaXVzLCBzcXJ0KDIuMCkpOwor CWRlbHRhID0gZmxvYXQ4X2Rpdl9zYWZlKGNpcmNsZS0+cmFkaXVzLCBzcXJ0KDIuMCksIGZjaW5m by0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkK KwkJZ290byBmYWlsOwogCi0JYm94LT5oaWdoLnggPSBmbG9hdDhfcGwoY2lyY2xlLT5jZW50ZXIu eCwgZGVsdGEpOwotCWJveC0+bG93LnggPSBmbG9hdDhfbWkoY2lyY2xlLT5jZW50ZXIueCwgZGVs dGEpOwotCWJveC0+aGlnaC55ID0gZmxvYXQ4X3BsKGNpcmNsZS0+Y2VudGVyLnksIGRlbHRhKTsK LQlib3gtPmxvdy55ID0gZmxvYXQ4X21pKGNpcmNsZS0+Y2VudGVyLnksIGRlbHRhKTsKKwlib3gt PmhpZ2gueCA9IGZsb2F0OF9wbF9zYWZlKGNpcmNsZS0+Y2VudGVyLngsIGRlbHRhLCBmY2luZm8t PmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJ CWdvdG8gZmFpbDsKKworCWJveC0+bG93LnggPSBmbG9hdDhfbWlfc2FmZShjaXJjbGUtPmNlbnRl ci54LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChm Y2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwlib3gtPmhpZ2gueSA9IGZsb2F0OF9w bF9zYWZlKGNpcmNsZS0+Y2VudGVyLnksIGRlbHRhLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChT T0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKworCWJv eC0+bG93LnkgPSBmbG9hdDhfbWlfc2FmZShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSwgZmNpbmZv LT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQor CQlnb3RvIGZhaWw7CiAKIAlQR19SRVRVUk5fQk9YX1AoYm94KTsKKworZmFpbDoKKwlQR19SRVRV Uk5fTlVMTCgpOwogfQogCiAvKiBib3hfY2lyY2xlKCkKQEAgLTUyMDksMTUgKzUzMDksMzUgQEAg Ym94X2NpcmNsZShQR19GVU5DVElPTl9BUkdTKQogewogCUJPWAkJICAgKmJveCA9IFBHX0dFVEFS R19CT1hfUCgwKTsKIAlDSVJDTEUJICAgKmNpcmNsZTsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5 OwogCiAJY2lyY2xlID0gKENJUkNMRSAqKSBwYWxsb2Moc2l6ZW9mKENJUkNMRSkpOwogCi0JY2ly Y2xlLT5jZW50ZXIueCA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBib3gtPmxv dy54KSwgMi4wKTsKLQljaXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94 LT5oaWdoLnksIGJveC0+bG93LnkpLCAyLjApOworCXggPSBmbG9hdDhfcGxfc2FmZShib3gtPmhp Z2gueCwgYm94LT5sb3cueCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NV UlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CiAKLQljaXJjbGUtPnJhZGl1cyA9 IHBvaW50X2R0KCZjaXJjbGUtPmNlbnRlciwgJmJveC0+aGlnaCk7CisJY2lyY2xlLT5jZW50ZXIu eCA9IGZsb2F0OF9kaXZfc2FmZSh4LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRf RVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJeSA9IGZs b2F0OF9wbF9zYWZlKGJveC0+aGlnaC55LCBib3gtPmxvdy55LCBmY2luZm8tPmNvbnRleHQpOwor CWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsK KworCWNpcmNsZS0+Y2VudGVyLnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwgMi4wLCBmY2luZm8tPmNv bnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdv dG8gZmFpbDsKKworCWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHRfc2FmZSgmY2lyY2xlLT5jZW50 ZXIsICZib3gtPmhpZ2gsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJS RUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9Q KGNpcmNsZSk7CisKK2ZhaWw6CisJUEdfUkVUVVJOX05VTEwoKTsKIH0KIAogCkBAIC01MjgxLDEw ICs1NDAxLDExIEBAIGNpcmNsZV9wb2x5KFBHX0ZVTkNUSU9OX0FSR1MpCiAgKiBYWFggVGhpcyBh bGdvcml0aG0gc2hvdWxkIHVzZSB3ZWlnaHRlZCBtZWFucyBvZiBsaW5lIHNlZ21lbnRzCiAgKgly YXRoZXIgdGhhbiBzdHJhaWdodCBhdmVyYWdlIHZhbHVlcyBvZiBwb2ludHMgLSB0Z2wgOTcvMDEv MjEuCiAgKi8KLXN0YXRpYyB2b2lkCi1wb2x5X3RvX2NpcmNsZShDSVJDTEUgKnJlc3VsdCwgUE9M WUdPTiAqcG9seSkKK3N0YXRpYyBib29sCitwb2x5X3RvX2NpcmNsZV9zYWZlKENJUkNMRSAqcmVz dWx0LCBQT0xZR09OICpwb2x5LCBOb2RlICplc2NvbnRleHQpCiB7CiAJaW50CQkJaTsKKwlmbG9h dDgJCXg7CiAKIAlBc3NlcnQocG9seS0+bnB0cyA+IDApOwogCkBAIC01MjkzLDE0ICs1NDE0LDQy IEBAIHBvbHlfdG9fY2lyY2xlKENJUkNMRSAqcmVzdWx0LCBQT0xZR09OICpwb2x5KQogCXJlc3Vs dC0+cmFkaXVzID0gMDsKIAogCWZvciAoaSA9IDA7IGkgPCBwb2x5LT5ucHRzOyBpKyspCi0JCXBv aW50X2FkZF9wb2ludCgmcmVzdWx0LT5jZW50ZXIsICZyZXN1bHQtPmNlbnRlciwgJnBvbHktPnBb aV0pOwotCXJlc3VsdC0+Y2VudGVyLnggPSBmbG9hdDhfZGl2KHJlc3VsdC0+Y2VudGVyLngsIHBv bHktPm5wdHMpOwotCXJlc3VsdC0+Y2VudGVyLnkgPSBmbG9hdDhfZGl2KHJlc3VsdC0+Y2VudGVy LnksIHBvbHktPm5wdHMpOworCXsKKwkJaWYgKCFwb2ludF9hZGRfcG9pbnRfc2FmZSgmcmVzdWx0 LT5jZW50ZXIsCisJCQkJCQkJCSAgJnJlc3VsdC0+Y2VudGVyLAorCQkJCQkJCQkgICZwb2x5LT5w W2ldLAorCQkJCQkJCQkgIGVzY29udGV4dCkpCisJCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmVz dWx0LT5jZW50ZXIueCA9IGZsb2F0OF9kaXZfc2FmZShyZXN1bHQtPmNlbnRlci54LAorCQkJCQkJ CQkJICAgcG9seS0+bnB0cywKKwkJCQkJCQkJCSAgIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJS T1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmVzdWx0LT5jZW50 ZXIueSA9IGZsb2F0OF9kaXZfc2FmZShyZXN1bHQtPmNlbnRlci55LAorCQkJCQkJCQkJICAgcG9s eS0+bnB0cywKKwkJCQkJCQkJCSAgIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJS RUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOwogCiAJZm9yIChpID0gMDsgaSA8IHBvbHkt Pm5wdHM7IGkrKykKLQkJcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfcGwocmVzdWx0LT5yYWRpdXMs Ci0JCQkJCQkJCSAgIHBvaW50X2R0KCZwb2x5LT5wW2ldLCAmcmVzdWx0LT5jZW50ZXIpKTsKLQly ZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9kaXYocmVzdWx0LT5yYWRpdXMsIHBvbHktPm5wdHMpOwor CXsKKwkJeCA9IHBvaW50X2R0X3NhZmUoJnBvbHktPnBbaV0sICZyZXN1bHQtPmNlbnRlciwgZXNj b250ZXh0KTsKKwkJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJCXJldHVy biBmYWxzZTsKKworCQlyZXN1bHQtPnJhZGl1cyA9IGZsb2F0OF9wbF9zYWZlKHJlc3VsdC0+cmFk aXVzLCB4LCBlc2NvbnRleHQpOworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQkJcmV0dXJuIGZhbHNlOworCX0KKworCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X2Rpdl9z YWZlKHJlc3VsdC0+cmFkaXVzLCBwb2x5LT5ucHRzLCBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VS Uk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJldHVybiB0cnVl OwogfQogCiBEYXR1bQpAQCAtNTMxMSw3ICs1NDYwLDggQEAgcG9seV9jaXJjbGUoUEdfRlVOQ1RJ T05fQVJHUykKIAogCXJlc3VsdCA9IChDSVJDTEUgKikgcGFsbG9jKHNpemVvZihDSVJDTEUpKTsK IAotCXBvbHlfdG9fY2lyY2xlKHJlc3VsdCwgcG9seSk7CisJaWYgKCFwb2x5X3RvX2NpcmNsZV9z YWZlKHJlc3VsdCwgcG9seSwgZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsK IAogCVBHX1JFVFVSTl9DSVJDTEVfUChyZXN1bHQpOwogfQpAQCAtNTUxNiw3ICs1NjY2LDcgQEAg cGxpc3Rfc2FtZShpbnQgbnB0cywgUG9pbnQgKnAxLCBQb2ludCAqcDIpCiAgKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAgKi8KIGZsb2F0OAotcGdfaHlwb3QoZmxvYXQ4IHgsIGZsb2F0OCB5KQorcGdfaHlwb3Qo ZmxvYXQ4IHgsIGZsb2F0OCB5LCBOb2RlICplc2NvbnRleHQpCiB7CiAJZmxvYXQ4CQl5eCwKIAkJ CQlyZXN1bHQ7CkBAIC01NTU0LDkgKzU3MDQsMTQgQEAgcGdfaHlwb3QoZmxvYXQ4IHgsIGZsb2F0 OCB5KQogCXJlc3VsdCA9IHggKiBzcXJ0KDEuMCArICh5eCAqIHl4KSk7CiAKIAlpZiAodW5saWtl bHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWVyZXR1cm4o ZXNjb250ZXh0LCAwLjAsCisJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0Zf UkFOR0UpLAorCQkJZXJybXNnKCJ2YWx1ZSBvdXQgb2YgcmFuZ2U6IG92ZXJmbG93IikpOworCiAJ aWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsK KwkJZXJldHVybihlc2NvbnRleHQsIDAuMCwKKwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19W QUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJCWVycm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiB1bmRl cmZsb3ciKSk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2dlb19zcGdpc3QuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fc3BnaXN0 LmMKaW5kZXggZmVjMzNlOTUzNzIuLmZmZmZkM2NkMmRlIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvZ2VvX3NwZ2lzdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9f c3BnaXN0LmMKQEAgLTM5MCw3ICszOTAsNyBAQCBwb2ludFRvUmVjdEJveERpc3RhbmNlKFBvaW50 ICpwb2ludCwgUmVjdEJveCAqcmVjdF9ib3gpCiAJZWxzZQogCQlkeSA9IDA7CiAKLQlyZXR1cm4g SFlQT1QoZHgsIGR5KTsKKwlyZXR1cm4gSFlQT1QoZHgsIGR5LCBOVUxMKTsKIH0KIAogCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxv YXQuaAppbmRleCBmYzJhOWNmNjQ3NS4uYWVjMzc2ZmZjNTYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApAQCAtMTIx LDYgKzEyMSwyMSBAQCBmbG9hdDhfcGwoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2 YWwyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qIGVycm9yIHNhZmUgdmVyc2lvbiBvZiBmbG9h dDhfcGwgKi8KK3N0YXRpYyBpbmxpbmUgZmxvYXQ4CitmbG9hdDhfcGxfc2FmZShjb25zdCBmbG9h dDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIsIHN0cnVjdCBOb2RlICplc2NvbnRleHQpCit7CisJ ZmxvYXQ4CQlyZXN1bHQ7CisKKwlyZXN1bHQgPSB2YWwxICsgdmFsMjsKKwlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKKwkJZXJldHVy bihlc2NvbnRleHQsIDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKKwkJCQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisK KwlyZXR1cm4gcmVzdWx0OworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0NAogZmxvYXQ0X21pKGNv bnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIHsKQEAgLTE0NSw2ICsxNjAsMjEg QEAgZmxvYXQ4X21pKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAlyZXR1 cm4gcmVzdWx0OwogfQogCisvKiBlcnJvciBzYWZlIHZlcnNpb24gb2YgZmxvYXQ4X21pICovCitz dGF0aWMgaW5saW5lIGZsb2F0OAorZmxvYXQ4X21pX3NhZmUoY29uc3QgZmxvYXQ4IHZhbDEsIGNv bnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJcmVz dWx0OworCisJcmVzdWx0ID0gdmFsMSAtIHZhbDI7CisJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3Vs dCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFsMikpCisJCWVyZXR1cm4oZXNjb250ZXh0 LCAwLAorCQkJCWVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJ CQkJZXJybXNnKCJ2YWx1ZSBvdXQgb2YgcmFuZ2U6IG92ZXJmbG93IikpOworCisJcmV0dXJuIHJl c3VsdDsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdDQKIGZsb2F0NF9tdWwoY29uc3QgZmxvYXQ0 IHZhbDEsIGNvbnN0IGZsb2F0NCB2YWwyKQogewpAQCAtMTczLDYgKzIwMywyNyBAQCBmbG9hdDhf bXVsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAlyZXR1cm4gcmVzdWx0 OwogfQogCisvKiBlcnJvciBzYWZlIHZlcnNpb24gb2YgZmxvYXQ4X211bCAqLworc3RhdGljIGlu bGluZSBmbG9hdDgKK2Zsb2F0OF9tdWxfc2FmZShjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxv YXQ4IHZhbDIsIHN0cnVjdCBOb2RlICplc2NvbnRleHQpCit7CisJZmxvYXQ4CQlyZXN1bHQ7CisK KwlyZXN1bHQgPSB2YWwxICogdmFsMjsKKworCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAm JiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQorCQllcmV0dXJuKGVzY29udGV4dCwgMCwK KwkJCQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJCWVy cm1zZygidmFsdWUgb3V0IG9mIHJhbmdlOiBvdmVyZmxvdyIpKTsKKworCWlmICh1bmxpa2VseShy ZXN1bHQgPT0gMC4wKSAmJiB2YWwxICE9IDAuMCAmJiB2YWwyICE9IDAuMCkKKwkJZXJldHVybihl c2NvbnRleHQsIDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JB TkdFKSwKKwkJCQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogdW5kZXJmbG93IikpOworCisJ cmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdDQKIGZsb2F0NF9kaXYoY29u c3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0NCB2YWwyKQogewpAQCAtMjA1LDYgKzI1NiwzMiBA QCBmbG9hdDhfZGl2KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAlyZXR1 cm4gcmVzdWx0OwogfQogCisvKiBlcnJvciBzYWZlIHZlcnNpb24gb2YgZmxvYXQ4X2RpdiAqLwor c3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0OF9kaXZfc2FmZShjb25zdCBmbG9hdDggdmFsMSwg Y29uc3QgZmxvYXQ4IHZhbDIsIHN0cnVjdCBOb2RlICplc2NvbnRleHQpCit7CisJZmxvYXQ4CQly ZXN1bHQ7CisKKwlpZiAodW5saWtlbHkodmFsMiA9PSAwLjApICYmICFpc25hbih2YWwxKSkKKwkJ ZXJldHVybihlc2NvbnRleHQsIDAsCisJCQkJZXJyY29kZShFUlJDT0RFX0RJVklTSU9OX0JZX1pF Uk8pLAorCQkJCWVycm1zZygiZGl2aXNpb24gYnkgemVybyIpKTsKKworCXJlc3VsdCA9IHZhbDEg LyB2YWwyOworCisJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSkK KwkJZXJldHVybihlc2NvbnRleHQsIDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFM VUVfT1VUX09GX1JBTkdFKSwKKwkJCQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZs b3ciKSk7CisKKwlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYg IWlzaW5mKHZhbDIpKQorCQllcmV0dXJuKGVzY29udGV4dCwgMCwKKwkJCQllcnJjb2RlKEVSUkNP REVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAorCQkJCWVycm1zZygidmFsdWUgb3V0IG9m IHJhbmdlOiB1bmRlcmZsb3ciKSk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogUm91 dGluZXMgZm9yIE5hTi1hd2FyZSBjb21wYXJpc29ucwogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3V0aWxzL2dlb19kZWNscy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZ2VvX2RlY2xzLmgKaW5k ZXggOGE5ZGY3NWM5M2MuLjAwNTZhMjY2MzlmIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGls cy9nZW9fZGVjbHMuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9nZW9fZGVjbHMuaApAQCAtODgs NyArODgsNyBAQCBGUGdlKGRvdWJsZSBBLCBkb3VibGUgQikKICNkZWZpbmUgRlBnZShBLEIpCQkJ CSgoQSkgPj0gKEIpKQogI2VuZGlmCiAKLSNkZWZpbmUgSFlQT1QoQSwgQikJCQkJcGdfaHlwb3Qo QSwgQikKKyNkZWZpbmUgSFlQT1QoQSwgQiwgZXNjb250ZXh0KQkJCQlwZ19oeXBvdChBLCBCLCBl c2NvbnRleHQpCiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAgKiBQb2ludCAtICh4LHkpCkBAIC0yODAsNiAr MjgwLDYgQEAgQ2lyY2xlUEdldERhdHVtKGNvbnN0IENJUkNMRSAqWCkKICAqIGluIGdlb19vcHMu YwogICovCiAKLWV4dGVybiBmbG9hdDggcGdfaHlwb3QoZmxvYXQ4IHgsIGZsb2F0OCB5KTsKK2V4 dGVybiBmbG9hdDggcGdfaHlwb3QoZmxvYXQ4IHgsIGZsb2F0OCB5LCBOb2RlICplc2NvbnRleHQp OwogCiAjZW5kaWYJCQkJCQkJLyogR0VPX0RFQ0xTX0ggKi8KLS0gCjIuMzQuMQoK --0000000000001175540644627b25 Content-Type: text/x-patch; charset="UTF-8"; name="v11-0020-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Disposition: attachment; filename="v11-0020-CAST-expr-AS-newtype-DEFAULT-ON-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5p00 RnJvbSBmMWQ1ZGM5OTYyYzEzODMyM2VhMmUzZDA5NDlmZTMyNjYzZTU4ODAwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMjUgTm92IDIwMjUgMTA6Mzc6MzMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAyMC8yMF0gQ0FTVChleHByIEFTIG5ld3R5cGUgREVGQVVMVCBPTiBFUlJPUikKCk5vdyB0aGF0 IHRoZSB0eXBlIGNvZXJjaW9uIG5vZGUgaXMgZXJyb3Itc2FmZSwgd2UgYWxzbyBuZWVkIHRvIGVu c3VyZSB0aGF0IHdoZW4KYSBjb2VyY2lvbiBmYWlscywgaXQgZmFsbHMgYmFjayB0byBldmFsdWF0 aW5nIHRoZSBkZWZhdWx0IG5vZGUuCmRyYWZ0IGRvYyBhbHNvIGFkZGVkLgoKV2UgY2Fubm90IHNp bXBseSBwcm9oaWJpdCB1c2VyLWRlZmluZWQgZnVuY3Rpb25zIGluIHBnX2Nhc3QgZm9yIHNhZmUg Y2FzdApldmFsdWF0aW9uIGJlY2F1c2UgQ1JFQVRFIENBU1QgY2FuIGFsc28gdXRpbGl6ZSBidWls dC1pbiBmdW5jdGlvbnMuIFNvLCB0bwpjb21wbGV0ZWx5IGRpc2FsbG93IGN1c3RvbSBjYXN0cyBj cmVhdGVkIHZpYSBDUkVBVEUgQ0FTVCB1c2VkIGluIHNhZmUgY2FzdApldmFsdWF0aW9uLCBhIG5l dyBmaWVsZCBpbiBwZ19jYXN0IHdvdWxkIHVuZm9ydHVuYXRlbHkgYmUgbmVjZXNzYXJ5LgoKZGVt bzoKU0VMRUNUIENBU1QoJzEnIEFTIGRhdGUgIERFRkFVTFQgJzIwMTEtMDEtMDEnIE9OIEVSUk9S KSwKICAgICAgIENBU1QoJ3syMzQsZGVmLDU2N30nOjp0ZXh0W10gQVMgaW50ZWdlcltdIERFRkFV TFQgJ3stMTAxMX0nIE9OIEVSUk9SKTsKICAgIGRhdGUgICAgfCAgaW50NAotLS0tLS0tLS0tLS0r LS0tLS0tLS0tCiAyMDExLTAxLTAxIHwgey0xMDExfQoKWzBdOiBodHRwczovL2dpdC5wb3N0Z3Jl c3FsLm9yZy9jZ2l0L3Bvc3RncmVzcWwuZ2l0L2NvbW1pdC8/aWQ9YWFhZjk0NDllYzZiZTYyY2Iw ZDMwZWQzNTg4ZGMzODRmNTYyNzRiCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NB RGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdt YWlsLmNvbQotLS0KIC4uLi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dCAg ICB8ICAyMyArLQogY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5zcWwgICAg IHwgICA1ICsKIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAgICAgICAgICAgICAgICAgICB8 ICAxMiArCiBkb2Mvc3JjL3NnbWwvc3ludGF4LnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAg MjkgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICA2MSAr LQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYyAgICAgICAgIHwgIDI5ICsK IHNyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICAyNiArCiBz cmMvYmFja2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgNjEgKysKIHNy Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyAgICAgICAgICB8ICAyNiArCiBzcmMv YmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMjIgKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8IDQyNCArKysrKysrKystCiBz cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgIDMgKwogc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICAgICAgICAgIHwgIDE0ICsKIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMgICAgICAgICAgICB8ICAgOCArCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgICAgICAgICAgICAgfCAgMjEgKwogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCAgICAgICAgICAgICAgIHwgMzMwICsrKystLS0tCiBzcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaCAgICAgICAgICAgICAgICAgfCAgIDQgKwogc3JjL2lu Y2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaCAgICAgICAgICAgICAgIHwgICA3ICsKIHNyYy9pbmNs dWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAyMSArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMTEgKwogc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwgIDM2ICsKIHNyYy9pbmNsdWRlL3Bh cnNlci9wYXJzZV9ub2RlLmggICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL2Nhc3Qub3V0ICAgICAgICAgICAgfCA3OTEgKysrKysrKysrKysrKysrKysrCiBz cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dCAgICAgfCAgIDUgKwogc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCAgICAgIHwgIDI0ICstCiBzcmMv dGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlICAgICAgICAgICAgfCAgIDIgKy0KIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL2Nhc3Quc3FsICAgICAgICAgICAgICAgICB8IDM0MCArKysrKysrKwog c3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsICAgICAgICAgIHwgICAxICsKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMyArCiAzMSBm aWxlcyBjaGFuZ2VkLCAyMTU3IGluc2VydGlvbnMoKyksIDE5NCBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0CiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKCmRpZmYgLS1naXQgYS9j b250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qub3V0IGIvY29udHJpYi9w Z19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dAppbmRleCA3NWM4OTZmMzg4NS4u NmU2Nzk5N2YwYTIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVj dGVkL3NlbGVjdC5vdXQKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQv c2VsZWN0Lm91dApAQCAtNzMsNiArNzMsMjUgQEAgU0VMRUNUIDEgQVMgImludCIgT0ZGU0VUIDIg RkVUQ0ggRklSU1QgMyBST1cgT05MWTsKIC0tLS0tCiAoMCByb3dzKQogCistLWVycm9yIHNhZmUg dHlwZSBjYXN0CitTRUxFQ1QgQ0FTVCgnYScgQVMgaW50IERFRkFVTFQgMiBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAgMgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgn MTEnIEFTIGludCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50NCAKKy0tLS0t LQorICAgMTEKKygxIHJvdykKKworU0VMRUNUIENBU1QoJzEyJyBBUyBudW1lcmljIERFRkFVTFQg MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBudW1lcmljIAorLS0tLS0tLS0tCisgICAgICAxMgor KDEgcm93KQorCiAtLSBESVNUSU5DVCBhbmQgT1JERVIgQlkgcGF0dGVybnMKIC0tIFRyeSBzb21l IHF1ZXJ5IHBlcm11dGF0aW9ucyB3aGljaCBvbmNlIHByb2R1Y2VkIGlkZW50aWNhbCBxdWVyeSBJ RHMKIFNFTEVDVCBESVNUSU5DVCAxIEFTICJpbnQiOwpAQCAtMjIyLDYgKzI0MSw4IEBAIFNFTEVD VCBjYWxscywgcm93cywgcXVlcnkgRlJPTSBwZ19zdGF0X3N0YXRlbWVudHMgT1JERVIgQlkgcXVl cnkgQ09MTEFURSAiQyI7CiAgICAgIDIgfCAgICAyIHwgU0VMRUNUICQxIEFTICJpbnQiIE9SREVS IEJZIDEKICAgICAgMSB8ICAgIDIgfCBTRUxFQ1QgJDEgQVMgaSBVTklPTiBTRUxFQ1QgJDIgT1JE RVIgQlkgaQogICAgICAxIHwgICAgMSB8IFNFTEVDVCAkMSB8fCAkMgorICAgICAyIHwgICAgMiB8 IFNFTEVDVCBDQVNUKCQxIEFTIGludCBERUZBVUxUICQyIE9OIENPTlZFUlNJT04gRVJST1IpCisg ICAgIDEgfCAgICAxIHwgU0VMRUNUIENBU1QoJDEgQVMgbnVtZXJpYyBERUZBVUxUICQyIE9OIENP TlZFUlNJT04gRVJST1IpCiAgICAgIDIgfCAgICAyIHwgU0VMRUNUIERJU1RJTkNUICQxIEFTICJp bnQiCiAgICAgIDAgfCAgICAwIHwgU0VMRUNUIGNhbGxzLCByb3dzLCBxdWVyeSBGUk9NIHBnX3N0 YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIgogICAgICAxIHwgICAgMSB8 IFNFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVMTCBBUyB0CkBAIC0y MzAsNyArMjUxLDcgQEAgU0VMRUNUIGNhbGxzLCByb3dzLCBxdWVyeSBGUk9NIHBnX3N0YXRfc3Rh dGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKICAgICAgICB8ICAgICAgfCApICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgKwogICAgICAgIHwgICAgICB8ICAgU0VMRUNUIGYgRlJPTSB0IE9SREVS IEJZIGYKICAgICAgMSB8ICAgIDEgfCBzZWxlY3QgJDE6Ompzb25iID8gJDIKLSgxNyByb3dzKQor KDE5IHJvd3MpCiAKIFNFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1QgTlVM TCBBUyB0OwogIHQgCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9zcWwv c2VsZWN0LnNxbCBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsCmlu ZGV4IDExNjYyY2RlMDhjLi43ZWU4MTYwZmQ4NCAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ19zdGF0 X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5zcWwKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVu dHMvc3FsL3NlbGVjdC5zcWwKQEAgLTI1LDYgKzI1LDExIEBAIFNFTEVDVCAxIEFTICJpbnQiIExJ TUlUIDMgT0ZGU0VUIDM7CiBTRUxFQ1QgMSBBUyAiaW50IiBPRkZTRVQgMSBGRVRDSCBGSVJTVCAy IFJPVyBPTkxZOwogU0VMRUNUIDEgQVMgImludCIgT0ZGU0VUIDIgRkVUQ0ggRklSU1QgMyBST1cg T05MWTsKIAorLS1lcnJvciBzYWZlIHR5cGUgY2FzdAorU0VMRUNUIENBU1QoJ2EnIEFTIGludCBE RUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTEnIEFTIGludCBE RUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnMTInIEFTIG51bWVy aWMgREVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworCiAtLSBESVNUSU5DVCBhbmQgT1JE RVIgQlkgcGF0dGVybnMKIC0tIFRyeSBzb21lIHF1ZXJ5IHBlcm11dGF0aW9ucyB3aGljaCBvbmNl IHByb2R1Y2VkIGlkZW50aWNhbCBxdWVyeSBJRHMKIFNFTEVDVCBESVNUSU5DVCAxIEFTICJpbnQi OwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAppbmRleCAyZmM2MzQ0Mjk4MC4uY2NkMWQyNTYwMDMgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sCkBAIC0xODQ5LDYgKzE4NDksMTggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0 O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAg ICA8bGl0ZXJhbD5iPC9saXRlcmFsPiBtZWFucyB0aGF0IHRoZSB0eXBlcyBhcmUgYmluYXJ5LWNv ZXJjaWJsZSwgdGh1cyBubyBjb252ZXJzaW9uIGlzIHJlcXVpcmVkLgogICAgICAgPC9wYXJhPjwv ZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5jYXN0ZXJyb3JzYWZlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlw ZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoaXMgaW5kaWNhdGVzIHdo ZXRoZXIgdGhlIDxzdHJ1Y3RmaWVsZD5jYXN0ZnVuYzwvc3RydWN0ZmllbGQ+IGZ1bmN0aW9uIGlz IGVycm9yIHNhZmUuCisgICAgICAgSWYgdGhlIDxzdHJ1Y3RmaWVsZD5jYXN0ZnVuYzwvc3RydWN0 ZmllbGQ+IGZ1bmN0aW9uIGlzIGVycm9yIHNhZmUsIGl0IGNhbiBiZSB1c2VkIGluIGVycm9yIHNh ZmUgdHlwZSBjYXN0LgorICAgICAgIEZvciBmdXJ0aGVyIGRldGFpbHMgc2VlIDx4cmVmIGxpbmtl bmQ9InNxbC1zeW50YXgtdHlwZS1jYXN0cy1zYWZlIi8+LgorICAgICAgPC9wYXJhPjwvZW50cnk+ CisgICAgIDwvcm93PgorCiAgICAgPC90Ym9keT4KICAgIDwvdGdyb3VwPgogICA8L3RhYmxlPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sIGIvZG9jL3NyYy9zZ21sL3N5bnRh eC5zZ21sCmluZGV4IDM0YzgzODgwYTY2Li45YjI0ODJlOWI5OSAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3N5bnRheC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbApAQCAtMjEw Niw2ICsyMTA2LDEwIEBAIENBU1QgKCA8cmVwbGFjZWFibGU+ZXhwcmVzc2lvbjwvcmVwbGFjZWFi bGU+IEFTIDxyZXBsYWNlYWJsZT50eXBlPC9yZXBsYWNlYWJsZT4KICAgICBUaGUgPGxpdGVyYWw+ Q0FTVDwvbGl0ZXJhbD4gc3ludGF4IGNvbmZvcm1zIHRvIFNRTDsgdGhlIHN5bnRheCB3aXRoCiAg ICAgPGxpdGVyYWw+Ojo8L2xpdGVyYWw+IGlzIGhpc3RvcmljYWwgPHByb2R1Y3RuYW1lPlBvc3Rn cmVTUUw8L3Byb2R1Y3RuYW1lPgogICAgIHVzYWdlLgorICAgIFRoZSBlcXVpdmFsZW50IE9OIENP TlZFUlNJT04gRVJST1IgYmVoYXZpb3IgaXM6Cis8c3lub3BzaXM+CitDQVNUICggPHJlcGxhY2Vh YmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFjZWFibGU+dHlwZTwvcmVwbGFj ZWFibGU+IEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IgKQorPC9zeW5vcHNpcz4KICAgIDwvcGFy YT4KIAogICAgPHBhcmE+CkBAIC0yMTYwLDYgKzIxNjQsMzEgQEAgQ0FTVCAoIDxyZXBsYWNlYWJs ZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2Vh YmxlPgogICAgICA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlY2FzdCIvPi4KICAgICA8L3BhcmE+ CiAgICA8L25vdGU+CisKKyA8c2VjdDMgaWQ9InNxbC1zeW50YXgtdHlwZS1jYXN0cy1zYWZlIj4K KyAgPHRpdGxlPlNhZmUgVHlwZSBDYXN0PC90aXRsZT4KKyAgIDxwYXJhPgorU29tZXRpbWVzIGEg dHlwZSBjYXN0IG1heSBmYWlsOyB0byBoYW5kbGUgc3VjaCBjYXNlcywgYW4gPGxpdGVyYWw+T04g RVJST1I8L2xpdGVyYWw+IGNsYXVzZSBjYW4gYmUKK3NwZWNpZmllZCB0byBhdm9pZCBwb3RlbnRp YWwgZXJyb3JzLiBUaGUgc3ludGF4IGlzOgorPHN5bm9wc2lzPgorQ0FTVCAoIDxyZXBsYWNlYWJs ZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2Vh YmxlPiBERUZBVUxUIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gT04gQ09O VkVSU0lPTiBFUlJPUiApCis8L3N5bm9wc2lzPgorICAgIElmIGNhc3QgdGhlIHNvdXJjZSBleHBy ZXNzaW9uIHRvIHRhcmdldCB0eXBlIGZhaWxzLCBpdCBmYWxscyBiYWNrIHRvCisgICAgZXZhbHVh dGluZyB0aGUgb3B0aW9uYWxseSBzdXBwbGllZCBkZWZhdWx0IDxyZXBsYWNlYWJsZT5leHByZXNz aW9uPC9yZXBsYWNlYWJsZT4KKyAgICBzcGVjaWZpZWQgaW4gT04gPGxpdGVyYWw+T04gRVJST1I8 L2xpdGVyYWw+IGNsYXVzZS4KKyAgICBDdXJyZW50bHksIHRoaXMgb25seSBzdXBwb3J0IGJ1aWx0 LWluIHN5c3RlbSB0eXBlIGNhc3RzLAorICAgIGNhc3RzIGNyZWF0ZWQgdXNpbmcgPGxpbmsgbGlu a2VuZD0ic3FsLWNyZWF0ZWNhc3QiPkNSRUFURSBDQVNUPC9saW5rPiBhcmUgbm90IHN1cHBvcnRl ZC4KKyAgPC9wYXJhPgorCisgICAgPHBhcmE+CisgICAgIEZvciBleGFtcGxlLCB0aGUgZm9sbG93 aW5nIHF1ZXJ5IGF0dGVtcHRzIHRvIGNhc3QgYSA8dHlwZT50ZXh0PC90eXBlPiB0eXBlIHZhbHVl IHRvIDx0eXBlPmludGVnZXI8L3R5cGU+IHR5cGUsCisgICAgIGJ1dCB3aGVuIHRoZSBjb252ZXJz aW9uIGZhaWxzLCBpdCBmYWxscyBiYWNrIHRvIGV2YWx1YXRlIHRoZSBzdXBwbGllZCBkZWZhdWx0 IGV4cHJlc3Npb24uCis8cHJvZ3JhbWxpc3Rpbmc+CitTRUxFQ1QgQ0FTVChURVhUICdlcnJvcicg QVMgaW50ZWdlciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTlVMTDsgIDxs aW5lYW5ub3RhdGlvbj50cnVlPC9saW5lYW5ub3RhdGlvbj4KKzwvcHJvZ3JhbWxpc3Rpbmc+Cisg ICAgPC9wYXJhPgorICA8L3NlY3QzPgorCiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlkPSJzcWwt c3ludGF4LWNvbGxhdGUtZXhwcnMiPgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9w Z19jYXN0LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYwppbmRleCAxNzczYzljNTQ5 MS4uNmZlNjVkMjRkMzEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2FzdC5j CisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfY2FzdC5jCkBAIC04NCw2ICs4NCw3IEBAIENh c3RDcmVhdGUoT2lkIHNvdXJjZXR5cGVpZCwgT2lkIHRhcmdldHR5cGVpZCwKIAl2YWx1ZXNbQW51 bV9wZ19jYXN0X2Nhc3RmdW5jIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGZ1bmNpZCk7CiAJdmFs dWVzW0FudW1fcGdfY2FzdF9jYXN0Y29udGV4dCAtIDFdID0gQ2hhckdldERhdHVtKGNhc3Rjb250 ZXh0KTsKIAl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RtZXRob2QgLSAxXSA9IENoYXJHZXREYXR1 bShjYXN0bWV0aG9kKTsKKwl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RlcnJvcnNhZmUgLSAxXSA9 IEJvb2xHZXREYXR1bShmYWxzZSk7CiAKIAl0dXBsZSA9IGhlYXBfZm9ybV90dXBsZShSZWxhdGlv bkdldERlc2NyKHJlbGF0aW9uKSwgdmFsdWVzLCBudWxscyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhw ci5jCmluZGV4IGIzMDJiZTM2ZjczLi4xZGUwZDQ2NWY1NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhw ci5jCkBAIC05OSw2ICs5OSw5IEBAIHN0YXRpYyB2b2lkIEV4ZWNCdWlsZEFnZ1RyYW5zQ2FsbChF eHByU3RhdGUgKnN0YXRlLCBBZ2dTdGF0ZSAqYWdnc3RhdGUsCiBzdGF0aWMgdm9pZCBFeGVjSW5p dEpzb25FeHByKEpzb25FeHByICpqc2V4cHIsIEV4cHJTdGF0ZSAqc3RhdGUsCiAJCQkJCQkJIERh dHVtICpyZXN2LCBib29sICpyZXNudWxsLAogCQkJCQkJCSBFeHByRXZhbFN0ZXAgKnNjcmF0Y2gp Oworc3RhdGljIHZvaWQgRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByKFNhZmVUeXBlQ2FzdEV4cHIg KnN0Y2V4cHIsIEV4cHJTdGF0ZSAqc3RhdGUsCisJCQkJCQkJCQkgRGF0dW0gKnJlc3YsIGJvb2wg KnJlc251bGwsCisJCQkJCQkJCQkgRXhwckV2YWxTdGVwICpzY3JhdGNoKTsKIHN0YXRpYyB2b2lk IEV4ZWNJbml0SnNvbkNvZXJjaW9uKEV4cHJTdGF0ZSAqc3RhdGUsIEpzb25SZXR1cm5pbmcgKnJl dHVybmluZywKIAkJCQkJCQkJIEVycm9yU2F2ZUNvbnRleHQgKmVzY29udGV4dCwgYm9vbCBvbWl0 X3F1b3RlcywKIAkJCQkJCQkJIGJvb2wgZXhpc3RzX2NvZXJjZSwKQEAgLTE3NDIsNiArMTc0NSw3 IEBAIEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRlLAogCiAJCQkJ ZWxlbXN0YXRlLT5pbm5lcm1vc3RfY2FzZXZhbCA9IChEYXR1bSAqKSBwYWxsb2Moc2l6ZW9mKERh dHVtKSk7CiAJCQkJZWxlbXN0YXRlLT5pbm5lcm1vc3RfY2FzZW51bGwgPSAoYm9vbCAqKSBwYWxs b2Moc2l6ZW9mKGJvb2wpKTsKKwkJCQllbGVtc3RhdGUtPmVzY29udGV4dCA9IHN0YXRlLT5lc2Nv bnRleHQ7CiAKIAkJCQlFeGVjSW5pdEV4cHJSZWMoYWNvZXJjZS0+ZWxlbWV4cHIsIGVsZW1zdGF0 ZSwKIAkJCQkJCQkJJmVsZW1zdGF0ZS0+cmVzdmFsdWUsICZlbGVtc3RhdGUtPnJlc251bGwpOwpA QCAtMjIxOCw2ICsyMjIyLDE0IEBAIEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBFeHByU3Rh dGUgKnN0YXRlLAogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHBy OgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgICAqc3RjZXhwciA9IGNhc3ROb2RlKFNhZmVU eXBlQ2FzdEV4cHIsIG5vZGUpOworCisJCQkJRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByKHN0Y2V4 cHIsIHN0YXRlLCByZXN2LCByZXNudWxsLCAmc2NyYXRjaCk7CisJCQkJYnJlYWs7CisJCQl9CisK IAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXsKIAkJCQlDb2FsZXNjZUV4cHIgKmNvYWxlc2Nl ID0gKENvYWxlc2NlRXhwciAqKSBub2RlOwpAQCAtMjc4NCw3ICsyNzk2LDcgQEAgRXhlY0luaXRG dW5jKEV4cHJFdmFsU3RlcCAqc2NyYXRjaCwgRXhwciAqbm9kZSwgTGlzdCAqYXJncywgT2lkIGZ1 bmNpZCwKIAogCS8qIEluaXRpYWxpemUgZnVuY3Rpb24gY2FsbCBwYXJhbWV0ZXIgc3RydWN0dXJl IHRvbyAqLwogCUluaXRGdW5jdGlvbkNhbGxJbmZvRGF0YSgqZmNpbmZvLCBmbGluZm8sCi0JCQkJ CQkJIG5hcmdzLCBpbnB1dGNvbGxpZCwgTlVMTCwgTlVMTCk7CisJCQkJCQkJIG5hcmdzLCBpbnB1 dGNvbGxpZCwgKE5vZGUgKikgc3RhdGUtPmVzY29udGV4dCwgTlVMTCk7CiAKIAkvKiBLZWVwIGV4 dHJhIGNvcGllcyBvZiB0aGlzIGluZm8gdG8gc2F2ZSBhbiBpbmRpcmVjdGlvbiBhdCBydW50aW1l ICovCiAJc2NyYXRjaC0+ZC5mdW5jLmZuX2FkZHIgPSBmbGluZm8tPmZuX2FkZHI7CkBAIC00Nzgy LDYgKzQ3OTQsNTMgQEAgRXhlY0J1aWxkUGFyYW1TZXRFcXVhbChUdXBsZURlc2MgZGVzYywKIAly ZXR1cm4gc3RhdGU7CiB9CiAKKy8qCisgKiBQdXNoIHN0ZXBzIHRvIGV2YWx1YXRlIGEgU2FmZVR5 cGVDYXN0RXhwciBhbmQgaXRzIHZhcmlvdXMgc3Vic2lkaWFyeQorICogZXhwcmVzc2lvbnMuCisg Ki8KK3N0YXRpYyB2b2lkCitFeGVjSW5pdFNhZmVUeXBlQ2FzdEV4cHIoU2FmZVR5cGVDYXN0RXhw ciAqc3RjZXhwciAsIEV4cHJTdGF0ZSAqc3RhdGUsCisJCQkJCQkgRGF0dW0gKnJlc3YsIGJvb2wg KnJlc251bGwsCisJCQkJCQkgRXhwckV2YWxTdGVwICpzY3JhdGNoKQoreworCS8qCisJICogSWYg d2UgY2FuIG5vdCBjb2VyY2UgdG8gdGhlIHRhcmdldCB0eXBlLCBmYWxsYmFjayB0byB0aGUgREVG QVVMVAorCSAqIGV4cHJlc3Npb24gc3BlY2lmaWVkIGluIHRoZSBPTiBDT05WRVJTSU9OIEVSUk9S IGNsYXVzZSwgYW5kIHdlIGFyZSBkb25lLgorCSAqLworCWlmIChzdGNleHByLT5jYXN0X2V4cHIg PT0gTlVMTCkKKwl7CisJCUV4ZWNJbml0RXhwclJlYygoRXhwciAqKSBzdGNleHByLT5kZWZhdWx0 X2V4cHIsCisJCQkJCQlzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisJCXJldHVybjsKKwl9CisJZWxz ZQorCXsKKwkJU2FmZVR5cGVDYXN0U3RhdGUgKnN0Y3N0YXRlOworCQlFcnJvclNhdmVDb250ZXh0 ICpzYXZlZF9lc2NvbnRleHQ7CisKKwkJc3Rjc3RhdGUgPSBwYWxsb2MwKHNpemVvZihTYWZlVHlw ZUNhc3RTdGF0ZSkpOworCQlzdGNzdGF0ZS0+c3RjZXhwciA9IHN0Y2V4cHI7CisJCXN0Y3N0YXRl LT5lc2NvbnRleHQudHlwZSA9IFRfRXJyb3JTYXZlQ29udGV4dDsKKwkJc3RhdGUtPmVzY29udGV4 dCA9ICZzdGNzdGF0ZS0+ZXNjb250ZXh0OworCisJCS8qIGV2YWx1YXRlIGFyZ3VtZW50IGV4cHJl c3Npb24gaW50byBzdGVwJ3MgcmVzdWx0IGFyZWEgKi8KKwkJRXhlY0luaXRFeHByUmVjKChFeHBy ICopIHN0Y2V4cHItPmNhc3RfZXhwciwKKwkJCQkJCXN0YXRlLCByZXN2LCByZXNudWxsKTsKKwkJ c2NyYXRjaC0+b3Bjb2RlID0gRUVPUF9TQUZFVFlQRV9DQVNUOworCQlzY3JhdGNoLT5kLnN0Y2V4 cHIuc3Rjc3RhdGUgPSBzdGNzdGF0ZTsKKwkJRXhwckV2YWxQdXNoU3RlcChzdGF0ZSwgc2NyYXRj aCk7CisKKwkJLyogU3RlcHMgdG8gZXZhbHVhdGUgdGhlIERFRkFVTFQgZXhwcmVzc2lvbiAqLwor CQlzYXZlZF9lc2NvbnRleHQgPSBzdGF0ZS0+ZXNjb250ZXh0OworCQlzdGF0ZS0+ZXNjb250ZXh0 ID0gTlVMTDsKKwkJRXhlY0luaXRFeHByUmVjKChFeHByICopIHN0Y3N0YXRlLT5zdGNleHByLT5k ZWZhdWx0X2V4cHIsCisJCQkJCQlzdGF0ZSwgcmVzdiwgcmVzbnVsbCk7CisJCXN0YXRlLT5lc2Nv bnRleHQgPSBzYXZlZF9lc2NvbnRleHQ7CisKKwkJc3Rjc3RhdGUtPmp1bXBfZW5kID0gc3RhdGUt PnN0ZXBzX2xlbjsKKwl9Cit9CisKIC8qCiAgKiBQdXNoIHN0ZXBzIHRvIGV2YWx1YXRlIGEgSnNv bkV4cHIgYW5kIGl0cyB2YXJpb3VzIHN1YnNpZGlhcnkgZXhwcmVzc2lvbnMuCiAgKi8KZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJwLmMgYi9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmluZGV4IDY3ZjRlMDBlYWM0Li5mMWQ4ZGYxYWM0 MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYworKysg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCkBAIC01NjgsNiArNTY4LDcg QEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0 LCBib29sICppc251bGwpCiAJCSYmQ0FTRV9FRU9QX1hNTEVYUFIsCiAJCSYmQ0FTRV9FRU9QX0pT T05fQ09OU1RSVUNUT1IsCiAJCSYmQ0FTRV9FRU9QX0lTX0pTT04sCisJCSYmQ0FTRV9FRU9QX1NB RkVUWVBFX0NBU1QsCiAJCSYmQ0FTRV9FRU9QX0pTT05FWFBSX1BBVEgsCiAJCSYmQ0FTRV9FRU9Q X0pTT05FWFBSX0NPRVJDSU9OLAogCQkmJkNBU0VfRUVPUF9KU09ORVhQUl9DT0VSQ0lPTl9GSU5J U0gsCkBAIC0xOTI2LDYgKzE5MjcsMjggQEAgRXhlY0ludGVycEV4cHIoRXhwclN0YXRlICpzdGF0 ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LCBib29sICppc251bGwpCiAJCQlFRU9fTkVYVCgpOwog CQl9CiAKKwkJRUVPX0NBU0UoRUVPUF9TQUZFVFlQRV9DQVNUKQorCQl7CisJCQlTYWZlVHlwZUNh c3RTdGF0ZSAqc3Rjc3RhdGUgPSBvcC0+ZC5zdGNleHByLnN0Y3N0YXRlOworCisJCQlpZiAoU09G VF9FUlJPUl9PQ0NVUlJFRCgmc3Rjc3RhdGUtPmVzY29udGV4dCkpCisJCQl7CisJCQkJKm9wLT5y ZXN2YWx1ZSA9IChEYXR1bSkgMDsKKwkJCQkqb3AtPnJlc251bGwgPSB0cnVlOworCisJCQkJLyoK KwkJCQkgKiBSZXNldCBmb3IgbmV4dCB1c2Ugc3VjaCBhcyBmb3IgY2F0Y2hpbmcgZXJyb3JzIHdo ZW4gY29lcmNpbmcKKwkJCQkgKiBhIGV4cHJlc3Npb24uCisJCQkJICovCisJCQkJc3Rjc3RhdGUt PmVzY29udGV4dC5lcnJvcl9vY2N1cnJlZCA9IGZhbHNlOworCQkJCXN0Y3N0YXRlLT5lc2NvbnRl eHQuZGV0YWlsc193YW50ZWQgPSBmYWxzZTsKKworCQkJCUVFT19ORVhUKCk7CisJCQl9CisJCQll bHNlCisJCQkJRUVPX0pVTVAoc3Rjc3RhdGUtPmp1bXBfZW5kKTsKKwkJfQorCiAJCUVFT19DQVNF KEVFT1BfSlNPTkVYUFJfUEFUSCkKIAkJewogCQkJLyogdG9vIGNvbXBsZXggZm9yIGFuIGlubGlu ZSBpbXBsZW1lbnRhdGlvbiAqLwpAQCAtMzY0NCw2ICszNjY3LDEyIEBAIEV4ZWNFdmFsQXJyYXlD b2VyY2UoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwgRXhwckNvbnRleHQgKmVj b250ZXh0KQogCQkJCQkJCSAgZWNvbnRleHQsCiAJCQkJCQkJICBvcC0+ZC5hcnJheWNvZXJjZS5y ZXN1bHRlbGVtdHlwZSwKIAkJCQkJCQkgIG9wLT5kLmFycmF5Y29lcmNlLmFtc3RhdGUpOworCisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQob3AtPmQuYXJyYXljb2VyY2UuZWxlbWV4cHJzdGF0ZS0+ ZXNjb250ZXh0KSkKKwl7CisJCSpvcC0+cmVzdmFsdWUgPSAoRGF0dW0pIDA7CisJCSpvcC0+cmVz bnVsbCA9IHRydWU7CisJfQogfQogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvaml0L2xs dm0vbGx2bWppdF9leHByLmMgYi9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYwpp bmRleCBhYzg4ODgxZTk5NS4uYmM3Y2QzMjgzYTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2pp dC9sbHZtL2xsdm1qaXRfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRf ZXhwci5jCkBAIC0yMjU2LDYgKzIyNTYsMzIgQEAgbGx2bV9jb21waWxlX2V4cHIoRXhwclN0YXRl ICpzdGF0ZSkKIAkJCQlMTFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tvcG5vICsgMV0pOwogCQkJCWJy ZWFrOwogCisJCQljYXNlIEVFT1BfU0FGRVRZUEVfQ0FTVDoKKwkJCQl7CisJCQkJCVNhZmVUeXBl Q2FzdFN0YXRlICpzdGNzdGF0ZSA9IG9wLT5kLnN0Y2V4cHIuc3Rjc3RhdGU7CisKKwkJCQkJaWYg KFNPRlRfRVJST1JfT0NDVVJSRUQoJnN0Y3N0YXRlLT5lc2NvbnRleHQpKQorCQkJCQl7CisJCQkJ CQkvKgorCQkJCQkJICogUmVzZXQgZm9yIG5leHQgdXNlIHN1Y2ggYXMgZm9yIGNhdGNoaW5nIGVy cm9ycyB3aGVuCisJCQkJCQkgKiBjb2VyY2luZyBhIGV4cHJlc3Npb24uCisJCQkJCQkgKi8KKwkJ CQkJCXN0Y3N0YXRlLT5lc2NvbnRleHQuZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwkJCQkJCXN0 Y3N0YXRlLT5lc2NvbnRleHQuZGV0YWlsc193YW50ZWQgPSBmYWxzZTsKKworCQkJCQkJLyogc2V0 IHJlc251bGwgdG8gdHJ1ZSAqLworCQkJCQkJTExWTUJ1aWxkU3RvcmUoYiwgbF9zYm9vbF9jb25z dCgxKSwgdl9yZXNudWxscCk7CisJCQkJCQkvKiByZXNldCByZXN2YWx1ZSAqLworCQkJCQkJTExW TUJ1aWxkU3RvcmUoYiwgbF9kYXR1bV9jb25zdCgwKSwgdl9yZXN2YWx1ZXApOworCisJCQkJCQlM TFZNQnVpbGRCcihiLCBvcGJsb2Nrc1tvcG5vICsgMV0pOworCQkJCQl9CisJCQkJCWVsc2UKKwkJ CQkJCUxMVk1CdWlsZEJyKGIsIG9wYmxvY2tzW3N0Y3N0YXRlLT5qdW1wX2VuZF0pOworCisJCQkJ CWJyZWFrOworCQkJCX0KKwogCQkJY2FzZSBFRU9QX0pTT05FWFBSX1BBVEg6CiAJCQkJewogCQkJ CQlKc29uRXhwclN0YXRlICpqc2VzdGF0ZSA9IG9wLT5kLmpzb25leHByLmpzZXN0YXRlOwpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMgYi9zcmMvYmFja2VuZC9ub2Rl cy9ub2RlRnVuY3MuYwppbmRleCBlZGU4MzhjZDQwYy4uZmUzZTZiMTFhMDggMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25v ZGVGdW5jcy5jCkBAIC0yMDYsNiArMjA2LDkgQEAgZXhwclR5cGUoY29uc3QgTm9kZSAqZXhwcikK IAkJY2FzZSBUX1Jvd0NvbXBhcmVFeHByOgogCQkJdHlwZSA9IEJPT0xPSUQ7CiAJCQlicmVhazsK KwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl0eXBlID0gKChjb25zdCBTYWZlVHlwZUNh c3RFeHByICopIGV4cHIpLT5yZXN1bHR0eXBlOworCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNj ZUV4cHI6CiAJCQl0eXBlID0gKChjb25zdCBDb2FsZXNjZUV4cHIgKikgZXhwciktPmNvYWxlc2Nl dHlwZTsKIAkJCWJyZWFrOwpAQCAtNDUwLDYgKzQ1Myw4IEBAIGV4cHJUeXBtb2QoY29uc3QgTm9k ZSAqZXhwcikKIAkJCQlyZXR1cm4gdHlwbW9kOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9T YWZlVHlwZUNhc3RFeHByOgorCQkJcmV0dXJuICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAqKSBl eHByKS0+cmVzdWx0dHlwbW9kOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJewogCQkJCS8q CkBAIC05NjUsNiArOTcwLDkgQEAgZXhwckNvbGxhdGlvbihjb25zdCBOb2RlICpleHByKQogCQkJ LyogUm93Q29tcGFyZUV4cHIncyByZXN1bHQgaXMgYm9vbGVhbiAuLi4gKi8KIAkJCWNvbGwgPSBJ bnZhbGlkT2lkOwkvKiAuLi4gc28gaXQgaGFzIG5vIGNvbGxhdGlvbiAqLwogCQkJYnJlYWs7CisJ CWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJY29sbCA9ICgoY29uc3QgU2FmZVR5cGVDYXN0 RXhwciAqKSBleHByKS0+cmVzdWx0Y29sbGlkOworCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2FsZXNj ZUV4cHI6CiAJCQljb2xsID0gKChjb25zdCBDb2FsZXNjZUV4cHIgKikgZXhwciktPmNvYWxlc2Nl Y29sbGlkOwogCQkJYnJlYWs7CkBAIC0xMjMyLDYgKzEyNDAsOSBAQCBleHByU2V0Q29sbGF0aW9u KE5vZGUgKmV4cHIsIE9pZCBjb2xsYXRpb24pCiAJCQkvKiBSb3dDb21wYXJlRXhwcidzIHJlc3Vs dCBpcyBib29sZWFuIC4uLiAqLwogCQkJQXNzZXJ0KCFPaWRJc1ZhbGlkKGNvbGxhdGlvbikpOyAv KiAuLi4gc28gbmV2ZXIgc2V0IGEgY29sbGF0aW9uICovCiAJCQlicmVhazsKKwkJY2FzZSBUX1Nh ZmVUeXBlQ2FzdEV4cHI6CisJCQkoKFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3VsdGNv bGxpZCA9IGNvbGxhdGlvbjsKKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJ KChDb2FsZXNjZUV4cHIgKikgZXhwciktPmNvYWxlc2NlY29sbGlkID0gY29sbGF0aW9uOwogCQkJ YnJlYWs7CkBAIC0xNzA2LDYgKzE3MTcsOSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhw cikKIAkJCQlsb2MgPSBsZWZ0bW9zdExvYyhsb2MsIHRjLT5sb2NhdGlvbik7CiAJCQl9CiAJCQli cmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQlsb2MgPSAoKGNvbnN0IFNhZmVU eXBlQ2FzdEV4cHIgKikgZXhwciktPmxvY2F0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9Db2xs YXRlQ2xhdXNlOgogCQkJLyoganVzdCB1c2UgYXJndW1lbnQncyBsb2NhdGlvbiAqLwogCQkJbG9j ID0gZXhwckxvY2F0aW9uKCgoY29uc3QgQ29sbGF0ZUNsYXVzZSAqKSBleHByKS0+YXJnKTsKQEAg LTIzMjEsNiArMjMzNSwxOCBAQCBleHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9k ZSwKIAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBl Q2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAgICpzY2V4cHIgPSAoU2FmZVR5 cGVDYXN0RXhwciAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoc2NleHByLT5zb3VyY2VfZXhwcikp CisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChXQUxLKHNjZXhwci0+Y2FzdF9leHByKSkKKwkJ CQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc2NleHByLT5kZWZhdWx0X2V4cHIpKQorCQkJ CQlyZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgog CQkJcmV0dXJuIFdBTEsoKChDb2FsZXNjZUV4cHIgKikgbm9kZSktPmFyZ3MpOwogCQljYXNlIFRf TWluTWF4RXhwcjoKQEAgLTMzMzAsNiArMzM1NiwxOSBAQCBleHByZXNzaW9uX3RyZWVfbXV0YXRv cl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJcmV0dXJuIChOb2RlICopIG5ld25vZGU7CiAJCQl9CiAJ CQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVD YXN0RXhwciAgICpzY2V4cHIgPSAoU2FmZVR5cGVDYXN0RXhwciAqKSBub2RlOworCQkJCVNhZmVU eXBlQ2FzdEV4cHIgICAqbmV3bm9kZTsKKworCQkJCUZMQVRDT1BZKG5ld25vZGUsIHNjZXhwciwg U2FmZVR5cGVDYXN0RXhwcik7CisJCQkJTVVUQVRFKG5ld25vZGUtPnNvdXJjZV9leHByLCBzY2V4 cHItPnNvdXJjZV9leHByLCBOb2RlICopOworCQkJCU1VVEFURShuZXdub2RlLT5jYXN0X2V4cHIs IHNjZXhwci0+Y2FzdF9leHByLCBOb2RlICopOworCQkJCU1VVEFURShuZXdub2RlLT5kZWZhdWx0 X2V4cHIsIHNjZXhwci0+ZGVmYXVsdF9leHByLCBOb2RlICopOworCisJCQkJcmV0dXJuIChOb2Rl ICopIG5ld25vZGU7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJ CXsKIAkJCQlDb2FsZXNjZUV4cHIgKmNvYWxlc2NlZXhwciA9IChDb2FsZXNjZUV4cHIgKikgbm9k ZTsKQEAgLTQ0NjQsNiArNDUwMywyOCBAQCByYXdfZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBs KE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVlOwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2Ug VF9TYWZlVHlwZUNhc3Q6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0ICAgKnNjID0gKFNhZmVUeXBl Q2FzdCAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoc2MtPmNhc3QpKQorCQkJCQlyZXR1cm4gdHJ1 ZTsKKwkJCQlpZiAoV0FMSyhzYy0+cmF3X2RlZmF1bHQpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJ CX0KKwkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZl VHlwZUNhc3RFeHByICAgKnN0YyA9IChTYWZlVHlwZUNhc3RFeHByICopIG5vZGU7CisKKwkJCQlp ZiAoV0FMSyhzdGMtPnNvdXJjZV9leHByKSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdB TEsoc3RjLT5jYXN0X2V4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzdGMt PmRlZmF1bHRfZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJfQorCQkJYnJlYWs7CiAJCWNh c2UgVF9Db2xsYXRlQ2xhdXNlOgogCQkJcmV0dXJuIFdBTEsoKChDb2xsYXRlQ2xhdXNlICopIG5v ZGUpLT5hcmcpOwogCQljYXNlIFRfU29ydEJ5OgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNl cy5jCmluZGV4IDMyYWYwZGY2YzcwLi5iNmE5ZGMyZjVmZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL2NsYXVzZXMuYwpAQCAtMjk1MSw2ICsyOTUxLDMyIEBAIGV2YWxfY29uc3RfZXhwcmVzc2lv bnNfbXV0YXRvcihOb2RlICpub2RlLAogCQkJCQkJCQkJCQkJICBjb3B5T2JqZWN0KGp2ZS0+Zm9y bWF0KSk7CiAJCQl9CiAKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQl7CisJCQkJU2Fm ZVR5cGVDYXN0RXhwciAJKnN0YyA9IChTYWZlVHlwZUNhc3RFeHByICopIG5vZGU7CisJCQkJU2Fm ZVR5cGVDYXN0RXhwcgkqbmV3ZXhwcjsKKwkJCQlOb2RlCSAgICpzb3VyY2VfZXhwciA9IHN0Yy0+ c291cmNlX2V4cHI7CisJCQkJTm9kZQkgICAqZGVmYXVsdF9leHByID0gc3RjLT5kZWZhdWx0X2V4 cHI7CisKKwkJCQlzb3VyY2VfZXhwciA9IGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihz b3VyY2VfZXhwciwgY29udGV4dCk7CisJCQkJZGVmYXVsdF9leHByID0gZXZhbF9jb25zdF9leHBy ZXNzaW9uc19tdXRhdG9yKGRlZmF1bHRfZXhwciwgY29udGV4dCk7CisKKwkJCQkvKgorCQkJCSAq IFdlIG11c3Qgbm90IHJlZHVjZSBhbnkgcmVjb2duaXphYmx5IGNvbnN0YW50IHN1YmV4cHJlc3Np b25zCisJCQkJICogaW4gY2FzdF9leHByIGhlcmUsIHNpbmNlIHdlIGRvbuKAmXQgd2FudCBpdCB0 byBmYWlsCisJCQkJICogcHJlbWF0dXJlbHkuCisJCQkJICovCisJCQkJbmV3ZXhwciA9IG1ha2VO b2RlKFNhZmVUeXBlQ2FzdEV4cHIpOworCQkJCW5ld2V4cHItPnNvdXJjZV9leHByID0gc291cmNl X2V4cHI7CisJCQkJbmV3ZXhwci0+Y2FzdF9leHByID0gc3RjLT5jYXN0X2V4cHI7CisJCQkJbmV3 ZXhwci0+ZGVmYXVsdF9leHByID0gZGVmYXVsdF9leHByOworCQkJCW5ld2V4cHItPnJlc3VsdHR5 cGUgPSBzdGMtPnJlc3VsdHR5cGU7CisJCQkJbmV3ZXhwci0+cmVzdWx0dHlwbW9kID0gc3RjLT5y ZXN1bHR0eXBtb2Q7CisJCQkJbmV3ZXhwci0+cmVzdWx0Y29sbGlkID0gc3RjLT5yZXN1bHRjb2xs aWQ7CisKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3ZXhwcjsKKwkJCX0KKwogCQljYXNlIFRfU3Vi UGxhbjoKIAkJY2FzZSBUX0FsdGVybmF0aXZlU3ViUGxhbjoKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYzNh MGEzNTRhOWMuLjhhMjdlMDQ1YmMwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTE2MDEzLDYgKzE2MDEzLDI4 IEBAIGZ1bmNfZXhwcl9jb21tb25fc3ViZXhwcjoKIAkJCQl9CiAJCQl8IENBU1QgJygnIGFfZXhw ciBBUyBUeXBlbmFtZSAnKScKIAkJCQl7ICQkID0gbWFrZVR5cGVDYXN0KCQzLCAkNSwgQDEpOyB9 CisJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSBFUlJPUl9QIE9OIENPTlZFUlNJT05f UCBFUlJPUl9QICcpJworCQkJCXsgJCQgPSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7IH0KKwkJ CXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5cGVuYW1lIE5VTExfUCBPTiBDT05WRVJTSU9OX1AgRVJS T1JfUCAnKScKKwkJCQl7CisJCQkJCVR5cGVDYXN0ICpjYXN0ID0gKFR5cGVDYXN0ICopIG1ha2VU eXBlQ2FzdCgkMywgJDUsIEAxKTsKKworCQkJCQlTYWZlVHlwZUNhc3QgKnNhZmVjYXN0ID0gbWFr ZU5vZGUoU2FmZVR5cGVDYXN0KTsKKwkJCQkJc2FmZWNhc3QtPmNhc3QgPSAoTm9kZSAqKSBjYXN0 OworCQkJCQlzYWZlY2FzdC0+cmF3X2RlZmF1bHQgPSBtYWtlTnVsbEFDb25zdCgtMSk7OworCisJ CQkJCSQkID0gKE5vZGUgKikgc2FmZWNhc3Q7CisJCQkJfQorCQkJfCBDQVNUICcoJyBhX2V4cHIg QVMgVHlwZW5hbWUgREVGQVVMVCBhX2V4cHIgT04gQ09OVkVSU0lPTl9QIEVSUk9SX1AgJyknCisJ CQkJeworCQkJCQlUeXBlQ2FzdCAqY2FzdCA9IChUeXBlQ2FzdCAqKSBtYWtlVHlwZUNhc3QoJDMs ICQ1LCBAMSk7CisKKwkJCQkJU2FmZVR5cGVDYXN0ICpzYWZlY2FzdCA9IG1ha2VOb2RlKFNhZmVU eXBlQ2FzdCk7CisJCQkJCXNhZmVjYXN0LT5jYXN0ID0gKE5vZGUgKikgY2FzdDsKKwkJCQkJc2Fm ZWNhc3QtPnJhd19kZWZhdWx0ID0gJDc7CisKKwkJCQkJJCQgPSAoTm9kZSAqKSBzYWZlY2FzdDsK KwkJCQl9CiAJCQl8IEVYVFJBQ1QgJygnIGV4dHJhY3RfbGlzdCAnKScKIAkJCQl7CiAJCQkJCSQk ID0gKE5vZGUgKikgbWFrZUZ1bmNDYWxsKFN5c3RlbUZ1bmNOYW1lKCJleHRyYWN0IiksCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfYWdnLmMKaW5kZXggYjgzNDA1NTdiMzQuLmRlNzdmNmU5MzAyIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2FnZy5jCkBAIC00OTAsNiArNDkwLDEyIEBAIGNoZWNrX2FnZ2xldmVsc19hbmRfY29u c3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQogCQkJCWVyciA9IF8oImdy b3VwaW5nIG9wZXJhdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNoZWNrIGNvbnN0cmFpbnRzIik7 CiAKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQlpZiAoaXNB Z2cpCisJCQkJZXJyID0gXygiYWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4g Q0FTVCBERUZBVUxUIGV4cHJlc3Npb25zIik7CisJCQllbHNlCisJCQkJZXJyID0gXygiZ3JvdXBp bmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25z Iik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2Ug RVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAKQEAgLTk4Myw2ICs5ODksOSBAQCB0cmFuc2Zv cm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAog CQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQllcnIgPSBfKCJ3aW5kb3cgZnVuY3Rp b25zIGFyZSBub3QgYWxsb3dlZCBpbiBjaGVjayBjb25zdHJhaW50cyIpOwogCQkJYnJlYWs7CisJ CWNhc2UgRVhQUl9LSU5EX0NBU1RfREVGQVVMVDoKKwkJCWVyciA9IF8oIndpbmRvdyBmdW5jdGlv bnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucyIpOworCQkJYnJl YWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9G VU5DVElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygid2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFs bG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2V4cHIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5k ZXggMzJkNmFlOTE4Y2EuLmVjNDNmY2QxOGZiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAg LTE3LDYgKzE3LDggQEAKIAogI2luY2x1ZGUgImFjY2Vzcy9odHVwX2RldGFpbHMuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX2FnZ3JlZ2F0ZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY2FzdC5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlw ZS5oIgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5o IgpAQCAtMzcsNiArMzksNyBAQAogI2luY2x1ZGUgInV0aWxzL2RhdGUuaCIKICNpbmNsdWRlICJ1 dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUg InV0aWxzL3N5c2NhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCiAjaW5jbHVk ZSAidXRpbHMveG1sLmgiCiAKQEAgLTYwLDcgKzYzLDggQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9y bU11bHRpQXNzaWduUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTXVsdGlBc3NpZ25SZWYgKm1hcmVm KTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1DYXNlRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIENh c2VFeHByICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBz dGF0ZSwgU3ViTGluayAqc3VibGluayk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtQXJyYXlFeHBy KFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCi0JCQkJCQkJCU9pZCBhcnJheV90 eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBtb2QpOworCQkJCQkJCQlPaWQgYXJyYXlf dHlwZSwgT2lkIGVsZW1lbnRfdHlwZSwgaW50MzIgdHlwbW9kLAorCQkJCQkJCQlib29sICpjYW5f Y29lcmNlKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Sb3dFeHByKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgUm93RXhwciAqciwgYm9vbCBhbGxvd0RlZmF1bHQpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9y bUNvYWxlc2NlRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIENvYWxlc2NlRXhwciAqYyk7CiBzdGF0 aWMgTm9kZSAqdHJhbnNmb3JtTWluTWF4RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE1pbk1heEV4 cHIgKm0pOwpAQCAtNzYsNiArODAsNyBAQCBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtV2hvbGVSb3dS ZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkgIGludCBzdWJsZXZlbHNfdXAsIGludCBs b2NhdGlvbik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSW5kaXJlY3Rpb24oUGFyc2VTdGF0ZSAq cHN0YXRlLCBBX0luZGlyZWN0aW9uICppbmQpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybVR5cGVD YXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRjKTsKK3N0YXRpYyBOb2RlICp0cmFu c2Zvcm1UeXBlU2FmZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTYWZlVHlwZUNhc3QgKnRjKTsK IHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Db2xsYXRlQ2xhdXNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Q29sbGF0ZUNsYXVzZSAqYyk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbk9iamVjdENvbnN0 cnVjdG9yKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJSnNvbk9iamVjdENvbnN0cnVj dG9yICpjdG9yKTsKQEAgLTE2NCwxMyArMTY5LDE3IEBAIHRyYW5zZm9ybUV4cHJSZWN1cnNlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAogCQljYXNlIFRfQV9BcnJheUV4cHI6CiAJ CQlyZXN1bHQgPSB0cmFuc2Zvcm1BcnJheUV4cHIocHN0YXRlLCAoQV9BcnJheUV4cHIgKikgZXhw ciwKLQkJCQkJCQkJCQlJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCAtMSk7CisJCQkJCQkJCQkJSW52 YWxpZE9pZCwgSW52YWxpZE9pZCwgLTEsIE5VTEwpOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBUX1R5 cGVDYXN0OgogCQkJcmVzdWx0ID0gdHJhbnNmb3JtVHlwZUNhc3QocHN0YXRlLCAoVHlwZUNhc3Qg KikgZXhwcik7CiAJCQlicmVhazsKIAorCQljYXNlIFRfU2FmZVR5cGVDYXN0OgorCQkJcmVzdWx0 ID0gdHJhbnNmb3JtVHlwZVNhZmVDYXN0KHBzdGF0ZSwgKFNhZmVUeXBlQ2FzdCAqKSBleHByKTsK KwkJCWJyZWFrOworCiAJCWNhc2UgVF9Db2xsYXRlQ2xhdXNlOgogCQkJcmVzdWx0ID0gdHJhbnNm b3JtQ29sbGF0ZUNsYXVzZShwc3RhdGUsIChDb2xsYXRlQ2xhdXNlICopIGV4cHIpOwogCQkJYnJl YWs7CkBAIC01NjQsNiArNTczLDcgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgog CQljYXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgogCQljYXNlIEVYUFJfS0lORF9ET01B SU5fQ0hFQ0s6CisJCWNhc2UgRVhQUl9LSU5EX0NBU1RfREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJ TkRfRlVOQ1RJT05fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoK IAkJY2FzZSBFWFBSX0tJTkRfSU5ERVhfUFJFRElDQVRFOgpAQCAtMTgyNCw2ICsxODM0LDkgQEAg dHJhbnNmb3JtU3ViTGluayhQYXJzZVN0YXRlICpwc3RhdGUsIFN1YkxpbmsgKnN1YmxpbmspCiAJ CWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3Vi cXVlcnkgaW4gY2hlY2sgY29uc3RyYWludCIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5E X0NBU1RfREVGQVVMVDoKKwkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gQ0FTVCBE RUZBVUxUIGV4cHJlc3Npb24iKTsKKwkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5f REVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIAkJCWVyciA9IF8o ImNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gREVGQVVMVCBleHByZXNzaW9uIik7CkBAIC0yMDExLDE2 ICsyMDI0LDIzIEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5r ICpzdWJsaW5rKQogICogSWYgdGhlIGNhbGxlciBzcGVjaWZpZXMgdGhlIHRhcmdldCB0eXBlLCB0 aGUgcmVzdWx0aW5nIGFycmF5IHdpbGwKICAqIGJlIG9mIGV4YWN0bHkgdGhhdCB0eXBlLiAgT3Ro ZXJ3aXNlIHdlIHRyeSB0byBpbmZlciBhIGNvbW1vbiB0eXBlCiAgKiBmb3IgdGhlIGVsZW1lbnRz IHVzaW5nIHNlbGVjdF9jb21tb25fdHlwZSgpLgorICoKKyAqIE1vc3Qgb2YgdGhlIHRpbWUsIGNh bl9jb2VyY2Ugd2lsbCBiZSBOVUxMLgorICogY2FuX2NvZXJjZSBpcyBub3QgTlVMTCBvbmx5IHdo ZW4gcGVyZm9ybWluZyBwYXJzZSBhbmFseXNpcyBmb3IgZXhwcmVzc2lvbnMKKyAqIGxpa2UgQ0FT VChERUZBVUxUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SKS4gY2FuX2NvZXJjZSBzaG91bGQgYmUg YXNzdW1lZCB0bworICogZGVmYXVsdCB0byB0cnVlLiBJZiBjb2VyY2UgYXJyYXkgZWxlbWVudHMg dG8gdGhlIHRhcmdldCB0eXBlIGZhaWxzLAorICogY2FuX2NvZXJjZSB3aWxsIGJlIHNldCB0byBm YWxzZS4KICAqLwogc3RhdGljIE5vZGUgKgogdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUg KnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCi0JCQkJICAgT2lkIGFycmF5X3R5cGUsIE9pZCBlbGVt ZW50X3R5cGUsIGludDMyIHR5cG1vZCkKKwkJCQkgICBPaWQgYXJyYXlfdHlwZSwgT2lkIGVsZW1l bnRfdHlwZSwgaW50MzIgdHlwbW9kLCBib29sICpjYW5fY29lcmNlKQogewogCUFycmF5RXhwciAg Km5ld2EgPSBtYWtlTm9kZShBcnJheUV4cHIpOwogCUxpc3QJICAgKm5ld2VsZW1zID0gTklMOwog CUxpc3QJICAgKm5ld2NvZXJjZWRlbGVtcyA9IE5JTDsKIAlMaXN0Q2VsbCAgICplbGVtZW50Owog CU9pZAkJCWNvZXJjZV90eXBlOworCU9pZAkJCWNvZXJjZV90eXBlX2NvbGw7CiAJYm9vbAkJY29l cmNlX2hhcmQ7CiAKIAkvKgpAQCAtMjA0NSw5ICsyMDY1LDEwIEBAIHRyYW5zZm9ybUFycmF5RXhw cihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCQkJCQkJCQkJICAoQV9BcnJh eUV4cHIgKikgZSwKIAkJCQkJCQkJCSAgYXJyYXlfdHlwZSwKIAkJCQkJCQkJCSAgZWxlbWVudF90 eXBlLAotCQkJCQkJCQkJICB0eXBtb2QpOworCQkJCQkJCQkJICB0eXBtb2QsCisJCQkJCQkJCQkg IGNhbl9jb2VyY2UpOwogCQkJLyogd2UgY2VydGFpbmx5IGhhdmUgYW4gYXJyYXkgaGVyZSAqLwot CQkJQXNzZXJ0KGFycmF5X3R5cGUgPT0gSW52YWxpZE9pZCB8fCBhcnJheV90eXBlID09IGV4cHJU eXBlKG5ld2UpKTsKKwkJCUFzc2VydChjYW5fY29lcmNlIHx8IGFycmF5X3R5cGUgPT0gSW52YWxp ZE9pZCB8fCBhcnJheV90eXBlID09IGV4cHJUeXBlKG5ld2UpKTsKIAkJCW5ld2EtPm11bHRpZGlt cyA9IHRydWU7CiAJCX0KIAkJZWxzZQpAQCAtMjA4OCw2ICsyMTA5LDkgQEAgdHJhbnNmb3JtQXJy YXlFeHByKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCiAJfQogCWVsc2UKIAl7 CisJCS8qIFRoZSB0YXJnZXQgdHlwZSBpcyB2YWxpZCB3aGVuIHBlcmZvcm1pbmcgdHlwZS1zYWZl IGNhc3QgKi8KKwkJQXNzZXJ0KGNhbl9jb2VyY2UgPT0gTlVMTCk7CisKIAkJLyogQ2FuJ3QgaGFu ZGxlIGFuIGVtcHR5IGFycmF5IHdpdGhvdXQgYSB0YXJnZXQgdHlwZSAqLwogCQlpZiAobmV3ZWxl bXMgPT0gTklMKQogCQkJZXJlcG9ydChFUlJPUiwKQEAgLTIxMjUsNiArMjE0OSw4IEBAIHRyYW5z Zm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCQljb2Vy Y2VfaGFyZCA9IGZhbHNlOwogCX0KIAorCWNvZXJjZV90eXBlX2NvbGwgPSBnZXRfdHlwY29sbGF0 aW9uKGNvZXJjZV90eXBlKTsKKwogCS8qCiAJICogQ29lcmNlIGVsZW1lbnRzIHRvIHRhcmdldCB0 eXBlCiAJICoKQEAgLTIxMzQsMTMgKzIxNjAsNTMgQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQV9BcnJheUV4cHIgKmEsCiAJICogSWYgdGhlIGFycmF5J3MgdHlwZSB3 YXMgbWVyZWx5IGRlcml2ZWQgZnJvbSB0aGUgY29tbW9uIHR5cGUgb2YgaXRzCiAJICogZWxlbWVu dHMsIHRoZW4gdGhlIGVsZW1lbnRzIGFyZSBpbXBsaWNpdGx5IGNvZXJjZWQgdG8gdGhlIGNvbW1v biB0eXBlLgogCSAqIFRoaXMgaXMgY29uc2lzdGVudCB3aXRoIG90aGVyIHVzZXMgb2Ygc2VsZWN0 X2NvbW1vbl90eXBlKCkuCisJICoKKwkgKiBJZiBjYW5fY29lcmNlIGlzIG5vdCBOVUxMLCB3ZSBu ZWVkIHRvIHNhZmVseSB0ZXN0IHdoZXRoZXIgZWFjaCBlbGVtZW50CisJICogY2FuIGJlIGNvZXJj ZWQgdG8gdGhlIHRhcmdldCB0eXBlLCBzaW1pbGFyIHRvIHdoYXQgaXMgZG9uZSBpbgorCSAqIHRy YW5zZm9ybVR5cGVTYWZlQ2FzdC4KIAkgKi8KIAlmb3JlYWNoKGVsZW1lbnQsIG5ld2VsZW1zKQog CXsKIAkJTm9kZQkgICAqZSA9IChOb2RlICopIGxmaXJzdChlbGVtZW50KTsKLQkJTm9kZQkgICAq bmV3ZTsKKwkJYm9vbAkJZXhwcl9pc19jb25zdCA9IGZhbHNlOworCQlOb2RlCSAgICpuZXdlID0g TlVMTDsKIAotCQlpZiAoY29lcmNlX2hhcmQpCisJCWlmIChjYW5fY29lcmNlICE9IE5VTEwgJiYg SXNBKGUsIENvbnN0KSkKKwkJeworCQkJZXhwcl9pc19jb25zdCA9IHRydWU7CisKKwkJCS8qIGNv ZXJjZSBVTktOT1dOIENvbnN0IHRvIHRoZSB0YXJnZXQgdHlwZSAqLworCQkJaWYgKCpjYW5fY29l cmNlICYmIGV4cHJUeXBlKGUpID09IFVOS05PV05PSUQpCisJCQl7CisJCQkJbmV3ZSA9IENvZXJj ZVVua25vd25Db25zdFNhZmUocHN0YXRlLCBlLCBjb2VyY2VfdHlwZSwgdHlwbW9kLAorCQkJCQkJ CQkJCQkgIENPRVJDSU9OX0lNUExJQ0lULAorCQkJCQkJCQkJCQkgIENPRVJDRV9JTVBMSUNJVF9D QVNULAorCQkJCQkJCQkJCQkgIC0xLAorCQkJCQkJCQkJCQkgIGZhbHNlKTsKKwkJCQlpZiAobmV3 ZSA9PSBOVUxMKQorCQkJCXsKKwkJCQkJbmV3ZSA9IGU7CisJCQkJCSpjYW5fY29lcmNlID0gZmFs c2U7CisJCQkJfQorCQkJCW5ld2NvZXJjZWRlbGVtcyA9IGxhcHBlbmQobmV3Y29lcmNlZGVsZW1z LCBuZXdlKTsKKworCQkJCS8qCisJCQkJICogRG9uZSBoYW5kbGluZyB0aGlzIFVOS05PV04gQ29u c3QgZWxlbWVudDsgbW92ZSBvbiB0byB0aGUKKwkJCQkgKiBuZXh0LgorCQkJCSAqLworCQkJCWNv bnRpbnVlOworCQkJfQorCQl9CisKKwkJaWYgKGNhbl9jb2VyY2UgIT0gTlVMTCAmJiAoISpjYW5f Y29lcmNlKSkKKwkJeworCQkJLyoKKwkJCSAqIENhbiBub3QgY29lcmNlIHNvdXJjZSBleHByZXNz aW9uIHRvIHRoZSB0YXJnZXQgdHlwZSwganVzdCBhcHBlbmQKKwkJCSAqIHRoZSB0cmFuc2Zvcm1l ZCBlbGVtZW50IGV4cHJlc3Npb24gdG8gdGhlIGxpc3QuCisJCQkgKi8KKwkJCW5ld2UgPSBlOwor CQl9CisJCWVsc2UgaWYgKGNvZXJjZV9oYXJkKQogCQl7CiAJCQluZXdlID0gY29lcmNlX3RvX3Rh cmdldF90eXBlKHBzdGF0ZSwgZSwKIAkJCQkJCQkJCQkgZXhwclR5cGUoZSksCkBAIC0yMTUwLDEy ICsyMjE2LDc0IEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIEFfQXJy YXlFeHByICphLAogCQkJCQkJCQkJCSBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKIAkJCQkJCQkJCQkg LTEpOwogCQkJaWYgKG5ld2UgPT0gTlVMTCkKLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVy cmNvZGUoRVJSQ09ERV9DQU5OT1RfQ09FUkNFKSwKLQkJCQkJCSBlcnJtc2coImNhbm5vdCBjYXN0 IHR5cGUgJXMgdG8gJXMiLAotCQkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHByVHlwZShlKSksCi0J CQkJCQkJCWZvcm1hdF90eXBlX2JlKGNvZXJjZV90eXBlKSksCi0JCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKGUpKSkpOworCQkJeworCQkJCWlmIChjYW5fY29l cmNlID09IE5VTEwpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9DQU5OT1RfQ09FUkNFKSwKKwkJCQkJCQllcnJtc2coImNhbm5vdCBjYXN0IHR5cGUgJXMgdG8g JXMiLAorCQkJCQkJCQkJZm9ybWF0X3R5cGVfYmUoZXhwclR5cGUoZSkpLAorCQkJCQkJCQkJZm9y bWF0X3R5cGVfYmUoY29lcmNlX3R5cGUpKSwKKwkJCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0 YXRlLCBleHByTG9jYXRpb24oZSkpKSk7CisJCQkJZWxzZQorCQkJCXsKKwkJCQkJLyoKKwkJCQkJ ICogQ2FuIG5vdCBjb2VyY2Ugc291cmNlIGV4cHJlc3Npb24gdG8gdGhlIHRhcmdldCB0eXBlLCBq dXN0CisJCQkJCSAqIGFwcGVuZCB0aGUgdHJhbnNmb3JtZWQgZWxlbWVudCBleHByZXNzaW9uIHRv IHRoZSBsaXN0LgorCQkJCQkgKi8KKwkJCQkJbmV3ZSA9IGU7CisJCQkJCSpjYW5fY29lcmNlID0g ZmFsc2U7CisJCQkJfQorCQkJfQorCQkJZWxzZSBpZiAoY2FuX2NvZXJjZSAhPSBOVUxMICYmIGV4 cHJfaXNfY29uc3QpCisJCQl7CisJCQkJTm9kZQkgICAqb3JpZ2V4cHIgPSBuZXdlOworCQkJCU5v ZGUJICAgKnJlc3VsdDsKKwkJCQlib29sCQloYXZlX2NvbGxhdGVfZXhwciA9IGZhbHNlOworCisJ CQkJaWYgKElzQShuZXdlLCBDb2xsYXRlRXhwcikpCisJCQkJCWhhdmVfY29sbGF0ZV9leHByID0g dHJ1ZTsKKworCQkJCXdoaWxlIChuZXdlICYmIElzQShuZXdlLCBDb2xsYXRlRXhwcikpCisJCQkJ CW5ld2UgPSAoTm9kZSAqKSAoKENvbGxhdGVFeHByICopIG5ld2UpLT5hcmc7CisKKwkJCQlpZiAo IUlzQShuZXdlLCBGdW5jRXhwcikpCisJCQkJCW5ld2UgPSBvcmlnZXhwcjsKKwkJCQllbHNlCisJ CQkJeworCQkJCQkvKgorCQkJCQkgKiBwcmUtZXZhbHVhdGUgc2ltcGxlIGNvbnN0YW50IGNhc3Qg ZXhwcmVzc2lvbnMgaW4gYSB3YXkKKwkJCQkJICogdGhhdCB0b2xlcmF0ZSBlcnJvcnMuCisJCQkJ CSAqLworCQkJCQlGdW5jRXhwciAqbmV3ZXhwciA9IChGdW5jRXhwciAqKSBjb3B5T2JqZWN0KG5l d2UpOworCisJCQkJCWFzc2lnbl9leHByX2NvbGxhdGlvbnMocHN0YXRlLCAoTm9kZSAqKSBuZXdl eHByKTsKKworCQkJCQlyZXN1bHQgPSAoTm9kZSAqKSBldmFsdWF0ZV9leHByX2V4dGVuZGVkKChF eHByICopIG5ld2V4cHIsCisJCQkJCQkJCQkJCQkJCQkgY29lcmNlX3R5cGUsCisJCQkJCQkJCQkJ CQkJCQkgdHlwbW9kLAorCQkJCQkJCQkJCQkJCQkJIGNvZXJjZV90eXBlX2NvbGwsCisJCQkJCQkJ CQkJCQkJCQkgdHJ1ZSk7CisKKwkJCQkJaWYgKHJlc3VsdCA9PSBOVUxMKQorCQkJCQl7CisJCQkJ CQluZXdlID0gZTsKKwkJCQkJCSpjYW5fY29lcmNlID0gZmFsc2U7CisJCQkJCX0KKwkJCQkJZWxz ZSBpZiAoaGF2ZV9jb2xsYXRlX2V4cHIpCisJCQkJCXsKKwkJCQkJCS8qIFJlaW5zdGFsbCB0b3Ag Q29sbGF0ZUV4cHIgKi8KKwkJCQkJCUNvbGxhdGVFeHByICpjb2xsID0gKENvbGxhdGVFeHByICop IG9yaWdleHByOworCQkJCQkJQ29sbGF0ZUV4cHIgKm5ld2NvbGwgPSBtYWtlTm9kZShDb2xsYXRl RXhwcik7CisKKwkJCQkJCW5ld2NvbGwtPmFyZyA9IChFeHByICopIHJlc3VsdDsKKwkJCQkJCW5l d2NvbGwtPmNvbGxPaWQgPSBjb2xsLT5jb2xsT2lkOworCQkJCQkJbmV3Y29sbC0+bG9jYXRpb24g PSBjb2xsLT5sb2NhdGlvbjsKKwkJCQkJCW5ld2UgPSAoTm9kZSAqKSBuZXdjb2xsOworCQkJCQl9 CisJCQkJCWVsc2UKKwkJCQkJCW5ld2UgPSByZXN1bHQ7CisJCQkJfQorCQkJfQogCQl9CiAJCWVs c2UKIAkJCW5ld2UgPSBjb2VyY2VfdG9fY29tbW9uX3R5cGUocHN0YXRlLCBlLApAQCAtMjc0Myw3 ICsyODcxLDggQEAgdHJhbnNmb3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2Fz dCAqdGMpCiAJCQkJCQkJCQkgIChBX0FycmF5RXhwciAqKSBhcmcsCiAJCQkJCQkJCQkgIHRhcmdl dEJhc2VUeXBlLAogCQkJCQkJCQkJICBlbGVtZW50VHlwZSwKLQkJCQkJCQkJCSAgdGFyZ2V0QmFz ZVR5cG1vZCk7CisJCQkJCQkJCQkgIHRhcmdldEJhc2VUeXBtb2QsCisJCQkJCQkJCQkgIE5VTEwp OwogCQl9CiAJCWVsc2UKIAkJCWV4cHIgPSB0cmFuc2Zvcm1FeHByUmVjdXJzZShwc3RhdGUsIGFy Zyk7CkBAIC0yNzgwLDYgKzI5MDksMjcxIEBAIHRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUg KnBzdGF0ZSwgVHlwZUNhc3QgKnRjKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBIYW5k bGUgYW4gZXhwbGljaXQgQ0FTVCguLi4gREVGQVVMVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUikg Y29uc3RydWN0LgorICoKKyAqIFRyYW5zZm9ybSBTYWZlVHlwZUNhc3Qgbm9kZSwgbG9vayB1cCB0 aGUgdHlwZSBuYW1lLCBhbmQgYXBwbHkgYW55IG5lY2Vzc2FyeQorICogY29lcmNpb24gZnVuY3Rp b24ocykuCisgKi8KK3N0YXRpYyBOb2RlICoKK3RyYW5zZm9ybVR5cGVTYWZlQ2FzdChQYXJzZVN0 YXRlICpwc3RhdGUsIFNhZmVUeXBlQ2FzdCAqdGMpCit7CisJU2FmZVR5cGVDYXN0RXhwciAgICpy ZXN1bHQ7CisJVHlwZUNhc3QgICAqdGNhc3QgPSAoVHlwZUNhc3QgKikgdGMtPmNhc3Q7CisJTm9k ZQkgICAqc291cmNlX2V4cHI7CisJTm9kZQkgICAqZGVmX2V4cHI7CisJTm9kZQkgICAqY2FzdF9l eHByID0gTlVMTDsKKwlPaWQJCQlpbnB1dFR5cGU7CisJT2lkCQkJdGFyZ2V0VHlwZTsKKwlPaWQJ CQl0YXJnZXRCYXNlVHlwZTsKKwlPaWQJCQl0eXBlQ29sbDsKKwlpbnQzMgkJdGFyZ2V0VHlwbW9k OworCWludDMyCQl0YXJnZXRCYXNlVHlwbW9kOworCWJvb2wJCWNhbl9jb2VyY2UgPSB0cnVlOwor CWJvb2wJCWV4cHJfaXNfY29uc3QgPSBmYWxzZTsKKwlQYXJzZUxvYwlsb2NhdGlvbjsKKworCS8q IExvb2sgdXAgdGhlIHR5cGUgbmFtZSBmaXJzdCAqLworCXR5cGVuYW1lVHlwZUlkQW5kTW9kKHBz dGF0ZSwgdGNhc3QtPnR5cGVOYW1lLCAmdGFyZ2V0VHlwZSwgJnRhcmdldFR5cG1vZCk7CisJdGFy Z2V0QmFzZVR5cG1vZCA9IHRhcmdldFR5cG1vZDsKKworCXR5cGVDb2xsID0gZ2V0X3R5cGNvbGxh dGlvbih0YXJnZXRUeXBlKTsKKworCXRhcmdldEJhc2VUeXBlID0gZ2V0QmFzZVR5cGVBbmRUeXBt b2QodGFyZ2V0VHlwZSwgJnRhcmdldEJhc2VUeXBtb2QpOworCisJLyogbm93IGxvb2tpbmcgYXQg REVGQVVMVCBleHByZXNzaW9uICovCisJZGVmX2V4cHIgPSB0cmFuc2Zvcm1FeHByKHBzdGF0ZSwg dGMtPnJhd19kZWZhdWx0LCBFWFBSX0tJTkRfQ0FTVF9ERUZBVUxUKTsKKworCWRlZl9leHByID0g Y29lcmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwgZGVmX2V4cHIsIGV4cHJUeXBlKGRlZl9leHBy KSwKKwkJCQkJCQkJCSB0YXJnZXRUeXBlLCB0YXJnZXRUeXBtb2QsCisJCQkJCQkJCQkgQ09FUkNJ T05fRVhQTElDSVQsCisJCQkJCQkJCQkgQ09FUkNFX0VYUExJQ0lUX0NBU1QsCisJCQkJCQkJCQkg ZXhwckxvY2F0aW9uKGRlZl9leHByKSk7CisJaWYgKGRlZl9leHByID09IE5VTEwpCisJCWVyZXBv cnQoRVJST1IsCisJCQkJZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0UpLAorCQkJCWVycm1z ZygiY2Fubm90IGNvZXJjZSAlcyBleHByZXNzaW9uIHRvIHR5cGUgJXMiLAorCQkJCQkgICAiQ0FT VCBERUZBVUxUIiwKKwkJCQkJICAgZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZSkpLAorCQkJCXBh cnNlcl9jb2VyY2lvbl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbih0Yy0+cmF3X2Rl ZmF1bHQpLCBkZWZfZXhwcikpOworCisJYXNzaWduX2V4cHJfY29sbGF0aW9ucyhwc3RhdGUsIGRl Zl9leHByKTsKKworCS8qCisJICogVGhlIGNvbGxhdGlvbiBvZiBERUZBVUxUIGV4cHJlc3Npb24g bXVzdCBtYXRjaCB0aGUgY29sbGF0aW9uIG9mIHRoZQorCSAqIHRhcmdldCB0eXBlLgorCSAqLwor CWlmIChPaWRJc1ZhbGlkKHR5cGVDb2xsKSkKKwl7CisJCU9pZAkJCWRlZkNvbGw7CisKKwkJZGVm Q29sbCA9IGV4cHJDb2xsYXRpb24oZGVmX2V4cHIpOworCisJCWlmIChPaWRJc1ZhbGlkKGRlZkNv bGwpICYmIHR5cGVDb2xsICE9IGRlZkNvbGwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJj b2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAorCQkJCQllcnJtc2coInRoZSBjb2xsYXRp b24gb2YgQ0FTVCBERUZBVUxUIGV4cHJlc3Npb24gY29uZmxpY3RzIHdpdGggdGFyZ2V0IHR5cGUg Y29sbGF0aW9uIiksCisJCQkJCWVycmRldGFpbCgiXCIlc1wiIHZlcnN1cyBcIiVzXCIiLAorCQkJ CQkJCSAgZ2V0X2NvbGxhdGlvbl9uYW1lKHR5cGVDb2xsKSwKKwkJCQkJCQkgIGdldF9jb2xsYXRp b25fbmFtZShkZWZDb2xsKSksCisJCQkJCXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJM b2NhdGlvbihkZWZfZXhwcikpKTsKKwl9CisKKwkvKgorCSAqIElmIHRoZSB0eXBlIGNhc3QgdGFy Z2V0IHR5cGUgaXMgYW4gYXJyYXkgdHlwZSwgd2UgaW52b2tlCisJICogdHJhbnNmb3JtQXJyYXlF eHByKCkgZGlyZWN0bHkgc28gdGhhdCB3ZSBjYW4gcGFzcyBkb3duIHRoZSB0eXBlCisJICogaW5m b3JtYXRpb24uICBUaGlzIGF2b2lkcyBzb21lIGNhc2VzIHdoZXJlIHRyYW5zZm9ybUFycmF5RXhw cigpIG1pZ2h0IG5vdAorCSAqIGluZmVyIHRoZSBjb3JyZWN0IHR5cGUuICBPdGhlcndpc2UsIGp1 c3QgdHJhbnNmb3JtIHRoZSBhcmd1bWVudCBub3JtYWxseS4KKwkgKi8KKwlpZiAoSXNBKHRjYXN0 LT5hcmcsIEFfQXJyYXlFeHByKSkKKwl7CisJCU9pZAkJCWVsZW1lbnRUeXBlOworCisJCS8qCisJ CSAqIElmIHRhcmdldCBpcyBhIGRvbWFpbiBvdmVyIGFycmF5LCB3b3JrIHdpdGggdGhlIGJhc2Ug YXJyYXkgdHlwZQorCQkgKiBoZXJlLiAgQmVsb3csIHdlJ2xsIGNhc3QgdGhlIGFycmF5IHR5cGUg dG8gdGhlIGRvbWFpbi4gIEluIHRoZQorCQkgKiB1c3VhbCBjYXNlIHRoYXQgdGhlIHRhcmdldCBp cyBub3QgYSBkb21haW4sIHRoZSByZW1haW5pbmcgc3RlcHMKKwkJICogd2lsbCBiZSBhIG5vLW9w LgorCQkgKi8KKwkJZWxlbWVudFR5cGUgPSBnZXRfZWxlbWVudF90eXBlKHRhcmdldEJhc2VUeXBl KTsKKworCQlpZiAoT2lkSXNWYWxpZChlbGVtZW50VHlwZSkpCisJCXsKKwkJCXNvdXJjZV9leHBy ID0gdHJhbnNmb3JtQXJyYXlFeHByKHBzdGF0ZSwKKwkJCQkJCQkJCQkJIChBX0FycmF5RXhwciAq KSB0Y2FzdC0+YXJnLAorCQkJCQkJCQkJCQkgdGFyZ2V0QmFzZVR5cGUsCisJCQkJCQkJCQkJCSBl bGVtZW50VHlwZSwKKwkJCQkJCQkJCQkJIHRhcmdldEJhc2VUeXBtb2QsCisJCQkJCQkJCQkJCSAm Y2FuX2NvZXJjZSk7CisJCX0KKwkJZWxzZQorCQkJc291cmNlX2V4cHIgPSB0cmFuc2Zvcm1FeHBy UmVjdXJzZShwc3RhdGUsIHRjYXN0LT5hcmcpOworCX0KKwllbHNlCisJCXNvdXJjZV9leHByID0g dHJhbnNmb3JtRXhwclJlY3Vyc2UocHN0YXRlLCB0Y2FzdC0+YXJnKTsKKworCWlucHV0VHlwZSA9 IGV4cHJUeXBlKHNvdXJjZV9leHByKTsKKwlpZiAoaW5wdXRUeXBlID09IEludmFsaWRPaWQpCisJ CXJldHVybiAoTm9kZSAqKSBOVUxMOwkJCS8qIHJldHVybiBOVUxMIGlmIE5VTEwgaW5wdXQgKi8K KworCS8qCisJICogTG9jYXRpb24gb2YgdGhlIGNvZXJjaW9uIGlzIHByZWZlcmVudGlhbGx5IHRo ZSBsb2NhdGlvbiBvZiBDQVNUIHN5bWJvbCwKKwkgKiBidXQgaWYgdGhlcmUgaXMgbm9uZSB0aGVu IHVzZSB0aGUgbG9jYXRpb24gb2YgdGhlIHR5cGUgbmFtZSAodGhpcyBjYW4KKwkgKiBoYXBwZW4g aW4gVHlwZU5hbWUgJ3N0cmluZycgc3ludGF4LCBmb3IgaW5zdGFuY2UpLgorCSAqLworCWxvY2F0 aW9uID0gdGNhc3QtPmxvY2F0aW9uOworCWlmIChsb2NhdGlvbiA8IDApCisJCWxvY2F0aW9uID0g dGNhc3QtPnR5cGVOYW1lLT5sb2NhdGlvbjsKKworCWlmIChjYW5fY29lcmNlICYmIElzQShzb3Vy Y2VfZXhwciwgQ29uc3QpKQorCXsKKwkJZXhwcl9pc19jb25zdCA9IHRydWU7CisKKwkJLyogY29l cmNlIFVOS05PV04gQ29uc3QgdG8gdGhlIHRhcmdldCB0eXBlICovCisJCWlmIChleHByVHlwZShz b3VyY2VfZXhwcikgPT0gVU5LTk9XTk9JRCkKKwkJeworCQkJY2FzdF9leHByID0gQ29lcmNlVW5r bm93bkNvbnN0U2FmZShwc3RhdGUsIHNvdXJjZV9leHByLAorCQkJCQkJCQkJCQkgICB0YXJnZXRU eXBlLCB0YXJnZXRUeXBtb2QsCisJCQkJCQkJCQkJCSAgIENPRVJDSU9OX0VYUExJQ0lULAorCQkJ CQkJCQkJCQkgICBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCQkJICAgbG9jYXRpb24s IGZhbHNlKTsKKwkJCWlmIChjYXN0X2V4cHIgPT0gTlVMTCkKKwkJCQljYW5fY29lcmNlID0gZmFs c2U7CisJCX0KKwl9CisKKwlpZiAoY2FuX2NvZXJjZSAmJiBjYXN0X2V4cHIgPT0gTlVMTCkKKwl7 CisJCWNhc3RfZXhwciA9IGNvZXJjZV90b190YXJnZXRfdHlwZShwc3RhdGUsIHNvdXJjZV9leHBy LCBpbnB1dFR5cGUsCisJCQkJCQkJCQkJICB0YXJnZXRUeXBlLCB0YXJnZXRUeXBtb2QsCisJCQkJ CQkJCQkJICBDT0VSQ0lPTl9FWFBMSUNJVCwKKwkJCQkJCQkJCQkgIENPRVJDRV9FWFBMSUNJVF9D QVNULAorCQkJCQkJCQkJCSAgbG9jYXRpb24pOworCQlpZiAoY2FzdF9leHByID09IE5VTEwpCisJ CQljYW5fY29lcmNlID0gZmFsc2U7CisJfQorCisJaWYgKGNhbl9jb2VyY2UpCisJeworCQlOb2Rl CSpvcmlnZXhwciA9IGNhc3RfZXhwcjsKKwkJYm9vbAloYXZlX2NvbGxhdGVfZXhwciA9IGZhbHNl OworCisJCUFzc2VydChjYXN0X2V4cHIgIT0gTlVMTCk7CisKKwkJaWYgKElzQShjYXN0X2V4cHIs IENvbGxhdGVFeHByKSkKKwkJCWhhdmVfY29sbGF0ZV9leHByID0gdHJ1ZTsKKworCQl3aGlsZSAo Y2FzdF9leHByICYmIElzQShjYXN0X2V4cHIsIENvbGxhdGVFeHByKSkKKwkJCWNhc3RfZXhwciA9 IChOb2RlICopICgoQ29sbGF0ZUV4cHIgKikgY2FzdF9leHByKS0+YXJnOworCisJCWlmIChJc0Eo Y2FzdF9leHByLCBGdW5jRXhwcikpCisJCXsKKwkJCUhlYXBUdXBsZQl0dXBsZTsKKwkJCUxpc3RD ZWxsICAgKmxjOworCQkJTm9kZQkgICAqc2V4cHI7CisJCQlOb2RlCSAgICpyZXN1bHQ7CisJCQlG dW5jRXhwciAgICpmZXhwciA9IChGdW5jRXhwciAqKSBjYXN0X2V4cHI7CisKKwkJCWxjID0gbGlz dF9oZWFkKGZleHByLT5hcmdzKTsKKwkJCXNleHByID0gKE5vZGUgKikgbGZpcnN0KGxjKTsKKwor CQkJLyogTG9vayBpbiBwZ19jYXN0ICovCisJCQl0dXBsZSA9IFNlYXJjaFN5c0NhY2hlMihDQVNU U09VUkNFVEFSR0VULAorCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShleHByVHlwZShzZXhwcikp LAorCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh0YXJnZXRUeXBlKSk7CisKKwkJCWlmIChIZWFw VHVwbGVJc1ZhbGlkKHR1cGxlKSkKKwkJCXsKKwkJCQlGb3JtX3BnX2Nhc3QgY2FzdEZvcm0gPSAo Rm9ybV9wZ19jYXN0KSBHRVRTVFJVQ1QodHVwbGUpOworCQkJCWlmICghY2FzdEZvcm0tPmNhc3Rl cnJvcnNhZmUpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJZXJyY29kZShFUlJDT0RFX0ZF QVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJZXJybXNnKCJjYW5ub3QgY2FzdCB0eXBlICVz IHRvICVzIHdoZW4gJXMgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gJXMiLAorCQkJCQkJCQkg ICBmb3JtYXRfdHlwZV9iZShpbnB1dFR5cGUpLAorCQkJCQkJCQkgICBmb3JtYXRfdHlwZV9iZSh0 YXJnZXRUeXBlKSwKKwkJCQkJCQkJICAgIkRFRkFVTFQiLAorCQkJCQkJCQkgICAiQ0FTVCAuLi4g T04gQ09OVkVSU0lPTiBFUlJPUiIpLAorCQkJCQkJCWVycmhpbnQoIkV4cGxpY2l0IGNhc3QgaXMg ZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZGVjbGFyZWQgYXMgc2FmZSIpLAorCQkJCQkJ CXBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGV4cHJMb2NhdGlvbihzb3VyY2VfZXhwcikpKTsK KwkJCX0KKwkJCWVsc2UKKwkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig cGdfY2FzdCBlbnRyeSAoJXMgY2FzdCB0byAlcykiLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKGlu cHV0VHlwZSksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZSkpOworCQkJUmVsZWFz ZVN5c0NhY2hlKHR1cGxlKTsKKworCQkJaWYgKCFleHByX2lzX2NvbnN0KQorCQkJCWNhc3RfZXhw ciA9IG9yaWdleHByOworCQkJZWxzZQorCQkJeworCQkJCS8qCisJCQkJICogcHJlLWV2YWx1YXRl IHNpbXBsZSBjb25zdGFudCBjYXN0IGV4cHJlc3Npb25zIGVhcmx5IGluIGEgd2F5CisJCQkJICog dGhhdCB0b2xlcmF0ZSBlcnJvcnMuCisJCQkJICoKKwkJCQkgKiBSYXRpb25hbGU6CisJCQkJICog MS4gV2hlbiBkZXBhcnNpbmcgc2FmZSBjYXN0IGV4cHJlc3Npb25zIChvciBpbiBvdGhlciBjYXNl cyksCisJCQkJICogICAgZXZhbF9jb25zdF9leHByZXNzaW9ucyBtaWdodCBiZSBpbnZva2VkLCBi dXQgaXQgY2Fubm90CisJCQkJICogICAgaGFuZGxlIGVycm9ycyBncmFjZWZ1bGx5LgorCQkJCSAq IDIuIElmIHRoZSBjYXN0IGV4cHJlc3Npb24gaW52b2x2ZXMgb25seSBzaW1wbGUgY29uc3RhbnRz LCB3ZQorCQkJCSAqICAgIGNhbiBzYWZlbHkgZXZhbHVhdGUgaXQgYWhlYWQgb2YgdGltZS4gSWYg dGhlIGV2YWx1YXRpb24KKwkJCQkgKiAgICBmYWlscywgaXQgaW5kaWNhdGVzIHRoYXQgc3VjaCBh IGNhc3QgaXMgbm90IHBvc3NpYmxlLCBhbmQKKwkJCQkgKiAgICB3ZSBjYW4gdGhlbiBmYWxsIGJh Y2sgdG8gdGhlIENBU1QgREVGQVVMVCBleHByZXNzaW9uLgorCQkJCSAqIDMuIEV2ZW4gaWYgRnVu Y0V4cHIgKGZvciBjYXN0ZnVuYykgbm9kZSBoYXMgdGhyZWUgYXJndW1lbnRzLAorCQkJCSAqICAg IHRoZSBzZWNvbmQgYW5kIHRoaXJkIGFyZ3VtZW50cyB3aWxsIGFsc28gYmUgY29uc3RhbnRzIHBl cgorCQkJCSAqICAgIGNvZXJjZV90b190YXJnZXRfdHlwZS4gRXZhbHVhdGluZyBhIEZ1bmNFeHBy IHdob3NlCisJCQkJICogICAgYXJndW1lbnRzIGFyZSBhbGwgQ29uc3QgaXMgc2FmZS4KKwkJCQkg Ki8KKwkJCQlGdW5jRXhwciAqbmV3ZXhwciA9IChGdW5jRXhwciAqKSBjb3B5T2JqZWN0KGNhc3Rf ZXhwcik7CisKKwkJCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgKE5vZGUgKikgbmV3 ZXhwcik7CisKKwkJCQlyZXN1bHQgPSAoTm9kZSAqKSBldmFsdWF0ZV9leHByX2V4dGVuZGVkKChF eHByICopIG5ld2V4cHIsCisJCQkJCQkJCQkJCQkJCSB0YXJnZXRUeXBlLAorCQkJCQkJCQkJCQkJ CQkgdGFyZ2V0VHlwbW9kLAorCQkJCQkJCQkJCQkJCQkgdHlwZUNvbGwsCisJCQkJCQkJCQkJCQkJ CSB0cnVlKTsKKwkJCQlpZiAocmVzdWx0ID09IE5VTEwpCisJCQkJeworCQkJCQkvKgorCQkJCQkg KiBzb3VyY2UgZXhwcmVzc2lvbiBjYW4gbm90IGNvZXJjZSB0byB0aGUgdGFyZ2V0IHR5cGUuCisJ CQkJCSAqLworCQkJCQljYW5fY29lcmNlID0gZmFsc2U7CisJCQkJCWNhc3RfZXhwciA9IE5VTEw7 CisJCQkJfQorCQkJCWVsc2UgaWYgKGhhdmVfY29sbGF0ZV9leHByKQorCQkJCXsKKwkJCQkJLyog UmVpbnN0YWxsIHRvcCBDb2xsYXRlRXhwciAqLworCQkJCQlDb2xsYXRlRXhwciAqY29sbCA9IChD b2xsYXRlRXhwciAqKSBvcmlnZXhwcjsKKwkJCQkJQ29sbGF0ZUV4cHIgKm5ld2NvbGwgPSBtYWtl Tm9kZShDb2xsYXRlRXhwcik7CisKKwkJCQkJbmV3Y29sbC0+YXJnID0gKEV4cHIgKikgcmVzdWx0 OworCQkJCQluZXdjb2xsLT5jb2xsT2lkID0gY29sbC0+Y29sbE9pZDsKKwkJCQkJbmV3Y29sbC0+ bG9jYXRpb24gPSBjb2xsLT5sb2NhdGlvbjsKKwkJCQkJY2FzdF9leHByID0gKE5vZGUgKikgbmV3 Y29sbDsKKwkJCQl9CisJCQkJZWxzZQorCQkJCQljYXN0X2V4cHIgPSByZXN1bHQ7CisJCQl9CisJ CX0KKwkJZWxzZQorCQkJLyogTm90aGluZyB0byBkbywgcmVzdG9yZSBjYXN0X2V4cHIgdG8gaXRz IG9yaWdpbmFsIHZhbHVlICovCisJCQljYXN0X2V4cHIgPSBvcmlnZXhwcjsKKwl9CisKKwlBc3Nl cnQoY2FuX2NvZXJjZSB8fCBjYXN0X2V4cHIgPT0gTlVMTCk7CisKKwlyZXN1bHQgPSBtYWtlTm9k ZShTYWZlVHlwZUNhc3RFeHByKTsKKwlyZXN1bHQtPnNvdXJjZV9leHByID0gc291cmNlX2V4cHI7 CisJcmVzdWx0LT5jYXN0X2V4cHIgPSBjYXN0X2V4cHI7CisJcmVzdWx0LT5kZWZhdWx0X2V4cHIg PSBkZWZfZXhwcjsKKwlyZXN1bHQtPnJlc3VsdHR5cGUgPSB0YXJnZXRUeXBlOworCXJlc3VsdC0+ cmVzdWx0dHlwbW9kID0gdGFyZ2V0VHlwbW9kOworCXJlc3VsdC0+cmVzdWx0Y29sbGlkID0gdHlw ZUNvbGw7CisJcmVzdWx0LT5sb2NhdGlvbiA9IGxvY2F0aW9uOworCisJcmV0dXJuIChOb2RlICop IHJlc3VsdDsKK30KKwogLyoKICAqIEhhbmRsZSBhbiBleHBsaWNpdCBDT0xMQVRFIGNsYXVzZS4K ICAqCkBAIC0zMTkzLDYgKzM1ODcsOCBAQCBQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5k IGV4cHJLaW5kKQogCQljYXNlIEVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5UOgogCQljYXNlIEVY UFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQlyZXR1cm4gIkNIRUNLIjsKKwkJY2FzZSBFWFBSX0tJ TkRfQ0FTVF9ERUZBVUxUOgorCQkJcmV0dXJuICJDQVNUIERFRkFVTFQiOwogCQljYXNlIEVYUFJf S0lORF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoK IAkJCXJldHVybiAiREVGQVVMVCI7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZnVuYy5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwppbmRleCA3NzhkNjlj NmYzYy4uYTkwNzA1Yjk4NDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9m dW5jLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtMjc0Myw2ICsy NzQzLDkgQEAgY2hlY2tfc3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9k ZSAqbGFzdF9zcmYsIGludCBsb2NhdGlvbikKIAkJY2FzZSBFWFBSX0tJTkRfRE9NQUlOX0NIRUNL OgogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGlu IGNoZWNrIGNvbnN0cmFpbnRzIik7CiAJCQlicmVhazsKKwkJY2FzZSBFWFBSX0tJTkRfQ0FTVF9E RUZBVUxUOgorCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxv d2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQ Ul9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxU OgogCQkJZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGlu IERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV90YXJnZXQuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwppbmRleCA5 MDVjOTc1ZDgzYi4uZGMwM2NmNGNlNzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV90YXJnZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAg LTE4MjIsNiArMTgyMiwyMCBAQCBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoTm9kZSAqbm9kZSwgY2hh ciAqKm5hbWUpCiAJCQkJfQogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3Q6 CisJCQlzdHJlbmd0aCA9IEZpZ3VyZUNvbG5hbWVJbnRlcm5hbCgoKFNhZmVUeXBlQ2FzdCAqKSBu b2RlKS0+Y2FzdCwKKwkJCQkJCQkJCQkJIG5hbWUpOworCQkJaWYgKHN0cmVuZ3RoIDw9IDEpCisJ CQl7CisJCQkJVHlwZUNhc3QgCSpub2RlX2Nhc3Q7CisJCQkJbm9kZV9jYXN0ID0gKFR5cGVDYXN0 ICopKChTYWZlVHlwZUNhc3QgKikgbm9kZSktPmNhc3Q7CisJCQkJaWYgKG5vZGVfY2FzdC0+dHlw ZU5hbWUgIT0gTlVMTCkKKwkJCQl7CisJCQkJCSpuYW1lID0gc3RyVmFsKGxsYXN0KG5vZGVfY2Fz dC0+dHlwZU5hbWUtPm5hbWVzKSk7CisJCQkJCXJldHVybiAxOworCQkJCX0KKwkJCX0KKwkJCWJy ZWFrOwogCQljYXNlIFRfQ29sbGF0ZUNsYXVzZToKIAkJCXJldHVybiBGaWd1cmVDb2xuYW1lSW50 ZXJuYWwoKChDb2xsYXRlQ2xhdXNlICopIG5vZGUpLT5hcmcsIG5hbWUpOwogCQljYXNlIFRfR3Jv dXBpbmdGdW5jOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5ZnVuY3Mu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKaW5kZXggYTQ2NDM0OWVlMzMu LmMxYTcwMzFhOTZjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYXJyYXlmdW5j cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKQEAgLTMyODksNiAr MzI4OSwxNCBAQCBhcnJheV9tYXAoRGF0dW0gYXJyYXlkLAogCQkvKiBBcHBseSB0aGUgZ2l2ZW4g ZXhwcmVzc2lvbiB0byBzb3VyY2UgZWxlbWVudCAqLwogCQl2YWx1ZXNbaV0gPSBFeGVjRXZhbEV4 cHIoZXhwcnN0YXRlLCBlY29udGV4dCwgJm51bGxzW2ldKTsKIAorCQkvKiBFeGl0IGVhcmx5IGlm IHRoZSBldmFsdWF0aW9uIGZhaWxzICovCisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGV4cHJz dGF0ZS0+ZXNjb250ZXh0KSkKKwkJeworCQkJcGZyZWUodmFsdWVzKTsKKwkJCXBmcmVlKG51bGxz KTsKKwkJCXJldHVybiAoRGF0dW0pIDA7CisJCX0KKwogCQlpZiAobnVsbHNbaV0pCiAJCQloYXNu dWxscyA9IHRydWU7CiAJCWVsc2UKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCA1NTZh YjA1N2U1YS4uM2U0MWM3YjgxODggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKQEAgLTEw NTYyLDYgKzEwNTYyLDI3IEBAIGdldF9ydWxlX2V4cHIoTm9kZSAqbm9kZSwgZGVwYXJzZV9jb250 ZXh0ICpjb250ZXh0LAogCQkJfQogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4 cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAgICpzdGNleHByID0gY2FzdE5vZGUoU2Fm ZVR5cGVDYXN0RXhwciwgbm9kZSk7CisKKwkJCQkvKgorCQkJCSAqIFdlIGNhbm5vdCBkZXBhcnNp bmcgY2FzdF9leHByIGRpcmVjdGx5LCBzaW5jZQorCQkJCSAqIHRyYW5zZm9ybVR5cGVTYWZlQ2Fz dCBtYXkgaGF2ZSBmb2xkZWQgaXQgaW50byBhIHNpbXBsZQorCQkJCSAqIGNvbnN0YW50IG9yIE5V TEwuIEluc3RlYWQsIHdlIHVzZSBzb3VyY2VfZXhwciBhbmQKKwkJCQkgKiBkZWZhdWx0X2V4cHIg dG8gcmVjb25zdHJ1Y3QgdGhlIENBU1QgREVGQVVMVCBjbGF1c2UuCisJCQkJICovCisJCQkJYXBw ZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJDQVNUKCIpOworCQkJCWdldF9ydWxlX2V4cHIoc3Rj ZXhwci0+c291cmNlX2V4cHIsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CisKKwkJCQlhcHBlbmRT dHJpbmdJbmZvKGJ1ZiwgIiBBUyAlcyAiLAorCQkJCQkJCQkgZm9ybWF0X3R5cGVfd2l0aF90eXBl bW9kKHN0Y2V4cHItPnJlc3VsdHR5cGUsCisJCQkJCQkJCQkJCQkJCSAgc3RjZXhwci0+cmVzdWx0 dHlwbW9kKSk7CisJCQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZyhidWYsICJERUZBVUxUICIpOwor CQkJCWdldF9ydWxlX2V4cHIoc3RjZXhwci0+ZGVmYXVsdF9leHByLCBjb250ZXh0LCBzaG93aW1w bGljaXQpOworCQkJCWFwcGVuZFN0cmluZ0luZm9TdHJpbmcoYnVmLCAiIE9OIENPTlZFUlNJT04g RVJST1IpIik7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0pzb25FeHByOgogCQkJewogCQkJ CUpzb25FeHByICAgKmpleHByID0gKEpzb25FeHByICopIG5vZGU7CmRpZmYgLS1naXQgYS9zcmMv aW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0 LmRhdAppbmRleCBmYmZkNjY5NTg3Zi4uY2E1MmNmY2QwODYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0 LmRhdApAQCAtMTksNjUgKzE5LDY1IEBACiAjIGludDItPmludDQtPmludDgtPm51bWVyaWMtPmZs b2F0NC0+ZmxvYXQ4LCB3aGlsZSBjYXN0cyBpbiB0aGUKICMgcmV2ZXJzZSBkaXJlY3Rpb24gYXJl IGFzc2lnbm1lbnQtb25seS4KIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4g J2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihpbnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBj YXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50OCknLAotICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChp bnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0 ZnVuYyA9PiAnZmxvYXQ4KGludDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQg PT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhpbnQ4KScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoaW50MiknLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdp bnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcs IGNhc3RmdW5jID0+ICdmbG9hdDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRh cmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChpbnQyKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVyaWMo aW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3Rm dW5jID0+ICdpbnQ4KGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4g J2ludDInLCBjYXN0ZnVuYyA9PiAnaW50MihpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBj YXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ0KGludDQpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdmbG9h dDgoaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycs IGNhc3RmdW5jID0+ICdudW1lcmljKGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2Fz dHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGZsb2F0NCknLAotICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoZmxv YXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0 ZnVuYyA9PiAnaW50NChmbG9hdDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdl dCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0OChmbG9hdDQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsCi0gIGNhc3RmdW5jID0+ICdudW1l cmljKGZsb2F0NCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3RmdW5jID0+ICdudW1lcmljKGZsb2F0NCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn ZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGZsb2F0OCkn LAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdmbG9hdDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMg PT4gJ2ludDIoZmxvYXQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4g J2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4 JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChmbG9hdDgpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsCi0gIGNhc3Rm dW5jID0+ICdudW1lcmljKGZsb2F0OCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdudW1lcmljKGZsb2F0OCknLCBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAn aW50OChudW1lcmljKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdp bnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIobnVtZXJpYyknLAotICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdudW1lcmlj JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KG51bWVyaWMpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsCi0gIGNhc3RmdW5j ID0+ICdmbG9hdDQobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3RmdW5jID0+ICdmbG9hdDQobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0OCcsCi0gIGNhc3RmdW5jID0+ ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3RmdW5jID0+ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnbW9uZXknLCBjYXN0dGFyZ2V0ID0+ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVy aWMobW9uZXkpJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAog eyBjYXN0c291cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnbW9uZXknLCBjYXN0ZnVu YyA9PiAnbW9uZXkobnVtZXJpYyknLApAQCAtODksMTMgKzg5LDEzIEBACiAKICMgQWxsb3cgZXhw bGljaXQgY29lcmNpb25zIGJldHdlZW4gaW50NCBhbmQgYm9vbAogeyBjYXN0c291cmNlID0+ICdp bnQ0JywgY2FzdHRhcmdldCA9PiAnYm9vbCcsIGNhc3RmdW5jID0+ICdib29sKGludDQpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50 NChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiAKICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4geGlkOCBhbmQgeGlk CiB7IGNhc3Rzb3VyY2UgPT4gJ3hpZDgnLCBjYXN0dGFyZ2V0ID0+ICd4aWQnLCBjYXN0ZnVuYyA9 PiAneGlkKHhpZDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIAogIyBPSUQgY2F0ZWdvcnk6IGFsbG93IGltcGxpY2l0IGNvbnZlcnNpb24g ZnJvbSBhbnkgaW50ZWdyYWwgdHlwZSAoaW5jbHVkaW5nCiAjIGludDgsIHRvIHN1cHBvcnQgT0lE IGxpdGVyYWxzID4gMkcpIHRvIE9JRCwgYXMgd2VsbCBhcyBhc3NpZ25tZW50IGNvZXJjaW9uCkBA IC0xMDYsMTMgKzEwNiwxMyBAQAogIyBjYXN0cyBmcm9tIHRleHQgYW5kIHZhcmNoYXIgdG8gcmVn Y2xhc3MsIHdoaWNoIGV4aXN0IG1haW5seSB0byBzdXBwb3J0CiAjIGxlZ2FjeSBmb3JtcyBvZiBu ZXh0dmFsKCkgYW5kIHJlbGF0ZWQgZnVuY3Rpb25zLgogeyBjYXN0c291cmNlID0+ICdpbnQ4Jywg Y2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDInLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnb2lkJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2MnLCBjYXN0ZnVuYyA9PiAnMCcsCkBA IC0xMjAsMTMgKzEyMCwxMyBAQAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdl dCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdy ZWdwcm9jJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFy Z2V0ID0+ICdyZWdwcm9jJywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVncHJvYycsIGNhc3RmdW5jID0+ICcwJywKICAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdy ZWdwcm9jJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAncmVncHJvY2VkdXJlJywgY2FzdGZ1 bmMgPT4gJzAnLApAQCAtMTM4LDEzICsxMzgsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJv Y2VkdXJlJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgn LCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3By b2NlZHVyZScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFyZ2V0 ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3By b2NlZHVyZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lk JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcicsIGNhc3RmdW5jID0+ICcwJywKQEAgLTE1MiwxMyAr MTUyLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdvaWQn LCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn YicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXInLCBj YXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3Jl Z29wZXInLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBj YXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBj YXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICcwJywK QEAgLTE3MCwxMyArMTcwLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXJhdG9yJywgY2Fz dHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0 ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQy JywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0b3InLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdyZWdvcGVyYXRvcicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0 ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnb3BlcmF0b3InLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4g J3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTg0LDEzICsxODQsMTMgQEAKIHsgY2Fz dHNvdXJjZSA9PiAncmVnY2xhc3MnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAn MCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJ29p ZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3Rm dW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4g J3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NsYXNzJywgY2FzdHRhcmdldCA9 PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjbGFz cycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2Fz dHRhcmdldCA9PiAncmVnY29sbGF0aW9uJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTk4LDEzICsx OTgsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29sbGF0aW9uJywgY2FzdHRhcmdldCA9PiAn b2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xs YXRpb24nLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJn ZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5jID0+ICcw JywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291 cmNlID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4g J2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3R0YXJnZXQgPT4g J2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVndHlw ZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTIxMiwxMyArMjEyLDEzIEBACiB7IGNhc3Rzb3VyY2Ug PT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAn aW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAnaW50 NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywg Y2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2In IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2Fz dGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0 ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3Jl Z2NvbmZpZycsIGNhc3RmdW5jID0+ICcwJywKQEAgLTIyNiwxMyArMjI2LDEzIEBACiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ2NvbmZpZycsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcw JywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291 cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJ29p ZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0 ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnY29uZmlnJywgY2FzdHRhcmdl dCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdj b25maWcnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29u dGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcs IGNhc3R0YXJnZXQgPT4gJ3JlZ2RpY3Rpb25hcnknLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0yNDAs MzEgKzI0MCwzMSBAQAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdHRhcmdl dCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdy ZWdkaWN0aW9uYXJ5JywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3Rm dW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAog eyBjYXN0c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNh c3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5JywgY2Fz dHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdl dCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAncmVnY2xhc3MnLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2 YXJjaGFyJywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9PiAncmVnY2xhc3Mn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAn MCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3JvbGUnLCBjYXN0ZnVuYyA9PiAnb2lk JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ3JvbGUnLCBjYXN0ZnVu YyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdy ZWdyb2xlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ICdp bnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBj YXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJn ZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTI3MiwxMyArMjcyLDEz IEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcs IGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdi JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNl JywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVuYyA9PiAnMCcsCiAg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9 PiAncmVnbmFtZXNwYWNlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4 KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0 JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFiYXNl JywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjg2LDEzICsyODYsMTMgQEAKIHsgY2FzdHNvdXJjZSA9 PiAncmVnZGF0YWJhc2UnLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJ29pZCcs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3Rm dW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4g J3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdHRh cmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdy ZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIApAQCAtMzAyLDU3ICszMDIs NTcgQEAKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBj YXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicg fSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3Rm dW5jID0+ICd0ZXh0KGJwY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0 ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoYnBjaGFyKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Zh cmNoYXInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2hh cicsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChjaGFyKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAnYnBj aGFyKGNoYXIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXIn LCBjYXN0ZnVuYyA9PiAndGV4dChjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ25hbWUnLCBjYXN0dGFy Z2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQobmFtZSknLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdu YW1lJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJ2JwY2hhcihuYW1lKScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ25hbWUnLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMg PT4gJ3ZhcmNoYXIobmFtZSknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAn Y2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKHRleHQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywg Y2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKHRleHQpJywKLSAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hhcih0 ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQnLCBjYXN0dGFyZ2V0ID0+ICduYW1lJywgY2FzdGZ1 bmMgPT4gJ25hbWUodGV4dCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUoYnBjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNo YXInLCBjYXN0dGFyZ2V0ID0+ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUodmFyY2hhciknLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAj IEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBiZXR3ZWVuIGJ5dGVhIGFuZCBpbnRlZ2VyIHR5cGVz CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdieXRlYScsIGNhc3RmdW5j ID0+ICdieXRlYShpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdi eXRlYScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBj YXN0dGFyZ2V0ID0+ICdieXRlYScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQ4KScsCi0gIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGJ5 dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3Rm dW5jID0+ICdpbnQ0KGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9 PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQWxsb3cgZXhwbGljaXQgY29l cmNpb25zIGJldHdlZW4gaW50NCBhbmQgImNoYXIiCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBj YXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJ2ludDQoY2hhciknLAotICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKGludDQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IAogIyBwZ19ub2RlX3RyZWUgY2FuIGJlIGNvZXJjZWQgdG8sIGJ1dCBub3QgZnJvbSwgdGV4dAog eyBjYXN0c291cmNlID0+ICdwZ19ub2RlX3RyZWUnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2Fz dGZ1bmMgPT4gJzAnLApAQCAtMzc4LDczICszNzgsNzMgQEAKIAogIyBEYXRldGltZSBjYXRlZ29y eQogeyBjYXN0c291cmNlID0+ICdkYXRlJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wJywKLSAg Y2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcChkYXRlKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcChkYXRlKScsIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdkYXRlJywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wdHonLAotICBj YXN0ZnVuYyA9PiAndGltZXN0YW1wdHooZGF0ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eihkYXRlKScsIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICd0aW1lJywgY2FzdHRhcmdldCA9PiAnaW50ZXJ2YWwnLCBjYXN0 ZnVuYyA9PiAnaW50ZXJ2YWwodGltZSknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lJywgY2FzdHRhcmdl dCA9PiAndGltZXR6JywgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1lKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ2RhdGUnLAotICBjYXN0ZnVuYyA9PiAnZGF0ZSh0 aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3Rp bWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLAotICBjYXN0ZnVuYyA9PiAndGltZSh0aW1l c3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 ZnVuYyA9PiAndGltZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVz dGFtcCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcHR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVz dGFtcHR6KHRpbWVzdGFtcCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXB0eih0aW1lc3RhbXApJywgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAnZGF0ZScsCi0gIGNhc3Rm dW5jID0+ICdkYXRlKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ2RhdGUodGltZXN0YW1wdHopJywgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAndGltZScsCi0gIGNh c3RmdW5jID0+ICd0aW1lKHRpbWVzdGFtcHR6KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4gJ3RpbWUodGltZXN0YW1wdHopJywgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1w JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcCh0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAodGlt ZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRh cmdldCA9PiAndGltZXR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1lc3RhbXB0eiknLCBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0 aW1ldHoodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludGVydmFsJywg Y2FzdHRhcmdldCA9PiAndGltZScsIGNhc3RmdW5jID0+ICd0aW1lKGludGVydmFsKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3RpbWV0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAndGlt ZSh0aW1ldHopJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9 PiAndCcgfSwKIAogIyBHZW9tZXRyaWMgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAncG9pbnQn LCBjYXN0dGFyZ2V0ID0+ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KHBvaW50KScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnbHNlZycsIGNhc3R0YXJnZXQgPT4gJ3BvaW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50KGxz ZWcpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogeyBjYXN0c291cmNlID0+ICdwYXRoJywgY2FzdHRhcmdldCA9PiAncG9seWdvbicsIGNhc3Rm dW5jID0+ICdwb2x5Z29uKHBhdGgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0 ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gnLCBjYXN0dGFyZ2V0ID0+ ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2ludChib3gpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gnLCBj YXN0dGFyZ2V0ID0+ICdsc2VnJywgY2FzdGZ1bmMgPT4gJ2xzZWcoYm94KScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYm94JywgY2FzdHRhcmdldCA9PiAncG9seWdvbicsIGNhc3RmdW5jID0+ICdwb2x5Z29uKGJv eCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNhc3R0YXJnZXQgPT4gJ2NpcmNsZScsIGNhc3RmdW5j ID0+ICdjaXJjbGUoYm94KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4g J3BvaW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50KHBvbHlnb24pJywKLSAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdwb2x5 Z29uJywgY2FzdHRhcmdldCA9PiAncGF0aCcsIGNhc3RmdW5jID0+ICdwYXRoJywKLSAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9PiAnYm94JywgY2FzdGZ1bmMgPT4gJ2JveChwb2x5 Z29uKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4gJ2NpcmNsZScsCi0g IGNhc3RmdW5jID0+ICdjaXJjbGUocG9seWdvbiknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdjaXJjbGUocG9seWdvbiknLCBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNhc3RmdW5j ID0+ICdwb2ludChjaXJjbGUpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0ID0+ ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KGNpcmNsZSknLAotICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpcmNsZScs IGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24nLAotICBjYXN0ZnVuYyA9PiAncG9seWdvbihjaXJjbGUp JywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9 PiAncG9seWdvbihjaXJjbGUpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm J30sCiAKICMgTUFDIGFkZHJlc3MgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnbWFjYWRkcics IGNhc3R0YXJnZXQgPT4gJ21hY2FkZHI4JywgY2FzdGZ1bmMgPT4gJ21hY2FkZHI4JywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnbWFjYWRkcjgnLCBjYXN0dGFyZ2V0ID0+ICdtYWNhZGRyJywgY2FzdGZ1bmMgPT4g J21hY2FkZHInLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogCiAjIElORVQgY2F0ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNhc3R0 YXJnZXQgPT4gJ2luZXQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQg PT4gJ2NpZHInLCBjYXN0ZnVuYyA9PiAnY2lkcicsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQml0U3RyaW5nIGNhdGVnb3J5CiB7IGNh c3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmJpdCcsIGNhc3RmdW5jID0+ICcw JywKQEAgLTQ1NCwxMyArNDU0LDEzIEBACiAKICMgQ3Jvc3MtY2F0ZWdvcnkgY2FzdHMgYmV0d2Vl biBiaXQgYW5kIGludDQsIGludDgKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQg PT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQoaW50OCxpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDQnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBjYXN0ZnVuYyA9PiAnYml0KGludDQsaW50NCknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2lu dDgoYml0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0 ZnVuYyA9PiAnaW50NChiaXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIAogIyBDcm9zcy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJvbSBU RVhUCiAjIFdlIG5lZWQgZW50cmllcyBoZXJlIG9ubHkgZm9yIGEgZmV3IHNwZWNpYWxpemVkIGNh c2VzIHdoZXJlIHRoZSBiZWhhdmlvcgpAQCAtNDcxLDY4ICs0NzEsNjggQEAKICMgYmVoYXZpb3Ig d2lsbCBlbnN1ZSB3aGVuIHRoZSBhdXRvbWF0aWMgY2FzdCBpcyBhcHBsaWVkIGluc3RlYWQgb2Yg dGhlCiAjIHBnX2Nhc3QgZW50cnkhCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0 ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3RleHQoaW5ldCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbmV0 JywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChi b29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4 bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9 LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIHRvIGFuZCBmcm9tIFZBUkNIQVIKICMgV2Ugc3Vw cG9ydCBhbGwgdGhlIHNhbWUgY2FzdHMgYXMgZm9yIFRFWFQuCiB7IGNhc3Rzb3VyY2UgPT4gJ2Np ZHInLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3RleHQoaW5ldCknLAot ICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdpbmV0JywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNo YXInLCBjYXN0ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcsIGNhc3R0 YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0 YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3Rz IHRvIGFuZCBmcm9tIEJQQ0hBUgogIyBXZSBzdXBwb3J0IGFsbCB0aGUgc2FtZSBjYXN0cyBhcyBm b3IgVEVYVC4KIHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcics IGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJn ZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn Ym9vbCcsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGJvb2wpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAneG1sJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4bWwn LAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog CiAjIExlbmd0aC1jb2VyY2lvbiBmdW5jdGlvbnMKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywg Y2FzdHRhcmdldCA9PiAnYnBjaGFyJywKICAgY2FzdGZ1bmMgPT4gJ2JwY2hhcihicGNoYXIsaW50 NCxib29sKScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAndmFyY2hhcicsCiAgIGNhc3RmdW5jID0+ICd2 YXJjaGFyKHZhcmNoYXIsaW50NCxib29sKScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1l dGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lJywgY2FzdHRhcmdldCA9PiAndGltZScsIGNhc3Rm dW5jID0+ICd0aW1lKHRpbWUsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0 dGFyZ2V0ID0+ICd0aW1lc3RhbXAnLAogICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wKHRpbWVzdGFt cCxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJnZXQgPT4gJ3RpbWVzdGFtcHR6JywKICAgY2FzdGZ1 bmMgPT4gJ3RpbWVzdGFtcHR6KHRpbWVzdGFtcHR6LGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2kn LAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludGVydmFsJywgY2FzdHRhcmdldCA9 PiAnaW50ZXJ2YWwnLAogICBjYXN0ZnVuYyA9PiAnaW50ZXJ2YWwoaW50ZXJ2YWwsaW50NCknLCBj YXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2Qg PT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXR6 JywgY2FzdHRhcmdldCA9PiAndGltZXR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1ldHos aW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rm dW5jID0+ICd0aW1ldHoodGltZXR6LGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jp dCcsIGNhc3R0YXJnZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQoYml0LGludDQsYm9vbCkn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICd2YXJiaXQnLCBjYXN0dGFyZ2V0ID0+ICd2YXJiaXQnLCBjYXN0ZnVu YyA9PiAndmFyYml0JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ251 bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhudW1lcmljLGludDQpJywgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhu dW1lcmljLGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMganNvbiB0by9mcm9tIGpzb25iCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2pzb24nLCBjYXN0dGFyZ2V0ID0+ICdqc29uYicsIGNhc3RmdW5jID0+ICcwJywKQEAg LTU0MiwzNiArNTQyLDM2IEBACiAKICMganNvbmIgdG8gbnVtZXJpYyBhbmQgYm9vbCB0eXBlcwog eyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2Jvb2wnLCBjYXN0ZnVuYyA9 PiAnYm9vbChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ251 bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29u YicsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50Mihqc29uYiknLAotICBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50 NChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBj YXN0ZnVuYyA9PiAnaW50OChqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJn ZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoanNvbmIpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGpz b25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiAKICMgcmFuZ2UgdG8gbXVsdGlyYW5nZQogeyBjYXN0c291cmNlID0+ICdpbnQ0cmFuZ2Un LCBjYXN0dGFyZ2V0ID0+ICdpbnQ0bXVsdGlyYW5nZScsCiAgIGNhc3RmdW5jID0+ICdpbnQ0bXVs dGlyYW5nZShpbnQ0cmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDhyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ2ludDhtdWx0aXJhbmdl JywKICAgY2FzdGZ1bmMgPT4gJ2ludDhtdWx0aXJhbmdlKGludDhyYW5nZSknLCBjYXN0Y29udGV4 dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtcmFuZ2UnLCBjYXN0 dGFyZ2V0ID0+ICdudW1tdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ251bW11bHRpcmFuZ2Uo bnVtcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2RhdGVyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ2RhdGVtdWx0aXJhbmdlJywKICAgY2Fz dGZ1bmMgPT4gJ2RhdGVtdWx0aXJhbmdlKGRhdGVyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScs Ci0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndHNyYW5nZScsIGNhc3R0YXJnZXQgPT4g J3RzbXVsdGlyYW5nZScsCi0gIGNhc3RmdW5jID0+ICd0c211bHRpcmFuZ2UodHNyYW5nZSknLCBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0 c211bHRpcmFuZ2UodHNyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndHN0enJhbmdl JywgY2FzdHRhcmdldCA9PiAndHN0em11bHRpcmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAndHN0em11 bHRpcmFuZ2UodHN0enJhbmdlKScsIGNhc3Rjb250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog XQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmggYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX2Nhc3QuaAppbmRleCA2YTBjYTMzNzE1My4uMjE4ZDgxZDUzNWEgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oCisrKyBiL3NyYy9pbmNsdWRlL2Nh dGFsb2cvcGdfY2FzdC5oCkBAIC00Nyw2ICs0NywxMCBAQCBDQVRBTE9HKHBnX2Nhc3QsMjYwNSxD YXN0UmVsYXRpb25JZCkKIAogCS8qIGNhc3QgbWV0aG9kICovCiAJY2hhcgkJY2FzdG1ldGhvZDsK KworCS8qIGNhc3QgZnVuY3Rpb24gZXJyb3Igc2FmZSAqLworCWJvb2wJCWNhc3RlcnJvcnNhZmUg QktJX0RFRkFVTFQoZik7CisKIH0gRm9ybURhdGFfcGdfY2FzdDsKIAogLyogLS0tLS0tLS0tLS0t LS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaCBiL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKaW5kZXggNzUzNjYyMDM3MDYuLjJmOGQxNjNhMTNl IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjRXhwci5oCisrKyBiL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKQEAgLTI2NSw2ICsyNjUsNyBAQCB0eXBlZGVmIGVu dW0gRXhwckV2YWxPcAogCUVFT1BfWE1MRVhQUiwKIAlFRU9QX0pTT05fQ09OU1RSVUNUT1IsCiAJ RUVPUF9JU19KU09OLAorCUVFT1BfU0FGRVRZUEVfQ0FTVCwKIAlFRU9QX0pTT05FWFBSX1BBVEgs CiAJRUVPUF9KU09ORVhQUl9DT0VSQ0lPTiwKIAlFRU9QX0pTT05FWFBSX0NPRVJDSU9OX0ZJTklT SCwKQEAgLTc1MCw2ICs3NTEsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgRXhwckV2YWxTdGVwCiAJCQlK c29uSXNQcmVkaWNhdGUgKnByZWQ7CS8qIG9yaWdpbmFsIGV4cHJlc3Npb24gbm9kZSAqLwogCQl9 CQkJaXNfanNvbjsKIAorCQkvKiBmb3IgRUVPUF9TQUZFVFlQRV9DQVNUICovCisJCXN0cnVjdAor CQl7CisJCQlzdHJ1Y3QgU2FmZVR5cGVDYXN0U3RhdGUgKnN0Y3N0YXRlOwkvKiBvcmlnaW5hbCBl eHByZXNzaW9uIG5vZGUgKi8KKwkJfQkJCXN0Y2V4cHI7CisKIAkJLyogZm9yIEVFT1BfSlNPTkVY UFJfUEFUSCAqLwogCQlzdHJ1Y3QKIAkJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMv ZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaAppbmRleCAxOGFlOGYw ZDRiYi4uOWJkNGNlY2FkNjMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rl cy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC0xMDU5LDYgKzEwNTks MjcgQEAgdHlwZWRlZiBzdHJ1Y3QgRG9tYWluQ29uc3RyYWludFN0YXRlCiAJRXhwclN0YXRlICAq Y2hlY2tfZXhwcnN0YXRlOwkvKiBjaGVja19leHByJ3MgZXZhbCBzdGF0ZSwgb3IgTlVMTCAqLwog fSBEb21haW5Db25zdHJhaW50U3RhdGU7CiAKK3R5cGVkZWYgc3RydWN0IFNhZmVUeXBlQ2FzdFN0 YXRlCit7CisJU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwcjsKKworCS8qCisJICogQWRkcmVzcyB0 byBqdW1wIHRvIHdoZW4gc2tpcHBpbmcgYWxsIHRoZSBzdGVwcyB0byBldmF1bGF0ZSB0aGUgZGVm YXVsdAorCSAqIGV4cHJlc3Npb24uCisJICovCisJaW50IAkJanVtcF9lbmQ7CisKKwkvKgorCSAq IEZvciBlcnJvci1zYWZlIGV2YWx1YXRpb24gb2YgY29lcmNpb25zLiBBIHBvaW50ZXIgdG8gdGhp cyBpcyBwYXNzZWQgdG8KKwkgKiBFeGVjSW5pdEV4cHJSZWMoKSB3aGVuIGluaXRpYWxpemluZyB0 aGUgY29lcmNpb24gZXhwcmVzc2lvbnMsIHNlZQorCSAqIEV4ZWNJbml0U2FmZVR5cGVDYXN0RXhw ci4KKwkgKgorCSAqIFJlc2V0IGZvciBlYWNoIGV2YWx1YXRpb24gb2YgRUVPUF9TQUZFVFlQRV9D QVNULgorCSAqLworCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0OworCit9IFNhZmVUeXBlQ2Fz dFN0YXRlOworCiAvKgogICogU3RhdGUgZm9yIEpzb25FeHByIGV2YWx1YXRpb24sIHRvbyBiaWcg dG8gaW5saW5lLgogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCBkMTQyOTRhNGVjZS4uNGIy ZWIzNDBmOTcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTQwMCw2ICs0MDAsMTcgQEAgdHlw ZWRlZiBzdHJ1Y3QgVHlwZUNhc3QKIAlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0 aW9uLCBvciAtMSBpZiB1bmtub3duICovCiB9IFR5cGVDYXN0OwogCisvKgorICogU2FmZVR5cGVD YXN0IC0gYSBDQVNUKHNvdXJjZV9leHByIEFTIHRhcmdldF90eXBlKSBERUZBVUxUIE9OIENPTlZF UlNJT04gRVJST1IKKyAqIGNvbnN0cnVjdAorICovCit0eXBlZGVmIHN0cnVjdCBTYWZlVHlwZUNh c3QKK3sKKwlOb2RlVGFnCQl0eXBlOworCU5vZGUJCSpjYXN0OwkJCS8qIFR5cGVDYXN0IGV4cHJl c3Npb24gKi8KKwlOb2RlCSAgIAkqcmF3X2RlZmF1bHQ7CS8qIERFRkFVTFQgZXhwcmVzc2lvbiAq LworfSBTYWZlVHlwZUNhc3Q7CisKIC8qCiAgKiBDb2xsYXRlQ2xhdXNlIC0gYSBDT0xMQVRFIGV4 cHJlc3Npb24KICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgg Yi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCAxYjQ0MzZmMmZmNi4uYzNiZDcy MmNiMmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3Ny Yy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC03NjksNiArNzY5LDQyIEBAIHR5cGVkZWYg ZW51bSBDb2VyY2lvbkZvcm0KIAlDT0VSQ0VfU1FMX1NZTlRBWCwJCQkvKiBkaXNwbGF5IHdpdGgg U1FMLW1hbmRhdGVkIHNwZWNpYWwgc3ludGF4ICovCiB9IENvZXJjaW9uRm9ybTsKIAorLyoKKyAq IFNhZmVUeXBlQ2FzdEV4cHIgLQorICoJCVRyYW5zZm9ybWVkIHJlcHJlc2VudGF0aW9uIG9mCisg KiAJCUNBU1QoZXhwciBBUyB0eXBlbmFtZSBERUZBVUxUIGV4cHIyIE9OIEVSUk9SKQorICogCQlD QVNUKGV4cHIgQVMgdHlwZW5hbWUgTlVMTCBPTiBFUlJPUikKKyAqLwordHlwZWRlZiBzdHJ1Y3Qg U2FmZVR5cGVDYXN0RXhwcgoreworCUV4cHIJCXhwcjsKKworCS8qIHRyYW5zZm9ybWVkIGV4cHJl c3Npb24gYmVpbmcgY2FzdGVkICovCisJTm9kZQkgICAqc291cmNlX2V4cHI7CisKKwkvKgorCSAq IFRoZSB0cmFuc2Zvcm1lZCBjYXN0IGV4cHJlc3Npb247IE5VTEwgaWYgd2UgY2FuIG5vdCBjb2Nl cmNlIHNvdXJjZQorCSAqIGV4cHJlc3Npb24gdG8gdGhlIHRhcmdldCB0eXBlCisJICovCisJTm9k ZQkgICAqY2FzdF9leHByIAlwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7CisKKwkv KiBGYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHQgZXhwcmVzc2lvbiBpZiBjYXN0IGV2YWx1YXRpb24g ZmFpbHMgKi8KKwlOb2RlCSAgICpkZWZhdWx0X2V4cHI7CisKKwkvKiBjYXN0IHJlc3VsdCBkYXRh IHR5cGUgKi8KKwlPaWQJCQlyZXN1bHR0eXBlOworCisJLyogY2FzdCByZXN1bHQgZGF0YSB0eXBl IHR5cG1vZCAodXN1YWxseSAtMSkgKi8KKwlpbnQzMgkJcmVzdWx0dHlwbW9kOworCisJLyogY2Fz dCByZXN1bHQgZGF0YSB0eXBlIGNvbGxhdGlvbiAqLworCU9pZAkJCXJlc3VsdGNvbGxpZDsKKwor CS8qIE9yaWdpbmFsIFNhZmVUeXBlQ2FzdEV4cHIncyBsb2NhdGlvbiAqLworCVBhcnNlTG9jCWxv Y2F0aW9uOworCit9IFNhZmVUeXBlQ2FzdEV4cHI7CisKIC8qCiAgKiBGdW5jRXhwciAtIGV4cHJl c3Npb24gbm9kZSBmb3IgYSBmdW5jdGlvbiBjYWxsCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgK aW5kZXggZjdkMDdjODQ1NDIuLjlmNWIzMmUwMzYwIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgK QEAgLTY3LDYgKzY3LDggQEAgdHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQKIAlFWFBSX0tJTkRf VkFMVUVTX1NJTkdMRSwJLyogc2luZ2xlLXJvdyBWQUxVRVMgKGluIElOU0VSVCBvbmx5KSAqLwog CUVYUFJfS0lORF9DSEVDS19DT05TVFJBSU5ULCAvKiBDSEVDSyBjb25zdHJhaW50IGZvciBhIHRh YmxlICovCiAJRVhQUl9LSU5EX0RPTUFJTl9DSEVDSywJCS8qIENIRUNLIGNvbnN0cmFpbnQgZm9y IGEgZG9tYWluICovCisJRVhQUl9LSU5EX0NBU1RfREVGQVVMVCwJCS8qIGRlZmF1bHQgZXhwcmVz c2lvbiBpbgorCQkJCQkJCQkgICBDQVNUIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUiAqLwog CUVYUFJfS0lORF9DT0xVTU5fREVGQVVMVCwJLyogZGVmYXVsdCB2YWx1ZSBmb3IgYSB0YWJsZSBj b2x1bW4gKi8KIAlFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVCwgLyogZGVmYXVsdCBwYXJhbWV0 ZXIgdmFsdWUgZm9yIGZ1bmN0aW9uICovCiAJRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT04sIC8q IGluZGV4IGV4cHJlc3Npb24gKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvY2FzdC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0Cm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jYjQwZmYwZjIwMAotLS0gL2Rldi9udWxs CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2FzdC5vdXQKQEAgLTAsMCArMSw3OTEg QEAKK1NFVCBleHRyYV9mbG9hdF9kaWdpdHMgPSAwOworLS0gQ0FTVCBERUZBVUxUIE9OIENPTlZF UlNJT04gRVJST1IKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgRVJST1IgT04gQ09O VkVSU0lPTiBFUlJPUikpOyAtLWVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZv ciB0eXBlIGludGVnZXI6ICJlcnJvciIKK0xJTkUgMTogVkFMVUVTIChDQVNUKCdlcnJvcicgQVMg aW50ZWdlciBFUlJPUiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CisgICAgICAgICAgICAgICAgICAg ICBeCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikpOworIGNvbHVtbjEgCistLS0tLS0tLS0KKyAgICAgICAgCisoMSByb3cpCisKK1ZBTFVF UyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgREVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9S KSk7CisgY29sdW1uMSAKKy0tLS0tLS0tLQorICAgICAgNDIKKygxIHJvdykKKworU0VMRUNUIENB U1QoQicwMScgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZGF0 ZSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChCSVQnMDEnIEFTIGRhdGUgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGRhdGUgCistLS0tLS0KKyAKKygxIHJv dykKKworU0VMRUNUIENBU1QoVFJVRSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyBkYXRlIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKDEuMSBB UyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkYXRlIAorLS0tLS0t CisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgxOjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBudW1lcmljIHRvIG1vbmV5IHdoZW4gREVGQVVMVCBl eHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitM SU5FIDE6IFNFTEVDVCBDQVNUKDE6Om51bWVyaWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRS4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2Fz dCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBkZWNsYXJlZCBhcyBzYWZlCitTRUxF Q1QgQ0FTVCgxMTExIEFTICJjaGFyIiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgY2hhciAKKy0tLS0tLQorIAorKDEgcm93KQorCistLXRoZSBkZWZhdWx0IGV4cHJlc3Npb27i gJlzIGNvbGxhdGlvbiBzaG91bGQgbWF0Y2ggdGhlIGNvbGxhdGlvbiBvZiB0aGUgY2FzdAorLS10 YXJnZXQgdHlwZQorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgdGV4dCBERUZBVUxUICcxJyBDT0xM QVRFICJDIiBPTiBDT05WRVJTSU9OIEVSUk9SKSk7CitFUlJPUjogIHRoZSBjb2xsYXRpb24gb2Yg Q0FTVCBERUZBVUxUIGV4cHJlc3Npb24gY29uZmxpY3RzIHdpdGggdGFyZ2V0IHR5cGUgY29sbGF0 aW9uCitMSU5FIDE6IFZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIHRleHQgREVGQVVMVCAnMScgQ09M TEFURSAiQyIgT04gQ09OVi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXgorREVUQUlMOiAgImRlZmF1bHQiIHZlcnN1cyAiQyIKK1ZBTFVFUyAoQ0FTVCgn ZXJyb3InIEFTIGludDJ2ZWN0b3IgREVGQVVMVCAnMSAzJyAgT04gQ09OVkVSU0lPTiBFUlJPUikp OworIGNvbHVtbjEgCistLS0tLS0tLS0KKyAxIDMKKygxIHJvdykKKworVkFMVUVTIChDQVNUKCdl cnJvcicgQVMgaW50MnZlY3RvcltdIERFRkFVTFQgJ3sxIDN9JyAgT04gQ09OVkVSU0lPTiBFUlJP UikpOworIGNvbHVtbjEgCistLS0tLS0tLS0KKyB7IjEgMyJ9CisoMSByb3cpCisKKy0tIHRlc3Qg c291cmNlIGV4cHJlc3Npb24gY29udGFpbiBzdWJxdWVyeQorU0VMRUNUIENBU1QoKFNFTEVDVCBi IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsIDEpLCAoVkFMVUVTKCdIJykpIHMoYikpCisgICAgICAg ICAgICBBUyBpbnQydmVjdG9yW10gREVGQVVMVCAnezEgM30nICBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyAgICBiICAgIAorLS0tLS0tLS0tCisgeyIxIDMifQorKDEgcm93KQorCitTRUxFQ1QgQ0FT VCgoU0VMRUNUIEFSUkFZKChTRUxFQ1QgYiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLCAyKSBnLCAo VkFMVUVTKCdIJykpIHMoYikpKSkKKyAgICAgICAgICAgIEFTIElOVFtdCisgICAgICAgICAgICBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCiso MSByb3cpCisKK0NSRUFURSBGVU5DVElPTiByZXRfaW50OCgpIFJFVFVSTlMgQklHSU5UIEFTCisk JAorQkVHSU4gUkVUVVJOIDIxNDc0ODM2NDg7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsIElN TVVUQUJMRTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfaW50OCgpIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGludGVnZXIgb3V0IG9mIHJhbmdlCitT RUxFQ1QgQ0FTVCgnYScgYXMgZGF0ZSBERUZBVUxUIHJldF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBF UlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgY2Fubm90IGNvZXJjZSBDQVNUIERFRkFVTFQgZXhwcmVz c2lvbiB0byB0eXBlIGRhdGUKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGRhdGUgREVGQVVM VCByZXRfaW50OCgpIE9OIENPTlZFUlNJT04gRVJSLi4uCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXgorLS0gdGVzdCBhcnJheSBjb2VyY2UKK1NFTEVDVCBDQVNUKGFy cmF5WydhJzo6dGV4dF0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OyAtLWVycm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6 ICJhIgorU0VMRUNUIENBU1QoYXJyYXlbJ2EnXSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7IC0tb2sKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKworU0VM RUNUIENBU1QoYXJyYXlbMTEuMTJdIEFTIGRhdGVbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKGFy cmF5WzExMTExMTExMTExMTExMTExXSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKGFy cmF5W1snYWJjJ10sWzQ1Nl1dIEFTIGludFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ3sxMjMs YWJjLDQ1Nn0nIEFTIGludFtdIERFRkFVTFQgJ3stNzg5fScgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgIGludDQgIAorLS0tLS0tLS0KKyB7LTc4OX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ3sy MzQsZGVmLDU2N30nOjp0ZXh0W10gQVMgaW50ZWdlcltdIERFRkFVTFQgJ3stMTAxMX0nIE9OIENP TlZFUlNJT04gRVJST1IpOworICBpbnQ0ICAgCistLS0tLS0tLS0KKyB7LTEwMTF9CisoMSByb3cp CisKK1NFTEVDVCBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydhJ11dIEFTIGludFtdIERF RkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBhcnJheSAKKy0tLS0tLS0KKyB7 MSwyfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywg J2EnXV0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0t b2sKKyAgYXJyYXkgIAorLS0tLS0tLS0tCisgezIxLDIyfQorKDEgcm93KQorCitTRUxFQ1QgQ0FT VChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJzo6aW50LCAnYSddXSBBUyBpbnRbXSBERUZBVUxU ICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBpbnZhbGlk IGlucHV0IHN5bnRheCBmb3IgdHlwZSBpbnRlZ2VyOiAidGhyZWUiCitMSU5FIDE6IFNFTEVDVCBD QVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnOjppbnQsICdhJ11dIEFTIGludFtdIC4uLgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1QoQVJS QVlbMSwgJ3RocmVlJzo6aW50XSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJT SU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlw ZSBpbnRlZ2VyOiAidGhyZWUiCitMSU5FIDE6IFNFTEVDVCBDQVNUKEFSUkFZWzEsICd0aHJlZSc6 OmludF0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfS4uLgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCistLSB0ZXN0IHZhbGlkIERFRkFVTFQgZXhwcmVzc2lvbiBmb3IgQ0FTVCA9IE9O IENPTlZFUlNJT04gRVJST1IKK0NSRUFURSBGVU5DVElPTiByZXRfc2V0aW50KCkgUkVUVVJOUyBT RVRPRiBpbnRlZ2VyIEFTCiskJAorQkVHSU4gUkVUVVJOIFFVRVJZIEVYRUNVVEUgJ3NlbGVjdCAx IHVuaW9uIGFsbCBzZWxlY3QgMSc7IEVORDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJM RTsKK0NSRUFURSBUQUJMRSB0Y2FzdChhIHRleHRbXSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFV TFQgQVMgSURFTlRJVFksIGMgdGV4dCBkZWZhdWx0ICcxJyk7CitJTlNFUlQgSU5UTyB0Y2FzdCBW QUxVRVMgKCd7MTJ9JyksICgnezEsYSwgYn0nKSwgKCd7ezEsMn0sIHtjLGR9fScpLCAoJ3sxM30n KTsKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfc2V0aW50KCkgT04gQ09OVkVS U0lPTiBFUlJPUikgRlJPTSB0Y2FzdDsgLS1lcnJvcgorRVJST1I6ICBzZXQtcmV0dXJuaW5nIGZ1 bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zCitMSU5F IDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfc2V0aW50KCkgT04gQ09OVkVS U0lPTiBFUi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VM RUNUIENBU1QoYzo6ZGF0ZTo6anNvbiBhcyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBGUk9NIHRjYXN0OyAtLWVycm9yCitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgZGF0 ZSB0byBqc29uCitMSU5FIDE6IFNFTEVDVCBDQVNUKGM6OmRhdGU6Ompzb24gYXMgZGF0ZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgXgor U0VMRUNUIENBU1QoJ2EnOjppbnQgYXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsgLS1lcnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSBpbnRl Z2VyOiAiYSIKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnOjppbnQgYXMgaW50IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBD QVNUKCdhJyBhcyBpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCisg aW50NCAKKy0tLS0tLQorICAgICAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBE RUZBVUxUIHN1bSgxKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBhZ2dy ZWdhdGUgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBDQVNUIERFRkFVTFQgZXhwcmVzc2lv bnMKK0xJTkUgMTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHN1bSgxKSBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K K1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3ZlcigpIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHdpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxv d2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucworTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScg YXMgaW50IERFRkFVTFQgc3VtKDEpIG92ZXIoKSBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQg REVGQVVMVCAoU0VMRUNUIE5VTEwpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJP UjogIGNhbm5vdCB1c2Ugc3VicXVlcnkgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb24KK0xJTkUg MTogU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIChTRUxFQ1QgTlVMTCkgT04gQ09OVkVS U0lPTiBFLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxF Q1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVy cm9yCitFUlJPUjogIGludmFsaWQgaW5wdXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJiIgor TElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgJ2InIE9OIENPTlZFUlNJT04g RVJST1IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNU IENBU1QodCBBUyB0ZXh0W10gREVGQVVMVCAnezIxLDIyLCAnIHx8IGIgfHwgJ30nIE9OIENPTlZF UlNJT04gRVJST1IpIEZST00gdGNhc3QgYXMgdDsKKyAgICAgdCAgICAgCistLS0tLS0tLS0tLQor IHsyMSwyMiwxfQorIHsyMSwyMiwyfQorIHsyMSwyMiwzfQorIHsyMSwyMiw0fQorKDQgcm93cykK KworU0VMRUNUIENBU1QodC5hIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nOjppbnRbXSB8fCBi IE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3QgYXMgdDsKKyAgICAgYSAgICAgCistLS0t LS0tLS0tLQorIHsxMn0KKyB7MjEsMjIsMn0KKyB7MjEsMjIsM30KKyB7MTN9CisoNCByb3dzKQor CistLSB0ZXN0IHdpdGggZG9tYWluCitDUkVBVEUgRE9NQUlOIGRfaW50NDIgYXMgaW50IGNoZWNr ICh2YWx1ZSA9IDQyKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF9jaGFyM19ub3RfbnVsbCBh cyBjaGFyKDMpIE5PVCBOVUxMOworQ1JFQVRFIERPTUFJTiBkX3ZhcmNoYXIgYXMgdmFyY2hhcigz KSBOT1QgTlVMTDsKK0NSRUFURSBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIEFTIChhIGRf Y2hhcjNfbm90X251bGwsIGIgaW50KTsKK0NSRUFURSBUWVBFIGNvbXAyIEFTIChhIGRfdmFyY2hh cik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBBUyBjb21wMiBERUZBVUxUICcoMTIzMiknIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHZhbHVlIHRvbyBsb25nIGZvciB0eXBl IGNoYXJhY3RlciB2YXJ5aW5nKDMpCitMSU5FIDE6IFNFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNv bXAyIERFRkFVTFQgJygxMjMyKScgT04gQ09OVkVSU0lPTi4uLgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNv bXAyIERFRkFVTFQgJygxMjMpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vaworIGNvbXAyIAor LS0tLS0tLQorICgxMjMpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIgREVG QVVMVCA0MSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICB2YWx1ZSBmb3Ig ZG9tYWluIGRfaW50NDIgdmlvbGF0ZXMgY2hlY2sgY29uc3RyYWludCAiZF9pbnQ0Ml9jaGVjayIK K1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIgREVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9S KTsgLS1vaworIGRfaW50NDIgCistLS0tLS0tLS0KKyAgICAgIDQyCisoMSByb3cpCisKK1NFTEVD VCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 IC0tZXJyb3IKK0VSUk9SOiAgZG9tYWluIGRfaW50NDIgZG9lcyBub3QgYWxsb3cgbnVsbCB2YWx1 ZXMKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIDQyIE9OIENPTlZFUlNJT04g RVJST1IpOyAtLW9rCisgZF9pbnQ0MiAKKy0tLS0tLS0tLQorICAgICAgNDIKKygxIHJvdykKKwor U0VMRUNUIENBU1QoJygsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY29tcF9kb21haW5fd2l0aF90eXBtb2QgCistLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoTlVMTCw0 MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygxLDIpJyBPTiBDT05WRVJT SU9OIEVSUk9SKTsKKyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAoIjEgICIsMikKKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOVUxMLDQyKScg QVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCAnKDEyMzQsMiknIE9OIENPTlZFUlNJ T04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHZhbHVlIHRvbyBsb25nIGZvciB0eXBlIGNoYXJh Y3RlcigzKQorTElORSAxOiAuLi5TVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5 cG1vZCBERUZBVUxUICcoMTIzNCwyKScuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCistLS0tLXNhZmUgY2FzdCB3aXRoIGdl b21ldHJ5IGRhdGEgdHlwZQorU0VMRUNUIENBU1QoJygxLDIpJzo6cG9pbnQgQVMgYm94IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgYm94ICAgICAKKy0tLS0tLS0tLS0t LS0KKyAoMSwyKSwoMSwyKQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWyhOYU4sMSksKE5hTixp bmZpbml0eSldJzo6bHNlZyBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisgICAgIHBvaW50ICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgKE5hTixJbmZpbml0eSkK KygxIHJvdykKKworU0VMRUNUIENBU1QoJ1soMWUrMzAwLEluZmluaXR5KSwoMWUrMzAwLEluZmlu aXR5KV0nOjpsc2VnIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyAgICAgICBwb2ludCAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoMWUrMzAwLEluZmlu aXR5KQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWygxLDIpLCgzLDQpXSc6OnBhdGggYXMgcG9s eWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgcG9seWdvbiAKKy0tLS0t LS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKE5hTiwxLjAsTmFOLGluZmluaXR5KSc6 OmJveCBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHBv aW50ICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgKE5hTixJbmZpbml0eSkKKygxIHJvdykKKwor U0VMRUNUIENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIGxzZWcgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBsc2VnICAgICAgCistLS0tLS0tLS0tLS0tLS0K KyBbKDIsMiksKDAsMCldCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4w KSc6OmJveCBBUyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAg ICAgICAgICBwb2x5Z29uICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisg KCgwLDApLCgwLDIpLCgyLDIpLCgyLDApKQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwy LjAsMC4wLDAuMCknOjpib3ggQVMgcGF0aCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisgcGF0aCAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCxpbmZp bml0eSxOYU4saW5maW5pdHkpJzo6Ym94IEFTIGNpcmNsZSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CisgICAgICAgIGNpcmNsZSAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisgPChOYU4sSW5maW5pdHkpLE5hTj4KKygxIHJvdykKKworU0VMRUNUIENBU1QoJyhOYU4s MC4wKSwoMi4wLDQuMCksKDAuMCxpbmZpbml0eSknOjpwb2x5Z29uIEFTIHBvaW50IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgcG9pbnQgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0KKyAoTmFOLEluZmluaXR5KQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwwLjAp LCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIHBhdGggREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworICAgICAgICBwYXRoICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyAoKDIsMCksKDIsNCksKDAsMCkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4w LDAuMCksKDIuMCw0LjApLCgwLjAsMC4wKSc6OnBvbHlnb24gQVMgYm94IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgYm94ICAgICAKKy0tLS0tLS0tLS0tLS0KKyAoMiw0 KSwoMCwwKQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnKE5hTixpbmZpbml0eSksKDIuMCw0LjAp LCgwLjAsaW5maW5pdHkpJzo6cG9seWdvbiBBUyBjaXJjbGUgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworICAgICAgICBjaXJjbGUgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIDwoTmFOLEluZmluaXR5KSxOYU4+CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCc8KDUs MSksMz4nOjpjaXJjbGUgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworIHBvaW50IAorLS0tLS0tLQorICg1LDEpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCc8KDMs NSksMD4nOjpjaXJjbGUgYXMgYm94IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK KyAgICAgYm94ICAgICAKKy0tLS0tLS0tLS0tLS0KKyAoMyw1KSwoMyw1KQorKDEgcm93KQorCist LSBub3Qgc3VwcG9ydGVkIGJlY2F1c2UgdGhlIGNhc3QgZnJvbSBjaXJjbGUgdG8gcG9seWdvbiBp cyBpbXBsZW1lbnRlZCBhcyBhIFNRTAorLS0gZnVuY3Rpb24sIHdoaWNoIGNhbm5vdCBiZSBlcnJv ci1zYWZlLgorU0VMRUNUIENBU1QoJzwoMyw1KSwwPic6OmNpcmNsZSBhcyBwb2x5Z29uIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBj aXJjbGUgdG8gcG9seWdvbiB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4g Q0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVCgnPCgzLDUp LDA+Jzo6Y2lyY2xlIGFzIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIEMuLi4KKyAgICAgICAgICAg ICAgICAgICAgXgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlv biBpcyBub3QgZGVjbGFyZWQgYXMgc2FmZQorLS0tLS1zYWZlIGNhc3QgZnJvbS90byBtb25leSB0 eXBlIGlzIG5vdCBzdXBwb3J0ZWQsIGFsbCB0aGUgZm9sbG93aW5nIHdvdWxkIHJlc3VsdCBlcnJv cgorU0VMRUNUIENBU1QoTlVMTDo6aW50OCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgYmlnaW50IHRvIG1vbmV5IHdo ZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJT SU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6OmludDggQVMgbW9uZXkgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAgICAgICAgICAgICBeCitISU5UOiAg RXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBkZWNsYXJlZCBh cyBzYWZlCitTRUxFQ1QgQ0FTVChOVUxMOjppbnQ0IEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBpbnRlZ2VyIHRvIG1v bmV5IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBD T05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6OmludDQgQVMgbW9uZXkg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAgICAgICAgICAgICBeCitI SU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBkZWNs YXJlZCBhcyBzYWZlCitTRUxFQ1QgQ0FTVChOVUxMOjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBudW1l cmljIHRvIG1vbmV5IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNU IC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6Om51bWVy aWMgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJTy4uLgorICAgICAgICAgICAgICAg ICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlz IG5vdCBkZWNsYXJlZCBhcyBzYWZlCitTRUxFQ1QgQ0FTVChOVUxMOjptb25leSBBUyBudW1lcmlj IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3Qg dHlwZSBtb25leSB0byBudW1lcmljIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmll ZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5V TEw6Om1vbmV5IEFTIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJTy4uLgorICAgICAg ICAgICAgICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZp bml0aW9uIGlzIG5vdCBkZWNsYXJlZCBhcyBzYWZlCistLS0tLXNhZmUgY2FzdCBmcm9tIGJ5dGVh IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1QgKCdceDExMjIzMzQ0NTU2Njc3 ODg5OSc6OmJ5dGVhIEFTIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwor IGludDggCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdceDEyMzQ1Njc4 OUEnOjpieXRlYSBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBp bnQ0IAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnXHgxMjM0NTYnOjpi eXRlYSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQyIAor LS0tLS0tCisgICAgIAorKDEgcm93KQorCistLS0tLXNhZmUgY2FzdCBmcm9tIGJpdCB0eXBlIHRv IG90aGVyIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCcxMTExMTExMTExMDAwMDEnOjpiaXQoMTAw KSBBUyBJTlQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGludDQgCistLS0t LS0KKyAgICAgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUICgnMTExMTExMTExMTAwMDAxJzo6Yml0 KDEwMCkgQVMgSU5UOCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50OCAK Ky0tLS0tLQorICAgICAKKygxIHJvdykKKworLS0tLS1zYWZlIGNhc3QgZnJvbSB0ZXh0IHR5cGUg dG8gb3RoZXIgZGF0YSB0eXBlcworc2VsZWN0IENBU1QoJ2EuYi5jLmQnOjp0ZXh0IGFzIHJlZ2Ns YXNzIGRlZmF1bHQgTlVMTCBvbiBjb252ZXJzaW9uIGVycm9yKTsKKyByZWdjbGFzcyAKKy0tLS0t LS0tLS0KKyAKKygxIHJvdykKKworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QoY29sMCB0ZXh0 KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QoY29sMCkgVkFMVUVTICgnPHZhbHVlPm9uZTwv dmFsdWUnKTsKK1NFTEVDVCBjb2wwIGFzIHRleHQsCisgICAgICAgQ0FTVChjb2wwIEFTIHJlZ2Ns YXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19yZWdjbGFzcywKKyAg ICAgICBDQVNUKGNvbDAgQVMgcmVnY2xhc3MgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIElTIE5VTEwgYXMgZXhwZWN0X3RydWUsCisgICAgICAgQ0FTVChjb2wwIEFTICJjaGFyIiAg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2NoYXIsCisgICAgICAgQ0FT VChjb2wwIEFTIG5hbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX25h bWUsCisgICAgICAgQ0FTVChjb2wwIEFTIHhtbCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9feG1sCitGUk9NIHRlc3Rfc2FmZWNhc3Q7CisgICAgICAgdGV4dCAgICAgICAg fCB0b19yZWdjbGFzcyB8IGV4cGVjdF90cnVlIHwgdG9fY2hhciB8ICAgICAgdG9fbmFtZSAgICAg IHwgdG9feG1sIAorLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0KKyA8dmFsdWU+b25lPC92 YWx1ZSB8ICAgICAgICAgICAgIHwgdCAgICAgICAgICAgfCA8ICAgICAgIHwgPHZhbHVlPm9uZTwv dmFsdWUgfCAKKygxIHJvdykKKworU0VMRUNUIENBU1QoJzE5Mi4xNjguMS54JyBhcyBpbmV0IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbmV0IAorLS0tLS0tCisgCisoMSBy b3cpCisKK1NFTEVDVCBDQVNUKCcxOTIuMTY4LjEuMi8zMCcgYXMgY2lkciBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgY2lkciAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxF Q1QgQ0FTVCgnMjI6MDA6NWM6MDg6NTU6MDg6MDE6MDInOjptYWNhZGRyOCBhcyBtYWNhZGRyIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBtYWNhZGRyIAorLS0tLS0tLS0tCisg CisoMSByb3cpCisKKy0tLS0tc2FmZSBjYXN0IGJldHdlZWVuIHJhbmdlIGRhdGEgdHlwZXMKK1NF TEVDVCBDQVNUKCdbMSwyXSc6OmludDRyYW5nZSBBUyBpbnQ0bXVsdGlyYW5nZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgaW50NG11bHRpcmFuZ2UgCistLS0tLS0tLS0tLS0t LS0tCisge1sxLDMpfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjppbnQ4cmFuZ2Ug QVMgaW50OG11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGlu dDhtdWx0aXJhbmdlIAorLS0tLS0tLS0tLS0tLS0tLQorIHtbMSwzKX0KKygxIHJvdykKKworU0VM RUNUIENBU1QoJ1sxLDJdJzo6bnVtcmFuZ2UgIEFTIG51bW11bHRpcmFuZ2UgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworIG51bW11bHRpcmFuZ2UgCistLS0tLS0tLS0tLS0tLS0K KyB7WzEsMl19CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6 OmRhdGVyYW5nZSBBUyBkYXRlbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CisgICAgIGRhdGVtdWx0aXJhbmdlICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIHtbLWluZmluaXR5LGluZmluaXR5XX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1staW5m aW5pdHksaW5maW5pdHldJzo6dHNyYW5nZSBBUyB0c211bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworICAgICAgdHNtdWx0aXJhbmdlICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyB7Wy1pbmZpbml0eSxpbmZpbml0eV19CisoMSByb3cpCisKK1NFTEVD VCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OnRzdHpyYW5nZSBBUyB0c3R6bXVsdGlyYW5n ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIHRzdHptdWx0aXJhbmdl ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHtbLWluZmluaXR5LGluZmluaXR5XX0K KygxIHJvdykKKworLS0tLS1zYWZlIGNhc3QgYmV0d2VlZW4gbnVtZXJpYyBkYXRhIHR5cGVzCitD UkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDEoCisgIGNvbDEgZmxvYXQ0LCBjb2wyIGZsb2F0OCwg Y29sMyBudW1lcmljLCBjb2w0IG51bWVyaWNbXSwKKyAgY29sNSBpbnQyIGRlZmF1bHQgMzI3Njcs CisgIGNvbDYgaW50NCBkZWZhdWx0IDMyNzY4LAorICBjb2w3IGludDggZGVmYXVsdCA0Mjk0OTY3 Mjk2KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnMTEuMTIzNCcsICcxMS4x MjM0JywgJzkyMjMzNzIwMzY4NTQ3NzU4MDgnLCAnezExLjEyMzR9Jzo6bnVtZXJpY1tdKTsKK0lO U0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QxIFZBTFVFUygnaW5mJywgJ2luZicsICdpbmYnLCAnezEx LjEyMzQsIDEyLCBpbmYsIE5hTn0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gdGVzdF9zYWZl Y2FzdDEgVkFMVUVTKCctaW5mJywgJy1pbmYnLCAnLWluZicsICd7MTEuMTIzNCwgMTIsIC1pbmYs IE5hTn0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCdO YU4nLCAnTmFOJywgJ05hTicsICd7MTEuMTIzNCwgMTIsIC1pbmYsIE5hTn0nOjpudW1lcmljW10p OworU0VMRUNUIGNvbDUgYXMgaW50MiwKKyAgICAgICBDQVNUKGNvbDUgQVMgaW50MiBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDUg QVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAg ICAgICBDQVNUKGNvbDUgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w1IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w1IGFzIGZsb2F0NCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1Qo Y29sNSBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zs b2F0OCwKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDUgYXMgbnVtZXJpYygx MCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2Fs ZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyBpbnQyICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9f b2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRvX2Zsb2F0OCB8IHRvX251bWVyaWMgfCB0b19u dW1lcmljX3NjYWxlIAorLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAg MzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3IHwgICAgICAgICAgMzI3NjcuMAorIDMyNzY3 IHwgICAzMjc2NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAg IDMyNzY3IHwgICAgICAzMjc2NyB8ICAgICAgICAgIDMyNzY3LjAKKyAzMjc2NyB8ICAgMzI3Njcg fCAgIDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAg ICAgMzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCisgMzI3NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8 ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgMzI3NjcgfCAgICAgIDMyNzY3IHwg ICAgICAgICAgMzI3NjcuMAorKDQgcm93cykKKworU0VMRUNUIGNvbDYgYXMgaW50NCwKKyAgICAg ICBDQVNUKGNvbDYgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50MiwKKyAgICAgICBDQVNUKGNvbDYgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDYgQVMgb2lkIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2w2IGFz IGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisgICAg ICAgQ0FTVChjb2w2IGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sNiBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDYgYXMgbnVt ZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAg ICAgICBDQVNUKGNvbDYgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyBpbnQ0 ICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8IHRv X2Zsb2F0OCB8IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgMzI3NjggfCAgICAgICAgIHwgICAzMjc2 OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgIDMyNzY4 IHwgICAgICAgICAgMzI3NjguMAorIDMyNzY4IHwgICAgICAgICB8ICAgMzI3NjggfCAgMzI3Njgg fCAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgICAzMjc2OCB8ICAgICAgICAg IDMyNzY4LjAKKyAzMjc2OCB8ICAgICAgICAgfCAgIDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8 ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3NjggfCAgICAgICAgICAzMjc2OC4wCisg MzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2OCB8ICAgMzI3NjggfCAgICAgMzI3Njgg fCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAgICAgMzI3NjguMAorKDQgcm93cykKKwor U0VMRUNUIGNvbDcgYXMgaW50OCwKKyAgICAgICBDQVNUKGNvbDcgQVMgaW50MiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDcgQVMg aW50NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAg ICBDQVNUKGNvbDcgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19vaWQsCisgICAgICAgQ0FTVChjb2w3IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2w3IGFzIGZsb2F0NCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29s NyBhcyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0 OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDcgYXMgbnVtZXJpYygxMCwx KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQor RlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAgICBpbnQ4ICAgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0 b19vaWQgfCAgdG9faW50OCAgIHwgIHRvX2Zsb2F0NCAgfCB0b19mbG9hdDggIHwgdG9fbnVtZXJp YyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwgICAgICAgICB8 ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3 Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwgICAgICAgICB8 ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3 Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwgICAgICAgICB8 ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3 Mjk2IHwgICAgICAgICAgICAgICAgIAorIDQyOTQ5NjcyOTYgfCAgICAgICAgIHwgICAgICAgICB8 ICAgICAgICB8IDQyOTQ5NjcyOTYgfCA0LjI5NDk3ZSswOSB8IDQyOTQ5NjcyOTYgfCA0Mjk0OTY3 Mjk2IHwgICAgICAgICAgICAgICAgIAorKDQgcm93cykKKworU0VMRUNUIGNvbDMgYXMgbnVtZXJp YywKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDMgQVMgaW50NCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDMgQVMgb2lk IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FT VChjb2wzIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dDgsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMyBhcyBmbG9hdDggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNv bDMgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVt ZXJpYywKKyAgICAgICBDQVNUKGNvbDMgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0 MTsKKyAgICAgICBudW1lcmljICAgICAgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0 b19pbnQ4IHwgIHRvX2Zsb2F0NCAgfCAgICAgIHRvX2Zsb2F0OCAgICAgICB8ICAgICB0b19udW1l cmljICAgICAgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisg OTIyMzM3MjAzNjg1NDc3NTgwOCB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgIHwgICAgICAg ICB8IDkuMjIzMzdlKzE4IHwgOS4yMjMzNzIwMzY4NTQ3OGUrMTggfCA5MjIzMzcyMDM2ODU0Nzc1 ODA4IHwgICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgSW5maW5pdHkgfCAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAgICBJbmZpbml0eSB8ICAgICAgICAgICAgIElu ZmluaXR5IHwgICAgICAgICAgICBJbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAgICAgICAg ICAgLUluZmluaXR5IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgICAt SW5maW5pdHkgfCAgICAgICAgICAgIC1JbmZpbml0eSB8ICAgICAgICAgICAtSW5maW5pdHkgfCAg ICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgIE5hTiB8ICAgICAgICAgfCAgICAgICAg IHwgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgTmFOIHwgICAgICAgICAgICAgICAgICBOYU4g fCAgICAgICAgICAgICAgICAgTmFOIHwgICAgICAgICAgICAgIE5hTgorKDQgcm93cykKKworU0VM RUNUIGNvbDQgYXMgbnVtX2FyciwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50MltdIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQyYXJyLAorICAgICAgIENBU1QoY29sNCBB UyBpbnQ0W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGludDRhcnIsCisg ICAgICAgQ0FTVChjb2w0IGFzIGludDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgaW50OGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgZmxvYXQ0W10gREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY0YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBmbG9h dDhbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgZjhhcnIsCisgICAgICAg Q0FTVChjb2w0IGFzIG51bWVyaWMoMTAsMSlbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgbnVtYXJyCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworICAgICAgICAgIG51bV9hcnIg ICAgICAgICAgIHwgaW50MmFyciB8IGludDRhcnIgfCBpbnQ4YXJyIHwgICAgICAgICAgIGY0YXJy ICAgICAgICAgICAgfCAgICAgICAgICAgZjhhcnIgICAgICAgICAgICB8IG51bWFyciAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tCisgezExLjEyMzR9ICAgICAgICAgICAgICAgICAgfCB7MTF9ICAgIHwgezExfSAgICB8 IHsxMX0gICAgfCB7MTEuMTIzNH0gICAgICAgICAgICAgICAgICB8IHsxMS4xMjM0fSAgICAgICAg ICAgICAgICAgIHwgezExLjF9CisgezExLjEyMzQsMTIsSW5maW5pdHksTmFOfSAgfCAgICAgICAg IHwgICAgICAgICB8ICAgICAgICAgfCB7MTEuMTIzNCwxMixJbmZpbml0eSxOYU59ICB8IHsxMS4x MjM0LDEyLEluZmluaXR5LE5hTn0gIHwgCisgezExLjEyMzQsMTIsLUluZmluaXR5LE5hTn0gfCAg ICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8 IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgCisgezExLjEyMzQsMTIsLUluZmluaXR5LE5h Tn0gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgfCB7MTEuMTIzNCwxMiwtSW5maW5pdHks TmFOfSB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59IHwgCisoNCByb3dzKQorCitTRUxFQ1Qg Y29sMSBhcyBmbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIEFTIGludDIgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2wxIEFTIGludDQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FT VChjb2wxIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lk LAorICAgICAgIENBU1QoY29sMSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMSBhcyBmbG9hdDQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDEgYXMg ZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisg ICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wxIGFzIG51bWVyaWMoMTAsMSkgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00g dGVzdF9zYWZlY2FzdDE7CisgIGZsb2F0NCAgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQg fCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgICAgdG9fZmxvYXQ4ICAgICB8IHRvX251bWVyaWMgfCB0 b19udW1lcmljX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0KKyAgIDExLjEyMzQgfCAgICAgIDExIHwgICAgICAxMSB8ICAgICAg ICB8ICAgICAgMTEgfCAgIDExLjEyMzQgfCAxMS4xMjMzOTk3MzQ0OTcxIHwgICAgMTEuMTIzNCB8 ICAgICAgICAgICAgIDExLjEKKyAgSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICB8ICAgICAgICAgfCAgSW5maW5pdHkgfCAgICAgICAgIEluZmluaXR5IHwgICBJbmZpbml0eSB8 ICAgICAgICAgICAgICAgICAKKyAtSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICB8ICAgICAgICAgfCAtSW5maW5pdHkgfCAgICAgICAgLUluZmluaXR5IHwgIC1JbmZpbml0eSB8 ICAgICAgICAgICAgICAgICAKKyAgICAgICBOYU4gfCAgICAgICAgIHwgICAgICAgICB8ICAgICAg ICB8ICAgICAgICAgfCAgICAgICBOYU4gfCAgICAgICAgICAgICAgTmFOIHwgICAgICAgIE5hTiB8 ICAgICAgICAgICAgICBOYU4KKyg0IHJvd3MpCisKK1NFTEVDVCBjb2wyIGFzIGZsb2F0OCwKKyAg ICAgICBDQVNUKGNvbDIgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDIgQVMgaW50NCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBDQVNUKGNvbDIgQVMgb2lkIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19vaWQsCisgICAgICAgQ0FTVChjb2wy IGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDgsCisg ICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDggREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAgICBDQVNUKGNvbDIgYXMg bnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywK KyAgICAgICBDQVNUKGNvbDIgYXMgbnVtZXJpYygxMCwxKSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKyAg ZmxvYXQ4ICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8IHRvX2ludDggfCB0b19mbG9h dDQgfCB0b19mbG9hdDggfCB0b19udW1lcmljIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyAgIDExLjEyMzQgfCAg ICAgIDExIHwgICAgICAxMSB8ICAgICAgICB8ICAgICAgMTEgfCAgIDExLjEyMzQgfCAgIDExLjEy MzQgfCAgICAxMS4xMjM0IHwgICAgICAgICAgICAgMTEuMQorICBJbmZpbml0eSB8ICAgICAgICAg fCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICBJbmZpbml0eSB8ICBJbmZpbml0eSB8ICAg SW5maW5pdHkgfCAgICAgICAgICAgICAgICAgCisgLUluZmluaXR5IHwgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgfCAgICAgICAgIHwgLUluZmluaXR5IHwgLUluZmluaXR5IHwgIC1JbmZpbml0 eSB8ICAgICAgICAgICAgICAgICAKKyAgICAgICBOYU4gfCAgICAgICAgIHwgICAgICAgICB8ICAg ICAgICB8ICAgICAgICAgfCAgICAgICBOYU4gfCAgICAgICBOYU4gfCAgICAgICAgTmFOIHwgICAg ICAgICAgICAgIE5hTgorKDQgcm93cykKKworLS0gZGF0ZS90aW1lc3RhbXAvaW50ZXJ2YWwgcmVs YXRlZCBzYWZlIHR5cGUgY2FzdAorQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QyKAorICBjb2ww IGRhdGUsIGNvbDEgdGltZXN0YW1wLCBjb2wyIHRpbWVzdGFtcHR6LAorICBjb2wzIGludGVydmFs LCBjb2w0IHRpbWUsIGNvbDUgdGltZXR6KTsKK0lOU0VSVCBJTlRPIHRlc3Rfc2FmZWNhc3QyIFZB TFVFUworKCctaW5maW5pdHknLCAnLWluZmluaXR5JywgJy1pbmZpbml0eScsICctaW5maW5pdHkn LAorICAnMjAwMy0wMy0wNyAxNTozNjozOSBBbWVyaWNhL05ld19Zb3JrJywgJzIwMDMtMDctMDcg MTU6MzY6MzkgQW1lcmljYS9OZXdfWW9yaycpLAorKCctaW5maW5pdHknLCAnaW5maW5pdHknLCAn aW5maW5pdHknLCAnaW5maW5pdHknLAorICAnMTE6NTk6NTkuOTkgUE0nLCAnMTE6NTk6NTkuOTkg UE0gUERUJyk7CitTRUxFQ1QgY29sMCBhcyBkYXRlLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1l c3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1w dHosCisgICAgICAgQ0FTVChjb2wwIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMCBBUyB0 aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAg ICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisgICBk YXRlICAgIHwgdG9fdGltZXN0YW1wdHogfCAgdG9fZGF0ZSAgfCB0b190aW1lcyB8IHRvX3RpbWV0 eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1p bmZpbml0eSB8IC1pbmZpbml0eSAgICAgIHwgLWluZmluaXR5IHwgICAgICAgICAgfCAgICAgICAg ICAgfCAtaW5maW5pdHkKKyAtaW5maW5pdHkgfCAtaW5maW5pdHkgICAgICB8IC1pbmZpbml0eSB8 ICAgICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29s MSBhcyB0aW1lc3RhbXAsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNU KGNvbDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0 ZSwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWV0eiBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMSBB UyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyB0aW1lc3RhbXAgfCB0b190aW1l c3RhbXB0eiB8ICB0b19kYXRlICB8IHRvX3RpbWVzIHwgdG9fdGltZXR6IHwgdG9fdGltZXN0YW1w X3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLWluZmluaXR5IHwgLWluZmlu aXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1pbmZpbml0eQor IGluZmluaXR5ICB8IGluZmluaXR5ICAgICAgIHwgaW5maW5pdHkgIHwgICAgICAgICAgfCAgICAg ICAgICAgfCBpbmZpbml0eQorKDIgcm93cykKKworU0VMRUNUIGNvbDIgYXMgdGltZXN0YW1wdHos CisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgZGF0ZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNU KGNvbDIgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXMsCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lc3RhbXAoMikg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQor RlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyB0aW1lc3RhbXB0eiB8IHRvX3RpbWVzdGFtcHR6IHwgIHRv X2RhdGUgIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0b190aW1lc3RhbXBfc2NhbGUgCistLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSAgIHwgLWluZmluaXR5ICAgICAg fCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAgICAgICB8IC1pbmZpbml0eQorIGluZmluaXR5 ICAgIHwgaW5maW5pdHkgICAgICAgfCBpbmZpbml0eSAgfCAgICAgICAgICB8ICAgICAgICAgICB8 IGluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29sMyBhcyBpbnRlcnZhbCwKKyAgICAgICBD QVNUKGNvbDMgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMyBBUyBkYXRlIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMyBBUyB0 aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAg ICBDQVNUKGNvbDMgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlLAorICAgICAgIENB U1QoY29sMyBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisgaW50ZXJ2YWwgIHwg dG9fdGltZXN0YW1wdHogfCB0b19kYXRlIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0b190aW1l c3RhbXBfc2NhbGUgfCB0b19pbnRlcnZhbF9zY2FsZSAKKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLQorIC1pbmZpbml0eSB8ICAgICAgICAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgIHwgLWluZmlu aXR5CisgaW5maW5pdHkgIHwgICAgICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgfCAg ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCBpbmZpbml0eQorKDIgcm93cykKKworU0VM RUNUIGNvbDQgYXMgdGltZSwKKyAgICAgICBDQVNUKGNvbDQgQVMgdGltZSgyKSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2w0IEFT IHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgSVMgTk9UIE5VTEwgYXMg dG9fdGltZXR6LAorICAgICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2w0IEFT IGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRl cnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyAgICB0aW1lICAgICB8ICB0b190aW1l cyAgIHwgdG9fdGltZXR6IHwgICAgICAgICAgdG9faW50ZXJ2YWwgICAgICAgICAgfCAgICAgICB0 b19pbnRlcnZhbF9zY2FsZSAgICAgICAKKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAxNTozNjozOSAgICB8IDE1OjM2OjM5ICAgIHwgdCAgICAgICAgIHwg QCAxNSBob3VycyAzNiBtaW5zIDM5IHNlY3MgICAgfCBAIDE1IGhvdXJzIDM2IG1pbnMgMzkgc2Vj cworIDIzOjU5OjU5Ljk5IHwgMjM6NTk6NTkuOTkgfCB0ICAgICAgICAgfCBAIDIzIGhvdXJzIDU5 IG1pbnMgNTkuOTkgc2VjcyB8IEAgMjMgaG91cnMgNTkgbWlucyA1OS45OSBzZWNzCisoMiByb3dz KQorCitTRUxFQ1QgY29sNSBhcyB0aW1ldHosCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWUgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWUsCisgICAgICAgQ0FTVChj b2w1IEFTIHRpbWUoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWVfc2NhbGUsCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAorICAgICAgIENBU1QoY29sNSBBUyB0aW1ldHoo NikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0el9zY2FsZSwK KyAgICAgICBDQVNUKGNvbDUgQVMgaW50ZXJ2YWwgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENBU1QoY29sNSBBUyBpbnRlcnZhbCgyKSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZS T00gdGVzdF9zYWZlY2FzdDI7CisgICAgIHRpbWV0eiAgICAgfCAgIHRvX3RpbWUgICB8IHRvX3Rp bWVfc2NhbGUgfCAgIHRvX3RpbWV0eiAgICB8IHRvX3RpbWV0el9zY2FsZSB8IHRvX2ludGVydmFs IHwgdG9faW50ZXJ2YWxfc2NhbGUgCistLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgMTU6MzY6MzktMDQgICAgfCAxNTozNjozOSAgICB8 IDE1OjM2OjM5ICAgICAgfCAxNTozNjozOS0wNCAgICB8IDE1OjM2OjM5LTA0ICAgICB8ICAgICAg ICAgICAgIHwgCisgMjM6NTk6NTkuOTktMDcgfCAyMzo1OTo1OS45OSB8IDIzOjU5OjU5Ljk5ICAg fCAyMzo1OTo1OS45OS0wNyB8IDIzOjU5OjU5Ljk5LTA3ICB8ICAgICAgICAgICAgIHwgCisoMiBy b3dzKQorCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDMoY29sMCBqc29uYik7CitJTlNFUlQg SU5UTyB0ZXN0X3NhZmVjYXN0Myhjb2wwKSBWQUxVRVMgKCcidGVzdCInKTsKK1NFTEVDVCBjb2ww IGFzIGpzb25iLAorICAgICAgIENBU1QoY29sMCBBUyBpbnRlZ2VyIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlZ2VyLAorICAgICAgIENBU1QoY29sMCBBUyBudW1l cmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAg ICAgIENBU1QoY29sMCBBUyBiaWdpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wwIEFTIGZsb2F0NCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMCBBUyBmbG9h dDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwKKyAgICAg ICBDQVNUKGNvbDAgQVMgYm9vbGVhbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikg YXMgdG9fYm9vbCwKKyAgICAgICBDQVNUKGNvbDAgQVMgc21hbGxpbnQgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3NtYWxsaW50CitGUk9NIHRlc3Rfc2FmZWNhc3QzOwor IGpzb25iICB8IHRvX2ludGVnZXIgfCB0b19udW1lcmljIHwgdG9faW50OCB8IHRvX2Zsb2F0NCB8 IHRvX2Zsb2F0OCB8IHRvX2Jvb2wgfCB0b19zbWFsbGludCAKKy0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tCisgInRlc3QiIHwgICAgICAgICAgICB8ICAgICAgICAgICAgfCAgICAg ICAgIHwgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgCisoMSBy b3cpCisKKy0tIHRlc3QgZGVwYXJzZQorQ1JFQVRFIERPTUFJTiBkX2ludF9hcnIgYXMgaW50W107 CitDUkVBVEUgVklFVyBzYWZlY2FzdHZpZXcgQVMKK1NFTEVDVCBDQVNUKCcxMjM0JyBhcyBjaGFy KDMpIERFRkFVTFQgLTExMTEgT04gQ09OVkVSU0lPTiBFUlJPUiksCisgICAgICAgQ0FTVCgxIGFz IGRhdGUgREVGQVVMVCAoKG5vdygpOjpkYXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjppbnQp KSkgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdGVzdF9zYWZlY2FzdDEsCisgICAgICAgQ0FTVChB UlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDEsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnLCAnMidd LCBbJ3RocmVlJywgJ2EnXV0gQVMgZGF0ZVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyBjYXN0MiwKKyAgICAgICBDQVNUKEFSUkFZWyd0aHJlZSddIEFTIElOVFtdIERFRkFV TFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MzsKK1xzdiBzYWZlY2FzdHZp ZXcKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnNhZmVjYXN0dmlldyBBUworIFNFTEVD VCBDQVNUKCcxMjM0JyBBUyBjaGFyYWN0ZXIoMykgREVGQVVMVCAnLTExMTEnOjppbnRlZ2VyOjpj aGFyYWN0ZXIoMykgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgYnBjaGFyLAorICAgIENBU1QoMSBB UyBkYXRlIERFRkFVTFQgbm93KCk6OmRhdGUgKyByYW5kb20obWluID0+IDEsIG1heCA9PiAxKSBP TiBDT05WRVJTSU9OIEVSUk9SKSBBUyB0ZXN0X3NhZmVjYXN0MSwKKyAgICBDQVNUKEFSUkFZW0FS UkFZWzFdLCBBUlJBWVsndGhyZWUnXSwgQVJSQVlbJ2EnXV0gQVMgaW50ZWdlcltdIERFRkFVTFQg J3sxLDJ9Jzo6aW50ZWdlcltdIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QxLAorICAgIENB U1QoQVJSQVlbQVJSQVlbJzEnLCAnMiddLCBBUlJBWVsndGhyZWUnLCAnYSddXSBBUyBkYXRlW10g REVGQVVMVCBOVUxMOjpkYXRlW10gT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDIsCisgICAg Q0FTVChBUlJBWVsndGhyZWUnXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAnezEsMn0nOjppbnRlZ2Vy W10gT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDMKK0NSRUFURSBWSUVXIHNhZmVjYXN0dmll dzEgQVMKK1NFTEVDVCBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydhJ11dIEFTIGRfaW50 X2FyciBERUZBVUxUICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDEsCisgICAg ICAgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgZF9pbnRfYXJyIERF RkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QyOworXHN2IHNhZmVj YXN0dmlldzEKK0NSRUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnNhZmVjYXN0dmlldzEgQVMK KyBTRUxFQ1QgQ0FTVChBUlJBWVtBUlJBWVsxXSwgQVJSQVlbJ3RocmVlJ10sIEFSUkFZWydhJ11d IEFTIGRfaW50X2FyciBERUZBVUxUICd7MSwyfSc6OmludGVnZXJbXTo6ZF9pbnRfYXJyIE9OIENP TlZFUlNJT04gRVJST1IpIEFTIGNhc3QxLAorICAgIENBU1QoQVJSQVlbQVJSQVlbMSwgMl0sIEFS UkFZWyd0aHJlZScsICdhJ11dIEFTIGRfaW50X2FyciBERUZBVUxUICd7MjEsMjJ9Jzo6aW50ZWdl cltdOjpkX2ludF9hcnIgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDIKK1NFTEVDVCAqIEZS T00gc2FmZWNhc3R2aWV3MTsKKyBjYXN0MSB8ICBjYXN0MiAgCistLS0tLS0tKy0tLS0tLS0tLQor IHsxLDJ9IHwgezIxLDIyfQorKDEgcm93KQorCistLWVycm9yLCBkZWZhdWx0IGV4cHJlc3Npb24g aXMgbXV0YWJsZQorQ1JFQVRFIElOREVYIGNhc3RfZXJyb3JfaWR4IE9OIHRlc3Rfc2FmZWNhc3Qz KChDQVNUKGNvbDAgYXMgaW50IERFRkFVTFQgcmFuZG9tKG1pbj0+MSwgbWF4PT4xKSBPTiBDT05W RVJTSU9OIEVSUk9SKSkpOworRVJST1I6ICBmdW5jdGlvbnMgaW4gaW5kZXggZXhwcmVzc2lvbiBt dXN0IGJlIG1hcmtlZCBJTU1VVEFCTEUKK0NSRUFURSBJTkRFWCBjYXN0X2Vycm9yX2lkeCBPTiB0 ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIHhpZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikpKTsKK0VSUk9SOiAgZGF0YSB0eXBlIHhpZCBoYXMgbm8gZGVmYXVsdCBvcGVyYXRv ciBjbGFzcyBmb3IgYWNjZXNzIG1ldGhvZCAiYnRyZWUiCitISU5UOiAgWW91IG11c3Qgc3BlY2lm eSBhbiBvcGVyYXRvciBjbGFzcyBmb3IgdGhlIGluZGV4IG9yIGRlZmluZSBhIGRlZmF1bHQgb3Bl cmF0b3IgY2xhc3MgZm9yIHRoZSBkYXRhIHR5cGUuCitDUkVBVEUgSU5ERVggdGVzdF9zYWZlY2Fz dDNfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgaW50IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSkpOyAtLW9rCitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVmKCd0ZXN0 X3NhZmVjYXN0M19pZHgnOjpyZWdjbGFzcyk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2luZGV4ZGVmICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIENSRUFURSBJTkRFWCB0ZXN0X3NhZmVjYXN0M19pZHgg T04gcHVibGljLnRlc3Rfc2FmZWNhc3QzIFVTSU5HIGJ0cmVlICgoQ0FTVChjb2wwIEFTIGludGVn ZXIgREVGQVVMVCBOVUxMOjppbnRlZ2VyIE9OIENPTlZFUlNJT04gRVJST1IpKSkKKygxIHJvdykK KworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0OworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MTsK K0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDI7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QzOwor RFJPUCBUQUJMRSB0Y2FzdDsKK0RST1AgRlVOQ1RJT04gcmV0X2ludDg7CitEUk9QIEZVTkNUSU9O IHJldF9zZXRpbnQ7CitEUk9QIFRZUEUgY29tcF9kb21haW5fd2l0aF90eXBtb2Q7CitEUk9QIFRZ UEUgY29tcDI7CitEUk9QIERPTUFJTiBkX3ZhcmNoYXI7CitEUk9QIERPTUFJTiBkX2ludDQyOwor RFJPUCBET01BSU4gZF9jaGFyM19ub3RfbnVsbDsKK1JFU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0czsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5vdXQKaW5kZXggMGU2OTY0NGJj YTIuLmY0MDM1YzMzOGFhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Ny ZWF0ZV9jYXN0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0 Lm91dApAQCAtODgsNiArODgsMTEgQEAgU0VMRUNUIDEyMzQ6OmludDQ6OmNhc3R0ZXN0dHlwZTsg LS0gU2hvdWxkIHdvcmsgbm93CiAgYmFyMTIzNAogKDEgcm93KQogCitTRUxFQ1QgQ0FTVCgxMjM0 OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 IC0tIGVycm9yCitFUlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgaW50ZWdlciB0byBjYXN0dGVzdHR5 cGUgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENP TlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVz dHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZFLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJ TlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGRlY2xh cmVkIGFzIHNhZmUKIC0tIGNoZWNrIGRlcGVuZGVuY2llcyBnZW5lcmF0ZWQgZm9yIHRoYXQKIFNF TEVDVCBwZ19kZXNjcmliZV9vYmplY3QoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKSBhcyBvYmos CiAgICAgICAgcGdfZGVzY3JpYmVfb2JqZWN0KHJlZmNsYXNzaWQsIHJlZm9iamlkLCByZWZvYmpz dWJpZCkgYXMgb2JqcmVmLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9v cHJfc2FuaXR5Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQK aW5kZXggYTM1N2UxZDBjMGUuLjgxZWEyNDQ4NTlmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvb3ByX3Nhbml0eS5vdXQKQEAgLTk0Myw4ICs5NDMsOCBAQCBTRUxFQ1QgKgogRlJPTSBwZ19j YXN0IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSAwIE9SIGNhc3R0YXJnZXQgPSAwIE9SIGNhc3Rjb250 ZXh0IE5PVCBJTiAoJ2UnLCAnYScsICdpJykKICAgICBPUiBjYXN0bWV0aG9kIE5PVCBJTiAoJ2Yn LCAnYicgLCdpJyk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8 IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3Vy Y2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBj YXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAog LS0gQ2hlY2sgdGhhdCBjYXN0ZnVuYyBpcyBub256ZXJvIG9ubHkgZm9yIGNhc3QgbWV0aG9kcyB0 aGF0IG5lZWQgYSBmdW5jdGlvbiwKQEAgLTk1Myw4ICs5NTMsOCBAQCBTRUxFQ1QgKgogRlJPTSBw Z19jYXN0IGMKIFdIRVJFIChjYXN0bWV0aG9kID0gJ2YnIEFORCBjYXN0ZnVuYyA9IDApCiAgICBP UiAoY2FzdG1ldGhvZCBJTiAoJ2InLCAnaScpIEFORCBjYXN0ZnVuYyA8PiAwKTsKLSBvaWQgfCBj YXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0 aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0 ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNhZmUgCistLS0tLSst LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBMb29rIGZvciBjYXN0cyB0by9m cm9tIHRoZSBzYW1lIHR5cGUgdGhhdCBhcmVuJ3QgbGVuZ3RoIGNvZXJjaW9uIGZ1bmN0aW9ucy4K QEAgLTk2MywxNSArOTYzLDE1IEBAIFdIRVJFIChjYXN0bWV0aG9kID0gJ2YnIEFORCBjYXN0ZnVu YyA9IDApCiBTRUxFQ1QgKgogRlJPTSBwZ19jYXN0IGMKIFdIRVJFIGNhc3Rzb3VyY2UgPSBjYXN0 dGFyZ2V0IEFORCBjYXN0ZnVuYyA9IDA7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQg fCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9p ZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNh c3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQog KDAgcm93cykKIAogU0VMRUNUIGMuKgogRlJPTSBwZ19jYXN0IGMsIHBnX3Byb2MgcAogV0hFUkUg Yy5jYXN0ZnVuYyA9IHAub2lkIEFORCBwLnByb25hcmdzIDwgMiBBTkQgY2FzdHNvdXJjZSA9IGNh c3R0YXJnZXQ7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNh c3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2Ug fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0 ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0g TG9vayBmb3IgY2FzdCBmdW5jdGlvbnMgdGhhdCBkb24ndCBoYXZlIHRoZSByaWdodCBzaWduYXR1 cmUuICBUaGUKQEAgLTk4OSw4ICs5ODksOCBAQCBXSEVSRSBjLmNhc3RmdW5jID0gcC5vaWQgQU5E CiAgICAgICAgICAgICAgT1IgKGMuY2FzdHNvdXJjZSA9ICdjaGFyYWN0ZXInOjpyZWd0eXBlIEFO RAogICAgICAgICAgICAgICAgICBwLnByb2FyZ3R5cGVzWzBdID0gJ3RleHQnOjpyZWd0eXBlKSkK ICAgICAgT1IgTk9UIGJpbmFyeV9jb2VyY2libGUocC5wcm9yZXR0eXBlLCBjLmNhc3R0YXJnZXQp KTsKLSBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRl eHQgfCBjYXN0bWV0aG9kIAotLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tCisgb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0 YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8IGNhc3RlcnJvcnNh ZmUgCistLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiBTRUxFQ1QgYy4q CkBAIC05OTgsOCArOTk4LDggQEAgRlJPTSBwZ19jYXN0IGMsIHBnX3Byb2MgcAogV0hFUkUgYy5j YXN0ZnVuYyA9IHAub2lkIEFORAogICAgICgocC5wcm9uYXJncyA+IDEgQU5EIHAucHJvYXJndHlw ZXNbMV0gIT0gJ2ludDQnOjpyZWd0eXBlKSBPUgogICAgICAocC5wcm9uYXJncyA+IDIgQU5EIHAu cHJvYXJndHlwZXNbMl0gIT0gJ2Jvb2wnOjpyZWd0eXBlKSk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8 IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0 Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gTG9vayBmb3IgYmluYXJ5IGNvbXBhdGlibGUgY2Fz dHMgdGhhdCBkbyBub3QgaGF2ZSB0aGUgcmV2ZXJzZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1 bGUKaW5kZXggZjU2NDgyZmI5ZjEuLjJlMDg2Y2JjN2FmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxf c2NoZWR1bGUKQEAgLTgxLDcgKzgxLDcgQEAgdGVzdDogY3JlYXRlX3RhYmxlX2xpa2UgYWx0ZXJf Z2VuZXJpYyBhbHRlcl9vcGVyYXRvciBtaXNjIGFzeW5jIGRic2l6ZSBtZXJnZSBtaXMKICMgY29s bGF0ZS5saW51eC51dGY4IGFuZCBjb2xsYXRlLmljdS51dGY4IHRlc3RzIGNhbm5vdCBiZSBydW4g aW4gcGFyYWxsZWwgd2l0aCBlYWNoIG90aGVyCiAjIHBzcWwgZGVwZW5kcyBvbiBjcmVhdGVfYW0K ICMgYW11dGlscyBkZXBlbmRzIG9uIGdlb21ldHJ5LCBjcmVhdGVfaW5kZXhfc3BnaXN0LCBoYXNo X2luZGV4LCBicmluCi10ZXN0OiBydWxlcyBwc3FsIHBzcWxfY3Jvc3N0YWIgcHNxbF9waXBlbGlu ZSBhbXV0aWxzIHN0YXRzX2V4dCBjb2xsYXRlLmxpbnV4LnV0ZjggY29sbGF0ZS53aW5kb3dzLndp bjEyNTIKK3Rlc3Q6IHJ1bGVzIHBzcWwgcHNxbF9jcm9zc3RhYiBwc3FsX3BpcGVsaW5lIGFtdXRp bHMgc3RhdHNfZXh0IGNvbGxhdGUubGludXgudXRmOCBjb2xsYXRlLndpbmRvd3Mud2luMTI1MiBj YXN0CiAKICMgLS0tLS0tLS0tLQogIyBSdW4gdGhlc2UgYWxvbmUgc28gdGhleSBkb24ndCBydW4g b3V0IG9mIHBhcmFsbGVsIHdvcmtlcnMKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L2Nhc3Quc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkwNWQxZjMxOGI1Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwKQEAgLTAsMCArMSwzNDAgQEAKK1NFVCBleHRy YV9mbG9hdF9kaWdpdHMgPSAwOworCistLSBDQVNUIERFRkFVTFQgT04gQ09OVkVSU0lPTiBFUlJP UgorVkFMVUVTIChDQVNUKCdlcnJvcicgQVMgaW50ZWdlciBFUlJPUiBPTiBDT05WRVJTSU9OIEVS Uk9SKSk7IC0tZXJyb3IKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSk7CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIERFRkFV TFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUikpOworU0VMRUNUIENBU1QoQicwMScgQVMgZGF0ZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChCSVQnMDEnIEFT IGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoVFJV RSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNU KDEuMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVCgxOjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKDExMTEgQVMgImNoYXIiIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKworLS10aGUgZGVmYXVsdCBleHByZXNzaW9u4oCZcyBjb2xsYXRpb24gc2hvdWxk IG1hdGNoIHRoZSBjb2xsYXRpb24gb2YgdGhlIGNhc3QKKy0tdGFyZ2V0IHR5cGUKK1ZBTFVFUyAo Q0FTVCgnZXJyb3InIEFTIHRleHQgREVGQVVMVCAnMScgQ09MTEFURSAiQyIgT04gQ09OVkVSU0lP TiBFUlJPUikpOworCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVjdG9yIERFRkFVTFQg JzEgMycgIE9OIENPTlZFUlNJT04gRVJST1IpKTsKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGlu dDJ2ZWN0b3JbXSBERUZBVUxUICd7MSAzfScgIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKworLS0g dGVzdCBzb3VyY2UgZXhwcmVzc2lvbiBjb250YWluIHN1YnF1ZXJ5CitTRUxFQ1QgQ0FTVCgoU0VM RUNUIGIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSksIChWQUxVRVMoJ0gnKSkgcyhiKSkKKyAg ICAgICAgICAgIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7MSAzfScgIE9OIENPTlZFUlNJT04g RVJST1IpOworU0VMRUNUIENBU1QoKFNFTEVDVCBBUlJBWSgoU0VMRUNUIGIgRlJPTSBnZW5lcmF0 ZV9zZXJpZXMoMSwgMikgZywgKFZBTFVFUygnSCcpKSBzKGIpKSkpCisgICAgICAgICAgICBBUyBJ TlRbXQorICAgICAgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCitD UkVBVEUgRlVOQ1RJT04gcmV0X2ludDgoKSBSRVRVUk5TIEJJR0lOVCBBUworJCQKK0JFR0lOIFJF VFVSTiAyMTQ3NDgzNjQ4OyBFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJTU1VVEFCTEU7CisK K1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZFUlNJT04g RVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYScgYXMgZGF0ZSBERUZBVUxUIHJldF9pbnQ4 KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKKworLS0gdGVzdCBhcnJheSBjb2VyY2UK K1NFTEVDVCBDQVNUKGFycmF5WydhJzo6dGV4dF0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVChhcnJheVsnYSddIEFTIGludFtd IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vaworU0VMRUNUIENBU1QoYXJy YXlbMTEuMTJdIEFTIGRhdGVbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitT RUxFQ1QgQ0FTVChhcnJheVsxMTExMTExMTExMTExMTExMV0gQVMgaW50W10gREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoYXJyYXlbWydhYmMnXSxbNDU2XV0g QVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1Qo J3sxMjMsYWJjLDQ1Nn0nIEFTIGludFtdIERFRkFVTFQgJ3stNzg5fScgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVCgnezIzNCxkZWYsNTY3fSc6OnRleHRbXSBBUyBpbnRlZ2VyW10g REVGQVVMVCAney0xMDExfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChBUlJB WVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3RocmVlJywg J2EnXV0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0t b2sKK1NFTEVDVCBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUnOjppbnQsICdhJ11dIEFT IGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitT RUxFQ1QgQ0FTVChBUlJBWVsxLCAndGhyZWUnOjppbnRdIEFTIGludFtdIERFRkFVTFQgJ3syMSwy Mn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKKy0tIHRlc3QgdmFsaWQgREVGQVVM VCBleHByZXNzaW9uIGZvciBDQVNUID0gT04gQ09OVkVSU0lPTiBFUlJPUgorQ1JFQVRFIEZVTkNU SU9OIHJldF9zZXRpbnQoKSBSRVRVUk5TIFNFVE9GIGludGVnZXIgQVMKKyQkCitCRUdJTiBSRVRV Uk4gUVVFUlkgRVhFQ1VURSAnc2VsZWN0IDEgdW5pb24gYWxsIHNlbGVjdCAxJzsgRU5EOworJCQK K0xBTkdVQUdFIHBscGdzcWwgSU1NVVRBQkxFOworCitDUkVBVEUgVEFCTEUgdGNhc3QoYSB0ZXh0 W10sIGIgaW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIElERU5USVRZLCBjIHRleHQgZGVmYXVs dCAnMScpOworSU5TRVJUIElOVE8gdGNhc3QgVkFMVUVTICgnezEyfScpLCAoJ3sxLGEsIGJ9Jyks ICgne3sxLDJ9LCB7YyxkfX0nKSwgKCd7MTN9Jyk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERF RkFVTFQgcmV0X3NldGludCgpIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3Q7IC0tZXJy b3IKK1NFTEVDVCBDQVNUKGM6OmRhdGU6Ompzb24gYXMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdDsgLS1lcnJvcgorU0VMRUNUIENBU1QoJ2EnOjppbnQg YXMgaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNU IENBU1QoJ2EnIGFzIGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tb2sK K1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgT04gQ09OVkVSU0lPTiBFUlJP Uik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3Zlcigp IE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERF RkFVTFQgKFNFTEVDVCBOVUxMKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNU IENBU1QoJ2EnIGFzIGludCBERUZBVUxUICdiJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJv cgorCitTRUxFQ1QgQ0FTVCh0IEFTIHRleHRbXSBERUZBVUxUICd7MjEsMjIsICcgfHwgYiB8fCAn fScgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJPTSB0Y2FzdCBhcyB0OworU0VMRUNUIENBU1QodC5h IEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0nOjppbnRbXSB8fCBiIE9OIENPTlZFUlNJT04gRVJS T1IpIEZST00gdGNhc3QgYXMgdDsKKworLS0gdGVzdCB3aXRoIGRvbWFpbgorQ1JFQVRFIERPTUFJ TiBkX2ludDQyIGFzIGludCBjaGVjayAodmFsdWUgPSA0MikgTk9UIE5VTEw7CitDUkVBVEUgRE9N QUlOIGRfY2hhcjNfbm90X251bGwgYXMgY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4g ZF92YXJjaGFyIGFzIHZhcmNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgVFlQRSBjb21wX2RvbWFp bl93aXRoX3R5cG1vZCBBUyAoYSBkX2NoYXIzX25vdF9udWxsLCBiIGludCk7CitDUkVBVEUgVFlQ RSBjb21wMiBBUyAoYSBkX3ZhcmNoYXIpOworU0VMRUNUIENBU1QoJyhOVUxMKScgQVMgY29tcDIg REVGQVVMVCAnKDEyMzIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENB U1QoJyhOVUxMKScgQVMgY29tcDIgREVGQVVMVCAnKDEyMyknIE9OIENPTlZFUlNJT04gRVJST1Ip OyAtLW9rCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDEgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIgREVGQVVMVCA0MiBP TiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vaworU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoTlVM TCBBUyBkX2ludDQyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tb2sKK1NFTEVD VCBDQVNUKCcoLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21h aW5fd2l0aF90eXBtb2QgREVGQVVMVCAnKDEsMiknIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VM RUNUIENBU1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCAn KDEyMzQsMiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKKy0tLS0tc2FmZSBjYXN0 IHdpdGggZ2VvbWV0cnkgZGF0YSB0eXBlCitTRUxFQ1QgQ0FTVCgnKDEsMiknOjpwb2ludCBBUyBi b3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1soTmFO LDEpLChOYU4saW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1soMWUrMzAwLEluZmluaXR5KSwoMWUrMzAwLElu ZmluaXR5KV0nOjpsc2VnIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKCdbKDEsMiksKDMsNCldJzo6cGF0aCBhcyBwb2x5Z29uIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoTmFOLDEuMCxOYU4saW5m aW5pdHkpJzo6Ym94IEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsK K1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBsc2VnIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6 OmJveCBBUyBwb2x5Z29uIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6OmJveCBBUyBwYXRoIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLGluZmluaXR5LE5hTixpbmZpbml0 eSknOjpib3ggQVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NF TEVDVCBDQVNUKCcoTmFOLDAuMCksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdvbiBB UyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgn KDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIHBhdGggREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMC4wKSwoMi4wLDQu MCksKDAuMCwwLjApJzo6cG9seWdvbiBBUyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworU0VMRUNUIENBU1QoJyhOYU4saW5maW5pdHkpLCgyLjAsNC4wKSwoMC4wLGluZmlu aXR5KSc6OnBvbHlnb24gQVMgY2lyY2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKCc8KDUsMSksMz4nOjpjaXJjbGUgQVMgcG9pbnQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzwoMyw1KSwwPic6OmNpcmNsZSBh cyBib3ggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworLS0gbm90IHN1cHBvcnRl ZCBiZWNhdXNlIHRoZSBjYXN0IGZyb20gY2lyY2xlIHRvIHBvbHlnb24gaXMgaW1wbGVtZW50ZWQg YXMgYSBTUUwKKy0tIGZ1bmN0aW9uLCB3aGljaCBjYW5ub3QgYmUgZXJyb3Itc2FmZS4KK1NFTEVD VCBDQVNUKCc8KDMsNSksMD4nOjpjaXJjbGUgYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CisKKy0tLS0tc2FmZSBjYXN0IGZyb20vdG8gbW9uZXkgdHlwZSBpcyBu b3Qgc3VwcG9ydGVkLCBhbGwgdGhlIGZvbGxvd2luZyB3b3VsZCByZXN1bHQgZXJyb3IKK1NFTEVD VCBDQVNUKE5VTEw6OmludDggQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpOworU0VMRUNUIENBU1QoTlVMTDo6aW50NCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChOVUxMOjpudW1lcmljIEFTIG1vbmV5IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKE5VTEw6Om1vbmV5IEFT IG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLS0tLXNhZmUg Y2FzdCBmcm9tIGJ5dGVhIHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1QgKCdc eDExMjIzMzQ0NTU2Njc3ODg5OSc6OmJ5dGVhIEFTIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1x4MTIzNDU2Nzg5QSc6OmJ5dGVhIEFTIGludDQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1x4MTIzNDU2 Jzo6Ynl0ZWEgQVMgaW50MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisKKy0t LS0tc2FmZSBjYXN0IGZyb20gYml0IHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENB U1QoJzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDApIEFTIElOVCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCAoJzExMTExMTExMTEwMDAwMSc6OmJpdCgxMDAp IEFTIElOVDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLS0tLXNhZmUg Y2FzdCBmcm9tIHRleHQgdHlwZSB0byBvdGhlciBkYXRhIHR5cGVzCitzZWxlY3QgQ0FTVCgnYS5i LmMuZCc6OnRleHQgYXMgcmVnY2xhc3MgZGVmYXVsdCBOVUxMIG9uIGNvbnZlcnNpb24gZXJyb3Ip OworCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdChjb2wwIHRleHQpOworSU5TRVJUIElOVE8g dGVzdF9zYWZlY2FzdChjb2wwKSBWQUxVRVMgKCc8dmFsdWU+b25lPC92YWx1ZScpOworCitTRUxF Q1QgY29sMCBhcyB0ZXh0LAorICAgICAgIENBU1QoY29sMCBBUyByZWdjbGFzcyBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fcmVnY2xhc3MsCisgICAgICAgQ0FTVChjb2ww IEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBJUyBOVUxMIGFz IGV4cGVjdF90cnVlLAorICAgICAgIENBU1QoY29sMCBBUyAiY2hhciIgIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19jaGFyLAorICAgICAgIENBU1QoY29sMCBBUyBuYW1l IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19uYW1lLAorICAgICAgIENB U1QoY29sMCBBUyB4bWwgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3ht bAorRlJPTSB0ZXN0X3NhZmVjYXN0OworCitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLngnIGFzIGlu ZXQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzE5Mi4x NjguMS4yLzMwJyBhcyBjaWRyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NF TEVDVCBDQVNUKCcyMjowMDo1YzowODo1NTowODowMTowMic6Om1hY2FkZHI4IGFzIG1hY2FkZHIg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLS0tLXNhZmUgY2FzdCBiZXR3 ZWVlbiByYW5nZSBkYXRhIHR5cGVzCitTRUxFQ1QgQ0FTVCgnWzEsMl0nOjppbnQ0cmFuZ2UgQVMg aW50NG11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNU IENBU1QoJ1sxLDJdJzo6aW50OHJhbmdlIEFTIGludDhtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbMSwyXSc6Om51bXJhbmdlICBBUyBu dW1tdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6OmRhdGVyYW5nZSBBUyBkYXRlbXVsdGlyYW5nZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0 eSxpbmZpbml0eV0nOjp0c3JhbmdlIEFTIHRzbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjp0c3R6 cmFuZ2UgQVMgdHN0em11bHRpcmFuZ2UgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworCistLS0tLXNhZmUgY2FzdCBiZXR3ZWVlbiBudW1lcmljIGRhdGEgdHlwZXMKK0NSRUFURSBU QUJMRSB0ZXN0X3NhZmVjYXN0MSgKKyAgY29sMSBmbG9hdDQsIGNvbDIgZmxvYXQ4LCBjb2wzIG51 bWVyaWMsIGNvbDQgbnVtZXJpY1tdLAorICBjb2w1IGludDIgZGVmYXVsdCAzMjc2NywKKyAgY29s NiBpbnQ0IGRlZmF1bHQgMzI3NjgsCisgIGNvbDcgaW50OCBkZWZhdWx0IDQyOTQ5NjcyOTYpOwor SU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCcxMS4xMjM0JywgJzExLjEyMzQnLCAn OTIyMzM3MjAzNjg1NDc3NTgwOCcsICd7MTEuMTIzNH0nOjpudW1lcmljW10pOworSU5TRVJUIElO VE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCdpbmYnLCAnaW5mJywgJ2luZicsICd7MTEuMTIzNCwg MTIsIGluZiwgTmFOfSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBW QUxVRVMoJy1pbmYnLCAnLWluZicsICctaW5mJywgJ3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6 Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJ05hTicsICdO YU4nLCAnTmFOJywgJ3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVyaWNbXSk7CisKK1NF TEVDVCBjb2w1IGFzIGludDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGludDIgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGlu dDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAg Q0FTVChjb2w1IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f b2lkLAorICAgICAgIENBU1QoY29sNSBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNSBhcyBmbG9hdDQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDUg YXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgs CisgICAgICAgQ0FTVChjb2w1IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w1IGFzIG51bWVyaWMoMTAsMSkg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZS T00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2w2IGFzIGludDQsCisgICAgICAgQ0FTVChj b2w2IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIs CisgICAgICAgQ0FTVChjb2w2IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w2IEFTIG9pZCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNiBhcyBpbnQ4IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1Qo Y29sNiBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zs b2F0NCwKKyAgICAgICBDQVNUKGNvbDYgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w2IGFzIG51bWVyaWMgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FT VChjb2w2IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2w3 IGFzIGludDgsCisgICAgICAgQ0FTVChjb2w3IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w3IEFTIGludDQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w3 IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAg ICAgIENBU1QoY29sNyBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNyBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDcgYXMgZmxvYXQ4 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAg Q0FTVChjb2w3IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9z YWZlY2FzdDE7CisKK1NFTEVDVCBjb2wzIGFzIG51bWVyaWMsCisgICAgICAgQ0FTVChjb2wzIEFT IGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAg ICAgQ0FTVChjb2wzIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wzIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMyBhcyBpbnQ4IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMyBh cyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwK KyAgICAgICBDQVNUKGNvbDMgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wzIGFzIG51bWVyaWMgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wz IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2w0IGFzIG51 bV9hcnIsCisgICAgICAgQ0FTVChjb2w0IEFTIGludDJbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgaW50MmFyciwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50NFtdIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBpbnQ0YXJyLAorICAgICAgIENBU1QoY29s NCBhcyBpbnQ4W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGludDhhcnIs CisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0NFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyBmNGFyciwKKyAgICAgICBDQVNUKGNvbDQgYXMgZmxvYXQ4W10gREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGY4YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBu dW1lcmljKDEwLDEpW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIG51bWFy cgorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKworU0VMRUNUIGNvbDEgYXMgZmxvYXQ0LAorICAgICAg IENBU1QoY29sMSBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnQyLAorICAgICAgIENBU1QoY29sMSBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMSBBUyBvaWQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDEgYXMg aW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAg ICBDQVNUKGNvbDEgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wxIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMSBhcyBudW1l cmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAg ICAgIENBU1QoY29sMSBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworCitTRUxF Q1QgY29sMiBhcyBmbG9hdDgsCisgICAgICAgQ0FTVChjb2wyIEFTIGludDIgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2wyIEFTIGlu dDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAg Q0FTVChjb2wyIEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f b2lkLAorICAgICAgIENBU1QoY29sMiBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMiBhcyBmbG9hdDQgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDIg YXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgs CisgICAgICAgQ0FTVChjb2wyIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wyIGFzIG51bWVyaWMoMTAsMSkg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZS T00gdGVzdF9zYWZlY2FzdDE7CisKKy0tIGRhdGUvdGltZXN0YW1wL2ludGVydmFsIHJlbGF0ZWQg c2FmZSB0eXBlIGNhc3QKK0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0MigKKyAgY29sMCBkYXRl LCBjb2wxIHRpbWVzdGFtcCwgY29sMiB0aW1lc3RhbXB0eiwKKyAgY29sMyBpbnRlcnZhbCwgY29s NCB0aW1lLCBjb2w1IHRpbWV0eik7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MiBWQUxVRVMK KygnLWluZmluaXR5JywgJy1pbmZpbml0eScsICctaW5maW5pdHknLCAnLWluZmluaXR5JywKKyAg JzIwMDMtMDMtMDcgMTU6MzY6MzkgQW1lcmljYS9OZXdfWW9yaycsICcyMDAzLTA3LTA3IDE1OjM2 OjM5IEFtZXJpY2EvTmV3X1lvcmsnKSwKKygnLWluZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmlu aXR5JywgJ2luZmluaXR5JywKKyAgJzExOjU5OjU5Ljk5IFBNJywgJzExOjU5OjU5Ljk5IFBNIFBE VCcpOworCitTRUxFQ1QgY29sMCBhcyBkYXRlLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lc3Rh bXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHos CisgICAgICAgQ0FTVChjb2wwIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1l dHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAg ICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVD VCBjb2wxIGFzIHRpbWVzdGFtcCwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wdHogREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAg IENBU1QoY29sMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19kYXRlLAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXR6IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChj b2wxIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sMiBh cyB0aW1lc3RhbXB0eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXN0YW1wdHogREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1Qo Y29sMiBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRl LAorICAgICAgIENBU1QoY29sMiBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXR6IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wyIEFT IHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sMyBhcyBpbnRl cnZhbCwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMyBBUyBk YXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAg IENBU1QoY29sMyBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1lcywKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFt cCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3Nj YWxlLAorICAgICAgIENBU1QoY29sMyBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7 CisKK1NFTEVDVCBjb2w0IGFzIHRpbWUsCisgICAgICAgQ0FTVChjb2w0IEFTIHRpbWUoMikgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1Qo Y29sNCBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5PVCBO VUxMIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDQgQVMgaW50ZXJ2YWwoMikgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVydmFsLAorICAgICAgIENBU1Qo Y29sNCBBUyBpbnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2w1IGFz IHRpbWV0eiwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fdGltZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSgyKSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZV9zY2FsZSwKKyAgICAgICBD QVNUKGNvbDUgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1ldHosCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWV0eig2KSBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6X3NjYWxlLAorICAgICAgIENBU1QoY29sNSBB UyBpbnRlcnZhbCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2 YWwsCisgICAgICAgQ0FTVChjb2w1IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsK KworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNhc3QzKGNvbDAganNvbmIpOworSU5TRVJUIElOVE8g dGVzdF9zYWZlY2FzdDMoY29sMCkgVkFMVUVTICgnInRlc3QiJyk7CitTRUxFQ1QgY29sMCBhcyBq c29uYiwKKyAgICAgICBDQVNUKGNvbDAgQVMgaW50ZWdlciBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9faW50ZWdlciwKKyAgICAgICBDQVNUKGNvbDAgQVMgbnVtZXJpYyBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBD QVNUKGNvbDAgQVMgYmlnaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b19pbnQ4LAorICAgICAgIENBU1QoY29sMCBBUyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ4IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FT VChjb2wwIEFTIGJvb2xlYW4gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2Jvb2wsCisgICAgICAgQ0FTVChjb2wwIEFTIHNtYWxsaW50IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19zbWFsbGludAorRlJPTSB0ZXN0X3NhZmVjYXN0MzsKKworLS0g dGVzdCBkZXBhcnNlCitDUkVBVEUgRE9NQUlOIGRfaW50X2FyciBhcyBpbnRbXTsKK0NSRUFURSBW SUVXIHNhZmVjYXN0dmlldyBBUworU0VMRUNUIENBU1QoJzEyMzQnIGFzIGNoYXIoMykgREVGQVVM VCAtMTExMSBPTiBDT05WRVJTSU9OIEVSUk9SKSwKKyAgICAgICBDQVNUKDEgYXMgZGF0ZSBERUZB VUxUICgobm93KCk6OmRhdGUgKyByYW5kb20obWluPT4xLCBtYXg9PjE6OmludCkpKSBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0ZXN0X3NhZmVjYXN0MSwKKyAgICAgICBDQVNUKEFSUkFZW1snMSdd LCBbJ3RocmVlJ10sWydhJ11dIEFTIGludFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyBjYXN0MSwKKyAgICAgICBDQVNUKEFSUkFZW1snMScsICcyJ10sIFsndGhyZWUn LCAnYSddXSBBUyBkYXRlW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNh c3QyLAorICAgICAgIENBU1QoQVJSQVlbJ3RocmVlJ10gQVMgSU5UW10gREVGQVVMVCAnezEsMn0n IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QzOworXHN2IHNhZmVjYXN0dmlldworCitDUkVB VEUgVklFVyBzYWZlY2FzdHZpZXcxIEFTCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJl ZSddLFsnYSddXSBBUyBkX2ludF9hcnIgREVGQVVMVCAnezEsMn0nIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdh J11dIEFTIGRfaW50X2FyciBERUZBVUxUICd7MjEsMjJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyBjYXN0MjsKK1xzdiBzYWZlY2FzdHZpZXcxCitTRUxFQ1QgKiBGUk9NIHNhZmVjYXN0dmlldzE7 CisKKy0tZXJyb3IsIGRlZmF1bHQgZXhwcmVzc2lvbiBpcyBtdXRhYmxlCitDUkVBVEUgSU5ERVgg Y2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyBpbnQgREVGQVVM VCByYW5kb20obWluPT4xLCBtYXg9PjEpIE9OIENPTlZFUlNJT04gRVJST1IpKSk7CitDUkVBVEUg SU5ERVggY2FzdF9lcnJvcl9pZHggT04gdGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyB4aWQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKSk7CitDUkVBVEUgSU5ERVggdGVzdF9z YWZlY2FzdDNfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgaW50IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOyAtLW9rCitTRUxFQ1QgcGdfZ2V0X2luZGV4ZGVm KCd0ZXN0X3NhZmVjYXN0M19pZHgnOjpyZWdjbGFzcyk7CisKK0RST1AgVEFCTEUgdGVzdF9zYWZl Y2FzdDsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDE7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNh c3QyOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MzsKK0RST1AgVEFCTEUgdGNhc3Q7CitEUk9Q IEZVTkNUSU9OIHJldF9pbnQ4OworRFJPUCBGVU5DVElPTiByZXRfc2V0aW50OworRFJPUCBUWVBF IGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kOworRFJPUCBUWVBFIGNvbXAyOworRFJPUCBET01BSU4g ZF92YXJjaGFyOworRFJPUCBET01BSU4gZF9pbnQ0MjsKK0RST1AgRE9NQUlOIGRfY2hhcjNfbm90 X251bGw7CitSRVNFVCBleHRyYV9mbG9hdF9kaWdpdHM7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVf Y2FzdC5zcWwKaW5kZXggMzIxODc4NTNjYzcuLjBhMTVhNzk1ZDg3IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2FzdC5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9z cWwvY3JlYXRlX2Nhc3Quc3FsCkBAIC02Miw2ICs2Miw3IEBAICQkIFNFTEVDVCAoJ2Jhcic6OnRl eHQgfHwgJDE6OnRleHQpOyAkJDsKIAogQ1JFQVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0eXBl KSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgQVMgSU1QTElDSVQ7CiBTRUxFQ1Qg MTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91bGQgd29yayBub3cKK1NFTEVDVCBDQVNU KDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsgLS0gZXJyb3IKIAogLS0gY2hlY2sgZGVwZW5kZW5jaWVzIGdlbmVyYXRlZCBmb3IgdGhh dAogU0VMRUNUIHBnX2Rlc2NyaWJlX29iamVjdChjbGFzc2lkLCBvYmppZCwgb2Jqc3ViaWQpIGFz IG9iaiwKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggNTdhOGYwMzY2YTUuLjliYmIxZTU2 MGM3IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9z cmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdApAQCAtMjY2OCw2ICsyNjY4LDkgQEAgU1RS TEVOCiBTVgogU1lOQ0hST05JWkFUSU9OX0JBUlJJRVIKIFNZU1RFTV9JTkZPCitTYWZlVHlwZUNh c3QKK1NhZmVUeXBlQ2FzdEV4cHIKK1NhZmVUeXBlQ2FzdFN0YXRlCiBTYW1wbGVTY2FuCiBTYW1w bGVTY2FuR2V0U2FtcGxlU2l6ZV9mdW5jdGlvbgogU2FtcGxlU2NhblN0YXRlCi0tIAoyLjM0LjEK Cg== --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5pa4 RnJvbSBlNGExYTg1YjE1OTQ3MzU3ZWQ1M2VjMzM4MmY0Y2U4MjFhZDYyNTdjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0NDozNSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEx IDE2LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgKGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSd0aW1lc3Rh bXAnOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgICAgICAgY2Fz dHNvdXJjZSAgICAgICAgICB8ICAgICAgICAgY2FzdHRhcmdldCAgICAgICAgICB8IGNhc3RmdW5j IHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgICAgICAgIHByb3NyYyAgICAgICAgIHwgICBw cm9uYW1lCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQogdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25l IHwgZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgIDIwMjkgfCBhICAgICAgICAgICB8 IGYgICAgICAgICAgfCB0aW1lc3RhbXBfZGF0ZSAgICAgICAgfCBkYXRlCiB0aW1lc3RhbXAgd2l0 aG91dCB0aW1lIHpvbmUgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25lICAgICAgfCAgICAgMTMxNiB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcF90aW1lICAgICAgICB8IHRpbWUK IHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSB8IHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSAg ICB8ICAgICAyMDI4IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX3RpbWVz dGFtcHR6IHwgdGltZXN0YW1wdHoKIHRpbWVzdGFtcCB3aXRob3V0IHRpbWUgem9uZSB8IHRpbWVz dGFtcCB3aXRob3V0IHRpbWUgem9uZSB8ICAgICAxOTYxIHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgdGltZXN0YW1wX3NjYWxlICAgICAgIHwgdGltZXN0YW1wCig0IHJvd3MpCgpkaXNjdXNz aW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlz a1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9kYXRlLmMgICAgICB8IDEzICsrKysrKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC90aW1lc3RhbXAuYyB8IDE3ICsrKysrKysrKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDI2 IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L2RhdGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggMTEx YmZkOGY1MTkuLmM1NTYyYjU2M2U1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv ZGF0ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTEzNzMsNyArMTM3 MywxNiBAQCB0aW1lc3RhbXBfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcAl0aW1l c3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCURhdGVBRFQJCXJlc3VsdDsKIAotCXJl c3VsdCA9IHRpbWVzdGFtcDJkYXRlX29wdF9vdmVyZmxvdyh0aW1lc3RhbXAsIE5VTEwpOworCWlm IChsaWtlbHkoIWZjaW5mby0+Y29udGV4dCkpCisJCXJlc3VsdCA9IHRpbWVzdGFtcHR6MmRhdGVf b3B0X292ZXJmbG93KHRpbWVzdGFtcCwgTlVMTCk7CisJZWxzZQorCXsKKwkJaW50CQkJb3ZlcmZs b3c7CisJCXJlc3VsdCA9IHRpbWVzdGFtcDJkYXRlX29wdF9vdmVyZmxvdyh0aW1lc3RhbXAsICZv dmVyZmxvdyk7CisKKwkJaWYgKG92ZXJmbG93ICE9IDApCisJCQlQR19SRVRVUk5fTlVMTCgpOwor CX0KIAlQR19SRVRVUk5fREFURUFEVChyZXN1bHQpOwogfQogCkBAIC0yMDg5LDcgKzIwOTgsNyBA QCB0aW1lc3RhbXBfdGltZShQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwog CiAJaWYgKHRpbWVzdGFtcDJ0bSh0aW1lc3RhbXAsIE5VTEwsIHRtLCAmZnNlYywgTlVMTCwgTlVM TCkgIT0gMCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEVUSU1FX1ZBTFVFX09VVF9PRl9SQU5H RSksCiAJCQkJIGVycm1zZygidGltZXN0YW1wIG91dCBvZiByYW5nZSIpKSk7CiAKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC90aW1lc3RhbXAuYwppbmRleCAxMTZlM2VmMjhmYy4uN2E1N2FjM2VhZjYgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvdGltZXN0YW1wLmMKQEAgLTM1Miw3ICszNTIsOCBAQCB0aW1lc3RhbXBfc2NhbGUo UEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHRpbWVzdGFtcDsKIAotCUFkanVzdFRpbWVz dGFtcEZvclR5cG1vZCgmcmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0VGltZXN0 YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KQEAgLTY0MzAs NyArNjQzMSwxOSBAQCB0aW1lc3RhbXBfdGltZXN0YW1wdHooUEdfRlVOQ1RJT05fQVJHUykKIHsK IAlUaW1lc3RhbXAJdGltZXN0YW1wID0gUEdfR0VUQVJHX1RJTUVTVEFNUCgwKTsKIAotCVBHX1JF VFVSTl9USU1FU1RBTVBUWih0aW1lc3RhbXAydGltZXN0YW1wdHoodGltZXN0YW1wKSk7CisJaWYg KGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX1RJTUVTVEFNUFRaKHRpbWVz dGFtcDJ0aW1lc3RhbXB0eih0aW1lc3RhbXApKTsKKwllbHNlCisJeworCQlUaW1lc3RhbXBUeiBy ZXN1bHQ7CisJCWludAkJCW92ZXJmbG93OworCisJCXJlc3VsdCA9IHRpbWVzdGFtcDJ0aW1lc3Rh bXB0el9vcHRfb3ZlcmZsb3codGltZXN0YW1wLCAmb3ZlcmZsb3cpOworCQlpZiAob3ZlcmZsb3cg IT0gMCkKKwkJCVBHX1JFVFVSTl9OVUxMKCk7CisJCWVsc2UKKwkJCVBHX1JFVFVSTl9USU1FU1RB TVBUWihyZXN1bHQpOworCX0KIH0KIAogLyoKLS0gCjIuMzQuMQoK --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5p63 RnJvbSA5MjY1YzdmMDUzM2I4ZjcwY2JlNGVhZjQ1MjEwOGUzYWI2OWU4NzNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTQ6MjY6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAxNy8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBqc29uYiB0byBvdGhlciB0eXBlcyBwZXIK 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 OTM5OWNkYjQ5MWEuLmFiMjRkNmRjODEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmIuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYwpAQCAtMjAwNiw3 ICsyMDA2LDcgQEAgSnNvbmJFeHRyYWN0U2NhbGFyKEpzb25iQ29udGFpbmVyICpqYmMsIEpzb25i VmFsdWUgKnJlcykKICAqIEVtaXQgY29ycmVjdCwgdHJhbnNsYXRhYmxlIGNhc3QgZXJyb3IgbWVz c2FnZQogICovCiBzdGF0aWMgdm9pZAotY2Fubm90Q2FzdEpzb25iVmFsdWUoZW51bSBqYnZUeXBl IHR5cGUsIGNvbnN0IGNoYXIgKnNxbHR5cGUpCitjYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpi dlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSwgTm9kZSAqZXNjb250ZXh0KQogewogCXN0 YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CkBAIC0yMDI3LDcgKzIwMjcsNyBAQCBjYW5ub3RDYXN0SnNv bmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSkKIAogCWZvciAo aSA9IDA7IGkgPCBsZW5ndGhvZihtZXNzYWdlcyk7IGkrKykKIAkJaWYgKG1lc3NhZ2VzW2ldLnR5 cGUgPT0gdHlwZSkKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJy bXNnKG1lc3NhZ2VzW2ldLm1zZywgc3FsdHlwZSkpKTsKIApAQCAtMjA0Miw3ICsyMDQyLDEwIEBA IGpzb25iX2Jvb2woUEdfRlVOQ1RJT05fQVJHUykKIAlKc29uYlZhbHVlCXY7CiAKIAlpZiAoIUpz b25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUo di50eXBlLCAiYm9vbGVhbiIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi Ym9vbGVhbiIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJ aWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTIwNTEsNyArMjA1NCwxMCBAQCBqc29uYl9i b29sKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZCb29sKQotCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIik7CisJeworCQljYW5ub3RDYXN0 SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVU VVJOX05VTEwoKTsKKwl9CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4sIDApOwogCkBAIC0yMDY2LDcg KzIwNzIsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCU51bWVyaWMJCXJl dFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNh bm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiKTsKKwl7CisJCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRV Uk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUgPT0gamJ2TnVsbCkKIAl7CkBAIC0yMDc1LDcg KzIwODQsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2 LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVt ZXJpYyIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJLyoKIAkgKiB2LnZh bC5udW1lcmljIHBvaW50cyBpbnRvIGpzb25iIGJvZHksIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNv cHkgdG8KQEAgLTIwOTYsNyArMjEwOCwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290 LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInNtYWxsaW50Iik7CisJewor CQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIsIGZjaW5mby0+Y29udGV4 dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQog CXsKQEAgLTIxMDUsNyArMjEyMCwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ fQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2 LnR5cGUsICJzbWFsbGludCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi c21hbGxpbnQiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAog CXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDIsCiAJCQkJCQkJCSAg IE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0yMTIzLDcgKzIxNDEsMTAgQEAg anNvbmJfaW50NChQR19GVU5DVElPTl9BUkdTKQogCURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICgh SnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1 ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUs ICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAK IAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMjEzMiw3ICsyMTUzLDEwIEBAIGpzb25i X2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMp Ci0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiLCBmY2luZm8tPmNvbnRleHQpOworCQlQ R19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShu dW1lcmljX2ludDQsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7 CkBAIC0yMTUwLDcgKzIxNzQsMTAgQEAganNvbmJfaW50OChQR19GVU5DVElPTl9BUkdTKQogCURh dHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYp KQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdpbnQiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBH X1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTIx NTksNyArMjE4NiwxMCBAQCBqc29uYl9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYg KHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJi aWdpbnQiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBE aXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERh dHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIxNzcsNyArMjIwNywxMCBAQCBqc29uYl9mbG9hdDQo UEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAoIUpzb25iRXh0cmFj dFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi cmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5m by0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBq YnZOdWxsKQogCXsKQEAgLTIxODYsNyArMjIxOSwxMCBAQCBqc29uYl9mbG9hdDQoUEdfRlVOQ1RJ T05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgInJlYWwiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYu dHlwZSwgInJlYWwiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0K IAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0NCwKIAkJCQkJ CQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIyMDQsNyArMjI0MCwx MCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAK IAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIpOworCXsKKwkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIsIGZjaW5mby0+Y29udGV4dCk7CisJ CVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAg LTIyMTMsNyArMjI1MiwxMCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAK IAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVM TCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0 OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKLS0gCjIuMzQu MQoK --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0019-invent-some-error-safe-functions.patch" Content-Disposition: attachment; filename="v11-0019-invent-some-error-safe-functions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5p31 RnJvbSAxMjE3MzkyZGIzOTE4Y2E5NDFlNjczNGI1ODU1ZjdjZjEzMDQ1MWNjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTc6MDM6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAxOS8yMF0gaW52ZW50IHNvbWUgZXJyb3Igc2FmZSBmdW5jdGlvbnMKCnN0cmluZ1R5cGVEYXR1 bVNhZmU6IGVycm9yIHNhZmUgdmVyc2lvbiBvZiBzdHJpbmdUeXBlRGF0dW0KCmV2YWx1YXRlX2V4 cHJfZXh0ZW5kZWQ6IElmIHlvdSB3aXNoIHRvIGV2YWx1YXRlIGEgY29uc3RhbnQgZXhwcmVzc2lv biBpbiBhCm1hbm5lciB0aGF0IGlzIHNhZmUgZnJvbSBwb3RlbnRpYWwgZXJyb3JzLCBzZXQgdGhl IGVycm9yX3NhZmUgcGFyYW1ldGVyIHRvIHRydWUKCkV4ZWNJbml0RXhwclNhZmU6IHNvZnQgZXJy b3IgdmFyaWFudCBvZiBFeGVjSW5pdEV4cHIKCk9pZElucHV0RnVuY3Rpb25DYWxsU2FmZTogc29m dCBlcnJvciB2YXJpYW50IG9mIE9pZElucHV0RnVuY3Rpb25DYWxsCgpDb2VyY2VVbmtub3duQ29u c3RTYWZlOiBhdHRlbXB0cyB0byBjb2VyY2UgYW4gVU5LTk9XTiBDb25zdCB0byB0aGUgdGFyZ2V0 IHR5cGUuClJldHVybnMgTlVMTCBpZiB0aGUgY29lcmNpb24gaXMgbm90IHBvc3NpYmxlLgoKZGlz Y3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4 TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9l eGVjdXRvci9leGVjRXhwci5jICAgICAgfCA0MSArKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9v cHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMgfCAyMSArKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfY29lcmNlLmMgICAgfCA5MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jICAgICAgfCAxNCArKysrKwogc3JjL2JhY2tlbmQv dXRpbHMvZm1nci9mbWdyLmMgICAgICAgIHwgMTMgKysrKwogc3JjL2luY2x1ZGUvZXhlY3V0b3Iv ZXhlY3V0b3IuaCAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvZm1nci5oICAgICAgICAgICAgICAg ICAgIHwgIDMgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oICAgIHwgIDMgKwog c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJjZS5oICAgIHwgIDQgKysKIHNyYy9pbmNsdWRl L3BhcnNlci9wYXJzZV90eXBlLmggICAgICB8ICAyICsKIDEwIGZpbGVzIGNoYW5nZWQsIDE5MyBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXgg ZjE1Njk4NzliNTIuLmIzMDJiZTM2ZjczIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAgLTE3 MCw2ICsxNzAsNDcgQEAgRXhlY0luaXRFeHByKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50 KQogCXJldHVybiBzdGF0ZTsKIH0KIAorLyoKKyAqIEV4ZWNJbml0RXhwclNhZmU6IHNvZnQgZXJy b3IgdmFyaWFudCBvZiBFeGVjSW5pdEV4cHIuCisgKgorICogdXNlIGl0IG9ubHkgZm9yIGV4cHJl c3Npb24gbm9kZXMgc3VwcG9ydCBzb2Z0IGVycm9ycywgbm90IGFsbCBleHByZXNzaW9uCisgKiBu b2RlcyBzdXBwb3J0IGl0LgorKi8KK0V4cHJTdGF0ZSAqCitFeGVjSW5pdEV4cHJTYWZlKEV4cHIg Km5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50KQoreworCUV4cHJTdGF0ZSAgKnN0YXRlOworCUV4cHJF dmFsU3RlcCBzY3JhdGNoID0gezB9OworCisJLyogU3BlY2lhbCBjYXNlOiBOVUxMIGV4cHJlc3Np b24gcHJvZHVjZXMgYSBOVUxMIEV4cHJTdGF0ZSBwb2ludGVyICovCisJaWYgKG5vZGUgPT0gTlVM TCkKKwkJcmV0dXJuIE5VTEw7CisKKwkvKiBJbml0aWFsaXplIEV4cHJTdGF0ZSB3aXRoIGVtcHR5 IHN0ZXAgbGlzdCAqLworCXN0YXRlID0gbWFrZU5vZGUoRXhwclN0YXRlKTsKKwlzdGF0ZS0+ZXhw ciA9IG5vZGU7CisJc3RhdGUtPnBhcmVudCA9IHBhcmVudDsKKwlzdGF0ZS0+ZXh0X3BhcmFtcyA9 IE5VTEw7CisJc3RhdGUtPmVzY29udGV4dCA9IG1ha2VOb2RlKEVycm9yU2F2ZUNvbnRleHQpOwor CXN0YXRlLT5lc2NvbnRleHQtPnR5cGUgPSBUX0Vycm9yU2F2ZUNvbnRleHQ7CisJc3RhdGUtPmVz Y29udGV4dC0+ZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwlzdGF0ZS0+ZXNjb250ZXh0LT5kZXRh aWxzX3dhbnRlZCA9IGZhbHNlOworCisJLyogSW5zZXJ0IHNldHVwIHN0ZXBzIGFzIG5lZWRlZCAq LworCUV4ZWNDcmVhdGVFeHByU2V0dXBTdGVwcyhzdGF0ZSwgKE5vZGUgKikgbm9kZSk7CisKKwkv KiBDb21waWxlIHRoZSBleHByZXNzaW9uIHByb3BlciAqLworCUV4ZWNJbml0RXhwclJlYyhub2Rl LCBzdGF0ZSwgJnN0YXRlLT5yZXN2YWx1ZSwgJnN0YXRlLT5yZXNudWxsKTsKKworCS8qIEZpbmFs bHksIGFwcGVuZCBhIERPTkUgc3RlcCAqLworCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9ET05FX1JF VFVSTjsKKwlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisKKwlFeGVjUmVhZHlF eHByKHN0YXRlKTsKKworCXJldHVybiBzdGF0ZTsKK30KKwogLyoKICAqIEV4ZWNJbml0RXhwcldp dGhQYXJhbXM6IHByZXBhcmUgYSBzdGFuZGFsb25lIGV4cHJlc3Npb24gdHJlZSBmb3IgZXhlY3V0 aW9uCiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5j IGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IDIwMmJhOGVkNGJi Li4zMmFmMGRmNmM3MCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xh dXNlcy5jCisrKyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYwpAQCAtNTA4 MSw2ICs1MDgxLDE2IEBAIHNxbF9pbmxpbmVfZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKQogRXhw ciAqCiBldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVz dWx0X3R5cG1vZCwKIAkJCSAgT2lkIHJlc3VsdF9jb2xsYXRpb24pCit7CisJcmV0dXJuIGV2YWx1 YXRlX2V4cHJfZXh0ZW5kZWQoZXhwciwKKwkJCQkJCQkJICByZXN1bHRfdHlwZSwKKwkJCQkJCQkJ ICByZXN1bHRfdHlwbW9kLAorCQkJCQkJCQkgIHJlc3VsdF9jb2xsYXRpb24sCisJCQkJCQkJCSAg ZmFsc2UpOworfQorRXhwciAqCitldmFsdWF0ZV9leHByX2V4dGVuZGVkKEV4cHIgKmV4cHIsIE9p ZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKKwkJCQkJICAgT2lkIHJlc3VsdF9j b2xsYXRpb24sIGJvb2wgZXJyb3Jfc2FmZSkKIHsKIAlFU3RhdGUJICAgKmVzdGF0ZTsKIAlFeHBy U3RhdGUgICpleHByc3RhdGU7CkBAIC01MTA1LDcgKzUxMTUsMTAgQEAgZXZhbHVhdGVfZXhwcihF eHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3VsdF90eXBtb2QsCiAJICogUHJl cGFyZSBleHByIGZvciBleGVjdXRpb24uICAoTm90ZTogd2UgY2FuJ3QgdXNlIEV4ZWNQcmVwYXJl RXhwcgogCSAqIGJlY2F1c2UgaXQnZCByZXN1bHQgaW4gcmVjdXJzaXZlbHkgaW52b2tpbmcgZXZh bF9jb25zdF9leHByZXNzaW9ucy4pCiAJICovCi0JZXhwcnN0YXRlID0gRXhlY0luaXRFeHByKGV4 cHIsIE5VTEwpOworCWlmIChlcnJvcl9zYWZlKQorCQlleHByc3RhdGUgPSBFeGVjSW5pdEV4cHJT YWZlKGV4cHIsIE5VTEwpOworCWVsc2UKKwkJZXhwcnN0YXRlID0gRXhlY0luaXRFeHByKGV4cHIs IE5VTEwpOwogCiAJLyoKIAkgKiBBbmQgZXZhbHVhdGUgaXQuCkBAIC01MTI1LDYgKzUxMzgsMTIg QEAgZXZhbHVhdGVfZXhwcihFeHByICpleHByLCBPaWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3Vs dF90eXBtb2QsCiAJLyogR2V0IGJhY2sgdG8gb3V0ZXIgbWVtb3J5IGNvbnRleHQgKi8KIAlNZW1v cnlDb250ZXh0U3dpdGNoVG8ob2xkY29udGV4dCk7CiAKKwlpZiAoZXJyb3Jfc2FmZSAmJiBTT0ZU X0VSUk9SX09DQ1VSUkVEKGV4cHJzdGF0ZS0+ZXNjb250ZXh0KSkKKwl7CisJCUZyZWVFeGVjdXRv clN0YXRlKGVzdGF0ZSk7CisJCXJldHVybiBOVUxMOworCX0KKwogCS8qCiAJICogTXVzdCBjb3B5 IHJlc3VsdCBvdXQgb2Ygc3ViLWNvbnRleHQgdXNlZCBieSBleHByZXNzaW9uIGV2YWwuCiAJICoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYwppbmRleCA3OGIxZTM2NmFkNy4uY2RjZGQ0NGE3OTkg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jb2VyY2UuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfY29lcmNlLmMKQEAgLTY1Nyw2ICs2NTcsOTggQEAgY2FuX2Nv ZXJjZV90eXBlKGludCBuYXJncywgY29uc3QgT2lkICppbnB1dF90eXBlaWRzLCBjb25zdCBPaWQg KnRhcmdldF90eXBlaWRzLAogCXJldHVybiB0cnVlOwogfQogCisvKgorICogQ3JlYXRlIGFuIGV4 cHJlc3Npb24gdHJlZSB0byByZXByZXNlbnQgY29lcmNpb24gYSBVTktOT1dOIENvbnN0IG5vZGUu CisgKgorICogJ25vZGUnOiB0aGUgaW5wdXQgZXhwcmVzc2lvbgorICogJ2Jhc2VUeXBlSWQnOiBi YXNlIHR5cGUgb2YgZG9tYWluCisgKiAnYmFzZVR5cGVNb2QnOiBiYXNlIHR5cGUgdHlwbW9kIG9m IGRvbWFpbgorICogJ3RhcmdldFR5cGUnOiB0YXJnZXQgdHlwZSB0byBjb2VyY2UgdG8KKyAqICd0 YXJnZXRUeXBlTW9kJzogdGFyZ2V0IHR5cGUgdHlwbW9kCisgKiAnY2NvbnRleHQnOiBjb250ZXh0 IGluZGljYXRvciB0byBjb250cm9sIGNvZXJjaW9ucworICogJ2Nmb3JtYXQnOiBjb2VyY2lvbiBk aXNwbGF5IGZvcm1hdAorICogJ2xvY2F0aW9uJzogY29lcmNpb24gcmVxdWVzdCBsb2NhdGlvbgor ICogJ2hpZGVJbnB1dENvZXJjaW9uJzogaWYgdHJ1ZSwgaGlkZSB0aGUgaW5wdXQgY29lcmNpb24g dW5kZXIgdGhpcyBvbmUuCisgKi8KK05vZGUgKgorQ29lcmNlVW5rbm93bkNvbnN0U2FmZShQYXJz ZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsIE9pZCB0YXJnZXRUeXBlLCBpbnQzMiB0YXJnZXRU eXBlTW9kLAorCQkJCQkgICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9uRm9ybSBj Zm9ybWF0LCBpbnQgbG9jYXRpb24sCisJCQkJCSAgIGJvb2wgaGlkZUlucHV0Q29lcmNpb24pCit7 CisJT2lkCQkJYmFzZVR5cGVJZDsKKwlpbnQzMgkJYmFzZVR5cGVNb2Q7CisJaW50MzIJCWlucHV0 VHlwZU1vZDsKKwlUeXBlCQliYXNlVHlwZTsKKwljaGFyCQkqc3RyaW5nOworCURhdHVtCQlkYXR1 bTsKKwlDb25zdAkgICAqbmV3Y29uOworCU5vZGUJICAgKnJlc3VsdCA9IE5VTEw7CisJQ29uc3QJ ICAgKmNvbiA9IChDb25zdCAqKSBub2RlOworCisJQXNzZXJ0KElzQShub2RlLCBDb25zdCkpOwor CUFzc2VydChleHByVHlwZShub2RlKSA9PSBVTktOT1dOT0lEKTsKKworCWJhc2VUeXBlTW9kID0g dGFyZ2V0VHlwZU1vZDsKKwliYXNlVHlwZUlkID0gZ2V0QmFzZVR5cGVBbmRUeXBtb2QodGFyZ2V0 VHlwZSwgJmJhc2VUeXBlTW9kKTsKKworCWlmIChiYXNlVHlwZUlkID09IElOVEVSVkFMT0lEKQor CQlpbnB1dFR5cGVNb2QgPSBiYXNlVHlwZU1vZDsKKwllbHNlCisJCWlucHV0VHlwZU1vZCA9IC0x OworCisJYmFzZVR5cGUgPSB0eXBlaWRUeXBlKGJhc2VUeXBlSWQpOworCisJLyoKKwkgKiBXZSBh c3N1bWUgaGVyZSB0aGF0IFVOS05PV04ncyBpbnRlcm5hbCByZXByZXNlbnRhdGlvbiBpcyB0aGUg c2FtZSBhcworCSAqIENTVFJJTkcuCisJICovCisJaWYgKCFjb24tPmNvbnN0aXNudWxsKQorCQlz dHJpbmcgPSBEYXR1bUdldENTdHJpbmcoY29uLT5jb25zdHZhbHVlKTsKKwllbHNlCisJCXN0cmlu ZyA9IE5VTEw7CisKKwlpZiAoIXN0cmluZ1R5cGVEYXR1bVNhZmUoYmFzZVR5cGUsCisJCQkJCQkJ IHN0cmluZywKKwkJCQkJCQkgaW5wdXRUeXBlTW9kLAorCQkJCQkJCSAmZGF0dW0pKQorCXsKKwkJ UmVsZWFzZVN5c0NhY2hlKGJhc2VUeXBlKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCisJbmV3Y29u ID0gbWFrZU5vZGUoQ29uc3QpOworCW5ld2Nvbi0+Y29uc3R0eXBlID0gYmFzZVR5cGVJZDsKKwlu ZXdjb24tPmNvbnN0dHlwbW9kID0gaW5wdXRUeXBlTW9kOworCW5ld2Nvbi0+Y29uc3Rjb2xsaWQg PSB0eXBlVHlwZUNvbGxhdGlvbihiYXNlVHlwZSk7CisJbmV3Y29uLT5jb25zdGxlbiA9IHR5cGVM ZW4oYmFzZVR5cGUpOworCW5ld2Nvbi0+Y29uc3RieXZhbCA9IHR5cGVCeVZhbChiYXNlVHlwZSk7 CisJbmV3Y29uLT5jb25zdGlzbnVsbCA9IGNvbi0+Y29uc3Rpc251bGw7CisJbmV3Y29uLT5jb25z dHZhbHVlID0gZGF0dW07CisKKwkvKgorCSAqIElmIGl0J3MgYSB2YXJsZW5hIHZhbHVlLCBmb3Jj ZSBpdCB0byBiZSBpbiBub24tZXhwYW5kZWQKKwkgKiAobm9uLXRvYXN0ZWQpIGZvcm1hdDsgdGhp cyBhdm9pZHMgYW55IHBvc3NpYmxlIGRlcGVuZGVuY3kgb24KKwkgKiBleHRlcm5hbCB2YWx1ZXMg YW5kIGltcHJvdmVzIGNvbnNpc3RlbmN5IG9mIHJlcHJlc2VudGF0aW9uLgorCSAqLworCWlmICgh Y29uLT5jb25zdGlzbnVsbCAmJiBuZXdjb24tPmNvbnN0bGVuID09IC0xKQorCQluZXdjb24tPmNv bnN0dmFsdWUgPQorCQkJUG9pbnRlckdldERhdHVtKFBHX0RFVE9BU1RfREFUVU0obmV3Y29uLT5j b25zdHZhbHVlKSk7CisKKwlyZXN1bHQgPSAoTm9kZSAqKSBuZXdjb247CisKKwkvKiBJZiB0YXJn ZXQgaXMgYSBkb21haW4sIGFwcGx5IGNvbnN0cmFpbnRzLiAqLworCWlmIChiYXNlVHlwZUlkICE9 IHRhcmdldFR5cGUpCisJCXJlc3VsdCA9IGNvZXJjZV90b19kb21haW4ocmVzdWx0LAorCQkJCQkJ CQkgIGJhc2VUeXBlSWQsIGJhc2VUeXBlTW9kLAorCQkJCQkJCQkgIHRhcmdldFR5cGUsCisJCQkJ CQkJCSAgY2NvbnRleHQsIGNmb3JtYXQsIGxvY2F0aW9uLAorCQkJCQkJCQkgIGZhbHNlKTsKKwor CVJlbGVhc2VTeXNDYWNoZShiYXNlVHlwZSk7CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAKIC8q CiAgKiBDcmVhdGUgYW4gZXhwcmVzc2lvbiB0cmVlIHRvIHJlcHJlc2VudCBjb2VyY2lvbiB0byBh IGRvbWFpbiB0eXBlLgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUu YyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMKaW5kZXggNzcxM2JkYzZhZjAuLmQy NjBhZWVjNWRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdHlwZS5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBlLmMKQEAgLTE5LDYgKzE5LDcgQEAKICNp bmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJsaWIvc3RyaW5naW5mby5oIgog I2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgorI2luY2x1ZGUgIm5vZGVzL21pc2Nub2Rlcy5o IgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5jbHVkZSAicGFyc2VyL3BhcnNl ci5oIgogI2luY2x1ZGUgInV0aWxzL2FycmF5LmgiCkBAIC02NjAsNiArNjYxLDE5IEBAIHN0cmlu Z1R5cGVEYXR1bShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMyIGF0dHR5cG1vZCkKIAlyZXR1 cm4gT2lkSW5wdXRGdW5jdGlvbkNhbGwodHlwaW5wdXQsIHN0cmluZywgdHlwaW9wYXJhbSwgYXR0 dHlwbW9kKTsKIH0KIAorLyogZXJyb3Igc2FmZSB2ZXJzaW9uIG9mIHN0cmluZ1R5cGVEYXR1bSAq LworYm9vbAorc3RyaW5nVHlwZURhdHVtU2FmZShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGludDMy IGF0dHR5cG1vZCwgRGF0dW0gKnJlc3VsdCkKK3sKKwlGb3JtX3BnX3R5cGUgdHlwZm9ybSA9IChG b3JtX3BnX3R5cGUpIEdFVFNUUlVDVCh0cCk7CisJT2lkCQkJdHlwaW5wdXQgPSB0eXBmb3JtLT50 eXBpbnB1dDsKKwlPaWQJCQl0eXBpb3BhcmFtID0gZ2V0VHlwZUlPUGFyYW0odHApOworCUVycm9y U2F2ZUNvbnRleHQgZXNjb250ZXh0ID0ge1RfRXJyb3JTYXZlQ29udGV4dH07CisKKwlyZXR1cm4g T2lkSW5wdXRGdW5jdGlvbkNhbGxTYWZlKHR5cGlucHV0LCBzdHJpbmcsIHR5cGlvcGFyYW0sIGF0 dHR5cG1vZCwKKwkJCQkJCQkJCShOb2RlICopICZlc2NvbnRleHQsIHJlc3VsdCk7Cit9CisKIC8q CiAgKiBHaXZlbiBhIHR5cGVpZCwgcmV0dXJuIHRoZSB0eXBlJ3MgdHlwcmVsaWQgKGFzc29jaWF0 ZWQgcmVsYXRpb24pLCBpZiBhbnkuCiAgKiBSZXR1cm5zIEludmFsaWRPaWQgaWYgdHlwZSBpcyBu b3QgYSBjb21wb3NpdGUgdHlwZS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3Iv Zm1nci5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKaW5kZXggMGZlNjNjNmJiODMu LmFhYTRhNDJiMWVhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwor KysgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwpAQCAtMTc1OSw2ICsxNzU5LDE5IEBA IE9pZElucHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBp b3BhcmFtLCBpbnQzMiB0eXBtb2QpCiAJcmV0dXJuIElucHV0RnVuY3Rpb25DYWxsKCZmbGluZm8s IHN0ciwgdHlwaW9wYXJhbSwgdHlwbW9kKTsKIH0KIAorYm9vbAorT2lkSW5wdXRGdW5jdGlvbkNh bGxTYWZlKE9pZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLAorCQkJCQkJ IGludDMyIHR5cG1vZCwgTm9kZSAqZXNjb250ZXh0LAorCQkJCQkJIERhdHVtICpyZXN1bHQpCit7 CisJRm1nckluZm8JCQlmbGluZm87CisKKwlmbWdyX2luZm8oZnVuY3Rpb25JZCwgJmZsaW5mbyk7 CisKKwlyZXR1cm4gSW5wdXRGdW5jdGlvbkNhbGxTYWZlKCZmbGluZm8sIHN0ciwgdHlwaW9wYXJh bSwgdHlwbW9kLAorCQkJCQkJCQkgZXNjb250ZXh0LCByZXN1bHQpOworfQorCiBjaGFyICoKIE9p ZE91dHB1dEZ1bmN0aW9uQ2FsbChPaWQgZnVuY3Rpb25JZCwgRGF0dW0gdmFsKQogewpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1 dG9yL2V4ZWN1dG9yLmgKaW5kZXggZmEyYjY1N2ZiMmYuLmY5OWZjMjZlYjFmIDEwMDY0NAotLS0g YS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1 dG9yL2V4ZWN1dG9yLmgKQEAgLTMyNCw2ICszMjQsNyBAQCBFeGVjUHJvY05vZGUoUGxhblN0YXRl ICpub2RlKQogICogcHJvdG90eXBlcyBmcm9tIGZ1bmN0aW9ucyBpbiBleGVjRXhwci5jCiAgKi8K IGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0RXhwcihFeHByICpub2RlLCBQbGFuU3RhdGUgKnBh cmVudCk7CitleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdEV4cHJTYWZlKEV4cHIgKm5vZGUsIFBs YW5TdGF0ZSAqcGFyZW50KTsKIGV4dGVybiBFeHByU3RhdGUgKkV4ZWNJbml0RXhwcldpdGhQYXJh bXMoRXhwciAqbm9kZSwgUGFyYW1MaXN0SW5mbyBleHRfcGFyYW1zKTsKIGV4dGVybiBFeHByU3Rh dGUgKkV4ZWNJbml0UXVhbChMaXN0ICpxdWFsLCBQbGFuU3RhdGUgKnBhcmVudCk7CiBleHRlcm4g RXhwclN0YXRlICpFeGVjSW5pdENoZWNrKExpc3QgKnF1YWwsIFBsYW5TdGF0ZSAqcGFyZW50KTsK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2ZtZ3IuaCBiL3NyYy9pbmNsdWRlL2ZtZ3IuaAppbmRl eCA3NGZlM2VhMDU3NS4uOTkxZTE0MDM0ZDMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2ZtZ3Iu aAorKysgYi9zcmMvaW5jbHVkZS9mbWdyLmgKQEAgLTc1MCw2ICs3NTAsOSBAQCBleHRlcm4gYm9v bCBEaXJlY3RJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoUEdGdW5jdGlvbiBmdW5jLCBjaGFyICpzdHIs CiAJCQkJCQkJCQkJRGF0dW0gKnJlc3VsdCk7CiBleHRlcm4gRGF0dW0gT2lkSW5wdXRGdW5jdGlv bkNhbGwoT2lkIGZ1bmN0aW9uSWQsIGNoYXIgKnN0ciwKIAkJCQkJCQkJICBPaWQgdHlwaW9wYXJh bSwgaW50MzIgdHlwbW9kKTsKK2V4dGVybiBib29sIE9pZElucHV0RnVuY3Rpb25DYWxsU2FmZShP aWQgZnVuY3Rpb25JZCwgY2hhciAqc3RyLCBPaWQgdHlwaW9wYXJhbSwKKwkJCQkJCQkJCSBpbnQz MiB0eXBtb2QsIE5vZGUgKmVzY29udGV4dCwKKwkJCQkJCQkJCSBEYXR1bSAqcmVzdWx0KTsKIGV4 dGVybiBjaGFyICpPdXRwdXRGdW5jdGlvbkNhbGwoRm1nckluZm8gKmZsaW5mbywgRGF0dW0gdmFs KTsKIGV4dGVybiBjaGFyICpPaWRPdXRwdXRGdW5jdGlvbkNhbGwoT2lkIGZ1bmN0aW9uSWQsIERh dHVtIHZhbCk7CiBleHRlcm4gRGF0dW0gUmVjZWl2ZUZ1bmN0aW9uQ2FsbChGbWdySW5mbyAqZmxp bmZvLCBTdHJpbmdJbmZvIGJ1ZiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29wdGltaXplci9v cHRpbWl6ZXIuaCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaAppbmRleCBkMGFh OGFiMGMxYy4uOTdhMDMzNzQ1MmMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9v cHRpbWl6ZXIuaAorKysgYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmgKQEAgLTE0 NCw2ICsxNDQsOSBAQCBleHRlcm4gTm9kZSAqZXN0aW1hdGVfZXhwcmVzc2lvbl92YWx1ZShQbGFu bmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSk7CiAKIGV4dGVybiBFeHByICpldmFsdWF0ZV9leHBy KEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKIAkJCQkJ CSAgIE9pZCByZXN1bHRfY29sbGF0aW9uKTsKK2V4dGVybiBFeHByICpldmFsdWF0ZV9leHByX2V4 dGVuZGVkKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwKKwkJCQkJCQkJCWludDMyIHJlc3Vs dF90eXBtb2QsIE9pZCByZXN1bHRfY29sbGF0aW9uLAorCQkJCQkJCQkJYm9vbCBlcnJvcl9zYWZl KTsKIAogZXh0ZXJuIGJvb2wgdmFyX2lzX25vbm51bGxhYmxlKFBsYW5uZXJJbmZvICpyb290LCBW YXIgKnZhciwgYm9vbCB1c2VfcmVsX2luZm8pOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfY29lcmNlLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfY29lcmNlLmgK aW5kZXggOGQ3NzVjNzJjNTkuLmFkMTZjZGQ3MDIyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2VfY29lcmNlLmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2NvZXJj ZS5oCkBAIC00OCw2ICs0OCwxMCBAQCBleHRlcm4gYm9vbCBjYW5fY29lcmNlX3R5cGUoaW50IG5h cmdzLCBjb25zdCBPaWQgKmlucHV0X3R5cGVpZHMsIGNvbnN0IE9pZCAqdGFyZwogZXh0ZXJuIE5v ZGUgKmNvZXJjZV90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCQkJCSBP aWQgaW5wdXRUeXBlSWQsIE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCiAJ CQkJCQkgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50 IGxvY2F0aW9uKTsKK2V4dGVybiBOb2RlICpDb2VyY2VVbmtub3duQ29uc3RTYWZlKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKKwkJCQkJCQkJCU9pZCB0YXJnZXRUeXBlLCBpbnQzMiB0 YXJnZXRUeXBlTW9kLAorCQkJCQkJCQkJQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lv bkZvcm0gY2Zvcm1hdCwKKwkJCQkJCQkJCWludCBsb2NhdGlvbiwgYm9vbCBoaWRlSW5wdXRDb2Vy Y2lvbik7CiBleHRlcm4gTm9kZSAqY29lcmNlX3RvX2RvbWFpbihOb2RlICphcmcsIE9pZCBiYXNl VHlwZUlkLCBpbnQzMiBiYXNlVHlwZU1vZCwKIAkJCQkJCQkgIE9pZCB0eXBlSWQsCiAJCQkJCQkJ ICBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9uRm9ybSBjZm9ybWF0LCBpbnQgbG9j YXRpb24sCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaAppbmRleCAwZDkxOWQ4YmZhMi4uMTIzODFhZWQ2 NGMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmgKKysrIGIvc3Jj L2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaApAQCAtNDcsNiArNDcsOCBAQCBleHRlcm4gY2hh ciAqdHlwZVR5cGVOYW1lKFR5cGUgdCk7CiBleHRlcm4gT2lkCXR5cGVUeXBlUmVsaWQoVHlwZSB0 eXApOwogZXh0ZXJuIE9pZAl0eXBlVHlwZUNvbGxhdGlvbihUeXBlIHR5cCk7CiBleHRlcm4gRGF0 dW0gc3RyaW5nVHlwZURhdHVtKFR5cGUgdHAsIGNoYXIgKnN0cmluZywgaW50MzIgYXR0dHlwbW9k KTsKK2V4dGVybiBib29sIHN0cmluZ1R5cGVEYXR1bVNhZmUoVHlwZSB0cCwgY2hhciAqc3RyaW5n LCBpbnQzMiBhdHR0eXBtb2QsCisJCQkJCQkJCURhdHVtICpyZXN1bHQpOwogCiBleHRlcm4gT2lk CXR5cGVpZFR5cGVSZWxpZChPaWQgdHlwZV9pZCk7CiBleHRlcm4gT2lkCXR5cGVPckRvbWFpblR5 cGVSZWxpZChPaWQgdHlwZV9pZCk7Ci0tIAoyLjM0LjEKCg== --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5pk8 RnJvbSA1ZTQ0YmEyZjcyMDI3YmYyMTk0MTJlOTBiMmU4YWJiNzIzMjZiNWMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MzE6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAxMi8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ4Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAg fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBkb3VibGUgcHJlY2lzaW9uIHwgYmlnaW50ICAgICB8ICAgICAgNDgzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZHRvaTggICAgICAgICAgfCBpbnQ4CiBkb3VibGUgcHJlY2lzaW9u IHwgc21hbGxpbnQgICB8ICAgICAgMjM3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRv aTIgICAgICAgICAgfCBpbnQyCiBkb3VibGUgcHJlY2lzaW9uIHwgaW50ZWdlciAgICB8ICAgICAg MzE3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRvaTQgICAgICAgICAgfCBpbnQ0CiBk b3VibGUgcHJlY2lzaW9uIHwgcmVhbCAgICAgICB8ICAgICAgMzEyIHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZHRvZiAgICAgICAgICAgfCBmbG9hdDQKIGRvdWJsZSBwcmVjaXNpb24gfCBu dW1lcmljICAgIHwgICAgIDE3NDMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDhf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDEzICsr KysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyB8ICAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKaW5kZXgg YWI1YzM4ZDcyM2QuLmQ3NDZmOTYxZmQzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwpAQCAtMTE5OSw5 ICsxMTk5LDE0IEBAIGR0b2YoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IChmbG9hdDQp IG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKG51bSkpCi0JCWZs b2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJ CQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisKIAlpZiAodW5saWtl bHkocmVzdWx0ID09IDAuMGYpICYmIG51bSAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJv cigpOworCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAorCQkJCWVycmNvZGUo RVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBv dXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKIAogCVBHX1JFVFVSTl9GTE9BVDQocmVzdWx0KTsK IH0KQEAgLTEyMjQsNyArMTIyOSw3IEBAIGR0b2k0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBS YW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19J Tl9JTlQzMihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7CiAKQEAgLTEy NDksNyArMTI1NCw3IEBAIGR0b2kyKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVj ayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19JTl9JTlQxNihu dW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1 bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK IAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YwppbmRleCA4ZjdjMTE3NTU3YS4uNzBlNmQ4OTgxM2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9pbnQ4LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYwpAQCAt MTI2MCw3ICsxMjYwLDcgQEAgZHRvaTgoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNo ZWNrICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUOF9GSVRTX0lOX0lOVDY0 KG51bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwppbmRleCBiODljMzVlZWU2NS4uNTA3YzYwN2E3OTkgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwpAQCAtNDU2MCw3ICs0NTYwLDggQEAgZmxvYXQ4X251bWVyaWMoUEdfRlVOQ1RJT05f QVJHUykKIAlpbml0X3ZhcigmcmVzdWx0KTsKIAogCS8qIEFzc3VtZSB3ZSBuZWVkIG5vdCB3b3Jy eSBhYm91dCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNlcyAqLwotCSh2b2lkKSBzZXRfdmFyX2Zyb21f c3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBOVUxMKTsKKwlpZiAoIXNldF92YXJfZnJv bV9zdHIoYnVmLCBidWYsICZyZXN1bHQsICZlbmRwdHIsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlyZXMgPSBtYWtlX3Jlc3VsdCgmcmVzdWx0KTsKIAotLSAKMi4z NC4xCgo= --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5pe5 RnJvbSBmZDJjODE5MTk3NzU2ZTgzOWVhYzM5MTk4OTYwYmVhNjQ1ZDkzMWY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNiBPY3QgMjAyNSAxMjozOToyMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEx IDE1LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcHR6IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLCBjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnBy b25hbWUKZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbiBwcC5vaWQgPSBwYy5jYXN0 ZnVuYwphbmQgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlwZSA9J3RpbWVz dGFtcHR6Jzo6cmVndHlwZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICAgICAg Y2FzdHNvdXJjZSAgICAgICAgfCAgICAgICAgIGNhc3R0YXJnZXQgICAgICAgICAgfCBjYXN0ZnVu YyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICAgICBwcm9zcmMgICAgICAgICB8ICAg cHJvbmFtZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IGRh dGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAxMTc4IHwgYSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgdGltZXN0YW1wdHpfZGF0ZSAgICAgIHwgZGF0ZQogdGltZXN0YW1wIHdpdGggdGlt ZSB6b25lIHwgdGltZSB3aXRob3V0IHRpbWUgem9uZSAgICAgIHwgICAgIDIwMTkgfCBhICAgICAg ICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0el90aW1lICAgICAgfCB0aW1lCiB0aW1lc3Rh bXAgd2l0aCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCAgICAgMjAy NyB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X3RpbWVzdGFtcCB8IHRp bWVzdGFtcAogdGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgdGltZSB3aXRoIHRpbWUgem9uZSAg ICAgICAgIHwgICAgIDEzODggfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0 el90aW1ldHogICAgfCB0aW1ldHoKIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IHRpbWVzdGFt cCB3aXRoIHRpbWUgem9uZSAgICB8ICAgICAxOTY3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAg IHwgdGltZXN0YW1wdHpfc2NhbGUgICAgIHwgdGltZXN0YW1wdHoKKDUgcm93cykKCmRpc2N1c3Np b246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNr UThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGUuYyAgICAgIHwgMTYgKysrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jIHwgMTcgKysrKysrKysrKysrKysrLS0KIDIgZmlsZXMgY2hhbmdlZCwg MjggaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvZGF0ZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCA0 ZjBmM2QyNjk4OS4uMTExYmZkOGY1MTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC9kYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAtMTQ2OCw3ICsx NDY4LDE3IEBAIHRpbWVzdGFtcHR6X2RhdGUoUEdfRlVOQ1RJT05fQVJHUykKIAlUaW1lc3RhbXBU eiB0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCURhdGVBRFQJCXJlc3VsdDsK IAotCXJlc3VsdCA9IHRpbWVzdGFtcHR6MmRhdGVfb3B0X292ZXJmbG93KHRpbWVzdGFtcCwgTlVM TCk7CisJaWYgKGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkKKwkJcmVzdWx0ID0gdGltZXN0YW1w dHoyZGF0ZV9vcHRfb3ZlcmZsb3codGltZXN0YW1wLCBOVUxMKTsKKwllbHNlCisJeworCQlpbnQJ CQlvdmVyZmxvdzsKKwkJcmVzdWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9vcHRfb3ZlcmZsb3codGlt ZXN0YW1wLCAmb3ZlcmZsb3cpOworCisJCWlmIChvdmVyZmxvdyAhPSAwKQorCQkJUEdfUkVUVVJO X05VTEwoKTsKKwl9CisKIAlQR19SRVRVUk5fREFURUFEVChyZXN1bHQpOwogfQogCkBAIC0yMTEw LDcgKzIxMjAsNyBAQCB0aW1lc3RhbXB0el90aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JF VFVSTl9OVUxMKCk7CiAKIAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgJnR6LCB0bSwgJmZz ZWMsIE5VTEwsIE5VTEwpICE9IDApCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZv LT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkp OwogCkBAIC0zMDI5LDcgKzMwMzksNyBAQCB0aW1lc3RhbXB0el90aW1ldHooUEdfRlVOQ1RJT05f QVJHUykKIAkJUEdfUkVUVVJOX05VTEwoKTsKIAogCWlmICh0aW1lc3RhbXAydG0odGltZXN0YW1w LCAmdHosIHRtLCAmZnNlYywgTlVMTCwgTlVMTCkgIT0gMCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJ ZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RF X0RBVEVUSU1FX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygidGltZXN0YW1wIG91 dCBvZiByYW5nZSIpKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1l c3RhbXAuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwppbmRleCA3YjU2NWNj NmQ2Ni4uMTE2ZTNlZjI4ZmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1l c3RhbXAuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKQEAgLTg3NSw3 ICs4NzUsOCBAQCB0aW1lc3RhbXB0el9zY2FsZShQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0 ID0gdGltZXN0YW1wOwogCi0JQWRqdXN0VGltZXN0YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1v ZCwgTlVMTCk7CisJaWYgKCFBZGp1c3RUaW1lc3RhbXBGb3JUeXBtb2QoJnJlc3VsdCwgdHlwbW9k LCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJUEdfUkVUVVJOX1RJ TUVTVEFNUFRaKHJlc3VsdCk7CiB9CkBAIC02NTA3LDcgKzY1MDgsMTkgQEAgdGltZXN0YW1wdHpf dGltZXN0YW1wKFBHX0ZVTkNUSU9OX0FSR1MpCiB7CiAJVGltZXN0YW1wVHogdGltZXN0YW1wID0g UEdfR0VUQVJHX1RJTUVTVEFNUFRaKDApOwogCi0JUEdfUkVUVVJOX1RJTUVTVEFNUCh0aW1lc3Rh bXB0ejJ0aW1lc3RhbXAodGltZXN0YW1wKSk7CisJaWYgKGxpa2VseSghZmNpbmZvLT5jb250ZXh0 KSkKKwkJUEdfUkVUVVJOX1RJTUVTVEFNUCh0aW1lc3RhbXB0ejJ0aW1lc3RhbXAodGltZXN0YW1w KSk7CisJZWxzZQorCXsKKwkJaW50CQkJb3ZlcmZsb3c7CisJCVRpbWVzdGFtcAlyZXN1bHQ7CisK KwkJcmVzdWx0ID0gdGltZXN0YW1wdHoydGltZXN0YW1wX29wdF9vdmVyZmxvdyh0aW1lc3RhbXAs ICZvdmVyZmxvdyk7CisJCWlmIChvdmVyZmxvdyAhPSAwKQorCQkJUEdfUkVUVVJOX05VTEwoKTsK KwkJZWxzZQorCQkJUEdfUkVUVVJOX1RJTUVTVEFNUChyZXN1bHQpOworCX0KIH0KIAogLyoKLS0g CjIuMzQuMQoK --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5pg6 RnJvbSAxNTcwYjg2NWMxZjZmNzQ1Y2JhZGM2YjVhNTJiNTc3OTIzN2JiODMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0MzoyOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEx IDE0LzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGludGVydmFsIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVydmFs Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAg ICAgICBjYXN0dGFyZ2V0ICAgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRo b2QgfCAgICAgcHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQogaW50ZXJ2YWwgICB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUg fCAgICAgMTQxOSB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludGVydmFsX3RpbWUgIHwg dGltZQogaW50ZXJ2YWwgICB8IGludGVydmFsICAgICAgICAgICAgICAgfCAgICAgMTIwMCB8IGkg ICAgICAgICAgIHwgZiAgICAgICAgICB8IGludGVydmFsX3NjYWxlIHwgaW50ZXJ2YWwKKDIgcm93 cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3 d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2Jh Y2tlbmQvdXRpbHMvYWR0L2RhdGUuYyAgICAgIHwgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jIHwgMyArKy0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAy IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IGM3YTNjZGUyZDgxLi40ZjBmM2Qy Njk4OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0yMTgwLDcgKzIxODAsNyBAQCBpbnRlcnZhbF90 aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCiAJVGltZUFEVAkJcmVzdWx0OwogCiAJaWYgKElOVEVSVkFM X05PVF9GSU5JVEUoc3BhbikpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5j b250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxVRV9P VVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coImNhbm5vdCBjb252ZXJ0IGluZmluaXRlIGludGVy dmFsIHRvIHRpbWUiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggMTU2YTQ4 MzBmZmQuLjdiNTY1Y2M2ZDY2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC0xMzM0 LDcgKzEzMzQsOCBAQCBpbnRlcnZhbF9zY2FsZShQR19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9 IHBhbGxvYyhzaXplb2YoSW50ZXJ2YWwpKTsKIAkqcmVzdWx0ID0gKmludGVydmFsOwogCi0JQWRq dXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0 SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fSU5URVJWQUxfUChyZXN1bHQpOwogfQotLSAK Mi4zNC4xCgo= --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5pi7 RnJvbSAxMDYwMmJiODFiNTM3OTFjZTM1NWM3MzIyOTNhNDJiZTQ3YmUyNDQ2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFRodSwgOSBPY3QgMjAyNSAxODo0Mjo1MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjEx IDEzLzIwXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGRhdGUgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZGF0ZSc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCmNhc3Rzb3VyY2UgfCAgICAgICAgIGNh c3R0YXJnZXQgICAgICAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 ICAgICAgcHJvc3JjICAgICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0 aG91dCB0aW1lIHpvbmUgfCAgICAgMjAyNCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRh dGVfdGltZXN0YW1wICAgfCB0aW1lc3RhbXAKIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0aCB0 aW1lIHpvbmUgICAgfCAgICAgMTE3NCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRhdGVf dGltZXN0YW1wdHogfCB0aW1lc3RhbXB0egooMiByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2 aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIHwg MjIgKysrKysrKysrKysrKysrKysrKystLQogMSBmaWxlIGNoYW5nZWQsIDIwIGluc2VydGlvbnMo KyksIDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Rh dGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggMzQ0ZjU4YjkyZjcuLmM3 YTNjZGUyZDgxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTEzNTAsNyArMTM1MCwxNiBAQCBkYXRl X3RpbWVzdGFtcChQR19GVU5DVElPTl9BUkdTKQogCURhdGVBRFQJCWRhdGVWYWwgPSBQR19HRVRB UkdfREFURUFEVCgwKTsKIAlUaW1lc3RhbXAJcmVzdWx0OwogCi0JcmVzdWx0ID0gZGF0ZTJ0aW1l c3RhbXAoZGF0ZVZhbCk7CisJaWYgKGxpa2VseSghZmNpbmZvLT5jb250ZXh0KSkKKwkJcmVzdWx0 ID0gZGF0ZTJ0aW1lc3RhbXAoZGF0ZVZhbCk7CisJZWxzZQorCXsKKwkJaW50CQkJb3ZlcmZsb3c7 CisKKwkJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXBfb3B0X292ZXJmbG93KGRhdGVWYWwsICZvdmVy Zmxvdyk7CisJCWlmIChvdmVyZmxvdyAhPSAwKQorCQkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAK IAlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC0xNDM1LDcgKzE0NDQsMTYgQEAg ZGF0ZV90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdTKQogCURhdGVBRFQJCWRhdGVWYWwgPSBQ R19HRVRBUkdfREFURUFEVCgwKTsKIAlUaW1lc3RhbXBUeiByZXN1bHQ7CiAKLQlyZXN1bHQgPSBk YXRlMnRpbWVzdGFtcHR6KGRhdGVWYWwpOworCWlmIChsaWtlbHkoIWZjaW5mby0+Y29udGV4dCkp CisJCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wdHooZGF0ZVZhbCk7CisJZWxzZQorCXsKKwkJaW50 CQkJb3ZlcmZsb3c7CisJCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wdHpfb3B0X292ZXJmbG93KGRh dGVWYWwsICZvdmVyZmxvdyk7CisKKwkJaWYgKG92ZXJmbG93ICE9IDApCisJCQlQR19SRVRVUk5f TlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KLS0gCjIuMzQu MQoK --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5pm9 RnJvbSA2YzM5NmVlNDY3YTYyMzcxMzQ0OTQwMDBjMzIyN2Y5NmZjMzAxZWUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6Mjg6MjAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAxMS8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ0Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiByZWFsICAgICAgIHwgYmlnaW50ICAgICAgICAgICB8ICAgICAgNjUzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZnRvaTggICAgICAgICAgfCBpbnQ4CiByZWFsICAgICAgIHwgc21h bGxpbnQgICAgICAgICB8ICAgICAgMjM4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRv aTIgICAgICAgICAgfCBpbnQyCiByZWFsICAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAg MzE5IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRvaTQgICAgICAgICAgfCBpbnQ0CiBy ZWFsICAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzExIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZnRvZCAgICAgICAgICAgfCBmbG9hdDgKIHJlYWwgICAgICAgfCBudW1lcmlj ICAgICAgICAgIHwgICAgIDE3NDIgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDRf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDQgKyst LQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9udW1lcmljLmMgfCAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zs b2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRleCA3Yjk3ZDJiZTZjYS4u YWI1YzM4ZDcyM2QgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC0xMjk4LDcgKzEyOTgsNyBAQCBm dG9pNChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtl bHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW50 ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMzIzLDcgKzEzMjMsNyBAQCBmdG9pMihQR19G VU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4o bnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJ CWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggM2RjYmQzNmJkOGUuLjhmN2Mx MTc1NTdhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEyOTUsNyArMTI5NSw3IEBAIGZ0b2k4KFBH X0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25h bihudW0pIHx8ICFGTE9BVDRfRklUU19JTl9JTlQ2NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwK KwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJD T0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVy aWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKaW5kZXggNDBkMjcwOWI2NGEu LmI4OWMzNWVlZTY1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKQEAgLTQ2NTgsNyArNDY1OCw4 IEBAIGZsb2F0NF9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnJlc3VsdCk7 CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBub3Qgd29ycnkgYWJvdXQgbGVhZGluZy90cmFpbGluZyBz cGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zhcl9mcm9tX3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVu ZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRfdmFyX2Zyb21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAm ZW5kcHRyLCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJcmVzID0g bWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAKLS0gCjIuMzQuMQoK --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5pp11 RnJvbSAxMTk5NmQzOTE3ZTk3NTQzY2Q4OTM5MzA2MGFmMDE3NWM4NzQ4NjcwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjI6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAwOS8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaWdpbnQgdG8gb3RoZXIgdHlwZXMgcGVy 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 YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggYmRlYTQ5MDIwMmEuLjNkY2Jk MzZiZDhlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEyMDQsNyArMTIwNCw3IEBAIGludDg0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsKIAogCWlm ICh1bmxpa2VseShhcmcgPCBQR19JTlQzMl9NSU4pIHx8IHVubGlrZWx5KGFyZyA+IFBHX0lOVDMy X01BWCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0 dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMjI1LDcgKzEy MjUsNyBAQCBpbnQ4MihQR19GVU5DVElPTl9BUkdTKQogCWludDY0CQlhcmcgPSBQR19HRVRBUkdf SU5UNjQoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnIDwgUEdfSU5UMTZfTUlOKSB8fCB1bmxpa2Vs eShhcmcgPiBQR19JTlQxNl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTEzMDgsNyArMTMwOCw3IEBAIGk4dG9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2 NAkJYXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IDApIHx8 IHVubGlrZWx5KGFyZyA+IFBHX1VJTlQzMl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0 dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVN RVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coIk9JRCBvdXQgb2YgcmFuZ2Ui KSkpOwogCi0tIAoyLjM0LjEKCg== --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5po10 RnJvbSA0NzQxNjQ2YzcyZDViYjhkYzlkOWM0Mzk4OTE3M2I3MjFkNTAxMjk2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjU6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAxMC8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBudW1lcmljIHRvIG90aGVyIHR5cGVzIHBl 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 L251bWVyaWMuYwppbmRleCAyNTAxMDA3ZDk4MS4uNDBkMjcwOWI2NGEgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwpAQCAtMTI0NCw3ICsxMjQ0LDggQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FS R1MpCiAJICovCiAJaWYgKE5VTUVSSUNfSVNfU1BFQ0lBTChudW0pKQogCXsKLQkJKHZvaWQpIGFw cGx5X3R5cG1vZF9zcGVjaWFsKG51bSwgdHlwbW9kLCBOVUxMKTsKKwkJaWYgKCFhcHBseV90eXBt b2Rfc3BlY2lhbChudW0sIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CiAJCVBHX1JFVFVSTl9OVU1FUklDKGR1cGxpY2F0ZV9udW1lcmljKG51bSkpOwogCX0K IApAQCAtMTI5NSw4ICsxMjk2LDkgQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5p dF92YXIoJnZhcik7CiAKIAlzZXRfdmFyX2Zyb21fbnVtKG51bSwgJnZhcik7Ci0JKHZvaWQpIGFw cGx5X3R5cG1vZCgmdmFyLCB0eXBtb2QsIE5VTEwpOwotCW5ldyA9IG1ha2VfcmVzdWx0KCZ2YXIp OworCWlmICghYXBwbHlfdHlwbW9kKCZ2YXIsIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJ UEdfUkVUVVJOX05VTEwoKTsKKwluZXcgPSBtYWtlX3Jlc3VsdF9zYWZlKCZ2YXIsIGZjaW5mby0+ Y29udGV4dCk7CiAKIAlmcmVlX3ZhcigmdmFyKTsKIApAQCAtMzAxOSw3ICszMDIxLDEwIEBAIG51 bWVyaWNfbXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTnVtZXJpYwkJbnVtMiA9IFBHX0dFVEFSR19O VU1FUklDKDEpOwogCU51bWVyaWMJCXJlczsKIAotCXJlcyA9IG51bWVyaWNfbXVsX3NhZmUobnVt MSwgbnVtMiwgTlVMTCk7CisJcmVzID0gbnVtZXJpY19tdWxfc2FmZShudW0xLCBudW0yLCBmY2lu Zm8tPmNvbnRleHQpOworCisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fTlVNRVJJQyhy ZXMpOwogfQpAQCAtNDM5Myw5ICs0Mzk4LDE1IEBAIG51bWVyaWNfaW50NF9zYWZlKE51bWVyaWMg bnVtLCBOb2RlICplc2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ0KFBHX0ZVTkNUSU9OX0FS R1MpCiB7CisJaW50MzIJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJ QygwKTsKIAotCVBHX1JFVFVSTl9JTlQzMihudW1lcmljX2ludDRfc2FmZShudW0sIE5VTEwpKTsK KwlyZXN1bHQgPSBudW1lcmljX2ludDRfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlp ZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdf UkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9JTlQzMihyZXN1bHQpOwogfQogCiAvKgpAQCAt NDQ2Myw5ICs0NDc0LDE1IEBAIG51bWVyaWNfaW50OF9zYWZlKE51bWVyaWMgbnVtLCBOb2RlICpl c2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CisJaW50 NjQJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJQygwKTsKIAotCVBH X1JFVFVSTl9JTlQ2NChudW1lcmljX2ludDhfc2FmZShudW0sIE5VTEwpKTsKKwlyZXN1bHQgPSBu dW1lcmljX2ludDhfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHko U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwo KTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCiAKQEAgLTQ0ODksMTEgKzQ1MDYs MTEgQEAgbnVtZXJpY19pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKE5VTUVSSUNfSVNfU1BF Q0lBTChudW0pKQogCXsKIAkJaWYgKE5VTUVSSUNfSVNfTkFOKG51bSkpCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBOYU4gdG8gJXMiLCAic21hbGxpbnQiKSkpOwogCQllbHNlCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBpbmZpbml0eSB0byAlcyIsICJzbWFsbGludCIpKSk7CiAJfQpAQCAtNDUwMiwxMiAr NDUxOSwxMiBAQCBudW1lcmljX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAlpbml0X3Zhcl9mcm9t X251bShudW0sICZ4KTsKIAogCWlmICghbnVtZXJpY3Zhcl90b19pbnQ2NCgmeCwgJnZhbCkpCi0J CWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAogCWlmICh1bmxpa2VseSh2YWwgPCBQ R19JTlQxNl9NSU4pIHx8IHVubGlrZWx5KHZhbCA+IFBHX0lOVDE2X01BWCkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21h bGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtNDU3MiwxMCArNDU4OSwxNCBAQCBudW1lcmlj X2Zsb2F0OChQR19GVU5DVElPTl9BUkdTKQogCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVj dEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVt KG51bSkpKTsKLQotCXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ4aW4sIENTdHJp bmdHZXREYXR1bSh0bXApKTsKLQotCXBmcmVlKHRtcCk7CisJaWYgKCFEaXJlY3RJbnB1dEZ1bmN0 aW9uQ2FsbFNhZmUoZmxvYXQ4aW4sIHRtcCwKKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAtMSwKKwkJ CQkJCQkJCSAoTm9kZSAqKSBmY2luZm8tPmNvbnRleHQsCisJCQkJCQkJCQkgJnJlc3VsdCkpCisJ eworCQlwZnJlZSh0bXApOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9E QVRVTShyZXN1bHQpOwogfQpAQCAtNDY2Nyw3ICs0Njg4LDE0IEBAIG51bWVyaWNfZmxvYXQ0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2Fs bDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVtKG51bSkpKTsKIAot CXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ0aW4sIENTdHJpbmdHZXREYXR1bSh0 bXApKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShmbG9hdDRpbiwgdG1wLAor CQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopIGZjaW5mby0+Y29u dGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7CisJCXBmcmVlKHRtcCk7CisJCVBHX1JFVFVS Tl9OVUxMKCk7CisJfQogCiAJcGZyZWUodG1wKTsKIAotLSAKMi4zNC4xCgo= --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5ps13 RnJvbSA1M2E1MzRiMjYyOTZiZWFmYjJhOGM1ZWRkOGYzYWE1YzlhYjVjZDMyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MTc6MTEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAwNy8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBtYWNhZGRyOCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J21hY2FkZHI4 Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBj YXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgIHBy b3NyYyAgICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t CiBtYWNhZGRyOCAgIHwgbWFjYWRkciAgICB8ICAgICA0MTI0IHwgaSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgbWFjYWRkcjh0b21hY2FkZHIgfCBtYWNhZGRyCigxIHJvdykKCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L21hYzguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWM4LmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IDA4ZTQxYmE0ZWVhLi4xYzkwM2YxNTJkZSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUwLDcgQEAgbWFjYWRkcjh0b21hY2FkZHIoUEdf RlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSAobWFjYWRkciAqKSBwYWxsb2MwKHNpemVvZihtYWNh ZGRyKSk7CiAKIAlpZiAoKGFkZHItPmQgIT0gMHhGRikgfHwgKGFkZHItPmUgIT0gMHhGRSkpCi0J CWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygibWFjYWRkcjggZGF0YSBvdXQgb2YgcmFuZ2UgdG8gY29udmVydCB0byBtYWNhZGRyIiks CiAJCQkJIGVycmhpbnQoIk9ubHkgYWRkcmVzc2VzIHRoYXQgaGF2ZSBGRiBhbmQgRkUgYXMgdmFs dWVzIGluIHRoZSAiCi0tIAoyLjM0LjEKCg== --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5pr12 RnJvbSA1NmVhNjc0NmM4YzRiMTFhZjhhZDgzNDJjOTk5ZjA0MGZjOTExMDUwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjA6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAwOC8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlZ2VyIHRvIG90aGVyIHR5cGVzIHBl 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 YWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKaW5kZXggMjJkYmZjOTUwYjEuLmU5MDg0NGEyOWYwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvY2hhci5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9jaGFyLmMKQEAgLTE5Miw3ICsxOTIsNyBAQCBpNHRvY2hhcihQR19GVU5DVElP Tl9BUkdTKQogCWludDMyCQlhcmcxID0gUEdfR0VUQVJHX0lOVDMyKDApOwogCiAJaWYgKGFyZzEg PCBTQ0hBUl9NSU4gfHwgYXJnMSA+IFNDSEFSX01BWCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJcImNoYXJcIiBvdXQgb2Yg cmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5kZXggYjU3ODE5ODlhNjQuLmI0NTU5OWQ0MDJk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNTAsNyArMzUwLDcgQEAgaTR0b2kyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRBUkdfSU5UMzIoMCk7CiAKIAlpZiAodW5saWtl bHkoYXJnMSA8IFNIUlRfTUlOKSB8fCB1bmxpa2VseShhcmcxID4gU0hSVF9NQVgpKQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2co InNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Disposition: attachment; filename="v11-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5pw15 RnJvbSA3MjNlNGFiZmE3ODM3YjE0NTBjMjlkNDIyZjZlMGI4OTgzMWU0ODViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MTM6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAwNS8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdmFyeWluZyB0byBvdGhl 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 bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCA1Y2I1YzhjNDZmOS4uMDhmMWJmNWEyNGQgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtNjM0LDcgKzYzNCw3IEBAIHZhcmNoYXIoUEdfRlVO Q1RJT05fQVJHUykKIAl7CiAJCWZvciAoaSA9IG1heG1ibGVuOyBpIDwgbGVuOyBpKyspCiAJCQlp ZiAoc19kYXRhW2ldICE9ICcgJykKLQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNp bmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJIGVycm1zZygidmFsdWUgdG9vIGxvbmcgZm9y IHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoJWQpIiwKIAkJCQkJCQkJbWF4bGVuKSkpOwotLSAKMi4z NC4xCgo= --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5pu14 RnJvbSBiZjcxMGVkMDBhYzQ4NmRhOGJlZDk5MThlY2VjZDgzOWM4MWM2MWI5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6Mjg6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAwNi8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbmV0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2luZXQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9z cmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBp bmV0ICAgICAgIHwgY2lkciAgICAgICAgICAgICAgfCAgICAgMTcxNSB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGluZXRfdG9fY2lkciB8IGNpZHIKIGluZXQgICAgICAgfCB0ZXh0ICAgICAg ICAgICAgICB8ICAgICAgNzMwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19z aG93IHwgdGV4dAogaW5ldCAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICA3MzAgfCBh ICAgICAgICAgICB8IGYgICAgICAgICAgfCBuZXR3b3JrX3Nob3cgfCB0ZXh0CiBpbmV0ICAgICAg IHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAg ICB8IG5ldHdvcmtfc2hvdyB8IHRleHQKKDQgcm93cykKCmluZXRfdG9fY2lkciBpcyBhbHJlYWR5 IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFK Zlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQot LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrLmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbmV0d29yay5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpp bmRleCAzY2IwYWI2ODI5YS4uNjQ4YzhkOTVmNTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9uZXR3b3JrLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpA QCAtMTEzNyw3ICsxMTM3LDcgQEAgbmV0d29ya19zaG93KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlp ZiAocGdfaW5ldF9uZXRfbnRvcChpcF9mYW1pbHkoaXApLCBpcF9hZGRyKGlwKSwgaXBfbWF4Yml0 cyhpcCksCiAJCQkJCQkgdG1wLCBzaXplb2YodG1wKSkgPT0gTlVMTCkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFUSU9OKSwKIAkJCQkgZXJybXNnKCJjb3Vs ZCBub3QgZm9ybWF0IGluZXQgdmFsdWU6ICVtIikpKTsKIAotLSAKMi4zNC4xCgo= --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5px16 RnJvbSBiYTU3ZDQ5ZDBjMzQ0MWE5Yzc3MjllNmEyYzQwYzk4ZjZjOTZmZGM1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTM6NDU6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAwNC8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyB0ZXh0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ3RleHQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0YXJn ZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAg fCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogdGV4dCAgICAgICB8 IHJlZ2NsYXNzICAgfCAgICAgMTA3OSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRf cmVnY2xhc3MgfCByZWdjbGFzcwogdGV4dCAgICAgICB8ICJjaGFyIiAgICAgfCAgICAgIDk0NCB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgICAgfCBjaGFyCiB0ZXh0ICAg ICAgIHwgbmFtZSAgICAgICB8ICAgICAgNDA3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwg dGV4dF9uYW1lICAgICB8IG5hbWUKIHRleHQgICAgICAgfCB4bWwgICAgICAgIHwgICAgIDI4OTYg fCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0dG94bWwgICAgIHwgeG1sCig0IHJvd3Mp CgphbHJlYWR5IGVycm9yIHNhZmU6IHRleHRfbmFtZSwgdGV4dF9jaGFyLgp0ZXh0dG94bWwgaXMg cmVmYWN0b3JlZCBpbiBjaGFyYWN0ZXIgdHlwZSBlcnJvciBzYWZlIHBhdGNoLgoKZGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tR OGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9n L25hbWVzcGFjZS5jIHwgNTggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jIHwgMTMgKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC92YXJsZW5hLmMgfCAxMCArKysrLS0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNw YWNlLmggfCAgNiArKysrCiBzcmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmggICAgIHwgIDEgKwog NSBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9uYW1lc3BhY2UuYwppbmRleCBkMjM0NzRkYTRmYi4uYmVmMmRlNWRkMzkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0 YWxvZy9uYW1lc3BhY2UuYwpAQCAtNDQwLDYgKzQ0MCwxNiBAQCBPaWQKIFJhbmdlVmFyR2V0UmVs aWRFeHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAog CQkJCQkJIHVpbnQzMiBmbGFncywKIAkJCQkJCSBSYW5nZVZhckdldFJlbGlkQ2FsbGJhY2sgY2Fs bGJhY2ssIHZvaWQgKmNhbGxiYWNrX2FyZykKK3sKKwlyZXR1cm4gUmFuZ2VWYXJHZXRSZWxpZEV4 dGVuZGVkU2FmZShyZWxhdGlvbiwgbG9ja21vZGUsIGZsYWdzLAorCQkJCQkJCQkJCWNhbGxiYWNr LCBjYWxsYmFja19hcmcsCisJCQkJCQkJCQkJTlVMTCk7Cit9CisKK09pZAorUmFuZ2VWYXJHZXRS ZWxpZEV4dGVuZGVkU2FmZShjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2tt b2RlLCB1aW50MzIgZmxhZ3MsCisJCQkJCQkJIFJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxs YmFjaywgdm9pZCAqY2FsbGJhY2tfYXJnLAorCQkJCQkJCSBOb2RlICplc2NvbnRleHQpCiB7CiAJ dWludDY0CQlpbnZhbF9jb3VudDsKIAlPaWQJCQlyZWxJZDsKQEAgLTQ1Niw3ICs0NjYsNyBAQCBS YW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLCBMT0NLTU9E RSBsb2NrbW9kZSwKIAlpZiAocmVsYXRpb24tPmNhdGFsb2duYW1lKQogCXsKIAkJaWYgKHN0cmNt cChyZWxhdGlvbi0+Y2F0YWxvZ25hbWUsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkp ICE9IDApCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRP aWQsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKIAkJCQkJ IGVycm1zZygiY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiBc IiVzLiVzLiVzXCIiLAogCQkJCQkJCXJlbGF0aW9uLT5jYXRhbG9nbmFtZSwgcmVsYXRpb24tPnNj aGVtYW5hbWUsCkBAIC01MTMsNyArNTIzLDcgQEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNv bnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJCQkJCSAqIHJldHVy biBJbnZhbGlkT2lkLgogCQkJCQkgKi8KIAkJCQkJaWYgKG5hbWVzcGFjZUlkICE9IG15VGVtcE5h bWVzcGFjZSkKLQkJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQllcmV0dXJuKGVzY29udGV4dCwg SW52YWxpZE9pZCwKIAkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX1RBQkxFX0RFRklO SVRJT04pLAogCQkJCQkJCQkgZXJybXNnKCJ0ZW1wb3JhcnkgdGFibGVzIGNhbm5vdCBzcGVjaWZ5 IGEgc2NoZW1hIG5hbWUiKSkpOwogCQkJCX0KQEAgLTU5MywxMyArNjAzLDIzIEBAIFJhbmdlVmFy R2V0UmVsaWRFeHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2tt b2RlLAogCQl7CiAJCQlpbnQJCQllbGV2ZWwgPSAoZmxhZ3MgJiBSVlJfU0tJUF9MT0NLRUQpID8g REVCVUcxIDogRVJST1I7CiAKLQkJCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSkKLQkJCQllcmVw b3J0KGVsZXZlbCwKKwkJCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSAmJiBlbGV2ZWwgPT0gREVC VUcxKQorCQkJCWVyZXBvcnQoREVCVUcxLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9MT0NLX05P VF9BVkFJTEFCTEUpLAogCQkJCQkJIGVycm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJl bGF0aW9uIFwiJXMuJXNcIiIsCiAJCQkJCQkJCXJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlv bi0+cmVsbmFtZSkpKTsKLQkJCWVsc2UKLQkJCQllcmVwb3J0KGVsZXZlbCwKKwkJCWVsc2UgaWYg KHJlbGF0aW9uLT5zY2hlbWFuYW1lICYmIGVsZXZlbCA9PSBFUlJPUikKKwkJCQllcmV0dXJuKGVz Y29udGV4dCwgSW52YWxpZE9pZCwKKwkJCQkJCWVycmNvZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJ TEFCTEUpLAorCQkJCQkJZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24g XCIlcy4lc1wiIiwKKwkJCQkJCQkgICByZWxhdGlvbi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJl bG5hbWUpKTsKKwkJCWVsc2UgaWYgKGVsZXZlbCA9PSBERUJVRzEpCisJCQkJZXJlcG9ydChERUJV RzEsCisJCQkJCQllcnJjb2RlKEVSUkNPREVfTE9DS19OT1RfQVZBSUxBQkxFKSwKKwkJCQkJCWVy cm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9uIFwiJXNcIiIsCisJCQkJCQkJ ICAgcmVsYXRpb24tPnJlbG5hbWUpKTsKKwkJCWVsc2UgaWYgKGVsZXZlbCA9PSBFUlJPUikKKwkJ CQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVf TE9DS19OT1RfQVZBSUxBQkxFKSwKIAkJCQkJCSBlcnJtc2coImNvdWxkIG5vdCBvYnRhaW4gbG9j ayBvbiByZWxhdGlvbiBcIiVzXCIiLAogCQkJCQkJCQlyZWxhdGlvbi0+cmVsbmFtZSkpKTsKQEAg LTYyNiwxMyArNjQ2LDIzIEBAIFJhbmdlVmFyR2V0UmVsaWRFeHRlbmRlZChjb25zdCBSYW5nZVZh ciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAogCXsKIAkJaW50CQkJZWxldmVsID0gbWlz c2luZ19vayA/IERFQlVHMSA6IEVSUk9SOwogCi0JCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSkK LQkJCWVyZXBvcnQoZWxldmVsLAorCQlpZiAocmVsYXRpb24tPnNjaGVtYW5hbWUgJiYgZWxldmVs ID09IERFQlVHMSkKKwkJCWVyZXBvcnQoREVCVUcxLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1VO REVGSU5FRF9UQUJMRSksCiAJCQkJCSBlcnJtc2coInJlbGF0aW9uIFwiJXMuJXNcIiBkb2VzIG5v dCBleGlzdCIsCiAJCQkJCQkJcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1l KSkpOwotCQllbHNlCi0JCQllcmVwb3J0KGVsZXZlbCwKKwkJZWxzZSBpZiAocmVsYXRpb24tPnNj aGVtYW5hbWUgJiYgZWxldmVsID09IEVSUk9SKQorCQkJZXJldHVybihlc2NvbnRleHQsIEludmFs aWRPaWQsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfVEFCTEUpLAorCQkJCQllcnJt c2coInJlbGF0aW9uIFwiJXMuJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkgICByZWxhdGlv bi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJlbG5hbWUpKTsKKwkJZWxzZSBpZiAoZWxldmVsID09 IERFQlVHMSkKKwkJCWVyZXBvcnQoREVCVUcxLAorCQkJCQllcnJjb2RlKEVSUkNPREVfVU5ERUZJ TkVEX1RBQkxFKSwKKwkJCQkJZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3Qi LAorCQkJCQkJICAgcmVsYXRpb24tPnJlbG5hbWUpKTsKKwkJZWxzZSBpZiAoZWxldmVsID09IEVS Uk9SKQorCQkJZXJldHVybihlc2NvbnRleHQsIEludmFsaWRPaWQsCiAJCQkJCShlcnJjb2RlKEVS UkNPREVfVU5ERUZJTkVEX1RBQkxFKSwKIAkJCQkJIGVycm1zZygicmVsYXRpb24gXCIlc1wiIGRv ZXMgbm90IGV4aXN0IiwKIAkJCQkJCQlyZWxhdGlvbi0+cmVsbmFtZSkpKTsKQEAgLTM2MjIsNiAr MzY1MiwxMiBAQCBnZXRfbmFtZXNwYWNlX29pZChjb25zdCBjaGFyICpuc3BuYW1lLCBib29sIG1p c3Npbmdfb2spCiAgKi8KIFJhbmdlVmFyICoKIG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdChjb25z dCBMaXN0ICpuYW1lcykKK3sKKwlyZXR1cm4gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0U2FmZShu YW1lcywgTlVMTCk7Cit9CisKK1JhbmdlVmFyICoKK21ha2VSYW5nZVZhckZyb21OYW1lTGlzdFNh ZmUoY29uc3QgTGlzdCAqbmFtZXMsIE5vZGUgKmVzY29udGV4dCkKIHsKIAlSYW5nZVZhciAgICpy ZWwgPSBtYWtlUmFuZ2VWYXIoTlVMTCwgTlVMTCwgLTEpOwogCkBAIC0zNjQwLDcgKzM2NzYsNyBA QCBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3QoY29uc3QgTGlzdCAqbmFtZXMpCiAJCQlyZWwtPnJl bG5hbWUgPSBzdHJWYWwobHRoaXJkKG5hbWVzKSk7CiAJCQlicmVhazsKIAkJZGVmYXVsdDoKLQkJ CWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwgTlVMTCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAogCQkJCQkgZXJybXNnKCJpbXByb3BlciByZWxhdGlv biBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAlcyIsCiAJCQkJCQkJTmFtZUxpc3RUb1N0 cmluZyhuYW1lcykpKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcmVncHJv Yy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYwppbmRleCBlNWMyMjQ2ZjJjOS4u NTljYzUwOGY4MDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yZWdwcm9jLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYwpAQCAtMTkwMSwxMiArMTkwMSwx OSBAQCB0ZXh0X3JlZ2NsYXNzKFBHX0ZVTkNUSU9OX0FSR1MpCiAJdGV4dAkgICAqcmVsbmFtZSA9 IFBHX0dFVEFSR19URVhUX1BQKDApOwogCU9pZAkJCXJlc3VsdDsKIAlSYW5nZVZhciAgICpydjsK KwlMaXN0CSAgICpuYW1lbGlzdDsKIAotCXJ2ID0gbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KHRl eHRUb1F1YWxpZmllZE5hbWVMaXN0KHJlbG5hbWUpKTsKKwluYW1lbGlzdCA9IHRleHRUb1F1YWxp ZmllZE5hbWVMaXN0U2FmZShyZWxuYW1lLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwly diA9IG1ha2VSYW5nZVZhckZyb21OYW1lTGlzdFNhZmUobmFtZWxpc3QsIGZjaW5mby0+Y29udGV4 dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKIAogCS8qIFdlIG1pZ2h0IG5vdCBldmVuIGhhdmUgcGVybWlzc2lvbnMgb24g dGhpcyByZWxhdGlvbjsgZG9uJ3QgbG9jayBpdC4gKi8KLQlyZXN1bHQgPSBSYW5nZVZhckdldFJl bGlkKHJ2LCBOb0xvY2ssIGZhbHNlKTsKLQorCXJlc3VsdCA9IFJhbmdlVmFyR2V0UmVsaWRFeHRl bmRlZFNhZmUocnYsIE5vTG9jaywgMCwgTlVMTCwgTlVMTCwKKwkJCQkJCQkJCQkgIGZjaW5mby0+ Y29udGV4dCk7CiAJUEdfUkVUVVJOX09JRChyZXN1bHQpOwogfQogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Zhcmxl bmEuYwppbmRleCAzODk0NDU3YWI0MC4uZjhiZWNiY2RlNTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC92YXJsZW5hLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Zhcmxl bmEuYwpAQCAtMjY4NCw2ICsyNjg0LDEyIEBAIG5hbWVfdGV4dChQR19GVU5DVElPTl9BUkdTKQog ICovCiBMaXN0ICoKIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpCit7CisJ cmV0dXJuIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0dmFsLCBOVUxMKTsKK30KKwor TGlzdCAqCit0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdFNhZmUodGV4dCAqdGV4dHZhbCwgTm9kZSAq ZXNjb250ZXh0KQogewogCWNoYXIJICAgKnJhd25hbWU7CiAJTGlzdAkgICAqcmVzdWx0ID0gTklM OwpAQCAtMjY5NSwxMiArMjcwMSwxMiBAQCB0ZXh0VG9RdWFsaWZpZWROYW1lTGlzdCh0ZXh0ICp0 ZXh0dmFsKQogCXJhd25hbWUgPSB0ZXh0X3RvX2NzdHJpbmcodGV4dHZhbCk7CiAKIAlpZiAoIVNw bGl0SWRlbnRpZmllclN0cmluZyhyYXduYW1lLCAnLicsICZuYW1lbGlzdCkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZXNjb250ZXh0LCBOSUwsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9J TlZBTElEX05BTUUpLAogCQkJCSBlcnJtc2coImludmFsaWQgbmFtZSBzeW50YXgiKSkpOwogCiAJ aWYgKG5hbWVsaXN0ID09IE5JTCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihlc2NvbnRl eHQsIE5JTCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfTkFNRSksCiAJCQkJIGVycm1z ZygiaW52YWxpZCBuYW1lIHN5bnRheCIpKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Nh dGFsb2cvbmFtZXNwYWNlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCmluZGV4 IGYxNDIzZjI4YzMyLi5hYjYxYWY1NWRkYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCkBAIC0x MDMsNiArMTAzLDExIEBAIGV4dGVybiBPaWQJUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0 IFJhbmdlVmFyICpyZWxhdGlvbiwKIAkJCQkJCQkJCSBMT0NLTU9ERSBsb2NrbW9kZSwgdWludDMy IGZsYWdzLAogCQkJCQkJCQkJIFJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxsYmFjaywKIAkJ CQkJCQkJCSB2b2lkICpjYWxsYmFja19hcmcpOworZXh0ZXJuIE9pZCBSYW5nZVZhckdldFJlbGlk RXh0ZW5kZWRTYWZlKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwKKwkJCQkJCQkJCQlMT0NLTU9E RSBsb2NrbW9kZSwgdWludDMyIGZsYWdzLAorCQkJCQkJCQkJCVJhbmdlVmFyR2V0UmVsaWRDYWxs YmFjayBjYWxsYmFjaywKKwkJCQkJCQkJCQl2b2lkICpjYWxsYmFja19hcmcsCisJCQkJCQkJCQkJ Tm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBPaWQJUmFuZ2VWYXJHZXRDcmVhdGlvbk5hbWVzcGFj ZShjb25zdCBSYW5nZVZhciAqbmV3UmVsYXRpb24pOwogZXh0ZXJuIE9pZAlSYW5nZVZhckdldEFu ZENoZWNrQ3JlYXRpb25OYW1lc3BhY2UoUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJCQkJCQkJ IExPQ0tNT0RFIGxvY2ttb2RlLApAQCAtMTY4LDYgKzE3Myw3IEBAIGV4dGVybiBPaWQJTG9va3Vw Q3JlYXRpb25OYW1lc3BhY2UoY29uc3QgY2hhciAqbnNwbmFtZSk7CiBleHRlcm4gdm9pZCBDaGVj a1NldE5hbWVzcGFjZShPaWQgb2xkTnNwT2lkLCBPaWQgbnNwT2lkKTsKIGV4dGVybiBPaWQJUXVh bGlmaWVkTmFtZUdldENyZWF0aW9uTmFtZXNwYWNlKGNvbnN0IExpc3QgKm5hbWVzLCBjaGFyICoq b2JqbmFtZV9wKTsKIGV4dGVybiBSYW5nZVZhciAqbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KGNv bnN0IExpc3QgKm5hbWVzKTsKK2V4dGVybiBSYW5nZVZhciAqbWFrZVJhbmdlVmFyRnJvbU5hbWVM aXN0U2FmZShjb25zdCBMaXN0ICpuYW1lcywgTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBjaGFy ICpOYW1lTGlzdFRvU3RyaW5nKGNvbnN0IExpc3QgKm5hbWVzKTsKIGV4dGVybiBjaGFyICpOYW1l TGlzdFRvUXVvdGVkU3RyaW5nKGNvbnN0IExpc3QgKm5hbWVzKTsKIApkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdXRpbHMvdmFybGVuYS5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvdmFybGVuYS5oCmlu ZGV4IGRiOWZkZjcyOTQxLi4wY2YwMWFlNTI4MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRp bHMvdmFybGVuYS5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaApAQCAtMjcsNiAr MjcsNyBAQCBleHRlcm4gaW50CXZhcnN0cl9sZXZlbnNodGVpbl9sZXNzX2VxdWFsKGNvbnN0IGNo YXIgKnNvdXJjZSwgaW50IHNsZW4sCiAJCQkJCQkJCQkJICBpbnQgaW5zX2MsIGludCBkZWxfYywg aW50IHN1Yl9jLAogCQkJCQkJCQkJCSAgaW50IG1heF9kLCBib29sIHRydXN0ZWQpOwogZXh0ZXJu IExpc3QgKnRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpOworZXh0ZXJuIExp c3QgKnRleHRUb1F1YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0ICp0ZXh0dmFsLCBOb2RlICplc2Nv bnRleHQpOwogZXh0ZXJuIGJvb2wgU3BsaXRJZGVudGlmaWVyU3RyaW5nKGNoYXIgKnJhd3N0cmlu ZywgY2hhciBzZXBhcmF0b3IsCiAJCQkJCQkJCSAgTGlzdCAqKm5hbWVsaXN0KTsKIGV4dGVybiBi b29sIFNwbGl0RGlyZWN0b3JpZXNTdHJpbmcoY2hhciAqcmF3c3RyaW5nLCBjaGFyIHNlcGFyYXRv ciwKLS0gCjIuMzQuMQoK --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5q118 RnJvbSAwN2RhNjk0MWE3Y2YyYWE0NzYyMmU2OTVkNTgyYTIzOGU0NTJlYjA5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6MzM6MDggKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAwMi8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaXQvdmFyYml0IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKd2hlcmUgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlw ZSA9J2JpdCc6OnJlZ3R5cGUgb3IKY2FzdHNvdXJjZTo6cmVndHlwZSA9J3ZhcmJpdCc6OnJlZ3R5 cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSAgfCBjYXN0dGFy Z2V0ICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJpdCAgICAgICAgIHwgYmln aW50ICAgICAgfCAgICAgMjA3NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50 OCB8IGludDgKIGJpdCAgICAgICAgIHwgaW50ZWdlciAgICAgfCAgICAgMTY4NCB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50NCB8IGludDQKIGJpdCAgICAgICAgIHwgYml0ICAg ICAgICAgfCAgICAgMTY4NSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdCAgICAgICB8 IGJpdAogYml0IHZhcnlpbmcgfCBiaXQgdmFyeWluZyB8ICAgICAxNjg3IHwgaSAgICAgICAgICAg fCBmICAgICAgICAgIHwgdmFyYml0ICAgIHwgdmFyYml0Cig0IHJvd3MpCgpkaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1 M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92 YXJiaXQuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCmluZGV4IDIwNWE2N2RhZmM1Li42ZTli ODA4ZTIwYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQuYwpAQCAtNDAxLDcgKzQwMSw3IEBAIGJpdChQ R19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fVkFSQklUX1AoYXJnKTsKIAogCWlmICghaXNF eHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRD SCksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyBsZW5ndGggJWQgZG9lcyBub3QgbWF0Y2ggdHlw ZSBiaXQoJWQpIiwKIAkJCQkJCVZBUkJJVExFTihhcmcpLCBsZW4pKSk7CkBAIC03NTIsNyArNzUy LDcgQEAgdmFyYml0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JFVFVSTl9WQVJCSVRfUChhcmcp OwogCiAJaWYgKCFpc0V4cGxpY2l0KQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFf UklHSFRfVFJVTkNBVElPTiksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyB0b28gbG9uZyBmb3Ig dHlwZSBiaXQgdmFyeWluZyglZCkiLAogCQkJCQkJbGVuKSkpOwpAQCAtMTU5MSw3ICsxNTkxLDcg QEAgYml0dG9pbnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQg c3RyaW5nIGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihy ZXN1bHQpICogQklUU19QRVJfQllURSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFM VUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTE2NzEsNyArMTY3MSw3IEBAIGJpdHRvaW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJ LyogQ2hlY2sgdGhhdCB0aGUgYml0IHN0cmluZyBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAoVkFS QklUTEVOKGFyZykgPiBzaXplb2YocmVzdWx0KSAqIEJJVFNfUEVSX0JZVEUpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiYmln aW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5pz17 RnJvbSBlZjAyNmQ0Njc5MWM3MzcxY2ZiMzFlMTZkOTg1YmFmYmMyNTg5N2QyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTI6NTI6MTYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAwMy8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdG8gb3RoZXIgdHlwZXMg 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 IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCAwZTFhNzQ5NzZm Ny4uNjdmNGUwMGVhYzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAt NDU0Miw3ICs0NTQyLDcgQEAgRXhlY0V2YWxYbWxFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJF dmFsU3RlcCAqb3ApCiAKIAkJCQkqb3AtPnJlc3ZhbHVlID0gUG9pbnRlckdldERhdHVtKHhtbHBh cnNlKGRhdGEsCiAJCQkJCQkJCQkJCQkJCSB4ZXhwci0+eG1sb3B0aW9uLAotCQkJCQkJCQkJCQkJ CQkgcHJlc2VydmVfd2hpdGVzcGFjZSkpOworCQkJCQkJCQkJCQkJCQkgcHJlc2VydmVfd2hpdGVz cGFjZSwgTlVMTCkpOwogCQkJCSpvcC0+cmVzbnVsbCA9IGZhbHNlOwogCQkJfQogCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCAzZjQwYzlkYTFhMC4uNWNiNWM4YzQ2ZjkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtMzA3LDcgKzMwNyw3IEBAIGJwY2hhcihQR19GVU5D VElPTl9BUkdTKQogCQl7CiAJCQlmb3IgKGkgPSBtYXhtYmxlbjsgaSA8IGxlbjsgaSsrKQogCQkJ CWlmIChzW2ldICE9ICcgJykKLQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZv ciB0eXBlIGNoYXJhY3RlciglZCkiLAogCQkJCQkJCQkJbWF4bGVuKSkpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5j CmluZGV4IDQxZTc3NTU3MGVjLi45ZTgwMTY0NTZjZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtNjU5 LDcgKzY1OSw3IEBAIHRleHR0b3htbChQR19GVU5DVElPTl9BUkdTKQogewogCXRleHQJICAgKmRh dGEgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKIAotCVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShk YXRhLCB4bWxvcHRpb24sIHRydWUpKTsKKwlQR19SRVRVUk5fWE1MX1AoeG1scGFyc2UoZGF0YSwg eG1sb3B0aW9uLCB0cnVlLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0xMDI4LDE5ICsx MDI4LDI1IEBAIHhtbGVsZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAKIAogeG1sdHlwZSAqCi14bWxw YXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2Vy dmVfd2hpdGVzcGFjZSkKK3htbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0 aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpCiB7CiAj aWZkZWYgVVNFX0xJQlhNTAogCXhtbERvY1B0cglkb2M7CiAKIAlkb2MgPSB4bWxfcGFyc2UoZGF0 YSwgeG1sb3B0aW9uX2FyZywgcHJlc2VydmVfd2hpdGVzcGFjZSwKLQkJCQkJR2V0RGF0YWJhc2VF bmNvZGluZygpLCBOVUxMLCBOVUxMLCBOVUxMKTsKLQl4bWxGcmVlRG9jKGRvYyk7CisJCQkJCUdl dERhdGFiYXNlRW5jb2RpbmcoKSwgTlVMTCwgTlVMTCwgZXNjb250ZXh0KTsKKwlpZiAoZG9jKQor CQl4bWxGcmVlRG9jKGRvYyk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiAoeG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQlO T19YTUxfU1VQUE9SVCgpOwotCXJldHVybiBOVUxMOworCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxM CisJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCWVycm1zZygi dW5zdXBwb3J0ZWQgWE1MIGZlYXR1cmUiKSwKKwkJCWVycmRldGFpbCgiVGhpcyBmdW5jdGlvbmFs aXR5IHJlcXVpcmVzIHRoZSBzZXJ2ZXIgdG8gYmUgYnVpbHQgd2l0aCBsaWJ4bWwgc3VwcG9ydC4i KSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmggYi9z cmMvaW5jbHVkZS91dGlscy94bWwuaAppbmRleCA3MzJkYWM0N2JjNC4uYjE1MTY4YzQzMGUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L3htbC5oCkBAIC03Myw3ICs3Myw3IEBAIGV4dGVybiB4bWx0eXBlICp4bWxjb25jYXQoTGlzdCAq YXJncyk7CiBleHRlcm4geG1sdHlwZSAqeG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAkJCQkJ CSAgIGNvbnN0IERhdHVtICpuYW1lZF9hcmd2YWx1ZSwgY29uc3QgYm9vbCAqbmFtZWRfYXJnbnVs bCwKIAkJCQkJCSAgIGNvbnN0IERhdHVtICphcmd2YWx1ZSwgY29uc3QgYm9vbCAqYXJnbnVsbCk7 Ci1leHRlcm4geG1sdHlwZSAqeG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxv cHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UpOworZXh0ZXJuIHhtbHR5cGUgKnht bHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVz ZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbHBp KGNvbnN0IGNoYXIgKnRhcmdldCwgdGV4dCAqYXJnLCBib29sIGFyZ19pc19udWxsLCBib29sICpy ZXN1bHRfaXNfbnVsbCk7CiBleHRlcm4geG1sdHlwZSAqeG1scm9vdCh4bWx0eXBlICpkYXRhLCB0 ZXh0ICp2ZXJzaW9uLCBpbnQgc3RhbmRhbG9uZSk7CiBleHRlcm4gYm9vbCB4bWxfaXNfZG9jdW1l bnQoeG1sdHlwZSAqYXJnKTsKLS0gCjIuMzQuMQoK --0000000000001175540644627b25 Content-Type: text/x-patch; charset="US-ASCII"; name="v11-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v11-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_midzk5q319 RnJvbSBmZGE5ZTM1ZmZmOWU0ZjgxYmFhYTU1MDhkZWQ0ODY3MTQ0MWIwOGQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MDg6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx MSAwMS8yMF0gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBieXRlYSB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l CmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J2J5dGVhJzo6cmVn dHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFy Z2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQogYnl0ZWEgICAgICB8IHNtYWxs aW50ICAgfCAgICAgNjM3MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJ5dGVhX2ludDIg fCBpbnQyCiBieXRlYSAgICAgIHwgaW50ZWdlciAgICB8ICAgICA2MzcxIHwgZSAgICAgICAgICAg fCBmICAgICAgICAgIHwgYnl0ZWFfaW50NCB8IGludDQKIGJ5dGVhICAgICAgfCBiaWdpbnQgICAg IHwgICAgIDYzNzIgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBieXRlYV9pbnQ4IHwgaW50 OAooMyByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZ NFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0t CiBzcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ieXRlYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMKaW5k ZXggNmU3YjkxNGM1NjMuLmY0M2FkNmI0YWZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvYnl0ZWEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYwpAQCAtMTAy Nyw3ICsxMDI3LDcgQEAgYnl0ZWFfaW50MihQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sg dGhhdCB0aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9m KHJlc3VsdCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAo RGF0dW0pIDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQllcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKTsKIApAQCAtMTA1Miw3ICsx MDUyLDcgQEAgYnl0ZWFfaW50NChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0 aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3Vs dCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJ CQllcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpOwogCkBAIC0xMDc3LDcgKzEwNzcsNyBA QCBieXRlYV9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBieXRl IGFycmF5IGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChsZW4gPiBzaXplb2YocmVzdWx0KSkKLQkJ ZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJ CQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCWVycm1z ZygiYmlnaW50IG91dCBvZiByYW5nZSIpKTsKIAotLSAKMi4zNC4xCgo= --0000000000001175540644627b25--