Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hqcRU-0004MS-Ak for pgadmin-hackers@arkaria.postgresql.org; Thu, 25 Jul 2019 12:01:52 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.89) (envelope-from ) id 1hqcRT-0002HP-3T for pgadmin-hackers@arkaria.postgresql.org; Thu, 25 Jul 2019 12:01:51 +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_SHA1:256) (Exim 4.89) (envelope-from ) id 1hqcRS-0002HE-PN for pgadmin-hackers@lists.postgresql.org; Thu, 25 Jul 2019 12:01:50 +0000 Received: from mail-yb1-xb29.google.com ([2607:f8b0:4864:20::b29]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from ) id 1hqcRL-0000Vl-Fy for pgadmin-hackers@postgresql.org; Thu, 25 Jul 2019 12:01:50 +0000 Received: by mail-yb1-xb29.google.com with SMTP id z128so14989801yba.6 for ; Thu, 25 Jul 2019 05:01:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=/Dpau44jEPBDsvWNeGv3QHXuwrEIP58VWGTG7g4kBkM=; b=D1AHs75pHnOziN02/ZbLmQ9a31mq2kfdkGHCobxA2FZBrDVsumZ7By8CKJ5ilSXKMn xw5mneYIy2hdQPR6i/DFHbPE9TJzGDnwHtDLsWN4vtHcoIuNPamBbOnXRkT3l9goDdGQ RMrqMlF7xLo03uX/GVPsX5sPxPrswr5wna7bg1gATOum6HEZOlj2GMpfa9f7Cbx+Yk8s osW5OJ0Ze6bfidDyXG//v1r62QOEg89mwIA1bC9snJWluLfe91ze1voNLVrVio6Risbo yktZhn8dhm+OZ9jych9LAUzaC8+NHxsA/EWr6AZX0k4LTJQ2H5jI4k4UJjLqMvp6aqkf tzNA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=/Dpau44jEPBDsvWNeGv3QHXuwrEIP58VWGTG7g4kBkM=; b=T4/cofhsv+ehy+ng4YGFtFh/Kc1pNOHUM9L74BxUsAnP6cGd7NRwaMRTGSrUJ4CY9w a9j9Migbj2nxp8CoHMZkJEdaXy5lDfP3UTMxsGBG051LaqfM4voAI9tc/f0QVjKjCI+H xDxP1naDanJwacSy9dzCpqp5EMKkFLOu6hKJP2Vybq6GUHCCu5BXCjzX6SCEbRUnssI0 doh7w8+89UvkgGdW4nX4FibNiTGyFrVIm7wedQ+QTSuGk/J+FQtinliV1frwy0iwnf+W ZdPXnFmlMrJk7L0dF2b8rLdQOvICtx+DB6Pckd3wMiZVK6heUhOvkBiawSDxs4SbLTtv kLZQ== X-Gm-Message-State: APjAAAVRcLqz1qIb++em1rxASd9mILgdN36m5PbsuZZUb8GfLINo91dA EYrc+gJwXuNABXAuvFJNsi/lgOzwbZUuGjRIQzwul/L1XaI= X-Google-Smtp-Source: APXvYqxU/trw715bD9WwV2RDLcseqXNrwrZJpTIbenILU1I6blVJal53ARQdOpqnCuNFB1TBfLcJBvuEv8UutgBVHk0= X-Received: by 2002:a25:2516:: with SMTP id l22mr21394090ybl.441.1564056101307; Thu, 25 Jul 2019 05:01:41 -0700 (PDT) MIME-Version: 1.0 From: Yosry Muhammad Date: Thu, 25 Jul 2019 14:01:28 +0200 Message-ID: Subject: [GSoC] Support editing resultsets from tables with OIDs To: pgadmin-hackers , Dave Page Content-Type: multipart/mixed; boundary="00000000000053ee27058e803041" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk --00000000000053ee27058e803041 Content-Type: multipart/alternative; boundary="00000000000053ee24058e80303f" --00000000000053ee24058e80303f Content-Type: text/plain; charset="UTF-8" Hi, Please find a patch attached to add supporting of resultsets from tables with OIDs as updatable resultsets (with updated test cases and docs) - this is a part of a GSoC project. Please review ! This patch also includes a small refactor of the previous patch and a small bug fix that occurred when the query resultset had no rows but was updatable (row additions were not permitted, although they should be). On a different note, one of the feature tests fails (on master), probably due to a small typo. In query_tool_tests.py this function call: self.page.find_by_xpath( '//div[contains(@class, "sql-editor-message") and ' 'contains(string(), "CREATE TABLE")]' ) on lines 371-374 produces an exception that the element cannot be found, this is probably due to the fact that the message returned by the query executed before this call does not contain the string "CREATE TABLE". Just letting you know about this. Thanks and regards! -- *Yosry Muhammad Yosry* Computer Engineering student, The Faculty of Engineering, Cairo University (2021). Class representative of CMP 2021. https://www.linkedin.com/in/yosrym93/ --00000000000053ee24058e80303f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi,
Please find a patch attached to add sup= porting of resultsets from tables with OIDs as updatable resultsets (with u= pdated test cases and docs) - this is a part of a GSoC project. Please revi= ew !
This patch also includes a small refactor of the previous pa= tch and a small bug fix that occurred when the query resultset had no rows = but was updatable (row additions were not permitted, although they should b= e).


On a different note, one of= the feature tests fails (on master), probably due to a small typo. In quer= y_tool_tests.py this function call:
self.page.=
find_by_xpath(
'//div[contains(@class, "sql-editor-message") and '
<= /span> 'contai= ns(string(), "CREATE TABLE")]'
)
on= lines 371-374 produces an exception that the element cannot be found, this= is probably due to the fact that the message returned by the query execute= d before this call does not contain the string "CREATE TABLE". Ju= st letting you know about this.

Thanks and regards= !
--=C2=A0

Yosry Muhammad Yosry

Computer Engineering student,
The Fa= culty of Engineering,
Cairo University = (2021).
Class representative of CMP 202= 1.
--00000000000053ee24058e80303f-- --00000000000053ee27058e803041 Content-Type: text/x-patch; charset="US-ASCII"; name="editing_resultsets_with_oids.patch" Content-Disposition: attachment; filename="editing_resultsets_with_oids.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jyimltrg0 ZGlmZiAtLWdpdCBhL2RvY3MvZW5fVVMvcXVlcnlfdG9vbC5yc3QgYi9kb2NzL2VuX1VTL3F1ZXJ5 X3Rvb2wucnN0CmluZGV4IDk3M2QzYjQ3Li4wMGMwZWJmOCAxMDA2NDQKLS0tIGEvZG9jcy9lbl9V Uy9xdWVyeV90b29sLnJzdAorKysgYi9kb2NzL2VuX1VTL3F1ZXJ5X3Rvb2wucnN0CkBAIC0xMzEs NyArMTMxLDcgQEAgWW91IGNhbjoKIEEgcmVzdWx0IHNldCBpcyB1cGRhdGFibGUgaWY6CiAKICog QWxsIHRoZSBjb2x1bW5zIGJlbG9uZyB0byB0aGUgc2FtZSB0YWJsZS4KLSogQWxsIHRoZSBwcmlt YXJ5IGtleXMgb2YgdGhlIHRhYmxlIGFyZSBzZWxlY3RlZC4KKyogQWxsIHRoZSBwcmltYXJ5IGtl eXMgb3IgT0lEcyBvZiB0aGUgdGFibGUgYXJlIGV4cGxpY2l0bHkgc2VsZWN0ZWQuCiAqIE5vIGNv bHVtbnMgYXJlIGR1cGxpY2F0ZWQuCiAKIEFuIHVwZGF0YWJsZSByZXN1bHQgc2V0IGNhbiBiZSBt b2RpZmllZCBqdXN0IGxpa2UgaW4KZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVk aXRvci9fX2luaXRfXy5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci9fX2luaXRfXy5w eQppbmRleCBkNzQzNTcwMi4uYzM0NGY1ZDcgMTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xz L3NxbGVkaXRvci9fX2luaXRfXy5weQorKysgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3Iv X19pbml0X18ucHkKQEAgLTQxNCwxMSArNDE0LDYgQEAgZGVmIHBvbGwodHJhbnNfaWQpOgogICAg ICAgICAgICAgICAgIGlmICdwcmltYXJ5X2tleXMnIGluIHNlc3Npb25fb2JqOgogICAgICAgICAg ICAgICAgICAgICBwcmltYXJ5X2tleXMgPSBzZXNzaW9uX29ialsncHJpbWFyeV9rZXlzJ10KIAot ICAgICAgICAgICAgICAgIGlmICdoYXNfb2lkcycgaW4gc2Vzc2lvbl9vYmo6Ci0gICAgICAgICAg ICAgICAgICAgIGhhc19vaWRzID0gc2Vzc2lvbl9vYmpbJ2hhc19vaWRzJ10KLSAgICAgICAgICAg ICAgICAgICAgaWYgaGFzX29pZHM6Ci0gICAgICAgICAgICAgICAgICAgICAgICBvaWRzID0geydv aWQnOiAnb2lkJ30KLQogICAgICAgICAgICAgICAgICMgRmV0Y2ggY29sdW1uIGluZm9ybWF0aW9u CiAgICAgICAgICAgICAgICAgY29sdW1uc19pbmZvID0gY29ubi5nZXRfY29sdW1uX2luZm8oKQog ICAgICAgICAgICAgICAgIGNsaWVudF9wcmltYXJ5X2tleSA9IGdlbmVyYXRlX2NsaWVudF9wcmlt YXJ5X2tleV9uYW1lKApAQCAtNDI5LDEzICs0MjQsMjIgQEAgZGVmIHBvbGwodHJhbnNfaWQpOgog ICAgICAgICAgICAgICAgICMgSWYgdHJhbnNfb2JqIGlzIGEgUXVlcnlUb29sQ29tbWFuZCB0aGVu IGNoZWNrIGZvciB1cGRhdGFibGUKICAgICAgICAgICAgICAgICAjIHJlc3VsdHNldHMgYW5kIHBy aW1hcnkga2V5cwogICAgICAgICAgICAgICAgIGlmIGlzaW5zdGFuY2UodHJhbnNfb2JqLCBRdWVy eVRvb2xDb21tYW5kKToKLSAgICAgICAgICAgICAgICAgICAgdHJhbnNfb2JqLmNoZWNrX3VwZGF0 YWJsZV9yZXN1bHRzX3BrZXlzKCkKKyAgICAgICAgICAgICAgICAgICAgdHJhbnNfb2JqLmNoZWNr X3VwZGF0YWJsZV9yZXN1bHRzX3BrZXlzX29pZHMoKQogICAgICAgICAgICAgICAgICAgICBwa19u YW1lcywgcHJpbWFyeV9rZXlzID0gdHJhbnNfb2JqLmdldF9wcmltYXJ5X2tleXMoKQorICAgICAg ICAgICAgICAgICAgICBzZXNzaW9uX29ialsnaGFzX29pZHMnXSA9IHRyYW5zX29iai5oYXNfb2lk cygpCisgICAgICAgICAgICAgICAgICAgICMgVXBkYXRlIGNvbW1hbmRfb2JqIGluIHNlc3Npb24g b2JqCisgICAgICAgICAgICAgICAgICAgIHNlc3Npb25fb2JqWydjb21tYW5kX29iaiddID0gcGlj a2xlLmR1bXBzKAorICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNfb2JqLCAtMSkKICAgICAg ICAgICAgICAgICAgICAgIyBJZiBwcmltYXJ5X2tleXMgZXhpc3QsIGFkZCB0aGVtIHRvIHRoZSBz ZXNzaW9uX29iaiB0bwogICAgICAgICAgICAgICAgICAgICAjIGFsbG93IGZvciBzYXZpbmcgYW55 IGNoYW5nZXMgdG8gdGhlIGRhdGEKICAgICAgICAgICAgICAgICAgICAgaWYgcHJpbWFyeV9rZXlz IGlzIG5vdCBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAgc2Vzc2lvbl9vYmpbJ3ByaW1h cnlfa2V5cyddID0gcHJpbWFyeV9rZXlzCiAKKyAgICAgICAgICAgICAgICBpZiAnaGFzX29pZHMn IGluIHNlc3Npb25fb2JqOgorICAgICAgICAgICAgICAgICAgICBoYXNfb2lkcyA9IHNlc3Npb25f b2JqWydoYXNfb2lkcyddCisgICAgICAgICAgICAgICAgICAgIGlmIGhhc19vaWRzOgorICAgICAg ICAgICAgICAgICAgICAgICAgb2lkcyA9IHsnb2lkJzogJ29pZCd9CisKICAgICAgICAgICAgICAg ICBpZiBjb2x1bW5zX2luZm8gaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgICMgSWYg aXQgaXMgYSBRdWVyeVRvb2xDb21tYW5kIHRoYXQgaGFzIG9ial9pZCBhdHRyaWJ1dGUKICAgICAg ICAgICAgICAgICAgICAgIyB0aGVuIGl0IHNob3VsZCBhbHNvIGJlIGVkaXRhYmxlCmRpZmYgLS1n aXQgYS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvY29tbWFuZC5weSBiL3dlYi9wZ2FkbWlu L3Rvb2xzL3NxbGVkaXRvci9jb21tYW5kLnB5CmluZGV4IDA2ZDM2MTVhLi41NzI1NTQxZiAxMDA2 NDQKLS0tIGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL2NvbW1hbmQucHkKKysrIGIvd2Vi L3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL2NvbW1hbmQucHkKQEAgLTg2Myw2ICs4NjMsNyBAQCBj bGFzcyBRdWVyeVRvb2xDb21tYW5kKEJhc2VDb21tYW5kLCBGZXRjaGVkUm93VHJhY2tlcik6CiAg ICAgICAgIHNlbGYuaXNfdXBkYXRhYmxlX3Jlc3VsdHNldCA9IEZhbHNlCiAgICAgICAgIHNlbGYu cHJpbWFyeV9rZXlzID0gTm9uZQogICAgICAgICBzZWxmLnBrX25hbWVzID0gTm9uZQorICAgICAg ICBzZWxmLnRhYmxlX2hhc19vaWRzID0gRmFsc2UKIAogICAgIGRlZiBnZXRfc3FsKHNlbGYsIGRl ZmF1bHRfY29ubj1Ob25lKToKICAgICAgICAgcmV0dXJuIE5vbmUKQEAgLTg3MywxMyArODc0LDE2 IEBAIGNsYXNzIFF1ZXJ5VG9vbENvbW1hbmQoQmFzZUNvbW1hbmQsIEZldGNoZWRSb3dUcmFja2Vy KToKICAgICBkZWYgZ2V0X3ByaW1hcnlfa2V5cyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYu cGtfbmFtZXMsIHNlbGYucHJpbWFyeV9rZXlzCiAKKyAgICBkZWYgaGFzX29pZHMoc2VsZik6Cisg ICAgICAgIHJldHVybiBzZWxmLnRhYmxlX2hhc19vaWRzCisKICAgICBkZWYgY2FuX2VkaXQoc2Vs Zik6CiAgICAgICAgIHJldHVybiBzZWxmLmlzX3VwZGF0YWJsZV9yZXN1bHRzZXQKIAogICAgIGRl ZiBjYW5fZmlsdGVyKHNlbGYpOgogICAgICAgICByZXR1cm4gRmFsc2UKIAotICAgIGRlZiBjaGVj a191cGRhdGFibGVfcmVzdWx0c19wa2V5cyhzZWxmKToKKyAgICBkZWYgY2hlY2tfdXBkYXRhYmxl X3Jlc3VsdHNfcGtleXNfb2lkcyhzZWxmKToKICAgICAgICAgIiIiCiAgICAgICAgICAgICBUaGlz IGZ1bmN0aW9uIGlzIHVzZWQgdG8gY2hlY2sgd2hldGhlciB0aGUgbGFzdCBzdWNjZXNzZnVsIHF1 ZXJ5CiAgICAgICAgICAgICBwcm9kdWNlZCB1cGRhdGFibGUgcmVzdWx0cyBhbmQgc2V0cyB0aGUg bmVjZXNzYXJ5IGZsYWdzIGFuZApAQCAtODk1LDggKzg5OSw4IEBAIGNsYXNzIFF1ZXJ5VG9vbENv bW1hbmQoQmFzZUNvbW1hbmQsIEZldGNoZWRSb3dUcmFja2VyKToKICAgICAgICAgIyBHZXQgdGhl IHBhdGggdG8gdGhlIHNxbCB0ZW1wbGF0ZXMKICAgICAgICAgc3FsX3BhdGggPSAnc3FsZWRpdG9y L3NxbC8jezB9IycuZm9ybWF0KG1hbmFnZXIudmVyc2lvbikKIAotICAgICAgICBzZWxmLmlzX3Vw ZGF0YWJsZV9yZXN1bHRzZXQsIHNlbGYucHJpbWFyeV9rZXlzLCBwa19uYW1lcywgdGFibGVfb2lk ID0gXAotICAgICAgICAgICAgaXNfcXVlcnlfcmVzdWx0c2V0X3VwZGF0YWJsZShjb25uLCBzcWxf cGF0aCkKKyAgICAgICAgc2VsZi5pc191cGRhdGFibGVfcmVzdWx0c2V0LCBzZWxmLnRhYmxlX2hh c19vaWRzLCBzZWxmLnByaW1hcnlfa2V5cywgXAorICAgICAgICAgICAgcGtfbmFtZXMsIHRhYmxl X29pZCA9IGlzX3F1ZXJ5X3Jlc3VsdHNldF91cGRhdGFibGUoY29ubiwgc3FsX3BhdGgpCiAKICAg ICAgICAgIyBDcmVhdGUgcGtfbmFtZXMgYXR0cmlidXRlIGluIHRoZSByZXF1aXJlZCBmb3JtYXQK ICAgICAgICAgaWYgcGtfbmFtZXMgaXMgbm90IE5vbmU6CkBAIC05MjEsNiArOTI1LDcgQEAgY2xh c3MgUXVlcnlUb29sQ29tbWFuZChCYXNlQ29tbWFuZCwgRmV0Y2hlZFJvd1RyYWNrZXIpOgogICAg ICAgICAgICAgIGNsaWVudF9wcmltYXJ5X2tleT0nX190ZW1wX1BLJywKICAgICAgICAgICAgICBk ZWZhdWx0X2Nvbm49Tm9uZSk6CiAgICAgICAgIGlmIG5vdCBzZWxmLmlzX3VwZGF0YWJsZV9yZXN1 bHRzZXQ6CisgICAgICAgICAgICBwcmludChzZWxmLmlzX3VwZGF0YWJsZV9yZXN1bHRzZXQsICdo aScpCiAgICAgICAgICAgICByZXR1cm4gRmFsc2UsIGdldHRleHQoJ1Jlc3VsdHNldCBpcyBub3Qg dXBkYXRhYmxlLicpLCBOb25lLCBOb25lCiAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICBkcml2 ZXIgPSBnZXRfZHJpdmVyKFBHX0RFRkFVTFRfRFJJVkVSKQpkaWZmIC0tZ2l0IGEvd2ViL3BnYWRt aW4vdG9vbHMvc3FsZWRpdG9yL3Rlc3RzL3Rlc3RfaXNfcXVlcnlfcmVzdWx0c2V0X3VwZGF0YWJs ZS5weSBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90ZXN0X2lzX3F1ZXJ5X3Jl c3VsdHNldF91cGRhdGFibGUucHkKaW5kZXggMDNmYTA3MTkuLmVlYzYwYzYzIDEwMDY0NAotLS0g YS93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdGVzdHMvdGVzdF9pc19xdWVyeV9yZXN1bHRz ZXRfdXBkYXRhYmxlLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci90ZXN0cy90 ZXN0X2lzX3F1ZXJ5X3Jlc3VsdHNldF91cGRhdGFibGUucHkKQEAgLTI3LDMzICsyNyw2NSBAQCBj bGFzcyBUZXN0UXVlcnlVcGRhdGFibGVSZXN1bHRzZXQoQmFzZVRlc3RHZW5lcmF0b3IpOgogICAg ICAgICAgICAgcHJpbWFyeV9rZXlzPXsKICAgICAgICAgICAgICAgICAncGtfY29sMSc6ICdpbnQ0 JywKICAgICAgICAgICAgICAgICAncGtfY29sMic6ICdpbnQ0JwotICAgICAgICAgICAgfQorICAg ICAgICAgICAgfSwKKyAgICAgICAgICAgIGV4cGVjdGVkX2hhc19vaWRzPUZhbHNlLAorICAgICAg ICAgICAgdGFibGVfaGFzX29pZHM9RmFsc2UKICAgICAgICAgKSksCiAgICAgICAgICgnV2hlbiBz ZWxlY3RpbmcgYWxsIHByaW1hcnkga2V5cyBvZiB0aGUgdGFibGUnLCBkaWN0KAogICAgICAgICAg ICAgc3FsPSdTRUxFQ1QgcGtfY29sMSwgcGtfY29sMiBGUk9NICVzOycsCiAgICAgICAgICAgICBw cmltYXJ5X2tleXM9ewogICAgICAgICAgICAgICAgICdwa19jb2wxJzogJ2ludDQnLAogICAgICAg ICAgICAgICAgICdwa19jb2wyJzogJ2ludDQnCi0gICAgICAgICAgICB9CisgICAgICAgICAgICB9 LAorICAgICAgICAgICAgZXhwZWN0ZWRfaGFzX29pZHM9RmFsc2UsCisgICAgICAgICAgICB0YWJs ZV9oYXNfb2lkcz1GYWxzZQogICAgICAgICApKSwKICAgICAgICAgKCdXaGVuIHNlbGVjdGluZyBz b21lIG9mIHRoZSBwcmltYXJ5IGtleXMgb2YgdGhlIHRhYmxlJywgZGljdCgKICAgICAgICAgICAg IHNxbD0nU0VMRUNUIHBrX2NvbDIgRlJPTSAlczsnLAotICAgICAgICAgICAgcHJpbWFyeV9rZXlz PU5vbmUKKyAgICAgICAgICAgIHByaW1hcnlfa2V5cz1Ob25lLAorICAgICAgICAgICAgZXhwZWN0 ZWRfaGFzX29pZHM9RmFsc2UsCisgICAgICAgICAgICB0YWJsZV9oYXNfb2lkcz1GYWxzZQogICAg ICAgICApKSwKICAgICAgICAgKCdXaGVuIHNlbGVjdGluZyBub25lIG9mIHRoZSBwcmltYXJ5IGtl eXMgb2YgdGhlIHRhYmxlJywgZGljdCgKICAgICAgICAgICAgIHNxbD0nU0VMRUNUIG5vcm1hbF9j b2wxIEZST00gJXM7JywKLSAgICAgICAgICAgIHByaW1hcnlfa2V5cz1Ob25lCisgICAgICAgICAg ICBwcmltYXJ5X2tleXM9Tm9uZSwKKyAgICAgICAgICAgIGV4cGVjdGVkX2hhc19vaWRzPUZhbHNl LAorICAgICAgICAgICAgdGFibGVfaGFzX29pZHM9RmFsc2UKICAgICAgICAgKSksCiAgICAgICAg ICgnV2hlbiByZW5hbWluZyBhIHByaW1hcnkga2V5JywgZGljdCgKLSAgICAgICAgICAgIHNxbD0n U0VMRUNUIHBrX2NvbDEgYXMgc29tZV9jb2wsICcKLSAgICAgICAgICAgICAgICAncGtfY29sMiBG Uk9NICIlcyI7JywKLSAgICAgICAgICAgIHByaW1hcnlfa2V5cz1Ob25lCisgICAgICAgICAgICBz cWw9J1NFTEVDVCBwa19jb2wxIGFzIHNvbWVfY29sLCBwa19jb2wyIEZST00gIiVzIjsnLAorICAg ICAgICAgICAgcHJpbWFyeV9rZXlzPU5vbmUsCisgICAgICAgICAgICBleHBlY3RlZF9oYXNfb2lk cz1GYWxzZSwKKyAgICAgICAgICAgIHRhYmxlX2hhc19vaWRzPUZhbHNlCiAgICAgICAgICkpLAog ICAgICAgICAoJ1doZW4gcmVuYW1pbmcgYSBjb2x1bW4gdG8gYSBwcmltYXJ5IGtleSBuYW1lJywg ZGljdCgKLSAgICAgICAgICAgIHNxbD0nU0VMRUNUIHBrX2NvbDEsIHBrX2NvbDIsIG5vcm1hbF9j b2wxIGFzIHBrX2NvbDEgJwotICAgICAgICAgICAgICAgICdGUk9NICVzOycsCi0gICAgICAgICAg ICBwcmltYXJ5X2tleXM9Tm9uZQotICAgICAgICApKQorICAgICAgICAgICAgc3FsPSdTRUxFQ1Qg cGtfY29sMSwgcGtfY29sMiwgbm9ybWFsX2NvbDEgYXMgcGtfY29sMSBGUk9NICVzOycsCisgICAg ICAgICAgICBwcmltYXJ5X2tleXM9Tm9uZSwKKyAgICAgICAgICAgIGV4cGVjdGVkX2hhc19vaWRz PUZhbHNlLAorICAgICAgICAgICAgdGFibGVfaGFzX29pZHM9RmFsc2UKKyAgICAgICAgKSksCisg ICAgICAgICgnV2hlbiBzZWxlY3RpbmcgcHJpbWFyeSBrZXlzIGFuZCBvaWRzICh0YWJsZSB3aXRo IG9pZHMpJywgZGljdCgKKyAgICAgICAgICAgIHNxbD0nU0VMRUNUICosIG9pZCBGUk9NICVzOycs CisgICAgICAgICAgICBwcmltYXJ5X2tleXM9eworICAgICAgICAgICAgICAgICdwa19jb2wxJzog J2ludDQnLAorICAgICAgICAgICAgICAgICdwa19jb2wyJzogJ2ludDQnCisgICAgICAgICAgICB9 LAorICAgICAgICAgICAgZXhwZWN0ZWRfaGFzX29pZHM9VHJ1ZSwKKyAgICAgICAgICAgIHRhYmxl X2hhc19vaWRzPVRydWUKKyAgICAgICAgKSksCisgICAgICAgICgnV2hlbiBzZWxlY3Rpbmcgb2lk cyB3aXRob3V0IHByaW1hcnkga2V5cyAodGFibGUgd2l0aCBvaWRzKScsIGRpY3QoCisgICAgICAg ICAgICBzcWw9J1NFTEVDVCBvaWQsIG5vcm1hbF9jb2wxLCBub3JtYWxfY29sMiBGUk9NICVzOycs CisgICAgICAgICAgICBwcmltYXJ5X2tleXM9Tm9uZSwKKyAgICAgICAgICAgIGV4cGVjdGVkX2hh c19vaWRzPVRydWUsCisgICAgICAgICAgICB0YWJsZV9oYXNfb2lkcz1UcnVlCisgICAgICAgICkp LAorICAgICAgICAoJ1doZW4gc2VsZWN0aW5nIG5vbmUgb2YgdGhlIHByaW1hcnkga2V5cyBvciBv aWRzICh0YWJsZSB3aXRoIG9pZHMpJywKKyAgICAgICAgIGRpY3QoCisgICAgICAgICAgICAgc3Fs PSdTRUxFQ1Qgbm9ybWFsX2NvbDEsIG5vcm1hbF9jb2wyIEZST00gJXM7JywKKyAgICAgICAgICAg ICBwcmltYXJ5X2tleXM9Tm9uZSwKKyAgICAgICAgICAgICBleHBlY3RlZF9oYXNfb2lkcz1GYWxz ZSwKKyAgICAgICAgICAgICB0YWJsZV9oYXNfb2lkcz1UcnVlCisgICAgICAgICApKQogICAgIF0K IAogICAgIGRlZiBzZXRVcChzZWxmKToKQEAgLTYzLDkgKzk1LDEwIEBAIGNsYXNzIFRlc3RRdWVy eVVwZGF0YWJsZVJlc3VsdHNldChCYXNlVGVzdEdlbmVyYXRvcik6CiAKICAgICBkZWYgcnVuVGVz dChzZWxmKToKICAgICAgICAgIyBDcmVhdGUgdGVzdCB0YWJsZSAodW5pcXVlIGZvciBlYWNoIHNj ZW5hcmlvKQotICAgICAgICBzZWxmLl9jcmVhdGVfdGVzdF90YWJsZSgpCisgICAgICAgIHRlc3Rf dGFibGVfbmFtZSA9IHNlbGYuX2NyZWF0ZV90ZXN0X3RhYmxlKAorICAgICAgICAgICAgdGFibGVf aGFzX29pZHM9c2VsZi50YWJsZV9oYXNfb2lkcykKICAgICAgICAgIyBBZGQgdGVzdCB0YWJsZSBu YW1lIHRvIHRoZSBxdWVyeQotICAgICAgICBzcWwgPSBzZWxmLnNxbCAlIHNlbGYudGVzdF90YWJs ZV9uYW1lCisgICAgICAgIHNxbCA9IHNlbGYuc3FsICUgdGVzdF90YWJsZV9uYW1lCiAgICAgICAg IGlzX3N1Y2Nlc3MsIHJlc3BvbnNlX2RhdGEgPSBcCiAgICAgICAgICAgICBleGVjdXRlX3F1ZXJ5 KHRlc3Rlcj1zZWxmLnRlc3RlciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgcXVlcnk9c3Fs LApAQCAtNzcsNiArMTEwLDEwIEBAIGNsYXNzIFRlc3RRdWVyeVVwZGF0YWJsZVJlc3VsdHNldChC YXNlVGVzdEdlbmVyYXRvcik6CiAgICAgICAgIHByaW1hcnlfa2V5cyA9IHJlc3BvbnNlX2RhdGFb J2RhdGEnXVsncHJpbWFyeV9rZXlzJ10KICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbHMocHJpbWFy eV9rZXlzLCBzZWxmLnByaW1hcnlfa2V5cykKIAorICAgICAgICAjIENoZWNrIG9pZHMKKyAgICAg ICAgaGFzX29pZHMgPSByZXNwb25zZV9kYXRhWydkYXRhJ11bJ2hhc19vaWRzJ10KKyAgICAgICAg c2VsZi5hc3NlcnRFcXVhbHMoaGFzX29pZHMsIHNlbGYuZXhwZWN0ZWRfaGFzX29pZHMpCisKICAg ICBkZWYgdGVhckRvd24oc2VsZik6CiAgICAgICAgICMgRGlzY29ubmVjdCB0aGUgZGF0YWJhc2UK ICAgICAgICAgZGF0YWJhc2VfdXRpbHMuZGlzY29ubmVjdF9kYXRhYmFzZShzZWxmLCBzZWxmLnNl cnZlcl9pZCwgc2VsZi5kYl9pZCkKQEAgLTg1LDExICsxMjIsMTggQEAgY2xhc3MgVGVzdFF1ZXJ5 VXBkYXRhYmxlUmVzdWx0c2V0KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgZGF0YWJhc2Vf aW5mbyA9IHBhcmVudF9ub2RlX2RpY3RbImRhdGFiYXNlIl1bLTFdCiAgICAgICAgIHNlbGYuc2Vy dmVyX2lkID0gZGF0YWJhc2VfaW5mb1sic2VydmVyX2lkIl0KIAorICAgICAgICBzZWxmLnNlcnZl cl92ZXJzaW9uID0gcGFyZW50X25vZGVfZGljdFsic2NoZW1hIl1bLTFdWyJzZXJ2ZXJfdmVyc2lv biJdCisKKyAgICAgICAgaWYgc2VsZi5zZXJ2ZXJfdmVyc2lvbiA+PSAxMjAwMDAgYW5kIHNlbGYu dGFibGVfaGFzX29pZHM6CisgICAgICAgICAgICBzZWxmLnNraXBUZXN0KCdUYWJsZXMgd2l0aCBP SURzIGFyZSBub3Qgc3VwcG9ydGVkIHN0YXJ0aW5nICcKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgJ1Bvc3RncmVTUUwgMTInKQorCiAgICAgICAgIHNlbGYuZGJfaWQgPSBkYXRhYmFzZV9pbmZv WyJkYl9pZCJdCiAgICAgICAgIGRiX2NvbiA9IGRhdGFiYXNlX3V0aWxzLmNvbm5lY3RfZGF0YWJh c2Uoc2VsZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB1dGlscy5TRVJWRVJfR1JPVVAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfaWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5kYl9pZCkKKwogICAgICAgICBpZiBub3QgZGJf Y29uWyJpbmZvIl0gPT0gIkRhdGFiYXNlIGNvbm5lY3RlZC4iOgogICAgICAgICAgICAgcmFpc2Ug RXhjZXB0aW9uKCJDb3VsZCBub3QgY29ubmVjdCB0byB0aGUgZGF0YWJhc2UuIikKIApAQCAtMTA4 LDggKzE1Miw4IEBAIGNsYXNzIFRlc3RRdWVyeVVwZGF0YWJsZVJlc3VsdHNldChCYXNlVGVzdEdl bmVyYXRvcik6CiAKICAgICAgICAgc2VsZi5wb2xsX3VybCA9ICcvc3FsZWRpdG9yL3BvbGwvezB9 Jy5mb3JtYXQoc2VsZi50cmFuc19pZCkKIAotICAgIGRlZiBfY3JlYXRlX3Rlc3RfdGFibGUoc2Vs Zik6Ci0gICAgICAgIHNlbGYudGVzdF90YWJsZV9uYW1lID0gInRlc3RfZm9yX3VwZGF0YWJsZV9y ZXN1bHRzZXQiICsgXAorICAgIGRlZiBfY3JlYXRlX3Rlc3RfdGFibGUoc2VsZiwgdGFibGVfaGFz X29pZHM9RmFsc2UpOgorICAgICAgICB0ZXN0X3RhYmxlX25hbWUgPSAidGVzdF9mb3JfdXBkYXRh YmxlX3Jlc3VsdHNldCIgKyBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RyKHJh bmRvbS5yYW5kaW50KDEwMDAsIDk5OTkpKQogICAgICAgICBjcmVhdGVfc3FsID0gIiIiCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgRFJPUCBUQUJMRSBJRiBFWElTVFMgIiVzIjsKQEAgLTEy MCw4ICsxNjQsMTMgQEAgY2xhc3MgVGVzdFF1ZXJ5VXBkYXRhYmxlUmVzdWx0c2V0KEJhc2VUZXN0 R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsX2NvbDEg VkFSQ0hBUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9ybWFsX2NvbDIgVkFS Q0hBUiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUFJJTUFSWSBLRVkocGtfY29s MSwgcGtfY29sMikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICApOwotICAgICAgICAgICAg ICAgICAgICAgICIiIiAlIChzZWxmLnRlc3RfdGFibGVfbmFtZSwgc2VsZi50ZXN0X3RhYmxlX25h bWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKQorICAgICAgICAgICAgICAgICAgICAg ICIiIiAlICh0ZXN0X3RhYmxlX25hbWUsIHRlc3RfdGFibGVfbmFtZSkKKworICAgICAgICBpZiB0 YWJsZV9oYXNfb2lkczoKKyAgICAgICAgICAgIGNyZWF0ZV9zcWwgKz0gJyBXSVRIIE9JRFM7Jwor ICAgICAgICBlbHNlOgorICAgICAgICAgICAgY3JlYXRlX3NxbCArPSAnOycKIAogICAgICAgICBp c19zdWNjZXNzLCBfID0gXAogICAgICAgICAgICAgZXhlY3V0ZV9xdWVyeSh0ZXN0ZXI9c2VsZi50 ZXN0ZXIsCkBAIC0xMjksMyArMTc4LDQgQEAgY2xhc3MgVGVzdFF1ZXJ5VXBkYXRhYmxlUmVzdWx0 c2V0KEJhc2VUZXN0R2VuZXJhdG9yKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRf cXVlcnlfdG9vbF91cmw9c2VsZi5zdGFydF9xdWVyeV90b29sX3VybCwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgcG9sbF91cmw9c2VsZi5wb2xsX3VybCkKICAgICAgICAgc2VsZi5hc3NlcnRF cXVhbHMoaXNfc3VjY2VzcywgVHJ1ZSkKKyAgICAgICAgcmV0dXJuIHRlc3RfdGFibGVfbmFtZQpk aWZmIC0tZ2l0IGEvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL2lzX3F1ZXJ5X3Jl c3VsdHNldF91cGRhdGFibGUucHkgYi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMv aXNfcXVlcnlfcmVzdWx0c2V0X3VwZGF0YWJsZS5weQppbmRleCBmNmI0NTNlZS4uOWMyYmQwOWEg MTAwNjQ0Ci0tLSBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy9pc19xdWVyeV9y ZXN1bHRzZXRfdXBkYXRhYmxlLnB5CisrKyBiL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91 dGlscy9pc19xdWVyeV9yZXN1bHRzZXRfdXBkYXRhYmxlLnB5CkBAIC0xNSw2ICsxNSw3IEBACiAg ICAgICAgIC0gTm8gZHVwbGljYXRlIGNvbHVtbnMKICIiIgogZnJvbSBmbGFzayBpbXBvcnQgcmVu ZGVyX3RlbXBsYXRlCitmcm9tIGZsYXNrX2JhYmVsZXggaW1wb3J0IGdldHRleHQKIHRyeToKICAg ICBmcm9tIGNvbGxlY3Rpb25zIGltcG9ydCBPcmRlcmVkRGljdAogZXhjZXB0IEltcG9ydEVycm9y OgpAQCAtNDMsMTggKzQ0LDI1IEBAIGRlZiBpc19xdWVyeV9yZXN1bHRzZXRfdXBkYXRhYmxlKGNv bm4sIHNxbF9wYXRoKToKICAgICAgICAgcmV0dXJuIHJldHVybl9ub3RfdXBkYXRhYmxlKCkKIAog ICAgIGlmIGNvbm4uY29ubmVjdGVkKCk6Ci0gICAgICAgIHByaW1hcnlfa2V5cywgcHJpbWFyeV9r ZXlzX2NvbHVtbnMsIHBrX25hbWVzID0gXAotICAgICAgICAgICAgX2dldF9wcmltYXJ5X2tleXMo Y29ubj1jb25uLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFibGVfb2lkPXRhYmxl X29pZCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNxbF9wYXRoPXNxbF9wYXRoKQot Ci0gICAgICAgIGlmIG5vdCBfY2hlY2tfcHJpbWFyeV9rZXlzX3VuaXF1ZWx5X2V4aXN0KHByaW1h cnlfa2V5c19jb2x1bW5zLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBjb2x1bW5zX2luZm8pOgorICAgICAgICBwcmltYXJ5X2tleXMsIHBrX25hbWVz ID0gX2NoZWNrX3ByaW1hcnlfa2V5cyhjb25uPWNvbm4sCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnNfaW5mbz1jb2x1bW5zX2luZm8s CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRh YmxlX29pZD10YWJsZV9vaWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHNxbF9wYXRoPXNxbF9wYXRoKQorCisgICAgICAgIGhhc19vaWRzID0g X2NoZWNrX29pZHMoY29ubj1jb25uLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNv bHVtbnNfaW5mbz1jb2x1bW5zX2luZm8sCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dGFibGVfb2lkPXRhYmxlX29pZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcWxf cGF0aD1zcWxfcGF0aCkKKworICAgICAgICBpZiBoYXNfb2lkcyBvciBwcmltYXJ5X2tleXMgaXMg bm90IE5vbmU6CisgICAgICAgICAgICByZXR1cm4gVHJ1ZSwgaGFzX29pZHMsIHByaW1hcnlfa2V5 cywgcGtfbmFtZXMsIHRhYmxlX29pZAorICAgICAgICBlbHNlOgogICAgICAgICAgICAgcmV0dXJu IHJldHVybl9ub3RfdXBkYXRhYmxlKCkKLQotICAgICAgICByZXR1cm4gVHJ1ZSwgcHJpbWFyeV9r ZXlzLCBwa19uYW1lcywgdGFibGVfb2lkCiAgICAgZWxzZToKLSAgICAgICAgcmV0dXJuIHJldHVy bl9ub3RfdXBkYXRhYmxlKCkKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKAorICAgICAgICAgICAg Z2V0dGV4dCgnTm90IGNvbm5lY3RlZCB0byBzZXJ2ZXIgb3IgY29ubmVjdGlvbiB3aXRoIHRoZSAn CisgICAgICAgICAgICAgICAgICAgICdzZXJ2ZXIgaGFzIGJlZW4gY2xvc2VkLicpCisgICAgICAg ICkKIAogCiBkZWYgX2NoZWNrX3NpbmdsZV90YWJsZShjb2x1bW5zX2luZm8pOgpAQCAtNzQsNiAr ODIsNDIgQEAgZGVmIF9jaGVja19kdXBsaWNhdGVfY29sdW1ucyhjb2x1bW5zX2luZm8pOgogICAg IHJldHVybiBUcnVlCiAKIAorZGVmIF9jaGVja19vaWRzKGNvbm4sIHNxbF9wYXRoLCB0YWJsZV9v aWQsIGNvbHVtbnNfaW5mbyk6CisgICAgIyBSZW1vdmUgdGhlIHNwZWNpYWwgYmVoYXZpb3Igb2Yg T0lEIGNvbHVtbnMgZnJvbQorICAgICMgUG9zdGdyZVNRTCAxMiBvbndhcmRzLCBzbyByZXR1cm5p bmcgRmFsc2UuCisgICAgaWYgY29ubi5tYW5hZ2VyLnN2ZXJzaW9uID49IDEyMDAwMDoKKyAgICAg ICAgcmV0dXJuIEZhbHNlCisKKyAgICAjIENoZWNrIHRoYXQgdGhlIHRhYmxlIGhhcyBvaWRzCisg ICAgcXVlcnkgPSByZW5kZXJfdGVtcGxhdGUoCisgICAgICAgICIvIi5qb2luKFtzcWxfcGF0aCwg J2hhc19vaWRzLnNxbCddKSwgb2JqX2lkPXRhYmxlX29pZCkKKworICAgIHN0YXR1cywgaGFzX29p ZHMgPSBjb25uLmV4ZWN1dGVfc2NhbGFyKHF1ZXJ5KQorICAgIGlmIG5vdCBzdGF0dXM6CisgICAg ICAgIHJhaXNlIEV4Y2VwdGlvbihoYXNfb2lkcykKKworICAgICMgQ2hlY2sgdGhhdCB0aGUgb2lk IGNvbHVtbiBpcyBzZWxlY3RlZCBpbiByZXN1bHRzIGNvbHVtbnMKKyAgICBvaWRfY29sdW1uX3Nl bGVjdGVkID0gRmFsc2UKKyAgICBmb3IgY29sIGluIGNvbHVtbnNfaW5mbzoKKyAgICAgICAgaWYg Y29sWyd0YWJsZV9jb2x1bW4nXSBpcyBOb25lIGFuZCBjb2xbJ2Rpc3BsYXlfbmFtZSddID09ICdv aWQnOgorICAgICAgICAgICAgb2lkX2NvbHVtbl9zZWxlY3RlZCA9IFRydWUKKyAgICAgICAgICAg IGJyZWFrCisgICAgcmV0dXJuIGhhc19vaWRzIGFuZCBvaWRfY29sdW1uX3NlbGVjdGVkCisKKwor ZGVmIF9jaGVja19wcmltYXJ5X2tleXMoY29ubiwgY29sdW1uc19pbmZvLCBzcWxfcGF0aCwgdGFi bGVfb2lkKToKKyAgICBwcmltYXJ5X2tleXMsIHByaW1hcnlfa2V5c19jb2x1bW5zLCBwa19uYW1l cyA9IFwKKyAgICAgICAgX2dldF9wcmltYXJ5X2tleXMoY29ubj1jb25uLAorICAgICAgICAgICAg ICAgICAgICAgICAgICB0YWJsZV9vaWQ9dGFibGVfb2lkLAorICAgICAgICAgICAgICAgICAgICAg ICAgICBzcWxfcGF0aD1zcWxfcGF0aCkKKworICAgIGlmIG5vdCBfY2hlY2tfcHJpbWFyeV9rZXlz X3VuaXF1ZWx5X2V4aXN0KHByaW1hcnlfa2V5c19jb2x1bW5zLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbHVtbnNfaW5mbyk6CisgICAgICAgIHByaW1h cnlfa2V5cyA9IE5vbmUKKyAgICAgICAgcGtfbmFtZXMgPSBOb25lCisgICAgcmV0dXJuIHByaW1h cnlfa2V5cywgcGtfbmFtZXMKKworCiBkZWYgX2NoZWNrX3ByaW1hcnlfa2V5c191bmlxdWVseV9l eGlzdChwcmltYXJ5X2tleXNfY29sdW1ucywgY29sdW1uc19pbmZvKToKICAgICBmb3IgcGsgaW4g cHJpbWFyeV9rZXlzX2NvbHVtbnM6CiAgICAgICAgIHBrX2V4aXN0cyA9IEZhbHNlCkBAIC05OSw3 ICsxNDMsNyBAQCBkZWYgX2dldF9wcmltYXJ5X2tleXMoc3FsX3BhdGgsIHRhYmxlX29pZCwgY29u bik6CiAgICAgKQogICAgIHN0YXR1cywgcmVzdWx0ID0gY29ubi5leGVjdXRlX2RpY3QocXVlcnkp CiAgICAgaWYgbm90IHN0YXR1czoKLSAgICAgICAgcmV0dXJuIHJldHVybl9ub3RfdXBkYXRhYmxl KCkKKyAgICAgICAgcmFpc2UgRXhjZXB0aW9uKHJlc3VsdCkKIAogICAgIHByaW1hcnlfa2V5c19j b2x1bW5zID0gW10KICAgICBwcmltYXJ5X2tleXMgPSBPcmRlcmVkRGljdCgpCkBAIC0xMTcsNCAr MTYxLDQgQEAgZGVmIF9nZXRfcHJpbWFyeV9rZXlzKHNxbF9wYXRoLCB0YWJsZV9vaWQsIGNvbm4p OgogCiAKIGRlZiByZXR1cm5fbm90X3VwZGF0YWJsZSgpOgotICAgIHJldHVybiBGYWxzZSwgTm9u ZSwgTm9uZSwgTm9uZQorICAgIHJldHVybiBGYWxzZSwgRmFsc2UsIE5vbmUsIE5vbmUsIE5vbmUK ZGlmZiAtLWdpdCBhL3dlYi9wZ2FkbWluL3Rvb2xzL3NxbGVkaXRvci91dGlscy9zdGFydF9ydW5u aW5nX3F1ZXJ5LnB5IGIvd2ViL3BnYWRtaW4vdG9vbHMvc3FsZWRpdG9yL3V0aWxzL3N0YXJ0X3J1 bm5pbmdfcXVlcnkucHkKaW5kZXggZWNlMTFmOWMuLjkyN2U5MWQwIDEwMDY0NAotLS0gYS93ZWIv cGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvc3RhcnRfcnVubmluZ19xdWVyeS5weQorKysg Yi93ZWIvcGdhZG1pbi90b29scy9zcWxlZGl0b3IvdXRpbHMvc3RhcnRfcnVubmluZ19xdWVyeS5w eQpAQCAtNDUsOCArNDUsOSBAQCBjbGFzcyBTdGFydFJ1bm5pbmdRdWVyeToKICAgICAgICAgaWYg dHlwZShzZXNzaW9uX29iaikgaXMgUmVzcG9uc2U6CiAgICAgICAgICAgICByZXR1cm4gc2Vzc2lv bl9vYmoKIAotICAgICAgICAjIFJlbW92ZSBhbnkgZXhpc3RpbmcgcHJpbWFyeSBrZXlzIGluIHNl c3Npb25fb2JqCisgICAgICAgICMgUmVtb3ZlIGFueSBleGlzdGluZyBwcmltYXJ5IGtleXMgb3Ig aGFzX29pZHMgaW4gc2Vzc2lvbl9vYmoKICAgICAgICAgc2Vzc2lvbl9vYmoucG9wKCdwcmltYXJ5 X2tleXMnLCBOb25lKQorICAgICAgICBzZXNzaW9uX29iai5wb3AoJ29pZHMnLCBOb25lKQogCiAg ICAgICAgIHRyYW5zYWN0aW9uX29iamVjdCA9IHBpY2tsZS5sb2FkcyhzZXNzaW9uX29ialsnY29t bWFuZF9vYmonXSkKICAgICAgICAgY2FuX2VkaXQgPSBGYWxzZQo= --00000000000053ee27058e803041--