Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1if0Uc-00026C-T9 for pgadmin-hackers@arkaria.postgresql.org; Wed, 11 Dec 2019 11:49:23 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1if0Ua-0004Hp-HF for pgadmin-hackers@arkaria.postgresql.org; Wed, 11 Dec 2019 11:49:20 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1if0Ua-0004Hb-5E for pgadmin-hackers@lists.postgresql.org; Wed, 11 Dec 2019 11:49:20 +0000 Received: from mail-io1-xd41.google.com ([2607:f8b0:4864:20::d41]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1if0UV-0001ep-TO for pgadmin-hackers@postgresql.org; Wed, 11 Dec 2019 11:49:19 +0000 Received: by mail-io1-xd41.google.com with SMTP id i11so22279010ioi.12 for ; Wed, 11 Dec 2019 03:49:15 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=+IqZAxrEtsNPt2scuu5u0hqHPq4vVJdiqZFzdGovb/o=; b=f8QwT2O2sq6hctKQdYH8viiJVFb0i8UR/E6LKoA83GKYtpYOXrXFU6Hg9d0WUE/AKg k8xRnHjHX2XPkUcnzR9uTiGfUx30iQEHrG/kWKDKEEvIBOYNp3F+/cEXvMh74O+5iCx1 hUo+MebXW+JRtEWzonoycHdDq+wtxhh96bhP9KsWtbKR1FFHS2AyGMC3HlleI0SaBnf0 LWriLcVGMlPXpHYGJ80NJqM5DwEE/LbUmKMCf2ydgtg+IzWB+AHaIDvoe40184D2Bp+C 0Kgmxcm0DfnckSDErcna1xCudZw7m56cyubqrl8mCe4eCTtl4iLrrFC6l0t/PvKKrIio PPrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=+IqZAxrEtsNPt2scuu5u0hqHPq4vVJdiqZFzdGovb/o=; b=lN/sAOa3dKZ2Yxeqi+cIoJPBB8n26co+bl1GFVJ2m7OobNQhm5ukm614mjEn+VvFiT ZtvsoD6CetOcMUbS04eeTpWaytY4cZsvL/PZAIrTrEpmnSSEMiOVuThMMb0aG7JnJbNT zAAQJIDmheNIVdW6Jv9ncQ7s5wMqkjzqlr4q3v/yi2UaBD+F7GmTR5g4O4Z48bK81Peb BgXQi5ainQr+PzJQL5jDUaQAhZs+StasHEnN44uMiqDprSRm9wtKHAj4TmoxXy8X2KVG oEO9qcRlUGLKcVz1ByzTUlrZ9qgro1poofrqO7vfr3AisCYX4Y21DSRw9sUu5n8YVC6V DC4w== X-Gm-Message-State: APjAAAVlcgJH5mFbznfDmPsgCGLJHVbAsHMxYwcmmc/d6mR8OfIZEn2x ruSIcsp0hVHnh/+vfHuCVN1H6GsM60prRctjVvc= X-Google-Smtp-Source: APXvYqxsHkSbC3AaLhlxoPCheLcq/4t0LP2VT9Jth/gvBjZok5j0d4c4z6u/WiQnCaoO5kI6yGmvpU988sUfAAQwDUg= X-Received: by 2002:a5d:8899:: with SMTP id d25mr2387603ioo.260.1576064953689; Wed, 11 Dec 2019 03:49:13 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Karan Takalkar Date: Wed, 11 Dec 2019 17:19:02 +0530 Message-ID: Subject: Re: Re : [BUG #4943] To: Aditya Toshniwal Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000b5481305996c3701" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000b5481305996c3701 Content-Type: multipart/alternative; boundary="000000000000b5481105996c37ff" --000000000000b5481105996c37ff Content-Type: text/plain; charset="UTF-8" Hi, I have updated the disconnect messages. Databases/extension tests are failing , i have attached the log below. They are also failing if i undo the modifications. i do not know if this a problem with my setup or i maybe not following a convention. Please check the updated patch. Regards, Karan On Wed, Dec 11, 2019 at 3:03 PM Aditya Toshniwal < aditya.toshniwal@enterprisedb.com> wrote: > Hi Karan, > > I've updated your patch a bit. Kindly test and share the logs if test > cases fail. > Test cases seems to be working fine for me. Kindly also change > disconnected messages. > > On Tue, Dec 10, 2019 at 6:51 PM Karan Takalkar > wrote: > >> Hi, >> >> "add more variables to the response along with info and use those in the >> front end" >> i have already implemented that , but am still failing (7) test cases >> particularly in the databases/extensions tests(5). >> i had run regression tests for browser node.(and all it's sub >> directories). >> Please check the patch attached. >> >> On Tue, Dec 10, 2019 at 6:34 PM Aditya Toshniwal < >> aditya.toshniwal@enterprisedb.com> wrote: >> >>> [please use reply all to reply] >>> >>> You can add more variables to the response along with info and use those >>> in the front end. >>> >>> On Tue, Dec 10, 2019, 18:24 Karan Takalkar >>> wrote: >>> >>>> Hi >>>> >>>> I had been naively modifying jason response of connect function in >>>> databases __init__.py, later realized there are a lot of dependencies on it >>>> and most of regression tests use: >>>> if db_con["info"] == "Database connected.": . >>>> >>>> I am now modifying the Alertify.success script* directly responsible >>>> for the popup, i could append the database name in the message but am >>>> having trouble finding the *variable to supply server name.* >>>> The file and location of function is : >>>> * >>>> (web/pgadmin/browser/server_groups/servers/databases/static/js/database.js >>>> line 523) >>>> >>>> the message should be: >>>> Alertify.success("(?server_name_variable?}+'/'+data.label+' - '+ >>>> res.info") >>>> >>>> data.label contains database name >>>> res.info is the jason response coming from databases __init__.py >>>> connect function ; which is "Database connected." >>>> >>>> On Mon, Dec 9, 2019 at 8:35 PM Aditya Toshniwal < >>>> aditya.toshniwal@enterprisedb.com> wrote: >>>> >>>>> Hi Karan, >>>>> >>>>> Kindly add a hyphen between the message and names, create a patch to >>>>> pgAdmin hackers(check cc). >>>>> Kindly also run the test cases and pep8 before sending. >>>>> >>>>> On Mon, Dec 9, 2019, 20:17 Karan Takalkar >>>>> wrote: >>>>> >>>>>> I have updated the success message. >>>>>> Please check the screenshots attached. >>>>>> Should i make a patch? >>>>>> >>>>>> Regards, >>>>>> Karan >>>>>> >>>>>> On Mon, 9 Dec, 2019, 3:25 PM Aditya Toshniwal, < >>>>>> aditya.toshniwal@enterprisedb.com> wrote: >>>>>> >>>>>>> ++pgadmin-hackers >>>>>>> >>>>>>> Hi Karan, >>>>>>> >>>>>>> It is good to know that you're contributing. >>>>>>> I would suggest {server name}/{db name} as name instead of did is >>>>>>> better for UX. You can get the db name from conn object and server name >>>>>>> using the sid (refer >>>>>>> - web/pgadmin/browser/server_groups/servers/__init__.py) >>>>>>> >>>>>>> >>>>>>> On Mon, Dec 9, 2019 at 3:11 PM Karan Takalkar >>>>>>> wrote: >>>>>>> >>>>>>>> Hi, >>>>>>>> >>>>>>>> I have been working on #4943 ("Database connected" success message >>>>>>>> itself is not enough) added by you on pgAdmin4 issues. >>>>>>>> I want to know what details of database should be included in >>>>>>>> success message.(i have added 'did') >>>>>>>> >>>>>>>> The success message can be modified by altering json response in >>>>>>>> the connect method in file >>>>>>>> PGADMIN_SRC/web/pgadmin/browser/server_groups/servers/databases/__init__.py. >>>>>>>> please have a look at the screenshots attached. >>>>>>>> >>>>>>>> original: >>>>>>>> info=_( "Database connected.") >>>>>>>> new: >>>>>>>> info=_("Postgres version/{0} Database connected.".format(did)) >>>>>>>> >>>>>>>> Regards, >>>>>>>> Karan >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Thanks and Regards, >>>>>>> Aditya Toshniwal >>>>>>> Sr. Software Engineer | EnterpriseDB India | Pune >>>>>>> "Don't Complain about Heat, Plant a TREE" >>>>>>> >>>>>> > > -- > Thanks and Regards, > Aditya Toshniwal > Sr. Software Engineer | EnterpriseDB India | Pune > "Don't Complain about Heat, Plant a TREE" > --000000000000b5481105996c37ff Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,

I have updated the disco= nnect messages.
Databases/extension tests are failing , i have at= tached the log below.
They are also failing if i undo the modific= ations.
i do not know if this a=C2=A0 problem with my setup = or i maybe not following a convention.
Please check the updated p= atch.

Regards,
Karan

=
On Wed, De= c 11, 2019 at 3:03 PM Aditya Toshniwal <aditya.toshniwal@enterprisedb.com> wrote:
Hi Karan,=

I've updated your patch a bit. Kindly test and share the logs if = test cases fail.
Test cases seems to be working fine for me. Kindly also ch= ange disconnected messages.

On Tue, Dec 10, 2019 at 6:51 PM Karan Taka= lkar <karan15= 33os@gmail.com> wrote:
Hi,

"add = more variables to the response along with info and use those in the front e= nd"
i have already implemented that , but am still failing (= 7)=C2=A0 test cases particularly in the databases/extensions tests(5).
i had run regression tests for browser node.(and all it's sub dir= ectories).
Please check the patch attached.

On Tue, Dec = 10, 2019 at 6:34 PM Aditya Toshniwal <aditya.toshniwal@enterprisedb.com&= gt; wrote:
[please use reply all to reply]

You can add more variables to the response along with info a= nd use those in the front end.

On Tue, Dec 10, 2019, 18:24 Karan Takal= kar <karan153= 3os@gmail.com> wrote:
Hi

I had been n= aively modifying jason response of connect function in databases __init__.p= y, later realized there are a lot of dependencies on it and most of regress= ion tests use:
if db_con["info"] =3D=3D "Database = connected.": .

I am now modifying the Alertif= y.success script* directly responsible for the popup, i could append the da= tabase name in the message but am having trouble finding the variable to= supply server name.
The file and location of function is :
* (web/pgadmin/browser/server_groups/servers/databases/static/= js/database.js line 523)

the message should be:
Alertify.success("(?server_name_variable?}+'/'+dat= a.label+' - '+res.info")

data.label contain= s database name
res.info is the jason response coming from databases __= init__.py connect function ; which is "Database connected."

On Mon, Dec 9, 2019 at 8:35 PM Aditya Toshniwal <adit= ya.toshniwal@enterprisedb.com> wrote:
Hi Karan,
<= br>
Kindly add a hyphen between the message and name= s, create a patch to pgAdmin hackers(check cc).
Kind= ly also run the test cases and pep8 before sending.

On Mon, Dec 9, 201= 9, 20:17 Karan Takalkar <karan1533os@gmail.com> wrote:
I hav= e updated the success message.=C2=A0
Please check the scre= enshots attached.
Should i make a patch?

Regards,
Kar= an

On Mon, 9 Dec, 2019, 3:25 PM Aditya Toshniwal, <aditya.toshniwal@enterprisedb.com> wrote:
++pgadmin= -hackers

Hi Karan,

It is good to know that you're contrib= uting.
I would suggest {server name}/{db name} as name instead of did is be= tter for UX. You can get the db name from conn object and server name using= the sid (refer -=C2=A0web/pgadmin/browser/server_groups/servers/__init__.p= y)


On Mon, Dec 9, 2019 at 3:11 PM Karan Takalkar <karan1533os@gmail.com> wrote:
Hi,

I have been working on #4943 ("Database connected" success message itself is not eno= ugh) added by you on pgAdmin4 issues.
I want to know what details of database should be included i= n success message.(i have added 'did')

The success message can be modified by altering json response in = the connect method in file PGADMIN_SRC/web/pgadmin/browser/server_groups/se= rvers/databases/__init__.py.
please have a look at the screenshots attached.

original:
info=3D_( "Database connected.")
new:=
info=3D_("Postgres version/{0} Database connected.".= format(did))

Regards,
Karan


--
Th= anks and Regards,
Aditya = Toshniwal
Sr. Software Engineer |=C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Complain a= bout Heat, Plant a TREE"


--
Th= anks and Regards,
Aditya = Toshniwal
Sr. Software Engineer |=C2=A0EnterpriseDB India |=C2=A0Pune
"Don't Complain a= bout Heat, Plant a TREE"
--000000000000b5481105996c37ff-- --000000000000b5481305996c3701 Content-Type: text/x-patch; charset="US-ASCII"; name="BUG_4943_updated-2.diff" Content-Disposition: attachment; filename="BUG_4943_updated-2.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k4185swm0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9fX2luaXRfXy5weQppbmRleCAyNmZkNWNjYWMuLjkwNTQwMWZhNyAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9fX2luaXRfXy5weQpAQCAtMzAsNyArMzAsNyBAQCBmcm9tIHBn YWRtaW4udXRpbHMuYWpheCBpbXBvcnQgbWFrZV9qc29uX3Jlc3BvbnNlLCBcCiAgICAgbWFrZV9y ZXNwb25zZSBhcyBhamF4X3Jlc3BvbnNlLCBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IsIHVuYXV0aG9y aXplZAogZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgogZnJvbSBw Z2FkbWluLnRvb2xzLnNxbGVkaXRvci51dGlscy5xdWVyeV9oaXN0b3J5IGltcG9ydCBRdWVyeUhp c3RvcnkKLQorZnJvbSBwZ2FkbWluLm1vZGVsIGltcG9ydCBTZXJ2ZXIKIAogY2xhc3MgRGF0YWJh c2VNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgogICAgIE5PREVfVFlQRSA9ICdkYXRhYmFz ZScKQEAgLTQ2OCw3ICs0NjgsOSBAQCBjbGFzcyBEYXRhYmFzZVZpZXcoUEdDaGlsZE5vZGVWaWV3 KToKICAgICAgICAgICAgICAgICBpbmZvPV8oIkRhdGFiYXNlIGNvbm5lY3RlZC4iKSwKICAgICAg ICAgICAgICAgICBkYXRhPXsKICAgICAgICAgICAgICAgICAgICAgJ2ljb24nOiAncGctaWNvbi1k YXRhYmFzZScsCi0gICAgICAgICAgICAgICAgICAgICdjb25uZWN0ZWQnOiBUcnVlCisgICAgICAg ICAgICAgICAgICAgICdjb25uZWN0ZWQnOiBUcnVlLAorICAgICAgICAgICAgICAgICAgICAnaW5m b19wcmVmaXgnOiAnezB9L3sxfScuCisgICAgICAgICAgICAgICAgICAgIGZvcm1hdChTZXJ2ZXIu cXVlcnkuZmlsdGVyX2J5KGlkPXNpZClbMF0ubmFtZSwgY29ubi5kYikKICAgICAgICAgICAgICAg ICB9CiAgICAgICAgICAgICApCiAKQEAgLTQ3OCw3ICs0ODAsNyBAQCBjbGFzcyBEYXRhYmFzZVZp ZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgIyBSZWxlYXNlIENvbm5lY3Rpb24KICAgICAg ICAgZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgogICAgICAgICBt YW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2Vy KHNpZCkKLQorICAgICAgICBjb25uID0gbWFuYWdlci5jb25uZWN0aW9uKGRpZD1kaWQsIGF1dG9f cmVjb25uZWN0PVRydWUpCiAgICAgICAgIHN0YXR1cyA9IG1hbmFnZXIucmVsZWFzZShkaWQ9ZGlk KQogCiAgICAgICAgIGlmIG5vdCBzdGF0dXM6CkBAIC00ODksNyArNDkxLDkgQEAgY2xhc3MgRGF0 YWJhc2VWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICAgICAgaW5mbz1fKCJEYXRh YmFzZSBkaXNjb25uZWN0ZWQuIiksCiAgICAgICAgICAgICAgICAgZGF0YT17CiAgICAgICAgICAg ICAgICAgICAgICdpY29uJzogJ2ljb24tZGF0YWJhc2Utbm90LWNvbm5lY3RlZCcsCi0gICAgICAg ICAgICAgICAgICAgICdjb25uZWN0ZWQnOiBGYWxzZQorICAgICAgICAgICAgICAgICAgICAnY29u bmVjdGVkJzogRmFsc2UsCisgICAgICAgICAgICAgICAgICAgICdpbmZvX3ByZWZpeCc6ICd7MH0v ezF9Jy4KKyAgICAgICAgICAgICAgICAgICAgZm9ybWF0KFNlcnZlci5xdWVyeS5maWx0ZXJfYnko aWQ9c2lkKVswXS5uYW1lLCBjb25uLmRiKQogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg ICkKIApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3N0YXRpYy9qcy9kYXRhYmFzZS5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdGF0aWMvanMvZGF0YWJhc2UuanMKaW5k ZXggYWIwZGY2OTM5Li44Mzg5NzcwMTYgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zdGF0aWMvanMvZGF0YWJhc2UuanMKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3N0 YXRpYy9qcy9kYXRhYmFzZS5qcwpAQCAtMjAwLDYgKzIwMCw5IEBAIGRlZmluZSgncGdhZG1pbi5u b2RlLmRhdGFiYXNlJywgWwogICAgICAgICAgICAgICAgIC5kb25lKGZ1bmN0aW9uKHJlcykgewog ICAgICAgICAgICAgICAgICAgaWYgKHJlcy5zdWNjZXNzID09IDEpIHsKICAgICAgICAgICAgICAg ICAgICAgdmFyIHBydl9pID0gdC5wYXJlbnQoaSk7CisgICAgICAgICAgICAgICAgICAgIGlmKHJl cy5kYXRhLmluZm9fcHJlZml4KSB7CisgICAgICAgICAgICAgICAgICAgICAgcmVzLmluZm8gPSBg JHtyZXMuZGF0YS5pbmZvX3ByZWZpeH0gLSAke3Jlcy5pbmZvfWA7CisgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgQWxlcnRpZnkuc3VjY2VzcyhyZXMuaW5mbyk7CiAg ICAgICAgICAgICAgICAgICAgIHQucmVtb3ZlSWNvbihpKTsKICAgICAgICAgICAgICAgICAgICAg ZGF0YS5jb25uZWN0ZWQgPSBmYWxzZTsKQEAgLTUxOSw2ICs1MjIsOSBAQCBkZWZpbmUoJ3BnYWRt aW4ubm9kZS5kYXRhYmFzZScsIFsKICAgICAgICAgICAgICAgICBkYXRhLmljb24gPSByZXMuZGF0 YS5pY29uOwogICAgICAgICAgICAgICAgIHRyZWUuYWRkSWNvbihpdGVtLCB7aWNvbjogZGF0YS5p Y29ufSk7CiAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgaWYocmVzLmRhdGEuaW5mb19w cmVmaXgpIHsKKyAgICAgICAgICAgICAgICByZXMuaW5mbyA9IGAke3Jlcy5kYXRhLmluZm9fcHJl Zml4fSAtICR7cmVzLmluZm99YDsKKyAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgIEFs ZXJ0aWZ5LnN1Y2Nlc3MocmVzLmluZm8pOwogICAgICAgICAgICAgICBvYmoudHJpZ2dlcignY29u bmVjdGVkJywgb2JqLCBpdGVtLCBkYXRhKTsK --000000000000b5481305996c3701 Content-Type: text/x-log; charset="US-ASCII"; name="regression.log" Content-Disposition: attachment; filename="regression.log" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k4186sov1 MjAxOS0xMi0xMSAxNzoxMToxNywxNjE6IEVSUk9SCVNUREVSUjoJCjIwMTktMTItMTEgMTc6MTE6 MTcsMTYyOiBFUlJPUglTVERFUlI6CT09PT09PT09PT09PT1SdW5uaW5nIHRoZSB0ZXN0IGNhc2Vz IGZvciAnUG9zdGdyZVNRTCA5LjQnPT09PT09PT09PT09PQoyMDE5LTEyLTExIDE3OjExOjIxLDQx NTogRVJST1IJU1RERVJSOglydW5UZXN0IChwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5z ZXJ2ZXJzLmRhdGFiYXNlcy5leHRlbnNpb25zLnRlc3RzLnRlc3RfZXh0ZW5zaW9uX2FkZC5FeHRl bnNpb25zQWRkVGVzdENhc2UpCjIwMTktMTItMTEgMTc6MTE6MjEsNDE2OiBFUlJPUglTVERFUlI6 CUNoZWNrIEV4dGVuc2lvbiBOb2RlCjIwMTktMTItMTEgMTc6MTE6MjEsNDE2OiBFUlJPUglTVERF UlI6CSAuLi4KMjAxOS0xMi0xMSAxNzoxMToyMSw0MjM6IElORk8JZmxhc2suYXBwOglDb25uZWN0 aW9uIFJlcXVlc3QgZm9yIHNlcnZlciMyCjIwMTktMTItMTEgMTc6MTE6MjEsNDM2OiBJTkZPCWZs YXNrLmFwcDoJQ29ubmVjdGlvbiBFc3RhYmxpc2hlZCBmb3Igc2VydmVyOiAgICAgICAgICAgICAg ICAgMiAtIFBvc3RncmVTUUwgOS40CjIwMTktMTItMTEgMTc6MTE6MjEsNDM5OiBTUUwJZmxhc2su YXBwOglFeGVjdXRlIChkaWN0KSBmb3Igc2VydmVyICMyIC0gREI6cG9zdGdyZXMgKFF1ZXJ5LWlk OiAxNjU0MjYzKToKU0VMRUNUIENBU0UgV0hFTiB1c2VzdXBlcgogICAgICAgVEhFTiBwZ19pc19p bl9yZWNvdmVyeSgpCiAgICAgICBFTFNFIEZBTFNFCiAgICAgICBFTkQgYXMgaW5yZWNvdmVyeSwK ICAgICAgIENBU0UgV0hFTiB1c2VzdXBlciBBTkQgcGdfaXNfaW5fcmVjb3ZlcnkoKQogICAgICAg VEhFTiBwZ19pc193YWxfcmVwbGF5X3BhdXNlZCgpCiAgICAgICBFTFNFIEZBTFNFCiAgICAgICBF TkQgYXMgaXNyZXBsYXlwYXVzZWQKRlJPTSBwZ191c2VyIFdIRVJFIHVzZW5hbWU9Y3VycmVudF91 c2VyCjIwMTktMTItMTEgMTc6MTE6MjEsNDQ2OiBJTkZPCWZsYXNrLmFwcDoJQ29ubmVjdGlvbiBS ZXF1ZXN0IGZvciBzZXJ2ZXIjMgoyMDE5LTEyLTExIDE3OjExOjIxLDQ1MTogSU5GTwlmbGFzay5h cHA6CUNvbm5lY3Rpb24gRXN0YWJsaXNoZWQgZm9yIHNlcnZlcjogICAgICAgICAgICAgICAgIDIg LSBQb3N0Z3JlU1FMIDkuNAoyMDE5LTEyLTExIDE3OjExOjIxLDQ1MTogU1FMCWZsYXNrLmFwcDoJ RXhlY3V0ZSAoZGljdCkgZm9yIHNlcnZlciAjMiAtIERCOnBvc3RncmVzIChRdWVyeS1pZDogNzM4 ODI4Nyk6ClNFTEVDVCBDQVNFIFdIRU4gdXNlc3VwZXIKICAgICAgIFRIRU4gcGdfaXNfaW5fcmVj b3ZlcnkoKQogICAgICAgRUxTRSBGQUxTRQogICAgICAgRU5EIGFzIGlucmVjb3ZlcnksCiAgICAg ICBDQVNFIFdIRU4gdXNlc3VwZXIgQU5EIHBnX2lzX2luX3JlY292ZXJ5KCkKICAgICAgIFRIRU4g cGdfaXNfd2FsX3JlcGxheV9wYXVzZWQoKQogICAgICAgRUxTRSBGQUxTRQogICAgICAgRU5EIGFz IGlzcmVwbGF5cGF1c2VkCkZST00gcGdfdXNlciBXSEVSRSB1c2VuYW1lPWN1cnJlbnRfdXNlcgoy MDE5LTEyLTExIDE3OjExOjIxLDQ1OTogU1FMCWZsYXNrLmFwcDoJRXhlY3V0ZSAoZGljdCkgZm9y IHNlcnZlciAjMiAtIERCOnBvc3RncmVzIChRdWVyeS1pZDogNDAxMTI0NCk6CgpTRUxFQ1QKICAg IGRiLm9pZCBhcyBkaWQsIGRiLmRhdG5hbWUsIGRiLmRhdGFsbG93Y29ubiwKICAgIHBnX2VuY29k aW5nX3RvX2NoYXIoZGIuZW5jb2RpbmcpIEFTIHNlcnZlcmVuY29kaW5nLAogICAgaGFzX2RhdGFi YXNlX3ByaXZpbGVnZShkYi5vaWQsICdDUkVBVEUnKSBhcyBjYW5jcmVhdGUsIGRhdGxhc3RzeXNv aWQKRlJPTQogICAgcGdfZGF0YWJhc2UgZGIKV0hFUkUgZGIub2lkID0gMjQ2MDYKMjAxOS0xMi0x MSAxNzoxMToyMSw0NjU6IElORk8JZmxhc2suYXBwOglDb25uZWN0aW9uIEVzdGFibGlzaGVkIGZv ciBEYXRhYmFzZSBJZDogICAgICAgICAgICAgICAgIDI0NjA2CjIwMTktMTItMTEgMTc6MTE6MjEs NDc4OiBTUUwJZmxhc2suYXBwOglFeGVjdXRlIChkaWN0KSBmb3Igc2VydmVyICMyIC0gREI6dGVz dF9kYl8wYzIzYSAoUXVlcnktaWQ6IDI5MTEzMTUpOgpDUkVBVEUgRVhURU5TSU9OIGN1YmUKICAg IFNDSEVNQSB0ZXN0X3NjaGVtYV81MWI0ZAoyMDE5LTEyLTExIDE3OjExOjIxLDQ3OTogRVJST1IJ Zmxhc2suYXBwOglGYWlsZWQgdG8gZXhlY3V0ZSBxdWVyeSAoZXhlY3V0ZV9kaWN0KSBmb3IgdGhl IHNlcnZlciAjMi0gREI6dGVzdF9kYl8wYzIzYSAoUXVlcnktaWQ6IDI5MTEzMTUpOgpFcnJvciBN ZXNzYWdlOkVSUk9SOiAgY291bGQgbm90IG9wZW4gZXh0ZW5zaW9uIGNvbnRyb2wgZmlsZSAiL3Vz ci9sb2NhbC9wZ3NxbC9zaGFyZS9leHRlbnNpb24vY3ViZS5jb250cm9sIjogTm8gc3VjaCBmaWxl IG9yIGRpcmVjdG9yeQoKMjAxOS0xMi0xMSAxNzoxMToyMSw0OTI6IEVSUk9SCVNUREVSUjoJRkFJ TAoyMDE5LTEyLTExIDE3OjExOjIxLDQ5MjogRVJST1IJU1RERVJSOglydW5UZXN0IChwZ2FkbWlu LmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlbnNpb25zLnRlc3Rz LnRlc3RfZXh0ZW5zaW9uX2RlbGV0ZS5FeHRlbnNpb25zRGVsZXRlVGVzdENhc2UpCjIwMTktMTIt MTEgMTc6MTE6MjEsNDkyOiBFUlJPUglTVERFUlI6CUNoZWNrIEV4dGVuc2lvbiBOb2RlCjIwMTkt MTItMTEgMTc6MTE6MjEsNDkyOiBFUlJPUglTVERFUlI6CSAuLi4KMjAxOS0xMi0xMSAxNzoxMToy MSw0OTY6IElORk8JZmxhc2suYXBwOglDb25uZWN0aW9uIFJlcXVlc3QgZm9yIHNlcnZlciMyCjIw MTktMTItMTEgMTc6MTE6MjEsNTAzOiBJTkZPCWZsYXNrLmFwcDoJQ29ubmVjdGlvbiBFc3RhYmxp c2hlZCBmb3Igc2VydmVyOiAgICAgICAgICAgICAgICAgMiAtIFBvc3RncmVTUUwgOS40CjIwMTkt MTItMTEgMTc6MTE6MjEsNTAzOiBTUUwJZmxhc2suYXBwOglFeGVjdXRlIChkaWN0KSBmb3Igc2Vy dmVyICMyIC0gREI6cG9zdGdyZXMgKFF1ZXJ5LWlkOiA2MTIxNzY3KToKU0VMRUNUIENBU0UgV0hF TiB1c2VzdXBlcgogICAgICAgVEhFTiBwZ19pc19pbl9yZWNvdmVyeSgpCiAgICAgICBFTFNFIEZB TFNFCiAgICAgICBFTkQgYXMgaW5yZWNvdmVyeSwKICAgICAgIENBU0UgV0hFTiB1c2VzdXBlciBB TkQgcGdfaXNfaW5fcmVjb3ZlcnkoKQogICAgICAgVEhFTiBwZ19pc193YWxfcmVwbGF5X3BhdXNl ZCgpCiAgICAgICBFTFNFIEZBTFNFCiAgICAgICBFTkQgYXMgaXNyZXBsYXlwYXVzZWQKRlJPTSBw Z191c2VyIFdIRVJFIHVzZW5hbWU9Y3VycmVudF91c2VyCjIwMTktMTItMTEgMTc6MTE6MjEsNTA4 OiBFUlJPUglTVERFUlI6CVRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKMjAxOS0x Mi0xMSAxNzoxMToyMSw1MDg6IEVSUk9SCVNUREVSUjoJICBGaWxlICIvaG9tZS9rYXJhbi9wZ2Fk bWluNC93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv ZXh0ZW5zaW9ucy90ZXN0cy91dGlscy5weSIsIGxpbmUgNTMsIGluIGNyZWF0ZV9leHRlbnNpb24K MjAxOS0xMi0xMSAxNzoxMToyMSw1MDg6IEVSUk9SCVNUREVSUjoJICAgIHNjaGVtYV9uYW1lKSkK MjAxOS0xMi0xMSAxNzoxMToyMSw1MDg6IEVSUk9SCVNUREVSUjoJcHN5Y29wZzIuZXJyb3JzLlVu ZGVmaW5lZEZpbGU6IGNvdWxkIG5vdCBvcGVuIGV4dGVuc2lvbiBjb250cm9sIGZpbGUgIi91c3Iv bG9jYWwvcGdzcWwvc2hhcmUvZXh0ZW5zaW9uL2N1YmUuY29udHJvbCI6IE5vIHN1Y2ggZmlsZSBv ciBkaXJlY3RvcnkKMjAxOS0xMi0xMSAxNzoxMToyMSw1MTI6IElORk8JZmxhc2suYXBwOglDb25u ZWN0aW9uIFJlcXVlc3QgZm9yIHNlcnZlciMyCjIwMTktMTItMTEgMTc6MTE6MjEsNTE4OiBJTkZP CWZsYXNrLmFwcDoJQ29ubmVjdGlvbiBFc3RhYmxpc2hlZCBmb3Igc2VydmVyOiAgICAgICAgICAg ICAgICAgMiAtIFBvc3RncmVTUUwgOS40CjIwMTktMTItMTEgMTc6MTE6MjEsNTE4OiBTUUwJZmxh c2suYXBwOglFeGVjdXRlIChkaWN0KSBmb3Igc2VydmVyICMyIC0gREI6cG9zdGdyZXMgKFF1ZXJ5 LWlkOiAzNjgyMjIyKToKU0VMRUNUIENBU0UgV0hFTiB1c2VzdXBlcgogICAgICAgVEhFTiBwZ19p c19pbl9yZWNvdmVyeSgpCiAgICAgICBFTFNFIEZBTFNFCiAgICAgICBFTkQgYXMgaW5yZWNvdmVy eSwKICAgICAgIENBU0UgV0hFTiB1c2VzdXBlciBBTkQgcGdfaXNfaW5fcmVjb3ZlcnkoKQogICAg ICAgVEhFTiBwZ19pc193YWxfcmVwbGF5X3BhdXNlZCgpCiAgICAgICBFTFNFIEZBTFNFCiAgICAg ICBFTkQgYXMgaXNyZXBsYXlwYXVzZWQKRlJPTSBwZ191c2VyIFdIRVJFIHVzZW5hbWU9Y3VycmVu dF91c2VyCjIwMTktMTItMTEgMTc6MTE6MjEsNTI2OiBTUUwJZmxhc2suYXBwOglFeGVjdXRlIChk aWN0KSBmb3Igc2VydmVyICMyIC0gREI6cG9zdGdyZXMgKFF1ZXJ5LWlkOiA3OTA1MDkzKToKClNF TEVDVAogICAgZGIub2lkIGFzIGRpZCwgZGIuZGF0bmFtZSwgZGIuZGF0YWxsb3djb25uLAogICAg cGdfZW5jb2RpbmdfdG9fY2hhcihkYi5lbmNvZGluZykgQVMgc2VydmVyZW5jb2RpbmcsCiAgICBo YXNfZGF0YWJhc2VfcHJpdmlsZWdlKGRiLm9pZCwgJ0NSRUFURScpIGFzIGNhbmNyZWF0ZSwgZGF0 bGFzdHN5c29pZApGUk9NCiAgICBwZ19kYXRhYmFzZSBkYgpXSEVSRSBkYi5vaWQgPSAyNDYwNgoy MDE5LTEyLTExIDE3OjExOjIxLDUzMjogSU5GTwlmbGFzay5hcHA6CUNvbm5lY3Rpb24gRXN0YWJs aXNoZWQgZm9yIERhdGFiYXNlIElkOiAgICAgICAgICAgICAgICAgMjQ2MDYKMjAxOS0xMi0xMSAx NzoxMToyMSw1NDc6IEVSUk9SCVNUREVSUjoJRVJST1IKMjAxOS0xMi0xMSAxNzoxMToyMSw1NDc6 IEVSUk9SCVNUREVSUjoJcnVuVGVzdCAocGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2Vy dmVycy5kYXRhYmFzZXMuZXh0ZW5zaW9ucy50ZXN0cy50ZXN0X2V4dGVuc2lvbl9kZWxldGVfbXVs dGlwbGUuRXh0ZW5zaW9uc0RlbGV0ZU11bHRpcGxlVGVzdENhc2UpCjIwMTktMTItMTEgMTc6MTE6 MjEsNTQ3OiBFUlJPUglTVERFUlI6CUNoZWNrIEV4dGVuc2lvbiBOb2RlCjIwMTktMTItMTEgMTc6 MTE6MjEsNTQ3OiBFUlJPUglTVERFUlI6CSAuLi4KMjAxOS0xMi0xMSAxNzoxMToyMSw1NTM6IElO Rk8JZmxhc2suYXBwOglDb25uZWN0aW9uIFJlcXVlc3QgZm9yIHNlcnZlciMyCjIwMTktMTItMTEg MTc6MTE6MjEsNTU4OiBJTkZPCWZsYXNrLmFwcDoJQ29ubmVjdGlvbiBFc3RhYmxpc2hlZCBmb3Ig c2VydmVyOiAgICAgICAgICAgICAgICAgMiAtIFBvc3RncmVTUUwgOS40CjIwMTktMTItMTEgMTc6 MTE6MjEsNTU4OiBTUUwJZmxhc2suYXBwOglFeGVjdXRlIChkaWN0KSBmb3Igc2VydmVyICMyIC0g REI6cG9zdGdyZXMgKFF1ZXJ5LWlkOiAzNjg5MTQ1KToKU0VMRUNUIENBU0UgV0hFTiB1c2VzdXBl cgogICAgICAgVEhFTiBwZ19pc19pbl9yZWNvdmVyeSgpCiAgICAgICBFTFNFIEZBTFNFCiAgICAg ICBFTkQgYXMgaW5yZWNvdmVyeSwKICAgICAgIENBU0UgV0hFTiB1c2VzdXBlciBBTkQgcGdfaXNf aW5fcmVjb3ZlcnkoKQogICAgICAgVEhFTiBwZ19pc193YWxfcmVwbGF5X3BhdXNlZCgpCiAgICAg ICBFTFNFIEZBTFNFCiAgICAgICBFTkQgYXMgaXNyZXBsYXlwYXVzZWQKRlJPTSBwZ191c2VyIFdI RVJFIHVzZW5hbWU9Y3VycmVudF91c2VyCjIwMTktMTItMTEgMTc6MTE6MjEsNTYyOiBFUlJPUglT VERFUlI6CVRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKMjAxOS0xMi0xMSAxNzox MToyMSw1NjI6IEVSUk9SCVNUREVSUjoJICBGaWxlICIvaG9tZS9rYXJhbi9wZ2FkbWluNC93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9u cy90ZXN0cy91dGlscy5weSIsIGxpbmUgNTMsIGluIGNyZWF0ZV9leHRlbnNpb24KMjAxOS0xMi0x MSAxNzoxMToyMSw1NjI6IEVSUk9SCVNUREVSUjoJICAgIHNjaGVtYV9uYW1lKSkKMjAxOS0xMi0x MSAxNzoxMToyMSw1NjI6IEVSUk9SCVNUREVSUjoJcHN5Y29wZzIuZXJyb3JzLlVuZGVmaW5lZEZp bGU6IGNvdWxkIG5vdCBvcGVuIGV4dGVuc2lvbiBjb250cm9sIGZpbGUgIi91c3IvbG9jYWwvcGdz cWwvc2hhcmUvZXh0ZW5zaW9uL2RibGluay5jb250cm9sIjogTm8gc3VjaCBmaWxlIG9yIGRpcmVj dG9yeQoyMDE5LTEyLTExIDE3OjExOjIxLDU2NTogRVJST1IJU1RERVJSOglUcmFjZWJhY2sgKG1v c3QgcmVjZW50IGNhbGwgbGFzdCk6CjIwMTktMTItMTEgMTc6MTE6MjEsNTY1OiBFUlJPUglTVERF UlI6CSAgRmlsZSAiL2hvbWUva2FyYW4vcGdhZG1pbjQvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdXRpbHMucHkiLCBs aW5lIDUzLCBpbiBjcmVhdGVfZXh0ZW5zaW9uCjIwMTktMTItMTEgMTc6MTE6MjEsNTY1OiBFUlJP UglTVERFUlI6CSAgICBzY2hlbWFfbmFtZSkpCjIwMTktMTItMTEgMTc6MTE6MjEsNTY1OiBFUlJP UglTVERFUlI6CXBzeWNvcGcyLmVycm9ycy5VbmRlZmluZWRGaWxlOiBjb3VsZCBub3Qgb3BlbiBl eHRlbnNpb24gY29udHJvbCBmaWxlICIvdXNyL2xvY2FsL3Bnc3FsL3NoYXJlL2V4dGVuc2lvbi9o c3RvcmUuY29udHJvbCI6IE5vIHN1Y2ggZmlsZSBvciBkaXJlY3RvcnkKMjAxOS0xMi0xMSAxNzox MToyMSw1Njk6IElORk8JZmxhc2suYXBwOglDb25uZWN0aW9uIFJlcXVlc3QgZm9yIHNlcnZlciMy CjIwMTktMTItMTEgMTc6MTE6MjEsNTc0OiBJTkZPCWZsYXNrLmFwcDoJQ29ubmVjdGlvbiBFc3Rh Ymxpc2hlZCBmb3Igc2VydmVyOiAgICAgICAgICAgICAgICAgMiAtIFBvc3RncmVTUUwgOS40CjIw MTktMTItMTEgMTc6MTE6MjEsNTc1OiBTUUwJZmxhc2suYXBwOglFeGVjdXRlIChkaWN0KSBmb3Ig c2VydmVyICMyIC0gREI6cG9zdGdyZXMgKFF1ZXJ5LWlkOiA2NDQwMzA2KToKU0VMRUNUIENBU0Ug V0hFTiB1c2VzdXBlcgogICAgICAgVEhFTiBwZ19pc19pbl9yZWNvdmVyeSgpCiAgICAgICBFTFNF IEZBTFNFCiAgICAgICBFTkQgYXMgaW5yZWNvdmVyeSwKICAgICAgIENBU0UgV0hFTiB1c2VzdXBl ciBBTkQgcGdfaXNfaW5fcmVjb3ZlcnkoKQogICAgICAgVEhFTiBwZ19pc193YWxfcmVwbGF5X3Bh dXNlZCgpCiAgICAgICBFTFNFIEZBTFNFCiAgICAgICBFTkQgYXMgaXNyZXBsYXlwYXVzZWQKRlJP TSBwZ191c2VyIFdIRVJFIHVzZW5hbWU9Y3VycmVudF91c2VyCjIwMTktMTItMTEgMTc6MTE6MjEs NTgzOiBTUUwJZmxhc2suYXBwOglFeGVjdXRlIChkaWN0KSBmb3Igc2VydmVyICMyIC0gREI6cG9z dGdyZXMgKFF1ZXJ5LWlkOiAyOTg5OTI1KToKClNFTEVDVAogICAgZGIub2lkIGFzIGRpZCwgZGIu ZGF0bmFtZSwgZGIuZGF0YWxsb3djb25uLAogICAgcGdfZW5jb2RpbmdfdG9fY2hhcihkYi5lbmNv ZGluZykgQVMgc2VydmVyZW5jb2RpbmcsCiAgICBoYXNfZGF0YWJhc2VfcHJpdmlsZWdlKGRiLm9p ZCwgJ0NSRUFURScpIGFzIGNhbmNyZWF0ZSwgZGF0bGFzdHN5c29pZApGUk9NCiAgICBwZ19kYXRh YmFzZSBkYgpXSEVSRSBkYi5vaWQgPSAyNDYwNgoyMDE5LTEyLTExIDE3OjExOjIxLDU4ODogSU5G TwlmbGFzay5hcHA6CUNvbm5lY3Rpb24gRXN0YWJsaXNoZWQgZm9yIERhdGFiYXNlIElkOiAgICAg ICAgICAgICAgICAgMjQ2MDYKMjAxOS0xMi0xMSAxNzoxMToyMSw2MDM6IEVSUk9SCVNUREVSUjoJ RVJST1IKMjAxOS0xMi0xMSAxNzoxMToyMSw2MDQ6IEVSUk9SCVNUREVSUjoJcnVuVGVzdCAocGdh ZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZW5zaW9ucy50 ZXN0cy50ZXN0X2V4dGVuc2lvbl9nZXQuRXh0ZW5zaW9uc0dldFRlc3RDYXNlKQoyMDE5LTEyLTEx IDE3OjExOjIxLDYwNDogRVJST1IJU1RERVJSOglDaGVjayBFeHRlbnNpb24gTm9kZQoyMDE5LTEy LTExIDE3OjExOjIxLDYwNDogRVJST1IJU1RERVJSOgkgLi4uCjIwMTktMTItMTEgMTc6MTE6MjEs NjA4OiBJTkZPCWZsYXNrLmFwcDoJQ29ubmVjdGlvbiBSZXF1ZXN0IGZvciBzZXJ2ZXIjMgoyMDE5 LTEyLTExIDE3OjExOjIxLDYxMzogSU5GTwlmbGFzay5hcHA6CUNvbm5lY3Rpb24gRXN0YWJsaXNo ZWQgZm9yIHNlcnZlcjogICAgICAgICAgICAgICAgIDIgLSBQb3N0Z3JlU1FMIDkuNAoyMDE5LTEy LTExIDE3OjExOjIxLDYxMzogU1FMCWZsYXNrLmFwcDoJRXhlY3V0ZSAoZGljdCkgZm9yIHNlcnZl ciAjMiAtIERCOnBvc3RncmVzIChRdWVyeS1pZDogMzM2OTIxOCk6ClNFTEVDVCBDQVNFIFdIRU4g dXNlc3VwZXIKICAgICAgIFRIRU4gcGdfaXNfaW5fcmVjb3ZlcnkoKQogICAgICAgRUxTRSBGQUxT RQogICAgICAgRU5EIGFzIGlucmVjb3ZlcnksCiAgICAgICBDQVNFIFdIRU4gdXNlc3VwZXIgQU5E IHBnX2lzX2luX3JlY292ZXJ5KCkKICAgICAgIFRIRU4gcGdfaXNfd2FsX3JlcGxheV9wYXVzZWQo KQogICAgICAgRUxTRSBGQUxTRQogICAgICAgRU5EIGFzIGlzcmVwbGF5cGF1c2VkCkZST00gcGdf dXNlciBXSEVSRSB1c2VuYW1lPWN1cnJlbnRfdXNlcgoyMDE5LTEyLTExIDE3OjExOjIxLDYxNzog RVJST1IJU1RERVJSOglUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CjIwMTktMTIt MTEgMTc6MTE6MjEsNjE3OiBFUlJPUglTVERFUlI6CSAgRmlsZSAiL2hvbWUva2FyYW4vcGdhZG1p bjQvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4 dGVuc2lvbnMvdGVzdHMvdXRpbHMucHkiLCBsaW5lIDUzLCBpbiBjcmVhdGVfZXh0ZW5zaW9uCjIw MTktMTItMTEgMTc6MTE6MjEsNjE3OiBFUlJPUglTVERFUlI6CSAgICBzY2hlbWFfbmFtZSkpCjIw MTktMTItMTEgMTc6MTE6MjEsNjE3OiBFUlJPUglTVERFUlI6CXBzeWNvcGcyLmVycm9ycy5VbmRl ZmluZWRGaWxlOiBjb3VsZCBub3Qgb3BlbiBleHRlbnNpb24gY29udHJvbCBmaWxlICIvdXNyL2xv Y2FsL3Bnc3FsL3NoYXJlL2V4dGVuc2lvbi9jdWJlLmNvbnRyb2wiOiBObyBzdWNoIGZpbGUgb3Ig ZGlyZWN0b3J5CjIwMTktMTItMTEgMTc6MTE6MjEsNjIxOiBJTkZPCWZsYXNrLmFwcDoJQ29ubmVj dGlvbiBSZXF1ZXN0IGZvciBzZXJ2ZXIjMgoyMDE5LTEyLTExIDE3OjExOjIxLDYyNjogSU5GTwlm bGFzay5hcHA6CUNvbm5lY3Rpb24gRXN0YWJsaXNoZWQgZm9yIHNlcnZlcjogICAgICAgICAgICAg ICAgIDIgLSBQb3N0Z3JlU1FMIDkuNAoyMDE5LTEyLTExIDE3OjExOjIxLDYyNjogU1FMCWZsYXNr LmFwcDoJRXhlY3V0ZSAoZGljdCkgZm9yIHNlcnZlciAjMiAtIERCOnBvc3RncmVzIChRdWVyeS1p ZDogODQ2MzYwNyk6ClNFTEVDVCBDQVNFIFdIRU4gdXNlc3VwZXIKICAgICAgIFRIRU4gcGdfaXNf aW5fcmVjb3ZlcnkoKQogICAgICAgRUxTRSBGQUxTRQogICAgICAgRU5EIGFzIGlucmVjb3Zlcnks CiAgICAgICBDQVNFIFdIRU4gdXNlc3VwZXIgQU5EIHBnX2lzX2luX3JlY292ZXJ5KCkKICAgICAg IFRIRU4gcGdfaXNfd2FsX3JlcGxheV9wYXVzZWQoKQogICAgICAgRUxTRSBGQUxTRQogICAgICAg RU5EIGFzIGlzcmVwbGF5cGF1c2VkCkZST00gcGdfdXNlciBXSEVSRSB1c2VuYW1lPWN1cnJlbnRf dXNlcgoyMDE5LTEyLTExIDE3OjExOjIxLDYzNDogU1FMCWZsYXNrLmFwcDoJRXhlY3V0ZSAoZGlj dCkgZm9yIHNlcnZlciAjMiAtIERCOnBvc3RncmVzIChRdWVyeS1pZDogOTE4OTExMyk6CgpTRUxF Q1QKICAgIGRiLm9pZCBhcyBkaWQsIGRiLmRhdG5hbWUsIGRiLmRhdGFsbG93Y29ubiwKICAgIHBn X2VuY29kaW5nX3RvX2NoYXIoZGIuZW5jb2RpbmcpIEFTIHNlcnZlcmVuY29kaW5nLAogICAgaGFz X2RhdGFiYXNlX3ByaXZpbGVnZShkYi5vaWQsICdDUkVBVEUnKSBhcyBjYW5jcmVhdGUsIGRhdGxh c3RzeXNvaWQKRlJPTQogICAgcGdfZGF0YWJhc2UgZGIKV0hFUkUgZGIub2lkID0gMjQ2MDYKMjAx OS0xMi0xMSAxNzoxMToyMSw2NDA6IElORk8JZmxhc2suYXBwOglDb25uZWN0aW9uIEVzdGFibGlz aGVkIGZvciBEYXRhYmFzZSBJZDogICAgICAgICAgICAgICAgIDI0NjA2CjIwMTktMTItMTEgMTc6 MTE6MjEsNjQ4OiBFUlJPUglmbGFzay5hcHA6CTQwNCBOb3QgRm91bmQ6IFRoZSByZXF1ZXN0ZWQg VVJMIHdhcyBub3QgZm91bmQgb24gdGhlIHNlcnZlci4gSWYgeW91IGVudGVyZWQgdGhlIFVSTCBt YW51YWxseSBwbGVhc2UgY2hlY2sgeW91ciBzcGVsbGluZyBhbmQgdHJ5IGFnYWluLgpUcmFjZWJh Y2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CiAgRmlsZSAiL2hvbWUva2FyYW4vYWx0cGcvbGli L3B5dGhvbjMuNi9zaXRlLXBhY2thZ2VzL2ZsYXNrL2FwcC5weSIsIGxpbmUgMTgxMywgaW4gZnVs bF9kaXNwYXRjaF9yZXF1ZXN0CiAgICBydiA9IHNlbGYuZGlzcGF0Y2hfcmVxdWVzdCgpCiAgRmls ZSAiL2hvbWUva2FyYW4vYWx0cGcvbGliL3B5dGhvbjMuNi9zaXRlLXBhY2thZ2VzL2ZsYXNrL2Fw cC5weSIsIGxpbmUgMTc5MSwgaW4gZGlzcGF0Y2hfcmVxdWVzdAogICAgc2VsZi5yYWlzZV9yb3V0 aW5nX2V4Y2VwdGlvbihyZXEpCiAgRmlsZSAiL2hvbWUva2FyYW4vYWx0cGcvbGliL3B5dGhvbjMu Ni9zaXRlLXBhY2thZ2VzL2ZsYXNrL2FwcC5weSIsIGxpbmUgMTc3NCwgaW4gcmFpc2Vfcm91dGlu Z19leGNlcHRpb24KICAgIHJhaXNlIHJlcXVlc3Qucm91dGluZ19leGNlcHRpb24KICBGaWxlICIv aG9tZS9rYXJhbi9hbHRwZy9saWIvcHl0aG9uMy42L3NpdGUtcGFja2FnZXMvZmxhc2svY3R4LnB5 IiwgbGluZSAzMzYsIGluIG1hdGNoX3JlcXVlc3QKICAgIHNlbGYudXJsX2FkYXB0ZXIubWF0Y2go cmV0dXJuX3J1bGU9VHJ1ZSkKICBGaWxlICIvaG9tZS9rYXJhbi9hbHRwZy9saWIvcHl0aG9uMy42 L3NpdGUtcGFja2FnZXMvd2Vya3pldWcvcm91dGluZy5weSIsIGxpbmUgMTc5OSwgaW4gbWF0Y2gK ICAgIHJhaXNlIE5vdEZvdW5kKCkKd2Vya3pldWcuZXhjZXB0aW9ucy5Ob3RGb3VuZDogNDA0IE5v dCBGb3VuZDogVGhlIHJlcXVlc3RlZCBVUkwgd2FzIG5vdCBmb3VuZCBvbiB0aGUgc2VydmVyLiBJ ZiB5b3UgZW50ZXJlZCB0aGUgVVJMIG1hbnVhbGx5IHBsZWFzZSBjaGVjayB5b3VyIHNwZWxsaW5n IGFuZCB0cnkgYWdhaW4uCjIwMTktMTItMTEgMTc6MTE6MjEsNjYzOiBFUlJPUglTVERFUlI6CUZB SUwKMjAxOS0xMi0xMSAxNzoxMToyMSw2NjM6IEVSUk9SCVNUREVSUjoJcnVuVGVzdCAocGdhZG1p bi5icm93c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZW5zaW9ucy50ZXN0 cy50ZXN0X2V4dGVuc2lvbl9wdXQuRXh0ZW5zaW9uc1B1dFRlc3RDYXNlKQoyMDE5LTEyLTExIDE3 OjExOjIxLDY2MzogRVJST1IJU1RERVJSOglDaGVjayBFeHRlbnNpb24gTm9kZQoyMDE5LTEyLTEx IDE3OjExOjIxLDY2MzogRVJST1IJU1RERVJSOgkgLi4uCjIwMTktMTItMTEgMTc6MTE6MjEsNjY4 OiBJTkZPCWZsYXNrLmFwcDoJQ29ubmVjdGlvbiBSZXF1ZXN0IGZvciBzZXJ2ZXIjMgoyMDE5LTEy LTExIDE3OjExOjIxLDY3MzogSU5GTwlmbGFzay5hcHA6CUNvbm5lY3Rpb24gRXN0YWJsaXNoZWQg Zm9yIHNlcnZlcjogICAgICAgICAgICAgICAgIDIgLSBQb3N0Z3JlU1FMIDkuNAoyMDE5LTEyLTEx IDE3OjExOjIxLDY3MzogU1FMCWZsYXNrLmFwcDoJRXhlY3V0ZSAoZGljdCkgZm9yIHNlcnZlciAj MiAtIERCOnBvc3RncmVzIChRdWVyeS1pZDogNzY3MTg4Nyk6ClNFTEVDVCBDQVNFIFdIRU4gdXNl c3VwZXIKICAgICAgIFRIRU4gcGdfaXNfaW5fcmVjb3ZlcnkoKQogICAgICAgRUxTRSBGQUxTRQog ICAgICAgRU5EIGFzIGlucmVjb3ZlcnksCiAgICAgICBDQVNFIFdIRU4gdXNlc3VwZXIgQU5EIHBn X2lzX2luX3JlY292ZXJ5KCkKICAgICAgIFRIRU4gcGdfaXNfd2FsX3JlcGxheV9wYXVzZWQoKQog ICAgICAgRUxTRSBGQUxTRQogICAgICAgRU5EIGFzIGlzcmVwbGF5cGF1c2VkCkZST00gcGdfdXNl ciBXSEVSRSB1c2VuYW1lPWN1cnJlbnRfdXNlcgoyMDE5LTEyLTExIDE3OjExOjIxLDY3NzogRVJS T1IJU1RERVJSOglUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6CjIwMTktMTItMTEg MTc6MTE6MjEsNjc3OiBFUlJPUglTVERFUlI6CSAgRmlsZSAiL2hvbWUva2FyYW4vcGdhZG1pbjQv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVu c2lvbnMvdGVzdHMvdXRpbHMucHkiLCBsaW5lIDUzLCBpbiBjcmVhdGVfZXh0ZW5zaW9uCjIwMTkt MTItMTEgMTc6MTE6MjEsNjc4OiBFUlJPUglTVERFUlI6CSAgICBzY2hlbWFfbmFtZSkpCjIwMTkt MTItMTEgMTc6MTE6MjEsNjc4OiBFUlJPUglTVERFUlI6CXBzeWNvcGcyLmVycm9ycy5VbmRlZmlu ZWRGaWxlOiBjb3VsZCBub3Qgb3BlbiBleHRlbnNpb24gY29udHJvbCBmaWxlICIvdXNyL2xvY2Fs L3Bnc3FsL3NoYXJlL2V4dGVuc2lvbi9jdWJlLmNvbnRyb2wiOiBObyBzdWNoIGZpbGUgb3IgZGly ZWN0b3J5CjIwMTktMTItMTEgMTc6MTE6MjEsNjgzOiBJTkZPCWZsYXNrLmFwcDoJQ29ubmVjdGlv biBSZXF1ZXN0IGZvciBzZXJ2ZXIjMgoyMDE5LTEyLTExIDE3OjExOjIxLDY4ODogSU5GTwlmbGFz ay5hcHA6CUNvbm5lY3Rpb24gRXN0YWJsaXNoZWQgZm9yIHNlcnZlcjogICAgICAgICAgICAgICAg IDIgLSBQb3N0Z3JlU1FMIDkuNAoyMDE5LTEyLTExIDE3OjExOjIxLDY4ODogU1FMCWZsYXNrLmFw cDoJRXhlY3V0ZSAoZGljdCkgZm9yIHNlcnZlciAjMiAtIERCOnBvc3RncmVzIChRdWVyeS1pZDog NDk2MjIxOSk6ClNFTEVDVCBDQVNFIFdIRU4gdXNlc3VwZXIKICAgICAgIFRIRU4gcGdfaXNfaW5f cmVjb3ZlcnkoKQogICAgICAgRUxTRSBGQUxTRQogICAgICAgRU5EIGFzIGlucmVjb3ZlcnksCiAg ICAgICBDQVNFIFdIRU4gdXNlc3VwZXIgQU5EIHBnX2lzX2luX3JlY292ZXJ5KCkKICAgICAgIFRI RU4gcGdfaXNfd2FsX3JlcGxheV9wYXVzZWQoKQogICAgICAgRUxTRSBGQUxTRQogICAgICAgRU5E IGFzIGlzcmVwbGF5cGF1c2VkCkZST00gcGdfdXNlciBXSEVSRSB1c2VuYW1lPWN1cnJlbnRfdXNl cgoyMDE5LTEyLTExIDE3OjExOjIxLDY5ODogU1FMCWZsYXNrLmFwcDoJRXhlY3V0ZSAoZGljdCkg Zm9yIHNlcnZlciAjMiAtIERCOnBvc3RncmVzIChRdWVyeS1pZDogMjI4MDcwNSk6CgpTRUxFQ1QK ICAgIGRiLm9pZCBhcyBkaWQsIGRiLmRhdG5hbWUsIGRiLmRhdGFsbG93Y29ubiwKICAgIHBnX2Vu Y29kaW5nX3RvX2NoYXIoZGIuZW5jb2RpbmcpIEFTIHNlcnZlcmVuY29kaW5nLAogICAgaGFzX2Rh dGFiYXNlX3ByaXZpbGVnZShkYi5vaWQsICdDUkVBVEUnKSBhcyBjYW5jcmVhdGUsIGRhdGxhc3Rz eXNvaWQKRlJPTQogICAgcGdfZGF0YWJhc2UgZGIKV0hFUkUgZGIub2lkID0gMjQ2MDYKMjAxOS0x Mi0xMSAxNzoxMToyMSw3MDQ6IElORk8JZmxhc2suYXBwOglDb25uZWN0aW9uIEVzdGFibGlzaGVk IGZvciBEYXRhYmFzZSBJZDogICAgICAgICAgICAgICAgIDI0NjA2CjIwMTktMTItMTEgMTc6MTE6 MjEsNzIyOiBFUlJPUglTVERFUlI6CUVSUk9SCjIwMTktMTItMTEgMTc6MTE6MjEsNzIyOiBFUlJP UglTVERFUlI6CXJ1blRlc3QgKHJlZ3Jlc3Npb24ucmVfc3FsLnRlc3RzLnRlc3RfcmVzcWwuUmV2 ZXJzZUVuZ2luZWVyZWRTUUxUZXN0Q2FzZXMpCjIwMTktMTItMTEgMTc6MTE6MjEsNzIyOiBFUlJP UglTVERFUlI6CVJldmVyc2UgRW5naW5lZXJlZCBTUUwgVGVzdCBDYXNlcwoyMDE5LTEyLTExIDE3 OjExOjIxLDcyMjogRVJST1IJU1RERVJSOgkgLi4uCjIwMTktMTItMTEgMTc6MTE6MjEsNzI3OiBJ TkZPCWZsYXNrLmFwcDoJQ29ubmVjdGlvbiBSZXF1ZXN0IGZvciBzZXJ2ZXIjMgoyMDE5LTEyLTEx IDE3OjExOjIxLDczMjogSU5GTwlmbGFzay5hcHA6CUNvbm5lY3Rpb24gRXN0YWJsaXNoZWQgZm9y IHNlcnZlcjogICAgICAgICAgICAgICAgIDIgLSBQb3N0Z3JlU1FMIDkuNAoyMDE5LTEyLTExIDE3 OjExOjIxLDczMjogU1FMCWZsYXNrLmFwcDoJRXhlY3V0ZSAoZGljdCkgZm9yIHNlcnZlciAjMiAt IERCOnBvc3RncmVzIChRdWVyeS1pZDogOTE3ODMwNik6ClNFTEVDVCBDQVNFIFdIRU4gdXNlc3Vw ZXIKICAgICAgIFRIRU4gcGdfaXNfaW5fcmVjb3ZlcnkoKQogICAgICAgRUxTRSBGQUxTRQogICAg ICAgRU5EIGFzIGlucmVjb3ZlcnksCiAgICAgICBDQVNFIFdIRU4gdXNlc3VwZXIgQU5EIHBnX2lz X2luX3JlY292ZXJ5KCkKICAgICAgIFRIRU4gcGdfaXNfd2FsX3JlcGxheV9wYXVzZWQoKQogICAg ICAgRUxTRSBGQUxTRQogICAgICAgRU5EIGFzIGlzcmVwbGF5cGF1c2VkCkZST00gcGdfdXNlciBX SEVSRSB1c2VuYW1lPWN1cnJlbnRfdXNlcgoyMDE5LTEyLTExIDE3OjExOjIxLDc0MTogU1FMCWZs YXNrLmFwcDoJRXhlY3V0ZSAoZGljdCkgZm9yIHNlcnZlciAjMiAtIERCOnBvc3RncmVzIChRdWVy eS1pZDogMjM0OTI5Nik6CgpTRUxFQ1QKICAgIGRiLm9pZCBhcyBkaWQsIGRiLmRhdG5hbWUsIGRi LmRhdGFsbG93Y29ubiwKICAgIHBnX2VuY29kaW5nX3RvX2NoYXIoZGIuZW5jb2RpbmcpIEFTIHNl cnZlcmVuY29kaW5nLAogICAgaGFzX2RhdGFiYXNlX3ByaXZpbGVnZShkYi5vaWQsICdDUkVBVEUn KSBhcyBjYW5jcmVhdGUsIGRhdGxhc3RzeXNvaWQKRlJPTQogICAgcGdfZGF0YWJhc2UgZGIKV0hF UkUgZGIub2lkID0gMjQ2MDYKMjAxOS0xMi0xMSAxNzoxMToyMSw3NDc6IElORk8JZmxhc2suYXBw OglDb25uZWN0aW9uIEVzdGFibGlzaGVkIGZvciBEYXRhYmFzZSBJZDogICAgICAgICAgICAgICAg IDI0NjA2CjIwMTktMTItMTEgMTc6MTE6MjEsNzY0OiBFUlJPUglTVERFUlI6CW9rCjIwMTktMTIt MTEgMTc6MTE6MjEsNzY1OiBFUlJPUglTVERFUlI6CT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMjAxOS0xMi0xMSAx NzoxMToyMSw3NjU6IEVSUk9SCVNUREVSUjoJRVJST1I6IHJ1blRlc3QgKHBnYWRtaW4uYnJvd3Nl ci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVuc2lvbnMudGVzdHMudGVzdF9l eHRlbnNpb25fZGVsZXRlLkV4dGVuc2lvbnNEZWxldGVUZXN0Q2FzZSkKMjAxOS0xMi0xMSAxNzox MToyMSw3NjU6IEVSUk9SCVNUREVSUjoJQ2hlY2sgRXh0ZW5zaW9uIE5vZGUKMjAxOS0xMi0xMSAx NzoxMToyMSw3NjU6IEVSUk9SCVNUREVSUjoJLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoyMDE5LTEyLTExIDE3OjEx OjIxLDc2NTogRVJST1IJU1RERVJSOglUcmFjZWJhY2sgKG1vc3QgcmVjZW50IGNhbGwgbGFzdCk6 CjIwMTktMTItMTEgMTc6MTE6MjEsNzY1OiBFUlJPUglTVERFUlI6CSAgRmlsZSAiL2hvbWUva2Fy YW4vcGdhZG1pbjQvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL2V4dGVuc2lvbnMvdGVzdHMvdGVzdF9leHRlbnNpb25fZGVsZXRlLnB5IiwgbGluZSA1 MCwgaW4gcnVuVGVzdAoyMDE5LTEyLTExIDE3OjExOjIxLDc2NTogRVJST1IJU1RERVJSOgkgICAg cmFpc2UgRXhjZXB0aW9uKCJDb3VsZCBub3QgZmluZCBleHRlbnNpb24uIikKMjAxOS0xMi0xMSAx NzoxMToyMSw3NjU6IEVSUk9SCVNUREVSUjoJRXhjZXB0aW9uOiBDb3VsZCBub3QgZmluZCBleHRl bnNpb24uCjIwMTktMTItMTEgMTc6MTE6MjEsNzY1OiBFUlJPUglTVERFUlI6CT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KMjAxOS0xMi0xMSAxNzoxMToyMSw3NjU6IEVSUk9SCVNUREVSUjoJRVJST1I6IHJ1blRlc3Qg KHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNlcnZlcnMuZGF0YWJhc2VzLmV4dGVuc2lv bnMudGVzdHMudGVzdF9leHRlbnNpb25fZGVsZXRlX211bHRpcGxlLkV4dGVuc2lvbnNEZWxldGVN dWx0aXBsZVRlc3RDYXNlKQoyMDE5LTEyLTExIDE3OjExOjIxLDc2NTogRVJST1IJU1RERVJSOglD aGVjayBFeHRlbnNpb24gTm9kZQoyMDE5LTEyLTExIDE3OjExOjIxLDc2NTogRVJST1IJU1RERVJS OgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCjIwMTktMTItMTEgMTc6MTE6MjEsNzY1OiBFUlJPUglTVERFUlI6CVRy YWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKMjAxOS0xMi0xMSAxNzoxMToyMSw3NjU6 IEVSUk9SCVNUREVSUjoJICBGaWxlICIvaG9tZS9rYXJhbi9wZ2FkbWluNC93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90ZXN0cy90 ZXN0X2V4dGVuc2lvbl9kZWxldGVfbXVsdGlwbGUucHkiLCBsaW5lIDU3LCBpbiBydW5UZXN0CjIw MTktMTItMTEgMTc6MTE6MjEsNzY1OiBFUlJPUglTVERFUlI6CSAgICByYWlzZSBFeGNlcHRpb24o IkNvdWxkIG5vdCBmaW5kIGV4dGVuc2lvbi4iKQoyMDE5LTEyLTExIDE3OjExOjIxLDc2NTogRVJS T1IJU1RERVJSOglFeGNlcHRpb246IENvdWxkIG5vdCBmaW5kIGV4dGVuc2lvbi4KMjAxOS0xMi0x MSAxNzoxMToyMSw3NjU6IEVSUk9SCVNUREVSUjoJPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoyMDE5LTEyLTExIDE3 OjExOjIxLDc2NTogRVJST1IJU1RERVJSOglFUlJPUjogcnVuVGVzdCAocGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZW5zaW9ucy50ZXN0cy50ZXN0X2V4 dGVuc2lvbl9wdXQuRXh0ZW5zaW9uc1B1dFRlc3RDYXNlKQoyMDE5LTEyLTExIDE3OjExOjIxLDc2 NTogRVJST1IJU1RERVJSOglDaGVjayBFeHRlbnNpb24gTm9kZQoyMDE5LTEyLTExIDE3OjExOjIx LDc2NTogRVJST1IJU1RERVJSOgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjIwMTktMTItMTEgMTc6MTE6MjEsNzY1 OiBFUlJPUglTVERFUlI6CVRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKMjAxOS0x Mi0xMSAxNzoxMToyMSw3NjY6IEVSUk9SCVNUREVSUjoJICBGaWxlICIvaG9tZS9rYXJhbi9wZ2Fk bWluNC93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv ZXh0ZW5zaW9ucy90ZXN0cy90ZXN0X2V4dGVuc2lvbl9wdXQucHkiLCBsaW5lIDUyLCBpbiBydW5U ZXN0CjIwMTktMTItMTEgMTc6MTE6MjEsNzY2OiBFUlJPUglTVERFUlI6CSAgICByYWlzZSBFeGNl cHRpb24oIkNvdWxkIG5vdCBmaW5kIGV4dGVuc2lvbi4iKQoyMDE5LTEyLTExIDE3OjExOjIxLDc2 NjogRVJST1IJU1RERVJSOglFeGNlcHRpb246IENvdWxkIG5vdCBmaW5kIGV4dGVuc2lvbi4KMjAx OS0xMi0xMSAxNzoxMToyMSw3NjY6IEVSUk9SCVNUREVSUjoJPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoyMDE5LTEy LTExIDE3OjExOjIxLDc2NjogRVJST1IJU1RERVJSOglGQUlMOiBydW5UZXN0IChwZ2FkbWluLmJy b3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5leHRlbnNpb25zLnRlc3RzLnRl c3RfZXh0ZW5zaW9uX2FkZC5FeHRlbnNpb25zQWRkVGVzdENhc2UpCjIwMTktMTItMTEgMTc6MTE6 MjEsNzY2OiBFUlJPUglTVERFUlI6CUNoZWNrIEV4dGVuc2lvbiBOb2RlCjIwMTktMTItMTEgMTc6 MTE6MjEsNzY2OiBFUlJPUglTVERFUlI6CS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KMjAxOS0xMi0xMSAxNzoxMToy MSw3NjY6IEVSUk9SCVNUREVSUjoJVHJhY2ViYWNrIChtb3N0IHJlY2VudCBjYWxsIGxhc3QpOgoy MDE5LTEyLTExIDE3OjExOjIxLDc2NjogRVJST1IJU1RERVJSOgkgIEZpbGUgIi9ob21lL2thcmFu L3BnYWRtaW40L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9leHRlbnNpb25zL3Rlc3RzL3Rlc3RfZXh0ZW5zaW9uX2FkZC5weSIsIGxpbmUgNTAsIGlu IHJ1blRlc3QKMjAxOS0xMi0xMSAxNzoxMToyMSw3NjY6IEVSUk9SCVNUREVSUjoJICAgIHNlbGYu YXNzZXJ0RXF1YWxzKHJlc3BvbnNlLnN0YXR1c19jb2RlLCAyMDApCjIwMTktMTItMTEgMTc6MTE6 MjEsNzY2OiBFUlJPUglTVERFUlI6CUFzc2VydGlvbkVycm9yOiA1MDAgIT0gMjAwCjIwMTktMTIt MTEgMTc6MTE6MjEsNzY2OiBFUlJPUglTVERFUlI6CT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMjAxOS0xMi0xMSAx NzoxMToyMSw3NjY6IEVSUk9SCVNUREVSUjoJRkFJTDogcnVuVGVzdCAocGdhZG1pbi5icm93c2Vy LnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMuZXh0ZW5zaW9ucy50ZXN0cy50ZXN0X2V4 dGVuc2lvbl9nZXQuRXh0ZW5zaW9uc0dldFRlc3RDYXNlKQoyMDE5LTEyLTExIDE3OjExOjIxLDc2 NjogRVJST1IJU1RERVJSOglDaGVjayBFeHRlbnNpb24gTm9kZQoyMDE5LTEyLTExIDE3OjExOjIx LDc2NjogRVJST1IJU1RERVJSOgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjIwMTktMTItMTEgMTc6MTE6MjEsNzY2 OiBFUlJPUglTVERFUlI6CVRyYWNlYmFjayAobW9zdCByZWNlbnQgY2FsbCBsYXN0KToKMjAxOS0x Mi0xMSAxNzoxMToyMSw3NjY6IEVSUk9SCVNUREVSUjoJICBGaWxlICIvaG9tZS9rYXJhbi9wZ2Fk bWluNC93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv ZXh0ZW5zaW9ucy90ZXN0cy90ZXN0X2V4dGVuc2lvbl9nZXQucHkiLCBsaW5lIDUyLCBpbiBydW5U ZXN0CjIwMTktMTItMTEgMTc6MTE6MjEsNzY3OiBFUlJPUglTVERFUlI6CSAgICBzZWxmLmFzc2Vy dEVxdWFscyhyZXNwb25zZS5zdGF0dXNfY29kZSwgMjAwKQoyMDE5LTEyLTExIDE3OjExOjIxLDc2 NzogRVJST1IJU1RERVJSOglBc3NlcnRpb25FcnJvcjogNDA0ICE9IDIwMAoyMDE5LTEyLTExIDE3 OjExOjIxLDc2NzogRVJST1IJU1RERVJSOgktLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCjIwMTktMTItMTEgMTc6MTE6 MjEsNzY3OiBFUlJPUglTVERFUlI6CVJhbiA2IHRlc3RzIGluIDAuMzQ5cwoyMDE5LTEyLTExIDE3 OjExOjIxLDc2NzogRVJST1IJU1RERVJSOglGQUlMRUQKMjAxOS0xMi0xMSAxNzoxMToyMSw3Njc6 IEVSUk9SCVNUREVSUjoJIChmYWlsdXJlcz0yLCBlcnJvcnM9MykKMjAxOS0xMi0xMSAxNzoxMToy MywxOTY6IEVSUk9SCVNUREVSUjoJCjIwMTktMTItMTEgMTc6MTE6MjMsMTk2OiBFUlJPUglTVERF UlI6CT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KMjAxOS0xMi0xMSAxNzoxMToyMywxOTc6IEVSUk9SCVNUREVSUjoJ VGVzdCBSZXN1bHQgU3VtbWFyeQoyMDE5LTEyLTExIDE3OjExOjIzLDE5NzogRVJST1IJU1RERVJS Ogk9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09CjIwMTktMTItMTEgMTc6MTE6MjMsMTk3OiBFUlJPUglTVERFUlI6CVBv c3RncmVTUUwgOS40OgoyMDE5LTEyLTExIDE3OjExOjIzLDE5ODogRVJST1IJU1RERVJSOgkKMjAx OS0xMi0xMSAxNzoxMToyMywxOTg6IEVSUk9SCVNUREVSUjoJCTEgdGVzdCBwYXNzZWQKMjAxOS0x Mi0xMSAxNzoxMToyMywxOTg6IEVSUk9SCVNUREVSUjoJCTUgdGVzdHMgZmFpbGVkOgoyMDE5LTEy LTExIDE3OjExOjIzLDE5ODogRVJST1IJU1RERVJSOgkJCUV4dGVuc2lvbnNBZGRUZXN0Q2FzZSAo Q2hlY2sgRXh0ZW5zaW9uIE5vZGUpCjIwMTktMTItMTEgMTc6MTE6MjMsMTk4OiBFUlJPUglTVERF UlI6CQkJRXh0ZW5zaW9uc0dldFRlc3RDYXNlIChDaGVjayBFeHRlbnNpb24gTm9kZSkKMjAxOS0x Mi0xMSAxNzoxMToyMywxOTg6IEVSUk9SCVNUREVSUjoJCQlFeHRlbnNpb25zRGVsZXRlVGVzdENh c2UgKENoZWNrIEV4dGVuc2lvbiBOb2RlKQoyMDE5LTEyLTExIDE3OjExOjIzLDE5ODogRVJST1IJ U1RERVJSOgkJCUV4dGVuc2lvbnNEZWxldGVNdWx0aXBsZVRlc3RDYXNlIChDaGVjayBFeHRlbnNp b24gTm9kZSkKMjAxOS0xMi0xMSAxNzoxMToyMywxOTg6IEVSUk9SCVNUREVSUjoJCQlFeHRlbnNp b25zUHV0VGVzdENhc2UgKENoZWNrIEV4dGVuc2lvbiBOb2RlKQoyMDE5LTEyLTExIDE3OjExOjIz LDE5OTogRVJST1IJU1RERVJSOgkJMCB0ZXN0cyBza2lwcGVkCjIwMTktMTItMTEgMTc6MTE6MjMs MjAwOiBFUlJPUglTVERFUlI6CT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K --000000000000b5481305996c3701--