Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aJ2a7-0005IW-F1 for pgadmin-hackers@arkaria.postgresql.org; Tue, 12 Jan 2016 17:18:08 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aJ2a7-0006NR-1X for pgadmin-hackers@arkaria.postgresql.org; Tue, 12 Jan 2016 17:18:07 +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 1aJ2Zj-0005Vc-Th for pgadmin-hackers@postgresql.org; Tue, 12 Jan 2016 17:17:44 +0000 Received: from mail-lf0-x22a.google.com ([2a00:1450:4010:c07::22a]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aJ2Ze-0004Yu-2N for pgadmin-hackers@postgresql.org; Tue, 12 Jan 2016 17:17:42 +0000 Received: by mail-lf0-x22a.google.com with SMTP id c192so239047489lfe.2 for ; Tue, 12 Jan 2016 09:17:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to:content-type; bh=TlMFaikQ76dAMp6BHzZN7YdgYapkbVdpnt7w1I74+3Q=; b=uwT8BzyPBBQjxO5PPLKO9t5cqtMsPqRU7NyWVcjBi0hTzBKgD7DNSltN4RFPhxv1Xk sxghURwahuDZjzxD2kYzCrbjy3f9pwkNil2mKbBxNsWKG1rsmC3kes1muuX57lTp6BhS z63Qq+eGsa0TQBntMexyQqRn4CKfkNiP0t1/Xam3KSiLlWrRvL9qAIYXACYs8rykewXm a0ziT+66iEvQUPJyS1FvVz6mC5IfgCoyrHbOmvcwQD0BPCguRiImm0QrGf8gbplHcSgh 8CddSHpU+bQuVd9FV6WkiwXAKjXvq5LYqqyMWKK44RqfVuXKs9MYus0plEPFUsLJ6Rjh cgBw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-type; bh=TlMFaikQ76dAMp6BHzZN7YdgYapkbVdpnt7w1I74+3Q=; b=jXubPPZ2mWnDg3xzHGVIqRuDEIgNAMo/FCsprLA1HMEQ3gdMSvbyOdgo75/hPna+JW ScqJKBOCujvwGqfSM9GHpDFaEs756YbmBPGK0CK/tf2NMpxU9cNbPLOlyNF+UZ7V/dWf VNnLBSFY4W3qju/RbBttdbfvRJki/nQfOQT2R1w03+WJP7tcJTeVfGPKoK+0vpkQTsQF xNydnxlIjBv1U2kMF0YfLvcAlg7fd0O+A//BgrepdtjAdgrCFYywQn3ilqR0n+aHrMFr ZDPD6A2nIqbEieOuWETQhXA8cgMQsWjfFk8PJTmRG9qQTtEEXjgMyGFB7d+g/3wPVNc/ L4ww== X-Gm-Message-State: ALoCoQlXVU0uo+ASWSh7OVxR1VDCfInZFJP7x1Dzc5SzgCWkuJJqQUootXt1GTVCupI+762/XOQZrRCVfuDLKQcnbWdY2WfVD+IRgooh2823cjRI7qsPb94= X-Received: by 10.25.77.79 with SMTP id a76mr21433559lfb.1.1452619056117; Tue, 12 Jan 2016 09:17:36 -0800 (PST) MIME-Version: 1.0 Received: by 10.112.72.169 with HTTP; Tue, 12 Jan 2016 09:17:16 -0800 (PST) From: Ashesh Vashi Date: Tue, 12 Jan 2016 22:47:16 +0530 Message-ID: Subject: PATCH: Login/Group Role Node To: pgadmin-hackers , Akshay Joshi , Murtuza Zabuawala Content-Type: multipart/mixed; boundary=001a113ff650d5dbf50529263a47 X-Pg-Spam-Score: -1.5 (-) 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 --001a113ff650d5dbf50529263a47 Content-Type: multipart/alternative; boundary=001a113ff650d5dbed0529263a45 --001a113ff650d5dbed0529263a45 Content-Type: text/plain; charset=UTF-8 Hi Team, Please find the patch for Login/Group Role(s). Akshay/Murtuza, Can you please review it? -- Thanks & Regards, Ashesh Vashi EnterpriseDB INDIA: Enterprise PostgreSQL Company *http://www.linkedin.com/in/asheshvashi* --001a113ff650d5dbed0529263a45 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi Team,

Please find the patch= for Login/Group Role(s).

Akshay/Murtuza,

Can you please review it?

--

Thanks & Regards,=

Ashesh Vashi
EnterpriseDB INDIA: <= a href=3D"http://www.enterprisedb.com" target=3D"_blank">Enterprise Postgre= SQL Company

<= br>

<= a href=3D"http://www.linkedin.com/in/asheshvashi" target=3D"_blank">http= ://www.linkedin.com/in/asheshvashi

--001a113ff650d5dbed0529263a45-- --001a113ff650d5dbf50529263a47 Content-Type: text/plain; charset=US-ASCII; name="roles.patch" Content-Disposition: attachment; filename="roles.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ijbnuncr0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3JvbGVzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvX19pbml0X18ucHkK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTU1N2Q2Ywot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL19faW5pdF9fLnB5CkBAIC0wLDAgKzEs OTAxIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIworIyBw Z0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENvcHlyaWdodCAo QykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3BtZW50IFRlYW0K KyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0aGUgUG9zdGdy ZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCByZXF1ZXN0 LCBjdXJyZW50X2FwcCwganNvbmlmeQorZnJvbSBmbGFzay5leHQuYmFiZWwg aW1wb3J0IGdldHRleHQgYXMgXworZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXgg aW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgXAorICAgIG1ha2VfcmVzcG9u c2UgYXMgYWpheF9yZXNwb25zZSwgcHJlY29uZGl0aW9uX3JlcXVpcmVkLCBc CisgICAgaW50ZXJuYWxfc2VydmVyX2Vycm9yLCBmb3JiaWRkZW4sIFwKKyAg ICBub3RfaW1wbGVtZW50ZWQsIHN1Y2Nlc3NfcmV0dXJuCitmcm9tIHBnYWRt aW4uYnJvd3Nlci51dGlscyBpbXBvcnQgTm9kZVZpZXcKK2Zyb20gcGdhZG1p bi5icm93c2VyLmNvbGxlY3Rpb24gaW1wb3J0IENvbGxlY3Rpb25Ob2RlTW9k dWxlCitpbXBvcnQgcGdhZG1pbi5icm93c2VyLnNlcnZlcl9ncm91cHMgYXMg c2cKK2Zyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2 ZXIKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgoraW1w b3J0IHJlCitpbXBvcnQgZGF0ZXRpbWUKK2Zyb20gZnVuY3Rvb2xzIGltcG9y dCB3cmFwcworaW1wb3J0IHNpbXBsZWpzb24gYXMganNvbgorCisKK2NsYXNz IFJvbGVNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgorICAgIE5PREVf VFlQRSA9ICdyb2xlJworICAgIENPTExFQ1RJT05fTEFCRUwgPSBfKCJMb2dp bi9Hcm91cCBSb2xlcyIpCisKKyAgICBkZWYgX19pbml0X18oc2VsZiwgKmFy Z3MsICoqa3dhcmdzKToKKyAgICAgICAgc2VsZi5taW5fdmVyID0gTm9uZQor ICAgICAgICBzZWxmLm1heF92ZXIgPSBOb25lCisKKyAgICAgICAgc3VwZXIo Um9sZU1vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQor CisgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCk6CisgICAgICAg ICIiIgorICAgICAgICBHZW5lcmF0ZSB0aGUgY29sbGVjdGlvbiBub2RlCisg ICAgICAgICIiIgorCisgICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJv d3Nlcl9jb2xsZWN0aW9uX25vZGUoc2lkKQorCisgICAgQHByb3BlcnR5Cisg ICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAg ICAgTG9hZCB0aGUgbW9kdWxlIHNjcmlwdCBmb3Igc2VydmVyLCB3aGVuIGFu eSBvZiB0aGUgc2VydmVyLWdyb3VwIG5vZGUgaXMKKyAgICAgICAgaW5pdGlh bGl6ZWQuCisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gc2cuU2VydmVy R3JvdXBNb2R1bGUuTk9ERV9UWVBFCisKKyAgICBAcHJvcGVydHkKKyAgICBk ZWYgY3Nzc25pcHBldHMoc2VsZik6CisgICAgICAgICIiIgorICAgICAgICBS ZXR1cm5zIGEgc25pcHBldCBvZiBjc3MgdG8gaW5jbHVkZSBpbiB0aGUgcGFn ZQorICAgICAgICAiIiIKKyAgICAgICAgc25pcHBldHMgPSBbCisgICAgICAg ICAgICAgICAgcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAg ICAiYnJvd3Nlci9jc3MvY29sbGVjdGlvbi5jc3MiLAorICAgICAgICAgICAg ICAgICAgICBub2RlX3R5cGU9c2VsZi5ub2RlX3R5cGUKKyAgICAgICAgICAg ICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUo InJvbGUvY3NzL3JvbGUuY3NzIildCisKKyAgICAgICAgZm9yIHN1Ym1vZHVs ZSBpbiBzZWxmLnN1Ym1vZHVsZXM6CisgICAgICAgICAgICBzbmlwcGV0cy5l eHRlbmQoc3VibW9kdWxlLmNzc3NuaXBwZXRzKQorCisgICAgICAgIHJldHVy biBzbmlwcGV0cworCisKK2JsdWVwcmludCA9IFJvbGVNb2R1bGUoX19uYW1l X18pCisKKworY2xhc3MgUm9sZVZpZXcoTm9kZVZpZXcpOgorICAgIG5vZGVf dHlwZSA9ICdyb2xlJworCisgICAgcGFyZW50X2lkcyA9IFsKKyAgICAgICAg ICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnZ2lkJ30sCisgICAgICAgICAg ICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9CisgICAgICAgICAgICBd CisgICAgaWRzID0gWworICAgICAgICAgICAgeyd0eXBlJzogJ2ludCcsICdp ZCc6ICdyaWQnfQorICAgICAgICAgICAgXQorCisgICAgb3BlcmF0aW9ucyA9 IGRpY3QoeworICAgICAgICAnb2JqJzogWworICAgICAgICAgICAgeydnZXQn OiAncHJvcGVydGllcycsICdkZWxldGUnOiAnZHJvcCcsICdwdXQnOiAndXBk YXRlJ30sCisgICAgICAgICAgICB7J2dldCc6ICdsaXN0JywgJ3Bvc3QnOiAn Y3JlYXRlJ30KKyAgICAgICAgXSwKKyAgICAgICAgJ25vZGVzJzogW3snZ2V0 JzogJ25vZGUnfSwgeydnZXQnOiAnbm9kZXMnfV0sCisgICAgICAgICdzcWwn OiBbeydnZXQnOiAnc3FsJ31dLAorICAgICAgICAnbXNxbCc6IFt7J2dldCc6 ICdtc3FsJ30sIHsnZ2V0JzogJ21zcWwnfV0sCisgICAgICAgICdkZXBlbmRl bmN5JzogW3snZ2V0JzogJ2RlcGVuZGVuY2llcyd9XSwKKyAgICAgICAgJ2Rl cGVuZGVudCc6IFt7J2dldCc6ICdkZXBlbmRlbnRzJ31dLAorICAgICAgICAn Y2hpbGRyZW4nOiBbeydnZXQnOiAnY2hpbGRyZW4nfV0sCisgICAgICAgICdt b2R1bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1bGVfanMnfV0sCisg ICAgICAgICd2b3B0cyc6IFt7fSwgeydnZXQnOiAndm9wdGlvbnMnfV0sCisg ICAgICAgICd2YXJpYWJsZXMnOiBbeydnZXQnOiAndmFyaWFibGVzJ31dLAor ICAgICAgICB9KQorCisgICAgZGVmIHZhbGlkYXRlX3JlcXVlc3QoZik6Cisg ICAgICAgIEB3cmFwcyhmKQorICAgICAgICBkZWYgd3JhcChzZWxmLCAqKmt3 YXJncyk6CisKKyAgICAgICAgICAgIGRhdGEgPSBOb25lCisgICAgICAgICAg ICBpZiByZXF1ZXN0LmRhdGE6CisgICAgICAgICAgICAgICAgZGF0YSA9IGpz b24ubG9hZHMocmVxdWVzdC5kYXRhKQorICAgICAgICAgICAgZWxzZToKKyAg ICAgICAgICAgICAgICBkYXRhID0gZGljdCgpCisgICAgICAgICAgICAgICAg cmVxID0gcmVxdWVzdC5hcmdzIG9yIHJlcXVlc3QuZm9ybQorCisgICAgICAg ICAgICAgICAgZm9yIGtleSBpbiByZXE6CisKKyAgICAgICAgICAgICAgICAg ICAgdmFsID0gcmVxW2tleV0KKyAgICAgICAgICAgICAgICAgICAgaWYga2V5 IGluIFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICB1J3JvbGNhbmxv Z2luJywgdSdyb2xzdXBlcicsIHUncm9sY3JlYXRlZGInLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHUncm9sY3JlYXRlcm9sZScsIHUncm9saW5o ZXJpdCcsIHUncm9scmVwbGljYXRpb24nLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHUncm9sY2F0dXBkYXRlJywgdSd2YXJpYWJsZXMnLCB1J3Jv bG1lbWJlcnNoaXAnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUn c2VjbGFiZWxzJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIF06Cisg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSBqc29uLmxvYWRz KHZhbCkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGFba2V5XSA9IHZhbAorCisgICAgICAgICAgICBp ZiB1J3JpZCcgbm90IGluIGt3YXJncyBvciBrd2FyZ3NbJ3JpZCddID09IC0x OgorICAgICAgICAgICAgICAgIGlmIHUncm9sbmFtZScgbm90IGluIGRhdGE6 CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVx dWlyZWQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiTmFtZSBp cyBub3QgcHJvdmlkZWQhIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICApCisKKyAgICAgICAgICAgIGlmIHUncm9sY29ubmxpbWl0JyBpbiBkYXRh OgorICAgICAgICAgICAgICAgIGlmIGRhdGFbdSdyb2xjb25ubGltaXQnXSBp cyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICAgICAgZGF0YVt1J3JvbGNv bm5saW1pdCddID0gaW50KGRhdGFbdSdyb2xjb25ubGltaXQnXSkKKyAgICAg ICAgICAgICAgICAgICAgaWYgdHlwZShkYXRhW3Uncm9sY29ubmxpbWl0J10p ICE9IGludCBvciBkYXRhW3Uncm9sY29ubmxpbWl0J10gPCAtMToKKyAgICAg ICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWly ZWQoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkNvbm5l Y3Rpb24gbGltaXQgbXVzdCBiZSBhbiBpbnRlZ2VyIHZhbHVlIG9yIGVxdWFs cyB0byAtMSEiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp CisKKyAgICAgICAgICAgIGlmIHUncm9sbWVtYmVyc2hpcCcgaW4gZGF0YToK KyAgICAgICAgICAgICAgICBpZiB1J3JpZCcgbm90IGluIGt3YXJncyBvciBr d2FyZ3NbJ3JpZCddID09IC0xOgorICAgICAgICAgICAgICAgICAgICBtc2cg PSBfKCIiIgorUm9sZSBtZW1iZXJzaGlwIGluZm9ybWF0aW9uIG11c3QgYmUg cGFzc2VkIGFzIGFuIGFycmF5IG9mIEpTT04gb2JqZWN0IGluIHRoZQorZm9s bG93aW5nIGZvcm1hdDoKKworcm9sbWVtYmVyc2hpcDpbeworICAgIHJvbGU6 IFtyb2xlbmFtZV0sCisgICAgYWRtaW46IFRydWUvRmFsc2UKKyAgICB9LAor ICAgIC4uLgorXSIiIikKKyAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShk YXRhW3Uncm9sbWVtYmVyc2hpcCddKSAhPSBsaXN0OgorICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZChtc2cp CisKKyAgICAgICAgICAgICAgICAgICAgZGF0YVt1J21lbWJlcnMnXSA9IFtd CisgICAgICAgICAgICAgICAgICAgIGRhdGFbdSdhZG1pbnMnXSA9IFtdCisK KyAgICAgICAgICAgICAgICAgICAgZm9yIHIgaW4gZGF0YVt1J3JvbG1lbWJl cnNoaXAnXToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUocikg IT0gZGljdCBvciB1J3JvbGUnIG5vdCBpbiByIG9yIHUnYWRtaW4nIG5vdCBp biByOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmVj b25kaXRpb25fcmVxdWlyZWQobXNnKQorICAgICAgICAgICAgICAgICAgICAg ICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiByW3Un YWRtaW4nXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0 YVt1J2FkbWlucyddLmFwcGVuZChyW3Uncm9sZSddKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRhdGFbdSdtZW1iZXJzJ10uYXBwZW5kKHJbdSdyb2xlJ10p CisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg bXNnID0gXygiIiIKK1JvbGUgbWVtYmVyc2hpcCBpbmZvcm1hdGlvbiBtdXN0 IGJlIHBhc3NlZCBhIHN0cmluZyByZXByZXNlbnRpbmcgYW4gYXJyYXkgb2YK K0pTT04gb2JqZWN0IGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0Ogorcm9sbWVt YmVyc2hpcDp7CisgICAgJ2FkZGVkJzogW3sKKyAgICAgICAgcm9sZTogW3Jv bGVuYW1lXSwKKyAgICAgICAgYWRtaW46IFRydWUvRmFsc2UKKyAgICAgICAg fSwKKyAgICAgICAgLi4uCisgICAgICAgIF0sCisgICAgJ2RlbGV0ZWQnOiBb eworICAgICAgICByb2xlOiBbcm9sZW5hbWVdLAorICAgICAgICBhZG1pbjog VHJ1ZS9GYWxzZQorICAgICAgICB9LAorICAgICAgICAuLi4KKyAgICAgICAg XSwKKyAgICAndXBkYXRlZCc6IFt7CisgICAgICAgIHJvbGU6IFtyb2xlbmFt ZV0sCisgICAgICAgIGFkbWluOiBUcnVlL0ZhbHNlCisgICAgICAgIH0sCisg ICAgICAgIC4uLgorICAgICAgICBdCisiIiIpCisgICAgICAgICAgICAgICAg ICAgIGlmIHR5cGUoZGF0YVt1J3JvbG1lbWJlcnNoaXAnXSkgIT0gZGljdDoK KyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25f cmVxdWlyZWQobXNnKQorCisgICAgICAgICAgICAgICAgICAgIGRhdGFbdSdt ZW1iZXJzJ10gPSBbXQorICAgICAgICAgICAgICAgICAgICBkYXRhW3UnYWRt aW5zJ10gPSBbXQorICAgICAgICAgICAgICAgICAgICBkYXRhW3UncmV2b2tl ZF9hZG1pbnMnXSA9IFtdCisgICAgICAgICAgICAgICAgICAgIGRhdGFbdSdy ZXZva2VkJ10gPSBbXQorCisgICAgICAgICAgICAgICAgICAgIGlmIHUnYWRk ZWQnIGluIGRhdGFbdSdyb2xtZW1iZXJzaGlwJ106CisgICAgICAgICAgICAg ICAgICAgICAgICByb2xlcyA9IChkYXRhW3Uncm9sbWVtYmVyc2hpcCddKVt1 J2FkZGVkJ10KKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShy b2xlcykgIT0gbGlzdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKG1zZykKKworICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIHIgaW4gcm9sZXM6CisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgaWYgKHR5cGUocikgIT0gZGljdCBvciB1J3JvbGUn IG5vdCBpbiByIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1J2FkbWluJyBub3QgaW4gcik6CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQobXNn KQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgclt1J2FkbWlu J106CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGFbdSdh ZG1pbnMnXS5hcHBlbmQoclt1J3JvbGUnXSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhW3UnbWVtYmVycyddLmFwcGVuZChyW3Uncm9sZSddKQorCisg ICAgICAgICAgICAgICAgICAgIGlmIHUnZGVsZXRlZCcgaW4gZGF0YVt1J3Jv bG1lbWJlcnNoaXAnXToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGVz ID0gKGRhdGFbdSdyb2xtZW1iZXJzaGlwJ10pW3UnZGVsZXRlZCddCisKKyAg ICAgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUocm9sZXMpICE9IGxpc3Q6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRp dGlvbl9yZXF1aXJlZChtc2cpCisKKyAgICAgICAgICAgICAgICAgICAgICAg IGZvciByIGluIHJvbGVzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmIHR5cGUocikgIT0gZGljdCBvciB1J3JvbGUnIG5vdCBpbiByOgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0 aW9uX3JlcXVpcmVkKG1zZykKKworICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGRhdGFbdSdyZXZva2VkJ10uYXBwZW5kKHJbdSdyb2xlJ10pCisKKyAg ICAgICAgICAgICAgICAgICAgaWYgdSdjaGFuZ2VkJyBpbiAgZGF0YVt1J3Jv bG1lbWJlcnNoaXAnXToKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbGVz ID0gKGRhdGFbdSdyb2xtZW1iZXJzaGlwJ10pW3UnY2hhbmdlZCddCisKKyAg ICAgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUocm9sZXMpICE9IGxpc3Q6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRp dGlvbl9yZXF1aXJlZChtc2cpCisKKyAgICAgICAgICAgICAgICAgICAgICAg IGZvciByIGluIHJvbGVzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGlmICh0eXBlKHIpICE9IGRpY3Qgb3IgdSdyb2xlJyBub3QgaW4gciBvcgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdhZG1pbicg bm90IGluIHIpOgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKG1zZykKKworICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGlmIG5vdCByW3UnYWRtaW4nXToKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVt1J3Jldm9rZWRfYWRt aW5zJ10uYXBwZW5kKHJbdSdyb2xlJ10pCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZGF0YVt1J2FkbWlucyddLmFwcGVuZChyW3Uncm9sZSddKQorCisgICAg ICAgICAgICBpZiBzZWxmLm1hbmFnZXIudmVyc2lvbiA+PSA5MDIwMDoKKyAg ICAgICAgICAgICAgICBpZiB1J3NlY2xhYmVscycgaW4gZGF0YToKKyAgICAg ICAgICAgICAgICAgICAgaWYgdSdyaWQnIG5vdCBpbiBrd2FyZ3Mgb3Iga3dh cmdzWydyaWQnXSA9PSAtMToKKyAgICAgICAgICAgICAgICAgICAgICAgIG1z ZyA9IF8oIiIiCitTZWN1cml0eSBMYWJlbCBtdXN0IGJlIHBhc3NlZCBhcyBh biBhcnJheSBvZiBKU09OIG9iamVjdCBpbiB0aGUgZm9sbG93aW5nCitmb3Jt YXQ6CitzZWNsYWJlbHM6W3sKKyAgICBwcm92aWRlcjogPHByb3ZpZGVyPiwK KyAgICBsYWJlbDogPGxhYmVsPgorICAgIH0sCisgICAgLi4uCitdIiIiKQor ICAgICAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShkYXRhW3Unc2VjbGFi ZWxzJ10pICE9IGxpc3Q6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZChtc2cpCisKKyAgICAgICAg ICAgICAgICAgICAgICAgIGZvciBzIGluIGRhdGFbdSdzZWNsYWJlbHMnXToK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZShzKSAhPSBk aWN0IG9yIHUncHJvdmlkZXInIG5vdCBpbiBzIG9yCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHUnbGFiZWwnIG5vdCBpbiBzKToKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlv bl9yZXF1aXJlZChtc2cpCisgICAgICAgICAgICAgICAgICAgIGVsc2U6Cisg ICAgICAgICAgICAgICAgICAgICAgICBtc2cgPSBfKCIiIgorU2VjdXJpdHkg TGFiZWwgbXVzdCBiZSBwYXNzZWQgYXMgYW4gYXJyYXkgb2YgSlNPTiBvYmpl Y3QgaW4gdGhlIGZvbGxvd2luZworZm9ybWF0Ogorcm9sbWVtYmVyc2hpcDp7 CisgICAgJ2FkZGVkJzogW3sKKyAgICAgICAgcHJvdmlkZXI6IDxwcm92aWRl cj4sCisgICAgICAgIGxhYmVsOiA8bGFiZWw+CisgICAgICAgIH0sCisgICAg ICAgIC4uLgorICAgICAgICBdLAorICAgICdkZWxldGVkJzogW3sKKyAgICAg ICAgcHJvdmlkZXI6IDxwcm92aWRlcj4sCisgICAgICAgIGxhYmVsOiA8bGFi ZWw+CisgICAgICAgIH0sCisgICAgICAgIC4uLgorICAgICAgICBdLAorICAg ICd1cGRhdGVkJzogW3sKKyAgICAgICAgcHJvdmlkZXI6IDxwcm92aWRlcj4s CisgICAgICAgIGxhYmVsOiA8bGFiZWw+CisgICAgICAgIH0sCisgICAgICAg IC4uLgorICAgICAgICBdCisiIiIpCisgICAgICAgICAgICAgICAgICAgICAg ICBzZWNsYWJlbHMgPSBkYXRhW3Unc2VjbGFiZWxzJ10KKyAgICAgICAgICAg ICAgICAgICAgICAgIGlmIHR5cGUoc2VjbGFiZWxzKSAhPSBkaWN0OgorICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25f cmVxdWlyZWQobXNnKQorCisgICAgICAgICAgICAgICAgICAgICAgICBpZiB1 J2FkZGVkJyBpbiBzZWNsYWJlbHM6CisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgbmV3X3NlY2xhYmVscyA9IHNlY2xhYmVsc1t1J2FkZGVkJ10KKwor ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUobmV3X3NlY2xh YmVscykgIT0gbGlzdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZChtc2cpCisKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgcyBpbiBuZXdfc2VjbGFiZWxz OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZShz KSAhPSBkaWN0IG9yIHUncHJvdmlsZGVyJyBub3QgaW4gcyBvcgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUnbGFiZWwnIG5v dCBpbiBzKToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQobXNnKQorCisgICAgICAg ICAgICAgICAgICAgICAgICBpZiB1J2RlbGV0ZWQnIGluIHNlY2xhYmVsczoK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVkX3NlY2xhYmVs cyA9IHNlY2xhYmVsc1t1J2RlbGV0ZWQnXQorCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgdHlwZShyZW1vdmVkX3NlY2xhYmVscykgIT0gbGlz dDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHBy ZWNvbmRpdGlvbl9yZXF1aXJlZChtc2cpCisKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBmb3IgcyBpbiByZW1vdmVkX3NlY2xhYmVsczoKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUocykgIT0gZGlj dCBvciB1J3Byb3ZpbGRlcicgbm90IGluIHMpOgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1 aXJlZChtc2cpCisKKworICAgICAgICAgICAgICAgICAgICAgICAgaWYgdSdj aGFuZ2VkJyBpbiAgdmFyaWFibGVzOgorICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNoYW5nZWRfc2VjbGFiZWxzID0gc2VjbGFiZWxzW3UnZGVsZXRl ZCddCisKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiB0eXBlKGNo YW5nZWRfc2VjbGFiZWxzKSAhPSBsaXN0OgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKG1z ZykKKworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBzIGluIGNo YW5nZWRfc2VjbGFiZWxzOgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAodHlwZShzKSAhPSBkaWN0IG9yIHUncHJvdmlsZGVyJyBub3Qg aW4gcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGFuZCB1J2xhYmVsJyBub3QgaW4gcyk6CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVk KG1zZykKKworCisgICAgICAgICAgICBpZiB1J3ZhcmlhYmxlcycgaW4gZGF0 YToKKyAgICAgICAgICAgICAgICBpZiB1J3JpZCcgbm90IGluIGt3YXJncyBv ciBrd2FyZ3NbJ3JpZCddID09IC0xOgorICAgICAgICAgICAgICAgICAgICBt c2cgPSBfKCIiIgorQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzL3ZhcmlhYmxl cyBtdXN0IGJlIHBhc3NlZCBhcyBhbiBhcnJheSBvZiBKU09OIG9iamVjdCBp bgordGhlIGZvbGxvd2luZyBmb3JtYXQgKGNyZWF0ZSBtb2RlKToKK3Zhcmlh YmxlczpbeworICAgIGRhdGFiYXNlOiA8ZGF0YWJhc2U+IG9yIG51bGwsCisg ICAgbmFtZTogPGNvbmZpZ3VyYXRpb24+LAorICAgIHZhbHVlOiA8dmFsdWU+ CisgICAgfSwKKyAgICAuLi4KK10iIiIpCisgICAgICAgICAgICAgICAgICAg IGlmIHR5cGUoZGF0YVt1J3ZhcmlhYmxlcyddKSAhPSBsaXN0OgorICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJl ZChtc2cpCisKKyAgICAgICAgICAgICAgICAgICAgZm9yIHIgaW4gZGF0YVt1 J3ZhcmlhYmxlcyddOgorICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5 cGUocikgIT0gZGljdCBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICB1J25hbWUnIG5vdCBpbiByIG9yCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHUndmFsdWUnIG5vdCBpbiByKToKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVk KG1zZykKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAg ICAgICBtc2cgPSBfKCIiIgorQ29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzL3Zh cmlhYmxlcyBtdXN0IGJlIHBhc3NlZCBhcyBhbiBhcnJheSBvZiBKU09OIG9i amVjdCBpbgordGhlIGZvbGxvd2luZyBmb3JtYXQgKHVwZGF0ZSBtb2RlKToK K3JvbG1lbWJlcnNoaXA6eworICAgICdhZGRlZCc6IFt7CisgICAgICAgIGRh dGFiYXNlOiA8ZGF0YWJhc2U+IG9yIG51bGwsCisgICAgICAgIG5hbWU6IDxj b25maWd1cmF0aW9uPiwKKyAgICAgICAgdmFsdWU6IDx2YWx1ZT4KKyAgICAg ICAgfSwKKyAgICAgICAgLi4uCisgICAgICAgIF0sCisgICAgJ2RlbGV0ZWQn OiBbeworICAgICAgICBkYXRhYmFzZTogPGRhdGFiYXNlPiBvciBudWxsLAor ICAgICAgICBuYW1lOiA8Y29uZmlndXJhdGlvbj4sCisgICAgICAgIHZhbHVl OiA8dmFsdWU+CisgICAgICAgIH0sCisgICAgICAgIC4uLgorICAgICAgICBd LAorICAgICd1cGRhdGVkJzogW3sKKyAgICAgICAgZGF0YWJhc2U6IDxkYXRh YmFzZT4gb3IgbnVsbCwKKyAgICAgICAgbmFtZTogPGNvbmZpZ3VyYXRpb24+ LAorICAgICAgICB2YWx1ZTogPHZhbHVlPgorICAgICAgICB9LAorICAgICAg ICAuLi4KKyAgICAgICAgXQorIiIiKQorICAgICAgICAgICAgICAgICAgICB2 YXJpYWJsZXMgPSBkYXRhW3UndmFyaWFibGVzJ10KKyAgICAgICAgICAgICAg ICAgICAgaWYgdHlwZSh2YXJpYWJsZXMpICE9IGRpY3Q6CisgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKG1z ZykKKworICAgICAgICAgICAgICAgICAgICBpZiB1J2FkZGVkJyBpbiB2YXJp YWJsZXM6CisgICAgICAgICAgICAgICAgICAgICAgICBuZXdfdmFycyA9IHZh cmlhYmxlc1t1J2FkZGVkJ10KKworICAgICAgICAgICAgICAgICAgICAgICAg aWYgdHlwZShuZXdfdmFycykgIT0gbGlzdDoKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKG1zZykK KworICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHYgaW4gbmV3X3ZhcnM6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGUodikgIT0g ZGljdCBvciB1J25hbWUnIG5vdCBpbiB2IG9yCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1J3ZhbHVlJyBub3QgaW4gdik6CisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRp b25fcmVxdWlyZWQobXNnKQorCisgICAgICAgICAgICAgICAgICAgIGlmIHUn ZGVsZXRlZCcgaW4gdmFyaWFibGVzOgorICAgICAgICAgICAgICAgICAgICAg ICAgZGVsZXRlX3ZhcnMgPSB2YXJpYWJsZXNbdSdkZWxldGVkJ10KKworICAg ICAgICAgICAgICAgICAgICAgICAgaWYgdHlwZShkZWxldGVfdmFycykgIT0g bGlzdDoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJl Y29uZGl0aW9uX3JlcXVpcmVkKG1zZykKKworICAgICAgICAgICAgICAgICAg ICAgICAgZm9yIHYgaW4gZGVsZXRlX3ZhcnM6CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgdHlwZSh2KSAhPSBkaWN0IG9yIHUnbmFtZScgbm90 IGluIHY6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biBwcmVjb25kaXRpb25fcmVxdWlyZWQobXNnKQorCisgICAgICAgICAgICAg ICAgICAgIGlmIHUnY2hhbmdlZCcgaW4gIHZhcmlhYmxlczoKKyAgICAgICAg ICAgICAgICAgICAgICAgIG5ld192YXJzID0gdmFyaWFibGVzW3UnY2hhbmdl ZCddCisKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIHR5cGUobmV3X3Zh cnMpICE9IGxpc3Q6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZChtc2cpCisKKyAgICAgICAgICAg ICAgICAgICAgICAgIGZvciB2IGluIG5ld192YXJzOgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmICh0eXBlKHYpICE9IGRpY3Qgb3IgdSduYW1l JyBub3QgaW4gdiBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdSd2YWx1ZScgbm90IGluIHYpOgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKG1z ZykKKworICAgICAgICAgICAgc2VsZi5yZXF1ZXN0ID0gZGF0YQorCisgICAg ICAgICAgICByZXR1cm4gZihzZWxmLCAqKmt3YXJncykKKyAgICAgICAgcmV0 dXJuIHdyYXAKKworICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oYWN0aW9u PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiB3 aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrcyB0 aGUgc3RhdHVzCisgICAgICAgIG9mIHRoZSBkYXRhYmFzZSBjb25uZWN0aW9u IGZvciB0aGUgbWFpbnRhaW5hbmNlIGRhdGFiYXNlIG9mIHRoZSBzZXJ2ZXIs CisgICAgICAgIGJlZm9yZWV4ZWN1dGluZyByZXN0IG9mIHRoZSBvcGVyYXRp b24gZm9yIHRoZSB3cmFwcGVkIGZ1bmN0aW9uLiBJdCB3aWxsCisgICAgICAg IGFsc28gYXR0YWNoIG1hbmFnZXIsIGNvbm4gKG1haW50ZW5hbmNlIGNvbm5l Y3Rpb24gZm9yIHRoZSBzZXJ2ZXIpIGFzCisgICAgICAgIHByb3BlcnRpZXMg b2YgdGhlIGluc3RhbmNlLgorICAgICAgICAiIiIKKyAgICAgICAgZGVmIHdy YXAoZik6CisgICAgICAgICAgICBAd3JhcHMoZikKKyAgICAgICAgICAgIGRl ZiB3cmFwcGVkKHNlbGYsICoqa3dhcmdzKToKKyAgICAgICAgICAgICAgICBz ZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKAorICAgICAgICAgICAgICAgICAg ICAgICAgUEdfREVGQVVMVF9EUklWRVIKKyAgICAgICAgICAgICAgICAgICAg ICAgICkuY29ubmVjdGlvbl9tYW5hZ2VyKAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBrd2FyZ3NbJ3NpZCddCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICBzZWxmLmNvbm4g PSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbigpCisKKyAgICAgICAgICAgICAg ICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAg ICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF8oIkNvbm5lY3Rpb24gdG8gdGhlIHNl cnZlciBoYXMgYmVlbiBsb3N0ISIpCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKQorCisgICAgICAgICAgICAgICAgdmVyID0gc2VsZi5tYW5hZ2Vy LnZlcnNpb24KKworICAgICAgICAgICAgICAgIHNlbGYuc3FsX3BhdGggPSAn cm9sZS9zcWwvezB9LycuZm9ybWF0KAorICAgICAgICAgICAgICAgICAgICAn cG9zdDlfNCcgaWYgdmVyID49IDkwNTAwIGVsc2UgXAorICAgICAgICAgICAg ICAgICAgICAncG9zdDlfMScgaWYgdmVyID49IDkwMjAwIGVsc2UgXAorICAg ICAgICAgICAgICAgICAgICAncG9zdDlfMCcgaWYgdmVyID49IDkwMTAwIGVs c2UgXAorICAgICAgICAgICAgICAgICAgICAncG9zdDhfNCcKKyAgICAgICAg ICAgICAgICAgICAgKQorCisgICAgICAgICAgICAgICAgc2VsZi5hbHRlcktl eXMgPSBbCisgICAgICAgICAgICAgICAgICAgICAgICB1J3JvbGNhbmxvZ2lu JywgdSdyb2xzdXBlcicsIHUncm9sY3JlYXRlZGInLAorICAgICAgICAgICAg ICAgICAgICAgICAgdSdyb2xjcmVhdGVyb2xlJywgdSdyb2xpbmhlcml0Jywg dSdyb2xyZXBsaWNhdGlvbicsCisgICAgICAgICAgICAgICAgICAgICAgICB1 J3JvbGNvbm5saW1pdCcsIHUncm9sdmFsaWR1bnRpbCcsIHUncm9scGFzc3dv cmQnCisgICAgICAgICAgICAgICAgICAgICAgICBdIGlmIHZlciA+PSA5MDIw MCBlbHNlIFsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdy b2xjYW5sb2dpbicsIHUncm9sc3VwZXInLCB1J3JvbGNyZWF0ZWRiJywKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSdyb2xjcmVhdGVyb2xl JywgdSdyb2xpbmhlcml0JywgdSdyb2xjb25ubGltaXQnLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB1J3JvbHZhbGlkdW50aWwnLCB1J3Jv bHBhc3N3b3JkJworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBd CisKKyAgICAgICAgICAgICAgICBhdXRoX3RibD1GYWxzZQorICAgICAgICAg ICAgICAgIGNoZWNrX3Blcm1pc3Npb249RmFsc2UKKyAgICAgICAgICAgICAg ICBmZXRjaF9uYW1lPUZhbHNlCisgICAgICAgICAgICAgICAgZm9yYmlkZGVu X21zZyA9IE5vbmUKKworICAgICAgICAgICAgICAgIGlmIGFjdGlvbiBpbiBb J2xpc3QnLCAncHJvcGVydGllcyddOgorICAgICAgICAgICAgICAgICAgICBh dXRoX3RibCA9IFRydWUKKyAgICAgICAgICAgICAgICBlbGlmIGFjdGlvbiBp biBbJ2Ryb3AnLCAndXBkYXRlJ106CisgICAgICAgICAgICAgICAgICAgIGNo ZWNrX3Blcm1pc3Npb24gPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGZl dGNoX25hbWUgPSBUcnVlCisgICAgICAgICAgICAgICAgICAgIGlmIGFjdGlv biA9PSAnZHJvcCc6CisgICAgICAgICAgICAgICAgICAgICAgICBmb3JiaWRk ZW5fbXNnID0gXygKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IlRoZSBjdXJyZW50IHVzZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRv IGRyb3AgdGhlIHJvbGUhIgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg ICAgICAgICAgICAgICBmb3JiaWRkZW5fbXNnID0gXygKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIlRoZSBjdXJyZW50IHVzZXIgZG9lcyBu b3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHVwZGF0ZSB0aGUgcm9sZSEiCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAg ICBlbGlmIGFjdGlvbiA9PSAnY3JlYXRlJzoKKyAgICAgICAgICAgICAgICAg ICAgY2hlY2tfcGVybWlzc2lvbiA9IFRydWUKKyAgICAgICAgICAgICAgICAg ICAgZm9yYmlkZGVuX21zZyA9IF8oCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIlRoZSBjdXJyZW50IHVzZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNz aW9uIHRvIGNyZWF0ZSB0aGUgcm9sZSEiCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgICAgIGVsaWYgKGFjdGlvbiA9PSAn bXNxbCcgYW5kCisgICAgICAgICAgICAgICAgICAgICAgICAncmlkJyBpbiBr d2FyZ3MgYW5kIGt3YXJnc1sncmlkJ10gIT0gLTEpOgorICAgICAgICAgICAg ICAgICAgICBmZXRjaF9uYW1lID0gVHJ1ZQorCisgICAgICAgICAgICAgICAg aWYgYXV0aF90Ymw6CisgICAgICAgICAgICAgICAgICAgIHN0YXR1cywgcmVz ID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKAorICAgICAgICAgICAgICAg ICAgICAgICAgIlNFTEVDVCBoYXNfdGFibGVfcHJpdmlsZWdlKCdwZ19hdXRo aWQnLCAnU0VMRUNUJykiCisgICAgICAgICAgICAgICAgICAgICAgICApCisK KyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3Io CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF8oCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3IgY2hlY2tpbmcg dGhlIHBlcm1pc3Npb24gdG8gdGhlIHBnX2F1dGhpZCFcbnswfSIKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkuZm9ybWF0KHJlcykK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAg ICAgICAgICAgICBzZWxmLnJvbGVfdGJsID0gJ3BnX2F1dGhpZCcgaWYgcmVz IGVsc2UgJ3BnX3JvbGVzJworICAgICAgICAgICAgICAgIGVsc2U6CisgICAg ICAgICAgICAgICAgICAgIHNlbGYucm9sZV90YmwgPSAncGdfcm9sZXMnCisK KyAgICAgICAgICAgICAgICBpZiBjaGVja19wZXJtaXNzaW9uOgorICAgICAg ICAgICAgICAgICAgICB1c2VyID0gc2VsZi5tYW5hZ2VyLnVzZXJfaW5mbwor CisgICAgICAgICAgICAgICAgICAgIGlmIG5vdCB1c2VyWydpc19zdXBlcnVz ZXInXSBhbmQgbm90IHVzZXJbJ2Nhbl9jcmVhdGVfcm9sZSddOgorICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKGFjdGlvbiAhPSAndXBkYXRlJyBvcgor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAncmlkJyBpbiBrd2Fy Z3MgYW5kIGt3YXJnc1sncmlkJ10gIT0gLTEgYW5kCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHVzZXJbJ2lkJ10gIT0gcmlkKToKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZm9yYmlkZGVuKGZvcmJp ZGRlbl9tc2cpCisKKyAgICAgICAgICAgICAgICBpZiBmZXRjaF9uYW1lOgor ICAgICAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5l eGVjdXRlXzJkYXJyYXkoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg IiIiCitTRUxFQ1QKKyAgICByb2xuYW1lLCByb2xjYW5sb2dpbiwgcm9sY2F0 dXBkYXRlLCByb2xzdXBlcgorRlJPTQorICAgIHBnX3JvbGVzCitXSEVSRSBv aWQ9JShyaWQpczo6T0lEIiIiLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHsncmlkJzoga3dhcmdzWydyaWQnXX0KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICApCisKKyAgICAgICAgICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF8oCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi RVJST1I6IGZldGNoaW5nIHRoZSByb2xlIGluZm9ybWF0aW9uIVxuezB9Igor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKS5mb3JtYXQo cmVzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisKKyAg ICAgICAgICAgICAgICAgICAgaWYgbGVuKHJlc1sncm93cyddKSA9PSAwOgor ICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF8oIkNvdWxkbid0IGZpbmQgdGhl IHNwZWNpZmljIHJvbGUgaW4gdGhlIGRhdGFiYXNlIHNlcnZlciEiKQorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgICAg ICAgICAgICAgcm93ID0gcmVzWydyb3dzJ11bMF0KKworICAgICAgICAgICAg ICAgICAgICBzZWxmLnJvbGUgPSByb3dbMF0KKyAgICAgICAgICAgICAgICAg ICAgc2VsZi5yb2xDYW5Mb2dpbiA9IHJvd1sxXQorICAgICAgICAgICAgICAg ICAgICBzZWxmLnJvbENhdFVwZGF0ZSA9IHJvd1syXQorICAgICAgICAgICAg ICAgICAgICBzZWxmLnJvbFN1cGVyID0gcm93WzNdCisKKyAgICAgICAgICAg ICAgICByZXR1cm4gZihzZWxmLCAqKmt3YXJncykKKyAgICAgICAgICAgIHJl dHVybiB3cmFwcGVkCisgICAgICAgIHJldHVybiB3cmFwCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uKGFjdGlvbj0nbGlzdCcpCisgICAgZGVmIGxpc3Qo c2VsZiwgZ2lkLCBzaWQpOgorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYu Y29ubi5leGVjdXRlX2RpY3QoCisgICAgICAgICAgICAgICAgcmVuZGVyX3Rl bXBsYXRlKHNlbGYuc3FsX3BhdGggKyAncHJvcGVydGllcy5zcWwnLAorICAg ICAgICAgICAgICAgICAgICByb2xlX3RibD1zZWxmLnJvbGVfdGJsCisgICAg ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICAgICApCisKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoCisgICAgICAgICAgICAgICAgICAgIF8oCisgICAg ICAgICAgICAgICAgICAgICAgICAiRXJyb3IgZmV0Y2hpbmcgdGhlIHJvbGVz IGZyb20gdGhlIGRhdGFiYXNlIHNlcnZlciFcbnswfSIKKyAgICAgICAgICAg ICAgICAgICAgICAgICkuZm9ybWF0KHJlcykKKyAgICAgICAgICAgICAgICAg ICAgKQorCisgICAgICAgIHNlbGYudHJhbnNmb3JtKHJlcykKKworICAgICAg ICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICByZXNw b25zZT1yZXNbJ3Jvd3MnXSwKKyAgICAgICAgICAgICAgICBzdGF0dXM9MjAw CisgICAgICAgICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bihhY3Rpb249J25vZGVzJykKKyAgICBkZWYgbm9kZXMoc2VsZiwgZ2lkLCBz aWQpOgorCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVj dXRlXzJkYXJyYXkoCisgICAgICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRl KHNlbGYuc3FsX3BhdGggKyAnbm9kZXMuc3FsJywKKyAgICAgICAgICAgICAg ICAgICAgcm9sZV90Ymw9c2VsZi5yb2xlX3RibAorICAgICAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICAgICAgKQorCisgICAgICAgIGlmIG5vdCBz dGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKAorICAgICAgICAgICAgICAgICAgICBfKAorICAgICAgICAgICAgICAg ICAgICAgICAgIkVycm9yIGZldGNoaW5nIHRoZSByb2xlcyBpbmZvcm1hdGlv biBmcm9tIHRoZSBkYXRhYmFzZSBzZXJ2ZXIhXG57MH0iCisgICAgICAgICAg ICAgICAgICAgICAgICApLmZvcm1hdChyZXMpCisgICAgICAgICAgICAgICAg ICAgICkKKworICAgICAgICByZXMgPSBbXQorICAgICAgICBmb3Igcm93IGlu IHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQoCisgICAg ICAgICAgICAgICAgICAgIHNlbGYuYmx1ZXByaW50LmdlbmVyYXRlX2Jyb3dz ZXJfbm9kZSgKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvd1snb2lkJ10s CisgICAgICAgICAgICAgICAgICAgICAgICByb3dbJ3JvbG5hbWUnXSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICdpY29uLXJvbGUnIGlmIHJvd1sncm9s Y2FubG9naW4nXSBlbHNlICdpY29uLWdyb3VwJywKKyAgICAgICAgICAgICAg ICAgICAgICAgIGNhbl9sb2dpbj1yb3dbJ3JvbGNhbmxvZ2luJ10sCisgICAg ICAgICAgICAgICAgICAgICAgICBpc19zdXBlcnVzZXI9cm93Wydyb2xzdXBl ciddCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg ICAgICAgICkKKworICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNl KAorICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgICAg IHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uKGFjdGlvbj0nbm9kZScpCisgICAgZGVmIG5vZGUoc2Vs ZiwgZ2lkLCBzaWQsIHJpZCk6CisKKyAgICAgICAgc3RhdHVzLCByc2V0ID0g c2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheSgKKyAgICAgICAgICAgICAgICBy ZW5kZXJfdGVtcGxhdGUoc2VsZi5zcWxfcGF0aCArICdub2Rlcy5zcWwnLAor ICAgICAgICAgICAgICAgICAgICByaWQ9cmlkLAorICAgICAgICAgICAgICAg ICAgICByb2xlX3RibD1zZWxmLnJvbGVfdGJsCisgICAgICAgICAgICAgICAg ICAgICkKKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoCisgICAgICAgICAgICAgICAgICAgIF8oCisgICAgICAgICAgICAgICAg ICAgICAgICAiRXJyb3IgZmV0Y2hpbmcgdGhlIHJvbGVzIGluZm9ybWF0aW9u IGZyb20gdGhlIGRhdGFiYXNlIHNlcnZlciFcbnswfSIKKyAgICAgICAgICAg ICAgICAgICAgICAgICkuZm9ybWF0KHJlcykKKyAgICAgICAgICAgICAgICAg ICAgKQorCisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAg ICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAg ICAgICAgICAgICAgZGF0YT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93 c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgICAgICByb3dbJ29pZCdd LAorICAgICAgICAgICAgICAgICAgICAgICAgcm93Wydyb2xuYW1lJ10sCisg ICAgICAgICAgICAgICAgICAgICAgICAnaWNvbi1yb2xlJyBpZiByb3dbJ3Jv bGNhbmxvZ2luJ10gZWxzZSAnaWNvbi1ncm91cCcsCisgICAgICAgICAgICAg ICAgICAgICAgICBjYW5fbG9naW49cm93Wydyb2xjYW5sb2dpbiddLAorICAg ICAgICAgICAgICAgICAgICAgICAgaXNfc3VwZXJ1c2VyPXJvd1sncm9sc3Vw ZXInXQorICAgICAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAg ICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAgICApCisK KyAgICAgICAgcmV0dXJuIGdvbmUoXygiQ291bGRuJ3QgZmluZCB0aGUgcm9s ZSBpbmZvcm1hdGlvbiEiKSkKKworICAgIGRlZiB0cmFuc2Zvcm0oc2VsZiwg cnNldCk6CisgICAgICAgIGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAg ICAgICAgICAgcmVzID0gW10KKyAgICAgICAgICAgIHJvbGVzID0gcm93Wydy b2xtZW1iZXJzaGlwJ10KKyAgICAgICAgICAgIGZvciByb2xlIGluIHJvbGVz OgorICAgICAgICAgICAgICAgIHJvbGUgPSByZS5zZWFyY2gocicoWzAxXSko LispJywgcm9sZSkKKyAgICAgICAgICAgICAgICByZXMuYXBwZW5kKHsKKyAg ICAgICAgICAgICAgICAgICAgJ3JvbGUnOiByb2xlLmdyb3VwKDIpLAorICAg ICAgICAgICAgICAgICAgICAnYWRtaW4nOiBUcnVlIGlmIHJvbGUuZ3JvdXAo MSkgPT0gJzEnIGVsc2UgRmFsc2UKKyAgICAgICAgICAgICAgICAgICAgfSkK KyAgICAgICAgICAgIHJvd1sncm9sbWVtYmVyc2hpcCddID0gcmVzCisgICAg ICAgICAgICByb3dbJ3JvbHZhbGlkdW50aWwnXSA9IHJvd1sncm9sdmFsaWR1 bnRpbCddLmlzb2Zvcm1hdCgpIFwKKyAgICAgICAgICAgICAgICAgICAgaWYg aXNpbnN0YW5jZSgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByb3db J3JvbHZhbGlkdW50aWwnXSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAoZGF0ZXRpbWUuZGF0ZSwgZGF0ZXRpbWUuZGF0ZXRpbWUpCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKSBlbHNlIE5vbmUKKyAgICAgICAgICAg IGlmICdzZWNsYWJlbHMnIGluIHJvdyBhbmQgcm93WydzZWNsYWJlbHMnXSBp cyBub3QgTm9uZToKKyAgICAgICAgICAgICAgICByZXMgPSBbXQorICAgICAg ICAgICAgICAgIGZvciBzZWMgaW4gcm93WydzZWNsYWJlbHMnXToKKyAgICAg ICAgICAgICAgICAgICAgc2VjID0gcmUuc2VhcmNoKHInKFtePV0rKT0oLiok KScsIHNlYykKKyAgICAgICAgICAgICAgICAgICAgcmVzLmFwcGVuZCh7Cisg ICAgICAgICAgICAgICAgICAgICAgICAncHJvdmlkZXInOiBzZWMuZ3JvdXAo MSksCisgICAgICAgICAgICAgICAgICAgICAgICAnbGFiZWwnOiBzZWMuZ3Jv dXAoMikKKyAgICAgICAgICAgICAgICAgICAgICAgIH0pCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uKGFjdGlvbj0ncHJvcGVydGllcycpCisgICAgZGVm IHByb3BlcnRpZXMoc2VsZiwgZ2lkLCBzaWQsIHJpZCk6CisKKyAgICAgICAg c3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KAorICAgICAg ICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZShzZWxmLnNxbF9wYXRoICsgJ3By b3BlcnRpZXMuc3FsJywKKyAgICAgICAgICAgICAgICAgICAgcm9sZV90Ymw9 c2VsZi5yb2xlX3RibCwKKyAgICAgICAgICAgICAgICAgICAgcmlkPXJpZAor ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorCisg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKAorICAgICAgICAgICAgICAgICAgICBfKAor ICAgICAgICAgICAgICAgICAgICAgICAgIkVycm9yIGZldGNoaW5nIHRoZSBy b2xlcyBmcm9tIHRoZSBkYXRhYmFzZSBzZXJ2ZXIhXG57MH0iCisgICAgICAg ICAgICAgICAgICAgICAgICApLmZvcm1hdChyZXMpCisgICAgICAgICAgICAg ICAgICAgICkKKworICAgICAgICBzZWxmLnRyYW5zZm9ybShyZXMpCisgICAg ICAgIGlmIGxlbihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgIHJl dHVybiBnb25lKF8oIkNvdWxkbid0IGZpbmQgdGhlIHJvbGUgaW5mb3JtYXRp b24hIikpCisKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAg ICAgICAgICAgICAgcmVzcG9uc2U9cmVzWydyb3dzJ11bMF0sCisgICAgICAg ICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkKKworICAg IEBjaGVja19wcmVjb25kaXRpb24oYWN0aW9uPSdkcm9wJykKKyAgICBkZWYg ZHJvcChzZWxmLCBnaWQsIHNpZCwgcmlkKToKKworICAgICAgICBzdGF0dXMs IHJlcyA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoCisgICAgICAgICAg ICAgICAgIkRST1AgUk9MRSB7MH07Ii5mb3JtYXQoc2VsZi5yb2xlKQorICAg ICAgICAgICAgICAgICkKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoCisgICAgICAg ICAgICAgICAgICAgIF8oIkVSUk9SOiBDb3VsZG4ndCBkcm9wIHRoZSB1c2Vy IVxuezB9IikuZm9ybWF0KHJlcykKKyAgICAgICAgICAgICAgICAgICAgKQor CisgICAgICAgIHJldHVybiBzdWNjZXNzX3JldHVybigpCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uKCkKKyAgICBkZWYgc3FsKHNlbGYsIGdpZCwgc2lk LCByaWQpOgorICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVj dXRlX3NjYWxhcigKKyAgICAgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUo CisgICAgICAgICAgICAgICAgICAgIHNlbGYuc3FsX3BhdGggKyAnc3FsLnNx bCcsCisgICAgICAgICAgICAgICAgICAgIHJvbGVfdGJsPXNlbGYucm9sZV90 YmwKKyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICBk aWN0KHsncmlkJzpyaWR9KQorICAgICAgICAgICAgICAgICkKKworICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcigKKyAgICAgICAgICAgICAgICAgICAgXygiRVJST1I6 IENvdWxkbid0IGdlbmVyYXRlIHJldmVyc2VkIGVuZ2luZWVyZWQgUXVlcnkg Zm9yIHRoZSByb2xlL3VzZXIhXG57MH0iKS5mb3JtYXQoCisgICAgICAgICAg ICAgICAgICAgICAgICByZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICkK KyAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgIGlmIHJlcyBpcyBO b25lOgorICAgICAgICAgICAgcmV0dXJuIGdvbmUoCisgICAgICAgICAgICAg ICAgICAgIF8oIkVSUk9SOiBDb3VsZG4ndCBnZW5lcmF0ZSByZXZlcnNlZCBl bmdpbmVlcmVkIFF1ZXJ5IGZvciB0aGUgcm9sZS91c2VyISIpCisgICAgICAg ICAgICAgICAgICAgICkKKworICAgICAgICByZXR1cm4gYWpheF9yZXNwb25z ZShyZXNwb25zZT1yZXMpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uKGFj dGlvbj0nY3JlYXRlJykKKyAgICBkZWYgc3FsKHNlbGYsIGdpZCwgc2lkLCBy aWQpOgorCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAg ICAgICAgICAgICBzZWxmLnNxbF9wYXRoICsgJ2NyZWF0ZS5zcWwnLAorICAg ICAgICAgICAgICAgIGRhdGE9c2VsZi5yZXF1ZXN0LAorICAgICAgICAgICAg ICAgIGR1bW15PUZhbHNlLAorICAgICAgICAgICAgICAgIGNvbm49c2VsZi5j b25uCisgICAgICAgICAgICAgICAgKQorCisgICAgICAgIHN0YXR1cywgbXNn ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisKKyAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoCisgICAgICAgICAgICAgICAgICAgIF8oIkVSUk9SOiBDb3Vs ZG4ndCBjcmVhdGUgdGhlIHJvbGUhXG57MH0iKS5mb3JtYXQobXNnKQorICAg ICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgc3RhdHVzLCByaWQgPSBz ZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoCisgICAgICAgICAgICAgICAgIlNF TEVDVCBvaWQgRlJPTSB7MH0gV0hFUkUgcm9sbmFtZSA9ICUocm9sbmFtZSlz Ii5mb3JtYXQoCisgICAgICAgICAgICAgICAgICAgIHNlbGYucm9sZV90YmwK KyAgICAgICAgICAgICAgICAgICAgKSwKKyAgICAgICAgICAgICAgICB7J3Jv bG5hbWUnOiBzZWxmLnJlcXVlc3RbdSdyb2xuYW1lJ119CisgICAgICAgICAg ICAgICAgKQorCisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAg ICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKAorICAgICAgICAgICAg ICAgICAgICBfKCJFUlJPUjogQ291bGRuJ3QgZmV0Y2ggdGhlIHJvbGUgaW5m b3JtYXRpb24hXG57MH0iKS5mb3JtYXQobXNnKQorICAgICAgICAgICAgICAg ICAgICApCisKKworICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9kaWN0KAorICAgICAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0 ZShzZWxmLnNxbF9wYXRoICsgJ25vZGVzLnNxbCcsCisgICAgICAgICAgICAg ICAgICAgIHJpZD1yaWQsCisgICAgICAgICAgICAgICAgICAgIHJvbGVfdGJs PXNlbGYucm9sZV90YmwKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAg ICAgICAgICAgICkKKworICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcigKKyAgICAgICAg ICAgICAgICAgICAgXygKKyAgICAgICAgICAgICAgICAgICAgICAgICJFcnJv ciBmZXRjaGluZyB0aGUgcm9sZXMgaW5mb3JtYXRpb24gZnJvbSB0aGUgZGF0 YWJhc2Ugc2VydmVyIVxuezB9IgorICAgICAgICAgICAgICAgICAgICAgICAg KS5mb3JtYXQocmVzKQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAg IGZvciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgcmV0dXJu IGpzb25pZnkoCisgICAgICAgICAgICAgICAgICAgIG5vZGU9c2VsZi5ibHVl cHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAg ICAgICAgICAgcmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgcm93Wydy b2xuYW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbi1yb2xl JyBpZiByb3dbJ3JvbGNhbmxvZ2luJ10gZWxzZSAnaWNvbi1ncm91cCcsCisg ICAgICAgICAgICAgICAgICAgICAgICBjYW5fbG9naW49cm93Wydyb2xjYW5s b2dpbiddCisgICAgICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAg ICAgICAgICAgICkKKworICAgICAgICByZXR1cm4gZ29uZShfKCJDb3VsZG4n dCBmaW5kIHRoZSByb2xlIGluZm9ybWF0aW9uISIpKQorCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbihhY3Rpb249J3VwZGF0ZScpCisgICAgQHZhbGlkYXRl X3JlcXVlc3QKKyAgICBkZWYgdXBkYXRlKHNlbGYsIGdpZCwgc2lkLCByaWQp OgorCisgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAg ICAgICAgICBzZWxmLnNxbF9wYXRoICsgJ3VwZGF0ZS5zcWwnLAorICAgICAg ICAgICAgICAgIGRhdGE9c2VsZi5yZXF1ZXN0LAorICAgICAgICAgICAgICAg IGR1bW15PUZhbHNlLAorICAgICAgICAgICAgICAgIGNvbm49c2VsZi5jb25u LAorICAgICAgICAgICAgICAgIHJvbGU9c2VsZi5yb2xlLAorICAgICAgICAg ICAgICAgIHJvbENhbkxvZ2luPXNlbGYucm9sQ2FuTG9naW4sCisgICAgICAg ICAgICAgICAgcm9sQ2F0VXBkYXRlPXNlbGYucm9sQ2F0VXBkYXRlLAorICAg ICAgICAgICAgICAgIHJvbFN1cGVyPXNlbGYucm9sU3VwZXIsCisgICAgICAg ICAgICAgICAgYWx0ZXJLZXlzPXNlbGYuYWx0ZXJLZXlzCisgICAgICAgICAg ICAgICAgKQorCisgICAgICAgIHN0YXR1cywgbXNnID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChzcWwpCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoCisgICAg ICAgICAgICAgICAgICAgIF8oIkVSUk9SOiBDb3VsZG4ndCBjcmVhdGUgdGhl IHJvbGUhXG57MH0iKS5mb3JtYXQobXNnKQorICAgICAgICAgICAgICAgICAg ICApCisKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1 dGVfZGljdCgKKyAgICAgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUoc2Vs Zi5zcWxfcGF0aCArICdub2Rlcy5zcWwnLAorICAgICAgICAgICAgICAgICAg ICByaWQ9cmlkLAorICAgICAgICAgICAgICAgICAgICByb2xlX3RibD1zZWxm LnJvbGVfdGJsCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAg ICAgICApCisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoCisgICAgICAgICAgICAg ICAgICAgIF8oCisgICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3IgZmV0 Y2hpbmcgdGhlIHJvbGVzIGluZm9ybWF0aW9uIGZyb20gdGhlIGRhdGFiYXNl IHNlcnZlciFcbnswfSIKKyAgICAgICAgICAgICAgICAgICAgICAgICkuZm9y bWF0KHJlcykKKyAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgIGZv ciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgcmV0dXJuIGpz b25pZnkoCisgICAgICAgICAgICAgICAgICAgIG5vZGU9c2VsZi5ibHVlcHJp bnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAg ICAgICAgcmlkLAorICAgICAgICAgICAgICAgICAgICAgICAgcm93Wydyb2xu YW1lJ10sCisgICAgICAgICAgICAgICAgICAgICAgICAnaWNvbi1yb2xlJyBp ZiByb3dbJ3JvbGNhbmxvZ2luJ10gZWxzZSAnaWNvbi1ncm91cCcsCisgICAg ICAgICAgICAgICAgICAgICAgICBjYW5fbG9naW49cm93Wydyb2xjYW5sb2dp biddLAorICAgICAgICAgICAgICAgICAgICAgICAgaXNfc3VwZXJ1c2VyPXJv d1sncm9sc3VwZXInXQorICAgICAgICAgICAgICAgICAgICAgICAgKQorICAg ICAgICAgICAgICAgICAgICApCisKKyAgICAgICAgcmV0dXJuIGdvbmUoXygi Q291bGRuJ3QgZmluZCB0aGUgcm9sZSBpbmZvcm1hdGlvbiEiKSkKKworICAg IEBjaGVja19wcmVjb25kaXRpb24oYWN0aW9uPSdtc3FsJykKKyAgICBAdmFs aWRhdGVfcmVxdWVzdAorICAgIGRlZiBtc3FsKHNlbGYsIGdpZCwgc2lkLCBy aWQ9LTEpOgorICAgICAgICBpZiByaWQgPT0gLTE6CisgICAgICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAg ICBkYXRhPXJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAg ICAgIHNlbGYuc3FsX3BhdGggKyAnY3JlYXRlLnNxbCcsCisgICAgICAgICAg ICAgICAgICAgICAgICBkYXRhPXNlbGYucmVxdWVzdCwKKyAgICAgICAgICAg ICAgICAgICAgICAgIGR1bW15PVRydWUsCisgICAgICAgICAgICAgICAgICAg ICAgICBjb25uPXNlbGYuY29ubgorICAgICAgICAgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgIGVsc2U6CisgICAg ICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAg ICAgICAgICAgICBkYXRhPXJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc3FsX3BhdGggKyAndXBkYXRlLnNxbCcsCisg ICAgICAgICAgICAgICAgICAgICAgICBkYXRhPXNlbGYucmVxdWVzdCwKKyAg ICAgICAgICAgICAgICAgICAgICAgIGR1bW15PVRydWUsCisgICAgICAgICAg ICAgICAgICAgICAgICBjb25uPXNlbGYuY29ubiwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHJvbGU9c2VsZi5yb2xlLAorICAgICAgICAgICAgICAgICAg ICAgICAgcm9sQ2FuTG9naW49c2VsZi5yb2xDYW5Mb2dpbiwKKyAgICAgICAg ICAgICAgICAgICAgICAgIHJvbENhdFVwZGF0ZT1zZWxmLnJvbENhdFVwZGF0 ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvbFN1cGVyPXNlbGYucm9s U3VwZXIsCisgICAgICAgICAgICAgICAgICAgICAgICBhbHRlcktleXM9c2Vs Zi5hbHRlcktleXMKKyAgICAgICAgICAgICAgICAgICAgICAgICkKKyAgICAg ICAgICAgICAgICAgICAgKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbigp CisgICAgZGVmIGRlcGVuZGVuY2llcyhzZWxmLCBnaWQsIHNpZCwgcmlkKToK KyAgICAgICAgcmV0dXJuIG5vdF9pbXBsZW1lbnRlZCgpCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uKCkKKyAgICBkZWYgZGVwZW5kZW50cyhzZWxmLCBn aWQsIHNpZCwgcmlkKToKKyAgICAgICAgcmV0dXJuIG5vdF9pbXBsZW1lbnRl ZCgpCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uKCkKKyAgICBkZWYgdmFy aWFibGVzKHNlbGYsIGdpZCwgc2lkLCByaWQpOgorCisgICAgICAgIHN0YXR1 cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoCisgICAgICAgICAg ICAgICAgcmVuZGVyX3RlbXBsYXRlKHNlbGYuc3FsX3BhdGggKyAndmFyaWFi bGVzLnNxbCcsCisgICAgICAgICAgICAgICAgICAgIHJpZD1yaWQKKyAgICAg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICkKKworICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcigKKyAgICAgICAgICAgICAgICAgICAgXygKKyAgICAg ICAgICAgICAgICAgICAgICAgICJFcnJvciBmZXRjaGluZyB0aGUgdmFyaWFi bGUgaW5mb3JtYXRpb24gZm9yIHRoZSBnaXZlbiByb2xlIVxuezB9IgorICAg ICAgICAgICAgICAgICAgICAgICAgKS5mb3JtYXQocnNldCkKKyAgICAgICAg ICAgICAgICAgICAgKQorCisgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVz cG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1yc2V0Wydyb3dzJ10KKyAg ICAgICAgICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uKCkK KyAgICBkZWYgdm9wdGlvbnMoc2VsZiwgZ2lkLCBzaWQpOgorCisgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdCgKKyAgICAg ICAgICAgICAgICAiIiIKK1NFTEVDVAorCW5hbWUsIHZhcnR5cGUsIG1pbl92 YWwsIG1heF92YWwsIGVudW12YWxzCitGUk9NCisgICAgKAorCVNFTEVDVAor CQkncm9sZSc6OnRleHQgQVMgbmFtZSwgJ3N0cmluZyc6OnRleHQgQVMgdmFy dHlwZSwKKwkJTlVMTCBBUyBtaW5fdmFsLCBOVUxMIEFTIG1heF92YWwsIE5V TEw6OnRleHRbXSBBUyBlbnVtdmFscworCVVOSU9OIEFMTAorCVNFTEVDVAor CQluYW1lLCB2YXJ0eXBlLCBtaW5fdmFsOjpudW1lcmljIEFTIG1pbl92YWws IG1heF92YWw6Om51bWVyaWMgQVMgbWF4X3ZhbCwgZW51bXZhbHMKKwlGUk9N CisJCXBnX3NldHRpbmdzCisJV0hFUkUKKwkJY29udGV4dCBpbiAoJ3VzZXIn LCAnc3VwZXJ1c2VyJykKKwkpIGEiIiIpCisKKyAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoCisgICAgICAgICAgICAgICAgICAgIF8oCisgICAgICAgICAgICAgICAg ICAgICAgICAiRXJyb3IgZmV0Y2hpbmcgdGhlIHZhcmlhYmxlIG9wdGlvbnMg Zm9yIHJvbGUhXG57MH0iCisgICAgICAgICAgICAgICAgICAgICAgICApLmZv cm1hdChyZXMpCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAgcmV0 dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICBkYXRh PXJlc1sncm93cyddCisgICAgICAgICAgICAgICAgKQorCisKK1JvbGVWaWV3 LnJlZ2lzdGVyX25vZGVfdmlldyhibHVlcHJpbnQpCmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xl cy9zdGF0aWMvaW1nL2NvbGwtcm9sZS5wbmcgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy9zdGF0aWMvaW1nL2Nv bGwtcm9sZS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjVjMjBiZmI5 ZGYzZmNmZDU2MzcxNDJiNWVkYWRlZTg4ZDE2ZjFkZApHSVQgYmluYXJ5IHBh dGNoCmxpdGVyYWwgNDcyCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEwdnBeMHdC ITYzP3d5bGBHYkt9ZHdAQGZFMDh7Vl5re3YzZVJxNClnYDt+ZQp6OU5wTDUt dW1PISF8JCkyb0lpVHhgPlBre2p+P0hAZX04di1NfDRhflpGNVYwYVk8ZnJO bzhZOFI3fWtGP2J+fiUKelBRVVclIS1XP2dQQ2ZnMDxuaE8lbnVncm0rfVgy ZEgjOVZDSWRXcHcjeSEhfChQdGpOLXVLe1JaaDF7ZlJkd1RwCno9P2ZQdzM9 SXR9dUJAS0ZgXyNNKitqcmRpd0RKMHorfEsoZ0smTFI0MW87SXNJNlMrTjJJ TyFTY3RqUWhYJThAVgp6SkRGXzxXT1I3Q0lFRn1FX1UqZVYpP35vTGRpZXcm KkQwbVlpQS1IUHtgfih3KFRybm56R3ZEd1VJcT5xIztfeWoKejNUPjtLYHtZ fFZxJnhFamolR35rNmhIUitoIVRIaG5heHdfJFNHSE1QTWZaTVBpKWk5JVho TnVsWT5nUHpGfmlCCnp8S2dLUUxXcTlYSH16ZTZyMmljP3NaSUkrUzJNMGFj dyZ9YHZIOFVSe2gzajw1d3BWUEFNJDszb15jbj9wO2lDNAp6aTI+Y0RUSCtj fWw5RWBHWUwjNCszWnhpfTM9OW8pNFVLZFMzYDJ8enRXMW9wT2laOzZPc3h6 ST1EcEtmZ2B5IWgKbUtQNUEqNX45SnQ2MDhCSitRaURoNDVIIUdedzJkeDRH ZjtIZWxGe3I1fUUqSmQmWDElCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9yb2xlcy9zdGF0aWMvaW1nL2dyb3VwLnBuZyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3N0YXRp Yy9pbWcvZ3JvdXAucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxOWZm ODEwZjQ5ZjkzN2ZjM2ZjNmQxZDg1YTAxYTJmNGJkODEyNzcKR0lUIGJpbmFy eSBwYXRjaApsaXRlcmFsIDgwNAp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHZw XjB3QiE2Mz93eWxgR1hsNDd8UjJFTFJeOHxSalhETjc4V0tZI3hHcXMKekB6 I317SD9Rbm12VClMdXdgVl90KDdDeUBkKldpRWBXcChqJnVpSCt6ajt6cTtp cUAhcmNMY1F3V2p5WCtNYVhrCnpkTTxBMG5iSzE1PGlYKl4zbnhXSk01SEZo UEd+R1J5c1o4NXJ0U2t2bnZ4T3xtTUByal91YDRXN2YmcilGZWZRNwp6QHgt ZE90REN6SUVwNlB0ZX03VV57RXxoSmUhUk4+PEpINk91TzVHWV49I1JLYEJQ ZzhaZnh6RShOPDhMbXdJJGwKenxFZ0tfUUlYLV9VJWp8PEBsdHdIT2hSbmJe NXg2ZCZUSWJ2VkFjUW8lTH1zO3pyVDhZPWktJSFzSVVwRTt1anJCCnokfUVi Z3NIbkplV2FqXzczcyVqantRbTBndklVRHl7bW5TPko4aTxNKnI9JGVVJD5Z M3pjWTlMaW5ecjRxPFEtaQp6a04tK3RjUmU5QUgxeSUmP3dvPnhSWGNXMXAx JndGSCROamN6aVpDWSpfLXlIPU40fGhue0BPP0BffG9AfDhHczcKenpJZkBT bW1raFB8OUpCMCQwTHRGP3RsMWtfeCtGRU9KV1h4T0ZaOzc7czVvQ0o1T0tP Y0s2ZVExRENTUCFWaTlsCnpwRk1sX3w3KDN3NW4tbnV6dWtRTSk0RlQjQXxn WS1UWCtpcmdQeVNAJFM7X3w7bnxIZUFjd1FTQmVFRHNkd3tYcQp6JCF0M3k8 QjZ3PlZ+RTclPE9Db3tObEhwX1VePTYtQ2crWEVwJmxLWElXYU1KWjEmWHJW WHskUlIwfnN4NTlrUHcKemEwJjV8Uzw9P28rd0pXWDxRMyU+PUhvWXliNGx4 NVp6c248JnEmdSQtJmtncTF1S3s4RT9LZDdfNDUzTGoxLTxyCnpObDk2MD5z WCNkTT9eX1JHeWdRKFJgIWtXbCo3S29sUSh5LW1TJTM9LU0pQUViZ2x7Uy0j Jml5YGcjNmcwZjg1aQp6QjVTZXxVT297UGRMPUlRP3dyNndOZkFqPVN6JjRN YDRlVkxuSW0qU0t5WnJHI0EpKjsmWVVffGM+ZTZeQCZeU2IKek1oT0lSSlFF azR7JCNxRiE0JWdpO1VQXndMJDhgSDYtPyFFNUw1e2AjPXYwbCh8Rk17LTdr U2F8RWlYX013RnheCnptWlZ4RzdvYEZ6MXx0SlExNkBOU1Q/NH1xQkxnY0ZW PUVJPVozOXkpMUF9PypeajR2MCRqd2o1T3NqLXdGdDd3YApjMElEe3pHQkFU Xkk1ajxWNE53RHZyPm1kS0k7VnN0MENzX2I5Ukw2VAoKbGl0ZXJhbCAwCkhj bVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvc3RhdGljL2ltZy9yb2xlLnBu ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3JvbGVzL3N0YXRpYy9pbWcvcm9sZS5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMC4uZWY1NGU4OGFkNWVkNzU0M2ZlNWNiYzI4N2VjZDk5N2E0NzAwMjZi ZApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNTU3CnpjbWVBU0BOPyhvbEh5 YHVWQnEhaWEwdnBeMHdCITYzP3d5bGBHYk1mYDJlMn5TMEZ1ZT1GRl9EdGk1 fnApPlZ+bgp6VSRefHBqZE0/S1QtZGc1UmI1ciheKXJXbXl0QEQ2KXgrPHY5 KHtsSDxvY1BEYnlaZDBVcEBRJj5jekhvPiVQQncKel80dmxFQDJ9b0d6SCQ1 ZXQ5UlNoWk09NW9MVHl6fGJXQldDT2lXZzg/eUBjMHc7Vm0kSzRFZjdkUFpg M01zd2ZmCno3NWgpa1QpUkNySjJ4c1NZVm41NlM2K1IlYDB+VEs9TzBjI2Aq ezR4JDBMdEY5KD8kNT99THclUiYwcmdpZi09ZQp6Kj4mJkpfUGR8VFRZSUtW blgre0FfQVBmbE88MSlmRkU0Tlo8KHIjc2VfREwoYzBAJFBuV3loSS11a3JS IylyXyoKelB9WmR6RHVHXk5FRDc9cFdeajBSQk1yI21FYnhkZDJHU20yPn49 RVM0Iz00NT5FYWs3YW9QM2tPUUN9WEI1ZTs8Cno/JmopLWhQdUF9eS0mPF8h dGVjUm88NG89P3woaXckQ0JlQHFMYVpkfEk1NldIXzdyZyV7d2pMckZ1UjFT WDtyKQp6TjJ8NHl5dXo2bUhMMXBPaGFUOGdWJXl+MnIrdWc2cTQodl8lPzRm M3JgfDVQe1BydlI7ZnBfPnBEWnpwKjltYHAKendydTxLaFlNPEs9QylxdXsh ISYhZEUodUo8SG5DMF9aQGk4fEZraVhaODErUnFyWlpmKzNLeUlSc2JFU1RI K2N9CnpsOUVgR1lMIzQrM1p4aX0zPTlvKTRVS2RTM2AyfHp0VzFvcE9pWjs2 T3N4ekk9RHBLZmdgeSFoS1A1QSo1fjlKdAplNjA4QkorUWlEaDQ1SCFHXncy ZHg0R2Y7SGVsRntyNX1FKjJkPEAkRgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAx CgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxhdGVzL3JvbGUvY3NzL3JvbGUuY3Nz IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv cm9sZXMvdGVtcGxhdGVzL3JvbGUvY3NzL3JvbGUuY3NzCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjcxNDVmZWMKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9jc3Mvcm9sZS5jc3MKQEAgLTAs MCArMSwyNyBAQAorLmljb24tcm9sZSB7CisgIGJhY2tncm91bmQtaW1hZ2U6 IHVybCgne3sgdXJsX2ZvcignTk9ERS1yb2xlLnN0YXRpYycsIGZpbGVuYW1l PSdpbWcvcm9sZS5wbmcnKX19JykgIWltcG9ydGFudDsKKyAgYmFja2dyb3Vu ZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgYWxpZ24tY29udGVudDogY2VudGVy OworICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworIGhlaWdodDogMS4zZW07 Cit9CisKKy5pY29uLWdyb3VwIHsKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJs KCd7eyB1cmxfZm9yKCdOT0RFLXJvbGUuc3RhdGljJywgZmlsZW5hbWU9J2lt Zy9ncm91cC5wbmcnKX19JykgIWltcG9ydGFudDsKKyAgYmFja2dyb3VuZC1y ZXBlYXQ6IG5vLXJlcGVhdDsKKyAgYWxpZ24tY29udGVudDogY2VudGVyOwor ICB2ZXJ0aWNhbC1hbGlnbjogbWlkZGxlOworICBoZWlnaHQ6IDEuM2VtOwor fQorCisucGdhZG1pbi1ub2RlLXNlbGVjdCBvcHRpb25bbm9kZT0icm9sZSJd IHsKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCd7eyB1cmxfZm9yKCdOT0RF LXJvbGUuc3RhdGljJywgZmlsZW5hbWU9J2ltZy9yb2xlLnBuZycpfX0nKSAh aW1wb3J0YW50OworICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Owor ICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgbGVmdDsKK30KKworLnBn YWRtaW4tbm9kZS1zZWxlY3Qgb3B0aW9uW25vZGU9Imdyb3VwIl0geworICBi YWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3t7IHVybF9mb3IoJ05PREUtcm9sZS5z dGF0aWMnLCBmaWxlbmFtZT0naW1nL2dyb3VwLnBuZycpfX0nKSAhaW1wb3J0 YW50OworICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0OworICBiYWNr Z3JvdW5kLXBvc2l0aW9uOiBjZW50ZXIgbGVmdDsKK30KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jv bGVzL3RlbXBsYXRlcy9yb2xlL2pzL3JvbGUuanMgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0ZXMv cm9sZS9qcy9yb2xlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmRjMTJmMGIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0 ZXMvcm9sZS9qcy9yb2xlLmpzCkBAIC0wLDAgKzEsNDE5IEBACitkZWZpbmUo CisgICAgWworICAgICdqcXVlcnknLCAndW5kZXJzY29yZScsICd1bmRlcnNj b3JlLnN0cmluZycsICdwZ2FkbWluJywgJ3BnYWRtaW4uYnJvd3NlcicsCisg ICAgJ2FsZXJ0aWZ5JywgJ3BnYWRtaW4uYmFja2Zvcm0nLCAnc2VsZWN0Mics ICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbicsCisgICAgJ3BnYWRtaW4u YnJvd3Nlci5ub2RlLnVpJywgJ3BnYWRtaW4uYnJvd3Nlci5zZXJ2ZXIudmFy aWFibGUnCisgICAgXSwKK2Z1bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBn QnJvd3NlciwgYWxlcnRpZnksIEJhY2tmb3JtKSB7CisKKyAgaWYgKCFwZ0Jy b3dzZXIuTm9kZXNbJ2NvbGwtcm9sZSddKSB7CisgICAgdmFyIHJvbGUgPSBw Z0FkbWluLkJyb3dzZXIuTm9kZXNbJ2NvbGwtcm9sZSddID0KKyAgICAgIHBn QWRtaW4uQnJvd3Nlci5Db2xsZWN0aW9uLmV4dGVuZCh7CisgICAgICAgIG5v ZGU6ICdyb2xlJywKKyAgICAgICAgdHlwZTogJ2NvbGwtcm9sZScKKyAgICAg IH0pOworICB9OworCisgIHZhciBTZWN1cml0eU1vZGVsID0gQmFja2Zvcm0u U2VjdXJpdHlNb2RlbCA9IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4 dGVuZCh7CisgICAgZGVmYXVsdHM6IHsKKyAgICAgIHByb3ZpZGVyOiBudWxs LAorICAgICAgc2VjdXJpdHlfbGFiZWw6IG51bGwKKyAgICB9LAorICAgIHNj aGVtYTogW3sKKyAgICAgIGlkOiAncHJvdmlkZXInLCBsYWJlbDogJ3t7IF8o J1Byb3ZpZGVyJykgfX0nLAorICAgICAgdHlwZTogJ3RleHQnCisgICAgfSx7 CisgICAgICBpZDogJ3NlY3VyaXR5X2xhYmVsJywgbGFiZWw6ICd7eyBfKCdT ZWN1cml0eSBMYWJlbCcpIH19JywKKyAgICAgIHR5cGU6ICd0ZXh0JworICAg IH1dLAorICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpIHsKKyAgICAgIHZhciBl cnIgPSB7fSwKKyAgICAgICAgICBlcnJtc2cgPSBudWxsLAorICAgICAgICAg IGRhdGEgPSB0aGlzLnRvSlNPTigpOworCisgICAgICBpZiAoXy5pc1VuZGVm aW5lZChkYXRhLmxhYmVsKSB8fAorICAgICAgICBfLmlzTnVsbChkYXRhLmxh YmVsKSB8fAorICAgICAgICBTdHJpbmcoZGF0YS5sYWJlbCkucmVwbGFjZSgv XlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAgICAgICByZXR1cm4gXygi UGxlYXNlIHNwZWNpZnkgdGhlIHZhbHVlIGZvciBhbGwgdGhlIHNlY3VyaXR5 IHByb3ZpZGVycy4iKTsKKyAgICAgIH0KKyAgICAgIHJldHVybiBudWxsOwor ICAgIH0KKyAgfSk7CisKKyAgdmFyIHN3aXRjaE9wdGlvbnMgPSB7CisgICAg J29uVGV4dCc6ICdZZXMnLCAnb2ZmVGV4dCc6ICdObycsCisgICAgJ29uQ29s b3InOiAnd2FybmluZycsICdvZmZDb2xvcic6ICdwcmltYXJ5JywKKyAgICAn c2l6ZSc6ICdzbWFsbCcKKyAgfTsKKworICB2YXIgUm9sZU1lbWJlcnNDb250 cm9sID0gQmFja2Zvcm0uQ29udHJvbC5leHRlbmQoeworICAgIGRlZmF1bHRz OiBfLmRlZmF1bHRzKAorICAgICAgICAgICAgICAgIHtleHRyYUNsYXNzZXM6 IFsnY29sLXhzLTEyIGNvbC1zbS0xMiBjb2wtbWQtMTInXX0sCisgICAgICAg ICAgICAgICAgQmFja2Zvcm0uTm9kZUxpc3RCeU5hbWVDb250cm9sLnByb3Rv dHlwZS5kZWZhdWx0cworICAgICAgICAgICAgICAgICksCisgICAgaW5pdGlh bGl6ZTogZnVuY3Rpb24oKSB7CisgICAgICBCYWNrZm9ybS5Ob2RlTGlzdEJ5 TmFtZUNvbnRyb2wucHJvdG90eXBlLmluaXRpYWxpemUuYXBwbHkodGhpcywg YXJndW1lbnRzKTsKKyAgICB9LAorICAgIGZvcm1hdHRlcjogeworICAgICAg ZnJvbVJhdzogZnVuY3Rpb24gKHJhd0RhdGEsIG1vZGVsKSB7CisgICAgICAg IHZhciByZXMgPSBfLmlzT2JqZWN0KHJhd0RhdGEpID8gcmF3RGF0YSA6IEpT T04ucGFyc2UocmF3RGF0YSk7CisKKyAgICAgICAgcmV0dXJuIF8ucGx1Y2so cmVzLCAncm9sZScpOworICAgICAgfSwKKyAgICAgIHRvUmF3OiBmdW5jdGlv biAoZm9ybWF0dGVkRGF0YSwgbW9kZWwpIHsKKyAgICAgICAgcmV0dXJuIGZv cm1hdHRlZERhdGE7CisgICAgICB9CisgICAgfSwKKyAgICB0ZW1wbGF0ZTog Xy50ZW1wbGF0ZShbCisgICAgICAnPGxhYmVsIGNsYXNzPSJjb250cm9sLWxh YmVsIGNvbC14cy0xMiI+PCU9bGFiZWwlPjwvbGFiZWw+JywKKyAgICAgICc8 ZGl2IGNsYXNzPSJwZ2FkbWluLWNvbnRyb2xzIGNvbC14cy0xMiI+JywKKyAg ICAgICcgIDxzZWxlY3QgbXVsdGlwbGU9Im11bHRpcGxlIiBzdHlsZT0id2lk dGg6MTAwJTsiIGNsYXNzPSJwZ2FkbWluLWNvbnRyb2xzIDwlPWV4dHJhQ2xh c3Nlcy5qb2luKFwnIFwnKSU+IiBuYW1lPSI8JT1uYW1lJT4iIHZhbHVlPSI8 JS1KU09OLnN0cmluZ2lmeSh2YWx1ZSklPiIgPCU9ZGlzYWJsZWQgPyAiZGlz YWJsZWQiIDogIiIlPiA8JT1yZXF1aXJlZCA/ICJyZXF1aXJlZCIgOiAiIiU+ PicsCisgICAgICAnICAgIDwlIGZvciAodmFyIGk9MDsgaSA8IG9wdGlvbnMu bGVuZ3RoOyBpKyspIHsgJT4nLAorICAgICAgJyAgICAgIDwlIHZhciBvcHRp b24gPSBvcHRpb25zW2ldOyAlPicsCisgICAgICAnICAgICAgPG9wdGlvbiB2 YWx1ZT08JS1vcHRpb24udmFsdWUlPiBkYXRhLWljb249PCUtb3B0aW9uLmlt YWdlJT4gPCU9dmFsdWUgIT0gbnVsbCAmJiBfLmluZGV4T2YodmFsdWUsIG9w dGlvbi52YWx1ZSkgIT0gLTEgPyAic2VsZWN0ZWQiIDogIiIlPiA8JT1vcHRp b24uZGlzYWJsZWQgPyAiZGlzYWJsZWQ9XCdkaXNhYmxlZFwnIiA6ICIiJT4+ PCUtb3B0aW9uLmxhYmVsJT48L29wdGlvbj4nLAorICAgICAgJyAgICA8JSB9 ICU+JywKKyAgICAgICcgIDwvc2VsZWN0PicsCisgICAgICAnPC9kaXY+JywK KyAgICAgICc8ZGl2IGNsYXNzPSJub3RlIDwlPUJhY2tmb3JtLmhlbHBNZXNz YWdlQ2xhc3NOYW1lJT4gY29sLXhzLTEyIj48L2Rpdj4nLAorICAgICAgXS5q b2luKCJcbiIpKSwKKyAgICBldmVudHM6IHsiY2hhbmdlIHNlbGVjdCI6ICJv bkNoYW5nZSJ9LAorICAgIGdldFZhbHVlRnJvbURPTTogZnVuY3Rpb24oKSB7 CisgICAgICB2YXIgcmVzID0gW107CisKKyAgICAgIHRoaXMuJGVsLmZpbmQo InNlbGVjdCIpLmZpbmQoJzpzZWxlY3RlZCcpLmVhY2goZnVuY3Rpb24oKSB7 CisgICAgICAgIHJlcy5wdXNoKCQodGhpcykuYXR0cigndmFsdWUnKSk7Cisg ICAgICB9KTsKKworICAgICAgcmV0dXJuIHJlczsKKyAgICB9LAorICAgIHJl bmRlcjogZnVuY3Rpb24oKSB7CisgICAgICBCYWNrZm9ybS5TZWxlY3RDb250 cm9sLnByb3RvdHlwZS5yZW5kZXIuYXBwbHkodGhpcywgYXJndW1lbnRzKTsK KyAgICAgIHZhciBjb2xsZWN0aW9uID0gdGhpcy5tb2RlbC5nZXQodGhpcy5m aWVsZC5nZXQoJ25hbWUnKSksCisgICAgICAgICAgZm9ybWF0U3RhdGUgPSBm dW5jdGlvbihvcHQpIHsKKyAgICAgICAgICAgIGlmICghb3B0LmlkKSB7Cisg ICAgICAgICAgICAgIHJldHVybiBvcHQudGV4dDsKKyAgICAgICAgICAgIH0K KworICAgICAgICAgICAgdmFyIG9wdGltYWdlID0gJChvcHQuZWxlbWVudCku ZGF0YSgnaWNvbicpOworCisgICAgICAgICAgICBpZighb3B0aW1hZ2Upewor ICAgICAgICAgICAgICByZXR1cm4gb3B0LnRleHQ7CisgICAgICAgICAgICB9 IGVsc2UgeworICAgICAgICAgICAgICByZXR1cm4gJCgKKyAgICAgICAgICAg ICAgICAgICc8c3Bhbj48c3BhbiBjbGFzcz0id2NUYWJJY29uICcgKyBvcHRp bWFnZSArICciLz4nICsgb3B0LnRleHQgKyAnPC9zcGFuPicKKyAgICAgICAg ICAgICAgICAgICk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfSwKKyAg ICAgICAgICBmb3JtYXRTZWxlY3Rpb24gPSBmdW5jdGlvbiAob3B0KSB7CisK KyAgICAgICAgICAgIGlmICghb3B0LmlkKSB7CisgICAgICAgICAgICAgIHJl dHVybiBvcHQudGV4dDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg dmFyIG9wdGltYWdlID0gJChvcHQuZWxlbWVudCkuZGF0YSgnaWNvbicpLAor ICAgICAgICAgICAgICAgIGdyYW50VXBkYXRlID0gZnVuY3Rpb24oZXYpIHsK KworICAgICAgICAgICAgICAgICAgXy5lYWNoKGNvbGxlY3Rpb24ud2hlcmUo e3JvbGU6IG9wdC5pZH0pLCBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICAg ICAgICAgIG0uc2V0KCdhZG1pbicsICQoZXYudGFyZ2V0KS5pcygiOmNoZWNr ZWQiKSk7CisgICAgICAgICAgICAgICAgICB9KTsKKworICAgICAgICAgICAg ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAgICAgICAgIH07CisKKyAg ICAgICAgICAgIGlmKCFvcHRpbWFnZSl7CisgICAgICAgICAgICAgIHJldHVy biBvcHQudGV4dDsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAg ICAgIHZhciBqID0gJCgnPHNwYW4+PHNwYW4gY2xhc3M9IndjVGFiSWNvbiAn ICsgb3B0aW1hZ2UgKyAnIi8+JyArIG9wdC50ZXh0ICsgJyA8c3Bhbj48aW5w dXQgdHlwZT0iY2hlY2tib3giLz48L3NwYW4+PC9zcGFuPicpOworCisgICAg ICAgICAgICAgIF8uZWFjaChjb2xsZWN0aW9uLndoZXJlKHtyb2xlOiBvcHQu aWR9KSwgZnVuY3Rpb24obSkgeworICAgICAgICAgICAgICAgIGouZmluZCgn aW5wdXQnKS5wcm9wKCdjaGVja2VkJywgbS5nZXQoJ2FkbWluJykpOworICAg ICAgICAgICAgICB9KTsKKworICAgICAgICAgICAgICAoai5maW5kKCdpbnB1 dCcpKS5vbignY2hhbmdlJywgZ3JhbnRVcGRhdGUpOworCisgICAgICAgICAg ICAgIHJldHVybiBqOworICAgICAgICAgICAgfQorICAgICAgICAgIH07CisK KyAgICAgIHRoaXMuJGVsLmZpbmQoJ3NlbGVjdCcpLnNlbGVjdDIoeworICAg ICAgICB0ZW1wbGF0ZVJlc3VsdDogZm9ybWF0U3RhdGUsCisgICAgICAgIHRl bXBsYXRlU2VsZWN0aW9uOiBmb3JtYXRTZWxlY3Rpb24sCisgICAgICAgIG11 bHRpcGxlOiB0cnVlLAorICAgICAgICB0YWdzOiB0cnVlLAorICAgICAgICBh bGxvd0NsZWFyOiB0cnVlLAorICAgICAgICBwbGFjZWhvbGRlcjogIlNlbGVj dCBtZW1iZXJzIiwKKyAgICAgICAgd2lkdGg6ICdzdHlsZScKKyAgICAgIH0p Lm9uKCJjaGFuZ2UiLCBmdW5jdGlvbihlKSB7CisgICAgICAgICQoZS50YXJn ZXQpLmZpbmQoJzpzZWxlY3RlZCcpLmVhY2goZnVuY3Rpb24oKSB7CisgICAg ICAgIH0pOworICAgICAgfSk7CisKKyAgICAgIHRoaXMuJGVsLmZpbmQoJ2Rp di5ub3RlJykuaHRtbCgiPHNwYW4+Tk9URTo8YnIvPkluIG9yZGVyIHRvIGdp dmUgZ3JhbnQgb3B0aW9ucyBzZWxlY3QgdGhlIGNoZWNrYm94IG5leHQgdG8g dGhlIHJvbGVzLjwvc3Bhbj4iKTsKKworICAgICAgcmV0dXJuIHRoaXM7Cisg ICAgfSwKKyAgICBvbkNoYW5nZTogZnVuY3Rpb24oZSkgeworICAgICAgdmFy IG1vZGVsID0gdGhpcy5tb2RlbCwKKyAgICAgICAgICAkZWwgPSAkKGUudGFy Z2V0KSwKKyAgICAgICAgICBhdHRyQXJyID0gdGhpcy5maWVsZC5nZXQoIm5h bWUiKS5zcGxpdCgnLicpLAorICAgICAgICAgIG5hbWUgPSBhdHRyQXJyLnNo aWZ0KCksCisgICAgICAgICAgcGF0aCA9IGF0dHJBcnIuam9pbignLicpLAor ICAgICAgICAgIHZhbHMgPSB0aGlzLmdldFZhbHVlRnJvbURPTSgpLAorICAg ICAgICAgIGNvbGxlY3Rpb24gPSBtb2RlbC5nZXQobmFtZSksCisgICAgICAg ICAgcmVtb3ZlZCA9IFtdOworCisgICAgICB0aGlzLnN0b3BMaXN0ZW5pbmco dGhpcy5tb2RlbCwgImNoYW5nZToiICsgbmFtZSwgdGhpcy5yZW5kZXIpOwor CisgICAgICAvKgorICAgICAgICogSXRlcmF0ZSB0aHJvdWdoIGFsbCB0aGUg dmFsdWVzLCBhbmQgZmluZCBvdXQgaG93IG1hbnkgYXJlIGFscmVhZHkKKyAg ICAgICAqIHByZXNlbnQgaW4gdGhlIGNvbGxlY3Rpb24uCisgICAgICAgKi8K KyAgICAgIGNvbGxlY3Rpb24uZWFjaChmdW5jdGlvbihtKSB7CisgICAgICAg IHZhciByb2xlID0gbS5nZXQoJ3JvbGUnKSwKKyAgICAgICAgICAgIGlkeCA9 IF8uaW5kZXhPZih2YWxzLCByb2xlKTsKKworICAgICAgICBpZiAoaWR4ID4g LTEpIHsKKyAgICAgICAgICB2YWxzLnNwbGljZShpZHgsIDEpOworICAgICAg ICB9IGVsc2UgeworICAgICAgICAgIHJlbW92ZWQucHVzaChyb2xlKTsKKyAg ICAgICAgfQorICAgICAgfSk7CisKKyAgICAgIC8qCisgICAgICAgKiBBZGRp bmcgbmV3IHZhbHVlcworICAgICAgICovCisgICAgICBfLmVhY2godmFscywg ZnVuY3Rpb24odikgeworICAgICAgICBjb2xsZWN0aW9uLmFkZCh7cm9sZTog dn0pOworICAgICAgfSk7CisKKyAgICAgIC8qCisgICAgICAgKiBSZW1vdmlu ZyB1bndhbnRlZCEKKyAgICAgICAqLworICAgICAgXy5lYWNoKHJlbW92ZWQs IGZ1bmN0aW9uKHYpIHsKKyAgICAgICAgY29sbGVjdGlvbi5yZW1vdmUoY29s bGVjdGlvbi53aGVyZSh7cm9sZTogdn0pKTsKKyAgICAgIH0pOworCisgICAg ICB0aGlzLmxpc3RlblRvKHRoaXMubW9kZWwsICJjaGFuZ2U6IiArIG5hbWUs IHRoaXMucmVuZGVyKTsKKyAgICB9CisgIH0pOworCisgIGlmICghcGdCcm93 c2VyLk5vZGVzWydyb2xlJ10pIHsKKyAgICB2YXIgcm9sZSA9IHBnQWRtaW4u QnJvd3Nlci5Ob2Rlc1sncm9sZSddID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUu ZXh0ZW5kKHsKKyAgICAgIHBhcmVudF90eXBlOiAnc2VydmVyJywKKyAgICAg IHR5cGU6ICdyb2xlJywKKyAgICAgIGxhYmVsOiAne3sgXygnTG9naW4vR3Jv dXAgUm9sZScpIH19JywKKyAgICAgIGhhc1NRTDogdHJ1ZSwKKyAgICAgIGNh bkRyb3A6IHRydWUsCisgICAgICBub2RlX2xhYmVsOiBmdW5jdGlvbihyKSB7 CisgICAgICAgIGlmICghci5jYW5fbG9naW4pIHsKKyAgICAgICAgICByZXR1 cm4gci5sYWJlbCArICcoR1JPVVApJzsKKyAgICAgICAgfQorICAgICAgICBy ZXR1cm4gci5sYWJlbDsKKyAgICAgIH0sCisgICAgICBub2RlX2ltYWdlOiBm dW5jdGlvbihyKSB7CisgICAgICAgIHJldHVybiAoci5jYW5fbG9naW4gPyAn aWNvbi1yb2xlJyA6ICdpY29uLWdyb3VwJyk7CisgICAgICB9LAorICAgICAg dGl0bGU6IGZ1bmN0aW9uKGQpIHsKKyAgICAgICAgaWYgKCFkKSB7CisgICAg ICAgICAgcmV0dXJuIHRoaXMubGFiZWw7CisgICAgICAgIH0KKyAgICAgICAg aWYgKGQuY2FuX2xvZ2luKSB7CisgICAgICAgICAgcmV0dXJuICd7eyBfKCdM b2dpbiBSb2xlJykgfX0nICsgJyAtICcgKyBkLmxhYmVsOworICAgICAgICB9 CisgICAgICAgIHJldHVybiAne3sgXygnR3JvdXAgUm9sZScpIH19JyArICcg LSAnICsgZC5sYWJlbDsKKyAgICAgIH0sCisgICAgICBJbml0OiBmdW5jdGlv bigpIHsKKyAgICAgICAgLyogQXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9u IG9mIG1lbnVzICovCisgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQor ICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6 ZWQgPSB0cnVlOworCisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sK KyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3JvbGVfb25fc2VydmVyJywgbm9k ZTogJ3NlcnZlcicsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVz OiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpf cHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBw cmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdMb2dpbi9Hcm91cCBSb2xlLi4u JykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1yb2xl JywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZSd9LAorICAgICAgICAgIGVuYWJs ZTogJ2Nhbl9jcmVhdGVfcm9sZScKKyAgICAgICAgfSx7CisgICAgICAgICAg bmFtZTogJ2NyZWF0ZV9yb2xlX29uX3JvbGVzJywgbm9kZTogJ2NvbGwtcm9s ZScsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVj dCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGll cycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTog NCwgbGFiZWw6ICd7eyBfKCdMb2dpbi9Hcm91cCBSb2xlLi4uJykgfX0nLAor ICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1yb2xlJywgZGF0YTog e2FjdGlvbjogJ2NyZWF0ZSd9LAorICAgICAgICAgIGVuYWJsZTogJ2Nhbl9j cmVhdGVfcm9sZScKKyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2Ny ZWF0ZV9yb2xlJywgbm9kZTogJ3JvbGUnLCBtb2R1bGU6IHRoaXMsCisgICAg ICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFj azogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5 OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnTG9naW4v R3JvdXAgUm9sZS4uLicpIH19JywKKyAgICAgICAgICBpY29uOiAnd2NUYWJJ Y29uIGljb24tcm9sZScsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnfSwKKyAg ICAgICAgICBlbmFibGU6ICdjYW5fY3JlYXRlX3JvbGUnCisgICAgICAgIH1d KTsKKyAgICAgIH0sCisgICAgICBjYW5fY3JlYXRlX3JvbGU6IGZ1bmN0aW9u KG5vZGUsIGl0ZW0pIHsKKyAgICAgICAgdmFyIHRyZWVEYXRhID0gdGhpcy5n ZXRUcmVlTm9kZUhpZXJhcmNoeShpdGVtKSwKKyAgICAgICAgICAgIHNlcnZl ciA9IHRyZWVEYXRhWydzZXJ2ZXInXTsKKworICAgICAgICByZXR1cm4gc2Vy dmVyLmNvbm5lY3RlZCAmJiBzZXJ2ZXIudXNlci5jYW5fY3JlYXRlX3JvbGU7 CisgICAgICB9LAorICAgICAgbW9kZWw6IHBnQWRtaW4uQnJvd3Nlci5Ob2Rl Lk1vZGVsLmV4dGVuZCh7CisgICAgICAgIGlkQXR0cmlidXRlOiAnb2lkJywK KyAgICAgICAgZGVmYXVsdHM6IHsKKyAgICAgICAgICBvaWQ6IG51bGwsCisg ICAgICAgICAgcm9sbmFtZTogdW5kZWZpbmVkLAorICAgICAgICAgIHJvbGNh bmxvZ2luOiBmYWxzZSwKKyAgICAgICAgICByb2xwYXNzd29yZDogbnVsbCwK KyAgICAgICAgICByb2xjb25ubGltaXQ6IC0xLAorICAgICAgICAgIHJvbHN1 cGVyOiBmYWxzZSwKKyAgICAgICAgICByb2xjcmVhdGVyb2xlOiBmYWxzZSwK KyAgICAgICAgICByb2xjcmVhdGVkYjogZmFsc2UsCisgICAgICAgICAgcm9s aW5oZXJpdDogdHJ1ZSwKKyAgICAgICAgICByb2xjYXR1cGRhdGU6IGZhbHNl LAorICAgICAgICAgIHJvbHJlcGxpY2F0aW9uOiBmYWxzZSwKKyAgICAgICAg ICByb2xtZW1iZXJzaGlwOiBbXSwKKyAgICAgICAgICByb2x2YWxpZHVudGls OiBudWxsLAorICAgICAgICAgIHNlY2xhYmVsczogW10sCisgICAgICAgICAg dmFyaWFibGVzOiBbXQorICAgICAgICB9LAorICAgICAgICBzY2hlbWE6IFt7 CisgICAgICAgICAgaWQ6ICdyb2xuYW1lJywgbGFiZWw6ICd7eyBfKCdOYW1l JykgfX0nLCB0eXBlOiAndGV4dCcsCisgICAgICAgICAgZGlzYWJsZWQ6ICdy ZWFkb25seScKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdvaWQnLCBs YWJlbDone3sgXygnUm9sZSBJRCcpIH19JywgY2VsbDogJ3N0cmluZycsCisg ICAgICAgICAgZWRpdGFibGU6IGZhbHNlLCB0eXBlOiAndGV4dCcsIHZpc2li bGU6IHRydWUsIGRpc2FibGVkOiB0cnVlCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAncm9scGFzc3dvcmQnLCBsYWJlbDogJ3t7IF8oJ1Bhc3N3b3Jk JykgfX0nLCB0eXBlOiAncGFzc3dvcmQnLAorICAgICAgICAgIGdyb3VwOiAn e3sgXygnRGVmaW5pdGlvbicpIH19JywgbW9kZTogWydlZGl0JywgJ2NyZWF0 ZSddLAorICAgICAgICAgIGNvbnRyb2w6ICdpbnB1dCcsIGRlcHM6IFsncm9s Y2FubG9naW4nXSwgcmV0eXBlOiB0cnVlLAorICAgICAgICAgIGNlbGw6ICdz dHJpbmcnLCBkaXNhYmxlZDogZnVuY3Rpb24obSkgeworICAgICAgICAgICAg aWYgKCFtLmlzTmV3KCkpIHsKKyAgICAgICAgICAgICAgdmFyIHVzZXIgPSB0 aGlzLm5vZGVfaW5mby5zZXJ2ZXIudXNlcjsKKworICAgICAgICAgICAgICBy ZXR1cm4gKCEodXNlci5pc19zdXBlcnVzZXIgfHwgdXNlci5jYW5fY3JlYXRl X3JvbGUpICYmCisgICAgICAgICAgICAgICAgICB1c2VyLmlkICE9IG0uZ2V0 KCdvaWQnKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4g ZmFsc2U7CisgICAgICAgICAgfQorICAgICAgICB9LHsKKyAgICAgICAgICBp ZDogJ3JvbHZhbGlkdW50aWwnLCBkaXNhYmxlZDogJ3JlYWRvbmx5JywgdHlw ZTogJ2RhdGUnLAorICAgICAgICAgIGdyb3VwOiAne3sgXygnRGVmaW5pdGlv bicpIH19JywgbGFiZWw6ICd7eyBfKCdBY2NvdW50IEV4cGlyZXMnKSB9fScs CisgICAgICAgICAgY2VsbDogJ3N0cmluZycsIG1vZGU6IFsnZWRpdCcsICdj cmVhdGUnXSwgcmV0eXBlOiB0cnVlLAorICAgICAgICAgIGRlcHM6IFsncm9s Y2FubG9naW4nXSwgb3B0aW9uczoge30KKyAgICAgICAgfSx7CisgICAgICAg ICAgaWQ6ICdyb2xjb25ubGltaXQnLCAgdHlwZTogJ2ludCcsIGdyb3VwOiAn e3sgXygnRGVmaW5pdGlvbicpIH19JywKKyAgICAgICAgICBsYWJlbDogJ3t7 IF8oJ0Nvbm5lY3Rpb24gTGltaXQnKSB9fScsIGNlbGw6ICdudW1iZXInLAor ICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0JywgJ2NyZWF0 ZSddLCBkaXNhYmxlZDogJ3JlYWRvbmx5JworICAgICAgICB9LHsKKyAgICAg ICAgICBpZDogJ3JvbGNhbmxvZ2luJywgbGFiZWw6J3t7IF8oJ0NhbiBMb2dp bj8nKSB9fScsIHR5cGU6ICdzd2l0Y2gnLAorICAgICAgICAgIGdyb3VwOiAn e3sgXygnUm9sZSBQcml2aWxlZ2VzJykgfX0nLCBvcHRpb25zOiBzd2l0Y2hP cHRpb25zLAorICAgICAgICAgIGRpc2FibGVkOiAncmVhZG9ubHknCisgICAg ICAgIH0seworICAgICAgICAgIGlkOiAncm9sc3VwZXInLCBsYWJlbDone3sg XygnU3VwZXIgVXNlcicpIH19JywgdHlwZTogJ3N3aXRjaCcsCisgICAgICAg ICAgZ3JvdXA6ICd7eyBfKCdSb2xlIFByaXZpbGVnZXMnKSB9fScsIG9wdGlv bnM6IHN3aXRjaE9wdGlvbnMsCisgICAgICAgICAgY29udHJvbDogQmFja2Zv cm0uU3dpdGNoQ29udHJvbC5leHRlbmQoeworICAgICAgICAgICAgb25DaGFu Z2U6IGZ1bmN0aW9uKCkgeworICAgICAgICAgICAgICBCYWNrZm9ybS5Td2l0 Y2hDb250cm9sLnByb3RvdHlwZS5vbkNoYW5nZS5hcHBseSh0aGlzLCBhcmd1 bWVudHMpOworCisgICAgICAgICAgICAgIHRoaXMubW9kZWwuc2V0KCdyb2xj YXR1cGRhdGUnLCB0aGlzLm1vZGVsLmdldCgncm9sc3VwZXInKSk7CisgICAg ICAgICAgICAgIHRoaXMubW9kZWwuc2V0KCdyb2xjcmVhdGVyb2xlJywgdGhp cy5tb2RlbC5nZXQoJ3JvbHN1cGVyJykpOworICAgICAgICAgICAgICB0aGlz Lm1vZGVsLnNldCgncm9sY3JlYXRlZGInLCB0aGlzLm1vZGVsLmdldCgncm9s c3VwZXInKSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgfSksCisgICAg ICAgICAgZGlzYWJsZWQ6ICdyZWFkb25seScKKyAgICAgICAgfSx7CisgICAg ICAgICAgaWQ6ICdyb2xjcmVhdGVyb2xlJywgbGFiZWw6J3t7IF8oJ0NhbiBD cmVhdGUgUm9sZT8nKSB9fScsCisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdS b2xlIFByaXZpbGVnZXMnKSB9fScsIHR5cGU6ICdzd2l0Y2gnLAorICAgICAg ICAgIG9wdGlvbnM6IHN3aXRjaE9wdGlvbnMsIGRpc2FibGVkOiAncmVhZG9u bHknCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnZGVzY3JpcHRpb24n LCBsYWJlbDone3sgXygnQ29tbWVudHMnKSB9fScsIHR5cGU6ICdtdWx0aWxp bmUnLAorICAgICAgICAgIGdyb3VwOiBudWxsLCBtb2RlOiBbJ3Byb3BlcnRp ZXMnLCAnZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgICBvcHRpb25zOiBz d2l0Y2hPcHRpb25zLCBkaXNhYmxlZDogJ3JlYWRvbmx5JworICAgICAgICB9 LHsKKyAgICAgICAgICBpZDogJ3JvbGNyZWF0ZWRiJywgbGFiZWw6J3t7IF8o J0NhbiBjcmVhdGUgZGF0YWJhc2VzPycpIH19JywKKyAgICAgICAgICBncm91 cDogJ3t7IF8oJ1JvbGUgUHJpdmlsZWdlcycpIH19JywgdHlwZTogJ3N3aXRj aCcsCisgICAgICAgICAgb3B0aW9uczogc3dpdGNoT3B0aW9ucywgZGlzYWJs ZWQ6ICdyZWFkb25seScKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdy b2xjYXR1cGRhdGUnLCBsYWJlbDone3sgXygnQ2FuIHVwZGF0ZSBjYXRhbG9n PycpIH19JywKKyAgICAgICAgICB0eXBlOiAnc3dpdGNoJywgbWF4X3ZlcnNp b246IDkwNTAwLCBvcHRpb25zOiBzd2l0Y2hPcHRpb25zLAorICAgICAgICAg IGdyb3VwOiAne3sgXygnUm9sZSBQcml2aWxlZ2VzJykgfX0nLCBkaXNhYmxl ZDogZnVuY3Rpb24obSkgeworICAgICAgICAgICAgcmV0dXJuIChtLmdldCgn cmVhZF9vbmx5JykgfHwgKCFtLmdldCgncm9sc3VwZXInKSkpOworICAgICAg ICAgIH0KKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdyb2xpbmhlcml0 JywgZ3JvdXA6ICd7eyBfKCdSb2xlIFByaXZpbGVnZXMnKSB9fScsCisgICAg ICAgICAgbGFiZWw6J3t7IF8oJ0luaGVyaXQgcmlnaHRzIGZyb20gdGhlIHBh cmVudCByb2xlcz8nKSB9fScsCisgICAgICAgICAgdHlwZTogJ3N3aXRjaCcs IG9wdGlvbnM6IHN3aXRjaE9wdGlvbnMsIGRpc2FibGVkOiAncmVhZG9ubHkn CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncm9scmVwbGljYXRpb24n LCBncm91cDogJ3t7IF8oJ1JvbGUgUHJpdmlsZWdlcycpIH19JywKKyAgICAg ICAgICBsYWJlbDone3sgXygnQ2FuIGluaXRpYXRlIHN0cmVhbWluZyByZXBs aWNhdGlvbiBhbmQgYmFja3Vwcz8nKSB9fScsCisgICAgICAgICAgdHlwZTog J3N3aXRjaCcsIG1pbl92ZXJzaW9uOiA5MDEwMCwgb3B0aW9uczogc3dpdGNo T3B0aW9ucywKKyAgICAgICAgICBkaXNhYmxlZDogJ3JlYWRvbmx5JworICAg ICAgICB9LHsKKyAgICAgICAgICBpZDogJ3JvbG1lbWJlcnNoaXAnLCBsYWJl bDogJ3t7IF8oJ1JvbGUgTWVtYmVyc2hpcCcpIH19JywKKyAgICAgICAgICBn cm91cDogJ3t7IF8oJ1JvbGUgUHJpdmlsZWdlcycpIH19JywgdHlwZTogJ2Nv bGxlY3Rpb24nLAorICAgICAgICAgIGNlbGw6ICdzdHJpbmcnLCBtb2RlOiBb J2VkaXQnLCAnY3JlYXRlJ10sIGRpc2FibGVkOiAncmVhZG9ubHknLAorICAg ICAgICAgIGNvbnRyb2w6IFJvbGVNZW1iZXJzQ29udHJvbCwgbW9kZWw6IHBn QnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgICAgICAgICBpZEF0 dHJpYnV0ZTogJ3JvbGUnLAorICAgICAgICAgICAgZGVmYXVsdHM6IHsKKyAg ICAgICAgICAgICAgcm9sZTogdW5kZWZpbmVkLAorICAgICAgICAgICAgICBh ZG1pbjogZmFsc2UKKyAgICAgICAgICAgIH0KKyAgICAgICAgICB9KQorICAg ICAgICB9LHsKKyAgICAgICAgICBpZDogJ3ZhcmlhYmxlcycsIGxhYmVsOiAn e3sgXygnVmFyaWFibGVzJykgfX0nLCB0eXBlOiAnY29sbGVjdGlvbicsCisg ICAgICAgICAgZ3JvdXA6ICd7eyBfKCdTZWN1cml0eScpIH19JywgaGFzRGF0 YWJhc2U6IHRydWUsIHVybDogJ3ZhcmlhYmxlcycsCisgICAgICAgICAgbW9k ZWw6IHBnQnJvd3Nlci5Ob2RlLlZhcmlhYmxlTW9kZWwsIGNvbnRyb2w6ICd2 YXJpYWJsZS1jb2xsZWN0aW9uJywKKyAgICAgICAgICBtb2RlOiBbICdlZGl0 JywgJ2NyZWF0ZSddLCBjYW5BZGQ6IHRydWUsIGNhbkRlbGV0ZTogdHJ1ZSwK KyAgICAgICAgICB1cmw6ICJ2YXJpYWJsZXMiLCBkaXNhYmxlZDogJ3JlYWRv bmx5JworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3NlY2xhYmVscycs IGxhYmVsOiAne3sgXygnU2VjdXJpdHkgTGFiZWxzJykgfX0nLAorICAgICAg ICAgIG1vZGVsOiBTZWN1cml0eU1vZGVsLCBlZGl0YWJsZTogZmFsc2UsIHR5 cGU6ICdjb2xsZWN0aW9uJywKKyAgICAgICAgICBncm91cDogJ3t7IF8oJ1Nl Y3VyaXR5JykgfX0nLCBtb2RlOiBbJ2VkaXQnLCAnY3JlYXRlJ10sCisgICAg ICAgICAgbWluX3ZlcnNpb246IDkwMjAwLCBkaXNhYmxlZDogJ3JlYWRvbmx5 JywgY2FuQWRkOiB0cnVlLAorICAgICAgICAgIGNhbkVkaXQ6IGZhbHNlLCBj YW5EZWxldGU6IHRydWUsIGNvbnRyb2w6ICd1bmlxdWUtY29sLWNvbGxlY3Rp b24nCisgICAgICAgIH1dLAorICAgICAgICByZWFkb25seTogZnVuY3Rpb24o bSkgeworICAgICAgICAgIGlmICghbS5oYXMoJ3JlYWRfb25seScpKSB7Cisg ICAgICAgICAgICB2YXIgdXNlciA9IHRoaXMubm9kZV9pbmZvLnNlcnZlci51 c2VyOworCisgICAgICAgICAgICBtLnNldCgncmVhZF9vbmx5JywgISh1c2Vy LmlzX3N1cGVydXNlciB8fCB1c2VyLmNhbl9jcmVhdGVfcm9sZSkpOworICAg ICAgICAgIH0KKworICAgICAgICAgIHJldHVybiBtLmdldCgncmVhZF9vbmx5 Jyk7CisgICAgICAgIH0sCisgICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbigp CisgICAgICAgIHsKKyAgICAgICAgICB2YXIgZXJyID0ge30sCisgICAgICAg ICAgICAgIGVycm1zZywKKyAgICAgICAgICAgICAgc2VjbGFiZWxzID0gdGhp cy5nZXQoJ3NlY2xhYmVscycpOworCisgICAgICAgICAgaWYgKF8uaXNVbmRl ZmluZWQodGhpcy5nZXQoJ3JvbG5hbWUnKSkgfHwgU3RyaW5nKHRoaXMuZ2V0 KCdyb2xuYW1lJykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycp IHsKKyAgICAgICAgICAgIGVyclsnbmFtZSddID0gJ3t7IF8oJ05hbWUgY2Fu IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9IGVycm1z ZyB8fCBlcnJbJ25hbWUnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICBp ZiAoc2VjbGFiZWxzKSB7CisgICAgICAgICAgICB2YXIgc2VjTGFiZWxzRXJy OworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWNsYWJlbHMu bW9kZWxzLmxlbmd0aCAmJiAhc2VjTGFiZWxzRXJyOyBpKyspIHsKKyAgICAg ICAgICAgICAgc2VjTGFiZWxzRXJyID0gKHNlY2xhYmVscy5tb2RlbHNbaV0p LnZhbGlkYXRlLmFwcGx5KHNlY2xhYmVscy5tb2RlbHNbaV0pOworICAgICAg ICAgICAgICBpZiAoc2VjTGFiZWxzRXJyKSB7CisgICAgICAgICAgICAgICAg ZXJyWydzZWNsYWJlbHMnXSA9IHNlY0xhYmVsc0VycjsKKyAgICAgICAgICAg ICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgc2VjTGFiZWxzRXJyOworICAgICAg ICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAg ICAgICAgdGhpcy5lcnJvck1vZGVsLmNsZWFyKCkuc2V0KGVycik7CisKKyAg ICAgICAgICBpZiAoXy5zaXplKGVycikpIHsKKyAgICAgICAgICAgIHRoaXMu dHJpZ2dlcignb24tc3RhdHVzJywge21zZzogZXJybXNnfSk7CisgICAgICAg ICAgICByZXR1cm4gZXJybXNnOworICAgICAgICAgIH0KKworICAgICAgICAg IHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICB9KQorICAgIH0pLAor ICAgIHNnID0gcGdCcm93c2VyLk5vZGVzWydzZXJ2ZXItZ3JvdXAnXTsKKyAg fQorCisgIHJldHVybiBwZ0Jyb3dzZXIuTm9kZXNbJ3JvbGUnXTsKK30pOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvcm9sZXMvdGVtcGxhdGVzL3JvbGUvc3FsL3Bvc3Q4XzQvY3Jl YXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0OF80L2NyZWF0 ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGVk NmUxNwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL3Nx bC9wb3N0OF80L2NyZWF0ZS5zcWwKQEAgLTAsMCArMSw0OSBAQAoreyUgaW1w b3J0ICdtYWNyb3Mvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQor eyUgaW1wb3J0ICdtYWNyb3MvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJM RSAlfQorQ1JFQVRFIHslIGlmIGRhdGEucm9sY2FubG9naW4gJX1VU0VSeyUg ZWxzZSAlfVJPTEV7JSBlbmRpZiAlfSB7eyBjb25ufHF0SWRlbnQoZGF0YS5y b2xuYW1lKSB9fSBXSVRIeyUgaWYgZGF0YS5yb2xjYW5sb2dpbiBhbmQgZGF0 YS5yb2xjYW5sb2dpbiBpcyBzYW1lYXMgVHJ1ZSAgJX0KKworCUxPR0lOeyUg ZWxzZSAlfQorCisJTk9MT0dJTnslIGVuZGlmICV9eyUgaWYgZGF0YS5yb2xz dXBlciAlfQorCisJU1VQRVJVU0VSeyUgZWxzZSAlfQorCisJTk9TVVBFUlVT RVJ7JSBlbmRpZiAlfXslIGlmIGRhdGEucm9sY3JlYXRlZGIgJX0KKworCUNS RUFURURCeyUgZWxzZSAlfQorCisJTk9DUkVBVEVEQnslIGVuZGlmICV9eyUg aWYgZGF0YS5yb2xjcmVhdGVyb2xlICV9CisKKwlDUkVBVEVST0xFeyUgZWxz ZSAlfQorCisJTk9DUkVBVEVST0xFeyUgZW5kaWYgJX17JSBpZiBkYXRhLnJv bGluaGVyaXQgaXMgc2FtZWFzIHRydWUgJX0KKworCUlOSEVSSVR7JSBlbHNl ICV9CisKKwlOT0lOSEVSSVR7JSBlbmRpZiAlfXslIGlmIGRhdGEucm9scmVw bGljYXRpb24gJX0KKworCVJFUExJQ0FUSU9OeyUgZWxzZSAlfQorCisJTk9S RVBMSUNBVElPTnslIGVuZGlmICV9eyUgaWYgJ3JvbGNvbm5saW1pdCcgaW4g ZGF0YSBhbmQgZGF0YS5yb2xjb25ubGltaXQgaXMgbnVtYmVyIGFuZCBkYXRh LnJvbGNvbm5saW1pdCA+PSAtMSAlfQorCisJQ09OTkVDVElPTiBMSU1JVCB7 eyBkYXRhLnJvbGNvbm5saW1pdCB9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5y b2x2YWxpZHVudGlsIGFuZCBkYXRhLnJvbHZhbGlkdW50aWwgaXMgbm90IG5v bmUgJX0KKworCVZBTElEIFVOVElMIHt7IGRhdGEucm9sdmFsaWR1bnRpbHxx dExpdGVyYWwgfX0geyUgZW5kaWYgJX17JSBpZiBkYXRhLnJvbHBhc3N3b3Jk ICV9CisKKwlQQVNTV09SRCB7JSBpZiBkYXRhLnJvbHBhc3N3b3JkIGlzIG5v bmUgJX1OVUxMeyUgZWxzZSAlfXslIGlmIGR1bW15ICV9J3h4eHh4eCd7JSBl bHNlICV9IHt7IGRhdGEucm9scGFzc3dvcmQgfCBxdExpdGVyYWwgfX17JSBl bmRpZiAlfXslIGVuZGlmICV9eyUgZW5kaWYgJX07eyUgaWYgZGF0YS5yb2xz dXBlciBhbmQgZGF0YS5yb2xjYXR1cGRhdGUgaXMgc2FtZWFzIGZhbHNlICV9 CisKKworVVBEQVRFIHBnX2F1dGhpZCBTRVQgcm9sY2F0dXBkYXRlPWZhbHNl IFdIRVJFIHJvbG5hbWUgPSB7eyBkYXRhLnJvbG5hbWV8cXRMaXRlcmFsIH19 O3slIGVuZGlmICV9eyUgaWYgZGF0YS5tZW1iZXJzIGFuZCBkYXRhLm1lbWJl cnN8bGVuZ3RoID4gMCAlfQorCisKK0dSQU5UIHt7IGNvbm58cXRJZGVudChk YXRhLm1lbWJlcnMpfGpvaW4oJywgJykgfX0gVE8ge3sgY29ubnxxdElkZW50 KGRhdGEucm9sbmFtZSkgfX07eyUgZW5kaWYgJX17JSBpZiBkYXRhLmFkbWlu cyBhbmQgZGF0YS5hZG1pbnN8bGVuZ3RoID4gMCAlfQorCitHUkFOVCB7eyBj b25ufHF0SWRlbnQoZGF0YS5hZG1pbnMpfGpvaW4oJywgJykgfX0gVE8ge3sg Y29ubnxxdElkZW50KGRhdGEucm9sbmFtZSkgfX0gV0lUSCBBRE1JTiBPUFRJ T047eyUgZW5kaWYgJX17JSBpZiBkYXRhLnZhcmlhYmxlcyAlfQorCit7JSBm b3IgdmFyIGluIGRhdGEudmFyaWFibGVzICV9CisKK3t7IFZBUklBQkxFLkFQ UExZKGNvbm4sIHZhci5kYXRhYmFzZSwgZGF0YS5yb2xuYW1lLCB2YXIubmFt ZSwgdmFyLnZhbHVlKSB9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgJX17JSBp ZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gUk9MRSB7eyBj b25ufHF0SWRlbnQoZGF0YS5yb2xuYW1lKSB9fSBJUyB7eyBkYXRhLmRlc2Ny aXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9y b2xlcy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDhfNC9ub2Rlcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xl cy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDhfNC9ub2Rlcy5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNkNGU0OAotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0OF80L25v ZGVzLnNxbApAQCAtMCwwICsxLDggQEAKK1NFTEVDVAorCXIub2lkLCByLnJv bG5hbWUsIHIucm9sY2FubG9naW4sIHIucm9sc3VwZXIKK0ZST00KKwl7eyBy b2xlX3RibCB9fSByCit7JSBpZiByaWQgJX0KK1dIRVJFIHIub2lkID0ge3sg cmlkIH19OjppbnQKK3slIGVuZGlmICV9CitPUkRFUiBCWSByLnJvbGNhbmxv Z2luLCByLnJvbG5hbWUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xl L3NxbC9wb3N0OF80L3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxhdGVzL3Jv bGUvc3FsL3Bvc3Q4XzQvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uZjk5MzY2MwotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0OF80L3Byb3BlcnRpZXMu c3FsCkBAIC0wLDAgKzEsMTYgQEAKK1NFTEVDVAorCXIub2lkLCByLiosCisJ cGdfY2F0YWxvZy5zaG9ial9kZXNjcmlwdGlvbihyLm9pZCwgJ3BnX2F1dGhp ZCcpIEFTIGRlc2NyaXB0aW9uLAorCUFSUkFZKAorCQlTRUxFQ1QKKwkJCUNB U0UgV0hFTiBhbS5hZG1pbl9vcHRpb24gVEhFTiAnMScgRUxTRSAnMCcgRU5E IHx8IHJtLnJvbG5hbWUKKwkJRlJPTQorCQkJKFNFTEVDVCAqIEZST00gcGdf YXV0aF9tZW1iZXJzIFdIRVJFIG1lbWJlciA9IHIub2lkKSBhbQorCQkJTEVG VCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgcm0gT04gKHJtLm9pZCA9IGFt LnJvbGVpZCkKKwkpIHJvbG1lbWJlcnNoaXAKK0ZST00KKwl7eyByb2xlX3Ri bCB9fSByCit7JSBpZiByaWQgJX0KK1dIRVJFIHIub2lkID0ge3sgcmlkIH19 OjppbnQKK3slIGVuZGlmICV9CitPUkRFUiBCWSByLnJvbGNhbmxvZ2luLCBy LnJvbG5hbWUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9w b3N0OF80L3NxbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDhf NC9zcWwuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjZmOTIwYjcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9s ZS9zcWwvcG9zdDhfNC9zcWwuc3FsCkBAIC0wLDAgKzEsOTggQEAKK1NFTEVD VAorCWFycmF5X3RvX3N0cmluZyhhcnJheV9hZ2coc3FsKSwgRSdcblxuJykK K0ZST00KKyhTRUxFQ1QKKwlDQVNFIFdIRU4gcm9sY2FubG9naW4gVEhFTiAn LS0gVXNlcjogJyBFTFNFICctLSBSb2xlOiAnIEVORAl8fAorCQlwZ19jYXRh bG9nLnF1b3RlX2lkZW50KHJvbG5hbWUpIHx8CisJCUUnXG4tLSBEUk9QICcg fHwgQ0FTRSBXSEVOIHJvbGNhbmxvZ2luIFRIRU4gJ1VTRVIgJyBFTFNFICdS T0xFICcgRU5EIHx8CisJCXBnX2NhdGFsb2cucXVvdGVfaWRlbnQocm9sbmFt ZSkgfHwgRSdcblxuQ1JFQVRFICcgfHwKKwkJQ0FTRSBXSEVOIHJvbGNhbmxv Z2luIFRIRU4gJ1VTRVIgJyBFTFNFICdST0xFICcgRU5EIHx8CisJCXBnX2Nh dGFsb2cucXVvdGVfaWRlbnQocm9sbmFtZSkgfHwgRScgV0lUSFxuICAnIHx8 CisJCUNBU0UgV0hFTiByb2xjYW5sb2dpbiBUSEVOICdMT0dJTicgRUxTRSAn Tk9MT0dJTicgRU5EIHx8IEUnXG4gICcgfHwKKwkJQ0FTRSBXSEVOIHJvbGNh bmxvZ2luIEFORCByb2xwYXNzd29yZCBMSUtFICdtZDUlJScgVEhFTiAnRU5D UllQVEVEIFBBU1NXT1JEICcgfHwgcXVvdGVfbGl0ZXJhbChyb2xwYXNzd29y ZCkgfHwgRSdcbiAgJyBFTFNFICcnIEVORCB8fAorCQlDQVNFIFdIRU4gcm9s c3VwZXIgVEhFTiAnU1VQRVJVU0VSJyBFTFNFICdOT1NVUEVSVVNFUicgRU5E IHx8IEUnXG4gICcgfHwKKwkJQ0FTRSBXSEVOIHJvbGluaGVyaXQgVEhFTiAn SU5IRVJJVCcgRUxTRSAnTk9JTkhFUklUJyBFTkQgfHwgRSdcbiAgJyB8fAor CQlDQVNFIFdIRU4gcm9sY3JlYXRlZGIgVEhFTiAnQ1JFQVRFREInIEVMU0Ug J05PQ1JFQVRFREInIEVORCB8fCBFJ1xuICAnIHx8CisJCUNBU0UgV0hFTiBy b2xjcmVhdGVyb2xlIFRIRU4gJ0NSRUFURVJPTEUnIEVMU0UgJ05PQ1JFQVRF Uk9MRScgRU5EIHx8IEUnXG4gICcgfHwKKwkJQ0FTRSBXSEVOIHJvbGNvbm5s aW1pdCA+IDAgVEhFTiBFJ1xuICBDT05ORUNUSU9OIExJTUlUICcgfHwgcm9s Y29ubmxpbWl0IEVMU0UgJycgRU5EIHx8CisJCUNBU0UgV0hFTiByb2x2YWxp ZHVudGlsIElTIE5PVCBOVUxMIFRIRU4gRSdcbiAgVkFMSUQgVU5USUwgJyB8 fCBxdW90ZV9saXRlcmFsKHJvbHZhbGlkdW50aWw6OnRleHQpIEVMU0UgJzsn IEVORCB8fAorCQktLSBQb3N0Z3JlU1FMIDwgOS41CisJCUNBU0UgV0hFTiBy b2xzdXBlciBBTkQgTk9UIHJvbGNhdHVwZGF0ZSBUSEVOIEUnXG5cblVQREFU RSBwZ19hdXRoaWQgU0VUIHJvbGNhdHVwZGF0ZT1mYWxzZSBXSEVSRSByb2xu YW1lPScgfHwgcGdfY2F0YWxvZy5xdW90ZV9saXRlcmFsKHJvbG5hbWUpIHx8 ICc7JyBFTFNFICcnIEVORCBBUyBzcWwKK0ZST00KKwl7eyByb2xlX3RibCB9 fSByCitXSEVSRQorCXIub2lkPSUocmlkKXM6Ok9JRAorVU5JT04gQUxMCiso U0VMRUNUCisJYXJyYXlfdG9fc3RyaW5nKGFycmF5X2FnZyhzcWwpLCBFJ1xu JykKK0ZST00KKyhTRUxFQ1QKKwknR1JBTlQgJyB8fCBhcnJheV90b19zdHJp bmcoYXJyYXlfYWdnKHJvbG5hbWUpLCAnLCAnKSB8fCAnIFRPICcgfHwgcGdf Y2F0YWxvZy5xdW90ZV9pZGVudChwZ19nZXRfdXNlcmJ5aWQoJShyaWQpczo6 T0lEKSkgfHwKKwlDQVNFIFdIRU4gYWRtaW5fb3B0aW9uIFRIRU4gJyBXSVRI IEFETUlOIE9QVElPTjsnIEVMU0UgJzsnIEVORCBzcWwKK0ZST00KKwkoU0VM RUNUCisJCXF1b3RlX2lkZW50KHIucm9sbmFtZSkgQVMgcm9sbmFtZSwgbS5h ZG1pbl9vcHRpb24gQVMgYWRtaW5fb3B0aW9uCisJRlJPTQorCQlwZ19hdXRo X21lbWJlcnMgbQorCQlMRUZUIEpPSU4gcGdfcm9sZXMgciBPTiAobS5yb2xl aWQgPSByLm9pZCkKKwlXSEVSRQorCQltLm1lbWJlcj0lKHJpZClzOjpPSUQK KwlPUkRFUiBCWQorCQlyLnJvbG5hbWUKKwkpIGEKK0dST1VQIEJZIGFkbWlu X29wdGlvbikgcykKK1VOSU9OIEFMTAorKFNFTEVDVAorCWFycmF5X3RvX3N0 cmluZyhhcnJheV9hZ2coc3FsKSwgRSdcbicpIHNxbAorRlJPTQorKFNFTEVD VAorCSdBTFRFUiAnIHx8IENBU0UgV0hFTiByb2xjYW5sb2dpbiBUSEVOICdV U0VSICcgRUxTRSAnUk9MRSAnIEVORCB8fCBwZ19jYXRhbG9nLnF1b3RlX2lk ZW50KHJvbG5hbWUpIHx8ICcgU0VUICcgfHwgcGFyYW0gfHwgJyBUTyAnIHx8 IENBU0UgV0hFTiBwYXJhbSBJTiAoJ3NlYXJjaF9wYXRoJywgJ3RlbXBfdGFi bGVzcGFjZXMnKSBUSEVOIHZhbHVlIEVMU0UgcXVvdGVfbGl0ZXJhbCh2YWx1 ZSkgRU5EIHx8ICc7JyBBUyBzcWwKK0ZST00KKyhTRUxFQ1QKKwlyb2xjYW5s b2dpbiwgcm9sbmFtZSwgc3BsaXRfcGFydChyb2xjb25maWcsICc9JywgMSkg QVMgcGFyYW0sIHJlcGxhY2Uocm9sY29uZmlnLCBzcGxpdF9wYXJ0KHJvbGNv bmZpZywgJz0nLCAxKSB8fCAnPScsICcnKSBBUyB2YWx1ZQorRlJPTQorCShT RUxFQ1QKKwkJCXVubmVzdChyb2xjb25maWcpIEFTIHJvbGNvbmZpZywgcm9s Y2FubG9naW4sIHJvbG5hbWUKKwlGUk9NCisJCXBnX2NhdGFsb2cucGdfcm9s ZXMKKwlXSEVSRQorCQlvaWQ9JShyaWQpczo6T0lECisJKSByCispIGEpIGIp CistLSBQb3N0Z3JlU1FMID49IDkuMAorVU5JT04gQUxMCisoU0VMRUNUCisJ YXJyYXlfdG9fc3RyaW5nKGFycmF5X2FnZyhzcWwpLCBFJ1xuJykgQVMgc3Fs CitGUk9NCisJKFNFTEVDVAorCQknQUxURVIgUk9MRSAnIHx8IHBnX2NhdGFs b2cucXVvdGVfaWRlbnQocGdfZ2V0X3VzZXJieWlkKCUocmlkKXM6Ok9JRCkp IHx8CisJCScgSU4gREFUQUJBU0UgJyB8fCBwZ19jYXRhbG9nLnF1b3RlX2lk ZW50KGRhdG5hbWUpIHx8CisJCScgU0VUICcgfHwgcGFyYW18fCAnIFRPICcg fHwKKwkJQ0FTRQorCQlXSEVOIHBhcmFtIElOICgnc2VhcmNoX3BhdGgnLCAn dGVtcF90YWJsZXNwYWNlcycpIFRIRU4gdmFsdWUKKwkJRUxTRSBxdW90ZV9s aXRlcmFsKHZhbHVlKQorCQlFTkQgfHwgJzsnIEFTIHNxbAorCUZST00KKwkJ KFNFTEVDVAorCQkJZGF0bmFtZSwgc3BsaXRfcGFydChyb2xjb25maWcsICc9 JywgMSkgQVMgcGFyYW0sIHJlcGxhY2Uocm9sY29uZmlnLCBzcGxpdF9wYXJ0 KHJvbGNvbmZpZywgJz0nLCAxKSB8fCAnPScsICcnKSBBUyB2YWx1ZQorCQlG Uk9NCisJCQkoU0VMRUNUCisJCQkJZC5kYXRuYW1lLCB1bm5lc3QoYy5zZXRj b25maWcpIEFTIHJvbGNvbmZpZworCQkJRlJPTQorCQkJCShTRUxFQ1QgKgor CQkJCUZST00KKwkJCQkJcGdfY2F0YWxvZy5wZ19kYl9yb2xlX3NldHRpbmcg ZHIKKwkJCQlXSEVSRQorCQkJCQlkci5zZXRyb2xlPSUocmlkKXM6Ok9JRCBB TkQgZHIuc2V0ZGF0YWJhc2UhPTApIGMKKwkJCQlMRUZUIEpPSU4gcGdfY2F0 YWxvZy5wZ19kYXRhYmFzZSBkIE9OIChkLm9pZCA9IGMuc2V0ZGF0YWJhc2Up CisJCQkpIGEKKwkJKSBiCisJKSBkCispCitVTklPTiBBTEwKKyhTRUxFQ1QK KwknQ09NTUVOVCBPTiBST0xFICcgfHwgcGdfY2F0YWxvZy5xdW90ZV9pZGVu dChwZ19nZXRfdXNlcmJ5aWQoJShyaWQpczo6T0lEKSkgfHwgJyBJUyAnIHx8 ICBwZ19jYXRhbG9nLnF1b3RlX2xpdGVyYWwoZGVzY3JpcHRpb24pIHx8ICc7 JyBBUyBzcWwKK0ZST00KKwkoU0VMRUNUCXBnX2NhdGFsb2cuc2hvYmpfZGVz Y3JpcHRpb24oJShyaWQpczo6T0lELCAncGdfYXV0aGlkJykgQVMgZGVzY3Jp cHRpb24pIGEKK1dIRVJFCisJZGVzY3JpcHRpb24gSVMgTk9UIE5VTEwpKSBB UyBhCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDhf NC91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxhdGVzL3JvbGUvc3FsL3Bvc3Q4XzQv dXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4zMTZiNWQwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxhdGVzL3Jv bGUvc3FsL3Bvc3Q4XzQvdXBkYXRlLnNxbApAQCAtMCwwICsxLDExMCBAQAor eyUgaW1wb3J0ICdtYWNyb3MvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJM RSAlfQoreyUgaWYgJ3JvbG5hbWUnIGluIGRhdGEgJX0KK3slIHNldCByb2xu YW1lPWRhdGEucm9sbmFtZSAlfQorQUxURVJ7JSBpZiByb2xDYW5Mb2dpbiAl fSBVU0VSIHslIGVsc2UgJX0gUk9MRSB7JSBlbmRpZiAlfXt7IGNvbm58cXRJ ZGVudChyb2xlKSB9fQorCVJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQocm9s bmFtZSkgfX07CisKK3slIGVsc2UgJX0KK3slIHNldCByb2xuYW1lPXJvbGUg JX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRhfGhhc0FueShhbHRlcktleXMp ICV9CitBTFRFUiB7JSBpZiByb2xDYW5Mb2dpbiAlfVVTRVJ7JSBlbHNlICV9 Uk9MRXslIGVuZGlmICV9IHt7IGNvbm58cXRJZGVudChyb2xuYW1lKSB9fXsl IGlmICdyb2xjYW5sb2dpbicgaW4gZGF0YSAlfQorCit7JSBpZiBkYXRhLnJv bGNhbmxvZ2luICV9CisJTE9HSU57JSBlbHNlICV9CisJTk9MT0dJTnslIGVu ZGlmICV9eyUgZW5kaWYgJX17JSBpZiAncm9sc3VwZXInIGluIGRhdGEgJX0K KworeyUgaWYgZGF0YS5yb2xzdXBlciAlfQorCVNVUEVSVVNFUnslIGVsc2Ug JX0KKwlOT1NVUEVSVVNFUnslIGVuZGlmICV9eyUgZW5kaWYgJX17JSBpZiAn cm9sY3JlYXRlZGInIGluIGRhdGEgJX0KKworeyUgaWYgZGF0YS5yb2xjcmVh dGVkYiAlfQorCUNSRUFURURCeyUgZWxzZSAlfQorCU5PQ1JFQVRFREJ7JSBl bmRpZiAlfXslIGVuZGlmICV9eyUgaWYgJ3JvbGNyZWF0ZXJvbGUnIGluIGRh dGEgJX0KKworeyUgaWYgZGF0YS5yb2xjcmVhdGVyb2xlICV9CisJQ1JFQVRF Uk9MRXslIGVsc2UgJX0KKwlOT0NSRUFURVJPTEV7JSBlbmRpZiAlfXslIGVu ZGlmICV9eyUgaWYgJ3JvbGluaGVyaXQnIGluIGRhdGEgJX0KKworeyUgaWYg ZGF0YS5yb2xpbmhlcml0ICV9CisJSU5IRVJJVHslIGVsc2UgJX0KKwlOT0lO SEVSSVR7JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgaWYgJ3JvbHJlcGxpY2F0 aW9uJyBpbiBkYXRhICV9CisKK3slIGlmIGRhdGEucm9scmVwbGljYXRpb24g JX0KKwlSRVBMSUNBVElPTnslIGVsc2UgJX0KKwlOT1JFUExJQ0FUSU9OeyUg ZW5kaWYgJX17JSBlbmRpZiAlfXslIGlmICdyb2xjb25ubGltaXQnIGluIGRh dGEgYW5kIGRhdGEucm9sY29ubmxpbWl0IGlzIG51bWJlciBhbmQgZGF0YS5y b2xjb25ubGltaXQgPj0gLTEgJX0KKworCUNPTk5FQ1RJT04gTElNSVQge3sg ZGF0YS5yb2xjb25ubGltaXQgfX0KK3slIGVuZGlmICV9eyUgaWYgJ3JvbHZh bGlkdW50aWwnIGluIGRhdGEgYW5kIGRhdGEucm9sdmFsaWR1bnRpbCAlfQor CisJVkFMSUQgVU5USUwgeyUgaWYgZGF0YS5yb2x2YWxpZHVudGlsIGlzIG5v dCBub25lICV9e3sgZGF0YS5yb2x2YWxpZHVudGlsfHF0TGl0ZXJhbCB9fXsl IGVsc2UgJX0naW5maW5pdHknCit7JSBlbmRpZiAlfXslIGVuZGlmICV9eyUg aWYgJ3JvbHBhc3N3b3JkJyBpbiBkYXRhICV9CisKKwlQQVNTV09SRHslIGlm IGRhdGEucm9scGFzc3dvcmQgaXMgbm9uZSAlfSBOVUxMeyUgZWxzZSAlfXsl IGlmIGR1bW15ICV9ICd4eHh4eHgneyUgZWxzZSAlfSB7eyBkYXRhLnJvbHBh c3N3b3JkfHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9eyUgZW5kaWYgJX17JSBl bmRpZiAlfTt7JSBlbmRpZiAlfQorCit7JSBpZgorCW5vdCByb2xTdXBlciBh bmQKKwkncm9sc3VwZXInIGluIGRhdGEgYW5kCisJJ3JvbGNhdHVwZGF0ZScg bm90IGluIGRhdGEgYW5kCisJZGF0YS5yb2xzdXBlciAlfQorCisKK1VQREFU RSBwZ19hdXRoaWQgU0VUIHJvbGNhdHVwZGF0ZT1mYWxzZSBXSEVSRSByb2xu YW1lID0ge3sgcm9sbmFtZXxxdExpdGVyYWwgfX07CisKK3slIGVsaWYKKwly b2xTdXBlciBhbmQKKwkncm9sc3VwZXInIG5vdCBpbiBkYXRhIGFuZAorCSdy b2xjYXR1cGRhdGUnIGluIGRhdGEgJX0KK3slIGlmIGRhdGEucm9sY2F0dXBk YXRlICV9CisKKworVVBEQVRFIHBnX2F1dGhpZCBTRVQgcm9sY2F0dXBkYXRl PXRydWUgV0hFUkUgcm9sbmFtZSA9IHt7IHJvbG5hbWV8cXRMaXRlcmFsIH19 OworCit7JSBlbHNlICV9CisKKworVVBEQVRFIHBnX2F1dGhpZCBTRVQgcm9s Y2F0dXBkYXRlPWZhbHNlIFdIRVJFIHJvbG5hbWUgPSB7eyByb2xuYW1lfHF0 TGl0ZXJhbCB9fTsKKworeyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiAncmV2b2tlZF9hZG1pbnMnIGluIGRhdGEgYW5kCisJZGF0YS5yZXZva2Vk X2FkbWluc3xsZW5ndGggPiAwCislfQorCistLSBSZXZva2VkIHRoZSBhZG1p biBvcHRpb25zIGZyb20gdGhlIG1lbWJlcnMKK1JFVk9LRSBBRE1JTiBPUFRJ T04gRk9SIHt7IGNvbm58cXRJZGVudChkYXRhLnJldm9rZWRfYWRtaW5zKXxq b2luKCcsICcpIH19IEZST00ge3sgY29ubnxxdElkZW50KHJvbG5hbWUpIH19 O3slIGVuZGlmICV9eyUgaWYgJ3Jldm9rZWQnIGluIGRhdGEgYW5kIGRhdGEu cmV2b2tlZHxsZW5ndGggPiAwICV9CisKKworLS0gRm9sbG93aW5nIGFyZSBu byBtb3JlIHRoZSBtZW1iZXJzCitSRVZPS0Uge3sgY29ubnxxdElkZW50KGRh dGEucmV2b2tlZCl8am9pbignLCAnKSB9fSBGUk9NIHt7IGNvbm58cXRJZGVu dChyb2xuYW1lKSB9fTt7JSBlbmRpZiAlfXslIGlmIGRhdGEuYWRtaW5zIGFu ZCBkYXRhLmFkbWluc3xsZW5ndGggPiAwICV9CisKKy0tIEZvbGxvd2luZyBh cmUgdGhlIG5ldyBhZG1pbnMgKG9yLCBleGlzdGluZyBtZW1iZXJzIG1hZGUg YWRtaW5zKQorR1JBTlQge3sgY29ubnxxdElkZW50KGRhdGEuYWRtaW5zKXxq b2luKCcsICcpIH19IFRPIHt7IGNvbm58cXRJZGVudChyb2xuYW1lKSB9fSBX SVRIIEFETUlOIE9QVElPTjt7JSBlbmRpZiAlfXslIGlmIGRhdGEubWVtYmVy cyBhbmQgZGF0YS5tZW1iZXJzfGxlbmd0aCA+IDAgJX0KKworCistLSBGb2xs b3dpbmcgYXJlIHRoZSBuZXcgbWVtYmVycworR1JBTlQge3sgY29ubnxxdElk ZW50KGRhdGEubWVtYmVycyl8am9pbignLCAnKSB9fSBUTyB7eyBjb25ufHF0 SWRlbnQocm9sbmFtZSkgfX07eyUgZW5kaWYgJX0KK3slIGlmICd2YXJpYWJs ZXMnIGluIGRhdGEgYW5kIGRhdGEudmFyaWFibGVzfGxlbmd0aCA+IDAgJX0K K3slIHNldCB2YXJpYWJsZXMgPSBkYXRhLnZhcmlhYmxlcyAlfQoreyUgaWYg J2RlbGV0ZWQnIGluIHZhcmlhYmxlcyBhbmQgdmFyaWFibGVzLmRlbGV0ZWR8 bGVuZ3RoID4gMCAlfQorCit7JSBmb3IgdmFyIGluIHZhcmlhYmxlcy5kZWxl dGVkICV9Cit7eyBWQVJJQUJMRS5SRVNFVChjb25uLCB2YXIuZGF0YWJhc2Us IHJvbG5hbWUsIHZhci5uYW1lKSB9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYg JX0KK3slIGlmICdhZGRlZCcgaW4gdmFyaWFibGVzIGFuZCB2YXJpYWJsZXMu YWRkZWR8bGVuZ3RoID4gMCAlfQorCit7JSBmb3IgdmFyIGluIHZhcmlhYmxl cy5hZGRlZCAlfQore3sgVkFSSUFCTEUuQVBQTFkoY29ubiwgdmFyLmRhdGFi YXNlLCByb2xuYW1lLCB2YXIubmFtZSwgdmFyLnZhbHVlKSB9fQoreyUgZW5k Zm9yICV9eyUgZW5kaWYgJX0KK3slIGlmICdjaGFuZ2VkJyBpbiB2YXJpYWJs ZXMgYW5kIHZhcmlhYmxlcy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KKworeyUg Zm9yIHZhciBpbiB2YXJpYWJsZXMuY2hhbmdlZCAlfQore3sgVkFSSUFCTEUu QVBQTFkoY29ubiwgdmFyLmRhdGFiYXNlLCByb2xuYW1lLCB2YXIubmFtZSwg dmFyLnZhbHVlKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUg ZW5kaWYgJX0KK3slIGlmICdkZXNjcmlwdGlvbicgaW4gZGF0YSAlfQorCisK K0NPTU1FTlQgT04gUk9MRSB7eyBjb25ufHF0SWRlbnQocm9sbmFtZSkgfX0g SVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07Cit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxhdGVzL3JvbGUvc3FsL3Bvc3Q4 XzQvdmFyaWFibGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0 OF80L3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYjg2MjBjMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3RlbXBs YXRlcy9yb2xlL3NxbC9wb3N0OF80L3ZhcmlhYmxlcy5zcWwKQEAgLTAsMCAr MSwyNSBAQAorU0VMRUNUCisgICAgc3BsaXRfcGFydChyb2xjb25maWcsICc9 JywgMSkgQVMgbmFtZSwgcmVwbGFjZShyb2xjb25maWcsIHNwbGl0X3BhcnQo cm9sY29uZmlnLCAnPScsIDEpIHx8ICc9JywgJycpIEFTIHZhbHVlLCBOVUxM Ojp0ZXh0IEFTIGRhdGFiYXNlCitGUk9NCisgICAgKFNFTEVDVAorICAgICAg ICAgICAgdW5uZXN0KHJvbGNvbmZpZykgQVMgcm9sY29uZmlnLCByb2xjYW5s b2dpbiwgcm9sbmFtZQorICAgIEZST00KKyAgICAgICAgcGdfY2F0YWxvZy5w Z19yb2xlcworICAgIFdIRVJFCisgICAgICAgIG9pZD17eyByaWR8cXRMaXRl cmFsIH19OjpPSUQKKyAgICApIHIKKworVU5JT04gQUxMCitTRUxFQ1QKKyAg ICBzcGxpdF9wYXJ0KHJvbGNvbmZpZywgJz0nLCAxKSBBUyBuYW1lLCByZXBs YWNlKHJvbGNvbmZpZywgc3BsaXRfcGFydChyb2xjb25maWcsICc9JywgMSkg fHwgJz0nLCAnJykgQVMgdmFsdWUsIGRhdG5hbWUgQVMgZGF0YWJhc2UKK0ZS T00KKyAgICAoU0VMRUNUCisgICAgICAgIGQuZGF0bmFtZSwgdW5uZXN0KGMu c2V0Y29uZmlnKSBBUyByb2xjb25maWcKKyAgICBGUk9NCisgICAgICAgIChT RUxFQ1QgKgorICAgICAgICBGUk9NIHBnX2NhdGFsb2cucGdfZGJfcm9sZV9z ZXR0aW5nIGRyCisgICAgICAgIFdIRVJFCisgICAgICAgICAgICBkci5zZXRy b2xlPXt7IHJpZHxxdExpdGVyYWwgfX06Ok9JRCBBTkQgZHIuc2V0ZGF0YWJh c2UhPTAKKyAgICAgICAgKSBjCisgICAgICAgIExFRlQgSk9JTiBwZ19jYXRh bG9nLnBnX2RhdGFiYXNlIGQgT04gKGQub2lkID0gYy5zZXRkYXRhYmFzZSkK KyAgICApIGE7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9zcWwv cG9zdDlfMC9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxhdGVzL3JvbGUvc3FsL3Bv c3Q5XzAvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4wZmViNWQwCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxh dGVzL3JvbGUvc3FsL3Bvc3Q5XzAvY3JlYXRlLnNxbApAQCAtMCwwICsxLDQ1 IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNF Q0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy92YXJpYWJsZS5tYWNyb3Mn IGFzIFZBUklBQkxFICV9CitDUkVBVEUgeyUgaWYgZGF0YS5yb2xjYW5sb2dp biAlfVVTRVJ7JSBlbHNlICV9Uk9MRXslIGVuZGlmICV9IHt7IGNvbm58cXRJ ZGVudChkYXRhLnJvbG5hbWUpIH19IFdJVEh7JSBpZiBkYXRhLnJvbGNhbmxv Z2luIGFuZCBkYXRhLnJvbGNhbmxvZ2luIGlzIHNhbWVhcyBUcnVlICAlfQor CisJTE9HSU57JSBlbHNlICV9CisKKwlOT0xPR0lOeyUgZW5kaWYgJX17JSBp ZiBkYXRhLnJvbHN1cGVyICV9CisKKwlTVVBFUlVTRVJ7JSBlbHNlICV9CisK KwlOT1NVUEVSVVNFUnslIGVuZGlmICV9eyUgaWYgZGF0YS5yb2xjcmVhdGVk YiAlfQorCisJQ1JFQVRFREJ7JSBlbHNlICV9CisKKwlOT0NSRUFURURCeyUg ZW5kaWYgJX17JSBpZiBkYXRhLnJvbGNyZWF0ZXJvbGUgJX0KKworCUNSRUFU RVJPTEV7JSBlbHNlICV9CisKKwlOT0NSRUFURVJPTEV7JSBlbmRpZiAlfXsl IGlmIGRhdGEucm9saW5oZXJpdCBpcyBzYW1lYXMgdHJ1ZSAlfQorCisJSU5I RVJJVHslIGVsc2UgJX0KKworCU5PSU5IRVJJVHslIGVuZGlmICV9eyUgaWYg J3JvbGNvbm5saW1pdCcgaW4gZGF0YSBhbmQgZGF0YS5yb2xjb25ubGltaXQg aXMgbnVtYmVyIGFuZCBkYXRhLnJvbGNvbm5saW1pdCA+PSAtMSAlfQorCisJ Q09OTkVDVElPTiBMSU1JVCB7eyBkYXRhLnJvbGNvbm5saW1pdCB9fXslIGVu ZGlmICV9eyUgaWYgZGF0YS5yb2x2YWxpZHVudGlsIGFuZCBkYXRhLnJvbHZh bGlkdW50aWwgaXMgbm90IG5vbmUgJX0KKworCVZBTElEIFVOVElMIHt7IGRh dGEucm9sdmFsaWR1bnRpbHxxdExpdGVyYWwgfX0geyUgZW5kaWYgJX17JSBp ZiBkYXRhLnJvbHBhc3N3b3JkICV9CisKKwlQQVNTV09SRCB7JSBpZiBkYXRh LnJvbHBhc3N3b3JkIGlzIG5vbmUgJX1OVUxMeyUgZWxzZSAlfXslIGlmIGR1 bW15ICV9J3h4eHh4eCd7JSBlbHNlICV9IHt7IGRhdGEucm9scGFzc3dvcmQg fCBxdExpdGVyYWwgfX17JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgZW5kaWYg JX07eyUgaWYgZGF0YS5yb2xzdXBlciBhbmQgZGF0YS5yb2xjYXR1cGRhdGUg aXMgc2FtZWFzIGZhbHNlICV9CisKKworVVBEQVRFIHBnX2F1dGhpZCBTRVQg cm9sY2F0dXBkYXRlPWZhbHNlIFdIRVJFIHJvbG5hbWUgPSB7eyBkYXRhLnJv bG5hbWV8cXRMaXRlcmFsIH19O3slIGVuZGlmICV9eyUgaWYgZGF0YS5tZW1i ZXJzIGFuZCBkYXRhLm1lbWJlcnN8bGVuZ3RoID4gMCAlfQorCisKK0dSQU5U IHt7IGNvbm58cXRJZGVudChkYXRhLm1lbWJlcnMpfGpvaW4oJywgJykgfX0g VE8ge3sgY29ubnxxdElkZW50KGRhdGEucm9sbmFtZSkgfX07eyUgZW5kaWYg JX17JSBpZiBkYXRhLmFkbWlucyBhbmQgZGF0YS5hZG1pbnN8bGVuZ3RoID4g MCAlfQorCitHUkFOVCB7eyBjb25ufHF0SWRlbnQoZGF0YS5hZG1pbnMpfGpv aW4oJywgJykgfX0gVE8ge3sgY29ubnxxdElkZW50KGRhdGEucm9sbmFtZSkg fX0gV0lUSCBBRE1JTiBPUFRJT047eyUgZW5kaWYgJX17JSBpZiBkYXRhLnZh cmlhYmxlcyAlfQorCit7JSBmb3IgdmFyIGluIGRhdGEudmFyaWFibGVzICV9 CisKK3t7IFZBUklBQkxFLkFQUExZKGNvbm4sIHZhci5kYXRhYmFzZSwgZGF0 YS5yb2xuYW1lLCB2YXIubmFtZSwgdmFyLnZhbHVlKSB9fQoreyUgZW5kZm9y ICV9eyUgZW5kaWYgJX17JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NP TU1FTlQgT04gUk9MRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5yb2xuYW1lKSB9 fSBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVu ZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9z dDlfMC9ub2Rlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDlf MC9ub2Rlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZmNkNGU0OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9y b2xlL3NxbC9wb3N0OV8wL25vZGVzLnNxbApAQCAtMCwwICsxLDggQEAKK1NF TEVDVAorCXIub2lkLCByLnJvbG5hbWUsIHIucm9sY2FubG9naW4sIHIucm9s c3VwZXIKK0ZST00KKwl7eyByb2xlX3RibCB9fSByCit7JSBpZiByaWQgJX0K K1dIRVJFIHIub2lkID0ge3sgcmlkIH19OjppbnQKK3slIGVuZGlmICV9CitP UkRFUiBCWSByLnJvbGNhbmxvZ2luLCByLnJvbG5hbWUKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jv bGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0OV8wL3Byb3BlcnRpZXMuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv cm9sZXMvdGVtcGxhdGVzL3JvbGUvc3FsL3Bvc3Q5XzAvcHJvcGVydGllcy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjk5MzY2 MwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9w b3N0OV8wL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsMTYgQEAKK1NFTEVD VAorCXIub2lkLCByLiosCisJcGdfY2F0YWxvZy5zaG9ial9kZXNjcmlwdGlv bihyLm9pZCwgJ3BnX2F1dGhpZCcpIEFTIGRlc2NyaXB0aW9uLAorCUFSUkFZ KAorCQlTRUxFQ1QKKwkJCUNBU0UgV0hFTiBhbS5hZG1pbl9vcHRpb24gVEhF TiAnMScgRUxTRSAnMCcgRU5EIHx8IHJtLnJvbG5hbWUKKwkJRlJPTQorCQkJ KFNFTEVDVCAqIEZST00gcGdfYXV0aF9tZW1iZXJzIFdIRVJFIG1lbWJlciA9 IHIub2lkKSBhbQorCQkJTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMg cm0gT04gKHJtLm9pZCA9IGFtLnJvbGVpZCkKKwkpIHJvbG1lbWJlcnNoaXAK K0ZST00KKwl7eyByb2xlX3RibCB9fSByCit7JSBpZiByaWQgJX0KK1dIRVJF IHIub2lkID0ge3sgcmlkIH19OjppbnQKK3slIGVuZGlmICV9CitPUkRFUiBC WSByLnJvbGNhbmxvZ2luLCByLnJvbG5hbWUKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rl bXBsYXRlcy9yb2xlL3NxbC9wb3N0OV8wL3NxbC5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0 ZXMvcm9sZS9zcWwvcG9zdDlfMC9zcWwuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjZmOTIwYjcKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9y b2xlcy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDlfMC9zcWwuc3FsCkBAIC0w LDAgKzEsOTggQEAKK1NFTEVDVAorCWFycmF5X3RvX3N0cmluZyhhcnJheV9h Z2coc3FsKSwgRSdcblxuJykKK0ZST00KKyhTRUxFQ1QKKwlDQVNFIFdIRU4g cm9sY2FubG9naW4gVEhFTiAnLS0gVXNlcjogJyBFTFNFICctLSBSb2xlOiAn IEVORAl8fAorCQlwZ19jYXRhbG9nLnF1b3RlX2lkZW50KHJvbG5hbWUpIHx8 CisJCUUnXG4tLSBEUk9QICcgfHwgQ0FTRSBXSEVOIHJvbGNhbmxvZ2luIFRI RU4gJ1VTRVIgJyBFTFNFICdST0xFICcgRU5EIHx8CisJCXBnX2NhdGFsb2cu cXVvdGVfaWRlbnQocm9sbmFtZSkgfHwgRSdcblxuQ1JFQVRFICcgfHwKKwkJ Q0FTRSBXSEVOIHJvbGNhbmxvZ2luIFRIRU4gJ1VTRVIgJyBFTFNFICdST0xF ICcgRU5EIHx8CisJCXBnX2NhdGFsb2cucXVvdGVfaWRlbnQocm9sbmFtZSkg fHwgRScgV0lUSFxuICAnIHx8CisJCUNBU0UgV0hFTiByb2xjYW5sb2dpbiBU SEVOICdMT0dJTicgRUxTRSAnTk9MT0dJTicgRU5EIHx8IEUnXG4gICcgfHwK KwkJQ0FTRSBXSEVOIHJvbGNhbmxvZ2luIEFORCByb2xwYXNzd29yZCBMSUtF ICdtZDUlJScgVEhFTiAnRU5DUllQVEVEIFBBU1NXT1JEICcgfHwgcXVvdGVf bGl0ZXJhbChyb2xwYXNzd29yZCkgfHwgRSdcbiAgJyBFTFNFICcnIEVORCB8 fAorCQlDQVNFIFdIRU4gcm9sc3VwZXIgVEhFTiAnU1VQRVJVU0VSJyBFTFNF ICdOT1NVUEVSVVNFUicgRU5EIHx8IEUnXG4gICcgfHwKKwkJQ0FTRSBXSEVO IHJvbGluaGVyaXQgVEhFTiAnSU5IRVJJVCcgRUxTRSAnTk9JTkhFUklUJyBF TkQgfHwgRSdcbiAgJyB8fAorCQlDQVNFIFdIRU4gcm9sY3JlYXRlZGIgVEhF TiAnQ1JFQVRFREInIEVMU0UgJ05PQ1JFQVRFREInIEVORCB8fCBFJ1xuICAn IHx8CisJCUNBU0UgV0hFTiByb2xjcmVhdGVyb2xlIFRIRU4gJ0NSRUFURVJP TEUnIEVMU0UgJ05PQ1JFQVRFUk9MRScgRU5EIHx8IEUnXG4gICcgfHwKKwkJ Q0FTRSBXSEVOIHJvbGNvbm5saW1pdCA+IDAgVEhFTiBFJ1xuICBDT05ORUNU SU9OIExJTUlUICcgfHwgcm9sY29ubmxpbWl0IEVMU0UgJycgRU5EIHx8CisJ CUNBU0UgV0hFTiByb2x2YWxpZHVudGlsIElTIE5PVCBOVUxMIFRIRU4gRSdc biAgVkFMSUQgVU5USUwgJyB8fCBxdW90ZV9saXRlcmFsKHJvbHZhbGlkdW50 aWw6OnRleHQpIEVMU0UgJzsnIEVORCB8fAorCQktLSBQb3N0Z3JlU1FMIDwg OS41CisJCUNBU0UgV0hFTiByb2xzdXBlciBBTkQgTk9UIHJvbGNhdHVwZGF0 ZSBUSEVOIEUnXG5cblVQREFURSBwZ19hdXRoaWQgU0VUIHJvbGNhdHVwZGF0 ZT1mYWxzZSBXSEVSRSByb2xuYW1lPScgfHwgcGdfY2F0YWxvZy5xdW90ZV9s aXRlcmFsKHJvbG5hbWUpIHx8ICc7JyBFTFNFICcnIEVORCBBUyBzcWwKK0ZS T00KKwl7eyByb2xlX3RibCB9fSByCitXSEVSRQorCXIub2lkPSUocmlkKXM6 Ok9JRAorVU5JT04gQUxMCisoU0VMRUNUCisJYXJyYXlfdG9fc3RyaW5nKGFy cmF5X2FnZyhzcWwpLCBFJ1xuJykKK0ZST00KKyhTRUxFQ1QKKwknR1JBTlQg JyB8fCBhcnJheV90b19zdHJpbmcoYXJyYXlfYWdnKHJvbG5hbWUpLCAnLCAn KSB8fCAnIFRPICcgfHwgcGdfY2F0YWxvZy5xdW90ZV9pZGVudChwZ19nZXRf dXNlcmJ5aWQoJShyaWQpczo6T0lEKSkgfHwKKwlDQVNFIFdIRU4gYWRtaW5f b3B0aW9uIFRIRU4gJyBXSVRIIEFETUlOIE9QVElPTjsnIEVMU0UgJzsnIEVO RCBzcWwKK0ZST00KKwkoU0VMRUNUCisJCXF1b3RlX2lkZW50KHIucm9sbmFt ZSkgQVMgcm9sbmFtZSwgbS5hZG1pbl9vcHRpb24gQVMgYWRtaW5fb3B0aW9u CisJRlJPTQorCQlwZ19hdXRoX21lbWJlcnMgbQorCQlMRUZUIEpPSU4gcGdf cm9sZXMgciBPTiAobS5yb2xlaWQgPSByLm9pZCkKKwlXSEVSRQorCQltLm1l bWJlcj0lKHJpZClzOjpPSUQKKwlPUkRFUiBCWQorCQlyLnJvbG5hbWUKKwkp IGEKK0dST1VQIEJZIGFkbWluX29wdGlvbikgcykKK1VOSU9OIEFMTAorKFNF TEVDVAorCWFycmF5X3RvX3N0cmluZyhhcnJheV9hZ2coc3FsKSwgRSdcbicp IHNxbAorRlJPTQorKFNFTEVDVAorCSdBTFRFUiAnIHx8IENBU0UgV0hFTiBy b2xjYW5sb2dpbiBUSEVOICdVU0VSICcgRUxTRSAnUk9MRSAnIEVORCB8fCBw Z19jYXRhbG9nLnF1b3RlX2lkZW50KHJvbG5hbWUpIHx8ICcgU0VUICcgfHwg cGFyYW0gfHwgJyBUTyAnIHx8IENBU0UgV0hFTiBwYXJhbSBJTiAoJ3NlYXJj aF9wYXRoJywgJ3RlbXBfdGFibGVzcGFjZXMnKSBUSEVOIHZhbHVlIEVMU0Ug cXVvdGVfbGl0ZXJhbCh2YWx1ZSkgRU5EIHx8ICc7JyBBUyBzcWwKK0ZST00K KyhTRUxFQ1QKKwlyb2xjYW5sb2dpbiwgcm9sbmFtZSwgc3BsaXRfcGFydChy b2xjb25maWcsICc9JywgMSkgQVMgcGFyYW0sIHJlcGxhY2Uocm9sY29uZmln LCBzcGxpdF9wYXJ0KHJvbGNvbmZpZywgJz0nLCAxKSB8fCAnPScsICcnKSBB UyB2YWx1ZQorRlJPTQorCShTRUxFQ1QKKwkJCXVubmVzdChyb2xjb25maWcp IEFTIHJvbGNvbmZpZywgcm9sY2FubG9naW4sIHJvbG5hbWUKKwlGUk9NCisJ CXBnX2NhdGFsb2cucGdfcm9sZXMKKwlXSEVSRQorCQlvaWQ9JShyaWQpczo6 T0lECisJKSByCispIGEpIGIpCistLSBQb3N0Z3JlU1FMID49IDkuMAorVU5J T04gQUxMCisoU0VMRUNUCisJYXJyYXlfdG9fc3RyaW5nKGFycmF5X2FnZyhz cWwpLCBFJ1xuJykgQVMgc3FsCitGUk9NCisJKFNFTEVDVAorCQknQUxURVIg Uk9MRSAnIHx8IHBnX2NhdGFsb2cucXVvdGVfaWRlbnQocGdfZ2V0X3VzZXJi eWlkKCUocmlkKXM6Ok9JRCkpIHx8CisJCScgSU4gREFUQUJBU0UgJyB8fCBw Z19jYXRhbG9nLnF1b3RlX2lkZW50KGRhdG5hbWUpIHx8CisJCScgU0VUICcg fHwgcGFyYW18fCAnIFRPICcgfHwKKwkJQ0FTRQorCQlXSEVOIHBhcmFtIElO ICgnc2VhcmNoX3BhdGgnLCAndGVtcF90YWJsZXNwYWNlcycpIFRIRU4gdmFs dWUKKwkJRUxTRSBxdW90ZV9saXRlcmFsKHZhbHVlKQorCQlFTkQgfHwgJzsn IEFTIHNxbAorCUZST00KKwkJKFNFTEVDVAorCQkJZGF0bmFtZSwgc3BsaXRf cGFydChyb2xjb25maWcsICc9JywgMSkgQVMgcGFyYW0sIHJlcGxhY2Uocm9s Y29uZmlnLCBzcGxpdF9wYXJ0KHJvbGNvbmZpZywgJz0nLCAxKSB8fCAnPScs ICcnKSBBUyB2YWx1ZQorCQlGUk9NCisJCQkoU0VMRUNUCisJCQkJZC5kYXRu YW1lLCB1bm5lc3QoYy5zZXRjb25maWcpIEFTIHJvbGNvbmZpZworCQkJRlJP TQorCQkJCShTRUxFQ1QgKgorCQkJCUZST00KKwkJCQkJcGdfY2F0YWxvZy5w Z19kYl9yb2xlX3NldHRpbmcgZHIKKwkJCQlXSEVSRQorCQkJCQlkci5zZXRy b2xlPSUocmlkKXM6Ok9JRCBBTkQgZHIuc2V0ZGF0YWJhc2UhPTApIGMKKwkJ CQlMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19kYXRhYmFzZSBkIE9OIChkLm9p ZCA9IGMuc2V0ZGF0YWJhc2UpCisJCQkpIGEKKwkJKSBiCisJKSBkCispCitV TklPTiBBTEwKKyhTRUxFQ1QKKwknQ09NTUVOVCBPTiBST0xFICcgfHwgcGdf Y2F0YWxvZy5xdW90ZV9pZGVudChwZ19nZXRfdXNlcmJ5aWQoJShyaWQpczo6 T0lEKSkgfHwgJyBJUyAnIHx8ICBwZ19jYXRhbG9nLnF1b3RlX2xpdGVyYWwo ZGVzY3JpcHRpb24pIHx8ICc7JyBBUyBzcWwKK0ZST00KKwkoU0VMRUNUCXBn X2NhdGFsb2cuc2hvYmpfZGVzY3JpcHRpb24oJShyaWQpczo6T0lELCAncGdf YXV0aGlkJykgQVMgZGVzY3JpcHRpb24pIGEKK1dIRVJFCisJZGVzY3JpcHRp b24gSVMgTk9UIE5VTEwpKSBBUyBhCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0 ZXMvcm9sZS9zcWwvcG9zdDlfMC91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxhdGVz L3JvbGUvc3FsL3Bvc3Q5XzAvdXBkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5iYTY1NGViCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv cm9sZXMvdGVtcGxhdGVzL3JvbGUvc3FsL3Bvc3Q5XzAvdXBkYXRlLnNxbApA QCAtMCwwICsxLDEwNiBAQAoreyUgaW1wb3J0ICdtYWNyb3MvdmFyaWFibGUu bWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgaWYgJ3JvbG5hbWUnIGluIGRh dGEgJX0KK3slIHNldCByb2xuYW1lPWRhdGEucm9sbmFtZSAlfQorQUxURVJ7 JSBpZiByb2xDYW5Mb2dpbiAlfSBVU0VSIHslIGVsc2UgJX0gUk9MRSB7JSBl bmRpZiAlfXt7IGNvbm58cXRJZGVudChyb2xlKSB9fQorCVJFTkFNRSBUTyB7 eyBjb25ufHF0SWRlbnQocm9sbmFtZSkgfX07CisKK3slIGVsc2UgJX0KK3sl IHNldCByb2xuYW1lPXJvbGUgJX0KK3slIGVuZGlmICV9Cit7JSBpZiBkYXRh fGhhc0FueShhbHRlcktleXMpICV9CitBTFRFUiB7JSBpZiByb2xDYW5Mb2dp biAlfVVTRVJ7JSBlbHNlICV9Uk9MRXslIGVuZGlmICV9IHt7IGNvbm58cXRJ ZGVudChyb2xuYW1lKSB9fXslIGlmICdyb2xjYW5sb2dpbicgaW4gZGF0YSAl fQorCit7JSBpZiBkYXRhLnJvbGNhbmxvZ2luICV9CisJTE9HSU57JSBlbHNl ICV9CisJTk9MT0dJTnslIGVuZGlmICV9eyUgZW5kaWYgJX17JSBpZiAncm9s c3VwZXInIGluIGRhdGEgJX0KKworeyUgaWYgZGF0YS5yb2xzdXBlciAlfQor CVNVUEVSVVNFUnslIGVsc2UgJX0KKwlOT1NVUEVSVVNFUnslIGVuZGlmICV9 eyUgZW5kaWYgJX17JSBpZiAncm9sY3JlYXRlZGInIGluIGRhdGEgJX0KKwor eyUgaWYgZGF0YS5yb2xjcmVhdGVkYiAlfQorCUNSRUFURURCeyUgZWxzZSAl fQorCU5PQ1JFQVRFREJ7JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgaWYgJ3Jv bGNyZWF0ZXJvbGUnIGluIGRhdGEgJX0KKworeyUgaWYgZGF0YS5yb2xjcmVh dGVyb2xlICV9CisJQ1JFQVRFUk9MRXslIGVsc2UgJX0KKwlOT0NSRUFURVJP TEV7JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgaWYgJ3JvbGluaGVyaXQnIGlu IGRhdGEgJX0KKworeyUgaWYgZGF0YS5yb2xpbmhlcml0ICV9CisJSU5IRVJJ VHslIGVsc2UgJX0KKwlOT0lOSEVSSVR7JSBlbmRpZiAlfXslIGVuZGlmICV9 eyUgaWYgJ3JvbGNvbm5saW1pdCcgaW4gZGF0YSBhbmQgZGF0YS5yb2xjb25u bGltaXQgaXMgbnVtYmVyIGFuZCBkYXRhLnJvbGNvbm5saW1pdCA+PSAtMSAl fQorCisJQ09OTkVDVElPTiBMSU1JVCB7eyBkYXRhLnJvbGNvbm5saW1pdCB9 fQoreyUgZW5kaWYgJX17JSBpZiAncm9sdmFsaWR1bnRpbCcgaW4gZGF0YSBh bmQgZGF0YS5yb2x2YWxpZHVudGlsICV9CisKKwlWQUxJRCBVTlRJTCB7JSBp ZiBkYXRhLnJvbHZhbGlkdW50aWwgaXMgbm90IG5vbmUgJX17eyBkYXRhLnJv bHZhbGlkdW50aWx8cXRMaXRlcmFsIH19eyUgZWxzZSAlfSdpbmZpbml0eScK K3slIGVuZGlmICV9eyUgZW5kaWYgJX17JSBpZiAncm9scGFzc3dvcmQnIGlu IGRhdGEgJX0KKworCVBBU1NXT1JEeyUgaWYgZGF0YS5yb2xwYXNzd29yZCBp cyBub25lICV9IE5VTEx7JSBlbHNlICV9eyUgaWYgZHVtbXkgJX0gJ3h4eHh4 eCd7JSBlbHNlICV9IHt7IGRhdGEucm9scGFzc3dvcmR8cXRMaXRlcmFsIH19 eyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGVuZGlmICV9O3slIGVuZGlmICV9 CisKK3slIGlmCisJbm90IHJvbFN1cGVyIGFuZAorCSdyb2xzdXBlcicgaW4g ZGF0YSBhbmQKKwkncm9sY2F0dXBkYXRlJyBub3QgaW4gZGF0YSBhbmQKKwlk YXRhLnJvbHN1cGVyICV9CisKKworVVBEQVRFIHBnX2F1dGhpZCBTRVQgcm9s Y2F0dXBkYXRlPWZhbHNlIFdIRVJFIHJvbG5hbWUgPSB7eyByb2xuYW1lfHF0 TGl0ZXJhbCB9fTsKKworeyUgZWxpZgorCXJvbFN1cGVyIGFuZAorCSdyb2xz dXBlcicgbm90IGluIGRhdGEgYW5kCisJJ3JvbGNhdHVwZGF0ZScgaW4gZGF0 YSAlfQoreyUgaWYgZGF0YS5yb2xjYXR1cGRhdGUgJX0KKworCitVUERBVEUg cGdfYXV0aGlkIFNFVCByb2xjYXR1cGRhdGU9dHJ1ZSBXSEVSRSByb2xuYW1l ID0ge3sgcm9sbmFtZXxxdExpdGVyYWwgfX07CisKK3slIGVsc2UgJX0KKwor CitVUERBVEUgcGdfYXV0aGlkIFNFVCByb2xjYXR1cGRhdGU9ZmFsc2UgV0hF UkUgcm9sbmFtZSA9IHt7IHJvbG5hbWV8cXRMaXRlcmFsIH19OworCit7JSBl bmRpZiAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdyZXZva2VkX2FkbWlucycg aW4gZGF0YSBhbmQKKwlkYXRhLnJldm9rZWRfYWRtaW5zfGxlbmd0aCA+IDAK KyV9CisKKy0tIFJldm9rZWQgdGhlIGFkbWluIG9wdGlvbnMgZnJvbSB0aGUg bWVtYmVycworUkVWT0tFIEFETUlOIE9QVElPTiBGT1Ige3sgY29ubnxxdElk ZW50KGRhdGEucmV2b2tlZF9hZG1pbnMpfGpvaW4oJywgJykgfX0gRlJPTSB7 eyBjb25ufHF0SWRlbnQocm9sbmFtZSkgfX07eyUgZW5kaWYgJX17JSBpZiAn cmV2b2tlZCcgaW4gZGF0YSBhbmQgZGF0YS5yZXZva2VkfGxlbmd0aCA+IDAg JX0KKworCistLSBGb2xsb3dpbmcgYXJlIG5vIG1vcmUgdGhlIG1lbWJlcnMK K1JFVk9LRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5yZXZva2VkKXxqb2luKCcs ICcpIH19IEZST00ge3sgY29ubnxxdElkZW50KHJvbG5hbWUpIH19O3slIGVu ZGlmICV9eyUgaWYgZGF0YS5hZG1pbnMgYW5kIGRhdGEuYWRtaW5zfGxlbmd0 aCA+IDAgJX0KKworLS0gRm9sbG93aW5nIGFyZSB0aGUgbmV3IGFkbWlucyAo b3IsIGV4aXN0aW5nIG1lbWJlcnMgbWFkZSBhZG1pbnMpCitHUkFOVCB7eyBj b25ufHF0SWRlbnQoZGF0YS5hZG1pbnMpfGpvaW4oJywgJykgfX0gVE8ge3sg Y29ubnxxdElkZW50KHJvbG5hbWUpIH19IFdJVEggQURNSU4gT1BUSU9OO3sl IGVuZGlmICV9eyUgaWYgZGF0YS5tZW1iZXJzIGFuZCBkYXRhLm1lbWJlcnN8 bGVuZ3RoID4gMCAlfQorCisKKy0tIEZvbGxvd2luZyBhcmUgdGhlIG5ldyBt ZW1iZXJzCitHUkFOVCB7eyBjb25ufHF0SWRlbnQoZGF0YS5tZW1iZXJzKXxq b2luKCcsICcpIH19IFRPIHt7IGNvbm58cXRJZGVudChyb2xuYW1lKSB9fTt7 JSBlbmRpZiAlfQoreyUgaWYgJ3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgZGF0 YS52YXJpYWJsZXN8bGVuZ3RoID4gMCAlfQoreyUgc2V0IHZhcmlhYmxlcyA9 IGRhdGEudmFyaWFibGVzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gdmFyaWFi bGVzIGFuZCB2YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CisKK3sl IGZvciB2YXIgaW4gdmFyaWFibGVzLmRlbGV0ZWQgJX0KK3t7IFZBUklBQkxF LlJFU0VUKGNvbm4sIHZhci5kYXRhYmFzZSwgcm9sbmFtZSwgdmFyLm5hbWUp IH19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBp biB2YXJpYWJsZXMgYW5kIHZhcmlhYmxlcy5hZGRlZHxsZW5ndGggPiAwICV9 CisKK3slIGZvciB2YXIgaW4gdmFyaWFibGVzLmFkZGVkICV9Cit7eyBWQVJJ QUJMRS5BUFBMWShjb25uLCB2YXIuZGF0YWJhc2UsIHJvbG5hbWUsIHZhci5u YW1lLCB2YXIudmFsdWUpIH19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfQor eyUgaWYgJ2NoYW5nZWQnIGluIHZhcmlhYmxlcyBhbmQgdmFyaWFibGVzLmNo YW5nZWR8bGVuZ3RoID4gMCAlfQorCit7JSBmb3IgdmFyIGluIHZhcmlhYmxl cy5jaGFuZ2VkICV9Cit7eyBWQVJJQUJMRS5BUFBMWShjb25uLCB2YXIuZGF0 YWJhc2UsIHJvbG5hbWUsIHZhci5uYW1lLCB2YXIudmFsdWUpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2Rl c2NyaXB0aW9uJyBpbiBkYXRhICV9CisKKworQ09NTUVOVCBPTiBST0xFIHt7 IGNvbm58cXRJZGVudChyb2xuYW1lKSB9fSBJUyB7eyBkYXRhLmRlc2NyaXB0 aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xl cy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDlfMC92YXJpYWJsZXMuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9s ZXMvdGVtcGxhdGVzL3JvbGUvc3FsL3Bvc3Q5XzAvdmFyaWFibGVzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iODYyMGMxCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxhdGVzL3JvbGUvc3FsL3Bvc3Q5 XzAvdmFyaWFibGVzLnNxbApAQCAtMCwwICsxLDI1IEBACitTRUxFQ1QKKyAg ICBzcGxpdF9wYXJ0KHJvbGNvbmZpZywgJz0nLCAxKSBBUyBuYW1lLCByZXBs YWNlKHJvbGNvbmZpZywgc3BsaXRfcGFydChyb2xjb25maWcsICc9JywgMSkg fHwgJz0nLCAnJykgQVMgdmFsdWUsIE5VTEw6OnRleHQgQVMgZGF0YWJhc2UK K0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgICAgICB1bm5lc3Qocm9sY29u ZmlnKSBBUyByb2xjb25maWcsIHJvbGNhbmxvZ2luLCByb2xuYW1lCisgICAg RlJPTQorICAgICAgICBwZ19jYXRhbG9nLnBnX3JvbGVzCisgICAgV0hFUkUK KyAgICAgICAgb2lkPXt7IHJpZHxxdExpdGVyYWwgfX06Ok9JRAorICAgICkg cgorCitVTklPTiBBTEwKK1NFTEVDVAorICAgIHNwbGl0X3BhcnQocm9sY29u ZmlnLCAnPScsIDEpIEFTIG5hbWUsIHJlcGxhY2Uocm9sY29uZmlnLCBzcGxp dF9wYXJ0KHJvbGNvbmZpZywgJz0nLCAxKSB8fCAnPScsICcnKSBBUyB2YWx1 ZSwgZGF0bmFtZSBBUyBkYXRhYmFzZQorRlJPTQorICAgIChTRUxFQ1QKKyAg ICAgICAgZC5kYXRuYW1lLCB1bm5lc3QoYy5zZXRjb25maWcpIEFTIHJvbGNv bmZpZworICAgIEZST00KKyAgICAgICAgKFNFTEVDVCAqCisgICAgICAgIEZS T00gcGdfY2F0YWxvZy5wZ19kYl9yb2xlX3NldHRpbmcgZHIKKyAgICAgICAg V0hFUkUKKyAgICAgICAgICAgIGRyLnNldHJvbGU9e3sgcmlkfHF0TGl0ZXJh bCB9fTo6T0lEIEFORCBkci5zZXRkYXRhYmFzZSE9MAorICAgICAgICApIGMK KyAgICAgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfZGF0YWJhc2UgZCBP TiAoZC5vaWQgPSBjLnNldGRhdGFiYXNlKQorICAgICkgYTsKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0OV8xL2NyZWF0ZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9y b2xlcy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDlfMS9jcmVhdGUuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjNkYzgwZmIKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDlf MS9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsNTQgQEAKK3slIGltcG9ydCAnbWFj cm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9y dCAnbWFjcm9zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK0NS RUFURSB7JSBpZiBkYXRhLnJvbGNhbmxvZ2luICV9VVNFUnslIGVsc2UgJX1S T0xFeyUgZW5kaWYgJX0ge3sgY29ubnxxdElkZW50KGRhdGEucm9sbmFtZSkg fX0gV0lUSHslIGlmIGRhdGEucm9sY2FubG9naW4gYW5kIGRhdGEucm9sY2Fu bG9naW4gaXMgc2FtZWFzIFRydWUgICV9CisKKwlMT0dJTnslIGVsc2UgJX0K KworCU5PTE9HSU57JSBlbmRpZiAlfXslIGlmIGRhdGEucm9sc3VwZXIgJX0K KworCVNVUEVSVVNFUnslIGVsc2UgJX0KKworCU5PU1VQRVJVU0VSeyUgZW5k aWYgJX17JSBpZiBkYXRhLnJvbGNyZWF0ZWRiICV9CisKKwlDUkVBVEVEQnsl IGVsc2UgJX0KKworCU5PQ1JFQVRFREJ7JSBlbmRpZiAlfXslIGlmIGRhdGEu cm9sY3JlYXRlcm9sZSAlfQorCisJQ1JFQVRFUk9MRXslIGVsc2UgJX0KKwor CU5PQ1JFQVRFUk9MRXslIGVuZGlmICV9eyUgaWYgZGF0YS5yb2xpbmhlcml0 IGlzIHNhbWVhcyB0cnVlICV9CisKKwlJTkhFUklUeyUgZWxzZSAlfQorCisJ Tk9JTkhFUklUeyUgZW5kaWYgJX17JSBpZiBkYXRhLnJvbHJlcGxpY2F0aW9u ICV9CisKKwlSRVBMSUNBVElPTnslIGVsc2UgJX0KKworCU5PUkVQTElDQVRJ T057JSBlbmRpZiAlfXslIGlmICdyb2xjb25ubGltaXQnIGluIGRhdGEgYW5k IGRhdGEucm9sY29ubmxpbWl0IGlzIG51bWJlciBhbmQgZGF0YS5yb2xjb25u bGltaXQgPj0gLTEgJX0KKworCUNPTk5FQ1RJT04gTElNSVQge3sgZGF0YS5y b2xjb25ubGltaXQgfX17JSBlbmRpZiAlfXslIGlmIGRhdGEucm9sdmFsaWR1 bnRpbCBhbmQgZGF0YS5yb2x2YWxpZHVudGlsIGlzIG5vdCBub25lICV9CisK KwlWQUxJRCBVTlRJTCB7eyBkYXRhLnJvbHZhbGlkdW50aWx8cXRMaXRlcmFs IH19IHslIGVuZGlmICV9eyUgaWYgZGF0YS5yb2xwYXNzd29yZCAlfQorCisJ UEFTU1dPUkQgeyUgaWYgZGF0YS5yb2xwYXNzd29yZCBpcyBub25lICV9TlVM THslIGVsc2UgJX17JSBpZiBkdW1teSAlfSd4eHh4eHgneyUgZWxzZSAlfSB7 eyBkYXRhLnJvbHBhc3N3b3JkIHwgcXRMaXRlcmFsIH19eyUgZW5kaWYgJX17 JSBlbmRpZiAlfXslIGVuZGlmICV9O3slIGlmIGRhdGEucm9sc3VwZXIgYW5k IGRhdGEucm9sY2F0dXBkYXRlIGlzIHNhbWVhcyBmYWxzZSAlfQorCisKK1VQ REFURSBwZ19hdXRoaWQgU0VUIHJvbGNhdHVwZGF0ZT1mYWxzZSBXSEVSRSBy b2xuYW1lID0ge3sgZGF0YS5yb2xuYW1lfHF0TGl0ZXJhbCB9fTt7JSBlbmRp ZiAlfXslIGlmIGRhdGEubWVtYmVycyBhbmQgZGF0YS5tZW1iZXJzfGxlbmd0 aCA+IDAgJX0KKworCitHUkFOVCB7eyBjb25ufHF0SWRlbnQoZGF0YS5tZW1i ZXJzKXxqb2luKCcsICcpIH19IFRPIHt7IGNvbm58cXRJZGVudChkYXRhLnJv bG5hbWUpIH19O3slIGVuZGlmICV9eyUgaWYgZGF0YS5hZG1pbnMgYW5kIGRh dGEuYWRtaW5zfGxlbmd0aCA+IDAgJX0KKworR1JBTlQge3sgY29ubnxxdElk ZW50KGRhdGEuYWRtaW5zKXxqb2luKCcsICcpIH19IFRPIHt7IGNvbm58cXRJ ZGVudChkYXRhLnJvbG5hbWUpIH19IFdJVEggQURNSU4gT1BUSU9OO3slIGVu ZGlmICV9eyUgaWYgZGF0YS5zZWNsYWJlbHMgYW5kIGRhdGEuc2VjbGFiZWxz fGxlbmd0aCA+IDAgJX0KKworeyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMg JX0KKwore3sgU0VDTEFCTEUuQVBQTFkoY29ubiwgJ1JPTEUnLCBkYXRhLnJv bG5hbWUsIHIucHJvdmlkZXIsIHIubGFiZWwpIH19Cit7JSBlbmRmb3IgJX17 JSBlbmRpZiAlfXslIGlmIGRhdGEudmFyaWFibGVzICV9CisKK3slIGZvciB2 YXIgaW4gZGF0YS52YXJpYWJsZXMgJX0KKwore3sgVkFSSUFCTEUuQVBQTFko Y29ubiwgdmFyLmRhdGFiYXNlLCBkYXRhLnJvbG5hbWUsIHZhci5uYW1lLCB2 YXIudmFsdWUpIH19Cit7JSBlbmRmb3IgJX17JSBlbmRpZiAlfXslIGlmIGRh dGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBST0xFIHt7IGNvbm58 cXRJZGVudChkYXRhLnJvbG5hbWUpIH19IElTIHt7IGRhdGEuZGVzY3JpcHRp b258cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVz L3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0OV8xL25vZGVzLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rl bXBsYXRlcy9yb2xlL3NxbC9wb3N0OV8xL25vZGVzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mY2Q0ZTQ4Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvcm9sZXMvdGVtcGxhdGVzL3JvbGUvc3FsL3Bvc3Q5XzEvbm9kZXMu c3FsCkBAIC0wLDAgKzEsOCBAQAorU0VMRUNUCisJci5vaWQsIHIucm9sbmFt ZSwgci5yb2xjYW5sb2dpbiwgci5yb2xzdXBlcgorRlJPTQorCXt7IHJvbGVf dGJsIH19IHIKK3slIGlmIHJpZCAlfQorV0hFUkUgci5vaWQgPSB7eyByaWQg fX06OmludAoreyUgZW5kaWYgJX0KK09SREVSIEJZIHIucm9sY2FubG9naW4s IHIucm9sbmFtZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxhdGVzL3JvbGUvc3Fs L3Bvc3Q5XzEvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9z cWwvcG9zdDlfMS9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5iYjU2ZWM0Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9s ZXMvdGVtcGxhdGVzL3JvbGUvc3FsL3Bvc3Q5XzEvcHJvcGVydGllcy5zcWwK QEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisJci5vaWQsIHIuKiwKKwlwZ19j YXRhbG9nLnNob2JqX2Rlc2NyaXB0aW9uKHIub2lkLCAncGdfYXV0aGlkJykg QVMgZGVzY3JpcHRpb24sCisJQVJSQVkoCisJCVNFTEVDVAorCQkJQ0FTRSBX SEVOIGFtLmFkbWluX29wdGlvbiBUSEVOICcxJyBFTFNFICcwJyBFTkQgfHwg cm0ucm9sbmFtZQorCQlGUk9NCisJCQkoU0VMRUNUICogRlJPTSBwZ19hdXRo X21lbWJlcnMgV0hFUkUgbWVtYmVyID0gci5vaWQpIGFtCisJCQlMRUZUIEpP SU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBybSBPTiAocm0ub2lkID0gYW0ucm9s ZWlkKQorCSkgcm9sbWVtYmVyc2hpcCwKKwkoU0VMRUNUIGFycmF5X2FnZyhw cm92aWRlciB8fCAnPScgfHwgbGFiZWwpIEZST00gcGdfc2hzZWNsYWJlbCBz bDEgV0hFUkUgc2wxLm9iam9pZD1yLm9pZCkgQVMgc2VjbGFiZWxzCitGUk9N CisJe3sgcm9sZV90YmwgfX0gcgoreyUgaWYgcmlkICV9CitXSEVSRSByLm9p ZCA9IHt7IHJpZCB9fTo6aW50Cit7JSBlbmRpZiAlfQorT1JERVIgQlkgci5y b2xjYW5sb2dpbiwgci5yb2xuYW1lCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0 ZXMvcm9sZS9zcWwvcG9zdDlfMS9zcWwuc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxhdGVzL3Jv bGUvc3FsL3Bvc3Q5XzEvc3FsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi44Y2M5YzI2Ci0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMv dGVtcGxhdGVzL3JvbGUvc3FsL3Bvc3Q5XzEvc3FsLnNxbApAQCAtMCwwICsx LDExOSBAQAorU0VMRUNUCisJYXJyYXlfdG9fc3RyaW5nKGFycmF5X2FnZyhz cWwpLCBFJ1xuXG4nKQorRlJPTQorKFNFTEVDVAorCUNBU0UgV0hFTiByb2xj YW5sb2dpbiBUSEVOICctLSBVc2VyOiAnIEVMU0UgJy0tIFJvbGU6ICcgRU5E CXx8CisJCXBnX2NhdGFsb2cucXVvdGVfaWRlbnQocm9sbmFtZSkgfHwKKwkJ RSdcbi0tIERST1AgJyB8fCBDQVNFIFdIRU4gcm9sY2FubG9naW4gVEhFTiAn VVNFUiAnIEVMU0UgJ1JPTEUgJyBFTkQgfHwKKwkJcGdfY2F0YWxvZy5xdW90 ZV9pZGVudChyb2xuYW1lKSB8fCBFJ1xuXG5DUkVBVEUgJyB8fAorCQlDQVNF IFdIRU4gcm9sY2FubG9naW4gVEhFTiAnVVNFUiAnIEVMU0UgJ1JPTEUgJyBF TkQgfHwKKwkJcGdfY2F0YWxvZy5xdW90ZV9pZGVudChyb2xuYW1lKSB8fCBF JyBXSVRIXG4gICcgfHwKKwkJQ0FTRSBXSEVOIHJvbGNhbmxvZ2luIFRIRU4g J0xPR0lOJyBFTFNFICdOT0xPR0lOJyBFTkQgfHwgRSdcbiAgJyB8fAorCQlD QVNFIFdIRU4gcm9sY2FubG9naW4gQU5EIHJvbHBhc3N3b3JkIExJS0UgJ21k NSUlJyBUSEVOICdFTkNSWVBURUQgUEFTU1dPUkQgJyB8fCBxdW90ZV9saXRl cmFsKHJvbHBhc3N3b3JkKSB8fCBFJ1xuICAnIEVMU0UgJycgRU5EIHx8CisJ CUNBU0UgV0hFTiByb2xzdXBlciBUSEVOICdTVVBFUlVTRVInIEVMU0UgJ05P U1VQRVJVU0VSJyBFTkQgfHwgRSdcbiAgJyB8fAorCQlDQVNFIFdIRU4gcm9s aW5oZXJpdCBUSEVOICdJTkhFUklUJyBFTFNFICdOT0lOSEVSSVQnIEVORCB8 fCBFJ1xuICAnIHx8CisJCUNBU0UgV0hFTiByb2xjcmVhdGVkYiBUSEVOICdD UkVBVEVEQicgRUxTRSAnTk9DUkVBVEVEQicgRU5EIHx8IEUnXG4gICcgfHwK KwkJQ0FTRSBXSEVOIHJvbGNyZWF0ZXJvbGUgVEhFTiAnQ1JFQVRFUk9MRScg RUxTRSAnTk9DUkVBVEVST0xFJyBFTkQgfHwgRSdcbiAgJyB8fAorCQktLSBQ b3N0Z3JlU1FMID49ICA5LjEKKwkJQ0FTRSBXSEVOIHJvbHJlcGxpY2F0aW9u IFRIRU4gJ1JFUExJQ0FUSU9OJyBFTFNFICdOT1JFUExJQ0FUSU9OJyBFTkQg fHwKKwkJQ0FTRSBXSEVOIHJvbGNvbm5saW1pdCA+IDAgVEhFTiBFJ1xuICBD T05ORUNUSU9OIExJTUlUICcgfHwgcm9sY29ubmxpbWl0IEVMU0UgJycgRU5E IHx8CisJCUNBU0UgV0hFTiByb2x2YWxpZHVudGlsIElTIE5PVCBOVUxMIFRI RU4gRSdcbiAgVkFMSUQgVU5USUwgJyB8fCBxdW90ZV9saXRlcmFsKHJvbHZh bGlkdW50aWw6OnRleHQpIEVMU0UgJzsnIEVORCB8fAorCQktLSBQb3N0Z3Jl U1FMIDwgOS41CisJCUNBU0UgV0hFTiByb2xzdXBlciBBTkQgTk9UIHJvbGNh dHVwZGF0ZSBUSEVOIEUnXG5cblVQREFURSBwZ19hdXRoaWQgU0VUIHJvbGNh dHVwZGF0ZT1mYWxzZSBXSEVSRSByb2xuYW1lPScgfHwgcGdfY2F0YWxvZy5x dW90ZV9saXRlcmFsKHJvbG5hbWUpIHx8ICc7JyBFTFNFICcnIEVORCBBUyBz cWwKK0ZST00KKwl7eyByb2xlX3RibCB9fSByCitXSEVSRQorCXIub2lkPSUo cmlkKXM6Ok9JRAorVU5JT04gQUxMCisoU0VMRUNUCisJYXJyYXlfdG9fc3Ry aW5nKGFycmF5X2FnZyhzcWwpLCBFJ1xuJykKK0ZST00KKyhTRUxFQ1QKKwkn R1JBTlQgJyB8fCBhcnJheV90b19zdHJpbmcoYXJyYXlfYWdnKHJvbG5hbWUp LCAnLCAnKSB8fCAnIFRPICcgfHwgcGdfY2F0YWxvZy5xdW90ZV9pZGVudChw Z19nZXRfdXNlcmJ5aWQoJShyaWQpczo6T0lEKSkgfHwKKwlDQVNFIFdIRU4g YWRtaW5fb3B0aW9uIFRIRU4gJyBXSVRIIEFETUlOIE9QVElPTjsnIEVMU0Ug JzsnIEVORCBzcWwKK0ZST00KKwkoU0VMRUNUCisJCXF1b3RlX2lkZW50KHIu cm9sbmFtZSkgQVMgcm9sbmFtZSwgbS5hZG1pbl9vcHRpb24gQVMgYWRtaW5f b3B0aW9uCisJRlJPTQorCQlwZ19hdXRoX21lbWJlcnMgbQorCQlMRUZUIEpP SU4gcGdfcm9sZXMgciBPTiAobS5yb2xlaWQgPSByLm9pZCkKKwlXSEVSRQor CQltLm1lbWJlcj0lKHJpZClzOjpPSUQKKwlPUkRFUiBCWQorCQlyLnJvbG5h bWUKKwkpIGEKK0dST1VQIEJZIGFkbWluX29wdGlvbikgcykKK1VOSU9OIEFM TAorKFNFTEVDVAorCWFycmF5X3RvX3N0cmluZyhhcnJheV9hZ2coc3FsKSwg RSdcbicpIHNxbAorRlJPTQorKFNFTEVDVAorCSdBTFRFUiAnIHx8IENBU0Ug V0hFTiByb2xjYW5sb2dpbiBUSEVOICdVU0VSICcgRUxTRSAnUk9MRSAnIEVO RCB8fCBwZ19jYXRhbG9nLnF1b3RlX2lkZW50KHJvbG5hbWUpIHx8ICcgU0VU ICcgfHwgcGFyYW0gfHwgJyBUTyAnIHx8IENBU0UgV0hFTiBwYXJhbSBJTiAo J3NlYXJjaF9wYXRoJywgJ3RlbXBfdGFibGVzcGFjZXMnKSBUSEVOIHZhbHVl IEVMU0UgcXVvdGVfbGl0ZXJhbCh2YWx1ZSkgRU5EIHx8ICc7JyBBUyBzcWwK K0ZST00KKyhTRUxFQ1QKKwlyb2xjYW5sb2dpbiwgcm9sbmFtZSwgc3BsaXRf cGFydChyb2xjb25maWcsICc9JywgMSkgQVMgcGFyYW0sIHJlcGxhY2Uocm9s Y29uZmlnLCBzcGxpdF9wYXJ0KHJvbGNvbmZpZywgJz0nLCAxKSB8fCAnPScs ICcnKSBBUyB2YWx1ZQorRlJPTQorCShTRUxFQ1QKKwkJCXVubmVzdChyb2xj b25maWcpIEFTIHJvbGNvbmZpZywgcm9sY2FubG9naW4sIHJvbG5hbWUKKwlG Uk9NCisJCXBnX2NhdGFsb2cucGdfcm9sZXMKKwlXSEVSRQorCQlvaWQ9JShy aWQpczo6T0lECisJKSByCispIGEpIGIpCistLSBQb3N0Z3JlU1FMID49IDku MAorVU5JT04gQUxMCisoU0VMRUNUCisJYXJyYXlfdG9fc3RyaW5nKGFycmF5 X2FnZyhzcWwpLCBFJ1xuJykgQVMgc3FsCitGUk9NCisJKFNFTEVDVAorCQkn QUxURVIgUk9MRSAnIHx8IHBnX2NhdGFsb2cucXVvdGVfaWRlbnQocGdfZ2V0 X3VzZXJieWlkKCUocmlkKXM6Ok9JRCkpIHx8CisJCScgSU4gREFUQUJBU0Ug JyB8fCBwZ19jYXRhbG9nLnF1b3RlX2lkZW50KGRhdG5hbWUpIHx8CisJCScg U0VUICcgfHwgcGFyYW18fCAnIFRPICcgfHwKKwkJQ0FTRQorCQlXSEVOIHBh cmFtIElOICgnc2VhcmNoX3BhdGgnLCAndGVtcF90YWJsZXNwYWNlcycpIFRI RU4gdmFsdWUKKwkJRUxTRSBxdW90ZV9saXRlcmFsKHZhbHVlKQorCQlFTkQg fHwgJzsnIEFTIHNxbAorCUZST00KKwkJKFNFTEVDVAorCQkJZGF0bmFtZSwg c3BsaXRfcGFydChyb2xjb25maWcsICc9JywgMSkgQVMgcGFyYW0sIHJlcGxh Y2Uocm9sY29uZmlnLCBzcGxpdF9wYXJ0KHJvbGNvbmZpZywgJz0nLCAxKSB8 fCAnPScsICcnKSBBUyB2YWx1ZQorCQlGUk9NCisJCQkoU0VMRUNUCisJCQkJ ZC5kYXRuYW1lLCB1bm5lc3QoYy5zZXRjb25maWcpIEFTIHJvbGNvbmZpZwor CQkJRlJPTQorCQkJCShTRUxFQ1QgKgorCQkJCUZST00KKwkJCQkJcGdfY2F0 YWxvZy5wZ19kYl9yb2xlX3NldHRpbmcgZHIKKwkJCQlXSEVSRQorCQkJCQlk ci5zZXRyb2xlPSUocmlkKXM6Ok9JRCBBTkQgZHIuc2V0ZGF0YWJhc2UhPTAp IGMKKwkJCQlMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19kYXRhYmFzZSBkIE9O IChkLm9pZCA9IGMuc2V0ZGF0YWJhc2UpCisJCQkpIGEKKwkJKSBiCisJKSBk CispCitVTklPTiBBTEwKKyhTRUxFQ1QKKwknQ09NTUVOVCBPTiBST0xFICcg fHwgcGdfY2F0YWxvZy5xdW90ZV9pZGVudChwZ19nZXRfdXNlcmJ5aWQoJShy aWQpczo6T0lEKSkgfHwgJyBJUyAnIHx8ICBwZ19jYXRhbG9nLnF1b3RlX2xp dGVyYWwoZGVzY3JpcHRpb24pIHx8ICc7JyBBUyBzcWwKK0ZST00KKwkoU0VM RUNUCXBnX2NhdGFsb2cuc2hvYmpfZGVzY3JpcHRpb24oJShyaWQpczo6T0lE LCAncGdfYXV0aGlkJykgQVMgZGVzY3JpcHRpb24pIGEKK1dIRVJFCisJZGVz Y3JpcHRpb24gSVMgTk9UIE5VTEwpCistLSBQb3N0Z3JlU1FMID49IDkuMgor VU5JT04gQUxMCisoU0VMRUNUCisJYXJyYXlfdG9fc3RyaW5nKGFycmF5X2Fn ZyhzcWwpLCBFJ1xuJykgQVMgc3FsCitGUk9NCisJKFNFTEVDVAorCQknU0VD VVJJVFkgTEFCRUwgRk9SICcgfHwgcHJvdmlkZXIgfHwKKwkJRSdcbiAgT04g Uk9MRSAnIHx8IHBnX2NhdGFsb2cucXVvdGVfaWRlbnQocm9sbmFtZSkgfHwK KwkJRSdcbiAgSVMgJyB8fCBwZ19jYXRhbG9nLnF1b3RlX2xpdGVyYWwobGFi ZWwpIHx8ICc7JyBBUyBzcWwKKwlGUk9NCisJCShTRUxFQ1QKKwkJCWxhYmVs LCBwcm92aWRlciwgcm9sbmFtZQorCQlGUk9NCisJCQkoU0VMRUNUICoKKwkJ CUZST00KKwkJCQlwZ19zaHNlY2xhYmVsIHNsMQorCQkJV0hFUkUgc2wxLm9i am9pZD0lKHJpZClzOjpPSUQpIHMKKwkJCUxFRlQgSk9JTiBwZ19jYXRhbG9n LnBnX3JvbGVzIHIgT04gKHMub2Jqb2lkPXIub2lkKSkgYSkgYgorKSkgQVMg YQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxhdGVzL3JvbGUvc3FsL3Bvc3Q5XzEv dXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0OV8xL3Vw ZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u OGVlOWJkZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xl L3NxbC9wb3N0OV8xL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMzIgQEAKK3sl IGltcG9ydCAnbWFjcm9zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUg JX0KK3slIGltcG9ydCAnbWFjcm9zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFS SUFCTEUgJX0KK3slIGlmICdyb2xuYW1lJyBpbiBkYXRhICV9Cit7JSBzZXQg cm9sbmFtZT1kYXRhLnJvbG5hbWUgJX0KK0FMVEVSeyUgaWYgcm9sQ2FuTG9n aW4gJX0gVVNFUiB7JSBlbHNlICV9IFJPTEUgeyUgZW5kaWYgJX17eyBjb25u fHF0SWRlbnQocm9sZSkgfX0KKwlSRU5BTUUgVE8ge3sgY29ubnxxdElkZW50 KHJvbG5hbWUpIH19OworCit7JSBlbHNlICV9Cit7JSBzZXQgcm9sbmFtZT1y b2xlICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgZGF0YXxoYXNBbnkoYWx0ZXJL ZXlzKSAlfQorQUxURVIgeyUgaWYgcm9sQ2FuTG9naW4gJX1VU0VSeyUgZWxz ZSAlfVJPTEV7JSBlbmRpZiAlfSB7eyBjb25ufHF0SWRlbnQocm9sbmFtZSkg fX17JSBpZiAncm9sY2FubG9naW4nIGluIGRhdGEgJX0KKworeyUgaWYgZGF0 YS5yb2xjYW5sb2dpbiAlfQorCUxPR0lOeyUgZWxzZSAlfQorCU5PTE9HSU57 JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgaWYgJ3JvbHN1cGVyJyBpbiBkYXRh ICV9CisKK3slIGlmIGRhdGEucm9sc3VwZXIgJX0KKwlTVVBFUlVTRVJ7JSBl bHNlICV9CisJTk9TVVBFUlVTRVJ7JSBlbmRpZiAlfXslIGVuZGlmICV9eyUg aWYgJ3JvbGNyZWF0ZWRiJyBpbiBkYXRhICV9CisKK3slIGlmIGRhdGEucm9s Y3JlYXRlZGIgJX0KKwlDUkVBVEVEQnslIGVsc2UgJX0KKwlOT0NSRUFURURC eyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGlmICdyb2xjcmVhdGVyb2xlJyBp biBkYXRhICV9CisKK3slIGlmIGRhdGEucm9sY3JlYXRlcm9sZSAlfQorCUNS RUFURVJPTEV7JSBlbHNlICV9CisJTk9DUkVBVEVST0xFeyUgZW5kaWYgJX17 JSBlbmRpZiAlfXslIGlmICdyb2xpbmhlcml0JyBpbiBkYXRhICV9CisKK3sl IGlmIGRhdGEucm9saW5oZXJpdCAlfQorCUlOSEVSSVR7JSBlbHNlICV9CisJ Tk9JTkhFUklUeyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGlmICdyb2xyZXBs aWNhdGlvbicgaW4gZGF0YSAlfQorCit7JSBpZiBkYXRhLnJvbHJlcGxpY2F0 aW9uICV9CisJUkVQTElDQVRJT057JSBlbHNlICV9CisJTk9SRVBMSUNBVElP TnslIGVuZGlmICV9eyUgZW5kaWYgJX17JSBpZiAncm9sY29ubmxpbWl0JyBp biBkYXRhIGFuZCBkYXRhLnJvbGNvbm5saW1pdCBpcyBudW1iZXIgYW5kIGRh dGEucm9sY29ubmxpbWl0ID49IC0xICV9CisKKwlDT05ORUNUSU9OIExJTUlU IHt7IGRhdGEucm9sY29ubmxpbWl0IH19Cit7JSBlbmRpZiAlfXslIGlmICdy b2x2YWxpZHVudGlsJyBpbiBkYXRhIGFuZCBkYXRhLnJvbHZhbGlkdW50aWwg JX0KKworCVZBTElEIFVOVElMIHslIGlmIGRhdGEucm9sdmFsaWR1bnRpbCBp cyBub3Qgbm9uZSAlfXt7IGRhdGEucm9sdmFsaWR1bnRpbHxxdExpdGVyYWwg fX17JSBlbHNlICV9J2luZmluaXR5JworeyUgZW5kaWYgJX17JSBlbmRpZiAl fXslIGlmICdyb2xwYXNzd29yZCcgaW4gZGF0YSAlfQorCisJUEFTU1dPUkR7 JSBpZiBkYXRhLnJvbHBhc3N3b3JkIGlzIG5vbmUgJX0gTlVMTHslIGVsc2Ug JX17JSBpZiBkdW1teSAlfSAneHh4eHh4J3slIGVsc2UgJX0ge3sgZGF0YS5y b2xwYXNzd29yZHxxdExpdGVyYWwgfX17JSBlbmRpZiAlfXslIGVuZGlmICV9 eyUgZW5kaWYgJX07eyUgZW5kaWYgJX0KKworeyUgaWYKKwlub3Qgcm9sU3Vw ZXIgYW5kCisJJ3JvbHN1cGVyJyBpbiBkYXRhIGFuZAorCSdyb2xjYXR1cGRh dGUnIG5vdCBpbiBkYXRhIGFuZAorCWRhdGEucm9sc3VwZXIgJX0KKworCitV UERBVEUgcGdfYXV0aGlkIFNFVCByb2xjYXR1cGRhdGU9ZmFsc2UgV0hFUkUg cm9sbmFtZSA9IHt7IHJvbG5hbWV8cXRMaXRlcmFsIH19OworCit7JSBlbGlm CisJcm9sU3VwZXIgYW5kCisJJ3JvbHN1cGVyJyBub3QgaW4gZGF0YSBhbmQK Kwkncm9sY2F0dXBkYXRlJyBpbiBkYXRhICV9Cit7JSBpZiBkYXRhLnJvbGNh dHVwZGF0ZSAlfQorCisKK1VQREFURSBwZ19hdXRoaWQgU0VUIHJvbGNhdHVw ZGF0ZT10cnVlIFdIRVJFIHJvbG5hbWUgPSB7eyByb2xuYW1lfHF0TGl0ZXJh bCB9fTsKKworeyUgZWxzZSAlfQorCisKK1VQREFURSBwZ19hdXRoaWQgU0VU IHJvbGNhdHVwZGF0ZT1mYWxzZSBXSEVSRSByb2xuYW1lID0ge3sgcm9sbmFt ZXxxdExpdGVyYWwgfX07CisKK3slIGVuZGlmICV9Cit7JSBlbmRpZiAlfQor eyUgaWYgJ3Jldm9rZWRfYWRtaW5zJyBpbiBkYXRhIGFuZAorCWRhdGEucmV2 b2tlZF9hZG1pbnN8bGVuZ3RoID4gMAorJX0KKworLS0gUmV2b2tlZCB0aGUg YWRtaW4gb3B0aW9ucyBmcm9tIHRoZSBtZW1iZXJzCitSRVZPS0UgQURNSU4g T1BUSU9OIEZPUiB7eyBjb25ufHF0SWRlbnQoZGF0YS5yZXZva2VkX2FkbWlu cyl8am9pbignLCAnKSB9fSBGUk9NIHt7IGNvbm58cXRJZGVudChyb2xuYW1l KSB9fTt7JSBlbmRpZiAlfXslIGlmICdyZXZva2VkJyBpbiBkYXRhIGFuZCBk YXRhLnJldm9rZWR8bGVuZ3RoID4gMCAlfQorCisKKy0tIEZvbGxvd2luZyBh cmUgbm8gbW9yZSB0aGUgbWVtYmVycworUkVWT0tFIHt7IGNvbm58cXRJZGVu dChkYXRhLnJldm9rZWQpfGpvaW4oJywgJykgfX0gRlJPTSB7eyBjb25ufHF0 SWRlbnQocm9sbmFtZSkgfX07eyUgZW5kaWYgJX17JSBpZiBkYXRhLmFkbWlu cyBhbmQgZGF0YS5hZG1pbnN8bGVuZ3RoID4gMCAlfQorCistLSBGb2xsb3dp bmcgYXJlIHRoZSBuZXcgYWRtaW5zIChvciwgZXhpc3RpbmcgbWVtYmVycyBt YWRlIGFkbWlucykKK0dSQU5UIHt7IGNvbm58cXRJZGVudChkYXRhLmFkbWlu cyl8am9pbignLCAnKSB9fSBUTyB7eyBjb25ufHF0SWRlbnQocm9sbmFtZSkg fX0gV0lUSCBBRE1JTiBPUFRJT047eyUgZW5kaWYgJX17JSBpZiBkYXRhLm1l bWJlcnMgYW5kIGRhdGEubWVtYmVyc3xsZW5ndGggPiAwICV9CisKKworLS0g Rm9sbG93aW5nIGFyZSB0aGUgbmV3IG1lbWJlcnMKK0dSQU5UIHt7IGNvbm58 cXRJZGVudChkYXRhLm1lbWJlcnMpfGpvaW4oJywgJykgfX0gVE8ge3sgY29u bnxxdElkZW50KHJvbG5hbWUpIH19O3slIGVuZGlmICV9eyUgaWYgZGF0YS5z ZWNsYWJlbHMgYW5kCisJZGF0YS5zZWNsYWJlbHN8bGVuZ3RoID4gMAorJX17 JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdk ZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxl bmd0aCA+IDAgJX0KKworeyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQg JX0KK3t7IFNFQ0xBQkxFLkRST1AoY29ubiwgJ1JPTEUnLCBkYXRhLnJvbG5h bWUsIHIucHJvdmlkZXIpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9 Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmFk ZGVkfGxlbmd0aCA+IDAgJX0KKworeyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFk ZGVkICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnUk9MRScsIGRhdGEu cm9sbmFtZSwgci5wcm92aWRlciwgci5sYWJlbCkgfX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMg YW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KKworeyUgZm9y IHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KK3t7IFNFQ0xBQkxFLkFQUExZ KGNvbm4sICdST0xFJywgZGF0YS5yb2xuYW1lLCByLnByb3ZpZGVyLCByLmxh YmVsKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYg JX0KK3slIGlmICd2YXJpYWJsZXMnIGluIGRhdGEgYW5kIGRhdGEudmFyaWFi bGVzfGxlbmd0aCA+IDAgJX0KK3slIHNldCB2YXJpYWJsZXMgPSBkYXRhLnZh cmlhYmxlcyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHZhcmlhYmxlcyBhbmQg dmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQorCit7JSBmb3IgdmFy IGluIHZhcmlhYmxlcy5kZWxldGVkICV9Cit7eyBWQVJJQUJMRS5SRVNFVChj b25uLCB2YXIuZGF0YWJhc2UsIHJvbG5hbWUsIHZhci5uYW1lKSB9fQoreyUg ZW5kZm9yICV9eyUgZW5kaWYgJX0KK3slIGlmICdhZGRlZCcgaW4gdmFyaWFi bGVzIGFuZCB2YXJpYWJsZXMuYWRkZWR8bGVuZ3RoID4gMCAlfQorCit7JSBm b3IgdmFyIGluIHZhcmlhYmxlcy5hZGRlZCAlfQore3sgVkFSSUFCTEUuQVBQ TFkoY29ubiwgdmFyLmRhdGFiYXNlLCByb2xuYW1lLCB2YXIubmFtZSwgdmFy LnZhbHVlKSB9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYgJX0KK3slIGlmICdj aGFuZ2VkJyBpbiB2YXJpYWJsZXMgYW5kIHZhcmlhYmxlcy5jaGFuZ2VkfGxl bmd0aCA+IDAgJX0KKworeyUgZm9yIHZhciBpbiB2YXJpYWJsZXMuY2hhbmdl ZCAlfQore3sgVkFSSUFCTEUuQVBQTFkoY29ubiwgdmFyLmRhdGFiYXNlLCBy b2xuYW1lLCB2YXIubmFtZSwgdmFyLnZhbHVlKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgJX0KK3slIGlmICdkZXNjcmlwdGlv bicgaW4gZGF0YSAlfQorCisKK0NPTU1FTlQgT04gUk9MRSB7eyBjb25ufHF0 SWRlbnQocm9sbmFtZSkgfX0gSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExp dGVyYWwgfX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxh dGVzL3JvbGUvc3FsL3Bvc3Q5XzEvdmFyaWFibGVzLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3RlbXBs YXRlcy9yb2xlL3NxbC9wb3N0OV8xL3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYjg2MjBjMQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0OV8xL3Zhcmlh Ymxlcy5zcWwKQEAgLTAsMCArMSwyNSBAQAorU0VMRUNUCisgICAgc3BsaXRf cGFydChyb2xjb25maWcsICc9JywgMSkgQVMgbmFtZSwgcmVwbGFjZShyb2xj b25maWcsIHNwbGl0X3BhcnQocm9sY29uZmlnLCAnPScsIDEpIHx8ICc9Jywg JycpIEFTIHZhbHVlLCBOVUxMOjp0ZXh0IEFTIGRhdGFiYXNlCitGUk9NCisg ICAgKFNFTEVDVAorICAgICAgICAgICAgdW5uZXN0KHJvbGNvbmZpZykgQVMg cm9sY29uZmlnLCByb2xjYW5sb2dpbiwgcm9sbmFtZQorICAgIEZST00KKyAg ICAgICAgcGdfY2F0YWxvZy5wZ19yb2xlcworICAgIFdIRVJFCisgICAgICAg IG9pZD17eyByaWR8cXRMaXRlcmFsIH19OjpPSUQKKyAgICApIHIKKworVU5J T04gQUxMCitTRUxFQ1QKKyAgICBzcGxpdF9wYXJ0KHJvbGNvbmZpZywgJz0n LCAxKSBBUyBuYW1lLCByZXBsYWNlKHJvbGNvbmZpZywgc3BsaXRfcGFydChy b2xjb25maWcsICc9JywgMSkgfHwgJz0nLCAnJykgQVMgdmFsdWUsIGRhdG5h bWUgQVMgZGF0YWJhc2UKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGQu ZGF0bmFtZSwgdW5uZXN0KGMuc2V0Y29uZmlnKSBBUyByb2xjb25maWcKKyAg ICBGUk9NCisgICAgICAgIChTRUxFQ1QgKgorICAgICAgICBGUk9NIHBnX2Nh dGFsb2cucGdfZGJfcm9sZV9zZXR0aW5nIGRyCisgICAgICAgIFdIRVJFCisg ICAgICAgICAgICBkci5zZXRyb2xlPXt7IHJpZHxxdExpdGVyYWwgfX06Ok9J RCBBTkQgZHIuc2V0ZGF0YWJhc2UhPTAKKyAgICAgICAgKSBjCisgICAgICAg IExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX2RhdGFiYXNlIGQgT04gKGQub2lk ID0gYy5zZXRkYXRhYmFzZSkKKyAgICApIGE7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90 ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDlfNC9jcmVhdGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVt cGxhdGVzL3JvbGUvc3FsL3Bvc3Q5XzQvY3JlYXRlLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lYmZlNmNlCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvcm9sZXMvdGVtcGxhdGVzL3JvbGUvc3FsL3Bvc3Q5XzQvY3JlYXRl LnNxbApAQCAtMCwwICsxLDUxIEBACit7JSBpbXBvcnQgJ21hY3Jvcy9zZWN1 cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jv cy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9CitDUkVBVEUgeyUg aWYgZGF0YS5yb2xjYW5sb2dpbiAlfVVTRVJ7JSBlbHNlICV9Uk9MRXslIGVu ZGlmICV9IHt7IGNvbm58cXRJZGVudChkYXRhLnJvbG5hbWUpIH19IFdJVEh7 JSBpZiBkYXRhLnJvbGNhbmxvZ2luIGFuZCBkYXRhLnJvbGNhbmxvZ2luIGlz IHNhbWVhcyBUcnVlICAlfQorCisJTE9HSU57JSBlbHNlICV9CisKKwlOT0xP R0lOeyUgZW5kaWYgJX17JSBpZiBkYXRhLnJvbHN1cGVyICV9CisKKwlTVVBF UlVTRVJ7JSBlbHNlICV9CisKKwlOT1NVUEVSVVNFUnslIGVuZGlmICV9eyUg aWYgZGF0YS5yb2xjcmVhdGVkYiAlfQorCisJQ1JFQVRFREJ7JSBlbHNlICV9 CisKKwlOT0NSRUFURURCeyUgZW5kaWYgJX17JSBpZiBkYXRhLnJvbGNyZWF0 ZXJvbGUgJX0KKworCUNSRUFURVJPTEV7JSBlbHNlICV9CisKKwlOT0NSRUFU RVJPTEV7JSBlbmRpZiAlfXslIGlmIGRhdGEucm9saW5oZXJpdCBpcyBzYW1l YXMgdHJ1ZSAlfQorCisJSU5IRVJJVHslIGVsc2UgJX0KKworCU5PSU5IRVJJ VHslIGVuZGlmICV9eyUgaWYgZGF0YS5yb2xyZXBsaWNhdGlvbiAlfQorCisJ UkVQTElDQVRJT057JSBlbHNlICV9CisKKwlOT1JFUExJQ0FUSU9OeyUgZW5k aWYgJX17JSBpZiAncm9sY29ubmxpbWl0JyBpbiBkYXRhIGFuZCBkYXRhLnJv bGNvbm5saW1pdCBpcyBudW1iZXIgYW5kIGRhdGEucm9sY29ubmxpbWl0ID49 IC0xICV9CisKKwlDT05ORUNUSU9OIExJTUlUIHt7IGRhdGEucm9sY29ubmxp bWl0IH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnJvbHZhbGlkdW50aWwgYW5k IGRhdGEucm9sdmFsaWR1bnRpbCBpcyBub3Qgbm9uZSAlfQorCisJVkFMSUQg VU5USUwge3sgZGF0YS5yb2x2YWxpZHVudGlsfHF0TGl0ZXJhbCB9fSB7JSBl bmRpZiAlfXslIGlmIGRhdGEucm9scGFzc3dvcmQgJX0KKworCVBBU1NXT1JE IHslIGlmIGRhdGEucm9scGFzc3dvcmQgaXMgbm9uZSAlfU5VTEx7JSBlbHNl ICV9eyUgaWYgZHVtbXkgJX0neHh4eHh4J3slIGVsc2UgJX0ge3sgZGF0YS5y b2xwYXNzd29yZCB8IHF0TGl0ZXJhbCB9fXslIGVuZGlmICV9eyUgZW5kaWYg JX17JSBlbmRpZiAlfTt7JSBpZiBkYXRhLm1lbWJlcnMgYW5kIGRhdGEubWVt YmVyc3xsZW5ndGggPiAwICV9CisKKworR1JBTlQge3sgY29ubnxxdElkZW50 KGRhdGEubWVtYmVycyl8am9pbignLCAnKSB9fSBUTyB7eyBjb25ufHF0SWRl bnQoZGF0YS5yb2xuYW1lKSB9fTt7JSBlbmRpZiAlfXslIGlmIGRhdGEuYWRt aW5zIGFuZCBkYXRhLmFkbWluc3xsZW5ndGggPiAwICV9CisKK0dSQU5UIHt7 IGNvbm58cXRJZGVudChkYXRhLmFkbWlucyl8am9pbignLCAnKSB9fSBUTyB7 eyBjb25ufHF0SWRlbnQoZGF0YS5yb2xuYW1lKSB9fSBXSVRIIEFETUlOIE9Q VElPTjt7JSBlbmRpZiAlfXslIGlmIGRhdGEuc2VjbGFiZWxzIGFuZCBkYXRh LnNlY2xhYmVsc3xsZW5ndGggPiAwICV9CisKK3slIGZvciByIGluIGRhdGEu c2VjbGFiZWxzICV9CisKK3t7IFNFQ0xBQkxFLkFQUExZKGNvbm4sICdST0xF JywgZGF0YS5yb2xuYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsKSB9fQoreyUg ZW5kZm9yICV9eyUgZW5kaWYgJX17JSBpZiBkYXRhLnZhcmlhYmxlcyAlfQor Cit7JSBmb3IgdmFyIGluIGRhdGEudmFyaWFibGVzICV9CisKK3t7IFZBUklB QkxFLkFQUExZKGNvbm4sIHZhci5kYXRhYmFzZSwgZGF0YS5yb2xuYW1lLCB2 YXIubmFtZSwgdmFyLnZhbHVlKSB9fQoreyUgZW5kZm9yICV9eyUgZW5kaWYg JX17JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gUk9M RSB7eyBjb25ufHF0SWRlbnQoZGF0YS5yb2xuYW1lKSB9fSBJUyB7eyBkYXRh LmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9fTsKK3slIGVuZGlmICV9CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDlfNC9ub2Rlcy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDlfNC9ub2Rlcy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmNkNGU0OAot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0 OV80L25vZGVzLnNxbApAQCAtMCwwICsxLDggQEAKK1NFTEVDVAorCXIub2lk LCByLnJvbG5hbWUsIHIucm9sY2FubG9naW4sIHIucm9sc3VwZXIKK0ZST00K Kwl7eyByb2xlX3RibCB9fSByCit7JSBpZiByaWQgJX0KK1dIRVJFIHIub2lk ID0ge3sgcmlkIH19OjppbnQKK3slIGVuZGlmICV9CitPUkRFUiBCWSByLnJv bGNhbmxvZ2luLCByLnJvbG5hbWUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRl cy9yb2xlL3NxbC9wb3N0OV80L3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvdGVtcGxh dGVzL3JvbGUvc3FsL3Bvc3Q5XzQvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmI1NmVjNAotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0OV80L3Byb3Bl cnRpZXMuc3FsCkBAIC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorCXIub2lkLCBy LiosCisJcGdfY2F0YWxvZy5zaG9ial9kZXNjcmlwdGlvbihyLm9pZCwgJ3Bn X2F1dGhpZCcpIEFTIGRlc2NyaXB0aW9uLAorCUFSUkFZKAorCQlTRUxFQ1QK KwkJCUNBU0UgV0hFTiBhbS5hZG1pbl9vcHRpb24gVEhFTiAnMScgRUxTRSAn MCcgRU5EIHx8IHJtLnJvbG5hbWUKKwkJRlJPTQorCQkJKFNFTEVDVCAqIEZS T00gcGdfYXV0aF9tZW1iZXJzIFdIRVJFIG1lbWJlciA9IHIub2lkKSBhbQor CQkJTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgcm0gT04gKHJtLm9p ZCA9IGFtLnJvbGVpZCkKKwkpIHJvbG1lbWJlcnNoaXAsCisJKFNFTEVDVCBh cnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVsKSBGUk9NIHBnX3No c2VjbGFiZWwgc2wxIFdIRVJFIHNsMS5vYmpvaWQ9ci5vaWQpIEFTIHNlY2xh YmVscworRlJPTQorCXt7IHJvbGVfdGJsIH19IHIKK3slIGlmIHJpZCAlfQor V0hFUkUgci5vaWQgPSB7eyByaWQgfX06OmludAoreyUgZW5kaWYgJX0KK09S REVSIEJZIHIucm9sY2FubG9naW4sIHIucm9sbmFtZQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9s ZXMvdGVtcGxhdGVzL3JvbGUvc3FsL3Bvc3Q5XzQvc3FsLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL3Rl bXBsYXRlcy9yb2xlL3NxbC9wb3N0OV80L3NxbC5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTMzZWMyYgotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0OV80L3NxbC5zcWwK QEAgLTAsMCArMSwxMTcgQEAKK1NFTEVDVAorCWFycmF5X3RvX3N0cmluZyhh cnJheV9hZ2coc3FsKSwgRSdcblxuJykKK0ZST00KKyhTRUxFQ1QKKwlDQVNF IFdIRU4gcm9sY2FubG9naW4gVEhFTiAnLS0gVXNlcjogJyBFTFNFICctLSBS b2xlOiAnIEVORAl8fAorCQlwZ19jYXRhbG9nLnF1b3RlX2lkZW50KHJvbG5h bWUpIHx8CisJCUUnXG4tLSBEUk9QICcgfHwgQ0FTRSBXSEVOIHJvbGNhbmxv Z2luIFRIRU4gJ1VTRVIgJyBFTFNFICdST0xFICcgRU5EIHx8CisJCXBnX2Nh dGFsb2cucXVvdGVfaWRlbnQocm9sbmFtZSkgfHwgRSdcblxuQ1JFQVRFICcg fHwKKwkJQ0FTRSBXSEVOIHJvbGNhbmxvZ2luIFRIRU4gJ1VTRVIgJyBFTFNF ICdST0xFICcgRU5EIHx8CisJCXBnX2NhdGFsb2cucXVvdGVfaWRlbnQocm9s bmFtZSkgfHwgRScgV0lUSFxuICAnIHx8CisJCUNBU0UgV0hFTiByb2xjYW5s b2dpbiBUSEVOICdMT0dJTicgRUxTRSAnTk9MT0dJTicgRU5EIHx8IEUnXG4g ICcgfHwKKwkJQ0FTRSBXSEVOIHJvbGNhbmxvZ2luIEFORCByb2xwYXNzd29y ZCBMSUtFICdtZDUlJScgVEhFTiAnRU5DUllQVEVEIFBBU1NXT1JEICcgfHwg cXVvdGVfbGl0ZXJhbChyb2xwYXNzd29yZCkgfHwgRSdcbiAgJyBFTFNFICcn IEVORCB8fAorCQlDQVNFIFdIRU4gcm9sc3VwZXIgVEhFTiAnU1VQRVJVU0VS JyBFTFNFICdOT1NVUEVSVVNFUicgRU5EIHx8IEUnXG4gICcgfHwKKwkJQ0FT RSBXSEVOIHJvbGluaGVyaXQgVEhFTiAnSU5IRVJJVCcgRUxTRSAnTk9JTkhF UklUJyBFTkQgfHwgRSdcbiAgJyB8fAorCQlDQVNFIFdIRU4gcm9sY3JlYXRl ZGIgVEhFTiAnQ1JFQVRFREInIEVMU0UgJ05PQ1JFQVRFREInIEVORCB8fCBF J1xuICAnIHx8CisJCUNBU0UgV0hFTiByb2xjcmVhdGVyb2xlIFRIRU4gJ0NS RUFURVJPTEUnIEVMU0UgJ05PQ1JFQVRFUk9MRScgRU5EIHx8IEUnXG4gICcg fHwKKwkJLS0gUG9zdGdyZVNRTCA+PSAgOS4xCisJCUNBU0UgV0hFTiByb2xy ZXBsaWNhdGlvbiBUSEVOICdSRVBMSUNBVElPTicgRUxTRSAnTk9SRVBMSUNB VElPTicgRU5EIHx8CisJCUNBU0UgV0hFTiByb2xjb25ubGltaXQgPiAwIFRI RU4gRSdcbiAgQ09OTkVDVElPTiBMSU1JVCAnIHx8IHJvbGNvbm5saW1pdCBF TFNFICcnIEVORCB8fAorCQlDQVNFIFdIRU4gcm9sdmFsaWR1bnRpbCBJUyBO T1QgTlVMTCBUSEVOIEUnXG4gIFZBTElEIFVOVElMICcgfHwgcXVvdGVfbGl0 ZXJhbChyb2x2YWxpZHVudGlsOjp0ZXh0KSBFTFNFICc7JyBFTkQgQVMgc3Fs CitGUk9NCisJe3sgcm9sZV90YmwgfX0gcgorV0hFUkUKKwlyLm9pZD0lKHJp ZClzOjpPSUQKK1VOSU9OIEFMTAorKFNFTEVDVAorCWFycmF5X3RvX3N0cmlu ZyhhcnJheV9hZ2coc3FsKSwgRSdcbicpCitGUk9NCisoU0VMRUNUCisJJ0dS QU5UICcgfHwgYXJyYXlfdG9fc3RyaW5nKGFycmF5X2FnZyhyb2xuYW1lKSwg JywgJykgfHwgJyBUTyAnIHx8IHBnX2NhdGFsb2cucXVvdGVfaWRlbnQocGdf Z2V0X3VzZXJieWlkKCUocmlkKXM6Ok9JRCkpIHx8CisJQ0FTRSBXSEVOIGFk bWluX29wdGlvbiBUSEVOICcgV0lUSCBBRE1JTiBPUFRJT047JyBFTFNFICc7 JyBFTkQgc3FsCitGUk9NCisJKFNFTEVDVAorCQlxdW90ZV9pZGVudChyLnJv bG5hbWUpIEFTIHJvbG5hbWUsIG0uYWRtaW5fb3B0aW9uIEFTIGFkbWluX29w dGlvbgorCUZST00KKwkJcGdfYXV0aF9tZW1iZXJzIG0KKwkJTEVGVCBKT0lO IHBnX3JvbGVzIHIgT04gKG0ucm9sZWlkID0gci5vaWQpCisJV0hFUkUKKwkJ bS5tZW1iZXI9JShyaWQpczo6T0lECisJT1JERVIgQlkKKwkJci5yb2xuYW1l CisJKSBhCitHUk9VUCBCWSBhZG1pbl9vcHRpb24pIHMpCitVTklPTiBBTEwK KyhTRUxFQ1QKKwlhcnJheV90b19zdHJpbmcoYXJyYXlfYWdnKHNxbCksIEUn XG4nKSBzcWwKK0ZST00KKyhTRUxFQ1QKKwknQUxURVIgJyB8fCBDQVNFIFdI RU4gcm9sY2FubG9naW4gVEhFTiAnVVNFUiAnIEVMU0UgJ1JPTEUgJyBFTkQg fHwgcGdfY2F0YWxvZy5xdW90ZV9pZGVudChyb2xuYW1lKSB8fCAnIFNFVCAn IHx8IHBhcmFtIHx8ICcgVE8gJyB8fCBDQVNFIFdIRU4gcGFyYW0gSU4gKCdz ZWFyY2hfcGF0aCcsICd0ZW1wX3RhYmxlc3BhY2VzJykgVEhFTiB2YWx1ZSBF TFNFIHF1b3RlX2xpdGVyYWwodmFsdWUpIEVORCB8fCAnOycgQVMgc3FsCitG Uk9NCisoU0VMRUNUCisJcm9sY2FubG9naW4sIHJvbG5hbWUsIHNwbGl0X3Bh cnQocm9sY29uZmlnLCAnPScsIDEpIEFTIHBhcmFtLCByZXBsYWNlKHJvbGNv bmZpZywgc3BsaXRfcGFydChyb2xjb25maWcsICc9JywgMSkgfHwgJz0nLCAn JykgQVMgdmFsdWUKK0ZST00KKwkoU0VMRUNUCisJCQl1bm5lc3Qocm9sY29u ZmlnKSBBUyByb2xjb25maWcsIHJvbGNhbmxvZ2luLCByb2xuYW1lCisJRlJP TQorCQlwZ19jYXRhbG9nLnBnX3JvbGVzCisJV0hFUkUKKwkJb2lkPSUocmlk KXM6Ok9JRAorCSkgcgorKSBhKSBiKQorLS0gUG9zdGdyZVNRTCA+PSA5LjAK K1VOSU9OIEFMTAorKFNFTEVDVAorCWFycmF5X3RvX3N0cmluZyhhcnJheV9h Z2coc3FsKSwgRSdcbicpIEFTIHNxbAorRlJPTQorCShTRUxFQ1QKKwkJJ0FM VEVSIFJPTEUgJyB8fCBwZ19jYXRhbG9nLnF1b3RlX2lkZW50KHBnX2dldF91 c2VyYnlpZCglKHJpZClzOjpPSUQpKSB8fAorCQknIElOIERBVEFCQVNFICcg fHwgcGdfY2F0YWxvZy5xdW90ZV9pZGVudChkYXRuYW1lKSB8fAorCQknIFNF VCAnIHx8IHBhcmFtfHwgJyBUTyAnIHx8CisJCUNBU0UKKwkJV0hFTiBwYXJh bSBJTiAoJ3NlYXJjaF9wYXRoJywgJ3RlbXBfdGFibGVzcGFjZXMnKSBUSEVO IHZhbHVlCisJCUVMU0UgcXVvdGVfbGl0ZXJhbCh2YWx1ZSkKKwkJRU5EIHx8 ICc7JyBBUyBzcWwKKwlGUk9NCisJCShTRUxFQ1QKKwkJCWRhdG5hbWUsIHNw bGl0X3BhcnQocm9sY29uZmlnLCAnPScsIDEpIEFTIHBhcmFtLCByZXBsYWNl KHJvbGNvbmZpZywgc3BsaXRfcGFydChyb2xjb25maWcsICc9JywgMSkgfHwg Jz0nLCAnJykgQVMgdmFsdWUKKwkJRlJPTQorCQkJKFNFTEVDVAorCQkJCWQu ZGF0bmFtZSwgdW5uZXN0KGMuc2V0Y29uZmlnKSBBUyByb2xjb25maWcKKwkJ CUZST00KKwkJCQkoU0VMRUNUICoKKwkJCQlGUk9NCisJCQkJCXBnX2NhdGFs b2cucGdfZGJfcm9sZV9zZXR0aW5nIGRyCisJCQkJV0hFUkUKKwkJCQkJZHIu c2V0cm9sZT0lKHJpZClzOjpPSUQgQU5EIGRyLnNldGRhdGFiYXNlIT0wKSBj CisJCQkJTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfZGF0YWJhc2UgZCBPTiAo ZC5vaWQgPSBjLnNldGRhdGFiYXNlKQorCQkJKSBhCisJCSkgYgorCSkgZAor KQorVU5JT04gQUxMCisoU0VMRUNUCisJJ0NPTU1FTlQgT04gUk9MRSAnIHx8 IHBnX2NhdGFsb2cucXVvdGVfaWRlbnQocGdfZ2V0X3VzZXJieWlkKCUocmlk KXM6Ok9JRCkpIHx8ICcgSVMgJyB8fCAgcGdfY2F0YWxvZy5xdW90ZV9saXRl cmFsKGRlc2NyaXB0aW9uKSB8fCAnOycgQVMgc3FsCitGUk9NCisJKFNFTEVD VAlwZ19jYXRhbG9nLnNob2JqX2Rlc2NyaXB0aW9uKCUocmlkKXM6Ok9JRCwg J3BnX2F1dGhpZCcpIEFTIGRlc2NyaXB0aW9uKSBhCitXSEVSRQorCWRlc2Ny aXB0aW9uIElTIE5PVCBOVUxMKQorLS0gUG9zdGdyZVNRTCA+PSA5LjIKK1VO SU9OIEFMTAorKFNFTEVDVAorCWFycmF5X3RvX3N0cmluZyhhcnJheV9hZ2co c3FsKSwgRSdcbicpIEFTIHNxbAorRlJPTQorCShTRUxFQ1QKKwkJJ1NFQ1VS SVRZIExBQkVMIEZPUiAnIHx8IHByb3ZpZGVyIHx8CisJCUUnXG4gIE9OIFJP TEUgJyB8fCBwZ19jYXRhbG9nLnF1b3RlX2lkZW50KHJvbG5hbWUpIHx8CisJ CUUnXG4gIElTICcgfHwgcGdfY2F0YWxvZy5xdW90ZV9saXRlcmFsKGxhYmVs KSB8fCAnOycgQVMgc3FsCisJRlJPTQorCQkoU0VMRUNUCisJCQlsYWJlbCwg cHJvdmlkZXIsIHJvbG5hbWUKKwkJRlJPTQorCQkJKFNFTEVDVCAqCisJCQlG Uk9NCisJCQkJcGdfc2hzZWNsYWJlbCBzbDEKKwkJCVdIRVJFIHNsMS5vYmpv aWQ9JShyaWQpczo6T0lEKSBzCisJCQlMRUZUIEpPSU4gcGdfY2F0YWxvZy5w Z19yb2xlcyByIE9OIChzLm9iam9pZD1yLm9pZCkpIGEpIGIKKykpIEFTIGEK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0OV80L3Vw ZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDlfNC91cGRh dGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdh ZDQ5OGYKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9z cWwvcG9zdDlfNC91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTA3IEBACit7JSBp bXBvcnQgJ21hY3Jvcy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9 Cit7JSBpbXBvcnQgJ21hY3Jvcy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklB QkxFICV9Cit7JSBpZiAncm9sbmFtZScgaW4gZGF0YSAlfQoreyUgc2V0IHJv bG5hbWU9ZGF0YS5yb2xuYW1lICV9CitBTFRFUnslIGlmIHJvbENhbkxvZ2lu ICV9IFVTRVIgeyUgZWxzZSAlfSBST0xFIHslIGVuZGlmICV9e3sgY29ubnxx dElkZW50KHJvbGUpIH19CisJUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChy b2xuYW1lKSB9fTsKKworeyUgZWxzZSAlfQoreyUgc2V0IHJvbG5hbWU9cm9s ZSAlfQoreyUgZW5kaWYgJX0KK3slIGlmIGRhdGF8aGFzQW55KGFsdGVyS2V5 cykgJX0KK0FMVEVSIHslIGlmIHJvbENhbkxvZ2luICV9VVNFUnslIGVsc2Ug JX1ST0xFeyUgZW5kaWYgJX0ge3sgY29ubnxxdElkZW50KHJvbG5hbWUpIH19 eyUgaWYgJ3JvbGNhbmxvZ2luJyBpbiBkYXRhICV9CisKK3slIGlmIGRhdGEu cm9sY2FubG9naW4gJX0KKwlMT0dJTnslIGVsc2UgJX0KKwlOT0xPR0lOeyUg ZW5kaWYgJX17JSBlbmRpZiAlfXslIGlmICdyb2xzdXBlcicgaW4gZGF0YSAl fQorCit7JSBpZiBkYXRhLnJvbHN1cGVyICV9CisJU1VQRVJVU0VSeyUgZWxz ZSAlfQorCU5PU1VQRVJVU0VSeyUgZW5kaWYgJX17JSBlbmRpZiAlfXslIGlm ICdyb2xjcmVhdGVkYicgaW4gZGF0YSAlfQorCit7JSBpZiBkYXRhLnJvbGNy ZWF0ZWRiICV9CisJQ1JFQVRFREJ7JSBlbHNlICV9CisJTk9DUkVBVEVEQnsl IGVuZGlmICV9eyUgZW5kaWYgJX17JSBpZiAncm9sY3JlYXRlcm9sZScgaW4g ZGF0YSAlfQorCit7JSBpZiBkYXRhLnJvbGNyZWF0ZXJvbGUgJX0KKwlDUkVB VEVST0xFeyUgZWxzZSAlfQorCU5PQ1JFQVRFUk9MRXslIGVuZGlmICV9eyUg ZW5kaWYgJX17JSBpZiAncm9saW5oZXJpdCcgaW4gZGF0YSAlfQorCit7JSBp ZiBkYXRhLnJvbGluaGVyaXQgJX0KKwlJTkhFUklUeyUgZWxzZSAlfQorCU5P SU5IRVJJVHslIGVuZGlmICV9eyUgZW5kaWYgJX17JSBpZiAncm9scmVwbGlj YXRpb24nIGluIGRhdGEgJX0KKworeyUgaWYgZGF0YS5yb2xyZXBsaWNhdGlv biAlfQorCVJFUExJQ0FUSU9OeyUgZWxzZSAlfQorCU5PUkVQTElDQVRJT057 JSBlbmRpZiAlfXslIGVuZGlmICV9eyUgaWYgJ3JvbGNvbm5saW1pdCcgaW4g ZGF0YSBhbmQgZGF0YS5yb2xjb25ubGltaXQgaXMgbnVtYmVyIGFuZCBkYXRh LnJvbGNvbm5saW1pdCA+PSAtMSAlfQorCisJQ09OTkVDVElPTiBMSU1JVCB7 eyBkYXRhLnJvbGNvbm5saW1pdCB9fQoreyUgZW5kaWYgJX17JSBpZiAncm9s dmFsaWR1bnRpbCcgaW4gZGF0YSBhbmQgZGF0YS5yb2x2YWxpZHVudGlsICV9 CisKKwlWQUxJRCBVTlRJTCB7JSBpZiBkYXRhLnJvbHZhbGlkdW50aWwgaXMg bm90IG5vbmUgJX17eyBkYXRhLnJvbHZhbGlkdW50aWx8cXRMaXRlcmFsIH19 eyUgZWxzZSAlfSdpbmZpbml0eScKK3slIGVuZGlmICV9eyUgZW5kaWYgJX17 JSBpZiAncm9scGFzc3dvcmQnIGluIGRhdGEgJX0KKworCVBBU1NXT1JEeyUg aWYgZGF0YS5yb2xwYXNzd29yZCBpcyBub25lICV9IE5VTEx7JSBlbHNlICV9 eyUgaWYgZHVtbXkgJX0gJ3h4eHh4eCd7JSBlbHNlICV9IHt7IGRhdGEucm9s cGFzc3dvcmR8cXRMaXRlcmFsIH19eyUgZW5kaWYgJX17JSBlbmRpZiAlfXsl IGVuZGlmICV9O3slIGVuZGlmICV9CisKK3slIGlmICdyZXZva2VkX2FkbWlu cycgaW4gZGF0YSBhbmQKKwlkYXRhLnJldm9rZWRfYWRtaW5zfGxlbmd0aCA+ IDAKKyV9CisKKy0tIFJldm9rZWQgdGhlIGFkbWluIG9wdGlvbnMgZnJvbSB0 aGUgbWVtYmVycworUkVWT0tFIEFETUlOIE9QVElPTiBGT1Ige3sgY29ubnxx dElkZW50KGRhdGEucmV2b2tlZF9hZG1pbnMpfGpvaW4oJywgJykgfX0gRlJP TSB7eyBjb25ufHF0SWRlbnQocm9sbmFtZSkgfX07eyUgZW5kaWYgJX17JSBp ZiAncmV2b2tlZCcgaW4gZGF0YSBhbmQgZGF0YS5yZXZva2VkfGxlbmd0aCA+ IDAgJX0KKworCistLSBGb2xsb3dpbmcgYXJlIG5vIG1vcmUgdGhlIG1lbWJl cnMKK1JFVk9LRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5yZXZva2VkKXxqb2lu KCcsICcpIH19IEZST00ge3sgY29ubnxxdElkZW50KHJvbG5hbWUpIH19O3sl IGVuZGlmICV9eyUgaWYgZGF0YS5hZG1pbnMgYW5kIGRhdGEuYWRtaW5zfGxl bmd0aCA+IDAgJX0KKworLS0gRm9sbG93aW5nIGFyZSB0aGUgbmV3IGFkbWlu cyAob3IsIGV4aXN0aW5nIG1lbWJlcnMgbWFkZSBhZG1pbnMpCitHUkFOVCB7 eyBjb25ufHF0SWRlbnQoZGF0YS5hZG1pbnMpfGpvaW4oJywgJykgfX0gVE8g e3sgY29ubnxxdElkZW50KHJvbG5hbWUpIH19IFdJVEggQURNSU4gT1BUSU9O O3slIGVuZGlmICV9eyUgaWYgZGF0YS5tZW1iZXJzIGFuZCBkYXRhLm1lbWJl cnN8bGVuZ3RoID4gMCAlfQorCisKKy0tIEZvbGxvd2luZyBhcmUgdGhlIG5l dyBtZW1iZXJzCitHUkFOVCB7eyBjb25ufHF0SWRlbnQoZGF0YS5tZW1iZXJz KXxqb2luKCcsICcpIH19IFRPIHt7IGNvbm58cXRJZGVudChyb2xuYW1lKSB9 fTt7JSBlbmRpZiAlfXslIGlmIGRhdGEuc2VjbGFiZWxzIGFuZAorCWRhdGEu c2VjbGFiZWxzfGxlbmd0aCA+IDAKKyV9eyUgc2V0IHNlY2xhYmVscyA9IGRh dGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxz IGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5ndGggPiAwICV9CisKK3slIGZv ciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9Cit7eyBTRUNMQUJMRS5EUk9Q KGNvbm4sICdST0xFJywgZGF0YS5yb2xuYW1lLCByLnByb3ZpZGVyKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgaWYgJ2FkZGVkJyBpbiBz ZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9CisK K3slIGZvciByIGluIHNlY2xhYmVscy5hZGRlZCAlfQore3sgU0VDTEFCTEUu QVBQTFkoY29ubiwgJ1JPTEUnLCBkYXRhLnJvbG5hbWUsIHIucHJvdmlkZXIs IHIubGFiZWwpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmICV9Cit7JSBp ZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuY2hhbmdl ZHxsZW5ndGggPiAwICV9CisKK3slIGZvciByIGluIHNlY2xhYmVscy5jaGFu Z2VkICV9Cit7eyBTRUNMQUJMRS5BUFBMWShjb25uLCAnUk9MRScsIGRhdGEu cm9sbmFtZSwgci5wcm92aWRlciwgci5sYWJlbCkgfX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgJX0KK3slIGVuZGlmICV9Cit7JSBpZiAndmFyaWFibGVz JyBpbiBkYXRhIGFuZCBkYXRhLnZhcmlhYmxlc3xsZW5ndGggPiAwICV9Cit7 JSBzZXQgdmFyaWFibGVzID0gZGF0YS52YXJpYWJsZXMgJX0KK3slIGlmICdk ZWxldGVkJyBpbiB2YXJpYWJsZXMgYW5kIHZhcmlhYmxlcy5kZWxldGVkfGxl bmd0aCA+IDAgJX0KKworeyUgZm9yIHZhciBpbiB2YXJpYWJsZXMuZGVsZXRl ZCAlfQore3sgVkFSSUFCTEUuUkVTRVQoY29ubiwgdmFyLmRhdGFiYXNlLCBy b2xuYW1lLCB2YXIubmFtZSkgfX0KK3slIGVuZGZvciAlfXslIGVuZGlmICV9 Cit7JSBpZiAnYWRkZWQnIGluIHZhcmlhYmxlcyBhbmQgdmFyaWFibGVzLmFk ZGVkfGxlbmd0aCA+IDAgJX0KKworeyUgZm9yIHZhciBpbiB2YXJpYWJsZXMu YWRkZWQgJX0KK3t7IFZBUklBQkxFLkFQUExZKGNvbm4sIHZhci5kYXRhYmFz ZSwgcm9sbmFtZSwgdmFyLm5hbWUsIHZhci52YWx1ZSkgfX0KK3slIGVuZGZv ciAlfXslIGVuZGlmICV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gdmFyaWFibGVz IGFuZCB2YXJpYWJsZXMuY2hhbmdlZHxsZW5ndGggPiAwICV9CisKK3slIGZv ciB2YXIgaW4gdmFyaWFibGVzLmNoYW5nZWQgJX0KK3t7IFZBUklBQkxFLkFQ UExZKGNvbm4sIHZhci5kYXRhYmFzZSwgcm9sbmFtZSwgdmFyLm5hbWUsIHZh ci52YWx1ZSkgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVu ZGlmICV9Cit7JSBpZiAnZGVzY3JpcHRpb24nIGluIGRhdGEgJX0KKworCitD T01NRU5UIE9OIFJPTEUge3sgY29ubnxxdElkZW50KHJvbG5hbWUpIH19IElT IHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19OworeyUgZW5kaWYg JX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL3JvbGVzL3RlbXBsYXRlcy9yb2xlL3NxbC9wb3N0OV80 L3ZhcmlhYmxlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0ZXMvcm9sZS9zcWwvcG9zdDlf NC92YXJpYWJsZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmI4NjIwYzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9yb2xlcy90ZW1wbGF0 ZXMvcm9sZS9zcWwvcG9zdDlfNC92YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEs MjUgQEAKK1NFTEVDVAorICAgIHNwbGl0X3BhcnQocm9sY29uZmlnLCAnPScs IDEpIEFTIG5hbWUsIHJlcGxhY2Uocm9sY29uZmlnLCBzcGxpdF9wYXJ0KHJv bGNvbmZpZywgJz0nLCAxKSB8fCAnPScsICcnKSBBUyB2YWx1ZSwgTlVMTDo6 dGV4dCBBUyBkYXRhYmFzZQorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAg ICAgIHVubmVzdChyb2xjb25maWcpIEFTIHJvbGNvbmZpZywgcm9sY2FubG9n aW4sIHJvbG5hbWUKKyAgICBGUk9NCisgICAgICAgIHBnX2NhdGFsb2cucGdf cm9sZXMKKyAgICBXSEVSRQorICAgICAgICBvaWQ9e3sgcmlkfHF0TGl0ZXJh bCB9fTo6T0lECisgICAgKSByCisKK1VOSU9OIEFMTAorU0VMRUNUCisgICAg c3BsaXRfcGFydChyb2xjb25maWcsICc9JywgMSkgQVMgbmFtZSwgcmVwbGFj ZShyb2xjb25maWcsIHNwbGl0X3BhcnQocm9sY29uZmlnLCAnPScsIDEpIHx8 ICc9JywgJycpIEFTIHZhbHVlLCBkYXRuYW1lIEFTIGRhdGFiYXNlCitGUk9N CisgICAgKFNFTEVDVAorICAgICAgICBkLmRhdG5hbWUsIHVubmVzdChjLnNl dGNvbmZpZykgQVMgcm9sY29uZmlnCisgICAgRlJPTQorICAgICAgICAoU0VM RUNUICoKKyAgICAgICAgRlJPTSBwZ19jYXRhbG9nLnBnX2RiX3JvbGVfc2V0 dGluZyBkcgorICAgICAgICBXSEVSRQorICAgICAgICAgICAgZHIuc2V0cm9s ZT17eyByaWR8cXRMaXRlcmFsIH19OjpPSUQgQU5EIGRyLnNldGRhdGFiYXNl IT0wCisgICAgICAgICkgYworICAgICAgICBMRUZUIEpPSU4gcGdfY2F0YWxv Zy5wZ19kYXRhYmFzZSBkIE9OIChkLm9pZCA9IGMuc2V0ZGF0YWJhc2UpCisg ICAgKSBhOwo= --001a113ff650d5dbf50529263a47 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 --001a113ff650d5dbf50529263a47--