{"remainingRequest":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\eslint-loader\\index.js??ref--13-0!D:\\jenkins\\workspace\\xcjy-fvue\\src\\router\\router.js","dependencies":[{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\src\\router\\router.js","mtime":1752222859840},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\babel.config.js","mtime":1741314102158},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":456789000000},{"path":"D:\\jenkins\\workspace\\xcjy-fvue\\node_modules\\eslint-loader\\index.js","mtime":499162500000}],"contextDependencies":[],"result":[{"type":"Buffer","data":"base64:aW1wb3J0IF9yZWdlbmVyYXRvclJ1bnRpbWUgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9yZWdlbmVyYXRvclJ1bnRpbWUuanMiOwppbXBvcnQgX2FzeW5jVG9HZW5lcmF0b3IgZnJvbSAiRDovamVua2lucy93b3Jrc3BhY2UveGNqeS1mdnVlL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2VzbS9hc3luY1RvR2VuZXJhdG9yLmpzIjsKaW1wb3J0IF90b0NvbnN1bWFibGVBcnJheSBmcm9tICJEOi9qZW5raW5zL3dvcmtzcGFjZS94Y2p5LWZ2dWUvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXNtL3RvQ29uc3VtYWJsZUFycmF5LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuY29uY2F0LmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuYXJyYXkuZmluZC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLmZ1bmN0aW9uLm5hbWUuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5jb25zdHJ1Y3Rvci5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLml0ZXJhdG9yLmZpbmQuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5pdGVyYXRvci5zb21lLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMuanNvbi5zdHJpbmdpZnkuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5vYmplY3QudG8tc3RyaW5nLmpzIjsKaW1wb3J0ICJjb3JlLWpzL21vZHVsZXMvZXMucmVnZXhwLmV4ZWMuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcuaXRlcmF0b3IuanMiOwppbXBvcnQgImNvcmUtanMvbW9kdWxlcy9lcy5zdHJpbmcucmVwbGFjZS5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL2VzLnN0cmluZy5zdGFydHMtd2l0aC5qcyI7CmltcG9ydCAiY29yZS1qcy9tb2R1bGVzL3dlYi5kb20tY29sbGVjdGlvbnMuaXRlcmF0b3IuanMiOwppbXBvcnQgVnVlIGZyb20gJ3Z1ZSc7CmltcG9ydCBSb3V0ZXIgZnJvbSAndnVlLXJvdXRlcic7CmltcG9ydCBzdG9yZSBmcm9tICdAL3N0b3JlJzsKaW1wb3J0IE5vdEZvdW5kIGZyb20gJ0Avdmlld3MvTm90Rm91bmQudnVlJzsKaW1wb3J0IExvZ2luIGZyb20gJ0Avdmlld3MvTG9naW4vaW5kZXgudnVlJzsKaW1wb3J0IHJlcSBmcm9tICdAL3JlcXVlc3QnOwppbXBvcnQgdWMgZnJvbSAnQC9hcGkvdWMuanMnOwppbXBvcnQgcG9ydGFsIGZyb20gJ0AvYXBpL3BvcnRhbC5qcyc7Ci8v6Lev55SxCmltcG9ydCBtYWluUm91dGVyIGZyb20gJ0Avcm91dGVyL21vZHVsZS1yb3V0ZXInOwppbXBvcnQgY3VzdG9tU3lzdGVtUm91dGVyIGZyb20gJ0Avcm91dGVyL2N1c3RvbS1zeXN0ZW0tcm91dGVyJzsKaW1wb3J0IGJpZ1NjcmVlblJvdXRlciBmcm9tICdAL3JvdXRlci9iaWdTY3JlZW5Sb3V0ZXInOwppbXBvcnQgTGF5b3V0IGZyb20gJ0AvY29tcG9uZW50cy9sYXlvdXQvTGF5b3V0LnZ1ZSc7Ci8vIOa2iOaBr+e7hOS7tgppbXBvcnQgeyBNZXNzYWdlIH0gZnJvbSAnZWxlbWVudC11aSc7CmltcG9ydCBTcGFya01ENSBmcm9tICdzcGFyay1tZDUnOwpWdWUudXNlKFJvdXRlcik7CnZhciByb3V0ZXIgPSBuZXcgUm91dGVyKHsKICBtb2RlOiAnaGlzdG9yeScsCiAgYmFzZTogcHJvY2Vzcy5lbnYuQkFTRV9VUkwsCiAgcm91dGVzOiBbCiAgLy8g6YeN5a6a5ZCR5YiwbG9naW4KICB7CiAgICBwYXRoOiAnLycsCiAgICByZWRpcmVjdDogewogICAgICBuYW1lOiAnbG9naW4nCiAgICB9CiAgfSwKICAvLyDnmbvlvZXpobXpnaIKICB7CiAgICBwYXRoOiAnL2xvZ2luJywKICAgIG5hbWU6ICdsb2dpbicsCiAgICBjb21wb25lbnQ6IExvZ2luLAogICAgbWV0YTogewogICAgICBzaW5nbGU6IHRydWUsCiAgICAgIGFub255bW91czogdHJ1ZQogICAgfQogIH0sCiAgLy8g6YeN572u5a+G56CBCiAgewogICAgcGF0aDogJy9yZXNldFB3ZFZpZXcnLAogICAgbmFtZTogJ3Jlc2V0UHdkVmlld0lubmVyJywKICAgIHByb3BzOiB0cnVlLAogICAgY29tcG9uZW50OiBmdW5jdGlvbiBjb21wb25lbnQoKSB7CiAgICAgIHJldHVybiBpbXBvcnQoJ0Avdmlld3MvUmVzZXRQd2RWaWV3LnZ1ZScpOwogICAgfQogIH0sCiAgLy8g6Lez6L2s6Ym05p2D562J5b6F6aG16Z2iCiAgewogICAgcGF0aDogJy9zYWZldHknLAogICAgbmFtZTogJ3NhZmV0eScsCiAgICBjb21wb25lbnQ6IGZ1bmN0aW9uIGNvbXBvbmVudCgpIHsKICAgICAgcmV0dXJuIGltcG9ydCgnQC92aWV3cy9Mb2FkaW5nLnZ1ZScpOwogICAgfSwKICAgIG1ldGE6IHsKICAgICAgc2luZ2xlOiB0cnVlLAogICAgICBhbm9ueW1vdXM6IHRydWUKICAgIH0KICB9LCB7CiAgICBwYXRoOiAnL3BhdHJvbCcsCiAgICBuYW1lOiAncGF0cm9sJywKICAgIGNvbXBvbmVudDogZnVuY3Rpb24gY29tcG9uZW50KCkgewogICAgICByZXR1cm4gaW1wb3J0KCdAL3ZpZXdzL0xvYWRpbmcudnVlJyk7CiAgICB9LAogICAgbWV0YTogewogICAgICBzaW5nbGU6IHRydWUsCiAgICAgIGFub255bW91czogdHJ1ZQogICAgfQogIH0sIHsKICAgIHBhdGg6ICcvZXZlbnRSZWdpc3RyYXRpb24nLAogICAgbmFtZTogJ2V2ZW50UmVnaXN0cmF0aW9uU2luZ2xlJywKICAgIGNvbXBvbmVudDogZnVuY3Rpb24gY29tcG9uZW50KCkgewogICAgICByZXR1cm4gaW1wb3J0KCdAL3ZpZXdzL3BhdHJvbEFuZFJlc2N1ZS9jb21tYW5kRGlzcGF0Y2gvRXZlbnRSZWdpc3RyYXRpb24nKTsKICAgIH0KICB9LCB7CiAgICBwYXRoOiAnL2luZm9ybWF0aU9uRm9yQXR0ZW50aW9uJywKICAgIG5hbWU6ICdpbmZvcm1hdGlPbkZvckF0dGVudGlvblNpbmdsZScsCiAgICBjb21wb25lbnQ6IGZ1bmN0aW9uIGNvbXBvbmVudCgpIHsKICAgICAgcmV0dXJuIGltcG9ydCgnQC92aWV3cy9wYXRyb2xBbmRSZXNjdWUvb3BlcmF0aW9uYWxNb25pdG9yaW5nL2luZm9ybWF0aU9uRm9yQXR0ZW50aW9uJyk7CiAgICB9CiAgfV0uY29uY2F0KF90b0NvbnN1bWFibGVBcnJheShiaWdTY3JlZW5Sb3V0ZXIpLCBbCiAgLy8g5ZCO5Y+w6aG16Z2iCiAgewogICAgcGF0aDogJy9wbGF0TGF5b3V0JywKICAgIG5hbWU6ICdwbGF0TGF5b3V0JywKICAgIGNvbXBvbmVudDogTGF5b3V0LAogICAgbWV0YTogewogICAgICBzaW5nbGU6IHRydWUsCiAgICAgIGFub255bW91czogdHJ1ZQogICAgfSwKICAgIGNoaWxkcmVuOiBbXS5jb25jYXQoX3RvQ29uc3VtYWJsZUFycmF5KGN1c3RvbVN5c3RlbVJvdXRlciksIF90b0NvbnN1bWFibGVBcnJheShtYWluUm91dGVyKSwgWwogICAgLy8gNDA06aG16Z2iCiAgICB7CiAgICAgIHBhdGg6ICcvOmNhdGNoQWxsKC4qKScsCiAgICAgIGNvbXBvbmVudDogTm90Rm91bmQsCiAgICAgIG1ldGE6IHsKICAgICAgICAvLyBzaW5nbGU6IHRydWUKICAgICAgfQogICAgfV0pCiAgfSwKICAvLyA0MDTpobXpnaIKICB7CiAgICBwYXRoOiAnLzpjYXRjaEFsbCguKiknLAogICAgY29tcG9uZW50OiBOb3RGb3VuZCwKICAgIG1ldGE6IHsKICAgICAgLy8gc2luZ2xlOiB0cnVlCiAgICB9CiAgfV0pCn0pOwp2YXIgY3JlYXRlUm91dGVyID0gZnVuY3Rpb24gY3JlYXRlUm91dGVyKCkgewogIHJldHVybiBuZXcgUm91dGVyKHsKICAgIG1vZGU6ICdoaXN0b3J5JywKICAgIHJvdXRlczogW10KICB9KTsKfTsKCi8v6YeN5YaZ5Yqo5oCB5re75Yqg6Lev55Sx5pa55rOVCnJvdXRlci4kYWRkUm91dGVzID0gZnVuY3Rpb24gKHBhcmFtcykgewogIHZhciBuZXdSb3V0ZXIgPSBjcmVhdGVSb3V0ZXIoKTsKICByb3V0ZXIubWF0Y2hlciA9IG5ld1JvdXRlci5tYXRjaGVyOyAvL+mHjee9rui3r+eUseinhOWImQogIHJvdXRlci5hZGRSb3V0ZXMocGFyYW1zKTsgLy8g5re75Yqg6Lev55SxCn07CgovL+WKqOaAgeaWsOWinuS6jOe6p+i3r+eUsQpyb3V0ZXIuYWRkTGlzdCA9IGZ1bmN0aW9uICgpIHsKICByZXR1cm4gZmFsc2U7Cn07CnZhciByZWdpc3RlclJvdXRlRnJlc2ggPSB0cnVlOwp2YXIgc3NvUmVkaXJlY3QgPSBmdW5jdGlvbiBzc29SZWRpcmVjdCgpIHsKICBpZiAod2luZG93LnNzb0NvbmZpZy5tb2RlID09PSAnY2FzJykgewogICAgdmFyIHNlcnZpY2UgPSB3aW5kb3cubG9jYXRpb24uaHJlZjsKICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdzZXJ2aWNlJywgc2VydmljZSk7CiAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHdpbmRvdy5zc29Db25maWcudXJsICsgJz9zZXJ2aWNlPScgKyBzZXJ2aWNlOwogIH0gZWxzZSBpZiAod2luZG93LnNzb0NvbmZpZy5tb2RlID09PSAnb2F1dGgnKSB7CiAgICBpZiAoIXdpbmRvdy5zc29Db25maWcuY2xpZW50SWQpIHsKICAgICAgdGhyb3cgJ29hdXRo5qih5byP5LiL5b+F6aG75o+Q5L6bY2xpZW50SWQnOwogICAgfQogICAgdmFyIF9zZXJ2aWNlID0gd2luZG93LmxvY2F0aW9uLmhyZWY7CiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnc2VydmljZScsIF9zZXJ2aWNlKTsKICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gIiIuY29uY2F0KHdpbmRvdy5zc29Db25maWcudXJsLCAiP3Jlc3BvbnNlX3R5cGU9Y29kZSZjbGllbnRfaWQ9IikuY29uY2F0KHdpbmRvdy5zc29Db25maWcuY2xpZW50SWQsICImcmVkaXJlY3RfdXJpPSIpLmNvbmNhdChfc2VydmljZSk7CiAgfQp9Owp2YXIgaGFuZGVsU2hvcnRVcmwgPSBmdW5jdGlvbiBoYW5kZWxTaG9ydFVybCh0bywgZnJvbSwgbmV4dCkgewogIHJlcS5nZXQoJyR7cG9ydGFsfS9wb3J0YWwvc2hvcnR1cmxNYW5hZ2UvdjEvZ2V0TG9uZ1VybEJ5U2hvcnRVcmw/c2hvcnRVcmw9JyArIHRvLmZ1bGxQYXRoLnN1YnN0cigxKSwgJycsIGZhbHNlKS50aGVuKGZ1bmN0aW9uIChyZXNwKSB7CiAgICBpZiAocmVzcCAmJiByZXNwLmRhdGEgJiYgcmVzcC5kYXRhLnN0YXRlKSB7CiAgICAgIHN0b3JlLmRpc3BhdGNoKCdsb2dpbi92YWxpZEFuZENvbXBsZXRlZEN1cnJlbnQnLCByZXNwLmRhdGEudmFsdWUuZ3Vlc3RUb2tlbikudGhlbihmdW5jdGlvbiAoKSB7CiAgICAgICAgbmV4dCh7CiAgICAgICAgICBwYXRoOiByZXNwLmRhdGEudmFsdWUudXJsCiAgICAgICAgfSk7CiAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsKICAgICAgICBsb2dvdXRBbmRDbGVhblVwKHRvLCBmcm9tLCBuZXh0KTsKICAgICAgfSk7CiAgICB9IGVsc2UgewogICAgICBuZXh0KHsKICAgICAgICBwYXRoOiAnL21lc3NhZ2VGaWxsUGFnZS8nICsgcmVzcC5kYXRhLm1lc3NhZ2UKICAgICAgfSk7CiAgICB9CiAgfSkuY2F0Y2goZnVuY3Rpb24gKCkgewogICAgbG9nb3V0QW5kQ2xlYW5VcCh0bywgZnJvbSwgbmV4dCk7CiAgfSk7Cn07CnZhciBnZXRBbGxEaWN0ID0gZnVuY3Rpb24gZ2V0QWxsRGljdCgpIHsKICBwb3J0YWwuZ2V0U3lzRGljdCgpLnRoZW4oZnVuY3Rpb24gKGRhdGEpIHsKICAgIGlmIChkYXRhKSB7CiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oJ2RpY3RfZGF0YScsIEpTT04uc3RyaW5naWZ5KGRhdGEpKTsKICAgIH0KICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyKSB7CiAgICBjb25zb2xlLmxvZyhlcnIsICflrZflhbhlcnInKTsKICB9KTsKfTsKdmFyIGxvZ291dEFuZENsZWFuVXAgPSBmdW5jdGlvbiBsb2dvdXRBbmRDbGVhblVwKHRvLCBmcm9tLCBuZXh0KSB7CiAgc3RvcmUuZGlzcGF0Y2goJ2xvZ2luL2xvZ291dEFuZENsZWFuVXAnKS50aGVuKGZ1bmN0aW9uICgpIHsKICAgIGlmICh3aW5kb3cuc3NvQ29uZmlnLm1vZGUgJiYgd2luZG93LnNzb0NvbmZpZy5tb2RlICE9PSAnand0JykgewogICAgICBzc29SZWRpcmVjdCgpOwogICAgfSBlbHNlIGlmICghd2luZG93LnNzb0NvbmZpZy5tb2RlIHx8IHdpbmRvdy5zc29Db25maWcubW9kZSA9PT0gJ2p3dCcpIHsKICAgICAgbmV4dCh7CiAgICAgICAgcGF0aDogJy9sb2dpbicKICAgICAgICAvLyBxdWVyeTogewogICAgICAgIC8vICAgICByZWRpcmVjdDogdG8uZnVsbFBhdGgKICAgICAgICAvLyB9CiAgICAgIH0pOwogICAgfSBlbHNlIHsKICAgICAgdGhyb3cgJ+eZu+W9leWksei0pSc7CiAgICB9CiAgfSk7Cn07CnZhciBkZWNvZGVUb2tlbiA9IGZ1bmN0aW9uIGRlY29kZVRva2VuKGtleSkgewogIHZhciBzcGFya1N0ciA9ICcnOwogIHZhciBzcGFyayA9IG5ldyBTcGFya01ENSgpOwogIHNwYXJrLmFwcGVuZChrZXkpOwogIHNwYXJrU3RyID0gc3BhcmsuZW5kKCk7CiAgY29uc29sZS5sb2coJ3NwYXJrU3RyJywgc3BhcmtTdHIpOwogIHZhciBCYXNlNjQgPSByZXF1aXJlKCdqcy1iYXNlNjQnKS5CYXNlNjQ7CiAgdmFyIHRva2VuID0gQmFzZTY0LmVuY29kZShzcGFya1N0cik7CiAgcmV0dXJuIHRva2VuOwp9OwoKLy8g6YCa6L+H6LSm5Y+355m75b2VCnZhciBhY2NvdW50TG9naW4gPSBmdW5jdGlvbiBhY2NvdW50TG9naW4odXNlckluZm8sIG5leHQsIG5hbWUpIHsKICBzdG9yZS5kaXNwYXRjaCgnbG9naW4vbG9naW5CeVByaW5jaXBhbCcsIHVzZXJJbmZvKS50aGVuKGZ1bmN0aW9uIChsb2dpblN0YXR1cykgewogICAgaWYgKGxvZ2luU3RhdHVzICYmIGxvZ2luU3RhdHVzID09IHRydWUpIHsKICAgICAgZ2V0QWxsRGljdCgpOwogICAgICAvLyDojrflj5blvZPliY3nlKjmiLfnmoTmjInpkq7jgIHmlrnms5XmnYPpmZAKICAgICAgc3RvcmUuZGlzcGF0Y2goJ21lbnUvZ2V0Q3VycmVudFVzZXJNZXRob2RBdXRoJyk7CiAgICAgIC8v6I635Y+W5YmN5Y+w6aG16Z2i5omA5pyJ6I+c5Y2VCiAgICAgIHN0b3JlLmRpc3BhdGNoKCdtZW51L2FjdGlvbkZyb250TWVudXMnKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICBpZiAocmVzLmxlbmd0aCkgewogICAgICAgICAgc3RvcmUuZGlzcGF0Y2goJ2xvZ2luL2NoZWNrVXNlckluZm9TdGF0ZScpLnRoZW4oZnVuY3Rpb24gKGlzRmluaXNoVXNlckluZm8pIHsKICAgICAgICAgICAgaWYgKCFpc0ZpbmlzaFVzZXJJbmZvKSB7CiAgICAgICAgICAgICAgbmV4dCh7CiAgICAgICAgICAgICAgICBwYXRoOiAnL3BsYXRMYXlvdXQvcGVyc29uYWxJbmZvJwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgIC8vIOS6i+S7tueZu+iusAogICAgICAgICAgICAgIGlmIChuYW1lID09PSAnZXZlbnRSZWdpc3RyYXRpb25TaW5nbGUnKSB7CiAgICAgICAgICAgICAgICBuZXh0KHsKICAgICAgICAgICAgICAgICAgcGF0aDogJy9ldmVudFJlZ2lzdHJhdGlvbicKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgIH0gZWxzZSBpZiAobmFtZSA9PT0gJ2luZm9ybWF0aU9uRm9yQXR0ZW50aW9uU2luZ2xlJykgewogICAgICAgICAgICAgICAgbmV4dCh7CiAgICAgICAgICAgICAgICAgIHBhdGg6ICcvaW5mb3JtYXRpT25Gb3JBdHRlbnRpb24nCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgLy8g6Lez6L2s5Yiw5p2D6ZmQ6aG16Z2iCiAgICAgICAgICAgICAgICB2YXIgX3JlZiA9IHJlcyAmJiByZXMuZmluZChmdW5jdGlvbiAoaSkgewogICAgICAgICAgICAgICAgICAgIHJldHVybiBpLmFsaWFzID09PSAnbm9ybWFsJzsKICAgICAgICAgICAgICAgICAgfSksCiAgICAgICAgICAgICAgICAgIGNoaWxkcmVuID0gX3JlZi5jaGlsZHJlbjsKICAgICAgICAgICAgICAgIHZhciBnZXRQYXRoID0gZnVuY3Rpb24gZ2V0UGF0aCh0cmVlRGF0YSkgewogICAgICAgICAgICAgICAgICB2YXIgcGF0aCA9IGFyZ3VtZW50cy5sZW5ndGggPiAxICYmIGFyZ3VtZW50c1sxXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzFdIDogJyc7CiAgICAgICAgICAgICAgICAgIHJldHVybiBwYXRoICsgIi8iLmNvbmNhdCh0cmVlRGF0YVswXS5hbGlhcyk7CiAgICAgICAgICAgICAgICB9OwogICAgICAgICAgICAgICAgbmV4dCh7CiAgICAgICAgICAgICAgICAgIHBhdGg6IGdldFBhdGgoY2hpbGRyZW4sICcvcGxhdExheW91dCcpCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgIH0pOwogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICBNZXNzYWdlLmVycm9yKCfmirHmrYnvvIHmgqjlsJrml6Dlj6/orr/pl67pobXpnaLvvIzor7fogZTns7vnrqHnkIblkZjmt7vliqDvvIEnKTsKICAgICAgICB9CiAgICAgIH0pOwogICAgfQogIH0pOwp9Owpyb3V0ZXIuYmVmb3JlRWFjaCgvKiNfX1BVUkVfXyovZnVuY3Rpb24gKCkgewogIHZhciBfcmVmMiA9IF9hc3luY1RvR2VuZXJhdG9yKC8qI19fUFVSRV9fKi9fcmVnZW5lcmF0b3JSdW50aW1lKCkubWFyayhmdW5jdGlvbiBfY2FsbGVlKHRvLCBmcm9tLCBuZXh0KSB7CiAgICB2YXIgZGF0YSwgdG9rZW4sIHB0aywgdGlja2V0OwogICAgcmV0dXJuIF9yZWdlbmVyYXRvclJ1bnRpbWUoKS53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7CiAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7CiAgICAgICAgY2FzZSAwOgogICAgICAgICAgLy8g6am+6am26Iix55m75b2V5Yiw5LqL5Lu255m76K6w5oiW6ICF5bel5L2c5Y+w5pC65bimdG9rZW5LZXkKICAgICAgICAgIGlmICgodG8ubmFtZSA9PT0gJ2V2ZW50UmVnaXN0cmF0aW9uU2luZ2xlJyB8fCB0by5uYW1lID09PSAnaW5mb3JtYXRpT25Gb3JBdHRlbnRpb25TaW5nbGUnIHx8IHRvLm5hbWUgPT09ICdwYXRyb2wnKSAmJiB0by5xdWVyeS50b2tlbktleSkgewogICAgICAgICAgICBkZWNvZGVUb2tlbignYWRtaW4nICsgJ0FydGZlc3NAMDI0Jyk7CiAgICAgICAgICAgIGRhdGEgPSB7CiAgICAgICAgICAgICAga2V5OiB0by5xdWVyeS50b2tlbktleQogICAgICAgICAgICB9OwogICAgICAgICAgICB0b2tlbiA9IHsKICAgICAgICAgICAgICB0b2tlbjogJycsCiAgICAgICAgICAgICAgdG9rZW5LZXk6IHRvLnF1ZXJ5LnRva2VuS2V5CiAgICAgICAgICAgIH07CiAgICAgICAgICAgIHVjLmF1dGhGb3JtVXNlclRva2VuS2V5KGRhdGEpLnRoZW4oZnVuY3Rpb24gKHJlcykgewogICAgICAgICAgICAgIGlmIChyZXMuc3VjY2VzcykgewogICAgICAgICAgICAgICAgdG9rZW4udG9rZW4gPSByZXMuZGF0YTsKICAgICAgICAgICAgICAgIHVjLmF1dGhVc2VySW5mbyh0b2tlbikudGhlbihmdW5jdGlvbiAocmVzKSB7CiAgICAgICAgICAgICAgICAgIGlmIChyZXMuc3VjY2VzcykgewogICAgICAgICAgICAgICAgICAgIC8v5ZCM5q2l5ZCO6I635Y+W55So5oi35ZCN5a+G56CB55m75b2VCiAgICAgICAgICAgICAgICAgICAgdmFyIGtleSA9ICdBcnRmZXNzQDAyNCc7CiAgICAgICAgICAgICAgICAgICAgdmFyIGRlY29kZVRva2VuU3RyID0gZGVjb2RlVG9rZW4ocmVzLmRhdGEudXNlckNvZGUgKyBrZXkpOwogICAgICAgICAgICAgICAgICAgIGFjY291bnRMb2dpbih7CiAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50OiByZXMuZGF0YS51c2VyQ29kZSwKICAgICAgICAgICAgICAgICAgICAgIHRva2VuOiBkZWNvZGVUb2tlblN0ciwKICAgICAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiAnJwogICAgICAgICAgICAgICAgICAgIH0sIG5leHQsIHRvLm5hbWUpOwogICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UuZXJyb3IocmVzLm1zZyk7CiAgICAgICAgICAgICAgICAgICAgbmV4dCh7CiAgICAgICAgICAgICAgICAgICAgICBwYXRoOiAnL2xvZ2luJwogICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgTWVzc2FnZS5lcnJvcihyZXMubXNnKTsKICAgICAgICAgICAgICAgIG5leHQoewogICAgICAgICAgICAgICAgICBwYXRoOiAnL2xvZ2luJwogICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KS5jYXRjaChmdW5jdGlvbiAoZXJyKSB7CiAgICAgICAgICAgICAgTWVzc2FnZS5lcnJvcihlcnIpOwogICAgICAgICAgICAgIG5leHQoewogICAgICAgICAgICAgICAgcGF0aDogJy9sb2dpbicKICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgfSk7CiAgICAgICAgICB9CgogICAgICAgICAgLy8g57uf5LiA6Zeo5oi35Yiw5pC65bimcHRr55m75b2VCiAgICAgICAgICBpZiAoKHRvLm5hbWUgPT09ICdzYWZldHknIHx8IHRvLm5hbWUgPT09ICdwYXRyb2wnKSAmJiB0by5xdWVyeS5wdGspIHsKICAgICAgICAgICAgcHRrID0gdG8ucXVlcnkucHRrOwogICAgICAgICAgICB1Yy52YWxpZGF0ZUtleUFuZEdldFVzZXIocHRrKS50aGVuKGZ1bmN0aW9uIChyZXMpIHsKICAgICAgICAgICAgICBpZiAocmVzLnN0YXRlKSB7CiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhyZXMpOwogICAgICAgICAgICAgICAgdmFyIGFjY291bnQgPSByZXMudmFsdWUuYWNjb3VudCB8fCAnJzsKICAgICAgICAgICAgICAgIHZhciBrZXkgPSAnQXJ0ZmVzc0AwMjQnOwogICAgICAgICAgICAgICAgdmFyIGRlY29kZVRva2VuU3RyID0gZGVjb2RlVG9rZW4oYWNjb3VudCArIGtleSk7CiAgICAgICAgICAgICAgICBhY2NvdW50TG9naW4oewogICAgICAgICAgICAgICAgICBhY2NvdW50OiBhY2NvdW50LAogICAgICAgICAgICAgICAgICB0b2tlbjogZGVjb2RlVG9rZW5TdHIsCiAgICAgICAgICAgICAgICAgIHBhc3N3b3JkOiAnJwogICAgICAgICAgICAgICAgfSwgbmV4dCwgdG8ubmFtZSk7CiAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIE1lc3NhZ2UuZXJyb3IoJ+mqjOivgeWksei0pScpOwogICAgICAgICAgICAgICAgbmV4dCh7CiAgICAgICAgICAgICAgICAgIHBhdGg6ICcvbG9naW4nCiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uIChlcnIpIHsKICAgICAgICAgICAgICBNZXNzYWdlLmVycm9yKGVyciB8fCAn6aqM6K+B5aSx6LSlJyk7CiAgICAgICAgICAgICAgbmV4dCh7CiAgICAgICAgICAgICAgICBwYXRoOiAnL2xvZ2luJwogICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0KICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKCdtZW51L2dldEFsbG1lbnVzJywge30pLnRoZW4oZnVuY3Rpb24gKG1lbnVzKSB7CiAgICAgICAgICAgIC8vaHJlZuiPnOWNleS4jei/m+i/meauteS7o+eggQogICAgICAgICAgICBpZiAodG8uZnVsbFBhdGguaW5kZXhPZignaHJlZicpID09PSAtMSkgewogICAgICAgICAgICAgIHZhciBhbGlhcyA9IHRvLmZ1bGxQYXRoLnNwbGl0KCcvJylbMV07CiAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBtZW51cy5sZW5ndGg7IGkrKykgewogICAgICAgICAgICAgICAgaWYgKG1lbnVzW2ldLmFsaWFzID09PSBhbGlhcykgewogICAgICAgICAgICAgICAgICBzdG9yZS5kaXNwYXRjaCgnbWVudS9nZXRDdXJyZW50TWVudScsIHsKICAgICAgICAgICAgICAgICAgICBhbGlhczogbWVudXNbaV0uYWxpYXMsCiAgICAgICAgICAgICAgICAgICAgbmFtZTogbWVudXNbaV0ubmFtZQogICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICB9KTsKICAgICAgICAgIGlmICghdG8uZnVsbFBhdGguc3RhcnRzV2l0aCgnL3N1cmwvJykpIHsKICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDY7CiAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgfQogICAgICAgICAgaGFuZGVsU2hvcnRVcmwodG8sIGZyb20sIG5leHQpOwogICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmFicnVwdCgicmV0dXJuIik7CiAgICAgICAgY2FzZSA2OgogICAgICAgICAgaWYgKCEodG8ubmFtZSA9PT0gJ2xvZ2luJyAmJiB3aW5kb3cuc3NvQ29uZmlnLm1vZGUgJiYgd2luZG93LnNzb0NvbmZpZy5tb2RlICE9PSAnand0JykpIHsKICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDEzOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIGlmICghKCh3aW5kb3cuc3NvQ29uZmlnLm1vZGUgPT09ICdjYXMnIHx8IHdpbmRvdy5zc29Db25maWcubW9kZSA9PT0gJ29hdXRoJykgJiYgKHRvLnF1ZXJ5LmNvZGUgfHwgdG8ucXVlcnkudGlja2V0KSkpIHsKICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDEyOwogICAgICAgICAgICBicmVhazsKICAgICAgICAgIH0KICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gd2luZG93LmxvY2F0aW9uLmhyZWYucmVwbGFjZSgnL2xvZ2luJywgJycpOwogICAgICAgICAgcmV0dXJuIF9jb250ZXh0LmFicnVwdCgicmV0dXJuIik7CiAgICAgICAgY2FzZSAxMjoKICAgICAgICAgIHNzb1JlZGlyZWN0KCk7CiAgICAgICAgY2FzZSAxMzoKICAgICAgICAgIGlmIChmcm9tLm5hbWUgIT09ICdkZWZTdGFydCcgfHwgdG8ubmFtZSAhPT0gJ2luc3RTdGFydCcpIHsKICAgICAgICAgICAgc2Vzc2lvblN0b3JhZ2UucmVtb3ZlSXRlbSgnZm9ybUltcG9ydFRlbXBSZWZJZCcpOwogICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKCdmb3JtSW1wb3J0VGVtcEpzb24nKTsKICAgICAgICAgIH0KICAgICAgICAgIGlmIChzZXNzaW9uU3RvcmFnZS5tZW51X2FsaWFzICYmIHRvLmZ1bGxQYXRoICYmIHRvLmZ1bGxQYXRoLnNwbGl0KCcvJylbMV0gPT09ICdob21lJykgewogICAgICAgICAgICBzZXNzaW9uU3RvcmFnZS5tZW51X2FsaWFzID0gJyc7CiAgICAgICAgICB9CiAgICAgICAgICBpZiAodG8ubWF0Y2hlZC5zb21lKGZ1bmN0aW9uIChyZWNvcmQpIHsKICAgICAgICAgICAgcmV0dXJuICFyZWNvcmQubWV0YS5hbm9ueW1vdXM7CiAgICAgICAgICB9KSkgewogICAgICAgICAgICB0aWNrZXQgPSB0by5xdWVyeS50b2tlbjsgLy8gMi7lvZPliY3lt7Lnu4/ku47ljZXngrnpobXpnaLph43lrprlkJHlm57mnaXkuobvvIzkuJTlnKh1cmzlnLDlnYDkuK3mkLrluKbkuoZ0aWNrZXTmiJZjb2Rl77ybCiAgICAgICAgICAgIGlmICh3aW5kb3cuc3NvQ29uZmlnLm1vZGUgPT09ICdjYXMnKSB7CiAgICAgICAgICAgICAgdGlja2V0ID0gdG8ucXVlcnkudGlja2V0OwogICAgICAgICAgICB9IGVsc2UgaWYgKHdpbmRvdy5zc29Db25maWcubW9kZSA9PT0gJ29hdXRoJykgewogICAgICAgICAgICAgIHRpY2tldCA9IHRvLnF1ZXJ5LmNvZGU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgc3RvcmUKICAgICAgICAgICAgLy8gMy7mkLrluKZ0aWNrZXTlgZrnlKjmiLfpibTmnYPvvJsKICAgICAgICAgICAgLmRpc3BhdGNoKCdsb2dpbi92YWxpZEFuZENvbXBsZXRlZEN1cnJlbnQnLCB0aWNrZXQpLnRoZW4oZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgIHN0b3JlLmRpc3BhdGNoKCdtZW51L2FjdGlvbkZyb250TWVudXMnKTsKICAgICAgICAgICAgICBzdG9yZS5fdm0uJHJvb3QuJGVtaXQoJ2xvZ2luLWNvbXBsZXRlZCcpOwogICAgICAgICAgICAgIGlmIChyZWdpc3RlclJvdXRlRnJlc2gpIHsKICAgICAgICAgICAgICAgIGlmIChzZXNzaW9uU3RvcmFnZS5tZW51X2FsaWFzKSB7CiAgICAgICAgICAgICAgICAgIHZhciBwYXRoID0gJy8nICsgc2Vzc2lvblN0b3JhZ2UubWVudV9hbGlhczsKICAgICAgICAgICAgICAgICAgdmFyIGlzQ2hpbGRyZW4gPSByb3V0ZXIuYWRkTGlzdChwYXRoLCByb3V0ZXIub3B0aW9ucy5yb3V0ZXMpOyAvL+WKqOaAgeaWsOWinuS6jOe6p+i3r+eUsQogICAgICAgICAgICAgICAgICAvL+W9k+WJjeeCueWHu+iPnOWNleeahOi3r+eUseWIq+WQjeS4jeWtmOWcqCByb3V0ZXIuanMg6YeM6Z2iCiAgICAgICAgICAgICAgICAgIC8vIGlmICghaXNDaGlsZHJlbikgewogICAgICAgICAgICAgICAgICAvLyAgIGxldCBhbGlhc19uZXcgPSB7CiAgICAgICAgICAgICAgICAgIC8vICAgICBwYXRoOiBwYXRoLAogICAgICAgICAgICAgICAgICAvLyAgICAgbmFtZTogJ2FsaWFzX25ldycsCiAgICAgICAgICAgICAgICAgIC8vICAgICBjb21wb25lbnQ6IHJlc29sdmUgPT4KICAgICAgICAgICAgICAgICAgLy8gICAgICAgcmVxdWlyZShbJ0Avdmlld3MvbWVudUNvbnRlbnQudnVlJ10sIHJlc29sdmUpLAogICAgICAgICAgICAgICAgICAvLyAgICAgY2hpbGRyZW46IFtdCiAgICAgICAgICAgICAgICAgIC8vICAgfQogICAgICAgICAgICAgICAgICAvLyAgIHJvdXRlci5vcHRpb25zLnJvdXRlcy5wdXNoKGFsaWFzX25ldykKICAgICAgICAgICAgICAgICAgLy8gICByb3V0ZXIuYWRkTGlzdChwYXRoLCByb3V0ZXIub3B0aW9ucy5yb3V0ZXMpIC8v5Yqo5oCB5paw5aKe5LqM57qn6Lev55SxCiAgICAgICAgICAgICAgICAgIC8vIH0KICAgICAgICAgICAgICAgICAgcm91dGVyLnJlcGxhY2UoewogICAgICAgICAgICAgICAgICAgIHBhdGg6IHRvLnBhdGgsCiAgICAgICAgICAgICAgICAgICAgcXVlcnk6IHRvLnF1ZXJ5CiAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcmVnaXN0ZXJSb3V0ZUZyZXNoID0gZmFsc2U7CiAgICAgICAgICAgICAgfQogICAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgICAgICAvLyB1cmzlnLDlnYDluKZ0b2tlbueahOaWueW8j+iupOivgeaIkOWKn+WQjuWIoOmZpHVybOS4reeahHRva2VuCiAgICAgICAgICAgICAgLy8gcmVtb3ZlVXJsUGFyYW1zKCd0b2tlbktleScpCiAgICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uICgpIHsKICAgICAgICAgICAgICAvLyA0LumJtOadg+Wksei0peaXtuagueaNruW9k+WJjeaooeW8j+mHjeWumuWQkeWIsOWvueW6lOmhtemdouOAggogICAgICAgICAgICAgIGxvZ291dEFuZENsZWFuVXAodG8sIGZyb20sIG5leHQpOwogICAgICAgICAgICB9KTsKICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIG5leHQoKTsKICAgICAgICAgIH0KICAgICAgICBjYXNlIDE2OgogICAgICAgIGNhc2UgImVuZCI6CiAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpOwogICAgICB9CiAgICB9LCBfY2FsbGVlKTsKICB9KSk7CiAgcmV0dXJuIGZ1bmN0aW9uIChfeCwgX3gyLCBfeDMpIHsKICAgIHJldHVybiBfcmVmMi5hcHBseSh0aGlzLCBhcmd1bWVudHMpOwogIH07Cn0oKSk7CmV4cG9ydCBkZWZhdWx0IHJvdXRlcjs="},null]}