Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cc5dL-0006f8-Mp for pgadmin-hackers@arkaria.postgresql.org; Fri, 10 Feb 2017 07:28:44 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1cc5dL-0007LZ-8K for pgadmin-hackers@arkaria.postgresql.org; Fri, 10 Feb 2017 07:28:43 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1cc5d3-00076w-Fv for pgadmin-hackers@postgresql.org; Fri, 10 Feb 2017 07:28:26 +0000 Received: from mail-lf0-x235.google.com ([2a00:1450:4010:c07::235]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1cc5cy-0002ie-Eh for pgadmin-hackers@postgresql.org; Fri, 10 Feb 2017 07:28:23 +0000 Received: by mail-lf0-x235.google.com with SMTP id x1so16373907lff.0 for ; Thu, 09 Feb 2017 23:28:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=5GB27LGha1PPOItSObOZ1Pzb67aeBqbNEmYPr/egFsk=; b=0vOQSCJvjZOTDuRmyFaDc819b/TkeP/IiJYc1rfyn0eQ5GyfsLhlRH8suXsRC630mZ 4ZRIPyI05AiaXJH4zQ600HGNfgtQynkDxJMs69GFMjckhkQT2z+f8GhJ6bgkbO/ByrUo 4Zbuv9s+r7fjjXgjuf3fRpt29YlsfNtmlQggzxgvVTreeitXrQU4GLjFeaRf9sWDPuy2 KqUf363QhVsueLorfXy929j5on+heW/CXax7x2oqDTNt2YqrG1xUiEFgnNJFn/s3MuWr 00kf7xg+rm7rM7J9vyRD+ppNo1nhYXZpuwGMOvKM6gdrEpkyyuXEzXR+ZcKNYU+HiesU WP4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=5GB27LGha1PPOItSObOZ1Pzb67aeBqbNEmYPr/egFsk=; b=p0WDrXAb+V2MumH2f2JIm6nmQ4pPcJsjqgfX6NbPvZYZHPBH8gXdQQm1wH+9Ve0fl9 sXTeBAgRutxLrfIqLn4NakgyxGoRUHeb6aTrXGCvxLbazY4fJ2z+vvxIyt7MzVj5tCY5 U4VGh1ZVEOkEOkLNomGRlBZ12MtpueSuQL8KY4gfaQu1oKg1DkbzZn9sByiGG60WQDbl qIvz38dMtDRDqjKzRvZxyDy0RGOoMEx2HtlUEmoeScSrJUQoY7cWxUkNvsLGWFyKF/Ec Ll6yXtqecoPRRCftiuEL7SMa6rS/AuCYxoTihvd9HWzbEBAasKBxTxrvIoHgovL2xDF2 mNKQ== X-Gm-Message-State: AMke39lnaxojdAzilN2mX6GH4UaEtT1Zn2zmByX2ViSZGHEv3r9f4qz28VKTw8KFxmWtbI1EsPtT90xkdotaAzhy X-Received: by 10.25.17.29 with SMTP id g29mr2236636lfi.10.1486711698650; Thu, 09 Feb 2017 23:28:18 -0800 (PST) MIME-Version: 1.0 Received: by 10.25.41.201 with HTTP; Thu, 9 Feb 2017 23:28:17 -0800 (PST) In-Reply-To: References: From: Khushboo Vashi Date: Fri, 10 Feb 2017 12:58:17 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: RM 2089 - PARALLEL SAFE support for functions missing To: Dave Page Cc: Akshay Joshi , pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11407b56aea79d0548280ab0 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a11407b56aea79d0548280ab0 Content-Type: multipart/alternative; boundary=001a11407b56aea7960548280aae --001a11407b56aea7960548280aae Content-Type: text/plain; charset=UTF-8 Hi, Please find the attached updated patch. Thanks, Khushboo On Fri, Feb 3, 2017 at 7:53 PM, Dave Page wrote: > > > On Fri, Feb 3, 2017 at 1:59 PM, Khushboo Vashi < > khushboo.vashi@enterprisedb.com> wrote: > >> >> >> On Fri, Feb 3, 2017 at 7:02 PM, Dave Page >> wrote: >> >>> I doubt the order matters, but feel free to change it if it bugs you :-) >>> >>> >> I have tried to create the function with both SQL commands. >> There is no bug, its just in pgAdmin4, if its not leakproof then we >> mentioned 'NOT LEAKPROOF' in the SQL. >> So, I am not sure, we should remove it or not. >> > > Well we should be consistent - we either list the full set of all options, > or just the non-default ones. The main thing is that we don't explicitly > show options that are the default in some cases, but not in others. > > Agreed. Fixed for LEAKPROOF and PARALLEL options. > >> On Fri, Feb 3, 2017 at 12:54 PM, Akshay Joshi < >>> akshay.joshi@enterprisedb.com> wrote: >>> >>>> Hi Dave >>>> >>>> I have reviewed the patch and after applying it output in pgAdmin4 >>>> >>>> CREATE OR REPLACE FUNCTION public.st_intersects(geom1 geometry, geom2 >>>> geometry) >>>> RETURNS boolean >>>> LANGUAGE 'sql' >>>> COST 100.0 >>>> *IMMUTABLE NOT LEAKPROOF * >>>> * PARALLEL SAFE* >>>> AS $function$ >>>> SELECT $1 OPERATOR(public.&&) $2 AND public._ST_Intersects($1,$2) >>>> $function$; >>>> >>>> but as per psql it should be >>>> >>>> CREATE OR REPLACE FUNCTION public.st_intersects(geom1 geometry, geom2 >>>> geometry) >>>> >>>> RETURNS boolean >>>> >>>> LANGUAGE sql >>>> >>>> *IMMUTABLE PARALLEL SAFE* >>>> >>>> AS $function$SELECT $1 OPERATOR(public.&&) $2 AND >>>> public._ST_Intersects($1,$2)$function$ >>>> >>>> >>>> is this behaviour correct?? >>>> >>>> >>>> >>>> On Fri, Feb 3, 2017 at 5:31 PM, Khushboo Vashi < >>>> khushboo.vashi@enterprisedb.com> wrote: >>>> >>>>> Hi, >>>>> >>>>> Please find the attached patch to fix RM 2089 : PARALLEL SAFE support >>>>> for functions missing. >>>>> >>>>> Fix: Incorporated the PARALLEL SAFE support for the functions and >>>>> procedures for PostgreSQL 9.6. >>>>> >>>>> Thanks, >>>>> Khushboo >>>>> >>>>> >>>>> >>>>> -- >>>>> Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) >>>>> To make changes to your subscription: >>>>> http://www.postgresql.org/mailpref/pgadmin-hackers >>>>> >>>>> >>>> >>>> >>>> -- >>>> *Akshay Joshi* >>>> *Principal Software Engineer * >>>> >>>> >>>> >>>> *Phone: +91 20-3058-9517 <+91%2020%203058%209517>Mobile: +91 >>>> 976-788-8246 <+91%2097678%2088246>* >>>> >>> >>> >>> >>> -- >>> Dave Page >>> VP, Chief Architect, Tools & Installers >>> EnterpriseDB: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >> >> > > > -- > Dave Page > VP, Chief Architect, Tools & Installers > EnterpriseDB: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > --001a11407b56aea7960548280aae Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find the attached updated pa= tch.

Thanks,
Khushboo

On Fri, Feb 3, 2017 at 7:53 PM, = Dave Page <dave.page@enterprisedb.com> wrote:


On Fri, Feb 3, 2017 at 1:59 PM, K= hushboo Vashi <khushboo.vashi@enterprisedb.com><= /span> wrote:


On Fri, Feb 3, 2017 at 7:02 PM,= Dave Page <dave.page@enterprisedb.com> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-l= eft-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;pa= dding-left:1ex">
I doubt the order matters, but feel free t= o change it if it bugs you :-)


I have tried to create the = function with both SQL commands.=C2=A0
There is no bug, its just = in pgAdmin4, if its not leakproof then we mentioned 'NOT LEAKPROOF'= =C2=A0in the SQL.
So, I am not sure, we should remove it or not.=

Well we sho= uld be consistent - we either list the full set of all options, or just the= non-default ones. The main thing is that we don't explicitly show opti= ons that are the default in some cases, but not in others.
=C2=A0
Agreed.=C2=A0 Fixed for LEAKPROOF and PARALLEL options.

On Fri, Feb 3, 2017 at 12:54 PM, Akshay J= oshi <akshay.joshi@enterprisedb.com> wrote:=
Hi Dave=C2=A0

I ha= ve reviewed the patch and after applying it output in pgAdmin4 =C2=A0
=

CREATE OR REPLACE FUNCTION public.st_intersects(ge= om1 geometry, geom2 geometry)
=C2=A0 =C2=A0 RETURNS boolean
=C2=A0 =C2=A0 LANGUAGE &#= 39;sql'
=C2=A0 =C2=A0 COST 100.0
=C2=A0 =C2=A0 I= MMUTABLE NOT LEAKPROOF=C2=A0
=C2=A0 =C2=A0 PARALLEL SAFE
AS $function$
SELECT $1 OPERATOR(public.&&) $2 AND public._ST_Intersects($= 1,$2)
$function$;

but as per psql it should be=C2=A0
<= br>

CREATE OR REPLACE FUNCTION public.st_intersects(geom1 geomet= ry, geom2 geometry)

=C2=A0RETURNS boolean

=C2=A0LANGUAGE sql

=C2=A0IMMUTABLE PARALLEL SAFE

AS $function$SELECT $1 OPERATOR(public.&&) $2 AND public._ST_Inter= sects($1,$2)$function$


is this behaviour correct??



On Fri, Feb 3= , 2017 at 5:31 PM, Khushboo Vashi <khushboo.vashi@enterprise= db.com> wrote:
Hi,

Please find the attached = patch to fix RM 2089 : PARALLEL SAFE support for functions missing.

Fix: Incorporated the =C2=A0PARALLEL SAFE support for the= functions and procedures for PostgreSQL 9.6.

Than= ks,
Khushboo



--
Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgadmin-ha= ckers




--
Akshay Joshi
Principal Software Engineer=C2= =A0


=
Pho= ne: +91 20-3058-9517
Mobile: +91 976-788-8246
<= /b>



--
Dave Page
VP, Chief Arc= hitect, Tools & Installers
EnterpriseDB: http://www.enterprisedb.com
The Enter= prise PostgreSQL Company

Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake




--
Dave Page
VP, Chief Architect, Tools & Installers
= EnterpriseDB: htt= p://www.enterprisedb.com
The Enterprise PostgreSQL Company

Bl= og: http://pgsnak= e.blogspot.com
Twitter: @pgsnake

--001a11407b56aea7960548280aae-- --001a11407b56aea79d0548280ab0 Content-Type: text/x-patch; charset=US-ASCII; name="RM_2089_ver1.patch" Content-Disposition: attachment; filename="RM_2089_ver1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_iyzhooin0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRfXy5weQpp bmRleCA1NTFmOGJiLi5lODAyNzViIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL19faW5pdF9fLnB5CkBAIC0xMDc1LDYgKzEwNzUsNyBA QCBjbGFzcyBGdW5jdGlvblZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlw ZVJlYWRlcik6CiAgICAgICAgICIiIgogCiAgICAgICAgIHZvbF9kaWN0ID0g eyd2JzogJ1ZPTEFUSUxFJywgJ3MnOiAnU1RBQkxFJywgJ2knOiAnSU1NVVRB QkxFJ30KKyAgICAgICAgcGFyYWxsZWxfZGljdCA9IHsndSc6ICdVTlNBRkUn LCAncyc6ICdTQUZFJywgJ3InOiAnUkVTVFJJQ1RFRCd9CiAKICAgICAgICAg IyBHZXQgU2NoZW1hIE5hbWUgZnJvbSBpdHMgT0lELgogICAgICAgICBpZiAn cHJvbmFtZXNwYWNlJyBpbiBkYXRhOgpAQCAtMTA4Myw2ICsxMDg0LDkgQEAg Y2xhc3MgRnVuY3Rpb25WaWV3KFBHQ2hpbGROb2RlVmlldywgRGF0YVR5cGVS ZWFkZXIpOgogICAgICAgICBpZiAncHJvdm9sYXRpbGUnIGluIGRhdGE6CiAg ICAgICAgICAgICBkYXRhWydwcm92b2xhdGlsZSddID0gdm9sX2RpY3RbZGF0 YVsncHJvdm9sYXRpbGUnXV0KIAorICAgICAgICBpZiAncHJvcGFyYWxsZWwn IGluIGRhdGE6CisgICAgICAgICAgICBkYXRhWydwcm9wYXJhbGxlbCddID0g cGFyYWxsZWxfZGljdFtkYXRhWydwcm9wYXJhbGxlbCddXQorCiAgICAgICAg IGlmIGZuaWQgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAjIEVkaXQgTW9k ZQogCkBAIC0xMDk2LDExICsxMTAwLDE1IEBAIGNsYXNzIEZ1bmN0aW9uVmll dyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAg ICAgIGlmICdwcm92b2xhdGlsZScgaW4gb2xkX2RhdGE6CiAgICAgICAgICAg ICAgICAgb2xkX2RhdGFbJ3Byb3ZvbGF0aWxlJ10gPSB2b2xfZGljdFtvbGRf ZGF0YVsncHJvdm9sYXRpbGUnXV0KIAorICAgICAgICAgICAgaWYgJ3Byb3Bh cmFsbGVsJyBpbiBvbGRfZGF0YToKKyAgICAgICAgICAgICAgICBvbGRfZGF0 YVsncHJvcGFyYWxsZWwnXSA9IHBhcmFsbGVsX2RpY3Rbb2xkX2RhdGFbJ3By b3BhcmFsbGVsJ11dCisKICAgICAgICAgICAgICMgSWYgYW55IG9mIHRoZSBi ZWxvdyBhcmd1bWVudCBpcyBjaGFuZ2VkLAogICAgICAgICAgICAgIyB0aGVu IENSRUFURSBPUiBSRVBMQUNFIFNRTCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGNh bGxlZAogICAgICAgICAgICAgZnVuX2NoYW5nZV9hcmdzID0gWydsYW5uYW1l JywgJ3Byb3NyYycsICdwcm9iaW4nLCAncHJvc3JjX2MnLAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdwcm92b2xhdGlsZScsICdwcm9pc3N0 cmljdCcsICdwcm9zZWNkZWYnLAotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdwcm9jb3N0JywgJ3Byb2xlYWtwcm9vZicsICdhcmd1bWVudHMn XQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9wYXJhbGxl bCcsICdwcm9jb3N0JywgJ3Byb2xlYWtwcm9vZicsCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJ2FyZ3VtZW50cyddCiAKICAgICAgICAgICAg IGRhdGFbJ2NoYW5nZV9mdW5jJ10gPSBGYWxzZQogICAgICAgICAgICAgZm9y IGFyZyBpbiBmdW5fY2hhbmdlX2FyZ3M6CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL2pzL2Z1bmN0 aW9ucy5qcyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vanMvZnVuY3Rpb25zLmpzCmluZGV4IDg2ZmFmOGUuLmRhYzQy OTQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vanMvZnVuY3Rpb25zLmpzCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vanMvZnVuY3Rp b25zLmpzCkBAIC0xNTcsNiArMTU3LDcgQEAgZnVuY3Rpb24oJCwgXywgUywg cGdBZG1pbiwgcGdCcm93c2VyLCBhbGVydGlmeSkgewogICAgICAgICAgIHBy b2lzc3RyaWN0OiB1bmRlZmluZWQsCiAgICAgICAgICAgcHJvc2VjZGVmOiB1 bmRlZmluZWQsIC8qIFNlY3VyaXR5IG9mIGRlZmluZXIgKi8KICAgICAgICAg ICBwcm9pc3dpbmRvdzogdW5kZWZpbmVkLCAvKiBXaW5kb3cgRnVuY3Rpb24g PyAqLworICAgICAgICAgIHByb3BhcmFsbGVsOiB1bmRlZmluZWQsIC8qIFBh cmFsbGVsIG1vZGUgKi8KICAgICAgICAgICBwcm9jb3N0OiB1bmRlZmluZWQs IC8qIEVzdGltYXRlZCBleGVjdXRpb24gQ29zdCAqLwogICAgICAgICAgIHBy b3Jvd3M6IHVuZGVmaW5lZCwgLyogRXN0aW1hdGVkIG51bWJlciBvZiByb3dz ICovCiAgICAgICAgICAgcHJvbGVha3Byb29mOiB1bmRlZmluZWQsCkBAIC0y NzcsNiArMjc4LDE0IEBAIGZ1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBn QnJvd3NlciwgYWxlcnRpZnkpIHsKICAgICAgICAgICAgZ3JvdXA6ICd7eyBf KCdPcHRpb25zJykgfX0nLCBjZWxsOidib29sZWFuJywgdHlwZTogJ3N3aXRj aCcsCiAgICAgICAgICAgICBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnLCB2aXNp YmxlOiAnaXNWaXNpYmxlJwogICAgICAgICB9LHsKKyAgICAgICAgICBpZDog J3Byb3BhcmFsbGVsJywgbGFiZWw6ICd7eyBfKCdQYXJhbGxlbCcpIH19Jywg Y2VsbDogJ3N0cmluZycsCisgICAgICAgICAgY29udHJvbDogJ25vZGUtYWph eC1vcHRpb25zJywgdHlwZTogJ3RleHQnLCBncm91cDogJ3t7IF8oJ09wdGlv bnMnKSB9fScsCisgICAgICAgICAgb3B0aW9uczpbCisgICAgICAgICAgICB7 J2xhYmVsJzogJ3t7IF8oJ1VOU0FGRScpIH19JywgJ3ZhbHVlJzogJ3UnfSwK KyAgICAgICAgICAgIHsnbGFiZWwnOiAne3sgXygnUkVTVFJJQ1RFRCcpIH19 JywgJ3ZhbHVlJzogJ3InfSwKKyAgICAgICAgICAgIHsnbGFiZWwnOiAne3sg XygnU0FGRScpIH19JywgJ3ZhbHVlJzogJ3MnfSwKKyAgICAgICAgICBdLCBk aXNhYmxlZDogJ2lzRGlzYWJsZWQnLCBtaW5fdmVyc2lvbjogOTA2MDAKKyAg ICAgICAgfSx7CiAgICAgICAgICAgaWQ6ICdwcm9jb3N0JywgbGFiZWw6ICd7 eyBfKCdFc3RpbWF0ZWQgY29zdCcpIH19JywgZ3JvdXA6ICd7eyBfKCdPcHRp b25zJykgfX0nLAogICAgICAgICAgIGNlbGw6J3N0cmluZycsIHR5cGU6ICd0 ZXh0JywgZGlzYWJsZWQ6ICdpc0Rpc2FibGVkJwogICAgICAgICB9LHsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjJfcGx1cy9jcmVhdGUuc3FsCmluZGV4IDYyNDNlMzMuLjMzMGM0NzggMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2NyZWF0ZS5zcWwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvOS4yX3BsdXMvY3JlYXRlLnNxbApAQCAtMTksNyArMTksNyBAQCBDUkVB VEV7JSBpZiBxdWVyeV90eXBlIGlzIGRlZmluZWQgJX17eycgT1IgUkVQTEFD RSd9fXslIGVuZGlmICV9IEZVTkNUSU9OIHt7IGNvbgogeyUgaWYgZGF0YS5w cm9jb3N0ICV9CiAgICAgQ09TVCB7e2RhdGEucHJvY29zdH19CiB7JSBlbmRp ZiAlfQotICAgIHslIGlmIGRhdGEucHJvdm9sYXRpbGUgJX17JSBpZiBkYXRh LnByb3ZvbGF0aWxlID09ICdpJyAlfUlNTVVUQUJMRXslIGVsaWYgZGF0YS5w cm92b2xhdGlsZSA9PSAncycgJX1TVEFCTEV7JSBlbHNlICV9Vk9MQVRJTEV7 JSBlbmRpZiAlfSB7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvbGVha3Byb29m ICV9TEVBS1BST09GIHslIGVsc2UgJX1OT1QgTEVBS1BST09GIHslIGVuZGlm ICV9CisgICAgeyUgaWYgZGF0YS5wcm92b2xhdGlsZSAlfXslIGlmIGRhdGEu cHJvdm9sYXRpbGUgPT0gJ2knICV9SU1NVVRBQkxFeyUgZWxpZiBkYXRhLnBy b3ZvbGF0aWxlID09ICdzJyAlfVNUQUJMRXslIGVsc2UgJX1WT0xBVElMRXsl IGVuZGlmICV9IHslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9sZWFrcHJvb2Yg JX1MRUFLUFJPT0YgeyUgZW5kaWYgJX0KIHslIGlmIGRhdGEucHJvaXNzdHJp Y3QgJX1TVFJJQ1QgeyUgZW5kaWYgJX0KIHslIGlmIGRhdGEucHJvc2VjZGVm ICV9U0VDVVJJVFkgREVGSU5FUiB7JSBlbmRpZiAlfQogeyUgaWYgZGF0YS5w cm9pc3dpbmRvdyAlfVdJTkRPV3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bn L3NxbC85LjJfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvdXBk YXRlLnNxbAppbmRleCAyODIwMTcyLi42NGNkMGEyIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bn L3NxbC85LjJfcGx1cy91cGRhdGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVz L3VwZGF0ZS5zcWwKQEAgLTIyLDcgKzIyLDcgQEAgQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG5hbWUpIH19KHslIGlmIGQKICAgICBMQU5HVUFHRSB7eyBkYXRhLmxh bm5hbWV8cXRMaXRlcmFsIH19IHslIGVsc2UgJX0KICAgICBMQU5HVUFHRSB7 eyBvX2RhdGEubGFubmFtZXxxdExpdGVyYWwgfX0KICAgICB7JSBlbmRpZiAl fXslIGlmICdwcm92b2xhdGlsZScgaW4gZGF0YSBhbmQgZGF0YS5wcm92b2xh dGlsZSAlfXt7IGRhdGEucHJvdm9sYXRpbGUgfX0geyUgZWxpZiAncHJvdm9s YXRpbGUnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvdm9sYXRpbGUgJX17 eyBvX2RhdGEucHJvdm9sYXRpbGUgfX17JSBlbmRpZiAlfQoteyUgaWYgKCdw cm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIGRhdGEucHJvbGVha3Byb29mKSBv ciAoJ3Byb2xlYWtwcm9vZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9s ZWFrcHJvb2YpICV9TEVBS1BST09GeyUgZWxpZiAncHJvbGVha3Byb29mJyBp biBkYXRhIGFuZCBub3QgZGF0YS5wcm9sZWFrcHJvb2YgJX1OT1QgTEVBS1BS T09GeyUgZW5kaWYgJX0KK3slIGlmICgncHJvbGVha3Byb29mJyBpbiBkYXRh IGFuZCBkYXRhLnByb2xlYWtwcm9vZikgb3IgKCdwcm9sZWFrcHJvb2YnIG5v dCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvbGVha3Byb29mKSAlfSBMRUFLUFJP T0Z7JSBlbGlmICdwcm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIG5vdCBkYXRh LnByb2xlYWtwcm9vZiAlfSBOT1QgTEVBS1BST09GeyUgZW5kaWYgJX0KIHsl IGlmICgncHJvaXNzdHJpY3QnIGluIGRhdGEgYW5kIGRhdGEucHJvaXNzdHJp Y3QpIG9yICgncHJvaXNzdHJpY3QnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEu cHJvaXNzdHJpY3QpICV9IFNUUklDVHslIGVuZGlmICV9CiB7JSBpZiAoJ3By b3NlY2RlZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9zZWNkZWYpIG9yICgncHJv c2VjZGVmJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb3NlY2RlZikgJX0g U0VDVVJJVFkgREVGSU5FUnslIGVuZGlmICV9CiB7JSBpZiAoJ3Byb2lzd2lu ZG93JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzd2luZG93KSBvciAoJ3Byb2lz d2luZG93JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzd2luZG93KSAl fSBXSU5ET1d7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3Bs dXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2NyZWF0ZS5zcWwKaW5k ZXggOTMzZGFhNS4uZGE0NjY0OSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3Bs dXMvY3JlYXRlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9jcmVhdGUuc3Fs CkBAIC0xOSw3ICsxOSw3IEBAIENSRUFURXslIGlmIHF1ZXJ5X3R5cGUgaXMg ZGVmaW5lZCAlfXt7JyBPUiBSRVBMQUNFJ319eyUgZW5kaWYgJX0gRlVOQ1RJ T04ge3sgY29uCiB7JSBpZiBkYXRhLnByb2Nvc3QgJX0KICAgICBDT1NUIHt7 ZGF0YS5wcm9jb3N0fX0KIHslIGVuZGlmICV9Ci0gICAgeyUgaWYgZGF0YS5w cm92b2xhdGlsZSAlfXslIGlmIGRhdGEucHJvdm9sYXRpbGUgPT0gJ2knICV9 SU1NVVRBQkxFeyUgZWxpZiBkYXRhLnByb3ZvbGF0aWxlID09ICdzJyAlfVNU QUJMRXslIGVsc2UgJX1WT0xBVElMRXslIGVuZGlmICV9IHslIGVuZGlmICV9 eyUgaWYgZGF0YS5wcm9sZWFrcHJvb2YgJX1MRUFLUFJPT0YgeyUgZWxzZSAl fU5PVCBMRUFLUFJPT0YgeyUgZW5kaWYgJX0KKyAgICB7JSBpZiBkYXRhLnBy b3ZvbGF0aWxlICV9eyUgaWYgZGF0YS5wcm92b2xhdGlsZSA9PSAnaScgJX1J TU1VVEFCTEV7JSBlbGlmIGRhdGEucHJvdm9sYXRpbGUgPT0gJ3MnICV9U1RB QkxFeyUgZWxzZSAlfVZPTEFUSUxFeyUgZW5kaWYgJX0geyUgZW5kaWYgJX17 JSBpZiBkYXRhLnByb2xlYWtwcm9vZiAlfUxFQUtQUk9PRiB7JSBlbmRpZiAl fQogeyUgaWYgZGF0YS5wcm9pc3N0cmljdCAlfVNUUklDVCB7JSBlbmRpZiAl fQogeyUgaWYgZGF0YS5wcm9zZWNkZWYgJX1TRUNVUklUWSBERUZJTkVSIHsl IGVuZGlmICV9CiB7JSBpZiBkYXRhLnByb2lzd2luZG93ICV9V0lORE9XeyUg ZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL3VwZGF0ZS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BnL3NxbC85LjVfcGx1cy91cGRhdGUuc3FsCmluZGV4IDUwNWVlMmEu LjRkZmViMTAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL3VwZGF0ZS5z cWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvdXBkYXRlLnNxbApAQCAtMjMsNyAr MjMsNyBAQCBDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB7eyBjb25ufHF0 SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oeyUgaWYgZAog ICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0geyUg ZWxzZSAlfQogICAgIExBTkdVQUdFIHt7IG9fZGF0YS5sYW5uYW1lfHF0TGl0 ZXJhbCB9fQogICAgIHslIGVuZGlmICV9eyUgaWYgJ3Byb3ZvbGF0aWxlJyBp biBkYXRhIGFuZCBkYXRhLnByb3ZvbGF0aWxlICV9e3sgZGF0YS5wcm92b2xh dGlsZSB9fSB7JSBlbGlmICdwcm92b2xhdGlsZScgbm90IGluIGRhdGEgYW5k IG9fZGF0YS5wcm92b2xhdGlsZSAlfXt7IG9fZGF0YS5wcm92b2xhdGlsZSB9 fXslIGVuZGlmICV9Ci17JSBpZiAoJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBh bmQgZGF0YS5wcm9sZWFrcHJvb2YpIG9yICgncHJvbGVha3Byb29mJyBub3Qg aW4gZGF0YSBhbmQgb19kYXRhLnByb2xlYWtwcm9vZikgJX1MRUFLUFJPT0Z7 JSBlbGlmICdwcm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIG5vdCBkYXRhLnBy b2xlYWtwcm9vZiAlfU5PVCBMRUFLUFJPT0Z7JSBlbmRpZiAlfQoreyUgaWYg KCdwcm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIGRhdGEucHJvbGVha3Byb29m KSBvciAoJ3Byb2xlYWtwcm9vZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5w cm9sZWFrcHJvb2YpICV9IExFQUtQUk9PRnslIGVsaWYgJ3Byb2xlYWtwcm9v ZicgaW4gZGF0YSBhbmQgbm90IGRhdGEucHJvbGVha3Byb29mICV9IE5PVCBM RUFLUFJPT0Z7JSBlbmRpZiAlfQogeyUgaWYgKCdwcm9pc3N0cmljdCcgaW4g ZGF0YSBhbmQgZGF0YS5wcm9pc3N0cmljdCkgb3IgKCdwcm9pc3N0cmljdCcg bm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNU eyUgZW5kaWYgJX0KIHslIGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBk YXRhLnByb3NlY2RlZikgb3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFu ZCBvX2RhdGEucHJvc2VjZGVmKSAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5k aWYgJX0KIHslIGlmICgncHJvaXN3aW5kb3cnIGluIGRhdGEgYW5kIGRhdGEu cHJvaXN3aW5kb3cpIG9yICgncHJvaXN3aW5kb3cnIG5vdCBpbiBkYXRhIGFu ZCBvX2RhdGEucHJvaXN3aW5kb3cpICV9IFdJTkRPV3slIGVuZGlmICV9CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BnL3NxbC85LjZfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwv OS42X3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5kNWJkZTBhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwv OS42X3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDY1IEBACit7JSBpbXBv cnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNM QUJFTCAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVn ZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3Mv ZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3sl IHNldCBpc19jb2x1bW5zID0gW10gJX0KK3slIGlmIGRhdGEgJX0KK3slIGlm IHF1ZXJ5X2ZvciA9PSAnc3FsX3BhbmVsJyBhbmQgZnVuY19kZWYgaXMgZGVm aW5lZCAlfQorQ1JFQVRFeyUgaWYgcXVlcnlfdHlwZSBpcyBkZWZpbmVkICV9 e3snIE9SIFJFUExBQ0UnfX17JSBlbmRpZiAlfSBGVU5DVElPTiB7e2Z1bmNf ZGVmfX0KK3slIGVsc2UgJX0KK0NSRUFURXslIGlmIHF1ZXJ5X3R5cGUgaXMg ZGVmaW5lZCAlfXt7JyBPUiBSRVBMQUNFJ319eyUgZW5kaWYgJX0gRlVOQ1RJ T04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5h bWUpIH19KHslIGlmIGRhdGEuYXJncyAlfQoreyUgZm9yIHAgaW4gZGF0YS5h cmdzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fSB7JSBlbmRp ZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25h bWUpIH19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9e3sgY29ubnxx dFR5cGVJZGVudChwLmFyZ3R5cGUpIH19eyUgZW5kaWYgJX17JSBpZiBwLmFy Z2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9 Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KKykKK3slIGVuZGlmICV9CisgICAgUkVU VVJOU3slIGlmIGRhdGEucHJvcmV0c2V0IGFuZCBkYXRhLnByb3JldHR5cGVu YW1lLnN0YXJ0c3dpdGgoJ1NFVE9GICcpICV9IHt7IGRhdGEucHJvcmV0dHlw ZW5hbWUgfX0geyUgZWxpZiBkYXRhLnByb3JldHNldCAlfSBTRVRPRiB7eyBj b25ufHF0VHlwZUlkZW50KGRhdGEucHJvcmV0dHlwZW5hbWUpIH19eyUgZWxz ZSAlfSB7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEucHJvcmV0dHlwZW5hbWUp IH19eyUgZW5kaWYgJX0KKworICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFt ZXxxdExpdGVyYWwgfX0KK3slIGlmIGRhdGEucHJvY29zdCAlfQorICAgIENP U1Qge3tkYXRhLnByb2Nvc3R9fQoreyUgZW5kaWYgJX0KKyAgICB7JSBpZiBk YXRhLnByb3ZvbGF0aWxlICV9eyUgaWYgZGF0YS5wcm92b2xhdGlsZSA9PSAn aScgJX1JTU1VVEFCTEV7JSBlbGlmIGRhdGEucHJvdm9sYXRpbGUgPT0gJ3Mn ICV9U1RBQkxFeyUgZWxzZSAlfVZPTEFUSUxFeyUgZW5kaWYgJX0geyUgZW5k aWYgJX17JSBpZiBkYXRhLnByb2xlYWtwcm9vZiAlfUxFQUtQUk9PRiB7JSBl bmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3N0cmljdCAlfVNUUklDVCB7JSBl bmRpZiAlfQoreyUgaWYgZGF0YS5wcm9zZWNkZWYgJX1TRUNVUklUWSBERUZJ TkVSIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lzd2luZG93ICV9V0lO RE9XIHslIGVuZGlmICV9CisKKyAgICB7JSBpZiBkYXRhLnByb3BhcmFsbGVs ICV9eyUgaWYgZGF0YS5wcm9wYXJhbGxlbCA9PSAncicgJX1QQVJBTExFTCBS RVNUUklDVEVEeyUgZWxpZiBkYXRhLnByb3BhcmFsbGVsID09ICdzJyAlfVBB UkFMTEVMIFNBRkV7JSBlbmRpZiAlfXslIGVuZGlmICV9Cit7JSBpZiBkYXRh LnByb3Jvd3MgJX0KKworICAgIFJPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVu ZGlmIC0lfXslIGlmIGRhdGEudmFyaWFibGVzICV9eyUgZm9yIHYgaW4gZGF0 YS52YXJpYWJsZXMgJX0KKworICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5u YW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAlfQor eyUgZW5kaWYgJX0KKworQVMgeyUgaWYgZGF0YS5sYW5uYW1lID09ICdjJyAl fQore3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBkYXRhLnByb3Ny Y19jfHF0TGl0ZXJhbCB9fQoreyUgZWxzZSAlfQorJGZ1bmN0aW9uJAore3sg ZGF0YS5wcm9zcmMgfX0KKyRmdW5jdGlvbiR7JSBlbmRpZiAtJX07Cit7JSBp ZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25u fHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oe3tk YXRhLmZ1bmNfYXJnc193aXRob3V0fX0pCisgICAgT1dORVIgVE8ge3sgY29u bnxxdElkZW50KGRhdGEuZnVuY293bmVyKSB9fTsKK3slIGVuZGlmIC0lfQor eyUgaWYgZGF0YS5hY2wgJX0KK3slIGZvciBwIGluIGRhdGEuYWNsICV9CisK K3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgIkZVTkNUSU9OIiwgcC5ncmFudGVl LCBkYXRhLm5hbWUsIHAud2l0aG91dF9ncmFudCwgcC53aXRoX2dyYW50LCBk YXRhLnByb25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3Nfd2l0aG91dCl9fQor eyUgZW5kZm9yICV9eyUgZW5kaWYgJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRp b24gJX0KKworQ09NTUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQo ZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oe3tkYXRhLmZ1bmNf YXJnc193aXRob3V0fX0pCisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxx dExpdGVyYWwgIH19OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnNlY2xh YmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlm IHIubGFiZWwgYW5kIHIucHJvdmlkZXIgJX0KKwore3sgU0VDTEFCRUwuU0VU KGNvbm4sICdGVU5DVElPTicsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5s YWJlbCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzX3dpdGhv dXQpIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAt JX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNl9wbHVz L3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjZfcGx1cy91cGRhdGUuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQ5ZWI5NGUKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjZfcGx1cy91cGRhdGUuc3FsCkBAIC0w LDAgKzEsMTE2IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2Vj dXJpdHkubWFjcm9zJyBhcyBTRUNMQUJFTCAlfQoreyUgaW1wb3J0ICdtYWNy b3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAl fQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3Jv cycgYXMgVkFSSUFCTEUgJX17JSBpZiBkYXRhICV9Cit7JSBzZXQgbmFtZSA9 IG9fZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgJX0KK3slIGlmIGRh dGEubmFtZSAhPSBvX2RhdGEubmFtZSAlfQorQUxURVIgRlVOQ1RJT04ge3sg Y29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5uYW1l KSB9fSh7eworb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBSRU5B TUUgVE8ge3sgY29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBzZXQg bmFtZSA9IGRhdGEubmFtZSAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0l fQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyAgJX0KKworQ1JFQVRFIE9SIFJF UExBQ0UgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1l c3BhY2UsIG5hbWUpIH19KHslIGlmIGRhdGEuYXJndW1lbnRzICV9Cit7JSBm b3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7 cC5hcmdtb2RlfX0geyUgZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX17eyBj b25ufHF0SWRlbnQocC5hcmduYW1lKSB9fSB7JSBlbmRpZiAlfXslIGlmIHAu YXJndHlwZSAlfXt7IGNvbm58cXRUeXBlSWRlbnQocC5hcmd0eXBlKSB9fXsl IGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJn ZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSx7 JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKykKKyAg ICBSRVRVUk5TIHt7IG9fZGF0YS5wcm9yZXR0eXBlbmFtZSB9fQoreyUgaWYg J2xhbm5hbWUnIGluIGRhdGEgJX0KKyAgICBMQU5HVUFHRSB7eyBkYXRhLmxh bm5hbWV8cXRMaXRlcmFsIH19IHslIGVsc2UgJX0KKyAgICBMQU5HVUFHRSB7 eyBvX2RhdGEubGFubmFtZXxxdExpdGVyYWwgfX0KKyAgICB7JSBlbmRpZiAl fXslIGlmICdwcm92b2xhdGlsZScgaW4gZGF0YSBhbmQgZGF0YS5wcm92b2xh dGlsZSAlfXt7IGRhdGEucHJvdm9sYXRpbGUgfX0geyUgZWxpZiAncHJvdm9s YXRpbGUnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvdm9sYXRpbGUgJX17 eyBvX2RhdGEucHJvdm9sYXRpbGUgfX17JSBlbmRpZiAlfQoreyUgaWYgKCdw cm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIGRhdGEucHJvbGVha3Byb29mKSBv ciAoJ3Byb2xlYWtwcm9vZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9s ZWFrcHJvb2YpICV9IExFQUtQUk9PRnslIGVsaWYgJ3Byb2xlYWtwcm9vZicg aW4gZGF0YSBhbmQgbm90IGRhdGEucHJvbGVha3Byb29mICV9IE5PVCBMRUFL UFJPT0Z7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9pc3N0cmljdCcgaW4gZGF0 YSBhbmQgZGF0YS5wcm9pc3N0cmljdCkgb3IgKCdwcm9pc3N0cmljdCcgbm90 IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNUeyUg ZW5kaWYgJX0KK3slIGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBkYXRh LnByb3NlY2RlZikgb3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFuZCBv X2RhdGEucHJvc2VjZGVmKSAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5kaWYg JX0KK3slIGlmICgncHJvaXN3aW5kb3cnIGluIGRhdGEgYW5kIGRhdGEucHJv aXN3aW5kb3cpIG9yICgncHJvaXN3aW5kb3cnIG5vdCBpbiBkYXRhIGFuZCBv X2RhdGEucHJvaXN3aW5kb3cpICV9IFdJTkRPV3slIGVuZGlmICV9CisKKyAg ICB7JSBpZiAncHJvcGFyYWxsZWwnIGluIGRhdGEgYW5kIGRhdGEucHJvcGFy YWxsZWwgJX1QQVJBTExFTCB7eyBkYXRhLnByb3BhcmFsbGVsIH19eyUgZWxp ZiAncHJvcGFyYWxsZWwnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvcGFy YWxsZWwgJX1QQVJBTExFTCB7eyBvX2RhdGEucHJvcGFyYWxsZWwgfX17JSBl bmRpZiAlfQorCisgICAgeyUgaWYgZGF0YS5wcm9jb3N0ICV9Q09TVCB7e2Rh dGEucHJvY29zdH19eyUgZWxpZiBvX2RhdGEucHJvY29zdCAlfUNPU1Qge3tv X2RhdGEucHJvY29zdH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3Mg JX0KKworICAgIFJPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVsaWYgb19kYXRh LnByb3Jvd3MgJX1ST1dTIHt7b19kYXRhLnByb3Jvd3N9fSB7JWVuZGlmIC0l fXslIGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRh dGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJ ZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5k Zm9yIC0lfQorICAgIHslIGVuZGlmICV9CisKK0FTIHslIGlmICdwcm9iaW4n IGluIGRhdGEgb3IgJ3Byb3NyY19jJyBpbiBkYXRhICV9Cit7JSBpZiAncHJv YmluJyBpbiBkYXRhICV9e3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUg ZWxzZSAlfXt7IG9fZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZW5kaWYg JX0sIHslIGlmICdwcm9zcmNfYycgaW4gZGF0YSAlfXt7IGRhdGEucHJvc3Jj X2N8cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9zcmNfY3xx dExpdGVyYWwgfX17JSBlbmRpZiAlfXslIGVsaWYgJ3Byb3NyYycgaW4gZGF0 YSAlfQorJGZ1bmN0aW9uJHt7IGRhdGEucHJvc3JjIH19JGZ1bmN0aW9uJHsl IGVsaWYgb19kYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBvX2RhdGEucHJv YmlufHF0TGl0ZXJhbCB9fSwge3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJh bCB9fXslIGVsc2UgJX0KKyRmdW5jdGlvbiR7eyBvX2RhdGEucHJvc3JjIH19 JGZ1bmN0aW9uJHslIGVuZGlmIC0lfTsKK3slIGVuZGlmIC0lfQoreyUgaWYg ZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxx dElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19kYXRh LnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBPV05FUiBUTyB7eyBjb25ufHF0 SWRlbnQoZGF0YS5mdW5jb3duZXIpIH19OworeyUgZW5kaWYgLSV9Cit7IyBU aGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZGdl cyAjfQoreyUgaWYgZGF0YS5hY2wgJX0KK3slIGlmICdkZWxldGVkJyBpbiBk YXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAl fQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywg cHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2Rh dGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUg Zm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQUklWSUxF R0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBu YW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5h bWVzKSB9fQorCit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTics IHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2 LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9h cmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQor eyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4g ZGF0YS5hY2wuYWRkZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAn RlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9n cmFudCwgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBv X2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9eyUgZW5k aWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMg PT0gRmFsc2UgJX0KK3slIGlmIGRhdGEudmFyaWFibGVzICV9Cit7JSBpZiAn ZGVsZXRlZCcgaW4gZGF0YS52YXJpYWJsZXMgYW5kIGRhdGEudmFyaWFibGVz LmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5VTlNFVChj b25uLCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRhLnZhcmlhYmxlcy5kZWxldGVk LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz KSB9fQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycg aW4gZGF0YSBhbmQgZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0aCA+IDAg JX0KKwore3sgVkFSSUFCTEUuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUs IGRhdGEubWVyZ2VkX3ZhcmlhYmxlcywgb19kYXRhLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGlmIC0lfQoreyUg ZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIHNldCBzZWNsYWJlbHMgPSBk YXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVs cyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9y IHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0KKwore3sgU0VDTEFCRUwuVU5T RVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgb19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIHNl Y2xhYmVscyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3sl IGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQorCit7eyBTRUNMQUJFTC5T RVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5sYWJl bCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1l cykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hh bmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5n dGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQor Cit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5w cm92aWRlciwgci5sYWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRh LnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYg LSV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uIGlzIGRlZmluZWQgYW5kIGRh dGEuZGVzY3JpcHRpb24gIT0gb19kYXRhLmRlc2NyaXB0aW9uJX0KKworQ09N TUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25h bWVzcGFjZSwgbmFtZSkgfX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19 KQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19Owor eyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEucHJvbmFtZXNwYWNlICV9CisK K0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFt ZXNwYWNlLCBuYW1lKSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0p CisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1l c3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3Fs LzkuMl9wbHVzL2NyZWF0ZS5zcWwKaW5kZXggMjY5ODJlOC4uMGIxMGQ2ZiAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9jcmVhdGUuc3FsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cHBhcy9zcWwvOS4yX3BsdXMvY3JlYXRlLnNxbApAQCAtMTksNyArMTksNyBA QCBDUkVBVEV7JSBpZiBxdWVyeV90eXBlIGlzIGRlZmluZWQgJX17eycgT1Ig UkVQTEFDRSd9fXslIGVuZGlmICV9IEZVTkNUSU9OIHt7IGNvbgogeyUgaWYg ZGF0YS5wcm9jb3N0ICV9CiAgICAgQ09TVCB7e2RhdGEucHJvY29zdH19CiB7 JSBlbmRpZiAlfQotICAgIHslIGlmIGRhdGEucHJvdm9sYXRpbGUgJX17JSBp ZiBkYXRhLnByb3ZvbGF0aWxlID09ICdpJyAlfUlNTVVUQUJMRXslIGVsaWYg ZGF0YS5wcm92b2xhdGlsZSA9PSAncycgJX1TVEFCTEV7JSBlbHNlICV9Vk9M QVRJTEV7JSBlbmRpZiAlfSB7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvbGVh a3Byb29mICV9IExFQUtQUk9PRiB7JSBlbHNlICV9IE5PVCBMRUFLUFJPT0Yg eyUgZW5kaWYgJX0KKyAgICB7JSBpZiBkYXRhLnByb3ZvbGF0aWxlICV9eyUg aWYgZGF0YS5wcm92b2xhdGlsZSA9PSAnaScgJX1JTU1VVEFCTEV7JSBlbGlm IGRhdGEucHJvdm9sYXRpbGUgPT0gJ3MnICV9U1RBQkxFeyUgZWxzZSAlfVZP TEFUSUxFeyUgZW5kaWYgJX0geyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb2xl YWtwcm9vZiAlfSBMRUFLUFJPT0YgeyUgZW5kaWYgJX0KIHslIGlmIGRhdGEu cHJvaXNzdHJpY3QgJX1TVFJJQ1QgeyUgZW5kaWYgJX0KIHslIGlmIGRhdGEu cHJvc2VjZGVmICV9U0VDVVJJVFkgREVGSU5FUiB7JSBlbmRpZiAlfQogeyUg aWYgZGF0YS5wcm9pc3dpbmRvdyAlfVdJTkRPV3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3Fs LzkuNV9wbHVzL2NyZWF0ZS5zcWwKaW5kZXggY2JmZTMzZC4uNmQxMjdiZCAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9jcmVhdGUuc3FsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cHBhcy9zcWwvOS41X3BsdXMvY3JlYXRlLnNxbApAQCAtMTYsNyArMTYsNyBA QCBDUkVBVEV7JSBpZiBxdWVyeV90eXBlIGlzIGRlZmluZWQgJX17eycgT1Ig UkVQTEFDRSd9fXslIGVuZGlmICV9IEZVTkNUSU9OIHt7IGNvbgogICAgIFJF VFVSTlN7JSBpZiBkYXRhLnByb3JldHNldCBhbmQgZGF0YS5wcm9yZXR0eXBl bmFtZS5zdGFydHN3aXRoKCdTRVRPRiAnKSAlfSB7eyBkYXRhLnByb3JldHR5 cGVuYW1lIH19IHslIGVsaWYgZGF0YS5wcm9yZXRzZXQgJX0gU0VUT0Yge3sg Y29ubnxxdFR5cGVJZGVudChkYXRhLnByb3JldHR5cGVuYW1lKSB9fXslIGVs c2UgJX0ge3sgY29ubnxxdFR5cGVJZGVudChkYXRhLnByb3JldHR5cGVuYW1l KSB9fXslIGVuZGlmICV9CiAKICAgICBMQU5HVUFHRSB7eyBkYXRhLmxhbm5h bWV8cXRMaXRlcmFsIH19Ci0gICAgeyUgaWYgZGF0YS5wcm92b2xhdGlsZSAl fXslIGlmIGRhdGEucHJvdm9sYXRpbGUgPT0gJ2knICV9SU1NVVRBQkxFeyUg ZWxpZiBkYXRhLnByb3ZvbGF0aWxlID09ICdzJyAlfVNUQUJMRXslIGVsc2Ug JX1WT0xBVElMRXslIGVuZGlmICV9IHslIGVuZGlmICV9eyUgaWYgZGF0YS5w cm9sZWFrcHJvb2YgJX1MRUFLUFJPT0YgeyUgZWxzZSAlfU5PVCBMRUFLUFJP T0YgeyUgZW5kaWYgJX0KKyAgICB7JSBpZiBkYXRhLnByb3ZvbGF0aWxlICV9 eyUgaWYgZGF0YS5wcm92b2xhdGlsZSA9PSAnaScgJX1JTU1VVEFCTEV7JSBl bGlmIGRhdGEucHJvdm9sYXRpbGUgPT0gJ3MnICV9U1RBQkxFeyUgZWxzZSAl fVZPTEFUSUxFeyUgZW5kaWYgJX0geyUgZW5kaWYgJX17JSBpZiBkYXRhLnBy b2xlYWtwcm9vZiAlfUxFQUtQUk9PRiB7JSBlbmRpZiAlfQogeyUgaWYgZGF0 YS5wcm9pc3N0cmljdCAlfVNUUklDVCB7JSBlbmRpZiAlfQogeyUgaWYgZGF0 YS5wcm9zZWNkZWYgJX1TRUNVUklUWSBERUZJTkVSIHslIGVuZGlmICV9CiB7 JSBpZiBkYXRhLnByb2lzd2luZG93ICV9V0lORE9XeyUgZW5kaWYgJX17JSBp ZiBkYXRhLnByb2Nvc3QgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS42X3Bs dXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS42X3BsdXMvY3JlYXRlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44M2JhMTk0Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjZfcGx1cy9jcmVhdGUuc3Fs CkBAIC0wLDAgKzEsNjQgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9u cy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQg J21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklM RUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUu bWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgc2V0IGlzX2NvbHVtbnMgPSBb XSAlfQoreyUgaWYgZGF0YSAlfQoreyUgaWYgcXVlcnlfZm9yID09ICdzcWxf cGFuZWwnIGFuZCBmdW5jX2RlZiBpcyBkZWZpbmVkICV9CitDUkVBVEV7JSBp ZiBxdWVyeV90eXBlIGlzIGRlZmluZWQgJX17eycgT1IgUkVQTEFDRSd9fXsl IGVuZGlmICV9IEZVTkNUSU9OIHt7ZnVuY19kZWZ9fQoreyUgZWxzZSAlfQor Q1JFQVRFeyUgaWYgcXVlcnlfdHlwZSBpcyBkZWZpbmVkICV9e3snIE9SIFJF UExBQ0UnfX17JSBlbmRpZiAlfSBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQo ZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oeyUgaWYgZGF0YS5h cmdzICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFyZ3MgJX17JSBpZiBwLmFyZ21v ZGUgJX17e3AuYXJnbW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1l ICV9e3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSkgfX0geyUgZW5kaWYgJX17 JSBpZiBwLmFyZ3R5cGUgJX17eyBjb25ufHF0VHlwZUlkZW50KHAuYXJndHlw ZSkgfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQg e3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxh c3QgJX0seyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9 CisgICAgKQoreyUgZW5kaWYgLSV9CisgICAgUkVUVVJOU3slIGlmIGRhdGEu cHJvcmV0c2V0IGFuZCBkYXRhLnByb3JldHR5cGVuYW1lLnN0YXJ0c3dpdGgo J1NFVE9GICcpICV9IHt7IGRhdGEucHJvcmV0dHlwZW5hbWUgfX0geyUgZWxp ZiBkYXRhLnByb3JldHNldCAlfSBTRVRPRiB7eyBjb25ufHF0VHlwZUlkZW50 KGRhdGEucHJvcmV0dHlwZW5hbWUpIH19eyUgZWxzZSAlfSB7eyBjb25ufHF0 VHlwZUlkZW50KGRhdGEucHJvcmV0dHlwZW5hbWUpIH19eyUgZW5kaWYgJX0K KworICAgIExBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0K KyAgICB7JSBpZiBkYXRhLnByb3ZvbGF0aWxlICV9eyUgaWYgZGF0YS5wcm92 b2xhdGlsZSA9PSAnaScgJX1JTU1VVEFCTEV7JSBlbGlmIGRhdGEucHJvdm9s YXRpbGUgPT0gJ3MnICV9U1RBQkxFeyUgZWxzZSAlfVZPTEFUSUxFeyUgZW5k aWYgJX0geyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb2xlYWtwcm9vZiAlfUxF QUtQUk9PRiB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3N0cmljdCAl fVNUUklDVCB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9zZWNkZWYgJX1T RUNVUklUWSBERUZJTkVSIHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lz d2luZG93ICV9V0lORE9XeyUgZW5kaWYgJX0KKworICAgIHslIGlmIGRhdGEu cHJvcGFyYWxsZWwgJX17JSBpZiBkYXRhLnByb3BhcmFsbGVsID09ICdyJyAl fVBBUkFMTEVMIFJFU1RSSUNURUR7JSBlbGlmIGRhdGEucHJvcGFyYWxsZWwg PT0gJ3MnICV9UEFSQUxMRUwgU0FGRXslIGVuZGlmICV9eyUgZW5kaWYgJX0K K3slIGlmIGRhdGEucHJvY29zdCAlfQorCisgICAgQ09TVCB7e2RhdGEucHJv Y29zdH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3MgJX0KKworICAg IFJPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVuZGlmIC0lfXslIGlmIGRhdGEu dmFyaWFibGVzICV9eyUgZm9yIHYgaW4gZGF0YS52YXJpYWJsZXMgJX0KKwor ICAgIFNFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVl fHF0TGl0ZXJhbCB9fXslIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KKworQVMg eyUgaWYgZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sgZGF0YS5wcm9iaW58 cXRMaXRlcmFsIH19LCB7eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fQor eyUgZWxzZSAlfQorJGZ1bmN0aW9uJAore3sgZGF0YS5wcm9zcmMgfX0KKyRm dW5jdGlvbiR7JSBlbmRpZiAtJX07Cit7JSBpZiBkYXRhLmZ1bmNvd25lciAl fQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9u YW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oe3tkYXRhLmZ1bmNfYXJnc193aXRo b3V0fX0pCisgICAgT1dORVIgVE8ge3sgY29ubnxxdElkZW50KGRhdGEuZnVu Y293bmVyKSB9fTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5hY2wgJX0K K3slIGZvciBwIGluIGRhdGEuYWNsICV9CisKK3t7IFBSSVZJTEVHRS5TRVQo Y29ubiwgIkZVTkNUSU9OIiwgcC5ncmFudGVlLCBkYXRhLm5hbWUsIHAud2l0 aG91dF9ncmFudCwgcC53aXRoX2dyYW50LCBkYXRhLnByb25hbWVzcGFjZSwg ZGF0YS5mdW5jX2FyZ3Nfd2l0aG91dCl9fQoreyUgZW5kZm9yICV9eyUgZW5k aWYgJX0KK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBP TiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2Us IGRhdGEubmFtZSkgfX0oe3tkYXRhLmZ1bmNfYXJnc193aXRob3V0fX0pCisg ICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgIH19OworeyUg ZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9yIHIg aW4gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmIHIubGFiZWwgYW5kIHIucHJv dmlkZXIgJX0KKwore3sgU0VDTEFCRUwuU0VUKGNvbm4sICdGVU5DVElPTics IGRhdGEubmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgZGF0YS5wcm9uYW1l c3BhY2UsIGRhdGEuZnVuY19hcmdzX3dpdGhvdXQpIH19Cit7JSBlbmRpZiAl fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0K ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS42X3BsdXMvdXBkYXRlLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBh cy9zcWwvOS42X3BsdXMvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi40OWViOTRlCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w cGFzL3NxbC85LjZfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTE2IEBA Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9z JyBhcyBTRUNMQUJFTCAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25z L3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0 ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFC TEUgJX17JSBpZiBkYXRhICV9Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5uYW1l ICV9Cit7JSBpZiBkYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAhPSBv X2RhdGEubmFtZSAlfQorQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50 KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5uYW1lKSB9fSh7eworb19k YXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBSRU5BTUUgVE8ge3sgY29u bnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBzZXQgbmFtZSA9IGRhdGEu bmFtZSAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0 YS5jaGFuZ2VfZnVuYyAgJX0KKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJ T04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUp IH19KHslIGlmIGRhdGEuYXJndW1lbnRzICV9Cit7JSBmb3IgcCBpbiBkYXRh LmFyZ3VtZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX0g eyUgZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX17eyBjb25ufHF0SWRlbnQo cC5hcmduYW1lKSB9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfXt7 IGNvbm58cXRUeXBlSWRlbnQocC5hcmd0eXBlKSB9fXslIGVuZGlmICV9eyUg aWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBl bmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSx7JSBlbmRpZiAlfQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKykKKyAgICBSRVRVUk5TIHt7 IG9fZGF0YS5wcm9yZXR0eXBlbmFtZSB9fQoreyUgaWYgJ2xhbm5hbWUnIGlu IGRhdGEgJX0KKyAgICBMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRMaXRl cmFsIH19IHslIGVsc2UgJX0KKyAgICBMQU5HVUFHRSB7eyBvX2RhdGEubGFu bmFtZXxxdExpdGVyYWwgfX0KKyAgICB7JSBlbmRpZiAlfXslIGlmICdwcm92 b2xhdGlsZScgaW4gZGF0YSBhbmQgZGF0YS5wcm92b2xhdGlsZSAlfXt7IGRh dGEucHJvdm9sYXRpbGUgfX0geyUgZWxpZiAncHJvdm9sYXRpbGUnIG5vdCBp biBkYXRhIGFuZCBvX2RhdGEucHJvdm9sYXRpbGUgJX17eyBvX2RhdGEucHJv dm9sYXRpbGUgfX17JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9sZWFrcHJvb2Yn IGluIGRhdGEgYW5kIGRhdGEucHJvbGVha3Byb29mKSBvciAoJ3Byb2xlYWtw cm9vZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9sZWFrcHJvb2YpICV9 IExFQUtQUk9PRnslIGVsaWYgJ3Byb2xlYWtwcm9vZicgaW4gZGF0YSBhbmQg bm90IGRhdGEucHJvbGVha3Byb29mICV9IE5PVCBMRUFLUFJPT0Z7JSBlbmRp ZiAlfQoreyUgaWYgKCdwcm9pc3N0cmljdCcgaW4gZGF0YSBhbmQgZGF0YS5w cm9pc3N0cmljdCkgb3IgKCdwcm9pc3N0cmljdCcgbm90IGluIGRhdGEgYW5k IG9fZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNUeyUgZW5kaWYgJX0KK3sl IGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2RlZikg b3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvc2Vj ZGVmKSAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX0KK3slIGlmICgn cHJvaXN3aW5kb3cnIGluIGRhdGEgYW5kIGRhdGEucHJvaXN3aW5kb3cpIG9y ICgncHJvaXN3aW5kb3cnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXN3 aW5kb3cpICV9IFdJTkRPV3slIGVuZGlmICV9CisKKyAgICB7JSBpZiAncHJv cGFyYWxsZWwnIGluIGRhdGEgYW5kIGRhdGEucHJvcGFyYWxsZWwgJX1QQVJB TExFTCB7eyBkYXRhLnByb3BhcmFsbGVsIH19eyUgZWxpZiAncHJvcGFyYWxs ZWwnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvcGFyYWxsZWwgJX1QQVJB TExFTCB7eyBvX2RhdGEucHJvcGFyYWxsZWwgfX17JSBlbmRpZiAlfQorCisg ICAgeyUgaWYgZGF0YS5wcm9jb3N0ICV9Q09TVCB7e2RhdGEucHJvY29zdH19 eyUgZWxpZiBvX2RhdGEucHJvY29zdCAlfUNPU1Qge3tvX2RhdGEucHJvY29z dH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3MgJX0KKworICAgIFJP V1Mge3tkYXRhLnByb3Jvd3N9fXslIGVsaWYgb19kYXRhLnByb3Jvd3MgJX1S T1dTIHt7b19kYXRhLnByb3Jvd3N9fSB7JWVuZGlmIC0lfXslIGlmIGRhdGEu bWVyZ2VkX3ZhcmlhYmxlcyAlfXslIGZvciB2IGluIGRhdGEubWVyZ2VkX3Zh cmlhYmxlcyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUp IH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQorICAg IHslIGVuZGlmICV9CisKK0FTIHslIGlmICdwcm9iaW4nIGluIGRhdGEgb3Ig J3Byb3NyY19jJyBpbiBkYXRhICV9Cit7JSBpZiAncHJvYmluJyBpbiBkYXRh ICV9e3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZWxzZSAlfXt7IG9f ZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19eyUgZW5kaWYgJX0sIHslIGlmICdw cm9zcmNfYycgaW4gZGF0YSAlfXt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFs IH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX17 JSBlbmRpZiAlfXslIGVsaWYgJ3Byb3NyYycgaW4gZGF0YSAlfQorJGZ1bmN0 aW9uJHt7IGRhdGEucHJvc3JjIH19JGZ1bmN0aW9uJHslIGVsaWYgb19kYXRh Lmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJh bCB9fSwge3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fXslIGVsc2Ug JX0KKyRmdW5jdGlvbiR7eyBvX2RhdGEucHJvc3JjIH19JGZ1bmN0aW9uJHsl IGVuZGlmIC0lfTsKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5mdW5jb3du ZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7b19kYXRhLnByb2FyZ3R5cGVu YW1lcyB9fSkKKyAgICBPV05FUiBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5m dW5jb3duZXIpIH19OworeyUgZW5kaWYgLSV9Cit7IyBUaGUgU1FMIGdlbmVy YXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZGdlcyAjfQoreyUgaWYg ZGF0YS5hY2wgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFjbCAlfQor eyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAlfQorCit7eyBQUklW SUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVl LCBuYW1lLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlw ZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlm ICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4g ZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwo Y29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEu cHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQorCit7 eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRl ZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3JhbnQs IG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMp IH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVk JyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRk ZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBw cml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFudCwgcHJpdi53 aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJn dHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgLSV9Cit7JSBl bmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgPT0gRmFsc2UgJX0K K3slIGlmIGRhdGEudmFyaWFibGVzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4g ZGF0YS52YXJpYWJsZXMgYW5kIGRhdGEudmFyaWFibGVzLmRlbGV0ZWR8bGVu Z3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJ T04nLCBuYW1lLCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkLCBvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5k aWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQg ZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwore3sgVkFS SUFCTEUuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEubWVyZ2Vk X3ZhcmlhYmxlcywgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcykgfX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7 JSBlbmRpZiAtJX0KK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVs cyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFi ZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFi ZWxzLmRlbGV0ZWQgJX0KKwore3sgU0VDTEFCRUwuVU5TRVQoY29ubiwgJ0ZV TkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgb19kYXRhLnByb25hbWVzcGFj ZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQg c2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNl Y2xhYmVscy5hZGRlZCAlfQorCit7eyBTRUNMQUJFTC5TRVQoY29ubiwgJ0ZV TkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgb19kYXRhLnBy b25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2Vj bGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7 JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQorCit7eyBTRUNMQUJF TC5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5s YWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVu YW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiBk YXRhLmRlc2NyaXB0aW9uIGlzIGRlZmluZWQgYW5kIGRhdGEuZGVzY3JpcHRp b24gIT0gb19kYXRhLmRlc2NyaXB0aW9uJX0KKworQ09NTUVOVCBPTiBGVU5D VElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFt ZSkgfX0oe3tvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIElTIHt7 IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19OworeyUgZW5kaWYgLSV9 CisKK3slIGlmIGRhdGEucHJvbmFtZXNwYWNlICV9CisKK0FMVEVSIEZVTkNU SU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1l KSB9fSh7e29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgU0VUIFND SEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19Owor eyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjVfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMv Y3JlYXRlLnNxbAppbmRleCBmMDQ2OWQ5Li5hYTI5MzkwIDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVy ZS9wcGFzL3NxbC85LjVfcGx1cy9jcmVhdGUuc3FsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuNV9wbHVzL2NyZWF0ZS5zcWwKQEAgLTE0LDcgKzE0LDcgQEAgQ1JFQVRF IE9SIFJFUExBQ0UgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChkYXRhLnBy b25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fXslIGkKIHslIGVuZGlmICV9CiB7 JSBpZiBxdWVyeV90eXBlICE9ICdjcmVhdGUnICV9CiAKLSAgICB7eyBkYXRh LnByb3ZvbGF0aWxlIH19eyUgaWYgZGF0YS5wcm9sZWFrcHJvb2YgJX0gTEVB S1BST09GIHslIGVsaWYgbm90IGRhdGEucHJvbGVha3Byb29mICV9IE5PVCBM RUFLUFJPT0YgeyUgZW5kaWYgJX0KKyAgICB7eyBkYXRhLnByb3ZvbGF0aWxl IH19eyUgaWYgZGF0YS5wcm9sZWFrcHJvb2YgJX0gTEVBS1BST09GIHslIGVu ZGlmICV9CiB7JSBpZiBkYXRhLnByb2lzc3RyaWN0ICV9U1RSSUNUIHslIGVu ZGlmICV9CiB7JSBpZiBkYXRhLnByb3NlY2RlZiAlfVNFQ1VSSVRZIERFRklO RVIgeyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb2Nvc3QgJX0KIApkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS42X3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuNl9wbHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNzJjOGRiYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuNl9wbHVzL2NyZWF0ZS5zcWwKQEAgLTAsMCArMSw1MCBAQAoreyUg aW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMg U0VDTEFCRUwgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2 aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFj cm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9 Cit7JSBzZXQgaXNfY29sdW1ucyA9IFtdICV9Cit7JSBpZiBkYXRhICV9Cit7 JSBpZiBxdWVyeV9mb3IgPT0gJ3NxbF9wYW5lbCcgYW5kIGZ1bmNfZGVmIGlz IGRlZmluZWQgJX0KK0NSRUFURSBPUiBSRVBMQUNFICBQUk9DRURVUkUge3tm dW5jX2RlZn19Cit7JSBlbHNlICV9CitDUkVBVEUgT1IgUkVQTEFDRSBQUk9D RURVUkUge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRh Lm5hbWUpIH19eyUgaWYgZGF0YS5hcmdzIGlzIGRlZmluZWQgJX0KKyh7JSBm b3IgcCBpbiBkYXRhLmFyZ3MgJX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJn bW9kZX19IHslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxx dElkZW50KHAuYXJnbmFtZSl9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJndHlw ZSAlfXt7IGNvbm58cXRUeXBlSWRlbnQocC5hcmd0eXBlKSB9fXslIGVuZGlm ICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFs fX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSwgeyUgZW5k aWYgJX0KK3slIGVuZGZvciAtJX0KKyl7JSBlbmRpZiAlfQoreyUgZW5kaWYg JX0KK3slIGlmIHF1ZXJ5X3R5cGUgIT0gJ2NyZWF0ZScgJX0KKworICAgIHt7 IGRhdGEucHJvdm9sYXRpbGUgfX17JSBpZiBkYXRhLnByb2xlYWtwcm9vZiAl fSBMRUFLUFJPT0YgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXNzdHJp Y3QgJX1TVFJJQ1QgeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvc2VjZGVm ICV9U0VDVVJJVFkgREVGSU5FUiB7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5w cm9wYXJhbGxlbCAlfXslIGlmIGRhdGEucHJvcGFyYWxsZWwgPT0gJ3InICV9 UEFSQUxMRUwgUkVTVFJJQ1RFRHslIGVsaWYgZGF0YS5wcm9wYXJhbGxlbCA9 PSAncycgJX1QQVJBTExFTCBTQUZFeyUgZW5kaWYgJX17JSBlbmRpZiAlfXsl IGlmIGRhdGEucHJvY29zdCAlfQorCisgICAgQ09TVCB7e2RhdGEucHJvY29z dH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3MgJX0KKworICAgIFJP V1Mge3tkYXRhLnByb3Jvd3N9fXslIGVuZGlmIC0lfXslIGlmIGRhdGEudmFy aWFibGVzICV9eyUgZm9yIHYgaW4gZGF0YS52YXJpYWJsZXMgJX0KKworICAg IFNFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0 TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KK3slIGVuZGlmICV9eyUgZW5kaWYg JX0KKworQVMKK3t7IGRhdGEucHJvc3JjIH19OworeyUgaWYgZGF0YS5hY2wg YW5kIG5vdCBpc19zcWwgJX0KK3slIGZvciBwIGluIGRhdGEuYWNsICV9CisK K3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgIlBST0NFRFVSRSIsIHAuZ3JhbnRl ZSwgZGF0YS5uYW1lLCBwLndpdGhvdXRfZ3JhbnQsIHAud2l0aF9ncmFudCwg ZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzX3dpdGhvdXQpfX0K K3slIGVuZGZvciAlfXslIGVuZGlmICV9Cit7JSBpZiBkYXRhLmRlc2NyaXB0 aW9uICV9CisKK0NPTU1FTlQgT04gUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVu dChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fQorICAgIElTIHt7 IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsICB9fTsKK3slIGVuZGlmIC0l fQoreyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEu c2VjbGFiZWxzICV9Cit7JSBpZiByLmxhYmVsIGFuZCByLnByb3ZpZGVyICV9 CisKK3t7IFNFQ0xBQkVMLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgZGF0YS5u YW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBkYXRhLnByb25hbWVzcGFjZSwg ZGF0YS5mdW5jX2FyZ3Nfd2l0aG91dCkgfX0KK3slIGVuZGlmICV9Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS42X3BsdXMvdXBkYXRlLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuNl9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uZWQyNDY3OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuNl9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMDQgQEAKK3sl IGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFz IFNFQ0xBQkVMICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJp dmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21h Y3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAl fXslIGlmIGRhdGEgJX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0K K3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0 YS5uYW1lICV9CitBTFRFUiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5uYW1lKSB9fQorICAgIFJFTkFN RSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBu YW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9 Cit7JSBpZiBkYXRhLmNoYW5nZV9mdW5jICAlfQorQ1JFQVRFIE9SIFJFUExB Q0UgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNw YWNlLCBuYW1lKSB9fXslIGlmIGRhdGEuYXJndW1lbnRzICV9KHslIGZvciBw IGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFy Z21vZGV9fSB7JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfXt7IGNvbm58 cXRJZGVudChwLmFyZ25hbWUpIH19IHslIGVuZGlmICV9eyUgaWYgcC5hcmd0 eXBlICV9e3sgY29ubnxxdFR5cGVJZGVudChwLmFyZ3R5cGUpIH19eyUgZW5k aWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2 YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LCB7JSBl bmRpZiAlfQoreyUgZW5kZm9yICV9CispCit7JSBlbmRpZiAlfQorICAgIHsl IGlmICgncHJvbGVha3Byb29mJyBpbiBkYXRhIGFuZCBkYXRhLnByb2xlYWtw cm9vZikgb3IgKCdwcm9sZWFrcHJvb2YnIG5vdCBpbiBkYXRhIGFuZCBvX2Rh dGEucHJvbGVha3Byb29mKSAlfUxFQUtQUk9PRnslIGVsc2UgJX1OT1QgTEVB S1BST09GeyUgZW5kaWYgJX0KK3slIGlmICgncHJvaXNzdHJpY3QnIGluIGRh dGEgYW5kIGRhdGEucHJvaXNzdHJpY3QpIG9yICgncHJvaXNzdHJpY3QnIG5v dCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXNzdHJpY3QpICV9IFNUUklDVHsl IGVuZGlmICV9Cit7JSBpZiAoJ3Byb3NlY2RlZicgaW4gZGF0YSBhbmQgZGF0 YS5wcm9zZWNkZWYpIG9yICgncHJvc2VjZGVmJyBub3QgaW4gZGF0YSBhbmQg b19kYXRhLnByb3NlY2RlZikgJX0gU0VDVVJJVFkgREVGSU5FUnslIGVuZGlm ICV9CisKKyAgICB7JSBpZiAncHJvcGFyYWxsZWwnIGluIGRhdGEgYW5kIGRh dGEucHJvcGFyYWxsZWwgJX1QQVJBTExFTCB7eyBkYXRhLnByb3BhcmFsbGVs IH19eyUgZWxpZiAncHJvcGFyYWxsZWwnIG5vdCBpbiBkYXRhIGFuZCBvX2Rh dGEucHJvcGFyYWxsZWwgJX1QQVJBTExFTCB7eyBvX2RhdGEucHJvcGFyYWxs ZWwgfX17JSBlbmRpZiAlfQorCisgICAgeyUgaWYgZGF0YS5wcm9jb3N0ICV9 Q09TVCB7e2RhdGEucHJvY29zdH19eyUgZWxpZiBvX2RhdGEucHJvY29zdCAl fUNPU1Qge3tvX2RhdGEucHJvY29zdH19eyUgZW5kaWYgJX17JSBpZiBkYXRh LnByb3Jvd3MgJX0KKworICAgIFJPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVs aWYgb19kYXRhLnByb3Jvd3MgJX1ST1dTIHt7b19kYXRhLnByb3Jvd3N9fXsl IGVuZGlmIC0lfXslIGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfXslIGZv ciB2IGluIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQorCisgICAgU0VUIHt7 IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFs IH19eyUgZW5kZm9yIC0lfQoreyUgZW5kaWYgJX0KKworQVMKK3slIGlmIGRh dGEucHJvc3JjICV9e3sgZGF0YS5wcm9zcmMgfX17JSBlbHNlICV9e3sgb19k YXRhLnByb3NyYyB9fXslIGVuZGlmIC0lfTsKK3slIGVuZGlmIC0lfQoreyUg aWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgUFJPQ0VEVVJFIHt7IGNv bm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fXslIGlm IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgJX0oe3sgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcyB9fSl7JSBlbmRpZiAlfQorICAgIE9XTkVSIFRPIHt7IGRhdGEu ZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9Cit7IyBUaGUgU1FMIGdlbmVy YXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxlZGdlcyAjfQoreyUgaWYg ZGF0YS5hY2wgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFjbCAlfQor eyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAlfQorCit7eyBQUklW SUxFR0UuVU5TRVRBTEwoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3JhbnRl ZSwgbmFtZSwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5 cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBp ZiAnY2hhbmdlZCcgaW4gZGF0YS5kYXRhY2wgJX0KK3slIGZvciBwcml2IGlu IGRhdGEuYWNsLmNoYW5nZWQgJX0KKwore3sgUFJJVklMRUdFLlVOU0VUQUxM KGNvbm4sICdQUk9DRURVUkUnLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19CisK K3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3Jh bnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LCBwcml2LndpdGhfZ3Jh bnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFt ZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2Fk ZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wu YWRkZWQgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAnUFJPQ0VEVVJF JywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsIHBy aXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnBy b2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0K K3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyA9PSBGYWxz ZSAlfQoreyUgaWYgZGF0YS52YXJpYWJsZXMgJX0KK3slIGlmICdkZWxldGVk JyBpbiBkYXRhLnZhcmlhYmxlcyBhbmQgZGF0YS52YXJpYWJsZXMuZGVsZXRl ZHxsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlVOU0VUKGNvbm4sICdQ Uk9DRURVUkUnLCBuYW1lLCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkLCBvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQor eyUgZW5kaWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0 YSBhbmQgZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwor e3sgVkFSSUFCTEUuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBuYW1lLCBkYXRh Lm1lcmdlZF92YXJpYWJsZXMsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0 YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlm IC0lfQoreyUgZW5kaWYgLSV9Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5z ZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5k IHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGlu IHNlY2xhYmVscy5kZWxldGVkICV9CisKK3t7IFNFQ0xBQkVMLlVOU0VUKGNv bm4sICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFi ZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9y IHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkVMLlNFVChj b25uLCAnUFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwg b19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdl ZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGgg PiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuY2hhbmdlZCAlfQorCit7 eyBTRUNMQUJFTC5TRVQoY29ubiwgJ1BST0NFRFVSRScsIG5hbWUsIHIucHJv dmlkZXIsIHIubGFiZWwsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0l fQoreyUgaWYgZGF0YS5kZXNjcmlwdGlvbiBpcyBkZWZpbmVkIGFuZCBkYXRh LmRlc2NyaXB0aW9uICE9IG9fZGF0YS5kZXNjcmlwdGlvbiV9CisKK0NPTU1F TlQgT04gUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFt ZXNwYWNlLCBuYW1lKSB9fQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258 cXRMaXRlcmFsIH19OworeyUgZW5kaWYgLSV9Cit7JSBpZiBkYXRhLnByb25h bWVzcGFjZSAlfQorCitBTFRFUiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50 KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19CisgICAgU0VUIFNDSEVN QSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19OworeyUg ZW5kaWYgLSV9CisKK3slIGVuZGlmICV9Cg== --001a11407b56aea79d0548280ab0 Content-Type: text/plain Content-Disposition: inline Content-Transfer-Encoding: 8bit MIME-Version: 1.0 -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers --001a11407b56aea79d0548280ab0--