91abba4893b11cd2bd944919d1085e5c.json 17 KB

1
  1. {"remainingRequest":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/thread-loader/dist/cjs.js!/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/babel-loader/lib/index.js!/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/element-ui/lib/utils/date-util.js","dependencies":[{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/element-ui/lib/utils/date-util.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/thread-loader/dist/cjs.js","mtime":499162500000},{"path":"/usr/local/develop/php/www/waibao/project/NN2020060801/addons/admin/node_modules/babel-loader/lib/index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:J3VzZSBzdHJpY3QnOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmNvbmNhdCIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLmFycmF5LmZvci1lYWNoIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuaW5kZXgtb2YiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5tYXAiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zb21lIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMiKTsKCnJlcXVpcmUoImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZSIpOwoKcmVxdWlyZSgiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy50cmltIik7CgpyZXF1aXJlKCJjb3JlLWpzL21vZHVsZXMvd2ViLmRvbS1jb2xsZWN0aW9ucy5mb3ItZWFjaCIpOwoKZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZTsKZXhwb3J0cy52YWxpZGF0ZVJhbmdlSW5PbmVNb250aCA9IGV4cG9ydHMuZXh0cmFjdFRpbWVGb3JtYXQgPSBleHBvcnRzLmV4dHJhY3REYXRlRm9ybWF0ID0gZXhwb3J0cy5uZXh0WWVhciA9IGV4cG9ydHMucHJldlllYXIgPSBleHBvcnRzLm5leHRNb250aCA9IGV4cG9ydHMucHJldk1vbnRoID0gZXhwb3J0cy5jaGFuZ2VZZWFyTW9udGhBbmRDbGFtcERhdGUgPSBleHBvcnRzLnRpbWVXaXRoaW5SYW5nZSA9IGV4cG9ydHMubGltaXRUaW1lUmFuZ2UgPSBleHBvcnRzLmNsZWFyTWlsbGlzZWNvbmRzID0gZXhwb3J0cy5jbGVhclRpbWUgPSBleHBvcnRzLm1vZGlmeVdpdGhUaW1lU3RyaW5nID0gZXhwb3J0cy5tb2RpZnlUaW1lID0gZXhwb3J0cy5tb2RpZnlEYXRlID0gZXhwb3J0cy5yYW5nZSA9IGV4cG9ydHMuZ2V0UmFuZ2VNaW51dGVzID0gZXhwb3J0cy5nZXRNb250aERheXMgPSBleHBvcnRzLmdldFByZXZNb250aExhc3REYXlzID0gZXhwb3J0cy5nZXRSYW5nZUhvdXJzID0gZXhwb3J0cy5nZXRXZWVrTnVtYmVyID0gZXhwb3J0cy5nZXRTdGFydERhdGVPZk1vbnRoID0gZXhwb3J0cy5uZXh0RGF0ZSA9IGV4cG9ydHMucHJldkRhdGUgPSBleHBvcnRzLmdldEZpcnN0RGF5T2ZNb250aCA9IGV4cG9ydHMuZ2V0RGF5Q291bnRPZlllYXIgPSBleHBvcnRzLmdldERheUNvdW50T2ZNb250aCA9IGV4cG9ydHMucGFyc2VEYXRlID0gZXhwb3J0cy5mb3JtYXREYXRlID0gZXhwb3J0cy5pc0RhdGVPYmplY3QgPSBleHBvcnRzLmlzRGF0ZSA9IGV4cG9ydHMudG9EYXRlID0gZXhwb3J0cy5nZXRJMThuU2V0dGluZ3MgPSB1bmRlZmluZWQ7Cgp2YXIgX2RhdGUgPSByZXF1aXJlKCdlbGVtZW50LXVpL2xpYi91dGlscy9kYXRlJyk7Cgp2YXIgX2RhdGUyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChfZGF0ZSk7Cgp2YXIgX2xvY2FsZSA9IHJlcXVpcmUoJ2VsZW1lbnQtdWkvbGliL2xvY2FsZScpOwoKZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChvYmopIHsKICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDogewogICAgZGVmYXVsdDogb2JqCiAgfTsKfQoKdmFyIHdlZWtzID0gWydzdW4nLCAnbW9uJywgJ3R1ZScsICd3ZWQnLCAndGh1JywgJ2ZyaScsICdzYXQnXTsKdmFyIG1vbnRocyA9IFsnamFuJywgJ2ZlYicsICdtYXInLCAnYXByJywgJ21heScsICdqdW4nLCAnanVsJywgJ2F1ZycsICdzZXAnLCAnb2N0JywgJ25vdicsICdkZWMnXTsKCnZhciBuZXdBcnJheSA9IGZ1bmN0aW9uIG5ld0FycmF5KHN0YXJ0LCBlbmQpIHsKICB2YXIgcmVzdWx0ID0gW107CgogIGZvciAodmFyIGkgPSBzdGFydDsgaSA8PSBlbmQ7IGkrKykgewogICAgcmVzdWx0LnB1c2goaSk7CiAgfQoKICByZXR1cm4gcmVzdWx0Owp9OwoKdmFyIGdldEkxOG5TZXR0aW5ncyA9IGV4cG9ydHMuZ2V0STE4blNldHRpbmdzID0gZnVuY3Rpb24gZ2V0STE4blNldHRpbmdzKCkgewogIHJldHVybiB7CiAgICBkYXlOYW1lc1Nob3J0OiB3ZWVrcy5tYXAoZnVuY3Rpb24gKHdlZWspIHsKICAgICAgcmV0dXJuICgwLCBfbG9jYWxlLnQpKCdlbC5kYXRlcGlja2VyLndlZWtzLicgKyB3ZWVrKTsKICAgIH0pLAogICAgZGF5TmFtZXM6IHdlZWtzLm1hcChmdW5jdGlvbiAod2VlaykgewogICAgICByZXR1cm4gKDAsIF9sb2NhbGUudCkoJ2VsLmRhdGVwaWNrZXIud2Vla3MuJyArIHdlZWspOwogICAgfSksCiAgICBtb250aE5hbWVzU2hvcnQ6IG1vbnRocy5tYXAoZnVuY3Rpb24gKG1vbnRoKSB7CiAgICAgIHJldHVybiAoMCwgX2xvY2FsZS50KSgnZWwuZGF0ZXBpY2tlci5tb250aHMuJyArIG1vbnRoKTsKICAgIH0pLAogICAgbW9udGhOYW1lczogbW9udGhzLm1hcChmdW5jdGlvbiAobW9udGgsIGluZGV4KSB7CiAgICAgIHJldHVybiAoMCwgX2xvY2FsZS50KSgnZWwuZGF0ZXBpY2tlci5tb250aCcgKyAoaW5kZXggKyAxKSk7CiAgICB9KSwKICAgIGFtUG06IFsnYW0nLCAncG0nXQogIH07Cn07Cgp2YXIgdG9EYXRlID0gZXhwb3J0cy50b0RhdGUgPSBmdW5jdGlvbiB0b0RhdGUoZGF0ZSkgewogIHJldHVybiBpc0RhdGUoZGF0ZSkgPyBuZXcgRGF0ZShkYXRlKSA6IG51bGw7Cn07Cgp2YXIgaXNEYXRlID0gZXhwb3J0cy5pc0RhdGUgPSBmdW5jdGlvbiBpc0RhdGUoZGF0ZSkgewogIGlmIChkYXRlID09PSBudWxsIHx8IGRhdGUgPT09IHVuZGVmaW5lZCkgcmV0dXJuIGZhbHNlOwogIGlmIChpc05hTihuZXcgRGF0ZShkYXRlKS5nZXRUaW1lKCkpKSByZXR1cm4gZmFsc2U7CiAgaWYgKEFycmF5LmlzQXJyYXkoZGF0ZSkpIHJldHVybiBmYWxzZTsgLy8gZGVhbCB3aXRoIGBuZXcgRGF0ZShbIG5ldyBEYXRlKCkgXSkgLT4gbmV3IERhdGUoKWAKCiAgcmV0dXJuIHRydWU7Cn07Cgp2YXIgaXNEYXRlT2JqZWN0ID0gZXhwb3J0cy5pc0RhdGVPYmplY3QgPSBmdW5jdGlvbiBpc0RhdGVPYmplY3QodmFsKSB7CiAgcmV0dXJuIHZhbCBpbnN0YW5jZW9mIERhdGU7Cn07Cgp2YXIgZm9ybWF0RGF0ZSA9IGV4cG9ydHMuZm9ybWF0RGF0ZSA9IGZ1bmN0aW9uIGZvcm1hdERhdGUoZGF0ZSwgZm9ybWF0KSB7CiAgZGF0ZSA9IHRvRGF0ZShkYXRlKTsKICBpZiAoIWRhdGUpIHJldHVybiAnJzsKICByZXR1cm4gX2RhdGUyLmRlZmF1bHQuZm9ybWF0KGRhdGUsIGZvcm1hdCB8fCAneXl5eS1NTS1kZCcsIGdldEkxOG5TZXR0aW5ncygpKTsKfTsKCnZhciBwYXJzZURhdGUgPSBleHBvcnRzLnBhcnNlRGF0ZSA9IGZ1bmN0aW9uIHBhcnNlRGF0ZShzdHJpbmcsIGZvcm1hdCkgewogIHJldHVybiBfZGF0ZTIuZGVmYXVsdC5wYXJzZShzdHJpbmcsIGZvcm1hdCB8fCAneXl5eS1NTS1kZCcsIGdldEkxOG5TZXR0aW5ncygpKTsKfTsKCnZhciBnZXREYXlDb3VudE9mTW9udGggPSBleHBvcnRzLmdldERheUNvdW50T2ZNb250aCA9IGZ1bmN0aW9uIGdldERheUNvdW50T2ZNb250aCh5ZWFyLCBtb250aCkgewogIGlmIChtb250aCA9PT0gMyB8fCBtb250aCA9PT0gNSB8fCBtb250aCA9PT0gOCB8fCBtb250aCA9PT0gMTApIHsKICAgIHJldHVybiAzMDsKICB9CgogIGlmIChtb250aCA9PT0gMSkgewogICAgaWYgKHllYXIgJSA0ID09PSAwICYmIHllYXIgJSAxMDAgIT09IDAgfHwgeWVhciAlIDQwMCA9PT0gMCkgewogICAgICByZXR1cm4gMjk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gMjg7CiAgICB9CiAgfQoKICByZXR1cm4gMzE7Cn07Cgp2YXIgZ2V0RGF5Q291bnRPZlllYXIgPSBleHBvcnRzLmdldERheUNvdW50T2ZZZWFyID0gZnVuY3Rpb24gZ2V0RGF5Q291bnRPZlllYXIoeWVhcikgewogIHZhciBpc0xlYXBZZWFyID0geWVhciAlIDQwMCA9PT0gMCB8fCB5ZWFyICUgMTAwICE9PSAwICYmIHllYXIgJSA0ID09PSAwOwogIHJldHVybiBpc0xlYXBZZWFyID8gMzY2IDogMzY1Owp9OwoKdmFyIGdldEZpcnN0RGF5T2ZNb250aCA9IGV4cG9ydHMuZ2V0Rmlyc3REYXlPZk1vbnRoID0gZnVuY3Rpb24gZ2V0Rmlyc3REYXlPZk1vbnRoKGRhdGUpIHsKICB2YXIgdGVtcCA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTsKICB0ZW1wLnNldERhdGUoMSk7CiAgcmV0dXJuIHRlbXAuZ2V0RGF5KCk7Cn07IC8vIHNlZTogaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzY3NDUzOS9pbmNyZW1lbnRpbmctYS1kYXRlLWluLWphdmFzY3JpcHQKLy8ge3ByZXYsIG5leHR9IERhdGUgc2hvdWxkIHdvcmsgZm9yIERheWxpZ2h0IFNhdmluZyBUaW1lCi8vIEFkZGluZyAyNCAqIDYwICogNjAgKiAxMDAwIGRvZXMgbm90IHdvcmsgaW4gdGhlIGFib3ZlIHNjZW5hcmlvCgoKdmFyIHByZXZEYXRlID0gZXhwb3J0cy5wcmV2RGF0ZSA9IGZ1bmN0aW9uIHByZXZEYXRlKGRhdGUpIHsKICB2YXIgYW1vdW50ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAxOwogIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkgLSBhbW91bnQpOwp9OwoKdmFyIG5leHREYXRlID0gZXhwb3J0cy5uZXh0RGF0ZSA9IGZ1bmN0aW9uIG5leHREYXRlKGRhdGUpIHsKICB2YXIgYW1vdW50ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAxOwogIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkgKyBhbW91bnQpOwp9OwoKdmFyIGdldFN0YXJ0RGF0ZU9mTW9udGggPSBleHBvcnRzLmdldFN0YXJ0RGF0ZU9mTW9udGggPSBmdW5jdGlvbiBnZXRTdGFydERhdGVPZk1vbnRoKHllYXIsIG1vbnRoKSB7CiAgdmFyIHJlc3VsdCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTsKICB2YXIgZGF5ID0gcmVzdWx0LmdldERheSgpOwoKICBpZiAoZGF5ID09PSAwKSB7CiAgICByZXR1cm4gcHJldkRhdGUocmVzdWx0LCA3KTsKICB9IGVsc2UgewogICAgcmV0dXJuIHByZXZEYXRlKHJlc3VsdCwgZGF5KTsKICB9Cn07Cgp2YXIgZ2V0V2Vla051bWJlciA9IGV4cG9ydHMuZ2V0V2Vla051bWJlciA9IGZ1bmN0aW9uIGdldFdlZWtOdW1iZXIoc3JjKSB7CiAgaWYgKCFpc0RhdGUoc3JjKSkgcmV0dXJuIG51bGw7CiAgdmFyIGRhdGUgPSBuZXcgRGF0ZShzcmMuZ2V0VGltZSgpKTsKICBkYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApOyAvLyBUaHVyc2RheSBpbiBjdXJyZW50IHdlZWsgZGVjaWRlcyB0aGUgeWVhci4KCiAgZGF0ZS5zZXREYXRlKGRhdGUuZ2V0RGF0ZSgpICsgMyAtIChkYXRlLmdldERheSgpICsgNikgJSA3KTsgLy8gSmFudWFyeSA0IGlzIGFsd2F5cyBpbiB3ZWVrIDEuCgogIHZhciB3ZWVrMSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgMCwgNCk7IC8vIEFkanVzdCB0byBUaHVyc2RheSBpbiB3ZWVrIDEgYW5kIGNvdW50IG51bWJlciBvZiB3ZWVrcyBmcm9tIGRhdGUgdG8gd2VlayAxLgogIC8vIFJvdW5kaW5nIHNob3VsZCBiZSBmaW5lIGZvciBEYXlsaWdodCBTYXZpbmcgVGltZS4gSXRzIHNoaWZ0IHNob3VsZCBuZXZlciBiZSBtb3JlIHRoYW4gMTIgaG91cnMuCgogIHJldHVybiAxICsgTWF0aC5yb3VuZCgoKGRhdGUuZ2V0VGltZSgpIC0gd2VlazEuZ2V0VGltZSgpKSAvIDg2NDAwMDAwIC0gMyArICh3ZWVrMS5nZXREYXkoKSArIDYpICUgNykgLyA3KTsKfTsKCnZhciBnZXRSYW5nZUhvdXJzID0gZXhwb3J0cy5nZXRSYW5nZUhvdXJzID0gZnVuY3Rpb24gZ2V0UmFuZ2VIb3VycyhyYW5nZXMpIHsKICB2YXIgaG91cnMgPSBbXTsKICB2YXIgZGlzYWJsZWRIb3VycyA9IFtdOwogIChyYW5nZXMgfHwgW10pLmZvckVhY2goZnVuY3Rpb24gKHJhbmdlKSB7CiAgICB2YXIgdmFsdWUgPSByYW5nZS5tYXAoZnVuY3Rpb24gKGRhdGUpIHsKICAgICAgcmV0dXJuIGRhdGUuZ2V0SG91cnMoKTsKICAgIH0pOwogICAgZGlzYWJsZWRIb3VycyA9IGRpc2FibGVkSG91cnMuY29uY2F0KG5ld0FycmF5KHZhbHVlWzBdLCB2YWx1ZVsxXSkpOwogIH0pOwoKICBpZiAoZGlzYWJsZWRIb3Vycy5sZW5ndGgpIHsKICAgIGZvciAodmFyIGkgPSAwOyBpIDwgMjQ7IGkrKykgewogICAgICBob3Vyc1tpXSA9IGRpc2FibGVkSG91cnMuaW5kZXhPZihpKSA9PT0gLTE7CiAgICB9CiAgfSBlbHNlIHsKICAgIGZvciAodmFyIF9pID0gMDsgX2kgPCAyNDsgX2krKykgewogICAgICBob3Vyc1tfaV0gPSBmYWxzZTsKICAgIH0KICB9CgogIHJldHVybiBob3VyczsKfTsKCnZhciBnZXRQcmV2TW9udGhMYXN0RGF5cyA9IGV4cG9ydHMuZ2V0UHJldk1vbnRoTGFzdERheXMgPSBmdW5jdGlvbiBnZXRQcmV2TW9udGhMYXN0RGF5cyhkYXRlLCBhbW91bnQpIHsKICBpZiAoYW1vdW50IDw9IDApIHJldHVybiBbXTsKICB2YXIgdGVtcCA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTsKICB0ZW1wLnNldERhdGUoMCk7CiAgdmFyIGxhc3REYXkgPSB0ZW1wLmdldERhdGUoKTsKICByZXR1cm4gcmFuZ2UoYW1vdW50KS5tYXAoZnVuY3Rpb24gKF8sIGluZGV4KSB7CiAgICByZXR1cm4gbGFzdERheSAtIChhbW91bnQgLSBpbmRleCAtIDEpOwogIH0pOwp9OwoKdmFyIGdldE1vbnRoRGF5cyA9IGV4cG9ydHMuZ2V0TW9udGhEYXlzID0gZnVuY3Rpb24gZ2V0TW9udGhEYXlzKGRhdGUpIHsKICB2YXIgdGVtcCA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpICsgMSwgMCk7CiAgdmFyIGRheXMgPSB0ZW1wLmdldERhdGUoKTsKICByZXR1cm4gcmFuZ2UoZGF5cykubWFwKGZ1bmN0aW9uIChfLCBpbmRleCkgewogICAgcmV0dXJuIGluZGV4ICsgMTsKICB9KTsKfTsKCmZ1bmN0aW9uIHNldFJhbmdlRGF0YShhcnIsIHN0YXJ0LCBlbmQsIHZhbHVlKSB7CiAgZm9yICh2YXIgaSA9IHN0YXJ0OyBpIDwgZW5kOyBpKyspIHsKICAgIGFycltpXSA9IHZhbHVlOwogIH0KfQoKdmFyIGdldFJhbmdlTWludXRlcyA9IGV4cG9ydHMuZ2V0UmFuZ2VNaW51dGVzID0gZnVuY3Rpb24gZ2V0UmFuZ2VNaW51dGVzKHJhbmdlcywgaG91cikgewogIHZhciBtaW51dGVzID0gbmV3IEFycmF5KDYwKTsKCiAgaWYgKHJhbmdlcy5sZW5ndGggPiAwKSB7CiAgICByYW5nZXMuZm9yRWFjaChmdW5jdGlvbiAocmFuZ2UpIHsKICAgICAgdmFyIHN0YXJ0ID0gcmFuZ2VbMF07CiAgICAgIHZhciBlbmQgPSByYW5nZVsxXTsKICAgICAgdmFyIHN0YXJ0SG91ciA9IHN0YXJ0LmdldEhvdXJzKCk7CiAgICAgIHZhciBzdGFydE1pbnV0ZSA9IHN0YXJ0LmdldE1pbnV0ZXMoKTsKICAgICAgdmFyIGVuZEhvdXIgPSBlbmQuZ2V0SG91cnMoKTsKICAgICAgdmFyIGVuZE1pbnV0ZSA9IGVuZC5nZXRNaW51dGVzKCk7CgogICAgICBpZiAoc3RhcnRIb3VyID09PSBob3VyICYmIGVuZEhvdXIgIT09IGhvdXIpIHsKICAgICAgICBzZXRSYW5nZURhdGEobWludXRlcywgc3RhcnRNaW51dGUsIDYwLCB0cnVlKTsKICAgICAgfSBlbHNlIGlmIChzdGFydEhvdXIgPT09IGhvdXIgJiYgZW5kSG91ciA9PT0gaG91cikgewogICAgICAgIHNldFJhbmdlRGF0YShtaW51dGVzLCBzdGFydE1pbnV0ZSwgZW5kTWludXRlICsgMSwgdHJ1ZSk7CiAgICAgIH0gZWxzZSBpZiAoc3RhcnRIb3VyICE9PSBob3VyICYmIGVuZEhvdXIgPT09IGhvdXIpIHsKICAgICAgICBzZXRSYW5nZURhdGEobWludXRlcywgMCwgZW5kTWludXRlICsgMSwgdHJ1ZSk7CiAgICAgIH0gZWxzZSBpZiAoc3RhcnRIb3VyIDwgaG91ciAmJiBlbmRIb3VyID4gaG91cikgewogICAgICAgIHNldFJhbmdlRGF0YShtaW51dGVzLCAwLCA2MCwgdHJ1ZSk7CiAgICAgIH0KICAgIH0pOwogIH0gZWxzZSB7CiAgICBzZXRSYW5nZURhdGEobWludXRlcywgMCwgNjAsIHRydWUpOwogIH0KCiAgcmV0dXJuIG1pbnV0ZXM7Cn07Cgp2YXIgcmFuZ2UgPSBleHBvcnRzLnJhbmdlID0gZnVuY3Rpb24gcmFuZ2UobikgewogIC8vIHNlZSBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8zNzQ2NzI1L2NyZWF0ZS1hLWphdmFzY3JpcHQtYXJyYXktY29udGFpbmluZy0xLW4KICByZXR1cm4gQXJyYXkuYXBwbHkobnVsbCwgewogICAgbGVuZ3RoOiBuCiAgfSkubWFwKGZ1bmN0aW9uIChfLCBuKSB7CiAgICByZXR1cm4gbjsKICB9KTsKfTsKCnZhciBtb2RpZnlEYXRlID0gZXhwb3J0cy5tb2RpZnlEYXRlID0gZnVuY3Rpb24gbW9kaWZ5RGF0ZShkYXRlLCB5LCBtLCBkKSB7CiAgcmV0dXJuIG5ldyBEYXRlKHksIG0sIGQsIGRhdGUuZ2V0SG91cnMoKSwgZGF0ZS5nZXRNaW51dGVzKCksIGRhdGUuZ2V0U2Vjb25kcygpLCBkYXRlLmdldE1pbGxpc2Vjb25kcygpKTsKfTsKCnZhciBtb2RpZnlUaW1lID0gZXhwb3J0cy5tb2RpZnlUaW1lID0gZnVuY3Rpb24gbW9kaWZ5VGltZShkYXRlLCBoLCBtLCBzKSB7CiAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSwgaCwgbSwgcywgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSk7Cn07Cgp2YXIgbW9kaWZ5V2l0aFRpbWVTdHJpbmcgPSBleHBvcnRzLm1vZGlmeVdpdGhUaW1lU3RyaW5nID0gZnVuY3Rpb24gbW9kaWZ5V2l0aFRpbWVTdHJpbmcoZGF0ZSwgdGltZSkgewogIGlmIChkYXRlID09IG51bGwgfHwgIXRpbWUpIHsKICAgIHJldHVybiBkYXRlOwogIH0KCiAgdGltZSA9IHBhcnNlRGF0ZSh0aW1lLCAnSEg6bW06c3MnKTsKICByZXR1cm4gbW9kaWZ5VGltZShkYXRlLCB0aW1lLmdldEhvdXJzKCksIHRpbWUuZ2V0TWludXRlcygpLCB0aW1lLmdldFNlY29uZHMoKSk7Cn07Cgp2YXIgY2xlYXJUaW1lID0gZXhwb3J0cy5jbGVhclRpbWUgPSBmdW5jdGlvbiBjbGVhclRpbWUoZGF0ZSkgewogIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgZGF0ZS5nZXREYXRlKCkpOwp9OwoKdmFyIGNsZWFyTWlsbGlzZWNvbmRzID0gZXhwb3J0cy5jbGVhck1pbGxpc2Vjb25kcyA9IGZ1bmN0aW9uIGNsZWFyTWlsbGlzZWNvbmRzKGRhdGUpIHsKICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpLCBkYXRlLmdldEhvdXJzKCksIGRhdGUuZ2V0TWludXRlcygpLCBkYXRlLmdldFNlY29uZHMoKSwgMCk7Cn07Cgp2YXIgbGltaXRUaW1lUmFuZ2UgPSBleHBvcnRzLmxpbWl0VGltZVJhbmdlID0gZnVuY3Rpb24gbGltaXRUaW1lUmFuZ2UoZGF0ZSwgcmFuZ2VzKSB7CiAgdmFyIGZvcm1hdCA9IGFyZ3VtZW50cy5sZW5ndGggPiAyICYmIGFyZ3VtZW50c1syXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzJdIDogJ0hIOm1tOnNzJzsgLy8gVE9ETzogcmVmYWN0b3J5IGEgbW9yZSBlbGVnYW50IHNvbHV0aW9uCgogIGlmIChyYW5nZXMubGVuZ3RoID09PSAwKSByZXR1cm4gZGF0ZTsKCiAgdmFyIG5vcm1hbGl6ZURhdGUgPSBmdW5jdGlvbiBub3JtYWxpemVEYXRlKGRhdGUpIHsKICAgIHJldHVybiBfZGF0ZTIuZGVmYXVsdC5wYXJzZShfZGF0ZTIuZGVmYXVsdC5mb3JtYXQoZGF0ZSwgZm9ybWF0KSwgZm9ybWF0KTsKICB9OwoKICB2YXIgbmRhdGUgPSBub3JtYWxpemVEYXRlKGRhdGUpOwogIHZhciBucmFuZ2VzID0gcmFuZ2VzLm1hcChmdW5jdGlvbiAocmFuZ2UpIHsKICAgIHJldHVybiByYW5nZS5tYXAobm9ybWFsaXplRGF0ZSk7CiAgfSk7CiAgaWYgKG5yYW5nZXMuc29tZShmdW5jdGlvbiAobnJhbmdlKSB7CiAgICByZXR1cm4gbmRhdGUgPj0gbnJhbmdlWzBdICYmIG5kYXRlIDw9IG5yYW5nZVsxXTsKICB9KSkgcmV0dXJuIGRhdGU7CiAgdmFyIG1pbkRhdGUgPSBucmFuZ2VzWzBdWzBdOwogIHZhciBtYXhEYXRlID0gbnJhbmdlc1swXVswXTsKICBucmFuZ2VzLmZvckVhY2goZnVuY3Rpb24gKG5yYW5nZSkgewogICAgbWluRGF0ZSA9IG5ldyBEYXRlKE1hdGgubWluKG5yYW5nZVswXSwgbWluRGF0ZSkpOwogICAgbWF4RGF0ZSA9IG5ldyBEYXRlKE1hdGgubWF4KG5yYW5nZVsxXSwgbWluRGF0ZSkpOwogIH0pOwogIHZhciByZXQgPSBuZGF0ZSA8IG1pbkRhdGUgPyBtaW5EYXRlIDogbWF4RGF0ZTsgLy8gcHJlc2VydmUgWWVhci9Nb250aC9EYXRlCgogIHJldHVybiBtb2RpZnlEYXRlKHJldCwgZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKTsKfTsKCnZhciB0aW1lV2l0aGluUmFuZ2UgPSBleHBvcnRzLnRpbWVXaXRoaW5SYW5nZSA9IGZ1bmN0aW9uIHRpbWVXaXRoaW5SYW5nZShkYXRlLCBzZWxlY3RhYmxlUmFuZ2UsIGZvcm1hdCkgewogIHZhciBsaW1pdGVkRGF0ZSA9IGxpbWl0VGltZVJhbmdlKGRhdGUsIHNlbGVjdGFibGVSYW5nZSwgZm9ybWF0KTsKICByZXR1cm4gbGltaXRlZERhdGUuZ2V0VGltZSgpID09PSBkYXRlLmdldFRpbWUoKTsKfTsKCnZhciBjaGFuZ2VZZWFyTW9udGhBbmRDbGFtcERhdGUgPSBleHBvcnRzLmNoYW5nZVllYXJNb250aEFuZENsYW1wRGF0ZSA9IGZ1bmN0aW9uIGNoYW5nZVllYXJNb250aEFuZENsYW1wRGF0ZShkYXRlLCB5ZWFyLCBtb250aCkgewogIC8vIGNsYW1wIGRhdGUgdG8gdGhlIG51bWJlciBvZiBkYXlzIGluIGB5ZWFyYCwgYG1vbnRoYAogIC8vIGVnOiAoMjAxMC0xLTMxLCAyMDEwLCAyKSA9PiAyMDEwLTItMjgKICB2YXIgbW9udGhEYXRlID0gTWF0aC5taW4oZGF0ZS5nZXREYXRlKCksIGdldERheUNvdW50T2ZNb250aCh5ZWFyLCBtb250aCkpOwogIHJldHVybiBtb2RpZnlEYXRlKGRhdGUsIHllYXIsIG1vbnRoLCBtb250aERhdGUpOwp9OwoKdmFyIHByZXZNb250aCA9IGV4cG9ydHMucHJldk1vbnRoID0gZnVuY3Rpb24gcHJldk1vbnRoKGRhdGUpIHsKICB2YXIgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTsKICB2YXIgbW9udGggPSBkYXRlLmdldE1vbnRoKCk7CiAgcmV0dXJuIG1vbnRoID09PSAwID8gY2hhbmdlWWVhck1vbnRoQW5kQ2xhbXBEYXRlKGRhdGUsIHllYXIgLSAxLCAxMSkgOiBjaGFuZ2VZZWFyTW9udGhBbmRDbGFtcERhdGUoZGF0ZSwgeWVhciwgbW9udGggLSAxKTsKfTsKCnZhciBuZXh0TW9udGggPSBleHBvcnRzLm5leHRNb250aCA9IGZ1bmN0aW9uIG5leHRNb250aChkYXRlKSB7CiAgdmFyIHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7CiAgdmFyIG1vbnRoID0gZGF0ZS5nZXRNb250aCgpOwogIHJldHVybiBtb250aCA9PT0gMTEgPyBjaGFuZ2VZZWFyTW9udGhBbmRDbGFtcERhdGUoZGF0ZSwgeWVhciArIDEsIDApIDogY2hhbmdlWWVhck1vbnRoQW5kQ2xhbXBEYXRlKGRhdGUsIHllYXIsIG1vbnRoICsgMSk7Cn07Cgp2YXIgcHJldlllYXIgPSBleHBvcnRzLnByZXZZZWFyID0gZnVuY3Rpb24gcHJldlllYXIoZGF0ZSkgewogIHZhciBhbW91bnQgPSBhcmd1bWVudHMubGVuZ3RoID4gMSAmJiBhcmd1bWVudHNbMV0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1sxXSA6IDE7CiAgdmFyIHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7CiAgdmFyIG1vbnRoID0gZGF0ZS5nZXRNb250aCgpOwogIHJldHVybiBjaGFuZ2VZZWFyTW9udGhBbmRDbGFtcERhdGUoZGF0ZSwgeWVhciAtIGFtb3VudCwgbW9udGgpOwp9OwoKdmFyIG5leHRZZWFyID0gZXhwb3J0cy5uZXh0WWVhciA9IGZ1bmN0aW9uIG5leHRZZWFyKGRhdGUpIHsKICB2YXIgYW1vdW50ID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgJiYgYXJndW1lbnRzWzFdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMV0gOiAxOwogIHZhciB5ZWFyID0gZGF0ZS5nZXRGdWxsWWVhcigpOwogIHZhciBtb250aCA9IGRhdGUuZ2V0TW9udGgoKTsKICByZXR1cm4gY2hhbmdlWWVhck1vbnRoQW5kQ2xhbXBEYXRlKGRhdGUsIHllYXIgKyBhbW91bnQsIG1vbnRoKTsKfTsKCnZhciBleHRyYWN0RGF0ZUZvcm1hdCA9IGV4cG9ydHMuZXh0cmFjdERhdGVGb3JtYXQgPSBmdW5jdGlvbiBleHRyYWN0RGF0ZUZvcm1hdChmb3JtYXQpIHsKICByZXR1cm4gZm9ybWF0LnJlcGxhY2UoL1xXP217MSwyfXxcVz9aWi9nLCAnJykucmVwbGFjZSgvXFc/aHsxLDJ9fFxXP3N7MSwzfXxcVz9hL2dpLCAnJykudHJpbSgpOwp9OwoKdmFyIGV4dHJhY3RUaW1lRm9ybWF0ID0gZXhwb3J0cy5leHRyYWN0VGltZUZvcm1hdCA9IGZ1bmN0aW9uIGV4dHJhY3RUaW1lRm9ybWF0KGZvcm1hdCkgewogIHJldHVybiBmb3JtYXQucmVwbGFjZSgvXFc/RHsxLDJ9fFxXP0RvfFxXP2R7MSw0fXxcVz9NezEsNH18XFc/eXsyLDR9L2csICcnKS50cmltKCk7Cn07Cgp2YXIgdmFsaWRhdGVSYW5nZUluT25lTW9udGggPSBleHBvcnRzLnZhbGlkYXRlUmFuZ2VJbk9uZU1vbnRoID0gZnVuY3Rpb24gdmFsaWRhdGVSYW5nZUluT25lTW9udGgoc3RhcnQsIGVuZCkgewogIHJldHVybiBzdGFydC5nZXRNb250aCgpID09PSBlbmQuZ2V0TW9udGgoKSAmJiBzdGFydC5nZXRGdWxsWWVhcigpID09PSBlbmQuZ2V0RnVsbFllYXIoKTsKfTs="},null]}