Re: Smoke [blead] v5.26.0-1591-g56e48c1076 FAIL(XM) os/390 25.00 (2964/)

[email protected] (Karl Williamson) Thu, 7 Dec 2017 21:54:06 -0700
Newsgroups perl.mvs,perl.perl5.porters,perl.daily-build.reports
Message-ID <[email protected]>
--------------F5B21D8D87337260BC01991E
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: quoted-printable

On 12/06/2017 04:21 AM, Yaroslav Kuzmin wrote:
> =D0=92 =D0=9F=D0=BD., 04/12/2017 =D0=B2 22:47 -0700, Karl Williamson =D0=
=BF=D0=B8=D1=88=D0=B5=D1=82:
>> On 12/04/2017 10:03 PM, Yaroslav Kuzmin wrote:
>>>
>>>
>>> Smoke log available https://drive.google.com/file/d/1CwVed6EgFWm29hbi=
N50NsNEGZGYw7vkP
>> This is looking like it's a problem with the new multi-concat.  Attach=
ed
>> is a test script that is an instrumented version of one of the failing
>> tests.  Please run it by hand and email the results.
>>
>> Say you save the attached file as 'foo'
>>
>> ./perl -I lib foo > foo.out 2>&1
>>
>=20
> Log available at https://drive.google.com/file/d/1lVQMTU4FwlGEqecOhMlIy=
fwiEkIaa7TP
>=20

I asked the multiconcat writer to look at this log, and he has come up=20
with a modified script o that we can drill down closer to the cause.  It=20
is attached.  Run it just like you did above.

Thanks


--------------F5B21D8D87337260BC01991E
Content-Type: text/plain; charset=UTF-8;
 name="davem"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
 filename="davem"

IyFwZXJsIC13CgpCRUdJTiB7CiAgICByZXF1aXJlICdsb2NfdG9vbHMucGwnOyAgICMgQ29u
dGFpbnMgbG9jYWxlc19lbmFibGVkKCkgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICMgZmluZF91dGY4X2N0eXBlX2xvY2FsZSgpCn0KCnVzZSBzdHJpY3Q7CnVzZSBUZXN0
OjpNb3JlOwp1c2UgQ29uZmlnOwoKdXNlIFhTOjpBUEl0ZXN0OwoKbXkgJHRhYiA9ICIgIiB4
IDQ7ICAjIEluZGVudCBzdWJzaWRpYXJ5IHRlc3RzIHRoaXMgbXVjaAoKdXNlIFVuaWNvZGU6
OlVDRCBxdyhzZWFyY2hfaW52bGlzdCBwcm9wX2ludm1hcCBwcm9wX2ludmxpc3QpOwpteSAo
JGNoYXJuYW1lX2xpc3QsICRjaGFybmFtZV9tYXAsICRmb3JtYXQsICRkZWZhdWx0KSA9IHBy
b3BfaW52bWFwKCJOYW1lIEFsaWFzIik7CgpzdWIgZ2V0X2NoYXJuYW1lKCQpIHsKICAgIG15
ICRjcCA9IHNoaWZ0OwoKICAgICMgSWYgdGhlcmUgaXMgYSBhbiBhYmJyZXZpYXRpb24gZm9y
IHRoZSBjb2RlIHBvaW50IG5hbWUsIHVzZSBpdAogICAgbXkgJG5hbWVfaW5kZXggPSBzZWFy
Y2hfaW52bGlzdChcQHskY2hhcm5hbWVfbGlzdH0sICRjcCk7CiAgICBpZiAoZGVmaW5lZCAk
bmFtZV9pbmRleCkgewogICAgICAgIG15ICRzeW5vbnltcyA9ICRjaGFybmFtZV9tYXAtPlsk
bmFtZV9pbmRleF07CiAgICAgICAgaWYgKHJlZiAkc3lub255bXMpIHsKICAgICAgICAgICAg
bXkgJHBhdCA9IHFyLzogYWJicmV2aWF0aW9uLzsKICAgICAgICAgICAgbXkgQGFiYnJldmlh
dGlvbnMgPSBncmVwIHsgJF8gPX4gJHBhdCB9IEAkc3lub255bXM7CiAgICAgICAgICAgIGlm
IChAYWJicmV2aWF0aW9ucykgewogICAgICAgICAgICAgICAgcmV0dXJuICRhYmJyZXZpYXRp
b25zWzBdID1+IHMvJHBhdC8vcjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAg
ICAjIE90aGVyd2lzZSwgdXNlIHRoZSBmdWxsIG5hbWUKICAgIHVzZSBjaGFybmFtZXMgKCk7
CiAgICByZXR1cm4gY2hhcm5hbWVzOjp2aWFjb2RlKCRjcCkgLy8gIk5vIG5hbWUiOwp9Cgpz
dWIgdHJ1dGgoJCkgeyAgIyBDb252ZXJ0cyB2YWx1ZXMgc28gaXMoKSB3b3JrcwogICAgcmV0
dXJuIChzaGlmdCkgPyAxIDogMDsKfQoKbXkgJGJhc2VfbG9jYWxlOwpteSAkdXRmOF9sb2Nh
bGU7CmlmKGxvY2FsZXNfZW5hYmxlZCgnTENfQUxMJykpIHsKICAgIHJlcXVpcmUgUE9TSVg7
CiAgICAkYmFzZV9sb2NhbGUgPSBQT1NJWDo6c2V0bG9jYWxlKCAmUE9TSVg6OkxDX0FMTCwg
IkMiKTsKICAgIGlmIChkZWZpbmVkICRiYXNlX2xvY2FsZSAmJiAkYmFzZV9sb2NhbGUgZXEg
J0MnKSB7CiAgICAgICAgdXNlIGxvY2FsZTsgIyBtYWtlIFx3IHdvcmsgcmlnaHQgaW4gbm9u
LUFTQ0lJIGxhbmRzCgogICAgICAgICMgU29tZSBsb2NhbGUgaW1wbGVtZW50YXRpb25zIGRv
bid0IGhhdmUgdGhlIDEyOC0yNTUgY2hhcmFjdGVycyBhbGwKICAgICAgICAjIG1lYW4gbm90
aGluZy4gIFNraXAgdGhlIGxvY2FsZSB0ZXN0cyBpbiB0aGF0IHNpdHVhdGlvbgogICAgICAg
IGZvciBteSAkdSAoMTI4IC4uIDI1NSkgewogICAgICAgICAgICBpZiAoY2hyKHV0Zjg6OnVu
aWNvZGVfdG9fbmF0aXZlKCR1KSkgPX4gL1tbOnByaW50Ol1dLykgewogICAgICAgICAgICAg
ICAgdW5kZWYgJGJhc2VfbG9jYWxlOwogICAgICAgICAgICAgICAgbGFzdDsKICAgICAgICAg
ICAgfQogICAgICAgIH0KCiAgICAgICAgJHV0ZjhfbG9jYWxlID0gZmluZF91dGY4X2N0eXBl
X2xvY2FsZSgpIGlmICRiYXNlX2xvY2FsZTsKICAgIH0KfQoKc3ViIGdldF9kaXNwbGF5X2xv
Y2FsZV9vcl9za2lwKCQkKSB7CgogICAgIyBIZWxwZXIgZnVuY3Rpb24gaW50aW1hdGVseSB0
aWVkIHRvIGl0cyBjYWxsZXJzLiAgSXQga25vd3MgdGhlIGxvb3AKICAgICMgaXRlcmF0ZXMg
d2l0aCBhIGxvY2FsZSBvZiAiIiwgbWVhbmluZyBkb24ndCB1c2UgbG9jYWxlOyAkYmFzZV9s
b2NhbGUKICAgICMgbWVhbmluZyB0byB1c2UgYSBub24tVVRGLTggbG9jYWxlOyBhbmQgJHV0
ZjhfbG9jYWxlLgogICAgIwogICAgIyBJdCBjaGVja3MgdG8gc2VlIGlmIHRoZSBjdXJyZW50
IHRlc3Qgc2hvdWxkIGJlIHNraXBwZWQgb3IgZXhlY3V0ZWQsCiAgICAjIHJldHVybmluZyBh
biBlbXB0eSBsaXN0IGZvciB0aGUgZm9ybWVyLCBhbmQgZm9yIHRoZSBsYXR0ZXI6CiAgICAj
ICAgKCAnbG9jYWxlIGRpc3BsYXkgbmFtZScsCiAgICAjICAgICBib29sIG9mIGlzIHRoaXMg
YSBVVEYtOCBsb2NhbGUgKQogICAgIwogICAgIyBUaGUgZGlzcGxheSBuYW1lIGlzIHRoZSBl
bXB0eSBzdHJpbmcgaWYgbm90IHVzaW5nIGxvY2FsZS4gIEZ1bmN0aW9ucwogICAgIyB3aXRo
IF9MQyBpbiB0aGVpciBuYW1lIGFyZSBza2lwcGVkIHVubGVzcyBpbiBsb2NhbGUsIGFuZCBm
dW5jdGlvbnMKICAgICMgd2l0aG91dCBfTEMgYXJlIGV4ZWN1dGVkIG9ubHkgb3V0c2lkZSBs
b2NhbGUuCgogICAgbXkgKCRsb2NhbGUsICRzdWZmaXgpID0gQF87CgogICAgIyBUaGUgdGVz
dCBzaG91bGQgYmUgc2tpcHBlZCBpZiB0aGUgaW5wdXQgaXMgZm9yIGEgbm9uLWV4aXN0ZW50
IGxvY2FsZQogICAgcmV0dXJuIHVubGVzcyBkZWZpbmVkICRsb2NhbGU7CgogICAgIyBIZXJl
IHRoZSBpbnB1dCBpcyBkZWZpbmVkLCBlaXRoZXIgYSBsb2NhbGUgbmFtZSBvciAiIi4gIElm
IHRoZSB0ZXN0IGlzCiAgICAjIGZvciBub3QgdXNpbmcgbG9jYWxlcywgd2Ugd2FudCB0byBk
byB0aGUgdGVzdCBmb3Igbm9uLUxDIGZ1bmN0aW9ucywKICAgICMgYW5kIHNraXAgaXQgZm9y
IExDIG9uZXMuCiAgICBpZiAoJGxvY2FsZSBlcSAiIikgewogICAgICAgIHJldHVybiAoIiIs
IDApIGlmICRzdWZmaXggIX4gL0xDLzsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBI
ZXJlIHRoZSBpbnB1dCBpcyBmb3IgYSByZWFsIGxvY2FsZS4gIFdlIGRvbid0IHRlc3QgdGhl
IG5vbi1MQyBmdW5jdGlvbnMKICAgICMgZm9yIGxvY2FsZXMuCiAgICByZXR1cm4gaWYgJHN1
ZmZpeCAhfiAvTEMvOwoKICAgICMgSGVyZSBpcyBmb3IgYSBMQyBmdW5jdGlvbiBhbmQgYSBy
ZWFsIGxvY2FsZS4gIFRoZSBiYXNlIGxvY2FsZSBpcyBub3QKICAgICMgVVRGLTguCiAgICBy
ZXR1cm4gKCIgKCRsb2NhbGUgbG9jYWxlKSIsIDApIGlmICRsb2NhbGUgZXEgJGJhc2VfbG9j
YWxlOwoKICAgICMgVGhlIG9ubHkgb3RoZXIgcG9zc2liaWxpdHkgaXMgdGhhdCB3ZSBoYXZl
IGEgVVRGLTggbG9jYWxlCiAgICByZXR1cm4gKCIgKCRsb2NhbGUpIiwgMSk7Cn0KCnN1YiB0
cnlfbWFsZm9ybWluZygkJCQpCnsKICAgICMgRGV0ZXJtaW5lcyBpZiB0aGUgdGVzdHMgZm9y
IG1hbGZvcm1lZCBVVEYtOCBzaG91bGQgYmUgZG9uZS4gIFdoZW4gZG9uZSwKICAgICMgdGhl
IC54cyBjb2RlIGNyZWF0ZXMgbWFsZm9ybWF0aW9ucyBieSBwcmV0ZW5kaW5nIHRoZSBsZW5n
dGggaXMgc2hvcnRlcgogICAgIyB0aGFuIGl0IGFjdHVhbGx5IGlzLiAgU29tZSB0aGluZ3Mg
Y2FuJ3QgYmUgbWFsZm9ybWVkLCBhbmQgc29tZXRpbWVzIHRoaXMKICAgICMgdGVzdCBrbm93
cyB0aGF0IHRoZSBjdXJyZW50IGNvZGUgZG9lc24ndCBsb29rIGZvciBhIG1hbGZvcm1hdGlv
biB1bmRlcgogICAgIyB2YXJpb3VzIGNpcmN1bXN0YW5jZXMuCgogICAgbXkgKCR1LCAkZnVu
Y3Rpb24sICR1c2luZ19sb2NhbGUpID0gQF87CiAgICAjICR1IGlzIHVuaWNvZGUgY29kZSBw
b2ludDsKCiAgICAjIFNpbmdsZSBieXRlcyBjYW4ndCBiZSBtYWxmb3JtZWQKICAgIHJldHVy
biAwIGlmICR1IDwgKChvcmQgIkEiID09IDY1KSA/IDEyOCA6IDE2MCk7CgogICAgIyBBU0NJ
SSBkb2Vzbid0IG5lZWQgdG8gZXZlciBsb29rIGJleW9uZCB0aGUgZmlyc3QgYnl0ZS4KICAg
IHJldHVybiAwIGlmICRmdW5jdGlvbiBlcSAiQVNDSUkiOwoKICAgICMgTm9yLCBvbiBFQkNE
SUMgc3lzdGVtcywgZG9lcyBDTlRSTAogICAgcmV0dXJuIDAgaWYgb3JkICJBIiAhPSA2NSAm
JiAkZnVuY3Rpb24gZXEgIkNOVFJMIjsKCiAgICAjIE5vIGNvbnRyb2xzIGFib3ZlIDI1NSwg
c28gdGhlIGNvZGUgZG9lc24ndCBsb29rIGF0IHRob3NlCiAgICByZXR1cm4gMCBpZiAkdSA+
IDI1NSAmJiAkZnVuY3Rpb24gZXEgIkNOVFJMIjsKCiAgICAjIE5vIG5vbi1BU0NJSSBkaWdp
dHMgYmVsb3cgMjU2LCBleGNlcHQgaWYgdXNpbmcgbG9jYWxlcy4KICAgIHJldHVybiAwIGlm
ICR1IDwgMjU2ICYmICEgJHVzaW5nX2xvY2FsZSAmJiAkZnVuY3Rpb24gPX4gL1g/RElHSVQv
OwoKICAgIHJldHVybiAxOwp9CgpteSAlcHJvcGVydGllcyA9ICgKICAgICAgICAgICAgICAg
ICAgICMgbmFtZSA9PiBMb29rdXAtcHJvcGVydHkgbmFtZQogICAgICAgICAgICAgICAgICAg
YWxudW0gPT4gJ1dvcmQnLAogICAgICAgICAgICAgICAgICAgd29yZGNoYXIgPT4gJ1dvcmQn
LAogICAgICAgICAgICAgICAgICAgYWxwaGFudW1lcmljID0+ICdBbG51bScsCiAgICAgICAg
ICAgICAgICAgICBhbHBoYSA9PiAnWFBvc2l4QWxwaGEnLAogICAgICAgICAgICAgICAgICAg
YXNjaWkgPT4gJ0FTQ0lJJywKICAgICAgICAgICAgICAgICAgIGJsYW5rID0+ICdCbGFuaycs
CiAgICAgICAgICAgICAgICAgICBjbnRybCA9PiAnQ29udHJvbCcsCiAgICAgICAgICAgICAg
ICAgICBkaWdpdCA9PiAnRGlnaXQnLAogICAgICAgICAgICAgICAgICAgZ3JhcGggPT4gJ0dy
YXBoJywKICAgICAgICAgICAgICAgICAgIGlkZmlyc3QgPT4gJ19QZXJsX0lEU3RhcnQnLAog
ICAgICAgICAgICAgICAgICAgaWRjb250ID0+ICdfUGVybF9JRENvbnQnLAogICAgICAgICAg
ICAgICAgICAgbG93ZXIgPT4gJ1hQb3NpeExvd2VyJywKICAgICAgICAgICAgICAgICAgIHBy
aW50ID0+ICdQcmludCcsCiAgICAgICAgICAgICAgICAgICBwc3hzcGMgPT4gJ1hQb3NpeFNw
YWNlJywKICAgICAgICAgICAgICAgICAgIHB1bmN0ID0+ICdYUG9zaXhQdW5jdCcsCiAgICAg
ICAgICAgICAgICAgICBxdW90ZW1ldGEgPT4gJ19QZXJsX1F1b3RlbWV0YScsCiAgICAgICAg
ICAgICAgICAgICBzcGFjZSA9PiAnWFBlcmxTcGFjZScsCiAgICAgICAgICAgICAgICAgICB2
ZXJ0d3MgPT4gJ1ZlcnRTcGFjZScsCiAgICAgICAgICAgICAgICAgICB1cHBlciA9PiAnWFBv
c2l4VXBwZXInLAogICAgICAgICAgICAgICAgICAgeGRpZ2l0ID0+ICdYRGlnaXQnLAogICAg
ICAgICAgICAgICAgKTsKCm15ICVzZWVuOwpteSBAd2FybmluZ3M7CmxvY2FsICRTSUd7X19X
QVJOX199ID0gc3ViIHsgcHVzaCBAd2FybmluZ3MsIEBfIH07CgpteSAldXRmOF9wYXJhbV9j
b2RlID0gKAogICAgICAgICAgICAgICAgICAgICAgICAiX3NhZmUiICAgICAgICAgICAgICAg
ICA9PiAgMCwKICAgICAgICAgICAgICAgICAgICAgICAgIl9zYWZlLCBtYWxmb3JtZWQiICAg
ICAgPT4gIDEsCiAgICAgICAgICAgICAgICAgICAgICAgICJkZXByZWNhdGVkIHVuc2FmZSIg
ICAgID0+IC0xLAogICAgICAgICAgICAgICAgICAgICAgICAiZGVwcmVjYXRlZCBtYXRob21z
IiAgICA9PiAtMiwKICAgICAgICAgICAgICAgICAgICAgICk7CgojIFRoaXMgdGVzdCBpcyBz
cGxpdCBpbnRvIHRoaXMgbnVtYmVyIG9mIGZpbGVzLgpteSAkbnVtX3Rlc3RfZmlsZXMgPSAk
RU5We1RFU1RfSk9CU30gfHwgMTsKJG51bV90ZXN0X2ZpbGVzID0gMTAgaWYgJG51bV90ZXN0
X2ZpbGVzID4gMTA7CgpteSAkcHJvcGVydHlfY291bnQgPSAtMTsKZm9yZWFjaCBteSAkbmFt
ZSAoc29ydCBrZXlzICVwcm9wZXJ0aWVzLCAnb2N0YWwnKSB7CgogICAgIyBXZSB0ZXN0IGV2
ZXJ5IG50aCBwcm9wZXJ0eSBpbiB0aGlzIHJ1biBzbyB0aGF0IHRoaXMgdGVzdCBpcyBzcGxp
dCBpbnRvCiAgICAjIHNtYWxsZXIgY2h1bmtzIHRvIG1pbmltaXplIHRlc3Qgc3VpdGUgZWxh
cHNlZCB0aW1lIHdoZW4gcnVuIGluIHBhcmFsbGVsLgogICAgJHByb3BlcnR5X2NvdW50Kys7
CiAgICBuZXh0IGlmICRwcm9wZXJ0eV9jb3VudCAlICRudW1fdGVzdF9maWxlcyAhPSAkOjpU
RVNUX0NIVU5LOwoKICAgIG15IEBpbnZsaXN0OwogICAgaWYgKCRuYW1lIGVxICdvY3RhbCcp
IHsKICAgICAgICAjIEhhbmQtcm9sbCBhbiBpbnZlcnNpb24gbGlzdCB3aXRoIDAtNyBpbiBp
dCBhbmQgbm90aGluZyBlbHNlLgogICAgICAgIHB1c2ggQGludmxpc3QsIG9yZCAiMCIsIG9y
ZCAiOCI7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBteSAkcHJvcGVydHkgPSAkcHJvcGVy
dGllc3skbmFtZX07CiAgICAgICAgQGludmxpc3QgPSBwcm9wX2ludmxpc3QoJHByb3BlcnR5
LCAnX3BlcmxfY29yZV9pbnRlcm5hbF9vaycpOwogICAgICAgIGlmICghIEBpbnZsaXN0KSB7
CgogICAgICAgICAgICAjIEFuIGVtcHR5IHJldHVybiBjb3VsZCBtZWFuIGFuIHVua25vd24g
cHJvcGVydHksIG9yIG1lcmVseSB0aGF0CiAgICAgICAgICAgICMgaXQgaXMgZW1wdHkuICBD
YWxsIGluIHNjYWxhciBjb250ZXh0IHRvIGRpZmZlcmVudGlhdGUKICAgICAgICAgICAgaWYg
KCEgcHJvcF9pbnZsaXN0KCRwcm9wZXJ0eSwgJ19wZXJsX2NvcmVfaW50ZXJuYWxfb2snKSkg
ewogICAgICAgICAgICAgICAgZmFpbCgiTm8gaW52ZXJzaW9uIGxpc3QgZm91bmQgZm9yICRw
cm9wZXJ0eSIpOwogICAgICAgICAgICAgICAgbmV4dDsKICAgICAgICAgICAgfQogICAgICAg
IH0KICAgIH0KCiAgICAjIEluY2x1ZGUgYWxsIHRoZSBMYXRpbjEgY29kZSBwb2ludHMsIHBs
dXMgMHgxMDAuCiAgICBteSBAY29kZV9wb2ludHMgPSAoMCAuLiAyNTYpOwoKICAgICMgVGhl
biBpbmNsdWRlIHRoZSBuZXh0IGZldyBib3VuZGFyaWVzIGFib3ZlIHRob3NlIGZyb20gdGhp
cyBwcm9wZXJ0eQogICAgbXkgJGFib3ZlX2xhdGlucyA9IDA7CiAgICBmb3JlYWNoIG15ICRy
YW5nZV9zdGFydCAoQGludmxpc3QpIHsKICAgICAgICBuZXh0IGlmICRyYW5nZV9zdGFydCA8
IDI1NzsKICAgICAgICBwdXNoIEBjb2RlX3BvaW50cywgJHJhbmdlX3N0YXJ0IC0gMSwgJHJh
bmdlX3N0YXJ0OwogICAgICAgICRhYm92ZV9sYXRpbnMrKzsKICAgICAgICBsYXN0IGlmICRh
Ym92ZV9sYXRpbnMgPiA1OwogICAgfQoKICAgICMgVGhpcyBtYWtlcyBzdXJlIHdlIGFyZSB1
c2luZyB0aGUgUGVybCBkZWZpbml0aW9uIG9mIGlkZmlyc3QgYW5kIGlkY29udCwKICAgICMg
YW5kIG5vdCB0aGUgVW5pY29kZS4gIFRoZXJlIGFyZSBhIGZldyBkaWZmZXJlbmNlcy4KICAg
IHB1c2ggQGNvZGVfcG9pbnRzLCBvcmQgIlxOe0VTVElNQVRFRCBTWU1CT0x9IiBpZiAkbmFt
ZSA9fiAvXmlkKGZpcnN0fGNvbnQpLzsKICAgIGlmICgkbmFtZSBlcSAiaWRjb250IikgeyAg
ICAjIEFuZCBzb21lIHRoYXQgYXJlIGNvbnRpbnVhdGlvbiBidXQgbm90IHN0YXJ0CiAgICAg
ICAgcHVzaCBAY29kZV9wb2ludHMsIG9yZCgiXE57R1JFRUsgQU5PIFRFTEVJQX0iKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgb3JkKCJcTntDT01CSU5JTkcgR1JBVkUgQUNDRU5U
fSIpOwogICAgfQoKICAgICMgQW5kIGZpbmFsbHkgb25lIG5vbi1Vbmljb2RlIGNvZGUgcG9p
bnQuCiAgICBwdXNoIEBjb2RlX3BvaW50cywgMHgxMTAwMDA7ICAgICMgQWJvdmUgVW5pY29k
ZSwgbm8gcHJvcCBzaG91bGQgbWF0Y2gKICAgIG5vIHdhcm5pbmdzICdub25fdW5pY29kZSc7
CgogICAgZm9yIG15ICRuIChAY29kZV9wb2ludHMpIHsKICAgICAgICBteSAkdSA9IHV0Zjg6
Om5hdGl2ZV90b191bmljb2RlKCRuKTsKICAgICAgICBteSAkZnVuY3Rpb24gPSB1YygkbmFt
ZSk7CgogICAgICAgIGlzIChAd2FybmluZ3MsIDAsICJHb3Qgbm8gdW5leHBlY3RlZCB3YXJu
aW5ncyBpbiBwcmV2aW91cyBpdGVyYXRpb24iKQogICAgICAgICAgIG9yIGRpYWcoIkB3YXJu
aW5ncyIpOwogICAgICAgIHVuZGVmIEB3YXJuaW5nczsKCiAgICAgICAgbXkgJG1hdGNoZXMg
PSBzZWFyY2hfaW52bGlzdChcQGludmxpc3QsICRuKTsKICAgICAgICBpZiAoISBkZWZpbmVk
ICRtYXRjaGVzKSB7CiAgICAgICAgICAgICRtYXRjaGVzID0gMDsKICAgICAgICB9CiAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICRtYXRjaGVzID0gdHJ1dGgoISAoJG1hdGNoZXMgJSAy
KSk7CiAgICAgICAgfQoKICAgICAgICBteSAkcmV0OwogICAgICAgIG15ICRjaGFyX25hbWUg
PSBnZXRfY2hhcm5hbWUoJG4pOwogICAgICAgIG15ICRkaXNwbGF5X25hbWUgPSBzcHJpbnRm
ICJcXHh7JTAyWCwgJXN9IiwgJG4sICRjaGFyX25hbWU7CiAgICAgICAgbXkgJGRpc3BsYXlf
Y2FsbCA9ICJpcyR7ZnVuY3Rpb259KCAkZGlzcGxheV9uYW1lICkiOwoKICAgICAgICBmb3Jl
YWNoIG15ICRzdWZmaXggKCIiLCAiX0EiLCAiX0wxIiwgIl9MQyIsICJfdW5pIiwgIl91dmNo
ciIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAiX0xDX3V2Y2hyIiwgIl91dGY4Iiwg
Il9MQ191dGY4IikKICAgICAgICB7CgogICAgICAgICAgICAjIE5vdCBhbGwgcG9zc2libGUg
bWFjcm9zIGhhdmUgYmVlbiBkZWZpbmVkCiAgICAgICAgICAgIGlmICgkbmFtZSBlcSAndmVy
dHdzJykgewoKICAgICAgICAgICAgICAgICMgdmVydHdzIGlzIGFsd2F5cyBhbGwgb2YgVW5p
Y29kZQogICAgICAgICAgICAgICAgbmV4dCBpZiAkc3VmZml4ICF+IC8gXiBfICggdW5pIHwg
dXZjaHIgfCB1dGY4ICkgJCAveDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAo
JG5hbWUgZXEgJ2FsbnVtJykgewoKICAgICAgICAgICAgICAgICMgQUxOVU1fQSwgQUxOVU1f
TDEsIGFuZCBBTE5VTV91dmNociBhcmUgbm90IGRlZmluZWQgYXMgdGhlc2UKICAgICAgICAg
ICAgICAgICMgc3VmZml4ZXMgd2VyZSBhZGRlZCBsYXRlciwgYWZ0ZXIgV09SRENIQVIgd2Fz
IGNyZWF0ZWQgdG8gYmUKICAgICAgICAgICAgICAgICMgYSBjbGVhcmVyIHN5bm9ueW0gZm9y
IEFMTlVNCiAgICAgICAgICAgICAgICBuZXh0IGlmICAgICRzdWZmaXggZXEgJ19BJwogICAg
ICAgICAgICAgICAgICAgICAgICB8fCAkc3VmZml4IGVxICdfTDEnCiAgICAgICAgICAgICAg
ICAgICAgICAgIHx8ICRzdWZmaXggZXEgJ191dmNocic7CiAgICAgICAgICAgIH0KICAgICAg
ICAgICAgZWxzaWYgKCRuYW1lIGVxICdvY3RhbCcpIHsKICAgICAgICAgICAgICAgIG5leHQg
aWYgJHN1ZmZpeCBuZSAiIiAgJiYgJHN1ZmZpeCBuZSAnX0EnICYmICRzdWZmaXggbmUgJ19M
MSc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCRuYW1lIGVxICdxdW90ZW1l
dGEnKSB7CiAgICAgICAgICAgICAgICAjIFRoZXJlIGlzIG9ubHkgb25lIG1hY3JvIGZvciB0
aGlzLCBhbmQgaXMgZGVmaW5lZCBvbmx5IGZvcgogICAgICAgICAgICAgICAgIyBMYXRpbjEg
cmFuZ2UKICAgICAgICAgICAgICAgIG5leHQgaWYgJHN1ZmZpeCBuZSAiIgogICAgICAgICAg
ICB9CgogICAgICAgICAgICBmb3JlYWNoIG15ICRsb2NhbGUgKCIiLCAkYmFzZV9sb2NhbGUs
ICR1dGY4X2xvY2FsZSkgewoKICAgICAgICAgICAgICAgIG15ICgkZGlzcGxheV9sb2NhbGUs
ICRsb2NhbGVfaXNfdXRmOCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9IGdl
dF9kaXNwbGF5X2xvY2FsZV9vcl9za2lwKCRsb2NhbGUsICRzdWZmaXgpOwogICAgICAgICAg
ICAgICAgbmV4dCB1bmxlc3MgZGVmaW5lZCAkZGlzcGxheV9sb2NhbGU7CgogICAgICAgICAg
ICAgICAgdXNlIGlmICRsb2NhbGUsICJsb2NhbGUiOwogICAgICAgICAgICAgICAgUE9TSVg6
OnNldGxvY2FsZSggJlBPU0lYOjpMQ19BTEwsICRsb2NhbGUpIGlmICRsb2NhbGU7CgogICAg
ICAgICAgICAgICAgaWYgKCRzdWZmaXggIX4gL3V0ZjgvKSB7ICAgICMgX3V0ZjggaGFzIHRv
IGhhbmRsZWQgc3BlY2lhbGx5CiAgICAgICAgICAgICAgICAgICAgbXkgJGRpc3BsYXlfY2Fs
bAogICAgICAgICAgICAgICAgICAgICAgID0gImlzJHtmdW5jdGlvbn0kc3VmZml4KCAkZGlz
cGxheV9uYW1lICkkZGlzcGxheV9sb2NhbGUiOwogICAgICAgICAgICAgICAgICAgICRyZXQg
PSB0cnV0aCBldmFsICJ0ZXN0X2lzJHtmdW5jdGlvbn0kc3VmZml4KCRuKSI7CiAgICAgICAg
ICAgICAgICAgICAgaWYgKGlzICgkQCwgIiIsICIkZGlzcGxheV9jYWxsIGRpZG4ndCBnaXZl
IGVycm9yIikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJHRydXRoID0gJG1hdGNo
ZXM7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkdHJ1dGgpIHsKCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAjIFRoZSBzaW5nbGUgYnl0ZSBmdW5jdGlvbnMgYXJlIGZhbHNl
IGZvcgogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBhYm92ZS1MYXRpbjEKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmICgkbiA+PSAyNTYpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAkdHJ1dGggPSAwCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpZiAkc3VmZml4PX4gLyBeICggX0EgfCBfTCBbMUNdICk/ICQgL3g7
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBlbHNpZiAoICAgJHUgPj0gMTI4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgJiYgJG5hbWUgbmUgJ3F1b3RlbWV0YScpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB7CgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVGhlIG5vLXN1ZmZp
eCBhbmQgX0EgZnVuY3Rpb25zIGFyZSBmYWxzZQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICMgZm9yIG5vbi1BU0NJSS4gIFNvIGFyZSAgX0xDICBmdW5jdGlvbnMgb24gYQog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgbm9uLVVURi04IGxvY2FsZQogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0cnV0aCA9IDAgaWYgICAgJHN1ZmZpeCBl
cSAiX0EiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8
fCAkc3VmZml4IGVxICIiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB8fCAoICAgICAkc3VmZml4ID1+IC9MQy8KICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmJiAhICRsb2NhbGVfaXNfdXRmOCk7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0K
CiAgICAgICAgICAgICAgICAgICAgICAgIGlzICgkcmV0LCAkdHJ1dGgsICIke3RhYn1BbmQg
Y29ycmVjdGx5IHJldHVybnMgJHRydXRoIik7CiAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7ICAjIF91dGY4IHN1ZmZpeAog
ICAgICAgICAgICAgICAgICAgIG15ICRjaGFyID0gY2hyKCRuKTsKICAgICAgICAgICAgICAg
ICAgICB1dGY4Ojp1cGdyYWRlKCRjaGFyKTsKICAgICAgICAgICAgICAgICAgICAkY2hhciA9
IHF1b3RlbWV0YSAkY2hhciBpZiAkY2hhciBlcSAnXFwnIHx8ICRjaGFyIGVxICInIjsKICAg
ICAgICAgICAgICAgICAgICBteSAkdHJ1dGg7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAg
ICRzdWZmaXggPX4gL0xDLwogICAgICAgICAgICAgICAgICAgICAgICAmJiAhICRsb2NhbGVf
aXNfdXRmOAogICAgICAgICAgICAgICAgICAgICAgICAmJiAkbiA8IDI1NgogICAgICAgICAg
ICAgICAgICAgICAgICAmJiAkdSA+PSAxMjgpCiAgICAgICAgICAgICAgICAgICAgeyAgICMg
VGhlIEMtbG9jYWxlIF9MQyBmdW5jdGlvbiByZXR1cm5zIEZBTFNFIGZvciBMYXRpbjEKICAg
ICAgICAgICAgICAgICAgICAgICAgIyBhYm92ZSBBU0NJSQogICAgICAgICAgICAgICAgICAg
ICAgICAkdHJ1dGggPSAwOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
ICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHRydXRoID0gJG1hdGNoZXM7
CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICBmb3JlYWNoIG15
ICR1dGY4X3BhcmFtKCJfc2FmZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiX3NhZmUsIG1hbGZvcm1lZCIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiZGVwcmVjYXRlZCB1bnNhZmUiCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICAgICB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIG15ICR1dGY4X3BhcmFtX2NvZGUgPSAkdXRmOF9wYXJh
bV9jb2RleyR1dGY4X3BhcmFtfTsKICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGV4cGVj
dF9lcnJvciA9ICR1dGY4X3BhcmFtX2NvZGUgPiAwOwogICAgICAgICAgICAgICAgICAgICAg
ICBuZXh0IGlmICAgICAgJGV4cGVjdF9lcnJvcgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICYmICEgdHJ5X21hbGZvcm1pbmcoJHUsICRmdW5jdGlvbiwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRzdWZmaXggPX4gL0xD
Lyk7CiAgICAgICAgICAgICAgICAgICAgICAgIG15ICRkaXNwbGF5X2NhbGwgPSAiaXMke2Z1
bmN0aW9ufSRzdWZmaXgoICRkaXNwbGF5X25hbWUiCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLiAiLCAkdXRmOF9wYXJhbSApJGRpc3BsYXlfbG9jYWxlIjsK
ICAgICAgICAgICAgICAgICAgICAgICAgJHJldCA9IHRydXRoIGV2YWwgInRlc3RfaXMke2Z1
bmN0aW9ufSRzdWZmaXgoJyRjaGFyJywiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAuICIgJHV0ZjhfcGFyYW1fY29kZSkiOwogICAgICAgICAgICAgICAgICAg
ICAgICBpZiAoJGV4cGVjdF9lcnJvcikgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
aXNudCAoJEAsICIiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZXhw
ZWN0ZWQgYW5kIGdvdCBlcnJvciBpbiAkZGlzcGxheV9jYWxsIik7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBsaWtlKCRALCBxci9NYWxmb3JtZWQgVVRGLTggY2hhcmFjdGVyLywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHt0YWJ9QW5kIGdvdCBleHBlY3Rl
ZCBtZXNzYWdlIik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXMgKEB3YXJu
aW5ncywgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIk
e3RhYn1Hb3QgYSBzaW5nbGUgd2FybmluZyBiZXNpZGVzIikpCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlrZSgkd2Fy
bmluZ3NbMF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxci9NYWxm
b3JtZWQgVVRGLTggY2hhcmFjdGVyLipzaG9ydC8sCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiJHt0YWJ9R290IGV4cGVjdGVkIHdhcm5pbmciKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2Ug
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWcoIkB3YXJuaW5ncyIpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdW5kZWYgQHdhcm5pbmdzOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgICAgIGVsc2lmIChpcyAoJEAsICIiLCAiJGRpc3BsYXlfY2FsbCBkaWRu
J3QgZ2l2ZSBlcnJvciIpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyAoJHJl
dCwgJHRydXRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIke3RhYn1BbmQg
Y29ycmVjdGx5IHJldHVybmVkICR0cnV0aCIpOwogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaWYgKCR1dGY4X3BhcmFtX2NvZGUgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbXkgJHdhcm5pbmdzX29rOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG15ICR1bmlxdWVfZnVuY3Rpb24gPSAiaXMiIC4gJGZ1bmN0aW9uIC4gJHN1ZmZpeDsK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoISAkc2VlbnskdW5pcXVlX2Z1
bmN0aW9ufSsrKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3YXJu
aW5nc19vayA9IGlzKEB3YXJuaW5ncywgMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIke3RhYn1UaGlzIGlzIGZpcnN0IGNhbGwgdG8iCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgLiAiICR1bmlxdWVfZnVuY3Rpb247IEdvdCBh
IHNpbmdsZSIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuICIgd2Fy
bmluZyIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoJHdhcm5p
bmdzX29rKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2Fy
bmluZ3Nfb2sgPSBsaWtlKCR3YXJuaW5nc1swXSwKICAgICAgICAgICAgICAgIHFyL3N0YXJ0
aW5nIGluIFBlcmwgLiogd2lsbCByZXF1aXJlIGFuIGFkZGl0aW9uYWwgcGFyYW1ldGVyLywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHt0YWJ9VGhl
IHdhcm5pbmcgd2FzIHRoZSBleHBlY3RlZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgLiAiIGRlcHJlY2F0aW9uIG9uZSIpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAkd2FybmluZ3Nfb2sgPSBpcyhAd2FybmluZ3MsIDAs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJHt0YWJ9VGhpcyBz
dWJzZXF1ZW50IGNhbGwgdG8iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgLiAiICR1bmlxdWVfZnVuY3Rpb24gZGlkIG5vdCB3YXJuIik7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR3
YXJuaW5nc19vayBvciBkaWFnKCJAd2FybmluZ3MiKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB1bmRlZiBAd2FybmluZ3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9Cn0KCm15ICV0
b19wcm9wZXJ0aWVzID0gKAogICAgICAgICAgICAgICAgRk9MRCAgPT4gJ0Nhc2VfRm9sZGlu
ZycsCiAgICAgICAgICAgICAgICBMT1dFUiA9PiAnTG93ZXJjYXNlX01hcHBpbmcnLAogICAg
ICAgICAgICAgICAgVElUTEUgPT4gJ1RpdGxlY2FzZV9NYXBwaW5nJywKICAgICAgICAgICAg
ICAgIFVQUEVSID0+ICdVcHBlcmNhc2VfTWFwcGluZycsCiAgICAgICAgICAgICk7CgokcHJv
cGVydHlfY291bnQgPSAtMTsKZm9yZWFjaCBteSAkbmFtZSAoc29ydCBrZXlzICV0b19wcm9w
ZXJ0aWVzKSB7CgogICAgJHByb3BlcnR5X2NvdW50Kys7CiAgICBuZXh0IGlmICRwcm9wZXJ0
eV9jb3VudCAlICRudW1fdGVzdF9maWxlcyAhPSAkOjpURVNUX0NIVU5LOwoKICAgIG15ICRw
cm9wZXJ0eSA9ICR0b19wcm9wZXJ0aWVzeyRuYW1lfTsKICAgIG15ICgkbGlzdF9yZWYsICRt
YXBfcmVmLCAkZm9ybWF0LCAkbWlzc2luZykKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA9IHByb3BfaW52bWFwKCRwcm9wZXJ0eSwgKTsKICAgIGlmICghICRsaXN0
X3JlZiB8fCAhICRtYXBfcmVmKSB7CiAgICAgICAgZmFpbCgiTm8gaW52ZXJzaW9uIG1hcCBm
b3VuZCBmb3IgJHByb3BlcnR5Iik7CiAgICAgICAgbmV4dDsKICAgIH0KICAgIGlmICgkZm9y
bWF0ICF+IC8gXiBhIGw/ICQgL3gpIHsKICAgICAgICBmYWlsKCJVbmV4cGVjdGVkIGludmVy
c2lvbiBtYXAgZm9ybWF0ICgnJGZvcm1hdCcpIGZvdW5kIGZvciAkcHJvcGVydHkiKTsKICAg
ICAgICBuZXh0OwogICAgfQoKICAgICMgSW5jbHVkZSBhbGwgdGhlIExhdGluMSBjb2RlIHBv
aW50cywgcGx1cyAweDEwMC4KICAgIG15IEBjb2RlX3BvaW50cyA9ICgwIC4uIDI1Nik7Cgog
ICAgIyBUaGVuIGluY2x1ZGUgdGhlIG5leHQgZmV3IG11bHRpLWNoYXIgZm9sZHMgYWJvdmUg
dGhvc2UgZnJvbSB0aGlzCiAgICAjIHByb3BlcnR5LCBhbmQgaW5jbHVkZSB0aGUgbmV4dCBm
ZXcgc2luZ2xlIGZvbGRzIGFzIHdlbGwKICAgIG15ICRhYm92ZV9sYXRpbnMgPSAwOwogICAg
bXkgJG11bHRpX2NoYXIgPSAwOwogICAgZm9yIG15ICRpICgwIC4uIEB7JGxpc3RfcmVmfSAt
IDEpIHsKICAgICAgICBteSAkcmFuZ2Vfc3RhcnQgPSAkbGlzdF9yZWYtPlskaV07CiAgICAg
ICAgbmV4dCBpZiAkcmFuZ2Vfc3RhcnQgPCAyNTc7CiAgICAgICAgaWYgKHJlZiAkbWFwX3Jl
Zi0+WyRpXSAmJiAkbXVsdGlfY2hhciA8IDUpICB7CiAgICAgICAgICAgIHB1c2ggQGNvZGVf
cG9pbnRzLCAkcmFuZ2Vfc3RhcnQgLSAxCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAkY29kZV9wb2ludHNbLTFdICE9ICRyYW5nZV9zdGFydCAtIDE7CiAg
ICAgICAgICAgIHB1c2ggQGNvZGVfcG9pbnRzLCAkcmFuZ2Vfc3RhcnQ7CiAgICAgICAgICAg
ICRtdWx0aV9jaGFyKys7CiAgICAgICAgfQogICAgICAgIGVsc2lmICgkYWJvdmVfbGF0aW5z
IDwgNSkgewogICAgICAgICAgICBwdXNoIEBjb2RlX3BvaW50cywgJHJhbmdlX3N0YXJ0IC0g
MQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgJGNvZGVfcG9p
bnRzWy0xXSAhPSAkcmFuZ2Vfc3RhcnQgLSAxOwogICAgICAgICAgICBwdXNoIEBjb2RlX3Bv
aW50cywgJHJhbmdlX3N0YXJ0OwogICAgICAgICAgICAkYWJvdmVfbGF0aW5zKys7CiAgICAg
ICAgfQogICAgICAgIGxhc3QgaWYgJGFib3ZlX2xhdGlucyA+PSA1ICYmICRtdWx0aV9jaGFy
ID49IDU7CiAgICB9CgogICAgIyBBbmQgZmluYWxseSBvbmUgbm9uLVVuaWNvZGUgY29kZSBw
b2ludC4KICAgIHB1c2ggQGNvZGVfcG9pbnRzLCAweDExMDAwMDsgICAgIyBBYm92ZSBVbmlj
b2RlLCBubyBwcm9wIHNob3VsZCBtYXRjaAogICAgbm8gd2FybmluZ3MgJ25vbl91bmljb2Rl
JzsKCiAgICAjICRuIGlzIG5hdGl2ZTsgJHUgdW5pY29kZS4KICAgIGZvciBteSAkbiAoQGNv
ZGVfcG9pbnRzKSB7CiAgICAgICAgbXkgJHUgPSB1dGY4OjpuYXRpdmVfdG9fdW5pY29kZSgk
bik7CiAgICAgICAgbXkgJGZ1bmN0aW9uID0gJG5hbWU7CgogICAgICAgIG15ICRpbmRleCA9
IHNlYXJjaF9pbnZsaXN0KFxAeyRsaXN0X3JlZn0sICRuKTsKCiAgICAgICAgbXkgJHJldDsK
ICAgICAgICBteSAkY2hhcl9uYW1lID0gZ2V0X2NoYXJuYW1lKCRuKTsKICAgICAgICBteSAk
ZGlzcGxheV9uYW1lID0gc3ByaW50ZiAiXFxOe1UrJTAyWCwgJXN9IiwgJG4sICRjaGFyX25h
bWU7CgogICAgICAgIGZvcmVhY2ggbXkgJHN1ZmZpeCAoIiIsICJfTDEiLCAiX0xDIikgewoK
ICAgICAgICAgICAgIyBUaGlzIGlzIHRoZSBvbmx5IG1hY3JvIGRlZmluZWQgZm9yIEwxCiAg
ICAgICAgICAgIG5leHQgaWYgJHN1ZmZpeCBlcSAiX0wxIiAmJiAkZnVuY3Rpb24gbmUgIkxP
V0VSIjsKCiAgICAgICAgICBTS0lQOgogICAgICAgICAgICBmb3JlYWNoIG15ICRsb2NhbGUg
KCIiLCAkYmFzZV9sb2NhbGUsICR1dGY4X2xvY2FsZSkgewoKICAgICAgICAgICAgICAgICMg
dGl0bGVjYXNlIGlzIG5vdCBkZWZpbmVkIGluIGxvY2FsZXMuCiAgICAgICAgICAgICAgICBu
ZXh0IGlmICRuYW1lIGVxICdUSVRMRScgJiYgJHN1ZmZpeCBlcSAiX0xDIjsKCiAgICAgICAg
ICAgICAgICBteSAoJGRpc3BsYXlfbG9jYWxlLCAkbG9jYWxlX2lzX3V0ZjgpCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgPSBnZXRfZGlzcGxheV9sb2NhbGVfb3Jfc2tpcCgk
bG9jYWxlLCAkc3VmZml4KTsKICAgICAgICAgICAgICAgIG5leHQgdW5sZXNzIGRlZmluZWQg
JGRpc3BsYXlfbG9jYWxlOwoKICAgICAgICAgICAgICAgIHNraXAoInRvJHtuYW1lfV9MQyBk
b2VzIG5vdCB3b3JrIGZvciBMQVRJTiBTTUFMTCBMRVRURVIgU0hBUlAgUyIKICAgICAgICAg
ICAgICAgICAgLiAiJGRpc3BsYXlfbG9jYWxlIiwgMSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICAkdSA9PSAweERGICYmICRuYW1lID1+IC8gRk9MRCB8IFVQUEVSIC94CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYgJHN1ZmZpeCBlcSAiX0xDIiAmJiAkbG9j
YWxlX2lzX3V0Zjg7CgogICAgICAgICAgICAgICAgdXNlIGlmICRsb2NhbGUsICJsb2NhbGUi
OwogICAgICAgICAgICAgICAgUE9TSVg6OnNldGxvY2FsZSggJlBPU0lYOjpMQ19BTEwsICRs
b2NhbGUpIGlmICRsb2NhbGU7CgogICAgICAgICAgICAgICAgbXkgJGRpc3BsYXlfY2FsbCA9
ICJ0byR7ZnVuY3Rpb259JHN1ZmZpeCgiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIC4gIiAkZGlzcGxheV9uYW1lICkkZGlzcGxheV9sb2NhbGUiOwogICAgICAgICAgICAg
ICAgJHJldCA9IGV2YWwgInRlc3RfdG8ke2Z1bmN0aW9ufSRzdWZmaXgoJG4pIjsKICAgICAg
ICAgICAgICAgIGlmIChpcyAoJEAsICIiLCAiJGRpc3BsYXlfY2FsbCBkaWRuJ3QgZ2l2ZSBl
cnJvciIpKSB7CiAgICAgICAgICAgICAgICAgICAgbXkgJHNob3VsZF9iZTsKICAgICAgICAg
ICAgICAgICAgICBpZiAoJG4gPiAyNTUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHNo
b3VsZF9iZSA9ICRuOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAg
ICBlbHNpZiAoICAgICAkdSA+IDEyNwogICAgICAgICAgICAgICAgICAgICAgICAgICAgJiYg
KCAgICRzdWZmaXggZXEgIiIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAo
JHN1ZmZpeCBlcSAiX0xDIiAmJiAhICRsb2NhbGVfaXNfdXRmOCkpKQogICAgICAgICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgJHNob3VsZF9iZSA9ICRuOwogICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNpZiAoJG1hcF9yZWYt
PlskaW5kZXhdICE9ICRtaXNzaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICRzaG91
bGRfYmUgPSAkbWFwX3JlZi0+WyRpbmRleF0gKyAkbiAtICRsaXN0X3JlZi0+WyRpbmRleF0K
ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICRzaG91bGRfYmUgPSAkbjsKICAgICAgICAgICAgICAgICAg
ICB9CgogICAgICAgICAgICAgICAgICAgIGlzICgkcmV0LCAkc2hvdWxkX2JlLAogICAgICAg
ICAgICAgICAgICAgICAgICBzcHJpbnRmKCIke3RhYn1BbmQgY29ycmVjdGx5IHJldHVybmVk
IDB4JTAyWCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgJHNob3VsZF9iZSkpOwogICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIFRoZSBfdW5pLCB1dmNociwgYW5kIF91
dGY4IGZ1bmN0aW9ucyByZXR1cm4gYm90aCB0aGUgb3JkaW5hbCBvZiB0aGUKICAgICAgICAj
IGZpcnN0IGNvZGUgcG9pbnQgb2YgdGhlIHJlc3VsdCwgYW5kIHRoZSByZXN1bHQgaW4gdXRm
OC4gIFRoZSAueHMKICAgICAgICAjIHRlc3RzIHJldHVybiB0aGVzZSBpbiBhbiBhcnJheSwg
aW4gWzBdIGFuZCBbMV0gcmVzcGVjdGl2ZWx5LCB3aXRoCiAgICAgICAgIyBbMl0gdGhlIGxl
bmd0aCBvZiB0aGUgdXRmOCBpbiBieXRlcy4KICAgICAgICBteSAkdXRmOF9zaG91bGRfYmUg
PSAiIjsKICAgICAgICBteSAkZmlyc3Rfb3JkX3Nob3VsZF9iZTsKICAgICAgICBpZiAocmVm
ICRtYXBfcmVmLT5bJGluZGV4XSkgeyAgICMgQSBtdWx0aS1jaGFyIHJlc3VsdAogICAgICAg
ICAgICBmb3IgbXkgJG4gKDAgLi4gQHskbWFwX3JlZi0+WyRpbmRleF19IC0gMSkgewogICAg
ICAgICAgICAgICAgJHV0Zjhfc2hvdWxkX2JlIC49IGNociAkbWFwX3JlZi0+WyRpbmRleF1b
JG5dOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkZmlyc3Rfb3JkX3Nob3VsZF9iZSA9
ICRtYXBfcmVmLT5bJGluZGV4XVswXTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7ICAjIEEg
c2luZ2xlLWNoYXIgcmVzdWx0CiAgICAgICAgICAgICRmaXJzdF9vcmRfc2hvdWxkX2JlID0g
KCRtYXBfcmVmLT5bJGluZGV4XSAhPSAkbWlzc2luZykKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgPyAkbWFwX3JlZi0+WyRpbmRleF0gKyAkbgogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtICRsaXN0X3Jl
Zi0+WyRpbmRleF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAkbjsK
ICAgICAgICAgICAgJHV0Zjhfc2hvdWxkX2JlID0gY2hyICRmaXJzdF9vcmRfc2hvdWxkX2Jl
OwogICAgICAgIH0KICAgICAgICB1dGY4Ojp1cGdyYWRlKCR1dGY4X3Nob3VsZF9iZSk7Cgog
ICAgICAgICMgVGVzdCBfdW5pLCB1dmNocgogICAgICAgIGZvcmVhY2ggbXkgJHN1ZmZpeCAo
J191bmknLCAnX3V2Y2hyJykgewogICAgICAgICAgICBteSAkczsKICAgICAgICAgICAgbXkg
JGxlbjsKICAgICAgICAgICAgbXkgJGRpc3BsYXlfY2FsbCA9ICJ0byR7ZnVuY3Rpb259JHN1
ZmZpeCggJGRpc3BsYXlfbmFtZSApIjsKICAgICAgICAgICAgJHJldCA9IGV2YWwgInRlc3Rf
dG8ke2Z1bmN0aW9ufSRzdWZmaXgoJG4pIjsKICAgICAgICAgICAgaWYgKGlzICgkQCwgIiIs
ICIkZGlzcGxheV9jYWxsIGRpZG4ndCBnaXZlIGVycm9yIikpIHsKICAgICAgICAgICAgICAg
IGlzICgkcmV0LT5bMF0sICRmaXJzdF9vcmRfc2hvdWxkX2JlLAogICAgICAgICAgICAgICAg
ICAgIHNwcmludGYoIiR7dGFifUFuZCBjb3JyZWN0bHkgcmV0dXJuZWQgMHglMDJYIiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRmaXJz
dF9vcmRfc2hvdWxkX2JlKSk7CiAgICAgICAgICAgICAgICBpcyAoJHJldC0+WzFdLCAkdXRm
OF9zaG91bGRfYmUsICIke3RhYn1Hb3QgY29ycmVjdCB1dGY4Iik7CiAgICAgICAgICAgICAg
ICB1c2UgYnl0ZXM7CiAgICAgICAgICAgICAgICBpcyAoJHJldC0+WzJdLCBsZW5ndGggJHV0
Zjhfc2hvdWxkX2JlLAogICAgICAgICAgICAgICAgICAgICIke3RhYn1Hb3QgY29ycmVjdCBu
dW1iZXIgb2YgYnl0ZXMgZm9yIHV0ZjggbGVuZ3RoIik7CiAgICAgICAgICAgIH0KICAgICAg
ICB9CgogICAgICAgICMgVGVzdCBfdXRmOAogICAgICAgIG15ICRjaGFyID0gY2hyKCRuKTsK
ICAgICAgICB1dGY4Ojp1cGdyYWRlKCRjaGFyKTsKICAgICAgICAkY2hhciA9IHF1b3RlbWV0
YSAkY2hhciBpZiAkY2hhciBlcSAnXFwnIHx8ICRjaGFyIGVxICInIjsKICAgICAgICBmb3Jl
YWNoIG15ICR1dGY4X3BhcmFtKCJfc2FmZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIl9zYWZlLCBtYWxmb3JtZWQiLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICJkZXByZWNhdGVkIHVuc2FmZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgImRlcHJlY2F0ZWQgbWF0aG9tcyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKQogICAgICAgIHsKICAgICAgICAgICAgdXNlIENvbmZpZzsKICAgICAgICAgICAgbmV4
dCBpZiAgICAkdXRmOF9wYXJhbSBlcSAnZGVwcmVjYXRlZCBtYXRob21zJwogICAgICAgICAg
ICAgICAgICAgICYmICRDb25maWd7J2NjZmxhZ3MnfSA9fiAvLUROT19NQVRIT01TLzsKCiAg
ICAgICAgICAgIG15ICR1dGY4X3BhcmFtX2NvZGUgPSAkdXRmOF9wYXJhbV9jb2RleyR1dGY4
X3BhcmFtfTsKICAgICAgICAgICAgbXkgJGV4cGVjdF9lcnJvciA9ICR1dGY4X3BhcmFtX2Nv
ZGUgPiAwOwoKICAgICAgICAgICAgIyBTa2lwIGlmIGNhbid0IG1hbGZvcm0gKGJlY2F1c2Ug
aXMgYSBVVEYtOCBpbnZhcmlhbnQpCiAgICAgICAgICAgIG5leHQgaWYgJGV4cGVjdF9lcnJv
ciAmJiAkdSA8ICgob3JkICJBIiA9PSA2NSkgPyAxMjggOiAxNjApOwoKICAgICAgICAgICAg
bXkgJGRpc3BsYXlfY2FsbCA9ICJ0byR7ZnVuY3Rpb259X3V0ZjgoJGRpc3BsYXlfbmFtZSwg
JHV0ZjhfcGFyYW0gKSI7CiAgICAgICAgICAgIG15ICRjb2RlID0gInRlc3RfdG8ke2Z1bmN0
aW9ufV91dGY4KCckY2hhcicsICR1dGY4X3BhcmFtX2NvZGUpIjsKICAgICAgICAgICAgJHJl
dCA9IGV2YWwgICAkY29kZTsKICAgICAgICAgICAgbXkgJGVyciA9ICRAOwogICAgICAgICAg
ICBpZiAoJGV4cGVjdF9lcnJvcikgewogICAgICAgICAgICAgICAgaXNudCAoJEAsICIiLCAi
ZXhwZWN0ZWQgYW5kIGdvdCBlcnJvciBpbiAkZGlzcGxheV9jYWxsIik7CiAgICAgICAgICAg
ICAgICBsaWtlKCRALCBxci9NYWxmb3JtZWQgVVRGLTggY2hhcmFjdGVyLywKICAgICAgICAg
ICAgICAgICAgICAgIiR7dGFifUFuZCBnb3QgZXhwZWN0ZWQgbWVzc2FnZSIpOwogICAgICAg
ICAgICAgICAgdW5kZWYgQHdhcm5pbmdzOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVs
c2lmIChpcyAoJEAsICIiLCAiJGRpc3BsYXlfY2FsbCBkaWRuJ3QgZ2l2ZSBlcnJvciIpKSB7
CiAgICAgICAgICAgICAgICBpcyAoJHJldC0+WzBdLCAkZmlyc3Rfb3JkX3Nob3VsZF9iZSwK
ICAgICAgICAgICAgICAgICAgICBzcHJpbnRmKCIke3RhYn1BbmQgY29ycmVjdGx5IHJldHVy
bmVkIDB4JTAyWCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAkZmlyc3Rfb3JkX3Nob3VsZF9iZSkpOwogICAgICAgICAgICAgICAgaXMg
KCRyZXQtPlsxXSwgJHV0Zjhfc2hvdWxkX2JlLCAiJHt0YWJ9R290IGNvcnJlY3QgdXRmOCIp
OwogICAgICAgICAgICAgICAgdXNlIGJ5dGVzOwogICAgICAgICAgICAgICAgaXMgKCRyZXQt
PlsyXSwgbGVuZ3RoICR1dGY4X3Nob3VsZF9iZSwKICAgICAgICAgICAgICAgICAgICAiJHt0
YWJ9R290IGNvcnJlY3QgbnVtYmVyIG9mIGJ5dGVzIGZvciB1dGY4IGxlbmd0aCIpOwogICAg
ICAgICAgICAgICAgaWYgKCR1dGY4X3BhcmFtX2NvZGUgPCAwKSB7CiAgICAgICAgICAgICAg
ICAgICAgbXkgJHdhcm5pbmdzX29rOwogICAgICAgICAgICAgICAgICAgIGlmICghICRzZWVu
eyIke2Z1bmN0aW9ufV91dGY4JHV0ZjhfcGFyYW0ifSsrKSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICR3YXJuaW5nc19vayA9IGlzKEB3YXJuaW5ncywgMSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiR7dGFifUdvdCBhIHNpbmds
ZSB3YXJuaW5nIik7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkd2FybmluZ3Nfb2sp
IHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG15ICRleHBlY3RlZDsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICgkdXRmOF9wYXJhbV9jb2RlID09IC0yKSB7CiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbXkgJGxjX2Z1bmMgPSBsYyAkZnVuY3Rpb247
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJGV4cGVjdGVkCiAgICAgICAgICAg
ICAgICA9IHFyL3N0YXJ0aW5nIGluIFBlcmwgLiogdG9fdXRmOF8kbGNfZnVuY1woXCkgd2ls
bCBiZSByZW1vdmVkLzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICRleHBlY3RlZAogICAgICAgICAgICAgICAgPSBxci9zdGFydGluZyBpbiBQZXJsIC4q
IHdpbGwgcmVxdWlyZSBhbiBhZGRpdGlvbmFsIHBhcmFtZXRlci87CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAkd2FybmluZ3Nf
b2sgPSBsaWtlKCR3YXJuaW5nc1swXSwgJGV4cGVjdGVkLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIke3RhYn1Hb3QgZXhwZWN0ZWQgZGVwcmVjYXRpb24gd2Fy
bmluZyIpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICAk
d2FybmluZ3Nfb2sgPSBpcyhAd2FybmluZ3MsIDAsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiJHt0YWJ9RGVwcmVjYXRpb24gd2FybmVkIG9ubHkgdGhlIG9uZSB0aW1l
Iik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICR3YXJuaW5n
c19vayBvciBkaWFnKCJAd2FybmluZ3MiKTsKICAgICAgICAgICAgICAgICAgICB1bmRlZiBA
d2FybmluZ3M7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAg
ZWxzZSB7CiAgICAgICAgICAgICAgICB3YXJuICJYWFggdW5leHBlY3RlZCBldmFsIGZhaWw6
XG4iOwogICAgICAgICAgICAgICAgdXNlIERldmVsOjpQZWVrOwogICAgICAgICAgICAgICAg
RHVtcCAkZnVuY3Rpb247CiAgICAgICAgICAgICAgICBEdW1wICRjaGFyOwogICAgICAgICAg
ICAgICAgRHVtcCAkdXRmOF9wYXJhbV9jb2RlOwogICAgICAgICAgICAgICAgRHVtcCAkY29k
ZTsKICAgICAgICAgICAgICAgIER1bXAgJHJldDsKICAgICAgICAgICAgICAgIER1bXAgJGVy
cjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKIyBUaGlzIGlzIHByaW1hcmls
eSB0byBtYWtlIHN1cmUgdGhhdCBubyBub24tVW5pY29kZSB3YXJuaW5ncyBnZXQgZ2VuZXJh
dGVkCmlzKHNjYWxhciBAd2FybmluZ3MsIDAsICJObyB1bmV4cGVjdGVkIHdhcm5pbmdzIHdl
cmUgZ2VuZXJhdGVkIGluIHRoZSB0ZXN0cyIpCiAgb3IgZGlhZyBAd2FybmluZ3M7Cgpkb25l
X3Rlc3Rpbmc7Cg==
--------------F5B21D8D87337260BC01991E--