LyoKICogVGhpcyB0ZXN0IGlzIGZyb20gUFIjMTkzCiAqLwoKLyogdGVzdDp0c2hsCiBDb21waWxhdGlvbiBmYWlscyB3aXRoIHZ2cCBmcm9tIGljYXJ1cyB2ZXJpbG9nLTIwMDEwNjE2IHNuYXBzaG90CiAKJCBpdmVyaWxvZyAtdCB2dnAgdHNobC52Cml2bDogZXZhbF9leHByLmM6NDE4OiBkcmF3X2JpbmFyeV9leHByX2xzOiBBc3NlcnRpb24gYDAnIGZhaWxlZC4gCiAKIApJbiB2dm0sIHJ1bnRpbWUgaGFzIHRyb3VibGUgd2l0aCAkZGlzcGxheQogCiQgaXZlcmlsb2cgdHNobC52CiQgLi9hLm91dApvdXQ9MDHA6/+/YV5bWz8xOzJjJAoKKGxvb2tzIGxpa2UgdGhlICBjb3JyZWN0IG91dHB1dCAib3V0PTAxIiBmb2xsb3dlZCBieSBzb21lIAogcmFuZG9tIG1lbW9yeSBnYXJiYWdlLikKCiAqLwoKbW9kdWxlIHRzaGw7CgogICByZWcgWzI6MF0gYml0OwogICB3aXJlIFs3OjBdIHNoYml0OwogICBpbnRlZ2VyICAgIGk7CiAgIAoKICAgc2hsIHNobF8wKHNoYml0LCBiaXQpOwoKICAgaW5pdGlhbCBiZWdpbgoKICAgICAgZm9yKGkgPSAwOyBpIDwgODsgaSA9IGkgKyAxKSBiZWdpbgoJIGJpdCA8PSBpWzI6MF07CgkgIzEKCSAgICAkZGlzcGxheSgib3V0PSVoIiwgc2hiaXQpOwogICAgICBlbmQgLy8gZm9yIChpID0gMDsgaSA8IDg7IGkgPSBpICsgMSkKICAgICAgCiAgICAgICRmaW5pc2g7CiAgIGVuZCAvLyBpbml0aWFsIGJlZ2luCmVuZG1vZHVsZQogICAgIAptb2R1bGUgc2hsKG91dCwgYml0KTsKICAgCiAgIG91dHB1dCBbNzowXSBvdXQ7CiAgIGlucHV0IFsyOjBdIAliaXQ7CgogICByZWcgWzc6MF0gCW91dF9yZWc7CiAgICAgIAogICBhbHdheXMgQChiaXQpIGJlZ2luCiAgICAgIG91dF9yZWcgPD0gOCdoMDEgPDwgYml0OwogICAgICAKICAgZW5kIC8vIGFsd2F5cyBAIChiaXQpCgogICBhc3NpZ24gb3V0ID0gb3V0X3JlZzsKICAgCmVuZG1vZHVsZSAvLyBzaGwKCgogICAKCgo=