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.94.2) (envelope-from ) id 1qSujN-007lG6-SB for pgsql-hackers@arkaria.postgresql.org; Mon, 07 Aug 2023 07:32:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qSujL-007XIW-UB for pgsql-hackers@arkaria.postgresql.org; Mon, 07 Aug 2023 07:32:44 +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.94.2) (envelope-from ) id 1qSujL-007XIO-Iq for pgsql-hackers@lists.postgresql.org; Mon, 07 Aug 2023 07:32:44 +0000 Received: from mail-oo1-xc31.google.com ([2607:f8b0:4864:20::c31]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1qSujG-0013Ir-RM for pgsql-hackers@postgresql.org; Mon, 07 Aug 2023 07:32:43 +0000 Received: by mail-oo1-xc31.google.com with SMTP id 006d021491bc7-56d2fe54863so2523100eaf.0 for ; Mon, 07 Aug 2023 00:32:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1691393557; x=1691998357; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=o7ST2iW9y1S/dKZJoS4J2uZsUGqQDbdcNPZkWitv1QY=; b=Qy3aIGuPPtY3Vmj2i88/1gNks9nCKiUsMZ7rdeEjb+Im1hQmHy5z2bVZZOrkTiVncF w+n1v8rdltRbdEYk9+ChH7eer3/APlwrM+hpNDwumdRS6d7OHlYVXIb5tlJ5TNJz2aTp MMDCtLqwy6v65qpH0a40S76i1SzLRkhGX5871AZd8YhengUOGa4pznetuV3f4o4YvqMn q0u5RFWV4KHw6xRMPlkWh6nOJA6WV5yo5AzJ50hOPy2Up/pji1XFQOrnKEMmqoi/uLUa XioI0SOaQLO3gKKzGZrgB+LlsG7rP7pyp1+7I8vQOW4PHJ2i7i3uoQVdIi/zvPeO9Tn5 Gbjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1691393557; x=1691998357; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=o7ST2iW9y1S/dKZJoS4J2uZsUGqQDbdcNPZkWitv1QY=; b=cm9mtyYye7eiW1+qNmAzhFXtqO9jeDfBDo+c+cfLv1Ll0xye0a81MgUtnMo7M+IqbX qmkXTi+WZ4lXN754HosXhOGe+Q7Z0wn4P2ND/dI94od9in52lWqUW86aDgz3FT+kFCy0 JevbY1rblw5GQf57U4EB5HeBDLe18y4q9w+0gRYUNgAX6l1aI307PoHZwqLRo/6zelP/ DVUzQxmsEHK/l1TzwIe0CKjm2bd0+C6v7mqjsN+IVgRbXhYo9/Is0zg0NYFUSrL/Odn+ yy+F4oJ/jvNhwHzKifaN0ESbOpUWEbfIYY0NSlB5mG6JlR0whbLSuEMNdKs3JEnFDytl 3Y5w== X-Gm-Message-State: AOJu0Ywk/gotOXKuzW9LcR80xcxqNNPBbJSjPex2MbD5iq7YFJ55U2iQ ADxro/KSumb/5eBBNiRGd/pdscT1npiy5x7hkMo= X-Google-Smtp-Source: AGHT+IFvw01rky9Eom/DrMX07dufr0rdRgqbl0MDFRdhCQH0t8wHub9fAWQSNASrWVjJqVfUhS16LeUo0fyRIDrU45E= X-Received: by 2002:a4a:2715:0:b0:563:4eeb:b5ea with SMTP id l21-20020a4a2715000000b005634eebb5eamr5183325oof.4.1691393556610; Mon, 07 Aug 2023 00:32:36 -0700 (PDT) MIME-Version: 1.0 References: <3507485.1691090027@sss.pgh.pa.us> In-Reply-To: From: Andy Fan Date: Mon, 7 Aug 2023 15:32:25 +0800 Message-ID: Subject: Re: Extract numeric filed in JSONB more effectively To: Pavel Stehule Cc: Tom Lane , jian he , pgsql-hackers Content-Type: multipart/mixed; boundary="0000000000001e597a06025040e3" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001e597a06025040e3 Content-Type: multipart/alternative; boundary="0000000000001e597706025040e1" --0000000000001e597706025040e1 Content-Type: text/plain; charset="UTF-8" Hi Pavel: Thanks for the code level review! > > I am looking on your patch, and the message > > + > + default: > + elog(ERROR, "cast jsonb field to %d is not supported.", targetOid); > > is a little bit messy. This case should not be possible, because it is > filtered by jsonb_cast_is_optimized. So the message should be changed or it > needs a comment. > Yes, the double check is not necessary, that is removed in the attached v4 patch. -- Best Regards Andy Fan --0000000000001e597706025040e1 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Pavel:=C2=A0
=
Thanks for the code level review!
=C2=A0

I am looking on your patch, and the message

=
+
+ default:
+ elog(ERROR, "cast jsonb field to %d is no= t supported.", targetOid);

is a little bit me= ssy. This case should not be possible, because it is filtered by=20 jsonb_cast_is_optimized. So the message should be changed or it needs a=20 comment.

Yes, the d= ouble check is not necessary,=C2=A0 that is removed in the attached=C2=A0v4= patch.=C2=A0


--
Best Regards
Andy Fan
--0000000000001e597706025040e1-- --0000000000001e597a06025040e3 Content-Type: application/octet-stream; name="v4-0001-Optimize-extracting-a-given-data-type-from-jsonb.patch" Content-Disposition: attachment; filename="v4-0001-Optimize-extracting-a-given-data-type-from-jsonb.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ll0k1eh40 RnJvbSA0NThkMWQ4NWYwN2I3OGNmYTRkY2U4ZDViZjM4ZGRlYWZjNTQwMGZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbmR5IEZhbiA8emhpaHVpLmZhbjEyMTNAZ21haWwuY29tPgpE YXRlOiBNb24sIDcgQXVnIDIwMjMgMTA6NDQ6MjMgKzA4MDAKU3ViamVjdDogW1BBVENIIHY0XSBP cHRpbWl6ZSBleHRyYWN0aW5nIGEgZ2l2ZW4gZGF0YSB0eXBlIGZyb20ganNvbmIuCgpQcmV2aW91 c2x5IGFmdGVyIHdlIGdldCBhIEpzb25iVmFsdWUsIHdlIG5lZWQgdG8gY29udmVydCBpdCB0bwpK c29uYiBmaXJzdCB0aGVuIGNhc3QgdGhlIEpzb25iIHRvIHRoZSBnaXZlbiB0eXBlLiBJbiB0aGlz IHBhdGNoLAp3ZSBjb3ZlcnQgdGhlIEpzb25iVmFsdWUgdG8gdGhlIGRlc2lyZWQgdHlwZSBkaXJl Y3RseS4KLS0tCiBzcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYyAgICAgICAgICAgIHwgMTM1 ICsrKysrKysrKysrKysrKysrKysrKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24u aCAgICAgICAgIHwgICAyICstCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0ICAgICAg ICAgIHwgIDIyICsrLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0ICAgICAg fCAxMzQgKysrKysrKysrKystLS0tLS0tLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9v cHJfc2FuaXR5Lm91dCB8ICAgNyArLQogc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsICAg ICAgICAgICB8ICAzNiArKystLS0KIDYgZmlsZXMgY2hhbmdlZCwgMjQ1IGluc2VydGlvbnMoKyks IDkxIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9qc29u Yi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2pzb25iLmMKaW5kZXggOTc4MTg1MmIwY2IuLmM3 MmU0MDJlYjU1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYworKysg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvanNvbmIuYwpAQCAtMTcsMTEgKzE3LDE0IEBACiAjaW5j bHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAj aW5jbHVkZSAiZnVuY2FwaS5oIgorI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgorI2luY2x1 ZGUgIm5vZGVzL3N1cHBvcnRub2Rlcy5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCiAj aW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNs dWRlICJ1dGlscy9kYXRlLmgiCiAjaW5jbHVkZSAidXRpbHMvZGF0ZXRpbWUuaCIKKyNpbmNsdWRl ICJ1dGlscy9mbWdyb2lkcy5oIgogI2luY2x1ZGUgInV0aWxzL2pzb24uaCIKICNpbmNsdWRlICJ1 dGlscy9qc29uYi5oIgogI2luY2x1ZGUgInV0aWxzL2pzb25mdW5jcy5oIgpAQCAtMjAzOCw2ICsy MDQxLDEzOCBAQCBjYW5ub3RDYXN0SnNvbmJWYWx1ZShlbnVtIGpidlR5cGUgdHlwZSwgY29uc3Qg Y2hhciAqc3FsdHlwZSkKIAllbG9nKEVSUk9SLCAidW5rbm93biBqc29uYiB0eXBlOiAlZCIsIChp bnQpIHR5cGUpOwogfQogCitzdGF0aWMgYm9vbAoranNvbmJfY2FzdF9pc19vcHRpbWl6ZWQoT2lk IHRhcmdldF90eXBlKQoreworCXN3aXRjaCh0YXJnZXRfdHlwZSkKKwl7CisJCWNhc2UgTlVNRVJJ Q09JRDoKKwkJY2FzZSBCT09MT0lEOgorCQljYXNlIElOVDJPSUQ6CisJCWNhc2UgSU5UNE9JRDoK KwkJY2FzZSBJTlQ4T0lEOgorCQljYXNlIEZMT0FUNE9JRDoKKwkJY2FzZSBGTE9BVDhPSUQ6CisJ CQlyZXR1cm4gdHJ1ZTsKKwkJZGVmYXVsdDoKKwkJCXJldHVybiBmYWxzZTsKKwl9Cit9CisKK0Rh dHVtCitqc29uYl9jYXN0X3N1cHBvcnQoUEdfRlVOQ1RJT05fQVJHUykKK3sKKwlOb2RlCSAgICpy YXdyZXEgPSAoTm9kZSAqKSBQR19HRVRBUkdfUE9JTlRFUigwKTsKKworCWlmIChJc0EocmF3cmVx LCBTdXBwb3J0UmVxdWVzdFNpbXBsaWZ5KSkKKwl7CisJCVN1cHBvcnRSZXF1ZXN0U2ltcGxpZnkg KnJlcSA9IChTdXBwb3J0UmVxdWVzdFNpbXBsaWZ5ICopIHJhd3JlcTsKKwkJRnVuY0V4cHIJKmZl eHByID0gcGFsbG9jKHNpemVvZihGdW5jRXhwcikpOworCQlPcEV4cHIJCSpvcGV4cHI7CisKKwkJ bWVtY3B5KGZleHByLCByZXEtPmZjYWxsLCBzaXplb2YoRnVuY0V4cHIpKTsKKworCQlvcGV4cHIg PSAoT3BFeHByICopIGxpbml0aWFsKGZleHByLT5hcmdzKTsKKworCQkvKgorCQkgKiBTaW1wbGlm eSBjYXN0KGpzb25iX29iamVjdF9maWxlZChqc29uYiwgZmlsZWROYW1lKSBhcyB0eXBlKQorCQkg KiB0byBqc29uYl9vYmplY3RfZmllbGRfdHlwZShqc29uYiwgZmlsZWROYW1lLCB0YXJnZXRUeXBl T2lkKTsKKwkJICovCisJCWlmIChJc0Eob3BleHByLCBPcEV4cHIpICYmCisJCQlvcGV4cHItPm9w ZnVuY2lkICA9PSBGX0pTT05CX09CSkVDVF9GSUVMRCAmJgorCQkJanNvbmJfY2FzdF9pc19vcHRp bWl6ZWQoZmV4cHItPmZ1bmNyZXN1bHR0eXBlKSkKKwkJeworCQkJZmV4cHItPmZ1bmNpZCA9IEZf SlNPTkJfT0JKRUNUX0ZJRUxEX1RZUEU7CisJCQlmZXhwci0+YXJncyA9IG9wZXhwci0+YXJnczsK KworCQkJLyogVGVsbCB0aGUganNvbmJfb2JqZWN0X2ZpZWxkX3R5cGUgd2hhdCBpcyB0aGUgdGFy Z2V0IHR5cGUuICovCisJCQlmZXhwci0+YXJncyA9IGxhcHBlbmQoZmV4cHItPmFyZ3MsIG1ha2VD b25zdChPSURPSUQsIDAsIDAsIHNpemVvZihPaWQpLAorCQkJCQkJCQkJCQkJCQkgZmV4cHItPmZ1 bmNyZXN1bHR0eXBlLAorCQkJCQkJCQkJCQkJCQkgZmFsc2UsIHRydWUpKTsKKwkJfQorCisJCVBH X1JFVFVSTl9QT0lOVEVSKGZleHByKTsKKwl9CisKKwlQR19SRVRVUk5fUE9JTlRFUihOVUxMKTsK K30KKworRGF0dW0KK2pzb25iX29iamVjdF9maWVsZF90eXBlKFBHX0ZVTkNUSU9OX0FSR1MpCit7 CisJSnNvbmIJICAgKmpiID0gUEdfR0VUQVJHX0pTT05CX1AoMCk7CisJdGV4dAkgICAqa2V5ID0g UEdfR0VUQVJHX1RFWFRfUFAoMSk7CisJT2lkCQkJdGFyZ2V0T2lkID0gUEdfR0VUQVJHX09JRCgy KTsKKworCUpzb25iVmFsdWUgKnY7CisJSnNvbmJWYWx1ZQl2YnVmOworCisJaWYgKCFKQl9ST09U X0lTX09CSkVDVChqYikpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwl2ID0gZ2V0S2V5SnNvblZh bHVlRnJvbUNvbnRhaW5lcigmamItPnJvb3QsCisJCQkJCQkJCQkgVkFSREFUQV9BTlkoa2V5KSwK KwkJCQkJCQkJCSBWQVJTSVpFX0FOWV9FWEhEUihrZXkpLAorCQkJCQkJCQkJICZ2YnVmKTsKKwor CWlmICh2ID09IE5VTEwpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlzd2l0Y2godGFyZ2V0T2lk KQorCXsKKwkJRGF0dW0JcmV0VmFsdWU7CisKKwkJY2FzZSBCT09MT0lEOgorCQkJaWYgKHYtPnR5 cGUgIT0gamJ2Qm9vbCkKKwkJCQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LT50eXBlLCAiYm9vbCIp OworCQkJUEdfUkVUVVJOX0JPT0wodi0+dmFsLmJvb2xlYW4pOworCisJCWNhc2UgTlVNRVJJQ09J RDoKKwkJCWlmICh2LT50eXBlICE9IGpidk51bWVyaWMpCisJCQkJY2Fubm90Q2FzdEpzb25iVmFs dWUodi0+dHlwZSwgIm51bWVyaWMiKTsKKwkJCVBHX1JFVFVSTl9OVU1FUklDKHYtPnZhbC5udW1l cmljKTsKKwkJY2FzZSBJTlQyT0lEOgorCQkJaWYgKHYtPnR5cGUgIT0gamJ2TnVtZXJpYykKKwkJ CQljYW5ub3RDYXN0SnNvbmJWYWx1ZSh2LT50eXBlLCAic21hbGxpbnQiKTsKKwkJCXJldFZhbHVl ID0gRGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDIsCisJCQkJCQkJCQkJICAgTnVtZXJp Y0dldERhdHVtKHYtPnZhbC5udW1lcmljKSk7CisJCQlQR19SRVRVUk5fREFUVU0ocmV0VmFsdWUp OworCQljYXNlIElOVDRPSUQ6CisJCQlpZiAodi0+dHlwZSAhPSBqYnZOdW1lcmljKQorCQkJCWNh bm5vdENhc3RKc29uYlZhbHVlKHYtPnR5cGUsICJpbnRlZ2VyIik7CisJCQlyZXRWYWx1ZSA9IERp cmVjdEZ1bmN0aW9uQ2FsbDEobnVtZXJpY19pbnQ0LAorCQkJCQkJCQkJCSAgIE51bWVyaWNHZXRE YXR1bSh2LT52YWwubnVtZXJpYykpOworCQkJUEdfUkVUVVJOX0RBVFVNKHJldFZhbHVlKTsKKwor CQljYXNlIElOVDhPSUQ6CisJCQlpZiAodi0+dHlwZSAhPSBqYnZOdW1lcmljKQorCQkJCWNhbm5v dENhc3RKc29uYlZhbHVlKHYtPnR5cGUsICJiaWdpbnQiKTsKKwkJCXJldFZhbHVlID0gRGlyZWN0 RnVuY3Rpb25DYWxsMShudW1lcmljX2ludDgsCisJCQkJCQkJCQkJICAgTnVtZXJpY0dldERhdHVt KHYtPnZhbC5udW1lcmljKSk7CisJCQlQR19SRVRVUk5fREFUVU0ocmV0VmFsdWUpOworCisJCWNh c2UgRkxPQVQ0T0lEOgorCQkJaWYgKHYtPnR5cGUgIT0gamJ2TnVtZXJpYykKKwkJCQljYW5ub3RD YXN0SnNvbmJWYWx1ZSh2LT50eXBlLCAicmVhbCIpOworCQkJcmV0VmFsdWUgPSBEaXJlY3RGdW5j dGlvbkNhbGwxKG51bWVyaWNfZmxvYXQ0LAorCQkJCQkJCQkJCSAgIE51bWVyaWNHZXREYXR1bSh2 LT52YWwubnVtZXJpYykpOworCQkJUEdfUkVUVVJOX0RBVFVNKHJldFZhbHVlKTsKKworCQljYXNl IEZMT0FUOE9JRDoKKwkJCWlmICh2LT50eXBlICE9IGpidk51bWVyaWMpCisJCQkJY2Fubm90Q2Fz dEpzb25iVmFsdWUodi0+dHlwZSwgImRvdWJsZSBwcmVjaXNpb24iKTsKKwkJCXJldFZhbHVlID0g RGlyZWN0RnVuY3Rpb25DYWxsMShudW1lcmljX2Zsb2F0OCwKKwkJCQkJCQkJCQkgICBOdW1lcmlj R2V0RGF0dW0odi0+dmFsLm51bWVyaWMpKTsKKwkJCVBHX1JFVFVSTl9EQVRVTShyZXRWYWx1ZSk7 CisKKwkJZGVmYXVsdDoKKwkJCUFzc2VydChmYWxzZSk7CisJCQlicmVhazsKKwl9CisKKwlQR19S RVRVUk5fUE9JTlRFUigwKTsKK30KKwogRGF0dW0KIGpzb25iX2Jvb2woUEdfRlVOQ1RJT05fQVJH UykKIHsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvY2F0dmVyc2lvbi5oIGIvc3Jj L2luY2x1ZGUvY2F0YWxvZy9jYXR2ZXJzaW9uLmgKaW5kZXggZjUwN2I0OWJiMjguLjM5MWRmYjgx YjJhIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24uaAorKysgYi9z cmMvaW5jbHVkZS9jYXRhbG9nL2NhdHZlcnNpb24uaApAQCAtNTcsNiArNTcsNiBAQAogICovCiAK IC8qCQkJCQkJCXl5eXltbWRkTiAqLwotI2RlZmluZSBDQVRBTE9HX1ZFUlNJT05fTk8JMjAyMzA3 MjYxCisjZGVmaW5lIENBVEFMT0dfVkVSU0lPTl9OTwkyMDIzMDgwNzEKIAogI2VuZGlmCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdAppbmRleCA2OTk2MDczOTg5YS4uMTA4MjgwYjM1NWQgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdApAQCAtNDU3NSwyNSArNDU3NSwyNiBAQAogICBwcm9uYW1lID0+ICdw Z19sc24nLCBwcm9yZXR0eXBlID0+ICdwZ19sc24nLCBwcm9hcmd0eXBlcyA9PiAnbnVtZXJpYycs CiAgIHByb3NyYyA9PiAnbnVtZXJpY19wZ19sc24nIH0sCiAKLXsgb2lkID0+ICczNTU2JywgZGVz Y3IgPT4gJ2NvbnZlcnQganNvbmIgdG8gYm9vbGVhbicsCit7IG9pZCA9PiAnMzU1NicsIGRlc2Ny ID0+ICdjb252ZXJ0IGpzb25iIHRvIGJvb2xlYW4nLCBwcm9zdXBwb3J0ID0+ICdqc29uYl9jYXN0 X3N1cHBvcnQnLAogICBwcm9uYW1lID0+ICdib29sJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsIHBy b2FyZ3R5cGVzID0+ICdqc29uYicsCiAgIHByb3NyYyA9PiAnanNvbmJfYm9vbCcgfSwKIHsgb2lk ID0+ICczNDQ5JywgZGVzY3IgPT4gJ2NvbnZlcnQganNvbmIgdG8gbnVtZXJpYycsCi0gIHByb25h bWUgPT4gJ251bWVyaWMnLCBwcm9yZXR0eXBlID0+ICdudW1lcmljJywgcHJvYXJndHlwZXMgPT4g J2pzb25iJywKKyAgcHJvbmFtZSA9PiAnbnVtZXJpYycsIHByb3N1cHBvcnQgPT4gJ2pzb25iX2Nh c3Rfc3VwcG9ydCcsCisgIHByb3JldHR5cGUgPT4gJ251bWVyaWMnLCBwcm9hcmd0eXBlcyA9PiAn anNvbmInLAogICBwcm9zcmMgPT4gJ2pzb25iX251bWVyaWMnIH0sCi17IG9pZCA9PiAnMzQ1MCcs IGRlc2NyID0+ICdjb252ZXJ0IGpzb25iIHRvIGludDInLAoreyBvaWQgPT4gJzM0NTAnLCBkZXNj ciA9PiAnY29udmVydCBqc29uYiB0byBpbnQyJywgcHJvc3VwcG9ydCA9PiAnanNvbmJfY2FzdF9z dXBwb3J0JywKICAgcHJvbmFtZSA9PiAnaW50MicsIHByb3JldHR5cGUgPT4gJ2ludDInLCBwcm9h cmd0eXBlcyA9PiAnanNvbmInLAogICBwcm9zcmMgPT4gJ2pzb25iX2ludDInIH0sCi17IG9pZCA9 PiAnMzQ1MScsIGRlc2NyID0+ICdjb252ZXJ0IGpzb25iIHRvIGludDQnLAoreyBvaWQgPT4gJzM0 NTEnLCBkZXNjciA9PiAnY29udmVydCBqc29uYiB0byBpbnQ0JywgcHJvc3VwcG9ydCA9PiAnanNv bmJfY2FzdF9zdXBwb3J0JywKICAgcHJvbmFtZSA9PiAnaW50NCcsIHByb3JldHR5cGUgPT4gJ2lu dDQnLCBwcm9hcmd0eXBlcyA9PiAnanNvbmInLAogICBwcm9zcmMgPT4gJ2pzb25iX2ludDQnIH0s Ci17IG9pZCA9PiAnMzQ1MicsIGRlc2NyID0+ICdjb252ZXJ0IGpzb25iIHRvIGludDgnLAoreyBv aWQgPT4gJzM0NTInLCBkZXNjciA9PiAnY29udmVydCBqc29uYiB0byBpbnQ4JywgcHJvc3VwcG9y dCA9PiAnanNvbmJfY2FzdF9zdXBwb3J0JywKICAgcHJvbmFtZSA9PiAnaW50OCcsIHByb3JldHR5 cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnanNvbmInLAogICBwcm9zcmMgPT4gJ2pzb25i X2ludDgnIH0sCi17IG9pZCA9PiAnMzQ1MycsIGRlc2NyID0+ICdjb252ZXJ0IGpzb25iIHRvIGZs b2F0NCcsCit7IG9pZCA9PiAnMzQ1MycsIGRlc2NyID0+ICdjb252ZXJ0IGpzb25iIHRvIGZsb2F0 NCcsIHByb3N1cHBvcnQgPT4gJ2pzb25iX2Nhc3Rfc3VwcG9ydCcsCiAgIHByb25hbWUgPT4gJ2Zs b2F0NCcsIHByb3JldHR5cGUgPT4gJ2Zsb2F0NCcsIHByb2FyZ3R5cGVzID0+ICdqc29uYicsCiAg IHByb3NyYyA9PiAnanNvbmJfZmxvYXQ0JyB9LAoteyBvaWQgPT4gJzI1ODAnLCBkZXNjciA9PiAn Y29udmVydCBqc29uYiB0byBmbG9hdDgnLAoreyBvaWQgPT4gJzI1ODAnLCBkZXNjciA9PiAnY29u dmVydCBqc29uYiB0byBmbG9hdDgnLCBwcm9zdXBwb3J0ID0+ICdqc29uYl9jYXN0X3N1cHBvcnQn LAogICBwcm9uYW1lID0+ICdmbG9hdDgnLCBwcm9yZXR0eXBlID0+ICdmbG9hdDgnLCBwcm9hcmd0 eXBlcyA9PiAnanNvbmInLAogICBwcm9zcmMgPT4gJ2pzb25iX2Zsb2F0OCcgfSwKIApAQCAtOTky OCw2ICs5OTI5LDEzIEBACiAgIHByb25hbWUgPT4gJ2pzb25iX29iamVjdF9maWVsZF90ZXh0Jywg cHJvcmV0dHlwZSA9PiAndGV4dCcsCiAgIHByb2FyZ3R5cGVzID0+ICdqc29uYiB0ZXh0JywgcHJv YXJnbmFtZXMgPT4gJ3tmcm9tX2pzb24sIGZpZWxkX25hbWV9JywKICAgcHJvc3JjID0+ICdqc29u Yl9vYmplY3RfZmllbGRfdGV4dCcgfSwKK3sgb2lkID0+ICczODEzJywgZGVzY3IgPT4gJ3JldHVy biBhIGdpdmVuIHR5cGUgc3BlY2lmaWVkIGluIGRlc2lyZWRfdHlwZSBmcm9tIGpzb25iIGZpZWxk JywKKyAgcHJvbmFtZSA9PiAnanNvbmJfb2JqZWN0X2ZpZWxkX3R5cGUnLCBwcm9yZXR0eXBlID0+ ICdhbnllbGVtZW50JywKKyAgcHJvYXJndHlwZXMgPT4gJ2pzb25iIHRleHQgb2lkJywgcHJvYXJn bmFtZXMgPT4gJ3tmcm9tX2pzb24sIGZpZWxkX25hbWUsIGRlc2lyZWRfdHlwZX0nLAorICBwcm9z cmMgPT4gJ2pzb25iX29iamVjdF9maWVsZF90eXBlJ30sCit7IG9pZCA9PiAnMzgxNCcsIGRlc2Ny ID0+ICdwbGFubmVyIHN1cHBvcnQgZm9yIG51bWVyaWMoanNvbmIpJywKKyAgcHJvbmFtZSA9PiAn anNvbmJfY2FzdF9zdXBwb3J0JywgcHJvcmV0dHlwZSA9PiAnaW50ZXJuYWwnLAorICBwcm9hcmd0 eXBlcyA9PiAnaW50ZXJuYWwnLCBwcm9zcmMgPT4gJ2pzb25iX2Nhc3Rfc3VwcG9ydCcgfSwKIHsg b2lkID0+ICczMjE1JywKICAgcHJvbmFtZSA9PiAnanNvbmJfYXJyYXlfZWxlbWVudCcsIHByb3Jl dHR5cGUgPT4gJ2pzb25iJywKICAgcHJvYXJndHlwZXMgPT4gJ2pzb25iIGludDQnLCBwcm9hcmdu YW1lcyA9PiAne2Zyb21fanNvbiwgZWxlbWVudF9pbmRleH0nLApkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9qc29uYi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2pzb25iLm91dAppbmRleCA0YTE2ZDBkYmFmYi4uNWExNDQ1MzRjYzEgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvanNvbmIub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvanNvbmIub3V0CkBAIC01NDcxLDEwNyArNTQ3MSwxMTMgQEAgc2VsZWN0IHRzX2hl YWRsaW5lKCdbXSc6Ompzb25iLCB0c3F1ZXJ5KCdhYWEgJiBiYmInKSk7CiAoMSByb3cpCiAKIC0t IGNhc3RzCi1zZWxlY3QgJ3RydWUnOjpqc29uYjo6Ym9vbDsKLSBib29sIAotLS0tLS0tCi0gdAor c2VsZWN0ICd0cnVlJzo6anNvbmI6OmJvb2wsICgneyJhIjogdHJ1ZX0nOjpqc29uYi0+J2EnKTo6 Ym9vbDsKKyBib29sIHwgYm9vbCAKKy0tLS0tLSstLS0tLS0KKyB0ICAgIHwgdAogKDEgcm93KQog CiBzZWxlY3QgJ1tdJzo6anNvbmI6OmJvb2w7CiBFUlJPUjogIGNhbm5vdCBjYXN0IGpzb25iIGFy cmF5IHRvIHR5cGUgYm9vbGVhbgotc2VsZWN0ICcxLjAnOjpqc29uYjo6ZmxvYXQ7Ci0gZmxvYXQ4 IAotLS0tLS0tLS0KLSAgICAgIDEKK3NlbGVjdCAoJ3siYSI6IFtdfSc6Ompzb25iLT4nYScpOjpi b29sOworRVJST1I6ICBjYW5ub3QgY2FzdCBqc29uYiBhcnJheSB0byB0eXBlIGJvb2xlYW4KK3Nl bGVjdCAnMS4wJzo6anNvbmI6OmZsb2F0LCAoJ3siYSI6IDEuMH0nOjpqc29uYi0+J2EnKTo6Zmxv YXQ7CisgZmxvYXQ4IHwgZmxvYXQ4IAorLS0tLS0tLS0rLS0tLS0tLS0KKyAgICAgIDEgfCAgICAg IDEKICgxIHJvdykKIAogc2VsZWN0ICdbMS4wXSc6Ompzb25iOjpmbG9hdDsKIEVSUk9SOiAgY2Fu bm90IGNhc3QganNvbmIgYXJyYXkgdG8gdHlwZSBkb3VibGUgcHJlY2lzaW9uCi1zZWxlY3QgJzEy MzQ1Jzo6anNvbmI6OmludDQ7Ci0gaW50NCAgCi0tLS0tLS0tCi0gMTIzNDUKK3NlbGVjdCAoJ3si YSI6IFsxLjBdfSc6Ompzb25iLT4nYScpOjpmbG9hdDsKK0VSUk9SOiAgY2Fubm90IGNhc3QganNv bmIgYXJyYXkgdG8gdHlwZSBkb3VibGUgcHJlY2lzaW9uCitzZWxlY3QgJzEyMzQ1Jzo6anNvbmI6 OmludDQsICAoJ3siYSI6IDEyMzQ1fSc6Ompzb25iLT4nYScpOjppbnQ0OworIGludDQgIHwgaW50 NCAgCistLS0tLS0tKy0tLS0tLS0KKyAxMjM0NSB8IDEyMzQ1CiAoMSByb3cpCiAKIHNlbGVjdCAn ImhlbGxvIic6Ompzb25iOjppbnQ0OwogRVJST1I6ICBjYW5ub3QgY2FzdCBqc29uYiBzdHJpbmcg dG8gdHlwZSBpbnRlZ2VyCi1zZWxlY3QgJzEyMzQ1Jzo6anNvbmI6Om51bWVyaWM7Ci0gbnVtZXJp YyAKLS0tLS0tLS0tLQotICAgMTIzNDUKK3NlbGVjdCAoJ3siYSI6ICJoZWxsbyJ9Jzo6anNvbmIt PidhJyk6OmludDQ7CitFUlJPUjogIGNhbm5vdCBjYXN0IGpzb25iIHN0cmluZyB0byB0eXBlIGlu dGVnZXIKK3NlbGVjdCAnMTIzNDUnOjpqc29uYjo6bnVtZXJpYywgKCd7ImEiOiAxMjM0NX0nOjpq c29uYi0+J2EnKTo6bnVtZXJpYzsKKyBudW1lcmljIHwgbnVtZXJpYyAKKy0tLS0tLS0tLSstLS0t LS0tLS0KKyAgIDEyMzQ1IHwgICAxMjM0NQogKDEgcm93KQogCiBzZWxlY3QgJ3t9Jzo6anNvbmI6 Om51bWVyaWM7CiBFUlJPUjogIGNhbm5vdCBjYXN0IGpzb25iIG9iamVjdCB0byB0eXBlIG51bWVy aWMKLXNlbGVjdCAnMTIzNDUuMDUnOjpqc29uYjo6bnVtZXJpYzsKLSBudW1lcmljICAKLS0tLS0t LS0tLS0KLSAxMjM0NS4wNQorc2VsZWN0ICcxMjM0NS4wNSc6Ompzb25iOjpudW1lcmljLCAoJ3si YSI6IDEyMzQ1LjA1fSc6Ompzb25iLT4nYScpOjpudW1lcmljOworIG51bWVyaWMgIHwgbnVtZXJp YyAgCistLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyAxMjM0NS4wNSB8IDEyMzQ1LjA1CiAoMSByb3cp CiAKLXNlbGVjdCAnMTIzNDUuMDUnOjpqc29uYjo6ZmxvYXQ0OwotICBmbG9hdDQgIAotLS0tLS0t LS0tLQotIDEyMzQ1LjA1CitzZWxlY3QgJzEyMzQ1LjA1Jzo6anNvbmI6OmZsb2F0NCwgKCd7ImEi OiAxMjM0NS4wNX0nOjpqc29uYi0+J2EnKTo6ZmxvYXQ0OworICBmbG9hdDQgIHwgIGZsb2F0NCAg CistLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyAxMjM0NS4wNSB8IDEyMzQ1LjA1CiAoMSByb3cpCiAK LXNlbGVjdCAnMTIzNDUuMDUnOjpqc29uYjo6ZmxvYXQ4OwotICBmbG9hdDggIAotLS0tLS0tLS0t LQotIDEyMzQ1LjA1CitzZWxlY3QgJzEyMzQ1LjA1Jzo6anNvbmI6OmZsb2F0OCwgKCd7ImEiOiAx MjM0NS4wNX0nOjpqc29uYi0+J2EnKTo6ZmxvYXQ4OworICBmbG9hdDggIHwgIGZsb2F0OCAgCist LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyAxMjM0NS4wNSB8IDEyMzQ1LjA1CiAoMSByb3cpCiAKLXNl bGVjdCAnMTIzNDUuMDUnOjpqc29uYjo6aW50MjsKLSBpbnQyICAKLS0tLS0tLS0KLSAxMjM0NQor c2VsZWN0ICcxMjM0NS4wNSc6Ompzb25iOjppbnQyLCAoJ3siYSI6IDEyMzQ1LjA1fSc6Ompzb25i LT4nYScpOjppbnQyOworIGludDIgIHwgaW50MiAgCistLS0tLS0tKy0tLS0tLS0KKyAxMjM0NSB8 IDEyMzQ1CiAoMSByb3cpCiAKLXNlbGVjdCAnMTIzNDUuMDUnOjpqc29uYjo6aW50NDsKLSBpbnQ0 ICAKLS0tLS0tLS0KLSAxMjM0NQorc2VsZWN0ICcxMjM0NS4wNSc6Ompzb25iOjppbnQ0LCAoJ3si YSI6IDEyMzQ1LjA1fSc6Ompzb25iLT4nYScpOjppbnQ0OworIGludDQgIHwgaW50NCAgCistLS0t LS0tKy0tLS0tLS0KKyAxMjM0NSB8IDEyMzQ1CiAoMSByb3cpCiAKLXNlbGVjdCAnMTIzNDUuMDUn Ojpqc29uYjo6aW50ODsKLSBpbnQ4ICAKLS0tLS0tLS0KLSAxMjM0NQorc2VsZWN0ICcxMjM0NS4w NSc6Ompzb25iOjppbnQ4LCAoJ3siYSI6IDEyMzQ1LjA1fSc6Ompzb25iLT4nYScpOjppbnQ4Owor IGludDggIHwgaW50OCAgCistLS0tLS0tKy0tLS0tLS0KKyAxMjM0NSB8IDEyMzQ1CiAoMSByb3cp CiAKLXNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwNSc6Ompzb25iOjpudW1lcmljOwotICAgICAgICAgICAgICAgICAgICAgICBudW1lcmlj ICAgICAgICAgICAgICAgICAgICAgICAgCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSAxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDA1CitzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6bnVtZXJpYywgKCd7ImEiOiAxMjM0 NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1fSc6Ompzb25i LT4nYScpOjpudW1lcmljOworICAgICAgICAgICAgICAgICAgICAgICBudW1lcmljICAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgbnVtZXJpYyAgICAgICAgICAg ICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorIDEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDUgfCAxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDA1CiAoMSByb3cpCiAKLXNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjpmbG9hdDQ7Ci0gZmxvYXQ0IAotLS0tLS0t LS0KLSAgMTIzNDUKK3NlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjpmbG9hdDQsICAoJ3siYSI6IDEyMzQ1LjAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDV9Jzo6anNvbmItPidhJyk6OmZs b2F0NDsKKyBmbG9hdDQgfCBmbG9hdDQgCistLS0tLS0tLSstLS0tLS0tLQorICAxMjM0NSB8ICAx MjM0NQogKDEgcm93KQogCi1zZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6ZmxvYXQ4OwotIGZsb2F0OCAKLS0tLS0tLS0t Ci0gIDEyMzQ1CitzZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6ZmxvYXQ4LCAoJ3siYSI6IDEyMzQ1LjAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDV9Jzo6anNvbmItPidhJyk6OmZsb2F0 ODsKKyBmbG9hdDggfCBmbG9hdDggCistLS0tLS0tLSstLS0tLS0tLQorICAxMjM0NSB8ICAxMjM0 NQogKDEgcm93KQogCi1zZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50MjsKLSBpbnQyICAKLS0tLS0tLS0KLSAxMjM0 NQorc2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDA1Jzo6anNvbmI6OmludDIsICgneyJhIjogMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNX0nOjpqc29uYi0+J2EnKTo6aW50MjsKKyBpbnQyICB8 IGludDIgIAorLS0tLS0tLSstLS0tLS0tCisgMTIzNDUgfCAxMjM0NQogKDEgcm93KQogCi1zZWxl Y3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUn Ojpqc29uYjo6aW50NDsKLSBpbnQ0ICAKLS0tLS0tLS0KLSAxMjM0NQorc2VsZWN0ICcxMjM0NS4w MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6Omlu dDQsICgneyJhIjogMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwNX0nOjpqc29uYi0+J2EnKTo6aW50NDsKKyBpbnQ0ICB8IGludDQgIAorLS0tLS0tLSst LS0tLS0tCisgMTIzNDUgfCAxMjM0NQogKDEgcm93KQogCi1zZWxlY3QgJzEyMzQ1LjAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50ODsKLSBp bnQ4ICAKLS0tLS0tLS0KLSAxMjM0NQorc2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6OmludDgsICgneyJhIjogMTIzNDUu MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNX0nOjpqc29uYi0+ J2EnKTo6aW50ODsKKyBpbnQ4ICB8IGludDggIAorLS0tLS0tLSstLS0tLS0tCisgMTIzNDUgfCAx MjM0NQogKDEgcm93KQogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29w cl9zYW5pdHkub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vcHJfc2FuaXR5Lm91dApp bmRleCBhMWJkZjJjMGI1Zi4uYjRjMzY0NzJlYjIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvb3ByX3Nhbml0eS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9vcHJfc2FuaXR5Lm91dApAQCAtMzA5LDggKzMwOSw4IEBAIFdIRVJFIHAxLnByb3JldHR5cGUg SU4KICAgICAgJ2FueXJhbmdlJzo6cmVndHlwZSA9IEFOWSAocDEucHJvYXJndHlwZXMpIE9SCiAg ICAgICdhbnltdWx0aXJhbmdlJzo6cmVndHlwZSA9IEFOWSAocDEucHJvYXJndHlwZXMpKQogT1JE RVIgQlkgMjsKLSBvaWQgIHwgICAgcHJvbmFtZSAgICAgCi0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LQorIG9pZCAgfCAgICAgICAgIHByb25hbWUgICAgICAgICAKKy0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCiAgMjI5NiB8IGFueWFycmF5X2luCiAgMjUwMiB8IGFueWFycmF5X3JlY3YK ICAyMzEyIHwgYW55ZWxlbWVudF9pbgpAQCAtMzIwLDcgKzMyMCw4IEBAIE9SREVSIEJZIDI7CiAg MjQwMCB8IGFycmF5X3JlY3YKICAzNTA2IHwgZW51bV9pbgogIDM1MzIgfCBlbnVtX3JlY3YKLSg5 IHJvd3MpCisgMzgxMyB8IGpzb25iX29iamVjdF9maWVsZF90eXBlCisoMTAgcm93cykKIAogLS0g YW55cmFuZ2UgYW5kIGFueW11bHRpcmFuZ2UgYXJlIHRpZ2h0ZXIgdGhhbiB0aGUgcmVzdCwgY2Fu IG9ubHkgcmVzb2x2ZQogLS0gZnJvbSBlYWNoIG90aGVyCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9qc29uYi5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9qc29uYi5zcWwKaW5k ZXggZTRiN2NkZjcwM2QuLmEwYjMyNGM4YmVmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9qc29uYi5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvanNvbmIuc3FsCkBAIC0x NDk2LDIzICsxNDk2LDI3IEBAIHNlbGVjdCB0c19oZWFkbGluZSgne30nOjpqc29uYiwgdHNxdWVy eSgnYWFhICYgYmJiJykpOwogc2VsZWN0IHRzX2hlYWRsaW5lKCdbXSc6Ompzb25iLCB0c3F1ZXJ5 KCdhYWEgJiBiYmInKSk7CiAKIC0tIGNhc3RzCi1zZWxlY3QgJ3RydWUnOjpqc29uYjo6Ym9vbDsK K3NlbGVjdCAndHJ1ZSc6Ompzb25iOjpib29sLCAoJ3siYSI6IHRydWV9Jzo6anNvbmItPidhJyk6 OmJvb2w7CiBzZWxlY3QgJ1tdJzo6anNvbmI6OmJvb2w7Ci1zZWxlY3QgJzEuMCc6Ompzb25iOjpm bG9hdDsKK3NlbGVjdCAoJ3siYSI6IFtdfSc6Ompzb25iLT4nYScpOjpib29sOworc2VsZWN0ICcx LjAnOjpqc29uYjo6ZmxvYXQsICgneyJhIjogMS4wfSc6Ompzb25iLT4nYScpOjpmbG9hdDsKIHNl bGVjdCAnWzEuMF0nOjpqc29uYjo6ZmxvYXQ7Ci1zZWxlY3QgJzEyMzQ1Jzo6anNvbmI6OmludDQ7 CitzZWxlY3QgKCd7ImEiOiBbMS4wXX0nOjpqc29uYi0+J2EnKTo6ZmxvYXQ7CitzZWxlY3QgJzEy MzQ1Jzo6anNvbmI6OmludDQsICAoJ3siYSI6IDEyMzQ1fSc6Ompzb25iLT4nYScpOjppbnQ0Owog c2VsZWN0ICciaGVsbG8iJzo6anNvbmI6OmludDQ7Ci1zZWxlY3QgJzEyMzQ1Jzo6anNvbmI6Om51 bWVyaWM7CitzZWxlY3QgKCd7ImEiOiAiaGVsbG8ifSc6Ompzb25iLT4nYScpOjppbnQ0OworCitz ZWxlY3QgJzEyMzQ1Jzo6anNvbmI6Om51bWVyaWMsICgneyJhIjogMTIzNDV9Jzo6anNvbmItPidh Jyk6Om51bWVyaWM7CiBzZWxlY3QgJ3t9Jzo6anNvbmI6Om51bWVyaWM7Ci1zZWxlY3QgJzEyMzQ1 LjA1Jzo6anNvbmI6Om51bWVyaWM7Ci1zZWxlY3QgJzEyMzQ1LjA1Jzo6anNvbmI6OmZsb2F0NDsK LXNlbGVjdCAnMTIzNDUuMDUnOjpqc29uYjo6ZmxvYXQ4Owotc2VsZWN0ICcxMjM0NS4wNSc6Ompz b25iOjppbnQyOwotc2VsZWN0ICcxMjM0NS4wNSc6Ompzb25iOjppbnQ0Owotc2VsZWN0ICcxMjM0 NS4wNSc6Ompzb25iOjppbnQ4Owotc2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6Om51bWVyaWM7Ci1zZWxlY3QgJzEyMzQ1 LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6 ZmxvYXQ0Owotc2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDA1Jzo6anNvbmI6OmZsb2F0ODsKLXNlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjppbnQyOwotc2VsZWN0 ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6 anNvbmI6OmludDQ7Ci1zZWxlY3QgJzEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50ODsKK3NlbGVjdCAnMTIzNDUuMDUnOjpqc29u Yjo6bnVtZXJpYywgKCd7ImEiOiAxMjM0NS4wNX0nOjpqc29uYi0+J2EnKTo6bnVtZXJpYzsKK3Nl bGVjdCAnMTIzNDUuMDUnOjpqc29uYjo6ZmxvYXQ0LCAoJ3siYSI6IDEyMzQ1LjA1fSc6Ompzb25i LT4nYScpOjpmbG9hdDQ7CitzZWxlY3QgJzEyMzQ1LjA1Jzo6anNvbmI6OmZsb2F0OCwgKCd7ImEi OiAxMjM0NS4wNX0nOjpqc29uYi0+J2EnKTo6ZmxvYXQ4Oworc2VsZWN0ICcxMjM0NS4wNSc6Ompz b25iOjppbnQyLCAoJ3siYSI6IDEyMzQ1LjA1fSc6Ompzb25iLT4nYScpOjppbnQyOworc2VsZWN0 ICcxMjM0NS4wNSc6Ompzb25iOjppbnQ0LCAoJ3siYSI6IDEyMzQ1LjA1fSc6Ompzb25iLT4nYScp OjppbnQ0Oworc2VsZWN0ICcxMjM0NS4wNSc6Ompzb25iOjppbnQ4LCAoJ3siYSI6IDEyMzQ1LjA1 fSc6Ompzb25iLT4nYScpOjppbnQ4Oworc2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDA1Jzo6anNvbmI6Om51bWVyaWMsICgneyJhIjogMTIz NDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNX0nOjpqc29u Yi0+J2EnKTo6bnVtZXJpYzsKK3NlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjpmbG9hdDQsICAoJ3siYSI6IDEyMzQ1LjAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDV9Jzo6anNvbmItPidh Jyk6OmZsb2F0NDsKK3NlbGVjdCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwNSc6Ompzb25iOjpmbG9hdDgsICgneyJhIjogMTIzNDUuMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNX0nOjpqc29uYi0+J2EnKTo6Zmxv YXQ4Oworc2VsZWN0ICcxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDA1Jzo6anNvbmI6OmludDIsICgneyJhIjogMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNX0nOjpqc29uYi0+J2EnKTo6aW50MjsKK3NlbGVj dCAnMTIzNDUuMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwNSc6 Ompzb25iOjppbnQ0LCAoJ3siYSI6IDEyMzQ1LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDV9Jzo6anNvbmItPidhJyk6OmludDQ7CitzZWxlY3QgJzEyMzQ1LjAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDUnOjpqc29uYjo6aW50 OCwgKCd7ImEiOiAxMjM0NS4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDA1fSc6Ompzb25iLT4nYScpOjppbnQ4OwotLSAKMi4yMS4wCgo= --0000000000001e597a06025040e3--