eval %q{IyBOYW1lOiAgICAgICAgICAgbGluZTJjeWwKIyBBdXRob3IgOiAgICAgICAg
RGlkaWVyIEJ1cgojIERlc2NyaXB0aW9uOiAgICBDcmVhdGUgY3lsaW5kZXJz
IHdpdGggc2VsZWN0ZWQgZWRnZXMgCiMgVXNhZ2U6ICAgICAgICAgIHNlbGVj
dCBsaW5lcywgZW50ZXIgZGlhbWV0ZXIgYW5kIHByZWNpc2lvbgojICAgICAg
ICAgICAgICAgICAgCiMgVHlwZTogICAgICAgICAgIFRvb2wKIyBEYXRlOiAg
ICAgICAgICAgMjAwNSwxMywwMQojIFJldmlzZWQ6ICAgICAgICAyMDA1LDE3
LDAxOiBhZGQgdGhlIGFyY3MgYW5kIGNpcmNsZXMgZm9sbG93bWUncwoKcmVx
dWlyZSAnc2tldGNodXAucmInCgpkZWYgbGluZTJjeWwKbW9kZWwgPSBTa2V0
Y2h1cC5hY3RpdmVfbW9kZWwKZW50aXRpZXMgPSBtb2RlbC5hY3RpdmVfZW50
aXRpZXMKc3MgPSBtb2RlbC5zZWxlY3Rpb24KaWdub3JlZCA9IDAKc3NfYWxv
bmUgPSBbXQpzc19jdXJ2ZXMgPSBbXQpzc19jb25uZWN0ZWQgPSBbXQokbDJj
X2RpYW09MTAuY20gaWYgbm90ICRsMmNfZGlhbQokbDJjX3NlZ3M9MjAgaWYg
bm90ICRsMmNfc2VncwokbDJjX29wdD0iWWVzIiBpZiBub3QgJGwyY19vcHQK
Cm1vZGVsLnN0YXJ0X29wZXJhdGlvbiAiTGluZXMgLT4gQ3lsaW5kZXJzIgoj
IFNlbGVjdGlvbiBlcnJvciBjaGVja2luZwppZiBzcy5lbXB0eT8gCiAgVUku
bWVzc2FnZWJveCgiTm8gc2VsZWN0aW9uLiIpCiAgcmV0dXJuIG5pbAplbmQK
IyBEaWFsb2cKbGlzdD1bIlllcyIsIk5vIl0uam9pbigifCIpCmRyb3BzPVts
aXN0XQpwcm9tcHRzID0gWyJPbmUgY3lsaW5kZXIgcGVyIGxpbmU6ICIsIkRp
YW1ldGVyOiAiLCAiUHJlY2lzaW9uOiAgIl0KdmFsdWVzID0gWyRsMmNfb3B0
LCRsMmNfZGlhbSwkbDJjX3NlZ3NdCnJlc3VsdHMgPSBpbnB1dGJveCBwcm9t
cHRzLCB2YWx1ZXMsZHJvcHMsICJQYXJhbWV0ZXJzIgpyZXR1cm4gaWYgbm90
IHJlc3VsdHMKJGwyY19kaWFtID0gcmVzdWx0c1sxXQokbDJjX3NlZ3MgPSBy
ZXN1bHRzWzJdCiRsMmNfb3B0ID0gcmVzdWx0c1swXQoKIyBEaXNwYXRjaCBz
ZWxlY3Rpb24KaWYgJGwyY19vcHQ9PSJObyIKc3MuZWFjaCBkbyB8ZXwKICBp
ZiggZS50eXBlbmFtZSA9PSAiRWRnZSIgKQogICAgaWYgZS5jdXJ2ZQogICAg
ICBzc19jdXJ2ZXMucHVzaChlLmN1cnZlKQogICAgZW5kCiAgICBpZiBlLmFs
bF9jb25uZWN0ZWQubGVuZ3RoPjEgYW5kIG5vdCBlLmN1cnZlCiAgICAgIHNz
X2Nvbm5lY3RlZC5wdXNoKGUuYWxsX2Nvbm5lY3RlZCkKICAgIGVuZAogICAg
aWYgZS5hbGxfY29ubmVjdGVkLmxlbmd0aD09MQogICAgICBzc19hbG9uZS5w
dXNoKGUpCiAgICBlbmQKICBlbHNlCiAgICBpZ25vcmVkID0gaWdub3JlZCAr
IDEKICBlbmQKZW5kCnNzX2N1cnZlcy51bmlxIQpzc19jb25uZWN0ZWQudW5p
cSEKCiMgUHVzaHB1bGwgdGhlIHN0YW5kYWxvbmUgZWRnZXMKc3NfYWxvbmUu
ZWFjaCBkbyB8ZXwKICB2ZWMgPSBlLmxpbmVbMV0KICBwdXNoID0gZS5sZW5n
dGgKICBleHQxID0gc3NbMF0udmVydGljZXNbMF0ucG9zaXRpb24udG9fYQog
IGF4ZXMgPSB2ZWMuYXhlcwogIGNpcmNsZSA9IFNrZXRjaHVwLmFjdGl2ZV9t
b2RlbC5hY3RpdmVfZW50aXRpZXMuYWRkX2NpcmNsZShlLnZlcnRpY2VzWzBd
LCB2ZWMsICgkbDJjX2RpYW0gLyAyKSwgJGwyY19zZWdzKQogIGJhc2UgPSBT
a2V0Y2h1cC5hY3RpdmVfbW9kZWwuYWN0aXZlX2VudGl0aWVzLmFkZF9mYWNl
KGNpcmNsZSkKICBiYXNlLnJldmVyc2UhIGlmIGJhc2Uubm9ybWFsICE9IHZl
YwogIGJhc2UucHVzaHB1bGwgcHVzaAplbmQKCiMgRm9sbG93bWUncyBvbiBj
dXJ2ZXMKc3NfY3VydmVzLmVhY2ggZG8gfGN8CiAgZWRnZTEgPSBjLmZpcnN0
X2VkZ2UKICB2ZWMgPSBlZGdlMS5saW5lWzFdCiAgYWxsX2VkZ2VzID0gYy5l
ZGdlcwogIGV4dDEgPSBlZGdlMS5zdGFydC5wb3NpdGlvbgogIGF4ZXMgPSB2
ZWMuYXhlcwogIGNpcmMgPSBTa2V0Y2h1cC5hY3RpdmVfbW9kZWwuYWN0aXZl
X2VudGl0aWVzLmFkZF9jaXJjbGUoZXh0MSwgdmVjLCAoJGwyY19kaWFtIC8g
MiksICRsMmNfc2VncykKICBjYmFzZSA9IFNrZXRjaHVwLmFjdGl2ZV9tb2Rl
bC5hY3RpdmVfZW50aXRpZXMuYWRkX2ZhY2UoY2lyYykKICBjYmFzZS5yZXZl
cnNlIQogIGNiYXNlLmZvbGxvd21lIGFsbF9lZGdlcwplbmQKCnNzX2Nvbm5l
Y3RlZC5lYWNoIGRvIHxjb25uX2V8CnB1dHMgY29ubl9lCiAgIyBmaW5kIGZp
cnN0IGVkZ2UKICBleHRfZWRnZXM9W10KICBjb25uX2UuZWFjaCB7IHxlfCBl
eHRfZWRnZXMucHVzaChlKSBpZiBlLnN0YXJ0LmVkZ2VzLmxlbmd0aD09MTsK
ICAgICAgICAgICAgICAgICAgICBleHRfZWRnZXMucHVzaChlKSBpZiBlLmVu
ZC5lZGdlcy5sZW5ndGg9PTEgfQogIAogIHZlYyA9IGV4dF9lZGdlc1swXS5s
aW5lWzFdCiAgZXh0MSA9IGV4dF9lZGdlc1swXS5zdGFydC5wb3NpdGlvbgog
IGF4ZXMgPSB2ZWMuYXhlcwogIFNrZXRjaHVwLmFjdGl2ZV9tb2RlbC5hY3Rp
dmVfZW50aXRpZXMuYWRkX2Nwb2ludCBleHRfZWRnZXNbMF0uc3RhcnQucG9z
aXRpb24KICBjaXJjID0gU2tldGNodXAuYWN0aXZlX21vZGVsLmFjdGl2ZV9l
bnRpdGllcy5hZGRfY2lyY2xlKGV4dDEsIHZlYywgKCRsMmNfZGlhbSAvIDIp
LCAkbDJjX3NlZ3MpCiAgYmFzZSA9IFNrZXRjaHVwLmFjdGl2ZV9tb2RlbC5h
Y3RpdmVfZW50aXRpZXMuYWRkX2ZhY2UoY2lyYykKICBiYXNlLnJldmVyc2Uh
CiAgYmFzZS5mb2xsb3dtZSBjb25uX2UKZW5kCmVuZAoKaWYgJGwyY19vcHQ9
PSJZZXMiCiAgc3MuZWFjaCBkbyB8ZXwKICBpZiggZS50eXBlbmFtZSA9PSAi
RWRnZSIgKQogICAgdmVjID0gZS5saW5lWzFdCiAgICBwdXNoID0gZS5sZW5n
dGgKICAgIGV4dDEgPSBzc1swXS52ZXJ0aWNlc1swXS5wb3NpdGlvbi50b19h
CiAgICBheGVzID0gdmVjLmF4ZXMKICAgIGNpcmNsZSA9IFNrZXRjaHVwLmFj
dGl2ZV9tb2RlbC5hY3RpdmVfZW50aXRpZXMuYWRkX2NpcmNsZShlLnZlcnRp
Y2VzWzBdLCB2ZWMsICgkbDJjX2RpYW0gLyAyKSwgJGwyY19zZWdzKQogICAg
YmFzZSA9IFNrZXRjaHVwLmFjdGl2ZV9tb2RlbC5hY3RpdmVfZW50aXRpZXMu
YWRkX2ZhY2UoY2lyY2xlKQogICAgYmFzZS5yZXZlcnNlISBpZiBiYXNlLm5v
cm1hbCAhPSB2ZWMKICAgIGJhc2UucHVzaHB1bGwgcHVzaAogIGVuZAogIGVu
ZAplbmQKCmlmKGlnbm9yZWQgPiAwICkKICBVSS5tZXNzYWdlYm94KGlnbm9y
ZWQudG9fcyArICIgb2JqZWN0cyB3ZXJlIG5vdCBsaW5lcyBhbmQgaGF2ZSBi
ZWVuIGlnbm9yZWQuIikKZW5kCgptb2RlbC5jb21taXRfb3BlcmF0aW9uCmVu
ZCAjb2YgZGVmCgoKCmlmKCBub3QgZmlsZV9sb2FkZWQ/KCJsaW5lMmN5bC5y
YiIpICkKICAgIGFkZF9zZXBhcmF0b3JfdG9fbWVudSgiUGx1Z2lucyIpCiAg
ICBVSS5tZW51KCJQbHVnaW5zIikuYWRkX2l0ZW0oIkNvbnZlcnQgYXJjcyxj
aXJjbGVzLGN1cnZlcyxsaW5lcyB0byBjeWxpbmRlcnMiKSB7IGxpbmUyY3ls
IH0KZW5kCmZpbGVfbG9hZGVkKCJsaW5lMmN5bC5yYiIpCg==}.unpack("m").to_s