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 1vfuWE-005zFt-0d for pgsql-hackers@arkaria.postgresql.org; Wed, 14 Jan 2026 06:38:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vfuWD-008Icz-1E for pgsql-hackers@arkaria.postgresql.org; Wed, 14 Jan 2026 06:38:13 +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 1vfuWC-008Icj-2S for pgsql-hackers@lists.postgresql.org; Wed, 14 Jan 2026 06:38:13 +0000 Received: from mail-ua1-x92c.google.com ([2607:f8b0:4864:20::92c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vfuW5-000ND9-25 for pgsql-hackers@lists.postgresql.org; Wed, 14 Jan 2026 06:38:12 +0000 Received: by mail-ua1-x92c.google.com with SMTP id a1e0cc1a2514c-93a9f6efe8bso2486913241.0 for ; Tue, 13 Jan 2026 22:38:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1768372683; x=1768977483; 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=eeZJc01MZrfkjU+oUlAip4WTCBHkGFWLtI4yGnJfbZc=; b=kxReKQX2fy2R8XJS1l9UNNFf9SuPM1VTZG+NFutOj1VjNBEajP3cRe4piQf2F4IbIo gO/cNVteOO+wYSbIZbZEfWjKUhpSjrBK44431mAZLme1019mcj8kVEk/69aXlO5j7agL 9f85ziNwOWaeBt/QNgbcl3a5KmhH72FzeALAPnM2M97ffKA3hvNecu2GSRh4diQXT3cS p7uE8ME0D3n23CC/xx66qLeSBdPvnhXSteMTU9lNW/dFPSKN/Kbx6r818BMZTWMV7Mrc 0Hgo5uwAJbyugc2/cIuqkHsptQJxvYyw01JKBt/1EZC4kSz9+ThCh5Ok+936dccvZyrC YV9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1768372683; x=1768977483; 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=eeZJc01MZrfkjU+oUlAip4WTCBHkGFWLtI4yGnJfbZc=; b=ac8a0XteDu6PKHw4v+EwOtnYDp0+88aJ+ZZ6tIcRyqmbhIItKiz0RBcHeI1r3PhQ5H nuznAww0Kio+xIAHwojEyMLsD5kqKMr+anVHzGWmh/Ekz8E7myQ5BIcJFPpgvynd7TGn euklJrIdvkjaKljNg8t3cpd8yYllP8ht9JjETOM9PzUhXVsM5lvIuoIDFNjberH60IqX MX9tZMc0mjakI5EoilU4dJN9WHBtoN1TZLt58WAxlsZ3U0qgGgAyA5NdzoB2gCmMGirr o0HDVbxYrZELPFfbRGiWJrPfdXvbgCgKdxeEhM+4JSSDxJKbkWTPrAAvIYaBmoTa2Rkc RNXQ== X-Forwarded-Encrypted: i=1; AJvYcCXyMjduRWjz4l5zfr4ILvPR6ZlmcRBGeoziwnsAfXl0XZdu3XRlY0ofAjzhg08x/e7M82alJSeYV3K/8WAn@lists.postgresql.org X-Gm-Message-State: AOJu0YyIlEQuaGEiM8unLXpKv6djWaUhHZQDFWKRNzg8Kq/cxWC3uyNp y2a0UBv3OZ9GY2ms8W8Cbptt1unVxGrbbCXdN6vJBg77RT//reR7A51W9+sQLVf+lNJugVlVrtz lzoTqZ678vEYjlRO24efj0ghQ788NUxA= X-Gm-Gg: AY/fxX6JBCfpooiE5+xvMysZ904fkJN/OirH4qJ5z1LqHZogki0oFGLHSo0rUreHgXY SbGdemJRU75986rp3Kh+8yRVENOrjLETzBkfv7ZJWSUOdQC5dOHMhIlZ3dZem58bWh4hQ2s0uCS EUb41KPsx4RGi6WfyEuinYpfy0bisq+AvD5TBFtakO1WVU2M8pVdGrCABNp5XU/q+NoUPr9imaR C+/hlmBbQREUYVpeM4HOBmgYpL/9LXj0nT7HOiNF2/4hs5zON63zHYMII61HA6wrVqNGZ4vREfs pukSc/2kK6cAhUjlqVnvciuhyPvO5ZuK9HWAzit+CdlQ1RJDgexvmb9vc3m20xTPEaGfKfhFueQ XpKSD+BtvZNf3Uo08agnUxdKQ3whEym6+Vubjc3pMYiaW16u2bqVTY0xx1tc2obx+uMQ601NgM9 YL9/UqoBkMtw== X-Received: by 2002:a67:e713:0:b0:5d5:f6ae:38ca with SMTP id ada2fe7eead31-5f17f69db88mr634753137.41.1768372682896; Tue, 13 Jan 2026 22:38:02 -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: Wed, 14 Jan 2026 14:37:26 +0800 X-Gm-Features: AZwV_QgXgUrINwkSZ9KECuOaHVYfw4YLWHU0tjSy_Tjcq_7KOMhd1BF3i8j8gns Message-ID: Subject: Re: CAST(... ON DEFAULT) - WIP build on top of Error-Safe User Functions To: Amul Sul Cc: Kirill Reshke , Corey Huinker , Vik Fearing , Isaac Morland , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000009882c20648535915" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000009882c20648535915 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Jan 13, 2026 at 1:50=E2=80=AFPM Amul Sul wrote: > > > [...] > > However, we can add a field to node TypeCast for the raw default expres= sion. > > transformTypeSafeCast seems not needed, so I consolidated > > the parsing analysis into transformTypeCast. > > > > Yeah, but I am a bit unsure about the naming (i.e., raw_default) and > the comment stating this is an "untransformed DEFAULT expression". > What is the status of the arg member of the TypeCast structure -- is > it transformed or untransformed? If that is also untransformed, we can > simply drop "untransformed" word from the comment and rename > raw_default to something more descriptive, such as defaultExpr. > Currently, raw_default doesn't clearly indicate that it represents an > expression, IMO. > ColumnDef->raw_default comments: /* default value (untransformed parse tree) */ FunctionParameter->defexpr comments: /* raw default expr, or NULL if not given */ so i changed it to "defexpr". > Also, a few comments still refer to old transformTypeSafeCast(), which > needs to be corrected. > ok. > > ExprState * > > ExecInitExprExtended(Expr *node, Node *escontext, PlanState *parent) > > > > Yes, that looks like what I was thinking, but with the Node *escontext > at the last position. > ok. > + /* > + * The collation of DEFAULT expression must match the collation o= f the > + * target type. > + */ > + defColl =3D exprCollation(defexpr); > + > + if (OidIsValid(targetTypecoll) && OidIsValid(defColl) && > + targetTypecoll !=3D defColl) > + ereport(ERROR, > + errcode(ERRCODE_DATATYPE_MISMATCH), > + errmsg("the collation of CAST DEFAULT expression > conflicts with target type collation"), > > What if one collation is an invalid OID and the other is valid? > Shouldn't we throw an error in that case? That is unlikely to happen. Since a collatable type can not be cast to non-collatable type. To be bullet-proof, use ``if (targetTypecoll !=3D defColl)`` should be fine= . > -- > > + SafeTypeCastState *stcstate; > + > + stcstate =3D palloc0(sizeof(SafeTypeCastState)); > + stcstate->stcexpr =3D stcexpr; > + stcstate->escontext.type =3D T_ErrorSaveContext; > + state->escontext =3D &stcstate->escontext; > > Can't we reuse the state->escontext pointer in the SafeTypeCastState > instead of allocating a separate ErrorSaveContext? > -- > When entering ExecInitSafeTypeCastExpr, we cannot be sure about ExprState->escontext, it can be NULL. Therefore, reusing the state->escontext pointer is not possible, i think. > + ErrorSaveContext *saved_escontext; > + > + saved_escontext =3D state->escontext; > + > + state->escontext =3D NULL; > + > + ExecInitExprRec((Expr *) stcstate->stcexpr->default_expr, > + state, resv, resnull); > + > + state->escontext =3D saved_escontext; > > Here should be some comment explanation as to why you are setting > state->escontext =3D NULL, and why that is needed for the default > expression initialization but not for the case_expr evaluation. > -- `` select cast(a as int default b on conversion error) from (values ('a', 'b')) t(a,b); `` The above example should fail during evaluation of the DEFAULT expression. Therefore, we cannot compile `stcstate->stcexpr->defexpr` error safely. As a result, setting ``state->escontext =3D NULL;`` is necessary. Since we do not want to override its previous value, saving and restoring i= t via `saved_escontext` is required. I've added comments to explain it. summary: 1. when entering ExecInitSafeTypeCastExpr, we can not use ExprState->escontext directly 2. we evaluation the cast expression error safe, ExprState->escontext should pass a valid ErrorSaveContext 3. we do not evaluation the default expression error safe, ExprState->escon= text should be NULL > > + > + fmgr_info(functionId, &flinfo); > + > + return InputFunctionCallSafe(&flinfo, str, typioparam, typmod, > + escontext, result); > > Remove the empty line between these two for consistency with other > function's formatting. > -- ok. > + ? errhint("Safe type cast for user-defined types are > not yet supported") > + : errhint("Explicit cast is defined but definition is > not error safe"), > > Hints should end with a period. > -- ok. > + /* > + * Here, we cannot deparsing cast_expr directly, since > + * transformTypeSafeCast may have folded it into a simple > + * constant or NULL. Instead, we use source_expr and > + * default_expr to reconstruct the CAST DEFAULT clause. > + */ > > I am wondering how other places handle expression deparsing; do they > hold the original expression along with the transformed expression? > Also, why are we only folding constants from the source_expr but not > from the default expression? > SELECT CAST(1111 AS "char" DEFAULT 1 ON CONVERSION ERROR); SELECT CAST(1111 AS "char" DEFAULT (cast (1111 AS "char")) ON CONVERSION ER= ROR); We want the first case to succeed and the second case to fail. To ensure th= e first case does not fail, we need avoid running eval_const_expressions on SafeTypeCastExpr->cast_expr. The second case will still fail when eval_const_expressions_mutator performs constant folding on SafeTypeCastExpr->default_expr. We cannot perform constant folding on SafeTypeCastExpr->cast_expr, but stil= l want to detect some simple cases=E2=80=94specifically, whether the source e= xpression can be coerced to the target type, so part of the constant-folding logic is in = the transformTypeCast->evaluate_expr. evaluate_expr is error-safe, this is what= we want. As a consequence, ruleutils.c can only use source_expr. We already have a similar approach for handling deparsing in get_rule_expr. ``` case T_JsonValueExpr: { JsonValueExpr *jve =3D (JsonValueExpr *) node; get_rule_expr((Node *) jve->raw_expr, context, false); get_json_format(jve->format, context->buf); } break; ``` rebased, many variable names have been renamed, comments adjusted. -- jian https://www.enterprisedb.com/ --0000000000009882c20648535915 Content-Type: text/x-patch; charset="UTF-8"; name="v18-0022-CAST-expr-AS-newtype-DEFAULT-expr-ON-CONVERSION-ERROR.patch" Content-Disposition: attachment; filename="v18-0022-CAST-expr-AS-newtype-DEFAULT-expr-ON-CONVERSION-ERROR.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnednm3 RnJvbSBiNGVmN2VlZjE4MmU1ZGU4NTZkZGM2MGI0ZGVjMjM0YjI2MjljZmEzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFdlZCwgMTQgSmFuIDIwMjYgMTI6NDg6MDIgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAyMi8yM10gQ0FTVChleHByIEFTIG5ld3R5cGUgREVGQVVMVCBleHByIE9OIENPTlZFUlNJT04K IEVSUk9SKQoKIyBCdW1wcyBjYXR2ZXJzaW9uIHJlcXVpcmVkCiogV2l0aCB0aGlzIHBhdGNoc2V0 LCBtb3N0IGZ1bmN0aW9ucyBpbiBwZ19jYXN0LmNhc3RmdW5jIGFyZSBub3cgZXJyb3Itc2FmZS4K KiBDb2VyY2VWaWFJTyBhbmQgQ29lcmNlVG9Eb21haW4gd2VyZSBhbHJlYWR5IGVycm9yLXNhZmUg aW4gdGhlIEhFQUQuCiogdGhpcyBwYXRjaCBleHRlbmRzIGVycm9yLXNhZmUgYmVoYXZpb3IgdG8g QXJyYXlDb2VyY2VFeHByLgoqIFdlIGFsc28gZW5zdXJlIHRoYXQgd2hlbiBhIGNvZXJjaW9uIGZh aWxzLCBleGVjdXRpb24gZmFsbHMgYmFjayB0byBldmFsdWF0aW5nCiAgdGhlIHNwZWNpZmllZCBk ZWZhdWx0IG5vZGUuCiogVGhlIGRvYyBoYXMgYmVlbiByZWZpbmVkLCB0aG91Z2ggaXQgbWF5IHN0 aWxsIG5lZWQgbW9yZSByZXZpZXcuCgpkZW1vOgpTRUxFQ1QgQ0FTVCgnMScgQVMgZGF0ZSAgREVG QVVMVCAnMjAxMS0wMS0wMScgT04gQ09OVkVSU0lPTiBFUlJPUiksCiAgQ0FTVCgnezIzNCxkZWYs NTY3fSc6OnRleHRbXSBBUyBpbnRlZ2VyW10gREVGQVVMVCAney0xMDExfScgT04gQ09OVkVSU0lP TiBFUlJPUik7CiAgICAgZGF0ZSAgICB8ICBpbnQ0CiAtLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiAg MjAxMS0wMS0wMSB8IHstMTAxMX0KClswXTogaHR0cHM6Ly9naXQucG9zdGdyZXNxbC5vcmcvY2dp dC9wb3N0Z3Jlc3FsLmdpdC9jb21taXQvP2lkPWFhYWY5NDQ5ZWM2YmU2MmNiMGQzMGVkMzU4OGRj Mzg0ZjU2Mjc0YgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZ NFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0t CiBjb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0ICAgICAgICAgICAgfCAgIDUgKwog Y29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0ICAgICAgICAgIHwgICA1ICsKIGNv bnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsICAgICAgICAgICAgICAgICB8ICAgMiArCiAuLi4v cGdfc3RhdF9zdGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQgICAgfCAgMjMgKy0KIGNvbnRy aWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3NxbC9zZWxlY3Quc3FsICAgICB8ICAgNSArCiBkb2Mvc3Jj L3NnbWwvc3ludGF4LnNnbWwgICAgICAgICAgICAgICAgICAgICAgfCAgMzMgKwogc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHIuYyAgICAgICAgICAgICAgIHwgIDgxICstCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAgMjkgKwogc3JjL2JhY2tlbmQv aml0L2xsdm0vbGx2bWppdF9leHByLmMgICAgICAgICAgIHwgIDI3ICsKIHNyYy9iYWNrZW5kL25v ZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICA1MyArKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgIDUxICstCiBzcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgMjMgKwogc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2FnZy5jICAgICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV9jb2VyY2UuYyAgICAgICAgICAgICB8ICA3NyArLQogc3JjL2JhY2tlbmQvcGFyc2VyL3Bh cnNlX2V4cHIuYyAgICAgICAgICAgICAgIHwgMzc0ICsrKysrKystCiBzcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX3R5cGUuYyAgICAgICAgICAgICAgIHwgIDEzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9w YXJzZV91dGlsY21kLmMgICAgICAgICAgICB8ICAgMiArLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2FycmF5ZnVuY3MuYyAgICAgICAgICAgIHwgICA5ICsKIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYyAgICAgICAgICAgICB8ICAyNSArCiBzcmMvYmFja2VuZC91dGlscy9mbWdyL2Zt Z3IuYyAgICAgICAgICAgICAgICAgfCAgMTMgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4 cHIuaCAgICAgICAgICAgICAgIHwgICA3ICsKIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9y LmggICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9mbWdyLmggICAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggICAg ICAgICAgICAgICAgIHwgIDIxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAg ICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCAgICAgICAg ICAgICAgICAgfCAgMjUgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL29wdGltaXplci5oICAgICAg ICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfY29lcmNlLmggICAgICAg ICAgICAgfCAgMTMgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaCAgICAgICAgICAg ICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmggICAgICAgICAgICAg ICB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2Nhc3Qub3V0ICAgICAgICAgICAg fCA4MTIgKysrKysrKysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0 ZV9jYXN0Lm91dCAgICAgfCAgIDUgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcXVpdmNs YXNzLm91dCAgICAgIHwgICA3ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUg ICAgICAgICAgICB8ICAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwgICAgICAg ICAgICAgICAgIHwgMzUwICsrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9jcmVhdGVfY2Fz dC5zcWwgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXF1aXZjbGFzcy5z cWwgICAgICAgICAgIHwgICAzICsKIHNyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAg ICAgICAgICAgICB8ICAgMiArCiAzOSBmaWxlcyBjaGFuZ2VkLCAyMDYxIGluc2VydGlvbnMoKyks IDYwIGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvY2FzdC5vdXQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9yZWdyZXNzL3NxbC9j YXN0LnNxbAoKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5vdXQg Yi9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0CmluZGV4IDhjMGJmNTRmMGYzLi44 YTk4NmM3Y2MzMSAxMDA2NDQKLS0tIGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91 dAorKysgYi9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0CkBAIC0xMCw2ICsxMCwx MSBAQCBXSEVSRSBvcGMub2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lkKTsK IC0tLS0tLS0tKy0tLS0tLS0tLQogKDAgcm93cykKIAorU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hh ciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitF UlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgY2hhcmFjdGVyIHRvIGNpdGV4dCB3aGVuIERFRkFVTFQg ZXhwcmVzc2lvbiBpcyBzcGVjaWZpZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgor TElORSAxOiBTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0kuLi4KKyAgICAgICAgICAgICAgICAgICAgXgorSElOVDogIFNhZmUgdHlwZSBj YXN0IGZvciB1c2VyLWRlZmluZWQgdHlwZXMgYXJlIG5vdCB5ZXQgc3VwcG9ydGVkLgogLS0gVGVz dCB0aGUgb3BlcmF0b3JzIGFuZCBpbmRleGluZyBmdW5jdGlvbnMKIC0tIFRlc3QgPSBhbmQgPD4u CiBTRUxFQ1QgJ2EnOjpjaXRleHQgPSAnYSc6OmNpdGV4dCBBUyB0OwpkaWZmIC0tZ2l0IGEvY29u dHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0IGIvY29udHJpYi9jaXRleHQvZXhwZWN0 ZWQvY2l0ZXh0XzEub3V0CmluZGV4IGM1ZTVmMTgwZjJiLi4zNDMzZDQ0YTAwZSAxMDA2NDQKLS0t IGEvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0XzEub3V0CisrKyBiL2NvbnRyaWIvY2l0 ZXh0L2V4cGVjdGVkL2NpdGV4dF8xLm91dApAQCAtMTAsNiArMTAsMTEgQEAgV0hFUkUgb3BjLm9p ZCA+PSAxNjM4NCBBTkQgTk9UIGFtdmFsaWRhdGUob3BjLm9pZCk7CiAtLS0tLS0tLSstLS0tLS0t LS0KICgwIHJvd3MpCiAKK1NFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBjYW5ub3QgY2Fz dCB0eXBlIGNoYXJhY3RlciB0byBjaXRleHQgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3Bl Y2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENB U1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJLi4uCisg ICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZp bmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4KIC0tIFRlc3QgdGhlIG9wZXJhdG9ycyBh bmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAtLSBUZXN0ID0gYW5kIDw+LgogU0VMRUNUICdhJzo6Y2l0 ZXh0ID0gJ2EnOjpjaXRleHQgQVMgdDsKZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0L3NxbC9j aXRleHQuc3FsIGIvY29udHJpYi9jaXRleHQvc3FsL2NpdGV4dC5zcWwKaW5kZXggYWExY2Y5YWJk NWMuLjk5Nzk0NDk3ZDQ3IDEwMDY0NAotLS0gYS9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNx bAorKysgYi9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbApAQCAtOSw2ICs5LDggQEAgU0VM RUNUIGFtbmFtZSwgb3BjbmFtZQogRlJPTSBwZ19vcGNsYXNzIG9wYyBMRUZUIEpPSU4gcGdfYW0g YW0gT04gYW0ub2lkID0gb3BjbWV0aG9kCiBXSEVSRSBvcGMub2lkID49IDE2Mzg0IEFORCBOT1Qg YW12YWxpZGF0ZShvcGMub2lkKTsKIAorU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRl eHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCisKIC0tIFRlc3Qg dGhlIG9wZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAKIC0tIFRlc3QgPSBhbmQgPD4u CmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRfc3RhdGVtZW50cy9leHBlY3RlZC9zZWxlY3Qu b3V0IGIvY29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dAppbmRl eCBhMDY5MTE5Yzc5MC4uNTJjZDU5YWFkYTkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvcGdfc3RhdF9z dGF0ZW1lbnRzL2V4cGVjdGVkL3NlbGVjdC5vdXQKKysrIGIvY29udHJpYi9wZ19zdGF0X3N0YXRl bWVudHMvZXhwZWN0ZWQvc2VsZWN0Lm91dApAQCAtNzMsNiArNzMsMjUgQEAgU0VMRUNUIDEgQVMg ImludCIgT0ZGU0VUIDIgRkVUQ0ggRklSU1QgMyBST1cgT05MWTsKIC0tLS0tCiAoMCByb3dzKQog CistLWVycm9yIHNhZmUgdHlwZSBjYXN0CitTRUxFQ1QgQ0FTVCgnYScgQVMgaW50IERFRkFVTFQg MiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAgMgorKDEgcm93KQor CitTRUxFQ1QgQ0FTVCgnMTEnIEFTIGludCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgaW50NCAKKy0tLS0tLQorICAgMTEKKygxIHJvdykKKworU0VMRUNUIENBU1QoJzEyJyBBUyBu dW1lcmljIERFRkFVTFQgMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBudW1lcmljIAorLS0tLS0t LS0tCisgICAgICAxMgorKDEgcm93KQorCiAtLSBESVNUSU5DVCBhbmQgT1JERVIgQlkgcGF0dGVy bnMKIC0tIFRyeSBzb21lIHF1ZXJ5IHBlcm11dGF0aW9ucyB3aGljaCBvbmNlIHByb2R1Y2VkIGlk ZW50aWNhbCBxdWVyeSBJRHMKIFNFTEVDVCBESVNUSU5DVCAxIEFTICJpbnQiOwpAQCAtMjIyLDYg KzI0MSw4IEBAIFNFTEVDVCBjYWxscywgcm93cywgcXVlcnkgRlJPTSBwZ19zdGF0X3N0YXRlbWVu dHMgT1JERVIgQlkgcXVlcnkgQ09MTEFURSAiQyI7CiAgICAgIDIgfCAgICAyIHwgU0VMRUNUICQx IEFTICJpbnQiIE9SREVSIEJZIDEKICAgICAgMSB8ICAgIDIgfCBTRUxFQ1QgJDEgQVMgaSBVTklP TiBTRUxFQ1QgJDIgT1JERVIgQlkgaQogICAgICAxIHwgICAgMSB8IFNFTEVDVCAkMSB8fCAkMgor ICAgICAyIHwgICAgMiB8IFNFTEVDVCBDQVNUKCQxIEFTIGludCBERUZBVUxUICQyIE9OIENPTlZF UlNJT04gRVJST1IpCisgICAgIDEgfCAgICAxIHwgU0VMRUNUIENBU1QoJDEgQVMgbnVtZXJpYyBE RUZBVUxUICQyIE9OIENPTlZFUlNJT04gRVJST1IpCiAgICAgIDIgfCAgICAyIHwgU0VMRUNUIERJ U1RJTkNUICQxIEFTICJpbnQiCiAgICAgIDAgfCAgICAwIHwgU0VMRUNUIGNhbGxzLCByb3dzLCBx dWVyeSBGUk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIgog ICAgICAxIHwgICAgMSB8IFNFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVzZXQoKSBJUyBOT1Qg TlVMTCBBUyB0CkBAIC0yMzAsNyArMjUxLDcgQEAgU0VMRUNUIGNhbGxzLCByb3dzLCBxdWVyeSBG Uk9NIHBnX3N0YXRfc3RhdGVtZW50cyBPUkRFUiBCWSBxdWVyeSBDT0xMQVRFICJDIjsKICAgICAg ICB8ICAgICAgfCApICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKwogICAgICAgIHwgICAgICB8ICAgU0VMRUNU IGYgRlJPTSB0IE9SREVSIEJZIGYKICAgICAgMSB8ICAgIDEgfCBzZWxlY3QgJDE6Ompzb25iID8g JDIKLSgxNyByb3dzKQorKDE5IHJvd3MpCiAKIFNFTEVDVCBwZ19zdGF0X3N0YXRlbWVudHNfcmVz ZXQoKSBJUyBOT1QgTlVMTCBBUyB0OwogIHQgCmRpZmYgLS1naXQgYS9jb250cmliL3BnX3N0YXRf c3RhdGVtZW50cy9zcWwvc2VsZWN0LnNxbCBiL2NvbnRyaWIvcGdfc3RhdF9zdGF0ZW1lbnRzL3Nx bC9zZWxlY3Quc3FsCmluZGV4IGExMGQ2MThjMDM0Li5iYTc5N2Y0OTRmYSAxMDA2NDQKLS0tIGEv Y29udHJpYi9wZ19zdGF0X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5zcWwKKysrIGIvY29udHJpYi9w Z19zdGF0X3N0YXRlbWVudHMvc3FsL3NlbGVjdC5zcWwKQEAgLTI1LDYgKzI1LDExIEBAIFNFTEVD VCAxIEFTICJpbnQiIExJTUlUIDMgT0ZGU0VUIDM7CiBTRUxFQ1QgMSBBUyAiaW50IiBPRkZTRVQg MSBGRVRDSCBGSVJTVCAyIFJPVyBPTkxZOwogU0VMRUNUIDEgQVMgImludCIgT0ZGU0VUIDIgRkVU Q0ggRklSU1QgMyBST1cgT05MWTsKIAorLS1lcnJvciBzYWZlIHR5cGUgY2FzdAorU0VMRUNUIENB U1QoJ2EnIEFTIGludCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VCgnMTEnIEFTIGludCBERUZBVUxUIDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VCgnMTInIEFTIG51bWVyaWMgREVGQVVMVCAyIE9OIENPTlZFUlNJT04gRVJST1IpOworCiAtLSBE SVNUSU5DVCBhbmQgT1JERVIgQlkgcGF0dGVybnMKIC0tIFRyeSBzb21lIHF1ZXJ5IHBlcm11dGF0 aW9ucyB3aGljaCBvbmNlIHByb2R1Y2VkIGlkZW50aWNhbCBxdWVyeSBJRHMKIFNFTEVDVCBESVNU SU5DVCAxIEFTICJpbnQiOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sIGIv ZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCmluZGV4IDM0YzgzODgwYTY2Li5kMWNjOTMyZjdiMSAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9z eW50YXguc2dtbApAQCAtMjEwNiw2ICsyMTA2LDEwIEBAIENBU1QgKCA8cmVwbGFjZWFibGU+ZXhw cmVzc2lvbjwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50eXBlPC9yZXBsYWNlYWJsZT4K ICAgICBUaGUgPGxpdGVyYWw+Q0FTVDwvbGl0ZXJhbD4gc3ludGF4IGNvbmZvcm1zIHRvIFNRTDsg dGhlIHN5bnRheCB3aXRoCiAgICAgPGxpdGVyYWw+Ojo8L2xpdGVyYWw+IGlzIGhpc3RvcmljYWwg PHByb2R1Y3RuYW1lPlBvc3RncmVTUUw8L3Byb2R1Y3RuYW1lPgogICAgIHVzYWdlLgorICAgIFRo ZSBlcXVpdmFsZW50IE9OIENPTlZFUlNJT04gRVJST1IgYmVoYXZpb3IgaXM6Cis8c3lub3BzaXM+ CitDQVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFj ZWFibGU+dHlwZTwvcmVwbGFjZWFibGU+IEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IgKQorPC9z eW5vcHNpcz4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CkBAIC0yMTYwLDYgKzIxNjQsMzUgQEAg Q0FTVCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNlYWJsZT4gQVMgPHJlcGxhY2Vh YmxlPnR5cGU8L3JlcGxhY2VhYmxlPgogICAgICA8eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRlY2Fz dCIvPi4KICAgICA8L3BhcmE+CiAgICA8L25vdGU+CisKKyA8c2VjdDMgaWQ9InNxbC1zeW50YXgt dHlwZS1jYXN0cy1zYWZlIj4KKyAgPHRpdGxlPlNhZmUgVHlwZSBDYXN0PC90aXRsZT4KKyAgIDxw YXJhPgorICAgIEEgdHlwZSBjYXN0IG1heSBvY2Nhc2lvbmFsbHkgZmFpbC4gVG8gZ3VhcmQgYWdh aW5zdCBzdWNoIGZhaWx1cmVzLCB5b3UgY2FuCisgICAgcHJvdmlkZSBhbiA8bGl0ZXJhbD5PTiBD T05WRVJTSU9OIEVSUk9SPC9saXRlcmFsPiBjbGF1c2UgdG8gaGFuZGxlIHBvdGVudGlhbCBlcnJv cnMuCisgICAgVGhlIHN5bnRheCBmb3Igc2FmZSB0eXBlIGNhc3QgaXM6Cis8c3lub3BzaXM+CitD QVNUICggPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPiBBUyA8cmVwbGFjZWFi bGU+dHlwZTwvcmVwbGFjZWFibGU+IERFRkFVTFQgPHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3Jl cGxhY2VhYmxlPiBPTiBDT05WRVJTSU9OIEVSUk9SICkKKzwvc3lub3BzaXM+CisgICAgSWYgdGhl IHR5cGUgY2FzdCBmYWlscywgaW5zdGVhZCBvZiBlcnJvciBvdXQsIGV2YWx1YXRpb24gZmFsbHMg YmFjayB0byB0aGUKKyAgICBkZWZhdWx0IDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBsYWNl YWJsZT4KKyAgICBzcGVjaWZpZWQgaW4gdGhlIDxsaXRlcmFsPk9OIENPTlZFUlNJT04gRVJST1I8 L2xpdGVyYWw+IGNsYXVzZS4KKworICAgIEF0IHByZXNlbnQsIHRoaXMgb25seSBzdXBwb3J0IGJ1 aWx0LWluIHR5cGUgY2FzdHMsIHNlZSA8eHJlZiBsaW5rZW5kPSJjYXRhbG9nLXBnLWNhc3QiLz4u CisgICAgVXNlci1kZWZpbmVkIHR5cGUgY2FzdHMgY3JlYXRlZCB3aXRoIDxsaW5rIGxpbmtlbmQ9 InNxbC1jcmVhdGVjYXN0Ij5DUkVBVEUgQ0FTVDwvbGluaz4KKyAgICBhcmUgbm90IHN1cHBvcnRl ZC4KKyAgPC9wYXJhPgorCisgICAgPHBhcmE+CisgICAgU29tZSBleGFtcGxlczoKKzxzY3JlZW4+ CitTRUxFQ1QgQ0FTVChURVhUICdlcnJvcicgQVMgaW50ZWdlciBERUZBVUxUIDMgT04gQ09OVkVS U0lPTiBFUlJPUik7Cis8bGluZWFubm90YXRpb24+UmVzdWx0OiA8L2xpbmVhbm5vdGF0aW9uPjxj b21wdXRlcm91dHB1dD4zPC9jb21wdXRlcm91dHB1dD4KK1NFTEVDVCBDQVNUKFRFWFQgJ2Vycm9y JyBBUyBudW1lcmljIERFRkFVTFQgMS4xIE9OIENPTlZFUlNJT04gRVJST1IpOworPGxpbmVhbm5v dGF0aW9uPlJlc3VsdDogPC9saW5lYW5ub3RhdGlvbj48Y29tcHV0ZXJvdXRwdXQ+MS4xPC9jb21w dXRlcm91dHB1dD4KKzwvc2NyZWVuPgorICAgIDwvcGFyYT4KKyAgPC9zZWN0Mz4KICAgPC9zZWN0 Mj4KIAogICA8c2VjdDIgaWQ9InNxbC1zeW50YXgtY29sbGF0ZS1leHBycyI+CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHIuYwppbmRleCAwODhlY2EyNDAyMS4uNTk2YzZjOWE2N2QgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0V4cHIuYwpAQCAtOTksNiArOTksOSBAQCBzdGF0aWMgdm9pZCBFeGVjQnVpbGRBZ2dUcmFu c0NhbGwoRXhwclN0YXRlICpzdGF0ZSwgQWdnU3RhdGUgKmFnZ3N0YXRlLAogc3RhdGljIHZvaWQg RXhlY0luaXRKc29uRXhwcihKc29uRXhwciAqanNleHByLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJ CQkJCSBEYXR1bSAqcmVzdiwgYm9vbCAqcmVzbnVsbCwKIAkJCQkJCQkgRXhwckV2YWxTdGVwICpz Y3JhdGNoKTsKK3N0YXRpYyB2b2lkIEV4ZWNJbml0U2FmZVR5cGVDYXN0RXhwcihTYWZlVHlwZUNh c3RFeHByICpzdGNleHByLCBFeHByU3RhdGUgKnN0YXRlLAorCQkJCQkJCQkJIERhdHVtICpyZXN2 LCBib29sICpyZXNudWxsLAorCQkJCQkJCQkJIEV4cHJFdmFsU3RlcCAqc2NyYXRjaCk7CiBzdGF0 aWMgdm9pZCBFeGVjSW5pdEpzb25Db2VyY2lvbihFeHByU3RhdGUgKnN0YXRlLCBKc29uUmV0dXJu aW5nICpyZXR1cm5pbmcsCiAJCQkJCQkJCSBFcnJvclNhdmVDb250ZXh0ICplc2NvbnRleHQsIGJv b2wgb21pdF9xdW90ZXMsCiAJCQkJCQkJCSBib29sIGV4aXN0c19jb2VyY2UsCkBAIC0xNDEsNiAr MTQ0LDE4IEBAIHN0YXRpYyB2b2lkIEV4ZWNJbml0SnNvbkNvZXJjaW9uKEV4cHJTdGF0ZSAqc3Rh dGUsIEpzb25SZXR1cm5pbmcgKnJldHVybmluZywKICAqLwogRXhwclN0YXRlICoKIEV4ZWNJbml0 RXhwcihFeHByICpub2RlLCBQbGFuU3RhdGUgKnBhcmVudCkKK3sKKwlyZXR1cm4gRXhlY0luaXRF eHByRXh0ZW5kZWQobm9kZSwgcGFyZW50LCBOVUxMKTsKK30KKworLyoKKyAqIGVzY29udGV4dCBp cyBleHBlY3RlZCB0byBiZSBub24tTlVMTCBvbmx5IGZvciBleHByZXNzaW9uIG5vZGVzIHRoYXQg c3VwcG9ydAorICogc29mdCBlcnJvcnMuCisgKgorICogTm90IGFsbCBleHByZXNzaW9uIG5vZGVz IHN1cHBvcnQgdGhpczsgaWYgaW4gZG91YnQsIHBhc3MgTlVMTC4KKyAqLworRXhwclN0YXRlICoK K0V4ZWNJbml0RXhwckV4dGVuZGVkKEV4cHIgKm5vZGUsIFBsYW5TdGF0ZSAqcGFyZW50LCBOb2Rl ICplc2NvbnRleHQpCiB7CiAJRXhwclN0YXRlICAqc3RhdGU7CiAJRXhwckV2YWxTdGVwIHNjcmF0 Y2ggPSB7MH07CkBAIC0xNTQsNiArMTY5LDcgQEAgRXhlY0luaXRFeHByKEV4cHIgKm5vZGUsIFBs YW5TdGF0ZSAqcGFyZW50KQogCXN0YXRlLT5leHByID0gbm9kZTsKIAlzdGF0ZS0+cGFyZW50ID0g cGFyZW50OwogCXN0YXRlLT5leHRfcGFyYW1zID0gTlVMTDsKKwlzdGF0ZS0+ZXNjb250ZXh0ID0g KEVycm9yU2F2ZUNvbnRleHQgKikgZXNjb250ZXh0OwogCiAJLyogSW5zZXJ0IHNldHVwIHN0ZXBz IGFzIG5lZWRlZCAqLwogCUV4ZWNDcmVhdGVFeHByU2V0dXBTdGVwcyhzdGF0ZSwgKE5vZGUgKikg bm9kZSk7CkBAIC0xNzAxLDYgKzE3MTcsNyBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwg RXhwclN0YXRlICpzdGF0ZSwKIAogCQkJCWVsZW1zdGF0ZS0+aW5uZXJtb3N0X2Nhc2V2YWwgPSBw YWxsb2Nfb2JqZWN0KERhdHVtKTsKIAkJCQllbGVtc3RhdGUtPmlubmVybW9zdF9jYXNlbnVsbCA9 IHBhbGxvY19vYmplY3QoYm9vbCk7CisJCQkJZWxlbXN0YXRlLT5lc2NvbnRleHQgPSBzdGF0ZS0+ ZXNjb250ZXh0OwogCiAJCQkJRXhlY0luaXRFeHByUmVjKGFjb2VyY2UtPmVsZW1leHByLCBlbGVt c3RhdGUsCiAJCQkJCQkJCSZlbGVtc3RhdGUtPnJlc3ZhbHVlLCAmZWxlbXN0YXRlLT5yZXNudWxs KTsKQEAgLTIxNzYsNiArMjE5MywxNSBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9kZSwgRXhw clN0YXRlICpzdGF0ZSwKIAkJCQlicmVhazsKIAkJCX0KIAorCQljYXNlIFRfU2FmZVR5cGVDYXN0 RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlwZUNhc3RFeHByICpzdGNleHByID0gY2FzdE5vZGUoU2Fm ZVR5cGVDYXN0RXhwciwgbm9kZSk7CisKKwkJCQlFeGVjSW5pdFNhZmVUeXBlQ2FzdEV4cHIoc3Rj ZXhwciwgc3RhdGUsIHJlc3YsIHJlc251bGwsICZzY3JhdGNoKTsKKworCQkJCWJyZWFrOworCQkJ fQorCiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJQ29hbGVzY2VFeHByICpjb2Fs ZXNjZSA9IChDb2FsZXNjZUV4cHIgKikgbm9kZTsKQEAgLTI3MzYsNyArMjc2Miw4IEBAIEV4ZWNJ bml0RnVuYyhFeHByRXZhbFN0ZXAgKnNjcmF0Y2gsIEV4cHIgKm5vZGUsIExpc3QgKmFyZ3MsIE9p ZCBmdW5jaWQsCiAKIAkvKiBJbml0aWFsaXplIGZ1bmN0aW9uIGNhbGwgcGFyYW1ldGVyIHN0cnVj dHVyZSB0b28gKi8KIAlJbml0RnVuY3Rpb25DYWxsSW5mb0RhdGEoKmZjaW5mbywgZmxpbmZvLAot CQkJCQkJCSBuYXJncywgaW5wdXRjb2xsaWQsIE5VTEwsIE5VTEwpOworCQkJCQkJCSBuYXJncywg aW5wdXRjb2xsaWQsCisJCQkJCQkJIChOb2RlICopIHN0YXRlLT5lc2NvbnRleHQsIE5VTEwpOwog CiAJLyogS2VlcCBleHRyYSBjb3BpZXMgb2YgdGhpcyBpbmZvIHRvIHNhdmUgYW4gaW5kaXJlY3Rp b24gYXQgcnVudGltZSAqLwogCXNjcmF0Y2gtPmQuZnVuYy5mbl9hZGRyID0gZmxpbmZvLT5mbl9h ZGRyOwpAQCAtNDczNSw2ICs0NzYyLDU4IEBAIEV4ZWNCdWlsZFBhcmFtU2V0RXF1YWwoVHVwbGVE ZXNjIGRlc2MsCiAJcmV0dXJuIHN0YXRlOwogfQogCisvKgorICogUHVzaCBzdGVwcyB0byBldmFs dWF0ZSBhIFNhZmVUeXBlQ2FzdEV4cHIgYW5kIGl0cyB2YXJpb3VzIHN1YnNpZGlhcnkKKyAqIGV4 cHJlc3Npb25zLgorICovCitzdGF0aWMgdm9pZAorRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByKFNh ZmVUeXBlQ2FzdEV4cHIgKnN0Y2V4cHIsIEV4cHJTdGF0ZSAqc3RhdGUsCisJCQkJCQkgRGF0dW0g KnJlc3YsIGJvb2wgKnJlc251bGwsCisJCQkJCQkgRXhwckV2YWxTdGVwICpzY3JhdGNoKQorewor CS8qCisJICogQ2Fubm90IGNvZXJjZSB0byB0aGUgdGFyZ2V0IHR5cGUsIGZhbGwtYmFjayB0byB0 aGUgREVGQVVMVCBleHByZXNzaW9uCisJICogc3BlY2lmaWVkIGluIE9OIENPTlZFUlNJT04gRVJS T1IgY2xhdXNlLCBhbmQgd2UgYXJlIGRvbmUuCisJICovCisJaWYgKHN0Y2V4cHItPmNhc3RleHBy ID09IE5VTEwpCisJeworCQlFeGVjSW5pdEV4cHJSZWMoc3RjZXhwci0+ZGVmZXhwciwgc3RhdGUs IHJlc3YsIHJlc251bGwpOworCisJCXJldHVybjsKKwl9CisJZWxzZQorCXsKKwkJU2FmZVR5cGVD YXN0U3RhdGUgKnN0Y3N0YXRlID0gcGFsbG9jMF9vYmplY3QoU2FmZVR5cGVDYXN0U3RhdGUpOwor CQlFcnJvclNhdmVDb250ZXh0ICpzYXZlZF9lc2NvbnRleHQgPSBzdGF0ZS0+ZXNjb250ZXh0Owor CisJCXN0Y3N0YXRlLT5zdGNleHByID0gc3RjZXhwcjsKKwkJc3Rjc3RhdGUtPmVzY29udGV4dC50 eXBlID0gVF9FcnJvclNhdmVDb250ZXh0OworCQlzdGF0ZS0+ZXNjb250ZXh0ID0gJnN0Y3N0YXRl LT5lc2NvbnRleHQ7CisKKwkJLyogZXZhbHVhdGUgYXJndW1lbnQgZXhwcmVzc2lvbiBpbnRvIHN0 ZXAncyByZXN1bHQgYXJlYSAqLworCQlFeGVjSW5pdEV4cHJSZWMoc3RjZXhwci0+Y2FzdGV4cHIs IHN0YXRlLCByZXN2LCByZXNudWxsKTsKKwkJc2NyYXRjaC0+b3Bjb2RlID0gRUVPUF9TQUZFVFlQ RV9DQVNUOworCQlzY3JhdGNoLT5kLnN0Y2V4cHIuc3Rjc3RhdGUgPSBzdGNzdGF0ZTsKKwkJRXhw ckV2YWxQdXNoU3RlcChzdGF0ZSwgc2NyYXRjaCk7CisKKwkJLyoKKwkJICogU3RlcHMgdG8gZXZh bHVhdGUgdGhlIERFRkFVTFQgZXhwcmVzc2lvbi4gU2tpcCB0aGlzIHN0ZXAgZm9yIGJpbmFyeQor CQkgKiBjb2VyY2lvbiBjYXN0cy4gVGhlIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBub3QgZXZhbHVh dGVkIGluIGFuCisJCSAqIGVycm9yLXNhZmUgbWFubmVyLCBzdGF0ZS0+ZXNjb250ZXh0IG11c3Qg YmUgc2V0IHRvIE5VTEwuCisJCSAqLworCQlpZiAoIUlzQShzdGNleHByLT5jYXN0ZXhwciwgUmVs YWJlbFR5cGUpKQorCQl7CisJCQlzdGF0ZS0+ZXNjb250ZXh0ID0gTlVMTDsKKworCQkJRXhlY0lu aXRFeHByUmVjKHN0Y3N0YXRlLT5zdGNleHByLT5kZWZleHByLCBzdGF0ZSwgcmVzdiwgcmVzbnVs bCk7CisJCX0KKworCQlzdGF0ZS0+ZXNjb250ZXh0ID0gc2F2ZWRfZXNjb250ZXh0OworCisJCXN0 Y3N0YXRlLT5qdW1wX2VuZCA9IHN0YXRlLT5zdGVwc19sZW47CisJfQorfQorCiAvKgogICogUHVz aCBzdGVwcyB0byBldmFsdWF0ZSBhIEpzb25FeHByIGFuZCBpdHMgdmFyaW91cyBzdWJzaWRpYXJ5 IGV4cHJlc3Npb25zLgogICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVj RXhwckludGVycC5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRl eCBlMzI1MzU5ZTNmNi4uM2FlNWQ2MzNlMTQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNFeHBySW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJ bnRlcnAuYwpAQCAtNTY4LDYgKzU2OCw3IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3Rh dGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkmJkNBU0VfRUVPUF9Y TUxFWFBSLAogCQkmJkNBU0VfRUVPUF9KU09OX0NPTlNUUlVDVE9SLAogCQkmJkNBU0VfRUVPUF9J U19KU09OLAorCQkmJkNBU0VfRUVPUF9TQUZFVFlQRV9DQVNULAogCQkmJkNBU0VfRUVPUF9KU09O RVhQUl9QQVRILAogCQkmJkNBU0VfRUVPUF9KU09ORVhQUl9DT0VSQ0lPTiwKIAkJJiZDQVNFX0VF T1BfSlNPTkVYUFJfQ09FUkNJT05fRklOSVNILApAQCAtMTkyNiw2ICsxOTI3LDI4IEBAIEV4ZWNJ bnRlcnBFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAq aXNudWxsKQogCQkJRUVPX05FWFQoKTsKIAkJfQogCisJCUVFT19DQVNFKEVFT1BfU0FGRVRZUEVf Q0FTVCkKKwkJeworCQkJU2FmZVR5cGVDYXN0U3RhdGUgKnN0Y3N0YXRlID0gb3AtPmQuc3RjZXhw ci5zdGNzdGF0ZTsKKworCQkJaWYgKCFTT0ZUX0VSUk9SX09DQ1VSUkVEKCZzdGNzdGF0ZS0+ZXNj b250ZXh0KSkKKwkJCQlFRU9fSlVNUChzdGNzdGF0ZS0+anVtcF9lbmQpOworCQkJZWxzZQorCQkJ eworCQkJCSpvcC0+cmVzdmFsdWUgPSAoRGF0dW0pIDA7CisJCQkJKm9wLT5yZXNudWxsID0gdHJ1 ZTsKKworCQkJCS8qCisJCQkJICogUmVzZXQgZm9yIG5leHQgdXNlIHN1Y2ggYXMgZm9yIGNhdGNo aW5nIGVycm9ycyB3aGVuCisJCQkJICogY29lcmNpbmcgYSBleHByZXNzaW9uLgorCQkJCSAqLwor CQkJCXN0Y3N0YXRlLT5lc2NvbnRleHQuZXJyb3Jfb2NjdXJyZWQgPSBmYWxzZTsKKwkJCQlzdGNz dGF0ZS0+ZXNjb250ZXh0LmRldGFpbHNfd2FudGVkID0gZmFsc2U7CisKKwkJCQlFRU9fTkVYVCgp OworCQkJfQorCQl9CisKIAkJRUVPX0NBU0UoRUVPUF9KU09ORVhQUl9QQVRIKQogCQl7CiAJCQkv KiB0b28gY29tcGxleCBmb3IgYW4gaW5saW5lIGltcGxlbWVudGF0aW9uICovCkBAIC0zNjQ0LDYg KzM2NjcsMTIgQEAgRXhlY0V2YWxBcnJheUNvZXJjZShFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZh bFN0ZXAgKm9wLCBFeHByQ29udGV4dCAqZWNvbnRleHQpCiAJCQkJCQkJICBlY29udGV4dCwKIAkJ CQkJCQkgIG9wLT5kLmFycmF5Y29lcmNlLnJlc3VsdGVsZW10eXBlLAogCQkJCQkJCSAgb3AtPmQu YXJyYXljb2VyY2UuYW1zdGF0ZSk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChvcC0+ZC5h cnJheWNvZXJjZS5lbGVtZXhwcnN0YXRlLT5lc2NvbnRleHQpKQorCXsKKwkJKm9wLT5yZXN2YWx1 ZSA9IChEYXR1bSkgMDsKKwkJKm9wLT5yZXNudWxsID0gdHJ1ZTsKKwl9CiB9CiAKIC8qCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9qaXQvbGx2bS9sbHZtaml0X2V4cHIuYyBiL3NyYy9iYWNrZW5k L2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jCmluZGV4IDY1MGYxZDQyYTkzLi5hZDRiNzRiMWFjOCAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKKysrIGIvc3Jj L2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKQEAgLTIyNTYsNiArMjI1NiwzMyBAQCBs bHZtX2NvbXBpbGVfZXhwcihFeHByU3RhdGUgKnN0YXRlKQogCQkJCUxMVk1CdWlsZEJyKGIsIG9w YmxvY2tzW29wbm8gKyAxXSk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgRUVPUF9TQUZFVFlQRV9D QVNUOgorCQkJCXsKKwkJCQkJU2FmZVR5cGVDYXN0U3RhdGUgKnN0Y3N0YXRlID0gb3AtPmQuc3Rj ZXhwci5zdGNzdGF0ZTsKKworCQkJCQlpZiAoIVNPRlRfRVJST1JfT0NDVVJSRUQoJnN0Y3N0YXRl LT5lc2NvbnRleHQpKQorCQkJCQkJTExWTUJ1aWxkQnIoYiwgb3BibG9ja3Nbc3Rjc3RhdGUtPmp1 bXBfZW5kXSk7CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJLyoKKwkJCQkJCSAqIFJlc2V0IGZv ciBuZXh0IHVzZSBzdWNoIGFzIGZvciBjYXRjaGluZyBlcnJvcnMgd2hlbgorCQkJCQkJICogY29l cmNpbmcgYSBleHByZXNzaW9uLgorCQkJCQkJICovCisJCQkJCQlzdGNzdGF0ZS0+ZXNjb250ZXh0 LmVycm9yX29jY3VycmVkID0gZmFsc2U7CisJCQkJCQlzdGNzdGF0ZS0+ZXNjb250ZXh0LmRldGFp bHNfd2FudGVkID0gZmFsc2U7CisKKwkJCQkJCS8qIHNldCByZXNudWxsIHRvIHRydWUgKi8KKwkJ CQkJCUxMVk1CdWlsZFN0b3JlKGIsIGxfc2Jvb2xfY29uc3QoMSksIHZfcmVzbnVsbHApOworCisJ CQkJCQkvKiByZXNldCByZXN2YWx1ZSAqLworCQkJCQkJTExWTUJ1aWxkU3RvcmUoYiwgbF9kYXR1 bV9jb25zdCgwKSwgdl9yZXN2YWx1ZXApOworCisJCQkJCQlMTFZNQnVpbGRCcihiLCBvcGJsb2Nr c1tvcG5vICsgMV0pOworCQkJCQl9CisKKwkJCQkJYnJlYWs7CisJCQkJfQorCiAJCQljYXNlIEVF T1BfSlNPTkVYUFJfUEFUSDoKIAkJCQl7CiAJCQkJCUpzb25FeHByU3RhdGUgKmpzZXN0YXRlID0g b3AtPmQuanNvbmV4cHIuanNlc3RhdGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9ub2Rlcy9u b2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmluZGV4IGQyOTY2NGNh NWQ0Li42YzY4OWMyN2U2OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNz LmMKKysrIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTIwNiw2ICsyMDYsOSBA QCBleHByVHlwZShjb25zdCBOb2RlICpleHByKQogCQljYXNlIFRfUm93Q29tcGFyZUV4cHI6CiAJ CQl0eXBlID0gQk9PTE9JRDsKIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoK KwkJCXR5cGUgPSAoKGNvbnN0IFNhZmVUeXBlQ2FzdEV4cHIgKikgZXhwciktPnJlc3VsdHR5cGU7 CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXR5cGUgPSAoKGNvbnN0IENv YWxlc2NlRXhwciAqKSBleHByKS0+Y29hbGVzY2V0eXBlOwogCQkJYnJlYWs7CkBAIC00NTAsNiAr NDUzLDggQEAgZXhwclR5cG1vZChjb25zdCBOb2RlICpleHByKQogCQkJCXJldHVybiB0eXBtb2Q7 CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJCQlyZXR1cm4g KChjb25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHR0eXBtb2Q7CiAJCWNhc2Ug VF9Db2FsZXNjZUV4cHI6CiAJCQl7CiAJCQkJLyoKQEAgLTk2NSw2ICs5NzAsOSBAQCBleHByQ29s bGF0aW9uKGNvbnN0IE5vZGUgKmV4cHIpCiAJCQkvKiBSb3dDb21wYXJlRXhwcidzIHJlc3VsdCBp cyBib29sZWFuIC4uLiAqLwogCQkJY29sbCA9IEludmFsaWRPaWQ7CS8qIC4uLiBzbyBpdCBoYXMg bm8gY29sbGF0aW9uICovCiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2FzdEV4cHI6CisJ CQljb2xsID0gKChjb25zdCBTYWZlVHlwZUNhc3RFeHByICopIGV4cHIpLT5yZXN1bHRjb2xsaWQ7 CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCWNvbGwgPSAoKGNvbnN0IENv YWxlc2NlRXhwciAqKSBleHByKS0+Y29hbGVzY2Vjb2xsaWQ7CiAJCQlicmVhazsKQEAgLTEyMzIs NiArMTI0MCw5IEBAIGV4cHJTZXRDb2xsYXRpb24oTm9kZSAqZXhwciwgT2lkIGNvbGxhdGlvbikK IAkJCS8qIFJvd0NvbXBhcmVFeHByJ3MgcmVzdWx0IGlzIGJvb2xlYW4gLi4uICovCiAJCQlBc3Nl cnQoIU9pZElzVmFsaWQoY29sbGF0aW9uKSk7IC8qIC4uLiBzbyBuZXZlciBzZXQgYSBjb2xsYXRp b24gKi8KIAkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCSgoU2FmZVR5 cGVDYXN0RXhwciAqKSBleHByKS0+cmVzdWx0Y29sbGlkID0gY29sbGF0aW9uOworCQkJYnJlYWs7 CiAJCWNhc2UgVF9Db2FsZXNjZUV4cHI6CiAJCQkoKENvYWxlc2NlRXhwciAqKSBleHByKS0+Y29h bGVzY2Vjb2xsaWQgPSBjb2xsYXRpb247CiAJCQlicmVhazsKQEAgLTE1NTAsNiArMTU2MSw5IEBA IGV4cHJMb2NhdGlvbihjb25zdCBOb2RlICpleHByKQogCQkJLyoganVzdCB1c2UgbGVmdG1vc3Qg YXJndW1lbnQncyBsb2NhdGlvbiAqLwogCQkJbG9jID0gZXhwckxvY2F0aW9uKChOb2RlICopICgo Y29uc3QgUm93Q29tcGFyZUV4cHIgKikgZXhwciktPmxhcmdzKTsKIAkJCWJyZWFrOworCQljYXNl IFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCWxvYyA9ICgoY29uc3QgU2FmZVR5cGVDYXN0RXhwciAq KSBleHByKS0+bG9jYXRpb247CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJ CS8qIENPQUxFU0NFIGtleXdvcmQgc2hvdWxkIGFsd2F5cyBiZSB0aGUgZmlyc3QgdGhpbmcgKi8K IAkJCWxvYyA9ICgoY29uc3QgQ29hbGVzY2VFeHByICopIGV4cHIpLT5sb2NhdGlvbjsKQEAgLTIz MjQsNiArMjMzOCwxOCBAQCBleHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwK IAkJCQkJcmV0dXJuIHRydWU7CiAJCQl9CiAJCQlicmVhazsKKwkJY2FzZSBUX1NhZmVUeXBlQ2Fz dEV4cHI6CisJCQl7CisJCQkJU2FmZVR5cGVDYXN0RXhwciAqc3RjZXhwciA9IGNhc3ROb2RlKFNh ZmVUeXBlQ2FzdEV4cHIsIG5vZGUpOworCisJCQkJaWYgKFdBTEsoc3RjZXhwci0+c291cmNlKSkK KwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc3RjZXhwci0+Y2FzdGV4cHIpKQorCQkJ CQlyZXR1cm4gdHJ1ZTsKKwkJCQlpZiAoV0FMSyhzdGNleHByLT5kZWZleHByKSkKKwkJCQkJcmV0 dXJuIHRydWU7CisJCQl9CisJCQlicmVhazsKIAkJY2FzZSBUX0NvYWxlc2NlRXhwcjoKIAkJCXJl dHVybiBXQUxLKCgoQ29hbGVzY2VFeHByICopIG5vZGUpLT5hcmdzKTsKIAkJY2FzZSBUX01pbk1h eEV4cHI6CkBAIC0zMzMzLDYgKzMzNTksMTkgQEAgZXhwcmVzc2lvbl90cmVlX211dGF0b3JfaW1w bChOb2RlICpub2RlLAogCQkJCXJldHVybiAoTm9kZSAqKSBuZXdub2RlOwogCQkJfQogCQkJYnJl YWs7CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4 cHIgKnN0Y2V4cHIgPSBjYXN0Tm9kZShTYWZlVHlwZUNhc3RFeHByLCBub2RlKTsKKwkJCQlTYWZl VHlwZUNhc3RFeHByICpuZXdub2RlOworCisJCQkJRkxBVENPUFkobmV3bm9kZSwgc3RjZXhwciwg U2FmZVR5cGVDYXN0RXhwcik7CisJCQkJTVVUQVRFKG5ld25vZGUtPnNvdXJjZSwgc3RjZXhwci0+ c291cmNlLCBFeHByICopOworCQkJCU1VVEFURShuZXdub2RlLT5jYXN0ZXhwciwgc3RjZXhwci0+ Y2FzdGV4cHIsIEV4cHIgKik7CisJCQkJTVVUQVRFKG5ld25vZGUtPmRlZmV4cHIsIHN0Y2V4cHIt PmRlZmV4cHIsIEV4cHIgKik7CisKKwkJCQlyZXR1cm4gKE5vZGUgKikgbmV3bm9kZTsKKwkJCX0K KwkJCWJyZWFrOwogCQljYXNlIFRfQ29hbGVzY2VFeHByOgogCQkJewogCQkJCUNvYWxlc2NlRXhw ciAqY29hbGVzY2VleHByID0gKENvYWxlc2NlRXhwciAqKSBub2RlOwpAQCAtNDQ2NSw2ICs0NTA0 LDIwIEBAIHJhd19leHByZXNzaW9uX3RyZWVfd2Fsa2VyX2ltcGwoTm9kZSAqbm9kZSwKIAkJCQkJ cmV0dXJuIHRydWU7CiAJCQkJaWYgKFdBTEsodGMtPnR5cGVOYW1lKSkKIAkJCQkJcmV0dXJuIHRy dWU7CisJCQkJaWYgKFdBTEsodGMtPmRlZmV4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCX0K KwkJCWJyZWFrOworCQljYXNlIFRfU2FmZVR5cGVDYXN0RXhwcjoKKwkJCXsKKwkJCQlTYWZlVHlw ZUNhc3RFeHByICpzdGNleHByID0gY2FzdE5vZGUoU2FmZVR5cGVDYXN0RXhwciwgbm9kZSk7CisK KwkJCQlpZiAoV0FMSyhzdGNleHByLT5zb3VyY2UpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKKwkJCQlp ZiAoV0FMSyhzdGNleHByLT5jYXN0ZXhwcikpCisJCQkJCXJldHVybiB0cnVlOworCQkJCWlmIChX QUxLKHN0Y2V4cHItPmRlZmV4cHIpKQorCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFr OwogCQljYXNlIFRfQ29sbGF0ZUNsYXVzZToKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL29wdGlt aXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMu YwppbmRleCAzOWQzNTgyN2MzNS4uN2VmM2FkOGI5NDUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMKQEAgLTI0NDcsNyArMjQ0Nyw4IEBAIGVzdGltYXRlX2V4cHJlc3Npb25fdmFs dWUoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAJKChOb2RlICopIGV2YWx1YXRlX2V4 cHIoKEV4cHIgKikgKG5vZGUpLCBcCiAJCQkJCQkJZXhwclR5cGUoKE5vZGUgKikgKG5vZGUpKSwg XAogCQkJCQkJCWV4cHJUeXBtb2QoKE5vZGUgKikgKG5vZGUpKSwgXAotCQkJCQkJCWV4cHJDb2xs YXRpb24oKE5vZGUgKikgKG5vZGUpKSkpCisJCQkJCQkJZXhwckNvbGxhdGlvbigoTm9kZSAqKSAo bm9kZSkpLCBcCisJCQkJCQkJTlVMTCkpCiAKIC8qCiAgKiBSZWN1cnNpdmUgZ3V0cyBvZiBldmFs X2NvbnN0X2V4cHJlc3Npb25zL2VzdGltYXRlX2V4cHJlc3Npb25fdmFsdWUKQEAgLTI5NTgsNiAr Mjk1OSwzNCBAQCBldmFsX2NvbnN0X2V4cHJlc3Npb25zX211dGF0b3IoTm9kZSAqbm9kZSwKIAkJ CQkJCQkJCQkJCSAgY29weU9iamVjdChqdmUtPmZvcm1hdCkpOwogCQkJfQogCisJCWNhc2UgVF9T YWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIgKnN0YyA9IGNhc3RO b2RlKFNhZmVUeXBlQ2FzdEV4cHIsIG5vZGUpOworCisJCQkJU2FmZVR5cGVDYXN0RXhwciAqbmV3 ZXhwcjsKKwkJCQlOb2RlCSAgICpzb3VyY2UgPSAoTm9kZSAqKSBzdGMtPnNvdXJjZTsKKwkJCQlO b2RlCSAgICpkZWZleHByID0gKE5vZGUgKikgc3RjLT5kZWZleHByOworCisJCQkJc291cmNlID0g ZXZhbF9jb25zdF9leHByZXNzaW9uc19tdXRhdG9yKHNvdXJjZSwKKwkJCQkJCQkJCQkJCQkJY29u dGV4dCk7CisJCQkJZGVmZXhwciA9IGV2YWxfY29uc3RfZXhwcmVzc2lvbnNfbXV0YXRvcihkZWZl eHByLAorCQkJCQkJCQkJCQkJCQkgY29udGV4dCk7CisKKwkJCQkvKgorCQkJCSAqIFdlIG11c3Qg bm90IHJlZHVjZSBhbnkgcmVjb2duaXphYmx5IGNvbnN0YW50IHN1YmV4cHJlc3Npb25zCisJCQkJ ICogaW4gY2FzdGV4cHIsIHNpbmNlIHdlIGRvbuKAmXQgd2FudCBpdCB0byBmYWlsIHByZW1hdHVy ZWx5LgorCQkJCSAqLworCQkJCW5ld2V4cHIgPSBtYWtlTm9kZShTYWZlVHlwZUNhc3RFeHByKTsK KwkJCQluZXdleHByLT5zb3VyY2UgPSAoRXhwciAqKSBzb3VyY2U7CisJCQkJbmV3ZXhwci0+Y2Fz dGV4cHIgPSAoRXhwciAqKSBzdGMtPmNhc3RleHByOworCQkJCW5ld2V4cHItPmRlZmV4cHIgPSAo RXhwciAqKSBkZWZleHByOworCQkJCW5ld2V4cHItPnJlc3VsdHR5cGUgPSBzdGMtPnJlc3VsdHR5 cGU7CisJCQkJbmV3ZXhwci0+cmVzdWx0dHlwbW9kID0gc3RjLT5yZXN1bHR0eXBtb2Q7CisJCQkJ bmV3ZXhwci0+cmVzdWx0Y29sbGlkID0gc3RjLT5yZXN1bHRjb2xsaWQ7CisKKwkJCQlyZXR1cm4g KE5vZGUgKikgbmV3ZXhwcjsKKwkJCX0KKwogCQljYXNlIFRfU3ViUGxhbjoKIAkJY2FzZSBUX0Fs dGVybmF0aXZlU3ViUGxhbjoKIApAQCAtMzM4OCw3ICszNDE3LDggQEAgZXZhbF9jb25zdF9leHBy ZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiAoTm9kZSAqKSBldmFsdWF0 ZV9leHByKChFeHByICopIHN2ZiwKIAkJCQkJCQkJCQkJCSAgc3ZmLT50eXBlLAogCQkJCQkJCQkJ CQkJICBzdmYtPnR5cG1vZCwKLQkJCQkJCQkJCQkJCSAgSW52YWxpZE9pZCk7CisJCQkJCQkJCQkJ CQkgIEludmFsaWRPaWQsCisJCQkJCQkJCQkJCQkgIE5VTEwpOwogCQkJCWVsc2UKIAkJCQkJcmV0 dXJuIGNvcHlPYmplY3QoKE5vZGUgKikgc3ZmKTsKIAkJCX0KQEAgLTQ4MjgsNyArNDg1OCw3IEBA IGV2YWx1YXRlX2Z1bmN0aW9uKE9pZCBmdW5jaWQsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVz dWx0X3R5cG1vZCwKIAluZXdleHByLT5sb2NhdGlvbiA9IC0xOwogCiAJcmV0dXJuIGV2YWx1YXRl X2V4cHIoKEV4cHIgKikgbmV3ZXhwciwgcmVzdWx0X3R5cGUsIHJlc3VsdF90eXBtb2QsCi0JCQkJ CQkgcmVzdWx0X2NvbGxpZCk7CisJCQkJCQkgcmVzdWx0X2NvbGxpZCwgTlVMTCk7CiB9CiAKIC8q CkBAIC01MjgyLDEwICs1MzEyLDE0IEBAIHNxbF9pbmxpbmVfZXJyb3JfY2FsbGJhY2sodm9pZCAq YXJnKQogICoKICAqIFdlIHVzZSB0aGUgZXhlY3V0b3IncyByb3V0aW5lIEV4ZWNFdmFsRXhwcigp IHRvIGF2b2lkIGR1cGxpY2F0aW9uIG9mCiAgKiBjb2RlIGFuZCBlbnN1cmUgd2UgZ2V0IHRoZSBz YW1lIHJlc3VsdCBhcyB0aGUgZXhlY3V0b3Igd291bGQgZ2V0LgorICoKKyAqIFdoZW4gZXNjb250 ZXh0IGlzIG5vdCBOVUxMLCB3ZSB3aWxsIGV2YWx1YXRlIHRoZSBjb25zdGFudCBleHByZXNzaW9u IGluIGEKKyAqIGVycm9yIHNhZmUgd2F5LiBJZiBldmFsdWF0aW9uIGZhaWxzLCByZXR1cm4gTlVM TCBpbnN0ZWFkIG9mIHRocm93aW5nIGFuCisgKiBlcnJvci4KICAqLwogRXhwciAqCiBldmFsdWF0 ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwK LQkJCSAgT2lkIHJlc3VsdF9jb2xsYXRpb24pCisJCQkgIE9pZCByZXN1bHRfY29sbGF0aW9uLCBO b2RlICplc2NvbnRleHQpCiB7CiAJRVN0YXRlCSAgICplc3RhdGU7CiAJRXhwclN0YXRlICAqZXhw cnN0YXRlOwpAQCAtNTMxMCw3ICs1MzQ0LDcgQEAgZXZhbHVhdGVfZXhwcihFeHByICpleHByLCBP aWQgcmVzdWx0X3R5cGUsIGludDMyIHJlc3VsdF90eXBtb2QsCiAJICogUHJlcGFyZSBleHByIGZv ciBleGVjdXRpb24uICAoTm90ZTogd2UgY2FuJ3QgdXNlIEV4ZWNQcmVwYXJlRXhwcgogCSAqIGJl Y2F1c2UgaXQnZCByZXN1bHQgaW4gcmVjdXJzaXZlbHkgaW52b2tpbmcgZXZhbF9jb25zdF9leHBy ZXNzaW9ucy4pCiAJICovCi0JZXhwcnN0YXRlID0gRXhlY0luaXRFeHByKGV4cHIsIE5VTEwpOwor CWV4cHJzdGF0ZSA9IEV4ZWNJbml0RXhwckV4dGVuZGVkKGV4cHIsIE5VTEwsIGVzY29udGV4dCk7 CiAKIAkvKgogCSAqIEFuZCBldmFsdWF0ZSBpdC4KQEAgLTUzMzAsNiArNTM2NCwxMyBAQCBldmFs dWF0ZV9leHByKEV4cHIgKmV4cHIsIE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1v ZCwKIAkvKiBHZXQgYmFjayB0byBvdXRlciBtZW1vcnkgY29udGV4dCAqLwogCU1lbW9yeUNvbnRl eHRTd2l0Y2hUbyhvbGRjb250ZXh0KTsKIAorCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGV4cHJz dGF0ZS0+ZXNjb250ZXh0KSkKKwl7CisJCUZyZWVFeGVjdXRvclN0YXRlKGVzdGF0ZSk7CisKKwkJ cmV0dXJuIE5VTEw7CisJfQorCiAJLyoKIAkgKiBNdXN0IGNvcHkgcmVzdWx0IG91dCBvZiBzdWIt Y29udGV4dCB1c2VkIGJ5IGV4cHJlc3Npb24gZXZhbC4KIAkgKgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggNzEz ZWU1YzEwYTIuLjhhZjk3NGZkN2U1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTE1OCw2ICsxNTgsOCBAQCBz dGF0aWMgdm9pZCB1cGRhdGVSYXdTdG10RW5kKFJhd1N0bXQgKnJzLCBpbnQgZW5kX2xvY2F0aW9u KTsKIHN0YXRpYyBOb2RlICptYWtlQ29sdW1uUmVmKGNoYXIgKmNvbG5hbWUsIExpc3QgKmluZGly ZWN0aW9uLAogCQkJCQkJICAgaW50IGxvY2F0aW9uLCBjb3JlX3l5c2Nhbl90IHl5c2Nhbm5lcik7 CiBzdGF0aWMgTm9kZSAqbWFrZVR5cGVDYXN0KE5vZGUgKmFyZywgVHlwZU5hbWUgKnR5cGVuYW1l LCBpbnQgbG9jYXRpb24pOworc3RhdGljIE5vZGUgKm1ha2VUeXBlQ2FzdFdpdGhEZWZhdWx0KE5v ZGUgKmFyZywgVHlwZU5hbWUgKnR5cGVuYW1lLAorCQkJCQkJCQkJIE5vZGUgKnJhd19kZWZhdWx0 LCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKm1ha2VTdHJpbmdDb25zdENhc3QoY2hhciAq c3RyLCBpbnQgbG9jYXRpb24sIFR5cGVOYW1lICp0eXBlbmFtZSk7CiBzdGF0aWMgTm9kZSAqbWFr ZUludENvbnN0KGludCB2YWwsIGludCBsb2NhdGlvbik7CiBzdGF0aWMgTm9kZSAqbWFrZUZsb2F0 Q29uc3QoY2hhciAqc3RyLCBpbnQgbG9jYXRpb24pOwpAQCAtMTYwNzAsNiArMTYwNzIsMTIgQEAg ZnVuY19leHByX2NvbW1vbl9zdWJleHByOgogCQkJCX0KIAkJCXwgQ0FTVCAnKCcgYV9leHByIEFT IFR5cGVuYW1lICcpJwogCQkJCXsgJCQgPSBtYWtlVHlwZUNhc3QoJDMsICQ1LCBAMSk7IH0KKwkJ CXwgQ0FTVCAnKCcgYV9leHByIEFTIFR5cGVuYW1lIEVSUk9SX1AgT04gQ09OVkVSU0lPTl9QIEVS Uk9SX1AgJyknCisJCQkJeyAkJCA9IG1ha2VUeXBlQ2FzdCgkMywgJDUsIEAxKTsgfQorCQkJfCBD QVNUICcoJyBhX2V4cHIgQVMgVHlwZW5hbWUgTlVMTF9QIE9OIENPTlZFUlNJT05fUCBFUlJPUl9Q ICcpJworCQkJCXsgJCQgPSBtYWtlVHlwZUNhc3RXaXRoRGVmYXVsdCgkMywgJDUsIG1ha2VOdWxs QUNvbnN0KC0xKSwgQDEpOyB9CisJCQl8IENBU1QgJygnIGFfZXhwciBBUyBUeXBlbmFtZSBERUZB VUxUIGFfZXhwciBPTiBDT05WRVJTSU9OX1AgRVJST1JfUCAnKScKKwkJCQl7ICQkID0gbWFrZVR5 cGVDYXN0V2l0aERlZmF1bHQoJDMsICQ1LCAkNywgQDEpOyB9CiAJCQl8IEVYVFJBQ1QgJygnIGV4 dHJhY3RfbGlzdCAnKScKIAkJCQl7CiAJCQkJCSQkID0gKE5vZGUgKikgbWFrZUZ1bmNDYWxsKFN5 c3RlbUZ1bmNOYW1lKCJleHRyYWN0IiksCkBAIC0xOTAwMSwxMCArMTkwMDksMjUgQEAgbWFrZVR5 cGVDYXN0KE5vZGUgKmFyZywgVHlwZU5hbWUgKnR5cGVuYW1lLCBpbnQgbG9jYXRpb24pCiAKIAlu LT5hcmcgPSBhcmc7CiAJbi0+dHlwZU5hbWUgPSB0eXBlbmFtZTsKKwluLT5kZWZleHByID0gTlVM TDsKIAluLT5sb2NhdGlvbiA9IGxvY2F0aW9uOwogCXJldHVybiAoTm9kZSAqKSBuOwogfQogCitz dGF0aWMgTm9kZSAqCittYWtlVHlwZUNhc3RXaXRoRGVmYXVsdChOb2RlICphcmcsIFR5cGVOYW1l ICp0eXBlbmFtZSwgTm9kZSAqZGVmZXhwciwKKwkJCQkJCWludCBsb2NhdGlvbikKK3sKKwlUeXBl Q2FzdCAgICpuID0gbWFrZU5vZGUoVHlwZUNhc3QpOworCisJbi0+YXJnID0gYXJnOworCW4tPnR5 cGVOYW1lID0gdHlwZW5hbWU7CisJbi0+ZGVmZXhwciA9IGRlZmV4cHI7CisJbi0+bG9jYXRpb24g PSBsb2NhdGlvbjsKKworCXJldHVybiAoTm9kZSAqKSBuOworfQorCiBzdGF0aWMgTm9kZSAqCiBt YWtlU3RyaW5nQ29uc3RDYXN0KGNoYXIgKnN0ciwgaW50IGxvY2F0aW9uLCBUeXBlTmFtZSAqdHlw ZW5hbWUpCiB7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggMjVlZTBmODdkOTMuLjBlMTA2ZmRm Y2VkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKKysrIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCkBAIC00OTAsNiArNDkwLDEyIEBAIGNoZWNrX2Fn Z2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByKQog CQkJCWVyciA9IF8oImdyb3VwaW5nIG9wZXJhdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNoZWNr IGNvbnN0cmFpbnRzIik7CiAKIAkJCWJyZWFrOworCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFV TFQ6CisJCQlpZiAoaXNBZ2cpCisJCQkJZXJyID0gXygiYWdncmVnYXRlIGZ1bmN0aW9ucyBhcmUg bm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Npb25zIik7CisJCQllbHNlCisJCQkJ ZXJyID0gXygiZ3JvdXBpbmcgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZB VUxUIGV4cHJlc3Npb25zIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RF RkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAKQEAgLTk4Myw2ICs5 ODksOSBAQCB0cmFuc2Zvcm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRv d0Z1bmMgKndmdW5jLAogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQllcnIgPSBf KCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBjaGVjayBjb25zdHJhaW50cyIp OwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0NBU1RfREVGQVVMVDoKKwkJCWVyciA9IF8o IndpbmRvdyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHByZXNz aW9ucyIpOworCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQlj YXNlIEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgogCQkJZXJyID0gXygid2luZG93IGZ1bmN0 aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L3BhcnNlX2NvZXJjZS5jCmluZGV4IDkxM2NhNTM2NjZmLi5lMGYzNzA2ZTExOSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2NvZXJjZS5jCisrKyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9jb2VyY2UuYwpAQCAtODEsNiArODEsMzEgQEAgY29lcmNlX3RvX3RhcmdldF90 eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgT2lkIGV4cHJ0eXBlLAogCQkJCQkg IENvZXJjaW9uQ29udGV4dCBjY29udGV4dCwKIAkJCQkJICBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwK IAkJCQkJICBpbnQgbG9jYXRpb24pCit7CisJcmV0dXJuIGNvZXJjZV90b190YXJnZXRfdHlwZV9l eHRlbmRlZChwc3RhdGUsCisJCQkJCQkJCQkJICBleHByLAorCQkJCQkJCQkJCSAgZXhwcnR5cGUs CisJCQkJCQkJCQkJICB0YXJnZXR0eXBlLAorCQkJCQkJCQkJCSAgdGFyZ2V0dHlwbW9kLAorCQkJ CQkJCQkJCSAgY2NvbnRleHQsCisJCQkJCQkJCQkJICBjZm9ybWF0LAorCQkJCQkJCQkJCSAgbG9j YXRpb24sCisJCQkJCQkJCQkJICBOVUxMKTsKK30KKworLyoKKyAqIGVzY29udGV4dDogSWYgbm90 IE5VTEwsIGV4cHIgbWF5IGJlIGNvZXJjZWQgdG8gdGhlCisgKiB0YXJnZXQgdHlwZSBpbiBhbiBl cnJvci1zYWZlIHdheS4gSWYgaXQgZmFpbHMsIE5VTEwgaXMgcmV0dXJuZWQuCisgKgorICogRm9y IG90aGVyIHBhcmFtZXRlcnMsIHNlZSBhYm92ZSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUuCisgKi8K K05vZGUgKgorY29lcmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVkKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTm9kZSAqZXhwciwgT2lkIGV4cHJ0eXBlLAorCQkJCQkJCSAgIE9pZCB0YXJnZXR0eXBlLCBp bnQzMiB0YXJnZXR0eXBtb2QsCisJCQkJCQkJICAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LAor CQkJCQkJCSAgIENvZXJjaW9uRm9ybSBjZm9ybWF0LAorCQkJCQkJCSAgIGludCBsb2NhdGlvbiwK KwkJCQkJCQkgICBOb2RlICplc2NvbnRleHQpCiB7CiAJTm9kZQkgICAqcmVzdWx0OwogCU5vZGUJ ICAgKm9yaWdleHByOwpAQCAtMTAyLDkgKzEyNywxMiBAQCBjb2VyY2VfdG9fdGFyZ2V0X3R5cGUo UGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBPaWQgZXhwcnR5cGUsCiAJd2hpbGUgKGV4 cHIgJiYgSXNBKGV4cHIsIENvbGxhdGVFeHByKSkKIAkJZXhwciA9IChOb2RlICopICgoQ29sbGF0 ZUV4cHIgKikgZXhwciktPmFyZzsKIAotCXJlc3VsdCA9IGNvZXJjZV90eXBlKHBzdGF0ZSwgZXhw ciwgZXhwcnR5cGUsCi0JCQkJCQkgdGFyZ2V0dHlwZSwgdGFyZ2V0dHlwbW9kLAotCQkJCQkJIGNj b250ZXh0LCBjZm9ybWF0LCBsb2NhdGlvbik7CisJcmVzdWx0ID0gY29lcmNlX3R5cGVfZXh0ZW5k ZWQocHN0YXRlLCBleHByLCBleHBydHlwZSwKKwkJCQkJCQkJICB0YXJnZXR0eXBlLCB0YXJnZXR0 eXBtb2QsCisJCQkJCQkJCSAgY2NvbnRleHQsIGNmb3JtYXQsIGxvY2F0aW9uLAorCQkJCQkJCQkg IGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0 dXJuIE5VTEw7CiAKIAkvKgogCSAqIElmIHRoZSB0YXJnZXQgaXMgYSBmaXhlZC1sZW5ndGggdHlw ZSwgaXQgbWF5IG5lZWQgYSBsZW5ndGggY29lcmNpb24gYXMKQEAgLTE1OCw2ICsxODYsMTcgQEAg Tm9kZSAqCiBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCiAJCQlP aWQgaW5wdXRUeXBlSWQsIE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCiAJ CQlDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9uRm9ybSBjZm9ybWF0LCBpbnQgbG9j YXRpb24pCit7CisJcmV0dXJuIGNvZXJjZV90eXBlX2V4dGVuZGVkKHBzdGF0ZSwgbm9kZSwKKwkJ CQkJCQkJaW5wdXRUeXBlSWQsIHRhcmdldFR5cGVJZCwgdGFyZ2V0VHlwZU1vZCwKKwkJCQkJCQkJ Y2NvbnRleHQsIGNmb3JtYXQsIGxvY2F0aW9uLCBOVUxMKTsKK30KKworTm9kZSAqCitjb2VyY2Vf dHlwZV9leHRlbmRlZChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKm5vZGUsCisJCQkJCSBPaWQg aW5wdXRUeXBlSWQsIE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCisJCQkJ CSBDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQsIENvZXJjaW9uRm9ybSBjZm9ybWF0LAorCQkJCQkg aW50IGxvY2F0aW9uLCBOb2RlICplc2NvbnRleHQpCiB7CiAJTm9kZQkgICAqcmVzdWx0OwogCUNv ZXJjaW9uUGF0aFR5cGUgcGF0aHR5cGU7CkBAIC0yNTYsNiArMjk1LDggQEAgY29lcmNlX3R5cGUo UGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpub2RlLAogCQlpbnQzMgkJaW5wdXRUeXBlTW9kOwog CQlUeXBlCQliYXNlVHlwZTsKIAkJUGFyc2VDYWxsYmFja1N0YXRlIHBjYnN0YXRlOworCQljaGFy CSAgICpzdHJpbmc7CisJCWJvb2wJCWNvZXJjaW9uX29rID0gdHJ1ZTsKIAogCQkvKgogCQkgKiBJ ZiB0aGUgdGFyZ2V0IHR5cGUgaXMgYSBkb21haW4sIHdlIHdhbnQgdG8gY2FsbCBpdHMgYmFzZSB0 eXBlJ3MKQEAgLTMwOCwyMSArMzQ5LDI3IEBAIGNvZXJjZV90eXBlKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgTm9kZSAqbm9kZSwKIAkJICogV2UgYXNzdW1lIGhlcmUgdGhhdCBVTktOT1dOJ3MgaW50ZXJu YWwgcmVwcmVzZW50YXRpb24gaXMgdGhlIHNhbWUKIAkJICogYXMgQ1NUUklORy4KIAkJICovCi0J CWlmICghY29uLT5jb25zdGlzbnVsbCkKLQkJCW5ld2Nvbi0+Y29uc3R2YWx1ZSA9IHN0cmluZ1R5 cGVEYXR1bShiYXNlVHlwZSwKLQkJCQkJCQkJCQkJCSBEYXR1bUdldENTdHJpbmcoY29uLT5jb25z dHZhbHVlKSwKLQkJCQkJCQkJCQkJCSBpbnB1dFR5cGVNb2QpOworCQlpZiAoY29uLT5jb25zdGlz bnVsbCkKKwkJCXN0cmluZyA9IE5VTEw7CiAJCWVsc2UKLQkJCW5ld2Nvbi0+Y29uc3R2YWx1ZSA9 IHN0cmluZ1R5cGVEYXR1bShiYXNlVHlwZSwKLQkJCQkJCQkJCQkJCSBOVUxMLAotCQkJCQkJCQkJ CQkJIGlucHV0VHlwZU1vZCk7CisJCQlzdHJpbmcgPSBEYXR1bUdldENTdHJpbmcoY29uLT5jb25z dHZhbHVlKTsKKworCQlpZiAoIXN0cmluZ1R5cGVEYXR1bVNhZmUoYmFzZVR5cGUsCisJCQkJCQkJ CSBzdHJpbmcsCisJCQkJCQkJCSBpbnB1dFR5cGVNb2QsCisJCQkJCQkJCSBlc2NvbnRleHQsCisJ CQkJCQkJCSAmbmV3Y29uLT5jb25zdHZhbHVlKSkKKwkJeworCQkJY29lcmNpb25fb2sgPSBmYWxz ZTsKKwkJCW5ld2Nvbi0+Y29uc3Rpc251bGwgPSB0cnVlOworCQl9CiAKIAkJLyoKIAkJICogSWYg aXQncyBhIHZhcmxlbmEgdmFsdWUsIGZvcmNlIGl0IHRvIGJlIGluIG5vbi1leHBhbmRlZAogCQkg KiAobm9uLXRvYXN0ZWQpIGZvcm1hdDsgdGhpcyBhdm9pZHMgYW55IHBvc3NpYmxlIGRlcGVuZGVu Y3kgb24KIAkJICogZXh0ZXJuYWwgdmFsdWVzIGFuZCBpbXByb3ZlcyBjb25zaXN0ZW5jeSBvZiBy ZXByZXNlbnRhdGlvbi4KIAkJICovCi0JCWlmICghY29uLT5jb25zdGlzbnVsbCAmJiBuZXdjb24t PmNvbnN0bGVuID09IC0xKQorCQlpZiAoY29lcmNpb25fb2sgJiYgIWNvbi0+Y29uc3Rpc251bGwg JiYgbmV3Y29uLT5jb25zdGxlbiA9PSAtMSkKIAkJCW5ld2Nvbi0+Y29uc3R2YWx1ZSA9CiAJCQkJ UG9pbnRlckdldERhdHVtKFBHX0RFVE9BU1RfREFUVU0obmV3Y29uLT5jb25zdHZhbHVlKSk7CiAK QEAgLTMzOSw3ICszODYsNyBAQCBjb2VyY2VfdHlwZShQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUg Km5vZGUsCiAJCSAqIGlkZW50aWNhbCBtYXkgbm90IGdldCByZWNvZ25pemVkIGFzIHN1Y2guICBT ZWUgcGdzcWwtaGFja2VycwogCQkgKiBkaXNjdXNzaW9uIG9mIDIwMDgtMDQtMDQuCiAJCSAqLwot CQlpZiAoIWNvbi0+Y29uc3Rpc251bGwgJiYgIW5ld2Nvbi0+Y29uc3RieXZhbCkKKwkJaWYgKGNv ZXJjaW9uX29rICYmICFjb24tPmNvbnN0aXNudWxsICYmICFuZXdjb24tPmNvbnN0Ynl2YWwpCiAJ CXsKIAkJCURhdHVtCQl2YWwyOwogCkBAIC0zNTgsOCArNDA1LDEwIEBAIGNvZXJjZV90eXBlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAogCQlyZXN1bHQgPSAoTm9kZSAqKSBuZXdj b247CiAKLQkJLyogSWYgdGFyZ2V0IGlzIGEgZG9tYWluLCBhcHBseSBjb25zdHJhaW50cy4gKi8K LQkJaWYgKGJhc2VUeXBlSWQgIT0gdGFyZ2V0VHlwZUlkKQorCQlpZiAoIWNvZXJjaW9uX29rKQor CQkJcmVzdWx0ID0gTlVMTDsKKwkJZWxzZSBpZiAoYmFzZVR5cGVJZCAhPSB0YXJnZXRUeXBlSWQp CisJCQkvKiBJZiB0YXJnZXQgaXMgYSBkb21haW4sIGFwcGx5IGNvbnN0cmFpbnRzLiAqLwogCQkJ cmVzdWx0ID0gY29lcmNlX3RvX2RvbWFpbihyZXN1bHQsCiAJCQkJCQkJCQkgIGJhc2VUeXBlSWQs IGJhc2VUeXBlTW9kLAogCQkJCQkJCQkJICB0YXJnZXRUeXBlSWQsCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4 cHIuYwppbmRleCA1NjgyNmRiNGMyNi4uNmViMjc3Y2JhMWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4 cHIuYwpAQCAtMTcsNiArMTcsNyBAQAogCiAjaW5jbHVkZSAiYWNjZXNzL2h0dXBfZGV0YWlscy5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYWdncmVnYXRlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19jYXN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAibWlzY2Fk bWluLmgiCiAjaW5jbHVkZSAibm9kZXMvbWFrZWZ1bmNzLmgiCkBAIC0zNyw2ICszOCw3IEBACiAj aW5jbHVkZSAidXRpbHMvZGF0ZS5oIgogI2luY2x1ZGUgInV0aWxzL2ZtZ3JvaWRzLmgiCiAjaW5j bHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKICNp bmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKICNpbmNsdWRlICJ1dGlscy90eXBjYWNoZS5oIgog I2luY2x1ZGUgInV0aWxzL3htbC5oIgpAQCAtNjEsNyArNjMsOCBAQCBzdGF0aWMgTm9kZSAqdHJh bnNmb3JtTXVsdGlBc3NpZ25SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBNdWx0aUFzc2lnblJlZiAq bWFyZWYpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNhc2VFeHByKFBhcnNlU3RhdGUgKnBzdGF0 ZSwgQ2FzZUV4cHIgKmMpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJsaW5rKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1BcnJh eUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKLQkJCQkJCQkJT2lkIGFy cmF5X3R5cGUsIE9pZCBlbGVtZW50X3R5cGUsIGludDMyIHR5cG1vZCk7CisJCQkJCQkJCU9pZCBh cnJheV90eXBlLCBPaWQgZWxlbWVudF90eXBlLCBpbnQzMiB0eXBtb2QsCisJCQkJCQkJCWJvb2wg KmlzX2NvZXJjaWJsZSk7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtUm93RXhwcihQYXJzZVN0YXRl ICpwc3RhdGUsIFJvd0V4cHIgKnIsIGJvb2wgYWxsb3dEZWZhdWx0KTsKIHN0YXRpYyBOb2RlICp0 cmFuc2Zvcm1Db2FsZXNjZUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2FsZXNjZUV4cHIgKmMp Owogc3RhdGljIE5vZGUgKnRyYW5zZm9ybU1pbk1heEV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBN aW5NYXhFeHByICptKTsKQEAgLTc3LDYgKzgwLDggQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybVdo b2xlUm93UmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJICBpbnQgc3VibGV2ZWxzX3Vw LCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAqaW5kKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zv cm1UeXBlQ2FzdChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0Yyk7CitzdGF0aWMgdm9p ZCBDb2VyY2lvbkVycm9yU2FmZUNoZWNrKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4 cHIsCisJCQkJCQkJCSAgIE5vZGUgKnNvdXJjZSwgT2lkIGlucHV0VHlwZSwgT2lkIHRhcmdldFR5 cGUpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBDb2xsYXRlQ2xhdXNlICpjKTsKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1Kc29uT2JqZWN0 Q29uc3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJCQlKc29uT2JqZWN0Q29u c3RydWN0b3IgKmN0b3IpOwpAQCAtMTY1LDcgKzE3MCw3IEBAIHRyYW5zZm9ybUV4cHJSZWN1cnNl KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAogCQljYXNlIFRfQV9BcnJheUV4cHI6 CiAJCQlyZXN1bHQgPSB0cmFuc2Zvcm1BcnJheUV4cHIocHN0YXRlLCAoQV9BcnJheUV4cHIgKikg ZXhwciwKLQkJCQkJCQkJCQlJbnZhbGlkT2lkLCBJbnZhbGlkT2lkLCAtMSk7CisJCQkJCQkJCQkJ SW52YWxpZE9pZCwgSW52YWxpZE9pZCwgLTEsIE5VTEwpOwogCQkJYnJlYWs7CiAKIAkJY2FzZSBU X1R5cGVDYXN0OgpAQCAtNTY1LDYgKzU3MCw3IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0 YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTX1NJ TkdMRToKIAkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKIAkJY2FzZSBFWFBSX0tJ TkRfRE9NQUlOX0NIRUNLOgorCQljYXNlIEVYUFJfS0lORF9DQVNUX0RFRkFVTFQ6CiAJCWNhc2Ug RVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJF U1NJT046CiAJCWNhc2UgRVhQUl9LSU5EX0lOREVYX1BSRURJQ0FURToKQEAgLTE4MjUsNiArMTgz MSw5IEBAIHRyYW5zZm9ybVN1YkxpbmsoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTdWJMaW5rICpzdWJs aW5rKQogCQljYXNlIEVYUFJfS0lORF9ET01BSU5fQ0hFQ0s6CiAJCQllcnIgPSBfKCJjYW5ub3Qg dXNlIHN1YnF1ZXJ5IGluIGNoZWNrIGNvbnN0cmFpbnQiKTsKIAkJCWJyZWFrOworCQljYXNlIEVY UFJfS0lORF9DQVNUX0RFRkFVTFQ6CisJCQllcnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGlu IENBU1QgREVGQVVMVCBleHByZXNzaW9uIik7CisJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRf Q09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCQll cnIgPSBfKCJjYW5ub3QgdXNlIHN1YnF1ZXJ5IGluIERFRkFVTFQgZXhwcmVzc2lvbiIpOwpAQCAt MjAxMiwxNyArMjAyMSwyNCBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwg U3ViTGluayAqc3VibGluaykKICAqIElmIHRoZSBjYWxsZXIgc3BlY2lmaWVzIHRoZSB0YXJnZXQg dHlwZSwgdGhlIHJlc3VsdGluZyBhcnJheSB3aWxsCiAgKiBiZSBvZiBleGFjdGx5IHRoYXQgdHlw ZS4gIE90aGVyd2lzZSB3ZSB0cnkgdG8gaW5mZXIgYSBjb21tb24gdHlwZQogICogZm9yIHRoZSBl bGVtZW50cyB1c2luZyBzZWxlY3RfY29tbW9uX3R5cGUoKS4KKyAqCisgKiBNb3N0IG9mIHRoZSB0 aW1lLCBpc19jb2VyY2libGUgd2lsbCBiZSBOVUxMLiAgSXQgaXMgbm90IE5VTEwgb25seSB3aGVu CisgKiBwZXJmb3JtaW5nIHBhcnNlIGFuYWx5c2lzIGZvciBDQVNUKERFRkFVTFQgLi4uIE9OIENP TlZFUlNJT04gRVJST1IpLgorICogaXNfY29lcmNpYmxlIGRlZmF1bHQgdG8gdHJ1ZSwgaG93ZXZl ciBpZiBjb2VyY2luZyBhcnJheSBlbGVtZW50cyBmYWlscywgaXQgd2lsbAorICogYmUgc2V0IHRv IGZhbHNlLgogICovCiBzdGF0aWMgTm9kZSAqCiB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAqYSwKLQkJCQkgICBPaWQgYXJyYXlfdHlwZSwgT2lkIGVs ZW1lbnRfdHlwZSwgaW50MzIgdHlwbW9kKQorCQkJCSAgIE9pZCBhcnJheV90eXBlLCBPaWQgZWxl bWVudF90eXBlLCBpbnQzMiB0eXBtb2QsIGJvb2wgKmlzX2NvZXJjaWJsZSkKIHsKIAlBcnJheUV4 cHIgICpuZXdhID0gbWFrZU5vZGUoQXJyYXlFeHByKTsKIAlMaXN0CSAgICpuZXdlbGVtcyA9IE5J TDsKIAlMaXN0CSAgICpuZXdjb2VyY2VkZWxlbXMgPSBOSUw7CiAJTGlzdENlbGwgICAqZWxlbWVu dDsKIAlPaWQJCQljb2VyY2VfdHlwZTsKKwlPaWQJCQljb2VyY2VfdHlwZV9jb2xsOwogCWJvb2wJ CWNvZXJjZV9oYXJkOworCUVycm9yU2F2ZUNvbnRleHQgZXNjb250ZXh0ID0ge1RfRXJyb3JTYXZl Q29udGV4dH07CiAKIAkvKgogCSAqIFRyYW5zZm9ybSB0aGUgZWxlbWVudCBleHByZXNzaW9ucwpA QCAtMjA0Niw5ICsyMDYyLDEwIEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0YXRlICpwc3Rh dGUsIEFfQXJyYXlFeHByICphLAogCQkJCQkJCQkJICAoQV9BcnJheUV4cHIgKikgZSwKIAkJCQkJ CQkJCSAgYXJyYXlfdHlwZSwKIAkJCQkJCQkJCSAgZWxlbWVudF90eXBlLAotCQkJCQkJCQkJICB0 eXBtb2QpOworCQkJCQkJCQkJICB0eXBtb2QsCisJCQkJCQkJCQkgIGlzX2NvZXJjaWJsZSk7CiAJ CQkvKiB3ZSBjZXJ0YWlubHkgaGF2ZSBhbiBhcnJheSBoZXJlICovCi0JCQlBc3NlcnQoYXJyYXlf dHlwZSA9PSBJbnZhbGlkT2lkIHx8IGFycmF5X3R5cGUgPT0gZXhwclR5cGUobmV3ZSkpOworCQkJ QXNzZXJ0KGlzX2NvZXJjaWJsZSB8fCBhcnJheV90eXBlID09IEludmFsaWRPaWQgfHwgYXJyYXlf dHlwZSA9PSBleHByVHlwZShuZXdlKSk7CiAJCQluZXdhLT5tdWx0aWRpbXMgPSB0cnVlOwogCQl9 CiAJCWVsc2UKQEAgLTIwODksNiArMjEwNiw5IEBAIHRyYW5zZm9ybUFycmF5RXhwcihQYXJzZVN0 YXRlICpwc3RhdGUsIEFfQXJyYXlFeHByICphLAogCX0KIAllbHNlCiAJeworCQkvKiBUYXJnZXQg dHlwZSBtdXN0IHZhbGlkIGZvciBDQVNUIERFRkFVTFQgKi8KKwkJQXNzZXJ0KGlzX2NvZXJjaWJs ZSA9PSBOVUxMKTsKKwogCQkvKiBDYW4ndCBoYW5kbGUgYW4gZW1wdHkgYXJyYXkgd2l0aG91dCBh IHRhcmdldCB0eXBlICovCiAJCWlmIChuZXdlbGVtcyA9PSBOSUwpCiAJCQllcmVwb3J0KEVSUk9S LApAQCAtMjEyNiw2ICsyMTQ2LDggQEAgdHJhbnNmb3JtQXJyYXlFeHByKFBhcnNlU3RhdGUgKnBz dGF0ZSwgQV9BcnJheUV4cHIgKmEsCiAJCWNvZXJjZV9oYXJkID0gZmFsc2U7CiAJfQogCisJY29l cmNlX3R5cGVfY29sbCA9IGdldF90eXBjb2xsYXRpb24oY29lcmNlX3R5cGUpOworCiAJLyoKIAkg KiBDb2VyY2UgZWxlbWVudHMgdG8gdGFyZ2V0IHR5cGUKIAkgKgpAQCAtMjEzNSwyOCArMjE1Nyw4 MCBAQCB0cmFuc2Zvcm1BcnJheUV4cHIoUGFyc2VTdGF0ZSAqcHN0YXRlLCBBX0FycmF5RXhwciAq YSwKIAkgKiBJZiB0aGUgYXJyYXkncyB0eXBlIHdhcyBtZXJlbHkgZGVyaXZlZCBmcm9tIHRoZSBj b21tb24gdHlwZSBvZiBpdHMKIAkgKiBlbGVtZW50cywgdGhlbiB0aGUgZWxlbWVudHMgYXJlIGlt cGxpY2l0bHkgY29lcmNlZCB0byB0aGUgY29tbW9uIHR5cGUuCiAJICogVGhpcyBpcyBjb25zaXN0 ZW50IHdpdGggb3RoZXIgdXNlcyBvZiBzZWxlY3RfY29tbW9uX3R5cGUoKS4KKwkgKgorCSAqIElm IGlzX2NvZXJjaWJsZSBpcyBub3QgTlVMTCwgd2UgbmVlZCB0byBzYWZlbHkgdGVzdCB3aGV0aGVy IGVhY2gKKwkgKiBlbGVtZW50IGNhbiBiZSBjb2VyY2VkIHRvIHRoZSB0YXJnZXQgdHlwZSwgc2lt aWxhciB0byB3aGF0IGlzIGRvbmUgaW4KKwkgKiB0cmFuc2Zvcm1UeXBlQ2FzdC4KIAkgKi8KIAlm b3JlYWNoKGVsZW1lbnQsIG5ld2VsZW1zKQogCXsKIAkJTm9kZQkgICAqZSA9IChOb2RlICopIGxm aXJzdChlbGVtZW50KTsKLQkJTm9kZQkgICAqbmV3ZTsKKwkJTm9kZQkgICAqbmV3ZSA9IE5VTEw7 CiAKIAkJaWYgKGNvZXJjZV9oYXJkKQogCQl7Ci0JCQluZXdlID0gY29lcmNlX3RvX3RhcmdldF90 eXBlKHBzdGF0ZSwgZSwKLQkJCQkJCQkJCQkgZXhwclR5cGUoZSksCi0JCQkJCQkJCQkJIGNvZXJj ZV90eXBlLAotCQkJCQkJCQkJCSB0eXBtb2QsCi0JCQkJCQkJCQkJIENPRVJDSU9OX0VYUExJQ0lU LAotCQkJCQkJCQkJCSBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKLQkJCQkJCQkJCQkgLTEpOwotCQkJ aWYgKG5ld2UgPT0gTlVMTCkKLQkJCQllcmVwb3J0KEVSUk9SLAotCQkJCQkJKGVycmNvZGUoRVJS Q09ERV9DQU5OT1RfQ09FUkNFKSwKLQkJCQkJCSBlcnJtc2coImNhbm5vdCBjYXN0IHR5cGUgJXMg dG8gJXMiLAotCQkJCQkJCQlmb3JtYXRfdHlwZV9iZShleHByVHlwZShlKSksCi0JCQkJCQkJCWZv cm1hdF90eXBlX2JlKGNvZXJjZV90eXBlKSksCi0JCQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBz dGF0ZSwgZXhwckxvY2F0aW9uKGUpKSkpOworCQkJLyoKKwkJCSAqIENhbm5vdCBjb2VyY2UsIGp1 c3QgYXBwZW5kIHRoZSB0cmFuc2Zvcm1lZCBlbGVtZW50IGV4cHJlc3Npb24KKwkJCSAqIHRvIHRo ZSBsaXN0LgorCQkJICovCisJCQlpZiAoaXNfY29lcmNpYmxlICYmICghKmlzX2NvZXJjaWJsZSkp CisJCQkJbmV3ZSA9IGU7CisJCQllbHNlCisJCQl7CisJCQkJTm9kZQkgICAqZWNvcHkgPSBOVUxM OworCisJCQkJaWYgKGlzX2NvZXJjaWJsZSkKKwkJCQkJZWNvcHkgPSBjb3B5T2JqZWN0KGUpOwor CisJCQkJbmV3ZSA9IGNvZXJjZV90b190YXJnZXRfdHlwZV9leHRlbmRlZChwc3RhdGUsIGUsCisJ CQkJCQkJCQkJCQkJICBleHByVHlwZShlKSwKKwkJCQkJCQkJCQkJCQkgIGNvZXJjZV90eXBlLAor CQkJCQkJCQkJCQkJCSAgdHlwbW9kLAorCQkJCQkJCQkJCQkJCSAgQ09FUkNJT05fRVhQTElDSVQs CisJCQkJCQkJCQkJCQkJICBDT0VSQ0VfRVhQTElDSVRfQ0FTVCwKKwkJCQkJCQkJCQkJCQkgIC0x LAorCQkJCQkJCQkJCQkJCSAgKE5vZGUgKikgJmVzY29udGV4dCk7CisJCQkJaWYgKG5ld2UgPT0g TlVMTCkKKwkJCQl7CisJCQkJCWlmICghaXNfY29lcmNpYmxlKQorCQkJCQkJZXJlcG9ydChFUlJP UiwKKwkJCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9DQU5OT1RfQ09FUkNFKSwKKwkJCQkJCQkJIGVy cm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyIsCisJCQkJCQkJCQkJZm9ybWF0X3R5cGVf YmUoZXhwclR5cGUoZSkpLAorCQkJCQkJCQkJCWZvcm1hdF90eXBlX2JlKGNvZXJjZV90eXBlKSks CisJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oZSkpKSk7 CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJLyoKKwkJCQkJCSAqIENhbm5vdCBjb2VyY2UsIGp1 c3QgYXBwZW5kIHRoZSB0cmFuc2Zvcm1lZCBlbGVtZW50CisJCQkJCQkgKiBleHByZXNzaW9uIHRv IHRoZSBsaXN0LgorCQkJCQkJICovCisJCQkJCQluZXdlID0gZWNvcHk7CisJCQkJCQkqaXNfY29l cmNpYmxlID0gZmFsc2U7CisJCQkJCX0KKwkJCQl9CisJCQkJZWxzZSBpZiAoaXNfY29lcmNpYmxl ICYmIElzQShlY29weSwgQ29uc3QpICYmIElzQShuZXdlLCBGdW5jRXhwcikpCisJCQkJeworCQkJ CQlOb2RlCSAgICpuZXdleHByID0gY29weU9iamVjdChuZXdlKTsKKworCQkJCQkvKgorCQkJCQkg KiBwcmUtZXZhbHVhdGUgc2ltcGxlIGNvbnN0YW50IGNhc3QgZXhwcmVzc2lvbnMgaW4gYSB3YXkK KwkJCQkJICogdGhhdCB0b2xlcmF0ZSBlcnJvcnMuCisJCQkJCSAqLworCQkJCQlhc3NpZ25fZXhw cl9jb2xsYXRpb25zKHBzdGF0ZSwgbmV3ZXhwcik7CisKKwkJCQkJbmV3ZXhwciA9IChOb2RlICop IGV2YWx1YXRlX2V4cHIoKEV4cHIgKikgbmV3ZXhwciwKKwkJCQkJCQkJCQkJCQkgY29lcmNlX3R5 cGUsCisJCQkJCQkJCQkJCQkJIHR5cG1vZCwKKwkJCQkJCQkJCQkJCQkgY29lcmNlX3R5cGVfY29s bCwKKwkJCQkJCQkJCQkJCQkgKE5vZGUgKikgJmVzY29udGV4dCk7CisJCQkJCWlmIChuZXdleHBy ID09IE5VTEwpCisJCQkJCXsKKwkJCQkJCW5ld2UgPSBlY29weTsKKwkJCQkJCSppc19jb2VyY2li bGUgPSBmYWxzZTsKKwkJCQkJfQorCQkJCX0KKwkJCX0KIAkJfQogCQllbHNlCiAJCQluZXdlID0g Y29lcmNlX3RvX2NvbW1vbl90eXBlKHBzdGF0ZSwgZSwKQEAgLTI2OTcsNyArMjc3MSw4IEBAIHRy YW5zZm9ybVdob2xlUm93UmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyc2VOYW1lc3BhY2VJdGVt ICpuc2l0ZW0sCiB9CiAKIC8qCi0gKiBIYW5kbGUgYW4gZXhwbGljaXQgQ0FTVCBjb25zdHJ1Y3Qu CisgKiBIYW5kbGUgYW4gZXhwbGljaXQgQ0FTVCBjb25zdHJ1Y3Qgb3IKKyAqIENBU1QoLi4uIERF RkFVTFQgLi4uIE9OIENPTlZFUlNJT04gRVJST1IpIGNvbnN0cnVjdC4KICAqCiAgKiBUcmFuc2Zv cm0gdGhlIGFyZ3VtZW50LCBsb29rIHVwIHRoZSB0eXBlIG5hbWUsIGFuZCBhcHBseSBhbnkgbmVj ZXNzYXJ5CiAgKiBjb2VyY2lvbiBmdW5jdGlvbihzKS4KQEAgLTI3MDUsMTcgKzI3ODAsNjMgQEAg dHJhbnNmb3JtV2hvbGVSb3dSZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQYXJzZU5hbWVzcGFjZUl0 ZW0gKm5zaXRlbSwKIHN0YXRpYyBOb2RlICoKIHRyYW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUg KnBzdGF0ZSwgVHlwZUNhc3QgKnRjKQogewotCU5vZGUJICAgKnJlc3VsdDsKKwlTYWZlVHlwZUNh c3RFeHByICpzdGM7CisJTm9kZQkgICAqY2FzdGV4cHIgPSBOVUxMOworCU5vZGUJICAgKmRlZmV4 cHIgPSBOVUxMOwogCU5vZGUJICAgKmFyZyA9IHRjLT5hcmc7CisJTm9kZQkgICAqc291cmNlOwog CU5vZGUJICAgKmV4cHI7CiAJT2lkCQkJaW5wdXRUeXBlOwogCU9pZAkJCXRhcmdldFR5cGU7CisJ T2lkCQkJdGFyZ2V0VHlwZWNvbGw7CiAJaW50MzIJCXRhcmdldFR5cG1vZDsKIAlpbnQJCQlsb2Nh dGlvbjsKKwlib29sCQlpc19jb2VyY2libGUgPSB0cnVlOworCUVycm9yU2F2ZUNvbnRleHQgZXNj b250ZXh0ID0ge1RfRXJyb3JTYXZlQ29udGV4dH07CiAKIAkvKiBMb29rIHVwIHRoZSB0eXBlIG5h bWUgZmlyc3QgKi8KIAl0eXBlbmFtZVR5cGVJZEFuZE1vZChwc3RhdGUsIHRjLT50eXBlTmFtZSwg JnRhcmdldFR5cGUsICZ0YXJnZXRUeXBtb2QpOwogCisJdGFyZ2V0VHlwZWNvbGwgPSBnZXRfdHlw Y29sbGF0aW9uKHRhcmdldFR5cGUpOworCisJLyogbm93IGxvb2tpbmcgYXQgREVGQVVMVCBleHBy ZXNzaW9uICovCisJaWYgKHRjLT5kZWZleHByKQorCXsKKwkJT2lkCQkJZGVmQ29sbDsKKworCQlk ZWZleHByID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIHRjLT5kZWZleHByLCBFWFBSX0tJTkRfQ0FT VF9ERUZBVUxUKTsKKworCQlkZWZleHByID0gY29lcmNlX3RvX3RhcmdldF90eXBlKHBzdGF0ZSwg ZGVmZXhwciwgZXhwclR5cGUoZGVmZXhwciksCisJCQkJCQkJCQkJdGFyZ2V0VHlwZSwgdGFyZ2V0 VHlwbW9kLAorCQkJCQkJCQkJCUNPRVJDSU9OX0VYUExJQ0lULAorCQkJCQkJCQkJCUNPRVJDRV9F WFBMSUNJVF9DQVNULAorCQkJCQkJCQkJCWV4cHJMb2NhdGlvbihkZWZleHByKSk7CisJCWlmIChk ZWZleHByID09IE5VTEwpCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQllcnJjb2RlKEVSUkNPREVf Q0FOTk9UX0NPRVJDRSksCisJCQkJCWVycm1zZygiY2Fubm90IGNvZXJjZSAlcyBleHByZXNzaW9u IHRvIHR5cGUgJXMiLAorCQkJCQkJICAgIkNBU1QgREVGQVVMVCIsCisJCQkJCQkgICBmb3JtYXRf dHlwZV9iZSh0YXJnZXRUeXBlKSksCisJCQkJCXBhcnNlcl9jb2VyY2lvbl9lcnJwb3NpdGlvbihw c3RhdGUsIGV4cHJMb2NhdGlvbih0Yy0+ZGVmZXhwciksIGRlZmV4cHIpKTsKKworCQlhc3NpZ25f ZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgZGVmZXhwcik7CisKKwkJLyoKKwkJICogVGhlIGNvbGxh dGlvbiBvZiBERUZBVUxUIGV4cHJlc3Npb24gbXVzdCBtYXRjaCB0aGUgY29sbGF0aW9uIG9mIHRo ZQorCQkgKiB0YXJnZXQgdHlwZS4KKwkJICovCisJCWRlZkNvbGwgPSBleHByQ29sbGF0aW9uKGRl ZmV4cHIpOworCisJCWlmICh0YXJnZXRUeXBlY29sbCAhPSBkZWZDb2xsKQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkJZXJy bXNnKCJ0aGUgY29sbGF0aW9uIG9mIENBU1QgREVGQVVMVCBleHByZXNzaW9uIGNvbmZsaWN0cyB3 aXRoIHRhcmdldCB0eXBlIGNvbGxhdGlvbiIpLAorCQkJCQllcnJkZXRhaWwoIlwiJXNcIiB2ZXJz dXMgXCIlc1wiIiwKKwkJCQkJCQkgIGdldF9jb2xsYXRpb25fbmFtZSh0YXJnZXRUeXBlY29sbCks CisJCQkJCQkJICBnZXRfY29sbGF0aW9uX25hbWUoZGVmQ29sbCkpLAorCQkJCQlwYXJzZXJfZXJy cG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oZGVmZXhwcikpKTsKKwl9CisKIAkvKgogCSAq IElmIHRoZSBzdWJqZWN0IG9mIHRoZSB0eXBlY2FzdCBpcyBhbiBBUlJBWVtdIGNvbnN0cnVjdCBh bmQgdGhlIHRhcmdldAogCSAqIHR5cGUgaXMgYW4gYXJyYXkgdHlwZSwgd2UgaW52b2tlIHRyYW5z Zm9ybUFycmF5RXhwcigpIGRpcmVjdGx5IHNvIHRoYXQKQEAgLTI3NDQsNyArMjg2NSw4IEBAIHRy YW5zZm9ybVR5cGVDYXN0KFBhcnNlU3RhdGUgKnBzdGF0ZSwgVHlwZUNhc3QgKnRjKQogCQkJCQkJ CQkJICAoQV9BcnJheUV4cHIgKikgYXJnLAogCQkJCQkJCQkJICB0YXJnZXRCYXNlVHlwZSwKIAkJ CQkJCQkJCSAgZWxlbWVudFR5cGUsCi0JCQkJCQkJCQkgIHRhcmdldEJhc2VUeXBtb2QpOworCQkJ CQkJCQkJICB0YXJnZXRCYXNlVHlwbW9kLAorCQkJCQkJCQkJICBkZWZleHByID8gJmlzX2NvZXJj aWJsZSA6IE5VTEwpOwogCQl9CiAJCWVsc2UKIAkJCWV4cHIgPSB0cmFuc2Zvcm1FeHByUmVjdXJz ZShwc3RhdGUsIGFyZyk7CkBAIC0yNzY1LDIwICsyODg3LDE5OCBAQCB0cmFuc2Zvcm1UeXBlQ2Fz dChQYXJzZVN0YXRlICpwc3RhdGUsIFR5cGVDYXN0ICp0YykKIAlpZiAobG9jYXRpb24gPCAwKQog CQlsb2NhdGlvbiA9IHRjLT50eXBlTmFtZS0+bG9jYXRpb247CiAKLQlyZXN1bHQgPSBjb2VyY2Vf dG9fdGFyZ2V0X3R5cGUocHN0YXRlLCBleHByLCBpbnB1dFR5cGUsCi0JCQkJCQkJCSAgIHRhcmdl dFR5cGUsIHRhcmdldFR5cG1vZCwKLQkJCQkJCQkJICAgQ09FUkNJT05fRVhQTElDSVQsCi0JCQkJ CQkJCSAgIENPRVJDRV9FWFBMSUNJVF9DQVNULAotCQkJCQkJCQkgICBsb2NhdGlvbik7Ci0JaWYg KHJlc3VsdCA9PSBOVUxMKQorCS8qCisJICogY29lcmNlX3RvX3RhcmdldF90eXBlX2V4dGVuZGVk IGlzIHVubGlrZWx5IHRvIG1vZGlmeSB0aGUgc291cmNlCisJICogZXhwcmVzc2lvbiwgYnV0IHdl IHN0aWxsIGNyZWF0ZSBhIGNvcHkgYmVmb3JlaGFuZC4gVGhpcyBhbGxvd3MKKwkgKiBTYWZlVHlw ZUNhc3RFeHByIHRvIHJlY2VpdmUgdGhlIHRyYW5zZm9ybWVkIHNvdXJjZSBleHByZXNzaW9uCisJ ICogdW5jaGFuZ2VkLgorCSAqLworCXNvdXJjZSA9IGNvcHlPYmplY3QoZXhwcik7CisKKwlpZiAo aXNfY29lcmNpYmxlKQorCXsKKwkJY2FzdGV4cHIgPSBjb2VyY2VfdG9fdGFyZ2V0X3R5cGVfZXh0 ZW5kZWQocHN0YXRlLCBleHByLCBpbnB1dFR5cGUsCisJCQkJCQkJCQkJCQkgIHRhcmdldFR5cGUs IHRhcmdldFR5cG1vZCwKKwkJCQkJCQkJCQkJCSAgQ09FUkNJT05fRVhQTElDSVQsCisJCQkJCQkJ CQkJCQkgIENPRVJDRV9FWFBMSUNJVF9DQVNULAorCQkJCQkJCQkJCQkJICBsb2NhdGlvbiwKKwkJ CQkJCQkJCQkJCSAgZGVmZXhwciA/IChOb2RlICopICZlc2NvbnRleHQgOiBOVUxMKTsKKworCQkv KgorCQkgKiBJZiB0aGlzIGlzIGEgc2ltcGxlIENBU1QgY29uc3RydWN0LCByZXR1cm4gdGhlIGNh c3QgZXhwcmVzc2lvbiBub3csCisJCSAqIG9yIHRocm93IGFuIGVycm9yLgorCQkgKi8KKwkJaWYg KGRlZmV4cHIgPT0gTlVMTCkKKwkJeworCQkJaWYgKGNhc3RleHByID09IE5VTEwpCisJCQkJZXJl cG9ydChFUlJPUiwKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfQ0FOTk9UX0NPRVJDRSksCisJCQkJ CQkgZXJybXNnKCJjYW5ub3QgY2FzdCB0eXBlICVzIHRvICVzIiwKKwkJCQkJCQkJZm9ybWF0X3R5 cGVfYmUoaW5wdXRUeXBlKSwKKwkJCQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZSkpLAor CQkJCQkJIHBhcnNlcl9jb2VyY2lvbl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uLCBleHBy KSkpOworCisJCQlyZXR1cm4gY2FzdGV4cHI7CisJCX0KKworCQlpZiAoY2FzdGV4cHIgPT0gTlVM TCkKKwkJCWlzX2NvZXJjaWJsZSA9IGZhbHNlOworCX0KKworCS8qIEZ1cnRoZXIgY2hlY2sgQ0FT VCguLi4gREVGQVVMVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUikgY29uc3RydWN0ICovCisJQ29l cmNpb25FcnJvclNhZmVDaGVjayhwc3RhdGUsIGNhc3RleHByLCBzb3VyY2UsIGlucHV0VHlwZSwK KwkJCQkJCSAgIHRhcmdldFR5cGUpOworCisJaWYgKElzQShzb3VyY2UsIENvbnN0KSAmJiBjYXN0 ZXhwciAmJiBJc0EoY2FzdGV4cHIsIEZ1bmNFeHByKSkKKwl7CisJCU5vZGUJICAgKm5ld2V4cHIg PSBjb3B5T2JqZWN0KGNhc3RleHByKTsKKworCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0 ZSwgbmV3ZXhwcik7CisKKwkJLyoKKwkJICogcHJlLWV2YWx1YXRlIHNpbXBsZSBjb25zdGFudCBj YXN0IGV4cHJlc3Npb24gaW4gYSBlcnJvciBzYWZlIHdheQorCQkgKgorCQkgKiBSYXRpb25hbGU6 CisJCSAqCisJCSAqIDEuIFdoZW4gZGVwYXJzaW5nIHNhZmUgY2FzdCBleHByZXNzaW9uIChvciBp biBvdGhlciBjYXNlcyksCisJCSAqIGV2YWxfY29uc3RfZXhwcmVzc2lvbnMgbWlnaHQgYmUgaW52 b2tlZCwgYnV0IGl0IGNhbm5vdCBoYW5kbGUKKwkJICogZXJyb3JzIGdyYWNlZnVsbHkuCisJCSAq CisJCSAqIDIuIEV2ZW4gaWYgRnVuY0V4cHIgKGZvciBjYXN0ZnVuYykgbm9kZSBoYXMgdGhyZWUg YXJndW1lbnRzLCB0aGUKKwkJICogc2Vjb25kIGFuZCB0aGlyZCBhcmd1bWVudHMgd2lsbCBhbHNv IGJlIGNvbnN0YW50cyBwZXIKKwkJICogY29lcmNlX3RvX3RhcmdldF90eXBlLiBFdmFsdWF0aW5n IGEgRnVuY0V4cHIgd2hvc2UgYXJndW1lbnRzIGFyZQorCQkgKiBhbGwgQ29uc3QgaXMgc2FmZS4K KwkJICovCisJCW5ld2V4cHIgPSAoTm9kZSAqKSBldmFsdWF0ZV9leHByKChFeHByICopIG5ld2V4 cHIsCisJCQkJCQkJCQkJIHRhcmdldFR5cGUsCisJCQkJCQkJCQkJIHRhcmdldFR5cG1vZCwKKwkJ CQkJCQkJCQkgdGFyZ2V0VHlwZWNvbGwsCisJCQkJCQkJCQkJIChOb2RlICopICZlc2NvbnRleHQp OworCQlpZiAobmV3ZXhwciA9PSBOVUxMKQorCQl7CisJCQkvKiBDYW5ub3QgY29lcmNlLCBzZXQg aXNfY29lcmNpYmxlIHRvIGZhbHNlICovCisJCQlpc19jb2VyY2libGUgPSBmYWxzZTsKKwkJCWNh c3RleHByID0gTlVMTDsKKwkJfQorCX0KKworCUFzc2VydChpc19jb2VyY2libGUgfHwgY2FzdGV4 cHIgPT0gTlVMTCk7CisKKwlzdGMgPSBtYWtlTm9kZShTYWZlVHlwZUNhc3RFeHByKTsKKwlzdGMt PnNvdXJjZSA9IChFeHByICopIHNvdXJjZTsKKwlzdGMtPmNhc3RleHByID0gKEV4cHIgKikgY2Fz dGV4cHI7CisJc3RjLT5kZWZleHByID0gKEV4cHIgKikgZGVmZXhwcjsKKwlzdGMtPnJlc3VsdHR5 cGUgPSB0YXJnZXRUeXBlOworCXN0Yy0+cmVzdWx0dHlwbW9kID0gdGFyZ2V0VHlwbW9kOworCXN0 Yy0+cmVzdWx0Y29sbGlkID0gdGFyZ2V0VHlwZWNvbGw7CisJc3RjLT5sb2NhdGlvbiA9IGxvY2F0 aW9uOworCisJcmV0dXJuIChOb2RlICopIHN0YzsKK30KKworLyoKKyAqIENoZWNrIHR5cGUgY29l cmNpb24gaXMgZXJyb3Igc2FmZSBvciBub3QuICBJZiBub3QgdGhlbiByZXBvcnQgZXJyb3IKKyAq Lworc3RhdGljIHZvaWQKK0NvZXJjaW9uRXJyb3JTYWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRl LCBOb2RlICpjYXN0ZXhwciwgTm9kZSAqc291cmNlLAorCQkJCQkgICBPaWQgaW5wdXRUeXBlLCBP aWQgdGFyZ2V0VHlwZSkKK3sKKwlIZWFwVHVwbGUJdHVwbGU7CisJYm9vbAkJY29lcmNpb25fZXJy b3JzYWZlID0gdHJ1ZTsKKwlib29sCQl1c2VyZGVmaW5lZCA9IGZhbHNlOworCU9pZAkJCWlucHV0 QmFzZVR5cGU7CisJT2lkCQkJdGFyZ2V0QmFzZVR5cGU7CisJT2lkCQkJaW5wdXRFbGVtZW50VHlw ZTsKKwlPaWQJCQlpbnB1dEVsZW1lbnRCYXNlVHlwZTsKKwlPaWQJCQl0YXJnZXRFbGVtZW50VHlw ZTsKKwlPaWQJCQl0YXJnZXRFbGVtZW50QmFzZVR5cGU7CisKKwkvKgorCSAqIEJpbmFyeSBjb2Vy Y2lvbiBjYXN0IGlzIGVxdWl2YWxlbnQgdG8gbm8gY2FzdCBhdCBhbGwuICBDb2VyY2VWaWFJTyBj YW4KKwkgKiBhbHNvIGJlIGV2YWx1YXRlZCBpbiBhbiBlcnJvci1zYWZlIG1hbm5lci4gU28gc2tp cCB0aGVzZSB0d28gY2FzZXMuCisJICovCisJaWYgKGNhc3RleHByID09IE5VTEwgfHwgSXNBKGNh c3RleHByLCBSZWxhYmVsVHlwZSkgfHwKKwkJSXNBKGNhc3RleHByLCBDb2VyY2VWaWFJTykpCisJ CXJldHVybjsKKworCS8qCisJICogVHlwZSBjYXN0IGludm9sdmluZyB3aXRoIHNvbWUgdHlwZXMg aXMgbm90IGVycm9yIHNhZmUsIGRvIHRoZSBjaGVjaworCSAqIG5vdy4gV2UgbmVlZCBjb25zaWRl ciBkb21haW4gb3ZlciBhcnJheSBhbmQgYXJyYXkgb3ZlciBkb21haW4gc2NhcmVuaW8uCisJICog V2UgYWxyZWFkeSBjaGVja2VkIHVzZXItZGVmaW5lZCB0eXBlIGNhc3QgYWJvdmUuCisJICovCisJ aW5wdXRFbGVtZW50VHlwZSA9IGdldF9lbGVtZW50X3R5cGUoaW5wdXRUeXBlKTsKKworCWlmIChP aWRJc1ZhbGlkKGlucHV0RWxlbWVudFR5cGUpKQorCQlpbnB1dEVsZW1lbnRCYXNlVHlwZSA9IGdl dEJhc2VUeXBlKGlucHV0RWxlbWVudFR5cGUpOworCWVsc2UKKwl7CisJCWlucHV0QmFzZVR5cGUg PSBnZXRCYXNlVHlwZShpbnB1dFR5cGUpOworCisJCWlucHV0RWxlbWVudEJhc2VUeXBlID0gZ2V0 X2VsZW1lbnRfdHlwZShpbnB1dEJhc2VUeXBlKTsKKwkJaWYgKCFPaWRJc1ZhbGlkKGlucHV0RWxl bWVudEJhc2VUeXBlKSkKKwkJCWlucHV0RWxlbWVudEJhc2VUeXBlID0gaW5wdXRCYXNlVHlwZTsK Kwl9CisKKwl0YXJnZXRFbGVtZW50VHlwZSA9IGdldF9lbGVtZW50X3R5cGUodGFyZ2V0VHlwZSk7 CisKKwlpZiAoT2lkSXNWYWxpZCh0YXJnZXRFbGVtZW50VHlwZSkpCisJCXRhcmdldEVsZW1lbnRC YXNlVHlwZSA9IGdldEJhc2VUeXBlKHRhcmdldEVsZW1lbnRUeXBlKTsKKwllbHNlCisJeworCQl0 YXJnZXRCYXNlVHlwZSA9IGdldEJhc2VUeXBlKHRhcmdldFR5cGUpOworCisJCXRhcmdldEVsZW1l bnRCYXNlVHlwZSA9IGdldF9lbGVtZW50X3R5cGUodGFyZ2V0QmFzZVR5cGUpOworCQlpZiAoIU9p ZElzVmFsaWQodGFyZ2V0RWxlbWVudEJhc2VUeXBlKSkKKwkJCXRhcmdldEVsZW1lbnRCYXNlVHlw ZSA9IHRhcmdldEJhc2VUeXBlOworCX0KKworCWlmIChpbnB1dEVsZW1lbnRCYXNlVHlwZSA9PSBN T05FWU9JRCB8fAorCQl0YXJnZXRFbGVtZW50QmFzZVR5cGUgPT0gTU9ORVlPSUQgfHwKKwkJKGlu cHV0RWxlbWVudEJhc2VUeXBlID09IENJUkNMRU9JRCAmJgorCQkgdGFyZ2V0RWxlbWVudEJhc2VU eXBlID09IFBPTFlHT05PSUQpKQorCXsKKwkJLyoKKwkJICogQ2FzdHMgaW52b2x2aW5nIE1PTkVZ IHR5cGUgYXJlIG5vdCBlcnJvciBzYWZlLiBUaGUgQ0lSQ0xFIHRvCisJCSAqIFBPTFlHT04gY2Fz dCBpcyBhbHNvIHVuc2FmZSBiZWNhdXNlIGl0IHJlbGllcyBvbiBhIFNRTC1sYW5ndWFnZQorCQkg KiBmdW5jdGlvbjsgb25seSBDLWxhbmd1YWdlIGZ1bmN0aW9ucyBhcmUgY3VycmVudGx5IHN1cHBv cnRlZCBmb3IKKwkJICogZXJyb3Igc2FmZSBjYXN0cy4KKwkJICovCisJCWNvZXJjaW9uX2Vycm9y c2FmZSA9IGZhbHNlOworCX0KKworCWlmIChjb2VyY2lvbl9lcnJvcnNhZmUpCisJeworCQkvKiBM b29rIGluIHBnX2Nhc3QgKi8KKwkJdHVwbGUgPSBTZWFyY2hTeXNDYWNoZTIoQ0FTVFNPVVJDRVRB UkdFVCwKKwkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bShpbnB1dEVsZW1lbnRCYXNlVHlwZSksCisJ CQkJCQkJCU9iamVjdElkR2V0RGF0dW0odGFyZ2V0RWxlbWVudEJhc2VUeXBlKSk7CisKKwkJaWYg KEhlYXBUdXBsZUlzVmFsaWQodHVwbGUpKQorCQl7CisJCQlGb3JtX3BnX2Nhc3QgY2FzdEZvcm0g PSAoRm9ybV9wZ19jYXN0KSBHRVRTVFJVQ1QodHVwbGUpOworCisJCQlpZiAoY2FzdEZvcm0tPm9p ZCA+IEZpcnN0VW5waW5uZWRPYmplY3RJZCkKKwkJCXsKKwkJCQljb2VyY2lvbl9lcnJvcnNhZmUg PSBmYWxzZTsKKwkJCQl1c2VyZGVmaW5lZCA9IHRydWU7CisJCQl9CisKKwkJCVJlbGVhc2VTeXND YWNoZSh0dXBsZSk7CisJCX0KKwl9CisKKwlpZiAoIWNvZXJjaW9uX2Vycm9yc2FmZSkKIAkJZXJl cG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0NBTk5PVF9DT0VSQ0UpLAotCQkJCSBl cnJtc2coImNhbm5vdCBjYXN0IHR5cGUgJXMgdG8gJXMiLAotCQkJCQkJZm9ybWF0X3R5cGVfYmUo aW5wdXRUeXBlKSwKLQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGUpKSwKLQkJCQkgcGFy c2VyX2NvZXJjaW9uX2VycnBvc2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24sIGV4cHIpKSk7Ci0KLQly ZXR1cm4gcmVzdWx0OworCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQp LAorCQkJCWVycm1zZygiY2Fubm90IGNhc3QgdHlwZSAlcyB0byAlcyB3aGVuICVzIGV4cHJlc3Np b24gaXMgc3BlY2lmaWVkIGluICVzIiwKKwkJCQkJICAgZm9ybWF0X3R5cGVfYmUoaW5wdXRUeXBl KSwKKwkJCQkJICAgZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZSksCisJCQkJCSAgICJERUZBVUxU IiwKKwkJCQkJICAgIkNBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IiKSwKKwkJCQl1c2VyZGVm aW5lZAorCQkJCT8gZXJyaGludCgiU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBl cyBhcmUgbm90IHlldCBzdXBwb3J0ZWQuIikKKwkJCQk6IGVycmhpbnQoIkV4cGxpY2l0IGNhc3Qg aXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJyb3Igc2FmZS4iKSwKKwkJCQlwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oc291cmNlKSkpOwogfQogCiAvKgpA QCAtMzE5NCw2ICszNDk0LDggQEAgUGFyc2VFeHByS2luZE5hbWUoUGFyc2VFeHByS2luZCBleHBy S2luZCkKIAkJY2FzZSBFWFBSX0tJTkRfQ0hFQ0tfQ09OU1RSQUlOVDoKIAkJY2FzZSBFWFBSX0tJ TkRfRE9NQUlOX0NIRUNLOgogCQkJcmV0dXJuICJDSEVDSyI7CisJCWNhc2UgRVhQUl9LSU5EX0NB U1RfREVGQVVMVDoKKwkJCXJldHVybiAiQ0FTVCBERUZBVUxUIjsKIAkJY2FzZSBFWFBSX0tJTkRf Q09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CiAJCQly ZXR1cm4gIkRFRkFVTFQiOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1 bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKaW5kZXggMjRmNjc0NTkyM2Iu LjU5MGE4YTc4NWM5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5j CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKQEAgLTI3NDMsNiArMjc0Myw5 IEBAIGNoZWNrX3NyZl9jYWxsX3BsYWNlbWVudChQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmxh c3Rfc3JmLCBpbnQgbG9jYXRpb24pCiAJCWNhc2UgRVhQUl9LSU5EX0RPTUFJTl9DSEVDSzoKIAkJ CWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBjaGVj ayBjb25zdHJhaW50cyIpOwogCQkJYnJlYWs7CisJCWNhc2UgRVhQUl9LSU5EX0NBU1RfREVGQVVM VDoKKwkJCWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBp biBDQVNUIERFRkFVTFQgZXhwcmVzc2lvbnMiKTsKKwkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lO RF9DT0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKIAkJ CWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rpb25zIGFyZSBub3QgYWxsb3dlZCBpbiBERUZB VUxUIGV4cHJlc3Npb25zIik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf dHlwZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYwppbmRleCBiYjdlY2NkZTlm ZC4uMGM2YjI0ZTAyMTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90eXBl LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3R5cGUuYwpAQCAtNjYwLDYgKzY2MCwx OSBAQCBzdHJpbmdUeXBlRGF0dW0oVHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0eXBt b2QpCiAJcmV0dXJuIE9pZElucHV0RnVuY3Rpb25DYWxsKHR5cGlucHV0LCBzdHJpbmcsIHR5cGlv cGFyYW0sIGF0dHR5cG1vZCk7CiB9CiAKKy8qIGVycm9yLXNhZmUgdmVyc2lvbiBvZiBzdHJpbmdU eXBlRGF0dW0gKi8KK2Jvb2wKK3N0cmluZ1R5cGVEYXR1bVNhZmUoVHlwZSB0cCwgY2hhciAqc3Ry aW5nLCBpbnQzMiBhdHR0eXBtb2QsCisJCQkJCU5vZGUgKmVzY29udGV4dCwgRGF0dW0gKnJlc3Vs dCkKK3sKKwlGb3JtX3BnX3R5cGUgdHlwZm9ybSA9IChGb3JtX3BnX3R5cGUpIEdFVFNUUlVDVCh0 cCk7CisJT2lkCQkJdHlwaW5wdXQgPSB0eXBmb3JtLT50eXBpbnB1dDsKKwlPaWQJCQl0eXBpb3Bh cmFtID0gZ2V0VHlwZUlPUGFyYW0odHApOworCisJcmV0dXJuIE9pZElucHV0RnVuY3Rpb25DYWxs U2FmZSh0eXBpbnB1dCwgc3RyaW5nLCB0eXBpb3BhcmFtLCBhdHR0eXBtb2QsCisJCQkJCQkJCQll c2NvbnRleHQsIHJlc3VsdCk7Cit9CisKIC8qCiAgKiBHaXZlbiBhIHR5cGVpZCwgcmV0dXJuIHRo ZSB0eXBlJ3MgdHlwcmVsaWQgKGFzc29jaWF0ZWQgcmVsYXRpb24pLCBpZiBhbnkuCiAgKiBSZXR1 cm5zIEludmFsaWRPaWQgaWYgdHlwZSBpcyBub3QgYSBjb21wb3NpdGUgdHlwZS4KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMvYmFja2VuZC9wYXJz ZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IGI1ZjRjNzI0NTlkLi43MTFhNTcwZjY4ZSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCkBAIC00OTUwLDcgKzQ5NTAsNyBAQCB0cmFuc2Zvcm1Q YXJ0aXRpb25Cb3VuZFZhbHVlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqdmFsLAogCQlhc3Np Z25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgdmFsdWUpOwogCQl2YWx1ZSA9IChOb2RlICopIGV4 cHJlc3Npb25fcGxhbm5lcigoRXhwciAqKSB2YWx1ZSk7CiAJCXZhbHVlID0gKE5vZGUgKikgZXZh bHVhdGVfZXhwcigoRXhwciAqKSB2YWx1ZSwgY29sVHlwZSwgY29sVHlwbW9kLAotCQkJCQkJCQkJ ICAgcGFydENvbGxhdGlvbik7CisJCQkJCQkJCQkgICBwYXJ0Q29sbGF0aW9uLCBOVUxMKTsKIAkJ aWYgKCFJc0EodmFsdWUsIENvbnN0KSkKIAkJCWVsb2coRVJST1IsICJjb3VsZCBub3QgZXZhbHVh dGUgcGFydGl0aW9uIGJvdW5kIGV4cHJlc3Npb24iKTsKIAl9CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC91dGlscy9hZHQvYXJyYXlmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FycmF5 ZnVuY3MuYwppbmRleCBlNzFkMzI3NzNiNS4uNzk1MWM4YmZkNmQgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9hcnJheWZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L2FycmF5ZnVuY3MuYwpAQCAtMzI4OSw2ICszMjg5LDE1IEBAIGFycmF5X21hcChEYXR1bSBhcnJh eWQsCiAJCS8qIEFwcGx5IHRoZSBnaXZlbiBleHByZXNzaW9uIHRvIHNvdXJjZSBlbGVtZW50ICov CiAJCXZhbHVlc1tpXSA9IEV4ZWNFdmFsRXhwcihleHByc3RhdGUsIGVjb250ZXh0LCAmbnVsbHNb aV0pOwogCisJCS8qIEV4aXQgZWFybHkgaWYgZXZhbHVhdGlvbiBmYWlsZWQgKi8KKwkJaWYgKFNP RlRfRVJST1JfT0NDVVJSRUQoZXhwcnN0YXRlLT5lc2NvbnRleHQpKQorCQl7CisJCQlwZnJlZSh2 YWx1ZXMpOworCQkJcGZyZWUobnVsbHMpOworCisJCQlyZXR1cm4gKERhdHVtKSAwOworCQl9CisK IAkJaWYgKG51bGxzW2ldKQogCQkJaGFzbnVsbHMgPSB0cnVlOwogCQllbHNlCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMgYi9zcmMvYmFja2VuZC91dGlscy9h ZHQvcnVsZXV0aWxzLmMKaW5kZXggMDMzYjYyNWYzZmMuLjkzZTY2ZDhhMGI3IDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3J1bGV1dGlscy5jCkBAIC0xMDU2Miw2ICsxMDU2MiwzMSBAQCBnZXRfcnVsZV9leHBy KE5vZGUgKm5vZGUsIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCwKIAkJCX0KIAkJCWJyZWFrOwog CisJCWNhc2UgVF9TYWZlVHlwZUNhc3RFeHByOgorCQkJeworCQkJCVNhZmVUeXBlQ2FzdEV4cHIg KnN0Y2V4cHIgPSBjYXN0Tm9kZShTYWZlVHlwZUNhc3RFeHByLCBub2RlKTsKKworCQkJCS8qCisJ CQkJICogV2UgY2Fubm90IGp1c3QgZGVwYXJzaW5nIGNhc3RleHByIGRpcmVjdGx5IGhlcmUsIHNp bmNlCisJCQkJICogdHJhbnNmb3JtVHlwZUNhc3QgbWF5IGhhdmUgYWxyZWFkeSBjb25zdGFudC1m b2xkaW5nIGl0IGludG8KKwkJCQkgKiBhIE5VTEwuIEluc3RlYWQsIHdlIHVzZSBzb3VyY2UgYW5k IGRlZmV4cHIgdG8gcmVjb25zdHJ1Y3QKKwkJCQkgKiB0aGUgQ0FTVCBERUZBVUxUIGNsYXVzZS4K KwkJCQkgKi8KKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGJ1ZiwgIkNBU1QoIik7CisJCQkJ Z2V0X3J1bGVfZXhwcigoTm9kZSAqKSBzdGNleHByLT5zb3VyY2UsIGNvbnRleHQsIHNob3dpbXBs aWNpdCk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKGJ1ZiwgIiBBUyAlcyAiLAorCQkJCQkJCQkg Zm9ybWF0X3R5cGVfd2l0aF90eXBlbW9kKHN0Y2V4cHItPnJlc3VsdHR5cGUsCisJCQkJCQkJCQkJ CQkJCSAgc3RjZXhwci0+cmVzdWx0dHlwbW9kKSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvU3Ry aW5nKGJ1ZiwgIkRFRkFVTFQgIik7CisKKwkJCQlnZXRfcnVsZV9leHByKChOb2RlICopIHN0Y2V4 cHItPmRlZmV4cHIsIGNvbnRleHQsIHNob3dpbXBsaWNpdCk7CisKKwkJCQlhcHBlbmRTdHJpbmdJ bmZvU3RyaW5nKGJ1ZiwgIiBPTiBDT05WRVJTSU9OIEVSUk9SKSIpOworCQkJfQorCQkJYnJlYWs7 CisKIAkJY2FzZSBUX0pzb25FeHByOgogCQkJewogCQkJCUpzb25FeHByICAgKmpleHByID0gKEpz b25FeHByICopIG5vZGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3Iu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2ZtZ3IvZm1nci5jCmluZGV4IDA1OTg0ZTdlZjI2Li5mNmZh NGEwOTM1YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvZm1nci9mbWdyLmMKQEAgLTE3NTksNiArMTc1OSwxOSBAQCBPaWRJ bnB1dEZ1bmN0aW9uQ2FsbChPaWQgZnVuY3Rpb25JZCwgY2hhciAqc3RyLCBPaWQgdHlwaW9wYXJh bSwgaW50MzIgdHlwbW9kKQogCXJldHVybiBJbnB1dEZ1bmN0aW9uQ2FsbCgmZmxpbmZvLCBzdHIs IHR5cGlvcGFyYW0sIHR5cG1vZCk7CiB9CiAKKy8qIGVycm9yLXNhZmUgdmVyc2lvbiBvZiBPaWRJ bnB1dEZ1bmN0aW9uQ2FsbCAqLworYm9vbAorT2lkSW5wdXRGdW5jdGlvbkNhbGxTYWZlKE9pZCBm dW5jdGlvbklkLCBjaGFyICpzdHIsIE9pZCB0eXBpb3BhcmFtLAorCQkJCQkJIGludDMyIHR5cG1v ZCwgTm9kZSAqZXNjb250ZXh0LAorCQkJCQkJIERhdHVtICpyZXN1bHQpCit7CisJRm1nckluZm8J ZmxpbmZvOworCisJZm1ncl9pbmZvKGZ1bmN0aW9uSWQsICZmbGluZm8pOworCXJldHVybiBJbnB1 dEZ1bmN0aW9uQ2FsbFNhZmUoJmZsaW5mbywgc3RyLCB0eXBpb3BhcmFtLCB0eXBtb2QsCisJCQkJ CQkJCSBlc2NvbnRleHQsIHJlc3VsdCk7Cit9CisKIGNoYXIgKgogT2lkT3V0cHV0RnVuY3Rpb25D YWxsKE9pZCBmdW5jdGlvbklkLCBEYXR1bSB2YWwpCiB7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9leGVjdXRvci9leGVjRXhwci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaApp bmRleCBhYTliMzYxZmEzMS4uZmE5ZGI4ZmQ2ODcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4 ZWN1dG9yL2V4ZWNFeHByLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY0V4cHIuaApA QCAtMjY1LDYgKzI2NSw3IEBAIHR5cGVkZWYgZW51bSBFeHByRXZhbE9wCiAJRUVPUF9YTUxFWFBS LAogCUVFT1BfSlNPTl9DT05TVFJVQ1RPUiwKIAlFRU9QX0lTX0pTT04sCisJRUVPUF9TQUZFVFlQ RV9DQVNULAogCUVFT1BfSlNPTkVYUFJfUEFUSCwKIAlFRU9QX0pTT05FWFBSX0NPRVJDSU9OLAog CUVFT1BfSlNPTkVYUFJfQ09FUkNJT05fRklOSVNILApAQCAtNzUwLDYgKzc1MSwxMiBAQCB0eXBl ZGVmIHN0cnVjdCBFeHByRXZhbFN0ZXAKIAkJCUpzb25Jc1ByZWRpY2F0ZSAqcHJlZDsJLyogb3Jp Z2luYWwgZXhwcmVzc2lvbiBub2RlICovCiAJCX0JCQlpc19qc29uOwogCisJCS8qIGZvciBFRU9Q X1NBRkVUWVBFX0NBU1QgKi8KKwkJc3RydWN0CisJCXsKKwkJCXN0cnVjdCBTYWZlVHlwZUNhc3RT dGF0ZSAqc3Rjc3RhdGU7CisJCX0JCQlzdGNleHByOworCiAJCS8qIGZvciBFRU9QX0pTT05FWFBS X1BBVEggKi8KIAkJc3RydWN0CiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9y L2V4ZWN1dG9yLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCmluZGV4IDU5Mjlh YWJjMzUzLi4xMDNhNWI1ODA4NiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y3V0b3IuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5oCkBAIC0zMjQsNiAr MzI0LDcgQEAgRXhlY1Byb2NOb2RlKFBsYW5TdGF0ZSAqbm9kZSkKICAqIHByb3RvdHlwZXMgZnJv bSBmdW5jdGlvbnMgaW4gZXhlY0V4cHIuYwogICovCiBleHRlcm4gRXhwclN0YXRlICpFeGVjSW5p dEV4cHIoRXhwciAqbm9kZSwgUGxhblN0YXRlICpwYXJlbnQpOworZXh0ZXJuIEV4cHJTdGF0ZSAq RXhlY0luaXRFeHByRXh0ZW5kZWQoRXhwciAqbm9kZSwgUGxhblN0YXRlICpwYXJlbnQsIE5vZGUg KmVzY29udGV4dCk7CiBleHRlcm4gRXhwclN0YXRlICpFeGVjSW5pdEV4cHJXaXRoUGFyYW1zKEV4 cHIgKm5vZGUsIFBhcmFtTGlzdEluZm8gZXh0X3BhcmFtcyk7CiBleHRlcm4gRXhwclN0YXRlICpF eGVjSW5pdFF1YWwoTGlzdCAqcXVhbCwgUGxhblN0YXRlICpwYXJlbnQpOwogZXh0ZXJuIEV4cHJT dGF0ZSAqRXhlY0luaXRDaGVjayhMaXN0ICpxdWFsLCBQbGFuU3RhdGUgKnBhcmVudCk7CmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9mbWdyLmggYi9zcmMvaW5jbHVkZS9mbWdyLmgKaW5kZXggZWFi YmM3OGIyODAuLmRlMjA0Y2VlMjczIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9mbWdyLmgKKysr IGIvc3JjL2luY2x1ZGUvZm1nci5oCkBAIC03NTIsNiArNzUyLDkgQEAgZXh0ZXJuIGJvb2wgRGly ZWN0SW5wdXRGdW5jdGlvbkNhbGxTYWZlKFBHRnVuY3Rpb24gZnVuYywgY2hhciAqc3RyLAogCQkJ CQkJCQkJCURhdHVtICpyZXN1bHQpOwogZXh0ZXJuIERhdHVtIE9pZElucHV0RnVuY3Rpb25DYWxs KE9pZCBmdW5jdGlvbklkLCBjaGFyICpzdHIsCiAJCQkJCQkJCSAgT2lkIHR5cGlvcGFyYW0sIGlu dDMyIHR5cG1vZCk7CitleHRlcm4gYm9vbCBPaWRJbnB1dEZ1bmN0aW9uQ2FsbFNhZmUoT2lkIGZ1 bmN0aW9uSWQsIGNoYXIgKnN0ciwgT2lkIHR5cGlvcGFyYW0sCisJCQkJCQkJCQkgaW50MzIgdHlw bW9kLCBOb2RlICplc2NvbnRleHQsCisJCQkJCQkJCQkgRGF0dW0gKnJlc3VsdCk7CiBleHRlcm4g Y2hhciAqT3V0cHV0RnVuY3Rpb25DYWxsKEZtZ3JJbmZvICpmbGluZm8sIERhdHVtIHZhbCk7CiBl eHRlcm4gY2hhciAqT2lkT3V0cHV0RnVuY3Rpb25DYWxsKE9pZCBmdW5jdGlvbklkLCBEYXR1bSB2 YWwpOwogZXh0ZXJuIERhdHVtIFJlY2VpdmVGdW5jdGlvbkNhbGwoRm1nckluZm8gKmZsaW5mbywg U3RyaW5nSW5mbyBidWYsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IGY4MDUzZDllNTcyLi4zZWI3 MTNhYzUxMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKKysrIGIv c3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTEwNjEsNiArMTA2MSwyNyBAQCB0eXBl ZGVmIHN0cnVjdCBEb21haW5Db25zdHJhaW50U3RhdGUKIAlFeHByU3RhdGUgICpjaGVja19leHBy c3RhdGU7CS8qIGNoZWNrX2V4cHIncyBldmFsIHN0YXRlLCBvciBOVUxMICovCiB9IERvbWFpbkNv bnN0cmFpbnRTdGF0ZTsKIAordHlwZWRlZiBzdHJ1Y3QgU2FmZVR5cGVDYXN0U3RhdGUKK3sKKwlT YWZlVHlwZUNhc3RFeHByICpzdGNleHByOworCisJLyoKKwkgKiBBZGRyZXNzIHRvIGp1bXAgdG8g d2hlbiBza2lwcGluZyBhbGwgdGhlIHN0ZXBzIHRvIGV2YXVsYXRlIHRoZSBkZWZhdWx0CisJICog ZXhwcmVzc2lvbi4KKwkgKi8KKwlpbnQJCQlqdW1wX2VuZDsKKworCS8qCisJICogRm9yIGVycm9y LXNhZmUgZXZhbHVhdGlvbiBvZiBjb2VyY2lvbnMuIEEgcG9pbnRlciB0byB0aGlzIGlzIHBhc3Nl ZCB0bworCSAqIEV4ZWNJbml0RXhwclJlYygpIHdoZW4gaW5pdGlhbGl6aW5nIHRoZSBjb2VyY2lv biBleHByZXNzaW9ucywgc2VlCisJICogRXhlY0luaXRTYWZlVHlwZUNhc3RFeHByLgorCSAqCisJ ICogUmVzZXQgZm9yIGVhY2ggZXZhbHVhdGlvbiBvZiBFRU9QX1NBRkVUWVBFX0NBU1QuCisJICov CisJRXJyb3JTYXZlQ29udGV4dCBlc2NvbnRleHQ7CisKK30gU2FmZVR5cGVDYXN0U3RhdGU7CisK IC8qCiAgKiBTdGF0ZSBmb3IgSnNvbkV4cHIgZXZhbHVhdGlvbiwgdG9vIGJpZyB0byBpbmxpbmUu CiAgKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDY0NmQ2Y2VkNzYzLi43ZWFiYzE3MDMyMCAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNs dWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzk3LDYgKzM5Nyw3IEBAIHR5cGVkZWYgc3RydWN0 IFR5cGVDYXN0CiAJTm9kZVRhZwkJdHlwZTsKIAlOb2RlCSAgICphcmc7CQkJLyogdGhlIGV4cHJl c3Npb24gYmVpbmcgY2FzdGVkICovCiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUgdGFy Z2V0IHR5cGUgKi8KKwlOb2RlCSAgICpkZWZleHByOwkJLyogREVGQVVMVCBleHByZXNzaW9uICov CiAJUGFyc2VMb2MJbG9jYXRpb247CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93 biAqLwogfSBUeXBlQ2FzdDsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5v ZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaAppbmRleCA1MjExY2FkYzI1OC4u MTZlYjg5ZTAwYzQgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCisr KyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBAIC03NjksNiArNzY5LDMxIEBAIHR5 cGVkZWYgZW51bSBDb2VyY2lvbkZvcm0KIAlDT0VSQ0VfU1FMX1NZTlRBWCwJCQkvKiBkaXNwbGF5 IHdpdGggU1FMLW1hbmRhdGVkIHNwZWNpYWwgc3ludGF4ICovCiB9IENvZXJjaW9uRm9ybTsKIAor LyoKKyAqIFNhZmVUeXBlQ2FzdEV4cHIgLQorICoJCVRyYW5zZm9ybWVkIHJlcHJlc2VudGF0aW9u IG9mCisgKiAJCUNBU1QoZXhwciBBUyB0eXBlbmFtZSBERUZBVUxUIGV4cHIgT04gQ09OVkVSU0lP TiBFUlJPUikKKyAqIAkJQ0FTVChleHByIEFTIHR5cGVuYW1lIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikKKyAqLwordHlwZWRlZiBzdHJ1Y3QgU2FmZVR5cGVDYXN0RXhwcgoreworCUV4cHIJCXhw cjsKKwkvKiB0cmFuc2Zvcm1lZCBzb3VyY2UgZXhwcmVzc2lvbiBmcm9tIHBhcnNlciAqLworCUV4 cHIJICAgKnNvdXJjZTsKKwkvKiBUaGUgdHJhbnNmb3JtZWQgY2FzdCBleHByZXNzaW9uOyBpdCBj YW4gYmUgTlVMTCAqLworCUV4cHIJICAgKmNhc3RleHByIHBnX25vZGVfYXR0cihxdWVyeV9qdW1i bGVfaWdub3JlKTsKKwkvKiBGYWxsLWJhY2sgdG8gdGhlIGRlZmF1bHQgZXhwcmVzc2lvbiBpZiBj YXN0IGV2YWx1YXRpb24gZmFpbHMgKi8KKwlFeHByCSAgICpkZWZleHByOworCS8qIHRhcmdldCB0 eXBlIE9pZCAqLworCU9pZAkJCXJlc3VsdHR5cGU7CisJLyogdGFyZ2V0IHR5cGUgbW9kaWZpZXIg Ki8KKwlpbnQzMgkJcmVzdWx0dHlwbW9kOworCS8qIE9JRCBvZiBjb2xsYXRpb24sIG9yIEludmFs aWRPaWQgaWYgbm9uZSAqLworCU9pZAkJCXJlc3VsdGNvbGxpZDsKKwkvKiB0b2tlbiBsb2NhdGlv biwgb3IgLTEgaWYgdW5rbm93biAqLworCVBhcnNlTG9jCWxvY2F0aW9uOworfSBTYWZlVHlwZUNh c3RFeHByOworCiAvKgogICogRnVuY0V4cHIgLSBleHByZXNzaW9uIG5vZGUgZm9yIGEgZnVuY3Rp b24gY2FsbAogICoKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIu aCBiL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIuaAppbmRleCA0ODVmNjQxYjNiNC4u YmVkODY0NTk0MzAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL29wdGltaXplci9vcHRpbWl6ZXIu aAorKysgYi9zcmMvaW5jbHVkZS9vcHRpbWl6ZXIvb3B0aW1pemVyLmgKQEAgLTE0Myw3ICsxNDMs NyBAQCBleHRlcm4gdm9pZCBjb252ZXJ0X3Nhb3BfdG9faGFzaGVkX3Nhb3AoTm9kZSAqbm9kZSk7 CiBleHRlcm4gTm9kZSAqZXN0aW1hdGVfZXhwcmVzc2lvbl92YWx1ZShQbGFubmVySW5mbyAqcm9v dCwgTm9kZSAqbm9kZSk7CiAKIGV4dGVybiBFeHByICpldmFsdWF0ZV9leHByKEV4cHIgKmV4cHIs IE9pZCByZXN1bHRfdHlwZSwgaW50MzIgcmVzdWx0X3R5cG1vZCwKLQkJCQkJCSAgIE9pZCByZXN1 bHRfY29sbGF0aW9uKTsKKwkJCQkJCSAgIE9pZCByZXN1bHRfY29sbGF0aW9uLCBOb2RlICplc2Nv bnRleHQpOwogCiBleHRlcm4gYm9vbCB2YXJfaXNfbm9ubnVsbGFibGUoUGxhbm5lckluZm8gKnJv b3QsIFZhciAqdmFyLCBib29sIHVzZV9yZWxfaW5mbyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL3BhcnNlci9wYXJzZV9jb2VyY2UuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9jb2Vy Y2UuaAppbmRleCBhYWJhY2Q0OWI2NS4uMmM5MjE2MTc3NjIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3BhcnNlci9wYXJzZV9jb2VyY2UuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vf Y29lcmNlLmgKQEAgLTQzLDExICs0MywyNCBAQCBleHRlcm4gTm9kZSAqY29lcmNlX3RvX3Rhcmdl dF90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJICAgQ29lcmNpb25Db250ZXh0IGNj b250ZXh0LAogCQkJCQkJCQkgICBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwKIAkJCQkJCQkJICAgaW50 IGxvY2F0aW9uKTsKK2V4dGVybiBOb2RlICpjb2VyY2VfdG9fdGFyZ2V0X3R5cGVfZXh0ZW5kZWQo UGFyc2VTdGF0ZSAqcHN0YXRlLAorCQkJCQkJCQkJCQlOb2RlICpleHByLAorCQkJCQkJCQkJCQlP aWQgZXhwcnR5cGUsCisJCQkJCQkJCQkJCU9pZCB0YXJnZXR0eXBlLAorCQkJCQkJCQkJCQlpbnQz MiB0YXJnZXR0eXBtb2QsCisJCQkJCQkJCQkJCUNvZXJjaW9uQ29udGV4dCBjY29udGV4dCwKKwkJ CQkJCQkJCQkJQ29lcmNpb25Gb3JtIGNmb3JtYXQsCisJCQkJCQkJCQkJCWludCBsb2NhdGlvbiwK KwkJCQkJCQkJCQkJTm9kZSAqZXNjb250ZXh0KTsKIGV4dGVybiBib29sIGNhbl9jb2VyY2VfdHlw ZShpbnQgbmFyZ3MsIGNvbnN0IE9pZCAqaW5wdXRfdHlwZWlkcywgY29uc3QgT2lkICp0YXJnZXRf dHlwZWlkcywKIAkJCQkJCQlDb2VyY2lvbkNvbnRleHQgY2NvbnRleHQpOwogZXh0ZXJuIE5vZGUg KmNvZXJjZV90eXBlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbm9kZSwKIAkJCQkJCSBPaWQg aW5wdXRUeXBlSWQsIE9pZCB0YXJnZXRUeXBlSWQsIGludDMyIHRhcmdldFR5cGVNb2QsCiAJCQkJ CQkgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1hdCwgaW50IGxv Y2F0aW9uKTsKK2V4dGVybiBOb2RlICpjb2VyY2VfdHlwZV9leHRlbmRlZChQYXJzZVN0YXRlICpw c3RhdGUsIE5vZGUgKm5vZGUsCisJCQkJCQkJCSAgT2lkIGlucHV0VHlwZUlkLCBPaWQgdGFyZ2V0 VHlwZUlkLCBpbnQzMiB0YXJnZXRUeXBlTW9kLAorCQkJCQkJCQkgIENvZXJjaW9uQ29udGV4dCBj Y29udGV4dCwgQ29lcmNpb25Gb3JtIGNmb3JtYXQsCisJCQkJCQkJCSAgaW50IGxvY2F0aW9uLCBO b2RlICplc2NvbnRleHQpOwogZXh0ZXJuIE5vZGUgKmNvZXJjZV90b19kb21haW4oTm9kZSAqYXJn LCBPaWQgYmFzZVR5cGVJZCwgaW50MzIgYmFzZVR5cGVNb2QsCiAJCQkJCQkJICBPaWQgdHlwZUlk LAogCQkJCQkJCSAgQ29lcmNpb25Db250ZXh0IGNjb250ZXh0LCBDb2VyY2lvbkZvcm0gY2Zvcm1h dCwgaW50IGxvY2F0aW9uLApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25v ZGUuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKaW5kZXggYTliZmZiOGE3OGYu LjhmMjU5MDYwMDBiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5o CisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTY3LDYgKzY3LDggQEAg dHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQKIAlFWFBSX0tJTkRfVkFMVUVTX1NJTkdMRSwJLyog c2luZ2xlLXJvdyBWQUxVRVMgKGluIElOU0VSVCBvbmx5KSAqLwogCUVYUFJfS0lORF9DSEVDS19D T05TVFJBSU5ULCAvKiBDSEVDSyBjb25zdHJhaW50IGZvciBhIHRhYmxlICovCiAJRVhQUl9LSU5E X0RPTUFJTl9DSEVDSywJCS8qIENIRUNLIGNvbnN0cmFpbnQgZm9yIGEgZG9tYWluICovCisJRVhQ Ul9LSU5EX0NBU1RfREVGQVVMVCwJCS8qIGRlZmF1bHQgZXhwcmVzc2lvbiBpbiBDQVNUIERFRkFV TFQgT04KKwkJCQkJCQkJICogQ09OVkVSU0lPTiBFUlJPUiAqLwogCUVYUFJfS0lORF9DT0xVTU5f REVGQVVMVCwJLyogZGVmYXVsdCB2YWx1ZSBmb3IgYSB0YWJsZSBjb2x1bW4gKi8KIAlFWFBSX0tJ TkRfRlVOQ1RJT05fREVGQVVMVCwgLyogZGVmYXVsdCBwYXJhbWV0ZXIgdmFsdWUgZm9yIGZ1bmN0 aW9uICovCiAJRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT04sIC8qIGluZGV4IGV4cHJlc3Npb24g Ki8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV90eXBlLmggYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oCmluZGV4IGEzMzU4MDdiMGIwLi5lMzAzYTEwNzNjMSAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3R5cGUuaAorKysgYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2VfdHlwZS5oCkBAIC00Nyw2ICs0Nyw4IEBAIGV4dGVybiBjaGFyICp0 eXBlVHlwZU5hbWUoVHlwZSB0KTsKIGV4dGVybiBPaWQJdHlwZVR5cGVSZWxpZChUeXBlIHR5cCk7 CiBleHRlcm4gT2lkCXR5cGVUeXBlQ29sbGF0aW9uKFR5cGUgdHlwKTsKIGV4dGVybiBEYXR1bSBz dHJpbmdUeXBlRGF0dW0oVHlwZSB0cCwgY2hhciAqc3RyaW5nLCBpbnQzMiBhdHR0eXBtb2QpOwor ZXh0ZXJuIGJvb2wgc3RyaW5nVHlwZURhdHVtU2FmZShUeXBlIHRwLCBjaGFyICpzdHJpbmcsIGlu dDMyIGF0dHR5cG1vZCwKKwkJCQkJCQkJTm9kZSAqZXNjb250ZXh0LCBEYXR1bSAqcmVzdWx0KTsK IAogZXh0ZXJuIE9pZAl0eXBlaWRUeXBlUmVsaWQoT2lkIHR5cGVfaWQpOwogZXh0ZXJuIE9pZAl0 eXBlT3JEb21haW5UeXBlUmVsaWQoT2lkIHR5cGVfaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY2Fz dC5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQyN2QwN2E5OTgw Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jYXN0Lm91dApA QCAtMCwwICsxLDgxMiBAQAorU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0cyA9IDA7CistLSBDQVNUIERF RkFVTFQgT04gQ09OVkVSU0lPTiBFUlJPUgorU0VMRUNUIENBU1QoQicwMScgQVMgZGF0ZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZGF0ZSAKKy0tLS0tLQorIAorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVChCSVQnMDEnIEFTIGRhdGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworIGRhdGUgCistLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1QoVFJV RSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkYXRlIAorLS0t LS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKDEuMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKKyBkYXRlIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVD VCBDQVNUKDEgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZGF0 ZSAKKy0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgxMTExIEFTICJjaGFyIiBERUZB VUxUICdBJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjaGFyIAorLS0tLS0tCisgQQorKDEgcm93 KQorCistLXRlc3Qgc291cmNlIGV4cHJlc3Npb24gaXMgYSB1bmtub3duIGNvbnN0CitWQUxVRVMg KENBU1QoJ2Vycm9yJyBBUyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IpKTsgLS1l cnJvcgorRVJST1I6ICBpbnZhbGlkIGlucHV0IHN5bnRheCBmb3IgdHlwZSBpbnRlZ2VyOiAiZXJy b3IiCitMSU5FIDE6IFZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgRVJST1IgT04gQ09O VkVSU0lPTiBFUlJPUikpOworICAgICAgICAgICAgICAgICAgICAgXgorVkFMVUVTIChDQVNUKCdl cnJvcicgQVMgaW50ZWdlciBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAor LS0tLS0tLS0tCisgICAgICAgIAorKDEgcm93KQorCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBp bnRlZ2VyIERFRkFVTFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUikpOworIGNvbHVtbjEgCistLS0t LS0tLS0KKyAgICAgIDQyCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVM VCAxOCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAorLS0tLS0tCisgICAxOAorKDEgcm93 KQorCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIE9OIENPTlZFUlNJT04g RVJST1IpOyAtLWVycm9yCitFUlJPUjogIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMgYXJlIG5vdCBhbGxv d2VkIGluIENBU1QgREVGQVVMVCBleHByZXNzaW9ucworTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScg YXMgaW50IERFRkFVTFQgc3VtKDEpIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZB VUxUIHN1bSgxKSBvdmVyKCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAg d2luZG93IGZ1bmN0aW9ucyBhcmUgbm90IGFsbG93ZWQgaW4gQ0FTVCBERUZBVUxUIGV4cHJlc3Np b25zCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCBzdW0oMSkgb3Zlcigp IE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXgorU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIChTRUxFQ1QgTlVMTCkgT04gQ09O VkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgY2Fubm90IHVzZSBzdWJxdWVyeSBpbiBD QVNUIERFRkFVTFQgZXhwcmVzc2lvbgorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERF RkFVTFQgKFNFTEVDVCBOVUxMKSBPTiBDT05WRVJTSU9OIEUuLi4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAn YicgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBz eW50YXggZm9yIHR5cGUgaW50ZWdlcjogImIiCitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBp bnQgREVGQVVMVCAnYicgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1QgQ0FTVCgnYSc6OmludCBhcyBpbnQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIGludmFsaWQgaW5w dXQgc3ludGF4IGZvciB0eXBlIGludGVnZXI6ICJhIgorTElORSAxOiBTRUxFQ1QgQ0FTVCgnYSc6 OmludCBhcyBpbnQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IuLi4KKyAgICAgICAg ICAgICAgICAgICAgXgorLS10aGUgZGVmYXVsdCBleHByZXNzaW9u4oCZcyBjb2xsYXRpb24gc2hv dWxkIG1hdGNoIHRoZSBjb2xsYXRpb24gb2YgdGhlIGNhc3QKKy0tdGFyZ2V0IHR5cGUKK1ZBTFVF UyAoQ0FTVCgnZXJyb3InIEFTIHRleHQgREVGQVVMVCAnMScgQ09MTEFURSAiQyIgT04gQ09OVkVS U0lPTiBFUlJPUikpOworRVJST1I6ICB0aGUgY29sbGF0aW9uIG9mIENBU1QgREVGQVVMVCBleHBy ZXNzaW9uIGNvbmZsaWN0cyB3aXRoIHRhcmdldCB0eXBlIGNvbGxhdGlvbgorTElORSAxOiBWQUxV RVMgKENBU1QoJ2Vycm9yJyBBUyB0ZXh0IERFRkFVTFQgJzEnIENPTExBVEUgIkMiIE9OIENPTlYu Li4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK0RFVEFJ TDogICJkZWZhdWx0IiB2ZXJzdXMgIkMiCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVj dG9yIERFRkFVTFQgJzEgMycgIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAorLS0t LS0tLS0tCisgMSAzCisoMSByb3cpCisKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIGludDJ2ZWN0 b3JbXSBERUZBVUxUICd7MSAzfScgIE9OIENPTlZFUlNJT04gRVJST1IpKTsKKyBjb2x1bW4xIAor LS0tLS0tLS0tCisgeyIxIDMifQorKDEgcm93KQorCistLSB0ZXN0IHNvdXJjZSBleHByZXNzaW9u IGNvbnRhaW4gc3VicXVlcnkKK1NFTEVDVCBDQVNUKChTRUxFQ1QgYiBGUk9NIGdlbmVyYXRlX3Nl cmllcygxLCAxKSwgKFZBTFVFUygnSCcpKSBzKGIpKQorICAgICAgICAgICAgQVMgaW50MnZlY3Rv cltdIERFRkFVTFQgJ3sxIDN9JyAgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgYiAgICAKKy0t LS0tLS0tLQorIHsiMSAzIn0KKygxIHJvdykKKworU0VMRUNUIENBU1QoKFNFTEVDVCBBUlJBWSgo U0VMRUNUIGIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMikgZywgKFZBTFVFUygnSCcpKSBzKGIp KSkpCisgICAgICAgICAgICBBUyBJTlRbXQorICAgICAgICAgICAgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitDUkVBVEUg RlVOQ1RJT04gcmV0X2ludDgoKSBSRVRVUk5TIEJJR0lOVCBBUworJCQKK0JFR0lOIFJFVFVSTiAy MTQ3NDgzNjQ4OyBFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJTU1VVEFCTEU7CitTRUxFQ1Qg Q0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X2ludDgoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsg LS1lcnJvcgorRVJST1I6ICBpbnRlZ2VyIG91dCBvZiByYW5nZQorU0VMRUNUIENBU1QoJ2EnIGFz IGRhdGUgREVGQVVMVCByZXRfaW50OCgpIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitF UlJPUjogIGNhbm5vdCBjb2VyY2UgQ0FTVCBERUZBVUxUIGV4cHJlc3Npb24gdG8gdHlwZSBkYXRl CitMSU5FIDE6IFNFTEVDVCBDQVNUKCdhJyBhcyBkYXRlIERFRkFVTFQgcmV0X2ludDgoKSBPTiBD T05WRVJTSU9OIEVSUi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KKy0tIERFRkFVTFQgZXhwcmVzc2lvbiBjYW4gbm90IGJlIHNldC1yZXR1cm5pbmcKK0NSRUFU RSBGVU5DVElPTiByZXRfc2V0aW50KCkgUkVUVVJOUyBTRVRPRiBpbnRlZ2VyIEFTCiskJAorQkVH SU4gUkVUVVJOIFFVRVJZIEVYRUNVVEUgJ3NlbGVjdCAxIHVuaW9uIGFsbCBzZWxlY3QgMSc7IEVO RDsKKyQkCitMQU5HVUFHRSBwbHBnc3FsIElNTVVUQUJMRTsKK0NSRUFURSBUQUJMRSB0Y2FzdChh IHRleHRbXSwgYiBpbnQgR0VORVJBVEVEIEJZIERFRkFVTFQgQVMgSURFTlRJVFkpOworSU5TRVJU IElOVE8gdGNhc3QgVkFMVUVTICgnezEyfScpLCAoJ3sxLGEsIGJ9JyksICgne3sxLDJ9LCB7Yyxk fX0nKSwgKCd7MTN9Jyk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGlu dCgpIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3Q7IC0tZXJyb3IKK0VSUk9SOiAgc2V0 LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIENBU1QgREVGQVVMVCBleHBy ZXNzaW9ucworTElORSAxOiBTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgcmV0X3NldGlu dCgpIE9OIENPTlZFUlNJT04gRVIuLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4KK1NFTEVDVCBDQVNUKHQgQVMgdGV4dFtdIERFRkFVTFQgJ3syMSwyMiwgJyB8fCBi IHx8ICd9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7CisgICAgIHQgICAg IAorLS0tLS0tLS0tLS0KKyB7MjEsMjIsMX0KKyB7MjEsMjIsMn0KKyB7MjEsMjIsM30KKyB7MjEs MjIsNH0KKyg0IHJvd3MpCisKK1NFTEVDVCBDQVNUKHQuYSBBUyBpbnRbXSBERUZBVUxUICd7MjEs MjJ9Jzo6aW50W10gfHwgYiBPTiBDT05WRVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0IGFzIHQ7Cisg ICAgIGEgICAgIAorLS0tLS0tLS0tLS0KKyB7MTJ9CisgezIxLDIyLDJ9CisgezIxLDIyLDN9Cisg ezEzfQorKDQgcm93cykKKworLS0gdGVzdCB3aXRoIHVzZXItZGVmaW5lZCB0eXBlLCBkb21haW4s IGFycmF5IG92ZXIgZG9tYWluLCBkb21haW4gb3ZlciBhcnJheQorQ1JFQVRFIERPTUFJTiBkX2lu dDQyIGFzIGludCBjaGVjayAodmFsdWUgPSA0MikgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRf Y2hhcjNfbm90X251bGwgYXMgY2hhcigzKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF92YXJj aGFyIGFzIHZhcmNoYXIoMykgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfaW50X2FyciBhcyBp bnRbXSBjaGVjayAodmFsdWUgPSAnezQxLCA0M30nKSBOT1QgTlVMTDsKK0NSRUFURSBUWVBFIGNv bXBfZG9tYWluX3dpdGhfdHlwbW9kIEFTIChhIGRfY2hhcjNfbm90X251bGwsIGIgaW50KTsKK0NS RUFURSBUWVBFIGNvbXAyIEFTIChhIGRfdmFyY2hhcik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBB UyBjb21wMiBERUZBVUxUICcoMTIzMiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitF UlJPUjogIHZhbHVlIHRvbyBsb25nIGZvciB0eXBlIGNoYXJhY3RlciB2YXJ5aW5nKDMpCitMSU5F IDE6IFNFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMyKScgT04gQ09O VkVSU0lPTi4uLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4KK1NFTEVDVCBDQVNUKCcoTlVMTCknIEFTIGNvbXAyIERFRkFVTFQgJygxMjMpJyBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyBjb21wMiAKKy0tLS0tLS0KKyAoMTIzKQorKDEgcm93KQorCitTRUxF Q1QgQ0FTVCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDEgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0t ZXJyb3IKK0VSUk9SOiAgdmFsdWUgZm9yIGRvbWFpbiBkX2ludDQyIHZpb2xhdGVzIGNoZWNrIGNv bnN0cmFpbnQgImRfaW50NDJfY2hlY2siCitTRUxFQ1QgQ0FTVCgxMSBBUyBkX2ludDQyIERFRkFV TFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZF9pbnQ0MiAKKy0tLS0tLS0tLQorICAgICAg NDIKKygxIHJvdykKKworU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorRVJST1I6ICBkb21haW4gZF9pbnQ0MiBkb2Vz IG5vdCBhbGxvdyBudWxsIHZhbHVlcworU0VMRUNUIENBU1QoTlVMTCBBUyBkX2ludDQyIERFRkFV TFQgNDIgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgZF9pbnQ0MiAKKy0tLS0tLS0tLQorICAgICAg NDIKKygxIHJvdykKKworU0VMRUNUIENBU1QoJygsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5 cG1vZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgY29tcF9kb21haW5fd2l0 aF90eXBtb2QgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVD VCBDQVNUKCcoTlVMTCw0MiknIEFTIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kIERFRkFVTFQgJygx LDIpJyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAoIjEgICIsMikKKygxIHJvdykKKworU0VMRUNUIENB U1QoJyhOVUxMLDQyKScgQVMgY29tcF9kb21haW5fd2l0aF90eXBtb2QgREVGQVVMVCAnKDEyMzQs MiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitFUlJPUjogIHZhbHVlIHRvbyBsb25n IGZvciB0eXBlIGNoYXJhY3RlcigzKQorTElORSAxOiAuLi5TVCgnKE5VTEwsNDIpJyBBUyBjb21w X2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMTIzNCwyKScuLi4KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCitTRUxFQ1Qg Q0FTVChBUlJBWVs0Miw0MV0gQVMgZF9pbnQ0MltdIERFRkFVTFQgJ3s0MiwgNDJ9JyBPTiBDT05W RVJTSU9OIEVSUk9SKTsKKyAgYXJyYXkgIAorLS0tLS0tLS0tCisgezQyLDQyfQorKDEgcm93KQor CitTRUxFQ1QgQ0FTVChBUlJBWVs0Miw0MV0gQVMgZF9pbnRfYXJyIERFRkFVTFQgJ3s0MSwgNDN9 JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgYXJyYXkgIAorLS0tLS0tLS0tCisgezQxLDQzfQor KDEgcm93KQorCistLSB0ZXN0IGFycmF5IGNvZXJjZQorU0VMRUNUIENBU1QoYXJyYXlbJ2EnOjp0 ZXh0XSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IK K0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdlcjogImEiCitTRUxF Q1QgQ0FTVChhcnJheVsnYSddIEFTIGludFtdIERFRkFVTFQgQVJSQVlbMV0gT04gQ09OVkVSU0lP TiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgezF9CisoMSByb3cpCisKK1NFTEVDVCBDQVNU KGFycmF5WzExLjEyXSBBUyBkYXRlW10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChhcnJheVsxMTEx MTExMTExMTExMTExMV0gQVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVChhcnJheVtbJ2Fi YyddLFs0NTZdXSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7Cisg YXJyYXkgCistLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCd7MTIzLGFiYyw0NTZ9 JyBBUyBpbnRbXSBERUZBVUxUICd7LTc4OX0nIE9OIENPTlZFUlNJT04gRVJST1IpOworICBpbnQ0 ICAKKy0tLS0tLS0tCisgey03ODl9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCd7MjM0LGRlZiw1 Njd9Jzo6dGV4dFtdIEFTIGludGVnZXJbXSBERUZBVUxUICd7LTEwMTF9JyBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyAgaW50NCAgIAorLS0tLS0tLS0tCisgey0xMDExfQorKDEgcm93KQorCitTRUxF Q1QgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7 MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgYXJyYXkgCistLS0tLS0tCisgezEsMn0KKygx IHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlbWycxJywgJzInXSwgWyd0aHJlZScsICdhJ11dIEFT IGludFtdIERFRkFVTFQgJ3syMSwyMn0nIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLW9rCisgIGFy cmF5ICAKKy0tLS0tLS0tLQorIHsyMSwyMn0KKygxIHJvdykKKworU0VMRUNUIENBU1QoQVJSQVlb WycxJywgJzInXSwgWyd0aHJlZSc6OmludCwgJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezIxLDIy fScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBz eW50YXggZm9yIHR5cGUgaW50ZWdlcjogInRocmVlIgorTElORSAxOiBTRUxFQ1QgQ0FTVChBUlJB WVtbJzEnLCAnMiddLCBbJ3RocmVlJzo6aW50LCAnYSddXSBBUyBpbnRbXSAuLi4KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KK1NFTEVDVCBDQVNUKEFSUkFZWzEsICd0 aHJlZSc6OmludF0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJP Uik7IC0tZXJyb3IKK0VSUk9SOiAgaW52YWxpZCBpbnB1dCBzeW50YXggZm9yIHR5cGUgaW50ZWdl cjogInRocmVlIgorTElORSAxOiBTRUxFQ1QgQ0FTVChBUlJBWVsxLCAndGhyZWUnOjppbnRdIEFT IGludFtdIERFRkFVTFQgJ3syMSwyMn0uLi4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgorLS0tLS1zYWZlIGNhc3Qgd2l0aCBnZW9tZXRyeSBkYXRhIHR5cGUKK1NFTEVDVCBDQVNUKCco MSwyKSc6OnBvaW50IEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7Cisg ICAgIGJveCAgICAgCistLS0tLS0tLS0tLS0tCisgKDEsMiksKDEsMikKKygxIHJvdykKKworU0VM RUNUIENBU1QoJ1soTmFOLDEpLChOYU4saW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0t LS0tLS0tLQorIChOYU4sSW5maW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbKDFlKzMw MCxJbmZpbml0eSksKDFlKzMwMCxJbmZpbml0eSldJzo6bHNlZyBBUyBwb2ludCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgcG9pbnQgICAgICAgCistLS0tLS0tLS0t LS0tLS0tLS0tCisgKDFlKzMwMCxJbmZpbml0eSkKKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1so MSwyKSwoMyw0KV0nOjpwYXRoIGFzIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworIHBvbHlnb24gCistLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIENBU1Qo JyhOYU4sMS4wLE5hTixpbmZpbml0eSknOjpib3ggQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworICAgICBwb2ludCAgICAgIAorLS0tLS0tLS0tLS0tLS0tLQorIChO YU4sSW5maW5pdHkpCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCcoMi4wLDIuMCwwLjAsMC4wKSc6 OmJveCBBUyBsc2VnIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgbHNl ZyAgICAgIAorLS0tLS0tLS0tLS0tLS0tCisgWygyLDIpLCgwLDApXQorKDEgcm93KQorCitTRUxF Q1QgQ0FTVCgnKDIuMCwyLjAsMC4wLDAuMCknOjpib3ggQVMgcG9seWdvbiBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICAgICAgcG9seWdvbiAgICAgICAgICAKKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgoMCwwKSwoMCwyKSwoMiwyKSwoMiwwKSkKKygxIHJv dykKKworU0VMRUNUIENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIHBhdGggREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIHBhdGggCistLS0tLS0KKyAKKygxIHJvdykK KworU0VMRUNUIENBU1QoJygyLjAsaW5maW5pdHksTmFOLGluZmluaXR5KSc6OmJveCBBUyBjaXJj bGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworICAgICAgICBjaXJjbGUgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIDwoTmFOLEluZmluaXR5KSxOYU4+CisoMSBy b3cpCisKK1NFTEVDVCBDQVNUKCcoTmFOLDAuMCksKDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6 cG9seWdvbiBBUyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAg IHBvaW50ICAgICAgCistLS0tLS0tLS0tLS0tLS0tCisgKE5hTixJbmZpbml0eSkKKygxIHJvdykK KworU0VMRUNUIENBU1QoJygyLjAsMC4wKSwoMi4wLDQuMCksKDAuMCwwLjApJzo6cG9seWdvbiBB UyBwYXRoIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgcGF0aCAg ICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKCgyLDApLCgyLDQpLCgwLDApKQorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCgnKDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5 Z29uIEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGJveCAg ICAgCistLS0tLS0tLS0tLS0tCisgKDIsNCksKDAsMCkKKygxIHJvdykKKworU0VMRUNUIENBU1Qo JyhOYU4saW5maW5pdHkpLCgyLjAsNC4wKSwoMC4wLGluZmluaXR5KSc6OnBvbHlnb24gQVMgY2ly Y2xlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgICAgY2lyY2xlICAg ICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyA8KE5hTixJbmZpbml0eSksTmFOPgorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCgnPCg1LDEpLDM+Jzo6Y2lyY2xlIEFTIHBvaW50IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBwb2ludCAKKy0tLS0tLS0KKyAoNSwxKQorKDEg cm93KQorCitTRUxFQ1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIGJveCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgIGJveCAgICAgCistLS0tLS0tLS0tLS0tCisg KDMsNSksKDMsNSkKKygxIHJvdykKKworLS0gbm90IHN1cHBvcnRlZCBiZWNhdXNlIHRoZSBjYXN0 IGZyb20gY2lyY2xlIHRvIHBvbHlnb24gaXMgaW1wbGVtZW50ZWQgYXMgYSBTUUwKKy0tIGZ1bmN0 aW9uLCB3aGljaCBjYW5ub3QgYmUgZXJyb3Itc2FmZS4KK1NFTEVDVCBDQVNUKCc8KDMsNSksMD4n OjpjaXJjbGUgYXMgcG9seWdvbiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitF UlJPUjogIGNhbm5vdCBjYXN0IHR5cGUgY2lyY2xlIHRvIHBvbHlnb24gd2hlbiBERUZBVUxUIGV4 cHJlc3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJ TkUgMTogU0VMRUNUIENBU1QoJzwoMyw1KSwwPic6OmNpcmNsZSBhcyBwb2x5Z29uIERFRkFVTFQg TlVMTCBPTiBDLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBjYXN0 IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUuCistLS0tLXNhZmUg Y2FzdCBmcm9tL3RvIG1vbmV5IHR5cGUgaXMgbm90IHN1cHBvcnRlZCwgYWxsIHRoZSBmb2xsb3dp bmcgd291bGQgcmVzdWx0IGVycm9yCitTRUxFQ1QgQ0FTVChOVUxMOjppbnQ4IEFTIG1vbmV5IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlw ZSBiaWdpbnQgdG8gbW9uZXkgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGlu IENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENBU1QoTlVMTDo6 aW50OCBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFLi4uCisgICAgICAgICAg ICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRp b24gaXMgbm90IGVycm9yIHNhZmUuCitTRUxFQ1QgQ0FTVChOVUxMOjppbnQ0IEFTIG1vbmV5IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK0VSUk9SOiAgY2Fubm90IGNhc3QgdHlw ZSBpbnRlZ2VyIHRvIG1vbmV5IHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBp biBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKE5VTEw6 OmludDQgQVMgbW9uZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRS4uLgorICAgICAgICAg ICAgICAgICAgICBeCitISU5UOiAgRXhwbGljaXQgY2FzdCBpcyBkZWZpbmVkIGJ1dCBkZWZpbml0 aW9uIGlzIG5vdCBlcnJvciBzYWZlLgorU0VMRUNUIENBU1QoTlVMTDo6bnVtZXJpYyBBUyBtb25l eSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjogIGNhbm5vdCBjYXN0 IHR5cGUgbnVtZXJpYyB0byBtb25leSB3aGVuIERFRkFVTFQgZXhwcmVzc2lvbiBpcyBzcGVjaWZp ZWQgaW4gQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUgorTElORSAxOiBTRUxFQ1QgQ0FTVChO VUxMOjpudW1lcmljIEFTIG1vbmV5IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU8uLi4KKyAgICAg ICAgICAgICAgICAgICAgXgorSElOVDogIEV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVm aW5pdGlvbiBpcyBub3QgZXJyb3Igc2FmZS4KK1NFTEVDVCBDQVNUKE5VTEw6Om1vbmV5IEFTIG51 bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworRVJST1I6ICBjYW5ub3Qg Y2FzdCB0eXBlIG1vbmV5IHRvIG51bWVyaWMgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3Bl Y2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUgMTogU0VMRUNUIENB U1QoTlVMTDo6bW9uZXkgQVMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPLi4uCisg ICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlzIGRlZmluZWQgYnV0 IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUuCitTRUxFQ1QgQ0FTVChOVUxMOjptb25leVtd IEFTIG51bWVyaWNbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitFUlJPUjog IGNhbm5vdCBjYXN0IHR5cGUgbW9uZXlbXSB0byBudW1lcmljW10gd2hlbiBERUZBVUxUIGV4cHJl c3Npb24gaXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKK0xJTkUg MTogU0VMRUNUIENBU1QoTlVMTDo6bW9uZXlbXSBBUyBudW1lcmljW10gREVGQVVMVCBOVUxMIE9O IENPTlZFLi4uCisgICAgICAgICAgICAgICAgICAgIF4KK0hJTlQ6ICBFeHBsaWNpdCBjYXN0IGlz IGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUuCistLS0tLXNhZmUgY2Fz dCBmcm9tIGJ5dGVhIHR5cGUgdG8gb3RoZXIgZGF0YSB0eXBlcworU0VMRUNUIENBU1QgKCdceDEx MjIzMzQ0NTU2Njc3ODg5OSc6OmJ5dGVhIEFTIGludDggREVGQVVMVCAxOSBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyBpbnQ4IAorLS0tLS0tCisgICAxOQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgn XHgxMjM0NTY3ODlBJzo6Ynl0ZWEgQVMgaW50NCBERUZBVUxUIDIwIE9OIENPTlZFUlNJT04gRVJS T1IpOworIGludDQgCistLS0tLS0KKyAgIDIwCisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdceDEy MzQ1Nic6OmJ5dGVhIEFTIGludDIgREVGQVVMVCAyMSBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBp bnQyIAorLS0tLS0tCisgICAyMQorKDEgcm93KQorCistLS0tLXNhZmUgY2FzdCBmcm9tIGJpdCB0 eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCcxMTExMTExMTExMDAwMDEnOjpi aXQoMTAwKSBBUyBJTlQgREVGQVVMVCAyMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0IAor LS0tLS0tCisgICAyMgorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCAoJzExMTExMTExMTEwMDAwMSc6 OmJpdCgxMDApIEFTIElOVDggREVGQVVMVCAyMyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ4 IAorLS0tLS0tCisgICAyMworKDEgcm93KQorCistLS0tLXNhZmUgY2FzdCBmcm9tIHRleHQgdHlw ZSB0byBvdGhlciBkYXRhIHR5cGVzCitzZWxlY3QgQ0FTVCgnYS5iLmMuZCc6OnRleHQgYXMgcmVn Y2xhc3MgZGVmYXVsdCBOVUxMIG9uIGNvbnZlcnNpb24gZXJyb3IpOworIHJlZ2NsYXNzIAorLS0t LS0tLS0tLQorIAorKDEgcm93KQorCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdChjb2wwIHRl eHQpOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdChjb2wwKSBWQUxVRVMgKCc8dmFsdWU+b25l PC92YWx1ZScpOworU0VMRUNUIGNvbDAgYXMgdGV4dCwKKyAgICAgICBDQVNUKGNvbDAgQVMgcmVn Y2xhc3MgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3JlZ2NsYXNzLAor ICAgICAgIENBU1QoY29sMCBBUyByZWdjbGFzcyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgSVMgTlVMTCBhcyBleHBlY3RfdHJ1ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgImNoYXIi ICBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fY2hhciwKKyAgICAgICBD QVNUKGNvbDAgQVMgbmFtZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f bmFtZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgeG1sIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b194bWwKK0ZST00gdGVzdF9zYWZlY2FzdDsKKyAgICAgICB0ZXh0ICAgICAg ICB8IHRvX3JlZ2NsYXNzIHwgZXhwZWN0X3RydWUgfCB0b19jaGFyIHwgICAgICB0b19uYW1lICAg ICAgfCB0b194bWwgCistLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLQorIDx2YWx1ZT5vbmU8 L3ZhbHVlIHwgICAgICAgICAgICAgfCB0ICAgICAgICAgICB8IDwgICAgICAgfCA8dmFsdWU+b25l PC92YWx1ZSB8IAorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLngnIGFzIGluZXQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGluZXQgCistLS0tLS0KKyAKKygx IHJvdykKKworU0VMRUNUIENBU1QoJzE5Mi4xNjguMS4yLzMwJyBhcyBjaWRyIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjaWRyIAorLS0tLS0tCisgCisoMSByb3cpCisKK1NF TEVDVCBDQVNUKCcyMjowMDo1YzowODo1NTowODowMTowMic6Om1hY2FkZHI4IGFzIG1hY2FkZHIg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIG1hY2FkZHIgCistLS0tLS0tLS0K KyAKKygxIHJvdykKKworLS0tLS1zYWZlIGNhc3QgYmV0d2VlZW4gcmFuZ2UgZGF0YSB0eXBlcwor U0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50NHJhbmdlIEFTIGludDRtdWx0aXJhbmdlIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBpbnQ0bXVsdGlyYW5nZSAKKy0tLS0tLS0tLS0t LS0tLS0KKyB7WzEsMyl9CisoMSByb3cpCisKK1NFTEVDVCBDQVNUKCdbMSwyXSc6OmludDhyYW5n ZSBBUyBpbnQ4bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7Cisg aW50OG11bHRpcmFuZ2UgCistLS0tLS0tLS0tLS0tLS0tCisge1sxLDMpfQorKDEgcm93KQorCitT RUxFQ1QgQ0FTVCgnWzEsMl0nOjpudW1yYW5nZSAgQVMgbnVtbXVsdGlyYW5nZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CisgbnVtbXVsdGlyYW5nZSAKKy0tLS0tLS0tLS0tLS0t LQorIHtbMSwyXX0KKygxIHJvdykKKworU0VMRUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHld Jzo6ZGF0ZXJhbmdlIEFTIGRhdGVtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKKyAgICAgZGF0ZW11bHRpcmFuZ2UgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCisge1staW5maW5pdHksaW5maW5pdHldfQorKDEgcm93KQorCitTRUxFQ1QgQ0FTVCgnWy1p bmZpbml0eSxpbmZpbml0eV0nOjp0c3JhbmdlIEFTIHRzbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUik7CisgICAgICB0c211bHRpcmFuZ2UgICAgICAKKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHtbLWluZmluaXR5LGluZmluaXR5XX0KKygxIHJvdykKKworU0VM RUNUIENBU1QoJ1staW5maW5pdHksaW5maW5pdHldJzo6dHN0enJhbmdlIEFTIHRzdHptdWx0aXJh bmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyAgICAgdHN0em11bHRpcmFu Z2UgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisge1staW5maW5pdHksaW5maW5pdHld fQorKDEgcm93KQorCistLS0tLXNhZmUgY2FzdCBiZXR3ZWVlbiBudW1lcmljIGRhdGEgdHlwZXMK K0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0MSgKKyAgY29sMSBmbG9hdDQsIGNvbDIgZmxvYXQ4 LCBjb2wzIG51bWVyaWMsIGNvbDQgbnVtZXJpY1tdLAorICBjb2w1IGludDIgZGVmYXVsdCAzMjc2 NywKKyAgY29sNiBpbnQ0IGRlZmF1bHQgMzI3NjgsCisgIGNvbDcgaW50OCBkZWZhdWx0IDQyOTQ5 NjcyOTYpOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCcxMS4xMjM0JywgJzEx LjEyMzQnLCAnOTIyMzM3MjAzNjg1NDc3NTgwOCcsICd7MTEuMTIzNH0nOjpudW1lcmljW10pOwor SU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCdpbmYnLCAnaW5mJywgJ2luZicsICd7 MTEuMTIzNCwgMTIsIGluZiwgTmFOfSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3Nh ZmVjYXN0MSBWQUxVRVMoJy1pbmYnLCAnLWluZicsICctaW5mJywgJ3sxMS4xMjM0LCAxMiwgLWlu ZiwgTmFOfSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMo J05hTicsICdOYU4nLCAnTmFOJywgJ3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVyaWNb XSk7CitTRUxFQ1QgY29sNSBhcyBpbnQyLAorICAgICAgIENBU1QoY29sNSBBUyBpbnQyIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29s NSBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAor ICAgICAgIENBU1QoY29sNSBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDUgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDUgYXMgZmxvYXQ0IERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FT VChjb2w1IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f ZmxvYXQ4LAorICAgICAgIENBU1QoY29sNSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sNSBhcyBudW1lcmlj KDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3Nj YWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworIGludDIgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0 b19vaWQgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwgdG9fZmxvYXQ4IHwgdG9fbnVtZXJpYyB8IHRv X251bWVyaWNfc2NhbGUgCistLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0KKyAzMjc2NyB8ICAgMzI3NjcgfCAgIDMyNzY3IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAg ICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAgMzI3NjcgfCAgICAgICAgICAzMjc2Ny4wCisgMzI3 NjcgfCAgIDMyNzY3IHwgICAzMjc2NyB8ICAzMjc2NyB8ICAgMzI3NjcgfCAgICAgMzI3NjcgfCAg ICAgMzI3NjcgfCAgICAgIDMyNzY3IHwgICAgICAgICAgMzI3NjcuMAorIDMyNzY3IHwgICAzMjc2 NyB8ICAgMzI3NjcgfCAgMzI3NjcgfCAgIDMyNzY3IHwgICAgIDMyNzY3IHwgICAgIDMyNzY3IHwg ICAgICAzMjc2NyB8ICAgICAgICAgIDMyNzY3LjAKKyAzMjc2NyB8ICAgMzI3NjcgfCAgIDMyNzY3 IHwgIDMyNzY3IHwgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAzMjc2NyB8ICAgICAgMzI3Njcg fCAgICAgICAgICAzMjc2Ny4wCisoNCByb3dzKQorCitTRUxFQ1QgY29sNiBhcyBpbnQ0LAorICAg ICAgIENBU1QoY29sNiBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNiBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sNiBBUyBvaWQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDYg YXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAg ICAgICBDQVNUKGNvbDYgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2w2IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sNiBhcyBu dW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAor ICAgICAgIENBU1QoY29sNiBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOworIGlu dDQgIHwgdG9faW50MiB8IHRvX2ludDQgfCB0b19vaWQgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0IHwg dG9fZmxvYXQ4IHwgdG9fbnVtZXJpYyB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyAzMjc2OCB8ICAgICAgICAgfCAgIDMy NzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3 NjggfCAgICAgICAgICAzMjc2OC4wCisgMzI3NjggfCAgICAgICAgIHwgICAzMjc2OCB8ICAzMjc2 OCB8ICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgMzI3NjggfCAgICAgIDMyNzY4IHwgICAgICAg ICAgMzI3NjguMAorIDMyNzY4IHwgICAgICAgICB8ICAgMzI3NjggfCAgMzI3NjggfCAgIDMyNzY4 IHwgICAgIDMyNzY4IHwgICAgIDMyNzY4IHwgICAgICAzMjc2OCB8ICAgICAgICAgIDMyNzY4LjAK KyAzMjc2OCB8ICAgICAgICAgfCAgIDMyNzY4IHwgIDMyNzY4IHwgICAzMjc2OCB8ICAgICAzMjc2 OCB8ICAgICAzMjc2OCB8ICAgICAgMzI3NjggfCAgICAgICAgICAzMjc2OC4wCisoNCByb3dzKQor CitTRUxFQ1QgY29sNyBhcyBpbnQ4LAorICAgICAgIENBU1QoY29sNyBBUyBpbnQyIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sNyBB UyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAg ICAgIENBU1QoY29sNyBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDcgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDcgYXMgZmxvYXQ0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChj b2w3IGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxv YXQ4LAorICAgICAgIENBU1QoY29sNyBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sNyBhcyBudW1lcmljKDEw LDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxl CitGUk9NIHRlc3Rfc2FmZWNhc3QxOworICAgIGludDggICAgfCB0b19pbnQyIHwgdG9faW50NCB8 IHRvX29pZCB8ICB0b19pbnQ4ICAgfCAgdG9fZmxvYXQ0ICB8IHRvX2Zsb2F0OCAgfCB0b19udW1l cmljIHwgdG9fbnVtZXJpY19zY2FsZSAKKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAg IHwgICAgICAgIHwgNDI5NDk2NzI5NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5 NjcyOTYgfCAgICAgICAgICAgICAgICAgCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAg IHwgICAgICAgIHwgNDI5NDk2NzI5NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5 NjcyOTYgfCAgICAgICAgICAgICAgICAgCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAg IHwgICAgICAgIHwgNDI5NDk2NzI5NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5 NjcyOTYgfCAgICAgICAgICAgICAgICAgCisgNDI5NDk2NzI5NiB8ICAgICAgICAgfCAgICAgICAg IHwgICAgICAgIHwgNDI5NDk2NzI5NiB8IDQuMjk0OTdlKzA5IHwgNDI5NDk2NzI5NiB8IDQyOTQ5 NjcyOTYgfCAgICAgICAgICAgICAgICAgCisoNCByb3dzKQorCitTRUxFQ1QgY29sMyBhcyBudW1l cmljLAorICAgICAgIENBU1QoY29sMyBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMyBBUyBpbnQ0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMyBBUyBv aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBD QVNUKGNvbDMgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f aW50OCwKKyAgICAgICBDQVNUKGNvbDMgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wzIGFzIGZsb2F0OCBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1Qo Y29sMyBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19u dW1lcmljLAorICAgICAgIENBU1QoY29sMyBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNh c3QxOworICAgICAgIG51bWVyaWMgICAgICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29pZCB8 IHRvX2ludDggfCAgdG9fZmxvYXQ0ICB8ICAgICAgdG9fZmxvYXQ4ICAgICAgIHwgICAgIHRvX251 bWVyaWMgICAgICB8IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0K KyA5MjIzMzcyMDM2ODU0Nzc1ODA4IHwgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgfCAgICAg ICAgIHwgOS4yMjMzN2UrMTggfCA5LjIyMzM3MjAzNjg1NDc4ZSsxOCB8IDkyMjMzNzIwMzY4NTQ3 NzU4MDggfCAgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBJbmZpbml0eSB8ICAgICAgICAg fCAgICAgICAgIHwgICAgICAgIHwgICAgICAgICB8ICAgIEluZmluaXR5IHwgICAgICAgICAgICAg SW5maW5pdHkgfCAgICAgICAgICAgIEluZmluaXR5IHwgICAgICAgICAgICAgICAgIAorICAgICAg ICAgICAtSW5maW5pdHkgfCAgICAgICAgIHwgICAgICAgICB8ICAgICAgICB8ICAgICAgICAgfCAg IC1JbmZpbml0eSB8ICAgICAgICAgICAgLUluZmluaXR5IHwgICAgICAgICAgIC1JbmZpbml0eSB8 ICAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAgICAgTmFOIHwgICAgICAgICB8ICAgICAg ICAgfCAgICAgICAgfCAgICAgICAgIHwgICAgICAgICBOYU4gfCAgICAgICAgICAgICAgICAgIE5h TiB8ICAgICAgICAgICAgICAgICBOYU4gfCAgICAgICAgICAgICAgTmFOCisoNCByb3dzKQorCitT RUxFQ1QgY29sNCBhcyBudW1fYXJyLAorICAgICAgIENBU1QoY29sNCBBUyBpbnQyW10gREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGludDJhcnIsCisgICAgICAgQ0FTVChjb2w0 IEFTIGludDRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50NGFyciwK KyAgICAgICBDQVNUKGNvbDQgYXMgaW50OFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyBpbnQ4YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBmbG9hdDRbXSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgZjRhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZs b2F0OFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBmOGFyciwKKyAgICAg ICBDQVNUKGNvbDQgYXMgbnVtZXJpYygxMCwxKVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyBudW1hcnIKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisgICAgICAgICAgbnVtX2Fy ciAgICAgICAgICAgfCBpbnQyYXJyIHwgaW50NGFyciB8IGludDhhcnIgfCAgICAgICAgICAgZjRh cnIgICAgICAgICAgICB8ICAgICAgICAgICBmOGFyciAgICAgICAgICAgIHwgbnVtYXJyIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0KKyB7MTEuMTIzNH0gICAgICAgICAgICAgICAgICB8IHsxMX0gICAgfCB7MTF9ICAg IHwgezExfSAgICB8IHsxMS4xMjM0fSAgICAgICAgICAgICAgICAgIHwgezExLjEyMzR9ICAgICAg ICAgICAgICAgICAgfCB7MTEuMX0KKyB7MTEuMTIzNCwxMixJbmZpbml0eSxOYU59ICB8ICAgICAg ICAgfCAgICAgICAgIHwgICAgICAgICB8IHsxMS4xMjM0LDEyLEluZmluaXR5LE5hTn0gIHwgezEx LjEyMzQsMTIsSW5maW5pdHksTmFOfSAgfCAKKyB7MTEuMTIzNCwxMiwtSW5maW5pdHksTmFOfSB8 ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8IHsxMS4xMjM0LDEyLC1JbmZpbml0eSxOYU59 IHwgezExLjEyMzQsMTIsLUluZmluaXR5LE5hTn0gfCAKKyB7MTEuMTIzNCwxMiwtSW5maW5pdHks TmFOfSB8ICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICB8IHsxMS4xMjM0LDEyLC1JbmZpbml0 eSxOYU59IHwgezExLjEyMzQsMTIsLUluZmluaXR5LE5hTn0gfCAKKyg0IHJvd3MpCisKK1NFTEVD VCBjb2wxIGFzIGZsb2F0NCwKKyAgICAgICBDQVNUKGNvbDEgQVMgaW50MiBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50MiwKKyAgICAgICBDQVNUKGNvbDEgQVMgaW50 NCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50NCwKKyAgICAgICBD QVNUKGNvbDEgQVMgb2lkIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19v aWQsCisgICAgICAgQ0FTVChjb2wxIGFzIGludDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX2ludDgsCisgICAgICAgQ0FTVChjb2wxIGFzIGZsb2F0NCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ0LAorICAgICAgIENBU1QoY29sMSBh cyBmbG9hdDggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0OCwK KyAgICAgICBDQVNUKGNvbDEgYXMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDEgYXMgbnVtZXJpYygxMCwxKSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fbnVtZXJpY19zY2FsZQorRlJP TSB0ZXN0X3NhZmVjYXN0MTsKKyAgZmxvYXQ0ICAgfCB0b19pbnQyIHwgdG9faW50NCB8IHRvX29p ZCB8IHRvX2ludDggfCB0b19mbG9hdDQgfCAgICB0b19mbG9hdDggICAgIHwgdG9fbnVtZXJpYyB8 IHRvX251bWVyaWNfc2NhbGUgCistLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLQorICAgMTEuMTIzNCB8ICAgICAgMTEgfCAgICAgIDExIHwgICAg ICAgIHwgICAgICAxMSB8ICAgMTEuMTIzNCB8IDExLjEyMzM5OTczNDQ5NzEgfCAgICAxMS4xMjM0 IHwgICAgICAgICAgICAgMTEuMQorICBJbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgIHwgICAgICAgICB8ICBJbmZpbml0eSB8ICAgICAgICAgSW5maW5pdHkgfCAgIEluZmluaXR5 IHwgICAgICAgICAgICAgICAgIAorIC1JbmZpbml0eSB8ICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgIHwgICAgICAgICB8IC1JbmZpbml0eSB8ICAgICAgICAtSW5maW5pdHkgfCAgLUluZmluaXR5 IHwgICAgICAgICAgICAgICAgIAorICAgICAgIE5hTiB8ICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgIHwgICAgICAgICB8ICAgICAgIE5hTiB8ICAgICAgICAgICAgICBOYU4gfCAgICAgICAgTmFO IHwgICAgICAgICAgICAgIE5hTgorKDQgcm93cykKKworU0VMRUNUIGNvbDIgYXMgZmxvYXQ4LAor ICAgICAgIENBU1QoY29sMiBBUyBpbnQyIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMiBBUyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAgICAgIENBU1QoY29sMiBBUyBvaWQgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX29pZCwKKyAgICAgICBDQVNUKGNv bDIgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50OCwK KyAgICAgICBDQVNUKGNvbDIgYXMgZmxvYXQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wyIGFzIGZsb2F0OCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAgICAgIENBU1QoY29sMiBh cyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmlj LAorICAgICAgIENBU1QoY29sMiBhcyBudW1lcmljKDEwLDEpIERFRkFVTFQgTlVMTCBPTiBDT05W RVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QxOwor ICBmbG9hdDggICB8IHRvX2ludDIgfCB0b19pbnQ0IHwgdG9fb2lkIHwgdG9faW50OCB8IHRvX2Zs b2F0NCB8IHRvX2Zsb2F0OCB8IHRvX251bWVyaWMgfCB0b19udW1lcmljX3NjYWxlIAorLS0tLS0t LS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorICAgMTEuMTIzNCB8 ICAgICAgMTEgfCAgICAgIDExIHwgICAgICAgIHwgICAgICAxMSB8ICAgMTEuMTIzNCB8ICAgMTEu MTIzNCB8ICAgIDExLjEyMzQgfCAgICAgICAgICAgICAxMS4xCisgIEluZmluaXR5IHwgICAgICAg ICB8ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgIHwgIEluZmluaXR5IHwgIEluZmluaXR5IHwg ICBJbmZpbml0eSB8ICAgICAgICAgICAgICAgICAKKyAtSW5maW5pdHkgfCAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICB8ICAgICAgICAgfCAtSW5maW5pdHkgfCAtSW5maW5pdHkgfCAgLUluZmlu aXR5IHwgICAgICAgICAgICAgICAgIAorICAgICAgIE5hTiB8ICAgICAgICAgfCAgICAgICAgIHwg ICAgICAgIHwgICAgICAgICB8ICAgICAgIE5hTiB8ICAgICAgIE5hTiB8ICAgICAgICBOYU4gfCAg ICAgICAgICAgICAgTmFOCisoNCByb3dzKQorCistLSBkYXRlL3RpbWVzdGFtcC9pbnRlcnZhbCBy ZWxhdGVkIHNhZmUgdHlwZSBjYXN0CitDUkVBVEUgVEFCTEUgdGVzdF9zYWZlY2FzdDIoCisgIGNv bDAgZGF0ZSwgY29sMSB0aW1lc3RhbXAsIGNvbDIgdGltZXN0YW1wdHosCisgIGNvbDMgaW50ZXJ2 YWwsIGNvbDQgdGltZSwgY29sNSB0aW1ldHopOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDIg VkFMVUVTCisoJy1pbmZpbml0eScsICctaW5maW5pdHknLCAnLWluZmluaXR5JywgJy1pbmZpbml0 eScsCisgICcyMDAzLTAzLTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsnLCAnMjAwMy0wNy0w NyAxNTozNjozOSBBbWVyaWNhL05ld19Zb3JrJyksCisoJy1pbmZpbml0eScsICdpbmZpbml0eScs ICdpbmZpbml0eScsICdpbmZpbml0eScsCisgICcxMTo1OTo1OS45OSBQTScsICcxMTo1OTo1OS45 OSBQTSBQRFQnKTsKK1NFTEVDVCBjb2wwIGFzIGRhdGUsCisgICAgICAgQ0FTVChjb2wwIEFTIHRp bWVzdGFtcHR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3Rh bXB0eiwKKyAgICAgICBDQVNUKGNvbDAgQVMgZGF0ZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9fZGF0ZSwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZSBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXMsCisgICAgICAgQ0FTVChjb2wwIEFT IHRpbWV0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6LAor ICAgICAgIENBU1QoY29sMCBBUyB0aW1lc3RhbXAoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyAg IGRhdGUgICAgfCB0b190aW1lc3RhbXB0eiB8ICB0b19kYXRlICB8IHRvX3RpbWVzIHwgdG9fdGlt ZXR6IHwgdG9fdGltZXN0YW1wX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisg LWluZmluaXR5IHwgLWluZmluaXR5ICAgICAgfCAtaW5maW5pdHkgfCAgICAgICAgICB8ICAgICAg ICAgICB8IC1pbmZpbml0eQorIC1pbmZpbml0eSB8IC1pbmZpbml0eSAgICAgIHwgLWluZmluaXR5 IHwgICAgICAgICAgfCAgICAgICAgICAgfCAtaW5maW5pdHkKKygyIHJvd3MpCisKK1NFTEVDVCBj b2wxIGFzIHRpbWVzdGFtcCwKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wdHogREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENB U1QoY29sMSBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19k YXRlLAorICAgICAgIENBU1QoY29sMSBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDEgQVMgdGltZXR6IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wx IEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f dGltZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworIHRpbWVzdGFtcCB8IHRvX3Rp bWVzdGFtcHR6IHwgIHRvX2RhdGUgIHwgdG9fdGltZXMgfCB0b190aW1ldHogfCB0b190aW1lc3Rh bXBfc2NhbGUgCistLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAtaW5maW5pdHkgfCAtaW5m aW5pdHkgICAgICB8IC1pbmZpbml0eSB8ICAgICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5 CisgaW5maW5pdHkgIHwgaW5maW5pdHkgICAgICAgfCBpbmZpbml0eSAgfCAgICAgICAgICB8ICAg ICAgICAgICB8IGluZmluaXR5CisoMiByb3dzKQorCitTRUxFQ1QgY29sMiBhcyB0aW1lc3RhbXB0 eiwKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMiBBUyBkYXRl IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENB U1QoY29sMiBBUyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190 aW1lcywKKyAgICAgICBDQVNUKGNvbDIgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcCgy KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxl CitGUk9NIHRlc3Rfc2FmZWNhc3QyOworIHRpbWVzdGFtcHR6IHwgdG9fdGltZXN0YW1wdHogfCAg dG9fZGF0ZSAgfCB0b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3RpbWVzdGFtcF9zY2FsZSAKKy0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgLWluZmluaXR5ICAgfCAtaW5maW5pdHkgICAg ICB8IC1pbmZpbml0eSB8ICAgICAgICAgIHwgICAgICAgICAgIHwgLWluZmluaXR5CisgaW5maW5p dHkgICAgfCBpbmZpbml0eSAgICAgICB8IGluZmluaXR5ICB8ICAgICAgICAgIHwgICAgICAgICAg IHwgaW5maW5pdHkKKygyIHJvd3MpCisKK1NFTEVDVCBjb2wzIGFzIGludGVydmFsLAorICAgICAg IENBU1QoY29sMyBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wzIEFTIGRhdGUgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FTVChjb2wzIEFT IHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVzLAorICAg ICAgIENBU1QoY29sMyBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDMgQVMgdGltZXN0YW1wKDIpIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUsCisgICAgICAg Q0FTVChjb2wzIEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19pbnRlcnZhbF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyBpbnRlcnZhbCAg fCB0b190aW1lc3RhbXB0eiB8IHRvX2RhdGUgfCB0b190aW1lcyB8IHRvX3RpbWV0eiB8IHRvX3Rp bWVzdGFtcF9zY2FsZSB8IHRvX2ludGVydmFsX3NjYWxlIAorLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tCisgLWluZmluaXR5IHwgICAgICAgICAgICAgICAgfCAg ICAgICAgIHwgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgfCAtaW5m aW5pdHkKKyBpbmZpbml0eSAgfCAgICAgICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICB8 ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICB8IGluZmluaXR5CisoMiByb3dzKQorCitT RUxFQ1QgY29sNCBhcyB0aW1lLAorICAgICAgIENBU1QoY29sNCBBUyB0aW1lKDIpIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDQg QVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBJUyBOT1QgTlVMTCBh cyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2w0IEFTIGludGVydmFsKDIpIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDQg QVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2lu dGVydmFsX3NjYWxlCitGUk9NIHRlc3Rfc2FmZWNhc3QyOworICAgIHRpbWUgICAgIHwgIHRvX3Rp bWVzICAgfCB0b190aW1ldHogfCAgICAgICAgICB0b19pbnRlcnZhbCAgICAgICAgICB8ICAgICAg IHRvX2ludGVydmFsX3NjYWxlICAgICAgIAorLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIDE1OjM2OjM5ICAgIHwgMTU6MzY6MzkgICAgfCB0ICAgICAgICAg fCBAIDE1IGhvdXJzIDM2IG1pbnMgMzkgc2VjcyAgICB8IEAgMTUgaG91cnMgMzYgbWlucyAzOSBz ZWNzCisgMjM6NTk6NTkuOTkgfCAyMzo1OTo1OS45OSB8IHQgICAgICAgICB8IEAgMjMgaG91cnMg NTkgbWlucyA1OS45OSBzZWNzIHwgQCAyMyBob3VycyA1OSBtaW5zIDU5Ljk5IHNlY3MKKygyIHJv d3MpCisKK1NFTEVDVCBjb2w1IGFzIHRpbWV0eiwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZSBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZSwKKyAgICAgICBDQVNU KGNvbDUgQVMgdGltZSgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9f dGltZV9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2w1IEFTIHRpbWV0 eig2KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXR6X3NjYWxl LAorICAgICAgIENBU1QoY29sNSBBUyBpbnRlcnZhbCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2w1IEFTIGludGVydmFsKDIp IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZhbF9zY2FsZQor RlJPTSB0ZXN0X3NhZmVjYXN0MjsKKyAgICAgdGltZXR6ICAgICB8ICAgdG9fdGltZSAgIHwgdG9f dGltZV9zY2FsZSB8ICAgdG9fdGltZXR6ICAgIHwgdG9fdGltZXR6X3NjYWxlIHwgdG9faW50ZXJ2 YWwgfCB0b19pbnRlcnZhbF9zY2FsZSAKKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyAxNTozNjozOS0wNCAgICB8IDE1OjM2OjM5ICAg IHwgMTU6MzY6MzkgICAgICB8IDE1OjM2OjM5LTA0ICAgIHwgMTU6MzY6MzktMDQgICAgIHwgICAg ICAgICAgICAgfCAKKyAyMzo1OTo1OS45OS0wNyB8IDIzOjU5OjU5Ljk5IHwgMjM6NTk6NTkuOTkg ICB8IDIzOjU5OjU5Ljk5LTA3IHwgMjM6NTk6NTkuOTktMDcgIHwgICAgICAgICAgICAgfCAKKygy IHJvd3MpCisKK0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0Myhjb2wwIGpzb25iKTsKK0lOU0VS VCBJTlRPIHRlc3Rfc2FmZWNhc3QzKGNvbDApIFZBTFVFUyAoJyJ0ZXN0IicpOworU0VMRUNUIGNv bDAgYXMganNvbmIsCisgICAgICAgQ0FTVChjb2wwIEFTIGludGVnZXIgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludGVnZXIsCisgICAgICAgQ0FTVChjb2wwIEFTIG51 bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisg ICAgICAgQ0FTVChjb2wwIEFTIGJpZ2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ0IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChjb2wwIEFTIGZs b2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxvYXQ4LAorICAg ICAgIENBU1QoY29sMCBBUyBib29sZWFuIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b19ib29sLAorICAgICAgIENBU1QoY29sMCBBUyBzbWFsbGludCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fc21hbGxpbnQKK0ZST00gdGVzdF9zYWZlY2FzdDM7 CisganNvbmIgIHwgdG9faW50ZWdlciB8IHRvX251bWVyaWMgfCB0b19pbnQ4IHwgdG9fZmxvYXQ0 IHwgdG9fZmxvYXQ4IHwgdG9fYm9vbCB8IHRvX3NtYWxsaW50IAorLS0tLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0KKyAidGVzdCIgfCAgICAgICAgICAgIHwgICAgICAgICAgICB8ICAg ICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAKKygx IHJvdykKKworLS0gdGVzdCBkZXBhcnNlCitTRVQgZGF0ZXN0eWxlIFRPIElTTywgWU1EOworQ1JF QVRFIFZJRVcgc2FmZWNhc3R2aWV3IEFTCitTRUxFQ1QgQ0FTVCgnMTIzNCcgYXMgY2hhcigzKSBE RUZBVUxUIC0xMTExIE9OIENPTlZFUlNJT04gRVJST1IpLAorICAgICAgIENBU1QoMSBhcyBkYXRl IERFRkFVTFQgKCgnMjAyNS1EZWMtMDYnOjpkYXRlICsgcmFuZG9tKG1pbj0+MSwgbWF4PT4xOjpp bnQpKSkgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDAsCisgICAgICAgQ0FTVChBUlJBWVtb JzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7MSwyfScgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgY2FzdDEsCisgICAgICAgQ0FTVChBUlJBWVtbJzEnLCAnMiddLCBbJ3Ro cmVlJywgJ2EnXV0gQVMgZGF0ZVtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyBjYXN0MiwKKyAgICAgICBDQVNUKEFSUkFZWyd0aHJlZSddIEFTIElOVFtdIERFRkFVTFQgJ3sx LDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MzsKK1xzdiBzYWZlY2FzdHZpZXcKK0NS RUFURSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnNhZmVjYXN0dmlldyBBUworIFNFTEVDVCBDQVNU KCcxMjM0JyBBUyBjaGFyYWN0ZXIoMykgREVGQVVMVCAnLTExMTEnOjppbnRlZ2VyOjpjaGFyYWN0 ZXIoMykgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgYnBjaGFyLAorICAgIENBU1QoMSBBUyBkYXRl IERFRkFVTFQgJzIwMjUtMTItMDYnOjpkYXRlICsgcmFuZG9tKG1pbiA9PiAxLCBtYXggPT4gMSkg T04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2FzdDAsCisgICAgQ0FTVChBUlJBWVtBUlJBWVsxXSwg QVJSQVlbJ3RocmVlJ10sIEFSUkFZWydhJ11dIEFTIGludGVnZXJbXSBERUZBVUxUICd7MSwyfSc6 OmludGVnZXJbXSBPTiBDT05WRVJTSU9OIEVSUk9SKSBBUyBjYXN0MSwKKyAgICBDQVNUKEFSUkFZ W0FSUkFZWycxJywgJzInXSwgQVJSQVlbJ3RocmVlJywgJ2EnXV0gQVMgZGF0ZVtdIERFRkFVTFQg TlVMTDo6ZGF0ZVtdIE9OIENPTlZFUlNJT04gRVJST1IpIEFTIGNhc3QyLAorICAgIENBU1QoQVJS QVlbJ3RocmVlJ10gQVMgaW50ZWdlcltdIERFRkFVTFQgJ3sxLDJ9Jzo6aW50ZWdlcltdIE9OIENP TlZFUlNJT04gRVJST1IpIEFTIGNhc3QzCitTRUxFQ1QgKiBGUk9NIHNhZmVjYXN0dmlldzsKKyBi cGNoYXIgfCAgIGNhc3QwICAgIHwgY2FzdDEgfCBjYXN0MiB8IGNhc3QzIAorLS0tLS0tLS0rLS0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLSstLS0tLS0tCisgMTIzICAgIHwgMjAyNS0xMi0wNyB8 IHsxLDJ9IHwgICAgICAgfCB7MSwyfQorKDEgcm93KQorCitDUkVBVEUgVklFVyBzYWZlY2FzdHZp ZXcxIEFTCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBkX2lu dF9hcnIKKyAgICAgICAgICAgIERFRkFVTFQgJ3s0MSw0M30nIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInLCAxLjFdLCBbJ3RocmVlJywg dHJ1ZSwgQicwMSddXSBBUyBkX2ludF9hcnIKKyAgICAgICAgICAgIERFRkFVTFQgJ3s0MSw0M30n IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QyOworXHN2IHNhZmVjYXN0dmlldzEKK0NSRUFU RSBPUiBSRVBMQUNFIFZJRVcgcHVibGljLnNhZmVjYXN0dmlldzEgQVMKKyBTRUxFQ1QgQ0FTVChB UlJBWVtBUlJBWVsxXSwgQVJSQVlbJ3RocmVlJ10sIEFSUkFZWydhJ11dIEFTIGRfaW50X2FyciBE RUZBVUxUICd7NDEsNDN9Jzo6aW50ZWdlcltdOjpkX2ludF9hcnIgT04gQ09OVkVSU0lPTiBFUlJP UikgQVMgY2FzdDEsCisgICAgQ0FTVChBUlJBWVtBUlJBWVsxLCAyLCAxLjE6OmludGVnZXJdLCBB UlJBWVsndGhyZWUnLCB0cnVlLCAnMDEnOjoiYml0Il1dIEFTIGRfaW50X2FyciBERUZBVUxUICd7 NDEsNDN9Jzo6aW50ZWdlcltdOjpkX2ludF9hcnIgT04gQ09OVkVSU0lPTiBFUlJPUikgQVMgY2Fz dDIKK1NFTEVDVCAqIEZST00gc2FmZWNhc3R2aWV3MTsKKyAgY2FzdDEgIHwgIGNhc3QyICAKKy0t LS0tLS0tLSstLS0tLS0tLS0KKyB7NDEsNDN9IHwgezQxLDQzfQorKDEgcm93KQorCitSRVNFVCBk YXRlc3R5bGU7CistLXRlc3QgQ0FTVCBERUZBVUxUIGV4cHJlc3Npb24gbXV0YWJpbGl0eQorQ1JF QVRFIElOREVYIGNhc3RfZXJyb3JfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMg aW50IERFRkFVTFQgcmFuZG9tKG1pbj0+MSwgbWF4PT4xKSBPTiBDT05WRVJTSU9OIEVSUk9SKSkp OworRVJST1I6ICBmdW5jdGlvbnMgaW4gaW5kZXggZXhwcmVzc2lvbiBtdXN0IGJlIG1hcmtlZCBJ TU1VVEFCTEUKK0xJTkUgMTogQ1JFQVRFIElOREVYIGNhc3RfZXJyb3JfaWR4IE9OIHRlc3Rfc2Fm ZWNhc3QzKChDQVNUKGNvbDAgYXMgLi4uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCitDUkVBVEUgSU5ERVggY2FzdF9lcnJvcl9pZHggT04g dGVzdF9zYWZlY2FzdDMoKENBU1QoY29sMCBhcyB4aWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpKSk7CitFUlJPUjogIGRhdGEgdHlwZSB4aWQgaGFzIG5vIGRlZmF1bHQgb3BlcmF0 b3IgY2xhc3MgZm9yIGFjY2VzcyBtZXRob2QgImJ0cmVlIgorSElOVDogIFlvdSBtdXN0IHNwZWNp ZnkgYW4gb3BlcmF0b3IgY2xhc3MgZm9yIHRoZSBpbmRleCBvciBkZWZpbmUgYSBkZWZhdWx0IG9w ZXJhdG9yIGNsYXNzIGZvciB0aGUgZGF0YSB0eXBlLgorQ1JFQVRFIElOREVYIHRlc3Rfc2FmZWNh c3QzX2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIGludCBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikpKTsgLS1vaworU0VMRUNUIHBnX2dldF9pbmRleGRlZigndGVz dF9zYWZlY2FzdDNfaWR4Jzo6cmVnY2xhc3MpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2dldF9pbmRleGRlZiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBDUkVBVEUgSU5ERVggdGVzdF9zYWZlY2FzdDNfaWR4 IE9OIHB1YmxpYy50ZXN0X3NhZmVjYXN0MyBVU0lORyBidHJlZSAoKENBU1QoY29sMCBBUyBpbnRl Z2VyIERFRkFVTFQgTlVMTDo6aW50ZWdlciBPTiBDT05WRVJTSU9OIEVSUk9SKSkpCisoMSByb3cp CisKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDE7 CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QyOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVjYXN0MzsK K0RST1AgVEFCTEUgdGNhc3Q7CitEUk9QIEZVTkNUSU9OIHJldF9pbnQ4OworRFJPUCBGVU5DVElP TiByZXRfc2V0aW50OworRFJPUCBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9kOworRFJPUCBU WVBFIGNvbXAyOworRFJPUCBET01BSU4gZF92YXJjaGFyOworRFJPUCBET01BSU4gZF9pbnQ0MjsK K0RST1AgRE9NQUlOIGRfY2hhcjNfbm90X251bGw7CitSRVNFVCBleHRyYV9mbG9hdF9kaWdpdHM7 CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dCBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvY3JlYXRlX2Nhc3Qub3V0CmluZGV4IDBlNjk2NDRi Y2EyLi42OGU2OWQxYzU4NCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9j cmVhdGVfY2FzdC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2Fz dC5vdXQKQEAgLTg4LDYgKzg4LDExIEBAIFNFTEVDVCAxMjM0OjppbnQ0OjpjYXN0dGVzdHR5cGU7 IC0tIFNob3VsZCB3b3JrIG5vdwogIGJhcjEyMzQKICgxIHJvdykKIAorU0VMRUNUIENBU1QoMTIz NDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip OyAtLSBlcnJvcgorRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGludGVnZXIgdG8gY2FzdHRlc3R0 eXBlIHdoZW4gREVGQVVMVCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBD T05WRVJTSU9OIEVSUk9SCitMSU5FIDE6IFNFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRl c3R0eXBlIERFRkFVTFQgTlVMTCBPTiBDT05WRS4uLgorICAgICAgICAgICAgICAgICAgICBeCitI SU5UOiAgU2FmZSB0eXBlIGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90IHlldCBz dXBwb3J0ZWQuCiAtLSBjaGVjayBkZXBlbmRlbmNpZXMgZ2VuZXJhdGVkIGZvciB0aGF0CiBTRUxF Q1QgcGdfZGVzY3JpYmVfb2JqZWN0KGNsYXNzaWQsIG9iamlkLCBvYmpzdWJpZCkgYXMgb2JqLAog ICAgICAgIHBnX2Rlc2NyaWJlX29iamVjdChyZWZjbGFzc2lkLCByZWZvYmppZCwgcmVmb2Jqc3Vi aWQpIGFzIG9ianJlZiwKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXF1 aXZjbGFzcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2VxdWl2Y2xhc3Mub3V0Cmlu ZGV4IGFkOGFiMjk0ZmY2Li41YWVlMmM3YTlmYiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9lcXVpdmNsYXNzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2VxdWl2Y2xhc3Mub3V0CkBAIC05NSw2ICs5NSwxMyBAQCBjcmVhdGUgZnVuY3Rpb24gaW50OGFs aWFzMWNtcChpbnQ4LCBpbnQ4YWxpYXMxKSByZXR1cm5zIGludAogICBzdHJpY3QgaW1tdXRhYmxl IGxhbmd1YWdlIGludGVybmFsIGFzICdidGludDhjbXAnOwogYWx0ZXIgb3BlcmF0b3IgZmFtaWx5 IGludGVnZXJfb3BzIHVzaW5nIGJ0cmVlIGFkZAogICBmdW5jdGlvbiAxIGludDhhbGlhczFjbXAg KGludDgsIGludDhhbGlhczEpOworLS0gaW50OGFsaWFzMiBiaW5hcnktY29lcmNpYmxlIHRvIGlu dDguIHNvIHRoaXMgaXMgb2sKK3NlbGVjdCBjYXN0KCcxJzo6aW50OCBhcyBpbnQ4YWxpYXMyIGRl ZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsKKyBpbnQ4YWxpYXMyIAorLS0tLS0tLS0t LS0tCisgMQorKDEgcm93KQorCiBjcmVhdGUgdGFibGUgZWMwIChmZiBpbnQ4IHByaW1hcnkga2V5 LCBmMSBpbnQ4LCBmMiBpbnQ4KTsKIGNyZWF0ZSB0YWJsZSBlYzEgKGZmIGludDggcHJpbWFyeSBr ZXksIGYxIGludDhhbGlhczEsIGYyIGludDhhbGlhczIpOwogY3JlYXRlIHRhYmxlIGVjMiAoeGYg aW50OCBwcmltYXJ5IGtleSwgeDEgaW50OGFsaWFzMSwgeDIgaW50OGFsaWFzMik7CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9yZWdyZXNzL3BhcmFsbGVsX3NjaGVkdWxlIGIvc3JjL3Rlc3QvcmVncmVz cy9wYXJhbGxlbF9zY2hlZHVsZQppbmRleCAwMjFkNTdmNjZiYi4uMDM5MzI1OGYwNjYgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvcGFyYWxsZWxfc2NoZWR1bGUKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQpAQCAtODEsNyArODEsNyBAQCB0ZXN0OiBjcmVhdGVf dGFibGVfbGlrZSBhbHRlcl9nZW5lcmljIGFsdGVyX29wZXJhdG9yIG1pc2MgYXN5bmMgZGJzaXpl IG1lcmdlIG1pcwogIyBjb2xsYXRlLmxpbnV4LnV0ZjggYW5kIGNvbGxhdGUuaWN1LnV0ZjggdGVz dHMgY2Fubm90IGJlIHJ1biBpbiBwYXJhbGxlbCB3aXRoIGVhY2ggb3RoZXIKICMgcHNxbCBkZXBl bmRzIG9uIGNyZWF0ZV9hbQogIyBhbXV0aWxzIGRlcGVuZHMgb24gZ2VvbWV0cnksIGNyZWF0ZV9p bmRleF9zcGdpc3QsIGhhc2hfaW5kZXgsIGJyaW4KLXRlc3Q6IHJ1bGVzIHBzcWwgcHNxbF9jcm9z c3RhYiBwc3FsX3BpcGVsaW5lIGFtdXRpbHMgc3RhdHNfZXh0IGNvbGxhdGUubGludXgudXRmOCBj b2xsYXRlLndpbmRvd3Mud2luMTI1MgordGVzdDogcnVsZXMgcHNxbCBwc3FsX2Nyb3NzdGFiIHBz cWxfcGlwZWxpbmUgYW11dGlscyBzdGF0c19leHQgY29sbGF0ZS5saW51eC51dGY4IGNvbGxhdGUu d2luZG93cy53aW4xMjUyIGNhc3QKIAogIyAtLS0tLS0tLS0tCiAjIFJ1biB0aGVzZSBhbG9uZSBz byB0aGV5IGRvbid0IHJ1biBvdXQgb2YgcGFyYWxsZWwgd29ya2VycwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY2FzdC5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jYXN0LnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWI2ZjNjYzA2NDkKLS0t IC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9jYXN0LnNxbApAQCAtMCwwICsx LDM1MCBAQAorU0VUIGV4dHJhX2Zsb2F0X2RpZ2l0cyA9IDA7CisKKy0tIENBU1QgREVGQVVMVCBP TiBDT05WRVJTSU9OIEVSUk9SCitTRUxFQ1QgQ0FTVChCJzAxJyBBUyBkYXRlIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKEJJVCcwMScgQVMgZGF0ZSBERUZB VUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChUUlVFIEFTIGRhdGUg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoMS4xIEFTIGRh dGUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoMSBBUyBk YXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKDExMTEg QVMgImNoYXIiIERFRkFVTFQgJ0EnIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLXRlc3Qgc291 cmNlIGV4cHJlc3Npb24gaXMgYSB1bmtub3duIGNvbnN0CitWQUxVRVMgKENBU1QoJ2Vycm9yJyBB UyBpbnRlZ2VyIEVSUk9SIE9OIENPTlZFUlNJT04gRVJST1IpKTsgLS1lcnJvcgorVkFMVUVTIChD QVNUKCdlcnJvcicgQVMgaW50ZWdlciBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpKTsKK1ZBTFVF UyAoQ0FTVCgnZXJyb3InIEFTIGludGVnZXIgREVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9S KSk7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgMTggT04gQ09OVkVSU0lPTiBFUlJP Uik7CitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIE9OIENPTlZFUlNJT04g RVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYScgYXMgaW50IERFRkFVTFQgc3VtKDEpIG92 ZXIoKSBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgorU0VMRUNUIENBU1QoJ2EnIGFzIGlu dCBERUZBVUxUIChTRUxFQ1QgTlVMTCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NF TEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCAnYicgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0t ZXJyb3IKK1NFTEVDVCBDQVNUKCdhJzo6aW50IGFzIGludCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7IC0tZXJyb3IKKworLS10aGUgZGVmYXVsdCBleHByZXNzaW9u4oCZcyBjb2xs YXRpb24gc2hvdWxkIG1hdGNoIHRoZSBjb2xsYXRpb24gb2YgdGhlIGNhc3QKKy0tdGFyZ2V0IHR5 cGUKK1ZBTFVFUyAoQ0FTVCgnZXJyb3InIEFTIHRleHQgREVGQVVMVCAnMScgQ09MTEFURSAiQyIg T04gQ09OVkVSU0lPTiBFUlJPUikpOworCitWQUxVRVMgKENBU1QoJ2Vycm9yJyBBUyBpbnQydmVj dG9yIERFRkFVTFQgJzEgMycgIE9OIENPTlZFUlNJT04gRVJST1IpKTsKK1ZBTFVFUyAoQ0FTVCgn ZXJyb3InIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7MSAzfScgIE9OIENPTlZFUlNJT04gRVJS T1IpKTsKKworLS0gdGVzdCBzb3VyY2UgZXhwcmVzc2lvbiBjb250YWluIHN1YnF1ZXJ5CitTRUxF Q1QgQ0FTVCgoU0VMRUNUIGIgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSksIChWQUxVRVMoJ0gn KSkgcyhiKSkKKyAgICAgICAgICAgIEFTIGludDJ2ZWN0b3JbXSBERUZBVUxUICd7MSAzfScgIE9O IENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoKFNFTEVDVCBBUlJBWSgoU0VMRUNUIGIg RlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwgMikgZywgKFZBTFVFUygnSCcpKSBzKGIpKSkpCisgICAg ICAgICAgICBBUyBJTlRbXQorICAgICAgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworCitDUkVBVEUgRlVOQ1RJT04gcmV0X2ludDgoKSBSRVRVUk5TIEJJR0lOVCBBUwor JCQKK0JFR0lOIFJFVFVSTiAyMTQ3NDgzNjQ4OyBFTkQ7CiskJAorTEFOR1VBR0UgcGxwZ3NxbCBJ TU1VVEFCTEU7CisKK1NFTEVDVCBDQVNUKCdhJyBhcyBpbnQgREVGQVVMVCByZXRfaW50OCgpIE9O IENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYScgYXMgZGF0ZSBERUZB VUxUIHJldF9pbnQ4KCkgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKKworLS0gREVGQVVM VCBleHByZXNzaW9uIGNhbiBub3QgYmUgc2V0LXJldHVybmluZworQ1JFQVRFIEZVTkNUSU9OIHJl dF9zZXRpbnQoKSBSRVRVUk5TIFNFVE9GIGludGVnZXIgQVMKKyQkCitCRUdJTiBSRVRVUk4gUVVF UlkgRVhFQ1VURSAnc2VsZWN0IDEgdW5pb24gYWxsIHNlbGVjdCAxJzsgRU5EOworJCQKK0xBTkdV QUdFIHBscGdzcWwgSU1NVVRBQkxFOworCitDUkVBVEUgVEFCTEUgdGNhc3QoYSB0ZXh0W10sIGIg aW50IEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIElERU5USVRZKTsKK0lOU0VSVCBJTlRPIHRjYXN0 IFZBTFVFUyAoJ3sxMn0nKSwgKCd7MSxhLCBifScpLCAoJ3t7MSwyfSwge2MsZH19JyksICgnezEz fScpOworU0VMRUNUIENBU1QoJ2EnIGFzIGludCBERUZBVUxUIHJldF9zZXRpbnQoKSBPTiBDT05W RVJTSU9OIEVSUk9SKSBGUk9NIHRjYXN0OyAtLWVycm9yCitTRUxFQ1QgQ0FTVCh0IEFTIHRleHRb XSBERUZBVUxUICd7MjEsMjIsICcgfHwgYiB8fCAnfScgT04gQ09OVkVSU0lPTiBFUlJPUikgRlJP TSB0Y2FzdCBhcyB0OworU0VMRUNUIENBU1QodC5hIEFTIGludFtdIERFRkFVTFQgJ3syMSwyMn0n OjppbnRbXSB8fCBiIE9OIENPTlZFUlNJT04gRVJST1IpIEZST00gdGNhc3QgYXMgdDsKKworLS0g dGVzdCB3aXRoIHVzZXItZGVmaW5lZCB0eXBlLCBkb21haW4sIGFycmF5IG92ZXIgZG9tYWluLCBk b21haW4gb3ZlciBhcnJheQorQ1JFQVRFIERPTUFJTiBkX2ludDQyIGFzIGludCBjaGVjayAodmFs dWUgPSA0MikgTk9UIE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfY2hhcjNfbm90X251bGwgYXMgY2hh cigzKSBOT1QgTlVMTDsKK0NSRUFURSBET01BSU4gZF92YXJjaGFyIGFzIHZhcmNoYXIoMykgTk9U IE5VTEw7CitDUkVBVEUgRE9NQUlOIGRfaW50X2FyciBhcyBpbnRbXSBjaGVjayAodmFsdWUgPSAn ezQxLCA0M30nKSBOT1QgTlVMTDsKK0NSRUFURSBUWVBFIGNvbXBfZG9tYWluX3dpdGhfdHlwbW9k IEFTIChhIGRfY2hhcjNfbm90X251bGwsIGIgaW50KTsKK0NSRUFURSBUWVBFIGNvbXAyIEFTIChh IGRfdmFyY2hhcik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBBUyBjb21wMiBERUZBVUxUICcoMTIz MiknIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnKE5VTEwpJyBB UyBjb21wMiBERUZBVUxUICcoMTIzKScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VCgxMSBBUyBkX2ludDQyIERFRkFVTFQgNDEgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IK K1NFTEVDVCBDQVNUKDExIEFTIGRfaW50NDIgREVGQVVMVCA0MiBPTiBDT05WRVJTSU9OIEVSUk9S KTsKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKE5VTEwgQVMgZF9pbnQ0MiBERUZBVUxUIDQy IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygsNDIpJyBBUyBjb21wX2RvbWFp bl93aXRoX3R5cG1vZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVCgnKE5VTEwsNDIpJyBBUyBjb21wX2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMSwy KScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5VTEwsNDIpJyBBUyBjb21w X2RvbWFpbl93aXRoX3R5cG1vZCBERUZBVUxUICcoMTIzNCwyKScgT04gQ09OVkVSU0lPTiBFUlJP Uik7IC0tZXJyb3IKKworU0VMRUNUIENBU1QoQVJSQVlbNDIsNDFdIEFTIGRfaW50NDJbXSBERUZB VUxUICd7NDIsIDQyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVChBUlJBWVs0 Miw0MV0gQVMgZF9pbnRfYXJyIERFRkFVTFQgJ3s0MSwgNDN9JyBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKworLS0gdGVzdCBhcnJheSBjb2VyY2UKK1NFTEVDVCBDQVNUKGFycmF5WydhJzo6dGV4dF0g QVMgaW50W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxF Q1QgQ0FTVChhcnJheVsnYSddIEFTIGludFtdIERFRkFVTFQgQVJSQVlbMV0gT04gQ09OVkVSU0lP TiBFUlJPUik7CitTRUxFQ1QgQ0FTVChhcnJheVsxMS4xMl0gQVMgZGF0ZVtdIERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKGFycmF5WzExMTExMTExMTExMTEx MTExXSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1Qg Q0FTVChhcnJheVtbJ2FiYyddLFs0NTZdXSBBUyBpbnRbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnezEyMyxhYmMsNDU2fScgQVMgaW50W10gREVGQVVM VCAney03ODl9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCd7MjM0LGRlZiw1 Njd9Jzo6dGV4dFtdIEFTIGludGVnZXJbXSBERUZBVUxUICd7LTEwMTF9JyBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKEFSUkFZW1snMSddLCBbJ3RocmVlJ10sWydhJ11dIEFTIGlu dFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKEFS UkFZW1snMScsICcyJ10sIFsndGhyZWUnLCAnYSddXSBBUyBpbnRbXSBERUZBVUxUICd7MjEsMjJ9 JyBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS1vaworU0VMRUNUIENBU1QoQVJSQVlbWycxJywgJzIn XSwgWyd0aHJlZSc6OmludCwgJ2EnXV0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09O VkVSU0lPTiBFUlJPUik7IC0tZXJyb3IKK1NFTEVDVCBDQVNUKEFSUkFZWzEsICd0aHJlZSc6Omlu dF0gQVMgaW50W10gREVGQVVMVCAnezIxLDIyfScgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJy b3IKKworLS0tLS1zYWZlIGNhc3Qgd2l0aCBnZW9tZXRyeSBkYXRhIHR5cGUKK1NFTEVDVCBDQVNU KCcoMSwyKSc6OnBvaW50IEFTIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CitTRUxFQ1QgQ0FTVCgnWyhOYU4sMSksKE5hTixpbmZpbml0eSldJzo6bHNlZyBBUyBwb2ludCBE RUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnWygxZSszMDAs SW5maW5pdHkpLCgxZSszMDAsSW5maW5pdHkpXSc6OmxzZWcgQVMgcG9pbnQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1soMSwyKSwoMyw0KV0nOjpwYXRo IGFzIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENB U1QoJyhOYU4sMS4wLE5hTixpbmZpbml0eSknOjpib3ggQVMgcG9pbnQgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94 IEFTIGxzZWcgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1Qo JygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIHBvbHlnb24gREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAsMi4wLDAuMCwwLjApJzo6Ym94IEFTIHBh dGggREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJygyLjAs aW5maW5pdHksTmFOLGluZmluaXR5KSc6OmJveCBBUyBjaXJjbGUgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJyhOYU4sMC4wKSwoMi4wLDQuMCksKDAuMCxp bmZpbml0eSknOjpwb2x5Z29uIEFTIHBvaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKTsKK1NFTEVDVCBDQVNUKCcoMi4wLDAuMCksKDIuMCw0LjApLCgwLjAsMC4wKSc6OnBvbHln b24gQVMgcGF0aCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VCgnKDIuMCwwLjApLCgyLjAsNC4wKSwoMC4wLDAuMCknOjpwb2x5Z29uIEFTIGJveCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgnKE5hTixpbmZpbml0eSks KDIuMCw0LjApLCgwLjAsaW5maW5pdHkpJzo6cG9seWdvbiBBUyBjaXJjbGUgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJzwoNSwxKSwzPic6OmNpcmNsZSBB UyBwb2ludCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FTVCgn PCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIGJveCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP Uik7CisKKy0tIG5vdCBzdXBwb3J0ZWQgYmVjYXVzZSB0aGUgY2FzdCBmcm9tIGNpcmNsZSB0byBw b2x5Z29uIGlzIGltcGxlbWVudGVkIGFzIGEgU1FMCistLSBmdW5jdGlvbiwgd2hpY2ggY2Fubm90 IGJlIGVycm9yLXNhZmUuCitTRUxFQ1QgQ0FTVCgnPCgzLDUpLDA+Jzo6Y2lyY2xlIGFzIHBvbHln b24gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLS0tLXNhZmUgY2FzdCBm cm9tL3RvIG1vbmV5IHR5cGUgaXMgbm90IHN1cHBvcnRlZCwgYWxsIHRoZSBmb2xsb3dpbmcgd291 bGQgcmVzdWx0IGVycm9yCitTRUxFQ1QgQ0FTVChOVUxMOjppbnQ4IEFTIG1vbmV5IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKE5VTEw6OmludDQgQVMgbW9u ZXkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoTlVMTDo6 bnVtZXJpYyBBUyBtb25leSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVChOVUxMOjptb25leSBBUyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKTsKK1NFTEVDVCBDQVNUKE5VTEw6Om1vbmV5W10gQVMgbnVtZXJpY1tdIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKworLS0tLS1zYWZlIGNhc3QgZnJvbSBieXRlYSB0 eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUICgnXHgxMTIyMzM0NDU1NjY3Nzg4 OTknOjpieXRlYSBBUyBpbnQ4IERFRkFVTFQgMTkgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxF Q1QgQ0FTVCgnXHgxMjM0NTY3ODlBJzo6Ynl0ZWEgQVMgaW50NCBERUZBVUxUIDIwIE9OIENPTlZF UlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1x4MTIzNDU2Jzo6Ynl0ZWEgQVMgaW50MiBERUZB VUxUIDIxIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLS0tLXNhZmUgY2FzdCBmcm9tIGJpdCB0 eXBlIHRvIG90aGVyIGRhdGEgdHlwZXMKK1NFTEVDVCBDQVNUKCcxMTExMTExMTExMDAwMDEnOjpi aXQoMTAwKSBBUyBJTlQgREVGQVVMVCAyMiBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBD QVNUICgnMTExMTExMTExMTAwMDAxJzo6Yml0KDEwMCkgQVMgSU5UOCBERUZBVUxUIDIzIE9OIENP TlZFUlNJT04gRVJST1IpOworCistLS0tLXNhZmUgY2FzdCBmcm9tIHRleHQgdHlwZSB0byBvdGhl ciBkYXRhIHR5cGVzCitzZWxlY3QgQ0FTVCgnYS5iLmMuZCc6OnRleHQgYXMgcmVnY2xhc3MgZGVm YXVsdCBOVUxMIG9uIGNvbnZlcnNpb24gZXJyb3IpOworCitDUkVBVEUgVEFCTEUgdGVzdF9zYWZl Y2FzdChjb2wwIHRleHQpOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdChjb2wwKSBWQUxVRVMg KCc8dmFsdWU+b25lPC92YWx1ZScpOworCitTRUxFQ1QgY29sMCBhcyB0ZXh0LAorICAgICAgIENB U1QoY29sMCBBUyByZWdjbGFzcyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMg dG9fcmVnY2xhc3MsCisgICAgICAgQ0FTVChjb2wwIEFTIHJlZ2NsYXNzIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBJUyBOVUxMIGFzIGV4cGVjdF90cnVlLAorICAgICAgIENBU1Qo Y29sMCBBUyAiY2hhciIgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19j aGFyLAorICAgICAgIENBU1QoY29sMCBBUyBuYW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19uYW1lLAorICAgICAgIENBU1QoY29sMCBBUyB4bWwgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3htbAorRlJPTSB0ZXN0X3NhZmVjYXN0OworCitT RUxFQ1QgQ0FTVCgnMTkyLjE2OC4xLngnIGFzIGluZXQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpOworU0VMRUNUIENBU1QoJzE5Mi4xNjguMS4yLzMwJyBhcyBjaWRyIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCcyMjowMDo1YzowODo1NTow ODowMTowMic6Om1hY2FkZHI4IGFzIG1hY2FkZHIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpOworCistLS0tLXNhZmUgY2FzdCBiZXR3ZWVlbiByYW5nZSBkYXRhIHR5cGVzCitTRUxF Q1QgQ0FTVCgnWzEsMl0nOjppbnQ0cmFuZ2UgQVMgaW50NG11bHRpcmFuZ2UgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpOworU0VMRUNUIENBU1QoJ1sxLDJdJzo6aW50OHJhbmdlIEFT IGludDhtdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVD VCBDQVNUKCdbMSwyXSc6Om51bXJhbmdlICBBUyBudW1tdWx0aXJhbmdlIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKK1NFTEVDVCBDQVNUKCdbLWluZmluaXR5LGluZmluaXR5XSc6 OmRhdGVyYW5nZSBBUyBkYXRlbXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7CitTRUxFQ1QgQ0FTVCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjp0c3JhbmdlIEFTIHRz bXVsdGlyYW5nZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CitTRUxFQ1QgQ0FT VCgnWy1pbmZpbml0eSxpbmZpbml0eV0nOjp0c3R6cmFuZ2UgQVMgdHN0em11bHRpcmFuZ2UgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworCistLS0tLXNhZmUgY2FzdCBiZXR3ZWVl biBudW1lcmljIGRhdGEgdHlwZXMKK0NSRUFURSBUQUJMRSB0ZXN0X3NhZmVjYXN0MSgKKyAgY29s MSBmbG9hdDQsIGNvbDIgZmxvYXQ4LCBjb2wzIG51bWVyaWMsIGNvbDQgbnVtZXJpY1tdLAorICBj b2w1IGludDIgZGVmYXVsdCAzMjc2NywKKyAgY29sNiBpbnQ0IGRlZmF1bHQgMzI3NjgsCisgIGNv bDcgaW50OCBkZWZhdWx0IDQyOTQ5NjcyOTYpOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEg VkFMVUVTKCcxMS4xMjM0JywgJzExLjEyMzQnLCAnOTIyMzM3MjAzNjg1NDc3NTgwOCcsICd7MTEu MTIzNH0nOjpudW1lcmljW10pOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDEgVkFMVUVTKCdp bmYnLCAnaW5mJywgJ2luZicsICd7MTEuMTIzNCwgMTIsIGluZiwgTmFOfSc6Om51bWVyaWNbXSk7 CitJTlNFUlQgSU5UTyB0ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJy1pbmYnLCAnLWluZicsICctaW5m JywgJ3sxMS4xMjM0LCAxMiwgLWluZiwgTmFOfSc6Om51bWVyaWNbXSk7CitJTlNFUlQgSU5UTyB0 ZXN0X3NhZmVjYXN0MSBWQUxVRVMoJ05hTicsICdOYU4nLCAnTmFOJywgJ3sxMS4xMjM0LCAxMiwg LWluZiwgTmFOfSc6Om51bWVyaWNbXSk7CisKK1NFTEVDVCBjb2w1IGFzIGludDIsCisgICAgICAg Q0FTVChjb2w1IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDIsCisgICAgICAgQ0FTVChjb2w1IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w1IEFTIG9pZCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNSBhcyBp bnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAg IENBU1QoY29sNSBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDUgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w1IGFzIG51bWVy aWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAg ICAgQ0FTVChjb2w1IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVD VCBjb2w2IGFzIGludDQsCisgICAgICAgQ0FTVChjb2w2IEFTIGludDIgREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2w2IEFTIGludDQg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FT VChjb2w2IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lk LAorICAgICAgIENBU1QoY29sNiBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sNiBhcyBmbG9hdDQgREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDYgYXMg ZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisg ICAgICAgQ0FTVChjb2w2IGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2w2IGFzIG51bWVyaWMoMTAsMSkgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00g dGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2w3IGFzIGludDgsCisgICAgICAgQ0FTVChjb2w3 IEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisg ICAgICAgQ0FTVChjb2w3IEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2w3IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09O VkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sNyBhcyBpbnQ4IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29s NyBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0 NCwKKyAgICAgICBDQVNUKGNvbDcgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2w3IGFzIG51bWVyaWMgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAgICAgQ0FTVChj b2w3IGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKK1NFTEVDVCBjb2wzIGFz IG51bWVyaWMsCisgICAgICAgQ0FTVChjb2wzIEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIHRvX2ludDIsCisgICAgICAgQ0FTVChjb2wzIEFTIGludDQgREVGQVVM VCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wz IEFTIG9pZCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAg ICAgIENBU1QoY29sMyBhcyBpbnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBh cyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMyBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDMgYXMgZmxvYXQ4 IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAg Q0FTVChjb2wzIGFzIG51bWVyaWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX251bWVyaWMsCisgICAgICAgQ0FTVChjb2wzIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9z YWZlY2FzdDE7CisKK1NFTEVDVCBjb2w0IGFzIG51bV9hcnIsCisgICAgICAgQ0FTVChjb2w0IEFT IGludDJbXSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgaW50MmFyciwKKyAg ICAgICBDQVNUKGNvbDQgQVMgaW50NFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyBpbnQ0YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBpbnQ4W10gREVGQVVMVCBOVUxMIE9O IENPTlZFUlNJT04gRVJST1IpIGFzIGludDhhcnIsCisgICAgICAgQ0FTVChjb2w0IGFzIGZsb2F0 NFtdIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBmNGFyciwKKyAgICAgICBD QVNUKGNvbDQgYXMgZmxvYXQ4W10gREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IGY4YXJyLAorICAgICAgIENBU1QoY29sNCBhcyBudW1lcmljKDEwLDEpW10gREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIGFzIG51bWFycgorRlJPTSB0ZXN0X3NhZmVjYXN0MTsKKwor U0VMRUNUIGNvbDEgYXMgZmxvYXQ0LAorICAgICAgIENBU1QoY29sMSBBUyBpbnQyIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQyLAorICAgICAgIENBU1QoY29sMSBB UyBpbnQ0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ0LAorICAg ICAgIENBU1QoY29sMSBBUyBvaWQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX29pZCwKKyAgICAgICBDQVNUKGNvbDEgYXMgaW50OCBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9faW50OCwKKyAgICAgICBDQVNUKGNvbDEgYXMgZmxvYXQ0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDQsCisgICAgICAgQ0FTVChj b2wxIGFzIGZsb2F0OCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fZmxv YXQ4LAorICAgICAgIENBU1QoY29sMSBhcyBudW1lcmljIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19udW1lcmljLAorICAgICAgIENBU1QoY29sMSBhcyBudW1lcmljKDEw LDEpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19udW1lcmljX3NjYWxl CitGUk9NIHRlc3Rfc2FmZWNhc3QxOworCitTRUxFQ1QgY29sMiBhcyBmbG9hdDgsCisgICAgICAg Q0FTVChjb2wyIEFTIGludDIgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRv X2ludDIsCisgICAgICAgQ0FTVChjb2wyIEFTIGludDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX2ludDQsCisgICAgICAgQ0FTVChjb2wyIEFTIG9pZCBERUZBVUxUIE5V TEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fb2lkLAorICAgICAgIENBU1QoY29sMiBhcyBp bnQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAg IENBU1QoY29sMiBhcyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX2Zsb2F0NCwKKyAgICAgICBDQVNUKGNvbDIgYXMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wyIGFzIG51bWVy aWMgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX251bWVyaWMsCisgICAg ICAgQ0FTVChjb2wyIGFzIG51bWVyaWMoMTAsMSkgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpIGFzIHRvX251bWVyaWNfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDE7CisKKy0tIGRh dGUvdGltZXN0YW1wL2ludGVydmFsIHJlbGF0ZWQgc2FmZSB0eXBlIGNhc3QKK0NSRUFURSBUQUJM RSB0ZXN0X3NhZmVjYXN0MigKKyAgY29sMCBkYXRlLCBjb2wxIHRpbWVzdGFtcCwgY29sMiB0aW1l c3RhbXB0eiwKKyAgY29sMyBpbnRlcnZhbCwgY29sNCB0aW1lLCBjb2w1IHRpbWV0eik7CitJTlNF UlQgSU5UTyB0ZXN0X3NhZmVjYXN0MiBWQUxVRVMKKygnLWluZmluaXR5JywgJy1pbmZpbml0eScs ICctaW5maW5pdHknLCAnLWluZmluaXR5JywKKyAgJzIwMDMtMDMtMDcgMTU6MzY6MzkgQW1lcmlj YS9OZXdfWW9yaycsICcyMDAzLTA3LTA3IDE1OjM2OjM5IEFtZXJpY2EvTmV3X1lvcmsnKSwKKygn LWluZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5JywgJ2luZmluaXR5JywKKyAgJzExOjU5 OjU5Ljk5IFBNJywgJzExOjU5OjU5Ljk5IFBNIFBEVCcpOworCitTRUxFQ1QgY29sMCBhcyBkYXRl LAorICAgICAgIENBU1QoY29sMCBBUyB0aW1lc3RhbXB0eiBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wdHosCisgICAgICAgQ0FTVChjb2wwIEFTIGRhdGUg REVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2RhdGUsCisgICAgICAgQ0FT VChjb2wwIEFTIHRpbWUgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3Rp bWVzLAorICAgICAgIENBU1QoY29sMCBBUyB0aW1ldHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJ T04gRVJST1IpIGFzIHRvX3RpbWV0eiwKKyAgICAgICBDQVNUKGNvbDAgQVMgdGltZXN0YW1wKDIp IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lc3RhbXBfc2NhbGUK K0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2wxIGFzIHRpbWVzdGFtcCwKKyAgICAg ICBDQVNUKGNvbDEgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMSBBUyBkYXRlIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMSBB UyB0aW1lIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAg ICAgICBDQVNUKGNvbDEgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2wxIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHRl c3Rfc2FmZWNhc3QyOworCitTRUxFQ1QgY29sMiBhcyB0aW1lc3RhbXB0eiwKKyAgICAgICBDQVNU KGNvbDIgQVMgdGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFz IHRvX3RpbWVzdGFtcHR6LAorICAgICAgIENBU1QoY29sMiBBUyBkYXRlIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMiBBUyB0aW1l IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBD QVNUKGNvbDIgQVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0 b190aW1ldHosCisgICAgICAgQ0FTVChjb2wyIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwg T04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlCitGUk9NIHRlc3Rfc2Fm ZWNhc3QyOworCitTRUxFQ1QgY29sMyBhcyBpbnRlcnZhbCwKKyAgICAgICBDQVNUKGNvbDMgQVMg dGltZXN0YW1wdHogREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX3RpbWVz dGFtcHR6LAorICAgICAgIENBU1QoY29sMyBBUyBkYXRlIERFRkFVTFQgTlVMTCBPTiBDT05WRVJT SU9OIEVSUk9SKSBhcyB0b19kYXRlLAorICAgICAgIENBU1QoY29sMyBBUyB0aW1lIERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1lcywKKyAgICAgICBDQVNUKGNvbDMg QVMgdGltZXR6IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHos CisgICAgICAgQ0FTVChjb2wzIEFTIHRpbWVzdGFtcCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVS U0lPTiBFUlJPUikgYXMgdG9fdGltZXN0YW1wX3NjYWxlLAorICAgICAgIENBU1QoY29sMyBBUyBp bnRlcnZhbCgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2 YWxfc2NhbGUKK0ZST00gdGVzdF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2w0IGFzIHRpbWUsCisg ICAgICAgQ0FTVChjb2w0IEFTIHRpbWUoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJS T1IpIGFzIHRvX3RpbWVzLAorICAgICAgIENBU1QoY29sNCBBUyB0aW1ldHogREVGQVVMVCBOVUxM IE9OIENPTlZFUlNJT04gRVJST1IpIElTIE5PVCBOVUxMIGFzIHRvX3RpbWV0eiwKKyAgICAgICBD QVNUKGNvbDQgQVMgaW50ZXJ2YWwoMikgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1Ip IGFzIHRvX2ludGVydmFsLAorICAgICAgIENBU1QoY29sNCBBUyBpbnRlcnZhbCgyKSBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWxfc2NhbGUKK0ZST00gdGVz dF9zYWZlY2FzdDI7CisKK1NFTEVDVCBjb2w1IGFzIHRpbWV0eiwKKyAgICAgICBDQVNUKGNvbDUg QVMgdGltZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGltZSwKKyAg ICAgICBDQVNUKGNvbDUgQVMgdGltZSgyKSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJP UikgYXMgdG9fdGltZV9zY2FsZSwKKyAgICAgICBDQVNUKGNvbDUgQVMgdGltZXR6IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b190aW1ldHosCisgICAgICAgQ0FTVChjb2w1 IEFTIHRpbWV0eig2KSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9fdGlt ZXR6X3NjYWxlLAorICAgICAgIENBU1QoY29sNSBBUyBpbnRlcnZhbCBERUZBVUxUIE5VTEwgT04g Q09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZXJ2YWwsCisgICAgICAgQ0FTVChjb2w1IEFTIGlu dGVydmFsKDIpIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnRlcnZh bF9zY2FsZQorRlJPTSB0ZXN0X3NhZmVjYXN0MjsKKworQ1JFQVRFIFRBQkxFIHRlc3Rfc2FmZWNh c3QzKGNvbDAganNvbmIpOworSU5TRVJUIElOVE8gdGVzdF9zYWZlY2FzdDMoY29sMCkgVkFMVUVT ICgnInRlc3QiJyk7CitTRUxFQ1QgY29sMCBhcyBqc29uYiwKKyAgICAgICBDQVNUKGNvbDAgQVMg aW50ZWdlciBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgdG9faW50ZWdlciwK KyAgICAgICBDQVNUKGNvbDAgQVMgbnVtZXJpYyBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUikgYXMgdG9fbnVtZXJpYywKKyAgICAgICBDQVNUKGNvbDAgQVMgYmlnaW50IERFRkFVTFQg TlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19pbnQ4LAorICAgICAgIENBU1QoY29sMCBB UyBmbG9hdDQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Zsb2F0NCwK KyAgICAgICBDQVNUKGNvbDAgQVMgZmxvYXQ4IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVS Uk9SKSBhcyB0b19mbG9hdDgsCisgICAgICAgQ0FTVChjb2wwIEFTIGJvb2xlYW4gREVGQVVMVCBO VUxMIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIHRvX2Jvb2wsCisgICAgICAgQ0FTVChjb2wwIEFT IHNtYWxsaW50IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyB0b19zbWFsbGlu dAorRlJPTSB0ZXN0X3NhZmVjYXN0MzsKKworLS0gdGVzdCBkZXBhcnNlCitTRVQgZGF0ZXN0eWxl IFRPIElTTywgWU1EOworQ1JFQVRFIFZJRVcgc2FmZWNhc3R2aWV3IEFTCitTRUxFQ1QgQ0FTVCgn MTIzNCcgYXMgY2hhcigzKSBERUZBVUxUIC0xMTExIE9OIENPTlZFUlNJT04gRVJST1IpLAorICAg ICAgIENBU1QoMSBhcyBkYXRlIERFRkFVTFQgKCgnMjAyNS1EZWMtMDYnOjpkYXRlICsgcmFuZG9t KG1pbj0+MSwgbWF4PT4xOjppbnQpKSkgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDAsCisg ICAgICAgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsnYSddXSBBUyBpbnRbXSBERUZBVUxU ICd7MSwyfScgT04gQ09OVkVSU0lPTiBFUlJPUikgYXMgY2FzdDEsCisgICAgICAgQ0FTVChBUlJB WVtbJzEnLCAnMiddLCBbJ3RocmVlJywgJ2EnXV0gQVMgZGF0ZVtdIERFRkFVTFQgTlVMTCBPTiBD T05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MiwKKyAgICAgICBDQVNUKEFSUkFZWyd0aHJlZSddIEFT IElOVFtdIERFRkFVTFQgJ3sxLDJ9JyBPTiBDT05WRVJTSU9OIEVSUk9SKSBhcyBjYXN0MzsKK1xz diBzYWZlY2FzdHZpZXcKK1NFTEVDVCAqIEZST00gc2FmZWNhc3R2aWV3OworCitDUkVBVEUgVklF VyBzYWZlY2FzdHZpZXcxIEFTCitTRUxFQ1QgQ0FTVChBUlJBWVtbJzEnXSwgWyd0aHJlZSddLFsn YSddXSBBUyBkX2ludF9hcnIKKyAgICAgICAgICAgIERFRkFVTFQgJ3s0MSw0M30nIE9OIENPTlZF UlNJT04gRVJST1IpIGFzIGNhc3QxLAorICAgICAgIENBU1QoQVJSQVlbWycxJywgJzInLCAxLjFd LCBbJ3RocmVlJywgdHJ1ZSwgQicwMSddXSBBUyBkX2ludF9hcnIKKyAgICAgICAgICAgIERFRkFV TFQgJ3s0MSw0M30nIE9OIENPTlZFUlNJT04gRVJST1IpIGFzIGNhc3QyOworXHN2IHNhZmVjYXN0 dmlldzEKK1NFTEVDVCAqIEZST00gc2FmZWNhc3R2aWV3MTsKKworUkVTRVQgZGF0ZXN0eWxlOwor CistLXRlc3QgQ0FTVCBERUZBVUxUIGV4cHJlc3Npb24gbXV0YWJpbGl0eQorQ1JFQVRFIElOREVY IGNhc3RfZXJyb3JfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgaW50IERFRkFV TFQgcmFuZG9tKG1pbj0+MSwgbWF4PT4xKSBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOworQ1JFQVRF IElOREVYIGNhc3RfZXJyb3JfaWR4IE9OIHRlc3Rfc2FmZWNhc3QzKChDQVNUKGNvbDAgYXMgeGlk IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKSkpOworQ1JFQVRFIElOREVYIHRlc3Rf c2FmZWNhc3QzX2lkeCBPTiB0ZXN0X3NhZmVjYXN0MygoQ0FTVChjb2wwIGFzIGludCBERUZBVUxU IE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUikpKTsgLS1vaworU0VMRUNUIHBnX2dldF9pbmRleGRl ZigndGVzdF9zYWZlY2FzdDNfaWR4Jzo6cmVnY2xhc3MpOworCitEUk9QIFRBQkxFIHRlc3Rfc2Fm ZWNhc3Q7CitEUk9QIFRBQkxFIHRlc3Rfc2FmZWNhc3QxOworRFJPUCBUQUJMRSB0ZXN0X3NhZmVj YXN0MjsKK0RST1AgVEFCTEUgdGVzdF9zYWZlY2FzdDM7CitEUk9QIFRBQkxFIHRjYXN0OworRFJP UCBGVU5DVElPTiByZXRfaW50ODsKK0RST1AgRlVOQ1RJT04gcmV0X3NldGludDsKK0RST1AgVFlQ RSBjb21wX2RvbWFpbl93aXRoX3R5cG1vZDsKK0RST1AgVFlQRSBjb21wMjsKK0RST1AgRE9NQUlO IGRfdmFyY2hhcjsKK0RST1AgRE9NQUlOIGRfaW50NDI7CitEUk9QIERPTUFJTiBkX2NoYXIzX25v dF9udWxsOworUkVTRVQgZXh0cmFfZmxvYXRfZGlnaXRzOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv cmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRl X2Nhc3Quc3FsCmluZGV4IDMyMTg3ODUzY2M3Li4wYTE1YTc5NWQ4NyAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2NyZWF0ZV9jYXN0LnNxbApAQCAtNjIsNiArNjIsNyBAQCAkJCBTRUxFQ1QgKCdiYXInOjp0 ZXh0IHx8ICQxOjp0ZXh0KTsgJCQ7CiAKIENSRUFURSBDQVNUIChpbnQ0IEFTIGNhc3R0ZXN0dHlw ZSkgV0lUSCBGVU5DVElPTiBiYXJfaW50NF90ZXh0KGludDQpIEFTIElNUExJQ0lUOwogU0VMRUNU IDEyMzQ6OmludDQ6OmNhc3R0ZXN0dHlwZTsgLS0gU2hvdWxkIHdvcmsgbm93CitTRUxFQ1QgQ0FT VCgxMjM0OjppbnQ0IEFTIGNhc3R0ZXN0dHlwZSBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBF UlJPUik7IC0tIGVycm9yCiAKIC0tIGNoZWNrIGRlcGVuZGVuY2llcyBnZW5lcmF0ZWQgZm9yIHRo YXQKIFNFTEVDVCBwZ19kZXNjcmliZV9vYmplY3QoY2xhc3NpZCwgb2JqaWQsIG9ianN1YmlkKSBh cyBvYmosCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9lcXVpdmNsYXNzLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2VxdWl2Y2xhc3Muc3FsCmluZGV4IDdmYzIxNTkzNDliLi41 YWQxZDI2MzExZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXF1aXZjbGFzcy5z cWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvZXF1aXZjbGFzcy5zcWwKQEAgLTk4LDYgKzk4 LDkgQEAgY3JlYXRlIGZ1bmN0aW9uIGludDhhbGlhczFjbXAoaW50OCwgaW50OGFsaWFzMSkgcmV0 dXJucyBpbnQKIGFsdGVyIG9wZXJhdG9yIGZhbWlseSBpbnRlZ2VyX29wcyB1c2luZyBidHJlZSBh ZGQKICAgZnVuY3Rpb24gMSBpbnQ4YWxpYXMxY21wIChpbnQ4LCBpbnQ4YWxpYXMxKTsKIAorLS0g aW50OGFsaWFzMiBiaW5hcnktY29lcmNpYmxlIHRvIGludDguIHNvIHRoaXMgaXMgb2sKK3NlbGVj dCBjYXN0KCcxJzo6aW50OCBhcyBpbnQ4YWxpYXMyIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9u IGVycm9yKTsKKwogY3JlYXRlIHRhYmxlIGVjMCAoZmYgaW50OCBwcmltYXJ5IGtleSwgZjEgaW50 OCwgZjIgaW50OCk7CiBjcmVhdGUgdGFibGUgZWMxIChmZiBpbnQ4IHByaW1hcnkga2V5LCBmMSBp bnQ4YWxpYXMxLCBmMiBpbnQ4YWxpYXMyKTsKIGNyZWF0ZSB0YWJsZSBlYzIgKHhmIGludDggcHJp bWFyeSBrZXksIHgxIGludDhhbGlhczEsIHgyIGludDhhbGlhczIpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRl ZnMubGlzdAppbmRleCAxNGRlYzJkNDljMS4uZGYyODBhNmU4YzMgMTAwNjQ0Ci0tLSBhL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0CkBAIC0yNjg5LDYgKzI2ODksOCBAQCBTVFJMRU4KIFNWCiBTWU5DSFJPTklaQVRJ T05fQkFSUklFUgogU1lTVEVNX0lORk8KK1NhZmVUeXBlQ2FzdEV4cHIKK1NhZmVUeXBlQ2FzdFN0 YXRlCiBTYW1wbGVTY2FuCiBTYW1wbGVTY2FuR2V0U2FtcGxlU2l6ZV9mdW5jdGlvbgogU2FtcGxl U2NhblN0YXRlCi0tIAoyLjM0LjEKCg== --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0021-error-safe-for-casting-geometry-data-type.patch" Content-Disposition: attachment; filename="v18-0021-error-safe-for-casting-geometry-data-type.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedmx0 RnJvbSA3NDg5YTg1ZDA0NjliYzUyMzNmYzM4MDU5OGI0Yjk0MzA2OTkyNWY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMyBKYW4gMjAyNiAxNDo0NDozOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE4 IDIxLzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGdlb21ldHJ5IGRhdGEgdHlwZQoKc2VsZWN0 IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUsIHBwLnByb3NyYwpmcm9t IHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uIHBwLm9pZCA9IHBjLmNhc3RmdW5jCmpvaW4g cGdfdHlwZSBwdCBvbiBwdC5vaWQgPSBjYXN0c291cmNlCmpvaW4gcGdfdHlwZSBwdDEgb24gcHQx Lm9pZCA9IGNhc3R0YXJnZXQKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgIHB0LnR5cGFycmF5IDw+ IDAKYW5kIHB0LnR5cG5hbWVzcGFjZSA9ICdwZ19jYXRhbG9nJzo6cmVnbmFtZXNwYWNlCmFuZCBw dDEudHlwbmFtZXNwYWNlID0gJ3BnX2NhdGFsb2cnOjpyZWduYW1lc3BhY2UKYW5kIChwdC50eXBj YXRlZ29yeSAgPSAnRycgb3IgcHQxLnR5cGNhdGVnb3J5ICA9ICdHJykKb3JkZXIgYnkgY2FzdHNv dXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwgY2FzdHRh cmdldCB8ICAgIHByb3NyYwotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LQogcG9pbnQgICAgICB8IGJveCAgICAgICAgfCBwb2ludF9ib3gKIGxzZWcgICAgICAgfCBwb2lu dCAgICAgIHwgbHNlZ19jZW50ZXIKIHBhdGggICAgICAgfCBwb2x5Z29uICAgIHwgcGF0aF9wb2x5 CiBib3ggICAgICAgIHwgcG9pbnQgICAgICB8IGJveF9jZW50ZXIKIGJveCAgICAgICAgfCBsc2Vn ICAgICAgIHwgYm94X2RpYWdvbmFsCiBib3ggICAgICAgIHwgcG9seWdvbiAgICB8IGJveF9wb2x5 CiBib3ggICAgICAgIHwgY2lyY2xlICAgICB8IGJveF9jaXJjbGUKIHBvbHlnb24gICAgfCBwb2lu dCAgICAgIHwgcG9seV9jZW50ZXIKIHBvbHlnb24gICAgfCBwYXRoICAgICAgIHwgcG9seV9wYXRo CiBwb2x5Z29uICAgIHwgYm94ICAgICAgICB8IHBvbHlfYm94CiBwb2x5Z29uICAgIHwgY2lyY2xl ICAgICB8IHBvbHlfY2lyY2xlCiBjaXJjbGUgICAgIHwgcG9pbnQgICAgICB8IGNpcmNsZV9jZW50 ZXIKIGNpcmNsZSAgICAgfCBib3ggICAgICAgIHwgY2lyY2xlX2JveAogY2lyY2xlICAgICB8IHBv bHlnb24gICAgfAooMTQgcm93cykKCmFscmVhZHkgZXJyb3Igc2FmZTogcG9pbnRfYm94LCBib3hf ZGlhZ29uYWwsIGJveF9wb2x5LCBwb2x5X3BhdGgsIHBvbHlfYm94LApjaXJjbGVfY2VudGVyClRo aXMgcGF0Y2ggbWFrZSB0aGVzZSBmdW5jdGlvbnMgZXJyb3Igc2FmZTogcGF0aF9wb2x5LCBsc2Vn X2NlbnRlciwgYm94X2NlbnRlciwKYm94X2NpcmNsZSwgcG9seV9jZW50ZXIsIHBvbHlfY2lyY2xl LCBjaXJjbGVfYm94CgpjYW4gbm90IGVycm9yIHNhZmU6IGNhc3QgY2lyY2xlIHRvIHBvbHlnb24s IGJlY2F1c2UgaXQncyBhIFNRTCBmdW5jdGlvbi4KZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3Iu ZXMvbS9DQUNKdWZ4SENNenJIT1c9d1JlOEwzMHJNaEIzc2p3QXYxTEU5MjhGYTdzeE11MVR4LWdA bWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jIHwgMTky ICsrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTUyIGlu c2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9nZW9fb3BzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCmluZGV4 IGM2NTViMDE1YzE0Li45MDIyOGFkMjE3NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2dlb19vcHMuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jCkBAIC03 Nyw3ICs3Nyw4IEBAIGVudW0gcGF0aF9kZWxpbQogCiAvKiBSb3V0aW5lcyBmb3IgcG9pbnRzICov CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfY29uc3RydWN0KFBvaW50ICpyZXN1bHQsIGZsb2F0 OCB4LCBmbG9hdDggeSk7Ci1zdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfYWRkX3BvaW50KFBvaW50 ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOworc3RhdGljIGlubGluZSB2b2lkIHBv aW50X2FkZF9wb2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyLAorCQkJ CQkJCQkgICBOb2RlICplc2NvbnRleHQpOwogc3RhdGljIGlubGluZSB2b2lkIHBvaW50X3N1Yl9w b2ludChQb2ludCAqcmVzdWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxp bmUgdm9pZCBwb2ludF9tdWxfcG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQg KnB0Mik7CiBzdGF0aWMgaW5saW5lIHZvaWQgcG9pbnRfZGl2X3BvaW50KFBvaW50ICpyZXN1bHQs IFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwpAQCAtMTA4LDcgKzEwOSw3IEBAIHN0YXRpYyBmbG9h dDggbHNlZ19jbG9zZXB0X2xzZWcoUG9pbnQgKnJlc3VsdCwgTFNFRyAqb25fbHNlZywgTFNFRyAq dG9fbHNlZyk7CiAKIC8qIFJvdXRpbmVzIGZvciBib3hlcyAqLwogc3RhdGljIGlubGluZSB2b2lk IGJveF9jb25zdHJ1Y3QoQk9YICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIpOwotc3Rh dGljIHZvaWQgYm94X2NuKFBvaW50ICpjZW50ZXIsIEJPWCAqYm94KTsKK3N0YXRpYyB2b2lkIGJv eF9jbihQb2ludCAqY2VudGVyLCBCT1ggKmJveCwgTm9kZSAqZXNjb250ZXh0KTsKIHN0YXRpYyBi b29sIGJveF9vdihCT1ggKmJveDEsIEJPWCAqYm94Mik7CiBzdGF0aWMgZmxvYXQ4IGJveF9hcihC T1ggKmJveCk7CiBzdGF0aWMgZmxvYXQ4IGJveF9odChCT1ggKmJveCk7CkBAIC0xMjUsNyArMTI2 LDcgQEAgc3RhdGljIGZsb2F0OCBjaXJjbGVfYXIoQ0lSQ0xFICpjaXJjbGUpOwogCiAvKiBSb3V0 aW5lcyBmb3IgcG9seWdvbnMgKi8KIHN0YXRpYyB2b2lkIG1ha2VfYm91bmRfYm94KFBPTFlHT04g KnBvbHkpOwotc3RhdGljIHZvaWQgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlH T04gKnBvbHkpOworc3RhdGljIGJvb2wgcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBP TFlHT04gKnBvbHksIE5vZGUgKmVzY29udGV4dCk7CiBzdGF0aWMgYm9vbCBsc2VnX2luc2lkZV9w b2x5KFBvaW50ICphLCBQb2ludCAqYiwgUE9MWUdPTiAqcG9seSwgaW50IHN0YXJ0KTsKIHN0YXRp YyBib29sIHBvbHlfY29udGFpbl9wb2x5KFBPTFlHT04gKmNvbnRhaW5zX3BvbHksIFBPTFlHT04g KmNvbnRhaW5lZF9wb2x5KTsKIHN0YXRpYyBib29sIHBsaXN0X3NhbWUoaW50IG5wdHMsIFBvaW50 ICpwMSwgUG9pbnQgKnAyKTsKQEAgLTgzNiw4ICs4MzcsOCBAQCBib3hfZGlzdGFuY2UoUEdfRlVO Q1RJT05fQVJHUykKIAlQb2ludAkJYSwKIAkJCQliOwogCi0JYm94X2NuKCZhLCBib3gxKTsKLQli b3hfY24oJmIsIGJveDIpOworCWJveF9jbigmYSwgYm94MSwgTlVMTCk7CisJYm94X2NuKCZiLCBi b3gyLCBOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQoJmEsICZiLCBmY2luZm8t PmNvbnRleHQpKTsKIH0KQEAgLTg1MSw3ICs4NTIsOSBAQCBib3hfY2VudGVyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJQk9YCQkgICAqYm94ID0gUEdfR0VUQVJHX0JPWF9QKDApOwogCVBvaW50CSAgICpy ZXN1bHQgPSBwYWxsb2Nfb2JqZWN0KFBvaW50KTsKIAotCWJveF9jbihyZXN1bHQsIGJveCk7CisJ Ym94X2NuKHJlc3VsdCwgYm94LCBmY2luZm8tPmNvbnRleHQpOworCWlmICgoU09GVF9FUlJPUl9P Q0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JF VFVSTl9QT0lOVF9QKHJlc3VsdCk7CiB9CkBAIC04NjksMTMgKzg3MiwyNiBAQCBib3hfYXIoQk9Y ICpib3gpCiAvKgkJYm94X2NuCS0JCXN0b3JlcyB0aGUgY2VudGVycG9pbnQgb2YgdGhlIGJveCBp bnRvICpjZW50ZXIuCiAgKi8KIHN0YXRpYyB2b2lkCi1ib3hfY24oUG9pbnQgKmNlbnRlciwgQk9Y ICpib3gpCitib3hfY24oUG9pbnQgKmNlbnRlciwgQk9YICpib3gsIE5vZGUgKmVzY29udGV4dCkK IHsKLQljZW50ZXItPnggPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gueCwgYm94LT5s b3cueCksIDIuMCk7Ci0JY2VudGVyLT55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdo LnksIGJveC0+bG93LnkpLCAyLjApOworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CisKKwl4ID0g ZmxvYXQ4X3BsX3NhZmUoYm94LT5oaWdoLngsIGJveC0+bG93LngsIGVzY29udGV4dCk7CisJaWYg KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuOworCisJY2VudGVyLT54 ID0gZmxvYXQ4X2Rpdl9zYWZlKHgsIDIuMCwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9P Q0NVUlJFRChlc2NvbnRleHQpKQorCQlyZXR1cm47CisKKwl5ID0gZmxvYXQ4X3BsX3NhZmUoYm94 LT5oaWdoLnksIGJveC0+bG93LnksIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJS RUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuOworCisJY2VudGVyLT55ID0gZmxvYXQ4X2Rpdl9zYWZl KHksIDIuMCwgZXNjb250ZXh0KTsKIH0KIAotCiAvKgkJYm94X3dkCS0JCXJldHVybnMgdGhlIHdp ZHRoIChsZW5ndGgpIG9mIHRoZSBib3gKICAqCQkJCQkJCQkgIChob3Jpem9udGFsIG1hZ25pdHVk ZSkuCiAgKi8KQEAgLTIzMjksMTMgKzIzNDUsMzEgQEAgbHNlZ19jZW50ZXIoUEdfRlVOQ1RJT05f QVJHUykKIHsKIAlMU0VHCSAgICpsc2VnID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlQb2ludAkg ICAqcmVzdWx0OworCWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CiAKIAlyZXN1bHQgPSBwYWxsb2Nf b2JqZWN0KFBvaW50KTsKIAotCXJlc3VsdC0+eCA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGxzZWct PnBbMF0ueCwgbHNlZy0+cFsxXS54KSwgMi4wKTsKLQlyZXN1bHQtPnkgPSBmbG9hdDhfZGl2KGZs b2F0OF9wbChsc2VnLT5wWzBdLnksIGxzZWctPnBbMV0ueSksIDIuMCk7CisJeCA9IGZsb2F0OF9w bF9zYWZlKGxzZWctPnBbMF0ueCwgbHNlZy0+cFsxXS54LCBmY2luZm8tPmNvbnRleHQpOworCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKwor CXJlc3VsdC0+eCA9IGZsb2F0OF9kaXZfc2FmZSh4LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7CisJ aWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOwor CisJeSA9IGZsb2F0OF9wbF9zYWZlKGxzZWctPnBbMF0ueSwgbHNlZy0+cFsxXS55LCBmY2luZm8t PmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJ CWdvdG8gZmFpbDsKKworCXJlc3VsdC0+eSA9IGZsb2F0OF9kaXZfc2FmZSh5LCAyLjAsIGZjaW5m by0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkK KwkJZ290byBmYWlsOwogCiAJUEdfUkVUVVJOX1BPSU5UX1AocmVzdWx0KTsKKworZmFpbDoKKwlQ R19SRVRVUk5fTlVMTCgpOwogfQogCiAKQEAgLTMyOTAsNyArMzMyNCw3IEBAIGJveF9pbnRlcnB0 X2xzZWcoUG9pbnQgKnJlc3VsdCwgQk9YICpib3gsIExTRUcgKmxzZWcpCiAKIAlpZiAocmVzdWx0 ICE9IE5VTEwpCiAJewotCQlib3hfY24oJnBvaW50LCBib3gpOworCQlib3hfY24oJnBvaW50LCBi b3gsIE5VTEwpOwogCQlsc2VnX2Nsb3NlcHRfcG9pbnQocmVzdWx0LCBsc2VnLCAmcG9pbnQpOwog CX0KIApAQCAtNDEyMSwxMSArNDE1NSwyMCBAQCBjb25zdHJ1Y3RfcG9pbnQoUEdfRlVOQ1RJT05f QVJHUykKIAogCiBzdGF0aWMgaW5saW5lIHZvaWQKLXBvaW50X2FkZF9wb2ludChQb2ludCAqcmVz dWx0LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKQorcG9pbnRfYWRkX3BvaW50KFBvaW50ICpyZXN1 bHQsIFBvaW50ICpwdDEsIFBvaW50ICpwdDIsIE5vZGUgKmVzY29udGV4dCkKIHsKLQlwb2ludF9j b25zdHJ1Y3QocmVzdWx0LAotCQkJCQlmbG9hdDhfcGwocHQxLT54LCBwdDItPngpLAotCQkJCQlm bG9hdDhfcGwocHQxLT55LCBwdDItPnkpKTsKKwlmbG9hdDgJCXg7CisJZmxvYXQ4CQl5OworCisJ eCA9IGZsb2F0OF9wbF9zYWZlKHB0MS0+eCwgcHQyLT54LCBlc2NvbnRleHQpOworCWlmIChTT0ZU X0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybjsKKworCXkgPSBmbG9hdDhfcGxf c2FmZShwdDEtPnksIHB0Mi0+eSwgZXNjb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJF RChlc2NvbnRleHQpKQorCQlyZXR1cm47CisKKwlwb2ludF9jb25zdHJ1Y3QocmVzdWx0LCB4LCB5 KTsKIH0KIAogRGF0dW0KQEAgLTQxMzcsNyArNDE4MCw3IEBAIHBvaW50X2FkZChQR19GVU5DVElP Tl9BUkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChQb2ludCk7CiAKLQlwb2ludF9hZGRf cG9pbnQocmVzdWx0LCBwMSwgcDIpOworCXBvaW50X2FkZF9wb2ludChyZXN1bHQsIHAxLCBwMiwg TlVMTCk7CiAKIAlQR19SRVRVUk5fUE9JTlRfUChyZXN1bHQpOwogfQpAQCAtNDI0OSw4ICs0Mjky LDggQEAgYm94X2FkZChQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVj dChCT1gpOwogCi0JcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQtPmhpZ2gsICZib3gtPmhpZ2gsIHAp OwotCXBvaW50X2FkZF9wb2ludCgmcmVzdWx0LT5sb3csICZib3gtPmxvdywgcCk7CisJcG9pbnRf YWRkX3BvaW50KCZyZXN1bHQtPmhpZ2gsICZib3gtPmhpZ2gsIHAsIE5VTEwpOworCXBvaW50X2Fk ZF9wb2ludCgmcmVzdWx0LT5sb3csICZib3gtPmxvdywgcCwgTlVMTCk7CiAKIAlQR19SRVRVUk5f Qk9YX1AocmVzdWx0KTsKIH0KQEAgLTQ0MTMsNyArNDQ1Niw3IEBAIHBhdGhfYWRkX3B0KFBHX0ZV TkNUSU9OX0FSR1MpCiAJaW50CQkJaTsKIAogCWZvciAoaSA9IDA7IGkgPCBwYXRoLT5ucHRzOyBp KyspCi0JCXBvaW50X2FkZF9wb2ludCgmcGF0aC0+cFtpXSwgJnBhdGgtPnBbaV0sIHBvaW50KTsK KwkJcG9pbnRfYWRkX3BvaW50KCZwYXRoLT5wW2ldLCAmcGF0aC0+cFtpXSwgcG9pbnQsIE5VTEwp OwogCiAJUEdfUkVUVVJOX1BBVEhfUChwYXRoKTsKIH0KQEAgLTQ0NzEsNyArNDUxNCw3IEBAIHBh dGhfcG9seShQR19GVU5DVElPTl9BUkdTKQogCiAJLyogVGhpcyBpcyBub3QgdmVyeSBjb25zaXN0 ZW50IC0tLSBvdGhlciBzaW1pbGFyIGNhc2VzIHJldHVybiBOVUxMIC4uLiAqLwogCWlmICghcGF0 aC0+Y2xvc2VkKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwg KERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUp LAogCQkJCSBlcnJtc2coIm9wZW4gcGF0aCBjYW5ub3QgYmUgY29udmVydGVkIHRvIHBvbHlnb24i KSkpOwogCkBAIC00NTIxLDcgKzQ1NjQsOSBAQCBwb2x5X2NlbnRlcihQR19GVU5DVElPTl9BUkdT KQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChQb2ludCk7CiAKLQlwb2x5X3RvX2NpcmNsZSgm Y2lyY2xlLCBwb2x5KTsKKwlpZiAoIXBvbHlfdG9fY2lyY2xlKCZjaXJjbGUsIHBvbHksIGZjaW5m by0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKIAkqcmVzdWx0ID0gY2lyY2xlLmNl bnRlcjsKIAogCVBHX1JFVFVSTl9QT0lOVF9QKHJlc3VsdCk7CkBAIC00OTgzLDcgKzUwMjgsNyBA QCBjaXJjbGVfYWRkX3B0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBwYWxsb2Nfb2Jq ZWN0KENJUkNMRSk7CiAKLQlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAmY2lyY2xl LT5jZW50ZXIsIHBvaW50KTsKKwlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLCAmY2ly Y2xlLT5jZW50ZXIsIHBvaW50LCBOVUxMKTsKIAlyZXN1bHQtPnJhZGl1cyA9IGNpcmNsZS0+cmFk aXVzOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9QKHJlc3VsdCk7CkBAIC01MjA0LDE0ICs1MjQ5LDMw IEBAIGNpcmNsZV9ib3goUEdfRlVOQ1RJT05fQVJHUykKIAogCWJveCA9IHBhbGxvY19vYmplY3Qo Qk9YKTsKIAotCWRlbHRhID0gZmxvYXQ4X2RpdihjaXJjbGUtPnJhZGl1cywgc3FydCgyLjApKTsK KwlkZWx0YSA9IGZsb2F0OF9kaXZfc2FmZShjaXJjbGUtPnJhZGl1cywgc3FydCgyLjApLCBmY2lu Zm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkp CisJCWdvdG8gZmFpbDsKIAotCWJveC0+aGlnaC54ID0gZmxvYXQ4X3BsKGNpcmNsZS0+Y2VudGVy LngsIGRlbHRhKTsKLQlib3gtPmxvdy54ID0gZmxvYXQ4X21pKGNpcmNsZS0+Y2VudGVyLngsIGRl bHRhKTsKLQlib3gtPmhpZ2gueSA9IGZsb2F0OF9wbChjaXJjbGUtPmNlbnRlci55LCBkZWx0YSk7 Ci0JYm94LT5sb3cueSA9IGZsb2F0OF9taShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSk7CisJYm94 LT5oaWdoLnggPSBmbG9hdDhfcGxfc2FmZShjaXJjbGUtPmNlbnRlci54LCBkZWx0YSwgZmNpbmZv LT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQor CQlnb3RvIGZhaWw7CisKKwlib3gtPmxvdy54ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50 ZXIueCwgZGVsdGEsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQo ZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJYm94LT5oaWdoLnkgPSBmbG9hdDhf cGxfc2FmZShjaXJjbGUtPmNlbnRlci55LCBkZWx0YSwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlnb3RvIGZhaWw7CisKKwli b3gtPmxvdy55ID0gZmxvYXQ4X21pX3NhZmUoY2lyY2xlLT5jZW50ZXIueSwgZGVsdGEsIGZjaW5m by0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZvLT5jb250ZXh0KSkK KwkJZ290byBmYWlsOwogCiAJUEdfUkVUVVJOX0JPWF9QKGJveCk7CisKK2ZhaWw6CisJUEdfUkVU VVJOX05VTEwoKTsKIH0KIAogLyogYm94X2NpcmNsZSgpCkBAIC01MjIyLDE1ICs1MjgzLDM1IEBA IGJveF9jaXJjbGUoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlCT1gJCSAgICpib3ggPSBQR19HRVRB UkdfQk9YX1AoMCk7CiAJQ0lSQ0xFCSAgICpjaXJjbGU7CisJZmxvYXQ4CQl4OworCWZsb2F0OAkJ eTsKIAogCWNpcmNsZSA9IHBhbGxvY19vYmplY3QoQ0lSQ0xFKTsKIAotCWNpcmNsZS0+Y2VudGVy LnggPSBmbG9hdDhfZGl2KGZsb2F0OF9wbChib3gtPmhpZ2gueCwgYm94LT5sb3cueCksIDIuMCk7 Ci0JY2lyY2xlLT5jZW50ZXIueSA9IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC55LCBi b3gtPmxvdy55KSwgMi4wKTsKKwl4ID0gZmxvYXQ4X3BsX3NhZmUoYm94LT5oaWdoLngsIGJveC0+ bG93LngsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJY2lyY2xlLT5jZW50ZXIueCA9IGZsb2F0OF9k aXZfc2FmZSh4LCAyLjAsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJS RUQoZmNpbmZvLT5jb250ZXh0KSkKKwkJZ290byBmYWlsOworCisJeSA9IGZsb2F0OF9wbF9zYWZl KGJveC0+aGlnaC55LCBib3gtPmxvdy55LCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKKworCWNpcmNsZS0+ Y2VudGVyLnkgPSBmbG9hdDhfZGl2X3NhZmUoeSwgMi4wLCBmY2luZm8tPmNvbnRleHQpOworCWlm IChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCWdvdG8gZmFpbDsKIAog CWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2VudGVyLCAmYm94LT5oaWdoLCBm Y2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4 dCkpCisJCWdvdG8gZmFpbDsKIAogCVBHX1JFVFVSTl9DSVJDTEVfUChjaXJjbGUpOworCitmYWls OgorCVBHX1JFVFVSTl9OVUxMKCk7CiB9CiAKIApAQCAtNTI5NCwxMCArNTM3NSwxMSBAQCBjaXJj bGVfcG9seShQR19GVU5DVElPTl9BUkdTKQogICogWFhYIFRoaXMgYWxnb3JpdGhtIHNob3VsZCB1 c2Ugd2VpZ2h0ZWQgbWVhbnMgb2YgbGluZSBzZWdtZW50cwogICoJcmF0aGVyIHRoYW4gc3RyYWln aHQgYXZlcmFnZSB2YWx1ZXMgb2YgcG9pbnRzIC0gdGdsIDk3LzAxLzIxLgogICovCi1zdGF0aWMg dm9pZAotcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCitzdGF0 aWMgYm9vbAorcG9seV90b19jaXJjbGUoQ0lSQ0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHksIE5v ZGUgKmVzY29udGV4dCkKIHsKIAlpbnQJCQlpOworCWZsb2F0OAkJeDsKIAogCUFzc2VydChwb2x5 LT5ucHRzID4gMCk7CiAKQEAgLTUzMDYsMTQgKzUzODgsNDMgQEAgcG9seV90b19jaXJjbGUoQ0lS Q0xFICpyZXN1bHQsIFBPTFlHT04gKnBvbHkpCiAJcmVzdWx0LT5yYWRpdXMgPSAwOwogCiAJZm9y IChpID0gMDsgaSA8IHBvbHktPm5wdHM7IGkrKykKLQkJcG9pbnRfYWRkX3BvaW50KCZyZXN1bHQt PmNlbnRlciwgJnJlc3VsdC0+Y2VudGVyLCAmcG9seS0+cFtpXSk7Ci0JcmVzdWx0LT5jZW50ZXIu eCA9IGZsb2F0OF9kaXYocmVzdWx0LT5jZW50ZXIueCwgcG9seS0+bnB0cyk7Ci0JcmVzdWx0LT5j ZW50ZXIueSA9IGZsb2F0OF9kaXYocmVzdWx0LT5jZW50ZXIueSwgcG9seS0+bnB0cyk7CisJewor CQlwb2ludF9hZGRfcG9pbnQoJnJlc3VsdC0+Y2VudGVyLAorCQkJCQkJJnJlc3VsdC0+Y2VudGVy LAorCQkJCQkJJnBvbHktPnBbaV0sCisJCQkJCQllc2NvbnRleHQpOworCQlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZhbHNlOworCX0KKworCXJlc3VsdC0+ Y2VudGVyLnggPSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5jZW50ZXIueCwKKwkJCQkJCQkJCSAg IHBvbHktPm5wdHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09D Q1VSUkVEKGVzY29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKKworCXJlc3VsdC0+Y2VudGVyLnkg PSBmbG9hdDhfZGl2X3NhZmUocmVzdWx0LT5jZW50ZXIueSwKKwkJCQkJCQkJCSAgIHBvbHktPm5w dHMsCisJCQkJCQkJCQkgICBlc2NvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVz Y29udGV4dCkpCisJCXJldHVybiBmYWxzZTsKIAogCWZvciAoaSA9IDA7IGkgPCBwb2x5LT5ucHRz OyBpKyspCi0JCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsKHJlc3VsdC0+cmFkaXVzLAotCQkJ CQkJCQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBOVUxMKSk7Ci0J cmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2KHJlc3VsdC0+cmFkaXVzLCBwb2x5LT5ucHRzKTsK Kwl7CisJCXggPSBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyLCBlc2NvbnRl eHQpOworCQlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQpKQorCQkJcmV0dXJuIGZh bHNlOworCisJCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsX3NhZmUocmVzdWx0LT5yYWRpdXMs IHgsIGVzY29udGV4dCk7CisJCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGVzY29udGV4dCkpCisJ CQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmVzdWx0LT5yYWRpdXMgPSBmbG9hdDhfZGl2X3NhZmUo cmVzdWx0LT5yYWRpdXMsIHBvbHktPm5wdHMsIGVzY29udGV4dCk7CisJaWYgKFNPRlRfRVJST1Jf T0NDVVJSRUQoZXNjb250ZXh0KSkKKwkJcmV0dXJuIGZhbHNlOworCisJcmV0dXJuIHRydWU7CiB9 CiAKIERhdHVtCkBAIC01MzI0LDcgKzU0MzUsOCBAQCBwb2x5X2NpcmNsZShQR19GVU5DVElPTl9B UkdTKQogCiAJcmVzdWx0ID0gcGFsbG9jX29iamVjdChDSVJDTEUpOwogCi0JcG9seV90b19jaXJj bGUocmVzdWx0LCBwb2x5KTsKKwlpZiAoIXBvbHlfdG9fY2lyY2xlKHJlc3VsdCwgcG9seSwgZmNp bmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9DSVJDTEVf UChyZXN1bHQpOwogfQotLSAKMi4zNC4xCgo= --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0019-introduce-float8-safe-function.patch" Content-Disposition: attachment; filename="v18-0019-introduce-float8-safe-function.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnednq4 RnJvbSBlZGU2YzAzNjc0MzJlZTAyNDkyYjUxYjJiNzJhOGM5ZjY0ODY4ZWI4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMiBKYW4gMjAyNiAxNjoxNDoyOCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE4 IDE5LzIzXSBpbnRyb2R1Y2UgZmxvYXQ4IHNhZmUgZnVuY3Rpb24KCnRoaXMgcGF0Y2ggaW50cm9k dWNlIHRoZSBmb2xsb3dpbmcgZnVuY3Rpb246CmZsb2F0OF9wbF9zYWZlCmZsb2F0OF9taV9zYWZl CmZsb2F0OF9tdWxfc2FmZQpmbG9hdDhfZGl2X3NhZmUKCnJlZmFjdG9yaW5nIGV4aXN0aW5nIGZ1 bmN0aW9uIGlzIGJlIHRvbyBpbnZhc2l2ZS4gIHRodXMgYWRkIHRoZXNlIG5ldyBmdW5jdGlvbnMu Ckl0J3MgY2xvc2UgdG8gZXhpc3Rpbmcgbm9uLXNhZmUgdmVyc2lvbiBmdW5jdGlvbnMuCgpkaXNj dXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhO Vmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmggfCA3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA1OCBpbnNlcnRpb25zKCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxv YXQuaAppbmRleCBkMmU5ODk5NjBhNS4uODcyM2I0YzAwYjAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL3V0aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApAQCAtMTA5 LDE2ICsxMDksMjQgQEAgZmxvYXQ0X3BsKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQg dmFsMikKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0OAorZmxvYXQ4 X3BsX3NhZmUoY29uc3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9k ZSAqZXNjb250ZXh0KQoreworCWZsb2F0OAkJcmVzdWx0OworCisJcmVzdWx0ID0gdmFsMSArIHZh bDI7CisJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNp bmYodmFsMikpCisJeworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1 cm4gMC4wOworCX0KKwlyZXR1cm4gcmVzdWx0OworfQorCiBzdGF0aWMgaW5saW5lIGZsb2F0OAog ZmxvYXQ4X3BsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIHsKLQlmbG9h dDgJCXJlc3VsdDsKLQotCXJlc3VsdCA9IHZhbDEgKyB2YWwyOwotCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVy Zmxvd19lcnJvcihOVUxMKTsKLQotCXJldHVybiByZXN1bHQ7CisJcmV0dXJuIGZsb2F0OF9wbF9z YWZlKHZhbDEsIHZhbDIsIE5VTEwpOzsKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDQKQEAgLTEz MywxNiArMTQxLDI0IEBAIGZsb2F0NF9taShjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0 IHZhbDIpCiAJcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGljIGlubGluZSBmbG9hdDgKK2Zsb2F0 OF9taV9zYWZlKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMiwgc3RydWN0IE5v ZGUgKmVzY29udGV4dCkKK3sKKwlmbG9hdDgJCXJlc3VsdDsKKworCXJlc3VsdCA9IHZhbDEgLSB2 YWwyOworCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlz aW5mKHZhbDIpKQorCXsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0KTsKKwkJcmV0 dXJuIDAuMDsKKwl9CisJcmV0dXJuIHJlc3VsdDsKK30KKwogc3RhdGljIGlubGluZSBmbG9hdDgK IGZsb2F0OF9taShjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCiB7Ci0JZmxv YXQ4CQlyZXN1bHQ7Ci0KLQlyZXN1bHQgPSB2YWwxIC0gdmFsMjsKLQlpZiAodW5saWtlbHkoaXNp bmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3Zl cmZsb3dfZXJyb3IoTlVMTCk7Ci0KLQlyZXR1cm4gcmVzdWx0OworCXJldHVybiBmbG9hdDhfbWlf c2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKIH0KIAogc3RhdGljIGlubGluZSBmbG9hdDQKQEAgLTE2 MCwxOSArMTc2LDMzIEBAIGZsb2F0NF9tdWwoY29uc3QgZmxvYXQ0IHZhbDEsIGNvbnN0IGZsb2F0 NCB2YWwyKQogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0OAotZmxvYXQ4X211bChjb25zdCBmbG9h dDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCitmbG9hdDhfbXVsX3NhZmUoY29uc3QgZmxvYXQ4 IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KQogewogCWZs b2F0OAkJcmVzdWx0OwogCiAJcmVzdWx0ID0gdmFsMSAqIHZhbDI7CiAJaWYgKHVubGlrZWx5KGlz aW5mKHJlc3VsdCkpICYmICFpc2luZih2YWwxKSAmJiAhaXNpbmYodmFsMikpCi0JCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOworCXsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoZXNjb250ZXh0 KTsKKwkJcmV0dXJuIDAuMDsKKwl9CisKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYg dmFsMSAhPSAwLjAgJiYgdmFsMiAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxM KTsKKwl7CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihlc2NvbnRleHQpOworCQlyZXR1cm4gMC4w OworCX0KIAogCXJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRpYyBpbmxpbmUgZmxvYXQ4CitmbG9h dDhfbXVsKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKK3sKKwlyZXR1cm4g ZmxvYXQ4X211bF9zYWZlKHZhbDEsIHZhbDIsIE5VTEwpOworfQorCisKIHN0YXRpYyBpbmxpbmUg ZmxvYXQ0CiBmbG9hdDRfZGl2KGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikK IHsKQEAgLTE5MCwyMSArMjIwLDI4IEBAIGZsb2F0NF9kaXYoY29uc3QgZmxvYXQ0IHZhbDEsIGNv bnN0IGZsb2F0NCB2YWwyKQogfQogCiBzdGF0aWMgaW5saW5lIGZsb2F0OAotZmxvYXQ4X2Rpdihj b25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCitmbG9hdDhfZGl2X3NhZmUoY29u c3QgZmxvYXQ4IHZhbDEsIGNvbnN0IGZsb2F0OCB2YWwyLCBzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0 KQogewogCWZsb2F0OAkJcmVzdWx0OwogCiAJaWYgKHVubGlrZWx5KHZhbDIgPT0gMC4wKSAmJiAh aXNuYW4odmFsMSkpCi0JCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKE5VTEwpOworCQlmbG9hdF96 ZXJvX2RpdmlkZV9lcnJvcihlc2NvbnRleHQpOwogCXJlc3VsdCA9IHZhbDEgLyB2YWwyOwogCWlm ICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkpCi0JCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihlc2NvbnRleHQpOwogCWlm ICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSAmJiB2YWwxICE9IDAuMCAmJiAhaXNpbmYodmFsMikp Ci0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9y KGVzY29udGV4dCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgaW5saW5lIGZsb2F0 OAorZmxvYXQ4X2Rpdihjb25zdCBmbG9hdDggdmFsMSwgY29uc3QgZmxvYXQ4IHZhbDIpCit7CisJ cmV0dXJuIGZsb2F0OF9kaXZfc2FmZSh2YWwxLCB2YWwyLCBOVUxMKTsKK30KKworCiAvKgogICog Um91dGluZXMgZm9yIE5hTi1hd2FyZSBjb21wYXJpc29ucwogICoKLS0gCjIuMzQuMQoK --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Disposition: attachment; filename="v18-0023-error-safe-for-user-defined-CREATE-CAST.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedng2 RnJvbSA0ZWJlYmRmZGI0YzMzMTQwMTM5OTcxZmIyOGRlYjY1YWUxYjc3OGEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMTMgSmFuIDIwMjYgMjM6NTE6MDEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAyMy8yM10gZXJyb3Igc2FmZSBmb3IgdXNlciBkZWZpbmVkIENSRUFURSBDQVNUCgpwZ19jYXN0 LmNhc3RlcnJvcnNhZmUgY29sdW1uIHRvIGluZGljYXRlIGNhc3RmdW5jIGlzIGVycm9yIHNhZmUg b3Igbm90LgpjaGFuZ2Ugc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdCB0byBpbmRpY2F0 ZSB0aGF0IG1vc3Qgb2YgdGhlIHN5c3RlbSBjYXN0CmZ1bmN0aW9uIHN1cHBvcnQgc29mdCBlcnJv ciBldmFsdWF0aW9uLgoKVGhlIFNBRkUga2V5d29yZCBpcyBpbnRyb2R1Y2VkIGZvciBhbGxvdyB1 c2VyLWRlZmluZWQgQ1JFQVRFIENBU1QgY2FuIGFsc28gYmUKZXZhbHVhdGVkIGluIHNvZnQtZXJy b3IuCgpUaGUgbmV3IHN5bm9wc2lzIG9mIENSRUFURSBDQVNUIGlzOgpDUkVBVEUgQ0FTVCAoc291 cmNlX3R5cGUgQVMgdGFyZ2V0X3R5cGUpCiAgICBXSVRIIFtTQUZFXSBGVU5DVElPTiBmdW5jdGlv bl9uYW1lIFsgKGFyZ3VtZW50X3R5cGUgWywgLi4uXSkgXQogICAgWyBBUyBBU1NJR05NRU5UIHwg QVMgSU1QTElDSVQgXQoKVGhlIGZvbGxvd2luZyBjYXN0IGluIGNpdGV4dCwgaHN0b3JlIGNvbnRy aWIgbW9kdWxlIHJlZmFjdG9yZWQgdG8gZXJyb3Igc2FmZToKQ0FTVCAoYnBjaGFyIEFTIGNpdGV4 dCkKQ0FTVCAoYm9vbGVhbiBBUyBjaXRleHQpCkNBU1QgKGluZXQgQVMgY2l0ZXh0KQpDQVNUICh0 ZXh0W10gQVMgaHN0b3JlKQpDQVNUIChoc3RvcmUgQVMganNvbikKQ0FTVCAoaHN0b3JlIEFTIGpz b25iKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1q Y3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBjb250 cmliL2NpdGV4dC9jaXRleHQtLTEuNC5zcWwgICAgICAgICAgICB8ICAgNiArLQogY29udHJpYi9j aXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dCAgICAgICAgfCAgMjQgKy0KIGNvbnRyaWIvY2l0ZXh0 L2V4cGVjdGVkL2NpdGV4dF8xLm91dCAgICAgIHwgIDI0ICstCiBjb250cmliL2NpdGV4dC9zcWwv Y2l0ZXh0LnNxbCAgICAgICAgICAgICB8ICAgNSArLQogY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQv aHN0b3JlLm91dCAgICAgICAgfCAgMzcgKysrCiBjb250cmliL2hzdG9yZS9oc3RvcmUtLTEuMi0t MS4zLnNxbCAgICAgICB8ICAgMiArLQogY29udHJpYi9oc3RvcmUvaHN0b3JlLS0xLjQuc3FsICAg ICAgICAgICAgfCAgIDYgKy0KIGNvbnRyaWIvaHN0b3JlL2hzdG9yZV9pby5jICAgICAgICAgICAg ICAgIHwgICA4ICstCiBjb250cmliL2hzdG9yZS9zcWwvaHN0b3JlLnNxbCAgICAgICAgICAgICB8 ICAxMSArCiBkb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICB8ICAxNSAr CiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jYXN0LnNnbWwgICAgICAgICB8ICAxNCArLQogZG9j L3NyYy9zZ21sL3N5bnRheC5zZ21sICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfY2FzdC5jICAgICAgICAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9j b21tYW5kcy9mdW5jdGlvbmNtZHMuYyAgICAgICB8ICAgOSArLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvdHlwZWNtZHMuYyAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0u eSAgICAgICAgICAgICAgICAgfCAgMTggKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMgICAgICAgICAgIHwgIDEwICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0ICAg ICAgICAgICB8IDMzMCArKysrKysrKysrKy0tLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX2Nhc3QuaCAgICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5v ZGVzLmggICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmggICAg ICAgICAgICAgICB8ICAgMSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0 Lm91dCB8ICAgOCArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dCAg fCAgMjQgKy0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbCAgICAgIHwgICA1 ICsKIDI0IGZpbGVzIGNoYW5nZWQsIDM1MyBpbnNlcnRpb25zKCspLCAyMTggZGVsZXRpb25zKC0p CgpkaWZmIC0tZ2l0IGEvY29udHJpYi9jaXRleHQvY2l0ZXh0LS0xLjQuc3FsIGIvY29udHJpYi9j aXRleHQvY2l0ZXh0LS0xLjQuc3FsCmluZGV4IDdiMDYxOTg5MzUyLi41Yzg3ODIwMzg4ZiAxMDA2 NDQKLS0tIGEvY29udHJpYi9jaXRleHQvY2l0ZXh0LS0xLjQuc3FsCisrKyBiL2NvbnRyaWIvY2l0 ZXh0L2NpdGV4dC0tMS40LnNxbApAQCAtODUsOSArODUsOSBAQCBDUkVBVEUgQ0FTVCAoY2l0ZXh0 IEFTIHZhcmNoYXIpIFdJVEhPVVQgRlVOQ1RJT04gQVMgSU1QTElDSVQ7CiBDUkVBVEUgQ0FTVCAo Y2l0ZXh0IEFTIGJwY2hhcikgIFdJVEhPVVQgRlVOQ1RJT04gQVMgQVNTSUdOTUVOVDsKIENSRUFU RSBDQVNUICh0ZXh0IEFTIGNpdGV4dCkgICAgV0lUSE9VVCBGVU5DVElPTiBBUyBBU1NJR05NRU5U OwogQ1JFQVRFIENBU1QgKHZhcmNoYXIgQVMgY2l0ZXh0KSBXSVRIT1VUIEZVTkNUSU9OIEFTIEFT U0lHTk1FTlQ7Ci1DUkVBVEUgQ0FTVCAoYnBjaGFyIEFTIGNpdGV4dCkgIFdJVEggRlVOQ1RJT04g Y2l0ZXh0KGJwY2hhcikgIEFTIEFTU0lHTk1FTlQ7Ci1DUkVBVEUgQ0FTVCAoYm9vbGVhbiBBUyBj aXRleHQpIFdJVEggRlVOQ1RJT04gY2l0ZXh0KGJvb2xlYW4pIEFTIEFTU0lHTk1FTlQ7Ci1DUkVB VEUgQ0FTVCAoaW5ldCBBUyBjaXRleHQpICAgIFdJVEggRlVOQ1RJT04gY2l0ZXh0KGluZXQpICAg IEFTIEFTU0lHTk1FTlQ7CitDUkVBVEUgQ0FTVCAoYnBjaGFyIEFTIGNpdGV4dCkgIFdJVEggU0FG RSBGVU5DVElPTiBjaXRleHQoYnBjaGFyKSAgQVMgQVNTSUdOTUVOVDsKK0NSRUFURSBDQVNUIChi b29sZWFuIEFTIGNpdGV4dCkgV0lUSCBTQUZFIEZVTkNUSU9OIGNpdGV4dChib29sZWFuKSBBUyBB U1NJR05NRU5UOworQ1JFQVRFIENBU1QgKGluZXQgQVMgY2l0ZXh0KSAgICBXSVRIIFNBRkUgRlVO Q1RJT04gY2l0ZXh0KGluZXQpICAgIEFTIEFTU0lHTk1FTlQ7CiAKIC0tCiAtLSBPcGVyYXRvciBG dW5jdGlvbnMuCmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHQub3V0 IGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dAppbmRleCA4YTk4NmM3Y2MzMS4u YmUzMjg3MTU0OTIgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvY2l0ZXh0L2V4cGVjdGVkL2NpdGV4dC5v dXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0ZWQvY2l0ZXh0Lm91dApAQCAtMTAsMTEgKzEw LDEyIEBAIFdIRVJFIG9wYy5vaWQgPj0gMTYzODQgQU5EIE5PVCBhbXZhbGlkYXRlKG9wYy5vaWQp OwogLS0tLS0tLS0rLS0tLS0tLS0tCiAoMCByb3dzKQogCi1TRUxFQ1QgQ0FTVCgnYWJjJzo6YnBj aGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7IC0tZXJyb3IK LUVSUk9SOiAgY2Fubm90IGNhc3QgdHlwZSBjaGFyYWN0ZXIgdG8gY2l0ZXh0IHdoZW4gREVGQVVM VCBleHByZXNzaW9uIGlzIHNwZWNpZmllZCBpbiBDQVNUIC4uLiBPTiBDT05WRVJTSU9OIEVSUk9S Ci1MSU5FIDE6IFNFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVM TCBPTiBDT05WRVJTSS4uLgotICAgICAgICAgICAgICAgICAgICBeCi1ISU5UOiAgU2FmZSB0eXBl IGNhc3QgZm9yIHVzZXItZGVmaW5lZCB0eXBlcyBhcmUgbm90IHlldCBzdXBwb3J0ZWQuCitTRUxF Q1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lP TiBFUlJPUik7CisgY2l0ZXh0IAorLS0tLS0tLS0KKyBhYmMKKygxIHJvdykKKwogLS0gVGVzdCB0 aGUgb3BlcmF0b3JzIGFuZCBpbmRleGluZyBmdW5jdGlvbnMKIC0tIFRlc3QgPSBhbmQgPD4uCiBT RUxFQ1QgJ2EnOjpjaXRleHQgPSAnYSc6OmNpdGV4dCBBUyB0OwpAQCAtNTIzLDYgKzUyNCwxMiBA QCBTRUxFQ1QgdHJ1ZTo6Y2l0ZXh0ID0gJ3RydWUnIEFTIHQ7CiAgdAogKDEgcm93KQogCitTRUxF Q1QgQ0FTVCh0cnVlIEFTIGNpdGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7 CisgY2l0ZXh0IAorLS0tLS0tLS0KKyB0cnVlCisoMSByb3cpCisKIFNFTEVDVCAndHJ1ZSc6OmNp dGV4dDo6Ym9vbGVhbiA9IHRydWUgQVMgdDsKICB0IAogLS0tCkBAIC03ODcsNiArNzk0LDEzIEBA IFNFTEVDVCAnMTkyLjE2OC4xMDAuMTI4Jzo6Y2l0ZXh0OjppbmV0ID0gJzE5Mi4xNjguMTAwLjEy OCc6OmluZXQgQVMgdDsKICB0CiAoMSByb3cpCiAKK1NFTEVDVCBDQVNUKGluZXQgJzE5Mi4xNjgu MTAwLjEyOCcgQVMgY2l0ZXh0CisgICAgICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9O IEVSUk9SKSA9ICcxOTIuMTY4LjEwMC4xMjgvMzInIEFTIHQ7CisgdCAKKy0tLQorIHQKKygxIHJv dykKKwogU0VMRUNUICcwODowMDoyYjowMTowMjowMyc6Om1hY2FkZHI6OmNpdGV4dCA9ICcwODow MDoyYjowMTowMjowMycgQVMgdDsKICB0IAogLS0tCmRpZmYgLS1naXQgYS9jb250cmliL2NpdGV4 dC9leHBlY3RlZC9jaXRleHRfMS5vdXQgYi9jb250cmliL2NpdGV4dC9leHBlY3RlZC9jaXRleHRf MS5vdXQKaW5kZXggMzQzM2Q0NGEwMGUuLmU5Zjg0NTRjNjYyIDEwMDY0NAotLS0gYS9jb250cmli L2NpdGV4dC9leHBlY3RlZC9jaXRleHRfMS5vdXQKKysrIGIvY29udHJpYi9jaXRleHQvZXhwZWN0 ZWQvY2l0ZXh0XzEub3V0CkBAIC0xMCwxMSArMTAsMTIgQEAgV0hFUkUgb3BjLm9pZCA+PSAxNjM4 NCBBTkQgTk9UIGFtdmFsaWRhdGUob3BjLm9pZCk7CiAtLS0tLS0tLSstLS0tLS0tLS0KICgwIHJv d3MpCiAKLVNFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsgLS1lcnJvcgotRVJST1I6ICBjYW5ub3QgY2FzdCB0eXBlIGNo YXJhY3RlciB0byBjaXRleHQgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24gaXMgc3BlY2lmaWVkIGlu IENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKLUxJTkUgMTogU0VMRUNUIENBU1QoJ2FiYyc6 OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJLi4uCi0gICAgICAgICAg ICAgICAgICAgIF4KLUhJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVz IGFyZSBub3QgeWV0IHN1cHBvcnRlZC4KK1NFTEVDVCBDQVNUKCdhYmMnOjpicGNoYXIgQVMgY2l0 ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjaXRleHQgCistLS0tLS0t LQorIGFiYworKDEgcm93KQorCiAtLSBUZXN0IHRoZSBvcGVyYXRvcnMgYW5kIGluZGV4aW5nIGZ1 bmN0aW9ucwogLS0gVGVzdCA9IGFuZCA8Pi4KIFNFTEVDVCAnYSc6OmNpdGV4dCA9ICdhJzo6Y2l0 ZXh0IEFTIHQ7CkBAIC01MjMsNiArNTI0LDEyIEBAIFNFTEVDVCB0cnVlOjpjaXRleHQgPSAndHJ1 ZScgQVMgdDsKICB0CiAoMSByb3cpCiAKK1NFTEVDVCBDQVNUKHRydWUgQVMgY2l0ZXh0IERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKKyBjaXRleHQgCistLS0tLS0tLQorIHRydWUK KygxIHJvdykKKwogU0VMRUNUICd0cnVlJzo6Y2l0ZXh0Ojpib29sZWFuID0gdHJ1ZSBBUyB0Owog IHQgCiAtLS0KQEAgLTc4Nyw2ICs3OTQsMTMgQEAgU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjpj aXRleHQ6OmluZXQgPSAnMTkyLjE2OC4xMDAuMTI4Jzo6aW5ldCBBUyB0OwogIHQKICgxIHJvdykK IAorU0VMRUNUIENBU1QoaW5ldCAnMTkyLjE2OC4xMDAuMTI4JyBBUyBjaXRleHQKKyAgICAgICAg ICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpID0gJzE5Mi4xNjguMTAwLjEyOC8z MicgQVMgdDsKKyB0IAorLS0tCisgdAorKDEgcm93KQorCiBTRUxFQ1QgJzA4OjAwOjJiOjAxOjAy OjAzJzo6bWFjYWRkcjo6Y2l0ZXh0ID0gJzA4OjAwOjJiOjAxOjAyOjAzJyBBUyB0OwogIHQgCiAt LS0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvY2l0ZXh0L3NxbC9jaXRleHQuc3FsIGIvY29udHJpYi9j aXRleHQvc3FsL2NpdGV4dC5zcWwKaW5kZXggOTk3OTQ0OTdkNDcuLjYyZjgzZDc0OWY5IDEwMDY0 NAotLS0gYS9jb250cmliL2NpdGV4dC9zcWwvY2l0ZXh0LnNxbAorKysgYi9jb250cmliL2NpdGV4 dC9zcWwvY2l0ZXh0LnNxbApAQCAtOSw3ICs5LDcgQEAgU0VMRUNUIGFtbmFtZSwgb3BjbmFtZQog RlJPTSBwZ19vcGNsYXNzIG9wYyBMRUZUIEpPSU4gcGdfYW0gYW0gT04gYW0ub2lkID0gb3BjbWV0 aG9kCiBXSEVSRSBvcGMub2lkID49IDE2Mzg0IEFORCBOT1QgYW12YWxpZGF0ZShvcGMub2lkKTsK IAotU0VMRUNUIENBU1QoJ2FiYyc6OmJwY2hhciBBUyBjaXRleHQgREVGQVVMVCBOVUxMIE9OIENP TlZFUlNJT04gRVJST1IpOyAtLWVycm9yCitTRUxFQ1QgQ0FTVCgnYWJjJzo6YnBjaGFyIEFTIGNp dGV4dCBERUZBVUxUIE5VTEwgT04gQ09OVkVSU0lPTiBFUlJPUik7CiAKIC0tIFRlc3QgdGhlIG9w ZXJhdG9ycyBhbmQgaW5kZXhpbmcgZnVuY3Rpb25zCiAKQEAgLTE2NSw2ICsxNjUsNyBAQCBTRUxF Q1QgbmFtZSBGUk9NIHNydCBXSEVSRSBuYW1lIFNJTUlMQVIgVE8gJyVBLionOwogCiAtLSBFeHBs aWNpdCBjYXN0cy4KIFNFTEVDVCB0cnVlOjpjaXRleHQgPSAndHJ1ZScgQVMgdDsKK1NFTEVDVCBD QVNUKHRydWUgQVMgY2l0ZXh0IERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsKIFNF TEVDVCAndHJ1ZSc6OmNpdGV4dDo6Ym9vbGVhbiA9IHRydWUgQVMgdDsKIAogU0VMRUNUIDQ6OmNp dGV4dCA9ICc0JyBBUyB0OwpAQCAtMjI0LDYgKzIyNSw4IEBAIFNFTEVDVCAnMTkyLjE2OC4xMDAu MTI4LzI1Jzo6Y2l0ZXh0OjpjaWRyID0gJzE5Mi4xNjguMTAwLjEyOC8yNSc6OmNpZHIgQVMgdDsK IAogU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjppbmV0OjpjaXRleHQgPSAnMTkyLjE2OC4xMDAu MTI4LzMyJyBBUyB0OwogU0VMRUNUICcxOTIuMTY4LjEwMC4xMjgnOjpjaXRleHQ6OmluZXQgPSAn MTkyLjE2OC4xMDAuMTI4Jzo6aW5ldCBBUyB0OworU0VMRUNUIENBU1QoaW5ldCAnMTkyLjE2OC4x MDAuMTI4JyBBUyBjaXRleHQKKyAgICAgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04g RVJST1IpID0gJzE5Mi4xNjguMTAwLjEyOC8zMicgQVMgdDsKIAogU0VMRUNUICcwODowMDoyYjow MTowMjowMyc6Om1hY2FkZHI6OmNpdGV4dCA9ICcwODowMDoyYjowMTowMjowMycgQVMgdDsKIFNF TEVDVCAnMDg6MDA6MmI6MDE6MDI6MDMnOjpjaXRleHQ6Om1hY2FkZHIgPSAnMDg6MDA6MmI6MDE6 MDI6MDMnOjptYWNhZGRyIEFTIHQ7CmRpZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9leHBlY3Rl ZC9oc3RvcmUub3V0IGIvY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQvaHN0b3JlLm91dAppbmRleCAx ODM2YzlhY2YzOS4uMjYyMjEzN2NiZjkgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvaHN0b3JlL2V4cGVj dGVkL2hzdG9yZS5vdXQKKysrIGIvY29udHJpYi9oc3RvcmUvZXhwZWN0ZWQvaHN0b3JlLm91dApA QCAtODQxLDEyICs4NDEsMjggQEAgc2VsZWN0ICd7fSc6OnRleHRbXTo6aHN0b3JlOwogCiBzZWxl Y3QgQVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnXTo6aHN0b3JlOwogRVJST1I6ICBhcnJheSBt dXN0IGhhdmUgZXZlbiBudW1iZXIgb2YgZWxlbWVudHMKK3NlbGVjdCBDQVNUKEFSUkFZWydhJywn ZycsJ2InLCdoJywnYXNkJ10gQVMgaHN0b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZF UlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEgcm93KQorCiBzZWxlY3QgQVJS QVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnLCdpJ106OmhzdG9yZTsKICAgICAgICAgICAgICBhcnJh eSAgICAgICAgICAgICAgCiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICJhIj0+ ImciLCAiYiI9PiJoIiwgImFzZCI9PiJpIgogKDEgcm93KQogCitzZWxlY3QgQVJSQVlbJ2EnLCdn JywnYicsJ2gnLG51bGwsJ2knXTo6aHN0b3JlOworRVJST1I6ICBudWxsIHZhbHVlIG5vdCBhbGxv d2VkIGZvciBoc3RvcmUga2V5CitzZWxlY3QgQ0FTVChBUlJBWVsnYScsJ2cnLCdiJywnaCcsbnVs bCwnaSddIEFTIGhzdG9yZQorICAgICAgIERFRkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9S KTsKKyBhcnJheSAKKy0tLS0tLS0KKyAKKygxIHJvdykKKwogc2VsZWN0IEFSUkFZW1snYScsJ2cn XSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3RvcmU7CiAgICAgICAgICAgICAgYXJyYXkgICAg ICAgICAgICAgIAogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTg1NSw2ICs4 NzEsMTMgQEAgc2VsZWN0IEFSUkFZW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dOjpo c3RvcmU7CiAKIHNlbGVjdCBBUlJBWVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2knXV06Omhz dG9yZTsKIEVSUk9SOiAgYXJyYXkgbXVzdCBoYXZlIHR3byBjb2x1bW5zCitzZWxlY3QgQ0FTVChB UlJBWVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2knXV0gQVMgaHN0b3JlCisgICAgICAgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOworIGFycmF5IAorLS0tLS0tLQorIAorKDEg cm93KQorCiBzZWxlY3QgQVJSQVlbW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dXTo6 aHN0b3JlOwogRVJST1I6ICB3cm9uZyBudW1iZXIgb2YgYXJyYXkgc3Vic2NyaXB0cwogc2VsZWN0 IGhzdG9yZSgne30nOjp0ZXh0W10pOwpAQCAtMTU1Myw2ICsxNTc2LDEzIEBAIHNlbGVjdCBjYXN0 KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9 PiAwMTIzNDUsIGY9CiAgeyJiIjogInQiLCAiYyI6IG51bGwsICJkIjogIjEyMzQ1IiwgImUiOiAi MDEyMzQ1IiwgImYiOiAiMS4yMzQiLCAiZyI6ICIyLjM0NWUrNCIsICJhIGtleSI6ICIxIn0KICgx IHJvdykKIAorc2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4g bnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFz IGpzb24KKyAgICAgICAgICAgIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqc29uICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB7ImIiOiAidCIsICJjIjogbnVsbCwgImQiOiAiMTIz NDUiLCAiZSI6ICIwMTIzNDUiLCAiZiI6ICIxLjIzNCIsICJnIjogIjIuMzQ1ZSs0IiwgImEga2V5 IjogIjEifQorKDEgcm93KQorCiBzZWxlY3QgaHN0b3JlX3RvX2pzb25fbG9vc2UoJyJhIGtleSIg PT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0 LCBnPT4gMi4zNDVlKzQsIGg9PiAiMjAxNi0wMS0wMSInKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaHN0b3JlX3RvX2pzb25fbG9vc2UgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTE1NzEsNiArMTYwMSwxMyBAQCBzZWxl Y3QgY2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIz NDUsIGUgPT4gMDEyMzQ1LCBmPQogIHsiYiI6ICJ0IiwgImMiOiBudWxsLCAiZCI6ICIxMjM0NSIs ICJlIjogIjAxMjM0NSIsICJmIjogIjEuMjM0IiwgImciOiAiMi4zNDVlKzQiLCAiYSBrZXkiOiAi MSJ9CiAoMSByb3cpCiAKK3NlbGVjdCBjYXN0KCBoc3RvcmUgICciYSBrZXkiID0+MSwgYiA9PiB0 LCBjID0+IG51bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1 ZSs0JyBhcyBqc29uYgorICAgICAgICAgICAgZGVmYXVsdCBudWxsIG9uIGNvbnZlcnNpb24gZXJy b3IpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGpzb25i ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHsiYiI6ICJ0IiwgImMiOiBudWxsLCAi ZCI6ICIxMjM0NSIsICJlIjogIjAxMjM0NSIsICJmIjogIjEuMjM0IiwgImciOiAiMi4zNDVlKzQi LCAiYSBrZXkiOiAiMSJ9CisoMSByb3cpCisKIHNlbGVjdCBoc3RvcmVfdG9fanNvbmJfbG9vc2Uo JyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEyMzQ1LCBlID0+IDAxMjM0NSwg Zj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQsIGg9PiAiMjAxNi0wMS0wMSInKTsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhzdG9yZV90b19qc29uYl9sb29zZSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0 b3JlL2hzdG9yZS0tMS4yLS0xLjMuc3FsIGIvY29udHJpYi9oc3RvcmUvaHN0b3JlLS0xLjItLTEu My5zcWwKaW5kZXggMGE3MDU2MDE1YjcuLmNiYjFhMTM5ZTY5IDEwMDY0NAotLS0gYS9jb250cmli L2hzdG9yZS9oc3RvcmUtLTEuMi0tMS4zLnNxbAorKysgYi9jb250cmliL2hzdG9yZS9oc3RvcmUt LTEuMi0tMS4zLnNxbApAQCAtOSw3ICs5LDcgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScsICdoc3Rv cmVfdG9fanNvbmInCiBMQU5HVUFHRSBDIElNTVVUQUJMRSBTVFJJQ1Q7CiAKIENSRUFURSBDQVNU IChoc3RvcmUgQVMganNvbmIpCi0gIFdJVEggRlVOQ1RJT04gaHN0b3JlX3RvX2pzb25iKGhzdG9y ZSk7CisgIFdJVEggU0FGRSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmIoaHN0b3JlKTsKIAogQ1JF QVRFIEZVTkNUSU9OIGhzdG9yZV90b19qc29uYl9sb29zZShoc3RvcmUpCiBSRVRVUk5TIGpzb25i CmRpZmYgLS1naXQgYS9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuNC5zcWwgYi9jb250cmliL2hz dG9yZS9oc3RvcmUtLTEuNC5zcWwKaW5kZXggNDI5NGQxNGNlYjUuLjQ1MWMyZWQ4MTg3IDEwMDY0 NAotLS0gYS9jb250cmliL2hzdG9yZS9oc3RvcmUtLTEuNC5zcWwKKysrIGIvY29udHJpYi9oc3Rv cmUvaHN0b3JlLS0xLjQuc3FsCkBAIC0yMzIsNyArMjMyLDcgQEAgQVMgJ01PRFVMRV9QQVRITkFN RScsICdoc3RvcmVfZnJvbV9hcnJheScKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQQVJB TExFTCBTQUZFOwogCiBDUkVBVEUgQ0FTVCAodGV4dFtdIEFTIGhzdG9yZSkKLSAgV0lUSCBGVU5D VElPTiBoc3RvcmUodGV4dFtdKTsKKyAgV0lUSCBTQUZFIEZVTkNUSU9OIGhzdG9yZSh0ZXh0W10p OwogCiBDUkVBVEUgRlVOQ1RJT04gaHN0b3JlX3RvX2pzb24oaHN0b3JlKQogUkVUVVJOUyBqc29u CkBAIC0yNDAsNyArMjQwLDcgQEAgQVMgJ01PRFVMRV9QQVRITkFNRScsICdoc3RvcmVfdG9fanNv bicKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQQVJBTExFTCBTQUZFOwogCiBDUkVBVEUg Q0FTVCAoaHN0b3JlIEFTIGpzb24pCi0gIFdJVEggRlVOQ1RJT04gaHN0b3JlX3RvX2pzb24oaHN0 b3JlKTsKKyAgV0lUSCBTQUZFIEZVTkNUSU9OIGhzdG9yZV90b19qc29uKGhzdG9yZSk7CiAKIENS RUFURSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbl9sb29zZShoc3RvcmUpCiBSRVRVUk5TIGpzb24K QEAgLTI1Myw3ICsyNTMsNyBAQCBBUyAnTU9EVUxFX1BBVEhOQU1FJywgJ2hzdG9yZV90b19qc29u YicKIExBTkdVQUdFIEMgSU1NVVRBQkxFIFNUUklDVCBQQVJBTExFTCBTQUZFOwogCiBDUkVBVEUg Q0FTVCAoaHN0b3JlIEFTIGpzb25iKQotICBXSVRIIEZVTkNUSU9OIGhzdG9yZV90b19qc29uYiho c3RvcmUpOworICBXSVRIIFNBRkUgRlVOQ1RJT04gaHN0b3JlX3RvX2pzb25iKGhzdG9yZSk7CiAK IENSRUFURSBGVU5DVElPTiBoc3RvcmVfdG9fanNvbmJfbG9vc2UoaHN0b3JlKQogUkVUVVJOUyBq c29uYgpkaWZmIC0tZ2l0IGEvY29udHJpYi9oc3RvcmUvaHN0b3JlX2lvLmMgYi9jb250cmliL2hz dG9yZS9oc3RvcmVfaW8uYwppbmRleCAzNGUzOTE4ODExYy4uZjUxNjY2Nzk3ODMgMTAwNjQ0Ci0t LSBhL2NvbnRyaWIvaHN0b3JlL2hzdG9yZV9pby5jCisrKyBiL2NvbnRyaWIvaHN0b3JlL2hzdG9y ZV9pby5jCkBAIC03MzgsMjAgKzczOCwyMCBAQCBoc3RvcmVfZnJvbV9hcnJheShQR19GVU5DVElP Tl9BUkdTKQogCiAJCWNhc2UgMToKIAkJCWlmICgoQVJSX0RJTVMoaW5fYXJyYXkpWzBdKSAlIDIp Ci0JCQkJZXJlcG9ydChFUlJPUiwKKwkJCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVt KSAwLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9BUlJBWV9TVUJTQ1JJUFRfRVJST1IpLAogCQkJ CQkJIGVycm1zZygiYXJyYXkgbXVzdCBoYXZlIGV2ZW4gbnVtYmVyIG9mIGVsZW1lbnRzIikpKTsK IAkJCWJyZWFrOwogCiAJCWNhc2UgMjoKIAkJCWlmICgoQVJSX0RJTVMoaW5fYXJyYXkpWzFdKSAh PSAyKQotCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkJCShlcnJjb2RlKEVSUkNPREVfQVJSQVlfU1VCU0NSSVBUX0VSUk9SKSwK IAkJCQkJCSBlcnJtc2coImFycmF5IG11c3QgaGF2ZSB0d28gY29sdW1ucyIpKSk7CiAJCQlicmVh azsKIAogCQlkZWZhdWx0OgotCQkJZXJlcG9ydChFUlJPUiwKKwkJCQllcmV0dXJuKGZjaW5mby0+ Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX0FSUkFZX1NVQlNDUklQ VF9FUlJPUiksCiAJCQkJCSBlcnJtc2coIndyb25nIG51bWJlciBvZiBhcnJheSBzdWJzY3JpcHRz IikpKTsKIAl9CkBAIC03NzIsNyArNzcyLDcgQEAgaHN0b3JlX2Zyb21fYXJyYXkoUEdfRlVOQ1RJ T05fQVJHUykKIAlmb3IgKGkgPSAwOyBpIDwgY291bnQ7ICsraSkKIAl7CiAJCWlmIChpbl9udWxs c1tpICogMl0pCi0JCQllcmVwb3J0KEVSUk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQs IChEYXR1bSkgMCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VE KSwKIAkJCQkJIGVycm1zZygibnVsbCB2YWx1ZSBub3QgYWxsb3dlZCBmb3IgaHN0b3JlIGtleSIp KSk7CiAKZGlmZiAtLWdpdCBhL2NvbnRyaWIvaHN0b3JlL3NxbC9oc3RvcmUuc3FsIGIvY29udHJp Yi9oc3RvcmUvc3FsL2hzdG9yZS5zcWwKaW5kZXggZWZlZjkxMjkyYTMuLjhmYTQ2NjMwZDZkIDEw MDY0NAotLS0gYS9jb250cmliL2hzdG9yZS9zcWwvaHN0b3JlLnNxbAorKysgYi9jb250cmliL2hz dG9yZS9zcWwvaHN0b3JlLnNxbApAQCAtMTkyLDkgKzE5MiwxNiBAQCBzZWxlY3QgcGdfY29sdW1u X3NpemUoc2xpY2UoaHN0b3JlICdhYT0+MSwgYj0+MiwgYz0+MycsIEFSUkFZWydjJywnYicsJ2Fh J10pKQogLS0gYXJyYXkgaW5wdXQKIHNlbGVjdCAne30nOjp0ZXh0W106OmhzdG9yZTsKIHNlbGVj dCBBUlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCddOjpoc3RvcmU7CitzZWxlY3QgQ0FTVChBUlJB WVsnYScsJ2cnLCdiJywnaCcsJ2FzZCddIEFTIGhzdG9yZQorICAgICAgIERFRkFVTFQgTlVMTCBP TiBDT05WRVJTSU9OIEVSUk9SKTsKIHNlbGVjdCBBUlJBWVsnYScsJ2cnLCdiJywnaCcsJ2FzZCcs J2knXTo6aHN0b3JlOworc2VsZWN0IEFSUkFZWydhJywnZycsJ2InLCdoJyxudWxsLCdpJ106Omhz dG9yZTsKK3NlbGVjdCBDQVNUKEFSUkFZWydhJywnZycsJ2InLCdoJyxudWxsLCdpJ10gQVMgaHN0 b3JlCisgICAgICAgREVGQVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwogc2VsZWN0IEFS UkFZW1snYScsJ2cnXSxbJ2InLCdoJ10sWydhc2QnLCdpJ11dOjpoc3RvcmU7CiBzZWxlY3QgQVJS QVlbWydhJywnZycsJ2InXSxbJ2gnLCdhc2QnLCdpJ11dOjpoc3RvcmU7CitzZWxlY3QgQ0FTVChB UlJBWVtbJ2EnLCdnJywnYiddLFsnaCcsJ2FzZCcsJ2knXV0gQVMgaHN0b3JlCisgICAgICAgREVG QVVMVCBOVUxMIE9OIENPTlZFUlNJT04gRVJST1IpOwogc2VsZWN0IEFSUkFZW1tbJ2EnLCdnJ10s WydiJywnaCddLFsnYXNkJywnaSddXV06OmhzdG9yZTsKIHNlbGVjdCBoc3RvcmUoJ3t9Jzo6dGV4 dFtdKTsKIHNlbGVjdCBoc3RvcmUoQVJSQVlbJ2EnLCdnJywnYicsJ2gnLCdhc2QnXSk7CkBAIC0z NjMsMTAgKzM3MCwxNCBAQCBzZWxlY3QgY291bnQoKikgZnJvbSB0ZXN0aHN0b3JlIHdoZXJlIGgg PSAncG9zPT45OCwgbGluZT0+MzcxLCBub2RlPT5DQkEsIGluZGV4ZQogLS0ganNvbiBhbmQganNv bmIKIHNlbGVjdCBoc3RvcmVfdG9fanNvbignImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxs LCBkPT4gMTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcpOwogc2Vs ZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEy MzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb24pOworc2Vs ZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+IDEy MzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb24KKyAgICAg ICAgICAgIGRlZmF1bHQgbnVsbCBvbiBjb252ZXJzaW9uIGVycm9yKTsKIHNlbGVjdCBoc3RvcmVf dG9fanNvbl9sb29zZSgnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4gMTIzNDUs IGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCwgaD0+ICIyMDE2LTAxLTAxIicp OwogCiBzZWxlY3QgaHN0b3JlX3RvX2pzb25iKCciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51 bGwsIGQ9PiAxMjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0Jyk7CiBz ZWxlY3QgY2FzdCggaHN0b3JlICAnImEga2V5IiA9PjEsIGIgPT4gdCwgYyA9PiBudWxsLCBkPT4g MTIzNDUsIGUgPT4gMDEyMzQ1LCBmPT4gMS4yMzQsIGc9PiAyLjM0NWUrNCcgYXMganNvbmIpOwor c2VsZWN0IGNhc3QoIGhzdG9yZSAgJyJhIGtleSIgPT4xLCBiID0+IHQsIGMgPT4gbnVsbCwgZD0+ IDEyMzQ1LCBlID0+IDAxMjM0NSwgZj0+IDEuMjM0LCBnPT4gMi4zNDVlKzQnIGFzIGpzb25iCisg ICAgICAgICAgICBkZWZhdWx0IG51bGwgb24gY29udmVyc2lvbiBlcnJvcik7CiBzZWxlY3QgaHN0 b3JlX3RvX2pzb25iX2xvb3NlKCciYSBrZXkiID0+MSwgYiA9PiB0LCBjID0+IG51bGwsIGQ9PiAx MjM0NSwgZSA9PiAwMTIzNDUsIGY9PiAxLjIzNCwgZz0+IDIuMzQ1ZSs0LCBoPT4gIjIwMTYtMDEt MDEiJyk7CiAKIGNyZWF0ZSB0YWJsZSB0ZXN0X2pzb25fYWdnIChmMSB0ZXh0LCBmMiBoc3RvcmUp OwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAppbmRleCAyZmM2MzQ0Mjk4MC4uOGZjYTM1MzRmMzIgMTAwNjQ0Ci0tLSBh L2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5z Z21sCkBAIC0xODQ5LDYgKzE4NDksMjEgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0 O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAg ICA8bGl0ZXJhbD5iPC9saXRlcmFsPiBtZWFucyB0aGF0IHRoZSB0eXBlcyBhcmUgYmluYXJ5LWNv ZXJjaWJsZSwgdGh1cyBubyBjb252ZXJzaW9uIGlzIHJlcXVpcmVkLgogICAgICAgPC9wYXJhPjwv ZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0 YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAg IDxzdHJ1Y3RmaWVsZD5jYXN0ZXJyb3JzYWZlPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlw ZT4KKyAgICAgICA8L3BhcmE+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoaXMgZmxhZyBpbmRp Y2F0ZXMgd2hldGhlciB0aGUgPHN0cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1Y3RmaWVsZD4gZnVu Y3Rpb24KKyAgICAgICAgaXMgZXJyb3Itc2FmZS4gSXQgaXMgbWVhbmluZ2Z1bCBvbmx5IHdoZW4g PHN0cnVjdGZpZWxkPmNhc3RmdW5jPC9zdHJ1Y3RmaWVsZD4KKyAgICAgICAgaXMgbm90IHplcm8u IFVzZXItZGVmaW5lZCBjYXN0cyBjYW4gc2V0IGl0CisgICAgICAgIHRvIDxsaXRlcmFsPnRydWU8 L2xpdGVyYWw+IHZpYSA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlY2FzdCI+Q1JFQVRFIENBU1Q8 L2xpbms+LgorICAgICAgICBGb3IgZXJyb3Itc2FmZSB0eXBlIGNhc3QsIHNlZSA8eHJlZiBsaW5r ZW5kPSJzcWwtc3ludGF4LXR5cGUtY2FzdHMtc2FmZSIvPi4KKyAgICAgICA8L3BhcmE+CisgICAg ICA8L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4KICAg PC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbCBi L2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbAppbmRleCBiYWQ3NWJjMWRjZS4uODg4 ZDcxNDJlNDIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX2Nhc3Quc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9jYXN0LnNnbWwKQEAgLTIyLDcgKzIyLDcgQEAg UG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgog Q1JFQVRFIENBU1QgKDxyZXBsYWNlYWJsZT5zb3VyY2VfdHlwZTwvcmVwbGFjZWFibGU+IEFTIDxy ZXBsYWNlYWJsZT50YXJnZXRfdHlwZTwvcmVwbGFjZWFibGU+KQotICAgIFdJVEggRlVOQ1RJT04g PHJlcGxhY2VhYmxlPmZ1bmN0aW9uX25hbWU8L3JlcGxhY2VhYmxlPiBbICg8cmVwbGFjZWFibGU+ YXJndW1lbnRfdHlwZTwvcmVwbGFjZWFibGU+IFssIC4uLl0pIF0KKyAgICBXSVRIIFtTQUZFXSBG VU5DVElPTiA8cmVwbGFjZWFibGU+ZnVuY3Rpb25fbmFtZTwvcmVwbGFjZWFibGU+IFsgKDxyZXBs YWNlYWJsZT5hcmd1bWVudF90eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSkgXQogICAgIFsgQVMg QVNTSUdOTUVOVCB8IEFTIElNUExJQ0lUIF0KIAogQ1JFQVRFIENBU1QgKDxyZXBsYWNlYWJsZT5z b3VyY2VfdHlwZTwvcmVwbGFjZWFibGU+IEFTIDxyZXBsYWNlYWJsZT50YXJnZXRfdHlwZTwvcmVw bGFjZWFibGU+KQpAQCAtMTk0LDYgKzE5NCwxOCBAQCBTRUxFQ1QgQ0FTVCAoIDIgQVMgbnVtZXJp YyApICsgNC4wOwogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgPHRlcm0+PGxpdGVyYWw+U0FGRTwvbGl0ZXJhbD48L3Rlcm0+ CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBmdW5jdGlvbiB1c2Vk IHRvIHBlcmZvcm0gdGhlIGNhc3Qgc3VwcG9ydCBzb2Z0LWVycm9yIGV2YWx1YXRpb24sCisgICAg ICAgQ3VycmVudGx5LCBvbmx5IGZ1bmN0aW9ucyB3cml0dGVuIGluIEMgb3IgdGhlIGludGVybmFs IGxhbmd1YWdlIGFyZSBzdXBwb3J0ZWQuCisgICAgICAgQW4gYWx0ZXJuYXRlIGV4cHJlc3Npb24g Y2FuIGJlIHNwZWNpZmllZCB0byBiZSBldmFsdWF0ZWQgaWYgdGhlIGNhc3QKKyAgICAgICBlcnJv ciBvY2N1cnMuICBTZWUgPGxpbmsgbGlua2VuZD0ic3FsLXN5bnRheC10eXBlLWNhc3RzLXNhZmUi PnNhZmUgdHlwZSBjYXN0PC9saW5rPi4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4K KyAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgIDx2YXJsaXN0ZW50cnk+CiAgICAgIDx0ZXJtPjxs aXRlcmFsPjxyZXBsYWNlYWJsZT5mdW5jdGlvbl9uYW1lPC9yZXBsYWNlYWJsZT5bKDxyZXBsYWNl YWJsZT5hcmd1bWVudF90eXBlPC9yZXBsYWNlYWJsZT4gWywgLi4uXSldPC9saXRlcmFsPjwvdGVy bT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sIGIvZG9jL3NyYy9zZ21s L3N5bnRheC5zZ21sCmluZGV4IGQxY2M5MzJmN2IxLi42YWYxZDIxZDQ2NSAxMDA2NDQKLS0tIGEv ZG9jL3NyYy9zZ21sL3N5bnRheC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9zeW50YXguc2dtbApA QCAtMjE3OCw5ICsyMTc4LDggQEAgQ0FTVCAoIDxyZXBsYWNlYWJsZT5leHByZXNzaW9uPC9yZXBs YWNlYWJsZT4gQVMgPHJlcGxhY2VhYmxlPnR5cGU8L3JlcGxhY2VhYmxlPgogICAgIGRlZmF1bHQg PHJlcGxhY2VhYmxlPmV4cHJlc3Npb248L3JlcGxhY2VhYmxlPgogICAgIHNwZWNpZmllZCBpbiB0 aGUgPGxpdGVyYWw+T04gQ09OVkVSU0lPTiBFUlJPUjwvbGl0ZXJhbD4gY2xhdXNlLgogCi0gICAg QXQgcHJlc2VudCwgdGhpcyBvbmx5IHN1cHBvcnQgYnVpbHQtaW4gdHlwZSBjYXN0cywgc2VlIDx4 cmVmIGxpbmtlbmQ9ImNhdGFsb2ctcGctY2FzdCIvPi4KICAgICBVc2VyLWRlZmluZWQgdHlwZSBj YXN0cyBjcmVhdGVkIHdpdGggPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZWNhc3QiPkNSRUFURSBD QVNUPC9saW5rPgotICAgIGFyZSBub3Qgc3VwcG9ydGVkLgorICAgIGFyZSBzdXBwb3J0ZWQgdG9v LgogICA8L3BhcmE+CiAKICAgICA8cGFyYT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFs b2cvcGdfY2FzdC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19jYXN0LmMKaW5kZXggNTExOWMy YWNkYTIuLjllZmY5NDFlYWJiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nh c3QuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX2Nhc3QuYwpAQCAtNDgsNyArNDgsOCBA QAogT2JqZWN0QWRkcmVzcwogQ2FzdENyZWF0ZShPaWQgc291cmNldHlwZWlkLCBPaWQgdGFyZ2V0 dHlwZWlkLAogCQkgICBPaWQgZnVuY2lkLCBPaWQgaW5jYXN0aWQsIE9pZCBvdXRjYXN0aWQsCi0J CSAgIGNoYXIgY2FzdGNvbnRleHQsIGNoYXIgY2FzdG1ldGhvZCwgRGVwZW5kZW5jeVR5cGUgYmVo YXZpb3IpCisJCSAgIGNoYXIgY2FzdGNvbnRleHQsIGNoYXIgY2FzdG1ldGhvZCwgYm9vbCBjYXN0 ZXJyb3JzYWZlLAorCQkgICBEZXBlbmRlbmN5VHlwZSBiZWhhdmlvcikKIHsKIAlSZWxhdGlvbgly ZWxhdGlvbjsKIAlIZWFwVHVwbGUJdHVwbGU7CkBAIC04NCw2ICs4NSw3IEBAIENhc3RDcmVhdGUo T2lkIHNvdXJjZXR5cGVpZCwgT2lkIHRhcmdldHR5cGVpZCwKIAl2YWx1ZXNbQW51bV9wZ19jYXN0 X2Nhc3RmdW5jIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKGZ1bmNpZCk7CiAJdmFsdWVzW0FudW1f cGdfY2FzdF9jYXN0Y29udGV4dCAtIDFdID0gQ2hhckdldERhdHVtKGNhc3Rjb250ZXh0KTsKIAl2 YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RtZXRob2QgLSAxXSA9IENoYXJHZXREYXR1bShjYXN0bWV0 aG9kKTsKKwl2YWx1ZXNbQW51bV9wZ19jYXN0X2Nhc3RlcnJvcnNhZmUgLSAxXSA9IEJvb2xHZXRE YXR1bShjYXN0ZXJyb3JzYWZlKTsKIAogCXR1cGxlID0gaGVhcF9mb3JtX3R1cGxlKFJlbGF0aW9u R2V0RGVzY3IocmVsYXRpb24pLCB2YWx1ZXMsIG51bGxzKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvZnVuY3Rpb25jbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9mdW5j dGlvbmNtZHMuYwppbmRleCBhNTE2YjAzN2RlYS4uODkyY2Q1ZDc4N2MgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL2Z1bmN0aW9uY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2Z1bmN0aW9uY21kcy5jCkBAIC0xNjY3LDYgKzE2NjcsMTMgQEAgQ3JlYXRlQ2FzdChDcmVh dGVDYXN0U3RtdCAqc3RtdCkKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9E RUZJTklUSU9OKSwKIAkJCQkJIGVycm1zZygiY2FzdCBmdW5jdGlvbiBtdXN0IG5vdCByZXR1cm4g YSBzZXQiKSkpOwogCisJCWlmIChzdG10LT5zYWZlICYmCisJCQlwcm9jc3RydWN0LT5wcm9sYW5n ICE9IElOVEVSTkFMbGFuZ3VhZ2VJZCAmJgorCQkJcHJvY3N0cnVjdC0+cHJvbGFuZyAhPSBDbGFu Z3VhZ2VJZCkKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9GRUFUVVJF X05PVF9TVVBQT1JURUQpLAorCQkJCQllcnJtc2coInNhZmUgdHlwZSBjYXN0IGZ1bmN0aW9ucyBh cmUgb25seSBzdXBwb3J0ZWQgZm9yIEMgYW5kIGludGVybmFsIGxhbmd1YWdlcyIpKTsKKwogCQlS ZWxlYXNlU3lzQ2FjaGUodHVwbGUpOwogCX0KIAllbHNlCkBAIC0xNzk1LDcgKzE4MDIsNyBAQCBD cmVhdGVDYXN0KENyZWF0ZUNhc3RTdG10ICpzdG10KQogCX0KIAogCW15c2VsZiA9IENhc3RDcmVh dGUoc291cmNldHlwZWlkLCB0YXJnZXR0eXBlaWQsIGZ1bmNpZCwgaW5jYXN0aWQsIG91dGNhc3Rp ZCwKLQkJCQkJCWNhc3Rjb250ZXh0LCBjYXN0bWV0aG9kLCBERVBFTkRFTkNZX05PUk1BTCk7CisJ CQkJCQljYXN0Y29udGV4dCwgY2FzdG1ldGhvZCwgc3RtdC0+c2FmZSwgREVQRU5ERU5DWV9OT1JN QUwpOwogCXJldHVybiBteXNlbGY7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmluZGV4IGU1 ZmEwNTc4ODg5Li4wNzg1NTFlNDVhOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv dHlwZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCkBAIC0xNzU0 LDYgKzE3NTQsNyBAQCBEZWZpbmVSYW5nZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVJhbmdl U3RtdCAqc3RtdCkKIAkvKiBDcmVhdGUgY2FzdCBmcm9tIHRoZSByYW5nZSB0eXBlIHRvIGl0cyBt dWx0aXJhbmdlIHR5cGUgKi8KIAlDYXN0Q3JlYXRlKHR5cG9pZCwgbXVsdGlyYW5nZU9pZCwgY2Fz dEZ1bmNPaWQsIEludmFsaWRPaWQsIEludmFsaWRPaWQsCiAJCQkgICBDT0VSQ0lPTl9DT0RFX0VY UExJQ0lULCBDT0VSQ0lPTl9NRVRIT0RfRlVOQ1RJT04sCisJCQkgICBmYWxzZSwKIAkJCSAgIERF UEVOREVOQ1lfSU5URVJOQUwpOwogCiAJcGZyZWUobXVsdGlyYW5nZUFycmF5TmFtZSk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQppbmRleCA4YWY5NzRmZDdlNS4uOGNjNjcyNzU4ZDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMzU2 LDcgKzM1Niw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpy ZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8ZGVmZWx0Pglkcm9w X29wdGlvbgogJXR5cGUgPGJvb2xlYW4+CW9wdF9vcl9yZXBsYWNlIG9wdF9ubwogCQkJCW9wdF9n cmFudF9ncmFudF9vcHRpb24KLQkJCQlvcHRfbm93YWl0IG9wdF9pZl9leGlzdHMgb3B0X3dpdGhf ZGF0YQorCQkJCW9wdF9ub3dhaXQgb3B0X3NhZmUgb3B0X2lmX2V4aXN0cyBvcHRfd2l0aF9kYXRh CiAJCQkJb3B0X3RyYW5zYWN0aW9uX2NoYWluCiAldHlwZSA8bGlzdD4JZ3JhbnRfcm9sZV9vcHRf bGlzdAogJXR5cGUgPGRlZmVsdD4JZ3JhbnRfcm9sZV9vcHQKQEAgLTc3OSw3ICs3NzksNyBAQCBz dGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAq YWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVJFU0VUIFJFU1BFQ1RfUCBSRVNUQVJUIFJFU1RSSUNU IFJFVFVSTiBSRVRVUk5JTkcgUkVUVVJOUyBSRVZPS0UgUklHSFQgUk9MRSBST0xMQkFDSyBST0xM VVAKIAlST1VUSU5FIFJPVVRJTkVTIFJPVyBST1dTIFJVTEUKIAotCVNBVkVQT0lOVCBTQ0FMQVIg U0NIRU1BIFNDSEVNQVMgU0NST0xMIFNFQVJDSCBTRUNPTkRfUCBTRUNVUklUWSBTRUxFQ1QKKwlT QUZFIFNBVkVQT0lOVCBTQ0FMQVIgU0NIRU1BIFNDSEVNQVMgU0NST0xMIFNFQVJDSCBTRUNPTkRf UCBTRUNVUklUWSBTRUxFQ1QKIAlTRVFVRU5DRSBTRVFVRU5DRVMKIAlTRVJJQUxJWkFCTEUgU0VS VkVSIFNFU1NJT04gU0VTU0lPTl9VU0VSIFNFVCBTRVRTIFNFVE9GIFNIQVJFIFNIT1cKIAlTSU1J TEFSIFNJTVBMRSBTS0lQIFNNQUxMSU5UIFNOQVBTSE9UIFNPTUUgU1BMSVQgU09VUkNFIFNRTF9Q IFNUQUJMRSBTVEFOREFMT05FX1AKQEAgLTkzNTAsMTQgKzkzNTAsMTUgQEAgZG9zdG10X29wdF9p dGVtOgogICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiBDcmVhdGVDYXN0U3RtdDogQ1JFQVRFIENB U1QgJygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcpJwotCQkJCQlXSVRIIEZVTkNUSU9OIGZ1bmN0 aW9uX3dpdGhfYXJndHlwZXMgY2FzdF9jb250ZXh0CisJCQkJCVdJVEggb3B0X3NhZmUgRlVOQ1RJ T04gZnVuY3Rpb25fd2l0aF9hcmd0eXBlcyBjYXN0X2NvbnRleHQKIAkJCQl7CiAJCQkJCUNyZWF0 ZUNhc3RTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlQ2FzdFN0bXQpOwogCiAJCQkJCW4tPnNvdXJj ZXR5cGUgPSAkNDsKIAkJCQkJbi0+dGFyZ2V0dHlwZSA9ICQ2OwotCQkJCQluLT5mdW5jID0gJDEw OwotCQkJCQluLT5jb250ZXh0ID0gKENvZXJjaW9uQ29udGV4dCkgJDExOworCQkJCQluLT5zYWZl ID0gJDk7CisJCQkJCW4tPmZ1bmMgPSAkMTE7CisJCQkJCW4tPmNvbnRleHQgPSAoQ29lcmNpb25D b250ZXh0KSAkMTI7CiAJCQkJCW4tPmlub3V0ID0gZmFsc2U7CiAJCQkJCSQkID0gKE5vZGUgKikg bjsKIAkJCQl9CkBAIC05MzY4LDYgKzkzNjksNyBAQCBDcmVhdGVDYXN0U3RtdDogQ1JFQVRFIENB U1QgJygnIFR5cGVuYW1lIEFTIFR5cGVuYW1lICcpJwogCiAJCQkJCW4tPnNvdXJjZXR5cGUgPSAk NDsKIAkJCQkJbi0+dGFyZ2V0dHlwZSA9ICQ2OworCQkJCQluLT5zYWZlID0gZmFsc2U7CiAJCQkJ CW4tPmZ1bmMgPSBOVUxMOwogCQkJCQluLT5jb250ZXh0ID0gKENvZXJjaW9uQ29udGV4dCkgJDEw OwogCQkJCQluLT5pbm91dCA9IGZhbHNlOwpAQCAtOTM4MCw2ICs5MzgyLDcgQEAgQ3JlYXRlQ2Fz dFN0bXQ6IENSRUFURSBDQVNUICcoJyBUeXBlbmFtZSBBUyBUeXBlbmFtZSAnKScKIAogCQkJCQlu LT5zb3VyY2V0eXBlID0gJDQ7CiAJCQkJCW4tPnRhcmdldHR5cGUgPSAkNjsKKwkJCQkJbi0+c2Fm ZSA9IGZhbHNlOwogCQkJCQluLT5mdW5jID0gTlVMTDsKIAkJCQkJbi0+Y29udGV4dCA9IChDb2Vy Y2lvbkNvbnRleHQpICQxMDsKIAkJCQkJbi0+aW5vdXQgPSB0cnVlOwpAQCAtOTM5Miw2ICs5Mzk1 LDkgQEAgY2FzdF9jb250ZXh0OiAgQVMgSU1QTElDSVRfUAkJCQkJeyAkJCA9IENPRVJDSU9OX0lN UExJQ0lUOyB9CiAJCXwgLypFTVBUWSovCQkJCQkJCQl7ICQkID0gQ09FUkNJT05fRVhQTElDSVQ7 IH0KIAkJOwogCitvcHRfc2FmZTogU0FGRQkJCQkJCXsgJCQgPSB0cnVlOyB9CisJCXwgLypFTVBU WSovCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJOwogCiBEcm9wQ2FzdFN0bXQ6IERST1AgQ0FTVCBv cHRfaWZfZXhpc3RzICcoJyBUeXBlbmFtZSBBUyBUeXBlbmFtZSAnKScgb3B0X2Ryb3BfYmVoYXZp b3IKIAkJCQl7CkBAIC0xODE1Miw2ICsxODE1OCw3IEBAIHVucmVzZXJ2ZWRfa2V5d29yZDoKIAkJ CXwgUk9VVElORVMKIAkJCXwgUk9XUwogCQkJfCBSVUxFCisJCQl8IFNBRkUKIAkJCXwgU0FWRVBP SU5UCiAJCQl8IFNDQUxBUgogCQkJfCBTQ0hFTUEKQEAgLTE4NzkwLDYgKzE4Nzk3LDcgQEAgYmFy ZV9sYWJlbF9rZXl3b3JkOgogCQkJfCBST1cKIAkJCXwgUk9XUwogCQkJfCBSVUxFCisJCQl8IFNB RkUKIAkJCXwgU0FWRVBPSU5UCiAJCQl8IFNDQUxBUgogCQkJfCBTQ0hFTUEKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZXhwci5jCmluZGV4IDZlYjI3N2NiYTFhLi5jNWRhZTI2ODZmMiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFy c2VfZXhwci5jCkBAIC0yOTg1LDcgKzI5ODUsNiBAQCBDb2VyY2lvbkVycm9yU2FmZUNoZWNrKFBh cnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4cHIsIE5vZGUgKnNvdXJjZSwKIHsKIAlIZWFw VHVwbGUJdHVwbGU7CiAJYm9vbAkJY29lcmNpb25fZXJyb3JzYWZlID0gdHJ1ZTsKLQlib29sCQl1 c2VyZGVmaW5lZCA9IGZhbHNlOwogCU9pZAkJCWlucHV0QmFzZVR5cGU7CiAJT2lkCQkJdGFyZ2V0 QmFzZVR5cGU7CiAJT2lkCQkJaW5wdXRFbGVtZW50VHlwZTsKQEAgLTMwNTcsMTEgKzMwNTYsOCBA QCBDb2VyY2lvbkVycm9yU2FmZUNoZWNrKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqY2FzdGV4 cHIsIE5vZGUgKnNvdXJjZSwKIAkJewogCQkJRm9ybV9wZ19jYXN0IGNhc3RGb3JtID0gKEZvcm1f cGdfY2FzdCkgR0VUU1RSVUNUKHR1cGxlKTsKIAotCQkJaWYgKGNhc3RGb3JtLT5vaWQgPiBGaXJz dFVucGlubmVkT2JqZWN0SWQpCi0JCQl7CisJCQlpZiAoT2lkSXNWYWxpZChjYXN0Rm9ybS0+Y2Fz dGZ1bmMpICYmICFjYXN0Rm9ybS0+Y2FzdGVycm9yc2FmZSkKIAkJCQljb2VyY2lvbl9lcnJvcnNh ZmUgPSBmYWxzZTsKLQkJCQl1c2VyZGVmaW5lZCA9IHRydWU7Ci0JCQl9CiAKIAkJCVJlbGVhc2VT eXNDYWNoZSh0dXBsZSk7CiAJCX0KQEAgLTMwNzUsOSArMzA3MSw3IEBAIENvZXJjaW9uRXJyb3JT YWZlQ2hlY2soUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpjYXN0ZXhwciwgTm9kZSAqc291cmNl LAogCQkJCQkgICBmb3JtYXRfdHlwZV9iZSh0YXJnZXRUeXBlKSwKIAkJCQkJICAgIkRFRkFVTFQi LAogCQkJCQkgICAiQ0FTVCAuLi4gT04gQ09OVkVSU0lPTiBFUlJPUiIpLAotCQkJCXVzZXJkZWZp bmVkCi0JCQkJPyBlcnJoaW50KCJTYWZlIHR5cGUgY2FzdCBmb3IgdXNlci1kZWZpbmVkIHR5cGVz IGFyZSBub3QgeWV0IHN1cHBvcnRlZC4iKQotCQkJCTogZXJyaGludCgiRXhwbGljaXQgY2FzdCBp cyBkZWZpbmVkIGJ1dCBkZWZpbml0aW9uIGlzIG5vdCBlcnJvciBzYWZlLiIpLAorCQkJCWVycmhp bnQoIkV4cGxpY2l0IGNhc3QgaXMgZGVmaW5lZCBidXQgZGVmaW5pdGlvbiBpcyBub3QgZXJyb3Ig c2FmZS4iKSwKIAkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBleHByTG9jYXRpb24oc291 cmNlKSkpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuZGF0 IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdAppbmRleCA5YjFjZmIxYjU5MC4uZDNi NWYyN2IxNWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5kYXQKKysr IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19jYXN0LmRhdApAQCAtMTksNjUgKzE5LDY1IEBACiAj IGludDItPmludDQtPmludDgtPm51bWVyaWMtPmZsb2F0NC0+ZmxvYXQ4LCB3aGlsZSBjYXN0cyBp biB0aGUKICMgcmV2ZXJzZSBkaXJlY3Rpb24gYXJlIGFzc2lnbm1lbnQtb25seS4KIHsgY2FzdHNv dXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50Mihp bnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1 bmMgPT4gJ2ludDQoaW50OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAn ZmxvYXQ0JywgY2FzdGZ1bmMgPT4gJ2Zsb2F0NChpbnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgn LCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGludDgpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAn bnVtZXJpYyhpbnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4 JywgY2FzdGZ1bmMgPT4gJ2ludDgoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRh cmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn aW50MicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ICdmbG9hdDQoaW50Mikn LAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAog eyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMg PT4gJ2Zsb2F0OChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdu dW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVyaWMoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0 JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGludDQpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBjYXN0ZnVuYyA9PiAnaW50Mihp bnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdmbG9hdDQnLCBjYXN0 ZnVuYyA9PiAnZmxvYXQ0KGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQg PT4gJ2Zsb2F0OCcsIGNhc3RmdW5jID0+ICdmbG9hdDgoaW50NCknLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdp bnQ0JywgY2FzdHRhcmdldCA9PiAnbnVtZXJpYycsIGNhc3RmdW5jID0+ICdudW1lcmljKGludDQp JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwK IHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5j ID0+ICdpbnQ4KGZsb2F0NCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDQnLCBjYXN0dGFyZ2V0ID0+ ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoZmxvYXQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Zsb2F0 NCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChmbG9hdDQpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ4JywgY2FzdGZ1bmMgPT4g J2Zsb2F0OChmbG9hdDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ0JywgY2FzdHRhcmdldCA9PiAn bnVtZXJpYycsCi0gIGNhc3RmdW5jID0+ICdudW1lcmljKGZsb2F0NCknLCBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdudW1lcmljKGZsb2F0 NCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnaW50 OCcsIGNhc3RmdW5jID0+ICdpbnQ4KGZsb2F0OCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdmbG9hdDgnLCBj YXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIoZmxvYXQ4KScsCi0gIGNhc3Rj b250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2Zsb2F0OCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChm bG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2FzdHRhcmdldCA9PiAnZmxvYXQ0Jywg Y2FzdGZ1bmMgPT4gJ2Zsb2F0NChmbG9hdDgpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnZmxvYXQ4JywgY2Fz dHRhcmdldCA9PiAnbnVtZXJpYycsCi0gIGNhc3RmdW5jID0+ICdudW1lcmljKGZsb2F0OCknLCBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdu dW1lcmljKGZsb2F0OCknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0 YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChudW1lcmljKScsCi0gIGNhc3Rjb250 ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBj YXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ251bWVyaWMnLCBjYXN0dGFyZ2V0ID0+ICdpbnQyJywgY2FzdGZ1bmMgPT4gJ2ludDIobnVt ZXJpYyknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdudW1lcmljJywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNh c3RmdW5jID0+ICdpbnQ0KG51bWVyaWMpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0 YXJnZXQgPT4gJ2Zsb2F0NCcsCi0gIGNhc3RmdW5jID0+ICdmbG9hdDQobnVtZXJpYyknLCBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdmbG9h dDQobnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbnVtZXJpYycsIGNhc3R0YXJn ZXQgPT4gJ2Zsb2F0OCcsCi0gIGNhc3RmdW5jID0+ICdmbG9hdDgobnVtZXJpYyknLCBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICdmbG9hdDgo bnVtZXJpYyknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbW9uZXknLCBjYXN0dGFyZ2V0ID0+ ICdudW1lcmljJywgY2FzdGZ1bmMgPT4gJ251bWVyaWMobW9uZXkpJywKICAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAogeyBjYXN0c291cmNlID0+ICdudW1lcmljJywg Y2FzdHRhcmdldCA9PiAnbW9uZXknLCBjYXN0ZnVuYyA9PiAnbW9uZXkobnVtZXJpYyknLApAQCAt ODksMTMgKzg5LDEzIEBACiAKICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4gaW50 NCBhbmQgYm9vbAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAnYm9vbCcs IGNhc3RmdW5jID0+ICdib29sKGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAg Y2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJn ZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgQWxsb3cgZXhwbGljaXQg Y29lcmNpb25zIGJldHdlZW4geGlkOCBhbmQgeGlkCiB7IGNhc3Rzb3VyY2UgPT4gJ3hpZDgnLCBj YXN0dGFyZ2V0ID0+ICd4aWQnLCBjYXN0ZnVuYyA9PiAneGlkKHhpZDgpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBPSUQgY2F0ZWdv cnk6IGFsbG93IGltcGxpY2l0IGNvbnZlcnNpb24gZnJvbSBhbnkgaW50ZWdyYWwgdHlwZSAoaW5j bHVkaW5nCiAjIGludDgsIHRvIHN1cHBvcnQgT0lEIGxpdGVyYWxzID4gMkcpIHRvIE9JRCwgYXMg d2VsbCBhcyBhc3NpZ25tZW50IGNvZXJjaW9uCkBAIC0xMDYsMTMgKzEwNiwxMyBAQAogIyBjYXN0 cyBmcm9tIHRleHQgYW5kIHZhcmNoYXIgdG8gcmVnY2xhc3MsIHdoaWNoIGV4aXN0IG1haW5seSB0 byBzdXBwb3J0CiAjIGxlZ2FjeSBmb3JtcyBvZiBuZXh0dmFsKCkgYW5kIHJlbGF0ZWQgZnVuY3Rp b25zLgogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1 bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBj YXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0 ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAnaW50 OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4g J3JlZ3Byb2MnLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0xMjAsMTMgKzEyMCwxMyBAQAogeyBjYXN0 c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jJywgY2FzdGZ1bmMgPT4gJ29pZCcs Ci0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jJywgY2FzdGZ1bmMg PT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2Yn IH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3Jz YWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAncmVn cHJvYycsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRhcmdldCA9PiAnaW50 OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jJywgY2Fz dHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdwcm9jJywgY2FzdHRh cmdldCA9PiAncmVncHJvY2VkdXJlJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMTM4LDEzICsxMzgs MTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVncHJvY2VkdXJlJywgY2FzdHRhcmdldCA9PiAnb2lk JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdwcm9jZWR1 cmUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQg PT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3RmdW5jID0+ICcwJywK ICAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNl ID0+ICdyZWdwcm9jZWR1cmUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2lu dDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3Byb2NlZHVyZScsIGNhc3R0YXJnZXQgPT4gJ2lu dDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnb3Blcics IGNhc3RmdW5jID0+ICcwJywKQEAgLTE1MiwxMyArMTUyLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4g J3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50 OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXInLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ29wZXInLCBjYXN0ZnVuYyA9PiAnaW50NChp bnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyJywgY2Fz dGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1 bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJv cnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ29wZXInLCBjYXN0dGFyZ2V0ID0+ICdy ZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICcwJywKQEAgLTE3MCwxMyArMTcwLDEzIEBACiB7IGNh c3Rzb3VyY2UgPT4gJ3JlZ29wZXJhdG9yJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMg PT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNh c3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5j ID0+ICdvaWQnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQyJywgY2FzdHRhcmdldCA9PiAncmVnb3BlcmF0 b3InLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdvcGVyYXRvcicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdvcGVyYXRv cicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChvaWQpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAncmVnb3BlcmF0b3InLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJzAn LApAQCAtMTg0LDEzICsxODQsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnY2xhc3MnLCBjYXN0 dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdyZWdjbGFzcycsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NsYXNzJywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ3JlZ2NsYXNzJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4 KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjbGFzcycsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBj YXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicg fSwKIHsgY2FzdHNvdXJjZSA9PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVnY29sbGF0aW9uJywg Y2FzdGZ1bmMgPT4gJzAnLApAQCAtMTk4LDEzICsxOTgsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAn cmVnY29sbGF0aW9uJywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAnLAogICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0ZnVuYyA9PiAnb2lkJywK LSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbGxhdGlvbicsIGNhc3Rm dW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4g J3JlZ2NvbGxhdGlvbicsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjb2xsYXRpb24nLCBjYXN0 dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNhc3Rjb250ZXh0 ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4g J3JlZ2NvbGxhdGlvbicsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnb2lkJywgY2FzdHRhcmdldCA9PiAncmVndHlwZScsIGNhc3RmdW5jID0+ICcwJywKQEAgLTIx MiwxMyArMjEyLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ3R5 cGUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNhc3R0YXJnZXQg PT4gJ3JlZ3R5cGUnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2lu dDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWd0eXBlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3R5 cGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lkKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ3R5cGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2NvbmZpZycsIGNhc3RmdW5jID0+ICcwJywK QEAgLTIyNiwxMyArMjI2LDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ2NvbmZpZycsIGNhc3R0 YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4JywgY2FzdHRhcmdldCA9 PiAncmVnY29uZmlnJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdjb25maWcnLCBjYXN0ZnVuYyA9PiAn MCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNv dXJjZSA9PiAncmVnY29uZmlnJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdp bnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdjb25maWcnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0 JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4g J2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RpY3Rpb25h cnknLCBjYXN0ZnVuYyA9PiAnMCcsCkBAIC0yNDAsMzEgKzI0MCwzMSBAQAogeyBjYXN0c291cmNl ID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdHRhcmdldCA9PiAnb2lkJywgY2FzdGZ1bmMgPT4gJzAn LAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdGZ1bmMgPT4g J29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWdkaWN0aW9uYXJ5 JywgY2FzdGZ1bmMgPT4gJ2ludDQoaW50MiknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRh cmdldCA9PiAncmVnZGljdGlvbmFyeScsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdkaWN0aW9u YXJ5JywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBj YXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdyZWdkaWN0aW9uYXJ5JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5j ID0+ICcwJywKICAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBj YXN0c291cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAncmVnY2xhc3MnLCBjYXN0ZnVuYyA9 PiAncmVnY2xhc3MnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9PiAncmVn Y2xhc3MnLCBjYXN0ZnVuYyA9PiAncmVnY2xhc3MnLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdvaWQnLCBjYXN0 dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0 dGFyZ2V0ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywg Y2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQg PT4gJ3JlZ3JvbGUnLCBjYXN0ZnVuYyA9PiAnb2lkJywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50MicsIGNh c3R0YXJnZXQgPT4gJ3JlZ3JvbGUnLCBjYXN0ZnVuYyA9PiAnaW50NChpbnQyKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2kn LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdyb2xlJywgY2FzdGZ1bmMgPT4gJzAnLAog ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2Ug PT4gJ3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgob2lk KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ3JvbGUnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1 bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ29pZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ25hbWVzcGFjZScsIGNhc3Rm dW5jID0+ICcwJywKQEAgLTI3MiwxMyArMjcyLDEzIEBACiB7IGNhc3Rzb3VyY2UgPT4gJ3JlZ25h bWVzcGFjZScsIGNhc3R0YXJnZXQgPT4gJ29pZCcsIGNhc3RmdW5jID0+ICcwJywKICAgY2FzdGNv bnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdiJyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ4 JywgY2FzdHRhcmdldCA9PiAncmVnbmFtZXNwYWNlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNh c3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2ludDInLCBjYXN0dGFyZ2V0ID0+ICdyZWduYW1lc3BhY2UnLCBjYXN0ZnVuYyA9 PiAnaW50NChpbnQyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdyZWdu YW1lc3BhY2UnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAncmVnbmFtZXNwYWNlJywgY2FzdHRhcmdl dCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAn YScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdu YW1lc3BhY2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ29p ZCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMjg2 LDEzICsyODYsMTMgQEAKIHsgY2FzdHNvdXJjZSA9PiAncmVnZGF0YWJhc2UnLCBjYXN0dGFyZ2V0 ID0+ICdvaWQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ3Jl Z2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4gJ29pZCcsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBjYXN0 dGFyZ2V0ID0+ICdyZWdkYXRhYmFzZScsIGNhc3RmdW5jID0+ICdpbnQ0KGludDIpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn aScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNv dXJjZSA9PiAnaW50NCcsIGNhc3R0YXJnZXQgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdGZ1bmMgPT4g JzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3JlZ2RhdGFiYXNlJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ ICdpbnQ4KG9pZCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdyZWdkYXRhYmFzZScsIGNhc3R0YXJnZXQgPT4g J2ludDQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnYicgfSwKIApAQCAtMzE2LDU3ICszMTYsNTcgQEAKIHsgY2FzdHNvdXJjZSA9PiAndGV4 dCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250 ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFy JywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNhc3RmdW5jID0+ICd0ZXh0KGJwY2hhciknLAotICBj YXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4g J3RleHQoYnBjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICd0 ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2Qg PT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICdicGNo YXInLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAnY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBj YXN0ZnVuYyA9PiAndGV4dChjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0 ID0+ICdicGNoYXInLCBjYXN0ZnVuYyA9PiAnYnBjaGFyKGNoYXIpJywKLSAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAn Y2hhcicsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChjaGFyKScs Ci0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7 IGNhc3Rzb3VyY2UgPT4gJ25hbWUnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4g J3RleHQobmFtZSknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZl ID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICduYW1lJywgY2FzdHRhcmdldCA9PiAnYnBjaGFy JywgY2FzdGZ1bmMgPT4gJ2JwY2hhcihuYW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2Fz dG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ25hbWUnLCBjYXN0 dGFyZ2V0ID0+ICd2YXJjaGFyJywgY2FzdGZ1bmMgPT4gJ3ZhcmNoYXIobmFtZSknLAotICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICd0ZXh0JywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKHRl eHQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0 Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAnY2hhcicsIGNhc3Rm dW5jID0+ICdjaGFyKHRleHQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQg PT4gJ2NoYXInLCBjYXN0ZnVuYyA9PiAnY2hhcih0ZXh0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RleHQn LCBjYXN0dGFyZ2V0ID0+ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUodGV4dCknLAotICBjYXN0 Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdp JywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdicGNoYXInLCBjYXN0dGFyZ2V0ID0+ICduYW1lJywgY2FzdGZ1bmMgPT4gJ25hbWUo YnBjaGFyKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3ZhcmNoYXInLCBjYXN0dGFyZ2V0ID0+ICduYW1lJywg Y2FzdGZ1bmMgPT4gJ25hbWUodmFyY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIEFsbG93IGV4cGxpY2l0IGNvZXJjaW9ucyBi ZXR3ZWVuIGJ5dGVhIGFuZCBpbnRlZ2VyIHR5cGVzCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDInLCBj YXN0dGFyZ2V0ID0+ICdieXRlYScsIGNhc3RmdW5jID0+ICdieXRlYShpbnQyKScsCi0gIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdieXRlYScsIGNhc3RmdW5jID0+ICdieXRlYShp bnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDgnLCBjYXN0dGFyZ2V0ID0+ICdieXRlYScsIGNhc3Rm dW5jID0+ICdieXRlYShpbnQ4KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9 PiAnaW50MicsIGNhc3RmdW5jID0+ICdpbnQyKGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2J5dGVh JywgY2FzdHRhcmdldCA9PiAnaW50NCcsIGNhc3RmdW5jID0+ICdpbnQ0KGJ5dGVhKScsCi0gIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4g J2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ2J5dGVhJywgY2FzdHRhcmdldCA9PiAnaW50OCcsIGNhc3RmdW5jID0+ICdpbnQ4 KGJ5dGVhKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAg Y2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiAKICMgQWxsb3cgZXhwbGljaXQgY29lcmNpb25zIGJldHdlZW4gaW50NCBhbmQgImNo YXIiCiB7IGNhc3Rzb3VyY2UgPT4gJ2NoYXInLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0JywgY2FzdGZ1 bmMgPT4gJ2ludDQoY2hhciknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbnQ0JywgY2FzdHRhcmdldCA9PiAn Y2hhcicsIGNhc3RmdW5jID0+ICdjaGFyKGludDQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBj YXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBwZ19ub2RlX3RyZWUgY2FuIGJlIGNv ZXJjZWQgdG8sIGJ1dCBub3QgZnJvbSwgdGV4dAogeyBjYXN0c291cmNlID0+ICdwZ19ub2RlX3Ry ZWUnLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJzAnLApAQCAtMzkyLDczICsz OTIsNzMgQEAKIAogIyBEYXRldGltZSBjYXRlZ29yeQogeyBjYXN0c291cmNlID0+ICdkYXRlJywg Y2FzdHRhcmdldCA9PiAndGltZXN0YW1wJywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcChkYXRl KScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMg PT4gJ3RpbWVzdGFtcChkYXRlKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdkYXRlJywgY2Fz dHRhcmdldCA9PiAndGltZXN0YW1wdHonLAotICBjYXN0ZnVuYyA9PiAndGltZXN0YW1wdHooZGF0 ZSknLCBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5j ID0+ICd0aW1lc3RhbXB0eihkYXRlKScsIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lJywg Y2FzdHRhcmdldCA9PiAnaW50ZXJ2YWwnLCBjYXN0ZnVuYyA9PiAnaW50ZXJ2YWwodGltZSknLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICd0aW1lJywgY2FzdHRhcmdldCA9PiAndGltZXR6JywgY2FzdGZ1bmMgPT4g J3RpbWV0eih0aW1lKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicg fSwKKyAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNh ZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4g J2RhdGUnLAotICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAnZGF0ZSh0aW1lc3RhbXAp JywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ3Rp bWUnLAotICBjYXN0ZnVuYyA9PiAndGltZSh0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2En LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAndGltZSh0aW1lc3RhbXApJywg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4g J3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcCcsIGNhc3R0YXJnZXQgPT4gJ3RpbWVz dGFtcHR6JywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KHRpbWVzdGFtcCknLCBjYXN0Y29u dGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1lc3Rh bXB0eih0aW1lc3RhbXApJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywg IGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6Jywg Y2FzdHRhcmdldCA9PiAnZGF0ZScsCi0gIGNhc3RmdW5jID0+ICdkYXRlKHRpbWVzdGFtcHR6KScs IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMgPT4g J2RhdGUodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFtcHR6 JywgY2FzdHRhcmdldCA9PiAndGltZScsCi0gIGNhc3RmdW5jID0+ICd0aW1lKHRpbWVzdGFtcHR6 KScsIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGZ1bmMg PT4gJ3RpbWUodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWVzdGFt cHR6JywgY2FzdHRhcmdldCA9PiAndGltZXN0YW1wJywKLSAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFt cCh0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0s CisgIGNhc3RmdW5jID0+ICd0aW1lc3RhbXAodGltZXN0YW1wdHopJywgY2FzdGNvbnRleHQgPT4g J2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rz b3VyY2UgPT4gJ3RpbWVzdGFtcHR6JywgY2FzdHRhcmdldCA9PiAndGltZXR6JywKLSAgY2FzdGZ1 bmMgPT4gJ3RpbWV0eih0aW1lc3RhbXB0eiknLCBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZXN0YW1wdHopJywgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ2ludGVydmFsJywgY2FzdHRhcmdldCA9PiAndGltZScsIGNhc3Rm dW5jID0+ICd0aW1lKGludGVydmFsKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhv ZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNh c3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3RpbWV0eicsIGNhc3R0YXJn ZXQgPT4gJ3RpbWUnLCBjYXN0ZnVuYyA9PiAndGltZSh0aW1ldHopJywKLSAgY2FzdGNvbnRleHQg PT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBHZW9tZXRyaWMgY2F0 ZWdvcnkKIHsgY2FzdHNvdXJjZSA9PiAncG9pbnQnLCBjYXN0dGFyZ2V0ID0+ICdib3gnLCBjYXN0 ZnVuYyA9PiAnYm94KHBvaW50KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVy cm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbHNlZycsIGNhc3R0YXJnZXQgPT4g J3BvaW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50KGxzZWcpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2Qg PT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdwYXRoJywg Y2FzdHRhcmdldCA9PiAncG9seWdvbicsIGNhc3RmdW5jID0+ICdwb2x5Z29uKHBhdGgpJywKLSAg Y2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9 PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0 c291cmNlID0+ICdib3gnLCBjYXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2lu dChib3gpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBj YXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogeyBjYXN0c291cmNlID0+ICdib3gnLCBjYXN0dGFyZ2V0ID0+ICdsc2VnJywgY2FzdGZ1 bmMgPT4gJ2xzZWcoYm94KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm94JywgY2FzdHRhcmdldCA9PiAncG9s eWdvbicsIGNhc3RmdW5jID0+ICdwb2x5Z29uKGJveCknLAotICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9 PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JveCcsIGNh c3R0YXJnZXQgPT4gJ2NpcmNsZScsIGNhc3RmdW5jID0+ICdjaXJjbGUoYm94KScsCi0gIGNhc3Rj b250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2Un LCBjYXN0bWV0aG9kID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAncG9seWdvbicsIGNhc3R0YXJnZXQgPT4gJ3BvaW50JywgY2FzdGZ1bmMgPT4gJ3BvaW50 KHBvbHlnb24pJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9PiAncGF0aCcs IGNhc3RmdW5jID0+ICdwYXRoJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdwb2x5Z29uJywgY2FzdHRhcmdldCA9 PiAnYm94JywgY2FzdGZ1bmMgPT4gJ2JveChwb2x5Z29uKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJywgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAncG9seWdv bicsIGNhc3R0YXJnZXQgPT4gJ2NpcmNsZScsCi0gIGNhc3RmdW5jID0+ICdjaXJjbGUocG9seWdv biknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5j ID0+ICdjaXJjbGUocG9seWdvbiknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4g J2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdjaXJjbGUnLCBj YXN0dGFyZ2V0ID0+ICdwb2ludCcsIGNhc3RmdW5jID0+ICdwb2ludChjaXJjbGUpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnLCBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291 cmNlID0+ICdjaXJjbGUnLCBjYXN0dGFyZ2V0ID0+ICdib3gnLCBjYXN0ZnVuYyA9PiAnYm94KGNp cmNsZSknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsIGNhc3RlcnJvcnNhZmUgPT4gJ3Qn IH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpcmNsZScsIGNhc3R0YXJnZXQgPT4gJ3BvbHlnb24nLAot ICBjYXN0ZnVuYyA9PiAncG9seWdvbihjaXJjbGUpJywgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0ZnVuYyA9PiAncG9seWdvbihjaXJjbGUpJywgY2FzdGNv bnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJ30sCiAKICMgTUFDIGFkZHJlc3MgY2F0ZWdv cnkKIHsgY2FzdHNvdXJjZSA9PiAnbWFjYWRkcicsIGNhc3R0YXJnZXQgPT4gJ21hY2FkZHI4Jywg Y2FzdGZ1bmMgPT4gJ21hY2FkZHI4JywKLSAgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnbWFjYWRkcjgnLCBjYXN0dGFy Z2V0ID0+ICdtYWNhZGRyJywgY2FzdGZ1bmMgPT4gJ21hY2FkZHInLAotICBjYXN0Y29udGV4dCA9 PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIElORVQgY2F0ZWdvcnkK IHsgY2FzdHNvdXJjZSA9PiAnY2lkcicsIGNhc3R0YXJnZXQgPT4gJ2luZXQnLCBjYXN0ZnVuYyA9 PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2Fz dHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQgPT4gJ2NpZHInLCBjYXN0ZnVuYyA9PiAnY2lk cicsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiAKICMgQml0U3RyaW5nIGNhdGVnb3J5CiB7IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJn ZXQgPT4gJ3ZhcmJpdCcsIGNhc3RmdW5jID0+ICcwJywKQEAgLTQ2OCwxMyArNDY4LDEzIEBACiAK ICMgQ3Jvc3MtY2F0ZWdvcnkgY2FzdHMgYmV0d2VlbiBiaXQgYW5kIGludDQsIGludDgKIHsgY2Fz dHNvdXJjZSA9PiAnaW50OCcsIGNhc3R0YXJnZXQgPT4gJ2JpdCcsIGNhc3RmdW5jID0+ICdiaXQo aW50OCxpbnQ0KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwK KyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDQnLCBjYXN0dGFyZ2V0ID0+ICdiaXQnLCBj YXN0ZnVuYyA9PiAnYml0KGludDQsaW50NCknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdiaXQnLCBjYXN0dGFy Z2V0ID0+ICdpbnQ4JywgY2FzdGZ1bmMgPT4gJ2ludDgoYml0KScsCi0gIGNhc3Rjb250ZXh0ID0+ ICdlJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0 aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2Jp dCcsIGNhc3R0YXJnZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChiaXQpJywKLSAgY2Fz dGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAn ZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIAogIyBDcm9z cy1jYXRlZ29yeSBjYXN0cyB0byBhbmQgZnJvbSBURVhUCiAjIFdlIG5lZWQgZW50cmllcyBoZXJl IG9ubHkgZm9yIGEgZmV3IHNwZWNpYWxpemVkIGNhc2VzIHdoZXJlIHRoZSBiZWhhdmlvcgpAQCAt NDg1LDY4ICs0ODUsNjggQEAKICMgYmVoYXZpb3Igd2lsbCBlbnN1ZSB3aGVuIHRoZSBhdXRvbWF0 aWMgY2FzdCBpcyBhcHBsaWVkIGluc3RlYWQgb2YgdGhlCiAjIHBnX2Nhc3QgZW50cnkhCiB7IGNh c3Rzb3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICd0ZXh0JywgY2FzdGZ1bmMgPT4gJ3Rl eHQoaW5ldCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbmV0JywgY2FzdHRhcmdldCA9PiAndGV4dCcsIGNh c3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2Fz dGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQg PT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAndGV4dChib29sKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdh JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcs IGNhc3R0YXJnZXQgPT4gJ3RleHQnLCBjYXN0ZnVuYyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGV4dCcsIGNhc3R0 YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9 PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3Rz IHRvIGFuZCBmcm9tIFZBUkNIQVIKICMgV2Ugc3VwcG9ydCBhbGwgdGhlIHNhbWUgY2FzdHMgYXMg Zm9yIFRFWFQuCiB7IGNhc3Rzb3VyY2UgPT4gJ2NpZHInLCBjYXN0dGFyZ2V0ID0+ICd2YXJjaGFy JywgY2FzdGZ1bmMgPT4gJ3RleHQoaW5ldCknLAotICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZics ICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdpbmV0JywgY2FzdHRh cmdldCA9PiAndmFyY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRl eHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVuYyA9PiAndGV4dChib29s KScsCi0gIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNv bnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0s CiB7IGNhc3Rzb3VyY2UgPT4gJ3htbCcsIGNhc3R0YXJnZXQgPT4gJ3ZhcmNoYXInLCBjYXN0ZnVu YyA9PiAnMCcsCiAgIGNhc3Rjb250ZXh0ID0+ICdhJywgY2FzdG1ldGhvZCA9PiAnYicgfSwKIHsg Y2FzdHNvdXJjZSA9PiAndmFyY2hhcicsIGNhc3R0YXJnZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ ICd4bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNh c3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0 JyB9LAogCiAjIENyb3NzLWNhdGVnb3J5IGNhc3RzIHRvIGFuZCBmcm9tIEJQQ0hBUgogIyBXZSBz dXBwb3J0IGFsbCB0aGUgc2FtZSBjYXN0cyBhcyBmb3IgVEVYVC4KIHsgY2FzdHNvdXJjZSA9PiAn Y2lkcicsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ICd0ZXh0KGluZXQpJywK LSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4 dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnaW5ldCcsIGNhc3R0YXJnZXQgPT4gJ2JwY2hhcicsIGNhc3RmdW5jID0+ ICd0ZXh0KGluZXQpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0bWV0aG9kID0+ICdmJyB9 LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2Fm ZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnYm9vbCcsIGNhc3R0YXJnZXQgPT4gJ2JwY2hh cicsIGNhc3RmdW5jID0+ICd0ZXh0KGJvb2wpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2EnLCBjYXN0 bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnYScsIGNhc3RtZXRob2QgPT4gJ2Yn LCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAneG1sJywgY2FzdHRh cmdldCA9PiAnYnBjaGFyJywgY2FzdGZ1bmMgPT4gJzAnLAogICBjYXN0Y29udGV4dCA9PiAnYScs IGNhc3RtZXRob2QgPT4gJ2InIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JwY2hhcicsIGNhc3R0YXJn ZXQgPT4gJ3htbCcsIGNhc3RmdW5jID0+ICd4bWwnLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogCiAjIExlbmd0aC1jb2VyY2lvbiBmdW5jdGlv bnMKIHsgY2FzdHNvdXJjZSA9PiAnYnBjaGFyJywgY2FzdHRhcmdldCA9PiAnYnBjaGFyJywKICAg Y2FzdGZ1bmMgPT4gJ2JwY2hhcihicGNoYXIsaW50NCxib29sKScsIGNhc3Rjb250ZXh0ID0+ICdp JywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJjaGFyJywgY2FzdHRhcmdldCA9 PiAndmFyY2hhcicsCiAgIGNhc3RmdW5jID0+ICd2YXJjaGFyKHZhcmNoYXIsaW50NCxib29sKScs IGNhc3Rjb250ZXh0ID0+ICdpJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhv ZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1l JywgY2FzdHRhcmdldCA9PiAndGltZScsIGNhc3RmdW5jID0+ICd0aW1lKHRpbWUsaW50NCknLAot ICBjYXN0Y29udGV4dCA9PiAnaScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICd0aW1lc3RhbXAnLCBjYXN0dGFyZ2V0ID0+ICd0aW1lc3RhbXAnLAogICBj YXN0ZnVuYyA9PiAndGltZXN0YW1wKHRpbWVzdGFtcCxpbnQ0KScsIGNhc3Rjb250ZXh0ID0+ICdp JywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJy b3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd0aW1lc3RhbXB0eicsIGNhc3R0YXJn ZXQgPT4gJ3RpbWVzdGFtcHR6JywKICAgY2FzdGZ1bmMgPT4gJ3RpbWVzdGFtcHR6KHRpbWVzdGFt cHR6LGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAor ICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3Vy Y2UgPT4gJ2ludGVydmFsJywgY2FzdHRhcmdldCA9PiAnaW50ZXJ2YWwnLAogICBjYXN0ZnVuYyA9 PiAnaW50ZXJ2YWwoaW50ZXJ2YWwsaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScsCi0gIGNhc3Rt ZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAn dCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAndGltZXR6JywgY2FzdHRhcmdldCA9PiAndGltZXR6JywK LSAgY2FzdGZ1bmMgPT4gJ3RpbWV0eih0aW1ldHosaW50NCknLCBjYXN0Y29udGV4dCA9PiAnaScs IGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0aW1ldHoodGltZXR6LGludDQp JywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUg PT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2JpdCcsIGNhc3R0YXJnZXQgPT4gJ2JpdCcsIGNh c3RmdW5jID0+ICdiaXQoYml0LGludDQsYm9vbCknLAotICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdpJywgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICd2YXJiaXQnLCBj YXN0dGFyZ2V0ID0+ICd2YXJiaXQnLCBjYXN0ZnVuYyA9PiAndmFyYml0JywKLSAgY2FzdGNvbnRl eHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0Y29udGV4dCA9PiAnaScsIGNh c3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9 PiAnbnVtZXJpYycsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLAotICBjYXN0ZnVuYyA9PiAnbnVt ZXJpYyhudW1lcmljLGludDQpJywgY2FzdGNvbnRleHQgPT4gJ2knLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0ZnVuYyA9PiAnbnVtZXJpYyhudW1lcmljLGludDQpJywgY2FzdGNvbnRleHQg PT4gJ2knLCBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMg anNvbiB0by9mcm9tIGpzb25iCiB7IGNhc3Rzb3VyY2UgPT4gJ2pzb24nLCBjYXN0dGFyZ2V0ID0+ ICdqc29uYicsIGNhc3RmdW5jID0+ICcwJywKQEAgLTU1NiwzNiArNTU2LDM2IEBACiAKICMganNv bmIgdG8gbnVtZXJpYyBhbmQgYm9vbCB0eXBlcwogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNh c3R0YXJnZXQgPT4gJ2Jvb2wnLCBjYXN0ZnVuYyA9PiAnYm9vbChqc29uYiknLAotICBjYXN0Y29u dGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywg Y2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNl ID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ251bWVyaWMnLCBjYXN0ZnVuYyA9PiAnbnVtZXJp Yyhqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDInLCBj YXN0ZnVuYyA9PiAnaW50Mihqc29uYiknLAotICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBj YXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJn ZXQgPT4gJ2ludDQnLCBjYXN0ZnVuYyA9PiAnaW50NChqc29uYiknLAotICBjYXN0Y29udGV4dCA9 PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0ID0+ICdlJywgY2FzdG1l dGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBjYXN0c291cmNlID0+ICdq c29uYicsIGNhc3R0YXJnZXQgPT4gJ2ludDgnLCBjYXN0ZnVuYyA9PiAnaW50OChqc29uYiknLAot ICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisgIGNhc3Rjb250ZXh0 ID0+ICdlJywgY2FzdG1ldGhvZCA9PiAnZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogeyBj YXN0c291cmNlID0+ICdqc29uYicsIGNhc3R0YXJnZXQgPT4gJ2Zsb2F0NCcsIGNhc3RmdW5jID0+ ICdmbG9hdDQoanNvbmIpJywKLSAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9kID0+ICdm JyB9LAorICBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9y c2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJjZSA9PiAnanNvbmInLCBjYXN0dGFyZ2V0ID0+ICdm bG9hdDgnLCBjYXN0ZnVuYyA9PiAnZmxvYXQ4KGpzb25iKScsCi0gIGNhc3Rjb250ZXh0ID0+ICdl JywgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdGNvbnRleHQgPT4gJ2UnLCBjYXN0bWV0aG9k ID0+ICdmJywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiAKICMgcmFuZ2UgdG8gbXVsdGlyYW5n ZQogeyBjYXN0c291cmNlID0+ICdpbnQ0cmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdpbnQ0bXVsdGly YW5nZScsCiAgIGNhc3RmdW5jID0+ICdpbnQ0bXVsdGlyYW5nZShpbnQ0cmFuZ2UpJywgY2FzdGNv bnRleHQgPT4gJ2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdm JywgIGNhc3RlcnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2ludDhyYW5nZScs IGNhc3R0YXJnZXQgPT4gJ2ludDhtdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ2ludDhtdWx0 aXJhbmdlKGludDhyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4g J2YnIH0sCisgIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsg Y2FzdHNvdXJjZSA9PiAnbnVtcmFuZ2UnLCBjYXN0dGFyZ2V0ID0+ICdudW1tdWx0aXJhbmdlJywK ICAgY2FzdGZ1bmMgPT4gJ251bW11bHRpcmFuZ2UobnVtcmFuZ2UpJywgY2FzdGNvbnRleHQgPT4g J2UnLAotICBjYXN0bWV0aG9kID0+ICdmJyB9LAorICBjYXN0bWV0aG9kID0+ICdmJywgIGNhc3Rl cnJvcnNhZmUgPT4gJ3QnIH0sCiB7IGNhc3Rzb3VyY2UgPT4gJ2RhdGVyYW5nZScsIGNhc3R0YXJn ZXQgPT4gJ2RhdGVtdWx0aXJhbmdlJywKICAgY2FzdGZ1bmMgPT4gJ2RhdGVtdWx0aXJhbmdlKGRh dGVyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsCi0gIGNhc3RtZXRob2QgPT4gJ2YnIH0sCisg IGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcgfSwKIHsgY2FzdHNvdXJj ZSA9PiAndHNyYW5nZScsIGNhc3R0YXJnZXQgPT4gJ3RzbXVsdGlyYW5nZScsCi0gIGNhc3RmdW5j ID0+ICd0c211bHRpcmFuZ2UodHNyYW5nZSknLCBjYXN0Y29udGV4dCA9PiAnZScsIGNhc3RtZXRo b2QgPT4gJ2YnIH0sCisgIGNhc3RmdW5jID0+ICd0c211bHRpcmFuZ2UodHNyYW5nZSknLCBjYXN0 Y29udGV4dCA9PiAnZScsIGNhc3RtZXRob2QgPT4gJ2YnLCAgY2FzdGVycm9yc2FmZSA9PiAndCcg fSwKIHsgY2FzdHNvdXJjZSA9PiAndHN0enJhbmdlJywgY2FzdHRhcmdldCA9PiAndHN0em11bHRp cmFuZ2UnLAogICBjYXN0ZnVuYyA9PiAndHN0em11bHRpcmFuZ2UodHN0enJhbmdlKScsIGNhc3Rj b250ZXh0ID0+ICdlJywKLSAgY2FzdG1ldGhvZCA9PiAnZicgfSwKKyAgY2FzdG1ldGhvZCA9PiAn ZicsICBjYXN0ZXJyb3JzYWZlID0+ICd0JyB9LAogXQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ19jYXN0LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2Nhc3QuaAppbmRleCAy Yzk2MzNhNWVjYi4uMDY4ZjM0NGUyMDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfY2FzdC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfY2FzdC5oCkBAIC00Nyw2ICs0 NywxMCBAQCBDQVRBTE9HKHBnX2Nhc3QsMjYwNSxDYXN0UmVsYXRpb25JZCkKIAogCS8qIGNhc3Qg bWV0aG9kICovCiAJY2hhcgkJY2FzdG1ldGhvZDsKKworCS8qIGNhc3QgZnVuY3Rpb24gZXJyb3Ig c2FmZSAqLworCWJvb2wJCWNhc3RlcnJvcnNhZmUgQktJX0RFRkFVTFQoZik7CisKIH0gRm9ybURh dGFfcGdfY2FzdDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTAxLDYgKzEwNSw3IEBAIGV4 dGVybiBPYmplY3RBZGRyZXNzIENhc3RDcmVhdGUoT2lkIHNvdXJjZXR5cGVpZCwKIAkJCQkJCQkJ T2lkIG91dGNhc3RpZCwKIAkJCQkJCQkJY2hhciBjYXN0Y29udGV4dCwKIAkJCQkJCQkJY2hhciBj YXN0bWV0aG9kLAorCQkJCQkJCQlib29sIGNhc3RlcnJvcnNhZmUsCiAJCQkJCQkJCURlcGVuZGVu Y3lUeXBlIGJlaGF2aW9yKTsKIAogI2VuZGlmCQkJCQkJCS8qIFBHX0NBU1RfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCmluZGV4IDdlYWJjMTcwMzIwLi5iZmEzYmY1YjdiYiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaApAQCAtNDE3NCw2ICs0MTc0LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlQ2Fz dFN0bXQKIAlPYmplY3RXaXRoQXJncyAqZnVuYzsKIAlDb2VyY2lvbkNvbnRleHQgY29udGV4dDsK IAlib29sCQlpbm91dDsKKwlib29sCQlzYWZlOwogfSBDcmVhdGVDYXN0U3RtdDsKIAogLyogLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlz dC5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCmluZGV4IGY3NzUzYzVjOGE4Li42MWI4 MDgyODFkZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oCisrKyBiL3Ny Yy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaApAQCAtMzk3LDYgKzM5Nyw3IEBAIFBHX0tFWVdPUkQo InJvdXRpbmVzIiwgUk9VVElORVMsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInJvdyIsIFJPVywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tF WVdPUkQoInJvd3MiLCBST1dTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19L RVlXT1JEKCJydWxlIiwgUlVMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdf S0VZV09SRCgic2FmZSIsIFNBRkUsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBH X0tFWVdPUkQoInNhdmVwb2ludCIsIFNBVkVQT0lOVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJF X0xBQkVMKQogUEdfS0VZV09SRCgic2NhbGFyIiwgU0NBTEFSLCBVTlJFU0VSVkVEX0tFWVdPUkQs IEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJzY2hlbWEiLCBTQ0hFTUEsIFVOUkVTRVJWRURfS0VZ V09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv Y3JlYXRlX2Nhc3Qub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9jcmVhdGVfY2FzdC5v dXQKaW5kZXggNjhlNjlkMWM1ODQuLmIzYzdkNjJlNTI2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NyZWF0ZV9jYXN0Lm91dApAQCAtODEsNiArODEsMTIgQEAgTk9USUNFOiAgZHJvcCBj YXNjYWRlcyB0byBjYXN0IGZyb20gaW50ZWdlciB0byBjYXN0dGVzdHR5cGUKIC0tIFRyeSBpdCB3 aXRoIGEgZnVuY3Rpb24gdGhhdCByZXF1aXJlcyBhbiBpbXBsaWNpdCBjYXN0CiBDUkVBVEUgRlVO Q1RJT04gYmFyX2ludDRfdGV4dChpbnQ0KSBSRVRVUk5TIHRleHQgTEFOR1VBR0UgU1FMIEFTCiAk JCBTRUxFQ1QgKCdiYXInOjp0ZXh0IHx8ICQxOjp0ZXh0KTsgJCQ7CitDUkVBVEUgRlVOQ1RJT04g YmFyX2ludDRfdGV4dF9wbHBnKGludDQpIFJFVFVSTlMgdGV4dCBMQU5HVUFHRSBwbHBnc3FsIEFT CiskJCBCRUdJTiBSRVRVUk4gKCdiYXInOjp0ZXh0IHx8ICQxOjp0ZXh0KTsgRU5EICQkOworQ1JF QVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIFNBRkUgRlVOQ1RJT04gYmFyX2lu dDRfdGV4dChpbnQ0KSBBUyBJTVBMSUNJVDsgLS0gZXJyb3IKK0VSUk9SOiAgc2FmZSB0eXBlIGNh c3QgZnVuY3Rpb25zIGFyZSBvbmx5IHN1cHBvcnRlZCBmb3IgQyBhbmQgaW50ZXJuYWwgbGFuZ3Vh Z2VzCitDUkVBVEUgQ0FTVCAoaW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJVEggU0FGRSBGVU5DVElP TiBiYXJfaW50NF90ZXh0X3BscGcoaW50NCkgQVMgSU1QTElDSVQ7IC0tIGVycm9yCitFUlJPUjog IHNhZmUgdHlwZSBjYXN0IGZ1bmN0aW9ucyBhcmUgb25seSBzdXBwb3J0ZWQgZm9yIEMgYW5kIGlu dGVybmFsIGxhbmd1YWdlcwogQ1JFQVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRI IEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgQVMgSU1QTElDSVQ7CiBTRUxFQ1QgMTIzNDo6 aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91bGQgd29yayBub3cKICBjYXN0dGVzdHR5cGUgCkBA IC05Miw3ICs5OCw3IEBAIFNFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERF RkFVTFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyCiBFUlJPUjogIGNhbm5vdCBj YXN0IHR5cGUgaW50ZWdlciB0byBjYXN0dGVzdHR5cGUgd2hlbiBERUZBVUxUIGV4cHJlc3Npb24g aXMgc3BlY2lmaWVkIGluIENBU1QgLi4uIE9OIENPTlZFUlNJT04gRVJST1IKIExJTkUgMTogU0VM RUNUIENBU1QoMTIzNDo6aW50NCBBUyBjYXN0dGVzdHR5cGUgREVGQVVMVCBOVUxMIE9OIENPTlZF Li4uCiAgICAgICAgICAgICAgICAgICAgIF4KLUhJTlQ6ICBTYWZlIHR5cGUgY2FzdCBmb3IgdXNl ci1kZWZpbmVkIHR5cGVzIGFyZSBub3QgeWV0IHN1cHBvcnRlZC4KK0hJTlQ6ICBFeHBsaWNpdCBj YXN0IGlzIGRlZmluZWQgYnV0IGRlZmluaXRpb24gaXMgbm90IGVycm9yIHNhZmUuCiAtLSBjaGVj ayBkZXBlbmRlbmNpZXMgZ2VuZXJhdGVkIGZvciB0aGF0CiBTRUxFQ1QgcGdfZGVzY3JpYmVfb2Jq ZWN0KGNsYXNzaWQsIG9iamlkLCBvYmpzdWJpZCkgYXMgb2JqLAogICAgICAgIHBnX2Rlc2NyaWJl X29iamVjdChyZWZjbGFzc2lkLCByZWZvYmppZCwgcmVmb2Jqc3ViaWQpIGFzIG9ianJlZiwKZGlm ZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CmluZGV4IDZmZjRkN2VlOTAxLi45 OTQzYTQxOTY5NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2Fu aXR5Lm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29wcl9zYW5pdHkub3V0CkBA IC05NTAsOCArOTUwLDggQEAgU0VMRUNUICoKIEZST00gcGdfY2FzdCBjCiBXSEVSRSBjYXN0c291 cmNlID0gMCBPUiBjYXN0dGFyZ2V0ID0gMCBPUiBjYXN0Y29udGV4dCBOT1QgSU4gKCdlJywgJ2En LCAnaScpCiAgICAgT1IgY2FzdG1ldGhvZCBOT1QgSU4gKCdmJywgJ2InICwnaScpOwotIG9pZCB8 IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3Rt ZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNh c3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0tLS0t Ky0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIENoZWNrIHRoYXQgY2FzdGZ1 bmMgaXMgbm9uemVybyBvbmx5IGZvciBjYXN0IG1ldGhvZHMgdGhhdCBuZWVkIGEgZnVuY3Rpb24s CkBAIC05NjAsOCArOTYwLDggQEAgU0VMRUNUICoKIEZST00gcGdfY2FzdCBjCiBXSEVSRSAoY2Fz dG1ldGhvZCA9ICdmJyBBTkQgY2FzdGZ1bmMgPSAwKQogICAgT1IgKGNhc3RtZXRob2QgSU4gKCdi JywgJ2knKSBBTkQgY2FzdGZ1bmMgPD4gMCk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJn ZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQor IG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8 IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LQogKDAgcm93cykKIAogLS0gTG9vayBmb3IgY2FzdHMgdG8vZnJvbSB0aGUgc2FtZSB0eXBlIHRo YXQgYXJlbid0IGxlbmd0aCBjb2VyY2lvbiBmdW5jdGlvbnMuCkBAIC05NzAsMTUgKzk3MCwxNSBA QCBXSEVSRSAoY2FzdG1ldGhvZCA9ICdmJyBBTkQgY2FzdGZ1bmMgPSAwKQogU0VMRUNUICoKIEZS T00gcGdfY2FzdCBjCiBXSEVSRSBjYXN0c291cmNlID0gY2FzdHRhcmdldCBBTkQgY2FzdGZ1bmMg PSAwOwotIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29u dGV4dCB8IGNhc3RtZXRob2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2Fz dHRhcmdldCB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9y c2FmZSAKKy0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIFNFTEVDVCBj LioKIEZST00gcGdfY2FzdCBjLCBwZ19wcm9jIHAKIFdIRVJFIGMuY2FzdGZ1bmMgPSBwLm9pZCBB TkQgcC5wcm9uYXJncyA8IDIgQU5EIGNhc3Rzb3VyY2UgPSBjYXN0dGFyZ2V0OwotIG9pZCB8IGNh c3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRo b2QgCi0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0KKyBvaWQgfCBjYXN0c291cmNlIHwgY2FzdHRhcmdldCB8IGNhc3Rm dW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgY2FzdGVycm9yc2FmZSAKKy0tLS0tKy0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIExvb2sgZm9yIGNhc3QgZnVuY3Rp b25zIHRoYXQgZG9uJ3QgaGF2ZSB0aGUgcmlnaHQgc2lnbmF0dXJlLiAgVGhlCkBAIC05OTYsOCAr OTk2LDggQEAgV0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFORAogICAgICAgICAgICAgIE9SIChj LmNhc3Rzb3VyY2UgPSAnY2hhcmFjdGVyJzo6cmVndHlwZSBBTkQKICAgICAgICAgICAgICAgICAg cC5wcm9hcmd0eXBlc1swXSA9ICd0ZXh0Jzo6cmVndHlwZSkpCiAgICAgIE9SIE5PVCBiaW5hcnlf Y29lcmNpYmxlKHAucHJvcmV0dHlwZSwgYy5jYXN0dGFyZ2V0KSk7Ci0gb2lkIHwgY2FzdHNvdXJj ZSB8IGNhc3R0YXJnZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLQorIG9pZCB8IGNhc3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBj YXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogU0VMRUNUIGMuKgpAQCAtMTAwNSw4ICsxMDA1LDgg QEAgRlJPTSBwZ19jYXN0IGMsIHBnX3Byb2MgcAogV0hFUkUgYy5jYXN0ZnVuYyA9IHAub2lkIEFO RAogICAgICgocC5wcm9uYXJncyA+IDEgQU5EIHAucHJvYXJndHlwZXNbMV0gIT0gJ2ludDQnOjpy ZWd0eXBlKSBPUgogICAgICAocC5wcm9uYXJncyA+IDIgQU5EIHAucHJvYXJndHlwZXNbMl0gIT0g J2Jvb2wnOjpyZWd0eXBlKSk7Ci0gb2lkIHwgY2FzdHNvdXJjZSB8IGNhc3R0YXJnZXQgfCBjYXN0 ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCAKLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIG9pZCB8IGNh c3Rzb3VyY2UgfCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRo b2QgfCBjYXN0ZXJyb3JzYWZlIAorLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLQogKDAgcm93 cykKIAogLS0gTG9vayBmb3IgYmluYXJ5IGNvbXBhdGlibGUgY2FzdHMgdGhhdCBkbyBub3QgaGF2 ZSB0aGUgcmV2ZXJzZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nh c3Quc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3JlYXRlX2Nhc3Quc3FsCmluZGV4IDBhMTVh Nzk1ZDg3Li4zMGEwZmYwNzdjOSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvY3Jl YXRlX2Nhc3Quc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2NyZWF0ZV9jYXN0LnNxbApA QCAtNjAsNiArNjAsMTEgQEAgRFJPUCBGVU5DVElPTiBpbnQ0X2Nhc3R0ZXN0dHlwZShpbnQ0KSBD QVNDQURFOwogQ1JFQVRFIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50NCkgUkVUVVJOUyB0ZXh0 IExBTkdVQUdFIFNRTCBBUwogJCQgU0VMRUNUICgnYmFyJzo6dGV4dCB8fCAkMTo6dGV4dCk7ICQk OwogCitDUkVBVEUgRlVOQ1RJT04gYmFyX2ludDRfdGV4dF9wbHBnKGludDQpIFJFVFVSTlMgdGV4 dCBMQU5HVUFHRSBwbHBnc3FsIEFTCiskJCBCRUdJTiBSRVRVUk4gKCdiYXInOjp0ZXh0IHx8ICQx Ojp0ZXh0KTsgRU5EICQkOworCitDUkVBVEUgQ0FTVCAoaW50NCBBUyBjYXN0dGVzdHR5cGUpIFdJ VEggU0FGRSBGVU5DVElPTiBiYXJfaW50NF90ZXh0KGludDQpIEFTIElNUExJQ0lUOyAtLSBlcnJv cgorQ1JFQVRFIENBU1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIFNBRkUgRlVOQ1RJT04g YmFyX2ludDRfdGV4dF9wbHBnKGludDQpIEFTIElNUExJQ0lUOyAtLSBlcnJvcgogQ1JFQVRFIENB U1QgKGludDQgQVMgY2FzdHRlc3R0eXBlKSBXSVRIIEZVTkNUSU9OIGJhcl9pbnQ0X3RleHQoaW50 NCkgQVMgSU1QTElDSVQ7CiBTRUxFQ1QgMTIzNDo6aW50NDo6Y2FzdHRlc3R0eXBlOyAtLSBTaG91 bGQgd29yayBub3cKIFNFTEVDVCBDQVNUKDEyMzQ6OmludDQgQVMgY2FzdHRlc3R0eXBlIERFRkFV TFQgTlVMTCBPTiBDT05WRVJTSU9OIEVSUk9SKTsgLS0gZXJyb3IKLS0gCjIuMzQuMQoK --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0020-refactor-point_dt.patch" Content-Disposition: attachment; filename="v18-0020-refactor-point_dt.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedn71 RnJvbSA2MzJkZDRjMDJlMWJiZWY1YjRhODc1NWVjNzhmNzVmNDNiY2RlN2Y5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgNSBKYW4gMjAyNiAxMzozMzo1MSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE4 IDIwLzIzXSByZWZhY3RvciBwb2ludF9kdAoKcG9pbnRfZHQgaXMgdXNlZCBpbiBtdWx0aXBsZSBs b2NhdGlvbnMgYW5kIHdpbGwgYmUgbmVlZGVkIGJ5IGEgbGF0ZXIgcGF0Y2gsIHRodXMKcmVmYWN0 b3JpbmcgbWFrZSBpdCBlcnJvciBzYWZlLgoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMv bS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFp bC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZ2VvX29wcy5jIHwgNzkgKysr KysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNDYgaW5zZXJ0 aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2dlb19vcHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMKaW5kZXggYmZi NDg1OWI0Y2IuLmM2NTViMDE1YzE0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQv Z2VvX29wcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9nZW9fb3BzLmMKQEAgLTgyLDcg KzgyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIHBvaW50X3N1Yl9wb2ludChQb2ludCAqcmVzdWx0 LCBQb2ludCAqcHQxLCBQb2ludCAqcHQyKTsKIHN0YXRpYyBpbmxpbmUgdm9pZCBwb2ludF9tdWxf cG9pbnQoUG9pbnQgKnJlc3VsdCwgUG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW5s aW5lIHZvaWQgcG9pbnRfZGl2X3BvaW50KFBvaW50ICpyZXN1bHQsIFBvaW50ICpwdDEsIFBvaW50 ICpwdDIpOwogc3RhdGljIGlubGluZSBib29sIHBvaW50X2VxX3BvaW50KFBvaW50ICpwdDEsIFBv aW50ICpwdDIpOwotc3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRfZHQoUG9pbnQgKnB0MSwgUG9p bnQgKnB0Mik7CitzdGF0aWMgaW5saW5lIGZsb2F0OCBwb2ludF9kdChQb2ludCAqcHQxLCBQb2lu dCAqcHQyLCBOb2RlICplc2NvbnRleHQpOwogc3RhdGljIGlubGluZSBmbG9hdDggcG9pbnRfc2wo UG9pbnQgKnB0MSwgUG9pbnQgKnB0Mik7CiBzdGF0aWMgaW50CXBvaW50X2luc2lkZShQb2ludCAq cCwgaW50IG5wdHMsIFBvaW50ICpwbGlzdCk7CiAKQEAgLTgzOSw3ICs4MzksNyBAQCBib3hfZGlz dGFuY2UoUEdfRlVOQ1RJT05fQVJHUykKIAlib3hfY24oJmEsIGJveDEpOwogCWJveF9jbigmYiwg Ym94Mik7CiAKLQlQR19SRVRVUk5fRkxPQVQ4KHBvaW50X2R0KCZhLCAmYikpOworCVBHX1JFVFVS Tl9GTE9BVDgocG9pbnRfZHQoJmEsICZiLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0x ODA4LDcgKzE4MDgsOCBAQCBwYXRoX2xlbmd0aChQR19GVU5DVElPTl9BUkdTKQogCQkJaXByZXYg PSBwYXRoLT5ucHRzIC0gMTsgLyogaW5jbHVkZSB0aGUgY2xvc3VyZSBzZWdtZW50ICovCiAJCX0K IAotCQlyZXN1bHQgPSBmbG9hdDhfcGwocmVzdWx0LCBwb2ludF9kdCgmcGF0aC0+cFtpcHJldl0s ICZwYXRoLT5wW2ldKSk7CisJCXJlc3VsdCA9IGZsb2F0OF9wbChyZXN1bHQsCisJCQkJCQkgICBw b2ludF9kdCgmcGF0aC0+cFtpcHJldl0sICZwYXRoLT5wW2ldLCBmY2luZm8tPmNvbnRleHQpKTsK IAl9CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CkBAIC0xOTk1LDEzICsxOTk2LDI0IEBA IHBvaW50X2Rpc3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJUG9pbnQJICAgKnB0MSA9IFBHX0dF VEFSR19QT0lOVF9QKDApOwogCVBvaW50CSAgICpwdDIgPSBQR19HRVRBUkdfUE9JTlRfUCgxKTsK IAotCVBHX1JFVFVSTl9GTE9BVDgocG9pbnRfZHQocHQxLCBwdDIpKTsKKwlQR19SRVRVUk5fRkxP QVQ4KHBvaW50X2R0KHB0MSwgcHQyLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogc3RhdGljIGlu bGluZSBmbG9hdDgKLXBvaW50X2R0KFBvaW50ICpwdDEsIFBvaW50ICpwdDIpCitwb2ludF9kdChQ b2ludCAqcHQxLCBQb2ludCAqcHQyLCBOb2RlICplc2NvbnRleHQpCiB7Ci0JcmV0dXJuIGh5cG90 KGZsb2F0OF9taShwdDEtPngsIHB0Mi0+eCksIGZsb2F0OF9taShwdDEtPnksIHB0Mi0+eSkpOwor CWZsb2F0OAkJeDsKKwlmbG9hdDgJCXk7CisKKwl4ID0gZmxvYXQ4X21pX3NhZmUocHQxLT54LCBw dDItPngsIGVzY29udGV4dCk7CisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNj b250ZXh0KSkpCisJCXJldHVybiAwLjA7CisKKwl5ID0gZmxvYXQ4X21pX3NhZmUocHQxLT55LCBw dDItPnksIGVzY29udGV4dCk7CisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZXNj b250ZXh0KSkpCisJCXJldHVybiAwLjA7CisKKwlyZXR1cm4gaHlwb3QoeCwgeSk7CiB9CiAKIERh dHVtCkBAIC0yMTczLDcgKzIxODUsNyBAQCBsc2VnX2xlbmd0aChQR19GVU5DVElPTl9BUkdTKQog ewogCUxTRUcJICAgKmxzZWcgPSBQR19HRVRBUkdfTFNFR19QKDApOwogCi0JUEdfUkVUVVJOX0ZM T0FUOChwb2ludF9kdCgmbHNlZy0+cFswXSwgJmxzZWctPnBbMV0pKTsKKwlQR19SRVRVUk5fRkxP QVQ4KHBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSk7 CiB9CiAKIC8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpAQCAtMjI1OCw4ICsyMjcwLDggQEAgbHNlZ19sdChQR19GVU5DVElPTl9BUkdT KQogCUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBH X0dFVEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGx0KHBvaW50X2R0KCZsMS0+ cFswXSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkp OworCVBHX1JFVFVSTl9CT09MKEZQbHQocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZj aW5mby0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNp bmZvLT5jb250ZXh0KSkpOwogfQogCiBEYXR1bQpAQCAtMjI2OCw4ICsyMjgwLDggQEAgbHNlZ19s ZShQR19GVU5DVElPTl9BUkdTKQogCUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsK IAlMU0VHCSAgICpsMiA9IFBHX0dFVEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChG UGxlKHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+ cFswXSwgJmwyLT5wWzFdKSkpOworCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmwxLT5w WzBdLCAmbDEtPnBbMV0sIGZjaW5mby0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBb MF0sICZsMi0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSkpOwogfQogCiBEYXR1bQpAQCAtMjI3OCw4 ICsyMjkwLDggQEAgbHNlZ19ndChQR19GVU5DVElPTl9BUkdTKQogCUxTRUcJICAgKmwxID0gUEdf R0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dFVEFSR19MU0VHX1AoMSk7CiAK LQlQR19SRVRVUk5fQk9PTChGUGd0KHBvaW50X2R0KCZsMS0+cFswXSwgJmwxLT5wWzFdKSwKLQkJ CQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOworCVBHX1JFVFVSTl9CT09MKEZQ Z3QocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZjaW5mby0+Y29udGV4dCksCisJCQkJ CQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNpbmZvLT5jb250ZXh0KSkpOwogfQog CiBEYXR1bQpAQCAtMjI4OCw4ICsyMzAwLDggQEAgbHNlZ19nZShQR19GVU5DVElPTl9BUkdTKQog CUxTRUcJICAgKmwxID0gUEdfR0VUQVJHX0xTRUdfUCgwKTsKIAlMU0VHCSAgICpsMiA9IFBHX0dF VEFSR19MU0VHX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9PTChGUGdlKHBvaW50X2R0KCZsMS0+cFsw XSwgJmwxLT5wWzFdKSwKLQkJCQkJCXBvaW50X2R0KCZsMi0+cFswXSwgJmwyLT5wWzFdKSkpOwor CVBHX1JFVFVSTl9CT09MKEZQZ2UocG9pbnRfZHQoJmwxLT5wWzBdLCAmbDEtPnBbMV0sIGZjaW5m by0+Y29udGV4dCksCisJCQkJCQlwb2ludF9kdCgmbDItPnBbMF0sICZsMi0+cFsxXSwgZmNpbmZv LT5jb250ZXh0KSkpOwogfQogCiAKQEAgLTI3NDMsNyArMjc1NSw3IEBAIGxpbmVfY2xvc2VwdF9w b2ludChQb2ludCAqcmVzdWx0LCBMSU5FICpsaW5lLCBQb2ludCAqcG9pbnQpCiAJaWYgKHJlc3Vs dCAhPSBOVUxMKQogCQkqcmVzdWx0ID0gY2xvc2VwdDsKIAotCXJldHVybiBwb2ludF9kdCgmY2xv c2VwdCwgcG9pbnQpOworCXJldHVybiBwb2ludF9kdCgmY2xvc2VwdCwgcG9pbnQsIE5VTEwpOwog fQogCiBEYXR1bQpAQCAtMjc4NCw3ICsyNzk2LDcgQEAgbHNlZ19jbG9zZXB0X3BvaW50KFBvaW50 ICpyZXN1bHQsIExTRUcgKmxzZWcsIFBvaW50ICpwdCkKIAlpZiAocmVzdWx0ICE9IE5VTEwpCiAJ CSpyZXN1bHQgPSBjbG9zZXB0OwogCi0JcmV0dXJuIHBvaW50X2R0KCZjbG9zZXB0LCBwdCk7CisJ cmV0dXJuIHBvaW50X2R0KCZjbG9zZXB0LCBwdCwgTlVMTCk7CiB9CiAKIERhdHVtCkBAIC0zMTA4 LDkgKzMxMjAsOSBAQCBvbl9wbChQR19GVU5DVElPTl9BUkdTKQogc3RhdGljIGJvb2wKIGxzZWdf Y29udGFpbl9wb2ludChMU0VHICpsc2VnLCBQb2ludCAqcHQpCiB7Ci0JcmV0dXJuIEZQZXEocG9p bnRfZHQocHQsICZsc2VnLT5wWzBdKSArCi0JCQkJcG9pbnRfZHQocHQsICZsc2VnLT5wWzFdKSwK LQkJCQlwb2ludF9kdCgmbHNlZy0+cFswXSwgJmxzZWctPnBbMV0pKTsKKwlyZXR1cm4gRlBlcShw b2ludF9kdChwdCwgJmxzZWctPnBbMF0sIE5VTEwpICsKKwkJCQlwb2ludF9kdChwdCwgJmxzZWct PnBbMV0sIE5VTEwpLAorCQkJCXBvaW50X2R0KCZsc2VnLT5wWzBdLCAmbHNlZy0+cFsxXSwgTlVM TCkpOwogfQogCiBEYXR1bQpAQCAtMzE3NiwxMSArMzE4OCwxMiBAQCBvbl9wcGF0aChQR19GVU5D VElPTl9BUkdTKQogCWlmICghcGF0aC0+Y2xvc2VkKQogCXsKIAkJbiA9IHBhdGgtPm5wdHMgLSAx OwotCQlhID0gcG9pbnRfZHQocHQsICZwYXRoLT5wWzBdKTsKKwkJYSA9IHBvaW50X2R0KHB0LCAm cGF0aC0+cFswXSwgZmNpbmZvLT5jb250ZXh0KTsKIAkJZm9yIChpID0gMDsgaSA8IG47IGkrKykK IAkJewotCQkJYiA9IHBvaW50X2R0KHB0LCAmcGF0aC0+cFtpICsgMV0pOwotCQkJaWYgKEZQZXEo ZmxvYXQ4X3BsKGEsIGIpLCBwb2ludF9kdCgmcGF0aC0+cFtpXSwgJnBhdGgtPnBbaSArIDFdKSkp CisJCQliID0gcG9pbnRfZHQocHQsICZwYXRoLT5wW2kgKyAxXSwgZmNpbmZvLT5jb250ZXh0KTsK KwkJCWlmIChGUGVxKGZsb2F0OF9wbChhLCBiKSwKKwkJCQkJIHBvaW50X2R0KCZwYXRoLT5wW2ld LCAmcGF0aC0+cFtpICsgMV0sIGZjaW5mby0+Y29udGV4dCkpKQogCQkJCVBHX1JFVFVSTl9CT09M KHRydWUpOwogCQkJYSA9IGI7CiAJCX0KQEAgLTQ3NjYsNyArNDc3OSw3IEBAIGNpcmNsZV9vdmVy bGFwKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpjaXJjbGUxID0gUEdfR0VUQVJHX0NJ UkNMRV9QKDApOwogCUNJUkNMRQkgICAqY2lyY2xlMiA9IFBHX0dFVEFSR19DSVJDTEVfUCgxKTsK IAotCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNs ZTItPmNlbnRlciksCisJUEdfUkVUVVJOX0JPT0woRlBsZShwb2ludF9kdCgmY2lyY2xlMS0+Y2Vu dGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2luZm8tPmNvbnRleHQpLAogCQkJCQkJZmxvYXQ4X3Bs KGNpcmNsZTEtPnJhZGl1cywgY2lyY2xlMi0+cmFkaXVzKSkpOwogfQogCkBAIC00ODI4LDcgKzQ4 NDEsNyBAQCBjaXJjbGVfY29udGFpbmVkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpj aXJjbGUxID0gUEdfR0VUQVJHX0NJUkNMRV9QKDApOwogCUNJUkNMRQkgICAqY2lyY2xlMiA9IFBH X0dFVEFSR19DSVJDTEVfUCgxKTsKIAotCVBHX1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNp cmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNlbnRlciksCisJUEdfUkVUVVJOX0JPT0woRlBsZShw b2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2luZm8tPmNvbnRl eHQpLAogCQkJCQkJZmxvYXQ4X21pKGNpcmNsZTItPnJhZGl1cywgY2lyY2xlMS0+cmFkaXVzKSkp OwogfQogCkBAIC00ODQwLDcgKzQ4NTMsNyBAQCBjaXJjbGVfY29udGFpbihQR19GVU5DVElPTl9B UkdTKQogCUNJUkNMRQkgICAqY2lyY2xlMSA9IFBHX0dFVEFSR19DSVJDTEVfUCgwKTsKIAlDSVJD TEUJICAgKmNpcmNsZTIgPSBQR19HRVRBUkdfQ0lSQ0xFX1AoMSk7CiAKLQlQR19SRVRVUk5fQk9P TChGUGxlKHBvaW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCVBH X1JFVFVSTl9CT09MKEZQbGUocG9pbnRfZHQoJmNpcmNsZTEtPmNlbnRlciwgJmNpcmNsZTItPmNl bnRlciwgZmNpbmZvLT5jb250ZXh0KSwKIAkJCQkJCWZsb2F0OF9taShjaXJjbGUxLT5yYWRpdXMs IGNpcmNsZTItPnJhZGl1cykpKTsKIH0KIApAQCAtNTA2OSw3ICs1MDgyLDcgQEAgY2lyY2xlX2Rp c3RhbmNlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJQ0lSQ0xFCSAgICpjaXJjbGUyID0gUEdfR0VUQVJH X0NJUkNMRV9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVzdWx0ID0gZmxvYXQ4X21pKHBv aW50X2R0KCZjaXJjbGUxLT5jZW50ZXIsICZjaXJjbGUyLT5jZW50ZXIpLAorCXJlc3VsdCA9IGZs b2F0OF9taShwb2ludF9kdCgmY2lyY2xlMS0+Y2VudGVyLCAmY2lyY2xlMi0+Y2VudGVyLCBmY2lu Zm8tPmNvbnRleHQpLAogCQkJCQkgICBmbG9hdDhfcGwoY2lyY2xlMS0+cmFkaXVzLCBjaXJjbGUy LT5yYWRpdXMpKTsKIAlpZiAocmVzdWx0IDwgMC4wKQogCQlyZXN1bHQgPSAwLjA7CkBAIC01MDg1 LDcgKzUwOTgsNyBAQCBjaXJjbGVfY29udGFpbl9wdChQR19GVU5DVElPTl9BUkdTKQogCVBvaW50 CSAgICpwb2ludCA9IFBHX0dFVEFSR19QT0lOVF9QKDEpOwogCWZsb2F0OAkJZDsKIAotCWQgPSBw b2ludF9kdCgmY2lyY2xlLT5jZW50ZXIsIHBvaW50KTsKKwlkID0gcG9pbnRfZHQoJmNpcmNsZS0+ Y2VudGVyLCBwb2ludCwgZmNpbmZvLT5jb250ZXh0KTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNp cmNsZS0+cmFkaXVzKTsKIH0KIApAQCAtNTA5Nyw3ICs1MTEwLDcgQEAgcHRfY29udGFpbmVkX2Np cmNsZShQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAqY2lyY2xlID0gUEdfR0VUQVJHX0NJ UkNMRV9QKDEpOwogCWZsb2F0OAkJZDsKIAotCWQgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50ZXIs IHBvaW50KTsKKwlkID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2VudGVyLCBwb2ludCwgZmNpbmZvLT5j b250ZXh0KTsKIAlQR19SRVRVUk5fQk9PTChkIDw9IGNpcmNsZS0+cmFkaXVzKTsKIH0KIApAQCAt NTExMiw3ICs1MTI1LDcgQEAgZGlzdF9wYyhQR19GVU5DVElPTl9BUkdTKQogCUNJUkNMRQkgICAq Y2lyY2xlID0gUEdfR0VUQVJHX0NJUkNMRV9QKDEpOwogCWZsb2F0OAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gZmxvYXQ4X21pKHBvaW50X2R0KHBvaW50LCAmY2lyY2xlLT5jZW50ZXIpLAorCXJlc3Vs dCA9IGZsb2F0OF9taShwb2ludF9kdChwb2ludCwgJmNpcmNsZS0+Y2VudGVyLCBmY2luZm8tPmNv bnRleHQpLAogCQkJCQkgICBjaXJjbGUtPnJhZGl1cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJ cmVzdWx0ID0gMC4wOwpAQCAtNTEzMCw3ICs1MTQzLDcgQEAgZGlzdF9jcG9pbnQoUEdfRlVOQ1RJ T05fQVJHUykKIAlQb2ludAkgICAqcG9pbnQgPSBQR19HRVRBUkdfUE9JTlRfUCgxKTsKIAlmbG9h dDgJCXJlc3VsdDsKIAotCXJlc3VsdCA9IGZsb2F0OF9taShwb2ludF9kdChwb2ludCwgJmNpcmNs ZS0+Y2VudGVyKSwgY2lyY2xlLT5yYWRpdXMpOworCXJlc3VsdCA9IGZsb2F0OF9taShwb2ludF9k dChwb2ludCwgJmNpcmNsZS0+Y2VudGVyLCBmY2luZm8tPmNvbnRleHQpLCBjaXJjbGUtPnJhZGl1 cyk7CiAJaWYgKHJlc3VsdCA8IDAuMCkKIAkJcmVzdWx0ID0gMC4wOwogCkBAIC01MjE1LDcgKzUy MjgsNyBAQCBib3hfY2lyY2xlKFBHX0ZVTkNUSU9OX0FSR1MpCiAJY2lyY2xlLT5jZW50ZXIueCA9 IGZsb2F0OF9kaXYoZmxvYXQ4X3BsKGJveC0+aGlnaC54LCBib3gtPmxvdy54KSwgMi4wKTsKIAlj aXJjbGUtPmNlbnRlci55ID0gZmxvYXQ4X2RpdihmbG9hdDhfcGwoYm94LT5oaWdoLnksIGJveC0+ bG93LnkpLCAyLjApOwogCi0JY2lyY2xlLT5yYWRpdXMgPSBwb2ludF9kdCgmY2lyY2xlLT5jZW50 ZXIsICZib3gtPmhpZ2gpOworCWNpcmNsZS0+cmFkaXVzID0gcG9pbnRfZHQoJmNpcmNsZS0+Y2Vu dGVyLCAmYm94LT5oaWdoLCBmY2luZm8tPmNvbnRleHQpOwogCiAJUEdfUkVUVVJOX0NJUkNMRV9Q KGNpcmNsZSk7CiB9CkBAIC01Mjk5LDcgKzUzMTIsNyBAQCBwb2x5X3RvX2NpcmNsZShDSVJDTEUg KnJlc3VsdCwgUE9MWUdPTiAqcG9seSkKIAogCWZvciAoaSA9IDA7IGkgPCBwb2x5LT5ucHRzOyBp KyspCiAJCXJlc3VsdC0+cmFkaXVzID0gZmxvYXQ4X3BsKHJlc3VsdC0+cmFkaXVzLAotCQkJCQkJ CQkgICBwb2ludF9kdCgmcG9seS0+cFtpXSwgJnJlc3VsdC0+Y2VudGVyKSk7CisJCQkJCQkJCSAg IHBvaW50X2R0KCZwb2x5LT5wW2ldLCAmcmVzdWx0LT5jZW50ZXIsIE5VTEwpKTsKIAlyZXN1bHQt PnJhZGl1cyA9IGZsb2F0OF9kaXYocmVzdWx0LT5yYWRpdXMsIHBvbHktPm5wdHMpOwogfQogCi0t IAoyLjM0LjEKCg== --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Disposition: attachment; filename="v18-0018-refactor-float_overflow_error-float_underflow_error-float_zero_d.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnednu5 RnJvbSAzNDc2YTIwMmI3MmZkMjgwMDkyYWZjNzZlZjQ5NjY0YzJhOTY5ZTBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgOSBEZWMgMjAyNSAxNDozNjozOSArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE4 IDE4LzIzXSByZWZhY3RvcgogZmxvYXRfb3ZlcmZsb3dfZXJyb3IsZmxvYXRfdW5kZXJmbG93X2Vy cm9yLGZsb2F0X3plcm9fZGl2aWRlX2Vycm9yCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5l cy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBt YWlsLmdtYWlsLmNvbQotLS0KIGNvbnRyaWIvYnRyZWVfZ2lzdC9idHJlZV9mbG9hdDQuYyB8ICAg MiArLQogY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jIHwgICA0ICstCiBzcmMvYmFj a2VuZC91dGlscy9hZHQvZmxvYXQuYyAgICAgfCAxMDQgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCiBzcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oICAgICAgICAgfCAgMzQgKysrKystLS0t LQogNCBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNlcnRpb25zKCspLCA3MiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMgYi9jb250cmliL2J0 cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKaW5kZXggZDljODU5ODM1ZGEuLmE3MzI1YTdiYjI5IDEw MDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ0LmMKKysrIGIvY29udHJp Yi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0NC5jCkBAIC0xMDEsNyArMTAxLDcgQEAgZmxvYXQ0X2Rp c3QoUEdfRlVOQ1RJT05fQVJHUykKIAogCXIgPSBhIC0gYjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cikpICYmICFpc2luZihhKSAmJiAhaXNpbmYoYikpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUNChmYWJz ZihyKSk7CiB9CmRpZmYgLS1naXQgYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMg Yi9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMKaW5kZXggNTY3YmVlZGUxNzguLjdj OTliODRkZTM1IDEwMDY0NAotLS0gYS9jb250cmliL2J0cmVlX2dpc3QvYnRyZWVfZmxvYXQ4LmMK KysrIGIvY29udHJpYi9idHJlZV9naXN0L2J0cmVlX2Zsb2F0OC5jCkBAIC03OSw3ICs3OSw3IEBA IGdidF9mbG9hdDhfZGlzdChjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiLCBGbWdySW5mbyAq ZmxpbmZvKQogCiAJciA9IGFyZzEgLSBhcmcyOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYg IWlzaW5mKGFyZzEpICYmICFpc2luZihhcmcyKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsK KwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJcmV0dXJuIGZhYnMocik7CiB9CiAKQEAg LTEwOSw3ICsxMDksNyBAQCBmbG9hdDhfZGlzdChQR19GVU5DVElPTl9BUkdTKQogCiAJciA9IGEg LSBiOwogCWlmICh1bmxpa2VseShpc2luZihyKSkgJiYgIWlzaW5mKGEpICYmICFpc2luZihiKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAKIAlQR19SRVRVUk5fRkxPQVQ4KGZhYnMocikpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2Zsb2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRl eCA1MDIzOThkMjllYy4uNWI3MWM0MGIwMGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9mbG9hdC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC04Mywy NSArODMsMjUgQEAgc3RhdGljIHZvaWQgaW5pdF9kZWdyZWVfY29uc3RhbnRzKHZvaWQpOwogICog VGhpcyBkb2VzIG1lYW4gdGhhdCB5b3UgZG9uJ3QgZ2V0IGEgdXNlZnVsIGVycm9yIGxvY2F0aW9u IGluZGljYXRvci4KICAqLwogcGdfbm9pbmxpbmUgdm9pZAotZmxvYXRfb3ZlcmZsb3dfZXJyb3Io dm9pZCkKK2Zsb2F0X292ZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpCiB7Ci0J ZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2RlKEVSUkNPREVf TlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUgb3V0IG9mIHJh bmdlOiBvdmVyZmxvdyIpKSk7CiB9CiAKIHBnX25vaW5saW5lIHZvaWQKLWZsb2F0X3VuZGVyZmxv d19lcnJvcih2b2lkKQorZmxvYXRfdW5kZXJmbG93X2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRl eHQpCiB7Ci0JZXJlcG9ydChFUlJPUiwKKwllcnJzYXZlKGVzY29udGV4dCwKIAkJCShlcnJjb2Rl KEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJIGVycm1zZygidmFsdWUg b3V0IG9mIHJhbmdlOiB1bmRlcmZsb3ciKSkpOwogfQogCiBwZ19ub2lubGluZSB2b2lkCi1mbG9h dF96ZXJvX2RpdmlkZV9lcnJvcih2b2lkKQorZmxvYXRfemVyb19kaXZpZGVfZXJyb3Ioc3RydWN0 IE5vZGUgKmVzY29udGV4dCkKIHsKLQllcmVwb3J0KEVSUk9SLAorCWVycnNhdmUoZXNjb250ZXh0 LAogCQkJKGVycmNvZGUoRVJSQ09ERV9ESVZJU0lPTl9CWV9aRVJPKSwKIAkJCSBlcnJtc2coImRp dmlzaW9uIGJ5IHplcm8iKSkpOwogfQpAQCAtMTQ2MCw5ICsxNDYwLDkgQEAgZHNxcnQoUEdfRlVO Q1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHNxcnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjAp ICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5k ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAt MTQ3OSw5ICsxNDc5LDkgQEAgZGNicnQoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IGNi cnQoYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkK LQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJaWYgKHVubGlrZWx5KHJlc3VsdCA9PSAwLjApICYmIGFyZzEgIT0gMC4wKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTYxNywyNCArMTYxNywyNCBAQCBkcG93KFBH X0ZVTkNUSU9OX0FSR1MpCiAJCQkJaWYgKGFic3ggPT0gMS4wKQogCQkJCQlyZXN1bHQgPSAxLjA7 CiAJCQkJZWxzZSBpZiAoYXJnMiA+PSAwLjAgPyAoYWJzeCA+IDEuMCkgOiAoYWJzeCA8IDEuMCkp Ci0JCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCQkJCWVsc2UKLQkJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJCX0KIAkJfQogCQllbHNlIGlmIChlcnJubyA9 PSBFUkFOR0UpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0gMC4wKQotCQkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwp OwogCQl9CiAJCWVsc2UKIAkJewogCQkJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJCQlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAwLjApCi0JCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CQl9CiAJfQogCkBAIC0xNjc0LDE0ICsxNjc0LDE0IEBAIGRleHAoUEdfRlVOQ1RJT05fQVJHUykK IAkJaWYgKHVubGlrZWx5KGVycm5vID09IEVSQU5HRSkpCiAJCXsKIAkJCWlmIChyZXN1bHQgIT0g MC4wKQotCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoTlVMTCk7CiAJCQllbHNlCi0JCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQkJZmxv YXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCQl9CiAJCWVsc2UgaWYgKHVubGlrZWx5KGlzaW5m KHJlc3VsdCkpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93 X2Vycm9yKE5VTEwpOwogCQllbHNlIGlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wKSkKLQkJCWZs b2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwog CX0KIAogCVBHX1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKQEAgLTE3MTIsOSArMTcxMiw5IEBAIGRs b2cxKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlyZXN1bHQgPSBsb2coYXJnMSk7CiAJaWYgKHVubGlr ZWx5KGlzaW5mKHJlc3VsdCkpICYmICFpc2luZihhcmcxKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJy b3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5KHJlc3Vs dCA9PSAwLjApICYmIGFyZzEgIT0gMS4wKQotCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQp OwogfQpAQCAtMTc0NSw5ICsxNzQ1LDkgQEAgZGxvZzEwKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAly ZXN1bHQgPSBsb2cxMChhcmcxKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlz aW5mKGFyZzEpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19l cnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgYXJnMSAhPSAxLjAp Ci0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVM TCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0xNzc4LDcgKzE3NzgsNyBA QCBkYWNvcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmVzdWx0ID0gYWNvcyhhcmcxKTsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZs b2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwog fQpAQCAtMTgwOSw3ICsxODA5LDcgQEAgZGFzaW4oUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3Vs dCA9IGFzaW4oYXJnMSk7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9v dmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JF VFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE4MzUsNyArMTgzNSw3IEBAIGRhdGFuKFBHX0ZV TkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0gYXRhbihhcmcxKTsKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMTg2 MSw3ICsxODYxLDcgQEAgZGF0YW4yKFBHX0ZVTkNUSU9OX0FSR1MpCiAJICovCiAJcmVzdWx0ID0g YXRhbjIoYXJnMSwgYXJnMik7CiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9h dF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBH X1JFVFVSTl9GTE9BVDgocmVzdWx0KTsKIH0KQEAgLTE5MDIsNyArMTkwMiw3IEBAIGRjb3MoUEdf RlVOQ1RJT05fQVJHUykKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnB1dCBpcyBvdXQgb2YgcmFuZ2UiKSkpOwogCWlmICh1 bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9 CkBAIC0xOTU3LDcgKzE5NTcsNyBAQCBkc2luKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW5w dXQgaXMgb3V0IG9mIHJhbmdlIikpKTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0J CWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwog CiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjEzNyw3ICsyMTM3LDcgQEAgZGFj b3NkKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJlc3VsdCA9IDkwLjAgKyBhc2luZF9xMSgtYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjE3NCw3ICsyMTc0LDcgQEAgZGFzaW5kKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCXJlc3VsdCA9IC1hc2luZF9xMSgtYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVz dWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9y KE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjIwNiw3ICsyMjA2 LDcgQEAgZGF0YW5kKFBHX0ZVTkNUSU9OX0FSR1MpCiAJcmVzdWx0ID0gKGF0YW5fYXJnMSAvIGF0 YW5fMV8wKSAqIDQ1LjA7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjI0Miw3ICsyMjQyLDcgQEAgZGF0YW4yZChQ R19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IChhdGFuMl9hcmcxX2FyZzIgLyBhdGFuXzFfMCkg KiA0NS4wOwogCiAJaWYgKHVubGlrZWx5KGlzaW5mKHJlc3VsdCkpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9G TE9BVDgocmVzdWx0KTsKIH0KQEAgLTIzNjUsNyArMjM2NSw3IEBAIGRjb3NkKFBHX0ZVTkNUSU9O X0FSR1MpCiAJcmVzdWx0ID0gc2lnbiAqIGNvc2RfcTEoYXJnMSk7CiAKIAlpZiAodW5saWtlbHko aXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJm bG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjQ4 Nyw3ICsyNDg3LDcgQEAgZHNpbmQoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBzaWduICog c2luZF9xMShhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSkKLQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19S RVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNjQ1LDcgKzI2NDUsNyBAQCBkY29zaChQR19G VU5DVElPTl9BUkdTKQogCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X2luZmluaXR5KCk7CiAKIAlpZiAo dW5saWtlbHkocmVzdWx0ID09IDAuMCkpCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlm bG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7 CiB9CkBAIC0yNjY1LDcgKzI2NjUsNyBAQCBkdGFuaChQR19GVU5DVElPTl9BUkdTKQogCXJlc3Vs dCA9IHRhbmgoYXJnMSk7CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0 X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdf UkVUVVJOX0ZMT0FUOChyZXN1bHQpOwogfQpAQCAtMjc2NSw3ICsyNzY1LDcgQEAgZGVyZihQR19G VU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZihhcmcxKTsKIAogCWlmICh1bmxpa2VseShpc2lu ZihyZXN1bHQpKSkKLQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlQR19SRVRVUk5fRkxPQVQ4KHJlc3VsdCk7CiB9CkBAIC0yNzg1LDcg KzI3ODUsNyBAQCBkZXJmYyhQR19GVU5DVElPTl9BUkdTKQogCXJlc3VsdCA9IGVyZmMoYXJnMSk7 CiAKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9y KCk7CisJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJUEdfUkVUVVJOX0ZMT0FUOChy ZXN1bHQpOwogfQpAQCAtMjgxNCw3ICsyODE0LDcgQEAgZGdhbW1hKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJCS8qIFBlciBQT1NJWCwgYW4gaW5wdXQgb2YgLUluZiBjYXVzZXMgYSBkb21haW4gZXJyb3Ig Ki8KIAkJaWYgKGFyZzEgPCAwKQogCQl7Ci0JCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ ZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJCQlyZXN1bHQgPSBnZXRfZmxvYXQ4X25hbigp OwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICovCiAJCX0KIAkJZWxzZQpAQCAtMjgzNiwxMiArMjgz NiwxMiBAQCBkZ2FtbWEoUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGVycm5vICE9IDAgfHwgaXNp bmYocmVzdWx0KSB8fCBpc25hbihyZXN1bHQpKQogCQl7CiAJCQlpZiAocmVzdWx0ICE9IDAuMCkK LQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5V TEwpOwogCQkJZWxzZQotCQkJCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X3Vu ZGVyZmxvd19lcnJvcihOVUxMKTsKIAkJfQogCQllbHNlIGlmIChyZXN1bHQgPT0gMC4wKQotCQkJ ZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7CisJCQlmbG9hdF91bmRlcmZsb3dfZXJyb3IoTlVMTCk7 CiAJfQogCiAJUEdfUkVUVVJOX0ZMT0FUOChyZXN1bHQpOwpAQCAtMjg3Myw3ICsyODczLDcgQEAg ZGxnYW1tYShQR19GVU5DVElPTl9BUkdTKQogCSAqIHRvIHJlcG9ydCBvdmVyZmxvdywgYnV0IGl0 IHNob3VsZCBuZXZlciB1bmRlcmZsb3cuCiAJICovCiAJaWYgKGVycm5vID09IEVSQU5HRSB8fCAo aXNpbmYocmVzdWx0KSAmJiAhaXNpbmYoYXJnMSkpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCVBHX1JFVFVSTl9GTE9BVDgocmVz dWx0KTsKIH0KQEAgLTMwMTMsNyArMzAxMyw3IEBAIGZsb2F0OF9jb21iaW5lKFBHX0ZVTkNUSU9O X0FSR1MpCiAJCXRtcCA9IFN4MSAvIE4xIC0gU3gyIC8gTjI7CiAJCVN4eCA9IFN4eDEgKyBTeHgy ICsgTjEgKiBOMiAqIHRtcCAqIHRtcCAvIE47CiAJCWlmICh1bmxpa2VseShpc2luZihTeHgpKSAm JiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRfb3ZlcmZsb3dfZXJyb3Io KTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCX0KIAogCS8qCkBAIC0zMDgwLDcg KzMwODAsNyBAQCBmbG9hdDhfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYgKGlzaW5mKFN4 KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVzWzFdKSAmJiAh aXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigpOwogCQl9CkBA IC0zMTYzLDcgKzMxNjMsNyBAQCBmbG9hdDRfYWNjdW0oUEdfRlVOQ1RJT05fQVJHUykKIAkJaWYg KGlzaW5mKFN4KSB8fCBpc2luZihTeHgpKQogCQl7CiAJCQlpZiAoIWlzaW5mKHRyYW5zdmFsdWVz WzFdKSAmJiAhaXNpbmYobmV3dmFsKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJ CWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlTeHggPSBnZXRfZmxvYXQ4X25hbigp OwogCQl9CkBAIC0zNDMwLDcgKzM0MzAsNyBAQCBmbG9hdDhfcmVncl9hY2N1bShQR19GVU5DVElP Tl9BUkdTKQogCQkJCShpc2luZihTeHkpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1sxXSkg JiYgIWlzaW5mKG5ld3ZhbFgpICYmCiAJCQkJICFpc2luZih0cmFuc3ZhbHVlc1szXSkgJiYgIWlz aW5mKG5ld3ZhbFkpKSkKLQkJCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQkJCWZsb2F0X292 ZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJCQlpZiAoaXNpbmYoU3h4KSkKIAkJCQlTeHggPSBnZXRf ZmxvYXQ4X25hbigpOwpAQCAtMzYwMywxNSArMzYwMywxNSBAQCBmbG9hdDhfcmVncl9jb21iaW5l KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXRtcDEgPSBTeDEgLyBOMSAtIFN4MiAvIE4yOwogCQlTeHgg PSBTeHgxICsgU3h4MiArIE4xICogTjIgKiB0bXAxICogdG1wMSAvIE47CiAJCWlmICh1bmxpa2Vs eShpc2luZihTeHgpKSAmJiAhaXNpbmYoU3h4MSkgJiYgIWlzaW5mKFN4eDIpKQotCQkJZmxvYXRf b3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlTeSA9 IGZsb2F0OF9wbChTeTEsIFN5Mik7CiAJCXRtcDIgPSBTeTEgLyBOMSAtIFN5MiAvIE4yOwogCQlT eXkgPSBTeXkxICsgU3l5MiArIE4xICogTjIgKiB0bXAyICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeXkpKSAmJiAhaXNpbmYoU3l5MSkgJiYgIWlzaW5mKFN5eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlT eHkgPSBTeHkxICsgU3h5MiArIE4xICogTjIgKiB0bXAxICogdG1wMiAvIE47CiAJCWlmICh1bmxp a2VseShpc2luZihTeHkpKSAmJiAhaXNpbmYoU3h5MSkgJiYgIWlzaW5mKFN4eTIpKQotCQkJZmxv YXRfb3ZlcmZsb3dfZXJyb3IoKTsKKwkJCWZsb2F0X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCQlp ZiAoZmxvYXQ4X2VxKEN4MSwgQ3gyKSkKIAkJCUN4ID0gQ3gxOwogCQllbHNlCmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS91dGlscy9mbG9hdC5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApp bmRleCBiMzQwNjc4Y2E5Mi4uZDJlOTg5OTYwYTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0 aWxzL2Zsb2F0LmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvZmxvYXQuaApAQCAtMzAsOSArMzAs OSBAQCBleHRlcm4gUEdETExJTVBPUlQgaW50IGV4dHJhX2Zsb2F0X2RpZ2l0czsKIC8qCiAgKiBV dGlsaXR5IGZ1bmN0aW9ucyBpbiBmbG9hdC5jCiAgKi8KLXBnX25vcmV0dXJuIGV4dGVybiB2b2lk IGZsb2F0X292ZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxv YXRfdW5kZXJmbG93X2Vycm9yKHZvaWQpOwotcGdfbm9yZXR1cm4gZXh0ZXJuIHZvaWQgZmxvYXRf emVyb19kaXZpZGVfZXJyb3Iodm9pZCk7CitleHRlcm4gdm9pZCBmbG9hdF9vdmVyZmxvd19lcnJv cihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3VuZGVyZmxvd19l cnJvcihzdHJ1Y3QgTm9kZSAqZXNjb250ZXh0KTsKK2V4dGVybiB2b2lkIGZsb2F0X3plcm9fZGl2 aWRlX2Vycm9yKHN0cnVjdCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIGludAlpc19pbmZpbml0 ZShmbG9hdDggdmFsKTsKIGV4dGVybiBmbG9hdDggZmxvYXQ4aW5faW50ZXJuYWwoY2hhciAqbnVt LCBjaGFyICoqZW5kcHRyX3AsCiAJCQkJCQkJCWNvbnN0IGNoYXIgKnR5cGVfbmFtZSwgY29uc3Qg Y2hhciAqb3JpZ19zdHJpbmcsCkBAIC0xMDQsNyArMTA0LDcgQEAgZmxvYXQ0X3BsKGNvbnN0IGZs b2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKyB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMTYsNyArMTE2LDcgQEAgZmxvYXQ4X3Bs KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEg KyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYg IWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxv d19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xMjgsNyArMTI4LDcgQEAg ZmxvYXQ0X21pKGNvbnN0IGZsb2F0NCB2YWwxLCBjb25zdCBmbG9hdDQgdmFsMikKIAogCXJlc3Vs dCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYo dmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9h dF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBAIC0xNDAsNyAr MTQwLDcgQEAgZmxvYXQ4X21pKGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikK IAogCXJlc3VsdCA9IHZhbDEgLSB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAm JiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigp OworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xNTIsOSArMTUyLDkgQEAgZmxvYXQ0X211bChjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxv YXQ0IHZhbDIpCiAKIAlyZXN1bHQgPSB2YWwxICogdmFsMjsKIAlpZiAodW5saWtlbHkoaXNpbmYo cmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfb3ZlcmZs b3dfZXJyb3IoKTsKKwkJZmxvYXRfb3ZlcmZsb3dfZXJyb3IoTlVMTCk7CiAJaWYgKHVubGlrZWx5 KHJlc3VsdCA9PSAwLjBmKSAmJiB2YWwxICE9IDAuMGYgJiYgdmFsMiAhPSAwLjBmKQotCQlmbG9h dF91bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJ cmV0dXJuIHJlc3VsdDsKIH0KQEAgLTE2Niw5ICsxNjYsOSBAQCBmbG9hdDhfbXVsKGNvbnN0IGZs b2F0OCB2YWwxLCBjb25zdCBmbG9hdDggdmFsMikKIAogCXJlc3VsdCA9IHZhbDEgKiB2YWwyOwog CWlmICh1bmxpa2VseShpc2luZihyZXN1bHQpKSAmJiAhaXNpbmYodmFsMSkgJiYgIWlzaW5mKHZh bDIpKQotCQlmbG9hdF9vdmVyZmxvd19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihO VUxMKTsKIAlpZiAodW5saWtlbHkocmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgdmFs MiAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJvcigpOworCQlmbG9hdF91bmRlcmZsb3df ZXJyb3IoTlVMTCk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpAQCAtMTc5LDEyICsxNzksMTIgQEAg ZmxvYXQ0X2Rpdihjb25zdCBmbG9hdDQgdmFsMSwgY29uc3QgZmxvYXQ0IHZhbDIpCiAJZmxvYXQ0 CQlyZXN1bHQ7CiAKIAlpZiAodW5saWtlbHkodmFsMiA9PSAwLjBmKSAmJiAhaXNuYW4odmFsMSkp Ci0JCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9yKCk7CisJCWZsb2F0X3plcm9fZGl2aWRlX2Vycm9y KE5VTEwpOwogCXJlc3VsdCA9IHZhbDEgLyB2YWwyOwogCWlmICh1bmxpa2VseShpc2luZihyZXN1 bHQpKSAmJiAhaXNpbmYodmFsMSkpCi0JCWZsb2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWZsb2F0 X292ZXJmbG93X2Vycm9yKE5VTEwpOwogCWlmICh1bmxpa2VseShyZXN1bHQgPT0gMC4wZikgJiYg dmFsMSAhPSAwLjBmICYmICFpc2luZih2YWwyKSkKLQkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKCk7 CisJCWZsb2F0X3VuZGVyZmxvd19lcnJvcihOVUxMKTsKIAogCXJldHVybiByZXN1bHQ7CiB9CkBA IC0xOTUsMTIgKzE5NSwxMiBAQCBmbG9hdDhfZGl2KGNvbnN0IGZsb2F0OCB2YWwxLCBjb25zdCBm bG9hdDggdmFsMikKIAlmbG9hdDgJCXJlc3VsdDsKIAogCWlmICh1bmxpa2VseSh2YWwyID09IDAu MCkgJiYgIWlzbmFuKHZhbDEpKQotCQlmbG9hdF96ZXJvX2RpdmlkZV9lcnJvcigpOworCQlmbG9h dF96ZXJvX2RpdmlkZV9lcnJvcihOVUxMKTsKIAlyZXN1bHQgPSB2YWwxIC8gdmFsMjsKIAlpZiAo dW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKHZhbDEpKQotCQlmbG9hdF9vdmVyZmxv d19lcnJvcigpOworCQlmbG9hdF9vdmVyZmxvd19lcnJvcihOVUxMKTsKIAlpZiAodW5saWtlbHko cmVzdWx0ID09IDAuMCkgJiYgdmFsMSAhPSAwLjAgJiYgIWlzaW5mKHZhbDIpKQotCQlmbG9hdF91 bmRlcmZsb3dfZXJyb3IoKTsKKwkJZmxvYXRfdW5kZXJmbG93X2Vycm9yKE5VTEwpOwogCiAJcmV0 dXJuIHJlc3VsdDsKIH0KLS0gCjIuMzQuMQoK --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0017-error-safe-for-casting-jsonb-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnednz6 RnJvbSA5OGIzMjllMTFmYWU1YzIxMGM4MGJmZDU5OWZhOWRkMTA1NDE0M2UxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTQ6MjY6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAxNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBqc29uYiB0byBvdGhlciB0eXBlcyBwZXIK 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 MjhlN2Y4MGQ3N2YuLmFiY2Q1YmFhN2MwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvanNvbmIuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYwpAQCAtMTgxOCw3 ICsxODE4LDcgQEAgSnNvbmJFeHRyYWN0U2NhbGFyKEpzb25iQ29udGFpbmVyICpqYmMsIEpzb25i VmFsdWUgKnJlcykKICAqIEVtaXQgY29ycmVjdCwgdHJhbnNsYXRhYmxlIGNhc3QgZXJyb3IgbWVz c2FnZQogICovCiBzdGF0aWMgdm9pZAotY2Fubm90Q2FzdEpzb25iVmFsdWUoZW51bSBqYnZUeXBl IHR5cGUsIGNvbnN0IGNoYXIgKnNxbHR5cGUpCitjYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpi dlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSwgTm9kZSAqZXNjb250ZXh0KQogewogCXN0 YXRpYyBjb25zdCBzdHJ1Y3QKIAl7CkBAIC0xODM5LDcgKzE4MzksNyBAQCBjYW5ub3RDYXN0SnNv bmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3QgY2hhciAqc3FsdHlwZSkKIAogCWZvciAo aSA9IDA7IGkgPCBsZW5ndGhvZihtZXNzYWdlcyk7IGkrKykKIAkJaWYgKG1lc3NhZ2VzW2ldLnR5 cGUgPT0gdHlwZSkKLQkJCWVyZXBvcnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwsCiAJ CQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJCQkgZXJy bXNnKG1lc3NhZ2VzW2ldLm1zZywgc3FsdHlwZSkpKTsKIApAQCAtMTg1NCw3ICsxODU0LDEwIEBA IGpzb25iX2Jvb2woUEdfRlVOQ1RJT05fQVJHUykKIAlKc29uYlZhbHVlCXY7CiAKIAlpZiAoIUpz b25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUo di50eXBlLCAiYm9vbGVhbiIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi Ym9vbGVhbiIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJ aWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE4NjMsNyArMTg2NiwxMCBAQCBqc29uYl9i b29sKFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYgKHYudHlwZSAhPSBqYnZCb29sKQotCQlj YW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIik7CisJeworCQljYW5ub3RDYXN0 SnNvbmJWYWx1ZSh2LnR5cGUsICJib29sZWFuIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVU VVJOX05VTEwoKTsKKwl9CiAKIAlQR19GUkVFX0lGX0NPUFkoaW4sIDApOwogCkBAIC0xODc4LDcg KzE4ODQsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCU51bWVyaWMJCXJl dFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290LCAmdikpCi0JCWNh bm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiKTsKKwl7CisJCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgIm51bWVyaWMiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRV Uk5fTlVMTCgpOworCX0KIAogCWlmICh2LnR5cGUgPT0gamJ2TnVsbCkKIAl7CkBAIC0xODg3LDcg KzE4OTYsMTAgQEAganNvbmJfbnVtZXJpYyhQR19GVU5DVElPTl9BUkdTKQogCX0KIAogCWlmICh2 LnR5cGUgIT0gamJ2TnVtZXJpYykKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVt ZXJpYyIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAibnVtZXJpYyIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJLyoKIAkgKiB2LnZh bC5udW1lcmljIHBvaW50cyBpbnRvIGpzb25iIGJvZHksIHNvIHdlIG5lZWQgdG8gbWFrZSBhIGNv cHkgdG8KQEAgLTE5MDgsNyArMTkyMCwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1Mp CiAJRGF0dW0JCXJldFZhbHVlOwogCiAJaWYgKCFKc29uYkV4dHJhY3RTY2FsYXIoJmluLT5yb290 LCAmdikpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgInNtYWxsaW50Iik7CisJewor CQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJzbWFsbGludCIsIGZjaW5mby0+Y29udGV4 dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQog CXsKQEAgLTE5MTcsNyArMTkzMiwxMCBAQCBqc29uYl9pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJ fQogCiAJaWYgKHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2 LnR5cGUsICJzbWFsbGludCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi c21hbGxpbnQiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAog CXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDIsCiAJCQkJCQkJCSAg IE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7CkBAIC0xOTM1LDcgKzE5NTMsMTAgQEAg anNvbmJfaW50NChQR19GVU5DVElPTl9BUkdTKQogCURhdHVtCQlyZXRWYWx1ZTsKIAogCWlmICgh SnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYpKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1 ZSh2LnR5cGUsICJpbnRlZ2VyIik7CisJeworCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUs ICJpbnRlZ2VyIiwgZmNpbmZvLT5jb250ZXh0KTsKKwkJUEdfUkVUVVJOX05VTEwoKTsKKwl9CiAK IAlpZiAodi50eXBlID09IGpidk51bGwpCiAJewpAQCAtMTk0NCw3ICsxOTY1LDEwIEBAIGpzb25i X2ludDQoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMp Ci0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImludGVnZXIiLCBmY2luZm8tPmNvbnRleHQpOworCQlQ R19SRVRVUk5fTlVMTCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShu dW1lcmljX2ludDQsCiAJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2LnZhbC5udW1lcmljKSk7 CkBAIC0xOTYyLDcgKzE5ODYsMTAgQEAganNvbmJfaW50OChQR19GVU5DVElPTl9BUkdTKQogCURh dHVtCQlyZXRWYWx1ZTsKIAogCWlmICghSnNvbmJFeHRyYWN0U2NhbGFyKCZpbi0+cm9vdCwgJnYp KQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJiaWdpbnQiKTsKKwl7CisJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZjaW5mby0+Y29udGV4dCk7CisJCVBH X1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAgLTE5 NzEsNyArMTk5OCwxMCBAQCBqc29uYl9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAJfQogCiAJaWYg KHYudHlwZSAhPSBqYnZOdW1lcmljKQotCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LnR5cGUsICJi aWdpbnQiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlwZSwgImJpZ2ludCIsIGZj aW5mby0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJcmV0VmFsdWUgPSBE aXJlY3RGdW5jdGlvbkNhbGwxKG51bWVyaWNfaW50OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERh dHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTE5ODksNyArMjAxOSwxMCBAQCBqc29uYl9mbG9hdDQo UEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAKIAlpZiAoIUpzb25iRXh0cmFj dFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAi cmVhbCIpOworCXsKKwkJY2Fubm90Q2FzdEpzb25iVmFsdWUodi50eXBlLCAicmVhbCIsIGZjaW5m by0+Y29udGV4dCk7CisJCVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBq YnZOdWxsKQogCXsKQEAgLTE5OTgsNyArMjAzMSwxMCBAQCBqc29uYl9mbG9hdDQoUEdfRlVOQ1RJ T05fQVJHUykKIAl9CiAKIAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RK c29uYlZhbHVlKHYudHlwZSwgInJlYWwiKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYu dHlwZSwgInJlYWwiLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0K IAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0NCwKIAkJCQkJ CQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKQEAgLTIwMTYsNyArMjA1Miwx MCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAlEYXR1bQkJcmV0VmFsdWU7CiAK IAlpZiAoIUpzb25iRXh0cmFjdFNjYWxhcigmaW4tPnJvb3QsICZ2KSkKLQkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIpOworCXsKKwkJY2Fubm90Q2FzdEpz b25iVmFsdWUodi50eXBlLCAiZG91YmxlIHByZWNpc2lvbiIsIGZjaW5mby0+Y29udGV4dCk7CisJ CVBHX1JFVFVSTl9OVUxMKCk7CisJfQogCiAJaWYgKHYudHlwZSA9PSBqYnZOdWxsKQogCXsKQEAg LTIwMjUsNyArMjA2NCwxMCBAQCBqc29uYl9mbG9hdDgoUEdfRlVOQ1RJT05fQVJHUykKIAl9CiAK IAlpZiAodi50eXBlICE9IGpidk51bWVyaWMpCi0JCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwl7CisJCWNhbm5vdENhc3RKc29uYlZhbHVlKHYudHlw ZSwgImRvdWJsZSBwcmVjaXNpb24iLCBmY2luZm8tPmNvbnRleHQpOworCQlQR19SRVRVUk5fTlVM TCgpOworCX0KIAogCXJldFZhbHVlID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0 OCwKIAkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVtKHYudmFsLm51bWVyaWMpKTsKLS0gCjIuMzQu MQoK --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0016-error-safe-for-casting-timestamp-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedo47 RnJvbSBhNDRkNGIyMWMwYjg0MDYwZTk1M2FkOTg4OGJiZGU5YmI0NDMxYzVjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjoxNDozNiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE4 IDE2LzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKICAgICAgIGNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywg cHAucHJvbmFtZQpmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBj LmNhc3RmdW5jCmFuZCBwYy5jYXN0ZnVuYyA+IDAgYW5kIChjYXN0c291cmNlOjpyZWd0eXBlID0n dGltZXN0YW1wJzo6cmVndHlwZSkKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiAgICAg ICAgIGNhc3Rzb3VyY2UgICAgICAgICAgfCAgICAgICAgIGNhc3R0YXJnZXQgICAgICAgICAgfCBj YXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgICAgICBwcm9zcmMgICAgICAg ICB8ICAgcHJvbmFtZQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIHRpbWVzdGFtcCB3aXRob3V0IHRp bWUgem9uZSB8IGRhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAyMDI5IHwgYSAgICAg ICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wX2RhdGUgICAgICAgIHwgZGF0ZQogdGltZXN0 YW1wIHdpdGhvdXQgdGltZSB6b25lIHwgdGltZSB3aXRob3V0IHRpbWUgem9uZSAgICAgIHwgICAg IDEzMTYgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXBfdGltZSAgICAgICAg fCB0aW1lCiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCB0aW1lc3RhbXAgd2l0aCB0aW1l IHpvbmUgICAgfCAgICAgMjAyOCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRpbWVzdGFt cF90aW1lc3RhbXB0eiB8IHRpbWVzdGFtcHR6CiB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUg fCB0aW1lc3RhbXAgd2l0aG91dCB0aW1lIHpvbmUgfCAgICAgMTk2MSB8IGkgICAgICAgICAgIHwg ZiAgICAgICAgICB8IHRpbWVzdGFtcF9zY2FsZSAgICAgICB8IHRpbWVzdGFtcAooNCByb3dzKQoK ZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJq UWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2Vu ZC91dGlscy9hZHQvZGF0ZS5jICAgICAgfCAgNyArKysrKy0tCiBzcmMvYmFja2VuZC91dGlscy9h ZHQvdGltZXN0YW1wLmMgfCAxMCArKysrKysrKy0tCiAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2Vy dGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMv YWR0L2RhdGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKaW5kZXggYmU1Mjc3N2Q4 OGQuLmEwNTc0NzEwOTlkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKQEAgLTEzMzAsNyArMTMzMCwxMCBA QCB0aW1lc3RhbXBfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcAl0aW1lc3RhbXAg PSBQR19HRVRBUkdfVElNRVNUQU1QKDApOwogCURhdGVBRFQJCXJlc3VsdDsKIAotCXJlc3VsdCA9 IHRpbWVzdGFtcDJkYXRlX3NhZmUodGltZXN0YW1wLCBOVUxMKTsKKwlyZXN1bHQgPSB0aW1lc3Rh bXAyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9FUlJP Ul9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOworCiAJUEdf UkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAwOCw3ICsyMDExLDcgQEAgdGltZXN0 YW1wX3RpbWUoUEdfRlVOQ1RJT05fQVJHUykKIAkJUEdfUkVUVVJOX05VTEwoKTsKIAogCWlmICh0 aW1lc3RhbXAydG0odGltZXN0YW1wLCBOVUxMLCB0bSwgJmZzZWMsIE5VTEwsIE5VTEwpICE9IDAp Ci0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAs CiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJ CSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdGlt ZXN0YW1wLmMKaW5kZXggMzYyM2RjYWIzYmYuLjdlZDg4MjYwYjVkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3RpbWVzdGFtcC5jCkBAIC0zNTIsNyArMzUyLDggQEAgdGltZXN0YW1wX3NjYWxlKFBHX0ZVTkNU SU9OX0FSR1MpCiAKIAlyZXN1bHQgPSB0aW1lc3RhbXA7CiAKLQlBZGp1c3RUaW1lc3RhbXBGb3JU eXBtb2QoJnJlc3VsdCwgdHlwbW9kLCBOVUxMKTsKKwlpZiAoIUFkanVzdFRpbWVzdGFtcEZvclR5 cG1vZCgmcmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxM KCk7CiAKIAlQR19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC02NDMyLDggKzY0MzMs MTMgQEAgRGF0dW0KIHRpbWVzdGFtcF90aW1lc3RhbXB0eihQR19GVU5DVElPTl9BUkdTKQogewog CVRpbWVzdGFtcAl0aW1lc3RhbXAgPSBQR19HRVRBUkdfVElNRVNUQU1QKDApOworCVRpbWVzdGFt cFR6IHJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1FU1RBTVBUWih0aW1lc3RhbXAydGltZXN0YW1w dHoodGltZXN0YW1wKSk7CisJcmVzdWx0ID0gdGltZXN0YW1wMnRpbWVzdGFtcHR6X3NhZmUodGlt ZXN0YW1wLCBmY2luZm8tPmNvbnRleHQpOworCWlmIChTT0ZUX0VSUk9SX09DQ1VSUkVEKGZjaW5m by0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fVElNRVNUQU1Q VFoocmVzdWx0KTsKIH0KIAogLyoKLS0gCjIuMzQuMQoK --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0014-error-safe-for-casting-interval-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedob9 RnJvbSA1OGRlOTNjODc4NDM2ZWU4ZmJhZmYyN2NlZjMwMDk0NzRlYTNhNzBmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MDU6MjYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAxNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlcnZhbCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywKY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lIGZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24KcHAub2lkID0gcGMuY2FzdGZ1 bmMgYW5kIHBjLmNhc3RmdW5jID4gMAphbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9ICdpbnRlcnZh bCc6OnJlZ3R5cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCiBjYXN0c291cmNlIHwg ICAgICAgY2FzdHRhcmdldCAgICAgICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0 aG9kIHwgICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KIGludGVydmFsICAgfCB0aW1lIHdpdGhvdXQgdGltZSB6b25l IHwgICAgIDE0MTkgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF90aW1lICB8 IHRpbWUKIGludGVydmFsICAgfCBpbnRlcnZhbCAgICAgICAgICAgICAgIHwgICAgIDEyMDAgfCBp ICAgICAgICAgICB8IGYgICAgICAgICAgfCBpbnRlcnZhbF9zY2FsZSB8IGludGVydmFsCigyIHJv d3MpCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpj d3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9i YWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMgICAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0aWxzL2Fk dC90aW1lc3RhbXAuYyB8IDMgKystCiAyIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwppbmRleCBlOGRjOGQyNzZiZi4uYmM0YzY3 Nzc1ZGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMKKysrIGIvc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYwpAQCAtMjEwNiw3ICsyMTA2LDcgQEAgaW50ZXJ2YWxf dGltZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVBRFQJCXJlc3VsdDsKIAogCWlmIChJTlRFUlZB TF9OT1RfRklOSVRFKHNwYW4pKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+ Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVf T1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJjYW5ub3QgY29udmVydCBpbmZpbml0ZSBpbnRl cnZhbCB0byB0aW1lIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rp bWVzdGFtcC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCmluZGV4IDhkZWIy MzY5NDcxLi42MmE3ZDIyMzBkMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Rp bWVzdGFtcC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC90aW1lc3RhbXAuYwpAQCAtMTMz NCw3ICsxMzM0LDggQEAgaW50ZXJ2YWxfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAlyZXN1bHQg PSBwYWxsb2Nfb2JqZWN0KEludGVydmFsKTsKIAkqcmVzdWx0ID0gKmludGVydmFsOwogCi0JQWRq dXN0SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlmICghQWRqdXN0 SW50ZXJ2YWxGb3JUeXBtb2QocmVzdWx0LCB0eXBtb2QsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fSU5URVJWQUxfUChyZXN1bHQpOwogfQotLSAK Mi4zNC4xCgo= --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0015-error-safe-for-casting-timestamptz-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedo78 RnJvbSAyMzlmMGQ0MTBjZGVkNDFmYWFjMzYxMjc3NjM5NDhjMDhjODc2ZGYyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMjowNDo0MCArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE4 IDE1LzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIHRpbWVzdGFtcHR6IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSd0aW1lc3RhbXB0eic6OnJlZ3R5cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7Cgog ICAgICAgIGNhc3Rzb3VyY2UgICAgICAgIHwgICAgICAgICBjYXN0dGFyZ2V0ICAgICAgICAgIHwg Y2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgICAgcHJvc3JjICAgICAg ICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpv bmUgfCBkYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgMTE3OCB8IGEgICAgICAgICAg IHwgZiAgICAgICAgICB8IHRpbWVzdGFtcHR6X2RhdGUgICAgICB8IGRhdGUKIHRpbWVzdGFtcCB3 aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aG91dCB0aW1lIHpvbmUgICAgICB8ICAgICAyMDE5IHwg YSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGltZXN0YW1wdHpfdGltZSAgICAgIHwgdGltZQog dGltZXN0YW1wIHdpdGggdGltZSB6b25lIHwgdGltZXN0YW1wIHdpdGhvdXQgdGltZSB6b25lIHwg ICAgIDIwMjcgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCB0aW1lc3RhbXB0el90aW1lc3Rh bXAgfCB0aW1lc3RhbXAKIHRpbWVzdGFtcCB3aXRoIHRpbWUgem9uZSB8IHRpbWUgd2l0aCB0aW1l IHpvbmUgICAgICAgICB8ICAgICAxMzg4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGlt ZXN0YW1wdHpfdGltZXR6ICAgIHwgdGltZXR6CiB0aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgfCB0 aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmUgICAgfCAgICAgMTk2NyB8IGkgICAgICAgICAgIHwgZiAg ICAgICAgICB8IHRpbWVzdGFtcHR6X3NjYWxlICAgICB8IHRpbWVzdGFtcHR6Cig1IHJvd3MpCgpk aXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpR aXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5k L3V0aWxzL2FkdC9kYXRlLmMgICAgICB8ICA5ICsrKysrKy0tLQogc3JjL2JhY2tlbmQvdXRpbHMv YWR0L3RpbWVzdGFtcC5jIHwgMTAgKysrKysrKystLQogMiBmaWxlcyBjaGFuZ2VkLCAxNCBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxz L2FkdC9kYXRlLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IGJjNGM2Nzc3 NWRkLi5iZTUyNzc3ZDg4ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC0xNDA2LDcgKzE0MDYsMTAg QEAgdGltZXN0YW1wdHpfZGF0ZShQR19GVU5DVElPTl9BUkdTKQogCVRpbWVzdGFtcFR6IHRpbWVz dGFtcCA9IFBHX0dFVEFSR19USU1FU1RBTVAoMCk7CiAJRGF0ZUFEVAkJcmVzdWx0OwogCi0JcmVz dWx0ID0gdGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgTlVMTCk7CisJcmVzdWx0ID0g dGltZXN0YW1wdHoyZGF0ZV9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmFyZ3MpKQorCQlQR19SRVRVUk5fTlVMTCgpOwor CiAJUEdfUkVUVVJOX0RBVEVBRFQocmVzdWx0KTsKIH0KIApAQCAtMjAzNiw3ICsyMDM5LDcgQEAg dGltZXN0YW1wdHpfdGltZShQR19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fTlVMTCgpOwog CiAJaWYgKHRpbWVzdGFtcDJ0bSh0aW1lc3RhbXAsICZ0eiwgdG0sICZmc2VjLCBOVUxMLCBOVUxM KSAhPSAwKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfREFURVRJTUVfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQkgZXJybXNnKCJ0aW1lc3RhbXAgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtMjk1NSw3 ICsyOTU4LDcgQEAgdGltZXN0YW1wdHpfdGltZXR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JF VFVSTl9OVUxMKCk7CiAKIAlpZiAodGltZXN0YW1wMnRtKHRpbWVzdGFtcCwgJnR6LCB0bSwgJmZz ZWMsIE5VTEwsIE5VTEwpICE9IDApCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZv LT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9EQVRFVElNRV9WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInRpbWVzdGFtcCBvdXQgb2YgcmFuZ2UiKSkp OwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKaW5kZXggNjJhN2QyMjMwZDEuLjM2MjNkY2Fi M2JmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdGltZXN0YW1wLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3RpbWVzdGFtcC5jCkBAIC04NzUsNyArODc1LDggQEAgdGlt ZXN0YW1wdHpfc2NhbGUoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IHRpbWVzdGFtcDsK IAotCUFkanVzdFRpbWVzdGFtcEZvclR5cG1vZCgmcmVzdWx0LCB0eXBtb2QsIE5VTEwpOworCWlm ICghQWRqdXN0VGltZXN0YW1wRm9yVHlwbW9kKCZyZXN1bHQsIHR5cG1vZCwgZmNpbmZvLT5jb250 ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVBUWihyZXN1 bHQpOwogfQpAQCAtNjQ5NCw4ICs2NDk1LDEzIEBAIERhdHVtCiB0aW1lc3RhbXB0el90aW1lc3Rh bXAoUEdfRlVOQ1RJT05fQVJHUykKIHsKIAlUaW1lc3RhbXBUeiB0aW1lc3RhbXAgPSBQR19HRVRB UkdfVElNRVNUQU1QVFooMCk7CisJVGltZXN0YW1wCXJlc3VsdDsKIAotCVBHX1JFVFVSTl9USU1F U1RBTVAodGltZXN0YW1wdHoydGltZXN0YW1wKHRpbWVzdGFtcCkpOworCXJlc3VsdCA9IHRpbWVz dGFtcHR6MnRpbWVzdGFtcF9zYWZlKHRpbWVzdGFtcCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAo dW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVU VVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9USU1FU1RBTVAocmVzdWx0KTsKIH0KIAogLyoKLS0g CjIuMzQuMQoK --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0013-error-safe-for-casting-date-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedof10 RnJvbSAxNDY4ZGE2ZGEzYjQ1YjJjMzAwZTE4YTNmMTQ2MDQ4N2FlYzYyYzNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgMiBEZWMgMjAyNSAxMzoxNTozMiArMDgwMApTdWJqZWN0OiBbUEFUQ0ggdjE4 IDEzLzIzXSBlcnJvciBzYWZlIGZvciBjYXN0aW5nIGRhdGUgdG8gb3RoZXIgdHlwZXMgcGVyCiBw Z19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlwZSwg Y2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFtZSBm cm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5jIGFu ZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZGF0ZSc6OnJlZ3R5 cGUKb3JkZXIgYnkgY2FzdHNvdXJjZTo6cmVndHlwZTsKCmNhc3Rzb3VyY2UgfCAgICAgICAgIGNh c3R0YXJnZXQgICAgICAgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8 ICAgICAgcHJvc3JjICAgICAgfCAgIHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0 aG91dCB0aW1lIHpvbmUgfCAgICAgMjAyNCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRh dGVfdGltZXN0YW1wICAgfCB0aW1lc3RhbXAKIGRhdGUgICAgICAgfCB0aW1lc3RhbXAgd2l0aCB0 aW1lIHpvbmUgICAgfCAgICAgMTE3NCB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGRhdGVf dGltZXN0YW1wdHogfCB0aW1lc3RhbXB0egooMiByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9w b3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2 aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jIHwg MTcgKysrKysrLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDEx IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9kYXRlLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCmluZGV4IDYyMWI5MTc1YzEyLi5lOGRjOGQy NzZiZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2RhdGUuYworKysgYi9zcmMv YmFja2VuZC91dGlscy9hZHQvZGF0ZS5jCkBAIC03MzAsMTUgKzczMCw2IEBAIGRhdGUydGltZXN0 YW1wdHpfc2FmZShEYXRlQURUIGRhdGVWYWwsIE5vZGUgKmVzY29udGV4dCkKIAlyZXR1cm4gcmVz dWx0OwogfQogCi0vKgotICogUHJvbW90ZSBkYXRlIHRvIHRpbWVzdGFtcHR6LCB0aHJvd2luZyBl cnJvciBmb3Igb3ZlcmZsb3cuCi0gKi8KLXN0YXRpYyBUaW1lc3RhbXBUegotZGF0ZTJ0aW1lc3Rh bXB0eihEYXRlQURUIGRhdGVWYWwpCi17Ci0JcmV0dXJuIGRhdGUydGltZXN0YW1wdHpfc2FmZShk YXRlVmFsLCBOVUxMKTsKLX0KLQogLyoKICAqIGRhdGUydGltZXN0YW1wX25vX292ZXJmbG93CiAg KgpAQCAtMTMyMyw3ICsxMzE0LDkgQEAgZGF0ZV90aW1lc3RhbXAoUEdfRlVOQ1RJT05fQVJHUykK IAlEYXRlQURUCQlkYXRlVmFsID0gUEdfR0VUQVJHX0RBVEVBRFQoMCk7CiAJVGltZXN0YW1wCXJl c3VsdDsKIAotCXJlc3VsdCA9IGRhdGUydGltZXN0YW1wKGRhdGVWYWwpOworCXJlc3VsdCA9IGRh dGUydGltZXN0YW1wX3NhZmUoZGF0ZVZhbCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZihTT0ZUX0VS Uk9SX09DQ1VSUkVEKGZjaW5mby0+Y29udGV4dCkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQ R19SRVRVUk5fVElNRVNUQU1QKHJlc3VsdCk7CiB9CkBAIC0xMzk2LDcgKzEzODksOSBAQCBkYXRl X3RpbWVzdGFtcHR6KFBHX0ZVTkNUSU9OX0FSR1MpCiAJRGF0ZUFEVAkJZGF0ZVZhbCA9IFBHX0dF VEFSR19EQVRFQURUKDApOwogCVRpbWVzdGFtcFR6IHJlc3VsdDsKIAotCXJlc3VsdCA9IGRhdGUy dGltZXN0YW1wdHooZGF0ZVZhbCk7CisJcmVzdWx0ID0gZGF0ZTJ0aW1lc3RhbXB0el9zYWZlKGRh dGVWYWwsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKIAogCVBHX1JFVFVSTl9USU1FU1RBTVAo cmVzdWx0KTsKIH0KLS0gCjIuMzQuMQoK --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0011-error-safe-for-casting-float4-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedoo12 RnJvbSBlZTVhNzk5NTM1NzNiNTJjMGUxZjBjYjdjYWI0ZTFjYjBlNmFhYWY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6Mjg6MjAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAxMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDQgdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ0Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCAgICBj YXN0dGFyZ2V0ICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiByZWFsICAgICAgIHwgYmlnaW50ICAgICAgICAgICB8ICAgICAgNjUzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZnRvaTggICAgICAgICAgfCBpbnQ4CiByZWFsICAgICAgIHwgc21h bGxpbnQgICAgICAgICB8ICAgICAgMjM4IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRv aTIgICAgICAgICAgfCBpbnQyCiByZWFsICAgICAgIHwgaW50ZWdlciAgICAgICAgICB8ICAgICAg MzE5IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZnRvaTQgICAgICAgICAgfCBpbnQ0CiBy ZWFsICAgICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzExIHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZnRvZCAgICAgICAgICAgfCBmbG9hdDgKIHJlYWwgICAgICAgfCBudW1lcmlj ICAgICAgICAgIHwgICAgIDE3NDIgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDRf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDQgKyst LQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYyAgICB8IDIgKy0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC9udW1lcmljLmMgfCAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCA1IGluc2VydGlvbnMo KyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zs b2F0LmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwppbmRleCBiNWE3YzU3ZTUzYS4u NTg1ODBiNWYzY2MgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCisr KyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9mbG9hdC5jCkBAIC0xMjk4LDcgKzEyOTgsNyBAQCBm dG9pNChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtl bHkoaXNuYW4obnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMzIobnVtKSkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiaW50 ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMzIzLDcgKzEzMjMsNyBAQCBmdG9pMihQR19G VU5DVElPTl9BUkdTKQogCiAJLyogUmFuZ2UgY2hlY2sgKi8KIAlpZiAodW5saWtlbHkoaXNuYW4o bnVtKSB8fCAhRkxPQVQ0X0ZJVFNfSU5fSU5UMTYobnVtKSkpCi0JCWVyZXBvcnQoRVJST1IsCisJ CWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21hbGxpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggODZlYzFmODQxYTUuLmU5OTgx NDYxMWVlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEzNDIsNyArMTM0Miw3IEBAIGZ0b2k4KFBH X0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25h bihudW0pIHx8ICFGTE9BVDRfRklUU19JTl9JTlQ2NChudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwK KwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJD T0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJiaWdpbnQgb3V0 IG9mIHJhbmdlIikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251bWVy aWMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKaW5kZXggNjVhZjI2ODQ3M2Mu LjhlYjkzNDZiZGU0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKQEAgLTQ2NTcsNyArNDY1Nyw4 IEBAIGZsb2F0NF9udW1lcmljKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5pdF92YXIoJnJlc3VsdCk7 CiAKIAkvKiBBc3N1bWUgd2UgbmVlZCBub3Qgd29ycnkgYWJvdXQgbGVhZGluZy90cmFpbGluZyBz cGFjZXMgKi8KLQkodm9pZCkgc2V0X3Zhcl9mcm9tX3N0cihidWYsIGJ1ZiwgJnJlc3VsdCwgJmVu ZHB0ciwgTlVMTCk7CisJaWYgKCFzZXRfdmFyX2Zyb21fc3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAm ZW5kcHRyLCBmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJcmVzID0g bWFrZV9yZXN1bHQoJnJlc3VsdCk7CiAKLS0gCjIuMzQuMQoK --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0012-error-safe-for-casting-float8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedol11 RnJvbSA0ZWYyOWIwYTkxMGY0YWNhNGY4NWJmMWY4OGRmZTZkMDU0YjYzZDc3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MzE6NTMgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAxMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBmbG9hdDggdG8gb3RoZXIgdHlwZXMgcGVy CiBwZ19jYXN0CgpzZWxlY3QgY2FzdHNvdXJjZTo6cmVndHlwZSwgY2FzdHRhcmdldDo6cmVndHlw ZSwgY2FzdGZ1bmMsCmNhc3Rjb250ZXh0LGNhc3RtZXRob2QsIHBwLnByb3NyYywgcHAucHJvbmFt ZSBmcm9tIHBnX2Nhc3QgcGMgam9pbiBwZ19wcm9jIHBwIG9uCnBwLm9pZCA9IHBjLmNhc3RmdW5j IGFuZCBwYy5jYXN0ZnVuYyA+IDAKYW5kIGNhc3Rzb3VyY2U6OnJlZ3R5cGUgPSAnZmxvYXQ4Jzo6 cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAg fCBjYXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAg cHJvc3JjICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tCiBkb3VibGUgcHJlY2lzaW9uIHwgYmlnaW50ICAgICB8ICAgICAgNDgzIHwgYSAgICAgICAg ICAgfCBmICAgICAgICAgIHwgZHRvaTggICAgICAgICAgfCBpbnQ4CiBkb3VibGUgcHJlY2lzaW9u IHwgc21hbGxpbnQgICB8ICAgICAgMjM3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRv aTIgICAgICAgICAgfCBpbnQyCiBkb3VibGUgcHJlY2lzaW9uIHwgaW50ZWdlciAgICB8ICAgICAg MzE3IHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgZHRvaTQgICAgICAgICAgfCBpbnQ0CiBk b3VibGUgcHJlY2lzaW9uIHwgcmVhbCAgICAgICB8ICAgICAgMzEyIHwgYSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgZHRvZiAgICAgICAgICAgfCBmbG9hdDQKIGRvdWJsZSBwcmVjaXNpb24gfCBu dW1lcmljICAgIHwgICAgIDE3NDMgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBmbG9hdDhf bnVtZXJpYyB8IG51bWVyaWMKKDUgcm93cykKCmRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThqWnUzVHpfcDY1NmlfNGhRQG1h aWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMgICB8IDEzICsr KysrKysrKy0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMgICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L251bWVyaWMuYyB8ICAzICsrLQogMyBmaWxlcyBjaGFuZ2VkLCAx MiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9mbG9hdC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2Zsb2F0LmMKaW5kZXgg NTg1ODBiNWYzY2MuLjUwMjM5OGQyOWVjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvZmxvYXQuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvZmxvYXQuYwpAQCAtMTE5OSw5 ICsxMTk5LDE0IEBAIGR0b2YoUEdfRlVOQ1RJT05fQVJHUykKIAogCXJlc3VsdCA9IChmbG9hdDQp IG51bTsKIAlpZiAodW5saWtlbHkoaXNpbmYocmVzdWx0KSkgJiYgIWlzaW5mKG51bSkpCi0JCWZs b2F0X292ZXJmbG93X2Vycm9yKCk7CisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCisJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKKwkJ CQllcnJtc2coInZhbHVlIG91dCBvZiByYW5nZTogb3ZlcmZsb3ciKSk7CisKIAlpZiAodW5saWtl bHkocmVzdWx0ID09IDAuMGYpICYmIG51bSAhPSAwLjApCi0JCWZsb2F0X3VuZGVyZmxvd19lcnJv cigpOworCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAorCQkJCWVycmNvZGUo RVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCisJCQkJZXJybXNnKCJ2YWx1ZSBv dXQgb2YgcmFuZ2U6IHVuZGVyZmxvdyIpKTsKIAogCVBHX1JFVFVSTl9GTE9BVDQocmVzdWx0KTsK IH0KQEAgLTEyMjQsNyArMTIyOSw3IEBAIGR0b2k0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBS YW5nZSBjaGVjayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19J Tl9JTlQzMihudW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRl eHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09G X1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7CiAKQEAgLTEy NDksNyArMTI1NCw3IEBAIGR0b2kyKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBSYW5nZSBjaGVj ayAqLwogCWlmICh1bmxpa2VseShpc25hbihudW0pIHx8ICFGTE9BVDhfRklUU19JTl9JTlQxNihu dW0pKSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1 bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwK IAkJCQkgZXJybXNnKCJzbWFsbGludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDgu YwppbmRleCBlOTk4MTQ2MTFlZS4uOGY2OTQ0OGYxOTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9pbnQ4LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2ludDguYwpAQCAt MTMwNyw3ICsxMzA3LDcgQEAgZHRvaTgoUEdfRlVOQ1RJT05fQVJHUykKIAogCS8qIFJhbmdlIGNo ZWNrICovCiAJaWYgKHVubGlrZWx5KGlzbmFuKG51bSkgfHwgIUZMT0FUOF9GSVRTX0lOX0lOVDY0 KG51bSkpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERh dHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0Up LAogCQkJCSBlcnJtc2coImJpZ2ludCBvdXQgb2YgcmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hZHQvbnVtZXJpYy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwppbmRleCA4ZWI5MzQ2YmRlNC4uOGY5N2VlMDc4ZTYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L251 bWVyaWMuYwpAQCAtNDU1OSw3ICs0NTU5LDggQEAgZmxvYXQ4X251bWVyaWMoUEdfRlVOQ1RJT05f QVJHUykKIAlpbml0X3ZhcigmcmVzdWx0KTsKIAogCS8qIEFzc3VtZSB3ZSBuZWVkIG5vdCB3b3Jy eSBhYm91dCBsZWFkaW5nL3RyYWlsaW5nIHNwYWNlcyAqLwotCSh2b2lkKSBzZXRfdmFyX2Zyb21f c3RyKGJ1ZiwgYnVmLCAmcmVzdWx0LCAmZW5kcHRyLCBOVUxMKTsKKwlpZiAoIXNldF92YXJfZnJv bV9zdHIoYnVmLCBidWYsICZyZXN1bHQsICZlbmRwdHIsIGZjaW5mby0+Y29udGV4dCkpCisJCVBH X1JFVFVSTl9OVUxMKCk7CiAKIAlyZXMgPSBtYWtlX3Jlc3VsdCgmcmVzdWx0KTsKIAotLSAKMi4z NC4xCgo= --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0010-error-safe-for-casting-numeric-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedor13 RnJvbSA3NzY5ODg5ZjY4Zjk5OGZmODFjMDZjNjdkMWE4OTE2OWYyNWY2MjYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjU6MzcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAxMC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBudW1lcmljIHRvIG90aGVyIHR5cGVzIHBl 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 L251bWVyaWMuYwppbmRleCA4OTFhZTZiYTdmZS4uNjVhZjI2ODQ3M2MgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9udW1lcmljLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L251bWVyaWMuYwpAQCAtMTI0NCw3ICsxMjQ0LDggQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FS R1MpCiAJICovCiAJaWYgKE5VTUVSSUNfSVNfU1BFQ0lBTChudW0pKQogCXsKLQkJKHZvaWQpIGFw cGx5X3R5cG1vZF9zcGVjaWFsKG51bSwgdHlwbW9kLCBOVUxMKTsKKwkJaWYgKCFhcHBseV90eXBt b2Rfc3BlY2lhbChudW0sIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJCVBHX1JFVFVSTl9O VUxMKCk7CiAJCVBHX1JFVFVSTl9OVU1FUklDKGR1cGxpY2F0ZV9udW1lcmljKG51bSkpOwogCX0K IApAQCAtMTI5NSw4ICsxMjk2LDkgQEAgbnVtZXJpYwkJKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaW5p dF92YXIoJnZhcik7CiAKIAlzZXRfdmFyX2Zyb21fbnVtKG51bSwgJnZhcik7Ci0JKHZvaWQpIGFw cGx5X3R5cG1vZCgmdmFyLCB0eXBtb2QsIE5VTEwpOwotCW5ldyA9IG1ha2VfcmVzdWx0KCZ2YXIp OworCWlmICghYXBwbHlfdHlwbW9kKCZ2YXIsIHR5cG1vZCwgZmNpbmZvLT5jb250ZXh0KSkKKwkJ UEdfUkVUVVJOX05VTEwoKTsKKwluZXcgPSBtYWtlX3Jlc3VsdF9zYWZlKCZ2YXIsIGZjaW5mby0+ Y29udGV4dCk7CiAKIAlmcmVlX3ZhcigmdmFyKTsKIApAQCAtMzAxOCw3ICszMDIwLDEwIEBAIG51 bWVyaWNfbXVsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJTnVtZXJpYwkJbnVtMiA9IFBHX0dFVEFSR19O VU1FUklDKDEpOwogCU51bWVyaWMJCXJlczsKIAotCXJlcyA9IG51bWVyaWNfbXVsX3NhZmUobnVt MSwgbnVtMiwgTlVMTCk7CisJcmVzID0gbnVtZXJpY19tdWxfc2FmZShudW0xLCBudW0yLCBmY2lu Zm8tPmNvbnRleHQpOworCisJaWYgKHVubGlrZWx5KFNPRlRfRVJST1JfT0NDVVJSRUQoZmNpbmZv LT5jb250ZXh0KSkpCisJCVBHX1JFVFVSTl9OVUxMKCk7CiAKIAlQR19SRVRVUk5fTlVNRVJJQyhy ZXMpOwogfQpAQCAtNDM5Miw5ICs0Mzk3LDE1IEBAIG51bWVyaWNfaW50NF9zYWZlKE51bWVyaWMg bnVtLCBOb2RlICplc2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ0KFBHX0ZVTkNUSU9OX0FS R1MpCiB7CisJaW50MzIJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJ QygwKTsKIAotCVBHX1JFVFVSTl9JTlQzMihudW1lcmljX2ludDRfc2FmZShudW0sIE5VTEwpKTsK KwlyZXN1bHQgPSBudW1lcmljX2ludDRfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlp ZiAodW5saWtlbHkoU09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdf UkVUVVJOX05VTEwoKTsKKworCVBHX1JFVFVSTl9JTlQzMihyZXN1bHQpOwogfQogCiAvKgpAQCAt NDQ2Miw5ICs0NDczLDE1IEBAIG51bWVyaWNfaW50OF9zYWZlKE51bWVyaWMgbnVtLCBOb2RlICpl c2NvbnRleHQpCiBEYXR1bQogbnVtZXJpY19pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiB7CisJaW50 NjQJCXJlc3VsdDsKIAlOdW1lcmljCQludW0gPSBQR19HRVRBUkdfTlVNRVJJQygwKTsKIAotCVBH X1JFVFVSTl9JTlQ2NChudW1lcmljX2ludDhfc2FmZShudW0sIE5VTEwpKTsKKwlyZXN1bHQgPSBu dW1lcmljX2ludDhfc2FmZShudW0sIGZjaW5mby0+Y29udGV4dCk7CisKKwlpZiAodW5saWtlbHko U09GVF9FUlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKSkKKwkJUEdfUkVUVVJOX05VTEwo KTsKKworCVBHX1JFVFVSTl9JTlQ2NChyZXN1bHQpOwogfQogCiAKQEAgLTQ0ODgsMTEgKzQ1MDUs MTEgQEAgbnVtZXJpY19pbnQyKFBHX0ZVTkNUSU9OX0FSR1MpCiAJaWYgKE5VTUVSSUNfSVNfU1BF Q0lBTChudW0pKQogCXsKIAkJaWYgKE5VTUVSSUNfSVNfTkFOKG51bSkpCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBOYU4gdG8gJXMiLCAic21hbGxpbnQiKSkpOwogCQllbHNlCi0JCQllcmVwb3J0KEVS Uk9SLAorCQkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjYW5ub3Qg Y29udmVydCBpbmZpbml0eSB0byAlcyIsICJzbWFsbGludCIpKSk7CiAJfQpAQCAtNDUwMSwxMiAr NDUxOCwxMiBAQCBudW1lcmljX2ludDIoUEdfRlVOQ1RJT05fQVJHUykKIAlpbml0X3Zhcl9mcm9t X251bShudW0sICZ4KTsKIAogCWlmICghbnVtZXJpY3Zhcl90b19pbnQ2NCgmeCwgJnZhbCkpCi0J CWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVy cm1zZygic21hbGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIAogCWlmICh1bmxpa2VseSh2YWwgPCBQ R19JTlQxNl9NSU4pIHx8IHVubGlrZWx5KHZhbCA+IFBHX0lOVDE2X01BWCkpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygic21h bGxpbnQgb3V0IG9mIHJhbmdlIikpKTsKIApAQCAtNDU3MSwxMCArNDU4OCwxNCBAQCBudW1lcmlj X2Zsb2F0OChQR19GVU5DVElPTl9BUkdTKQogCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVj dEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVt KG51bSkpKTsKLQotCXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ4aW4sIENTdHJp bmdHZXREYXR1bSh0bXApKTsKLQotCXBmcmVlKHRtcCk7CisJaWYgKCFEaXJlY3RJbnB1dEZ1bmN0 aW9uQ2FsbFNhZmUoZmxvYXQ4aW4sIHRtcCwKKwkJCQkJCQkJCSBJbnZhbGlkT2lkLCAtMSwKKwkJ CQkJCQkJCSAoTm9kZSAqKSBmY2luZm8tPmNvbnRleHQsCisJCQkJCQkJCQkgJnJlc3VsdCkpCisJ eworCQlwZnJlZSh0bXApOworCQlQR19SRVRVUk5fTlVMTCgpOworCX0KIAogCVBHX1JFVFVSTl9E QVRVTShyZXN1bHQpOwogfQpAQCAtNDY2Niw3ICs0Njg3LDE0IEBAIG51bWVyaWNfZmxvYXQ0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJdG1wID0gRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2Fs bDEobnVtZXJpY19vdXQsCiAJCQkJCQkJCQkJCSAgTnVtZXJpY0dldERhdHVtKG51bSkpKTsKIAot CXJlc3VsdCA9IERpcmVjdEZ1bmN0aW9uQ2FsbDEoZmxvYXQ0aW4sIENTdHJpbmdHZXREYXR1bSh0 bXApKTsKKwlpZiAoIURpcmVjdElucHV0RnVuY3Rpb25DYWxsU2FmZShmbG9hdDRpbiwgdG1wLAor CQkJCQkJCQkJIEludmFsaWRPaWQsIC0xLAorCQkJCQkJCQkJIChOb2RlICopIGZjaW5mby0+Y29u dGV4dCwKKwkJCQkJCQkJCSAmcmVzdWx0KSkKKwl7CisJCXBmcmVlKHRtcCk7CisJCVBHX1JFVFVS Tl9OVUxMKCk7CisJfQogCiAJcGZyZWUodG1wKTsKIAotLSAKMi4zNC4xCgo= --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0009-error-safe-for-casting-bigint-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedov14 RnJvbSA0MDMzNTIwODdjZTNjOGM4NDBiODg1NTlkM2JhZWE3YjJhMjRjMDU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjI6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAwOS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaWdpbnQgdG8gb3RoZXIgdHlwZXMgcGVy 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 YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKaW5kZXggMzdkMzQ2ODViOTMuLjg2ZWMx Zjg0MWE1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50OC5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9pbnQ4LmMKQEAgLTEyNTEsNyArMTI1MSw3IEBAIGludDg0KFBH X0ZVTkNUSU9OX0FSR1MpCiAJaW50NjQJCWFyZyA9IFBHX0dFVEFSR19JTlQ2NCgwKTsKIAogCWlm ICh1bmxpa2VseShhcmcgPCBQR19JTlQzMl9NSU4pIHx8IHVubGlrZWx5KGFyZyA+IFBHX0lOVDMy X01BWCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0 dW0pIDAsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSks CiAJCQkJIGVycm1zZygiaW50ZWdlciBvdXQgb2YgcmFuZ2UiKSkpOwogCkBAIC0xMjcyLDcgKzEy NzIsNyBAQCBpbnQ4MihQR19GVU5DVElPTl9BUkdTKQogCWludDY0CQlhcmcgPSBQR19HRVRBUkdf SU5UNjQoMCk7CiAKIAlpZiAodW5saWtlbHkoYXJnIDwgUEdfSU5UMTZfTUlOKSB8fCB1bmxpa2Vs eShhcmcgPiBQR19JTlQxNl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxV RV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTEzNTUsNyArMTM1NSw3IEBAIGk4dG9vaWQoUEdfRlVOQ1RJT05fQVJHUykKIAlpbnQ2 NAkJYXJnID0gUEdfR0VUQVJHX0lOVDY0KDApOwogCiAJaWYgKHVubGlrZWx5KGFyZyA8IDApIHx8 IHVubGlrZWx5KGFyZyA+IFBHX1VJTlQzMl9NQVgpKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0 dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfTlVN RVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2coIk9JRCBvdXQgb2YgcmFuZ2Ui KSkpOwogCi0tIAoyLjM0LjEKCg== --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0008-error-safe-for-casting-integer-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedoy15 RnJvbSA4ZDlhYjhlMmQ4MGRlN2MyMjRjMDVkN2U4NDkzY2MwYzdhNTgwZTgyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MjA6MTAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAwOC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbnRlZ2VyIHRvIG90aGVyIHR5cGVzIHBl cgogcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5 cGUsIGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25h bWUgZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVu YyBhbmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2ludGVnZXIn OjpyZWd0eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAg IGNhc3R0YXJnZXQgICAgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAg IHByb3NyYyAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LQogaW50ZWdlciAgICB8IGJpZ2ludCAgICAgICAgICAgfCAgICAgIDQ4MSB8IGkgICAgICAgICAg IHwgZiAgICAgICAgICB8IGludDQ4ICAgICAgICB8IGludDgKIGludGVnZXIgICAgfCBzbWFsbGlu dCAgICAgICAgIHwgICAgICAzMTQgfCBhICAgICAgICAgICB8IGYgICAgICAgICAgfCBpNHRvaTIg ICAgICAgfCBpbnQyCiBpbnRlZ2VyICAgIHwgcmVhbCAgICAgICAgICAgICB8ICAgICAgMzE4IHwg aSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaTR0b2YgICAgICAgIHwgZmxvYXQ0CiBpbnRlZ2Vy ICAgIHwgZG91YmxlIHByZWNpc2lvbiB8ICAgICAgMzE2IHwgaSAgICAgICAgICAgfCBmICAgICAg ICAgIHwgaTR0b2QgICAgICAgIHwgZmxvYXQ4CiBpbnRlZ2VyICAgIHwgbnVtZXJpYyAgICAgICAg ICB8ICAgICAxNzQwIHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwgaW50NF9udW1lcmljIHwg bnVtZXJpYwogaW50ZWdlciAgICB8IG1vbmV5ICAgICAgICAgICAgfCAgICAgMzgxMSB8IGEgICAg ICAgICAgIHwgZiAgICAgICAgICB8IGludDRfY2FzaCAgICB8IG1vbmV5CiBpbnRlZ2VyICAgIHwg Ym9vbGVhbiAgICAgICAgICB8ICAgICAyNTU3IHwgZSAgICAgICAgICAgfCBmICAgICAgICAgIHwg aW50NF9ib29sICAgIHwgYm9vbAogaW50ZWdlciAgICB8IGJ5dGVhICAgICAgICAgICAgfCAgICAg NjM2OCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGludDRfYnl0ZWEgICB8IGJ5dGVhCiBp bnRlZ2VyICAgIHwgImNoYXIiICAgICAgICAgICB8ICAgICAgIDc4IHwgZSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgaTR0b2NoYXIgICAgIHwgY2hhcgogaW50ZWdlciAgICB8IGJpdCAgICAgICAg ICAgICAgfCAgICAgMTY4MyB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdGZyb21pbnQ0 ICB8IGJpdAooMTAgcm93cykKCm9ubHkgaW50NF9jYXNoLCBpNHRvaTIsIGk0dG9jaGFyIG5lZWQg dGFrZSBjYXJlIG9mIGVycm9yIGhhbmRsaW5nLiAgYnV0IHN1cHBvcnQKZm9yIGNhc2ggZGF0YSB0 eXBlIGlzIG5vdCBlYXN5LCBzbyBvbmx5IGk0dG9pMiwgaTR0b2NoYXIgZnVuY3Rpb24gcmVmYWN0 b3JpbmcuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZh LWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNy Yy9iYWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMgfCAyICstCiBzcmMvYmFja2VuZC91dGlscy9hZHQv aW50LmMgIHwgMiArLQogMiBmaWxlcyBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2NoYXIuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL2FkdC9jaGFyLmMKaW5kZXggM2U0ZGVmNjhmZTQuLjY5ODg2MzkyNGVlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvY2hhci5jCisrKyBiL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9jaGFyLmMKQEAgLTE5Miw3ICsxOTIsNyBAQCBpNHRvY2hhcihQR19GVU5DVElP Tl9BUkdTKQogCWludDMyCQlhcmcxID0gUEdfR0VUQVJHX0lOVDMyKDApOwogCiAJaWYgKGFyZzEg PCBTQ0hBUl9NSU4gfHwgYXJnMSA+IFNDSEFSX01BWCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJl dHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05V TUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJcImNoYXJcIiBvdXQgb2Yg cmFuZ2UiKSkpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMgYi9z cmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKaW5kZXggZDIzMDI2MjY1ODUuLjJkMTI0MTcyYzZm IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvaW50LmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L2ludC5jCkBAIC0zNTAsNyArMzUwLDcgQEAgaTR0b2kyKFBHX0ZVTkNUSU9O X0FSR1MpCiAJaW50MzIJCWFyZzEgPSBQR19HRVRBUkdfSU5UMzIoMCk7CiAKIAlpZiAodW5saWtl bHkoYXJnMSA8IFNIUlRfTUlOKSB8fCB1bmxpa2VseShhcmcxID4gU0hSVF9NQVgpKQotCQllcmVw b3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5mby0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShl cnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCSBlcnJtc2co InNtYWxsaW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0007-error-safe-for-casting-macaddr8-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedp216 RnJvbSA4ZWFjMzM2YjA5ZjFkMWI2Y2E2NWI4YWEwYmE1OWNiNjQxYzM5NzNhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MDM6MDYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAwNy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBtYWNhZGRyOCB0byBvdGhlciB0eXBlcyBw ZXIKIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0 eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9u YW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1 bmMKYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J21hY2FkZHI4 Jzo6cmVndHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBj YXN0dGFyZ2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICAgIHBy b3NyYyAgICAgICB8IHByb25hbWUKLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t CiBtYWNhZGRyOCAgIHwgbWFjYWRkciAgICB8ICAgICA0MTI0IHwgaSAgICAgICAgICAgfCBmICAg ICAgICAgIHwgbWFjYWRkcjh0b21hY2FkZHIgfCBtYWNhZGRyCigxIHJvdykKCmRpc2N1c3Npb246 IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FEa0xNPWZ2MUpmWTRVZmEtamN3d05ialFpeE5WaXNrUThq WnUzVHpfcDY1NmlfNGhRQG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L21hYzguYyB8IDIgKy0KIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKSwgMSBkZWxldGlv bigtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9tYWM4LmMgYi9zcmMvYmFj a2VuZC91dGlscy9hZHQvbWFjOC5jCmluZGV4IGMxYmY5ZmQ1NzgzLi4wNDI1ZWE0NzNhNSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L21hYzguYworKysgYi9zcmMvYmFja2VuZC91 dGlscy9hZHQvbWFjOC5jCkBAIC01NTAsNyArNTUwLDcgQEAgbWFjYWRkcjh0b21hY2FkZHIoUEdf RlVOQ1RJT05fQVJHUykKIAlyZXN1bHQgPSBwYWxsb2MwX29iamVjdChtYWNhZGRyKTsKIAogCWlm ICgoYWRkci0+ZCAhPSAweEZGKSB8fCAoYWRkci0+ZSAhPSAweEZFKSkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJtYWNhZGRy OCBkYXRhIG91dCBvZiByYW5nZSB0byBjb252ZXJ0IHRvIG1hY2FkZHIiKSwKIAkJCQkgZXJyaGlu dCgiT25seSBhZGRyZXNzZXMgdGhhdCBoYXZlIEZGIGFuZCBGRSBhcyB2YWx1ZXMgaW4gdGhlICIK LS0gCjIuMzQuMQoK --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Disposition: attachment; filename="v18-0005-error-safe-for-casting-character-varying-to-other-types-per-pg_c.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedp818 RnJvbSA0MDFkNDViMWVmN2EwNWUxMjU2MmRkOWViOGM5NDlkYmYyMmMxNzRkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MTM6NDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAwNS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdmFyeWluZyB0byBvdGhl cgogdHlwZXMgcGVyIHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFy Z2V0OjpyZWd0eXBlLCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMgYW5kIHBjLmNhc3RmdW5jID4gMCBhbmQKKGNhc3Rzb3VyY2U6OnJlZ3R5cGUg PSAnY2hhcmFjdGVyIHZhcnlpbmcnOjpyZWd0eXBlKQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0 eXBlOwoKICAgIGNhc3Rzb3VyY2UgICAgIHwgICAgY2FzdHRhcmdldCAgICAgfCBjYXN0ZnVuYyB8 IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAgfCBwcm9uYW1lCi0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCiBjaGFyYWN0ZXIgdmFy eWluZyB8IHJlZ2NsYXNzICAgICAgICAgIHwgICAgIDEwNzkgfCBpICAgICAgICAgICB8IGYgICAg ICAgICAgfCB0ZXh0X3JlZ2NsYXNzIHwgcmVnY2xhc3MKIGNoYXJhY3RlciB2YXJ5aW5nIHwgImNo YXIiICAgICAgICAgICAgfCAgICAgIDk0NCB8IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRl eHRfY2hhciAgICAgfCBjaGFyCiBjaGFyYWN0ZXIgdmFyeWluZyB8IG5hbWUgICAgICAgICAgICAg IHwgICAgIDE0MDAgfCBpICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0X25hbWUgICAgIHwg bmFtZQogY2hhcmFjdGVyIHZhcnlpbmcgfCB4bWwgICAgICAgICAgICAgICB8ICAgICAyODk2IHwg ZSAgICAgICAgICAgfCBmICAgICAgICAgIHwgdGV4dHRveG1sICAgICB8IHhtbAogY2hhcmFjdGVy IHZhcnlpbmcgfCBjaGFyYWN0ZXIgdmFyeWluZyB8ICAgICAgNjY5IHwgaSAgICAgICAgICAgfCBm ICAgICAgICAgIHwgdmFyY2hhciAgICAgICB8IHZhcmNoYXIKKDUgcm93cykKCnRleHR0b3htbCwg dGV4dF9yZWdjbGFzcyB3YXMgcmVmYWN0b3JlZCBhcyBlcnJvciBzYWZlIGluIHByaW9yIHBhdGNo Lgp0ZXh0X2NoYXIsIHRleHRfbmFtZSBpcyBhbHJlYWR5IGVycm9yIHNhZmUuCnNvIGhlcmUgd2Ug b25seSBuZWVkIGhhbmRsZSBmdW5jdGlvbiAidmFyY2hhciIuCgpkaXNjdXNzaW9uOiBodHRwczov L3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2 NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFy LmMgfCAyICstCiAxIGZpbGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCA2ZjA4Mzk3M2ZlNy4uYTYyZTU1ZWVjMTkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtNjM0LDcgKzYzNCw3IEBAIHZhcmNoYXIoUEdfRlVO Q1RJT05fQVJHUykKIAl7CiAJCWZvciAoaSA9IG1heG1ibGVuOyBpIDwgbGVuOyBpKyspCiAJCQlp ZiAoc19kYXRhW2ldICE9ICcgJykKLQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCWVyZXR1cm4oZmNp bmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJIGVycm1zZygidmFsdWUgdG9vIGxvbmcgZm9y IHR5cGUgY2hhcmFjdGVyIHZhcnlpbmcoJWQpIiwKIAkJCQkJCQkJbWF4bGVuKSkpOwotLSAKMi4z NC4xCgo= --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0006-error-safe-for-casting-inet-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedp517 RnJvbSAxOGY2NmFiMmUzMGI5ZjQwZDY2ZTA5MTY1OWQ1OTYzMDUxODBhYjEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6Mjg6NTQgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAwNi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBpbmV0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ2luZXQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8ICAgIGNhc3R0 YXJnZXQgICAgIHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgICBwcm9z cmMgICAgfCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tCiBp bmV0ICAgICAgIHwgY2lkciAgICAgICAgICAgICAgfCAgICAgMTcxNSB8IGEgICAgICAgICAgIHwg ZiAgICAgICAgICB8IGluZXRfdG9fY2lkciB8IGNpZHIKIGluZXQgICAgICAgfCB0ZXh0ICAgICAg ICAgICAgICB8ICAgICAgNzMwIHwgYSAgICAgICAgICAgfCBmICAgICAgICAgIHwgbmV0d29ya19z aG93IHwgdGV4dAogaW5ldCAgICAgICB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgICAgICA3MzAgfCBh ICAgICAgICAgICB8IGYgICAgICAgICAgfCBuZXR3b3JrX3Nob3cgfCB0ZXh0CiBpbmV0ICAgICAg IHwgY2hhcmFjdGVyICAgICAgICAgfCAgICAgIDczMCB8IGEgICAgICAgICAgIHwgZiAgICAgICAg ICB8IG5ldHdvcmtfc2hvdyB8IHRleHQKKDQgcm93cykKCmluZXRfdG9fY2lkciBpcyBhbHJlYWR5 IGVycm9yIHNhZmUuCgpkaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFK Zlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQot LS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9uZXR3b3JrLmMgfCAyICstCiAxIGZpbGUgY2hhbmdl ZCwgMSBpbnNlcnRpb24oKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC91dGlscy9hZHQvbmV0d29yay5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpp bmRleCAzYTIwMDIwOTdkZC4uYzdlMDgyODc2NGUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FkdC9uZXR3b3JrLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L25ldHdvcmsuYwpA QCAtMTEzNyw3ICsxMTM3LDcgQEAgbmV0d29ya19zaG93KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlp ZiAocGdfaW5ldF9uZXRfbnRvcChpcF9mYW1pbHkoaXApLCBpcF9hZGRyKGlwKSwgaXBfbWF4Yml0 cyhpcCksCiAJCQkJCQkgdG1wLCBzaXplb2YodG1wKSkgPT0gTlVMTCkKLQkJZXJlcG9ydChFUlJP UiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShF UlJDT0RFX0lOVkFMSURfQklOQVJZX1JFUFJFU0VOVEFUSU9OKSwKIAkJCQkgZXJybXNnKCJjb3Vs ZCBub3QgZm9ybWF0IGluZXQgdmFsdWU6ICVtIikpKTsKIAotLSAKMi4zNC4xCgo= --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0003-error-safe-for-casting-character-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedpf20 RnJvbSA3NTEwYzAwOWMyYjRiMGYwYzhiYzA2Mzc5NWE4ZjU2YTBkMjM1ZDAxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgMjQgTm92IDIwMjUgMTI6NTI6MTYgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAwMy8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBjaGFyYWN0ZXIgdG8gb3RoZXIgdHlwZXMg 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 IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwppbmRleCBhN2E1YWMxZTgz Yi4uZTMyNTM1OWUzZjYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAt NDU0Miw3ICs0NTQyLDcgQEAgRXhlY0V2YWxYbWxFeHByKEV4cHJTdGF0ZSAqc3RhdGUsIEV4cHJF dmFsU3RlcCAqb3ApCiAKIAkJCQkqb3AtPnJlc3ZhbHVlID0gUG9pbnRlckdldERhdHVtKHhtbHBh cnNlKGRhdGEsCiAJCQkJCQkJCQkJCQkJCSB4ZXhwci0+eG1sb3B0aW9uLAotCQkJCQkJCQkJCQkJ CQkgcHJlc2VydmVfd2hpdGVzcGFjZSkpOworCQkJCQkJCQkJCQkJCQkgcHJlc2VydmVfd2hpdGVz cGFjZSwgTlVMTCkpOwogCQkJCSpvcC0+cmVzbnVsbCA9IGZhbHNlOwogCQkJfQogCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFyY2hhci5jIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwppbmRleCBkZjMwNTA5ODEzMC4uNmYwODM5NzNmZTcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJjaGFyLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvYWR0L3ZhcmNoYXIuYwpAQCAtMzA3LDcgKzMwNyw3IEBAIGJwY2hhcihQR19GVU5D VElPTl9BUkdTKQogCQl7CiAJCQlmb3IgKGkgPSBtYXhtYmxlbjsgaSA8IGxlbjsgaSsrKQogCQkJ CWlmIChzW2ldICE9ICcgJykKLQkJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19E QVRBX1JJR0hUX1RSVU5DQVRJT04pLAogCQkJCQkJCSBlcnJtc2coInZhbHVlIHRvbyBsb25nIGZv ciB0eXBlIGNoYXJhY3RlciglZCkiLAogCQkJCQkJCQkJbWF4bGVuKSkpOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5j CmluZGV4IGY2OWRjNjgyODZjLi40MzFjMGJjZWE0NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv dXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtNjU5 LDcgKzY1OSw3IEBAIHRleHR0b3htbChQR19GVU5DVElPTl9BUkdTKQogewogCXRleHQJICAgKmRh dGEgPSBQR19HRVRBUkdfVEVYVF9QUCgwKTsKIAotCVBHX1JFVFVSTl9YTUxfUCh4bWxwYXJzZShk YXRhLCB4bWxvcHRpb24sIHRydWUpKTsKKwlQR19SRVRVUk5fWE1MX1AoeG1scGFyc2UoZGF0YSwg eG1sb3B0aW9uLCB0cnVlLCBmY2luZm8tPmNvbnRleHQpKTsKIH0KIAogCkBAIC0xMDI4LDE5ICsx MDI4LDI1IEBAIHhtbGVsZW1lbnQoWG1sRXhwciAqeGV4cHIsCiAKIAogeG1sdHlwZSAqCi14bWxw YXJzZSh0ZXh0ICpkYXRhLCBYbWxPcHRpb25UeXBlIHhtbG9wdGlvbl9hcmcsIGJvb2wgcHJlc2Vy dmVfd2hpdGVzcGFjZSkKK3htbHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0 aW9uX2FyZywgYm9vbCBwcmVzZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpCiB7CiAj aWZkZWYgVVNFX0xJQlhNTAogCXhtbERvY1B0cglkb2M7CiAKIAlkb2MgPSB4bWxfcGFyc2UoZGF0 YSwgeG1sb3B0aW9uX2FyZywgcHJlc2VydmVfd2hpdGVzcGFjZSwKLQkJCQkJR2V0RGF0YWJhc2VF bmNvZGluZygpLCBOVUxMLCBOVUxMLCBOVUxMKTsKLQl4bWxGcmVlRG9jKGRvYyk7CisJCQkJCUdl dERhdGFiYXNlRW5jb2RpbmcoKSwgTlVMTCwgTlVMTCwgZXNjb250ZXh0KTsKKwlpZiAoZG9jKQor CQl4bWxGcmVlRG9jKGRvYyk7CisKKwlpZiAoU09GVF9FUlJPUl9PQ0NVUlJFRChlc2NvbnRleHQp KQorCQlyZXR1cm4gTlVMTDsKIAogCXJldHVybiAoeG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQlO T19YTUxfU1VQUE9SVCgpOwotCXJldHVybiBOVUxMOworCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxM CisJCQllcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCWVycm1zZygi dW5zdXBwb3J0ZWQgWE1MIGZlYXR1cmUiKSwKKwkJCWVycmRldGFpbCgiVGhpcyBmdW5jdGlvbmFs aXR5IHJlcXVpcmVzIHRoZSBzZXJ2ZXIgdG8gYmUgYnVpbHQgd2l0aCBsaWJ4bWwgc3VwcG9ydC4i KSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMveG1sLmggYi9z cmMvaW5jbHVkZS91dGlscy94bWwuaAppbmRleCAwM2FjYjI1NTQ0OS4uNTUzYmRjOTZjM2YgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3htbC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxz L3htbC5oCkBAIC03Myw3ICs3Myw3IEBAIGV4dGVybiB4bWx0eXBlICp4bWxjb25jYXQoTGlzdCAq YXJncyk7CiBleHRlcm4geG1sdHlwZSAqeG1sZWxlbWVudChYbWxFeHByICp4ZXhwciwKIAkJCQkJ CSAgIGNvbnN0IERhdHVtICpuYW1lZF9hcmd2YWx1ZSwgY29uc3QgYm9vbCAqbmFtZWRfYXJnbnVs bCwKIAkJCQkJCSAgIGNvbnN0IERhdHVtICphcmd2YWx1ZSwgY29uc3QgYm9vbCAqYXJnbnVsbCk7 Ci1leHRlcm4geG1sdHlwZSAqeG1scGFyc2UodGV4dCAqZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxv cHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3BhY2UpOworZXh0ZXJuIHhtbHR5cGUgKnht bHBhcnNlKHRleHQgKmRhdGEsIFhtbE9wdGlvblR5cGUgeG1sb3B0aW9uX2FyZywgYm9vbCBwcmVz ZXJ2ZV93aGl0ZXNwYWNlLCBOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIHhtbHR5cGUgKnhtbHBp KGNvbnN0IGNoYXIgKnRhcmdldCwgdGV4dCAqYXJnLCBib29sIGFyZ19pc19udWxsLCBib29sICpy ZXN1bHRfaXNfbnVsbCk7CiBleHRlcm4geG1sdHlwZSAqeG1scm9vdCh4bWx0eXBlICpkYXRhLCB0 ZXh0ICp2ZXJzaW9uLCBpbnQgc3RhbmRhbG9uZSk7CiBleHRlcm4gYm9vbCB4bWxfaXNfZG9jdW1l bnQoeG1sdHlwZSAqYXJnKTsKLS0gCjIuMzQuMQoK --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0004-error-safe-for-casting-text-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedpc19 RnJvbSBkNmFkZGUzNzc5NzIxNTUxMDQ4MTg1YThmNjkyNDE0OThmZmIzNTA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IEZyaSwgMTIgRGVjIDIwMjUgMTU6MzE6MTcgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAwNC8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyB0ZXh0IHRvIG90aGVyIHR5cGVzIHBlcgog cGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJlZ3R5cGUs IGNhc3RmdW5jLApjYXN0Y29udGV4dCxjYXN0bWV0aG9kLCBwcC5wcm9zcmMsIHBwLnByb25hbWUg ZnJvbSBwZ19jYXN0IHBjIGpvaW4gcGdfcHJvYyBwcCBvbgpwcC5vaWQgPSBwYy5jYXN0ZnVuYyBh bmQgcGMuY2FzdGZ1bmMgPiAwCmFuZCBjYXN0c291cmNlOjpyZWd0eXBlID0gJ3RleHQnOjpyZWd0 eXBlCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSB8IGNhc3R0YXJn ZXQgfCBjYXN0ZnVuYyB8IGNhc3Rjb250ZXh0IHwgY2FzdG1ldGhvZCB8ICAgIHByb3NyYyAgICAg fCBwcm9uYW1lCi0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQogdGV4dCAgICAgICB8 IHJlZ2NsYXNzICAgfCAgICAgMTA3OSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRf cmVnY2xhc3MgfCByZWdjbGFzcwogdGV4dCAgICAgICB8ICJjaGFyIiAgICAgfCAgICAgIDk0NCB8 IGEgICAgICAgICAgIHwgZiAgICAgICAgICB8IHRleHRfY2hhciAgICAgfCBjaGFyCiB0ZXh0ICAg ICAgIHwgbmFtZSAgICAgICB8ICAgICAgNDA3IHwgaSAgICAgICAgICAgfCBmICAgICAgICAgIHwg dGV4dF9uYW1lICAgICB8IG5hbWUKIHRleHQgICAgICAgfCB4bWwgICAgICAgIHwgICAgIDI4OTYg fCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCB0ZXh0dG94bWwgICAgIHwgeG1sCig0IHJvd3Mp CgphbHJlYWR5IGVycm9yIHNhZmU6IHRleHRfbmFtZSwgdGV4dF9jaGFyLgp0ZXh0dG94bWwgaXMg cmVmYWN0b3JlZCBpbiBjaGFyYWN0ZXIgdHlwZSBlcnJvciBzYWZlIHBhdGNoLgoKZGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZNFVmYS1qY3d3TmJqUWl4TlZpc2tR OGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9jYXRhbG9n L25hbWVzcGFjZS5jIHwgNTggKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiBzcmMv YmFja2VuZC91dGlscy9hZHQvcmVncHJvYy5jIHwgMTMgKysrKysrLS0KIHNyYy9iYWNrZW5kL3V0 aWxzL2FkdC92YXJsZW5hLmMgfCAxMCArKysrLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC94bWwu YyAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCB8ICA2ICsrKysK IHNyYy9pbmNsdWRlL3V0aWxzL3ZhcmxlbmEuaCAgICAgfCAgMSArCiA2IGZpbGVzIGNoYW5nZWQs IDczIGluc2VydGlvbnMoKyksIDE3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5j CmluZGV4IGMzYjc5YTJiYTQ4Li5lYTk5NjEyMWIwNSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5j CkBAIC00NDAsNiArNDQwLDE2IEBAIE9pZAogUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0 IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJCQkJCQkgdWludDMyIGZs YWdzLAogCQkJCQkJIFJhbmdlVmFyR2V0UmVsaWRDYWxsYmFjayBjYWxsYmFjaywgdm9pZCAqY2Fs bGJhY2tfYXJnKQoreworCXJldHVybiBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRTYWZlKHJlbGF0 aW9uLCBsb2NrbW9kZSwgZmxhZ3MsCisJCQkJCQkJCQkJY2FsbGJhY2ssIGNhbGxiYWNrX2FyZywK KwkJCQkJCQkJCQlOVUxMKTsKK30KKworT2lkCitSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWRTYWZl KGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsIHVpbnQzMiBmbGFn cywKKwkJCQkJCQkgUmFuZ2VWYXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLCB2b2lkICpjYWxs YmFja19hcmcsCisJCQkJCQkJIE5vZGUgKmVzY29udGV4dCkKIHsKIAl1aW50NjQJCWludmFsX2Nv dW50OwogCU9pZAkJCXJlbElkOwpAQCAtNDU2LDcgKzQ2Niw3IEBAIFJhbmdlVmFyR2V0UmVsaWRF eHRlbmRlZChjb25zdCBSYW5nZVZhciAqcmVsYXRpb24sIExPQ0tNT0RFIGxvY2ttb2RlLAogCWlm IChyZWxhdGlvbi0+Y2F0YWxvZ25hbWUpCiAJewogCQlpZiAoc3RyY21wKHJlbGF0aW9uLT5jYXRh bG9nbmFtZSwgZ2V0X2RhdGFiYXNlX25hbWUoTXlEYXRhYmFzZUlkKSkgIT0gMCkKLQkJCWVyZXBv cnQoRVJST1IsCisJCQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKIAkJCQkJKGVycmNv ZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAogCQkJCQkgZXJybXNnKCJjcm9zcy1k YXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IFwiJXMuJXMuJXNcIiIsCiAJ CQkJCQkJcmVsYXRpb24tPmNhdGFsb2duYW1lLCByZWxhdGlvbi0+c2NoZW1hbmFtZSwKQEAgLTUx Myw3ICs1MjMsNyBAQCBSYW5nZVZhckdldFJlbGlkRXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJl bGF0aW9uLCBMT0NLTU9ERSBsb2NrbW9kZSwKIAkJCQkJICogcmV0dXJuIEludmFsaWRPaWQuCiAJ CQkJCSAqLwogCQkJCQlpZiAobmFtZXNwYWNlSWQgIT0gbXlUZW1wTmFtZXNwYWNlKQotCQkJCQkJ ZXJlcG9ydChFUlJPUiwKKwkJCQkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlkT2lkLAogCQkJ CQkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfVEFCTEVfREVGSU5JVElPTiksCiAJCQkJCQkJ CSBlcnJtc2coInRlbXBvcmFyeSB0YWJsZXMgY2Fubm90IHNwZWNpZnkgYSBzY2hlbWEgbmFtZSIp KSk7CiAJCQkJfQpAQCAtNTkzLDEzICs2MDMsMjMgQEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVk KGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9DS01PREUgbG9ja21vZGUsCiAJCXsKIAkJCWlu dAkJCWVsZXZlbCA9IChmbGFncyAmIFJWUl9TS0lQX0xPQ0tFRCkgPyBERUJVRzEgOiBFUlJPUjsK IAotCQkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQotCQkJCWVyZXBvcnQoZWxldmVsLAorCQkJ aWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lICYmIGVsZXZlbCA9PSBERUJVRzEpCisJCQkJZXJlcG9y dChERUJVRzEsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCiAJ CQkJCQkgZXJybXNnKCJjb3VsZCBub3Qgb2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlcy4lc1wi IiwKIAkJCQkJCQkJcmVsYXRpb24tPnNjaGVtYW5hbWUsIHJlbGF0aW9uLT5yZWxuYW1lKSkpOwot CQkJZWxzZQotCQkJCWVyZXBvcnQoZWxldmVsLAorCQkJZWxzZSBpZiAocmVsYXRpb24tPnNjaGVt YW5hbWUgJiYgZWxldmVsID09IEVSUk9SKQorCQkJCWVyZXR1cm4oZXNjb250ZXh0LCBJbnZhbGlk T2lkLAorCQkJCQkJZXJyY29kZShFUlJDT0RFX0xPQ0tfTk9UX0FWQUlMQUJMRSksCisJCQkJCQll cnJtc2coImNvdWxkIG5vdCBvYnRhaW4gbG9jayBvbiByZWxhdGlvbiBcIiVzLiVzXCIiLAorCQkJ CQkJCSAgIHJlbGF0aW9uLT5zY2hlbWFuYW1lLCByZWxhdGlvbi0+cmVsbmFtZSkpOworCQkJZWxz ZSBpZiAoZWxldmVsID09IERFQlVHMSkKKwkJCQllcmVwb3J0KERFQlVHMSwKKwkJCQkJCWVycmNv ZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJTEFCTEUpLAorCQkJCQkJZXJybXNnKCJjb3VsZCBub3Qg b2J0YWluIGxvY2sgb24gcmVsYXRpb24gXCIlc1wiIiwKKwkJCQkJCQkgICByZWxhdGlvbi0+cmVs bmFtZSkpOworCQkJZWxzZSBpZiAoZWxldmVsID09IEVSUk9SKQorCQkJCWVyZXR1cm4oZXNjb250 ZXh0LCBJbnZhbGlkT2lkLAogCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9MT0NLX05PVF9BVkFJTEFC TEUpLAogCQkJCQkJIGVycm1zZygiY291bGQgbm90IG9idGFpbiBsb2NrIG9uIHJlbGF0aW9uIFwi JXNcIiIsCiAJCQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSkpOwpAQCAtNjI2LDEzICs2NDYsMjMg QEAgUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkKGNvbnN0IFJhbmdlVmFyICpyZWxhdGlvbiwgTE9D S01PREUgbG9ja21vZGUsCiAJewogCQlpbnQJCQllbGV2ZWwgPSBtaXNzaW5nX29rID8gREVCVUcx IDogRVJST1I7CiAKLQkJaWYgKHJlbGF0aW9uLT5zY2hlbWFuYW1lKQotCQkJZXJlcG9ydChlbGV2 ZWwsCisJCWlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSAmJiBlbGV2ZWwgPT0gREVCVUcxKQorCQkJ ZXJlcG9ydChERUJVRzEsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX1RBQkxFKSwK IAkJCQkJIGVycm1zZygicmVsYXRpb24gXCIlcy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKIAkJCQkJ CQlyZWxhdGlvbi0+c2NoZW1hbmFtZSwgcmVsYXRpb24tPnJlbG5hbWUpKSk7Ci0JCWVsc2UKLQkJ CWVyZXBvcnQoZWxldmVsLAorCQllbHNlIGlmIChyZWxhdGlvbi0+c2NoZW1hbmFtZSAmJiBlbGV2 ZWwgPT0gRVJST1IpCisJCQllcmV0dXJuKGVzY29udGV4dCwgSW52YWxpZE9pZCwKKwkJCQkJZXJy Y29kZShFUlJDT0RFX1VOREVGSU5FRF9UQUJMRSksCisJCQkJCWVycm1zZygicmVsYXRpb24gXCIl cy4lc1wiIGRvZXMgbm90IGV4aXN0IiwKKwkJCQkJCSAgIHJlbGF0aW9uLT5zY2hlbWFuYW1lLCBy ZWxhdGlvbi0+cmVsbmFtZSkpOworCQllbHNlIGlmIChlbGV2ZWwgPT0gREVCVUcxKQorCQkJZXJl cG9ydChERUJVRzEsCisJCQkJCWVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfVEFCTEUpLAorCQkJ CQllcnJtc2coInJlbGF0aW9uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsCisJCQkJCQkgICByZWxh dGlvbi0+cmVsbmFtZSkpOworCQllbHNlIGlmIChlbGV2ZWwgPT0gRVJST1IpCisJCQllcmV0dXJu KGVzY29udGV4dCwgSW52YWxpZE9pZCwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURf VEFCTEUpLAogCQkJCQkgZXJybXNnKCJyZWxhdGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAog CQkJCQkJCXJlbGF0aW9uLT5yZWxuYW1lKSkpOwpAQCAtMzYyMiw2ICszNjUyLDEyIEBAIGdldF9u YW1lc3BhY2Vfb2lkKGNvbnN0IGNoYXIgKm5zcG5hbWUsIGJvb2wgbWlzc2luZ19vaykKICAqLwog UmFuZ2VWYXIgKgogbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0KGNvbnN0IExpc3QgKm5hbWVzKQor eworCXJldHVybiBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3RTYWZlKG5hbWVzLCBOVUxMKTsKK30K KworUmFuZ2VWYXIgKgorbWFrZVJhbmdlVmFyRnJvbU5hbWVMaXN0U2FmZShjb25zdCBMaXN0ICpu YW1lcywgTm9kZSAqZXNjb250ZXh0KQogewogCVJhbmdlVmFyICAgKnJlbCA9IG1ha2VSYW5nZVZh cihOVUxMLCBOVUxMLCAtMSk7CiAKQEAgLTM2NDAsNyArMzY3Niw3IEBAIG1ha2VSYW5nZVZhckZy b21OYW1lTGlzdChjb25zdCBMaXN0ICpuYW1lcykKIAkJCXJlbC0+cmVsbmFtZSA9IHN0clZhbChs dGhpcmQobmFtZXMpKTsKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJZXJlcG9ydChFUlJPUiwK KwkJCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxMLAogCQkJCQkoZXJyY29kZShFUlJDT0RFX1NZTlRB WF9FUlJPUiksCiAJCQkJCSBlcnJtc2coImltcHJvcGVyIHJlbGF0aW9uIG5hbWUgKHRvbyBtYW55 IGRvdHRlZCBuYW1lcyk6ICVzIiwKIAkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSkpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9yZWdwcm9jLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmVncHJvYy5jCmluZGV4IGVlMzRkMWQ4NWY4Li42MDRlMTlhMWNiOSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3JlZ3Byb2MuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9hZHQvcmVncHJvYy5jCkBAIC0xOTAxLDEyICsxOTAxLDE5IEBAIHRleHRfcmVnY2xh c3MoUEdfRlVOQ1RJT05fQVJHUykKIAl0ZXh0CSAgICpyZWxuYW1lID0gUEdfR0VUQVJHX1RFWFRf UFAoMCk7CiAJT2lkCQkJcmVzdWx0OwogCVJhbmdlVmFyICAgKnJ2OworCUxpc3QJICAgKm5hbWVs aXN0OwogCi0JcnYgPSBtYWtlUmFuZ2VWYXJGcm9tTmFtZUxpc3QodGV4dFRvUXVhbGlmaWVkTmFt ZUxpc3QocmVsbmFtZSkpOworCW5hbWVsaXN0ID0gdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3RTYWZl KHJlbG5hbWUsIGZjaW5mby0+Y29udGV4dCk7CisJaWYgKFNPRlRfRVJST1JfT0NDVVJSRUQoZmNp bmZvLT5jb250ZXh0KSkKKwkJUEdfUkVUVVJOX05VTEwoKTsKKworCXJ2ID0gbWFrZVJhbmdlVmFy RnJvbU5hbWVMaXN0U2FmZShuYW1lbGlzdCwgZmNpbmZvLT5jb250ZXh0KTsKKwlpZiAoU09GVF9F UlJPUl9PQ0NVUlJFRChmY2luZm8tPmNvbnRleHQpKQorCQlQR19SRVRVUk5fTlVMTCgpOwogCiAJ LyogV2UgbWlnaHQgbm90IGV2ZW4gaGF2ZSBwZXJtaXNzaW9ucyBvbiB0aGlzIHJlbGF0aW9uOyBk b24ndCBsb2NrIGl0LiAqLwotCXJlc3VsdCA9IFJhbmdlVmFyR2V0UmVsaWQocnYsIE5vTG9jaywg ZmFsc2UpOwotCisJcmVzdWx0ID0gUmFuZ2VWYXJHZXRSZWxpZEV4dGVuZGVkU2FmZShydiwgTm9M b2NrLCAwLCBOVUxMLCBOVUxMLAorCQkJCQkJCQkJCSAgZmNpbmZvLT5jb250ZXh0KTsKIAlQR19S RVRVUk5fT0lEKHJlc3VsdCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2Fk dC92YXJsZW5hLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCmluZGV4IGM4MDE5 MWYwYTIyLi5iOTcxNDk5MjJjNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Zh cmxlbmEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvdmFybGVuYS5jCkBAIC0yNjY4LDYg KzI2NjgsMTIgQEAgbmFtZV90ZXh0KFBHX0ZVTkNUSU9OX0FSR1MpCiAgKi8KIExpc3QgKgogdGV4 dFRvUXVhbGlmaWVkTmFtZUxpc3QodGV4dCAqdGV4dHZhbCkKK3sKKwlyZXR1cm4gdGV4dFRvUXVh bGlmaWVkTmFtZUxpc3RTYWZlKHRleHR2YWwsIE5VTEwpOworfQorCitMaXN0ICoKK3RleHRUb1F1 YWxpZmllZE5hbWVMaXN0U2FmZSh0ZXh0ICp0ZXh0dmFsLCBOb2RlICplc2NvbnRleHQpCiB7CiAJ Y2hhcgkgICAqcmF3bmFtZTsKIAlMaXN0CSAgICpyZXN1bHQgPSBOSUw7CkBAIC0yNjc5LDEyICsy Njg1LDEyIEBAIHRleHRUb1F1YWxpZmllZE5hbWVMaXN0KHRleHQgKnRleHR2YWwpCiAJcmF3bmFt ZSA9IHRleHRfdG9fY3N0cmluZyh0ZXh0dmFsKTsKIAogCWlmICghU3BsaXRJZGVudGlmaWVyU3Ry aW5nKHJhd25hbWUsICcuJywgJm5hbWVsaXN0KSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVy bihlc2NvbnRleHQsIE5JTCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX0lOVkFMSURfTkFNRSksCiAJ CQkJIGVycm1zZygiaW52YWxpZCBuYW1lIHN5bnRheCIpKSk7CiAKIAlpZiAobmFtZWxpc3QgPT0g TklMKQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGVzY29udGV4dCwgTklMLAogCQkJCShl cnJjb2RlKEVSUkNPREVfSU5WQUxJRF9OQU1FKSwKIAkJCQkgZXJybXNnKCJpbnZhbGlkIG5hbWUg c3ludGF4IikpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCmluZGV4IDQzMWMwYmNlYTQ0Li44OTBmZDY3NGJk YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3htbC5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC94bWwuYwpAQCAtMTA0Myw3ICsxMDQzLDcgQEAgeG1scGFyc2UodGV4dCAq ZGF0YSwgWG1sT3B0aW9uVHlwZSB4bWxvcHRpb25fYXJnLCBib29sIHByZXNlcnZlX3doaXRlc3Bh Y2UsIE5vZGUKIAogCXJldHVybiAoeG1sdHlwZSAqKSBkYXRhOwogI2Vsc2UKLQllcmV0dXJuKGVz Y29udGV4dCwgTlVMTAorCWVyZXR1cm4oZXNjb250ZXh0LCBOVUxMLAogCQkJZXJyY29kZShFUlJD T0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCiAJCQllcnJtc2coInVuc3VwcG9ydGVkIFhNTCBm ZWF0dXJlIiksCiAJCQllcnJkZXRhaWwoIlRoaXMgZnVuY3Rpb25hbGl0eSByZXF1aXJlcyB0aGUg c2VydmVyIHRvIGJlIGJ1aWx0IHdpdGggbGlieG1sIHN1cHBvcnQuIikpOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmgKaW5kZXggMWEyNTk3MzY4NWMuLjE1M2E0MzllMzc0IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFt ZXNwYWNlLmgKQEAgLTEwMyw2ICsxMDMsMTEgQEAgZXh0ZXJuIE9pZAlSYW5nZVZhckdldFJlbGlk RXh0ZW5kZWQoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAogCQkJCQkJCQkJIExPQ0tNT0RFIGxv Y2ttb2RlLCB1aW50MzIgZmxhZ3MsCiAJCQkJCQkJCQkgUmFuZ2VWYXJHZXRSZWxpZENhbGxiYWNr IGNhbGxiYWNrLAogCQkJCQkJCQkJIHZvaWQgKmNhbGxiYWNrX2FyZyk7CitleHRlcm4gT2lkIFJh bmdlVmFyR2V0UmVsaWRFeHRlbmRlZFNhZmUoY29uc3QgUmFuZ2VWYXIgKnJlbGF0aW9uLAorCQkJ CQkJCQkJCUxPQ0tNT0RFIGxvY2ttb2RlLCB1aW50MzIgZmxhZ3MsCisJCQkJCQkJCQkJUmFuZ2VW YXJHZXRSZWxpZENhbGxiYWNrIGNhbGxiYWNrLAorCQkJCQkJCQkJCXZvaWQgKmNhbGxiYWNrX2Fy ZywKKwkJCQkJCQkJCQlOb2RlICplc2NvbnRleHQpOwogZXh0ZXJuIE9pZAlSYW5nZVZhckdldENy ZWF0aW9uTmFtZXNwYWNlKGNvbnN0IFJhbmdlVmFyICpuZXdSZWxhdGlvbik7CiBleHRlcm4gT2lk CVJhbmdlVmFyR2V0QW5kQ2hlY2tDcmVhdGlvbk5hbWVzcGFjZShSYW5nZVZhciAqcmVsYXRpb24s CiAJCQkJCQkJCQkJCQkgTE9DS01PREUgbG9ja21vZGUsCkBAIC0xNjgsNiArMTczLDcgQEAgZXh0 ZXJuIE9pZAlMb29rdXBDcmVhdGlvbk5hbWVzcGFjZShjb25zdCBjaGFyICpuc3BuYW1lKTsKIGV4 dGVybiB2b2lkIENoZWNrU2V0TmFtZXNwYWNlKE9pZCBvbGROc3BPaWQsIE9pZCBuc3BPaWQpOwog ZXh0ZXJuIE9pZAlRdWFsaWZpZWROYW1lR2V0Q3JlYXRpb25OYW1lc3BhY2UoY29uc3QgTGlzdCAq bmFtZXMsIGNoYXIgKipvYmpuYW1lX3ApOwogZXh0ZXJuIFJhbmdlVmFyICptYWtlUmFuZ2VWYXJG cm9tTmFtZUxpc3QoY29uc3QgTGlzdCAqbmFtZXMpOworZXh0ZXJuIFJhbmdlVmFyICptYWtlUmFu Z2VWYXJGcm9tTmFtZUxpc3RTYWZlKGNvbnN0IExpc3QgKm5hbWVzLCBOb2RlICplc2NvbnRleHQp OwogZXh0ZXJuIGNoYXIgKk5hbWVMaXN0VG9TdHJpbmcoY29uc3QgTGlzdCAqbmFtZXMpOwogZXh0 ZXJuIGNoYXIgKk5hbWVMaXN0VG9RdW90ZWRTdHJpbmcoY29uc3QgTGlzdCAqbmFtZXMpOwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmggYi9zcmMvaW5jbHVkZS91dGls cy92YXJsZW5hLmgKaW5kZXggNGIzMjU3NGEwNzUuLjViYzc4YWEwMmMwIDEwMDY0NAotLS0gYS9z cmMvaW5jbHVkZS91dGlscy92YXJsZW5hLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRpbHMvdmFybGVu YS5oCkBAIC0yNyw2ICsyNyw3IEBAIGV4dGVybiBpbnQJdmFyc3RyX2xldmVuc2h0ZWluX2xlc3Nf ZXF1YWwoY29uc3QgY2hhciAqc291cmNlLCBpbnQgc2xlbiwKIAkJCQkJCQkJCQkgIGludCBpbnNf YywgaW50IGRlbF9jLCBpbnQgc3ViX2MsCiAJCQkJCQkJCQkJICBpbnQgbWF4X2QsIGJvb2wgdHJ1 c3RlZCk7CiBleHRlcm4gTGlzdCAqdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3QodGV4dCAqdGV4dHZh bCk7CitleHRlcm4gTGlzdCAqdGV4dFRvUXVhbGlmaWVkTmFtZUxpc3RTYWZlKHRleHQgKnRleHR2 YWwsIE5vZGUgKmVzY29udGV4dCk7CiBleHRlcm4gYm9vbCBTcGxpdElkZW50aWZpZXJTdHJpbmco Y2hhciAqcmF3c3RyaW5nLCBjaGFyIHNlcGFyYXRvciwKIAkJCQkJCQkJICBMaXN0ICoqbmFtZWxp c3QpOwogZXh0ZXJuIGJvb2wgU3BsaXREaXJlY3Rvcmllc1N0cmluZyhjaGFyICpyYXdzdHJpbmcs IGNoYXIgc2VwYXJhdG9yLAotLSAKMi4zNC4xCgo= --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0002-error-safe-for-casting-bit-varbit-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedpj21 RnJvbSBlYTEyNzM5N2E4ZTgwZDJlYjEyNTJiMDgwMzc1ODk1NjZlOTRiZmQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMTA6MzM6MDggKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAwMi8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBiaXQvdmFyYml0IHRvIG90aGVyIHR5cGVz CiBwZXIgcGdfY2FzdAoKc2VsZWN0IGNhc3Rzb3VyY2U6OnJlZ3R5cGUsIGNhc3R0YXJnZXQ6OnJl Z3R5cGUsIGNhc3RmdW5jLAogICAgICAgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3Jj LCBwcC5wcm9uYW1lCmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0g cGMuY2FzdGZ1bmMKd2hlcmUgcGMuY2FzdGZ1bmMgPiAwIGFuZCAoY2FzdHNvdXJjZTo6cmVndHlw ZSA9J2JpdCc6OnJlZ3R5cGUgb3IKY2FzdHNvdXJjZTo6cmVndHlwZSA9J3ZhcmJpdCc6OnJlZ3R5 cGUpCm9yZGVyIGJ5IGNhc3Rzb3VyY2U6OnJlZ3R5cGU7CgogY2FzdHNvdXJjZSAgfCBjYXN0dGFy Z2V0ICB8IGNhc3RmdW5jIHwgY2FzdGNvbnRleHQgfCBjYXN0bWV0aG9kIHwgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0KIGJpdCAgICAgICAgIHwgYmln aW50ICAgICAgfCAgICAgMjA3NiB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50 OCB8IGludDgKIGJpdCAgICAgICAgIHwgaW50ZWdlciAgICAgfCAgICAgMTY4NCB8IGUgICAgICAg ICAgIHwgZiAgICAgICAgICB8IGJpdHRvaW50NCB8IGludDQKIGJpdCAgICAgICAgIHwgYml0ICAg ICAgICAgfCAgICAgMTY4NSB8IGkgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJpdCAgICAgICB8 IGJpdAogYml0IHZhcnlpbmcgfCBiaXQgdmFyeWluZyB8ICAgICAxNjg3IHwgaSAgICAgICAgICAg fCBmICAgICAgICAgIHwgdmFyYml0ICAgIHwgdmFyYml0Cig0IHJvd3MpCgpkaXNjdXNzaW9uOiBo dHRwczovL3Bvc3Rnci5lcy9tL0NBRGtMTT1mdjFKZlk0VWZhLWpjd3dOYmpRaXhOVmlza1E4alp1 M1R6X3A2NTZpXzRoUUBtYWlsLmdtYWlsLmNvbQotLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FkdC92 YXJiaXQuYyB8IDggKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDQg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5j IGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCmluZGV4IDUwZmZlZTY3OWI5Li4yMjNi MDFmOTMwOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3ZhcmJpdC5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2FkdC92YXJiaXQuYwpAQCAtNDAxLDcgKzQwMSw3IEBAIGJpdChQ R19GVU5DVElPTl9BUkdTKQogCQlQR19SRVRVUk5fVkFSQklUX1AoYXJnKTsKIAogCWlmICghaXNF eHBsaWNpdCkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChE YXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX1NUUklOR19EQVRBX0xFTkdUSF9NSVNNQVRD SCksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyBsZW5ndGggJWQgZG9lcyBub3QgbWF0Y2ggdHlw ZSBiaXQoJWQpIiwKIAkJCQkJCVZBUkJJVExFTihhcmcpLCBsZW4pKSk7CkBAIC03NTIsNyArNzUy LDcgQEAgdmFyYml0KFBHX0ZVTkNUSU9OX0FSR1MpCiAJCVBHX1JFVFVSTl9WQVJCSVRfUChhcmcp OwogCiAJaWYgKCFpc0V4cGxpY2l0KQotCQllcmVwb3J0KEVSUk9SLAorCQllcmV0dXJuKGZjaW5m by0+Y29udGV4dCwgKERhdHVtKSAwLAogCQkJCShlcnJjb2RlKEVSUkNPREVfU1RSSU5HX0RBVEFf UklHSFRfVFJVTkNBVElPTiksCiAJCQkJIGVycm1zZygiYml0IHN0cmluZyB0b28gbG9uZyBmb3Ig dHlwZSBiaXQgdmFyeWluZyglZCkiLAogCQkJCQkJbGVuKSkpOwpAQCAtMTU5MSw3ICsxNTkxLDcg QEAgYml0dG9pbnQ0KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBiaXQg c3RyaW5nIGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChWQVJCSVRMRU4oYXJnKSA+IHNpemVvZihy ZXN1bHQpICogQklUU19QRVJfQllURSkKLQkJZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2lu Zm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJCQkoZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFM VUVfT1VUX09GX1JBTkdFKSwKIAkJCQkgZXJybXNnKCJpbnRlZ2VyIG91dCBvZiByYW5nZSIpKSk7 CiAKQEAgLTE2NzEsNyArMTY3MSw3IEBAIGJpdHRvaW50OChQR19GVU5DVElPTl9BUkdTKQogCiAJ LyogQ2hlY2sgdGhhdCB0aGUgYml0IHN0cmluZyBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAoVkFS QklUTEVOKGFyZykgPiBzaXplb2YocmVzdWx0KSAqIEJJVFNfUEVSX0JZVEUpCi0JCWVyZXBvcnQo RVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0pIDAsCiAJCQkJKGVycmNv ZGUoRVJSQ09ERV9OVU1FUklDX1ZBTFVFX09VVF9PRl9SQU5HRSksCiAJCQkJIGVycm1zZygiYmln aW50IG91dCBvZiByYW5nZSIpKSk7CiAKLS0gCjIuMzQuMQoK --0000000000009882c20648535915 Content-Type: text/x-patch; charset="US-ASCII"; name="v18-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Disposition: attachment; filename="v18-0001-error-safe-for-casting-bytea-to-other-types-per-pg_cast.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mkdnedpm22 RnJvbSA2ZGM5YzM5NTZkYmM3MTliZWVkMWU5OTU0NTU5NjdiNzQ5MmFiZWVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBqaWFuIGhlIDxqaWFuLnVuaXZlcnNhbGl0eUBnbWFpbC5jb20+ CkRhdGU6IFNhdCwgMjIgTm92IDIwMjUgMDA6MDg6MDAgKzA4MDAKU3ViamVjdDogW1BBVENIIHYx OCAwMS8yM10gZXJyb3Igc2FmZSBmb3IgY2FzdGluZyBieXRlYSB0byBvdGhlciB0eXBlcyBwZXIK IHBnX2Nhc3QKCnNlbGVjdCBjYXN0c291cmNlOjpyZWd0eXBlLCBjYXN0dGFyZ2V0OjpyZWd0eXBl LCBjYXN0ZnVuYywgY2FzdGNvbnRleHQsY2FzdG1ldGhvZCwgcHAucHJvc3JjLCBwcC5wcm9uYW1l CmZyb20gcGdfY2FzdCBwYyBqb2luIHBnX3Byb2MgcHAgb24gcHAub2lkID0gcGMuY2FzdGZ1bmMg YW5kIHBjLmNhc3RmdW5jID4gMCBhbmQgY2FzdHNvdXJjZTo6cmVndHlwZSA9J2J5dGVhJzo6cmVn dHlwZQpvcmRlciBieSBjYXN0c291cmNlOjpyZWd0eXBlOwoKIGNhc3Rzb3VyY2UgfCBjYXN0dGFy Z2V0IHwgY2FzdGZ1bmMgfCBjYXN0Y29udGV4dCB8IGNhc3RtZXRob2QgfCAgIHByb3NyYyAgIHwg cHJvbmFtZQotLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLQogYnl0ZWEgICAgICB8IHNtYWxs aW50ICAgfCAgICAgNjM3MCB8IGUgICAgICAgICAgIHwgZiAgICAgICAgICB8IGJ5dGVhX2ludDIg fCBpbnQyCiBieXRlYSAgICAgIHwgaW50ZWdlciAgICB8ICAgICA2MzcxIHwgZSAgICAgICAgICAg fCBmICAgICAgICAgIHwgYnl0ZWFfaW50NCB8IGludDQKIGJ5dGVhICAgICAgfCBiaWdpbnQgICAg IHwgICAgIDYzNzIgfCBlICAgICAgICAgICB8IGYgICAgICAgICAgfCBieXRlYV9pbnQ4IHwgaW50 OAooMyByb3dzKQoKZGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9DQURrTE09ZnYxSmZZ NFVmYS1qY3d3TmJqUWl4TlZpc2tROGpadTNUel9wNjU2aV80aFFAbWFpbC5nbWFpbC5jb20KLS0t CiBzcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYyB8IDYgKysrLS0tCiAxIGZpbGUgY2hhbmdl ZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9ieXRlYS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2J5dGVhLmMKaW5k ZXggZmQ3NjYyZDQxZWUuLmEwMmIwNTRiODczIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9hZHQvYnl0ZWEuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvYnl0ZWEuYwpAQCAtMTI1 NSw3ICsxMjU1LDcgQEAgYnl0ZWFfaW50MihQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sg dGhhdCB0aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9m KHJlc3VsdCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAo RGF0dW0pIDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdF KSwKIAkJCQllcnJtc2coInNtYWxsaW50IG91dCBvZiByYW5nZSIpKTsKIApAQCAtMTI4MCw3ICsx MjgwLDcgQEAgYnl0ZWFfaW50NChQR19GVU5DVElPTl9BUkdTKQogCiAJLyogQ2hlY2sgdGhhdCB0 aGUgYnl0ZSBhcnJheSBpcyBub3QgdG9vIGxvbmcgKi8KIAlpZiAobGVuID4gc2l6ZW9mKHJlc3Vs dCkpCi0JCWVyZXBvcnQoRVJST1IsCisJCWVyZXR1cm4oZmNpbmZvLT5jb250ZXh0LCAoRGF0dW0p IDAsCiAJCQkJZXJyY29kZShFUlJDT0RFX05VTUVSSUNfVkFMVUVfT1VUX09GX1JBTkdFKSwKIAkJ CQllcnJtc2coImludGVnZXIgb3V0IG9mIHJhbmdlIikpOwogCkBAIC0xMzA1LDcgKzEzMDUsNyBA QCBieXRlYV9pbnQ4KFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAkvKiBDaGVjayB0aGF0IHRoZSBieXRl IGFycmF5IGlzIG5vdCB0b28gbG9uZyAqLwogCWlmIChsZW4gPiBzaXplb2YocmVzdWx0KSkKLQkJ ZXJlcG9ydChFUlJPUiwKKwkJZXJldHVybihmY2luZm8tPmNvbnRleHQsIChEYXR1bSkgMCwKIAkJ CQllcnJjb2RlKEVSUkNPREVfTlVNRVJJQ19WQUxVRV9PVVRfT0ZfUkFOR0UpLAogCQkJCWVycm1z ZygiYmlnaW50IG91dCBvZiByYW5nZSIpKTsKIAotLSAKMi4zNC4xCgo= --0000000000009882c20648535915--