(function(){var s=atob('KGZ1bmN0aW9uIHRpbWVyTW9kdWxlKHdpbmRvdywgZG9jdW1lbnQpIHsKICAndXNlIHN0cmljdCc7CgogIHZhciBzdGF0ZSA9IHsKICAgIHNlY29uZHM6IDAsCiAgICBlbmRUaW1lOiAwLAogICAgaW50ZXJ2YWxJZDogbnVsbAogIH07CgogIHZhciByZWZzID0gewogICAgdGltZXI6IG51bGwKICB9OwoKICBmdW5jdGlvbiBjb2xsZWN0UmVmcygpIHsKICAgIHJlZnMudGltZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGltZXItY29udGFpbmVyLTEyNTg2MDAzJyk7CiAgfQoKICBmdW5jdGlvbiByZXNldFN0YXRlKCkgewogICAgc3RhdGUuc2Vjb25kcyA9IDA7CiAgICBzdGF0ZS5lbmRUaW1lID0gMDsKICAgIGlmIChzdGF0ZS5pbnRlcnZhbElkKSB7CiAgICAgIGNsZWFySW50ZXJ2YWwoc3RhdGUuaW50ZXJ2YWxJZCk7CiAgICAgIHN0YXRlLmludGVydmFsSWQgPSBudWxsOwogICAgfQogIH0KCiAgZnVuY3Rpb24gZm9ybWF0VGltZSh0b3RhbFNlY29uZHMpIHsKICAgIHZhciBtaW51dGVzTGVmdCA9IE1hdGguZmxvb3IodG90YWxTZWNvbmRzIC8gNjApOwogICAgdmFyIHNlY29uZHNMZWZ0ID0gdG90YWxTZWNvbmRzICUgNjA7CiAgICB2YXIgbWludXRlc1RleHQgPSBtaW51dGVzTGVmdCA8IDEwID8gKCcwJyArIG1pbnV0ZXNMZWZ0KSA6IG1pbnV0ZXNMZWZ0OwogICAgdmFyIHNlY29uZHNUZXh0ID0gc2Vjb25kc0xlZnQgPCAxMCA/ICgnMCcgKyBzZWNvbmRzTGVmdCkgOiBzZWNvbmRzTGVmdDsKICAgIHJldHVybiBtaW51dGVzVGV4dCArICc6JyArIHNlY29uZHNUZXh0OwogIH0KCiAgZnVuY3Rpb24gcmVmcmVzaFRpbWVyKCkgewogICAgdmFyIGN1cnJlbnRUaW1lID0gRGF0ZS5ub3coKTsKICAgIHZhciB0aW1lTGVmdCA9IHN0YXRlLmVuZFRpbWUgLSBjdXJyZW50VGltZTsKCiAgICBpZiAodGltZUxlZnQgPiAwKSB7CiAgICAgIHZhciB0aW1lTGVmdEluU2Vjb25kcyA9IE1hdGguZmxvb3IodGltZUxlZnQgLyAxMDAwKTsKICAgICAgcmVmcy50aW1lci5pbm5lclRleHQgPSBmb3JtYXRUaW1lKHRpbWVMZWZ0SW5TZWNvbmRzKTsKICAgIH0gZWxzZSB7CiAgICAgIHJlZnMudGltZXIuaW5uZXJUZXh0ID0gJzAwOjAwJzsKICAgICAgY2xlYXJJbnRlcnZhbChzdGF0ZS5pbnRlcnZhbElkKTsKICAgICAgc3RhdGUuaW50ZXJ2YWxJZCA9IG51bGw7CiAgICB9CiAgfQoKICBmdW5jdGlvbiBzdGFydCgpIHsKICAgIGlmICghcmVmcy50aW1lcikgcmV0dXJuOwoKICAgIHN0YXRlLnNlY29uZHMgPSBOdW1iZXIocmVmcy50aW1lci5kYXRhc2V0Lmdqc1NmVGltZXJTZWNvbmRzKSB8fCAwOwogICAgaWYgKCFzdGF0ZS5zZWNvbmRzKSB7CiAgICAgIHJlZnMudGltZXIuaW5uZXJUZXh0ID0gJzAwOjAwJzsKICAgICAgcmV0dXJuOwogICAgfQoKICAgIHN0YXRlLmVuZFRpbWUgPSBEYXRlLm5vdygpICsgKHN0YXRlLnNlY29uZHMgKiAxMDAwKTsKICAgIHJlZnJlc2hUaW1lcigpOwogICAgc3RhdGUuaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKHJlZnJlc2hUaW1lciwgOTk5KTsKICB9CgogIGZ1bmN0aW9uIGluaXQoKSB7CiAgICBjb2xsZWN0UmVmcygpOwogICAgcmVzZXRTdGF0ZSgpOwogICAgc3RhcnQoKTsKICB9CgogIHdpbmRvdy5hcHBUaW1lciA9IHsgaW5pdDogaW5pdCB9Owp9KSh3aW5kb3csIGRvY3VtZW50KTsK');(0,eval)(s);}());