Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dHoER-0004kj-QI for pgadmin-hackers@arkaria.postgresql.org; Mon, 05 Jun 2017 09:23:28 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1dHoER-0000Ih-CU for pgadmin-hackers@arkaria.postgresql.org; Mon, 05 Jun 2017 09:23:27 +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_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1dHoEC-0008K4-98 for pgadmin-hackers@postgresql.org; Mon, 05 Jun 2017 09:23:12 +0000 Received: from mail-wr0-x235.google.com ([2a00:1450:400c:c0c::235]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1dHoE7-0001sn-QV for pgadmin-hackers@postgresql.org; Mon, 05 Jun 2017 09:23:11 +0000 Received: by mail-wr0-x235.google.com with SMTP id q97so34850036wrb.2 for ; Mon, 05 Jun 2017 02:23:07 -0700 (PDT) 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=UnIOrLAjjo6x2I9Ojdsi/atPZL46FSBCy42U9ThVlXg=; b=KhdsjK3NtN7tWKcXvZYJIrVCZ7I7CMN9D3I26zoxZcGqH7MPlBmjxZfecnwW3cHhEm YcPJcHMdDyPsv4U1lnDFf0a85t7Fhx3F9WkW2ghHdzUxFLPArJj8GI6APwB3tcjkAf52 wqBpsII5zoQZNVPofsEi98d2y+Sj7HE9rzhmh+S52xFo/wagk6YJ/8pKbb7QWPlgQ4DZ PO0tdiVDRZVsW4F+vQrdgBXz9szyTh4U8GkwG4OiRlIpDhyou5YOLfv0h9aEHkL9YKVe pDnfBi5sTOviSVad8nGCVKo0pf9ARqec4TUlD+KVmusI5N3yZrfLO52LEZlnUFX9zBbc xBkg== 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=UnIOrLAjjo6x2I9Ojdsi/atPZL46FSBCy42U9ThVlXg=; b=mdO9IqlomH6qOC8rJPHVBEauf6nVph1f2H7340NCONt0NebST9x1RvFOzxDF139lEo unCproY1F1MH49A63uYgWu7UVnstdf0QEl3rUUiLhPK3K+I5iNGlsMn/zXyeWDkFQldx PPy2N9uJ33ueSPKIx5zbN4Jyk3+h160IR2kcyU5ySo5xzWvMmg8IsG71QLPrrhtdiGf1 QvmlIGILfiN0XE+rIdOB/8cM1VQth245oy+EVpIW+vWR/D5a/WjwldlQ1QIU2rvw0eza kMzFjknu3O9I/+9kBZMhqEm1BLPs8+bvCDV7OIemMfA8r/s0EQm8zmexoLGLkdL6iEAL yqXQ== X-Gm-Message-State: AODbwcBkUeXce5IaYzDkTLJ0iu0LYNVzbUrw4IApwY5ePjt1cImgux0N lLTMFKSFNrV3YD1vJEbfIpDsDvkkDoSa X-Received: by 10.223.134.46 with SMTP id 43mr15308302wrv.123.1496654586929; Mon, 05 Jun 2017 02:23:06 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.19.138 with HTTP; Mon, 5 Jun 2017 02:22:36 -0700 (PDT) In-Reply-To: References: From: Surinder Kumar Date: Mon, 5 Jun 2017 14:52:36 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: Load module's JS files only when required To: Dave Page Cc: Joao Pedro De Almeida Pereira , pgadmin-hackers Content-Type: multipart/mixed; boundary="001a1146b7bc01d6d80551330dd0" X-Pg-Spam-Score: -1.9 (-) 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 --001a1146b7bc01d6d80551330dd0 Content-Type: multipart/alternative; boundary="001a1146b7bc01d6d40551330dce" --001a1146b7bc01d6d40551330dce Content-Type: text/plain; charset="UTF-8" Hi Dave, Please find attached patch for minifying CSS files and optimize images using Webpack. *Steps to run:* 1) After applying patch, go to web directory and run npm install on terminal to install packages which are used to parse/minify CSS files. 2) Run npm run build which creates dist folder inside web/pgadmin/static/ directory to store processed images, fonts and css files. 3. Set DEBUG = False in config_local.py and then run python pgAdmin.py to start server. I kept generated main.css and overrides.css conditional in base.html to load them only when debug mode is False After running "npm run build", following files/directories are generated: 1) main.css - about 20 vendor CSS files are packed into this file and more importantly the paths to images are preserved. 2) overrides.css - it contains bootstrap.overrides.css and pgadmin.css, they has to be packed separately and loaded after all CSS files are loaded because the purpose of these files is to override the vendor or modules css. 3) img - it contains the images used in CSS files. The name of image files can also be hashed names for caching purpose which we can use. 4) fonts - it contains the fonts used in fontawesome.css and other css files. This is a simple patch to demonstrate how CSS files will be minified with Webpack. For now it minifies only vendor CSS files, I will add modules static files in the list later on. Any thoughts on minifying template CSS files which are built dynamically and loaded with dependency on other modules? Also, I looked into Flask-webpack which generates bundled assets using Webpack(webpack.config.js) and provide additionally global template tags to use in Jinja templates. But it might not work with latest version of Webpack as this repo is not updated since last 2 years. I need to check with latest version and I will update on this. Thanks Surinder On Mon, May 29, 2017 at 5:45 AM, Dave Page wrote: > On Fri, May 26, 2017 at 12:01 AM, Surinder Kumar > wrote: > > On Fri, May 26, 2017 at 3:02 AM, Dave Page wrote: > >> > >> On Tue, May 23, 2017 at 4:21 PM, Dave Page wrote: > >> > > >> > I'm actually thinking that maybe it would be easier to start with the > >> > CSS files.... > >> > >> Which i did yesterday. However, it soon became obvious that that isn't > >> so easy either, as the CSS files contain url references which need to > >> be adjusted, which isn't trivial. > >> > >> However, I did find a flask-webpack module, which looks interesting: > >> > >> https://github.com/nickjj/flask-webpack > >> https://nickjanetakis.com/blog/manage-your-assets-with-flask-webpack > >> > >> Surinder; when you have some free time, could you look into a simple > >> PoC with the CSS files using that please? > > > > Ok. I will look > > BTW; if it looks like it will take a while to implement (as I > suspect), we should consider polishing off your initial patch as an > interim step. Any thoughts on how long RM2424 would take to resolve? > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > --001a1146b7bc01d6d40551330dce Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi = Dave,

Please find attache= d patch for minifying CSS files and optimize images using Webpack.

Steps to run:
=

1) After applying patch, go to= web directory and run np= m install on terminal to install packages which are used to parse/mi= nify CSS files.

2) Run npm run build which = creates dist=C2=A0= folder inside web/pgadmin= /static/ directory to store processed images, fonts and css files.

3. Set=C2=A0DEBUG =3D False=C2= =A0in config_local.py and then run python pgAdmin.py to start server= .
I kept generated main.css and overrides= .css conditional in base.html to load them only when debug mode is False=C2= =A0


After running "npm run build&= quot;, following files/directories are generated:

1) main.css - =C2=A0about 2= 0 vendor CSS files are packed into this file and more importantly the paths= to images are preserved.

2) overrides.css - it contains bootstrap.overrides.css and pgadmin.css, they has to be = packed separately and loaded after all CSS files are loaded because the pur= pose of these files is to override the vendor or modules css.

3) img - it con= tains the images=C2=A0used=C2=A0in CSS files. The name of image files can a= lso be hashed names for caching purpose which we can use.

4) fonts - it con= tains the fonts used in fontawesome.css and other css files.

This is a simple= patch to demonstrate how CSS files will be minified with Webpack.

For now it= minifies only vendor CSS files, I will add modules static files in the lis= t later on.

Any thoughts on minifying template CSS files which are built dyna= mically and loaded with dependency on other modules?

Also, I looked into Flas= k-webpack which generates bundled assets using Webpack(webpack.config.js) a= nd provide additionally global template tags to use in Jinja templates.=C2= =A0

But it might not work with latest version of Webpack as this repo is not = updated since last 2 years. I need to check with latest version and I will = update on this.


Thanks
Surinder


On Mon, May 29= , 2017 at 5:45 AM, Dave Page <dpage@pgadmin.org> wrote:
<= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">On Fri, May 26, 2017 at 12:0= 1 AM, Surinder Kumar
<surinder.kumar@enter= prisedb.com> wrote:
> On Fri, May 26, 2017 at 3:02 AM, Dave Page <dpage@pgadmin.org> wrote:
>>
>> On Tue, May 23, 2017 at 4:21 PM, Dave Page <dpage@pgadmin.org> wrote:
>> >
>> > I'm actually thinking that maybe it would be easier to st= art with the
>> > CSS files....
>>
>> Which i did yesterday. However, it soon became obvious that that i= sn't
>> so easy either, as the CSS files contain url references which need= to
>> be adjusted, which isn't trivial.
>>
>> However, I did find a flask-webpack module, which looks interestin= g:
>>
>> https://github.com/nickjj/flask-webpack
>> https://nickjanetakis.c= om/blog/manage-your-assets-with-flask-webpack
>>
>> Surinder; when you have some free time, could you look into a simp= le
>> PoC with the CSS files using that please?
>
> Ok. I will look

BTW; if it looks like it will take a while to implement (as I
suspect), we should consider polishing off your initial patch as an
interim step. Any thoughts on how long RM2424 would take to resolve?


--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

--001a1146b7bc01d6d40551330dce-- --001a1146b7bc01d6d80551330dd0 Content-Type: application/octet-stream; name="bundle_css_using_webpack.patch" Content-Disposition: attachment; filename="bundle_css_using_webpack.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j3jxgudg0 ZGlmZiAtLWdpdCBhL3dlYi9wYWNrYWdlLmpzb24gYi93ZWIvcGFja2FnZS5q c29uCmluZGV4IDgwZTRlNWEuLjZiNzkxNTQgMTAwNjQ0Ci0tLSBhL3dlYi9w YWNrYWdlLmpzb24KKysrIGIvd2ViL3BhY2thZ2UuanNvbgpAQCAtMSwxMCAr MSwyNCBAQAogeworICAiZGVwZW5kZW5jaWVzIjogeworICAgICJ3ZWJwYWNr IjogIl4yLjYuMSIKKyAgfSwKICAgImRldkRlcGVuZGVuY2llcyI6IHsKICAg ICAiamFzbWluZS1jb3JlIjogIl4yLjUuMiIsCiAgICAgImthcm1hIjogIl4x LjUuMCIsCiAgICAgImthcm1hLWphc21pbmUiOiAiXjEuMS4wIiwKICAgICAi a2FybWEtcGhhbnRvbWpzLWxhdW5jaGVyIjogIl4xLjAuMiIsCiAgICAgImth cm1hLXJlcXVpcmVqcyI6ICJeMS4xLjAiLAotICAgICJyZXF1aXJlanMiOiAi XjIuMy4zIgorICAgICJyZXF1aXJlanMiOiAiXjIuMy4zIiwKKyAgICAiZ3J1 bnQiOiAiXjEuMC4xIiwKKyAgICAiY3NzLWxvYWRlciI6ICJeMC4yOC4zIiwK KyAgICAic3R5bGUtbG9hZGVyIjogIl4wLjE4LjEiLAorICAgICJleHRyYWN0 LXRleHQtd2VicGFjay1wbHVnaW4iOiAiXjIuMS4wIiwKKyAgICAiZmlsZS1s b2FkZXIiOiAiXjAuMTEuMSIsCisgICAgImltYWdlLXdlYnBhY2stbG9hZGVy IjogIl4zLjMuMSIsCisgICAgIm9wdGltaXplLWNzcy1hc3NldHMtd2VicGFj ay1wbHVnaW4iOiAiXjEuMy4yIiwKKyAgICAiY2xlYW4td2VicGFjay1wbHVn aW4iOiAiXjAuMS4xNiIKKyAgfSwKKyAgInNjcmlwdHMiOiB7CisgICAgImJ1 aWxkIjogIndlYnBhY2sgLS1oaWRlLW1vZHVsZXMiCiAgIH0KIH0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL3RlbXBsYXRlcy9iYXNlLmh0bWwgYi93ZWIv cGdhZG1pbi90ZW1wbGF0ZXMvYmFzZS5odG1sCmluZGV4IDM3NWIzOWQuLjM3 ODliMWEgMTAwNzU1Ci0tLSBhL3dlYi9wZ2FkbWluL3RlbXBsYXRlcy9iYXNl Lmh0bWwKKysrIGIvd2ViL3BnYWRtaW4vdGVtcGxhdGVzL2Jhc2UuaHRtbApA QCAtMTgsNiArMTgsNyBAQAogICAgIDwhLS0gVG8gc2V0IHBnQWRtaW40IHNo b3J0Y3V0IGljb24gaW4gYnJvd3NlciAtLT4KICAgICA8bGluayByZWw9InNo b3J0Y3V0IGljb24iIGhyZWY9Int7IHVybF9mb3IoJ3JlZGlyZWN0cy5mYXZp Y29uJykgfX0iLz4KIAorICAgIHslIGlmIGNvbmZpZy5ERUJVRyAlfQogICAg IDwhLS0gQmFzZSB0ZW1wbGF0ZSBzdHlsZXNoZWV0cyAtLT4KICAgICA8bGlu ayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IgogICAgICAgICAg IGhyZWY9Int7IHVybF9mb3IoJ3N0YXRpYycsIGZpbGVuYW1lPSd2ZW5kb3Iv Ym9vdHN0cmFwL2Nzcy9ib290c3RyYXAuY3NzJyBpZiBjb25maWcuREVCVUcg ZWxzZSAndmVuZG9yL2Jvb3RzdHJhcC9jc3MvYm9vdHN0cmFwLm1pbi5jc3Mn KX19Ii8+CkBAIC01NCwxMyArNTUsMjAgQEAKICAgICA8bGluayB0eXBlPSJ0 ZXh0L2NzcyIgcmVsPSJzdHlsZXNoZWV0IgogICAgICAgICAgIGhyZWY9Int7 IHVybF9mb3IoJ3N0YXRpYycsIGZpbGVuYW1lPSd2ZW5kb3IvY29kZW1pcnJv ci9hZGRvbi9zY3JvbGwvc2ltcGxlc2Nyb2xsYmFycy5jc3MnKX19Ii8+CiAK KyAgICB7JSBlbHNlICV9CisgICAgICAgIDxsaW5rIHR5cGU9InRleHQvY3Nz IiByZWw9InN0eWxlc2hlZXQiIGhyZWY9Int7IHVybF9mb3IoJ3N0YXRpYycs IGZpbGVuYW1lPSdkaXN0L21haW4uY3NzJyl9fSIvPgorICAgIHslIGVuZGlm ICV9CiAgICAgPCEtLSBWaWV3IHNwZWNpZmllZCBzdHlsZXNoZWV0cyAtLT4K ICAgICB7JSBmb3Igc3R5bGVzaGVldCBpbiBjdXJyZW50X2FwcC5zdHlsZXNo ZWV0cyAlfQogICAgIDxsaW5rIHR5cGU9InRleHQvY3NzIiByZWw9InN0eWxl c2hlZXQiIGhyZWY9Int7IHN0eWxlc2hlZXQgfX0iPgogICAgIHslIGVuZGZv ciAlfQogCisgICAgeyUgaWYgY29uZmlnLkRFQlVHICV9CiAgICAgPGxpbmsg dHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ie3sgdXJs X2Zvcignc3RhdGljJywgZmlsZW5hbWU9J2Nzcy9ib290c3RyYXAub3ZlcnJp ZGVzLmNzcycpIH19Ii8+CiAgICAgPGxpbmsgdHlwZT0idGV4dC9jc3MiIHJl bD0ic3R5bGVzaGVldCIgaHJlZj0ie3sgdXJsX2Zvcignc3RhdGljJywgZmls ZW5hbWU9J2Nzcy9wZ2FkbWluLmNzcycpIH19Ii8+CisgICAgeyUgZWxzZSAl fQorICAgICAgICA8bGluayB0eXBlPSJ0ZXh0L2NzcyIgcmVsPSJzdHlsZXNo ZWV0IiBocmVmPSJ7eyB1cmxfZm9yKCdzdGF0aWMnLCBmaWxlbmFtZT0nZGlz dC9vdmVycmlkZXMuY3NzJyl9fSIvPgorICAgIHslIGVuZGlmICV9CiAgICAg eyUgYmxvY2sgY3NzX2xpbmsgJX17JSBlbmRibG9jayAlfQogCiAgICAgPCEt LSBCYXNlIHRlbXBsYXRlIHNjcmlwdHMgLS0+CmRpZmYgLS1naXQgYS93ZWIv d2VicGFjay5jb25maWcuanMgYi93ZWIvd2VicGFjay5jb25maWcuanMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDFiMTM2NQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi93ZWJwYWNrLmNvbmZpZy5qcwpAQCAtMCww ICsxLDExMSBAQAorY29uc3QgcGF0aCA9IHJlcXVpcmUoJ3BhdGgnKSwKKyAg IGdydW50ID0gcmVxdWlyZSgnZ3J1bnQnKSwKKyAgIGNsZWFuV2VicGFja1Bs dWdpbiA9IHJlcXVpcmUoJ2NsZWFuLXdlYnBhY2stcGx1Z2luJyksCisgICBF eHRyYWN0VGV4dFBsdWdpbiA9IHJlcXVpcmUoJ2V4dHJhY3QtdGV4dC13ZWJw YWNrLXBsdWdpbicpLAorICAgT3B0aW1pemVDc3NBc3NldHNQbHVnaW4gPSBy ZXF1aXJlKCdvcHRpbWl6ZS1jc3MtYXNzZXRzLXdlYnBhY2stcGx1Z2luJyk7 CisKK2NvbnN0IGJhc2VEaXIgPSAnLi9wZ2FkbWluL3N0YXRpYy8nLAorICB2 ZW5kb3JEaXIgPSBiYXNlRGlyICsgJ3ZlbmRvci8nOworCitsZXQgY3NzUmVz b3VyY2VzID0gW10sCisgIGV4Y2x1ZGVzID0gWworICAgICAgJ21lcmdlLmNz cycsICdkcm9wem9uZS5jc3MnLCAnc2xpY2suaGVhZGVyYnV0dG9ucy5jc3Mn LAorICAgICAgJ3NsaWNrLmhlYWRlcm1lbnUuY3NzJywgJ3NlbWFudGljLmNz cycsICdkZWZhdWx0LmNzcycsCisgICAgICAnZGlhbG9nLmNzcycsICdmdWxs c2NyZWVuLmNzcycsICdmb2xkZ3V0dGVyLmNzcycsCisgICAgICAnc2hvdy1o aW50LmNzcycsICdsaW50LmNzcycsICdtZXJnZS5jc3MnLCAnbWF0Y2hlc29u c2Nyb2xsYmFyLmNzcycsCisgICAgICAndGVybi5jc3MnLCAnc2xpY2suY29s dW1ucGlja2VyLmNzcycsICdzbGljay5wYWdlci5jc3MnLAorICAgICAgJ2Jv b3RzdHJhcC1kYXRldGltZXBpY2tlci5taW4uY3NzJywgJ2Jvb3RzdHJhcC10 aGVtZS5jc3MnCisgIF07CisKKy8vIFBhdGgocykgdGhhdCBzaG91bGQgYmUg Y2xlYW5lZAorbGV0IHBhdGhzVG9DbGVhbiA9IFsnZGlzdCddOworCisvLyBD bGVhbiBvcHRpb25zIHRvIHVzZQorbGV0IGNsZWFuT3B0aW9ucyA9IHsKKyAg cm9vdDogcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4vcGdhZG1pbi9zdGF0 aWMvJyksCisgIHZlcmJvc2U6IHRydWUsCisgIGRyeTogZmFsc2UKK307CisK Ky8vIGV4dHJhY3QgdmVuZG9yIGNzcyBmaWxlcyBpbiBjc3NSZXNvdXJjZXMK K2dydW50LmZpbGUuZXhwYW5kKHsgY3dkOiB2ZW5kb3JEaXIgfSwgIioqLyou Y3NzIikuZm9yRWFjaChmdW5jdGlvbihwYWdlKSB7CisgICAgZmlsZV9uYW1l ID0gcGF0aC5iYXNlbmFtZShwYWdlKS5yZXBsYWNlKCcubWluJywgJycpLnJl cGxhY2UoJy5ydGwnLCAnJyk7CisgICAgaWYgKGV4Y2x1ZGVzLmluZGV4T2Yo ZmlsZV9uYW1lKSA9PT0gLTEpIHsKKyAgICAgIGV4Y2x1ZGVzLnB1c2goZmls ZV9uYW1lKTsKKyAgICAgIGNzc1Jlc291cmNlcy5wdXNoKCh2ZW5kb3JEaXIg KyAgcGFnZSkpOworICAgIH0KK30pOworCisvLyBBZGQgY3NzIGZpbGVzIGV4 cGxpY2l0bHkKK2Nzc1Jlc291cmNlcy5wdXNoKHZlbmRvckRpciArICdib290 c3RyYXAvY3NzL2Jvb3RzdHJhcC5taW4uY3NzJyk7Citjc3NSZXNvdXJjZXMu cHVzaCh2ZW5kb3JEaXIgKyAnYm9vdHN0cmFwL2Nzcy9ib290c3RyYXAtdGhl bWUubWluLmNzcycpOworY3NzUmVzb3VyY2VzLnB1c2goJy4vcGdhZG1pbi9i cm93c2VyL3N0YXRpYy92ZW5kb3IvYWNpVHJlZS9jc3MvYWNpVHJlZS5jc3Mn KTsKKworLy8gTWFpbiB3ZWJwYWNrIGNvbmZpZ3VyYXRpb25zIHN0YXJ0cyBo ZXJlCitjb25zdCBjb25maWcgPSB7CisgIC8vIENyZWF0ZSB0d28gZmlsZXMg bWFpbi5jc3MgYW5kIG92ZXJyaWRlcy5jc3MKKyAgZW50cnk6IHsKKyAgICBt YWluOiBjc3NSZXNvdXJjZXMsCisgICAgb3ZlcnJpZGVzOiBbCisgICAgICBi YXNlRGlyICsgJ2Nzcy9ib290c3RyYXAub3ZlcnJpZGVzLmNzcycsCisgICAg ICBiYXNlRGlyICsgJ2Nzcy9wZ2FkbWluLmNzcycsCisgICAgXQorICB9LAor ICBvdXRwdXQ6IHsKKyAgICBwYXRoOiBwYXRoLnJlc29sdmUoX19kaXJuYW1l LCAnLi9wZ2FkbWluL3N0YXRpYy9kaXN0LycpLCAvLyBwYXRoIHRvIGRpc3Qg ZGlyZWN0b3J5CisgICAgZmlsZW5hbWU6ICdbbmFtZV0uY3NzJyAvLyBvdXRw dXQganMgZmlsZSBuYW1lIGlzIGlkZW50aWNhbCB0byBjc3MgZmlsZSBuYW1l CisgIH0sCisgIG1vZHVsZTogeworICAgIHJ1bGVzOiBbCisgICAgICB7Cisg ICAgICAgIHRlc3Q6IC9cLmNzcyQvLAorICAgICAgICB1c2U6IEV4dHJhY3RU ZXh0UGx1Z2luLmV4dHJhY3QoeworICAgICAgICAgIGZhbGxiYWNrOiAnc3R5 bGUtbG9hZGVyJywKKyAgICAgICAgICB1c2U6ICdjc3MtbG9hZGVyJworICAg ICAgICB9KSwKKyAgICAgICAgZXhjbHVkZTogL25vZGVfbW9kdWxlcy8KKyAg ICAgIH0sCisgICAgICB7CisgICAgICAgIHRlc3Q6IC9cLihqcGU/Z3xwbmd8 Z2lmfHN2ZykkL2ksCisgICAgICAgIGxvYWRlcnM6IFsKKyAgICAgICAgICAg ICdmaWxlLWxvYWRlcj9oYXNoPXNoYTUxMiZkaWdlc3Q9aGV4Jm5hbWU9aW1n L1tuYW1lXS5bZXh0XScsIHsKKyAgICAgICAgICAgIGxvYWRlcjogJ2ltYWdl LXdlYnBhY2stbG9hZGVyJywKKyAgICAgICAgICAgIHF1ZXJ5OiB7CisgICAg ICAgICAgICAgIGJ5cGFzc09uRGVidWc6IHRydWUsCisgICAgICAgICAgICAg IG1vempwZWc6IHsKKyAgICAgICAgICAgICAgICBwcm9ncmVzc2l2ZTogdHJ1 ZSwKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgZ2lmc2ljbGU6 IHsKKyAgICAgICAgICAgICAgICBpbnRlcmxhY2VkOiBmYWxzZSwKKyAgICAg ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgb3B0aXBuZzogeworICAgICAg ICAgICAgICAgIG9wdGltaXphdGlvbkxldmVsOiA3LAorICAgICAgICAgICAg ICB9LAorICAgICAgICAgICAgICBwbmdxdWFudDogeworICAgICAgICAgICAg ICAgIHF1YWxpdHk6ICc3NS05MCcsCisgICAgICAgICAgICAgICAgc3BlZWQ6 IDMKKyAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIH0KKyAgICAgICAg ICB9CisgICAgICAgIF0sCisgICAgICAgIGV4Y2x1ZGU6IC9ub2RlX21vZHVs ZXMvCisgICAgIH0sCisgICAgIHsKKyAgICAgICAgdGVzdDogL1wuKGVvdHxz dmd8dHRmfHdvZmZ8d29mZjIpJC8sCisgICAgICAgIGxvYWRlcjogJ2ZpbGUt bG9hZGVyP25hbWU9Zm9udHMvW25hbWVdLltleHRdJywKKyAgICAgICAgZXhj bHVkZTogL25vZGVfbW9kdWxlcy8KKyAgICAgfQorICAgIF0KKyAgfSwKKyAg cGx1Z2luczogWworICAgIG5ldyBjbGVhbldlYnBhY2tQbHVnaW4ocGF0aHNU b0NsZWFuLCBjbGVhbk9wdGlvbnMpLCAvLyBjbGVhbiBkaXN0IGRpcmVjdG9y eQorICAgIG5ldyBFeHRyYWN0VGV4dFBsdWdpbignW25hbWVdLmNzcycpLAor ICAgIG5ldyBPcHRpbWl6ZUNzc0Fzc2V0c1BsdWdpbih7CisgICAgICBhc3Nl dE5hbWVSZWdFeHA6IC9cLmNzcyQvZywKKyAgICAgIGNzc1Byb2Nlc3Nvcjog cmVxdWlyZSgnY3NzbmFubycpLAorICAgICAgY3NzUHJvY2Vzc29yT3B0aW9u czogeyBkaXNjYXJkQ29tbWVudHM6IHtyZW1vdmVBbGw6IHRydWUgfSB9LAor ICAgICAgY2FuUHJpbnQ6IHRydWUKKyAgICB9KQorICBdCit9OworbW9kdWxl LmV4cG9ydHMgPSBjb25maWc7Cg== --001a1146b7bc01d6d80551330dd0 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 --001a1146b7bc01d6d80551330dd0--