Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84) (envelope-from ) id 1aeJZz-0006Wh-MT for pgadmin-hackers@arkaria.postgresql.org; Fri, 11 Mar 2016 09:41:56 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aeJZz-0004xz-8H for pgadmin-hackers@arkaria.postgresql.org; Fri, 11 Mar 2016 09:41:55 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aeJTQ-0000Ge-Cy for pgadmin-hackers@postgresql.org; Fri, 11 Mar 2016 09:35:08 +0000 Received: from mail-lb0-x231.google.com ([2a00:1450:4010:c04::231]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84) (envelope-from ) id 1aeJTE-0004pW-De for pgadmin-hackers@postgresql.org; Fri, 11 Mar 2016 09:35:07 +0000 Received: by mail-lb0-x231.google.com with SMTP id bc4so147632877lbc.2 for ; Fri, 11 Mar 2016 01:34:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:date:message-id:subject:from:to; bh=VRB6oxQxzdEiDygC98Whv2FtLUcjXAZ5WgSQVgmfx/o=; b=DtVB/FfbfMRuEACCpouVq7NiKJXAqFWWm5chfottOWqmdTKu2eQSUDSVeIxUIO7a7V uj19eckkAi07+VNJDSTx6f8T/E42eOzvrjEeiJ6GIwy05Z5shKepQDfQqSIx4NmMFs2h ihFLCXBckGVMbXw7poK3QUP9YhrncUhWReXcAW3Jrzz+CBhdvX8a1vpQWFCjN0gyzCIR nSr2tk1GwBFHequsommgzeZpv7e2aEP2cKMD9/WDET/LgFZxyWdJKsCobdZhYov0MFQe IUXIRdKufOEKRwWGmbOgsSOBBAdMMyo0tVVQv+bAolLQ9AgE6gIDsYKsAL93B7RODH3b xTnA== 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=VRB6oxQxzdEiDygC98Whv2FtLUcjXAZ5WgSQVgmfx/o=; b=ZyXo1COa9vluOamu6L7sbQ2R0OMvQf8KXfsIHOFICWd5g6re5Ku70NNxjKvQld4sIf CwwHQL8DnZbLYtzSkufLhxlAGNrba5incHvpo8cSZ3VEkPvM8D9HCN7ESkFj/XYptpW7 OkXw5nZ4LM2PoUwI/scBEy4hhayP5hW4+jTT6wD3gmZ8wQ3zeWXXlwP/YCcWifM67TEt PEiZDUoNg1sqzBP7mM8Dqzy/8W4zco2wCaelJpri/yXDxt2DgdlWT1O7r0uFQG6TuqtD Yckxa9cGX4bFd00OWs7KmNXsp90C92qgHWd/d4hzTV6WBizhLcyJo3dx/H1bg//47cwq L1Rw== X-Gm-Message-State: AD7BkJIzxjibV78rsbwNa6iGvrbPskt7zplxRsn7eMhM5+9CkWMnpA1x9meVFevKv+xV8Gp8kKDDBqW36Ivct3N1 MIME-Version: 1.0 X-Received: by 10.112.209.68 with SMTP id mk4mr2911811lbc.45.1457688895496; Fri, 11 Mar 2016 01:34:55 -0800 (PST) Received: by 10.25.159.85 with HTTP; Fri, 11 Mar 2016 01:34:55 -0800 (PST) Date: Fri, 11 Mar 2016 15:04:55 +0530 Message-ID: Subject: [pgAdmin4][Patch]: Functions/Procedures Module From: Khushboo Vashi To: pgadmin-hackers Content-Type: multipart/mixed; boundary=001a11c2655ad0287c052dc2a4f5 X-Pg-Spam-Score: -2.6 (--) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgadmin-hackers Precedence: bulk Sender: pgadmin-hackers-owner@postgresql.org --001a11c2655ad0287c052dc2a4f5 Content-Type: multipart/alternative; boundary=001a11c2655ad02874052dc2a4f3 --001a11c2655ad02874052dc2a4f3 Content-Type: text/plain; charset=UTF-8 Hi, Please find attached patch for the Functions/Procedures Module. To test this patch, "Unique collection Control and Variable Control Fixes" Patch submitted by me needs to be applied first. Thanks, Khushboo --001a11c2655ad02874052dc2a4f3 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi,

Please find attached patch= for the Functions/Procedures Module.

To test this patch,= "Unique collection Control and Variable Control Fixes" Patch sub= mitted by me needs to be applied first.

Thanks,
=
Khushboo
--001a11c2655ad02874052dc2a4f3-- --001a11c2655ad0287c052dc2a4f5 Content-Type: text/x-patch; charset=US-ASCII; name="pgadmin4_functions.patch" Content-Disposition: attachment; filename="pgadmin4_functions.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ilni8nr40 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9fX2luaXRfXy5weQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNzZhZjY2Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL19f aW5pdF9fLnB5CkBAIC0wLDAgKzEsMTI2NiBAQAorIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKyMKKyMgcGdBZG1pbiA0IC0gUG9zdGdyZVNRTCBU b29scworIworIyBDb3B5cmlnaHQgKEMpIDIwMTMgLSAyMDE2LCBUaGUgcGdB ZG1pbiBEZXZlbG9wbWVudCBUZWFtCisjIFRoaXMgc29mdHdhcmUgaXMgcmVs ZWFzZWQgdW5kZXIgdGhlIFBvc3RncmVTUUwgTGljZW5jZQorIworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIiIiSW1wbGVtZW50cyBGdW5j dGlvbnMvUHJvY2VkdXJlcyBOb2RlLiIiIgorCitpbXBvcnQganNvbgoraW1w b3J0IHN5cworaW1wb3J0IHRyYWNlYmFjaworaW1wb3J0IGNvcHkKK2ltcG9y dCByZQorZnJvbSBmbGFzayBpbXBvcnQgcmVuZGVyX3RlbXBsYXRlLCBtYWtl X3Jlc3BvbnNlLCByZXF1ZXN0LCBqc29uaWZ5LCBcCisgICAgY3VycmVudF9h cHAsIHVybF9mb3IKK2Zyb20gZmxhc2suZXh0LmJhYmVsIGltcG9ydCBnZXR0 ZXh0Citmcm9tIGZ1bmN0b29scyBpbXBvcnQgd3JhcHMKK2Zyb20gcGdhZG1p bi51dGlscy5hamF4IGltcG9ydCBtYWtlX2pzb25fcmVzcG9uc2UsIFwKKyAg ICBtYWtlX3Jlc3BvbnNlIGFzIGFqYXhfcmVzcG9uc2UsIGludGVybmFsX3Nl cnZlcl9lcnJvcgorZnJvbSBwZ2FkbWluLmJyb3dzZXIudXRpbHMgaW1wb3J0 IFBHQ2hpbGROb2RlVmlldworZnJvbSBwZ2FkbWluLmJyb3dzZXIuY29sbGVj dGlvbiBpbXBvcnQgQ29sbGVjdGlvbk5vZGVNb2R1bGUKK2ltcG9ydCBwZ2Fk bWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNlcy5z Y2hlbWFzIGFzIHNjaGVtYXMKK2Zyb20gcGdhZG1pbi51dGlscy5hamF4IGlt cG9ydCBwcmVjb25kaXRpb25fcmVxdWlyZWQKK2Zyb20gcGdhZG1pbi51dGls cy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKK2Zyb20gcGdhZG1pbi5icm93 c2VyLnNlcnZlcl9ncm91cHMuc2VydmVycy51dGlscyBpbXBvcnQgcGFyc2Vf cHJpdl9mcm9tX2RiLCBcCisgICAgcGFyc2VfcHJpdl90b19kYgorZnJvbSBw Z2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFiYXNl cy5zY2hlbWFzLnV0aWxzIGltcG9ydCBcCisgICAgU2NoZW1hQ2hpbGRNb2R1 bGUKK2Zyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgorZnJv bSBwZ2FkbWluLmJyb3dzZXIuc2VydmVyX2dyb3Vwcy5zZXJ2ZXJzLmRhdGFi YXNlcy51dGlscyBpbXBvcnQgXAorICAgIHBhcnNlX3NlY19sYWJlbHNfZnJv bV9kYiwgcGFyc2VfdmFyaWFibGVzX2Zyb21fZGIKKworCitjbGFzcyBGdW5j dGlvbk1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6CisgICAgIiIiCisgICAg Y2xhc3MgRnVuY3Rpb25Nb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgorCisg ICAgICAgIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBUaGUgRnVuY3Rpb25zIE1v ZHVsZS4KKworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQorICAgICogX19p bml0X18oKmFyZ3MsICoqa3dhcmdzKQorICAgICAgLSBJbml0aWFsaXplIHRo ZSBGdW5jdGlvbnMgTW9kdWxlLgorCisgICAgKiBnZXRfbm9kZXMoZ2lkLCBz aWQsIGRpZCwgc2NpZCkKKyAgICAgIC0gR2VuZXJhdGUgdGhlIEZ1bmN0aW9u cyBjb2xsZWN0aW9uIG5vZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKToKKyAg ICAgIC0gUmV0dXJucyBGdW5jdGlvbnMgbm9kZSBhcyBsZWFmIG5vZGUuCisK KyAgICAqIHNjcmlwdF9sb2FkKCkKKyAgICAgIC0gTG9hZCB0aGUgbW9kdWxl IHNjcmlwdCBmb3IgRnVuY3Rpb25zLCB3aGVuIHNjaGVtYSBub2RlIGlzCisg ICAgICAgIGluaXRpYWxpemVkLgorCisgICAgKiBjc3NzbmlwcGV0cygpCisg ICAgICAtIFJldHVybnMgYSBzbmlwcGV0IG9mIGNzcy4KKyAgICAiIiIKKwor ICAgIE5PREVfVFlQRSA9ICdmdW5jdGlvbicKKyAgICBDT0xMRUNUSU9OX0xB QkVMID0gZ2V0dGV4dCgiRnVuY3Rpb25zIikKKworICAgIGRlZiBfX2luaXRf XyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAiIiIKKyAgICAg ICAgSW5pdGlhbGl6ZSB0aGUgRnVuY3Rpb24gTW9kdWxlLgorICAgICAgICBB cmdzOgorICAgICAgICAgICAgKmFyZ3M6CisgICAgICAgICAgICAqKmt3YXJn czoKKyAgICAgICAgIiIiCisgICAgICAgIHN1cGVyKEZ1bmN0aW9uTW9kdWxl LCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAg c2VsZi5taW5fdmVyID0gOTAxMDAKKyAgICAgICAgc2VsZi5tYXhfdmVyID0g Tm9uZQorICAgICAgICBzZWxmLnNlcnZlcl90eXBlID0gTm9uZQorCisgICAg ZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAg ICAgICAgIiIiCisgICAgICAgIEdlbmVyYXRlIEZ1bmN0aW9ucyBjb2xsZWN0 aW9uIG5vZGUuCisgICAgICAgICIiIgorICAgICAgICB5aWVsZCBzZWxmLmdl bmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKHNjaWQpCisKKyAgICBA cHJvcGVydHkKKyAgICBkZWYgbm9kZV9pbm9kZShzZWxmKToKKyAgICAgICAg IiIiCisgICAgICAgIE1ha2UgdGhlIG5vZGUgYXMgbGVhZiBub2RlLgorICAg ICAgICBSZXR1cm5zOgorICAgICAgICAgICAgRmFsc2UgYXMgdGhpcyBub2Rl IGRvZXNuJ3QgaGF2ZSBjaGlsZCBub2Rlcy4KKyAgICAgICAgIiIiCisgICAg ICAgIHJldHVybiBGYWxzZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHNj cmlwdF9sb2FkKHNlbGYpOgorICAgICAgICAiIiIKKyAgICAgICAgTG9hZCB0 aGUgbW9kdWxlIHNjcmlwdCBmb3IgRnVuY3Rpb25zLCB3aGVuIHRoZQorICAg ICAgICBzY2hlbWEgbm9kZSBpcyBpbml0aWFsaXplZC4KKyAgICAgICAgIiIi CisgICAgICAgIHJldHVybiBzY2hlbWFzLlNjaGVtYU1vZHVsZS5OT0RFX1RZ UEUKKworICAgIEBwcm9wZXJ0eQorICAgIGRlZiBjc3NzbmlwcGV0cyhzZWxm KToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgYSBzbmlwcGV0IG9m IGNzcworICAgICAgICAiIiIKKyAgICAgICAgc25pcHBldHMgPSBbCisgICAg ICAgICAgICByZW5kZXJfdGVtcGxhdGUoImZ1bmN0aW9uL2Nzcy9mdW5jdGlv bi5jc3MiKQorICAgICAgICBdCisgICAgICAgIHNuaXBwZXRzLmV4dGVuZCgK KyAgICAgICAgICAgIHN1cGVyKFNjaGVtYUNoaWxkTW9kdWxlLCBzZWxmKS5j c3NzbmlwcGV0cworICAgICAgICApCisKKyAgICAgICAgcmV0dXJuIHNuaXBw ZXRzCisKK2JsdWVwcmludCA9IEZ1bmN0aW9uTW9kdWxlKF9fbmFtZV9fKQor CisKK2NsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpOgorICAg ICIiIgorICAgIGNsYXNzIEZ1bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcp CisKKyAgICBUaGlzIGNsYXNzIGluaGVyaXRzIFBHQ2hpbGROb2RlVmlldyB0 byBnZXQgdGhlIGRpZmZlcmVudCByb3V0ZXMgZm9yCisgICAgdGhlIG1vZHVs ZS4KKworICAgIFRoZSBjbGFzcyBpcyByZXNwb25zaWJsZSB0byBDcmVhdGUs IFJlYWQsIFVwZGF0ZSBhbmQgRGVsZXRlIG9wZXJhdGlvbnMgZm9yCisgICAg dGhlIEZ1bmN0aW9ucy4KKworICAgIE1ldGhvZHM6CisgICAgLS0tLS0tLQor ICAgICogdmFsaWRhdGVfcmVxdWVzdChmKToKKyAgICAgIC0gV29ya3MgYXMg YSBkZWNvcmF0b3IuCisgICAgICAgIFZhbGlkYXRpbmcgcmVxdWVzdCBvbiB0 aGUgcmVxdWVzdCBvZiBjcmVhdGUsIHVwZGF0ZSBhbmQgbW9kaWZpZWQgU1FM LgorCisgICAgKiBtb2R1bGVfanMoKToKKyAgICAgIC0gT3ZlcnJpZGVzIHRo aXMgcHJvcGVydHkgdG8gZGVmaW5lIGphdmFzY3JpcHQgZm9yIEZ1bmN0aW9u cyBub2RlLgorCisgICAgKiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAg ICAtIFdvcmtzIGFzIGEgZGVjb3JhdG9yLgorICAgICAgLSBDaGVja3MgZGF0 YWJhc2UgY29ubmVjdGlvbiBzdGF0dXMuCisgICAgICAtIEF0dGFjaCBjb25u ZWN0aW9uIG9iamVjdCBhbmQgdGVtcGxhdGUgcGF0aC4KKworICAgICogbGlz dChnaWQsIHNpZCwgZGlkLCBzY2lkKToKKyAgICAgIC0gTGlzdCB0aGUgRnVu Y3Rpb25zLgorCisgICAgKiBub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKToK KyAgICAgIC0gUmV0dXJucyBhbGwgdGhlIEZ1bmN0aW9ucyB0byBnZW5lcmF0 ZSBOb2RlcyBpbiB0aGUgYnJvd3Nlci4KKworICAgICogcHJvcGVydGllcyhn aWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkKToKKyAgICAgIC0gUmV0dXJucyB0 aGUgRnVuY3Rpb25zIHByb3BlcnRpZXMuCisKKyAgICAqIGNyZWF0ZShnaWQs IHNpZCwgZGlkLCBzY2lkKToKKyAgICAgIC0gQ3JlYXRlcyBhIG5ldyBGdW5j dGlvbnMgb2JqZWN0LgorCisgICAgKiB1cGRhdGUoZ2lkLCBzaWQsIGRpZCwg c2NpZCwgZm5pZCk6CisgICAgICAtIFVwZGF0ZXMgdGhlIEZ1bmN0aW9ucyBv YmplY3QuCisKKyAgICAqIGRlbGV0ZShnaWQsIHNpZCwgZGlkLCBzY2lkLCBm bmlkKToKKyAgICAgIC0gRHJvcHMgdGhlIEZ1bmN0aW9ucyBvYmplY3QuCisK KyAgICAqIHNxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkKToKKyAgICAg IC0gUmV0dXJucyB0aGUgU1FMIGZvciB0aGUgRnVuY3Rpb25zIG9iamVjdC4K KworICAgICogbXNxbChnaWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUp OgorICAgICAgLSBSZXR1cm5zIHRoZSBtb2RpZmllZCBTUUwuCisKKyAgICAq IGRlcGVuZGVudHMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZCk6CisgICAg ICAtIFJldHVybnMgdGhlIGRlcGVuZGVudHMgZm9yIHRoZSBGdW5jdGlvbnMg b2JqZWN0LgorCisgICAgKiBkZXBlbmRlbmNpZXMoZ2lkLCBzaWQsIGRpZCwg c2NpZCwgZm5pZCk6CisgICAgICAtIFJldHVybnMgdGhlIGRlcGVuZGVuY2ll cyBmb3IgdGhlIEZ1bmN0aW9ucyBvYmplY3QuCisKKyAgICAqIGdldF9sYW5n dWFnZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZD1Ob25lKToKKyAgICAg IC0gUmV0dXJucyBsYW5ndWFnZXMuCisKKyAgICAqIGdldF90eXBlcyhnaWQs IHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUpOgorICAgICAgLSBSZXR1cm5z IERhdGEgVHlwZXMuCisgICAgIiIiCisKKyAgICBub2RlX3R5cGUgPSBibHVl cHJpbnQubm9kZV90eXBlCisKKyAgICBwYXJlbnRfaWRzID0gWworICAgICAg ICB7J3R5cGUnOiAnaW50JywgJ2lkJzogJ2dpZCd9LAorICAgICAgICB7J3R5 cGUnOiAnaW50JywgJ2lkJzogJ3NpZCd9LAorICAgICAgICB7J3R5cGUnOiAn aW50JywgJ2lkJzogJ2RpZCd9LAorICAgICAgICB7J3R5cGUnOiAnaW50Jywg J2lkJzogJ3NjaWQnfQorICAgIF0KKyAgICBpZHMgPSBbCisgICAgICAgIHsn dHlwZSc6ICdpbnQnLCAnaWQnOiAnZm5pZCd9CisgICAgXQorCisgICAgb3Bl cmF0aW9ucyA9IGRpY3QoeworICAgICAgICAnb2JqJzogWworICAgICAgICAg ICAgeydnZXQnOiAncHJvcGVydGllcycsICdkZWxldGUnOiAnZGVsZXRlJywg J3B1dCc6ICd1cGRhdGUnfSwKKyAgICAgICAgICAgIHsnZ2V0JzogJ2xpc3Qn LCAncG9zdCc6ICdjcmVhdGUnfQorICAgICAgICBdLAorICAgICAgICAnZGVs ZXRlJzogW3snZGVsZXRlJzogJ2RlbGV0ZSd9XSwKKyAgICAgICAgJ2NoaWxk cmVuJzogW3snZ2V0JzogJ2NoaWxkcmVuJ31dLAorICAgICAgICAnbm9kZXMn OiBbeydnZXQnOiAnbm9kZSd9LCB7J2dldCc6ICdub2Rlcyd9XSwKKyAgICAg ICAgJ3NxbCc6IFt7J2dldCc6ICdzcWwnfV0sCisgICAgICAgICdtc3FsJzog W3snZ2V0JzogJ21zcWwnfSwgeydnZXQnOiAnbXNxbCd9XSwKKyAgICAgICAg J3N0YXRzJzogW3snZ2V0JzogJ3N0YXRpc3RpY3MnfV0sCisgICAgICAgICdk ZXBlbmRlbmN5JzogW3snZ2V0JzogJ2RlcGVuZGVuY2llcyd9XSwKKyAgICAg ICAgJ2RlcGVuZGVudCc6IFt7J2dldCc6ICdkZXBlbmRlbnRzJ31dLAorICAg ICAgICAnbW9kdWxlLmpzJzogW3t9LCB7fSwgeydnZXQnOiAnbW9kdWxlX2pz J31dLAorICAgICAgICAnZ2V0X3R5cGVzJzogW3snZ2V0JzogJ2dldF90eXBl cyd9LCB7J2dldCc6ICdnZXRfdHlwZXMnfV0sCisgICAgICAgICdnZXRfbGFu Z3VhZ2VzJzogW3snZ2V0JzogJ2dldF9sYW5ndWFnZXMnfSwgeydnZXQnOiAn Z2V0X2xhbmd1YWdlcyd9XSwKKyAgICAgICAgJ3ZvcHRzJzogW3t9LCB7J2dl dCc6ICd2YXJpYWJsZV9vcHRpb25zJ31dCisgICAgfSkKKworICAgIEBwcm9w ZXJ0eQorICAgIGRlZiByZXF1aXJlZF9hcmdzKHNlbGYpOgorICAgICAgICAi IiIKKyAgICAgICAgUmV0dXJucyBSZXF1aXJlZCBhcmd1bWVudHMgZm9yIGZ1 bmN0aW9ucyBub2RlLgorICAgICAgICBXaGVyZQorICAgICAgICAgICAgUmVx dWlyZWQgQXJnczoKKyAgICAgICAgICAgICAgICBuYW1lOiAgICAgICAgICAg TmFtZSBvZiB0aGUgRnVuY3Rpb24KKyAgICAgICAgICAgICAgICBmdW5jb3du ZXI6ICAgICAgRnVuY3Rpb24gT3duZXIKKyAgICAgICAgICAgICAgICBwcm9u YW1lc3BhY2U6ICAgRnVuY3Rpb24gTmFtZXNwYWNlCisgICAgICAgICAgICAg ICAgcHJvcmV0dHlwZW5hbWU6IEZ1bmN0aW9uIFJldHVybiBUeXBlCisgICAg ICAgICAgICAgICAgbGFubmFtZTogICAgICAgIEZ1bmN0aW9uIExhbmd1YWdl IE5hbWUKKyAgICAgICAgICAgICAgICBwcm9zcmM6ICAgICAgICAgRnVuY3Rp b24gQ29kZQorICAgICAgICAgICAgICAgIHByb2JpbjogICAgICAgICBGdW5j dGlvbiBPYmplY3QgRmlsZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJu IFsKKyAgICAgICAgICAgICduYW1lJywKKyAgICAgICAgICAgICdmdW5jb3du ZXInLAorICAgICAgICAgICAgJ3Byb25hbWVzcGFjZScsCisgICAgICAgICAg ICAncHJvcmV0dHlwZW5hbWUnLAorICAgICAgICAgICAgJ2xhbm5hbWUnLAor ICAgICAgICAgICAgJ3Byb3NyYycsCisgICAgICAgICAgICAncHJvYmluJwor ICAgICAgICBdCisKKyAgICBkZWYgdmFsaWRhdGVfcmVxdWVzdChmKToKKyAg ICAgICAgIiIiCisgICAgICAgIFdvcmtzIGFzIGEgZGVjb3JhdG9yLgorICAg ICAgICBWYWxpZGF0aW5nIHJlcXVlc3Qgb24gdGhlIHJlcXVlc3Qgb2YgY3Jl YXRlLCB1cGRhdGUgYW5kIG1vZGlmaWVkIFNRTC4KKyAgICAgICAgIiIiCisK KyAgICAgICAgQHdyYXBzKGYpCisgICAgICAgIGRlZiB3cmFwKHNlbGYsICoq a3dhcmdzKToKKworICAgICAgICAgICAgZGF0YSA9IHt9CisgICAgICAgICAg ICBpZiByZXF1ZXN0LmRhdGE6CisgICAgICAgICAgICAgICAgcmVxID0ganNv bi5sb2FkcyhyZXF1ZXN0LmRhdGEpCisgICAgICAgICAgICBlbHNlOgorICAg ICAgICAgICAgICAgIHJlcSA9IHJlcXVlc3QuYXJncyBvciByZXF1ZXN0LmZv cm0KKworICAgICAgICAgICAgaWYgJ2ZuaWQnIG5vdCBpbiBrd2FyZ3M6CisK KyAgICAgICAgICAgICAgICBmb3IgYXJnIGluIHNlbGYucmVxdWlyZWRfYXJn czoKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFyZyBub3QgaW4gcmVxIG9y IHJlcVthcmddID09ICcnKSBvclwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAoYXJnID09ICdwcm9iaW4nIGFuZCByZXFbJ2xhbm5hbWUnXSA9PSAn YycKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5kIChhcmcgbm90 IGluIHJlcSBvciByZXFbYXJnXSA9PSAnJykpOgorICAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdGF0dXM9NDEwLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHN1Y2Nlc3M9MCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBlcnJvcm1zZz1nZXR0ZXh0KAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiQ291bGRuJ3QgZmluZCB0aGUgcmVxdWlyZWQg cGFyYW1ldGVyIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KCVzKS4iICUgYXJnCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQor ICAgICAgICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICB0cnk6 CisgICAgICAgICAgICAgICAgbGlzdF9wYXJhbXMgPSBbXQorICAgICAgICAg ICAgICAgIGlmIHJlcXVlc3QubWV0aG9kID09ICdHRVQnOgorICAgICAgICAg ICAgICAgICAgICBsaXN0X3BhcmFtcyA9IFsnYXJndW1lbnRzJywgJ3Zhcmlh YmxlcycsICdwcm9hY2wnLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAnc2VjbGFiZWxzJywgJ2FjbCddCisKKyAgICAgICAgICAgICAg ICBmb3Iga2V5IGluIHJlcToKKyAgICAgICAgICAgICAgICAgICAgaWYga2V5 IGluIGxpc3RfcGFyYW1zIGFuZCByZXFba2V5XSAhPSAnJyBcCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYW5kIHJlcVtrZXldIGlzIG5vdCBOb25l OgorICAgICAgICAgICAgICAgICAgICAgICAgIyBDb3ZlcnRzIHN0cmluZyBp bnRvIHB5dGhvbiBsaXN0IGFzIGV4cGVjdGVkLgorICAgICAgICAgICAgICAg ICAgICAgICAgZGF0YVtrZXldID0ganNvbi5sb2FkcyhyZXFba2V5XSkKKyAg ICAgICAgICAgICAgICAgICAgZWxpZiAoCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAga2V5ID09ICdwcm9yZXRzZXQnIG9yIGtleSA9PSAncHJvaXNz dHJpY3QnIG9yCisgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5ID09 ICdwcm9zZWNkZWYnIG9yIGtleSA9PSAncHJvaXN3aW5kb3cnIG9yCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAga2V5ID09ICdwcm9sZWFrcHJvb2Yn CisgICAgICAgICAgICAgICAgICAgICk6CisgICAgICAgICAgICAgICAgICAg ICAgICBkYXRhW2tleV0gPSBUcnVlIGlmICgKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXFba2V5XSA9PSAndHJ1ZScgb3IgcmVxW2tleV0gaXMg VHJ1ZSlcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBGYWxz ZSBpZiAocmVxW2tleV0gPT0gJ2ZhbHNlJyBvcgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcVtrZXldIGlzIEZhbHNl KSBlbHNlICcnCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAg ICAgICAgICAgICAgICAgICBkYXRhW2tleV0gPSByZXFba2V5XQorCisgICAg ICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICAg ICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1zdHIo ZSkpCisKKyAgICAgICAgICAgIHNlbGYucmVxdWVzdCA9IGRhdGEKKyAgICAg ICAgICAgIHJldHVybiBmKHNlbGYsICoqa3dhcmdzKQorCisgICAgICAgIHJl dHVybiB3cmFwCisKKyAgICBkZWYgbW9kdWxlX2pzKHNlbGYpOgorICAgICAg ICAiIiIKKyAgICAgICAgTG9hZCBKUyBmaWxlIChmdW5jdGlvbnMuanMpIGZv ciB0aGlzIG1vZHVsZS4KKyAgICAgICAgIiIiCisKKyAgICAgICAgcmV0dXJu IG1ha2VfcmVzcG9uc2UoCisgICAgICAgICAgICByZW5kZXJfdGVtcGxhdGUo CisgICAgICAgICAgICAgICAgImZ1bmN0aW9uL2pzL2Z1bmN0aW9ucy5qcyIs CisgICAgICAgICAgICAgICAgXz1nZXR0ZXh0CisgICAgICAgICAgICApLAor ICAgICAgICAgICAgMjAwLCB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlv bi94LWphdmFzY3JpcHQnfQorICAgICAgICApCisKKyAgICBkZWYgY2hlY2tf cHJlY29uZGl0aW9uKGYpOgorICAgICAgICAiIiIKKyAgICAgICAgV29ya3Mg YXMgYSBkZWNvcmF0b3IuCisgICAgICAgIENoZWNrcyB0aGUgZGF0YWJhc2Ug Y29ubmVjdGlvbiBzdGF0dXMuCisgICAgICAgIEF0dGFjaGVzIHRoZSBjb25u ZWN0aW9uIG9iamVjdCBhbmQgdGVtcGxhdGUgcGF0aCB0byB0aGUgY2xhc3Mg b2JqZWN0LgorICAgICAgICAiIiIKKworICAgICAgICBAd3JhcHMoZikKKyAg ICAgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgICAg IHNlbGYgPSBhcmdzWzBdCisgICAgICAgICAgICBkcml2ZXIgPSBnZXRfZHJp dmVyKFBHX0RFRkFVTFRfRFJJVkVSKQorICAgICAgICAgICAgc2VsZi5tYW5h Z2VyID0gZHJpdmVyLmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCdd KQorCisgICAgICAgICAgICAjIEdldCBkYXRhYmFzZSBjb25uZWN0aW9uCisg ICAgICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlv bihkaWQ9a3dhcmdzWydkaWQnXSkKKworICAgICAgICAgICAgc2VsZi5xdElk ZW50ID0gZHJpdmVyLnF0SWRlbnQKKyAgICAgICAgICAgIHNlbGYucXRMaXRl cmFsID0gZHJpdmVyLnF0TGl0ZXJhbAorCisgICAgICAgICAgICBpZiBub3Qg c2VsZi5jb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgICAgIHJldHVy biBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAgICAgICAgICAg IGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlv biB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIgorICAgICAgICAgICAg ICAgICAgICApCisgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICB2 ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgorCisgICAgICAgICAgICAjIFNl dCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cyBkZXBlbmRpbmcKKyAg ICAgICAgICAgICMgb24gdGhlIHNlcnZlciB2ZXJzaW9uLgorICAgICAgICAg ICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gIi8iLmpvaW4oWworICAgICAgICAg ICAgICAgIHNlbGYubm9kZV90eXBlCisgICAgICAgICAgICBdKQorICAgICAg ICAgICAgc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCA9ICIvIi5qb2luKFsKKyAg ICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAg ICAgICAgc2VsZi5tYW5hZ2VyLnNlcnZlcl90eXBlLAorICAgICAgICAgICAg ICAgICdzcWwnLAorICAgICAgICAgICAgICAgICc5LjVfcGx1cycgaWYgdmVy ID49IDkwNTAwIGVsc2UKKyAgICAgICAgICAgICAgICAnOS4yX3BsdXMnIGlm IHZlciA+PSA5MDIwMCBlbHNlCisgICAgICAgICAgICAgICAgJzkuMV9wbHVz JworICAgICAgICAgICAgICAgIF0pCisKKyAgICAgICAgICAgIHJldHVybiBm KCphcmdzLCAqKmt3YXJncykKKworICAgICAgICByZXR1cm4gd3JhcAorCisg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgorICAgIGRlZiBsaXN0KHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgTGlz dCBhbGwgdGhlIEZ1bmN0aW9ucy4KKworICAgICAgICBBcmdzOgorICAgICAg ICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDog U2VydmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAg ICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgIiIiCisKKyAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90 ZW1wbGF0ZV9wYXRoLCAnbm9kZS5zcWwnXSksCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzY2lkPXNjaWQpCisgICAgICAgIHN0YXR1cywgcmVz ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwpCisKKyAgICAgICAgaWYg bm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2 ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQorICAgICAgICByZXR1cm4gYWpheF9y ZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPXJlc1sncm93cyddLAor ICAgICAgICAgICAgc3RhdHVzPTIwMAorICAgICAgICApCisKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCisgICAgZGVmIG5vZGVzKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBh bGwgdGhlIEZ1bmN0aW9ucyB0byBnZW5lcmF0ZSB0aGUgTm9kZXMuCisKKyAg ICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElk CisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlk OiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisg ICAgICAgICIiIgorCisgICAgICAgIHJlcyA9IFtdCisgICAgICAgIFNRTCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVf cGF0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAnbm9kZS5zcWwnXSksIHNjaWQ9c2NpZCkKKyAgICAgICAgc3RhdHVzLCBy c2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisKKyAgICAg ICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5h bF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAgICAgICBmb3Ig cm93IGluIHJzZXRbJ3Jvd3MnXToKKyAgICAgICAgICAgIHJlcy5hcHBlbmQo CisgICAgICAgICAgICAgICAgc2VsZi5ibHVlcHJpbnQuZ2VuZXJhdGVfYnJv d3Nlcl9ub2RlKAorICAgICAgICAgICAgICAgICAgICByb3dbJ29pZCddLAor ICAgICAgICAgICAgICAgICAgICBzY2lkLAorICAgICAgICAgICAgICAgICAg ICByb3dbJ25hbWUnXSwKKyAgICAgICAgICAgICAgICAgICAgaWNvbj0iaWNv bi0iICsgc2VsZi5ub2RlX3R5cGUsCisgICAgICAgICAgICAgICAgICAgIGZ1 bmNvd25lcj1yb3dbJ2Z1bmNvd25lciddLAorICAgICAgICAgICAgICAgICAg ICBsYW5ndWFnZT1yb3dbJ2xhbm5hbWUnXQorICAgICAgICAgICAgICAgICkp CisKKyAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAg ICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAgc3RhdHVzPTIwMAorICAg ICAgICApCisKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCisgICAgZGVmIHBy b3BlcnRpZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZD1Ob25l KToKKyAgICAgICAgIiIiCisgICAgICAgIFJldHVybnMgdGhlIEZ1bmN0aW9u IHByb3BlcnRpZXMuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdp ZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJ ZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAg c2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBmbmlkOiBGdW5jdGlvbiBJ ZAorICAgICAgICAiIiIKKworICAgICAgICByZXNwX2RhdGEgPSBzZWxmLl9m ZXRjaF9wcm9wZXJ0aWVzKGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQpCisK KyAgICAgICAgcmV0dXJuIGFqYXhfcmVzcG9uc2UoCisgICAgICAgICAgICBy ZXNwb25zZT1yZXNwX2RhdGEsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICkKKworICAgIGRlZiBfZm9ybWF0X2FyZ3VtZW50c19mcm9tX2Ri KHNlbGYsIGRhdGEpOgorICAgICAgICAiIiIKKyAgICAgICAgQ3JlYXRlIEFy Z3VtZW50IGxpc3Qgb2YgdGhlIEZ1bmN0aW9uLgorCisgICAgICAgIEFyZ3M6 CisgICAgICAgICAgICBkYXRhOiBGdW5jdGlvbiBEYXRhCisKKyAgICAgICAg UmV0dXJuczoKKyAgICAgICAgICAgIEZ1bmN0aW9uIEFyZ3VtZW50cyBpbiB0 aGUgZm9sbG93aW5nIGZvcm1hdC4KKyAgICAgICAgICAgICAgICBbCisgICAg ICAgICAgICAgICAgeydwcm9hcmd0eXBlcyc6ICdpbnRlZ2VyJywgJ3Byb2Fy Z21vZGVzOiAnSU4nLAorICAgICAgICAgICAgICAgICdwcm9hcmduYW1lcyc6 ICdjb2x1bW4xJywgJ3Byb2FyZ2RlZmF1bHR2YWxzJzogMX0sIHsuLi59Cisg ICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgV2hlcmUKKyAgICAgICAg ICAgICAgICBBcmd1bWVudHM6CisgICAgICAgICAgICAgICAgICAgIHByb2Fy Z3R5cGVzOiBBcmd1bWVudCBUeXBlcyAoRGF0YSBUeXBlKQorICAgICAgICAg ICAgICAgICAgICBwcm9hcmdtb2RlczogQXJndW1lbnQgTW9kZXMgW0lOLCBP VVQsIElOT1VULCBWQVJJQURJQ10KKyAgICAgICAgICAgICAgICAgICAgcHJv YXJnbmFtZXM6IEFyZ3VtZW50IE5hbWUKKyAgICAgICAgICAgICAgICAgICAg cHJvYXJnZGVmYXVsdHZhbHM6IERlZmF1bHQgVmFsdWUgb2YgdGhlIEFyZ3Vt ZW50CisgICAgICAgICIiIgorICAgICAgICBwcm9hcmd0eXBlcyA9IFtwdHlw ZSBmb3IgcHR5cGUgaW4gZGF0YVsncHJvYXJndHlwZW5hbWVzJ10uc3BsaXQo IiwiKV1cCisgICAgICAgICAgICBpZiBkYXRhWydwcm9hcmd0eXBlbmFtZXMn XSBlbHNlIFtdCisgICAgICAgIHByb2FyZ21vZGVzID0gZGF0YVsncHJvYXJn bW9kZXMnXSBpZiBkYXRhWydwcm9hcmdtb2RlcyddIGVsc2UgW10KKyAgICAg ICAgcHJvYXJnbmFtZXMgPSBkYXRhWydwcm9hcmduYW1lcyddIGlmIGRhdGFb J3Byb2FyZ25hbWVzJ10gZWxzZSBbXQorICAgICAgICBwcm9hcmdkZWZhdWx0 dmFscyA9IFtwdHlwZSBmb3IgcHR5cGUgaW4KKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YVsncHJvYXJnZGVmYXVsdHZhbHMnXS5zcGxpdCgi LCIpXSBcCisgICAgICAgICAgICBpZiBkYXRhWydwcm9hcmdkZWZhdWx0dmFs cyddIGVsc2UgW10KKyAgICAgICAgcHJvYWxsYXJndHlwZXMgPSBkYXRhWydw cm9hbGxhcmd0eXBlcyddIFwKKyAgICAgICAgICAgIGlmIGRhdGFbJ3Byb2Fs bGFyZ3R5cGVzJ10gZWxzZSBbXQorCisgICAgICAgIHByb2FyZ291dCA9IFtd CisgICAgICAgIHByb2FyZ2lkID0gW10KKyAgICAgICAgcHJvYXJnbW9kZW5h bWVzID0geydpJzogJ0lOJywgJ28nOiAnT1VUJywgJ2InOiAnSU5PVVQnLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3YnOiAnVkFSSUFESUMnLCAn dCc6ICdUQUJMRSd9CisKKyAgICAgICAgIyBUaGUgcHJvYXJndHlwZXMgZG9l c24ndCBnaXZlIE9VVCBwYXJhbXMsIHNvIHdlIG5lZWQgdG8gZmV0Y2gKKyAg ICAgICAgIyB0aG9zZSBmcm9tIGRhdGFiYXNlIGV4cGxpY2l0bHksIGJlbG93 IGNvZGUgaXMgd3JpdHRlbiBmb3IgdGhpcworICAgICAgICAjIHB1cnBvc2Uu CisgICAgICAgICMKKyAgICAgICAgIyBwcm9hbGxhcmd0eXBlcyBnaXZlcyBh bGwgdGhlIEZ1bmN0aW9uJ3MgYXJndW1lbnQgaW5jbHVkaW5nIE9VVCwKKyAg ICAgICAgIyBidXQgd2UgaGF2ZSBub3QgdXNlZCB0aGF0IGNvbHVtbjsgYXMg dGhlIGRhdGEgdHlwZSBvZiB0aGlzCisgICAgICAgICMgY29sdW1uIChpLmUu IG9pZFtdKSBpcyBub3Qgc3VwcG9ydGVkIGJ5IG9pZHZlY3RvcnR5cGVzKG9p ZHZlY3RvcikKKyAgICAgICAgIyBmdW5jdGlvbiB3aGljaCB3ZSBoYXZlIHVz ZWQgdG8gZmV0Y2ggdGhlIGRhdGF0eXBlcworICAgICAgICAjIG9mIHRoZSBv dGhlciBwYXJhbWV0ZXJzLgorCisgICAgICAgIHByb2FyZ21vZGVzX2ZsdHJk ID0gY29weS5kZWVwY29weShwcm9hcmdtb2RlcykKKyAgICAgICAgcHJvYXJn bmFtZXNfZmx0cmQgPSBbXQorICAgICAgICBjbnQgPSAwCisgICAgICAgIGZv ciBtIGluIHByb2FyZ21vZGVzOgorICAgICAgICAgICAgaWYgbSA9PSAnbyc6 ICAjIE91dCBNb2RlCisgICAgICAgICAgICAgICAgU1FMID0gcmVuZGVyX3Rl bXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg J2dldF9vdXRfdHlwZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBvdXRfYXJnX29pZD1wcm9hbGxhcmd0eXBlc1tj bnRdKQorICAgICAgICAgICAgICAgIHN0YXR1cywgb3V0X2FyZ190eXBlID0g c2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPW91dF9hcmdfdHlwZSkK KworICAgICAgICAgICAgICAgICMgSW5zZXJ0IG91dCBwYXJhbWV0ZXIgZGF0 YXR5cGUKKyAgICAgICAgICAgICAgICBwcm9hcmd0eXBlcy5pbnNlcnQoY250 LCBvdXRfYXJnX3R5cGUpCisgICAgICAgICAgICAgICAgcHJvYXJnZGVmYXVs dHZhbHMuaW5zZXJ0KGNudCwgJycpCisgICAgICAgICAgICBlbGlmIG0gPT0g J3YnOiAgIyBWYXJpYWRpYyBNb2RlCisgICAgICAgICAgICAgICAgcHJvYXJn ZGVmYXVsdHZhbHMuaW5zZXJ0KGNudCwgJycpCisgICAgICAgICAgICBlbGlm IG0gPT0gJ3QnOiAgIyBUYWJsZSBNb2RlCisgICAgICAgICAgICAgICAgcHJv YXJnbW9kZXNfZmx0cmQucmVtb3ZlKG0pCisgICAgICAgICAgICAgICAgcHJv YXJnbmFtZXNfZmx0cmQuYXBwZW5kKHByb2FyZ25hbWVzW2NudF0pCisKKyAg ICAgICAgICAgIGNudCArPSAxCisKKyAgICAgICAgY250ID0gMAorICAgICAg ICAjIE1hcCBwYXJhbSdzIHNob3J0IGZvcm0gdG8gaXRzIGFjdHVhbCBuYW1l LiAoZXg6ICdpJyB0byAnSU4nKQorICAgICAgICBmb3IgbSBpbiBwcm9hcmdt b2Rlc19mbHRyZDoKKyAgICAgICAgICAgIHByb2FyZ21vZGVzX2ZsdHJkW2Nu dF0gPSBwcm9hcmdtb2RlbmFtZXNbbV0KKyAgICAgICAgICAgIGNudCArPSAx CisKKyAgICAgICAgIyBSZW1vdmVzIEFyZ3VtZW50IE5hbWVzIGZyb20gdGhl IGxpc3QgaWYgdGhhdCBhcmd1bWVudCBpcyByZW1vdmVkCisgICAgICAgICMg ZnJvbSB0aGUgbGlzdAorICAgICAgICBmb3IgaSBpbiBwcm9hcmduYW1lc19m bHRyZDoKKyAgICAgICAgICAgIHByb2FyZ25hbWVzLnJlbW92ZShpKQorCisg ICAgICAgICMgSW5zZXJ0IG51bGwgdmFsdWUgYWdhaW5zdCB0aGUgcGFyYW1l dGVycyB3aGljaCBkbyBub3QgaGF2ZQorICAgICAgICAjIGRlZmF1bHQgdmFs dWVzLgorICAgICAgICBpZiBsZW4ocHJvYXJnbW9kZXNfZmx0cmQpID4gbGVu KHByb2FyZ2RlZmF1bHR2YWxzKToKKyAgICAgICAgICAgIGRpZiA9IGxlbihw cm9hcmdtb2Rlc19mbHRyZCkgLSBsZW4ocHJvYXJnZGVmYXVsdHZhbHMpCisg ICAgICAgICAgICB3aGlsZSAoZGlmID4gMCk6CisgICAgICAgICAgICAgICAg cHJvYXJnZGVmYXVsdHZhbHMuaW5zZXJ0KDAsICcnKQorICAgICAgICAgICAg ICAgIGRpZiA9IGRpZiAtIDEKKworICAgICAgICAjIFByZXBhcmUgbGlzdCBv ZiBBcmd1bWVudCBsaXN0IGRpY3QgdG8gYmUgZGlzcGxheWVkIGluIHRoZSBE YXRhIEdyaWQuCisgICAgICAgIHBhcmFtcyA9IHsiYXJndW1lbnRzIjogbWFw KAorICAgICAgICAgICAgbGFtYmRhIGFyZ2lkLCBhcmd0eXBlLCBhcmdtb2Rl LCBhcmduYW1lLCBhcmdkZWZ2YWw6IHsKKyAgICAgICAgICAgICAgICAiYXJn aWQiOiBhcmdpZCwKKyAgICAgICAgICAgICAgICAiYXJndHlwZSI6IGFyZ3R5 cGUuc3RyaXAoKSBpZiBhcmd0eXBlIGlzIG5vdCBOb25lIGVsc2UgJycsCisg ICAgICAgICAgICAgICAgImFyZ21vZGUiOiBhcmdtb2RlLAorICAgICAgICAg ICAgICAgICJhcmduYW1lIjogYXJnbmFtZSwKKyAgICAgICAgICAgICAgICAi YXJnZGVmdmFsIjogYXJnZGVmdmFsCisgICAgICAgICAgICB9LCByYW5nZShs ZW4ocHJvYXJndHlwZXMpKSwgcHJvYXJndHlwZXMsIHByb2FyZ21vZGVzX2Zs dHJkLAorICAgICAgICAgICAgcHJvYXJnbmFtZXMsIHByb2FyZ2RlZmF1bHR2 YWxzKX0KKworICAgICAgICAjIFByZXBhcmUgc3RyaW5nIGZvcm1hdHRlZCBB cmd1bWVudCB0byBiZSBkaXNwbGF5ZWQgaW4gdGhlIFByb3BlcnRpZXMKKyAg ICAgICAgIyBwYW5lbC4KKyAgICAgICAgcHJvYXJncyA9IG1hcChzZWxmLl9t YXBfYXJndW1lbnRzLCBwcm9hcmdtb2Rlc19mbHRyZCwgcHJvYXJnbmFtZXMs CisgICAgICAgICAgICAgICAgICAgICAgcHJvYXJndHlwZXMsIHByb2FyZ2Rl ZmF1bHR2YWxzKQorCisgICAgICAgIHByb2FyZ3MgPSB7InByb2FyZ3MiOiAi LCAiLmpvaW4ocHJvYXJncyl9CisKKyAgICAgICAgcmV0dXJuIHBhcmFtcywg cHJvYXJncworCisgICAgZGVmIF9tYXBfYXJndW1lbnRzKHNlbGYsIGFyZ21v ZGUsIGFyZ25hbWUsIGFyZ3R5cGUsIGFyZ2RlZik6CisgICAgICAgICIiIgor ICAgICAgICBSZXR1cm5zIGZvcm1hdHRlZCBBcmd1bWVudHMuCisgICAgICAg IEFyZ3M6CisgICAgICAgICAgICBhcmdtb2RlOiBBcmd1bWVudCBNb2RlCisg ICAgICAgICAgICBhcmduYW1lOiBBcmd1bWVudCBOYW1lCisgICAgICAgICAg ICBhcmd0eXBlOiBBcmd1bWVudCBUeXBlCisgICAgICAgICAgICBhcmdkZWY6 IEFyZ3VtZW50IERlZmF1bHQgVmFsdWUKKyAgICAgICAgIiIiCisgICAgICAg IGFyZyA9ICcnCisKKyAgICAgICAgaWYgYXJnbW9kZToKKyAgICAgICAgICAg IGFyZyArPSBhcmdtb2RlICsgIiAiCisgICAgICAgIGlmIGFyZ25hbWU6Cisg ICAgICAgICAgICBhcmcgKz0gYXJnbmFtZSArICIgIgorICAgICAgICBpZiBh cmd0eXBlOgorICAgICAgICAgICAgYXJnICs9IGFyZ3R5cGUgKyAiICIKKyAg ICAgICAgaWYgYXJnZGVmOgorICAgICAgICAgICAgYXJnICs9ICIgREVGQVVM VCAiICsgYXJnZGVmCisKKyAgICAgICAgcmV0dXJuIGFyZworCisgICAgZGVm IF9mb3JtYXRfcHJvYWNsX2Zyb21fZGIoc2VsZiwgcHJvYWNsKToKKyAgICAg ICAgIiIiCisgICAgICAgIFJldHVybnMgcHJpdmlsZWdlcy4KKyAgICAgICAg QXJnczoKKyAgICAgICAgICAgIHByb2FjbDogUHJpdmlsZWdlcyBEaWN0Cisg ICAgICAgICIiIgorICAgICAgICBwcml2aWxlZ2VzID0gW10KKyAgICAgICAg Zm9yIHJvdyBpbiBwcm9hY2w6CisgICAgICAgICAgICBwcml2ID0gcGFyc2Vf cHJpdl9mcm9tX2RiKHJvdykKKyAgICAgICAgICAgIHByaXZpbGVnZXMuYXBw ZW5kKHByaXYpCisKKyAgICAgICAgcmV0dXJuIHsiYWNsIjogcHJpdmlsZWdl c30KKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X3R5 cGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQ9Tm9uZSk6Cisg ICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBUeXBlcy4KKworICAg ICAgICBBcmdzOgorICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQK KyAgICAgICAgICAgIHNpZDogU2VydmVyIElkCisgICAgICAgICAgICBkaWQ6 IERhdGFiYXNlIElkCisgICAgICAgICAgICBzY2lkOiBTY2hlbWEgSWQKKyAg ICAgICAgICAgIGZuaWQ6IEZ1bmN0aW9uIElkCisgICAgICAgICIiIgorICAg ICAgICAjIFRPRE86IFRoaXMgZnVuY3Rpb24gc2hvdWxkIGJlIHJlbW92ZWQg b25jZSBUeXBlcyBtb2R1bGUKKyAgICAgICAgIyB3aWxsIGJlIGNvbXBsZXRl ZC4KKworICAgICAgICByZXMgPSBbeydsYWJlbCc6ICcnLCAndmFsdWUnOiAn J31dCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90 ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dl dF90eXBlcy5zcWwnXSkpCisgICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBz ZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgICAgIGlm IG5vdCBzdGF0dXM6CisgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yZXMpCisKKyAgICAgICAgICAgIGZv ciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgICAgIHJlcy5h cHBlbmQoCisgICAgICAgICAgICAgICAgICAgIHsnbGFiZWwnOiByb3dbJ3R5 cG5hbWUnXSwgJ3ZhbHVlJzogcm93Wyd0eXBuYW1lJ119CisgICAgICAgICAg ICAgICAgKQorCisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3Bv bnNlKAorICAgICAgICAgICAgICAgIGRhdGE9cmVzLAorICAgICAgICAgICAg ICAgIHN0YXR1cz0yMDAKKyAgICAgICAgICAgICkKKworICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgZ2V0X2xhbmd1YWdlcyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUpOgorICAgICAgICAiIiIK KyAgICAgICAgUmV0dXJucyB0aGUgTGFuZ3VhZ2VzIGxpc3QuCisKKyAgICAg ICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElkCisg ICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlkOiBE YXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisgICAg ICAgICAgICBmbmlkOiBGdW5jdGlvbiBJZAorICAgICAgICAiIiIKKworICAg ICAgICByZXMgPSBbeydsYWJlbCc6ICcnLCAndmFsdWUnOiAnJ31dCisgICAg ICAgIHRyeToKKyAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9sYW5ndWFn ZXMuc3FsJ10pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgc3RhdHVzLCByb3dzID0gc2VsZi5jb25uLmV4ZWN1 dGVfZGljdChTUUwpCisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAg ICAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJy b3Jtc2c9cmVzKQorCisgICAgICAgICAgICByZXMgPSByZXMgKyByb3dzWydy b3dzJ10KKworICAgICAgICAgICAgcmV0dXJuIG1ha2VfanNvbl9yZXNwb25z ZSgKKyAgICAgICAgICAgICAgICBkYXRhPXJlcywKKyAgICAgICAgICAgICAg ICBzdGF0dXM9MjAwCisgICAgICAgICAgICApCisgICAgICAgIGV4Y2VwdDoK KyAgICAgICAgICAgIGV4Y190eXBlLCBleGNfdmFsdWUsIGV4Y190cmFjZWJh Y2sgPSBzeXMuZXhjX2luZm8oKQorICAgICAgICAgICAgY3VycmVudF9hcHAu bG9nZ2VyLmVycm9yKHRyYWNlYmFjay5wcmludF9leGNlcHRpb24oCisgICAg ICAgICAgICAgICAgZXhjX3R5cGUsCisgICAgICAgICAgICAgICAgZXhjX3Zh bHVlLAorICAgICAgICAgICAgICAgIGV4Y190cmFjZWJhY2ssCisgICAgICAg ICAgICAgICAgbGltaXQ9MgorICAgICAgICAgICAgICAgICkKKyAgICAgICAg ICAgICkKKworICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9l cnJvcihlcnJvcm1zZz1zdHIoZXhjX3ZhbHVlKSkKKworICAgIEBjaGVja19w cmVjb25kaXRpb24KKyAgICBkZWYgdmFyaWFibGVfb3B0aW9ucyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBzY2lkLCBmbmlkPU5vbmUpOgorICAgICAgICAiIiIK KyAgICAgICAgUmV0dXJucyB0aGUgdmFyaWFibGVzLgorCisgICAgICAgIEFy Z3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAg ICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJh c2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAg ICAgZm5pZDogRnVuY3Rpb24gSWQKKworICAgICAgICBSZXR1cm5zOgorICAg ICAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIHJldHVybiBsaXN0IG9mIHZh cmlhYmxlcyBhdmFpbGFibGUgZm9yCisgICAgICAgICAgICB0YWJsZSBzcGFj ZXMuCisgICAgICAgICIiIgorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxh dGUoCisgICAgICAgICAgICAiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVf cGF0aCwgJ3ZhcmlhYmxlcy5zcWwnXSkKKyAgICAgICAgICAgICkKKyAgICAg ICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwp CisKKyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVy biBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKKworICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ZGF0YT1yc2V0Wydyb3dzJ10sCisgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBAdmFs aWRhdGVfcmVxdWVzdAorICAgIGRlZiBjcmVhdGUoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCk6CisgICAgICAgICIiIgorICAgICAgICBDcmVhdGUgYSBu ZXcgRnVuY3Rpb24gb2JqZWN0LgorCisgICAgICAgIEFyZ3M6CisgICAgICAg ICAgICBnaWQ6IFNlcnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBT ZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAg ICAgICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAgICAgZm5pZDogRnVu Y3Rpb24gSWQKKworICAgICAgICBSZXR1cm5zOgorICAgICAgICAgICAgRnVu Y3Rpb24gb2JqZWN0IGluIGpzb24gZm9ybWF0LgorICAgICAgICAiIiIKKwor ICAgICAgICB0cnk6CisgICAgICAgICAgICAjIEdldCBTUUwgdG8gY3JlYXRl IEZ1bmN0aW9uCisgICAgICAgICAgICBzdGF0dXMsIFNRTCA9IHNlbGYuX2dl dF9zcWwoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgc2VsZi5yZXF1ZXN0KQorICAg ICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAgICByZXR1 cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPVNRTCkKKworICAg ICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2Fs YXIoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAg ICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNn PXJlcykKKworICAgICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIv Ii5qb2luKFtzZWxmLnNxbF90ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0X29pZC5zcWwn XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnNwbmFt ZT1zZWxmLnJlcXVlc3RbJ3Byb25hbWVzcGFjZSddLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5hbWU9c2VsZi5yZXF1ZXN0WyduYW1l J10pCisgICAgICAgICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVj dXRlX2RpY3QoU1FMKQorICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAg ICAgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVy cm9ybXNnPXJlcykKKworICAgICAgICAgICAgcmVzID0gcmVzWydyb3dzJ11b MF0KKworICAgICAgICAgICAgcmV0dXJuIGpzb25pZnkoCisgICAgICAgICAg ICAgICAgbm9kZT1zZWxmLmJsdWVwcmludC5nZW5lcmF0ZV9icm93c2VyX25v ZGUoCisgICAgICAgICAgICAgICAgICAgIHJlc1snb2lkJ10sCisgICAgICAg ICAgICAgICAgICAgIHNlbGYucmVxdWVzdFsncHJvbmFtZXNwYWNlJ10sCisg ICAgICAgICAgICAgICAgICAgIHJlc1snbmFtZSddLAorICAgICAgICAgICAg ICAgICAgICBpY29uPSJpY29uLSIgKyBzZWxmLm5vZGVfdHlwZSwKKyAgICAg ICAgICAgICAgICAgICAgbGFuZ3VhZ2U9cmVzWydsYW5uYW1lJ10sCisgICAg ICAgICAgICAgICAgICAgIGZ1bmNvd25lcj1yZXNbJ2Z1bmNvd25lciddCisg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVsZXRlKHNlbGYsIGdpZCwgc2lk LCBkaWQsIHNjaWQsIGZuaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgRHJv cCB0aGUgRnVuY3Rpb24uCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAg IGdpZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZl ciBJZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAg ICAgc2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBmbmlkOiBGdW5jdGlv biBJZAorICAgICAgICAiIiIKKworICAgICAgICBpZiBzZWxmLmNtZCA9PSAn ZGVsZXRlJzoKKyAgICAgICAgICAgICMgVGhpcyBpcyBhIGNhc2NhZGUgb3Bl cmF0aW9uCisgICAgICAgICAgICBjYXNjYWRlID0gVHJ1ZQorICAgICAgICBl bHNlOgorICAgICAgICAgICAgY2FzY2FkZSA9IEZhbHNlCisKKyAgICAgICAg dHJ5OgorICAgICAgICAgICAgIyBGZXRjaCBOYW1lIGFuZCBTY2hlbWEgTmFt ZSB0byBkZWxldGUgdGhlIEZ1bmN0aW9uLgorICAgICAgICAgICAgU1FMID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0ZV9w YXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxl dGUuc3FsJ10pLCBzY2lkPXNjaWQsIGZuaWQ9Zm5pZCkKKyAgICAgICAgICAg IHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwp CisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor CisgICAgICAgICAgICBuYW1lLCBmdW5jX2FyZ3MsIG5zcG5hbWUgPSByZXNb J3Jvd3MnXVswXQorCisgICAgICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxh dGUoIi8iLmpvaW4oW3NlbGYuc3FsX3RlbXBsYXRlX3BhdGgsCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkZWxldGUu c3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5h bWU9bmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBm dW5jX2FyZ3M9ZnVuY19hcmdzLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIG5zcG5hbWU9bnNwbmFtZSwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjYXNjYWRlPWNhc2NhZGUpCisgICAgICAgICAg ICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwp CisgICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAg IHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cmVzKQor CisgICAgICAgICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAg ICAgICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICBpbmZv PWdldHRleHQoIkZ1bmN0aW9uIERyb3BwZWQuIiksCisgICAgICAgICAgICAg ICAgZGF0YT17CisgICAgICAgICAgICAgICAgICAgICdpZCc6IGZuaWQsCisg ICAgICAgICAgICAgICAgICAgICdzY2lkJzogc2NpZCwKKyAgICAgICAgICAg ICAgICAgICAgJ3NpZCc6IHNpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2dp ZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgJ2RpZCc6IGRpZAorICAg ICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICkKKworICAgICAgICBleGNl cHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJu YWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0cihlKSkKKworICAgIEBjaGVj a19wcmVjb25kaXRpb24KKyAgICBAdmFsaWRhdGVfcmVxdWVzdAorICAgIGRl ZiB1cGRhdGUoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZCk6Cisg ICAgICAgICIiIgorICAgICAgICBVcGRhdGUgdGhlIEZ1bmN0aW9uLgorCisg ICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ ZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRp ZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAor ICAgICAgICAgICAgZm5pZDogRnVuY3Rpb24gSWQKKyAgICAgICAgIiIiCisK KyAgICAgICAgc3RhdHVzLCBTUUwgPSBzZWxmLl9nZXRfc3FsKGdpZCwgc2lk LCBkaWQsIHNjaWQsIHNlbGYucmVxdWVzdCwgZm5pZCkKKworICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcihlcnJvcm1zZz1TUUwpCisKKyAgICAgICAgdHJ5OgorICAg ICAgICAgICAgaWYgU1FMIGFuZCBTUUwuc3RyaXAoJ1xuJykgYW5kIFNRTC5z dHJpcCgnICcpOgorICAgICAgICAgICAgICAgIHN0YXR1cywgcmVzID0gc2Vs Zi5jb25uLmV4ZWN1dGVfc2NhbGFyKFNRTCkKKyAgICAgICAgICAgICAgICBp ZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW50 ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAgICAg ICAgICAgIHJldHVybiBtYWtlX2pzb25fcmVzcG9uc2UoCisgICAgICAgICAg ICAgICAgICAgIHN1Y2Nlc3M9MSwKKyAgICAgICAgICAgICAgICAgICAgaW5m bz0iRnVuY3Rpb24gVXBkYXRlZC4iLAorICAgICAgICAgICAgICAgICAgICBk YXRhPXsKKyAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6IGZuaWQsCisg ICAgICAgICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAg ICAgICAgICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAg ICdkaWQnOiBkaWQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg cmV0dXJuIG1ha2VfanNvbl9yZXNwb25zZSgKKyAgICAgICAgICAgICAgICAg ICAgc3VjY2Vzcz0xLAorICAgICAgICAgICAgICAgICAgICBpbmZvPSJOb3Ro aW5nIHRvIHVwZGF0ZS4iLAorICAgICAgICAgICAgICAgICAgICBkYXRhPXsK KyAgICAgICAgICAgICAgICAgICAgICAgICdpZCc6IGZuaWQsCisgICAgICAg ICAgICAgICAgICAgICAgICAnc2NpZCc6IHNjaWQsCisgICAgICAgICAgICAg ICAgICAgICAgICAnc2lkJzogc2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgJ2dpZCc6IGdpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICdkaWQn OiBkaWQKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAg ICkKKworICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CisgICAgICAg ICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXN0 cihlKSkKKworICAgIEBjaGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgc3Fs KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQ9Tm9uZSk6CisgICAg ICAgICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBTUUwgZm9yIHRoZSBGdW5j dGlvbiBvYmplY3QuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAgICAgIGdp ZDogU2VydmVyIEdyb3VwIElkCisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJ ZAorICAgICAgICAgICAgZGlkOiBEYXRhYmFzZSBJZAorICAgICAgICAgICAg c2NpZDogU2NoZW1hIElkCisgICAgICAgICAgICBmbmlkOiBGdW5jdGlvbiBJ ZAorICAgICAgICAiIiIKKworICAgICAgICAjIEZldGNoIHRoZSBmdW5jdGlv biBkZWZpbml0aW9uLgorICAgICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYuc3FsX3RlbXBsYXRlX3BhdGgsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAnZ2V0X2RlZmluaXRpb24uc3FsJ10pLCBm bmlkPWZuaWQsIHNjaWQ9c2NpZCkKKyAgICAgICAgc3RhdHVzLCByZXMgPSBz ZWxmLmNvbm4uZXhlY3V0ZV8yZGFycmF5KFNRTCkKKyAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgIGZ1bmNfZGVmLCBuYW1l ID0gcmVzWydyb3dzJ11bMF0KKyAgICAgICAgc3FsX2hlYWRlciA9ICIiIi0t IHswfTogezF9CisKKy0tIERST1AgezB9IHsxfTsKKworIiIiLmZvcm1hdChz ZWxmLm5vZGVfdHlwZS51cHBlcigpLCBuYW1lKQorCisgICAgICAgIFNRTCA9 IHNxbF9oZWFkZXIgKyBmdW5jX2RlZgorCisgICAgICAgIHJldHVybiBhamF4 X3Jlc3BvbnNlKHJlc3BvbnNlPVNRTCkKKworICAgIEBjaGVja19wcmVjb25k aXRpb24KKyAgICBAdmFsaWRhdGVfcmVxdWVzdAorICAgIGRlZiBtc3FsKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQ9Tm9uZSk6CisgICAgICAg ICIiIgorICAgICAgICBSZXR1cm5zIHRoZSBtb2RpZmllZCBTUUwuCisKKyAg ICAgICAgQXJnczoKKyAgICAgICAgICAgIGdpZDogU2VydmVyIEdyb3VwIElk CisgICAgICAgICAgICBzaWQ6IFNlcnZlciBJZAorICAgICAgICAgICAgZGlk OiBEYXRhYmFzZSBJZAorICAgICAgICAgICAgc2NpZDogU2NoZW1hIElkCisg ICAgICAgICAgICBmbmlkOiBGdW5jdGlvbiBJZAorICAgICAgICBSZXR1cm5z OgorICAgICAgICAgICAgU1FMIHN0YXRlbWVudHMgdG8gY3JlYXRlL3VwZGF0 ZSB0aGUgRG9tYWluLgorICAgICAgICAiIiIKKworICAgICAgICBzdGF0dXMs IFNRTCA9IHNlbGYuX2dldF9zcWwoZ2lkLCBzaWQsIGRpZCwgc2NpZCwgc2Vs Zi5yZXF1ZXN0LCBmbmlkKQorICAgICAgICBpZiBzdGF0dXM6CisgICAgICAg ICAgICByZXR1cm4gbWFrZV9qc29uX3Jlc3BvbnNlKAorICAgICAgICAgICAg ICAgIGRhdGE9U1FMLAorICAgICAgICAgICAgICAgIHN0YXR1cz0yMDAKKyAg ICAgICAgICAgICkKKyAgICAgICAgZWxzZToKKyAgICAgICAgICAgIHJldHVy biBTUUwKKworICAgIGRlZiBfZ2V0X3NxbChzZWxmLCBnaWQsIHNpZCwgZGlk LCBzY2lkLCBkYXRhLCBmbmlkPU5vbmUpOgorICAgICAgICAiIiIKKyAgICAg ICAgR2VuZXJhdGVzIHRoZSBTUUwgc3RhdGVtZW50cyB0byBjcmVhdGUvdXBk YXRlIHRoZSBGdW5jdGlvbi4KKworICAgICAgICBBcmdzOgorICAgICAgICAg ICAgZ2lkOiBTZXJ2ZXIgR3JvdXAgSWQKKyAgICAgICAgICAgIHNpZDogU2Vy dmVyIElkCisgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCisgICAgICAg ICAgICBzY2lkOiBTY2hlbWEgSWQKKyAgICAgICAgICAgIGRhdGE6IEZ1bmN0 aW9uIGRhdGEKKyAgICAgICAgICAgIGZuaWQ6IEZ1bmN0aW9uIElkCisgICAg ICAgICIiIgorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgICMgR2V0IFNj aGVtYSBOYW1lIGZyb20gaXRzIE9JRC4KKyAgICAgICAgICAgIGlmICdwcm9u YW1lc3BhY2UnIGluIGRhdGE6CisgICAgICAgICAgICAgICAgZGF0YVsncHJv bmFtZXNwYWNlJ10gPSBzZWxmLl9nZXRfc2NoZW1hKGRhdGFbCisgICAgICAg ICAgICAgICAgICAgICdwcm9uYW1lc3BhY2UnXSkKKyAgICAgICAgICAgIGlm ICdwcm92b2xhdGlsZScgaW4gZGF0YToKKyAgICAgICAgICAgICAgICB2b2xf ZGljdCA9IHsndic6ICdWT0xBVElMRScsICdzJzogJ1NUQUJMRScsICdpJzog J0lNTVVUQUJMRSd9CisgICAgICAgICAgICAgICAgZGF0YVsncHJvdm9sYXRp bGUnXSA9IHZvbF9kaWN0W2RhdGFbJ3Byb3ZvbGF0aWxlJ11dCisKKyAgICAg ICAgICAgIGlmIGZuaWQgaXMgbm90IE5vbmU6CisgICAgICAgICAgICAgICAg IyBFZGl0IE1vZGUKKworICAgICAgICAgICAgICAgICMgRmV0Y2ggT2xkIERh dGEgZnJvbSBkYXRhYmFzZS4KKyAgICAgICAgICAgICAgICBvbGRfZGF0YSA9 IHNlbGYuX2ZldGNoX3Byb3BlcnRpZXMoZ2lkLCBzaWQsIGRpZCwgc2NpZCwg Zm5pZCkKKworICAgICAgICAgICAgICAgICMgR2V0IFNjaGVtYSBOYW1lCisg ICAgICAgICAgICAgICAgb2xkX2RhdGFbJ3Byb25hbWVzcGFjZSddID0gc2Vs Zi5fZ2V0X3NjaGVtYShvbGRfZGF0YVsKKyAgICAgICAgICAgICAgICAgICAg J3Byb25hbWVzcGFjZSddKQorCisgICAgICAgICAgICAgICAgIyBJZiBhbnkg b2YgdGhlIGJlbG93IGFyZ3VtZW50IGlzIGNoYW5nZWQsCisgICAgICAgICAg ICAgICAgIyB0aGVuIENSRUFURSBPUiBSRVBMQUNFIFNRTCBzdGF0ZW1lbnQg c2hvdWxkIGJlIGNhbGxlZAorICAgICAgICAgICAgICAgIGZ1bl9jaGFuZ2Vf YXJncyA9IFsnbGFubmFtZScsICdwcm9zcmMnLCAncHJvYmluJywgJ3Byb3Ny Y19jJywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3By b3ZvbGF0aWxlJywgJ3Byb2lzc3RyaWN0JywgJ3Byb3NlY2RlZicsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdwcm9jb3N0JywgJ3By b2xlYWtwcm9vZicsICdhcmd1bWVudHMnXQorCisgICAgICAgICAgICAgICAg ZGF0YVsnY2hhbmdlX2Z1bmMnXSA9IEZhbHNlCisgICAgICAgICAgICAgICAg Zm9yIGFyZyBpbiBmdW5fY2hhbmdlX2FyZ3M6CisgICAgICAgICAgICAgICAg ICAgIGlmIGFyZyA9PSAnYXJndW1lbnRzJyBhbmQgYXJnIGluIGRhdGEgYW5k IGxlbihkYXRhW2FyZ10pIFwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICA+IDA6CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWydjaGFuZ2Vf ZnVuYyddID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICBlbGlmIGFyZyBp biBkYXRhOgorICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsnY2hhbmdl X2Z1bmMnXSA9IFRydWUKKworICAgICAgICAgICAgICAgICMgSWYgRnVuY3Rp b24gRGVmaW5pdGlvbi9Bcmd1bWVudHMgYXJlIGNoYW5nZWQgdGhlbiBtZXJn ZSBvbGQKKyAgICAgICAgICAgICAgICAjICBBcmd1bWVudHMgd2l0aCBjaGFu Z2VkIG9uZXMgZm9yIENyZWF0ZS9SZXBsYWNlIEZ1bmN0aW9uCisgICAgICAg ICAgICAgICAgIyBTUUwgc3RhdGVtZW50CisgICAgICAgICAgICAgICAgaWYg J2FyZ3VtZW50cycgaW4gZGF0YSBhbmQgbGVuKGRhdGFbJ2FyZ3VtZW50cydd KSA+IDA6CisgICAgICAgICAgICAgICAgICAgIGZvciBhcmcgaW4gZGF0YVsn YXJndW1lbnRzJ11bJ2NoYW5nZWQnXToKKyAgICAgICAgICAgICAgICAgICAg ICAgIGZvciBvbGRfYXJnIGluIG9sZF9kYXRhWydhcmd1bWVudHMnXToKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiBhcmdbJ2FyZ2lkJ10gPT0g b2xkX2FyZ1snYXJnaWQnXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgb2xkX2FyZy51cGRhdGUoYXJnKQorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBicmVhaworICAgICAgICAgICAgICAgICAgICBkYXRh Wydhcmd1bWVudHMnXSA9IG9sZF9kYXRhWydhcmd1bWVudHMnXQorICAgICAg ICAgICAgICAgIGVsaWYgZGF0YVsnY2hhbmdlX2Z1bmMnXToKKyAgICAgICAg ICAgICAgICAgICAgZGF0YVsnYXJndW1lbnRzJ10gPSBvbGRfZGF0YVsnYXJn dW1lbnRzJ10KKworICAgICAgICAgICAgICAgICMgUGFyc2UgUHJpdmlsZWdl cworICAgICAgICAgICAgICAgIGlmICdhY2wnIGluIGRhdGE6CisgICAgICAg ICAgICAgICAgICAgIGZvciBrZXkgaW4gWydhZGRlZCcsICdkZWxldGVkJywg J2NoYW5nZWQnXToKKyAgICAgICAgICAgICAgICAgICAgICAgIGlmIGtleSBp biBkYXRhWydhY2wnXToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBk YXRhWydhY2wnXVtrZXldID0gcGFyc2VfcHJpdl90b19kYigKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsnYWNsJ11ba2V5XSwgWyJY Il0pCisKKyAgICAgICAgICAgICAgICAjIFBhcnNlIFZhcmlhYmxlcworICAg ICAgICAgICAgICAgIGNobmdkX3ZhcmlhYmxlcyA9IHt9CisgICAgICAgICAg ICAgICAgZGF0YVsnbWVyZ2VkX3ZhcmlhYmxlcyddID0gW10KKyAgICAgICAg ICAgICAgICBvbGRfZGF0YVsnY2huZ2RfdmFyaWFibGVzJ10gPSB7fQorICAg ICAgICAgICAgICAgIGRlbF92YXJpYWJsZXMgPSB7fQorCisgICAgICAgICAg ICAgICAgIyBJZiBGdW5jdGlvbiBEZWZpbml0aW9uL0FyZ3VtZW50cyBhcmUg Y2hhbmdlZCB0aGVuLAorICAgICAgICAgICAgICAgICMgTWVyZ2Ugb2xkLCBu ZXcgKGFkZGVkLCBjaGFuZ2VkLCBkZWxldGVkKSB2YXJpYWJsZXMsCisgICAg ICAgICAgICAgICAgIyB3aGljaCB3aWxsIGJlIHVzZWQgaW4gdGhlIENSRUFU RSBvciBSRVBMQUNFIEZ1bmN0aW9uIHNxbAorICAgICAgICAgICAgICAgICMg c3RhdGVtZW50CisKKyAgICAgICAgICAgICAgICBpZiBkYXRhWydjaGFuZ2Vf ZnVuYyddOgorICAgICAgICAgICAgICAgICAgICAjIFRvIGNvbXBhcmUgb2xk IGFuZCBuZXcgdmFyaWFibGVzLCBwcmVwYXJpbmcgbmFtZSA6CisgICAgICAg ICAgICAgICAgICAgICMgdmFsdWUgZGljdAorCisgICAgICAgICAgICAgICAg ICAgICMgRGVsZXRlZCBWYXJpYWJsZXMKKyAgICAgICAgICAgICAgICAgICAg aWYgJ3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgJ2RlbGV0ZWQnIGluIGRhdGFb J3ZhcmlhYmxlcyddOgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHYg aW4gZGF0YVsndmFyaWFibGVzJ11bJ2RlbGV0ZWQnXToKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBkZWxfdmFyaWFibGVzW3ZbJ25hbWUnXV0gPSB2 Wyd2YWx1ZSddCisKKyAgICAgICAgICAgICAgICAgICAgaWYgJ3ZhcmlhYmxl cycgaW4gZGF0YSBhbmQgJ2NoYW5nZWQnIGluIGRhdGFbJ3ZhcmlhYmxlcydd OgorICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHYgaW4gZGF0YVsndmFy aWFibGVzJ11bJ2NoYW5nZWQnXToKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBjaG5nZF92YXJpYWJsZXNbdlsnbmFtZSddXSA9IHZbJ3ZhbHVlJ10K KworICAgICAgICAgICAgICAgICAgICBpZiAndmFyaWFibGVzJyBpbiBkYXRh IGFuZCAnYWRkZWQnIGluIGRhdGFbJ3ZhcmlhYmxlcyddOgorICAgICAgICAg ICAgICAgICAgICAgICAgZm9yIHYgaW4gZGF0YVsndmFyaWFibGVzJ11bJ2Fk ZGVkJ106CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2huZ2RfdmFy aWFibGVzW3ZbJ25hbWUnXV0gPSB2Wyd2YWx1ZSddCisKKyAgICAgICAgICAg ICAgICAgICAgZm9yIHYgaW4gb2xkX2RhdGFbJ3ZhcmlhYmxlcyddOgorICAg ICAgICAgICAgICAgICAgICAgICAgb2xkX2RhdGFbJ2NobmdkX3ZhcmlhYmxl cyddW3ZbJ25hbWUnXV0gPSB2Wyd2YWx1ZSddCisKKyAgICAgICAgICAgICAg ICAgICAgIyBQcmVwYXJlIGZpbmFsIGRpY3Qgb2YgbmV3IGFuZCBvbGQgdmFy aWFibGVzCisgICAgICAgICAgICAgICAgICAgIGZvciBuYW1lLCB2YWwgaW4g b2xkX2RhdGFbJ2NobmdkX3ZhcmlhYmxlcyddLml0ZW1zKCk6CisgICAgICAg ICAgICAgICAgICAgICAgICBpZiBuYW1lIG5vdCBpbiBjaG5nZF92YXJpYWJs ZXMgYW5kIG5hbWUgbm90IGluIFwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZGVsX3ZhcmlhYmxlczoKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBjaG5nZF92YXJpYWJsZXNbbmFtZV0gPSB2YWwKKworICAgICAg ICAgICAgICAgICAgICAjIFByZXBhcmUgZGljdCBpbiBbeyduYW1lJzogdmFy X25hbWUsICd2YWx1ZSc6IHZhcl92YWx9LC4uXQorICAgICAgICAgICAgICAg ICAgICAjIGZvcm1hdAorICAgICAgICAgICAgICAgICAgICBmb3IgbmFtZSwg dmFsIGluIGNobmdkX3ZhcmlhYmxlcy5pdGVtcygpOgorICAgICAgICAgICAg ICAgICAgICAgICAgZGF0YVsnbWVyZ2VkX3ZhcmlhYmxlcyddLmFwcGVuZCh7 J25hbWUnOiBuYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3ZhbHVlJzogdmFsfSkKKyAg ICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBpZiAn dmFyaWFibGVzJyBpbiBkYXRhIGFuZCAnY2hhbmdlZCcgaW4gZGF0YVsndmFy aWFibGVzJ106CisgICAgICAgICAgICAgICAgICAgICAgICBmb3IgdiBpbiBk YXRhWyd2YXJpYWJsZXMnXVsnY2hhbmdlZCddOgorICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGRhdGFbJ21lcmdlZF92YXJpYWJsZXMnXS5hcHBlbmQo dikKKworICAgICAgICAgICAgICAgICAgICBpZiAndmFyaWFibGVzJyBpbiBk YXRhIGFuZCAnYWRkZWQnIGluIGRhdGFbJ3ZhcmlhYmxlcyddOgorICAgICAg ICAgICAgICAgICAgICAgICAgZm9yIHYgaW4gZGF0YVsndmFyaWFibGVzJ11b J2FkZGVkJ106CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsn bWVyZ2VkX3ZhcmlhYmxlcyddLmFwcGVuZCh2KQorCisgICAgICAgICAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKAorICAgICAgICAgICAgICAgICAg ICAiLyIuam9pbihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwgJ3VwZGF0ZS5z cWwnXSksCisgICAgICAgICAgICAgICAgICAgIGRhdGE9ZGF0YSwgb19kYXRh PW9sZF9kYXRhCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgZWxz ZToKKyAgICAgICAgICAgICAgICAjIFBhcnNlIFByaXZpbGVnZXMKKyAgICAg ICAgICAgICAgICBpZiAnYWNsJyBpbiBkYXRhOgorICAgICAgICAgICAgICAg ICAgICBkYXRhWydhY2wnXSA9IHBhcnNlX3ByaXZfdG9fZGIoZGF0YVsnYWNs J10sIFsiWCJdKQorCisgICAgICAgICAgICAgICAgYXJncyA9ICcnCisgICAg ICAgICAgICAgICAgY250ID0gMQorICAgICAgICAgICAgICAgIGlmICdhcmd1 bWVudHMnIGluIGRhdGE6CisgICAgICAgICAgICAgICAgICAgIGZvciBhIGlu IGRhdGFbJ2FyZ3VtZW50cyddOgorICAgICAgICAgICAgICAgICAgICAgICAg aWYgKCgnYXJnbW9kZScgaW4gYSBhbmQgYVsnYXJnbW9kZSddICE9ICdPVVQn IGFuZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFbJ2FyZ21vZGUn XSBpcyBub3QgTm9uZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAp IG9yICdhcmdub2RlJyBub3QgaW4gYSk6CisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaWYgJ2FyZ21vZGUnIGluIGE6CisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFyZ3MgKz0gYVsnYXJnbW9kZSddICsgIiAiCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgJ2FyZ25hbWUnIGluIGEg YW5kIGFbJ2FyZ25hbWUnXSAhPSAnJ1wKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGFuZCBhWydhcmduYW1lJ10gaXMgbm90IE5vbmU6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgKz0gc2Vs Zi5xdElkZW50KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2VsZi5jb25uLCBhWydhcmduYW1lJ10pICsgIiAiCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgJ2FyZ3R5cGUnIGluIGE6CisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3MgKz0gYVsnYXJndHlwZSdd ICsgIiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgY250IDwg bGVuKGRhdGFbJ2FyZ3VtZW50cyddKToKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYXJncyArPSAnLCAnCisgICAgICAgICAgICAgICAgICAg ICAgICBjbnQgKz0gMQorCisgICAgICAgICAgICAgICAgZGF0YVsnZnVuY19h cmdzJ10gPSBhcmdzCisgICAgICAgICAgICAgICAgIyBDcmVhdGUgbW9kZQor ICAgICAgICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bihbc2VsZi5zcWxfdGVtcGxhdGVfcGF0aCwKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjcmVhdGUuc3FsJ10p LCBkYXRhPWRhdGEpCisgICAgICAgICAgICByZXR1cm4gVHJ1ZSwgU1FMCisK KyAgICAgICAgZXhjZXB0IEV4Y2VwdGlvbiBhcyBlOgorICAgICAgICAgICAg cmV0dXJuIEZhbHNlLCBlCisKKyAgICBkZWYgX2ZldGNoX3Byb3BlcnRpZXMo c2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgZm5pZD1Ob25lKToKKyAgICAg ICAgIiIiCisgICAgICAgIFJldHVybiBGdW5jdGlvbiBQcm9wZXJ0aWVzIHdo aWNoIHdpbGwgYmUgdXNlZCBpbiBwcm9wZXJ0aWVzLAorICAgICAgICBtc3Fs IGZ1bmN0aW9uLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6 IFNlcnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQK KyAgICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNj aWQ6IFNjaGVtYSBJZAorICAgICAgICAgICAgZm5pZDogRnVuY3Rpb24gSWQK KyAgICAgICAgIiIiCisKKyAgICAgICAgcmVzcF9kYXRhID0ge30KKworICAg ICAgICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYuc3Fs X3RlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgJ3Byb3BlcnRpZXMuc3FsJ10pLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2NpZD1zY2lkLCBmbmlkPWZuaWQpCisgICAg ICAgIHN0YXR1cywgcmVzID0gc2VsZi5jb25uLmV4ZWN1dGVfZGljdChTUUwp CisgICAgICAgIGlmIG5vdCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4g aW50ZXJuYWxfc2VydmVyX2Vycm9yKGVycm9ybXNnPXJlcykKKworICAgICAg ICByZXNwX2RhdGEgPSByZXNbJ3Jvd3MnXVswXQorCisgICAgICAgICMgR2V0 IGZvcm1hdHRlZCBBcmd1bWVudHMKKyAgICAgICAgZnJtdGRfcGFyYW1zLCBm cm10ZF9wcm9hcmdzID0gc2VsZi5fZm9ybWF0X2FyZ3VtZW50c19mcm9tX2Ri KHJlc3BfZGF0YSkKKyAgICAgICAgcmVzcF9kYXRhLnVwZGF0ZShmcm10ZF9w YXJhbXMpCisgICAgICAgIHJlc3BfZGF0YS51cGRhdGUoZnJtdGRfcHJvYXJn cykKKworICAgICAgICAjIEZldGNoIHByaXZpbGVnZXMKKyAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0 ZV9wYXRoLCAnYWNsLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGZuaWQ9Zm5pZCkKKyAgICAgICAgc3RhdHVzLCBwcm9hY2xyZXMg PSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KFNRTCkKKyAgICAgICAgaWYgbm90 IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJf ZXJyb3IoZXJyb3Jtc2c9cmVzKQorCisgICAgICAgICMgR2V0IEZvcm1hdHRl ZCBQcml2aWxlZ2VzCisgICAgICAgIHJlc3BfZGF0YS51cGRhdGUoc2VsZi5f Zm9ybWF0X3Byb2FjbF9mcm9tX2RiKHByb2FjbHJlc1sncm93cyddKSkKKwor ICAgICAgICAjIFNldCBTeXN0ZW0gRnVuY3Rpb25zIFN0YXR1cworICAgICAg ICByZXNwX2RhdGFbJ3N5c2Z1bmMnXSA9IEZhbHNlCisgICAgICAgIGlmIGZu aWQgPD0gc2VsZi5tYW5hZ2VyLmRiX2luZm9bZGlkXVsnZGF0bGFzdHN5c29p ZCddOgorICAgICAgICAgICAgcmVzcF9kYXRhWydzeXNmdW5jJ10gPSBUcnVl CisKKyAgICAgICAgIyBHZXQgZm9ybWF0dGVkIFNlY3VyaXR5IExhYmVscwor ICAgICAgICBpZiAnc2VjbGFiZWxzJyBpbiByZXNwX2RhdGE6CisgICAgICAg ICAgICByZXNwX2RhdGEudXBkYXRlKHBhcnNlX3NlY19sYWJlbHNfZnJvbV9k YihyZXNwX2RhdGFbJ3NlY2xhYmVscyddKSkKKworICAgICAgICAjIEdldCBm b3JtYXR0ZWQgVmFyaWFibGUKKyAgICAgICAgcmVzcF9kYXRhLnVwZGF0ZShw YXJzZV92YXJpYWJsZXNfZnJvbV9kYihbCisgICAgICAgICAgICB7InNldGNv bmZpZyI6IHJlc3BfZGF0YVsncHJvY29uZmlnJ119XSkpCisKKyAgICAgICAg cmV0dXJuIHJlc3BfZGF0YQorCisgICAgZGVmIF9nZXRfc2NoZW1hKHNlbGYs IHNjaWQpOgorICAgICAgICAiIiIKKyAgICAgICAgUmV0dXJucyBTY2hlbWEg TmFtZSBmcm9tIGl0cyBPSUQuCisKKyAgICAgICAgQXJnczoKKyAgICAgICAg ICAgIHNjaWQ6IFNjaGVtYSBJZAorICAgICAgICAiIiIKKyAgICAgICAgU1FM ID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnNxbF90ZW1wbGF0 ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9z Y2hlbWEuc3FsJ10pLCBzY2lkPXNjaWQpCisKKyAgICAgICAgc3RhdHVzLCBz Y2hlbWFfbmFtZSA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihTUUwpCisK KyAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9c2NoZW1hX25hbWUpCisK KyAgICAgICAgcmV0dXJuIHNjaGVtYV9uYW1lCisKKyAgICBAY2hlY2tfcHJl Y29uZGl0aW9uCisgICAgZGVmIGRlcGVuZGVudHMoc2VsZiwgZ2lkLCBzaWQs IGRpZCwgc2NpZCwgZm5pZCk6CisgICAgICAgICIiIgorICAgICAgICBUaGlz IGZ1bmN0aW9uIGdldCB0aGUgZGVwZW5kZW50cyBhbmQgcmV0dXJuIGFqYXgg cmVzcG9uc2UKKyAgICAgICAgZm9yIHRoZSBGdW5jdGlvbiBub2RlLgorCisg ICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNlcnZlciBHcm91cCBJ ZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAgICAgICAgICAgIGRp ZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6IFNjaGVtYSBJZAor ICAgICAgICAgICAgZG9pZDogRnVuY3Rpb24gSWQKKyAgICAgICAgIiIiCisg ICAgICAgIGRlcGVuZGVudHNfcmVzdWx0ID0gc2VsZi5nZXRfZGVwZW5kZW50 cyhzZWxmLmNvbm4sIGZuaWQpCisgICAgICAgIHJldHVybiBhamF4X3Jlc3Bv bnNlKAorICAgICAgICAgICAgcmVzcG9uc2U9ZGVwZW5kZW50c19yZXN1bHQs CisgICAgICAgICAgICBzdGF0dXM9MjAwCisgICAgICAgICkKKworICAgIEBj aGVja19wcmVjb25kaXRpb24KKyAgICBkZWYgZGVwZW5kZW5jaWVzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQsIGZuaWQpOgorICAgICAgICAiIiIKKyAg ICAgICAgVGhpcyBmdW5jdGlvbiBnZXQgdGhlIGRlcGVuZGVuY2llcyBhbmQg cmV0dXJuIGFqYXggcmVzcG9uc2UKKyAgICAgICAgZm9yIHRoZSBGdW5jdGlv biBub2RlLgorCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICBnaWQ6IFNl cnZlciBHcm91cCBJZAorICAgICAgICAgICAgc2lkOiBTZXJ2ZXIgSWQKKyAg ICAgICAgICAgIGRpZDogRGF0YWJhc2UgSWQKKyAgICAgICAgICAgIHNjaWQ6 IFNjaGVtYSBJZAorICAgICAgICAgICAgZG9pZDogRnVuY3Rpb24gSWQKKyAg ICAgICAgIiIiCisgICAgICAgIGRlcGVuZGVuY2llc19yZXN1bHQgPSBzZWxm LmdldF9kZXBlbmRlbmNpZXMoc2VsZi5jb25uLCBmbmlkKQorICAgICAgICBy ZXR1cm4gYWpheF9yZXNwb25zZSgKKyAgICAgICAgICAgIHJlc3BvbnNlPWRl cGVuZGVuY2llc19yZXN1bHQsCisgICAgICAgICAgICBzdGF0dXM9MjAwCisg ICAgICAgICkKKworRnVuY3Rpb25WaWV3LnJlZ2lzdGVyX25vZGVfdmlldyhi bHVlcHJpbnQpCisKKworY2xhc3MgUHJvY2VkdXJlTW9kdWxlKFNjaGVtYUNo aWxkTW9kdWxlKToKKyAgICAiIiIKKyAgICBjbGFzcyBQcm9jZWR1cmVNb2R1 bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgorCisgICAgICAgIFRoaXMgY2xhc3Mg cmVwcmVzZW50cyBUaGUgUHJvY2VkdXJlcyBNb2R1bGUuCisKKyAgICBNZXRo b2RzOgorICAgIC0tLS0tLS0KKyAgICAqIF9faW5pdF9fKCphcmdzLCAqKmt3 YXJncykKKyAgICAgIC0gSW5pdGlhbGl6ZSB0aGUgUHJvY2VkdXJlcyBNb2R1 bGUuCisKKyAgICAqIGdldF9ub2RlcyhnaWQsIHNpZCwgZGlkLCBzY2lkKQor ICAgICAgLSBHZW5lcmF0ZSB0aGUgUHJvY2VkdXJlcyBjb2xsZWN0aW9uIG5v ZGUuCisKKyAgICAqIG5vZGVfaW5vZGUoKToKKyAgICAgIC0gUmV0dXJucyBQ cm9jZWR1cmVzIG5vZGUgYXMgbGVhZiBub2RlLgorCisgICAgKiBzY3JpcHRf bG9hZCgpCisgICAgICAtIExvYWQgdGhlIG1vZHVsZSBzY3JpcHQgZm9yIFBy b2NlZHVyZXMsIHdoZW4gc2NoZW1hIG5vZGUgaXMKKyAgICAgICAgaW5pdGlh bGl6ZWQuCisKKyAgICAiIiIKKworICAgIE5PREVfVFlQRSA9ICdwcm9jZWR1 cmUnCisgICAgQ09MTEVDVElPTl9MQUJFTCA9IGdldHRleHQoIlByb2NlZHVy ZXMiKQorCisgICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJn cyk6CisgICAgICAgICIiIgorICAgICAgICBJbml0aWFsaXplIHRoZSBQcm9j ZWR1cmUgTW9kdWxlLgorICAgICAgICBBcmdzOgorICAgICAgICAgICAgKmFy Z3M6CisgICAgICAgICAgICAqKmt3YXJnczoKKyAgICAgICAgIiIiCisgICAg ICAgIHN1cGVyKFByb2NlZHVyZU1vZHVsZSwgc2VsZikuX19pbml0X18oKmFy Z3MsICoqa3dhcmdzKQorCisgICAgICAgIHNlbGYubWluX3ZlciA9IDkwMTAw CisgICAgICAgIHNlbGYubWF4X3ZlciA9IE5vbmUKKyAgICAgICAgc2VsZi5z ZXJ2ZXJfdHlwZSA9IFsncHBhcyddCisKKyAgICBkZWYgZ2V0X25vZGVzKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgorICAgICAgICAiIiIKKyAgICAg ICAgR2VuZXJhdGUgUHJvY2VkdXJlcyBjb2xsZWN0aW9uIG5vZGUuCisgICAg ICAgICIiIgorICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJf Y29sbGVjdGlvbl9ub2RlKHNjaWQpCisKKyAgICBAcHJvcGVydHkKKyAgICBk ZWYgbm9kZV9pbm9kZShzZWxmKToKKyAgICAgICAgIiIiCisgICAgICAgIE1h a2UgdGhlIG5vZGUgYXMgbGVhZiBub2RlLgorICAgICAgICBSZXR1cm5zOgor ICAgICAgICAgICAgRmFsc2UgYXMgdGhpcyBub2RlIGRvZXNuJ3QgaGF2ZSBj aGlsZCBub2Rlcy4KKyAgICAgICAgIiIiCisgICAgICAgIHJldHVybiBGYWxz ZQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYp OgorICAgICAgICAiIiIKKyAgICAgICAgTG9hZCB0aGUgbW9kdWxlIHNjcmlw dCBmb3IgUHJvY2VkdXJlcywgd2hlbiB0aGUKKyAgICAgICAgc2NoZW1hIG5v ZGUgaXMgaW5pdGlhbGl6ZWQuCisgICAgICAgICIiIgorICAgICAgICByZXR1 cm4gc2NoZW1hcy5TY2hlbWFNb2R1bGUuTk9ERV9UWVBFCisKKworcHJvY2Vk dXJlX2JsdWVwcmludCA9IFByb2NlZHVyZU1vZHVsZShfX25hbWVfXykKKwor CitjbGFzcyBQcm9jZWR1cmVWaWV3KEZ1bmN0aW9uVmlldyk6CisKKyAgICBu b2RlX3R5cGUgPSBwcm9jZWR1cmVfYmx1ZXByaW50Lm5vZGVfdHlwZQorCisg ICAgZGVmIF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAg ICAgICIiIgorICAgICAgICBJbml0aWFsaXplIHRoZSBGdW5jdGlvbiBNb2R1 bGUuCisgICAgICAgIEFyZ3M6CisgICAgICAgICAgICAqYXJnczoKKyAgICAg ICAgICAgICoqa3dhcmdzOgorICAgICAgICAiIiIKKyAgICAgICAgc3VwZXIo UHJvY2VkdXJlVmlldywgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdz KQorCisgICAgQHByb3BlcnR5CisgICAgZGVmIHJlcXVpcmVkX2FyZ3Moc2Vs Zik6CisgICAgICAgICIiIgorICAgICAgICBSZXR1cm5zIFJlcXVpcmVkIGFy Z3VtZW50cyBmb3IgcHJvY2VkdXJlcyBub2RlLgorICAgICAgICBXaGVyZQor ICAgICAgICAgICAgUmVxdWlyZWQgQXJnczoKKyAgICAgICAgICAgICAgICBu YW1lOiAgICAgICAgICAgTmFtZSBvZiB0aGUgRnVuY3Rpb24KKyAgICAgICAg ICAgICAgICBwcm9uYW1lc3BhY2U6ICAgRnVuY3Rpb24gTmFtZXNwYWNlCisg ICAgICAgICAgICAgICAgbGFubmFtZTogICAgICAgIEZ1bmN0aW9uIExhbmd1 YWdlIE5hbWUKKyAgICAgICAgICAgICAgICBwcm9zcmM6ICAgICAgICAgRnVu Y3Rpb24gQ29kZQorICAgICAgICAiIiIKKyAgICAgICAgcmV0dXJuIFsnbmFt ZScsCisgICAgICAgICAgICAgICAgJ3Byb25hbWVzcGFjZScsCisgICAgICAg ICAgICAgICAgJ2xhbm5hbWUnLAorICAgICAgICAgICAgICAgICdwcm9zcmMn XQorCisgICAgZGVmIG1vZHVsZV9qcyhzZWxmKToKKyAgICAgICAgIiIiCisg ICAgICAgIExvYWQgSlMgZmlsZSAocHJvY2VkdXJlcy5qcykgZm9yIHRoaXMg bW9kdWxlLgorICAgICAgICAiIiIKKworICAgICAgICByZXR1cm4gbWFrZV9y ZXNwb25zZSgKKyAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAg ICAgICAgICAgICAicHJvY2VkdXJlL2pzL3Byb2NlZHVyZXMuanMiLAorICAg ICAgICAgICAgICAgIF89Z2V0dGV4dAorICAgICAgICAgICAgKSwKKyAgICAg ICAgICAgIDIwMCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC1q YXZhc2NyaXB0J30KKyAgICAgICAgKQorCitQcm9jZWR1cmVWaWV3LnJlZ2lz dGVyX25vZGVfdmlldyhwcm9jZWR1cmVfYmx1ZXByaW50KQpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3N0YXRpYy9pbWcvY29sbC1m dW5jdGlvbi5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvc3RhdGlj L2ltZy9jb2xsLWZ1bmN0aW9uLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw Li5jNDQ4NzRlNTU3NGU2MjRjMjY4NzY4OWFjNzVmM2JhNGVkNjllODExCkdJ VCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzNDkKemNtZUFTQE4/KG9sSHlgdVZC cSFpYTB2cF4wd0IhNjM/d3lsYEdiTCFhZXo7VkUwQ1ZMPTg7Iz8qYC0oaF5z Umk5CnoqPiZ+YykzNFBGP31wYzBvT31GVCZlWXBnMyFsQ0p7e1FwdUtQbH1H YXdiME4rVnRYcnkmKWVeOClIZTNVb2VCaQp6dm0wcVo0cmhUIVdIRkhUMEFz aDQqPipyaXFOal52aHtXYUNlc3toRDF7XkZPdD9xdlB6ckkofnZGekVnRUVh Q1QKektuOCZmQ2N8VEBvSHlEd3wzMCFJblh+VnA9RERRQHxFfVNpV05EZjFk NW97dk9TOV48akg2SlElIXtYQTY4fj1UCnpVVkhVLShXUilfelpaWjFfeHQo eGpofnJYVy17fUJjJDs0aHZgbj9jSEtIVVh1X1Y8aHhoTkcjRiZHJmI4dE5K dAp6PktkN2I3QEFyY218R2NgWTgja1k4NWw1RG9ffm08QXZacklHcCFQJiE5 ZHIqNX53R3ska0B1biNMQj0tK1dASDMKVTtNRFpjSDkhcHZwMDBpXz56b3By MDZLU3FjbU16WgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3N0YXRpYy9pbWcvY29sbC1w cm9jZWR1cmUucG5nIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3N0YXRp Yy9pbWcvY29sbC1wcm9jZWR1cmUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAuLjdjMTNhOWJjNzNhNzgyYjUxMzkwOTVhZjU5NmUxNWQ3YjY4ZGQyMGMK R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMzNwp6Y21lQVNATj8ob2xIeWB1 VkJxIWlhMHZwXjB3QiE3Mz8kIyllRlBGdjVBWD9iMT05RUMlc0NibV5uVU4m ZHNDKWQKeiVnJW0oPyVjSk9tVUJeMiYpMlRLUiRUbzVgfWI/cil4NmV4Jnd4 cjlPTT83QDg2Mk03TkNSPj4zcF5yPWZ3VHUwCnp5UGVGbzEyUGdsVF52ST10 fHVvWGdhb0I5RnNtZ2lHYTU3cHhfWE1iYUJGSHhPMHpPWldAV3pBQHspM0Jk IzFFdgp6Zj5uUz13UnlsKTBnc0lEWUskOE0xVD5taih3R2phRVU8al8pTHtY S1ZkaG4oMkBpWGB0a007KDhTYj1qJXglOE8KeiYmS2R6bVopUndHek1Sd1d2 VjV2NWhXPiFDODxgKU1YNWxGIU58YlNQfWpndipUXikpKEEzSm4reylOWSty WjRxCnp6K2opO3JUSGl0YWBSSSUoPCh0NDQwSGBGZnFGdVdqSUImZXRQRnF9 ZkkxQ01PJUdpSSlXRzJCPmdUZX5EV000ZgpEQyZGcSEKCmxpdGVyYWwgMApI Y21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy9zdGF0aWMvaW1nL2Z1bmN0aW9uLnBuZyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy9zdGF0aWMvaW1nL2Z1bmN0aW9uLnBuZwpuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwLi42NTY4NTRhMDE5MWI1ZGQ1ZDQ2NWY5MGNmYmNlZWJk YzM5MTNmMWEyCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAzMjUKemNtZUFT QE4/KG9sSHlgdVZCcSFpYTB2cF4wd0IhNzM/JCMpZUZQSEYzaClWVzE9M1Uz Sm58fCF5WSRNUmhhZG17Cnp7cn5VWT1idX5kZTRjZ3FaUzlpaD17KmxxSXYk a0dlJHYwPVd5K294K2ttUFdPTT83QDg2Mk03TkNSPj4zcF5yPQp6ZndUdTB5 UGVGbzEyVGQ8VF52ST10fHVvckZnYk16JW5IMmUhRWgjX3NJWmE0YTgoLXtX Mj9sfUROYDw4WUg7Iy0KenN0fS1aO0pfNnxIWkMzP1c1PExeMz13Qm5nKGw/ byt9ZHM0JGVVelUlJEMqblBMKGxhX1hQJXFpbHhHYms3c0IhCnowWm1zZWFn OFdSTmkwZFZOLWp6VFFWZDIwaDZjS1pNIUUpdUF3fnZQQ2RPN0tyckhMa1J0 NSgxLXMhREUoVTY7OwpsbDleVHMoT19UKykmTnYoVnI1X2soUXM7ZD1vKzh+ MjJXUSVtdnY0Rk8jc0drYUFnMWgKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy9zdGF0aWMv aW1nL3Byb2NlZHVyZS5wbmcgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv c3RhdGljL2ltZy9wcm9jZWR1cmUucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAuLjhiNjVkZmY5ZWIyYzM3M2RmMDMxNjY5YWRiYTdhODJjMGFlMmFhYTYK R0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMyMgp6Y21lQVNATj8ob2xIeWB1 VkJxIWlhMHZwXjB3QiE3Mz8kIyllRlBGdjVBWD9iMT05Q3Mle21xb15tNkNV QTFffH4KenxOSG1icWVyank/UiZJciswRXxtT0ohdmppO0olfUg8dUxNeSRu PiFTUTZ3SCU7NTBzTWpEWEFTPk8+XzQ1VTU0CnoqeklKdDlncT5ePkVhbHxh WG1TfmZ5dD4kVXs+SHc0fjg9ZE1UTHpWaE82NHg3K1dRI1BNTEQpUWlHR3ZR LXVKUAp6MHwlfSF2VF5iRjcmfDZSVnUoMXFEbHtSdD1oa2xYTSYyWj1WeiNX bE1IM2lTI2J6KXQjNksxSz9zdTxvOHFqcHIKejY0IXs1bCpFISR0S18wb0Fq TSMwVX0mZ29WNW48azhlKFdfV25nWSlZXkg1c1dAVFdvUHd2dXU2Yi1yZ0RW YkBOCnBBUG9rKDI5YGlRQXg2ZWxDTUgkfUtuKn5oMkIpVG50XnNPYkBPMVRh Uz84M3sxT1FoI1pGVD92CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL2Nzcy9mdW5jdGlvbi5jc3MgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL2Nzcy9mdW5jdGlvbi5jc3MKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTZiMmU3MQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vY3NzL2Z1bmN0aW9uLmNzcwpAQCAtMCwwICsxLDMg QEAKKy5mdW5jdGlvbnNfY29kZSB7CisgICAgaGVpZ2h0OiAxMzBweCAhaW1w b3J0YW50OworfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vanMvZnVuY3Rpb25zLmpzIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9qcy9mdW5jdGlvbnMuanMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTgzZGYyMQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vanMvZnVuY3Rpb25zLmpzCkBAIC0wLDAgKzEsNDM3IEBA CisvKiBDcmVhdGUgYW5kIFJlZ2lzdGVyIEZ1bmN0aW9uIENvbGxlY3Rpb24g YW5kIE5vZGUuICovCitkZWZpbmUoCisgICAgICAgIFsnanF1ZXJ5JywgJ3Vu ZGVyc2NvcmUnLCAndW5kZXJzY29yZS5zdHJpbmcnLAorICAgICAgICAgJ3Bn YWRtaW4nLCAncGdhZG1pbi5icm93c2VyJywgJ2FsZXJ0aWZ5JywKKyAgICAg ICAgICAncGdhZG1pbi5icm93c2VyLmNvbGxlY3Rpb24nLCAncGdhZG1pbi5i cm93c2VyLnNlcnZlci5wcml2aWxlZ2UnXSwKK2Z1bmN0aW9uKCQsIF8sIFMs IHBnQWRtaW4sIHBnQnJvd3NlciwgYWxlcnRpZnkpIHsKKworICBpZiAoIXBn QnJvd3Nlci5Ob2Rlc1snY29sbC1mdW5jdGlvbiddKSB7CisgICAgdmFyIGZ1 bmN0aW9ucyA9IHBnQWRtaW4uQnJvd3Nlci5Ob2Rlc1snY29sbC1mdW5jdGlv biddID0KKyAgICAgIHBnQWRtaW4uQnJvd3Nlci5Db2xsZWN0aW9uLmV4dGVu ZCh7CisgICAgICAgIG5vZGU6ICdmdW5jdGlvbicsCisgICAgICAgIGxhYmVs OiAne3sgXygnRnVuY3Rpb25zJykgfX0nLAorICAgICAgICB0eXBlOiAnY29s bC1mdW5jdGlvbicsCisgICAgICAgIGNvbHVtbnM6IFsnbmFtZScsICdmdW5j b3duZXInLCAnZGVzY3JpcHRpb24nXQorICAgICAgfSk7CisgIH07CisKKyAg Ly8gU2VjdXJpdHkgTW9kZWwKKyAgdmFyIFNlY3VyaXR5TW9kZWwgPSBCYWNr Zm9ybS5TZWN1cml0eU1vZGVsID0gcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9k ZWwuZXh0ZW5kKHsKKyAgICBkZWZhdWx0czogeworICAgICAgcHJvdmlkZXI6 IG51bGwsCisgICAgICBsYWJlbDogbnVsbAorICAgIH0sCisgICAgc2NoZW1h OiBbeworICAgICAgaWQ6ICdwcm92aWRlcicsIGxhYmVsOiAne3sgXygnUHJv dmlkZXInKSB9fScsCisgICAgICB0eXBlOiAndGV4dCcKKyAgICB9LHsKKyAg ICAgIGlkOiAnbGFiZWwnLCBsYWJlbDogJ3t7IF8oJ1NlY3VyaXR5IExhYmVs JykgfX0nLAorICAgICAgdHlwZTogJ3RleHQnCisgICAgfV0sCisgICAgdmFs aWRhdGU6IGZ1bmN0aW9uKCkgeworICAgICAgdmFyIGVyciA9IHt9LAorICAg ICAgICAgIGVycm1zZyA9IG51bGwsCisgICAgICAgICAgZGF0YSA9IHRoaXMu dG9KU09OKCk7CisKKyAgICAgIGlmIChfLmlzVW5kZWZpbmVkKGRhdGEubGFi ZWwpIHx8CisgICAgICAgIF8uaXNOdWxsKGRhdGEubGFiZWwpIHx8CisgICAg ICAgIFN0cmluZyhkYXRhLmxhYmVsKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywg JycpID09ICcnKSB7CisgICAgICAgIHJldHVybiBfKCJQbGVhc2Ugc3BlY2lm eSB0aGUgdmFsdWUgZm9yIGFsbCB0aGUgc2VjdXJpdHkgcHJvdmlkZXJzLiIp OworICAgICAgfQorICAgICAgcmV0dXJuIG51bGw7CisgICAgfQorICB9KTsK KworICAvLyBBcmd1bWVudCBNb2RlbAorICB2YXIgQXJndW1lbnRNb2RlbCA9 IHBnQWRtaW4uQnJvd3Nlci5Ob2RlLk1vZGVsLmV4dGVuZCh7CisgICAgaWRB dHRyaWJ1dGU6ICdhcmdpZCcsCisgICAgZGVmYXVsdHM6IHsKKyAgICAgIGFy Z2lkOiB1bmRlZmluZWQsCisgICAgICBhcmd0eXBlOiB1bmRlZmluZWQsCisg ICAgICBhcmdtb2RlOiB1bmRlZmluZWQsCisgICAgICBhcmduYW1lOiB1bmRl ZmluZWQsCisgICAgICBhcmdkZWZ2YWw6IHVuZGVmaW5lZAorICAgIH0sCisg ICAgc2NoZW1hOiBbeworICAgICAgaWQ6ICdhcmdpZCcsIHZpc2libGU6IGZh bHNlLCB0eXBlOiAndGV4dCcsCisgICAgICBtb2RlOiBbJ3Byb3BlcnRpZXMn LCAnZWRpdCcsJ2NyZWF0ZSddCisgICAgICB9LHsKKyAgICAgICAgaWQ6ICdh cmd0eXBlJywgbGFiZWw6J3t7IF8oJ0RhdGEgVHlwZScpIH19JywgY2VsbDoK KyAgICAgICAgJ25vZGUtYWpheC1vcHRpb25zJywgY2VsbEhlYWRlckNsYXNz ZXM6ICd3aWR0aF9wZXJjZW50XzMwJywKKyAgICAgICAgY29udHJvbDogJ25v ZGUtYWpheC1vcHRpb25zJywgdHlwZTogJ3RleHQnLCB1cmw6ICdnZXRfdHlw ZXMnLAorICAgICAgICBlZGl0YWJsZTogZnVuY3Rpb24obSkgeworICAgICAg ICAgIHJldHVybiBfLmlzVW5kZWZpbmVkKG0uaXNOZXcpID8gdHJ1ZSA6IG0u aXNOZXcoKTsKKyAgICAgICAgfQorICAgICAgfSx7CisgICAgICAgIGlkOiAn YXJnbW9kZScsIGxhYmVsOid7eyBfKCdNb2RlJykgfX0nLCB0eXBlOiAnb3B0 aW9ucycsCisgICAgICAgIGNvbnRyb2w6ICdub2RlLWFqYXgtb3B0aW9ucycs IGNlbGxIZWFkZXJDbGFzc2VzOid3aWR0aF9wZXJjZW50XzIwJywKKyAgICAg ICAgb3B0aW9uczpbCisgICAgICAgICAgeydsYWJlbCc6ICdJTicsICd2YWx1 ZSc6ICdJTid9LAorICAgICAgICAgIHsnbGFiZWwnOiAnT1VUJywgJ3ZhbHVl JzogJ09VVCd9LAorICAgICAgICAgIHsnbGFiZWwnOiAnSU5PVVQnLCAndmFs dWUnOiAnSU5PVVQnfSwKKyAgICAgICAgICB7J2xhYmVsJzogJ1ZBUklBRElD JywgJ3ZhbHVlJzogJ1ZBUklBRElDJ30KKyAgICAgICAgXSwgZWRpdGFibGU6 IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgIHJldHVybiBfLmlzVW5kZWZp bmVkKG0uaXNOZXcpID8gdHJ1ZSA6IG0uaXNOZXcoKTsKKyAgICAgICAgICAg fQorICAgICAgfSx7CisgICAgICAgIGlkOiAnYXJnbmFtZScsIGxhYmVsOid7 eyBfKCdBcmd1bWVudCBOYW1lJykgfX0nLCB0eXBlOiAndGV4dCcsCisgICAg ICAgIGNlbGw6ICdzdHJpbmcnLCBlZGl0YWJsZTogdHJ1ZSwgY2VsbEhlYWRl ckNsYXNzZXM6J3dpZHRoX3BlcmNlbnRfMzAnLAorICAgICAgfSx7CisgICAg ICAgIGlkOiAnYXJnZGVmdmFsJywgbGFiZWw6J3t7IF8oJ0RlZmF1bHQgVmFs dWUnKSB9fScsIHR5cGU6ICd0ZXh0JywKKyAgICAgICAgY2VsbDogJ3N0cmlu ZycsIGVkaXRhYmxlOiB0cnVlLCAgY2VsbEhlYWRlckNsYXNzZXM6J3dpZHRo X3BlcmNlbnRfMjAnCisgICAgICB9CisgICAgXSwKKyAgICB0b0pTT046IEJh Y2tib25lLk1vZGVsLnByb3RvdHlwZS50b0pTT04KKyAgfSk7CisKKyAgaWYg KCFwZ0Jyb3dzZXIuTm9kZXNbJ2Z1bmN0aW9uJ10pIHsKKyAgICBwZ0FkbWlu LkJyb3dzZXIuTm9kZXNbJ2Z1bmN0aW9uJ10gPSBwZ0Jyb3dzZXIuTm9kZS5l eHRlbmQoeworICAgICAgdHlwZTogJ2Z1bmN0aW9uJywKKyAgICAgIGxhYmVs OiAne3sgXygnRnVuY3Rpb24nKSB9fScsCisgICAgICBjb2xsZWN0aW9uX3R5 cGU6ICdjb2xsLWZ1bmN0aW9uJywKKyAgICAgIGhhc1NRTDogdHJ1ZSwKKyAg ICAgIGhhc0RlcGVuZHM6IHRydWUsCisgICAgICBwYXJlbnRfdHlwZTogWydz Y2hlbWEnXSwKKyAgICAgIEluaXQ6IGZ1bmN0aW9uKGFyZ3MpIHsKKyAgICAg ICAgLyogQXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9mIG1lbnVzICov CisgICAgICAgIGlmICh0aGlzLmluaXRpYWxpemVkKQorICAgICAgICAgICAg cmV0dXJuOworCisgICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlOwor CisgICAgICAgIHBnQnJvd3Nlci5hZGRfbWVudXMoW3sKKyAgICAgICAgICBu YW1lOiAnY3JlYXRlX2Z1bmN0aW9uX29uX2NvbGwnLCBub2RlOiAnY29sbC1m dW5jdGlvbicsIG1vZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBb J29iamVjdCcsICdjb250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJv cGVydGllcycsCisgICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlv cml0eTogNCwgbGFiZWw6ICd7eyBfKCdGdW5jdGlvbi4uLicpIH19JywKKyAg ICAgICAgICBpY29uOiAnd2NUYWJJY29uIGljb24tZnVuY3Rpb24nLCBkYXRh OiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAg IGVuYWJsZTogJ2NhbkNyZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAgICAg bmFtZTogJ2NyZWF0ZV9mdW5jdGlvbicsIG5vZGU6ICdmdW5jdGlvbicsIG1v ZHVsZTogdGhpcywKKyAgICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdj b250ZXh0J10sIGNhbGxiYWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisg ICAgICAgICAgY2F0ZWdvcnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFi ZWw6ICd7eyBfKCdGdW5jdGlvbi4uLicpIH19JywKKyAgICAgICAgICBpY29u OiAnd2NUYWJJY29uIGljb24tZnVuY3Rpb24nLCBkYXRhOiB7YWN0aW9uOiAn Y3JlYXRlJywgY2hlY2s6IHRydWV9LAorICAgICAgICAgIGVuYWJsZTogJ2Nh bkNyZWF0ZScKKyAgICAgICAgfSx7CisgICAgICAgICAgbmFtZTogJ2NyZWF0 ZV9mdW5jdGlvbicsIG5vZGU6ICdzY2hlbWEnLCBtb2R1bGU6IHRoaXMsCisg ICAgICAgICAgYXBwbGllczogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxs YmFjazogJ3Nob3dfb2JqX3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVn b3J5OiAnY3JlYXRlJywgcHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnRnVu Y3Rpb24uLi4nKSB9fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBp Y29uLWZ1bmN0aW9uJywgZGF0YToge2FjdGlvbjogJ2NyZWF0ZScsIGNoZWNr OiBmYWxzZX0sCisgICAgICAgICAgZW5hYmxlOiAnY2FuQ3JlYXRlJworICAg ICAgICB9CisgICAgICAgIF0pOworCisgICAgICB9LAorICAgICAgY2FuRHJv cDogcGdCcm93c2VyLk5vZGVzWydzY2hlbWEnXS5jYW5DaGlsZERyb3AsCisg ICAgICBjYW5Ecm9wQ2FzY2FkZTogcGdCcm93c2VyLk5vZGVzWydzY2hlbWEn XS5jYW5DaGlsZERyb3AsCisgICAgICBtb2RlbDogcGdBZG1pbi5Ccm93c2Vy Lk5vZGUuTW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgaW5pdGlhbGl6ZTogZnVu Y3Rpb24oYXR0cnMsIGFyZ3MpIHsKKyAgICAgICAgICB2YXIgaXNOZXcgPSAo Xy5zaXplKGF0dHJzKSA9PT0gMCk7CisgICAgICAgICAgaWYgKGlzTmV3KSB7 CisgICAgICAgICAgICAvLyBTZXQgU2VsZWN0ZWQgU2NoZW1hCisgICAgICAg ICAgICBzY2hlbWFfaWQgPSBhcmdzLm5vZGVfaW5mby5zY2hlbWEuX2lkCisg ICAgICAgICAgICB0aGlzLnNldCh7J3Byb25hbWVzcGFjZSc6IHNjaGVtYV9p ZH0sIHtzaWxlbnQ6IHRydWV9KTsKKworICAgICAgICAgICAgLy8gU2V0IEN1 cnJlbnQgVXNlcgorICAgICAgICAgICAgdmFyIHVzZXJJbmZvID0gcGdCcm93 c2VyLnNlcnZlckluZm9bYXJncy5ub2RlX2luZm8uc2VydmVyLl9pZF0udXNl cjsKKyAgICAgICAgICAgIHRoaXMuc2V0KHsnZnVuY293bmVyJzogdXNlcklu Zm8ubmFtZX0sIHtzaWxlbnQ6IHRydWV9KTsKKyAgICAgICAgICB9CisgICAg ICAgICAgcGdBZG1pbi5Ccm93c2VyLk5vZGUuTW9kZWwucHJvdG90eXBlLmlu aXRpYWxpemUuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKKyAgICAgICAgfSwK KyAgICAgICAgZGVmYXVsdHM6IHsKKyAgICAgICAgICBuYW1lOiB1bmRlZmlu ZWQsCisgICAgICAgICAgb2lkOiB1bmRlZmluZWQsCisgICAgICAgICAgeG1p bjogdW5kZWZpbmVkLAorICAgICAgICAgIGZ1bmNvd25lcjogdW5kZWZpbmVk LAorICAgICAgICAgIHByb25hbWVzcGFjZTogdW5kZWZpbmVkLAorICAgICAg ICAgIGRlc2NyaXB0aW9uOiB1bmRlZmluZWQsCisgICAgICAgICAgcHJvbmFy Z3M6IHVuZGVmaW5lZCwgLyogQXJndW1lbnQgQ291bnQgKi8KKyAgICAgICAg ICBwcm9hcmdzOiB1bmRlZmluZWQsIC8qIEFyZ3VtZW50cyAqLworICAgICAg ICAgIHByb2FyZ3R5cGVuYW1lczogdW5kZWZpbmVkLCAvKiBBcmd1bWVudCBT aWduYXR1cmUgKi8KKyAgICAgICAgICBwcm9yZXR0eXBlbmFtZTogdW5kZWZp bmVkLCAvKiBSZXR1cm4gVHlwZSAqLworICAgICAgICAgIGxhbm5hbWU6ICdz cWwnLCAvKiBMYW5ndWFnZSBOYW1lIGluIHdoaWNoIGZ1bmN0aW9uIGlzIGJl aW5nIHdyaXR0ZW4gKi8KKyAgICAgICAgICBwcm92b2xhdGlsZTogdW5kZWZp bmVkLCAvKiBWb2xhdGlsaXR5ICovCisgICAgICAgICAgcHJvcmV0c2V0OiB1 bmRlZmluZWQsIC8qIFJldHVybiBTZXQgKi8KKyAgICAgICAgICBwcm9pc3N0 cmljdDogdW5kZWZpbmVkLAorICAgICAgICAgIHByb3NlY2RlZjogdW5kZWZp bmVkLCAvKiBTZWN1cml0eSBvZiBkZWZpbmVyICovCisgICAgICAgICAgcHJv aXN3aW5kb3c6IHVuZGVmaW5lZCwgLyogV2luZG93IEZ1bmN0aW9uID8gKi8K KyAgICAgICAgICBwcm9jb3N0OiB1bmRlZmluZWQsIC8qIEVzdGltYXRlZCBl eGVjdXRpb24gQ29zdCAqLworICAgICAgICAgIHByb3Jvd3M6IHVuZGVmaW5l ZCwgLyogRXN0aW1hdGVkIG51bWJlciBvZiByb3dzICovCisgICAgICAgICAg cHJvbGVha3Byb29mOiB1bmRlZmluZWQsCisgICAgICAgICAgYXJndW1lbnRz OiBbXSwKKyAgICAgICAgICBwcm9zcmM6IHVuZGVmaW5lZCwKKyAgICAgICAg ICBwcm9zcmNfYzogdW5kZWZpbmVkLAorICAgICAgICAgIHByb2JpbjogJyRs aWJkaXIvJywKKyAgICAgICAgICBvcHRpb25zOiBbXSwKKyAgICAgICAgICB2 YXJpYWJsZXM6IFtdLAorICAgICAgICAgIHByb2FjbDogdW5kZWZpbmVkLAor ICAgICAgICAgIHNlY2xhYmVsczogW10sCisgICAgICAgICAgYWNsOiBbXSwK KyAgICAgICAgICBzeXNmdW5jOiB1bmRlZmluZWQKKyAgICAgICAgfSwKKyAg ICAgICAgc2NoZW1hOiBbeworICAgICAgICAgIGlkOiAnbmFtZScsIGxhYmVs OiAne3sgXygnTmFtZScpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAg ICAgdHlwZTogJ3RleHQnLCBtb2RlOiBbJ3Byb3BlcnRpZXMnLCAnY3JlYXRl JywgJ2VkaXQnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ29pZCcs IGxhYmVsOiAne3sgXygnT0lEJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAg ICAgICAgICB0eXBlOiAndGV4dCcgLCBtb2RlOiBbJ3Byb3BlcnRpZXMnXQor ICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2Z1bmNvd25lcicsIGxhYmVs OiAne3sgXygnT3duZXInKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAg ICAgIGNvbnRyb2w6IEJhY2tmb3JtLk5vZGVMaXN0QnlOYW1lQ29udHJvbCwg bm9kZTogJ3JvbGUnLCAgdHlwZToKKyAgICAgICAgICAndGV4dCcsIGRpc2Fi bGVkOiAnaXNEaXNhYmxlZCcKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6 ICdwcm9uYW1lc3BhY2UnLCBsYWJlbDogJ3t7IF8oJ1NjaGVtYScpIH19Jywg Y2VsbDogJ3N0cmluZycsCisgICAgICAgICAgY29udHJvbDogJ25vZGUtbGlz dC1ieS1pZCcsIHR5cGU6ICd0ZXh0JywgY2FjaGVfbGV2ZWw6ICdkYXRhYmFz ZScsCisgICAgICAgICAgbm9kZTogJ3NjaGVtYScKKyAgICAgICAgfSx7Cisg ICAgICAgICAgaWQ6ICdkZXNjcmlwdGlvbicsIGxhYmVsOiAne3sgXygnQ29t bWVudCcpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTog J211bHRpbGluZScKKyAgICAgICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm9u YXJncycsIGxhYmVsOiAne3sgXygnQXJndW1lbnQgQ291bnQnKSB9fScsIGNl bGw6ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6 ICd7eyBfKCdEZWZpbml0aW9uJykgfX0nLCBtb2RlOiBbJ3Byb3BlcnRpZXMn XQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Byb2FyZ3MnLCBsYWJl bDogJ3t7IF8oJ0FyZ3VtZW50cycpIH19JywgY2VsbDogJ3N0cmluZycsCisg ICAgICAgICAgdHlwZTogJ3RleHQnLCBncm91cDogJ3t7IF8oJ0RlZmluaXRp b24nKSB9fScsIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0J10sCisgICAg ICAgICAgZGlzYWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAgICB9LHsKKyAg ICAgICAgICBpZDogJ3Byb2FyZ3R5cGVuYW1lcycsIGxhYmVsOiAne3sgXygn U2lnbmF0dXJlIEFyZ3VtZW50cycpIH19JywgY2VsbDoKKyAgICAgICAgICAn c3RyaW5nJywgdHlwZTogJ3RleHQnLCBncm91cDogJ3t7IF8oJ0RlZmluaXRp b24nKSB9fScsIG1vZGU6IFsncHJvcGVydGllcyddLAorICAgICAgICAgIGRp c2FibGVkOiAnaXNEaXNhYmxlZCcKKyAgICAgICAgfSx7CisgICAgICAgICAg aWQ6ICdwcm9yZXR0eXBlbmFtZScsIGxhYmVsOiAne3sgXygnUmV0dXJuIFR5 cGUnKSB9fScsIGNlbGw6ICdzdHJpbmcnLAorICAgICAgICAgIGNvbnRyb2w6 ICdub2RlLWFqYXgtb3B0aW9ucycsIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICd7 eyBfKCdEZWZpbml0aW9uJykgfX0nLAorICAgICAgICAgIHVybDogJ2dldF90 eXBlcycsIGRpc2FibGVkOiAnaXNEaXNhYmxlZCcsCisgICAgICAgICAgbW9k ZTogWydjcmVhdGUnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3By b3JldHR5cGVuYW1lJywgbGFiZWw6ICd7eyBfKCdSZXR1cm4gVHlwZScpIH19 JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgdHlwZTogJ3RleHQnLCBn cm91cDogJ3t7IF8oJ0RlZmluaXRpb24nKSB9fScsIGRpc2FibGVkOiB0cnVl LAorICAgICAgICAgIG1vZGU6IFsncHJvcGVydGllcycsICdlZGl0J10KKyAg ICAgICAgfSwgIHsKKyAgICAgICAgICBpZDogJ2xhbm5hbWUnLCBsYWJlbDog J3t7IF8oJ0xhbmd1YWdlJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICBjb250cm9sOiAnbm9kZS1hamF4LW9wdGlvbnMnLCB0eXBlOiAndGV4 dCcsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicpIH19JywKKyAgICAgICAg ICB1cmw6ICdnZXRfbGFuZ3VhZ2VzJywgZGlzYWJsZWQ6ICdpc0Rpc2FibGVk JworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Byb3NyYycsIGxhYmVs OiAne3sgXygnQ29kZScpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAg ICAgdHlwZTogJ211bHRpbGluZScsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlv bicpIH19JywgZGVwczogWydsYW5uYW1lJ10sICB2aXNpYmxlOgorICAgICAg ICAgIGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgIGlmIChtLmdldCgnbGFu bmFtZScpID09ICdjJykgeworICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7 CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg ICAgICAgICB9LCBtYXhsZW5ndGg6ICcnLCBleHRyYUNsYXNzZXM6IFsnZnVu Y3Rpb25zX2NvZGUnXQorICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3By b2JpbicsIGxhYmVsOiAne3sgXygnT2JqZWN0IEZpbGUnKSB9fScsIGNlbGw6 ICdzdHJpbmcnLAorICAgICAgICAgIHR5cGU6ICd0ZXh0JywgZ3JvdXA6ICd7 eyBfKCdEZWZpbml0aW9uJykgfX0nLCBkZXBzOiBbJ2xhbm5hbWUnXSwgdmlz aWJsZToKKyAgICAgICAgICBmdW5jdGlvbihtKSB7CisgICAgICAgICAgICBp ZiAobS5nZXQoJ2xhbm5hbWUnKSA9PSAnYycpIHsgcmV0dXJuIHRydWU7IH0K KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICB9CisgICAg ICAgIH0seworICAgICAgICAgIGlkOiAncHJvc3JjX2MnLCBsYWJlbDogJ3t7 IF8oJ0xpbmsgU3ltYm9sJykgfX0nLCBjZWxsOiAnc3RyaW5nJywKKyAgICAg ICAgICB0eXBlOiAndGV4dCcsIGdyb3VwOiAne3sgXygnRGVmaW5pdGlvbicp IH19JywgIGRlcHM6IFsnbGFubmFtZSddLCB2aXNpYmxlOgorICAgICAgICAg IGZ1bmN0aW9uKG0pIHsKKyAgICAgICAgICAgIGlmIChtLmdldCgnbGFubmFt ZScpID09ICdjJykgeyByZXR1cm4gdHJ1ZTsgfQorICAgICAgICAgICAgcmV0 dXJuIGZhbHNlOworICAgICAgICAgIH0KKyAgICAgICAgfSx7CisgICAgICAg ICAgaWQ6ICdwcm92b2xhdGlsZScsIGxhYmVsOiAne3sgXygnVm9sYXRpbGl0 eScpIH19JywgY2VsbDogJ3N0cmluZycsCisgICAgICAgICAgY29udHJvbDog J25vZGUtYWpheC1vcHRpb25zJywgdHlwZTogJ3RleHQnLCBncm91cDogJ3t7 IF8oJ09wdGlvbnMnKSB9fScsCisgICAgICAgICAgb3B0aW9uczpbCisgICAg ICAgICAgICB7J2xhYmVsJzogJ1ZPTEFUSUxFJywgJ3ZhbHVlJzogJ3YnfSwK KyAgICAgICAgICAgIHsnbGFiZWwnOiAnU1RBQkxFJywgJ3ZhbHVlJzogJ3Mn fSwKKyAgICAgICAgICAgIHsnbGFiZWwnOiAnSU1NVVRBQkxFJywgJ3ZhbHVl JzogJ2knfSwKKyAgICAgICAgICBdLCBkaXNhYmxlZDogJ2lzRGlzYWJsZWQn CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncHJvcmV0c2V0JywgbGFi ZWw6ICd7eyBfKCdSZXR1cm5zIGEgU2V0PycpIH19JywgZ3JvdXA6ICd7eyBf KCdPcHRpb25zJykgfX0nLAorICAgICAgICAgIGNlbGw6J2Jvb2xlYW4nLCB0 eXBlOiAnc3dpdGNoJywgIGRpc2FibGVkOiAnaXNEaXNhYmxlZCcKKyAgICAg ICAgfSx7CisgICAgICAgICAgaWQ6ICdwcm9pc3N0cmljdCcsIGxhYmVsOiAn e3sgXygnU3RyaWN0PycpIH19JywgZ3JvdXA6ICd7eyBfCisgICAgICAgICAg KCdPcHRpb25zJykgfX0nLAorICAgICAgICAgIGNlbGw6J2Jvb2xlYW4nLCB0 eXBlOiAnc3dpdGNoJywgZGlzYWJsZWQ6ICdpc0Rpc2FibGVkJworICAgICAg ICB9LHsKKyAgICAgICAgICBpZDogJ3Byb3NlY2RlZicsIGxhYmVsOiAne3sg XygnU2VjdXJpdHkgb2YgZGVmaW5lcj8nKSB9fScsCisgICAgICAgICAgIGdy b3VwOiAne3sgXygnT3B0aW9ucycpIH19JywgY2VsbDonYm9vbGVhbicsIHR5 cGU6ICdzd2l0Y2gnLAorICAgICAgICAgICBkaXNhYmxlZDogJ2lzRGlzYWJs ZWQnCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncHJvaXN3aW5kb3cn LCBsYWJlbDogJ3t7IF8oJ1dpbmRvdz8nKSB9fScsCisgICAgICAgICAgIGdy b3VwOiAne3sgXygnT3B0aW9ucycpIH19JywgY2VsbDonYm9vbGVhbicsIHR5 cGU6ICdzd2l0Y2gnLAorICAgICAgICAgICAgZGlzYWJsZWQ6ICdpc0Rpc2Fi bGVkJworICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ3Byb2Nvc3QnLCBs YWJlbDogJ3t7IF8oJ0VzdGltYXRlZCBDb3N0JykgfX0nLCBncm91cDogJ3t7 IF8oJ09wdGlvbnMnKSB9fScsCisgICAgICAgICAgY2VsbDonc3RyaW5nJywg dHlwZTogJ3RleHQnLCBkaXNhYmxlZDogJ2lzRGlzYWJsZWQnCisgICAgICAg IH0seworICAgICAgICAgIGlkOiAncHJvcm93cycsIGxhYmVsOiAne3sgXygn RXN0aW1hdGVkIFJvd3MnKSB9fScsIGdyb3VwOiAne3sgXworICAgICAgICAg ICgnT3B0aW9ucycpIH19JywKKyAgICAgICAgICBjZWxsOidzdHJpbmcnLCB0 eXBlOiAndGV4dCcsIGRpc2FibGVkOiAnaXNEaXNhYmxlZCcsCisgICAgICAg ICAgZGVwczogWydwcm9yZXRzZXQnXQorICAgICAgICB9LHsKKyAgICAgICAg ICBpZDogJ3Byb2xlYWtwcm9vZicsIGxhYmVsOiAne3sgXygnTGVhayBwcm9v Zj8nKSB9fScsCisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdPcHRpb25zJykg fX0nLCBjZWxsOidib29sZWFuJywgdHlwZTogJ3N3aXRjaCcsIG1pbl92ZXJz aW9uOiA5MDIwMCwKKyAgICAgICAgICBkaXNhYmxlZDogJ2lzRGlzYWJsZWQn CisgICAgICAgIH0seworICAgICAgICAgIGlkOiAncHJvYWNsJywgbGFiZWw6 ICd7eyBfKCdBQ0wnKSB9fScsCisgICAgICAgICAgIGdyb3VwOiAne3sgXygn T3B0aW9ucycpIH19JywgY2VsbDonYm9vbGVhbicsIHR5cGU6ICd0ZXh0Jywg Y2VsbDogJ3N0cmluZycsCisgICAgICAgICAgIG1vZGU6IFsncHJvcGVydGll cyddCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnc3lzZnVuYycsIGxh YmVsOiAne3sgXygnU3lzdGVtIEZ1bmN0aW9uPycpIH19JywKKyAgICAgICAg ICAgZ3JvdXA6ICd7eyBfKCdPcHRpb25zJykgfX0nLCBjZWxsOidib29sZWFu JywgdHlwZTogJ3N3aXRjaCcsCisgICAgICAgICAgIG1vZGU6IFsncHJvcGVy dGllcyddCisgICAgICAgIH0seworICAgICAgICAgIGlkOiAnYXJndW1lbnRz JywgbGFiZWw6ICd7eyBfKCdQYXJhbWV0ZXJzJykgfX0nLCBjZWxsOiAnc3Ry aW5nJywKKyAgICAgICAgICBncm91cDogJ1BhcmFtZXRlcnMnLCB0eXBlOiAn Y29sbGVjdGlvbicsIGNhbkFkZDogZnVuY3Rpb24obSl7CisgICAgICAgICAg ICByZXR1cm4gbS5pc05ldygpOworICAgICAgICAgIH0sCisgICAgICAgICAg Y2FuRGVsZXRlOiB0cnVlLCBtb2RlbDogQXJndW1lbnRNb2RlbCwgbW9kZToK KyAgICAgICAgICBbJ2NyZWF0ZScsICdlZGl0J10sIGVkaXRhYmxlOiBmYWxz ZSwKKyAgICAgICAgICBjb2x1bW5zOiBbJ2FyZ3R5cGUnLCAnYXJnbW9kZScs ICdhcmduYW1lJywgJ2FyZ2RlZnZhbCddCisgICAgICAgIH0seworICAgICAg ICAgIGlkOiAndmFyaWFibGVzJywgbGFiZWw6ICd7eyBfKCdWYXJpYWJsZXMn KSB9fScsIHR5cGU6ICdjb2xsZWN0aW9uJywKKyAgICAgICAgICBncm91cDog J3t7IF8oJ1ZhcmlhYmxlcycpIH19JywgY29udHJvbDogJ3ZhcmlhYmxlLWNv bGxlY3Rpb24nLAorICAgICAgICAgIG1vZGVsOiBwZ0FkbWluLkJyb3dzZXIu Tm9kZS5WYXJpYWJsZU1vZGVsLAorICAgICAgICAgIG1vZGU6IFsnZWRpdCcs ICdjcmVhdGUnXSwgY2FuQWRkOiAnY2FuVmFyQWRkJywgY2FuRWRpdDogZmFs c2UsCisgICAgICAgICAgY2FuRGVsZXRlOiB0cnVlLCBkaXNhYmxlZDogJ2lz RGlzYWJsZWQnCisgICAgICAgICB9LHsKKyAgICAgICAgICBpZDogJ2FjbCcs IGxhYmVsOiAne3sgXygnUHJpdmlsZWdlcycpIH19JywgbW9kZWw6IHBnQWRt aW4KKyAgICAgICAgICAuQnJvd3Nlci5Ob2RlLlByaXZpbGVnZVJvbGVNb2Rl bC5leHRlbmQoCisgICAgICAgICAgICB7cHJpdmlsZWdlczogWydYJ119KSwg dW5pcXVlQ29sIDogWydncmFudGVlJywgJ2dyYW50b3InXSwKKyAgICAgICAg ICBlZGl0YWJsZTogZmFsc2UsIHR5cGU6ICdjb2xsZWN0aW9uJywgZ3JvdXA6 ICd7eyBfKCdQcmV2aWxlZ2VzJykgfX0nLAorICAgICAgICAgIG1vZGU6IFsn ZWRpdCcsICdjcmVhdGUnXSwKKyAgICAgICAgICBjYW5BZGQ6IHRydWUsIGNh bkRlbGV0ZTogdHJ1ZSwgY29udHJvbDogJ3VuaXF1ZS1jb2wtY29sbGVjdGlv bicsCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICBpZDogJ3Nl Y2xhYmVscycsIGxhYmVsOiAne3sgXygnU2VjdXJpdHkgTGFiZWxzJykgfX0n LAorICAgICAgICAgIG1vZGVsOiBTZWN1cml0eU1vZGVsLCB0eXBlOiAnY29s bGVjdGlvbicsCisgICAgICAgICAgZ3JvdXA6ICd7eyBfKCdTZWN1cml0eScp IH19JywgbW9kZTogWydlZGl0JywgJ2NyZWF0ZSddLAorICAgICAgICAgIG1p bl92ZXJzaW9uOiA5MDEwMCwgY2FuQWRkOiB0cnVlLAorICAgICAgICAgIGNh bkVkaXQ6IHRydWUsIGNhbkRlbGV0ZTogdHJ1ZQorICAgICAgICB9CisgICAg ICAgIF0sCisgICAgICAgIHZhbGlkYXRlOiBmdW5jdGlvbigpCisgICAgICAg IHsKKyAgICAgICAgICB2YXIgZXJyID0ge30sCisgICAgICAgICAgICAgIGVy cm1zZywKKyAgICAgICAgICAgICAgc2VjbGFiZWxzID0gdGhpcy5nZXQoJ3Nl Y2xhYmVscycpOworCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhp cy5nZXQoJ25hbWUnKSkgfHwgU3RyaW5nKHRoaXMuZ2V0KCduYW1lJykpLnJl cGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAg IGVyclsnbmFtZSddID0gJ3t7IF8oJ05hbWUgY2FuIG5vdCBiZSBlbXB0eSEn KSB9fSc7CisgICAgICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydu YW1lJ107CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKF8uaXNVbmRl ZmluZWQodGhpcy5nZXQoJ2Z1bmNvd25lcicpKSB8fCBTdHJpbmcodGhpcy5n ZXQoJ2Z1bmNvd25lcicpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09 ICcnKSB7CisgICAgICAgICAgICBlcnJbJ2Z1bmNvd25lciddID0gJ3t7IF8o J093bmVyIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAgICAg ZXJybXNnID0gZXJybXNnIHx8IGVyclsnZnVuY293bmVyJ107CisgICAgICAg ICAgfQorCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQo J3Byb25hbWVzcGFjZScpKSB8fCBTdHJpbmcodGhpcy5nZXQoJ3Byb25hbWVz cGFjZScpKS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7Cisg ICAgICAgICAgICBlcnJbJ3Byb25hbWVzcGFjZSddID0gJ3t7IF8oJ1NjaGVt YSBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1z ZyA9IGVycm1zZyB8fCBlcnJbJ3Byb25hbWVzcGFjZSddOworICAgICAgICAg IH0KKworICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVkKHRoaXMuZ2V0KCdw cm9yZXR0eXBlbmFtZScpKSB8fCBTdHJpbmcodGhpcy5nZXQoJ3Byb3JldHR5 cGVuYW1lJykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsK KyAgICAgICAgICAgIGVyclsncHJvcmV0dHlwZW5hbWUnXSA9ICd7eyBfKCdS ZXR1cm4gVHlwZSBjYW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAg ICAgIGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ3Byb3JldHR5cGVuYW1lJ107 CisgICAgICAgICAgfQorCisgICAgICAgICAgaWYgKF8uaXNVbmRlZmluZWQo dGhpcy5nZXQoJ2xhbm5hbWUnKSkgfHwgU3RyaW5nKHRoaXMuZ2V0KCdsYW5u YW1lJykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAg ICAgICAgICAgIGVyclsnbGFubmFtZSddID0gJ3t7IF8oJ0xhbmd1YWdlIGNh biBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAgICAgZXJybXNnID0g ZXJybXNnIHx8IGVyclsnbGFubmFtZSddOworICAgICAgICAgIH0KKworICAg ICAgICAgIGlmIChTdHJpbmcodGhpcy5nZXQoJ2xhbm5hbWUnKSkgPT0gJ2Mn KSB7CisgICAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgn cHJvYmluJykpIHx8IFN0cmluZyh0aGlzLmdldCgncHJvYmluJykpCisgICAg ICAgICAgICAgIC5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7 CisgICAgICAgICAgICAgIGVyclsncHJvYmluJ10gPSAne3sgXygnT2JqZWN0 IEZpbGUgY2FuIG5vdCBiZSBlbXB0eSEnKSB9fSc7CisgICAgICAgICAgICAg IGVycm1zZyA9IGVycm1zZyB8fCBlcnJbJ3Byb2JpbiddOworICAgICAgICAg ICAgfQorCisgICAgICAgICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdl dCgncHJvc3JjX2MnKSkgfHwgU3RyaW5nKHRoaXMuZ2V0KCdwcm9zcmNfYycp KS5yZXBsYWNlKC9eXHMrfFxzKyQvZywgJycpID09ICcnKSB7CisgICAgICAg ICAgICAgIGVyclsncHJvc3JjX2MnXSA9ICd7eyBfKCdMaW5rIFN5bWJvbCBj YW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgICAgZXJybXNn ID0gZXJybXNnIHx8IGVyclsncHJvc3JjX2MnXTsKKyAgICAgICAgICAgIH0K KyAgICAgICAgICB9CisgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBp ZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgncHJvc3JjJykpIHx8IFN0cmlu Zyh0aGlzLmdldCgncHJvc3JjJykpLnJlcGxhY2UoL15ccyt8XHMrJC9nLCAn JykgPT0gJycpIHsKKyAgICAgICAgICAgICAgZXJyWydwcm9zcmMnXSA9ICd7 eyBfKCdDb2RlIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOworICAgICAgICAg ICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgZXJyWydwcm9zcmMnXTsKKyAgICAg ICAgICAgIH0KKyAgICAgICAgICB9CisKKyAgICAgICAgICBpZiAoc2VjbGFi ZWxzKSB7CisgICAgICAgICAgICB2YXIgc2VjTGFiZWxzRXJyOworICAgICAg ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWNsYWJlbHMubW9kZWxzLmxl bmd0aCAmJiAhc2VjTGFiZWxzRXJyOyBpKyspIHsKKyAgICAgICAgICAgICAg c2VjTGFiZWxzRXJyID0gKHNlY2xhYmVscy5tb2RlbHNbaV0pLnZhbGlkYXRl LmFwcGx5KHNlY2xhYmVscy5tb2RlbHNbaV0pOworICAgICAgICAgICAgICBp ZiAoc2VjTGFiZWxzRXJyKSB7CisgICAgICAgICAgICAgICAgZXJyWydzZWNs YWJlbHMnXSA9IHNlY0xhYmVsc0VycjsKKyAgICAgICAgICAgICAgICBlcnJt c2cgPSBlcnJtc2cgfHwgc2VjTGFiZWxzRXJyOworICAgICAgICAgICAgICB9 CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorCisgICAgICAgICAgdGhp cy5lcnJvck1vZGVsLmNsZWFyKCkuc2V0KGVycik7CisKKyAgICAgICAgICBp ZiAoXy5zaXplKGVycikpIHsKKyAgICAgICAgICAgIHRoaXMudHJpZ2dlcign b24tc3RhdHVzJywge21zZzogZXJybXNnfSk7CisgICAgICAgICAgICByZXR1 cm4gZXJybXNnOworICAgICAgICAgIH0KKworICAgICAgICAgIHJldHVybiBu dWxsOworICAgICAgICB9LAorICAgICAgICBpc0Rpc2FibGVkOiBmdW5jdGlv bihtKXsKKyAgICAgICAgICBuYW1lID0gdGhpcy5uYW1lOworICAgICAgICAg IHN3aXRjaChuYW1lKXsKKyAgICAgICAgICAgIGNhc2UgJ3Byb2FyZ3MnOgor ICAgICAgICAgICAgY2FzZSAncHJvYXJndHlwZW5hbWVzJzoKKyAgICAgICAg ICAgIGNhc2UgJ3Byb3JldHNldCc6CisgICAgICAgICAgICBjYXNlICdwcm9p c3dpbmRvdyc6CisgICAgICAgICAgICAgIHJldHVybiAhbS5pc05ldygpOwor ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgJ3Byb3Jv d3MnOgorICAgICAgICAgICAgICBpZihtLmdldCgncHJvcmV0c2V0JykgPT0g dHJ1ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAg ICAgICAgICAgfQorICAgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgfQorICAgICAgICAg ICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAg ICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgfQorICAgICAgICB9LAorICAgICAgICBjYW5WYXJBZGQ6IGZ1bmN0 aW9uKG0pIHsKKyAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9Cisg ICAgICB9KSwKKyAgICAgIGNhbkNyZWF0ZTogZnVuY3Rpb24oaXRlbURhdGEs IGl0ZW0sIGRhdGEpIHsKKyAgICAgICAgLy9JZiBjaGVjayBpcyBmYWxzZSB0 aGVuICwgd2Ugd2lsbCBhbGxvdyBjcmVhdGUgbWVudQorICAgICAgICBpZiAo ZGF0YSAmJiBkYXRhLmNoZWNrID09IGZhbHNlKQorICAgICAgICAgIHJldHVy biB0cnVlOworCisgICAgICAgIHZhciB0ID0gcGdCcm93c2VyLnRyZWUsIGkg PSBpdGVtLCBkID0gaXRlbURhdGE7CisgICAgICAgIC8vIFRvIGl0ZXJhdGUg b3ZlciB0cmVlIHRvIGNoZWNrIHBhcmVudCBub2RlCisgICAgICAgIHdoaWxl IChpKSB7CisgICAgICAgICAgLy8gSWYgaXQgaXMgc2NoZW1hIHRoZW4gYWxs b3cgdXNlciB0byBjcmVhdGUgRnVuY3Rpb24KKyAgICAgICAgICBpZiAoXy5p bmRleE9mKFsnc2NoZW1hJ10sIGQuX3R5cGUpID4gLTEpCisgICAgICAgICAg ICByZXR1cm4gdHJ1ZTsKKworICAgICAgICAgIGlmICgnY29sbC1mdW5jdGlv bicgPT0gZC5fdHlwZSkgeworICAgICAgICAgICAgLy9DaGVjayBpZiB3ZSBh cmUgbm90IGNoaWxkIG9mIGNhdGFsb2cKKyAgICAgICAgICAgIHByZXZfaSA9 IHQuaGFzUGFyZW50KGkpID8gdC5wYXJlbnQoaSkgOiBudWxsOworICAgICAg ICAgICAgcHJldl9kID0gcHJldl9pID8gdC5pdGVtRGF0YShwcmV2X2kpIDog bnVsbDsKKyAgICAgICAgICAgIGlmKCBwcmV2X2QuX3R5cGUgPT0gJ2NhdGFs b2cnKSB7CisgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAg ICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg ICAgICAgICAgfQorICAgICAgICAgIH0KKyAgICAgICAgICBpID0gdC5oYXNQ YXJlbnQoaSkgPyB0LnBhcmVudChpKSA6IG51bGw7CisgICAgICAgICAgZCA9 IGkgPyB0Lml0ZW1EYXRhKGkpIDogbnVsbDsKKyAgICAgICAgfQorICAgICAg ICAvLyBieSBkZWZhdWx0IHdlIGRvIG5vdCB3YW50IHRvIGFsbG93IGNyZWF0 ZSBtZW51CisgICAgICAgIHJldHVybiB0cnVlOworICAgICAgfQorICB9KTsK KworICB9CisKKyAgcmV0dXJuIHBnQnJvd3Nlci5Ob2Rlc1snZnVuY3Rpb24n XTsKK30pOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvYWNsLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMV9wbHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uYWQzZTBkMQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzkuMV9wbHVzL2FjbC5zcWwKQEAgLTAsMCArMSwzNSBAQAorU0VMRUNU CisgICAgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIEFTIGdyYW50 ZWUsCisgICAgZy5yb2xuYW1lIEFTIGdyYW50b3IsIGFycmF5X2FnZyhwcml2 aWxlZ2VfdHlwZSkgQVMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNf Z3JhbnRhYmxlKSBBUyBncmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisg ICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwK KyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4g J0NPTk5FQ1QnIFRIRU4gJ2MnCisgICAgICAgIFdIRU4gJ0NSRUFURScgVEhF TiAnQycKKyAgICAgICAgV0hFTiAnREVMRVRFJyBUSEVOICdkJworICAgICAg ICBXSEVOICdFWEVDVVRFJyBUSEVOICdYJworICAgICAgICBXSEVOICdJTlNF UlQnIFRIRU4gJ2EnCisgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4g J3gnCisgICAgICAgIFdIRU4gJ1NFTEVDVCcgVEhFTiAncicKKyAgICAgICAg V0hFTiAnVEVNUE9SQVJZJyBUSEVOICdUJworICAgICAgICBXSEVOICdUUklH R0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdUUlVOQ0FURScgVEhFTiAn RCcKKyAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVOICd3JworICAgICAgICBX SEVOICdVU0FHRScgVEhFTiAnVScKKyAgICAgICAgRUxTRSAnVU5LTk9XTicK KyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisgICAgRlJPTQorICAg ICAgICAoU0VMRUNUCisgICAgICAgICAgICAoZCkuZ3JhbnRlZSBBUyBncmFu dGVlLCAoZCkuZ3JhbnRvciBBUyBncmFudG9yLAorICAgICAgICAgICAgKGQp LmlzX2dyYW50YWJsZSBBUyBpc19ncmFudGFibGUsCisgICAgICAgICAgICAo ZCkucHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICAgICAg RlJPTQorICAgICAgICAgICAgKFNFTEVDVCBhY2xleHBsb2RlKGRiLnByb2Fj bCkgQVMgZCBGUk9NIHBnX3Byb2MgZGIKKyAgICAgICAgICAgIFdIRVJFIGRi Lm9pZCA9IHt7Zm5pZH19OjpPSUQpIGEKKyAgICAgICAgKSBkCisgICAgKSBk CisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAoZC5n cmFudG9yID0gZy5vaWQpCisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdf cm9sZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZIGcu cm9sbmFtZSwgZ3Qucm9sbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9w bHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmVhNDMxNzIKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsCkBA IC0wLDAgKzEsNjYgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9z ZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21h Y3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdF ICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFj cm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgc2V0IGlzX2NvbHVtbnMgPSBbXSAl fQoreyUgaWYgZGF0YSAlfQorQ1JFQVRFIEZVTkNUSU9OIHt7IGNvbm58cXRJ ZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7JSBpZiBk YXRhCisuYXJndW1lbnRzICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50 cyAlfXt7cC5hcmdtb2RlfX0geyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxx dElkZW50KHAKKy5hcmduYW1lKX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5 cGUgJX0ge3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUKK2lmIHAuYXJnZGVm dmFsICV9IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3sl IGlmIG5vdCBsb29wLmxhc3QgJX0seyUgZW5kaWYgJX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgLSV9CisgICAgKSBSRVRVUk5TeyUgaWYgZGF0YS5wcm9y ZXRzZXQgJX0gU0VUT0Z7JSBlbmRpZiAlfSB7eyBjb25ufHF0VHlwZUlkZW50 KGRhdGEKKyAgICAucHJvcmV0dHlwZW5hbWUpIH19IEFTCit7JSBpZiBkYXRh Lmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBkYXRhLnByb2JpbnxxdExpdGVyYWwg fX0sIHt7IGRhdGEucHJvc3JjX2N8cXRMaXRlcmFsIH19Cit7JSBlbHNlICV9 CiskQk9EWSR7eyBkYXRhLnByb3NyYyB9fSRCT0RZJAoreyUgZW5kaWYgJX0K K0xBTkdVQUdFIHt7IGRhdGEubGFubmFtZXxxdExpdGVyYWwgfX0ge3sgZGF0 YS5wcm92b2xhdGlsZSB9fXslIGlmIGRhdGEucHJvaXNzdHJpY3QgJX0gU1RS SUNUeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvc2VjZGVmICV9IFNFQ1VS SVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3dpbmRv dyAlfSBXSU5ET1d7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvY29zdCAlfQor CitDT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbmRpZiAlfXslIGlmIGRhdGEu cHJvcm93cyAlfQorCitST1dTIHt7ZGF0YS5wcm9yb3dzfX17JSBlbmRpZiAt JX17JSBpZiBkYXRhLnZhcmlhYmxlcyAlfQorCit7JSBmb3IgdiBpbiBkYXRh LnZhcmlhYmxlcyAlfQorCitTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkg fX09e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgLSV9Cit7JSBl bmRpZiAtJX07CisKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVS IEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwg ZGF0YS5uYW1lKSB9fSh7e2RhdGEKKy5mdW5jX2FyZ3N9fSkKKyAgICBPV05F UiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmIC0lfQorCit7 JSBpZiBkYXRhLmFjbCAlfQoreyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0KKwor e3sgUFJJVklMRUdFLlNFVChjb25uLCAiRlVOQ1RJT04iLCBwLmdyYW50ZWUs IGRhdGEubmFtZSwgcC53aXRob3V0X2dyYW50LCBwCisud2l0aF9ncmFudCwg ZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKX19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmRlc2NyaXB0aW9u ICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KGRh dGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHt7ZGF0YQorLmZ1bmNf YXJnc319KQorICAgIElTICd7eyBkYXRhLmRlc2NyaXB0aW9uIH19JzsKK3sl IGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9y IHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmIHIubGFiZWwgYW5kIHIu cHJvdmlkZXIgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNvbm4sICdGVU5DVElP TicsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5sYWJlbCwgZGF0YQorLnBy b25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3MpIH19Cit7JSBlbmRpZiAlfQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjFfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjI0NmJlYzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjFfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEsMjEgQEAKK3slIGlmIHNj aWQgYW5kIGZuaWQgJX0KK1NFTEVDVAorICAgIHByLnByb25hbWUgYXMgbmFt ZSwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1 bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJykn IGFzIGZ1bmNfYXJncywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJv YyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0 dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1w ci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQor ICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5E IHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykK KyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX07Cit7JSBlbmRpZiAlfQorCit7 JSBpZiBuYW1lICV9CitEUk9QIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChu c3BuYW1lLCBuYW1lKSB9fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNjYWRlICV9 IENBU0NBREV7JSBlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjFfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjFfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYzYzNWYxZQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApAQCAtMCwwICsx LDEyIEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVuY3Rpb25kZWYoe3tmbmlk fX06Om9pZCkgQVMgZnVuY19kZWYsCisgICAgbnNwbmFtZSB8fCAnLicgfHwg cHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAg IC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCks ICcnKSB8fCAnKScgYXMgbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pP SU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFt ZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQg cHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCBwci5vaWQg PSB7e2ZuaWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMv Z2V0X2xhbmd1YWdlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9nZXRfbGFuZ3Vh Z2VzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m ODFkZGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvZ2V0 X2xhbmd1YWdlcy5zcWwKQEAgLTAsMCArMSw0IEBACitTRUxFQ1QKKyAgICBs YW5uYW1lIGFzIGxhYmVsLCBsYW5uYW1lIGFzIHZhbHVlCitGUk9NCisgICAg cGdfbGFuZ3VhZ2U7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9nZXRf b2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dldF9vaWQuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiYzc2YTIKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9nZXRfb2lkLnNxbApAQCAtMCww ICsxLDE3IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25hbWUgfHwg JygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0 aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFz IG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVy KSBhcyBmdW5jb3duZXIKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisg ICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisg ICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworSk9JTgor ICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3Bh Y2UKKyAgICBBTkQgbnNwLm5zcG5hbWU9e3sgbnNwbmFtZXxxdExpdGVyYWwg fX0KK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCB0eXBu YW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAg QU5EIHByLnByb25hbWUgPSB7eyBuYW1lfHF0TGl0ZXJhbCB9fTsKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dldF9vdXRfdHlwZXMuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvOS4xX3BsdXMvZ2V0X291dF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNjRhMTE4NwotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcGcvc3FsLzkuMV9wbHVzL2dldF9vdXRfdHlwZXMuc3FsCkBAIC0wLDAg KzEsNiBAQAorU0VMRUNUCisgICAgZm9ybWF0X3R5cGUob2lkLCBOVUxMKSBB UyBvdXRfYXJnX3R5cGUKK0ZST00KKyAgICBwZ190eXBlCitXSEVSRQorICAg IG9pZCA9IHt7IG91dF9hcmdfb2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bn L3NxbC85LjFfcGx1cy9nZXRfc2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVz L2dldF9zY2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFf cGx1cy9nZXRfc2NoZW1hLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAor ICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisg ICAgb2lkID0ge3sgc2NpZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwv OS4xX3BsdXMvZ2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dldF90 eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MmE1NTgyZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL2dl dF90eXBlcy5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNUCisgICAgKgor RlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZm9ybWF0X3R5cGUodC5vaWQs TlVMTCkgQVMgdHlwbmFtZSwKKyAgICAgICAgQ0FTRSBXSEVOIHR5cGVsZW0g PiAwIFRIRU4gdHlwZWxlbSBFTFNFIHQub2lkIEVORCBhcyBlbGVtb2lkLCB0 eXBsZW4sIHR5cHR5cGUsIHQub2lkLCBuc3BuYW1lLAorICAgICAgICAoU0VM RUNUIENPVU5UKDEpIEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBuYW1l ID0gdC50eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAgICBGUk9NCisgICAgICAg IHBnX3R5cGUgdAorICAgIEpPSU4KKyAgICAgICAgcGdfbmFtZXNwYWNlIG5z cCBPTiB0eXBuYW1lc3BhY2U9bnNwLm9pZAorICAgIFdIRVJFCisgICAgICAg IChOT1QgKHR5cG5hbWUgPSAndW5rbm93bicgQU5EIG5zcG5hbWUgPSAncGdf Y2F0YWxvZycpKQorICAgIEFORAorICAgICAgICAoCisgICAgICAgICAgICB0 eXB0eXBlIElOICgnYicsICdjJywgJ2QnLCAnZScsICdwJywgJ3InKQorICAg ICAgICAgICAgQU5EIHR5cG5hbWUgTk9UIElOICgnYW55JywgJ3RyaWdnZXIn LCAnbGFuZ3VhZ2VfaGFuZGxlcicsICdldmVudF90cmlnZ2VyJykKKyAgICAg ICAgKQorICAgICkgQVMgZHVtbXkKK09SREVSIEJZIG5zcG5hbWUgPD4gJ3Bn X2NhdGFsb2cnLCBuc3BuYW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAxOwpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvbm9kZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjFfcGx1cy9ub2RlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi41ZTYyY2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4x X3BsdXMvbm9kZS5zcWwKQEAgLTAsMCArMSwxOCBAQAorU0VMRUNUCisgICAg cHIub2lkLCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRh bG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMo cHIub2lkKSwgJycpIHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBn X2dldF91c2VyYnlpZChwcm9vd25lcikgYXMgZnVuY293bmVyLCBkZXNjcmlw dGlvbgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBl IHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5n dWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4K KyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lk IEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJF CisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2Ug PSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJp Z2dlcicsICdldmVudF90cmlnZ2VyJykKK09SREVSIEJZCisgICAgcHJvbmFt ZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3Fs IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wZy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWU4YThiYQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcGcvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAg KzEsMzEgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIueG1pbiwgcHIuKiwg cHIucHJvc3JjIEFTIHByb3NyY19jLAorICAgIHByLnByb25hbWUgQVMgbmFt ZSwgcGdfZ2V0X2Z1bmN0aW9uX3Jlc3VsdChwci5vaWQpIEFTIHByb3JldHR5 cGVuYW1lLAorICAgIHR5cG5zLm5zcG5hbWUgQVMgdHlwbnNwLCBsYW5uYW1l LCBwcm9hcmduYW1lcywgb2lkdmVjdG9ydHlwZXMocHJvYXJndHlwZXMpIEFT IHByb2FyZ3R5cGVuYW1lcywKKyAgICBwZ19nZXRfZXhwcihwcm9hcmdkZWZh dWx0cywgJ3BnX2NhdGFsb2cucGdfY2xhc3MnOjpyZWdjbGFzcykgQVMgcHJv YXJnZGVmYXVsdHZhbHMsCisgICAgcHJvbmFyZ2RlZmF1bHRzLCBwcm9jb25m aWcsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgQVMgZnVuY293bmVyLCBk ZXNjcmlwdGlvbiwKKyAgICAoU0VMRUNUCisgICAgICAgIGFycmF5X2FnZyhw cm92aWRlciB8fCAnPScgfHwgbGFiZWwpCisgICAgRlJPTQorICAgICAgICBw Z19zZWNsYWJlbCBzbDEKKyAgICBXSEVSRQorICAgICAgICBzbDEub2Jqb2lk PXByLm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisgICAgcGdfcHJvYyBwcgor Sk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQor Sk9JTgorICAgIHBnX25hbWVzcGFjZSB0eXBucyBPTiB0eXBucy5vaWQ9dHlw LnR5cG5hbWVzcGFjZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBs bmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2Ny aXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFz c29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9pc2Fn ZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19Ojpv aWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50 X3RyaWdnZXInKQoreyUgaWYgZm5pZCAlfQorICAgIEFORCBwci5vaWQgPSB7 e2ZuaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JERVIgQlkKKyAgICBwcm9u YW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvdXBkYXRlLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uMzU4NDU0YgotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMzIgQEAK K3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3Mn IGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMv cHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQg J21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJM RSAlfXslIGlmIGRhdGEgJX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUg JX0KK3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9f ZGF0YS5uYW1lICV9CitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQo b19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLm5hbWUpIH19KHt7CitvX2Rh dGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIFJFTkFNRSBUTyB7eyBjb25u fHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5u YW1lICV9Cit7JSBlbmRpZiAlfQorCit7JSBlbmRpZiAtJX0KK3slIGlmIGRh dGEuY2hhbmdlX2Z1bmMgICV9CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkg fX0oeyUgaWYgZGF0YS5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEu YXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9IHt7cC5hcmdtb2RlfX17 JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfSB7eyBjb25ufHF0SWRlbnQo cC5hcmduYW1lKSB9fXslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9IHt7 cAorIC5hcmd0eXBlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9 IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5v dCBsb29wLmxhc3QgJX0sIHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3sl IGVuZGlmIC0lfQorKSBSRVRVUk5TIHt7IG9fZGF0YS5wcm9yZXR0eXBlbmFt ZSB9fSBBUworeyUgaWYgJ2xhbm5hbWUnIGluIGxhbm5hbWUgYW5kIGRhdGEu bGFubmFtZSA9PSAnYycgJX0KK3t7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9 fSwge3sgZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX0KK3slIGVsaWYgJ2xh bm5hbWUnIGluIGRhdGEgYW5kICdwcm9zcmMnIGluIGRhdGEgJX0KKyRCT0RZ JHt7IGRhdGEucHJvc3JjIH19JEJPRFkkCit7JSBlbGlmIG9fZGF0YS5sYW5u YW1lID09ICdjJyAlfQore3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX0s IHt7IG9fZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX0KK3slIGVsc2UgJX0K KyRCT0RZJHt7IG9fZGF0YS5wcm9zcmMgfX0kQk9EWSQKK3slIGVuZGlmIC0l fQorCit7JSBpZiAnbGFubmFtZScgaW4gZGF0YSAlfQorTEFOR1VBR0Uge3sg ZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fXslIGVsc2UgJX0KK0xBTkdVQUdF IHt7IG9fZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fXslIGVuZGlmIC0lfXsl IGlmICgncHJvaXNzdHJpY3QnIGluIGRhdGEgYW5kIGRhdGEucHJvaXNzdHJp Y3QpIG9yICgncHJvaXNzdHJpY3QnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEu cHJvaXNzdHJpY3QpICV9IFNUUklDVHslIGVuZGlmICV9Cit7JSBpZiAoJ3By b3NlY2RlZicgaW4gZGF0YSBhbmQgZGF0YS5wcm9zZWNkZWYpIG9yICgncHJv c2VjZGVmJyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb3NlY2RlZikgJX0g U0VDVVJJVFkgREVGSU5FUnslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lzd2lu ZG93JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzd2luZG93KSBvciAoJ3Byb2lz d2luZG93JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzd2luZG93KSAl fSBXSU5ET1d7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvY29zdCAlfQorCitD T1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbGlmIG9fZGF0YS5wcm9jb3N0ICV9 IENPU1Qge3tvX2RhdGEucHJvY29zdH19IHslIGVuZGlmICV9eyUgaWYgZGF0 YS5wcm9yb3dzICV9CisKK1JPV1Mge3tkYXRhLnByb3Jvd3N9fSB7JSBlbGlm IG9fZGF0YS5wcm9yb3dzICV9IFJPV1Mge3tvX2RhdGEucHJvcm93c319IHsl CitlbmRpZiAtJX17JSBpZiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX0KKwor eyUgZm9yIHYgaW4gZGF0YS5tZXJnZWRfdmFyaWFibGVzICV9CisKK1NFVCB7 eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJh bCB9fXslIGVuZGZvciAtJX0KK3slIGVuZGlmIC0lfTsKK3slIGVuZGlmIC0l fQorCit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRFUiBGVU5DVElP TiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkg fX0oe3sKK29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAgT1dORVIg VE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0KKworCit7 IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNoYW5nZSBwcml2aWxl ZGdlcyAjfQoreyUgaWYgZGF0YS5hY2wgJX0KKworeyUgaWYgJ2RlbGV0ZWQn IGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5kZWxl dGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9O JywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEKKy5wcm9uYW1lc3BhY2Us IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3sl IGVuZGlmIC0lfQorCit7JSBpZiAnY2hhbmdlZCcgaW4gZGF0YS5kYXRhY2wg JX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmNoYW5nZWQgJX0KKwore3sg UFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3Jh bnRlZSwgbmFtZSwgb19kYXRhCisucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJv YXJndHlwZW5hbWVzKSB9fQore3sgUFJJVklMRUdFLlNFVChjb25uLCAnRlVO Q1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYud2l0aG91dF9ncmFu dCwKKyBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9f ZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmIC0lfQorCit7JSBpZiAnYWRkZWQnIGluIGRhdGEuYWNsICV9Cit7JSBm b3IgcHJpdiBpbiBkYXRhLmFjbC5hZGRlZCAlfQore3sgUFJJVklMRUdFLlNF VChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIHByaXYu d2l0aG91dF9ncmFudCwKKyBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0 YS5jaGFuZ2VfZnVuYyA9PSBGYWxzZSAlfQoreyUgaWYgZGF0YS52YXJpYWJs ZXMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLnZhcmlhYmxlcyBhbmQg ZGF0YS52YXJpYWJsZXMuZGVsZXRlZHxsZW5ndGggPiAwICV9CisKK3t7IFZB UklBQkxFLlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIGRhdGEudmFy aWFibGVzLmRlbGV0ZWQsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMgKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnbWVy Z2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBhbmQgZGF0YS5tZXJnZWRfdmFyaWFi bGVzfGxlbmd0aCA+IDAgJX0KKwore3sgVkFSSUFCTEUuU0VUKGNvbm4sICdG VU5DVElPTicsIG5hbWUsIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcywgb19kYXRh LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyApIH19Cit7 JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9CisKK3sl IHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgJ2Rl bGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRlbGV0ZWR8bGVu Z3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRlbGV0ZWQgJX0K Kwore3sgU0VDTEFCTEUuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwg ci5wcm92aWRlciwgb19kYXRhLnByb25hbWVzcGFjZSkgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgLSV9Cit7JSBpZiAnYWRkZWQnIGluIHNlY2xhYmVs cyBhbmQgc2VjbGFiZWxzLmFkZGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciBy IGluIHNlY2xhYmVscy5hZGRlZCAlfQorCit7eyBTRUNMQUJMRS5TRVQoY29u biwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9s YWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSkgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgLSV9Cit7JSBpZiAnY2hhbmdlZCcgaW4gc2VjbGFiZWxzIGFu ZCBzZWNsYWJlbHMuY2hhbmdlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBp biBzZWNsYWJlbHMuY2hhbmdlZCAlfQorCit7eyBTRUNMQUJMRS5TRVQoY29u biwgJ0ZVTkNUSU9OJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9s YWJlbCwgb19kYXRhLnByb25hbWVzcGFjZSkgfX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKwor Q09NTUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnBy b25hbWVzcGFjZSwgbmFtZSkgfX0oe3sKK29fZGF0YS5wcm9hcmd0eXBlbmFt ZXMgfX0pCisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwg fX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5wcm9uYW1lc3BhY2Ug JX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5w cm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7CitvX2RhdGEucHJvYXJndHlwZW5h bWVzIH19KQorICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRhdGEu cHJvbmFtZXNwYWNlKSB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAl fQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMvdmFyaWFibGVzLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMV9wbHVzL3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcGcvc3FsLzkuMV9wbHVzL3ZhcmlhYmxlcy5zcWwKQEAgLTAsMCArMSw2 IEBACitTRUxFQ1QKKyAgICBuYW1lLCB2YXJ0eXBlLCBtaW5fdmFsLCBtYXhf dmFsLCBlbnVtdmFscworRlJPTQorICAgIHBnX3NldHRpbmdzCitXSEVSRQor ICAgIGNvbnRleHQgaW4gKCd1c2VyJywgJ3N1cGVydXNlcicpOwpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS4yX3BsdXMvYWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVz L2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u YWQzZTBkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2Fj bC5zcWwKQEAgLTAsMCArMSwzNSBAQAorU0VMRUNUCisgICAgQ09BTEVTQ0Uo Z3Qucm9sbmFtZSwgJ3B1YmxpYycpIEFTIGdyYW50ZWUsCisgICAgZy5yb2xu YW1lIEFTIGdyYW50b3IsIGFycmF5X2FnZyhwcml2aWxlZ2VfdHlwZSkgQVMg cHJpdmlsZWdlcywKKyAgICBhcnJheV9hZ2coaXNfZ3JhbnRhYmxlKSBBUyBn cmFudGFibGUKK0ZST00KKyAgICAoU0VMRUNUCisgICAgICAgIGQuZ3JhbnRl ZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50YWJsZSwKKyAgICAgICAgQ0FTRSBk LnByaXZpbGVnZV90eXBlCisgICAgICAgIFdIRU4gJ0NPTk5FQ1QnIFRIRU4g J2MnCisgICAgICAgIFdIRU4gJ0NSRUFURScgVEhFTiAnQycKKyAgICAgICAg V0hFTiAnREVMRVRFJyBUSEVOICdkJworICAgICAgICBXSEVOICdFWEVDVVRF JyBUSEVOICdYJworICAgICAgICBXSEVOICdJTlNFUlQnIFRIRU4gJ2EnCisg ICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMnIFRIRU4gJ3gnCisgICAgICAgIFdI RU4gJ1NFTEVDVCcgVEhFTiAncicKKyAgICAgICAgV0hFTiAnVEVNUE9SQVJZ JyBUSEVOICdUJworICAgICAgICBXSEVOICdUUklHR0VSJyBUSEVOICd0Jwor ICAgICAgICBXSEVOICdUUlVOQ0FURScgVEhFTiAnRCcKKyAgICAgICAgV0hF TiAnVVBEQVRFJyBUSEVOICd3JworICAgICAgICBXSEVOICdVU0FHRScgVEhF TiAnVScKKyAgICAgICAgRUxTRSAnVU5LTk9XTicKKyAgICAgICAgRU5EIEFT IHByaXZpbGVnZV90eXBlCisgICAgRlJPTQorICAgICAgICAoU0VMRUNUCisg ICAgICAgICAgICAoZCkuZ3JhbnRlZSBBUyBncmFudGVlLCAoZCkuZ3JhbnRv ciBBUyBncmFudG9yLAorICAgICAgICAgICAgKGQpLmlzX2dyYW50YWJsZSBB UyBpc19ncmFudGFibGUsCisgICAgICAgICAgICAoZCkucHJpdmlsZWdlX3R5 cGUgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICAgICAgRlJPTQorICAgICAgICAg ICAgKFNFTEVDVCBhY2xleHBsb2RlKGRiLnByb2FjbCkgQVMgZCBGUk9NIHBn X3Byb2MgZGIKKyAgICAgICAgICAgIFdIRVJFIGRiLm9pZCA9IHt7Zm5pZH19 OjpPSUQpIGEKKyAgICAgICAgKSBkCisgICAgKSBkCisgICAgTEVGVCBKT0lO IHBnX2NhdGFsb2cucGdfcm9sZXMgZyBPTiAoZC5ncmFudG9yID0gZy5vaWQp CisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZ3QgT04gKGQu Z3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQIEJZIGcucm9sbmFtZSwgZ3Qucm9s bmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2NyZWF0ZS5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjJfcGx1cy9jcmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjgwYTQ2NzYKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BnL3NxbC85LjJfcGx1cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsNjggQEAK K3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3Mn IGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMv cHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQg J21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJM RSAlfQoreyUgc2V0IGlzX2NvbHVtbnMgPSBbXSAlfQoreyUgaWYgZGF0YSAl fQorQ1JFQVRFIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25h bWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7JSBpZiBkYXRhCisuYXJndW1lbnRz ICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFyZ3VtZW50cyAlfXt7cC5hcmdtb2Rl fX0geyUgaWYgcC5hcmduYW1lICV9e3sgY29ubnxxdElkZW50KHAKKy5hcmdu YW1lKX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX0ge3twLmFyZ3R5 cGV9fXslIGVuZGlmICV9eyUKK2lmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQg e3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxh c3QgJX0seyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9 CisgICAgKSBSRVRVUk5TeyUgaWYgZGF0YS5wcm9yZXRzZXQgJX0gU0VUT0Z7 JSBlbmRpZiAlfSB7eyBjb25ufHF0VHlwZUlkZW50KGRhdGEKKyAgICAucHJv cmV0dHlwZW5hbWUpIH19IEFTCit7JSBpZiBkYXRhLmxhbm5hbWUgPT0gJ2Mn ICV9Cit7eyBkYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IGRhdGEucHJv c3JjX2N8cXRMaXRlcmFsIH19Cit7JSBlbHNlICV9CiskQk9EWSR7eyBkYXRh LnByb3NyYyB9fSRCT0RZJAoreyUgZW5kaWYgJX0KK0xBTkdVQUdFIHt7IGRh dGEubGFubmFtZXxxdExpdGVyYWwgfX0ge3sgZGF0YS5wcm92b2xhdGlsZSB9 fXslIGlmIGRhdGEKKy5wcm9sZWFrcHJvb2YgJX0gTEVBS1BST09GeyUgZWxz ZSAlfSBOT1QgTEVBS1BST09GeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJv aXNzdHJpY3QgJX0gU1RSSUNUeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJv c2VjZGVmICV9IFNFQ1VSSVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUgaWYg ZGF0YS5wcm9pc3dpbmRvdyAlfSBXSU5ET1d7JSBlbmRpZiAlfXslIGlmIGRh dGEucHJvY29zdCAlfQorCitDT1NUIHt7ZGF0YS5wcm9jb3N0fX17JSBlbmRp ZiAlfXslIGlmIGRhdGEucHJvcm93cyAlfQorCitST1dTIHt7ZGF0YS5wcm9y b3dzfX17JSBlbmRpZiAtJX17JSBpZiBkYXRhLnZhcmlhYmxlcyAlfQorCit7 JSBmb3IgdiBpbiBkYXRhLnZhcmlhYmxlcyAlfQorCitTRVQge3sgY29ubnxx dElkZW50KHYubmFtZSkgfX09e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17JSBl bmRmb3IgLSV9Cit7JSBlbmRpZiAtJX07CisKK3slIGlmIGRhdGEuZnVuY293 bmVyICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRh LnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7e2RhdGEKKy5mdW5jX2Fy Z3N9fSkKKyAgICBPV05FUiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3sl IGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmFjbCAlfQoreyUgZm9yIHAgaW4g ZGF0YS5hY2wgJX0KKwore3sgUFJJVklMRUdFLlNFVChjb25uLCAiRlVOQ1RJ T04iLCBwLmdyYW50ZWUsIGRhdGEubmFtZSwgcC53aXRob3V0X2dyYW50LCBw Cisud2l0aF9ncmFudCwgZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEuZnVuY19h cmdzKX19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiBk YXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04ge3sg Y29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19 KHt7ZGF0YQorLmZ1bmNfYXJnc319KQorICAgIElTICd7eyBkYXRhLmRlc2Ny aXB0aW9uIH19JzsKK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLnNlY2xh YmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlm IHIubGFiZWwgYW5kIHIucHJvdmlkZXIgJX0KKwore3sgU0VDTEFCTEUuU0VU KGNvbm4sICdGVU5DVElPTicsIGRhdGEubmFtZSwgci5wcm92aWRlciwgci5s YWJlbCwgZGF0YQorLnByb25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3MpIH19 Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKwor eyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2RlbGV0 ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9kZWxldGUuc3FsCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI0NmJlYzEKLS0tIC9kZXYvbnVs bAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9kZWxldGUuc3FsCkBAIC0wLDAgKzEs MjEgQEAKK3slIGlmIHNjaWQgYW5kIGZuaWQgJX0KK1NFTEVDVAorICAgIHBy LnByb25hbWUgYXMgbmFtZSwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cK KyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5v aWQpLCAnJykgfHwgJyknIGFzIGZ1bmNfYXJncywKKyAgICBuc3BuYW1lCitG Uk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9O IHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSBu c3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKK1dIRVJFCisgICAgcHJv aXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9 fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdl dmVudF90cmlnZ2VyJykKKyAgICBBTkQgcHIub2lkID0ge3tmbmlkfX07Cit7 JSBlbmRpZiAlfQorCit7JSBpZiBuYW1lICV9CitEUk9QIEZVTkNUSU9OIHt7 IGNvbm58cXRJZGVudChuc3BuYW1lLCBuYW1lKSB9fXt7ZnVuY19hcmdzfX17 JSBpZiBjYXNjYWRlICV9IENBU0NBREV7JSBlbmRpZiAlfTsKK3slIGVuZGlm ICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfZGVmaW5pdGlv bi5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzYzNWYxZQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF9kZWZpbml0aW9u LnNxbApAQCAtMCwwICsxLDEyIEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVu Y3Rpb25kZWYoe3tmbmlkfX06Om9pZCkgQVMgZnVuY19kZWYsCisgICAgbnNw bmFtZSB8fCAnLicgfHwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0Uo cGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJn dW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgbmFtZQorRlJPTQorICAg IHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5z cC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0g RkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAor ICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w Zy9zcWwvOS4yX3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJf cGx1cy9nZXRfbGFuZ3VhZ2VzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5mODFkZGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9z cWwvOS4yX3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKQEAgLTAsMCArMSw0IEBA CitTRUxFQ1QKKyAgICBsYW5uYW1lIGFzIGxhYmVsLCBsYW5uYW1lIGFzIHZh bHVlCitGUk9NCisgICAgcGdfbGFuZ3VhZ2U7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjJfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF9v aWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJi Yzc2YTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRf b2lkLnNxbApAQCAtMCwwICsxLDE3IEBACitTRUxFQ1QKKyAgICBwci5vaWQs IHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAg ICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQp LCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3Vz ZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIKK0ZST00KKyAgICBwZ19w cm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9y ZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9 cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9p ZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQgbnNwLm5zcG5hbWU9e3sgbnNw bmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxT RQorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRf dHJpZ2dlcicpCisgICAgQU5EIHByLnByb25hbWUgPSB7eyBuYW1lfHF0TGl0 ZXJhbCB9fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF9vdXRf dHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X291dF90eXBlcy5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRhMTE4Nwot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL2dldF9vdXRfdHlw ZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgZm9ybWF0X3R5 cGUob2lkLCBOVUxMKSBBUyBvdXRfYXJnX3R5cGUKK0ZST00KKyAgICBwZ190 eXBlCitXSEVSRQorICAgIG9pZCA9IHt7IG91dF9hcmdfb2lkIH19OjpvaWQ7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfc2NoZW1hLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMl9wbHVzL2dldF9zY2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BnL3NxbC85LjJfcGx1cy9nZXRfc2NoZW1hLnNxbApAQCAtMCwwICsx LDYgQEAKK1NFTEVDVAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19uYW1l c3BhY2UKK1dIRVJFCisgICAgb2lkID0ge3sgc2NpZCB9fTo6b2lkOwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvZ2V0X3R5cGVzLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuMl9wbHVzL2dldF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMmE1NTgyZQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcv c3FsLzkuMl9wbHVzL2dldF90eXBlcy5zcWwKQEAgLTAsMCArMSwyMCBAQAor U0VMRUNUCisgICAgKgorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZm9y bWF0X3R5cGUodC5vaWQsTlVMTCkgQVMgdHlwbmFtZSwKKyAgICAgICAgQ0FT RSBXSEVOIHR5cGVsZW0gPiAwIFRIRU4gdHlwZWxlbSBFTFNFIHQub2lkIEVO RCBhcyBlbGVtb2lkLCB0eXBsZW4sIHR5cHR5cGUsIHQub2lkLCBuc3BuYW1l LAorICAgICAgICAoU0VMRUNUIENPVU5UKDEpIEZST00gcGdfdHlwZSB0MiBX SEVSRSB0Mi50eXBuYW1lID0gdC50eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAg ICBGUk9NCisgICAgICAgIHBnX3R5cGUgdAorICAgIEpPSU4KKyAgICAgICAg cGdfbmFtZXNwYWNlIG5zcCBPTiB0eXBuYW1lc3BhY2U9bnNwLm9pZAorICAg IFdIRVJFCisgICAgICAgIChOT1QgKHR5cG5hbWUgPSAndW5rbm93bicgQU5E IG5zcG5hbWUgPSAncGdfY2F0YWxvZycpKQorICAgIEFORAorICAgICAgICAo CisgICAgICAgICAgICB0eXB0eXBlIElOICgnYicsICdjJywgJ2QnLCAnZScs ICdwJywgJ3InKQorICAgICAgICAgICAgQU5EIHR5cG5hbWUgTk9UIElOICgn YW55JywgJ3RyaWdnZXInLCAnbGFuZ3VhZ2VfaGFuZGxlcicsICdldmVudF90 cmlnZ2VyJykKKyAgICAgICAgKQorICAgICkgQVMgZHVtbXkKK09SREVSIEJZ IG5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnLCBuc3BuYW1lIDw+ICdwdWJsaWMn LCBuc3BuYW1lLCAxOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvbm9k ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9ub2RlLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi41ZTYyY2Q4Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS4yX3BsdXMvbm9kZS5zcWwKQEAgLTAsMCArMSwxOCBA QAorU0VMRUNUCisgICAgcHIub2lkLCBwci5wcm9uYW1lIHx8ICcoJyB8fCBD T0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVu dGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBuYW1lLAor ICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgYXMgZnVu Y293bmVyLCBkZXNjcmlwdGlvbgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pP SU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pP SU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitM RUZUIE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRl cy5vYmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpy ZWdjbGFzcykKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFO RCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5h bWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKK09SREVS IEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVz L3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvcHJvcGVydGllcy5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmY3ODI5 OAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL3Byb3BlcnRp ZXMuc3FsCkBAIC0wLDAgKzEsMzEgQEAKK1NFTEVDVAorICAgIHByLm9pZCwg cHIueG1pbiwgcHIuKiwgcHIucHJvc3JjIEFTIHByb3NyY19jLAorICAgIHBy LnByb25hbWUgQVMgbmFtZSwgcGdfZ2V0X2Z1bmN0aW9uX3Jlc3VsdChwci5v aWQpIEFTIHByb3JldHR5cGVuYW1lLAorICAgIHR5cG5zLm5zcG5hbWUgQVMg dHlwbnNwLCBsYW5uYW1lLCBwcm9hcmduYW1lcywgb2lkdmVjdG9ydHlwZXMo cHJvYXJndHlwZXMpIEFTIHByb2FyZ3R5cGVuYW1lcywKKyAgICBwZ19nZXRf ZXhwcihwcm9hcmdkZWZhdWx0cywgJ3BnX2NhdGFsb2cucGdfY2xhc3MnOjpy ZWdjbGFzcykgQVMgcHJvYXJnZGVmYXVsdHZhbHMsCisgICAgcHJvbmFyZ2Rl ZmF1bHRzLCBwcm9jb25maWcsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikg QVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbiwKKyAgICAoU0VMRUNUCisgICAg ICAgIGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwgbGFiZWwpCisgICAg RlJPTQorICAgICAgICBwZ19zaHNlY2xhYmVsIHNsMQorICAgIFdIRVJFCisg ICAgICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBBUyBzZWNsYWJlbHMKK0ZST00K KyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlw Lm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIHR5cG5z IE9OIHR5cG5zLm9pZD10eXAudHlwbmFtZXNwYWNlCitKT0lOCisgICAgcGdf bGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRFUiBK T0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXBy Lm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3MpCitX SEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHJvbmFtZXNw YWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAo J3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCit7JSBpZiBmbmlkICV9Cisg ICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQKK3slIGVuZGlmICV9CitP UkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJf cGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jYjFmMDgxCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMvdXBkYXRlLnNxbApA QCAtMCwwICsxLDEzMiBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25z L3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAn bWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxF R0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5t YWNyb3MnIGFzIFZBUklBQkxFICV9eyUgaWYgZGF0YSAlfQoreyUgc2V0IG5h bWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICV9Cit7JSBp ZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUgJX0KK0FMVEVSIEZVTkNUSU9O IHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEu bmFtZSkgfX0oe3sKK29fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0pCisgICAg UkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUg c2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3slIGVuZGlmICV9CisKK3slIGVu ZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyAgJX0KK0NSRUFURSBP UiBSRVBMQUNFIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJv bmFtZXNwYWNlLCBuYW1lKSB9fSh7JSBpZiBkYXRhLmFyZ3VtZW50cyAlfQor eyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMgJX17JSBpZiBwLmFyZ21vZGUg JX17e3AuYXJnbW9kZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX0g e3tjb25ufHF0SWRlbnQocC5hcmduYW1lKX19eyUgZW5kaWYgJX17JSBpZiBw LmFyZ3R5cGUgJX0ge3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYgcC5h cmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAl fQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSwgeyUgZW5kaWYgJX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgLSV9CispIFJFVFVSTlMge3sgb19kYXRhLnBy b3JldHR5cGVuYW1lIH19IEFTCit7JSBpZiAnbGFubmFtZScgaW4gbGFubmFt ZSBhbmQgZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sgZGF0YS5wcm9iaW58 cXRMaXRlcmFsIH19LCB7eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fQor eyUgZWxpZiAnbGFubmFtZScgaW4gZGF0YSBhbmQgJ3Byb3NyYycgaW4gZGF0 YSAlfQorJEJPRFkke3sgZGF0YS5wcm9zcmMgfX0kQk9EWSQKK3slIGVsaWYg b19kYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBvX2RhdGEucHJvYmlufHF0 TGl0ZXJhbCB9fSwge3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fQor eyUgZWxzZSAlfQorJEJPRFkke3sgb19kYXRhLnByb3NyYyB9fSRCT0RZJAor eyUgZW5kaWYgLSV9CisKK3slIGlmICdsYW5uYW1lJyBpbiBkYXRhICV9CitM QU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19eyUgZWxzZSAl fQorTEFOR1VBR0Uge3sgb19kYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19eyUg ZW5kaWYgLSV9eyUgaWYgKCdwcm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIGRh dGEucHJvbGVha3Byb29mKSBvciAoJ3Byb2xlYWtwcm9vZicgbm90IGluIGRh dGEgYW5kIG9fZGF0YS5wcm9sZWFrcHJvb2YpICV9IExFQUtQUk9PRnslIGVs c2UgJX0gTk9UIExFQUtQUk9PRnslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lz c3RyaWN0JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lzc3RyaWN0KSBvciAoJ3By b2lzc3RyaWN0JyBub3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzc3RyaWN0 KSAlfSBTVFJJQ1R7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9zZWNkZWYnIGlu IGRhdGEgYW5kIGRhdGEucHJvc2VjZGVmKSBvciAoJ3Byb3NlY2RlZicgbm90 IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9zZWNkZWYpICV9IFNFQ1VSSVRZIERF RklORVJ7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9pc3dpbmRvdycgaW4gZGF0 YSBhbmQgZGF0YS5wcm9pc3dpbmRvdykgb3IgKCdwcm9pc3dpbmRvdycgbm90 IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3dpbmRvdykgJX0gV0lORE9XeyUg ZW5kaWYgJX17JSBpZiBkYXRhLnByb2Nvc3QgJX0KKworQ09TVCB7e2RhdGEu cHJvY29zdH19eyUgZWxpZiBvX2RhdGEucHJvY29zdCAlfSBDT1NUIHt7b19k YXRhLnByb2Nvc3R9fSB7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvcm93cyAl fQorCitST1dTIHt7ZGF0YS5wcm9yb3dzfX0geyUgZWxpZiBvX2RhdGEucHJv cm93cyAlfSBST1dTIHt7b19kYXRhLnByb3Jvd3N9fSB7JQorZW5kaWYgLSV9 eyUgaWYgZGF0YS5tZXJnZWRfdmFyaWFibGVzICV9CisKK3slIGZvciB2IGlu IGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQorCitTRVQge3sgY29ubnxxdElk ZW50KHYubmFtZSkgfX09e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRm b3IgLSV9Cit7JSBlbmRpZiAtJX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYg ZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxx dElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7CitvX2Rh dGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIE9XTkVSIFRPIHt7IGRhdGEu ZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9CisKKworeyMgVGhlIFNRTCBn ZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2UgcHJpdmlsZWRnZXMgI30KK3sl IGlmIGRhdGEuYWNsICV9CisKK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFj bCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAlfQore3sg UFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3Jh bnRlZSwgbmFtZSwgb19kYXRhCisucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJv YXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0K KworeyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3Ig cHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2VkICV9CisKK3t7IFBSSVZJTEVHRS5V TlNFVEFMTChjb25uLCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUs IG9fZGF0YQorLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1l cykgfX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJp di5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsCisgcHJpdi53 aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJn dHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKwor eyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4g ZGF0YS5hY2wuYWRkZWQgJX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ0ZV TkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3Jh bnQsCisgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBv X2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBl bmRpZiAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuY2hhbmdlX2Z1 bmMgPT0gRmFsc2UgJX0KK3slIGlmIGRhdGEudmFyaWFibGVzICV9Cit7JSBp ZiAnZGVsZXRlZCcgaW4gZGF0YS52YXJpYWJsZXMgYW5kIGRhdGEudmFyaWFi bGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5VTlNF VChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRhLnZhcmlhYmxlcy5kZWxl dGVkLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5h bWVzICkgfX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ21lcmdlZF92YXJpYWJs ZXMnIGluIGRhdGEgYW5kIGRhdGEubWVyZ2VkX3ZhcmlhYmxlc3xsZW5ndGgg PiAwICV9CisKK3t7IFZBUklBQkxFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBu YW1lLCBkYXRhLm1lcmdlZF92YXJpYWJsZXMsIG9fZGF0YS5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgKSB9fQoreyUgZW5kaWYgLSV9 Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQorCit7JSBzZXQgc2VjbGFi ZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBz ZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0K K3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVkICV9CisKK3t7IFNFQ0xB QkxFLlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIucHJvdmlkZXIs IG9fZGF0YS5wcm9uYW1lc3BhY2UpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xh YmVscy5hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJl bHMuYWRkZWQgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNvbm4sICdGVU5DVElP TicsIG5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9fZGF0 YS5wcm9uYW1lc3BhY2UpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0l fQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxz LmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxz LmNoYW5nZWQgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNvbm4sICdGVU5DVElP TicsIG5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9fZGF0 YS5wcm9uYW1lc3BhY2UpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0l fQorCit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04g RlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2Us IG5hbWUpIH19KHt7CitvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAg IElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRlcmFsIH19OworeyUgZW5k aWYgLSV9CisKK3slIGlmIGRhdGEucHJvbmFtZXNwYWNlICV9CisKK0FMVEVS IEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNl LCBuYW1lKSB9fSh7eworb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAg ICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFj ZSkgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcGcvc3FsLzkuMl9wbHVzL3ZhcmlhYmxlcy5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJf cGx1cy92YXJpYWJsZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjUyMzNjNzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjJfcGx1cy92YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNU CisgICAgbmFtZSwgdmFydHlwZSwgbWluX3ZhbCwgbWF4X3ZhbCwgZW51bXZh bHMKK0ZST00KKyAgICBwZ19zZXR0aW5ncworV0hFUkUKKyAgICBjb250ZXh0 IGluICgndXNlcicsICdzdXBlcnVzZXInKTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuNV9wbHVzL2FjbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9hY2wuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkM2UwZDEKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9hY2wuc3FsCkBAIC0w LDAgKzEsMzUgQEAKK1NFTEVDVAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUs ICdwdWJsaWMnKSBBUyBncmFudGVlLAorICAgIGcucm9sbmFtZSBBUyBncmFu dG9yLCBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIEFTIHByaXZpbGVnZXMs CisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgQVMgZ3JhbnRhYmxlCitG Uk9NCisgICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRv ciwgZC5pc19ncmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxlZ2Vf dHlwZQorICAgICAgICBXSEVOICdDT05ORUNUJyBUSEVOICdjJworICAgICAg ICBXSEVOICdDUkVBVEUnIFRIRU4gJ0MnCisgICAgICAgIFdIRU4gJ0RFTEVU RScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnRVhFQ1VURScgVEhFTiAnWCcK KyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAgICAgICBXSEVO ICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVOICdTRUxFQ1Qn IFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RFTVBPUkFSWScgVEhFTiAnVCcK KyAgICAgICAgV0hFTiAnVFJJR0dFUicgVEhFTiAndCcKKyAgICAgICAgV0hF TiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisgICAgICAgIFdIRU4gJ1VQREFURScg VEhFTiAndycKKyAgICAgICAgV0hFTiAnVVNBR0UnIFRIRU4gJ1UnCisgICAg ICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxlZ2Vf dHlwZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAgICAg KGQpLmdyYW50ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRv ciwKKyAgICAgICAgICAgIChkKS5pc19ncmFudGFibGUgQVMgaXNfZ3JhbnRh YmxlLAorICAgICAgICAgICAgKGQpLnByaXZpbGVnZV90eXBlIEFTIHByaXZp bGVnZV90eXBlCisgICAgICAgIEZST00KKyAgICAgICAgICAgIChTRUxFQ1Qg YWNsZXhwbG9kZShkYi5wcm9hY2wpIEFTIGQgRlJPTSBwZ19wcm9jIGRiCisg ICAgICAgICAgICBXSEVSRSBkYi5vaWQgPSB7e2ZuaWR9fTo6T0lEKSBhCisg ICAgICAgICkgZAorICAgICkgZAorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9n LnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lkKQorICAgIExFRlQg Sk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBn dC5vaWQpCitHUk9VUCBCWSBnLnJvbG5hbWUsIGd0LnJvbG5hbWU7CmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1 bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41 X3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi4xZDdmNDY1Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41 X3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDY3IEBACit7JSBpbXBvcnQg J21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJM RSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5t YWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVu Y3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIHNl dCBpc19jb2x1bW5zID0gW10gJX0KK3slIGlmIGRhdGEgJX0KK0NSRUFURSBG VU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRh dGEubmFtZSkgfX0oeyUgaWYgZGF0YQorLmFyZ3VtZW50cyAlfQoreyUgZm9y IHAgaW4gZGF0YS5hcmd1bWVudHMgJX17e3AuYXJnbW9kZX19IHslIGlmIHAu YXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUpfX17JSBlbmRp ZiAlfXslIGlmIHAuYXJndHlwZSAlfSB7e3AuYXJndHlwZX19eyUgZW5kaWYg JX17JQoraWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFs fX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSx7JSBlbmRp ZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKyAgICApIFJFVFVS TlN7JSBpZiBkYXRhLnByb3JldHNldCAlfSBTRVRPRnslIGVuZGlmICV9IHt7 IGNvbm58cXRUeXBlSWRlbnQoZGF0YQorICAgIC5wcm9yZXR0eXBlbmFtZSkg fX0gQVMKK3slIGlmIGRhdGEubGFubmFtZSA9PSAnYycgJX0KK3t7IGRhdGEu cHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgZGF0YS5wcm9zcmNfY3xxdExpdGVy YWwgfX0KK3slIGVsc2UgJX0KKyRCT0RZJHt7IGRhdGEucHJvc3JjIH19JEJP RFkkCit7JSBlbmRpZiAlfQorTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0 TGl0ZXJhbCB9fSB7eyBkYXRhLnByb3ZvbGF0aWxlIH19eyUgaWYgZGF0YQor LnByb2xlYWtwcm9vZiAlfSBMRUFLUFJPT0Z7JSBlbHNlICV9IE5PVCBMRUFL UFJPT0Z7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9pc3N0cmljdCAlfSBT VFJJQ1R7JSBlbmRpZiAlfQoreyUgaWYgZGF0YS5wcm9zZWNkZWYgJX0gU0VD VVJJVFkgREVGSU5FUnslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lzd2lu ZG93ICV9IFdJTkRPV3slIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0ICV9 CisKK0NPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVuZGlmICV9eyUgaWYgZGF0 YS5wcm9yb3dzICV9CisKK1JPV1Mge3tkYXRhLnByb3Jvd3N9fXslIGVuZGlm IC0lfXslIGlmIGRhdGEudmFyaWFibGVzICV9CisKK3slIGZvciB2IGluIGRh dGEudmFyaWFibGVzICV9CisKK1NFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1l KSB9fT17eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KK3sl IGVuZGlmIC0lfTsKKworeyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxU RVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFtZXNwYWNl LCBkYXRhLm5hbWUpIH19KHt7ZGF0YQorLmZ1bmNfYXJnc319KQorICAgIE9X TkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9CisK K3slIGlmIGRhdGEuYWNsICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFjbCAlfQor Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICJGVU5DVElPTiIsIHAuZ3JhbnRl ZSwgZGF0YS5uYW1lLCBwLndpdGhvdXRfZ3JhbnQsIHAKKy53aXRoX2dyYW50 LCBkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3MpfX0KK3slIGVu ZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZGVzY3JpcHRp b24gJX0KKworQ09NTUVOVCBPTiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQo ZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0oe3tkYXRhCisuZnVu Y19hcmdzfX0pCisgICAgSVMgJ3t7IGRhdGEuZGVzY3JpcHRpb24gfX0nOwor eyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBm b3IgciBpbiBkYXRhLnNlY2xhYmVscyAlfQoreyUgaWYgci5sYWJlbCBhbmQg ci5wcm92aWRlciAlfQorCit7eyBTRUNMQUJMRS5TRVQoY29ubiwgJ0ZVTkNU SU9OJywgZGF0YS5uYW1lLCByLnByb3ZpZGVyLCByLmxhYmVsLCBkYXRhCisu cHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuNV9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMjQ2YmVjMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuNV9wbHVzL2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAoreyUgaWYg c2NpZCBhbmQgZm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBu YW1lLCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRf ZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAn KScgYXMgZnVuY19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19w cm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9y ZXR0eXBlCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lk PXByLnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNF CisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBB TkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXIn KQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisK K3slIGlmIG5hbWUgJX0KK0RST1AgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50 KG5zcG5hbWUsIG5hbWUpIH19e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUg JX0gQ0FTQ0FERXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcGcvc3FsLzkuNV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuNV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwLi5jNjM1ZjFlCi0tLSAvZGV2L251bGwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlv bi9wZy9zcWwvOS41X3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0wLDAg KzEsMTIgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7e2Zu aWR9fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBuc3BuYW1lIHx8ICcuJyB8 fCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisg ICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lk KSwgJycpIHx8ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgor Sk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9u YW1lc3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFO RCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9p ZCA9IHt7Zm5pZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1 cy9nZXRfbGFuZ3VhZ2VzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2dldF9sYW5n dWFnZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmY4MWRkZmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9n ZXRfbGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAorICAg IGxhbm5hbWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00KKyAg ICBwZ19sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2dl dF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X29pZC5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJjNzZhMgotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL2dldF9vaWQuc3FsCkBAIC0w LDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8 fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVu Y3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScg YXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3du ZXIpIGFzIGZ1bmNvd25lcgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4K KyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4K KyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitKT0lO CisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVz cGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1lfHF0TGl0ZXJh bCB9fQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHR5 cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAg ICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRlcmFsIH19OwpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X291dF90eXBlcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bn L3NxbC85LjVfcGx1cy9nZXRfb3V0X3R5cGVzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGExMTg3Ci0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0X291dF90eXBlcy5zcWwKQEAgLTAs MCArMSw2IEBACitTRUxFQ1QKKyAgICBmb3JtYXRfdHlwZShvaWQsIE5VTEwp IEFTIG91dF9hcmdfdHlwZQorRlJPTQorICAgIHBnX3R5cGUKK1dIRVJFCisg ICAgb2lkID0ge3sgb3V0X2FyZ19vaWQgfX06Om9pZDsKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuNV9wbHVzL2dldF9zY2hlbWEuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3Bs dXMvZ2V0X3NjaGVtYS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uMTI3ZDRiOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzku NV9wbHVzL2dldF9zY2hlbWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNU CisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUK KyAgICBvaWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3Nx bC85LjVfcGx1cy9nZXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvZ2V0 X3R5cGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li4yYTU1ODJlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMv Z2V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICAq CitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBmb3JtYXRfdHlwZSh0Lm9p ZCxOVUxMKSBBUyB0eXBuYW1lLAorICAgICAgICBDQVNFIFdIRU4gdHlwZWxl bSA+IDAgVEhFTiB0eXBlbGVtIEVMU0UgdC5vaWQgRU5EIGFzIGVsZW1vaWQs IHR5cGxlbiwgdHlwdHlwZSwgdC5vaWQsIG5zcG5hbWUsCisgICAgICAgIChT RUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5cG5h bWUgPSB0LnR5cG5hbWUpID4gMSBBUyBpc2R1cAorICAgIEZST00KKyAgICAg ICAgcGdfdHlwZSB0CisgICAgSk9JTgorICAgICAgICBwZ19uYW1lc3BhY2Ug bnNwIE9OIHR5cG5hbWVzcGFjZT1uc3Aub2lkCisgICAgV0hFUkUKKyAgICAg ICAgKE5PVCAodHlwbmFtZSA9ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9ICdw Z19jYXRhbG9nJykpCisgICAgQU5ECisgICAgICAgICgKKyAgICAgICAgICAg IHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAnZCcsICdlJywgJ3AnLCAncicpCisg ICAgICAgICAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCdhbnknLCAndHJpZ2dl cicsICdsYW5ndWFnZV9oYW5kbGVyJywgJ2V2ZW50X3RyaWdnZXInKQorICAg ICAgICApCisgICAgKSBBUyBkdW1teQorT1JERVIgQlkgbnNwbmFtZSA8PiAn cGdfY2F0YWxvZycsIG5zcG5hbWUgPD4gJ3B1YmxpYycsIG5zcG5hbWUsIDE7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9ub2RlLnNxbCBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3Fs LzkuNV9wbHVzL25vZGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLjVlNjJjZDgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85 LjVfcGx1cy9ub2RlLnNxbApAQCAtMCwwICsxLDE4IEBACitTRUxFQ1QKKyAg ICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2Nh dGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50 cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwg cGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIsIGRlc2Ny aXB0aW9uCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5 cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xh bmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9J TgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5v aWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hF UkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFj ZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0 cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorT1JERVIgQlkKKyAgICBwcm9u YW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvcHJvcGVydGllcy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BnL3NxbC85LjVfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjc4Mjk4Ci0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvcHJvcGVydGllcy5zcWwKQEAgLTAs MCArMSwzMSBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci54bWluLCBwci4q LCBwci5wcm9zcmMgQVMgcHJvc3JjX2MsCisgICAgcHIucHJvbmFtZSBBUyBu YW1lLCBwZ19nZXRfZnVuY3Rpb25fcmVzdWx0KHByLm9pZCkgQVMgcHJvcmV0 dHlwZW5hbWUsCisgICAgdHlwbnMubnNwbmFtZSBBUyB0eXBuc3AsIGxhbm5h bWUsIHByb2FyZ25hbWVzLCBvaWR2ZWN0b3J0eXBlcyhwcm9hcmd0eXBlcykg QVMgcHJvYXJndHlwZW5hbWVzLAorICAgIHBnX2dldF9leHByKHByb2FyZ2Rl ZmF1bHRzLCAncGdfY2F0YWxvZy5wZ19jbGFzcyc6OnJlZ2NsYXNzKSBBUyBw cm9hcmdkZWZhdWx0dmFscywKKyAgICBwcm9uYXJnZGVmYXVsdHMsIHByb2Nv bmZpZywgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBBUyBmdW5jb3duZXIs IGRlc2NyaXB0aW9uLAorICAgIChTRUxFQ1QKKyAgICAgICAgYXJyYXlfYWdn KHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkKKyAgICBGUk9NCisgICAgICAg IHBnX3Noc2VjbGFiZWwgc2wxCisgICAgV0hFUkUKKyAgICAgICAgc2wxLm9i am9pZD1wci5vaWQpIEFTIHNlY2xhYmVscworRlJPTQorICAgIHBnX3Byb2Mg cHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5 cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgdHlwbnMgT04gdHlwbnMub2lk PXR5cC50eXBuYW1lc3BhY2UKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcg T04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAgICBwZ19k ZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFORCBkZXMu Y2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisgICAgcHJv aXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9 fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdl dmVudF90cmlnZ2VyJykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQgcHIub2lk ID0ge3tmbmlkfX06Om9pZAoreyUgZW5kaWYgJX0KK09SREVSIEJZCisgICAg cHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL3VwZGF0ZS5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BnL3NxbC85LjVfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjhiMjgxMzQKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BnL3NxbC85LjVfcGx1cy91cGRhdGUuc3FsCkBAIC0wLDAgKzEsMTMy IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFj cm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rp b25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1w b3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFS SUFCTEUgJX17JSBpZiBkYXRhICV9Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5u YW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAh PSBvX2RhdGEubmFtZSAlfQorQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElk ZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5uYW1lKSB9fSh7ewor b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBSRU5BTUUgVE8ge3sg Y29ubnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBzZXQgbmFtZSA9IGRh dGEubmFtZSAlfQoreyUgZW5kaWYgJX0KKworeyUgZW5kaWYgLSV9Cit7JSBp ZiBkYXRhLmNoYW5nZV9mdW5jICAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgRlVO Q1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5h bWUpIH19KHslIGlmIGRhdGEuYXJndW1lbnRzICV9Cit7JSBmb3IgcCBpbiBk YXRhLmFyZ3VtZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2Rl fX17JSBlbmRpZiAlfXslIGlmIHAuYXJnbmFtZSAlfSB7eyBjb25ufHF0SWRl bnQocC5hcmduYW1lKSB9fXslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9 IHt7cC5hcmd0eXBlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9 IERFRkFVTFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5v dCBsb29wLmxhc3QgJX0seyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgLSV9CispIFJFVFVSTlMge3sgb19kYXRhLnByb3JldHR5cGVuYW1l IH19IEFTCit7JSBpZiAnbGFubmFtZScgaW4gbGFubmFtZSBhbmQgZGF0YS5s YW5uYW1lID09ICdjJyAlfQore3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19 LCB7eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fQoreyUgZWxpZiAnbGFu bmFtZScgaW4gZGF0YSBhbmQgJ3Byb3NyYycgaW4gZGF0YSAlfQorJEJPRFkk e3sgZGF0YS5wcm9zcmMgfX0kQk9EWSQKK3slIGVsaWYgb19kYXRhLmxhbm5h bWUgPT0gJ2MnICV9Cit7eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwg e3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fQoreyUgZWxzZSAlfQor JEJPRFkke3sgb19kYXRhLnByb3NyYyB9fSRCT0RZJAoreyUgZW5kaWYgLSV9 CisKK3slIGlmICdsYW5uYW1lJyBpbiBkYXRhICV9CitMQU5HVUFHRSB7eyBk YXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19eyUgZWxzZSAlfQorTEFOR1VBR0Ug e3sgb19kYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19eyUgZW5kaWYgLSV9eyUg aWYgKCdwcm9sZWFrcHJvb2YnIGluIGRhdGEgYW5kIGRhdGEucHJvbGVha3By b29mKSBvciAoJ3Byb2xlYWtwcm9vZicgbm90IGluIGRhdGEgYW5kIG9fZGF0 YS5wcm9sZWFrcHJvb2YpICV9IExFQUtQUk9PRnslIGVsc2UgJX0gTk9UIExF QUtQUk9PRnslIGVuZGlmICV9Cit7JSBpZiAoJ3Byb2lzc3RyaWN0JyBpbiBk YXRhIGFuZCBkYXRhLnByb2lzc3RyaWN0KSBvciAoJ3Byb2lzc3RyaWN0JyBu b3QgaW4gZGF0YSBhbmQgb19kYXRhLnByb2lzc3RyaWN0KSAlfSBTVFJJQ1R7 JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9zZWNkZWYnIGluIGRhdGEgYW5kIGRh dGEucHJvc2VjZGVmKSBvciAoJ3Byb3NlY2RlZicgbm90IGluIGRhdGEgYW5k IG9fZGF0YS5wcm9zZWNkZWYpICV9IFNFQ1VSSVRZIERFRklORVJ7JSBlbmRp ZiAlfQoreyUgaWYgKCdwcm9pc3dpbmRvdycgaW4gZGF0YSBhbmQgZGF0YS5w cm9pc3dpbmRvdykgb3IgKCdwcm9pc3dpbmRvdycgbm90IGluIGRhdGEgYW5k IG9fZGF0YS5wcm9pc3dpbmRvdykgJX0gV0lORE9XeyUgZW5kaWYgJX17JSBp ZiBkYXRhLnByb2Nvc3QgJX0KKworQ09TVCB7e2RhdGEucHJvY29zdH19eyUg ZWxpZiBvX2RhdGEucHJvY29zdCAlfSBDT1NUIHt7b19kYXRhLnByb2Nvc3R9 fSB7JSBlbmRpZiAlfXslIGlmIGRhdGEucHJvcm93cyAlfQorCitST1dTIHt7 ZGF0YS5wcm9yb3dzfX0geyUgZWxpZiBvX2RhdGEucHJvcm93cyAlfSBST1dT IHt7b19kYXRhLnByb3Jvd3N9fSB7JQorZW5kaWYgLSV9eyUgaWYgZGF0YS5t ZXJnZWRfdmFyaWFibGVzICV9CisKK3slIGZvciB2IGluIGRhdGEubWVyZ2Vk X3ZhcmlhYmxlcyAlfQorCitTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkg fX09e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgLSV9Cit7JSBl bmRpZiAtJX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5mdW5jb3du ZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7CitvX2RhdGEucHJvYXJndHlw ZW5hbWVzIH19KQorICAgIE9XTkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19 OworeyUgZW5kaWYgLSV9CisKKworeyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVs b3cgd2lsbCBjaGFuZ2UgcHJpdmlsZWRnZXMgI30KK3slIGlmIGRhdGEuYWNs ICV9CisKK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9y IHByaXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAlfQore3sgUFJJVklMRUdFLlVO U0VUQUxMKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwg b19kYXRhCisucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz KSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgJ2No YW5nZWQnIGluIGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRh LmFjbC5jaGFuZ2VkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25u LCAnRlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YQorLnBy b25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3t7IFBS SVZJTEVHRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBu YW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsCisgcHJpdi53aXRoX2dyYW50LCBv X2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9 fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgJ2FkZGVk JyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRk ZWQgJX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJp di5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsCisgcHJpdi53 aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJn dHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUg ZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgPT0gRmFsc2Ug JX0KK3slIGlmIGRhdGEudmFyaWFibGVzICV9Cit7JSBpZiAnZGVsZXRlZCcg aW4gZGF0YS52YXJpYWJsZXMgYW5kIGRhdGEudmFyaWFibGVzLmRlbGV0ZWR8 bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5VTlNFVChjb25uLCAnRlVO Q1RJT04nLCBuYW1lLCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkLCBvX2RhdGEu cHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzICkgfX0KK3sl IGVuZGlmIC0lfQoreyUgaWYgJ21lcmdlZF92YXJpYWJsZXMnIGluIGRhdGEg YW5kIGRhdGEubWVyZ2VkX3ZhcmlhYmxlc3xsZW5ndGggPiAwICV9CisKK3t7 IFZBUklBQkxFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRhLm1l cmdlZF92YXJpYWJsZXMsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMgKSB9fQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAt JX0KK3slIGVuZGlmIC0lfQorCit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5z ZWNsYWJlbHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5k IHNlY2xhYmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGlu IHNlY2xhYmVscy5kZWxldGVkICV9CisKK3t7IFNFQ0xBQkxFLlVOU0VUKGNv bm4sICdGVU5DVElPTicsIG5hbWUsIHIucHJvdmlkZXIsIG9fZGF0YS5wcm9u YW1lc3BhY2UpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUg aWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxs ZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0K Kwore3sgU0VDTEFCTEUuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIu cHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3Bh Y2UpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2No YW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVu Z3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0K Kwore3sgU0VDTEFCTEUuU0VUKGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIu cHJvdmlkZXIsIHIuc2VjdXJpdHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3Bh Y2UpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiBk YXRhLmRlc2NyaXB0aW9uICV9CisKK0NPTU1FTlQgT04gRlVOQ1RJT04ge3sg Y29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7 CitvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIElTIHt7IGRhdGEu ZGVzY3JpcHRpb258cXRMaXRlcmFsIH19OworeyUgZW5kaWYgLSV9CisKK3sl IGlmIGRhdGEucHJvbmFtZXNwYWNlICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7 IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7 eworb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBTRVQgU0NIRU1B IHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSkgfX07Cit7JSBl bmRpZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzku NV9wbHVzL3ZhcmlhYmxlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy92YXJpYWJs ZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjUy MzNjNzEKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjVfcGx1cy92YXJp YWJsZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbmFtZSwg dmFydHlwZSwgbWluX3ZhbCwgbWF4X3ZhbCwgZW51bXZhbHMKK0ZST00KKyAg ICBwZ19zZXR0aW5ncworV0hFUkUKKyAgICBjb250ZXh0IGluICgndXNlcics ICdzdXBlcnVzZXInKTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMv YWNsLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvYWNsLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9hY2wuc3FsCkBAIC0wLDAgKzEs MzUgQEAKK1NFTEVDVAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJs aWMnKSBBUyBncmFudGVlLAorICAgIGcucm9sbmFtZSBBUyBncmFudG9yLCBh cnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIEFTIHByaXZpbGVnZXMsCisgICAg YXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgQVMgZ3JhbnRhYmxlCitGUk9NCisg ICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5p c19ncmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQor ICAgICAgICBXSEVOICdDT05ORUNUJyBUSEVOICdjJworICAgICAgICBXSEVO ICdDUkVBVEUnIFRIRU4gJ0MnCisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhF TiAnZCcKKyAgICAgICAgV0hFTiAnRVhFQ1VURScgVEhFTiAnWCcKKyAgICAg ICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAgICAgICBXSEVOICdSRUZF UkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4g J3InCisgICAgICAgIFdIRU4gJ1RFTVBPUkFSWScgVEhFTiAnVCcKKyAgICAg ICAgV0hFTiAnVFJJR0dFUicgVEhFTiAndCcKKyAgICAgICAgV0hFTiAnVFJV TkNBVEUnIFRIRU4gJ0QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAn dycKKyAgICAgICAgV0hFTiAnVVNBR0UnIFRIRU4gJ1UnCisgICAgICAgIEVM U0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQor ICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAgICAgKGQpLmdy YW50ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwKKyAg ICAgICAgICAgIChkKS5pc19ncmFudGFibGUgQVMgaXNfZ3JhbnRhYmxlLAor ICAgICAgICAgICAgKGQpLnByaXZpbGVnZV90eXBlIEFTIHByaXZpbGVnZV90 eXBlCisgICAgICAgIEZST00KKyAgICAgICAgICAgIChTRUxFQ1QgYWNsZXhw bG9kZShkYi5wcm9hY2wpIEFTIGQgRlJPTSBwZ19wcm9jIGRiCisgICAgICAg ICAgICBXSEVSRSBkYi5vaWQgPSB7e2ZuaWR9fTo6T0lEKSBhCisgICAgICAg ICkgZAorICAgICkgZAorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3Jv bGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lkKQorICAgIExFRlQgSk9JTiBw Z19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQp CitHUk9VUCBCWSBnLnJvbG5hbWUsIGd0LnJvbG5hbWU7CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BwYXMvc3FsLzkuMV9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9w bHVzL2NyZWF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uOGYxOWFmMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4x X3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDY2IEBACit7JSBpbXBvcnQg J21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJM RSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5t YWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVu Y3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIHNl dCBpc19jb2x1bW5zID0gW10gJX0KK3slIGlmIGRhdGEgJX0KK0NSRUFURSBG VU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRh dGEubmFtZSkgfX0oeyUgaWYgZGF0YQorLmFyZ3VtZW50cyAlfQoreyUgZm9y IHAgaW4gZGF0YS5hcmd1bWVudHMgJX17e3AuYXJnbW9kZX19IHslIGlmIHAu YXJnbmFtZSAlfXt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUpfX17JSBlbmRp ZiAlfXslIGlmIHAuYXJndHlwZSAlfSB7e3AuYXJndHlwZX19eyUgZW5kaWYg JX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9 fXslIGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LHslIGVuZGlm ICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorICAgICkgUkVUVVJO U3slIGlmIGRhdGEucHJvcmV0c2V0ICV9IFNFVE9GeyUgZW5kaWYgJX0ge3sg Y29ubnxxdFR5cGVJZGVudChkYXRhCisgICAgLnByb3JldHR5cGVuYW1lKSB9 fSBBUworeyUgaWYgZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sgZGF0YS5w cm9iaW58cXRMaXRlcmFsIH19LCB7eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJh bCB9fQoreyUgZWxzZSAlfQorJEJPRFkke3sgZGF0YS5wcm9zcmMgfX0kQk9E WSQKK3slIGVuZGlmICV9CitMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRM aXRlcmFsIH19IHt7IGRhdGEucHJvdm9sYXRpbGUgfX17JSBpZiBkYXRhCisu cHJvbGVha3Byb29mICV9IExFQUtQUk9PRnslIGVsc2UgJX0gTk9UIExFQUtQ Uk9PRnslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb2lzc3RyaWN0ICV9IFNU UklDVHslIGVuZGlmICV9Cit7JSBpZiBkYXRhLnByb3NlY2RlZiAlfSBTRUNV UklUWSBERUZJTkVSeyUgZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXN3aW5k b3cgJX0gV0lORE9XeyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb2Nvc3QgJX0K KworQ09TVCB7e2RhdGEucHJvY29zdH19eyUgZW5kaWYgJX17JSBpZiBkYXRh LnByb3Jvd3MgJX0KKworUk9XUyB7e2RhdGEucHJvcm93c319eyUgZW5kaWYg LSV9eyUgaWYgZGF0YS52YXJpYWJsZXMgJX0KKworeyUgZm9yIHYgaW4gZGF0 YS52YXJpYWJsZXMgJX0KKworU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUp IH19PXt7IHYudmFsdWV8cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQoreyUg ZW5kaWYgLSV9OworCit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRF UiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2Us IGRhdGEubmFtZSkgfX0oe3tkYXRhCisuZnVuY19hcmdzfX0pCisgICAgT1dO RVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0KKwor eyUgaWYgZGF0YS5hY2wgJX0KK3slIGZvciBwIGluIGRhdGEuYWNsICV9CisK K3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgIkZVTkNUSU9OIiwgcC5ncmFudGVl LCBkYXRhLm5hbWUsIHAud2l0aG91dF9ncmFudCwgcAorLndpdGhfZ3JhbnQs IGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLmZ1bmNfYXJncyl9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5kZXNjcmlwdGlv biAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChk YXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9fSh7e2RhdGEKKy5mdW5j X2FyZ3N9fSkKKyAgICBJUyAne3sgZGF0YS5kZXNjcmlwdGlvbiB9fSc7Cit7 JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZv ciByIGluIGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiByLmxhYmVsIGFuZCBy LnByb3ZpZGVyICV9CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnRlVOQ1RJ T04nLCBkYXRhLm5hbWUsIHIucHJvdmlkZXIsIHIubGFiZWwsIGRhdGEKKy5w cm9uYW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKSB9fQoreyUgZW5kaWYgJX0K K3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuMV9wbHVzL2RlbGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMC4uMjQ2YmVjMQotLS0gL2Rldi9udWxsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBh cy9zcWwvOS4xX3BsdXMvZGVsZXRlLnNxbApAQCAtMCwwICsxLDIxIEBACit7 JSBpZiBzY2lkIGFuZCBmbmlkICV9CitTRUxFQ1QKKyAgICBwci5wcm9uYW1l IGFzIG5hbWUsICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBn X2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycp IHx8ICcpJyBhcyBmdW5jX2FyZ3MsCisgICAgbnNwbmFtZQorRlJPTQorICAg IHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lk PXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5z cC5vaWQ9cHIucHJvbmFtZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0g RkFMU0UKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAor ICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJp Z2dlcicpCisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OworeyUgZW5kaWYg JX0KKworeyUgaWYgbmFtZSAlfQorRFJPUCBGVU5DVElPTiB7eyBjb25ufHF0 SWRlbnQobnNwbmFtZSwgbmFtZSkgfX17e2Z1bmNfYXJnc319eyUgaWYgY2Fz Y2FkZSAlfSBDQVNDQURFeyUgZW5kaWYgJX07Cit7JSBlbmRpZiAlfQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BwYXMvc3FsLzkuMV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNjM1ZjFlCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRfZGVmaW5pdGlvbi5z cWwKQEAgLTAsMCArMSwxMiBAQAorU0VMRUNUCisgICAgcGdfZ2V0X2Z1bmN0 aW9uZGVmKHt7Zm5pZH19OjpvaWQpIEFTIGZ1bmNfZGVmLAorICAgIG5zcG5h bWUgfHwgJy4nIHx8IHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBn X2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3Vt ZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUKK0ZST00KKyAgICBw Z19wcm9jIHByCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Au b2lkPXByLnByb25hbWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZB TFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAg ICBBTkQgcHIub2lkID0ge3tmbmlkfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBh cy9zcWwvOS4xX3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku MV9wbHVzL2dldF9sYW5ndWFnZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLmY4MWRkZmIKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bw YXMvc3FsLzkuMV9wbHVzL2dldF9sYW5ndWFnZXMuc3FsCkBAIC0wLDAgKzEs NCBAQAorU0VMRUNUCisgICAgbGFubmFtZSBhcyBsYWJlbCwgbGFubmFtZSBh cyB2YWx1ZQorRlJPTQorICAgIHBnX2xhbmd1YWdlOwpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w cGFzL3NxbC85LjFfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3Bs dXMvZ2V0X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uMmJjNzZhMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4x X3BsdXMvZ2V0X29pZC5zcWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisg ICAgcHIub2lkLCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19j YXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVu dHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUs IHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgYXMgZnVuY293bmVyCitGUk9N CisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5 cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBP TiBsbmcub2lkPXByb2xhbmcKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNw IE9OIG5zcC5vaWQ9cHIucHJvbmFtZXNwYWNlCisgICAgQU5EIG5zcC5uc3Bu YW1lPXt7IG5zcG5hbWV8cXRMaXRlcmFsIH19CitXSEVSRQorICAgIHByb2lz YWdnID0gRkFMU0UKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2Vy JywgJ2V2ZW50X3RyaWdnZXInKQorICAgIEFORCBwci5wcm9uYW1lID0ge3sg bmFtZXxxdExpdGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9w bHVzL2dldF9vdXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRf b3V0X3R5cGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwLi42NGExMTg3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFf cGx1cy9nZXRfb3V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVD VAorICAgIGZvcm1hdF90eXBlKG9pZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBl CitGUk9NCisgICAgcGdfdHlwZQorV0hFUkUKKyAgICBvaWQgPSB7eyBvdXRf YXJnX29pZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1 cy9nZXRfc2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3NjaGVt YS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI3 ZDRiOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0 X3NjaGVtYS5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuc3Bu YW1lCitGUk9NCisgICAgcGdfbmFtZXNwYWNlCitXSEVSRQorICAgIG9pZCA9 IHt7IHNjaWQgfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3Bs dXMvZ2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3R5cGVz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTU1 ODJlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9nZXRf dHlwZXMuc3FsCkBAIC0wLDAgKzEsMjAgQEAKK1NFTEVDVAorICAgICoKK0ZS T00KKyAgICAoU0VMRUNUCisgICAgICAgIGZvcm1hdF90eXBlKHQub2lkLE5V TEwpIEFTIHR5cG5hbWUsCisgICAgICAgIENBU0UgV0hFTiB0eXBlbGVtID4g MCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9pZCBFTkQgYXMgZWxlbW9pZCwgdHlw bGVuLCB0eXB0eXBlLCB0Lm9pZCwgbnNwbmFtZSwKKyAgICAgICAgKFNFTEVD VCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZSA9 IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCisgICAgRlJPTQorICAgICAgICBw Z190eXBlIHQKKyAgICBKT0lOCisgICAgICAgIHBnX25hbWVzcGFjZSBuc3Ag T04gdHlwbmFtZXNwYWNlPW5zcC5vaWQKKyAgICBXSEVSRQorICAgICAgICAo Tk9UICh0eXBuYW1lID0gJ3Vua25vd24nIEFORCBuc3BuYW1lID0gJ3BnX2Nh dGFsb2cnKSkKKyAgICBBTkQKKyAgICAgICAgKAorICAgICAgICAgICAgdHlw dHlwZSBJTiAoJ2InLCAnYycsICdkJywgJ2UnLCAncCcsICdyJykKKyAgICAg ICAgICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ2FueScsICd0cmlnZ2VyJywg J2xhbmd1YWdlX2hhbmRsZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgICAg ICkKKyAgICApIEFTIGR1bW15CitPUkRFUiBCWSBuc3BuYW1lIDw+ICdwZ19j YXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGljJywgbnNwbmFtZSwgMTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvbm9kZS5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3Fs LzkuMV9wbHVzL25vZGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAuLmM2ZDE3MWIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3Fs LzkuMV9wbHVzL25vZGUuc3FsCkBAIC0wLDAgKzEsMTkgQEAKK1NFTEVDVAor ICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdf Y2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1l bnRzKHByLm9pZCksICcnKSB8fCAnKScgQVMgbmFtZSwKKyAgICBsYW5uYW1l LCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNvd25lciwgZGVz Y3JpcHRpb24KK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdf dHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdf bGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRFUiBK T0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXBy Lm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3MpCitX SEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHIucHJvdHlw ZSA9ICcwJzo6Y2hhcgorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9 fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdl dmVudF90cmlnZ2VyJykKK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLjllOGE4YmEKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BwYXMvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEs MzEgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIueG1pbiwgcHIuKiwgcHIu cHJvc3JjIEFTIHByb3NyY19jLAorICAgIHByLnByb25hbWUgQVMgbmFtZSwg cGdfZ2V0X2Z1bmN0aW9uX3Jlc3VsdChwci5vaWQpIEFTIHByb3JldHR5cGVu YW1lLAorICAgIHR5cG5zLm5zcG5hbWUgQVMgdHlwbnNwLCBsYW5uYW1lLCBw cm9hcmduYW1lcywgb2lkdmVjdG9ydHlwZXMocHJvYXJndHlwZXMpIEFTIHBy b2FyZ3R5cGVuYW1lcywKKyAgICBwZ19nZXRfZXhwcihwcm9hcmdkZWZhdWx0 cywgJ3BnX2NhdGFsb2cucGdfY2xhc3MnOjpyZWdjbGFzcykgQVMgcHJvYXJn ZGVmYXVsdHZhbHMsCisgICAgcHJvbmFyZ2RlZmF1bHRzLCBwcm9jb25maWcs IHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgQVMgZnVuY293bmVyLCBkZXNj cmlwdGlvbiwKKyAgICAoU0VMRUNUCisgICAgICAgIGFycmF5X2FnZyhwcm92 aWRlciB8fCAnPScgfHwgbGFiZWwpCisgICAgRlJPTQorICAgICAgICBwZ19z ZWNsYWJlbCBzbDEKKyAgICBXSEVSRQorICAgICAgICBzbDEub2Jqb2lkPXBy Lm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9J TgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9J TgorICAgIHBnX25hbWVzcGFjZSB0eXBucyBPTiB0eXBucy5vaWQ9dHlwLnR5 cG5hbWVzcGFjZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcu b2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0 aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29p ZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9 IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQK KyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3Ry aWdnZXInKQoreyUgaWYgZm5pZCAlfQorICAgIEFORCBwci5vaWQgPSB7e2Zu aWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JERVIgQlkKKyAgICBwcm9uYW1l OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w cGFzL3NxbC85LjFfcGx1cy91cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAuLmQzOGQ1NWQKLS0tIC9kZXYvbnVsbAorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BwYXMvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMzEg QEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNy b3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlv bnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBv cnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJ QUJMRSAlfXslIGlmIGRhdGEgJX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5h bWUgJX0KK3slIGlmIGRhdGEubmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9 IG9fZGF0YS5uYW1lICV9CitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRl bnQob19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLm5hbWUpIH19KHt7Citv X2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIFJFTkFNRSBUTyB7eyBj b25ufHF0SWRlbnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0 YS5uYW1lICV9Cit7JSBlbmRpZiAlfQorCit7JSBlbmRpZiAtJX0KK3slIGlm IGRhdGEuY2hhbmdlX2Z1bmMgICV9CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5D VElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFt ZSkgfX0oeyUgaWYgZGF0YS5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRh dGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9 fXslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9IHt7IGNvbm58cXRJZGVu dChwLmFyZ25hbWUpIH19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX0g e3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0g REVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90 IGxvb3AubGFzdCAlfSwgeyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgLSV9CispIFJFVFVSTlMge3sgb19kYXRhLnByb3JldHR5cGVuYW1l IH19IEFTCit7JSBpZiAnbGFubmFtZScgaW4gbGFubmFtZSBhbmQgZGF0YS5s YW5uYW1lID09ICdjJyAlfQore3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19 LCB7eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fQoreyUgZWxpZiAnbGFu bmFtZScgaW4gZGF0YSBhbmQgJ3Byb3NyYycgaW4gZGF0YSAlfQorJEJPRFkk e3sgZGF0YS5wcm9zcmMgfX0kQk9EWSQKK3slIGVsaWYgb19kYXRhLmxhbm5h bWUgPT0gJ2MnICV9Cit7eyBvX2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwg e3sgb19kYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fQoreyUgZWxzZSAlfQor JEJPRFkke3sgb19kYXRhLnByb3NyYyB9fSRCT0RZJAoreyUgZW5kaWYgLSV9 CisKK3slIGlmICdsYW5uYW1lJyBpbiBkYXRhICV9CitMQU5HVUFHRSB7eyBk YXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19eyUgZWxzZSAlfQorTEFOR1VBR0Ug e3sgb19kYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19eyUgZW5kaWYgLSV9eyUg aWYgKCdwcm9pc3N0cmljdCcgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3N0cmlj dCkgb3IgKCdwcm9pc3N0cmljdCcgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5w cm9pc3N0cmljdCkgJX0gU1RSSUNUeyUgZW5kaWYgJX0KK3slIGlmICgncHJv c2VjZGVmJyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2RlZikgb3IgKCdwcm9z ZWNkZWYnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvc2VjZGVmKSAlfSBT RUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX0KK3slIGlmICgncHJvaXN3aW5k b3cnIGluIGRhdGEgYW5kIGRhdGEucHJvaXN3aW5kb3cpIG9yICgncHJvaXN3 aW5kb3cnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXN3aW5kb3cpICV9 IFdJTkRPV3slIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0ICV9CisKK0NP U1Qge3tkYXRhLnByb2Nvc3R9fXslIGVsaWYgb19kYXRhLnByb2Nvc3QgJX0g Q09TVCB7e29fZGF0YS5wcm9jb3N0fX0geyUgZW5kaWYgJX17JSBpZiBkYXRh LnByb3Jvd3MgJX0KKworUk9XUyB7e2RhdGEucHJvcm93c319IHslIGVsaWYg b19kYXRhLnByb3Jvd3MgJX0gUk9XUyB7e29fZGF0YS5wcm9yb3dzfX0geyUK K2VuZGlmIC0lfXslIGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQorCit7 JSBmb3IgdiBpbiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX0KKworU0VUIHt7 IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8cXRMaXRlcmFs IH19eyUgZW5kZm9yIC0lfQoreyUgZW5kaWYgLSV9OworeyUgZW5kaWYgLSV9 CisKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVSIEZVTkNUSU9O IHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9 fSh7eworb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAgICBPV05FUiBU TyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmIC0lfQorCisKK3sj IFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdlIHByaXZpbGVk Z2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQorCit7JSBpZiAnZGVsZXRlZCcg aW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmRlbGV0 ZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04n LCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YQorLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgLSV9CisKK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRhLmRhdGFjbCAl fQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAlfQorCit7eyBQ UklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFu dGVlLCBuYW1lLCBvX2RhdGEKKy5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9h cmd0eXBlbmFtZXMpIH19Cit7eyBQUklWSUxFR0UuU0VUKGNvbm4sICdGVU5D VElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50 LAorIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19k YXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5k aWYgLSV9CisKK3slIGlmICdhZGRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZv ciBwcml2IGluIGRhdGEuYWNsLmFkZGVkICV9Cit7eyBQUklWSUxFR0UuU0VU KGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53 aXRob3V0X2dyYW50LAorIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRh LmNoYW5nZV9mdW5jID09IEZhbHNlICV9Cit7JSBpZiBkYXRhLnZhcmlhYmxl cyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEudmFyaWFibGVzIGFuZCBk YXRhLnZhcmlhYmxlcy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KKwore3sgVkFS SUFCTEUuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS52YXJp YWJsZXMuZGVsZXRlZCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnBy b2FyZ3R5cGVuYW1lcyApIH19Cit7JSBlbmRpZiAtJX0KK3slIGlmICdtZXJn ZWRfdmFyaWFibGVzJyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdlZF92YXJpYWJs ZXN8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5TRVQoY29ubiwgJ0ZV TkNUSU9OJywgbmFtZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVzLCBvX2RhdGEu cHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzICkgfX0KK3sl IGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KKworeyUg c2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBpZiAnZGVs ZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVsZXRlZHxsZW5n dGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVsZXRlZCAlfQor Cit7eyBTRUNMQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBy LnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNwYWNlKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxz IGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIg aW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkxFLlNFVChjb25u LCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xh YmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlKSB9fQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5k IHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGlu IHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xBQkxFLlNFVChjb25u LCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xh YmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlKSB9fQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitD T01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJv bmFtZXNwYWNlLCBuYW1lKSB9fSh7eworb19kYXRhLnByb2FyZ3R5cGVuYW1l cyB9fSkKKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0TGl0ZXJhbCB9 fTsKK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLnByb25hbWVzcGFjZSAl fQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnBy b25hbWVzcGFjZSwgbmFtZSkgfX0oe3sKK29fZGF0YS5wcm9hcmd0eXBlbmFt ZXMgfX0pCisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5w cm9uYW1lc3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL3ZhcmlhYmxlcy5zcWwg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BwYXMvc3FsLzkuMV9wbHVzL3ZhcmlhYmxlcy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvdmFyaWFibGVzLnNxbApAQCAtMCww ICsxLDYgQEAKK1NFTEVDVAorICAgIG5hbWUsIHZhcnR5cGUsIG1pbl92YWws IG1heF92YWwsIGVudW12YWxzCitGUk9NCisgICAgcGdfc2V0dGluZ3MKK1dI RVJFCisgICAgY29udGV4dCBpbiAoJ3VzZXInLCAnc3VwZXJ1c2VyJyk7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2FjbC5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3Fs LzkuMl9wbHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYWQzZTBkMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwv OS4yX3BsdXMvYWNsLnNxbApAQCAtMCwwICsxLDM1IEBACitTRUxFQ1QKKyAg ICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykgQVMgZ3JhbnRlZSwK KyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJyYXlfYWdnKHByaXZpbGVn ZV90eXBlKSBBUyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19ncmFu dGFibGUpIEFTIGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QKKyAgICAg ICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAorICAg ICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hFTiAnQ09O TkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JFQVRFJyBUSEVOICdD JworICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAgIFdI RU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAgICAgIFdIRU4gJ0lOU0VSVCcg VEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhFTiAneCcK KyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICBXSEVO ICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdIRU4gJ1RSSUdHRVIn IFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdEJwor ICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgIFdIRU4g J1VTQUdFJyBUSEVOICdVJworICAgICAgICBFTFNFICdVTktOT1dOJworICAg ICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisgICAgICAg IChTRUxFQ1QKKyAgICAgICAgICAgIChkKS5ncmFudGVlIEFTIGdyYW50ZWUs IChkKS5ncmFudG9yIEFTIGdyYW50b3IsCisgICAgICAgICAgICAoZCkuaXNf Z3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAgICAgICAgIChkKS5w cml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQorICAgICAgICBGUk9N CisgICAgICAgICAgICAoU0VMRUNUIGFjbGV4cGxvZGUoZGIucHJvYWNsKSBB UyBkIEZST00gcGdfcHJvYyBkYgorICAgICAgICAgICAgV0hFUkUgZGIub2lk ID0ge3tmbmlkfX06Ok9JRCkgYQorICAgICAgICApIGQKKyAgICApIGQKKyAg ICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdyYW50 b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xl cyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkgZy5yb2xu YW1lLCBndC5yb2xuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1 cy9jcmVhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9jcmVhdGUuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY5YWUzYjkKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2NyZWF0ZS5zcWwK QEAgLTAsMCArMSw2NiBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25z L3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAn bWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxF R0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5t YWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNfY29sdW1ucyA9IFtd ICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgRlVOQ1RJT04ge3sgY29ubnxx dElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHslIGlm IGRhdGEKKy5hcmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEuYXJndW1l bnRzICV9e3twLmFyZ21vZGV9fSB7JSBpZiBwLmFyZ25hbWUgJX17eyBjb25u fHF0SWRlbnQocC5hcmduYW1lKX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5 cGUgJX0ge3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2 YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUg aWYgbm90IGxvb3AubGFzdCAlfSx7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAtJX0KKyAgICApIFJFVFVSTlN7JSBpZiBkYXRhLnByb3Jl dHNldCAlfSBTRVRPRnslIGVuZGlmICV9IHt7IGNvbm58cXRUeXBlSWRlbnQo ZGF0YQorICAgIC5wcm9yZXR0eXBlbmFtZSkgfX0gQVMKK3slIGlmIGRhdGEu bGFubmFtZSA9PSAnYycgJX0KK3t7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9 fSwge3sgZGF0YS5wcm9zcmNfY3xxdExpdGVyYWwgfX0KK3slIGVsc2UgJX0K KyRCT0RZJHt7IGRhdGEucHJvc3JjIH19JEJPRFkkCit7JSBlbmRpZiAlfQor TEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0TGl0ZXJhbCB9fSB7eyBkYXRh LnByb25hcmdzIH19eyUgaWYgZGF0YQorLnByb2xlYWtwcm9vZiAlfSBMRUFL UFJPT0Z7JSBlbHNlICV9IE5PVCBMRUFLUFJPT0Z7JSBlbmRpZiAlfQoreyUg aWYgZGF0YS5wcm9pc3N0cmljdCAlfSBTVFJJQ1R7JSBlbmRpZiAlfQoreyUg aWYgZGF0YS5wcm9zZWNkZWYgJX0gU0VDVVJJVFkgREVGSU5FUnslIGVuZGlm ICV9Cit7JSBpZiBkYXRhLnByb2lzd2luZG93ICV9IFdJTkRPV3slIGVuZGlm ICV9eyUgaWYgZGF0YS5wcm9jb3N0ICV9CisKK0NPU1Qge3tkYXRhLnByb2Nv c3R9fXslIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKK1JPV1Mg e3tkYXRhLnByb3Jvd3N9fXslIGVuZGlmIC0lfXslIGlmIGRhdGEudmFyaWFi bGVzICV9CisKK3slIGZvciB2IGluIGRhdGEudmFyaWFibGVzICV9CisKK1NF VCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17eyB2LnZhbHVlfHF0TGl0 ZXJhbCB9fXslIGVuZGZvciAtJX0KK3slIGVuZGlmIC0lfTsKKworeyUgaWYg ZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVOQ1RJT04ge3sgY29ubnxx dElkZW50KGRhdGEucHJvbmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19KHt7ZGF0 YQorLmZ1bmNfYXJnc319KQorICAgIE9XTkVSIFRPIHt7IGRhdGEuZnVuY293 bmVyIH19OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuYWNsICV9Cit7 JSBmb3IgcCBpbiBkYXRhLmFjbCAlfQorCit7eyBQUklWSUxFR0UuU0VUKGNv bm4sICJGVU5DVElPTiIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1lLCBwLndpdGhv dXRfZ3JhbnQsIHAKKy53aXRoX2dyYW50LCBkYXRhLnByb25hbWVzcGFjZSwg ZGF0YS5mdW5jX2FyZ3MpfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9 CisKK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09NTUVOVCBPTiBG VU5DVElPTiB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRh dGEubmFtZSkgfX0oe3tkYXRhCisuZnVuY19hcmdzfX0pCisgICAgSVMgJ3t7 IGRhdGEuZGVzY3JpcHRpb24gfX0nOworeyUgZW5kaWYgLSV9CisKK3slIGlm IGRhdGEuc2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVs cyAlfQoreyUgaWYgci5sYWJlbCBhbmQgci5wcm92aWRlciAlfQorCit7eyBT RUNMQUJMRS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgZGF0YS5uYW1lLCByLnBy b3ZpZGVyLCByLmxhYmVsLCBkYXRhCisucHJvbmFtZXNwYWNlLCBkYXRhLmZ1 bmNfYXJncykgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85 LjJfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9kZWxldGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMyNDk3 MGMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2RlbGV0 ZS5zcWwKQEAgLTAsMCArMSwyMiBAQAoreyUgaWYgc2NpZCBhbmQgZm5pZCAl fQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBuYW1lLCAnKCcgfHwgQ09B TEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRp dHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgZnVuY19hcmdz LAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisg ICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisg ICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVzcGFj ZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25h bWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1Qg SU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgIEFORCBwci5v aWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3slIGlmIG5hbWUgJX0K K0RST1AgRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG5zcG5hbWUsIG5hbWUp IH19e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUlfSBDQVNDQURFeyUKK2Vu ZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4y X3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9n ZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMC4uYzYzNWYxZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwv OS4yX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0wLDAgKzEsMTIgQEAK K1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7e2ZuaWR9fTo6b2lk KSBBUyBmdW5jX2RlZiwKKyAgICBuc3BuYW1lIHx8ICcuJyB8fCBwci5wcm9u YW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dl dF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8 ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAg IHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3BhY2UK K1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1l c3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9pZCA9IHt7Zm5p ZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9s YW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfbGFuZ3VhZ2Vz LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mODFk ZGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRf bGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAKK1NFTEVDVAorICAgIGxh bm5hbWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUKK0ZST00KKyAgICBw Z19sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0 X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9vaWQuc3FsCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJiYzc2YTIKLS0tIC9k ZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9vaWQuc3FsCkBA IC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIucHJvbmFt ZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRf ZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAn KScgYXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJv b3duZXIpIGFzIGZ1bmNvd25lcgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pP SU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pP SU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitK T0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25h bWVzcGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17eyBuc3BuYW1lfHF0TGl0 ZXJhbCB9fQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5E IHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykK KyAgICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8cXRMaXRlcmFsIH19Owpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9nZXRfb3V0X3R5cGVzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X291dF90eXBlcy5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjRhMTE4NwotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X291dF90eXBlcy5z cWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBmb3JtYXRfdHlwZShv aWQsIE5VTEwpIEFTIG91dF9hcmdfdHlwZQorRlJPTQorICAgIHBnX3R5cGUK K1dIRVJFCisgICAgb2lkID0ge3sgb3V0X2FyZ19vaWQgfX06Om9pZDsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X3NjaGVtYS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bw YXMvc3FsLzkuMl9wbHVzL2dldF9zY2hlbWEuc3FsCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEyN2Q0YjkKLS0tIC9kZXYvbnVsbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0 aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9zY2hlbWEuc3FsCkBAIC0wLDAg KzEsNiBAQAorU0VMRUNUCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX25h bWVzcGFjZQorV0hFUkUKKyAgICBvaWQgPSB7eyBzY2lkIH19OjpvaWQ7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL2dldF90eXBlcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3Bw YXMvc3FsLzkuMl9wbHVzL2dldF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMC4uMmE1NTgyZQotLS0gL2Rldi9udWxsCisr KyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X3R5cGVzLnNxbApAQCAtMCwwICsx LDIwIEBACitTRUxFQ1QKKyAgICAqCitGUk9NCisgICAgKFNFTEVDVAorICAg ICAgICBmb3JtYXRfdHlwZSh0Lm9pZCxOVUxMKSBBUyB0eXBuYW1lLAorICAg ICAgICBDQVNFIFdIRU4gdHlwZWxlbSA+IDAgVEhFTiB0eXBlbGVtIEVMU0Ug dC5vaWQgRU5EIGFzIGVsZW1vaWQsIHR5cGxlbiwgdHlwdHlwZSwgdC5vaWQs IG5zcG5hbWUsCisgICAgICAgIChTRUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190 eXBlIHQyIFdIRVJFIHQyLnR5cG5hbWUgPSB0LnR5cG5hbWUpID4gMSBBUyBp c2R1cAorICAgIEZST00KKyAgICAgICAgcGdfdHlwZSB0CisgICAgSk9JTgor ICAgICAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIHR5cG5hbWVzcGFjZT1uc3Au b2lkCisgICAgV0hFUkUKKyAgICAgICAgKE5PVCAodHlwbmFtZSA9ICd1bmtu b3duJyBBTkQgbnNwbmFtZSA9ICdwZ19jYXRhbG9nJykpCisgICAgQU5ECisg ICAgICAgICgKKyAgICAgICAgICAgIHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAn ZCcsICdlJywgJ3AnLCAncicpCisgICAgICAgICAgICBBTkQgdHlwbmFtZSBO T1QgSU4gKCdhbnknLCAndHJpZ2dlcicsICdsYW5ndWFnZV9oYW5kbGVyJywg J2V2ZW50X3RyaWdnZXInKQorICAgICAgICApCisgICAgKSBBUyBkdW1teQor T1JERVIgQlkgbnNwbmFtZSA8PiAncGdfY2F0YWxvZycsIG5zcG5hbWUgPD4g J3B1YmxpYycsIG5zcG5hbWUsIDE7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku Ml9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9ub2RlLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmQxNzFiCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9ub2RlLnNxbApA QCAtMCwwICsxLDE5IEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25h bWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0 X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwg JyknIEFTIG5hbWUsCisgICAgbGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHBy b293bmVyKSBBUyBmdW5jb3duZXIsIGRlc2NyaXB0aW9uCitGUk9NCisgICAg cGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9 cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcu b2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0 aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29p ZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9 IEZBTFNFCisgICAgQU5EIHByLnByb3R5cGUgPSAnMCc6OmNoYXIKKyAgICBB TkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBu YW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRF UiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9w bHVzL3Byb3BlcnRpZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9wcm9wZXJ0 aWVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5m Zjc4Mjk4Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9w cm9wZXJ0aWVzLnNxbApAQCAtMCwwICsxLDMxIEBACitTRUxFQ1QKKyAgICBw ci5vaWQsIHByLnhtaW4sIHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywK KyAgICBwci5wcm9uYW1lIEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1 bHQocHIub2lkKSBBUyBwcm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3Bu YW1lIEFTIHR5cG5zcCwgbGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3Rv cnR5cGVzKHByb2FyZ3R5cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAg cGdfZ2V0X2V4cHIocHJvYXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2Ns YXNzJzo6cmVnY2xhc3MpIEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHBy b25hcmdkZWZhdWx0cywgcHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJv b3duZXIpIEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24sCisgICAgKFNFTEVD VAorICAgICAgICBhcnJheV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVs KQorICAgIEZST00KKyAgICAgICAgcGdfc2hzZWNsYWJlbCBzbDEKKyAgICBX SEVSRQorICAgICAgICBzbDEub2Jqb2lkPXByLm9pZCkgQVMgc2VjbGFiZWxz CitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlw IE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFj ZSB0eXBucyBPTiB0eXBucy5vaWQ9dHlwLnR5cG5hbWVzcGFjZQorSk9JTgor ICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQg T1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9i am9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2Ns YXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHBy b25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBO T1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQoreyUgaWYgZm5p ZCAlfQorICAgIEFORCBwci5vaWQgPSB7e2ZuaWR9fTo6b2lkCit7JSBlbmRp ZiAlfQorT1JERVIgQlkKKyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFz L3NxbC85LjJfcGx1cy91cGRhdGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy91 cGRhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmQyYTNhYTgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVz L3VwZGF0ZS5zcWwKQEAgLTAsMCArMSwxMzIgQEAKK3slIGltcG9ydCAnbWFj cm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3Jv cycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlv bnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfXslIGlmIGRhdGEg JX0KK3slIHNldCBuYW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEu bmFtZSAlfQoreyUgaWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitB TFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQob19kYXRhLnByb25hbWVz cGFjZSwgb19kYXRhLm5hbWUpIH19KHt7CitvX2RhdGEucHJvYXJndHlwZW5h bWVzIH19KQorICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRlbnQoZGF0YS5u YW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9Cit7JSBlbmRp ZiAlfQorCit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMg ICV9CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB7eyBjb25ufHF0SWRl bnQob19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oeyUgaWYgZGF0YS5h cmd1bWVudHMgJX0KK3slIGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUg aWYgcC5hcmdtb2RlICV9e3twLmFyZ21vZGV9fXslIGVuZGlmICV9eyUgaWYg cC5hcmduYW1lICV9IHt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUpIH19eyUg ZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX0ge3twLmFyZ3R5cGV9fXslIGVu ZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVm dmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSwgeyUg ZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CispIFJFVFVS TlMge3sgb19kYXRhLnByb3JldHR5cGVuYW1lIH19IEFTCit7JSBpZiAnbGFu bmFtZScgaW4gbGFubmFtZSBhbmQgZGF0YS5sYW5uYW1lID09ICdjJyAlfQor e3sgZGF0YS5wcm9iaW58cXRMaXRlcmFsIH19LCB7eyBkYXRhLnByb3NyY19j fHF0TGl0ZXJhbCB9fQoreyUgZWxpZiAnbGFubmFtZScgaW4gZGF0YSBhbmQg J3Byb3NyYycgaW4gZGF0YSAlfQorJEJPRFkke3sgZGF0YS5wcm9zcmMgfX0k Qk9EWSQKK3slIGVsaWYgb19kYXRhLmxhbm5hbWUgPT0gJ2MnICV9Cit7eyBv X2RhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgb19kYXRhLnByb3NyY19j fHF0TGl0ZXJhbCB9fQoreyUgZWxzZSAlfQorJEJPRFkke3sgb19kYXRhLnBy b3NyYyB9fSRCT0RZJAoreyUgZW5kaWYgLSV9CisKK3slIGlmICdsYW5uYW1l JyBpbiBkYXRhICV9CitMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRMaXRl cmFsIH19eyUgZWxzZSAlfQorTEFOR1VBR0Uge3sgb19kYXRhLmxhbm5hbWV8 cXRMaXRlcmFsIH19eyUgZW5kaWYgLSV9eyUgaWYgKCdwcm9sZWFrcHJvb2Yn IGluIGRhdGEgYW5kIGRhdGEucHJvbGVha3Byb29mKSBvciAoJ3Byb2xlYWtw cm9vZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9sZWFrcHJvb2YpICV9 IExFQUtQUk9PRnslIGVsc2UgJX0gTk9UIExFQUtQUk9PRnslIGVuZGlmICV9 Cit7JSBpZiAoJ3Byb2lzc3RyaWN0JyBpbiBkYXRhIGFuZCBkYXRhLnByb2lz c3RyaWN0KSBvciAoJ3Byb2lzc3RyaWN0JyBub3QgaW4gZGF0YSBhbmQgb19k YXRhLnByb2lzc3RyaWN0KSAlfSBTVFJJQ1R7JSBlbmRpZiAlfQoreyUgaWYg KCdwcm9zZWNkZWYnIGluIGRhdGEgYW5kIGRhdGEucHJvc2VjZGVmKSBvciAo J3Byb3NlY2RlZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9zZWNkZWYp ICV9IFNFQ1VSSVRZIERFRklORVJ7JSBlbmRpZiAlfQoreyUgaWYgKCdwcm9p c3dpbmRvdycgaW4gZGF0YSBhbmQgZGF0YS5wcm9pc3dpbmRvdykgb3IgKCdw cm9pc3dpbmRvdycgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9pc3dpbmRv dykgJX0gV0lORE9XeyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb2Nvc3QgJX0K KworQ09TVCB7e2RhdGEucHJvY29zdH19eyUgZWxpZiBvX2RhdGEucHJvY29z dCAlfSBDT1NUIHt7b19kYXRhLnByb2Nvc3R9fSB7JSBlbmRpZiAlfXslIGlm IGRhdGEucHJvcm93cyAlfQorCitST1dTIHt7ZGF0YS5wcm9yb3dzfX0geyUg ZWxpZiBvX2RhdGEucHJvcm93cyAlfSBST1dTIHt7b19kYXRhLnByb3Jvd3N9 fSB7JQorZW5kaWYgLSV9eyUgaWYgZGF0YS5tZXJnZWRfdmFyaWFibGVzICV9 CisKK3slIGZvciB2IGluIGRhdGEubWVyZ2VkX3ZhcmlhYmxlcyAlfQorCitT RVQge3sgY29ubnxxdElkZW50KHYubmFtZSkgfX09e3sgdi52YWx1ZXxxdExp dGVyYWwgfX17JSBlbmRmb3IgLSV9Cit7JSBlbmRpZiAtJX07Cit7JSBlbmRp ZiAtJX0KKworeyUgaWYgZGF0YS5mdW5jb3duZXIgJX0KKworQUxURVIgRlVO Q1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5h bWUpIH19KHt7CitvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KQorICAgIE9X TkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5kaWYgLSV9CisK KworeyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBjaGFuZ2UgcHJp dmlsZWRnZXMgI30KK3slIGlmIGRhdGEuYWNsICV9CisKK3slIGlmICdkZWxl dGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wu ZGVsZXRlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNvbm4sICdGVU5D VElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhCisucHJvbmFtZXNw YWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgJ2NoYW5nZWQnIGluIGRhdGEuZGF0 YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5jaGFuZ2VkICV9CisK K3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnRlVOQ1RJT04nLCBwcml2 LmdyYW50ZWUsIG5hbWUsIG9fZGF0YQorLnByb25hbWVzcGFjZSwgb19kYXRh LnByb2FyZ3R5cGVuYW1lcykgfX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwg J0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBwcml2LndpdGhvdXRf Z3JhbnQsCisgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEucHJvbmFtZXNwYWNl LCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9Cit7 JSBlbmRpZiAtJX0KKworeyUgaWYgJ2FkZGVkJyBpbiBkYXRhLmFjbCAlfQor eyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRkZWQgJX0KK3t7IFBSSVZJTEVH RS5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgcHJpdi5ncmFudGVlLCBuYW1lLCBw cml2LndpdGhvdXRfZ3JhbnQsCisgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEu cHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlm IGRhdGEuY2hhbmdlX2Z1bmMgPT0gRmFsc2UgJX0KK3slIGlmIGRhdGEudmFy aWFibGVzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4gZGF0YS52YXJpYWJsZXMg YW5kIGRhdGEudmFyaWFibGVzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQorCit7 eyBWQVJJQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRh LnZhcmlhYmxlcy5kZWxldGVkLCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2Rh dGEucHJvYXJndHlwZW5hbWVzICkgfX0KK3slIGVuZGlmIC0lfQoreyUgaWYg J21lcmdlZF92YXJpYWJsZXMnIGluIGRhdGEgYW5kIGRhdGEubWVyZ2VkX3Zh cmlhYmxlc3xsZW5ndGggPiAwICV9CisKK3t7IFZBUklBQkxFLlNFVChjb25u LCAnRlVOQ1RJT04nLCBuYW1lLCBkYXRhLm1lcmdlZF92YXJpYWJsZXMsIG9f ZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgKSB9 fQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0lfQor Cit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJlbHMgJX0KK3slIGlm ICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5kZWxldGVk fGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5kZWxldGVk ICV9CisKK3t7IFNFQ0xBQkxFLlVOU0VUKGNvbm4sICdGVU5DVElPTicsIG5h bWUsIHIucHJvdmlkZXIsIG9fZGF0YS5wcm9uYW1lc3BhY2UpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNs YWJlbHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBm b3IgciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KKwore3sgU0VDTEFCTEUuU0VU KGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJp dHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3BhY2UpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVs cyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9y IHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KKwore3sgU0VDTEFCTEUuU0VU KGNvbm4sICdGVU5DVElPTicsIG5hbWUsIHIucHJvdmlkZXIsIHIuc2VjdXJp dHlfbGFiZWwsIG9fZGF0YS5wcm9uYW1lc3BhY2UpIH19Cit7JSBlbmRmb3Ig JX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9 CisKK0NPTU1FTlQgT04gRlVOQ1RJT04ge3sgY29ubnxxdElkZW50KG9fZGF0 YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19KHt7CitvX2RhdGEucHJvYXJndHlw ZW5hbWVzIH19KQorICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRl cmFsIH19OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEucHJvbmFtZXNw YWNlICV9CisKK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2Rh dGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7eworb19kYXRhLnByb2FyZ3R5 cGVuYW1lcyB9fSkKKyAgICBTRVQgU0NIRU1BIHt7IGNvbm58cXRJZGVudChk YXRhLnByb25hbWVzcGFjZSkgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgZW5k aWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvdmFyaWFibGVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVu Y3Rpb24vcHBhcy9zcWwvOS4yX3BsdXMvdmFyaWFibGVzLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjMzYzcxCi0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy92YXJpYWJsZXMuc3FsCkBA IC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbmFtZSwgdmFydHlwZSwgbWlu X3ZhbCwgbWF4X3ZhbCwgZW51bXZhbHMKK0ZST00KKyAgICBwZ19zZXR0aW5n cworV0hFUkUKKyAgICBjb250ZXh0IGluICgndXNlcicsICdzdXBlcnVzZXIn KTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvYWNsLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBh cy9zcWwvOS41X3BsdXMvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFz L3NxbC85LjVfcGx1cy9hY2wuc3FsCkBAIC0wLDAgKzEsMzUgQEAKK1NFTEVD VAorICAgIENPQUxFU0NFKGd0LnJvbG5hbWUsICdwdWJsaWMnKSBBUyBncmFu dGVlLAorICAgIGcucm9sbmFtZSBBUyBncmFudG9yLCBhcnJheV9hZ2cocHJp dmlsZWdlX3R5cGUpIEFTIHByaXZpbGVnZXMsCisgICAgYXJyYXlfYWdnKGlz X2dyYW50YWJsZSkgQVMgZ3JhbnRhYmxlCitGUk9NCisgICAgKFNFTEVDVAor ICAgICAgICBkLmdyYW50ZWUsIGQuZ3JhbnRvciwgZC5pc19ncmFudGFibGUs CisgICAgICAgIENBU0UgZC5wcml2aWxlZ2VfdHlwZQorICAgICAgICBXSEVO ICdDT05ORUNUJyBUSEVOICdjJworICAgICAgICBXSEVOICdDUkVBVEUnIFRI RU4gJ0MnCisgICAgICAgIFdIRU4gJ0RFTEVURScgVEhFTiAnZCcKKyAgICAg ICAgV0hFTiAnRVhFQ1VURScgVEhFTiAnWCcKKyAgICAgICAgV0hFTiAnSU5T RVJUJyBUSEVOICdhJworICAgICAgICBXSEVOICdSRUZFUkVOQ0VTJyBUSEVO ICd4JworICAgICAgICBXSEVOICdTRUxFQ1QnIFRIRU4gJ3InCisgICAgICAg IFdIRU4gJ1RFTVBPUkFSWScgVEhFTiAnVCcKKyAgICAgICAgV0hFTiAnVFJJ R0dFUicgVEhFTiAndCcKKyAgICAgICAgV0hFTiAnVFJVTkNBVEUnIFRIRU4g J0QnCisgICAgICAgIFdIRU4gJ1VQREFURScgVEhFTiAndycKKyAgICAgICAg V0hFTiAnVVNBR0UnIFRIRU4gJ1UnCisgICAgICAgIEVMU0UgJ1VOS05PV04n CisgICAgICAgIEVORCBBUyBwcml2aWxlZ2VfdHlwZQorICAgIEZST00KKyAg ICAgICAgKFNFTEVDVAorICAgICAgICAgICAgKGQpLmdyYW50ZWUgQVMgZ3Jh bnRlZSwgKGQpLmdyYW50b3IgQVMgZ3JhbnRvciwKKyAgICAgICAgICAgIChk KS5pc19ncmFudGFibGUgQVMgaXNfZ3JhbnRhYmxlLAorICAgICAgICAgICAg KGQpLnByaXZpbGVnZV90eXBlIEFTIHByaXZpbGVnZV90eXBlCisgICAgICAg IEZST00KKyAgICAgICAgICAgIChTRUxFQ1QgYWNsZXhwbG9kZShkYi5wcm9h Y2wpIEFTIGQgRlJPTSBwZ19wcm9jIGRiCisgICAgICAgICAgICBXSEVSRSBk Yi5vaWQgPSB7e2ZuaWR9fTo6T0lEKSBhCisgICAgICAgICkgZAorICAgICkg ZAorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGcgT04gKGQu Z3JhbnRvciA9IGcub2lkKQorICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBn X3JvbGVzIGd0IE9OIChkLmdyYW50ZWUgPSBndC5vaWQpCitHUk9VUCBCWSBn LnJvbG5hbWUsIGd0LnJvbG5hbWU7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzku NV9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2NyZWF0ZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNjlhZTNi OQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvY3JlYXRl LnNxbApAQCAtMCwwICsxLDY2IEBACit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5j dGlvbnMvc2VjdXJpdHkubWFjcm9zJyBhcyBTRUNMQUJMRSAlfQoreyUgaW1w b3J0ICdtYWNyb3MvZnVuY3Rpb25zL3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBS SVZJTEVHRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3Zhcmlh YmxlLm1hY3JvcycgYXMgVkFSSUFCTEUgJX0KK3slIHNldCBpc19jb2x1bW5z ID0gW10gJX0KK3slIGlmIGRhdGEgJX0KK0NSRUFURSBGVU5DVElPTiB7eyBj b25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0o eyUgaWYgZGF0YQorLmFyZ3VtZW50cyAlfQoreyUgZm9yIHAgaW4gZGF0YS5h cmd1bWVudHMgJX17e3AuYXJnbW9kZX19IHslIGlmIHAuYXJnbmFtZSAlfXt7 IGNvbm58cXRJZGVudChwLmFyZ25hbWUpfX17JSBlbmRpZiAlfXslIGlmIHAu YXJndHlwZSAlfSB7e3AuYXJndHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFy Z2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9 Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LHslIGVuZGlmICV9Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQorICAgICkgUkVUVVJOU3slIGlmIGRhdGEu cHJvcmV0c2V0ICV9IFNFVE9GeyUgZW5kaWYgJX0ge3sgY29ubnxxdFR5cGVJ ZGVudChkYXRhCisgICAgLnByb3JldHR5cGVuYW1lKSB9fSBBUworeyUgaWYg ZGF0YS5sYW5uYW1lID09ICdjJyAlfQore3sgZGF0YS5wcm9iaW58cXRMaXRl cmFsIH19LCB7eyBkYXRhLnByb3NyY19jfHF0TGl0ZXJhbCB9fQoreyUgZWxz ZSAlfQorJEJPRFkke3sgZGF0YS5wcm9zcmMgfX0kQk9EWSQKK3slIGVuZGlm ICV9CitMQU5HVUFHRSB7eyBkYXRhLmxhbm5hbWV8cXRMaXRlcmFsIH19IHt7 IGRhdGEucHJvbmFyZ3MgfX17JSBpZiBkYXRhCisucHJvbGVha3Byb29mICV9 IExFQUtQUk9PRnslIGVsc2UgJX0gTk9UIExFQUtQUk9PRnslIGVuZGlmICV9 Cit7JSBpZiBkYXRhLnByb2lzc3RyaWN0ICV9IFNUUklDVHslIGVuZGlmICV9 Cit7JSBpZiBkYXRhLnByb3NlY2RlZiAlfSBTRUNVUklUWSBERUZJTkVSeyUg ZW5kaWYgJX0KK3slIGlmIGRhdGEucHJvaXN3aW5kb3cgJX0gV0lORE9XeyUg ZW5kaWYgJX17JSBpZiBkYXRhLnByb2Nvc3QgJX0KKworQ09TVCB7e2RhdGEu cHJvY29zdH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3MgJX0KKwor Uk9XUyB7e2RhdGEucHJvcm93c319eyUgZW5kaWYgLSV9eyUgaWYgZGF0YS52 YXJpYWJsZXMgJX0KKworeyUgZm9yIHYgaW4gZGF0YS52YXJpYWJsZXMgJX0K KworU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8 cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQoreyUgZW5kaWYgLSV9OworCit7 JSBpZiBkYXRhLmZ1bmNvd25lciAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBj b25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEubmFtZSkgfX0o e3tkYXRhCisuZnVuY19hcmdzfX0pCisgICAgT1dORVIgVE8ge3sgZGF0YS5m dW5jb3duZXIgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5hY2wg JX0KK3slIGZvciBwIGluIGRhdGEuYWNsICV9CisKK3t7IFBSSVZJTEVHRS5T RVQoY29ubiwgIkZVTkNUSU9OIiwgcC5ncmFudGVlLCBkYXRhLm5hbWUsIHAu d2l0aG91dF9ncmFudCwgcAorLndpdGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNw YWNlLCBkYXRhLmZ1bmNfYXJncyl9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KKworeyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5U IE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFj ZSwgZGF0YS5uYW1lKSB9fSh7e2RhdGEKKy5mdW5jX2FyZ3N9fSkKKyAgICBJ UyAne3sgZGF0YS5kZXNjcmlwdGlvbiB9fSc7Cit7JSBlbmRpZiAtJX0KKwor eyUgaWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2Vj bGFiZWxzICV9Cit7JSBpZiByLmxhYmVsIGFuZCByLnByb3ZpZGVyICV9CisK K3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnRlVOQ1RJT04nLCBkYXRhLm5hbWUs IHIucHJvdmlkZXIsIHIubGFiZWwsIGRhdGEKKy5wcm9uYW1lc3BhY2UsIGRh dGEuZnVuY19hcmdzKSB9fQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQor eyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuNV9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2Rl bGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MjQ2YmVjMQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMv ZGVsZXRlLnNxbApAQCAtMCwwICsxLDIxIEBACit7JSBpZiBzY2lkIGFuZCBm bmlkICV9CitTRUxFQ1QKKyAgICBwci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8 fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9p ZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBmdW5j X2FyZ3MsCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pP SU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pP SU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFt ZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQg cHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1l IE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5E IHByLm9pZCA9IHt7Zm5pZH19OworeyUgZW5kaWYgJX0KKworeyUgaWYgbmFt ZSAlfQorRFJPUCBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQobnNwbmFtZSwg bmFtZSkgfX17e2Z1bmNfYXJnc319eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURF eyUgZW5kaWYgJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3Nx bC85LjVfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9w bHVzL2dldF9kZWZpbml0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwLi5jNjM1ZjFlCi0tLSAvZGV2L251bGwKKysrIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFz L3NxbC85LjVfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKQEAgLTAsMCArMSwx MiBAQAorU0VMRUNUCisgICAgcGdfZ2V0X2Z1bmN0aW9uZGVmKHt7Zm5pZH19 OjpvaWQpIEFTIGZ1bmNfZGVmLAorICAgIG5zcG5hbWUgfHwgJy4nIHx8IHBy LnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAu cGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAn JykgfHwgJyknIGFzIG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lO CisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVz cGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHBy b25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgcHIub2lkID0g e3tmbmlkfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMv Z2V0X2xhbmd1YWdlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9sYW5n dWFnZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmY4MWRkZmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVz L2dldF9sYW5ndWFnZXMuc3FsCkBAIC0wLDAgKzEsNCBAQAorU0VMRUNUCisg ICAgbGFubmFtZSBhcyBsYWJlbCwgbGFubmFtZSBhcyB2YWx1ZQorRlJPTQor ICAgIHBnX2xhbmd1YWdlOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1 cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X29pZC5zcWwK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMmJjNzZhMgot LS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X29pZC5z cWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci5w cm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBn X2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycp IHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91c2VyYnlp ZChwcm9vd25lcikgYXMgZnVuY293bmVyCitGUk9NCisgICAgcGdfcHJvYyBw cgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlw ZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xh bmcKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIu cHJvbmFtZXNwYWNlCisgICAgQU5EIG5zcC5uc3BuYW1lPXt7IG5zcG5hbWV8 cXRMaXRlcmFsIH19CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAg ICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdn ZXInKQorICAgIEFORCBwci5wcm9uYW1lID0ge3sgbmFtZXxxdExpdGVyYWwg fX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL2dldF9vdXRfdHlw ZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9nZXRfb3V0X3R5cGVzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42NGExMTg3Ci0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9nZXRfb3V0X3R5 cGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIGZvcm1hdF90 eXBlKG9pZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBlCitGUk9NCisgICAgcGdf dHlwZQorV0hFUkUKKyAgICBvaWQgPSB7eyBvdXRfYXJnX29pZCB9fTo6b2lk OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9nZXRfc2NoZW1hLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X3NjaGVtYS5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI3ZDRiOQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X3NjaGVtYS5zcWwKQEAg LTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuc3BuYW1lCitGUk9NCisgICAg cGdfbmFtZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7IHNjaWQgfX06Om9p ZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X3R5cGVzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rp b24vcHBhcy9zcWwvOS41X3BsdXMvZ2V0X3R5cGVzLnNxbApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYTU1ODJlCi0tLSAvZGV2L251 bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9m dW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9nZXRfdHlwZXMuc3FsCkBAIC0w LDAgKzEsMjAgQEAKK1NFTEVDVAorICAgICoKK0ZST00KKyAgICAoU0VMRUNU CisgICAgICAgIGZvcm1hdF90eXBlKHQub2lkLE5VTEwpIEFTIHR5cG5hbWUs CisgICAgICAgIENBU0UgV0hFTiB0eXBlbGVtID4gMCBUSEVOIHR5cGVsZW0g RUxTRSB0Lm9pZCBFTkQgYXMgZWxlbW9pZCwgdHlwbGVuLCB0eXB0eXBlLCB0 Lm9pZCwgbnNwbmFtZSwKKyAgICAgICAgKFNFTEVDVCBDT1VOVCgxKSBGUk9N IHBnX3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZSA9IHQudHlwbmFtZSkgPiAx IEFTIGlzZHVwCisgICAgRlJPTQorICAgICAgICBwZ190eXBlIHQKKyAgICBK T0lOCisgICAgICAgIHBnX25hbWVzcGFjZSBuc3AgT04gdHlwbmFtZXNwYWNl PW5zcC5vaWQKKyAgICBXSEVSRQorICAgICAgICAoTk9UICh0eXBuYW1lID0g J3Vua25vd24nIEFORCBuc3BuYW1lID0gJ3BnX2NhdGFsb2cnKSkKKyAgICBB TkQKKyAgICAgICAgKAorICAgICAgICAgICAgdHlwdHlwZSBJTiAoJ2InLCAn YycsICdkJywgJ2UnLCAncCcsICdyJykKKyAgICAgICAgICAgIEFORCB0eXBu YW1lIE5PVCBJTiAoJ2FueScsICd0cmlnZ2VyJywgJ2xhbmd1YWdlX2hhbmRs ZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgICAgICkKKyAgICApIEFTIGR1 bW15CitPUkRFUiBCWSBuc3BuYW1lIDw+ICdwZ19jYXRhbG9nJywgbnNwbmFt ZSA8PiAncHVibGljJywgbnNwbmFtZSwgMTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9z cWwvOS41X3BsdXMvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL25vZGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmM2ZDE3 MWIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL25vZGUu c3FsCkBAIC0wLDAgKzEsMTkgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIu cHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5w Z19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcn KSB8fCAnKScgQVMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19nZXRfdXNlcmJ5 aWQocHJvb3duZXIpIEFTIGZ1bmNvd25lciwgZGVzY3JpcHRpb24KK0ZST00K KyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlw Lm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9O IGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVz Y3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNs YXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3MpCitXSEVSRQorICAgIHByb2lz YWdnID0gRkFMU0UKKyAgICBBTkQgcHIucHJvdHlwZSA9ICcwJzo6Y2hhcgor ICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5E IHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykK K09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwv OS41X3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL3By b3BlcnRpZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLmZmNzgyOTgKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9w bHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0wLDAgKzEsMzEgQEAKK1NFTEVDVAor ICAgIHByLm9pZCwgcHIueG1pbiwgcHIuKiwgcHIucHJvc3JjIEFTIHByb3Ny Y19jLAorICAgIHByLnByb25hbWUgQVMgbmFtZSwgcGdfZ2V0X2Z1bmN0aW9u X3Jlc3VsdChwci5vaWQpIEFTIHByb3JldHR5cGVuYW1lLAorICAgIHR5cG5z Lm5zcG5hbWUgQVMgdHlwbnNwLCBsYW5uYW1lLCBwcm9hcmduYW1lcywgb2lk dmVjdG9ydHlwZXMocHJvYXJndHlwZXMpIEFTIHByb2FyZ3R5cGVuYW1lcywK KyAgICBwZ19nZXRfZXhwcihwcm9hcmdkZWZhdWx0cywgJ3BnX2NhdGFsb2cu cGdfY2xhc3MnOjpyZWdjbGFzcykgQVMgcHJvYXJnZGVmYXVsdHZhbHMsCisg ICAgcHJvbmFyZ2RlZmF1bHRzLCBwcm9jb25maWcsIHBnX2dldF91c2VyYnlp ZChwcm9vd25lcikgQVMgZnVuY293bmVyLCBkZXNjcmlwdGlvbiwKKyAgICAo U0VMRUNUCisgICAgICAgIGFycmF5X2FnZyhwcm92aWRlciB8fCAnPScgfHwg bGFiZWwpCisgICAgRlJPTQorICAgICAgICBwZ19zaHNlY2xhYmVsIHNsMQor ICAgIFdIRVJFCisgICAgICAgIHNsMS5vYmpvaWQ9cHIub2lkKSBBUyBzZWNs YWJlbHMKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlw ZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbmFt ZXNwYWNlIHR5cG5zIE9OIHR5cG5zLm9pZD10eXAudHlwbmFtZXNwYWNlCitK T0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZwor TEVGVCBPVVRFUiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChk ZXMub2Jqb2lkPXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6 cmVnY2xhc3MpCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBB TkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBu YW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCit7JSBp ZiBmbmlkICV9CisgICAgQU5EIHByLm9pZCA9IHt7Zm5pZH19OjpvaWQKK3sl IGVuZGlmICV9CitPUkRFUiBCWQorICAgIHByb25hbWU7CmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9u L3BwYXMvc3FsLzkuNV9wbHVzL3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9w bHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMC4uM2JmMzJkYQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41 X3BsdXMvdXBkYXRlLnNxbApAQCAtMCwwICsxLDEzMiBAQAoreyUgaW1wb3J0 ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFC TEUgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2Uu bWFjcm9zJyBhcyBQUklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1 bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9eyUgaWYg ZGF0YSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFtZSAlfQoreyUgaWYg ZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0gb19kYXRhLm5hbWUg JX0KK0FMVEVSIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJv bmFtZXNwYWNlLCBvX2RhdGEubmFtZSkgfX0oe3sKK29fZGF0YS5wcm9hcmd0 eXBlbmFtZXMgfX0pCisgICAgUkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChk YXRhLm5hbWUpIH19OworeyUgc2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3sl IGVuZGlmICV9CisKK3slIGVuZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2Vf ZnVuYyAgJX0KK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHt7IGNvbm58 cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7JSBpZiBk YXRhLmFyZ3VtZW50cyAlfQoreyUgZm9yIHAgaW4gZGF0YS5hcmd1bWVudHMg JX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19eyUgZW5kaWYgJX17 JSBpZiBwLmFyZ25hbWUgJX0ge3sgY29ubnxxdElkZW50KHAuYXJnbmFtZSl9 fXslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9IHt7cC5hcmd0eXBlfX17 JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQge3twLmFy Z2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxhc3QgJX0s IHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQorKSBS RVRVUk5TIHt7IG9fZGF0YS5wcm9yZXR0eXBlbmFtZSB9fSBBUworeyUgaWYg J2xhbm5hbWUnIGluIGxhbm5hbWUgYW5kIGRhdGEubGFubmFtZSA9PSAnYycg JX0KK3t7IGRhdGEucHJvYmlufHF0TGl0ZXJhbCB9fSwge3sgZGF0YS5wcm9z cmNfY3xxdExpdGVyYWwgfX0KK3slIGVsaWYgJ2xhbm5hbWUnIGluIGRhdGEg YW5kICdwcm9zcmMnIGluIGRhdGEgJX0KKyRCT0RZJHt7IGRhdGEucHJvc3Jj IH19JEJPRFkkCit7JSBlbGlmIG9fZGF0YS5sYW5uYW1lID09ICdjJyAlfQor e3sgb19kYXRhLnByb2JpbnxxdExpdGVyYWwgfX0sIHt7IG9fZGF0YS5wcm9z cmNfY3xxdExpdGVyYWwgfX0KK3slIGVsc2UgJX0KKyRCT0RZJHt7IG9fZGF0 YS5wcm9zcmMgfX0kQk9EWSQKK3slIGVuZGlmIC0lfQorCit7JSBpZiAnbGFu bmFtZScgaW4gZGF0YSAlfQorTEFOR1VBR0Uge3sgZGF0YS5sYW5uYW1lfHF0 TGl0ZXJhbCB9fXslIGVsc2UgJX0KK0xBTkdVQUdFIHt7IG9fZGF0YS5sYW5u YW1lfHF0TGl0ZXJhbCB9fXslIGVuZGlmIC0lfXslIGlmICgncHJvbGVha3By b29mJyBpbiBkYXRhIGFuZCBkYXRhLnByb2xlYWtwcm9vZikgb3IgKCdwcm9s ZWFrcHJvb2YnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvbGVha3Byb29m KSAlfSBMRUFLUFJPT0Z7JSBlbHNlICV9IE5PVCBMRUFLUFJPT0Z7JSBlbmRp ZiAlfQoreyUgaWYgKCdwcm9pc3N0cmljdCcgaW4gZGF0YSBhbmQgZGF0YS5w cm9pc3N0cmljdCkgb3IgKCdwcm9pc3N0cmljdCcgbm90IGluIGRhdGEgYW5k IG9fZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNUeyUgZW5kaWYgJX0KK3sl IGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2RlZikg b3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvc2Vj ZGVmKSAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX0KK3slIGlmICgn cHJvaXN3aW5kb3cnIGluIGRhdGEgYW5kIGRhdGEucHJvaXN3aW5kb3cpIG9y ICgncHJvaXN3aW5kb3cnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvaXN3 aW5kb3cpICV9IFdJTkRPV3slIGVuZGlmICV9eyUgaWYgZGF0YS5wcm9jb3N0 ICV9CisKK0NPU1Qge3tkYXRhLnByb2Nvc3R9fXslIGVsaWYgb19kYXRhLnBy b2Nvc3QgJX0gQ09TVCB7e29fZGF0YS5wcm9jb3N0fX0geyUgZW5kaWYgJX17 JSBpZiBkYXRhLnByb3Jvd3MgJX0KKworUk9XUyB7e2RhdGEucHJvcm93c319 IHslIGVsaWYgb19kYXRhLnByb3Jvd3MgJX0gUk9XUyB7e29fZGF0YS5wcm9y b3dzfX0geyUKK2VuZGlmIC0lfXslIGlmIGRhdGEubWVyZ2VkX3ZhcmlhYmxl cyAlfQorCit7JSBmb3IgdiBpbiBkYXRhLm1lcmdlZF92YXJpYWJsZXMgJX0K KworU0VUIHt7IGNvbm58cXRJZGVudCh2Lm5hbWUpIH19PXt7IHYudmFsdWV8 cXRMaXRlcmFsIH19eyUgZW5kZm9yIC0lfQoreyUgZW5kaWYgLSV9OworeyUg ZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZnVuY293bmVyICV9CisKK0FMVEVS IEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNl LCBuYW1lKSB9fSh7eworb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSkKKyAg ICBPV05FUiBUTyB7eyBkYXRhLmZ1bmNvd25lciB9fTsKK3slIGVuZGlmIC0l fQorCisKK3sjIFRoZSBTUUwgZ2VuZXJhdGVkIGJlbG93IHdpbGwgY2hhbmdl IHByaXZpbGVkZ2VzICN9Cit7JSBpZiBkYXRhLmFjbCAlfQorCit7JSBpZiAn ZGVsZXRlZCcgaW4gZGF0YS5hY2wgJX0KK3slIGZvciBwcml2IGluIGRhdGEu YWNsLmRlbGV0ZWQgJX0KK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAn RlVOQ1RJT04nLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YQorLnByb25h bWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZv ciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmICdjaGFuZ2VkJyBpbiBkYXRh LmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hhbmdlZCAl fQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ0ZVTkNUSU9OJywg cHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEKKy5wcm9uYW1lc3BhY2UsIG9f ZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7eyBQUklWSUxFR0UuU0VUKGNv bm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRo b3V0X2dyYW50LAorIHByaXYud2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVz cGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAl fQoreyUgZW5kaWYgLSV9CisKK3slIGlmICdhZGRlZCcgaW4gZGF0YS5hY2wg JX0KK3slIGZvciBwcml2IGluIGRhdGEuYWNsLmFkZGVkICV9Cit7eyBQUklW SUxFR0UuU0VUKGNvbm4sICdGVU5DVElPTicsIHByaXYuZ3JhbnRlZSwgbmFt ZSwgcHJpdi53aXRob3V0X2dyYW50LAorIHByaXYud2l0aF9ncmFudCwgb19k YXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0K K3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlmIC0lfQorCit7 JSBpZiBkYXRhLmNoYW5nZV9mdW5jID09IEZhbHNlICV9Cit7JSBpZiBkYXRh LnZhcmlhYmxlcyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIGRhdGEudmFyaWFi bGVzIGFuZCBkYXRhLnZhcmlhYmxlcy5kZWxldGVkfGxlbmd0aCA+IDAgJX0K Kwore3sgVkFSSUFCTEUuVU5TRVQoY29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwg ZGF0YS52YXJpYWJsZXMuZGVsZXRlZCwgb19kYXRhLnByb25hbWVzcGFjZSwg b19kYXRhLnByb2FyZ3R5cGVuYW1lcyApIH19Cit7JSBlbmRpZiAtJX0KK3sl IGlmICdtZXJnZWRfdmFyaWFibGVzJyBpbiBkYXRhIGFuZCBkYXRhLm1lcmdl ZF92YXJpYWJsZXN8bGVuZ3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5TRVQo Y29ubiwgJ0ZVTkNUSU9OJywgbmFtZSwgZGF0YS5tZXJnZWRfdmFyaWFibGVz LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVz ICkgfX0KK3slIGVuZGlmIC0lfQoreyUgZW5kaWYgLSV9Cit7JSBlbmRpZiAt JX0KKworeyUgc2V0IHNlY2xhYmVscyA9IGRhdGEuc2VjbGFiZWxzICV9Cit7 JSBpZiAnZGVsZXRlZCcgaW4gc2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuZGVs ZXRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJlbHMuZGVs ZXRlZCAlfQorCit7eyBTRUNMQUJMRS5VTlNFVChjb25uLCAnRlVOQ1RJT04n LCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNwYWNlKSB9fQor eyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4g c2VjbGFiZWxzIGFuZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQor eyUgZm9yIHIgaW4gc2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkxF LlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNl Y3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdjaGFuZ2VkJyBpbiBzZWNs YWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxlbmd0aCA+IDAgJX0KK3sl IGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9CisKK3t7IFNFQ0xBQkxF LlNFVChjb25uLCAnRlVOQ1RJT04nLCBuYW1lLCByLnByb3ZpZGVyLCByLnNl Y3VyaXR5X2xhYmVsLCBvX2RhdGEucHJvbmFtZXNwYWNlKSB9fQoreyUgZW5k Zm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5kZXNjcmlwdGlv biAlfQorCitDT01NRU5UIE9OIEZVTkNUSU9OIHt7IGNvbm58cXRJZGVudChv X2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fSh7eworb19kYXRhLnByb2Fy Z3R5cGVuYW1lcyB9fSkKKyAgICBJUyB7eyBkYXRhLmRlc2NyaXB0aW9ufHF0 TGl0ZXJhbCB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLnByb25h bWVzcGFjZSAlfQorCitBTFRFUiBGVU5DVElPTiB7eyBjb25ufHF0SWRlbnQo b19kYXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX0oe3sKK29fZGF0YS5wcm9h cmd0eXBlbmFtZXMgfX0pCisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRl bnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisKK3sl IGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL3Zhcmlh Ymxlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL3ZhcmlhYmxlcy5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMvdmFyaWFibGVzLnNx bApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5hbWUsIHZhcnR5cGUs IG1pbl92YWwsIG1heF92YWwsIGVudW12YWxzCitGUk9NCisgICAgcGdfc2V0 dGluZ3MKK1dIRVJFCisgICAgY29udGV4dCBpbiAoJ3VzZXInLCAnc3VwZXJ1 c2VyJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9qcy9wcm9jZWR1cmVzLmpzIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvanMvcHJv Y2VkdXJlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li5mNTBmZmU5Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvanMvcHJvY2VkdXJlcy5q cwpAQCAtMCwwICsxLDE3MSBAQAorLyogQ3JlYXRlIGFuZCBSZWdpc3RlciBQ cm9jZWR1cmUgQ29sbGVjdGlvbiBhbmQgTm9kZS4gKi8KK2RlZmluZSgKKyAg ICAgICAgWydqcXVlcnknLCAndW5kZXJzY29yZScsICd1bmRlcnNjb3JlLnN0 cmluZycsCisgICAgICAgICAncGdhZG1pbicsICdwZ2FkbWluLmJyb3dzZXIn LCAnYWxlcnRpZnknLAorICAgICAgICAgJ3BnYWRtaW4ubm9kZS5mdW5jdGlv bicsICdwZ2FkbWluLmJyb3dzZXIuY29sbGVjdGlvbicsCisgICAgICAgICAn cGdhZG1pbi5icm93c2VyLnNlcnZlci5wcml2aWxlZ2UnXSwKK2Z1bmN0aW9u KCQsIF8sIFMsIHBnQWRtaW4sIHBnQnJvd3NlciwgYWxlcnRpZnksIEZ1bmN0 aW9uKSB7CisKKyAgaWYgKCFwZ0Jyb3dzZXIuTm9kZXNbJ2NvbGwtcHJvY2Vk dXJlJ10pIHsKKyAgICB2YXIgcHJvY2VkdXJlcyA9IHBnQWRtaW4uQnJvd3Nl ci5Ob2Rlc1snY29sbC1wcm9jZWR1cmUnXSA9CisgICAgICBwZ0FkbWluLkJy b3dzZXIuQ29sbGVjdGlvbi5leHRlbmQoeworICAgICAgICBub2RlOiAncHJv Y2VkdXJlJywKKyAgICAgICAgbGFiZWw6ICd7eyBfKCdQcm9jZWR1cmVzJykg fX0nLAorICAgICAgICB0eXBlOiAnY29sbC1wcm9jZWR1cmUnLAorICAgICAg ICBjb2x1bW5zOiBbJ25hbWUnLCAnZnVuY293bmVyJywgJ2Rlc2NyaXB0aW9u J10KKyAgICAgIH0pOworICB9OworCisgIHBnU2NoZW1hTm9kZSA9IHBnQnJv d3Nlci5Ob2Rlc1snc2NoZW1hJ107CisKKyAgLy8gSW5oZXJpdCBGdW5jdGlv bnMgTm9kZQorICBpZiAoIXBnQnJvd3Nlci5Ob2Rlc1sncHJvY2VkdXJlJ10p IHsKKyAgICBwZ0FkbWluLkJyb3dzZXIuTm9kZXNbJ3Byb2NlZHVyZSddID0g RnVuY3Rpb24uZXh0ZW5kKHsKKyAgICAgIHR5cGU6ICdwcm9jZWR1cmUnLAor ICAgICAgbGFiZWw6ICd7eyBfKCdQcm9jZWR1cmUnKSB9fScsCisgICAgICBj b2xsZWN0aW9uX3R5cGU6ICdjb2xsLXByb2NlZHVyZScsCisgICAgICBoYXNT UUw6IHRydWUsCisgICAgICBoYXNEZXBlbmRzOiB0cnVlLAorICAgICAgcGFy ZW50X3R5cGU6IFsnc2NoZW1hJ10sCisgICAgICBJbml0OiBmdW5jdGlvbigp IHsKKyAgICAgICAgLyogQXZvaWQgbXVsaXRwbGUgcmVnaXN0cmF0aW9uIG9m IG1lbnVzICovCisgICAgICAgIGlmICh0aGlzLnByb2NfaW5pdGlhbGl6ZWQp CisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5wcm9jX2lu aXRpYWxpemVkID0gdHJ1ZTsKKworICAgICAgICBwZ0Jyb3dzZXIuYWRkX21l bnVzKFt7CisgICAgICAgICAgbmFtZTogJ2NyZWF0ZV9wcm9jZWR1cmVfb25f Y29sbCcsIG5vZGU6ICdjb2xsLXByb2NlZHVyZScsIG1vZHVsZToKKyAgICAg ICAgICB0aGlzLAorICAgICAgICAgIGFwcGxpZXM6IFsnb2JqZWN0JywgJ2Nv bnRleHQnXSwgY2FsbGJhY2s6ICdzaG93X29ial9wcm9wZXJ0aWVzJywKKyAg ICAgICAgICBjYXRlZ29yeTogJ2NyZWF0ZScsIHByaW9yaXR5OiA0LCBsYWJl bDogJ3t7IF8oJ1Byb2NlZHVyZS4uLicpIH19JywKKyAgICAgICAgICBpY29u OiAnd2NUYWJJY29uIGljb24tcHJvY2VkdXJlJywgZGF0YToge2FjdGlvbjog J2NyZWF0ZScsIGNoZWNrOgorICAgICAgICAgIGZhbHNlfQorICAgICAgICB9 LHsKKyAgICAgICAgICBuYW1lOiAnY3JlYXRlX3Byb2NlZHVyZScsIG5vZGU6 ICdwcm9jZWR1cmUnLCBtb2R1bGU6IHRoaXMsCisgICAgICAgICAgYXBwbGll czogWydvYmplY3QnLCAnY29udGV4dCddLCBjYWxsYmFjazogJ3Nob3dfb2Jq X3Byb3BlcnRpZXMnLAorICAgICAgICAgIGNhdGVnb3J5OiAnY3JlYXRlJywg cHJpb3JpdHk6IDQsIGxhYmVsOiAne3sgXygnUHJvY2VkdXJlLi4uJykgfX0n LAorICAgICAgICAgIGljb246ICd3Y1RhYkljb24gaWNvbi1wcm9jZWR1cmUn LCBkYXRhOiB7YWN0aW9uOiAnY3JlYXRlJywgY2hlY2s6CisgICAgICAgICAg dHJ1ZX0sCisgICAgICAgIH0seworICAgICAgICAgIG5hbWU6ICdjcmVhdGVf cHJvY2VkdXJlJywgbm9kZTogJ3NjaGVtYScsIG1vZHVsZTogdGhpcywKKyAg ICAgICAgICBhcHBsaWVzOiBbJ29iamVjdCcsICdjb250ZXh0J10sIGNhbGxi YWNrOiAnc2hvd19vYmpfcHJvcGVydGllcycsCisgICAgICAgICAgY2F0ZWdv cnk6ICdjcmVhdGUnLCBwcmlvcml0eTogNCwgbGFiZWw6ICd7eyBfKCdQcm9j ZWR1cmUuLi4nKSB9fScsCisgICAgICAgICAgaWNvbjogJ3djVGFiSWNvbiBp Y29uLXByb2NlZHVyZScsIGRhdGE6IHthY3Rpb246ICdjcmVhdGUnLCBjaGVj azoKKyAgICAgICAgICB0cnVlfSwgZW5hYmxlOiAnY2FuQ3JlYXRlUHJvYycK KyAgICAgICAgfQorICAgICAgICBdKTsKKyAgICAgIH0sCisgICAgICBjYW5E cm9wOiBwZ1NjaGVtYU5vZGUuY2FuQ2hpbGREcm9wLAorICAgICAgY2FuRHJv cENhc2NhZGU6IHBnU2NoZW1hTm9kZS5jYW5DaGlsZERyb3AsCisgICAgICBt b2RlbDogRnVuY3Rpb24ubW9kZWwuZXh0ZW5kKHsKKyAgICAgICAgZGVmYXVs dHM6IF8uZXh0ZW5kKHt9LAorICAgICAgICAgIEZ1bmN0aW9uLm1vZGVsLnBy b3RvdHlwZS5kZWZhdWx0cywKKyAgICAgICAgICB7CisgICAgICAgICAgICBs YW5uYW1lOiAnZWRic3BsJworICAgICAgICAgIH0KKyAgICAgICAgKSwKKyAg ICAgICAgY2FuVmFyQWRkOiBmdW5jdGlvbihtKXsKKyAgICAgICAgICB2YXIg c2VydmVyID0gdGhpcy5ub2RlX2luZm8uc2VydmVyOworICAgICAgICAgICAg aWYgKHNlcnZlci52ZXJzaW9uIDwgOTA1MDApIHsKKyAgICAgICAgICAgICAg cmV0dXJuIGZhbHNlOworICAgICAgICAgICB9CisgICAgICAgICAgIGVsc2Ug eworICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICB9Cisg ICAgICAgIH0sCisgICAgICAgIGlzRGlzYWJsZWQ6IGZ1bmN0aW9uKG0pIHsK KyAgICAgICAgICBuYW1lID0gdGhpcy5uYW1lOworICAgICAgICAgIHN3aXRj aChuYW1lKXsKKyAgICAgICAgICAgIGNhc2UgJ3Byb3ZvbGF0aWxpdHknOgor ICAgICAgICAgICAgY2FzZSAncHJvaXNzdHJpY3QnOgorICAgICAgICAgICAg Y2FzZSAncHJvc2VjZGVmJzoKKyAgICAgICAgICAgIGNhc2UgJ3Byb2Nvc3Qn OgorICAgICAgICAgICAgY2FzZSAncHJvbGVha3Byb29mJzoKKyAgICAgICAg ICAgIGNhc2UgJ3ZhcmlhYmxlcyc6CisgICAgICAgICAgICAgICB2YXIgc2Vy dmVyID0gdGhpcy5ub2RlX2luZm8uc2VydmVyOworICAgICAgICAgICAgICAg aWYgKHNlcnZlci52ZXJzaW9uIDwgOTA1MDApIHsKKyAgICAgICAgICAgICAg ICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgICB9CisgICAgICAgICAg ICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwor ICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICBjYXNlICdwcm9yb3dzJzoKKyAgICAgICAgICAgICAgdmFyIHNl cnZlciA9IHRoaXMubm9kZV9pbmZvLnNlcnZlcjsKKyAgICAgICAgICAgICAg aWYoc2VydmVyLnZlcnNpb24gPj0gOTA1MDAgJiYgbS5nZXQoJ3Byb3JldHNl dCcpID09IHRydWUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7 CisgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgZWxzZSB7CisgICAg ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAg ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgICAgYnJlYWs7 CisgICAgICAgICAgfQorICAgICAgIH0sCisgICAgICAgdmFsaWRhdGU6IGZ1 bmN0aW9uKCkKKyAgICAgICAgeworICAgICAgICAgIHZhciBlcnIgPSB7fSwK KyAgICAgICAgICAgICAgZXJybXNnLAorICAgICAgICAgICAgICBzZWNsYWJl bHMgPSB0aGlzLmdldCgnc2VjbGFiZWxzJyk7CisKKyAgICAgICAgICBpZiAo Xy5pc1VuZGVmaW5lZCh0aGlzLmdldCgnbmFtZScpKSB8fCBTdHJpbmcodGhp cy5nZXQoJ25hbWUnKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAn JykgeworICAgICAgICAgICAgZXJyWyduYW1lJ10gPSAne3sgXygnTmFtZSBj YW4gbm90IGJlIGVtcHR5IScpIH19JzsKKyAgICAgICAgICAgIGVycm1zZyA9 IGVycm1zZyB8fCBlcnJbJ25hbWUnXTsKKyAgICAgICAgICB9CisKKyAgICAg ICAgICBpZiAoXy5pc1VuZGVmaW5lZCh0aGlzLmdldCgncHJvbmFtZXNwYWNl JykpIHx8IFN0cmluZyh0aGlzLmdldCgncHJvbmFtZXNwYWNlJykpLnJlcGxh Y2UoL15ccyt8XHMrJC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIGVy clsncHJvbmFtZXNwYWNlJ10gPSAne3sgXygnU2NoZW1hIGNhbiBub3QgYmUg ZW1wdHkhJykgfX0nOworICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8 IGVyclsncHJvbmFtZXNwYWNlJ107CisgICAgICAgICAgfQorCisgICAgICAg ICAgaWYgKF8uaXNVbmRlZmluZWQodGhpcy5nZXQoJ2xhbm5hbWUnKSkgfHwg U3RyaW5nKHRoaXMuZ2V0KCdsYW5uYW1lJykpLnJlcGxhY2UoL15ccyt8XHMr JC9nLCAnJykgPT0gJycpIHsKKyAgICAgICAgICAgIGVyclsnbGFubmFtZSdd ID0gJ3t7IF8oJ0xhbmd1YWdlIGNhbiBub3QgYmUgZW1wdHkhJykgfX0nOwor ICAgICAgICAgICAgZXJybXNnID0gZXJybXNnIHx8IGVyclsnbGFubmFtZSdd OworICAgICAgICAgIH0KKworICAgICAgICAgIGlmIChfLmlzVW5kZWZpbmVk KHRoaXMuZ2V0KCdwcm9zcmMnKSkgfHwgU3RyaW5nKHRoaXMuZ2V0KCdwcm9z cmMnKSkucmVwbGFjZSgvXlxzK3xccyskL2csICcnKSA9PSAnJykgeworICAg ICAgICAgICAgZXJyWydwcm9zcmMnXSA9ICd7eyBfKCdDb2RlIGNhbiBub3Qg YmUgZW1wdHkhJykgfX0nOworICAgICAgICAgICAgZXJybXNnID0gZXJybXNn IHx8IGVyclsncHJvc3JjJ107CisgICAgICAgICAgfQorCisKKyAgICAgICAg ICBpZiAoc2VjbGFiZWxzKSB7CisgICAgICAgICAgICB2YXIgc2VjTGFiZWxz RXJyOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzZWNsYWJl bHMubW9kZWxzLmxlbmd0aCAmJiAhc2VjTGFiZWxzRXJyOyBpKyspIHsKKyAg ICAgICAgICAgICAgc2VjTGFiZWxzRXJyID0gKHNlY2xhYmVscy5tb2RlbHNb aV0pLnZhbGlkYXRlLmFwcGx5KHNlY2xhYmVscy5tb2RlbHNbaV0pOworICAg ICAgICAgICAgICBpZiAoc2VjTGFiZWxzRXJyKSB7CisgICAgICAgICAgICAg ICAgZXJyWydzZWNsYWJlbHMnXSA9IHNlY0xhYmVsc0VycjsKKyAgICAgICAg ICAgICAgICBlcnJtc2cgPSBlcnJtc2cgfHwgc2VjTGFiZWxzRXJyOworICAg ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgfQorCisg ICAgICAgICAgdGhpcy5lcnJvck1vZGVsLmNsZWFyKCkuc2V0KGVycik7CisK KyAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgfSwKKyAgICAgIH0K KyAgICAgICksCisgICAgICBjYW5DcmVhdGVQcm9jOiBmdW5jdGlvbihpdGVt RGF0YSwgaXRlbSwgZGF0YSkgeworICAgICAgICB2YXIgbm9kZV9oaWVyYXJj aHkgPSB0aGlzLmdldFRyZWVOb2RlSGllcmFyY2h5LmFwcGx5KHRoaXMsIFtp dGVtXSk7CisKKyAgICAgICAgLy8gRG8gbm90IHByb3ZpZGUgQ3JlYXRlIG9w dGlvbiBpbiBjYXRhbG9nCisgICAgICAgIGlmICgnY2F0YWxvZycgaW4gbm9k ZV9oaWVyYXJjaHkpCisgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg ICAgIC8vIFByb2NlZHVyZXMgc3VwcG9ydGVkIG9ubHkgaW4gUFBBUworICAg ICAgICBpZiAoJ3NlcnZlcicgaW4gbm9kZV9oaWVyYXJjaHkgJiYgbm9kZV9o aWVyYXJjaHlbJ3NlcnZlciddLnR5cGUgPT0gInBwYXMiKQorICAgICAgICAg IHJldHVybiB0cnVlOworCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg ICAgfQorICB9KTsKKworICB9CisKKyAgcmV0dXJuIHBnQnJvd3Nlci5Ob2Rl c1sncHJvY2VkdXJlJ107Cit9KTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku MV9wbHVzL2FjbC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9hY2wuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmFkM2UwZDEKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9hY2wuc3FsCkBA IC0wLDAgKzEsMzUgQEAKK1NFTEVDVAorICAgIENPQUxFU0NFKGd0LnJvbG5h bWUsICdwdWJsaWMnKSBBUyBncmFudGVlLAorICAgIGcucm9sbmFtZSBBUyBn cmFudG9yLCBhcnJheV9hZ2cocHJpdmlsZWdlX3R5cGUpIEFTIHByaXZpbGVn ZXMsCisgICAgYXJyYXlfYWdnKGlzX2dyYW50YWJsZSkgQVMgZ3JhbnRhYmxl CitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBkLmdyYW50ZWUsIGQuZ3Jh bnRvciwgZC5pc19ncmFudGFibGUsCisgICAgICAgIENBU0UgZC5wcml2aWxl Z2VfdHlwZQorICAgICAgICBXSEVOICdDT05ORUNUJyBUSEVOICdjJworICAg ICAgICBXSEVOICdDUkVBVEUnIFRIRU4gJ0MnCisgICAgICAgIFdIRU4gJ0RF TEVURScgVEhFTiAnZCcKKyAgICAgICAgV0hFTiAnRVhFQ1VURScgVEhFTiAn WCcKKyAgICAgICAgV0hFTiAnSU5TRVJUJyBUSEVOICdhJworICAgICAgICBX SEVOICdSRUZFUkVOQ0VTJyBUSEVOICd4JworICAgICAgICBXSEVOICdTRUxF Q1QnIFRIRU4gJ3InCisgICAgICAgIFdIRU4gJ1RFTVBPUkFSWScgVEhFTiAn VCcKKyAgICAgICAgV0hFTiAnVFJJR0dFUicgVEhFTiAndCcKKyAgICAgICAg V0hFTiAnVFJVTkNBVEUnIFRIRU4gJ0QnCisgICAgICAgIFdIRU4gJ1VQREFU RScgVEhFTiAndycKKyAgICAgICAgV0hFTiAnVVNBR0UnIFRIRU4gJ1UnCisg ICAgICAgIEVMU0UgJ1VOS05PV04nCisgICAgICAgIEVORCBBUyBwcml2aWxl Z2VfdHlwZQorICAgIEZST00KKyAgICAgICAgKFNFTEVDVAorICAgICAgICAg ICAgKGQpLmdyYW50ZWUgQVMgZ3JhbnRlZSwgKGQpLmdyYW50b3IgQVMgZ3Jh bnRvciwKKyAgICAgICAgICAgIChkKS5pc19ncmFudGFibGUgQVMgaXNfZ3Jh bnRhYmxlLAorICAgICAgICAgICAgKGQpLnByaXZpbGVnZV90eXBlIEFTIHBy aXZpbGVnZV90eXBlCisgICAgICAgIEZST00KKyAgICAgICAgICAgIChTRUxF Q1QgYWNsZXhwbG9kZShkYi5wcm9hY2wpIEFTIGQgRlJPTSBwZ19wcm9jIGRi CisgICAgICAgICAgICBXSEVSRSBkYi5vaWQgPSB7e2ZuaWR9fTo6T0lEKSBh CisgICAgICAgICkgZAorICAgICkgZAorICAgIExFRlQgSk9JTiBwZ19jYXRh bG9nLnBnX3JvbGVzIGcgT04gKGQuZ3JhbnRvciA9IGcub2lkKQorICAgIExF RlQgSk9JTiBwZ19jYXRhbG9nLnBnX3JvbGVzIGd0IE9OIChkLmdyYW50ZWUg PSBndC5vaWQpCitHUk9VUCBCWSBnLnJvbG5hbWUsIGd0LnJvbG5hbWU7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9jcmVhdGUuc3FsIGIvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBh cy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi40YWNiYzU4Ci0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS4xX3BsdXMvY3JlYXRlLnNxbApAQCAtMCwwICsxLDQyIEBA Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvc2VjdXJpdHkubWFjcm9z JyBhcyBTRUNMQUJMRSAlfQoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25z L3ByaXZpbGVnZS5tYWNyb3MnIGFzIFBSSVZJTEVHRSAlfQoreyUgaW1wb3J0 ICdtYWNyb3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3JvcycgYXMgVkFSSUFC TEUgJX0KK3slIHNldCBpc19jb2x1bW5zID0gW10gJX0KK3slIGlmIGRhdGEg JX0KK0NSRUFURSBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KGRhdGEucHJv bmFtZXNwYWNlLCBkYXRhLm5hbWUpIH19eyUgaWYgZGF0YQorLmFyZ3VtZW50 cyAlfSgKK3slIGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9e3twLmFyZ21v ZGV9fXslIGlmIHAuYXJnbmFtZSAlfSB7eyBjb25ufHF0SWRlbnQocC5hcmdu YW1lKX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ3R5cGUgJX0ge3twLmFyZ3R5 cGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7 e3AuYXJnZGVmdmFsfX17JSBlbmRpZiAlfQoreyUgaWYgbm90IGxvb3AubGFz dCAlfSx7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9KQoreyUgZW5kaWYgJX0K KworQVMKK3t7IGRhdGEucHJvc3JjIH19OworCit7JSBpZiBkYXRhLmFjbCAl fQoreyUgZm9yIHAgaW4gZGF0YS5hY2wgJX0KKwore3sgUFJJVklMRUdFLlNF VChjb25uLCAiUFJPQ0VEVVJFIiwgcC5ncmFudGVlLCBkYXRhLm5hbWUsIHAu d2l0aG91dF9ncmFudCwgcAorLndpdGhfZ3JhbnQsIGRhdGEucHJvbmFtZXNw YWNlLCBkYXRhLmZ1bmNfYXJncyl9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KKworeyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAlfQorCitDT01NRU5U IE9OIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3Bh Y2UsIGRhdGEubmFtZSkgfX17JSBpZgorZGF0YS5mdW5jX2FyZ3MgJX0oe3tk YXRhLmZ1bmNfYXJnc319KSB7JSBlbmRpZiAlfQorCisgICAgSVMgJ3t7IGRh dGEuZGVzY3JpcHRpb24gfX0nOworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRh dGEuc2VjbGFiZWxzICV9Cit7JSBmb3IgciBpbiBkYXRhLnNlY2xhYmVscyAl fQoreyUgaWYgci5sYWJlbCBhbmQgci5wcm92aWRlciAlfQorCit7eyBTRUNM QUJMRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIGRhdGEubmFtZSwgci5wcm92 aWRlciwgci5sYWJlbCwgZGF0YQorLnByb25hbWVzcGFjZSwgZGF0YS5mdW5j X2FyZ3MpIH19Cit7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9Cit7JSBlbmRp ZiAtJX0KKworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku MV9wbHVzL2RlbGV0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9kZWxldGUu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjE4NzAx ZWMKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9kZWxl dGUuc3FsCkBAIC0wLDAgKzEsMjEgQEAKK3slIGlmIHNjaWQgYW5kIGZuaWQg JX0KK1NFTEVDVAorICAgIHByLnByb25hbWUgYXMgbmFtZSwgJygnIHx8IENP QUxFU0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50 aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIGFzIGZ1bmNfYXJn cywKKyAgICBuc3BuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgor ICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgor ICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9uYW1lc3Bh Y2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9u YW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9U IElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKKyAgICBBTkQgcHIu b2lkID0ge3tmbmlkfX07Cit7JSBlbmRpZiAlfQorCit7JSBpZiBuYW1lICV9 CitEUk9QIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQobnNwbmFtZSwgbmFt ZSkgfX17e2Z1bmNfYXJnc319eyUgaWYgY2FzY2FkZSAlfSBDQVNDQURFeyUg ZW5kaWYgJX07Cit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwv OS4xX3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3Bs dXMvZ2V0X2RlZmluaXRpb24uc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAuLmM2MzVmMWUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjFfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKQEAgLTAsMCArMSwx MiBAQAorU0VMRUNUCisgICAgcGdfZ2V0X2Z1bmN0aW9uZGVmKHt7Zm5pZH19 OjpvaWQpIEFTIGZ1bmNfZGVmLAorICAgIG5zcG5hbWUgfHwgJy4nIHx8IHBy LnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFsb2cKKyAgICAu cGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhwci5vaWQpLCAn JykgfHwgJyknIGFzIG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lO CisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25hbWVz cGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHBy b25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgcHIub2lkID0g e3tmbmlkfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVz L2dldF9sYW5ndWFnZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X2xh bmd1YWdlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uZjgxZGRmYgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9w bHVzL2dldF9sYW5ndWFnZXMuc3FsCkBAIC0wLDAgKzEsNCBAQAorU0VMRUNU CisgICAgbGFubmFtZSBhcyBsYWJlbCwgbGFubmFtZSBhcyB2YWx1ZQorRlJP TQorICAgIHBnX2xhbmd1YWdlOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4x X3BsdXMvZ2V0X29pZC5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRfb2lk LnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4yYmM3 NmEyCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0 X29pZC5zcWwKQEAgLTAsMCArMSwxNyBAQAorU0VMRUNUCisgICAgcHIub2lk LCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisg ICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lk KSwgJycpIHx8ICcpJyBhcyBuYW1lLAorICAgIGxhbm5hbWUsIHBnX2dldF91 c2VyYnlpZChwcm9vd25lcikgYXMgZnVuY293bmVyCitGUk9NCisgICAgcGdf cHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJv cmV0dHlwZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lk PXByb2xhbmcKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5v aWQ9cHIucHJvbmFtZXNwYWNlCisgICAgQU5EIG5zcC5uc3BuYW1lPXt7IG5z cG5hbWV8cXRMaXRlcmFsIH19CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFM U0UKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50 X3RyaWdnZXInKQorICAgIEFORCBwci5wcm9uYW1lID0ge3sgbmFtZXxxdExp dGVyYWwgfX07CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRf b3V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL2dldF9vdXRfdHlw ZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjY0 YTExODcKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9n ZXRfb3V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAg IGZvcm1hdF90eXBlKG9pZCwgTlVMTCkgQVMgb3V0X2FyZ190eXBlCitGUk9N CisgICAgcGdfdHlwZQorV0hFUkUKKyAgICBvaWQgPSB7eyBvdXRfYXJnX29p ZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0 X3NjaGVtYS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRfc2NoZW1hLnNx bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xMjdkNGI5 Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvZ2V0X3Nj aGVtYS5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuc3BuYW1l CitGUk9NCisgICAgcGdfbmFtZXNwYWNlCitXSEVSRQorICAgIG9pZCA9IHt7 IHNjaWQgfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVz L2dldF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRfdHlwZXMu c3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjJhNTU4 MmUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9nZXRf dHlwZXMuc3FsCkBAIC0wLDAgKzEsMjAgQEAKK1NFTEVDVAorICAgICoKK0ZS T00KKyAgICAoU0VMRUNUCisgICAgICAgIGZvcm1hdF90eXBlKHQub2lkLE5V TEwpIEFTIHR5cG5hbWUsCisgICAgICAgIENBU0UgV0hFTiB0eXBlbGVtID4g MCBUSEVOIHR5cGVsZW0gRUxTRSB0Lm9pZCBFTkQgYXMgZWxlbW9pZCwgdHlw bGVuLCB0eXB0eXBlLCB0Lm9pZCwgbnNwbmFtZSwKKyAgICAgICAgKFNFTEVD VCBDT1VOVCgxKSBGUk9NIHBnX3R5cGUgdDIgV0hFUkUgdDIudHlwbmFtZSA9 IHQudHlwbmFtZSkgPiAxIEFTIGlzZHVwCisgICAgRlJPTQorICAgICAgICBw Z190eXBlIHQKKyAgICBKT0lOCisgICAgICAgIHBnX25hbWVzcGFjZSBuc3Ag T04gdHlwbmFtZXNwYWNlPW5zcC5vaWQKKyAgICBXSEVSRQorICAgICAgICAo Tk9UICh0eXBuYW1lID0gJ3Vua25vd24nIEFORCBuc3BuYW1lID0gJ3BnX2Nh dGFsb2cnKSkKKyAgICBBTkQKKyAgICAgICAgKAorICAgICAgICAgICAgdHlw dHlwZSBJTiAoJ2InLCAnYycsICdkJywgJ2UnLCAncCcsICdyJykKKyAgICAg ICAgICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ2FueScsICd0cmlnZ2VyJywg J2xhbmd1YWdlX2hhbmRsZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgICAg ICkKKyAgICApIEFTIGR1bW15CitPUkRFUiBCWSBuc3BuYW1lIDw+ICdwZ19j YXRhbG9nJywgbnNwbmFtZSA8PiAncHVibGljJywgbnNwbmFtZSwgMTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL25vZGUuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS4xX3BsdXMvbm9kZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uMzBjYWI4ZAotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuMV9wbHVzL25vZGUuc3FsCkBAIC0wLDAgKzEsMTkgQEAKK1NFTEVD VAorICAgIHByLm9pZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0Uo cGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJn dW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgQVMgbmFtZSwKKyAgICBsYW5u YW1lLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNvd25lciwg ZGVzY3JpcHRpb24KK0ZST00KKyAgICBwZ19wcm9jIHByCitKT0lOCisgICAg cGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitKT0lOCisgICAg cGdfbGFuZ3VhZ2UgbG5nIE9OIGxuZy5vaWQ9cHJvbGFuZworTEVGVCBPVVRF UiBKT0lOCisgICAgcGdfZGVzY3JpcHRpb24gZGVzIE9OIChkZXMub2Jqb2lk PXByLm9pZCBBTkQgZGVzLmNsYXNzb2lkPSdwZ19wcm9jJzo6cmVnY2xhc3Mp CitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQgcHIucHJv dHlwZSA9ICcxJzo6Y2hhcgorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3Nj aWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcics ICdldmVudF90cmlnZ2VyJykKK09SREVSIEJZCisgICAgcHJvbmFtZTsKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOWU4YThiYQotLS0gL2Rldi9udWxs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJv Y2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCkBAIC0w LDAgKzEsMzEgQEAKK1NFTEVDVAorICAgIHByLm9pZCwgcHIueG1pbiwgcHIu KiwgcHIucHJvc3JjIEFTIHByb3NyY19jLAorICAgIHByLnByb25hbWUgQVMg bmFtZSwgcGdfZ2V0X2Z1bmN0aW9uX3Jlc3VsdChwci5vaWQpIEFTIHByb3Jl dHR5cGVuYW1lLAorICAgIHR5cG5zLm5zcG5hbWUgQVMgdHlwbnNwLCBsYW5u YW1lLCBwcm9hcmduYW1lcywgb2lkdmVjdG9ydHlwZXMocHJvYXJndHlwZXMp IEFTIHByb2FyZ3R5cGVuYW1lcywKKyAgICBwZ19nZXRfZXhwcihwcm9hcmdk ZWZhdWx0cywgJ3BnX2NhdGFsb2cucGdfY2xhc3MnOjpyZWdjbGFzcykgQVMg cHJvYXJnZGVmYXVsdHZhbHMsCisgICAgcHJvbmFyZ2RlZmF1bHRzLCBwcm9j b25maWcsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgQVMgZnVuY293bmVy LCBkZXNjcmlwdGlvbiwKKyAgICAoU0VMRUNUCisgICAgICAgIGFycmF5X2Fn Zyhwcm92aWRlciB8fCAnPScgfHwgbGFiZWwpCisgICAgRlJPTQorICAgICAg ICBwZ19zZWNsYWJlbCBzbDEKKyAgICBXSEVSRQorICAgICAgICBzbDEub2Jq b2lkPXByLm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisgICAgcGdfcHJvYyBw cgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlw ZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSB0eXBucyBPTiB0eXBucy5vaWQ9 dHlwLnR5cG5hbWVzcGFjZQorSk9JTgorICAgIHBnX2xhbmd1YWdlIGxuZyBP TiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAgIHBnX2Rl c2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5EIGRlcy5j bGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAgICBwcm9p c2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19 OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2 ZW50X3RyaWdnZXInKQoreyUgaWYgZm5pZCAlfQorICAgIEFORCBwci5vaWQg PSB7e2ZuaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JERVIgQlkKKyAgICBw cm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvdXBkYXRl LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJv Y2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTg1ZTUyYQotLS0gL2Rldi9u dWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv cHJvY2VkdXJlL3BwYXMvc3FsLzkuMV9wbHVzL3VwZGF0ZS5zcWwKQEAgLTAs MCArMSw5NyBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVuY3Rpb25zL3NlY3Vy aXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGltcG9ydCAnbWFjcm9z L2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQUklWSUxFR0UgJX17 JSBpZiBkYXRhICV9Cit7JSBzZXQgbmFtZSA9IG9fZGF0YS5uYW1lICV9Cit7 JSBpZiBkYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAhPSBvX2RhdGEu bmFtZSAlfQorQUxURVIgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2Rh dGEucHJvbmFtZXNwYWNlLCBvX2RhdGEubmFtZSkgfX17JSBpZiBvX2RhdGEu cHJvYXJndHlwZW5hbWVzICV9KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMg fX0peyUgZW5kaWYgJX0KKworICAgIFJFTkFNRSBUTyB7eyBjb25ufHF0SWRl bnQoZGF0YS5uYW1lKSB9fTsKK3slIHNldCBuYW1lID0gZGF0YS5uYW1lICV9 Cit7JSBlbmRpZiAlfQorCit7JSBlbmRpZiAtJX0KK3slIGlmIGRhdGEuY2hh bmdlX2Z1bmMgICV9CitDUkVBVEUgT1IgUkVQTEFDRSBQUk9DRURVUkUge3sg Y29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG5hbWUpIH19eyUg aWYgZGF0YS5hcmd1bWVudHMgJX0oCit7JSBmb3IgcCBpbiBkYXRhLmFyZ3Vt ZW50cyAlfXslIGlmIHAuYXJnbW9kZSAlfXt7cC5hcmdtb2RlfX17JSBlbmRp ZiAlfXslIGlmIHAuYXJnbmFtZSAlfSB7eyBjb25ufHF0SWRlbnQocC5hcmdu YW1lKSB9fXslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9IHt7cC5hcmd0 eXBlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFVTFQg e3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29wLmxh c3QgJX0sIHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KKykKK3slIGVuZGlm ICV9CisKK0FTCit7JSBpZiBkYXRhLnByb3NyYyAlfXt7IGRhdGEucHJvc3Jj IH19eyUgZWxzZSAlfXt7IG9fZGF0YS5wcm9zcmMgfX17JSBlbmRpZiAtJX07 Cit7JSBlbmRpZiAtJX0KKworCit7JSBpZiBkYXRhLmZ1bmNvd25lciAlfQor CitBTFRFUiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9u YW1lc3BhY2UsIG5hbWUpIH19eyUgaWYgb19kYXRhLnByb2FyZ3R5cGVuYW1l cyAlfSh7eyBvX2RhdGEucHJvYXJndHlwZW5hbWVzIH19KXslIGVuZGlmICV9 CisgICAgT1dORVIgVE8ge3sgZGF0YS5mdW5jb3duZXIgfX07Cit7JSBlbmRp ZiAtJX0KKworCit7IyBUaGUgU1FMIGdlbmVyYXRlZCBiZWxvdyB3aWxsIGNo YW5nZSBwcml2aWxlZGdlcyAjfQoreyUgaWYgZGF0YS5hY2wgJX0KKworeyUg aWYgJ2RlbGV0ZWQnIGluIGRhdGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBk YXRhLmFjbC5kZWxldGVkICV9Cit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29u biwgJ1BST0NFRFVSRScsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhCisu cHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgJ2NoYW5nZWQnIGlu IGRhdGEuZGF0YWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5jaGFu Z2VkICV9CisKK3t7IFBSSVZJTEVHRS5VTlNFVEFMTChjb25uLCAnUFJPQ0VE VVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBvX2RhdGEKKy5wcm9uYW1lc3Bh Y2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7eyBQUklWSUxFR0Uu U0VUKGNvbm4sICdQUk9DRURVUkUnLCBwcml2LmdyYW50ZWUsIG5hbWUsIHBy aXYud2l0aG91dF9ncmFudCwKKyBwcml2LndpdGhfZ3JhbnQsIG9fZGF0YS5w cm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiAnYWRkZWQnIGluIGRh dGEuYWNsICV9Cit7JSBmb3IgcHJpdiBpbiBkYXRhLmFjbC5hZGRlZCAlfQor e3sgUFJJVklMRUdFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFu dGVlLCBuYW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsCisgcHJpdi53aXRoX2dy YW50LCBvX2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5h bWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAlfQoreyUgZW5kaWYg LSV9CisKK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNlY2xhYmVscyAlfQor eyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmRl bGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmRl bGV0ZWQgJX0KKwore3sgU0VDTEFCTEUuVU5TRVQoY29ubiwgJ1BST0NFRFVS RScsIG5hbWUsIHIucHJvdmlkZXIsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9f ZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVu ZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xh YmVscy5hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3IgciBpbiBzZWNsYWJl bHMuYWRkZWQgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNvbm4sICdQUk9DRURV UkUnLCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2Rh dGEKKy5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19 Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2NoYW5nZWQn IGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5nZWR8bGVuZ3RoID4g MCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5nZWQgJX0KKwore3sg U0VDTEFCTEUuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3Zp ZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEKKy5wcm9uYW1lc3BhY2Us IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3sl IGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NP TU1FTlQgT04gUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJv bmFtZXNwYWNlLCBuYW1lKSB9fXslIGlmIG9fZGF0YS5wcm9hcmd0eXBlbmFt ZXMgJX0oe3sgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSl7JSBlbmRpZiAl fQorCisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxxdExpdGVyYWwgfX07 Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5wcm9uYW1lc3BhY2UgJX0K KworQUxURVIgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJv bmFtZXNwYWNlLCBuYW1lKSB9fXslIGlmIG9fZGF0YS5wcm9hcmd0eXBlbmFt ZXMgJX0oe3sgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSl7JSBlbmRpZiAl fQorCisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9u YW1lc3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy92YXJpYWJsZXMuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS4xX3BsdXMvdmFyaWFibGVzLnNxbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjMzYzcxCi0tLSAvZGV2L251bGwK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9j ZWR1cmUvcHBhcy9zcWwvOS4xX3BsdXMvdmFyaWFibGVzLnNxbApAQCAtMCww ICsxLDYgQEAKK1NFTEVDVAorICAgIG5hbWUsIHZhcnR5cGUsIG1pbl92YWws IG1heF92YWwsIGVudW12YWxzCitGUk9NCisgICAgcGdfc2V0dGluZ3MKK1dI RVJFCisgICAgY29udGV4dCBpbiAoJ3VzZXInLCAnc3VwZXJ1c2VyJyk7CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9hY2wuc3FsIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS4yX3BsdXMvYWNsLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwLi5hZDNlMGQxCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS4yX3BsdXMvYWNsLnNxbApAQCAtMCwwICsxLDM1IEBACitTRUxFQ1QK KyAgICBDT0FMRVNDRShndC5yb2xuYW1lLCAncHVibGljJykgQVMgZ3JhbnRl ZSwKKyAgICBnLnJvbG5hbWUgQVMgZ3JhbnRvciwgYXJyYXlfYWdnKHByaXZp bGVnZV90eXBlKSBBUyBwcml2aWxlZ2VzLAorICAgIGFycmF5X2FnZyhpc19n cmFudGFibGUpIEFTIGdyYW50YWJsZQorRlJPTQorICAgIChTRUxFQ1QKKyAg ICAgICAgZC5ncmFudGVlLCBkLmdyYW50b3IsIGQuaXNfZ3JhbnRhYmxlLAor ICAgICAgICBDQVNFIGQucHJpdmlsZWdlX3R5cGUKKyAgICAgICAgV0hFTiAn Q09OTkVDVCcgVEhFTiAnYycKKyAgICAgICAgV0hFTiAnQ1JFQVRFJyBUSEVO ICdDJworICAgICAgICBXSEVOICdERUxFVEUnIFRIRU4gJ2QnCisgICAgICAg IFdIRU4gJ0VYRUNVVEUnIFRIRU4gJ1gnCisgICAgICAgIFdIRU4gJ0lOU0VS VCcgVEhFTiAnYScKKyAgICAgICAgV0hFTiAnUkVGRVJFTkNFUycgVEhFTiAn eCcKKyAgICAgICAgV0hFTiAnU0VMRUNUJyBUSEVOICdyJworICAgICAgICBX SEVOICdURU1QT1JBUlknIFRIRU4gJ1QnCisgICAgICAgIFdIRU4gJ1RSSUdH RVInIFRIRU4gJ3QnCisgICAgICAgIFdIRU4gJ1RSVU5DQVRFJyBUSEVOICdE JworICAgICAgICBXSEVOICdVUERBVEUnIFRIRU4gJ3cnCisgICAgICAgIFdI RU4gJ1VTQUdFJyBUSEVOICdVJworICAgICAgICBFTFNFICdVTktOT1dOJwor ICAgICAgICBFTkQgQVMgcHJpdmlsZWdlX3R5cGUKKyAgICBGUk9NCisgICAg ICAgIChTRUxFQ1QKKyAgICAgICAgICAgIChkKS5ncmFudGVlIEFTIGdyYW50 ZWUsIChkKS5ncmFudG9yIEFTIGdyYW50b3IsCisgICAgICAgICAgICAoZCku aXNfZ3JhbnRhYmxlIEFTIGlzX2dyYW50YWJsZSwKKyAgICAgICAgICAgIChk KS5wcml2aWxlZ2VfdHlwZSBBUyBwcml2aWxlZ2VfdHlwZQorICAgICAgICBG Uk9NCisgICAgICAgICAgICAoU0VMRUNUIGFjbGV4cGxvZGUoZGIucHJvYWNs KSBBUyBkIEZST00gcGdfcHJvYyBkYgorICAgICAgICAgICAgV0hFUkUgZGIu b2lkID0ge3tmbmlkfX06Ok9JRCkgYQorICAgICAgICApIGQKKyAgICApIGQK KyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19yb2xlcyBnIE9OIChkLmdy YW50b3IgPSBnLm9pZCkKKyAgICBMRUZUIEpPSU4gcGdfY2F0YWxvZy5wZ19y b2xlcyBndCBPTiAoZC5ncmFudGVlID0gZ3Qub2lkKQorR1JPVVAgQlkgZy5y b2xuYW1lLCBndC5yb2xuYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4y X3BsdXMvY3JlYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2NyZWF0ZS5z cWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMzI4YzM3 MQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2NyZWF0 ZS5zcWwKQEAgLTAsMCArMSw0MSBAQAoreyUgaW1wb3J0ICdtYWNyb3MvZnVu Y3Rpb25zL3NlY3VyaXR5Lm1hY3JvcycgYXMgU0VDTEFCTEUgJX0KK3slIGlt cG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy9wcml2aWxlZ2UubWFjcm9zJyBhcyBQ UklWSUxFR0UgJX0KK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9ucy92YXJp YWJsZS5tYWNyb3MnIGFzIFZBUklBQkxFICV9Cit7JSBzZXQgaXNfY29sdW1u cyA9IFtdICV9Cit7JSBpZiBkYXRhICV9CitDUkVBVEUgUFJPQ0VEVVJFIHt7 IGNvbm58cXRJZGVudChkYXRhLnByb25hbWVzcGFjZSwgZGF0YS5uYW1lKSB9 fXslIGlmIGRhdGEuYXJndW1lbnRzICV9CisoeyUgZm9yIHAgaW4gZGF0YS5h cmd1bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19eyUg ZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX0ge3sgY29ubnxxdElkZW50KHAu YXJnbmFtZSl9fXslIGVuZGlmICV9eyUgaWYgcC5hcmd0eXBlICV9IHt7cC5h cmd0eXBlfX17JSBlbmRpZiAlfXslIGlmIHAuYXJnZGVmdmFsICV9IERFRkFV TFQge3twLmFyZ2RlZnZhbH19eyUgZW5kaWYgJX0KK3slIGlmIG5vdCBsb29w Lmxhc3QgJX0sIHslIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0pCit7JSBlbmRp ZiAlfQorCitBUwore3sgZGF0YS5wcm9zcmMgfX07CisKK3slIGlmIGRhdGEu YWNsICV9Cit7JSBmb3IgcCBpbiBkYXRhLmFjbCAlfQorCit7eyBQUklWSUxF R0UuU0VUKGNvbm4sICJQUk9DRURVUkUiLCBwLmdyYW50ZWUsIGRhdGEubmFt ZSwgcC53aXRob3V0X2dyYW50LCBwCisud2l0aF9ncmFudCwgZGF0YS5wcm9u YW1lc3BhY2UsIGRhdGEuZnVuY19hcmdzKX19Cit7JSBlbmRmb3IgJX0KK3sl IGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmRlc2NyaXB0aW9uICV9CisKK0NP TU1FTlQgT04gUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChkYXRhLnByb25h bWVzcGFjZSwgZGF0YS5uYW1lKSB9fXslIGlmCitkYXRhLmZ1bmNfYXJncyAl fSh7e2RhdGEuZnVuY19hcmdzfX0pIHslIGVuZGlmICV9CisKKyAgICBJUyAn e3sgZGF0YS5kZXNjcmlwdGlvbiB9fSc7Cit7JSBlbmRpZiAtJX0KKworeyUg aWYgZGF0YS5zZWNsYWJlbHMgJX0KK3slIGZvciByIGluIGRhdGEuc2VjbGFi ZWxzICV9Cit7JSBpZiByLmxhYmVsIGFuZCByLnByb3ZpZGVyICV9CisKK3t7 IFNFQ0xBQkxFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgZGF0YS5uYW1lLCBy LnByb3ZpZGVyLCByLmxhYmVsLCBkYXRhCisucHJvbmFtZXNwYWNlLCBkYXRh LmZ1bmNfYXJncykgfX0KK3slIGVuZGlmICV9Cit7JSBlbmRmb3IgJX0KK3sl IGVuZGlmIC0lfQorCit7JSBlbmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS4yX3BsdXMvZGVsZXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2Rl bGV0ZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MTg3MDFlYwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVz L2RlbGV0ZS5zcWwKQEAgLTAsMCArMSwyMSBAQAoreyUgaWYgc2NpZCBhbmQg Zm5pZCAlfQorU0VMRUNUCisgICAgcHIucHJvbmFtZSBhcyBuYW1lLCAnKCcg fHwgQ09BTEVTQ0UocGdfY2F0YWxvZworICAgIC5wZ19nZXRfZnVuY3Rpb25f aWRlbnRpdHlfYXJndW1lbnRzKHByLm9pZCksICcnKSB8fCAnKScgYXMgZnVu Y19hcmdzLAorICAgIG5zcG5hbWUKK0ZST00KKyAgICBwZ19wcm9jIHByCitK T0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9pZD1wcm9yZXR0eXBlCitK T0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBuc3Aub2lkPXByLnByb25h bWVzcGFjZQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5E IHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFt ZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQorICAgIEFO RCBwci5vaWQgPSB7e2ZuaWR9fTsKK3slIGVuZGlmICV9CisKK3slIGlmIG5h bWUgJX0KK0RST1AgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChuc3BuYW1l LCBuYW1lKSB9fXt7ZnVuY19hcmdzfX17JSBpZiBjYXNjYWRlICV9IENBU0NB REV7JSBlbmRpZiAlfTsKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjJfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85 LjJfcGx1cy9nZXRfZGVmaW5pdGlvbi5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYzYzNWYxZQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BwYXMvc3FsLzkuMl9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApAQCAtMCww ICsxLDEyIEBACitTRUxFQ1QKKyAgICBwZ19nZXRfZnVuY3Rpb25kZWYoe3tm bmlkfX06Om9pZCkgQVMgZnVuY19kZWYsCisgICAgbnNwbmFtZSB8fCAnLicg fHwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxvZwor ICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHByLm9p ZCksICcnKSB8fCAnKScgYXMgbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIK K0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJv bmFtZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBB TkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCBwci5v aWQgPSB7e2ZuaWR9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4y X3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9n ZXRfbGFuZ3VhZ2VzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwLi5mODFkZGZiCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwv OS4yX3BsdXMvZ2V0X2xhbmd1YWdlcy5zcWwKQEAgLTAsMCArMSw0IEBACitT RUxFQ1QKKyAgICBsYW5uYW1lIGFzIGxhYmVsLCBsYW5uYW1lIGFzIHZhbHVl CitGUk9NCisgICAgcGdfbGFuZ3VhZ2U7CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjJfcGx1cy9nZXRfb2lkLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dl dF9vaWQuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LjJiYzc2YTIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1 cy9nZXRfb2lkLnNxbApAQCAtMCwwICsxLDE3IEBACitTRUxFQ1QKKyAgICBw ci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxFU0NFKHBnX2NhdGFs b2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5X2FyZ3VtZW50cyhw ci5vaWQpLCAnJykgfHwgJyknIGFzIG5hbWUsCisgICAgbGFubmFtZSwgcGdf Z2V0X3VzZXJieWlkKHByb293bmVyKSBhcyBmdW5jb3duZXIKK0ZST00KKyAg ICBwZ19wcm9jIHByCitKT0lOCisgICAgcGdfdHlwZSB0eXAgT04gdHlwLm9p ZD1wcm9yZXR0eXBlCitKT0lOCisgICAgcGdfbGFuZ3VhZ2UgbG5nIE9OIGxu Zy5vaWQ9cHJvbGFuZworSk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04g bnNwLm9pZD1wci5wcm9uYW1lc3BhY2UKKyAgICBBTkQgbnNwLm5zcG5hbWU9 e3sgbnNwbmFtZXxxdExpdGVyYWwgfX0KK1dIRVJFCisgICAgcHJvaXNhZ2cg PSBGQUxTRQorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAn ZXZlbnRfdHJpZ2dlcicpCisgICAgQU5EIHByLnByb25hbWUgPSB7eyBuYW1l fHF0TGl0ZXJhbCB9fTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVz L2dldF9vdXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvZ2V0X291 dF90eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MC4uNjRhMTE4NwotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9w bHVzL2dldF9vdXRfdHlwZXMuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNU CisgICAgZm9ybWF0X3R5cGUob2lkLCBOVUxMKSBBUyBvdXRfYXJnX3R5cGUK K0ZST00KKyAgICBwZ190eXBlCitXSEVSRQorICAgIG9pZCA9IHt7IG91dF9h cmdfb2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1 cy9nZXRfc2NoZW1hLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90 ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF9zY2hl bWEuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEy N2Q0YjkKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9n ZXRfc2NoZW1hLnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5z cG5hbWUKK0ZST00KKyAgICBwZ19uYW1lc3BhY2UKK1dIRVJFCisgICAgb2lk ID0ge3sgc2NpZCB9fTo6b2lkOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4y X3BsdXMvZ2V0X3R5cGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL2dldF90 eXBlcy5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MmE1NTgyZQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVz L2dldF90eXBlcy5zcWwKQEAgLTAsMCArMSwyMCBAQAorU0VMRUNUCisgICAg KgorRlJPTQorICAgIChTRUxFQ1QKKyAgICAgICAgZm9ybWF0X3R5cGUodC5v aWQsTlVMTCkgQVMgdHlwbmFtZSwKKyAgICAgICAgQ0FTRSBXSEVOIHR5cGVs ZW0gPiAwIFRIRU4gdHlwZWxlbSBFTFNFIHQub2lkIEVORCBhcyBlbGVtb2lk LCB0eXBsZW4sIHR5cHR5cGUsIHQub2lkLCBuc3BuYW1lLAorICAgICAgICAo U0VMRUNUIENPVU5UKDEpIEZST00gcGdfdHlwZSB0MiBXSEVSRSB0Mi50eXBu YW1lID0gdC50eXBuYW1lKSA+IDEgQVMgaXNkdXAKKyAgICBGUk9NCisgICAg ICAgIHBnX3R5cGUgdAorICAgIEpPSU4KKyAgICAgICAgcGdfbmFtZXNwYWNl IG5zcCBPTiB0eXBuYW1lc3BhY2U9bnNwLm9pZAorICAgIFdIRVJFCisgICAg ICAgIChOT1QgKHR5cG5hbWUgPSAndW5rbm93bicgQU5EIG5zcG5hbWUgPSAn cGdfY2F0YWxvZycpKQorICAgIEFORAorICAgICAgICAoCisgICAgICAgICAg ICB0eXB0eXBlIElOICgnYicsICdjJywgJ2QnLCAnZScsICdwJywgJ3InKQor ICAgICAgICAgICAgQU5EIHR5cG5hbWUgTk9UIElOICgnYW55JywgJ3RyaWdn ZXInLCAnbGFuZ3VhZ2VfaGFuZGxlcicsICdldmVudF90cmlnZ2VyJykKKyAg ICAgICAgKQorICAgICkgQVMgZHVtbXkKK09SREVSIEJZIG5zcG5hbWUgPD4g J3BnX2NhdGFsb2cnLCBuc3BuYW1lIDw+ICdwdWJsaWMnLCBuc3BuYW1lLCAx OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvbm9kZS5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w cGFzL3NxbC85LjJfcGx1cy9ub2RlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi4zMGNhYjhkCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS4yX3BsdXMvbm9kZS5zcWwKQEAgLTAsMCArMSwxOSBAQAor U0VMRUNUCisgICAgcHIub2lkLCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FM RVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0 eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBBUyBuYW1lLAorICAg IGxhbm5hbWUsIHBnX2dldF91c2VyYnlpZChwcm9vd25lcikgQVMgZnVuY293 bmVyLCBkZXNjcmlwdGlvbgorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pPSU4K KyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pPSU4K KyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZU IE9VVEVSIEpPSU4KKyAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5v YmpvaWQ9cHIub2lkIEFORCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdj bGFzcykKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBw ci5wcm90eXBlID0gJzEnOjpjaGFyCisgICAgQU5EIHByb25hbWVzcGFjZSA9 IHt7c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmln Z2VyJywgJ2V2ZW50X3RyaWdnZXInKQorT1JERVIgQlkKKyAgICBwcm9uYW1l OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBs YXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvcHJvcGVydGllcy5z cWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2Nl ZHVyZS9wcGFzL3NxbC85LjJfcGx1cy9wcm9wZXJ0aWVzLnNxbApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mZjc4Mjk4Ci0tLSAvZGV2 L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvcHJvcGVydGllcy5zcWwK QEAgLTAsMCArMSwzMSBAQAorU0VMRUNUCisgICAgcHIub2lkLCBwci54bWlu LCBwci4qLCBwci5wcm9zcmMgQVMgcHJvc3JjX2MsCisgICAgcHIucHJvbmFt ZSBBUyBuYW1lLCBwZ19nZXRfZnVuY3Rpb25fcmVzdWx0KHByLm9pZCkgQVMg cHJvcmV0dHlwZW5hbWUsCisgICAgdHlwbnMubnNwbmFtZSBBUyB0eXBuc3As IGxhbm5hbWUsIHByb2FyZ25hbWVzLCBvaWR2ZWN0b3J0eXBlcyhwcm9hcmd0 eXBlcykgQVMgcHJvYXJndHlwZW5hbWVzLAorICAgIHBnX2dldF9leHByKHBy b2FyZ2RlZmF1bHRzLCAncGdfY2F0YWxvZy5wZ19jbGFzcyc6OnJlZ2NsYXNz KSBBUyBwcm9hcmdkZWZhdWx0dmFscywKKyAgICBwcm9uYXJnZGVmYXVsdHMs IHByb2NvbmZpZywgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBBUyBmdW5j b3duZXIsIGRlc2NyaXB0aW9uLAorICAgIChTRUxFQ1QKKyAgICAgICAgYXJy YXlfYWdnKHByb3ZpZGVyIHx8ICc9JyB8fCBsYWJlbCkKKyAgICBGUk9NCisg ICAgICAgIHBnX3Noc2VjbGFiZWwgc2wxCisgICAgV0hFUkUKKyAgICAgICAg c2wxLm9iam9pZD1wci5vaWQpIEFTIHNlY2xhYmVscworRlJPTQorICAgIHBn X3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXBy b3JldHR5cGUKK0pPSU4KKyAgICBwZ19uYW1lc3BhY2UgdHlwbnMgT04gdHlw bnMub2lkPXR5cC50eXBuYW1lc3BhY2UKK0pPSU4KKyAgICBwZ19sYW5ndWFn ZSBsbmcgT04gbG5nLm9pZD1wcm9sYW5nCitMRUZUIE9VVEVSIEpPSU4KKyAg ICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9cHIub2lkIEFO RCBkZXMuY2xhc3NvaWQ9J3BnX3Byb2MnOjpyZWdjbGFzcykKK1dIRVJFCisg ICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7 e3NjaWR9fTo6b2lkCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dl cicsICdldmVudF90cmlnZ2VyJykKK3slIGlmIGZuaWQgJX0KKyAgICBBTkQg cHIub2lkID0ge3tmbmlkfX06Om9pZAoreyUgZW5kaWYgJX0KK09SREVSIEJZ CisgICAgcHJvbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVz L3VwZGF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy91cGRhdGUuc3FsCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk4NWU1MmEKLS0t IC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVt cGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjJfcGx1cy91cGRhdGUuc3Fs CkBAIC0wLDAgKzEsOTcgQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9u cy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQg J21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklM RUdFICV9eyUgaWYgZGF0YSAlfQoreyUgc2V0IG5hbWUgPSBvX2RhdGEubmFt ZSAlfQoreyUgaWYgZGF0YS5uYW1lICV9Cit7JSBpZiBkYXRhLm5hbWUgIT0g b19kYXRhLm5hbWUgJX0KK0FMVEVSIFBST0NFRFVSRSB7eyBjb25ufHF0SWRl bnQob19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLm5hbWUpIH19eyUgaWYg b19kYXRhLnByb2FyZ3R5cGVuYW1lcyAlfSh7eyBvX2RhdGEucHJvYXJndHlw ZW5hbWVzIH19KXslIGVuZGlmICV9CisKKyAgICBSRU5BTUUgVE8ge3sgY29u bnxxdElkZW50KGRhdGEubmFtZSkgfX07Cit7JSBzZXQgbmFtZSA9IGRhdGEu bmFtZSAlfQoreyUgZW5kaWYgJX0KKworeyUgZW5kaWYgLSV9Cit7JSBpZiBk YXRhLmNoYW5nZV9mdW5jICAlfQorQ1JFQVRFIE9SIFJFUExBQ0UgUFJPQ0VE VVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1l KSB9fXslIGlmIGRhdGEuYXJndW1lbnRzICV9KAoreyUgZm9yIHAgaW4gZGF0 YS5hcmd1bWVudHMgJX17JSBpZiBwLmFyZ21vZGUgJX17e3AuYXJnbW9kZX19 eyUgZW5kaWYgJX17JSBpZiBwLmFyZ25hbWUgJX0ge3sgY29ubnxxdElkZW50 KHAuYXJnbmFtZSkgfX17JSBlbmRpZiAlfXslIGlmIHAuYXJndHlwZSAlfSB7 e3AuYXJndHlwZX19eyUgZW5kaWYgJX17JSBpZiBwLmFyZ2RlZnZhbCAlfSBE RUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXslIGVuZGlmICV9Cit7JSBpZiBub3Qg bG9vcC5sYXN0ICV9LCB7JSBlbmRpZiAlfQoreyUgZW5kZm9yICV9CispCit7 JSBlbmRpZiAlfQorCitBUworeyUgaWYgZGF0YS5wcm9zcmMgJX17eyBkYXRh LnByb3NyYyB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJvc3JjIH19eyUgZW5k aWYgLSV9OworeyUgZW5kaWYgLSV9CisKKworeyUgaWYgZGF0YS5mdW5jb3du ZXIgJX0KKworQUxURVIgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2Rh dGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fXslIGlmIG9fZGF0YS5wcm9hcmd0 eXBlbmFtZXMgJX0oe3sgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSl7JSBl bmRpZiAlfQorICAgIE9XTkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19Owor eyUgZW5kaWYgLSV9CisKKworeyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cg d2lsbCBjaGFuZ2UgcHJpdmlsZWRnZXMgI30KK3slIGlmIGRhdGEuYWNsICV9 CisKK3slIGlmICdkZWxldGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHBy aXYgaW4gZGF0YS5hY2wuZGVsZXRlZCAlfQore3sgUFJJVklMRUdFLlVOU0VU QUxMKGNvbm4sICdQUk9DRURVUkUnLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9f ZGF0YQorLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykg fX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmICdjaGFu Z2VkJyBpbiBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5h Y2wuY2hhbmdlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwg J1BST0NFRFVSRScsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhCisucHJv bmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQore3sgUFJJ VklMRUdFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFudGVlLCBu YW1lLCBwcml2LndpdGhvdXRfZ3JhbnQsCisgcHJpdi53aXRoX2dyYW50LCBv X2RhdGEucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9 fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgJ2FkZGVk JyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRk ZWQgJX0KK3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIHBy aXYuZ3JhbnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LAorIHByaXYu d2l0aF9ncmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2Fy Z3R5cGVuYW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3sl IGVuZGlmIC0lfQorCit7JSBzZXQgc2VjbGFiZWxzID0gZGF0YS5zZWNsYWJl bHMgJX0KK3slIGlmICdkZWxldGVkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xh YmVscy5kZWxldGVkfGxlbmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xh YmVscy5kZWxldGVkICV9CisKK3t7IFNFQ0xBQkxFLlVOU0VUKGNvbm4sICdQ Uk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVyLCBvX2RhdGEucHJvbmFtZXNw YWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9yICV9 Cit7JSBlbmRpZiAtJX0KK3slIGlmICdhZGRlZCcgaW4gc2VjbGFiZWxzIGFu ZCBzZWNsYWJlbHMuYWRkZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4g c2VjbGFiZWxzLmFkZGVkICV9CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAn UFJPQ0VEVVJFJywgbmFtZSwgci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJl bCwgb19kYXRhCisucHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5h bWVzKSB9fQoreyUgZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KK3slIGlmICdj aGFuZ2VkJyBpbiBzZWNsYWJlbHMgYW5kIHNlY2xhYmVscy5jaGFuZ2VkfGxl bmd0aCA+IDAgJX0KK3slIGZvciByIGluIHNlY2xhYmVscy5jaGFuZ2VkICV9 CisKK3t7IFNFQ0xBQkxFLlNFVChjb25uLCAnUFJPQ0VEVVJFJywgbmFtZSwg ci5wcm92aWRlciwgci5zZWN1cml0eV9sYWJlbCwgb19kYXRhCisucHJvbmFt ZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUgZW5kZm9y ICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5kZXNjcmlwdGlvbiAl fQorCitDT01NRU5UIE9OIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19k YXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX17JSBpZiBvX2RhdGEucHJvYXJn dHlwZW5hbWVzICV9KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0peyUg ZW5kaWYgJX0KKworICAgIElTIHt7IGRhdGEuZGVzY3JpcHRpb258cXRMaXRl cmFsIH19OworeyUgZW5kaWYgLSV9CisKK3slIGlmIGRhdGEucHJvbmFtZXNw YWNlICV9CisKK0FMVEVSIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19k YXRhLnByb25hbWVzcGFjZSwgbmFtZSkgfX17JSBpZiBvX2RhdGEucHJvYXJn dHlwZW5hbWVzICV9KHt7IG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgfX0peyUg ZW5kaWYgJX0KKworICAgIFNFVCBTQ0hFTUEge3sgY29ubnxxdElkZW50KGRh dGEucHJvbmFtZXNwYWNlKSB9fTsKK3slIGVuZGlmIC0lfQorCit7JSBlbmRp ZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS4yX3BsdXMvdmFyaWFibGVz LnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJv Y2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL3ZhcmlhYmxlcy5zcWwKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTIzM2M3MQotLS0gL2Rl di9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL3ZhcmlhYmxlcy5zcWwK QEAgLTAsMCArMSw2IEBACitTRUxFQ1QKKyAgICBuYW1lLCB2YXJ0eXBlLCBt aW5fdmFsLCBtYXhfdmFsLCBlbnVtdmFscworRlJPTQorICAgIHBnX3NldHRp bmdzCitXSEVSRQorICAgIGNvbnRleHQgaW4gKCd1c2VyJywgJ3N1cGVydXNl cicpOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvYWNsLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BwYXMvc3FsLzkuNV9wbHVzL2FjbC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMC4uYWQzZTBkMQotLS0gL2Rldi9udWxsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJl L3BwYXMvc3FsLzkuNV9wbHVzL2FjbC5zcWwKQEAgLTAsMCArMSwzNSBAQAor U0VMRUNUCisgICAgQ09BTEVTQ0UoZ3Qucm9sbmFtZSwgJ3B1YmxpYycpIEFT IGdyYW50ZWUsCisgICAgZy5yb2xuYW1lIEFTIGdyYW50b3IsIGFycmF5X2Fn Zyhwcml2aWxlZ2VfdHlwZSkgQVMgcHJpdmlsZWdlcywKKyAgICBhcnJheV9h Z2coaXNfZ3JhbnRhYmxlKSBBUyBncmFudGFibGUKK0ZST00KKyAgICAoU0VM RUNUCisgICAgICAgIGQuZ3JhbnRlZSwgZC5ncmFudG9yLCBkLmlzX2dyYW50 YWJsZSwKKyAgICAgICAgQ0FTRSBkLnByaXZpbGVnZV90eXBlCisgICAgICAg IFdIRU4gJ0NPTk5FQ1QnIFRIRU4gJ2MnCisgICAgICAgIFdIRU4gJ0NSRUFU RScgVEhFTiAnQycKKyAgICAgICAgV0hFTiAnREVMRVRFJyBUSEVOICdkJwor ICAgICAgICBXSEVOICdFWEVDVVRFJyBUSEVOICdYJworICAgICAgICBXSEVO ICdJTlNFUlQnIFRIRU4gJ2EnCisgICAgICAgIFdIRU4gJ1JFRkVSRU5DRVMn IFRIRU4gJ3gnCisgICAgICAgIFdIRU4gJ1NFTEVDVCcgVEhFTiAncicKKyAg ICAgICAgV0hFTiAnVEVNUE9SQVJZJyBUSEVOICdUJworICAgICAgICBXSEVO ICdUUklHR0VSJyBUSEVOICd0JworICAgICAgICBXSEVOICdUUlVOQ0FURScg VEhFTiAnRCcKKyAgICAgICAgV0hFTiAnVVBEQVRFJyBUSEVOICd3JworICAg ICAgICBXSEVOICdVU0FHRScgVEhFTiAnVScKKyAgICAgICAgRUxTRSAnVU5L Tk9XTicKKyAgICAgICAgRU5EIEFTIHByaXZpbGVnZV90eXBlCisgICAgRlJP TQorICAgICAgICAoU0VMRUNUCisgICAgICAgICAgICAoZCkuZ3JhbnRlZSBB UyBncmFudGVlLCAoZCkuZ3JhbnRvciBBUyBncmFudG9yLAorICAgICAgICAg ICAgKGQpLmlzX2dyYW50YWJsZSBBUyBpc19ncmFudGFibGUsCisgICAgICAg ICAgICAoZCkucHJpdmlsZWdlX3R5cGUgQVMgcHJpdmlsZWdlX3R5cGUKKyAg ICAgICAgRlJPTQorICAgICAgICAgICAgKFNFTEVDVCBhY2xleHBsb2RlKGRi LnByb2FjbCkgQVMgZCBGUk9NIHBnX3Byb2MgZGIKKyAgICAgICAgICAgIFdI RVJFIGRiLm9pZCA9IHt7Zm5pZH19OjpPSUQpIGEKKyAgICAgICAgKSBkCisg ICAgKSBkCisgICAgTEVGVCBKT0lOIHBnX2NhdGFsb2cucGdfcm9sZXMgZyBP TiAoZC5ncmFudG9yID0gZy5vaWQpCisgICAgTEVGVCBKT0lOIHBnX2NhdGFs b2cucGdfcm9sZXMgZ3QgT04gKGQuZ3JhbnRlZSA9IGd0Lm9pZCkKK0dST1VQ IEJZIGcucm9sbmFtZSwgZ3Qucm9sbmFtZTsKZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuNV9wbHVzL2NyZWF0ZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9j cmVhdGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmUwOWYxNmUKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1 cy9jcmVhdGUuc3FsCkBAIC0wLDAgKzEsNTUgQEAKK3slIGltcG9ydCAnbWFj cm9zL2Z1bmN0aW9ucy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9 Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3Jv cycgYXMgUFJJVklMRUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlv bnMvdmFyaWFibGUubWFjcm9zJyBhcyBWQVJJQUJMRSAlfQoreyUgc2V0IGlz X2NvbHVtbnMgPSBbXSAlfQoreyUgaWYgZGF0YSAlfQorQ1JFQVRFIFBST0NF RFVSRSB7eyBjb25ufHF0SWRlbnQoZGF0YS5wcm9uYW1lc3BhY2UsIGRhdGEu bmFtZSkgfX17JSBpZiBkYXRhCisuYXJndW1lbnRzICV9KAoreyUgZm9yIHAg aW4gZGF0YS5hcmd1bWVudHMgJX17e3AuYXJnbW9kZX19eyUgaWYgcC5hcmdu YW1lICV9IHt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUpfX17JSBlbmRpZiAl fXslIGlmIHAuYXJndHlwZSAlfSB7e3AuYXJndHlwZX19eyUgZW5kaWYgJX17 JSBpZiBwLmFyZ2RlZnZhbCAlfSBERUZBVUxUIHt7cC5hcmdkZWZ2YWx9fXsl IGVuZGlmICV9Cit7JSBpZiBub3QgbG9vcC5sYXN0ICV9LHslIGVuZGlmICV9 Cit7JSBlbmRmb3IgJX0pCit7JSBlbmRpZiAlfQorCit7eyBkYXRhLnByb3Zv bGF0aWxlIH19eyUgaWYgZGF0YS5wcm9sZWFrcHJvb2YgJX0gTEVBS1BST09G eyUgZWxzZSAlfSBOT1QgTEVBS1BST09GeyUgZW5kaWYgJX0KK3slIGlmIGRh dGEucHJvaXNzdHJpY3QgJX0gU1RSSUNUeyUgZW5kaWYgJX0KK3slIGlmIGRh dGEucHJvc2VjZGVmICV9IFNFQ1VSSVRZIERFRklORVJ7JSBlbmRpZiAlfXsl IGlmIGRhdGEucHJvY29zdCAlfQorCitDT1NUIHt7ZGF0YS5wcm9jb3N0fHF0 TGl0ZXJhbH19eyUgZW5kaWYgJX17JSBpZiBkYXRhLnByb3Jvd3MgJX0KKwor Uk9XUyB7e2RhdGEucHJvcm93c3xxdExpdGVyYWx9fXslIGVuZGlmIC0lfXsl IGlmIGRhdGEudmFyaWFibGVzICV9CisKK3slIGZvciB2IGluIGRhdGEudmFy aWFibGVzICV9CisKK1NFVCB7eyBjb25ufHF0SWRlbnQodi5uYW1lKSB9fT17 eyB2LnZhbHVlfHF0TGl0ZXJhbCB9fXslIGVuZGZvciAtJX0KK3slIGVuZGlm ICV9CisKK0FTCit7eyBkYXRhLnByb3NyYyB9fTsKKworeyUgaWYgZGF0YS5h Y2wgJX0KK3slIGZvciBwIGluIGRhdGEuYWNsICV9CisKK3t7IFBSSVZJTEVH RS5TRVQoY29ubiwgIlBST0NFRFVSRSIsIHAuZ3JhbnRlZSwgZGF0YS5uYW1l LCBwLndpdGhvdXRfZ3JhbnQsIHAKKy53aXRoX2dyYW50LCBkYXRhLnByb25h bWVzcGFjZSwgZGF0YS5mdW5jX2FyZ3MpfX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgLSV9CisKK3slIGlmIGRhdGEuZGVzY3JpcHRpb24gJX0KKworQ09N TUVOVCBPTiBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KGRhdGEucHJvbmFt ZXNwYWNlLCBkYXRhLm5hbWUpIH19eyUgaWYKK2RhdGEuZnVuY19hcmdzICV9 KHt7ZGF0YS5mdW5jX2FyZ3N9fSkgeyUgZW5kaWYgJX0KKworICAgIElTICd7 eyBkYXRhLmRlc2NyaXB0aW9uIH19JzsKK3slIGVuZGlmIC0lfQorCit7JSBp ZiBkYXRhLnNlY2xhYmVscyAlfQoreyUgZm9yIHIgaW4gZGF0YS5zZWNsYWJl bHMgJX0KK3slIGlmIHIubGFiZWwgYW5kIHIucHJvdmlkZXIgJX0KKwore3sg U0VDTEFCTEUuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBkYXRhLm5hbWUsIHIu cHJvdmlkZXIsIHIubGFiZWwsIGRhdGEKKy5wcm9uYW1lc3BhY2UsIGRhdGEu ZnVuY19hcmdzKSB9fQoreyUgZW5kaWYgJX0KK3slIGVuZGZvciAlfQoreyUg ZW5kaWYgLSV9CisKK3slIGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3Nx bC85LjVfcGx1cy9kZWxldGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvZGVs ZXRlLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x ODcwMWVjCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMv ZGVsZXRlLnNxbApAQCAtMCwwICsxLDIxIEBACit7JSBpZiBzY2lkIGFuZCBm bmlkICV9CitTRUxFQ1QKKyAgICBwci5wcm9uYW1lIGFzIG5hbWUsICcoJyB8 fCBDT0FMRVNDRShwZ19jYXRhbG9nCisgICAgLnBnX2dldF9mdW5jdGlvbl9p ZGVudGl0eV9hcmd1bWVudHMocHIub2lkKSwgJycpIHx8ICcpJyBhcyBmdW5j X2FyZ3MsCisgICAgbnNwbmFtZQorRlJPTQorICAgIHBnX3Byb2MgcHIKK0pP SU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lkPXByb3JldHR5cGUKK0pP SU4KKyAgICBwZ19uYW1lc3BhY2UgbnNwIE9OIG5zcC5vaWQ9cHIucHJvbmFt ZXNwYWNlCitXSEVSRQorICAgIHByb2lzYWdnID0gRkFMU0UKKyAgICBBTkQg cHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1l IE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCisgICAgQU5E IHByLm9pZCA9IHt7Zm5pZH19OworeyUgZW5kaWYgJX0KKworeyUgaWYgbmFt ZSAlfQorRFJPUCBQUk9DRURVUkUge3sgY29ubnxxdElkZW50KG5zcG5hbWUs IG5hbWUpIH19e3tmdW5jX2FyZ3N9fXslIGlmIGNhc2NhZGUgJX0gQ0FTQ0FE RXslIGVuZGlmICV9OworeyUgZW5kaWYgJX0KZGlmZiAtLWdpdCBhL3dlYi9w Z2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNl cy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMv c3FsLzkuNV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzku NV9wbHVzL2dldF9kZWZpbml0aW9uLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwLi5jNjM1ZjFlCi0tLSAvZGV2L251bGwKKysrIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS41X3BsdXMvZ2V0X2RlZmluaXRpb24uc3FsCkBAIC0wLDAg KzEsMTIgQEAKK1NFTEVDVAorICAgIHBnX2dldF9mdW5jdGlvbmRlZih7e2Zu aWR9fTo6b2lkKSBBUyBmdW5jX2RlZiwKKyAgICBuc3BuYW1lIHx8ICcuJyB8 fCBwci5wcm9uYW1lIHx8ICcoJyB8fCBDT0FMRVNDRShwZ19jYXRhbG9nCisg ICAgLnBnX2dldF9mdW5jdGlvbl9pZGVudGl0eV9hcmd1bWVudHMocHIub2lk KSwgJycpIHx8ICcpJyBhcyBuYW1lCitGUk9NCisgICAgcGdfcHJvYyBwcgor Sk9JTgorICAgIHBnX25hbWVzcGFjZSBuc3AgT04gbnNwLm9pZD1wci5wcm9u YW1lc3BhY2UKK1dIRVJFCisgICAgcHJvaXNhZ2cgPSBGQUxTRQorICAgIEFO RCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCisgICAgQU5EIHByLm9p ZCA9IHt7Zm5pZH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVf cGx1cy9nZXRfbGFuZ3VhZ2VzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2dl dF9sYW5ndWFnZXMuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAuLmY4MWRkZmIKLS0tIC9kZXYvbnVsbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85 LjVfcGx1cy9nZXRfbGFuZ3VhZ2VzLnNxbApAQCAtMCwwICsxLDQgQEAKK1NF TEVDVAorICAgIGxhbm5hbWUgYXMgbGFiZWwsIGxhbm5hbWUgYXMgdmFsdWUK K0ZST00KKyAgICBwZ19sYW5ndWFnZTsKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3Fs LzkuNV9wbHVzL2dldF9vaWQuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvZ2V0 X29pZC5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u MmJjNzZhMgotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVz L2dldF9vaWQuc3FsCkBAIC0wLDAgKzEsMTcgQEAKK1NFTEVDVAorICAgIHBy Lm9pZCwgcHIucHJvbmFtZSB8fCAnKCcgfHwgQ09BTEVTQ0UocGdfY2F0YWxv ZworICAgIC5wZ19nZXRfZnVuY3Rpb25faWRlbnRpdHlfYXJndW1lbnRzKHBy Lm9pZCksICcnKSB8fCAnKScgYXMgbmFtZSwKKyAgICBsYW5uYW1lLCBwZ19n ZXRfdXNlcmJ5aWQocHJvb3duZXIpIGFzIGZ1bmNvd25lcgorRlJPTQorICAg IHBnX3Byb2MgcHIKK0pPSU4KKyAgICBwZ190eXBlIHR5cCBPTiB0eXAub2lk PXByb3JldHR5cGUKK0pPSU4KKyAgICBwZ19sYW5ndWFnZSBsbmcgT04gbG5n Lm9pZD1wcm9sYW5nCitKT0lOCisgICAgcGdfbmFtZXNwYWNlIG5zcCBPTiBu c3Aub2lkPXByLnByb25hbWVzcGFjZQorICAgIEFORCBuc3AubnNwbmFtZT17 eyBuc3BuYW1lfHF0TGl0ZXJhbCB9fQorV0hFUkUKKyAgICBwcm9pc2FnZyA9 IEZBTFNFCisgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdl dmVudF90cmlnZ2VyJykKKyAgICBBTkQgcHIucHJvbmFtZSA9IHt7IG5hbWV8 cXRMaXRlcmFsIH19OwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMv Z2V0X291dF90eXBlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9nZXRfb3V0 X3R5cGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw Li42NGExMTg3Ci0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3Bs dXMvZ2V0X291dF90eXBlcy5zcWwKQEAgLTAsMCArMSw2IEBACitTRUxFQ1QK KyAgICBmb3JtYXRfdHlwZShvaWQsIE5VTEwpIEFTIG91dF9hcmdfdHlwZQor RlJPTQorICAgIHBnX3R5cGUKK1dIRVJFCisgICAgb2lkID0ge3sgb3V0X2Fy Z19vaWQgfX06Om9pZDsKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVz L2dldF9zY2hlbWEuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvZ2V0X3NjaGVt YS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI3 ZDRiOQotLS0gL2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL2dl dF9zY2hlbWEuc3FsCkBAIC0wLDAgKzEsNiBAQAorU0VMRUNUCisgICAgbnNw bmFtZQorRlJPTQorICAgIHBnX25hbWVzcGFjZQorV0hFUkUKKyAgICBvaWQg PSB7eyBzY2lkIH19OjpvaWQ7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVf cGx1cy9nZXRfdHlwZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvZ2V0X3R5 cGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4y YTU1ODJlCi0tLSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMv Z2V0X3R5cGVzLnNxbApAQCAtMCwwICsxLDIwIEBACitTRUxFQ1QKKyAgICAq CitGUk9NCisgICAgKFNFTEVDVAorICAgICAgICBmb3JtYXRfdHlwZSh0Lm9p ZCxOVUxMKSBBUyB0eXBuYW1lLAorICAgICAgICBDQVNFIFdIRU4gdHlwZWxl bSA+IDAgVEhFTiB0eXBlbGVtIEVMU0UgdC5vaWQgRU5EIGFzIGVsZW1vaWQs IHR5cGxlbiwgdHlwdHlwZSwgdC5vaWQsIG5zcG5hbWUsCisgICAgICAgIChT RUxFQ1QgQ09VTlQoMSkgRlJPTSBwZ190eXBlIHQyIFdIRVJFIHQyLnR5cG5h bWUgPSB0LnR5cG5hbWUpID4gMSBBUyBpc2R1cAorICAgIEZST00KKyAgICAg ICAgcGdfdHlwZSB0CisgICAgSk9JTgorICAgICAgICBwZ19uYW1lc3BhY2Ug bnNwIE9OIHR5cG5hbWVzcGFjZT1uc3Aub2lkCisgICAgV0hFUkUKKyAgICAg ICAgKE5PVCAodHlwbmFtZSA9ICd1bmtub3duJyBBTkQgbnNwbmFtZSA9ICdw Z19jYXRhbG9nJykpCisgICAgQU5ECisgICAgICAgICgKKyAgICAgICAgICAg IHR5cHR5cGUgSU4gKCdiJywgJ2MnLCAnZCcsICdlJywgJ3AnLCAncicpCisg ICAgICAgICAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCdhbnknLCAndHJpZ2dl cicsICdsYW5ndWFnZV9oYW5kbGVyJywgJ2V2ZW50X3RyaWdnZXInKQorICAg ICAgICApCisgICAgKSBBUyBkdW1teQorT1JERVIgQlkgbnNwbmFtZSA8PiAn cGdfY2F0YWxvZycsIG5zcG5hbWUgPD4gJ3B1YmxpYycsIG5zcG5hbWUsIDE7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9ub2RlLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bw YXMvc3FsLzkuNV9wbHVzL25vZGUuc3FsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAuLjMwY2FiOGQKLS0tIC9kZXYvbnVsbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9w cGFzL3NxbC85LjVfcGx1cy9ub2RlLnNxbApAQCAtMCwwICsxLDE5IEBACitT RUxFQ1QKKyAgICBwci5vaWQsIHByLnByb25hbWUgfHwgJygnIHx8IENPQUxF U0NFKHBnX2NhdGFsb2cKKyAgICAucGdfZ2V0X2Z1bmN0aW9uX2lkZW50aXR5 X2FyZ3VtZW50cyhwci5vaWQpLCAnJykgfHwgJyknIEFTIG5hbWUsCisgICAg bGFubmFtZSwgcGdfZ2V0X3VzZXJieWlkKHByb293bmVyKSBBUyBmdW5jb3du ZXIsIGRlc2NyaXB0aW9uCitGUk9NCisgICAgcGdfcHJvYyBwcgorSk9JTgor ICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJvcmV0dHlwZQorSk9JTgor ICAgIHBnX2xhbmd1YWdlIGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQg T1VURVIgSk9JTgorICAgIHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9i am9pZD1wci5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2Ns YXNzKQorV0hFUkUKKyAgICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHBy LnByb3R5cGUgPSAnMSc6OmNoYXIKKyAgICBBTkQgcHJvbmFtZXNwYWNlID0g e3tzY2lkfX06Om9pZAorICAgIEFORCB0eXBuYW1lIE5PVCBJTiAoJ3RyaWdn ZXInLCAnZXZlbnRfdHJpZ2dlcicpCitPUkRFUiBCWQorICAgIHByb25hbWU7 CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxh dGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9wcm9wZXJ0aWVzLnNx bCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2Vk dXJlL3BwYXMvc3FsLzkuNV9wbHVzL3Byb3BlcnRpZXMuc3FsCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZmNzgyOTgKLS0tIC9kZXYv bnVsbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy9wcm9wZXJ0aWVzLnNxbApA QCAtMCwwICsxLDMxIEBACitTRUxFQ1QKKyAgICBwci5vaWQsIHByLnhtaW4s IHByLiosIHByLnByb3NyYyBBUyBwcm9zcmNfYywKKyAgICBwci5wcm9uYW1l IEFTIG5hbWUsIHBnX2dldF9mdW5jdGlvbl9yZXN1bHQocHIub2lkKSBBUyBw cm9yZXR0eXBlbmFtZSwKKyAgICB0eXBucy5uc3BuYW1lIEFTIHR5cG5zcCwg bGFubmFtZSwgcHJvYXJnbmFtZXMsIG9pZHZlY3RvcnR5cGVzKHByb2FyZ3R5 cGVzKSBBUyBwcm9hcmd0eXBlbmFtZXMsCisgICAgcGdfZ2V0X2V4cHIocHJv YXJnZGVmYXVsdHMsICdwZ19jYXRhbG9nLnBnX2NsYXNzJzo6cmVnY2xhc3Mp IEFTIHByb2FyZ2RlZmF1bHR2YWxzLAorICAgIHByb25hcmdkZWZhdWx0cywg cHJvY29uZmlnLCBwZ19nZXRfdXNlcmJ5aWQocHJvb3duZXIpIEFTIGZ1bmNv d25lciwgZGVzY3JpcHRpb24sCisgICAgKFNFTEVDVAorICAgICAgICBhcnJh eV9hZ2cocHJvdmlkZXIgfHwgJz0nIHx8IGxhYmVsKQorICAgIEZST00KKyAg ICAgICAgcGdfc2hzZWNsYWJlbCBzbDEKKyAgICBXSEVSRQorICAgICAgICBz bDEub2Jqb2lkPXByLm9pZCkgQVMgc2VjbGFiZWxzCitGUk9NCisgICAgcGdf cHJvYyBwcgorSk9JTgorICAgIHBnX3R5cGUgdHlwIE9OIHR5cC5vaWQ9cHJv cmV0dHlwZQorSk9JTgorICAgIHBnX25hbWVzcGFjZSB0eXBucyBPTiB0eXBu cy5vaWQ9dHlwLnR5cG5hbWVzcGFjZQorSk9JTgorICAgIHBnX2xhbmd1YWdl IGxuZyBPTiBsbmcub2lkPXByb2xhbmcKK0xFRlQgT1VURVIgSk9JTgorICAg IHBnX2Rlc2NyaXB0aW9uIGRlcyBPTiAoZGVzLm9iam9pZD1wci5vaWQgQU5E IGRlcy5jbGFzc29pZD0ncGdfcHJvYyc6OnJlZ2NsYXNzKQorV0hFUkUKKyAg ICBwcm9pc2FnZyA9IEZBTFNFCisgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7 c2NpZH19OjpvaWQKKyAgICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2Vy JywgJ2V2ZW50X3RyaWdnZXInKQoreyUgaWYgZm5pZCAlfQorICAgIEFORCBw ci5vaWQgPSB7e2ZuaWR9fTo6b2lkCit7JSBlbmRpZiAlfQorT1JERVIgQlkK KyAgICBwcm9uYW1lOwpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMv dXBkYXRlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0 ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL3VwZGF0ZS5zcWwKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOGJmNjc3MAotLS0g L2Rldi9udWxsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuNV9wbHVzL3VwZGF0ZS5zcWwK QEAgLTAsMCArMSwxMjggQEAKK3slIGltcG9ydCAnbWFjcm9zL2Z1bmN0aW9u cy9zZWN1cml0eS5tYWNyb3MnIGFzIFNFQ0xBQkxFICV9Cit7JSBpbXBvcnQg J21hY3Jvcy9mdW5jdGlvbnMvcHJpdmlsZWdlLm1hY3JvcycgYXMgUFJJVklM RUdFICV9Cit7JSBpbXBvcnQgJ21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFibGUu bWFjcm9zJyBhcyBWQVJJQUJMRSAlfXslIGlmIGRhdGEgJX0KK3slIHNldCBu YW1lID0gb19kYXRhLm5hbWUgJX0KK3slIGlmIGRhdGEubmFtZSAlfQoreyUg aWYgZGF0YS5uYW1lICE9IG9fZGF0YS5uYW1lICV9CitBTFRFUiBQUk9DRURV UkUge3sgY29ubnxxdElkZW50KG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0 YS5uYW1lKSB9fXslIGlmIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMgJX0oe3sg b19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSl7JSBlbmRpZiAlfQorCisgICAg UkVOQU1FIFRPIHt7IGNvbm58cXRJZGVudChkYXRhLm5hbWUpIH19OworeyUg c2V0IG5hbWUgPSBkYXRhLm5hbWUgJX0KK3slIGVuZGlmICV9CisKK3slIGVu ZGlmIC0lfQoreyUgaWYgZGF0YS5jaGFuZ2VfZnVuYyAgJX0KK0NSRUFURSBP UiBSRVBMQUNFIFBST0NFRFVSRSB7eyBjb25ufHF0SWRlbnQob19kYXRhLnBy b25hbWVzcGFjZSwgbmFtZSkgfX17JSBpZiBkYXRhLmFyZ3VtZW50cyAlfSgK K3slIGZvciBwIGluIGRhdGEuYXJndW1lbnRzICV9eyUgaWYgcC5hcmdtb2Rl ICV9e3twLmFyZ21vZGV9fXslIGVuZGlmICV9eyUgaWYgcC5hcmduYW1lICV9 IHt7IGNvbm58cXRJZGVudChwLmFyZ25hbWUpIH19eyUgZW5kaWYgJX17JSBp ZiBwLmFyZ3R5cGUgJX0ge3twLmFyZ3R5cGV9fXslIGVuZGlmICV9eyUgaWYg cC5hcmdkZWZ2YWwgJX0gREVGQVVMVCB7e3AuYXJnZGVmdmFsfX17JSBlbmRp ZiAlfQoreyUgaWYgbm90IGxvb3AubGFzdCAlfSwgeyUgZW5kaWYgJX0KK3sl IGVuZGZvciAlfQorKQoreyUgZW5kaWYgJX0KKworeyUgaWYgKCdwcm9sZWFr cHJvb2YnIGluIGRhdGEgYW5kIGRhdGEucHJvbGVha3Byb29mKSBvciAoJ3By b2xlYWtwcm9vZicgbm90IGluIGRhdGEgYW5kIG9fZGF0YS5wcm9sZWFrcHJv b2YpICV9TEVBS1BST09GeyUgZWxzZSAlfU5PVCBMRUFLUFJPT0Z7JSBlbmRp ZiAlfQoreyUgaWYgKCdwcm9pc3N0cmljdCcgaW4gZGF0YSBhbmQgZGF0YS5w cm9pc3N0cmljdCkgb3IgKCdwcm9pc3N0cmljdCcgbm90IGluIGRhdGEgYW5k IG9fZGF0YS5wcm9pc3N0cmljdCkgJX0gU1RSSUNUeyUgZW5kaWYgJX0KK3sl IGlmICgncHJvc2VjZGVmJyBpbiBkYXRhIGFuZCBkYXRhLnByb3NlY2RlZikg b3IgKCdwcm9zZWNkZWYnIG5vdCBpbiBkYXRhIGFuZCBvX2RhdGEucHJvc2Vj ZGVmKSAlfSBTRUNVUklUWSBERUZJTkVSeyUgZW5kaWYgJX17JSBpZiBkYXRh LnByb2Nvc3QgJX0KKworQ09TVCB7e2RhdGEucHJvY29zdH19eyUgZWxpZiBv X2RhdGEucHJvY29zdCAlfSBDT1NUIHt7b19kYXRhCisucHJvY29zdH19IHsl IGVuZGlmICV9eyUgaWYgZGF0YS5wcm9yb3dzICV9CisKK1JPV1Mge3tkYXRh LnByb3Jvd3N9fSB7JSBlbGlmIG9fZGF0YS5wcm9yb3dzICV9IFJPV1Mge3tv X2RhdGEKKy5wcm9yb3dzfX0geyUgZW5kaWYgLSV9eyUgaWYgZGF0YS5tZXJn ZWRfdmFyaWFibGVzICV9CisKK3slIGZvciB2IGluIGRhdGEubWVyZ2VkX3Zh cmlhYmxlcyAlfQorCitTRVQge3sgY29ubnxxdElkZW50KHYubmFtZSkgfX09 e3sgdi52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgLSV9Cit7JSBlbmRp ZiAlfQorCitBUworeyUgaWYgZGF0YS5wcm9zcmMgJX17eyBkYXRhLnByb3Ny YyB9fXslIGVsc2UgJX17eyBvX2RhdGEucHJvc3JjIH19eyUgZW5kaWYgLSV9 OworeyUgZW5kaWYgLSV9CisKKworeyUgaWYgZGF0YS5mdW5jb3duZXIgJX0K KworQUxURVIgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVudChvX2RhdGEucHJv bmFtZXNwYWNlLCBuYW1lKSB9fXslIGlmIG9fZGF0YS5wcm9hcmd0eXBlbmFt ZXMgJX0oe3sgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9fSl7JSBlbmRpZiAl fQorICAgIE9XTkVSIFRPIHt7IGRhdGEuZnVuY293bmVyIH19OworeyUgZW5k aWYgLSV9CisKKworeyMgVGhlIFNRTCBnZW5lcmF0ZWQgYmVsb3cgd2lsbCBj aGFuZ2UgcHJpdmlsZWRnZXMgI30KK3slIGlmIGRhdGEuYWNsICV9CisKK3sl IGlmICdkZWxldGVkJyBpbiBkYXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4g ZGF0YS5hY2wuZGVsZXRlZCAlfQore3sgUFJJVklMRUdFLlVOU0VUQUxMKGNv bm4sICdQUk9DRURVUkUnLCBwcml2LmdyYW50ZWUsIG5hbWUsIG9fZGF0YQor LnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVuYW1lcykgfX0KK3sl IGVuZGZvciAlfQoreyUgZW5kaWYgLSV9CisKK3slIGlmICdjaGFuZ2VkJyBp biBkYXRhLmRhdGFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuY2hh bmdlZCAlfQorCit7eyBQUklWSUxFR0UuVU5TRVRBTEwoY29ubiwgJ1BST0NF RFVSRScsIHByaXYuZ3JhbnRlZSwgbmFtZSwgb19kYXRhCisucHJvbmFtZXNw YWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQore3sgUFJJVklMRUdF LlNFVChjb25uLCAnUFJPQ0VEVVJFJywgcHJpdi5ncmFudGVlLCBuYW1lLCBw cml2LndpdGhvdXRfZ3JhbnQsCisgcHJpdi53aXRoX2dyYW50LCBvX2RhdGEu cHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUg ZW5kZm9yICV9Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgJ2FkZGVkJyBpbiBk YXRhLmFjbCAlfQoreyUgZm9yIHByaXYgaW4gZGF0YS5hY2wuYWRkZWQgJX0K K3t7IFBSSVZJTEVHRS5TRVQoY29ubiwgJ1BST0NFRFVSRScsIHByaXYuZ3Jh bnRlZSwgbmFtZSwgcHJpdi53aXRob3V0X2dyYW50LAorIHByaXYud2l0aF9n cmFudCwgb19kYXRhLnByb25hbWVzcGFjZSwgb19kYXRhLnByb2FyZ3R5cGVu YW1lcykgfX0KK3slIGVuZGZvciAlfQoreyUgZW5kaWYgJX0KK3slIGVuZGlm IC0lfQorCisKK3slIGlmIGRhdGEuY2hhbmdlX2Z1bmMgPT0gRmFsc2UgJX0K K3slIGlmIGRhdGEudmFyaWFibGVzICV9Cit7JSBpZiAnZGVsZXRlZCcgaW4g ZGF0YS52YXJpYWJsZXMgYW5kIGRhdGEudmFyaWFibGVzLmRlbGV0ZWR8bGVu Z3RoID4gMCAlfQorCit7eyBWQVJJQUJMRS5VTlNFVChjb25uLCAnUFJPQ0VE VVJFJywgbmFtZSwgZGF0YS52YXJpYWJsZXMuZGVsZXRlZCwgb19kYXRhCisu cHJvbmFtZXNwYWNlLCBvX2RhdGEucHJvYXJndHlwZW5hbWVzKSB9fQoreyUg ZW5kaWYgLSV9Cit7JSBpZiAnbWVyZ2VkX3ZhcmlhYmxlcycgaW4gZGF0YSBh bmQgZGF0YS5tZXJnZWRfdmFyaWFibGVzfGxlbmd0aCA+IDAgJX0KKwore3sg VkFSSUFCTEUuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBuYW1lLCBkYXRhLm1l cmdlZF92YXJpYWJsZXMsIG9fZGF0YS5wcm9uYW1lc3BhY2UsIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRpZiAtJX0KK3slIGVuZGlmIC0l fQoreyUgZW5kaWYgLSV9CisKK3slIHNldCBzZWNsYWJlbHMgPSBkYXRhLnNl Y2xhYmVscyAlfQoreyUgaWYgJ2RlbGV0ZWQnIGluIHNlY2xhYmVscyBhbmQg c2VjbGFiZWxzLmRlbGV0ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4g c2VjbGFiZWxzLmRlbGV0ZWQgJX0KKwore3sgU0VDTEFCTEUuVU5TRVQoY29u biwgJ1BST0NFRFVSRScsIG5hbWUsIHIucHJvdmlkZXIsIG9fZGF0YS5wcm9u YW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBlbmRm b3IgJX0KK3slIGVuZGlmIC0lfQoreyUgaWYgJ2FkZGVkJyBpbiBzZWNsYWJl bHMgYW5kIHNlY2xhYmVscy5hZGRlZHxsZW5ndGggPiAwICV9Cit7JSBmb3Ig ciBpbiBzZWNsYWJlbHMuYWRkZWQgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNv bm4sICdQUk9DRURVUkUnLCBuYW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5 X2xhYmVsLCBvX2RhdGEKKy5wcm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0 eXBlbmFtZXMpIH19Cit7JSBlbmRmb3IgJX0KK3slIGVuZGlmIC0lfQoreyUg aWYgJ2NoYW5nZWQnIGluIHNlY2xhYmVscyBhbmQgc2VjbGFiZWxzLmNoYW5n ZWR8bGVuZ3RoID4gMCAlfQoreyUgZm9yIHIgaW4gc2VjbGFiZWxzLmNoYW5n ZWQgJX0KKwore3sgU0VDTEFCTEUuU0VUKGNvbm4sICdQUk9DRURVUkUnLCBu YW1lLCByLnByb3ZpZGVyLCByLnNlY3VyaXR5X2xhYmVsLCBvX2RhdGEKKy5w cm9uYW1lc3BhY2UsIG9fZGF0YS5wcm9hcmd0eXBlbmFtZXMpIH19Cit7JSBl bmRmb3IgJX0KK3slIGVuZGlmIC0lfQorCit7JSBpZiBkYXRhLmRlc2NyaXB0 aW9uICV9CisKK0NPTU1FTlQgT04gUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVu dChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fXslIGlmIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMgJX0oe3sgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9 fSl7JSBlbmRpZiAlfQorCisgICAgSVMge3sgZGF0YS5kZXNjcmlwdGlvbnxx dExpdGVyYWwgfX07Cit7JSBlbmRpZiAtJX0KKworeyUgaWYgZGF0YS5wcm9u YW1lc3BhY2UgJX0KKworQUxURVIgUFJPQ0VEVVJFIHt7IGNvbm58cXRJZGVu dChvX2RhdGEucHJvbmFtZXNwYWNlLCBuYW1lKSB9fXslIGlmIG9fZGF0YS5w cm9hcmd0eXBlbmFtZXMgJX0oe3sgb19kYXRhLnByb2FyZ3R5cGVuYW1lcyB9 fSl7JSBlbmRpZiAlfQorCisgICAgU0VUIFNDSEVNQSB7eyBjb25ufHF0SWRl bnQoZGF0YS5wcm9uYW1lc3BhY2UpIH19OworeyUgZW5kaWYgLSV9CisKK3sl IGVuZGlmICV9CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjVfcGx1cy92YXJp YWJsZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvdmFyaWFibGVzLnNxbApu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi41MjMzYzcxCi0t LSAvZGV2L251bGwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMvdmFyaWFibGVz LnNxbApAQCAtMCwwICsxLDYgQEAKK1NFTEVDVAorICAgIG5hbWUsIHZhcnR5 cGUsIG1pbl92YWwsIG1heF92YWwsIGVudW12YWxzCitGUk9NCisgICAgcGdf c2V0dGluZ3MKK1dIRVJFCisgICAgY29udGV4dCBpbiAoJ3VzZXInLCAnc3Vw ZXJ1c2VyJyk7CmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZW1wbGF0 ZXMvbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5tYWNyb3MgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90ZW1wbGF0ZXMvbWFjcm9zL2Z1bmN0aW9ucy92YXJpYWJsZS5t YWNyb3MKaW5kZXggMDJmMzMwNy4uMDhkOWU1YiAxMDA2NDQKLS0tIGEvd2Vi L3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJh c2VzL3NjaGVtYXMvdGVtcGxhdGVzL21hY3Jvcy9mdW5jdGlvbnMvdmFyaWFi bGUubWFjcm9zCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RlbXBsYXRlcy9tYWNy b3MvZnVuY3Rpb25zL3ZhcmlhYmxlLm1hY3JvcwpAQCAtMiwxMiArMiwxMyBA QAogeyMgTWFjcm9zIGZvciBWYXJpYWJsZXMgKGZ1bmN0aW9ucyBtb2R1bGUp ICAgICAgI30KIHsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyN9CiB7JSBtYWNybyBTRVQoY29ubiwgb2JqZWN0X3R5 cGUsIG9iamVjdF9uYW1lLCBvcHRpb25zLCBzY2hlbWEsIGZ1bmNfYXJncykg LSV9Ci1BTFRFUiB7e29iamVjdF90eXBlfX0ge3sgY29ubnxxdElkZW50KHNj aGVtYSwgb2JqZWN0X25hbWUpIH19KHt7ZnVuY19hcmdzfX0pCi0gICAgU0VU ICh7JSBmb3Igb3B0IGluIG9wdGlvbnMgJX17JSBpZiBsb29wLmluZGV4ICE9 IDEgJX0KLSwgeyUgZW5kaWYgJX17eyBjb25ufHF0SWRlbnQob3B0Lm5hbWUp IH19PXt7IG9wdC52YWx1ZXxxdExpdGVyYWwgfX17JSBlbmRmb3IgJX0pOwor QUxURVIge3tvYmplY3RfdHlwZX19IHt7IGNvbm58cXRJZGVudChzY2hlbWEs IG9iamVjdF9uYW1lKSB9fSh7e2Z1bmNfYXJnc319KXslIGZvciBvcHQgaW4g b3B0aW9ucyAlfQorCisgICAgU0VUIHt7IGNvbm58cXRJZGVudChvcHQubmFt ZSkgfX09e3sgb3B0LnZhbHVlfHF0TGl0ZXJhbCB9fXslCitlbmRmb3IgJX07 CiB7JS0gZW5kbWFjcm8gJX0KIHslIG1hY3JvIFVOU0VUKGNvbm4sIG9iamVj dF90eXBlLCBvYmplY3RfbmFtZSwgb3B0aW9ucywgc2NoZW1hLCBmdW5jX2Fy Z3MpIC0lfQogQUxURVIge3tvYmplY3RfdHlwZX19IHt7IGNvbm58cXRJZGVu dChzY2hlbWEsIG9iamVjdF9uYW1lKSB9fSh7e2Z1bmNfYXJnc319KQotICAg IFJFU0VUICh7JSBmb3Igb3B0IGluIG9wdGlvbnMgJX17JSBpZiBsb29wLmlu ZGV4ICE9IDEgJX0KLSwgeyUgZW5kaWYgJX17eyBjb25ufHF0SWRlbnQob3B0 Lm5hbWUpIH19eyUgZW5kZm9yICV9KTsKKyAgICBSRVNFVCB7JSBmb3Igb3B0 IGluIG9wdGlvbnMgJX17JSBpZiBsb29wLmluZGV4ICE9IDEgJX0KKywgeyUg ZW5kaWYgJX17eyBjb25ufHF0SWRlbnQob3B0Lm5hbWUpIH19eyUgZW5kZm9y ICV9OwogeyUtIGVuZG1hY3JvICV9Cg== --001a11c2655ad0287c052dc2a4f5 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 --001a11c2655ad0287c052dc2a4f5--