113535|book.shmop|49|1382831896|mattcsl at gmail dot com|dGhhbmt5b3UsCgp0aGlzIGZ1bmN0aW9uIGhhZCBhIG1pc3NpbmcgY29tbWEgYmV0d2VlbiB0ZXN0MSBhbmQgdGVzdDIgYW5kIGlzIGZpeGVkIGJlbG93CgpmdW5jdGlvbiBnZXRfY2FjaGVfaWQoJG5hbWUpIHsKICAgIC8vIG1haW50YWluIGxpc3Qgb2YgY2FjaGVzIGhlcmUKICAgICRpZD1hcnJheSggICd0ZXN0MScgPT4gMSwKICAgICAgICAgICAgICAgICd0ZXN0MicgPT4gMgogICAgICAgICAgICAgICAgKTsKCiAgICByZXR1cm4gJGlkWyRuYW1lXTsKfQ==|27|28 111626|book.shmop|55|1362870338|makr at makrit dot net|c2htb3AgbWFkZSBzaW1wbGU6CiR0ZXN0PWdldF9jYWNoZSgndGVzdCcpOwpzYXZlX2NhY2hlKCR0ZXN0LCAndGVzdDEnLCA2MDApOwoKVG8gc2F2ZS9nZXQgY2FjaGUgdGhhdCBlYXNpbHkganVzdCBzYXZlIHRoaXMgYXMgY2FjaGUucGhwIG9yIHdoYXRldmVyIHlvdSBzZWUgZml0OgoKPD9waHAKCmZ1bmN0aW9uIHNhdmVfY2FjaGUoJGRhdGEsICRuYW1lLCAkdGltZW91dCkgewogICAgLy8gZGVsZXRlIGNhY2hlCiAgICAkaWQ9c2htb3Bfb3BlbihnZXRfY2FjaGVfaWQoJG5hbWUpLCAiYSIsIDAsIDApOwogICAgc2htb3BfZGVsZXRlKCRpZCk7CiAgICBzaG1vcF9jbG9zZSgkaWQpOwogICAgCiAgICAvLyBnZXQgaWQgZm9yIG5hbWUgb2YgY2FjaGUKICAgICRpZD1zaG1vcF9vcGVuKGdldF9jYWNoZV9pZCgkbmFtZSksICJjIiwgMDY0NCwgc3RybGVuKHNlcmlhbGl6ZSgkZGF0YSkpKTsKICAgIAogICAgLy8gcmV0dXJuIGludCBmb3IgZGF0YSBzaXplIG9yIGJvb2xlYW4gZmFsc2UgZm9yIGZhaWwKICAgIGlmICgkaWQpIHsKICAgICAgICBzZXRfdGltZW91dCgkbmFtZSwgJHRpbWVvdXQpOwogICAgICAgIHJldHVybiBzaG1vcF93cml0ZSgkaWQsIHNlcmlhbGl6ZSgkZGF0YSksIDApOwogICAgfQogICAgZWxzZSByZXR1cm4gZmFsc2U7Cn0KCmZ1bmN0aW9uIGdldF9jYWNoZSgkbmFtZSkgewogICAgaWYgKCFjaGVja190aW1lb3V0KCRuYW1lKSkgewogICAgICAgICRpZD1zaG1vcF9vcGVuKGdldF9jYWNoZV9pZCgkbmFtZSksICJhIiwgMCwgMCk7CgogICAgICAgIGlmICgkaWQpICRkYXRhPXVuc2VyaWFsaXplKHNobW9wX3JlYWQoJGlkLCAwLCBzaG1vcF9zaXplKCRpZCkpKTsKICAgICAgICBlbHNlIHJldHVybiBmYWxzZTsgICAgICAgICAgLy8gZmFpbGVkIHRvIGxvYWQgZGF0YQoKICAgICAgICBpZiAoJGRhdGEpIHsgICAgICAgICAgICAgICAgLy8gYXJyYXkgcmV0cmlldmVkCiAgICAgICAgICAgIHNobW9wX2Nsb3NlKCk7CiAgICAgICAgICAgIHJldHVybiAkZGF0YTsKICAgICAgICB9CiAgICAgICAgZWxzZSByZXR1cm4gZmFsc2U7ICAgICAgICAgIC8vIGZhaWxlZCB0byBsb2FkIGRhdGEKICAgIH0KICAgIGVsc2UgcmV0dXJuIGZhbHNlOyAgICAgICAgICAgICAgLy8gZGF0YSB3YXMgZXhwaXJlZAp9CgpmdW5jdGlvbiBnZXRfY2FjaGVfaWQoJG5hbWUpIHsKICAgIC8vIG1haW50YWluIGxpc3Qgb2YgY2FjaGVzIGhlcmUKICAgICRpZD1hcnJheSggICd0ZXN0MScgPT4gMQogICAgICAgICAgICAgICAgJ3Rlc3QyJyA9PiAyCiAgICAgICAgICAgICAgICApOwoKICAgIHJldHVybiAkaWRbJG5hbWVdOwp9CgpmdW5jdGlvbiBzZXRfdGltZW91dCgkbmFtZSwgJGludCkgewogICAgJHRpbWVvdXQ9bmV3IERhdGVUaW1lKGRhdGUoJ1ktbS1kIEg6aTpzJykpOwogICAgZGF0ZV9hZGQoJHRpbWVvdXQsIGRhdGVfaW50ZXJ2YWxfY3JlYXRlX2Zyb21fZGF0ZV9zdHJpbmcoIiRpbnQgc2Vjb25kcyIpKTsKICAgICR0aW1lb3V0PWRhdGVfZm9ybWF0KCR0aW1lb3V0LCAnWW1kSGlzJyk7CgogICAgJGlkPXNobW9wX29wZW4oMTAwLCAiYSIsIDAsIDApOwogICAgaWYgKCRpZCkgJHRsPXVuc2VyaWFsaXplKHNobW9wX3JlYWQoJGlkLCAwLCBzaG1vcF9zaXplKCRpZCkpKTsKICAgIGVsc2UgJHRsPWFycmF5KCk7CiAgICBzaG1vcF9kZWxldGUoJGlkKTsKICAgIHNobW9wX2Nsb3NlKCRpZCk7CgogICAgJHRsWyRuYW1lXT0kdGltZW91dDsKICAgICRpZD1zaG1vcF9vcGVuKDEwMCwgImMiLCAwNjQ0LCBzdHJsZW4oc2VyaWFsaXplKCR0bCkpKTsKICAgIHNobW9wX3dyaXRlKCRpZCwgc2VyaWFsaXplKCR0bCksIDApOwp9CgpmdW5jdGlvbiBjaGVja190aW1lb3V0KCRuYW1lKSB7CiAgICAkbm93PW5ldyBEYXRlVGltZShkYXRlKCdZLW0tZCBIOmk6cycpKTsKICAgICRub3c9ZGF0ZV9mb3JtYXQoJG5vdywgJ1ltZEhpcycpOwoKICAgICRpZD1zaG1vcF9vcGVuKDEwMCwgImEiLCAwLCAwKTsKICAgIGlmICgkaWQpICR0bD11bnNlcmlhbGl6ZShzaG1vcF9yZWFkKCRpZCwgMCwgc2htb3Bfc2l6ZSgkaWQpKSk7CiAgICBlbHNlIHJldHVybiB0cnVlOwogICAgc2htb3BfY2xvc2UoJGlkKTsKCiAgICAkdGltZW91dD0kdGxbJG5hbWVdOwogICAgcmV0dXJuIChpbnR2YWwoJG5vdyk+aW50dmFsKCR0aW1lb3V0KSk7Cn0KCj8+|33|27