{"remainingRequest":"D:\\phpstudy_pro\\WWW\\travel\\admin\\node_modules\\thread-loader\\dist\\cjs.js!D:\\phpstudy_pro\\WWW\\travel\\admin\\node_modules\\babel-loader\\lib\\index.js!D:\\phpstudy_pro\\WWW\\travel\\admin\\node_modules\\@babel\\runtime\\helpers\\esm\\regeneratorRuntime.js","dependencies":[{"path":"D:\\phpstudy_pro\\WWW\\travel\\admin\\node_modules\\@babel\\runtime\\helpers\\esm\\regeneratorRuntime.js","mtime":1718764963231},{"path":"D:\\phpstudy_pro\\WWW\\travel\\admin\\babel.config.js","mtime":1718070785981},{"path":"D:\\phpstudy_pro\\WWW\\travel\\admin\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1718764957200},{"path":"D:\\phpstudy_pro\\WWW\\travel\\admin\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1718764957180},{"path":"D:\\phpstudy_pro\\WWW\\travel\\admin\\node_modules\\babel-loader\\lib\\index.js","mtime":1718764959024}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmRlc2NyaXB0aW9uLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLmFzeW5jLWl0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLml0ZXJhdG9yLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuc3ltYm9sLnRvLXN0cmluZy10YWcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5hcnJheS5zbGljZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5qc29uLnRvLXN0cmluZy10YWcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5tYXRoLnRvLXN0cmluZy10YWcuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QuZ2V0LXByb3RvdHlwZS1vZi5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLm9iamVjdC5zZXQtcHJvdG90eXBlLW9mLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMub2JqZWN0LnRvLXN0cmluZy5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5pdGVyYXRvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuZm9yLWVhY2guanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy93ZWIuZG9tLWNvbGxlY3Rpb25zLml0ZXJhdG9yLmpzIjsKaW1wb3J0IF90eXBlb2YgZnJvbSAiLi90eXBlb2YuanMiOwpmdW5jdGlvbiBfcmVnZW5lcmF0b3JSdW50aW1lKCkgewogICJ1c2Ugc3RyaWN0IjsKCiAgLyohIHJlZ2VuZXJhdG9yLXJ1bnRpbWUgLS0gQ29weXJpZ2h0IChjKSAyMDE0LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuIC0tIGxpY2Vuc2UgKE1JVCk6IGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWdlbmVyYXRvci9ibG9iL21haW4vTElDRU5TRSAqLwogIF9yZWdlbmVyYXRvclJ1bnRpbWUgPSBmdW5jdGlvbiBfcmVnZW5lcmF0b3JSdW50aW1lKCkgewogICAgcmV0dXJuIGU7CiAgfTsKICB2YXIgdCwKICAgIGUgPSB7fSwKICAgIHIgPSBPYmplY3QucHJvdG90eXBlLAogICAgbiA9IHIuaGFzT3duUHJvcGVydHksCiAgICBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5IHx8IGZ1bmN0aW9uICh0LCBlLCByKSB7CiAgICAgIHRbZV0gPSByLnZhbHVlOwogICAgfSwKICAgIGkgPSAiZnVuY3Rpb24iID09IHR5cGVvZiBTeW1ib2wgPyBTeW1ib2wgOiB7fSwKICAgIGEgPSBpLml0ZXJhdG9yIHx8ICJAQGl0ZXJhdG9yIiwKICAgIGMgPSBpLmFzeW5jSXRlcmF0b3IgfHwgIkBAYXN5bmNJdGVyYXRvciIsCiAgICB1ID0gaS50b1N0cmluZ1RhZyB8fCAiQEB0b1N0cmluZ1RhZyI7CiAgZnVuY3Rpb24gZGVmaW5lKHQsIGUsIHIpIHsKICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkodCwgZSwgewogICAgICB2YWx1ZTogciwKICAgICAgZW51bWVyYWJsZTogITAsCiAgICAgIGNvbmZpZ3VyYWJsZTogITAsCiAgICAgIHdyaXRhYmxlOiAhMAogICAgfSksIHRbZV07CiAgfQogIHRyeSB7CiAgICBkZWZpbmUoe30sICIiKTsKICB9IGNhdGNoICh0KSB7CiAgICBkZWZpbmUgPSBmdW5jdGlvbiBkZWZpbmUodCwgZSwgcikgewogICAgICByZXR1cm4gdFtlXSA9IHI7CiAgICB9OwogIH0KICBmdW5jdGlvbiB3cmFwKHQsIGUsIHIsIG4pIHsKICAgIHZhciBpID0gZSAmJiBlLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvciA/IGUgOiBHZW5lcmF0b3IsCiAgICAgIGEgPSBPYmplY3QuY3JlYXRlKGkucHJvdG90eXBlKSwKICAgICAgYyA9IG5ldyBDb250ZXh0KG4gfHwgW10pOwogICAgcmV0dXJuIG8oYSwgIl9pbnZva2UiLCB7CiAgICAgIHZhbHVlOiBtYWtlSW52b2tlTWV0aG9kKHQsIHIsIGMpCiAgICB9KSwgYTsKICB9CiAgZnVuY3Rpb24gdHJ5Q2F0Y2godCwgZSwgcikgewogICAgdHJ5IHsKICAgICAgcmV0dXJuIHsKICAgICAgICB0eXBlOiAibm9ybWFsIiwKICAgICAgICBhcmc6IHQuY2FsbChlLCByKQogICAgICB9OwogICAgfSBjYXRjaCAodCkgewogICAgICByZXR1cm4gewogICAgICAgIHR5cGU6ICJ0aHJvdyIsCiAgICAgICAgYXJnOiB0CiAgICAgIH07CiAgICB9CiAgfQogIGUud3JhcCA9IHdyYXA7CiAgdmFyIGggPSAic3VzcGVuZGVkU3RhcnQiLAogICAgbCA9ICJzdXNwZW5kZWRZaWVsZCIsCiAgICBmID0gImV4ZWN1dGluZyIsCiAgICBzID0gImNvbXBsZXRlZCIsCiAgICB5ID0ge307CiAgZnVuY3Rpb24gR2VuZXJhdG9yKCkge30KICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvbigpIHt9CiAgZnVuY3Rpb24gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUoKSB7fQogIHZhciBwID0ge307CiAgZGVmaW5lKHAsIGEsIGZ1bmN0aW9uICgpIHsKICAgIHJldHVybiB0aGlzOwogIH0pOwogIHZhciBkID0gT2JqZWN0LmdldFByb3RvdHlwZU9mLAogICAgdiA9IGQgJiYgZChkKHZhbHVlcyhbXSkpKTsKICB2ICYmIHYgIT09IHIgJiYgbi5jYWxsKHYsIGEpICYmIChwID0gdik7CiAgdmFyIGcgPSBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZS5wcm90b3R5cGUgPSBHZW5lcmF0b3IucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShwKTsKICBmdW5jdGlvbiBkZWZpbmVJdGVyYXRvck1ldGhvZHModCkgewogICAgWyJuZXh0IiwgInRocm93IiwgInJldHVybiJdLmZvckVhY2goZnVuY3Rpb24gKGUpIHsKICAgICAgZGVmaW5lKHQsIGUsIGZ1bmN0aW9uICh0KSB7CiAgICAgICAgcmV0dXJuIHRoaXMuX2ludm9rZShlLCB0KTsKICAgICAgfSk7CiAgICB9KTsKICB9CiAgZnVuY3Rpb24gQXN5bmNJdGVyYXRvcih0LCBlKSB7CiAgICBmdW5jdGlvbiBpbnZva2UociwgbywgaSwgYSkgewogICAgICB2YXIgYyA9IHRyeUNhdGNoKHRbcl0sIHQsIG8pOwogICAgICBpZiAoInRocm93IiAhPT0gYy50eXBlKSB7CiAgICAgICAgdmFyIHUgPSBjLmFyZywKICAgICAgICAgIGggPSB1LnZhbHVlOwogICAgICAgIHJldHVybiBoICYmICJvYmplY3QiID09IF90eXBlb2YoaCkgJiYgbi5jYWxsKGgsICJfX2F3YWl0IikgPyBlLnJlc29sdmUoaC5fX2F3YWl0KS50aGVuKGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICBpbnZva2UoIm5leHQiLCB0LCBpLCBhKTsKICAgICAgICB9LCBmdW5jdGlvbiAodCkgewogICAgICAgICAgaW52b2tlKCJ0aHJvdyIsIHQsIGksIGEpOwogICAgICAgIH0pIDogZS5yZXNvbHZlKGgpLnRoZW4oZnVuY3Rpb24gKHQpIHsKICAgICAgICAgIHUudmFsdWUgPSB0LCBpKHUpOwogICAgICAgIH0sIGZ1bmN0aW9uICh0KSB7CiAgICAgICAgICByZXR1cm4gaW52b2tlKCJ0aHJvdyIsIHQsIGksIGEpOwogICAgICAgIH0pOwogICAgICB9CiAgICAgIGEoYy5hcmcpOwogICAgfQogICAgdmFyIHI7CiAgICBvKHRoaXMsICJfaW52b2tlIiwgewogICAgICB2YWx1ZTogZnVuY3Rpb24gdmFsdWUodCwgbikgewogICAgICAgIGZ1bmN0aW9uIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnKCkgewogICAgICAgICAgcmV0dXJuIG5ldyBlKGZ1bmN0aW9uIChlLCByKSB7CiAgICAgICAgICAgIGludm9rZSh0LCBuLCBlLCByKTsKICAgICAgICAgIH0pOwogICAgICAgIH0KICAgICAgICByZXR1cm4gciA9IHIgPyByLnRoZW4oY2FsbEludm9rZVdpdGhNZXRob2RBbmRBcmcsIGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnKSA6IGNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnKCk7CiAgICAgIH0KICAgIH0pOwogIH0KICBmdW5jdGlvbiBtYWtlSW52b2tlTWV0aG9kKGUsIHIsIG4pIHsKICAgIHZhciBvID0gaDsKICAgIHJldHVybiBmdW5jdGlvbiAoaSwgYSkgewogICAgICBpZiAobyA9PT0gZikgdGhyb3cgRXJyb3IoIkdlbmVyYXRvciBpcyBhbHJlYWR5IHJ1bm5pbmciKTsKICAgICAgaWYgKG8gPT09IHMpIHsKICAgICAgICBpZiAoInRocm93IiA9PT0gaSkgdGhyb3cgYTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgdmFsdWU6IHQsCiAgICAgICAgICBkb25lOiAhMAogICAgICAgIH07CiAgICAgIH0KICAgICAgZm9yIChuLm1ldGhvZCA9IGksIG4uYXJnID0gYTs7KSB7CiAgICAgICAgdmFyIGMgPSBuLmRlbGVnYXRlOwogICAgICAgIGlmIChjKSB7CiAgICAgICAgICB2YXIgdSA9IG1heWJlSW52b2tlRGVsZWdhdGUoYywgbik7CiAgICAgICAgICBpZiAodSkgewogICAgICAgICAgICBpZiAodSA9PT0geSkgY29udGludWU7CiAgICAgICAgICAgIHJldHVybiB1OwogICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBpZiAoIm5leHQiID09PSBuLm1ldGhvZCkgbi5zZW50ID0gbi5fc2VudCA9IG4uYXJnO2Vsc2UgaWYgKCJ0aHJvdyIgPT09IG4ubWV0aG9kKSB7CiAgICAgICAgICBpZiAobyA9PT0gaCkgdGhyb3cgbyA9IHMsIG4uYXJnOwogICAgICAgICAgbi5kaXNwYXRjaEV4Y2VwdGlvbihuLmFyZyk7CiAgICAgICAgfSBlbHNlICJyZXR1cm4iID09PSBuLm1ldGhvZCAmJiBuLmFicnVwdCgicmV0dXJuIiwgbi5hcmcpOwogICAgICAgIG8gPSBmOwogICAgICAgIHZhciBwID0gdHJ5Q2F0Y2goZSwgciwgbik7CiAgICAgICAgaWYgKCJub3JtYWwiID09PSBwLnR5cGUpIHsKICAgICAgICAgIGlmIChvID0gbi5kb25lID8gcyA6IGwsIHAuYXJnID09PSB5KSBjb250aW51ZTsKICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgIHZhbHVlOiBwLmFyZywKICAgICAgICAgICAgZG9uZTogbi5kb25lCiAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICAidGhyb3ciID09PSBwLnR5cGUgJiYgKG8gPSBzLCBuLm1ldGhvZCA9ICJ0aHJvdyIsIG4uYXJnID0gcC5hcmcpOwogICAgICB9CiAgICB9OwogIH0KICBmdW5jdGlvbiBtYXliZUludm9rZURlbGVnYXRlKGUsIHIpIHsKICAgIHZhciBuID0gci5tZXRob2QsCiAgICAgIG8gPSBlLml0ZXJhdG9yW25dOwogICAgaWYgKG8gPT09IHQpIHJldHVybiByLmRlbGVnYXRlID0gbnVsbCwgInRocm93IiA9PT0gbiAmJiBlLml0ZXJhdG9yWyJyZXR1cm4iXSAmJiAoci5tZXRob2QgPSAicmV0dXJuIiwgci5hcmcgPSB0LCBtYXliZUludm9rZURlbGVnYXRlKGUsIHIpLCAidGhyb3ciID09PSByLm1ldGhvZCkgfHwgInJldHVybiIgIT09IG4gJiYgKHIubWV0aG9kID0gInRocm93Iiwgci5hcmcgPSBuZXcgVHlwZUVycm9yKCJUaGUgaXRlcmF0b3IgZG9lcyBub3QgcHJvdmlkZSBhICciICsgbiArICInIG1ldGhvZCIpKSwgeTsKICAgIHZhciBpID0gdHJ5Q2F0Y2gobywgZS5pdGVyYXRvciwgci5hcmcpOwogICAgaWYgKCJ0aHJvdyIgPT09IGkudHlwZSkgcmV0dXJuIHIubWV0aG9kID0gInRocm93Iiwgci5hcmcgPSBpLmFyZywgci5kZWxlZ2F0ZSA9IG51bGwsIHk7CiAgICB2YXIgYSA9IGkuYXJnOwogICAgcmV0dXJuIGEgPyBhLmRvbmUgPyAocltlLnJlc3VsdE5hbWVdID0gYS52YWx1ZSwgci5uZXh0ID0gZS5uZXh0TG9jLCAicmV0dXJuIiAhPT0gci5tZXRob2QgJiYgKHIubWV0aG9kID0gIm5leHQiLCByLmFyZyA9IHQpLCByLmRlbGVnYXRlID0gbnVsbCwgeSkgOiBhIDogKHIubWV0aG9kID0gInRocm93Iiwgci5hcmcgPSBuZXcgVHlwZUVycm9yKCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdCIpLCByLmRlbGVnYXRlID0gbnVsbCwgeSk7CiAgfQogIGZ1bmN0aW9uIHB1c2hUcnlFbnRyeSh0KSB7CiAgICB2YXIgZSA9IHsKICAgICAgdHJ5TG9jOiB0WzBdCiAgICB9OwogICAgMSBpbiB0ICYmIChlLmNhdGNoTG9jID0gdFsxXSksIDIgaW4gdCAmJiAoZS5maW5hbGx5TG9jID0gdFsyXSwgZS5hZnRlckxvYyA9IHRbM10pLCB0aGlzLnRyeUVudHJpZXMucHVzaChlKTsKICB9CiAgZnVuY3Rpb24gcmVzZXRUcnlFbnRyeSh0KSB7CiAgICB2YXIgZSA9IHQuY29tcGxldGlvbiB8fCB7fTsKICAgIGUudHlwZSA9ICJub3JtYWwiLCBkZWxldGUgZS5hcmcsIHQuY29tcGxldGlvbiA9IGU7CiAgfQogIGZ1bmN0aW9uIENvbnRleHQodCkgewogICAgdGhpcy50cnlFbnRyaWVzID0gW3sKICAgICAgdHJ5TG9jOiAicm9vdCIKICAgIH1dLCB0LmZvckVhY2gocHVzaFRyeUVudHJ5LCB0aGlzKSwgdGhpcy5yZXNldCghMCk7CiAgfQogIGZ1bmN0aW9uIHZhbHVlcyhlKSB7CiAgICBpZiAoZSB8fCAiIiA9PT0gZSkgewogICAgICB2YXIgciA9IGVbYV07CiAgICAgIGlmIChyKSByZXR1cm4gci5jYWxsKGUpOwogICAgICBpZiAoImZ1bmN0aW9uIiA9PSB0eXBlb2YgZS5uZXh0KSByZXR1cm4gZTsKICAgICAgaWYgKCFpc05hTihlLmxlbmd0aCkpIHsKICAgICAgICB2YXIgbyA9IC0xLAogICAgICAgICAgaSA9IGZ1bmN0aW9uIG5leHQoKSB7CiAgICAgICAgICAgIGZvciAoOyArK28gPCBlLmxlbmd0aDspIGlmIChuLmNhbGwoZSwgbykpIHJldHVybiBuZXh0LnZhbHVlID0gZVtvXSwgbmV4dC5kb25lID0gITEsIG5leHQ7CiAgICAgICAgICAgIHJldHVybiBuZXh0LnZhbHVlID0gdCwgbmV4dC5kb25lID0gITAsIG5leHQ7CiAgICAgICAgICB9OwogICAgICAgIHJldHVybiBpLm5leHQgPSBpOwogICAgICB9CiAgICB9CiAgICB0aHJvdyBuZXcgVHlwZUVycm9yKF90eXBlb2YoZSkgKyAiIGlzIG5vdCBpdGVyYWJsZSIpOwogIH0KICByZXR1cm4gR2VuZXJhdG9yRnVuY3Rpb24ucHJvdG90eXBlID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIG8oZywgImNvbnN0cnVjdG9yIiwgewogICAgdmFsdWU6IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLAogICAgY29uZmlndXJhYmxlOiAhMAogIH0pLCBvKEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCAiY29uc3RydWN0b3IiLCB7CiAgICB2YWx1ZTogR2VuZXJhdG9yRnVuY3Rpb24sCiAgICBjb25maWd1cmFibGU6ICEwCiAgfSksIEdlbmVyYXRvckZ1bmN0aW9uLmRpc3BsYXlOYW1lID0gZGVmaW5lKEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCB1LCAiR2VuZXJhdG9yRnVuY3Rpb24iKSwgZS5pc0dlbmVyYXRvckZ1bmN0aW9uID0gZnVuY3Rpb24gKHQpIHsKICAgIHZhciBlID0gImZ1bmN0aW9uIiA9PSB0eXBlb2YgdCAmJiB0LmNvbnN0cnVjdG9yOwogICAgcmV0dXJuICEhZSAmJiAoZSA9PT0gR2VuZXJhdG9yRnVuY3Rpb24gfHwgIkdlbmVyYXRvckZ1bmN0aW9uIiA9PT0gKGUuZGlzcGxheU5hbWUgfHwgZS5uYW1lKSk7CiAgfSwgZS5tYXJrID0gZnVuY3Rpb24gKHQpIHsKICAgIHJldHVybiBPYmplY3Quc2V0UHJvdG90eXBlT2YgPyBPYmplY3Quc2V0UHJvdG90eXBlT2YodCwgR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUpIDogKHQuX19wcm90b19fID0gR2VuZXJhdG9yRnVuY3Rpb25Qcm90b3R5cGUsIGRlZmluZSh0LCB1LCAiR2VuZXJhdG9yRnVuY3Rpb24iKSksIHQucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShnKSwgdDsKICB9LCBlLmF3cmFwID0gZnVuY3Rpb24gKHQpIHsKICAgIHJldHVybiB7CiAgICAgIF9fYXdhaXQ6IHQKICAgIH07CiAgfSwgZGVmaW5lSXRlcmF0b3JNZXRob2RzKEFzeW5jSXRlcmF0b3IucHJvdG90eXBlKSwgZGVmaW5lKEFzeW5jSXRlcmF0b3IucHJvdG90eXBlLCBjLCBmdW5jdGlvbiAoKSB7CiAgICByZXR1cm4gdGhpczsKICB9KSwgZS5Bc3luY0l0ZXJhdG9yID0gQXN5bmNJdGVyYXRvciwgZS5hc3luYyA9IGZ1bmN0aW9uICh0LCByLCBuLCBvLCBpKSB7CiAgICB2b2lkIDAgPT09IGkgJiYgKGkgPSBQcm9taXNlKTsKICAgIHZhciBhID0gbmV3IEFzeW5jSXRlcmF0b3Iod3JhcCh0LCByLCBuLCBvKSwgaSk7CiAgICByZXR1cm4gZS5pc0dlbmVyYXRvckZ1bmN0aW9uKHIpID8gYSA6IGEubmV4dCgpLnRoZW4oZnVuY3Rpb24gKHQpIHsKICAgICAgcmV0dXJuIHQuZG9uZSA/IHQudmFsdWUgOiBhLm5leHQoKTsKICAgIH0pOwogIH0sIGRlZmluZUl0ZXJhdG9yTWV0aG9kcyhnKSwgZGVmaW5lKGcsIHUsICJHZW5lcmF0b3IiKSwgZGVmaW5lKGcsIGEsIGZ1bmN0aW9uICgpIHsKICAgIHJldHVybiB0aGlzOwogIH0pLCBkZWZpbmUoZywgInRvU3RyaW5nIiwgZnVuY3Rpb24gKCkgewogICAgcmV0dXJuICJbb2JqZWN0IEdlbmVyYXRvcl0iOwogIH0pLCBlLmtleXMgPSBmdW5jdGlvbiAodCkgewogICAgdmFyIGUgPSBPYmplY3QodCksCiAgICAgIHIgPSBbXTsKICAgIGZvciAodmFyIG4gaW4gZSkgci5wdXNoKG4pOwogICAgcmV0dXJuIHIucmV2ZXJzZSgpLCBmdW5jdGlvbiBuZXh0KCkgewogICAgICBmb3IgKDsgci5sZW5ndGg7KSB7CiAgICAgICAgdmFyIHQgPSByLnBvcCgpOwogICAgICAgIGlmICh0IGluIGUpIHJldHVybiBuZXh0LnZhbHVlID0gdCwgbmV4dC5kb25lID0gITEsIG5leHQ7CiAgICAgIH0KICAgICAgcmV0dXJuIG5leHQuZG9uZSA9ICEwLCBuZXh0OwogICAgfTsKICB9LCBlLnZhbHVlcyA9IHZhbHVlcywgQ29udGV4dC5wcm90b3R5cGUgPSB7CiAgICBjb25zdHJ1Y3RvcjogQ29udGV4dCwKICAgIHJlc2V0OiBmdW5jdGlvbiByZXNldChlKSB7CiAgICAgIGlmICh0aGlzLnByZXYgPSAwLCB0aGlzLm5leHQgPSAwLCB0aGlzLnNlbnQgPSB0aGlzLl9zZW50ID0gdCwgdGhpcy5kb25lID0gITEsIHRoaXMuZGVsZWdhdGUgPSBudWxsLCB0aGlzLm1ldGhvZCA9ICJuZXh0IiwgdGhpcy5hcmcgPSB0LCB0aGlzLnRyeUVudHJpZXMuZm9yRWFjaChyZXNldFRyeUVudHJ5KSwgIWUpIGZvciAodmFyIHIgaW4gdGhpcykgInQiID09PSByLmNoYXJBdCgwKSAmJiBuLmNhbGwodGhpcywgcikgJiYgIWlzTmFOKCtyLnNsaWNlKDEpKSAmJiAodGhpc1tyXSA9IHQpOwogICAgfSwKICAgIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7CiAgICAgIHRoaXMuZG9uZSA9ICEwOwogICAgICB2YXIgdCA9IHRoaXMudHJ5RW50cmllc1swXS5jb21wbGV0aW9uOwogICAgICBpZiAoInRocm93IiA9PT0gdC50eXBlKSB0aHJvdyB0LmFyZzsKICAgICAgcmV0dXJuIHRoaXMucnZhbDsKICAgIH0sCiAgICBkaXNwYXRjaEV4Y2VwdGlvbjogZnVuY3Rpb24gZGlzcGF0Y2hFeGNlcHRpb24oZSkgewogICAgICBpZiAodGhpcy5kb25lKSB0aHJvdyBlOwogICAgICB2YXIgciA9IHRoaXM7CiAgICAgIGZ1bmN0aW9uIGhhbmRsZShuLCBvKSB7CiAgICAgICAgcmV0dXJuIGEudHlwZSA9ICJ0aHJvdyIsIGEuYXJnID0gZSwgci5uZXh0ID0gbiwgbyAmJiAoci5tZXRob2QgPSAibmV4dCIsIHIuYXJnID0gdCksICEhbzsKICAgICAgfQogICAgICBmb3IgKHZhciBvID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IG8gPj0gMDsgLS1vKSB7CiAgICAgICAgdmFyIGkgPSB0aGlzLnRyeUVudHJpZXNbb10sCiAgICAgICAgICBhID0gaS5jb21wbGV0aW9uOwogICAgICAgIGlmICgicm9vdCIgPT09IGkudHJ5TG9jKSByZXR1cm4gaGFuZGxlKCJlbmQiKTsKICAgICAgICBpZiAoaS50cnlMb2MgPD0gdGhpcy5wcmV2KSB7CiAgICAgICAgICB2YXIgYyA9IG4uY2FsbChpLCAiY2F0Y2hMb2MiKSwKICAgICAgICAgICAgdSA9IG4uY2FsbChpLCAiZmluYWxseUxvYyIpOwogICAgICAgICAgaWYgKGMgJiYgdSkgewogICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgaS5jYXRjaExvYykgcmV0dXJuIGhhbmRsZShpLmNhdGNoTG9jLCAhMCk7CiAgICAgICAgICAgIGlmICh0aGlzLnByZXYgPCBpLmZpbmFsbHlMb2MpIHJldHVybiBoYW5kbGUoaS5maW5hbGx5TG9jKTsKICAgICAgICAgIH0gZWxzZSBpZiAoYykgewogICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgaS5jYXRjaExvYykgcmV0dXJuIGhhbmRsZShpLmNhdGNoTG9jLCAhMCk7CiAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBpZiAoIXUpIHRocm93IEVycm9yKCJ0cnkgc3RhdGVtZW50IHdpdGhvdXQgY2F0Y2ggb3IgZmluYWxseSIpOwogICAgICAgICAgICBpZiAodGhpcy5wcmV2IDwgaS5maW5hbGx5TG9jKSByZXR1cm4gaGFuZGxlKGkuZmluYWxseUxvYyk7CiAgICAgICAgICB9CiAgICAgICAgfQogICAgICB9CiAgICB9LAogICAgYWJydXB0OiBmdW5jdGlvbiBhYnJ1cHQodCwgZSkgewogICAgICBmb3IgKHZhciByID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IHIgPj0gMDsgLS1yKSB7CiAgICAgICAgdmFyIG8gPSB0aGlzLnRyeUVudHJpZXNbcl07CiAgICAgICAgaWYgKG8udHJ5TG9jIDw9IHRoaXMucHJldiAmJiBuLmNhbGwobywgImZpbmFsbHlMb2MiKSAmJiB0aGlzLnByZXYgPCBvLmZpbmFsbHlMb2MpIHsKICAgICAgICAgIHZhciBpID0gbzsKICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KICAgICAgfQogICAgICBpICYmICgiYnJlYWsiID09PSB0IHx8ICJjb250aW51ZSIgPT09IHQpICYmIGkudHJ5TG9jIDw9IGUgJiYgZSA8PSBpLmZpbmFsbHlMb2MgJiYgKGkgPSBudWxsKTsKICAgICAgdmFyIGEgPSBpID8gaS5jb21wbGV0aW9uIDoge307CiAgICAgIHJldHVybiBhLnR5cGUgPSB0LCBhLmFyZyA9IGUsIGkgPyAodGhpcy5tZXRob2QgPSAibmV4dCIsIHRoaXMubmV4dCA9IGkuZmluYWxseUxvYywgeSkgOiB0aGlzLmNvbXBsZXRlKGEpOwogICAgfSwKICAgIGNvbXBsZXRlOiBmdW5jdGlvbiBjb21wbGV0ZSh0LCBlKSB7CiAgICAgIGlmICgidGhyb3ciID09PSB0LnR5cGUpIHRocm93IHQuYXJnOwogICAgICByZXR1cm4gImJyZWFrIiA9PT0gdC50eXBlIHx8ICJjb250aW51ZSIgPT09IHQudHlwZSA/IHRoaXMubmV4dCA9IHQuYXJnIDogInJldHVybiIgPT09IHQudHlwZSA/ICh0aGlzLnJ2YWwgPSB0aGlzLmFyZyA9IHQuYXJnLCB0aGlzLm1ldGhvZCA9ICJyZXR1cm4iLCB0aGlzLm5leHQgPSAiZW5kIikgOiAibm9ybWFsIiA9PT0gdC50eXBlICYmIGUgJiYgKHRoaXMubmV4dCA9IGUpLCB5OwogICAgfSwKICAgIGZpbmlzaDogZnVuY3Rpb24gZmluaXNoKHQpIHsKICAgICAgZm9yICh2YXIgZSA9IHRoaXMudHJ5RW50cmllcy5sZW5ndGggLSAxOyBlID49IDA7IC0tZSkgewogICAgICAgIHZhciByID0gdGhpcy50cnlFbnRyaWVzW2VdOwogICAgICAgIGlmIChyLmZpbmFsbHlMb2MgPT09IHQpIHJldHVybiB0aGlzLmNvbXBsZXRlKHIuY29tcGxldGlvbiwgci5hZnRlckxvYyksIHJlc2V0VHJ5RW50cnkociksIHk7CiAgICAgIH0KICAgIH0sCiAgICAiY2F0Y2giOiBmdW5jdGlvbiBfY2F0Y2godCkgewogICAgICBmb3IgKHZhciBlID0gdGhpcy50cnlFbnRyaWVzLmxlbmd0aCAtIDE7IGUgPj0gMDsgLS1lKSB7CiAgICAgICAgdmFyIHIgPSB0aGlzLnRyeUVudHJpZXNbZV07CiAgICAgICAgaWYgKHIudHJ5TG9jID09PSB0KSB7CiAgICAgICAgICB2YXIgbiA9IHIuY29tcGxldGlvbjsKICAgICAgICAgIGlmICgidGhyb3ciID09PSBuLnR5cGUpIHsKICAgICAgICAgICAgdmFyIG8gPSBuLmFyZzsKICAgICAgICAgICAgcmVzZXRUcnlFbnRyeShyKTsKICAgICAgICAgIH0KICAgICAgICAgIHJldHVybiBvOwogICAgICAgIH0KICAgICAgfQogICAgICB0aHJvdyBFcnJvcigiaWxsZWdhbCBjYXRjaCBhdHRlbXB0Iik7CiAgICB9LAogICAgZGVsZWdhdGVZaWVsZDogZnVuY3Rpb24gZGVsZWdhdGVZaWVsZChlLCByLCBuKSB7CiAgICAgIHJldHVybiB0aGlzLmRlbGVnYXRlID0gewogICAgICAgIGl0ZXJhdG9yOiB2YWx1ZXMoZSksCiAgICAgICAgcmVzdWx0TmFtZTogciwKICAgICAgICBuZXh0TG9jOiBuCiAgICAgIH0sICJuZXh0IiA9PT0gdGhpcy5tZXRob2QgJiYgKHRoaXMuYXJnID0gdCksIHk7CiAgICB9CiAgfSwgZTsKfQpleHBvcnQgeyBfcmVnZW5lcmF0b3JSdW50aW1lIGFzIGRlZmF1bHQgfTs="},null]}