Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1etEAO-0004si-40 for pgadmin-hackers@arkaria.postgresql.org; Tue, 06 Mar 2018 15:06:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1etEAM-00074h-Qg for pgadmin-hackers@arkaria.postgresql.org; Tue, 06 Mar 2018 15:06:10 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1etEAM-00074X-Da for pgadmin-hackers@lists.postgresql.org; Tue, 06 Mar 2018 15:06:10 +0000 Received: from mail-it0-x229.google.com ([2607:f8b0:4001:c0b::229]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1etEAD-0001ai-37 for pgadmin-hackers@postgresql.org; Tue, 06 Mar 2018 15:06:08 +0000 Received: by mail-it0-x229.google.com with SMTP id n7so14084588ita.5 for ; Tue, 06 Mar 2018 07:06:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pivotal-io.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=3zfLFrZO0x+KvlwDDWl5qfM+BzZXsxFuB+E6GXlRAKo=; b=I4rZmPqQamJcAJ7ej5DPhWr2TbmGl0N+WCaNjoNOqyOLk2NrvUV3F/pCY/B4fIKPI9 gMpltCbpS5hQM620Z7iuH76coLbrBin78dm4SYrpXqGpiF6rd7kvDUfvQbAqGamBwGVU BGAOH4/aJH3Tx2bC7xLfqIvqjoKX7UIJi0PwRU6svCHNu1rw6qkh5yJtdZoFeFwPyDfc YKYIW0bNb8b5y7J1XN4YcvRJ+J9rdqZSxGDXX52XDF0ewdNquil5Ik8NpisTxST8BXsw OKnnKjbWIOuonKKAYek7MJ0CnPaOxTgsUXY+fa9lnK89OcM3reBADrSsZgTS3q5NScMj Wr2A== 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=3zfLFrZO0x+KvlwDDWl5qfM+BzZXsxFuB+E6GXlRAKo=; b=kdNCYXfeILl9SUlMTYszRfZzegGdayWh0kcO9s5HzrrJkagyhA1tVTcxbZGEa5wRSp smqK3olCh0CsoNVqsr+qUO/skiFRz3oyT12urUgVSnUQwO+SuUwxKaSqLP7c+KGf8Bhx 3cQzK7JX8Fha6ctGsXCUqnW1js3NAPERLVFr6ayg5WxxsZDPKSixeEIvTfL5NBU1H3pW ANnLMsNPBLnrxaQeEGxlIsUNandYoS9VydnqSMbkwpfOUmE4X1X2ndvwitkxTsmeaO6x lDLuQ/a99ZSIfdAoal1haxNiVc6iW54DJ8ec6F88VlAgx2eCWu61tbn83xaQiaOYPVbK 8YUA== X-Gm-Message-State: AElRT7EPYCtADBpouvhkOMId5X+HCaufVrwpujiicAZvhmD4aldDJuwd W/kV5ABf9SL3eNrV9mpxEKltN4fOITI4d9Tr+VuDFQ== X-Google-Smtp-Source: AG47ELvfzQ0zhStQmGIwhScwTk5Ndr7iA+QLAMF8BA/es8avmC49TQBf6FzKT1grU5kuEgZGVbK2zLItUgpekxdtxwo= X-Received: by 10.36.203.67 with SMTP id u64mr17462818itg.133.1520348759924; Tue, 06 Mar 2018 07:05:59 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Joao De Almeida Pereira Date: Tue, 06 Mar 2018 15:05:49 +0000 Message-ID: Subject: Re: [pgAdmin4][Patch]: RM #3135 - [Web based] Syntax error displayed when user try to insert data on table where primray key is in captial letters and table contains OIDS To: Khushboo Vashi Cc: pgadmin-hackers Content-Type: multipart/mixed; boundary="94eb2c0af848c55bdd0566bfc773" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --94eb2c0af848c55bdd0566bfc773 Content-Type: multipart/alternative; boundary="94eb2c0af848c55bd90566bfc771" --94eb2c0af848c55bd90566bfc771 Content-Type: text/plain; charset="UTF-8" Hello Khushboo, All tests pass on CI, and the code looks good. The only issue that I found was the line: os.path.dirname(os.path.realpath(__file__)) + "/../templates" that will not work on windows. So I updated your patch with the change and it should be ready to merge. Thanks Joao On Tue, Mar 6, 2018 at 7:33 AM Khushboo Vashi < khushboo.vashi@enterprisedb.com> wrote: > Hi Joao, > > Thanks for reviewing. > > On Thu, Mar 1, 2018 at 8:06 PM, Joao De Almeida Pereira < > jdealmeidapereira@pivotal.io> wrote: > >> Hello Kushboo, >> >> Can we add some Unit test to ensure this does not happen again? >> >> Please find the attached patch with the unit tests. > >> Thanks >> Joao >> >> Thanks, > Khushboo > >> On Thu, Mar 1, 2018 at 2:28 AM Khushboo Vashi < >> khushboo.vashi@enterprisedb.com> wrote: >> >>> Hi, >>> >>> Please find the attached patch to fix RM # 3135 - [Web based] Syntax >>> error displayed when user try to insert data on table where primray key is >>> in captial letters and table contains OIDS >>> >>> Thanks, >>> Khushboo >>> >> --94eb2c0af848c55bd90566bfc771 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello Khushboo,

All tests pass on CI, a= nd the code looks good. The only issue that I found was the line:
=C2=A0os.path.dirname(os.path.realpath(__file__)) + "/../templates&qu= ot;

that will not work on windows.=C2=A0
=
So I updated your patch with the change and it should be ready to merg= e.


Thanks
Joao

<= div class=3D"gmail_quote">
On Tue, Mar 6, 2018 at 7:33 AM K= hushboo Vashi <khushb= oo.vashi@enterprisedb.com> wrote:
Hi Joao,

Thanks for reviewing.

On Thu, Mar 1, 2018 at 8:06 PM, Joao De Almeida Pereira <= jdealmeidapereira@pivotal.io> wrote:
Hello Kushboo,

Can we add som= e Unit test to ensure this does not happen again?

Please find the attached patch with the un= it tests.=C2=A0
<= /div>
Thanks
Joao

Thanks,
Khushboo=C2=A0
= On Thu, Mar 1, 2018 at 2:28 AM Khushboo Vashi <khushboo.vashi@enterprisedb.com= > wrote:
Hi= ,

Please find the attached patch to fix RM # 3135 - [Web= based] Syntax error displayed when user try to insert data on table where = primray key is in captial letters and table contains OIDS

Thanks,
Khushboo
--94eb2c0af848c55bd90566bfc771-- --94eb2c0af848c55bdd0566bfc773 Content-Type: text/x-patch; charset="US-ASCII"; name="RM_3135_ver2.diff" Content-Disposition: attachment; filename="RM_3135_ver2.diff" Content-Transfer-Encoding: base64 Content-ID: <161fbd8d308eae873e92> X-Attachment-Id: 161fbd8d308eae873e92 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZW1wbGF0ZXMvc3FsZWRp dG9yL3NxbC9kZWZhdWx0L2luc2VydC5zcWwgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv dGVtcGxhdGVzL3NxbGVkaXRvci9zcWwvZGVmYXVsdC9pbnNlcnQuc3FsCmluZGV4IGE0ZWQ4NzI5 Li43ZTNmOGEwNyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3RlbXBs YXRlcy9zcWxlZGl0b3Ivc3FsL2RlZmF1bHQvaW5zZXJ0LnNxbAorKysgYi93ZWIvcGdhZG1pbi90 b29scy9zcWxlZGl0b3IvdGVtcGxhdGVzL3NxbGVkaXRvci9zcWwvZGVmYXVsdC9pbnNlcnQuc3Fs CkBAIC02LDUgKzYsNSBAQCBJTlNFUlQgSU5UTyB7eyBjb25ufHF0SWRlbnQobnNwX25hbWUsIG9i amVjdF9uYW1lKSB9fSAoCiB7JSBmb3IgY29sIGluIGRhdGFfdG9fYmVfc2F2ZWQgJX0KIHslIGlm IG5vdCBsb29wLmZpcnN0ICV9LCB7JSBlbmRpZiAlfSUoe3sgY29sIH19KXM6Ont7IGRhdGFfdHlw ZVtjb2xdIH19eyUgZW5kZm9yICV9CiApCi17JSBpZiBwa19uYW1lcyAlfSByZXR1cm5pbmcge3tw a19uYW1lc319eyUgZW5kaWYgJX0KK3slIGlmIHBrX25hbWVzIGFuZCBub3QgaGFzX29pZHMgJX0g cmV0dXJuaW5nIHt7cGtfbmFtZXN9fXslIGVuZGlmICV9CiB7JSBpZiBoYXNfb2lkcyAlfSByZXR1 cm5pbmcgb2lkeyUgZW5kaWYgJX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxl ZGl0b3IvdGVzdHMvdGVzdF92aWV3X2RhdGFfdGVtcGxhdGVzLnB5IGIvd2ViL3BnYWRtaW4vdG9v bHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3Rfdmlld19kYXRhX3RlbXBsYXRlcy5weQpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMC4uNWQwMmFmMmIKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF92aWV3X2RhdGFfdGVtcGxhdGVz LnB5CkBAIC0wLDAgKzEsMjE3IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBwZ0FkbWluIDQg LSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAoQykgMjAxMyAtIDIwMTgsIFRoZSBw Z0FkbWluIERldmVsb3BtZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRl ciB0aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCitpbXBvcnQg b3MKK2ltcG9ydCByZQorCitmcm9tIGZsYXNrIGltcG9ydCBGbGFzaywgcmVuZGVyX3RlbXBsYXRl Citmcm9tIGppbmphMiBpbXBvcnQgRmlsZVN5c3RlbUxvYWRlcgorCitmcm9tIHBnYWRtaW4gaW1w b3J0IFZlcnNpb25lZFRlbXBsYXRlTG9hZGVyCitmcm9tIHBnYWRtaW4udXRpbHMucm91dGUgaW1w b3J0IEJhc2VUZXN0R2VuZXJhdG9yCitmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBn ZXRfZHJpdmVyCitmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK3RyeToKKyAg ICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdAorZXhjZXB0IEltcG9ydEVycm9y OgorICAgIGZyb20gb3JkZXJlZGRpY3QgaW1wb3J0IE9yZGVyZWREaWN0CisKKworY2xhc3MgVGVz dFZpZXdEYXRhVGVtcGxhdGVzKEJhc2VUZXN0R2VuZXJhdG9yKToKKyAgICAiIiIKKyAgICBUaGlz IGNsYXNzIHZhbGlkYXRlcyB0aGUgdGVtcGxhdGUgcXVlcnkgZm9yCisgICAgaW5zZXJ0aW5nIGFu ZCBzZWxlY3RpbmcgdGFibGUgZGF0YS4KKyAgICAiIiIKKyAgICBkYXRhX3RvX2JlX3NhdmVkID0g T3JkZXJlZERpY3QoKQorICAgIGRhdGFfdG9fYmVfc2F2ZWRbJ2lkJ10gPSAnMScKKyAgICBkYXRh X3RvX2JlX3NhdmVkWyd0ZXh0J10gPSAnanVzdCB0ZXN0JworICAgIHNjZW5hcmlvcyA9IFsKKyAg ICAgICAgKAorICAgICAgICAgICAgJ1doZW4gaW5zZXJ0aW5nIGFuZCBzZWxlY3RpbmcgdGFibGUg ZGF0YSB3aXRoIG9ubHkgUEsnLAorICAgICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICBp bnNlcnRfdGVtcGxhdGVfcGF0aD1vcy5wYXRoLmpvaW4oJ3NxbGVkaXRvcicsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzcWwnLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdCcsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdpbnNlcnQuc3Fs JyksCisgICAgICAgICAgICAgICAgaW5zZXJ0X3BhcmFtZXRlcnM9ZGljdCgKKyAgICAgICAgICAg ICAgICAgICAgZGF0YV90b19iZV9zYXZlZD1kYXRhX3RvX2JlX3NhdmVkLAorICAgICAgICAgICAg ICAgICAgICBwcmltYXJ5X2tleXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgb2JqZWN0X25h bWU9J3Rlc3RfdGFibGUnLAorICAgICAgICAgICAgICAgICAgICBuc3BfbmFtZT0ndGVzdF9zY2hl bWEnLAorICAgICAgICAgICAgICAgICAgICBkYXRhX3R5cGU9eyd0ZXh0JzogJ3RleHQnLCAnaWQn OiAnaW50ZWdlcid9LAorICAgICAgICAgICAgICAgICAgICBwa19uYW1lcz0naWQnLAorICAgICAg ICAgICAgICAgICAgICBoYXNfb2lkcz1GYWxzZQorICAgICAgICAgICAgICAgICksCisgICAgICAg ICAgICAgICAgaW5zZXJ0X2V4cGVjdGVkX3JldHVybl92YWx1ZT0nSU5TRVJUIElOVE8nCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIHRlc3Rfc2NoZW1hLnRl c3RfdGFibGUnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAn IChpZCwgdGV4dCkgVkFMVUVTJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJyAoJShpZClzOjppbnRlZ2VyLCAnCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnJSh0ZXh0KXM6OnRleHQpJworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJyByZXR1cm5pbmcgaWQ7JywKKyAgICAgICAgICAg ICAgICBzZWxlY3RfdGVtcGxhdGVfcGF0aD1vcy5wYXRoLmpvaW4oJ3NxbGVkaXRvcicsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzcWwnLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdCcs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZWxl Y3Quc3FsJyksCisgICAgICAgICAgICAgICAgc2VsZWN0X3BhcmFtZXRlcnM9ZGljdCgKKyAgICAg ICAgICAgICAgICAgICAgb2JqZWN0X25hbWU9J3Rlc3RfdGFibGUnLAorICAgICAgICAgICAgICAg ICAgICBuc3BfbmFtZT0ndGVzdF9zY2hlbWEnLAorICAgICAgICAgICAgICAgICAgICBwcmltYXJ5 X2tleXM9T3JkZXJlZERpY3QoWygnaWQnLCAnaW50NCcpXSksCisgICAgICAgICAgICAgICAgICAg IGhhc19vaWRzPUZhbHNlCisgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICBzZWxl Y3RfZXhwZWN0ZWRfcmV0dXJuX3ZhbHVlPSdTRUxFQ1QgKiBGUk9NICcKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICd0ZXN0X3NjaGVtYS50ZXN0X3RhYmxlJwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ1dIRVJFIGlkID0g JShpZClzOycKKyAgICAgICAgICAgICkpLAorICAgICAgICAoCisgICAgICAgICAgICAnV2hlbiBp bnNlcnRpbmcgYW5kIHNlbGVjdGluZyB0YWJsZSBkYXRhIHdpdGggbXVsdGlwbGUgUEsnLAorICAg ICAgICAgICAgZGljdCgKKyAgICAgICAgICAgICAgICBpbnNlcnRfdGVtcGxhdGVfcGF0aD1vcy5w YXRoLmpvaW4oJ3NxbGVkaXRvcicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICdzcWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnZGVmYXVsdCcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdpbnNlcnQuc3FsJyksCisgICAgICAgICAgICAgICAgaW5z ZXJ0X3BhcmFtZXRlcnM9ZGljdCgKKyAgICAgICAgICAgICAgICAgICAgZGF0YV90b19iZV9zYXZl ZD1kYXRhX3RvX2JlX3NhdmVkLAorICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2tleXM9Tm9u ZSwKKyAgICAgICAgICAgICAgICAgICAgb2JqZWN0X25hbWU9J3Rlc3RfdGFibGUnLAorICAgICAg ICAgICAgICAgICAgICBuc3BfbmFtZT0ndGVzdF9zY2hlbWEnLAorICAgICAgICAgICAgICAgICAg ICBkYXRhX3R5cGU9eyd0ZXh0JzogJ3RleHQnLCAnaWQnOiAnaW50ZWdlcid9LAorICAgICAgICAg ICAgICAgICAgICBwa19uYW1lcz0naWQsIHRleHQnLAorICAgICAgICAgICAgICAgICAgICBoYXNf b2lkcz1GYWxzZQorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgaW5zZXJ0X2V4 cGVjdGVkX3JldHVybl92YWx1ZT0nSU5TRVJUIElOVE8nCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnIHRlc3Rfc2NoZW1hLnRlc3RfdGFibGUnCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIChpZCwgdGV4dCknCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIFZBTFVFUyAoJShpZClz OjppbnRlZ2VyLCcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICcgJSh0ZXh0KXM6OnRleHQpJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJyByZXR1cm5pbmcgaWQsIHRleHQ7JywKKyAgICAgICAgICAgICAgICBzZWxlY3Rf dGVtcGxhdGVfcGF0aD1vcy5wYXRoLmpvaW4oJ3NxbGVkaXRvcicsCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzcWwnLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVmYXVsdCcsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdzZWxlY3Quc3FsJyksCisg ICAgICAgICAgICAgICAgc2VsZWN0X3BhcmFtZXRlcnM9ZGljdCgKKyAgICAgICAgICAgICAgICAg ICAgb2JqZWN0X25hbWU9J3Rlc3RfdGFibGUnLAorICAgICAgICAgICAgICAgICAgICBuc3BfbmFt ZT0ndGVzdF9zY2hlbWEnLAorICAgICAgICAgICAgICAgICAgICBwcmltYXJ5X2tleXM9T3JkZXJl ZERpY3QoWygnaWQnLCAnaW50NCcpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgndGV4dCcsICd0ZXh0JyldKSwKKyAgICAgICAgICAgICAgICAgICAgaGFz X29pZHM9RmFsc2UKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIHNlbGVjdF9l eHBlY3RlZF9yZXR1cm5fdmFsdWU9J1NFTEVDVCAqIEZST00nCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAnIHRlc3Rfc2NoZW1hLnRlc3RfdGFibGUnCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnV0hFUkUgaWQgPSAlKGlk KXMgQU5EJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyB0 ZXh0ID0gJSh0ZXh0KXM7JworICAgICAgICAgICAgKSksCisgICAgICAgICgKKyAgICAgICAgICAg ICdXaGVuIGluc2VydGluZyBhbmQgc2VsZWN0aW5nIHRhYmxlIGRhdGEgd2l0aCBQSyBhbmQgT0lE JywKKyAgICAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgICAgaW5zZXJ0X3RlbXBsYXRlX3Bh dGg9b3MucGF0aC5qb2luKCdzcWxlZGl0b3InLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnc3FsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgJ2RlZmF1bHQnLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW5zZXJ0LnNxbCcpLAorICAgICAgICAgICAg ICAgIGluc2VydF9wYXJhbWV0ZXJzPWRpY3QoCisgICAgICAgICAgICAgICAgICAgIGRhdGFfdG9f YmVfc2F2ZWQ9ZGF0YV90b19iZV9zYXZlZCwKKyAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9r ZXlzPU5vbmUsCisgICAgICAgICAgICAgICAgICAgIG9iamVjdF9uYW1lPSd0ZXN0X3RhYmxlJywK KyAgICAgICAgICAgICAgICAgICAgbnNwX25hbWU9J3Rlc3Rfc2NoZW1hJywKKyAgICAgICAgICAg ICAgICAgICAgZGF0YV90eXBlPXsndGV4dCc6ICd0ZXh0JywgJ2lkJzogJ2ludGVnZXInfSwKKyAg ICAgICAgICAgICAgICAgICAgcGtfbmFtZXM9J2lkJywKKyAgICAgICAgICAgICAgICAgICAgaGFz X29pZHM9VHJ1ZQorICAgICAgICAgICAgICAgICksCisgICAgICAgICAgICAgICAgaW5zZXJ0X2V4 cGVjdGVkX3JldHVybl92YWx1ZT0nSU5TRVJUIElOVE8nCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnIHRlc3Rfc2NoZW1hLnRlc3RfdGFibGUnCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnIChpZCwgdGV4dCkgVkFMVUVT JworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAoJShpZClz OjppbnRlZ2VyLCAnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnJSh0ZXh0KXM6OnRleHQpICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdyZXR1cm5pbmcgb2lkOycsCisgICAgICAgICAgICAgICAgc2VsZWN0X3RlbXBs YXRlX3BhdGg9b3MucGF0aC5qb2luKCdzcWxlZGl0b3InLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3FsJywKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2RlZmF1bHQnLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc2VsZWN0LnNxbCcpLAorICAgICAg ICAgICAgICAgIHNlbGVjdF9wYXJhbWV0ZXJzPWRpY3QoCisgICAgICAgICAgICAgICAgICAgIG9i amVjdF9uYW1lPSd0ZXN0X3RhYmxlJywKKyAgICAgICAgICAgICAgICAgICAgbnNwX25hbWU9J3Rl c3Rfc2NoZW1hJywKKyAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9rZXlzPU9yZGVyZWREaWN0 KFsoJ2lkJywgJ2ludDQnKV0pLAorICAgICAgICAgICAgICAgICAgICBoYXNfb2lkcz1UcnVlCisg ICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICBzZWxlY3RfZXhwZWN0ZWRfcmV0dXJu X3ZhbHVlPSdTRUxFQ1Qgb2lkLCAqICcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdGUk9NIHRlc3Rfc2NoZW1hLnRlc3RfdGFibGUnCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnV0hFUkUgb2lkID0gJShvaWQpczsnCisg ICAgICAgICAgICApKSwKKyAgICAgICAgKAorICAgICAgICAgICAgJ1doZW4gaW5zZXJ0aW5nIGFu ZCBzZWxlY3RpbmcgdGFibGUgZGF0YSB3aXRoIG9ubHkgT0lEJywKKyAgICAgICAgICAgIGRpY3Qo CisgICAgICAgICAgICAgICAgaW5zZXJ0X3RlbXBsYXRlX3BhdGg9b3MucGF0aC5qb2luKCdzcWxl ZGl0b3InLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnc3FsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2RlZmF1bHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnaW5zZXJ0LnNxbCcpLAorICAgICAgICAgICAgICAgIGluc2VydF9wYXJhbWV0ZXJz PWRpY3QoCisgICAgICAgICAgICAgICAgICAgIGRhdGFfdG9fYmVfc2F2ZWQ9ZGF0YV90b19iZV9z YXZlZCwKKyAgICAgICAgICAgICAgICAgICAgcHJpbWFyeV9rZXlzPU5vbmUsCisgICAgICAgICAg ICAgICAgICAgIG9iamVjdF9uYW1lPSd0ZXN0X3RhYmxlJywKKyAgICAgICAgICAgICAgICAgICAg bnNwX25hbWU9J3Rlc3Rfc2NoZW1hJywKKyAgICAgICAgICAgICAgICAgICAgZGF0YV90eXBlPXsn dGV4dCc6ICd0ZXh0JywgJ2lkJzogJ2ludGVnZXInfSwKKyAgICAgICAgICAgICAgICAgICAgcGtf bmFtZXM9Tm9uZSwKKyAgICAgICAgICAgICAgICAgICAgaGFzX29pZHM9VHJ1ZQorICAgICAgICAg ICAgICAgICksCisgICAgICAgICAgICAgICAgaW5zZXJ0X2V4cGVjdGVkX3JldHVybl92YWx1ZT0n SU5TRVJUIElOVE8nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnIHRlc3Rfc2NoZW1hLnRlc3RfdGFibGUnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnIChpZCwgdGV4dCkgVkFMVUVTJworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJyAoJShpZClzOjppbnRlZ2VyLCcKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgJSh0ZXh0KXM6OnRleHQpJwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyByZXR1cm5pbmcg b2lkOycsCisgICAgICAgICAgICAgICAgc2VsZWN0X3RlbXBsYXRlX3BhdGg9b3MucGF0aC5qb2lu KCdzcWxlZGl0b3InLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnc3FsJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2RlZmF1bHQnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAnc2VsZWN0LnNxbCcpLAorICAgICAgICAgICAgICAgIHNlbGVjdF9wYXJh bWV0ZXJzPWRpY3QoCisgICAgICAgICAgICAgICAgICAgIG9iamVjdF9uYW1lPSd0ZXN0X3RhYmxl JywKKyAgICAgICAgICAgICAgICAgICAgbnNwX25hbWU9J3Rlc3Rfc2NoZW1hJywKKyAgICAgICAg ICAgICAgICAgICAgcHJpbWFyeV9rZXlzPU5vbmUsCisgICAgICAgICAgICAgICAgICAgIGhhc19v aWRzPVRydWUKKyAgICAgICAgICAgICAgICApLAorICAgICAgICAgICAgICAgIHNlbGVjdF9leHBl Y3RlZF9yZXR1cm5fdmFsdWU9J1NFTEVDVCBvaWQsICogRlJPTScKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICcgdGVzdF9zY2hlbWEudGVzdF90YWJsZScKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdXSEVSRSBvaWQgPSAl KG9pZClzOycKKyAgICAgICAgICAgICkKKyAgICAgICAgKQorICAgIF0KKworICAgIGRlZiBzZXRV cChzZWxmKToKKyAgICAgICAgc2VsZi5sb2FkZXIgPSBWZXJzaW9uZWRUZW1wbGF0ZUxvYWRlcihG YWtlQXBwKCkpCisKKyAgICBkZWYgcnVuVGVzdChzZWxmKToKKyAgICAgICAgd2l0aCBGYWtlQXBw KCkuYXBwX2NvbnRleHQoKToKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlbmRlcl90ZW1wbGF0ZShz ZWxmLmluc2VydF90ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICoqc2VsZi5pbnNlcnRfcGFyYW1ldGVycykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwoCisgICAgICAgICAgICAgICAgcmUuc3ViKCcgKycsICcgJywgc3RyKHJlc3VsdCkucmVw bGFjZSgiXG4iLCAiIikpLAorICAgICAgICAgICAgICAgIHJlLnN1YignICsnLCAnICcsCisgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuaW5zZXJ0X2V4cGVjdGVkX3JldHVybl92YWx1ZS5yZXBs YWNlKCJcbiIsICIiKSkpCisKKyAgICAgICAgICAgIHJlc3VsdCA9IHJlbmRlcl90ZW1wbGF0ZShz ZWxmLnNlbGVjdF90ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICoqc2VsZi5zZWxlY3RfcGFyYW1ldGVycykKKyAgICAgICAgICAgIHNlbGYuYXNzZXJ0 RXF1YWwoCisgICAgICAgICAgICAgICAgcmUuc3ViKCcgKycsICcgJywgc3RyKHJlc3VsdCkucmVw bGFjZSgiXG4iLCAiIikpLAorICAgICAgICAgICAgICAgIHJlLnN1YignICsnLCAnICcsCisgICAg ICAgICAgICAgICAgICAgICAgIHNlbGYuc2VsZWN0X2V4cGVjdGVkX3JldHVybl92YWx1ZS5yZXBs YWNlKCJcbiIsICIiKSkpCisKKworY2xhc3MgRmFrZUFwcChGbGFzayk6CisgICAgZGVmIF9faW5p dF9fKHNlbGYpOgorICAgICAgICBzdXBlcihGYWtlQXBwLCBzZWxmKS5fX2luaXRfXygiIikKKyAg ICAgICAgZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUiwgc2VsZikKKyAgICAg ICAgc2VsZi5qaW5qYV9lbnYuZmlsdGVyc1sncXRMaXRlcmFsJ10gPSBkcml2ZXIucXRMaXRlcmFs CisgICAgICAgIHNlbGYuamluamFfZW52LmZpbHRlcnNbJ3F0SWRlbnQnXSA9IGRyaXZlci5xdElk ZW50CisgICAgICAgIHNlbGYuamluamFfZW52LmZpbHRlcnNbJ3F0VHlwZUlkZW50J10gPSBkcml2 ZXIucXRUeXBlSWRlbnQKKyAgICAgICAgc2VsZi5qaW5qYV9sb2FkZXIgPSBGaWxlU3lzdGVtTG9h ZGVyKAorICAgICAgICAgICAgb3MucGF0aC5qb2luKAorICAgICAgICAgICAgICAgIG9zLnBhdGgu ZGlybmFtZShvcy5wYXRoLnJlYWxwYXRoKF9fZmlsZV9fKSksCisgICAgICAgICAgICAgICAgb3Mu cGFyZGlyLAorICAgICAgICAgICAgICAgICd0ZW1wbGF0ZXMnCisgICAgICAgICAgICApCisgICAg ICAgICkK --94eb2c0af848c55bdd0566bfc773--