Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1bWhxz-0004w0-DS for pgadmin-hackers@arkaria.postgresql.org; Mon, 08 Aug 2016 10:39:31 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84_2) (envelope-from ) id 1bWhxy-0005tw-Rs for pgadmin-hackers@arkaria.postgresql.org; Mon, 08 Aug 2016 10:39:30 +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_2) (envelope-from ) id 1bWhxs-0005tg-AK for pgadmin-hackers@postgresql.org; Mon, 08 Aug 2016 10:39:24 +0000 Received: from mail-it0-x22c.google.com ([2607:f8b0:4001:c0b::22c]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.84_2) (envelope-from ) id 1bWhxo-00071v-6d for pgadmin-hackers@postgresql.org; Mon, 08 Aug 2016 10:39:23 +0000 Received: by mail-it0-x22c.google.com with SMTP id x130so70482611ite.1 for ; Mon, 08 Aug 2016 03:39:19 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=enterprisedb-com.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to; bh=maqcXUQi3Eh49wGUhVw1sN9isBI/3cPuG4PXIj4CsBI=; b=ynjywBowQvqRbh2qdWkUvTGZLg6gnNOo5nbPI2DwBXPksA7abN0AF/THhrfots3PDO /aMTO+GsTOharwKrUD0qy+8tnvN1jQoHB34gonK5Rr0+GS42bqyw/fJlsHd8FqOFZgnG cCdndpxWYBK8UHKEjuDuWGXTQlFMYIVrzak2MI02cWNlPuLbP8frAxGUk3xoLnUlQdMn Pg+Lta320Iwr2BX4RfPQ25ZA7/BuSFBWYtbdORlg4pzzTriE1oF/rPj3TCNkPVTQzJcj C9EC9NdqlO8AbWFEvXiKT6wAL+nOVSzhupeb/V5cr+FzwW/T/+Y6X4+I6N05wPEphIru 69nA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=maqcXUQi3Eh49wGUhVw1sN9isBI/3cPuG4PXIj4CsBI=; b=d40DLIGbUdKFIHMyfdxnAqWtmeUmoKOlLpQ6AV9FTLEXUVbT9sa6Lu5FjkkIvL3/EK zb26jJPxO1PEE26MxjU9PtTPEGwAgIV+sSyiOBDBfht3MJ+eLZwltg6bmUteo1BFF/ut 9FieQkteavAYIoly2RV4v7VFM0fPPYKP8b9r1eeqm1MDQSMB9nz6/IsiurSnqhFLgFos BGVaJinE8Z7Bmb43Kx/rMaV2lpJIgL/JUr9sowwux6Qaso6z1xH4XjwOaiEKwvD65fKw bNFGkxjEgPiDM+adOC94MhuJ+SODd9E2bgp8bMEINp//EMRwVQPU2cNBkXCER5OILlPp bp8g== X-Gm-Message-State: AEkooutJYgfbeYMXcoodfx2Q3UGWQqaeyrJNtY5fTdEo8Rrp745HhcPi1iztjQJV4HJEPGukXXlCIBBvGDfap+lr X-Received: by 10.36.129.213 with SMTP id q204mr17797178itd.38.1470652757887; Mon, 08 Aug 2016 03:39:17 -0700 (PDT) MIME-Version: 1.0 Received: by 10.36.17.70 with HTTP; Mon, 8 Aug 2016 03:39:17 -0700 (PDT) From: Akshay Joshi Date: Mon, 8 Aug 2016 16:09:17 +0530 Message-ID: Subject: RM #1250 Collection node counts To: pgadmin-hackers Content-Type: multipart/mixed; boundary=94eb2c08b1fc396eea05398d0797 X-Pg-Spam-Score: -1.2 (-) 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 --94eb2c08b1fc396eea05398d0797 Content-Type: multipart/alternative; boundary=94eb2c08b1fc396ee405398d0795 --94eb2c08b1fc396ee405398d0795 Content-Type: text/plain; charset=UTF-8 Hi All I have fixed the RM#1250 "Collection node counts". To fix this RM I need to do following changes - Move "check_precondition" function from module's view class to global level within that python file itself, so that module class will use it. - Modified "get_nodes" function of each module's class, run the sql query to count the number of objects and pass the count to "generate_browser_collection_node" function to display the collection count. - Reuse SQL queries which is used to fetch nodes. Make that query as inner query like "SELECT count(*) FROM( query ) AS collection_count". For that I'll have to remove semicolon's from some of the SQL queries. One case is not handled with this patch and that is on "Refresh" of collection node, count is not updated. If user refresh the parent node then it will be updated. I'll create a separate RM for that. Attached is the patch file. Please review it and let me know the review comments. -- *Akshay Joshi* *Principal Software Engineer * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* --94eb2c08b1fc396ee405398d0795 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi All

I have fixed the RM#1250 "C= ollection node counts". To fix this RM I need to do following changes<= /div>
  • Move "check_precondition" function from module&= #39;s view class to global level within that python file itself, so that mo= dule class will use it.=C2=A0
  • Modified "get_nodes" functi= on of each module's class, run the sql query to count the number of objects and pass the cou= nt to "generate_browser_collection_node" function to display the = collection count.
  • Reuse SQL queries which is used to fetch nodes. Make that query as inn= er query like "SELECT count(*) FROM( <node's> query =C2=A0) = AS collection_count". For that I'll have to remove semicolon's= from some of the SQL= queries.
One case is not handled with this patch and that is on &= quot;Refresh" of collection node, count is not updated. If user refres= h the parent node then it will be updated. I'll create a separate RM fo= r that.

Attached is the patch file. Please review = it and let me know the review comments. =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0

--
Aksh= ay Joshi


<= b>Phone: +91 20-3058-9517
Mobile: +91 976-788= -8246
--94eb2c08b1fc396ee405398d0795-- --94eb2c08b1fc396eea05398d0797 Content-Type: application/octet-stream; name="RM_1250.patch" Content-Disposition: attachment; filename="RM_1250.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_irlwff840 ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvY29sbGVjdGlvbi5w eSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvY29sbGVjdGlvbi5weQppbmRleCA5 N2Y1OGI2Li44MDRlOGIzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93 c2VyL2NvbGxlY3Rpb24ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9j b2xsZWN0aW9uLnB5CkBAIC03NiwxMCArNzYsMTAgQEAgY2xhc3MgQ29sbGVj dGlvbk5vZGVNb2R1bGUoUGdBZG1pbk1vZHVsZSwgUEdDaGlsZE1vZHVsZSk6 CiAgICAgICAgICAgICBvYmouc2V0ZGVmYXVsdChrZXksIGt3YXJnc1trZXld KQogICAgICAgICByZXR1cm4gb2JqCiAKLSAgICBkZWYgZ2VuZXJhdGVfYnJv d3Nlcl9jb2xsZWN0aW9uX25vZGUoc2VsZiwgcGFyZW50X2lkLCAqKmt3YXJn cyk6CisgICAgZGVmIGdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2Rl KHNlbGYsIHBhcmVudF9pZCwgY29sbGVjdGlvbl9jb3VudCwgKiprd2FyZ3Mp OgogICAgICAgICBvYmogPSB7CiAgICAgICAgICAgICAiaWQiOiAiY29sbC0l cy8lZCIgJSAoc2VsZi5ub2RlX3R5cGUsIHBhcmVudF9pZCksCi0gICAgICAg ICAgICAibGFiZWwiOiBzZWxmLmNvbGxlY3Rpb25fbGFiZWwsCisgICAgICAg ICAgICAibGFiZWwiOiBzZWxmLmNvbGxlY3Rpb25fbGFiZWwgKyAnICgnICsg c3RyKGNvbGxlY3Rpb25fY291bnQpICsgJyknLAogICAgICAgICAgICAgImlj b24iOiBzZWxmLmNvbGxlY3Rpb25faWNvbiwKICAgICAgICAgICAgICJpbm9k ZSI6IFRydWUsCiAgICAgICAgICAgICAiX3R5cGUiOiAnY29sbC0lcycgJSAo c2VsZi5ub2RlX3R5cGUpLApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL19faW5pdF9fLnB5CmluZGV4IGZhZmY0 ODguLjYzYzM4ZTUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvX19pbml0X18ucHkKQEAgLTIxLDcgKzIx LDcgQEAgZnJvbSBwZ2FkbWluLnV0aWxzLmFqYXggaW1wb3J0IG1ha2VfanNv bl9yZXNwb25zZSwgXAogICAgIG1ha2VfcmVzcG9uc2UgYXMgYWpheF9yZXNw b25zZQogZnJvbSBwZ2FkbWluLnV0aWxzLm1lbnUgaW1wb3J0IE1lbnVJdGVt CiAKLWZyb20gcGdhZG1pbi5tb2RlbCBpbXBvcnQgZGIsIFNlcnZlckdyb3Vw Citmcm9tIHBnYWRtaW4ubW9kZWwgaW1wb3J0IGRiLCBTZXJ2ZXJHcm91cCwg U2VydmVyCiAKIAogY2xhc3MgU2VydmVyR3JvdXBNb2R1bGUoQnJvd3NlclBs dWdpbk1vZHVsZSk6CkBAIC0zMyw5ICszMywxNCBAQCBjbGFzcyBTZXJ2ZXJH cm91cE1vZHVsZShCcm93c2VyUGx1Z2luTW9kdWxlKToKICAgICAgICAgICAg IHVzZXJfaWQ9Y3VycmVudF91c2VyLmlkCiAgICAgICAgICkub3JkZXJfYnko ImlkIikKICAgICAgICAgZm9yIGlkeCwgZ3JvdXAgaW4gZW51bWVyYXRlKGdy b3Vwcyk6CisKKyAgICAgICAgICAgICMgRmluZCBudW1iZXIgb2Ygc2VydmVy cyBpbiB0aGlzIGdyb3VwCisgICAgICAgICAgICBzZXJ2ZXJzID0gU2VydmVy LnF1ZXJ5LmZpbHRlcl9ieSh1c2VyX2lkPWN1cnJlbnRfdXNlci5pZCwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNl cnZlcmdyb3VwX2lkPWdyb3VwLmlkKQorCiAgICAgICAgICAgICB5aWVsZCBz ZWxmLmdlbmVyYXRlX2Jyb3dzZXJfbm9kZSgKICAgICAgICAgICAgICAgICAi JWQiICUgKGdyb3VwLmlkKSwgTm9uZSwKLSAgICAgICAgICAgICAgICBncm91 cC5uYW1lLAorICAgICAgICAgICAgICAgIGdyb3VwLm5hbWUgKyAnICgnICsg c3RyKHNlcnZlcnMuY291bnQoKSkgKyAnKScsCiAgICAgICAgICAgICAgICAg Imljb24tJXMiICUgc2VsZi5ub2RlX3R5cGUsCiAgICAgICAgICAgICAgICAg VHJ1ZSwKICAgICAgICAgICAgICAgICBzZWxmLm5vZGVfdHlwZSwKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9fX2luaXRfXy5w eQppbmRleCAzYjdjNTdiLi5jZjc2NTIzIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv X19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL19faW5pdF9fLnB5CkBAIC0zMCw2 ICszMCw0NSBAQCBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBn ZXRfZHJpdmVyCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklW RVIKIAogCitkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGFjdGlvbj1Ob25lKToK KyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEg ZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzCisgICAgZGF0YWJhc2UgY29u bmVjdGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0 YWNoZXMKKyAgICBtYW5hZ2VyLGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3Bl cnRpZXMgdG8gc2VsZgorICAgICIiIgorCisgICAgZGVmIHdyYXAoZik6Cisg ICAgICAgIEB3cmFwcyhmKQorICAgICAgICBkZWYgd3JhcHBlZChzZWxmLCAq YXJncywgKiprd2FyZ3MpOgorCisgICAgICAgICAgICBzZWxmLm1hbmFnZXIg PSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21h bmFnZXIoa3dhcmdzWydzaWQnXSkKKyAgICAgICAgICAgIGlmIGFjdGlvbiBh bmQgYWN0aW9uIGluIFsiZHJvcCJdOgorICAgICAgICAgICAgICAgIHNlbGYu Y29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKCkKKyAgICAgICAgICAg IGVsaWYgJ2RpZCcgaW4ga3dhcmdzOgorICAgICAgICAgICAgICAgIHNlbGYu Y29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2Rp ZCddKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICBzZWxm LmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbigpCisgICAgICAgICAg ICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8g YnJvd3NlcgorICAgICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25uZWN0 ZWQoKToKKyAgICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3Jl cXVpcmVkKAorICAgICAgICAgICAgICAgICAgICBfKCJDb25uZWN0aW9uIHRv IHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiKQorICAgICAgICAgICAgICAg ICkKKworICAgICAgICAgICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24K KyAgICAgICAgICAgICMgd2Ugd2lsbCBzZXQgdGVtcGxhdGUgcGF0aCBmb3Ig c3FsIHNjcmlwdHMKKyAgICAgICAgICAgIGlmIHZlciA+PSA5MDMwMDoKKyAg ICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAnZGF0YWJhc2Vz L3NxbC85LjNfcGx1cycKKyAgICAgICAgICAgIGVsaWYgdmVyID49IDkwMjAw OgorICAgICAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICdkYXRh YmFzZXMvc3FsLzkuMl9wbHVzJworICAgICAgICAgICAgZWxzZToKKyAgICAg ICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAnZGF0YWJhc2VzL3Nx bC85LjFfcGx1cycKKyAgICAgICAgICAgIHJldHVybiBmKHNlbGYsICphcmdz LCAqKmt3YXJncykKKworICAgICAgICByZXR1cm4gd3JhcHBlZAorCisgICAg cmV0dXJuIHdyYXAKKworCiBjbGFzcyBEYXRhYmFzZU1vZHVsZShDb2xsZWN0 aW9uTm9kZU1vZHVsZSk6CiAgICAgTk9ERV9UWVBFID0gJ2RhdGFiYXNlJwog ICAgIENPTExFQ1RJT05fTEFCRUwgPSBfKCJEYXRhYmFzZXMiKQpAQCAtNDAs MTIgKzc5LDI4IEBAIGNsYXNzIERhdGFiYXNlTW9kdWxlKENvbGxlY3Rpb25O b2RlTW9kdWxlKToKIAogICAgICAgICBzdXBlcihEYXRhYmFzZU1vZHVsZSwg c2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQogCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbihhY3Rpb249Im5vZGVzIikKICAgICBkZWYgZ2V0X25v ZGVzKHNlbGYsIGdpZCwgc2lkKToKICAgICAgICAgIiIiCiAgICAgICAgIEdl bmVyYXRlIHRoZSBjb2xsZWN0aW9uIG5vZGUKICAgICAgICAgIiIiCiAgICAg ICAgIGlmIHNlbGYuc2hvd19ub2RlOgotICAgICAgICAgICAgeWllbGQgc2Vs Zi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzaWQpCisgICAg ICAgICAgICBjb2xsZWN0aW9uX2NvdW50ID0gMAorICAgICAgICAgICAgbGFz dF9zeXN0ZW1fb2lkID0gMCBpZiBzZWxmLnNob3dfc3lzdGVtX29iamVjdHMg ZWxzZSBcCisgICAgICAgICAgICAgICAgKHNlbGYubWFuYWdlci5kYl9pbmZv W3NlbGYubWFuYWdlci5kaWRdKVsnZGF0bGFzdHN5c29pZCddCisKKyAgICAg ICAgICAgIGNvdW50X3NxbCA9ICdTRUxFQ1QgY291bnQoKikgRlJPTSggJwor ICAgICAgICAgICAgbm9kZV9zcWwgPSByZW5kZXJfdGVtcGxhdGUoCisgICAg ICAgICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ25v ZGVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICBsYXN0X3N5c3RlbV9vaWQ9 bGFzdF9zeXN0ZW1fb2lkCisgICAgICAgICAgICApCisgICAgICAgICAgICBj b3VudF9zcWwgKz0gbm9kZV9zcWwgKyAnICkgQVMgY29sbGVjdGlvbl9jb3Vu dCcKKworICAgICAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKGNvdW50X3NxbCkKKyAgICAgICAgICAgIGlmIHN0YXR1 czoKKyAgICAgICAgICAgICAgICBjb2xsZWN0aW9uX2NvdW50ID0gcnNldAor CisgICAgICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29s bGVjdGlvbl9ub2RlKHNpZCwgY29sbGVjdGlvbl9jb3VudCkKIAogICAgIEBw cm9wZXJ0eQogICAgIGRlZiBzY3JpcHRfbG9hZChzZWxmKToKQEAgLTExMSw0 NyArMTY2LDEwIEBAIGNsYXNzIERhdGFiYXNlVmlldyhQR0NoaWxkTm9kZVZp ZXcpOgogICAgICAgICB9XSwKICAgICAgICAgJ2dldF9lbmNvZGluZ3MnOiBb eydnZXQnOiAnZ2V0X2VuY29kaW5ncyd9LCB7J2dldCc6ICdnZXRfZW5jb2Rp bmdzJ31dLAogICAgICAgICAnZ2V0X2N0eXBlcyc6IFt7J2dldCc6ICdnZXRf Y3R5cGVzJ30sIHsnZ2V0JzogJ2dldF9jdHlwZXMnfV0sCi0gICAgICAgICd2 b3B0cyc6IFt7fSwgeydnZXQnOiAndmFyaWFibGVfb3B0aW9ucyd9XQorICAg ICAgICAndm9wdHMnOiBbe30sIHsnZ2V0JzogJ3ZhcmlhYmxlX29wdGlvbnMn fV0sCisgICAgICAgICdjb2xsJzogW3t9LCB7J2dldCc6ICdjb2xsZWN0aW9u J31dCiAgICAgfSkKIAotICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oYWN0 aW9uPU5vbmUpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBmdW5jdGlv biB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNr cwotICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5n IHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcwotICAgICAgICBtYW5hZ2Vy LGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgotICAg ICAgICAiIiIKLQotICAgICAgICBkZWYgd3JhcChmKToKLSAgICAgICAgICAg IEB3cmFwcyhmKQotICAgICAgICAgICAgZGVmIHdyYXBwZWQoc2VsZiwgKmFy Z3MsICoqa3dhcmdzKToKLQotICAgICAgICAgICAgICAgIHNlbGYubWFuYWdl ciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpLmNvbm5lY3Rpb25f bWFuYWdlcihrd2FyZ3NbJ3NpZCddKQotICAgICAgICAgICAgICAgIGlmIGFj dGlvbiBhbmQgYWN0aW9uIGluIFsiZHJvcCJdOgotICAgICAgICAgICAgICAg ICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbigpCi0g ICAgICAgICAgICAgICAgZWxpZiAnZGlkJyBpbiBrd2FyZ3M6Ci0gICAgICAg ICAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0 aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQotICAgICAgICAgICAgICAgIGVsc2U6 Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdl ci5jb25uZWN0aW9uKCkKLSAgICAgICAgICAgICAgICAjIElmIERCIG5vdCBj b25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8gYnJvd3NlcgotICAgICAg ICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6Ci0gICAg ICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQo Ci0gICAgICAgICAgICAgICAgICAgICAgICBfKCJDb25uZWN0aW9uIHRvIHRo ZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiKQotICAgICAgICAgICAgICAgICAg ICApCi0KLSAgICAgICAgICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVy c2lvbgotICAgICAgICAgICAgICAgICMgd2Ugd2lsbCBzZXQgdGVtcGxhdGUg cGF0aCBmb3Igc3FsIHNjcmlwdHMKLSAgICAgICAgICAgICAgICBpZiB2ZXIg Pj0gOTAzMDA6Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYudGVtcGxhdGVf cGF0aCA9ICdkYXRhYmFzZXMvc3FsLzkuM19wbHVzJwotICAgICAgICAgICAg ICAgIGVsaWYgdmVyID49IDkwMjAwOgotICAgICAgICAgICAgICAgICAgICBz ZWxmLnRlbXBsYXRlX3BhdGggPSAnZGF0YWJhc2VzL3NxbC85LjJfcGx1cycK LSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBz ZWxmLnRlbXBsYXRlX3BhdGggPSAnZGF0YWJhc2VzL3NxbC85LjFfcGx1cycK LSAgICAgICAgICAgICAgICByZXR1cm4gZihzZWxmLCAqYXJncywgKiprd2Fy Z3MpCi0KLSAgICAgICAgICAgIHJldHVybiB3cmFwcGVkCi0KLSAgICAgICAg cmV0dXJuIHdyYXAKLQogICAgIEBjaGVja19wcmVjb25kaXRpb24oYWN0aW9u PSJsaXN0IikKICAgICBkZWYgbGlzdChzZWxmLCBnaWQsIHNpZCk6CiAgICAg ICAgIGxhc3Rfc3lzdGVtX29pZCA9IDAgaWYgc2VsZi5ibHVlcHJpbnQuc2hv d19zeXN0ZW1fb2JqZWN0cyBlbHNlIFwKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9j YXN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9jYXN0cy9fX2luaXRfXy5weQpp bmRleCA4NmE3ZWNhLi5hNWUyZjM4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvY2Fz dHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2Nhc3RzL19faW5pdF9fLnB5 CkBAIC0yNSw2ICsyNSwzNiBAQCBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVy IGltcG9ydCBnZXRfZHJpdmVyCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVG QVVMVF9EUklWRVIKIAogCitkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgor ICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBk ZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVjayB0aGUKKyAgICBkYXRhYmFzZSBj b25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcuIEl0IHdpbGwgYWxzbyBh dHRhY2gKKyAgICBtYW5hZ2VyLCBjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9w ZXJ0aWVzIHRvIHNlbGYKKyAgICAiIiIKKworICAgIEB3cmFwcyhmKQorICAg IGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICMgSGVyZSBh cmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBnaWQs c2lkLGRpZAorICAgICAgICBzZWxmID0gYXJnc1swXQorICAgICAgICBzZWxm Lm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5jb25u ZWN0aW9uX21hbmFnZXIoa3dhcmdzWydzaWQnXSkKKyAgICAgICAgc2VsZi5j b25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlk J10pCisgICAgICAgICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVy biBlcnJvciB0byBicm93c2VyCisgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4u Y29ubmVjdGVkKCk6CisgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9u X3JlcXVpcmVkKAorICAgICAgICAgICAgICAgIGdldHRleHQoCisgICAgICAg ICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJl ZW4gbG9zdCEiCisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQor ICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgorICAgICAgICAj IHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzCisg ICAgICAgIGlmIHZlciA+PSA5MDEwMDoKKyAgICAgICAgICAgIHNlbGYudGVt cGxhdGVfcGF0aCA9ICdjYXN0L3NxbC85LjFfcGx1cycKKworICAgICAgICBy ZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICByZXR1cm4gd3JhcAor CisKIGNsYXNzIENhc3RNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgog ICAgICIiIgogICAgICBjbGFzcyBDYXN0TW9kdWxlKENvbGxlY3Rpb25Ob2Rl TW9kdWxlKQpAQCAtNTMsNiArODMsNyBAQCBjbGFzcyBDYXN0TW9kdWxlKENv bGxlY3Rpb25Ob2RlTW9kdWxlKToKICAgICBkZWYgX19pbml0X18oc2VsZiwg KmFyZ3MsICoqa3dhcmdzKToKICAgICAgICAgc3VwZXIoQ2FzdE1vZHVsZSwg c2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQogCisgICAgQGNoZWNr X3ByZWNvbmRpdGlvbgogICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBz aWQsIGRpZCk6CiAgICAgICAgICIiIgogICAgICAgICBHZW5lcmF0ZSB0aGUg Y29sbGVjdGlvbiBub2RlCkBAIC02MCw3ICs5MSwyMyBAQCBjbGFzcyBDYXN0 TW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKICAgICAgICAgOnBhcmFt IHNpZDogc2VydmVyIGlkCiAgICAgICAgIDpwYXJhbSBkaWQ6IGRhdGFiYXNl IGlkCiAgICAgICAgICIiIgotICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRl X2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKGRpZCkKKyAgICAgICAgY29sbGVj dGlvbl9jb3VudCA9IDAKKyAgICAgICAgbGFzdF9zeXN0ZW1fb2lkID0gMCBp ZiBzZWxmLnNob3dfc3lzdGVtX29iamVjdHMgZWxzZSBcCisgICAgICAgICAg ICAoc2VsZi5tYW5hZ2VyLmRiX2luZm9bc2VsZi5tYW5hZ2VyLmRpZF0pWydk YXRsYXN0c3lzb2lkJ10KKworICAgICAgICBjb3VudF9zcWwgPSAnU0VMRUNU IGNvdW50KCopIEZST00oICcKKyAgICAgICAgbm9kZV9zcWwgPSByZW5kZXJf dGVtcGxhdGUoCisgICAgICAgICAgICAiLyIuam9pbihbc2VsZi50ZW1wbGF0 ZV9wYXRoLCAnbm9kZXMuc3FsJ10pLAorICAgICAgICAgICAgZGF0bGFzdHN5 c29pZD1zZWxmLm1hbmFnZXIuZGJfaW5mb1tkaWRdWydkYXRsYXN0c3lzb2lk J10sCisgICAgICAgICAgICBzaG93c3lzb2JqPXNlbGYuc2hvd19zeXN0ZW1f b2JqZWN0cworICAgICAgICApCisgICAgICAgIGNvdW50X3NxbCArPSBub2Rl X3NxbCArICcgKSBBUyBjb2xsZWN0aW9uX2NvdW50JworCisgICAgICAgIHN0 YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihjb3VudF9z cWwpCisgICAgICAgIGlmIHN0YXR1czoKKyAgICAgICAgICAgIGNvbGxlY3Rp b25fY291bnQgPSByc2V0CisKKyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0 ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShkaWQsIGNvbGxlY3Rpb25fY291 bnQpCiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgbm9kZV9pbm9kZShzZWxm KToKQEAgLTE4OCwzNSArMjM1LDYgQEAgY2xhc3MgQ2FzdFZpZXcoUEdDaGls ZE5vZGVWaWV3KToKICAgICAgICAgICAgIDIwMCwgeydDb250ZW50LVR5cGUn OiAnYXBwbGljYXRpb24veC1qYXZhc2NyaXB0J30KICAgICAgICAgKQogCi0g ICAgZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKLSAgICAgICAgIiIiCi0g ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0 b3Igd2hpY2ggd2lsbCBjaGVjayB0aGUKLSAgICAgICAgZGF0YWJhc2UgY29u bmVjdGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LiBJdCB3aWxsIGFsc28gYXR0 YWNoCi0gICAgICAgIG1hbmFnZXIsIGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHBy b3BlcnRpZXMgdG8gc2VsZgotICAgICAgICAiIiIKLQotICAgICAgICBAd3Jh cHMoZikKLSAgICAgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKLSAg ICAgICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dh cmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAotICAgICAgICAgICAgc2VsZiA9 IGFyZ3NbMF0KLSAgICAgICAgICAgIHNlbGYubWFuYWdlciA9IGdldF9kcml2 ZXIoUEdfREVGQVVMVF9EUklWRVIpLmNvbm5lY3Rpb25fbWFuYWdlcihrd2Fy Z3NbJ3NpZCddKQotICAgICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5h Z2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCi0gICAgICAgICAg ICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8g YnJvd3NlcgotICAgICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25uZWN0 ZWQoKToKLSAgICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3Jl cXVpcmVkKAotICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KAotICAgICAg ICAgICAgICAgICAgICAgICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBo YXMgYmVlbiBsb3N0ISIKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAg ICAgICAgICAgICkKLSAgICAgICAgICAgIHZlciA9IHNlbGYubWFuYWdlci52 ZXJzaW9uCi0gICAgICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBh dGggZm9yIHNxbCBzY3JpcHRzCi0gICAgICAgICAgICBpZiB2ZXIgPj0gOTAx MDA6Ci0gICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2Nh c3Qvc3FsLzkuMV9wbHVzJwotCi0gICAgICAgICAgICByZXR1cm4gZigqYXJn cywgKiprd2FyZ3MpCi0KLSAgICAgICAgcmV0dXJuIHdyYXAKLQogICAgIEBj aGVja19wcmVjb25kaXRpb24KICAgICBkZWYgbGlzdChzZWxmLCBnaWQsIHNp ZCwgZGlkKToKICAgICAgICAgIiIiCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZl bnRfdHJpZ2dlcnMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZXZlbnRfdHJpZ2dl cnMvX19pbml0X18ucHkKaW5kZXggOWY0MzRlMS4uOWM2MjViMiAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2V2ZW50X3RyaWdnZXJzL19faW5pdF9fLnB5CisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9ldmVudF90cmlnZ2Vycy9fX2luaXRfXy5weQpAQCAtMjQsNiAr MjQsMzcgQEAgZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0 X2RyaXZlcgogZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVS CiAKIAorZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKKyAgICAiIiIKKyAg ICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdo aWNoIHdpbGwgY2hlY2tzCisgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZv cmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICBt YW5hZ2VyLGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2Vs ZgorICAgICIiIgorCisgICAgQHdyYXBzKGYpCisgICAgZGVmIHdyYXAoKmFy Z3MsICoqa3dhcmdzKToKKyAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBo b2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCisgICAg ICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAgIHNlbGYubWFuYWdlciA9IGdl dF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpLmNvbm5lY3Rpb25fbWFuYWdl cihrd2FyZ3NbJ3NpZCddKQorICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1h bmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKKworICAgICAg ICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8g YnJvd3NlcgorICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgp OgorICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZCgK KyAgICAgICAgICAgICAgICBnZXR0ZXh0KAorICAgICAgICAgICAgICAgICAg ICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIgor ICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKworICAgICAgICB2 ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgorICAgICAgICBpZiB2ZXIgPj0g OTAzMDA6CisgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAnZXZl bnRfdHJpZ2dlcnMvc3FsLzkuM19wbHVzJworCisgICAgICAgIHJldHVybiBm KCphcmdzLCAqKmt3YXJncykKKworICAgIHJldHVybiB3cmFwCisKKwogY2xh c3MgRXZlbnRUcmlnZ2VyTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToK ICAgICAiIiIKICAgICBjbGFzcyBFdmVudFRyaWdnZXJNb2R1bGUoQ29sbGVj dGlvbk5vZGVNb2R1bGUpCkBAIC01OSwxMSArOTAsMjIgQEAgY2xhc3MgRXZl bnRUcmlnZ2VyTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKICAgICAg ICAgc2VsZi5taW5fdmVyID0gOTAzMDAKICAgICAgICAgc2VsZi5tYXhfdmVy ID0gTm9uZQogCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRlZiBn ZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CiAgICAgICAgICIiIgog ICAgICAgICBHZW5lcmF0ZSB0aGUgZXZlbnRfdHJpZ2dlciBub2RlCiAgICAg ICAgICIiIgotICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJf Y29sbGVjdGlvbl9ub2RlKHNpZCkKKyAgICAgICAgY29sbGVjdGlvbl9jb3Vu dCA9IDAKKworICAgICAgICBjb3VudF9zcWwgPSAnU0VMRUNUIGNvdW50KCop IEZST00oICcKKyAgICAgICAgbm9kZV9zcWwgPSByZW5kZXJfdGVtcGxhdGUo Ii8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ25vZGVzLnNxbCddKSkK KyAgICAgICAgY291bnRfc3FsICs9IG5vZGVfc3FsICsgJyApIEFTIGNvbGxl Y3Rpb25fY291bnQnCisKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5j b25uLmV4ZWN1dGVfc2NhbGFyKGNvdW50X3NxbCkKKyAgICAgICAgaWYgc3Rh dHVzOgorICAgICAgICAgICAgY29sbGVjdGlvbl9jb3VudCA9IHJzZXQKKwor ICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlv bl9ub2RlKHNpZCwgY29sbGVjdGlvbl9jb3VudCkKIAogICAgIEBwcm9wZXJ0 eQogICAgIGRlZiBub2RlX2lub2RlKHNlbGYpOgpAQCAtMTc5LDM1ICsyMjEs NiBAQCBjbGFzcyBFdmVudFRyaWdnZXJWaWV3KFBHQ2hpbGROb2RlVmlldyk6 CiAgICAgICAgICAgICAyMDAsIHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0 aW9uL3gtamF2YXNjcmlwdCd9CiAgICAgICAgICkKIAotICAgIGRlZiBjaGVj a19wcmVjb25kaXRpb24oZik6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlz IGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdp bGwgY2hlY2tzCi0gICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3Jl IHJ1bm5pbmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCi0gICAgICAg IG1hbmFnZXIsY29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBz ZWxmCi0gICAgICAgICIiIgotCi0gICAgICAgIEB3cmFwcyhmKQotICAgICAg ICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAgICAgIyBI ZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xk IGdpZCxzaWQsZGlkCi0gICAgICAgICAgICBzZWxmID0gYXJnc1swXQotICAg ICAgICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxU X0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKGt3YXJnc1snc2lkJ10pCi0g ICAgICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlv bihkaWQ9a3dhcmdzWydkaWQnXSkKLQotICAgICAgICAgICAgIyBJZiBEQiBu b3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRvIGJyb3dzZXIKLSAg ICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6Ci0gICAg ICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZCgKLSAg ICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKLSAgICAgICAgICAgICAgICAg ICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9z dCEiCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAgICAgICAgICAgICAp Ci0KLSAgICAgICAgICAgIHZlciA9IHNlbGYubWFuYWdlci52ZXJzaW9uCi0g ICAgICAgICAgICBpZiB2ZXIgPj0gOTAzMDA6Ci0gICAgICAgICAgICAgICAg c2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2V2ZW50X3RyaWdnZXJzL3NxbC85LjNf cGx1cycKLQotICAgICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdz KQotCi0gICAgICAgIHJldHVybiB3cmFwCiAKICAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCiAgICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvZXh0ZW5zaW9ucy9fX2luaXRfXy5weSBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9leHRlbnNpb25zL19faW5pdF9fLnB5CmluZGV4IDg4ODM5M2MuLmFm ZjE1YTAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9leHRlbnNpb25zL19faW5pdF9f LnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9leHRlbnNpb25zL19faW5pdF9fLnB5CkBAIC00 NSw2ICs0NSwyOCBAQCBlbHNlOgogICAgIGJhc2VzdHJpbmcgPSBiYXNlc3Ry aW5nCiAKIAorZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKKyAgICAiIiIK KyAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9y IHdoaWNoIHdpbGwgY2hlY2tzCisgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBi ZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAg ICBtYW5hZ2VyLGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8g c2VsZgorICAgICIiIgorCisgICAgQHdyYXBzKGYpCisgICAgZGVmIHdyYXAo KmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2ls bCBob2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCisg ICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAgIHNlbGYubWFuYWdlciA9 IGdldF9kcml2ZXIoCisgICAgICAgICAgICBQR19ERUZBVUxUX0RSSVZFUgor ICAgICAgICApLmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCddKQor ICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihk aWQ9a3dhcmdzWydkaWQnXSkKKyAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRo ID0gJ2V4dGVuc2lvbnMvc3FsJworCisgICAgICAgIHJldHVybiBmKCphcmdz LCAqKmt3YXJncykKKworICAgIHJldHVybiB3cmFwCisKKwogY2xhc3MgRXh0 ZW5zaW9uTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKICAgICAiIiIK ICAgICBjbGFzcyBFeHRlbnNpb25Nb2R1bGUoT2JqZWN0KToKQEAgLTYyLDEx ICs4NCwyMiBAQCBjbGFzcyBFeHRlbnNpb25Nb2R1bGUoQ29sbGVjdGlvbk5v ZGVNb2R1bGUpOgogICAgICAgICAiIiIKICAgICAgICAgc3VwZXIoRXh0ZW5z aW9uTW9kdWxlLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCiAK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAgICAgZGVmIGdldF9ub2Rlcyhz ZWxmLCBnaWQsIHNpZCwgZGlkKToKICAgICAgICAgIiIiCiAgICAgICAgIEdl bmVyYXRlIHRoZSBjb2xsZWN0aW9uIG5vZGUKICAgICAgICAgIiIiCi0gICAg ICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25v ZGUoZGlkKQorICAgICAgICBjb2xsZWN0aW9uX2NvdW50ID0gMAorCisgICAg ICAgIGNvdW50X3NxbCA9ICdTRUxFQ1QgY291bnQoKikgRlJPTSggJworICAg ICAgICBub2RlX3NxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwnXSkpCisgICAgICAg IGNvdW50X3NxbCArPSBub2RlX3NxbCArICcgKSBBUyBjb2xsZWN0aW9uX2Nv dW50JworCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVj dXRlX3NjYWxhcihjb3VudF9zcWwpCisgICAgICAgIGlmIHN0YXR1czoKKyAg ICAgICAgICAgIGNvbGxlY3Rpb25fY291bnQgPSByc2V0CisKKyAgICAgICAg eWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShk aWQsIGNvbGxlY3Rpb25fY291bnQpCiAKICAgICBAcHJvcGVydHkKICAgICBk ZWYgbm9kZV9pbm9kZShzZWxmKToKQEAgLTEzMCwyNyArMTYzLDYgQEAgY2xh c3MgRXh0ZW5zaW9uVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAgICAn Y2hpbGRyZW4nOiBbeydnZXQnOiAnY2hpbGRyZW4nfV0KICAgICB9KQogCi0g ICAgZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKLSAgICAgICAgIiIiCi0g ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0 b3Igd2hpY2ggd2lsbCBjaGVja3MKLSAgICAgICAgZGF0YWJhc2UgY29ubmVj dGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNo ZXMKLSAgICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9w ZXJ0aWVzIHRvIHNlbGYKLSAgICAgICAgIiIiCi0KLSAgICAgICAgQHdyYXBz KGYpCi0gICAgICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6Ci0gICAg ICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJn cyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKLSAgICAgICAgICAgIHNlbGYgPSBh cmdzWzBdCi0gICAgICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVy KAotICAgICAgICAgICAgICAgIFBHX0RFRkFVTFRfRFJJVkVSCi0gICAgICAg ICAgICApLmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCddKQotICAg ICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24o ZGlkPWt3YXJnc1snZGlkJ10pCi0gICAgICAgICAgICBzZWxmLnRlbXBsYXRl X3BhdGggPSAnZXh0ZW5zaW9ucy9zcWwnCi0KLSAgICAgICAgICAgIHJldHVy biBmKCphcmdzLCAqKmt3YXJncykKLQotICAgICAgICByZXR1cm4gd3JhcAot CiAgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRlZiBsaXN0KHNlbGYs IGdpZCwgc2lkLCBkaWQpOgogICAgICAgICAiIiIKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvX19pbml0X18ucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL19faW5pdF9fLnB5CmluZGV4IGQ0 NDk0YTEuLjNlZGI3NTUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2Rh dGFfd3JhcHBlcnMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25f ZGF0YV93cmFwcGVycy9fX2luaXRfXy5weQpAQCAtMjcsNiArMjcsNDAgQEAg ZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgog ZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCiAKIAorZGVm IGNoZWNrX3ByZWNvbmRpdGlvbihmKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1 bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwg Y2hlY2tzCisgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmlu ZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICBtYW5hZ2VyLGNv bm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgorICAgICIi IgorCisgICAgQHdyYXBzKGYpCisgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dh cmdzKToKKyAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHNlbGYg JiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCisgICAgICAgIHNlbGYg PSBhcmdzWzBdCisgICAgICAgIHNlbGYubWFuYWdlciA9IGdldF9kcml2ZXIo UEdfREVGQVVMVF9EUklWRVIpLmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3Nb J3NpZCddKQorICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29u bmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKKworICAgICAgICAjIElmIERC IG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8gYnJvd3Nlcgor ICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgpOgorICAgICAg ICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZCgKKyAgICAgICAg ICAgICAgICBnZXR0ZXh0KAorICAgICAgICAgICAgICAgICAgICAiQ29ubmVj dGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIgorICAgICAgICAg ICAgICAgICkKKyAgICAgICAgICAgICkKKworICAgICAgICB2ZXIgPSBzZWxm Lm1hbmFnZXIudmVyc2lvbgorICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBs YXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzCisgICAgICAgIGlmIHZlciA+PSA5 MDMwMDoKKyAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICdmb3Jl aWduX2RhdGFfd3JhcHBlcnMvc3FsLzkuM19wbHVzJworICAgICAgICBlbHNl OgorICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2ZvcmVpZ25f ZGF0YV93cmFwcGVycy9zcWwvOS4xX3BsdXMnCisKKyAgICAgICAgcmV0dXJu IGYoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgcmV0dXJuIHdyYXAKKworCiBj bGFzcyBGb3JlaWduRGF0YVdyYXBwZXJNb2R1bGUoQ29sbGVjdGlvbk5vZGVN b2R1bGUpOgogICAgICIiIgogICAgIGNsYXNzIEZvcmVpZ25EYXRhV3JhcHBl ck1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSkKQEAgLTYzLDYgKzk3LDcg QEAgY2xhc3MgRm9yZWlnbkRhdGFXcmFwcGVyTW9kdWxlKENvbGxlY3Rpb25O b2RlTW9kdWxlKToKIAogICAgICAgICBzdXBlcihGb3JlaWduRGF0YVdyYXBw ZXJNb2R1bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKIAor ICAgIEBjaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgZ2V0X25vZGVzKHNl bGYsIGdpZCwgc2lkLCBkaWQpOgogICAgICAgICAiIiIKICAgICAgICAgTWV0 aG9kIGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGJyb3dzZXIgY29sbGVjdGlv biBub2RlCkBAIC03Miw3ICsxMDcsMTcgQEAgY2xhc3MgRm9yZWlnbkRhdGFX cmFwcGVyTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKICAgICAgICAg ICAgIHNpZDogU2VydmVyIElECiAgICAgICAgICAgICBkaWQ6IERhdGFiYXNl IElkCiAgICAgICAgICIiIgotICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRl X2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKGRpZCkKKyAgICAgICAgY29sbGVj dGlvbl9jb3VudCA9IDAKKworICAgICAgICBjb3VudF9zcWwgPSAnU0VMRUNU IGNvdW50KCopIEZST00oICcKKyAgICAgICAgbm9kZV9zcWwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3Bl cnRpZXMuc3FsJ10pLCBjb25uPXNlbGYuY29ubikKKyAgICAgICAgY291bnRf c3FsICs9IG5vZGVfc3FsICsgJyApIEFTIGNvbGxlY3Rpb25fY291bnQnCisK KyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfc2Nh bGFyKGNvdW50X3NxbCkKKyAgICAgICAgaWYgc3RhdHVzOgorICAgICAgICAg ICAgY29sbGVjdGlvbl9jb3VudCA9IHJzZXQKKworICAgICAgICB5aWVsZCBz ZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKGRpZCwgY29s bGVjdGlvbl9jb3VudCkKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBzY3Jp cHRfbG9hZChzZWxmKToKQEAgLTE5NywzOSArMjQyLDYgQEAgY2xhc3MgRm9y ZWlnbkRhdGFXcmFwcGVyVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAg ICAgICAgMjAwLCB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LWph dmFzY3JpcHQnfQogICAgICAgICApCiAKLSAgICBkZWYgY2hlY2tfcHJlY29u ZGl0aW9uKGYpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBmdW5jdGlv biB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNr cwotICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5n IHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcwotICAgICAgICBtYW5hZ2Vy LGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgotICAg ICAgICAiIiIKLQotICAgICAgICBAd3JhcHMoZikKLSAgICAgICAgZGVmIHdy YXAoKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgICAgICMgSGVyZSBhcmdz WzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBnaWQsc2lk LGRpZAotICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KLSAgICAgICAgICAg IHNlbGYubWFuYWdlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIp LmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCddKQotICAgICAgICAg ICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3 YXJnc1snZGlkJ10pCi0KLSAgICAgICAgICAgICMgSWYgREIgbm90IGNvbm5l Y3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCi0gICAgICAgICAg ICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgpOgotICAgICAgICAgICAg ICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCi0gICAgICAgICAg ICAgICAgICAgIGdldHRleHQoCi0gICAgICAgICAgICAgICAgICAgICAgICAi Q29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIgotICAg ICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgKQotCi0gICAg ICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgotICAgICAgICAg ICAgIyB3ZSB3aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0 cwotICAgICAgICAgICAgaWYgdmVyID49IDkwMzAwOgotICAgICAgICAgICAg ICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICdmb3JlaWduX2RhdGFfd3JhcHBl cnMvc3FsLzkuM19wbHVzJwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAg ICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAnZm9yZWlnbl9kYXRhX3dy YXBwZXJzL3NxbC85LjFfcGx1cycKLQotICAgICAgICAgICAgcmV0dXJuIGYo KmFyZ3MsICoqa3dhcmdzKQotCi0gICAgICAgIHJldHVybiB3cmFwCi0KICAg ICBAY2hlY2tfcHJlY29uZGl0aW9uCiAgICAgZGVmIGxpc3Qoc2VsZiwgZ2lk LCBzaWQsIGRpZCk6CiAgICAgICAgICIiIgpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvX19pbml0 X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25f c2VydmVycy9fX2luaXRfXy5weQppbmRleCBmNTE5NzVmLi44Y2RmN2EzIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVp Z25fc2VydmVycy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9k YXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy9fX2luaXRfXy5weQpAQCAt MjcsNiArMjcsNDAgQEAgZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBv cnQgZ2V0X2RyaXZlcgogZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRf RFJJVkVSCiAKIAorZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKKyAgICAi IiIKKyAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3Jh dG9yIHdoaWNoIHdpbGwgY2hlY2tzCisgICAgZGF0YWJhc2UgY29ubmVjdGlv biBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMK KyAgICBtYW5hZ2VyLGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMg dG8gc2VsZgorICAgICIiIgorCisgICAgQHdyYXBzKGYpCisgICAgZGVmIHdy YXAoKmFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgIyBIZXJlIGFyZ3NbMF0g d2lsbCBob2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlk CisgICAgICAgIHNlbGYgPSBhcmdzWzBdCisgICAgICAgIHNlbGYubWFuYWdl ciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpLmNvbm5lY3Rpb25f bWFuYWdlcihrd2FyZ3NbJ3NpZCddKQorICAgICAgICBzZWxmLmNvbm4gPSBz ZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKKwor ICAgICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJy b3IgdG8gYnJvd3NlcgorICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNvbm5l Y3RlZCgpOgorICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1 aXJlZCgKKyAgICAgICAgICAgICAgICBnZXR0ZXh0KAorICAgICAgICAgICAg ICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxv c3QhIgorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKworICAg ICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgorICAgICAgICAjIHdl IHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzCisgICAg ICAgIGlmIHZlciA+PSA5MDMwMDoKKyAgICAgICAgICAgIHNlbGYudGVtcGxh dGVfcGF0aCA9ICdmb3JlaWduX3NlcnZlcnMvc3FsLzkuM19wbHVzJworICAg ICAgICBlbHNlOgorICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0g J2ZvcmVpZ25fc2VydmVycy9zcWwvOS4xX3BsdXMnCisKKyAgICAgICAgcmV0 dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgcmV0dXJuIHdyYXAKKwor CiBjbGFzcyBGb3JlaWduU2VydmVyTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9k dWxlKToKICAgICAiIiIKICAgICBjbGFzcyBGb3JlaWduU2VydmVyTW9kdWxl KENvbGxlY3Rpb25Ob2RlTW9kdWxlKQpAQCAtNjMsNiArOTcsNyBAQCBjbGFz cyBGb3JlaWduU2VydmVyTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToK IAogICAgICAgICBzdXBlcihGb3JlaWduU2VydmVyTW9kdWxlLCBzZWxmKS5f X2luaXRfXygqYXJncywgKiprd2FyZ3MpCiAKKyAgICBAY2hlY2tfcHJlY29u ZGl0aW9uCiAgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlk LCBmaWQpOgogICAgICAgICAiIiIKICAgICAgICAgTWV0aG9kIGlzIHVzZWQg dG8gZ2VuZXJhdGUgdGhlIGJyb3dzZXIgY29sbGVjdGlvbiBub2RlCkBAIC03 Myw3ICsxMDgsMTggQEAgY2xhc3MgRm9yZWlnblNlcnZlck1vZHVsZShDb2xs ZWN0aW9uTm9kZU1vZHVsZSk6CiAgICAgICAgICAgICBkaWQ6IERhdGFiYXNl IElECiAgICAgICAgICAgICBmaWQ6IGZvcmVpZ24gZGF0YSB3cmFwcGVyIElE CiAgICAgICAgICIiIgotICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jy b3dzZXJfY29sbGVjdGlvbl9ub2RlKGZpZCkKKyAgICAgICAgY29sbGVjdGlv bl9jb3VudCA9IDAKKworICAgICAgICBjb3VudF9zcWwgPSAnU0VMRUNUIGNv dW50KCopIEZST00oICcKKyAgICAgICAgbm9kZV9zcWwgPSByZW5kZXJfdGVt cGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRp ZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25uPXNlbGYuY29ubiwgZmlkPWZpZCkKKyAgICAgICAgY291bnRfc3Fs ICs9IG5vZGVfc3FsICsgJyApIEFTIGNvbGxlY3Rpb25fY291bnQnCisKKyAg ICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFy KGNvdW50X3NxbCkKKyAgICAgICAgaWYgc3RhdHVzOgorICAgICAgICAgICAg Y29sbGVjdGlvbl9jb3VudCA9IHJzZXQKKworICAgICAgICB5aWVsZCBzZWxm LmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKGZpZCwgY29sbGVj dGlvbl9jb3VudCkKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBzY3JpcHRf bG9hZChzZWxmKToKQEAgLTE5MSwzOSArMjM3LDYgQEAgY2xhc3MgRm9yZWln blNlcnZlclZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgIDIw MCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC1qYXZhc2NyaXB0 J30KICAgICAgICAgKQogCi0gICAgZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihm KToKLSAgICAgICAgIiIiCi0gICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBi ZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKLSAgICAg ICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmluZyB2aWV3LCBp dCB3aWxsIGFsc28gYXR0YWNoZXMKLSAgICAgICAgbWFuYWdlcixjb25uICYg dGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKLSAgICAgICAgIiIi Ci0KLSAgICAgICAgQHdyYXBzKGYpCi0gICAgICAgIGRlZiB3cmFwKCphcmdz LCAqKmt3YXJncyk6Ci0gICAgICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxs IGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKLSAg ICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCi0gICAgICAgICAgICBzZWxmLm1h bmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0 aW9uX21hbmFnZXIoa3dhcmdzWydzaWQnXSkKLSAgICAgICAgICAgIHNlbGYu Y29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2Rp ZCddKQotCi0gICAgICAgICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhl biByZXR1cm4gZXJyb3IgdG8gYnJvd3NlcgotICAgICAgICAgICAgaWYgbm90 IHNlbGYuY29ubi5jb25uZWN0ZWQoKToKLSAgICAgICAgICAgICAgICByZXR1 cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAotICAgICAgICAgICAgICAgICAg ICBnZXR0ZXh0KAotICAgICAgICAgICAgICAgICAgICAgICAgIkNvbm5lY3Rp b24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKLSAgICAgICAgICAg ICAgICAgICAgKQotICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAg dmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KLSAgICAgICAgICAgICMgd2Ug d2lsbCBzZXQgdGVtcGxhdGUgcGF0aCBmb3Igc3FsIHNjcmlwdHMKLSAgICAg ICAgICAgIGlmIHZlciA+PSA5MDMwMDoKLSAgICAgICAgICAgICAgICBzZWxm LnRlbXBsYXRlX3BhdGggPSAnZm9yZWlnbl9zZXJ2ZXJzL3NxbC85LjNfcGx1 cycKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi50 ZW1wbGF0ZV9wYXRoID0gJ2ZvcmVpZ25fc2VydmVycy9zcWwvOS4xX3BsdXMn Ci0KLSAgICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKLQot ICAgICAgICByZXR1cm4gd3JhcAotCiAgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgogICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIGZpZCk6CiAg ICAgICAgICIiIgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93 cmFwcGVycy9mb3JlaWduX3NlcnZlcnMvdGVtcGxhdGVzL2ZvcmVpZ25fc2Vy dmVycy9zcWwvOS4xX3BsdXMvcHJvcGVydGllcy5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9y ZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy90ZW1wbGF0ZXMv Zm9yZWlnbl9zZXJ2ZXJzL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbApp bmRleCAwMTEzNzhjLi5iYjE0MDE4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9y ZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy90ZW1wbGF0ZXMv Zm9yZWlnbl9zZXJ2ZXJzL3NxbC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2Vy dmVycy90ZW1wbGF0ZXMvZm9yZWlnbl9zZXJ2ZXJzL3NxbC85LjFfcGx1cy9w cm9wZXJ0aWVzLnNxbApAQCAtMjMsNSArMjMsNSBAQCBXSEVSRSBzcnZmZHc9 e3tmaWR9fTo6aW50CiB7JSBpZiBmc2lkICV9CiBXSEVSRSBzcnYub2lkPXt7 ZnNpZH19OjppbnQKIHslIGVuZGlmICV9Ci1PUkRFUiBCWSBzcnZuYW1lOwor T1JERVIgQlkgc3J2bmFtZQogeyUgZW5kaWYgJX0KXCBObyBuZXdsaW5lIGF0 IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRh X3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy90ZW1wbGF0ZXMvZm9yZWlnbl9z ZXJ2ZXJzL3NxbC85LjNfcGx1cy9wcm9wZXJ0aWVzLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9m b3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3RlbXBsYXRl cy9mb3JlaWduX3NlcnZlcnMvc3FsLzkuM19wbHVzL3Byb3BlcnRpZXMuc3Fs CmluZGV4IDk4MTU0YjguLjg3NDEyNjMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9m b3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3RlbXBsYXRl cy9mb3JlaWduX3NlcnZlcnMvc3FsLzkuM19wbHVzL3Byb3BlcnRpZXMuc3Fs CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9z ZXJ2ZXJzL3RlbXBsYXRlcy9mb3JlaWduX3NlcnZlcnMvc3FsLzkuM19wbHVz L3Byb3BlcnRpZXMuc3FsCkBAIC0yMiw1ICsyMiw1IEBAIFdIRVJFIHNydmZk dz17e2ZpZH19OjppbnQKIHslIGlmIGZzaWQgJX0KIFdIRVJFIHNydi5vaWQ9 e3tmc2lkfX06OmludAogeyUgZW5kaWYgJX0KLU9SREVSIEJZIHNydm5hbWU7 CitPUkRFUiBCWSBzcnZuYW1lCiB7JSBlbmRpZiAlfQpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2Rh dGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3VzZXJfbWFwcGluZy9fX2lu aXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWln bl9zZXJ2ZXJzL3VzZXJfbWFwcGluZy9fX2luaXRfXy5weQppbmRleCBjMGUz ZjU4Li4wOTc2MmVjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRh X3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy91c2VyX21hcHBpbmcvX19pbml0 X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3Jl aWduX3NlcnZlcnMvdXNlcl9tYXBwaW5nL19faW5pdF9fLnB5CkBAIC0yNSw2 ICsyNSw0MCBAQCBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBn ZXRfZHJpdmVyCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklW RVIKIAogCitkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgorICAgICIiIgor ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Ig d2hpY2ggd2lsbCBjaGVja3MKKyAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJl Zm9yZSBydW5uaW5nIHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcworICAg IG1hbmFnZXIsY29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBz ZWxmCisgICAgIiIiCisKKyAgICBAd3JhcHMoZikKKyAgICBkZWYgd3JhcCgq YXJncywgKiprd2FyZ3MpOgorICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxs IGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAg ICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAgICAgICAgc2VsZi5tYW5hZ2VyID0g Z2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5h Z2VyKGt3YXJnc1snc2lkJ10pCisgICAgICAgIHNlbGYuY29ubiA9IHNlbGYu bWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQorCisgICAg ICAgICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0 byBicm93c2VyCisgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVk KCk6CisgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVk KAorICAgICAgICAgICAgICAgIGdldHRleHQoCisgICAgICAgICAgICAgICAg ICAgICJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEi CisgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorCisgICAgICAg IHNlbGYudGVtcGxhdGVfcGF0aCA9ICd1c2VyX21hcHBpbmdzL3NxbC85LjFf cGx1cycKKworICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgor ICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBz Y3JpcHRzCisgICAgICAgIGlmIHZlciA+PSA5MDEwMDoKKyAgICAgICAgICAg IHNlbGYudGVtcGxhdGVfcGF0aCA9ICd1c2VyX21hcHBpbmdzL3NxbC85LjFf cGx1cycKKworICAgICAgICByZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisK KyAgICByZXR1cm4gd3JhcAorCisKIGNsYXNzIFVzZXJNYXBwaW5nTW9kdWxl KENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKICAgICAiIiIKICAgICBjbGFzcyBV c2VyTWFwcGluZ01vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSkKQEAgLTY0 LDYgKzk4LDcgQEAgY2xhc3MgVXNlck1hcHBpbmdNb2R1bGUoQ29sbGVjdGlv bk5vZGVNb2R1bGUpOgogCiAgICAgICAgIHN1cGVyKFVzZXJNYXBwaW5nTW9k dWxlLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCiAKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCiAgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBn aWQsIHNpZCwgZGlkLCBmaWQsIGZzaWQpOgogICAgICAgICAiIiIKICAgICAg ICAgTWV0aG9kIGlzIHVzZWQgdG8gZ2VuZXJhdGUgdGhlIGJyb3dzZXIgY29s bGVjdGlvbiBub2RlCkBAIC03NSw4ICsxMTAsMTggQEAgY2xhc3MgVXNlck1h cHBpbmdNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgogICAgICAgICAg ICAgZmlkOiBmb3JlaWduIGRhdGEgd3JhcHBlciBJRAogICAgICAgICAgICAg ZnNpZDogRm9yZWlnbiBzZXJ2ZXIgSUQKICAgICAgICAgIiIiCisgICAgICAg IGNvbGxlY3Rpb25fY291bnQgPSAwCisKKyAgICAgICAgY291bnRfc3FsID0g J1NFTEVDVCBjb3VudCgqKSBGUk9NKCAnCisgICAgICAgIG5vZGVfc3FsID0g cmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRlX3BhdGgs ICdwcm9wZXJ0aWVzLnNxbCddKSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY29ubj1zZWxmLmNvbm4sIGZzaWQ9ZnNpZCkKKyAgICAg ICAgY291bnRfc3FsICs9IG5vZGVfc3FsICsgJyApIEFTIGNvbGxlY3Rpb25f Y291bnQnCisKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKGNvdW50X3NxbCkKKyAgICAgICAgaWYgc3RhdHVzOgor ICAgICAgICAgICAgY29sbGVjdGlvbl9jb3VudCA9IHJzZXQKIAotICAgICAg ICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2Rl KGZzaWQpCisgICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9j b2xsZWN0aW9uX25vZGUoZnNpZCwgY29sbGVjdGlvbl9jb3VudCkKIAogICAg IEBwcm9wZXJ0eQogICAgIGRlZiBub2RlX2lub2RlKHNlbGYpOgpAQCAtMjA1 LDM5ICsyNTAsNiBAQCBjbGFzcyBVc2VyTWFwcGluZ1ZpZXcoUEdDaGlsZE5v ZGVWaWV3KToKICAgICAgICAgICAgIDIwMCwgeydDb250ZW50LVR5cGUnOiAn YXBwbGljYXRpb24veC1qYXZhc2NyaXB0J30KICAgICAgICAgKQogCi0gICAg ZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKLSAgICAgICAgIiIiCi0gICAg ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Ig d2hpY2ggd2lsbCBjaGVja3MKLSAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlv biBiZWZvcmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMK LSAgICAgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0 aWVzIHRvIHNlbGYKLSAgICAgICAgIiIiCi0KLSAgICAgICAgQHdyYXBzKGYp Ci0gICAgICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAg ICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3 aWxsIGhvbGQgZ2lkLHNpZCxkaWQKLSAgICAgICAgICAgIHNlbGYgPSBhcmdz WzBdCi0gICAgICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBH X0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoa3dhcmdzWydz aWQnXSkKLSAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5j b25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQotCi0gICAgICAgICAgICAj IElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8gYnJv d3NlcgotICAgICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25uZWN0ZWQo KToKLSAgICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVp cmVkKAotICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KAotICAgICAgICAg ICAgICAgICAgICAgICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMg YmVlbiBsb3N0ISIKLSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAg ICAgICAgICkKLQotICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0g J3VzZXJfbWFwcGluZ3Mvc3FsLzkuMV9wbHVzJwotCi0gICAgICAgICAgICB2 ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgotICAgICAgICAgICAgIyB3ZSB3 aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cwotICAgICAg ICAgICAgaWYgdmVyID49IDkwMTAwOgotICAgICAgICAgICAgICAgIHNlbGYu dGVtcGxhdGVfcGF0aCA9ICd1c2VyX21hcHBpbmdzL3NxbC85LjFfcGx1cycK LQotICAgICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQotCi0g ICAgICAgIHJldHVybiB3cmFwCi0KICAgICBAY2hlY2tfcHJlY29uZGl0aW9u CiAgICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgZmlkLCBmc2lk KToKICAgICAgICAgIiIiCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9k YXRhX3dyYXBwZXJzL2ZvcmVpZ25fc2VydmVycy91c2VyX21hcHBpbmcvdGVt cGxhdGVzL3VzZXJfbWFwcGluZ3Mvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL2ZvcmVpZ25fZGF0YV93cmFwcGVycy9mb3JlaWduX3Nl cnZlcnMvdXNlcl9tYXBwaW5nL3RlbXBsYXRlcy91c2VyX21hcHBpbmdzL3Nx bC85LjFfcGx1cy9wcm9wZXJ0aWVzLnNxbAppbmRleCA3OTk2YWJkLi4xZWYy ZGIzIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvZm9yZWlnbl9kYXRhX3dyYXBwZXJz L2ZvcmVpZ25fc2VydmVycy91c2VyX21hcHBpbmcvdGVtcGxhdGVzL3VzZXJf bWFwcGluZ3Mvc3FsLzkuMV9wbHVzL3Byb3BlcnRpZXMuc3FsCisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9mb3JlaWduX2RhdGFfd3JhcHBlcnMvZm9yZWlnbl9zZXJ2ZXJzL3Vz ZXJfbWFwcGluZy90ZW1wbGF0ZXMvdXNlcl9tYXBwaW5ncy9zcWwvOS4xX3Bs dXMvcHJvcGVydGllcy5zcWwKQEAgLTE5LDUgKzE5LDUgQEAgV0lUSCB1bWFw RGF0YSBBUwogeyUgaWYgZmR3ZGF0YSAlfQogICAgIFdIRVJFIGZkdy5mZHdu YW1lID0ge3tmZHdkYXRhLm5hbWV8cXRMaXRlcmFsfX06OnRleHQKIHslIGVu ZGlmICV9Ci0gICAgT1JERVIgQlkgMjsKKyAgICBPUkRFUiBCWSAyCiB7JSBl bmRpZiAlfQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1YWdlcy9fX2luaXRf Xy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9sYW5ndWFnZXMvX19pbml0X18ucHkKaW5kZXggMDdj MDRlOS4uZDAwZjBkYyAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL2xhbmd1YWdlcy9f X2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvbGFuZ3VhZ2VzL19faW5pdF9fLnB5 CkBAIC0yNyw2ICsyNyw0MSBAQCBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVy IGltcG9ydCBnZXRfZHJpdmVyCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVG QVVMVF9EUklWRVIKIAogCitkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgor ICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBk ZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVjayB0aGUKKyAgICBkYXRhYmFzZSBj b25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHRoZSB2aWV3LiBJdCBhbHNvIGF0 dGFjaGVzCisgICAgbWFuYWdlciwgY29ubiAmIHRlbXBsYXRlX3BhdGggcHJv cGVydGllcyB0byBzZWxmCisgICAgIiIiCisKKyAgICBAd3JhcHMoZikKKyAg ICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAjIEhlcmUg YXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lk LHNpZCxkaWQKKyAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAgICAgICAgc2Vs Zi5kcml2ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKQorICAg ICAgICBzZWxmLm1hbmFnZXIgPSBzZWxmLmRyaXZlci5jb25uZWN0aW9uX21h bmFnZXIoa3dhcmdzWydzaWQnXSkKKyAgICAgICAgc2VsZi5jb25uID0gc2Vs Zi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisKKyAg ICAgICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9y IHRvIGJyb3dzZXIKKyAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25uZWN0 ZWQoKToKKyAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWly ZWQoCisgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAgICAg ICAgICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0 ISIKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisKKyAgICAg ICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KKyAgICAgICAgIyB3ZSB3 aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cworICAgICAg ICBpZiB2ZXIgPj0gOTAzMDA6CisgICAgICAgICAgICBzZWxmLnRlbXBsYXRl X3BhdGggPSAnbGFuZ3VhZ2VzL3NxbC85LjNfcGx1cycKKyAgICAgICAgZWxz ZToKKyAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICdsYW5ndWFn ZXMvc3FsLzkuMV9wbHVzJworCisgICAgICAgIHJldHVybiBmKCphcmdzLCAq Kmt3YXJncykKKworICAgIHJldHVybiB3cmFwCisKKwogY2xhc3MgTGFuZ3Vh Z2VNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgogICAgICIiIgogICAg IGNsYXNzIExhbmd1YWdlTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKQpA QCAtNjUsNiArMTAwLDcgQEAgY2xhc3MgTGFuZ3VhZ2VNb2R1bGUoQ29sbGVj dGlvbk5vZGVNb2R1bGUpOgogCiAgICAgICAgIHN1cGVyKExhbmd1YWdlTW9k dWxlLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCiAKKyAgICBA Y2hlY2tfcHJlY29uZGl0aW9uCiAgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBn aWQsIHNpZCwgZGlkKToKICAgICAgICAgIiIiCiAgICAgICAgIE1ldGhvZCBp cyB1c2VkIHRvIGdlbmVyYXRlIHRoZSBicm93c2VyIGNvbGxlY3Rpb24gbm9k ZQpAQCAtNzQsNyArMTEwLDE3IEBAIGNsYXNzIExhbmd1YWdlTW9kdWxlKENv bGxlY3Rpb25Ob2RlTW9kdWxlKToKICAgICAgICAgICAgIHNpZDogU2VydmVy IElECiAgICAgICAgICAgICBkaWQ6IERhdGFiYXNlIElkCiAgICAgICAgICIi IgotICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVj dGlvbl9ub2RlKGRpZCkKKyAgICAgICAgY29sbGVjdGlvbl9jb3VudCA9IDAK KworICAgICAgICBjb3VudF9zcWwgPSAnU0VMRUNUIGNvdW50KCopIEZST00o ICcKKyAgICAgICAgbm9kZV9zcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpv aW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pKQor ICAgICAgICBjb3VudF9zcWwgKz0gbm9kZV9zcWwgKyAnICkgQVMgY29sbGVj dGlvbl9jb3VudCcKKworICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNv bm4uZXhlY3V0ZV9zY2FsYXIoY291bnRfc3FsKQorICAgICAgICBpZiBzdGF0 dXM6CisgICAgICAgICAgICBjb2xsZWN0aW9uX2NvdW50ID0gcnNldAorCisg ICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9u X25vZGUoZGlkLCBjb2xsZWN0aW9uX2NvdW50KQogCiAgICAgQHByb3BlcnR5 CiAgICAgZGVmIG5vZGVfaW5vZGUoc2VsZik6CkBAIC0yMDQsNDAgKzI1MCw2 IEBAIGNsYXNzIExhbmd1YWdlVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAg ICAgICAgICAgMjAwLCB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94 LWphdmFzY3JpcHQnfQogICAgICAgICApCiAKLSAgICBkZWYgY2hlY2tfcHJl Y29uZGl0aW9uKGYpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBmdW5j dGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNo ZWNrIHRoZQotICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBy dW5uaW5nIHRoZSB2aWV3LiBJdCBhbHNvIGF0dGFjaGVzCi0gICAgICAgIG1h bmFnZXIsIGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2Vs ZgotICAgICAgICAiIiIKLQotICAgICAgICBAd3JhcHMoZikKLSAgICAgICAg ZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgICAgICMgSGVy ZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBn aWQsc2lkLGRpZAotICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KLSAgICAg ICAgICAgIHNlbGYuZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RS SVZFUikKLSAgICAgICAgICAgIHNlbGYubWFuYWdlciA9IHNlbGYuZHJpdmVy LmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCddKQotICAgICAgICAg ICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3 YXJnc1snZGlkJ10pCi0KLSAgICAgICAgICAgICMgSWYgREIgbm90IGNvbm5l Y3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCi0gICAgICAgICAg ICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgpOgotICAgICAgICAgICAg ICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCi0gICAgICAgICAg ICAgICAgICAgIGdldHRleHQoCi0gICAgICAgICAgICAgICAgICAgICAgICAi Q29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIgotICAg ICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgKQotCi0gICAg ICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgotICAgICAgICAg ICAgIyB3ZSB3aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0 cwotICAgICAgICAgICAgaWYgdmVyID49IDkwMzAwOgotICAgICAgICAgICAg ICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICdsYW5ndWFnZXMvc3FsLzkuM19w bHVzJwotICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxm LnRlbXBsYXRlX3BhdGggPSAnbGFuZ3VhZ2VzL3NxbC85LjFfcGx1cycKLQot ICAgICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQotCi0gICAg ICAgIHJldHVybiB3cmFwCi0KICAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAg ICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCk6CiAgICAgICAgICIi IgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvX19pbml0X18ucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9fX2luaXRfXy5weQppbmRleCA0NjcxODk3Li5lYzc0 MTRiIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9fX2luaXRfXy5weQor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9fX2luaXRfXy5weQpAQCAtNDQsNiArNDQs NDcgQEAgZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCiAi IiIKIAogCitkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgorICAgICIiIgor ICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Ig d2hpY2ggd2lsbCBjaGVja3MKKyAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJl Zm9yZSBydW5uaW5nIHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcworICAg IG1hbmFnZXIsY29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBp bnN0YW5jZSBvZiB0aGUgbWV0aG9kLgorCisgICAgQXNzdW1wdGlvbnM6Cisg ICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBhbHdheXMgYmUgdXNlZCBhcyBk ZWNvcmF0b3Igb2YgYSBjbGFzcyBtZXRob2QuCisgICAgIiIiCisKKyAgICBA d3JhcHMoZikKKyAgICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgorICAg ICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3 aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAgICAgc2VsZiA9IGFyZ3NbMF0K KyAgICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxU X0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKAorICAgICAgICAgICAga3dh cmdzWydzaWQnXQorICAgICAgICApCisgICAgICAgIHNlbGYuY29ubiA9IHNl bGYubWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQorICAg ICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3Ig dG8gYnJvd3NlcgorICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3Rl ZCgpOgorICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJl ZCgKKyAgICAgICAgICAgICAgICBnZXR0ZXh0KCJDb25uZWN0aW9uIHRvIHRo ZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiKQorICAgICAgICAgICAgKQorCisg ICAgICAgICMgU2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzCisg ICAgICAgIGlmIGhhc2F0dHIoc2VsZiwgJ05PREVfVFlQRScpOgorICAgICAg ICAgICAgaW5pdGlhbF9wYXRoID0gc2VsZi5OT0RFX1RZUEUKKyAgICAgICAg ZWxzZToKKyAgICAgICAgICAgIGluaXRpYWxfcGF0aCA9IHNlbGYudGVtcGxh dGVfaW5pdGlhbAorCisgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9IGlu aXRpYWxfcGF0aCArICcvJyArICgKKyAgICAgICAgICAgIFNjaGVtYVZpZXcu cHBhc190ZW1wbGF0ZV9wYXRoKHNlbGYubWFuYWdlci52ZXJzaW9uKQorICAg ICAgICAgICAgaWYgc2VsZi5tYW5hZ2VyLnNlcnZlcl90eXBlID09ICdwcGFz JyBlbHNlCisgICAgICAgICAgICBTY2hlbWFWaWV3LnBnX3RlbXBsYXRlX3Bh dGgoc2VsZi5tYW5hZ2VyLnZlcnNpb24pCisgICAgICAgICkKKworICAgICAg ICByZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICByZXR1cm4gd3Jh cAorCisKIGNsYXNzIFNjaGVtYU1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVs ZSk6CiAgICAgIiIiCiAgICAgIGNsYXNzIFNjaGVtYU1vZHVsZShDb2xsZWN0 aW9uTm9kZU1vZHVsZSkKQEAgLTgxLDExICsxMjIsMjYgQEAgY2xhc3MgU2No ZW1hTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKIAogICAgICAgICBz dXBlcihTY2hlbWFNb2R1bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3 YXJncykKIAorICAgIEBjaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgZ2V0 X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQpOgogICAgICAgICAiIiIKICAg ICAgICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rpb24gbm9kZQogICAgICAgICAi IiIKLSAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxl Y3Rpb25fbm9kZShkaWQpCisgICAgICAgIGNvbGxlY3Rpb25fY291bnQgPSAw CisKKyAgICAgICAgY291bnRfc3FsID0gJ1NFTEVDVCBjb3VudCgqKSBGUk9N KCAnCisgICAgICAgIG5vZGVfc3FsID0gcmVuZGVyX3RlbXBsYXRlKAorICAg ICAgICAgICAgIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwgJ3NxbC9u b2Rlcy5zcWwnXSksCisgICAgICAgICAgICBzaG93X3N5c29iaj1zZWxmLnNo b3dfc3lzdGVtX29iamVjdHMsCisgICAgICAgICAgICBfPWdldHRleHQKKyAg ICAgICAgKQorICAgICAgICBjb3VudF9zcWwgKz0gbm9kZV9zcWwgKyAnICkg QVMgY29sbGVjdGlvbl9jb3VudCcKKworICAgICAgICBzdGF0dXMsIHJzZXQg PSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoY291bnRfc3FsKQorICAgICAg ICBpZiBzdGF0dXM6CisgICAgICAgICAgICBjb2xsZWN0aW9uX2NvdW50ID0g cnNldAorCisgICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9j b2xsZWN0aW9uX25vZGUoZGlkLCBjb2xsZWN0aW9uX2NvdW50KQogCiAgICAg QHByb3BlcnR5CiAgICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgpAQCAtMTEx LDQyICsxNjcsNiBAQCBzY2hlbWFfYmx1ZXByaW50ID0gU2NoZW1hTW9kdWxl KF9fbmFtZV9fKQogY2F0YWxvZ19ibHVlcHJpbnQgPSBDYXRhbG9nTW9kdWxl KF9fbmFtZV9fKQogCiAKLWRlZiBjaGVja19wcmVjb25kaXRpb24oZik6Ci0g ICAgIiIiCi0gICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRl Y29yYXRvciB3aGljaCB3aWxsIGNoZWNrcwotICAgIGRhdGFiYXNlIGNvbm5l Y3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFj aGVzCi0gICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0 aWVzIHRvIGluc3RhbmNlIG9mIHRoZSBtZXRob2QuCi0KLSAgICBBc3N1bXB0 aW9uczoKLSAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGFsd2F5cyBiZSB1 c2VkIGFzIGRlY29yYXRvciBvZiBhIGNsYXNzIG1ldGhvZC4KLSAgICAiIiIK LQotICAgIEB3cmFwcyhmKQotICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJn cyk6Ci0gICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYg a3dhcmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAotICAgICAgICBzZWxmID0g YXJnc1swXQotICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBH X0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoCi0gICAgICAg ICAgICBrd2FyZ3NbJ3NpZCddCi0gICAgICAgICkKLSAgICAgICAgc2VsZi5j b25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlk J10pCi0gICAgICAgICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVy biBlcnJvciB0byBicm93c2VyCi0gICAgICAgIGlmIG5vdCBzZWxmLmNvbm4u Y29ubmVjdGVkKCk6Ci0gICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9u X3JlcXVpcmVkKAotICAgICAgICAgICAgICAgIGdldHRleHQoIkNvbm5lY3Rp b24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIpCi0gICAgICAgICAg ICApCi0KLSAgICAgICAgIyBTZXQgdGVtcGxhdGUgcGF0aCBmb3Igc3FsIHNj cmlwdHMKLSAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gc2VsZi50ZW1w bGF0ZV9pbml0aWFsICsgJy8nICsgKAotICAgICAgICAgICAgc2VsZi5wcGFz X3RlbXBsYXRlX3BhdGgoc2VsZi5tYW5hZ2VyLnZlcnNpb24pCi0gICAgICAg ICAgICBpZiBzZWxmLm1hbmFnZXIuc2VydmVyX3R5cGUgPT0gJ3BwYXMnIGVs c2UKLSAgICAgICAgICAgIHNlbGYucGdfdGVtcGxhdGVfcGF0aChzZWxmLm1h bmFnZXIudmVyc2lvbikKLSAgICAgICAgKQotCi0gICAgICAgIHJldHVybiBm KCphcmdzLCAqKmt3YXJncykKLQotICAgIHJldHVybiB3cmFwCi0KLQogY2xh c3MgU2NoZW1hVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICIiIgogICAg IFRoaXMgY2xhc3MgaXMgcmVzcG9uc2libGUgZm9yIGdlbmVyYXRpbmcgcm91 dGVzIGZvciBzY2hlbWEgbm9kZS4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2NhdGFsb2dfb2JqZWN0cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2NhdGFsb2dfb2JqZWN0cy9fX2luaXRfXy5weQppbmRleCBlNTVhZmRm Li43N2UxOGJkIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jYXRhbG9n X29iamVjdHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY2F0 YWxvZ19vYmplY3RzL19faW5pdF9fLnB5CkBAIC0yNSw2ICsyNSwzOCBAQCBm cm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCiBm cm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKIAogCitkZWYg Y2hlY2tfcHJlY29uZGl0aW9uKGYpOgorICAgICIiIgorICAgIFRoaXMgZnVu Y3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBj aGVja3MKKyAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5n IHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcworICAgIG1hbmFnZXIsY29u biAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisgICAgIiIi CisKKyAgICBAd3JhcHMoZikKKyAgICBkZWYgd3JhcCgqYXJncywgKiprd2Fy Z3MpOgorICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAm IGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAgICAgc2VsZiA9 IGFyZ3NbMF0KKyAgICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQ R19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKAorICAgICAg ICAgICAga3dhcmdzWydzaWQnXQorICAgICAgICApCisgICAgICAgIHNlbGYu Y29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2Rp ZCddKQorICAgICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1 cm4gZXJyb3IgdG8gYnJvd3NlcgorICAgICAgICBpZiBub3Qgc2VsZi5jb25u LmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlv bl9yZXF1aXJlZCgKKyAgICAgICAgICAgICAgICBnZXR0ZXh0KAorICAgICAg ICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBi ZWVuIGxvc3QhIgorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkK KworICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAnY2F0YWxvZ19vYmpl Y3Qvc3FsL3swfS85LjFfcGx1cycuZm9ybWF0KAorICAgICAgICAgICAgJ3Bw YXMnIGlmIHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZSA9PSAncHBhcycgZWxz ZSAncGcnCisgICAgICAgICkKKworICAgICAgICByZXR1cm4gZigqYXJncywg Kiprd2FyZ3MpCisKKyAgICByZXR1cm4gd3JhcAorCisKIGNsYXNzIENhdGFs b2dPYmplY3RNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgogICAgICIiIgog ICAgICBjbGFzcyBDYXRhbG9nT2JqZWN0TW9kdWxlKFNjaGVtYUNoaWxkTW9k dWxlKQpAQCAtNjUsMTEgKzk3LDIzIEBAIGNsYXNzIENhdGFsb2dPYmplY3RN b2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgogICAgICAgICBzZWxmLm1pbl92 ZXIgPSBOb25lCiAgICAgICAgIHNlbGYubWF4X3ZlciA9IE5vbmUKIAorICAg IEBjaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgZ2V0X25vZGVzKHNlbGYs IGdpZCwgc2lkLCBkaWQsIHNjaWQpOgogICAgICAgICAiIiIKICAgICAgICAg R2VuZXJhdGUgdGhlIGNvbGxlY3Rpb24gbm9kZQogICAgICAgICAiIiIKLSAg ICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25f bm9kZShzY2lkKQorICAgICAgICBjb2xsZWN0aW9uX2NvdW50ID0gMAorCisg ICAgICAgIGNvdW50X3NxbCA9ICdTRUxFQ1QgY291bnQoKikgRlJPTSggJwor ICAgICAgICBub2RlX3NxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihb c2VsZi50ZW1wbGF0ZV9wYXRoLCAnbm9kZXMuc3FsJ10pLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzY2lkPXNjaWQpCisgICAgICAg IGNvdW50X3NxbCArPSBub2RlX3NxbCArICcgKSBBUyBjb2xsZWN0aW9uX2Nv dW50JworCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVj dXRlX3NjYWxhcihjb3VudF9zcWwpCisgICAgICAgIGlmIHN0YXR1czoKKyAg ICAgICAgICAgIGNvbGxlY3Rpb25fY291bnQgPSByc2V0CisKKyAgICAgICAg eWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShz Y2lkLCBjb2xsZWN0aW9uX2NvdW50KQogCiAgICAgQHByb3BlcnR5CiAgICAg ZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgpAQCAtMTMxLDM3ICsxNzUsNiBAQCBj bGFzcyBDYXRhbG9nT2JqZWN0VmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAg ICAgICAnbW9kdWxlLmpzJzogW3t9LCB7fSwgeydnZXQnOiAnbW9kdWxlX2pz J31dCiAgICAgfSkKIAotICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6 Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVo YXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzCi0gICAgICAg IGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmlldywgaXQg d2lsbCBhbHNvIGF0dGFjaGVzCi0gICAgICAgIG1hbmFnZXIsY29ubiAmIHRl bXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCi0gICAgICAgICIiIgot Ci0gICAgICAgIEB3cmFwcyhmKQotICAgICAgICBkZWYgd3JhcCgqYXJncywg Kiprd2FyZ3MpOgotICAgICAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBo b2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCi0gICAg ICAgICAgICBzZWxmID0gYXJnc1swXQotICAgICAgICAgICAgc2VsZi5tYW5h Z2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlv bl9tYW5hZ2VyKAotICAgICAgICAgICAgICAgIGt3YXJnc1snc2lkJ10KLSAg ICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFu YWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQotICAgICAgICAg ICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRv IGJyb3dzZXIKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVj dGVkKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9y ZXF1aXJlZCgKLSAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKLSAgICAg ICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIg aGFzIGJlZW4gbG9zdCEiCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAg ICAgICAgICAgICApCi0KLSAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0 aCA9ICdjYXRhbG9nX29iamVjdC9zcWwvezB9LzkuMV9wbHVzJy5mb3JtYXQo Ci0gICAgICAgICAgICAgICAgJ3BwYXMnIGlmIHNlbGYubWFuYWdlci5zZXJ2 ZXJfdHlwZSA9PSAncHBhcycgZWxzZSAncGcnCi0gICAgICAgICAgICApCi0K LSAgICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKLQotICAg ICAgICByZXR1cm4gd3JhcAotCiAgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgog ICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgogICAg ICAgICAiIiIKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2df b2JqZWN0cy9jb2x1bW5zL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv Y2F0YWxvZ19vYmplY3RzL2NvbHVtbnMvX19pbml0X18ucHkKaW5kZXggYjBl Nzg0Zi4uYWQyMjUwNiAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY2F0 YWxvZ19vYmplY3RzL2NvbHVtbnMvX19pbml0X18ucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvY2F0YWxvZ19vYmplY3RzL2NvbHVtbnMvX19pbml0X18ucHkK QEAgLTI1LDYgKzI1LDM2IEBAIGZyb20gcGdhZG1pbi51dGlscy5wcmVmZXJl bmNlcyBpbXBvcnQgUHJlZmVyZW5jZXMKIGZyb20gY29uZmlnIGltcG9ydCBQ R19ERUZBVUxUX0RSSVZFUgogCiAKK2RlZiBjaGVja19wcmVjb25kaXRpb24o Zik6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBh cyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrcworICAgIGRhdGFiYXNl IGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmlldywgaXQgd2lsbCBhbHNv IGF0dGFjaGVzCisgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBw cm9wZXJ0aWVzIHRvIHNlbGYKKyAgICAiIiIKKworICAgIEB3cmFwcyhmKQor ICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICMgSGVy ZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBn aWQsc2lkLGRpZAorICAgICAgICBzZWxmID0gYXJnc1swXQorICAgICAgICBz ZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5j b25uZWN0aW9uX21hbmFnZXIoCisgICAgICAgICAgICBrd2FyZ3NbJ3NpZCdd CisgICAgICAgICkKKyAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2Vy LmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICMgSWYg REIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2Vy CisgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6CisgICAg ICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAg ICAgICAgICAgIGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICJDb25u ZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAg ICAgICAgICAgKQorICAgICAgICAgICAgKQorCisgICAgICAgIHNlbGYudGVt cGxhdGVfcGF0aCA9ICdjYXRhbG9nX29iamVjdF9jb2x1bW4vc3FsLzkuMV9w bHVzJworCisgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKKwor ICAgIHJldHVybiB3cmFwCisKKwogY2xhc3MgQ2F0YWxvZ09iamVjdENvbHVt bnNNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgogICAgICIiIgogICAg ICBjbGFzcyBDb2x1bW5Nb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpCkBA IC02MiwxMSArOTIsMjMgQEAgY2xhc3MgQ2F0YWxvZ09iamVjdENvbHVtbnNN b2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgogICAgICAgICBzZWxmLm1p bl92ZXIgPSBOb25lCiAgICAgICAgIHNlbGYubWF4X3ZlciA9IE5vbmUKIAor ICAgIEBjaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgZ2V0X25vZGVzKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQsIGNvaWQpOgogICAgICAgICAiIiIK ICAgICAgICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rpb24gbm9kZQogICAgICAg ICAiIiIKLSAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2Nv bGxlY3Rpb25fbm9kZShjb2lkKQorICAgICAgICBjb2xsZWN0aW9uX2NvdW50 ID0gMAorCisgICAgICAgIGNvdW50X3NxbCA9ICdTRUxFQ1QgY291bnQoKikg RlJPTSggJworICAgICAgICBub2RlX3NxbCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCdub2Rlcy5zcWwnXSksCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvaWQ9Y29pZCkK KyAgICAgICAgY291bnRfc3FsICs9IG5vZGVfc3FsICsgJyApIEFTIGNvbGxl Y3Rpb25fY291bnQnCisKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5j b25uLmV4ZWN1dGVfc2NhbGFyKGNvdW50X3NxbCkKKyAgICAgICAgaWYgc3Rh dHVzOgorICAgICAgICAgICAgY29sbGVjdGlvbl9jb3VudCA9IHJzZXQKKwor ICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlv bl9ub2RlKGNvaWQsIGNvbGxlY3Rpb25fY291bnQpCiAKICAgICBAcHJvcGVy dHkKICAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6CkBAIC0xNTEsMzUgKzE5 Myw2IEBAIGNsYXNzIENhdGFsb2dPYmplY3RDb2x1bW5zVmlldyhQR0NoaWxk Tm9kZVZpZXcpOgogICAgICAgICAnbW9kdWxlLmpzJzogW3t9LCB7fSwgeydn ZXQnOiAnbW9kdWxlX2pzJ31dCiAgICAgfSkKIAotICAgIGRlZiBjaGVja19w cmVjb25kaXRpb24oZik6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1 bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwg Y2hlY2tzCi0gICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1 bm5pbmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCi0gICAgICAgIG1h bmFnZXIsY29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxm Ci0gICAgICAgICIiIgotCi0gICAgICAgIEB3cmFwcyhmKQotICAgICAgICBk ZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAgICAgIyBIZXJl IGFyZ3NbMF0gd2lsbCBob2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdp ZCxzaWQsZGlkCi0gICAgICAgICAgICBzZWxmID0gYXJnc1swXQotICAgICAg ICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RS SVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKAotICAgICAgICAgICAgICAgIGt3 YXJnc1snc2lkJ10KLSAgICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYu Y29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2Rp ZCddKQotICAgICAgICAgICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4g cmV0dXJuIGVycm9yIHRvIGJyb3dzZXIKLSAgICAgICAgICAgIGlmIG5vdCBz ZWxmLmNvbm4uY29ubmVjdGVkKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJu IHByZWNvbmRpdGlvbl9yZXF1aXJlZCgKLSAgICAgICAgICAgICAgICAgICAg Z2V0dGV4dCgKLSAgICAgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9u IHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCi0gICAgICAgICAgICAg ICAgICAgICkKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgIHNl bGYudGVtcGxhdGVfcGF0aCA9ICdjYXRhbG9nX29iamVjdF9jb2x1bW4vc3Fs LzkuMV9wbHVzJwotCi0gICAgICAgICAgICByZXR1cm4gZigqYXJncywgKipr d2FyZ3MpCi0KLSAgICAgICAgcmV0dXJuIHdyYXAKLQogICAgIEBjaGVja19w cmVjb25kaXRpb24KICAgICBkZWYgbGlzdChzZWxmLCBnaWQsIHNpZCwgZGlk LCBzY2lkLCBjb2lkKToKICAgICAgICAgIiIiCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9jYXRhbG9nX29iamVjdHMvdGVtcGxhdGVzL2NhdGFsb2df b2JqZWN0L3NxbC9wZy85LjFfcGx1cy9ub2Rlcy5zcWwgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2No ZW1hcy9jYXRhbG9nX29iamVjdHMvdGVtcGxhdGVzL2NhdGFsb2dfb2JqZWN0 L3NxbC9wZy85LjFfcGx1cy9ub2Rlcy5zcWwKaW5kZXggOGE4ZGFkMC4uMWM5 ZTA4ZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY2F0YWxvZ19vYmpl Y3RzL3RlbXBsYXRlcy9jYXRhbG9nX29iamVjdC9zcWwvcGcvOS4xX3BsdXMv bm9kZXMuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dfb2JqZWN0 cy90ZW1wbGF0ZXMvY2F0YWxvZ19vYmplY3Qvc3FsL3BnLzkuMV9wbHVzL25v ZGVzLnNxbApAQCAtMyw0ICszLDQgQEAgU0VMRUNUCiBGUk9NCiAgICAgcGdf Y2xhc3MgYwogV0hFUkUgcmVsbmFtZXNwYWNlID0ge3tzY2lkfX06OmludAot T1JERVIgQlkgcmVsbmFtZTsKK09SREVSIEJZIHJlbG5hbWUKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL2NhdGFsb2dfb2JqZWN0cy90ZW1wbGF0ZXMv Y2F0YWxvZ19vYmplY3Qvc3FsL3BwYXMvOS4xX3BsdXMvbm9kZXMuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvY2F0YWxvZ19vYmplY3RzL3RlbXBsYXRlcy9jYXRh bG9nX29iamVjdC9zcWwvcHBhcy85LjFfcGx1cy9ub2Rlcy5zcWwKaW5kZXgg ZjUxMGY0OS4uMTU0ODljMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv Y2F0YWxvZ19vYmplY3RzL3RlbXBsYXRlcy9jYXRhbG9nX29iamVjdC9zcWwv cHBhcy85LjFfcGx1cy9ub2Rlcy5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv Y2F0YWxvZ19vYmplY3RzL3RlbXBsYXRlcy9jYXRhbG9nX29iamVjdC9zcWwv cHBhcy85LjFfcGx1cy9ub2Rlcy5zcWwKQEAgLTgsNCArOCw0IEBAIE9SICAo CiAJQU5ECiAJKGMucmVsbmFtZSBOT1QgTElLRSAnXFxfJScgQU5EIGMucmVs bmFtZSA9ICdkdWFsJyBBTkQgIGMucmVsbmFtZSA9ICd0eXBlX29iamVjdF9z b3VyY2UnKQogICAgICkKLU9SREVSIEJZIHJlbG5hbWU7CitPUkRFUiBCWSBy ZWxuYW1lCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jb2xsYXRpb25z L19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy9fX2lu aXRfXy5weQppbmRleCBjNGU3YmMzLi4wMzRmMmZmIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL19faW5pdF9fLnB5CisrKyBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2NvbGxhdGlvbnMvX19pbml0X18ucHkKQEAgLTI2LDYg KzI2LDM2IEBAIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdl dF9kcml2ZXIKIGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZF UgogCiAKK2RlZiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAgIiIiCisg ICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3 aGljaCB3aWxsIGNoZWNrcworICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVm b3JlIHJ1bm5pbmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAg bWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNl bGYKKyAgICAiIiIKKworICAgIEB3cmFwcyhmKQorICAgIGRlZiB3cmFwKCph cmdzLCAqKmt3YXJncyk6CisgICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwg aG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAorICAg ICAgICBzZWxmID0gYXJnc1swXQorICAgICAgICBzZWxmLm1hbmFnZXIgPSBn ZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21hbmFn ZXIoCisgICAgICAgICAgICBrd2FyZ3NbJ3NpZCddCisgICAgICAgICkKKyAg ICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlk PWt3YXJnc1snZGlkJ10pCisgICAgICAgICMgSWYgREIgbm90IGNvbm5lY3Rl ZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCisgICAgICAgIGlmIG5v dCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6CisgICAgICAgICAgICByZXR1cm4g cHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAgICAgIGdldHRl eHQoCisgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBz ZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAgICAgICAgICAgKQorICAg ICAgICAgICAgKQorCisgICAgICAgICMgd2Ugd2lsbCBzZXQgdGVtcGxhdGUg cGF0aCBmb3Igc3FsIHNjcmlwdHMKKyAgICAgICAgc2VsZi50ZW1wbGF0ZV9w YXRoID0gJ2NvbGxhdGlvbi9zcWwvOS4xX3BsdXMnCisgICAgICAgIHJldHVy biBmKCphcmdzLCAqKmt3YXJncykKKworICAgIHJldHVybiB3cmFwCisKKwog Y2xhc3MgQ29sbGF0aW9uTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKICAg ICAiIiIKICAgICAgY2xhc3MgQ29sbGF0aW9uTW9kdWxlKENvbGxlY3Rpb25O b2RlTW9kdWxlKQpAQCAtNjQsMTEgKzk0LDIzIEBAIGNsYXNzIENvbGxhdGlv bk1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6CiAgICAgICAgIHNlbGYubWlu X3ZlciA9IDkwMTAwCiAgICAgICAgIHNlbGYubWF4X3ZlciA9IE5vbmUKIAor ICAgIEBjaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgZ2V0X25vZGVzKHNl bGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgogICAgICAgICAiIiIKICAgICAg ICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rpb24gbm9kZQogICAgICAgICAiIiIK LSAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rp b25fbm9kZShzY2lkKQorICAgICAgICBjb2xsZWN0aW9uX2NvdW50ID0gMAor CisgICAgICAgIGNvdW50X3NxbCA9ICdTRUxFQ1QgY291bnQoKikgRlJPTSgg JworICAgICAgICBub2RlX3NxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnbm9kZXMuc3FsJ10pLAorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2lkPXNjaWQpCisgICAg ICAgIGNvdW50X3NxbCArPSBub2RlX3NxbCArICcgKSBBUyBjb2xsZWN0aW9u X2NvdW50JworCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5l eGVjdXRlX3NjYWxhcihjb3VudF9zcWwpCisgICAgICAgIGlmIHN0YXR1czoK KyAgICAgICAgICAgIGNvbGxlY3Rpb25fY291bnQgPSByc2V0CisKKyAgICAg ICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9k ZShzY2lkLCBjb2xsZWN0aW9uX2NvdW50KQogCiAgICAgQHByb3BlcnR5CiAg ICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgpAQCAtMTcwLDM1ICsyMTIsNiBA QCBjbGFzcyBDb2xsYXRpb25WaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICB7J2dldCc6ICdnZXRfY29sbGF0aW9u J31dCiAgICAgfSkKIAotICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6 Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVo YXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzCi0gICAgICAg IGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmlldywgaXQg d2lsbCBhbHNvIGF0dGFjaGVzCi0gICAgICAgIG1hbmFnZXIsY29ubiAmIHRl bXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCi0gICAgICAgICIiIgot Ci0gICAgICAgIEB3cmFwcyhmKQotICAgICAgICBkZWYgd3JhcCgqYXJncywg Kiprd2FyZ3MpOgotICAgICAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBo b2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCi0gICAg ICAgICAgICBzZWxmID0gYXJnc1swXQotICAgICAgICAgICAgc2VsZi5tYW5h Z2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlv bl9tYW5hZ2VyKAotICAgICAgICAgICAgICAgIGt3YXJnc1snc2lkJ10KLSAg ICAgICAgICAgICkKLSAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFu YWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQotICAgICAgICAg ICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRv IGJyb3dzZXIKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVj dGVkKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9y ZXF1aXJlZCgKLSAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKLSAgICAg ICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIg aGFzIGJlZW4gbG9zdCEiCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAg ICAgICAgICAgICApCi0KLSAgICAgICAgICAgICMgd2Ugd2lsbCBzZXQgdGVt cGxhdGUgcGF0aCBmb3Igc3FsIHNjcmlwdHMKLSAgICAgICAgICAgIHNlbGYu dGVtcGxhdGVfcGF0aCA9ICdjb2xsYXRpb24vc3FsLzkuMV9wbHVzJwotICAg ICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQotCi0gICAgICAg IHJldHVybiB3cmFwCi0KICAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAgICAg ZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6CiAgICAgICAg ICIiIgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvY29sbGF0aW9ucy90 ZW1wbGF0ZXMvY29sbGF0aW9uL3NxbC85LjFfcGx1cy9ub2Rlcy5zcWwgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL3RlbXBsYXRlcy9jb2xsYXRpb24v c3FsLzkuMV9wbHVzL25vZGVzLnNxbAppbmRleCBkZTkzMmIyLi5lOGY1Yzlm IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL3RlbXBs YXRlcy9jb2xsYXRpb24vc3FsLzkuMV9wbHVzL25vZGVzLnNxbAorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9jb2xsYXRpb25zL3RlbXBsYXRlcy9jb2xsYXRpb24v c3FsLzkuMV9wbHVzL25vZGVzLnNxbApAQCAtMSw0ICsxLDQgQEAKIFNFTEVD VCBjLm9pZCwgYy5jb2xsbmFtZSBBUyBuYW1lCiBGUk9NIHBnX2NvbGxhdGlv biBjCiBXSEVSRSBjLmNvbGxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCi1P UkRFUiBCWSBjLmNvbGxuYW1lOworT1JERVIgQlkgYy5jb2xsbmFtZQpkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlucy9fX2luaXRfXy5weSBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvX19pbml0X18ucHkKaW5kZXggYzk0 NTI1YS4uNGVhODVhNSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9t YWlucy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5z L19faW5pdF9fLnB5CkBAIC0yOCw2ICsyOCw0MCBAQCBmcm9tIHBnYWRtaW4u dXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCiBmcm9tIGNvbmZpZyBp bXBvcnQgUEdfREVGQVVMVF9EUklWRVIKIAogCitkZWYgY2hlY2tfcHJlY29u ZGl0aW9uKGYpOgorICAgICIiIgorICAgIFdvcmtzIGFzIGEgZGVjb3JhdG9y LgorICAgIENoZWNrcyBkYXRhYmFzZSBjb25uZWN0aW9uIHN0YXR1cy4KKyAg ICBBdHRhY2ggY29ubmVjdGlvbiBvYmplY3QgYW5kIHRlbXBsYXRlIHBhdGgu CisgICAgIiIiCisKKyAgICBAd3JhcHMoZikKKyAgICBkZWYgd3JhcCgqYXJn cywgKiprd2FyZ3MpOgorICAgICAgICBzZWxmID0gYXJnc1swXQorICAgICAg ICBkcml2ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKQorICAg ICAgICBzZWxmLm1hbmFnZXIgPSBkcml2ZXIuY29ubmVjdGlvbl9tYW5hZ2Vy KGt3YXJnc1snc2lkJ10pCisgICAgICAgICMgR2V0IGRhdGFiYXNlIGNvbm5l Y3Rpb24KKyAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5l Y3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgIHNlbGYucXRJZGVu dCA9IGRyaXZlci5xdElkZW50CisKKyAgICAgICAgaWYgbm90IHNlbGYuY29u bi5jb25uZWN0ZWQoKToKKyAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRp b25fcmVxdWlyZWQoCisgICAgICAgICAgICAgICAgZ2V0dGV4dCgiQ29ubmVj dGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIikKKyAgICAgICAg ICAgICkKKworICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgor ICAgICAgICBzZXJ2ZXJfdHlwZSA9IHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlw ZQorCisgICAgICAgICMgd2Ugd2lsbCBzZXQgdGVtcGxhdGUgcGF0aCBmb3Ig c3FsIHNjcmlwdHMKKyAgICAgICAgaWYgdmVyID49IDkwMjAwOgorICAgICAg ICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2RvbWFpbnMvc3FsLzkuMl9w bHVzJworICAgICAgICBlbGlmIHZlciA+PSA5MDEwMDoKKyAgICAgICAgICAg IHNlbGYudGVtcGxhdGVfcGF0aCA9ICdkb21haW5zL3NxbC85LjFfcGx1cycK KworICAgICAgICByZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICBy ZXR1cm4gd3JhcAorCiBjbGFzcyBEb21haW5Nb2R1bGUoU2NoZW1hQ2hpbGRN b2R1bGUpOgogICAgICIiIgogICAgIGNsYXNzIERvbWFpbk1vZHVsZShTY2hl bWFDaGlsZE1vZHVsZSk6CkBAIC01NSwxMSArODksMjMgQEAgY2xhc3MgRG9t YWluTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKICAgICAgICAgc2VsZi5t aW5fdmVyID0gTm9uZQogICAgICAgICBzZWxmLm1heF92ZXIgPSBOb25lCiAK KyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAgICAgZGVmIGdldF9ub2Rlcyhz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKICAgICAgICAgIiIiCiAgICAg ICAgIEdlbmVyYXRlIHRoZSBkb21haW4gY29sbGVjdGlvbiBub2RlLgogICAg ICAgICAiIiIKLSAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2Vy X2NvbGxlY3Rpb25fbm9kZShzY2lkKQorICAgICAgICBjb2xsZWN0aW9uX2Nv dW50ID0gMAorCisgICAgICAgIGNvdW50X3NxbCA9ICdTRUxFQ1QgY291bnQo KikgRlJPTSggJworICAgICAgICBub2RlX3NxbCA9IHJlbmRlcl90ZW1wbGF0 ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnbm9kZS5zcWwnXSks CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9c2Np ZCkKKyAgICAgICAgY291bnRfc3FsICs9IG5vZGVfc3FsICsgJyApIEFTIGNv bGxlY3Rpb25fY291bnQnCisKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2Vs Zi5jb25uLmV4ZWN1dGVfc2NhbGFyKGNvdW50X3NxbCkKKyAgICAgICAgaWYg c3RhdHVzOgorICAgICAgICAgICAgY29sbGVjdGlvbl9jb3VudCA9IHJzZXQK KworICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVj dGlvbl9ub2RlKHNjaWQsIGNvbGxlY3Rpb25fY291bnQpCiAKICAgICBAcHJv cGVydHkKICAgICBkZWYgc2NyaXB0X2xvYWQoc2VsZik6CkBAIC0yNDcsNDAg KzI5Myw2IEBAIGNsYXNzIERvbWFpblZpZXcoUEdDaGlsZE5vZGVWaWV3LCBE YXRhVHlwZVJlYWRlcik6CiAgICAgICAgICAgICAyMDAsIHsnQ29udGVudC1U eXBlJzogJ2FwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCd9CiAgICAgICAgICkK IAotICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6Ci0gICAgICAgICIi IgotICAgICAgICBXb3JrcyBhcyBhIGRlY29yYXRvci4KLSAgICAgICAgQ2hl Y2tzIGRhdGFiYXNlIGNvbm5lY3Rpb24gc3RhdHVzLgotICAgICAgICBBdHRh Y2ggY29ubmVjdGlvbiBvYmplY3QgYW5kIHRlbXBsYXRlIHBhdGguCi0gICAg ICAgICIiIgotCi0gICAgICAgIEB3cmFwcyhmKQotICAgICAgICBkZWYgd3Jh cCgqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAgICAgc2VsZiA9IGFyZ3Nb MF0KLSAgICAgICAgICAgIGRyaXZlciA9IGdldF9kcml2ZXIoUEdfREVGQVVM VF9EUklWRVIpCi0gICAgICAgICAgICBzZWxmLm1hbmFnZXIgPSBkcml2ZXIu Y29ubmVjdGlvbl9tYW5hZ2VyKGt3YXJnc1snc2lkJ10pCi0gICAgICAgICAg ICAjIEdldCBkYXRhYmFzZSBjb25uZWN0aW9uCi0gICAgICAgICAgICBzZWxm LmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydk aWQnXSkKLSAgICAgICAgICAgIHNlbGYucXRJZGVudCA9IGRyaXZlci5xdElk ZW50Ci0KLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVk KCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1 aXJlZCgKLSAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgiQ29ubmVjdGlv biB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIikKLSAgICAgICAgICAg ICAgICApCi0KLSAgICAgICAgICAgIHZlciA9IHNlbGYubWFuYWdlci52ZXJz aW9uCi0gICAgICAgICAgICBzZXJ2ZXJfdHlwZSA9IHNlbGYubWFuYWdlci5z ZXJ2ZXJfdHlwZQotCi0gICAgICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBs YXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzCi0gICAgICAgICAgICBpZiB2ZXIg Pj0gOTAyMDA6Ci0gICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRo ID0gJ2RvbWFpbnMvc3FsLzkuMl9wbHVzJwotICAgICAgICAgICAgZWxpZiB2 ZXIgPj0gOTAxMDA6Ci0gICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9w YXRoID0gJ2RvbWFpbnMvc3FsLzkuMV9wbHVzJwotCi0gICAgICAgICAgICBy ZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCi0KLSAgICAgICAgcmV0dXJuIHdy YXAKLQogICAgIEBjaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgbGlzdChz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKICAgICAgICAgIiIiCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL2RvbWFpbl9jb25zdHJh aW50cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9t YWluX2NvbnN0cmFpbnRzL19faW5pdF9fLnB5CmluZGV4IDhlZWY0ZDEuLjVh YmIyYmIgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvZG9t YWluX2NvbnN0cmFpbnRzL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2RvbWFpbnMvZG9tYWluX2NvbnN0cmFpbnRzL19faW5pdF9fLnB5CkBA IC0yNiw2ICsyNiw0MCBAQCBmcm9tIHBnYWRtaW4udXRpbHMuZHJpdmVyIGlt cG9ydCBnZXRfZHJpdmVyCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVM VF9EUklWRVIKIAogCitkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgorICAg ICIiIgorICAgIFdvcmtzIGFzIGEgZGVjb3JhdG9yLgorICAgIENoZWNrcyBk YXRhYmFzZSBjb25uZWN0aW9uIHN0YXR1cy4KKyAgICBBdHRhY2ggY29ubmVj dGlvbiBvYmplY3QgYW5kIHRlbXBsYXRlIHBhdGguCisgICAgIiIiCisKKyAg ICBAd3JhcHMoZikKKyAgICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgor ICAgICAgICBzZWxmID0gYXJnc1swXQorICAgICAgICBkcml2ZXIgPSBnZXRf ZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKQorICAgICAgICBzZWxmLm1hbmFn ZXIgPSBkcml2ZXIuY29ubmVjdGlvbl9tYW5hZ2VyKGt3YXJnc1snc2lkJ10p CisgICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9u KGRpZD1rd2FyZ3NbJ2RpZCddKQorICAgICAgICBzZWxmLnF0SWRlbnQgPSBk cml2ZXIucXRJZGVudAorCisgICAgICAgICMgSWYgREIgbm90IGNvbm5lY3Rl ZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCisgICAgICAgIGlmIG5v dCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6CisgICAgICAgICAgICByZXR1cm4g cHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAgICAgIGdldHRl eHQoIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIp CisgICAgICAgICAgICApCisKKyAgICAgICAgdmVyID0gc2VsZi5tYW5hZ2Vy LnZlcnNpb24KKworICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBh dGggZm9yIHNxbCBzY3JpcHRzCisgICAgICAgIGlmIHZlciA+PSA5MDIwMDoK KyAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICdkb21haW5fY29u c3RyYWludHMvc3FsLzkuMl9wbHVzJworICAgICAgICBlbGlmIHZlciA+PSA5 MDEwMDoKKyAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICdkb21h aW5fY29uc3RyYWludHMvc3FsLzkuMV9wbHVzJworCisgICAgICAgIHJldHVy biBmKCphcmdzLCAqKmt3YXJncykKKworICAgIHJldHVybiB3cmFwCisKKwog Y2xhc3MgRG9tYWluQ29uc3RyYWludE1vZHVsZShDb2xsZWN0aW9uTm9kZU1v ZHVsZSk6CiAgICAgIiIiCiAgICAgY2xhc3MgRG9tYWluQ29uc3RyYWludE1v ZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CkBAIC01NSwxMSArODksMjMg QEAgY2xhc3MgRG9tYWluQ29uc3RyYWludE1vZHVsZShDb2xsZWN0aW9uTm9k ZU1vZHVsZSk6CiAgICAgICAgIHNlbGYubWluX3ZlciA9IE5vbmUKICAgICAg ICAgc2VsZi5tYXhfdmVyID0gTm9uZQogCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgogICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c2NpZCwgZG9pZCk6CiAgICAgICAgICIiIgogICAgICAgICBHZW5lcmF0ZSB0 aGUgRG9tYWluIENvbnN0cmFpbnQgY29sbGVjdGlvbiBub2RlLgogICAgICAg ICAiIiIKLSAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2Nv bGxlY3Rpb25fbm9kZShkb2lkKQorICAgICAgICBjb2xsZWN0aW9uX2NvdW50 ID0gMAorCisgICAgICAgIGNvdW50X3NxbCA9ICdTRUxFQ1QgY291bnQoKikg RlJPTSggJworICAgICAgICBub2RlX3NxbCA9IHJlbmRlcl90ZW1wbGF0ZSgi LyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAncHJvcGVydGllcy5zcWwn XSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvaWQ9 ZG9pZCkKKyAgICAgICAgY291bnRfc3FsICs9IG5vZGVfc3FsICsgJyApIEFT IGNvbGxlY3Rpb25fY291bnQnCisKKyAgICAgICAgc3RhdHVzLCByc2V0ID0g c2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKGNvdW50X3NxbCkKKyAgICAgICAg aWYgc3RhdHVzOgorICAgICAgICAgICAgY29sbGVjdGlvbl9jb3VudCA9IHJz ZXQKKworICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29s bGVjdGlvbl9ub2RlKGRvaWQsIGNvbGxlY3Rpb25fY291bnQpCiAKICAgICBA cHJvcGVydHkKICAgICBkZWYgbm9kZV9pbm9kZShzZWxmKToKQEAgLTI0MSwz OSArMjg3LDYgQEAgY2xhc3MgRG9tYWluQ29uc3RyYWludFZpZXcoUEdDaGls ZE5vZGVWaWV3KToKICAgICAgICAgICAgIDIwMCwgeydDb250ZW50LVR5cGUn OiAnYXBwbGljYXRpb24veC1qYXZhc2NyaXB0J30KICAgICAgICAgKQogCi0g ICAgZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKLSAgICAgICAgIiIiCi0g ICAgICAgIFdvcmtzIGFzIGEgZGVjb3JhdG9yLgotICAgICAgICBDaGVja3Mg ZGF0YWJhc2UgY29ubmVjdGlvbiBzdGF0dXMuCi0gICAgICAgIEF0dGFjaCBj b25uZWN0aW9uIG9iamVjdCBhbmQgdGVtcGxhdGUgcGF0aC4KLSAgICAgICAg IiIiCi0KLSAgICAgICAgQHdyYXBzKGYpCi0gICAgICAgIGRlZiB3cmFwKCph cmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICAgICBzZWxmID0gYXJnc1swXQot ICAgICAgICAgICAgZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RS SVZFUikKLSAgICAgICAgICAgIHNlbGYubWFuYWdlciA9IGRyaXZlci5jb25u ZWN0aW9uX21hbmFnZXIoa3dhcmdzWydzaWQnXSkKLSAgICAgICAgICAgIHNl bGYuY29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3Nb J2RpZCddKQotICAgICAgICAgICAgc2VsZi5xdElkZW50ID0gZHJpdmVyLnF0 SWRlbnQKLQotICAgICAgICAgICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRo ZW4gcmV0dXJuIGVycm9yIHRvIGJyb3dzZXIKLSAgICAgICAgICAgIGlmIG5v dCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6Ci0gICAgICAgICAgICAgICAgcmV0 dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZCgKLSAgICAgICAgICAgICAgICAg ICAgZ2V0dGV4dCgiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVu IGxvc3QhIikKLSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgIHZl ciA9IHNlbGYubWFuYWdlci52ZXJzaW9uCi0KLSAgICAgICAgICAgICMgd2Ug d2lsbCBzZXQgdGVtcGxhdGUgcGF0aCBmb3Igc3FsIHNjcmlwdHMKLSAgICAg ICAgICAgIGlmIHZlciA+PSA5MDIwMDoKLSAgICAgICAgICAgICAgICBzZWxm LnRlbXBsYXRlX3BhdGggPSAnZG9tYWluX2NvbnN0cmFpbnRzL3NxbC85LjJf cGx1cycKLSAgICAgICAgICAgIGVsaWYgdmVyID49IDkwMTAwOgotICAgICAg ICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICdkb21haW5fY29uc3Ry YWludHMvc3FsLzkuMV9wbHVzJwotCi0gICAgICAgICAgICByZXR1cm4gZigq YXJncywgKiprd2FyZ3MpCi0KLSAgICAgICAgcmV0dXJuIHdyYXAKLQogICAg IEBjaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgbGlzdChzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkLCBkb2lkKToKICAgICAgICAgIiIiCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9kb21haW5zL3RlbXBsYXRlcy9kb21haW5z L3NxbC85LjFfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFp bnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL25vZGUuc3FsCmlu ZGV4IDdiZDNlNWIuLjlhYzZlYzQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2RvbWFpbnMvdGVtcGxhdGVzL2RvbWFpbnMvc3FsLzkuMV9wbHVzL25v ZGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxhdGVz L2RvbWFpbnMvc3FsLzkuMV9wbHVzL25vZGUuc3FsCkBAIC0xMCw0ICsxMCw0 IEBAIEpPSU4KIFdIRVJFCiAgICAgZC50eXBuYW1lc3BhY2UgPSB7e3NjaWR9 fTo6b2lkCiBPUkRFUiBCWQotICAgIGQudHlwbmFtZTsKKyAgICBkLnR5cG5h bWUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2RvbWFpbnMvdGVtcGxh dGVzL2RvbWFpbnMvc3FsLzkuMl9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4yX3BsdXMv bm9kZS5zcWwKaW5kZXggN2JkM2U1Yi4uOWFjNmVjNCAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZG9tYWlucy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwv OS4yX3BsdXMvbm9kZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZG9tYWlu cy90ZW1wbGF0ZXMvZG9tYWlucy9zcWwvOS4yX3BsdXMvbm9kZS5zcWwKQEAg LTEwLDQgKzEwLDQgQEAgSk9JTgogV0hFUkUKICAgICBkLnR5cG5hbWVzcGFj ZSA9IHt7c2NpZH19OjpvaWQKIE9SREVSIEJZCi0gICAgZC50eXBuYW1lOwor ICAgIGQudHlwbmFtZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9y ZWlnbl90YWJsZXMvX19pbml0X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3Jl aWduX3RhYmxlcy9fX2luaXRfXy5weQppbmRleCA5ODE4MmZjLi40MzI1ODg3 IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy9f X2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxl cy9fX2luaXRfXy5weQpAQCAtMzMsNiArMzMsNDkgQEAgZnJvbSBwZ2FkbWlu LnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgogZnJvbSBjb25maWcg aW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCiAKIAorZGVmIGNoZWNrX3ByZWNv bmRpdGlvbihmKToKKyAgICAiIiIKKyAgICBXb3JrcyBhcyBhIGRlY29yYXRv ci4KKyAgICBDaGVja3MgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24gc3RhdHVz LgorICAgIEF0dGFjaGVzIHRoZSBjb25uZWN0aW9uIG9iamVjdCBhbmQgdGVt cGxhdGUgcGF0aCB0byB0aGUgY2xhc3Mgb2JqZWN0LgorICAgICIiIgorCisg ICAgQHdyYXBzKGYpCisgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToK KyAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAgICAgICAgZHJpdmVyID0gZ2V0 X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikKKyAgICAgICAgc2VsZi5tYW5h Z2VyID0gZHJpdmVyLmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCdd KQorCisgICAgICAgICMgR2V0IGRhdGFiYXNlIGNvbm5lY3Rpb24KKyAgICAg ICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3 YXJnc1snZGlkJ10pCisKKyAgICAgICAgc2VsZi5xdElkZW50ID0gZHJpdmVy LnF0SWRlbnQKKworICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3Rl ZCgpOgorICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJl ZCgKKyAgICAgICAgICAgICAgICBnZXR0ZXh0KAorICAgICAgICAgICAgICAg ICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3Qh IgorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKworICAgICAg ICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVyc2lvbgorICAgICAgICBzZXJ2ZXJf dHlwZSA9IHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZQorCisgICAgICAgICMg U2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzIGRlcGVuZGluZwor ICAgICAgICAjIG9uIHRoZSBzZXJ2ZXIgdmVyc2lvbi4KKworICAgICAgICBp ZiB2ZXIgPj0gOTA1MDA6CisgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3Bh dGggPSAnZm9yZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVzJworICAgICAgICBl bGlmIHZlciA+PSA5MDIwMDoKKyAgICAgICAgICAgIHNlbGYudGVtcGxhdGVf cGF0aCA9ICdmb3JlaWduX3RhYmxlcy9zcWwvOS4yX3BsdXMnCisgICAgICAg IGVsc2U6CisgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAnZm9y ZWlnbl90YWJsZXMvc3FsLzkuMV9wbHVzJworCisgICAgICAgIHJldHVybiBm KCphcmdzLCAqKmt3YXJncykKKworICAgIHJldHVybiB3cmFwCisKKwogY2xh c3MgRm9yZWlnblRhYmxlTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKICAg ICAiIiIKICAgICBjbGFzcyBGb3JlaWduVGFibGVNb2R1bGUoQ29sbGVjdGlv bk5vZGVNb2R1bGUpOgpAQCAtNjIsMTEgKzEwNSwyMyBAQCBjbGFzcyBGb3Jl aWduVGFibGVNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgogICAgICAgICBz ZWxmLm1pbl92ZXIgPSBOb25lCiAgICAgICAgIHNlbGYubWF4X3ZlciA9IE5v bmUKIAorICAgIEBjaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgZ2V0X25v ZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgogICAgICAgICAiIiIK ICAgICAgICAgR2VuZXJhdGUgdGhlIEZvcmVpZ24gVGFibGUgY29sbGVjdGlv biBub2RlLgogICAgICAgICAiIiIKLSAgICAgICAgeWllbGQgc2VsZi5nZW5l cmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkKQorICAgICAgICBj b2xsZWN0aW9uX2NvdW50ID0gMAorCisgICAgICAgIGNvdW50X3NxbCA9ICdT RUxFQ1QgY291bnQoKikgRlJPTSggJworICAgICAgICBub2RlX3NxbCA9IHJl bmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAn bm9kZS5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHNjaWQ9c2NpZCkKKyAgICAgICAgY291bnRfc3FsICs9IG5vZGVfc3Fs ICsgJyApIEFTIGNvbGxlY3Rpb25fY291bnQnCisKKyAgICAgICAgc3RhdHVz LCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKGNvdW50X3NxbCkK KyAgICAgICAgaWYgc3RhdHVzOgorICAgICAgICAgICAgY29sbGVjdGlvbl9j b3VudCA9IHJzZXQKKworICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jy b3dzZXJfY29sbGVjdGlvbl9ub2RlKHNjaWQsIGNvbGxlY3Rpb25fY291bnQp CiAKICAgICBAcHJvcGVydHkKICAgICBkZWYgbm9kZV9pbm9kZShzZWxmKToK QEAgLTMyMyw0OCArMzc4LDYgQEAgY2xhc3MgRm9yZWlnblRhYmxlVmlldyhQ R0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToKICAgICAgICAgICAg IDIwMCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC1qYXZhc2Ny aXB0J30KICAgICAgICAgKQogCi0gICAgZGVmIGNoZWNrX3ByZWNvbmRpdGlv bihmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFdvcmtzIGFzIGEgZGVjb3Jh dG9yLgotICAgICAgICBDaGVja3MgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24g c3RhdHVzLgotICAgICAgICBBdHRhY2hlcyB0aGUgY29ubmVjdGlvbiBvYmpl Y3QgYW5kIHRlbXBsYXRlIHBhdGggdG8gdGhlIGNsYXNzIG9iamVjdC4KLSAg ICAgICAgIiIiCi0KLSAgICAgICAgQHdyYXBzKGYpCi0gICAgICAgIGRlZiB3 cmFwKCphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICAgICBzZWxmID0gYXJn c1swXQotICAgICAgICAgICAgZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZB VUxUX0RSSVZFUikKLSAgICAgICAgICAgIHNlbGYubWFuYWdlciA9IGRyaXZl ci5jb25uZWN0aW9uX21hbmFnZXIoa3dhcmdzWydzaWQnXSkKLQotICAgICAg ICAgICAgIyBHZXQgZGF0YWJhc2UgY29ubmVjdGlvbgotICAgICAgICAgICAg c2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJn c1snZGlkJ10pCi0KLSAgICAgICAgICAgIHNlbGYucXRJZGVudCA9IGRyaXZl ci5xdElkZW50Ci0KLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29u bmVjdGVkKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlv bl9yZXF1aXJlZCgKLSAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKLSAg ICAgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2 ZXIgaGFzIGJlZW4gbG9zdCEiCi0gICAgICAgICAgICAgICAgICAgICkKLSAg ICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgIHZlciA9IHNlbGYubWFu YWdlci52ZXJzaW9uCi0gICAgICAgICAgICBzZXJ2ZXJfdHlwZSA9IHNlbGYu bWFuYWdlci5zZXJ2ZXJfdHlwZQotCi0gICAgICAgICAgICAjIFNldCB0ZW1w bGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cyBkZXBlbmRpbmcKLSAgICAgICAg ICAgICMgb24gdGhlIHNlcnZlciB2ZXJzaW9uLgotCi0gICAgICAgICAgICBp ZiB2ZXIgPj0gOTA1MDA6Ci0gICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0 ZV9wYXRoID0gJ2ZvcmVpZ25fdGFibGVzL3NxbC85LjVfcGx1cycKLSAgICAg ICAgICAgIGVsaWYgdmVyID49IDkwMjAwOgotICAgICAgICAgICAgICAgIHNl bGYudGVtcGxhdGVfcGF0aCA9ICdmb3JlaWduX3RhYmxlcy9zcWwvOS4yX3Bs dXMnCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgIHNlbGYu dGVtcGxhdGVfcGF0aCA9ICdmb3JlaWduX3RhYmxlcy9zcWwvOS4xX3BsdXMn Ci0KLSAgICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKLQot ICAgICAgICByZXR1cm4gd3JhcAotCiAgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgogICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgog ICAgICAgICAiIiIKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVp Z25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4xX3Bs dXMvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91 cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90 ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuMV9wbHVzL25vZGUuc3Fs CmluZGV4IGJjNzMxYzUuLmFkNDNkOTMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxl cy9zcWwvOS4xX3BsdXMvbm9kZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv Zm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85 LjFfcGx1cy9ub2RlLnNxbApAQCAtMTEsNCArMTEsNCBAQCBMRUZUIE9VVEVS IEpPSU4KICAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9 Yy5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykK IFdIRVJFCiAgICAgYy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCi1P UkRFUiBCWSBjLnJlbG5hbWU7CitPUkRFUiBCWSBjLnJlbG5hbWUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRl cy9mb3JlaWduX3RhYmxlcy9zcWwvOS4yX3BsdXMvbm9kZS5zcWwgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mb3JlaWduX3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90 YWJsZXMvc3FsLzkuMl9wbHVzL25vZGUuc3FsCmluZGV4IGJjNzMxYzUuLmFk NDNkOTMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFi bGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9zcWwvOS4yX3BsdXMvbm9k ZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVt cGxhdGVzL2ZvcmVpZ25fdGFibGVzL3NxbC85LjJfcGx1cy9ub2RlLnNxbApA QCAtMTEsNCArMTEsNCBAQCBMRUZUIE9VVEVSIEpPSU4KICAgICBwZ19kZXNj cmlwdGlvbiBkZXMgT04gKGRlcy5vYmpvaWQ9Yy5vaWQgQU5EIGRlcy5jbGFz c29pZD0ncGdfY2xhc3MnOjpyZWdjbGFzcykKIFdIRVJFCiAgICAgYy5yZWxu YW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCi1PUkRFUiBCWSBjLnJlbG5hbWU7 CitPUkRFUiBCWSBjLnJlbG5hbWUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3JlaWduX3RhYmxlcy9z cWwvOS41X3BsdXMvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mb3JlaWdu X3RhYmxlcy90ZW1wbGF0ZXMvZm9yZWlnbl90YWJsZXMvc3FsLzkuNV9wbHVz L25vZGUuc3FsCmluZGV4IGJjNzMxYzUuLmFkNDNkOTMgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2ZvcmVpZ25fdGFibGVzL3RlbXBsYXRlcy9mb3Jl aWduX3RhYmxlcy9zcWwvOS41X3BsdXMvbm9kZS5zcWwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZm9yZWlnbl90YWJsZXMvdGVtcGxhdGVzL2ZvcmVpZ25fdGFi bGVzL3NxbC85LjVfcGx1cy9ub2RlLnNxbApAQCAtMTEsNCArMTEsNCBAQCBM RUZUIE9VVEVSIEpPSU4KICAgICBwZ19kZXNjcmlwdGlvbiBkZXMgT04gKGRl cy5vYmpvaWQ9Yy5vaWQgQU5EIGRlcy5jbGFzc29pZD0ncGdfY2xhc3MnOjpy ZWdjbGFzcykKIFdIRVJFCiAgICAgYy5yZWxuYW1lc3BhY2UgPSB7e3NjaWR9 fTo6b2lkCi1PUkRFUiBCWSBjLnJlbG5hbWU7CitPUkRFUiBCWSBjLnJlbG5h bWUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1cmF0 aW9ucy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c19jb25maWd1 cmF0aW9ucy9fX2luaXRfXy5weQppbmRleCA4YzMyMDI1Li5lMTk3ZDkwIDEw MDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfY29uZmlndXJhdGlvbnMv X19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2NvbmZpZ3Vy YXRpb25zL19faW5pdF9fLnB5CkBAIC0yNiw2ICsyNiwzNCBAQCBmcm9tIHBn YWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCiBmcm9tIGNv bmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKIAogCitkZWYgY2hlY2tf cHJlY29uZGl0aW9uKGYpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24g d2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MK KyAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcs IGl0IHdpbGwgYWxzbyBhdHRhY2hlcworICAgIG1hbmFnZXIsY29ubiAmIHRl bXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisgICAgIiIiCisKKyAg ICBAd3JhcHMoZikKKyAgICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgor ICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJn cyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAgICAgc2VsZiA9IGFyZ3Nb MF0KKyAgICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZB VUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKAorICAgICAgICAgICAg a3dhcmdzWydzaWQnXSkKKyAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5h Z2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICMg SWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93 c2VyCisgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6Cisg ICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAg ICAgICAgICAgICAgIF8oIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMg YmVlbiBsb3N0ISIpCisgICAgICAgICAgICApCisgICAgICAgICMgd2Ugd2ls bCBzZXQgdGVtcGxhdGUgcGF0aCBmb3Igc3FsIHNjcmlwdHMgZGVwZW5kaW5n IHVwb24gc2VydmVyIHZlcnNpb24KKyAgICAgICAgdmVyID0gc2VsZi5tYW5h Z2VyLnZlcnNpb24KKyAgICAgICAgaWYgdmVyID49IDkwMTAwOgorICAgICAg ICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2Z0c19jb25maWd1cmF0aW9u L3NxbC85LjFfcGx1cycKKyAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dh cmdzKQorCisgICAgcmV0dXJuIHdyYXAKKworCiBjbGFzcyBGdHNDb25maWd1 cmF0aW9uTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKICAgICAiIiIKICAg ICAgY2xhc3MgRnRzQ29uZmlndXJhdGlvbk1vZHVsZShTY2hlbWFDaGlsZE1v ZHVsZSkKQEAgLTU4LDYgKzg2LDcgQEAgY2xhc3MgRnRzQ29uZmlndXJhdGlv bk1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6CiAgICAgICAgIHNlbGYubWFu YWdlciA9IE5vbmUKICAgICAgICAgc3VwZXIoRnRzQ29uZmlndXJhdGlvbk1v ZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQogCisgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwg Z2lkLCBzaWQsIGRpZCwgc2NpZCk6CiAgICAgICAgICIiIgogICAgICAgICBH ZW5lcmF0ZSB0aGUgY29sbGVjdGlvbiBub2RlCkBAIC02Niw3ICs5NSwxOCBA QCBjbGFzcyBGdHNDb25maWd1cmF0aW9uTW9kdWxlKFNjaGVtYUNoaWxkTW9k dWxlKToKICAgICAgICAgOnBhcmFtIGRpZDogZGF0YWJhc2UgaWQKICAgICAg ICAgOnBhcmFtIHNjaWQ6IHNjaGVtYSBpZAogICAgICAgICAiIiIKLSAgICAg ICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9k ZShzY2lkKQorICAgICAgICBjb2xsZWN0aW9uX2NvdW50ID0gMAorCisgICAg ICAgIGNvdW50X3NxbCA9ICdTRUxFQ1QgY291bnQoKikgRlJPTSggJworICAg ICAgICBub2RlX3NxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAnbm9kZXMuc3FsJ10pLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBzY2lkPXNjaWQpCisgICAgICAgIGNv dW50X3NxbCArPSBub2RlX3NxbCArICcgKSBBUyBjb2xsZWN0aW9uX2NvdW50 JworCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRl X3NjYWxhcihjb3VudF9zcWwpCisgICAgICAgIGlmIHN0YXR1czoKKyAgICAg ICAgICAgIGNvbGxlY3Rpb25fY291bnQgPSByc2V0CisKKyAgICAgICAgeWll bGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lk LCBjb2xsZWN0aW9uX2NvdW50KQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVm IG5vZGVfaW5vZGUoc2VsZik6CkBAIC0yMTYsMzMgKzI1Niw2IEBAIGNsYXNz IEZ0c0NvbmZpZ3VyYXRpb25WaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAg ICAgICAgICAyMDAsIHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gt amF2YXNjcmlwdCd9CiAgICAgICAgICkKIAotICAgIGRlZiBjaGVja19wcmVj b25kaXRpb24oZik6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hl Y2tzCi0gICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5p bmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCi0gICAgICAgIG1hbmFn ZXIsY29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCi0g ICAgICAgICIiIgotCi0gICAgICAgIEB3cmFwcyhmKQotICAgICAgICBkZWYg d3JhcCgqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAgICAgIyBIZXJlIGFy Z3NbMF0gd2lsbCBob2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxz aWQsZGlkCi0gICAgICAgICAgICBzZWxmID0gYXJnc1swXQotICAgICAgICAg ICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZF UikuY29ubmVjdGlvbl9tYW5hZ2VyKAotICAgICAgICAgICAgICAgIGt3YXJn c1snc2lkJ10pCi0gICAgICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFn ZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKLSAgICAgICAgICAg ICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBi cm93c2VyCi0gICAgICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3Rl ZCgpOgotICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVx dWlyZWQoCi0gICAgICAgICAgICAgICAgICAgIF8oIkNvbm5lY3Rpb24gdG8g dGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIpCi0gICAgICAgICAgICAgICAg KQotICAgICAgICAgICAgIyB3ZSB3aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZv ciBzcWwgc2NyaXB0cyBkZXBlbmRpbmcgdXBvbiBzZXJ2ZXIgdmVyc2lvbgot ICAgICAgICAgICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KLSAgICAg ICAgICAgIGlmIHZlciA+PSA5MDEwMDoKLSAgICAgICAgICAgICAgICBzZWxm LnRlbXBsYXRlX3BhdGggPSAnZnRzX2NvbmZpZ3VyYXRpb24vc3FsLzkuMV9w bHVzJwotICAgICAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQot Ci0gICAgICAgIHJldHVybiB3cmFwCi0KICAgICBAY2hlY2tfcHJlY29uZGl0 aW9uCiAgICAgZGVmIGxpc3Qoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6 CiAgICAgICAgICIiIgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRz X2RpY3Rpb25hcmllcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0 c19kaWN0aW9uYXJpZXMvX19pbml0X18ucHkKaW5kZXggYjdkZWEwOC4uMTBm YmUxOCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX2RpY3Rpb25h cmllcy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfZGlj dGlvbmFyaWVzL19faW5pdF9fLnB5CkBAIC0yNiw2ICsyNiwzNCBAQCBmcm9t IHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCiBmcm9t IGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKIAogCitkZWYgY2hl Y2tfcHJlY29uZGl0aW9uKGYpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rp b24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVj a3MKKyAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZp ZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcworICAgIG1hbmFnZXIsY29ubiAm IHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisgICAgIiIiCisK KyAgICBAd3JhcHMoZikKKyAgICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3Mp OgorICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3 YXJncyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAgICAgc2VsZiA9IGFy Z3NbMF0KKyAgICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19E RUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKAorICAgICAgICAg ICAga3dhcmdzWydzaWQnXSkKKyAgICAgICAgc2VsZi5jb25uID0gc2VsZi5t YW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAg ICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBi cm93c2VyCisgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6 CisgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAor ICAgICAgICAgICAgICAgIF8oIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBo YXMgYmVlbiBsb3N0ISIpCisgICAgICAgICAgICApCisgICAgICAgICMgd2Ug d2lsbCBzZXQgdGVtcGxhdGUgcGF0aCBmb3Igc3FsIHNjcmlwdHMgZGVwZW5k aW5nIHVwb24gc2VydmVyIHZlcnNpb24KKyAgICAgICAgdmVyID0gc2VsZi5t YW5hZ2VyLnZlcnNpb24KKyAgICAgICAgaWYgdmVyID49IDkwMTAwOgorICAg ICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2Z0c19kaWN0aW9uYXJ5 L3NxbC85LjFfcGx1cycKKyAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dh cmdzKQorCisgICAgcmV0dXJuIHdyYXAKKworCiBjbGFzcyBGdHNEaWN0aW9u YXJ5TW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKICAgICAiIiIKICAgICAg Y2xhc3MgRnRzRGljdGlvbmFyeU1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSkK QEAgLTU3LDYgKzg1LDcgQEAgY2xhc3MgRnRzRGljdGlvbmFyeU1vZHVsZShT Y2hlbWFDaGlsZE1vZHVsZSk6CiAgICAgICAgIHNlbGYubWFuYWdlciA9IE5v bmUKICAgICAgICAgc3VwZXIoRnRzRGljdGlvbmFyeU1vZHVsZSwgc2VsZiku X19pbml0X18oKmFyZ3MsICoqa3dhcmdzKQogCisgICAgQGNoZWNrX3ByZWNv bmRpdGlvbgogICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCk6CiAgICAgICAgICIiIgogICAgICAgICBHZW5lcmF0ZSB0aGUg Y29sbGVjdGlvbiBub2RlCkBAIC02NSw3ICs5NCwxOCBAQCBjbGFzcyBGdHNE aWN0aW9uYXJ5TW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKICAgICAgICAg OnBhcmFtIGRpZDogZGF0YWJhc2UgaWQKICAgICAgICAgOnBhcmFtIHNjaWQ6 IHNjaGVtYSBpZAogICAgICAgICAiIiIKLSAgICAgICAgeWllbGQgc2VsZi5n ZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkKQorICAgICAg ICBjb2xsZWN0aW9uX2NvdW50ID0gMAorCisgICAgICAgIGNvdW50X3NxbCA9 ICdTRUxFQ1QgY291bnQoKikgRlJPTSggJworICAgICAgICBub2RlX3NxbCA9 IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRo LCAnbm9kZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzY2lkPXNjaWQpCisgICAgICAgIGNvdW50X3NxbCArPSBub2Rl X3NxbCArICcgKSBBUyBjb2xsZWN0aW9uX2NvdW50JworCisgICAgICAgIHN0 YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihjb3VudF9z cWwpCisgICAgICAgIGlmIHN0YXR1czoKKyAgICAgICAgICAgIGNvbGxlY3Rp b25fY291bnQgPSByc2V0CisKKyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0 ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkLCBjb2xsZWN0aW9uX2Nv dW50KQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIG5vZGVfaW5vZGUoc2Vs Zik6CkBAIC0yMDgsMzMgKzI0OCw2IEBAIGNsYXNzIEZ0c0RpY3Rpb25hcnlW aWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAgICAgICAyMDAsIHsnQ29u dGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtamF2YXNjcmlwdCd9CiAgICAg ICAgICkKIAotICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6Ci0gICAg ICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFz IGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzCi0gICAgICAgIGRhdGFi YXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmlldywgaXQgd2lsbCBh bHNvIGF0dGFjaGVzCi0gICAgICAgIG1hbmFnZXIsY29ubiAmIHRlbXBsYXRl X3BhdGggcHJvcGVydGllcyB0byBzZWxmCi0gICAgICAgICIiIgotCi0gICAg ICAgIEB3cmFwcyhmKQotICAgICAgICBkZWYgd3JhcCgqYXJncywgKiprd2Fy Z3MpOgotICAgICAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHNl bGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCi0gICAgICAgICAg ICBzZWxmID0gYXJnc1swXQotICAgICAgICAgICAgc2VsZi5tYW5hZ2VyID0g Z2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5h Z2VyKAotICAgICAgICAgICAgICAgIGt3YXJnc1snc2lkJ10pCi0gICAgICAg ICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9 a3dhcmdzWydkaWQnXSkKLSAgICAgICAgICAgICMgSWYgREIgbm90IGNvbm5l Y3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCi0gICAgICAgICAg ICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgpOgotICAgICAgICAgICAg ICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCi0gICAgICAgICAg ICAgICAgICAgIF8oIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVl biBsb3N0ISIpCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgIyB3 ZSB3aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cyBkZXBl bmRpbmcgdXBvbiBzZXJ2ZXIgdmVyc2lvbgotICAgICAgICAgICAgdmVyID0g c2VsZi5tYW5hZ2VyLnZlcnNpb24KLSAgICAgICAgICAgIGlmIHZlciA+PSA5 MDEwMDoKLSAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAn ZnRzX2RpY3Rpb25hcnkvc3FsLzkuMV9wbHVzJwotICAgICAgICAgICAgcmV0 dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQotCi0gICAgICAgIHJldHVybiB3cmFw Ci0KICAgICBkZWYgdG9rZW5pemVfb3B0aW9ucyhzZWxmLCBvcHRpb25fdmFs dWUpOgogICAgICAgICAiIiIKICAgICAgICAgVGhpcyBmdW5jdGlvbiB3aWxs IHRva2VuaXplIHRoZSBzdHJpbmcgc3RvcmVkIGluIGRhdGFiYXNlCmRpZmYg LS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfcGFyc2VyL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3BhcnNlci9fX2luaXRfXy5weQppbmRl eCBjZDMxOTIyLi5jYTAxOTgwIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdHNfcGFyc2VyL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z0c19wYXJzZXIvX19pbml0X18ucHkKQEAgLTI1LDYgKzI1LDM1IEBAIGZy b20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKIGZy b20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgogCiAKK2RlZiBj aGVja19wcmVjb25kaXRpb24oZik6CisgICAgIiIiCisgICAgVGhpcyBmdW5j dGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNo ZWNrcworICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcg dmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAgbWFuYWdlcixjb25u ICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAgICAiIiIK KworICAgIEB3cmFwcyhmKQorICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJn cyk6CisgICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYg a3dhcmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAorICAgICAgICBzZWxmID0g YXJnc1swXQorICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBH X0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoCisgICAgICAg ICAgICBrd2FyZ3NbJ3NpZCddKQorICAgICAgICBzZWxmLmNvbm4gPSBzZWxm Lm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKKyAgICAg ICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRv IGJyb3dzZXIKKyAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25uZWN0ZWQo KToKKyAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQo CisgICAgICAgICAgICAgICAgXygKKyAgICAgICAgICAgICAgICAgICAgIkNv bm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKKyAgICAg ICAgICAgICAgICApCisgICAgICAgICAgICApCisgICAgICAgICMgd2Ugd2ls bCBzZXQgdGVtcGxhdGUgcGF0aCBmb3Igc3FsIHNjcmlwdHMgZGVwZW5kaW5n IHVwb24gc2VydmVyIHZlcnNpb24KKyAgICAgICAgdmVyID0gc2VsZi5tYW5h Z2VyLnZlcnNpb24KKyAgICAgICAgaWYgdmVyID49IDkwMTAwOgorICAgICAg ICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2Z0c19wYXJzZXIvc3FsLzku MV9wbHVzJworICAgICAgICByZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisK KyAgICByZXR1cm4gd3JhcAorCiBjbGFzcyBGdHNQYXJzZXJNb2R1bGUoU2No ZW1hQ2hpbGRNb2R1bGUpOgogICAgICIiIgogICAgICBjbGFzcyBGdHNQYXJz ZXJNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpCkBAIC00Niw2ICs3NSw3IEBA IGNsYXNzIEZ0c1BhcnNlck1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6CiAg ICAgTk9ERV9UWVBFID0gJ2Z0c19wYXJzZXInCiAgICAgQ09MTEVDVElPTl9M QUJFTCA9IF8oJ0ZUUyBQYXJzZXJzJykKIAorICAgIEBjaGVja19wcmVjb25k aXRpb24KICAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQpOgogICAgICAgICAiIiIKICAgICAgICAgR2VuZXJhdGUgdGhlIGNv bGxlY3Rpb24gbm9kZQpAQCAtNTQsNyArODQsMTggQEAgY2xhc3MgRnRzUGFy c2VyTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKICAgICAgICAgOnBhcmFt IGRpZDogZGF0YWJhc2UgaWQKICAgICAgICAgOnBhcmFtIHNjaWQ6IHNjaGVt YSBpZAogICAgICAgICAiIiIKLSAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0 ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkKQorICAgICAgICBjb2xs ZWN0aW9uX2NvdW50ID0gMAorCisgICAgICAgIGNvdW50X3NxbCA9ICdTRUxF Q1QgY291bnQoKikgRlJPTSggJworICAgICAgICBub2RlX3NxbCA9IHJlbmRl cl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9wYXRoLCAnbm9k ZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBzY2lkPXNjaWQpCisgICAgICAgIGNvdW50X3NxbCArPSBub2RlX3NxbCAr ICcgKSBBUyBjb2xsZWN0aW9uX2NvdW50JworCisgICAgICAgIHN0YXR1cywg cnNldCA9IHNlbGYuY29ubi5leGVjdXRlX3NjYWxhcihjb3VudF9zcWwpCisg ICAgICAgIGlmIHN0YXR1czoKKyAgICAgICAgICAgIGNvbGxlY3Rpb25fY291 bnQgPSByc2V0CisKKyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93 c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkLCBjb2xsZWN0aW9uX2NvdW50KQog CiAgICAgQHByb3BlcnR5CiAgICAgZGVmIG5vZGVfaW5vZGUoc2VsZik6CkBA IC0yMDYsMzUgKzI0Nyw2IEBAIGNsYXNzIEZ0c1BhcnNlclZpZXcoUEdDaGls ZE5vZGVWaWV3KToKICAgICAgICAgc2VsZi5tYW5hZ2VyID0gTm9uZQogICAg ICAgICBzdXBlcihGdHNQYXJzZXJWaWV3LCBzZWxmKS5fX2luaXRfXygqKmt3 YXJncykKIAotICAgIGRlZiBjaGVja19wcmVjb25kaXRpb24oZik6Ci0gICAg ICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFz IGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzCi0gICAgICAgIGRhdGFi YXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmlldywgaXQgd2lsbCBh bHNvIGF0dGFjaGVzCi0gICAgICAgIG1hbmFnZXIsY29ubiAmIHRlbXBsYXRl X3BhdGggcHJvcGVydGllcyB0byBzZWxmCi0gICAgICAgICIiIgotCi0gICAg ICAgIEB3cmFwcyhmKQotICAgICAgICBkZWYgd3JhcCgqYXJncywgKiprd2Fy Z3MpOgotICAgICAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHNl bGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCi0gICAgICAgICAg ICBzZWxmID0gYXJnc1swXQotICAgICAgICAgICAgc2VsZi5tYW5hZ2VyID0g Z2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5h Z2VyKAotICAgICAgICAgICAgICAgIGt3YXJnc1snc2lkJ10pCi0gICAgICAg ICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9 a3dhcmdzWydkaWQnXSkKLSAgICAgICAgICAgICMgSWYgREIgbm90IGNvbm5l Y3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCi0gICAgICAgICAg ICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgpOgotICAgICAgICAgICAg ICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCi0gICAgICAgICAg ICAgICAgICAgIF8oCi0gICAgICAgICAgICAgICAgICAgICAgICAiQ29ubmVj dGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIgotICAgICAgICAg ICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgKQotICAgICAgICAgICAg IyB3ZSB3aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cyBk ZXBlbmRpbmcgdXBvbiBzZXJ2ZXIgdmVyc2lvbgotICAgICAgICAgICAgdmVy ID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KLSAgICAgICAgICAgIGlmIHZlciA+ PSA5MDEwMDoKLSAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGgg PSAnZnRzX3BhcnNlci9zcWwvOS4xX3BsdXMnCi0gICAgICAgICAgICByZXR1 cm4gZigqYXJncywgKiprd2FyZ3MpCi0KLSAgICAgICAgcmV0dXJuIHdyYXAK LQogICAgIEBjaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgbGlzdChzZWxm LCBnaWQsIHNpZCwgZGlkLCBzY2lkKToKICAgICAgICAgc3FsID0gcmVuZGVy X3RlbXBsYXRlKApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3Rl bXBsYXRlcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z0c190ZW1w bGF0ZXMvX19pbml0X18ucHkKaW5kZXggYTM0OTE5Ny4uNzk3NDYwMSAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnRzX3RlbXBsYXRlcy9fX2luaXRf Xy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdHNfdGVtcGxhdGVzL19faW5p dF9fLnB5CkBAIC0yNSw2ICsyNSwzNSBAQCBmcm9tIHBnYWRtaW4udXRpbHMu ZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCiBmcm9tIGNvbmZpZyBpbXBvcnQg UEdfREVGQVVMVF9EUklWRVIKIAogCitkZWYgY2hlY2tfcHJlY29uZGl0aW9u KGYpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUg YXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAgICBkYXRhYmFz ZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcsIGl0IHdpbGwgYWxz byBhdHRhY2hlcworICAgIG1hbmFnZXIsY29ubiAmIHRlbXBsYXRlX3BhdGgg cHJvcGVydGllcyB0byBzZWxmCisgICAgIiIiCisKKyAgICBAd3JhcHMoZikK KyAgICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgorICAgICAgICAjIEhl cmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQg Z2lkLHNpZCxkaWQKKyAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAgICAgICAg c2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUiku Y29ubmVjdGlvbl9tYW5hZ2VyKAorICAgICAgICAgICAga3dhcmdzWydzaWQn XSkKKyAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rp b24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICMgSWYgREIgbm90IGNv bm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCisgICAgICAg IGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6CisgICAgICAgICAgICBy ZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAgICAg IGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRv IHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgKQorICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBs YXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzIGRlcGVuZGluZyB1cG9uIHNlcnZl ciB2ZXJzaW9uCisgICAgICAgIHZlciA9IHNlbGYubWFuYWdlci52ZXJzaW9u CisgICAgICAgIGlmIHZlciA+PSA5MDEwMDoKKyAgICAgICAgICAgIHNlbGYu dGVtcGxhdGVfcGF0aCA9ICdmdHNfdGVtcGxhdGUvc3FsLzkuMV9wbHVzJwor ICAgICAgICByZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICByZXR1 cm4gd3JhcAorCiBjbGFzcyBGdHNUZW1wbGF0ZU1vZHVsZShTY2hlbWFDaGls ZE1vZHVsZSk6CiAgICAgIiIiCiAgICAgIGNsYXNzIEZ0c1RlbXBsYXRlTW9k dWxlKFNjaGVtYUNoaWxkTW9kdWxlKQpAQCAtNTQsNiArODMsNyBAQCBjbGFz cyBGdHNUZW1wbGF0ZU1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6CiAgICAg ICAgIHNlbGYubWF4X3ZlciA9IE5vbmUKICAgICAgICAgc3VwZXIoRnRzVGVt cGxhdGVNb2R1bGUsIHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykK IAorICAgIEBjaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgZ2V0X25vZGVz KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgogICAgICAgICAiIiIKICAg ICAgICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rpb24gbm9kZQpAQCAtNjIsNyAr OTIsMTggQEAgY2xhc3MgRnRzVGVtcGxhdGVNb2R1bGUoU2NoZW1hQ2hpbGRN b2R1bGUpOgogICAgICAgICA6cGFyYW0gZGlkOiBkYXRhYmFzZSBpZAogICAg ICAgICA6cGFyYW0gc2NpZDogc2NoZW1hIGlkCiAgICAgICAgICIiIgotICAg ICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9u b2RlKHNjaWQpCisgICAgICAgIGNvbGxlY3Rpb25fY291bnQgPSAwCisKKyAg ICAgICAgY291bnRfc3FsID0gJ1NFTEVDVCBjb3VudCgqKSBGUk9NKCAnCisg ICAgICAgIG5vZGVfc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsICdub2Rlcy5zcWwnXSksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9c2NpZCkKKyAgICAgICAg Y291bnRfc3FsICs9IG5vZGVfc3FsICsgJyApIEFTIGNvbGxlY3Rpb25fY291 bnQnCisKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1 dGVfc2NhbGFyKGNvdW50X3NxbCkKKyAgICAgICAgaWYgc3RhdHVzOgorICAg ICAgICAgICAgY29sbGVjdGlvbl9jb3VudCA9IHJzZXQKKworICAgICAgICB5 aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKHNj aWQsIGNvbGxlY3Rpb25fY291bnQpCiAKICAgICBAcHJvcGVydHkKICAgICBk ZWYgbm9kZV9pbm9kZShzZWxmKToKQEAgLTE5NSwzNSArMjM2LDYgQEAgY2xh c3MgRnRzVGVtcGxhdGVWaWV3KFBHQ2hpbGROb2RlVmlldyk6CiAgICAgICAg ICAgICAyMDAsIHsnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL3gtamF2 YXNjcmlwdCd9CiAgICAgICAgICkKIAotICAgIGRlZiBjaGVja19wcmVjb25k aXRpb24oZik6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0aW9u IHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tz Ci0gICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcg dmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCi0gICAgICAgIG1hbmFnZXIs Y29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCi0gICAg ICAgICIiIgotCi0gICAgICAgIEB3cmFwcyhmKQotICAgICAgICBkZWYgd3Jh cCgqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAgICAgIyBIZXJlIGFyZ3Nb MF0gd2lsbCBob2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQs ZGlkCi0gICAgICAgICAgICBzZWxmID0gYXJnc1swXQotICAgICAgICAgICAg c2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUiku Y29ubmVjdGlvbl9tYW5hZ2VyKAotICAgICAgICAgICAgICAgIGt3YXJnc1sn c2lkJ10pCi0gICAgICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIu Y29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKLSAgICAgICAgICAgICMg SWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93 c2VyCi0gICAgICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgp OgotICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWly ZWQoCi0gICAgICAgICAgICAgICAgICAgIGdldHRleHQoCi0gICAgICAgICAg ICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBi ZWVuIGxvc3QhIgotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAg ICAgICAgKQotICAgICAgICAgICAgIyB3ZSB3aWxsIHNldCB0ZW1wbGF0ZSBw YXRoIGZvciBzcWwgc2NyaXB0cyBkZXBlbmRpbmcgdXBvbiBzZXJ2ZXIgdmVy c2lvbgotICAgICAgICAgICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24K LSAgICAgICAgICAgIGlmIHZlciA+PSA5MDEwMDoKLSAgICAgICAgICAgICAg ICBzZWxmLnRlbXBsYXRlX3BhdGggPSAnZnRzX3RlbXBsYXRlL3NxbC85LjFf cGx1cycKLSAgICAgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykK LQotICAgICAgICByZXR1cm4gd3JhcAotCiAgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgogICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQp OgogICAgICAgICBzcWwgPSByZW5kZXJfdGVtcGxhdGUoCmRpZmYgLS1naXQg YS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9k YXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvX19pbml0X18ucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvX19pbml0X18ucHkKaW5kZXggY2E2OWNh Yy4uMjhjZjVhMSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL19faW5pdF9fLnB5CisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy9fX2luaXRfXy5weQpAQCAtMzUsNiArMzUsNTMgQEAgZnJvbSBwZ2FkbWlu LnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZlcgogZnJvbSBjb25maWcg aW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCiAKIAorZGVmIGNoZWNrX3ByZWNv bmRpdGlvbihmKToKKyAgICAiIiIKKyAgICBXb3JrcyBhcyBhIGRlY29yYXRv ci4KKyAgICBDaGVja3MgdGhlIGRhdGFiYXNlIGNvbm5lY3Rpb24gc3RhdHVz LgorICAgIEF0dGFjaGVzIHRoZSBjb25uZWN0aW9uIG9iamVjdCBhbmQgdGVt cGxhdGUgcGF0aCB0byB0aGUgY2xhc3Mgb2JqZWN0LgorICAgICIiIgorCisg ICAgQHdyYXBzKGYpCisgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToK KyAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAgICAgICAgZHJpdmVyID0gZ2V0 X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikKKyAgICAgICAgc2VsZi5tYW5h Z2VyID0gZHJpdmVyLmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCdd KQorCisgICAgICAgICMgR2V0IGRhdGFiYXNlIGNvbm5lY3Rpb24KKyAgICAg ICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3 YXJnc1snZGlkJ10pCisKKyAgICAgICAgc2VsZi5xdElkZW50ID0gZHJpdmVy LnF0SWRlbnQKKyAgICAgICAgc2VsZi5xdExpdGVyYWwgPSBkcml2ZXIucXRM aXRlcmFsCisKKyAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25uZWN0ZWQo KToKKyAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQo CisgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAgICAgICAg ICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIK KyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisKKyAgICAgICAg dmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KKworICAgICAgICAjIFNldCB0 ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cyBkZXBlbmRpbmcKKyAgICAg ICAgIyBvbiB0aGUgc2VydmVyIHZlcnNpb24uCisgICAgICAgIHNlbGYudGVt cGxhdGVfcGF0aCA9ICIvIi5qb2luKFsKKyAgICAgICAgICAgIHNlbGYubm9k ZV90eXBlCisgICAgICAgIF0pCisgICAgICAgIHNlbGYuc3FsX3RlbXBsYXRl X3BhdGggPSAiLyIuam9pbihbCisgICAgICAgICAgICBzZWxmLnRlbXBsYXRl X3BhdGgsCisgICAgICAgICAgICBzZWxmLm1hbmFnZXIuc2VydmVyX3R5cGUs CisgICAgICAgICAgICAnc3FsJywKKyAgICAgICAgICAgICc5LjVfcGx1cycg aWYgdmVyID49IDkwNTAwIGVsc2UKKyAgICAgICAgICAgICc5LjJfcGx1cycg aWYgdmVyID49IDkwMjAwIGVsc2UKKyAgICAgICAgICAgICc5LjFfcGx1cycK KyAgICAgICAgXSkKKworICAgICAgICByZXR1cm4gZigqYXJncywgKiprd2Fy Z3MpCisKKyAgICByZXR1cm4gd3JhcAorCisKIGNsYXNzIEZ1bmN0aW9uTW9k dWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKICAgICAiIiIKICAgICBjbGFzcyBG dW5jdGlvbk1vZHVsZShTY2hlbWFDaGlsZE1vZHVsZSk6CkBAIC03NiwxMSAr MTIzLDIzIEBAIGNsYXNzIEZ1bmN0aW9uTW9kdWxlKFNjaGVtYUNoaWxkTW9k dWxlKToKICAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQogICAgICAgICBz ZWxmLnNlcnZlcl90eXBlID0gTm9uZQogCisgICAgQGNoZWNrX3ByZWNvbmRp dGlvbgogICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c2NpZCk6CiAgICAgICAgICIiIgogICAgICAgICBHZW5lcmF0ZSBGdW5jdGlv bnMgY29sbGVjdGlvbiBub2RlLgogICAgICAgICAiIiIKLSAgICAgICAgeWll bGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lk KQorICAgICAgICBjb2xsZWN0aW9uX2NvdW50ID0gMAorCisgICAgICAgIGNv dW50X3NxbCA9ICdTRUxFQ1QgY291bnQoKikgRlJPTSggJworICAgICAgICBu b2RlX3NxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi5zcWxf dGVtcGxhdGVfcGF0aCwgJ25vZGUuc3FsJ10pLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzY2lkPXNjaWQpCisgICAgICAgIGNvdW50 X3NxbCArPSBub2RlX3NxbCArICcgKSBBUyBjb2xsZWN0aW9uX2NvdW50Jwor CisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihjb3VudF9zcWwpCisgICAgICAgIGlmIHN0YXR1czoKKyAgICAgICAg ICAgIGNvbGxlY3Rpb25fY291bnQgPSByc2V0CisKKyAgICAgICAgeWllbGQg c2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkLCBj b2xsZWN0aW9uX2NvdW50KQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIG5v ZGVfaW5vZGUoc2VsZik6CkBAIC0zMTQsNTIgKzM3Myw2IEBAIGNsYXNzIEZ1 bmN0aW9uVmlldyhQR0NoaWxkTm9kZVZpZXcsIERhdGFUeXBlUmVhZGVyKToK ICAgICAgICAgICAgIDIwMCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRp b24veC1qYXZhc2NyaXB0J30KICAgICAgICAgKQogCi0gICAgZGVmIGNoZWNr X3ByZWNvbmRpdGlvbihmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFdvcmtz IGFzIGEgZGVjb3JhdG9yLgotICAgICAgICBDaGVja3MgdGhlIGRhdGFiYXNl IGNvbm5lY3Rpb24gc3RhdHVzLgotICAgICAgICBBdHRhY2hlcyB0aGUgY29u bmVjdGlvbiBvYmplY3QgYW5kIHRlbXBsYXRlIHBhdGggdG8gdGhlIGNsYXNz IG9iamVjdC4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgQHdyYXBzKGYpCi0g ICAgICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICAg ICBzZWxmID0gYXJnc1swXQotICAgICAgICAgICAgZHJpdmVyID0gZ2V0X2Ry aXZlcihQR19ERUZBVUxUX0RSSVZFUikKLSAgICAgICAgICAgIHNlbGYubWFu YWdlciA9IGRyaXZlci5jb25uZWN0aW9uX21hbmFnZXIoa3dhcmdzWydzaWQn XSkKLQotICAgICAgICAgICAgIyBHZXQgZGF0YWJhc2UgY29ubmVjdGlvbgot ICAgICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rp b24oZGlkPWt3YXJnc1snZGlkJ10pCi0KLSAgICAgICAgICAgIHNlbGYucXRJ ZGVudCA9IGRyaXZlci5xdElkZW50Ci0gICAgICAgICAgICBzZWxmLnF0TGl0 ZXJhbCA9IGRyaXZlci5xdExpdGVyYWwKLQotICAgICAgICAgICAgaWYgbm90 IHNlbGYuY29ubi5jb25uZWN0ZWQoKToKLSAgICAgICAgICAgICAgICByZXR1 cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAotICAgICAgICAgICAgICAgICAg ICBnZXR0ZXh0KAotICAgICAgICAgICAgICAgICAgICAgICAgIkNvbm5lY3Rp b24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKLSAgICAgICAgICAg ICAgICAgICAgKQotICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAg dmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KLQotICAgICAgICAgICAgIyBT ZXQgdGVtcGxhdGUgcGF0aCBmb3Igc3FsIHNjcmlwdHMgZGVwZW5kaW5nCi0g ICAgICAgICAgICAjIG9uIHRoZSBzZXJ2ZXIgdmVyc2lvbi4KLSAgICAgICAg ICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICIvIi5qb2luKFsKLSAgICAgICAg ICAgICAgICBzZWxmLm5vZGVfdHlwZQotICAgICAgICAgICAgXSkKLSAgICAg ICAgICAgIHNlbGYuc3FsX3RlbXBsYXRlX3BhdGggPSAiLyIuam9pbihbCi0g ICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoLAotICAgICAgICAg ICAgICAgIHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZSwKLSAgICAgICAgICAg ICAgICAnc3FsJywKLSAgICAgICAgICAgICAgICAnOS41X3BsdXMnIGlmIHZl ciA+PSA5MDUwMCBlbHNlCi0gICAgICAgICAgICAgICAgJzkuMl9wbHVzJyBp ZiB2ZXIgPj0gOTAyMDAgZWxzZQotICAgICAgICAgICAgICAgICc5LjFfcGx1 cycKLSAgICAgICAgICAgIF0pCi0KLSAgICAgICAgICAgIHJldHVybiBmKCph cmdzLCAqKmt3YXJncykKLQotICAgICAgICByZXR1cm4gd3JhcAotCiAgICAg QGNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwg c2lkLCBkaWQsIHNjaWQpOgogICAgICAgICAiIiIKQEAgLTE0NzEsMTEgKzE0 ODQsMjMgQEAgY2xhc3MgUHJvY2VkdXJlTW9kdWxlKFNjaGVtYUNoaWxkTW9k dWxlKToKICAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQogICAgICAgICBz ZWxmLnNlcnZlcl90eXBlID0gWydwcGFzJ10KIAorICAgIEBjaGVja19wcmVj b25kaXRpb24KICAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBk aWQsIHNjaWQpOgogICAgICAgICAiIiIKICAgICAgICAgR2VuZXJhdGUgUHJv Y2VkdXJlcyBjb2xsZWN0aW9uIG5vZGUuCiAgICAgICAgICIiIgotICAgICAg ICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2Rl KHNjaWQpCisgICAgICAgIGNvbGxlY3Rpb25fY291bnQgPSAwCisKKyAgICAg ICAgY291bnRfc3FsID0gJ1NFTEVDVCBjb3VudCgqKSBGUk9NKCAnCisgICAg ICAgIG5vZGVfc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxm LnNxbF90ZW1wbGF0ZV9wYXRoLCAnbm9kZS5zcWwnXSksCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHNjaWQ9c2NpZCkKKyAgICAgICAg Y291bnRfc3FsICs9IG5vZGVfc3FsICsgJyApIEFTIGNvbGxlY3Rpb25fY291 bnQnCisKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1 dGVfc2NhbGFyKGNvdW50X3NxbCkKKyAgICAgICAgaWYgc3RhdHVzOgorICAg ICAgICAgICAgY29sbGVjdGlvbl9jb3VudCA9IHJzZXQKKworICAgICAgICB5 aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKHNj aWQsIGNvbGxlY3Rpb25fY291bnQpCiAKICAgICBAcHJvcGVydHkKICAgICBk ZWYgbm9kZV9pbm9kZShzZWxmKToKQEAgLTE1ODEsMTEgKzE2MDYsMjMgQEAg Y2xhc3MgVHJpZ2dlckZ1bmN0aW9uTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxl KToKICAgICAgICAgc2VsZi5taW5fdmVyID0gOTAxMDAKICAgICAgICAgc2Vs Zi5tYXhfdmVyID0gTm9uZQogCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgog ICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCk6 CiAgICAgICAgICIiIgogICAgICAgICBHZW5lcmF0ZSBUcmlnZ2VyIGZ1bmN0 aW9uIGNvbGxlY3Rpb24gbm9kZS4KICAgICAgICAgIiIiCi0gICAgICAgIHlp ZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUoc2Np ZCkKKyAgICAgICAgY29sbGVjdGlvbl9jb3VudCA9IDAKKworICAgICAgICBj b3VudF9zcWwgPSAnU0VMRUNUIGNvdW50KCopIEZST00oICcKKyAgICAgICAg bm9kZV9zcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYuc3Fs X3RlbXBsYXRlX3BhdGgsICdub2RlLnNxbCddKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc2NpZD1zY2lkKQorICAgICAgICBjb3Vu dF9zcWwgKz0gbm9kZV9zcWwgKyAnICkgQVMgY29sbGVjdGlvbl9jb3VudCcK KworICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9z Y2FsYXIoY291bnRfc3FsKQorICAgICAgICBpZiBzdGF0dXM6CisgICAgICAg ICAgICBjb2xsZWN0aW9uX2NvdW50ID0gcnNldAorCisgICAgICAgIHlpZWxk IHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUoc2NpZCwg Y29sbGVjdGlvbl9jb3VudCkKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBu b2RlX2lub2RlKHNlbGYpOgpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS4xX3BsdXMv bm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9ub2RlLnNxbAppbmRleCBiYjZl YzlkLi41ZGRmZmRjIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9ub2Rl LnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9ub2RlLnNxbApAQCAtMTQsNCAr MTQsNCBAQCBXSEVSRQogICAgIEFORCBwcm9uYW1lc3BhY2UgPSB7e3NjaWR9 fTo6b2lkCiAgICAgQU5EIHR5cG5hbWUgTk9UIElOICgndHJpZ2dlcicsICdl dmVudF90cmlnZ2VyJykKIE9SREVSIEJZCi0gICAgcHJvbmFtZTsKKyAgICBw cm9uYW1lCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMv dGVtcGxhdGVzL2Z1bmN0aW9uL3BnL3NxbC85LjJfcGx1cy9ub2RlLnNxbCBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMl9wbHVzL25vZGUuc3FsCmluZGV4IGJiNmVjOWQuLjVkZGZm ZGMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL25vZGUuc3FsCisrKyBi L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24v cGcvc3FsLzkuMl9wbHVzL25vZGUuc3FsCkBAIC0xNCw0ICsxNCw0IEBAIFdI RVJFCiAgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKICAg ICBBTkQgdHlwbmFtZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdn ZXInKQogT1JERVIgQlkKLSAgICBwcm9uYW1lOworICAgIHByb25hbWUKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9z ZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMv ZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41 X3BsdXMvbm9kZS5zcWwKaW5kZXggYmI2ZWM5ZC4uNWRkZmZkYyAxMDA2NDQK LS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5j dGlvbi9wZy9zcWwvOS41X3BsdXMvbm9kZS5zcWwKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wZy9zcWwvOS41 X3BsdXMvbm9kZS5zcWwKQEAgLTE0LDQgKzE0LDQgQEAgV0hFUkUKICAgICBB TkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAogICAgIEFORCB0eXBu YW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCiBPUkRF UiBCWQotICAgIHByb25hbWU7CisgICAgcHJvbmFtZQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w cGFzL3NxbC85LjFfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMv bm9kZS5zcWwKaW5kZXggYzdmNDE1OS4uZWI5NTZhZCAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9w cGFzL3NxbC85LjFfcGx1cy9ub2RlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMV9w bHVzL25vZGUuc3FsCkBAIC0xNSw0ICsxNSw0IEBAIFdIRVJFCiAgICAgQU5E IHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKICAgICBBTkQgdHlwbmFt ZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQogT1JERVIg QlkKLSAgICBwcm9uYW1lOworICAgIHByb25hbWUKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBh cy9zcWwvOS4yX3BsdXMvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5j dGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVzL25v ZGUuc3FsCmluZGV4IGM3ZjQxNTkuLmViOTU2YWQgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBh cy9zcWwvOS4yX3BsdXMvbm9kZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1 cy9ub2RlLnNxbApAQCAtMTUsNCArMTUsNCBAQCBXSEVSRQogICAgIEFORCBw cm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCiAgICAgQU5EIHR5cG5hbWUg Tk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKIE9SREVSIEJZ Ci0gICAgcHJvbmFtZTsKKyAgICBwcm9uYW1lCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuNV9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rp b25zL3RlbXBsYXRlcy9mdW5jdGlvbi9wcGFzL3NxbC85LjVfcGx1cy9ub2Rl LnNxbAppbmRleCBjN2Y0MTU5Li5lYjk1NmFkIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL2Z1bmN0aW9uL3BwYXMv c3FsLzkuNV9wbHVzL25vZGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dz ZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1 bmN0aW9ucy90ZW1wbGF0ZXMvZnVuY3Rpb24vcHBhcy9zcWwvOS41X3BsdXMv bm9kZS5zcWwKQEAgLTE1LDQgKzE1LDQgQEAgV0hFUkUKICAgICBBTkQgcHJv bmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAogICAgIEFORCB0eXBuYW1lIE5P VCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCiBPUkRFUiBCWQot ICAgIHByb25hbWU7CisgICAgcHJvbmFtZQpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9z cWwvOS4xX3BsdXMvbm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1cy9ub2Rl LnNxbAppbmRleCA0YjY0OGM0Li5lZTRjMDI0IDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjFfcGx1cy9ub2RlLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9m dW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFzL3NxbC85LjFfcGx1 cy9ub2RlLnNxbApAQCAtMjIsNCArMjIsNCBAQCBXSEVSRQogICAgIEFORCBw cm9uYW1lc3BhY2UgPSB7e3NjaWR9fTo6b2lkCiAgICAgQU5EIHR5cG5hbWUg Tk9UIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKIE9SREVSIEJZ Ci0gICAgcHJvbmFtZTsKKyAgICBwcm9uYW1lCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3Byb2NlZHVyZS9wcGFz L3NxbC85LjJfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0 aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9wbHVzL25v ZGUuc3FsCmluZGV4IDRiNjQ4YzQuLmVlNGMwMjQgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bw YXMvc3FsLzkuMl9wbHVzL25vZGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3BwYXMvc3FsLzkuMl9w bHVzL25vZGUuc3FsCkBAIC0yMiw0ICsyMiw0IEBAIFdIRVJFCiAgICAgQU5E IHByb25hbWVzcGFjZSA9IHt7c2NpZH19OjpvaWQKICAgICBBTkQgdHlwbmFt ZSBOT1QgSU4gKCd0cmlnZ2VyJywgJ2V2ZW50X3RyaWdnZXInKQogT1JERVIg QlkKLSAgICBwcm9uYW1lOworICAgIHByb25hbWUKZGlmZiAtLWdpdCBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvcHJvY2VkdXJlL3Bw YXMvc3FsLzkuNV9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41X3BsdXMv bm9kZS5zcWwKaW5kZXggNGI2NDhjNC4uZWU0YzAyNCAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUv cHBhcy9zcWwvOS41X3BsdXMvbm9kZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvZnVuY3Rpb25zL3RlbXBsYXRlcy9wcm9jZWR1cmUvcHBhcy9zcWwvOS41 X3BsdXMvbm9kZS5zcWwKQEAgLTIyLDQgKzIyLDQgQEAgV0hFUkUKICAgICBB TkQgcHJvbmFtZXNwYWNlID0ge3tzY2lkfX06Om9pZAogICAgIEFORCB0eXBu YW1lIE5PVCBJTiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCiBPUkRF UiBCWQotICAgIHByb25hbWU7CisgICAgcHJvbmFtZQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1 bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9ub2RlLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9z cWwvOS4xX3BsdXMvbm9kZS5zcWwKaW5kZXggMWJjYzgxMy4uZjk5OTNiNiAx MDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRl cy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC85LjFfcGx1cy9ub2RlLnNxbAor KysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdn ZXJfZnVuY3Rpb24vcGcvc3FsLzkuMV9wbHVzL25vZGUuc3FsCkBAIC0xNCw0 ICsxNCw0IEBAIFdIRVJFCiAgICAgQU5EIHByb25hbWVzcGFjZSA9IHt7c2Np ZH19OjpvaWQKICAgICBBTkQgdHlwbmFtZSA9ICd0cmlnZ2VyJyBBTkQgbGFu bmFtZSAhPSAnZWRic3BsJwogT1JERVIgQlkKLSAgICBwcm9uYW1lOworICAg IHByb25hbWUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9u cy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvOS4yX3BsdXMv bm9kZS5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzkuMl9wbHVzL25vZGUuc3FsCmlu ZGV4IDEyYmIzYjUuLjM3OTg1YWEgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9z cWwvOS4yX3BsdXMvbm9kZS5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BnL3NxbC85LjJf cGx1cy9ub2RlLnNxbApAQCAtMTUsNCArMTUsNCBAQCBXSEVSRQogICAgIEFO RCB0eXBuYW1lIElOICgndHJpZ2dlcicsICdldmVudF90cmlnZ2VyJykKICAg ICBBTkQgbGFubmFtZSBOT1QgSU4gKCdlZGJzcGwnLCAnc3FsJywgJ2ludGVy bmFsJykKIE9SREVSIEJZCi0gICAgcHJvbmFtZTsKKyAgICBwcm9uYW1lCmRp ZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVzL25vZGUuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1 bmN0aW9uL3BnL3NxbC85LjVfcGx1cy9ub2RlLnNxbAppbmRleCAxMmJiM2I1 Li4zNzk4NWFhIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlv bnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24vcGcvc3FsLzkuNV9wbHVz L25vZGUuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wZy9zcWwvOS41X3BsdXMvbm9kZS5z cWwKQEAgLTE1LDQgKzE1LDQgQEAgV0hFUkUKICAgICBBTkQgdHlwbmFtZSBJ TiAoJ3RyaWdnZXInLCAnZXZlbnRfdHJpZ2dlcicpCiAgICAgQU5EIGxhbm5h bWUgTk9UIElOICgnZWRic3BsJywgJ3NxbCcsICdpbnRlcm5hbCcpCiBPUkRF UiBCWQotICAgIHByb25hbWU7CisgICAgcHJvbmFtZQpkaWZmIC0tZ2l0IGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1 bmN0aW9uL3BwYXMvc3FsLzkuMV9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3Bw YXMvc3FsLzkuMV9wbHVzL25vZGUuc3FsCmluZGV4IGMyYWFlZTMuLjEwNzhi OGMgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1w bGF0ZXMvdHJpZ2dlcl9mdW5jdGlvbi9wcGFzL3NxbC85LjFfcGx1cy9ub2Rl LnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVz L3RyaWdnZXJfZnVuY3Rpb24vcHBhcy9zcWwvOS4xX3BsdXMvbm9kZS5zcWwK QEAgLTE0LDQgKzE0LDQgQEAgV0hFUkUKICAgICBBTkQgcHJvbmFtZXNwYWNl ID0ge3tzY2lkfX06Om9pZAogICAgIEFORCB0eXBuYW1lID0gJ3RyaWdnZXIn IEFORCBsYW5uYW1lICE9ICdlZGJzcGwnCiBPUkRFUiBCWQotICAgIHByb25h bWU7CisgICAgcHJvbmFtZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv ZnVuY3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BwYXMvc3Fs LzkuMl9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25z L3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BwYXMvc3FsLzkuMl9wbHVz L25vZGUuc3FsCmluZGV4IGU2OTBjYWMuLjlkNGVhZGMgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9m dW5jdGlvbi9wcGFzL3NxbC85LjJfcGx1cy9ub2RlLnNxbAorKysgYi93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rp b24vcHBhcy9zcWwvOS4yX3BsdXMvbm9kZS5zcWwKQEAgLTE1LDQgKzE1LDQg QEAgV0hFUkUKICAgICBBTkQgdHlwbmFtZSBJTiAoJ3RyaWdnZXInLCAnZXZl bnRfdHJpZ2dlcicpCiAgICAgQU5EIGxhbm5hbWUgTk9UIElOICgnZWRic3Bs JywgJ3NxbCcsICdpbnRlcm5hbCcpCiBPUkRFUiBCWQotICAgIHByb25hbWU7 CisgICAgcHJvbmFtZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVu Y3Rpb25zL3RlbXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BwYXMvc3FsLzku NV9wbHVzL25vZGUuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvZnVuY3Rpb25zL3Rl bXBsYXRlcy90cmlnZ2VyX2Z1bmN0aW9uL3BwYXMvc3FsLzkuNV9wbHVzL25v ZGUuc3FsCmluZGV4IGU2OTBjYWMuLjlkNGVhZGMgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL2Z1bmN0aW9ucy90ZW1wbGF0ZXMvdHJpZ2dlcl9mdW5j dGlvbi9wcGFzL3NxbC85LjVfcGx1cy9ub2RlLnNxbAorKysgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy9mdW5jdGlvbnMvdGVtcGxhdGVzL3RyaWdnZXJfZnVuY3Rpb24v cHBhcy9zcWwvOS41X3BsdXMvbm9kZS5zcWwKQEAgLTE1LDQgKzE1LDQgQEAg V0hFUkUKICAgICBBTkQgdHlwbmFtZSBJTiAoJ3RyaWdnZXInLCAnZXZlbnRf dHJpZ2dlcicpCiAgICAgQU5EIGxhbm5hbWUgTk9UIElOICgnZWRic3BsJywg J3NxbCcsICdpbnRlcm5hbCcpCiBPUkRFUiBCWQotICAgIHByb25hbWU7Cisg ICAgcHJvbmFtZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9z ZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc2VxdWVu Y2VzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvc2VxdWVuY2VzL19f aW5pdF9fLnB5CmluZGV4IDI5YmU0ZmQuLjI2NGE5MjUgMTAwNjQ0Ci0tLSBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3NlcXVlbmNlcy9fX2luaXRfXy5weQorKysgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy9zZXF1ZW5jZXMvX19pbml0X18ucHkKQEAgLTI4LDYg KzI4LDQwIEBAIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdl dF9kcml2ZXIKIGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZF UgogCiAKK2RlZiBjaGVja19wcmVjb25kaXRpb24oYWN0aW9uPU5vbmUpOgor ICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBk ZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAgICBkYXRhYmFzZSBjb25u ZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRh Y2hlcworICAgIG1hbmFnZXIsY29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVy dGllcyB0byBzZWxmCisgICAgIiIiCisKKyAgICBkZWYgd3JhcChmKToKKyAg ICAgICAgQHdyYXBzKGYpCisgICAgICAgIGRlZiB3cmFwcGVkKHNlbGYsICph cmdzLCAqKmt3YXJncyk6CisKKyAgICAgICAgICAgIHNlbGYubWFuYWdlciA9 IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpLmNvbm5lY3Rpb25fbWFu YWdlcihrd2FyZ3NbJ3NpZCddKQorICAgICAgICAgICAgaWYgYWN0aW9uIGFu ZCBhY3Rpb24gaW4gWyJkcm9wIl06CisgICAgICAgICAgICAgICAgc2VsZi5j b25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oKQorICAgICAgICAgICAg ZWxpZiAnZGlkJyBpbiBrd2FyZ3M6CisgICAgICAgICAgICAgICAgc2VsZi5j b25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlk J10pCisgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgIHNlbGYu Y29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKCkKKyAgICAgICAgICAg ICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBi cm93c2VyCisgICAgICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3Rl ZCgpOgorICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVx dWlyZWQoCisgICAgICAgICAgICAgICAgICAgIF8oCisgICAgICAgICAgICAg ICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVu IGxvc3QhIgorICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAg ICAgKQorCisgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAnc2Vx dWVuY2Uvc3FsLzkuMV9wbHVzJworICAgICAgICAgICAgc2VsZi5hY2wgPSBb J3InLCAndycsICdVJ10KKyAgICAgICAgICAgIHJldHVybiBmKHNlbGYsICph cmdzLCAqKmt3YXJncykKKworICAgICAgICByZXR1cm4gd3JhcHBlZAorCisg ICAgcmV0dXJuIHdyYXAKKwogY2xhc3MgU2VxdWVuY2VNb2R1bGUoU2NoZW1h Q2hpbGRNb2R1bGUpOgogICAgICIiIgogICAgIGNsYXNzIFNlcXVlbmNlTW9k dWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKQpAQCAtNTksMTEgKzkzLDIyIEBA IGNsYXNzIFNlcXVlbmNlTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToKICAg ICAgICAgc2VsZi5taW5fdmVyID0gTm9uZQogICAgICAgICBzZWxmLm1heF92 ZXIgPSBOb25lCiAKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uKGFjdGlvbj0n bm9kZXMnKQogICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRp ZCwgc2NpZCk6CiAgICAgICAgICIiIgogICAgICAgICBHZW5lcmF0ZSB0aGUg c2VxdWVuY2Ugbm9kZQogICAgICAgICAiIiIKLSAgICAgICAgeWllbGQgc2Vs Zi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkKQorICAg ICAgICBjb2xsZWN0aW9uX2NvdW50ID0gMAorCisgICAgICAgIGNvdW50X3Nx bCA9ICdTRUxFQ1QgY291bnQoKikgRlJPTSggJworICAgICAgICBub2RlX3Nx bCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2VsZi50ZW1wbGF0ZV9w YXRoLCAnbm9kZXMuc3FsJ10pLCBzY2lkPXNjaWQpCisgICAgICAgIGNvdW50 X3NxbCArPSBub2RlX3NxbCArICcgKSBBUyBjb2xsZWN0aW9uX2NvdW50Jwor CisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihjb3VudF9zcWwpCisgICAgICAgIGlmIHN0YXR1czoKKyAgICAgICAg ICAgIGNvbGxlY3Rpb25fY291bnQgPSByc2V0CisKKyAgICAgICAgeWllbGQg c2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkLCBj b2xsZWN0aW9uX2NvdW50KQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHNj cmlwdF9sb2FkKHNlbGYpOgpAQCAtMTI3LDQwICsxNzIsNiBAQCBjbGFzcyBT ZXF1ZW5jZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgIDIw MCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC1qYXZhc2NyaXB0 J30KICAgICAgICAgKQogCi0gICAgZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihh Y3Rpb249Tm9uZSk6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hl Y2tzCi0gICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5p bmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCi0gICAgICAgIG1hbmFn ZXIsY29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCi0g ICAgICAgICIiIgotCi0gICAgICAgIGRlZiB3cmFwKGYpOgotICAgICAgICAg ICAgQHdyYXBzKGYpCi0gICAgICAgICAgICBkZWYgd3JhcHBlZChzZWxmLCAq YXJncywgKiprd2FyZ3MpOgotCi0gICAgICAgICAgICAgICAgc2VsZi5tYW5h Z2VyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlv bl9tYW5hZ2VyKGt3YXJnc1snc2lkJ10pCi0gICAgICAgICAgICAgICAgaWYg YWN0aW9uIGFuZCBhY3Rpb24gaW4gWyJkcm9wIl06Ci0gICAgICAgICAgICAg ICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKCkK LSAgICAgICAgICAgICAgICBlbGlmICdkaWQnIGluIGt3YXJnczoKLSAgICAg ICAgICAgICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5l Y3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCi0gICAgICAgICAgICAgICAgZWxz ZToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5h Z2VyLmNvbm5lY3Rpb24oKQotICAgICAgICAgICAgICAgICMgSWYgREIgbm90 IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCi0gICAg ICAgICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25uZWN0ZWQoKToKLSAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJl ZCgKLSAgICAgICAgICAgICAgICAgICAgICAgIF8oCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMg YmVlbiBsb3N0ISIKLSAgICAgICAgICAgICAgICAgICAgICAgICkKLSAgICAg ICAgICAgICAgICAgICAgKQotCi0gICAgICAgICAgICAgICAgc2VsZi50ZW1w bGF0ZV9wYXRoID0gJ3NlcXVlbmNlL3NxbC85LjFfcGx1cycKLSAgICAgICAg ICAgICAgICBzZWxmLmFjbCA9IFsncicsICd3JywgJ1UnXQotICAgICAgICAg ICAgICAgIHJldHVybiBmKHNlbGYsICphcmdzLCAqKmt3YXJncykKLQotICAg ICAgICAgICAgcmV0dXJuIHdyYXBwZWQKLQotICAgICAgICByZXR1cm4gd3Jh cAotCiAgICAgQGNoZWNrX3ByZWNvbmRpdGlvbihhY3Rpb249J2xpc3QnKQog ICAgIGRlZiBsaXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgogICAg ICAgICAiIiIKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9f X2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9fX2luaXRfXy5w eQppbmRleCA4YmRhNDkwLi4wNDIwNzdhIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90YWJsZXMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL19faW5pdF9fLnB5CkBAIC0zMCw2ICszMCw3OCBAQCBmcm9t IHBnYWRtaW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCiBmcm9t IGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKIAogCitkZWYgY2hl Y2tfcHJlY29uZGl0aW9uKGYpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rp b24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVj a3MKKyAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZp ZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcworICAgIG1hbmFnZXIsY29ubiAm IHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisgICAgIiIiCisK KyAgICBAd3JhcHMoZikKKyAgICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3Mp OgorICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3 YXJncyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAgICAgc2VsZiA9IGFy Z3NbMF0KKyAgICAgICAgZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxU X0RSSVZFUikKKyAgICAgICAgc2VsZi5tYW5hZ2VyID0gZHJpdmVyLmNvbm5l Y3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCddKQorICAgICAgICBzZWxmLmNv bm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQn XSkKKyAgICAgICAgc2VsZi5xdElkZW50ID0gZHJpdmVyLnF0SWRlbnQKKyAg ICAgICAgIyBXZSBuZWVkIGRhdGxhc3RzeXNvaWQgdG8gY2hlY2sgaWYgY3Vy cmVudCB0YWJsZSBpcyBzeXN0ZW0gdGFibGUKKyAgICAgICAgc2VsZi5kYXRs YXN0c3lzb2lkID0gc2VsZi5tYW5hZ2VyLmRiX2luZm9ba3dhcmdzWydkaWQn XV1bJ2RhdGxhc3RzeXNvaWQnXQorCisgICAgICAgICMgSWYgREIgbm90IGNv bm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCisgICAgICAg IGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6CisgICAgICAgICAgICBy ZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAgICAg IGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRv IHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgKQorCisgICAgICAgICMgV2UgbmVlZCBkYXRsYXN0 c3lzb2lkIHRvIGNoZWNrIGlmIGN1cnJlbnQgaW5kZXggaXMgc3lzdGVtIGlu ZGV4CisgICAgICAgIHNlbGYuZGF0bGFzdHN5c29pZCA9IHNlbGYubWFuYWdl ci5kYl9pbmZvW2t3YXJnc1snZGlkJ11dWydkYXRsYXN0c3lzb2lkJ10KKwor ICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBz Y3JpcHRzCisgICAgICAgIHZlciA9IHNlbGYubWFuYWdlci52ZXJzaW9uCisg ICAgICAgICMgVGVtcGxhdGUgZm9yIENvbHVtbiBub2RlCisgICAgICAgIGlm IHZlciA+PSA5MDUwMDoKKyAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0 aCA9ICd0YWJsZS9zcWwvOS41X3BsdXMnCisgICAgICAgIGVsc2U6CisgICAg ICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGggPSAndGFibGUvc3FsLzkuMV9w bHVzJworCisgICAgICAgICMgVGVtcGxhdGUgZm9yIENvbHVtbiAsY2hlY2sg Y29uc3RyYWludCBhbmQgZXhjbHVzaW9uIGNvbnN0cmFpbnQgbm9kZQorICAg ICAgICBpZiB2ZXIgPj0gOTAyMDA6CisgICAgICAgICAgICBzZWxmLmNvbHVt bl90ZW1wbGF0ZV9wYXRoID0gJ2NvbHVtbi9zcWwvOS4yX3BsdXMnCisgICAg ICAgICAgICBzZWxmLmNoZWNrX2NvbnN0cmFpbnRfdGVtcGxhdGVfcGF0aCA9 ICdjaGVja19jb25zdHJhaW50L3NxbC85LjJfcGx1cycKKyAgICAgICAgICAg IHNlbGYuZXhjbHVzaW9uX2NvbnN0cmFpbnRfdGVtcGxhdGVfcGF0aCA9ICdl eGNsdXNpb25fY29uc3RyYWludC9zcWwvOS4yX3BsdXMnCisgICAgICAgIGVs c2U6CisgICAgICAgICAgICBzZWxmLmNvbHVtbl90ZW1wbGF0ZV9wYXRoID0g J2NvbHVtbi9zcWwvOS4xX3BsdXMnCisgICAgICAgICAgICBzZWxmLmNoZWNr X2NvbnN0cmFpbnRfdGVtcGxhdGVfcGF0aCA9ICdjaGVja19jb25zdHJhaW50 L3NxbC85LjFfcGx1cycKKyAgICAgICAgICAgIHNlbGYuZXhjbHVzaW9uX2Nv bnN0cmFpbnRfdGVtcGxhdGVfcGF0aCA9ICdleGNsdXNpb25fY29uc3RyYWlu dC9zcWwvOS4xX3BsdXMnCisKKyAgICAgICAgIyBUZW1wbGF0ZSBmb3IgUEsg JiBVbmlxdWUgY29uc3RyYWludCBub2RlCisgICAgICAgIHNlbGYuaW5kZXhf Y29uc3RyYWludF90ZW1wbGF0ZV9wYXRoID0gJ2luZGV4X2NvbnN0cmFpbnQv c3FsJworCisgICAgICAgICMgVGVtcGxhdGUgZm9yIGZvcmVpZ24ga2V5IGNv bnN0cmFpbnQgbm9kZQorICAgICAgICBzZWxmLmZvcmVpZ25fa2V5X3RlbXBs YXRlX3BhdGggPSAnZm9yZWlnbl9rZXkvc3FsJworCisgICAgICAgICMgVGVt cGxhdGUgZm9yIGluZGV4IG5vZGUKKyAgICAgICAgc2VsZi5pbmRleF90ZW1w bGF0ZV9wYXRoID0gJ2luZGV4L3NxbC85LjFfcGx1cycKKworICAgICAgICAj IFRlbXBsYXRlIGZvciB0cmlnZ2VyIG5vZGUKKyAgICAgICAgc2VsZi50cmln Z2VyX3RlbXBsYXRlX3BhdGggPSAndHJpZ2dlci9zcWwvOS4xX3BsdXMnCisK KyAgICAgICAgIyBUZW1wbGF0ZSBmb3IgcnVsZXMgbm9kZQorICAgICAgICBz ZWxmLnJ1bGVzX3RlbXBsYXRlX3BhdGggPSAncnVsZXMvc3FsJworCisgICAg ICAgICMgU3VwcG9ydGVkIEFDTCBmb3IgdGFibGUKKyAgICAgICAgc2VsZi5h Y2wgPSBbJ2EnLCAncicsICd3JywgJ2QnLCAnRCcsICd4JywgJ3QnXQorCisg ICAgICAgICMgU3VwcG9ydGVkIEFDTCBmb3IgY29sdW1ucworICAgICAgICBz ZWxmLmNvbHVtbl9hY2wgPSBbJ2EnLCAncicsICd3JywgJ3gnXQorCisgICAg ICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKKworICAgIHJldHVybiB3 cmFwCisKIGNsYXNzIFRhYmxlTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKToK ICAgICAiIiIKICAgICAgY2xhc3MgVGFibGVNb2R1bGUoU2NoZW1hQ2hpbGRN b2R1bGUpCkBAIC02NiwxMSArMTM4LDIzIEBAIGNsYXNzIFRhYmxlTW9kdWxl KFNjaGVtYUNoaWxkTW9kdWxlKToKICAgICAgICAgc2VsZi5tYXhfdmVyID0g Tm9uZQogICAgICAgICBzZWxmLm1pbl92ZXIgPSBOb25lCiAKKyAgICBAY2hl Y2tfcHJlY29uZGl0aW9uCiAgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQs IHNpZCwgZGlkLCBzY2lkKToKICAgICAgICAgIiIiCiAgICAgICAgIEdlbmVy YXRlIHRoZSBjb2xsZWN0aW9uIG5vZGUKICAgICAgICAgIiIiCi0gICAgICAg IHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUo c2NpZCkKKyAgICAgICAgY29sbGVjdGlvbl9jb3VudCA9IDAKKworICAgICAg ICBjb3VudF9zcWwgPSAnU0VMRUNUIGNvdW50KCopIEZST00oICcKKyAgICAg ICAgbm9kZV9zcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYu dGVtcGxhdGVfcGF0aCwnbm9kZXMuc3FsJ10pLAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzY2lkPXNjaWQpCisgICAgICAgIGNvdW50 X3NxbCArPSBub2RlX3NxbCArICcgKSBBUyBjb2xsZWN0aW9uX2NvdW50Jwor CisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlX3Nj YWxhcihjb3VudF9zcWwpCisgICAgICAgIGlmIHN0YXR1czoKKyAgICAgICAg ICAgIGNvbGxlY3Rpb25fY291bnQgPSByc2V0CisKKyAgICAgICAgeWllbGQg c2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZShzY2lkLCBj b2xsZWN0aW9uX2NvdW50KQogCiAgICAgQHByb3BlcnR5CiAgICAgZGVmIHNj cmlwdF9sb2FkKHNlbGYpOgpAQCAtMjYwLDc4ICszNDQsNiBAQCBjbGFzcyBU YWJsZVZpZXcoUEdDaGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlciwgVmFj dXVtU2V0dGluZ3MpOgogCiAgICAgfSkKIAotICAgIGRlZiBjaGVja19wcmVj b25kaXRpb24oZik6Ci0gICAgICAgICIiIgotICAgICAgICBUaGlzIGZ1bmN0 aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hl Y2tzCi0gICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5p bmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCi0gICAgICAgIG1hbmFn ZXIsY29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCi0g ICAgICAgICIiIgotCi0gICAgICAgIEB3cmFwcyhmKQotICAgICAgICBkZWYg d3JhcCgqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAgICAgIyBIZXJlIGFy Z3NbMF0gd2lsbCBob2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxz aWQsZGlkCi0gICAgICAgICAgICBzZWxmID0gYXJnc1swXQotICAgICAgICAg ICAgZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZFUikKLSAg ICAgICAgICAgIHNlbGYubWFuYWdlciA9IGRyaXZlci5jb25uZWN0aW9uX21h bmFnZXIoa3dhcmdzWydzaWQnXSkKLSAgICAgICAgICAgIHNlbGYuY29ubiA9 IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKGRpZD1rd2FyZ3NbJ2RpZCddKQot ICAgICAgICAgICAgc2VsZi5xdElkZW50ID0gZHJpdmVyLnF0SWRlbnQKLSAg ICAgICAgICAgICMgV2UgbmVlZCBkYXRsYXN0c3lzb2lkIHRvIGNoZWNrIGlm IGN1cnJlbnQgdGFibGUgaXMgc3lzdGVtIHRhYmxlCi0gICAgICAgICAgICBz ZWxmLmRhdGxhc3RzeXNvaWQgPSBzZWxmLm1hbmFnZXIuZGJfaW5mb1trd2Fy Z3NbJ2RpZCddXVsnZGF0bGFzdHN5c29pZCddCi0KLSAgICAgICAgICAgICMg SWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93 c2VyCi0gICAgICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgp OgotICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWly ZWQoCi0gICAgICAgICAgICAgICAgICAgIGdldHRleHQoCi0gICAgICAgICAg ICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBi ZWVuIGxvc3QhIgotICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAg ICAgICAgKQotCi0gICAgICAgICAgICAjIFdlIG5lZWQgZGF0bGFzdHN5c29p ZCB0byBjaGVjayBpZiBjdXJyZW50IGluZGV4IGlzIHN5c3RlbSBpbmRleAot ICAgICAgICAgICAgc2VsZi5kYXRsYXN0c3lzb2lkID0gc2VsZi5tYW5hZ2Vy LmRiX2luZm9ba3dhcmdzWydkaWQnXV1bJ2RhdGxhc3RzeXNvaWQnXQotCi0g ICAgICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNx bCBzY3JpcHRzCi0gICAgICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVy c2lvbgotICAgICAgICAgICAgIyBUZW1wbGF0ZSBmb3IgQ29sdW1uIG5vZGUK LSAgICAgICAgICAgIGlmIHZlciA+PSA5MDUwMDoKLSAgICAgICAgICAgICAg ICBzZWxmLnRlbXBsYXRlX3BhdGggPSAndGFibGUvc3FsLzkuNV9wbHVzJwot ICAgICAgICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBzZWxmLnRlbXBs YXRlX3BhdGggPSAndGFibGUvc3FsLzkuMV9wbHVzJwotCi0gICAgICAgICAg ICAjIFRlbXBsYXRlIGZvciBDb2x1bW4gLGNoZWNrIGNvbnN0cmFpbnQgYW5k IGV4Y2x1c2lvbiBjb25zdHJhaW50IG5vZGUKLSAgICAgICAgICAgIGlmIHZl ciA+PSA5MDIwMDoKLSAgICAgICAgICAgICAgICBzZWxmLmNvbHVtbl90ZW1w bGF0ZV9wYXRoID0gJ2NvbHVtbi9zcWwvOS4yX3BsdXMnCi0gICAgICAgICAg ICAgICAgc2VsZi5jaGVja19jb25zdHJhaW50X3RlbXBsYXRlX3BhdGggPSAn Y2hlY2tfY29uc3RyYWludC9zcWwvOS4yX3BsdXMnCi0gICAgICAgICAgICAg ICAgc2VsZi5leGNsdXNpb25fY29uc3RyYWludF90ZW1wbGF0ZV9wYXRoID0g J2V4Y2x1c2lvbl9jb25zdHJhaW50L3NxbC85LjJfcGx1cycKLSAgICAgICAg ICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgc2VsZi5jb2x1bW5fdGVtcGxh dGVfcGF0aCA9ICdjb2x1bW4vc3FsLzkuMV9wbHVzJwotICAgICAgICAgICAg ICAgIHNlbGYuY2hlY2tfY29uc3RyYWludF90ZW1wbGF0ZV9wYXRoID0gJ2No ZWNrX2NvbnN0cmFpbnQvc3FsLzkuMV9wbHVzJwotICAgICAgICAgICAgICAg IHNlbGYuZXhjbHVzaW9uX2NvbnN0cmFpbnRfdGVtcGxhdGVfcGF0aCA9ICdl eGNsdXNpb25fY29uc3RyYWludC9zcWwvOS4xX3BsdXMnCi0KLSAgICAgICAg ICAgICMgVGVtcGxhdGUgZm9yIFBLICYgVW5pcXVlIGNvbnN0cmFpbnQgbm9k ZQotICAgICAgICAgICAgc2VsZi5pbmRleF9jb25zdHJhaW50X3RlbXBsYXRl X3BhdGggPSAnaW5kZXhfY29uc3RyYWludC9zcWwnCi0KLSAgICAgICAgICAg ICMgVGVtcGxhdGUgZm9yIGZvcmVpZ24ga2V5IGNvbnN0cmFpbnQgbm9kZQot ICAgICAgICAgICAgc2VsZi5mb3JlaWduX2tleV90ZW1wbGF0ZV9wYXRoID0g J2ZvcmVpZ25fa2V5L3NxbCcKLQotICAgICAgICAgICAgIyBUZW1wbGF0ZSBm b3IgaW5kZXggbm9kZQotICAgICAgICAgICAgc2VsZi5pbmRleF90ZW1wbGF0 ZV9wYXRoID0gJ2luZGV4L3NxbC85LjFfcGx1cycKLQotICAgICAgICAgICAg IyBUZW1wbGF0ZSBmb3IgdHJpZ2dlciBub2RlCi0gICAgICAgICAgICBzZWxm LnRyaWdnZXJfdGVtcGxhdGVfcGF0aCA9ICd0cmlnZ2VyL3NxbC85LjFfcGx1 cycKLQotICAgICAgICAgICAgIyBUZW1wbGF0ZSBmb3IgcnVsZXMgbm9kZQot ICAgICAgICAgICAgc2VsZi5ydWxlc190ZW1wbGF0ZV9wYXRoID0gJ3J1bGVz L3NxbCcKLQotICAgICAgICAgICAgIyBTdXBwb3J0ZWQgQUNMIGZvciB0YWJs ZQotICAgICAgICAgICAgc2VsZi5hY2wgPSBbJ2EnLCAncicsICd3JywgJ2Qn LCAnRCcsICd4JywgJ3QnXQotCi0gICAgICAgICAgICAjIFN1cHBvcnRlZCBB Q0wgZm9yIGNvbHVtbnMKLSAgICAgICAgICAgIHNlbGYuY29sdW1uX2FjbCA9 IFsnYScsICdyJywgJ3cnLCAneCddCi0KLSAgICAgICAgICAgIHJldHVybiBm KCphcmdzLCAqKmt3YXJncykKLQotICAgICAgICByZXR1cm4gd3JhcAotCiAg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRlZiBsaXN0KHNlbGYsIGdp ZCwgc2lkLCBkaWQsIHNjaWQpOgogICAgICAgICAiIiIKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb2x1bW4vX19pbml0X18ucHkgYi93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90YWJsZXMvY29sdW1uL19faW5pdF9fLnB5CmluZGV4 IGVmNWNiZTQuLjNjOWM0ZTAgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9jb2x1bW4vX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGFibGVzL2NvbHVtbi9fX2luaXRfXy5weQpAQCAtMjgsNiArMjgsNTYg QEAgZnJvbSBwZ2FkbWluLnV0aWxzLmRyaXZlciBpbXBvcnQgZ2V0X2RyaXZl cgogCiBmcm9tIGNvbmZpZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKIAor ZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKKyAgICAiIiIKKyAgICBUaGlz IGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdp bGwgY2hlY2tzCisgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVu bmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICBtYW5hZ2Vy LGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgorICAg ICIiIgorCisgICAgQHdyYXBzKGYpCisgICAgZGVmIHdyYXAoKmFyZ3MsICoq a3dhcmdzKToKKyAgICAgICAgIyBIZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHNl bGYgJiBrd2FyZ3Mgd2lsbCBob2xkIGdpZCxzaWQsZGlkCisgICAgICAgIHNl bGYgPSBhcmdzWzBdCisgICAgICAgIGRyaXZlciA9IGdldF9kcml2ZXIoUEdf REVGQVVMVF9EUklWRVIpCisgICAgICAgIHNlbGYubWFuYWdlciA9IGRyaXZl ci5jb25uZWN0aW9uX21hbmFnZXIoCisgICAgICAgICAgICBrd2FyZ3NbJ3Np ZCddCisgICAgICAgICkKKyAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5h Z2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgIHNl bGYucXRJZGVudCA9IGRyaXZlci5xdElkZW50CisgICAgICAgICMgSWYgREIg bm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCisg ICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6CisgICAgICAg ICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAgICAg ICAgICAgIGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICJDb25uZWN0 aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAgICAg ICAgICAgKQorICAgICAgICAgICAgKQorCisgICAgICAgIHZlciA9IHNlbGYu bWFuYWdlci52ZXJzaW9uCisgICAgICAgICMgd2Ugd2lsbCBzZXQgdGVtcGxh dGUgcGF0aCBmb3Igc3FsIHNjcmlwdHMKKyAgICAgICAgaWYgdmVyID49IDkw MjAwOgorICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2NvbHVt bi9zcWwvOS4yX3BsdXMnCisgICAgICAgIGVsc2U6CisgICAgICAgICAgICBz ZWxmLnRlbXBsYXRlX3BhdGggPSAnY29sdW1uL3NxbC85LjFfcGx1cycKKyAg ICAgICAgIyBBbGxvd2VkIEFDTCBmb3IgY29sdW1uICdTZWxlY3QvVXBkYXRl L0luc2VydC9SZWZlcmVuY2VzJworICAgICAgICBzZWxmLmFjbCA9IFsnYScs ICdyJywgJ3cnLCAneCddCisKKyAgICAgICAgIyBXZSBuZWVkIHBhcmVudCdz IG5hbWUgZWcgdGFibGUgbmFtZSBhbmQgc2NoZW1hIG5hbWUKKyAgICAgICAg U1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgJ2dldF9wYXJlbnQuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgdGlkPWt3YXJnc1sndGlkJ10pCisgICAgICAgIHN0YXR1cywg cnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAgICAg ICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVybmFs X3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAgIGZvciBy b3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgc2VsZi5zY2hlbWEg PSByb3dbJ3NjaGVtYSddCisgICAgICAgICAgICBzZWxmLnRhYmxlID0gcm93 Wyd0YWJsZSddCisKKyAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdz KQorCisgICAgcmV0dXJuIHdyYXAKKwogCiBjbGFzcyBDb2x1bW5zTW9kdWxl KENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKICAgICAiIiIKQEAgLTY2LDEzICsx MTYsMjYgQEAgY2xhc3MgQ29sdW1uc01vZHVsZShDb2xsZWN0aW9uTm9kZU1v ZHVsZSk6CiAgICAgICAgIHNlbGYubWF4X3ZlciA9IE5vbmUKICAgICAgICAg c3VwZXIoQ29sdW1uc01vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoq a3dhcmdzKQogCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRlZiBn ZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2NpZCwgKiprd2FyZ3Mp OgogICAgICAgICAiIiIKICAgICAgICAgR2VuZXJhdGUgdGhlIGNvbGxlY3Rp b24gbm9kZQogICAgICAgICAiIiIKKyAgICAgICAgY29sbGVjdGlvbl9jb3Vu dCA9IDAKKyAgICAgICAgX2lkID0ga3dhcmdzWyd0aWQnXSBpZiAndGlkJyBp biBrd2FyZ3MgZWxzZSBrd2FyZ3NbJ3ZpZCddCisKKyAgICAgICAgY291bnRf c3FsID0gJ1NFTEVDVCBjb3VudCgqKSBGUk9NKCAnCisgICAgICAgIG5vZGVf c3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBsYXRl X3BhdGgsICdub2Rlcy5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHRpZD1faWQsIHNob3dfc3lzX29iamVjdHM9c2VsZi5z aG93X3N5c3RlbV9vYmplY3RzKQorICAgICAgICBjb3VudF9zcWwgKz0gbm9k ZV9zcWwgKyAnICkgQVMgY29sbGVjdGlvbl9jb3VudCcKKworICAgICAgICBz dGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoY291bnRf c3FsKQorICAgICAgICBpZiBzdGF0dXM6CisgICAgICAgICAgICBjb2xsZWN0 aW9uX2NvdW50ID0gcnNldAorCiAgICAgICAgIGFzc2VydCAoJ3RpZCcgaW4g a3dhcmdzIG9yICd2aWQnIGluIGt3YXJncykKICAgICAgICAgeWllbGQgc2Vs Zi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rpb25fbm9kZSgKLSAgICAgICAg ICAgIGt3YXJnc1sndGlkJ10gaWYgJ3RpZCcgaW4ga3dhcmdzIGVsc2Uga3dh cmdzWyd2aWQnXQorICAgICAgICAgICAga3dhcmdzWyd0aWQnXSBpZiAndGlk JyBpbiBrd2FyZ3MgZWxzZSBrd2FyZ3NbJ3ZpZCddLCBjb2xsZWN0aW9uX2Nv dW50CiAgICAgICAgICkKIAogICAgIEBwcm9wZXJ0eQpAQCAtMTgyLDU2ICsy NDUsNiBAQCBjbGFzcyBDb2x1bW5zVmlldyhQR0NoaWxkTm9kZVZpZXcsIERh dGFUeXBlUmVhZGVyKToKICAgICAgICAgJ21vZHVsZS5qcyc6IFt7fSwge30s IHsnZ2V0JzogJ21vZHVsZV9qcyd9XSwKICAgICB9KQogCi0gICAgZGVmIGNo ZWNrX3ByZWNvbmRpdGlvbihmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFRo aXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2gg d2lsbCBjaGVja3MKLSAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZv cmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKLSAgICAg ICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRv IHNlbGYKLSAgICAgICAgIiIiCi0KLSAgICAgICAgQHdyYXBzKGYpCi0gICAg ICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICAgICAj IEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhv bGQgZ2lkLHNpZCxkaWQKLSAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCi0g ICAgICAgICAgICBkcml2ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJ VkVSKQotICAgICAgICAgICAgc2VsZi5tYW5hZ2VyID0gZHJpdmVyLmNvbm5l Y3Rpb25fbWFuYWdlcigKLSAgICAgICAgICAgICAgICBrd2FyZ3NbJ3NpZCdd Ci0gICAgICAgICAgICApCi0gICAgICAgICAgICBzZWxmLmNvbm4gPSBzZWxm Lm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKLSAgICAg ICAgICAgIHNlbGYucXRJZGVudCA9IGRyaXZlci5xdElkZW50Ci0gICAgICAg ICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3Ig dG8gYnJvd3NlcgotICAgICAgICAgICAgaWYgbm90IHNlbGYuY29ubi5jb25u ZWN0ZWQoKToKLSAgICAgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9u X3JlcXVpcmVkKAotICAgICAgICAgICAgICAgICAgICBnZXR0ZXh0KAotICAg ICAgICAgICAgICAgICAgICAgICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZl ciBoYXMgYmVlbiBsb3N0ISIKLSAgICAgICAgICAgICAgICAgICAgKQotICAg ICAgICAgICAgICAgICkKLQotICAgICAgICAgICAgdmVyID0gc2VsZi5tYW5h Z2VyLnZlcnNpb24KLSAgICAgICAgICAgICMgd2Ugd2lsbCBzZXQgdGVtcGxh dGUgcGF0aCBmb3Igc3FsIHNjcmlwdHMKLSAgICAgICAgICAgIGlmIHZlciA+ PSA5MDIwMDoKLSAgICAgICAgICAgICAgICBzZWxmLnRlbXBsYXRlX3BhdGgg PSAnY29sdW1uL3NxbC85LjJfcGx1cycKLSAgICAgICAgICAgIGVsc2U6Ci0g ICAgICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2NvbHVtbi9z cWwvOS4xX3BsdXMnCi0gICAgICAgICAgICAjIEFsbG93ZWQgQUNMIGZvciBj b2x1bW4gJ1NlbGVjdC9VcGRhdGUvSW5zZXJ0L1JlZmVyZW5jZXMnCi0gICAg ICAgICAgICBzZWxmLmFjbCA9IFsnYScsICdyJywgJ3cnLCAneCddCi0KLSAg ICAgICAgICAgICMgV2UgbmVlZCBwYXJlbnQncyBuYW1lIGVnIHRhYmxlIG5h bWUgYW5kIHNjaGVtYSBuYW1lCi0gICAgICAgICAgICBTUUwgPSByZW5kZXJf dGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dldF9w YXJlbnQuc3FsJ10pLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHRpZD1rd2FyZ3NbJ3RpZCddKQotICAgICAgICAgICAgc3RhdHVzLCBy c2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCi0gICAgICAg ICAgICBpZiBub3Qgc3RhdHVzOgotICAgICAgICAgICAgICAgIHJldHVybiBp bnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9cnNldCkKLQotICAgICAg ICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106Ci0gICAgICAgICAgICAg ICAgc2VsZi5zY2hlbWEgPSByb3dbJ3NjaGVtYSddCi0gICAgICAgICAgICAg ICAgc2VsZi50YWJsZSA9IHJvd1sndGFibGUnXQotCi0gICAgICAgICAgICBy ZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCi0KLSAgICAgICAgcmV0dXJuIHdy YXAKLQogICAgIEBjaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgbGlzdChz ZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkLCB0aWQpOgogICAgICAgICAiIiIK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJhaW50 cy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9jb25zdHJh aW50cy9fX2luaXRfXy5weQppbmRleCBhODJlZTVhLi5jMTBkNmI1IDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvY29uc3RyYWludHMvX19p bml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2NvbnN0cmFp bnRzL19faW5pdF9fLnB5CkBAIC00OSwxMSArNDksMTggQEAgY2xhc3MgQ29u c3RyYWludHNNb2R1bGUoQ29sbGVjdGlvbk5vZGVNb2R1bGUpOgogICAgICAg ICBzZWxmLm1heF92ZXIgPSBOb25lCiAgICAgICAgIHN1cGVyKENvbnN0cmFp bnRzTW9kdWxlLCBzZWxmKS5fX2luaXRfXygqYXJncywgKiprd2FyZ3MpCiAK LSAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQs IHRpZCk6CisgICAgZGVmIGdldF9ub2RlcyhzZWxmLCAqKmt3YXJncyk6CiAg ICAgICAgICIiIgogICAgICAgICBHZW5lcmF0ZSB0aGUgY29sbGVjdGlvbiBu b2RlCiAgICAgICAgICIiIgotICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRl X2Jyb3dzZXJfY29sbGVjdGlvbl9ub2RlKHRpZCkKKyAgICAgICAgY21kID0g eyJjbWQiOiAibm9kZXMifQorICAgICAgICBjb25zdHJhaW50cyA9IFtdCisg ICAgICAgIGZvciBuYW1lIGluIENvbnN0cmFpbnRSZWdpc3RyeS5yZWdpc3Ry eToKKyAgICAgICAgICAgIG1vZHVsZSA9IChDb25zdHJhaW50UmVnaXN0cnku cmVnaXN0cnlbbmFtZV0pWydub2RldmlldyddCisgICAgICAgICAgICB2aWV3 ID0gbW9kdWxlKCoqY21kKQorICAgICAgICAgICAgY29uc3RyYWludHMgPSBj b25zdHJhaW50cyArIHZpZXcuZ2V0X25vZGVzKCoqa3dhcmdzKQorCisgICAg ICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25v ZGUoa3dhcmdzWyd0aWQnXSwgbGVuKGNvbnN0cmFpbnRzKSkKIAogICAgIEBw cm9wZXJ0eQogICAgIGRlZiBzY3JpcHRfbG9hZChzZWxmKToKZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy9pbmRleGVzL19faW5pdF9fLnB5 IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvX19pbml0X18ucHkK aW5kZXggZDc5Yzk0Ni4uYzJiYTNjMCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3Nj aGVtYXMvdGFibGVzL2luZGV4ZXMvX19pbml0X18ucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL2luZGV4ZXMvX19pbml0X18ucHkKQEAgLTI0LDYg KzI0LDUzIEBAIGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdl dF9kcml2ZXIKIAogZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJ VkVSCiAKK2RlZiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAgIiIiCisg ICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3 aGljaCB3aWxsIGNoZWNrcworICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVm b3JlIHJ1bm5pbmcgdmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAg bWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNl bGYKKyAgICAiIiIKKworICAgIEB3cmFwcyhmKQorICAgIGRlZiB3cmFwKCph cmdzLCAqKmt3YXJncyk6CisgICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwg aG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBnaWQsc2lkLGRpZAorICAg ICAgICBzZWxmID0gYXJnc1swXQorICAgICAgICBzZWxmLm1hbmFnZXIgPSBn ZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0aW9uX21hbmFn ZXIoCisgICAgICAgICAgICBrd2FyZ3NbJ3NpZCddCisgICAgICAgICkKKyAg ICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlk PWt3YXJnc1snZGlkJ10pCisgICAgICAgICMgSWYgREIgbm90IGNvbm5lY3Rl ZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCisgICAgICAgIGlmIG5v dCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6CisgICAgICAgICAgICByZXR1cm4g cHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAgICAgIGdldHRl eHQoCisgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBz ZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAgICAgICAgICAgICAgKQorICAg ICAgICAgICAgKQorCisgICAgICAgICMgV2UgbmVlZCBkYXRsYXN0c3lzb2lk IHRvIGNoZWNrIGlmIGN1cnJlbnQgaW5kZXggaXMgc3lzdGVtIGluZGV4Cisg ICAgICAgIHNlbGYuZGF0bGFzdHN5c29pZCA9IHNlbGYubWFuYWdlci5kYl9p bmZvW2t3YXJnc1snZGlkJ11dWydkYXRsYXN0c3lzb2lkJ10KKworICAgICAg ICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRlIHBhdGggZm9yIHNxbCBzY3JpcHRz CisgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICdpbmRleC9zcWwvOS4x X3BsdXMnCisKKyAgICAgICAgIyBXZSBuZWVkIHBhcmVudCdzIG5hbWUgZWcg dGFibGUgbmFtZSBhbmQgc2NoZW1hIG5hbWUKKyAgICAgICAgIyB3aGVuIHdl IGNyZWF0ZSBuZXcgaW5kZXggaW4gdXBkYXRlIHdlIGNhbiBmZXRjaCBpdCB1 c2luZworICAgICAgICAjIHByb3BlcnR5IHNxbAorICAgICAgICBTUUwgPSBy ZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0aCwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZ2V0 X3BhcmVudC5zcWwnXSksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB0aWQ9a3dhcmdzWyd0aWQnXSkKKyAgICAgICAgc3RhdHVzLCByc2V0ID0g c2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJheShTUUwpCisgICAgICAgIGlmIG5v dCBzdGF0dXM6CisgICAgICAgICAgICByZXR1cm4gaW50ZXJuYWxfc2VydmVy X2Vycm9yKGVycm9ybXNnPXJzZXQpCisKKyAgICAgICAgZm9yIHJvdyBpbiBy c2V0Wydyb3dzJ106CisgICAgICAgICAgICBzZWxmLnNjaGVtYSA9IHJvd1sn c2NoZW1hJ10KKyAgICAgICAgICAgIHNlbGYudGFibGUgPSByb3dbJ3RhYmxl J10KKworICAgICAgICByZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAg ICByZXR1cm4gd3JhcAorCiAKIGNsYXNzIEluZGV4ZXNNb2R1bGUoQ29sbGVj dGlvbk5vZGVNb2R1bGUpOgogICAgICIiIgpAQCAtOTIsMTMgKzEzOSwyNiBA QCBjbGFzcyBJbmRleGVzTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToK ICAgICAgICAgICAgICMgdGhlbiB0cnVlLCBvdGhld2lzZSBmYWxzZQogICAg ICAgICAgICAgcmV0dXJuIHJlcwogCisgICAgQGNoZWNrX3ByZWNvbmRpdGlv bgogICAgIGRlZiBnZXRfbm9kZXMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwgc2Np ZCwgKiprd2FyZ3MpOgogICAgICAgICAiIiIKICAgICAgICAgR2VuZXJhdGUg dGhlIGNvbGxlY3Rpb24gbm9kZQogICAgICAgICAiIiIKKyAgICAgICAgY29s bGVjdGlvbl9jb3VudCA9IDAKKyAgICAgICAgX2lkID0ga3dhcmdzWyd0aWQn XSBpZiAndGlkJyBpbiBrd2FyZ3MgZWxzZSBrd2FyZ3NbJ3ZpZCddCisKKyAg ICAgICAgY291bnRfc3FsID0gJ1NFTEVDVCBjb3VudCgqKSBGUk9NKCAnCisg ICAgICAgIG5vZGVfc3FsID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtz ZWxmLnRlbXBsYXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgJ25vZGVzLnNxbCddKSwgdGlkPV9pZCkKKyAgICAg ICAgY291bnRfc3FsICs9IG5vZGVfc3FsICsgJyApIEFTIGNvbGxlY3Rpb25f Y291bnQnCisKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKGNvdW50X3NxbCkKKyAgICAgICAgaWYgc3RhdHVzOgor ICAgICAgICAgICAgY29sbGVjdGlvbl9jb3VudCA9IHJzZXQKKwogICAgICAg ICBhc3NlcnQgKCd0aWQnIGluIGt3YXJncyBvciAndmlkJyBpbiBrd2FyZ3Mp CiAgICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0 aW9uX25vZGUoCi0gICAgICAgICAgICBrd2FyZ3NbJ3RpZCddIGlmICd0aWQn IGluIGt3YXJncyBlbHNlIGt3YXJnc1sndmlkJ10KKyAgICAgICAgICAgIGt3 YXJnc1sndGlkJ10gaWYgJ3RpZCcgaW4ga3dhcmdzIGVsc2Uga3dhcmdzWyd2 aWQnXSwgY29sbGVjdGlvbl9jb3VudAogICAgICAgICApCiAKICAgICBAcHJv cGVydHkKQEAgLTIxMyw1MyArMjczLDYgQEAgY2xhc3MgSW5kZXhlc1ZpZXco UEdDaGlsZE5vZGVWaWV3KToKICAgICAgICAgICAgICAgICAgICAgICAgICB7 J2dldCc6ICdnZXRfb3BfY2xhc3MnfV0KICAgICB9KQogCi0gICAgZGVmIGNo ZWNrX3ByZWNvbmRpdGlvbihmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFRo aXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2gg d2lsbCBjaGVja3MKLSAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZv cmUgcnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKLSAgICAg ICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRv IHNlbGYKLSAgICAgICAgIiIiCi0KLSAgICAgICAgQHdyYXBzKGYpCi0gICAg ICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICAgICAj IEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhv bGQgZ2lkLHNpZCxkaWQKLSAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCi0g ICAgICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFV TFRfRFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoCi0gICAgICAgICAgICAg ICAga3dhcmdzWydzaWQnXQotICAgICAgICAgICAgKQotICAgICAgICAgICAg c2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJn c1snZGlkJ10pCi0gICAgICAgICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQg dGhlbiByZXR1cm4gZXJyb3IgdG8gYnJvd3NlcgotICAgICAgICAgICAgaWYg bm90IHNlbGYuY29ubi5jb25uZWN0ZWQoKToKLSAgICAgICAgICAgICAgICBy ZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAotICAgICAgICAgICAgICAg ICAgICBnZXR0ZXh0KAotICAgICAgICAgICAgICAgICAgICAgICAgIkNvbm5l Y3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKLSAgICAgICAg ICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgICkKLQotICAgICAgICAg ICAgIyBXZSBuZWVkIGRhdGxhc3RzeXNvaWQgdG8gY2hlY2sgaWYgY3VycmVu dCBpbmRleCBpcyBzeXN0ZW0gaW5kZXgKLSAgICAgICAgICAgIHNlbGYuZGF0 bGFzdHN5c29pZCA9IHNlbGYubWFuYWdlci5kYl9pbmZvW2t3YXJnc1snZGlk J11dWydkYXRsYXN0c3lzb2lkJ10KLQotICAgICAgICAgICAgIyB3ZSB3aWxs IHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cwotICAgICAgICAg ICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ2luZGV4L3NxbC85LjFfcGx1cycK LQotICAgICAgICAgICAgIyBXZSBuZWVkIHBhcmVudCdzIG5hbWUgZWcgdGFi bGUgbmFtZSBhbmQgc2NoZW1hIG5hbWUKLSAgICAgICAgICAgICMgd2hlbiB3 ZSBjcmVhdGUgbmV3IGluZGV4IGluIHVwZGF0ZSB3ZSBjYW4gZmV0Y2ggaXQg dXNpbmcKLSAgICAgICAgICAgICMgcHJvcGVydHkgc3FsCi0gICAgICAgICAg ICBTUUwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxh dGVfcGF0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgJ2dldF9wYXJlbnQuc3FsJ10pLAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHRpZD1rd2FyZ3NbJ3RpZCddKQotICAgICAg ICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfMmRhcnJh eShTUUwpCi0gICAgICAgICAgICBpZiBub3Qgc3RhdHVzOgotICAgICAgICAg ICAgICAgIHJldHVybiBpbnRlcm5hbF9zZXJ2ZXJfZXJyb3IoZXJyb3Jtc2c9 cnNldCkKLQotICAgICAgICAgICAgZm9yIHJvdyBpbiByc2V0Wydyb3dzJ106 Ci0gICAgICAgICAgICAgICAgc2VsZi5zY2hlbWEgPSByb3dbJ3NjaGVtYSdd Ci0gICAgICAgICAgICAgICAgc2VsZi50YWJsZSA9IHJvd1sndGFibGUnXQot Ci0gICAgICAgICAgICByZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCi0KLSAg ICAgICAgcmV0dXJuIHdyYXAKLQogICAgIEBjaGVja19wcmVjb25kaXRpb24K ICAgICBkZWYgZ2V0X2NvbGxhdGlvbnMoc2VsZiwgZ2lkLCBzaWQsIGRpZCwg c2NpZCwgdGlkLCBpZHg9Tm9uZSk6CiAgICAgICAgICIiIgpkaWZmIC0tZ2l0 IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL19faW5pdF9fLnB5IGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGFibGVzL3J1bGVzL19faW5pdF9fLnB5CmluZGV4 IGQ0NjI0NTQuLjNlNzczMzggMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy9ydWxlcy9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90YWJsZXMvcnVsZXMvX19pbml0X18ucHkKQEAgLTI2LDYgKzI2LDM0IEBA IGZyb20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIK IAogZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCiAKK2Rl ZiBjaGVja19wcmVjb25kaXRpb24oZik6CisgICAgIiIiCisgICAgVGhpcyBm dW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxs IGNoZWNrIHRoZQorICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1 bm5pbmcgYSB2aWV3LiBJdCB3aWxsIGFsc28gYXR0YWNoCisgICAgbWFuYWdl ciwgY29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisg ICAgIiIiCisKKyAgICBAd3JhcHMoZikKKyAgICBkZWYgd3JhcCgqYXJncywg Kiprd2FyZ3MpOgorICAgICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQg c2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAgICAg c2VsZiA9IGFyZ3NbMF0KKyAgICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2Ry aXZlcigKKyAgICAgICAgICAgIFBHX0RFRkFVTFRfRFJJVkVSKS5jb25uZWN0 aW9uX21hbmFnZXIoa3dhcmdzWydzaWQnXSkKKyAgICAgICAgc2VsZi5jb25u ID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10p CisKKyAgICAgICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJu IGVycm9yIHRvIGJyb3dzZXIKKyAgICAgICAgaWYgbm90IHNlbGYuY29ubi5j b25uZWN0ZWQoKToKKyAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25f cmVxdWlyZWQoCisgICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAg ICAgICAgICAgICAgIkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVl biBsb3N0ISIKKyAgICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisK KyAgICAgICAgc2VsZi5kYXRsYXN0c3lzb2lkID0gc2VsZi5tYW5hZ2VyLmRi X2luZm9ba3dhcmdzWydkaWQnXV1bJ2RhdGxhc3RzeXNvaWQnXQorICAgICAg ICBzZWxmLnRlbXBsYXRlX3BhdGggPSAncnVsZXMvc3FsJworICAgICAgICBy ZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICByZXR1cm4gd3JhcAog CiBjbGFzcyBSdWxlTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKToKICAg ICAiIiIKQEAgLTc5LDEzICsxMDcsMjYgQEAgY2xhc3MgUnVsZU1vZHVsZShD b2xsZWN0aW9uTm9kZU1vZHVsZSk6CiAgICAgICAgICAgICBlbHNlOgogICAg ICAgICAgICAgICAgIHJldHVybiByZXMKIAorICAgIEBjaGVja19wcmVjb25k aXRpb24KICAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQs IHNjaWQsICoqa3dhcmdzKToKICAgICAgICAgIiIiCiAgICAgICAgIEdlbmVy YXRlIHRoZSBjb2xsZWN0aW9uIG5vZGUKICAgICAgICAgIiIiCisgICAgICAg IGNvbGxlY3Rpb25fY291bnQgPSAwCisgICAgICAgIF9pZCA9IGt3YXJnc1sn dGlkJ10gaWYgJ3RpZCcgaW4ga3dhcmdzIGVsc2Uga3dhcmdzWyd2aWQnXQor CisgICAgICAgIGNvdW50X3NxbCA9ICdTRUxFQ1QgY291bnQoKikgRlJPTSgg JworICAgICAgICBub2RlX3NxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9p bigKKyAgICAgICAgICAgIFtzZWxmLnRlbXBsYXRlX3BhdGgsICdwcm9wZXJ0 aWVzLnNxbCddKSwgdGlkPV9pZCkKKyAgICAgICAgY291bnRfc3FsICs9IG5v ZGVfc3FsICsgJyApIEFTIGNvbGxlY3Rpb25fY291bnQnCisKKyAgICAgICAg c3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4ZWN1dGVfc2NhbGFyKGNvdW50 X3NxbCkKKyAgICAgICAgaWYgc3RhdHVzOgorICAgICAgICAgICAgY29sbGVj dGlvbl9jb3VudCA9IHJzZXQKKwogICAgICAgICBhc3NlcnQgKCd0aWQnIGlu IGt3YXJncyBvciAndmlkJyBpbiBrd2FyZ3MpCiAgICAgICAgIHlpZWxkIHNl bGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUoCi0gICAgICAg ICAgICBrd2FyZ3NbJ3RpZCddIGlmICd0aWQnIGluIGt3YXJncyBlbHNlIGt3 YXJnc1sndmlkJ10KKyAgICAgICAgICAgIGt3YXJnc1sndGlkJ10gaWYgJ3Rp ZCcgaW4ga3dhcmdzIGVsc2Uga3dhcmdzWyd2aWQnXSwgY29sbGVjdGlvbl9j b3VudAogICAgICAgICApCiAKICAgICBAcHJvcGVydHkKQEAgLTE4OCwzNSAr MjI5LDYgQEAgY2xhc3MgUnVsZVZpZXcoUEdDaGlsZE5vZGVWaWV3KToKICAg ICAgICAgICAgIDIwMCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24v eC1qYXZhc2NyaXB0J30KICAgICAgICAgKQogCi0gICAgZGVmIGNoZWNrX3By ZWNvbmRpdGlvbihmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFRoaXMgZnVu Y3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBj aGVjayB0aGUKLSAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUg cnVubmluZyBhIHZpZXcuIEl0IHdpbGwgYWxzbyBhdHRhY2gKLSAgICAgICAg bWFuYWdlciwgY29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBz ZWxmCi0gICAgICAgICIiIgotCi0gICAgICAgIEB3cmFwcyhmKQotICAgICAg ICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgotICAgICAgICAgICAgIyBI ZXJlIGFyZ3NbMF0gd2lsbCBob2xkIHNlbGYgJiBrd2FyZ3Mgd2lsbCBob2xk IGdpZCxzaWQsZGlkCi0gICAgICAgICAgICBzZWxmID0gYXJnc1swXQotICAg ICAgICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcigKLSAgICAgICAg ICAgICAgICBQR19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2Vy KGt3YXJnc1snc2lkJ10pCi0gICAgICAgICAgICBzZWxmLmNvbm4gPSBzZWxm Lm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dhcmdzWydkaWQnXSkKLQotICAg ICAgICAgICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVy cm9yIHRvIGJyb3dzZXIKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4u Y29ubmVjdGVkKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRp dGlvbl9yZXF1aXJlZCgKLSAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgK LSAgICAgICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBz ZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCi0gICAgICAgICAgICAgICAgICAgICkK LSAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgIHNlbGYuZGF0bGFz dHN5c29pZCA9IHNlbGYubWFuYWdlci5kYl9pbmZvW2t3YXJnc1snZGlkJ11d WydkYXRsYXN0c3lzb2lkJ10KLSAgICAgICAgICAgIHNlbGYudGVtcGxhdGVf cGF0aCA9ICdydWxlcy9zcWwnCi0gICAgICAgICAgICByZXR1cm4gZigqYXJn cywgKiprd2FyZ3MpCi0KLSAgICAgICAgcmV0dXJuIHdyYXAKLQogICAgIEBj aGVja19wcmVjb25kaXRpb24KICAgICBkZWYgbGlzdChzZWxmLCBnaWQsIHNp ZCwgZGlkLCBzY2lkLCB0aWQpOgogICAgICAgICAiIiIKZGlmZiAtLWdpdCBh L3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2Rh dGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3FsLzku MV9wbHVzL25vZGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1w bGF0ZXMvdGFibGUvc3FsLzkuMV9wbHVzL25vZGVzLnNxbAppbmRleCA0M2Yx NGNiLi5mYTExYTBlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2Vy L3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJs ZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC85LjFfcGx1cy9ub2Rlcy5zcWwKKysr IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMv ZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90YWJsZS9zcWwv OS4xX3BsdXMvbm9kZXMuc3FsCkBAIC0zLDQgKzMsNCBAQCBTRUxFQ1QgcmVs Lm9pZCwgcmVsLnJlbG5hbWUgQVMgbmFtZSwKICAgICAoU0VMRUNUIGNvdW50 KCopIEZST00gcGdfdHJpZ2dlciBXSEVSRSB0Z3JlbGlkPXJlbC5vaWQgQU5E IHRnaXNpbnRlcm5hbCA9IEZBTFNFIEFORCB0Z2VuYWJsZWQgPSAnTycpIEFT IGhhc19lbmFibGVfdHJpZ2dlcnMKIEZST00gcGdfY2xhc3MgcmVsCiAgICAg V0hFUkUgcmVsLnJlbGtpbmQgSU4gKCdyJywncycsJ3QnKSBBTkQgcmVsLnJl bG5hbWVzcGFjZSA9IHt7IHNjaWQgfX06Om9pZAotICAgIE9SREVSIEJZIHJl bC5yZWxuYW1lOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyAgICBP UkRFUiBCWSByZWwucmVsbmFtZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dy b3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90ZW1wbGF0 ZXMvdGFibGUvc3FsLzkuNV9wbHVzL25vZGVzLnNxbCBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3RhYmxlcy90ZW1wbGF0ZXMvdGFibGUvc3FsLzkuNV9wbHVzL25vZGVz LnNxbAppbmRleCA0M2YxNGNiLi5mYTExYTBlIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90YWJsZXMvdGVtcGxhdGVzL3RhYmxlL3NxbC85LjVfcGx1 cy9ub2Rlcy5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBs YXRlcy90YWJsZS9zcWwvOS41X3BsdXMvbm9kZXMuc3FsCkBAIC0zLDQgKzMs NCBAQCBTRUxFQ1QgcmVsLm9pZCwgcmVsLnJlbG5hbWUgQVMgbmFtZSwKICAg ICAoU0VMRUNUIGNvdW50KCopIEZST00gcGdfdHJpZ2dlciBXSEVSRSB0Z3Jl bGlkPXJlbC5vaWQgQU5EIHRnaXNpbnRlcm5hbCA9IEZBTFNFIEFORCB0Z2Vu YWJsZWQgPSAnTycpIEFTIGhhc19lbmFibGVfdHJpZ2dlcnMKIEZST00gcGdf Y2xhc3MgcmVsCiAgICAgV0hFUkUgcmVsLnJlbGtpbmQgSU4gKCdyJywncycs J3QnKSBBTkQgcmVsLnJlbG5hbWVzcGFjZSA9IHt7IHNjaWQgfX06Om9pZAot ICAgIE9SREVSIEJZIHJlbC5yZWxuYW1lOwpcIE5vIG5ld2xpbmUgYXQgZW5k IG9mIGZpbGUKKyAgICBPUkRFUiBCWSByZWwucmVsbmFtZQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3RhYmxlcy90ZW1wbGF0ZXMvdHJpZ2dlci9zcWwvOS4xX3BsdXMvbm9kZXMu c3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90cmlnZ2Vy L3NxbC85LjFfcGx1cy9ub2Rlcy5zcWwKaW5kZXggMDk1YWRhMy4uODBjNjQ5 MSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RlbXBsYXRl cy90cmlnZ2VyL3NxbC85LjFfcGx1cy9ub2Rlcy5zcWwKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGFibGVzL3RlbXBsYXRlcy90cmlnZ2VyL3NxbC85LjFfcGx1 cy9ub2Rlcy5zcWwKQEAgLTIsNCArMiw0IEBAIFNFTEVDVCB0Lm9pZCwgdC50 Z25hbWUgYXMgbmFtZSwgKENBU0UgV0hFTiB0Z2VuYWJsZWQgPSAnTycgVEhF TiB0cnVlIEVsU0UgZmFsc2UKIEZST00gcGdfdHJpZ2dlciB0CiAgICAgV0hF UkUgTk9UIHRnaXNpbnRlcm5hbAogICAgIEFORCB0Z3JlbGlkID0ge3t0aWR9 fTo6T0lECi0gICAgT1JERVIgQlkgdGduYW1lOworICAgIE9SREVSIEJZIHRn bmFtZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdn ZXJzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGFibGVzL3RyaWdn ZXJzL19faW5pdF9fLnB5CmluZGV4IGIzZTRlZWMuLmY2NGIxMjcgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RhYmxlcy90cmlnZ2Vycy9fX2luaXRf Xy5weQorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90YWJsZXMvdHJpZ2dlcnMvX19p bml0X18ucHkKQEAgLTI1LDYgKzI1LDY3IEBAIGZyb20gcGdhZG1pbi51dGls cy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKIGZyb20gY29uZmlnIGltcG9y dCBQR19ERUZBVUxUX0RSSVZFUgogCiAKK2RlZiBjaGVja19wcmVjb25kaXRp b24oZik6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2 ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrcworICAgIGRhdGFi YXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmlldywgaXQgd2lsbCBh bHNvIGF0dGFjaGVzCisgICAgbWFuYWdlcixjb25uICYgdGVtcGxhdGVfcGF0 aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAgICAiIiIKKworICAgIEB3cmFwcyhm KQorICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CisgICAgICAgICMg SGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9s ZCBnaWQsc2lkLGRpZAorICAgICAgICBzZWxmID0gYXJnc1swXQorICAgICAg ICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVS KS5jb25uZWN0aW9uX21hbmFnZXIoCisgICAgICAgICAgICBrd2FyZ3NbJ3Np ZCddCisgICAgICAgICkKKyAgICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5h Z2VyLmNvbm5lY3Rpb24oZGlkPWt3YXJnc1snZGlkJ10pCisgICAgICAgICMg SWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93 c2VyCisgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6Cisg ICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAg ICAgICAgICAgICAgIGdldHRleHQoCisgICAgICAgICAgICAgICAgICAgICJD b25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisgICAg ICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorCisgICAgICAgICMgV2Ug bmVlZCBkYXRsYXN0c3lzb2lkIHRvIGNoZWNrIGlmIGN1cnJlbnQgdHJpZ2dl ciBpcyBzeXN0ZW0gdHJpZ2dlcgorICAgICAgICBzZWxmLmRhdGxhc3RzeXNv aWQgPSBzZWxmLm1hbmFnZXIuZGJfaW5mb1trd2FyZ3NbJ2RpZCddXVsnZGF0 bGFzdHN5c29pZCddCisKKyAgICAgICAgIyB3ZSB3aWxsIHNldCB0ZW1wbGF0 ZSBwYXRoIGZvciBzcWwgc2NyaXB0cworICAgICAgICBzZWxmLnRlbXBsYXRl X3BhdGggPSAndHJpZ2dlci9zcWwvOS4xX3BsdXMnCisgICAgICAgICMgU3Rv cmUgc2VydmVyIHR5cGUKKyAgICAgICAgc2VsZi5zdHlwZSA9IHNlbGYubWFu YWdlci5zZXJ2ZXJfdHlwZQorICAgICAgICAjIFdlIG5lZWQgcGFyZW50J3Mg bmFtZSBlZyB0YWJsZSBuYW1lIGFuZCBzY2hlbWEgbmFtZQorICAgICAgICAj IHdoZW4gd2UgY3JlYXRlIG5ldyB0cmlnZ2VyIGluIHVwZGF0ZSB3ZSBjYW4g ZmV0Y2ggaXQgdXNpbmcKKyAgICAgICAgIyBwcm9wZXJ0eSBzcWwKKyAgICAg ICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKCIvIi5qb2luKFtzZWxmLnRlbXBs YXRlX3BhdGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgJ2dldF9wYXJlbnQuc3FsJ10pLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdGlkPWt3YXJnc1sndGlkJ10pCisgICAgICAgIHN0YXR1 cywgcnNldCA9IHNlbGYuY29ubi5leGVjdXRlXzJkYXJyYXkoU1FMKQorICAg ICAgICBpZiBub3Qgc3RhdHVzOgorICAgICAgICAgICAgcmV0dXJuIGludGVy bmFsX3NlcnZlcl9lcnJvcihlcnJvcm1zZz1yc2V0KQorCisgICAgICAgIGZv ciByb3cgaW4gcnNldFsncm93cyddOgorICAgICAgICAgICAgc2VsZi5zY2hl bWEgPSByb3dbJ3NjaGVtYSddCisgICAgICAgICAgICBzZWxmLnRhYmxlID0g cm93Wyd0YWJsZSddCisKKyAgICAgICAgIyBIZXJlIHdlIGFyZSBzdG9yaW5n IHRyaWdnZXIgZGVmaW5pdGlvbgorICAgICAgICAjIFdlIHdpbGwgdXNlIGl0 IHRvIGNoZWNrIHRyaWdnZXIgdHlwZSBkZWZpbml0aW9uCisgICAgICAgIHNl bGYudHJpZ2dlcl9kZWZpbml0aW9uID0geworICAgICAgICAgICAgJ1RSSUdH RVJfVFlQRV9ST1cnOiAoMSA8PCAwKSwKKyAgICAgICAgICAgICdUUklHR0VS X1RZUEVfQkVGT1JFJzogKDEgPDwgMSksCisgICAgICAgICAgICAnVFJJR0dF Ul9UWVBFX0lOU0VSVCc6ICgxIDw8IDIpLAorICAgICAgICAgICAgJ1RSSUdH RVJfVFlQRV9ERUxFVEUnOiAoMSA8PCAzKSwKKyAgICAgICAgICAgICdUUklH R0VSX1RZUEVfVVBEQVRFJzogKDEgPDwgNCksCisgICAgICAgICAgICAnVFJJ R0dFUl9UWVBFX1RSVU5DQVRFJzogKDEgPDwgNSksCisgICAgICAgICAgICAn VFJJR0dFUl9UWVBFX0lOU1RFQUQnOiAoMSA8PCA2KQorICAgICAgICB9CisK KyAgICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQorCisgICAgcmV0 dXJuIHdyYXAKKworCiBjbGFzcyBUcmlnZ2VyTW9kdWxlKENvbGxlY3Rpb25O b2RlTW9kdWxlKToKICAgICAiIiIKICAgICAgY2xhc3MgVHJpZ2dlck1vZHVs ZShDb2xsZWN0aW9uTm9kZU1vZHVsZSkKQEAgLTkxLDEzICsxNTIsMjYgQEAg Y2xhc3MgVHJpZ2dlck1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CiAg ICAgICAgICAgICAjIHRoZW4gdHJ1ZSwgb3RoZXdpc2UgZmFsc2UKICAgICAg ICAgICAgIHJldHVybiByZXMKIAorICAgIEBjaGVja19wcmVjb25kaXRpb24K ICAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQs ICoqa3dhcmdzKToKICAgICAgICAgIiIiCiAgICAgICAgIEdlbmVyYXRlIHRo ZSBjb2xsZWN0aW9uIG5vZGUKICAgICAgICAgIiIiCisgICAgICAgIGNvbGxl Y3Rpb25fY291bnQgPSAwCisgICAgICAgIF9pZCA9IGt3YXJnc1sndGlkJ10g aWYgJ3RpZCcgaW4ga3dhcmdzIGVsc2Uga3dhcmdzWyd2aWQnXQorCisgICAg ICAgIGNvdW50X3NxbCA9ICdTRUxFQ1QgY291bnQoKikgRlJPTSggJworICAg ICAgICBub2RlX3NxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdub2Rlcy5zcWwnXSksIHRpZD1faWQpCisgICAgICAg IGNvdW50X3NxbCArPSBub2RlX3NxbCArICcgKSBBUyBjb2xsZWN0aW9uX2Nv dW50JworCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYuY29ubi5leGVj dXRlX3NjYWxhcihjb3VudF9zcWwpCisgICAgICAgIGlmIHN0YXR1czoKKyAg ICAgICAgICAgIGNvbGxlY3Rpb25fY291bnQgPSByc2V0CisKICAgICAgICAg YXNzZXJ0ICgndGlkJyBpbiBrd2FyZ3Mgb3IgJ3ZpZCcgaW4ga3dhcmdzKQog ICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlv bl9ub2RlKAotICAgICAgICAgICAga3dhcmdzWyd0aWQnXSBpZiAndGlkJyBp biBrd2FyZ3MgZWxzZSBrd2FyZ3NbJ3ZpZCddCisgICAgICAgICAgICBrd2Fy Z3NbJ3RpZCddIGlmICd0aWQnIGluIGt3YXJncyBlbHNlIGt3YXJnc1sndmlk J10sIGNvbGxlY3Rpb25fY291bnQKICAgICAgICAgKQogCiAgICAgQHByb3Bl cnR5CkBAIC0yNDAsNjYgKzMxNCw2IEBAIGNsYXNzIFRyaWdnZXJWaWV3KFBH Q2hpbGROb2RlVmlldyk6CiAgICAgICAgICdlbmFibGUnOiBbeydwdXQnOiAn ZW5hYmxlX2Rpc2FibGVfdHJpZ2dlcid9XQogICAgIH0pCiAKLSAgICBkZWYg Y2hlY2tfcHJlY29uZGl0aW9uKGYpOgotICAgICAgICAiIiIKLSAgICAgICAg VGhpcyBmdW5jdGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGlj aCB3aWxsIGNoZWNrcwotICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJl Zm9yZSBydW5uaW5nIHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcwotICAg ICAgICBtYW5hZ2VyLGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMg dG8gc2VsZgotICAgICAgICAiIiIKLQotICAgICAgICBAd3JhcHMoZikKLSAg ICAgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgICAg ICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwg aG9sZCBnaWQsc2lkLGRpZAotICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0K LSAgICAgICAgICAgIHNlbGYubWFuYWdlciA9IGdldF9kcml2ZXIoUEdfREVG QVVMVF9EUklWRVIpLmNvbm5lY3Rpb25fbWFuYWdlcigKLSAgICAgICAgICAg ICAgICBrd2FyZ3NbJ3NpZCddCi0gICAgICAgICAgICApCi0gICAgICAgICAg ICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlvbihkaWQ9a3dh cmdzWydkaWQnXSkKLSAgICAgICAgICAgICMgSWYgREIgbm90IGNvbm5lY3Rl ZCB0aGVuIHJldHVybiBlcnJvciB0byBicm93c2VyCi0gICAgICAgICAgICBp ZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgpOgotICAgICAgICAgICAgICAg IHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCi0gICAgICAgICAgICAg ICAgICAgIGdldHRleHQoCi0gICAgICAgICAgICAgICAgICAgICAgICAiQ29u bmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3QhIgotICAgICAg ICAgICAgICAgICAgICApCi0gICAgICAgICAgICAgICAgKQotCi0gICAgICAg ICAgICAjIFdlIG5lZWQgZGF0bGFzdHN5c29pZCB0byBjaGVjayBpZiBjdXJy ZW50IHRyaWdnZXIgaXMgc3lzdGVtIHRyaWdnZXIKLSAgICAgICAgICAgIHNl bGYuZGF0bGFzdHN5c29pZCA9IHNlbGYubWFuYWdlci5kYl9pbmZvW2t3YXJn c1snZGlkJ11dWydkYXRsYXN0c3lzb2lkJ10KLQotICAgICAgICAgICAgIyB3 ZSB3aWxsIHNldCB0ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cwotICAg ICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ3RyaWdnZXIvc3FsLzku MV9wbHVzJwotICAgICAgICAgICAgIyBTdG9yZSBzZXJ2ZXIgdHlwZQotICAg ICAgICAgICAgc2VsZi5zZXJ2ZXJfdHlwZSA9IHNlbGYubWFuYWdlci5zZXJ2 ZXJfdHlwZQotICAgICAgICAgICAgIyBXZSBuZWVkIHBhcmVudCdzIG5hbWUg ZWcgdGFibGUgbmFtZSBhbmQgc2NoZW1hIG5hbWUKLSAgICAgICAgICAgICMg d2hlbiB3ZSBjcmVhdGUgbmV3IHRyaWdnZXIgaW4gdXBkYXRlIHdlIGNhbiBm ZXRjaCBpdCB1c2luZwotICAgICAgICAgICAgIyBwcm9wZXJ0eSBzcWwKLSAg ICAgICAgICAgIFNRTCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAnZ2V0X3BhcmVudC5zcWwnXSksCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGlkPWt3YXJnc1sndGlkJ10p Ci0gICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0 ZV8yZGFycmF5KFNRTCkKLSAgICAgICAgICAgIGlmIG5vdCBzdGF0dXM6Ci0g ICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcihl cnJvcm1zZz1yc2V0KQotCi0gICAgICAgICAgICBmb3Igcm93IGluIHJzZXRb J3Jvd3MnXToKLSAgICAgICAgICAgICAgICBzZWxmLnNjaGVtYSA9IHJvd1sn c2NoZW1hJ10KLSAgICAgICAgICAgICAgICBzZWxmLnRhYmxlID0gcm93Wyd0 YWJsZSddCi0KLSAgICAgICAgICAgICMgSGVyZSB3ZSBhcmUgc3RvcmluZyB0 cmlnZ2VyIGRlZmluaXRpb24KLSAgICAgICAgICAgICMgV2Ugd2lsbCB1c2Ug aXQgdG8gY2hlY2sgdHJpZ2dlciB0eXBlIGRlZmluaXRpb24KLSAgICAgICAg ICAgIHNlbGYudHJpZ2dlcl9kZWZpbml0aW9uID0gewotICAgICAgICAgICAg ICAgICdUUklHR0VSX1RZUEVfUk9XJzogKDEgPDwgMCksCi0gICAgICAgICAg ICAgICAgJ1RSSUdHRVJfVFlQRV9CRUZPUkUnOiAoMSA8PCAxKSwKLSAgICAg ICAgICAgICAgICAnVFJJR0dFUl9UWVBFX0lOU0VSVCc6ICgxIDw8IDIpLAot ICAgICAgICAgICAgICAgICdUUklHR0VSX1RZUEVfREVMRVRFJzogKDEgPDwg MyksCi0gICAgICAgICAgICAgICAgJ1RSSUdHRVJfVFlQRV9VUERBVEUnOiAo MSA8PCA0KSwKLSAgICAgICAgICAgICAgICAnVFJJR0dFUl9UWVBFX1RSVU5D QVRFJzogKDEgPDwgNSksCi0gICAgICAgICAgICAgICAgJ1RSSUdHRVJfVFlQ RV9JTlNURUFEJzogKDEgPDwgNikKLSAgICAgICAgICAgIH0KLQotICAgICAg ICAgICAgcmV0dXJuIGYoKmFyZ3MsICoqa3dhcmdzKQotCi0gICAgICAgIHJl dHVybiB3cmFwCi0KICAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAgICAgZGVm IGdldF90cmlnZ2VyX2Z1bmN0aW9ucyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBz Y2lkLCB0aWQsIHRyaWQ9Tm9uZSk6CiAgICAgICAgICIiIgpAQCAtMzEyLDcg KzMyNiw3IEBAIGNsYXNzIFRyaWdnZXJWaWV3KFBHQ2hpbGROb2RlVmlldyk6 CiAgICAgICAgICMgSWYgc2VydmVyIHR5cGUgaXMgRURCLVBQQVMgdGhlbiB3 ZSBhbHNvIG5lZWQgdG8gYWRkCiAgICAgICAgICMgaW5saW5lIGVkYi1zcGwg YWxvbmcgd2l0aCBvcHRpb25zIGZldGNoZWQgYnkgYmVsb3cgc3FsCiAKLSAg ICAgICAgaWYgc2VsZi5zZXJ2ZXJfdHlwZSA9PSAncHBhcyc6CisgICAgICAg IGlmIHNlbGYuc3R5cGUgPT0gJ3BwYXMnOgogICAgICAgICAgICAgcmVzLmFw cGVuZCh7CiAgICAgICAgICAgICAgICAgJ2xhYmVsJzogJ0lubGluZSBFREIt U1BMJywKICAgICAgICAgICAgICAgICAndmFsdWUnOiAnSW5saW5lIEVEQi1T UEwnCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZW1wbGF0ZXMvY2F0 YWxvZy9wZy85LjFfcGx1cy9zcWwvbm9kZXMuc3FsIGIvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdGVtcGxhdGVzL2NhdGFsb2cvcGcvOS4xX3BsdXMvc3FsL25vZGVzLnNx bAppbmRleCAzYWQ5YTkwLi4zNzMwODhlIDEwMDY0NAotLS0gYS93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90ZW1wbGF0ZXMvY2F0YWxvZy9wZy85LjFfcGx1cy9zcWwvbm9k ZXMuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RlbXBsYXRlcy9jYXRhbG9n L3BnLzkuMV9wbHVzL3NxbC9ub2Rlcy5zcWwKQEAgLTEzLDQgKzEzLDQgQEAg V0hFUkUKICAgICAoCiB7eyBDQVRBTE9HUy5MSVNUKCduc3AnKSB9fQogICAg ICkKLU9SREVSIEJZIDI7CitPUkRFUiBCWSAyCmRpZmYgLS1naXQgYS93ZWIv cGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFz ZXMvc2NoZW1hcy90ZW1wbGF0ZXMvY2F0YWxvZy9wZy85LjJfcGx1cy9zcWwv bm9kZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL2NhdGFsb2cv cGcvOS4yX3BsdXMvc3FsL25vZGVzLnNxbAppbmRleCAzYWQ5YTkwLi4zNzMw ODhlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9n cm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZW1wbGF0ZXMvY2F0 YWxvZy9wZy85LjJfcGx1cy9zcWwvbm9kZXMuc3FsCisrKyBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RlbXBsYXRlcy9jYXRhbG9nL3BnLzkuMl9wbHVzL3NxbC9ub2Rl cy5zcWwKQEAgLTEzLDQgKzEzLDQgQEAgV0hFUkUKICAgICAoCiB7eyBDQVRB TE9HUy5MSVNUKCduc3AnKSB9fQogICAgICkKLU9SREVSIEJZIDI7CitPUkRF UiBCWSAyCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZW1wbGF0ZXMv Y2F0YWxvZy9wcGFzLzkuMV9wbHVzL3NxbC9ub2Rlcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90ZW1wbGF0ZXMvY2F0YWxvZy9wcGFzLzkuMV9wbHVzL3NxbC9u b2Rlcy5zcWwKaW5kZXggNGViMzMyNy4uN2Q4OTBjZiAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL2NhdGFsb2cvcHBhcy85LjFfcGx1 cy9zcWwvbm9kZXMuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2Vy dmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RlbXBsYXRl cy9jYXRhbG9nL3BwYXMvOS4xX3BsdXMvc3FsL25vZGVzLnNxbApAQCAtMTQs NCArMTQsNCBAQCBXSEVSRQogICAgICgKIHt7IENBVEFMT0dTLkxJU1QoJ25z cCcpIH19CiAgICAgKQotT1JERVIgQlkgMjsKK09SREVSIEJZIDIKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RlbXBsYXRlcy9jYXRhbG9nL3BwYXMv OS4yX3BsdXMvc3FsL25vZGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIv c2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RlbXBs YXRlcy9jYXRhbG9nL3BwYXMvOS4yX3BsdXMvc3FsL25vZGVzLnNxbAppbmRl eCA3MWQ1NTM1Li5hMTI1MDg2IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90ZW1wbGF0ZXMvY2F0YWxvZy9wcGFzLzkuMl9wbHVzL3NxbC9ub2Rlcy5z cWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL2NhdGFsb2cvcHBh cy85LjJfcGx1cy9zcWwvbm9kZXMuc3FsCkBAIC0xNCw0ICsxNCw0IEBAIFdI RVJFCiAgICAgKAoge3sgQ0FUQUxPR1MuTElTVCgnbnNwJykgfX0KICAgICAp Ci1PUkRFUiBCWSAyOworT1JERVIgQlkgMgpkaWZmIC0tZ2l0IGEvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdGVtcGxhdGVzL3NjaGVtYS9wZy85LjFfcGx1cy9zcWwvbm9k ZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL3NjaGVtYS9wZy85 LjFfcGx1cy9zcWwvbm9kZXMuc3FsCmluZGV4IDE3NTg0MWMuLmI0YzM4OTAg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RlbXBsYXRlcy9zY2hlbWEv cGcvOS4xX3BsdXMvc3FsL25vZGVzLnNxbAorKysgYi93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1h cy90ZW1wbGF0ZXMvc2NoZW1hL3BnLzkuMV9wbHVzL3NxbC9ub2Rlcy5zcWwK QEAgLTE3LDQgKzE3LDQgQEAgV0hFUkUKICAgICBOT1QgKAoge3sgQ0FUQUxP R1MuTElTVCgnbnNwJykgfX0KICAgICApCi1PUkRFUiBCWSBuc3BuYW1lOwor T1JERVIgQlkgbnNwbmFtZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMv dGVtcGxhdGVzL3NjaGVtYS9wZy85LjJfcGx1cy9zcWwvbm9kZXMuc3FsIGIv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVzL3NjaGVtYS9wZy85LjJfcGx1cy9z cWwvbm9kZXMuc3FsCmluZGV4IDE3NTg0MWMuLmI0YzM4OTAgMTAwNjQ0Ci0t LSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy9zY2hlbWFzL3RlbXBsYXRlcy9zY2hlbWEvcGcvOS4yX3Bs dXMvc3FsL25vZGVzLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3Nl cnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZW1wbGF0 ZXMvc2NoZW1hL3BnLzkuMl9wbHVzL3NxbC9ub2Rlcy5zcWwKQEAgLTE3LDQg KzE3LDQgQEAgV0hFUkUKICAgICBOT1QgKAoge3sgQ0FUQUxPR1MuTElTVCgn bnNwJykgfX0KICAgICApCi1PUkRFUiBCWSBuc3BuYW1lOworT1JERVIgQlkg bnNwbmFtZQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdGVtcGxhdGVz L3NjaGVtYS9wcGFzLzkuMV9wbHVzL3NxbC9ub2Rlcy5zcWwgYi93ZWIvcGdh ZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMv c2NoZW1hcy90ZW1wbGF0ZXMvc2NoZW1hL3BwYXMvOS4xX3BsdXMvc3FsL25v ZGVzLnNxbAppbmRleCAyZmI3N2JhLi5hNDkxNjcyIDEwMDY0NAotLS0gYS93 ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRh YmFzZXMvc2NoZW1hcy90ZW1wbGF0ZXMvc2NoZW1hL3BwYXMvOS4xX3BsdXMv c3FsL25vZGVzLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZW1wbGF0ZXMv c2NoZW1hL3BwYXMvOS4xX3BsdXMvc3FsL25vZGVzLnNxbApAQCAtMTgsNCAr MTgsNCBAQCBXSEVSRQogICAgIE5PVCAoCiB7eyBDQVRBTE9HUy5MSVNUKCdu c3AnKSB9fQogICAgICkKLU9SREVSIEJZIG5zcG5hbWU7CitPUkRFUiBCWSBu c3BuYW1lCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90ZW1wbGF0ZXMv c2NoZW1hL3BwYXMvOS4yX3BsdXMvc3FsL25vZGVzLnNxbCBiL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9z Y2hlbWFzL3RlbXBsYXRlcy9zY2hlbWEvcHBhcy85LjJfcGx1cy9zcWwvbm9k ZXMuc3FsCmluZGV4IDJmYjc3YmEuLmE0OTE2NzIgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFi YXNlcy9zY2hlbWFzL3RlbXBsYXRlcy9zY2hlbWEvcHBhcy85LjJfcGx1cy9z cWwvbm9kZXMuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3RlbXBsYXRlcy9z Y2hlbWEvcHBhcy85LjJfcGx1cy9zcWwvbm9kZXMuc3FsCkBAIC0xOCw0ICsx OCw0IEBAIFdIRVJFCiAgICAgTk9UICgKIHt7IENBVEFMT0dTLkxJU1QoJ25z cCcpIH19CiAgICAgKQotT1JERVIgQlkgbnNwbmFtZTsKK09SREVSIEJZIG5z cG5hbWUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL19faW5p dF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvX19pbml0X18ucHkKaW5k ZXggOGVhN2FhOS4uNzM3NjA1ZCAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4v YnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVt YXMvdHlwZXMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nl ci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlw ZXMvX19pbml0X18ucHkKQEAgLTI4LDYgKzI4LDQyIEBAIGZyb20gcGdhZG1p bi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKIGZyb20gY29uZmln IGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgogCiAKK2RlZiBjaGVja19wcmVj b25kaXRpb24oZik6CisgICAgIiIiCisgICAgVGhpcyBmdW5jdGlvbiB3aWxs IGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNrcworICAg IGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcgdmlldywgaXQg d2lsbCBhbHNvIGF0dGFjaGVzCisgICAgbWFuYWdlcixjb25uICYgdGVtcGxh dGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAgICAiIiIKKworICAgIEB3 cmFwcyhmKQorICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJncyk6CisgICAg ICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdp bGwgaG9sZCBnaWQsc2lkLGRpZAorICAgICAgICBzZWxmID0gYXJnc1swXQor ICAgICAgICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRf RFJJVkVSKS5jb25uZWN0aW9uX21hbmFnZXIoa3dhcmdzWydzaWQnXSkKKyAg ICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlk PWt3YXJnc1snZGlkJ10pCisKKyAgICAgICAgIyBXZSBuZWVkIGRhdGxhc3Rz eXNvaWQgdG8gY2hlY2sgaWYgY3VycmVudCB0eXBlIGlzIHN5c3RlbSB0eXBl CisgICAgICAgIHNlbGYuZGF0bGFzdHN5c29pZCA9IHNlbGYubWFuYWdlci5k Yl9pbmZvW2t3YXJnc1snZGlkJ11dWydkYXRsYXN0c3lzb2lkJ10KKworICAg ICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3Ig dG8gYnJvd3NlcgorICAgICAgICBpZiBub3Qgc2VsZi5jb25uLmNvbm5lY3Rl ZCgpOgorICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJl ZCgKKyAgICAgICAgICAgICAgICBnZXR0ZXh0KAorICAgICAgICAgICAgICAg ICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxvc3Qh IgorICAgICAgICAgICAgICAgICkKKyAgICAgICAgICAgICkKKworICAgICAg ICAjIERlY2xhcmUgYWxsb3dzIGFjbCBvbiB0eXBlCisgICAgICAgIHNlbGYu YWNsID0gWydVJ10KKworICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBsYXRl IHBhdGggZm9yIHNxbCBzY3JpcHRzCisgICAgICAgIHNlbGYudGVtcGxhdGVf cGF0aCA9ICd0eXBlL3NxbC85LjFfcGx1cycKKworICAgICAgICByZXR1cm4g ZigqYXJncywgKiprd2FyZ3MpCisKKyAgICByZXR1cm4gd3JhcAorCisKIGNs YXNzIFR5cGVNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgogICAgICIiIgog ICAgICBjbGFzcyBUeXBlTW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxlKQpAQCAt NjUsMTEgKzEwMSwyMyBAQCBjbGFzcyBUeXBlTW9kdWxlKFNjaGVtYUNoaWxk TW9kdWxlKToKICAgICAgICAgc2VsZi5taW5fdmVyID0gTm9uZQogICAgICAg ICBzZWxmLm1heF92ZXIgPSBOb25lCiAKKyAgICBAY2hlY2tfcHJlY29uZGl0 aW9uCiAgICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBz Y2lkKToKICAgICAgICAgIiIiCiAgICAgICAgIEdlbmVyYXRlIHRoZSBjb2xs ZWN0aW9uIG5vZGUKICAgICAgICAgIiIiCi0gICAgICAgIHlpZWxkIHNlbGYu Z2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUoc2NpZCkKKyAgICAg ICAgY29sbGVjdGlvbl9jb3VudCA9IDAKKworICAgICAgICBjb3VudF9zcWwg PSAnU0VMRUNUIGNvdW50KCopIEZST00oICcKKyAgICAgICAgbm9kZV9zcWwg PSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4oW3NlbGYudGVtcGxhdGVfcGF0 aCwnbm9kZXMuc3FsJ10pLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzY2lkPXNjaWQsIHNob3dfc3lzdGVtX29iamVjdHM9c2VsZi5z aG93X3N5c3RlbV9vYmplY3RzKQorICAgICAgICBjb3VudF9zcWwgKz0gbm9k ZV9zcWwgKyAnICkgQVMgY29sbGVjdGlvbl9jb3VudCcKKworICAgICAgICBz dGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4uZXhlY3V0ZV9zY2FsYXIoY291bnRf c3FsKQorICAgICAgICBpZiBzdGF0dXM6CisgICAgICAgICAgICBjb2xsZWN0 aW9uX2NvdW50ID0gcnNldAorCisgICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJh dGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUoc2NpZCwgY29sbGVjdGlvbl9j b3VudCkKIAogICAgIEBwcm9wZXJ0eQogICAgIGRlZiBzY3JpcHRfbG9hZChz ZWxmKToKQEAgLTIwOCw0MSArMjU2LDYgQEAgY2xhc3MgVHlwZVZpZXcoUEdD aGlsZE5vZGVWaWV3LCBEYXRhVHlwZVJlYWRlcik6CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHsnZ2V0JzogJ2dldF9leHRlcm5hbF9m dW5jdGlvbnNfbGlzdCd9XQogICAgIH0pCiAKLSAgICBkZWYgY2hlY2tfcHJl Y29uZGl0aW9uKGYpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBmdW5j dGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNo ZWNrcwotICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5u aW5nIHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcwotICAgICAgICBtYW5h Z2VyLGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgot ICAgICAgICAiIiIKLQotICAgICAgICBAd3JhcHMoZikKLSAgICAgICAgZGVm IHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgICAgICMgSGVyZSBh cmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBnaWQs c2lkLGRpZAotICAgICAgICAgICAgc2VsZiA9IGFyZ3NbMF0KLSAgICAgICAg ICAgIHNlbGYubWFuYWdlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklW RVIpLmNvbm5lY3Rpb25fbWFuYWdlcihrd2FyZ3NbJ3NpZCddKQotICAgICAg ICAgICAgc2VsZi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oZGlk PWt3YXJnc1snZGlkJ10pCi0KLSAgICAgICAgICAgICMgV2UgbmVlZCBkYXRs YXN0c3lzb2lkIHRvIGNoZWNrIGlmIGN1cnJlbnQgdHlwZSBpcyBzeXN0ZW0g dHlwZQotICAgICAgICAgICAgc2VsZi5kYXRsYXN0c3lzb2lkID0gc2VsZi5t YW5hZ2VyLmRiX2luZm9ba3dhcmdzWydkaWQnXV1bJ2RhdGxhc3RzeXNvaWQn XQotCi0gICAgICAgICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhlbiBy ZXR1cm4gZXJyb3IgdG8gYnJvd3NlcgotICAgICAgICAgICAgaWYgbm90IHNl bGYuY29ubi5jb25uZWN0ZWQoKToKLSAgICAgICAgICAgICAgICByZXR1cm4g cHJlY29uZGl0aW9uX3JlcXVpcmVkKAotICAgICAgICAgICAgICAgICAgICBn ZXR0ZXh0KAotICAgICAgICAgICAgICAgICAgICAgICAgIkNvbm5lY3Rpb24g dG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKLSAgICAgICAgICAgICAg ICAgICAgKQotICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAgIyBE ZWNsYXJlIGFsbG93cyBhY2wgb24gdHlwZQotICAgICAgICAgICAgc2VsZi5h Y2wgPSBbJ1UnXQotCi0gICAgICAgICAgICAjIHdlIHdpbGwgc2V0IHRlbXBs YXRlIHBhdGggZm9yIHNxbCBzY3JpcHRzCi0gICAgICAgICAgICBzZWxmLnRl bXBsYXRlX3BhdGggPSAndHlwZS9zcWwvOS4xX3BsdXMnCi0KLSAgICAgICAg ICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKLQotICAgICAgICByZXR1 cm4gd3JhcAotCiAgICAgQGNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRlZiBs aXN0KHNlbGYsIGdpZCwgc2lkLCBkaWQsIHNjaWQpOgogICAgICAgICAiIiIK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFzL3R5cGVzL3RlbXBsYXRlcy90 eXBlL3NxbC85LjFfcGx1cy9ub2Rlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93 c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvc2NoZW1hcy90 eXBlcy90ZW1wbGF0ZXMvdHlwZS9zcWwvOS4xX3BsdXMvbm9kZXMuc3FsCmlu ZGV4IDZhYmNiMTkuLjhkNmZiOGQgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hl bWFzL3R5cGVzL3RlbXBsYXRlcy90eXBlL3NxbC85LjFfcGx1cy9ub2Rlcy5z cWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdHlwZXMvdGVtcGxhdGVzL3R5cGUv c3FsLzkuMV9wbHVzL25vZGVzLnNxbApAQCAtNyw0ICs3LDQgQEAgV0hFUkUg dC50eXB0eXBlICE9ICdkJyBBTkQgdC50eXBuYW1lIE5PVCBMSUtFIEUnXFxf JScgQU5EIHQudHlwbmFtZXNwYWNlID0ge3tzY2kKIHslIGlmIG5vdCBzaG93 X3N5c3RlbV9vYmplY3RzICV9CiAgICAgQU5EIGN0Lm9pZCBpcyBOVUxMCiB7 JSBlbmRpZiAlfQotT1JERVIgQlkgdC50eXBuYW1lOwpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKK09SREVSIEJZIHQudHlwbmFtZQpcIE5vIG5ld2xp bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jy b3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy9zY2hlbWFz L3ZpZXdzL19faW5pdF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2 ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3NjaGVtYXMvdmlld3MvX19p bml0X18ucHkKaW5kZXggMzE3YTQ4OC4uNDNkMzYxNyAxMDA2NDQKLS0tIGEv d2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0 YWJhc2VzL3NjaGVtYXMvdmlld3MvX19pbml0X18ucHkKKysrIGIvd2ViL3Bn YWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvZGF0YWJhc2Vz L3NjaGVtYXMvdmlld3MvX19pbml0X18ucHkKQEAgLTQzLDYgKzQzLDY1IEBA IGZyb20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgogIiIiCiAK IAorZGVmIGNoZWNrX3ByZWNvbmRpdGlvbihmKToKKyAgICAiIiIKKyAgICBU aGlzIGZ1bmN0aW9uIHdpbGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNo IHdpbGwgY2hlY2tzCisgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUg cnVubmluZyB2aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKKyAgICBtYW5h Z2VyLGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gaW5zdGFu Y2Ugb2YgdGhlIG1ldGhvZC4KKworICAgIEFzc3VtcHRpb25zOgorICAgICAg ICBUaGlzIGZ1bmN0aW9uIHdpbGwgYWx3YXlzIGJlIHVzZWQgYXMgZGVjb3Jh dG9yIG9mIGEgY2xhc3MgbWV0aG9kLgorICAgICIiIgorCisgICAgQHdyYXBz KGYpCisgICAgZGVmIHdyYXAoKmFyZ3MsICoqa3dhcmdzKToKKworICAgICAg ICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxs IGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAgICAgc2VsZiA9IGFyZ3NbMF0KKyAg ICAgICAgcGdfZHJpdmVyID0gZ2V0X2RyaXZlcihQR19ERUZBVUxUX0RSSVZF UikKKyAgICAgICAgc2VsZi5xdElkZW50ID0gcGdfZHJpdmVyLnF0SWRlbnQK KyAgICAgICAgc2VsZi5tYW5hZ2VyID0gcGdfZHJpdmVyLmNvbm5lY3Rpb25f bWFuYWdlcigKKyAgICAgICAgICAgIGt3YXJnc1snc2lkJ10KKyAgICAgICAg KQorICAgICAgICBzZWxmLmNvbm4gPSBzZWxmLm1hbmFnZXIuY29ubmVjdGlv bihkaWQ9a3dhcmdzWydkaWQnXSkKKyAgICAgICAgIyBJZiBEQiBub3QgY29u bmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRvIGJyb3dzZXIKKyAgICAgICAg aWYgbm90IHNlbGYuY29ubi5jb25uZWN0ZWQoKToKKyAgICAgICAgICAgIHJl dHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisgICAgICAgICAgICAgICAg Z2V0dGV4dCgiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVyIGhhcyBiZWVuIGxv c3QhIikKKyAgICAgICAgICAgICkKKyAgICAgICAgc2VsZi5kYXRsYXN0c3lz b2lkID0gc2VsZi5tYW5hZ2VyLmRiX2luZm9bCisgICAgICAgICAgICBrd2Fy Z3NbJ2RpZCddXVsnZGF0bGFzdHN5c29pZCddCisKKyAgICAgICAgIyBTZXQg dGVtcGxhdGUgcGF0aCBmb3Igc3FsIHNjcmlwdHMKKyAgICAgICAgaWYgaGFz YXR0cihzZWxmLCAnTk9ERV9UWVBFJyk6CisgICAgICAgICAgICBpbml0aWFs X3BhdGggPSBzZWxmLk5PREVfVFlQRQorICAgICAgICBlbHNlOgorICAgICAg ICAgICAgaW5pdGlhbF9wYXRoID0gc2VsZi50ZW1wbGF0ZV9pbml0aWFsCisK KyAgICAgICAgaWYgaW5pdGlhbF9wYXRoID09ICd2aWV3JzoKKyAgICAgICAg ICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9IGluaXRpYWxfcGF0aCArICcvJyAr ICgKKyAgICAgICAgICAgICAgICBWaWV3Tm9kZS5wcGFzX3RlbXBsYXRlX3Bh dGgoc2VsZi5tYW5hZ2VyLnZlcnNpb24pCisgICAgICAgICAgICAgICAgaWYg c2VsZi5tYW5hZ2VyLnNlcnZlcl90eXBlID09ICdwcGFzJyBlbHNlCisgICAg ICAgICAgICAgICAgVmlld05vZGUucGdfdGVtcGxhdGVfcGF0aChzZWxmLm1h bmFnZXIudmVyc2lvbikKKyAgICAgICAgICAgICkKKyAgICAgICAgZWxzZToK KyAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9IGluaXRpYWxfcGF0 aCArICcvJyArICgKKyAgICAgICAgICAgICAgICBNVmlld05vZGUucHBhc190 ZW1wbGF0ZV9wYXRoKHNlbGYubWFuYWdlci52ZXJzaW9uKQorICAgICAgICAg ICAgICAgIGlmIHNlbGYubWFuYWdlci5zZXJ2ZXJfdHlwZSA9PSAncHBhcycg ZWxzZQorICAgICAgICAgICAgICAgIE1WaWV3Tm9kZS5wZ190ZW1wbGF0ZV9w YXRoKHNlbGYubWFuYWdlci52ZXJzaW9uKQorICAgICAgICAgICAgKQorCisg ICAgICAgIHZlciA9IHNlbGYubWFuYWdlci52ZXJzaW9uCisgICAgICAgIGlm IHZlciA+PSA5MDIwMDoKKyAgICAgICAgICAgIHNlbGYuY29sdW1uX3RlbXBs YXRlX3BhdGggPSAnY29sdW1uL3NxbC85LjJfcGx1cycKKyAgICAgICAgZWxz ZToKKyAgICAgICAgICAgIHNlbGYuY29sdW1uX3RlbXBsYXRlX3BhdGggPSAn Y29sdW1uL3NxbC85LjFfcGx1cycKKworICAgICAgICByZXR1cm4gZigqYXJn cywgKiprd2FyZ3MpCisKKyAgICByZXR1cm4gd3JhcAorCisKIGNsYXNzIFZp ZXdNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgogICAgICIiIgogICAgIGNs YXNzIFZpZXdNb2R1bGUoU2NoZW1hQ2hpbGRNb2R1bGUpOgpAQCAtNzksMTEg KzEzOCwyMyBAQCBjbGFzcyBWaWV3TW9kdWxlKFNjaGVtYUNoaWxkTW9kdWxl KToKICAgICAgICAgc2VsZi5taW5fdmVyID0gTm9uZQogICAgICAgICBzZWxm Lm1heF92ZXIgPSBOb25lCiAKKyAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAg ICAgZGVmIGdldF9ub2RlcyhzZWxmLCBnaWQsIHNpZCwgZGlkLCBzY2lkKToK ICAgICAgICAgIiIiCiAgICAgICAgIEdlbmVyYXRlIHRoZSBjb2xsZWN0aW9u IG5vZGUKICAgICAgICAgIiIiCi0gICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJh dGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25vZGUoc2NpZCkKKyAgICAgICAgY29s bGVjdGlvbl9jb3VudCA9IDAKKworICAgICAgICBjb3VudF9zcWwgPSAnU0VM RUNUIGNvdW50KCopIEZST00oICcKKyAgICAgICAgbm9kZV9zcWwgPSByZW5k ZXJfdGVtcGxhdGUoIi8iLmpvaW4oCisgICAgICAgICAgICBbc2VsZi50ZW1w bGF0ZV9wYXRoLCAnc3FsL3Byb3BlcnRpZXMuc3FsJ10pLCBzY2lkPXNjaWQp CisgICAgICAgIGNvdW50X3NxbCArPSBub2RlX3NxbCArICcgKSBBUyBjb2xs ZWN0aW9uX2NvdW50JworCisgICAgICAgIHN0YXR1cywgcnNldCA9IHNlbGYu Y29ubi5leGVjdXRlX3NjYWxhcihjb3VudF9zcWwpCisgICAgICAgIGlmIHN0 YXR1czoKKyAgICAgICAgICAgIGNvbGxlY3Rpb25fY291bnQgPSByc2V0CisK KyAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rp b25fbm9kZShzY2lkLCBjb2xsZWN0aW9uX2NvdW50KQogCiAgICAgQHByb3Bl cnR5CiAgICAgZGVmIHNjcmlwdF9sb2FkKHNlbGYpOgpAQCAtMTUwLDUzICsy MjEsNiBAQCB2aWV3X2JsdWVwcmludCA9IFZpZXdNb2R1bGUoX19uYW1lX18p CiBtdmlld19ibHVlcHJpbnQgPSBNVmlld01vZHVsZShfX25hbWVfXykKIAog Ci1kZWYgY2hlY2tfcHJlY29uZGl0aW9uKGYpOgotICAgICIiIgotICAgIFRo aXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2gg d2lsbCBjaGVja3MKLSAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBy dW5uaW5nIHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcwotICAgIG1hbmFn ZXIsY29ubiAmIHRlbXBsYXRlX3BhdGggcHJvcGVydGllcyB0byBpbnN0YW5j ZSBvZiB0aGUgbWV0aG9kLgotCi0gICAgQXNzdW1wdGlvbnM6Ci0gICAgICAg IFRoaXMgZnVuY3Rpb24gd2lsbCBhbHdheXMgYmUgdXNlZCBhcyBkZWNvcmF0 b3Igb2YgYSBjbGFzcyBtZXRob2QuCi0gICAgIiIiCi0KLSAgICBAd3JhcHMo ZikKLSAgICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgotCi0gICAgICAg ICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwg aG9sZCBnaWQsc2lkLGRpZAotICAgICAgICBzZWxmID0gYXJnc1swXQotICAg ICAgICBwZ19kcml2ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVS KQotICAgICAgICBzZWxmLnF0SWRlbnQgPSBwZ19kcml2ZXIucXRJZGVudAot ICAgICAgICBzZWxmLm1hbmFnZXIgPSBwZ19kcml2ZXIuY29ubmVjdGlvbl9t YW5hZ2VyKAotICAgICAgICAgICAga3dhcmdzWydzaWQnXQotICAgICAgICAp Ci0gICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9u KGRpZD1rd2FyZ3NbJ2RpZCddKQotICAgICAgICAjIElmIERCIG5vdCBjb25u ZWN0ZWQgdGhlbiByZXR1cm4gZXJyb3IgdG8gYnJvd3NlcgotICAgICAgICBp ZiBub3Qgc2VsZi5jb25uLmNvbm5lY3RlZCgpOgotICAgICAgICAgICAgcmV0 dXJuIHByZWNvbmRpdGlvbl9yZXF1aXJlZCgKLSAgICAgICAgICAgICAgICBn ZXR0ZXh0KCJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9z dCEiKQotICAgICAgICAgICAgKQotICAgICAgICBzZWxmLmRhdGxhc3RzeXNv aWQgPSBzZWxmLm1hbmFnZXIuZGJfaW5mb1sKLSAgICAgICAgICAgIGt3YXJn c1snZGlkJ11dWydkYXRsYXN0c3lzb2lkJ10KLQotICAgICAgICAjIFNldCB0 ZW1wbGF0ZSBwYXRoIGZvciBzcWwgc2NyaXB0cwotICAgICAgICBzZWxmLnRl bXBsYXRlX3BhdGggPSBzZWxmLnRlbXBsYXRlX2luaXRpYWwgKyAnLycgKyAo Ci0gICAgICAgICAgICBzZWxmLnBwYXNfdGVtcGxhdGVfcGF0aChzZWxmLm1h bmFnZXIudmVyc2lvbikKLSAgICAgICAgICAgIGlmIHNlbGYubWFuYWdlci5z ZXJ2ZXJfdHlwZSA9PSAncHBhcycgZWxzZQotICAgICAgICAgICAgc2VsZi5w Z190ZW1wbGF0ZV9wYXRoKHNlbGYubWFuYWdlci52ZXJzaW9uKQotICAgICAg ICApCi0KLSAgICAgICAgdmVyID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KLSAg ICAgICAgaWYgdmVyID49IDkwMjAwOgotICAgICAgICAgICAgc2VsZi5jb2x1 bW5fdGVtcGxhdGVfcGF0aCA9ICdjb2x1bW4vc3FsLzkuMl9wbHVzJwotICAg ICAgICBlbHNlOgotICAgICAgICAgICAgc2VsZi5jb2x1bW5fdGVtcGxhdGVf cGF0aCA9ICdjb2x1bW4vc3FsLzkuMV9wbHVzJwotCi0gICAgICAgIHJldHVy biBmKCphcmdzLCAqKmt3YXJncykKLQotICAgIHJldHVybiB3cmFwCi0KLQog Y2xhc3MgVmlld05vZGUoUEdDaGlsZE5vZGVWaWV3LCBWYWN1dW1TZXR0aW5n cyk6CiAgICAgIiIiCiAgICAgVGhpcyBjbGFzcyBpcyByZXNwb25zaWJsZSBm b3IgZ2VuZXJhdGluZyByb3V0ZXMgZm9yIHZpZXcgbm9kZS4KZGlmZiAtLWdp dCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJz L2RhdGFiYXNlcy90ZW1wbGF0ZXMvZGF0YWJhc2VzL3NxbC85LjFfcGx1cy9u b2Rlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMv c2VydmVycy9kYXRhYmFzZXMvdGVtcGxhdGVzL2RhdGFiYXNlcy9zcWwvOS4x X3BsdXMvbm9kZXMuc3FsCmluZGV4IGIwNTg4MGMuLmNmOTc3N2YgMTAwNjQ0 Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL2RhdGFiYXNlcy90ZW1wbGF0ZXMvZGF0YWJhc2VzL3NxbC85LjFfcGx1 cy9ub2Rlcy5zcWwKKysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJf Z3JvdXBzL3NlcnZlcnMvZGF0YWJhc2VzL3RlbXBsYXRlcy9kYXRhYmFzZXMv c3FsLzkuMV9wbHVzL25vZGVzLnNxbApAQCAtOSw0ICs5LDQgQEAgZGIub2lk ID0ge3sgZGlkfHF0TGl0ZXJhbCB9fTo6T0lEeyUgZWxzZSAlfQogZGIub2lk ID4ge3sgbGFzdF9zeXN0ZW1fb2lkIH19OjpPSUQKIHslIGVuZGlmICV9CiAK LU9SREVSIEJZIGRhdG5hbWU7CitPUkRFUiBCWSBkYXRuYW1lCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9kYXRhYmFzZXMvdGVtcGxhdGVzL2RhdGFiYXNlcy9zcWwvOS4yX3BsdXMv bm9kZXMuc3FsIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBz L3NlcnZlcnMvZGF0YWJhc2VzL3RlbXBsYXRlcy9kYXRhYmFzZXMvc3FsLzku Ml9wbHVzL25vZGVzLnNxbAppbmRleCBiMDU4ODBjLi5jZjk3NzdmIDEwMDY0 NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy9kYXRhYmFzZXMvdGVtcGxhdGVzL2RhdGFiYXNlcy9zcWwvOS4yX3Bs dXMvbm9kZXMuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVy X2dyb3Vwcy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZW1wbGF0ZXMvZGF0YWJhc2Vz L3NxbC85LjJfcGx1cy9ub2Rlcy5zcWwKQEAgLTksNCArOSw0IEBAIGRiLm9p ZCA9IHt7IGRpZHxxdExpdGVyYWwgfX06Ok9JRHslIGVsc2UgJX0KIGRiLm9p ZCA+IHt7IGxhc3Rfc3lzdGVtX29pZCB9fTo6T0lECiB7JSBlbmRpZiAlfQog Ci1PUkRFUiBCWSBkYXRuYW1lOworT1JERVIgQlkgZGF0bmFtZQpkaWZmIC0t Z2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZl cnMvZGF0YWJhc2VzL3RlbXBsYXRlcy9kYXRhYmFzZXMvc3FsLzkuM19wbHVz L25vZGVzLnNxbCBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL2RhdGFiYXNlcy90ZW1wbGF0ZXMvZGF0YWJhc2VzL3NxbC85 LjNfcGx1cy9ub2Rlcy5zcWwKaW5kZXggYjA1ODgwYy4uY2Y5Nzc3ZiAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvZGF0YWJhc2VzL3RlbXBsYXRlcy9kYXRhYmFzZXMvc3FsLzkuM19w bHVzL25vZGVzLnNxbAorKysgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy9kYXRhYmFzZXMvdGVtcGxhdGVzL2RhdGFiYXNl cy9zcWwvOS4zX3BsdXMvbm9kZXMuc3FsCkBAIC05LDQgKzksNCBAQCBkYi5v aWQgPSB7eyBkaWR8cXRMaXRlcmFsIH19OjpPSUR7JSBlbHNlICV9CiBkYi5v aWQgPiB7eyBsYXN0X3N5c3RlbV9vaWQgfX06Ok9JRAogeyUgZW5kaWYgJX0K IAotT1JERVIgQlkgZGF0bmFtZTsKK09SREVSIEJZIGRhdG5hbWUKZGlmZiAt LWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2 ZXJzL3Jlc291cmNlX2dyb3Vwcy9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWlu L2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3Jlc291cmNlX2dyb3Vw cy9fX2luaXRfXy5weQppbmRleCA3NDllNTQzLi4yZjE5NDk5IDEwMDY0NAot LS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVy cy9yZXNvdXJjZV9ncm91cHMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcmVzb3VyY2VfZ3Jv dXBzL19faW5pdF9fLnB5CkBAIC0yNSw2ICsyNSwzNSBAQCBmcm9tIHBnYWRt aW4udXRpbHMuZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCiBmcm9tIGNvbmZp ZyBpbXBvcnQgUEdfREVGQVVMVF9EUklWRVIKIAogCitkZWYgY2hlY2tfcHJl Y29uZGl0aW9uKGYpOgorICAgICIiIgorICAgIFRoaXMgZnVuY3Rpb24gd2ls bCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MKKyAg ICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5nIHZpZXcsIGl0 IHdpbGwgYWxzbyBhdHRhY2hlcworICAgIG1hbmFnZXIsY29ubiAmIHRlbXBs YXRlX3BhdGggcHJvcGVydGllcyB0byBzZWxmCisgICAgIiIiCisKKyAgICBA d3JhcHMoZikKKyAgICBkZWYgd3JhcCgqYXJncywgKiprd2FyZ3MpOgorICAg ICAgICAjIEhlcmUgYXJnc1swXSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3 aWxsIGhvbGQgZ2lkLHNpZCxkaWQKKyAgICAgICAgc2VsZiA9IGFyZ3NbMF0K KyAgICAgICAgc2VsZi5kcml2ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRf RFJJVkVSKQorICAgICAgICBzZWxmLm1hbmFnZXIgPSBzZWxmLmRyaXZlci5j b25uZWN0aW9uX21hbmFnZXIoa3dhcmdzWydzaWQnXSkKKyAgICAgICAgc2Vs Zi5jb25uID0gc2VsZi5tYW5hZ2VyLmNvbm5lY3Rpb24oKQorCisgICAgICAg ICMgSWYgREIgbm90IGNvbm5lY3RlZCB0aGVuIHJldHVybiBlcnJvciB0byBi cm93c2VyCisgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6 CisgICAgICAgICAgICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAor ICAgICAgICAgICAgICAgIGdldHRleHQoCisgICAgICAgICAgICAgICAgICAg ICJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCisg ICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgKQorCisgICAgICAgIHNl bGYudGVtcGxhdGVfcGF0aCA9ICdyZXNvdXJjZV9ncm91cHMvc3FsJworICAg ICAgICByZXR1cm4gZigqYXJncywgKiprd2FyZ3MpCisKKyAgICByZXR1cm4g d3JhcAorCisKIGNsYXNzIFJlc291cmNlR3JvdXBNb2R1bGUoQ29sbGVjdGlv bk5vZGVNb2R1bGUpOgogICAgICIiIgogICAgICBjbGFzcyBSZXNvdXJjZUdy b3VwTW9kdWxlKENvbGxlY3Rpb25Ob2RlTW9kdWxlKQpAQCAtNjgsNiArOTcs NyBAQCBjbGFzcyBSZXNvdXJjZUdyb3VwTW9kdWxlKENvbGxlY3Rpb25Ob2Rl TW9kdWxlKToKICAgICAgICAgc2VsZi5tYXhfdmVyID0gTm9uZQogICAgICAg ICBzZWxmLnNlcnZlcl90eXBlID0gWydwcGFzJ10KIAorICAgIEBjaGVja19w cmVjb25kaXRpb24KICAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lk KToKICAgICAgICAgIiIiCiAgICAgICAgIE1ldGhvZCBpcyB1c2VkIHRvIGdl bmVyYXRlIHRoZSBicm93c2VyIGNvbGxlY3Rpb24gbm9kZQpAQCAtNzYsNyAr MTA2LDE3IEBAIGNsYXNzIFJlc291cmNlR3JvdXBNb2R1bGUoQ29sbGVjdGlv bk5vZGVNb2R1bGUpOgogICAgICAgICAgICAgZ2lkOiBTZXJ2ZXIgR3JvdXAg SUQKICAgICAgICAgICAgIHNpZDogU2VydmVyIElECiAgICAgICAgICIiIgot ICAgICAgICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlv bl9ub2RlKHNpZCkKKyAgICAgICAgY29sbGVjdGlvbl9jb3VudCA9IDAKKwor ICAgICAgICBjb3VudF9zcWwgPSAnU0VMRUNUIGNvdW50KCopIEZST00oICcK KyAgICAgICAgbm9kZV9zcWwgPSByZW5kZXJfdGVtcGxhdGUoIi8iLmpvaW4o W3NlbGYudGVtcGxhdGVfcGF0aCwgJ3Byb3BlcnRpZXMuc3FsJ10pKQorICAg ICAgICBjb3VudF9zcWwgKz0gbm9kZV9zcWwgKyAnICkgQVMgY29sbGVjdGlv bl9jb3VudCcKKworICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9zY2FsYXIoY291bnRfc3FsKQorICAgICAgICBpZiBzdGF0dXM6 CisgICAgICAgICAgICBjb2xsZWN0aW9uX2NvdW50ID0gcnNldAorCisgICAg ICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25v ZGUoc2lkLCBjb2xsZWN0aW9uX2NvdW50KQogCiAgICAgQHByb3BlcnR5CiAg ICAgZGVmIG5vZGVfaW5vZGUoc2VsZik6CkBAIC0yMDEsMzQgKzI0MSw2IEBA IGNsYXNzIFJlc291cmNlR3JvdXBWaWV3KE5vZGVWaWV3KToKICAgICAgICAg ICAgIDIwMCwgeydDb250ZW50LVR5cGUnOiAnYXBwbGljYXRpb24veC1qYXZh c2NyaXB0J30KICAgICAgICAgKQogCi0gICAgZGVmIGNoZWNrX3ByZWNvbmRp dGlvbihmKToKLSAgICAgICAgIiIiCi0gICAgICAgIFRoaXMgZnVuY3Rpb24g d2lsbCBiZWhhdmUgYXMgYSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MK LSAgICAgICAgZGF0YWJhc2UgY29ubmVjdGlvbiBiZWZvcmUgcnVubmluZyB2 aWV3LCBpdCB3aWxsIGFsc28gYXR0YWNoZXMKLSAgICAgICAgbWFuYWdlcixj b25uICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKLSAgICAg ICAgIiIiCi0KLSAgICAgICAgQHdyYXBzKGYpCi0gICAgICAgIGRlZiB3cmFw KCphcmdzLCAqKmt3YXJncyk6Ci0gICAgICAgICAgICAjIEhlcmUgYXJnc1sw XSB3aWxsIGhvbGQgc2VsZiAmIGt3YXJncyB3aWxsIGhvbGQgZ2lkLHNpZCxk aWQKLSAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCi0gICAgICAgICAgICBz ZWxmLmRyaXZlciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpCi0g ICAgICAgICAgICBzZWxmLm1hbmFnZXIgPSBzZWxmLmRyaXZlci5jb25uZWN0 aW9uX21hbmFnZXIoa3dhcmdzWydzaWQnXSkKLSAgICAgICAgICAgIHNlbGYu Y29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKCkKLQotICAgICAgICAg ICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJuIGVycm9yIHRv IGJyb3dzZXIKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVj dGVkKCk6Ci0gICAgICAgICAgICAgICAgcmV0dXJuIHByZWNvbmRpdGlvbl9y ZXF1aXJlZCgKLSAgICAgICAgICAgICAgICAgICAgZ2V0dGV4dCgKLSAgICAg ICAgICAgICAgICAgICAgICAgICJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIg aGFzIGJlZW4gbG9zdCEiCi0gICAgICAgICAgICAgICAgICAgICkKLSAgICAg ICAgICAgICAgICApCi0KLSAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0 aCA9ICdyZXNvdXJjZV9ncm91cHMvc3FsJwotICAgICAgICAgICAgcmV0dXJu IGYoKmFyZ3MsICoqa3dhcmdzKQotCi0gICAgICAgIHJldHVybiB3cmFwCi0K ICAgICBAY2hlY2tfcHJlY29uZGl0aW9uCiAgICAgZGVmIGxpc3Qoc2VsZiwg Z2lkLCBzaWQpOgogICAgICAgICAiIiIKZGlmZiAtLWdpdCBhL3dlYi9wZ2Fk bWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3JvbGVzL19faW5p dF9fLnB5IGIvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvcm9sZXMvX19pbml0X18ucHkKaW5kZXggYmVlM2QwMi4uNTZmMzQ0 YSAxMDA2NDQKLS0tIGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3Jv dXBzL3NlcnZlcnMvcm9sZXMvX19pbml0X18ucHkKKysrIGIvd2ViL3BnYWRt aW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvcm9sZXMvX19pbml0 X18ucHkKQEAgLTI0LDYgKzI0LDEyMiBAQCBmcm9tIHBnYWRtaW4udXRpbHMu ZHJpdmVyIGltcG9ydCBnZXRfZHJpdmVyCiBmcm9tIGNvbmZpZyBpbXBvcnQg UEdfREVGQVVMVF9EUklWRVIKIAogCitkZWYgY2hlY2tfcHJlY29uZGl0aW9u KGFjdGlvbj1Ob25lKToKKyAgICAiIiIKKyAgICBUaGlzIGZ1bmN0aW9uIHdp bGwgYmVoYXZlIGFzIGEgZGVjb3JhdG9yIHdoaWNoIHdpbGwgY2hlY2tzIHRo ZSBzdGF0dXMKKyAgICBvZiB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbiBmb3Ig dGhlIG1haW50YWluYW5jZSBkYXRhYmFzZSBvZiB0aGUgc2VydmVyLAorICAg IGJlZm9yZWV4ZWN1dGluZyByZXN0IG9mIHRoZSBvcGVyYXRpb24gZm9yIHRo ZSB3cmFwcGVkIGZ1bmN0aW9uLiBJdCB3aWxsCisgICAgYWxzbyBhdHRhY2gg bWFuYWdlciwgY29ubiAobWFpbnRlbmFuY2UgY29ubmVjdGlvbiBmb3IgdGhl IHNlcnZlcikgYXMKKyAgICBwcm9wZXJ0aWVzIG9mIHRoZSBpbnN0YW5jZS4K KyAgICAiIiIKKworICAgIGRlZiB3cmFwKGYpOgorICAgICAgICBAd3JhcHMo ZikKKyAgICAgICAgZGVmIHdyYXBwZWQoc2VsZiwgKiprd2FyZ3MpOgorICAg ICAgICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcigKKyAgICAgICAg ICAgICAgICBQR19ERUZBVUxUX0RSSVZFUgorICAgICAgICAgICAgKS5jb25u ZWN0aW9uX21hbmFnZXIoCisgICAgICAgICAgICAgICAga3dhcmdzWydzaWQn XQorICAgICAgICAgICAgKQorICAgICAgICAgICAgc2VsZi5jb25uID0gc2Vs Zi5tYW5hZ2VyLmNvbm5lY3Rpb24oKQorCisgICAgICAgICAgICBkcml2ZXIg PSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKQorICAgICAgICAgICAg c2VsZi5xdElkZW50ID0gZHJpdmVyLnF0SWRlbnQKKworICAgICAgICAgICAg aWYgbm90IHNlbGYuY29ubi5jb25uZWN0ZWQoKToKKyAgICAgICAgICAgICAg ICByZXR1cm4gcHJlY29uZGl0aW9uX3JlcXVpcmVkKAorICAgICAgICAgICAg ICAgICAgICBfKCJDb25uZWN0aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4g bG9zdCEiKQorICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAgdmVy ID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KKworICAgICAgICAgICAgc2VsZi5z cWxfcGF0aCA9ICdyb2xlL3NxbC97MH0vJy5mb3JtYXQoCisgICAgICAgICAg ICAgICAgJ3Bvc3Q5XzQnIGlmIHZlciA+PSA5MDUwMCBlbHNlIFwKKyAgICAg ICAgICAgICAgICAgICAgJ3Bvc3Q5XzEnIGlmIHZlciA+PSA5MDIwMCBlbHNl IFwKKyAgICAgICAgICAgICAgICAgICAgICAgICdwb3N0OV8wJyBpZiB2ZXIg Pj0gOTAxMDAgZWxzZSBcCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg J3Bvc3Q4XzQnCisgICAgICAgICAgICApCisKKyAgICAgICAgICAgIHNlbGYu YWx0ZXJLZXlzID0gWworICAgICAgICAgICAgICAgIHUncm9sY2FubG9naW4n LCB1J3JvbHN1cGVyJywgdSdyb2xjcmVhdGVkYicsCisgICAgICAgICAgICAg ICAgdSdyb2xjcmVhdGVyb2xlJywgdSdyb2xpbmhlcml0JywgdSdyb2xyZXBs aWNhdGlvbicsCisgICAgICAgICAgICAgICAgdSdyb2xjb25ubGltaXQnLCB1 J3JvbHZhbGlkdW50aWwnLCB1J3JvbHBhc3N3b3JkJworICAgICAgICAgICAg XSBpZiB2ZXIgPj0gOTAyMDAgZWxzZSBbCisgICAgICAgICAgICAgICAgdSdy b2xjYW5sb2dpbicsIHUncm9sc3VwZXInLCB1J3JvbGNyZWF0ZWRiJywKKyAg ICAgICAgICAgICAgICB1J3JvbGNyZWF0ZXJvbGUnLCB1J3JvbGluaGVyaXQn LCB1J3JvbGNvbm5saW1pdCcsCisgICAgICAgICAgICAgICAgdSdyb2x2YWxp ZHVudGlsJywgdSdyb2xwYXNzd29yZCcKKyAgICAgICAgICAgIF0KKworICAg ICAgICAgICAgY2hlY2tfcGVybWlzc2lvbiA9IEZhbHNlCisgICAgICAgICAg ICBmZXRjaF9uYW1lID0gRmFsc2UKKyAgICAgICAgICAgIGZvcmJpZGRlbl9t c2cgPSBOb25lCisKKyAgICAgICAgICAgIGlmIGFjdGlvbiBpbiBbJ2Ryb3An LCAndXBkYXRlJ106CisgICAgICAgICAgICAgICAgY2hlY2tfcGVybWlzc2lv biA9IFRydWUKKyAgICAgICAgICAgICAgICBmZXRjaF9uYW1lID0gVHJ1ZQor ICAgICAgICAgICAgICAgIGlmIGFjdGlvbiA9PSAnZHJvcCc6CisgICAgICAg ICAgICAgICAgICAgIGZvcmJpZGRlbl9tc2cgPSBfKAorICAgICAgICAgICAg ICAgICAgICAgICAgIlRoZSBjdXJyZW50IHVzZXIgZG9lcyBub3QgaGF2ZSBw ZXJtaXNzaW9uIHRvIGRyb3AgdGhlIHJvbGUuIgorICAgICAgICAgICAgICAg ICAgICApCisgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAg ICAgICAgZm9yYmlkZGVuX21zZyA9IF8oCisgICAgICAgICAgICAgICAgICAg ICAgICAiVGhlIGN1cnJlbnQgdXNlciBkb2VzIG5vdCBoYXZlIHBlcm1pc3Np b24gdG8gdXBkYXRlIHRoZSByb2xlLiIKKyAgICAgICAgICAgICAgICAgICAg KQorICAgICAgICAgICAgZWxpZiBhY3Rpb24gPT0gJ2NyZWF0ZSc6CisgICAg ICAgICAgICAgICAgY2hlY2tfcGVybWlzc2lvbiA9IFRydWUKKyAgICAgICAg ICAgICAgICBmb3JiaWRkZW5fbXNnID0gXygKKyAgICAgICAgICAgICAgICAg ICAgIlRoZSBjdXJyZW50IHVzZXIgZG9lcyBub3QgaGF2ZSBwZXJtaXNzaW9u IHRvIGNyZWF0ZSB0aGUgcm9sZS4iCisgICAgICAgICAgICAgICAgKQorICAg ICAgICAgICAgZWxpZiAoYWN0aW9uID09ICdtc3FsJyBhbmQKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgJ3JpZCcgaW4ga3dhcmdzIGFuZCBrd2FyZ3Nb J3JpZCddICE9IC0xKToKKyAgICAgICAgICAgICAgICBmZXRjaF9uYW1lID0g VHJ1ZQorCisgICAgICAgICAgICBpZiBjaGVja19wZXJtaXNzaW9uOgorICAg ICAgICAgICAgICAgIHVzZXIgPSBzZWxmLm1hbmFnZXIudXNlcl9pbmZvCisK KyAgICAgICAgICAgICAgICBpZiBub3QgdXNlclsnaXNfc3VwZXJ1c2VyJ10g YW5kIFwKKyAgICAgICAgICAgICAgICAgICAgICAgIG5vdCB1c2VyWydjYW5f Y3JlYXRlX3JvbGUnXToKKyAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGlv biAhPSAndXBkYXRlJyBvcgorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICdyaWQnIGluIGt3YXJncyBhbmQga3dhcmdzWydyaWQn XSAhPSAtMSBhbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHVzZXJbJ2lkJ10gIT0ga3dhcmdzWydyaWQnXSk6CisgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gZm9yYmlkZGVuKGZvcmJpZGRlbl9tc2cp CisKKyAgICAgICAgICAgIGlmIGZldGNoX25hbWU6CisKKyAgICAgICAgICAg ICAgICBzdGF0dXMsIHJlcyA9IHNlbGYuY29ubi5leGVjdXRlX2RpY3QoCisg ICAgICAgICAgICAgICAgICAgIHJlbmRlcl90ZW1wbGF0ZSgKKyAgICAgICAg ICAgICAgICAgICAgICAgIHNlbGYuc3FsX3BhdGggKyAncGVybWlzc2lvbi5z cWwnLAorICAgICAgICAgICAgICAgICAgICAgICAgcmlkPWt3YXJnc1sncmlk J10sCisgICAgICAgICAgICAgICAgICAgICAgICBjb25uPXNlbGYuY29ubgor ICAgICAgICAgICAgICAgICAgICApCisgICAgICAgICAgICAgICAgKQorCisg ICAgICAgICAgICAgICAgaWYgbm90IHN0YXR1czoKKyAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIGludGVybmFsX3NlcnZlcl9lcnJvcigKKyAgICAgICAg ICAgICAgICAgICAgICAgIF8oCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIkVycm9yIHJldHJpZXZpbmcgdGhlIHJvbGUgaW5mb3JtYXRpb24uXG57 MH0iCisgICAgICAgICAgICAgICAgICAgICAgICApLmZvcm1hdChyZXMpCisg ICAgICAgICAgICAgICAgICAgICkKKworICAgICAgICAgICAgICAgIGlmIGxl bihyZXNbJ3Jvd3MnXSkgPT0gMDoKKyAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIGdvbmUoCisgICAgICAgICAgICAgICAgICAgICAgICBfKCJDb3VsZG4n dCBmaW5kIHRoZSByb2xlIG9uIHRoZSBkYXRhYmFzZSBzZXJ2ZXIuIikKKyAg ICAgICAgICAgICAgICAgICAgKQorCisgICAgICAgICAgICAgICAgcm93ID0g cmVzWydyb3dzJ11bMF0KKworICAgICAgICAgICAgICAgIHNlbGYucm9sZSA9 IHJvd1sncm9sbmFtZSddCisgICAgICAgICAgICAgICAgc2VsZi5yb2xDYW5M b2dpbiA9IHJvd1sncm9sY2FubG9naW4nXQorICAgICAgICAgICAgICAgIHNl bGYucm9sQ2F0VXBkYXRlID0gcm93Wydyb2xjYXR1cGRhdGUnXQorICAgICAg ICAgICAgICAgIHNlbGYucm9sU3VwZXIgPSByb3dbJ3JvbHN1cGVyJ10KKwor ICAgICAgICAgICAgcmV0dXJuIGYoc2VsZiwgKiprd2FyZ3MpCisKKyAgICAg ICAgcmV0dXJuIHdyYXBwZWQKKworICAgIHJldHVybiB3cmFwCisKKwogY2xh c3MgUm9sZU1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CiAgICAgTk9E RV9UWVBFID0gJ3JvbGUnCiAgICAgQ09MTEVDVElPTl9MQUJFTCA9IF8oIkxv Z2luL0dyb3VwIFJvbGVzIikKQEAgLTM0LDEyICsxNTAsMjMgQEAgY2xhc3Mg Um9sZU1vZHVsZShDb2xsZWN0aW9uTm9kZU1vZHVsZSk6CiAKICAgICAgICAg c3VwZXIoUm9sZU1vZHVsZSwgc2VsZikuX19pbml0X18oKmFyZ3MsICoqa3dh cmdzKQogCisgICAgQGNoZWNrX3ByZWNvbmRpdGlvbihhY3Rpb249J25vZGVz JykKICAgICBkZWYgZ2V0X25vZGVzKHNlbGYsIGdpZCwgc2lkKToKICAgICAg ICAgIiIiCiAgICAgICAgIEdlbmVyYXRlIHRoZSBjb2xsZWN0aW9uIG5vZGUK ICAgICAgICAgIiIiCiAgICAgICAgIGlmIHNlbGYuc2hvd19ub2RlOgotICAg ICAgICAgICAgeWllbGQgc2VsZi5nZW5lcmF0ZV9icm93c2VyX2NvbGxlY3Rp b25fbm9kZShzaWQpCisgICAgICAgICAgICBjb2xsZWN0aW9uX2NvdW50ID0g MAorCisgICAgICAgICAgICBjb3VudF9zcWwgPSAnU0VMRUNUIGNvdW50KCop IEZST00oICcKKyAgICAgICAgICAgIG5vZGVfc3FsID0gcmVuZGVyX3RlbXBs YXRlKHNlbGYuc3FsX3BhdGggKyAnbm9kZXMuc3FsJykKKyAgICAgICAgICAg IGNvdW50X3NxbCArPSBub2RlX3NxbCArICcgKSBBUyBjb2xsZWN0aW9uX2Nv dW50JworCisgICAgICAgICAgICBzdGF0dXMsIHJzZXQgPSBzZWxmLmNvbm4u ZXhlY3V0ZV9zY2FsYXIoY291bnRfc3FsKQorICAgICAgICAgICAgaWYgc3Rh dHVzOgorICAgICAgICAgICAgICAgIGNvbGxlY3Rpb25fY291bnQgPSByc2V0 CisKKyAgICAgICAgICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9j b2xsZWN0aW9uX25vZGUoc2lkLCBjb2xsZWN0aW9uX2NvdW50KQogICAgICAg ICBwYXNzCiAKICAgICBAcHJvcGVydHkKQEAgLTQyOSwxMjEgKzU1Niw2IEBA IHJvbG1lbWJlcnNoaXA6ewogCiAgICAgICAgIHJldHVybiB3cmFwCiAKLSAg ICBkZWYgY2hlY2tfcHJlY29uZGl0aW9uKGFjdGlvbj1Ob25lKToKLSAgICAg ICAgIiIiCi0gICAgICAgIFRoaXMgZnVuY3Rpb24gd2lsbCBiZWhhdmUgYXMg YSBkZWNvcmF0b3Igd2hpY2ggd2lsbCBjaGVja3MgdGhlIHN0YXR1cwotICAg ICAgICBvZiB0aGUgZGF0YWJhc2UgY29ubmVjdGlvbiBmb3IgdGhlIG1haW50 YWluYW5jZSBkYXRhYmFzZSBvZiB0aGUgc2VydmVyLAotICAgICAgICBiZWZv cmVleGVjdXRpbmcgcmVzdCBvZiB0aGUgb3BlcmF0aW9uIGZvciB0aGUgd3Jh cHBlZCBmdW5jdGlvbi4gSXQgd2lsbAotICAgICAgICBhbHNvIGF0dGFjaCBt YW5hZ2VyLCBjb25uIChtYWludGVuYW5jZSBjb25uZWN0aW9uIGZvciB0aGUg c2VydmVyKSBhcwotICAgICAgICBwcm9wZXJ0aWVzIG9mIHRoZSBpbnN0YW5j ZS4KLSAgICAgICAgIiIiCi0KLSAgICAgICAgZGVmIHdyYXAoZik6Ci0gICAg ICAgICAgICBAd3JhcHMoZikKLSAgICAgICAgICAgIGRlZiB3cmFwcGVkKHNl bGYsICoqa3dhcmdzKToKLSAgICAgICAgICAgICAgICBzZWxmLm1hbmFnZXIg PSBnZXRfZHJpdmVyKAotICAgICAgICAgICAgICAgICAgICBQR19ERUZBVUxU X0RSSVZFUgotICAgICAgICAgICAgICAgICkuY29ubmVjdGlvbl9tYW5hZ2Vy KAotICAgICAgICAgICAgICAgICAgICBrd2FyZ3NbJ3NpZCddCi0gICAgICAg ICAgICAgICAgKQotICAgICAgICAgICAgICAgIHNlbGYuY29ubiA9IHNlbGYu bWFuYWdlci5jb25uZWN0aW9uKCkKLQotICAgICAgICAgICAgICAgIGRyaXZl ciA9IGdldF9kcml2ZXIoUEdfREVGQVVMVF9EUklWRVIpCi0gICAgICAgICAg ICAgICAgc2VsZi5xdElkZW50ID0gZHJpdmVyLnF0SWRlbnQKLQotICAgICAg ICAgICAgICAgIGlmIG5vdCBzZWxmLmNvbm4uY29ubmVjdGVkKCk6Ci0gICAg ICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQo Ci0gICAgICAgICAgICAgICAgICAgICAgICBfKCJDb25uZWN0aW9uIHRvIHRo ZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiKQotICAgICAgICAgICAgICAgICAg ICApCi0KLSAgICAgICAgICAgICAgICB2ZXIgPSBzZWxmLm1hbmFnZXIudmVy c2lvbgotCi0gICAgICAgICAgICAgICAgc2VsZi5zcWxfcGF0aCA9ICdyb2xl L3NxbC97MH0vJy5mb3JtYXQoCi0gICAgICAgICAgICAgICAgICAgICdwb3N0 OV80JyBpZiB2ZXIgPj0gOTA1MDAgZWxzZSBcCi0gICAgICAgICAgICAgICAg ICAgICAgICAncG9zdDlfMScgaWYgdmVyID49IDkwMjAwIGVsc2UgXAotICAg ICAgICAgICAgICAgICAgICAgICAgICAgICdwb3N0OV8wJyBpZiB2ZXIgPj0g OTAxMDAgZWxzZSBcCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICdwb3N0OF80JwotICAgICAgICAgICAgICAgICkKLQotICAgICAgICAgICAg ICAgIHNlbGYuYWx0ZXJLZXlzID0gWwotICAgICAgICAgICAgICAgICAgICB1 J3JvbGNhbmxvZ2luJywgdSdyb2xzdXBlcicsIHUncm9sY3JlYXRlZGInLAot ICAgICAgICAgICAgICAgICAgICB1J3JvbGNyZWF0ZXJvbGUnLCB1J3JvbGlu aGVyaXQnLCB1J3JvbHJlcGxpY2F0aW9uJywKLSAgICAgICAgICAgICAgICAg ICAgdSdyb2xjb25ubGltaXQnLCB1J3JvbHZhbGlkdW50aWwnLCB1J3JvbHBh c3N3b3JkJwotICAgICAgICAgICAgICAgIF0gaWYgdmVyID49IDkwMjAwIGVs c2UgWwotICAgICAgICAgICAgICAgICAgICB1J3JvbGNhbmxvZ2luJywgdSdy b2xzdXBlcicsIHUncm9sY3JlYXRlZGInLAotICAgICAgICAgICAgICAgICAg ICB1J3JvbGNyZWF0ZXJvbGUnLCB1J3JvbGluaGVyaXQnLCB1J3JvbGNvbm5s aW1pdCcsCi0gICAgICAgICAgICAgICAgICAgIHUncm9sdmFsaWR1bnRpbCcs IHUncm9scGFzc3dvcmQnCi0gICAgICAgICAgICAgICAgXQotCi0gICAgICAg ICAgICAgICAgY2hlY2tfcGVybWlzc2lvbiA9IEZhbHNlCi0gICAgICAgICAg ICAgICAgZmV0Y2hfbmFtZSA9IEZhbHNlCi0gICAgICAgICAgICAgICAgZm9y YmlkZGVuX21zZyA9IE5vbmUKLQotICAgICAgICAgICAgICAgIGlmIGFjdGlv biBpbiBbJ2Ryb3AnLCAndXBkYXRlJ106Ci0gICAgICAgICAgICAgICAgICAg IGNoZWNrX3Blcm1pc3Npb24gPSBUcnVlCi0gICAgICAgICAgICAgICAgICAg IGZldGNoX25hbWUgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIGlmIGFj dGlvbiA9PSAnZHJvcCc6Ci0gICAgICAgICAgICAgICAgICAgICAgICBmb3Ji aWRkZW5fbXNnID0gXygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAi VGhlIGN1cnJlbnQgdXNlciBkb2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8g ZHJvcCB0aGUgcm9sZS4iCi0gICAgICAgICAgICAgICAgICAgICAgICApCi0g ICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAg ICAgICBmb3JiaWRkZW5fbXNnID0gXygKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAiVGhlIGN1cnJlbnQgdXNlciBkb2VzIG5vdCBoYXZlIHBlcm1p c3Npb24gdG8gdXBkYXRlIHRoZSByb2xlLiIKLSAgICAgICAgICAgICAgICAg ICAgICAgICkKLSAgICAgICAgICAgICAgICBlbGlmIGFjdGlvbiA9PSAnY3Jl YXRlJzoKLSAgICAgICAgICAgICAgICAgICAgY2hlY2tfcGVybWlzc2lvbiA9 IFRydWUKLSAgICAgICAgICAgICAgICAgICAgZm9yYmlkZGVuX21zZyA9IF8o Ci0gICAgICAgICAgICAgICAgICAgICAgICAiVGhlIGN1cnJlbnQgdXNlciBk b2VzIG5vdCBoYXZlIHBlcm1pc3Npb24gdG8gY3JlYXRlIHRoZSByb2xlLiIK LSAgICAgICAgICAgICAgICAgICAgKQotICAgICAgICAgICAgICAgIGVsaWYg KGFjdGlvbiA9PSAnbXNxbCcgYW5kCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAncmlkJyBpbiBrd2FyZ3MgYW5kIGt3YXJnc1sncmlkJ10gIT0g LTEpOgotICAgICAgICAgICAgICAgICAgICBmZXRjaF9uYW1lID0gVHJ1ZQot Ci0gICAgICAgICAgICAgICAgaWYgY2hlY2tfcGVybWlzc2lvbjoKLSAgICAg ICAgICAgICAgICAgICAgdXNlciA9IHNlbGYubWFuYWdlci51c2VyX2luZm8K LQotICAgICAgICAgICAgICAgICAgICBpZiBub3QgdXNlclsnaXNfc3VwZXJ1 c2VyJ10gYW5kIFwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBub3Qg dXNlclsnY2FuX2NyZWF0ZV9yb2xlJ106Ci0gICAgICAgICAgICAgICAgICAg ICAgICBpZiAoYWN0aW9uICE9ICd1cGRhdGUnIG9yCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdyaWQnIGluIGt3YXJn cyBhbmQga3dhcmdzWydyaWQnXSAhPSAtMSBhbmQKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyWydpZCddICE9IGt3YXJn c1sncmlkJ10pOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biBmb3JiaWRkZW4oZm9yYmlkZGVuX21zZykKLQotICAgICAgICAgICAgICAg IGlmIGZldGNoX25hbWU6Ci0KLSAgICAgICAgICAgICAgICAgICAgc3RhdHVz LCByZXMgPSBzZWxmLmNvbm4uZXhlY3V0ZV9kaWN0KAotICAgICAgICAgICAg ICAgICAgICAgICAgcmVuZGVyX3RlbXBsYXRlKAotICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHNlbGYuc3FsX3BhdGggKyAncGVybWlzc2lvbi5zcWwn LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJpZD1rd2FyZ3NbJ3Jp ZCddLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbm49c2VsZi5j b25uCi0gICAgICAgICAgICAgICAgICAgICAgICApCi0gICAgICAgICAgICAg ICAgICAgICkKLQotICAgICAgICAgICAgICAgICAgICBpZiBub3Qgc3RhdHVz OgotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludGVybmFsX3Nl cnZlcl9lcnJvcigKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBfKAot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiRXJyb3IgcmV0cmll dmluZyB0aGUgcm9sZSBpbmZvcm1hdGlvbi5cbnswfSIKLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICApLmZvcm1hdChyZXMpCi0gICAgICAgICAgICAg ICAgICAgICAgICApCi0KLSAgICAgICAgICAgICAgICAgICAgaWYgbGVuKHJl c1sncm93cyddKSA9PSAwOgotICAgICAgICAgICAgICAgICAgICAgICAgcmV0 dXJuIGdvbmUoCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgXygiQ291 bGRuJ3QgZmluZCB0aGUgcm9sZSBvbiB0aGUgZGF0YWJhc2Ugc2VydmVyLiIp Ci0gICAgICAgICAgICAgICAgICAgICAgICApCi0KLSAgICAgICAgICAgICAg ICAgICAgcm93ID0gcmVzWydyb3dzJ11bMF0KLQotICAgICAgICAgICAgICAg ICAgICBzZWxmLnJvbGUgPSByb3dbJ3JvbG5hbWUnXQotICAgICAgICAgICAg ICAgICAgICBzZWxmLnJvbENhbkxvZ2luID0gcm93Wydyb2xjYW5sb2dpbidd Ci0gICAgICAgICAgICAgICAgICAgIHNlbGYucm9sQ2F0VXBkYXRlID0gcm93 Wydyb2xjYXR1cGRhdGUnXQotICAgICAgICAgICAgICAgICAgICBzZWxmLnJv bFN1cGVyID0gcm93Wydyb2xzdXBlciddCi0KLSAgICAgICAgICAgICAgICBy ZXR1cm4gZihzZWxmLCAqKmt3YXJncykKLQotICAgICAgICAgICAgcmV0dXJu IHdyYXBwZWQKLQotICAgICAgICByZXR1cm4gd3JhcAotCiAgICAgQGNoZWNr X3ByZWNvbmRpdGlvbihhY3Rpb249J2xpc3QnKQogICAgIGRlZiBsaXN0KHNl bGYsIGdpZCwgc2lkKToKICAgICAgICAgc3RhdHVzLCByZXMgPSBzZWxmLmNv bm4uZXhlY3V0ZV9kaWN0KApkaWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJv d3Nlci9zZXJ2ZXJfZ3JvdXBzL3NlcnZlcnMvdGFibGVzcGFjZXMvX19pbml0 X18ucHkgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2Vy dmVycy90YWJsZXNwYWNlcy9fX2luaXRfXy5weQppbmRleCAzYmVkNWY5Li4z MjExYWU4IDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy9fX2luaXRfXy5weQorKysg Yi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90 YWJsZXNwYWNlcy9fX2luaXRfXy5weQpAQCAtMjUsMTUgKzI1LDY4IEBAIGZy b20gcGdhZG1pbi51dGlscy5kcml2ZXIgaW1wb3J0IGdldF9kcml2ZXIKIGZy b20gY29uZmlnIGltcG9ydCBQR19ERUZBVUxUX0RSSVZFUgogCiAKK2RlZiBj aGVja19wcmVjb25kaXRpb24oZik6CisgICAgIiIiCisgICAgVGhpcyBmdW5j dGlvbiB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNo ZWNrcworICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24gYmVmb3JlIHJ1bm5pbmcg dmlldywgaXQgd2lsbCBhbHNvIGF0dGFjaGVzCisgICAgbWFuYWdlcixjb25u ICYgdGVtcGxhdGVfcGF0aCBwcm9wZXJ0aWVzIHRvIHNlbGYKKyAgICAiIiIK KworICAgIEB3cmFwcyhmKQorICAgIGRlZiB3cmFwKCphcmdzLCAqKmt3YXJn cyk6CisgICAgICAgICMgSGVyZSBhcmdzWzBdIHdpbGwgaG9sZCBzZWxmICYg a3dhcmdzIHdpbGwgaG9sZCBnaWQsc2lkLHRzaWQKKyAgICAgICAgc2VsZiA9 IGFyZ3NbMF0KKyAgICAgICAgc2VsZi5tYW5hZ2VyID0gZ2V0X2RyaXZlcihQ R19ERUZBVUxUX0RSSVZFUikuY29ubmVjdGlvbl9tYW5hZ2VyKGt3YXJnc1sn c2lkJ10pCisgICAgICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5jb25u ZWN0aW9uKCkKKworICAgICAgICAjIElmIERCIG5vdCBjb25uZWN0ZWQgdGhl biByZXR1cm4gZXJyb3IgdG8gYnJvd3NlcgorICAgICAgICBpZiBub3Qgc2Vs Zi5jb25uLmNvbm5lY3RlZCgpOgorICAgICAgICAgICAgY3VycmVudF9hcHAu bG9nZ2VyLndhcm5pbmcoCisgICAgICAgICAgICAgICAgIkNvbm5lY3Rpb24g dG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKKyAgICAgICAgICAgICkK KyAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25fcmVxdWlyZWQoCisg ICAgICAgICAgICAgICAgZ2V0dGV4dCgKKyAgICAgICAgICAgICAgICAgICAg IkNvbm5lY3Rpb24gdG8gdGhlIHNlcnZlciBoYXMgYmVlbiBsb3N0ISIKKyAg ICAgICAgICAgICAgICApCisgICAgICAgICAgICApCisKKyAgICAgICAgdmVy ID0gc2VsZi5tYW5hZ2VyLnZlcnNpb24KKyAgICAgICAgaWYgdmVyID49IDkw MjAwOgorICAgICAgICAgICAgc2VsZi50ZW1wbGF0ZV9wYXRoID0gJ3RhYmxl c3BhY2VzL3NxbC85LjJfcGx1cycKKyAgICAgICAgZWxzZToKKyAgICAgICAg ICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICd0YWJsZXNwYWNlcy9zcWwvOS4x X3BsdXMnCisgICAgICAgIGN1cnJlbnRfYXBwLmxvZ2dlci5kZWJ1ZygKKyAg ICAgICAgICAgICJVc2luZyB0aGUgdGVtcGxhdGUgcGF0aDogJXMiLCBzZWxm LnRlbXBsYXRlX3BhdGgKKyAgICAgICAgKQorICAgICAgICAjIEFsbG93ZWQg QUNMIG9uIHRhYmxlc3BhY2UKKyAgICAgICAgc2VsZi5hY2wgPSBbJ0MnXQor CisgICAgICAgIHJldHVybiBmKCphcmdzLCAqKmt3YXJncykKKworICAgIHJl dHVybiB3cmFwCisKKwogY2xhc3MgVGFibGVzcGFjZU1vZHVsZShDb2xsZWN0 aW9uTm9kZU1vZHVsZSk6CiAgICAgTk9ERV9UWVBFID0gJ3RhYmxlc3BhY2Un CiAgICAgQ09MTEVDVElPTl9MQUJFTCA9IGdldHRleHQoIlRhYmxlc3BhY2Vz IikKIAorICAgIEBjaGVja19wcmVjb25kaXRpb24KICAgICBkZWYgZ2V0X25v ZGVzKHNlbGYsIGdpZCwgc2lkKToKICAgICAgICAgIiIiCiAgICAgICAgIEdl bmVyYXRlIHRoZSBjb2xsZWN0aW9uIG5vZGUKICAgICAgICAgIiIiCi0gICAg ICAgIHlpZWxkIHNlbGYuZ2VuZXJhdGVfYnJvd3Nlcl9jb2xsZWN0aW9uX25v ZGUoc2lkKQorICAgICAgICBjb2xsZWN0aW9uX2NvdW50ID0gMAorCisgICAg ICAgIGNvdW50X3NxbCA9ICdTRUxFQ1QgY291bnQoKikgRlJPTSggJworICAg ICAgICBub2RlX3NxbCA9IHJlbmRlcl90ZW1wbGF0ZSgiLyIuam9pbihbc2Vs Zi50ZW1wbGF0ZV9wYXRoLCAnbm9kZXMuc3FsJ10pLAorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBjb25uPXNlbGYuY29ubikKKyAgICAg ICAgY291bnRfc3FsICs9IG5vZGVfc3FsICsgJyApIEFTIGNvbGxlY3Rpb25f Y291bnQnCisKKyAgICAgICAgc3RhdHVzLCByc2V0ID0gc2VsZi5jb25uLmV4 ZWN1dGVfc2NhbGFyKGNvdW50X3NxbCkKKyAgICAgICAgaWYgc3RhdHVzOgor ICAgICAgICAgICAgY29sbGVjdGlvbl9jb3VudCA9IHJzZXQKKworICAgICAg ICB5aWVsZCBzZWxmLmdlbmVyYXRlX2Jyb3dzZXJfY29sbGVjdGlvbl9ub2Rl KHNpZCwgY29sbGVjdGlvbl9jb3VudCkKIAogICAgIEBwcm9wZXJ0eQogICAg IGRlZiBzY3JpcHRfbG9hZChzZWxmKToKQEAgLTkzLDQ2ICsxNDYsNiBAQCBj bGFzcyBUYWJsZXNwYWNlVmlldyhQR0NoaWxkTm9kZVZpZXcpOgogICAgICAg ICAgICAgMjAwLCB7J0NvbnRlbnQtVHlwZSc6ICdhcHBsaWNhdGlvbi94LWph dmFzY3JpcHQnfQogICAgICAgICApCiAKLSAgICBkZWYgY2hlY2tfcHJlY29u ZGl0aW9uKGYpOgotICAgICAgICAiIiIKLSAgICAgICAgVGhpcyBmdW5jdGlv biB3aWxsIGJlaGF2ZSBhcyBhIGRlY29yYXRvciB3aGljaCB3aWxsIGNoZWNr cwotICAgICAgICBkYXRhYmFzZSBjb25uZWN0aW9uIGJlZm9yZSBydW5uaW5n IHZpZXcsIGl0IHdpbGwgYWxzbyBhdHRhY2hlcwotICAgICAgICBtYW5hZ2Vy LGNvbm4gJiB0ZW1wbGF0ZV9wYXRoIHByb3BlcnRpZXMgdG8gc2VsZgotICAg ICAgICAiIiIKLQotICAgICAgICBAd3JhcHMoZikKLSAgICAgICAgZGVmIHdy YXAoKmFyZ3MsICoqa3dhcmdzKToKLSAgICAgICAgICAgICMgSGVyZSBhcmdz WzBdIHdpbGwgaG9sZCBzZWxmICYga3dhcmdzIHdpbGwgaG9sZCBnaWQsc2lk LHRzaWQKLSAgICAgICAgICAgIHNlbGYgPSBhcmdzWzBdCi0gICAgICAgICAg ICBzZWxmLm1hbmFnZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVS KS5jb25uZWN0aW9uX21hbmFnZXIoa3dhcmdzWydzaWQnXSkKLSAgICAgICAg ICAgIHNlbGYuY29ubiA9IHNlbGYubWFuYWdlci5jb25uZWN0aW9uKCkKLQot ICAgICAgICAgICAgIyBJZiBEQiBub3QgY29ubmVjdGVkIHRoZW4gcmV0dXJu IGVycm9yIHRvIGJyb3dzZXIKLSAgICAgICAgICAgIGlmIG5vdCBzZWxmLmNv bm4uY29ubmVjdGVkKCk6Ci0gICAgICAgICAgICAgICAgY3VycmVudF9hcHAu bG9nZ2VyLndhcm5pbmcoCi0gICAgICAgICAgICAgICAgICAgICJDb25uZWN0 aW9uIHRvIHRoZSBzZXJ2ZXIgaGFzIGJlZW4gbG9zdCEiCi0gICAgICAgICAg ICAgICAgKQotICAgICAgICAgICAgICAgIHJldHVybiBwcmVjb25kaXRpb25f cmVxdWlyZWQoCi0gICAgICAgICAgICAgICAgICAgIGdldHRleHQoCi0gICAg ICAgICAgICAgICAgICAgICAgICAiQ29ubmVjdGlvbiB0byB0aGUgc2VydmVy IGhhcyBiZWVuIGxvc3QhIgotICAgICAgICAgICAgICAgICAgICApCi0gICAg ICAgICAgICAgICAgKQotCi0gICAgICAgICAgICB2ZXIgPSBzZWxmLm1hbmFn ZXIudmVyc2lvbgotICAgICAgICAgICAgaWYgdmVyID49IDkwMjAwOgotICAg ICAgICAgICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICd0YWJsZXNwYWNl cy9zcWwvOS4yX3BsdXMnCi0gICAgICAgICAgICBlbHNlOgotICAgICAgICAg ICAgICAgIHNlbGYudGVtcGxhdGVfcGF0aCA9ICd0YWJsZXNwYWNlcy9zcWwv OS4xX3BsdXMnCi0gICAgICAgICAgICBjdXJyZW50X2FwcC5sb2dnZXIuZGVi dWcoCi0gICAgICAgICAgICAgICAgIlVzaW5nIHRoZSB0ZW1wbGF0ZSBwYXRo OiAlcyIsIHNlbGYudGVtcGxhdGVfcGF0aAotICAgICAgICAgICAgKQotICAg ICAgICAgICAgIyBBbGxvd2VkIEFDTCBvbiB0YWJsZXNwYWNlCi0gICAgICAg ICAgICBzZWxmLmFjbCA9IFsnQyddCi0KLSAgICAgICAgICAgIHJldHVybiBm KCphcmdzLCAqKmt3YXJncykKLQotICAgICAgICByZXR1cm4gd3JhcAotCiAg ICAgQGNoZWNrX3ByZWNvbmRpdGlvbgogICAgIGRlZiBsaXN0KHNlbGYsIGdp ZCwgc2lkKToKICAgICAgICAgU1FMID0gcmVuZGVyX3RlbXBsYXRlKApkaWZm IC0tZ2l0IGEvd2ViL3BnYWRtaW4vYnJvd3Nlci9zZXJ2ZXJfZ3JvdXBzL3Nl cnZlcnMvdGFibGVzcGFjZXMvdGVtcGxhdGVzL3RhYmxlc3BhY2VzL3NxbC85 LjFfcGx1cy9ub2Rlcy5zcWwgYi93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZW1wbGF0ZXMvdGFibGVz cGFjZXMvc3FsLzkuMV9wbHVzL25vZGVzLnNxbAppbmRleCBmMGFjMjA1Li4y ZGYyNTRlIDEwMDY0NAotLS0gYS93ZWIvcGdhZG1pbi9icm93c2VyL3NlcnZl cl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZW1wbGF0ZXMvdGFibGVz cGFjZXMvc3FsLzkuMV9wbHVzL25vZGVzLnNxbAorKysgYi93ZWIvcGdhZG1p bi9icm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90 ZW1wbGF0ZXMvdGFibGVzcGFjZXMvc3FsLzkuMV9wbHVzL25vZGVzLnNxbApA QCAtNiw0ICs2LDQgQEAgRlJPTQogV0hFUkUKICAgICB0cy5vaWQ9e3sgdHNp ZHxxdExpdGVyYWwgfX06Ok9JRAogeyUgZW5kaWYgJX0KLU9SREVSIEJZIG5h bWU7CitPUkRFUiBCWSBuYW1lCmRpZmYgLS1naXQgYS93ZWIvcGdhZG1pbi9i cm93c2VyL3NlcnZlcl9ncm91cHMvc2VydmVycy90YWJsZXNwYWNlcy90ZW1w bGF0ZXMvdGFibGVzcGFjZXMvc3FsLzkuMl9wbHVzL25vZGVzLnNxbCBiL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxl c3BhY2VzL3RlbXBsYXRlcy90YWJsZXNwYWNlcy9zcWwvOS4yX3BsdXMvbm9k ZXMuc3FsCmluZGV4IDM3ZDQ1MzguLjkxYzg3NTEgMTAwNjQ0Ci0tLSBhL3dl Yi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vwcy9zZXJ2ZXJzL3RhYmxl c3BhY2VzL3RlbXBsYXRlcy90YWJsZXNwYWNlcy9zcWwvOS4yX3BsdXMvbm9k ZXMuc3FsCisrKyBiL3dlYi9wZ2FkbWluL2Jyb3dzZXIvc2VydmVyX2dyb3Vw cy9zZXJ2ZXJzL3RhYmxlc3BhY2VzL3RlbXBsYXRlcy90YWJsZXNwYWNlcy9z cWwvOS4yX3BsdXMvbm9kZXMuc3FsCkBAIC02LDQgKzYsNCBAQCBGUk9NCiBX SEVSRQogICAgIHRzLm9pZD17eyB0c2lkfHF0TGl0ZXJhbCB9fTo6T0lECiB7 JSBlbmRpZiAlfQotT1JERVIgQlkgbmFtZTsKK09SREVSIEJZIG5hbWUKZGlm ZiAtLWdpdCBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdXRpbHMucHkgYi93ZWIv cGdhZG1pbi9icm93c2VyL3V0aWxzLnB5CmluZGV4IDk3OTk1ODYuLmZjNGZl NWUgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL2Jyb3dzZXIvdXRpbHMucHkK KysrIGIvd2ViL3BnYWRtaW4vYnJvd3Nlci91dGlscy5weQpAQCAtMTUsNyAr MTUsNyBAQCBpbXBvcnQgZmxhc2sKIGZyb20gZmxhc2sgaW1wb3J0IHJlbmRl cl90ZW1wbGF0ZSwgY3VycmVudF9hcHAKIGZyb20gZmxhc2tfYmFiZWwgaW1w b3J0IGdldHRleHQKIGZyb20gZmxhc2sudmlld3MgaW1wb3J0IFZpZXcsIE1l dGhvZFZpZXdUeXBlLCB3aXRoX21ldGFjbGFzcwotZnJvbSBwZ2FkbWluLnV0 aWxzLmFqYXggaW1wb3J0IG1ha2VfanNvbl9yZXNwb25zZSwgcHJlY29uZGl0 aW9uX3JlcXVpcmVkCitmcm9tIHBnYWRtaW4udXRpbHMuYWpheCBpbXBvcnQg bWFrZV9qc29uX3Jlc3BvbnNlLCBwcmVjb25kaXRpb25fcmVxdWlyZWQsIGdv bmUKIAogZnJvbSBjb25maWcgaW1wb3J0IFBHX0RFRkFVTFRfRFJJVkVSCiAK QEAgLTEyOCw3ICsxMjgsOCBAQCBjbGFzcyBOb2RlVmlldyh3aXRoX21ldGFj bGFzcyhNZXRob2RWaWV3VHlwZSwgVmlldykpOgogICAgICAgICAnZGVwZW5k ZW5jeSc6IFt7J2dldCc6ICdkZXBlbmRlbmNpZXMnfV0sCiAgICAgICAgICdk ZXBlbmRlbnQnOiBbeydnZXQnOiAnZGVwZW5kZW50cyd9XSwKICAgICAgICAg J2NoaWxkcmVuJzogW3snZ2V0JzogJ2NoaWxkcmVuJ31dLAotICAgICAgICAn bW9kdWxlLmpzJzogW3t9LCB7fSwgeydnZXQnOiAnbW9kdWxlX2pzJ31dCisg ICAgICAgICdtb2R1bGUuanMnOiBbe30sIHt9LCB7J2dldCc6ICdtb2R1bGVf anMnfV0sCisgICAgICAgICdjb2xsJzogW3t9LCB7J2dldCc6ICdjb2xsZWN0 aW9uJ31dCiAgICAgfSkKIAogICAgIEBjbGFzc21ldGhvZApAQCAtMjg5LDYg KzI5MCwxNCBAQCBjbGFzcyBOb2RlVmlldyh3aXRoX21ldGFjbGFzcyhNZXRo b2RWaWV3VHlwZSwgVmlldykpOgogICAgICAgICAgICAgKQogICAgICAgICAp CiAKKyAgICBkZWYgY29sbGVjdGlvbihzZWxmLCAqYXJncywgKiprd2FyZ3Mp OgorICAgICAgICAiIiJCdWlsZCB0aGUgY29sbGVjdGlvbiBub2RlLiIiIgor ICAgICAgICBmb3IgZCBpbiBzZWxmLmJsdWVwcmludC5nZXRfbm9kZXMoKmFy Z3MsICoqa3dhcmdzKToKKyAgICAgICAgICAgIHJldHVybiBtYWtlX2pzb25f cmVzcG9uc2UoCisgICAgICAgICAgICAgICAgZGF0YT1kCisgICAgICAgICAg ICApCisgICAgICAgIHJldHVybiBnb25lKGdldHRleHQoIkNvdWxkbid0IGZp bmQgdGhlIG9iamVjdCBpbmZvcm1hdGlvbi4iKSkKKwogCiBjbGFzcyBQR0No aWxkTm9kZVZpZXcoTm9kZVZpZXcpOgogICAgIGRlZiBjaGlsZHJlbihzZWxm LCAqKmt3YXJncyk6Cg== --94eb2c08b1fc396eea05398d0797 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 --94eb2c08b1fc396eea05398d0797--