Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aqzcO-0003uO-TW for pgadmin-hackers@arkaria.postgresql.org; Fri, 15 Apr 2016 09:00:49 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1aqzcO-0003hf-Cy for pgadmin-hackers@arkaria.postgresql.org; Fri, 15 Apr 2016 09:00:48 +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_2) (envelope-from ) id 1aqzc6-0003Qv-Kh for pgadmin-hackers@postgresql.org; Fri, 15 Apr 2016 09:00:31 +0000 Received: from mail-oi0-x22d.google.com ([2607:f8b0:4003:c06::22d]) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1aqzc1-0003gz-J2 for pgadmin-hackers@postgresql.org; Fri, 15 Apr 2016 09:00:29 +0000 Received: by mail-oi0-x22d.google.com with SMTP id p188so118159250oih.2 for ; Fri, 15 Apr 2016 02:00:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to; bh=1+3x2Ar6H9LizbPOR6751/j9BTI9aIoXkWqXzQjakvw=; b=JKHisWyOmZ/LokqsHx7bB1/bLOP3dQcrfJ+Tmtb/VSRzbzPUM669XNz23OxEynpg0+ zLbuPvFqmVt8pKlvjQM/WInxyoY4BnvQHUeSoaZZlxQeuvG6Ub4aOIA1f7QdrNjpoHP1 cScVKePfgwK5phsS0osEdpxWJwTkBYKuVj0G3sdjxre7k8d+TJn9MOTUubgrMO3vnnre wuLRo7O9ZgHts1pimI8kBVYlH7tB9rz8uE2tk6tHdTL8qDGS25bp3iR5KQ5xqcwZfCAK h47WjHRMmW4lnAvEvz7fytbiFYonOvfA3qPWr0BQ/DoStwVmOMA0Kyinrk6M4wazoq6V 75+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to; bh=1+3x2Ar6H9LizbPOR6751/j9BTI9aIoXkWqXzQjakvw=; b=LaPyumuJIwXkxvpi1qe7TZZBnb7n8yk2knqwKjDKHcskATC5Y2TMuLfgJZvSEgSt2Q xoaBDh1lC/SPGJ3qxkHfhB9qpxSVIDsedoX4ym4w0kkVOKNBPGflzKIT7KvNoNFSNtb+ wKfEU9j/2udxqEmjKyI7jsWklieRs/N7/T/daGVxyHyQ7gD+q3zytKHN8Va1v8zWhm7q IVzjJC+XQhF5b8XycbLpYBCexgUGMkSL7efbaePv3eTmB20+VzpooLqPY+BUkpxV7LrM h9Iv6a1Fo+3RiAaeW/Vgn0GLCD9pQ7/f8lxJweaW+WFeG5SyroR1LrXO/rQ6oEYMJi9G xsnw== X-Gm-Message-State: AOPr4FV0vbU8KvhWlZbsk5rKEVm4obCwhDwtqKL97vikgJr1NWM7ET3uUa9K4VJhe88nrnRBcbbTPH5sQLaOj1er MIME-Version: 1.0 X-Received: by 10.202.204.130 with SMTP id c124mr9894796oig.112.1460710824695; Fri, 15 Apr 2016 02:00:24 -0700 (PDT) Received: by 10.157.54.216 with HTTP; Fri, 15 Apr 2016 02:00:24 -0700 (PDT) Date: Fri, 15 Apr 2016 14:30:24 +0530 Message-ID: Subject: Initial Check constraint node patch [Pgadmin4] From: Harshal Dhumal To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a1137be20d503a90530823d20 X-Pg-Spam-Score: -0.9 (/) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a1137be20d503a90530823d20 Content-Type: multipart/alternative; boundary=001a1137be20d503a20530823d1e --001a1137be20d503a20530823d1e Content-Type: text/plain; charset=UTF-8 Hi, PFA initial patch for check constraint. Note: This patch has dependency on Table, Column node and Index constraint. As of now all (5) constraint nodes are completed (initial patches). -- *Harshal Dhumal* *Software Engineer * EenterpriseDB --001a1137be20d503a20530823d1e Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

PFA initial patch for check constrai= nt.

Note: This patch has dependency on Table, Column node and Index= =20 constraint.
As of= now all (5) constraint nodes are completed (initial patches).

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



<= /div> --001a1137be20d503a20530823d1e-- --001a1137be20d503a90530823d20 Content-Type: text/x-patch; charset=US-ASCII; name="check_constraint_15_April_V1.patch" Content-Disposition: attachment; filename="check_constraint_15_April_V1.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_in1hg7oc0 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50 cy9jaGVja19jb25zdHJhaW50L19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvX19pbml0 X18ucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uM2U0 M2Q5MgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L19faW5pdF9fLnB5CkBA IC0wLDAgKzEsODIzIEBACisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworIworIyBwZ0FkbWluIDQgLSBQb3N0Z3JlU1FMIFRvb2xzCisjCisjIENv cHlyaWdodCAoQykgMjAxMyAtIDIwMTYsIFRoZSBwZ0FkbWluIERldmVsb3Bt ZW50IFRlYW0KKyMgVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciB0 aGUgUG9zdGdyZVNRTCBMaWNlbmNlCisjCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIworCisiIiJJbXBsZW1lbnRzIHRoZSBDaGVjayBDb25zdHJh aW50IE1vZHVsZS4iIiIKKworaW1wb3J0IGpzb24KK2Zyb20gZmxhc2sgaW1w b3J0IHJlbmRlcl90ZW1wbGF0ZSwgbWFrZV9yZXNwb25zZSwgcmVxdWVzdCwg anNvbmlmeQorZnJvbSBmbGFzay5leHQuYmFiZWwgaW1wb3J0IGdldHRleHQg YXMgXworZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNv bl9yZXNwb25zZSwgXAorICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNw b25zZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9yCitmcm9tIHBnYWRtaW4uYnJv d3Nlci51dGlscyBpbXBvcnQgUEdDaGlsZE5vZGVWaWV3Citmcm9tIHBnYWRt aW4uYnJvd3Nlci5jb2xsZWN0aW9uIGltcG9ydCBDb2xsZWN0aW9uTm9kZU1v ZHVsZQoraW1wb3J0IHBnYWRtaW4uYnJvd3Nlci5zZXJ2ZXJfZ3JvdXBzLnNl cnZlcnMuZGF0YWJhc2VzLnNjaGVtYXMudGFibGVzIGFzIHRhYmxlCitmcm9t IHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQgcHJlY29uZGl0aW9uX3JlcXVp cmVkCitmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJp dmVyCitmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKK2Zy b20gZnVuY3Rvb2xzIGltcG9ydCB3cmFwcworZnJvbSBwZ2FkbWluLmJyb3dz ZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5zY2hlbWFzLnRh Ymxlcy5jb25zdHJhaW50cy50eXBlIFwKKyAgICBpbXBvcnQgQ29uc3RyYWlu dFJlZ2lzdHJ5LCBDb25zdHJhaW50VHlwZU1vZHVsZQorCisKK2NsYXNzIENo ZWNrQ29uc3RyYWludE1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6Cisg ICAgIiIiCisgICAgY2xhc3MgQ2hlY2tDb25zdHJhaW50TW9kdWxlKENvbGxl Y3Rpb25Ob2RlTW9kdWxlKToKKworICAgICAgICBUaGlzIGNsYXNzIHJlcHJl c2VudHMgVGhlIENoZWNrIENvbnN0cmFpbnQgTW9kdWxlLgorCisgICAgTWV0 aG9kczoKKyAgICAtLS0tLS0tCisgICAgKiBfX2luaXRfXygqYXJncywgKipr d2FyZ3MpCisgICAgICAtIEluaXRpYWxpemUgdGhlIENoZWNrIENvbnN0cmFp bnQgTW9kdWxlLgorCisgICAgKiBnZXRfbm9kZXMoZ2lkLCBzaWQsIGRpZCwg c2NpZCkKKyAgICAgIC0gR2VuZXJhdGUgdGhlIENoZWNrIENvbnN0cmFpbnQg Y29sbGVjdGlvbiBub2RlLgorCisgICAgKiBub2RlX2lub2RlKGdpZCwgc2lk LCBkaWQsIHNjaWQpCisgICAgICAtIFJldHVybnMgQ2hlY2sgQ29uc3RyYWlu dCBub2RlIGFzIGxlYWYgbm9kZS4KKworICAgICogc2NyaXB0X2xvYWQoKQor ICAgICAgLSBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciB0aGUgQ2hlY2sg Q29uc3RyYWludCwgd2hlbiBhbnkgb2YgdGhlCisgICAgICAgIENoZWNrIG5v ZGUgaXMgaW5pdGlhbGl6ZWQuCisgICAgIiIiCisgICAgTk9ERV9UWVBFID0g J2NoZWNrX2NvbnN0cmFpbnRzJworICAgIENPTExFQ1RJT05fTEFCRUwgPSBf KCJDaGVjayBDb25zdHJhaW50cyIpCisKKyAgICBkZWYgX19pbml0X18oc2Vs ZiwgKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3VwZXIoQ2hlY2tDb25z dHJhaW50TW9kdWxlLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3Mp CisgICAgICAgIHNlbGYubWluX3ZlciA9IE5vbmUKKyAgICAgICAgc2VsZi5t YXhfdmVyID0gTm9uZQorCisgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCBkb2lkKToKKyAgICAgICAgIiIiCisgICAgICAg IEdlbmVyYXRlIHRoZSBDaGVjayBDb25zdHJhaW50IGNvbGxlY3Rpb24gbm9k ZS4KKyAgICAgICAgIiIiCisgICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVf YnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUoZG9pZCkKKworICAgIEBwcm9wZXJ0 eQorICAgIGRlZiBub2RlX2lub2RlKHNlbGYpOgorICAgICAgICAiIiIKKyAg ICAgICAgUmV0dXJucyBDaGVjayBDb25zdHJhaW50IG5vZGUgYXMgbGVhZiBu b2RlLgorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAg ICBAcHJvcGVydHkKKyAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6CisgICAg ICAgICIiIgorICAgICAgICBMb2FkIHRoZSBtb2R1bGUgc2NyaXB0IGZvciB0 aGUgQ2hlY2sgQ29uc3RyYWludCwgd2hlbiBhbnkgb2YgdGhlCisgICAgICAg IENoZWNrIG5vZGUgaXMgaW5pdGlhbGl6ZWQuCisgICAgICAgICIiIgorICAg ICAgICByZXR1cm4gdGFibGUuVGFibGVNb2R1bGUuTk9ERV9UWVBFCisKKyAg ICBAcHJvcGVydHkKKyAgICBkZWYgY3Nzc25pcHBldHMoc2VsZik6CisgICAg ICAgICIiIgorICAgICAgICBSZXR1cm5zIGEgc25pcHBldCBvZiBjc3MgdG8g aW5jbHVkZSBpbiB0aGUgcGFnZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0 dXJuIFsKKyAgICAgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUoCisgICAg ICAgICAgICAgICAgICAgICJjaGVja19jb25zdHJhaW50L2Nzcy9jaGVja19j b25zdHJhaW50LmNzcyIsCisgICAgICAgICAgICAgICAgICAgIG5vZGVfdHlw ZT1zZWxmLm5vZGVfdHlwZQorICAgICAgICAgICAgICAgICAgICApCisgICAg ICAgICAgICAgICAgXQorCisKK2JsdWVwcmludCA9IENoZWNrQ29uc3RyYWlu dE1vZHVsZShfX25hbWVfXykKKworCitjbGFzcyBDaGVja0NvbnN0cmFpbnRW aWV3KFBHQ2hpbGROb2RlVmlldyk6CisgICAgIiIiCisgICAgY2xhc3MgQ2hl Y2tDb25zdHJhaW50VmlldyhQR0NoaWxkTm9kZVZpZXcpOgorCisgICAgVGhp cyBjbGFzcyBpbmhlcml0cyBQR0NoaWxkTm9kZVZpZXcgdG8gZ2V0IHRoZSBk aWZmZXJlbnQgcm91dGVzIGZvcgorICAgIHRoZSBtb2R1bGUuCisKKyAgICBU aGUgY2xhc3MgaXMgcmVzcG9uc2libGUgdG8gQ3JlYXRlLCBSZWFkLCBVcGRh dGUgYW5kIERlbGV0ZSBvcGVyYXRpb25zIGZvcgorICAgIHRoZSBDaGVjayBD b25zdHJhaW50LgorCisgICAgTWV0aG9kczoKKyAgICAtLS0tLS0tCisKKyAg ICAqIG1vZHVsZV9qcygpOgorICAgICAgLSBMb2FkIEpTIGZpbGUgKGNoZWNr LWNvbnN0cmFpbnRzLmpzKSBmb3IgdGhpcyBtb2R1bGUuCisKKyAgICAqIGNo ZWNrX3ByZWNvbmRpdGlvbihmKToKKyAgICAgIC0gV29ya3MgYXMgYSBkZWNv cmF0b3IuCisgICAgICAtICBDaGVja3MgZGF0YWJhc2UgY29ubmVjdGlvbiBz dGF0dXMuCisgICAgICAtICBBdHRhY2ggY29ubmVjdGlvbiBvYmplY3QgYW5k IHRlbXBsYXRlIHBhdGguCisKKyAgICAqIGxpc3QoZ2lkLCBzaWQsIGRpZCwg c2NpZCwgZG9pZCk6CisgICAgICAtIExpc3QgdGhlIENoZWNrIENvbnN0cmFp bnRzLgorCisgICAgKiBub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAg ICAgIC0gUmV0dXJucyBhbGwgdGhlIENoZWNrIENvbnN0cmFpbnRzIHRvIGdl bmVyYXRlIE5vZGVzIGluIHRoZSBicm93c2VyLgorCisgICAgKiBwcm9wZXJ0 aWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQpOgorICAgICAgLSBSZXR1 cm5zIHRoZSBDaGVjayBDb25zdHJhaW50IHByb3BlcnRpZXMuCisKKyAgICAq IGNyZWF0ZShnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgIC0gQ3JlYXRl cyBhIG5ldyBDaGVjayBDb25zdHJhaW50IG9iamVjdC4KKworICAgICogdXBk YXRlKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQpOgorICAgICAgLSBVcGRh dGVzIHRoZSBDaGVjayBDb25zdHJhaW50IG9iamVjdC4KKworICAgICogZGVs ZXRlKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGRvaWQpOgorICAgICAgLSBEcm9w cyB0aGUgQ2hlY2sgQ29uc3RyYWludCBvYmplY3QuCisKKyAgICAqIHNxbChn aWQsIHNpZCwgZGlkLCBzY2lkLCBkb2lkPU5vbmUpOgorICAgICAgLSBSZXR1 cm5zIHRoZSBTUUwgZm9yIHRoZSBDaGVjayBDb25zdHJhaW50IG9iamVjdC4K KworICAgICogbXNxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBkb2lkPU5vbmUp OgorICAgICAgLSBSZXR1cm5zIHRoZSBtb2RpZmllZCBTUUwuCisKKyAgICAq IGdldF9zcWwoZ2lkLCBzaWQsIGRhdGEsIHNjaWQsIHRpZD1Ob25lKToKKyAg ICAgIC0gR2VuZXJhdGVzIHRoZSBTUUwgc3RhdGVtZW50cyB0byBjcmVhdGUv dXBkYXRlIHRoZSBDaGVjayBDb25zdHJhaW50LgorICAgICAgICBvYmplY3Qu CisKKyAgICAqIGRlcGVuZGVudHMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlk LCBjaWQpOgorICAgICAgLSBSZXR1cm5zIHRoZSBkZXBlbmRlbnRzIGZvciB0 aGUgQ2hlY2sgQ29uc3RyYWludCBvYmplY3QuCisKKyAgICAqIGRlcGVuZGVu Y2llcyhnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGNpZCk6CisgICAgICAt IFJldHVybnMgdGhlIGRlcGVuZGVuY2llcyBmb3IgdGhlIENoZWNrIENvbnN0 cmFpbnQgb2JqZWN0LgorCisgICAgKiB2YWxpZGF0ZV9jaGVja19jb25zdHJh aW50KGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgY2lkKToKKyAgICAgIC0g VmFsaWRhdGUgY2hlY2sgY29uc3RyYWludC4KKyAgICAiIiIKKyAgICBub2Rl X3R5cGUgPSBibHVlcHJpbnQubm9kZV90eXBlCisKKyAgICBwYXJlbnRfaWRz ID0gWworICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2dpZCd9LAor ICAgICAgICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAgICAg ICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2RpZCd9LAorICAgICAgICB7J3R5 cGUnOiAnaW50JywgJ2lkJzogJ3NjaWQnfSwKKyAgICAgICAgeyd0eXBlJzog J2ludCcsICdpZCc6ICd0aWQnfQorICAgIF0KKyAgICBpZHMgPSBbCisgICAg ICAgIHsndHlwZSc6ICdpbnQnLCAnaWQnOiAnY2lkJ30KKyAgICBdCisKKyAg ICBvcGVyYXRpb25zID0gZGljdCh7CisgICAgICAgICdvYmonOiBbCisgICAg ICAgICAgICB7J2dldCc6ICdwcm9wZXJ0aWVzJywgJ2RlbGV0ZSc6ICdkZWxl dGUnLCAncHV0JzogJ3VwZGF0ZSd9LAorICAgICAgICAgICAgeydnZXQnOiAn bGlzdCcsICdwb3N0JzogJ2NyZWF0ZSd9CisgICAgICAgIF0sCisgICAgICAg ICdkZWxldGUnOiBbeydkZWxldGUnOiAnZGVsZXRlJ31dLAorICAgICAgICAn Y2hpbGRyZW4nOiBbeydnZXQnOiAnY2hpbGRyZW4nfV0sCisgICAgICAgICdu b2Rlcyc6IFt7J2dldCc6ICdub2RlJ30sIHsnZ2V0JzogJ25vZGVzJ31dLAor ICAgICAgICAnc3FsJzogW3snZ2V0JzogJ3NxbCd9XSwKKyAgICAgICAgJ21z cWwnOiBbeydnZXQnOiAnbXNxbCd9LCB7J2dldCc6ICdtc3FsJ31dLAorICAg ICAgICAnc3RhdHMnOiBbeydnZXQnOiAnc3RhdGlzdGljcyd9XSwKKyAgICAg ICAgJ2RlcGVuZGVuY3knOiBbeydnZXQnOiAnZGVwZW5kZW5jaWVzJ31dLAor ICAgICAgICAnZGVwZW5kZW50JzogW3snZ2V0JzogJ2RlcGVuZGVudHMnfV0s CisgICAgICAgICdtb2R1bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1 bGVfanMnfV0sCisgICAgICAgICd2YWxpZGF0ZSc6IFt7J2dldCc6ICd2YWxp ZGF0ZV9jaGVja19jb25zdHJhaW50J31dLAorICAgIH0pCisKKyAgICBkZWYg bW9kdWxlX2pzKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9hZCBK UyBmaWxlIChjaGVja19jb25zdHJhaW50LmpzKSBmb3IgdGhpcyBtb2R1bGUu CisgICAgICAgICIiIgorICAgICAgICByZXR1cm4gbWFrZV9yZXNwb25zZSgK KyAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAg ICAiY2hlY2tfY29uc3RyYWludC9qcy9jaGVja19jb25zdHJhaW50LmpzIiwK KyAgICAgICAgICAgICAgICBfPV8KKyAgICAgICAgICAgICksCisgICAgICAg ICAgICAyMDAsIHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtamF2 YXNjcmlwdCd9CisgICAgICAgICkKKworICAgIGRlZiBjaGVja19wcmVjb25k aXRpb24oZik6CisgICAgICAgICIiIgorICAgICAgICBXb3JrcyBhcyBhIGRl Y29yYXRvci4KKyAgICAgICAgQ2hlY2tzIGRhdGFiYXNlIGNvbm5lY3Rpb24g c3RhdHVzLgorICAgICAgICBBdHRhY2ggY29ubmVjdGlvbiBvYmplY3QgYW5k IHRlbXBsYXRlIHBhdGguCisgICAgICAgICIiIgorICAgICAgICBAd3JhcHMo ZikKKyAgICAgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAg ICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAgICAgICBkcml2ZXIgPSBn ZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKQorICAgICAgICAgICAgc2Vs Zi5tYW5hZ2VyID0gZHJpdmVyLmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3Nb J3NpZCddKQorICAgICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2Vy LmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICAgICBz ZWxmLnF0SWRlbnQgPSBkcml2ZXIucXRJZGVudAorCisgICAgICAgICAgICAj IElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8gYnJv d3NlcgorICAgICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25uZWN0ZWQo KToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVp cmVkKAorICAgICAgICAgICAgICAgICAgICBfKCJDb25uZWN0aW9uIHRvIHRo ZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiKQorICAgICAgICAgICAgICAgICkK KworICAgICAgICAgICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KKwor ICAgICAgICAgICAgIyB3ZSB3aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBz cWwgc2NyaXB0cworICAgICAgICAgICAgaWYgdmVyID49IDkwMjAwOgorICAg ICAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICdjaGVja19jb25z dHJhaW50L3NxbC85LjJfcGx1cycKKyAgICAgICAgICAgIGVsaWYgdmVyID49 IDkwMTAwOgorICAgICAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9 ICdjaGVja19jb25zdHJhaW50L3NxbC85LjFfcGx1cycKKworICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdnZXRfcGFyZW50LnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB0aWQ9a3dhcmdzWyd0aWQnXSkKKyAgICAg ICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJy YXkoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJzZXQpCisKKyAgICAgICAgICAgIHNlbGYuc2NoZW1hID0gcnNldFsncm93 cyddWzBdWydzY2hlbWEnXQorICAgICAgICAgICAgc2VsZi50YWJsZSA9IHJz ZXRbJ3Jvd3MnXVswXVsndGFibGUnXQorCisgICAgICAgICAgICByZXR1cm4g ZigqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgcmV0dXJuIHdyYXAKKwor ICAgIGRlZiBlbmRfdHJhbnNhY3Rpb24oc2VsZik6CisgICAgICAgICIiIgor ICAgICAgICAgICAgRW5kIGRhdGFiYXNlIHRyYW5zYWN0aW9uLgorICAgICAg ICBSZXR1cm5zOgorCisgICAgICAgICIiIgorICAgICAgICBTUUwgPSAiRU5E OyIKKyAgICAgICAgc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKwor ICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgbGlzdChzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGNpZD1Ob25lKToKKyAgICAgICAg IiIiCisgICAgICAgIExpc3QgdGhlIENoZWNrIENvbnN0cmFpbnRzLgorCisg ICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ ZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRp ZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAor ICAgICAgICAgICAgdGlkOiBUYWJsZSBJZAorICAgICAgICAgICAgY2lkOiBD aGVjayBJZAorICAgICAgICAiIiIKKyAgICAgICAgdHJ5OgorICAgICAgICAg ICAgcmVzID0gc2VsZi5nZXRfbm9kZV9saXN0KGdpZCwgc2lkLCBkaWQsIHNj aWQsIHRpZCwgY2lkKQorICAgICAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlPXJlcywKKyAgICAg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICAg ICApCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAgICAgICAg ICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c3Ry KGUpKQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBnZXRf bm9kZV9saXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgY2lk PU5vbmUpOgorICAgICAgICAiIiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiBy ZXR1cm5zIGFsbCBjaGVjayBjb25zdHJhaW50cworICAgICAgICBub2RlcyB3 aXRoaW4gdGhhdCBjb2xsZWN0aW9uIGFzIGEgbGlzdC4KKworICAgICAgICBB cmdzOgorICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAg ICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICBkaWQ6IERhdGFiYXNlIElE CisgICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgdGlkOiBU YWJsZSBJRAorICAgICAgICAgIGNpZDogQ2VoY2sgY29uc3RyYWludCBJRAor CisgICAgICAgIFJldHVybnM6CisKKyAgICAgICAgIiIiCisgICAgICAgIFNR TCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLCAncHJvcGVydGllcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB0aWQ9dGlkKQorICAgICAgICBzdGF0dXMsIHJlcyA9IHNl bGYuY29ubi5leGVjdXRlX2RpY3QoU1FMKQorCisgICAgICAgIHJldHVybiBy ZXNbJ3Jvd3MnXQorCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRl ZiBub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQsIGNpZD1O b25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYWxsIHRoZSBD aGVjayBDb25zdHJhaW50cy4KKworICAgICAgICBBcmdzOgorICAgICAgICAg ICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2Vy dmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAg ICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAgIHRpZDogVGFibGUg SWQKKyAgICAgICAgICAgIGNpZDogQ2hlY2sgY29uc3RyYWludCBJZC4KKyAg ICAgICAgIiIiCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlcyA9IHNl bGYuZ2V0X25vZGVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgY2lkKQor ICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAg ICAgICAgICAgICAgICAgZGF0YT1yZXMsCisgICAgICAgICAgICAgICAgICAg IHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICBl eGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBj aGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgY2lkPU5vbmUpOgorICAgICAgICAi IiIKKyAgICAgICAgVGhpcyBmdW5jdGlvbiByZXR1cm5zIGFsbCBldmVudCBj aGVjayBjb25zdHJhaW50IGFzIGEgbGlzdC4KKworICAgICAgICBBcmdzOgor ICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAgICAgc2lk OiBTZXJ2ZXIgSUQKKyAgICAgICAgICBkaWQ6IERhdGFiYXNlIElECisgICAg ICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgdGlkOiBUYWJsZSBJ RAorICAgICAgICAgIGNpZDogQ2hlY2sgY29uc3RyYWludCBJRAorCisgICAg ICAgIFJldHVybnM6CisKKyAgICAgICAgIiIiCisgICAgICAgIHJlcyA9IFtd CisgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdub2Rlcy5zcWwnXSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aWQ9dGlkKQorICAgICAgICBzdGF0dXMsIHJzZXQg PSBzZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKworICAgICAgICBm b3Igcm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIGlmICJjb252 YWxpZGF0ZWQiIGluIHJvdyBhbmQgcm93WyJjb252YWxpZGF0ZWQiXToKKyAg ICAgICAgICAgICAgICBpY29uID0gImljb24tY2hlY2tfY29uc3RyYWludHNf YmFkIgorICAgICAgICAgICAgICAgIHZhbGlkID0gRmFsc2UKKyAgICAgICAg ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgaWNvbiA9ICJpY29uLWNoZWNr X2NvbnN0cmFpbnRzIgorICAgICAgICAgICAgICAgIHZhbGlkID0gVHJ1ZQor ICAgICAgICAgICAgcmVzLmFwcGVuZCgKKyAgICAgICAgICAgICAgICAgICAg c2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJvd3Nlcl9ub2RlKAorICAgICAg ICAgICAgICAgICAgICAgICAgcm93WydvaWQnXSwKKyAgICAgICAgICAgICAg ICAgICAgICAgIHRpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgIHJvd1sn bmFtZSddLAorICAgICAgICAgICAgICAgICAgICAgICAgaWNvbj1pY29uLAor ICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWQ9dmFsaWQKKyAgICAgICAg ICAgICAgICAgICAgKSkKKyAgICAgICAgcmV0dXJuIHJlcworCisgICAgQGNo ZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBwcm9wZXJ0aWVzKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgY2lkKToKKyAgICAgICAgIiIiCisg ICAgICAgIFJldHVybnMgdGhlIENoZWNrIENvbnN0cmFpbnRzIHByb3BlcnR5 LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBH cm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAg ICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVt YSBJZAorICAgICAgICAgICAgdGlkOiBDaGVjayBJZAorICAgICAgICAgICAg Y2lkOiBDaGVjayBDb25zdHJhaW50IElkCisgICAgICAgICIiIgorCisgICAg ICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRpZD10aWQsIGNpZD1jaWQpCisgICAgICAgIHN0YXR1 cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAg IGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxf c2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBkYXRhID0g cmVzWydyb3dzJ11bMF0KKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2Uo CisgICAgICAgICAgICByZXNwb25zZT1kYXRhLAorICAgICAgICAgICAgc3Rh dHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9u CisgICAgZGVmIGNyZWF0ZShzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0 aWQsIGNpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVu Y3Rpb24gd2lsbCBjcmVhdGUgYSBwcmltYXJ5IGtleS4KKworICAgICAgICBB cmdzOgorICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElECisgICAgICAg ICAgc2lkOiBTZXJ2ZXIgSUQKKyAgICAgICAgICBkaWQ6IERhdGFiYXNlIElE CisgICAgICAgICAgc2NpZDogU2NoZW1hIElECisgICAgICAgICAgdGlkOiBU YWJsZSBJRAorICAgICAgICAgIGNpZDogQ2hlY2sgY29uc3RyYWludCBJRAor CisgICAgICAgIFJldHVybnM6CisKKyAgICAgICAgIiIiCisgICAgICAgIHJl cXVpcmVkX2FyZ3MgPSBbJ2NvbnNyYyddCisKKyAgICAgICAgZGF0YSA9IHJl cXVlc3QuZm9ybSBpZiByZXF1ZXN0LmZvcm0gZWxzZSBqc29uLmxvYWRzKHJl cXVlc3QuZGF0YS5kZWNvZGUoKSkKKworICAgICAgICBmb3IgYXJnIGluIHJl cXVpcmVkX2FyZ3M6CisgICAgICAgICAgICBpZiBhcmcgbm90IGluIGRhdGEg b3IgZGF0YVthcmddID09ICcnOgorICAgICAgICAgICAgICAgIHJldHVybiBt YWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAgICAgICAgICAgIHN0YXR1 cz00MDAsCisgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKKyAgICAg ICAgICAgICAgICAgICAgZXJyb3Jtc2c9XygKKyAgICAgICAgICAgICAgICAg ICAgICAgICJDb3VsZG4ndCBmaW5kIHRoZSByZXF1aXJlZCBwYXJhbWV0ZXIg KCVzKS4iICUgYXJnCisgICAgICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICAgICApCisKKyAgICAgICAgZGF0YVsnc2NoZW1hJ10gPSBzZWxmLnNj aGVtYQorICAgICAgICBkYXRhWyd0YWJsZSddID0gc2VsZi50YWJsZQorICAg ICAgICB0cnk6CisgICAgICAgICAgICBpZiAnbmFtZScgbm90IGluIGRhdGEg b3IgZGF0YVsnbmFtZSddID09ICIiOgorICAgICAgICAgICAgICAgIFNRTCA9 ICJCRUdJTjsiCisgICAgICAgICAgICAgICAgIyBTdGFydCB0cmFuc2FjdGlv bi4KKyAgICAgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5l eGVjdXRlX3NjYWxhcihTUUwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0 YXR1czoKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5lbmRfdHJhbnNhY3Rp b24oKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgIyBUaGUg YmVsb3cgU1FMIHdpbGwgZXhlY3V0ZSBDUkVBVEUgRERMIG9ubHkKKyAgICAg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAg ICAiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnY3JlYXRlLnNxbCdd KSwKKyAgICAgICAgICAgICAgICBkYXRhPWRhdGEKKyAgICAgICAgICAgICAg ICApCisKKyAgICAgICAgICAgIHN0YXR1cywgbXNnID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6 CisgICAgICAgICAgICAgICAgc2VsZi5lbmRfdHJhbnNhY3Rpb24oKQorICAg ICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9bXNnKQorCisgICAgICAgICAgICBpZiAnbmFtZScgbm90IGluIGRh dGEgb3IgZGF0YVsnbmFtZSddID09ICIiOgorICAgICAgICAgICAgICAgIHNx bCA9IHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAgICAgIi8i LmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdnZXRfb2lkX3dpdGhfdHJhbnNhY3Rpb24uc3FsJ10s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksCisgICAgICAgICAg ICAgICAgICAgIHRpZD10aWQpCisKKyAgICAgICAgICAgICAgICBzdGF0dXMs IHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3Qoc3FsKQorICAgICAgICAg ICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgICAgIHNl bGYuZW5kX3RyYW5zYWN0aW9uKCkKKyAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAg ICAgICAgICAgICAgICBzZWxmLmVuZF90cmFuc2FjdGlvbigpCisKKyAgICAg ICAgICAgICAgICBkYXRhWyduYW1lJ10gPSByZXNbJ3Jvd3MnXVswXVsnbmFt ZSddCisKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgc3Fs ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3Bh dGgsICdnZXRfb2lkLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgdGlkPXRpZCwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgbmFtZT1kYXRhWyduYW1lJ10pCisgICAgICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0 KHNxbCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAg ICAgICAgICAgICAgICBzZWxmLmVuZF90cmFuc2FjdGlvbigpCisgICAgICAg ICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9cmVzKQorCisgICAgICAgICAgICBpZiAiY29udmFsaWRhdGVkIiBp biByZXNbJ3Jvd3MnXVswXSBhbmQgcmVzWydyb3dzJ11bMF1bImNvbnZhbGlk YXRlZCJdOgorICAgICAgICAgICAgICAgIGljb24gPSAiaWNvbi1jaGVja19j b25zdHJhaW50c19iYWQiCisgICAgICAgICAgICAgICAgdmFsaWQgPSBGYWxz ZQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBpY29uID0g Imljb24tY2hlY2tfY29uc3RyYWludHMiCisgICAgICAgICAgICAgICAgdmFs aWQgPSBUcnVlCisKKyAgICAgICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnZ3JhbnQuc3FsJ10p LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0 YSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25uPXNl bGYuY29ubikKKyAgICAgICAgICAgIHNxbCA9IHNxbC5zdHJpcCgnXG4nKS5z dHJpcCgnICcpCisKKyAgICAgICAgICAgIGlmIHNxbCAhPSAnJzoKKyAgICAg ICAgICAgICAgICBzdGF0dXMsIHJlc3VsdCA9IHNlbGYuY29ubi5leGVjdXRl X3NjYWxhcihzcWwpCisgICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgICAgICAgICAgc2VsZi5lbmRfdHJhbnNhY3Rpb24oKQor ICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vy cm9yKGVycm9ybXNnPXJlc3VsdCkKKworICAgICAgICAgICAgcmV0dXJuIGpz b25pZnkoCisgICAgICAgICAgICAgICAgbm9kZT1zZWxmLmJsdWVwcmludC5n ZW5lcmF0ZV9icm93c2VyX25vZGUoCisgICAgICAgICAgICAgICAgICAgIHJl c1sncm93cyddWzBdWydvaWQnXSwKKyAgICAgICAgICAgICAgICAgICAgdGlk LAorICAgICAgICAgICAgICAgICAgICBkYXRhWyduYW1lJ10sCisgICAgICAg ICAgICAgICAgICAgIGljb249aWNvbiwKKyAgICAgICAgICAgICAgICAgICAg dmFsaWQ9dmFsaWQKKyAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAg ICAgICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6Cisg ICAgICAgICAgICBzZWxmLmVuZF90cmFuc2FjdGlvbigpCisgICAgICAgICAg ICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAg IHN0YXR1cz00MDAsCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0wLAorICAg ICAgICAgICAgICAgIGVycm9ybXNnPWUKKyAgICAgICAgICAgICkKKworICAg IEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgY2lkKToKKyAgICAgICAgIiIiCisg ICAgICAgIERyb3BzIHRoZSBDaGVjayBDb25zdHJhaW50IG9iamVjdC4KKwor ICAgICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAg SWQKKyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBk aWQ6IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQK KyAgICAgICAgICAgIHRpZDogQ2hlY2sgSWQKKyAgICAgICAgICAgIGNpZDog Q2hlY2sgQ29uc3RyYWludCBJZAorICAgICAgICAiIiIKKyAgICAgICAgdHJ5 OgorICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2lu KFtzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9dGlkLCBjaWQ9 Y2lkKQorICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhl Y3V0ZV9kaWN0KFNRTCkKKworICAgICAgICAgICAgaWYgbm90IHN0YXR1czoK KyAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgZGF0YSA9IHJlc1sncm93 cyddWzBdCisKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGVsZXRlLnNxbCddKSwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEp CisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRl X3NjYWxhcihTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9cmVzKQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jl c3BvbnNlKAorICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAg ICAgICAgICBpbmZvPV8oIkNoZWNrIENvbnN0cmFpbnQgZHJvcHBlZCIpLAor ICAgICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAgICAn aWQnOiB0aWQsCisgICAgICAgICAgICAgICAgICAgICdzY2lkJzogc2NpZCwK KyAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAg ICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2Rp ZCc6IGRpZAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICkKKwor ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICBy ZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkK KworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgdXBkYXRlKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgY2lkKToKKyAgICAgICAg IiIiCisgICAgICAgIFVwZGF0ZXMgdGhlIENoZWNrIENvbnN0cmFpbnQgb2Jq ZWN0LgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZl ciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAg ICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNj aGVtYSBJZAorICAgICAgICAgICAgdGlkOiBUYWJsZSBJZAorICAgICAgICAg ICAgY2lkOiBDaGVjayBDb25zdHJhaW50IElkCisgICAgICAgICIiIgorICAg ICAgICBkYXRhID0gcmVxdWVzdC5mb3JtIGlmIHJlcXVlc3QuZm9ybSBlbHNl IGpzb24ubG9hZHMocmVxdWVzdC5kYXRhLmRlY29kZSgpKQorCisgICAgICAg IHRyeToKKyAgICAgICAgICAgIGRhdGFbJ3NjaGVtYSddID0gc2VsZi5zY2hl bWEKKyAgICAgICAgICAgIGRhdGFbJ3RhYmxlJ10gPSBzZWxmLnRhYmxlCisK KyAgICAgICAgICAgIFNRTCA9IHNlbGYuZ2V0X3NxbChnaWQsIHNpZCwgZGF0 YSwgc2NpZCwgdGlkLCBjaWQpCisgICAgICAgICAgICBTUUwgPSBTUUwuc3Ry aXAoJ1xuJykuc3RyaXAoJyAnKQorICAgICAgICAgICAgaWYgU1FMICE9ICIi OgorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAgICAgICAgIHNx bCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLCAnZ2V0X25hbWUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjaWQ9Y2lkKQorICAgICAgICAgICAgICAgIHN0 YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChzcWwpCisgICAg ICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMp CisKKyAgICAgICAgICAgICAgICBpZiAiY29udmFsaWRhdGVkIiBpbiByZXNb J3Jvd3MnXVswXSBhbmQgcmVzWydyb3dzJ11bMF1bImNvbnZhbGlkYXRlZCJd OgorICAgICAgICAgICAgICAgICAgICBpY29uID0gJ2ljb24tY2hlY2tfY29u c3RyYWludHNfKWJhZCcKKyAgICAgICAgICAgICAgICAgICAgdmFsaWQgPSBG YWxzZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg ICAgIGljb24gPSAnaWNvbi1jaGVja19jb25zdHJhaW50cycKKyAgICAgICAg ICAgICAgICAgICAgdmFsaWQgPSBUcnVlCisKKyAgICAgICAgICAgICAgICBy ZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAg ICBzdWNjZXNzPTEsCisgICAgICAgICAgICAgICAgICAgIGluZm89IkNoZWNr IENvbnN0cmFpbnQgdXBkYXRlZCIsCisgICAgICAgICAgICAgICAgICAgIGRh dGE9eworICAgICAgICAgICAgICAgICAgICAgICAgJ2lkJzogY2lkLAorICAg ICAgICAgICAgICAgICAgICAgICAgJ3RpZCc6IHRpZCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICdzY2lkJzogc2NpZCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICdzaWQnOiBzaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAn Z2lkJzogZ2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRp ZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdpY29uJzogaWNvbiwKKyAg ICAgICAgICAgICAgICAgICAgICAgICd2YWwgICAgaWQnOiB2YWxpZAorICAg ICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgKQorICAgICAg ICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29u X3Jlc3BvbnNlKAorICAgICAgICAgICAgICAgICAgICBzdWNjZXNzPTEsCisg ICAgICAgICAgICAgICAgICAgIGluZm89Ik5vdGhpbmcgdG8gdXBkYXRlIiwK KyAgICAgICAgICAgICAgICAgICAgZGF0YT17CisgICAgICAgICAgICAgICAg ICAgICAgICAnaWQnOiBjaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAn dGlkJzogdGlkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NjaWQnOiBz Y2lkLAorICAgICAgICAgICAgICAgICAgICAgICAgJ3NpZCc6IHNpZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICdnaWQnOiBnaWQsCisgICAgICAgICAg ICAgICAgICAgICAgICAnZGlkJzogZGlkCisgICAgICAgICAgICAgICAgICAg IH0KKyAgICAgICAgICAgICAgICApCisKKyAgICAgICAgZXhjZXB0IEV4Y2Vw dGlvbiBhcyBlOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZl cl9lcnJvcihlcnJvcm1zZz1zdHIoZSkpCisKKyAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCisgICAgZGVmIHNxbChzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk LCB0aWQsIGNpZD1Ob25lKToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVy bnMgdGhlIFNRTCBmb3IgdGhlIENoZWNrIENvbnN0cmFpbnQgb2JqZWN0Lgor CisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91 cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAg IGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJ ZAorICAgICAgICAgICAgdGlkOiBUYWJsZSBJZAorICAgICAgICAgICAgY2lk OiBDaGVjayBDb25zdHJhaW50IElkCisgICAgICAgICIiIgorCisgICAgICAg IFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHRpZD10aWQsIGNpZD1jaWQpCisgICAgICAgIHN0YXR1cywg cmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2Vy dmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICBkYXRhID0gcmVz Wydyb3dzJ11bMF0KKyAgICAgICAgZGF0YVsnc2NoZW1hJ10gPSBzZWxmLnNj aGVtYQorICAgICAgICBkYXRhWyd0YWJsZSddID0gc2VsZi50YWJsZQorCisg ICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICdjcmVhdGUuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YT1kYXRhKQorICAgICAgICBTUUwgKz0gIlxuIgor ICAgICAgICBTUUwgKz0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAg ICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICdncmFudC5zcWwn XSksCisgICAgICAgICAgICAgICAgZGF0YT1kYXRhKQorCisgICAgICAgIHNx bF9oZWFkZXIgPSAiLS0gQ29uc3RyYWludDogezB9XG5cbi0tICIuZm9ybWF0 KGRhdGFbJ25hbWUnXSkKKworICAgICAgICBzcWxfaGVhZGVyICs9IHJlbmRl cl90ZW1wbGF0ZSgKKyAgICAgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnZGVsZXRlLnNxbCddKSwKKyAgICAgICAgICAgICAg ICBkYXRhPWRhdGEpCisgICAgICAgIHNxbF9oZWFkZXIgKz0gIlxuIgorCisg ICAgICAgIFNRTCA9IHNxbF9oZWFkZXIgKyBTUUwKKworICAgICAgICByZXR1 cm4gYWpheF9yZXNwb25zZShyZXNwb25zZT1TUUwpCisKKyAgICBAY2hlY2tf cHJlY29uZGl0aW9uCisgICAgZGVmIG1zcWwoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCwgdGlkLCBjaWQ9Tm9uZSk6CisgICAgICAgICIiIgorICAgICAg ICBSZXR1cm5zIHRoZSBtb2RpZmllZCBTUUwuCisKKyAgICAgICAgQXJnczoK KyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAg ICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJ ZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICB0 aWQ6IFRhYmxlIElkCisgICAgICAgICAgICBjaWQ6IENoZWNrIENvbnN0cmFp bnQgSWQKKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgQ2hlY2sg Q29uc3RyYWludCBvYmplY3QgaW4ganNvbiBmb3JtYXQuCisgICAgICAgICIi IgorICAgICAgICBkYXRhID0ge30KKyAgICAgICAgZm9yIGssIHYgaW4gcmVx dWVzdC5hcmdzLml0ZW1zKCk6CisgICAgICAgICAgICB0cnk6CisgICAgICAg ICAgICAgICAgZGF0YVtrXSA9IGpzb24ubG9hZHModikKKyAgICAgICAgICAg IGV4Y2VwdCBWYWx1ZUVycm9yOgorICAgICAgICAgICAgICAgIGRhdGFba10g PSB2CisKKyAgICAgICAgZGF0YVsnc2NoZW1hJ10gPSBzZWxmLnNjaGVtYQor ICAgICAgICBkYXRhWyd0YWJsZSddID0gc2VsZi50YWJsZQorICAgICAgICB0 cnk6CisgICAgICAgICAgICBzcWwgPSBzZWxmLmdldF9zcWwoZ2lkLCBzaWQs IGRhdGEsIHNjaWQsIHRpZCwgY2lkKQorICAgICAgICAgICAgc3FsID0gc3Fs LnN0cmlwKCdcbicpLnN0cmlwKCcgJykKKworICAgICAgICAgICAgcmV0dXJu IG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAgICAgZGF0 YT1zcWwsCisgICAgICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAgICAg ICAgICAgICAgICAgICAgKQorCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24g YXMgZToKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJy b3IoZXJyb3Jtc2c9c3RyKGUpKQorCisgICAgZGVmIGdldF9zcWwoc2VsZiwg Z2lkLCBzaWQsIGRhdGEsIHNjaWQsIHRpZCwgY2lkPU5vbmUpOgorICAgICAg ICAiIiIKKyAgICAgICAgR2VuZXJhdGVzIHRoZSBTUUwgc3RhdGVtZW50cyB0 byBjcmVhdGUvdXBkYXRlIHRoZSBDaGVjayBDb25zdHJhaW50LgorCisgICAg ICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQK KyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBkaWQ6 IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAg ICAgICAgICAgIHRpZDogVGFibGUgSWQKKyAgICAgICAgICAgIGNpZDogQ2hl Y2sgQ29uc3RyYWludCBJZAorICAgICAgICAiIiIKKyAgICAgICAgdHJ5Ogor ICAgICAgICAgICAgaWYgY2lkIGlzIG5vdCBOb25lOgorICAgICAgICAgICAg ICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1w bGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aWQ9dGlkLCBjaWQ9Y2lk KQorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4 ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgICAgICAgICBpZiBub3Qgc3Rh dHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAg ICAgICBvbGRfZGF0YSA9IHJlc1sncm93cyddWzBdCisKKyAgICAgICAgICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICAgICAgICAg ICAgICIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgsICd1cGRhdGUuc3Fs J10pLAorICAgICAgICAgICAgICAgICAgICBkYXRhPWRhdGEsIG9fZGF0YT1v bGRfZGF0YSwgY29ubj1zZWxmLmNvbm4KKyAgICAgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICByZXF1aXJl ZF9hcmdzID0gWydjb25zcmMnXQorCisgICAgICAgICAgICAgICAgZm9yIGFy ZyBpbiByZXF1aXJlZF9hcmdzOgorICAgICAgICAgICAgICAgICAgICBpZiBh cmcgbm90IGluIGRhdGE6CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1 cm4gXygnLS0gZGVmaW5pdGlvbiBpbmNvbXBsZXRlJykKKyAgICAgICAgICAg ICAgICAgICAgZWxpZiBpc2luc3RhbmNlKGRhdGFbYXJnXSwgbGlzdCkgYW5k IGxlbihkYXRhW2FyZ10pIDwgMToKKyAgICAgICAgICAgICAgICAgICAgICAg IHJldHVybiBfKCctLSBkZWZpbml0aW9uIGluY29tcGxldGUnKQorCisgICAg ICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAnY3JlYXRlLnNxbCddKSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhKQor ICAgICAgICAgICAgICAgIFNRTCArPSAiXG4iCisgICAgICAgICAgICAgICAg U1FMICs9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAnZ3JhbnQuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGF0YT1kYXRhKQorCisgICAgICAgICAgICBy ZXR1cm4gU1FMCisgICAgICAgIGV4Y2VwdCBFeGNlcHRpb24gYXMgZToKKyAg ICAgICAgICAgIHJldHVybiBGYWxzZSwgaW50ZXJuYWxfc2VydmVyX2Vycm9y KGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24K KyAgICBkZWYgZGVwZW5kZW50cyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lk LCB0aWQsIGNpZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlzIGZ1bmN0 aW9uIGdldCB0aGUgZGVwZW5kZW50cyBhbmQgcmV0dXJuIGFqYXggcmVzcG9u c2UKKyAgICAgICAgZm9yIHRoZSBDaGVjayBDb25zdHJhaW50IG5vZGUuCisK KyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogIFNlcnZlciBHcm91 cCBJZAorICAgICAgICAgICAgc2lkOiAgU2VydmVyIElkCisgICAgICAgICAg ICBkaWQ6ICBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1h IElkCisgICAgICAgICAgICB0aWQ6IFRhYmxlIElkCisgICAgICAgICAgICBj aWQ6IENoZWNrIENvbnN0cmFpbnQgSWQKKyAgICAgICAgIiIiCisgICAgICAg IGRlcGVuZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5kZW50cyhzZWxm LmNvbm4sIGNpZCkKKyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisg ICAgICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50c19yZXN1bHQsCisg ICAgICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICAgICAgICAgICkK KworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW5j aWVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIHRpZCwgY2lkKToKKyAg ICAgICAgIiIiCisgICAgICAgIFRoaXMgZnVuY3Rpb24gZ2V0IHRoZSBkZXBl bmRlbmNpZXMgYW5kIHJldHVybiBhamF4IHJlc3BvbnNlCisgICAgICAgIGZv ciB0aGUgQ2hlY2sgQ29uc3RyYWludCBub2RlLgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAgICAg ICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2Ug SWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAgICAg dGlkOiBUYWJsZSBJZAorICAgICAgICAgICAgY2lkOiBDaGVjayBDb25zdHJh aW50IElkCisgICAgICAgICIiIgorICAgICAgICBkZXBlbmRlbmNpZXNfcmVz dWx0ID0gc2VsZi5nZXRfZGVwZW5kZW5jaWVzKHNlbGYuY29ubiwgY2lkKQor ICAgICAgICByZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgICAg ICByZXNwb25zZT1kZXBlbmRlbmNpZXNfcmVzdWx0LAorICAgICAgICAgICAg ICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICAgICApCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHZhbGlkYXRlX2NoZWNrX2NvbnN0 cmFpbnQoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgdGlkLCBjaWQpOgor ICAgICAgICAiIiIKKyAgICAgICAgVmFsaWRhdGUgY2hlY2sgY29uc3RyYWlu dC4KKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdy b3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAg ICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1h IElkCisgICAgICAgICAgICB0aWQ6IFRhYmxlIElkCisgICAgICAgICAgICBj aWQ6IENoZWNrIENvbnN0cmFpbnQgSWQKKworICAgICAgICBSZXR1cm5zOgor CisgICAgICAgICIiIgorICAgICAgICBkYXRhID0ge30KKyAgICAgICAgdHJ5 OgorICAgICAgICAgICAgZGF0YVsnc2NoZW1hJ10gPSBzZWxmLnNjaGVtYQor ICAgICAgICAgICAgZGF0YVsndGFibGUnXSA9IHNlbGYudGFibGUKKyAgICAg ICAgICAgIHNxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50 ZW1wbGF0ZV9wYXRoLCAnZ2V0X25hbWUuc3FsJ10pLCBjaWQ9Y2lkKQorICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2Fs YXIoc3FsKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgZGF0YVsnbmFtZSddID0gcmVzCisgICAg ICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYu dGVtcGxhdGVfcGF0aCwgJ3ZhbGlkYXRlLnNxbCddKSwgZGF0YT1kYXRhKQor ICAgICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9k aWN0KHNxbCkKKyAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAg ICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1z Zz1yZXMpCisKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9u c2UoCisgICAgICAgICAgICAgICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAg ICAgIGluZm89XygiQ2hlY2sgY29uc3RyYWludCB1cGRhdGVkLiIpLAorICAg ICAgICAgICAgICAgIGRhdGE9eworICAgICAgICAgICAgICAgICAgICAnaWQn OiBjaWQsCisgICAgICAgICAgICAgICAgICAgICd0aWQnOiB0aWQsCisgICAg ICAgICAgICAgICAgICAgICdzY2lkJzogc2NpZCwKKyAgICAgICAgICAgICAg ICAgICAgJ2RpZCc6IGRpZAorICAgICAgICAgICAgICAgIH0KKyAgICAgICAg ICAgICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXN0cihlKSkKKworY29uc3RyYWludCA9IENvbnN0cmFpbnRSZWdpc3RyeSgK KyAgICAnY2hlY2tfY29uc3RyYWludCcsIENoZWNrQ29uc3RyYWludE1vZHVs ZSwgQ2hlY2tDb25zdHJhaW50VmlldworICAgICkKK0NoZWNrQ29uc3RyYWlu dFZpZXcucmVnaXN0ZXJfbm9kZV92aWV3KGJsdWVwcmludCkKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19j b25zdHJhaW50L3N0YXRpYy9pbWcvY2hlY2stY29uc3RyYWludHMtYmFkLnBu ZyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19j b25zdHJhaW50L3N0YXRpYy9pbWcvY2hlY2stY29uc3RyYWludHMtYmFkLnBu ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zMmEwNDViOGZhZmRjMDg2NDBk NTNiMmE4NmIxZGNhYmNiMGZlMGZkCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJh bCA1NzkKemNtVi1KMD0pZitQKTxoOzNLfExrMDAwZTFOSkxUcTAwMG1HMDAw bU8we3tSM0NAbHxEMDAwMDFiNWNoXzBJdHApCno9PlB4JEFXJSRITVIxWjkj USpAUkVIbWRIQW08PDs9cGBsVERsNiRMRTE1JHxuTTZ5eEozIzYmRn1eKVF4 PHAzbgp6SCNoNHpJSylPdSM3OWZUTUAjSEpLa1koOD9MJFFFTGBDakpNZWFz TT9uZyg7UUI+fG9OYlgyVT9uK0FVT0gxIWUKek96JXhpP0BkbmNQRVhLUlM/ XkN6I2FtdFFRQm0reFF0KHEjQEthUnFSODtVKVJxPDk8QG1FKllWcShgflYp MHZCCnorR1M8KVZQVyVQViU9JEphZyFKSFhsVjZxWlNgKCRfSHVIM3BkPEVu Y0pfQzdmMUBYV3FiR3U+RHU9OHVocGpKKQp6dk40YWdIPGkzVXJNWWdXeUs8 ZXlOMVZxK3AydGJBIUc1QzNQTyFtJHF8SHZWI0QkfkpPc3Y7ZnRrX3F2LUNl UVgKelQqY0MlJEozOz48Nl9MJHQ8S3I4KSF3fHJAbz5jUGFtNFgqK35taWBe S3tHbGN8eGg8TmROITwwZCFKTVF2ZzhiCnoqayU5IzAwQ2w0TT8/VUsxc3pC TDAwMFNhTkxoMEwwMUZjVTAxRmNWMEdnWl8wMDAwN2JWKkdgMmlwZjM0PFJP Zwp6KHA3MnowMDU2a0xfdCYtKTF7MlozY15xVDFtREVvZHk2SVp1Q1cmczFW IWBeNH0kZ29lPygxOEBiMkRiKmoqdzEKeiU0TShwOyZadz85WmFLQXhvKng7 Q09YfTw4ZnpqcUtSdl4ya0Yxc3B5bVlITWpFMm03SGx8YX5lbUNOd0c4KGk/ Cno4SSNgYChraUJyRWJofShRbjhUTDIrJH1iM0huXjdwYEs2UiNfNnpRMiQ/ dXg7bFhCWUI+aGtOQEMlZz80dlZCTQpSJGJiTDwwMDJvdlBESExrVjFtaW4w T1NBdwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFp bnQvc3RhdGljL2ltZy9jaGVjay1jb25zdHJhaW50cy5wbmcgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC9z dGF0aWMvaW1nL2NoZWNrLWNvbnN0cmFpbnRzLnBuZwpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwLi45ZDFkMmEwNjFjNzk0ODE2OGQ3YjFjMjQ3NGQ3NjliMzE3 MDlmMWNmCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCA0MDYKemNtZUFTQE4/ KG9sSHlgdVZCcSFpYTB2cF4wd0IhNjM/d3lsYEdiS31YQEYwTkUwOHtWWTJu aEhjXmVNYVUlamBkCnphSSQjK0h1RUtDe3BLRVpLWW4+aCgrYUlNSF5Nakdq Y3MzfWY5Q3F5dCZmdng3QVQqKXh2XmBMO2hme0hpX2lQNAp6eGdLJSZWP3E2 NV80Yyo7OH1HJTtKTU1ZPFNMTV9fX000Qmk5e0VeITxZVXBYJm4xZ2FgN1Bn RndFa2RTISgjUDwKek5uJkBOOU9xaUsoaSYoblZAWiUtRm9WT2g4KS1sZVhN c20jRl84OEVXNER2cGMwZmppcjtCNVYjTzM2SzFzbiFPCnpoUlZmfTVqU3NH UEg/Zjx4dWRjfHZCb1k8JjVjYj11VEdCOXYxODdKNElJK2l0NT9qaG44RntU c0NaSVdSYWQkRAp6ZzEqSzlXJWN1Mk5zRChoRWZWVCMqd20jcFl3O0QwNCsw RSh1UUU/c2BaNipaWG9xVHZZZVkjKFZvOW8xYSMxUmYKelZsWGw9R3wpOVAo bHN5KUYqMnwrRn01LT4oS2F4KEdCQnsxc1Zhd31BdlpySUdwIVAkIU4zeCUw aUBjPnp6bXx7ClQpYiE5YktuKUNAdTZ7MS1vRCFNPD00T15rCgpsaXRlcmFs IDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZW1wbGF0ZXMv Y2hlY2tfY29uc3RyYWludC9jc3MvY2hlY2tfY29uc3RyYWludC5jc3MgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3Ry YWludC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9jc3MvY2hlY2tfY29u c3RyYWludC5jc3MKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMDY5MTg2OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3RlbXBsYXRl cy9jaGVja19jb25zdHJhaW50L2Nzcy9jaGVja19jb25zdHJhaW50LmNzcwpA QCAtMCwwICsxLDE1IEBACisuaWNvbi1jaGVja19iYWQsIC5pY29uLWNoZWNr X2NvbnN0cmFpbnRzX2JhZCB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgn e3sgdXJsX2ZvcignTk9ERS0lcy5zdGF0aWMnICUgbm9kZV90eXBlLCBmaWxl bmFtZT0naW1nL2NoZWNrLWNvbnN0cmFpbnRzLWJhZC5wbmcnICl9fScpICFp bXBvcnRhbnQ7CisgIGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7Cisg IGFsaWduLWNvbnRlbnQ6IGNlbnRlcjsKKyAgdmVydGljYWwtYWxpZ246IG1p ZGRsZTsKKyAgaGVpZ2h0OiAxLjNlbTsKK30KKworLmljb24tY2hlY2ssIC5p Y29uLWNoZWNrX2NvbnN0cmFpbnRzIHsKKyAgYmFja2dyb3VuZC1pbWFnZTog dXJsKCd7eyB1cmxfZm9yKCdOT0RFLSVzLnN0YXRpYycgJSBub2RlX3R5cGUs IGZpbGVuYW1lPSdpbWcvY2hlY2stY29uc3RyYWludHMucG5nJyApfX0nKSAh aW1wb3J0YW50OworICBiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Owor ICBhbGlnbi1jb250ZW50OiBjZW50ZXI7CisgIHZlcnRpY2FsLWFsaWduOiBt aWRkbGU7CisgIGhlaWdodDogMS4zZW07Cit9ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNr X2NvbnN0cmFpbnQvanMvY2hlY2tfY29uc3RyYWludC5qcyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3Rl bXBsYXRlcy9jaGVja19jb25zdHJhaW50L2pzL2NoZWNrX2NvbnN0cmFpbnQu anMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzUyOTAy NAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9j b25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3RlbXBsYXRlcy9jaGVja19j b25zdHJhaW50L2pzL2NoZWNrX2NvbnN0cmFpbnQuanMKQEAgLTAsMCArMSwx OTYgQEAKKy8vIENoZWNrIENvbnN0cmFpbnQgTW9kdWxlOiBOb2RlCitkZWZp bmUoCisgICAgICAgIFsnanF1ZXJ5JywgJ3VuZGVyc2NvcmUnLCAndW5kZXJz Y29yZS5zdHJpbmcnLCAncGdhZG1pbicsICdwZ2FkbWluLmJyb3dzZXInLCAn YWxlcnRpZnknLCAncGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24nXSwKK2Z1 bmN0aW9uKCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgQWxlcnRpZnkp IHsKKworICAvLyBDaGVjayBDb25zdHJhaW50IE5vZGUKKyAgaWYgKCFwZ0Jy b3dzZXIuTm9kZXNbJ2NoZWNrX2NvbnN0cmFpbnRzJ10pIHsKKyAgICBwZ0Fk bWluLkJyb3dzZXIuTm9kZXNbJ2NoZWNrX2NvbnN0cmFpbnRzJ10gPSBwZ0Jy b3dzZXIuTm9kZS5leHRlbmQoeworICAgICAgdHlwZTogJ2NoZWNrX2NvbnN0 cmFpbnRzJywKKyAgICAgIGxhYmVsOiAne3sgXygnQ2hlY2snKSB9fScsCisg ICAgICBjb2xsZWN0aW9uX3R5cGU6ICdjb2xsLWNvbnN0cmFpbnRzJywKKyAg ICAgIHNxbEFsdGVySGVscDogJ2RkbC1hbHRlci5odG1sJywKKyAgICAgIHNx bENyZWF0ZUhlbHA6ICdkZGwtY29uc3RyYWludHMuaHRtbCcsCisgICAgICBo YXNTUUw6IHRydWUsCisgICAgICBoYXNEZXBlbmRzOiB0cnVlLAorICAgICAg cGFyZW50X3R5cGU6IFsndGFibGUnXSwKKyAgICAgIEluaXQ6IGZ1bmN0aW9u KCkgeworICAgICAgICAvLyBBdm9pZCBtdWxpdHBsZSByZWdpc3RyYXRpb24g b2YgbWVudXMKKyAgICAgICAgaWYgKHRoaXMuaW5pdGlhbGl6ZWQpCisgICAg ICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5pbml0aWFsaXplZCA9 IHRydWU7CisKKyAgICAgICAgcGdCcm93c2VyLmFkZF9tZW51cyhbeworICAg ICAgICAgIG5hbWU6ICdjcmVhdGVfY2hlY2tfY29uc3RyYWludHNfb25fY29s bCcsIG5vZGU6ICdjb2xsLWNvbnN0cmFpbnRzJywgbW9kdWxlOiB0aGlzLAor ICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2NvbnRleHQnXSwgY2Fs bGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAgICAgICAgICBjYXRl Z29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA1LCBsYWJlbDogJ3t7IF8oJ0No ZWNrLi4uJykgfX0nLAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNv bi1jaGVja19jb25zdHJhaW50cycsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUn LCBjaGVjazogdHJ1ZX0sCisgICAgICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRl JworICAgICAgICB9LHsKKyAgICAgICAgICBuYW1lOiAndmFsaWRhdGVfY2hl Y2tfY29uc3RyYWludCcsIG5vZGU6ICdjaGVja19jb25zdHJhaW50cycsIG1v ZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdj b250ZXh0J10sIGNhbGxiYWNrOiAndmFsaWRhdGVfY2hlY2tfY29uc3RyYWlu dCcsCisgICAgICAgICAgY2F0ZWdvcnk6ICd2YWxpZGF0ZScsIHByaW9yaXR5 OiA0LCBsYWJlbDogJ3t7IF8oJ1ZhbGlkYXRlIGNoZWNrIGNvbnN0cmFpbnQn KSB9fScsCisgICAgICAgICAgaWNvbjogJ2ZhIGZhLWxpbmsnLCBlbmFibGUg OiAnaXNfbm90X3ZhbGlkJywgZGF0YToge2FjdGlvbjogJ2VkaXQnLCBjaGVj azogdHJ1ZX0KKyAgICAgICAgfQorICAgICAgICBdKTsKKworICAgICAgfSwK KyAgICAgIGlzX25vdF92YWxpZDogZnVuY3Rpb24oaXRlbURhdGEsIGl0ZW0s IGRhdGEpIHsKKyAgICAgICAgaWYgKHRoaXMuY2FuQ3JlYXRlKGl0ZW1EYXRh LCBpdGVtLCBkYXRhKSkgeworICAgICAgICAgIHJldHVybiAoaXRlbURhdGEg JiYgIWl0ZW1EYXRhLnZhbGlkKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAg ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgIH0sCisgICAg ICBjYWxsYmFja3M6IHsKKyAgICAgICAgdmFsaWRhdGVfY2hlY2tfY29uc3Ry YWludDogZnVuY3Rpb24oYXJncykgeworICAgICAgICAgIHZhciBpbnB1dCA9 IGFyZ3MgfHwge307CisgICAgICAgICAgb2JqID0gdGhpcywKKyAgICAgICAg ICB0ID0gcGdCcm93c2VyLnRyZWUsCisgICAgICAgICAgaSA9IGlucHV0Lml0 ZW0gfHwgdC5zZWxlY3RlZCgpLAorICAgICAgICAgIGQgPSBpICYmIGkubGVu Z3RoID09IDEgPyB0Lml0ZW1EYXRhKGkpIDogdW5kZWZpbmVkOworCisgICAg ICAgICAgaWYgKCFkKSB7CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cisg ICAgICAgICAgfQorICAgICAgICAgIHZhciBkYXRhID0gZDsKKyAgICAgICAg ICAkLmFqYXgoeworICAgICAgICAgICAgdXJsOiBvYmouZ2VuZXJhdGVfdXJs KGksICd2YWxpZGF0ZScsIGQsIHRydWUpLAorICAgICAgICAgICAgdHlwZTon R0VUJywKKyAgICAgICAgICAgIHN1Y2Nlc3M6IGZ1bmN0aW9uKHJlcykgewor ICAgICAgICAgICAgICBpZiAocmVzLnN1Y2Nlc3MgPT0gMSkgeworICAgICAg ICAgICAgICAgIEFsZXJ0aWZ5LnN1Y2Nlc3MoInt7IF8oJyIgKyByZXMuaW5m byArICInKSB9fSIpOworICAgICAgICAgICAgICAgIHQucmVtb3ZlSWNvbihp KTsKKyAgICAgICAgICAgICAgICBkYXRhLnZhbGlkID0gdHJ1ZTsKKyAgICAg ICAgICAgICAgICBkYXRhLmljb24gPSAnaWNvbi1jaGVja19jb25zdHJhaW50 cyc7CisgICAgICAgICAgICAgICAgdC5hZGRJY29uKGksIHtpY29uOiBkYXRh Lmljb259KTsKKyAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9u KCkge3QuZGVzZWxlY3QoaSk7fSwgMTApOworICAgICAgICAgICAgICAgIHNl dFRpbWVvdXQoZnVuY3Rpb24oKSB7dC5zZWxlY3QoaSk7fSwgMTAwKTsKKyAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGVy cm9yOiBmdW5jdGlvbih4aHIsIHN0YXR1cywgZXJyb3IpIHsKKyAgICAgICAg ICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICB2YXIgZXJyID0gJC5wYXJz ZUpTT04oeGhyLnJlc3BvbnNlVGV4dCk7CisgICAgICAgICAgICAgICAgaWYg KGVyci5zdWNjZXNzID09IDApIHsKKyAgICAgICAgICAgICAgICAgIG1zZyA9 IFMoJ3t7IF8oJyArIGVyci5lcnJvcm1zZyArICcpfX0nKS52YWx1ZSgpOwor ICAgICAgICAgICAgICAgICAgQWxlcnRpZnkuZXJyb3IoInt7IF8oJyIgKyBl cnIuZXJyb3Jtc2cgKyAiJykgfX0iKTsKKyAgICAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHt9CisgICAgICAgICAgICAgIHQu dW5sb2FkKGkpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgfSk7CisK KyAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIH0KKyAgICAgIH0s CisgICAgICBjYW5Ecm9wOiBwZ0Jyb3dzZXIuTm9kZXNbJ3NjaGVtYSddLmNh bkNoaWxkRHJvcCwKKyAgICAgIG1vZGVsOiBwZ0FkbWluLkJyb3dzZXIuTm9k ZS5Nb2RlbC5leHRlbmQoeworICAgICAgICBkZWZhdWx0czogeworICAgICAg ICAgIG5hbWU6IHVuZGVmaW5lZCwKKyAgICAgICAgICBvaWQ6IHVuZGVmaW5l ZCwKKyAgICAgICAgICBkZXNjcmlwdGlvbjogdW5kZWZpbmVkLAorICAgICAg ICAgIGNvbnNyYzogdW5kZWZpbmVkLAorICAgICAgICAgIGNvbm5vaW5oZXJp dDogdW5kZWZpbmVkLAorICAgICAgICAgIGNvbnZhbGlkYXRlZDogdW5kZWZp bmVkCisgICAgICAgIH0sCisgICAgICAgIC8vIENoZWNrIENvbnN0cmFpbnQg U2NoZW1hCisgICAgICAgIHNjaGVtYTogW3sKKyAgICAgICAgICBpZDogJ25h bWUnLCBsYWJlbDogJ3t7IF8oJ05hbWUnKSB9fScsIHR5cGU6J3RleHQnLCBj ZWxsOidzdHJpbmcnLAorICAgICAgICAgIGRpc2FibGVkOiAnaXNEaXNhYmxl ZCcKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdvaWQnLCBsYWJlbDon e3sgXygnT0lEJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAgICAgICB0 eXBlOiAndGV4dCcgLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXQorICAgICAgICB9 LHsKKyAgICAgICAgICBpZDogJ2NvbW1lbnQnLCBsYWJlbDogJ3t7IF8oJ0Nv bW1lbnQnKSB9fScsIHR5cGU6ICdtdWx0aWxpbmUnLCBjZWxsOgorICAgICAg ICAgICdzdHJpbmcnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywg J2VkaXQnXSwKKyAgICAgICAgICBkZXBzOlsnbmFtZSddLCBkaXNhYmxlZDpm dW5jdGlvbihtKSB7CisgICAgICAgICAgICB2YXIgbmFtZSA9IG0uZ2V0KCdu YW1lJyk7CisgICAgICAgICAgICBpZiAoIShuYW1lICYmIG5hbWUgIT0gJycp KSB7CisgICAgICAgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKXsKKyAg ICAgICAgICAgICAgICBtLnNldCgnY29tbWVudCcsIG51bGwpOworICAgICAg ICAgICAgICB9LDEwKTsKKyAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICByZXR1cm4gZmFs c2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorICAgICAgICB9LHsK KyAgICAgICAgICBpZDogJ2NvbnNyYycsIGxhYmVsOiAne3sgXygnQ2hlY2sn KSB9fScsIHR5cGU6ICdtdWx0aWxpbmUnLCBjZWxsOgorICAgICAgICAgICdz dHJpbmcnLCBncm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsIG1vZGU6 IFsncHJvcGVydGllcycsCisgICAgICAgICAgJ2NyZWF0ZScsICdlZGl0J10s IGRpc2FibGVkOiBmdW5jdGlvbihtKSB7IHJldHVybiAhbS5pc05ldygpOyB9 CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnY29ubm9pbmhlcml0Jywg bGFiZWw6ICd7eyBfKCdObyBJbmhlcml0JykgfX0nLCB0eXBlOgorICAgICAg ICAgICdzd2l0Y2gnLCBjZWxsOiAnYm9vbGVhbicsIGdyb3VwOiAne3sgXygn RGVmaW5pdGlvbicpIH19JywgbW9kZToKKyAgICAgICAgICBbJ3Byb3BlcnRp ZXMnLCAnY3JlYXRlJywgJ2VkaXQnXSwgbWluX3ZlcnNpb246IDkwMjAwLAor ICAgICAgICAgIGRpc2FibGVkOiBmdW5jdGlvbihtKSB7CisgICAgICAgICAg ICByZXR1cm4gIW0uaXNOZXcoKTsKKyAgICAgICAgICB9CisgICAgICAgIH0s eworICAgICAgICAgIGlkOiAnY29udmFsaWRhdGVkJywgbGFiZWw6ICJ7eyBf KCJEb24ndCB2YWxpZGF0ZSIpIH19IiwgdHlwZTogJ3N3aXRjaCcsIGNlbGw6 CisgICAgICAgICAgJ2Jvb2xlYW4nLCBncm91cDogJ3t7IF8oJ0RlZmluaXRp b24nKSB9fScsIG1pbl92ZXJzaW9uOiA5MDIwMCwKKyAgICAgICAgICBkaXNh YmxlZDogZnVuY3Rpb24obSkgeworICAgICAgICAgICAgcmV0dXJuICEobS5p c05ldygpIHx8IG0uZ2V0KCJjb252YWxpZGF0ZWQiKSk7CisgICAgICAgICAg fSwKKyAgICAgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRlJywg J2VkaXQnXQorICAgICAgICB9XSwKKyAgICAgICAgLy8gQ2xpZW50IFNpZGUg VmFsaWRhdGlvbgorICAgICAgICB2YWxpZGF0ZTogZnVuY3Rpb24oKSB7Cisg ICAgICAgICAgdmFyIGVyciA9IHt9LAorICAgICAgICAgICAgICBlcnJtc2c7 CisKKyAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnY29u c3JjJykpIHx8IFN0cmluZyh0aGlzLmdldCgnY29uc3JjJykpLnJlcGxhY2Uo L15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIGVyclsn Y29uc3JjJ10gPSAne3sgXygnQ2hlY2sgY2FuIG5vdCBiZSBlbXB0eSEnKSB9 fSc7CisgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydjb25z cmMnXTsKKyAgICAgICAgICB9CisKKyAgICAgICAgICB0aGlzLmVycm9yTW9k ZWwuY2xlYXIoKS5zZXQoZXJyKTsKKworICAgICAgICAgIGlmIChfLnNpemUo ZXJyKSkgeworICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCdvbi1zdGF0dXMn LCB7bXNnOiBlcnJtc2d9KTsKKyAgICAgICAgICAgIHJldHVybiBlcnJtc2c7 CisgICAgICAgICAgfQorCisgICAgICAgICAgcmV0dXJuIG51bGw7CisKKyAg ICAgICAgfSwKKyAgICAgICAgaXNEaXNhYmxlZDogZnVuY3Rpb24obSl7Cisg ICAgICAgICAgaWYgKCFtLmlzTmV3KCkpIHsKKyAgICAgICAgICAgIHZhciBz ZXJ2ZXIgPSB0aGlzLm5vZGVfaW5mby5zZXJ2ZXI7CisgICAgICAgICAgICBp ZiAoc2VydmVyLnZlcnNpb24gPCA5MDIwMCkKKyAgICAgICAgICAgIHsKKyAg ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICB9CisgICAg ICAgICAgfQorICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgfQor ICAgICAgfSksCisgICAgICAvLyBCZWxvdyBmdW5jdGlvbiB3aWxsIGVuYWJs ZSByaWdodCBjbGljayBtZW51IGZvciBjcmVhdGluZyBjaGVjayBjb25zdHJh aW50LgorICAgICAgY2FuQ3JlYXRlOiBmdW5jdGlvbihpdGVtRGF0YSwgaXRl bSwgZGF0YSkgeworICAgICAgICAgIC8vIElmIGNoZWNrIGlzIGZhbHNlIHRo ZW4gLCB3ZSB3aWxsIGFsbG93IGNyZWF0ZSBtZW51CisgICAgICAgICAgaWYg KGRhdGEgJiYgZGF0YS5jaGVjayA9PSBmYWxzZSkKKyAgICAgICAgICAgIHJl dHVybiB0cnVlOworCisgICAgICAgICAgdmFyIHQgPSBwZ0Jyb3dzZXIudHJl ZSwgaSA9IGl0ZW0sIGQgPSBpdGVtRGF0YSwgcGFyZW50cyA9IFtdOworICAg ICAgICAgIC8vIFRvIGl0ZXJhdGUgb3ZlciB0cmVlIHRvIGNoZWNrIHBhcmVu dCBub2RlCisgICAgICAgICAgd2hpbGUgKGkpIHsKKyAgICAgICAgICAgIC8v IElmIGl0IGlzIHNjaGVtYSB0aGVuIGFsbG93IHVzZXIgdG8gYyByZWF0ZSB0 YWJsZQorICAgICAgICAgICAgaWYgKF8uaW5kZXhPZihbJ3NjaGVtYSddLCBk Ll90eXBlKSA+IC0xKQorICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg ICAgICAgICAgIHBhcmVudHMucHVzaChkLl90eXBlKTsKKyAgICAgICAgICAg IGkgPSB0Lmhhc1BhcmVudChpKSA/IHQucGFyZW50KGkpIDogbnVsbDsKKyAg ICAgICAgICAgIGQgPSBpID8gdC5pdGVtRGF0YShpKSA6IG51bGw7CisgICAg ICAgICAgfQorICAgICAgICAgIC8vIElmIG5vZGUgaXMgdW5kZXIgY2F0YWxv ZyB0aGVuIGRvIG5vdCBhbGxvdyAnY3JlYXRlJyBtZW51CisgICAgICAgICAg aWYgKF8uaW5kZXhPZihwYXJlbnRzLCAnY2F0YWxvZycpID4gLTEpIHsKKyAg ICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9IGVsc2Ugewor ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgfQorICAgICAg fQorICB9KTsKKworICB9CisKKyAgcmV0dXJuIHBnQnJvd3Nlci5Ob2Rlc1sn Y2hlY2tfY29uc3RyYWludHMnXTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQv dGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMV9wbHVzL2NyZWF0 ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hl Y2tfY29uc3RyYWludC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9zcWwv OS4xX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi44ZDhjMTBhCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQv dGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMV9wbHVzL2NyZWF0 ZS5zcWwKQEAgLTAsMCArMSw0IEBACit7JSBpZiBkYXRhICV9CitBTFRFUiBU QUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUp IH19CisgICAgQUREeyUgaWYgZGF0YS5uYW1lICV9IENPTlNUUkFJTlQge3sg Y29ubnxxdElkZW50KGRhdGEubmFtZSkgfX17JSBlbmRpZiV9IENIRUNLICh7 eyBkYXRhLmNvbnNyYyB9fSk7Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0 cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMV9wbHVz L2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWlu dHMvY2hlY2tfY29uc3RyYWludC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWlu dC9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi41YTg1YjRmCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0 cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMV9wbHVz L2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwzIEBACit7JSBpZiBkYXRhICV9CitB TFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5uc3BuYW1lLCBkYXRh LnJlbG5hbWUpIH19IERST1AgQ09OU1RSQUlOVCB7eyBjb25ufHF0SWRlbnQo ZGF0YS5uYW1lKSB9fTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWlu dC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9zcWwvOS4xX3BsdXMvZ2V0 X25hbWUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRz L2NoZWNrX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQv c3FsLzkuMV9wbHVzL2dldF9uYW1lLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4xMmRmYTE1Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0 cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMV9wbHVz L2dldF9uYW1lLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVCBjb25uYW1l IGFzIG5hbWUKK0ZST00gcGdfY29uc3RyYWludCBjdAorV0hFUkUgY29udHlw ZSA9ICdjJworQU5EICBjdC5vaWQgPSB7e2NpZH19OjpvaWQKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZW1wbGF0 ZXMvY2hlY2tfY29uc3RyYWludC9zcWwvOS4xX3BsdXMvZ2V0X29pZC5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29u c3RyYWludC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9zcWwvOS4xX3Bs dXMvZ2V0X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZmE1MjFlNgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3RlbXBs YXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85LjFfcGx1cy9nZXRfb2lkLnNx bApAQCAtMCwwICsxLDcgQEAKK1NFTEVDVAorICAgIG9pZCwgY29ubmFtZSBh cyBuYW1lCitGUk9NCisgICAgcGdfY29uc3RyYWludAorV0hFUkUKKyAgICBj b25yZWxpZCA9IHt7dGlkfX06Om9pZAorICAgIEFORCBjb25uYW1lPXt7IG5h bWV8cXRMaXRlcmFsIH19OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVtcGxhdGVz L2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMV9wbHVzL2dldF9vaWRfd2l0aF90 cmFuc2FjdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3Ry YWludHMvY2hlY2tfY29uc3RyYWludC90ZW1wbGF0ZXMvY2hlY2tfY29uc3Ry YWludC9zcWwvOS4xX3BsdXMvZ2V0X29pZF93aXRoX3RyYW5zYWN0aW9uLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZjJlMjlm Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2Nv bnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2Nv bnN0cmFpbnQvc3FsLzkuMV9wbHVzL2dldF9vaWRfd2l0aF90cmFuc2FjdGlv bi5zcWwKQEAgLTAsMCArMSw1IEBACitTRUxFQ1QgY3Qub2lkLAorICAgIGN0 LmNvbm5hbWUgYXMgbmFtZQorRlJPTSBwZ19jb25zdHJhaW50IGN0CitXSEVS RSBjb250eXBlPSdjJyBBTkQKKyAgICBjb25yZWxpZCA9IHt7dGlkfX06Om9p ZCBMSU1JVCAxOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVj a19jb25zdHJhaW50L3RlbXBsYXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85 LjFfcGx1cy9nZXRfcGFyZW50LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3RlbXBsYXRlcy9jaGVj a19jb25zdHJhaW50L3NxbC85LjFfcGx1cy9nZXRfcGFyZW50LnNxbApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjUyODU3Ci0tLSAv ZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFp bnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFp bnQvc3FsLzkuMV9wbHVzL2dldF9wYXJlbnQuc3FsCkBAIC0wLDAgKzEsNyBA QAorU0VMRUNUIG5zcC5uc3BuYW1lIEFTIHNjaGVtYSwKKyAgICByZWwucmVs bmFtZSBBUyB0YWJsZQorRlJPTQorICAgIHBnX2NsYXNzIHJlbAorSk9JTiBw Z19uYW1lc3BhY2UgbnNwCitPTiByZWwucmVsbmFtZXNwYWNlID0gbnNwLm9p ZDo6aW50CitXSEVSRSByZWwub2lkID0ge3t0aWR9fTo6aW50ClwgTm8gbmV3 bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVtcGxh dGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMV9wbHVzL2dyYW50LnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25z dHJhaW50L3RlbXBsYXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85LjFfcGx1 cy9ncmFudC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uMGZiMGVhNQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3RlbXBsYXRl cy9jaGVja19jb25zdHJhaW50L3NxbC85LjFfcGx1cy9ncmFudC5zcWwKQEAg LTAsMCArMSw0IEBACit7JSBpZiBkYXRhLmNvbW1lbnQgJX0KK0NPTU1FTlQg T04gQ09OU1RSQUlOVCB7eyBjb25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fSBP TiB7eyBjb25ufHF0SWRlbnQoZGF0YS5zY2hlbWEsIGRhdGEudGFibGUpIH19 CisgICAgSVMge3sgZGF0YS5jb21tZW50fHF0TGl0ZXJhbCB9fTsKK3slIGVu ZGlmICV9ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2Nv bnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMV9w bHVzL25vZGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJh aW50cy9jaGVja19jb25zdHJhaW50L3RlbXBsYXRlcy9jaGVja19jb25zdHJh aW50L3NxbC85LjFfcGx1cy9ub2Rlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMDcwMWM5ZgotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25z dHJhaW50L3RlbXBsYXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85LjFfcGx1 cy9ub2Rlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QgYy5vaWQsIGNv bm5hbWUgYXMgbmFtZQorICAgIEZST00gcGdfY29uc3RyYWludCBjCitXSEVS RSBjb250eXBlID0gJ2MnCit7JSBpZiB0aWQgJX0KKyAgICBBTkQgY29ucmVs aWQgPSB7eyB0aWQgfX06Om9pZAoreyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25z dHJhaW50L3RlbXBsYXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85LjFfcGx1 cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25z dHJhaW50cy9jaGVja19jb25zdHJhaW50L3RlbXBsYXRlcy9jaGVja19jb25z dHJhaW50L3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xOGNkYjM1Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2No ZWNrX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3Fs LzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsMTMgQEAKK1NF TEVDVCBjLm9pZCwgY29ubmFtZSBhcyBuYW1lLCByZWxuYW1lLCBuc3BuYW1l LCBkZXNjcmlwdGlvbiBhcyBjb21tZW50ICwKKyAgICAgICBwZ19nZXRfZXhw cihjb25iaW4sIGNvbnJlbGlkLCB0cnVlKSBhcyBjb25zcmMKKyAgICBGUk9N IHBnX2NvbnN0cmFpbnQgYworICAgIEpPSU4gcGdfY2xhc3MgY2wgT04gY2wu b2lkPWNvbnJlbGlkCisgICAgSk9JTiBwZ19uYW1lc3BhY2UgbmwgT04gbmwu b2lkPXJlbG5hbWVzcGFjZQorTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVz Y3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPWMub2lkIEFORAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGVzLmNsYXNzb2lkPSdwZ19jb25zdHJh aW50Jzo6cmVnY2xhc3MpCitXSEVSRSBjb250eXBlID0gJ2MnCisgICAgQU5E IGNvbnJlbGlkID0ge3sgdGlkIH19OjpvaWQKK3slIGlmIGNpZCAlfQorICAg IEFORCBjLm9pZCA9IHt7IGNpZCB9fTo6b2lkCit7JSBlbmRpZiAlfQpcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3Rl bXBsYXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85LjFfcGx1cy91cGRhdGUu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNr X2NvbnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzku MV9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uNzExYTJlMAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3Rl bXBsYXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85LjFfcGx1cy91cGRhdGUu c3FsCkBAIC0wLDAgKzEsMiBAQAorQ09NTUVOVCBPTiBDT05TVFJBSU5UIHt7 IGNvbm58cXRJZGVudChvX2RhdGEubmFtZSkgfX0gT04ge3sgY29ubnxxdElk ZW50KGRhdGEuc2NoZW1hLCBkYXRhLnRhYmxlKSB9fQorICAgIElTIHt7IGRh dGEuY29tbWVudHxxdExpdGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90 ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9zcWwvOS4yX3BsdXMvY3JlYXRl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVj a19jb25zdHJhaW50L3RlbXBsYXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85 LjJfcGx1cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjJjN2E1N2YKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90 ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9zcWwvOS4yX3BsdXMvY3JlYXRl LnNxbApAQCAtMCwwICsxLDYgQEAKK3slIGlmIGRhdGEgJX0KK0FMVEVSIFRB QkxFIHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSkg fX0KKyAgICBBRER7JSBpZiBkYXRhLm5hbWUgJX0gQ09OU1RSQUlOVCB7eyBj b25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fXslIGVuZGlmJX0gQ0hFQ0sgKHt7 IGRhdGEuY29uc3JjIH19KXslIGlmIGRhdGEuY29udmFsaWRhdGVkICV9CisK KyAgICBOT1QgVkFMSUR7JSBlbmRpZiAlfXslIGlmIGRhdGEuY29ubm9pbmhl cml0ICV9IE5PIElOSEVSSVR7JSBlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMv Y2hlY2tfY29uc3RyYWludC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9z cWwvOS4yX3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxl cy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3RlbXBsYXRlcy9jaGVj a19jb25zdHJhaW50L3NxbC85LjJfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjVhODViNGYKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMv Y2hlY2tfY29uc3RyYWludC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9z cWwvOS4yX3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsxLDMgQEAKK3slIGlm IGRhdGEgJX0KK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudChkYXRhLm5z cG5hbWUsIGRhdGEucmVsbmFtZSkgfX0gRFJPUCBDT05TVFJBSU5UIHt7IGNv bm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUgZW5kaWYgJX0KZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVj a19jb25zdHJhaW50L3RlbXBsYXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85 LjJfcGx1cy9nZXRfbmFtZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMv Y29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZW1wbGF0ZXMvY2hlY2tf Y29uc3RyYWludC9zcWwvOS4yX3BsdXMvZ2V0X25hbWUuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5MmY4OTMKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMv Y2hlY2tfY29uc3RyYWludC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9z cWwvOS4yX3BsdXMvZ2V0X25hbWUuc3FsCkBAIC0wLDAgKzEsNSBAQAorU0VM RUNUIGNvbm5hbWUgYXMgbmFtZSwKKyAgICBOT1QgY29udmFsaWRhdGVkIGFz IGNvbnZhbGlkYXRlZAorRlJPTSBwZ19jb25zdHJhaW50IGN0CitXSEVSRSBj b250eXBlID0gJ2MnCitBTkQgIGN0Lm9pZCA9IHt7Y2lkfX06Om9pZApcIE5v IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3Rl bXBsYXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85LjJfcGx1cy9nZXRfb2lk LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVj a19jb25zdHJhaW50L3RlbXBsYXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85 LjJfcGx1cy9nZXRfb2lkLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi40NmYzMmM5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQv dGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMl9wbHVzL2dldF9v aWQuc3FsCkBAIC0wLDAgKzEsOCBAQAorU0VMRUNUCisgICAgb2lkLCBjb25u YW1lIGFzIG5hbWUsCisgICAgTk9UIGNvbnZhbGlkYXRlZCBhcyBjb252YWxp ZGF0ZWQKK0ZST00KKyAgICBwZ19jb25zdHJhaW50CitXSEVSRQorICAgIGNv bnJlbGlkID0ge3t0aWR9fTo6b2lkCisgICAgQU5EIGNvbm5hbWU9e3sgbmFt ZXxxdExpdGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZW1wbGF0ZXMv Y2hlY2tfY29uc3RyYWludC9zcWwvOS4yX3BsdXMvZ2V0X29pZF93aXRoX3Ry YW5zYWN0aW9uLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJh aW50cy9jaGVja19jb25zdHJhaW50L3RlbXBsYXRlcy9jaGVja19jb25zdHJh aW50L3NxbC85LjJfcGx1cy9nZXRfb2lkX3dpdGhfdHJhbnNhY3Rpb24uc3Fs Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmI0OTdlM2YK LS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29u c3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZW1wbGF0ZXMvY2hlY2tfY29u c3RyYWludC9zcWwvOS4yX3BsdXMvZ2V0X29pZF93aXRoX3RyYW5zYWN0aW9u LnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVCBjdC5vaWQsCisgICAgY3Qu Y29ubmFtZSBhcyBuYW1lLAorICAgIE5PVCBjb252YWxpZGF0ZWQgYXMgY29u dmFsaWRhdGVkCitGUk9NIHBnX2NvbnN0cmFpbnQgY3QKK1dIRVJFIGNvbnR5 cGU9J2MnIEFORAorICAgIGNvbnJlbGlkID0ge3t0aWR9fTo6b2lkIExJTUlU IDE7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0 cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMl9wbHVz L2dldF9wYXJlbnQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0 cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0 cmFpbnQvc3FsLzkuMl9wbHVzL2dldF9wYXJlbnQuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE2NTI4NTcKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hl Y2tfY29uc3RyYWludC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9zcWwv OS4yX3BsdXMvZ2V0X3BhcmVudC5zcWwKQEAgLTAsMCArMSw3IEBACitTRUxF Q1QgbnNwLm5zcG5hbWUgQVMgc2NoZW1hLAorICAgIHJlbC5yZWxuYW1lIEFT IHRhYmxlCitGUk9NCisgICAgcGdfY2xhc3MgcmVsCitKT0lOIHBnX25hbWVz cGFjZSBuc3AKK09OIHJlbC5yZWxuYW1lc3BhY2UgPSBuc3Aub2lkOjppbnQK K1dIRVJFIHJlbC5vaWQgPSB7e3RpZH19OjppbnQKXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWludC90ZW1wbGF0ZXMvY2hl Y2tfY29uc3RyYWludC9zcWwvOS4yX3BsdXMvZ3JhbnQuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQv dGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMl9wbHVzL2dyYW50 LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wZmIw ZWE1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVz L2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNr X2NvbnN0cmFpbnQvc3FsLzkuMl9wbHVzL2dyYW50LnNxbApAQCAtMCwwICsx LDQgQEAKK3slIGlmIGRhdGEuY29tbWVudCAlfQorQ09NTUVOVCBPTiBDT05T VFJBSU5UIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19IE9OIHt7IGNv bm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSkgfX0KKyAgICBJ UyB7eyBkYXRhLmNvbW1lbnR8cXRMaXRlcmFsIH19OworeyUgZW5kaWYgJX0K XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWlu dC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9zcWwvOS4yX3BsdXMvbm9k ZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2No ZWNrX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3Fs LzkuMl9wbHVzL25vZGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi42ZmRjM2MxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQv dGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMl9wbHVzL25vZGVz LnNxbApAQCAtMCwwICsxLDcgQEAKK1NFTEVDVCBjLm9pZCwgY29ubmFtZSBh cyBuYW1lLAorICAgIE5PVCBjb252YWxpZGF0ZWQgYXMgY29udmFsaWRhdGVk CisgICAgRlJPTSBwZ19jb25zdHJhaW50IGMKK1dIRVJFIGNvbnR5cGUgPSAn YycKK3slIGlmIHRpZCAlfQorICAgIEFORCBjb25yZWxpZCA9IHt7IHRpZCB9 fTo6b2lkCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVtcGxh dGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMl9wbHVzL3Byb3BlcnRpZXMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNr X2NvbnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzku Ml9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLjUwOWQzMTcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3RyYWlu dC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9zcWwvOS4yX3BsdXMvcHJv cGVydGllcy5zcWwKQEAgLTAsMCArMSwxNCBAQAorU0VMRUNUIGMub2lkLCBj b25uYW1lIGFzIG5hbWUsIHJlbG5hbWUsIG5zcG5hbWUsIGRlc2NyaXB0aW9u IGFzIGNvbW1lbnQsCisgICAgICAgcGdfZ2V0X2V4cHIoY29uYmluLCBjb25y ZWxpZCwgdHJ1ZSkgYXMgY29uc3JjLAorICAgICAgIGNvbm5vaW5oZXJpdCwg Tk9UIGNvbnZhbGlkYXRlZCBhcyBjb252YWxpZGF0ZWQKKyAgICBGUk9NIHBn X2NvbnN0cmFpbnQgYworICAgIEpPSU4gcGdfY2xhc3MgY2wgT04gY2wub2lk PWNvbnJlbGlkCisgICAgSk9JTiBwZ19uYW1lc3BhY2UgbmwgT04gbmwub2lk PXJlbG5hbWVzcGFjZQorTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3Jp cHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPWMub2lkIEFORAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgZGVzLmNsYXNzb2lkPSdwZ19jb25zdHJhaW50 Jzo6cmVnY2xhc3MpCitXSEVSRSBjb250eXBlID0gJ2MnCisgICAgQU5EIGNv bnJlbGlkID0ge3sgdGlkIH19OjpvaWQKK3slIGlmIGNpZCAlfQorICAgIEFO RCBjLm9pZCA9IHt7IGNpZCB9fTo6b2lkCit7JSBlbmRpZiAlfQpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3RlbXBs YXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85LjJfcGx1cy91cGRhdGUuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2Nv bnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMl9w bHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uZTc1OTAzNQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy9jb25zdHJhaW50cy9jaGVja19jb25zdHJhaW50L3RlbXBs YXRlcy9jaGVja19jb25zdHJhaW50L3NxbC85LjJfcGx1cy91cGRhdGUuc3Fs CkBAIC0wLDAgKzEsMTIgQEAKK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUg JX0KK3slIGlmIGRhdGEubmFtZSAlfQoreyUgc2V0IG5hbWUgPSBkYXRhLm5h bWUgJX0KK0FMVEVSIFRBQkxFIHt7IGNvbm58cXRJZGVudChvX2RhdGEubnNw bmFtZSwgb19kYXRhLnJlbG5hbWUpIH19CisgICAgUkVOQU1FIENPTlNUUkFJ TlQge3sgY29ubnxxdElkZW50KG9fZGF0YS5uYW1lKSB9fSBUTyB7eyBjb25u fHF0SWRlbnQoZGF0YS5uYW1lKSB9fTt7JSBlbmRpZiAtJX0KK3slIGlmICdj b252YWxpZGF0ZWQnIGluIGRhdGEgYW5kIG9fZGF0YS5jb252YWxpZGF0ZWQg IT0gZGF0YS5jb252YWxpZGF0ZWQgYW5kIG5vdCBkYXRhLmNvbnZhbGlkYXRl ZCAlfQorCitBTFRFUiBUQUJMRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLm5z cG5hbWUsIG9fZGF0YS5yZWxuYW1lKSB9fQorICAgIFZBTElEQVRFIENPTlNU UkFJTlQge3sgY29ubnxxdElkZW50KG5hbWUpIH19O3slIGVuZGlmIC0lfXsl IGlmIGRhdGEuY29tbWVudCAlfQorCitDT01NRU5UIE9OIENPTlNUUkFJTlQg e3sgY29ubnxxdElkZW50KG5hbWUpIH19IE9OIHt7IGNvbm58cXRJZGVudChk YXRhLnNjaGVtYSwgZGF0YS50YWJsZSkgfX0KKyAgICBJUyB7eyBkYXRhLmNv bW1lbnR8cXRMaXRlcmFsIH19O3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvY2hlY2tfY29uc3Ry YWludC90ZW1wbGF0ZXMvY2hlY2tfY29uc3RyYWludC9zcWwvOS4yX3BsdXMv dmFsaWRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFp bnRzL2NoZWNrX2NvbnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFp bnQvc3FsLzkuMl9wbHVzL3ZhbGlkYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi41YTYyYzgwCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFpbnRzL2NoZWNrX2Nv bnN0cmFpbnQvdGVtcGxhdGVzL2NoZWNrX2NvbnN0cmFpbnQvc3FsLzkuMl9w bHVzL3ZhbGlkYXRlLnNxbApAQCAtMCwwICsxLDIgQEAKK0FMVEVSIFRBQkxF IHt7IGNvbm58cXRJZGVudChkYXRhLnNjaGVtYSwgZGF0YS50YWJsZSkgfX0K KyAgICBWQUxJREFURSBDT05TVFJBSU5UIHt7IGNvbm58cXRJZGVudChkYXRh Lm5hbWUpIH19OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK --001a1137be20d503a90530823d20 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 --001a1137be20d503a90530823d20--