Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aItea-0001UI-Dp for pgadmin-hackers@arkaria.postgresql.org; Tue, 12 Jan 2016 07:46:08 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aItea-0005uB-0e for pgadmin-hackers@arkaria.postgresql.org; Tue, 12 Jan 2016 07:46:08 +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 1aIteY-0005tl-2O for pgadmin-hackers@postgresql.org; Tue, 12 Jan 2016 07:46:06 +0000 Received: from mail-wm0-x229.google.com ([2a00:1450:400c:c09::229]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aIteU-0000um-Eg for pgadmin-hackers@postgresql.org; Tue, 12 Jan 2016 07:46:04 +0000 Received: by mail-wm0-x229.google.com with SMTP id f206so242241482wmf.0 for ; Mon, 11 Jan 2016 23:46:02 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :content-type; bh=XfKq8eIcSKCzJxHEAwIVnvfvHkwGo2bcqc5cytBc+GU=; b=FnRvOKHfgZ8dw5VUIprSQ1lMFZ3b0KOm/zN4EuiZjVwOpXdF4AiXDJF8ILGglk9T6s p5pj8Bbo66XoORPmwFrHZ/whVn8SEIFi6mCyA16q1YmWGcdT0g9tCIKLmt9P4inH6n7Y W0kX049QwL6RfcPxHXXd5dkwTdhDoCj+dwMK29er3lVnxIFCZx61ukH06brOdyLnH0iN xPGhYToLf+6BQWctazbkmPb9d2tfx9eCm53cLLyoXyyZkoke7pvHrZmRWhKiAjM9xGx0 rSjpJCC16NbbYJVXQW+xZwmegUV6PisHf9Gunq9o4Eh/xxlcOBvu/DGcuGoeaYAkAkw9 pUuA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:content-type; bh=XfKq8eIcSKCzJxHEAwIVnvfvHkwGo2bcqc5cytBc+GU=; b=W940TfcvCP6Fl2dbryoBaVVLBWmA8mymUYdw0WIyoKQvRGLGSK28rzWOFsNzbqSDe7 79mdUE+YaPh1Tl2PUX7+2eFff+4aE7X/d0PGjkUjwWp69FGrCmFmV1947eHPyMMaacWc hqdRSqXSovhShF05/e2q/ubpcVrv1YyaO9tSbwQfQL2OCPI3CqUJU1qabUUgXkMnUSDd NzHciE4UOfBm3DB2JZmDw7ogOpXPHeX2e0xExNRM+IXoDT4VmiWXQ8ebUByT9nckOnWE ESx9YcSVwUvFNZPLxi26pVERUVHJsKT4OpGm2IiHUyK/o5yWKQJlDlkTL614E8rZFEZ9 gpGA== X-Gm-Message-State: ALoCoQlerjdLyy+gc1OSRyuNz5c/ut40JvcMMnrHQwRl95BPSsPegmCIiymCvvSJCW8pNLqyFGRqkCmyu1B0ethNEGoDTSMs2/BFo1d7DVGGKW9fyN0+8ls= X-Received: by 10.28.7.72 with SMTP id 69mr7406189wmh.50.1452584760801; Mon, 11 Jan 2016 23:46:00 -0800 (PST) MIME-Version: 1.0 Received: by 10.28.15.66 with HTTP; Mon, 11 Jan 2016 23:45:31 -0800 (PST) In-Reply-To: References: From: Surinder Kumar Date: Tue, 12 Jan 2016 13:15:31 +0530 Message-ID: Subject: Re: [pgAdmin4] [Patch]: Extension Module To: pgadmin-hackers@postgresql.org Content-Type: multipart/mixed; boundary=001a11443a3aacad4a05291e3e83 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 --001a11443a3aacad4a05291e3e83 Content-Type: multipart/alternative; boundary=001a11443a3aacad4505291e3e81 --001a11443a3aacad4505291e3e81 Content-Type: text/plain; charset=UTF-8 Please find the updated patch with following changes: 1. corrected copyright. 2. Added proper comment for script_module function in __init__.py file. 3. Renamed collection Node's label to Extensions in extensions.js file. On Tue, Jan 12, 2016 at 12:44 PM, Surinder Kumar < surinder.kumar@enterprisedb.com> wrote: > Hi, > > Please find attached patch for the extension module. > Please review it and Let me know for any comments. > > > Thanks, > Surinder Kumar > --001a11443a3aacad4505291e3e81 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Please find the updated patch with following changes:
=
  1. corrected copyright.
  2. Added proper comment for script_module= function in __init__.py file.
  3. Renamed collection Node's label = to Extensions in extensions.js file.

On Tue, Jan 12, 2016 at 12:44 PM, = Surinder Kumar <surinder.kumar@enterprisedb.com> wrote:
Hi,
=

Please find attached patch for the extension module.Please review it and Let me know for any comments.


Thanks,
Surinder Kumar

--001a11443a3aacad4505291e3e81-- --001a11443a3aacad4a05291e3e83 Content-Type: text/x-patch; charset=US-ASCII; name="extension.patch" Content-Disposition: attachment; filename="extension.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ijb3a32x1 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlbnNpb25zL19faW5pdF9fLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL2V4dGVuc2lvbnMvX19pbml0X18ucHkKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMzNmM2ZiYQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9leHRlbnNpb25zL19faW5pdF9fLnB5CkBAIC0wLDAgKzEs MzU2IEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBw Z0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAo QykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0K KyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdy ZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCitpbXBvcnQganNvbgorZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3Rl bXBsYXRlLCBtYWtlX3Jlc3BvbnNlLCByZXF1ZXN0LCBqc29uaWZ5Citmcm9t IGZsYXNrLmV4dC5iYWJlbCBpbXBvcnQgZ2V0dGV4dAorZnJvbSBwZ2FkbWlu LnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgXAorICAg IG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNwb25zZSwgaW50ZXJuYWxfc2Vy dmVyX2Vycm9yCitmcm9tIHBnYWRtaW4uYnJvd3Nlci51dGlscyBpbXBvcnQg Tm9kZVZpZXcKK2Zyb20gcGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24gaW1w b3J0IENvbGxlY3Rpb25Ob2RlTW9kdWxlCitpbXBvcnQgcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy5kYXRhYmFzZXMgYXMgZGF0YWJh c2VzCitmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgcHJlY29uZGl0 aW9uX3JlcXVpcmVkCitmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9y dCBnZXRfZHJpdmVyCitmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9E UklWRVIKK2Zyb20gZnVuY3Rvb2xzIGltcG9ydCB3cmFwcworCisKK2NsYXNz IEV4dGVuc2lvbk1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CisgICAg Tk9ERV9UWVBFID0gImV4dGVuc2lvbiIKKyAgICBDT0xMRUNUSU9OX0xBQkVM ID0gZ2V0dGV4dCgiRXh0ZW5zaW9ucyIpCisKKyAgICBkZWYgX19pbml0X18o c2VsZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoRXh0ZW5z aW9uTW9kdWxlLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisK KyAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQpOgorICAg ICAgICAiIiIKKyAgICAgICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rpb24gbm9k ZQorICAgICAgICAiIiIKKyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9i cm93c2VyX2NvbGxlY3Rpb25fbm9kZShkaWQpCisKKyAgICBAcHJvcGVydHkK KyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAgICAgICIiIgorICAg ICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciBleHRlbnNpb24sIHdo ZW4gYW55IG9mIHRoZSBkYXRhYmFzZSBub2RlIGlzCisgICAgICAgIGluaXRp YWxpemVkLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIGRhdGFiYXNl cy5EYXRhYmFzZU1vZHVsZS5OT0RFX1RZUEUKKworCitibHVlcHJpbnQgPSBF eHRlbnNpb25Nb2R1bGUoX19uYW1lX18pCisKKworY2xhc3MgRXh0ZW5zaW9u VmlldyhOb2RlVmlldyk6CisgICAgbm9kZV90eXBlID0gYmx1ZXByaW50Lm5v ZGVfdHlwZQorCisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAgICAgICAgIHsn dHlwZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAgICAgICAgICB7J3R5 cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAgICAgICAgICAgeyd0eXBl JzogJ2ludCcsICdpZCc6ICdkaWQnfQorICAgICAgICAgICAgXQorICAgIGlk cyA9IFsKKyAgICAgICAgICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZWlk J30KKyAgICAgICAgICAgIF0KKworICAgIG9wZXJhdGlvbnMgPSBkaWN0KHsK KyAgICAgICAgJ29iaic6IFsKKyAgICAgICAgICAgIHsnZ2V0JzogJ3Byb3Bl cnRpZXMnLCAnZGVsZXRlJzogJ2RlbGV0ZScsICdwdXQnOiAndXBkYXRlJ30s CisgICAgICAgICAgICB7J2dldCc6ICdsaXN0JywgJ3Bvc3QnOiAnY3JlYXRl J30KKyAgICAgICAgXSwKKyAgICAgICAgJ2RlbGV0ZSc6IFt7J2RlbGV0ZSc6 ICdkZWxldGUnfV0sCisgICAgICAgICdub2Rlcyc6IFt7J2dldCc6ICdub2Rl J30sIHsnZ2V0JzogJ25vZGVzJ31dLAorICAgICAgICAnc3FsJzogW3snZ2V0 JzogJ3NxbCd9XSwKKyAgICAgICAgJ21zcWwnOiBbeydnZXQnOiAnbXNxbCd9 LCB7J2dldCc6ICdtc3FsJ31dLAorICAgICAgICAnc3RhdHMnOiBbeydnZXQn OiAnc3RhdGlzdGljcyd9XSwKKyAgICAgICAgJ2RlcGVuZGVuY3knOiBbeydn ZXQnOiAnZGVwZW5kZW5jaWVzJ31dLAorICAgICAgICAnZGVwZW5kZW50Jzog W3snZ2V0JzogJ2RlcGVuZGVudHMnfV0sCisgICAgICAgICdtb2R1bGUuanMn OiBbe30sIHt9LCB7J2dldCc6ICdtb2R1bGVfanMnfV0sCisgICAgICAgICdh dmFpbHMnOiBbe30sIHsnZ2V0JzogJ2F2YWlscyd9XSwKKyAgICAgICAgJ3Nj aGVtYXMnOiBbe30sIHsnZ2V0JzogJ3NjaGVtYXMnfV0sCisgICAgICAgICdj aGlsZHJlbic6IFt7J2dldCc6ICdjaGlsZHJlbid9XQorICAgIH0pCisKKyAg ICBkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRv ciB3aGljaCB3aWxsIGNoZWNrcworICAgICAgICBkYXRhYmFzZSBjb25uZWN0 aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hl cworICAgICAgICBtYW5hZ2VyLGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3Bl cnRpZXMgdG8gc2VsZgorICAgICAgICAiIiIKKyAgICAgICAgQHdyYXBzKGYp CisgICAgICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAg ICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3 aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAgICAgICAgIHNlbGYgPSBhcmdz WzBdCisgICAgICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBH X0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoa3dhcmdzWydz aWQnXSkKKyAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5j b25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQorICAgICAgICAgICAgc2Vs Zi50ZW1wbGF0ZV9wYXRoID0gJ2V4dGVuc2lvbnMvc3FsJworCisgICAgICAg ICAgICByZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisgICAgICAgIHJldHVy biB3cmFwCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIGxp c3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CisgICAgICAgICIiIgorICAgICAg ICBJdCBmZXRjaGVzIGFsbCBleHRlbnNpb25zIHByb3BlcnRpZXMgYW5kIHJl bmRlciBpbnRvIHByb3BlcnRpZXMKKyAgICAgICAgdGFiCisgICAgICAgICIi IgorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pKQorICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQor CisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKyAgICAgICAg cmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgcmVzcG9u c2U9cmVzWydyb3dzJ10sCisgICAgICAgICAgICAgICAgc3RhdHVzPTIwMAor ICAgICAgICAgICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24K KyAgICBkZWYgbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CisgICAgICAg ICIiIgorICAgICAgICBJdCBsaXN0cyBkb3duIHRoZSBhbGwgZXh0ZW5zaW9u cyB1bmRlciB0aGUgRXh0ZW5zaW9ucyBDb2xsZWN0aW9uIG5vZGUKKyAgICAg ICAgIiIiCisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIFNRTCA9IHJlbmRl cl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJv cGVydGllcy5zcWwnXSkpCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYu Y29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yc2V0KQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsn cm93cyddOgorICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAg ICAgICAgICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2Rl KAorICAgICAgICAgICAgICAgICAgICAgICAgcm93WydlaWQnXSwKKyAgICAg ICAgICAgICAgICAgICAgICAgIHJvd1snbmFtZSddLAorICAgICAgICAgICAg ICAgICAgICAgICAgJ2ljb24tZXh0ZW5zaW9uJworICAgICAgICAgICAgICAg ICAgICApKQorCisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2Uo CisgICAgICAgICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICAgICAg c3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworICAgIEBjaGVja19w cmVjb25kaXRpb24KKyAgICBkZWYgcHJvcGVydGllcyhzZWxmLCBnaWQsIHNp ZCwgZGlkLCBlaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgSXQgZmV0Y2hl cyB0aGUgcHJvcGVydGllcyBvZiBhIHNpbmdsZSBleHRlbnNpb24KKyAgICAg ICAgYW5kIHJlbmRlciBpbiBwcm9wZXJ0aWVzIHRhYgorCisgICAgICAgICIi IgorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3Nl bGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLCBlaWQ9ZWlk KQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2Rp Y3QoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAg cmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisK KyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICAg ICAgcmVzcG9uc2U9cmVzWydyb3dzJ11bMF0sCisgICAgICAgICAgICAgICAg c3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworICAgIEBjaGVja19w cmVjb25kaXRpb24KKyAgICBkZWYgY3JlYXRlKHNlbGYsIGdpZCwgc2lkLCBk aWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxs IGNyZWF0ZXMgbmV3IHRoZSBleHRlbnNpb24gb2JqZWN0CisgICAgICAgICIi IgorICAgICAgICByZXF1aXJlZF9hcmdzID0gWworICAgICAgICAgICAgJ25h bWUnLAorICAgICAgICAgICAgJ3ZlcnNpb24nCisgICAgICAgIF0KKworICAg ICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNl IGpzb24ubG9hZHMocmVxdWVzdC5kYXRhLmRlY29kZSgpKQorICAgICAgICBm b3IgYXJnIGluIHJlcXVpcmVkX2FyZ3M6CisgICAgICAgICAgICBpZiBhcmcg bm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNv bl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgc3RhdHVzPTQxMCwK KyAgICAgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAgICAgICAgICAg ICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAgICAgICAg ICAgICAgIkNvdWxkbid0IGZpbmQgdGhlIHJlcXVpcmVkIHBhcmFtZXRlciAo JXMpLiIgJSBhcmcKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAg ICAgICAgICkKKworICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5l eGVjdXRlX2RpY3QoCisgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUoCisg ICAgICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwg J2NyZWF0ZS5zcWwnXSksCisgICAgICAgICAgICAgICAgZGF0YT1kYXRhCisg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorCisgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBzdGF0dXMsIHJz ZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KAorICAgICAgICAgICAgcmVu ZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICIvIi5qb2luKFtzZWxm LnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAg ICAgICAgICBlbmFtZT1kYXRhWyduYW1lJ10KKyAgICAgICAgICAgICkKKyAg ICAgICAgKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJzZXQp CisKKyAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106CisgICAgICAg ICAgICByZXR1cm4ganNvbmlmeSgKKyAgICAgICAgICAgICAgbm9kZT1zZWxm LmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAg ICAgICAgICAgIHJvd1snZWlkJ10sCisgICAgICAgICAgICAgICAgICAgIHJv d1snbmFtZSddLAorICAgICAgICAgICAgICAgICAgICAnaWNvbi1leHRlbnNp b24nCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgdXBkYXRlKHNlbGYs IGdpZCwgc2lkLCBkaWQsIGVpZCk6CisgICAgICAgICIiIgorICAgICAgICBU aGlzIGZ1bmN0aW9uIHdpbGwgdXBkYXRlIGV4dGVuc2lvbiBvYmplY3QKKyAg ICAgICAgIiIiCisgICAgICAgIGRhdGEgPSByZXF1ZXN0LmZvcm0gaWYgcmVx dWVzdC5mb3JtIGVsc2UganNvbi5sb2FkcyhyZXF1ZXN0LmRhdGEuZGVjb2Rl KCkpCisgICAgICAgIFNRTCA9IHNlbGYuZ2V0U1FMKGdpZCwgc2lkLCBkYXRh LCBkaWQsIGVpZCkKKworICAgICAgICB0cnk6CisgICAgICAgICAgICBpZiBT UUwgYW5kIFNRTC5zdHJpcCgnXG4nKSBhbmQgU1FMLnN0cmlwKCcgJyk6Cisg ICAgICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0 ZV9kaWN0KFNRTCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgor ICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgICAgIHJldHVybiBt YWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nl c3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz0iRXh0ZW5zaW9uIHVw ZGF0ZWQiLAorICAgICAgICAgICAgICAgICAgICBkYXRhPXsKKyAgICAgICAg ICAgICAgICAgICAgICAgICdpZCc6IGVpZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICdzaWQnOiBzaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAn Z2lkJzogZ2lkCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHJl dHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAg IHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5mbz0iTm90aGlu ZyB0byB1cGRhdGUiLAorICAgICAgICAgICAgICAgICAgICBkYXRhPXsKKyAg ICAgICAgICAgICAgICAgICAgICAgICdpZCc6IGRpZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICdzaWQnOiBzaWQsCisgICAgICAgICAgICAgICAgICAg ICAgICAnZ2lkJzogZ2lkCisgICAgICAgICAgICAgICAgICAgIH0KKyAgICAg ICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBl OgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisg ICAgZGVmIGRlbGV0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBlaWQpOgorICAg ICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGRlbGV0ZSBk cm9wL2Ryb3AgY2FzY2FkZSB0aGUgZXh0ZW5zaW9uIG9iamVjdAorICAgICAg ICAiIiIKKyAgICAgICAgY2FzY2FkZSA9IFRydWUgaWYgc2VsZi5jbWQgPT0g J2RlbGV0ZScgZWxzZSBGYWxzZQorICAgICAgICB0cnk6CisgICAgICAgICAg ICAjIGNoZWNrIGlmIGV4dGVuc2lvbiB3aXRoIGVpZCBleGlzdHMKKyAgICAg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnZGVsZXRlLnNxbCddKSwgZWlkPWVpZCkKKyAgICAg ICAgICAgIHN0YXR1cywgbmFtZSA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxh cihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 bmFtZSkKKyAgICAgICAgICAgICMgZHJvcCBleHRlbnNpb24KKyAgICAgICAg ICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLCAnZGVsZXRlLnNxbCddKSwgbmFtZT1uYW1lLCBjYXNjYWRl PWNhc2NhZGUpCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29u bi5leGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICAgICByZXR1cm4gbWFr ZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwK KyAgICAgICAgICAgICAgICBpbmZvPWdldHRleHQoIkV4dGVuc2lvbiBkcm9w cGVkIiksCisgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAg ICAgICAgICdpZCc6IGRpZCwKKyAgICAgICAgICAgICAgICAgICAgJ3NpZCc6 IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAg ICAgICAgICAgICB9CisgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0 IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgZGVmIG1zcWwoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgZWlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5j dGlvbiB0byByZXR1cm4gbW9kaWZpZWQgU1FMCisgICAgICAgICIiIgorICAg ICAgICBkYXRhID0gcmVxdWVzdC5hcmdzLmNvcHkoKQorICAgICAgICBTUUwg PSBzZWxmLmdldFNRTChnaWQsIHNpZCwgZGF0YSwgZGlkLCBlaWQpCisgICAg ICAgIGlmIFNRTC5zdHJpcCgnXG4nKSBhbmQgU1FMLnN0cmlwKCcgJyk6Cisg ICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAg ICAgICAgICAgICAgICBkYXRhPVNRTCwKKyAgICAgICAgICAgICAgICAgICAg c3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIGVs c2U6CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAor ICAgICAgICAgICAgICAgICAgICBkYXRhPSctLSBNb2RpZmllZCBTUUwgLS0n LAorICAgICAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICAg ICAgICAgICAgICkKKworICAgIGRlZiBnZXRTUUwoc2VsZiwgZ2lkLCBzaWQs IGRhdGEsIGRpZCwgZWlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAg VGhpcyBmdW5jdGlvbiB3aWxsIGdlbmVyYXRlIHNxbCBmcm9tIG1vZGVsIGRh dGEKKyAgICAgICAgIiIiCisgICAgICAgIHJlcXVpcmVkX2FyZ3MgPSBbCisg ICAgICAgICAgICAnbmFtZScsCisgICAgICAgICAgICAnc2NoZW1hJywKKyAg ICAgICAgICAgICd2ZXJzaW9uJworICAgICAgICBdCisgICAgICAgIHRyeToK KyAgICAgICAgICAgIGlmIGVpZCBpcyBub3QgTm9uZToKKyAgICAgICAgICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pLCBlaWQ9ZWlkKQorICAg ICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVf ZGljdChTUUwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJv cihlcnJvcm1zZz1yZXMpCisgICAgICAgICAgICAgICAgb2xkX2RhdGEgPSBy ZXNbJ3Jvd3MnXVswXQorICAgICAgICAgICAgICAgIGZvciBhcmcgaW4gcmVx dWlyZWRfYXJnczoKKyAgICAgICAgICAgICAgICAgICAgaWYgYXJnIG5vdCBp biBkYXRhOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVthcmddID0g b2xkX2RhdGFbYXJnXQorICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAndXBkYXRl LnNxbCddKSwgZGF0YT1kYXRhLCBvX2RhdGE9b2xkX2RhdGEpCisgICAgICAg ICAgICBlbHNlOgorICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1w bGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnY3JlYXRlLnNx bCddKSwgZGF0YT1kYXRhKQorICAgICAgICAgICAgcmV0dXJuIFNRTAorICAg ICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgYXZhaWxzKHNlbGYs IGdpZCwgc2lkLCBkaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBm dW5jdGlvbiB3aXRoIGZldGNoIGFsbCB0aGUgYXZhaWxhYmxlIGV4dGVuc2lv bnMKKyAgICAgICAgIiIiCisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZXh0ZW5zaW9ucy5z cWwnXSkpCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVj dXRlX2RpY3QoU1FMKQorICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1y c2V0KQorICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAg ICAgICAgICAgICAgIGRhdGE9cnNldFsncm93cyddLAorICAgICAgICAgICAg ICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHNjaGVtYXMoc2VsZiwgZ2lkLCBz aWQsIGRpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0aW9u IHdpdGggZmV0Y2ggYWxsIHRoZSBzY2hlbWFzCisgICAgICAgICIiIgorICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVt cGxhdGVfcGF0aCwgJ3NjaGVtYXMuc3FsJ10pKQorICAgICAgICBzdGF0dXMs IHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAg aWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9z ZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKyAgICAgICAgcmV0dXJuIG1h a2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBkYXRhPXJzZXRb J3Jvd3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAg ICAgICAgICAgKQorCisgICAgZGVmIG1vZHVsZV9qcyhzZWxmKToKKyAgICAg ICAgIiIiCisgICAgICAgIFRoaXMgcHJvcGVydHkgZGVmaW5lcyAoaWYgamF2 YXNjcmlwdCkgZXhpc3RzIGZvciB0aGlzIG5vZGUuCisgICAgICAgIE92ZXJy aWRlIHRoaXMgcHJvcGVydHkgZm9yIHlvdXIgb3duIGxvZ2ljLgorICAgICAg ICAiIiIKKyAgICAgICAgcmV0dXJuIG1ha2VfcmVzcG9uc2UoCisgICAgICAg ICAgICAgICAgcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAg ICAiZXh0ZW5zaW9ucy9qcy9leHRlbnNpb25zLmpzIiwKKyAgICAgICAgICAg ICAgICAgICAgXz1nZXR0ZXh0CisgICAgICAgICAgICAgICAgICAgICksCisg ICAgICAgICAgICAgICAgMjAwLCB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNh dGlvbi94LWphdmFzY3JpcHQnfQorICAgICAgICAgICAgICAgICkKKworRXh0 ZW5zaW9uVmlldy5yZWdpc3Rlcl9ub2RlX3ZpZXcoYmx1ZXByaW50KQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvc3RhdGljL2ltZy9jb2xsLWV4 dGVuc2lvbi5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy9zdGF0aWMvaW1nL2Nv bGwtZXh0ZW5zaW9uLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZWQ3 Y2E5N2EzM2VmNTk1ZjQ0OGI4NjIxMTY4ZDUzMWY4NmQ1MWQ1CkdJVCBiaW5h cnkgcGF0Y2gKbGl0ZXJhbCAxMDE3CnpjbVY8VjB8eHd3UCk8aDszS3xMazAw MGUxTkpMVHEwMDBtRzAwMG1PMHt7UjNDQGx8RDAwMDAxYjVjaF8wSXRwKQp6 PT5QeCVfZlNrIU1TXnhaKCNeTjNwP1ImT2QrX1l1JGliaiVUXjZSb3JCI2Jt biExXzV4fTJKaVVIOXxtPWkkcHsKelJ0Pjdlc1p4KHJrSE1CJm18a3B9WWtG LWkrUzlxSG9OVFlDZnhefG9LN2M+SD5CeDduZU1FampmTzl2Wm5RZ3pnCnpu YXN6by1gdmMtd3c3S18wckJlQXd5Uz1nbTFqUENKZUpJJEdqPW4mdnlxKlhW fn5WU2VRKz9Ha3pMdSl2KyhLQwp6PyZacHVpJUBEPzVfbzdLNUwqdGU8R2R8 JEUmVGlVYH1wJHRfVSFmVztQZFIrPioyIWEtTVolNHZnNmdNO0wpTD0Kems1 M3c0NzlNM0JEUStsZnNCbyZ8eG9FMyE4KUYkamRfTFhHbjVkVW1IRUpjRSQp bX5iKHhLMyp2KkVxQj1ma2smCnp6TjZ1QG8hX3BJKlAoWDdnPms9dGY3NnhQ JGRJaj9TVmU5dWdTTHBuPiZ9K2xzRjIjRGlQKVdqKXxoPE1saDQ0OQp6bTQh dUNQeX1kTDRWczhVdEN2IUh2NE01Y2plZFBQQ30kdWpaNnt4TkpCb2NYQng0 KDspdms4TWhkX0A9NW5LLSMKeldmKHR8TzA9WUVGPXJyenZ4bjkzK155QkxU JGYqQW9AUEllTjArI2tXUit1cmNRTWNKKlNGLXNUJnJuZmxWRmp3CnprYUtN JUc9bjtAJCpfLXFJVGxfTSFzeUdHJjdufHxSRV4xKkR8O30kKTR0Zm1ocno2 QUliSVpBbnFxe3lpKlQlVgp6SGhWV3RWOyZ1MThJI3RkSUVfTnB6a2JyWWM5 VmZNTHRQWDxaWXgxJkI1WjlPbTN9OFZaN0ZpUGVzOW8tVER4JTEKend7Nlh7 V3glRlhvcld7NWt+X2tyTXZ7M1ZNc3plfHQhYCt9Z0pSNW1IaitYblk5KC07 WmIqVmhDeCRjMXVVKkhoCnpSbUc9R3pAUl5oYXZWKjFKWTMzblI+KlRveWs7 fCtNTE1aYkspXytYb2pIQUg1bTx5dlI7RlQ1IyYxaStZREwwawp6SkhLNl9r NHVod0dscHwxaStDKSFwaTtKK01+WllJZkB+UnRaNUQ0XzMwakYjUjtncSp5 OysyS0oqSiY9JGl0fEsKemJ0Yl4xUHJJfn0jPSloO3pNQH18VF53bTA1PyZE K1k4XkowTUo8bSE2a2A+Jm5MJjRIQz5kJVNQPWAqNGRfJDNYCnpDb0dhWmZU KHxLU19fdFpCN1VaUUtEJThPWGMmS0w3SitMTzgrUm0wZj1DIXs5VCNtSjdV REZFMDAwMDFiVyU9Sgp6MDZeeTBXJmkqSDBiKXg+TDsjMmQ5WV9FRzAxMHFO UyN0bVkzbGpoVTNsamtWbnclSF8wMDBNY05saXJ1K1hFWEIKejZDcChSYmNw fX0wQiVWe0t+eHlpVTY4UjJ6I3QzK25TKHR0ITN+aFledkdnNDJGTD1gRUVO Tm0we00hNi15MTspCnpReEZhenZMX2NLKmI8X29rRmcwZDhIYyNWPUVoYClo K3labXBsZWhubE5aRWR0Z1FAaFgwQ05lSVdFcHh3IW95TgpuZGN+dHNwOVRs aWRPek9DJi0pKnxLSCkzcEQybmdyMDAwMDBOa3ZYWHUwbWpmPEtOVXoKCmxp dGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRl bnNpb25zL3N0YXRpYy9pbWcvZXh0ZW5zaW9uLnBuZyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRl bnNpb25zL3N0YXRpYy9pbWcvZXh0ZW5zaW9uLnBuZwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwLi5lM2M1MzMzNDc4ODNmYzFkZWM3M2JjYjIxYjMyZmM1NGUz YzMxNzMyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA5OTYKemNtVjxBMH5g RV9QKTxoOzNLfExrMDAwZTFOSkxUcTAwMG1HMDAwbU8we3tSM0NAbHxEMDAw MDFiNWNoXzBJdHApCno9PlB4JWBjTzwlTVEyekxmXzZJNiY5fHpkZDk5Pi1A YSoybSFKdW5oN04pfGJSZnwtYnh8elZib1NLaGFfdyhsRwp6O21jLUw0WFZW Y1FqYilSIUlvTj5VVG02Y2RUbFArKTQ4YWVZX0YoKyFxdmgpZklxJEkkYWtA UU0xRGVtYjJwLXkKelpOSXBnJSpVP1orfDBlVW1SP1EpQCNAeUx0QTN1OVhG aHY4bWR2MHRifkMhT2spNHhja2MzV3NhND8qYVVEP3BICnpAYWZYLTw7c3xn UC08SGVjeFdMSVRNbit7eWUpRHF7UUxMJmAxMU1vP0RnPkFeWCVFeztsaytN eTVgeGs8SkdDKQp6KFY/Sl5QYTBxcjklVVJVWllYSn1hSGB8RVhzZDc9VjtN a3ZLSGJjaXNGem5ZWTkqZUBxc2lea3EwcCtjO2t+ISMKeiE/NU1QcXY1bGkt PiM2P3A/MU5BYWxlM24pME51RGtnYnxuTVEkdkV3dXI7KSZYKFAla2xMZSgq cXdzYm4wKFplCnomJWxxQmcrKjNTMVpZP2RudXRUSW1ye0dOZnB5WjJldGtN OVhDTnFUQ3RyOXdpaFZPQVY7aU5fdTZEKFRLI3hjZgp6VG5gdiE3KGJPdHc0 YGI9WENRPkxodD1gaXQ8fCgjbXRTRj9XPFFRY20kO1Q+bTFCWjtHMCpTVXg4 JVdHdDcmNEIKelYzRCt0YjhSSXdnRjNMdXUjYk5eN0c0dj09KnlWUnAtX0Br am1lb1Nkb2FHIXpTeld2IUtgVUhVS0MhTVZ1WlNqCnphSUFKVmRwQXlGOXZ4 eUNsaCZnK2pZOEdHZSR1O2tsWXVvdVRAKmlWRD93KT5ZOzdFc2VrVkM/RFJS MWdaX3RRWgp6eUt2OTlaT3lZfnpAfTg0aEJLe19KSG4oIWw2ZkxWYlRuaEZa Zk1TZlYkNkx1bDBxaEdDMipaP05QPFR2aEJMfnEKelVCfDBjI2l2Y2NwZylS bzk4RyNXVCpgUD4kYTZ9KFc7Mj5hSTtsfVd6K3R8ZkllbGpsU2NGU2ZyZWFY V1olZjIjCnpNWiN0fnpnP2teT09BVXBoSTEqNGNyM1Z9UW5zOCZpZ1kxQFkj REBZN0g/YiRUOFVDdHNibl8yUyVpMiFyayEpaAp6IT5FYU1DY3ZhbXlSPyhX IUtLOCRxRjwzKzlCQ2FBVUopODw5WDZMbUVzczFEVi0+WlRMM2UyPThFUDkp aGZhdW0Kekx5PndYRVJzRWRzREVvKDN6bUUkZXhganN5SW1HJjc9TE9PZm9s flRjTyolSU5FbUolN2l9QnxZUm4xJTAwMDRXCnpRY2hDPEs8M3pIMDAwMDFW b09JdjBFaCkwTkJ7cjszMjtiUmF7dkdmNjk1MVU2OUU5NG9FUUtBMDAocVFP K15SVwp6MH4teEc0ISZIQkY4fX1sUiFLeGJSMmI3XlU/M2oyeFM7VnZMWGJ0 d1R6fj4wVz1RaFZBKXlIX0ZrTHt9MTtodWsKenBhS0NRS3pAPTdzYHtpOTdp MEB2bDJUUzh3MUM3P1ImRzd5OykxTm08PE9aa0N7QS1oPDZ9QTxDamJEYVA4 cURlClNSXzRlNjAwMDA8TU5VTW5MU1RhWC1eTDM3CgpsaXRlcmFsIDAKSGNt Vj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90ZW1w bGF0ZXMvZXh0ZW5zaW9ucy9qcy9leHRlbnNpb25zLmpzIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4 dGVuc2lvbnMvdGVtcGxhdGVzL2V4dGVuc2lvbnMvanMvZXh0ZW5zaW9ucy5q cwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjFiZjdi Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVtcGxh dGVzL2V4dGVuc2lvbnMvanMvZXh0ZW5zaW9ucy5qcwpAQCAtMCwwICsxLDE4 OCBAQAorZGVmaW5lKAorICAgICAgICBbJ2pxdWVyeScsICd1bmRlcnNjb3Jl JywgJ3VuZGVyc2NvcmUuc3RyaW5nJywgJ3BnYWRtaW4nLCAncGdhZG1pbi5i cm93c2VyJywgJ3BnYWRtaW4uYnJvd3Nlci5jb2xsZWN0aW9uJ10sCitmdW5j dGlvbigkLCBfLCBTLCBwZ0FkbWluLCBwZ0Jyb3dzZXIpIHsKKworICBpZiAo IXBnQnJvd3Nlci5Ob2Rlc1snY29sbC1leHRlbnNpb24nXSkgeworICAgIHZh ciBleHRlbnNpb25zID0gcGdBZG1pbi5Ccm93c2VyLk5vZGVzWydjb2xsLWV4 dGVuc2lvbiddID0KKyAgICAgIHBnQWRtaW4uQnJvd3Nlci5Db2xsZWN0aW9u LmV4dGVuZCh7CisgICAgICAgIG5vZGU6ICdleHRlbnNpb24nLAorICAgICAg ICBsYWJlbDogJ3t7IF8oJ0V4dGVuc2lvbnMnKSB9fScsCisgICAgICAgIHR5 cGU6ICdjb2xsLWV4dGVuc2lvbicsCisgICAgICAgIGNvbHVtbnM6IFsnbmFt ZScsICdvd25lcicsICdjb21tZW50J10KKyAgICAgIH0pOworICB9OworCisg IGlmICghcGdCcm93c2VyLk5vZGVzWydleHRlbnNpb24nXSkgeworICAgIHBn QWRtaW4uQnJvd3Nlci5Ob2Rlc1snZXh0ZW5zaW9uJ10gPQorICAgIHBnQWRt aW4uQnJvd3Nlci5Ob2RlLmV4dGVuZCh7CisgICAgICBwYXJlbnRfdHlwZTog J2RhdGFiYXNlJywKKyAgICAgIHR5cGU6ICdleHRlbnNpb24nLAorICAgICAg aGFzU1FMOiB0cnVlLAorICAgICAgY2FuRHJvcDogdHJ1ZSwKKyAgICAgIGNh bkRyb3BDYXNjYWRlOiB0cnVlLAorICAgICAgbGFiZWw6ICd7eyBfKCdFeHRl bnNpb24nKSB9fScsCisKKyAgICAgIEluaXQ6IGZ1bmN0aW9uKCl7CisgICAg ICAgIGlmKHRoaXMuaW5pdGlhbGl6ZWQpCisgICAgICAgICAgICByZXR1cm47 CisKKyAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7CisKKyAgICAg ICAgcGdCcm93c2VyLmFkZF9tZW51cyhbeworICAgICAgICAgIG5hbWU6ICdj cmVhdGVfZXh0ZW5zaW9uX29uX2NvbGwnLCBub2RlOiAnY29sbC1leHRlbnNp b24nLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGllczogWydvYmpl Y3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2JqX3Byb3BlcnRp ZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6 IDQsIGxhYmVsOiAne3sgXygnRXh0ZW5zaW9uLi4uJykgfX0nLAorICAgICAg ICAgIGljb246ICd3Y1RhYkljb24gcGctaWNvbi1leHRlbnNpb24nLCBkYXRh OiB7YWN0aW9uOiAnY3JlYXRlJ30KKyAgICAgICAgfSx7CisgICAgICAgICAg bmFtZTogJ2NyZWF0ZV9leHRlbnNpb24nLCBub2RlOiAnZXh0ZW5zaW9uJywg bW9kdWxlOiB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0Jywg J2NvbnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywK KyAgICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBs YWJlbDogJ3t7IF8oJ0V4dGVuc2lvbi4uLicpIH19JywKKyAgICAgICAgICBp Y29uOiAnd2NUYWJJY29uIHBnLWljb24tZXh0ZW5zaW9uJywgZGF0YToge2Fj dGlvbjogJ2NyZWF0ZSd9CisgICAgICAgIH0KKyAgICAgICAgXSk7CisgICAg ICB9LAorICAgICAgbW9kZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVs LmV4dGVuZCh7CisgICAgICAgIHNjaGVtYTogWworICAgICAgICAgICAgewor ICAgICAgICAgICAgICAgIGlkOiAnbmFtZScsIGxhYmVsOiAne3sgXygnTmFt ZScpfX0nLAorICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JywgbW9kZTog Wydwcm9wZXJ0aWVzJywgJ2NyZWF0ZScsICdlZGl0J10sCisgICAgICAgICAg ICAgICAgdmlzaWJsZTogdHJ1ZSwgdXJsOidhdmFpbHMnLCBkaXNhYmxlZDog ZnVuY3Rpb24obSkgeworICAgICAgICAgICAgICAgICAgICByZXR1cm4gIW0u aXNOZXcoKTsKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg IHRyYW5zZm9ybTogZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgICAg ICAgICB2YXIgcmVzID0gW107CisgICAgICAgICAgICAgICAgICAgIHZhciBs YWJlbCA9IHRoaXMubW9kZWwuZ2V0KCduYW1lJyk7CisgICAgICAgICAgICAg ICAgICAgIGlmICghdGhpcy5tb2RlbC5pc05ldygpKXsKKyAgICAgICAgICAg ICAgICAgICAgICAgIHJlcy5wdXNoKHtsYWJlbDogbGFiZWwsIHZhbHVlOiBs YWJlbH0pOworICAgICAgICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKGRhdGEgJiYgXy5pc0FycmF5KGRhdGEp KSB7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLnB1c2goe2xh YmVsOiAnJywgdmFsdWU6ICcnfSk7CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXy5lYWNoKGRhdGEsIGZ1bmN0aW9uKGQpIHsKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKGQuaW5zdGFsbGVkX3ZlcnNpb24g PT0gbnVsbCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIGQgY29udGFpbnMganNvbiBkYXRhIGFuZCBzZXRzIGludG8KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogc2VsZWN0J3Mgb3B0 aW9uIGNvbnRyb2wKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICovCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXMucHVzaCh7bGFiZWw6IGQubmFtZSwgdmFsdWU6IGR9KTsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgICAgICAg ICAgfQorICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAg ICAgIHJldHVybiByZXM7CisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg ICAgICAgICAvKiBleHRlbmRzIE5vZGVBamF4T3B0aW9uc0NvbnRyb2wgdG8g b3ZlcnJpZGUgdGhlIHByb3BlcnRpZXMKKyAgICAgICAgICAgICAgICAqIGdl dFZhbHVlRnJvbURPTSB3aGljaCB0YWtlcyBzdHJpbmdpZmllZCBkYXRhIGZy b20gb3B0aW9uIG9mCisgICAgICAgICAgICAgICAgKiBzZWxlY3QgY29udHJv bCBhbmQgcGFyc2UgaXQuIEFuZCBgb25DaGFuZ2VgIHRha2VzIHRoZSBzdHJp bmdpZmllZAorICAgICAgICAgICAgICAgICogZGF0YSBmcm9tIHNlbGVjdCdz IG9wdGlvbiwgdGh1cyBjb252ZXJ0IGl0IHRvIGpzb24gZm9ybWF0IGFuZCBz ZXQgdGhlCisgICAgICAgICAgICAgICAgKiBkYXRhIGludG8gTW9kZWwgd2hp Y2ggaXMgdXNlZCB0byBlbmFibGUvZGlzYWJsZSB0aGUgc2NoZW1hIGZpZWxk LgorICAgICAgICAgICAgICAgICovCisgICAgICAgICAgICAgICAgY29udHJv bDogQmFja2Zvcm0uTm9kZUFqYXhPcHRpb25zQ29udHJvbC5leHRlbmQoewor ICAgICAgICAgICAgICAgICAgICBnZXRWYWx1ZUZyb21ET006IGZ1bmN0aW9u KCkgeworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRhdGEgPSB0aGlz LmZvcm1hdHRlci50b1Jhdyh0aGlzLiRlbC5maW5kKCJzZWxlY3QiKS52YWwo KSwgdGhpcy5tb2RlbCk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gZGF0YS5uYW1lOworICAgICAgICAgICAgICAgICAgICB9LAorICAgICAg ICAgICAgICAgICAgICBvbkNoYW5nZTogZnVuY3Rpb24oKSB7CisgICAgICAg ICAgICAgICAgICAgICAgICBCYWNrZm9ybS5Ob2RlQWpheE9wdGlvbnNDb250 cm9sLnByb3RvdHlwZS5vbkNoYW5nZS5hcHBseSh0aGlzLCBhcmd1bWVudHMp OworICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdGVkVmFsdWUg PSB0aGlzLiRlbC5maW5kKCJzZWxlY3QiKS52YWwoKTsKKyAgICAgICAgICAg ICAgICAgICAgICAgIGlmIChzZWxlY3RlZFZhbHVlLnRyaW0oKSAhPSAiIil7 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGQgPSB0aGlzLmZv cm1hdHRlci50b1JhdyhzZWxlY3RlZFZhbHVlLCB0aGlzLm1vZGVsKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2hhbmdlcyA9IHsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZlcnNpb24nOiAoIV8u aXNOdWxsKGQudmVyc2lvblswXSkgPyBkLnZlcnNpb25bMF06ICcnKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3JlbG9jYXRhYmxlJzog KCFfLmlzTnVsbChkLnJlbG9jYXRhYmxlWzBdKSA/IGQucmVsb2NhdGFibGVb MF06ICcnKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3Nj aGVtYSc6ICghXy5pc051bGwoZC5zY2hlbWFbMF0pID8gZC5zY2hlbWFbMF06 ICcnKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9OworICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW9kZWwuc2V0KGNoYW5n ZXMpOworICAgICAgICAgICAgICAgICAgICAgICAgfWVsc2V7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdmFyIGNoYW5nZXMgPSB7J3ZlcnNpb24n OiAnJywgJ3JlbG9jYXRhYmxlJzogdHJ1ZSwgJ3NjaGVtYSc6ICcnfTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1vZGVsLnNldChjaGFu Z2VzKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg ICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAg fSx7CisgICAgICAgICAgICAgICAgaWQ6ICdlaWQnLCBsYWJlbDogJ3t7IF8o J09pZCcpfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICAgICAgICB0 eXBlOiAndGV4dCcsIGRpc2FibGVkOiB0cnVlLCBtb2RlOiBbJ3Byb3BlcnRp ZXMnLCAnZWRpdCcsICdjcmVhdGUnXQorICAgICAgICAgICAgfSwKKyAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZDogJ293bmVyJywgbGFiZWw6 ICd7eyBfKCdPd25lcicpfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAg ICAgICAgICB0eXBlOiAndGV4dCcsIG1vZGU6IFsncHJvcGVydGllcyddCisg ICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg IGlkOiAnc2NoZW1hJywgbGFiZWw6ICd7eyBfKCdTY2hlbWEnKX19JywgdHlw ZTogJ3RleHQnLCBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLAorICAg ICAgICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdjcmVhdGUnLCAn ZWRpdCddLCBncm91cDogJ0RlZmluaXRpb24nLCBkZXBzOiBbJ3JlbG9jYXRh YmxlJ10sCisgICAgICAgICAgICAgICAgdXJsOiAnc2NoZW1hcycsIGRpc2Fi bGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICAgICAgICAgIC8qIGVu YWJsZSBvciBkaXNhYmxlIHNjaGVtYSBmaWVsZCBpZiBtb2RlbCdzIHJlbG9j YXRhYmxlCisgICAgICAgICAgICAgICAgICAgICogYXR0cmlidXRlIGlzIFRy dWUgb3IgRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgKi8KKyAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIChtLmhhcygncmVsb2NhdGFibGUnKSA/ICFt LmdldCgncmVsb2NhdGFibGUnKSA6IGZhbHNlKTsKKyAgICAgICAgICAgICAg ICB9LAorICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogZnVuY3Rpb24oZGF0 YSkgeworICAgICAgICAgICAgICAgICAgICB2YXIgcmVzID0gW107CisgICAg ICAgICAgICAgICAgICAgIGlmIChkYXRhICYmIF8uaXNBcnJheShkYXRhKSkg eworICAgICAgICAgICAgICAgICAgICAgICAgXy5lYWNoKGRhdGEsIGZ1bmN0 aW9uKGQpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMucHVz aCh7bGFiZWw6IGQuc2NoZW1hLCB2YWx1ZTogZC5zY2hlbWF9KTsKKyAgICAg ICAgICAgICAgICAgICAgICAgIH0pCisgICAgICAgICAgICAgICAgICAgIH0K KyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlczsKKyAgICAgICAgICAg ICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAgICAg ICAgICAgICAgIGlkOiAncmVsb2NhdGFibGUnLCBsYWJlbDogJ3t7IF8oJ1Jl bG9jYXRhYmxlPycpfX0nLCBjZWxsOiAnc3dpdGNoJywKKyAgICAgICAgICAg ICAgICB0eXBlOiAnc3dpdGNoJywgbW9kZTogWydwcm9wZXJ0aWVzJ10sICdv cHRpb25zJzogeworICAgICAgICAgICAgICAgICAgICAnb25UZXh0JzogJ1ll cycsICdvZmZUZXh0JzogJ05vJywgJ29uQ29sb3InOiAnc3VjY2VzcycsCisg ICAgICAgICAgICAgICAgICAgICdvZmZDb2xvcic6ICdkZWZhdWx0JywgJ3Np emUnOiAnc21hbGwnCisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg fSwKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpZDogJ3ZlcnNp b24nLCBsYWJlbDogJ3t7IF8oJ1ZlcnNpb24nKX19JywgY2VsbDogJ3N0cmlu ZycsCisgICAgICAgICAgICAgICAgdHlwZTogJ29wdGlvbnMnLCBtb2RlOiBb J3Byb3BlcnRpZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwgZ3JvdXA6ICdEZWZp bml0aW9uJywKKyAgICAgICAgICAgICAgICBkaXNhYmxlZDogZmFsc2UsIGNv bnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycsIHVybDonYXZhaWxzJywKKyAg ICAgICAgICAgICAgICAvKgorICAgICAgICAgICAgICAgICogVHJhbnNmb3Jt IHRoZSBkYXRhIGludG8gdmVyc2lvbiBmb3IgdGhlIHNlbGVjdGVkIGV4dGVu c2lvbi4KKyAgICAgICAgICAgICAgICAqLworICAgICAgICAgICAgICAgIHRy YW5zZm9ybTogZnVuY3Rpb24oZGF0YSkgeworICAgICAgICAgICAgICAgICAg ICByZXMgPSBbXTsKKyAgICAgICAgICAgICAgICAgICAgdmFyIGV4dGVuc2lv biA9IHRoaXMubW9kZWwuZ2V0KCduYW1lJyk7CisgICAgICAgICAgICAgICAg ICAgIF8uZWFjaChkYXRhLCBmdW5jdGlvbihkdCl7CisgICAgICAgICAgICAg ICAgICAgICAgICBpZihkdC5uYW1lID09IGV4dGVuc2lvbil7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYoZHQudmVyc2lvbiAmJiBfLmlzQXJy YXkoZHQudmVyc2lvbikpeworICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBfLmVhY2goZHQudmVyc2lvbiwgZnVuY3Rpb24odil7CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXMucHVzaCh7IGxhYmVs OiB2LCB2YWx1ZTogdiB9KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgfSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQorICAg ICAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICAgICB9 KTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlczsKKyAgICAgICAg ICAgICAgICB9CisgICAgICAgICAgICB9LAorICAgICAgICAgICAgeworICAg ICAgICAgICAgICAgIGlkOiAnY29tbWVudCcsIGxhYmVsOiAne3sgXygnQ29t bWVudCcpfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICAgICAgICB0 eXBlOiAnbXVsdGlsaW5lJywgZGlzYWJsZWQ6IHRydWUKKyAgICAgICAgICAg IH0sCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaWQ6ICdzbG9u eScsIGxhYmVsOiAne3sgXygnVXNlIFNsb255Jyl9fScsIGNlbGw6ICdzdHJp bmcnLAorICAgICAgICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZGlzYWJsZWQ6 IHRydWUsIG1vZGU6IFsnY3JlYXRlJywgJ2VkaXQnXQorICAgICAgICAgICAg fQorICAgICAgICAgICAgXSwKKyAgICAgICAgdmFsaWRhdGU6IGZ1bmN0aW9u KCkgeworICAgICAgICAgICAgLyoKKyAgICAgICAgICAgICogVHJpZ2dlcnMg c3BlY2lmaWMgZXJyb3IgbWVzc2FnZXMgZm9yIG5hbWUgYW5kCisgICAgICAg ICAgICAqIHZlcnNpb24gaWYgaXQgaXMgZW1wdHkKKyAgICAgICAgICAgICov CisgICAgICAgICAgICB2YXIgY2hhbmdlZEF0dHJzID0gdGhpcy5jaGFuZ2Vk OworICAgICAgICAgICAgaWYgKF8uaGFzKGNoYW5nZWRBdHRycywgdGhpcy5n ZXQoJ25hbWUnKSkgJiYgXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnbmFtZScp KSB8fCBTdHJpbmcodGhpcy5nZXQoJ25hbWUnKSkucmVwbGFjZSgvXlxzK3xc cyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgICAgIHZhciBtc2cg PSAne3sgXygnTmFtZSBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAg ICAgICAgICAgICB0aGlzLnRyaWdnZXIoJ29uLXN0YXR1cycse21zZzptc2d9 KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbXNnOworICAgICAgICAgICAg fQorICAgICAgICAgICAgaWYgKF8uaGFzKGNoYW5nZWRBdHRycywgdGhpcy5n ZXQoJ3ZlcnNpb24nKSkgJiYgXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgndmVy c2lvbicpKSB8fCBTdHJpbmcodGhpcy5nZXQoJ3ZlcnNpb24nKSkucmVwbGFj ZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICAgICAgICAg IHZhciBtc2cgPSAne3sgXygnVmVyc2lvbiBjYW4gbm90IGJlIGVtcHR5IScp IH19JzsKKyAgICAgICAgICAgICAgICB0aGlzLnRyaWdnZXIoJ29uLXN0YXR1 cycse21zZzptc2d9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gbXNnOwor ICAgICAgICAgICAgfQorICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCdvbi1z dGF0dXMtY2xlYXInKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg ICAgICB9CisgICAgICB9KQorICAgIH0pCisgIH07CisKKyAgcmV0dXJuIHBn QnJvd3Nlci5Ob2Rlc1snY29sbC1leHRlbnNpb24nXTsKK30pOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVtcGxhdGVzL2V4dGVuc2lvbnMv c3FsL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90ZW1wbGF0ZXMv ZXh0ZW5zaW9ucy9zcWwvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5hNjhiN2NlCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL2V4dGVuc2lvbnMvdGVtcGxhdGVzL2V4dGVuc2lvbnMvc3FsL2Ny ZWF0ZS5zcWwKQEAgLTAsMCArMSwxMCBAQAoreyM9PT09PT09PT09PT09PT09 PT09PT09PT09Q3JlYXRlIG5ldyBleHRlbnNpb249PT09PT09PT09PT09PT09 PT09PT09I30KK3slIGlmIGRhdGEubmFtZSAlfQorQ1JFQVRFIEVYVEVOU0lP TiB7eyBkYXRhLm5hbWUgfX0KK3slIGlmIGRhdGEuc2NoZW1hICV9CisgIFND SEVNQSB7eyBkYXRhLnNjaGVtYSB9fQoreyUgZW5kaWYgJX0KK3slIGlmIGRh dGEudmVyc2lvbiAlfQorICBWRVJTSU9OICd7eyBkYXRhLnZlcnNpb24gfX0n OworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvZXh0ZW5zaW9ucy90ZW1wbGF0ZXMvZXh0ZW5zaW9ucy9zcWwvZGVsZXRl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9leHRlbnNpb25zL3RlbXBsYXRlcy9leHRlbnNpb25z L3NxbC9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjEyNzQxZmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXh0 ZW5zaW9ucy90ZW1wbGF0ZXMvZXh0ZW5zaW9ucy9zcWwvZGVsZXRlLnNxbApA QCAtMCwwICsxLDggQEAKK3sjPT09PT09PT09PT09PT09PT09PT09PT09PT09 PURyb3AvQ2FzY2FkZSBFeHRlbnNpb24gYnkgbmFtZT09PT09PT09PT09PT09 PT09PT09PT09PT0jfQoreyUgaWYgZWlkICV9CitTRUxFQ1QgeC5leHRuYW1l IGZyb20gcGdfZXh0ZW5zaW9uIHgKKyAgICBXSEVSRSB4Lm9pZCA9IHt7IGVp ZCB9fTo6aW50Cit7JSBlbmRpZiAlfQoreyUgaWYgbmFtZSAlfQorRFJPUCBF WFRFTlNJT04ge3sgbmFtZSB9fSB7JSBpZiBjYXNjYWRlICV9IENBU0NBREUg eyUgZW5kaWYgJX0KK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv ZXh0ZW5zaW9ucy90ZW1wbGF0ZXMvZXh0ZW5zaW9ucy9zcWwvZXh0ZW5zaW9u cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90ZW1wbGF0ZXMvZXh0ZW5zaW9u cy9zcWwvZXh0ZW5zaW9ucy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uYmYzOTc5ZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9leHRlbnNpb25zL3RlbXBsYXRlcy9leHRlbnNpb25zL3NxbC9leHRlbnNp b25zLnNxbApAQCAtMCwwICsxLDEyIEBACit7IyA9PT09PT09PT09PT09PT09 PT09PT09RmV0Y2ggZXh0ZW5zaW9ucyBuYW1lcz09PT09PT09PT09PT09PT09 PT09PSN9CitTRUxFQ1QKKyAgICBhLm5hbWUsIGEuaW5zdGFsbGVkX3ZlcnNp b24sCisgICAgYXJyYXlfYWdnKGF2LnZlcnNpb24pIGFzIHZlcnNpb24sCisg ICAgYXJyYXlfYWdnKGF2LnNjaGVtYSkgYXMgc2NoZW1hLAorICAgIGFycmF5 X2FnZyhhdi5zdXBlcnVzZXIpIGFzIHN1cGVydXNlciwKKyAgICBhcnJheV9h Z2coYXYucmVsb2NhdGFibGUpIGFzIHJlbG9jYXRhYmxlCitGUk9NCisgICAg cGdfYXZhaWxhYmxlX2V4dGVuc2lvbnMgYQorICAgIExFRlQgSk9JTiBwZ19h dmFpbGFibGVfZXh0ZW5zaW9uX3ZlcnNpb25zIGF2IE9OIChhLm5hbWUgPSBh di5uYW1lKQorR1JPVVAgQlkgYS5uYW1lLCBhLmluc3RhbGxlZF92ZXJzaW9u CitPUkRFUiBCWSBhLm5hbWUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlbnNp b25zL3RlbXBsYXRlcy9leHRlbnNpb25zL3NxbC9wcm9wZXJ0aWVzLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9leHRlbnNpb25zL3RlbXBsYXRlcy9leHRlbnNpb25zL3NxbC9w cm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi5iNjA5ODgzCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVu c2lvbnMvdGVtcGxhdGVzL2V4dGVuc2lvbnMvc3FsL3Byb3BlcnRpZXMuc3Fs CkBAIC0wLDAgKzEsMTcgQEAKK3sjPT09PT09PT09PT09PT09PT09PUZldGNo IHByb3BlcnRpZXMgb2YgZWFjaCBleHRlbnNpb24gYnkgbmFtZSBvciBvaWQ9 PT09PT09PT09PT09PT09PT09I30KK1NFTEVDVAorICAgIHgub2lkIEFTIGVp ZCwgcGdfZ2V0X3VzZXJieWlkKGV4dG93bmVyKSBBUyBvd25lciwKKyAgICB4 LmV4dG5hbWUgQVMgbmFtZSwgbi5uc3BuYW1lIEFTIHNjaGVtYSwKKyAgICB4 LmV4dHJlbG9jYXRhYmxlIEFTIHJlbG9jYXRhYmxlLCB4LmV4dHZlcnNpb24g QVMgdmVyc2lvbiwKKyAgICBlLmNvbW1lbnQKK0ZST00KKyAgICBwZ19leHRl bnNpb24geAorICAgIExFRlQgSk9JTiBwZ19uYW1lc3BhY2UgbiBPTiB4LmV4 dG5hbWVzcGFjZT1uLm9pZAorICAgIEpPSU4gcGdfYXZhaWxhYmxlX2V4dGVu c2lvbnMoKSBlKG5hbWUsIGRlZmF1bHRfdmVyc2lvbiwgY29tbWVudCkgT04g eC5leHRuYW1lPWUubmFtZQoreyUtIGlmIGVpZCAlfQorIFdIRVJFIHgub2lk ID0ge3tlaWR9fTo6aW50Cit7JSBlbGlmIGVuYW1lICV9CisgV0hFUkUgeC5l eHRuYW1lID0gJ3t7ZW5hbWV9fSc6OnRleHQKK3slIGVsc2UgJX0KKyBPUkRF UiBCWSB4LmV4dG5hbWUKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvZXh0ZW5zaW9ucy90ZW1wbGF0ZXMvZXh0ZW5zaW9ucy9zcWwvc2NoZW1h cy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy90ZW1wbGF0ZXMvZXh0ZW5zaW9u cy9zcWwvc2NoZW1hcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYjhlM2M5NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9l eHRlbnNpb25zL3RlbXBsYXRlcy9leHRlbnNpb25zL3NxbC9zY2hlbWFzLnNx bApAQCAtMCwwICsxLDMgQEAKK3sjPT09PT09PT09PT09PT09PT09PWZldGNo IGFsbCBzY2hlbWFzPT09PT09PT09PT09PT09PT09PT09PT09PT0jfQorU0VM RUNUIG5zcG5hbWUgQXMgc2NoZW1hIEZST00gcGdfbmFtZXNwYWNlCisgT1JE RVIgQlkgbnNwbmFtZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMv dGVtcGxhdGVzL2V4dGVuc2lvbnMvc3FsL3VwZGF0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv ZXh0ZW5zaW9ucy90ZW1wbGF0ZXMvZXh0ZW5zaW9ucy9zcWwvdXBkYXRlLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYmRhYTYw Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2V4dGVuc2lvbnMvdGVtcGxh dGVzL2V4dGVuc2lvbnMvc3FsL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMCBA QAoreyMgPT09PT09PT09PT09PVVwZGF0ZSBleHRlbnNpb24gc2NoZW1hPT09 PT09PT09PT09PSAjfQoreyUgaWYgZGF0YS5zY2hlbWEgIT0gb19kYXRhLnNj aGVtYSAlfQorQUxURVIgRVhURU5TSU9OIHt7IG9fZGF0YS5uYW1lIH19Cisg ICAgU0VUIFNDSEVNQSB7eyBkYXRhLnNjaGVtYXxlIH19OworeyUgZW5kaWYg JX0KK3sjID09PT09PT09PT09PT1VcGRhdGUgZXh0ZW5zaW9uIHZlcnNpb249 PT09PT09PT09PT09ICN9Cit7JSBpZiBkYXRhLnZlcnNpb24gYW5kIGRhdGEu dmVyc2lvbiAhPSBvX2RhdGEudmVyc2lvbiAlfQorQUxURVIgRVhURU5TSU9O IHt7IG9fZGF0YS5uYW1lIH19CisgICAgVVBEQVRFIFRPICd7eyBkYXRhLnZl cnNpb24gfX0nOworeyUgZW5kaWYgJX0K --001a11443a3aacad4a05291e3e83 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 --001a11443a3aacad4a05291e3e83--