Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aH55i-000442-Qu for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Jan 2016 07:34:39 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aH55h-0007Xs-Uw for pgadmin-hackers@arkaria.postgresql.org; Thu, 07 Jan 2016 07:34:38 +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 1aH55g-0007XX-DS for pgadmin-hackers@postgresql.org; Thu, 07 Jan 2016 07:34:36 +0000 Received: from mail-ob0-x22e.google.com ([2607:f8b0:4003:c01::22e]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aH55d-0000ts-59 for pgadmin-hackers@postgresql.org; Thu, 07 Jan 2016 07:34:35 +0000 Received: by mail-ob0-x22e.google.com with SMTP id ba1so319999123obb.3 for ; Wed, 06 Jan 2016 23:34:32 -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:cc:content-type; bh=ogRmYIdHxke3hy1LC40LyGsD9Ya2F/4eMzhu2u4v7t8=; b=0aN0TFfBXBa/DSBwZ4BQIq37X1hMQfKzZCJRX3DgRKMJqdIeYP7iEe9O7BcFRQMBjI Vu/zW5Ut9III9GnPiLYrLMMdqPh1tRe6U0TBQGowqIFgAismeoE3oa8fbddr/XOqG8lS Y/cIwLW20tdcPWnyyr0Zp7UDnPDBt73r6CIhBGJq4Dw95tZHtv9AD7fO64j8hGcpsQ7i PMMql6pK7Gax6w3VmOjdMscq40IupFJB15WceaSNErrGyX9LQRIypius13wubs8LeHVi wcGkUQ/9IZQsZcVYMPOjB0LcNpRlWcJI1kwkXWgo/lzWcNWooVIcphNKbqQi67TOrDbe 216Q== 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:cc :content-type; bh=ogRmYIdHxke3hy1LC40LyGsD9Ya2F/4eMzhu2u4v7t8=; b=WfdSEaCYMJ8Jk9EM8plKl1OvO7EhED9jsFRlOok+6vnL8Hp2JLcYGZxVqhTiYy4W0v JSMx9Oi8go5yLVkpH4PW9rJbTAwrXarQ0QpatR7KJeJOxT4yaGKgdoZrAPi9zgGocg41 9XK30Q8mStx2JhrqdS3Q64wg6zSZYjBDLJ4irqikJbaImVvQ1AFk4IzMgO+5AYwgupoe o/T0bIjNosAIkjv4PvbWOn7Xtqm82fAFUuk7PcS+oeprLncZAZrXNDY/c7mfzFxc1tr7 XPIeAUIzAziz9zFY91uXWilfkVIX8En+j35IUKyPFwqb0GKGyWXtlVnT5fOR9gXsjHzV X1sA== X-Gm-Message-State: ALoCoQky0ZWsEcXcuPeyNnwmHtT31lzfvwF7oXo1krsUeyg/oJzZha39hVvJCLBLzU3f03EixnAoAIogc6TGQov7RZJxnjdzm+7B+gUnveJoLHp8LFA9F9E= MIME-Version: 1.0 X-Received: by 10.182.165.67 with SMTP id yw3mr71728503obb.45.1452152072458; Wed, 06 Jan 2016 23:34:32 -0800 (PST) Received: by 10.202.73.71 with HTTP; Wed, 6 Jan 2016 23:34:32 -0800 (PST) Date: Thu, 7 Jan 2016 13:04:32 +0530 Message-ID: Subject: Variable control patch From: Harshal Dhumal To: Ashesh Vashi Cc: pgadmin-hackers@postgresql.org Content-Type: multipart/mixed; boundary=001a11c2e96470dc730528b98002 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 --001a11c2e96470dc730528b98002 Content-Type: multipart/alternative; boundary=001a11c2e96470dc6d0528b98000 --001a11c2e96470dc6d0528b98000 Content-Type: text/plain; charset=UTF-8 Hi, Please find attached patch for Variable control. Usage: 1] In variables tab id: 'spcoptions', label: 'Variables', type: 'collection', group: "Variables", model: pgAdmin.Browser.Node.VariableModel, control: 'variable-collection', mode: [ 'edit', 'create'], canAdd: true, canDelete: true, uniqueCol : ['name'], variableCol : 'name', url: "getvars", 2] In database tab id: 'spcoptions', label: 'Variables', type: 'collection', group: "Variables", model: pgAdmin.Browser.Node.VariableModel.extend({hasDatabase:true}), control: 'variable-collection', mode: [ 'edit', 'create'], canAdd: true, canDelete: true, uniqueCol : ['name','database'], variableCol : 'name', url: "getvars", 3] In Use roles tab id: 'spcoptions', label: 'Variables', type: 'collection', group: "Variables", model: pgAdmin.Browser.Node.VariableModel.extend({hasRole:true}), control: 'variable-collection', mode: [ 'edit', 'create'], canAdd: true, canDelete: true, uniqueCol : ['name','role'], variableCol : 'name', url: "getvars", --001a11c2e96470dc6d0528b98000 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,
Please find attached patch for= Variable control.

Usage:
1] In variables tab
id: 'spcoptions', label: 'Variables', type: 'collection', group: "Variables",
model: pgAdmin.Browser.Node.Va= riableModel, control: 'variable-c= ollection', mode: [ 'e= dit', 'create'],
canAdd: true, canDele= te: true, uniqueCol : ['name'],
variableCol : 'name', url: &quo= t;getvars",
2] In database tab
id: 'spcoptions', label: 'Variables', type: &=
#39;collection', group: &q=
uot;Variables",
model: pgAdmin.Browser.Node.VariableModel.ex= tend({hasDatabase:true}), cont= rol: 'variable-collection', mode: [ 'edit', = 'create'],
canAdd: = true, canDelete: true, uniqueCol : ['name','database'],
variableCol : 'name', url: = "getvars",

3] In Use roles tab
id: 'spcoptions', label: 'Variables', type: 'collection', group: "Variables",
model: pgAdmin.Browser.Node.VariableModel= .extend({hasRole:true}), contr= ol: 'variable-collection', mode: [ 'edit', <= span style=3D"color:rgb(106,135,89)">'create'],
canAdd: <= span style=3D"color:rgb(204,120,50)">true, canDelete: true, uniqueCol : ['name',&#= 39;role'],
variableCol : 'name', url: "g= etvars",


--001a11c2e96470dc6d0528b98000-- --001a11c2e96470dc730528b98002 Content-Type: text/x-patch; charset=US-ASCII; name="variable_control_7_Jan.patch" Content-Disposition: attachment; filename="variable_control_7_Jan.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ij3xqt980 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18ucHkKaW5kZXggZDQ3ODUy Ni4uMDYwNDIwMiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18ucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvX19pbml0X18u cHkKQEAgLTk3LDYgKzk3LDExIEBAIGNsYXNzIFNlcnZlck1vZHVsZShzZy5T ZXJ2ZXJHcm91cFBsdWdpbk1vZHVsZSk6CiAgICAgICAgICAgICAnbmFtZSc6 ICdwZ2FkbWluLmJyb3dzZXIuc2VydmVyLnByaXZpbGVnZScsCiAgICAgICAg ICAgICAncGF0aCc6IHVybF9mb3IoJ2Jyb3dzZXIuaW5kZXgnKSArICdzZXJ2 ZXIvc3RhdGljL2pzL3ByaXZpbGVnZScsCiAgICAgICAgICAgICAnd2hlbic6 IHNlbGYubm9kZV90eXBlCisgICAgICAgICAgICB9LAorICAgICAgICAgICAg eworICAgICAgICAgICAgJ25hbWUnOiAncGdhZG1pbi5icm93c2VyLnNlcnZl ci52YXJpYWJsZScsCisgICAgICAgICAgICAncGF0aCc6IHVybF9mb3IoJ2Jy b3dzZXIuaW5kZXgnKSArICdzZXJ2ZXIvc3RhdGljL2pzL3ZhcmlhYmxlJywK KyAgICAgICAgICAgICd3aGVuJzogc2VsZi5ub2RlX3R5cGUKICAgICAgICAg ICAgIH1dKQogCiAgICAgICAgIGZvciBtb2R1bGUgaW4gc2VsZi5zdWJtb2R1 bGVzOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvc3RhdGljL2pzL3ZhcmlhYmxlLmpzIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvc3RhdGljL2pz L3ZhcmlhYmxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjNkODM1M2QKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9zdGF0aWMvanMvdmFyaWFi bGUuanMKQEAgLTAsMCArMSw0MjIgQEAKKyhmdW5jdGlvbihyb290LCBmYWN0 b3J5KSB7CisgIC8vIFNldCB1cCBCYWNrZm9ybSBhcHByb3ByaWF0ZWx5IGZv ciB0aGUgZW52aXJvbm1lbnQuIFN0YXJ0IHdpdGggQU1ELgorICBpZiAodHlw ZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7Cisg ICAgZGVmaW5lKFsndW5kZXJzY29yZScsICdqcXVlcnknLCAnYmFja2JvbmUn LCAnYmFja2Zvcm0nLCAnYmFja2dyaWQnLCAnYWxlcnRpZnknLCAncGdhZG1p bi5icm93c2VyLm5vZGUnXSwKKyAgICAgZnVuY3Rpb24oXywgJCwgQmFja2Jv bmUsIEJhY2tmb3JtLCBCYWNrZ3JpZCwgQWxlcnRpZnksIHBnTm9kZSkgewor ICAgICAgLy8gRXhwb3J0IGdsb2JhbCBldmVuIGluIEFNRCBjYXNlIGluIGNh c2UgdGhpcyBzY3JpcHQgaXMgbG9hZGVkIHdpdGgKKyAgICAgIC8vIG90aGVy cyB0aGF0IG1heSBzdGlsbCBleHBlY3QgYSBnbG9iYWwgQmFja2Zvcm0uCisg ICAgICByZXR1cm4gZmFjdG9yeShyb290LCBfLCAkLCBCYWNrYm9uZSwgQmFj a2Zvcm0sIEFsZXJ0aWZ5LCBwZ05vZGUpOworICAgIH0pOworCisgIC8vIE5l eHQgZm9yIE5vZGUuanMgb3IgQ29tbW9uSlMuIGpRdWVyeSBtYXkgbm90IGJl IG5lZWRlZCBhcyBhIG1vZHVsZS4KKyAgfSBlbHNlIGlmICh0eXBlb2YgZXhw b3J0cyAhPT0gJ3VuZGVmaW5lZCcpIHsKKyAgICB2YXIgXyA9IHJlcXVpcmUo J3VuZGVyc2NvcmUnKSB8fCByb290Ll8sCisgICAgICAkID0gcm9vdC5qUXVl cnkgfHwgcm9vdC4kIHx8IHJvb3QuWmVwdG8gfHwgcm9vdC5lbmRlciwKKyAg ICAgIEJhY2tib25lID0gcmVxdWlyZSgnYmFja2JvbmUnKSB8fCByb290LkJh Y2tib25lLAorICAgICAgQmFja2Zvcm0gPSByZXF1aXJlKCdiYWNrZm9ybScp IHx8IHJvb3QuQmFja2Zvcm07CisgICAgICBBbGVydGlmeSA9IHJlcXVpcmUo J2FsZXJ0aWZ5JykgfHwgcm9vdC5BbGVydGlmeTsKKyAgICAgIHBnQWRtaW4g PSByZXF1aXJlKCdwZ2FkbWluLmJyb3dzZXIubm9kZScpIHx8IHJvb3QucGdB ZG1pbi5Ccm93c2VyLk5vZGU7CisgICAgZmFjdG9yeShyb290LCBfLCAkLCBC YWNrYm9uZSwgQmFja2Zvcm0sIEFsZXJ0aWZ5LCBwZ05vZGUpOworCisgIC8v IEZpbmFsbHksIGFzIGEgYnJvd3NlciBnbG9iYWwuCisgIH0gZWxzZSB7Cisg ICAgZmFjdG9yeShyb290LCByb290Ll8sIChyb290LmpRdWVyeSB8fCByb290 LlplcHRvIHx8IHJvb3QuZW5kZXIgfHwgcm9vdC4kKSwgcm9vdC5CYWNrYm9u ZSwgcm9vdC5CYWNrZm9ybSwgcm9vdC5wZ0FkbWluLkJyb3dzZXIuTm9kZSk7 CisgIH0KK30gKHRoaXMsIGZ1bmN0aW9uKHJvb3QsIF8sICQsIEJhY2tib25l LCBCYWNrZm9ybSwgQWxlcnRpZnksIHBnTm9kZSkgeworICAvKioKKyAgICog IFZhcmlhYmxlbW9kZWwgdXNlZCB0byByZXByZXNlbnQgY29uZmlndXJhdGlv biBwYXJhbWV0ZXJzICh2YXJpYWJsZXMgdGFiKSBmb3IgZGF0YWJhc2Ugb2Jq ZWN0cy4KKyAgICoKKyAgICoqLworCisgIHZhciBWYXJpYWJsZU1vZGVsID0g cGdOb2RlLlZhcmlhYmxlTW9kZWwgPSBwZ05vZGUuTW9kZWwuZXh0ZW5kKHsK KyAgICBoYXNEYXRhYmFzZSA6IGZhbHNlLAorCisgICAgaGFzUm9sZSA6IGZh bHNlLAorCisgICAgZGVmYXVsdHM6IHsKKyAgICAgIG5hbWU6IHVuZGVmaW5l ZCwKKyAgICAgIHZhbHVlOiB1bmRlZmluZWQsCisgICAgICByb2xlOiB1bmRl ZmluZWQsCisgICAgICBkYXRhYmFzZTogdW5kZWZpbmVkLAorCisgICAgICAv KgorICAgICAgICogVGhlIGZvbGxvd2luZyBpbmZvcm1hdGlvbiBjYW4gYmUg dXNlZCB0byByZW5kZXIgdGhlIGR5bmFtaWMKKyAgICAgICAqIGNvbnRyb2xz LiBJdCBoYXMgbm90aGluZyB0byB3aXRoIHRoZSBkYXRhLgorICAgICAgICoK KyAgICAgICAqIFRoZXNlIGRhdGEgbmVlZHMgdG8gYmUgZmlsbCBpbiBieSB0 aGUgVmFyaWFibGUgRHluYW1pYyBDb250cm9sLgorICAgICAgICovCisgICAg ICB2YXJ0eXBlOiB1bmRlZmluZWQsCisgICAgICBtYXhfdmFsOiB1bmRlZmlu ZWQsCisgICAgICBtaW5fdmFsOiB1bmRlZmluZWQsCisgICAgICBlbnVtdmFs czogW10KKyAgICB9LAorICAgIGluaXRpYWxpemU6IGZ1bmN0aW9uKHZhbCwg b3B0cykgeworICAgICAgICBwZ05vZGUuTW9kZWwucHJvdG90eXBlLmluaXRp YWxpemUoYXJndW1lbnRzKTsKKyAgICAgICAgaWYgKHR5cGVvZiB2YWwgPT09 ICdzdHJpbmcnKSB7CisgICAgICAgICAgICB2YXIgaWR4ID0gdmFsLmluZGV4 T2YoJz0nKTsKKyAgICAgICAgICAgIHRoaXMuc2V0KCduYW1lJyxpZHggPiAw ID8gdmFsLnN1YnN0cmluZygwLCBpZHgpOicnLCB7c2lsZW50OnRydWV9KTsK KyAgICAgICAgICAgIHRoaXMuc2V0KCd2YWx1ZScsaWR4ID4gMCA/IHZhbC5z dWJzdHJpbmcoaWR4KzEpOicnLCB7c2lsZW50OnRydWV9KTsKKyAgICAgICAg fQorICAgIH0sCisgICAgc2NoZW1hOiBbCisgICAgICB7aWQ6ICduYW1lJywg bGFiZWw6J05hbWUnLCB0eXBlOid0ZXh0JywgZWRpdGFibGU6IGZhbHNlfSwK KyAgICAgIHtpZDogJ3ZhbHVlJywgbGFiZWw6J1ZhbHVlJywgdHlwZTogJ3Rl eHQnLCBjZWxsOiAnZHluYW1pYy12YXJpYWJsZScsIGVkaXRhYmxlOiB0cnVl fSwKKyAgICAgIHtpZDogJ2RhdGFiYXNlJywgbGFiZWw6J0RhdGFiYXNlJywg dHlwZTogJ3NlbGVjdDInLCBlZGl0YWJsZTogdHJ1ZX0sCisgICAgICB7aWQ6 ICdyb2xlJywgbGFiZWw6J1JvbGUnLCB0eXBlOiAnc2VsZWN0MicsIGVkaXRh YmxlOiB0cnVlfQorICAgIF0sCisgICAgdG9KU09OOiBmdW5jdGlvbigpIHsK KyAgICAgIHZhciBkID0gQmFja2JvbmUuTW9kZWwucHJvdG90eXBlLnRvSlNP Ti5hcHBseSh0aGlzKTsKKyAgICAgIC8vIFJlbW92ZSBtZXRhZGF0YSBiZWZv cmUgcmV0dXJuaW5nIG1vZGVsIHZhbHVlcy4KKyAgICAgIGlmICghdGhpcy5o YXNEYXRhYmFzZSkgeworICAgICAgICBkZWxldGUgZC5kYXRhYmFzZTsKKyAg ICAgIH0KKyAgICAgIGlmICghdGhpcy5oYXNSb2xlKSB7CisgICAgICAgIGRl bGV0ZSBkLnJvbGU7CisgICAgICB9CisgICAgICBkZWxldGUgZC52YXJ0eXBl OworICAgICAgZGVsZXRlIGQubWF4X3ZhbDsKKyAgICAgIGRlbGV0ZSBkLm1p bl92YWw7CisgICAgICBkZWxldGUgZC5lbnVtdmFsczsKKyAgICAgIHJldHVy biBkOworICAgIH0KKyAgfSk7CisKKyAgLyoKKyAgICogRHluYW1pYyBWYXJp YWJsZSBjZWxsLiBVc2VkIGZvciB2YXJpYWJsZSBkYXRhIHR5cGUgY29sdW1u IGluIFZhcmlhYmxlcyB0YWIuCisgICAqIEJlaGF2aW91ciBvZiBjZWxsIGRl cGVuZHMgb24gdmFyaWFibGUgZGF0YSB0eXBlLgorICAgKi8KKyAgdmFyIER5 bmFtaWNWYXJpYWJsZUNlbGwgPSBCYWNrZ3JpZC5FeHRlbnNpb24uRHluYW1p Y1ZhcmlhYmxlQ2VsbCA9IEJhY2tncmlkLkNlbGwuZXh0ZW5kKHsKKyAgICAv KgorICAgICAqIE1hcHBpbmcgb2YgcG9zdGdyZXMgZGF0YSB0eXBlIHRvIGJh Y2tncmlkIGNlbGwgdHlwZS4KKyAgICAgKi8KKyAgICB2YXJpYWJsZUNlbGxN YXBwZXI6IHsKKyAgICAgICJib29sIjpCYWNrZ3JpZC5FeHRlbnNpb24uU3dp dGNoQ2VsbCwKKyAgICAgICJlbnVtIjpCYWNrZ3JpZC5FeHRlbnNpb24uU2Vs ZWN0MkNlbGwsCisgICAgICAic3RyaW5nIjpCYWNrZ3JpZC5DZWxsLAorICAg ICAgImludGVnZXIiOkJhY2tncmlkLkludGVnZXJDZWxsLAorICAgICAgInJl YWwiOkJhY2tncmlkLk51bWJlckNlbGwKKyAgICB9LAorCisgICAgaW5pdGlh bGl6ZTogZnVuY3Rpb24gKCkgeworCisgICAgICB2YXIgdmFydHlwZSA9IHRo aXMubW9kZWwuZ2V0KCJ2YXJ0eXBlIiksCisgICAgICAgICAgY2VsbCA9IHRo aXMudmFyaWFibGVDZWxsTWFwcGVyW3ZhcnR5cGVdIHx8IEJhY2tncmlkLkNl bGwsCisgICAgICAgICAgc2VsZiA9IHRoaXM7CisgICAgICAvKgorICAgICAg ICogU2V0IHByb3BlcnRpZXMgZm9yIGR5bmFtaWMgY2VsbC4KKyAgICAgICAq LworICAgICAgXy5lYWNoKGNlbGwucHJvdG90eXBlLCBmdW5jdGlvbih2LGsp IHsKKyAgICAgICAgc2VsZltrXSA9IHY7CisgICAgICB9KTsKKworICAgICAg RHluYW1pY1ZhcmlhYmxlQ2VsbC5fX3N1cGVyX18uaW5pdGlhbGl6ZS5hcHBs eSh0aGlzLCBhcmd1bWVudHMpOworCisgICAgICBzd2l0Y2godmFydHlwZSkg eworICAgICAgICBjYXNlICJib29sIjoKKyAgICAgICAgICAvLyBUaGVyZSBh cmUgbm8gc3BlY2lmaWMgcHJvcGVydGllcyBmb3IgQm9vbGVhbkNlbGwuCisg ICAgICAgIGJyZWFrOworICAgICAgICBjYXNlICJlbnVtIjoKKyAgICAgICAg ICB2YXIgb3B0aW9ucyA9IFtdLAorICAgICAgICAgICAgZW51bXZhbHMgPSB0 aGlzLm1vZGVsLmdldCgiZW51bXZhbHMiKTsKKyAgICAgICAgICBfLmVhY2go ZW51bXZhbHMsIGZ1bmN0aW9uKGVudW12YWwpIHsKKyAgICAgICAgICAgIG9w dGlvbnMucHVzaChbZW51bXZhbCxlbnVtdmFsXSk7CisgICAgICAgICAgfSk7 CisgICAgICAgICAgdGhpcy5vcHRpb25WYWx1ZXMgPSBvcHRpb25zOworICAg ICAgICAgIHRoaXMubXVsdGlwbGUgPSBjZWxsLnByb3RvdHlwZS5tdWx0aXBs ZTsKKyAgICAgICAgICB0aGlzLmRlbGltaXRlciA9IGNlbGwucHJvdG90eXBl LmRlbGltaXRlcjsKKyAgICAgICAgICB0aGlzLmxpc3RlblRvKHRoaXMubW9k ZWwsICJiYWNrZ3JpZDplZGl0IiwgZnVuY3Rpb24gKG1vZGVsLCBjb2x1bW4s IGNlbGwsIGVkaXRvcikgeworICAgICAgICAgICAgaWYgKGNvbHVtbi5nZXQo Im5hbWUiKSA9PSB0aGlzLmNvbHVtbi5nZXQoIm5hbWUiKSkgeworICAgICAg ICAgICAgICBlZGl0b3Iuc2V0T3B0aW9uVmFsdWVzKHRoaXMub3B0aW9uVmFs dWVzKTsKKyAgICAgICAgICAgICAgZWRpdG9yLnNldE11bHRpcGxlKHRoaXMu bXVsdGlwbGUpOworICAgICAgICAgICAgfQorICAgICAgICAgIH0pOworICAg ICAgICBicmVhazsKKyAgICAgICAgY2FzZSAiaW50ZWdlciI6CisgICAgICAg ICAgdGhpcy5kZWNpbWFscyA9IDA7CisgICAgICAgICAgdGhpcy5kZWNpbWFs U2VwYXJhdG9yID0gY2VsbC5wcm90b3R5cGUuZGVjaW1hbFNlcGFyYXRvcjsK KyAgICAgICAgICB0aGlzLm9yZGVyU2VwYXJhdG9yID0gY2VsbC5wcm90b3R5 cGUub3JkZXJTZXBhcmF0b3I7CisgICAgICAgICAgdmFyIGZvcm1hdHRlciA9 IHRoaXMuZm9ybWF0dGVyOworICAgICAgICAgIGZvcm1hdHRlci5kZWNpbWFs cyA9IHRoaXMuZGVjaW1hbHM7CisgICAgICAgICAgZm9ybWF0dGVyLmRlY2lt YWxTZXBhcmF0b3IgPSB0aGlzLmRlY2ltYWxTZXBhcmF0b3I7CisgICAgICAg ICAgZm9ybWF0dGVyLm9yZGVyU2VwYXJhdG9yID0gdGhpcy5vcmRlclNlcGFy YXRvcjsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAicmVhbCI6 CisgICAgICAgICAgdGhpcy5kZWNpbWFscyA9IGNlbGwucHJvdG90eXBlLmRl Y2ltYWxzOworICAgICAgICAgIHRoaXMuZGVjaW1hbFNlcGFyYXRvciA9IGNl bGwucHJvdG90eXBlLmRlY2ltYWxTZXBhcmF0b3I7CisgICAgICAgICAgdGhp cy5vcmRlclNlcGFyYXRvciA9IGNlbGwucHJvdG90eXBlLm9yZGVyU2VwYXJh dG9yOworICAgICAgICAgIHZhciBmb3JtYXR0ZXIgPSB0aGlzLmZvcm1hdHRl cjsKKyAgICAgICAgICBmb3JtYXR0ZXIuZGVjaW1hbHMgPSB0aGlzLmRlY2lt YWxzOworICAgICAgICAgIGZvcm1hdHRlci5kZWNpbWFsU2VwYXJhdG9yID0g dGhpcy5kZWNpbWFsU2VwYXJhdG9yOworICAgICAgICAgIGZvcm1hdHRlci5v cmRlclNlcGFyYXRvciA9IHRoaXMub3JkZXJTZXBhcmF0b3I7CisgICAgICAg ICAgYnJlYWs7CisgICAgICAgIGNhc2UgInN0cmluZyI6CisgICAgICAgIGRl ZmF1bHQ6CisgICAgICAgICAgLy8gVGhlcmUgYXJlIG5vIHNwZWNpZmljIHBy b3BlcnRpZXMgZm9yIFN0cmluZ0NlbGwgYW5kIENlbGwuCisgICAgICB9Cisg ICAgfQorICB9KTsKKworICAvKioKKyAgICogVmFyaWFibGUgVGFiIENvbnRy b2wgdG8gc2V0L3VwZGF0ZSBjb25maWd1cmF0aW9uIHZhbHVlcyBmb3IgZGF0 YWJhc2Ugb2JqZWN0LgorICAgKgorICAgKiovCisgIHZhciBWYXJpYWJsZUNv bGxlY3Rpb25Db250cm9sID0gIEJhY2tmb3JtLlZhcmlhYmxlQ29sbGVjdGlv bkNvbnRyb2wgPSBCYWNrZm9ybS5VbmlxdWVDb2xDb2xsZWN0aW9uQ29udHJv bC5leHRlbmQoeworICAgIGhhc0RhdGFiYXNlIDogZmFsc2UsCisKKyAgICBo YXNSb2xlIDogZmFsc2UsCisKKyAgICBpbml0aWFsaXplOiBmdW5jdGlvbigp IHsKKyAgICAgIEJhY2tmb3JtLlVuaXF1ZUNvbENvbGxlY3Rpb25Db250cm9s LnByb3RvdHlwZS5pbml0aWFsaXplLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7 CisgICAgICAvLyBDaGVjayBpZiB2YXJpYWJsZUNvbCBjb2x1bW4gbmFtZSBp cyBwcm92aWRlZC4KKyAgICAgIGlmICghdGhpcy5maWVsZC5nZXQoJ3Zhcmlh YmxlQ29sJykpIHsKKyAgICAgICAgICBlcnJvck1zZyA9ICJEZXZlbG9wZXI6 ICd2YXJpYWJsZUNvbCcgY29sdW1uIG5hbWUgaXMgbm90IHByb3ZpZGVkLiIK KyAgICAgICAgICBhbGVydCAoZXJyb3JNc2cpOworICAgICAgICAgIHJldHVy biBudWxsOworICAgICAgfQorCisgICAgICB2YXIgY29sbGVjdGlvbiA9IHRo aXMubW9kZWwuZ2V0KHRoaXMuZmllbGQuZ2V0KCJuYW1lIikpOworICAgICAg dGhpcy5oYXNEYXRhYmFzZSA9IGNvbGxlY3Rpb24ubW9kZWwucHJvdG90eXBl Lmhhc0RhdGFiYXNlOworICAgICAgdGhpcy5oYXNSb2xlID0gY29sbGVjdGlv bi5tb2RlbC5wcm90b3R5cGUuaGFzUm9sZTsKKyAgICAgIGlmICh0aGlzLmhh c0RhdGFiYXNlICYmIHRoaXMuaGFzUm9sZSl7CisgICAgICAgIGFsZXJ0KCdE ZXZlbG9wZXI6IEJvdGggRGF0YWJhc2UgYW5kIFJvbGUgY29sdW1ucyBjYW4g bm90IGJlIHVzZWQgdG9nZXRoZXIgaW4gYFZhcmlhYmxlQ29sbGVjdGlvbkNv bnRyb2xgLicpOworICAgICAgICByZXR1cm47CisgICAgICB9CisKKyAgICAg IC8vIGdldCBhbGwgYXZhaWxhYmxlIHZhcmlhYmxlIG9wdGlvbnMgZm9yIGRh dGFiYXNlIG9iamVjdC4KKyAgICAgIHRoaXMuZ2V0VmFyaWFibGVPcHRpb25z KCk7CisgICAgICAvKgorICAgICAgICogU2V0IHRoZSBtZXRhZGF0YSB2YXJ0 eXBlLCBtaW5fdmFyLCBtYXhfdmFyLCBlbnVtdmFscyBmb3IgZWFjaCBtb2Rl bC4KKyAgICAgICAqLworICAgICAgaWYgKGNvbGxlY3Rpb24pIHsKKyAgICAg ICAgY29sbGVjdGlvbi5lYWNoKGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICBz ZWxmLnBhcnNlQW5kU2V0TW9kZWxNZXRhZGF0YShtKTsKKyAgICAgICAgfSk7 CisgICAgICB9CisgICAgfSwKKyAgICAvKgorICAgICAqIEdldCB0aGUgdmFy aWFibGUgb3B0aW9ucyBmb3IgdGhpcyBjb250cm9sLgorICAgICAqLworICAg IGdldFZhcmlhYmxlT3B0aW9uczogZnVuY3Rpb24oKSB7CisgICAgICBzZWxm ID0gdGhpczsKKyAgICAgIGlmICh0aGlzLmZpZWxkLmdldCgndXJsJykpIHsK KyAgICAgICAgdmFyIG5vZGUgPSB0aGlzLmZpZWxkLmdldCgnbm9kZScpLAor ICAgICAgICAgICAgZnVsbF91cmwgPSBub2RlLmdlbmVyYXRlX3VybC5hcHBs eSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBub2RlLCBbCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbnVsbCwgdGhpcy5maWVsZC5nZXQo J3VybCcpLCB0aGlzLmZpZWxkLmdldCgnbm9kZV9kYXRhJyksIHRydWUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZC5nZXQoJ25v ZGVfaW5mbycpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXSk7Cisg ICAgICAgICQuYWpheCh7CisgICAgICAgICAgYXN5bmM6IGZhbHNlLAorICAg ICAgICAgIHVybDogZnVsbF91cmwsCisgICAgICAgIH0pLmRvbmUoZnVuY3Rp b24gKGRhdGEpIHsKKyAgICAgICAgICBzZWxmLmZpZWxkLnNldCgib3B0aW9u cyIsZGF0YS5kYXRhKTsKKyAgICAgICAgfSk7CisgICAgICB9CisgICAgfSwK KyAgICAvKgorICAgICAqIEFkZCB0aGUgYWRkaXRpb25hbCB2YXJpYWJsZSBt ZXRhZGF0YSB0byBtb2RlbCBpbnN0YW5jZS4KKyAgICAgKiBUaGlzIG1ldGFk YXRhIHdpbGwgYmUgdXNlZCB0byBpZGVudGlmeSBjb3JyZWN0IGNvbnRyb2wg Zm9yIGNlbGwsIGNlbGwgdmFsdWUgb3B0aW9ucywKKyAgICAgKiBtaW4gdmFs dWUgcmFuZ2UgYW5kIG1heCB2YWx1ZSByYW5nZS4KKyAgICAgKi8KKyAgICBw YXJzZUFuZFNldE1vZGVsTWV0YWRhdGE6IGZ1bmN0aW9uKG0pIHsKKyAgICAg IHZhciBhdmFpbGFibGVWYXJzID0gc2VsZi5maWVsZC5nZXQoIm9wdGlvbnMi KSB8fCBbXSwKKyAgICAgICAgdmFyaWFibGVDb2wgPSBzZWxmLmZpZWxkLmdl dCgidmFyaWFibGVDb2wiKSwKKyAgICAgICAgdmFyTmFtZSA9IG0uZ2V0KHZh cmlhYmxlQ29sKSwKKyAgICAgICAgbW9kZWxEYXRhID0ge307CisKKyAgICAg IF8uZWFjaChhdmFpbGFibGVWYXJzLCBmdW5jdGlvbih2KSB7CisgICAgICAg ICAgICAgIGlmKHZhck5hbWUgPT0gdlt2YXJpYWJsZUNvbF0pIHsKKyAgICAg ICAgICAgICAgICBtb2RlbERhdGFbInZhcnR5cGUiXSA9IHZbInZhcnR5cGUi XSB8fCB1bmRlZmluZWQ7CisgICAgICAgICAgICAgICAgbW9kZWxEYXRhWyJt YXhfdmFsIl0gPSB2WyJtYXhfdmFsIl0gfHwgdW5kZWZpbmVkOworICAgICAg ICAgICAgICAgIG1vZGVsRGF0YVsibWluX3ZhbCJdID0gdlsibWluX3ZhbCJd IHx8IHVuZGVmaW5lZDsKKyAgICAgICAgICAgICAgICBtb2RlbERhdGFbImVu dW12YWxzIl0gPSB2WyJlbnVtdmFscyJdIHx8IHVuZGVmaW5lZDsKKworICAg ICAgICAgICAgICAgIHZhciB2YWwgPSBtLmdldCgidmFsdWUiKTsKKyAgICAg ICAgICAgICAgICAvLyBQYXJzZSBudW1lcmljIHZhbHVlcy4KKyAgICAgICAg ICAgICAgICBpZiAobW9kZWxEYXRhWyJ2YXJ0eXBlIl0gPT0gImludGVnZXIi ICYmICEhdmFsKSB7CisgICAgICAgICAgICAgICAgICBtb2RlbERhdGFbInZh bHVlIl0gPSBwYXJzZUludCh2YWwpOworICAgICAgICAgICAgICAgIH0gZWxz ZSBpZihtb2RlbERhdGFbInZhcnR5cGUiXSA9PSAicmVhbCIgJiYgISF2YWwp IHsKKyAgICAgICAgICAgICAgICAgIG1vZGVsRGF0YVsidmFsdWUiXSA9IHBh cnNlRmxvYXQodmFsKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgIH0KKyAgICAgICAgICAgIH0pOworCisgICAgICBtLnNldChtb2RlbERh dGEsIHtzaWxlbnQ6IHRydWV9KTsKKyAgICB9LAorICAgIGdldEhlYWRlckZv cm06IGZ1bmN0aW9uKCl7CisgICAgICBpZih0aGlzLmhhc0RhdGFiYXNlKXsK KyAgICAgICAgcmV0dXJuICQoWyI8ZGl2IGNsYXNzPSdzdWJub2RlLWhlYWRl ci1mb3JtJz4iLAorICAgICAgICAgICAgIjxkaXYgY2xhc3M9J2NvbnRhaW5l ci1mbHVpZCc+IiwKKyAgICAgICAgICAgICAgIjxkaXYgY2xhc3M9J3Jvdyc+ IiwKKyAgICAgICAgICAgICAgICAiPGRpdiBjbGFzcz0nY29sLW1kLTQnPiIs CisgICAgICAgICAgICAgICAgICAiPGxhYmVsIGNsYXNzPSdjb250cm9sLWxh YmVsJz5WYXJpYWJsZSBuYW1lPC9sYWJlbD4iLAorICAgICAgICAgICAgICAg ICI8L2Rpdj4iLAorICAgICAgICAgICAgICAgICI8ZGl2IGNsYXNzPSdjb2wt bWQtNCc+IiwKKyAgICAgICAgICAgICAgICAgICI8c2VsZWN0IGNsYXNzPSdm b3JtLWNvbnRyb2wnIG5hbWU9J3ZhcmlhYmxlJz48L3NlbGVjdD4iLAorICAg ICAgICAgICAgICAgICI8L2Rpdj4iLAorICAgICAgICAgICAgICAgICI8ZGl2 IGNsYXNzPSdjb2wtbWQtNCc+IiwKKyAgICAgICAgICAgICAgICAgICI8YnV0 dG9uIGNsYXNzPSdidG4tc20gYnRuLWRlZmF1bHQgYWRkJz5BZGQ8L2J1dHR0 b24+IiwKKyAgICAgICAgICAgICAgICAiPC9kaXY+IiwKKyAgICAgICAgICAg ICAgIjwvZGl2PiIsCisgICAgICAgICAgICAgICI8ZGl2IGNsYXNzPSdyb3cn PiIsCisgICAgICAgICAgICAgICAgIjxkaXYgY2xhc3M9J2NvbC1tZC00Jz4i LAorICAgICAgICAgICAgICAgICAgIjxsYWJlbCBjbGFzcz0nY29udHJvbC1s YWJlbCc+RGF0YWJhc2U8L2xhYmVsPiIsCisgICAgICAgICAgICAgICAgIjwv ZGl2PiIsCisgICAgICAgICAgICAgICAgIjxkaXYgY2xhc3M9J2NvbC1tZC00 Jz4iLAorICAgICAgICAgICAgICAgICAgIjxzZWxlY3QgY2xhc3M9J2Zvcm0t Y29udHJvbCcgbmFtZT0nZGF0YWJhc2UnPjwvc2VsZWN0PiIsCisgICAgICAg ICAgICAgICAgIjwvZGl2PiIsCisgICAgICAgICAgICAgICI8ZGl2PiIsCisg ICAgICAgICAgICAiPC9kaXY+IiwKKyAgICAgICAgICAiPC9kaXY+Il0uam9p bigiXG4iKSk7CisgICAgICB9IGVsc2UgaWYgKHRoaXMuaGFzUm9sZSkgewor ICAgICAgICByZXR1cm4gJChbIjxkaXYgY2xhc3M9J3N1Ym5vZGUtaGVhZGVy LWZvcm0nPiIsCisgICAgICAgICAgICAiPGRpdiBjbGFzcz0nY29udGFpbmVy LWZsdWlkJz4iLAorICAgICAgICAgICAgICAiPGRpdiBjbGFzcz0ncm93Jz4i LAorICAgICAgICAgICAgICAgICI8ZGl2IGNsYXNzPSdjb2wtbWQtNCc+IiwK KyAgICAgICAgICAgICAgICAgICI8bGFiZWwgY2xhc3M9J2NvbnRyb2wtbGFi ZWwnPlZhcmlhYmxlIG5hbWU8L2xhYmVsPiIsCisgICAgICAgICAgICAgICAg IjwvZGl2PiIsCisgICAgICAgICAgICAgICAgIjxkaXYgY2xhc3M9J2NvbC1t ZC00Jz4iLAorICAgICAgICAgICAgICAgICAgIjxzZWxlY3QgY2xhc3M9J2Zv cm0tY29udHJvbCcgbmFtZT0ndmFyaWFibGUnPjwvc2VsZWN0PiIsCisgICAg ICAgICAgICAgICAgIjwvZGl2PiIsCisgICAgICAgICAgICAgICAgIjxkaXYg Y2xhc3M9J2NvbC1tZC00Jz4iLAorICAgICAgICAgICAgICAgICAgIjxidXR0 b24gY2xhc3M9J2J0bi1zbSBidG4tZGVmYXVsdCBhZGQnPkFkZDwvYnV0dHRv bj4iLAorICAgICAgICAgICAgICAgICI8L2Rpdj4iLAorICAgICAgICAgICAg ICAiPC9kaXY+IiwKKyAgICAgICAgICAgICAgIjxkaXYgY2xhc3M9J3Jvdyc+ IiwKKyAgICAgICAgICAgICAgICAiPGRpdiBjbGFzcz0nY29sLW1kLTQnPiIs CisgICAgICAgICAgICAgICAgICAiPGxhYmVsIGNsYXNzPSdjb250cm9sLWxh YmVsJz5Sb2xlPC9sYWJlbD4iLAorICAgICAgICAgICAgICAgICI8L2Rpdj4i LAorICAgICAgICAgICAgICAgICI8ZGl2IGNsYXNzPSdjb2wtbWQtNCc+IiwK KyAgICAgICAgICAgICAgICAgICI8c2VsZWN0IGNsYXNzPSdmb3JtLWNvbnRy b2wnIG5hbWU9J3JvbGUnPjwvc2VsZWN0PiIsCisgICAgICAgICAgICAgICAg IjwvZGl2PiIsCisgICAgICAgICAgICAgICI8ZGl2PiIsCisgICAgICAgICAg ICAiPC9kaXY+IiwKKyAgICAgICAgICAiPC9kaXY+Il0uam9pbigiXG4iKSk7 CisgICAgICB9IGVsc2UgeworICAgICAgICByZXR1cm4gJChbIjxkaXYgY2xh c3M9J3N1Ym5vZGUtaGVhZGVyLWZvcm0nPiIsCisgICAgICAgICAgICAiPGRp diBjbGFzcz0nY29udGFpbmVyLWZsdWlkJz4iLAorICAgICAgICAgICAgICAi PGRpdiBjbGFzcz0ncm93Jz4iLAorICAgICAgICAgICAgICAgICI8ZGl2IGNs YXNzPSdjb2wtbWQtNCc+IiwKKyAgICAgICAgICAgICAgICAgICI8bGFiZWwg Y2xhc3M9J2NvbnRyb2wtbGFiZWwnPlZhcmlhYmxlIG5hbWU8L2xhYmVsPiIs CisgICAgICAgICAgICAgICAgIjwvZGl2PiIsCisgICAgICAgICAgICAgICAg IjxkaXYgY2xhc3M9J2NvbC1tZC00Jz4iLAorICAgICAgICAgICAgICAgICAg IjxzZWxlY3QgY2xhc3M9J2Zvcm0tY29udHJvbCcgbmFtZT0ndmFyaWFibGUn Pjwvc2VsZWN0PiIsCisgICAgICAgICAgICAgICAgIjwvZGl2PiIsCisgICAg ICAgICAgICAgICAgIjxkaXYgY2xhc3M9J2NvbC1tZC00Jz4iLAorICAgICAg ICAgICAgICAgICAgIjxidXR0b24gY2xhc3M9J2J0bi1zbSBidG4tZGVmYXVs dCBhZGQnPkFkZDwvYnV0dHRvbj4iLAorICAgICAgICAgICAgICAgICI8L2Rp dj4iLAorICAgICAgICAgICAgICAiPC9kaXY+IiwKKyAgICAgICAgICAgICI8 L2Rpdj4iLAorICAgICAgICAgICI8L2Rpdj4iXS5qb2luKCJcbiIpKTsKKyAg ICAgIH0KKyAgICB9LAorICAgIHNob3dHcmlkQ29udHJvbDogZnVuY3Rpb24o ZGF0YSkgeworICAgICAgdmFyIHNlbGYgPSB0aGlzLAorICAgICAgICAgIGdy aWRIZWFkZXIgPSBbIjxkaXYgY2xhc3M9J3N1Ym5vZGUtaGVhZGVyJz4iLAor ICAgICAgICAgICAgIjxsYWJlbCBjbGFzcz0nY29udHJvbC1sYWJlbCc+IiAr IGRhdGEubGFiZWwgKyAiPC9sYWJlbD4iLAorICAgICAgICAgICAgIjwvZGl2 PiJdLmpvaW4oIlxuIiksCisgICAgICAgICAgZ3JpZEJvZHkgPSAkKCI8ZGl2 IGNsYXNzPSdwZ2FkbWluLWNvbnRyb2wtZ3JvdXAgYmFja2dyaWQgZm9ybS1n cm91cCBjb2wteHMtMTIgb2JqZWN0IHN1Ym5vZGUnPjwvZGl2PiIpLmFwcGVu ZChncmlkSGVhZGVyKSwKKyAgICAgICAgICBncmlkSGVhZGVyRm9ybSA9IHRo aXMuZ2V0SGVhZGVyRm9ybSgpOworICAgICAgZ3JpZEJvZHkuYXBwZW5kKGdy aWRIZWFkZXJGb3JtKTsKKyAgICAgIHZhciAkc2VsZWN0VmFyaWFibGUgPSBn cmlkSGVhZGVyRm9ybS5maW5kKCdzZWxlY3RbbmFtZT12YXJpYWJsZV0nKS5l bXB0eSgpLAorICAgICAgICAgIGF2YWlsYWJsZVZhcnMgPSBzZWxmLmZpZWxk LmdldCgib3B0aW9ucyIpIHx8IFtdOworICAgICAgXy5lYWNoKGF2YWlsYWJs ZVZhcnMsIGZ1bmN0aW9uKG9wdGlvbikgeworICAgICAgICAkc2VsZWN0VmFy aWFibGUuYXBwZW5kKCQoIjxvcHRpb24+PC9vcHRpb24+IikKKyAgICAgICAg ICAuYXR0cigidmFsdWUiLCBvcHRpb24ubmFtZSkudGV4dChvcHRpb24ubmFt ZSkpOworICAgICAgfSkKKworICAgICAgJHNlbGVjdFZhcmlhYmxlLnNlbGVj dDIoKTsKKyAgICAgIGlmKHRoaXMuaGFzRGF0YWJhc2UpIHsKKyAgICAgICAg JHNlbGVjdERhdGFiYXNlID0gZ3JpZEhlYWRlckZvcm0uZmluZCgnc2VsZWN0 W25hbWU9ZGF0YWJhc2VdJykuZW1wdHkoKTsKKyAgICAgICAgJHNlbGVjdERh dGFiYXNlLmFwcGVuZCgkKCI8b3B0aW9uIHZhbHVlPSdhJz5hPC9vcHRpb24+ PG9wdGlvbiB2YWx1ZT0nYic+Yjwvb3B0aW9uPiIpKTsKKyAgICAgICAgJHNl bGVjdERhdGFiYXNlLnNlbGVjdDIoKTsKKyAgICAgIH0gZWxzZSBpZih0aGlz Lmhhc1JvbGUpIHsKKyAgICAgICAgJHNlbGVjdFJvbGUgPSBncmlkSGVhZGVy Rm9ybS5maW5kKCdzZWxlY3RbbmFtZT1yb2xlXScpLmVtcHR5KCk7CisgICAg ICAgICRzZWxlY3RSb2xlLmFwcGVuZCgkKCI8b3B0aW9uIHZhbHVlPSdhJz5h PC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nYic+Yjwvb3B0aW9uPiIpKTsKKyAg ICAgICAgJHNlbGVjdFJvbGUuc2VsZWN0MigpOworICAgICAgfQorCisgICAg ICB2YXIgc3Vibm9kZSA9IGRhdGEuc3Vibm9kZS5zY2hlbWEgPyBkYXRhLnN1 Ym5vZGUgOiBkYXRhLnN1Ym5vZGUucHJvdG90eXBlLAorICAgICAgICAgIGdy aWRTY2hlbWEgPSBCYWNrZm9ybS5nZW5lcmF0ZUdyaWRDb2x1bW5zRnJvbU1v ZGVsKAorICAgICAgICAgICAgZGF0YS5ub2RlX2luZm8sIHN1Ym5vZGUsIHRo aXMuZmllbGQuZ2V0KCdtb2RlJyksIGRhdGEuY29sdW1ucworICAgICAgICAg ICAgKSwKKyAgICAgICAgICBzZWxmID0gdGhpczsKKyAgICAgIC8vIFNldCB2 aXNpYmlsaXR5IG9mIEFkZCBidXR0b24KKyAgICAgIGlmIChkYXRhLmRpc2Fi bGVkIHx8IGRhdGEuY2FuQWRkID09IGZhbHNlKSB7CisgICAgICAgICQoZ3Jp ZEJvZHkpLmZpbmQoImJ1dHRvbi5hZGQiKS5yZW1vdmUoKTsKKyAgICAgIH0K KworICAgICAgLy8gSW5zZXJ0IERlbGV0ZSBDZWxsIGludG8gR3JpZAorICAg ICAgaWYgKGRhdGEuZGlzYWJsZWQgPT0gZmFsc2UgJiYgZGF0YS5jYW5EZWxl dGUpIHsKKyAgICAgICAgICBncmlkU2NoZW1hLmNvbHVtbnMudW5zaGlmdCh7 CisgICAgICAgICAgICBuYW1lOiAicGctYmFja2Zvcm0tZGVsZXRlIiwgbGFi ZWw6ICIiLAorICAgICAgICAgICAgY2VsbDogQmFja2dyaWQuRXh0ZW5zaW9u LkRlbGV0ZUNlbGwsCisgICAgICAgICAgICBlZGl0YWJsZTogZmFsc2UsIGNl bGxfcHJpb3JpdHk6IC0xCisgICAgICAgICAgfSk7CisgICAgICB9CisKKyAg ICAgIHZhciBjb2xsZWN0aW9uID0gdGhpcy5tb2RlbC5nZXQoZGF0YS5uYW1l KTsKKyAgICAgIC8vIEluaXRpYWxpemUgYSBuZXcgR3JpZCBpbnN0YW5jZQor ICAgICAgdmFyIGdyaWRjb2xzID0gW107CisgICAgICBfLmVhY2goZ3JpZFNj aGVtYS5jb2x1bW5zLCBmdW5jdGlvbihzY2hlbWEpeworICAgICAgICBpZiAo c2NoZW1hLm5hbWUgPT0gJ2RhdGFiYXNlJyB8fCBzY2hlbWEubmFtZSA9PSAn cm9sZScpeworICAgICAgICAgIGlmKHNlbGYuaGFzRGF0YWJhc2UgJiYgc2No ZW1hLm5hbWUgPT0gJ2RhdGFiYXNlJykgeworICAgICAgICAgICAgZ3JpZGNv bHMucHVzaChzY2hlbWEpCisgICAgICAgICAgfSBlbHNlIGlmIChzZWxmLmhh c1JvbGUgJiYgc2NoZW1hLm5hbWUgPT0gJ3JvbGUnKSB7CisgICAgICAgICAg ICBncmlkY29scy5wdXNoKHNjaGVtYSkKKyAgICAgICAgICB9CisgICAgICAg IH0gZWxzZSB7CisgICAgICAgICAgZ3JpZGNvbHMucHVzaChzY2hlbWEpOwor ICAgICAgICB9CisgICAgICB9KQorICAgICAgdmFyIGdyaWQgPSBzZWxmLmdy aWQgPSBuZXcgQmFja2dyaWQuR3JpZCh7CisgICAgICAgICAgY29sdW1uczog Z3JpZGNvbHMsCisgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbiwK KyAgICAgICAgICBjbGFzc05hbWU6ICJiYWNrZ3JpZCB0YWJsZS1ib3JkZXJl ZCIKKyAgICAgIH0pOworCisgICAgICAvLyBSZW5kZXIgc3ViTm9kZSBncmlk CisgICAgICBzdWJOb2RlR3JpZCA9IGdyaWQucmVuZGVyKCkuJGVsOworCisg ICAgICAvLyBDb21iaW5lIEVkaXQgYW5kIERlbGV0ZSBDZWxsCisgICAgICBp ZiAoZGF0YS5jYW5EZWxldGUgJiYgZGF0YS5jYW5FZGl0KSB7CisgICAgICAg ICQoc3ViTm9kZUdyaWQpLmZpbmQoInRoLnBnLWJhY2tmb3JtLWRlbGV0ZSIp LnJlbW92ZSgpOworICAgICAgfQorCisgICAgICAkZGlhbG9nID0gIGdyaWRC b2R5LmFwcGVuZChzdWJOb2RlR3JpZCk7CisKKyAgICAgIC8vIEFkZCBidXR0 b24gY2FsbGJhY2sKKyAgICAgIGlmICghKGRhdGEuZGlzYWJsZWQgfHwgZGF0 YS5jYW5BZGQgPT0gZmFsc2UpKSB7CisgICAgICAgICRkaWFsb2cuZmluZCgn YnV0dG9uLmFkZCcpLmZpcnN0KCkuY2xpY2soZnVuY3Rpb24oZSkgeworICAg ICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgdmFy IHZhck5hbWUgPSAkc2VsZWN0VmFyaWFibGUudmFsKCksCisgICAgICAgICAg ICAgIHZhcmlhYmxlQ29sID0gc2VsZi5maWVsZC5nZXQoInZhcmlhYmxlQ29s IiksCisgICAgICAgICAgICAgIG1vZGVsRGF0YSA9IHt9OworICAgICAgICAg ICAgICBtb2RlbERhdGFbdmFyaWFibGVDb2xdID0gdmFyTmFtZTsKKyAgICAg ICAgICAgIGlmKHNlbGYuaGFzRGF0YWJhc2UpeworICAgICAgICAgICAgICBt b2RlbERhdGFbJ2RhdGFiYXNlJ10gPSAkc2VsZWN0RGF0YWJhc2UudmFsKCk7 CisgICAgICAgICAgICB9IGVsc2UgaWYgKHNlbGYuaGFzUm9sZSl7CisgICAg ICAgICAgICAgIG1vZGVsRGF0YVsncm9sZSddID0gJHNlbGVjdFJvbGUudmFs KCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICQoZ3JpZC5ib2R5 LiRlbC5maW5kKCQoInRyLm5ldyIpKSkucmVtb3ZlQ2xhc3MoIm5ldyIpOwor CisgICAgICAgICAgICB2YXIgbSA9IG5ldyAoc2VsZi5maWVsZC5nZXQoJ21v ZGVsJykpKG1vZGVsRGF0YSwge3NpbGVudDogdHJ1ZX0pOworICAgICAgICAg ICAgc2VsZi5wYXJzZUFuZFNldE1vZGVsTWV0YWRhdGEobSk7CisgICAgICAg ICAgICBjb2xsZWN0aW9uLmFkZChtKTsKKyAgICAgICAgICAgIHZhciBpZHgg PSBjb2xsZWN0aW9uLmluZGV4T2YobSk7CisgICAgICAgICAgICAvLyBpZHgg bWF5IG5vdCBiZSBhbHdheXMgPiAtMSBiZWNhdXNlIG91ciBVbmlxdWVDb2xD b2xsZWN0aW9uIG1heSByZW1vdmUgJ20nIGlmIGR1cGxpY2F0ZSB2YWx1ZSBm b3VuZC4KKyAgICAgICAgICAgIGlmIChpZHggPiAtMSkgeworICAgICAgICAg ICAgICB2YXIgbmV3Um93ID0gZ3JpZC5ib2R5LnJvd3NbaWR4XS4kZWw7Cisg ICAgICAgICAgICAgIG5ld1Jvdy5hZGRDbGFzcygibmV3Iik7CisgICAgICAg ICAgICAgICQobmV3Um93KS5wZ01ha2VWaXNpYmxlKCdiYWNrZm9ybS10YWIn KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK KyAgICAgICAgfSk7CisgICAgICB9CisgICAgICByZXR1cm4gJGRpYWxvZzsK KyAgICB9CisgIH0pCisKKyAgcmV0dXJuIFZhcmlhYmxlTW9kZWwKK30pKTsK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25v ZGUudWkuanMgYi93ZWIvcGdhZG1pbi9icm93c2VyL3N0YXRpYy9qcy9ub2Rl LnVpLmpzCmluZGV4IDE0MTJjYzguLmQzODViNmYgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc3RhdGljL2pzL25vZGUudWkuanMKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zdGF0aWMvanMvbm9kZS51aS5qcwpAQCAt MTc2LDUgKzE3Niw1MCBAQCBmdW5jdGlvbigkLCBfLCBwZ0FkbWluLCBCYWNr Ym9uZSwgQmFja2Zvcm0sIEFsZXJ0aWZ5LCBOb2RlKSB7CiAgICAgfSkKICAg fSk7CiAKKyAgLyoKKyAgICogR2xvYmFsIGZ1bmN0aW9uIHRvIG1ha2Ugdmlz aWJsZSAgcGFydGljdWxhciBkb20gZWxlbWVudCBpbiBpdCdzIHBhcmVudAor ICAgKiB3aXRoIGdpdmVuIGNsYXNzLgorICAgKi8KKyAgJC5mbi5wZ01ha2VW aXNpYmxlID0gZnVuY3Rpb24oIGNscyApIHsKKyAgICByZXR1cm4gdGhpcy5l YWNoKGZ1bmN0aW9uKCkgeworICAgICAgaWYgKCF0aGlzIHx8ICEkKHRoaXMu bGVuZ3RoKSkKKyAgICAgICAgcmV0dXJuOworICAgICAgdmFyIHRvcCwgcCA9 ICQodGhpcyksIGhhc1Njcm9sbGJhciA9IGZ1bmN0aW9uKGopIHsKKyAgICAg ICAgaWYgKGogJiYgai5sZW5ndGggPiAwKSB7CisgICAgICAgICAgcmV0dXJu IGouZ2V0KDApLnNjcm9sbEhlaWdodCA+IGouaGVpZ2h0KCk7CisgICAgICAg IH0KKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgfTsKKworICAgICAg d2hpbGUocCkgeworICAgICAgICB0b3AgPSBwLmdldCgwKS5vZmZzZXRUb3Ag KyBwLmhlaWdodCgpOworICAgICAgICBwID0gcC5wYXJlbnQoKTsKKyAgICAg ICAgaWYgKGhhc1Njcm9sbGJhcihwKSkgeworICAgICAgICAgIHAuc2Nyb2xs VG9wKHRvcCk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHAuaGFzQ2xhc3Mo Y2xzKSkgLy8nYmFja2Zvcm0tdGFiJworICAgICAgICAgIHJldHVybjsKKyAg ICAgIH0KKyAgICB9KTsKKyAgfQorCisgIC8qCisgICAqICBCYWNrZm9ybSBT ZWxlY3QyQWpheE9wdGlvbnMgY29udHJvbC4KKyAgICovCisgIHZhciBTZWxl Y3QyQWpheE9wdGlvbnNDb250cm9sID0gQmFja2Zvcm0uU2VsZWN0MkFqYXhP cHRpb25zQ29udHJvbCA9IEJhY2tmb3JtLk5vZGVBamF4T3B0aW9uc0NvbnRy b2wuZXh0ZW5kKHsKKyAgICByZW5kZXI6IGZ1bmN0aW9uKCkgeworCisgICAg ICB2YXIgb3B0aW9ucyA9IHRoaXMuZmllbGQuZ2V0KCdvcHRpb25zJykgfHwg W107CisKKyAgICAgIEJhY2tmb3JtLk5vZGVBamF4T3B0aW9uc0NvbnRyb2wu cHJvdG90eXBlLnJlbmRlci5hcHBseSh0aGlzLCBhcmd1bWVudHMpOworCisg ICAgICB2YXIgY29sID0gXy5kZWZhdWx0cyh0aGlzLmZpZWxkLnRvSlNPTigp LCB0aGlzLmRlZmF1bHRzKQorICAgICAgLyogQWRkIGVtcHR5IG9wdGlvbiBh cyBTZWxlY3QyIHJlcXVpcmVzIGFueSBlbXB0eSAnPG9wdGlvbj48b3B0aW9u PicgZm9yCisgICAgICAgKiBzb21lIG9mIGl0cyBmdW5jdGlvbmFsaXR5IHRv IHdvcmsgYW5kIGluaXRpYWxpemUgc2VsZWN0MiBjb250cm9sLgorICAgICAg ICovCisgICAgICB0aGlzLiRlbC5maW5kKCJzZWxlY3QiKS5hcHBlbmQoJCgn PG9wdGlvbj48L29wdGlvbj4nKS5zZWxlY3QyKGNvbC5zZWxlY3QyKTsKKyAg ICAgIHJldHVybiB0aGlzOworICAgIH0KKyAgfSk7CiAgIHJldHVybiBCYWNr Zm9ybS5Ob2RlTGlzdENvbnRyb2w7CiB9KTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL3N0YXRpYy9jc3Mvb3ZlcnJpZGVzLmNzcyBiL3dlYi9wZ2FkbWlu L3N0YXRpYy9jc3Mvb3ZlcnJpZGVzLmNzcwppbmRleCA2ZDBmNjYyLi4zZWM0 ZDZmIDEwMDc1NQotLS0gYS93ZWIvcGdhZG1pbi9zdGF0aWMvY3NzL292ZXJy aWRlcy5jc3MKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2Nzcy9vdmVycmlk ZXMuY3NzCkBAIC02MTEsMyArNjExLDIwIEBAIHRhYmxlLmJhY2tncmlkIHRy Lm5ldyB7CiAgICAgcmlnaHQ6IDBweDsKICAgICBib3R0b20gOjA7CiB9Cisu c3Vibm9kZS1oZWFkZXItZm9ybSB7CisgICAgYmFja2dyb3VuZC1jb2xvcjoj MmM3NmI0OworICAgIGNvbG9yOiNGRkZGRkY7CisgICAgcGFkZGluZzozcHgg MCAxMHB4IDA7Cit9CisKKy5zdWJub2RlLWhlYWRlci1mb3JtIGJ1dHRvbi5h ZGQgeworICAgIGZsb2F0OnJpZ2h0OworICAgIG1hcmdpbi1yaWdodDoxNXB4 OworfQorCisuc2VsZWN0MiB7CisgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7 Cit9Cisuc2VsZWN0Mi1zZWFyY2hfX2ZpZWxkLCBzZWxlY3R7CisgIGJhY2tn cm91bmQ6aW5oZXJpdCAhaW1wb3J0YW50OworfQpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3N0YXRpYy9q cy9iYWNrZm9ybS5wZ2FkbWluLmpzIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pz L2JhY2tmb3JtLnBnYWRtaW4uanMKaW5kZXggMzVkYWFlZC4uNDg5M2Y0NSAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2JhY2tmb3JtLnBn YWRtaW4uanMKKysrIGIvd2ViL3BnYWRtaW4vc3RhdGljL2pzL2JhY2tmb3Jt LnBnYWRtaW4uanMKQEAgLTc0LDcgKzc0LDggQEAKICAgICAnbXVsdGlsaW5l JzogWyd0ZXh0YXJlYScsICd0ZXh0YXJlYScsICdzdHJpbmcnXSwKICAgICAn Y29sbGVjdGlvbic6IFsnc3ViLW5vZGUtY29sbGVjdGlvbicsICdzdWItbm9k ZS1jb2xsZWN0aW9uJywgJ3N0cmluZyddLAogICAgICd1bmlxdWVDb2xDb2xs ZWN0aW9uJzogWyd1bmlxdWUtY29sLWNvbGxlY3Rpb24nLCAndW5pcXVlLWNv bC1jb2xsZWN0aW9uJywgJ3N0cmluZyddLAotICAgICdzd2l0Y2gnIDogJ3N3 aXRjaCcKKyAgICAnc3dpdGNoJyA6ICdzd2l0Y2gnLAorICAgICdzZWxlY3Qy JzogJ3NlbGVjdDInLAogICB9OwogCiAgIHZhciBnZXRNYXBwZWRDb250cm9s ID0gQmFja2Zvcm0uZ2V0TWFwcGVkQ29udHJvbCA9IGZ1bmN0aW9uKHR5cGUs IG1vZGUpIHsKQEAgLTU4OSw3ICs1OTAsNyBAQAogICAgICAgICB9KTsKIAog ICAgICAgICAvLyBDaGVjayBpZiB1bmlxdWUgY29sdW1ucyBwcm92aWRlZCBh cmUgYWxzbyBpbiBtb2RlbCBhdHRyaWJ1dGVzLgotICAgICAgICBpZiAodW5p cXVlQ29sLmxlbmd0aCA+IF8uaW50ZXJzZWN0aW9uKGNvbHVtbnMsIHVuaXF1 ZUNvbCkubGVuZ3RoKXsKKyAgICAgICAgaWYgKHVuaXF1ZUNvbC5sZW5ndGgg PiBfLmludGVyc2VjdGlvbihjb2x1bW5zLCB1bmlxdWVDb2wpLmxlbmd0aCkg ewogICAgICAgICAgICAgZXJyb3JNc2cgPSAiRGV2ZWxvcGVyOiBVbmlxdWUg Y29sdW1uL3MgWyAiK18uZGlmZmVyZW5jZSh1bmlxdWVDb2wsIGNvbHVtbnMp KyIgXSBub3QgZm91bmQgaW4gY29sbGVjdGlvbiBtb2RlbCBbICIgKyBjb2x1 bW5zICsiIF0uIgogICAgICAgICAgICAgYWxlcnQgKGVycm9yTXNnKTsKICAg ICAgICAgfQpAQCAtNjEwLDExICs2MTEsMTEgQEAKICAgICBjb2xsZWN0aW9u Q2hhbmdlZDogZnVuY3Rpb24obmV3TW9kZWwsIGNvbGwsIG9wKSB7CiAgICAg ICAgIHZhciB1bmlxdWVDb2wgPSB0aGlzLmZpZWxkLmdldCgndW5pcXVlQ29s JykgfHwgW10sCiAgICAgICAgICAgICB1bmlxdWVDaGFuZ2VkQXR0ciA9IFtd LAotICAgICAgICAgICAgY2hhbmdlZEF0dHIgPSBuZXdNb2RlbC5jaGFuZ2Vk QXR0cmlidXRlcygpOworICAgICAgICAgICAgc2VsZiA9IHRoaXM7CiAgICAg ICAgIC8vIENoZWNrIGlmIGNoYW5nZWQgbW9kZWwgYXR0cmlidXRlcyBhcmUg YWxzbyBpbiB1bmlxdWUgY29sdW1ucy4gQW5kIHRoZW4gb25seSBjaGVjayBm b3IgdW5pcXVlbmVzcy4KLSAgICAgICAgaWYgKGNoYW5nZWRBdHRyKSB7Cisg ICAgICAgIGlmIChuZXdNb2RlbC5hdHRyaWJ1dGVzKSB7CiAgICAgICAgICAg ICBfLmVhY2godW5pcXVlQ29sLCBmdW5jdGlvbihjb2wpIHsKLSAgICAgICAg ICAgICAgICBpZiAoIF8uaGFzKGNoYW5nZWRBdHRyLGNvbCkpCisgICAgICAg ICAgICAgICAgaWYgKCBfLmhhcyhuZXdNb2RlbC5hdHRyaWJ1dGVzLGNvbCkp CiAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIHVuaXF1 ZUNoYW5nZWRBdHRyLnB1c2goY29sKTsKICAgICAgICAgICAgICAgICB9CkBA IC02MjksNyArNjMwLDkgQEAKICAgICAgICAgdmFyIGNvbGxlY3Rpb24gPSB0 aGlzLm1vZGVsLmdldCh0aGlzLmZpZWxkLmdldCgnbmFtZScpKTsKICAgICAg ICAgdGhpcy5zdG9wTGlzdGVuaW5nKGNvbGxlY3Rpb24sICJjaGFuZ2UiLCB0 aGlzLmNvbGxlY3Rpb25DaGFuZ2VkKTsKICAgICAgICAgLy8gQ2hlY2sgaWYg Y2hhbmdlZCBhdHRyaWJ1dGUncyB2YWx1ZSBvZiBuZXcvdXBkYXRlZCBtb2Rl bCBhbHNvIGV4aXN0IGZvciBhbm90aGVyIG1vZGVsIGluIGNvbGxlY3Rpb24u Ci0gICAgICAgIC8vIElmIGR1cGxpY2F0ZSB2YWx1ZSBleGlzdHMgdGhlbiBz ZXQgdGhlIGF0dHJpYnV0ZSdzIHZhbHVlIG9mIG5ldy91cGRhdGVkIG1vZGVs IHRvIGl0J3MgcHJldmlvdXMgdmFsdWVzLgorICAgICAgICAvLyBJZiBkdXBs aWNhdGUgdmFsdWUgZXhpc3RzIHRoZW4gc2V0IHRoZSBhdHRyaWJ1dGUncyB2 YWx1ZSBvZiBuZXcvdXBkYXRlZCBtb2RlbCB0byBpdHMgcHJldmlvdXMgdmFs dWVzLgorICAgICAgICB2YXIgbSA9IHVuZGVmaW5lZCwKKyAgICAgICAgICAg IG9sZE1vZGVsID0gdW5kZWZpbmVkOwogICAgICAgICBjb2xsZWN0aW9uLmVh Y2goZnVuY3Rpb24obW9kZWwpIHsKICAgICAgICAgICAgIGlmIChuZXdNb2Rl bCAhPSBtb2RlbCkgewogICAgICAgICAgICAgICAgIHZhciBkdXBsaWNhdGVB dHRyVmFsdWVzID0gW10KQEAgLTYzOSwxMiArNjQyLDQxIEBACiAgICAgICAg ICAgICAgICAgICAgICAgICBkdXBsaWNhdGVBdHRyVmFsdWVzLnB1c2goYXR0 clZhbHVlKQogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg ICAgfSk7Ci0gICAgICAgICAgICAgICAgaWYgKGR1cGxpY2F0ZUF0dHJWYWx1 ZXMubGVuZ3RoID09IHVuaXF1ZUNvbC5sZW5ndGgpewotICAgICAgICAgICAg ICAgICAgICAgbmV3TW9kZWwuc2V0KHVuaXF1ZUNoYW5nZWRBdHRyWzBdLCBu ZXdNb2RlbC5wcmV2aW91cyh1bmlxdWVDaGFuZ2VkQXR0clswXSksIHtzaWxl bnQ6IHRydWV9KTsKLSAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE8tIE5l ZWQgdG8gYWRkIG5vdGlmaWNhdGlvbiBpbiBzdGF0dXMgYmFyIGZvciB1bmlx dWUgY29sdW1uLgorICAgICAgICAgICAgICAgIGlmIChkdXBsaWNhdGVBdHRy VmFsdWVzLmxlbmd0aCA9PSB1bmlxdWVDb2wubGVuZ3RoKSB7CisgICAgICAg ICAgICAgICAgICBtID0gbmV3TW9kZWw7CisgICAgICAgICAgICAgICAgICAv LyBLZWVwIHJlZmVyZW5jZSBvZiBtb2RlbCB0byBtYWtlIGl0IHZpc2libGUg aW4gZGlhbG9nLgorICAgICAgICAgICAgICAgICAgb2xkTW9kZWwgPSBtb2Rl bDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAg IH0pOworICAgICAgICBpZiAobSkgeworICAgICAgICAgIGlmIChvcCAmJiBv cC5hZGQpIHsKKyAgICAgICAgICAgIC8vIFJlbW92ZSBkdXBsaWNhdGUgbW9k ZWwuCisgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgeworICAg ICAgICAgICAgICBjb2xsZWN0aW9uLnJlbW92ZShtKTsKKyAgICAgICAgICAg IH0sIDApOworCisgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIC8q CisgICAgICAgICAgICAgKiBTZXQgbW9kZWwgdmFsdWUgdG8gaXRzIHByZXZp b3VzIHZhbHVlIGFzIGl0cyBuZXcgdmFsdWUgaXMKKyAgICAgICAgICAgICAq IGNvbmZsaWN0aW5nIHdpdGggYW5vdGhlciBtb2RlbCB2YWx1ZS4KKyAgICAg ICAgICAgICAqLworCisgICAgICAgICAgICBtLnNldCh1bmlxdWVDaGFuZ2Vk QXR0clswXSwgbS5wcmV2aW91cyh1bmlxdWVDaGFuZ2VkQXR0clswXSksIHtz aWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKG9s ZE1vZGVsKSB7CisgICAgICAgICAgICB2YXIgaWR4ID0gY29sbGVjdGlvbi5p bmRleE9mKG9sZE1vZGVsKTsKKyAgICAgICAgICAgIGlmIChpZHggPiAtMSkg eworICAgICAgICAgICAgICB2YXIgbmV3Um93ID0gc2VsZi5ncmlkLmJvZHku cm93c1tpZHhdLiRlbDsKKyAgICAgICAgICAgICAgbmV3Um93LmFkZENsYXNz KCJuZXciKTsKKyAgICAgICAgICAgICAgJChuZXdSb3cpLnBnTWFrZVZpc2li bGUoJ2JhY2tmb3JtLXRhYicpOworICAgICAgICAgICAgICBzZXRUaW1lb3V0 KGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICAgIG5ld1Jvdy5yZW1vdmVD bGFzcygibmV3Iik7CisgICAgICAgICAgICAgICAgfSwgMzAwMCk7CisgICAg ICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAg dGhpcy5saXN0ZW5Ubyhjb2xsZWN0aW9uLCAiY2hhbmdlIiwgdGhpcy5jb2xs ZWN0aW9uQ2hhbmdlZCk7CiAgICAgfSwKICAgICByZW5kZXI6IGZ1bmN0aW9u KCkgewpAQCAtNzA5LDcgKzc0MSw3IEBACiAKICAgICAgIHZhciBjb2xsZWN0 aW9uID0gdGhpcy5tb2RlbC5nZXQoZGF0YS5uYW1lKTsKICAgICAgIC8vIElu aXRpYWxpemUgYSBuZXcgR3JpZCBpbnN0YW5jZQotICAgICAgdmFyIGdyaWQg PSBuZXcgQmFja2dyaWQuR3JpZCh7CisgICAgICB2YXIgZ3JpZCA9IHNlbGYu Z3JpZCA9IG5ldyBCYWNrZ3JpZC5HcmlkKHsKICAgICAgICAgICBjb2x1bW5z OiBncmlkU2NoZW1hLmNvbHVtbnMsCiAgICAgICAgICAgY29sbGVjdGlvbjog Y29sbGVjdGlvbiwKICAgICAgICAgICBjbGFzc05hbWU6ICJiYWNrZ3JpZCB0 YWJsZS1ib3JkZXJlZCIKQEAgLTczMywxOCArNzY1LDE4IEBACiAKICAgICAg ICAgICAgIC8vIElmIGFsbG93TXVsdGlwbGVFbXB0eVJvd3MgaXMgbm90IHNl dCBvciBpcyBmYWxzZSB0aGVuIGRvbid0IGFsbG93IHNlY29uZCBuZXcgZW1w dHkgcm93LgogICAgICAgICAgICAgLy8gVGhlcmUgc2hvdWxkIGJlIG9ubHkg b25lIGVtcHR5IHJvdy4KLSAgICAgICAgICAgIGlmICghYWxsb3dNdWx0aXBs ZUVtcHR5Um93cyAmJiBjb2xsZWN0aW9uKXsKKyAgICAgICAgICAgIGlmICgh YWxsb3dNdWx0aXBsZUVtcHR5Um93cyAmJiBjb2xsZWN0aW9uKSB7CiAgICAg ICAgICAgICAgICAgdmFyIGlzRW1wdHkgPSBmYWxzZTsKLSAgICAgICAgICAg ICAgICBjb2xsZWN0aW9uLmVhY2goZnVuY3Rpb24obW9kZWwpeworICAgICAg ICAgICAgICAgIGNvbGxlY3Rpb24uZWFjaChmdW5jdGlvbihtb2RlbCkgewog ICAgICAgICAgICAgICAgICAgICB2YXIgbW9kZWxWYWx1ZXMgPSBbXTsKLSAg ICAgICAgICAgICAgICAgICAgXy5lYWNoKG1vZGVsLmF0dHJpYnV0ZXMsIGZ1 bmN0aW9uKHZhbCwga2V5KXsKKyAgICAgICAgICAgICAgICAgICAgXy5lYWNo KG1vZGVsLmF0dHJpYnV0ZXMsIGZ1bmN0aW9uKHZhbCwga2V5KSB7CiAgICAg ICAgICAgICAgICAgICAgICAgICBtb2RlbFZhbHVlcy5wdXNoKHZhbCk7CiAg ICAgICAgICAgICAgICAgICAgIH0pCi0gICAgICAgICAgICAgICAgICAgIGlm KCFfLnNvbWUobW9kZWxWYWx1ZXMsIF8uaWRlbnRpdHkpKXsKKyAgICAgICAg ICAgICAgICAgICAgaWYoIV8uc29tZShtb2RlbFZhbHVlcywgXy5pZGVudGl0 eSkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGlzRW1wdHkgPSB0cnVl OwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSk7 Ci0gICAgICAgICAgICAgICAgaWYoaXNFbXB0eSl7CisgICAgICAgICAgICAg ICAgaWYoaXNFbXB0eSkgewogICAgICAgICAgICAgICAgICAgICByZXR1cm4g ZmFsc2U7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpAQCAt NzUzLDkgKzc4NSwxMCBAQAogICAgICAgICAgICAgdmFyIG0gPSBuZXcgKGRh dGEubW9kZWwpKG51bGwsIHtzaWxlbnQ6IHRydWV9KTsKICAgICAgICAgICAg IGNvbGxlY3Rpb24uYWRkKG0pOwogCi0gICAgICAgICAgICB2YXIgaWR4ID0g Y29sbGVjdGlvbi5pbmRleE9mKG0pOwotICAgICAgICAgICAgbmV3Um93ID0g Z3JpZC5ib2R5LnJvd3NbaWR4XS4kZWw7CisgICAgICAgICAgICB2YXIgaWR4 ID0gY29sbGVjdGlvbi5pbmRleE9mKG0pLAorICAgICAgICAgICAgICBuZXdS b3cgPSBncmlkLmJvZHkucm93c1tpZHhdLiRlbDsKICAgICAgICAgICAgIG5l d1Jvdy5hZGRDbGFzcygibmV3Iik7CisgICAgICAgICAgICAkKG5ld1Jvdyku cGdNYWtlVmlzaWJsZSgnYmFja2Zvcm0tdGFiJyk7CiAgICAgICAgICAgICBy ZXR1cm4gZmFsc2U7CiAgICAgICAgIH0pOwogICAgICAgfQpAQCAtODY5LDcg KzkwMiw3IEBACiAgICAgICB9CiAKICAgICAgIC8vIEluaXRpYWxpemUgYSBu ZXcgR3JpZCBpbnN0YW5jZQotICAgICAgdmFyIGdyaWQgPSBuZXcgQmFja2dy aWQuR3JpZCh7CisgICAgICB2YXIgZ3JpZCA9IHNlbGYuZ3JpZCA9IG5ldyBC YWNrZ3JpZC5HcmlkKHsKICAgICAgICAgICBjb2x1bW5zOiBncmlkU2NoZW1h LmNvbHVtbnMsCiAgICAgICAgICAgY29sbGVjdGlvbjogY29sbGVjdGlvbiwK ICAgICAgICAgICBjbGFzc05hbWU6ICJiYWNrZ3JpZCB0YWJsZS1ib3JkZXJl ZCIKQEAgLTg5MCwxMCArOTIzLDExIEBACiAgICAgICAkZGlhbG9nLmZpbmQo J2J1dHRvbi5hZGQnKS5jbGljayhmdW5jdGlvbihlKSB7CiAgICAgICAgIGUu cHJldmVudERlZmF1bHQoKTsKICAgICAgICAgZ3JpZC5pbnNlcnRSb3coe30p OwotICAgICAgICBuZXdSb3cgPSAkKGdyaWQuYm9keS5yb3dzW2NvbGxlY3Rp b24ubGVuZ3RoIC0gMV0uJGVsKTsKKyAgICAgICAgdmFyIG5ld1JvdyA9ICQo Z3JpZC5ib2R5LnJvd3NbY29sbGVjdGlvbi5sZW5ndGggLSAxXS4kZWwpOwog ICAgICAgICBuZXdSb3cuYXR0cigiY2xhc3MiLCAibmV3IikuY2xpY2soZnVu Y3Rpb24oZSkgewogICAgICAgICAgICQodGhpcykuYXR0cigiY2xhc3MiLCAi Iik7CiAgICAgICAgIH0pOworICAgICAgICAkKG5ld1JvdykucGdNYWtlVmlz aWJsZSgnYmFja2Zvcm0tdGFiJyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK ICAgICAgIH0pOwogCkBAIC0xMTQxLDExICsxMTc1LDEzIEBACiAgICAgICAg ICAgICBzY2hlbWFfbm9kZTogc2NoZW1hX25vZGUsCiAgICAgICAgICAgICB2 aXNpYmxlOiAobW9kZSA9PSAncHJvcGVydGllcyc/CiAgICAgICAgICAgICAg ICh2ZXJfaW5fbGltaXQgPwotICAgICAgICAgICAgICAgKHMudmVyc2lvbiB8 fCB0cnVlKSA6IGZhbHNlKSA6IHMudmVyc2lvbiB8fCB0cnVlKQorICAgICAg ICAgICAgICAgKHMudmVyc2lvbiB8fCB0cnVlKSA6IGZhbHNlKSA6IHMudmVy c2lvbiB8fCB0cnVlKSwKKyAgICAgICAgICAgIG5vZGU6IG5vZGUsCisgICAg ICAgICAgICBub2RlX2RhdGE6IHRyZWVEYXRhCiAgICAgICAgICAgfSk7CiAg ICAgICAgICAgZGVsZXRlIG8uaWQ7CiAKLSAgICAgICAgICAvLyBUZW1wb3Jh cmlseSBzdG9yZSBpbiBkaWN0aW9uYWx5IGZvcm1hdCBmb3IKKyAgICAgICAg ICAvLyBUZW1wb3JhcmlseSBzdG9yZSBpbiBkaWN0aW9uYXJ5IGZvcm1hdCBm b3IKICAgICAgICAgICAvLyB1dGlsaXppbmcgaXQgbGF0ZXIuCiAgICAgICAg ICAgZ3JvdXBzW2dyb3VwXS5wdXNoKG8pOwogICAgICAgICB9Cg== --001a11c2e96470dc730528b98002 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 --001a11c2e96470dc730528b98002--