Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aK0kc-0005w8-9S for pgadmin-hackers@arkaria.postgresql.org; Fri, 15 Jan 2016 09:32:58 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aK0kb-00034H-An for pgadmin-hackers@arkaria.postgresql.org; Fri, 15 Jan 2016 09:32:57 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aK0kZ-000345-Vi for pgadmin-hackers@postgresql.org; Fri, 15 Jan 2016 09:32:56 +0000 Received: from mail-oi0-x22d.google.com ([2607:f8b0:4003:c06::22d]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aK0kW-0002zQ-ML for pgadmin-hackers@postgresql.org; Fri, 15 Jan 2016 09:32:54 +0000 Received: by mail-oi0-x22d.google.com with SMTP id o124so123136494oia.3 for ; Fri, 15 Jan 2016 01:32:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to:content-type; bh=pzDeA2u1YslEkwY3PyLyiqb2rYrRNtIA3JdOSTj3iZo=; b=mm0S0/15RD44ortJhHB9LDy0dYaQRSwrgFKqzKfhtxCRtf46eWtWQo5++wLJgK669g auFXsn4AJxr7LwHAGrgy8/DkfcnCbIAZw+Ki5hrhzKxQAHC2a7i6BVGDstzSKc5DwAvc hhGiKfAOK+1FEdeYHdNduS+VJydiXp70OZU6sHu/+X08MvrvlOYT1IdkpQ+pJwOcPb4w cwItyB195GnYRE/1n4vbrCTqg7bxNAJjIsEcE41MkZNn2LPCZzQPVfacENF6mGEpf1eh Eogz0Ewnt4C35p5JXCjd3dPOmwvpgiIPt9JnCUYqYH+GgqNEgp5QHuBNOqwDMz6TJ/lQ xsNw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=pzDeA2u1YslEkwY3PyLyiqb2rYrRNtIA3JdOSTj3iZo=; b=Lcc3Nw5mFwU05RibdZr8TSE5EPg3A9fJx56/OdbOdCPsf7Z/yW7PHQStLBxp6z/qq7 MNxakT3AZNjWn2tMRjjuCtm0GbXSWuW+wBvWHtBHRbUVm4cpYjUIAqe+6wlloMwUkjnZ M74N7/scH+A5EnPdTdhBXV4NMYXai4lNjdXIZCR/J0bRyq/P4S3REuz52OffVX7RQKiX LU42Muk7TfZGgAyr1JOtIgyh28YKXm9GnPn3W+QQDWGAkSY2U5xQCegJO4RTi8j3R0hI Jw/PCUTO3UnXbLc2lz8U+mYdgcHGwAccs9mTLCywizpAqa4D7TJXYJIqpt4eR92ymaCp /46Q== X-Gm-Message-State: ALoCoQlN9cX352VHhZNhR0DXWy4ffoASyluwmIaP+BqdgcyivJO0EFID6ltEJ6uqcIZdYYhNw3bY3o2n/tFkP7tN1u/7COl5mUOO1QTyqRHFqRjyBOVupf8= MIME-Version: 1.0 X-Received: by 10.202.75.205 with SMTP id y196mr7209069oia.130.1452850371164; Fri, 15 Jan 2016 01:32:51 -0800 (PST) Received: by 10.202.73.71 with HTTP; Fri, 15 Jan 2016 01:32:51 -0800 (PST) Date: Fri, 15 Jan 2016 15:02:51 +0530 Message-ID: Subject: Privilege control with select2cell for user role section From: Harshal Dhumal To: pgadmin-hackers@postgresql.org Content-Type: multipart/mixed; boundary=001a11c165e84950ba05295c16f2 X-Pg-Spam-Score: -0.9 (/) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a11c165e84950ba05295c16f2 Content-Type: multipart/alternative; boundary=001a11c165e84950b505295c16f0 --001a11c165e84950b505295c16f0 Content-Type: text/plain; charset=UTF-8 Hi, Please find the attached path for Privilege control with select2cell for user role section TODO: Need to add current database logged in user in Granter filed in privilege grid control. -- *Harshal Dhumal* *Software Engineer * EenterpriseDB --001a11c165e84950b505295c16f0 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find the attached path f= or Privilege control with select2cell for user role section

TO= DO:=C2=A0 Need to add current database logged in user in Granter filed in p= rivilege grid control.


--=C2= =A0
Harshal Dhumal
Software Engineer=C2=A0



--001a11c165e84950b505295c16f0-- --001a11c165e84950ba05295c16f2 Content-Type: text/x-patch; charset=US-ASCII; name="privilege_control_with_select2cell_for_user_selection_15_Jan.patch" Content-Disposition: attachment; filename="privilege_control_with_select2cell_for_user_selection_15_Jan.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ijfg7o3e0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18ucHkKaW5kZXggYzM4MjY1 ZC4uMDQxNTZlZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18ucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18u cHkKQEAgLTExNSw3ICsxMTUsOCBAQCBjbGFzcyBTZXJ2ZXJNb2R1bGUoc2cu U2VydmVyR3JvdXBQbHVnaW5Nb2R1bGUpOgogICAgICAgICAgICAgewogICAg ICAgICAgICAgJ25hbWUnOiAncGdhZG1pbi5icm93c2VyLnNlcnZlci5wcml2 aWxlZ2UnLAogICAgICAgICAgICAgJ3BhdGgnOiB1cmxfZm9yKCdicm93c2Vy LmluZGV4JykgKyAnc2VydmVyL3N0YXRpYy9qcy9wcml2aWxlZ2UnLAotICAg ICAgICAgICAgJ3doZW4nOiBzZWxmLm5vZGVfdHlwZQorICAgICAgICAgICAg J3doZW4nOiBzZWxmLm5vZGVfdHlwZSwKKyAgICAgICAgICAgICdkZXBzJzog WydwZ2FkbWluLmJyb3dzZXIubm9kZS51aSddCiAgICAgICAgICAgICB9LAog ICAgICAgICAgICAgewogICAgICAgICAgICAgJ25hbWUnOiAncGdhZG1pbi5i cm93c2VyLnNlcnZlci52YXJpYWJsZScsCmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9zdGF0aWMvanMv cHJpdmlsZWdlLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvc3RhdGljL2pzL3ByaXZpbGVnZS5qcwppbmRleCAyZjZm MDUyLi42NTFmODM3IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9zdGF0aWMvanMvcHJpdmlsZWdlLmpz CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3N0YXRpYy9qcy9wcml2aWxlZ2UuanMKQEAgLTUsNyArNSw3IEBACiAg ICAgIGZ1bmN0aW9uKF8sICQsIEJhY2tib25lLCBCYWNrZm9ybSwgQmFja2dy aWQsIEFsZXJ0aWZ5LCBwZ05vZGUpIHsKICAgICAgIC8vIEV4cG9ydCBnbG9i YWwgZXZlbiBpbiBBTUQgY2FzZSBpbiBjYXNlIHRoaXMgc2NyaXB0IGlzIGxv YWRlZCB3aXRoCiAgICAgICAvLyBvdGhlcnMgdGhhdCBtYXkgc3RpbGwgZXhw ZWN0IGEgZ2xvYmFsIEJhY2tmb3JtLgotICAgICAgcmV0dXJuIGZhY3Rvcnko cm9vdCwgXywgJCwgQmFja2JvbmUsIEJhY2tmb3JtLCBBbGVydGlmeSwgcGdO b2RlKTsKKyAgICAgIHJldHVybiBmYWN0b3J5KHJvb3QsIF8sICQsIEJhY2ti b25lLCBCYWNrZm9ybSwgQmFja2dyaWQsIEFsZXJ0aWZ5LCBwZ05vZGUpOwog ICAgIH0pOwogCiAgIC8vIE5leHQgZm9yIE5vZGUuanMgb3IgQ29tbW9uSlMu IGpRdWVyeSBtYXkgbm90IGJlIG5lZWRlZCBhcyBhIG1vZHVsZS4KQEAgLTE0 LDE1ICsxNCwxNiBAQAogICAgICAgJCA9IHJvb3QualF1ZXJ5IHx8IHJvb3Qu JCB8fCByb290LlplcHRvIHx8IHJvb3QuZW5kZXIsCiAgICAgICBCYWNrYm9u ZSA9IHJlcXVpcmUoJ2JhY2tib25lJykgfHwgcm9vdC5CYWNrYm9uZSwKICAg ICAgIEJhY2tmb3JtID0gcmVxdWlyZSgnYmFja2Zvcm0nKSB8fCByb290LkJh Y2tmb3JtOworICAgICAgQmFja2dyaWQgPSByZXF1aXJlKCdiYWNrZ3JpZCcp IHx8IHJvb3QuQmFja2dyaWQ7CiAgICAgICBBbGVydGlmeSA9IHJlcXVpcmUo J2FsZXJ0aWZ5JykgfHwgcm9vdC5BbGVydGlmeTsKICAgICAgIHBnQWRtaW4g PSByZXF1aXJlKCdwZ2FkbWluLmJyb3dzZXIubm9kZScpIHx8IHJvb3QucGdB ZG1pbi5Ccm93c2VyLk5vZGU7CiAgICAgZmFjdG9yeShyb290LCBfLCAkLCBC YWNrYm9uZSwgQmFja2Zvcm0sIEFsZXJ0aWZ5LCBwZ05vZGUpOwogCiAgIC8v IEZpbmFsbHksIGFzIGEgYnJvd3NlciBnbG9iYWwuCiAgIH0gZWxzZSB7Ci0g ICAgZmFjdG9yeShyb290LCByb290Ll8sIChyb290LmpRdWVyeSB8fCByb290 LlplcHRvIHx8IHJvb3QuZW5kZXIgfHwgcm9vdC4kKSwgcm9vdC5CYWNrYm9u ZSwgcm9vdC5CYWNrZm9ybSwgcm9vdC5wZ0FkbWluLkJyb3dzZXIuTm9kZSk7 CisgICAgZmFjdG9yeShyb290LCByb290Ll8sIChyb290LmpRdWVyeSB8fCBy b290LlplcHRvIHx8IHJvb3QuZW5kZXIgfHwgcm9vdC4kKSwgcm9vdC5CYWNr Ym9uZSwgcm9vdC5CYWNrZm9ybSwgcm9vdC5CYWNrZ3JpZCwgcm9vdC5hbGVy dGlmeSwgcm9vdC5wZ0FkbWluLkJyb3dzZXIuTm9kZSk7CiAgIH0KLX0gKHRo aXMsIGZ1bmN0aW9uKHJvb3QsIF8sICQsIEJhY2tib25lLCBCYWNrZm9ybSwg QWxlcnRpZnksIHBnTm9kZSkgeworfSAodGhpcywgZnVuY3Rpb24ocm9vdCwg XywgJCwgQmFja2JvbmUsIEJhY2tmb3JtLCBCYWNrZ3JpZCwgQWxlcnRpZnks IHBnTm9kZSkgewogCiAgIC8qKgogICAgKiBFYWNoIFByaXZpbGVnZSwgc3Vw cG9yZXRlZCBieSBhbiBkYXRhYmFzZSBvYmplY3QsIHdpbGwgYmUgcmVwcmVz ZW50ZWQKQEAgLTY2LDE1ICs2NywzOSBAQAogICAgIHByaXZpbGVnZXM6W10s CiAKICAgICBzY2hlbWE6IFt7Ci0gICAgICBpZDogJ2dyYW50ZWUnLCBsYWJl bDonR3JhbnRlZScsIHR5cGU6J3RleHQnLCBncm91cDogbnVsbCwgY2VsbDog J3N0cmluZycsCi0gICAgICBkaXNhYmxlZDogdHJ1ZSwgY2VsbEhlYWRlckNs YXNzZXM6ICd3aWR0aF9wZXJjZW50XzQwJworICAgICAgaWQ6ICdncmFudGVl JywgbGFiZWw6J0dyYW50ZWUnLCB0eXBlOid0ZXh0JywgZ3JvdXA6IG51bGws CisgICAgICBlZGl0YWJsZTogdHJ1ZSwgY2VsbEhlYWRlckNsYXNzZXM6ICd3 aWR0aF9wZXJjZW50XzQwJywKKyAgICAgIGNlbGw6ICdub2RlLWxpc3QtYnkt bmFtZScsIG5vZGU6ICdyb2xlJywKKyAgICAgIGRpc2FibGVkIDogZnVuY3Rp b24oY29sdW1uLCBjb2xsZWN0aW9uKSB7CisgICAgICAgIGlmIChjb2x1bW4g aW5zdGFuY2VvZiBCYWNrYm9uZS5Db2xsZWN0aW9uKSB7CisgICAgICAgICAg Ly8gVGhpcyBoYXMgYmVlbiBjYWxsZWQgZHVyaW5nIGdlbmVyYXRpbmcgdGhl IGhlYWRlciBjZWxsCisgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg ICB9CisgICAgICAgIHJldHVybiAhKHRoaXMubm9kZV9pbmZvICYmIHRoaXMu bm9kZV9pbmZvLnNlcnZlci51c2VyLm5hbWUgPT0gY29sdW1uLmdldCgnZ3Jh bnRvcicpKTsKKyAgICAgIH0sCisgICAgICB0cmFuc2Zvcm06IGZ1bmN0aW9u KGRhdGEpIHsKKyAgICAgICAgdmFyIHJlcyA9CisgICAgICAgICAgQmFja2dy aWQuRXh0ZW5zaW9uLk5vZGVMaXN0QnlOYW1lQ2VsbC5wcm90b3R5cGUuZGVm YXVsdHMudHJhbnNmb3JtLmFwcGx5KAorICAgICAgICAgICAgdGhpcywgYXJn dW1lbnRzCisgICAgICAgICAgICApOworICAgICAgICByZXMudW5zaGlmdCh7 bGFiZWw6ICdwdWJsaWMnLCB2YWx1ZTogJ3B1YmxpYyd9KTsKKyAgICAgICAg cmV0dXJuIHJlczsKKyAgICAgIH0KICAgICB9LCB7CiAgICAgICBpZDogJ3By aXZpbGVnZXMnLCBsYWJlbDonUHJpdmlsZWdlcycsCiAgICAgICB0eXBlOiAn Y29sbGVjdGlvbicsIG1vZGVsOiBQcml2aWxlZ2VNb2RlbCwgZ3JvdXA6IG51 bGwsCi0gICAgICBkaXNhYmxlZDogZmFsc2UsIGNlbGw6ICdwcml2aWxlZ2Un LCBjb250cm9sOiAndGV4dCcsCi0gICAgICBjZWxsSGVhZGVyQ2xhc3Nlczog J3dpZHRoX3BlcmNlbnRfNDAnCisgICAgICBjZWxsOiAncHJpdmlsZWdlJywg Y29udHJvbDogJ3RleHQnLCBjZWxsSGVhZGVyQ2xhc3NlczogJ3dpZHRoX3Bl cmNlbnRfNDAnLAorICAgICAgZGlzYWJsZWQgOiBmdW5jdGlvbihjb2x1bW4s IGNvbGxlY3Rpb24pIHsKKyAgICAgICAgaWYgKGNvbHVtbiBpbnN0YW5jZW9m IEJhY2tib25lLkNvbGxlY3Rpb24pIHsKKyAgICAgICAgICAvLyBUaGlzIGhh cyBiZWVuIGNhbGxlZCBkdXJpbmcgZ2VuZXJhdGluZyB0aGUgaGVhZGVyIGNl bGwKKyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAg ICAgcmV0dXJuICEodGhpcy5ub2RlX2luZm8gJiYgdGhpcy5ub2RlX2luZm8u c2VydmVyLnVzZXIubmFtZSA9PSBjb2x1bW4uZ2V0KCdncmFudG9yJykgfHwK KyAgICAgICAgICAgICAgICB0aGlzLmF0dHJpYnV0ZXMubm9kZV9pbmZvLnNl cnZlci51c2VyLm5hbWUgPT0gY29sdW1uLmdldCgnZ3JhbnRvcicpKTsKKyAg ICAgIH0KICAgICB9LHsKLSAgICAgIGlkOiAnZ3JhbnRvcicsIGxhYmVsOiAn R3JhbnRlcicsIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6IHRydWUKKyAgICAg IGlkOiAnZ3JhbnRvcicsIGxhYmVsOiAnR3JhbnRlcicsIHR5cGU6ICd0ZXh0 JywgZGlzYWJsZWQ6IHRydWUsCisgICAgICBjZWxsOiAnbm9kZS1saXN0LWJ5 LW5hbWUnLCBub2RlOiAncm9sZScKICAgICB9XSwKIAogICAgIC8qCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9ub2RlLnVp LmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvbm9kZS51aS5q cwppbmRleCA3NjQyYTQ3Li5lMzhhZGNiIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3N0YXRpYy9qcy9ub2RlLnVpLmpzCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGUudWkuanMKQEAgLTQsNyAr NCw2IEBAIGZ1bmN0aW9uKCQsIF8sIHBnQWRtaW4sIEJhY2tib25lLCBCYWNr Zm9ybSwgQWxlcnRpZnksIE5vZGUpIHsKIAogICB2YXIgcGdCcm93c2VyID0g cGdBZG1pbi5Ccm93c2VyOwogCi0KICAgLy8gU3RvcmUgdmFsdWUgaW4gRE9N IGFzIHN0cmluZ2lmaWVkIEpTT04uCiAgIHZhciBTdHJpbmdPckpTT05Gb3Jt YXR0ZXIgPSBmdW5jdGlvbigpIHt9OwogICBfLmV4dGVuZChTdHJpbmdPckpT T05Gb3JtYXR0ZXIucHJvdG90eXBlLCB7CkBAIC0xODMsNyArMTgyLDcgQEAg ZnVuY3Rpb24oJCwgXywgcGdBZG1pbiwgQmFja2JvbmUsIEJhY2tmb3JtLCBB bGVydGlmeSwgTm9kZSkgewogCiAgIHZhciBOb2RlTGlzdEJ5SWRDb250cm9s ID0gQmFja2Zvcm0uTm9kZUxpc3RCeUlkQ29udHJvbCA9IE5vZGVBamF4T3B0 aW9uc0NvbnRyb2wuZXh0ZW5kKHsKICAgICBjb250cm9sQ2xhc3NOYW1lOiAn cGdhZG1pbi1ub2RlLXNlbGVjdCBmb3JtLWNvbnRyb2wnLAotICAgIGRlZmF1 bHRzOiBfLmV4dGVuZChOb2RlQWpheE9wdGlvbnNDb250cm9sLnByb3RvdHlw ZS5kZWZhdWx0cywgeworICAgIGRlZmF1bHRzOiBfLmV4dGVuZCh7fSwgTm9k ZUFqYXhPcHRpb25zQ29udHJvbC5wcm90b3R5cGUuZGVmYXVsdHMsIHsKICAg ICAgIGZpcnN0X2VtcHR5OiB0cnVlLAogICAgICAgZW1wdHlfdmFsdWU6ICct LSBOb25lIC0tJywKICAgICAgIHVybDogJ25vZGVzJywKQEAgLTIyOSw3ICsy MjgsNyBAQCBmdW5jdGlvbigkLCBfLCBwZ0FkbWluLCBCYWNrYm9uZSwgQmFj a2Zvcm0sIEFsZXJ0aWZ5LCBOb2RlKSB7CiAKIAogICB2YXIgTm9kZUxpc3RC eU5hbWVDb250cm9sID0gQmFja2Zvcm0uTm9kZUxpc3RCeU5hbWVDb250cm9s ID0gTm9kZUxpc3RCeUlkQ29udHJvbC5leHRlbmQoewotICAgIGRlZmF1bHRz OiBfLmV4dGVuZChOb2RlTGlzdEJ5SWRDb250cm9sLnByb3RvdHlwZS5kZWZh dWx0cywgeworICAgIGRlZmF1bHRzOiBfLmV4dGVuZCh7fSwgTm9kZUxpc3RC eUlkQ29udHJvbC5wcm90b3R5cGUuZGVmYXVsdHMsIHsKICAgICAgIHRyYW5z Zm9ybTogZnVuY3Rpb24ocm93cykgewogICAgICAgICB2YXIgc2VsZiA9IHRo aXMsCiAgICAgICAgICAgICBub2RlID0gc2VsZi5maWVsZC5nZXQoJ3NjaGVt YV9ub2RlJyksCkBAIC0yODgsNSArMjg3LDI3MyBAQCBmdW5jdGlvbigkLCBf LCBwZ0FkbWluLCBCYWNrYm9uZSwgQmFja2Zvcm0sIEFsZXJ0aWZ5LCBOb2Rl KSB7CiAgICAgfSk7CiAgIH07CiAKKworICAvKgorICAgKiBOb2RlQWpheE9w dGlvbnNDZWxsCisgICAqICAgVGhpcyBjZWxsIHdpbGwgZmV0Y2ggdGhlIG9w dGlvbnMgcmVxdWlyZWQgdG8gcmVuZGVyIHRoZSBzZWxlY3QKKyAgICogICBj ZWxsLCBmcm9tIHRoZSB1cmwgc3BlY2lmaWMgdG8gdGhlIHBnQWRtaW4uQnJv d3NlciBub2RlIG9iamVjdC4KKyAgICoKKyAgICogICBJbiBvcmRlciB0byB1 c2UgdGhpcyBwcm9wZXJseSwgc2NoZW1hIHJlcXVpcmUgdG8gc2V0IHRoZSAn dXJsJyBwcm9wZXJ0eSwKKyAgICogICB3aGljaCBleHBvc2VzIHRoZSBkYXRh IGZvciB0aGlzIG5vZGUuCisgICAqCisgICAqICAgSW4gY2FzZSB0aGUgdXJs IGlzIG5vdCBwcm92aWRpbmcgdGhlIGRhdGEgaW4gcHJvcGVyIGZvcm1hdCwg d2UgY2FuCisgICAqICAgc3BlY2lmeSB0aGUgJ3RyYW5zZm9ybScgZnVuY3Rp b24gdG9vLCB3aGljaCB3aWxsIGNvbnZlcnQgdGhlIGZldGNoZWQKKyAgICog ICBkYXRhIHRvIHByb3BlciAnbGFiZWwnLCAndmFsdWUnIGZvcm1hdC4KKyAg ICovCisgIHZhciBOb2RlQWpheE9wdGlvbnNDZWxsID0gQmFja2dyaWQuRXh0 ZW5zaW9uLk5vZGVBamF4T3B0aW9uc0NlbGwgPSBCYWNrZ3JpZC5FeHRlbnNp b24uU2VsZWN0MkNlbGwuZXh0ZW5kKHsKKyAgICBkZWZhdWx0czogXy5leHRl bmQoe30sIEJhY2tncmlkLkV4dGVuc2lvbi5TZWxlY3QyQ2VsbC5wcm90b3R5 cGUuZGVmYXVsdHMsIHsKKyAgICAgIHVybDogdW5kZWZpbmVkLAorICAgICAg dHJhbnNmb3JtOiB1bmRlZmluZWQsCisgICAgICB1cmxfd2l0aF9pZDogZmFs c2UsCisgICAgICBzZWxlY3QyOiB7CisgICAgICAgIGFsbG93Q2xlYXI6IHRy dWUsCisgICAgICAgIHBsYWNlaG9sZGVyOiAnU2VsZWN0IGZyb20gdGhlIGxp c3QnLAorICAgICAgICB3aWR0aDogJ3N0eWxlJworICAgICAgfQorICAgIH0p LAorICAgIHRlbXBsYXRlOiBfLnRlbXBsYXRlKAorICAgICAgJzxvcHRpb24g PCUgaWYgKGltYWdlKSB7ICU+IGRhdGEtaW1hZ2U9PCU9IGltYWdlICU+IDwl IH0gJT4gdmFsdWU9IjwlLSB2YWx1ZSAlPiIgPCU9IHNlbGVjdGVkID8gXCdz ZWxlY3RlZD0ic2VsZWN0ZWQiXCcgOiAiIiAlPj48JS0gdGV4dCAlPjwvb3B0 aW9uPicKKyAgICApLAorICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uICgpIHsK KyAgICAgIEJhY2tncmlkLkV4dGVuc2lvbi5TZWxlY3QyQ2VsbC5wcm90b3R5 cGUuaW5pdGlhbGl6ZS5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworCisgICAg ICB2YXIgY29sID0gXy5kZWZhdWx0cyh0aGlzLmNvbHVtbi50b0pTT04oKSwg dGhpcy5kZWZhdWx0cyksCisgICAgICAgICAgbW9kZWwgPSB0aGlzLm1vZGVs LCBjb2x1bW4gPSB0aGlzLmNvbHVtbiwKKyAgICAgICAgICBlZGl0YWJsZSA9 IEJhY2tncmlkLmNhbGxCeU5lZWQoY29sLmVkaXRhYmxlLCBjb2x1bW4sIG1v ZGVsKSwKKyAgICAgICAgICBvcHRpb25WYWx1ZXMgPSBfLmNsb25lKHRoaXMu b3B0aW9uVmFsdWVzIHx8IHRoaXMuY29sdW1uLmdldCgnb3B0aW9ucycpKTsK KworCisgICAgICB2YXIgc2VsZiA9IHRoaXMsCisgICAgICAgICAgdXJsID0g c2VsZi5jb2x1bW4uZ2V0KCd1cmwnKSB8fCBzZWxmLmRlZmF1bHRzLnVybCwK KyAgICAgICAgICBtID0gc2VsZi5tb2RlbC5oYW5kbGVyIHx8IHNlbGYubW9k ZWw7CisKKyAgICAgIC8vIEhtbSAtIHdlIGZvdW5kIHRoZSB1cmwgb3B0aW9u LgorICAgICAgLy8gVGhhdCBtZWFucyAtIHdlIG5lZWRzIHRvIGZldGNoIHRo ZSBvcHRpb25zIGZyb20gdGhhdCBub2RlLgorICAgICAgaWYgKHVybCkgewor ICAgICAgICB2YXIgbm9kZSA9IHRoaXMuY29sdW1uLmdldCgnc2NoZW1hX25v ZGUnKSwKKyAgICAgICAgICAgIG5vZGVfaW5mbyA9IHRoaXMuY29sdW1uLmdl dCgnbm9kZV9pbmZvJyksCisgICAgICAgICAgICBmdWxsX3VybCA9IG5vZGUu Z2VuZXJhdGVfdXJsLmFwcGx5KAorICAgICAgICAgICAgICBub2RlLCBbCisg ICAgICAgICAgICAgICAgbnVsbCwgdXJsLCB0aGlzLmNvbHVtbi5nZXQoJ25v ZGVfZGF0YScpLAorICAgICAgICAgICAgICAgIHRoaXMuY29sdW1uLmdldCgn dXJsX3dpdGhfaWQnKSB8fCBmYWxzZSwgbm9kZV9pbmZvCisgICAgICAgICAg ICAgIF0pLAorICAgICAgICAgICAgY2FjaGVfbGV2ZWwgPSB0aGlzLmNvbHVt bi5nZXQoJ2NhY2hlX2xldmVsJykgfHwgbm9kZS50eXBlLAorICAgICAgICAg ICAgY2FjaGVfbm9kZSA9IHRoaXMuY29sdW1uLmdldCgnY2FjaGVfbm9kZScp OworCisgICAgICAgIGNhY2hlX25vZGUgPSAoY2FjaGVfbm9kZSAmJiBwZ0Fk bWluLkJyb3dzZXIuTm9kZXNbJ2NhY2hlX25vZGUnXSkgfHwgbm9kZTsKKwor ICAgICAgICAvKgorICAgICAgICAgKiBXZSBuZWVkcyB0byBjaGVjaywgaWYg d2UgaGF2ZSBhbHJlYWR5IGNhY2hlZCBkYXRhIGZvciB0aGlzIHVybC4KKyAg ICAgICAgICogSWYgeWVzIC0gdXNlIHRoYXQsIGFuZCBkbyBub3QgYm90aGVy IGFib3V0IGZldGNoaW5nIGl0IGFnYWluLAorICAgICAgICAgKiBhbmQgdXNl IGl0LgorICAgICAgICAgKi8KKyAgICAgICAgdmFyIGRhdGEgPSBjYWNoZV9u b2RlLmNhY2hlKHVybCwgbm9kZV9pbmZvLCBjYWNoZV9sZXZlbCk7CisKKyAg ICAgICAgaWYgKHRoaXMuY29sdW1uLmdldCgndmVyc2lvbl9jb21waXRpYmxl JykgJiYKKyAgICAgICAgICAgIChfLmlzVW5kZWZpbmVkKGRhdGEpIHx8IF8u aXNOdWxsKGRhdGEpKSkgeworICAgICAgICAgIG0udHJpZ2dlcigncGdhZG1p bjp2aWV3OmZldGNoaW5nJywgbSwgc2VsZi5jb2x1bW4pOworICAgICAgICAg ICQuYWpheCh7CisgICAgICAgICAgICBhc3luYzogZmFsc2UsCisgICAgICAg ICAgICB1cmw6IGZ1bGxfdXJsLAorICAgICAgICAgICAgc3VjY2VzczogZnVu Y3Rpb24ocmVzKSB7CisgICAgICAgICAgICAgIC8qCisgICAgICAgICAgICAg ICAqIFdlIHdpbGwgY2FjaGUgdGhpcyBkYXRhIGZvciBzaG9ydCBwZXJpb2Qg b2YgdGltZSBmb3IgYXZvaWRpbmcKKyAgICAgICAgICAgICAgICogc2FtZSBj YWxscy4KKyAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgIGRhdGEg PSBjYWNoZV9ub2RlLmNhY2hlKHVybCwgbm9kZV9pbmZvLCBjYWNoZV9sZXZl bCwgcmVzLmRhdGEpOworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGVy cm9yOiBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgbS50cmlnZ2VyKCdw Z2FkbWluOnZpZXc6ZmV0Y2g6ZXJyb3InLCBtLCBzZWxmLmNvbHVtbik7Cisg ICAgICAgICAgICB9CisgICAgICAgICAgfSk7CisgICAgICAgICAgbS50cmln Z2VyKCdwZ2FkbWluOnZpZXc6ZmV0Y2hlZCcsIG0sIHNlbGYuY29sdW1uKTsK KyAgICAgICAgfQorICAgICAgICAvLyBUbyBmZXRjaCBvbmx5IG9wdGlvbnMg ZnJvbSBjYWNoZSwgd2UgZG8gbm90IG5lZWQgdGltZSBmcm9tICdhdCcKKyAg ICAgICAgLy8gYXR0cmlidXRlIGJ1dCBvbmx5IG9wdGlvbnMuCisgICAgICAg IC8vCisgICAgICAgIC8vIEl0IGlzIGZlYXNpYmxlIHRoYXQgdGhlIGRhdGEg bWF5IG5vdCBoYXZlIGJlZW4gZmV0Y2hlZC4KKyAgICAgICAgZGF0YSA9IChk YXRhICYmIGRhdGEuZGF0YSkgfHwgW107CisKKyAgICAgICAgLyoKKyAgICAg ICAgICogVHJhbnNmb3JtIHRoZSBkYXRhCisgICAgICAgICAqLworICAgICAg ICB0cmFuc2Zvcm0gPSB0aGlzLmNvbHVtbi5nZXQoJ3RyYW5zZm9ybScpIHx8 IHNlbGYuZGVmYXVsdHMudHJhbnNmb3JtOworICAgICAgICBpZiAodHJhbnNm b3JtICYmIF8uaXNGdW5jdGlvbih0cmFuc2Zvcm0pKSB7CisgICAgICAgICAg Ly8gV2Ugd2lsbCB0cmFuc2Zvcm0gdGhlIGRhdGEgbGF0ZXIsIHdoZW4gcmVu ZGVyaW5nLgorICAgICAgICAgIC8vIEl0IHdpbGwgYWxsb3cgdXMgdG8gZ2Vu ZXJhdGUgZGlmZmVyZW50IGRhdGEgYmFzZWQgb24gdGhlCisgICAgICAgICAg Ly8gZGVwZW5kZW5jaWVzLgorICAgICAgICAgIHNlbGYuY29sdW1uLnNldCgn b3B0aW9ucycsIHRyYW5zZm9ybS5iaW5kKHNlbGYsIGRhdGEpKTsKKyAgICAg ICAgfSBlbHNlIHsKKyAgICAgICAgICBzZWxmLmNvbHVtbi5zZXQoJ29wdGlv bnMnLCBkYXRhKTsKKyAgICAgICAgfQorICAgICAgfQorICAgIH0sCisgICAg cmVuZGVyOiBmdW5jdGlvbigpIHsKKyAgICAgIC8qCisgICAgICAgKiBMZXQg U2VsZWN0Q2VsbCByZW5kZXIgaXQsIHdlIHdpbGwgZG8gb3VyIG1hZ2ljIG9u IHRoZQorICAgICAgICogc2VsZWN0IGNvbnRyb2wgaW4gaXQuCisgICAgICAg Ki8KKworICAgICAgdmFyIGNvbCA9IF8uZGVmYXVsdHModGhpcy5jb2x1bW4u dG9KU09OKCksIHRoaXMuZGVmYXVsdHMpLAorICAgICAgICAgIG1vZGVsID0g dGhpcy5tb2RlbCwgY29sdW1uID0gdGhpcy5jb2x1bW4sCisgICAgICAgICAg ZWRpdGFibGUgPSBCYWNrZ3JpZC5jYWxsQnlOZWVkKGNvbC5lZGl0YWJsZSwg Y29sdW1uLCBtb2RlbCksCisgICAgICAgICAgb3B0aW9uVmFsdWVzID0gXy5j bG9uZSh0aGlzLm9wdGlvblZhbHVlcyB8fAorICAgICAgICAgICAgICAgIF8u aXNGdW5jdGlvbih0aGlzLmNvbHVtbi5nZXQoJ29wdGlvbnMnKSkgPworICAg ICAgICAgICAgICAgICAgICB0aGlzLmNvbHVtbi5nZXQoJ29wdGlvbnMnKS5h cHBseSh0aGlzKSA6CisgICAgICAgICAgICAgICAgICAgIHRoaXMuY29sdW1u LmdldCgnIG9wdGlvbnMnKSksCisgICAgICAgICAgc2VsZWN0Ml9vcHRzID0g Xy5kZWZhdWx0cyh7fSwgY29sLnNlbGVjdDIsIHRoaXMuZGVmYXVsdHMuc2Vs ZWN0MiksCisgICAgICAgICAgZXZhbEYgPSBmdW5jdGlvbihmLCBjb2wsIG0p IHsKKyAgICAgICAgICAgIHJldHVybiAoXy5pc0Z1bmN0aW9uKGYpID8gISFm LmFwcGx5KGNvbCwgW21dKSA6ICEhZik7CisgICAgICAgICAgfTsKKworICAg ICAgdGhpcy4kZWwuZW1wdHkoKTsKKworICAgICAgaWYgKCFfLmlzQXJyYXko b3B0aW9uVmFsdWVzKSkgdGhyb3cgbmV3IFR5cGVFcnJvcigib3B0aW9uVmFs dWVzIG11c3QgYmUgYW4gYXJyYXkiKTsKKworICAgICAgLyoKKyAgICAgICAq IEFkZCBlbXB0eSBvcHRpb24gYXMgU2VsZWN0MiByZXF1aXJlcyBhbnkgZW1w dHkgJzxvcHRpb24+PG9wdGlvbj4nIGZvcgorICAgICAgICogc29tZSBvZiBp dHMgZnVuY3Rpb25hbGl0eSB0byB3b3JrLgorICAgICAgICovCisgICAgICBv cHRpb25WYWx1ZXMudW5zaGlmdCh7J2xhYmVsJzpudWxsLCAndmFsdWUnOm51 bGwsICdpbWFnZSc6bnVsbH0pOworCisgICAgICB2YXIgb3B0aW9uVGV4dCA9 IG51bGwsCisgICAgICAgICAgb3B0aW9uVmFsdWUgPSBudWxsLAorICAgICAg ICAgIG1vZGVsID0gdGhpcy5tb2RlbCwKKyAgICAgICAgICBzZWxlY3RlZFZh bHVlcyA9IG1vZGVsLmdldCh0aGlzLmNvbHVtbi5nZXQoIm5hbWUiKSk7CisK KyAgICAgIGRlbGV0ZSB0aGlzLiRzZWxlY3Q7CisKKyAgICAgIHRoaXMuJHNl bGVjdCA9ICQoIjxzZWxlY3Q+Iiwge3RhYkluZGV4OiAtMX0pLmFwcGVuZFRv KHRoaXMuJGVsKTsKKworICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBvcHRp b25WYWx1ZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIG9wID0gb3B0 aW9uVmFsdWVzW2ldOworCisgICAgICAgIG9wdGlvblRleHQgID0gb3BbJ2xh YmVsJ107CisgICAgICAgIG9wdGlvblZhbHVlID0gb3BbJ3ZhbHVlJ107Cisg ICAgICAgIG9wdGlvbkltYWdlID0gb3BbJ2ltYWdlJ107CisKKyAgICAgICAg dGhpcy4kc2VsZWN0LmFwcGVuZCgKKyAgICAgICAgICB0aGlzLnRlbXBsYXRl KHsKKyAgICAgICAgICAgIHRleHQ6IG9wdGlvblRleHQsCisgICAgICAgICAg ICB2YWx1ZTogb3B0aW9uVmFsdWUsCisgICAgICAgICAgICBpbWFnZTogb3B0 aW9uSW1hZ2UsCisgICAgICAgICAgICBzZWxlY3RlZDogKHNlbGVjdGVkVmFs dWVzID09IG9wdGlvblZhbHVlKSB8fAorICAgICAgICAgICAgICAoXy5pbmRl eE9mKHNlbGVjdGVkVmFsdWVzLCBvcHRpb25WYWx1ZSkgPiAtMSkKKyAgICAg ICAgICB9KSk7CisgICAgICB9CisgICAgICAvLyBJbml0aWFsaXplIHNlbGVj dDIgY29udHJvbC4KKyAgICAgIHRoaXMuJHNlbGVjdC5zZWxlY3QyKAorICAg ICAgICAgIF8uZGVmYXVsdHMoCisgICAgICAgICAgICB7J2Rpc2FibGVkJzog IWVkaXRhYmxlfSwKKyAgICAgICAgICAgIGNvbC5zZWxlY3QyLAorICAgICAg ICAgICAgdGhpcy5kZWZhdWx0cy5zZWxlY3QyCisgICAgICAgICAgICApKTsK KworICAgICAgLyoKKyAgICAgICAqIElmIHNlbGVjdDIgb3B0aW9ucyBkbyBu b3QgaGF2ZSBhbnkgZGlzYWJsZWQgcHJvcGVydHkgb24gdGhpcyBjZWxsCisg ICAgICAgKiBhbmQgc2NoZW1hIGhhcyBkaXNhYmxlZCBwcm9wZXJ0eSB0aGVu IHdlIG5lZWQgdG8gYXBwbHkgaXQKKyAgICAgICAqLworICAgICAgaWYoIV8u aGFzKHNlbGVjdDJfb3B0cywgJ2Rpc2FibGVkJykgJiYgKGNvbCAmJiBjb2wu ZGlzYWJsZWQpKSB7CisgICAgICAgIF8uZXh0ZW5kKHNlbGVjdDJfb3B0cywg eworICAgICAgICAgIGRpc2FibGVkOiBldmFsRihjb2wuZGlzYWJsZWQsIGNv bCwgdGhpcy5tb2RlbCkKKyAgICAgICAgfSk7CisgICAgICB9CisKKyAgICAg IHRoaXMuJGVsLmZpbmQoInNlbGVjdCIpLnNlbGVjdDIoc2VsZWN0Ml9vcHRz KTsKKworICAgICAgdGhpcy5kZWxlZ2F0ZUV2ZW50cygpOworCisgICAgICBy ZXR1cm4gdGhpczsKKyAgICB9CisgIH0pOworCisgIHZhciBOb2RlTGlzdEJ5 SWRDZWxsID0gIEJhY2tncmlkLkV4dGVuc2lvbi5Ob2RlTGlzdEJ5SWRDZWxs ID0gTm9kZUFqYXhPcHRpb25zQ2VsbC5leHRlbmQoeworICAgIGNvbnRyb2xD bGFzc05hbWU6ICdwZ2FkbWluLW5vZGUtc2VsZWN0IGJhY2tncmlkLWNlbGwn LAorICAgIGRlZmF1bHRzOiBfLmV4dGVuZCh7fSwgTm9kZUFqYXhPcHRpb25z Q2VsbC5wcm90b3R5cGUuZGVmYXVsdHMsIHsKKyAgICAgIHVybDogJ25vZGVz JywKKyAgICAgIGZpbHRlcjogdW5kZWZpbmVkLAorICAgICAgdHJhbnNmb3Jt OiBmdW5jdGlvbihyb3dzKSB7CisgICAgICAgIHZhciBzZWxmID0gdGhpcywK KyAgICAgICAgICAgIG5vZGUgPSBzZWxmLmNvbHVtbi5nZXQoJ3NjaGVtYV9u b2RlJyksCisgICAgICAgICAgICByZXMgPSBbXSwKKyAgICAgICAgICAgIGZp bHRlciA9IHNlbGYuY29sdW1uLmdldCgnZmlsdGVyJykgfHwgZnVuY3Rpb24o KSB7IHJldHVybiB0cnVlOyB9OworCisgICAgICAgIGZpbHRlciA9IGZpbHRl ci5iaW5kKHNlbGYpOworCisgICAgICAgIF8uZWFjaChyb3dzLCBmdW5jdGlv bihyKSB7CisgICAgICAgICAgaWYgKGZpbHRlcihyKSkgeworICAgICAgICAg ICAgdmFyIGwgPSAoXy5pc0Z1bmN0aW9uKG5vZGVbJ25vZGVfbGFiZWwnXSkg PworICAgICAgICAgICAgICAgICAgKG5vZGVbJ25vZGVfbGFiZWwnXSkuYXBw bHkobm9kZSwgW3IsIHNlbGYubW9kZWwsIHNlbGZdKSA6CisgICAgICAgICAg ICAgICAgICByLmxhYmVsKSwKKyAgICAgICAgICAgICAgICBpbWFnZT0gKF8u aXNGdW5jdGlvbihub2RlWydub2RlX2ltYWdlJ10pID8KKyAgICAgICAgICAg ICAgICAgIChub2RlWydub2RlX2ltYWdlJ10pLmFwcGx5KAorICAgICAgICAg ICAgICAgICAgICBub2RlLCBbciwgc2VsZi5tb2RlbCwgc2VsZl0KKyAgICAg ICAgICAgICAgICAgICAgKSA6CisgICAgICAgICAgICAgICAgICAobm9kZVsn bm9kZV9pbWFnZSddIHx8ICgnaWNvbi0nICsgbm9kZS50eXBlKSkpOworCisg ICAgICAgICAgICByZXMucHVzaCh7CisgICAgICAgICAgICAgICd2YWx1ZSc6 IHIuX2lkLAorICAgICAgICAgICAgICAnaW1hZ2UnOiBpbWFnZSwKKyAgICAg ICAgICAgICAgJ2xhYmVsJzogbAorICAgICAgICAgICAgfSk7CisgICAgICAg ICAgfQorICAgICAgICB9KTsKKworICAgICAgICByZXR1cm4gcmVzOworICAg ICAgfSwKKyAgICAgIHNlbGVjdDI6IHsKKyAgICAgICAgcGxhY2Vob2xkZXI6 ICdTZWxlY3QgZnJvbSB0aGUgbGlzdCcsCisgICAgICAgIHdpZHRoOiAnc3R5 bGUnLAorICAgICAgICB0ZW1wbGF0ZVJlc3VsdDogZm9ybWF0Tm9kZSwKKyAg ICAgICAgdGVtcGxhdGVTZWxlY3Rpb246IGZvcm1hdE5vZGUKKyAgICAgIH0K KyAgICB9KQorICB9KTsKKworCisgIHZhciBOb2RlTGlzdEJ5TmFtZUNlbGwg PSAgQmFja2dyaWQuRXh0ZW5zaW9uLk5vZGVMaXN0QnlOYW1lQ2VsbCA9IE5v ZGVBamF4T3B0aW9uc0NlbGwuZXh0ZW5kKHsKKyAgICBjb250cm9sQ2xhc3NO YW1lOiAncGdhZG1pbi1ub2RlLXNlbGVjdCBiYWNrZ3JpZC1jZWxsJywKKyAg ICBkZWZhdWx0czogXy5leHRlbmQoe30sIE5vZGVBamF4T3B0aW9uc0NlbGwu cHJvdG90eXBlLmRlZmF1bHRzLCB7CisgICAgICB1cmw6ICdub2RlcycsCisg ICAgICBmaWx0ZXI6IHVuZGVmaW5lZCwKKyAgICAgIHRyYW5zZm9ybTogZnVu Y3Rpb24ocm93cykgeworICAgICAgICB2YXIgc2VsZiA9IHRoaXMsCisgICAg ICAgICAgICBub2RlID0gc2VsZi5jb2x1bW4uZ2V0KCdzY2hlbWFfbm9kZScp LAorICAgICAgICAgICAgcmVzID0gW10sCisgICAgICAgICAgICBmaWx0ZXIg PSBzZWxmLmNvbHVtbi5nZXQoJ2ZpbHRlcicpIHx8IGZ1bmN0aW9uKCkgeyBy ZXR1cm4gdHJ1ZTsgfTsKKworICAgICAgICBmaWx0ZXIgPSBmaWx0ZXIuYmlu ZChzZWxmKTsKKworICAgICAgICBfLmVhY2gocm93cywgZnVuY3Rpb24ocikg eworICAgICAgICAgIGlmIChmaWx0ZXIocikpIHsKKyAgICAgICAgICAgIHZh ciBsID0gKF8uaXNGdW5jdGlvbihub2RlWydub2RlX2xhYmVsJ10pID8KKyAg ICAgICAgICAgICAgICAgIChub2RlWydub2RlX2xhYmVsJ10pLmFwcGx5KG5v ZGUsIFtyLCBzZWxmLm1vZGVsLCBzZWxmXSkgOgorICAgICAgICAgICAgICAg ICAgci5sYWJlbCksCisgICAgICAgICAgICAgICAgaW1hZ2U9IChfLmlzRnVu Y3Rpb24obm9kZVsnbm9kZV9pbWFnZSddKSA/CisgICAgICAgICAgICAgICAg ICAobm9kZVsnbm9kZV9pbWFnZSddKS5hcHBseSgKKyAgICAgICAgICAgICAg ICAgICAgbm9kZSwgW3IsIHNlbGYubW9kZWwsIHNlbGZdCisgICAgICAgICAg ICAgICAgICAgICkgOgorICAgICAgICAgICAgICAgICAgKG5vZGVbJ25vZGVf aW1hZ2UnXSB8fCAoJ2ljb24tJyArIG5vZGUudHlwZSkpKTsKKworICAgICAg ICAgICAgcmVzLnB1c2goeworICAgICAgICAgICAgICAndmFsdWUnOiByLmxh YmVsLAorICAgICAgICAgICAgICAnaW1hZ2UnOiBpbWFnZSwKKyAgICAgICAg ICAgICAgJ2xhYmVsJzogbAorICAgICAgICAgICAgfSk7CisgICAgICAgICAg fQorICAgICAgICB9KTsKKworICAgICAgICByZXR1cm4gcmVzOworICAgICAg fSwKKyAgICAgIHNlbGVjdDI6IHsKKyAgICAgICAgcGxhY2Vob2xkZXI6ICdT ZWxlY3QgZnJvbSB0aGUgbGlzdCcsCisgICAgICAgIHdpZHRoOiAnc3R5bGUn LAorICAgICAgICB0ZW1wbGF0ZVJlc3VsdDogZm9ybWF0Tm9kZSwKKyAgICAg ICAgdGVtcGxhdGVTZWxlY3Rpb246IGZvcm1hdE5vZGUKKyAgICAgIH0KKyAg ICB9KQorICB9KTsKKworCiAgIHJldHVybiBCYWNrZm9ybTsKIH0pOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZW1wbGF0ZXMvYnJvd3Nl ci9qcy9ub2RlLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci90ZW1wbGF0ZXMv YnJvd3Nlci9qcy9ub2RlLmpzCmluZGV4IGZlOTk5YmIuLjYyMmU5ZTEgMTAw NjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdGVtcGxhdGVzL2Jyb3dz ZXIvanMvbm9kZS5qcworKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3RlbXBs YXRlcy9icm93c2VyL2pzL25vZGUuanMKQEAgLTEyODksNyArMTI4OSw3IEBA IGZ1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIE1lbnUsIEJhY2tib25lLCBB bGVydGlmeSwgQmFja2Zvcm0pIHsKICAgICAgICAgfQogICAgICAgICBpZHgg PSBfLmluZGV4T2Yoc2VsZi5zZXNzQXR0cnNbJ2NoYW5nZWQnXSwgb2JqKTsK ICAgICAgICAgaWYgKCEnc2Vzc0NoYW5nZWQnIGluIG9iaikgewotICAgICAg ICAgIGlmIChpZHggPiAwKSB7CisgICAgICAgICAgaWYgKGlkeCA+PSAwKSB7 CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgICB9CiAgICAg ICAgICAgc2VsZi5zZXNzQXR0cnNbJ2NoYW5nZWQnXS5wdXNoKG9iaik7CkBA IC0xMzAxLDcgKzEzMDEsNyBAQCBmdW5jdGlvbigkLCBfLCBTLCBwZ0FkbWlu LCBNZW51LCBCYWNrYm9uZSwgQWxlcnRpZnksIEJhY2tmb3JtKSB7CiAKICAg ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQotICAgICAgICBpZiAo aWR4ID4gMCkgeworICAgICAgICBpZiAoaWR4ID49IDApIHsKIAogICAgICAg ICAgIChzZWxmIHx8IHNlbGYuaGFuZGxlcikudHJpZ2dlcigKICAgICAgICAg ICAgICAgJ3BnYWRtaW4tc2Vzc2lvbjpjaGFuZ2VkJywKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9iYWNrZm9ybS5wZ2FkbWluLmpzIGIv d2ViL3BnYWRtaW4vc3RhdGljL2pzL2JhY2tmb3JtLnBnYWRtaW4uanMKaW5k ZXggNDJhYWE1NS4uZTk5Yzk2ZSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v c3RhdGljL2pzL2JhY2tmb3JtLnBnYWRtaW4uanMKKysrIGIvd2ViL3BnYWRt aW4vc3RhdGljL2pzL2JhY2tmb3JtLnBnYWRtaW4uanMKQEAgLTc2LDYgKzc2 LDcgQEAKICAgICAndW5pcXVlQ29sQ29sbGVjdGlvbic6IFsndW5pcXVlLWNv bC1jb2xsZWN0aW9uJywgJ3VuaXF1ZS1jb2wtY29sbGVjdGlvbicsICdzdHJp bmcnXSwKICAgICAnc3dpdGNoJyA6ICdzd2l0Y2gnLAogICAgICdzZWxlY3Qy JzogJ3NlbGVjdDInLAorICAgICdyYWRpbycgOiAncmFkaW8nCiAgIH07CiAK ICAgdmFyIGdldE1hcHBlZENvbnRyb2wgPSBCYWNrZm9ybS5nZXRNYXBwZWRD b250cm9sID0gZnVuY3Rpb24odHlwZSwgbW9kZSkgewpAQCAtNzI0LDcgKzcy NSw3IEBACiAgICAgICAgICAgICogY29uZmxpY3Rpbmcgd2l0aCBhbm90aGVy IG1vZGVsIHZhbHVlLgogICAgICAgICAgICAqLwogCi0gICAgICAgICAgbS5z ZXQodW5pcXVlQ2hhbmdlZEF0dHJbMF0sIG0ucHJldmlvdXModW5pcXVlQ2hh bmdlZEF0dHJbMF0pLCB7c2lsZW50OiB0cnVlfSk7CisgICAgICAgICAgbS5z ZXQodW5pcXVlQ2hhbmdlZEF0dHJbMF0sIG0ucHJldmlvdXModW5pcXVlQ2hh bmdlZEF0dHJbMF0pKTsKICAgICAgICAgfQogICAgICAgICBpZiAob2xkTW9k ZWwpIHsKICAgICAgICAgICB2YXIgaWR4ID0gY29sbGVjdGlvbi5pbmRleE9m KG9sZE1vZGVsKTsKQEAgLTEyMDQsNyArMTIwNSw3IEBACiAgICAgICAgICAg ICApOwogICAgICAgfQogCi0gICAgICAvLyBBZnRlciB2YWxpZGF0aW9uIHdl IG5lZWQgdG8gc2V0IHRoYXQgdmFsdWUgaW50byBtb2RlbCAob25seSBpZiBh bGwgZmFsZ3MgYXJlIHRydWUpCisgICAgICAvLyBBZnRlciB2YWxpZGF0aW9u IHdlIG5lZWQgdG8gc2V0IHRoYXQgdmFsdWUgaW50byBtb2RlbCAob25seSBp ZiBhbGwgZmxhZ3MgYXJlIHRydWUpCiAgICAgICBpZiAoaXNWYWxpZCkgewog ICAgICAgICB0aGlzLnN0b3BMaXN0ZW5pbmcodGhpcy5tb2RlbCwgImNoYW5n ZToiICsgbmFtZSwgdGhpcy5yZW5kZXIpOwogICAgICAgICB0aGlzLm1vZGVs LnNldChuYW1lLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9z dGF0aWMvanMvYmFja2dyaWQvYmFja2dyaWQucGdhZG1pbi5qcyBiL3dlYi9w Z2FkbWluL3N0YXRpYy9qcy9iYWNrZ3JpZC9iYWNrZ3JpZC5wZ2FkbWluLmpz CmluZGV4IDg1Zjk5YTYuLmI5YTNmODEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL3N0YXRpYy9qcy9iYWNrZ3JpZC9iYWNrZ3JpZC5wZ2FkbWluLmpzCisr KyBiL3dlYi9wZ2FkbWluL3N0YXRpYy9qcy9iYWNrZ3JpZC9iYWNrZ3JpZC5w Z2FkbWluLmpzCkBAIC0zNjcsNyArMzY3LDcgQEAKICAgICBvblNhdmU6IGZ1 bmN0aW9uIChlKSB7CiAgICAgICB2YXIgbW9kZWwgPSB0aGlzLm1vZGVsOwog ICAgICAgdmFyIGNvbHVtbiA9IHRoaXMuY29sdW1uOwotICAgICAgbW9kZWwu c2V0KGNvbHVtbi5nZXQoIm5hbWUiKSwgdGhpcy4kc2VsZWN0LnZhbCgpLHtz aWxlbnQ6dHJ1ZX0pOworICAgICAgbW9kZWwuc2V0KGNvbHVtbi5nZXQoIm5h bWUiKSwgdGhpcy4kc2VsZWN0LnZhbCgpKTsKICAgICB9CiAgIH0pOwogICBy ZXR1cm4gQmFja2dyaWQ7Cg== --001a11c165e84950ba05295c16f2 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 --001a11c165e84950ba05295c16f2--