5c861570bd7321aceabd22d4cb54b4a7.json 14 KB

1
  1. {"remainingRequest":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js!E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js!E:\\boman-framwork\\ruoyi-ui\\src\\utils\\index.js","dependencies":[{"path":"E:\\boman-framwork\\ruoyi-ui\\src\\utils\\index.js","mtime":1615971308769},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"E:\\boman-framwork\\ruoyi-ui\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF90eXBlb2YgZnJvbSAiRTovYm9tYW4tZnJhbXdvcmsvcnVveWktdWkvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3R5cGVvZiI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5yZXBsYWNlLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5qb2luLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkubWFwLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LmtleXMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuc3BsaXQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLmZvci1lYWNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuc2xpY2UuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5mcm9tLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc2V0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5yZWdleHAudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3RyaW5nLm1hdGNoLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmNvbnN0cnVjdG9yLmpzIjsKaW1wb3J0IHsgcGFyc2VUaW1lIH0gZnJvbSAnLi9ydW95aSc7Ci8qKg0KICog6KGo5qC85pe26Ze05qC85byP5YyWDQogKi8KCmV4cG9ydCBmdW5jdGlvbiBmb3JtYXREYXRlKGNlbGxWYWx1ZSkgewogIGlmIChjZWxsVmFsdWUgPT0gbnVsbCB8fCBjZWxsVmFsdWUgPT0gIiIpIHJldHVybiAiIjsKICB2YXIgZGF0ZSA9IG5ldyBEYXRlKGNlbGxWYWx1ZSk7CiAgdmFyIHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7CiAgdmFyIG1vbnRoID0gZGF0ZS5nZXRNb250aCgpICsgMSA8IDEwID8gJzAnICsgKGRhdGUuZ2V0TW9udGgoKSArIDEpIDogZGF0ZS5nZXRNb250aCgpICsgMTsKICB2YXIgZGF5ID0gZGF0ZS5nZXREYXRlKCkgPCAxMCA/ICcwJyArIGRhdGUuZ2V0RGF0ZSgpIDogZGF0ZS5nZXREYXRlKCk7CiAgdmFyIGhvdXJzID0gZGF0ZS5nZXRIb3VycygpIDwgMTAgPyAnMCcgKyBkYXRlLmdldEhvdXJzKCkgOiBkYXRlLmdldEhvdXJzKCk7CiAgdmFyIG1pbnV0ZXMgPSBkYXRlLmdldE1pbnV0ZXMoKSA8IDEwID8gJzAnICsgZGF0ZS5nZXRNaW51dGVzKCkgOiBkYXRlLmdldE1pbnV0ZXMoKTsKICB2YXIgc2Vjb25kcyA9IGRhdGUuZ2V0U2Vjb25kcygpIDwgMTAgPyAnMCcgKyBkYXRlLmdldFNlY29uZHMoKSA6IGRhdGUuZ2V0U2Vjb25kcygpOwogIHJldHVybiB5ZWFyICsgJy0nICsgbW9udGggKyAnLScgKyBkYXkgKyAnICcgKyBob3VycyArICc6JyArIG1pbnV0ZXMgKyAnOicgKyBzZWNvbmRzOwp9Ci8qKg0KICogQHBhcmFtIHtudW1iZXJ9IHRpbWUNCiAqIEBwYXJhbSB7c3RyaW5nfSBvcHRpb24NCiAqIEByZXR1cm5zIHtzdHJpbmd9DQogKi8KCmV4cG9ydCBmdW5jdGlvbiBmb3JtYXRUaW1lKHRpbWUsIG9wdGlvbikgewogIGlmICgoJycgKyB0aW1lKS5sZW5ndGggPT09IDEwKSB7CiAgICB0aW1lID0gcGFyc2VJbnQodGltZSkgKiAxMDAwOwogIH0gZWxzZSB7CiAgICB0aW1lID0gK3RpbWU7CiAgfQoKICB2YXIgZCA9IG5ldyBEYXRlKHRpbWUpOwogIHZhciBub3cgPSBEYXRlLm5vdygpOwogIHZhciBkaWZmID0gKG5vdyAtIGQpIC8gMTAwMDsKCiAgaWYgKGRpZmYgPCAzMCkgewogICAgcmV0dXJuICfliJrliJonOwogIH0gZWxzZSBpZiAoZGlmZiA8IDM2MDApIHsKICAgIC8vIGxlc3MgMSBob3VyCiAgICByZXR1cm4gTWF0aC5jZWlsKGRpZmYgLyA2MCkgKyAn5YiG6ZKf5YmNJzsKICB9IGVsc2UgaWYgKGRpZmYgPCAzNjAwICogMjQpIHsKICAgIHJldHVybiBNYXRoLmNlaWwoZGlmZiAvIDM2MDApICsgJ+Wwj+aXtuWJjSc7CiAgfSBlbHNlIGlmIChkaWZmIDwgMzYwMCAqIDI0ICogMikgewogICAgcmV0dXJuICcx5aSp5YmNJzsKICB9CgogIGlmIChvcHRpb24pIHsKICAgIHJldHVybiBwYXJzZVRpbWUodGltZSwgb3B0aW9uKTsKICB9IGVsc2UgewogICAgcmV0dXJuIGQuZ2V0TW9udGgoKSArIDEgKyAn5pyIJyArIGQuZ2V0RGF0ZSgpICsgJ+aXpScgKyBkLmdldEhvdXJzKCkgKyAn5pe2JyArIGQuZ2V0TWludXRlcygpICsgJ+WIhic7CiAgfQp9Ci8qKg0KICogQHBhcmFtIHtzdHJpbmd9IHVybA0KICogQHJldHVybnMge09iamVjdH0NCiAqLwoKZXhwb3J0IGZ1bmN0aW9uIGdldFF1ZXJ5T2JqZWN0KHVybCkgewogIHVybCA9IHVybCA9PSBudWxsID8gd2luZG93LmxvY2F0aW9uLmhyZWYgOiB1cmw7CiAgdmFyIHNlYXJjaCA9IHVybC5zdWJzdHJpbmcodXJsLmxhc3RJbmRleE9mKCc/JykgKyAxKTsKICB2YXIgb2JqID0ge307CiAgdmFyIHJlZyA9IC8oW14/Jj1dKyk9KFtePyY9XSopL2c7CiAgc2VhcmNoLnJlcGxhY2UocmVnLCBmdW5jdGlvbiAocnMsICQxLCAkMikgewogICAgdmFyIG5hbWUgPSBkZWNvZGVVUklDb21wb25lbnQoJDEpOwogICAgdmFyIHZhbCA9IGRlY29kZVVSSUNvbXBvbmVudCgkMik7CiAgICB2YWwgPSBTdHJpbmcodmFsKTsKICAgIG9ialtuYW1lXSA9IHZhbDsKICAgIHJldHVybiByczsKICB9KTsKICByZXR1cm4gb2JqOwp9Ci8qKg0KICogQHBhcmFtIHtzdHJpbmd9IGlucHV0IHZhbHVlDQogKiBAcmV0dXJucyB7bnVtYmVyfSBvdXRwdXQgdmFsdWUNCiAqLwoKZXhwb3J0IGZ1bmN0aW9uIGJ5dGVMZW5ndGgoc3RyKSB7CiAgLy8gcmV0dXJucyB0aGUgYnl0ZSBsZW5ndGggb2YgYW4gdXRmOCBzdHJpbmcKICB2YXIgcyA9IHN0ci5sZW5ndGg7CgogIGZvciAodmFyIGkgPSBzdHIubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHsKICAgIHZhciBjb2RlID0gc3RyLmNoYXJDb2RlQXQoaSk7CiAgICBpZiAoY29kZSA+IDB4N2YgJiYgY29kZSA8PSAweDdmZikgcysrO2Vsc2UgaWYgKGNvZGUgPiAweDdmZiAmJiBjb2RlIDw9IDB4ZmZmZikgcyArPSAyOwogICAgaWYgKGNvZGUgPj0gMHhEQzAwICYmIGNvZGUgPD0gMHhERkZGKSBpLS07CiAgfQoKICByZXR1cm4gczsKfQovKioNCiAqIEBwYXJhbSB7QXJyYXl9IGFjdHVhbA0KICogQHJldHVybnMge0FycmF5fQ0KICovCgpleHBvcnQgZnVuY3Rpb24gY2xlYW5BcnJheShhY3R1YWwpIHsKICB2YXIgbmV3QXJyYXkgPSBbXTsKCiAgZm9yICh2YXIgaSA9IDA7IGkgPCBhY3R1YWwubGVuZ3RoOyBpKyspIHsKICAgIGlmIChhY3R1YWxbaV0pIHsKICAgICAgbmV3QXJyYXkucHVzaChhY3R1YWxbaV0pOwogICAgfQogIH0KCiAgcmV0dXJuIG5ld0FycmF5Owp9Ci8qKg0KICogQHBhcmFtIHtPYmplY3R9IGpzb24NCiAqIEByZXR1cm5zIHtBcnJheX0NCiAqLwoKZXhwb3J0IGZ1bmN0aW9uIHBhcmFtKGpzb24pIHsKICBpZiAoIWpzb24pIHJldHVybiAnJzsKICByZXR1cm4gY2xlYW5BcnJheShPYmplY3Qua2V5cyhqc29uKS5tYXAoZnVuY3Rpb24gKGtleSkgewogICAgaWYgKGpzb25ba2V5XSA9PT0gdW5kZWZpbmVkKSByZXR1cm4gJyc7CiAgICByZXR1cm4gZW5jb2RlVVJJQ29tcG9uZW50KGtleSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQoanNvbltrZXldKTsKICB9KSkuam9pbignJicpOwp9Ci8qKg0KICogQHBhcmFtIHtzdHJpbmd9IHVybA0KICogQHJldHVybnMge09iamVjdH0NCiAqLwoKZXhwb3J0IGZ1bmN0aW9uIHBhcmFtMk9iaih1cmwpIHsKICB2YXIgc2VhcmNoID0gZGVjb2RlVVJJQ29tcG9uZW50KHVybC5zcGxpdCgnPycpWzFdKS5yZXBsYWNlKC9cKy9nLCAnICcpOwoKICBpZiAoIXNlYXJjaCkgewogICAgcmV0dXJuIHt9OwogIH0KCiAgdmFyIG9iaiA9IHt9OwogIHZhciBzZWFyY2hBcnIgPSBzZWFyY2guc3BsaXQoJyYnKTsKICBzZWFyY2hBcnIuZm9yRWFjaChmdW5jdGlvbiAodikgewogICAgdmFyIGluZGV4ID0gdi5pbmRleE9mKCc9Jyk7CgogICAgaWYgKGluZGV4ICE9PSAtMSkgewogICAgICB2YXIgbmFtZSA9IHYuc3Vic3RyaW5nKDAsIGluZGV4KTsKICAgICAgdmFyIHZhbCA9IHYuc3Vic3RyaW5nKGluZGV4ICsgMSwgdi5sZW5ndGgpOwogICAgICBvYmpbbmFtZV0gPSB2YWw7CiAgICB9CiAgfSk7CiAgcmV0dXJuIG9iajsKfQovKioNCiAqIEBwYXJhbSB7c3RyaW5nfSB2YWwNCiAqIEByZXR1cm5zIHtzdHJpbmd9DQogKi8KCmV4cG9ydCBmdW5jdGlvbiBodG1sMlRleHQodmFsKSB7CiAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOwogIGRpdi5pbm5lckhUTUwgPSB2YWw7CiAgcmV0dXJuIGRpdi50ZXh0Q29udGVudCB8fCBkaXYuaW5uZXJUZXh0Owp9Ci8qKg0KICogTWVyZ2VzIHR3byBvYmplY3RzLCBnaXZpbmcgdGhlIGxhc3Qgb25lIHByZWNlZGVuY2UNCiAqIEBwYXJhbSB7T2JqZWN0fSB0YXJnZXQNCiAqIEBwYXJhbSB7KE9iamVjdHxBcnJheSl9IHNvdXJjZQ0KICogQHJldHVybnMge09iamVjdH0NCiAqLwoKZXhwb3J0IGZ1bmN0aW9uIG9iamVjdE1lcmdlKHRhcmdldCwgc291cmNlKSB7CiAgaWYgKF90eXBlb2YodGFyZ2V0KSAhPT0gJ29iamVjdCcpIHsKICAgIHRhcmdldCA9IHt9OwogIH0KCiAgaWYgKEFycmF5LmlzQXJyYXkoc291cmNlKSkgewogICAgcmV0dXJuIHNvdXJjZS5zbGljZSgpOwogIH0KCiAgT2JqZWN0LmtleXMoc291cmNlKS5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wZXJ0eSkgewogICAgdmFyIHNvdXJjZVByb3BlcnR5ID0gc291cmNlW3Byb3BlcnR5XTsKCiAgICBpZiAoX3R5cGVvZihzb3VyY2VQcm9wZXJ0eSkgPT09ICdvYmplY3QnKSB7CiAgICAgIHRhcmdldFtwcm9wZXJ0eV0gPSBvYmplY3RNZXJnZSh0YXJnZXRbcHJvcGVydHldLCBzb3VyY2VQcm9wZXJ0eSk7CiAgICB9IGVsc2UgewogICAgICB0YXJnZXRbcHJvcGVydHldID0gc291cmNlUHJvcGVydHk7CiAgICB9CiAgfSk7CiAgcmV0dXJuIHRhcmdldDsKfQovKioNCiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsZW1lbnQNCiAqIEBwYXJhbSB7c3RyaW5nfSBjbGFzc05hbWUNCiAqLwoKZXhwb3J0IGZ1bmN0aW9uIHRvZ2dsZUNsYXNzKGVsZW1lbnQsIGNsYXNzTmFtZSkgewogIGlmICghZWxlbWVudCB8fCAhY2xhc3NOYW1lKSB7CiAgICByZXR1cm47CiAgfQoKICB2YXIgY2xhc3NTdHJpbmcgPSBlbGVtZW50LmNsYXNzTmFtZTsKICB2YXIgbmFtZUluZGV4ID0gY2xhc3NTdHJpbmcuaW5kZXhPZihjbGFzc05hbWUpOwoKICBpZiAobmFtZUluZGV4ID09PSAtMSkgewogICAgY2xhc3NTdHJpbmcgKz0gJycgKyBjbGFzc05hbWU7CiAgfSBlbHNlIHsKICAgIGNsYXNzU3RyaW5nID0gY2xhc3NTdHJpbmcuc3Vic3RyKDAsIG5hbWVJbmRleCkgKyBjbGFzc1N0cmluZy5zdWJzdHIobmFtZUluZGV4ICsgY2xhc3NOYW1lLmxlbmd0aCk7CiAgfQoKICBlbGVtZW50LmNsYXNzTmFtZSA9IGNsYXNzU3RyaW5nOwp9Ci8qKg0KICogQHBhcmFtIHtzdHJpbmd9IHR5cGUNCiAqIEByZXR1cm5zIHtEYXRlfQ0KICovCgpleHBvcnQgZnVuY3Rpb24gZ2V0VGltZSh0eXBlKSB7CiAgaWYgKHR5cGUgPT09ICdzdGFydCcpIHsKICAgIHJldHVybiBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIDM2MDAgKiAxMDAwICogMjQgKiA5MDsKICB9IGVsc2UgewogICAgcmV0dXJuIG5ldyBEYXRlKG5ldyBEYXRlKCkudG9EYXRlU3RyaW5nKCkpOwogIH0KfQovKioNCiAqIEBwYXJhbSB7RnVuY3Rpb259IGZ1bmMNCiAqIEBwYXJhbSB7bnVtYmVyfSB3YWl0DQogKiBAcGFyYW0ge2Jvb2xlYW59IGltbWVkaWF0ZQ0KICogQHJldHVybiB7Kn0NCiAqLwoKZXhwb3J0IGZ1bmN0aW9uIGRlYm91bmNlKGZ1bmMsIHdhaXQsIGltbWVkaWF0ZSkgewogIHZhciB0aW1lb3V0LCBhcmdzLCBjb250ZXh0LCB0aW1lc3RhbXAsIHJlc3VsdDsKCiAgdmFyIGxhdGVyID0gZnVuY3Rpb24gbGF0ZXIoKSB7CiAgICAvLyDmja7kuIrkuIDmrKHop6blj5Hml7bpl7Tpl7TpmpQKICAgIHZhciBsYXN0ID0gK25ldyBEYXRlKCkgLSB0aW1lc3RhbXA7IC8vIOS4iuasoeiiq+WMheijheWHveaVsOiiq+iwg+eUqOaXtumXtOmXtOmalCBsYXN0IOWwj+S6juiuvuWumuaXtumXtOmXtOmalCB3YWl0CgogICAgaWYgKGxhc3QgPCB3YWl0ICYmIGxhc3QgPiAwKSB7CiAgICAgIHRpbWVvdXQgPSBzZXRUaW1lb3V0KGxhdGVyLCB3YWl0IC0gbGFzdCk7CiAgICB9IGVsc2UgewogICAgICB0aW1lb3V0ID0gbnVsbDsgLy8g5aaC5p6c6K6+5a6a5Li6aW1tZWRpYXRlPT09dHJ1Ze+8jOWboOS4uuW8gOWni+i+ueeVjOW3sue7j+iwg+eUqOi/h+S6huatpOWkhOaXoOmcgOiwg+eUqAoKICAgICAgaWYgKCFpbW1lZGlhdGUpIHsKICAgICAgICByZXN1bHQgPSBmdW5jLmFwcGx5KGNvbnRleHQsIGFyZ3MpOwogICAgICAgIGlmICghdGltZW91dCkgY29udGV4dCA9IGFyZ3MgPSBudWxsOwogICAgICB9CiAgICB9CiAgfTsKCiAgcmV0dXJuIGZ1bmN0aW9uICgpIHsKICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykgewogICAgICBhcmdzW19rZXldID0gYXJndW1lbnRzW19rZXldOwogICAgfQoKICAgIGNvbnRleHQgPSB0aGlzOwogICAgdGltZXN0YW1wID0gK25ldyBEYXRlKCk7CiAgICB2YXIgY2FsbE5vdyA9IGltbWVkaWF0ZSAmJiAhdGltZW91dDsgLy8g5aaC5p6c5bu25pe25LiN5a2Y5Zyo77yM6YeN5paw6K6+5a6a5bu25pe2CgogICAgaWYgKCF0aW1lb3V0KSB0aW1lb3V0ID0gc2V0VGltZW91dChsYXRlciwgd2FpdCk7CgogICAgaWYgKGNhbGxOb3cpIHsKICAgICAgcmVzdWx0ID0gZnVuYy5hcHBseShjb250ZXh0LCBhcmdzKTsKICAgICAgY29udGV4dCA9IGFyZ3MgPSBudWxsOwogICAgfQoKICAgIHJldHVybiByZXN1bHQ7CiAgfTsKfQovKioNCiAqIFRoaXMgaXMganVzdCBhIHNpbXBsZSB2ZXJzaW9uIG9mIGRlZXAgY29weQ0KICogSGFzIGEgbG90IG9mIGVkZ2UgY2FzZXMgYnVnDQogKiBJZiB5b3Ugd2FudCB0byB1c2UgYSBwZXJmZWN0IGRlZXAgY29weSwgdXNlIGxvZGFzaCdzIF8uY2xvbmVEZWVwDQogKiBAcGFyYW0ge09iamVjdH0gc291cmNlDQogKiBAcmV0dXJucyB7T2JqZWN0fQ0KICovCgpleHBvcnQgZnVuY3Rpb24gZGVlcENsb25lKHNvdXJjZSkgewogIGlmICghc291cmNlICYmIF90eXBlb2Yoc291cmNlKSAhPT0gJ29iamVjdCcpIHsKICAgIHRocm93IG5ldyBFcnJvcignZXJyb3IgYXJndW1lbnRzJywgJ2RlZXBDbG9uZScpOwogIH0KCiAgdmFyIHRhcmdldE9iaiA9IHNvdXJjZS5jb25zdHJ1Y3RvciA9PT0gQXJyYXkgPyBbXSA6IHt9OwogIE9iamVjdC5rZXlzKHNvdXJjZSkuZm9yRWFjaChmdW5jdGlvbiAoa2V5cykgewogICAgaWYgKHNvdXJjZVtrZXlzXSAmJiBfdHlwZW9mKHNvdXJjZVtrZXlzXSkgPT09ICdvYmplY3QnKSB7CiAgICAgIHRhcmdldE9ialtrZXlzXSA9IGRlZXBDbG9uZShzb3VyY2Vba2V5c10pOwogICAgfSBlbHNlIHsKICAgICAgdGFyZ2V0T2JqW2tleXNdID0gc291cmNlW2tleXNdOwogICAgfQogIH0pOwogIHJldHVybiB0YXJnZXRPYmo7Cn0KLyoqDQogKiBAcGFyYW0ge0FycmF5fSBhcnINCiAqIEByZXR1cm5zIHtBcnJheX0NCiAqLwoKZXhwb3J0IGZ1bmN0aW9uIHVuaXF1ZUFycihhcnIpIHsKICByZXR1cm4gQXJyYXkuZnJvbShuZXcgU2V0KGFycikpOwp9Ci8qKg0KICogQHJldHVybnMge3N0cmluZ30NCiAqLwoKZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVVuaXF1ZVN0cmluZygpIHsKICB2YXIgdGltZXN0YW1wID0gK25ldyBEYXRlKCkgKyAnJzsKICB2YXIgcmFuZG9tTnVtID0gcGFyc2VJbnQoKDEgKyBNYXRoLnJhbmRvbSgpKSAqIDY1NTM2KSArICcnOwogIHJldHVybiAoKyhyYW5kb21OdW0gKyB0aW1lc3RhbXApKS50b1N0cmluZygzMik7Cn0KLyoqDQogKiBDaGVjayBpZiBhbiBlbGVtZW50IGhhcyBhIGNsYXNzDQogKiBAcGFyYW0ge0hUTUxFbGVtZW50fSBlbG0NCiAqIEBwYXJhbSB7c3RyaW5nfSBjbHMNCiAqIEByZXR1cm5zIHtib29sZWFufQ0KICovCgpleHBvcnQgZnVuY3Rpb24gaGFzQ2xhc3MoZWxlLCBjbHMpIHsKICByZXR1cm4gISFlbGUuY2xhc3NOYW1lLm1hdGNoKG5ldyBSZWdFeHAoJyhcXHN8XiknICsgY2xzICsgJyhcXHN8JCknKSk7Cn0KLyoqDQogKiBBZGQgY2xhc3MgdG8gZWxlbWVudA0KICogQHBhcmFtIHtIVE1MRWxlbWVudH0gZWxtDQogKiBAcGFyYW0ge3N0cmluZ30gY2xzDQogKi8KCmV4cG9ydCBmdW5jdGlvbiBhZGRDbGFzcyhlbGUsIGNscykgewogIGlmICghaGFzQ2xhc3MoZWxlLCBjbHMpKSBlbGUuY2xhc3NOYW1lICs9ICcgJyArIGNsczsKfQovKioNCiAqIFJlbW92ZSBjbGFzcyBmcm9tIGVsZW1lbnQNCiAqIEBwYXJhbSB7SFRNTEVsZW1lbnR9IGVsbQ0KICogQHBhcmFtIHtzdHJpbmd9IGNscw0KICovCgpleHBvcnQgZnVuY3Rpb24gcmVtb3ZlQ2xhc3MoZWxlLCBjbHMpIHsKICBpZiAoaGFzQ2xhc3MoZWxlLCBjbHMpKSB7CiAgICB2YXIgcmVnID0gbmV3IFJlZ0V4cCgnKFxcc3xeKScgKyBjbHMgKyAnKFxcc3wkKScpOwogICAgZWxlLmNsYXNzTmFtZSA9IGVsZS5jbGFzc05hbWUucmVwbGFjZShyZWcsICcgJyk7CiAgfQp9CmV4cG9ydCBmdW5jdGlvbiBtYWtlTWFwKHN0ciwgZXhwZWN0c0xvd2VyQ2FzZSkgewogIHZhciBtYXAgPSBPYmplY3QuY3JlYXRlKG51bGwpOwogIHZhciBsaXN0ID0gc3RyLnNwbGl0KCcsJyk7CgogIGZvciAodmFyIGkgPSAwOyBpIDwgbGlzdC5sZW5ndGg7IGkrKykgewogICAgbWFwW2xpc3RbaV1dID0gdHJ1ZTsKICB9CgogIHJldHVybiBleHBlY3RzTG93ZXJDYXNlID8gZnVuY3Rpb24gKHZhbCkgewogICAgcmV0dXJuIG1hcFt2YWwudG9Mb3dlckNhc2UoKV07CiAgfSA6IGZ1bmN0aW9uICh2YWwpIHsKICAgIHJldHVybiBtYXBbdmFsXTsKICB9Owp9CmV4cG9ydCB2YXIgZXhwb3J0RGVmYXVsdCA9ICdleHBvcnQgZGVmYXVsdCAnOwpleHBvcnQgdmFyIGJlYXV0aWZpZXJDb25mID0gewogIGh0bWw6IHsKICAgIGluZGVudF9zaXplOiAnMicsCiAgICBpbmRlbnRfY2hhcjogJyAnLAogICAgbWF4X3ByZXNlcnZlX25ld2xpbmVzOiAnLTEnLAogICAgcHJlc2VydmVfbmV3bGluZXM6IGZhbHNlLAogICAga2VlcF9hcnJheV9pbmRlbnRhdGlvbjogZmFsc2UsCiAgICBicmVha19jaGFpbmVkX21ldGhvZHM6IGZhbHNlLAogICAgaW5kZW50X3NjcmlwdHM6ICdzZXBhcmF0ZScsCiAgICBicmFjZV9zdHlsZTogJ2VuZC1leHBhbmQnLAogICAgc3BhY2VfYmVmb3JlX2NvbmRpdGlvbmFsOiB0cnVlLAogICAgdW5lc2NhcGVfc3RyaW5nczogZmFsc2UsCiAgICBqc2xpbnRfaGFwcHk6IGZhbHNlLAogICAgZW5kX3dpdGhfbmV3bGluZTogdHJ1ZSwKICAgIHdyYXBfbGluZV9sZW5ndGg6ICcxMTAnLAogICAgaW5kZW50X2lubmVyX2h0bWw6IHRydWUsCiAgICBjb21tYV9maXJzdDogZmFsc2UsCiAgICBlNHg6IHRydWUsCiAgICBpbmRlbnRfZW1wdHlfbGluZXM6IHRydWUKICB9LAogIGpzOiB7CiAgICBpbmRlbnRfc2l6ZTogJzInLAogICAgaW5kZW50X2NoYXI6ICcgJywKICAgIG1heF9wcmVzZXJ2ZV9uZXdsaW5lczogJy0xJywKICAgIHByZXNlcnZlX25ld2xpbmVzOiBmYWxzZSwKICAgIGtlZXBfYXJyYXlfaW5kZW50YXRpb246IGZhbHNlLAogICAgYnJlYWtfY2hhaW5lZF9tZXRob2RzOiBmYWxzZSwKICAgIGluZGVudF9zY3JpcHRzOiAnbm9ybWFsJywKICAgIGJyYWNlX3N0eWxlOiAnZW5kLWV4cGFuZCcsCiAgICBzcGFjZV9iZWZvcmVfY29uZGl0aW9uYWw6IHRydWUsCiAgICB1bmVzY2FwZV9zdHJpbmdzOiBmYWxzZSwKICAgIGpzbGludF9oYXBweTogdHJ1ZSwKICAgIGVuZF93aXRoX25ld2xpbmU6IHRydWUsCiAgICB3cmFwX2xpbmVfbGVuZ3RoOiAnMTEwJywKICAgIGluZGVudF9pbm5lcl9odG1sOiB0cnVlLAogICAgY29tbWFfZmlyc3Q6IGZhbHNlLAogICAgZTR4OiB0cnVlLAogICAgaW5kZW50X2VtcHR5X2xpbmVzOiB0cnVlCiAgfQp9OyAvLyDpppblrZfmr43lpKflsI8KCmV4cG9ydCBmdW5jdGlvbiB0aXRsZUNhc2Uoc3RyKSB7CiAgcmV0dXJuIHN0ci5yZXBsYWNlKC8oIHxeKVthLXpdL2csIGZ1bmN0aW9uIChMKSB7CiAgICByZXR1cm4gTC50b1VwcGVyQ2FzZSgpOwogIH0pOwp9IC8vIOS4i+WIkui9rOmpvOWzsAoKZXhwb3J0IGZ1bmN0aW9uIGNhbWVsQ2FzZShzdHIpIHsKICByZXR1cm4gc3RyLnJlcGxhY2UoLy1bYS16XS9nLCBmdW5jdGlvbiAoc3RyMSkgewogICAgcmV0dXJuIHN0cjEuc3Vic3RyKC0xKS50b1VwcGVyQ2FzZSgpOwogIH0pOwp9CmV4cG9ydCBmdW5jdGlvbiBpc051bWJlclN0cihzdHIpIHsKICByZXR1cm4gL15bKy1dPygwfChbMS05XVxkKikpKFwuXGQrKT8kL2cudGVzdChzdHIpOwp9"},null]}