Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jM3GX-0005hu-TU for pgadmin-hackers@arkaria.postgresql.org; Wed, 08 Apr 2020 05:28:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jM3GW-0000tv-MV for pgadmin-hackers@arkaria.postgresql.org; Wed, 08 Apr 2020 05:28:44 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jM3GW-0000to-9j for pgadmin-hackers@lists.postgresql.org; Wed, 08 Apr 2020 05:28:44 +0000 Received: from mail-lj1-x234.google.com ([2a00:1450:4864:20::234]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1jM3GR-0005NL-Kd for pgadmin-hackers@postgresql.org; Wed, 08 Apr 2020 05:28:43 +0000 Received: by mail-lj1-x234.google.com with SMTP id p10so6263894ljn.1 for ; Tue, 07 Apr 2020 22:28:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=NILkb/e8IXUc2nAupPEAt5xzFLKahIo/EODiWv/cgAc=; b=pXGOixIf4zuG4OOVt+1gEOqDm/deBT//GqpeAV+E1VdObc4QD2Z0DLrGnFrqXZH0es YDyleapMfq8NXteyTd/9vhfVPm6DKfnyxcKqWnjLFcmIXHnhVMB3IpZaODpZjrm/4fc6 rYSpAOo5na7Q93p4/2vcNwCOOnWI3NGVbnBD57FqrUeYnj2neVaNnLUXpr8sbuZaZ0pG uVro27fGSP0UdKLldGT8TX5cyyHL9DTEpFa1pCSUPkI9+0xyihNHg+YRRG/zrs3L069S sUEPDNb7ZNcgo+Owks13K18m4EHUGiR1phEBKCFAUKQK6Ed/Mq/PQR+OeQmWI55npHO1 YzxQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=NILkb/e8IXUc2nAupPEAt5xzFLKahIo/EODiWv/cgAc=; b=VTMUGxRzJn34Fq44sOQKUsgOSGFUj1frD7DSdInATQcTWT7noFsNsFQIBH8frNDlWt I2IJdKsBvjgitsq8qrkvQiLSYsSAnmfJ9K9BxTc0ARYOSeUAZQ2AX/EQAzprrEzm9lmt VNZoKLvuEyI1kmSzSN5FZJlSTRXih51Clc3bRkQ023Wc9PGDhp6rJzJRgzH77a4VaPA0 //WaRYPA/wMqoUIIc044r8VeyV/yz8i8U3KuJZB/1RXbc9JHTy6HtK2cxaUcwYpoy9L+ 7wBnqkj/sgE2loE74O90YNGz3LDnUNNF/FuRdnFLo4T90nNt7rYi2B5A3NgP1yAecA3H xT4g== X-Gm-Message-State: AGi0PuY3OAhjiRo+WTYiVMknmyhqppW7HSjaSD2wPUS3psVpTw802N/W tRVkc9w6oknXwxZPbIyVKwgxIvifizg4oKNkjTIKGudE/Sopm5ljIUgjUzd+HVzVAaGQ71QXn1e GGKSH+96Cz1462+sFkFv74VPMg5IgpL2AjEeJ+i37EosiLuvAx3XxcMv+Sj9xAkGILGg9fdkNp1 lrtq2/Vmq0bsEPGC+2O+oVSPqFoAEkNFhRGW+fnsG8PaU+HseAgwc= X-Google-Smtp-Source: APiQypJQ2Qy6thGY0Wtp1yEJuHTFtH89GskKn1Q162mV/qCV4HZYquoUNILtW0mFoLHyiXuQTJRLzbgmbqbggSU7wNs= X-Received: by 2002:a2e:3203:: with SMTP id y3mr3546372ljy.54.1586323717638; Tue, 07 Apr 2020 22:28:37 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Khushboo Vashi Date: Wed, 8 Apr 2020 10:58:29 +0530 Message-ID: Subject: Re: [pgAdmin4][Patch]: RM 5053 - Getting an error while changing the columns in the existing view To: Akshay Joshi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="000000000000b100b705a2c0c51e" X-CLOUD-SEC-AV-Info: edb,google_mail,monitor X-CLOUD-SEC-AV-Sent: true X-Gm-Spam: 0 X-Gm-Phishy: 0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --000000000000b100b705a2c0c51e Content-Type: multipart/alternative; boundary="000000000000b100b605a2c0c51c" --000000000000b100b605a2c0c51c Content-Type: text/plain; charset="UTF-8" Hi Akshay, Please find the attached updated patch. Thanks, Khushboo On Tue, Apr 7, 2020 at 11:43 AM Akshay Joshi wrote: > Hi Khushboo > > The warning message is not showing up. Please fix and resend the patch. > > On Tue, Apr 7, 2020 at 10:00 AM Khushboo Vashi < > khushboo.vashi@enterprisedb.com> wrote: > >> Hi Akshay, >> >> Please find the attached updated patch. >> >> On Tue, Mar 24, 2020 at 2:47 PM Akshay Joshi < >> akshay.joshi@enterprisedb.com> wrote: >> >>> Hi Khushboo >>> >>> On Tue, Mar 24, 2020 at 1:47 PM Khushboo Vashi < >>> khushboo.vashi@enterprisedb.com> wrote: >>> >>>> Hi Akshay, >>>> >>>> On Tue, Jan 14, 2020 at 11:47 AM Akshay Joshi < >>>> akshay.joshi@enterprisedb.com> wrote: >>>> >>>>> Hi Khushboo >>>>> >>>>> Following are the review comments: >>>>> >>>>> - Fix the PEP8 issue. >>>>> - Drop query should be part of the jinja template for consistency. >>>>> Currently, it is added through the python file. >>>>> >>>>> The Delete query is already in the template file, I have just reused >>>> the delete call and merged the SQL queries in the python file. >>>> >>>>> >>>>> - Any changes in the view code should not warn the user "Changing >>>>> the columns in a view requires dropping...." and we should not drop the >>>>> view. For example, I have only change the WHERE clause or added 'ORDER BY'. >>>>> >>>>> I have tested but couldn't reproduce this issue. Can you please let >>>> me know the proper use case? >>>> >>> >>> Create a view with 'SELECT 1;' as code. Then change the code to >>> 'SELECT 1234;' and click on the Save button. >>> Warning popup is displayed "Changing the columns in a view....". >>> Click on the 'Yes' button and check the OID of the view. You will get the >>> same OID, it means view is not recreated. >>> >>> >> I can reproduce this issue with the given SQL but the problem is as per >> the PostgreSQL documentation, (Ref: >> https://www.postgresql.org/docs/12/sql-createview.html) >> >> "CREATE OR REPLACE VIEW is similar, but if a view of the same name >> already exists, it is replaced. The new query must generate the same >> columns that were generated by the existing view query (that is, the same >> column names in the same order and with the same data types), but it may >> add additional columns to the end of the list. The calculations giving rise >> to the output columns may be completely different." >> >> So, I put a check on the columns and if the column is changed, the >> message will popup. >> >> In case of the example given by you, the column name is not changed as if >> you don't give the column name it will be default and I think view would >> have the column names properly. >> >> >>> I have observed below error in the browser while changing the code: >>> view.js:241 Uncaught TypeError: Cannot read property >>> 'replace' of undefined >>> at child.onChange (view.js:241) >>> at HTMLDivElement.dispatch (jquery.js:5237) >>> at HTMLDivElement.elemData.handle (jquery.js:5044) >>> >>> Fixed. >> >> Thanks, >> Khushboo >> >>> >>>> Thanks, >>>> Khushboo >>>> >>>>> >>>>> >>>> >>>>> On Tue, Jan 14, 2020 at 10:27 AM Khushboo Vashi < >>>>> khushboo.vashi@enterprisedb.com> wrote: >>>>> >>>>>> Hi, >>>>>> >>>>>> Please find the attached patch for RM #5053 - Getting an error while >>>>>> changing the columns in the existing view. >>>>>> >>>>>> PostgreSQL doesn't allow to change the view columns. So, while >>>>>> performing this task the existing view should be dropped first and then >>>>>> recreate it and also user will get a warning first. >>>>>> >>>>>> Thanks, >>>>>> Khushboo >>>>>> >>>>> >>>>> >>>>> -- >>>>> *Thanks & Regards* >>>>> *Akshay Joshi* >>>>> >>>>> *Sr. Software Architect* >>>>> *EnterpriseDB Software India Private Limited* >>>>> *Mobile: +91 976-788-8246* >>>>> >>>> >>> >>> -- >>> *Thanks & Regards* >>> *Akshay Joshi* >>> >>> *Sr. Software Architect* >>> *EnterpriseDB Software India Private Limited* >>> *Mobile: +91 976-788-8246* >>> >> > > -- > *Thanks & Regards* > *Akshay Joshi* > > *Sr. Software Architect* > *EnterpriseDB Software India Private Limited* > *Mobile: +91 976-788-8246* > --000000000000b100b605a2c0c51c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi Akshay,

Please find the attached upd= ated patch.

Thanks,
Khushboo
=
On Tue= , Apr 7, 2020 at 11:43 AM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
Hi=C2=A0Khus= hboo

The warning message is not showing=C2=A0up. Please = fix and resend the patch.

On Tue, Apr 7, 2020 at 10:00 AM Khushboo Vas= hi <khushboo.vashi@enterprisedb.com> wrote:
Hi Akshay,

Please find the attached updated patch.

On Tue, Mar 24, 2020= at 2:47 PM Akshay Joshi <akshay.joshi@enterprisedb.com> wrote:
=
Hi=C2=A0Khushboo

On Tue, Mar 24, 2020 at 1:47 PM Khushboo Vashi <= ;khush= boo.vashi@enterprisedb.com> wrote:
Hi Akshay,
On Tu= e, Jan 14, 2020 at 11:47 AM Akshay Joshi <akshay.joshi@enterprisedb.com> = wrote:
Hi=C2=A0Khushboo

Following are the review comme= nts:
  • Fix the PEP8 issue.
  • Drop query should be par= t of the jinja template for consistency. Currently, it is added through the= python file.
The Delete query is al= ready in the template file, I have just reused the delete call and merged t= he SQL queries in the python file.=C2=A0
  • Any changes in the view = code should not warn the user "Changing the columns in a view requires= dropping...." and we should not drop the view. For example, I have on= ly change the WHERE clause or added 'ORDER BY'.=C2=A0
I have tested but=C2=A0 couldn't reproduce th= is issue.=C2=A0 Can you please let me know the proper use case?
=

=C2=A0 =C2=A0Create a view with '= ;SELECT 1;' as code. Then change the code to 'SELECT 1234;' and= click on the Save button.=C2=A0
=C2=A0 =C2=A0Warning popup is di= splayed "Changing the columns in a view....". Click on the 'Y= es' button and check the OID of the view. You will get the same OID, it= means view is not recreated.
=C2=A0 =C2=A0=C2=A0
I can reproduce this issue with the given SQL but the p= roblem is as per the PostgreSQL documentation, (Ref:=C2=A0https:/= /www.postgresql.org/docs/12/sql-createview.html)

"CREATE = OR REPLACE VIEW=C2=A0is similar, but if a view of the same name = already exists, it is replaced. The new query must generate the same column= s that were generated by the existing view query (that is, the same column = names in the same order and with the same data types), but it may add addit= ional columns to the end of the list. The calculations giving rise to the o= utput columns may be completely different."

So, I put a check on the columns and if the column is changed, the me= ssage will popup.

In case of the example given by = you, the column name is not changed as if you don't give the column nam= e it will be default and I think view would have the column names properly.=
=C2=A0
=C2=A0 =C2=A0 I have obs= erved below error in the browser while changing the code:=C2=A0
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 view.js:241 Uncaught TypeError: C= annot read property 'replace' of undefined
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 at child.onChange (view.js:241)
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 at HTMLDivElement.dispatch (jquery.js:5237)=
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 at HTMLDivElement.elemData.ha= ndle (jquery.js:5044)

Fixed.=C2=A0

Thanks,
K= hushboo


--
Thanks & Regards
Akshay Joshi
<= font color=3D"#3333FF">Sr. Software Architect=
<= font color=3D"#000000" face=3D"arial, sans-serif">EnterpriseDB Software = India Private Limited
Mobile: +91 976-788-8246=


--
Thanks & Regards
Akshay Joshi
<= font color=3D"#3333FF">Sr. Software Architect=
<= font color=3D"#000000" face=3D"arial, sans-serif">EnterpriseDB Software = India Private Limited
Mobile: +91 976-788-8246=
--000000000000b100b605a2c0c51c-- --000000000000b100b705a2c0c51e Content-Type: application/octet-stream; name="RM_5053_v2.patch" Content-Disposition: attachment; filename="RM_5053_v2.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k8qw6d180 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvX19pbml0X18ucHkK aW5kZXggZmIxYWQ3NmFjLi5lOWExZjM4ZmUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9f LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3ZpZXdzL19faW5pdF9fLnB5CkBAIC0xMCw2ICsxMCw3IEBACiAiIiJJbXBs ZW1lbnRzIFZpZXcgYW5kIE1hdGVyaWFsaXplZCBWaWV3IE5vZGUiIiIKIAogaW1wb3J0IGNvcHkK K2ltcG9ydCByZQogZnJvbSBmdW5jdG9vbHMgaW1wb3J0IHdyYXBzCiAKIGltcG9ydCBzaW1wbGVq c29uIGFzIGpzb24KQEAgLTQ5Niw3ICs0OTcsNyBAQCBjbGFzcyBWaWV3Tm9kZShQR0NoaWxkTm9k ZVZpZXcsIFZhY3V1bVNldHRpbmdzLCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZSk6CiAgICAgICAg ICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICApCiAgICAgICAgIHRyeToKLSAgICAgICAg ICAgIFNRTCwgbmFtZU9yRXJyb3IgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGlkLCBkYXRhKQor ICAgICAgICAgICAgU1FMLCBuYW1lT3JFcnJvciA9IHNlbGYuZ2V0U1FMKGdpZCwgc2lkLCBkaWQs IHNjaWQsIGRhdGEpCiAgICAgICAgICAgICBpZiBTUUwgaXMgTm9uZToKICAgICAgICAgICAgICAg ICByZXR1cm4gbmFtZU9yRXJyb3IKICAgICAgICAgICAgIFNRTCA9IFNRTC5zdHJpcCgnXG4nKS5z dHJpcCgnICcpCkBAIC01NDEsNyArNTQyLDcgQEAgY2xhc3MgVmlld05vZGUoUEdDaGlsZE5vZGVW aWV3LCBWYWN1dW1TZXR0aW5ncywgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUpOgogICAgICAgICAg ICAgcmVxdWVzdC5kYXRhLCBlbmNvZGluZz0ndXRmLTgnCiAgICAgICAgICkKICAgICAgICAgdHJ5 OgotICAgICAgICAgICAgU1FMLCBuYW1lID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRpZCwgZGF0 YSwgdmlkKQorICAgICAgICAgICAgU1FMLCBuYW1lID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgZGF0YSwgdmlkKQogICAgICAgICAgICAgaWYgU1FMIGlzIE5vbmU6CiAgICAgICAg ICAgICAgICAgcmV0dXJuIG5hbWUKICAgICAgICAgICAgIFNRTCA9IFNRTC5zdHJpcCgnXG4nKS5z dHJpcCgnICcpCkBAIC02NzgsNyArNjc5LDcgQEAgY2xhc3MgVmlld05vZGUoUEdDaGlsZE5vZGVW aWV3LCBWYWN1dW1TZXR0aW5ncywgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUpOgogICAgICAgICAg ICAgZXhjZXB0IFZhbHVlRXJyb3I6CiAgICAgICAgICAgICAgICAgZGF0YVtrXSA9IHYKIAotICAg ICAgICBzcWwsIG5hbWVPckVycm9yID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRpZCwgZGF0YSwg dmlkKQorICAgICAgICBzcWwsIG5hbWVPckVycm9yID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgZGF0YSwgdmlkKQogICAgICAgICBpZiBzcWwgaXMgTm9uZToKICAgICAgICAgICAg IHJldHVybiBuYW1lT3JFcnJvcgogCkBAIC02OTIsNyArNjkzLDcgQEAgY2xhc3MgVmlld05vZGUo UEdDaGlsZE5vZGVWaWV3LCBWYWN1dW1TZXR0aW5ncywgU2NoZW1hRGlmZk9iamVjdENvbXBhcmUp OgogICAgICAgICAgICAgc3RhdHVzPTIwMAogICAgICAgICApCiAKLSAgICBkZWYgZ2V0U1FMKHNl bGYsIGdpZCwgc2lkLCBkaWQsIGRhdGEsIHZpZD1Ob25lKToKKyAgICBkZWYgZ2V0U1FMKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRhdGEsIHZpZD1Ob25lKToKICAgICAgICAgIiIiCiAgICAg ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBnZW5lcmF0ZSBzcWwgZnJvbSBtb2RlbCBkYXRhCiAgICAg ICAgICIiIgpAQCAtNzE2LDcgKzcxNywyMiBAQCBjbGFzcyBWaWV3Tm9kZShQR0NoaWxkTm9kZVZp ZXcsIFZhY3V1bVNldHRpbmdzLCBTY2hlbWFEaWZmT2JqZWN0Q29tcGFyZSk6CiAgICAgICAgICAg ICBpZiAnc2NoZW1hJyBub3QgaW4gZGF0YToKICAgICAgICAgICAgICAgICBkYXRhWydzY2hlbWEn XSA9IHJlc1sncm93cyddWzBdWydzY2hlbWEnXQogCi0gICAgICAgICAgICBhY2xzID0gW10KKyAg ICAgICAgICAgIERFTF9TUUwgPSBOb25lCisgICAgICAgICAgICBpZiAnZGVmaW5pdGlvbicgaW4g ZGF0YToKKyAgICAgICAgICAgICAgICBuZXdfZGVmID0gcmUuc3ViKHIiXFciLCAiIiwgZGF0YVsn ZGVmaW5pdGlvbiddKS5zcGxpdCgnRlJPTScpCisgICAgICAgICAgICAgICAgb2xkX2RlZiA9IHJl LnN1YihyIlxXIiwgIiIsIHJlc1sncm93cyddWzBdWydkZWZpbml0aW9uJ10KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICkuc3BsaXQoJ0ZST00nKQorICAgICAgICAgICAgICAgIGlm ICdkZWZpbml0aW9uJyBpbiBkYXRhIGFuZCAoCisgICAgICAgICAgICAgICAgICAgICAgICBsZW4o b2xkX2RlZikgPiAxIG9yIGxlbihuZXdfZGVmKSA+IDEKKyAgICAgICAgICAgICAgICApIGFuZCgK KyAgICAgICAgICAgICAgICAgICAgICAgIG9sZF9kZWZbMF0gIT0gbmV3X2RlZlswXSBhbmQKKyAg ICAgICAgICAgICAgICAgICAgICAgIG9sZF9kZWZbMF0gbm90IGluIG5ld19kZWZbMF0KKyAgICAg ICAgICAgICAgICApOgorICAgICAgICAgICAgICAgICAgICBERUxfU1FMID0gc2VsZi5kZWxldGUo Z2lkPWdpZCwgc2lkPXNpZCwgZGlkPWRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNjaWQ9c2NpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZpZD12aWQsIG9ubHlfc3FsPVRydWUKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICkKKwogICAgICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAg IGFjbHMgPSByZW5kZXJfdGVtcGxhdGUoCiAgICAgICAgICAgICAgICAgICAgICIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsICdzcWwvYWxsb3dlZF9wcml2cy5qc29uJ10pCkBAIC03NDAsNiAr NzU2LDkgQEAgY2xhc3MgVmlld05vZGUoUEdDaGlsZE5vZGVWaWV3LCBWYWN1dW1TZXR0aW5ncywg U2NoZW1hRGlmZk9iamVjdENvbXBhcmUpOgogICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbigKICAgICAgICAgICAgICAgICAgICAgW3NlbGYudGVtcGxhdGVfcGF0 aCwgJ3NxbC91cGRhdGUuc3FsJ10pLCBkYXRhPWRhdGEsCiAgICAgICAgICAgICAgICAgICAgIG9f ZGF0YT1vbGRfZGF0YSwgY29ubj1zZWxmLmNvbm4pCisKKyAgICAgICAgICAgICAgICBpZiBERUxf U1FMOgorICAgICAgICAgICAgICAgICAgICBTUUwgPSBERUxfU1FMICsgU1FMCiAgICAgICAgICAg ICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAgICAgICAgY3VycmVudF9hcHAubG9n Z2VyLmV4Y2VwdGlvbihlKQogICAgICAgICAgICAgICAgIHJldHVybiBOb25lLCBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3RyKGUpKQpAQCAtMTQzOSw3ICsxNDU4LDE0IEBAIGNsYXNz IFZpZXdOb2RlKFBHQ2hpbGROb2RlVmlldywgVmFjdXVtU2V0dGluZ3MsIFNjaGVtYURpZmZPYmpl Y3RDb21wYXJlKToKICAgICAgICAgaWYgZGF0YToKICAgICAgICAgICAgIGlmIGRpZmZfc2NoZW1h OgogICAgICAgICAgICAgICAgIGRhdGFbJ3NjaGVtYSddID0gZGlmZl9zY2hlbWEKLSAgICAgICAg ICAgIHNxbCwgbmFtZU9yRXJyb3IgPSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGlkLCBkYXRhLCBv aWQpCisgICAgICAgICAgICBzcWwsIG5hbWVPckVycm9yID0gc2VsZi5nZXRTUUwoZ2lkLCBzaWQs IGRpZCwgc2NpZCwgZGF0YSwgb2lkKQorICAgICAgICAgICAgaWYgc3FsLmZpbmQoJ0RST1AgVklF VycpICE9IC0xOgorICAgICAgICAgICAgICAgIHNxbCA9IGdldHRleHQoIiIiCistLSBDaGFuZ2lu ZyB0aGUgY29sdW1ucyBpbiBhIHZpZXcgcmVxdWlyZXMgZHJvcHBpbmcgYW5kIHJlLWNyZWF0aW5n IHRoZSB2aWV3LgorLS0gVGhpcyBtYXkgZmFpbCBpZiBvdGhlciBvYmplY3RzIGFyZSBkZXBlbmRl bnQgdXBvbiB0aGlzIHZpZXcsCistLSBvciBtYXkgY2F1c2UgcHJvY2VkdXJhbCBmdW5jdGlvbnMg dG8gZmFpbCBpZiB0aGV5IGFyZSBub3QgbW9kaWZpZWQgdG8KKy0tIHRha2UgYWNjb3VudCBvZiB0 aGUgY2hhbmdlcy4KKyIiIikgKyBzcWwKICAgICAgICAgZWxzZToKICAgICAgICAgICAgIGlmIGRy b3Bfc3FsOgogICAgICAgICAgICAgICAgIHNxbCA9IHNlbGYuZGVsZXRlKGdpZD1naWQsIHNpZD1z aWQsIGRpZD1kaWQsCkBAIC0xNTQ3LDggKzE1NzMsOCBAQCBjbGFzcyBNVmlld05vZGUoVmlld05v ZGUsIFZhY3V1bVNldHRpbmdzKToKICAgICAgICAgICAgIGRhdGFbJ3ZhY3V1bV9kYXRhJ11bJ3Jl c2V0J10gPSBbXQogCiAgICAgICAgICAgICAjIHRhYmxlIHZhY3V1bTogc2VwYXJhdGUgbGlzdCBv ZiBjaGFuZ2VkIGFuZCByZXNldCBkYXRhIGZvcgotICAgICAgICAgICAgaWYgKCd2YWN1dW1fdGFi bGUnIGluIGRhdGEpOgotICAgICAgICAgICAgICAgIGlmICgnY2hhbmdlZCcgaW4gZGF0YVsndmFj dXVtX3RhYmxlJ10pOgorICAgICAgICAgICAgaWYgJ3ZhY3V1bV90YWJsZScgaW4gZGF0YToKKyAg ICAgICAgICAgICAgICBpZiAnY2hhbmdlZCcgaW4gZGF0YVsndmFjdXVtX3RhYmxlJ106CiAgICAg ICAgICAgICAgICAgICAgIGZvciBpdGVtIGluIGRhdGFbJ3ZhY3V1bV90YWJsZSddWydjaGFuZ2Vk J106CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAndmFsdWUnIGluIGl0ZW0ua2V5cygpOgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIGl0ZW1bJ3ZhbHVlJ10gaXMgTm9uZToKQEAg LTE1ODEsOCArMTYwNyw4IEBAIGNsYXNzIE1WaWV3Tm9kZShWaWV3Tm9kZSwgVmFjdXVtU2V0dGlu Z3MpOgogICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzogZGF0YVsnYXV0b3ZhY3V1bV9lbmFi bGVkJ119KQogCiAgICAgICAgICAgICAjIHRvYXN0IGF1dG92YWN1dW06IHNlcGFyYXRlIGxpc3Qg b2YgY2hhbmdlZCBhbmQgcmVzZXQgZGF0YQotICAgICAgICAgICAgaWYgKCd2YWN1dW1fdG9hc3Qn IGluIGRhdGEpOgotICAgICAgICAgICAgICAgIGlmICgnY2hhbmdlZCcgaW4gZGF0YVsndmFjdXVt X3RvYXN0J10pOgorICAgICAgICAgICAgaWYgJ3ZhY3V1bV90b2FzdCcgaW4gZGF0YToKKyAgICAg ICAgICAgICAgICBpZiAnY2hhbmdlZCcgaW4gZGF0YVsndmFjdXVtX3RvYXN0J106CiAgICAgICAg ICAgICAgICAgICAgIGZvciBpdGVtIGluIGRhdGFbJ3ZhY3V1bV90b2FzdCddWydjaGFuZ2VkJ106 CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAndmFsdWUnIGluIGl0ZW0ua2V5cygpOgogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRvYXN0X2tleSA9ICd0b2FzdF8nICsgaXRlbVsnbmFt ZSddCkBAIC0xNjcxLDE0ICsxNjk3LDE0IEBAIGNsYXNzIE1WaWV3Tm9kZShWaWV3Tm9kZSwgVmFj dXVtU2V0dGluZ3MpOgogICAgICAgICAgICAgICAgIGlmICd2YWx1ZScgaW4gaXRlbS5rZXlzKCkg YW5kIGl0ZW1bJ3ZhbHVlJ10gaXMgbm90IE5vbmVdCiAKICAgICAgICAgICAgICMgYWRkIHRhYmxl X2VuYWJsZWQgJiB0b2FzdF9lbmFibGVkIHNldHRpbmdzCi0gICAgICAgICAgICBpZiAoJ2F1dG92 YWN1dW1fY3VzdG9tJyBpbiBkYXRhIGFuZCBkYXRhWydhdXRvdmFjdXVtX2N1c3RvbSddKToKKyAg ICAgICAgICAgIGlmICdhdXRvdmFjdXVtX2N1c3RvbScgaW4gZGF0YSBhbmQgZGF0YVsnYXV0b3Zh Y3V1bV9jdXN0b20nXToKICAgICAgICAgICAgICAgICB2YWN1dW1fdGFibGUuYXBwZW5kKAogICAg ICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAnbmFtZSc6ICdhdXRv dmFjdXVtX2VuYWJsZWQnLAogICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzogc3RyKGRh dGFbJ2F1dG92YWN1dW1fZW5hYmxlZCddKQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg ICAgICAgICAgKQotICAgICAgICAgICAgaWYgKCd0b2FzdF9hdXRvdmFjdXVtJyBpbiBkYXRhIGFu ZCBkYXRhWyd0b2FzdF9hdXRvdmFjdXVtJ10pOgorICAgICAgICAgICAgaWYgJ3RvYXN0X2F1dG92 YWN1dW0nIGluIGRhdGEgYW5kIGRhdGFbJ3RvYXN0X2F1dG92YWN1dW0nXToKICAgICAgICAgICAg ICAgICB2YWN1dW1fdGFibGUuYXBwZW5kKAogICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAg ICAgICAgICAgICAgICAgICAnbmFtZSc6ICd0b2FzdC5hdXRvdmFjdXVtX2VuYWJsZWQnLApkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdmlld3Mvc3RhdGljL2pzL3ZpZXcuanMgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy92aWV3cy9zdGF0aWMvanMv dmlldy5qcwppbmRleCA3MmVhNTljMTMuLmVmOGFjNzRjYiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mv c3RhdGljL2pzL3ZpZXcuanMKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3Mvc3RhdGljL2pzL3ZpZXcuanMKQEAgLTE1 NCw4ICsxNTQsMzMgQEAgZGVmaW5lKCdwZ2FkbWluLm5vZGUudmlldycsIFsKICAgICAgICAgICBp ZDogJ2RlZmluaXRpb24nLCBsYWJlbDogZ2V0dGV4dCgnQ29kZScpLCBjZWxsOiAnc3RyaW5nJywK ICAgICAgICAgICB0eXBlOiAndGV4dCcsIG1vZGU6IFsnY3JlYXRlJywgJ2VkaXQnXSwgZ3JvdXA6 IGdldHRleHQoJ0NvZGUnKSwKICAgICAgICAgICB0YWJQYW5lbENvZGVDbGFzczogJ3NxbC1jb2Rl LWNvbnRyb2wnLAotICAgICAgICAgIGNvbnRyb2w6IEJhY2tmb3JtLlNxbENvZGVDb250cm9sLAog ICAgICAgICAgIGRpc2FibGVkOiAnbm90SW5TY2hlbWEnLAorICAgICAgICAgIGNvbnRyb2w6IEJh Y2tmb3JtLlNxbENvZGVDb250cm9sLmV4dGVuZCh7CisgICAgICAgICAgICBvbkNoYW5nZTogZnVu Y3Rpb24oKSB7CisgICAgICAgICAgICAgIEJhY2tmb3JtLlNxbENvZGVDb250cm9sLnByb3RvdHlw ZS5vbkNoYW5nZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworICAgICAgICAgICAgICBpZih0aGlz Lm1vZGVsICYmIHRoaXMubW9kZWwuY2hhbmdlZCkgeworICAgICAgICAgICAgICAgIGlmKHRoaXMu bW9kZWwub3JpZ1Nlc3NBdHRycyAmJiAodGhpcy5tb2RlbC5jaGFuZ2VkLmRlZmluaXRpb24gIT0g dGhpcy5tb2RlbC5vcmlnU2Vzc0F0dHJzLmRlZmluaXRpb24pKSB7CisgICAgICAgICAgICAgICAg ICBsZXQgb2xkX2RlZiA9IHRoaXMubW9kZWwub3JpZ1Nlc3NBdHRycy5kZWZpbml0aW9uLnJlcGxh Y2UoL1xzL2dpLCAnJykuc3BsaXQoJ0ZST00nKSwKKyAgICAgICAgICAgICAgICAgICAgbmV3X2Rl ZiA9IFtdOworCisgICAgICAgICAgICAgICAgICBpZih0aGlzLm1vZGVsLmNoYW5nZWQuZGVmaW5p dGlvbiAhPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAgICAgICAgICAgIG5ld19kZWYgPSB0aGlz Lm1vZGVsLmNoYW5nZWQuZGVmaW5pdGlvbi5yZXBsYWNlKC9ccy9naSwgJycpLnNwbGl0KCdGUk9N Jyk7CisgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgICBpZiAoKG9sZF9kZWYu bGVuZ3RoID4gMSB8fCBuZXdfZGVmLmxlbmd0aCA+IDEpICYmIG9sZF9kZWZbMF0gIT0gbmV3X2Rl ZlswXSAmJiAhbmV3X2RlZlswXS5pbmNsdWRlcyhvbGRfZGVmWzBdKSkgeworICAgICAgICAgICAg ICAgICAgICB0aGlzLm1vZGVsLndhcm5fdGV4dCA9IGdldHRleHQoJ0NoYW5naW5nIHRoZSBjb2x1 bW5zIGluIGEgdmlldyByZXF1aXJlcyBkcm9wcGluZyBhbmQgcmUtY3JlYXRpbmcgdGhlIHZpZXcu IFRoaXMgbWF5IGZhaWwgaWYgb3RoZXIgb2JqZWN0cyBhcmUgZGVwZW5kZW50IHVwb24gdGhpcyB2 aWV3LCBvciBtYXkgY2F1c2UgcHJvY2VkdXJhbCBmdW5jdGlvbnMgdG8gZmFpbCBpZiB0aGV5IGFy ZSBub3QgbW9kaWZpZWQgdG8gdGFrZSBhY2NvdW50IG9mIHRoZSBjaGFuZ2VzLiBEbyB5b3Ugd2lz aCB0byBjb250aW51ZT8nKTsKKyAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg ICAgICAgICAgIHRoaXMubW9kZWwud2Fybl90ZXh0ID0gdW5kZWZpbmVkOworICAgICAgICAgICAg ICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBlbHNlIHsKKyAgICAg ICAgICAgICAgICAgIHRoaXMubW9kZWwud2Fybl90ZXh0ID0gdW5kZWZpbmVkOworICAgICAgICAg ICAgICAgIH0KKyAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAg ICAgICAgICB0aGlzLm1vZGVsLndhcm5fdGV4dCA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAg fQorICAgICAgICAgICAgfSwKKyAgICAgICAgICB9KSwKICAgICAgICAgfSwgcGdCcm93c2VyLlNl Y3VyaXR5R3JvdXBTY2hlbWEsIHsKICAgICAgICAgICAvLyBBZGQgUHJpdmlsZWdlIENvbnRyb2wK ICAgICAgICAgICBpZDogJ2RhdGFjbCcsIGxhYmVsOiBnZXR0ZXh0KCdQcml2aWxlZ2VzJyksIHR5 cGU6ICdjb2xsZWN0aW9uJywK --000000000000b100b705a2c0c51e--