Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1atA0a-0005m5-Uh for pgadmin-hackers@arkaria.postgresql.org; Thu, 21 Apr 2016 08:30:45 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1atA0a-0006mV-Fx for pgadmin-hackers@arkaria.postgresql.org; Thu, 21 Apr 2016 08:30:44 +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 1atA0L-0006Vz-9d for pgadmin-hackers@postgresql.org; Thu, 21 Apr 2016 08:30:29 +0000 Received: from mail-oi0-x22b.google.com ([2607:f8b0:4003:c06::22b]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1atA0C-0006cO-JD for pgadmin-hackers@postgresql.org; Thu, 21 Apr 2016 08:30:28 +0000 Received: by mail-oi0-x22b.google.com with SMTP id k142so73584946oib.1 for ; Thu, 21 Apr 2016 01:30:20 -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:date:message-id:subject:from:to :cc; bh=yoy6KxlTVRDqweQL39YkKxZkAmdTO40BjCbmJZO7bho=; b=FRNbk17UjUN29qsmE7aE0gKW/WFQtf7y1kuu9EP39L8VpMkkVIK4m7Pf5fdLb5FpTN Cj3F/5PaKGDAUAb9n3l4l5O9YdF1dLlJGDShLpLraou6V08s4pQA0kUbsT3FhEeeJN6B 50ESa7POuF/xK47s6jYMc0meKtoKgqJWLU7TLWxUE1KF3dsSjOKz+D9BgDbkIMzqyA1W /O1EtxGJVgxevvTdXQpwog39CQzwF7e5gGLh4XoZraZZBMn0K0oU8qS9nqbZBPqI1btn m+Mf56+ZqeRSCU7Jx4oFp6oKbiH8HPZg9UcYh6c9ay37TOJD/LzowfDoaJ5AEUoHa+OM K2ww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc; bh=yoy6KxlTVRDqweQL39YkKxZkAmdTO40BjCbmJZO7bho=; b=X3ZqXDhIhx8yR8V/3oIaLT2c6+B2jLXbl/nJ1kQU571DXl2Ekx+7gYPT7EKrL1eGZH X7RYHHN5UXwyOvhvvE6p0kRYIj95p12RxQgwmfZkp9c5SZk4mw+M90r9yD/Et59twhCo FM7Sqw4mGD3J2zOidIX/rUpkWy/xCTbNsi97NUTMwJ4kCbyALPueelRhtRsmT/aR07kw UYwCMR6VSwLL/uZQIX8IKw7KYcV9Zy8aDpaAYqHoaHxPvq3SNJ0A6wHlGZilsIlpL158 CXE/n38KccbJfUmFZoI4lYwJ5PskfhqG31oNRLCdKwaJrAMucaBZ4JBjPj2BrC6FfW4I nVdg== X-Gm-Message-State: AOPr4FVFWSJeNF5Z+151KzQLBIjkBjOxExzqzS9iwKtfOROh4DXZJSns6QMBLT01UVqnhgkqsS+IqOLm6Hf2thow MIME-Version: 1.0 X-Received: by 10.157.9.147 with SMTP id q19mr6031206otd.52.1461227418346; Thu, 21 Apr 2016 01:30:18 -0700 (PDT) Received: by 10.202.175.148 with HTTP; Thu, 21 Apr 2016 01:30:18 -0700 (PDT) In-Reply-To: References: Date: Thu, 21 Apr 2016 14:00:18 +0530 Message-ID: Subject: Re: [pgAdmin4] [Patch] Implementation of the Data Grid and Query Tool From: Akshay Joshi To: Dave Page Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a113e2c1635b96e0530fa85d8 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 --001a113e2c1635b96e0530fa85d8 Content-Type: multipart/alternative; boundary=001a113e2c1635b9670530fa85d6 --001a113e2c1635b9670530fa85d6 Content-Type: text/plain; charset=UTF-8 Hi I have fixed following review comments given by Dave and attached is the patch file: - The button bar be moved out into an HTML template - create.sql should perhaps be renamed to insert.sql - The "Add Row" button only works if you're on the last page of the resultset. I have tried to fix the following review comments, but unable to figure out the solution - Please add an SQL button. This should show/hide the SQL panel in *both* Query Tool and Edit Grid modes. I have changed the design and have only one wcDocker and add SQL panel to the Top and remaining panel to the Bottom, then I have tried to hide the top panel, but not able to fix it. - If a field has been edited, but not saved, can we highlight it somehow? Maybe make the text dark blue? For this we have "backgrid:edited" event in which we get model and column, but not sure how we can find the cell to add the class to change the colour and if we will have solution then, we will have to remove that class again once user will enter the original value again. - Can the "Copy Row" button also populate the clipboard with CSV data for the row? - Cut, Copy and Paste to Clipboard. I have googled for solution and found some of them which have only "Copy" feature, some of them works for limited browsers. One solution is to use "document.execCommand("Copy")" but it works for TextArea and we have CodeMirror. - The layout of the result tabs should be maintained if new Query Tool or Edit Grid tabs are opened. To solve the above I need some help/suggestions here. On Fri, Apr 15, 2016 at 1:22 PM, Dave Page wrote: > Thanks - committed. > > On Fri, Apr 15, 2016 at 8:03 AM, Akshay Joshi < > akshay.joshi@enterprisedb.com> wrote: > >> >> >> On Thu, Apr 14, 2016 at 7:40 PM, Dave Page >> wrote: >> >>> Hi >>> >>> On Thu, Apr 14, 2016 at 1:58 PM, Akshay Joshi < >>> akshay.joshi@enterprisedb.com> wrote: >>> >>>> Hi All >>>> >>>> I have fixed review comments given by Dave and couple of them are >>>> remaining >>>> >>>> *Fixed Review Comments:* >>>> >>>> - The View Data menu option should be on the Object menu, which >>>> should mirror the Context menu, except options should be disabled when not >>>> applicable instead of hidden. >>>> - The Query Tool menu icon should be a glyphicon, to match the >>>> others. >>>> - Please merge the functionality of the Refresh and Execute buttons >>>> into one button. We shouldn't have two buttons that do essentially the same >>>> thing. >>>> - In Edit Grid mode, the History panel should log all queries ( >>>> SELECTs, UPDATEs, DELETEs etc) as it would in the Query Tool. >>>> - In Edit Grid mode, the Messages panel should display any messages >>>> from the most recent action as it would in the Query Tool. >>>> - In Edit Grid mode, that textbox should be read-only, but should >>>> display the SQL used (including any LIMIT/FILTER clauses) >>>> - Please remove the border from the SQL box, such that it fills all >>>> available space. >>>> - The Filter box should be in a modal overlay over the top of the >>>> SQL box/Results tabs as required. Those elements should be grayed >>>> whilst it is open. >>>> - Please adjust the height of the Delete icon in the Edit Grid, >>>> such that it doesn't force the row height to be higher than it should be. >>>> - I think the names of the tabs are far too long. Can we change >>>> them to "Query 1", "Query 2" etc, then rename them to the filename >>>> if the user saves/loads a file? >>>> - We should add an "Edit" button, which opens a drop-down menu. >>>> This would eventually include options as found on the Edit menu in the >>>> pgAdmin3 query tool, such as the "Clear SQL" option. >>>> - Ashesh and I discussed changing the History tab to be a grid, >>>> showing: Date/Time, Query (first line only), Rows affected, Runtime >>>> and Status, in a row per query executed. Ashesh suggested using a >>>> sub-form that can be expanded for each row, which could show the full query >>>> and error details (SQL State etc). New rows should be added to the >>>> top of the list. >>>> - Errors should be highlighted in the SQL box - a marker in the >>>> margin to note the line, and spellcheck-style underlining for the error >>>> word. >>>> - Query results should have spaces converted to " ", so that >>>> proper indenting is maintained (for example, on EXPLAIN queries). >>>> - on shutdown pgAdmin server , appropriate message should be >>>> displayed. >>>> >>>> >>> Awesome! >>> >>> I've made a few minor style changes - mostly colouring, but I also >>> widened the Execute button and it was easier to push it's dropdown than it >>> - and pushed the code. >>> >>> >>>> *Remaining review comments*: >>>> >>>> - Please add an SQL button. This should show/hide the SQL panel in >>>> *both* Query Tool and Edit Grid modes. >>>> - If a field has been edited, but not saved, can we highlight it >>>> somehow? Maybe make the text dark blue? >>>> - The "Add Row" button only works if you're on the last page of the >>>> resultset. >>>> - Can the "Copy Row" button also populate the clipboard with CSV >>>> data for the row? >>>> - In Edit mode, we need to be able to represent/set values to NULL. >>>> - The layout of the result tabs should be maintained if new Query >>>> Tool or Edit Grid tabs are opened. >>>> >>>> *TODO's* (apart from above) >>>> >>>> - Open/Save SQL file. >>>> - Cut, Copy, Paste functionality. >>>> >>>> Agreed on the above. >>> >>> My only real suggestion on the code itself (which looks good and clean >>> on a quick review), is that: >>> >>> - The button bar be moved out into an HTML template >>> - create.sql should perhaps be renamed to insert.sql >>> - It looks like we only allow updates if we have a pkey. Should we allow >>> use of OIDs when present, if a pkey isn't there? >>> >>> I'll continue to log additional issues if/when I find them. >>> >> >> Thanks for committing the patch. I'll work on the above comments. >> Meanwhile I have found one issue where "View Filtered Row" is not working, >> so attached is the patch file to fix that. Can you please review/commit it. >> >>> >>> -- >>> Dave Page >>> VP, Chief Architect, Tools & Installers >>> EnterpriseDB: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >> >> >> >> -- >> *Akshay Joshi* >> *Principal Software Engineer * >> >> >> >> *Phone: +91 20-3058-9517 <%2B91%2020-3058-9517>Mobile: +91 976-788-8246* >> > > > > -- > Dave Page > VP, Chief Architect, Tools & Installers > EnterpriseDB: http://www.enterprisedb.com > The Enterprise PostgreSQL Company > > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > -- *Akshay Joshi* *Principal Software Engineer * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* --001a113e2c1635b9670530fa85d6 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi=C2=A0

I have fixed following review = comments given by Dave and attached is the patch file:
  • The button bar be moved out into an HTML temp= late
  • create.sql should perhaps be renamed to insert.sql
  • = The "Add Row"= button only works if you're on the last page of the=C2=A0resultset.
  • I have tried to fix the following review comments, but unable to figure ou= t the solution
      • Please add an=C2=A0SQL=C2=A0button. This should show/h= ide the=C2=A0SQL=C2=A0<= span style=3D"font-size:12.8px">panel in *both* Query Tool and Edit Grid mo= des.=C2=A0
      =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0I have changed the design and have only one = wcDocker and add SQL panel to the Top and remaining panel to the Bottom, th= en I have tried to hide the top panel, but not able to fix it. =C2=A0=C2=A0=
      • If a field has been edi= ted, but not saved, can we highlight it somehow? Maybe make the text dark b= lue?
      =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0For this we have "backgrid:edited" event = in which we get model and column, but not sure how we can find the cell to = add the class to change the colour and if we will have solution then, we wi= ll have to remove that class again once user will enter the original value = again. =C2=A0=C2=A0
      • Can the = "Copy Row" button also populate the clipboard with=C2=A0CSV<= /span>=C2=A0data for the row?
      • Cut, Copy and Paste to Clipboard.=C2=A0
      =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0I have googled for solution and found some of them which have onl= y "Copy" feature, some of them works for limited browsers. One so= lution is to use "document.execCommand("Copy")" but it = works for TextArea and we have CodeMirror.=C2=A0
      • The layout of the result t= abs should be maintained if new Query Tool or Edit Grid tabs are opened.
                To solve the above I need some hel= p/suggestions here.=C2=A0


                On Fri, Apr 15, 2016 at 1:22 PM, = Dave Page <dave.page@enterprisedb.com> wrote:
                Thanks - committed.

                On Fri, Apr 15, 2016 at 8:03 AM, Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:


                On Thu, Apr 14, 2016 at 7:40 PM, Dave Page <dave.page@enterprisedb.com> wrote:
                Hi

                On Thu, Apr 14, 2016= at 1:58 PM, Akshay Joshi <akshay.joshi@enterprisedb.com&g= t; wrote:
                Hi All= =C2=A0

                I have fixed review comments given by Dave and co= uple of them are remaining

                Fixed Review Comment= s:
                • The View Data menu option should be on the Object menu, whi= ch should mirror the Context menu, except options should be disabled when n= ot applicable instead of hidden.
                • The Query Tool menu icon should be a glyphicon= , to match the others.
                • Please merge the functionality of the Refresh and Exe= cute buttons into one button. We shouldn't have two buttons that do ess= entially the same thing.
                • In Edit Grid mode, the History panel should log all queries = (SELECTs, UPDATEs, DELETEs etc) as i= t would in the Query Tool.
                • In Edit Grid mode, the Messages panel should display any m= essages from the most recent action =C2=A0as it would in the Query Tool.
                • In Edit Grid= mode, that textbox should be read-only, but should display th= e SQL used (including any LIMIT/FILTER clauses)
                • Please remove the border= from the SQL box, such that it fills all available space.
                • The Filter bo= x should be in a modal overlay over the top of the SQL box/Res= ults tabs as required. Those elements should be grayed whilst it is open.
                • Please adju= st the height of the Delete icon in the Edit Grid, such that it doesn't= force the row height to be higher than it should be.
                • I think the names of the tabs are far too lo= ng. Can we change them to "Query 1", "Query 2" etc, the= n rename them to the filename if the user saves/loads a file?<= /span>
                • We should = add an "Edit" button, which opens a drop-down menu. This would ev= entually include options as found on the Edit menu in the pgAdmin3 query to= ol, such as the "Clear SQL" option.
                • <= /span>
                • Ashesh and I = discussed changing the History tab to be a grid, showing: Date/Time, Query = (first line only), Rows affected, Runtime and Status, in a row= per query executed. Ashesh suggested using a sub-form that ca= n be expanded for each row, which could show the full query and error detai= ls (SQL State etc). New rows should be added to the top of the= list.
                • Errors should be highlighted in the SQL= box - a marker in the margin to note the line, and spellcheck-style= underlining for the error word.
                • Query results should have spaces converted to "&nbsp;", so that proper indenting is maintained (for example,= on EXPLAIN queries).
                • on shutdown pgAdmin server ,=C2=A0appropriate message should be displayed.

                Awesome!

                I've made a few minor style changes - mostly col= ouring, but I also widened the Execute button and it was easier to push it&= #39;s dropdown than it - and pushed the code.
                =C2=A0
                <= blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px= #ccc solid;padding-left:1ex">
                Remaining review comments:
                • Please add an SQL button. This should show/hide the SQL panel in *both* Query= Tool and Edit Grid modes.=C2=A0
                • If a field has been edited, but not saved, can we hi= ghlight it somehow? Maybe make the text dark blue?
                • The "Add Row" button onl= y works if you're on the last page of the resultset.
                • Can the "C= opy Row" button also populate the clipboard with CSV data= for the row?
                • In Edit mode, we need to be able to represent/set values to NULL.
                • The layout of t= he result tabs should be maintained if new Query Tool or Edit Grid tabs are= opened.
                TODO's (apart from above)
                • Open/Save SQL file.
                • = Cut, Copy, Paste functionality.=C2=A0
                Agreed on the above.
                =

                My only real suggestion on the code itself (which looks= good and clean on a quick review), is that:

                - The= button bar be moved out into an HTML template
                - create.sql shoul= d perhaps be renamed to insert.sql
                - It looks like we only allow = updates if we have a pkey. Should we allow use of OIDs when present, if a p= key isn't there?

                I'll continue to log addi= tional issues if/when I find them.

                =C2=A0 =C2=A0Thanks for committing the patch. I= 'll work on the above comments. Meanwhile I have found one issue where = "View Filtered Row" is not working, so attached is the patch file= to fix that. Can you please review/commit it.
                =C2=A0
                --
                Dave Page
                VP, Chief Architect, Tools & Installers
                En= terpriseDB: http:= //www.enterprisedb.com
                The Enterprise PostgreSQL Company
                <= /span>
                Blog: http://pgsnake.blogspot.com
                Twitter: @pgsnake



                --
                Akshay Joshi
                <= font color=3D"#3333FF">Principal Software Eng= ineer=C2=A0


                Phone: +91 20-3058-9517
                Mobile: +91 976-788-8246
                =



                --
                Dave Pa= ge
                VP, Chief Architect, Tools & Installers
                EnterpriseDB: http://www.enterprisedb.= com
                The Enterprise PostgreSQL Company

                Blog: http://pgsnake.blogspot.comTwitter: @pgsnake



                --
                =
                Akshay Joshi
                Principal Software Engi= neer=C2=A0

                =

                Phone: +91 20-3058-9517
                Mobile: +91 976-788-8246
                --001a113e2c1635b9670530fa85d6-- --001a113e2c1635b96e0530fa85d8 Content-Type: application/octet-stream; name="Fixed_Review_Comment_v1.patch" Content-Disposition: attachment; filename="Fixed_Review_Comment_v1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ina119rx0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL2RhdGFncmlkL3RlbXBs YXRlcy9kYXRhZ3JpZC9pbmRleC5odG1sIGIvd2ViL3BnYWRtaW4vdG9vbHMv ZGF0YWdyaWQvdGVtcGxhdGVzL2RhdGFncmlkL2luZGV4Lmh0bWwKaW5kZXgg MzFhZGU3ZC4uNTg0Y2M3NiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9v bHMvZGF0YWdyaWQvdGVtcGxhdGVzL2RhdGFncmlkL2luZGV4Lmh0bWwKKysr IGIvd2ViL3BnYWRtaW4vdG9vbHMvZGF0YWdyaWQvdGVtcGxhdGVzL2RhdGFn cmlkL2luZGV4Lmh0bWwKQEAgLTEwLDExICsxMCwxMjcgQEAgYm9keSB7CiB9 CiA8L3N0eWxlPgogICAgIDxkaXYgaWQ9Im1haW4tZWRpdG9yX3BhbmVsIj4K LSAgICAgICAgPGRpdiBpZD0iZmV0Y2hpbmdfZGF0YSIgY2xhc3M9InNxbC1l ZGl0b3ItYnVzeS1mZXRjaGluZyBoaWRlIj4nLAorICAgICAgICA8ZGl2IGlk PSJmZXRjaGluZ19kYXRhIiBjbGFzcz0ic3FsLWVkaXRvci1idXN5LWZldGNo aW5nIGhpZGUiPgogICAgICAgICAgICAgPHNwYW4gY2xhc3M9InNxbC1lZGl0 b3ItYnVzeS1pY29uIj48aW1nIHNyYz0ie3sgdXJsX2ZvcignYnJvd3Nlci5z dGF0aWMnLCBmaWxlbmFtZT0nY3NzL2FjaVRyZWUvaW1hZ2UvbG9hZC1yb290 LmdpZicpIH19Ij48L3NwYW4+CiAgICAgICAgICAgICA8c3BhbiBjbGFzcz0i c3FsLWVkaXRvci1idXN5LXRleHQiPjwvc3Bhbj4KICAgICAgICAgPC9kaXY+ Ci0gICAgICAgIDxkaXYgY2xhc3M9InNxbC1lZGl0b3IiIGRhdGEtdHJhbnMt aWQ9Int7IHVuaXF1ZUlkIH19Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFz cz0ic3FsLWVkaXRvciIgZGF0YS10cmFucy1pZD0ie3sgdW5pcXVlSWQgfX0i PgorICAgICAgICA8ZGl2IGlkPSJidG4tdG9vbGJhciIgY2xhc3M9InBnLXBy b3AtYnRuLWdyb3VwIiByb2xlPSJ0b29sYmFyIiBhcmlhLWxhYmVsPSIiPgor ICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCIgcm9sZT0iZ3JvdXAi IGFyaWEtbGFiZWw9IiI+CisgICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4t c2F2ZSIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1kZWZhdWx0IiB0 aXRsZT0ie3sgXygnU2F2ZScpIH19IiBkaXNhYmxlZD4KKyAgICAgICAgICAg ICAgPGkgY2xhc3M9ImZhIGZhLWZsb3BweS1vIiBhcmlhLWhpZGRlbj0idHJ1 ZSI+PC9pPgorICAgICAgICAgICAgPC9idXR0b24+CisgICAgICAgICAgPC9k aXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0iYnRuLWdyb3VwIiByb2xlPSJn cm91cCIgYXJpYS1sYWJlbD0iIj4KKyAgICAgICAgICAgIDxidXR0b24gaWQ9 ImJ0bi1jb3B5LXJvdyIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1k ZWZhdWx0IiB0aXRsZT0ie3sgXygnQ29weSBSb3cnKSB9fSIgZGlzYWJsZWQ+ CisgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1maWxlcy1vIiBhcmlh LWhpZGRlbj0idHJ1ZSI+PC9pPgorICAgICAgICAgICAgPC9idXR0b24+Cisg ICAgICAgICAgICA8YnV0dG9uIGlkPSJidG4tcGFzdGUtcm93IiB0eXBlPSJi dXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIHRpdGxlPSJ7eyBfKCdQ YXN0ZSBSb3cnKSB9fSIgZGlzYWJsZWQ+CisgICAgICAgICAgICAgIDxpIGNs YXNzPSJmYSBmYS1jbGlwYm9hcmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+ CisgICAgICAgICAgICA8L2J1dHRvbj4KKyAgICAgICAgICA8L2Rpdj4KKyAg ICAgICAgICA8ZGl2IGNsYXNzPSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBh cmlhLWxhYmVsPSIiPgorICAgICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWFk ZC1yb3ciIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIg dGl0bGU9Int7IF8oJ0FkZCBOZXcgUm93JykgfX0iIGRpc2FibGVkPgorICAg ICAgICAgICAgICA8aSBjbGFzcz0iZmEgZmEtcGx1cyIgYXJpYS1oaWRkZW49 InRydWUiPjwvaT4KKyAgICAgICAgICAgIDwvYnV0dG9uPgorICAgICAgICAg IDwvZGl2PgorICAgICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCIgcm9s ZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IiI+CisgICAgICAgICAgICA8YnV0dG9u IGlkPSJidG4tZmlsdGVyIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRu LWRlZmF1bHQiIHRpdGxlPSJ7eyBfKCdGaWx0ZXInKSB9fSIgZGlzYWJsZWQ+ CisgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1maWx0ZXIiIGFyaWEt aGlkZGVuPSJ0cnVlIj48L2k+CisgICAgICAgICAgICA8L2J1dHRvbj4KKyAg ICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1maWx0ZXItZHJvcGRvd24iIHR5 cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCBkcm9wZG93bi10 b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93biIgYXJpYS1oYXNwb3B1cD0i dHJ1ZSIgYXJpYS1leHBhbmRlZD0iZmFsc2UiIGRpc2FibGVkPgorICAgICAg ICAgICAgICA8c3BhbiBjbGFzcz0iY2FyZXQiPjwvc3Bhbj4gPHNwYW4gY2xh c3M9InNyLW9ubHkiPlRvZ2dsZSBEcm9wZG93bjwvc3Bhbj4KKyAgICAgICAg ICAgIDwvYnV0dG9uPgorICAgICAgICAgICAgPHVsIGNsYXNzPSJkcm9wZG93 bi1tZW51IGRyb3Bkb3duLW1lbnUtcmlnaHQiPgorICAgICAgICAgICAgICA8 bGk+CisgICAgICAgICAgICAgICAgPGEgaWQ9ImJ0bi1yZW1vdmUtZmlsdGVy IiBocmVmPSIjIj57eyBfKCdSZW1vdmUnKSB9fTwvYT4KKyAgICAgICAgICAg ICAgICA8YSBpZD0iYnRuLWluY2x1ZGUtZmlsdGVyIiBocmVmPSIjIj57eyBf KCdCeSBzZWxlY3Rpb24nKSB9fTwvYT4KKyAgICAgICAgICAgICAgICA8YSBp ZD0iYnRuLWV4Y2x1ZGUtZmlsdGVyIiBocmVmPSIjIj57eyBfKCdFeGNsdWRl IHNlbGVjdGlvbicpIH19PC9hPgorICAgICAgICAgICAgICA8L2xpPgorICAg ICAgICAgICAgPC91bD4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICA8 ZGl2IGNsYXNzPSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVs PSIiPgorICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz0ibGltaXQiIHN0eWxl PSJoZWlnaHQ6IDMwcHg7IHdpZHRoOiA5MHB4OyIgZGlzYWJsZWQ+CisgICAg ICAgICAgICAgIDxvcHRpb24gdmFsdWU9Ii0xIj5ObyBsaW1pdDwvb3B0aW9u PgorICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPSIxMDAwIj4xMDAwIHJv d3M8L29wdGlvbj4KKyAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT0iNTAw Ij41MDAgcm93czwvb3B0aW9uPgorICAgICAgICAgICAgICA8b3B0aW9uIHZh bHVlPSIxMDAiPjEwMCByb3dzPC9vcHRpb24+CisgICAgICAgICAgICA8L3Nl bGVjdD4KKyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICA8ZGl2IGNsYXNz PSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPgorICAg ICAgICAgICAgPGJ1dHRvbiBpZD0iYnRuLWZsYXNoIiB0eXBlPSJidXR0b24i IGNsYXNzPSJidG4gYnRuLWRlZmF1bHQiIHN0eWxlPSJ3aWR0aDogNDBweDsi IHRpdGxlPSJ7eyBfKCdFeGVjdXRlL1JlZnJlc2gnKSB9fSI+CisgICAgICAg ICAgICAgIDxpIGNsYXNzPSJmYSBmYS1ib2x0IiBhcmlhLWhpZGRlbj0idHJ1 ZSI+PC9pPgorICAgICAgICAgICAgPC9idXR0b24+CisgICAgICAgICAgICA8 YnV0dG9uIGlkPSJidG4tcXVlcnktZHJvcGRvd24iIHR5cGU9ImJ1dHRvbiIg Y2xhc3M9ImJ0biBidG4tZGVmYXVsdCBkcm9wZG93bi10b2dnbGUiIGRhdGEt dG9nZ2xlPSJkcm9wZG93biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJpYS1l eHBhbmRlZD0iZmFsc2UiPgorICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0i Y2FyZXQiPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNyLW9ubHkiPlRvZ2dsZSBE cm9wZG93bjwvc3Bhbj4KKyAgICAgICAgICAgIDwvYnV0dG9uPgorICAgICAg ICAgICAgPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1lbnUi PgorICAgICAgICAgICAgICA8bGk+CisgICAgICAgICAgICAgICAgPGEgaWQ9 ImJ0bi1hdXRvLWNvbW1pdCIgaHJlZj0iIyI+CisgICAgICAgICAgICAgICAg ICAgIDxpIGNsYXNzPSJhdXRvLWNvbW1pdCBmYSBmYS1jaGVjayIgYXJpYS1o aWRkZW49InRydWUiPjwvaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4+ IHt7IF8oJ0F1dG8tQ29tbWl0JykgfX0gPC9zcGFuPgorICAgICAgICAgICAg ICAgIDwvYT4KKyAgICAgICAgICAgICAgICA8YSBpZD0iYnRuLWF1dG8tcm9s bGJhY2siIGhyZWY9IiMiPgorICAgICAgICAgICAgICAgICAgICA8aSBjbGFz cz0iYXV0by1yb2xsYmFjayBmYSBmYS1jaGVjayB2aXNpYmlsaXR5LWhpZGRl biIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KKyAgICAgICAgICAgICAgICAg ICAgPHNwYW4+IHt7IF8oJ0F1dG8tUm9sbGJhY2snKSB9fSA8L3NwYW4+Cisg ICAgICAgICAgICAgICAgPC9hPgorICAgICAgICAgICAgICA8L2xpPgorICAg ICAgICAgICAgPC91bD4KKyAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1j YW5jZWwtcXVlcnkiIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVm YXVsdCIgdGl0bGU9Int7IF8oJ0NhbmNlbCBxdWVyeScpIH19IiBkaXNhYmxl ZD4KKyAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXN0b3AiIGFyaWEt aGlkZGVuPSJ0cnVlIj48L2k+CisgICAgICAgICAgICA8L2J1dHRvbj4KKyAg ICAgICAgICA8L2Rpdj4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJidG4tZ3Jv dXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPgorICAgICAgICAgICAg PGJ1dHRvbiBpZD0iYnRuLWVkaXQiIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0 biBidG4tZGVmYXVsdCIgdGl0bGU9Int7IF8oJ0VkaXQnKSB9fSI+CisgICAg ICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1wZW5jaWwtc3F1YXJlLW8iIGFy aWEtaGlkZGVuPSJ0cnVlIj48L2k+CisgICAgICAgICAgICA8L2J1dHRvbj4K KyAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0bi1lZGl0LWRyb3Bkb3duIiB0 eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRlZmF1bHQgZHJvcGRvd24t dG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJvcGRvd24iIGFyaWEtaGFzcG9wdXA9 InRydWUiIGFyaWEtZXhwYW5kZWQ9ImZhbHNlIj4KKyAgICAgICAgICAgICAg PHNwYW4gY2xhc3M9ImNhcmV0Ij48L3NwYW4+IDxzcGFuIGNsYXNzPSJzci1v bmx5Ij5Ub2dnbGUgRHJvcGRvd248L3NwYW4+CisgICAgICAgICAgICA8L2J1 dHRvbj4KKyAgICAgICAgICAgIDx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSBk cm9wZG93bi1tZW51Ij4KKyAgICAgICAgICAgICAgPGxpPgorICAgICAgICAg ICAgICAgIDxhIGlkPSJidG4tY29weSIgaHJlZj0iIyI+CisgICAgICAgICAg ICAgICAgICAgIDxzcGFuPiB7eyBfKCdDb3B5JykgfX0gPC9zcGFuPgorICAg ICAgICAgICAgICAgIDwvYT4KKyAgICAgICAgICAgICAgICA8YSBpZD0iYnRu LXBhc3RlIiBocmVmPSIjIj4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4+ IHt7IF8oJ1Bhc3RlJykgfX0gPC9zcGFuPgorICAgICAgICAgICAgICAgIDwv YT4KKyAgICAgICAgICAgICAgICA8YSBpZD0iYnRuLWNsZWFyIiBocmVmPSIj Ij4KKyAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWVyYXNl ciIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KKyAgICAgICAgICAgICAgICAg ICAgPHNwYW4+IHt7IF8oJ0NsZWFyIHF1ZXJ5IHdpbmRvdycpIH19IDwvc3Bh bj4KKyAgICAgICAgICAgICAgICA8L2E+CisgICAgICAgICAgICAgICAgPGEg aWQ9ImJ0bi1jbGVhci1oaXN0b3J5IiBocmVmPSIjIj4KKyAgICAgICAgICAg ICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLWVyYXNlciIgYXJpYS1oaWRkZW49 InRydWUiPjwvaT4KKyAgICAgICAgICAgICAgICAgICAgPHNwYW4+IHt7IF8o J0NsZWFyIGhpc3RvcnknKSB9fSA8L3NwYW4+CisgICAgICAgICAgICAgICAg PC9hPgorICAgICAgICAgICAgICA8L2xpPgorICAgICAgICAgICAgPC91bD4K KyAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgICA8ZGl2IGNsYXNzPSJidG4t Z3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPgorICAgICAgICAg ICAgPGJ1dHRvbiBpZD0iYnRuLWRvd25sb2FkIiB0eXBlPSJidXR0b24iIGNs YXNzPSJidG4gYnRuLWRlZmF1bHQiIHRpdGxlPSJ7eyBfKCdEb3dubG9hZCBh cyBDU1YnKSB9fSI+CisgICAgICAgICAgICAgIDxpIGNsYXNzPSJmYSBmYS1k b3dubG9hZCIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4KKyAgICAgICAgICAg IDwvYnV0dG9uPgorICAgICAgICAgIDwvZGl2PgorICAgICAgICA8L2Rpdj4K KyAgICAgICAgPGRpdiBjbGFzcz0iZWRpdG9yLXRpdGxlIj48L2Rpdj4KKyAg ICAgICAgPGRpdiBpZD0iZmlsdGVyIiBjbGFzcz0iZmlsdGVyLWNvbnRhaW5l ciBoaWRkZW4iPgorICAgICAgICAgIDxkaXYgY2xhc3M9ImZpbHRlci10aXRs ZSI+RmlsdGVyPC9kaXY+CisgICAgICAgICAgPGRpdiBjbGFzcz0ic3FsLXRl eHRhcmVhIj4KKyAgICAgICAgICAgIDx0ZXh0YXJlYSBpZD0ic3FsX2ZpbHRl ciIgcm93PSI1Ij48L3RleHRhcmVhPgorICAgICAgICAgIDwvZGl2PgorICAg ICAgICAgIDxkaXYgY2xhc3M9ImJ0bi1ncm91cCI+CisgICAgICAgICAgICA8 YnV0dG9uIGlkPSJidG4tY2FuY2VsIiB0eXBlPSJidXR0b24iIGNsYXNzPSJi dG4gYnRuLWRhbmdlciIgdGl0bGU9Int7IF8oJ0NhbmNlbCcpIH19Ij4KKyAg ICAgICAgICAgICAgPGkgY2xhc3M9ImZhIGZhLXRpbWVzIiBhcmlhLWhpZGRl bj0idHJ1ZSI+PC9pPiB7eyBfKCdDYW5jZWwnKSB9fQorICAgICAgICAgICAg PC9idXR0b24+CisgICAgICAgICAgPC9kaXY+CisgICAgICAgICAgPGRpdiBj bGFzcz0iYnRuLWdyb3VwIj4KKyAgICAgICAgICAgIDxidXR0b24gaWQ9ImJ0 bi1hcHBseSIgdHlwZT0iYnV0dG9uIiBjbGFzcz0iYnRuIGJ0bi1wcmltYXJ5 IiB0aXRsZT0ie3sgXygnQXBwbHknKSB9fSI+CisgICAgICAgICAgICAgIDxp IGNsYXNzPSJmYSBmYS1jaGVjayIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4g e3sgXygnQXBwbHknKSB9fQorICAgICAgICAgICAgPC9idXR0b24+CisgICAg ICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlk PSJlZGl0b3ItcGFuZWwiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KICAgICA8 L2Rpdj4KIHslIGVuZGJsb2NrICV9CiAKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL3Rvb2xzL3NxbGVkaXRvci9jb21tYW5kLnB5IGIvd2ViL3BnYWRtaW4v dG9vbHMvc3FsZWRpdG9yL2NvbW1hbmQucHkKaW5kZXggZjVmMGViOC4uODhl YjU1OSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9y L2NvbW1hbmQucHkKKysrIGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9y L2NvbW1hbmQucHkKQEAgLTQ0MCw3ICs0NDAsNyBAQCBjbGFzcyBUYWJsZUNv bW1hbmQoR3JpZENvbW1hbmQpOgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRhdGFfdG9fYmVfc2F2ZWQ9cm93Wydk YXRhJ10sIHByaW1hcnlfa2V5cz1yb3dbJ2tleXMnXSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuc3BfbmFtZT1z ZWxmLm5zcF9uYW1lKQogICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAg ICAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi5zcWxfcGF0aCwgJ2NyZWF0ZS5zcWwnXSksIG9iamVjdF9uYW1lPXNl bGYub2JqZWN0X25hbWUsCisgICAgICAgICAgICAgICAgICAgIHNxbCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5zcWxfcGF0aCwgJ2luc2Vy dC5zcWwnXSksIG9iamVjdF9uYW1lPXNlbGYub2JqZWN0X25hbWUsCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX3Rv X2JlX3NhdmVkPXJvd1snZGF0YSddLCBuc3BfbmFtZT1zZWxmLm5zcF9uYW1l KQogCiAgICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBjb25uLmV4ZWN1 dGVfdm9pZChzcWwpCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9z cWxlZGl0b3Ivc3RhdGljL2Nzcy9zcWxlZGl0b3IuY3NzIGIvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL3N0YXRpYy9jc3Mvc3FsZWRpdG9yLmNzcwpp bmRleCA0ZTA4YmFmLi5lMjBiMDRjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi90b29scy9zcWxlZGl0b3Ivc3RhdGljL2Nzcy9zcWxlZGl0b3IuY3NzCisr KyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9zdGF0aWMvY3NzL3Nx bGVkaXRvci5jc3MKQEAgLTUzLDE2ICs1Myw2IEBACiAgIGZvbnQtc2l6ZTog MTNweDsKIH0KIAotI291dHB1dC1wYW5lbCAud2NEb2NrZXIgewotICB0b3A6 IDBweDsKLSAgYm90dG9tOiAwcHg7Ci0gIGhlaWdodDogYXV0bzsKLX0KLQot I291dHB1dC1wYW5lbCAud2NGcmFtZUNlbnRlciB7Ci0gIG92ZXJmbG93OiBo aWRkZW47Ci19Ci0KIC5zcWwtZWRpdG9yLWdyaWQtY29udGFpbmVyIHsKICAg aGVpZ2h0OiBjYWxjKDEwMCUgLSA0NXB4KTsKICAgb3ZlcmZsb3c6IGF1dG87 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVt cGxhdGVzL3NxbGVkaXRvci9qcy9zcWxlZGl0b3IuanMgYi93ZWIvcGdhZG1p bi90b29scy9zcWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9qcy9zcWxl ZGl0b3IuanMKaW5kZXggNDYzZWU0NS4uYzU1ZGY0NyAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxlZGl0 b3IvanMvc3FsZWRpdG9yLmpzCisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3Nx bGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRpdG9yL2pzL3NxbGVkaXRvci5qcwpA QCAtMTUwLDggKzE1MCw4IEBAIGRlZmluZSgKICAgICAgICAgImNsaWNrICNi dG4tcmVtb3ZlLWZpbHRlciI6ICJvbl9yZW1vdmVfZmlsdGVyIiwKICAgICAg ICAgImNsaWNrICNidG4tYXBwbHkiOiAib25fYXBwbHkiLAogICAgICAgICAi Y2xpY2sgI2J0bi1jYW5jZWwiOiAib25fY2FuY2VsIiwKLSAgICAgICAgImNs aWNrICNidG4tY29weSI6ICJvbl9jb3B5IiwKLSAgICAgICAgImNsaWNrICNi dG4tcGFzdGUiOiAib25fcGFzdGUiLAorICAgICAgICAiY2xpY2sgI2J0bi1j b3B5LXJvdyI6ICJvbl9jb3B5X3JvdyIsCisgICAgICAgICJjbGljayAjYnRu LXBhc3RlLXJvdyI6ICJvbl9wYXN0ZV9yb3ciLAogICAgICAgICAiY2xpY2sg I2J0bi1mbGFzaCI6ICJvbl9mbGFzaCIsCiAgICAgICAgICJjbGljayAjYnRu LWNhbmNlbC1xdWVyeSI6ICJvbl9jYW5jZWxfcXVlcnkiLAogICAgICAgICAi Y2xpY2sgI2J0bi1kb3dubG9hZCI6ICJvbl9kb3dubG9hZCIsCkBAIC0xNjIs MTI5ICsxNjIsMTAgQEAgZGVmaW5lKAogICAgICAgICAiY2hhbmdlIC5saW1p dCI6ICJvbl9saW1pdF9jaGFuZ2UiCiAgICAgICB9LAogCi0gICAgICAvKiBE ZWZpbmluZyB0aGUgdGVtcGxhdGUgdG8gY3JlYXRlIGJ1dHRvbnMgYW5kIGRp diB0byByZW5kZXIKLSAgICAgICAqIHRoZSBiYWNrZ3JpZCBpbnNpZGUgdGhp cyBkaXYuCi0gICAgICAgKi8KLSAgICAgIHRlbXBsYXRlOiBfLnRlbXBsYXRl KFsKLSAgICAgICAgJzxkaXYgaWQ9ImJ0bi10b29sYmFyIiBjbGFzcz0icGct cHJvcC1idG4tZ3JvdXAiIHJvbGU9InRvb2xiYXIiIGFyaWEtbGFiZWw9IiI+ JywKLSAgICAgICAgICAnPGRpdiBjbGFzcz0iYnRuLWdyb3VwIiByb2xlPSJn cm91cCIgYXJpYS1sYWJlbD0iIj4nLAotICAgICAgICAgICAgJzxidXR0b24g aWQ9ImJ0bi1zYXZlIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRuLWRl ZmF1bHQiIHRpdGxlPSJ7eyBfKCdTYXZlJykgfX0iIGRpc2FibGVkPicsCi0g ICAgICAgICAgICAgICc8aSBjbGFzcz0iZmEgZmEtZmxvcHB5LW8iIGFyaWEt aGlkZGVuPSJ0cnVlIj48L2k+JywKLSAgICAgICAgICAgICc8L2J1dHRvbj4n LAotICAgICAgICAgICc8L2Rpdj4nLAotICAgICAgICAgICc8ZGl2IGNsYXNz PSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPicsCi0g ICAgICAgICAgICAnPGJ1dHRvbiBpZD0iYnRuLWNvcHkiIHR5cGU9ImJ1dHRv biIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9Int7IF8oJ0NvcHkg Um93JykgfX0iIGRpc2FibGVkPicsCi0gICAgICAgICAgICAgICc8aSBjbGFz cz0iZmEgZmEtZmlsZXMtbyIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4nLAot ICAgICAgICAgICAgJzwvYnV0dG9uPicsCi0gICAgICAgICAgICAnPGJ1dHRv biBpZD0iYnRuLXBhc3RlIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4gYnRu LWRlZmF1bHQiIHRpdGxlPSJ7eyBfKCdQYXN0ZSBSb3cnKSB9fSIgZGlzYWJs ZWQ+JywKLSAgICAgICAgICAgICAgJzxpIGNsYXNzPSJmYSBmYS1jbGlwYm9h cmQiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+JywKLSAgICAgICAgICAgICc8 L2J1dHRvbj4nLAotICAgICAgICAgICc8L2Rpdj4nLAotICAgICAgICAgICc8 ZGl2IGNsYXNzPSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVs PSIiPicsCi0gICAgICAgICAgICAnPGJ1dHRvbiBpZD0iYnRuLWFkZC1yb3ci IHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9 Int7IF8oJ0FkZCBOZXcgUm93JykgfX0iIGRpc2FibGVkPicsCi0gICAgICAg ICAgICAgICc8aSBjbGFzcz0iZmEgZmEtcGx1cyIgYXJpYS1oaWRkZW49InRy dWUiPjwvaT4nLAotICAgICAgICAgICAgJzwvYnV0dG9uPicsCi0gICAgICAg ICAgJzwvZGl2PicsCi0gICAgICAgICAgJzxkaXYgY2xhc3M9ImJ0bi1ncm91 cCIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IiI+JywKLSAgICAgICAgICAg ICc8YnV0dG9uIGlkPSJidG4tZmlsdGVyIiB0eXBlPSJidXR0b24iIGNsYXNz PSJidG4gYnRuLWRlZmF1bHQiIHRpdGxlPSJ7eyBfKCdGaWx0ZXInKSB9fSIg ZGlzYWJsZWQ+JywKLSAgICAgICAgICAgICAgJzxpIGNsYXNzPSJmYSBmYS1m aWx0ZXIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+JywKLSAgICAgICAgICAg ICc8L2J1dHRvbj4nLAotICAgICAgICAgICAgJzxidXR0b24gaWQ9ImJ0bi1m aWx0ZXItZHJvcGRvd24iIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4t ZGVmYXVsdCBkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9nZ2xlPSJkcm9wZG93 biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJpYS1leHBhbmRlZD0iZmFsc2Ui IGRpc2FibGVkPicsCi0gICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0iY2Fy ZXQiPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNyLW9ubHkiPlRvZ2dsZSBEcm9w ZG93bjwvc3Bhbj4nLAotICAgICAgICAgICAgJzwvYnV0dG9uPicsCi0gICAg ICAgICAgICAnPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IGRyb3Bkb3duLW1l bnUtcmlnaHQiPicsCi0gICAgICAgICAgICAgICc8bGk+JywKLSAgICAgICAg ICAgICAgICAnPGEgaWQ9ImJ0bi1yZW1vdmUtZmlsdGVyIiBocmVmPSIjIj57 eyBfKCdSZW1vdmUnKSB9fTwvYT4nLAotICAgICAgICAgICAgICAgICc8YSBp ZD0iYnRuLWluY2x1ZGUtZmlsdGVyIiBocmVmPSIjIj57eyBfKCdCeSBzZWxl Y3Rpb24nKSB9fTwvYT4nLAotICAgICAgICAgICAgICAgICc8YSBpZD0iYnRu LWV4Y2x1ZGUtZmlsdGVyIiBocmVmPSIjIj57eyBfKCdFeGNsdWRlIHNlbGVj dGlvbicpIH19PC9hPicsCi0gICAgICAgICAgICAgICc8L2xpPicsCi0gICAg ICAgICAgICAnPC91bD4nLAotICAgICAgICAgICc8L2Rpdj4nLAotICAgICAg ICAgICc8ZGl2IGNsYXNzPSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlh LWxhYmVsPSIiPicsCi0gICAgICAgICAgICAnPHNlbGVjdCBjbGFzcz0ibGlt aXQiIHN0eWxlPSJoZWlnaHQ6IDMwcHg7IHdpZHRoOiA5MHB4OyIgZGlzYWJs ZWQ+JywKLSAgICAgICAgICAgICAgJzxvcHRpb24gdmFsdWU9Ii0xIj5ObyBs aW1pdDwvb3B0aW9uPicsCi0gICAgICAgICAgICAgICc8b3B0aW9uIHZhbHVl PSIxMDAwIj4xMDAwIHJvd3M8L29wdGlvbj4nLAotICAgICAgICAgICAgICAn PG9wdGlvbiB2YWx1ZT0iNTAwIj41MDAgcm93czwvb3B0aW9uPicsCi0gICAg ICAgICAgICAgICc8b3B0aW9uIHZhbHVlPSIxMDAiPjEwMCByb3dzPC9vcHRp b24+JywKLSAgICAgICAgICAgICc8L3NlbGVjdD4nLAotICAgICAgICAgICc8 L2Rpdj4nLAotICAgICAgICAgICc8ZGl2IGNsYXNzPSJidG4tZ3JvdXAiIHJv bGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPicsCi0gICAgICAgICAgICAnPGJ1 dHRvbiBpZD0iYnRuLWZsYXNoIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4g YnRuLWRlZmF1bHQiIHN0eWxlPSJ3aWR0aDogNDBweDsiIHRpdGxlPSJ7eyBf KCdFeGVjdXRlL1JlZnJlc2gnKSB9fSI+JywKLSAgICAgICAgICAgICAgJzxp IGNsYXNzPSJmYSBmYS1ib2x0IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PC9pPics Ci0gICAgICAgICAgICAnPC9idXR0b24+JywKLSAgICAgICAgICAgICc8YnV0 dG9uIGlkPSJidG4tcXVlcnktZHJvcGRvd24iIHR5cGU9ImJ1dHRvbiIgY2xh c3M9ImJ0biBidG4tZGVmYXVsdCBkcm9wZG93bi10b2dnbGUiIGRhdGEtdG9n Z2xlPSJkcm9wZG93biIgYXJpYS1oYXNwb3B1cD0idHJ1ZSIgYXJpYS1leHBh bmRlZD0iZmFsc2UiPicsCi0gICAgICAgICAgICAgICc8c3BhbiBjbGFzcz0i Y2FyZXQiPjwvc3Bhbj4gPHNwYW4gY2xhc3M9InNyLW9ubHkiPlRvZ2dsZSBE cm9wZG93bjwvc3Bhbj4nLAotICAgICAgICAgICAgJzwvYnV0dG9uPicsCi0g ICAgICAgICAgICAnPHVsIGNsYXNzPSJkcm9wZG93bi1tZW51IGRyb3Bkb3du LW1lbnUiPicsCi0gICAgICAgICAgICAgICc8bGk+JywKLSAgICAgICAgICAg ICAgICAnPGEgaWQ9ImJ0bi1hdXRvLWNvbW1pdCIgaHJlZj0iIyI+JywKLSAg ICAgICAgICAgICAgICAgICAgJzxpIGNsYXNzPSJhdXRvLWNvbW1pdCBmYSBm YS1jaGVjayIgYXJpYS1oaWRkZW49InRydWUiPjwvaT4nLAotICAgICAgICAg ICAgICAgICAgICAnPHNwYW4+IHt7IF8oJ0F1dG8tQ29tbWl0JykgfX0gPC9z cGFuPicsCi0gICAgICAgICAgICAgICAgJzwvYT4nLAotICAgICAgICAgICAg ICAgICc8YSBpZD0iYnRuLWF1dG8tcm9sbGJhY2siIGhyZWY9IiMiPicsCi0g ICAgICAgICAgICAgICAgICAgICc8aSBjbGFzcz0iYXV0by1yb2xsYmFjayBm YSBmYS1jaGVjayB2aXNpYmlsaXR5LWhpZGRlbiIgYXJpYS1oaWRkZW49InRy dWUiPjwvaT4nLAotICAgICAgICAgICAgICAgICAgICAnPHNwYW4+IHt7IF8o J0F1dG8tUm9sbGJhY2snKSB9fSA8L3NwYW4+JywKLSAgICAgICAgICAgICAg ICAnPC9hPicsCi0gICAgICAgICAgICAgICc8L2xpPicsCi0gICAgICAgICAg ICAnPC91bD4nLAotICAgICAgICAgICAgJzxidXR0b24gaWQ9ImJ0bi1jYW5j ZWwtcXVlcnkiIHR5cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVs dCIgdGl0bGU9Int7IF8oJ0NhbmNlbCBxdWVyeScpIH19IiBkaXNhYmxlZD4n LAotICAgICAgICAgICAgICAnPGkgY2xhc3M9ImZhIGZhLXN0b3AiIGFyaWEt aGlkZGVuPSJ0cnVlIj48L2k+JywKLSAgICAgICAgICAgICc8L2J1dHRvbj4n LAotICAgICAgICAgICc8L2Rpdj4nLAotICAgICAgICAgICc8ZGl2IGNsYXNz PSJidG4tZ3JvdXAiIHJvbGU9Imdyb3VwIiBhcmlhLWxhYmVsPSIiPicsCi0g ICAgICAgICAgICAnPGJ1dHRvbiBpZD0iYnRuLWVkaXQiIHR5cGU9ImJ1dHRv biIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9Int7IF8oJ0VkaXQn KSB9fSI+JywKLSAgICAgICAgICAgICAgJzxpIGNsYXNzPSJmYSBmYS1wZW5j aWwtc3F1YXJlLW8iIGFyaWEtaGlkZGVuPSJ0cnVlIj48L2k+JywKLSAgICAg ICAgICAgICc8L2J1dHRvbj4nLAotICAgICAgICAgICAgJzxidXR0b24gaWQ9 ImJ0bi1lZGl0LWRyb3Bkb3duIiB0eXBlPSJidXR0b24iIGNsYXNzPSJidG4g YnRuLWRlZmF1bHQgZHJvcGRvd24tdG9nZ2xlIiBkYXRhLXRvZ2dsZT0iZHJv cGRvd24iIGFyaWEtaGFzcG9wdXA9InRydWUiIGFyaWEtZXhwYW5kZWQ9ImZh bHNlIj4nLAotICAgICAgICAgICAgICAnPHNwYW4gY2xhc3M9ImNhcmV0Ij48 L3NwYW4+IDxzcGFuIGNsYXNzPSJzci1vbmx5Ij5Ub2dnbGUgRHJvcGRvd248 L3NwYW4+JywKLSAgICAgICAgICAgICc8L2J1dHRvbj4nLAotICAgICAgICAg ICAgJzx1bCBjbGFzcz0iZHJvcGRvd24tbWVudSBkcm9wZG93bi1tZW51Ij4n LAotICAgICAgICAgICAgICAnPGxpPicsCi0gICAgICAgICAgICAgICAgJzxh IGlkPSJidG4tY2xlYXIiIGhyZWY9IiMiPicsCi0gICAgICAgICAgICAgICAg ICAgICc8aSBjbGFzcz0iZmEgZmEtZXJhc2VyIiBhcmlhLWhpZGRlbj0idHJ1 ZSI+PC9pPicsCi0gICAgICAgICAgICAgICAgICAgICc8c3Bhbj4ge3sgXygn Q2xlYXIgcXVlcnkgd2luZG93JykgfX0gPC9zcGFuPicsCi0gICAgICAgICAg ICAgICAgJzwvYT4nLAotICAgICAgICAgICAgICAgICc8YSBpZD0iYnRuLWNs ZWFyLWhpc3RvcnkiIGhyZWY9IiMiPicsCi0gICAgICAgICAgICAgICAgICAg ICc8aSBjbGFzcz0iZmEgZmEtZXJhc2VyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+ PC9pPicsCi0gICAgICAgICAgICAgICAgICAgICc8c3Bhbj4ge3sgXygnQ2xl YXIgaGlzdG9yeScpIH19IDwvc3Bhbj4nLAotICAgICAgICAgICAgICAgICc8 L2E+JywKLSAgICAgICAgICAgICAgJzwvbGk+JywKLSAgICAgICAgICAgICc8 L3VsPicsCi0gICAgICAgICAgJzwvZGl2PicsCi0gICAgICAgICAgJzxkaXYg Y2xhc3M9ImJ0bi1ncm91cCIgcm9sZT0iZ3JvdXAiIGFyaWEtbGFiZWw9IiI+ JywKLSAgICAgICAgICAgICc8YnV0dG9uIGlkPSJidG4tZG93bmxvYWQiIHR5 cGU9ImJ1dHRvbiIgY2xhc3M9ImJ0biBidG4tZGVmYXVsdCIgdGl0bGU9Int7 IF8oJ0Rvd25sb2FkIGFzIENTVicpIH19Ij4nLAotICAgICAgICAgICAgICAn PGkgY2xhc3M9ImZhIGZhLWRvd25sb2FkIiBhcmlhLWhpZGRlbj0idHJ1ZSI+ PC9pPicsCi0gICAgICAgICAgICAnPC9idXR0b24+JywKLSAgICAgICAgICAn PC9kaXY+JywKLSAgICAgICAgJzwvZGl2PicsCi0gICAgICAgICc8ZGl2IGNs YXNzPSJlZGl0b3ItdGl0bGUiPjwvZGl2PicsCi0gICAgICAgICc8ZGl2IGlk PSJmaWx0ZXIiIGNsYXNzPSJmaWx0ZXItY29udGFpbmVyIGhpZGRlbiI+JywK LSAgICAgICAgICAnPGRpdiBjbGFzcz0iZmlsdGVyLXRpdGxlIj5GaWx0ZXI8 L2Rpdj4nLAotICAgICAgICAgICc8ZGl2IGNsYXNzPSJzcWwtdGV4dGFyZWEi PicsCi0gICAgICAgICAgICAnPHRleHRhcmVhIGlkPSJzcWxfZmlsdGVyIiBy b3c9IjUiPjwvdGV4dGFyZWE+JywKLSAgICAgICAgICAnPC9kaXY+JywKLSAg ICAgICAgICAnPGRpdiBjbGFzcz0iYnRuLWdyb3VwIj4nLAotICAgICAgICAg ICAgJzxidXR0b24gaWQ9ImJ0bi1jYW5jZWwiIHR5cGU9ImJ1dHRvbiIgY2xh c3M9ImJ0biBidG4tZGFuZ2VyIiB0aXRsZT0ie3sgXygnQ2FuY2VsJykgfX0i PicsCi0gICAgICAgICAgICAgICc8aSBjbGFzcz0iZmEgZmEtdGltZXMiIGFy aWEtaGlkZGVuPSJ0cnVlIj48L2k+IHt7IF8oJ0NhbmNlbCcpIH19JywKLSAg ICAgICAgICAgICc8L2J1dHRvbj4nLAotICAgICAgICAgICc8L2Rpdj4nLAot ICAgICAgICAgICc8ZGl2IGNsYXNzPSJidG4tZ3JvdXAiPicsCi0gICAgICAg ICAgICAnPGJ1dHRvbiBpZD0iYnRuLWFwcGx5IiB0eXBlPSJidXR0b24iIGNs YXNzPSJidG4gYnRuLXByaW1hcnkiIHRpdGxlPSJ7eyBfKCdBcHBseScpIH19 Ij4nLAotICAgICAgICAgICAgICAnPGkgY2xhc3M9ImZhIGZhLWNoZWNrIiBh cmlhLWhpZGRlbj0idHJ1ZSI+PC9pPiB7eyBfKCdBcHBseScpIH19JywKLSAg ICAgICAgICAgICc8L2J1dHRvbj4nLAotICAgICAgICAgICc8L2Rpdj4nLAot ICAgICAgICAnPC9kaXY+JywKLSAgICAgICAgJzxkaXYgaWQ9ImVkaXRvci1w YW5lbCI+PC9kaXY+JwotICAgICAgICBdLmpvaW4oIlxuIikpLAotCiAgICAg ICAvLyBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gcmVuZGVyIHRoZSB0ZW1w bGF0ZS4KICAgICAgIHJlbmRlcjogZnVuY3Rpb24oKSB7CiAgICAgICAgIHZh ciBzZWxmID0gdGhpczsKIAotICAgICAgICAvLyBSZW5kZXIgaGVhZGVyIG9u bHkuCi0gICAgICAgIHNlbGYuJGVsLmVtcHR5KCk7Ci0gICAgICAgIHNlbGYu JGVsLmh0bWwoc2VsZi50ZW1wbGF0ZSgpKTsKLQogICAgICAgICAkKCcuZWRp dG9yLXRpdGxlJykudGV4dChzZWxmLmVkaXRvcl90aXRsZSk7CiAKICAgICAg ICAgdmFyIGZpbHRlciA9IHNlbGYuJGVsLmZpbmQoJyNzcWxfZmlsdGVyJyk7 CkBAIC0zMDYsNDAgKzE4NywyMiBAQCBkZWZpbmUoCiAgICAgICAgICAgdGhl bWU6ICdwZ2FkbWluJwogICAgICAgICB9KTsKIAotICAgICAgICB2YXIgc3Vi X3BhbmVsID0gbmV3IHBnQWRtaW4uQnJvd3Nlci5QYW5lbCh7Ci0gICAgICAg ICAgbmFtZTogJ3N1Yl9wYW5lbCcsCisgICAgICAgIHZhciBzcWxfcGFuZWwg PSBuZXcgcGdBZG1pbi5Ccm93c2VyLlBhbmVsKHsKKyAgICAgICAgICBuYW1l OiAnc3FsX3BhbmVsJywKICAgICAgICAgICB0aXRsZTogZmFsc2UsCiAgICAg ICAgICAgd2lkdGg6ICcxMDAlJywKLSAgICAgICAgICBoZWlnaHQ6JzEwMCUn LAorICAgICAgICAgIGhlaWdodDonMjAlJywKICAgICAgICAgICBpc0Nsb3Nl YWJsZTogZmFsc2UsCiAgICAgICAgICAgaXNQcml2YXRlOiB0cnVlCiAgICAg ICAgIH0pOwogCi0gICAgICAgIHN1Yl9wYW5lbC5sb2FkKG1haW5fZG9ja2Vy KTsKLSAgICAgICAgcGFuZWwgPSBtYWluX2RvY2tlci5hZGRQYW5lbCgnc3Vi X3BhbmVsJywgd2NEb2NrZXIuRE9DSy5MRUZUKTsKLQotICAgICAgICAvLyBD cmVhdGUgYSBTcGxpdHRlciB0byBkaXZpZGUgc3FsIGNvZGUgYW5kIGRhdGEg b3V0cHV0Ci0gICAgICAgIHZhciBoU3BsaXR0ZXIgPSBuZXcgd2NTcGxpdHRl cigKLSAgICAgICAgICAiI2VkaXRvci1wYW5lbCIsIHBhbmVsLAotICAgICAg ICAgIHdjRG9ja2VyLk9SSUVOVEFUSU9OLlZFUlRJQ0FMCi0gICAgICAgICk7 Ci0gICAgICAgIGhTcGxpdHRlci5zY3JvbGxhYmxlKDAsIGZhbHNlLCBmYWxz ZSk7Ci0gICAgICAgIGhTcGxpdHRlci5zY3JvbGxhYmxlKDEsIHRydWUsIHRy dWUpOwotCi0gICAgICAgIC8vIEluaXRpYWxpemUgdGhpcyBzcGxpdHRlciB3 aXRoIGEgbGF5b3V0IGluIGVhY2ggcGFuZS4KLSAgICAgICAgaFNwbGl0dGVy LmluaXRMYXlvdXRzKHdjRG9ja2VyLkxBWU9VVC5TSU1QTEUsIHdjRG9ja2Vy LkxBWU9VVC5TSU1QTEUpOworICAgICAgICAvL3NxbF9wYW5lbC5sb2FkKG1h aW5fZG9ja2VyKTsKKyAgICAgICAgc3FsX3BhbmVsLmxvYWQobWFpbl9kb2Nr ZXIpOworICAgICAgICB2YXIgc3FsX3BhbmVsX29iaiA9IG1haW5fZG9ja2Vy LmFkZFBhbmVsKCdzcWxfcGFuZWwnLCB3Y0RvY2tlci5ET0NLLlRPUCk7CiAK LSAgICAgICAgLy8gQnkgZGVmYXVsdCwgdGhlIHNwbGl0dGVyIHNwbGl0cyBk b3duIHRoZSBtaWRkbGUsIHdlIHNwbGl0IHRoZSBtYWluIHBhbmVsIGJ5IDgw JS4KLSAgICAgICAgaFNwbGl0dGVyLnBvcygwLjI1KTsKLQotICAgICAgICB2 YXIgdGV4dF9jb250YWluZXIgPSAkKCc8dGV4dGFyZWEgaWQ9InNxbF9xdWVy eV90b29sIiByb3c9IjUiPjwvdGV4dGFyZWE+Jyk7Ci0KLSAgICAgICAgLy8g QWRkIHRleHRfY29udGFpbmVyIGF0IHRoZSB0b3AgaGFsZiBvZiB0aGUgc3Bs aXR0ZXIKLSAgICAgICAgaFNwbGl0dGVyLmxlZnQoKS5hZGRJdGVtKHRleHRf Y29udGFpbmVyKTsKLQotICAgICAgICAvLyBBZGQgZGF0YSBvdXRwdXQgcGFu ZWwgYXQgdGhlIGJvdHRvbSBoYWxmIG9mIHRoZSBzcGxpdHRlcgogICAgICAg ICB2YXIgb3V0cHV0X2NvbnRhaW5lciA9ICQoJzxkaXYgaWQ9Im91dHB1dC1w YW5lbCI+PC9kaXY+Jyk7Ci0gICAgICAgIGhTcGxpdHRlci5yaWdodCgpLmFk ZEl0ZW0ob3V0cHV0X2NvbnRhaW5lcik7CisgICAgICAgIHZhciB0ZXh0X2Nv bnRhaW5lciA9ICQoJzx0ZXh0YXJlYSBpZD0ic3FsX3F1ZXJ5X3Rvb2wiPjwv dGV4dGFyZWE+JykuYXBwZW5kKG91dHB1dF9jb250YWluZXIpOworICAgICAg ICBzcWxfcGFuZWxfb2JqLmxheW91dCgpLmFkZEl0ZW0odGV4dF9jb250YWlu ZXIpOwogCiAgICAgICAgIHNlbGYucXVlcnlfdG9vbF9vYmogPSBDb2RlTWly cm9yLmZyb21UZXh0QXJlYSh0ZXh0X2NvbnRhaW5lci5nZXQoMCksIHsKICAg ICAgICAgICAgIGxpbmVOdW1iZXJzOiB0cnVlLApAQCAtMzUwLDE1ICsyMTMs NiBAQCBkZWZpbmUoCiAgICAgICAgICAgICBtb2RlOiAidGV4dC94LXNxbCIK ICAgICAgICAgfSk7CiAKLSAgICAgICAgLy8gQ3JlYXRlIHdjRG9ja2VyIGZv ciB0YWIgc2V0LgotICAgICAgICB2YXIgZG9ja2VyID0gbmV3IHdjRG9ja2Vy KAotICAgICAgICAgICcjb3V0cHV0LXBhbmVsJywgewotICAgICAgICAgIGFs bG93Q29udGV4dE1lbnU6IGZhbHNlLAotICAgICAgICAgIGFsbG93Q29sbGFw c2U6IGZhbHNlLAotICAgICAgICAgIHRoZW1lUGF0aDogJ3t7IHVybF9mb3Io J3N0YXRpYycsIGZpbGVuYW1lPSdjc3Mvd2NEb2NrZXIvVGhlbWVzJykgfX0n LAotICAgICAgICAgIHRoZW1lOiAncGdhZG1pbicKLSAgICAgICAgfSk7Ci0K ICAgICAgICAgLy8gQ3JlYXRlIHBhbmVscyBmb3IgJ0RhdGEgT3V0cHV0Jywg J0V4cGxhaW4nLCAnTWVzc2FnZXMnIGFuZCAnSGlzdG9yeScKICAgICAgICAg dmFyIGRhdGFfb3V0cHV0ID0gbmV3IHBnQWRtaW4uQnJvd3Nlci5QYW5lbCh7 CiAgICAgICAgICAgbmFtZTogJ2RhdGFfb3V0cHV0JywKQEAgLTQwMSwxNiAr MjU1LDE2IEBAIGRlZmluZSgKICAgICAgICAgfSkKIAogICAgICAgICAvLyBM b2FkIGFsbCB0aGUgY3JlYXRlZCBwYW5lbHMKLSAgICAgICAgZGF0YV9vdXRw dXQubG9hZChkb2NrZXIpOwotICAgICAgICBleHBsYWluLmxvYWQoZG9ja2Vy KTsKLSAgICAgICAgbWVzc2FnZXMubG9hZChkb2NrZXIpOwotICAgICAgICBo aXN0b3J5LmxvYWQoZG9ja2VyKTsKKyAgICAgICAgZGF0YV9vdXRwdXQubG9h ZChtYWluX2RvY2tlcik7CisgICAgICAgIGV4cGxhaW4ubG9hZChtYWluX2Rv Y2tlcik7CisgICAgICAgIG1lc3NhZ2VzLmxvYWQobWFpbl9kb2NrZXIpOwor ICAgICAgICBoaXN0b3J5LmxvYWQobWFpbl9kb2NrZXIpOwogCiAgICAgICAg IC8vIEFkZCBhbGwgdGhlIHBhbmVscyB0byB0aGUgZG9ja2VyCi0gICAgICAg IHNlbGYuZGF0YV9vdXRwdXRfcGFuZWwgPSBkb2NrZXIuYWRkUGFuZWwoJ2Rh dGFfb3V0cHV0Jywgd2NEb2NrZXIuRE9DSy5MRUZUKTsKLSAgICAgICAgc2Vs Zi5leHBsYWluX3BhbmVsID0gZG9ja2VyLmFkZFBhbmVsKCdleHBsYWluJywg d2NEb2NrZXIuRE9DSy5TVEFDS0VELCBzZWxmLmRhdGFfb3V0cHV0X3BhbmVs KTsKLSAgICAgICAgc2VsZi5tZXNzYWdlc19wYW5lbCA9IGRvY2tlci5hZGRQ YW5lbCgnbWVzc2FnZXMnLCB3Y0RvY2tlci5ET0NLLlNUQUNLRUQsIHNlbGYu ZGF0YV9vdXRwdXRfcGFuZWwpOwotICAgICAgICBzZWxmLmhpc3RvcnlfcGFu ZWwgPSBkb2NrZXIuYWRkUGFuZWwoJ2hpc3RvcnknLCB3Y0RvY2tlci5ET0NL LlNUQUNLRUQsIHNlbGYuZGF0YV9vdXRwdXRfcGFuZWwpOworICAgICAgICBz ZWxmLmRhdGFfb3V0cHV0X3BhbmVsID0gbWFpbl9kb2NrZXIuYWRkUGFuZWwo J2RhdGFfb3V0cHV0Jywgd2NEb2NrZXIuRE9DSy5CT1RUT00sIHNxbF9wYW5l bF9vYmopOworICAgICAgICBzZWxmLmV4cGxhaW5fcGFuZWwgPSBtYWluX2Rv Y2tlci5hZGRQYW5lbCgnZXhwbGFpbicsIHdjRG9ja2VyLkRPQ0suU1RBQ0tF RCwgc2VsZi5kYXRhX291dHB1dF9wYW5lbCk7CisgICAgICAgIHNlbGYubWVz c2FnZXNfcGFuZWwgPSBtYWluX2RvY2tlci5hZGRQYW5lbCgnbWVzc2FnZXMn LCB3Y0RvY2tlci5ET0NLLlNUQUNLRUQsIHNlbGYuZGF0YV9vdXRwdXRfcGFu ZWwpOworICAgICAgICBzZWxmLmhpc3RvcnlfcGFuZWwgPSBtYWluX2RvY2tl ci5hZGRQYW5lbCgnaGlzdG9yeScsIHdjRG9ja2VyLkRPQ0suU1RBQ0tFRCwg c2VsZi5kYXRhX291dHB1dF9wYW5lbCk7CiAKICAgICAgICAgc2VsZi5yZW5k ZXJfaGlzdG9yeV9ncmlkKCk7CiAgICAgICB9LApAQCAtNjU5LDI0ICs1MTMs MjQgQEAgZGVmaW5lKAogICAgICAgfSwKIAogICAgICAgLy8gQ2FsbGJhY2sg ZnVuY3Rpb24gZm9yIGNvcHkgYnV0dG9uIGNsaWNrLgotICAgICAgb25fY29w eTogZnVuY3Rpb24oKSB7CisgICAgICBvbl9jb3B5X3JvdzogZnVuY3Rpb24o KSB7CiAgICAgICAgIHZhciBzZWxmID0gdGhpczsKIAogICAgICAgICAvLyBU cmlnZ2VyIHRoZSBjb3B5IHNpZ25hbCB0byB0aGUgU3FsRWRpdG9yQ29udHJv bGxlciBjbGFzcwogICAgICAgICBzZWxmLmhhbmRsZXIudHJpZ2dlcigKLSAg ICAgICAgICAgICdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246Y29weScsCisg ICAgICAgICAgICAncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOmNvcHlfcm93 JywKICAgICAgICAgICAgIHNlbGYsCiAgICAgICAgICAgICBzZWxmLmhhbmRs ZXIKICAgICAgICAgKTsKICAgICAgIH0sCiAKICAgICAgIC8vIENhbGxiYWNr IGZ1bmN0aW9uIGZvciBwYXN0ZSBidXR0b24gY2xpY2suCi0gICAgICBvbl9w YXN0ZTogZnVuY3Rpb24oKSB7CisgICAgICBvbl9wYXN0ZV9yb3c6IGZ1bmN0 aW9uKCkgewogICAgICAgICB2YXIgc2VsZiA9IHRoaXM7CiAKICAgICAgICAg Ly8gVHJpZ2dlciB0aGUgcGFzdGUgc2lnbmFsIHRvIHRoZSBTcWxFZGl0b3JD b250cm9sbGVyIGNsYXNzCiAgICAgICAgIHNlbGYuaGFuZGxlci50cmlnZ2Vy KAotICAgICAgICAgICAgJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpwYXN0 ZScsCisgICAgICAgICAgICAncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOnBh c3RlX3JvdycsCiAgICAgICAgICAgICBzZWxmLAogICAgICAgICAgICAgc2Vs Zi5oYW5kbGVyCiAgICAgICAgICk7CkBAIC04MjIsOCArNjc2LDggQEAgZGVm aW5lKAogICAgICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1 dHRvbjpleGNsdWRlX2ZpbHRlcicsIHNlbGYuX2V4Y2x1ZGVfZmlsdGVyLCBz ZWxmKTsKICAgICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpi dXR0b246cmVtb3ZlX2ZpbHRlcicsIHNlbGYuX3JlbW92ZV9maWx0ZXIsIHNl bGYpOwogICAgICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1 dHRvbjphcHBseV9maWx0ZXInLCBzZWxmLl9hcHBseV9maWx0ZXIsIHNlbGYp OwotICAgICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9yOmJ1dHRv bjpjb3B5Jywgc2VsZi5fY29weSwgc2VsZik7Ci0gICAgICAgICAgc2VsZi5v bigncGdhZG1pbi1zcWxlZGl0b3I6YnV0dG9uOnBhc3RlJywgc2VsZi5fcGFz dGUsIHNlbGYpOworICAgICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRp dG9yOmJ1dHRvbjpjb3B5X3JvdycsIHNlbGYuX2NvcHlfcm93LCBzZWxmKTsK KyAgICAgICAgICBzZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246 cGFzdGVfcm93Jywgc2VsZi5fcGFzdGVfcm93LCBzZWxmKTsKICAgICAgICAg ICBzZWxmLm9uKCdwZ2FkbWluLXNxbGVkaXRvcjpidXR0b246bGltaXQnLCBz ZWxmLl9zZXRfbGltaXQsIHNlbGYpOwogICAgICAgICAgIHNlbGYub24oJ3Bn YWRtaW4tc3FsZWRpdG9yOmJ1dHRvbjpmbGFzaCcsIHNlbGYuX3JlZnJlc2gs IHNlbGYpOwogICAgICAgICAgIHNlbGYub24oJ3BnYWRtaW4tc3FsZWRpdG9y OmJ1dHRvbjpjYW5jZWwtcXVlcnknLCBzZWxmLl9jYW5jZWxfcXVlcnksIHNl bGYpOwpAQCAtMTAyNCwxNSArODc4LDYgQEAgZGVmaW5lKAogICAgICAgICAg IGVsc2UKICAgICAgICAgICAgIHNlbGYuY2FuX2VkaXQgPSB0cnVlOwogCi0g ICAgICAgICAgLyogSWYgdXNlciBjYW4gZWRpdCB0aGUgZGF0YSB0aGVuIHdl IHNob3VsZCBlbmFibGVkCi0gICAgICAgICAgICogQ29weSBSb3csIFBhc3Rl IFJvdyBhbmQgJ0FkZCBOZXcgUm93JyBidXR0b25zLgotICAgICAgICAgICAq LwotICAgICAgICAgIGlmIChzZWxmLmNhbl9lZGl0KSB7Ci0gICAgICAgICAg ICAkKCIjYnRuLWFkZC1yb3ciKS5wcm9wKCdkaXNhYmxlZCcsIGZhbHNlKTsK LSAgICAgICAgICAgICQoIiNidG4tY29weSIpLnByb3AoJ2Rpc2FibGVkJywg ZmFsc2UpOwotICAgICAgICAgICAgJCgiI2J0bi1wYXN0ZSIpLnByb3AoJ2Rp c2FibGVkJywgZmFsc2UpOwotICAgICAgICAgIH0KLQogICAgICAgICAgIC8q IElmIHVzZXIgY2FuIGZpbHRlciB0aGUgZGF0YSB0aGVuIHdlIHNob3VsZCBl bmFibGVkCiAgICAgICAgICAgICogRmlsdGVyIGFuZCBMaW1pdCBidXR0b25z LgogICAgICAgICAgICAqLwpAQCAtMTA3Niw2ICs5MjEsNyBAQCBkZWZpbmUo CiAgICAgICAgICAgc2VsZi5jb2xsZWN0aW9uLm9uKCdiYWNrZ3JpZDplZGl0 aW5nJywgc2VsZi5vbl9jZWxsX2VkaXRpbmcsIHNlbGYpOwogICAgICAgICAg IHNlbGYuY29sbGVjdGlvbi5vbignYmFja2dyaWQ6cm93OnNlbGVjdGVkJywg c2VsZi5vbl9yb3dfc2VsZWN0ZWQsIHNlbGYpOwogICAgICAgICAgIHNlbGYu Y29sbGVjdGlvbi5vbignYmFja2dyaWQ6cm93OmRlc2VsZWN0ZWQnLCBzZWxm Lm9uX3Jvd19kZXNlbGVjdGVkLCBzZWxmKTsKKyAgICAgICAgICBzZWxmLmxp c3RlblRvKHNlbGYuY29sbGVjdGlvbiwgInJlc2V0Iiwgc2VsZi5jb2xsZWN0 aW9uX3Jlc2V0X2NhbGxiYWNrKTsKIAogICAgICAgICAgIC8vIFNob3cgbWVz c2FnZSBpbiBtZXNzYWdlIGFuZCBoaXN0b3J5IHRhYiBpbiBjYXNlIG9mIHF1 ZXJ5IHRvb2wKICAgICAgICAgICBzZWxmLnRvdGFsX3RpbWUgPSBzZWxmLmdl dF9xdWVyeV9ydW5fdGltZShzZWxmLnF1ZXJ5X3N0YXJ0X3RpbWUsIHNlbGYu cXVlcnlfZW5kX3RpbWUpOwpAQCAtMTA5Miw2ICs5MzgsMjkgQEAgZGVmaW5l KAogICAgICAgICAgIHNlbGYudHJpZ2dlcigncGdhZG1pbi1zcWxlZGl0b3I6 bG9hZGluZy1pY29uOmhpZGUnKTsKICAgICAgICAgfSwKIAorICAgICAgICBj b2xsZWN0aW9uX3Jlc2V0X2NhbGxiYWNrOiBmdW5jdGlvbigpIHsKKyAgICAg ICAgICB2YXIgc2VsZiA9IHRoaXMKKworICAgICAgICAgIC8qIElmIHVzZXIg Y2FuIGVkaXQgdGhlIGRhdGEgYW5kIGN1cnJlbnQgcGFnZSBpcyB0aGUKKyAg ICAgICAgICAgKiBsYXN0IHBhZ2Ugb2YgdGhlIHBhZ2luYXRvciB0aGVuIHdl IHNob3VsZCBlbmFibGVkCisgICAgICAgICAgICogQ29weSBSb3csIFBhc3Rl IFJvdyBhbmQgJ0FkZCBOZXcgUm93JyBidXR0b25zLgorICAgICAgICAgICAq LworICAgICAgICAgICBpZiAoc2VsZi5jYW5fZWRpdCAmJgorICAgICAgICAg ICAgICAgc2VsZi5jb2xsZWN0aW9uLnN0YXRlLmN1cnJlbnRQYWdlICE9IHVu ZGVmaW5lZCAmJgorICAgICAgICAgICAgICAgc2VsZi5jb2xsZWN0aW9uLnN0 YXRlLmxhc3RQYWdlICE9IHVuZGVmaW5lZCAmJgorICAgICAgICAgICAgICAg c2VsZi5jb2xsZWN0aW9uLnN0YXRlLmN1cnJlbnRQYWdlID09IHNlbGYuY29s bGVjdGlvbi5zdGF0ZS5sYXN0UGFnZSkKKyAgICAgICAgICAgeworICAgICAg ICAgICAgICQoIiNidG4tYWRkLXJvdyIpLnByb3AoJ2Rpc2FibGVkJywgZmFs c2UpOworICAgICAgICAgICAgICQoIiNidG4tY29weS1yb3ciKS5wcm9wKCdk aXNhYmxlZCcsIGZhbHNlKTsKKyAgICAgICAgICAgICAkKCIjYnRuLXBhc3Rl LXJvdyIpLnByb3AoJ2Rpc2FibGVkJywgZmFsc2UpOworICAgICAgICAgICB9 CisgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICQoIiNidG4tYWRk LXJvdyIpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7CisgICAgICAgICAgICAg JCgiI2J0bi1jb3B5LXJvdyIpLnByb3AoJ2Rpc2FibGVkJywgdHJ1ZSk7Cisg ICAgICAgICAgICAgJCgiI2J0bi1wYXN0ZS1yb3ciKS5wcm9wKCdkaXNhYmxl ZCcsIHRydWUpOworICAgICAgICAgICB9CisgICAgICAgIH0sCisKICAgICAg ICAgLy8gVGhpcyBmdW5jdGlvbiBjcmVhdGVzIHRoZSBjb2x1bW5zIGFzIHJl cXVpcmVkIGJ5IHRoZSBiYWNrZ3JpZAogICAgICAgICBfZmV0Y2hfY29sdW1u X21ldGFkYXRhOiBmdW5jdGlvbihkYXRhKSB7CiAgICAgICAgICAgdmFyIGNv bGluZm8gPSBkYXRhLmNvbGluZm8sCkBAIC0xNzI4LDcgKzE1OTcsNyBAQCBk ZWZpbmUoCiAgICAgICAgIH0sCiAKICAgICAgICAgLy8gVGhpcyBmdW5jdGlv biB3aWxsIGNvcHkgdGhlIHNlbGVjdGVkIHJvdy4KLSAgICAgICAgX2NvcHk6 IGZ1bmN0aW9uKCkgeworICAgICAgICBfY29weV9yb3c6IGZ1bmN0aW9uKCkg ewogICAgICAgICAgIHZhciBzZWxmID0gdGhpczsKIAogICAgICAgICAgIC8v IFNhdmUgdGhlIHNlbGVjdGVkIG1vZGVsIGFzIGNvcGllZCBtb2RlbCBmb3Ig ZnV0dXJlIHVzZQpAQCAtMTczNyw3ICsxNjA2LDcgQEAgZGVmaW5lKAogICAg ICAgICB9LAogCiAgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gd2lsbCBwYXN0 ZSB0aGUgc2VsZWN0ZWQgcm93LgotICAgICAgICBfcGFzdGU6IGZ1bmN0aW9u KCkgeworICAgICAgICBfcGFzdGVfcm93OiBmdW5jdGlvbigpIHsKICAgICAg ICAgICB2YXIgc2VsZiA9IHRoaXM7CiAgICAgICAgICAgICAgIG5ld19tb2Rl bCA9IG51bGw7CiAgICAgICAgICAgaWYgKCdjb3BpZWRfbW9kZWwnIGluIHNl bGYgJiYgc2VsZi5jb3BpZWRfbW9kZWwgIT0gbnVsbCkgewpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxl ZGl0b3Ivc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi90 b29scy9zcWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9zcWwvOS4xX3Bs dXMvY3JlYXRlLnNxbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg N2MxNzYxNi4uMDAwMDAwMAotLS0gYS93ZWIvcGdhZG1pbi90b29scy9zcWxl ZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9zcWwvOS4xX3BsdXMvY3JlYXRl LnNxbAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAoteyMgSW5zZXJ0 IHRoZSBuZXcgcm93IHdpdGggcHJpbWFyeSBrZXlzIChzcGVjaWZpZWQgaW4g cHJpbWFyeV9rZXlzKSAjfQotSU5TRVJUIElOVE8ge3sgY29ubnxxdElkZW50 KG5zcF9uYW1lLCBvYmplY3RfbmFtZSkgfX0gKAoteyUgZm9yIGNvbCBpbiBk YXRhX3RvX2JlX3NhdmVkICV9Ci17JSBpZiBub3QgbG9vcC5maXJzdCAlfSwg eyUgZW5kaWYgJX17eyBjb25ufHF0SWRlbnQoY29sKSB9fXslIGVuZGZvciAl fQotKSBWQUxVRVMgKAoteyUgZm9yIGNvbCBpbiBkYXRhX3RvX2JlX3NhdmVk ICV9Ci17JSBpZiBub3QgbG9vcC5maXJzdCAlfSwgeyUgZW5kaWYgJX17eyBk YXRhX3RvX2JlX3NhdmVkW2NvbF18cXRMaXRlcmFsIH19eyUgZW5kZm9yICV9 Ci0pOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRp dG9yL3NxbC85LjFfcGx1cy9pbnNlcnQuc3FsIGIvd2ViL3BnYWRtaW4vdG9v bHMvc3FsZWRpdG9yL3RlbXBsYXRlcy9zcWxlZGl0b3Ivc3FsLzkuMV9wbHVz L2luc2VydC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uN2MxNzYxNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL3Rv b2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRpdG9yL3NxbC85LjFfcGx1 cy9pbnNlcnQuc3FsCkBAIC0wLDAgKzEsOCBAQAoreyMgSW5zZXJ0IHRoZSBu ZXcgcm93IHdpdGggcHJpbWFyeSBrZXlzIChzcGVjaWZpZWQgaW4gcHJpbWFy eV9rZXlzKSAjfQorSU5TRVJUIElOVE8ge3sgY29ubnxxdElkZW50KG5zcF9u YW1lLCBvYmplY3RfbmFtZSkgfX0gKAoreyUgZm9yIGNvbCBpbiBkYXRhX3Rv X2JlX3NhdmVkICV9Cit7JSBpZiBub3QgbG9vcC5maXJzdCAlfSwgeyUgZW5k aWYgJX17eyBjb25ufHF0SWRlbnQoY29sKSB9fXslIGVuZGZvciAlfQorKSBW QUxVRVMgKAoreyUgZm9yIGNvbCBpbiBkYXRhX3RvX2JlX3NhdmVkICV9Cit7 JSBpZiBub3QgbG9vcC5maXJzdCAlfSwgeyUgZW5kaWYgJX17eyBkYXRhX3Rv X2JlX3NhdmVkW2NvbF18cXRMaXRlcmFsIH19eyUgZW5kZm9yICV9CispOwpc IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK --001a113e2c1635b96e0530fa85d8 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 --001a113e2c1635b96e0530fa85d8--