<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugzilla.yoctoproject.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugzilla.yoctoproject.org/"
          
          maintainer="it-coreprojects-helpdesk@linuxfoundation.org"
>

    <bug>
          <bug_id>12001</bug_id>
          
          <creation_ts>2017-08-29 19:17:23 +0000</creation_ts>
          <short_desc>QEMU hangs and tests are aborted</short_desc>
          <delta_ts>2017-09-25 21:47:20 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>10</classification_id>
          <classification>QA/Testing</classification>
          <product>Build Testing</product>
          <component>general</component>
          <version>2.4</version>
          <rep_platform>x86</rep_platform>
          <op_sys>Multiple</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>Medium+</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>2.4 M4</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Todor Minchev">todor.minchev</reporter>
          <assigned_to name="brian avery">brian.avery</assigned_to>
          <cc>joshuagloe</cc>
    
    <cc>juro.bystricky</cc>
    
    <cc>richard.purdie</cc>
    
    <cc>stephano</cc>
          
          
          <cf_os>---</cf_os>
          <cf_regression_type>---</cf_regression_type>
          
          <cf_docchange>No (bug/feature does not impact docs)</cf_docchange>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>76269</commentid>
    <comment_count>0</comment_count>
    <who name="Todor Minchev">todor.minchev</who>
    <bug_when>2017-08-29 19:17:23 +0000</bug_when>
    <thetext>https://autobuilder.yocto.io/builders/nightly-x86-64/builds/462/steps/Running%20Sanity%20Tests/logs/stdio

NOTE: core-image-sato-sdk-1.0-r0 do_testimage: test_cpio (buildcpio.BuildCpioTest)
NOTE: core-image-sato-1.0-r0 do_testimage: Qemu pid didn&apos;t appeared in 60 seconds
WARNING: core-image-sato-1.0-r0 do_testimage: Qemu ended unexpectedly, dump data from host is in /tmp/oe-saved-tests/201708291357_qemu
NOTE: core-image-sato-1.0-r0 do_testimage: Sending SIGTERM to runqemu</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76469</commentid>
    <comment_count>1</comment_count>
    <who name="Richard Purdie">richard.purdie</who>
    <bug_when>2017-09-01 21:42:00 +0000</bug_when>
    <thetext>Another case: https://autobuilder.yocto.io/builders/nightly-qa-extras/builds/456/steps/Running%20Sanity%20Tests/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76480</commentid>
    <comment_count>2</comment_count>
      <attachid>3971</attachid>
    <who name="Juro Bystricky">juro.bystricky</who>
    <bug_when>2017-09-03 18:15:41 +0000</bug_when>
    <thetext>Created attachment 3971
patch intended to fix/help debug the issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76481</commentid>
    <comment_count>3</comment_count>
    <who name="Juro Bystricky">juro.bystricky</who>
    <bug_when>2017-09-03 18:16:04 +0000</bug_when>
    <thetext>I have created a patch that refactors the searching for QEMU PID.
Also adds additional printouts if things go wrong.
Also fixes some unlikely corner cases (self.qemupid = qemu_child could be set
but /proc entry does not exist)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76550</commentid>
    <comment_count>4</comment_count>
    <who name="Juro Bystricky">juro.bystricky</who>
    <bug_when>2017-09-05 21:55:54 +0000</bug_when>
    <thetext>OK, so the patch is not 100% working.
Back to the drawing board, this time testing a patch that uses QEMU cmd line argument -pidfile. This should greatly simplify/eliminate parsing of &quot;ps&quot; output.

BTW, I found out (the hard way) that an uncaught exception in &quot;find_child&quot; will typically result in an immediate error message &quot;Qemu pid didn&apos;t appeared in 120 seconds&quot;. This probably explains why increasing the timeout value did not improve the testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76573</commentid>
    <comment_count>5</comment_count>
      <attachid>3986</attachid>
    <who name="Juro Bystricky">juro.bystricky</who>
    <bug_when>2017-09-06 13:41:07 +0000</bug_when>
    <thetext>Created attachment 3986
patch using QEMU pidfile</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76575</commentid>
    <comment_count>6</comment_count>
    <who name="Juro Bystricky">juro.bystricky</who>
    <bug_when>2017-09-06 14:35:15 +0000</bug_when>
    <thetext>Looking at this:

NOTE: core-image-sato-sdk-1.0-r0 do_testimage: Waiting at most 1500 seconds for login banner
NOTE: core-image-sato-sdk-1.0-r0 do_testimage: Connection from 127.0.0.1:45934
NOTE: core-image-sato-sdk-1.0-r0 do_testimage: Reached login banner
NOTE: core-image-sato-sdk-1.0-r0 do_testimage: Logged as root in serial console
NOTE: core-image-sato-sdk-1.0-r0 do_testimage: test_ping (ping.PingTest)
NOTE: core-image-sato-sdk-1.0-r0 do_testimage:  ... ok
NOTE: core-image-sato-sdk-1.0-r0 do_testimage: test_ssh (ssh.SSHTest)
NOTE: core-image-sato-sdk-1.0-r0 do_testimage:  ... ok
NOTE: core-image-sato-sdk-1.0-r0 do_testimage: test_cpio (buildcpio.BuildCpioTest)
NOTE: core-image-sato-1.0-r0 do_testimage: Qemu pid didn&apos;t appeared in 60 seconds

It clearly shows we are logged in QEMU, so QEMU is manifestly running, at this point we must have had found QEMU PID. So the error message &quot;Qemu pid didn&apos;t appeared in 60 seconds&quot; is most likely caused by some uncaught exception, resulting in a misleading error message</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76952</commentid>
    <comment_count>7</comment_count>
    <who name="Juro Bystricky">juro.bystricky</who>
    <bug_when>2017-09-18 22:51:01 +0000</bug_when>
    <thetext>Refactored/simplified the code that determines PID of the running QEMU, PID is actually provided by QEMU itself via command line argument -pidfile.
Hence the code does not need to analyze running processes and various levels of ancestry. This, of course, does not mean we will not see this timeout error again. The replace code, although more complex, did not seem to have any obvious shortcomings. It may, however, provide additional insight as the code code-paths have changed.

http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=ed9d0fa5a92f837b14ff8f4e8d433da92d7dc968
http://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=03aa1ef733032e1acae4d291580968301679117f</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>76973</commentid>
    <comment_count>8</comment_count>
    <who name="brian avery">brian.avery</who>
    <bug_when>2017-09-19 16:43:13 +0000</bug_when>
    <thetext>closing based on ed9d0fa5a92f837b14ff8f4e8d433da92d7dc968 and 03aa1ef733032e1acae4d291580968301679117f commits.  Should the issue recur, the additional logging info that was also added as part of these commits should help.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>77129</commentid>
    <comment_count>9</comment_count>
    <who name="brian avery">brian.avery</who>
    <bug_when>2017-09-25 21:47:20 +0000</bug_when>
    <thetext>looks like the closed box didn&apos;t stick.... see previous comment for commit and reason.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3971</attachid>
            <date>2017-09-03 18:15:41 +0000</date>
            <delta_ts>2017-09-03 18:15:41 +0000</delta_ts>
            <desc>patch intended to fix/help debug the issue</desc>
            <filename>0001-qemurunner.py-refactor-searching-for-QEMU-PID.patch</filename>
            <type>text/plain</type>
            <size>17644</size>
            <attacher name="Juro Bystricky">juro.bystricky</attacher>
            
              <data encoding="base64">RnJvbSA2OTMzMWRjOTE3NmMzNzAyZGZlNjE4NWZlOTk1ZDI2ZmY1NmEyMTI3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKdXJvIEJ5c3RyaWNreSA8anVyby5ieXN0cmlja3lAaW50ZWwu
Y29tPgpEYXRlOiBTdW4sIDMgU2VwIDIwMTcgMTE6MDQ6MjcgLTA3MDAKU3ViamVjdDogW1BBVENI
XSBxZW11cnVubmVyLnB5OiByZWZhY3RvciBzZWFyY2hpbmcgZm9yIFFFTVUgUElECgpUaGVyZSBh
cmUgb2NjYXNpb25hbCBjYXNlcyBvYnNlcnZlZCB3aGVyZSBRRU1VIGhhbmdzIGFuZCB0ZXN0cwph
cmUgYWJvcnRlZCBiZWNhdXNlIHFlbXVydW5uZXIgd2FzIG5vdCBhYmxlIHRvIGRldGVybWluZSBQ
SUQKb2YgdGhlIHNwYXduZWQgUUVNVS4KClRoaXMgcGF0Y2ggYXR0ZW1wdHMgdG8gYWRkcmVzcyB0
aGUgaXNzdWUgd2l0aDoKMS4gUmVmYWN0b3JpbmcgdGhlIGNvZGUgdGhhdCBkZXRlcm1pbmVzIHRo
ZSBRRU1VIFBJRAoyLiBJbiBjYXNlIG9mIGVycm9yIGRpc3BsYXlzIGFsbCBydW5uaW5nIHByb2Nl
c3NlcyBpbiBvcmRlciB0bwogICBhc3Npc3QgaW4gcHJvYmxlbSBhbmFseXNpcy4KCldoaWxlIGlu
IHRoZXJlLCBhbHNvIHRoZSBmaXhlcyB0aGUgcHJpbnRvdXQgb2YgdGhlIGNvbW1hbmQgdXNlZAoo
dGhlIGNvbW1hbmQgaGFkIGFsbCBzcGFjZXMgcmVtb3ZlZCkuClNvbWUgb3RoZXIgdHdlYWtzLgoK
W1lPQ1RPICMxMjAwMV0KClNpZ25lZC1vZmYtYnk6IEp1cm8gQnlzdHJpY2t5IDxqdXJvLmJ5c3Ry
aWNreUBpbnRlbC5jb20+Ci0tLQogbWV0YS9saWIvb2VxYS91dGlscy9xZW11cnVubmVyLnB5IHwg
MzA4ICsrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdl
ZCwgMTQ1IGluc2VydGlvbnMoKyksIDE2MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9tZXRh
L2xpYi9vZXFhL3V0aWxzL3FlbXVydW5uZXIucHkgYi9tZXRhL2xpYi9vZXFhL3V0aWxzL3FlbXVy
dW5uZXIucHkKaW5kZXggNTQzMTJmYi4uZTQ0ODY3NiAxMDA2NDQKLS0tIGEvbWV0YS9saWIvb2Vx
YS91dGlscy9xZW11cnVubmVyLnB5CisrKyBiL21ldGEvbGliL29lcWEvdXRpbHMvcWVtdXJ1bm5l
ci5weQpAQCAtMTM5LDcgKzEzOSwxMSBAQCBjbGFzcyBRZW11UnVubmVyOgogICAgICAgICAgICAg
bG9nZ2VyLmVycm9yKCJGYWlsZWQgdG8gY3JlYXRlIGxpc3RlbmluZyBzb2NrZXQ6ICVzIiAlIG1z
Z1sxXSkKICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgICAgIGJvb3RwYXJhbXMgPSAn
Y29uc29sZT10dHkxIGNvbnNvbGU9dHR5UzAsMTE1MjAwbjggcHJpbnRrLnRpbWU9MScKKyAgICAg
ICAgIyBOb3RlIHRoYXQgd2UgYWRkIGFuIGV4dHJhICJib290cGFyYW0iIHFlbXVydW5uZXJfcGlk
LiBUaGlzIGlzIGluIG9yZGVyIHRvIHNpbXBsaWZ5CisgICAgICAgICMgZmluZGluZyB0aGUgc3Bh
d25lZCBRRU1VIFBJRCwgd2hpY2ggd2Ugd2lsbCBuZWVkIHRvIGRldGVybWluZSBpbiBvcmRlciB0
byBjb21tdW5pY2F0ZQorICAgICAgICAjIHdpdGggdGhlIFFFTVUuIFRoZXJlIG1heSBiZSB2YXJp
b3VzIFFFTXVzIHJ1bm5pbmcgYXQgdGhpcyB0aW1lLCBidXQgd2UgYXJlIG9ubHkgaW50ZXJyZXN0
ZWQKKyAgICAgICAgIyBpbiB0aGUgb25lIHdpdGggb3VyIFBJRC4gVGhpcyBpcyBwZXJmZWN0bHkg
aGFybWxlc3MuCisgICAgICAgIGJvb3RwYXJhbXMgPSAnY29uc29sZT10dHkxIGNvbnNvbGU9dHR5
UzAsMTE1MjAwbjggcHJpbnRrLnRpbWU9MSBxZW11cnVubmVyX3BpZD0nKyBzdHIob3MuZ2V0cGlk
KCkpCiAgICAgICAgIGlmIGV4dHJhX2Jvb3RwYXJhbXM6CiAgICAgICAgICAgICBib290cGFyYW1z
ID0gYm9vdHBhcmFtcyArICcgJyArIGV4dHJhX2Jvb3RwYXJhbXMKIApAQCAtMTk5LDEyNSArMjAz
LDE0IEBAIGNsYXNzIFFlbXVSdW5uZXI6CiAgICAgICAgICAgICAgICAgICAgIHNlbGYuc3RvcCgp
CiAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJPdXRwdXQgZnJvbSBydW5xZW11Olxu
JXMiICUgc2VsZi5nZXRPdXRwdXQob3V0cHV0KSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEZhbHNlCi0gICAgICAgICAgICB0aW1lLnNsZWVwKDEpCisgICAgICAgICAgICB0aW1lLnNsZWVw
KDAuNSkKIAotICAgICAgICBvdXQgPSBzZWxmLmdldE91dHB1dChvdXRwdXQpCi0gICAgICAgIG5l
dGNvbmYgPSBGYWxzZSAjIG5ldHdvcmsgY29uZmlndXJhdGlvbiBpcyBub3QgcmVxdWlyZWQgYnkg
ZGVmYXVsdAotICAgICAgICBpZiBzZWxmLmlzX2FsaXZlKCk6Ci0gICAgICAgICAgICBsb2dnZXIu
aW5mbygicWVtdSBzdGFydGVkIGluICVzIHNlY29uZHMgLSBxZW11IHByb2NjZXMgcGlkIGlzICVz
IiAlICh0aW1lLnRpbWUoKSAtIChlbmR0aW1lIC0gc2VsZi5ydW5xZW11dGltZSksIHNlbGYucWVt
dXBpZCkpCi0gICAgICAgICAgICBpZiBnZXRfaXA6Ci0gICAgICAgICAgICAgICAgY21kbGluZSA9
ICcnCi0gICAgICAgICAgICAgICAgd2l0aCBvcGVuKCcvcHJvYy8lcy9jbWRsaW5lJyAlIHNlbGYu
cWVtdXBpZCkgYXMgcDoKLSAgICAgICAgICAgICAgICAgICAgY21kbGluZSA9IHAucmVhZCgpCi0g
ICAgICAgICAgICAgICAgICAgICMgSXQgaXMgbmVlZGVkIHRvIHNhbml0aXplIHRoZSBkYXRhIHJl
Y2VpdmVkCi0gICAgICAgICAgICAgICAgICAgICMgYmVjYXVzZSBpcyBwb3NzaWJsZSB0byBoYXZl
IGNvbnRyb2wgY2hhcmFjdGVycwotICAgICAgICAgICAgICAgICAgICBjbWRsaW5lID0gcmVfY29u
dHJvbF9jaGFyLnN1YignJywgY21kbGluZSkKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAg
ICAgICAgICAgICAgIGlwcyA9IHJlLmZpbmRhbGwoIigoPzpbMC05XXsxLDN9XC4pezN9WzAtOV17
MSwzfSkiLCBjbWRsaW5lLnNwbGl0KCJpcD0iKVsxXSkKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5pcCA9IGlwc1swXQotICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9pcCA9IGlwc1sx
XQotICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygicWVtdSBjbWRsaW5lIHVzZWQ6XG57
fSIuZm9ybWF0KGNtZGxpbmUpKQotICAgICAgICAgICAgICAgIGV4Y2VwdCAoSW5kZXhFcnJvciwg
VmFsdWVFcnJvcik6Ci0gICAgICAgICAgICAgICAgICAgICMgVHJ5IHRvIGdldCBuZXR3b3JrIGNv
bmZpZ3VyYXRpb24gZnJvbSBydW5xZW11IG91dHB1dAotICAgICAgICAgICAgICAgICAgICBtYXRj
aCA9IHJlLm1hdGNoKCcuKk5ldHdvcmsgY29uZmlndXJhdGlvbjogKFswLTkuXSspOjooWzAtOS5d
Kyk6KFswLTkuXSspJC4qJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBv
dXQsIHJlLk1VTFRJTElORXxyZS5ET1RBTEwpCi0gICAgICAgICAgICAgICAgICAgIGlmIG1hdGNo
OgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pcCwgc2VsZi5zZXJ2ZXJfaXAsIHNlbGYu
bmV0bWFzayA9IG1hdGNoLmdyb3VwcygpCi0gICAgICAgICAgICAgICAgICAgICAgICAjIG5ldHdv
cmsgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCBhcyB3ZSBjb3VsZG4ndCBnZXQgaXQKLSAgICAg
ICAgICAgICAgICAgICAgICAgICMgZnJvbSB0aGUgcnVucWVtdSBjb21tYW5kIGxpbmUsIHNvIHFl
bXUgZG9lc24ndCBydW4ga2VybmVsCi0gICAgICAgICAgICAgICAgICAgICAgICAjIGFuZCBndWVz
dCBuZXR3b3JraW5nIGlzIG5vdCBjb25maWd1cmVkCi0gICAgICAgICAgICAgICAgICAgICAgICBu
ZXRjb25mID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAg
ICAgICAgICAgbG9nZ2VyLmVycm9yKCJDb3VsZG4ndCBnZXQgaXAgZnJvbSBxZW11IGNvbW1hbmQg
bGluZSBhbmQgcnVucWVtdSBvdXRwdXQhICIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiSGVyZSBpcyB0aGUgcWVtdSBjb21tYW5kIGxpbmUgdXNlZDpcbiVzXG4iCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFuZCBvdXRwdXQgZnJvbSBydW5xZW11
OlxuJXMiICUgKGNtZGxpbmUsIG91dCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl9k
dW1wX2hvc3QoKQotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5zdG9wKCkKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICAgICAgICAgbG9nZ2VyLmlu
Zm8oIlRhcmdldCBJUDogJXMiICUgc2VsZi5pcCkKLSAgICAgICAgICAgICAgICBsb2dnZXIuaW5m
bygiU2VydmVyIElQOiAlcyIgJSBzZWxmLnNlcnZlcl9pcCkKLQotICAgICAgICAgICAgc2VsZi50
aHJlYWQgPSBMb2dnaW5nVGhyZWFkKHNlbGYubG9nLCB0aHJlYWRzb2NrLCBsb2dnZXIpCi0gICAg
ICAgICAgICBzZWxmLnRocmVhZC5zdGFydCgpCi0gICAgICAgICAgICBpZiBub3Qgc2VsZi50aHJl
YWQuY29ubmVjdGlvbl9lc3RhYmxpc2hlZC53YWl0KHNlbGYuYm9vdHRpbWUpOgotICAgICAgICAg
ICAgICAgIGxvZ2dlci5lcnJvcigiRGlkbid0IHJlY2VpdmUgYSBjb25zb2xlIGNvbm5lY3Rpb24g
ZnJvbSBxZW11LiAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICJIZXJlIGlzIHRoZSBx
ZW11IGNvbW1hbmQgbGluZSB1c2VkOlxuJXNcbmFuZCAiCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJvdXRwdXQgZnJvbSBydW5xZW11OlxuJXMiICUgKGNtZGxpbmUsIG91dCkpCi0gICAg
ICAgICAgICAgICAgc2VsZi5zdG9wX3RocmVhZCgpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEZh
bHNlCi0KLSAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJPdXRwdXQgZnJvbSBydW5xZW11OlxuJXMi
LCBvdXQpCi0gICAgICAgICAgICBsb2dnZXIuaW5mbygiV2FpdGluZyBhdCBtb3N0ICVkIHNlY29u
ZHMgZm9yIGxvZ2luIGJhbm5lciIgJSBzZWxmLmJvb3R0aW1lKQotICAgICAgICAgICAgZW5kdGlt
ZSA9IHRpbWUudGltZSgpICsgc2VsZi5ib290dGltZQotICAgICAgICAgICAgc29ja2xpc3QgPSBb
c2VsZi5zZXJ2ZXJfc29ja2V0XQotICAgICAgICAgICAgcmVhY2hlZGxvZ2luID0gRmFsc2UKLSAg
ICAgICAgICAgIHN0b3ByZWFkID0gRmFsc2UKLSAgICAgICAgICAgIHFlbXVzb2NrID0gTm9uZQot
ICAgICAgICAgICAgYm9vdGxvZyA9ICcnCi0gICAgICAgICAgICBkYXRhID0gYicnCi0gICAgICAg
ICAgICB3aGlsZSB0aW1lLnRpbWUoKSA8IGVuZHRpbWUgYW5kIG5vdCBzdG9wcmVhZDoKLSAgICAg
ICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIHNyZWFkLCBzd3JpdGUsIHNlcnJv
ciA9IHNlbGVjdC5zZWxlY3Qoc29ja2xpc3QsIFtdLCBbXSwgNSkKLSAgICAgICAgICAgICAgICBl
eGNlcHQgSW50ZXJydXB0ZWRFcnJvcjoKLSAgICAgICAgICAgICAgICAgICAgY29udGludWUKLSAg
ICAgICAgICAgICAgICBmb3Igc29jayBpbiBzcmVhZDoKLSAgICAgICAgICAgICAgICAgICAgaWYg
c29jayBpcyBzZWxmLnNlcnZlcl9zb2NrZXQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICBxZW11
c29jaywgYWRkciA9IHNlbGYuc2VydmVyX3NvY2tldC5hY2NlcHQoKQotICAgICAgICAgICAgICAg
ICAgICAgICAgcWVtdXNvY2suc2V0YmxvY2tpbmcoMCkKLSAgICAgICAgICAgICAgICAgICAgICAg
IHNvY2tsaXN0LmFwcGVuZChxZW11c29jaykKLSAgICAgICAgICAgICAgICAgICAgICAgIHNvY2ts
aXN0LnJlbW92ZShzZWxmLnNlcnZlcl9zb2NrZXQpCi0gICAgICAgICAgICAgICAgICAgICAgICBs
b2dnZXIuaW5mbygiQ29ubmVjdGlvbiBmcm9tICVzOiVzIiAlIGFkZHIpCi0gICAgICAgICAgICAg
ICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gZGF0YSArIHNvY2su
cmVjdigxMDI0KQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgZGF0YToKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGEgPSBkYXRhLmRlY29kZSgidXRmLTgiLCBlcnJvcnM9InN1cnJvZ2F0ZWVzY2FwZSIpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb3Rsb2cgKz0gZGF0YQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBkYXRhID0gYicnCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmIHJlLnNlYXJjaCgiLiogbG9naW46IiwgYm9vdGxvZyk6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9zb2NrZXQgPSBxZW11c29jawotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcHJlYWQgPSBUcnVlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFjaGVkbG9naW4gPSBUcnVlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiUmVhY2hlZCBsb2dpbiBi
YW5uZXIiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4Y2VwdCBVbmljb2RlRGVjb2Rl
RXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAg
ICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2ts
aXN0LnJlbW92ZShzb2NrKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvY2suY2xvc2Uo
KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3ByZWFkID0gVHJ1ZQotCi0gICAgICAg
ICAgICBpZiBub3QgcmVhY2hlZGxvZ2luOgotICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJU
YXJnZXQgZGlkbid0IHJlYWNoZWQgbG9naW4gYm9vdCBpbiAlZCBzZWNvbmRzIiAlIHNlbGYuYm9v
dHRpbWUpCi0gICAgICAgICAgICAgICAgbGluZXMgPSAiXG4iLmpvaW4oYm9vdGxvZy5zcGxpdGxp
bmVzKClbLTI1Ol0pCi0gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkxhc3QgMjUgbGluZXMg
b2YgdGV4dDpcbiVzIiAlIGxpbmVzKQotICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJDaGVj
ayBmdWxsIGJvb3QgbG9nOiAlcyIgJSBzZWxmLmxvZ2ZpbGUpCi0gICAgICAgICAgICAgICAgc2Vs
Zi5fZHVtcF9ob3N0KCkKLSAgICAgICAgICAgICAgICBzZWxmLnN0b3AoKQotICAgICAgICAgICAg
ICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICAgICAjIElmIHdlIGFyZSBub3QgYWJsZSB0byBs
b2dpbiB0aGUgdGVzdHMgY2FuIGNvbnRpbnVlCi0gICAgICAgICAgICB0cnk6Ci0gICAgICAgICAg
ICAgICAgKHN0YXR1cywgb3V0cHV0KSA9IHNlbGYucnVuX3NlcmlhbCgicm9vdFxuIiwgcmF3PVRy
dWUpCi0gICAgICAgICAgICAgICAgaWYgcmUuc2VhcmNoKCJyb290QFthLXpBLVowLTlcLV0rOn4j
Iiwgb3V0cHV0KToKLSAgICAgICAgICAgICAgICAgICAgc2VsZi5sb2dnZWQgPSBUcnVlCi0gICAg
ICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJMb2dnZWQgYXMgcm9vdCBpbiBzZXJpYWwgY29u
c29sZSIpCi0gICAgICAgICAgICAgICAgICAgIGlmIG5ldGNvbmY6Ci0gICAgICAgICAgICAgICAg
ICAgICAgICAjIGNvbmZpZ3VyZSBndWVzdCBuZXR3b3JraW5nCi0gICAgICAgICAgICAgICAgICAg
ICAgICBjbWQgPSAiaWZjb25maWcgZXRoMCAlcyBuZXRtYXNrICVzIHVwXG4iICUgKHNlbGYuaXAs
IHNlbGYubmV0bWFzaykKLSAgICAgICAgICAgICAgICAgICAgICAgIG91dHB1dCA9IHNlbGYucnVu
X3NlcmlhbChjbWQsIHJhdz1UcnVlKVsxXQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgcmUu
c2VhcmNoKCJyb290QFthLXpBLVowLTlcLV0rOn4jIiwgb3V0cHV0KToKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiY29uZmlndXJlZCBpcCBhZGRyZXNzICVzIiwgc2Vs
Zi5pcCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbG9nZ2VyLmluZm8oIkNvdWxkbid0IGNvbmZpZ3VyZSBndWVzdCBuZXR3b3JraW5n
IikKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5m
bygiQ291bGRuJ3QgbG9naW4gaW50byBzZXJpYWwgY29uc29sZSIKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiIGFzIHJvb3QgdXNpbmcgYmxhbmsgcGFzc3dvcmQiKQotICAgICAgICAgICAg
ZXhjZXB0OgotICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJTZXJpYWwgY29uc29sZSBmYWls
ZWQgd2hpbGUgdHJ5aW5nIHRvIGxvZ2luIikKLQotICAgICAgICBlbHNlOgorICAgICAgICBpZiBu
b3Qgc2VsZi5pc19hbGl2ZSgpOgogICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCJRZW11IHBpZCBk
aWRuJ3QgYXBwZWFyIGluICVzIHNlY29uZHMiICUgc2VsZi5ydW5xZW11dGltZSkKKyAgICAgICAg
ICAgICMgRHVtcCBhbGwgcHJvY2Vzc2VzIHRvIGhlbHAgdXMgdG8gZmlndXJlIG91dCB3aGF0IGlz
IGdvaW5nIG9uLi4uCisgICAgICAgICAgICBwcyA9IHN1YnByb2Nlc3MuUG9wZW4oWydwcycsICdh
eHd3JywgJy1vJywgJ3BpZCxwcGlkLGNvbW1hbmQgJ10sIHN0ZG91dD1zdWJwcm9jZXNzLlBJUEUp
LmNvbW11bmljYXRlKClbMF0KKyAgICAgICAgICAgIHByb2Nlc3NlcyA9IHBzLmRlY29kZSgidXRm
LTgiKQorICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlJ1bm5pbmcgcHJvY2Vzc2VzOlxuJXMiICUg
cHJvY2Vzc2VzKQogICAgICAgICAgICAgc2VsZi5fZHVtcF9ob3N0KCkKICAgICAgICAgICAgIHNl
bGYuc3RvcCgpCiAgICAgICAgICAgICBvcCA9IHNlbGYuZ2V0T3V0cHV0KG91dHB1dCkKQEAgLTMy
Nyw3ICsyMjAsMTIxIEBAIGNsYXNzIFFlbXVSdW5uZXI6CiAgICAgICAgICAgICAgICAgbG9nZ2Vy
LmVycm9yKCJObyBvdXRwdXQgZnJvbSBydW5xZW11LlxuIikKICAgICAgICAgICAgIHJldHVybiBG
YWxzZQogCi0gICAgICAgIHJldHVybiBzZWxmLmlzX2FsaXZlKCkKKyAgICAgICAgIyBXZSBhcmUg
YWxpdmU6IHFlbXUgaXMgcnVubmluZworICAgICAgICBvdXQgPSBzZWxmLmdldE91dHB1dChvdXRw
dXQpCisgICAgICAgIG5ldGNvbmYgPSBGYWxzZSAjIG5ldHdvcmsgY29uZmlndXJhdGlvbiBpcyBu
b3QgcmVxdWlyZWQgYnkgZGVmYXVsdAorICAgICAgICBsb2dnZXIuaW5mbygicWVtdSBzdGFydGVk
IGluICVzIHNlY29uZHMgLSBxZW11IHByb2NjZXMgcGlkIGlzICVzIiAlICh0aW1lLnRpbWUoKSAt
IChlbmR0aW1lIC0gc2VsZi5ydW5xZW11dGltZSksIHNlbGYucWVtdXBpZCkpCisgICAgICAgIGlm
IGdldF9pcDoKKyAgICAgICAgICAgIGNtZGxpbmUgPSAnJworICAgICAgICAgICAgd2l0aCBvcGVu
KCcvcHJvYy8lcy9jbWRsaW5lJyAlIHNlbGYucWVtdXBpZCkgYXMgcDoKKyAgICAgICAgICAgICAg
ICBjbWRsaW5lID0gcC5yZWFkKCkKKyAgICAgICAgICAgICAgICAjIEl0IGlzIG5lZWRlZCB0byBz
YW5pdGl6ZSB0aGUgZGF0YSByZWNlaXZlZAorICAgICAgICAgICAgICAgICMgYmVjYXVzZSBpcyBw
b3NzaWJsZSB0byBoYXZlIGNvbnRyb2wgY2hhcmFjdGVycworICAgICAgICAgICAgICAgIGNtZGxp
bmUgPSByZV9jb250cm9sX2NoYXIuc3ViKCcgJywgY21kbGluZSkKKyAgICAgICAgICAgIHRyeToK
KyAgICAgICAgICAgICAgICBpcHMgPSByZS5maW5kYWxsKCIoKD86WzAtOV17MSwzfVwuKXszfVsw
LTldezEsM30pIiwgY21kbGluZS5zcGxpdCgiaXA9IilbMV0pCisgICAgICAgICAgICAgICAgc2Vs
Zi5pcCA9IGlwc1swXQorICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX2lwID0gaXBzWzFdCisg
ICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oInFlbXUgY21kbGluZSB1c2VkOlxue30iLmZvcm1h
dChjbWRsaW5lKSkKKyAgICAgICAgICAgIGV4Y2VwdCAoSW5kZXhFcnJvciwgVmFsdWVFcnJvcik6
CisgICAgICAgICAgICAgICAgIyBUcnkgdG8gZ2V0IG5ldHdvcmsgY29uZmlndXJhdGlvbiBmcm9t
IHJ1bnFlbXUgb3V0cHV0CisgICAgICAgICAgICAgICAgbWF0Y2ggPSByZS5tYXRjaCgnLipOZXR3
b3JrIGNvbmZpZ3VyYXRpb246IChbMC05Ll0rKTo6KFswLTkuXSspOihbMC05Ll0rKSQuKicsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQsIHJlLk1VTFRJTElORXxyZS5ET1RB
TEwpCisgICAgICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAgICAgICAgICAgICAgICAgIHNlbGYu
aXAsIHNlbGYuc2VydmVyX2lwLCBzZWxmLm5ldG1hc2sgPSBtYXRjaC5ncm91cHMoKQorICAgICAg
ICAgICAgICAgICAgICAjIG5ldHdvcmsgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCBhcyB3ZSBj
b3VsZG4ndCBnZXQgaXQKKyAgICAgICAgICAgICAgICAgICAgIyBmcm9tIHRoZSBydW5xZW11IGNv
bW1hbmQgbGluZSwgc28gcWVtdSBkb2Vzbid0IHJ1biBrZXJuZWwKKyAgICAgICAgICAgICAgICAg
ICAgIyBhbmQgZ3Vlc3QgbmV0d29ya2luZyBpcyBub3QgY29uZmlndXJlZAorICAgICAgICAgICAg
ICAgICAgICBuZXRjb25mID0gVHJ1ZQorICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICAgICAgICAgIGxvZ2dlci5lcnJvcigiQ291bGRuJ3QgZ2V0IGlwIGZyb20gcWVtdSBjb21tYW5k
IGxpbmUgYW5kIHJ1bnFlbXUgb3V0cHV0ISAiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiSGVyZSBpcyB0aGUgcWVtdSBjb21tYW5kIGxpbmUgdXNlZDpcbiVzXG4iCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5kIG91dHB1dCBmcm9tIHJ1bnFlbXU6XG4lcyIg
JSAoY21kbGluZSwgb3V0KSkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5fZHVtcF9ob3N0KCkK
KyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdG9wKCkKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEZhbHNlCisKKyAgICAgICAgbG9nZ2VyLmluZm8oIlRhcmdldCBJUDogJXMiICUgc2VsZi5p
cCkKKyAgICAgICAgbG9nZ2VyLmluZm8oIlNlcnZlciBJUDogJXMiICUgc2VsZi5zZXJ2ZXJfaXAp
CisKKyAgICAgICAgc2VsZi50aHJlYWQgPSBMb2dnaW5nVGhyZWFkKHNlbGYubG9nLCB0aHJlYWRz
b2NrLCBsb2dnZXIpCisgICAgICAgIHNlbGYudGhyZWFkLnN0YXJ0KCkKKyAgICAgICAgaWYgbm90
IHNlbGYudGhyZWFkLmNvbm5lY3Rpb25fZXN0YWJsaXNoZWQud2FpdChzZWxmLmJvb3R0aW1lKToK
KyAgICAgICAgICAgIGxvZ2dlci5lcnJvcigiRGlkbid0IHJlY2VpdmUgYSBjb25zb2xlIGNvbm5l
Y3Rpb24gZnJvbSBxZW11LiAiCisgICAgICAgICAgICAgICAgICAgICAgICAgIkhlcmUgaXMgdGhl
IHFlbXUgY29tbWFuZCBsaW5lIHVzZWQ6XG4lc1xuYW5kICIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAib3V0cHV0IGZyb20gcnVucWVtdTpcbiVzIiAlIChjbWRsaW5lLCBvdXQpKQorICAgICAg
ICAgICAgc2VsZi5zdG9wX3RocmVhZCgpCisgICAgICAgICAgICByZXR1cm4gRmFsc2UKKworICAg
ICAgICBsb2dnZXIuaW5mbygiT3V0cHV0IGZyb20gcnVucWVtdTpcbiVzIiwgb3V0KQorICAgICAg
ICBsb2dnZXIuaW5mbygiV2FpdGluZyBhdCBtb3N0ICVkIHNlY29uZHMgZm9yIGxvZ2luIGJhbm5l
ciIgJSBzZWxmLmJvb3R0aW1lKQorICAgICAgICBlbmR0aW1lID0gdGltZS50aW1lKCkgKyBzZWxm
LmJvb3R0aW1lCisgICAgICAgIHNvY2tsaXN0ID0gW3NlbGYuc2VydmVyX3NvY2tldF0KKyAgICAg
ICAgcmVhY2hlZGxvZ2luID0gRmFsc2UKKyAgICAgICAgc3RvcHJlYWQgPSBGYWxzZQorICAgICAg
ICBxZW11c29jayA9IE5vbmUKKyAgICAgICAgYm9vdGxvZyA9ICcnCisgICAgICAgIGRhdGEgPSBi
JycKKyAgICAgICAgd2hpbGUgdGltZS50aW1lKCkgPCBlbmR0aW1lIGFuZCBub3Qgc3RvcHJlYWQ6
CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAgc3JlYWQsIHN3cml0ZSwgc2Vycm9y
ID0gc2VsZWN0LnNlbGVjdChzb2NrbGlzdCwgW10sIFtdLCA1KQorICAgICAgICAgICAgZXhjZXB0
IEludGVycnVwdGVkRXJyb3I6CisgICAgICAgICAgICAgICAgY29udGludWUKKyAgICAgICAgICAg
IGZvciBzb2NrIGluIHNyZWFkOgorICAgICAgICAgICAgICAgIGlmIHNvY2sgaXMgc2VsZi5zZXJ2
ZXJfc29ja2V0OgorICAgICAgICAgICAgICAgICAgICBxZW11c29jaywgYWRkciA9IHNlbGYuc2Vy
dmVyX3NvY2tldC5hY2NlcHQoKQorICAgICAgICAgICAgICAgICAgICBxZW11c29jay5zZXRibG9j
a2luZygwKQorICAgICAgICAgICAgICAgICAgICBzb2NrbGlzdC5hcHBlbmQocWVtdXNvY2spCisg
ICAgICAgICAgICAgICAgICAgIHNvY2tsaXN0LnJlbW92ZShzZWxmLnNlcnZlcl9zb2NrZXQpCisg
ICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJDb25uZWN0aW9uIGZyb20gJXM6JXMiICUg
YWRkcikKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICBkYXRhID0g
ZGF0YSArIHNvY2sucmVjdigxMDI0KQorICAgICAgICAgICAgICAgICAgICBpZiBkYXRhOgorICAg
ICAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRh
dGEgPSBkYXRhLmRlY29kZSgidXRmLTgiLCBlcnJvcnM9InN1cnJvZ2F0ZWVzY2FwZSIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYm9vdGxvZyArPSBkYXRhCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZGF0YSA9IGInJworICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJl
LnNlYXJjaCgiLiogbG9naW46IiwgYm9vdGxvZyk6CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNlbGYuc2VydmVyX3NvY2tldCA9IHFlbXVzb2NrCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHN0b3ByZWFkID0gVHJ1ZQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZWFjaGVkbG9naW4gPSBUcnVlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGxvZ2dlci5pbmZvKCJSZWFjaGVkIGxvZ2luIGJhbm5lciIpCisgICAgICAgICAgICAgICAgICAg
ICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAg
ICAgICAgICBzb2NrbGlzdC5yZW1vdmUoc29jaykKKyAgICAgICAgICAgICAgICAgICAgICAgIHNv
Y2suY2xvc2UoKQorICAgICAgICAgICAgICAgICAgICAgICAgc3RvcHJlYWQgPSBUcnVlCisKKyAg
ICAgICAgaWYgbm90IHJlYWNoZWRsb2dpbjoKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJUYXJn
ZXQgZGlkbid0IHJlYWNoZWQgbG9naW4gYm9vdCBpbiAlZCBzZWNvbmRzIiAlIHNlbGYuYm9vdHRp
bWUpCisgICAgICAgICAgICBsaW5lcyA9ICJcbiIuam9pbihib290bG9nLnNwbGl0bGluZXMoKVst
MjU6XSkKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJMYXN0IDI1IGxpbmVzIG9mIHRleHQ6XG4l
cyIgJSBsaW5lcykKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJDaGVjayBmdWxsIGJvb3QgbG9n
OiAlcyIgJSBzZWxmLmxvZ2ZpbGUpCisgICAgICAgICAgICBzZWxmLl9kdW1wX2hvc3QoKQorICAg
ICAgICAgICAgc2VsZi5zdG9wKCkKKyAgICAgICAgICAgIHJldHVybiBGYWxzZQorCisgICAgICAg
ICMgSWYgd2UgYXJlIG5vdCBhYmxlIHRvIGxvZ2luIHRoZSB0ZXN0cyBjYW4gY29udGludWUKKyAg
ICAgICAgdHJ5OgorICAgICAgICAgICAgKHN0YXR1cywgb3V0cHV0KSA9IHNlbGYucnVuX3Nlcmlh
bCgicm9vdFxuIiwgcmF3PVRydWUpCisgICAgICAgICAgICBpZiByZS5zZWFyY2goInJvb3RAW2Et
ekEtWjAtOVwtXSs6fiMiLCBvdXRwdXQpOgorICAgICAgICAgICAgICAgIHNlbGYubG9nZ2VkID0g
VHJ1ZQorICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJMb2dnZWQgYXMgcm9vdCBpbiBzZXJp
YWwgY29uc29sZSIpCisgICAgICAgICAgICAgICAgaWYgbmV0Y29uZjoKKyAgICAgICAgICAgICAg
ICAgICAgIyBjb25maWd1cmUgZ3Vlc3QgbmV0d29ya2luZworICAgICAgICAgICAgICAgICAgICBj
bWQgPSAiaWZjb25maWcgZXRoMCAlcyBuZXRtYXNrICVzIHVwXG4iICUgKHNlbGYuaXAsIHNlbGYu
bmV0bWFzaykKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gc2VsZi5ydW5fc2VyaWFsKGNt
ZCwgcmF3PVRydWUpWzFdCisgICAgICAgICAgICAgICAgICAgIGlmIHJlLnNlYXJjaCgicm9vdEBb
YS16QS1aMC05XC1dKzp+IyIsIG91dHB1dCk6CisgICAgICAgICAgICAgICAgICAgICAgICBsb2dn
ZXIuaW5mbygiY29uZmlndXJlZCBpcCBhZGRyZXNzICVzIiwgc2VsZi5pcCkKKyAgICAgICAgICAg
ICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJDb3Vs
ZG4ndCBjb25maWd1cmUgZ3Vlc3QgbmV0d29ya2luZyIpCisgICAgICAgICAgICAgICAgZWxzZToK
KyAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkNvdWxkbid0IGxvZ2luIGludG8gc2Vy
aWFsIGNvbnNvbGUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgYXMgcm9vdCB1
c2luZyBibGFuayBwYXNzd29yZCIpCisgICAgICAgIGV4Y2VwdDoKKyAgICAgICAgICAgIGxvZ2dl
ci5pbmZvKCJTZXJpYWwgY29uc29sZSBmYWlsZWQgd2hpbGUgdHJ5aW5nIHRvIGxvZ2luIikKKyAg
ICAgICAgcmV0dXJuIFRydWUKIAogICAgIGRlZiBzdG9wKHNlbGYpOgogICAgICAgICBzZWxmLnN0
b3BfdGhyZWFkKCkKQEAgLTM4MCw1NSArMzg3LDMwIEBAIGNsYXNzIFFlbXVSdW5uZXI6CiAgICAg
ZGVmIGlzX2FsaXZlKHNlbGYpOgogICAgICAgICBpZiBub3Qgc2VsZi5ydW5xZW11OgogICAgICAg
ICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgIHFlbXVfY2hpbGQgPSBzZWxmLmZpbmRfY2hpbGQo
c3RyKHNlbGYucnVucWVtdS5waWQpKQorICAgICAgICBxZW11X2NoaWxkID0gc2VsZi5maW5kX2No
aWxkKCkKICAgICAgICAgaWYgcWVtdV9jaGlsZDoKLSAgICAgICAgICAgIHNlbGYucWVtdXBpZCA9
IHFlbXVfY2hpbGRbMF0KLSAgICAgICAgICAgIGlmIG9zLnBhdGguZXhpc3RzKCIvcHJvYy8iICsg
c3RyKHNlbGYucWVtdXBpZCkpOgorICAgICAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoIi9wcm9j
LyIgKyBzdHIocWVtdV9jaGlsZCkpOgorICAgICAgICAgICAgICAgIHNlbGYucWVtdXBpZCA9IHFl
bXVfY2hpbGQKICAgICAgICAgICAgICAgICByZXR1cm4gVHJ1ZQogICAgICAgICByZXR1cm4gRmFs
c2UKIAotICAgIGRlZiBmaW5kX2NoaWxkKHNlbGYscGFyZW50X3BpZCk6Ci0gICAgICAgICMKLSAg
ICAgICAgIyBXYWxrIHRoZSBwcm9jZXNzIHRyZWUgZnJvbSB0aGUgcHJvY2VzcyBzcGVjaWZpZWQg
bG9va2luZyBmb3IgYSBxZW11LXN5c3RlbS4gUmV0dXJuIGl0cyBbcGlkJ2NtZF0KLSAgICAgICAg
IwotICAgICAgICBwcyA9IHN1YnByb2Nlc3MuUG9wZW4oWydwcycsICdheHd3JywgJy1vJywgJ3Bp
ZCxwcGlkLGNvbW1hbmQnXSwgc3Rkb3V0PXN1YnByb2Nlc3MuUElQRSkuY29tbXVuaWNhdGUoKVsw
XQorICAgIGRlZiBmaW5kX2NoaWxkKHNlbGYpOgorICAgICAgICBhcmdzID0gJ3BzIGF4d3doIC1v
IHBpZCxjb21tYW5kIHwgZ3JlcCBxZW11cnVubmVyX3BpZD0nICsgc3RyKG9zLmdldHBpZCgpKQor
ICAgICAgICBwcyA9IHN1YnByb2Nlc3MuUG9wZW4oYXJncywgc2hlbGw9VHJ1ZSwgc3Rkb3V0PXN1
YnByb2Nlc3MuUElQRSkuY29tbXVuaWNhdGUoKVswXQogICAgICAgICBwcm9jZXNzZXMgPSBwcy5k
ZWNvZGUoInV0Zi04Iikuc3BsaXQoJ1xuJykKLSAgICAgICAgbmZpZWxkcyA9IGxlbihwcm9jZXNz
ZXNbMF0uc3BsaXQoKSkgLSAxCi0gICAgICAgIHBpZHMgPSB7fQotICAgICAgICBjb21tYW5kcyA9
IHt9Ci0gICAgICAgIGZvciByb3cgaW4gcHJvY2Vzc2VzWzE6XToKLSAgICAgICAgICAgIGRhdGEg
PSByb3cuc3BsaXQoTm9uZSwgbmZpZWxkcykKLSAgICAgICAgICAgIGlmIGxlbihkYXRhKSAhPSAz
OgotICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBkYXRhWzFdIG5vdCBp
biBwaWRzOgotICAgICAgICAgICAgICAgIHBpZHNbZGF0YVsxXV0gPSBbXQotCi0gICAgICAgICAg
ICBwaWRzW2RhdGFbMV1dLmFwcGVuZChkYXRhWzBdKQotICAgICAgICAgICAgY29tbWFuZHNbZGF0
YVswXV0gPSBkYXRhWzJdCi0KLSAgICAgICAgaWYgcGFyZW50X3BpZCBub3QgaW4gcGlkczoKLSAg
ICAgICAgICAgIHJldHVybiBbXQotCi0gICAgICAgIHBhcmVudHMgPSBbXQotICAgICAgICBuZXdw
YXJlbnRzID0gcGlkc1twYXJlbnRfcGlkXQotICAgICAgICB3aGlsZSBuZXdwYXJlbnRzOgotICAg
ICAgICAgICAgbmV4dCA9IFtdCi0gICAgICAgICAgICBmb3IgcCBpbiBuZXdwYXJlbnRzOgotICAg
ICAgICAgICAgICAgIGlmIHAgaW4gcGlkczoKLSAgICAgICAgICAgICAgICAgICAgZm9yIG4gaW4g
cGlkc1twXToKLSAgICAgICAgICAgICAgICAgICAgICAgIGlmIG4gbm90IGluIHBhcmVudHMgYW5k
IG4gbm90IGluIG5leHQ6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV4dC5hcHBlbmQo
bikKLSAgICAgICAgICAgICAgICBpZiBwIG5vdCBpbiBwYXJlbnRzOgotICAgICAgICAgICAgICAg
ICAgICBwYXJlbnRzLmFwcGVuZChwKQotICAgICAgICAgICAgICAgICAgICBuZXdwYXJlbnRzID0g
bmV4dAotICAgICAgICAjcHJpbnQoIkNoaWxkcmVuIG1hdGNoaW5nICVzOiIgJSBzdHIocGFyZW50
cykpCi0gICAgICAgIGZvciBwIGluIHBhcmVudHM6Ci0gICAgICAgICAgICAjIE5lZWQgdG8gYmUg
Y2FyZWZ1bCBoZXJlIHNpbmNlIHJ1bnFlbXUgcnVucyAibGRkIHFlbXUtc3lzdGVtLXh4eHgiCi0g
ICAgICAgICAgICAjIEFsc28sIG9sZCB2ZXJzaW9ucyBvZiBsZGQgKDIuMTEpIHJ1biAiTERfWFhY
WCBxZW11LXN5c3RlbS14eHh4IgotICAgICAgICAgICAgYmFzZWNtZCA9IGNvbW1hbmRzW3BdLnNw
bGl0KClbMF0KLSAgICAgICAgICAgIGJhc2VjbWQgPSBvcy5wYXRoLmJhc2VuYW1lKGJhc2VjbWQp
Ci0gICAgICAgICAgICBpZiAicWVtdS1zeXN0ZW0iIGluIGJhc2VjbWQgYW5kICItc2VyaWFsIHRj
cCIgaW4gY29tbWFuZHNbcF06Ci0gICAgICAgICAgICAgICAgcmV0dXJuIFtpbnQocCksY29tbWFu
ZHNbcF1dCisKKyAgICAgICAgZm9yIHJvdyBpbiBwcm9jZXNzZXM6CisgICAgICAgICAgICBpZiBs
ZW4ocm93KSA+PSAyOgorICAgICAgICAgICAgICAgIHNwbGl0dGVkID0gcm93LnNwbGl0KCkKKyAg
ICAgICAgICAgICAgICBwaWQgPSBzcGxpdHRlZFswXQorICAgICAgICAgICAgICAgIGZpcnN0YXJn
ID0gc3BsaXR0ZWRbMV0KKworICAgICAgICAgICAgICAgICMgYmV3YXJlIG9mIGFueSAvYmluL3No
LCBweXRobywgZ3JlcCwuLi4gZXRjIGNvbW1hbmRzIHRoYXQgbWF5IGFsc28gY29udGFpbgorICAg
ICAgICAgICAgICAgICMgInFlbXUtc3lzdGVtIiBzb21ld2hlcmUgaW4gYXJndW1lbnRzLCB3ZSBh
cmUgb25seSBpbnRlcnJlc3RlZCBpbiBxZW11LXN5c3RlbQorICAgICAgICAgICAgICAgICMgaW4g
dGhlIGZpcnN0IGFyZ3VtZW50CisgICAgICAgICAgICAgICAgaWYgInFlbXUtc3lzdGVtIiBpbiBm
aXJzdGFyZzoKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludChwaWQpCisgICAgICAgIHJl
dHVybiAwCiAKICAgICBkZWYgcnVuX3NlcmlhbChzZWxmLCBjb21tYW5kLCByYXc9RmFsc2UsIHRp
bWVvdXQ9NSk6CiAgICAgICAgICMgV2UgYXNzdW1lIHRhcmdldCBzeXN0ZW0gaGF2ZSBlY2hvIHRv
IGdldCBjb21tYW5kIHN0YXR1cwotLSAKMi43LjQKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>3986</attachid>
            <date>2017-09-06 13:41:07 +0000</date>
            <delta_ts>2017-09-06 13:41:07 +0000</delta_ts>
            <desc>patch using QEMU pidfile</desc>
            <filename>0001-qemurunner.py-refactor-searching-for-QEMU-PID.patch</filename>
            <type>text/plain</type>
            <size>17321</size>
            <attacher name="Juro Bystricky">juro.bystricky</attacher>
            
              <data encoding="base64">RnJvbSA2YjYzNWY5Nzc3ODAxM2ViY2EyM2M0MjI5NTcxMjc5MjE5MGZlNjViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKdXJvIEJ5c3RyaWNreSA8anVyby5ieXN0cmlja3lAaW50ZWwu
Y29tPgpEYXRlOiBTdW4sIDMgU2VwIDIwMTcgMTE6MDQ6MjcgLTA3MDAKU3ViamVjdDogW1BBVENI
XSBxZW11cnVubmVyLnB5OiByZWZhY3RvciBzZWFyY2hpbmcgZm9yIFFFTVUgUElECgpBc2sgUUVN
VSB0byBzdG9yZSB0aGUgUUVNVSBwcm9jZXNzIFBJRCBpbiBhIGZpbGUsIHRoaXMgd2F5IHdlIGRv
bid0CmhhdmUgdG8gcGFyc2UgcnVubmluZyBwcm9jZXNzZXMgYW5kIGFuYWx5emUgZGVzY2VuZGVu
dHMuClRoaXMgaXMgZG9uZSB2aWEgUUVNVSBjb21tYW5kIGxpbmUgYXJndW1lbnQgIi1waWRmaWxl
Ii4KCltZT0NUTyAjMTIwMDFdCgpTaWduZWQtb2ZmLWJ5OiBKdXJvIEJ5c3RyaWNreSA8anVyby5i
eXN0cmlja3lAaW50ZWwuY29tPgotLS0KIG1ldGEvbGliL29lcWEvdXRpbHMvcWVtdXJ1bm5lci5w
eSB8IDMwMyArKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQogMSBmaWxlIGNo
YW5nZWQsIDEzNiBpbnNlcnRpb25zKCspLCAxNjcgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
bWV0YS9saWIvb2VxYS91dGlscy9xZW11cnVubmVyLnB5IGIvbWV0YS9saWIvb2VxYS91dGlscy9x
ZW11cnVubmVyLnB5CmluZGV4IDU0MzEyZmIuLmMyOGMyY2UgMTAwNjQ0Ci0tLSBhL21ldGEvbGli
L29lcWEvdXRpbHMvcWVtdXJ1bm5lci5weQorKysgYi9tZXRhL2xpYi9vZXFhL3V0aWxzL3FlbXVy
dW5uZXIucHkKQEAgLTU2LDYgKzU2LDcgQEAgY2xhc3MgUWVtdVJ1bm5lcjoKICAgICAgICAgc2Vs
Zi51c2Vfa3ZtID0gdXNlX2t2bQogCiAgICAgICAgIHNlbGYucnVucWVtdXRpbWUgPSAxMjAKKyAg
ICAgICAgc2VsZi5xZW11X3BpZGZpbGUgPSAncGlkZmlsZV8nK3N0cihvcy5nZXRwaWQoKSkKICAg
ICAgICAgc2VsZi5ob3N0X2R1bXBlciA9IEhvc3REdW1wZXIoZHVtcF9ob3N0X2NtZHMsIGR1bXBf
ZGlyKQogCiAgICAgZGVmIGNyZWF0ZV9zb2NrZXQoc2VsZik6CkBAIC0xNDMsNyArMTQ0LDExIEBA
IGNsYXNzIFFlbXVSdW5uZXI6CiAgICAgICAgIGlmIGV4dHJhX2Jvb3RwYXJhbXM6CiAgICAgICAg
ICAgICBib290cGFyYW1zID0gYm9vdHBhcmFtcyArICcgJyArIGV4dHJhX2Jvb3RwYXJhbXMKIAot
ICAgICAgICBzZWxmLnFlbXVwYXJhbXMgPSAnYm9vdHBhcmFtcz0iezB9IiBxZW11cGFyYW1zPSIt
c2VyaWFsIHRjcDoxMjcuMC4wLjE6ezF9IicuZm9ybWF0KGJvb3RwYXJhbXMsIHRocmVhZHBvcnQp
CisgICAgICAgICMgQXNrIFFFTVUgdG8gc3RvcmUgdGhlIFFFTVUgcHJvY2VzcyBQSUQgaW4gZmls
ZSwgdGhpcyB3YXkgd2UgZG9uJ3QgaGF2ZSB0byBwYXJzZSBydW5uaW5nIHByb2Nlc3NlcworICAg
ICAgICAjIGFuZCBhbmFseXplIGRlc2NlbmRlbnRzIGluIG9yZGVyIHRvIGRldGVybWluZSBpdC4K
KyAgICAgICAgaWYgb3MucGF0aC5leGlzdHMoc2VsZi5xZW11X3BpZGZpbGUpOgorICAgICAgICAg
ICAgb3MucmVtb3ZlKHNlbGYucWVtdV9waWRmaWxlKQorICAgICAgICBzZWxmLnFlbXVwYXJhbXMg
PSAnYm9vdHBhcmFtcz0iezB9IiBxZW11cGFyYW1zPSItc2VyaWFsIHRjcDoxMjcuMC4wLjE6ezF9
IC1waWRmaWxlIHsyfSInLmZvcm1hdChib290cGFyYW1zLCB0aHJlYWRwb3J0LCBzZWxmLnFlbXVf
cGlkZmlsZSkKICAgICAgICAgaWYgcWVtdXBhcmFtczoKICAgICAgICAgICAgIHNlbGYucWVtdXBh
cmFtcyA9IHNlbGYucWVtdXBhcmFtc1s6LTFdICsgIiAiICsgcWVtdXBhcmFtcyArICIgIiArICdc
IicKIApAQCAtMTk5LDEyNSArMjA0LDE0IEBAIGNsYXNzIFFlbXVSdW5uZXI6CiAgICAgICAgICAg
ICAgICAgICAgIHNlbGYuc3RvcCgpCiAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJP
dXRwdXQgZnJvbSBydW5xZW11OlxuJXMiICUgc2VsZi5nZXRPdXRwdXQob3V0cHV0KSkKICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0gICAgICAgICAgICB0aW1lLnNsZWVwKDEpCisg
ICAgICAgICAgICB0aW1lLnNsZWVwKDAuNSkKIAotICAgICAgICBvdXQgPSBzZWxmLmdldE91dHB1
dChvdXRwdXQpCi0gICAgICAgIG5ldGNvbmYgPSBGYWxzZSAjIG5ldHdvcmsgY29uZmlndXJhdGlv
biBpcyBub3QgcmVxdWlyZWQgYnkgZGVmYXVsdAotICAgICAgICBpZiBzZWxmLmlzX2FsaXZlKCk6
Ci0gICAgICAgICAgICBsb2dnZXIuaW5mbygicWVtdSBzdGFydGVkIGluICVzIHNlY29uZHMgLSBx
ZW11IHByb2NjZXMgcGlkIGlzICVzIiAlICh0aW1lLnRpbWUoKSAtIChlbmR0aW1lIC0gc2VsZi5y
dW5xZW11dGltZSksIHNlbGYucWVtdXBpZCkpCi0gICAgICAgICAgICBpZiBnZXRfaXA6Ci0gICAg
ICAgICAgICAgICAgY21kbGluZSA9ICcnCi0gICAgICAgICAgICAgICAgd2l0aCBvcGVuKCcvcHJv
Yy8lcy9jbWRsaW5lJyAlIHNlbGYucWVtdXBpZCkgYXMgcDoKLSAgICAgICAgICAgICAgICAgICAg
Y21kbGluZSA9IHAucmVhZCgpCi0gICAgICAgICAgICAgICAgICAgICMgSXQgaXMgbmVlZGVkIHRv
IHNhbml0aXplIHRoZSBkYXRhIHJlY2VpdmVkCi0gICAgICAgICAgICAgICAgICAgICMgYmVjYXVz
ZSBpcyBwb3NzaWJsZSB0byBoYXZlIGNvbnRyb2wgY2hhcmFjdGVycwotICAgICAgICAgICAgICAg
ICAgICBjbWRsaW5lID0gcmVfY29udHJvbF9jaGFyLnN1YignJywgY21kbGluZSkKLSAgICAgICAg
ICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAgIGlwcyA9IHJlLmZpbmRhbGwoIigoPzpb
MC05XXsxLDN9XC4pezN9WzAtOV17MSwzfSkiLCBjbWRsaW5lLnNwbGl0KCJpcD0iKVsxXSkKLSAg
ICAgICAgICAgICAgICAgICAgc2VsZi5pcCA9IGlwc1swXQotICAgICAgICAgICAgICAgICAgICBz
ZWxmLnNlcnZlcl9pcCA9IGlwc1sxXQotICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygi
cWVtdSBjbWRsaW5lIHVzZWQ6XG57fSIuZm9ybWF0KGNtZGxpbmUpKQotICAgICAgICAgICAgICAg
IGV4Y2VwdCAoSW5kZXhFcnJvciwgVmFsdWVFcnJvcik6Ci0gICAgICAgICAgICAgICAgICAgICMg
VHJ5IHRvIGdldCBuZXR3b3JrIGNvbmZpZ3VyYXRpb24gZnJvbSBydW5xZW11IG91dHB1dAotICAg
ICAgICAgICAgICAgICAgICBtYXRjaCA9IHJlLm1hdGNoKCcuKk5ldHdvcmsgY29uZmlndXJhdGlv
bjogKFswLTkuXSspOjooWzAtOS5dKyk6KFswLTkuXSspJC4qJywKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBvdXQsIHJlLk1VTFRJTElORXxyZS5ET1RBTEwpCi0gICAgICAg
ICAgICAgICAgICAgIGlmIG1hdGNoOgotICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5pcCwg
c2VsZi5zZXJ2ZXJfaXAsIHNlbGYubmV0bWFzayA9IG1hdGNoLmdyb3VwcygpCi0gICAgICAgICAg
ICAgICAgICAgICAgICAjIG5ldHdvcmsgY29uZmlndXJhdGlvbiBpcyByZXF1aXJlZCBhcyB3ZSBj
b3VsZG4ndCBnZXQgaXQKLSAgICAgICAgICAgICAgICAgICAgICAgICMgZnJvbSB0aGUgcnVucWVt
dSBjb21tYW5kIGxpbmUsIHNvIHFlbXUgZG9lc24ndCBydW4ga2VybmVsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAjIGFuZCBndWVzdCBuZXR3b3JraW5nIGlzIG5vdCBjb25maWd1cmVkCi0gICAg
ICAgICAgICAgICAgICAgICAgICBuZXRjb25mID0gVHJ1ZQotICAgICAgICAgICAgICAgICAgICBl
bHNlOgotICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCJDb3VsZG4ndCBnZXQg
aXAgZnJvbSBxZW11IGNvbW1hbmQgbGluZSBhbmQgcnVucWVtdSBvdXRwdXQhICIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiSGVyZSBpcyB0aGUgcWVtdSBjb21tYW5kIGxp
bmUgdXNlZDpcbiVzXG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFu
ZCBvdXRwdXQgZnJvbSBydW5xZW11OlxuJXMiICUgKGNtZGxpbmUsIG91dCkpCi0gICAgICAgICAg
ICAgICAgICAgICAgICBzZWxmLl9kdW1wX2hvc3QoKQotICAgICAgICAgICAgICAgICAgICAgICAg
c2VsZi5zdG9wKCkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAg
ICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlRhcmdldCBJUDogJXMiICUgc2VsZi5pcCkKLSAgICAg
ICAgICAgICAgICBsb2dnZXIuaW5mbygiU2VydmVyIElQOiAlcyIgJSBzZWxmLnNlcnZlcl9pcCkK
LQotICAgICAgICAgICAgc2VsZi50aHJlYWQgPSBMb2dnaW5nVGhyZWFkKHNlbGYubG9nLCB0aHJl
YWRzb2NrLCBsb2dnZXIpCi0gICAgICAgICAgICBzZWxmLnRocmVhZC5zdGFydCgpCi0gICAgICAg
ICAgICBpZiBub3Qgc2VsZi50aHJlYWQuY29ubmVjdGlvbl9lc3RhYmxpc2hlZC53YWl0KHNlbGYu
Ym9vdHRpbWUpOgotICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcigiRGlkbid0IHJlY2VpdmUg
YSBjb25zb2xlIGNvbm5lY3Rpb24gZnJvbSBxZW11LiAiCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJIZXJlIGlzIHRoZSBxZW11IGNvbW1hbmQgbGluZSB1c2VkOlxuJXNcbmFuZCAiCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICJvdXRwdXQgZnJvbSBydW5xZW11OlxuJXMiICUg
KGNtZGxpbmUsIG91dCkpCi0gICAgICAgICAgICAgICAgc2VsZi5zdG9wX3RocmVhZCgpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIEZhbHNlCi0KLSAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJPdXRw
dXQgZnJvbSBydW5xZW11OlxuJXMiLCBvdXQpCi0gICAgICAgICAgICBsb2dnZXIuaW5mbygiV2Fp
dGluZyBhdCBtb3N0ICVkIHNlY29uZHMgZm9yIGxvZ2luIGJhbm5lciIgJSBzZWxmLmJvb3R0aW1l
KQotICAgICAgICAgICAgZW5kdGltZSA9IHRpbWUudGltZSgpICsgc2VsZi5ib290dGltZQotICAg
ICAgICAgICAgc29ja2xpc3QgPSBbc2VsZi5zZXJ2ZXJfc29ja2V0XQotICAgICAgICAgICAgcmVh
Y2hlZGxvZ2luID0gRmFsc2UKLSAgICAgICAgICAgIHN0b3ByZWFkID0gRmFsc2UKLSAgICAgICAg
ICAgIHFlbXVzb2NrID0gTm9uZQotICAgICAgICAgICAgYm9vdGxvZyA9ICcnCi0gICAgICAgICAg
ICBkYXRhID0gYicnCi0gICAgICAgICAgICB3aGlsZSB0aW1lLnRpbWUoKSA8IGVuZHRpbWUgYW5k
IG5vdCBzdG9wcmVhZDoKLSAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgICAg
IHNyZWFkLCBzd3JpdGUsIHNlcnJvciA9IHNlbGVjdC5zZWxlY3Qoc29ja2xpc3QsIFtdLCBbXSwg
NSkKLSAgICAgICAgICAgICAgICBleGNlcHQgSW50ZXJydXB0ZWRFcnJvcjoKLSAgICAgICAgICAg
ICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgICAgICBmb3Igc29jayBpbiBzcmVhZDoKLSAg
ICAgICAgICAgICAgICAgICAgaWYgc29jayBpcyBzZWxmLnNlcnZlcl9zb2NrZXQ6Ci0gICAgICAg
ICAgICAgICAgICAgICAgICBxZW11c29jaywgYWRkciA9IHNlbGYuc2VydmVyX3NvY2tldC5hY2Nl
cHQoKQotICAgICAgICAgICAgICAgICAgICAgICAgcWVtdXNvY2suc2V0YmxvY2tpbmcoMCkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHNvY2tsaXN0LmFwcGVuZChxZW11c29jaykKLSAgICAgICAg
ICAgICAgICAgICAgICAgIHNvY2tsaXN0LnJlbW92ZShzZWxmLnNlcnZlcl9zb2NrZXQpCi0gICAg
ICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiQ29ubmVjdGlvbiBmcm9tICVzOiVzIiAl
IGFkZHIpCi0gICAgICAgICAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgICAgICAg
ICBkYXRhID0gZGF0YSArIHNvY2sucmVjdigxMDI0KQotICAgICAgICAgICAgICAgICAgICAgICAg
aWYgZGF0YToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnk6Ci0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLmRlY29kZSgidXRmLTgiLCBlcnJvcnM9InN1
cnJvZ2F0ZWVzY2FwZSIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb3Rsb2cg
Kz0gZGF0YQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhID0gYicnCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHJlLnNlYXJjaCgiLiogbG9naW46IiwgYm9v
dGxvZyk6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLnNlcnZlcl9z
b2NrZXQgPSBxZW11c29jawotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Rv
cHJlYWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWFjaGVk
bG9naW4gPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIu
aW5mbygiUmVhY2hlZCBsb2dpbiBiYW5uZXIiKQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGV4Y2VwdCBVbmljb2RlRGVjb2RlRXJyb3I6Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCi0gICAgICAgICAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHNvY2tsaXN0LnJlbW92ZShzb2NrKQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNvY2suY2xvc2UoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3By
ZWFkID0gVHJ1ZQotCi0gICAgICAgICAgICBpZiBub3QgcmVhY2hlZGxvZ2luOgotICAgICAgICAg
ICAgICAgIGxvZ2dlci5pbmZvKCJUYXJnZXQgZGlkbid0IHJlYWNoZWQgbG9naW4gYm9vdCBpbiAl
ZCBzZWNvbmRzIiAlIHNlbGYuYm9vdHRpbWUpCi0gICAgICAgICAgICAgICAgbGluZXMgPSAiXG4i
LmpvaW4oYm9vdGxvZy5zcGxpdGxpbmVzKClbLTI1Ol0pCi0gICAgICAgICAgICAgICAgbG9nZ2Vy
LmluZm8oIkxhc3QgMjUgbGluZXMgb2YgdGV4dDpcbiVzIiAlIGxpbmVzKQotICAgICAgICAgICAg
ICAgIGxvZ2dlci5pbmZvKCJDaGVjayBmdWxsIGJvb3QgbG9nOiAlcyIgJSBzZWxmLmxvZ2ZpbGUp
Ci0gICAgICAgICAgICAgICAgc2VsZi5fZHVtcF9ob3N0KCkKLSAgICAgICAgICAgICAgICBzZWxm
LnN0b3AoKQotICAgICAgICAgICAgICAgIHJldHVybiBGYWxzZQotCi0gICAgICAgICAgICAjIElm
IHdlIGFyZSBub3QgYWJsZSB0byBsb2dpbiB0aGUgdGVzdHMgY2FuIGNvbnRpbnVlCi0gICAgICAg
ICAgICB0cnk6Ci0gICAgICAgICAgICAgICAgKHN0YXR1cywgb3V0cHV0KSA9IHNlbGYucnVuX3Nl
cmlhbCgicm9vdFxuIiwgcmF3PVRydWUpCi0gICAgICAgICAgICAgICAgaWYgcmUuc2VhcmNoKCJy
b290QFthLXpBLVowLTlcLV0rOn4jIiwgb3V0cHV0KToKLSAgICAgICAgICAgICAgICAgICAgc2Vs
Zi5sb2dnZWQgPSBUcnVlCi0gICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJMb2dnZWQg
YXMgcm9vdCBpbiBzZXJpYWwgY29uc29sZSIpCi0gICAgICAgICAgICAgICAgICAgIGlmIG5ldGNv
bmY6Ci0gICAgICAgICAgICAgICAgICAgICAgICAjIGNvbmZpZ3VyZSBndWVzdCBuZXR3b3JraW5n
Ci0gICAgICAgICAgICAgICAgICAgICAgICBjbWQgPSAiaWZjb25maWcgZXRoMCAlcyBuZXRtYXNr
ICVzIHVwXG4iICUgKHNlbGYuaXAsIHNlbGYubmV0bWFzaykKLSAgICAgICAgICAgICAgICAgICAg
ICAgIG91dHB1dCA9IHNlbGYucnVuX3NlcmlhbChjbWQsIHJhdz1UcnVlKVsxXQotICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgcmUuc2VhcmNoKCJyb290QFthLXpBLVowLTlcLV0rOn4jIiwgb3V0
cHV0KToKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiY29uZmlndXJl
ZCBpcCBhZGRyZXNzICVzIiwgc2VsZi5pcCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGVsc2U6
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkNvdWxkbid0IGNvbmZp
Z3VyZSBndWVzdCBuZXR3b3JraW5nIikKLSAgICAgICAgICAgICAgICBlbHNlOgotICAgICAgICAg
ICAgICAgICAgICBsb2dnZXIuaW5mbygiQ291bGRuJ3QgbG9naW4gaW50byBzZXJpYWwgY29uc29s
ZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIGFzIHJvb3QgdXNpbmcgYmxhbmsgcGFz
c3dvcmQiKQotICAgICAgICAgICAgZXhjZXB0OgotICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZv
KCJTZXJpYWwgY29uc29sZSBmYWlsZWQgd2hpbGUgdHJ5aW5nIHRvIGxvZ2luIikKLQotICAgICAg
ICBlbHNlOgorICAgICAgICBpZiBub3Qgc2VsZi5pc19hbGl2ZSgpOgogICAgICAgICAgICAgbG9n
Z2VyLmVycm9yKCJRZW11IHBpZCBkaWRuJ3QgYXBwZWFyIGluICVzIHNlY29uZHMiICUgc2VsZi5y
dW5xZW11dGltZSkKKyAgICAgICAgICAgICMgRHVtcCBhbGwgcHJvY2Vzc2VzIHRvIGhlbHAgdXMg
dG8gZmlndXJlIG91dCB3aGF0IGlzIGdvaW5nIG9uLi4uCisgICAgICAgICAgICBwcyA9IHN1YnBy
b2Nlc3MuUG9wZW4oWydwcycsICdheHd3JywgJy1vJywgJ3BpZCxwcGlkLGNvbW1hbmQgJ10sIHN0
ZG91dD1zdWJwcm9jZXNzLlBJUEUpLmNvbW11bmljYXRlKClbMF0KKyAgICAgICAgICAgIHByb2Nl
c3NlcyA9IHBzLmRlY29kZSgidXRmLTgiKQorICAgICAgICAgICAgbG9nZ2VyLmluZm8oIlJ1bm5p
bmcgcHJvY2Vzc2VzOlxuJXMiICUgcHJvY2Vzc2VzKQogICAgICAgICAgICAgc2VsZi5fZHVtcF9o
b3N0KCkKICAgICAgICAgICAgIHNlbGYuc3RvcCgpCiAgICAgICAgICAgICBvcCA9IHNlbGYuZ2V0
T3V0cHV0KG91dHB1dCkKQEAgLTMyNyw3ICsyMjEsMTIxIEBAIGNsYXNzIFFlbXVSdW5uZXI6CiAg
ICAgICAgICAgICAgICAgbG9nZ2VyLmVycm9yKCJObyBvdXRwdXQgZnJvbSBydW5xZW11LlxuIikK
ICAgICAgICAgICAgIHJldHVybiBGYWxzZQogCi0gICAgICAgIHJldHVybiBzZWxmLmlzX2FsaXZl
KCkKKyAgICAgICAgIyBXZSBhcmUgYWxpdmU6IHFlbXUgaXMgcnVubmluZworICAgICAgICBvdXQg
PSBzZWxmLmdldE91dHB1dChvdXRwdXQpCisgICAgICAgIG5ldGNvbmYgPSBGYWxzZSAjIG5ldHdv
cmsgY29uZmlndXJhdGlvbiBpcyBub3QgcmVxdWlyZWQgYnkgZGVmYXVsdAorICAgICAgICBsb2dn
ZXIuaW5mbygicWVtdSBzdGFydGVkIGluICVzIHNlY29uZHMgLSBxZW11IHByb2NjZXMgcGlkIGlz
ICVzIiAlICh0aW1lLnRpbWUoKSAtIChlbmR0aW1lIC0gc2VsZi5ydW5xZW11dGltZSksIHNlbGYu
cWVtdXBpZCkpCisgICAgICAgIGlmIGdldF9pcDoKKyAgICAgICAgICAgIGNtZGxpbmUgPSAnJwor
ICAgICAgICAgICAgd2l0aCBvcGVuKCcvcHJvYy8lcy9jbWRsaW5lJyAlIHNlbGYucWVtdXBpZCkg
YXMgcDoKKyAgICAgICAgICAgICAgICBjbWRsaW5lID0gcC5yZWFkKCkKKyAgICAgICAgICAgICAg
ICAjIEl0IGlzIG5lZWRlZCB0byBzYW5pdGl6ZSB0aGUgZGF0YSByZWNlaXZlZAorICAgICAgICAg
ICAgICAgICMgYmVjYXVzZSBpcyBwb3NzaWJsZSB0byBoYXZlIGNvbnRyb2wgY2hhcmFjdGVycwor
ICAgICAgICAgICAgICAgIGNtZGxpbmUgPSByZV9jb250cm9sX2NoYXIuc3ViKCcgJywgY21kbGlu
ZSkKKyAgICAgICAgICAgIHRyeToKKyAgICAgICAgICAgICAgICBpcHMgPSByZS5maW5kYWxsKCIo
KD86WzAtOV17MSwzfVwuKXszfVswLTldezEsM30pIiwgY21kbGluZS5zcGxpdCgiaXA9IilbMV0p
CisgICAgICAgICAgICAgICAgc2VsZi5pcCA9IGlwc1swXQorICAgICAgICAgICAgICAgIHNlbGYu
c2VydmVyX2lwID0gaXBzWzFdCisgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oInFlbXUgY21k
bGluZSB1c2VkOlxue30iLmZvcm1hdChjbWRsaW5lKSkKKyAgICAgICAgICAgIGV4Y2VwdCAoSW5k
ZXhFcnJvciwgVmFsdWVFcnJvcik6CisgICAgICAgICAgICAgICAgIyBUcnkgdG8gZ2V0IG5ldHdv
cmsgY29uZmlndXJhdGlvbiBmcm9tIHJ1bnFlbXUgb3V0cHV0CisgICAgICAgICAgICAgICAgbWF0
Y2ggPSByZS5tYXRjaCgnLipOZXR3b3JrIGNvbmZpZ3VyYXRpb246IChbMC05Ll0rKTo6KFswLTku
XSspOihbMC05Ll0rKSQuKicsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdXQs
IHJlLk1VTFRJTElORXxyZS5ET1RBTEwpCisgICAgICAgICAgICAgICAgaWYgbWF0Y2g6CisgICAg
ICAgICAgICAgICAgICAgIHNlbGYuaXAsIHNlbGYuc2VydmVyX2lwLCBzZWxmLm5ldG1hc2sgPSBt
YXRjaC5ncm91cHMoKQorICAgICAgICAgICAgICAgICAgICAjIG5ldHdvcmsgY29uZmlndXJhdGlv
biBpcyByZXF1aXJlZCBhcyB3ZSBjb3VsZG4ndCBnZXQgaXQKKyAgICAgICAgICAgICAgICAgICAg
IyBmcm9tIHRoZSBydW5xZW11IGNvbW1hbmQgbGluZSwgc28gcWVtdSBkb2Vzbid0IHJ1biBrZXJu
ZWwKKyAgICAgICAgICAgICAgICAgICAgIyBhbmQgZ3Vlc3QgbmV0d29ya2luZyBpcyBub3QgY29u
ZmlndXJlZAorICAgICAgICAgICAgICAgICAgICBuZXRjb25mID0gVHJ1ZQorICAgICAgICAgICAg
ICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5lcnJvcigiQ291bGRuJ3QgZ2V0
IGlwIGZyb20gcWVtdSBjb21tYW5kIGxpbmUgYW5kIHJ1bnFlbXUgb3V0cHV0ISAiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiSGVyZSBpcyB0aGUgcWVtdSBjb21tYW5kIGxpbmUg
dXNlZDpcbiVzXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYW5kIG91dHB1
dCBmcm9tIHJ1bnFlbXU6XG4lcyIgJSAoY21kbGluZSwgb3V0KSkKKyAgICAgICAgICAgICAgICAg
ICAgc2VsZi5fZHVtcF9ob3N0KCkKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5zdG9wKCkKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEZhbHNlCisKKyAgICAgICAgbG9nZ2VyLmluZm8oIlRh
cmdldCBJUDogJXMiICUgc2VsZi5pcCkKKyAgICAgICAgbG9nZ2VyLmluZm8oIlNlcnZlciBJUDog
JXMiICUgc2VsZi5zZXJ2ZXJfaXApCisKKyAgICAgICAgc2VsZi50aHJlYWQgPSBMb2dnaW5nVGhy
ZWFkKHNlbGYubG9nLCB0aHJlYWRzb2NrLCBsb2dnZXIpCisgICAgICAgIHNlbGYudGhyZWFkLnN0
YXJ0KCkKKyAgICAgICAgaWYgbm90IHNlbGYudGhyZWFkLmNvbm5lY3Rpb25fZXN0YWJsaXNoZWQu
d2FpdChzZWxmLmJvb3R0aW1lKToKKyAgICAgICAgICAgIGxvZ2dlci5lcnJvcigiRGlkbid0IHJl
Y2VpdmUgYSBjb25zb2xlIGNvbm5lY3Rpb24gZnJvbSBxZW11LiAiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIkhlcmUgaXMgdGhlIHFlbXUgY29tbWFuZCBsaW5lIHVzZWQ6XG4lc1xuYW5kICIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAib3V0cHV0IGZyb20gcnVucWVtdTpcbiVzIiAlIChj
bWRsaW5lLCBvdXQpKQorICAgICAgICAgICAgc2VsZi5zdG9wX3RocmVhZCgpCisgICAgICAgICAg
ICByZXR1cm4gRmFsc2UKKworICAgICAgICBsb2dnZXIuaW5mbygiT3V0cHV0IGZyb20gcnVucWVt
dTpcbiVzIiwgb3V0KQorICAgICAgICBsb2dnZXIuaW5mbygiV2FpdGluZyBhdCBtb3N0ICVkIHNl
Y29uZHMgZm9yIGxvZ2luIGJhbm5lciIgJSBzZWxmLmJvb3R0aW1lKQorICAgICAgICBlbmR0aW1l
ID0gdGltZS50aW1lKCkgKyBzZWxmLmJvb3R0aW1lCisgICAgICAgIHNvY2tsaXN0ID0gW3NlbGYu
c2VydmVyX3NvY2tldF0KKyAgICAgICAgcmVhY2hlZGxvZ2luID0gRmFsc2UKKyAgICAgICAgc3Rv
cHJlYWQgPSBGYWxzZQorICAgICAgICBxZW11c29jayA9IE5vbmUKKyAgICAgICAgYm9vdGxvZyA9
ICcnCisgICAgICAgIGRhdGEgPSBiJycKKyAgICAgICAgd2hpbGUgdGltZS50aW1lKCkgPCBlbmR0
aW1lIGFuZCBub3Qgc3RvcHJlYWQ6CisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAgICAg
c3JlYWQsIHN3cml0ZSwgc2Vycm9yID0gc2VsZWN0LnNlbGVjdChzb2NrbGlzdCwgW10sIFtdLCA1
KQorICAgICAgICAgICAgZXhjZXB0IEludGVycnVwdGVkRXJyb3I6CisgICAgICAgICAgICAgICAg
Y29udGludWUKKyAgICAgICAgICAgIGZvciBzb2NrIGluIHNyZWFkOgorICAgICAgICAgICAgICAg
IGlmIHNvY2sgaXMgc2VsZi5zZXJ2ZXJfc29ja2V0OgorICAgICAgICAgICAgICAgICAgICBxZW11
c29jaywgYWRkciA9IHNlbGYuc2VydmVyX3NvY2tldC5hY2NlcHQoKQorICAgICAgICAgICAgICAg
ICAgICBxZW11c29jay5zZXRibG9ja2luZygwKQorICAgICAgICAgICAgICAgICAgICBzb2NrbGlz
dC5hcHBlbmQocWVtdXNvY2spCisgICAgICAgICAgICAgICAgICAgIHNvY2tsaXN0LnJlbW92ZShz
ZWxmLnNlcnZlcl9zb2NrZXQpCisgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJDb25u
ZWN0aW9uIGZyb20gJXM6JXMiICUgYWRkcikKKyAgICAgICAgICAgICAgICBlbHNlOgorICAgICAg
ICAgICAgICAgICAgICBkYXRhID0gZGF0YSArIHNvY2sucmVjdigxMDI0KQorICAgICAgICAgICAg
ICAgICAgICBpZiBkYXRhOgorICAgICAgICAgICAgICAgICAgICAgICAgdHJ5OgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGRhdGEgPSBkYXRhLmRlY29kZSgidXRmLTgiLCBlcnJvcnM9InN1
cnJvZ2F0ZWVzY2FwZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vdGxvZyArPSBk
YXRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSA9IGInJworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGlmIHJlLnNlYXJjaCgiLiogbG9naW46IiwgYm9vdGxvZyk6CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuc2VydmVyX3NvY2tldCA9IHFlbXVzb2Nr
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0b3ByZWFkID0gVHJ1ZQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICByZWFjaGVkbG9naW4gPSBUcnVlCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJSZWFjaGVkIGxvZ2luIGJhbm5lciIp
CisgICAgICAgICAgICAgICAgICAgICAgICBleGNlcHQgVW5pY29kZURlY29kZUVycm9yOgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisgICAgICAgICAgICAgICAgICAgIGVs
c2U6CisgICAgICAgICAgICAgICAgICAgICAgICBzb2NrbGlzdC5yZW1vdmUoc29jaykKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHNvY2suY2xvc2UoKQorICAgICAgICAgICAgICAgICAgICAgICAg
c3RvcHJlYWQgPSBUcnVlCisKKyAgICAgICAgaWYgbm90IHJlYWNoZWRsb2dpbjoKKyAgICAgICAg
ICAgIGxvZ2dlci5pbmZvKCJUYXJnZXQgZGlkbid0IHJlYWNoZWQgbG9naW4gYm9vdCBpbiAlZCBz
ZWNvbmRzIiAlIHNlbGYuYm9vdHRpbWUpCisgICAgICAgICAgICBsaW5lcyA9ICJcbiIuam9pbihi
b290bG9nLnNwbGl0bGluZXMoKVstMjU6XSkKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJMYXN0
IDI1IGxpbmVzIG9mIHRleHQ6XG4lcyIgJSBsaW5lcykKKyAgICAgICAgICAgIGxvZ2dlci5pbmZv
KCJDaGVjayBmdWxsIGJvb3QgbG9nOiAlcyIgJSBzZWxmLmxvZ2ZpbGUpCisgICAgICAgICAgICBz
ZWxmLl9kdW1wX2hvc3QoKQorICAgICAgICAgICAgc2VsZi5zdG9wKCkKKyAgICAgICAgICAgIHJl
dHVybiBGYWxzZQorCisgICAgICAgICMgSWYgd2UgYXJlIG5vdCBhYmxlIHRvIGxvZ2luIHRoZSB0
ZXN0cyBjYW4gY29udGludWUKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgKHN0YXR1cywgb3V0
cHV0KSA9IHNlbGYucnVuX3NlcmlhbCgicm9vdFxuIiwgcmF3PVRydWUpCisgICAgICAgICAgICBp
ZiByZS5zZWFyY2goInJvb3RAW2EtekEtWjAtOVwtXSs6fiMiLCBvdXRwdXQpOgorICAgICAgICAg
ICAgICAgIHNlbGYubG9nZ2VkID0gVHJ1ZQorICAgICAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJM
b2dnZWQgYXMgcm9vdCBpbiBzZXJpYWwgY29uc29sZSIpCisgICAgICAgICAgICAgICAgaWYgbmV0
Y29uZjoKKyAgICAgICAgICAgICAgICAgICAgIyBjb25maWd1cmUgZ3Vlc3QgbmV0d29ya2luZwor
ICAgICAgICAgICAgICAgICAgICBjbWQgPSAiaWZjb25maWcgZXRoMCAlcyBuZXRtYXNrICVzIHVw
XG4iICUgKHNlbGYuaXAsIHNlbGYubmV0bWFzaykKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0
ID0gc2VsZi5ydW5fc2VyaWFsKGNtZCwgcmF3PVRydWUpWzFdCisgICAgICAgICAgICAgICAgICAg
IGlmIHJlLnNlYXJjaCgicm9vdEBbYS16QS1aMC05XC1dKzp+IyIsIG91dHB1dCk6CisgICAgICAg
ICAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygiY29uZmlndXJlZCBpcCBhZGRyZXNzICVzIiwg
c2VsZi5pcCkKKyAgICAgICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGxvZ2dlci5pbmZvKCJDb3VsZG4ndCBjb25maWd1cmUgZ3Vlc3QgbmV0d29ya2luZyIpCisg
ICAgICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oIkNv
dWxkbid0IGxvZ2luIGludG8gc2VyaWFsIGNvbnNvbGUiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICIgYXMgcm9vdCB1c2luZyBibGFuayBwYXNzd29yZCIpCisgICAgICAgIGV4Y2Vw
dDoKKyAgICAgICAgICAgIGxvZ2dlci5pbmZvKCJTZXJpYWwgY29uc29sZSBmYWlsZWQgd2hpbGUg
dHJ5aW5nIHRvIGxvZ2luIikKKyAgICAgICAgcmV0dXJuIFRydWUKIAogICAgIGRlZiBzdG9wKHNl
bGYpOgogICAgICAgICBzZWxmLnN0b3BfdGhyZWFkKCkKQEAgLTM1NSw2ICszNjMsOCBAQCBjbGFz
cyBRZW11UnVubmVyOgogICAgICAgICAgICAgc2VsZi5zZXJ2ZXJfc29ja2V0ID0gTm9uZQogICAg
ICAgICBzZWxmLnFlbXVwaWQgPSBOb25lCiAgICAgICAgIHNlbGYuaXAgPSBOb25lCisgICAgICAg
IGlmIG9zLnBhdGguZXhpc3RzKHNlbGYucWVtdV9waWRmaWxlKToKKyAgICAgICAgICAgIG9zLnJl
bW92ZShzZWxmLnFlbXVfcGlkZmlsZSkKIAogICAgIGRlZiBzdG9wX3FlbXVfc3lzdGVtKHNlbGYp
OgogICAgICAgICBpZiBzZWxmLnFlbXVwaWQ6CkBAIC0zODAsNTYgKzM5MCwxNSBAQCBjbGFzcyBR
ZW11UnVubmVyOgogICAgIGRlZiBpc19hbGl2ZShzZWxmKToKICAgICAgICAgaWYgbm90IHNlbGYu
cnVucWVtdToKICAgICAgICAgICAgIHJldHVybiBGYWxzZQotICAgICAgICBxZW11X2NoaWxkID0g
c2VsZi5maW5kX2NoaWxkKHN0cihzZWxmLnJ1bnFlbXUucGlkKSkKLSAgICAgICAgaWYgcWVtdV9j
aGlsZDoKLSAgICAgICAgICAgIHNlbGYucWVtdXBpZCA9IHFlbXVfY2hpbGRbMF0KLSAgICAgICAg
ICAgIGlmIG9zLnBhdGguZXhpc3RzKCIvcHJvYy8iICsgc3RyKHNlbGYucWVtdXBpZCkpOgotICAg
ICAgICAgICAgICAgIHJldHVybiBUcnVlCisgICAgICAgIGlmIG9zLnBhdGguaXNmaWxlKHNlbGYu
cWVtdV9waWRmaWxlKToKKyAgICAgICAgICAgIGYgPSBvcGVuKHNlbGYucWVtdV9waWRmaWxlLCAn
cicpCisgICAgICAgICAgICBxZW11X3BpZCA9IGYucmVhZCgpCisgICAgICAgICAgICBmLmNsb3Nl
KCkKKyAgICAgICAgICAgICNsb2dnZXIuaW5mbygicWVtdV9waWQ6ICVzIiAlIHFlbXVfcGlkKQor
ICAgICAgICAgICAgc2VsZi5xZW11cGlkID0gaW50KHFlbXVfcGlkKQorICAgICAgICAgICAgcmV0
dXJuIFRydWUKICAgICAgICAgcmV0dXJuIEZhbHNlCiAKLSAgICBkZWYgZmluZF9jaGlsZChzZWxm
LHBhcmVudF9waWQpOgotICAgICAgICAjCi0gICAgICAgICMgV2FsayB0aGUgcHJvY2VzcyB0cmVl
IGZyb20gdGhlIHByb2Nlc3Mgc3BlY2lmaWVkIGxvb2tpbmcgZm9yIGEgcWVtdS1zeXN0ZW0uIFJl
dHVybiBpdHMgW3BpZCdjbWRdCi0gICAgICAgICMKLSAgICAgICAgcHMgPSBzdWJwcm9jZXNzLlBv
cGVuKFsncHMnLCAnYXh3dycsICctbycsICdwaWQscHBpZCxjb21tYW5kJ10sIHN0ZG91dD1zdWJw
cm9jZXNzLlBJUEUpLmNvbW11bmljYXRlKClbMF0KLSAgICAgICAgcHJvY2Vzc2VzID0gcHMuZGVj
b2RlKCJ1dGYtOCIpLnNwbGl0KCdcbicpCi0gICAgICAgIG5maWVsZHMgPSBsZW4ocHJvY2Vzc2Vz
WzBdLnNwbGl0KCkpIC0gMQotICAgICAgICBwaWRzID0ge30KLSAgICAgICAgY29tbWFuZHMgPSB7
fQotICAgICAgICBmb3Igcm93IGluIHByb2Nlc3Nlc1sxOl06Ci0gICAgICAgICAgICBkYXRhID0g
cm93LnNwbGl0KE5vbmUsIG5maWVsZHMpCi0gICAgICAgICAgICBpZiBsZW4oZGF0YSkgIT0gMzoK
LSAgICAgICAgICAgICAgICBjb250aW51ZQotICAgICAgICAgICAgaWYgZGF0YVsxXSBub3QgaW4g
cGlkczoKLSAgICAgICAgICAgICAgICBwaWRzW2RhdGFbMV1dID0gW10KLQotICAgICAgICAgICAg
cGlkc1tkYXRhWzFdXS5hcHBlbmQoZGF0YVswXSkKLSAgICAgICAgICAgIGNvbW1hbmRzW2RhdGFb
MF1dID0gZGF0YVsyXQotCi0gICAgICAgIGlmIHBhcmVudF9waWQgbm90IGluIHBpZHM6Ci0gICAg
ICAgICAgICByZXR1cm4gW10KLQotICAgICAgICBwYXJlbnRzID0gW10KLSAgICAgICAgbmV3cGFy
ZW50cyA9IHBpZHNbcGFyZW50X3BpZF0KLSAgICAgICAgd2hpbGUgbmV3cGFyZW50czoKLSAgICAg
ICAgICAgIG5leHQgPSBbXQotICAgICAgICAgICAgZm9yIHAgaW4gbmV3cGFyZW50czoKLSAgICAg
ICAgICAgICAgICBpZiBwIGluIHBpZHM6Ci0gICAgICAgICAgICAgICAgICAgIGZvciBuIGluIHBp
ZHNbcF06Ci0gICAgICAgICAgICAgICAgICAgICAgICBpZiBuIG5vdCBpbiBwYXJlbnRzIGFuZCBu
IG5vdCBpbiBuZXh0OgotICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5leHQuYXBwZW5kKG4p
Ci0gICAgICAgICAgICAgICAgaWYgcCBub3QgaW4gcGFyZW50czoKLSAgICAgICAgICAgICAgICAg
ICAgcGFyZW50cy5hcHBlbmQocCkKLSAgICAgICAgICAgICAgICAgICAgbmV3cGFyZW50cyA9IG5l
eHQKLSAgICAgICAgI3ByaW50KCJDaGlsZHJlbiBtYXRjaGluZyAlczoiICUgc3RyKHBhcmVudHMp
KQotICAgICAgICBmb3IgcCBpbiBwYXJlbnRzOgotICAgICAgICAgICAgIyBOZWVkIHRvIGJlIGNh
cmVmdWwgaGVyZSBzaW5jZSBydW5xZW11IHJ1bnMgImxkZCBxZW11LXN5c3RlbS14eHh4IgotICAg
ICAgICAgICAgIyBBbHNvLCBvbGQgdmVyc2lvbnMgb2YgbGRkICgyLjExKSBydW4gIkxEX1hYWFgg
cWVtdS1zeXN0ZW0teHh4eCIKLSAgICAgICAgICAgIGJhc2VjbWQgPSBjb21tYW5kc1twXS5zcGxp
dCgpWzBdCi0gICAgICAgICAgICBiYXNlY21kID0gb3MucGF0aC5iYXNlbmFtZShiYXNlY21kKQot
ICAgICAgICAgICAgaWYgInFlbXUtc3lzdGVtIiBpbiBiYXNlY21kIGFuZCAiLXNlcmlhbCB0Y3Ai
IGluIGNvbW1hbmRzW3BdOgotICAgICAgICAgICAgICAgIHJldHVybiBbaW50KHApLGNvbW1hbmRz
W3BdXQotCiAgICAgZGVmIHJ1bl9zZXJpYWwoc2VsZiwgY29tbWFuZCwgcmF3PUZhbHNlLCB0aW1l
b3V0PTUpOgogICAgICAgICAjIFdlIGFzc3VtZSB0YXJnZXQgc3lzdGVtIGhhdmUgZWNobyB0byBn
ZXQgY29tbWFuZCBzdGF0dXMKICAgICAgICAgaWYgbm90IHJhdzoKLS0gCjIuNy40Cgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>