{"version":3,"sources":["webpack:///./src/assets/401.gif","webpack:///./src/views/layout/components/TagsView/index.vue?f7d2","webpack:///./src/utils/index.js","webpack:///./src/views/errorPage/401.vue?2565","webpack:///./src/assets/404.png","webpack:///./src/views/errorPage/error.vue?6d19","webpack:///./src/views/errorPage/404.vue?2223","webpack:///./src/views/login/index.vue?ef29","webpack:///./src/views/layout/components/Sidebar/SidebarItem.vue?6f1b","webpack:///./src/assets/404_cloud.png","webpack:///./src/views/layout/components/TagsView/ScrollPane.vue?b6da","webpack:///./src/store/types/index.js","webpack:///./src/store/types/common/app.js","webpack:///./src/store/types/common/system.js","webpack:///./src/store/types/common/user.js","webpack:///./src/store/types/dashboard/dashboard.js","webpack:///./src/store/types/hr/perfLaunch.js","webpack:///./src/store/types/hr/myPerfs.js","webpack:///./src/store/types/hr/reviewPerfs.js","webpack:///./src/store/types/sale/addSale.js","webpack:///./src/store/types/redpack/batchReview.js","webpack:///./src/store/types/redpack/prizepoolReview.js","webpack:///./src/store/types/redpack/repackDetail.js","webpack:///./src/store/types/redpack/sysinfoReview.js","webpack:///./src/store/types/redpack/dealReview.js","webpack:///./src/store/modules/common/app.js","webpack:///./src/store/modules/common/user.js","webpack:///./src/store/modules/common/system.js","webpack:///./src/store/modules/dashboard/dashboard.js","webpack:///./src/store/modules/hr/perfLaunch.js","webpack:///./src/store/modules/hr/myPerfs.js","webpack:///./src/store/modules/hr/reviewPerfs.js","webpack:///./src/store/modules/sale/addSale.js","webpack:///./src/store/modules/redpack/batch.js","webpack:///./src/store/modules/redpack/prizepool.js","webpack:///./src/store/modules/redpack/redpack.js","webpack:///./src/store/modules/redpack/sysinfo.js","webpack:///./src/store/modules/redpack/deal.js","webpack:///./src/store/modules/tagsView.js","webpack:///./src/store/getters.js","webpack:///./src/store/index.js","webpack:///./src/App.vue?fcd5","webpack:///src/App.vue","webpack:///./src/App.vue","webpack:///./src/App.vue?4d39","webpack:///./src/filters/index.js","webpack:///./src/main.js","webpack:///./src/views/layout/components/Navbar.vue?145b","webpack:///./src/App.vue?b43c","webpack:///./src/assets/password.svg","webpack:///./src/utils/validate.js","webpack:///./src/views/layout/components/Breadcrumb.vue?1652","webpack:///./src/env.js","webpack:///./src/views/login/index.vue?a049","webpack:///./src/views/layout/components/TagsView/index.vue?2d87","webpack:///./src/utils/event.js","webpack:///./src/views/layout/components/Breadcrumb.vue?5a3e","webpack:///src/views/layout/components/Breadcrumb.vue","webpack:///./src/views/layout/components/Breadcrumb.vue","webpack:///./src/views/layout/components/Breadcrumb.vue?1659","webpack:///./src/components/resetPwdDialog.vue?25da","webpack:///src/components/resetPwdDialog.vue","webpack:///./src/components/resetPwdDialog.vue","webpack:///./src/components/resetPwdDialog.vue?9a33","webpack:///./src/views/layout/components/Navbar.vue?b978","webpack:///src/views/layout/components/Navbar.vue","webpack:///./src/views/layout/components/Navbar.vue","webpack:///./src/views/layout/components/Navbar.vue?63a9","webpack:///./src/views/layout/components/Sidebar/Link.vue?8f7e","webpack:///src/views/layout/components/Sidebar/Link.vue","webpack:///./src/views/layout/components/Sidebar/Link.vue","webpack:///./src/views/layout/components/Sidebar/Link.vue?36c9","webpack:///./src/views/layout/components/Sidebar/SidebarItem.vue?650d","webpack:///src/views/layout/components/Sidebar/SidebarItem.vue","webpack:///./src/views/layout/components/Sidebar/FixiOSBug.js","webpack:///./src/views/layout/components/Sidebar/SidebarItem.vue","webpack:///./src/views/layout/components/Sidebar/SidebarItem.vue?aaf1","webpack:///./src/views/layout/components/Sidebar/index.vue?c78c","webpack:///src/views/layout/components/Sidebar/index.vue","webpack:///./src/views/layout/components/Sidebar/index.vue","webpack:///./src/views/layout/components/Sidebar/index.vue?c860","webpack:///./src/views/layout/components/AppMain.vue?9f7a","webpack:///src/views/layout/components/AppMain.vue","webpack:///./src/views/layout/components/AppMain.vue","webpack:///./src/views/layout/components/AppMain.vue?61a5","webpack:///./src/views/layout/components/TagsView/ScrollPane.vue?d864","webpack:///src/views/layout/components/TagsView/ScrollPane.vue","webpack:///./src/views/layout/components/TagsView/ScrollPane.vue","webpack:///./src/views/layout/components/TagsView/ScrollPane.vue?3dde","webpack:///./src/views/layout/components/TagsView/index.vue?4537","webpack:///src/views/layout/components/TagsView/index.vue","webpack:///./src/views/layout/components/TagsView/index.vue","webpack:///./src/views/layout/components/TagsView/index.vue?3fe6","webpack:///./src/views/layout/Layout.vue?5af6","webpack:///src/views/layout/Layout.vue","webpack:///./src/views/layout/mixin/ResizeHandler.js","webpack:///./src/views/layout/Layout.vue","webpack:///./src/views/layout/Layout.vue?9dc1","webpack:///./src/views/login/index.vue?9137","webpack:///src/views/login/index.vue","webpack:///./src/views/login/index.vue","webpack:///./src/views/login/index.vue?5e71","webpack:///./src/views/errorPage/error.vue?c491","webpack:///src/views/errorPage/error.vue","webpack:///./src/views/errorPage/error.vue","webpack:///./src/views/errorPage/error.vue?a37e","webpack:///./src/views/errorPage/401.vue?6eeb","webpack:///src/views/errorPage/401.vue","webpack:///./src/views/errorPage/401.vue","webpack:///./src/views/errorPage/401.vue?3e64","webpack:///./src/views/errorPage/404.vue?b718","webpack:///./src/views/errorPage/404.vue?379c","webpack:///src/views/errorPage/404.vue","webpack:///./src/views/errorPage/404.vue","webpack:///./src/router/index.js","webpack:///./src/utils/ajax.js","webpack:///./src/views/layout/Layout.vue?f2b4","webpack:///./src/views/layout/components/AppMain.vue?7301","webpack:///./src/components/resetPwdDialog.vue?819e","webpack:///./src/assets/logo.png"],"names":["module","exports","__webpack_require__","p","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_id_8f0ac28e_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","n","parseTime","time","cFormat","arguments","length","format","date","babel_runtime_helpers_typeof__WEBPACK_IMPORTED_MODULE_5___default","parseInt","Date","formatObj","y","getFullYear","m","getMonth","d","getDate","h","getHours","i","getMinutes","s","getSeconds","a","getDay","replace","result","key","value","formatTime","option","diff","now","Math","ceil","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_401_vue_vue_type_style_index_0_id_151e7c2b_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_error_vue_vue_type_style_index_0_id_087342ab_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_404_vue_vue_type_style_index_0_id_5cc7246d_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_SidebarItem_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_ScrollPane_vue_vue_type_style_index_0_id_6d85633c_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","__webpack_exports__","app","state","routers","sidebar","opened","Cookies","get","withoutAnimation","device","mutations","Types","concat","toConsumableArray_default","defineProperty_default","_mutations","set","actions","_ref2","_ref","commit","ajax","url","method","getQiniuToken","common_user","name","avatar","email","mobile","pmsOperate","depId","depName","position","menus","payload","user_mutations","user","Vue","localStorage","setItem","Env","uin","logincode","password","data","pwd","then","res","_ref3","userInfo","token","stringify_default","expires","promise_default","resolve","reject","_actions","_ref4","_ref5","_ref7","_ref8","newpwd","oldpwd","_ref9","_ref10","system","userList","allUsers","allRoles","filterKw","pager","curPage","total","pageSize","_ref2$init","init","undefined","keyword","pageNum","_res$data","_res$data$users","users","system_actions","roles","_ref6","_ref11","_ref12","ids","roleIds","_ref13","_ref14","_ref14$fileName","fileName","timeout","dashboard","messages","_res$data$messages","msgIds","forEach","msg","push","id","dashboard_actions","perfLaunch","filterTitle","filterType","perfLaunches","statuses","label","color","title","type","_res$data$perfLaunche","_res$data$total","perfLaunchIds","pl","cur","find","status","statusColor","perfLaunch_actions","_ref4$perfLaunchId","perfLaunchId","_ref6$title","_ref6$type","_ref6$startTime","startTime","_ref6$selfEvalEndTime","selfEvalEndTime","_ref6$firstEvalEndTim","firstEvalEndTime","_ref6$secondEvalEndTi","secondEvalEndTime","_ref8$perfLaunchId","_ref8$file","file","_ref8$isScore","isScore","Boolean","myPerfs","perfs","_res$data$perfs","perfIds","perf","myPerfs_actions","_ref4$perfId","perfId","_ref4$isEdit","isEdit","_ref6$perfId","_ref6$reason","reason","_ref8$id","_ref8$items","items","reviewPerfs","filterId","filterStuffName","filterDateRange","filterDepName","filterStatus","filterLevel","filterNext","deps","_ref2$change","change","stuffName","dateRange","level","next","endTime","perfsIds","reviewPerfs_actions","_ref4$init","_ref4$change","levelComment","_ref9$perfId","_ref9$isEdit","_ref11$perfId","_ref11$isEdit","_ref13$id","_ref13$coefficient","coefficient","_ref13$coefficientDes","coefficientDesc","_ref13$firstSumDesc","firstSumDesc","_ref15","_ref15$id","_ref15$coefficient","_ref15$coefficientDes","_ref15$secondSumDesc","secondSumDesc","addSale","addSales","_res$data$importInfos","importInfos","addSale_actions","_ref4$keyword","_res$data2","_res$data2$importInfo","_res$data2$total","_ref6$fileName","redpack_batch","batchs","batchsAll","batchDict","batch_mutations","redpackBatchList","batch","redpackBatchId","batch_actions","redpackList","batchId","batchDetail","prizepool","prizepools","prizepoolItems","pools","prizepool_actions","poolId","pool","prizepoolInfo","prizepoolItemInfo","itemId","redpack","redpackDetail","scanUser","detail","redpack_actions","sysinfo","contacts","dayLimitPerUser","dayLimitTotalAmount","dayLimitTotalNum","sysConfig","sysinfo_actions","newSysinfo","deal","filters","deals","_ref2$filter","filter","redpackDealList","tagsView","namespaced","visitedViews","fullPath","hash","meta","icon","permission","affix","path","cachedViews","routes","addRoutes","ADD_VISITED_VIEW","view","some","v","ADD_CACHED_VIEW","includes","noCache","DEL_VISITED_VIEW","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","get_iterator_default","entries","done","slicedToArray_default","splice","err","return","DEL_CACHED_VIEW","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","index","indexOf","DEL_OTHERS_VISITED_VIEWS","DEL_OTHERS_CACHED_VIEWS","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","slice","DEL_ALL_VISITED_VIEWS","affixTags","tag","DEL_ALL_CACHED_VIEWS","UPDATE_VISITED_VIEW","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","assign_default","SET_ROUTES","constantRouters","addView","dispatch","addVisitedView","addCachedView","delView","delVisitedView","delCachedView","delOthersViews","delOthersVisitedViews","delOthersCachedViews","delAllViews","delAllVisitedViews","delAllCachedViews","updateVisitedView","generateRoutes","_ref16","accessedRoutes","getters","use","Vuex","Store","modules","strict","src_Appvue_type_script_lang_js_","component","Object","componentNormalizer","_h","this","$createElement","_c","_self","attrs","options","__file","App","pluralize","timeAgo","between","Number","numberFormatter","num","digits","si","symbol","toFixed","toString","toThousandFilter","keys_default","config","productionTip","devtools","performance","errorHandler","vm","info","console","log","warnHandler","trace","NProgress","configure","showSpinner","Element","size","VXETable","el","store","router","template","components","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Navbar_vue_vue_type_style_index_0_id_e3e2d586_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_App_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__","validateURL","textval","test","validateContacts","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Breadcrumb_vue_vue_type_style_index_0_id_eab4fe98_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","isDebug","userInfoCacheKey","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_id_13be35b0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_index_vue_vue_type_style_index_1_lang_scss___WEBPACK_IMPORTED_MODULE_0__","event","components_Breadcrumbvue_type_script_lang_js_","levelList","watch","$route","getBreadcrumb","created","methods","params","matched","item","toPath","path_to_regexp_default","compile","first","trim","toLowerCase","_vm","staticClass","separator","_l","staticStyle","display","redirect","_v","_s","_e","Breadcrumb","components_resetPwdDialogvue_type_script_lang_js_","props","show","default","String","closeDialogFn","Function","_this","form","oldPwd","repeatPwd","rules","validator","rule","callback","Error","trigger","$refs","resetPwdForm","validateField","computed","$store","confirmResetPwd","_this2","validate","valid","types","md5_default","cancelResetPwd","$message","message","resetPwdDialog_component","width","visible","before-close","ref","model","label-width","directives","rawName","expression","prop","placeholder","auto-complete","$$v","$set","slot","on","click","components_Navbarvue_type_script_lang_js_","ResetPwdDialog","showResetPwdDialog","js_cookie_default","toggleSideBar","resetPwd","closeResetPwdDialog","logout","location","reload","Navbar_component","class","is-active","t","viewBox","version","xmlns","p-id","xmlns:xlink","height","src","plain","close-dialog-fn","Navbar","Sidebar_Linkvue_type_script_lang_js_","to","required","isExternalLink","routePath","linkProps","is","href","target","rel","Link_component","_b","_t","Sidebar_SidebarItemvue_type_script_lang_js_","AppLink","mixins","mounted","fixBugIniOS","$submenu","submenu","handleMouseleave","e","isNest","basePath","onlyOneChild","hasOneShowingChild","children","parent","showingChildren","hidden","extends_default","noShowingChildren","resolvePath","path_browserify_default","SidebarItem_component","alwaysShow","child","is-nest","base-path","submenu-title-noDropdown","components_Sidebarvue_type_script_lang_js_","SidebarItem","isCollapse","src_router","Sidebar_component","wrap-class","show-timeout","default-active","collapse","mode","background-color","text-color","active-text-color","route","Sidebar","components_AppMainvue_type_script_lang_js_","AppMain_component","include","AppMain","TagsView_ScrollPanevue_type_script_lang_js_","left","scrollWrapper","scrollContainer","wrap","handleScroll","eventDelta","wheelDelta","deltaY","$scrollWrapper","scrollLeft","moveToTarget","currentTag","$containerWidth","$el","offsetWidth","tagList","$parent","firstTag","lastTag","scrollWidth","currentIndex","findIndex","prevTag","nextTag","afterNextTagOffsetLeft","offsetLeft","beforePrevTagOffsetLeft","ScrollPane_component","vertical","nativeOn","wheel","$event","preventDefault","components_TagsViewvue_type_script_lang_js_","ScrollPane","top","selectedTag","addTags","moveToCurrentTag","document","body","addEventListener","closeMenu","removeEventListener","initTags","isActive","filterAffixTags","tags","tagPath","tempTags","$nextTick","scrollPane","refreshSelectedTag","_this3","$router","closeSelectedTag","_this4","toLastView","closeOthersTags","_this5","closeAllTags","_this6","latestView","openMenu","getBoundingClientRect","maxLeft","clientX","clientY","TagsView_component","refInFor","query","mouseup","button","contextmenu","stopPropagation","style","TagsView","layout_Layoutvue_type_script_lang_js_","beforeMount","window","resizeHandler","isMobile","needTagsView","classObj","hideSidebar","openSidebar","handleClickOutside","Layout_component","hasTagsView","Layout","views_loginvue_type_script_lang_js_","loginForm","loginRules","loading","loginCode","getQrCodeUrl","enter","keyCode","which","handleLogin","encodeURIComponent","utils_event","$emit","catch","code","setTimeout","login_component","label-position","submit","keyup","_k","margin-bottom","login","errorPage_errorvue_type_script_lang_js_","errGif","_401_default","back","noGoBack","go","error_component","span","error","errorPage_401vue_type_script_lang_js_","_401_component","errorPage_401","_404vue_type_template_id_5cc7246d_scoped_true_staticRenderFns","alt","errorPage_404vue_type_script_lang_js_","_404_component","_m","_404","Router","bind","Login","PageError","NoAuth","Page404","asyncRouters","Promise","all","scrollBehavior","beforeEach","from","getItem","start","startsWith","afterEach","$on","JSON","parse","menusMap","1","menu","checkPermission","hasVisibleMenus","isType","obj","prototype","call","axios","create","baseURL","process","transformRequest","header","isFile","param","subName","subValue","innerObj","Array","substr","withCredentials","defaults","headers","post","interceptors","request","babel_runtime_core_js_promise__WEBPACK_IMPORTED_MODULE_0___default","response","Message","duration","MessageBox","confirm","confirmButtonText","cancelButtonText","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_Layout_vue_vue_type_style_index_0_id_18f3739a_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_AppMain_vue_vue_type_style_index_0_id_689483c0_lang_scss_scoped_true___WEBPACK_IMPORTED_MODULE_0__","_node_modules_mini_css_extract_plugin_dist_loader_js_node_modules_css_loader_index_js_ref_11_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_lib_index_js_ref_11_2_node_modules_sass_loader_lib_loader_js_ref_11_3_node_modules_vue_loader_lib_index_js_vue_loader_options_resetPwdDialog_vue_vue_type_style_index_0_lang_scss___WEBPACK_IMPORTED_MODULE_0__"],"mappings":"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AAA0B,EAAA,qBMG8B,mBNH9B7C,EAAAmB,EAAA0B,EAAA,qBMIoC,yBNJpC7C,EAAAmB,EAAA0B,EAAA,qBMK2B,gBNL3B7C,EAAAmB,EAAA0B,EAAA,qBMMgC,qBNNhC7C,EAAAmB,EAAA0B,EAAA,sBOCwC,6BPDxC7C,EAAAmB,EAAA0B,EAAA,qBOG2B,gBPH3B7C,EAAAmB,EAAA0B,EAAA,qBOI4B,iBPJ5B7C,EAAAmB,EAAA0B,EAAA,qBOK0B,ePL1B7C,EAAAmB,EAAA0B,EAAA,sBOM4B,iBPN5B7C,EAAAmB,EAAA0B,EAAA,qBOOsC,2BPPtC7C,EAAAmB,EAAA0B,EAAA,qBOQsC,2BPRtC7C,EAAAmB,EAAA0B,EAAA,qBOSiC,sBPTjC7C,EAAAmB,EAAA0B,EAAA,qBOUkC,uBPVlC7C,EAAAmB,EAAA0B,EAAA,sBQCqC,0BRDrC7C,EAAAmB,EAAA0B,EAAA,qBQG8B,mBRH9B7C,EAAAmB,EAAA0B,EAAA,qBQI2B,gBRJ3B7C,EAAAmB,EAAA0B,EAAA,qBQK2B,gBRL3B7C,EAAAmB,EAAA0B,EAAA,sBSCyC,8BTDzC7C,EAAAmB,EAAA0B,EAAA,sBSEyC,8BTFzC7C,EAAAmB,EAAA0B,EAAA,qBSI4B,iBTJ5B7C,EAAAmB,EAAA0B,EAAA,qBSKgC,qBTLhC7C,EAAAmB,EAAA0B,EAAA,qBSMkC,uBTNlC7C,EAAAmB,EAAA0B,EAAA,qBSO4B,iBTP5B7C,EAAAmB,EAAA0B,EAAA,qBSSyB,cTTzB7C,EAAAmB,EAAA0B,EAAA,sBSU4B,iBTV5B7C,EAAAmB,EAAA0B,EAAA,sBUC6C,kCVD7C7C,EAAAmB,EAAA0B,EAAA,qBUG+B,oBVH/B7C,EAAAmB,EAAA0B,EAAA,qBUIsC,2BVJtC7C,EAAAmB,EAAA0B,EAAA,qBUK8B,mBVL9B7C,EAAAmB,EAAA0B,EAAA,qBUMmC,wBVNnC7C,EAAAmB,EAAA0B,EAAA,qBUOgC,qBVPhC7C,EAAAmB,EAAA0B,EAAA,qBUQqC,0BVRrC7C,EAAAmB,EAAA0B,GAAA,gBAAA7C,EAAAmB,EAAA0B,EAAA,sBWCkD,uCXDlD7C,EAAAmB,EAAA0B,EAAA,qBWGoC,yBXHpC7C,EAAAmB,EAAA0B,EAAA,qBWIqC,0BXJrC7C,EAAAmB,EAAA0B,EAAA,sBYC2C,gCZD3C7C,EAAAmB,EAAA0B,EAAA,qBYGoC,yBZHpC7C,EAAAmB,EAAA0B,EAAA,qBYIqC,0BZJrC7C,EAAAmB,EAAA0B,EAAA,sBaCyC,8BbDzC7C,EAAAmB,EAAA0B,EAAA,qBaG2B,kMCSZC,GACXC,OACIC,WACAC,SACIC,SAAUC,IAAQC,IAAI,iBACtBC,kBAAkB,GAEtBC,OAAQ,WAGZC,sBACKC,IADL,SAC2BT,EAAOC,GAC1BD,EAAMC,WAANS,OAAAC,IAAoBX,EAAMC,SAA1BU,IAAuCV,UAF/CW,IAAAC,EAKKJ,KALL,SAK2BT,GACfA,EAAME,QAAQC,OACdC,IAAQU,IAAI,gBAAiB,GAE7BV,IAAQU,IAAI,gBAAiB,GAEjCd,EAAME,QAAQC,QAAUH,EAAME,QAAQC,OACtCH,EAAME,QAAQI,kBAAmB,IAZzCM,IAAAC,EAeKJ,IAfL,SAe0BT,EAAOM,GACzBF,IAAQU,IAAI,gBAAiB,GAC7Bd,EAAME,QAAQC,QAAS,EACvBH,EAAME,QAAQI,iBAAmBA,IAlBzCM,IAAAC,EAqBKJ,KArBL,SAqB0BT,EAAOO,GACzBP,EAAMO,OAASA,IAtBvBM,GA0BAE,eACKN,IADL,SAAAO,GAEQ,OA7CQ,SAAAC,GAAgBA,EAAbC,OACnB,OAAOC,aACHC,IAAK,2BACLC,OAAQ,QA0CGC,EAAgBJ,OADSF,EAAVE,uFC7BnBK,GACXvB,cAbIwB,KAAM,GACNC,OAAQ,GACRC,MAAO,GACPC,OAAQ,GACRC,WAAY,EACZC,MAAO,EACPC,QAAS,GACTC,SAAU,GACVC,WASJxB,sBACKC,KADL,SAC0BT,EAAOiC,GACzB,IAAK,IAAIjD,KAAOiD,EACZjC,EAAMhB,GAAOiD,EAAQjD,KAHjC4B,IAAAsB,EAOKzB,IAPL,SAO6BT,GACrB,IAAImC,GAzBRX,KAAM,GACNC,OAAQ,GACRC,MAAO,GACPC,OAAQ,GACRC,WAAY,EACZC,MAAO,EACPC,QAAS,GACTC,SAAU,GACVC,UAmBI,IAAK,IAAIhD,KAAOmD,EACZC,UAAItB,IAAId,EAAOhB,EAAKmD,EAAKnD,IAG7BqD,aAAaC,QAAQC,IAAsB,IAC3CnC,IAAQU,IAAI,MAAO,IACnBV,IAAQU,IAAI,QAAS,MAhB7BoB,GAoBAnB,oBACKN,IADL,SAAAQ,EAAAD,GAC4D,IAAxCE,EAAwCD,EAAxCC,OAAYsB,EAA4BxB,EAA5BwB,IAAKC,EAAuBzB,EAAvByB,UAAWC,EAAY1B,EAAZ0B,SACxC,OAAOvB,aACHC,IAAK,iBACLC,OAAQ,OACRsB,MACIH,MACAC,YACAG,IAAKF,KAEVG,KACC,SAACC,GAAQ,IAAAC,EACqBD,EAAIH,SAAxBK,EADDD,EACCC,SAAUC,EADXF,EACWE,MAuBhB,OArBAD,EAAWA,MAEX9B,EAAOT,MACHe,KAAMwB,EAASxB,KACfC,OAAQuB,EAASvB,OACjBC,MAAOsB,EAAStB,MAChBC,OAAQqB,EAASrB,OACjBC,WAAYoB,EAASpB,WACrBC,MAAOmB,EAASnB,MAChBC,QAASkB,EAASlB,QAClBC,SAAUiB,EAASjB,WAGvBM,aAAaC,QAAQC,IAAsBW,IAAeF,IACtDC,GACA7C,IAAQU,IAAI,QAASmC,GAASE,QAAS,IAEvCH,GAAYA,EAASR,KACrBpC,IAAQU,IAAI,MAAOkC,EAASR,KAAOW,QAAS,IAGzCC,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAtCtClC,IAAA2C,EA2CK9C,IA3CL,SAAA+C,GA2CsC,IAAjBtC,EAAiBsC,EAAjBtC,OAAiBsC,EAATxD,MACrB,OAAOmB,aACHC,IAAK,kBACLC,OAAQ,SACTwB,KACC,SAACC,GAEG,OADA5B,EAAOT,KACA2C,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OArDtClC,IAAA2C,EA0DK9C,IA1DL,SAAAgD,GA0DwC,IAAVvC,EAAUuC,EAAVvC,OACtB,OAAOC,aACHC,IAAK,uBACLC,OAAQ,SACTwB,KACC,SAACC,GAAQ,IACCE,GAAaF,EAAIH,UAAjBK,SAeN,OAdAA,EAAWA,MAEX9B,EAAOT,MACHe,KAAMwB,EAASxB,KACfC,OAAQuB,EAASvB,OACjBC,MAAOsB,EAAStB,MAChBC,OAAQqB,EAASrB,OACjBC,WAAYoB,EAASpB,WACrBC,MAAOmB,EAASnB,MAChBC,QAASkB,EAASlB,QAClBC,SAAUiB,EAASjB,WAGvBM,aAAaC,QAAQC,IAAsBW,IAAeF,IACnDI,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAlFtClC,IAAA2C,EAuFK9C,IAvFL,SAAAiD,EAAAC,GAuFmED,EAArCxC,OAAqCwC,EAA7B1D,MAA6B,IAAlB4D,EAAkBD,EAAlBC,OAAQC,EAAUF,EAAVE,OACjD,OAAO1C,aACHC,IAAK,0BACLC,OAAQ,OACRsB,MACIiB,SACAC,YAELhB,KACC,SAACC,GACG,OAAOM,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OApGtClC,IAAA2C,EAyGK9C,IAzGL,SAAAqD,EAAAC,GAyGwDD,EAA1B5C,OAA0B4C,EAAlB9D,MAAkB,IAAPwC,EAAOuB,EAAPvB,IACzC,OAAOrB,aACHC,IAAK,0BACLC,OAAQ,OACRsB,MACIH,SAELK,KACC,SAACC,GACG,OAAOM,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OArHtCS,ICzCWS,GACXhE,OACIiE,YACAC,YACAC,YACAC,SAAU,GACVC,OACIC,QAAS,EACTC,MAAO,EACPC,SAAU,KAIlBhE,iBACKC,KADL,SAC6BT,EAAOiC,GAC5B,IAAK,IAAIjD,KAAOiD,OACgB,IAAjBA,EAAQjD,IACfoD,UAAItB,IAAId,EAAOhB,EAAKiD,EAAQjD,MAM5C+B,oBACKN,IADL,SAAAQ,EAAAD,GAC0E,IAA5CE,EAA4CD,EAA5CC,OAAQlB,EAAoCiB,EAApCjB,MAAoCyE,EAAAzD,EAAzB0D,YAAyBC,IAAAF,KAAXG,EAAW5D,EAAX4D,QACnDP,EAAQrE,EAAMqE,MAoBlB,OAnBIK,IACAxD,EAAOT,MACH4D,aACOA,GACHC,QAAS,EACTC,MAAO,MAGfF,SACOA,GACHC,QAAS,EACTC,MAAO,KAIfrD,EAAOT,MACH2D,SAAUQ,IAGPzD,aACHC,IAAK,qCACLC,OAAQ,OACRsB,MACIiC,QAAS5E,EAAMoE,SACfS,QAASR,EAAMC,QAAU,EACzBE,SAAUH,EAAMG,YAErB3B,KACC,SAACC,GAAQ,IAAAgC,EACuBhC,EAAIH,KAD3BoC,EAAAD,EACCE,aADDL,IAAAI,OACaR,EADbO,EACaP,MAUlB,OARArD,EAAOT,MACHwD,SAAUe,EACVX,aACOA,GACHE,YAIDnB,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OA7CtClC,IAAAqE,EAkDKxE,IAlDL,SAAAsC,GAkD+C,IAAjB7B,EAAiB6B,EAAjB7B,OAAQlB,EAAS+C,EAAT/C,MAC9B,OAAIA,EAAMmE,UAAYnE,EAAMmE,SAAS1G,OAAS,EACnC2F,EAAAxE,EAAQyE,UAGZlC,aACHC,IAAK,qCACLC,OAAQ,QACTwB,KACC,SAACC,GACG,IAAIqB,EAAWrB,EAAIH,KAAKuC,UAMxB,OAJAhE,EAAOT,MACH0D,aAGGf,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OArEtClC,IAAAqE,EA0EKxE,IA1EL,SAAA+C,GA0E+C,IAAjBtC,EAAiBsC,EAAjBtC,OAAQlB,EAASwD,EAATxD,MAC9B,OAAIA,EAAMkE,UAAYlE,EAAMkE,SAASzG,OAAS,EACnC2F,EAAAxE,EAAQyE,UAGZlC,aACHC,IAAK,uBACLC,OAAQ,QACTwB,KACC,SAACC,GACG,IAAIoB,EAAWpB,EAAIH,KAAKqC,UAMxB,OAJA9D,EAAOT,MACHyD,aAGGd,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OA7FtClC,IAAAqE,EAkGKxE,IAlGL,SAAAgD,EAAA0B,GAkG0C1B,EAAnBvC,OAAmB,IAAPsB,EAAO2C,EAAP3C,IAC3B,OAAOrB,aACHC,IAAK,oCACLC,OAAQ,OACRsB,MACIH,SAELK,KACC,SAACC,GACG,OAAOM,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OA9GtClC,IAAAqE,EAmHKxE,IAnHL,SAAAiD,EAAAC,GAmH0CD,EAAnBxC,OAAmB,IAAPsB,EAAOmB,EAAPnB,IAC3B,OAAOrB,aACHC,IAAK,oCACLC,OAAQ,OACRsB,MACIH,SAELK,KACC,SAACC,GACG,OAAOM,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OA/HtClC,IAAAqE,EAoIKxE,IApIL,SAAAqD,EAAAC,GAoIiDD,EAAnB5C,OAAmB,IAAPsB,EAAOuB,EAAPvB,IAClC,OAAOrB,aACHC,IAAK,sCACLC,OAAQ,OACRsB,MACIH,SAELK,KACC,SAACC,GACG,OAAOM,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAhJtClC,IAAAqE,EAqJKxE,KArJL,SAAA2E,EAAAC,GAqJwDD,EAAxBlE,OAAwB,IAAZsB,EAAY6C,EAAZ7C,IAAK8C,EAAOD,EAAPC,IACzC,OAAOnE,aACHC,IAAK,yCACLC,OAAQ,OACRsB,MACIH,MACA+C,QAASD,KAEdzC,KACC,SAACC,GACG,OAAOM,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAlKtClC,IAAAqE,EAsKKxE,IAtKL,SAAA+E,EAAAC,GAsK8DD,EAApCtE,OAAoCsE,EAA5BxF,MAA4B,IAAA0F,EAAAD,EAAjBE,gBAAiBhB,IAAAe,EAAN,GAAMA,EACtD,OAAOvE,aACHC,IAAK,qCACLC,OAAQ,OACRsB,MACIgD,cAGJC,QAAS,QA9KrBX,ICvBWY,GACX7F,OACI8F,YACAzB,OACIC,QAAS,EACTC,MAAO,EACPC,SAAU,KAIlBhE,iBACKC,KADL,SACmCT,EAAOiC,GAClC,IAAK,IAAIjD,KAAOiD,OACgB,IAAjBA,EAAQjD,IACfoD,UAAItB,IAAId,EAAOhB,EAAKiD,EAAQjD,MAM5C+B,oBACKN,IADL,SAAAQ,EAAAD,GACsE,IAAnCE,EAAmCD,EAAnCC,OAAQlB,EAA2BiB,EAA3BjB,MAA2ByE,EAAAzD,EAAhB0D,YAAgBC,IAAAF,KAC1DJ,EAAQrE,EAAMqE,MAgBlB,OAfIK,IACAxD,EAAOT,MACH4D,aACOA,GACHC,QAAS,EACTC,MAAO,MAGfF,SACOA,GACHC,QAAS,EACTC,MAAO,KAIRpD,aACHC,IAAK,4BACLC,OAAQ,OACRsB,MACIkC,QAASR,EAAMC,QAAU,EACzBE,SAAUH,EAAMG,YAErB3B,KACC,SAACC,GAAQ,IAAAgC,EAC0BhC,EAAIH,KAD9BoD,EAAAjB,EACCgB,gBADDnB,IAAAoB,OACgBxB,EADhBO,EACgBP,MACjByB,KAgBJ,OAfAF,EAASG,QAAQ,SAACC,GACdF,EAAOG,KAAKD,EAAIE,IAChBlF,EAAOT,KAAPG,OACKsF,EAAIE,GAAKF,MAIlBhF,EAAOT,MACHqF,SAAUE,EACV3B,aACOA,GACHE,YAIDnB,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OA/CtClC,IAAAyF,EAoDK5F,IApDL,SAAAsC,EAAAS,GAoD0DT,EAAzB7B,OAAyB6B,EAAjB/C,MAAiB,IAANoG,EAAM5C,EAAN4C,GAC5C,OAAOjF,aACHC,IAAK,0BACLC,OAAQ,OACRsB,MACIyD,UAzDhBC,IClBWC,GACXtG,OACIuG,YAAa,GACbC,WAAY,GACZnC,OACIC,QAAS,EACTC,MAAO,EACPC,SAAU,IAEdiC,gBACAC,WAEQC,MAAO,KACP1H,OAAQ,IAGR0H,MAAO,MACP1H,MAAO,EACP2H,MAAO,SAGPD,MAAO,MACP1H,MAAO,GACP2H,MAAO,SAGPD,MAAO,MACP1H,MAAO,GACP2H,MAAO,SAGPD,MAAO,MACP1H,MAAO,GACP2H,MAAO,SAGPD,MAAO,MACP1H,MAAO,GACP2H,MAAO,WAGPD,MAAO,MACP1H,MAAO,GACP2H,MAAO,WAGPD,MAAO,MACP1H,MAAO,GACP2H,MAAO,WAKnBpG,iBACKC,KADL,SACqCT,EAAOiC,GACpC,IAAK,IAAIjD,KAAOiD,OACgB,IAAjBA,EAAQjD,IACfoD,UAAItB,IAAId,EAAOhB,EAAKiD,EAAQjD,MAM5C+B,oBACKN,IADL,SAAAQ,EAAAD,GACkF,IAAhDE,EAAgDD,EAAhDC,OAAQlB,EAAwCiB,EAAxCjB,MAAwCyE,EAAAzD,EAA7B0D,YAA6BC,IAAAF,KAAfoC,EAAe7F,EAAf6F,MAAOC,EAAQ9F,EAAR8F,KAC9DzC,EAAQrE,EAAMqE,MAqBlB,OApBIK,IACAxD,EAAOT,MACH4D,aACOA,GACHC,QAAS,EACTC,MAAO,MAGfF,SACOA,GACHC,QAAS,EACTC,MAAO,KAIfrD,EAAOT,MACH8F,YAAaM,EACbL,WAAYM,IAGT3F,aACHC,IAAK,oCACLC,OAAQ,OACRsB,MACIkE,MAAO7G,EAAMuG,YACbO,KAAM9G,EAAMwG,WACZ3B,QAASR,EAAMC,QAAU,EACzBE,SAAUH,EAAMG,YAErB3B,KACC,SAACC,GAAQ,IAAAgC,EACkChC,EAAIH,KADtCoE,EAAAjC,EACC2B,oBADD9B,IAAAoC,OAAAC,EAAAlC,EACoBP,aADpBI,IAAAqC,EAC4B,EAD5BA,EAEDC,KAuBJ,OArBAR,EAAaR,QAAQ,SAACiB,GAClBD,EAAcd,KAAKe,EAAGd,IAEtB,IAAIe,EAAMnH,EAAM0G,SAASU,KAAK,SAAAC,GAC1B,OAAOA,EAAOpI,QAAUiI,EAAGG,SAE/BH,EAAGI,YAAcH,EAAMA,EAAIP,MAAQ,GAEnC1F,EAAOT,KAAPG,OACKsG,EAAGd,GAAKc,MAIjBhG,EAAOT,MACHgG,aAAcQ,EACd5C,aACOA,GACHE,YAIDnB,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OA7DtClC,IAAA2G,EAkEK9G,IAlEL,SAAAsC,EAAAS,GAkEyET,EAAxC7B,OAAwC6B,EAAhC/C,MAAgC,IAAAwH,EAAAhE,EAArBiE,oBAAqB9C,IAAA6C,EAAN,GAAMA,EACjE,OAAOrG,aACHC,IAAK,oCACLC,OAAQ,OACRsB,MACI8E,oBAvEhB7G,IAAA2G,EA4EK9G,IA5EL,SAAAgD,EAAA0B,GAsFM1B,EATIvC,OASJuC,EATYzD,MASZ,IAAA0H,EAAAvC,EAPM0B,aAONlC,IAAA+C,EAPc,GAOdA,EAAAC,EAAAxC,EANM2B,YAMNnC,IAAAgD,EANa,GAMbA,EAAAC,EAAAzC,EALM0C,iBAKNlD,IAAAiD,EALkB,GAKlBA,EAAAE,EAAA3C,EAJM4C,uBAINpD,IAAAmD,EAJwB,GAIxBA,EAAAE,EAAA7C,EAHM8C,wBAGNtD,IAAAqD,EAHyB,GAGzBA,EAAAE,EAAA/C,EAFMgD,yBAENxD,IAAAuD,EAF0B,GAE1BA,EACE,OAAO/G,aACHC,IAAK,oCACLC,OAAQ,OACRsB,MACIkE,QACAC,OACAe,YACAE,kBACAE,mBACAE,yBAhGhBvH,IAAA2G,EAqGK9G,IArGL,SAAAiD,EAAAC,GAqGuGD,EAAtExC,OAAsEwC,EAA9D1D,MAA8D,IAAAoI,EAAAzE,EAAnD8D,oBAAmD9C,IAAAyD,EAApC,GAAoCA,EAAAC,EAAA1E,EAAhC2E,YAAgC3D,IAAA0D,EAAzB,GAAyBA,EAAAE,EAAA5E,EAArB6E,eAAqB7D,IAAA4D,EAAXE,QAAWF,EAC/F,OAAOpH,aACHC,IAAK,kCACLC,OAAQ,OACRsB,MACI8E,eACAa,OACAE,aAGJ5C,QAAS,QA/GrB2B,IC/DWmB,GACX1I,OACIqE,OACIC,QAAS,EACTC,MAAO,EACPC,SAAU,IAEdmE,UAGJnI,iBACKC,KADL,SACiCT,EAAOiC,GAChC,IAAK,IAAIjD,KAAOiD,OACgB,IAAjBA,EAAQjD,IACfoD,UAAItB,IAAId,EAAOhB,EAAKiD,EAAQjD,MAM5C+B,oBACKN,IADL,SAAAQ,EAAAD,GACgE,IAAnCE,EAAmCD,EAAnCC,OAAQlB,EAA2BiB,EAA3BjB,MAA2ByE,EAAAzD,EAAhB0D,YAAgBC,IAAAF,KACpDJ,EAAQrE,EAAMqE,MAgBlB,OAfIK,IACAxD,EAAOT,MACH4D,aACOA,GACHC,QAAS,EACTC,MAAO,MAGfF,SACOA,GACHC,QAAS,EACTC,MAAO,KAIRpD,aACHC,IAAK,4BACLC,OAAQ,OACRsB,MACIkC,QAASR,EAAMC,QAAU,EACzBE,SAAUH,EAAMG,YAErB3B,KACC,SAACC,GAAQ,IAAAgC,EAC2BhC,EAAIH,KAD/BiG,EAAA9D,EACC6D,aADDhE,IAAAiE,OAAA5B,EAAAlC,EACaP,aADbI,IAAAqC,EACqB,EADrBA,EAED6B,KAkBJ,OAhBAF,EAAM1C,QAAQ,SAAC6C,GACXD,EAAQ1C,KAAK2C,EAAK1C,IAElBlF,EAAOT,KAAPG,OACKkI,EAAK1C,GAAK0C,MAInB5H,EAAOT,MACHkI,MAAOE,EACPxE,aACOA,GACHE,YAIDnB,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAjDtClC,IAAAmI,EAsDKtI,IAtDL,SAAAsC,EAAAS,GAsDiF,IAA9CtC,EAA8C6B,EAA9C7B,OAA8C8H,GAAAjG,EAAtC/C,MAAsCwD,EAA3ByF,eAA2BtE,IAAAqE,EAAlB,GAAkBA,EAAAE,EAAA1F,EAAd2F,cAAcxE,IAAAuE,EAAL,EAAKA,EACzE,OAAO/H,aACHC,IAAK,+BACLC,OAAQ,OACRsB,MACIsG,SACAE,YAELtG,KACC,SAACC,GAAQ,IACCgG,EAAShG,EAAIH,KAAbmG,KAQN,OANIA,GAAQA,EAAK1C,IACblF,EAAOT,KAAPG,OACKkI,EAAK1C,GAAK0C,IAIZ1F,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OA3EtClC,IAAAmI,EAgFKtI,IAhFL,SAAAgD,EAAA0B,GAgFyE1B,EAA/CvC,OAA+CuC,EAAvCzD,MAAuC,IAAAoJ,EAAAjE,EAA5B8D,cAA4BtE,IAAAyE,EAAnB,GAAmBA,EAAAC,EAAAlE,EAAfmE,cAAe3E,IAAA0E,EAAN,GAAMA,EACjE,OAAOlI,aACHC,IAAK,wBACLC,OAAQ,OACRsB,MACIsG,SACAK,cAtFhB1I,IAAAmI,EA2FKtI,IA3FL,SAAAiD,EAAAC,GA2FyED,EAA1CxC,OAA0CwC,EAAlC1D,MAAkC,IAAAuJ,EAAA5F,EAAvByC,UAAuBzB,IAAA4E,EAAlB,GAAkBA,EAAAC,EAAA7F,EAAd8F,aAAc9E,IAAA6E,EAAN,GAAMA,EACjE,OAAOrI,aACHC,IAAK,gCACLC,OAAQ,OACRsB,MACIyD,KACAqD,aAjGhBV,ICpBWW,GACX1J,OACI2J,SAAU,GACVC,gBAAiB,GACjBrD,YAAa,GACbC,WAAY,GACZqD,mBACAC,cAAe,GACfC,aAAc,GACdC,YAAa,GACbC,WAAY,GACZ5F,OACIQ,QAAS,EACTN,MAAO,EACPC,SAAU,IAEd0F,QACAvB,UAGJnI,iBACKC,KADL,SACqCT,EAAOiC,GACpC,IAAK,IAAIjD,KAAOiD,OACgB,IAAjBA,EAAQjD,IACfoD,UAAItB,IAAId,EAAOhB,EAAKiD,EAAQjD,MAM5C+B,oBACKN,IADL,SAAAQ,EAAAD,GACkJ,IAAxHE,EAAwHD,EAAxHC,OAAQlB,EAAgHiB,EAAhHjB,MAAgHyE,EAAAzD,EAArG0D,YAAqGC,IAAAF,KAAA0F,EAAAnJ,EAAvFoJ,cAAuFzF,IAAAwF,KAAvE/D,EAAuEpF,EAAvEoF,GAAIU,EAAmE9F,EAAnE8F,KAAMD,EAA6D7F,EAA7D6F,MAAOwD,EAAsDrJ,EAAtDqJ,UAAWC,EAA2CtJ,EAA3CsJ,UAAWxI,EAAgCd,EAAhCc,QAASuF,EAAuBrG,EAAvBqG,OAAQkD,EAAevJ,EAAfuJ,MAAOC,EAAQxJ,EAARwJ,KA+BlI,OA9BI9F,GACAxD,EAAOT,MACH4D,aACOrE,EAAMqE,OACTC,QAAS,EACTC,MAAO,MAIhB6F,GACClJ,EAAOT,MACH4D,aACOrE,EAAMqE,OACTC,QAAS,EACTC,MAAO,EACPM,QAAS,MAIrB3D,EAAOT,MACH2F,GAAIA,EACJU,KAAMA,EACND,MAAOA,EACPwD,UAAWA,EACXC,UAAWA,EACXxI,QAASA,EACTuF,OAAQA,EACRkD,MAAOA,EACPC,KAAMA,IAEHrJ,aACHC,IAAK,kCACLC,OAAQ,OACRsB,MACIyD,GAAiB,KAAbpG,EAAMoG,IAAa,EAAIpG,EAAMoG,GACjCU,KAAM9G,EAAM8G,KACZD,MAAO7G,EAAM6G,MACbrF,KAAMxB,EAAMqK,UACZxC,UAAW7H,EAAMsK,WAAwC,IAA3BtK,EAAMsK,UAAU7M,OAAeuC,EAAMsK,UAAU,GAAK,GAClFG,QAASzK,EAAMsK,WAAwC,IAA3BtK,EAAMsK,UAAU7M,OAAeuC,EAAMsK,UAAU,GAAK,GAChFxI,QAA2B,OAAlB9B,EAAM8B,SAAsC,IAAlB9B,EAAM8B,QAAgB,GAAK9B,EAAM8B,QACpEuF,OAAQrH,EAAMqH,OACdkD,MAAOvK,EAAMuK,MACb1F,QAAS7E,EAAMqE,MAAMQ,QACrBL,SAAUxE,EAAMqE,MAAMG,SACtBgG,KAAMxK,EAAMwK,QAEjB3H,KACC,SAACC,GAAQ,IAAAgC,EAC2BhC,EAAIH,KAD/BiG,EAAA9D,EACC6D,aADDhE,IAAAiE,OAAA5B,EAAAlC,EACaP,aADbI,IAAAqC,EACqB,EADrBA,EAED0D,KAiBJ,OAfA/B,EAAM1C,QAAQ,SAACiB,GACXwD,EAASvE,KAAKe,EAAGd,IACjBlF,EAAOT,KAAPG,OACKsG,EAAGd,GAAKc,MAIjBhG,EAAOT,MACHkI,MAAO+B,EACPrG,aACOrE,EAAMqE,OACTE,YAIDnB,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAxEtClC,IAAA+J,EA6EKlK,IA7EL,SAAAsC,EAAAS,GA6EmJ,IAAxHtC,EAAwH6B,EAAxH7B,OAAQlB,EAAgH+C,EAAhH/C,MAAgH4K,EAAApH,EAArGkB,YAAqGC,IAAAiG,KAAAC,EAAArH,EAAvF4G,cAAuFzF,IAAAkG,KAAvEzE,EAAuE5C,EAAvE4C,GAAIU,EAAmEtD,EAAnEsD,KAAMD,EAA6DrD,EAA7DqD,MAAOwD,EAAsD7G,EAAtD6G,UAAWC,EAA2C9G,EAA3C8G,UAAWxI,EAAgC0B,EAAhC1B,QAASuF,EAAuB7D,EAAvB6D,OAAQkD,EAAe/G,EAAf+G,MAAOC,EAAQhH,EAARgH,KA+BnI,OA9BI9F,GACAxD,EAAOT,MACH4D,aACOrE,EAAMqE,OACTC,QAAS,EACTC,MAAO,MAIhB6F,GACClJ,EAAOT,MACH4D,aACOrE,EAAMqE,OACTC,QAAS,EACTC,MAAO,EACPM,QAAS,MAIrB3D,EAAOT,MACH2F,GAAIA,EACJU,KAAMA,EACND,MAAOA,EACPwD,UAAWA,EACXC,UAAWA,EACXxI,QAASA,EACTuF,OAAQA,EACRkD,MAAOA,EACPC,KAAMA,IAEHrJ,aACHC,IAAK,mCACLC,OAAQ,OACRsB,MACIyD,GAAiB,KAAbpG,EAAMoG,IAAa,EAAIpG,EAAMoG,GACjCU,KAAM9G,EAAM8G,KACZD,MAAO7G,EAAM6G,MACbrF,KAAMxB,EAAMqK,UACZxC,UAAW7H,EAAMsK,WAAwC,IAA3BtK,EAAMsK,UAAU7M,OAAeuC,EAAMsK,UAAU,GAAK,GAClFG,QAASzK,EAAMsK,WAAwC,IAA3BtK,EAAMsK,UAAU7M,OAAeuC,EAAMsK,UAAU,GAAK,GAChFxI,QAA2B,OAAlB9B,EAAM8B,SAAsC,IAAlB9B,EAAM8B,QAAgB,GAAK9B,EAAM8B,QACpEuF,OAAQrH,EAAMqH,OACdkD,MAAOvK,EAAMuK,MACb1F,QAAS7E,EAAMqE,MAAMQ,QACrBL,SAAUxE,EAAMqE,MAAMG,SACtBgG,KAAMxK,EAAMwK,QAEjB3H,KACC,SAACC,GACG,OAAOM,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAlItClC,IAAA+J,EAuIKlK,IAvIL,SAAAgD,GAuI0C,IAAjBvC,EAAiBuC,EAAjBvC,OAAiBuC,EAATzD,MACzB,OAAOmB,aACHC,IAAK,mCACLC,OAAQ,OACRsB,UACDE,KACC,SAACC,GACG5B,EAAOT,MACHyJ,KAAMpH,EAAIH,KAAKuH,QAGvB,SAACpH,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAnJtClC,IAAA+J,EAwJKlK,KAxJL,SAAA0E,EAAAzB,GAwJ6EyB,EAAlDjE,OAAkDiE,EAA1CnF,MAA0C,IAA/BiJ,EAA+BvF,EAA/BuF,OAAQsB,EAAuB7G,EAAvB6G,MAAOO,EAAgBpH,EAAhBoH,aACrD,OAAO3J,aACHC,IAAK,iCACLC,OAAQ,OACRsB,MACIsG,OAAQA,EACRsB,MAAOA,EACPO,aAAcA,OA/J9BlK,IAAA+J,EAoKKlK,IApKL,SAAAkD,EAAAG,GAoKmF,IAA9C5C,EAA8CyC,EAA9CzC,OAA8C6J,GAAApH,EAAtC3D,MAAsC8D,EAA3BmF,eAA2BtE,IAAAoG,EAAlB,GAAkBA,EAAAC,EAAAlH,EAAdqF,cAAcxE,IAAAqG,EAAL,EAAKA,EAC3E,OAAO7J,aACHC,IAAK,qCACLC,OAAQ,OACRsB,MACIsG,SACAE,YAELtG,KACC,SAACC,GAAQ,IACCgG,EAAShG,EAAIH,KAAbmG,KAQN,OANIA,GAAQA,EAAK1C,IACblF,EAAOT,KAAPG,OACKkI,EAAK1C,GAAK0C,IAIZ1F,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAzLtClC,IAAA+J,EA8LKlK,IA9LL,SAAAsD,EAAAqB,GA8LmF,IAA9ClE,EAA8C6C,EAA9C7C,OAA8C+J,GAAAlH,EAAtC/D,MAAsCoF,EAA3B6D,eAA2BtE,IAAAsG,EAAlB,GAAkBA,EAAAC,EAAA9F,EAAd+D,cAAcxE,IAAAuG,EAAL,EAAKA,EAC3E,OAAO/J,aACHC,IAAK,iCACLC,OAAQ,OACRsB,MACIsG,SACAE,YAELtG,KACC,SAACC,GAAQ,IACCgG,EAAShG,EAAIH,KAAbmG,KAQN,OANIA,GAAQA,EAAK1C,IACblF,EAAOT,KAAPG,OACKkI,EAAK1C,GAAK0C,IAIZ1F,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAnNtClC,IAAA+J,EAwNKlK,IAxNL,SAAA4E,EAAAG,GAwNgIH,EAAhGnE,OAAgGmE,EAAxFrF,MAAwF,IAAAmL,EAAA3F,EAA7EY,UAA6EzB,IAAAwG,EAAxE,GAAwEA,EAApE1B,EAAoEjE,EAApEiE,MAAoE2B,EAAA5F,EAA7D6F,mBAA6D1G,IAAAyG,EAA/C,GAA+CA,EAAAE,EAAA9F,EAA3C+F,uBAA2C5G,IAAA2G,EAAzB,GAAyBA,EAAAE,EAAAhG,EAArBiG,oBAAqB9G,IAAA6G,EAAN,GAAMA,EACxH,OAAOrK,aACHC,IAAK,uCACLC,OAAQ,OACRsB,MACIyD,KACAqD,QACA4B,cACAE,kBACAE,oBAjOhB7K,IAAA+J,EAsOKlK,IAtOL,SAAAgF,EAAAiG,GAsOkIjG,EAAjGvE,OAAiGuE,EAAzFzF,MAAyF,IAAA2L,EAAAD,EAA9EtF,UAA8EzB,IAAAgH,EAAzE,GAAyEA,EAArElC,EAAqEiC,EAArEjC,MAAqEmC,EAAAF,EAA9DL,mBAA8D1G,IAAAiH,EAAhD,GAAgDA,EAAAC,EAAAH,EAA5CH,uBAA4C5G,IAAAkH,EAA1B,GAA0BA,EAAAC,EAAAJ,EAAtBK,qBAAsBpH,IAAAmH,EAAN,GAAMA,EAC1H,OAAO3K,aACHC,IAAK,wCACLC,OAAQ,OACRsB,MACIyD,KACAqD,QACA4B,cACAE,kBACAQ,qBA/OhBpB,IC9BWqB,GACXhM,OACIqE,OACIC,QAAS,EACTC,MAAO,GAEX0H,aAGJzL,iBACKC,KADL,SACkCT,EAAOiC,GACjC,IAAK,IAAIjD,KAAOiD,OACgB,IAAjBA,EAAQjD,IACfoD,UAAItB,IAAId,EAAOhB,EAAKiD,EAAQjD,MAM5C+B,oBACKN,IADL,SAAAQ,EAAAD,GACgE,IAAnCE,EAAmCD,EAAnCC,OAAQlB,EAA2BiB,EAA3BjB,MAA2ByE,EAAAzD,EAAhB0D,YAAgBC,IAAAF,KACpDJ,EAAQrE,EAAMqE,MAgBlB,OAfIK,IACAxD,EAAOT,MACH4D,aACOA,GACHC,QAAS,EACTC,MAAO,MAGfF,SACOA,GACHC,QAAS,EACTC,MAAO,KAIRpD,aACHC,IAAK,oCACLC,OAAQ,OACRsB,MACIkC,QAASR,EAAMC,QAAU,KAE9BzB,KACC,SAACC,GAAQ,IAAAgC,EACiChC,EAAIH,KADrCuJ,EAAApH,EACCqH,mBADDxH,IAAAuH,OAAAlF,EAAAlC,EACmBP,aADnBI,IAAAqC,EAC2B,EAD3BA,EAWL,OARA9F,EAAOT,MACHwL,SAAUE,EACV9H,aACOA,GACHE,YAIDnB,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAvCtClC,IAAAwL,EA2CK3L,IA3CL,SAAAsC,EAAAS,GA2C6D,IAAnCtC,EAAmC6B,EAAnC7B,OAAQlB,EAA2B+C,EAA3B/C,MAA2BqM,EAAA7I,EAAhBoB,eAAgBD,IAAA0H,EAAN,GAAMA,EACjDhI,EAAQrE,EAAMqE,MAClB,OAAOlD,aACHC,IAAK,oCACLC,OAAQ,OACRsB,MACIiC,aAEL/B,KACC,SAACC,GAAQ,IAAAwJ,EACiCxJ,EAAIH,KADrC4J,EAAAD,EACCH,mBADDxH,IAAA4H,OAAAC,EAAAF,EACmB/H,aADnBI,IAAA6H,EAC2B,EAD3BA,EAWL,OARAtL,EAAOT,MACHwL,SAAUE,EACV9H,aACOA,GACHE,YAIDnB,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAlEtClC,IAAAwL,EAsEK3L,IAtEL,SAAAgD,EAAA0B,GAsE8D1B,EAApCvC,OAAoCuC,EAA5BzD,MAA4B,IAAAyM,EAAAtH,EAAjBQ,gBAAiBhB,IAAA8H,EAAN,GAAMA,EACtD,OAAOtL,aACHC,IAAK,8BACLC,OAAQ,OACRsB,MACIgD,cAGJC,QAAS,QA9ErBwG,ICnBWM,GAEX1M,OACI2M,UACAC,aACAC,cAOJrM,sBACKC,KADL,SACsCT,EAAOiC,GACrC,IAAK,IAAIjD,KAAOiD,OACgB,IAAjBA,EAAQjD,IACfoD,UAAItB,IAAId,EAAOhB,EAAKiD,EAAQjD,MAJ5C4B,IAAAkM,EAQKrM,KARL,SAQsCT,EAAOiC,GACrC,IAAK,IAAIjD,KAAOiD,OACgB,IAAjBA,EAAQjD,IACfoD,UAAItB,IAAId,EAAM6M,UAAW7N,EAAKiD,EAAQjD,MAXtD8N,GAkBA/L,oBACKN,IADL,SAAAQ,GAC4C,IAAjBC,EAAiBD,EAAjBC,OAAiBD,EAATjB,MAC3B,OAAOmB,aACHC,IAAK,yBACLC,OAAQ,QACTwB,KACC,SAACC,GACG5B,EAAOT,MACHkM,OAAQ7J,EAAIH,KAAKoK,mBAELjK,EAAIH,KAAKoK,iBACf9G,QAAQ,SAAA+G,GACd9L,EAAOT,KAAPG,OACKoM,EAAMC,eAAiBD,OAIpC,SAAClK,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAlBtClC,IAAAsM,EAsBKzM,IAtBL,SAAAO,GAsBgD,IAAjBE,EAAiBF,EAAjBE,OAAiBF,EAAThB,MAC/B,OAAOmB,aACHC,IAAK,4BACLC,OAAQ,QACTwB,KACC,SAACC,GACG5B,EAAOT,MACHmM,UAAW9J,EAAIH,KAAKwK,eAG5B,SAACrK,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAjCtClC,IAAAsM,EAqCKzM,IArCL,SAAAsC,EAAAS,GAqC+DT,EAA9B7B,OAA8B6B,EAAtB/C,MAAsB,IAAXoN,EAAW5J,EAAX4J,QAC5C,OAAOjM,aACHC,IAAK,2CAA6CgM,EAClD/L,OAAQ,QACTwB,KACC,SAACC,GACG,OAAOM,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OA9CtClC,IAAAsM,EAkDKzM,IAlDL,SAAAgD,EAAA0B,GAkD0D1B,EAAlCvC,OAAkCuC,EAA1BzD,MAA0B,IAAfqN,EAAelI,EAAfkI,YACnC,OAAOlM,aACHC,IAAK,wBACLC,OAAQ,OACRsB,YACO0K,OAvDnBzM,IAAAsM,EA2DKzM,KA3DL,SAAAiD,EAAAC,GA2D6DD,EAAlCxC,OAAkCwC,EAA1B1D,MAA0B,IAAfqN,EAAe1J,EAAf0J,YACtC,OAAOlM,aACHC,IAAK,2BACLC,OAAQ,OACRsB,YACO0K,OAhEnBzM,IAAAsM,EAoEKzM,IApEL,SAAAqD,EAAAC,GAoEyDD,EAA9B5C,OAA8B4C,EAAtB9D,MAAsB,IAAXoN,EAAWrJ,EAAXqJ,QACtC,OAAOjM,aACHC,IAAK,wBACLC,OAAQ,OACRsB,MACIsK,eAAgBG,OAzEhCF,IC9BWI,GACXtN,OACIuN,cACAC,kBACAF,cAGJ9M,iBACKC,KADL,SAC0CT,EAAOiC,GACzC,IAAK,IAAIjD,KAAOiD,OACgB,IAAjBA,EAAQjD,IACfoD,UAAItB,IAAId,EAAOhB,EAAKiD,EAAQjD,MAM5C+B,oBACKN,IADL,SAAAQ,GAC+C,IAAjBC,EAAiBD,EAAjBC,OAAiBD,EAATjB,MAC9B,OAAOmB,aACHC,IAAK,6BACLC,OAAQ,OACRsB,UACDE,KACC,SAACC,GACG5B,EAAOT,MACH8M,WAAYzK,EAAIH,KAAK8K,SAG7B,SAAC3K,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAbtClC,IAAA8M,EAiBKjN,IAjBL,SAAAO,EAAA+B,GAiBkE,IAA7B7B,EAA6BF,EAA7BE,OAAmByM,GAAU3M,EAArBhB,MAAqB+C,EAAV4K,QAChD,OAAOxM,aACHC,IAAK,uCAAyCuM,EAC9CtM,OAAQ,QACTwB,KACC,SAACC,GACG5B,EAAOT,MACH+M,eAAgB1K,EAAIH,KAAK8G,MACzB6D,UAAWxK,EAAIH,KAAKiL,QAG5B,SAAC9K,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OA7BtClC,IAAA8M,EAiCKjN,IAjCL,SAAA+C,EAAAC,GAiCiE,IAApCvC,EAAoCsC,EAApCtC,OAAmB2M,GAAiBrK,EAA5BxD,MAA4ByD,EAAjBoK,eACxC,OAAO1M,aACHC,IAAK,iCACLC,OAAQ,OACRsB,KAAMkL,IACPhL,KACC,SAACC,GAEG5B,EAAOT,UAIX,SAACqC,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OA9CtClC,IAAA8M,EAkDKjN,IAlDL,SAAA0E,EAAAzB,GAkD0E,IAAxCxC,EAAwCiE,EAAxCjE,OAAmB4M,GAAqB3I,EAAhCnF,MAAgC0D,EAArBoK,mBAC7C,OAAO3M,aACHC,IAAK,qCACLC,OAAQ,OACRsB,KAAMmL,IACPjL,KACC,SAACC,GAEG5B,EAAOT,UAIX,SAACqC,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OA/DtClC,IAAA8M,EAmEKjN,IAnEL,SAAAkD,EAAAG,GAmE4DH,EAA7BzC,OAA6ByC,EAArB3D,MAAqB,IAAV2N,EAAU7J,EAAV6J,OAC1C,OAAOxM,aACHC,IAAK,mCACLC,OAAQ,OACRsB,MACIgL,OAAQA,OAxExB/M,IAAA8M,EA4EKjN,IA5EL,SAAAsD,EAAAqB,GA4EiErB,EAA7B7C,OAA6B6C,EAArB/D,MAAqB,IAAV+N,EAAU3I,EAAV2I,OAC/C,OAAO5M,aACHC,IAAK,uCACLC,OAAQ,OACRsB,MACIoL,OAAQA,OAjFxBL,ICjBWM,GACXhO,OACIiO,mBAAetJ,EACfuJ,cAAUvJ,GAGdnE,iBACKC,KADL,SAC+CT,EAAOiC,GAC9C,IAAK,IAAIjD,KAAOiD,OACgB,IAAjBA,EAAQjD,IACfoD,UAAItB,IAAId,EAAOhB,EAAKiD,EAAQjD,MAM5C+B,oBACKN,IADL,SAAAQ,EAAAD,GAC2D,IAAxBE,EAAwBD,EAAxBC,OAAkBE,GAAMH,EAAhBjB,MAAgBgB,EAANI,KAC7C,OAAOD,aACHC,IAAK,0BAA4BA,EACjCC,OAAQ,QACTwB,KACC,SAACC,GAKG,OAJA5B,EAAOT,MACHwN,qBAAmBnL,EAAIH,KAAKwL,QAC5BD,gBAAcpL,EAAIH,KAAKuL,YAEpB9K,EAAAxE,EAAQyE,QAAQP,IAE3B,SAACA,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAdtClC,IAAAwN,EAkBK3N,IAlBL,SAAAsC,EAAAS,GAkBqET,EAAjC7B,OAAiC6B,EAAzB/C,MAAyB,IAAfoB,EAAeoC,EAAfpC,IAAKgM,EAAU5J,EAAV4J,QACnD,OAAOjM,aACHC,IAAK,0BAA4BA,EAAM,WAAagM,EACpD/L,OAAQ,UArBpB+M,IChBWC,GACXrO,OACIqO,SACIC,SAAU,GACVC,gBAAiB,GACjBC,oBAAqB,GACrBC,iBAAkB,KAI1BjO,iBACKC,KADL,SACwCT,EAAOiC,GACvC,IAAK,IAAIjD,KAAOiD,OACgB,IAAjBA,EAAQjD,IACfoD,UAAItB,IAAId,EAAOhB,EAAKiD,EAAQjD,MAM5C+B,oBACKN,IADL,SAAAQ,GACoD,IAAjBC,EAAiBD,EAAjBC,OAAiBD,EAATjB,MACnC,OAAOmB,aACHC,IAAK,0BACLC,OAAQ,QACTwB,KACC,SAACC,GACG5B,EAAOT,MACH4N,eAAcvL,EAAIH,KAAK+L,cAG/B,SAAC5L,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,OAZtClC,IAAA+N,EAgBKlO,IAhBL,SAAAO,EAAA+B,GAgBqE/B,EAAjCE,OAAiCF,EAAzBhB,MAAyB,IAAd4O,EAAc7L,EAAd6L,WAC/C,OAAOzN,aACHC,IAAK,6BACLC,OAAQ,OACRsB,KAAMiM,MApBlBD,ICpBWE,GACX7O,OACI8O,WAGAzK,OACIC,QAAS,EACTC,MAAO,EACPC,SAAU,IAEduK,UAGJvO,iBACKC,KADL,SACsCT,EAAOiC,GACrC,IAAK,IAAIjD,KAAOiD,OACgB,IAAjBA,EAAQjD,IACfoD,UAAItB,IAAId,EAAOhB,EAAKiD,EAAQjD,MAM5C+B,eACKN,IADL,SAAAQ,EAAAD,GAC0E,IAAhDE,EAAgDD,EAAhDC,OAAQlB,EAAwCiB,EAAxCjB,MAAwCyE,EAAAzD,EAA7B0D,YAA6BC,IAAAF,KAAAuK,EAAAhO,EAAfiO,cAAetK,IAAAqK,OAC9D3K,EAAQrE,EAAMqE,MAgBlB,OAfIK,IACAxD,EAAOT,MACH4D,aACOA,GACHC,QAAS,EACTC,MAAO,MAGfF,SACOA,GACHC,QAAS,EACTC,MAAO,KAIRpD,aACHC,IAAK,wBACLC,OAAQ,OACRsB,YACOsM,GACHpK,QAASR,EAAMC,QAAU,EACzBE,SAAUH,EAAMG,aAErB3B,KACC,SAACC,GACG,IAAIyB,EAAQzB,EAAIH,KAAK4B,MACrBrD,EAAOT,MACHsO,MAAOjM,EAAIH,KAAKuM,gBAChB7K,aACOA,GACHE,aAIZ,SAACzB,GACG,OAAOM,EAAAxE,EAAQ0E,OAAOR,mFCkH3BqM,IACbC,YAAY,EACZpP,OApLAqP,eACEC,SAAU,aACVC,KAAM,GACNC,MACE3I,MAAO,KACP4I,KAAM,YACNC,YAAY,EACZC,OAAO,GAETC,KAAM,aACNpO,KAAM,cAERqO,aAAc,iBACdC,UACAC,cAuKAvP,WAnKAwP,iBAAkB,SAAChQ,EAAOiQ,GACpBjQ,EAAMqP,aAAaa,KAAK,SAAAC,GAAA,OAAKA,EAAEP,OAASK,EAAKL,QACjD5P,EAAMqP,aAAalJ,KACjB8J,IAGJG,gBAAiB,SAACpQ,EAAOiQ,GACnBjQ,EAAM6P,YAAYQ,SAASJ,EAAKzO,OAC/ByO,EAAKT,KAAKc,SACbtQ,EAAM6P,YAAY1J,KAAK8J,EAAKzO,OAIhC+O,iBAAkB,SAACvQ,EAAOiQ,GAAS,IAAAO,GAAA,EAAAC,GAAA,EAAAC,OAAA/L,EAAA,IACjC,QAAAgM,EAAAC,EAAAC,IAAqB7Q,EAAMqP,aAAayB,aAAxCN,GAAAG,EAAAC,EAAApG,QAAAuG,MAAAP,GAAA,EAAmD,KAAAvP,EAAA0P,EAAA1R,MAAA+B,EAAAgQ,IAAA/P,EAAA,GAAvCzC,EAAuCwC,EAAA,GACjD,GADiDA,EAAA,GAC3C4O,OAASK,EAAKL,KAAM,CACxB5P,EAAMqP,aAAa4B,OAAOzS,EAAG,GAC7B,QAJ6B,MAAA0S,GAAAT,GAAA,EAAAC,EAAAQ,EAAA,aAAAV,GAAAI,EAAAO,QAAAP,EAAAO,SAAA,WAAAV,EAAA,MAAAC,KAQnCU,gBAAiB,SAACpR,EAAOiQ,GAAS,IAAAoB,GAAA,EAAAC,GAAA,EAAAC,OAAA5M,EAAA,IAChC,QAAA6M,EAAAC,EAAAZ,IAAgB7Q,EAAM6P,eAAtBwB,GAAAG,EAAAC,EAAAjH,QAAAuG,MAAAM,GAAA,EAAmC,KAAxB7S,EAAwBgT,EAAAvS,MACjC,GAAIT,IAAMyR,EAAKzO,KAAM,CACnB,IAAMkQ,EAAQ1R,EAAM6P,YAAY8B,QAAQnT,GACxCwB,EAAM6P,YAAYoB,OAAOS,EAAO,GAChC,QAL4B,MAAAR,GAAAI,GAAA,EAAAC,EAAAL,EAAA,aAAAG,GAAAI,EAAAN,QAAAM,EAAAN,SAAA,WAAAG,EAAA,MAAAC,KAUlCK,yBAA0B,SAAC5R,EAAOiQ,GAChCjQ,EAAMqP,aAAerP,EAAMqP,aAAaJ,OAAO,SAAAkB,GAC7C,OAAOA,EAAEX,KAAKG,OAASQ,EAAEP,OAASK,EAAKL,QAG3CiC,wBAAyB,SAAC7R,EAAOiQ,GAAS,IAAA6B,GAAA,EAAAC,GAAA,EAAAC,OAAArN,EAAA,IACxC,QAAAsN,EAAAC,EAAArB,IAAgB7Q,EAAM6P,eAAtBiC,GAAAG,EAAAC,EAAA1H,QAAAuG,MAAAe,GAAA,EAAmC,KAAxBtT,EAAwByT,EAAAhT,MACjC,GAAIT,IAAMyR,EAAKzO,KAAM,CACnB,IAAMkQ,EAAQ1R,EAAM6P,YAAY8B,QAAQnT,GACxCwB,EAAM6P,YAAc7P,EAAM6P,YAAYsC,MAAMT,EAAOA,EAAQ,GAC3D,QALoC,MAAAR,GAAAa,GAAA,EAAAC,EAAAd,EAAA,aAAAY,GAAAI,EAAAf,QAAAe,EAAAf,SAAA,WAAAY,EAAA,MAAAC,KAU1CI,sBAAuB,SAAApS,GAErB,IAAMqS,EAAYrS,EAAMqP,aAAaJ,OAAO,SAAAqD,GAAA,OAAOA,EAAI9C,KAAKG,QAC5D3P,EAAMqP,aAAegD,GAEvBE,qBAAsB,SAAAvS,GACpBA,EAAM6P,gBAGR2C,oBAAqB,SAACxS,EAAOiQ,GAAS,IAAAwC,GAAA,EAAAC,GAAA,EAAAC,OAAAhO,EAAA,IACpC,QAAAiO,EAAAC,EAAAhC,IAAc7Q,EAAMqP,gBAApBoD,GAAAG,EAAAC,EAAArI,QAAAuG,MAAA0B,GAAA,EAAkC,KAAzBtC,EAAyByC,EAAA3T,MAChC,GAAIkR,EAAEP,OAASK,EAAKL,KAAM,CACxBO,EAAI2C,IAAc3C,EAAGF,GACrB,QAJgC,MAAAiB,GAAAwB,GAAA,EAAAC,EAAAzB,EAAA,aAAAuB,GAAAI,EAAA1B,QAAA0B,EAAA1B,SAAA,WAAAuB,EAAA,MAAAC,KAStCI,WAAY,SAAC/S,EAAO8P,GAClB9P,EAAM8P,OAASkD,IAAgBtS,OAAOoP,GACtC9P,EAAM+P,UAAYD,IAkGpB/O,SA7FAkS,QADc,SAAAlQ,EACQkN,GAAM,IAAlBiD,EAAkBnQ,EAAlBmQ,SACRA,EAAS,iBAAkBjD,GAC3BiD,EAAS,gBAAiBjD,IAE5BkD,eALc,SAAA3P,EAKayM,IACzB/O,EAD+BsC,EAAhBtC,QACR,mBAAoB+O,IAE7BmD,cARc,SAAA3P,EAQYwM,IACxB/O,EAD8BuC,EAAhBvC,QACP,kBAAmB+O,IAG5BoD,QAZc,SAAAlO,EAYe8K,GAAM,IAAzBiD,EAAyB/N,EAAzB+N,SAAUlT,EAAemF,EAAfnF,MAClB,OAAO,IAAIoD,EAAAxE,EAAQ,SAAAyE,GACjB6P,EAAS,iBAAkBjD,GAC3BiD,EAAS,gBAAiBjD,GAC1B5M,GACEgM,2BAAkBrP,EAAMqP,eACxBQ,0BAAiB7P,EAAM6P,mBAI7ByD,eAtBc,SAAA5P,EAsBoBuM,GAAM,IAAvB/O,EAAuBwC,EAAvBxC,OAAQlB,EAAe0D,EAAf1D,MACvB,OAAO,IAAIoD,EAAAxE,EAAQ,SAAAyE,GACjBnC,EAAO,mBAAoB+O,GAC3B5M,gBAAYrD,EAAMqP,mBAGtBkE,cA5Bc,SAAA5P,EA4BmBsM,GAAM,IAAvB/O,EAAuByC,EAAvBzC,OAAQlB,EAAe2D,EAAf3D,MACtB,OAAO,IAAIoD,EAAAxE,EAAQ,SAAAyE,GACjBnC,EAAO,kBAAmB+O,GAC1B5M,gBAAYrD,EAAM6P,kBAItB2D,eAnCc,SAAA1P,EAmCsBmM,GAAM,IAAzBiD,EAAyBpP,EAAzBoP,SAAUlT,EAAe8D,EAAf9D,MACzB,OAAO,IAAIoD,EAAAxE,EAAQ,SAAAyE,GACjB6P,EAAS,wBAAyBjD,GAClCiD,EAAS,uBAAwBjD,GACjC5M,GACEgM,2BAAkBrP,EAAMqP,eACxBQ,0BAAiB7P,EAAM6P,mBAI7B4D,sBA7Cc,SAAA1P,EA6C2BkM,GAAM,IAAvB/O,EAAuB6C,EAAvB7C,OAAQlB,EAAe+D,EAAf/D,MAC9B,OAAO,IAAIoD,EAAAxE,EAAQ,SAAAyE,GACjBnC,EAAO,2BAA4B+O,GACnC5M,gBAAYrD,EAAMqP,mBAGtBqE,qBAnDc,SAAAtO,EAmD0B6K,GAAM,IAAvB/O,EAAuBkE,EAAvBlE,OAAQlB,EAAeoF,EAAfpF,MAC7B,OAAO,IAAIoD,EAAAxE,EAAQ,SAAAyE,GACjBnC,EAAO,0BAA2B+O,GAClC5M,gBAAYrD,EAAM6P,kBAItB8D,YA1Dc,SAAAtO,EA0DmB4K,GAAM,IAAzBiD,EAAyB7N,EAAzB6N,SAAUlT,EAAeqF,EAAfrF,MACtB,OAAO,IAAIoD,EAAAxE,EAAQ,SAAAyE,GACjB6P,EAAS,qBAAsBjD,GAC/BiD,EAAS,oBAAqBjD,GAC9B5M,GACEgM,2BAAkBrP,EAAMqP,eACxBQ,0BAAiB7P,EAAM6P,mBAI7B+D,mBApEc,SAAApO,GAoEwB,IAAjBtE,EAAiBsE,EAAjBtE,OAAQlB,EAASwF,EAATxF,MAC3B,OAAO,IAAIoD,EAAAxE,EAAQ,SAAAyE,GACjBnC,EAAO,yBACPmC,gBAAYrD,EAAMqP,mBAGtBwE,kBA1Ec,SAAApO,GA0EuB,IAAjBvE,EAAiBuE,EAAjBvE,OAAQlB,EAASyF,EAATzF,MAC1B,OAAO,IAAIoD,EAAAxE,EAAQ,SAAAyE,GACjBnC,EAAO,wBACPmC,gBAAYrD,EAAM6P,kBAItBiE,kBAjFc,SAAApI,EAiFgBuE,IAC5B/O,EADkCwK,EAAhBxK,QACX,sBAAuB+O,IAGhC8D,eArFc,SAAAC,EAqFaC,IACzB/S,EADyC8S,EAA1B9S,QACR,aAAc+S,MC7KVC,IAHb7E,aAAc,SAAArP,GAAA,OAASA,EAAMmP,SAASE,cACtCQ,YAAa,SAAA7P,GAAA,OAASA,EAAMmP,SAASU,cCiBvCzN,UAAI+R,IAAIC,KAEOtU,EAAA,MAAIsU,IAAKC,OACpBC,SACIvU,MACAoC,OACA0D,YACA7B,SACAsC,aACAoC,UACAgB,cACAsC,UACAgB,QACAM,YACAU,UACAK,UACAQ,OACAM,aAEJ+E,WACAK,OAAQhS,ocCvCiKiS,GCQ7KhT,KAAA,+BCAAiT,EAAgBC,OAAAC,EAAA,EAAAD,CACdF,ECTF,WAA0B,IAAaI,EAAbC,KAAaC,eAA0BC,EAAvCF,KAAuCG,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBE,OAAO7O,GAAA,SAAY2O,EAAA,wBDY7H,EACA,KACA,KACA,MAIAN,EAAAS,QAAAC,OAAA,UACe,IAAAC,EAAAX,kCEjBf,SAASY,EAAU/X,EAAMqJ,GACvB,OAAa,IAATrJ,EACKA,EAAOqJ,EAETrJ,EAAOqJ,EAAQ,IAGjB,SAAS2O,EAAQhY,GACtB,IAAMiY,EAAUzX,KAAKuB,MAAQ,IAAOmW,OAAOlY,GAC3C,OAAIiY,EAAU,KACLF,KAAaE,EAAU,IAAK,WAC1BA,EAAU,MACZF,KAAaE,EAAU,MAAO,SAE9BF,KAAaE,EAAU,OAAQ,QAKnC,SAASE,EAAgBC,EAAKC,GASnC,IARA,IAAMC,IACF3W,MAAO,KAAM4W,OAAQ,MACrB5W,MAAO,KAAM4W,OAAQ,MACrB5W,MAAO,KAAM4W,OAAQ,MACrB5W,MAAO,IAAK4W,OAAQ,MACpB5W,MAAO,IAAK4W,OAAQ,MACpB5W,MAAO,IAAK4W,OAAQ,MAEfrX,EAAI,EAAGA,EAAIoX,EAAGnY,OAAQe,IAC7B,GAAIkX,GAAOE,EAAGpX,GAAGS,MACf,OAAQyW,EAAME,EAAGpX,GAAGS,MAAQ,IAAK6W,QAAQH,GAAQ7W,QAAQ,2BAA4B,MAAQ8W,EAAGpX,GAAGqX,OAGvG,OAAOH,EAAIK,WAGN,SAASC,EAAiBN,GAC/B,QAASA,GAAO,GAAGK,WAAWjX,QAAQ,UAAW,SAAAZ,GAAA,OAAKA,EAAEY,QAAQ,uBAAwB,oDCtB1FmX,IAAYnH,GAAS7I,QAAQ,SAACjH,GAC1BoD,UAAI6M,OAAOjQ,EAAK8P,EAAQ9P,MAG5BoD,UAAI8T,OAAOC,cAAgB5T,IAC3BH,UAAI8T,OAAOE,SAAW7T,IACtBH,UAAI8T,OAAOG,YAAc9T,IACzBH,UAAI8T,OAAOI,aAAe,SAASpF,EAAKqF,EAAIC,GACxCC,QAAQC,IAAI,6DACZD,QAAQC,IAAIxF,GACZuF,QAAQC,IAAIH,GACZE,QAAQC,IAAIF,GACZC,QAAQC,IAAI,8DAEhBtU,UAAI8T,OAAOS,YAAc,SAASzQ,EAAKqQ,EAAIK,GACvCH,QAAQC,IAAI,6DACZD,QAAQC,IAAIxQ,GACZuQ,QAAQC,IAAIH,GACZE,QAAQC,IAAIE,GACZH,QAAQC,IAAI,8DAGhBG,IAAUC,WAAYC,aAAa,IACnC3U,UAAI+R,IAAI6C,KACJC,KAAM,SAGV7U,UAAI+R,IAAI+C,KAGR,IAAI9U,WACA+U,GAAI,OACJC,UACAC,WACAC,SAAU,SACVC,YAAcnC,mECrDlB,IAAAoC,EAAAva,EAAA,QAAAA,EAAAG,EAAAoa,GAA4e,qCCA5e,IAAAC,EAAAxa,EAAA,QAAAA,EAAAG,EAAAqa,GAA2Z,sBCA3Z1a,EAAAC,QAAA,w0CCCO,SAAS0a,EAAYC,GAExB,MADiB,6TACDC,KAAKD,GAoClB,SAASE,EAAiBvJ,GAE7B,MADa,6CACDsJ,KAAKtJ,GAzCrBrR,EAAAmB,EAAA0B,EAAA,sBAAA4X,IAAAza,EAAAmB,EAAA0B,EAAA,sBAAA+X,uCCAA,IAAAC,EAAA7a,EAAA,QAAAA,EAAAG,EAAA0a,GAAgf,qCCAhf7a,EAAAmB,EAAA0B,EAAA,sBAAAiY,IAAA9a,EAAAmB,EAAA0B,EAAA,sBAAAkY,IAAO,IAAMD,GAAU,EACVC,EAAmB,oDCDhC,IAAAC,EAAAhb,EAAA,QAAAA,EAAAG,EAAA6a,GAAyd,qCCAzd,IAAAC,EAAAjb,EAAA,QAAAA,EAAAG,EAAA8a,GAAqe,sFCEtdC,EADH,IAAI/V,gECDsLgW,GCsBtMzV,KADA,WAEA,OACA0V,UAAA,OAIAC,OACAC,OADA,WAEA1D,KAAA2D,kBAIAC,QAbA,WAcA5D,KAAA2D,iBAGAE,SACAF,cADA,WACA,IACAG,EAAA9D,KAAA0D,OAAAI,OAEAC,EAAA/D,KAAA0D,OAAAK,QAAA3J,OAAA,SAAA4J,GACA,GAAAA,EAAArX,KAAA,CACA,IAAAsX,EAAAC,EAAAna,EAAAoa,QAAAH,EAAAjJ,MAEA,OADAiJ,EAAAjJ,KAAAkJ,EAAAH,IACA,KAGAM,EAAAL,EAAA,GACAK,KAAAzX,KAAA0X,OAAAC,gBAAA,YAAAA,gBACAP,IAAAhJ,KAAA,aAAAJ,MAAA3I,MAAA,QAAAnG,OAAAkY,IAEA/D,KAAAwD,UAAAO,6BC7CAnE,EAAgBC,OAAAC,EAAA,EAAAD,CACd0D,ECTQ,WAAgB,IAAAgB,EAAAvE,KAAaD,EAAAwE,EAAAtE,eAA0BC,EAAAqE,EAAApE,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,iBAA2BsE,YAAA,iBAAApE,OAAoCqE,UAAA,OAAiBvE,EAAA,oBAAyBE,OAAOzT,KAAA,eAAqB4X,EAAAG,GAAAH,EAAA,mBAAAP,EAAAnH,GAA6C,OAAAqD,EAAA,sBAAgC/V,IAAA6Z,EAAAjJ,OAAciJ,EAAArJ,KAAA,MAAAuF,EAAA,OAA8ByE,aAAaC,QAAA,kBAA0B,eAAAZ,EAAAa,UAAAhI,GAAA0H,EAAAf,UAAA5a,OAAA,EAAAsX,EAAA,QAAmFsE,YAAA,gBAA0BD,EAAAO,GAAAP,EAAAQ,GAAAf,EAAArJ,KAAA3I,UAAAkO,EAAA,QAAAqE,EAAAO,GAAAP,EAAAQ,GAAAf,EAAArJ,KAAA3I,YAAAuS,EAAAS,WAA8F,QDYzkB,EACA,KACA,WACA,MAIApF,EAAAS,QAAAC,OAAA,iBACe,IAAA2E,EAAArF,+BEpB+KsF,GCgD9LvY,KAAA,iBAEAwY,OACAC,MACAnT,KAAA2B,QACAyR,SAAA,GAGA1X,KACAsE,MAAA0O,OAAA2E,QACAD,QAAA,GAGApT,MACAA,MAAA0O,OAAA2E,QACAD,QAAA,GAGAE,eACAtT,KAAAuT,SACAH,QAAA,eAIAvX,KAzBA,WAyBA,IAAA2X,EAAAzF,KACA,OACA0F,MACAC,OAAA,GACA5X,IAAA,GACA6X,UAAA,IAEAC,OACAF,SAEAG,UAAA,SAAAC,EAAA3b,EAAA4b,GACA,IAAAP,EAAAxT,KACA+T,IACA5b,EAEAA,EAAAxB,OAAA,EACAod,EAAA,IAAAC,MAAA,eAEAD,IAJAA,EAAA,IAAAC,MAAA,aAOAC,QAAA,SAGAnY,MAEA+X,UAAA,SAAAC,EAAA3b,EAAA4b,GACA5b,EAEAA,EAAAxB,OAAA,EACAod,EAAA,IAAAC,MAAA,gBAEA,KAAAR,EAAAC,KAAAE,WACAH,EAAAU,MAAAC,aAAAC,cAAA,aAEAL,KAPAA,EAAA,IAAAC,MAAA,WAUAC,QAAA,SAGAN,YAEAE,UAAA,SAAAC,EAAA3b,EAAA4b,GACA5b,EAEAA,IAAAqb,EAAAC,KAAA3X,IACAiY,EAAA,IAAAC,MAAA,eAEAD,IAJAA,EAAA,IAAAC,MAAA,aAOAC,QAAA,YAOAI,UACAxZ,OADA,SAAAV,GAEA,OADAA,EAAAma,OACApb,MAAAmC,KAAAR,QAAA,KAIA+W,SACA2C,gBADA,WACA,IAAAC,EAAAzG,KACAA,KAAAmG,MAAAC,aAAAM,SAAA,SAAAC,GACA,IAAAA,EACA,SAGAF,EAAAF,OAAAlI,SAAAuI,EAAA,GACA5X,OAAA6X,IAAAJ,EAAAf,KAAAC,QACA5W,OAAA8X,IAAAJ,EAAAf,KAAA3X,OAGAC,KACA,WACAyY,EAAAK,iBACAL,EAAAM,UACA9U,KAAA,UACA+U,QAAA,YAGA,WACAP,EAAAM,UACA9U,KAAA,QACA+U,QAAA,gBAOAF,eA9BA,WA+BA9G,KAAA0F,KAAA3X,IAAA,GACAiS,KAAA0F,KAAAE,UAAA,GACA5F,KAAAuF,mBClKI0B,aAAYpH,OAAAC,EAAA,EAAAD,CACdqF,ECTQ,WAAgB,IAAAX,EAAAvE,KAAaD,EAAAwE,EAAAtE,eAA0BC,EAAAqE,EAAApE,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,aAAuBE,OAAOpO,MAAA,OAAAkV,MAAA,QAAAC,QAAA5C,EAAAa,KAAAgC,eAAA7C,EAAAuC,kBAAqF5G,EAAA,WAAgBmH,IAAA,eAAAjH,OAA0BkH,MAAA/C,EAAAmB,KAAA6B,cAAA,OAAA1B,MAAAtB,EAAAsB,SAAyD3F,EAAA,gBAAqBsH,aAAa7a,KAAA,OAAA8a,QAAA,SAAArd,MAAA,IAAAma,EAAAtS,KAAAyV,WAAA,gBAA8EtH,OAAStO,MAAA,OAAA6V,KAAA,YAAgCzH,EAAA,YAAiBE,OAAOwH,YAAA,UAAA3V,KAAA,WAAA4V,gBAAA,OAAgEP,OAAQld,MAAAma,EAAAmB,KAAA,OAAAM,SAAA,SAAA8B,GAAiDvD,EAAAwD,KAAAxD,EAAAmB,KAAA,SAAAoC,IAAkCJ,WAAA,kBAA2B,GAAAnD,EAAAO,GAAA,KAAA5E,EAAA,gBAAqCE,OAAOtO,MAAA,OAAA6V,KAAA,SAA6BzH,EAAA,YAAiBE,OAAOwH,YAAA,UAAA3V,KAAA,WAAA4V,gBAAA,OAAgEP,OAAQld,MAAAma,EAAAmB,KAAA,IAAAM,SAAA,SAAA8B,GAA8CvD,EAAAwD,KAAAxD,EAAAmB,KAAA,MAAAoC,IAA+BJ,WAAA,eAAwB,GAAAnD,EAAAO,GAAA,KAAA5E,EAAA,gBAAqCE,OAAOtO,MAAA,GAAA6V,KAAA,eAA+BzH,EAAA,YAAiBE,OAAOwH,YAAA,YAAA3V,KAAA,WAAA4V,gBAAA,OAAkEP,OAAQld,MAAAma,EAAAmB,KAAA,UAAAM,SAAA,SAAA8B,GAAoDvD,EAAAwD,KAAAxD,EAAAmB,KAAA,YAAAoC,IAAqCJ,WAAA,qBAA8B,OAAAnD,EAAAO,GAAA,KAAA5E,EAAA,OAAgCsE,YAAA,gBAAApE,OAAmC4H,KAAA,UAAgBA,KAAA,WAAe9H,EAAA,aAAkB+H,IAAIC,MAAA3D,EAAAuC,kBAA4BvC,EAAAO,GAAA,QAAAP,EAAAO,GAAA,KAAA5E,EAAA,aAA6CE,OAAOnO,KAAA,WAAiBgW,IAAKC,MAAA3D,EAAAiC,mBAA6BjC,EAAAO,GAAA,uBDYn8C,EACA,KACA,KACA,OAIAmC,EAAS5G,QAAAC,OAAA,qBACM,IEpBmL6H,GCwElMzF,YACAuC,aACAmD,eHtDenB,WGyDfnZ,KANA,WAOA,OACAua,oBAAA,EACA1a,IAAA2a,EAAAve,EAAAyB,IAAA,SAIA8a,UACAjb,QADA,SAAAe,GAEA,OADAA,EAAAma,OACApb,MAAAD,IAAAG,SAGAK,OALA,SAAAS,GAMA,OADAA,EAAAoa,OACApb,MAAAD,IAAAQ,QAGAiB,KATA,SAAAuB,GAUA,OADAA,EAAAqY,OACApb,MAAAmC,KAAAX,MAAA,IAGAC,OAbA,SAAA+B,GAcA,OADAA,EAAA4X,OACApb,MAAAmC,KAAAV,QAAA,IAGAK,QAjBA,SAAA2B,GAkBA,OADAA,EAAA2X,OACApb,MAAAmC,KAAAL,SAAA,IAGAC,SArBA,SAAAoD,GAsBA,OADAA,EAAAiW,OACApb,MAAAmC,KAAAJ,UAAA,KAIA2W,SACA0E,cADA,WAEAvI,KAAAuG,OAAAla,OAAAua,EAAA,KAGA4B,SALA,WAMAxI,KAAAqI,oBAAA,GAGAI,oBATA,WAUAzI,KAAAqI,oBAAA,GAGAK,OAbA,WAcA1I,KAAAuG,OAAAlI,SAAAuI,EAAA,GAAA5Y,KAAA,WACA2a,SAAAC,cCrHIC,aAAYhJ,OAAAC,EAAA,EAAAD,CACdsI,ECTQ,WAAgB,IAAA5D,EAAAvE,KAAaD,EAAAwE,EAAAtE,eAA0BC,EAAAqE,EAAApE,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBsE,YAAA,WAAqBtE,EAAA,OAAYsE,YAAA,wBAAkCtE,EAAA,OAAYsE,YAAA,YAAAsE,OAA+BC,YAAAxE,EAAAlZ,QAAAC,QAA+B8U,OAAQ4I,EAAA,gBAAAC,QAAA,gBAAAC,QAAA,MAAAC,MAAA,6BAAAC,OAAA,OAAAC,cAAA,+BAAAnC,MAAA,KAAAoC,OAAA,MAAyLrB,IAAKC,MAAA3D,EAAAgE,iBAA2BrI,EAAA,QAAaE,OAAO7W,EAAA,gSAAA6f,OAAA,UAAmT7E,EAAAO,GAAA,KAAA5E,EAAA,QAAyBE,OAAO7W,EAAA,+RAAA6f,OAAA,UAAkT7E,EAAAO,GAAA,KAAA5E,EAAA,QAAyBE,OAAO7W,EAAA,4RAAA6f,OAAA,cAA+S7E,EAAAO,GAAA,KAAA5E,EAAA,cAAmCsE,YAAA,yBAAmCD,EAAAO,GAAA,KAAA5E,EAAA,OAAwBsE,YAAA,eAAyBtE,EAAA,eAAoBsE,YAAA,mCAAApE,OAAsD8F,QAAA,WAAmBhG,EAAA,OAAYsE,YAAA,mBAA6BtE,EAAA,OAAYsE,YAAA,cAAApE,OAAiCmJ,IAAAhF,EAAA3X,UAAkB2X,EAAAO,GAAA,KAAA5E,EAAA,OAAwBsE,YAAA,aAAuBD,EAAAO,GAAAP,EAAAQ,GAAAR,EAAA5X,WAAA4X,EAAAO,GAAA,KAAA5E,EAAA,oBAAkEE,OAAO4H,KAAA,YAAkBA,KAAA,aAAiB9H,EAAA,OAAYsE,YAAA,gCAA0CtE,EAAA,OAAYsE,YAAA,WAAqBtE,EAAA,OAAYE,OAAOmJ,IAAAhF,EAAA3X,YAAkB2X,EAAAO,GAAA,KAAA5E,EAAA,OAA0BsE,YAAA,aAAuBD,EAAAO,GAAAP,EAAAQ,GAAAR,EAAA5X,SAAA4X,EAAAO,GAAA,KAAA5E,EAAA,OAAmDsE,YAAA,eAAyBD,EAAAO,GAAAP,EAAAQ,GAAAR,EAAAtX,SAAA,MAAAsX,EAAAQ,GAAAR,EAAArX,eAAAqX,EAAAO,GAAA,KAAA5E,EAAA,OAAmFsE,YAAA,2BAAqCtE,EAAA,aAAkBsE,YAAA,wBAAApE,OAA2CnO,KAAA,UAAAmQ,KAAA,QAAAoH,MAAA,IAA2CvB,IAAKC,MAAA3D,EAAAiE,YAAsBjE,EAAAO,GAAA,UAAAP,EAAAO,GAAA,KAAA5E,EAAA,aAA+CsE,YAAA,wBAAApE,OAA2CnO,KAAA,UAAAmQ,KAAA,QAAAoH,MAAA,IAA2CvB,IAAKC,MAAA3D,EAAAmE,UAAoBnE,EAAAO,GAAA,sBAAAP,EAAAO,GAAA,KAAA5E,EAAA,oBAAkEE,OAAOgF,KAAAb,EAAA8D,mBAAA1a,IAAA4W,EAAA5W,IAAA8b,kBAAAlF,EAAAkE,wBAAuF,QDYzsF,EACA,KACA,WACA,OAIAI,EAASxI,QAAAC,OAAA,aACM,IAAAoJ,EAAAb,gEEpBuLc,GCYtMxE,OACAyE,IACA3X,KAAAqT,OACAuE,UAAA,IAGAhG,SACAiG,eADA,SACAC,GACA,OAAAlK,OAAA6G,EAAA,EAAA7G,CAAAkK,IAEAC,UAJA,SAIAzd,GACA,OAAAyT,KAAA8J,eAAAvd,IAEA0d,GAAA,IACAC,KAAA3d,EACA4d,OAAA,SACAC,IAAA,aAIAH,GAAA,cACAL,GAAArd,MC1BI8d,EAAYxK,OAAAC,EAAA,EAAAD,CACd8J,ECRQ,WAAgB,IAAa5J,EAAbC,KAAaC,eAAkD,OAA/DD,KAAuCG,MAAAD,IAAAH,GAAwB,YAA/DC,KAA+DsK,MAA+B,YAA9FtK,KAA8FgK,UAA9FhK,KAA8F4J,KAAA,IAA9F5J,KAA8FuK,GAAA,oBDWxH,EACA,KACA,KACA,MAIAF,EAAShK,QAAAC,OAAA,WACM,IEnB8LkK,GCmE7M7d,KAAA,cAEA+V,YAAA+H,QHlDeJ,WGoDfK,SCtEIpE,UACI5a,OADM,WAEF,OAAOsU,KAAKuG,OAAOpb,MAAMD,IAAIQ,SAIrCif,QAPW,WAUP3K,KAAK4K,eAGT/G,SACI+G,YADK,WACS,IAAAnF,EAAAzF,KACJ6K,EAAW7K,KAAKmG,MAAM2E,QAC5B,GAAID,EAAU,CACV,IAAME,EAAmBF,EAASE,iBAClCF,EAASE,iBAAmB,SAACC,GACL,WAAhBvF,EAAK/Z,QAGTqf,EAAiBC,SDmDrC7F,OACAnB,MACA/R,KAAA4N,OACAgK,UAAA,GAGAoB,QACAhZ,KAAA2B,QACAyR,SAAA,GAGA6F,UACAjZ,KAAAqT,OACAD,QAAA,KAIAvX,KAxBA,WAyBA,OACAqd,aAAA,OAIAtH,SACAuH,mBADA,SACAC,EAAAC,GAAA,IAAA7F,EAAAzF,KACAuL,EAAAF,EAAAjR,OAAA,SAAA4J,GACA,OAAAA,EAAAwH,SAGA/F,EAAA0F,aAAAnH,GACA,KAIA,WAAAuH,EAAA3iB,QAIA,IAAA2iB,EAAA3iB,SACAoX,KAAAmL,aAAAM,OAAAH,GAAAvQ,KAAA,GAAA2Q,mBAAA,KACA,IAMAC,YAvBA,SAuBA5B,GACA,OAAA/J,KAAA8J,eAAAC,GACAA,EAEA6B,EAAA7hB,EAAAyE,QAAAwR,KAAAkL,SAAAnB,IAGAD,eA9BA,SA8BAC,GACA,OAAAlK,OAAA6G,EAAA,EAAA7G,CAAAkK,MEvHI8B,aAAYhM,OAAAC,EAAA,EAAAD,CACd2K,ECTQ,WAAgB,IAAAjG,EAAAvE,KAAaD,EAAAwE,EAAAtE,eAA0BC,EAAAqE,EAAApE,MAAAD,IAAAH,EAAwB,OAAAwE,EAAAP,KAAAwH,QAAAjH,EAAAP,KAAAqH,SAAAnL,EAAA,OAAyDsE,YAAA,kBAA2BD,EAAA6G,mBAAA7G,EAAAP,KAAAqH,SAAA9G,EAAAP,OAAAO,EAAA4G,aAAAE,WAAA9G,EAAA4G,aAAAO,mBAAAnH,EAAAP,KAAA8H,WAAkqB5L,EAAA,cAAiFmH,IAAA,UAAAjH,OAAqBvD,MAAA0H,EAAAoH,YAAApH,EAAAP,KAAAjJ,SAAwCmF,EAAA,YAAiB8H,KAAA,UAAazD,EAAAP,KAAArJ,MAAA4J,EAAAP,KAAArJ,KAAAC,KAAAsF,EAAA,KAAgDsE,YAAA,iBAAAsE,OAAAvE,EAAAP,KAAArJ,MAAA4J,EAAAP,KAAArJ,KAAAC,KAAA2J,EAAAP,KAAArJ,KAAAC,KAAA,MAAmG2J,EAAAS,KAAAT,EAAAO,GAAA,KAAAP,EAAAP,KAAArJ,MAAA4J,EAAAP,KAAArJ,KAAA3I,MAAAkO,EAAA,QAAyEsE,YAAA,QAAApE,OAA2B4H,KAAA,SAAeA,KAAA,UAAczD,EAAAO,GAAAP,EAAAQ,GAAAR,EAAAP,KAAArJ,KAAA3I,UAAAuS,EAAAS,OAAAT,EAAAO,GAAA,KAAAP,EAAAG,GAAAH,EAAAP,KAAA,kBAAA+H,GAA0G,OAAAA,EAAAP,OAAooBjH,EAAAS,KAApoB9E,EAAA,OAAkC/V,IAAA4hB,EAAAhR,KAAAyJ,YAAA,oBAA6CuH,EAAAV,UAAAU,EAAAV,SAAAziB,OAAA,EAAAsX,EAAA,gBAAmE/V,IAAA4hB,EAAAhR,KAAAyJ,YAAA,YAAApE,OAA8C4L,WAAA,EAAAhI,KAAA+H,EAAAE,YAAA1H,EAAAoH,YAAAI,EAAAhR,SAAqEmF,EAAA,YAAiB/V,IAAA4hB,EAAApf,KAAAyT,OAAsBwJ,GAAArF,EAAAoH,YAAAI,EAAAhR,SAAkCmF,EAAA,gBAAqBE,OAAOvD,MAAA0H,EAAAoH,YAAAI,EAAAhR,SAAqCgR,EAAApR,MAAAoR,EAAApR,KAAAC,KAAAsF,EAAA,KAA0CsE,YAAA,OAAAsE,OAAAiD,EAAApR,MAAAoR,EAAApR,KAAAC,KAAAmR,EAAApR,KAAAC,KAAA,MAAgF2J,EAAAS,KAAAT,EAAAO,GAAA,KAAAiH,EAAApR,MAAAoR,EAAApR,KAAA3I,MAAAkO,EAAA,QAAmEsE,YAAA,QAAApE,OAA2B4H,KAAA,SAAeA,KAAA,UAAczD,EAAAO,GAAAP,EAAAQ,GAAAgH,EAAApR,KAAA3I,UAAAuS,EAAAS,QAAA,WAAkE,IAAl5D9E,EAAA,YAAsKE,OAAOwJ,GAAArF,EAAAoH,YAAApH,EAAA4G,aAAApQ,SAA6CmF,EAAA,gBAAqB4I,OAAOoD,4BAAA3H,EAAA0G,QAAwC7K,OAAQvD,MAAA0H,EAAAoH,YAAApH,EAAA4G,aAAApQ,SAAgDwJ,EAAA4G,aAAAxQ,MAAA4J,EAAA4G,aAAAxQ,KAAAC,KAAAsF,EAAA,KAAgEsE,YAAA,iBAAAsE,OAAAvE,EAAA4G,aAAAxQ,MAAA4J,EAAA4G,aAAAxQ,KAAAC,KAAA2J,EAAA4G,aAAAxQ,KAAAC,KAAA,MAA2H2J,EAAAS,KAAAT,EAAAO,GAAA,KAAAP,EAAA4G,aAAAxQ,MAAA4J,EAAA4G,aAAAxQ,KAAA3I,MAAAkO,EAAA,QAAyFsE,YAAA,QAAApE,OAA2B4H,KAAA,SAAeA,KAAA,UAAczD,EAAAO,GAAAP,EAAAQ,GAAAR,EAAA4G,aAAAxQ,KAAA3I,UAAAuS,EAAAS,QAAA,KAAgvC,GAAAT,EAAAS,UDY/jE,EACA,KACA,KACA,OAIA6G,EAASxL,QAAAC,OAAA,kBACM,IEpBwL6L,GCsBvMzJ,YAAA0J,YHFeP,WGIf/d,KAHA,WAIA,OACA1C,aAIAkb,UACAjb,QADA,SAAAe,GAEA,OADAA,EAAAma,OACApb,MAAAD,IAAAG,SAGAghB,WALA,WAMA,OAAArM,KAAA3U,QAAAC,SAIAsY,QAnBA,WAoBA5D,KAAA5U,QAAAkhB,GAAAjM,QAAApF,aClCIsR,EAAY1M,OAAAC,EAAA,EAAAD,CACdsM,ECRQ,WAAgB,IAAapM,EAAbC,KAAaC,eAA0BC,EAAvCF,KAAuCG,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,gBAA0BE,OAAOoM,aAAA,uBAAkCtM,EAAA,WAAgBE,OAAOqM,eAAA,IAAAC,iBAAzJ1M,KAAyJ0D,OAAA3I,KAAA4R,SAAzJ3M,KAAyJqM,WAAAO,KAAA,WAAAC,mBAAA,UAAAC,aAAA,UAAAC,oBAAA,YAAzJ/M,KAA4U0E,GAA5U1E,KAA4U,iBAAAgN,GAAsC,OAAA9M,EAAA,gBAA0B/V,IAAA6iB,EAAAjS,KAAAqF,OAAsB4D,KAAAgJ,EAAAf,YAAAe,EAAAjS,YAAuC,QDWne,EACA,KACA,KACA,MAIAwR,EAASlM,QAAAC,OAAA,YACM,IAAA2M,EAAAV,UEnBoLW,GCanMvgB,KAAA,UAEA2Z,UACAnc,IADA,WAEA,OAAA6V,KAAA0D,OAAA/W,MAEAqO,YAJA,WAKA,OAAAgF,KAAAuG,OAAApb,MAAAmP,SAAAU,eCZImS,aAAYtN,OAAAC,EAAA,EAAAD,CACdqN,ECTQ,WAAgB,IAAanN,EAAbC,KAAaC,eAA0BC,EAAvCF,KAAuCG,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,WAAqBsE,YAAA,aAAuBtE,EAAA,cAAmBE,OAAOzT,KAAA,iBAAAigB,KAAA,YAAyC1M,EAAA,cAAmBE,OAAOgN,QAAxMpN,KAAwMhF,eAA2BkF,EAAA,eAAoB/V,IAAvP6V,KAAuP7V,OAAY,gBDY7R,EACA,KACA,WACA,OAIAgjB,EAAS9M,QAAAC,OAAA,cACM,IAAA+M,EAAAF,oDEpB6LG,GCU5M3gB,KAAA,aACAmB,KAFA,WAGA,OACAyf,KAAA,IAGAjH,UACAkH,cADA,WAEA,OAAAxN,KAAAmG,MAAAsH,gBAAAtH,MAAAuH,OAGA7J,SACA8J,aADA,SACA3C,GACA,IAAA4C,EAAA5C,EAAA6C,YAAA,IAAA7C,EAAA8C,OACAC,EAAA/N,KAAAwN,cACAO,EAAAC,WAAAD,EAAAC,WAAAJ,EAAA,GAEAK,aANA,SAMAC,GACA,IACAC,EADAnO,KAAAmG,MAAAsH,gBAAAW,IACAC,YACAN,EAAA/N,KAAAwN,cACAc,EAAAtO,KAAAuO,QAAApI,MAAA1I,IAEA+Q,EAAA,KACAC,EAAA,KAQA,GALAH,EAAA1lB,OAAA,IACA4lB,EAAAF,EAAA,GACAG,EAAAH,IAAA1lB,OAAA,IAGA4lB,IAAAN,EACAH,EAAAC,WAAA,OACA,GAAAS,IAAAP,EACAH,EAAAC,WAAAD,EAAAW,YAAAP,MACA,CAEA,IAAAQ,EAAAL,EAAAM,UAAA,SAAA5K,GAAA,OAAAA,IAAAkK,IACAW,EAAAP,EAAAK,EAAA,GACAG,EAAAR,EAAAK,EAAA,GAGAI,EAAAD,EAAAV,IAAAY,WAAAF,EAAAV,IAAAC,YA9CA,EAiDAY,EAAAJ,EAAAT,IAAAY,WAjDA,EAmDAD,EAAAhB,EAAAC,WAAAG,EACAJ,EAAAC,WAAAe,EAAAZ,EACAc,EAAAlB,EAAAC,aACAD,EAAAC,WAAAiB,OCrDIC,aAAYrP,OAAAC,EAAA,EAAAD,CACdyN,ECTQ,WAAgB,IAAA/I,EAAAvE,KAAaD,EAAAwE,EAAAtE,eAAkD,OAAxBsE,EAAApE,MAAAD,IAAAH,GAAwB,gBAA0BsH,IAAA,kBAAA7C,YAAA,mBAAApE,OAA4D+O,UAAA,GAAiBC,UAAWC,MAAA,SAAAC,GAAiD,OAAxBA,EAAAC,iBAAwBhL,EAAAoJ,aAAA2B,OAAkC/K,EAAAgG,GAAA,oBDY9R,EACA,KACA,WACA,OAIA2E,EAAS7O,QAAAC,OAAA,iBACM,IEpBwLkP,GCgCvM9M,YAAA+M,WHZeP,WGafphB,KAFA,WAGA,OACAqZ,SAAA,EACAuI,IAAA,EACAnC,KAAA,EACAoC,eACAnS,eAGA8I,UACA9L,aADA,WAEA,OAAAwF,KAAAuG,OAAApb,MAAAmP,SAAAE,kBAEAS,OAJA,WAKA,OAAA+E,KAAAuG,OAAApb,MAAAmP,SAAAW,aAGAwI,OACAC,OADA,WAEA1D,KAAA4P,UACA5P,KAAA6P,oBAEA1I,QALA,SAKA/c,GACAA,EACA0lB,SAAAC,KAAAC,iBAAA,QAAAhQ,KAAAiQ,WAEAH,SAAAC,KAAAG,oBAAA,QAAAlQ,KAAAiQ,aAIAtF,QAhCA,WAiCA3K,KAAAmQ,WACAnQ,KAAA4P,WAEA/L,SACAuM,SADA,SACApD,GACA,OAAAA,EAAAjS,OAAAiF,KAAA0D,OAAA3I,MAEAsV,gBAJA,SAIApV,GAAA,IAAAwK,EAAAzF,KAAAkL,EAAAviB,UAAAC,OAAA,QAAAkH,IAAAnH,UAAA,GAAAA,UAAA,OACA2nB,KAkBA,OAjBArV,EAAA7J,QAAA,SAAA4b,GACA,GAAAA,EAAArS,MAAAqS,EAAArS,KAAAG,MAAA,CACA,IAAAyV,EAAA3E,EAAA7hB,EAAAyE,QAAA0c,EAAA8B,EAAAjS,MACAuV,EAAAhf,MACAmJ,SAAA8V,EACAxV,KAAAwV,EACA5jB,KAAAqgB,EAAArgB,KACAgO,KAAkB8Q,OAAlBuB,EAAArS,QAGA,GAAAqS,EAAA3B,SAAA,CACA,IAAAmF,EAAA/K,EAAA4K,gBAAArD,EAAA3B,SAAA2B,EAAAjS,MACAyV,EAAA5nB,QAAA,IACA0nB,KAAAzkB,OAAAC,IAAAwkB,GAAAxkB,IAAA0kB,QAIAF,GAEAH,SAzBA,WA0BA,IAAA3S,EAAAwC,KAAAxC,UAAAwC,KAAAqQ,gBAAArQ,KAAA/E,QADAU,GAAA,EAAAC,GAAA,EAAAC,OAAA/L,EAAA,IAEA,QAAAgM,EAAAC,EAAAC,IAAAwB,KAAA7B,GAAAG,EAAAC,EAAApG,QAAAuG,MAAAP,GAAA,OAAA8B,EAAA3B,EAAA1R,MAEAqT,EAAA9Q,MACAqT,KAAAuG,OAAAlI,SAAA,0BAAAZ,IALA,MAAApB,GAAAT,GAAA,EAAAC,EAAAQ,EAAA,aAAAV,GAAAI,EAAAO,QAAAP,EAAAO,SAAA,WAAAV,EAAA,MAAAC,KASA+T,QAlCA,WAuCA,OAJA5P,KAAA0D,OAAA/W,MAEAqT,KAAAuG,OAAAlI,SAAA,mBAAA2B,KAAA0D,SAEA,GAEAmM,iBAzCA,WAyCA,IAAApJ,EAAAzG,KACAsQ,EAAAtQ,KAAAmG,MAAA1I,IACAuC,KAAAyQ,UAAA,eAAAjU,GAAA,EAAAC,GAAA,EAAAC,OAAA5M,EAAA,IACA,QAAA6M,EAAAC,EAAAZ,IAAAsU,KAAA9T,GAAAG,EAAAC,EAAAjH,QAAAuG,MAAAM,GAAA,OAAAiB,EAAAd,EAAAvS,MACA,GAAAqT,EAAAmM,GAAA7O,OAAA0L,EAAA/C,OAAA3I,KAAA,CACA0L,EAAAN,MAAAuK,WAAAzC,aAAAxQ,GAEAA,EAAAmM,GAAAnP,WAAAgM,EAAA/C,OAAAjJ,UACAgM,EAAAF,OAAAlI,SAAA,6BAAAoI,EAAA/C,QAEA,QARA,MAAArH,GAAAI,GAAA,EAAAC,EAAAL,EAAA,aAAAG,GAAAI,EAAAN,QAAAM,EAAAN,SAAA,WAAAG,EAAA,MAAAC,OAaAiU,mBAxDA,SAwDAvV,GAAA,IAAAwV,EAAA5Q,KACAA,KAAAuG,OAAAlI,SAAA,yBAAAjD,GAAApN,KAAA,eACAyM,EAAAW,EAAAX,SACAmW,EAAAH,UAAA,WACAG,EAAAC,QAAA5mB,SACA8Q,KAAA,YAAAN,SAKAqW,iBAlEA,SAkEA1V,GAAA,IAAA2V,EAAA/Q,KACAA,KAAAuG,OAAAlI,SAAA,mBAAAjD,GAAApN,KAAA,SAAA5B,GAAA,IAAAoO,EAAApO,EAAAoO,aACAuW,EAAAX,SAAAhV,IACA2V,EAAAC,WAAAxW,EAAAY,MAIA6V,gBAzEA,WAyEA,IAAAC,EAAAlR,KACAA,KAAA6Q,QAAAvf,MACAyJ,KAAAiF,KAAA2P,YAAAlV,WAEAuF,KAAAuG,OAAAlI,SAAA,0BAAA2B,KAAA2P,aAAA3hB,KAAA,WACAkjB,EAAArB,sBAGAsB,aAjFA,SAiFA/V,GAAA,IAAAgW,EAAApR,KACAA,KAAAuG,OAAAlI,SAAA,wBAAArQ,KAAA,SAAA7B,GAAA,IAAAqO,EAAArO,EAAAqO,aACA4W,EAAA5T,UAAAnC,KAAA,SAAAoC,GAAA,OAAAA,EAAA1C,OAAAK,EAAAL,QAGAqW,EAAAJ,WAAAxW,EAAAY,MAGA4V,WAzFA,SAyFAxW,EAAAY,GACA,IAAAiW,EAAA7W,EAAA8C,OAAA,MACA+T,EACArR,KAAA6Q,QAAAvf,MACAyJ,KAAAsW,EAAA5W,WAKA,cAAAW,EAAAzO,KAEAqT,KAAA6Q,QAAA5mB,SAAA8Q,KAAA,YAAAK,EAAAX,WAEAuF,KAAA6Q,QAAAvf,KAAA,MAIAggB,SA1GA,SA0GA7T,EAAAuN,GACA,IACAgE,EAAAhP,KAAAoO,IAAAmD,wBAAAhE,KAEAiE,EADAxR,KAAAoO,IAAAC,YAFA,IAIAd,EAAAvC,EAAAyG,QAAAzC,EAAA,GAGAhP,KAAAuN,KADAA,EAAAiE,EACAA,EAEAjE,EAGAvN,KAAA0P,IAAA1E,EAAA0G,QACA1R,KAAAmH,SAAA,EACAnH,KAAA2P,YAAAlS,GAEAwS,UA3HA,WA4HAjQ,KAAAmH,SAAA,KCtLIwK,uBAAY9R,OAAAC,EAAA,EAAAD,CACd2P,ECVQ,WAAgB,IAAAjL,EAAAvE,KAAaD,EAAAwE,EAAAtE,eAA0BC,EAAAqE,EAAApE,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBsE,YAAA,sBAAApE,OAAyC7O,GAAA,yBAA4B2O,EAAA,eAAoBmH,IAAA,aAAA7C,YAAA,qBAAiDD,EAAAG,GAAAH,EAAA,sBAAA9G,GAAyC,OAAAyC,EAAA,eAAyB/V,IAAAsT,EAAA1C,KAAAsM,IAAA,MAAAuK,UAAA,EAAApN,YAAA,iBAAAsE,MAAAvE,EAAA6L,SAAA3S,GAAA,YAAA2C,OAA6GwJ,IAAM7O,KAAA0C,EAAA1C,KAAA8W,MAAApU,EAAAoU,MAAApX,SAAAgD,EAAAhD,UAA2DgD,IAAA,QAAc2R,UAAW0C,QAAA,SAAAxC,GAA2B,cAAAA,GAAA,IAAAA,EAAAyC,OAA8C,YAAexN,EAAAuM,iBAAArT,IAA0BuU,YAAA,SAAA1C,GAAgCA,EAAAC,iBAAwBhL,EAAA+M,SAAA7T,EAAA6R,OAA2B/K,EAAAO,GAAA,WAAAP,EAAAQ,GAAAtH,EAAA9C,KAAA3I,OAAA,YAAAyL,EAAA9C,KAAAG,MAA0NyJ,EAAAS,KAA1N9E,EAAA,QAAoFsE,YAAA,gBAAAyD,IAAgCC,MAAA,SAAAoH,GAAyBA,EAAAC,iBAAwBD,EAAA2C,kBAAyB1N,EAAAuM,iBAAArT,YAAyC8G,EAAAO,GAAA,KAAA5E,EAAA,MAAwBsH,aAAa7a,KAAA,OAAA8a,QAAA,SAAArd,MAAAma,EAAA,QAAAmD,WAAA,YAAsElD,YAAA,cAAA0N,OAAoC3E,KAAAhJ,EAAAgJ,KAAA,KAAAmC,IAAAnL,EAAAmL,IAAA,QAAsCxP,EAAA,MAAW+H,IAAIC,MAAA,SAAAoH,GAAyB/K,EAAAoM,mBAAApM,EAAAoL,iBAA0CpL,EAAAO,GAAA,QAAAP,EAAAO,GAAA,KAAAP,EAAAoL,YAAAhV,MAAA4J,EAAAoL,YAAAhV,KAAAG,MAAiKyJ,EAAAS,KAAjK9E,EAAA,MAA4F+H,IAAIC,MAAA,SAAAoH,GAAyB/K,EAAAuM,iBAAAvM,EAAAoL,iBAAwCpL,EAAAO,GAAA,QAAAP,EAAAO,GAAA,KAAA5E,EAAA,MAA+C+H,IAAIC,MAAA3D,EAAA0M,mBAA6B1M,EAAAO,GAAA,UAAAP,EAAAO,GAAA,KAAA5E,EAAA,MAAwC+H,IAAIC,MAAA,SAAAoH,GAAyB/K,EAAA4M,aAAA5M,EAAAoL,iBAAoCpL,EAAAO,GAAA,qBDa1gD,EACA,KACA,WACA,OAIA6M,EAAStR,QAAAC,OAAA,YACM,IAAA6R,EAAAR,sBErB6KS,GCmB5LzlB,KAAA,SAEA+V,YACAgH,SACAuD,UACAI,UACA8E,YAGAzH,SCrBIjH,OACIC,OADG,SACIsJ,GACiB,WAAhBhN,KAAKtU,QAAuBsU,KAAK3U,QAAQC,QACzCiX,IAAMlW,OAAOT,KAAqB,KAK9CymB,YATW,WAUPC,OAAOtC,iBAAiB,SAAUhQ,KAAKuS,gBAG3C5H,QAbW,WAcU3K,KAAKwS,aAElBjQ,IAAMlW,OAAOT,KAAqB,UAClC2W,IAAMlW,OAAOT,KAAqB,KAI1CiY,SACI2O,SADK,WAGD,OADa1C,SAASC,KAAKwB,wBACfrK,MA1BV,EADA,MA8BNqL,cANK,WAOD,IAAKzC,SAAStE,OAAQ,CAClB,IAAMgH,EAAWxS,KAAKwS,WACtBjQ,IAAMlW,OAAOT,KAAqB4mB,EAAW,SAAW,WAEpDA,GACAjQ,IAAMlW,OAAOT,KAAqB,QDTtDkC,KAZA,WAaA,OACA2kB,cAAA,IAIAnM,UACAjb,QADA,WAEA,OAAA2U,KAAAuG,OAAApb,MAAAD,IAAAG,SAGAK,OALA,WAMA,OAAAsU,KAAAuG,OAAApb,MAAAD,IAAAQ,QAGAgnB,SATA,WAUA,OACAC,aAAA3S,KAAA3U,QAAAC,OACAsnB,YAAA5S,KAAA3U,QAAAC,OACAG,iBAAAuU,KAAA3U,QAAAI,iBACAqB,OAAA,WAAAkT,KAAAtU,UAKAmY,SACAgP,mBADA,WAEA7S,KAAAuG,OAAAla,OAAAua,EAAA,SEjDIkM,aAAYjT,OAAAC,EAAA,EAAAD,CACduS,ECTF,WAA0B,IAAA7N,EAAAvE,KAAaD,EAAAwE,EAAAtE,eAA0BC,EAAAqE,EAAApE,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBsE,YAAA,cAAAsE,MAAAvE,EAAAmO,WAA6C,YAAAnO,EAAA7Y,QAAA6Y,EAAAlZ,QAAAC,OAAA4U,EAAA,OAA4DsE,YAAA,YAAAyD,IAA4BC,MAAA3D,EAAAsO,sBAAgCtO,EAAAS,KAAAT,EAAAO,GAAA,KAAA5E,EAAA,WAAqCsE,YAAA,sBAAgCD,EAAAO,GAAA,KAAA5E,EAAA,OAAwBsE,YAAA,iBAAAsE,OAAoCiK,YAAAxO,EAAAkO,gBAA8BvS,EAAA,UAAAqE,EAAAO,GAAA,KAAAP,EAAA,aAAArE,EAAA,aAAAqE,EAAAS,KAAAT,EAAAO,GAAA,KAAA5E,EAAA,yBDY9a,EACA,KACA,WACA,OAIA4S,EAASzS,QAAAC,OAAA,aACM,IAAA0S,EAAAF,UEpB4KG,GCmD3LnlB,KADA,WAEA,OACAolB,WACArlB,SAAA,IAEAslB,YACAtlB,WAEAgc,UAAA,EACA3D,QAAA,OACAJ,UAAA,SAAAC,EAAA3b,EAAA4b,GACA5b,EAAAxB,OAAA,EACAod,EAAA,IAAAC,MAAA,eAEAD,QAMAoN,SAAA,EACAzlB,IAAA,GACA0lB,UAAA,KAIAhB,YA3BA,WA4BA,IAAAR,EAAA7R,KAAA0D,OAAAmO,MACAA,EAAAlkB,KAAAkkB,EAAAjkB,WAKAoS,KAAArS,IAAAkkB,EAAAlkB,IACAqS,KAAAqT,UAAAxB,EAAAjkB,WAJA+a,SAAAuB,KAAAlK,KAAAsT,gBAQAzP,SACA0P,MADA,SACAvI,GACAA,EAAAiH,kBACAjH,EAAAuE,iBAGA,MADA+C,OAAAhP,MAAA0H,EAAAwI,QAAAxI,EAAAyI,QACAzT,KAAAkT,UAAArlB,UACAmS,KAAA0T,eAUAJ,aAjBA,WAoBA,2IAAAK,mBADA,sDAIAD,YAvBA,WAuBA,IAAAjO,EAAAzF,KACAA,KAAAmG,MAAA+M,UAAAxM,SAAA,SAAAC,GACA,IAAAA,EAsBA,SArBAlB,EAAA2N,SAAA,EACA3N,EAAAc,OACAlI,SAAAuI,EAAA,GACAjZ,IAAA8X,EAAA9X,IACAC,UAAA6X,EAAA4N,UACAxlB,SAAAgZ,IAAApB,EAAAyN,UAAArlB,YAEAG,KAAA,SAAAC,GACwB2lB,EAAxBC,MAAA,iBACApO,EAAAoL,QAAAvf,MAAAyJ,KAAA,QAEA+Y,MAAA,SAAA7lB,GACA,MAAAA,EAAA8lB,MACAC,WAAA,WACArL,SAAAuB,KAAAzE,EAAA6N,gBACA,MAGA7N,EAAA2N,SAAA,SC5HIa,uBAAYpU,OAAAC,EAAA,EAAAD,CACdoT,ECVQ,WAAgB,IAAA1O,EAAAvE,KAAaD,EAAAwE,EAAAtE,eAA0BC,EAAAqE,EAAApE,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBsE,YAAA,oBAA8BtE,EAAA,WAAgBmH,IAAA,YAAA7C,YAAA,aAAApE,OAAgDkH,MAAA/C,EAAA2O,UAAArN,MAAAtB,EAAA4O,WAAAtL,gBAAA,KAAAqM,iBAAA,QAA0F9E,UAAW+E,OAAA,SAAA7E,GAA0BA,EAAAC,iBAAwBD,EAAA2C,sBAA4B/R,EAAA,OAAYsE,YAAA,oBAA8BtE,EAAA,OAAYsE,YAAA,OAAApE,OAA0BmJ,IAAMnhB,EAAQ,WAAsBmc,EAAAO,GAAA,KAAA5E,EAAA,MAAuBsE,YAAA,UAAoBD,EAAAO,GAAA,cAAAP,EAAAO,GAAA,KAAA5E,EAAA,MAA4CsE,YAAA,UAAoBD,EAAAO,GAAA,eAAAP,EAAAO,GAAA,KAAA5E,EAAA,gBAAuDE,OAAOuH,KAAA,cAAmBzH,EAAA,QAAasE,YAAA,kBAA4BtE,EAAA,OAAYsE,YAAA,OAAApE,OAA0BmJ,IAAMnhB,EAAQ,aAA0Bmc,EAAAO,GAAA,KAAA5E,EAAA,YAA+BE,OAAOnO,KAAA,WAAA2V,YAAA,QAAAjb,KAAA,WAAAkb,gBAAA,MAA+EuH,UAAWgF,MAAA,SAAA9E,GAAyB,iBAAAA,IAAA/K,EAAA8P,GAAA/E,EAAAkE,QAAA,WAAAlE,EAAAnlB,IAAA,SAA+Foa,EAAAgP,MAAAjE,GAAf,OAAyChI,OAAQld,MAAAma,EAAA2O,UAAA,SAAAlN,SAAA,SAAA8B,GAAwDvD,EAAAwD,KAAAxD,EAAA2O,UAAA,WAAApL,IAAyCJ,WAAA,yBAAkC,GAAAnD,EAAAO,GAAA,KAAA5E,EAAA,aAAkCyE,aAAauC,MAAA,OAAAoN,gBAAA,QAAsClU,OAAQgT,QAAA7O,EAAA6O,QAAAnhB,KAAA,UAAAmQ,KAAA,UAAuDgN,UAAWlH,MAAA,SAAAoH,GAAiD,OAAxBA,EAAAC,iBAAwBhL,EAAAmP,YAAApE,OAAiC/K,EAAAO,GAAA,YAAAP,EAAAO,GAAA,KAAA5E,EAAA,aAAiDsE,YAAA,WAAqBD,EAAAO,GAAA,8CAAA5E,EAAA,KAA+DyE,aAAa5S,MAAA,WAAkBqO,OAAQ8J,KAAA,+BAAAC,OAAA,YAAyD5F,EAAAO,GAAA,iCDarpD,EACA,KACA,WACA,OAIAmP,EAAS5T,QAAAC,OAAA,YACM,IAAAiU,GAAAN,kCErB4KO,IC4B3L7nB,KAAA,YAEAmB,KAHA,WAIA,OACA2mB,OAAAC,GAAA3qB,EAAA,IAAAd,KAAAuB,QAIAqZ,SACA8Q,KADA,WAEA3U,KAAA0D,OAAAmO,MAAA+C,SACA5U,KAAA6Q,QAAAvf,MAAAyJ,KAAA,eAEAiF,KAAA6Q,QAAAgE,IAAA,MCjCIC,cAAYjV,OAAAC,EAAA,EAAAD,CACd2U,GCTQ,WAAgB,IAAAjQ,EAAAvE,KAAaD,EAAAwE,EAAAtE,eAA0BC,EAAAqE,EAAApE,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBsE,YAAA,sBAAgCtE,EAAA,aAAkBsE,YAAA,eAAApE,OAAkCxF,KAAA,cAAoBqN,IAAKC,MAAA3D,EAAAoQ,QAAkBpQ,EAAAO,GAAA,QAAAP,EAAAO,GAAA,KAAA5E,EAAA,UAAAA,EAAA,UAAuDE,OAAO2U,KAAA,MAAW7U,EAAA,MAAWsE,YAAA,8BAAwCD,EAAAO,GAAA,WAAAP,EAAAO,GAAA,KAAA5E,EAAA,MAAAqE,EAAAO,GAAA,eAAAP,EAAAO,GAAA,KAAA5E,EAAA,MAAAqE,EAAAO,GAAA,gBAAAP,EAAAO,GAAA,KAAA5E,EAAA,MAAgIsE,YAAA,kBAA4BtE,EAAA,MAAAqE,EAAAO,GAAA,aAAAP,EAAAO,GAAA,KAAA5E,EAAA,MAAoDsE,YAAA,cAAwBtE,EAAA,eAAoBE,OAAOwJ,GAAA,gBAAmBrF,EAAAO,GAAA,iBAAAP,EAAAO,GAAA,KAAA5E,EAAA,UAAmDE,OAAO2U,KAAA,MAAW7U,EAAA,OAAYE,OAAOmJ,IAAAhF,EAAAkQ,OAAAvN,MAAA,MAAAoC,OAAA,YAA+C,YDYlwB,EACA,KACA,WACA,OAIAwL,GAASzU,QAAAC,OAAA,YACM,IAAA0U,GAAAF,WEpB0KG,IC4BzLtoB,KAAA,UAEAmB,KAHA,WAIA,OACA2mB,OAAAC,GAAA3qB,EAAA,IAAAd,KAAAuB,QAIAqZ,SACA8Q,KADA,WAEA3U,KAAA0D,OAAAmO,MAAA+C,SACA5U,KAAA6Q,QAAAvf,MAAAyJ,KAAA,eAEAiF,KAAA6Q,QAAAgE,IAAA,MCjCIK,cAAYrV,OAAAC,EAAA,EAAAD,CACdoV,GCTQ,WAAgB,IAAA1Q,EAAAvE,KAAaD,EAAAwE,EAAAtE,eAA0BC,EAAAqE,EAAApE,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBsE,YAAA,sBAAgCtE,EAAA,aAAkBsE,YAAA,eAAApE,OAAkCxF,KAAA,cAAoBqN,IAAKC,MAAA3D,EAAAoQ,QAAkBpQ,EAAAO,GAAA,QAAAP,EAAAO,GAAA,KAAA5E,EAAA,UAAAA,EAAA,UAAuDE,OAAO2U,KAAA,MAAW7U,EAAA,MAAWsE,YAAA,8BAAwCD,EAAAO,GAAA,WAAAP,EAAAO,GAAA,KAAA5E,EAAA,MAAAqE,EAAAO,GAAA,eAAAP,EAAAO,GAAA,KAAA5E,EAAA,MAAAqE,EAAAO,GAAA,gBAAAP,EAAAO,GAAA,KAAA5E,EAAA,MAAgIsE,YAAA,kBAA4BtE,EAAA,MAAAqE,EAAAO,GAAA,aAAAP,EAAAO,GAAA,KAAA5E,EAAA,MAAoDsE,YAAA,cAAwBtE,EAAA,eAAoBE,OAAOwJ,GAAA,gBAAmBrF,EAAAO,GAAA,iBAAAP,EAAAO,GAAA,KAAA5E,EAAA,UAAmDE,OAAO2U,KAAA,MAAW7U,EAAA,OAAYE,OAAOmJ,IAAAhF,EAAAkQ,OAAAvN,MAAA,MAAAoC,OAAA,YAA+C,YDYlwB,EACA,KACA,WACA,OAIA4L,GAAS7U,QAAAC,OAAA,UACM,IAAA6U,GAAAD,WEnBXE,IAAe,WAAiB,IAAarV,EAAbC,KAAaC,eAA0BC,EAAvCF,KAAuCG,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBsE,YAAA,YAAsBtE,EAAA,OAAYsE,YAAA,kBAAApE,OAAqCmJ,IAAMnhB,EAAQ,QAAkBitB,IAAA,SAAvLrV,KAAsM8E,GAAA,KAAA5E,EAAA,OAAwBsE,YAAA,sBAAApE,OAAyCmJ,IAAMnhB,EAAQ,QAAwBitB,IAAA,SAA7SrV,KAA4T8E,GAAA,KAAA5E,EAAA,OAAwBsE,YAAA,qBAAApE,OAAwCmJ,IAAMnhB,EAAQ,QAAwBitB,IAAA,SAAlarV,KAAib8E,GAAA,KAAA5E,EAAA,OAAwBsE,YAAA,uBAAApE,OAA0CmJ,IAAMnhB,EAAQ,QAAwBitB,IAAA,YAAmB,WAAc,IAAatV,EAAbC,KAAaC,eAA0BC,EAAvCF,KAAuCG,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBsE,YAAA,mBAAhFxE,KAA6G8E,GAAA,0BAAA5E,EAAA,KAA2CsE,YAAA,YAAApE,OAA+B8J,KAAA,2BAAAC,OAAA,YAAvLnK,KAA4O8E,GAAA,eCDjpBwQ,ICmCzL3oB,KAAA,UAEA2Z,UACAU,QADA,WAEA,6BC/BIuO,cAAY1V,OAAAC,EAAA,EAAAD,CACdyV,GHTQ,WAAgB,IAAA/Q,EAAAvE,KAAaD,EAAAwE,EAAAtE,eAA0BC,EAAAqE,EAAApE,MAAAD,IAAAH,EAAwB,OAAAG,EAAA,OAAiBsE,YAAA,2BAAqCtE,EAAA,OAAYsE,YAAA,iBAA2BD,EAAAiR,GAAA,GAAAjR,EAAAO,GAAA,KAAA5E,EAAA,OAAkCsE,YAAA,aAAuBtE,EAAA,OAAYsE,YAAA,mBAA6BD,EAAAO,GAAA,WAAAP,EAAAO,GAAA,KAAAP,EAAAiR,GAAA,GAAAjR,EAAAO,GAAA,KAAA5E,EAAA,OAAgEsE,YAAA,uBAAiCD,EAAAO,GAAAP,EAAAQ,GAAAR,EAAAyC,YAAAzC,EAAAO,GAAA,KAAA5E,EAAA,OAAsDsE,YAAA,mBAA6BD,EAAAO,GAAA,uCAAAP,EAAAO,GAAA,KAAA5E,EAAA,KAAoEsE,YAAA,wBAAApE,OAA2C8J,KAAA,gBAAqB3F,EAAAO,GAAA,iBGW9kBsQ,IACF,EACA,KACA,WACA,OAIAG,GAASlV,QAAAC,OAAA,UACM,IAAAmV,GAAAF,wBCpBfntB,EAAAmB,EAAA0B,EAAA,sBAAAkT,KAcA5Q,UAAI+R,IAAIoW,KAcD,IAAIvX,KAEHpD,KAAM,YACN6E,UAAWoT,EACXxH,QAAQ,EACRH,WAEItQ,KAAM,mBACN6E,UAAW,kBAAMxX,EAAA4iB,EAAA,QAAAhd,KAAA5F,EAAAutB,KAAA,mBAKrB5a,KAAM,SACN6E,UAAWgW,GACXpK,QAAQ,IAGRzQ,KAAM,SACN6E,UAAWiW,GACXrK,QAAQ,IAGRzQ,KAAM,UACN6E,UAAWkW,GACXtK,QAAQ,IAGRzQ,KAAM,YACN6E,UAAWmW,GACXvK,QAAQ,IAIRzQ,KAAM,IACN6E,UAAWoT,EACXnO,SAAU,aACViH,YAAY,EACZnR,MACIE,YAAY,GAEhBwQ,WAEQ9Z,GAAI,EACJwJ,KAAM,aACNpO,KAAM,YACNiT,UAAW,kBAAMxX,EAAA4iB,EAAA,aAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,KACP4I,KAAM,YACNC,YAAY,EACZC,OAAO,OAMnBC,KAAM,IACN8J,SAAU,YACV2G,QAAQ,IAILwK,KAGHzkB,GAAI,KACJ5E,KAAM,KACNoO,KAAM,MACN6E,UAAWoT,EACXnO,SAAU,cACViH,YAAY,EACZ1G,MAAM,EACNzK,MACI3I,MAAO,OACP4I,KAAM,UACNC,YAAY,GAEhBwQ,WAEQ9Z,GAAI,KACJ5E,KAAM,WACNoO,KAAM,YACN8J,SAAU,aACV2G,QAAQ,EACR5L,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,4DAAA5iB,EAAA4iB,EAAA,YAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,OACP6I,YAAY,GAEhBwQ,WAEQ9Z,GAAI,KACJia,QAAQ,EACR7e,KAAM,WACNoO,KAAM,aACN6E,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,4DAAA5iB,EAAA4iB,EAAA,YAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,YAMnBT,GAAI,KACJ5E,KAAM,UACNoO,KAAM,UACN8J,SAAU,mBACV2G,QAAQ,EACR5L,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,uBAAA5iB,EAAA4iB,EAAA,aAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,OACP6I,YAAY,GAEhBwQ,WAEQ9Z,GAAI,KACJia,QAAQ,EACR7e,KAAM,kBACNoO,KAAM,OACN6E,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,uBAAA5iB,EAAA4iB,EAAA,aAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,UAIXrF,KAAM,cACNoO,KAAM,WACN6E,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,uBAAA5iB,EAAA4iB,EAAA,aAAAhd,KAAA5F,EAAAutB,KAAA,eACjBnK,QAAQ,EACR7Q,MACI3I,MAAO,KACP6I,YAAY,EACZY,SAAS,KAIb9O,KAAM,cACNoO,KAAM,WACN6E,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,uBAAA5iB,EAAA4iB,EAAA,aAAAhd,KAAA5F,EAAAutB,KAAA,eACjBnK,QAAQ,EACR7Q,MACI3I,MAAO,KACP6I,YAAY,EACZY,SAAS,OAMrBlK,GAAI,KACJia,QAAQ,EACR7e,KAAM,cACNoO,KAAM,cACN8J,SAAU,uBACVjF,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,kCAAA5iB,EAAA4iB,EAAA,uBAAA5iB,EAAA4iB,EAAA,iBAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,QAEXqZ,WAEQ9Z,GAAI,KACJwJ,KAAM,OACNpO,KAAM,kBACN6e,QAAQ,EACR5L,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,kCAAA5iB,EAAA4iB,EAAA,uBAAA5iB,EAAA4iB,EAAA,iBAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,UAIX+I,KAAM,WACNpO,KAAM,kBACNiT,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,kCAAA5iB,EAAA4iB,EAAA,uBAAA5iB,EAAA4iB,EAAA,iBAAAhd,KAAA5F,EAAAutB,KAAA,eACjBnK,QAAQ,EACR7Q,MACI3I,MAAO,KACP6I,YAAY,EACZY,SAAS,KAIbV,KAAM,WACNpO,KAAM,kBACNiT,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,kCAAA5iB,EAAA4iB,EAAA,uBAAA5iB,EAAA4iB,EAAA,iBAAAhd,KAAA5F,EAAAutB,KAAA,eACjBnK,QAAQ,EACR7Q,MACI3I,MAAO,KACP6I,YAAY,EACZY,SAAS,KAIb9O,KAAM,QACNoO,KAAM,aACN6E,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,kCAAA5iB,EAAA4iB,EAAA,uBAAA5iB,EAAA4iB,EAAA,iBAAAhd,KAAA5F,EAAAutB,KAAA,eACjBnK,QAAQ,EACR7Q,MACI3I,MAAO,QACP6I,YAAY,OAMxBtJ,GAAI,KACJ5E,KAAM,aACNoO,KAAM,aACN8J,SAAU,0BACViH,YAAY,EACZN,QAAQ,EACR5L,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,4DAAA5iB,EAAA4iB,EAAA,kCAAA5iB,EAAA4iB,EAAA,gBAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,OACP6I,YAAY,GAEhBwQ,WAEQ9Z,GAAI,KACJ5E,KAAM,aACNoO,KAAM,aACNyQ,QAAQ,EACR5L,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,4DAAA5iB,EAAA4iB,EAAA,kCAAA5iB,EAAA4iB,EAAA,gBAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,UAIXT,GAAI,KACJ5E,KAAM,WACNoO,KAAM,WACNyQ,QAAQ,EACR5L,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,4DAAA5iB,EAAA4iB,EAAA,kCAAA5iB,EAAA4iB,EAAA,gBAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,UAIXrF,KAAM,eACNoO,KAAM,WACN6E,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,kCAAA5iB,EAAA4iB,EAAA,uBAAA5iB,EAAA4iB,EAAA,iBAAAhd,KAAA5F,EAAAutB,KAAA,eACjBnK,QAAQ,EACR7Q,MACI3I,MAAO,KACP6I,YAAY,KAIhBtJ,GAAI,KACJ5E,KAAM,WACNoO,KAAM,WACNyQ,QAAQ,EACR5L,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,4DAAA5iB,EAAA4iB,EAAA,kCAAA5iB,EAAA4iB,EAAA,gBAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,cAU3BT,GAAI,KACJwJ,KAAM,OACNpO,KAAM,MACNiT,UAAWoT,EACXnO,SAAU,aACViH,YAAY,EACZ1G,MAAM,EACNoG,QAAQ,EACR3Q,YAAY,EACZF,MACI3I,MAAO,OACP4I,KAAM,YACNC,YAAY,GAEhBwQ,WAEQ9Z,GAAI,KACJwJ,KAAM,QACNpO,KAAM,QACNiT,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,4DAAA5iB,EAAA4iB,EAAA,WAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,OACP6I,YAAY,KAIhBtJ,GAAI,KACJwJ,KAAM,UACNpO,KAAM,UACNiT,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,4DAAA5iB,EAAA4iB,EAAA,aAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,OACP6I,YAAY,KAIhBtJ,GAAI,KACJwJ,KAAM,YACNpO,KAAM,YACNiT,UAAW,kBAAMxX,EAAA4iB,EAAA,aAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,OACP6I,YAAY,OAQxBtJ,GAAI,KACJwJ,KAAM,QACNpO,KAAM,OACNiT,UAAWoT,EACXnO,SAAU,kBACViH,YAAY,EACZ1G,MAAM,EACNoG,QAAQ,EACR3Q,YAAY,EACZF,MACI3I,MAAO,OACP4I,KAAM,YACNC,YAAY,GAEhBwQ,WAEQ9Z,GAAI,KACJwJ,KAAM,YACNpO,KAAM,YACNiT,UAAW,kBAAMxX,EAAA4iB,EAAA,aAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,OACP6I,YAAY,KAIhBtJ,GAAI,KACJwJ,KAAM,SACNpO,KAAM,SACNiT,UAAW,kBAAMxX,EAAA4iB,EAAA,UAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,OACP6I,YAAY,OAOxBtJ,GAAI,KACJ5E,KAAM,SACNoO,KAAM,UACN6E,UAAWoT,EACXxH,QAAQ,EACR7Q,MACI3I,MAAO,OACP4I,KAAM,aAEVyQ,WAEQ9Z,GAAI,KACJ5E,KAAM,SACNoO,KAAM,SACN+Q,YAAY,EACZlM,UAAW,kBAAMxX,EAAA4iB,EAAA,SAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,OAEXqZ,WAEQ9Z,GAAI,KACJ5E,KAAM,iBACNoO,KAAM,iBACN6E,UAAW,kBAAMxX,EAAA4iB,EAAA,cAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,cAMnBT,GAAI,KACJwJ,KAAM,QACNpO,KAAM,OACNiT,UAAW,kBAAMxX,EAAA4iB,EAAA,QAAAhd,KAAA5F,EAAAutB,KAAA,eACjB9Q,SAAU,gBACViH,YAAY,EACZ1G,MAAM,EACNzK,MACI3I,MAAO,OACP6I,YAAY,GAEhBwQ,WAEQ9Z,GAAI,KACJwJ,KAAM,UACNpO,KAAM,UACN6e,QAAQ,EACR5L,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,4DAAA5iB,EAAA4iB,EAAA,aAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,QAEXqZ,WAEQ9Z,GAAI,KACJwJ,KAAM,OACNyQ,QAAQ,EACR5L,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,4DAAA5iB,EAAA4iB,EAAA,aAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,cAQ3BT,GAAI,KACJ5E,KAAM,UACNoO,KAAM,UACN+Q,YAAY,EACZlM,UAAW,kBAAMxX,EAAA4iB,EAAA,QAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,QAGXqZ,WAEQ9Z,GAAI,KACJ5E,KAAM,YACNoO,KAAM,YACN6E,UAAW,kBAAMxX,EAAA4iB,EAAA,cAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,UAIXT,GAAI,KACJ5E,KAAM,gBACNoO,KAAM,gBACN6E,UAAW,kBAAMxX,EAAA4iB,EAAA,cAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,UAIXT,GAAI,KACJ5E,KAAM,WACNoO,KAAM,WACN6E,UAAW,kBAAMxX,EAAA4iB,EAAA,cAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,UAIXT,GAAI,KACJ5E,KAAM,gBACNoO,KAAM,gBACN6E,UAAW,kBAAMxX,EAAA4iB,EAAA,cAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,UAIXT,GAAI,KACJ5E,KAAM,cACNoO,KAAM,cACN6E,UAAW,kBAAMxX,EAAA4iB,EAAA,cAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,UAIXT,GAAI,KACJ5E,KAAM,qBACNoO,KAAM,6BACN6E,UAAW,kBAAMxX,EAAA4iB,EAAA,cAAAhd,KAAA5F,EAAAutB,KAAA,eACLnK,QAAQ,EACpB7Q,MACI3I,MAAO,UAIXT,GAAI,KACJ5E,KAAM,cACNoO,KAAM,uBACN6E,UAAW,kBAAMxX,EAAA4iB,EAAA,cAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,cAU3BT,GAAI,KACJ5E,KAAM,SACNoO,KAAM,gBACN6E,UAAWoT,EACXnO,SAAU,yBACV2G,QAAQ,EACRM,YAAY,EACZnR,MACI3I,MAAO,OACP4I,KAAM,eAEVyQ,WAEQ9Z,GAAI,KACJ5E,KAAM,WACNoO,KAAM,WACN6E,UAAW,kBAAMqW,QAAAC,KAAA9tB,EAAA4iB,EAAA,4DAAA5iB,EAAA4iB,EAAA,cAAAhd,KAAA5F,EAAAutB,KAAA,eACjBhb,MACI3I,MAAO,aAOvBwQ,GAAS,IAAIkT,KACbS,eAAgB,kBAAShtB,EAAG,IAC5B8R,iBAAYkD,GAAoB6X,MAGpCxT,GAAO4T,WAAW,SAACxM,EAAIyM,EAAM1gB,GACzB,IAAK,IAAIhM,EAAI,EAAGA,EAAIwU,GAAgBvV,OAAQe,IACxC,GAAIigB,EAAG7O,OAASoD,GAAgBxU,GAAGoR,KAE/B,YADApF,IAKR,IAAIhI,EAAMpC,IAAQC,IAAI,OAClB4C,EAAQ7C,IAAQC,IAAI,SACTgC,aAAa8oB,QAAQ5oB,OAClBC,GAAQS,EAEfwb,EAAGjP,OAA+B,IAAvBiP,EAAGjP,KAAKE,YAC1BmH,IAAUuU,QACV5gB,KACOiU,EAAGnP,SAAS+b,WAAW,cAAgBH,EAAK5b,SAAS+b,WAAW,aACvE7gB,IAEAA,GAAOoF,KAAM,YAPbpF,GAAOoF,KAAM,aAWrByH,GAAOiU,UAAU,WACbzU,IAAU9F,SAIdoH,EAAMoT,IAAI,gBAAiB,WACvB,IAAIvoB,EAAWX,aAAa8oB,QAAQ5oB,MACpC,IACIS,EAAWwoB,KAAKC,MAAMzoB,OACxB,MAAO6c,GACL7c,KAGJ,IAAIhB,EAAQgB,EAAShB,UACrBoV,IAAMlW,OAAOT,MACTe,KAAMwB,EAASxB,KACfC,OAAQuB,EAASvB,OACjBC,MAAOsB,EAAStB,MAChBC,OAAQqB,EAASrB,OACjBE,MAAOmB,EAASnB,MAChBC,QAASkB,EAASlB,QAClBC,SAAUiB,EAASjB,WAIvB,IAAI2pB,GACAC,GACItL,OAAQ,IAGhBre,EAAMiE,QAAQ,SAAC2lB,GACXF,EAASE,EAAKxlB,IAAMwlB,KAKF,SAAlBC,EAAmB7pB,GACnB,IAAI8pB,GAAkB,EAgBtB,OAfA9pB,EAAMiE,QAAQ,SAAC2lB,GACX,IAAIxlB,EAAKwlB,EAAKxlB,GACVslB,EAAStlB,KACTwlB,EAAKvL,OAAiC,IAAxBqL,EAAStlB,GAAIia,OAC3BuL,EAAKpc,KAAKE,YAAa,EACvBkc,EAAK/kB,MAAQ+kB,EAAKpc,KAAK3I,MAElBilB,IACDA,EAA0C,IAAxBJ,EAAStlB,GAAIia,SAGnCuL,EAAK1L,UAAY0L,EAAK1L,SAASziB,OAAS,IACxCmuB,EAAKvL,QAAUwL,EAAgBD,EAAK1L,aAGrC4L,EAEXD,CApBiBhB,MAwBrB,IAAIroB,GAAMpC,IAAQC,IAAI,OAClB4C,GAAQ7C,IAAQC,IAAI,SACTgC,aAAa8oB,QAAQ5oB,OAEpBC,IAAOS,KACnBkV,EAAMuQ,MAAM,iBACZtR,IAAMlE,SAASzS,KAAuBoC,KAAK,WACvCgmB,WAAW,WACP1Q,EAAMuQ,MAAM,kBACb,QAIIrR,wJCroBT0U,EAAS,SAACC,EAAKllB,GAAN,OAAe4N,OAAOuX,UAAUlW,SAASmW,KAAKF,KAAS,WAAallB,EAAO,KAEpF3F,EAAOgrB,IAAMC,QACfC,QAASC,GACT1mB,QAAS,IACT2mB,iBAAkB,SAAC5pB,EAAM6pB,GAgCrB,OAzCyBT,EAyCTppB,EAzCqB,YAEvB,SAACqpB,GAAD,OAASD,EAAOC,EAAK,QAuCTS,CAAO9pB,GA/BrB,SAAR+pB,EAAiBV,GACjB,IACIxqB,EAAMvC,EAAoB0tB,EAASC,EAAUC,EAAUruB,EADvDkoB,EAAQ,GAGZ,IAAKllB,KAAQwqB,EAGT,IAFA/sB,EAAQ+sB,EAAIxqB,cAESsrB,MACjB,IAAKtuB,EAAI,EAAGA,EAAIS,EAAMxB,SAAUe,EAC5BouB,EAAW3tB,EAAMT,IAEjBquB,MADcrrB,EAAO,IAAMhD,EAAI,KAEPouB,EACxBlG,GAASgG,EAAMG,GAAY,SAE5B,GAAI5tB,aAAiByV,OACxB,IAAKiY,KAAW1tB,EACZ2tB,EAAW3tB,EAAM0tB,IAEjBE,MADcrrB,EAAO,IAAMmrB,GAEHC,EACxBlG,GAASgG,EAAMG,GAAY,cAEdloB,IAAV1F,GAAiC,OAAVA,IAC9BynB,GAAS8B,mBAAmBhnB,GAAQ,IAAMgnB,mBAAmBvpB,GAAS,KAI9E,OAAOynB,EAAMjpB,OAASipB,EAAMqG,OAAO,EAAGrG,EAAMjpB,OAAS,GAAKipB,EAGrBgG,CAAM/pB,GAAQA,GAE3DqqB,iBAAiB,IAGrB7rB,EAAK8rB,SAASC,QAAQC,KAAK,gBAAkB,oCAG7ChsB,EAAKisB,aAAaC,QAAQlZ,IACtB,SAAC+B,GACG,IAAI1T,EAAMpC,IAAQC,IAAI,OAClB4C,EAAQ7C,IAAQC,IAAI,SAYxB,OAVA6V,EAAOgX,QAAUhX,EAAOgX,YACxBhX,EAAOgX,QAAQ,gBAAkB,oCAE7B1qB,IACA0T,EAAOgX,QAAP,IAAwB1qB,GAExBS,IACAiT,EAAOgX,QAAP,MAA0BjqB,GAGvBiT,GAEX,SAAC2T,GAEG,OADApT,QAAQC,IAAImT,GACLyD,EAAA1uB,EAAQ0E,OAAOumB,KAK9B1oB,EAAKisB,aAAaG,SAASpZ,IACvB,SAACoZ,GACG,IAAMzqB,EAAMyqB,EAAS5qB,KACrB,OAAiB,IAAbG,EAAI8lB,MACJ4E,mBACI3R,QAAS/Y,EAAIoD,KAAOpD,EAAI+Y,SAAW,OACnC/U,KAAM,QACN2mB,SAAU,MAGG,MAAb3qB,EAAI8lB,MAA6B,MAAb9lB,EAAI8lB,MACxB8E,aAAWC,QAAQ,2BAA4B,QAC3CC,kBAAmB,OACnBC,iBAAkB,KAClB/mB,KAAM,YACPjE,KAAK,WACJuU,IAAMlW,OAAOT,KACbooB,WAAW,WACPrL,SAASC,UACV,KAIJ6P,EAAA1uB,EAAQ0E,OAAOR,IAEfwqB,EAAA1uB,EAAQyE,QAAQP,IAG/B,SAAC+mB,GAOG,OANApT,QAAQC,IAAI,MAAQmT,GACpB2D,mBACI3R,QAASgO,EAAM3jB,KAAO2jB,EAAMhO,SAAW,SACvC/U,KAAM,QACN2mB,SAAU,MAEPH,EAAA1uB,EAAQ0E,OAAOumB,KAIf1oB,kECtHf,IAAA2sB,EAAA7wB,EAAA,QAAAA,EAAAG,EAAA0wB,GAA0d,qCCA1d,IAAAC,EAAA9wB,EAAA,QAAAA,EAAAG,EAAA2wB,GAA6e,mFCA7e,IAAAC,EAAA/wB,EAAA,QAAAA,EAAAG,EAAA4wB,GAAwb,sBCAxbjxB,EAAAC,QAAA","file":"static/js/app.js?hash=bca1dfe63ebade09debe","sourcesContent":["module.exports = __webpack_public_path__ + \"static/img/401.gif\";","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--11-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=8f0ac28e&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--11-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=8f0ac28e&lang=scss&scoped=true&\"","import store from '@/store';\r\nexport function parseTime(time, cFormat) {\r\n    if (arguments.length === 0) {\r\n        return null;\r\n    }\r\n    const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}';\r\n    let date;\r\n    if (typeof time === 'object') {\r\n        date = time;\r\n    } else {\r\n        if (('' + time).length === 10) time = parseInt(time) * 1000;\r\n        date = new Date(time);\r\n    }\r\n    const formatObj = {\r\n        y: date.getFullYear(),\r\n        m: date.getMonth() + 1,\r\n        d: date.getDate(),\r\n        h: date.getHours(),\r\n        i: date.getMinutes(),\r\n        s: date.getSeconds(),\r\n        a: date.getDay()\r\n    };\r\n    const timeStr = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {\r\n        let value = formatObj[key];\r\n        // Note: getDay() returns 0 on Sunday\r\n        if (key === 'a') {\r\n            return ['日', '一', '二', '三', '四', '五', '六'][value];\r\n        }\r\n        if (result.length > 0 && value < 10) {\r\n            value = '0' + value;\r\n        }\r\n        return value || 0;\r\n    });\r\n    return timeStr;\r\n}\r\n\r\nexport function formatTime(time, option) {\r\n    time = +time * 1000;\r\n    const d = new Date(time);\r\n    const now = Date.now();\r\n\r\n    const diff = (now - d) / 1000;\r\n\r\n    if (diff < 30) {\r\n        return '刚刚';\r\n    } else if (diff < 3600) {\r\n        // less 1 hour\r\n        return Math.ceil(diff / 60) + '分钟前';\r\n    } else if (diff < 3600 * 24) {\r\n        return Math.ceil(diff / 3600) + '小时前';\r\n    } else if (diff < 3600 * 24 * 2) {\r\n        return '1天前';\r\n    }\r\n    if (option) {\r\n        return parseTime(time, option);\r\n    } else {\r\n        return d.getMonth() + 1 + '月' + d.getDate() + '日' + d.getHours() + '时' + d.getMinutes() + '分';\r\n    }\r\n}\r\n\r\n// 格式化时间\r\nexport function getQueryObject(url) {\r\n    url = url == null ? window.location.href : url;\r\n    const search = url.substring(url.lastIndexOf('?') + 1);\r\n    const obj = {};\r\n    const reg = /([^?&=]+)=([^?&=]*)/g;\r\n    search.replace(reg, (rs, $1, $2) => {\r\n        const name = decodeURIComponent($1);\r\n        let val = decodeURIComponent($2);\r\n        val = String(val);\r\n        obj[name] = val;\r\n        return rs;\r\n    });\r\n    return obj;\r\n}\r\n\r\nexport function cleanArray(actual) {\r\n    const newArray = [];\r\n    for (let i = 0; i < actual.length; i++) {\r\n        if (actual[i]) {\r\n            newArray.push(actual[i]);\r\n        }\r\n    }\r\n    return newArray;\r\n}\r\n\r\nexport function param(json) {\r\n    if (!json) return '';\r\n    return cleanArray(\r\n        Object.keys(json).map((key) => {\r\n            if (json[key] === undefined) return '';\r\n            return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]);\r\n        })\r\n    ).join('&');\r\n}\r\n\r\nexport function param2Obj(url) {\r\n    const search = url.split('?')[1];\r\n    if (!search) {\r\n        return {};\r\n    }\r\n    return JSON.parse(\r\n        '{\"' +\r\n            decodeURIComponent(search)\r\n                .replace(/\"/g, '\\\\\"')\r\n                .replace(/&/g, '\",\"')\r\n                .replace(/=/g, '\":\"') +\r\n            '\"}'\r\n    );\r\n}\r\n\r\nexport function html2Text(val) {\r\n    const div = document.createElement('div');\r\n    div.innerHTML = val;\r\n    return div.textContent || div.innerText;\r\n}\r\n\r\nexport function objectMerge(target, source) {\r\n    /* Merges two  objects,\r\n     giving the last one precedence */\r\n\r\n    if (typeof target !== 'object') {\r\n        target = {};\r\n    }\r\n    if (Array.isArray(source)) {\r\n        return source.slice();\r\n    }\r\n    Object.keys(source).forEach((property) => {\r\n        const sourceProperty = source[property];\r\n        if (typeof sourceProperty === 'object') {\r\n            target[property] = objectMerge(target[property], sourceProperty);\r\n        } else {\r\n            target[property] = sourceProperty;\r\n        }\r\n    });\r\n    return target;\r\n}\r\n\r\nexport function scrollTo(element, to, duration) {\r\n    if (duration <= 0) return;\r\n    const difference = to - element.scrollTop;\r\n    const perTick = (difference / duration) * 10;\r\n    setTimeout(() => {\r\n        element.scrollTop = element.scrollTop + perTick;\r\n        if (element.scrollTop === to) return;\r\n        scrollTo(element, to, duration - 10);\r\n    }, 10);\r\n}\r\n\r\nexport function toggleClass(element, className) {\r\n    if (!element || !className) {\r\n        return;\r\n    }\r\n    let classString = element.className;\r\n    const nameIndex = classString.indexOf(className);\r\n    if (nameIndex === -1) {\r\n        classString += '' + className;\r\n    } else {\r\n        classString = classString.substr(0, nameIndex) + classString.substr(nameIndex + className.length);\r\n    }\r\n    element.className = classString;\r\n}\r\n\r\nexport const pickerOptions = [\r\n    {\r\n        text: '今天',\r\n        onClick(picker) {\r\n            const end = new Date();\r\n            const start = new Date(new Date().toDateString());\r\n            end.setTime(start.getTime());\r\n            picker.$emit('pick', [start, end]);\r\n        }\r\n    },\r\n    {\r\n        text: '最近一周',\r\n        onClick(picker) {\r\n            const end = new Date(new Date().toDateString());\r\n            const start = new Date();\r\n            start.setTime(end.getTime() - 3600 * 1000 * 24 * 7);\r\n            picker.$emit('pick', [start, end]);\r\n        }\r\n    },\r\n    {\r\n        text: '最近一个月',\r\n        onClick(picker) {\r\n            const end = new Date(new Date().toDateString());\r\n            const start = new Date();\r\n            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);\r\n            picker.$emit('pick', [start, end]);\r\n        }\r\n    },\r\n    {\r\n        text: '最近三个月',\r\n        onClick(picker) {\r\n            const end = new Date(new Date().toDateString());\r\n            const start = new Date();\r\n            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);\r\n            picker.$emit('pick', [start, end]);\r\n        }\r\n    }\r\n];\r\n\r\nexport function getTime(type) {\r\n    if (type === 'start') {\r\n        return new Date().getTime() - 3600 * 1000 * 24 * 90;\r\n    } else {\r\n        return new Date(new Date().toDateString());\r\n    }\r\n}\r\n\r\nexport function debounce(func, wait, immediate) {\r\n    let timeout, args, context, timestamp, result;\r\n\r\n    const later = function() {\r\n        // 据上一次触发时间间隔\r\n        const last = +new Date() - timestamp;\r\n\r\n        // 上次被包装函数被调用时间间隔last小于设定时间间隔wait\r\n        if (last < wait && last > 0) {\r\n            timeout = setTimeout(later, wait - last);\r\n        } else {\r\n            timeout = null;\r\n            // 如果设定为immediate===true，因为开始边界已经调用过了此处无需调用\r\n            if (!immediate) {\r\n                result = func.apply(context, args);\r\n                if (!timeout) context = args = null;\r\n            }\r\n        }\r\n    };\r\n\r\n    return function(...args) {\r\n        context = this;\r\n        timestamp = +new Date();\r\n        const callNow = immediate && !timeout;\r\n        // 如果延时不存在，重新设定延时\r\n        if (!timeout) timeout = setTimeout(later, wait);\r\n        if (callNow) {\r\n            result = func.apply(context, args);\r\n            context = args = null;\r\n        }\r\n\r\n        return result;\r\n    };\r\n}\r\n\r\n/**\r\n * This is just a simple version of deep copy\r\n * Has a lot of edge cases bug\r\n * If you want to use a perfect deep copy, use lodash's _.cloneDeep\r\n */\r\nexport function deepClone(source) {\r\n    if (!source && typeof source !== 'object') {\r\n        throw new Error('error arguments', 'shallowClone');\r\n    }\r\n    const targetObj = source.constructor === Array ? [] : {};\r\n    Object.keys(source).forEach((keys) => {\r\n        if (source[keys] && typeof source[keys] === 'object') {\r\n            targetObj[keys] = deepClone(source[keys]);\r\n        } else {\r\n            targetObj[keys] = source[keys];\r\n        }\r\n    });\r\n    return targetObj;\r\n}\r\n\r\nexport function uniqueArr(arr) {\r\n    return Array.from(new Set(arr));\r\n}\r\n\r\n// 暂存数据\r\nexport function onSession(opt, key, payload) {\r\n    const result = new Promise(function(resolve, reject) {\r\n        try {\r\n            if (!opt || !key) {\r\n                reject({msg: '参数不全'});\r\n            };\r\n            if (opt === 'save') {\r\n                if (store.state.tagsView.cachedViews.includes(key)) {\r\n                    if (!payload) {\r\n                        reject({msg: '参数中没有缓存对象数据'});\r\n                    }\r\n                    sessionStorage.setItem(key, JSON.stringify(payload));\r\n                    resolve({msg: '缓存对象成功'});\r\n                } else {\r\n                    sessionStorage.removeItem(key);\r\n                    resolve({msg: '销毁非缓存列表缓存对象数据'});\r\n                }\r\n            } else if (opt === 'get') {\r\n                const session = JSON.parse(sessionStorage.getItem(key));\r\n                refreshClearSession(key); // 监听刷新事件清空\r\n                if (session) {\r\n                    resolve({session, msg: '找到缓存数据'});\r\n                } else {\r\n                    reject({msg: '没有找到缓存对象数据'});\r\n                }\r\n            } else if (opt === 'clear') {\r\n                sessionStorage.removeItem(key);\r\n                resolve({msg: '清楚缓存成功'});\r\n            }\r\n        } catch (e) {\r\n            reject(e);\r\n        }\r\n    });\r\n    return result;\r\n}\r\n\r\nexport function refreshClearSession(key) {\r\n    window.addEventListener('beforeunload', e => {\r\n        clearSession(key);\r\n    });\r\n}\r\nexport function clearSession(key) {\r\n    try {\r\n        if (!key) return;\r\n        sessionStorage.removeItem(key);\r\n    } catch (e) {\r\n        console.log(e);\r\n    }\r\n}\r\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./401.vue?vue&type=style&index=0&id=151e7c2b&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./401.vue?vue&type=style&index=0&id=151e7c2b&lang=scss&scoped=true&\"","module.exports = __webpack_public_path__ + \"static/img/404.png\";","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./error.vue?vue&type=style&index=0&id=087342ab&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./error.vue?vue&type=style&index=0&id=087342ab&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./404.vue?vue&type=style&index=0&id=5cc7246d&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./404.vue?vue&type=style&index=0&id=5cc7246d&lang=scss&scoped=true&\"","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--11-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--11-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=style&index=0&lang=scss&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJgAAACKCAYAAABW3IOxAAAAAXNSR0IArs4c6QAAElhJREFUeAHtnXuQHMV9x7tndvdOQkgCWZKxkITEQ5YB87AVCT9iEqgyTsXlyA42QVRcScXYzvOPkKeJLSrOy8RVxMSVBNuVqrhIxS7KJk5BKlWpQKiKX4hgwOII6CzLAk6H0Pt0e/uY6Xx+p7vT3Gl2b2e3Z2d2t7vqdzuP7l//+tvf6+75dU+PVi5kioAxZl01UDtMEG43Wu/AmOuUUYeVVqNKmVGjvX2+HAdqX6mkfqS1Pp2pwQkz1wnju+gdIACZlpTr6npU7FChETIh5uJkKvWYPkO+fUp7oyZUowWt9hWLahTyHU2mK/3YjmApYjxlzGWmSuukQ4iktwP2NZCsmFqWWh9D96hWZp+nvb2lgvompNubWn4tKHYEawGkVqJAnBWVutpmZlono2mdjFnVSlqbcTytnynSpHlaXYPeV5F3QLIDNvNIossRLAlaM3Ehk1etqitDIZGidTKMnbTayvVM8IRAZQj1dNHXF9N9blhQpBc4f2dW3WcmgCwAIPenEGdNJVDbGYhDpOmB+DaunZ+14VrpV31fjxb96dZqeRN7vs29m4WITeKkcssRbAGsEKdUq6lrQ7o6M9M6GWU2LYiW6Snd4HO+p8sFX70dQ7wWjfkW8T4IyYIW41uJNvAEKxuzUQbiSocMwqdbp+sh2ZAVdC0qgRhVur8nS75+A79b2lT9AHo+3mbatpINHMEgz/JKqH7ZmPBtJtA3J3cTtIVz+4m0PsyYfS8D9ytRsrp9RXMpd0Oye+bOUj4YOIJNVsJvQKqdgitAh8aocQbIr/P0d4pLNbmMDOPsXKk9tSYMzUrOux6wbaTg6SN0g9vI3HaLeif6v9SNQg0UwSZr5ndVGP51EmCpiJPEH4OAxwFLBskyhilyvozBzyp+L5JxWxKdjeKSl+j+Xqmgl0D66xrFs3Bd8tlJfv9mQVdTFQNDMMj1Tm3M45Ch0BSRhDeppBqtnXjXZXrnlApV1TAKxwe2hHsreEBYw/015NsYazzwdIM/KBT0ZURa6GZIaFHL0eWf5SZs/E7LKdqI2LjQbSjLaxIqd3W5ap6ma1yXiY2MowB6nLyPQbZJ7dE1Kzz6Ri2hG6zMdINZuD2OYNO7IJn4ylIJfU8wyOVN1cx/8MuAPj+BSq0PFabnFddnbNUB8r8Be8bSsKNVH0oaeXdF51Q13J03cknB8WM9TUeaNbnElI3Iv4NRM0etxGsr9HULRsv1XoAT8HJVToZozw8V9VvaqrH0Ej2G6ltoyao2s+jbFmzSmPX4IB7MG7mowIlSUa+xWYmWdP0Mev7JNl59STBAKqqa+XoWqxkWq+yCr1+iOX3DYvEyuv8R8r3bZt59SbByDV+XmV7QZxOrjnUx7tpT8FL1b3VsIwq22lAyq6PvCDZZMbfy+P/bswXMz68ew4FqtfLyU7bGlvQVwVhBeoXW5iuNi5vNHcZdhkH9cXI/LxsLssu1bwjGuGuJqZmH+M3CYdm0Bnlp49tM/Qxc6yWgWJ02aYpyyjenauHfMXF9dcrZJFZP6/UiKyG2J07YJwn6ogVjGujXINdH81YnkGuKrlFWQvTNP3JSjHueYNWquZY5xvuTFrwb8Zln3INLQjzlAxt6n2BBeBdPjaxm0CZPtYg9e5jEfleebMrClp5vuk9Vwl1CLqZf9nuePljy1YTvqxKku4iB9eUM+m0v1lu8nrR+fbioB7rlmgWp5wkmBYFEOjBmcxCqzbX6bNFkaao+4fvmh3RVRwu+Z3iau5CLl5LggrOx7B/h7xpF68AO7KOI9gXBogWKHrPmakU9UG+rB/SetWD6Fq1dQEv3Eu8QjtHCVYueWso4aT1xraxsQPcTEPmno3YM8nFfEyyuYmnt/CAwlweBujx6n0WARwqe9+OCF55kOodDbzXE20z8lpdD02LuZ42X7D3hwgwCA0ewRjVvQrOqFgar5K2PMyGQl0JqdK//xxzi6wzYA1qmFazhugTSrZiNNfsrcSHXBOebZq+53wH2z7RS+RCpWAvMFnrXLdPvG80kohscLxW8l30dln3PG+ZR/E2QcATy3dSK3kGK41qwNmqbV9nWTlWDtWeSnhnbrT6/kNclOG2U0F6SnveD2YOiY03unzUGQkewGFDcJXsIOILZw9JpikHAESwGFHfJHgKOYPawdJpiEHAEiwHFXbKHgCOYPSydphgEHMFiQHGX7CHgCGYPS6cpBgFHsBhQ3CV7CDiC2cPSaYpBwE1vxIAy4Jd+gUn+V1rA4Ani3CHr65rFdQRrhs5g3ltCsUUWC7cRQbYX/XiziK6LbIaOu7cYAnfS2t3TLJIjWDN03L1WEPg0JPtko4iOYI2QcdeTIPC3kOxDcQkcweJQcdeSIiA8ks3+blyY0BFsISLuvF0E5P3ThyGZfEZwLjiCzUHhDiwgIC/DyJ64cy++OIJZQNWpmIfARZzJtvHT31VyBJuHjTuxhIC8c/ooJJPP7bjgEEgFAfmW5UOOYKlg65TOIHCTI5jjQqoIOIKlCq9T7gjmOJAqAo5gqcLrlDuCOQ6kikBPEww/yw2+7z3FvlynU0XJKW8bgZ5bcAipZDHcLyG/gVy/+owrr16tq2fLNXO0UgtWhopPtmSxN2vb1dC/CdnErzcCxLoUSz+B/Cpy4SJWlys1M1KuhyeqdcP3svWbSe8vkqaj22zfFPqe6ukeoSMA4hPXc00wSCEVdgsirdX7kLbsZYfWE3yc9AW+fltmQ7mLjNJXoLstXdgQGxzBYmHJJ8GofGmhfgX5dWRzrOkdXOSrIIf5OsiLtHB1NgneQH6bOlA3ndQRLBbBfBGMipYNdKW1kjFWKy8exJYq6cXQqJch3GilFupqIIQ2FyfV4QgWi1j2BINUsovzrchvIjtizezyRfbb38cDw0E+sFXgeAs2LvoJZEew2ErKjmBU2gZMkleePoZMrx2KNTH7i2EtVCO0cIdo4ZaGodrKnvorF5rlCLYQkenz7hMMYt1M1tINvh9J9cluuoj2/9T4msjeybo5DOFWmFBdCeHOcwSLBbo7BINUy8n+o4gQa0usKb17cbJSV4+VCurneCy1+mTau5DMWZ4uwSDWVWQlpLoDWTaXbf8cvERR5FPJ2/qnSFZLUrfuyYdUonMnIsR6j1Vz86PsJ5jyMnID4lqtJvViDRyIJYv975yRNzXJs5dvjWO8tFrytGv9n7OXgWlg+2sdEwxivRvl0lp9ECk2yKjXL0s3+CwiXWHX/HM9DNppbL8PubdtgkGsN/INn78s+upnUbS+h8FoZroAtQe5DpEHFReaI1Dl9j8gn2Vbp9ckatsEK1eDrzHl8mEUhSj5AR+D4qOf6gp0in+r14MA9T1kK+K+QbR4bcoeYV9FdsOHA9HobRFsqm7eFwbho1FFcoxymUF+Zubzd/Ju3MaFcXJ+HmLfd5FLkH4dR1I0q+EbaLubuh+J05qYYHSNS6eqZi/OxUviFM5emyHbs0I2vqF9KRk1jT+bLsPf75P3amRThjb0Utb/ibF/RD3LEKJhSEywqUpwL//mdzXUGHNDyMaSmef4uOdhutG8ke1pTF6K9JsDOKYmrFySoYMQ67FWtCUiWLVqrgmU2UMr1tEjOsb9kJZtHLJtwgDry3FaKThx9iIydnhri/EHPZrgJV3hw0mAaJlgkMpjhcF3WIr8U0kyWCwuBu+dIdslXSLbPmwSt4O82u7C4gjsJ8pnkAepKxmjJgotE4xx12+FJvxCIu0JI1OAEcg2Rsu2EcNkibTNcBBlryDbkZbLbdOAHtN1CHs/izxAvZz9lHnCQrQENK3XOpYcj/B7fkL9bUenUPIx9lch24YOySb+GPG+C7E66trbLkxvJZTW/XPI31AHk52a3hLBJishj6JG5hczCRT0Rcj2CmRbj8GXtWiEAPUcsg0ZbjHNIEcTMkkP9VfgLdhZCYsSrFI3HwiC8GEruVlQQuH3QbaDBQ+y6ViyCVBPIdciXWtxLRQtKxXS/T2AiPddukWroSnB6BKXMfZ6Hp9XLqeCeOF2lFfFDhZ8vQ6ybQQZ8WWJ932VVZT6U5kM2B9EPgOxZCCfSmhKsMlqcJ8y6ndSydmiUgAKhor6dQqz1qLaflb1rxTuU+AmrodUQ0OC4fN6Oz6v79KK5X5Zs+/rl0u+TvwmUKrI5lP5f2HWH0MscZZ2JcQSTEiFz+tJfF6yiiDXAbAmhou6H1fL2sT9SZQJsWR6p6sh9rG9XKdb7AFyCVJFv30fTVeRziYzmYAW77tMSGcSzmnByvI6WY2BvTHnZWJRgkw1c5vDBb06QZJBiXqAgu5Gvgq5ZDoss3BOC2aq5ov4vHJPLkGMcZds/O/CWQTEqfxnyN9DLFnTlnmYRzB8Xr+Iz+vnM7eqBQM8Tx/ytHpjC1EHIcoJCnkvch/EOp2nAs91kXSJK3h7mT57+uWNPNl4ji2AWMMtUZwz/pwYA3OhTEnvR8T7fjSPpZ5rwdiH4S8wUN4Myn3Ai38Kcl2Ye0PTM1C8719B/hRivZpeNp1rnm4E8HntwOf1P7RiXucq09UAoCdxSyxPN5fcajdY9i/In4DDaG6tjBhWgFQFVko80AvkErtxSwxF7B+kw/+msHdBrKZLlPMGiDdVV3dBrqvzZlicPbgljjD3OGgEE1/WByDWjb1GLqlDjy3+buR1oCNxFZqna4Brhnw9SJPYsrLhE8jVlP1beaqLJLboseM1tizV1VLB+9+SH0762mM1Qv6eJFkxcYzu8YIkhevRuOJm+DzyOYiVK5dDO3ieIVgkJYUKqcxn8JAfw890GWTbELmdySE2VRjY93vXKB73f0RkAG99XVYmFUem5xBsoSG4BEaGCvpQ0ffWsy4MwnU/FAteGTuWdD/nruX4CDn9PsR6vms5dimjRQkWtcMvePuHff0TXqRdw5uOsrAv9eBpfQqnar+uTH0KAOXJ8PHUgcwog0QEi9rIVM3YkqLH8mVzASR4S1pujqGiZ+iq+81p/2OwvBv5Z8glvq2+DW0TLIqI53tHadle4KWMpZDhKvGtRe+3e8za+xOlQl9NaB8Diz9H7odYlXZx6aV0VggWLTBPoRNF34yUitBOs0Fum98MogJCxn40jlHtPXssKxu+iMjUjpBsYIJ1gkWRgx7VkqefZ1lNnXHbVsjW8jIgnmQncUssjerrwWPp/r6OyF4O+3vQ/o5NTpVgUeukRYIwI7gbJmnZ5FtBDddyEXeKeMPR9D14LFM7v0dZnuxB262Z3DWCLbQYx+5LeOaPez6bnxgzz0PPvYApody/bLKwTDPnMrXzhxCrZ73vDcrV1uXMCBa1tljQB0u+GmfItR7CLWPs1XJXGtWT8bE4R+9BvgS5Ml2mnDEO87LPBcGiFp0/7KvzhnpqZD87tXMvxJqIlsUd53AzEGYLqJeeIFhfTu3Y/qew4q+ybVQP6OvbqR3b2DuCJUNUpnbkyfCxZMkGN3bul0jnpGoOYMcdyDZHrmQ14lqw5njJPlkytfMFiDUQUzvN4Uh+1xEsHrPZqR3ZMyuXr4PFm52/q45g8+tk4Kd25sPR+Zkj2FkMn+BQ1mYN9NTOWTjsHDmCKfUCUP4BxHJTO3Y4NU/LID9FjoPEJ5GrHLnmccLqySC2YG5qxyqFmisrsBp5gumZQdghcHZq59O0WGPNYXF3bSHgrV3hrwXwXcgjSNtfdLBlUEp6HkXvNZTvY4gjV0ogx6mdN6t88qRZVQ7DDxsd7mLC+R0sCpx3P06B7WvLhj3W61gbGrqpHdsVlFBfQwIdK5uNlUp4u1Lh7TiHrkqot+3olggmUzufQvr+rZ22ge5SwoYEi+Y/PmHequr1XaHSt6X9pneHBHNTO9GKy8FxSwSbtVO6zMMT6t2hCW7nC6O3stTZ+iZwbRLMTe3MVlLOfhMRLGo7ZCuOnwpuYX3gLsj2flo2K28AJSTY7NSO7AH/o6h97jgfCLRNsKj5r/FNI3My2MnHb3ah8GbI1/YLGwkIJlM7sjbr+1Fb3HG+ELBCsGiRDp0ya1QYfmT64cCoHdF7rRy3QDA3tdMKkDmJY51g0XKNHzebcXnwFIrbw6g3R+81Om5CMJna2Y18mVar3ii9u54vBFIlWLSoh0+b6+u1+u3MHNzGzMG66L3ocQzB5PuPn0dkQzb31k4UrB447hrBZrFgfOYdmqi/RwcaZ676EGRbOXtPfiMEc1M7UWDccXIEINvQ+Mn6zrHj9YfGTtTLsp3nqamAy+YR5MrkGl0Kh0ADBI4Ys/zUVPj4sdPBPQ2iuMsOAYeAQ2A+Av8Pby5Qwk3kUm8AAAAASUVORK5CYII=\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--11-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollPane.vue?vue&type=style&index=0&id=6d85633c&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--11-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollPane.vue?vue&type=style&index=0&id=6d85633c&lang=scss&scoped=true&\"","export * from './common/app.js';\r\nexport * from './common/system.js';\r\nexport * from './common/user.js';\r\nexport * from './dashboard/dashboard.js';\r\nexport * from './hr/perfLaunch.js';\r\nexport * from './hr/myPerfs.js';\r\nexport * from './hr/reviewPerfs.js';\r\nexport * from './sale/addSale.js';\r\nexport * from './redpack/batchReview.js'\r\nexport * from './redpack/prizepoolReview.js'\r\nexport * from './redpack/repackDetail.js'\r\nexport * from './redpack/sysinfoReview.js'\r\nexport * from './redpack/dealReview.js'","/* mutation */\r\nexport const ADD_APP_ROUTES = 'ADD_APP_ROUTES';\r\nexport const TOGGLE_SIDEBAR = 'TOGGLE_SIDEBAR';\r\nexport const CLOSE_SIDEBAR = 'CLOSE_SIDEBAR';\r\nexport const TOGGLE_DEVICE = 'TOGGLE_DEVICE';\r\n/* action */\r\nexport const GET_QINIU_TOKEN = 'GET_QINIU_TOKEN';\r\n","/* mutation */\r\nexport const SET_SYSTEM_STATE = 'SET_SYSTEM_STATE';\r\n/* action */\r\nexport const FETCH_USER_LIST = 'FETCH_USER_LIST';\r\nexport const FETCH_ALL_ROLES = 'FETCH_ALL_ROLES';\r\nexport const FETCH_ALL_USERS = 'FETCH_ALL_USERS';\r\nexport const ADD_USER = 'ADD_USER';\r\nexport const DEL_USER = 'DEL_USER';\r\nexport const FETCH_USER_ROLE = 'FETCH_USER_ROLE';\r\nexport const UPDATE_USER_ROLES = 'UPDATE_USER_ROLES';\r\nexport const IMPORT_USER = 'IMPORT_USER';\r\n","/* mutation */\r\nexport const SET_USER_INFO = 'SET_USER_INFO';\r\nexport const CLEAR_USER_TOKEN = 'CLEAR_USER_TOKEN';\r\n/* action */\r\nexport const LOGIN = 'LOGIN';\r\nexport const LOGOUT = 'LOGOUT';\r\nexport const FETCH_USER_INFO = 'FETCH_USER_INFO';\r\nexport const MODIFY_PASSWORD = 'MODIFY_PASSWORD';\r\nexport const GET_USER_BY_UIN = 'GET_USER_BY_UIN';\r\n","/* mutation */\r\nexport const UPDATE_DASHBOARD_STATE = 'UPDATE_DASHBOARD_STATE';\r\n/* action */\r\nexport const FETCH_DASHBOARD_MSGS = 'FETCH_DASHBOARD_MSGS';\r\nexport const READ_DASHBOARD_MSG = 'READ_DASHBOARD_MSG';\r\n","/* mutations */\r\nexport const UPDATE_PERF_LAUNCH_STATE = 'UPDATE_PERF_LAUNCH_STATE';\r\n/* actions */\r\nexport const FETCH_PERF_LAUNCHES = 'FETCH_PERF_LAUNCHES';\r\nexport const DELETE_PERF_LAUNCH = 'DELETE_PERF_LAUNCH';\r\nexport const AUDIT_PERF_LAUNCH = 'AUDIT_PERF_LAUNCH';\r\nexport const CREATE_PERF_LAUNCH = 'CREATE_PERF_LAUNCH';\r\nexport const IMPORT_PERF_LAUNCH = 'IMPORT_PERF_LAUNCH';\r\n","/* mutations */\r\nexport const UPDATE_MY_PERF_STATE = 'UPDATE_MY_PERF_STATE';\r\n/* actions */\r\nexport const FETCH_MY_PERFS = 'FETCH_MY_PERFS';\r\nexport const FETCH_MY_PERF_DETAIL = 'FETCH_MY_PERF_DETAIL';\r\nexport const APPEAL_PERF = 'APPEAL_PERF';\r\nexport const SAVE_SELF_RATING = 'SAVE_SELF_RATING';\r\n","/* mutations */\r\nexport const UPDATE_REVIEW_PERF_STATE = 'UPDATE_REVIEW_PERF_STATE';\r\n/* actions */\r\nexport const FETCH_PERFS = 'FETCH_PERFS';\r\nexport const EXPORT_PERFS = 'EXPORT_PERFS';\r\nexport const FETCH_DEPS = 'FETCH_DEPS';\r\nexport const SUBMIT_GRADE = 'SUBMIT_GRADE';\r\nexport const FETCH_EVAL_PERF_DETAIL = 'FETCH_EVAL_PERF_DETAIL';\r\nexport const FETCH_MGMT_PERF_DETAIL = 'FETCH_MGMT_PERF_DETAIL';\r\nexport const SAVE_FIRST_RATING = 'SAVE_FIRST_RATING';\r\nexport const SAVE_SECOND_RATING = 'SAVE_SECOND_RATING';\r\n","/* mutations */\r\nexport const UPDATE_ADD_SALE_STATE = 'UPDATE_ADD_SALE_STATE';\r\n/* actions */\r\nexport const FETCH_ADD_SALE = 'FETCH_ADD_SALE';\r\nexport const SEARCH_SALE = 'SEARCH_SALE';\r\nexport const IMPORT_SALE = 'IMPORT_SALE';\r\n","/* mutations */\r\nexport const UPDATE_REVIEW_BATCH_STATE = 'UPDATE_REVIEW_BATCH_STATE';\r\nexport const UPDATE_TEST_BATCH_WITH_ID = 'UPDATE_TEST_BATCH_WITH_ID';\r\n/* action */\r\nexport const FETCH_BATCHS = 'FETCH_BATCHS';\r\nexport const FETCH_BATCHS_ALL = 'FETCH_BATCHS_ALL';\r\nexport const FETCH_BATCH_DETAIL = 'FETCH_BATCH_DETAIL';\r\nexport const DELETE_BATCH = 'DELETE_BATCH';\r\n\r\nexport const ADD_BATCH = 'ADD_BATCH';\r\nexport const UPDATE_BATCH = 'UPDATE_BATCH';","/* mutations */\r\nexport const UPDATE_REVIEW_PRIZEPOOL_STATE = 'UPDATE_REVIEW_PRIZEPOOL_STATE';\r\n/* action */\r\nexport const FETCH_PRIZEPOOL = 'FETCH_PRIZEPOOL';\r\nexport const FETCH_PRIZEPOOL_DETAIL = 'FETCH_PRIZEPOOL_DETAIL';\r\nexport const SAVE_PRIZEPOOL = 'SAVE_PRIZEPOOL';\r\nexport const SAVE_PRIZEPOOL_ITEM = 'SAVE_PRIZEPOOL_ITEM';\r\nexport const DELETE_PRIZEPOOL = 'DELETE_PRIZEPOOL';\r\nexport const DELETE_PRIZEPOOL_ITEM = 'DELETE_PRIZEPOOL_ITEM';\r\nexport const FETCH_PRIZEPOOL_ITEM_DETAILS = 'FETCH_PRIZEPOOL_ITEM_DETAILS';","/* mutations */\r\nexport const UPDATE_REVIEW_REDPACK_DETAIL_STATE = 'UPDATE_REVIEW_REDPACK_DETAIL_STATE';\r\n/* action */\r\nexport const FETCH_REDPACK_DETAIL = 'FETCH_REDPACK_DETAIL';\r\nexport const MODIFY_REDPACK_DETAIL = 'MODIFY_REDPACK_DETAIL'","/* mutations */\r\nexport const UPDATE_REVIEW_SYSINFO_STATE = 'UPDATE_REVIEW_SYSINFO_STATE';\r\n/* action */\r\nexport const FETCH_SYSINFO_DETAIL = 'FETCH_SYSINFO_DETAIL';\r\nexport const MODIFY_SYSINFO_DETAIL = 'MODIFY_SYSINFO_DETAIL';","/* mutations */\r\nexport const UPDATE_REVIEW_DEALS_STATE = 'UPDATE_REVIEW_DEALS_STATE';\r\n/* action */\r\nexport const FETCH_DEALS = 'FETCH_DEALS';\r\n","import Cookies from 'js-cookie';\r\nimport ajax from '@/utils/ajax';\r\nimport * as Types from '@/store/types';\r\n// import { constantRouters, asyncRouters} from '@/router';\r\n\r\nlet getQiniuToken = ({ commit }) => {\r\n    return ajax({\r\n        url: 'pc/common/getUploadToken',\r\n        method: 'get'\r\n    });\r\n};\r\n\r\nexport default {\r\n    state: {\r\n        routers: [],\r\n        sidebar: {\r\n            opened: !+Cookies.get('sidebarStatus'),\r\n            withoutAnimation: false\r\n        },\r\n        device: 'desktop'\r\n    },\r\n\r\n    mutations: {\r\n        [Types.ADD_APP_ROUTES](state, routers) {\r\n            state.routers = [...state.routers, ...(routers || [])];\r\n        },\r\n\r\n        [Types.TOGGLE_SIDEBAR](state) {\r\n            if (state.sidebar.opened) {\r\n                Cookies.set('sidebarStatus', 1);\r\n            } else {\r\n                Cookies.set('sidebarStatus', 0);\r\n            }\r\n            state.sidebar.opened = !state.sidebar.opened;\r\n            state.sidebar.withoutAnimation = false;\r\n        },\r\n\r\n        [Types.CLOSE_SIDEBAR](state, withoutAnimation) {\r\n            Cookies.set('sidebarStatus', 1);\r\n            state.sidebar.opened = false;\r\n            state.sidebar.withoutAnimation = withoutAnimation;\r\n        },\r\n\r\n        [Types.TOGGLE_DEVICE](state, device) {\r\n            state.device = device;\r\n        }\r\n    },\r\n\r\n    actions: {\r\n        [Types.GET_QINIU_TOKEN]({ commit }) {\r\n            return getQiniuToken({ commit });\r\n        }\r\n    }\r\n};\r\n","import Vue from 'vue';\r\nimport Cookies from 'js-cookie';\r\nimport * as Types from '@/store/types';\r\nimport ajax from '@/utils/ajax';\r\nimport * as Env from '@/env';\r\n\r\nlet createDefaultUser = () => {\r\n    return {\r\n        name: '',\r\n        avatar: '',\r\n        email: '',\r\n        mobile: '',\r\n        pmsOperate: 0,\r\n        depId: 0,\r\n        depName: '',\r\n        position: '',\r\n        menus: []\r\n    };\r\n};\r\n\r\nexport default {\r\n    state: {\r\n        ...createDefaultUser()\r\n    },\r\n\r\n    mutations: {\r\n        [Types.SET_USER_INFO](state, payload) {\r\n            for (let key in payload) {\r\n                state[key] = payload[key];\r\n            }\r\n        },\r\n\r\n        [Types.CLEAR_USER_TOKEN](state) {\r\n            let user = createDefaultUser();\r\n\r\n            for (let key in user) {\r\n                Vue.set(state, key, user[key]);\r\n            }\r\n\r\n            localStorage.setItem(Env.userInfoCacheKey, '');\r\n            Cookies.set('uin', '');\r\n            Cookies.set('token', '');\r\n        }\r\n    },\r\n\r\n    actions: {\r\n        [Types.LOGIN]({ commit }, { uin, logincode, password }) {\r\n            return ajax({\r\n                url: '/pc/user/login',\r\n                method: 'post',\r\n                data: {\r\n                    uin,\r\n                    logincode,\r\n                    pwd: password\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    let { userInfo, token } = res.data || {};\r\n\r\n                    userInfo = userInfo || {};\r\n\r\n                    commit(Types.SET_USER_INFO, {\r\n                        name: userInfo.name,\r\n                        avatar: userInfo.avatar,\r\n                        email: userInfo.email,\r\n                        mobile: userInfo.mobile,\r\n                        pmsOperate: userInfo.pmsOperate,\r\n                        depId: userInfo.depId,\r\n                        depName: userInfo.depName,\r\n                        position: userInfo.position\r\n                    });\r\n\r\n                    localStorage.setItem(Env.userInfoCacheKey, JSON.stringify(userInfo));\r\n                    if (token) {\r\n                        Cookies.set('token', token, { expires: 1 });\r\n                    }\r\n                    if (userInfo && userInfo.uin) {\r\n                        Cookies.set('uin', userInfo.uin, { expires: 1 });\r\n                    }\r\n\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.LOGOUT]({ commit, state }) {\r\n            return ajax({\r\n                url: '/pc/user/logout',\r\n                method: 'post'\r\n            }).then(\r\n                (res) => {\r\n                    commit(Types.CLEAR_USER_TOKEN);\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.FETCH_USER_INFO]({ commit }) {\r\n            return ajax({\r\n                url: '/pc/user/getUserInfo',\r\n                method: 'post'\r\n            }).then(\r\n                (res) => {\r\n                    let { userInfo } = res.data || {};\r\n                    userInfo = userInfo || {};\r\n\r\n                    commit(Types.SET_USER_INFO, {\r\n                        name: userInfo.name,\r\n                        avatar: userInfo.avatar,\r\n                        email: userInfo.email,\r\n                        mobile: userInfo.mobile,\r\n                        pmsOperate: userInfo.pmsOperate,\r\n                        depId: userInfo.depId,\r\n                        depName: userInfo.depName,\r\n                        position: userInfo.position\r\n                    });\r\n\r\n                    localStorage.setItem(Env.userInfoCacheKey, JSON.stringify(userInfo));\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.MODIFY_PASSWORD]({ commit, state }, { newpwd, oldpwd }) {\r\n            return ajax({\r\n                url: '/pc/user/modifyPassword',\r\n                method: 'post',\r\n                data: {\r\n                    newpwd,\r\n                    oldpwd\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.GET_USER_BY_UIN]({ commit, state }, { uin }) {\r\n            return ajax({\r\n                url: '/pc/common/getUserByUin',\r\n                method: 'post',\r\n                data: {\r\n                    uin\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        }\r\n    }\r\n};\r\n","import Vue from 'vue';\r\nimport ajax from '@/utils/ajax';\r\nimport * as Types from '@/store/types';\r\n\r\nexport default {\r\n    state: {\r\n        userList: [],\r\n        allUsers: [],\r\n        allRoles: [],\r\n        filterKw: '',\r\n        pager: {\r\n            curPage: 1,\r\n            total: 0,\r\n            pageSize: 20\r\n        }\r\n    },\r\n\r\n    mutations: {\r\n        [Types.SET_SYSTEM_STATE](state, payload) {\r\n            for (let key in payload) {\r\n                if (typeof payload[key] !== 'undefined') {\r\n                    Vue.set(state, key, payload[key]);\r\n                }\r\n            }\r\n        }\r\n    },\r\n\r\n    actions: {\r\n        [Types.FETCH_USER_LIST]({ commit, state }, { init = false, keyword }) {\r\n            let pager = state.pager;\r\n            if (init) {\r\n                commit(Types.SET_SYSTEM_STATE, {\r\n                    pager: {\r\n                        ...pager,\r\n                        curPage: 1,\r\n                        total: 0\r\n                    }\r\n                });\r\n                pager = {\r\n                    ...pager,\r\n                    curPage: 1,\r\n                    total: 0\r\n                };\r\n            }\r\n\r\n            commit(Types.SET_SYSTEM_STATE, {\r\n                filterKw: keyword\r\n            });\r\n\r\n            return ajax({\r\n                url: '/pc/sysconfig/userrole/searchUsers',\r\n                method: 'post',\r\n                data: {\r\n                    keyword: state.filterKw,\r\n                    pageNum: pager.curPage - 1,\r\n                    pageSize: pager.pageSize\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    let { users = [], total } = res.data;\r\n\r\n                    commit(Types.SET_SYSTEM_STATE, {\r\n                        userList: users,\r\n                        pager: {\r\n                            ...pager,\r\n                            total\r\n                        }\r\n                    });\r\n\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.FETCH_ALL_ROLES]({ commit, state }) {\r\n            if (state.allRoles && state.allRoles.length > 0) {\r\n                return Promise.resolve();\r\n            }\r\n\r\n            return ajax({\r\n                url: '/pc/sysconfig/userrole/getAllRoles',\r\n                method: 'get'\r\n            }).then(\r\n                (res) => {\r\n                    let allRoles = res.data.roles || [];\r\n\r\n                    commit(Types.SET_SYSTEM_STATE, {\r\n                        allRoles\r\n                    });\r\n\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.FETCH_ALL_USERS]({ commit, state }) {\r\n            if (state.allUsers && state.allUsers.length > 0) {\r\n                return Promise.resolve();\r\n            }\r\n\r\n            return ajax({\r\n                url: '/pc/user/getAllUsers',\r\n                method: 'get'\r\n            }).then(\r\n                (res) => {\r\n                    let allUsers = res.data.users || [];\r\n\r\n                    commit(Types.SET_SYSTEM_STATE, {\r\n                        allUsers\r\n                    });\r\n\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.ADD_USER]({ commit }, { uin }) {\r\n            return ajax({\r\n                url: '/pc/sysconfig/userrole/addBizUser',\r\n                method: 'post',\r\n                data: {\r\n                    uin\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.DEL_USER]({ commit }, { uin }) {\r\n            return ajax({\r\n                url: '/pc/sysconfig/userrole/deleteUser',\r\n                method: 'post',\r\n                data: {\r\n                    uin\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.FETCH_USER_ROLE]({ commit }, { uin }) {\r\n            return ajax({\r\n                url: '/pc/sysconfig/userrole/getUserRoles',\r\n                method: 'post',\r\n                data: {\r\n                    uin\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.UPDATE_USER_ROLES]({ commit }, { uin, ids }) {\r\n            return ajax({\r\n                url: '/pc/sysconfig/userrole/updateUserRoles',\r\n                method: 'post',\r\n                data: {\r\n                    uin,\r\n                    roleIds: ids\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n        [Types.IMPORT_USER]({ commit, state }, { fileName = '' }) {\r\n            return ajax({\r\n                url: '/pc/sysconfig/userrole/importUsers',\r\n                method: 'post',\r\n                data: {\r\n                    fileName\r\n                }\r\n            }, {\r\n                timeout: 5 * 60 * 1000\r\n            });\r\n        }\r\n    }\r\n};\r\n","import Vue from 'vue';\r\nimport ajax from '@/utils/ajax';\r\nimport * as Types from '@/store/types';\r\n\r\nexport default {\r\n    state: {\r\n        messages: [],\r\n        pager: {\r\n            curPage: 1,\r\n            total: 0,\r\n            pageSize: 15\r\n        }\r\n    },\r\n\r\n    mutations: {\r\n        [Types.UPDATE_DASHBOARD_STATE](state, payload) {\r\n            for (let key in payload) {\r\n                if (typeof payload[key] !== 'undefined') {\r\n                    Vue.set(state, key, payload[key]);\r\n                }\r\n            }\r\n        }\r\n    },\r\n\r\n    actions: {\r\n        [Types.FETCH_DASHBOARD_MSGS]({ commit, state }, { init = false }) {\r\n            let pager = state.pager;\r\n            if (init) {\r\n                commit(Types.UPDATE_DASHBOARD_STATE, {\r\n                    pager: {\r\n                        ...pager,\r\n                        curPage: 1,\r\n                        total: 0\r\n                    }\r\n                });\r\n                pager = {\r\n                    ...pager,\r\n                    curPage: 1,\r\n                    total: 0\r\n                };\r\n            }\r\n\r\n            return ajax({\r\n                url: '/pc/message/searchMessage',\r\n                method: 'post',\r\n                data: {\r\n                    pageNum: pager.curPage - 1,\r\n                    pageSize: pager.pageSize\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    let { messages = [], total } = res.data;\r\n                    let msgIds = [];\r\n                    messages.forEach((msg) => {\r\n                        msgIds.push(msg.id);\r\n                        commit(Types.UPDATE_DASHBOARD_STATE, {\r\n                            [msg.id]: msg\r\n                        });\r\n                    });\r\n\r\n                    commit(Types.UPDATE_DASHBOARD_STATE, {\r\n                        messages: msgIds,\r\n                        pager: {\r\n                            ...pager,\r\n                            total\r\n                        }\r\n                    });\r\n\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.READ_DASHBOARD_MSG]({ commit, state }, { id }) {\r\n            return ajax({\r\n                url: '/pc/message/readMessage',\r\n                method: 'post',\r\n                data: {\r\n                    id\r\n                }\r\n            });\r\n        }\r\n    }\r\n};\r\n","'use strict';\r\n\r\nimport Vue from 'vue';\r\nimport ajax from '@/utils/ajax';\r\nimport * as Types from '@/store/types/index';\r\n\r\nexport default {\r\n    state: {\r\n        filterTitle: '',\r\n        filterType: '',\r\n        pager: {\r\n            curPage: 1,\r\n            total: 0,\r\n            pageSize: 25\r\n        },\r\n        perfLaunches: [],\r\n        statuses: [\r\n            {\r\n                label: '全部',\r\n                value: -1,\r\n            },\r\n            {\r\n                label: '待启动',\r\n                value: 0,\r\n                color: 'blue'\r\n            },\r\n            {\r\n                label: '待自评',\r\n                value: 10,\r\n                color: 'blue'\r\n            },\r\n            {\r\n                label: '待初评',\r\n                value: 20,\r\n                color: 'blue'\r\n            },\r\n            {\r\n                label: '待复评',\r\n                value: 30,\r\n                color: 'blue'\r\n            },\r\n            {\r\n                label: '待评优',\r\n                value: 40,\r\n                color: 'orange'\r\n            },\r\n            {\r\n                label: '待确认',\r\n                value: 50,\r\n                color: 'orange'\r\n            },\r\n            {\r\n                label: '已确认',\r\n                value: 60,\r\n                color: 'green'\r\n            }\r\n        ]\r\n    },\r\n\r\n    mutations: {\r\n        [Types.UPDATE_PERF_LAUNCH_STATE](state, payload) {\r\n            for (let key in payload) {\r\n                if (typeof payload[key] !== 'undefined') {\r\n                    Vue.set(state, key, payload[key]);\r\n                }\r\n            }\r\n        }\r\n    },\r\n\r\n    actions: {\r\n        [Types.FETCH_PERF_LAUNCHES]({ commit, state }, { init = false, title, type }) {\r\n            let pager = state.pager;\r\n            if (init) {\r\n                commit(Types.UPDATE_PERF_LAUNCH_STATE, {\r\n                    pager: {\r\n                        ...pager,\r\n                        curPage: 1,\r\n                        total: 0\r\n                    }\r\n                });\r\n                pager = {\r\n                    ...pager,\r\n                    curPage: 1,\r\n                    total: 0\r\n                };\r\n            }\r\n\r\n            commit(Types.UPDATE_PERF_LAUNCH_STATE, {\r\n                filterTitle: title,\r\n                filterType: type\r\n            });\r\n\r\n            return ajax({\r\n                url: '/pc/hr/perf/mgmt/searchPerfLaunch',\r\n                method: 'post',\r\n                data: {\r\n                    title: state.filterTitle,\r\n                    type: state.filterType,\r\n                    pageNum: pager.curPage - 1,\r\n                    pageSize: pager.pageSize\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    let { perfLaunches = [], total = 0 } = res.data;\r\n                    let perfLaunchIds = [];\r\n\r\n                    perfLaunches.forEach((pl) => {\r\n                        perfLaunchIds.push(pl.id);\r\n\r\n                        let cur = state.statuses.find(status => {\r\n                            return status.value === pl.status;\r\n                        });\r\n                        pl.statusColor = cur ? cur.color : '';\r\n\r\n                        commit(Types.UPDATE_PERF_LAUNCH_STATE, {\r\n                            [pl.id]: pl\r\n                        });\r\n                    });\r\n\r\n                    commit(Types.UPDATE_PERF_LAUNCH_STATE, {\r\n                        perfLaunches: perfLaunchIds,\r\n                        pager: {\r\n                            ...pager,\r\n                            total\r\n                        }\r\n                    });\r\n\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.DELETE_PERF_LAUNCH]({ commit, state }, { perfLaunchId = '' }) {\r\n            return ajax({\r\n                url: '/pc/hr/perf/mgmt/deletePerfLaunch',\r\n                method: 'post',\r\n                data: {\r\n                    perfLaunchId\r\n                }\r\n            });\r\n        },\r\n\r\n        [Types.CREATE_PERF_LAUNCH](\r\n            { commit, state },\r\n            {\r\n                title = '',\r\n                type = '',\r\n                startTime = '',\r\n                selfEvalEndTime = '',\r\n                firstEvalEndTime = '',\r\n                secondEvalEndTime = ''\r\n            }\r\n        ) {\r\n            return ajax({\r\n                url: '/pc/hr/perf/mgmt/createPerfLaunch',\r\n                method: 'post',\r\n                data: {\r\n                    title,\r\n                    type,\r\n                    startTime,\r\n                    selfEvalEndTime,\r\n                    firstEvalEndTime,\r\n                    secondEvalEndTime\r\n                }\r\n            });\r\n        },\r\n\r\n        [Types.IMPORT_PERF_LAUNCH]({ commit, state }, { perfLaunchId = '', file = '', isScore = Boolean }) {\r\n            return ajax({\r\n                url: '/pc/hr/perf/mgmt/importPerfFile',\r\n                method: 'post',\r\n                data: {\r\n                    perfLaunchId,\r\n                    file,\r\n                    isScore\r\n                }\r\n            }, {\r\n                timeout: 5 * 60 * 1000\r\n            });\r\n        }\r\n    }\r\n};\r\n","'use strict';\r\n\r\nimport Vue from 'vue';\r\nimport ajax from '@/utils/ajax';\r\nimport * as Types from '@/store/types/index';\r\n\r\nexport default {\r\n    state: {\r\n        pager: {\r\n            curPage: 1,\r\n            total: 0,\r\n            pageSize: 15\r\n        },\r\n        perfs: []\r\n    },\r\n\r\n    mutations: {\r\n        [Types.UPDATE_MY_PERF_STATE](state, payload) {\r\n            for (let key in payload) {\r\n                if (typeof payload[key] !== 'undefined') {\r\n                    Vue.set(state, key, payload[key]);\r\n                }\r\n            }\r\n        }\r\n    },\r\n\r\n    actions: {\r\n        [Types.FETCH_MY_PERFS]({ commit, state }, { init = false }) {\r\n            let pager = state.pager;\r\n            if (init) {\r\n                commit(Types.UPDATE_MY_PERF_STATE, {\r\n                    pager: {\r\n                        ...pager,\r\n                        curPage: 1,\r\n                        total: 0\r\n                    }\r\n                });\r\n                pager = {\r\n                    ...pager,\r\n                    curPage: 1,\r\n                    total: 0\r\n                };\r\n            }\r\n\r\n            return ajax({\r\n                url: '/pc/hr/perf/my/searchPerf',\r\n                method: 'post',\r\n                data: {\r\n                    pageNum: pager.curPage - 1,\r\n                    pageSize: pager.pageSize\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    let { perfs = [], total = 0 } = res.data;\r\n                    let perfIds = [];\r\n\r\n                    perfs.forEach((perf) => {\r\n                        perfIds.push(perf.id);\r\n\r\n                        commit(Types.UPDATE_MY_PERF_STATE, {\r\n                            [perf.id]: perf\r\n                        });\r\n                    });\r\n\r\n                    commit(Types.UPDATE_MY_PERF_STATE, {\r\n                        perfs: perfIds,\r\n                        pager: {\r\n                            ...pager,\r\n                            total\r\n                        }\r\n                    });\r\n\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.FETCH_MY_PERF_DETAIL]({ commit, state }, { perfId = '', isEdit = 1 }) {\r\n            return ajax({\r\n                url: '/pc/hr/perf/my/queryPerfById',\r\n                method: 'post',\r\n                data: {\r\n                    perfId,\r\n                    isEdit\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    let { perf } = res.data;\r\n\r\n                    if (perf && perf.id) {\r\n                        commit(Types.UPDATE_MY_PERF_STATE, {\r\n                            [perf.id]: perf\r\n                        });\r\n                    }\r\n\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.APPEAL_PERF]({ commit, state }, { perfId = '', reason = '' }) {\r\n            return ajax({\r\n                url: '/pc/hr/perf/my/appeal',\r\n                method: 'post',\r\n                data: {\r\n                    perfId,\r\n                    reason\r\n                }\r\n            });\r\n        },\r\n\r\n        [Types.SAVE_SELF_RATING]({ commit, state }, { id = '', items = '' }) {\r\n            return ajax({\r\n                url: '/pc/hr/perf/my/saveSelfRating',\r\n                method: 'post',\r\n                data: {\r\n                    id,\r\n                    items\r\n                }\r\n            });\r\n        }\r\n    }\r\n};\r\n","'use strict';\r\n\r\nimport Vue from 'vue';\r\nimport ajax from '@/utils/ajax';\r\nimport * as Types from '@/store/types/index';\r\n\r\nexport default {\r\n    state: {\r\n        filterId: '',\r\n        filterStuffName: '',\r\n        filterTitle: '',\r\n        filterType: '',\r\n        filterDateRange: [],\r\n        filterDepName: '',\r\n        filterStatus: '',\r\n        filterLevel: '',\r\n        filterNext: '',\r\n        pager: {\r\n            pageNum: 0,\r\n            total: 0,\r\n            pageSize: 20\r\n        },\r\n        deps: [],\r\n        perfs: []\r\n    },\r\n\r\n    mutations: {\r\n        [Types.UPDATE_REVIEW_PERF_STATE](state, payload) {\r\n            for (let key in payload) {\r\n                if (typeof payload[key] !== 'undefined') {\r\n                    Vue.set(state, key, payload[key]);\r\n                }\r\n            }\r\n        }\r\n    },\r\n\r\n    actions: {\r\n        [Types.FETCH_PERFS]({ commit, state }, { init = false, change = false, id, type, title, stuffName, dateRange, depName, status, level, next }) {\r\n            if (init) {\r\n                commit(Types.UPDATE_REVIEW_PERF_STATE, {\r\n                    pager: {\r\n                        ...state.pager,\r\n                        curPage: 0,\r\n                        total: 0,\r\n                    }\r\n                });\r\n            }\r\n            if(change) {\r\n                commit(Types.UPDATE_REVIEW_PERF_STATE, {\r\n                    pager: {\r\n                        ...state.pager,\r\n                        curPage: 0,\r\n                        total: 0,\r\n                        pageNum: 0,\r\n                    }\r\n                });\r\n            }\r\n            commit(Types.UPDATE_REVIEW_PERF_STATE, {\r\n                id: id,\r\n                type: type,\r\n                title: title,\r\n                stuffName: stuffName,\r\n                dateRange: dateRange,\r\n                depName: depName,\r\n                status: status,\r\n                level: level,\r\n                next: next\r\n            });\r\n            return ajax({\r\n                url: '/pc/hr/perf/evaluate/searchPerf',\r\n                method: 'POST',\r\n                data: {\r\n                    id: state.id === '' ? -1 : state.id,\r\n                    type: state.type,\r\n                    title: state.title,\r\n                    name: state.stuffName,\r\n                    startTime: state.dateRange && state.dateRange.length === 2 ? state.dateRange[0] : '',\r\n                    endTime: state.dateRange && state.dateRange.length === 2 ? state.dateRange[1] : '',\r\n                    depName: state.depName === '全部' || state.depName === 0 ? '' : state.depName,\r\n                    status: state.status,\r\n                    level: state.level,\r\n                    pageNum: state.pager.pageNum,\r\n                    pageSize: state.pager.pageSize,\r\n                    next: state.next\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    let { perfs = [], total = 0 } = res.data;\r\n                    let perfsIds = [];\r\n\r\n                    perfs.forEach((pl) => {\r\n                        perfsIds.push(pl.id);\r\n                        commit(Types.UPDATE_REVIEW_PERF_STATE, {\r\n                            [pl.id]: pl\r\n                        });\r\n                    });\r\n\r\n                    commit(Types.UPDATE_REVIEW_PERF_STATE, {\r\n                        perfs: perfsIds,\r\n                        pager: {\r\n                            ...state.pager,\r\n                            total\r\n                        }\r\n                    });\r\n\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.EXPORT_PERFS]({ commit, state }, { init = false, change = false, id, type, title, stuffName, dateRange, depName, status, level, next }) {\r\n            if (init) {\r\n                commit(Types.UPDATE_REVIEW_PERF_STATE, {\r\n                    pager: {\r\n                        ...state.pager,\r\n                        curPage: 0,\r\n                        total: 0,\r\n                    }\r\n                });\r\n            }\r\n            if(change) {\r\n                commit(Types.UPDATE_REVIEW_PERF_STATE, {\r\n                    pager: {\r\n                        ...state.pager,\r\n                        curPage: 0,\r\n                        total: 0,\r\n                        pageNum: 0,\r\n                    }\r\n                });\r\n            }\r\n            commit(Types.UPDATE_REVIEW_PERF_STATE, {\r\n                id: id,\r\n                type: type,\r\n                title: title,\r\n                stuffName: stuffName,\r\n                dateRange: dateRange,\r\n                depName: depName,\r\n                status: status,\r\n                level: level,\r\n                next: next\r\n            });\r\n            return ajax({\r\n                url: '/pc/hr/perf/evaluate/exportPerfs',\r\n                method: 'POST',\r\n                data: {\r\n                    id: state.id === '' ? -1 : state.id,\r\n                    type: state.type,\r\n                    title: state.title,\r\n                    name: state.stuffName,\r\n                    startTime: state.dateRange && state.dateRange.length === 2 ? state.dateRange[0] : '',\r\n                    endTime: state.dateRange && state.dateRange.length === 2 ? state.dateRange[1] : '',\r\n                    depName: state.depName === '全部' || state.depName === 0 ? '' : state.depName,\r\n                    status: state.status,\r\n                    level: state.level,\r\n                    pageNum: state.pager.pageNum,\r\n                    pageSize: state.pager.pageSize,\r\n                    next: state.next\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.FETCH_DEPS]({ commit, state }) {\r\n            return ajax({\r\n                url: '/pc/hr/perf/evaluate/getPerfDeps',\r\n                method: 'POST',\r\n                data: {}\r\n            }).then(\r\n                (res) => {\r\n                    commit(Types.UPDATE_REVIEW_PERF_STATE, {\r\n                        deps: res.data.deps\r\n                    });\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.SUBMIT_GRADE]({ commit, state }, { perfId, level, levelComment }) {\r\n            return ajax({\r\n                url: '/pc/hr/perf/evaluate/saveGrade',\r\n                method: 'POST',\r\n                data: {\r\n                    perfId: perfId,\r\n                    level: level,\r\n                    levelComment: levelComment\r\n                }\r\n            });\r\n        },\r\n\r\n        [Types.FETCH_EVAL_PERF_DETAIL]({ commit, state }, { perfId = '', isEdit = 1 }) {\r\n            return ajax({\r\n                url: '/pc/hr/perf/evaluate/queryPerfById',\r\n                method: 'post',\r\n                data: {\r\n                    perfId,\r\n                    isEdit\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    let { perf } = res.data;\r\n\r\n                    if (perf && perf.id) {\r\n                        commit(Types.UPDATE_MY_PERF_STATE, {\r\n                            [perf.id]: perf\r\n                        });\r\n                    }\r\n\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.FETCH_MGMT_PERF_DETAIL]({ commit, state }, { perfId = '', isEdit = 1 }) {\r\n            return ajax({\r\n                url: '/pc/hr/perf/mgmt/queryPerfById',\r\n                method: 'post',\r\n                data: {\r\n                    perfId,\r\n                    isEdit\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    let { perf } = res.data;\r\n\r\n                    if (perf && perf.id) {\r\n                        commit(Types.UPDATE_MY_PERF_STATE, {\r\n                            [perf.id]: perf\r\n                        });\r\n                    }\r\n\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n\r\n        [Types.SAVE_FIRST_RATING]({ commit, state }, { id = '', items, coefficient = '', coefficientDesc = '', firstSumDesc = '' }) {\r\n            return ajax({\r\n                url: '/pc/hr/perf/evaluate/saveFirstRating',\r\n                method: 'post',\r\n                data: {\r\n                    id,\r\n                    items,\r\n                    coefficient,\r\n                    coefficientDesc,\r\n                    firstSumDesc\r\n                }\r\n            });\r\n        },\r\n\r\n        [Types.SAVE_SECOND_RATING]({ commit, state }, { id = '', items, coefficient = '', coefficientDesc = '', secondSumDesc = '' }) {\r\n            return ajax({\r\n                url: '/pc/hr/perf/evaluate/saveSecondRating',\r\n                method: 'POST',\r\n                data: {\r\n                    id,\r\n                    items,\r\n                    coefficient,\r\n                    coefficientDesc,\r\n                    secondSumDesc\r\n                }\r\n            });\r\n        }\r\n    }\r\n};\r\n","'use strict';\r\n\r\nimport Vue from 'vue';\r\nimport ajax from '@/utils/ajax';\r\nimport * as Types from '@/store/types/index';\r\n\r\nexport default {\r\n    state: {\r\n        pager: {\r\n            curPage: 1,\r\n            total: 0\r\n        },\r\n        addSales: []\r\n    },\r\n\r\n    mutations: {\r\n        [Types.UPDATE_ADD_SALE_STATE](state, payload) {\r\n            for (let key in payload) {\r\n                if (typeof payload[key] !== 'undefined') {\r\n                    Vue.set(state, key, payload[key]);\r\n                }\r\n            }\r\n        }\r\n    },\r\n\r\n    actions: {\r\n        [Types.FETCH_ADD_SALE]({ commit, state }, { init = false }) {\r\n            let pager = state.pager;\r\n            if (init) {\r\n                commit(Types.UPDATE_ADD_SALE_STATE, {\r\n                    pager: {\r\n                        ...pager,\r\n                        curPage: 1,\r\n                        total: 0\r\n                    }\r\n                });\r\n                pager = {\r\n                    ...pager,\r\n                    curPage: 1,\r\n                    total: 0\r\n                };\r\n            }\r\n\r\n            return ajax({\r\n                url: '/pc/resource/kit/searchImportInfo',\r\n                method: 'post',\r\n                data: {\r\n                    pageNum: pager.curPage - 1\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    let { importInfos = [], total = 0 } = res.data;\r\n\r\n                    commit(Types.UPDATE_ADD_SALE_STATE, {\r\n                        addSales: importInfos,\r\n                        pager: {\r\n                            ...pager,\r\n                            total\r\n                        }\r\n                    });\r\n\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n        [Types.SEARCH_SALE]({ commit, state }, { keyword = '' }) {\r\n            let pager = state.pager;\r\n            return ajax({\r\n                url: '/pc/resource/kit/searchImportInfo',\r\n                method: 'post',\r\n                data: {\r\n                    keyword\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    let { importInfos = [], total = 0 } = res.data;\r\n\r\n                    commit(Types.UPDATE_ADD_SALE_STATE, {\r\n                        addSales: importInfos,\r\n                        pager: {\r\n                            ...pager,\r\n                            total\r\n                        }\r\n                    });\r\n\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n        [Types.IMPORT_SALE]({ commit, state }, { fileName = '' }) {\r\n            return ajax({\r\n                url: '/pc/resource/kit/importFile',\r\n                method: 'post',\r\n                data: {\r\n                    fileName\r\n                }\r\n            }, {\r\n                timeout: 5 * 60 * 1000\r\n            });\r\n        }\r\n    }\r\n}\r\n","'use strict';\r\n\r\nimport Vue from 'vue';\r\nimport ajax from '@/utils/ajax';\r\nimport * as Types from '@/store/types/index';\r\n\r\nexport default {\r\n    // 这里叫不叫 state 都可以，可以理解为一个元素中的元素\r\n    state: {\r\n        batchs: [],\r\n        batchsAll: [],\r\n        batchDict: {\r\n\r\n        }\r\n    },\r\n\r\n    // 变化，state 是状态本身，然后 payload 是字典，通过判定字典对应的值是否定义决定更新值 \r\n    // mutation 都是同步事务\r\n    mutations: {\r\n        [Types.UPDATE_REVIEW_BATCH_STATE](state, payload) {\r\n            for (let key in payload) {\r\n                if (typeof payload[key] !== 'undefined') {\r\n                    Vue.set(state, key, payload[key]);\r\n                }\r\n            }\r\n        },\r\n        [Types.UPDATE_TEST_BATCH_WITH_ID](state, payload) {\r\n            for (let key in payload) {\r\n                if (typeof payload[key] !== 'undefined') {\r\n                    Vue.set(state.batchDict, key, payload[key]);\r\n                }\r\n            }\r\n        }\r\n    },\r\n\r\n    // 动作，\r\n    actions: {\r\n        [Types.FETCH_BATCHS]({ commit, state }) {\r\n            return ajax({\r\n                url: '/pc/redpack/batch/list',\r\n                method: 'GET',\r\n            }).then(\r\n                (res) => {\r\n                    commit(Types.UPDATE_REVIEW_BATCH_STATE, {\r\n                        batchs: res.data.redpackBatchList\r\n                    });\r\n                    let batchList = res.data.redpackBatchList;\r\n                    batchList.forEach(batch => {\r\n                        commit(Types.UPDATE_TEST_BATCH_WITH_ID, {\r\n                            [batch.redpackBatchId]: batch\r\n                        })\r\n                    });\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n        [Types.FETCH_BATCHS_ALL]({ commit, state }) {\r\n            return ajax({\r\n                url: '/pc/redpack/batch/listAll',\r\n                method: 'GET'\r\n            }).then(\r\n                (res) => {\r\n                    commit(Types.UPDATE_REVIEW_BATCH_STATE, {\r\n                        batchsAll: res.data.redpackList\r\n                    });\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            )\r\n        },\r\n        [Types.FETCH_BATCH_DETAIL]({ commit, state }, { batchId }) {\r\n            return ajax({\r\n                url: '/pc/redpack/batch/detail?redpackBatchId=' + batchId,\r\n                method: 'GET'\r\n            }).then(\r\n                (res) => {\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            )\r\n        },\r\n        [Types.ADD_BATCH]({ commit, state }, { batchDetail }) {\r\n            return ajax({\r\n                url: '/pc/redpack/batch/add',\r\n                method: 'POST',\r\n                data: {\r\n                    ...batchDetail\r\n                }\r\n            })\r\n        },\r\n        [Types.UPDATE_BATCH]({ commit, state }, { batchDetail }) {\r\n            return ajax({\r\n                url: '/pc/redpack/batch/update',\r\n                method: 'POST',\r\n                data: {\r\n                    ...batchDetail\r\n                }\r\n            })\r\n        },\r\n        [Types.DELETE_BATCH]({ commit, state }, { batchId }) {\r\n            return ajax({\r\n                url: '/pc/redpack/batch/del',\r\n                method: 'POST',\r\n                data: {\r\n                    redpackBatchId: batchId\r\n                }\r\n            })\r\n        }\r\n    }\r\n}","'use strict';\r\n\r\nimport Vue from 'vue';\r\nimport ajax from '@/utils/ajax';\r\nimport * as Types from '@/store/types/index';\r\n\r\nexport default {\r\n    state: {\r\n        prizepools: [],\r\n        prizepoolItems: [],\r\n        prizepool: {}\r\n    },\r\n\r\n    mutations: {\r\n        [Types.UPDATE_REVIEW_PRIZEPOOL_STATE](state, payload) {\r\n            for (let key in payload) {\r\n                if (typeof payload[key] !== 'undefined') {\r\n                    Vue.set(state, key, payload[key]);\r\n                }\r\n            }\r\n        }\r\n    },\r\n\r\n    actions: {\r\n        [Types.FETCH_PRIZEPOOL]({ commit, state }) {\r\n            return ajax({\r\n                url: '/pc/redpack/prizepool/list',\r\n                method: 'POST',\r\n                data: {}\r\n            }).then(\r\n                (res) => {\r\n                    commit(Types.UPDATE_REVIEW_PRIZEPOOL_STATE, {\r\n                        prizepools: res.data.pools\r\n                    });\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n        [Types.FETCH_PRIZEPOOL_DETAIL]({ commit, state }, { poolId }) {\r\n            return ajax({\r\n                url: '/pc/redpack/prizepool/detail?poolId=' + poolId,\r\n                method: 'GET',\r\n            }).then(\r\n                (res) => {\r\n                    commit(Types.UPDATE_REVIEW_PRIZEPOOL_STATE, {\r\n                        prizepoolItems: res.data.items,\r\n                        prizepool: res.data.pool\r\n                    });\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n        [Types.SAVE_PRIZEPOOL]({ commit, state }, { prizepoolInfo }) {\r\n            return ajax({\r\n                url: '/pc/redpack/prizepool/savePool',\r\n                method: 'POST',\r\n                data: prizepoolInfo\r\n            }).then(\r\n                (res) => {\r\n                    // TODO: 这里需要同步更新修改好的数据，简单些就是刷新，快捷点就是直接划入池子中\r\n                    commit(Types.UPDATE_REVIEW_PRIZEPOOL_STATE, {\r\n                        \r\n                    })\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            )\r\n        },\r\n        [Types.SAVE_PRIZEPOOL_ITEM]({ commit, state }, { prizepoolItemInfo }) {\r\n            return ajax({\r\n                url: '/pc/redpack/prizepool/savePoolItem',\r\n                method: 'POST',\r\n                data: prizepoolItemInfo\r\n            }).then(\r\n                (res) => {\r\n                    // TODO: 这里需要同步更新修改好的数据，简单些就是刷新，快捷点就是直接划入池子中\r\n                    commit(Types.UPDATE_REVIEW_PRIZEPOOL_STATE, {\r\n                        \r\n                    })\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            )\r\n        },\r\n        [Types.DELETE_PRIZEPOOL]({ commit, state }, { poolId }) {\r\n            return ajax({\r\n                url: '/pc/redpack/prizepool/deletePool',\r\n                method: 'POST',\r\n                data: {\r\n                    poolId: poolId\r\n                }\r\n            })\r\n        },\r\n        [Types.DELETE_PRIZEPOOL_ITEM]({ commit, state }, { itemId }) {\r\n            return ajax({\r\n                url: '/pc/redpack/prizepool/deletePoolItem',\r\n                method: 'POST',\r\n                data: {\r\n                    itemId: itemId\r\n                }\r\n            })\r\n        }\r\n    }\r\n}","'use strict';\r\n\r\nimport Vue from 'vue';\r\nimport ajax from '@/utils/ajax';\r\nimport * as Types from '@/store/types/index';\r\n\r\nexport default {\r\n    state: {\r\n        redpackDetail: undefined,\r\n        scanUser: undefined\r\n    },\r\n\r\n    mutations: {\r\n        [Types.UPDATE_REVIEW_REDPACK_DETAIL_STATE](state, payload) {\r\n            for (let key in payload) {\r\n                if (typeof payload[key] !== 'undefined') {\r\n                    Vue.set(state, key, payload[key]);\r\n                }\r\n            }\r\n        }  \r\n    },\r\n\r\n    actions: {\r\n        [Types.FETCH_REDPACK_DETAIL]({ commit, state }, {url}) {\r\n            return ajax({\r\n                url: '/pc/redpack/detail?url=' + url,\r\n                method: 'GET'\r\n            }).then(\r\n                (res) => {\r\n                    commit(Types.UPDATE_REVIEW_REDPACK_DETAIL_STATE, {\r\n                        redpackDetail: {...res.data.detail},\r\n                        scanUser: {...res.data.scanUser}\r\n                    });\r\n                    return Promise.resolve(res);\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n        [Types.MODIFY_REDPACK_DETAIL]({ commit, state }, {url, batchId}) {\r\n            return ajax({\r\n                url: '/pc/redpack/modify?url=' + url + '&batchId' + batchId,\r\n                method: 'GET'\r\n            })\r\n        }\r\n    }\r\n}","'use strict';\r\n\r\nimport Vue from 'vue';\r\nimport ajax from '@/utils/ajax';\r\nimport * as Types from '@/store/types/index';\r\n\r\nexport default {\r\n    state: {\r\n        sysinfo: {\r\n            contacts: '',\r\n            dayLimitPerUser: '',\r\n            dayLimitTotalAmount: '',\r\n            dayLimitTotalNum: ''\r\n        }\r\n    },\r\n\r\n    mutations: {\r\n        [Types.UPDATE_REVIEW_SYSINFO_STATE](state, payload) {\r\n            for (let key in payload) {\r\n                if (typeof payload[key] !== 'undefined') {\r\n                    Vue.set(state, key, payload[key]);\r\n                }\r\n            }\r\n        }  \r\n    },\r\n\r\n    actions: {\r\n        [Types.FETCH_SYSINFO_DETAIL]({ commit, state }) {\r\n            return ajax({\r\n                url: '/pc/redpack/sysinfo/get',\r\n                method: 'GET'\r\n            }).then(\r\n                (res) => {\r\n                    commit(Types.UPDATE_REVIEW_SYSINFO_STATE, {\r\n                        sysinfo: { ...res.data.sysConfig }\r\n                    })\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n        [Types.MODIFY_SYSINFO_DETAIL]({ commit, state }, { newSysinfo }) {\r\n            return ajax({\r\n                url: '/pc/redpack/sysinfo/update',\r\n                method: 'POST',\r\n                data: newSysinfo\r\n            })\r\n        }\r\n    }\r\n}","'use strict';\r\n\r\nimport Vue from 'vue';\r\nimport ajax from '@/utils/ajax';\r\nimport * as Types from '@/store/types/index';\r\n\r\nexport default {\r\n    state: {\r\n        filters: {\r\n\r\n        },\r\n        pager: {\r\n            curPage: 1,\r\n            total: 0,\r\n            pageSize: 20\r\n        },\r\n        deals: []\r\n    },\r\n\r\n    mutations: {\r\n        [Types.UPDATE_REVIEW_DEALS_STATE](state, payload) {\r\n            for (let key in payload) {\r\n                if (typeof payload[key] !== 'undefined') {\r\n                    Vue.set(state, key, payload[key]);\r\n                }\r\n            }\r\n        }\r\n    },\r\n\r\n    actions: {\r\n        [Types.FETCH_DEALS]({ commit, state }, { init = false, filter = {} }) {\r\n            let pager = state.pager;\r\n            if (init) {\r\n                commit(Types.UPDATE_MY_PERF_STATE, {\r\n                    pager: {\r\n                        ...pager,\r\n                        curPage: 1,\r\n                        total: 0\r\n                    }\r\n                });\r\n                pager = {\r\n                    ...pager,\r\n                    curPage: 1,\r\n                    total: 0\r\n                };\r\n            }\r\n            \r\n            return ajax({\r\n                url: '/pc/redpack/deal/list',\r\n                method: 'POST',\r\n                data: {\r\n                    ...filter,\r\n                    pageNum: pager.curPage - 1,\r\n                    pageSize: pager.pageSize\r\n                }\r\n            }).then(\r\n                (res) => {\r\n                    let total = res.data.total;\r\n                    commit(Types.UPDATE_REVIEW_DEALS_STATE, {\r\n                        deals: res.data.redpackDealList,\r\n                        pager: {\r\n                            ...pager,\r\n                            total\r\n                        }\r\n                    });\r\n                },\r\n                (res) => {\r\n                    return Promise.reject(res);\r\n                }\r\n            );\r\n        },\r\n    }\r\n}","import { constantRouters } from '@/router'\r\n\r\nconst state = {\r\n  visitedViews: [{\r\n    fullPath: '/dashboard',\r\n    hash: '',\r\n    meta: {\r\n      title: '首页',\r\n      icon: 'icon-home',\r\n      permission: true,\r\n      affix: true\r\n    },\r\n    path: '/dashboard',\r\n    name: 'dashboard',\r\n  }],\r\n  cachedViews: ['EmptyTemplate'],\r\n  routes: [],\r\n  addRoutes: []\r\n}\r\n\r\nconst mutations = {\r\n  ADD_VISITED_VIEW: (state, view) => {\r\n    if (state.visitedViews.some(v => v.path === view.path)) return\r\n    state.visitedViews.push(\r\n      view\r\n    )\r\n  },\r\n  ADD_CACHED_VIEW: (state, view) => {\r\n    if (state.cachedViews.includes(view.name)) return\r\n    if (!view.meta.noCache) {\r\n      state.cachedViews.push(view.name)\r\n    }\r\n  },\r\n\r\n  DEL_VISITED_VIEW: (state, view) => {\r\n    for (const [i, v] of state.visitedViews.entries()) {\r\n      if (v.path === view.path) {\r\n        state.visitedViews.splice(i, 1)\r\n        break\r\n      }\r\n    }\r\n  },\r\n  DEL_CACHED_VIEW: (state, view) => {\r\n    for (const i of state.cachedViews) {\r\n      if (i === view.name) {\r\n        const index = state.cachedViews.indexOf(i)\r\n        state.cachedViews.splice(index, 1)\r\n        break\r\n      }\r\n    }\r\n  },\r\n\r\n  DEL_OTHERS_VISITED_VIEWS: (state, view) => {\r\n    state.visitedViews = state.visitedViews.filter(v => {\r\n      return v.meta.affix || v.path === view.path\r\n    })\r\n  },\r\n  DEL_OTHERS_CACHED_VIEWS: (state, view) => {\r\n    for (const i of state.cachedViews) {\r\n      if (i === view.name) {\r\n        const index = state.cachedViews.indexOf(i)\r\n        state.cachedViews = state.cachedViews.slice(index, index + 1)\r\n        break\r\n      }\r\n    }\r\n  },\r\n\r\n  DEL_ALL_VISITED_VIEWS: state => {\r\n    // keep affix tags\r\n    const affixTags = state.visitedViews.filter(tag => tag.meta.affix)\r\n    state.visitedViews = affixTags\r\n  },\r\n  DEL_ALL_CACHED_VIEWS: state => {\r\n    state.cachedViews = []\r\n  },\r\n\r\n  UPDATE_VISITED_VIEW: (state, view) => {\r\n    for (let v of state.visitedViews) {\r\n      if (v.path === view.path) {\r\n        v = Object.assign(v, view)\r\n        break\r\n      }\r\n    }\r\n  },\r\n\r\n  SET_ROUTES: (state, routes) => {\r\n    state.routes = constantRouters.concat(routes)\r\n    state.addRoutes = routes\r\n  }\r\n}\r\n\r\nconst actions = {\r\n  addView({ dispatch }, view) {\r\n    dispatch('addVisitedView', view)\r\n    dispatch('addCachedView', view)\r\n  },\r\n  addVisitedView({ commit }, view) {\r\n    commit('ADD_VISITED_VIEW', view)\r\n  },\r\n  addCachedView({ commit }, view) {\r\n    commit('ADD_CACHED_VIEW', view)\r\n  },\r\n\r\n  delView({ dispatch, state }, view) {\r\n    return new Promise(resolve => {\r\n      dispatch('delVisitedView', view)\r\n      dispatch('delCachedView', view)\r\n      resolve({\r\n        visitedViews: [...state.visitedViews],\r\n        cachedViews: [...state.cachedViews]\r\n      })\r\n    })\r\n  },\r\n  delVisitedView({ commit, state }, view) {\r\n    return new Promise(resolve => {\r\n      commit('DEL_VISITED_VIEW', view)\r\n      resolve([...state.visitedViews])\r\n    })\r\n  },\r\n  delCachedView({ commit, state }, view) {\r\n    return new Promise(resolve => {\r\n      commit('DEL_CACHED_VIEW', view)\r\n      resolve([...state.cachedViews])\r\n    })\r\n  },\r\n\r\n  delOthersViews({ dispatch, state }, view) {\r\n    return new Promise(resolve => {\r\n      dispatch('delOthersVisitedViews', view)\r\n      dispatch('delOthersCachedViews', view)\r\n      resolve({\r\n        visitedViews: [...state.visitedViews],\r\n        cachedViews: [...state.cachedViews]\r\n      })\r\n    })\r\n  },\r\n  delOthersVisitedViews({ commit, state }, view) {\r\n    return new Promise(resolve => {\r\n      commit('DEL_OTHERS_VISITED_VIEWS', view)\r\n      resolve([...state.visitedViews])\r\n    })\r\n  },\r\n  delOthersCachedViews({ commit, state }, view) {\r\n    return new Promise(resolve => {\r\n      commit('DEL_OTHERS_CACHED_VIEWS', view)\r\n      resolve([...state.cachedViews])\r\n    })\r\n  },\r\n\r\n  delAllViews({ dispatch, state }, view) {\r\n    return new Promise(resolve => {\r\n      dispatch('delAllVisitedViews', view)\r\n      dispatch('delAllCachedViews', view)\r\n      resolve({\r\n        visitedViews: [...state.visitedViews],\r\n        cachedViews: [...state.cachedViews]\r\n      })\r\n    })\r\n  },\r\n  delAllVisitedViews({ commit, state }) {\r\n    return new Promise(resolve => {\r\n      commit('DEL_ALL_VISITED_VIEWS')\r\n      resolve([...state.visitedViews])\r\n    })\r\n  },\r\n  delAllCachedViews({ commit, state }) {\r\n    return new Promise(resolve => {\r\n      commit('DEL_ALL_CACHED_VIEWS')\r\n      resolve([...state.cachedViews])\r\n    })\r\n  },\r\n\r\n  updateVisitedView({ commit }, view) {\r\n    commit('UPDATE_VISITED_VIEW', view)\r\n  },\r\n\r\n  generateRoutes({ commit }, accessedRoutes) {\r\n    commit('SET_ROUTES', accessedRoutes)\r\n  }\r\n}\r\n\r\nexport default {\r\n  namespaced: true,\r\n  state,\r\n  mutations,\r\n  actions\r\n}\r\n","const getters = {\r\n  visitedViews: state => state.tagsView.visitedViews,\r\n  cachedViews: state => state.tagsView.cachedViews\r\n}\r\nexport default getters\r\n","import Vue from 'vue';\r\nimport Vuex from 'vuex';\r\nimport app from './modules/common/app';\r\nimport user from './modules/common/user';\r\nimport system from './modules/common/system';\r\nimport dashboard from './modules/dashboard/dashboard';\r\nimport perfLaunch from './modules/hr/perfLaunch';\r\nimport myPerfs from './modules/hr/myPerfs';\r\nimport reviewPerfs from './modules/hr/reviewPerfs';\r\nimport addSale from './modules/sale/addSale';\r\nimport batch from './modules/redpack/batch';\r\nimport prizepool from './modules/redpack/prizepool';\r\nimport redpack from './modules/redpack/redpack';\r\nimport sysinfo from './modules/redpack/sysinfo';\r\nimport deal from './modules/redpack/deal';\r\nimport tagsView from './modules/tagsView';\r\nimport getters from './getters'\r\nimport * as Env from '../env';\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n    modules: {\r\n        app,\r\n        user,\r\n        dashboard,\r\n        system,\r\n        perfLaunch,\r\n        myPerfs,\r\n        reviewPerfs,\r\n        addSale,\r\n        batch,\r\n        prizepool,\r\n        redpack,\r\n        sysinfo,\r\n        deal,\r\n        tagsView\r\n    },\r\n    getters,\r\n    strict: Env.isDebug // 生产环境禁止开启严格模式\r\n});\r\n","import mod from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/babel-loader/lib/index.js!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","<template>\r\n    <div id=\"app\">\r\n        <router-view />\r\n    </div>\r\n</template>\r\n\r\n<script>\r\n    export default {\r\n        name: 'app'\r\n    };\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n    .el-pagination {\r\n        text-align: right;\r\n    }\r\n</style>\r\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=14bc254a&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\ncomponent.options.__file = \"App.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// set function parseTime,formatTime to filter\r\nexport { parseTime, formatTime } from '@/utils'\r\n\r\nfunction pluralize(time, label) {\r\n  if (time === 1) {\r\n    return time + label\r\n  }\r\n  return time + label + 's'\r\n}\r\n\r\nexport function timeAgo(time) {\r\n  const between = Date.now() / 1000 - Number(time)\r\n  if (between < 3600) {\r\n    return pluralize(~~(between / 60), ' minute')\r\n  } else if (between < 86400) {\r\n    return pluralize(~~(between / 3600), ' hour')\r\n  } else {\r\n    return pluralize(~~(between / 86400), ' day')\r\n  }\r\n}\r\n\r\n/* 数字 格式化*/\r\nexport function numberFormatter(num, digits) {\r\n  const si = [\r\n    { value: 1E18, symbol: 'E' },\r\n    { value: 1E15, symbol: 'P' },\r\n    { value: 1E12, symbol: 'T' },\r\n    { value: 1E9, symbol: 'G' },\r\n    { value: 1E6, symbol: 'M' },\r\n    { value: 1E3, symbol: 'k' }\r\n  ]\r\n  for (let i = 0; i < si.length; i++) {\r\n    if (num >= si[i].value) {\r\n      return (num / si[i].value + 0.1).toFixed(digits).replace(/\\.0+$|(\\.[0-9]*[1-9])0+$/, '$1') + si[i].symbol\r\n    }\r\n  }\r\n  return num.toString()\r\n}\r\n\r\nexport function toThousandFilter(num) {\r\n  return (+num || 0).toString().replace(/^-?\\d+/g, m => m.replace(/(?=(?!\\b)(\\d{3})+$)/g, ','))\r\n}\r\n","import 'es6-promise/auto';\r\n\r\nimport Vue from 'vue';\r\nimport Element from 'element-ui';\r\nimport 'element-ui/lib/theme-chalk/index.css';\r\nimport '@/styles/index.scss';\r\nimport NProgress from 'nprogress';\r\nimport 'nprogress/nprogress.css';\r\nimport router from './router';\r\nimport store from './store';\r\nimport App from './App';\r\nimport * as Env from './env';\r\nimport * as filters from './filters';\r\n\r\nimport 'xe-utils'\r\nimport VXETable from 'vxe-table'\r\nimport 'vxe-table/lib/style.css'\r\n\r\nObject.keys(filters).forEach((key) => {\r\n    Vue.filter(key, filters[key]);\r\n});\r\n\r\nVue.config.productionTip = Env.isDebug; // 生产日志\r\nVue.config.devtools = Env.isDebug; // 支持debug工具\r\nVue.config.performance = Env.isDebug; // 在浏览器开发工具中启用对组件初始化，渲染和打补丁的性能追踪\r\nVue.config.errorHandler = function(err, vm, info) {\r\n    console.log('\\n【-------------- Vue Error Start --------------------】\\n');\r\n    console.log(err);\r\n    console.log(vm);\r\n    console.log(info);\r\n    console.log('\\n【-------------- Vue Error   End --------------------】\\n');\r\n};\r\nVue.config.warnHandler = function(msg, vm, trace) {\r\n    console.log('\\n【-------------- Vue Warn Start ---------------------】\\n');\r\n    console.log(msg);\r\n    console.log(vm);\r\n    console.log(trace);\r\n    console.log('\\n【-------------- Vue Warn   End ---------------------】\\n');\r\n};\r\n\r\nNProgress.configure({ showSpinner: false });\r\nVue.use(Element, {\r\n    size: 'mini'\r\n});\r\n\r\nVue.use(VXETable);\r\n\r\n/* eslint-disable no-new */\r\nnew Vue({\r\n    el: '#app',\r\n    store,\r\n    router,\r\n    template: '<App/>',\r\n    components: { App }\r\n});\r\n","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=style&index=0&id=e3e2d586&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=style&index=0&id=e3e2d586&lang=scss&scoped=true&\"","import mod from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js!../node_modules/css-loader/index.js??ref--11-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/lib/index.js??ref--11-2!../node_modules/sass-loader/lib/loader.js??ref--11-3!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js!../node_modules/css-loader/index.js??ref--11-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/lib/index.js??ref--11-2!../node_modules/sass-loader/lib/loader.js??ref--11-3!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&lang=scss&\"","module.exports = \"data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/PjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+PHN2ZyB0PSIxNTM4NzI0OTYzNDEzIiBjbGFzcz0iaWNvbiIgc3R5bGU9IiIgdmlld0JveD0iMCAwIDEwMjQgMTAyNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHAtaWQ9IjIwMzkiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB3aWR0aD0iMzIiIGhlaWdodD0iMzIiPjxkZWZzPjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+QGZvbnQtZmFjZSB7IGZvbnQtZmFtaWx5OiByYmljb247IHNyYzogdXJsKCJjaHJvbWUtZXh0ZW5zaW9uOi8vZGlwaWFnaWlvaGZsamNpY2VncGdmZnBibmptZ2pjbmYvZm9udHMvcmJpY29uLndvZmYyIikgZm9ybWF0KCJ3b2ZmMiIpOyBmb250LXdlaWdodDogbm9ybWFsOyBmb250LXN0eWxlOiBub3JtYWw7IH0NCjwvc3R5bGU+PC9kZWZzPjxwYXRoIGQ9Ik04MDkuNiA0MTYuNjRoLTUzLjc2VjMwOC40OGMwLTEzNS42OC0xMDguMDk2LTI0My44NC0yNDMuMi0yNDMuODQtMTM1LjA0IDAtMjQzLjIgMTA4LjE2LTI0My4yIDI0My44NHYxMDguMTZoLTUzLjc2Yy0yOS40NCAwLTUzLjc2IDI0LjMyLTUzLjc2IDUzLjc2djQzMy4yOGMwIDI5LjQ0IDI0LjMyIDUzLjc2IDUzLjc2IDUzLjc2aDU5My45MmMzMC4wOCAwIDU0LjQtMjQuMzIgNTQuNC01My43NlY0NzAuNGMwLTI5LjQ0LTI0LjMyLTUzLjc2LTU0LjQtNTMuNzZ6IG0tMTM1LjA0IDBIMzUwLjcyVjMwOC40OGMwLTg5LjYgNzIuOTYtMTYyLjU2IDE2MS45Mi0xNjIuNTZhMTYyLjU2IDE2Mi41NiAwIDAgMSAxNjEuOTIgMTYyLjU2djEwOC4xNnoiIHAtaWQ9IjIwNDAiIGZpbGw9IiM4ODlhYTQiPjwvcGF0aD48L3N2Zz4=\"","/* 合法uri*/\r\nexport function validateURL(textval) {\r\n    const urlregex = /^(https?|ftp):\\/\\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\\/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*$/;\r\n    return urlregex.test(textval);\r\n}\r\n\r\n/* 小写字母*/\r\nexport function validateLowerCase(str) {\r\n    const reg = /^[a-z]+$/;\r\n    return reg.test(str);\r\n}\r\n\r\n/* 大写字母*/\r\nexport function validateUpperCase(str) {\r\n    const reg = /^[A-Z]+$/;\r\n    return reg.test(str);\r\n}\r\n\r\n/* 大小写字母*/\r\nexport function validateAlphabets(str) {\r\n    const reg = /^[A-Za-z]+$/;\r\n    return reg.test(str);\r\n}\r\n\r\n/**\r\n * validate email\r\n * @param email\r\n * @returns {boolean}\r\n */\r\nexport function validateEmail(email) {\r\n    const re = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n    return re.test(email);\r\n}\r\n\r\n/**\r\n * validate 电话号码的连排\r\n * @param contacts\r\n * @returns {boolean}\r\n */\r\nexport function validateContacts(contacts) {\r\n    const regf = /^([0-9]+-?[0-9]+)(\\s*,\\s*[0-9]+-?[0-9]+)*$/;\r\n    return regf.test(contacts);\r\n}","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Breadcrumb.vue?vue&type=style&index=0&id=eab4fe98&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Breadcrumb.vue?vue&type=style&index=0&id=eab4fe98&lang=scss&scoped=true&\"","export const isDebug = true;\r\nexport const userInfoCacheKey = 'tl-oa-userInfo';\r\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&id=13be35b0&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&id=13be35b0&lang=scss&scoped=true&\"","import mod from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--11-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&lang=scss&\"; export default mod; export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../../node_modules/css-loader/index.js??ref--11-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&lang=scss&\"","import Vue from 'vue';\r\nlet event = new Vue();\r\nexport default event;","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Breadcrumb.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Breadcrumb.vue?vue&type=script&lang=js&\"","<template>\r\n    <el-breadcrumb class=\"app-breadcrumb\"\r\n                   separator=\"/\">\r\n        <transition-group name=\"breadcrumb\">\r\n            <el-breadcrumb-item v-for=\"(item, index) in levelList\"\r\n                                :key=\"item.path\">\r\n                <div style=\"display: inline-block;\" v-if=\"item.meta.title\">\r\n                    <span v-if=\"item.redirect === 'noredirect' || index == levelList.length - 1\"\r\n                          class=\"no-redirect\">{{ item.meta.title }}</span>\r\n                    <!-- <router-link v-else\r\n                                 :to=\"item.redirect || item.path\">{{ item.meta.title }}</router-link> -->\r\n                        <span v-else>{{ item.meta.title }}</span>\r\n                </div>\r\n            </el-breadcrumb-item>\r\n        </transition-group>\r\n    </el-breadcrumb>\r\n</template>\r\n\r\n<script>\r\n  import pathToRegexp from 'path-to-regexp';\r\n\r\n  export default {\r\n      data() {\r\n          return {\r\n              levelList: null\r\n          };\r\n      },\r\n\r\n      watch: {\r\n          $route() {\r\n              this.getBreadcrumb();\r\n          }\r\n      },\r\n\r\n      created() {\r\n          this.getBreadcrumb();\r\n      },\r\n\r\n      methods: {\r\n          getBreadcrumb() {\r\n              const { params } = this.$route;\r\n\r\n              let matched = this.$route.matched.filter((item) => {\r\n                  if (item.name) {\r\n                      var toPath = pathToRegexp.compile(item.path);\r\n                      item.path = toPath(params);\r\n                      return true;\r\n                  }\r\n              });\r\n              const first = matched[0];\r\n              if (first && first.name.trim().toLowerCase() !== 'dashboard'.toLowerCase()) {\r\n                  matched = [{ path: '/dashboard', meta: { title: '首页' } }].concat(matched);\r\n              }\r\n              this.levelList = matched;\r\n          }\r\n      }\r\n  };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n    .app-breadcrumb.el-breadcrumb {\r\n        display: inline-block;\r\n        font-size: 14px;\r\n        line-height: 50px;\r\n        margin-left: 10px;\r\n\r\n        .no-redirect {\r\n            color: #97a8be;\r\n            cursor: text;\r\n        }\r\n    }\r\n</style>\r\n","import { render, staticRenderFns } from \"./Breadcrumb.vue?vue&type=template&id=eab4fe98&scoped=true&\"\nimport script from \"./Breadcrumb.vue?vue&type=script&lang=js&\"\nexport * from \"./Breadcrumb.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Breadcrumb.vue?vue&type=style&index=0&id=eab4fe98&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"eab4fe98\",\n  null\n  \n)\n\ncomponent.options.__file = \"Breadcrumb.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-breadcrumb',{staticClass:\"app-breadcrumb\",attrs:{\"separator\":\"/\"}},[_c('transition-group',{attrs:{\"name\":\"breadcrumb\"}},_vm._l((_vm.levelList),function(item,index){return _c('el-breadcrumb-item',{key:item.path},[(item.meta.title)?_c('div',{staticStyle:{\"display\":\"inline-block\"}},[(item.redirect === 'noredirect' || index == _vm.levelList.length - 1)?_c('span',{staticClass:\"no-redirect\"},[_vm._v(_vm._s(item.meta.title))]):_c('span',[_vm._v(_vm._s(item.meta.title))])]):_vm._e()])}))],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resetPwdDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resetPwdDialog.vue?vue&type=script&lang=js&\"","<template>\r\n    <el-dialog title=\"重置密码\"\r\n               width=\"420px\"\r\n               :visible=\"show\"\r\n               :before-close=\"cancelResetPwd\">\r\n        <el-form ref=\"resetPwdForm\"\r\n                 :model=\"form\"\r\n                 label-width=\"80px\"\r\n                 :rules=\"rules\">\r\n            <el-form-item label=\"旧的密码\"\r\n                          prop=\"oldPwd\"\r\n                          v-show=\"+type === 1\">\r\n                <el-input v-model=\"form.oldPwd\"\r\n                          placeholder=\"请输入旧的密码\"\r\n                          type=\"password\"\r\n                          auto-complete=\"off\"></el-input>\r\n            </el-form-item>\r\n\r\n            <el-form-item label=\"新的密码\"\r\n                          prop=\"pwd\">\r\n                <el-input v-model=\"form.pwd\"\r\n                          placeholder=\"请输入新的密码\"\r\n                          type=\"password\"\r\n                          auto-complete=\"off\"></el-input>\r\n            </el-form-item>\r\n\r\n            <el-form-item label=\"\"\r\n                          prop=\"repeatPwd\">\r\n                <el-input v-model=\"form.repeatPwd\"\r\n                          placeholder=\"请再次输入新的密码\"\r\n                          type=\"password\"\r\n                          auto-complete=\"off\"></el-input>\r\n            </el-form-item>\r\n        </el-form>\r\n        <div slot=\"footer\"\r\n             class=\"dialog-footer\">\r\n            <el-button @click=\"cancelResetPwd\">取消</el-button>\r\n            <el-button type=\"primary\"\r\n                       @click=\"confirmResetPwd\">重置密码</el-button>\r\n        </div>\r\n    </el-dialog>\r\n</template>\r\n\r\n<script>\r\n    import * as Types from '@/store/types';\r\n    import md5 from 'blueimp-md5';\r\n\r\n    export default {\r\n        name: 'resetPwdDialog',\r\n\r\n        props: {\r\n            show: {\r\n                type: Boolean,\r\n                default: false\r\n            },\r\n\r\n            uin: {\r\n                type: [Number, String],\r\n                default: 0\r\n            },\r\n\r\n            type: {\r\n                type: [Number, String],\r\n                default: 1\r\n            },\r\n\r\n            closeDialogFn: {\r\n                type: Function,\r\n                default: () => {}\r\n            }\r\n        },\r\n\r\n        data() {\r\n            return {\r\n                form: {\r\n                    oldPwd: '',\r\n                    pwd: '',\r\n                    repeatPwd: ''\r\n                },\r\n                rules: {\r\n                    oldPwd: [\r\n                        {\r\n                            validator: (rule, value, callback) => {\r\n                                if (+this.type !== 1) {\r\n                                    callback();\r\n                                } else if (!value) {\r\n                                    callback(new Error('请输入旧的密码'));\r\n                                } else if (value.length < 8) {\r\n                                    callback(new Error('旧的密码至少需要8位'));\r\n                                } else {\r\n                                    callback();\r\n                                }\r\n                            },\r\n                            trigger: 'blur'\r\n                        }\r\n                    ],\r\n                    pwd: [\r\n                        {\r\n                            validator: (rule, value, callback) => {\r\n                                if (!value) {\r\n                                    callback(new Error('请输入密码'));\r\n                                } else if (value.length < 8) {\r\n                                    callback(new Error('新的密码至少需要8位'));\r\n                                } else {\r\n                                    if (this.form.repeatPwd !== '') {\r\n                                        this.$refs.resetPwdForm.validateField('repeatPwd');\r\n                                    }\r\n                                    callback();\r\n                                }\r\n                            },\r\n                            trigger: 'blur'\r\n                        }\r\n                    ],\r\n                    repeatPwd: [\r\n                        {\r\n                            validator: (rule, value, callback) => {\r\n                                if (!value) {\r\n                                    callback(new Error('请再次输入密码'));\r\n                                } else if (value !== this.form.pwd) {\r\n                                    callback(new Error('两次输入密码不一致!'));\r\n                                } else {\r\n                                    callback();\r\n                                }\r\n                            },\r\n                            trigger: 'blur'\r\n                        }\r\n                    ]\r\n                }\r\n            };\r\n        },\r\n\r\n        computed: {\r\n            mobile({ $store }) {\r\n                return $store.state.user.mobile || '';\r\n            }\r\n        },\r\n\r\n        methods: {\r\n            confirmResetPwd() {\r\n                this.$refs.resetPwdForm.validate((valid) => {\r\n                    if (!valid) {\r\n                        return false;\r\n                    }\r\n\r\n                    let resetFn  = this.$store.dispatch(Types.MODIFY_PASSWORD, {\r\n                        oldpwd: md5(this.form.oldPwd),\r\n                        newpwd: md5(this.form.pwd)\r\n                    });\r\n\r\n                    resetFn.then(\r\n                        () => {\r\n                            this.cancelResetPwd();\r\n                            this.$message({\r\n                                type: 'success',\r\n                                message: '重置密码成功'\r\n                            });\r\n                        },\r\n                        () => {\r\n                            this.$message({\r\n                                type: 'error',\r\n                                message: '重置密码失败'\r\n                            });\r\n                        }\r\n                    );\r\n                });\r\n            },\r\n\r\n            cancelResetPwd() {\r\n                this.form.pwd = '';\r\n                this.form.repeatPwd = '';\r\n                this.closeDialogFn();\r\n            }\r\n        }\r\n    };\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n</style>\r\n","import { render, staticRenderFns } from \"./resetPwdDialog.vue?vue&type=template&id=286d8a4c&\"\nimport script from \"./resetPwdDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./resetPwdDialog.vue?vue&type=script&lang=js&\"\nimport style0 from \"./resetPwdDialog.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\ncomponent.options.__file = \"resetPwdDialog.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dialog',{attrs:{\"title\":\"重置密码\",\"width\":\"420px\",\"visible\":_vm.show,\"before-close\":_vm.cancelResetPwd}},[_c('el-form',{ref:\"resetPwdForm\",attrs:{\"model\":_vm.form,\"label-width\":\"80px\",\"rules\":_vm.rules}},[_c('el-form-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(+_vm.type === 1),expression:\"+type === 1\"}],attrs:{\"label\":\"旧的密码\",\"prop\":\"oldPwd\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入旧的密码\",\"type\":\"password\",\"auto-complete\":\"off\"},model:{value:(_vm.form.oldPwd),callback:function ($$v) {_vm.$set(_vm.form, \"oldPwd\", $$v)},expression:\"form.oldPwd\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"新的密码\",\"prop\":\"pwd\"}},[_c('el-input',{attrs:{\"placeholder\":\"请输入新的密码\",\"type\":\"password\",\"auto-complete\":\"off\"},model:{value:(_vm.form.pwd),callback:function ($$v) {_vm.$set(_vm.form, \"pwd\", $$v)},expression:\"form.pwd\"}})],1),_vm._v(\" \"),_c('el-form-item',{attrs:{\"label\":\"\",\"prop\":\"repeatPwd\"}},[_c('el-input',{attrs:{\"placeholder\":\"请再次输入新的密码\",\"type\":\"password\",\"auto-complete\":\"off\"},model:{value:(_vm.form.repeatPwd),callback:function ($$v) {_vm.$set(_vm.form, \"repeatPwd\", $$v)},expression:\"form.repeatPwd\"}})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"dialog-footer\",attrs:{\"slot\":\"footer\"},slot:\"footer\"},[_c('el-button',{on:{\"click\":_vm.cancelResetPwd}},[_vm._v(\"取消\")]),_vm._v(\" \"),_c('el-button',{attrs:{\"type\":\"primary\"},on:{\"click\":_vm.confirmResetPwd}},[_vm._v(\"重置密码\")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Navbar.vue?vue&type=script&lang=js&\"","<template>\r\n    <div class=\"navbar\">\r\n        <div class=\"hamburger-container\">\r\n            <svg :class=\"{'is-active':sidebar.opened}\"\r\n                 t=\"1492500959545\"\r\n                 class=\"hamburger\"\r\n                 style=\"\"\r\n                 viewBox=\"0 0 1024 1024\"\r\n                 version=\"1.1\"\r\n                 xmlns=\"http://www.w3.org/2000/svg\"\r\n                 p-id=\"1691\"\r\n                 xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n                 width=\"64\"\r\n                 height=\"64\"\r\n                 @click=\"toggleSideBar\">\r\n                <path d=\"M966.8023 568.849776 57.196677 568.849776c-31.397081 0-56.850799-25.452695-56.850799-56.850799l0 0c0-31.397081 25.452695-56.849776 56.850799-56.849776l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.849776l0 0C1023.653099 543.397081 998.200404 568.849776 966.8023 568.849776z\"\r\n                      p-id=\"1692\" />\r\n                <path d=\"M966.8023 881.527125 57.196677 881.527125c-31.397081 0-56.850799-25.452695-56.850799-56.849776l0 0c0-31.397081 25.452695-56.849776 56.850799-56.849776l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.849776l0 0C1023.653099 856.07443 998.200404 881.527125 966.8023 881.527125z\"\r\n                      p-id=\"1693\" />\r\n                <path d=\"M966.8023 256.17345 57.196677 256.17345c-31.397081 0-56.850799-25.452695-56.850799-56.849776l0 0c0-31.397081 25.452695-56.850799 56.850799-56.850799l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.850799l0 0C1023.653099 230.720755 998.200404 256.17345 966.8023 256.17345z\"\r\n                      p-id=\"1694\" />\r\n            </svg>\r\n        </div>\r\n\r\n        <breadcrumb class=\"breadcrumb-container\" />\r\n\r\n        <div class=\"right-menu\">\r\n            <el-dropdown class=\"avatar-container right-menu-item\"\r\n                         trigger=\"click\">\r\n                <div class=\"avatar-wrapper\">\r\n                    <img :src=\"avatar\"\r\n                         class=\"user-avatar\">\r\n                    <div class=\"nickname\">{{name}}</div>\r\n                </div>\r\n                <el-dropdown-menu slot=\"dropdown\">\r\n                    <div class=\"userInfo-dropdown-container\">\r\n                        <div class=\"avatar\">\r\n                            <img :src=\"avatar\" />\r\n                        </div>\r\n                        <div class=\"nickname\">{{name}}</div>\r\n                        <div class=\"department\">{{depName}} - {{position}}</div>\r\n                    </div>\r\n\r\n                    <div class=\"userInfo-dropdown-btns\">\r\n                        <el-button class=\"userInfo-dropdown-btn\"\r\n                                   @click=\"resetPwd\"\r\n                                   type=\"primary\"\r\n                                   size=\"small\"\r\n                                   plain>修改密码</el-button>\r\n                        <el-button class=\"userInfo-dropdown-btn\"\r\n                                   @click=\"logout\"\r\n                                   type=\"primary\"\r\n                                   size=\"small\"\r\n                                   plain>退出</el-button>\r\n                    </div>\r\n                </el-dropdown-menu>\r\n            </el-dropdown>\r\n        </div>\r\n\r\n        <reset-pwd-dialog :show=\"showResetPwdDialog\"\r\n                          :uin=\"uin\"\r\n                          :close-dialog-fn=\"closeResetPwdDialog\"></reset-pwd-dialog>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\n    import * as Types from '@/store/types';\r\n    import Cookies from 'js-cookie';\r\n    import Breadcrumb from './Breadcrumb';\r\n    import ResetPwdDialog from '@/components/resetPwdDialog.vue';\r\n\r\n    export default {\r\n        components: {\r\n            Breadcrumb,\r\n            ResetPwdDialog\r\n        },\r\n\r\n        data() {\r\n            return {\r\n                showResetPwdDialog: false,\r\n                uin: Cookies.get('uin')\r\n            };\r\n        },\r\n\r\n        computed: {\r\n            sidebar({ $store }) {\r\n                return $store.state.app.sidebar;\r\n            },\r\n\r\n            device({ $store }) {\r\n                return $store.state.app.device;\r\n            },\r\n\r\n            name({ $store }) {\r\n                return $store.state.user.name || '';\r\n            },\r\n\r\n            avatar({ $store }) {\r\n                return $store.state.user.avatar || '';\r\n            },\r\n\r\n            depName({ $store }) {\r\n                return $store.state.user.depName || '';\r\n            },\r\n\r\n            position({ $store }) {\r\n                return $store.state.user.position || '';\r\n            }\r\n        },\r\n\r\n        methods: {\r\n            toggleSideBar() {\r\n                this.$store.commit(Types.TOGGLE_SIDEBAR);\r\n            },\r\n\r\n            resetPwd() {\r\n                this.showResetPwdDialog = true;\r\n            },\r\n\r\n            closeResetPwdDialog() {\r\n                this.showResetPwdDialog = false;\r\n            },\r\n\r\n            logout() {\r\n                this.$store.dispatch(Types.LOGOUT).then(() => {\r\n                    location.reload();\r\n                });\r\n            }\r\n        }\r\n    };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n    .navbar {\r\n        height: 50px;\r\n        line-height: 50px;\r\n        border-radius: 0px !important;\r\n        box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 3px 0 rgba(0, 0, 0, 0.04);\r\n\r\n        .hamburger-container {\r\n            line-height: 58px;\r\n            height: 50px;\r\n            float: left;\r\n            padding: 0 10px;\r\n\r\n            .hamburger {\r\n                display: inline-block;\r\n                cursor: pointer;\r\n                width: 20px;\r\n                height: 20px;\r\n                transform: rotate(90deg);\r\n                transition: 0.38s;\r\n                transform-origin: 50% 50%;\r\n            }\r\n\r\n            .hamburger.is-active {\r\n                transform: rotate(0deg);\r\n            }\r\n        }\r\n\r\n        .breadcrumb-container {\r\n            float: left;\r\n        }\r\n\r\n        .right-menu {\r\n            float: right;\r\n            height: 100%;\r\n\r\n            &:focus {\r\n                outline: none;\r\n            }\r\n\r\n            .right-menu-item {\r\n                display: inline-block;\r\n                margin: 0 8px;\r\n            }\r\n\r\n            .avatar-container {\r\n                height: 50px;\r\n                margin-right: 30px;\r\n\r\n                .avatar-wrapper {\r\n                    cursor: pointer;\r\n                    margin-top: 5px;\r\n                    position: relative;\r\n\r\n                    .user-avatar {\r\n                        width: 40px;\r\n                        height: 40px;\r\n                        border-radius: 50px;\r\n                    }\r\n\r\n                    .nickname {\r\n                        float: right;\r\n                        margin-left: 10px;\r\n                        line-height: 40px;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    .userInfo-dropdown-container {\r\n        margin-bottom: 10px;\r\n        width: 240px;\r\n        text-align: center;\r\n\r\n        .avatar {\r\n            position: relative;\r\n            margin: 10px auto;\r\n            width: 80px;\r\n            padding-top: 80px;\r\n            font-size: 0;\r\n\r\n            img {\r\n                position: absolute;\r\n                top: 0;\r\n                left: 0;\r\n                right: 0;\r\n                bottom: 0;\r\n                width: 100%;\r\n                height: 100%;\r\n                border-radius: 50%;\r\n            }\r\n        }\r\n\r\n        .nickname {\r\n            font-size: 18px;\r\n            color: #333;\r\n        }\r\n\r\n        .department,\r\n        .job {\r\n            line-height: 20px;\r\n            font-size: 12px;\r\n            color: #999;\r\n        }\r\n    }\r\n\r\n    .userInfo-dropdown-btns {\r\n        overflow: hidden;\r\n        margin: 20px 15px 10px;\r\n\r\n        .userInfo-dropdown-btn {\r\n            width: 85px !important;\r\n            box-sizing: border-box;\r\n        }\r\n\r\n        .userInfo-dropdown-btn:first-child {\r\n            float: left;\r\n        }\r\n\r\n        .userInfo-dropdown-btn:last-child {\r\n            float: right;\r\n        }\r\n    }\r\n</style>\r\n","import { render, staticRenderFns } from \"./Navbar.vue?vue&type=template&id=e3e2d586&scoped=true&\"\nimport script from \"./Navbar.vue?vue&type=script&lang=js&\"\nexport * from \"./Navbar.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Navbar.vue?vue&type=style&index=0&id=e3e2d586&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"e3e2d586\",\n  null\n  \n)\n\ncomponent.options.__file = \"Navbar.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"navbar\"},[_c('div',{staticClass:\"hamburger-container\"},[_c('svg',{staticClass:\"hamburger\",class:{'is-active':_vm.sidebar.opened},attrs:{\"t\":\"1492500959545\",\"viewBox\":\"0 0 1024 1024\",\"version\":\"1.1\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"p-id\":\"1691\",\"xmlns:xlink\":\"http://www.w3.org/1999/xlink\",\"width\":\"64\",\"height\":\"64\"},on:{\"click\":_vm.toggleSideBar}},[_c('path',{attrs:{\"d\":\"M966.8023 568.849776 57.196677 568.849776c-31.397081 0-56.850799-25.452695-56.850799-56.850799l0 0c0-31.397081 25.452695-56.849776 56.850799-56.849776l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.849776l0 0C1023.653099 543.397081 998.200404 568.849776 966.8023 568.849776z\",\"p-id\":\"1692\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M966.8023 881.527125 57.196677 881.527125c-31.397081 0-56.850799-25.452695-56.850799-56.849776l0 0c0-31.397081 25.452695-56.849776 56.850799-56.849776l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.849776l0 0C1023.653099 856.07443 998.200404 881.527125 966.8023 881.527125z\",\"p-id\":\"1693\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M966.8023 256.17345 57.196677 256.17345c-31.397081 0-56.850799-25.452695-56.850799-56.849776l0 0c0-31.397081 25.452695-56.850799 56.850799-56.850799l909.605623 0c31.397081 0 56.849776 25.452695 56.849776 56.850799l0 0C1023.653099 230.720755 998.200404 256.17345 966.8023 256.17345z\",\"p-id\":\"1694\"}})])]),_vm._v(\" \"),_c('breadcrumb',{staticClass:\"breadcrumb-container\"}),_vm._v(\" \"),_c('div',{staticClass:\"right-menu\"},[_c('el-dropdown',{staticClass:\"avatar-container right-menu-item\",attrs:{\"trigger\":\"click\"}},[_c('div',{staticClass:\"avatar-wrapper\"},[_c('img',{staticClass:\"user-avatar\",attrs:{\"src\":_vm.avatar}}),_vm._v(\" \"),_c('div',{staticClass:\"nickname\"},[_vm._v(_vm._s(_vm.name))])]),_vm._v(\" \"),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('div',{staticClass:\"userInfo-dropdown-container\"},[_c('div',{staticClass:\"avatar\"},[_c('img',{attrs:{\"src\":_vm.avatar}})]),_vm._v(\" \"),_c('div',{staticClass:\"nickname\"},[_vm._v(_vm._s(_vm.name))]),_vm._v(\" \"),_c('div',{staticClass:\"department\"},[_vm._v(_vm._s(_vm.depName)+\" - \"+_vm._s(_vm.position))])]),_vm._v(\" \"),_c('div',{staticClass:\"userInfo-dropdown-btns\"},[_c('el-button',{staticClass:\"userInfo-dropdown-btn\",attrs:{\"type\":\"primary\",\"size\":\"small\",\"plain\":\"\"},on:{\"click\":_vm.resetPwd}},[_vm._v(\"修改密码\")]),_vm._v(\" \"),_c('el-button',{staticClass:\"userInfo-dropdown-btn\",attrs:{\"type\":\"primary\",\"size\":\"small\",\"plain\":\"\"},on:{\"click\":_vm.logout}},[_vm._v(\"退出\")])],1)])],1)],1),_vm._v(\" \"),_c('reset-pwd-dialog',{attrs:{\"show\":_vm.showResetPwdDialog,\"uin\":_vm.uin,\"close-dialog-fn\":_vm.closeResetPwdDialog}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Link.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Link.vue?vue&type=script&lang=js&\"","\r\n<template>\r\n    <!-- eslint-disable vue/require-component-is-->\r\n    <component v-bind=\"linkProps(to)\">\r\n        <slot />\r\n    </component>\r\n</template>\r\n\r\n<script>\r\n    import { validateURL } from '@/utils/validate';\r\n\r\n    export default {\r\n        props: {\r\n            to: {\r\n                type: String,\r\n                required: true\r\n            }\r\n        },\r\n        methods: {\r\n            isExternalLink(routePath) {\r\n                return validateURL(routePath);\r\n            },\r\n            linkProps(url) {\r\n                if (this.isExternalLink(url)) {\r\n                    return {\r\n                        is: 'a',\r\n                        href: url,\r\n                        target: '_blank',\r\n                        rel: 'noopener'\r\n                    };\r\n                }\r\n                return {\r\n                    is: 'router-link',\r\n                    to: url\r\n                };\r\n            }\r\n        }\r\n    };\r\n</script>\r\n","import { render, staticRenderFns } from \"./Link.vue?vue&type=template&id=04754004&\"\nimport script from \"./Link.vue?vue&type=script&lang=js&\"\nexport * from \"./Link.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\ncomponent.options.__file = \"Link.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('component',_vm._b({},'component',_vm.linkProps(_vm.to),false),[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=script&lang=js&\"","<template>\r\n    <div v-if=\"!item.hidden && item.children\"\r\n         class=\"menu-wrapper\">\r\n        <!-- 单个菜单 -->\r\n        <template v-if=\"hasOneShowingChild(item.children, item) && (!onlyOneChild.children || onlyOneChild.noShowingChildren) && !item.alwaysShow\">\r\n            <app-link :to=\"resolvePath(onlyOneChild.path)\">\r\n                <el-menu-item :index=\"resolvePath(onlyOneChild.path)\"\r\n                              :class=\"{'submenu-title-noDropdown': !isNest}\">\r\n                    <i class=\"icon menu-icon\"\r\n                       :class=\"[onlyOneChild.meta && onlyOneChild.meta.icon ? onlyOneChild.meta.icon : '']\"\r\n                       v-if=\"onlyOneChild.meta && onlyOneChild.meta.icon\"></i>\r\n                    <span slot='title'\r\n                          class=\"title\"\r\n                          v-if=\"onlyOneChild.meta && onlyOneChild.meta.title\">{{onlyOneChild.meta.title}}</span>\r\n                </el-menu-item>\r\n            </app-link>\r\n        </template>\r\n\r\n        <!-- 多个菜单 -->\r\n        <el-submenu v-else\r\n                    ref=\"submenu\"\r\n                    :index=\"resolvePath(item.path)\">\r\n            <template slot=\"title\">\r\n                <i class=\"icon menu-icon\"\r\n                   :class=\"[item.meta && item.meta.icon ? item.meta.icon : '']\"\r\n                   v-if=\"item.meta && item.meta.icon\"></i>\r\n                <span slot='title'\r\n                      class=\"title\"\r\n                      v-if=\"item.meta && item.meta.title\">{{item.meta.title}}</span>\r\n            </template>\r\n\r\n            <template v-for=\"child in item.children\">\r\n                <div class=\"submenu-wrapper\"\r\n                     v-if=\"!child.hidden\"\r\n                     :key=\"child.path\">\r\n                    <sidebar-item v-if=\"child.children && child.children.length > 0\"\r\n                                  :is-nest=\"true\"\r\n                                  :item=\"child\"\r\n                                  :key=\"child.path\"\r\n                                  :base-path=\"resolvePath(child.path)\"\r\n                                  class=\"nest-menu\" />\r\n\r\n                    <app-link v-else\r\n                              :to=\"resolvePath(child.path)\"\r\n                              :key=\"child.name\">\r\n                        <el-menu-item :index=\"resolvePath(child.path)\">\r\n                            <i class=\"icon\"\r\n                               :class=\"[child.meta && child.meta.icon ? child.meta.icon : '']\"\r\n                               v-if=\"child.meta && child.meta.icon\"></i>\r\n                            <span slot='title'\r\n                                  class=\"title\"\r\n                                  v-if=\"child.meta && child.meta.title\">{{child.meta.title}}</span>\r\n                        </el-menu-item>\r\n                    </app-link>\r\n                </div>\r\n            </template>\r\n        </el-submenu>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\n    import path from 'path';\r\n    import { validateURL } from '@/utils/validate';\r\n    import AppLink from './Link';\r\n    import FixiOSBug from './FixiOSBug';\r\n\r\n    export default {\r\n        name: 'SidebarItem',\r\n\r\n        components: { AppLink },\r\n\r\n        mixins: [FixiOSBug],\r\n\r\n        props: {\r\n            item: {\r\n                type: Object,\r\n                required: true\r\n            },\r\n\r\n            isNest: {\r\n                type: Boolean,\r\n                default: false\r\n            },\r\n\r\n            basePath: {\r\n                type: String,\r\n                default: ''\r\n            }\r\n        },\r\n\r\n        data() {\r\n            return {\r\n                onlyOneChild: null\r\n            };\r\n        },\r\n\r\n        methods: {\r\n            hasOneShowingChild(children, parent) {\r\n                const showingChildren = children.filter((item) => {\r\n                    if (item.hidden) {\r\n                        return false;\r\n                    } else {\r\n                        this.onlyOneChild = item;\r\n                        return true;\r\n                    }\r\n                });\r\n\r\n                if (showingChildren.length === 1) {\r\n                    return true;\r\n                }\r\n\r\n                if (showingChildren.length === 0) {\r\n                    this.onlyOneChild = { ...parent, path: '', noShowingChildren: true };\r\n                    return true;\r\n                }\r\n\r\n                return false;\r\n            },\r\n\r\n            resolvePath(routePath) {\r\n                if (this.isExternalLink(routePath)) {\r\n                    return routePath;\r\n                }\r\n                return path.resolve(this.basePath, routePath);\r\n            },\r\n\r\n            isExternalLink(routePath) {\r\n                return validateURL(routePath);\r\n            }\r\n        }\r\n    };\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n    ul[role='menubar'] > .menu-wrapper > .el-submenu .el-menu {\r\n        > .submenu-wrapper {\r\n            // 单层菜单\r\n            .el-menu-item {\r\n                padding-left: 55px !important;\r\n            }\r\n\r\n            // 多层\r\n            > .menu-wrapper > .el-submenu {\r\n                .el-submenu__title {\r\n                    padding-left: 55px !important;\r\n                }\r\n\r\n                // 3层\r\n                .el-menu {\r\n                    .el-menu-item {\r\n                        padding-left: 70px !important;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n    .warehouse {\r\n            width: 16px;\r\n            background: url('../../../../assets/warehouse.png') no-repeat center;\r\n            background-size: 16px;\r\n    }\r\n    .menu-icon {\r\n        display: inline-block;\r\n        margin-right: 16px;\r\n        height: 16px;\r\n    }\r\n\r\n    .icon-home {\r\n        width: 16px;\r\n        background: url('../../../../assets/icon-home.png') no-repeat center;\r\n        background-size: 16px;\r\n    }\r\n\r\n    .icon-system {\r\n        width: 16px;\r\n        background: url('../../../../assets/icon-system.png') no-repeat center;\r\n        background-size: 16px;\r\n    }\r\n\r\n    .icon-hr {\r\n        width: 16px;\r\n        background: url('../../../../assets/icon-hr.png') no-repeat center;\r\n        background-size: 16px;\r\n    }\r\n\r\n    .icon-sell {\r\n        width: 16px;\r\n        background: url('../../../../assets/icon-sell.png') no-repeat center;\r\n        background-size: 16px;\r\n    }\r\n\r\n    .icon-form {\r\n        width: 16px;\r\n        background: url('../../../../assets/icon-form.png') no-repeat center;\r\n        background-size: 16px;\r\n    }\r\n\r\n    .icon-redpack {\r\n        width: 16px;\r\n        background: url('../../../../assets/icon-redpack.png') no-repeat center;\r\n        background-size: 16px;\r\n    }\r\n\r\n    .is-active {\r\n        > .icon-home {\r\n            background: url('../../../../assets/icon-home-active.png') no-repeat center;\r\n            background-size: 16px;\r\n        }\r\n\r\n        .icon-system {\r\n            background: url('../../../../assets/icon-system-active.png') no-repeat center;\r\n            background-size: 16px;\r\n        }\r\n\r\n        .icon-hr {\r\n            background: url('../../../../assets/icon-hr-active.png') no-repeat center;\r\n            background-size: 16px;\r\n        }\r\n\r\n        .icon-sell {\r\n            background: url('../../../../assets/icon-sell-active.png') no-repeat center;\r\n            background-size: 16px;\r\n        }\r\n\r\n        .icon-form {\r\n            background: url('../../../../assets/icon-form-active.png') no-repeat center;\r\n            background-size: 16px;\r\n        } \r\n\r\n        .icon-redpack {\r\n            background: url('../../../../assets/icon-redpack-active.png') no-repeat center;\r\n            background-size: 16px;\r\n        }\r\n\r\n        .warehouse {\r\n            width: 16px;\r\n            background: url('../../../../assets/warehouse-active.png') no-repeat center;\r\n            background-size: 16px;\r\n    }\r\n    }\r\n\r\n    .nest-menu {\r\n        .el-menu {\r\n            li.el-menu-item {\r\n                padding: 0 25px 0 89px !important;\r\n            }\r\n        }\r\n    }\r\n</style>\r\n","export default {\r\n    computed: {\r\n        device() {\r\n            return this.$store.state.app.device;\r\n        }\r\n    },\r\n\r\n    mounted() {\r\n        // In order to fix the click on menu on the ios device will trigger the mouseeleave bug\r\n        // https://github.com/PanJiaChen/vue-element-admin/issues/1135\r\n        this.fixBugIniOS();\r\n    },\r\n\r\n    methods: {\r\n        fixBugIniOS() {\r\n            const $submenu = this.$refs.submenu;\r\n            if ($submenu) {\r\n                const handleMouseleave = $submenu.handleMouseleave;\r\n                $submenu.handleMouseleave = (e) => {\r\n                    if (this.device === 'mobile') {\r\n                        return;\r\n                    }\r\n                    handleMouseleave(e);\r\n                };\r\n            }\r\n        }\r\n    }\r\n};\r\n","import { render, staticRenderFns } from \"./SidebarItem.vue?vue&type=template&id=761f646e&\"\nimport script from \"./SidebarItem.vue?vue&type=script&lang=js&\"\nexport * from \"./SidebarItem.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SidebarItem.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\ncomponent.options.__file = \"SidebarItem.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.item.hidden && _vm.item.children)?_c('div',{staticClass:\"menu-wrapper\"},[(_vm.hasOneShowingChild(_vm.item.children, _vm.item) && (!_vm.onlyOneChild.children || _vm.onlyOneChild.noShowingChildren) && !_vm.item.alwaysShow)?[_c('app-link',{attrs:{\"to\":_vm.resolvePath(_vm.onlyOneChild.path)}},[_c('el-menu-item',{class:{'submenu-title-noDropdown': !_vm.isNest},attrs:{\"index\":_vm.resolvePath(_vm.onlyOneChild.path)}},[(_vm.onlyOneChild.meta && _vm.onlyOneChild.meta.icon)?_c('i',{staticClass:\"icon menu-icon\",class:[_vm.onlyOneChild.meta && _vm.onlyOneChild.meta.icon ? _vm.onlyOneChild.meta.icon : '']}):_vm._e(),_vm._v(\" \"),(_vm.onlyOneChild.meta && _vm.onlyOneChild.meta.title)?_c('span',{staticClass:\"title\",attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.onlyOneChild.meta.title))]):_vm._e()])],1)]:_c('el-submenu',{ref:\"submenu\",attrs:{\"index\":_vm.resolvePath(_vm.item.path)}},[_c('template',{slot:\"title\"},[(_vm.item.meta && _vm.item.meta.icon)?_c('i',{staticClass:\"icon menu-icon\",class:[_vm.item.meta && _vm.item.meta.icon ? _vm.item.meta.icon : '']}):_vm._e(),_vm._v(\" \"),(_vm.item.meta && _vm.item.meta.title)?_c('span',{staticClass:\"title\",attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.item.meta.title))]):_vm._e()]),_vm._v(\" \"),_vm._l((_vm.item.children),function(child){return [(!child.hidden)?_c('div',{key:child.path,staticClass:\"submenu-wrapper\"},[(child.children && child.children.length > 0)?_c('sidebar-item',{key:child.path,staticClass:\"nest-menu\",attrs:{\"is-nest\":true,\"item\":child,\"base-path\":_vm.resolvePath(child.path)}}):_c('app-link',{key:child.name,attrs:{\"to\":_vm.resolvePath(child.path)}},[_c('el-menu-item',{attrs:{\"index\":_vm.resolvePath(child.path)}},[(child.meta && child.meta.icon)?_c('i',{staticClass:\"icon\",class:[child.meta && child.meta.icon ? child.meta.icon : '']}):_vm._e(),_vm._v(\" \"),(child.meta && child.meta.title)?_c('span',{staticClass:\"title\",attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(child.meta.title))]):_vm._e()])],1)],1):_vm._e()]})],2)],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","<template>\r\n    <el-scrollbar wrap-class=\"scrollbar-wrapper\">\r\n        <el-menu :show-timeout=\"200\"\r\n                 :default-active=\"$route.path\"\r\n                 :collapse=\"isCollapse\"\r\n                 mode=\"vertical\"\r\n                 background-color=\"#ffffff\"\r\n                 text-color=\"#303133\"\r\n                 active-text-color=\"#409EFF\">\r\n            <sidebar-item v-for=\"route in routers\"\r\n                          :key=\"route.path\"\r\n                          :item=\"route\"\r\n                          :base-path=\"route.path\" />\r\n        </el-menu>\r\n    </el-scrollbar>\r\n</template>\r\n\r\n<script>\r\n    import SidebarItem from './SidebarItem';\r\n    import router from '@/router';\r\n\r\n    export default {\r\n        components: { SidebarItem },\r\n\r\n        data() {\r\n            return {\r\n                routers: []\r\n            };\r\n        },\r\n\r\n        computed: {\r\n            sidebar({ $store }) {\r\n                return $store.state.app.sidebar;\r\n            },\r\n\r\n            isCollapse() {\r\n                return !this.sidebar.opened;\r\n            }\r\n        },\r\n\r\n        created() {\r\n            this.routers = router.options.routes || [];\r\n        },\r\n    };\r\n</script>\r\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2ef1275a&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\ncomponent.options.__file = \"index.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-scrollbar',{attrs:{\"wrap-class\":\"scrollbar-wrapper\"}},[_c('el-menu',{attrs:{\"show-timeout\":200,\"default-active\":_vm.$route.path,\"collapse\":_vm.isCollapse,\"mode\":\"vertical\",\"background-color\":\"#ffffff\",\"text-color\":\"#303133\",\"active-text-color\":\"#409EFF\"}},_vm._l((_vm.routers),function(route){return _c('sidebar-item',{key:route.path,attrs:{\"item\":route,\"base-path\":route.path}})}))],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMain.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMain.vue?vue&type=script&lang=js&\"","<template>\r\n    <section class=\"app-main\">\r\n        <transition name=\"fade-transform\" mode=\"out-in\">\r\n            <!-- <router-view :key=\"key\" /> -->\r\n            <keep-alive :include=\"cachedViews\">\r\n                <router-view :key=\"key\" />\r\n            </keep-alive>\r\n        </transition>\r\n    </section>\r\n</template>\r\n\r\n<script>\r\n    export default {\r\n        name: 'AppMain',\r\n\r\n        computed: {\r\n            key() {\r\n                return this.$route.name;\r\n            },\r\n            cachedViews() {\r\n                return this.$store.state.tagsView.cachedViews;\r\n            },\r\n        }\r\n    };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n    .app-main {\r\n        /* navbar = 50 */\r\n        min-height: calc(100vh - 50px);\r\n        width: 100%;\r\n        position: relative;\r\n        overflow: hidden;\r\n    }\r\n\r\n    .hasTagsView {\r\n        .app-main {\r\n            /* 84 = navbar + tags-view = 50 + 34 */\r\n            min-height: calc(100vh - 84px);\r\n        }\r\n\r\n        .fixed-header+.app-main {\r\n            padding-top: 84px;\r\n        }\r\n    }\r\n</style>\r\n\r\n","import { render, staticRenderFns } from \"./AppMain.vue?vue&type=template&id=689483c0&scoped=true&\"\nimport script from \"./AppMain.vue?vue&type=script&lang=js&\"\nexport * from \"./AppMain.vue?vue&type=script&lang=js&\"\nimport style0 from \"./AppMain.vue?vue&type=style&index=0&id=689483c0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"689483c0\",\n  null\n  \n)\n\ncomponent.options.__file = \"AppMain.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"app-main\"},[_c('transition',{attrs:{\"name\":\"fade-transform\",\"mode\":\"out-in\"}},[_c('keep-alive',{attrs:{\"include\":_vm.cachedViews}},[_c('router-view',{key:_vm.key})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollPane.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollPane.vue?vue&type=script&lang=js&\"","<template>\r\n  <el-scrollbar ref=\"scrollContainer\" :vertical=\"false\" class=\"scroll-container\" @wheel.native.prevent=\"handleScroll\">\r\n    <slot />\r\n  </el-scrollbar>\r\n</template>\r\n\r\n<script>\r\nconst tagAndTagSpacing = 4 // tagAndTagSpacing\r\n\r\nexport default {\r\n  name: 'ScrollPane',\r\n  data() {\r\n    return {\r\n      left: 0\r\n    }\r\n  },\r\n  computed: {\r\n    scrollWrapper() {\r\n      return this.$refs.scrollContainer.$refs.wrap\r\n    }\r\n  },\r\n  methods: {\r\n    handleScroll(e) {\r\n      const eventDelta = e.wheelDelta || -e.deltaY * 40\r\n      const $scrollWrapper = this.scrollWrapper\r\n      $scrollWrapper.scrollLeft = $scrollWrapper.scrollLeft + eventDelta / 4\r\n    },\r\n    moveToTarget(currentTag) {\r\n      const $container = this.$refs.scrollContainer.$el\r\n      const $containerWidth = $container.offsetWidth\r\n      const $scrollWrapper = this.scrollWrapper\r\n      const tagList = this.$parent.$refs.tag\r\n\r\n      let firstTag = null\r\n      let lastTag = null\r\n\r\n      // find first tag and last tag\r\n      if (tagList.length > 0) {\r\n        firstTag = tagList[0]\r\n        lastTag = tagList[tagList.length - 1]\r\n      }\r\n\r\n      if (firstTag === currentTag) {\r\n        $scrollWrapper.scrollLeft = 0\r\n      } else if (lastTag === currentTag) {\r\n        $scrollWrapper.scrollLeft = $scrollWrapper.scrollWidth - $containerWidth\r\n      } else {\r\n        // find preTag and nextTag\r\n        const currentIndex = tagList.findIndex(item => item === currentTag)\r\n        const prevTag = tagList[currentIndex - 1]\r\n        const nextTag = tagList[currentIndex + 1]\r\n\r\n        // the tag's offsetLeft after of nextTag\r\n        const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagAndTagSpacing\r\n\r\n        // the tag's offsetLeft before of prevTag\r\n        const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagAndTagSpacing\r\n\r\n        if (afterNextTagOffsetLeft > $scrollWrapper.scrollLeft + $containerWidth) {\r\n          $scrollWrapper.scrollLeft = afterNextTagOffsetLeft - $containerWidth\r\n        } else if (beforePrevTagOffsetLeft < $scrollWrapper.scrollLeft) {\r\n          $scrollWrapper.scrollLeft = beforePrevTagOffsetLeft\r\n        }\r\n      }\r\n    }\r\n  }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n.scroll-container {\r\n  white-space: nowrap;\r\n  position: relative;\r\n  overflow: hidden;\r\n  width: 100%;\r\n  /deep/ {\r\n    .el-scrollbar__bar {\r\n      bottom: 0px;\r\n    }\r\n    .el-scrollbar__wrap {\r\n      height: 49px;\r\n    }\r\n  }\r\n}\r\n</style>\r\n","import { render, staticRenderFns } from \"./ScrollPane.vue?vue&type=template&id=6d85633c&scoped=true&\"\nimport script from \"./ScrollPane.vue?vue&type=script&lang=js&\"\nexport * from \"./ScrollPane.vue?vue&type=script&lang=js&\"\nimport style0 from \"./ScrollPane.vue?vue&type=style&index=0&id=6d85633c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6d85633c\",\n  null\n  \n)\n\ncomponent.options.__file = \"ScrollPane.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-scrollbar',{ref:\"scrollContainer\",staticClass:\"scroll-container\",attrs:{\"vertical\":false},nativeOn:{\"wheel\":function($event){$event.preventDefault();return _vm.handleScroll($event)}}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","<template>\r\n  <div id=\"tags-view-container\" class=\"tags-view-container\">\r\n    <scroll-pane ref=\"scrollPane\" class=\"tags-view-wrapper\">\r\n      <router-link\r\n        v-for=\"tag in visitedViews\"\r\n        ref=\"tag\"\r\n        :key=\"tag.path\"\r\n        :class=\"isActive(tag)?'active':''\"\r\n        :to=\"{ path: tag.path, query: tag.query, fullPath: tag.fullPath }\"\r\n        tag=\"span\"\r\n        class=\"tags-view-item\"\r\n        @click.middle.native=\"closeSelectedTag(tag)\"\r\n        @contextmenu.prevent.native=\"openMenu(tag,$event)\"\r\n      >\r\n        {{ tag.meta.title }}\r\n        <span v-if=\"!tag.meta.affix\" class=\"el-icon-close\" @click.prevent.stop=\"closeSelectedTag(tag)\" />\r\n      </router-link>\r\n    </scroll-pane>\r\n    <ul v-show=\"visible\" :style=\"{left:left+'px',top:top+'px'}\" class=\"contextmenu\">\r\n      <li @click=\"refreshSelectedTag(selectedTag)\">刷新</li>\r\n      <li v-if=\"!(selectedTag.meta&&selectedTag.meta.affix)\" @click=\"closeSelectedTag(selectedTag)\">关闭</li>\r\n      <li @click=\"closeOthersTags\">关闭其他</li>\r\n      <li @click=\"closeAllTags(selectedTag)\">关闭全部</li>\r\n    </ul>\r\n  </div>\r\n</template>\r\n\r\n<script>\r\nimport ScrollPane from './ScrollPane'\r\nimport path from 'path'\r\n\r\nexport default {\r\n  components: { ScrollPane },\r\n  data() {\r\n    return {\r\n      visible: false,\r\n      top: 0,\r\n      left: 0,\r\n      selectedTag: {},\r\n      affixTags: []\r\n    }\r\n  },\r\n  computed: {\r\n    visitedViews() {\r\n      return this.$store.state.tagsView.visitedViews || []\r\n    },\r\n    routes() {\r\n      return this.$store.state.tagsView.routes || []\r\n    }\r\n  },\r\n  watch: {\r\n    $route() {\r\n      this.addTags()\r\n      this.moveToCurrentTag()\r\n    },\r\n    visible(value) {\r\n      if (value) {\r\n        document.body.addEventListener('click', this.closeMenu)\r\n      } else {\r\n        document.body.removeEventListener('click', this.closeMenu)\r\n      }\r\n    }\r\n  },\r\n  mounted() {\r\n    this.initTags()\r\n    this.addTags()\r\n  },\r\n  methods: {\r\n    isActive(route) {\r\n      return route.path === this.$route.path\r\n    },\r\n    filterAffixTags(routes, basePath = '/') {\r\n      let tags = []\r\n      routes.forEach(route => {\r\n        if (route.meta && route.meta.affix) {\r\n          const tagPath = path.resolve(basePath, route.path)\r\n          tags.push({\r\n            fullPath: tagPath,\r\n            path: tagPath,\r\n            name: route.name,\r\n            meta: { ...route.meta }\r\n          })\r\n        }\r\n        if (route.children) {\r\n          const tempTags = this.filterAffixTags(route.children, route.path)\r\n          if (tempTags.length >= 1) {\r\n            tags = [...tags, ...tempTags]\r\n          }\r\n        }\r\n      })\r\n      return tags\r\n    },\r\n    initTags() {\r\n      const affixTags = this.affixTags = this.filterAffixTags(this.routes)\r\n      for (const tag of affixTags) {\r\n        // Must have tag name\r\n        if (tag.name) {\r\n          this.$store.dispatch('tagsView/addVisitedView', tag)\r\n        }\r\n      }\r\n    },\r\n    addTags() {\r\n      const { name } = this.$route\r\n      if (name) {\r\n        this.$store.dispatch('tagsView/addView', this.$route)\r\n      }\r\n      return false\r\n    },\r\n    moveToCurrentTag() {\r\n      const tags = this.$refs.tag\r\n      this.$nextTick(() => {\r\n        for (const tag of tags) {\r\n          if (tag.to.path === this.$route.path) {\r\n            this.$refs.scrollPane.moveToTarget(tag)\r\n            // when query is different then update\r\n            if (tag.to.fullPath !== this.$route.fullPath) {\r\n              this.$store.dispatch('tagsView/updateVisitedView', this.$route)\r\n            }\r\n            break\r\n          }\r\n        }\r\n      })\r\n    },\r\n    refreshSelectedTag(view) {\r\n      this.$store.dispatch('tagsView/delCachedView', view).then(() => {\r\n        const { fullPath } = view\r\n        this.$nextTick(() => {\r\n          this.$router.replace({\r\n            path: '/redirect' + fullPath\r\n          })\r\n        })\r\n      })\r\n    },\r\n    closeSelectedTag(view) {\r\n      this.$store.dispatch('tagsView/delView', view).then(({ visitedViews }) => {\r\n        if (this.isActive(view)) {\r\n          this.toLastView(visitedViews, view)\r\n        }\r\n      })\r\n    },\r\n    closeOthersTags() {\r\n      this.$router.push({\r\n        path: this.selectedTag.fullPath\r\n      })\r\n      this.$store.dispatch('tagsView/delOthersViews', this.selectedTag).then(() => {\r\n        this.moveToCurrentTag()\r\n      })\r\n    },\r\n    closeAllTags(view) {\r\n      this.$store.dispatch('tagsView/delAllViews').then(({ visitedViews }) => {\r\n        if (this.affixTags.some(tag => tag.path === view.path)) {\r\n          return\r\n        }\r\n        this.toLastView(visitedViews, view)\r\n      })\r\n    },\r\n    toLastView(visitedViews, view) {\r\n      const latestView = visitedViews.slice(-1)[0]\r\n      if (latestView) {\r\n        this.$router.push({\r\n          path: latestView.fullPath\r\n        })\r\n      } else {\r\n        // now the default is to redirect to the home page if there is no tags-view,\r\n        // you can adjust it according to your needs.\r\n        if (view.name === 'Dashboard') {\r\n          // to reload home page\r\n          this.$router.replace({ path: '/redirect' + view.fullPath })\r\n        } else {\r\n          this.$router.push('/')\r\n        }\r\n      }\r\n    },\r\n    openMenu(tag, e) {\r\n      const menuMinWidth = 105\r\n      const offsetLeft = this.$el.getBoundingClientRect().left // container margin left\r\n      const offsetWidth = this.$el.offsetWidth // container width\r\n      const maxLeft = offsetWidth - menuMinWidth // left boundary\r\n      const left = e.clientX - offsetLeft + 15 // 15: margin right\r\n\r\n      if (left > maxLeft) {\r\n        this.left = maxLeft\r\n      } else {\r\n        this.left = left\r\n      }\r\n\r\n      this.top = e.clientY\r\n      this.visible = true\r\n      this.selectedTag = tag\r\n    },\r\n    closeMenu() {\r\n      this.visible = false\r\n    }\r\n  }\r\n}\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n@import '../../../../styles/variables.scss';\r\n.tags-view-container {\r\n  height: 34px;\r\n  width: 100%;\r\n  background: #fff;\r\n  border-bottom: 1px solid #d8dce5;\r\n  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04);\r\n  .tags-view-wrapper {\r\n    .tags-view-item {\r\n      display: inline-block;\r\n      position: relative;\r\n      cursor: pointer;\r\n      height: 26px;\r\n      line-height: 26px;\r\n      border: 1px solid #d8dce5;\r\n      color: #495060;\r\n      background: #fff;\r\n      padding: 0 8px;\r\n      font-size: 12px;\r\n      margin-left: 5px;\r\n      margin-top: 4px;\r\n      &:first-of-type {\r\n        margin-left: 15px;\r\n      }\r\n      &:last-of-type {\r\n        margin-right: 15px;\r\n      }\r\n      &.active {\r\n        background-color: $blue;\r\n        color: #fff;\r\n        border-color: $blue;\r\n        &::before {\r\n          content: '';\r\n          background: #fff;\r\n          display: inline-block;\r\n          width: 8px;\r\n          height: 8px;\r\n          border-radius: 50%;\r\n          position: relative;\r\n          margin-right: 2px;\r\n        }\r\n      }\r\n    }\r\n  }\r\n  .contextmenu {\r\n    margin: 0;\r\n    background: #fff;\r\n    z-index: 3000;\r\n    position: absolute;\r\n    list-style-type: none;\r\n    padding: 5px 0;\r\n    border-radius: 4px;\r\n    font-size: 12px;\r\n    font-weight: 400;\r\n    color: #333;\r\n    box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, .3);\r\n    li {\r\n      margin: 0;\r\n      padding: 7px 16px;\r\n      cursor: pointer;\r\n      &:hover {\r\n        background: #eee;\r\n      }\r\n    }\r\n  }\r\n}\r\n</style>\r\n\r\n<style lang=\"scss\">\r\n//reset element css of el-icon-close\r\n.tags-view-wrapper {\r\n  .tags-view-item {\r\n    .el-icon-close {\r\n      width: 16px;\r\n      height: 16px;\r\n      vertical-align: 2px;\r\n      border-radius: 50%;\r\n      text-align: center;\r\n      transition: all .3s cubic-bezier(.645, .045, .355, 1);\r\n      transform-origin: 100% 50%;\r\n      &:before {\r\n        transform: scale(.6);\r\n        display: inline-block;\r\n        vertical-align: -3px;\r\n      }\r\n      &:hover {\r\n        background-color: #b4bccc;\r\n        color: #fff;\r\n      }\r\n    }\r\n  }\r\n}\r\n</style>\r\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=8f0ac28e&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=8f0ac28e&lang=scss&scoped=true&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"8f0ac28e\",\n  null\n  \n)\n\ncomponent.options.__file = \"index.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tags-view-container\",attrs:{\"id\":\"tags-view-container\"}},[_c('scroll-pane',{ref:\"scrollPane\",staticClass:\"tags-view-wrapper\"},_vm._l((_vm.visitedViews),function(tag){return _c('router-link',{key:tag.path,ref:\"tag\",refInFor:true,staticClass:\"tags-view-item\",class:_vm.isActive(tag)?'active':'',attrs:{\"to\":{ path: tag.path, query: tag.query, fullPath: tag.fullPath },\"tag\":\"span\"},nativeOn:{\"mouseup\":function($event){if('button' in $event && $event.button !== 1){ return null; }_vm.closeSelectedTag(tag)},\"contextmenu\":function($event){$event.preventDefault();_vm.openMenu(tag,$event)}}},[_vm._v(\"\\n      \"+_vm._s(tag.meta.title)+\"\\n      \"),(!tag.meta.affix)?_c('span',{staticClass:\"el-icon-close\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();_vm.closeSelectedTag(tag)}}}):_vm._e()])})),_vm._v(\" \"),_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"contextmenu\",style:({left:_vm.left+'px',top:_vm.top+'px'})},[_c('li',{on:{\"click\":function($event){_vm.refreshSelectedTag(_vm.selectedTag)}}},[_vm._v(\"刷新\")]),_vm._v(\" \"),(!(_vm.selectedTag.meta&&_vm.selectedTag.meta.affix))?_c('li',{on:{\"click\":function($event){_vm.closeSelectedTag(_vm.selectedTag)}}},[_vm._v(\"关闭\")]):_vm._e(),_vm._v(\" \"),_c('li',{on:{\"click\":_vm.closeOthersTags}},[_vm._v(\"关闭其他\")]),_vm._v(\" \"),_c('li',{on:{\"click\":function($event){_vm.closeAllTags(_vm.selectedTag)}}},[_vm._v(\"关闭全部\")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=script&lang=js&\"","<template>\r\n    <div :class=\"classObj\" class=\"app-wrapper\">\r\n        <div v-if=\"device ===' mobile' && sidebar.opened\" class=\"drawer-bg\" @click=\"handleClickOutside\"></div>\r\n        <sidebar class=\"sidebar-container\" />\r\n        <div :class=\"{hasTagsView:needTagsView}\" class=\"main-container\">\r\n            <navbar />\r\n            <tags-view v-if=\"needTagsView\" />\r\n            <app-main />\r\n        </div>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\n    import * as Types from '@/store/types';\r\n    import { Navbar, Sidebar, AppMain } from './components';\r\n    import TagsView from './components/TagsView'\r\n    import ResizeMixin from './mixin/ResizeHandler';\r\n\r\n    export default {\r\n        name: 'Layout',\r\n\r\n        components: {\r\n            Navbar,\r\n            Sidebar,\r\n            AppMain,\r\n            TagsView\r\n        },\r\n\r\n        mixins: [ResizeMixin],\r\n\r\n        data() {\r\n            return {\r\n                needTagsView: true\r\n            }\r\n        },\r\n\r\n        computed: {\r\n            sidebar() {\r\n                return this.$store.state.app.sidebar;\r\n            },\r\n\r\n            device() {\r\n                return this.$store.state.app.device;\r\n            },\r\n\r\n            classObj() {\r\n                return {\r\n                    hideSidebar: !this.sidebar.opened,\r\n                    openSidebar: this.sidebar.opened,\r\n                    withoutAnimation: this.sidebar.withoutAnimation,\r\n                    mobile: this.device === 'mobile'\r\n                };\r\n            }\r\n        },\r\n\r\n        methods: {\r\n            handleClickOutside() {\r\n                this.$store.commit(Types.CLOSE_SIDEBAR, false);\r\n            }\r\n        }\r\n    };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n    @import 'src/styles/mixin.scss';\r\n\r\n    .app-wrapper {\r\n        @include clearfix;\r\n        position: relative;\r\n        height: 100%;\r\n        width: 100%;\r\n\r\n        &.mobile.openSidebar {\r\n            position: fixed;\r\n            top: 0;\r\n        }\r\n    }\r\n\r\n    .drawer-bg {\r\n        background: #000;\r\n        opacity: 0.3;\r\n        width: 100%;\r\n        top: 0;\r\n        height: 100%;\r\n        position: absolute;\r\n        z-index: 999;\r\n    }\r\n</style>\r\n","import store from '@/store';\r\nimport * as Types from '@/store/types';\r\n\r\nconst WIDTH = 1024;\r\nconst RATIO = 3;\r\n\r\nexport default {\r\n    watch: {\r\n        $route(route) {\r\n            if (this.device === 'mobile' && this.sidebar.opened) {\r\n                store.commit(Types.CLOSE_SIDEBAR, false);\r\n            }\r\n        }\r\n    },\r\n\r\n    beforeMount() {\r\n        window.addEventListener('resize', this.resizeHandler);\r\n    },\r\n\r\n    mounted() {\r\n        const isMobile = this.isMobile();\r\n        if (isMobile) {\r\n            store.commit(Types.TOGGLE_DEVICE, 'mobile');\r\n            store.commit(Types.CLOSE_SIDEBAR, true);\r\n        }\r\n    },\r\n\r\n    methods: {\r\n        isMobile() {\r\n            const rect = document.body.getBoundingClientRect();\r\n            return rect.width - RATIO < WIDTH;\r\n        },\r\n\r\n        resizeHandler() {\r\n            if (!document.hidden) {\r\n                const isMobile = this.isMobile();\r\n                store.commit(Types.TOGGLE_DEVICE, isMobile ? 'mobile' : 'desktop');\r\n\r\n                if (isMobile) {\r\n                    store.commit(Types.CLOSE_SIDEBAR, true);\r\n                }\r\n            }\r\n        }\r\n    }\r\n};\r\n","import { render, staticRenderFns } from \"./Layout.vue?vue&type=template&id=18f3739a&scoped=true&\"\nimport script from \"./Layout.vue?vue&type=script&lang=js&\"\nexport * from \"./Layout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Layout.vue?vue&type=style&index=0&id=18f3739a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"18f3739a\",\n  null\n  \n)\n\ncomponent.options.__file = \"Layout.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-wrapper\",class:_vm.classObj},[(_vm.device ===' mobile' && _vm.sidebar.opened)?_c('div',{staticClass:\"drawer-bg\",on:{\"click\":_vm.handleClickOutside}}):_vm._e(),_vm._v(\" \"),_c('sidebar',{staticClass:\"sidebar-container\"}),_vm._v(\" \"),_c('div',{staticClass:\"main-container\",class:{hasTagsView:_vm.needTagsView}},[_c('navbar'),_vm._v(\" \"),(_vm.needTagsView)?_c('tags-view'):_vm._e(),_vm._v(\" \"),_c('app-main')],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","<template>\r\n    <div class=\"login-container\">\r\n        <el-form ref=\"loginForm\"\r\n                 @submit.native.prevent.stop\r\n                 :model=\"loginForm\"\r\n                 :rules=\"loginRules\"\r\n                 class=\"login-form\"\r\n                 auto-complete=\"on\"\r\n                 label-position=\"left\">\r\n\r\n            <div class=\"title-container\">\r\n                <img src=\"@/assets/logo.png\"\r\n                     class=\"logo\">\r\n                <h3 class=\"title\">太粮办公协同平台</h3>\r\n                <h3 class=\"title\">TL - OA</h3>\r\n            </div>\r\n\r\n            <el-form-item prop=\"password\">\r\n                <span class=\"svg-container\">\r\n                    <img class=\"icon\"\r\n                         src=\"@/assets/password.svg\" />\r\n                </span>\r\n                <el-input type=\"password\"\r\n                          v-model=\"loginForm.password\"\r\n                          placeholder=\"请输入密码\"\r\n                          name=\"password\"\r\n                          auto-complete=\"on\"\r\n                          @keyup.enter.native=\"enter\" />\r\n            </el-form-item>\r\n\r\n            <el-button :loading=\"loading\"\r\n                       type=\"primary\"\r\n                        size=\"medium\"\r\n                       style=\"width:100%;margin-bottom:30px;\"\r\n                       @click.native.prevent=\"handleLogin\">登录</el-button>\r\n        </el-form>\r\n\r\n        <el-footer class=\"footer\">\r\n            Copyright@2017 东莞太粮米业有限公司 版权所有. <a href=\"http://www.miitbeian.gov.cn/\"\r\n               style=\"color:inherit;\"\r\n               target=\"_blank\">粤ICP备14057090号-1</a>\r\n        </el-footer>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\n    import event from '@/utils/event';\r\n    import * as Types from '@/store/types';\r\n    import md5 from 'blueimp-md5';\r\n\r\n    export default {\r\n        data() {\r\n            return {\r\n                loginForm: {\r\n                    password: ''\r\n                },\r\n                loginRules: {\r\n                    password: [\r\n                        {\r\n                            required: true,\r\n                            trigger: 'blur',\r\n                            validator: (rule, value, callback) => {\r\n                                if (value.length < 8) {\r\n                                    callback(new Error('密码长度不能少于8位'));\r\n                                } else {\r\n                                    callback();\r\n                                }\r\n                            }\r\n                        }\r\n                    ]\r\n                },\r\n                loading: false,\r\n                uin: '',\r\n                loginCode: ''\r\n            };\r\n        },\r\n\r\n        beforeMount() {\r\n            let query = this.$route.query;\r\n            if (!query.uin || !query.logincode) {\r\n                if (process.env.NODE_ENV === 'production') {\r\n                    location.href = this.getQrCodeUrl();\r\n                }\r\n            } else {\r\n                this.uin = query.uin;\r\n                this.loginCode = query.logincode;\r\n            }\r\n        },\r\n\r\n        methods: {\r\n            enter(e) {\r\n                e.stopPropagation();\r\n                e.preventDefault();\r\n\r\n                var keyCode = window.event ? e.keyCode : e.which;\r\n                if (keyCode === 13 && this.loginForm.password) {\r\n                    this.handleLogin();\r\n                }\r\n            },\r\n\r\n            // getQrCodeUrl() {\r\n            //     return `https://oapi.dingtalk.com/connect/qrconnect?appid=dingoa9xjorsfz90me9hr8&response_type=code&scope=snsapi_login&state=oa${Date.now()}&redirect_uri=${encodeURIComponent(\r\n            //         'https://oa.tailiangwx.com/pc/user/loginByDingcode'\r\n            //     )}`;\r\n            // },\r\n\r\n            getQrCodeUrl() {\r\n                const clientId = 'dingrzzq7mzhb68gldx8';\r\n                const uri = 'https://oa.tailiangwx.com/pc/user/loginByAuthCode';\r\n                return `https://login.dingtalk.com/oauth2/auth?client_id=${clientId}&response_type=code&scope=openid&prompt=consent&redirect_uri=${encodeURIComponent(uri)}`;\r\n            },\r\n\r\n            handleLogin() {\r\n                this.$refs.loginForm.validate((valid) => {\r\n                    if (valid) {\r\n                        this.loading = true;\r\n                        this.$store\r\n                            .dispatch(Types.LOGIN, {\r\n                                uin: this.uin,\r\n                                logincode: this.loginCode,\r\n                                password: md5(this.loginForm.password)\r\n                            })\r\n                            .then((res) => {\r\n                                event.$emit('login-success');\r\n                                this.$router.push({ path: '/' });\r\n                            })\r\n                            .catch((res) => {\r\n                                if (res.code === 104) {\r\n                                    setTimeout(() => {\r\n                                        location.href = this.getQrCodeUrl();\r\n                                    }, 1500);\r\n                                }\r\n\r\n                                this.loading = false;\r\n                            });\r\n                    } else {\r\n                        return false;\r\n                    }\r\n                });\r\n            }\r\n        }\r\n    };\r\n</script>\r\n\r\n<style lang=\"scss\">\r\n    $bg: #283443;\r\n    $light_gray: #eee;\r\n    $cursor: #fff;\r\n\r\n    @supports (-webkit-mask: none) and (not (cater-color: $cursor)) {\r\n        .login-container .el-input input {\r\n            color: $cursor;\r\n            &::first-line {\r\n                color: $light_gray;\r\n            }\r\n        }\r\n    }\r\n\r\n    /* reset element-ui css */\r\n    .login-container {\r\n        .el-input {\r\n            display: inline-block;\r\n            height: 47px;\r\n            width: 85%;\r\n            input {\r\n                background: transparent;\r\n                border: 0px;\r\n                -webkit-appearance: none;\r\n                border-radius: 0px;\r\n                padding: 12px 5px 12px 15px;\r\n                color: $light_gray;\r\n                height: 47px;\r\n                caret-color: $cursor;\r\n                &:-webkit-autofill {\r\n                    -webkit-box-shadow: 0 0 0px 1000px $bg inset !important;\r\n                    -webkit-text-fill-color: $cursor !important;\r\n                }\r\n            }\r\n        }\r\n        .el-form-item {\r\n            border: 1px solid rgba(255, 255, 255, 0.1);\r\n            background: rgba(0, 0, 0, 0.1);\r\n            border-radius: 5px;\r\n            color: #454545;\r\n        }\r\n    }\r\n</style>\r\n\r\n<style lang=\"scss\" scoped>\r\n    $bg: #2d3a4b;\r\n    $dark_gray: #889aa4;\r\n    $light_gray: #eee;\r\n\r\n    .login-container {\r\n        position: fixed;\r\n        height: 100%;\r\n        width: 100%;\r\n        background-color: $bg;\r\n\r\n        .login-form {\r\n            position: absolute;\r\n            left: 0;\r\n            right: 0;\r\n            width: 520px;\r\n            max-width: 100%;\r\n            padding: 35px 35px 15px 35px;\r\n            margin: 120px auto;\r\n        }\r\n\r\n        .tips {\r\n            font-size: 14px;\r\n            color: #fff;\r\n            margin-bottom: 10px;\r\n\r\n            span {\r\n                &:first-of-type {\r\n                    margin-right: 16px;\r\n                }\r\n            }\r\n        }\r\n\r\n        .svg-container {\r\n            display: inline-block;\r\n            padding: 6px 5px 6px 15px;\r\n            vertical-align: middle;\r\n            width: 30px;\r\n\r\n            .icon {\r\n                overflow: hidden;\r\n                height: 1em;\r\n                width: 1em;\r\n                vertical-align: -0.15em;\r\n            }\r\n        }\r\n\r\n        .title-container {\r\n            position: relative;\r\n\r\n            .logo {\r\n                display: block;\r\n                margin: 0 auto 20px;\r\n                width: 113px;\r\n            }\r\n\r\n            .title {\r\n                font-size: 26px;\r\n                color: $light_gray;\r\n                margin: 0 auto;\r\n                text-align: center;\r\n                font-weight: bold;\r\n            }\r\n\r\n            .title:last-child {\r\n                margin-bottom: 40px;\r\n            }\r\n        }\r\n\r\n        .footer {\r\n            height: 60px;\r\n            line-height: 60px;\r\n            position: absolute;\r\n            bottom: 0;\r\n            left: 0;\r\n            right: 0;\r\n            text-align: center;\r\n            color: #eee;\r\n            font-size: 14px;\r\n        }\r\n    }\r\n</style>\r\n","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=13be35b0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&id=13be35b0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"13be35b0\",\n  null\n  \n)\n\ncomponent.options.__file = \"index.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"login-container\"},[_c('el-form',{ref:\"loginForm\",staticClass:\"login-form\",attrs:{\"model\":_vm.loginForm,\"rules\":_vm.loginRules,\"auto-complete\":\"on\",\"label-position\":\"left\"},nativeOn:{\"submit\":function($event){$event.preventDefault();$event.stopPropagation();}}},[_c('div',{staticClass:\"title-container\"},[_c('img',{staticClass:\"logo\",attrs:{\"src\":require(\"@/assets/logo.png\")}}),_vm._v(\" \"),_c('h3',{staticClass:\"title\"},[_vm._v(\"太粮办公协同平台\")]),_vm._v(\" \"),_c('h3',{staticClass:\"title\"},[_vm._v(\"TL - OA\")])]),_vm._v(\" \"),_c('el-form-item',{attrs:{\"prop\":\"password\"}},[_c('span',{staticClass:\"svg-container\"},[_c('img',{staticClass:\"icon\",attrs:{\"src\":require(\"@/assets/password.svg\")}})]),_vm._v(\" \"),_c('el-input',{attrs:{\"type\":\"password\",\"placeholder\":\"请输入密码\",\"name\":\"password\",\"auto-complete\":\"on\"},nativeOn:{\"keyup\":function($event){if(!('button' in $event)&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.enter($event)}},model:{value:(_vm.loginForm.password),callback:function ($$v) {_vm.$set(_vm.loginForm, \"password\", $$v)},expression:\"loginForm.password\"}})],1),_vm._v(\" \"),_c('el-button',{staticStyle:{\"width\":\"100%\",\"margin-bottom\":\"30px\"},attrs:{\"loading\":_vm.loading,\"type\":\"primary\",\"size\":\"medium\"},nativeOn:{\"click\":function($event){$event.preventDefault();return _vm.handleLogin($event)}}},[_vm._v(\"登录\")])],1),_vm._v(\" \"),_c('el-footer',{staticClass:\"footer\"},[_vm._v(\"\\n        Copyright@2017 东莞太粮米业有限公司 版权所有. \"),_c('a',{staticStyle:{\"color\":\"inherit\"},attrs:{\"href\":\"http://www.miitbeian.gov.cn/\",\"target\":\"_blank\"}},[_vm._v(\"粤ICP备14057090号-1\")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./error.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./error.vue?vue&type=script&lang=js&\"","<template>\r\n    <div class=\"errPage-container\">\r\n        <el-button icon=\"arrow-left\"\r\n                   class=\"pan-back-btn\"\r\n                   @click=\"back\">返回</el-button>\r\n        <el-row>\r\n            <el-col :span=\"12\">\r\n                <h1 class=\"text-jumbo text-ginormous\">Oops!</h1>\r\n                <h2>你没有权限去该页面</h2>\r\n                <h6>如有问题请联系你领导</h6>\r\n                <ul class=\"list-unstyled\">\r\n                    <li>或者你可以去:</li>\r\n                    <li class=\"link-type\">\r\n                        <router-link to=\"/dashboard\">回首页</router-link>\r\n                    </li>\r\n                </ul>\r\n            </el-col>\r\n            <el-col :span=\"12\"><img :src=\"errGif\"\r\n                     width=\"313\"\r\n                     height=\"428\"></el-col>\r\n        </el-row>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\n    import errGif from '@/assets/401.gif';\r\n\r\n    export default {\r\n        name: 'PageError',\r\n\r\n        data() {\r\n            return {\r\n                errGif: errGif + '?' + Date.now()\r\n            };\r\n        },\r\n\r\n        methods: {\r\n            back() {\r\n                if (this.$route.query.noGoBack) {\r\n                    this.$router.push({ path: '/dashboard' });\r\n                } else {\r\n                    this.$router.go(-1);\r\n                }\r\n            }\r\n        }\r\n    };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n    .errPage-container {\r\n        width: 800px;\r\n        max-width: 100%;\r\n        margin: 100px auto;\r\n\r\n        .pan-back-btn {\r\n            background: #008489;\r\n            color: #fff;\r\n            border: none !important;\r\n        }\r\n\r\n        .pan-gif {\r\n            margin: 0 auto;\r\n            display: block;\r\n        }\r\n\r\n        .pan-img {\r\n            display: block;\r\n            margin: 0 auto;\r\n            width: 100%;\r\n        }\r\n\r\n        .text-jumbo {\r\n            font-size: 60px;\r\n            font-weight: 700;\r\n            color: #484848;\r\n        }\r\n\r\n        .list-unstyled {\r\n            font-size: 14px;\r\n\r\n            li {\r\n                padding-bottom: 5px;\r\n            }\r\n\r\n            a {\r\n                color: #008489;\r\n                text-decoration: none;\r\n\r\n                &:hover {\r\n                    text-decoration: underline;\r\n                }\r\n            }\r\n        }\r\n    }\r\n</style>\r\n","import { render, staticRenderFns } from \"./error.vue?vue&type=template&id=087342ab&scoped=true&\"\nimport script from \"./error.vue?vue&type=script&lang=js&\"\nexport * from \"./error.vue?vue&type=script&lang=js&\"\nimport style0 from \"./error.vue?vue&type=style&index=0&id=087342ab&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"087342ab\",\n  null\n  \n)\n\ncomponent.options.__file = \"error.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"errPage-container\"},[_c('el-button',{staticClass:\"pan-back-btn\",attrs:{\"icon\":\"arrow-left\"},on:{\"click\":_vm.back}},[_vm._v(\"返回\")]),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":12}},[_c('h1',{staticClass:\"text-jumbo text-ginormous\"},[_vm._v(\"Oops!\")]),_vm._v(\" \"),_c('h2',[_vm._v(\"你没有权限去该页面\")]),_vm._v(\" \"),_c('h6',[_vm._v(\"如有问题请联系你领导\")]),_vm._v(\" \"),_c('ul',{staticClass:\"list-unstyled\"},[_c('li',[_vm._v(\"或者你可以去:\")]),_vm._v(\" \"),_c('li',{staticClass:\"link-type\"},[_c('router-link',{attrs:{\"to\":\"/dashboard\"}},[_vm._v(\"回首页\")])],1)])]),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('img',{attrs:{\"src\":_vm.errGif,\"width\":\"313\",\"height\":\"428\"}})])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./401.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./401.vue?vue&type=script&lang=js&\"","<template>\r\n    <div class=\"errPage-container\">\r\n        <el-button icon=\"arrow-left\"\r\n                   class=\"pan-back-btn\"\r\n                   @click=\"back\">返回</el-button>\r\n        <el-row>\r\n            <el-col :span=\"12\">\r\n                <h1 class=\"text-jumbo text-ginormous\">Oops!</h1>\r\n                <h2>你没有权限去该页面</h2>\r\n                <h6>如有问题请联系你领导</h6>\r\n                <ul class=\"list-unstyled\">\r\n                    <li>或者你可以去:</li>\r\n                    <li class=\"link-type\">\r\n                        <router-link to=\"/dashboard\">回首页</router-link>\r\n                    </li>\r\n                </ul>\r\n            </el-col>\r\n            <el-col :span=\"12\"><img :src=\"errGif\"\r\n                     width=\"313\"\r\n                     height=\"428\"></el-col>\r\n        </el-row>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\n    import errGif from '@/assets/401.gif';\r\n\r\n    export default {\r\n        name: 'Page401',\r\n\r\n        data() {\r\n            return {\r\n                errGif: errGif + '?' + Date.now()\r\n            };\r\n        },\r\n\r\n        methods: {\r\n            back() {\r\n                if (this.$route.query.noGoBack) {\r\n                    this.$router.push({ path: '/dashboard' });\r\n                } else {\r\n                    this.$router.go(-1);\r\n                }\r\n            }\r\n        }\r\n    };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n    .errPage-container {\r\n        width: 800px;\r\n        max-width: 100%;\r\n        margin: 100px auto;\r\n\r\n        .pan-back-btn {\r\n            background: #008489;\r\n            color: #fff;\r\n            border: none !important;\r\n        }\r\n\r\n        .pan-gif {\r\n            margin: 0 auto;\r\n            display: block;\r\n        }\r\n\r\n        .pan-img {\r\n            display: block;\r\n            margin: 0 auto;\r\n            width: 100%;\r\n        }\r\n\r\n        .text-jumbo {\r\n            font-size: 60px;\r\n            font-weight: 700;\r\n            color: #484848;\r\n        }\r\n\r\n        .list-unstyled {\r\n            font-size: 14px;\r\n\r\n            li {\r\n                padding-bottom: 5px;\r\n            }\r\n\r\n            a {\r\n                color: #008489;\r\n                text-decoration: none;\r\n\r\n                &:hover {\r\n                    text-decoration: underline;\r\n                }\r\n            }\r\n        }\r\n    }\r\n</style>\r\n","import { render, staticRenderFns } from \"./401.vue?vue&type=template&id=151e7c2b&scoped=true&\"\nimport script from \"./401.vue?vue&type=script&lang=js&\"\nexport * from \"./401.vue?vue&type=script&lang=js&\"\nimport style0 from \"./401.vue?vue&type=style&index=0&id=151e7c2b&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"151e7c2b\",\n  null\n  \n)\n\ncomponent.options.__file = \"401.vue\"\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"errPage-container\"},[_c('el-button',{staticClass:\"pan-back-btn\",attrs:{\"icon\":\"arrow-left\"},on:{\"click\":_vm.back}},[_vm._v(\"返回\")]),_vm._v(\" \"),_c('el-row',[_c('el-col',{attrs:{\"span\":12}},[_c('h1',{staticClass:\"text-jumbo text-ginormous\"},[_vm._v(\"Oops!\")]),_vm._v(\" \"),_c('h2',[_vm._v(\"你没有权限去该页面\")]),_vm._v(\" \"),_c('h6',[_vm._v(\"如有问题请联系你领导\")]),_vm._v(\" \"),_c('ul',{staticClass:\"list-unstyled\"},[_c('li',[_vm._v(\"或者你可以去:\")]),_vm._v(\" \"),_c('li',{staticClass:\"link-type\"},[_c('router-link',{attrs:{\"to\":\"/dashboard\"}},[_vm._v(\"回首页\")])],1)])]),_vm._v(\" \"),_c('el-col',{attrs:{\"span\":12}},[_c('img',{attrs:{\"src\":_vm.errGif,\"width\":\"313\",\"height\":\"428\"}})])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"wscn-http404-container\"},[_c('div',{staticClass:\"wscn-http404\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"bullshit\"},[_c('div',{staticClass:\"bullshit__oops\"},[_vm._v(\"OOPS!\")]),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"bullshit__headline\"},[_vm._v(_vm._s(_vm.message))]),_vm._v(\" \"),_c('div',{staticClass:\"bullshit__info\"},[_vm._v(\"请检查您输入的网址是否正确，请点击以下按钮返回主页或者发送错误报告\")]),_vm._v(\" \"),_c('a',{staticClass:\"bullshit__return-home\",attrs:{\"href\":\"/dashboard\"}},[_vm._v(\"返回首页\")])])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"pic-404\"},[_c('img',{staticClass:\"pic-404__parent\",attrs:{\"src\":require(\"@/assets/404.png\"),\"alt\":\"404\"}}),_vm._v(\" \"),_c('img',{staticClass:\"pic-404__child left\",attrs:{\"src\":require(\"@/assets/404_cloud.png\"),\"alt\":\"404\"}}),_vm._v(\" \"),_c('img',{staticClass:\"pic-404__child mid\",attrs:{\"src\":require(\"@/assets/404_cloud.png\"),\"alt\":\"404\"}}),_vm._v(\" \"),_c('img',{staticClass:\"pic-404__child right\",attrs:{\"src\":require(\"@/assets/404_cloud.png\"),\"alt\":\"404\"}})])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bullshit__info\"},[_vm._v(\"版权所有\\n                \"),_c('a',{staticClass:\"link-type\",attrs:{\"href\":\"https://wallstreetcn.com\",\"target\":\"_blank\"}},[_vm._v(\"华尔街见闻\")])])}]\n\nexport { render, staticRenderFns }","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./404.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./404.vue?vue&type=script&lang=js&\"","<template>\r\n    <div class=\"wscn-http404-container\">\r\n        <div class=\"wscn-http404\">\r\n            <div class=\"pic-404\">\r\n                <img class=\"pic-404__parent\"\r\n                     src=\"@/assets/404.png\"\r\n                     alt=\"404\" />\r\n                <img class=\"pic-404__child left\"\r\n                     src=\"@/assets/404_cloud.png\"\r\n                     alt=\"404\" />\r\n                <img class=\"pic-404__child mid\"\r\n                     src=\"@/assets/404_cloud.png\"\r\n                     alt=\"404\" />\r\n                <img class=\"pic-404__child right\"\r\n                     src=\"@/assets/404_cloud.png\"\r\n                     alt=\"404\" />\r\n            </div>\r\n            <div class=\"bullshit\">\r\n                <div class=\"bullshit__oops\">OOPS!</div>\r\n                <div class=\"bullshit__info\">版权所有\r\n                    <a class=\"link-type\"\r\n                       href=\"https://wallstreetcn.com\"\r\n                       target=\"_blank\">华尔街见闻</a>\r\n                </div>\r\n                <div class=\"bullshit__headline\">{{ message }}</div>\r\n                <div class=\"bullshit__info\">请检查您输入的网址是否正确，请点击以下按钮返回主页或者发送错误报告</div>\r\n                <a href=\"/dashboard\"\r\n                   class=\"bullshit__return-home\">返回首页</a>\r\n            </div>\r\n        </div>\r\n    </div>\r\n</template>\r\n\r\n<script>\r\n    export default {\r\n        name: 'Page404',\r\n\r\n        computed: {\r\n            message() {\r\n                return '网管说这个页面你不能进......';\r\n            }\r\n        }\r\n    };\r\n</script>\r\n\r\n<style lang=\"scss\" scoped>\r\n    .wscn-http404-container {\r\n        transform: translate(-50%, -50%);\r\n        position: absolute;\r\n        top: 40%;\r\n        left: 50%;\r\n    }\r\n    .wscn-http404 {\r\n        position: relative;\r\n        width: 1200px;\r\n        padding: 0 50px;\r\n        overflow: hidden;\r\n        .pic-404 {\r\n            position: relative;\r\n            float: left;\r\n            width: 600px;\r\n            overflow: hidden;\r\n            &__parent {\r\n                width: 100%;\r\n            }\r\n            &__child {\r\n                position: absolute;\r\n                &.left {\r\n                    width: 80px;\r\n                    top: 17px;\r\n                    left: 220px;\r\n                    opacity: 0;\r\n                    animation-name: cloudLeft;\r\n                    animation-duration: 2s;\r\n                    animation-timing-function: linear;\r\n                    animation-fill-mode: forwards;\r\n                    animation-delay: 1s;\r\n                }\r\n                &.mid {\r\n                    width: 46px;\r\n                    top: 10px;\r\n                    left: 420px;\r\n                    opacity: 0;\r\n                    animation-name: cloudMid;\r\n                    animation-duration: 2s;\r\n                    animation-timing-function: linear;\r\n                    animation-fill-mode: forwards;\r\n                    animation-delay: 1.2s;\r\n                }\r\n                &.right {\r\n                    width: 62px;\r\n                    top: 100px;\r\n                    left: 500px;\r\n                    opacity: 0;\r\n                    animation-name: cloudRight;\r\n                    animation-duration: 2s;\r\n                    animation-timing-function: linear;\r\n                    animation-fill-mode: forwards;\r\n                    animation-delay: 1s;\r\n                }\r\n                @keyframes cloudLeft {\r\n                    0% {\r\n                        top: 17px;\r\n                        left: 220px;\r\n                        opacity: 0;\r\n                    }\r\n                    20% {\r\n                        top: 33px;\r\n                        left: 188px;\r\n                        opacity: 1;\r\n                    }\r\n                    80% {\r\n                        top: 81px;\r\n                        left: 92px;\r\n                        opacity: 1;\r\n                    }\r\n                    100% {\r\n                        top: 97px;\r\n                        left: 60px;\r\n                        opacity: 0;\r\n                    }\r\n                }\r\n                @keyframes cloudMid {\r\n                    0% {\r\n                        top: 10px;\r\n                        left: 420px;\r\n                        opacity: 0;\r\n                    }\r\n                    20% {\r\n                        top: 40px;\r\n                        left: 360px;\r\n                        opacity: 1;\r\n                    }\r\n                    70% {\r\n                        top: 130px;\r\n                        left: 180px;\r\n                        opacity: 1;\r\n                    }\r\n                    100% {\r\n                        top: 160px;\r\n                        left: 120px;\r\n                        opacity: 0;\r\n                    }\r\n                }\r\n                @keyframes cloudRight {\r\n                    0% {\r\n                        top: 100px;\r\n                        left: 500px;\r\n                        opacity: 0;\r\n                    }\r\n                    20% {\r\n                        top: 120px;\r\n                        left: 460px;\r\n                        opacity: 1;\r\n                    }\r\n                    80% {\r\n                        top: 180px;\r\n                        left: 340px;\r\n                        opacity: 1;\r\n                    }\r\n                    100% {\r\n                        top: 200px;\r\n                        left: 300px;\r\n                        opacity: 0;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n        .bullshit {\r\n            position: relative;\r\n            float: left;\r\n            width: 300px;\r\n            padding: 30px 0;\r\n            overflow: hidden;\r\n            &__oops {\r\n                font-size: 32px;\r\n                font-weight: bold;\r\n                line-height: 40px;\r\n                color: #1482f0;\r\n                opacity: 0;\r\n                margin-bottom: 20px;\r\n                animation-name: slideUp;\r\n                animation-duration: 0.5s;\r\n                animation-fill-mode: forwards;\r\n            }\r\n            &__headline {\r\n                font-size: 20px;\r\n                line-height: 24px;\r\n                color: #222;\r\n                font-weight: bold;\r\n                opacity: 0;\r\n                margin-bottom: 10px;\r\n                animation-name: slideUp;\r\n                animation-duration: 0.5s;\r\n                animation-delay: 0.1s;\r\n                animation-fill-mode: forwards;\r\n            }\r\n            &__info {\r\n                font-size: 13px;\r\n                line-height: 21px;\r\n                color: grey;\r\n                opacity: 0;\r\n                margin-bottom: 30px;\r\n                animation-name: slideUp;\r\n                animation-duration: 0.5s;\r\n                animation-delay: 0.2s;\r\n                animation-fill-mode: forwards;\r\n            }\r\n            &__return-home {\r\n                display: block;\r\n                float: left;\r\n                width: 110px;\r\n                height: 36px;\r\n                background: #1482f0;\r\n                border-radius: 100px;\r\n                text-align: center;\r\n                color: #ffffff;\r\n                opacity: 0;\r\n                font-size: 14px;\r\n                line-height: 36px;\r\n                cursor: pointer;\r\n                animation-name: slideUp;\r\n                animation-duration: 0.5s;\r\n                animation-delay: 0.3s;\r\n                animation-fill-mode: forwards;\r\n            }\r\n            @keyframes slideUp {\r\n                0% {\r\n                    transform: translateY(60px);\r\n                    opacity: 0;\r\n                }\r\n                100% {\r\n                    transform: translateY(0);\r\n                    opacity: 1;\r\n                }\r\n            }\r\n        }\r\n    }\r\n</style>\r\n","import { render, staticRenderFns } from \"./404.vue?vue&type=template&id=5cc7246d&scoped=true&\"\nimport script from \"./404.vue?vue&type=script&lang=js&\"\nexport * from \"./404.vue?vue&type=script&lang=js&\"\nimport style0 from \"./404.vue?vue&type=style&index=0&id=5cc7246d&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"5cc7246d\",\n  null\n  \n)\n\ncomponent.options.__file = \"404.vue\"\nexport default component.exports","import Vue from 'vue';\r\nimport Router from 'vue-router';\r\nimport Cookies from 'js-cookie';\r\nimport event from '@/utils/event';\r\nimport NProgress from 'nprogress'; // progress bar\r\nimport Layout from '@/views/layout/Layout.vue';\r\nimport Login from '@/views/login/index.vue';\r\nimport PageError from '@/views/errorPage/error.vue';\r\nimport NoAuth from '@/views/errorPage/401.vue';\r\nimport Page404 from '@/views/errorPage/404.vue';\r\nimport store from '@/store';\r\nimport * as Types from '@/store/types';\r\nimport * as Env from '@/env';\r\n\r\nVue.use(Router);\r\n\r\n/**\r\n* hidden: true                   if `hidden:true` will not show in the sidebar(default is false)\r\n* alwaysShow: true               if set true, will always show the root menu, whatever its child routes length\r\n*                                if not set alwaysShow, only more than one route under the children\r\n*                                it will becomes nested mode, otherwise not show the root menu\r\n* redirect: noredirect           if `redirect:noredirect` will no redirect in the breadcrumb\r\n* name:'router-name'             the name is used by <keep-alive> (must set!!!)\r\n* meta : {\r\n    title: 'title'               the name show in submenu and breadcrumb (recommend set)\r\n    icon: 'svg-name'             the icon show in the sidebar\r\n  }\r\n**/\r\nexport let constantRouters = [\r\n    {\r\n        path: '/redirect',\r\n        component: Layout,\r\n        hidden: true,\r\n        children: [\r\n          {\r\n            path: '/redirect/:path*',\r\n            component: () => import('@/views/redirect/index.vue')\r\n          }\r\n        ]\r\n    },\r\n    {\r\n        path: '/login',\r\n        component: Login,\r\n        hidden: true\r\n    },\r\n    {\r\n        path: '/error',\r\n        component: PageError,\r\n        hidden: true\r\n    },\r\n    {\r\n        path: '/noAuth',\r\n        component: NoAuth,\r\n        hidden: true\r\n    },\r\n    {\r\n        path: '/error404',\r\n        component: Page404,\r\n        hidden: true\r\n    },\r\n    // 首页\r\n    {\r\n        path: '/',\r\n        component: Layout,\r\n        redirect: '/dashboard',\r\n        alwaysShow: false,\r\n        meta: {\r\n            permission: true\r\n        },\r\n        children: [\r\n            {\r\n                id: 1,\r\n                path: '/dashboard',\r\n                name: 'dashboard',\r\n                component: () => import(/* webpackChunkName: \"dashboard\" */ '@/views/dashboard/index.vue'),\r\n                meta: {\r\n                    title: '首页',\r\n                    icon: 'icon-home',\r\n                    permission: true,\r\n                    affix: true\r\n                }\r\n            }\r\n        ]\r\n    },\r\n    {\r\n        path: '*',\r\n        redirect: '/error404',\r\n        hidden: true\r\n    }\r\n];\r\n\r\nexport let asyncRouters = [\r\n    // 人力资源\r\n    {\r\n        id: 1200,\r\n        name: 'hr',\r\n        path: '/hr',\r\n        component: Layout,\r\n        redirect: '/hr/myPerfs',\r\n        alwaysShow: true,\r\n        show: true,\r\n        meta: {\r\n            title: '人力资源',\r\n            icon: 'icon-hr',\r\n            permission: true\r\n        },\r\n        children: [\r\n            {\r\n                id: 1207,\r\n                name: 'hrPoints',\r\n                path: 'hr/points',\r\n                redirect: '/hr/points',\r\n                hidden: false,\r\n                component: () => import(/* webpackChunkName: \"points\" */ '@/views/hr/frame.vue'),\r\n                meta: {\r\n                    title: '积分管理',\r\n                    permission: true\r\n                },\r\n                children: [\r\n                    {\r\n                        id: 1207,\r\n                        hidden: true,\r\n                        name: 'hrPoints',\r\n                        path: '/hr/points',\r\n                        component: () => import(/* webpackChunkName: \"points\" */ '@/views/hr/Points.vue'),\r\n                        meta: {\r\n                            title: '积分管理'\r\n                        }\r\n                    },\r\n                ]\r\n            },\r\n            {\r\n                id: 1201,\r\n                name: 'myPerfs',\r\n                path: 'myPerfs',\r\n                redirect: '/hr/myPerfs/list',\r\n                hidden: true,\r\n                component: () => import(/* webpackChunkName: \"myPerfs\" */ '@/views/hr/frame.vue'),\r\n                meta: {\r\n                    title: '我的绩效',\r\n                    permission: true\r\n                },\r\n                children: [\r\n                    {\r\n                        id: 1201,\r\n                        hidden: true,\r\n                        name: 'reviewPerfsSelf',\r\n                        path: 'list',\r\n                        component: () => import(/* webpackChunkName: \"myPerfs\" */ '@/views/hr/myPerf/index.vue'),\r\n                        meta: {\r\n                            title: '我的绩效'\r\n                        }\r\n                    },\r\n                    {\r\n                        name: 'myPerfsView',\r\n                        path: 'view/:id',\r\n                        component: () => import(/* webpackChunkName: \"myPerfs\" */ '@/views/hr/viewPerf.vue'),\r\n                        hidden: true,\r\n                        meta: {\r\n                            title: '查看',\r\n                            permission: true,\r\n                            noCache: true\r\n                        }\r\n                    },\r\n                    {\r\n                        name: 'myPerfsEdit',\r\n                        path: 'edit/:id',\r\n                        component: () => import(/* webpackChunkName: \"myPerfs\" */ '@/views/hr/viewPerf.vue'),\r\n                        hidden: true,\r\n                        meta: {\r\n                            title: '自评',\r\n                            permission: true,\r\n                            noCache: true\r\n                        }\r\n                    }\r\n                ]\r\n            },\r\n            {\r\n                id: 1202,\r\n                hidden: true,\r\n                name: 'reviewPerfs',\r\n                path: 'reviewPerfs',\r\n                redirect: '/hr/reviewPerfs/list',\r\n                component: () => import(/* webpackChunkName: \"reviewPerfs\" */ '@/views/hr/frame.vue'),\r\n                meta: {\r\n                    title: '绩效评定'\r\n                },\r\n                children: [\r\n                    {\r\n                        id: 1202,\r\n                        path: 'list',\r\n                        name: 'reviewPerfsList',\r\n                        hidden: true,\r\n                        component: () => import(/* webpackChunkName: \"reviewPerfs\" */ '@/views/hr/reviewPerfs/index.vue'),\r\n                        meta: {\r\n                            title: '绩效评定'\r\n                        }\r\n                    },\r\n                    {\r\n                        path: 'view/:id',\r\n                        name: 'reviewPerfsView',\r\n                        component: () => import(/* webpackChunkName: \"reviewPerfs\" */ '@/views/hr/viewPerf.vue'),\r\n                        hidden: true,\r\n                        meta: {\r\n                            title: '查看',\r\n                            permission: true,\r\n                            noCache: true\r\n                        }\r\n                    },\r\n                    {\r\n                        path: 'edit/:id',\r\n                        name: 'reviewPerfsEdit',\r\n                        component: () => import(/* webpackChunkName: \"reviewPerfs\" */ '@/views/hr/viewPerf.vue'),\r\n                        hidden: true,\r\n                        meta: {\r\n                            title: '评定',\r\n                            permission: true,\r\n                            noCache: true\r\n                        }\r\n                    },\r\n                    {\r\n                        name: 'trend',\r\n                        path: 'trend/:uin',\r\n                        component: () => import(/* webpackChunkName: \"reviewPerfs\" */ '@/views/hr/trendStat.vue'),\r\n                        hidden: true,\r\n                        meta: {\r\n                            title: '绩效走势图',\r\n                            permission: true\r\n                        }\r\n                    }\r\n                ]\r\n            },\r\n            {\r\n                id: 1203,\r\n                name: 'perfConfig',\r\n                path: 'perfConfig',\r\n                redirect: '/hr/perfConfig/listTpls',\r\n                alwaysShow: true,\r\n                hidden: true,\r\n                component: () => import(/* webpackChunkName: \"perfConfig\" */ '@/views/hr/frame.vue'),\r\n                meta: {\r\n                    title: '绩效设置',\r\n                    permission: true\r\n                },\r\n                children: [\r\n                    {\r\n                        id: 1204,\r\n                        name: 'perfLaunch',\r\n                        path: 'perfLaunch',\r\n                        hidden: true,\r\n                        component: () => import(/* webpackChunkName: \"perfConfig\" */ '@/views/hr/perfConfig/perfLaunch.vue'),\r\n                        meta: {\r\n                            title: '发起考核'\r\n                        }\r\n                    },\r\n                    {\r\n                        id: 1205,\r\n                        name: 'mgmtPerf',\r\n                        path: 'mgmtPerf',\r\n                        hidden: true,\r\n                        component: () => import(/* webpackChunkName: \"perfConfig\" */ '@/views/hr/perfConfig/mgmtPerf.vue'),\r\n                        meta: {\r\n                            title: '绩效管理'\r\n                        }\r\n                    },\r\n                    {\r\n                        name: 'mgmtPerfView',\r\n                        path: 'view/:id',\r\n                        component: () => import(/* webpackChunkName: \"reviewPerfs\" */ '@/views/hr/viewPerf.vue'),\r\n                        hidden: true,\r\n                        meta: {\r\n                            title: '查看',\r\n                            permission: true\r\n                        }\r\n                    },\r\n                    {\r\n                        id: 1206,\r\n                        name: 'statPerf',\r\n                        path: 'statPerf',\r\n                        hidden: true,\r\n                        component: () => import(/* webpackChunkName: \"perfConfig\" */ '@/views/hr/perfConfig/distributionStat.vue'),\r\n                        meta: {\r\n                            title: '绩效统计'\r\n                        }\r\n                    }\r\n                ]\r\n            }\r\n        ]\r\n    },\r\n\r\n    //仓储管理\r\n    {\r\n        id: 1400,\r\n        path: '/pgd',\r\n        name: 'pgd',\r\n        component: Layout,\r\n        redirect: '/pgd/store',\r\n        alwaysShow: true,\r\n        show: true,\r\n        hidden: false,\r\n        permission: true,\r\n        meta: {\r\n            title: '仓储管理',\r\n            icon: 'warehouse',\r\n            permission: false\r\n        },\r\n        children: [\r\n            {\r\n                id: 1401,\r\n                path: 'store',\r\n                name: 'store',\r\n                component: () => import(/* webpackChunkName: \"store\" */ '@/views/pgd/store.vue'),\r\n                meta: {\r\n                    title: '入库管理',\r\n                    permission: true\r\n                }\r\n            },\r\n            {\r\n                id: 1402,\r\n                path: 'deliver',\r\n                name: 'deliver',\r\n                component: () => import(/* webpackChunkName: \"deliver\" */ '@/views/pgd/deliver.vue'),\r\n                meta: {\r\n                    title: '出库管理',\r\n                    permission: true\r\n                }\r\n            },\r\n            {\r\n                id: 1403,\r\n                path: 'inventory',\r\n                name: 'inventory',\r\n                component: () => import(/* webpackChunkName: \"inventory\" */ '@/views/pgd/inventory.vue'),\r\n                meta: {\r\n                    title: '库存管理',\r\n                    permission: true\r\n                }\r\n            }\r\n        ]\r\n    },\r\n\r\n    //表单管理\r\n    {\r\n        id: 1500,\r\n        path: '/form',\r\n        name: 'form',\r\n        component: Layout,\r\n        redirect: '/form/applyForm',\r\n        alwaysShow: true,\r\n        show: true,\r\n        hidden: false,\r\n        permission: true,\r\n        meta: {\r\n            title: '表单管理',\r\n            icon: 'icon-form',\r\n            permission: true\r\n        },\r\n        children: [\r\n            {\r\n                id: 1501,\r\n                path: 'applyForm',\r\n                name: 'applyForm',\r\n                component: () => import(/* webpackChunkName: \"applyForm\" */ '@/views/form/applyForm.vue'),\r\n                meta: {\r\n                    title: '发起表单',\r\n                    permission: true\r\n                }\r\n            },\r\n            {\r\n                id: 1502,\r\n                path: 'myForm',\r\n                name: 'myForm',\r\n                component: () => import(/* webpackChunkName: \"myForm\" */ '@/views/form/myForm.vue'),\r\n                meta: {\r\n                    title: '我的表单',\r\n                    permission: true\r\n                }\r\n            },\r\n        ]\r\n    },\r\n    //营销管理\r\n    {\r\n        id: 1600,\r\n        name: 'market',\r\n        path: '/market',\r\n        component: Layout,\r\n        hidden: true,\r\n        meta: {\r\n            title: '营销管理',\r\n            icon: 'icon-sell'\r\n        },\r\n        children: [\r\n            {\r\n                id: 1601,\r\n                name: 'tanzhi',\r\n                path: 'tanzhi',\r\n                alwaysShow: true,\r\n                component: () => import(/* webpackChunkName: \"frame\" */ '@/views/market/tanzhi/frame.vue'),\r\n                meta: {\r\n                    title: '探知馆'\r\n                },\r\n                children: [\r\n                    {\r\n                        id: 1602,\r\n                        name: 'rechargeRecord',\r\n                        path: 'rechargeRecord',\r\n                        component: () => import(/* webpackChunkName: \"record\") */ '@/views/market/tanzhi/record.vue'),\r\n                        meta: {\r\n                            title: '门票充值记录'\r\n                        }\r\n                    }\r\n                ]\r\n            },\r\n            {\r\n                id: 1300,\r\n                path: '/sale',\r\n                name: 'sale',\r\n                component: () => import('@/views/redpack/frame.vue'),\r\n                redirect: '/sale/addSale',\r\n                alwaysShow: true,\r\n                show: true,\r\n                meta: {\r\n                    title: '销售管理',\r\n                    permission: true\r\n                },\r\n                children: [\r\n                    {\r\n                        id: 1301,\r\n                        path: 'addSale',\r\n                        name: 'addSale',\r\n                        hidden: true,\r\n                        component: () => import(/* webpackChunkName: \"addSell\" */ '@/views/hr/frame.vue'),\r\n                        meta: {\r\n                            title: '销售资源',\r\n                        },\r\n                        children: [\r\n                            {\r\n                                id: 1301,\r\n                                path: 'list',\r\n                                hidden: true,\r\n                                component: () => import(/* webpackChunkName: \"addSell\" */ '@/views/sale/addSale.vue'),\r\n                                meta: {\r\n                                    title: '销售资源'\r\n                                }\r\n                            }\r\n                        ]\r\n                    }\r\n                ]\r\n            },\r\n            {\r\n                id: 1610,\r\n                name: 'redpack',\r\n                path: 'redpack',\r\n                alwaysShow: true,\r\n                component: () => import('@/views/redpack/frame.vue'),\r\n                meta: {\r\n                    title: '红包管理',\r\n                    // icon: 'icon-redpack'\r\n                },\r\n                children: [\r\n                    {\r\n                        id: 1611,\r\n                        name: 'batchMgmt',\r\n                        path: 'batchMgmt',\r\n                        component: () => import('@/views/redpack/batch/batchMgmt.vue'),\r\n                        meta: {\r\n                            title: '批次管理'\r\n                        }\r\n                    },\r\n                    {\r\n                        id: 1612,\r\n                        name: 'prizepoolMgmt',\r\n                        path: 'prizepoolMgmt',\r\n                        component: () => import('@/views/redpack/prizepool/prizepoolMgmt.vue'),\r\n                        meta: {\r\n                            title: '管理奖池'\r\n                        }\r\n                    },\r\n                    {\r\n                        id: 1613,\r\n                        name: 'dealMgmt',\r\n                        path: 'dealMgmt',\r\n                        component: () => import('@/views/redpack/deal/redpackDealView.vue'),\r\n                        meta: {\r\n                            title: '订单管理'\r\n                        }\r\n                    },\r\n                    {\r\n                        id: 1614,\r\n                        name: 'redpackModify',\r\n                        path: 'redpackModify',\r\n                        component: () => import('@/views/redpack/redpackDetailEdit.vue'),\r\n                        meta: {\r\n                            title: '修改红包'\r\n                        }\r\n                    },\r\n                    {\r\n                        id: 1615,\r\n                        name: 'sysinfoEdit',\r\n                        path: 'sysinfoEdit',\r\n                        component: () => import('@/views/redpack/sysinfo/sysinfoEdit.vue'),\r\n                        meta: {\r\n                            title: '风控配置'\r\n                        }\r\n                    },\r\n                    {\r\n                        id: 1616,\r\n                        name: 'prizepoolItemsView',\r\n                        path: 'prizepoolItemsView/:poolId',\r\n                        component: () => import('@/views/redpack/prizepool/prizepoolItemsView.vue'),\r\n                                    hidden: true,\r\n                        meta: {\r\n                            title: '奖项列表'\r\n                        }\r\n                    },\r\n                    {\r\n                        id: 1617,\r\n                        name: 'batchDetail',\r\n                        path: 'batchDetail/:batchId',\r\n                        component: () => import('@/views/redpack/batch/batchDetail.vue'),\r\n                        meta: {\r\n                            title: '查看批次'\r\n                        }\r\n                    }\r\n                ]\r\n            }   \r\n        ]\r\n    },\r\n\r\n    // 系统配置\r\n    {\r\n        id: 1100,\r\n        name: 'system',\r\n        path: '/pc/sysconfig',\r\n        component: Layout,\r\n        redirect: '/pc/sysconfig/userrole',\r\n        hidden: true,\r\n        alwaysShow: true,\r\n        meta: {\r\n            title: '系统设置',\r\n            icon: 'icon-system'\r\n        },\r\n        children: [\r\n            {\r\n                id: 1101,\r\n                name: 'userrole',\r\n                path: 'userrole',\r\n                component: () => import(/* webpackChunkName: \"userRole\" */ '@/views/system/userRole.vue'),\r\n                meta: {\r\n                    title: '用户与角色'\r\n                }\r\n            }\r\n        ]\r\n    }\r\n];\r\n\r\nlet router = new Router({\r\n    scrollBehavior: () => ({ y: 0 }),\r\n    routes: [...constantRouters, ...asyncRouters]\r\n});\r\n\r\nrouter.beforeEach((to, from, next) => {\r\n    for (let i = 0; i < constantRouters.length; i++) {\r\n        if (to.path === constantRouters[i].path) {\r\n            next();\r\n            return;\r\n        }\r\n    }\r\n\r\n    let uin = Cookies.get('uin');\r\n    let token = Cookies.get('token');\r\n    let userInfo = localStorage.getItem(Env.userInfoCacheKey);\r\n    if (!userInfo || !uin || !token) {\r\n        next({ path: '/login' });\r\n    } else if (to.meta && to.meta.permission === true) {\r\n        NProgress.start();\r\n        next();\r\n    } else if (to.fullPath.startsWith('/redirect') || from.fullPath.startsWith('/redirect')) {\r\n        next()\r\n    } else {\r\n        next({ path: '/noAuth' });\r\n    }\r\n});\r\n\r\nrouter.afterEach(() => {\r\n    NProgress.done();\r\n});\r\n\r\n// 登录成功后的事件处理，设置router里的权限问题\r\nevent.$on('login-success', () => {\r\n    let userInfo = localStorage.getItem(Env.userInfoCacheKey);\r\n    try {\r\n        userInfo = JSON.parse(userInfo) || {};\r\n    } catch (e) {\r\n        userInfo = {};\r\n    }\r\n\r\n    let menus = userInfo.menus || [];\r\n    store.commit(Types.SET_USER_INFO, {\r\n        name: userInfo.name,\r\n        avatar: userInfo.avatar,\r\n        email: userInfo.email,\r\n        mobile: userInfo.mobile,\r\n        depId: userInfo.depId,\r\n        depName: userInfo.depName,\r\n        position: userInfo.position\r\n    });\r\n\r\n    // dashboard默认展示\r\n    let menusMap = {\r\n        '1': {\r\n            hidden: 1\r\n        }\r\n    };\r\n    menus.forEach((menu) => {\r\n        menusMap[menu.id] = menu;\r\n    });\r\n\r\n    // let routeMenus = router.options.routes;\r\n    let routeMenus = asyncRouters;\r\n    let checkPermission = (menus) => {\r\n        let hasVisibleMenus = false;\r\n        menus.forEach((menu) => {\r\n            let id = menu.id;\r\n            if (menusMap[id]) {\r\n                menu.hidden = menusMap[id].hidden !== 1;\r\n                menu.meta.permission = true;\r\n                menu.title = menu.meta.title;\r\n\r\n                if (!hasVisibleMenus) {\r\n                    hasVisibleMenus = menusMap[id].hidden === 1;\r\n                }\r\n            }\r\n            if (menu.children && menu.children.length > 0) {\r\n                menu.hidden = !checkPermission(menu.children);\r\n            }\r\n        });\r\n        return hasVisibleMenus;\r\n    };\r\n    checkPermission(routeMenus);\r\n});\r\n\r\n// 用户刷新状态下，直接出发路由权限\r\nlet uin = Cookies.get('uin');\r\nlet token = Cookies.get('token');\r\nlet userInfo = localStorage.getItem(Env.userInfoCacheKey);\r\n\r\nif (userInfo && uin && token) {\r\n    event.$emit('login-success');\r\n    store.dispatch(Types.FETCH_USER_INFO).then(() => {\r\n        setTimeout(() => {\r\n            event.$emit('login-success');\r\n        }, 200);\r\n    });\r\n}\r\n\r\nexport default router;\r\n","import axios from 'axios';\r\nimport Cookies from 'js-cookie';\r\nimport { Message, MessageBox } from 'element-ui';\r\nimport store from '@/store';\r\nimport * as Types from '@/store/types';\r\n\r\nexport const isObject = (obj) => isType(obj, 'Object');\r\n\r\nexport const isFile = (obj) => isType(obj, 'File');\r\n\r\nconst isType = (obj, type) => Object.prototype.toString.call(obj) === '[object ' + type + ']';\r\n\r\nconst ajax = axios.create({\r\n    baseURL: process.env.BASE_API,\r\n    timeout: 8000,\r\n    transformRequest: (data, header) => {\r\n        var param = function(obj) {\r\n            var query = '';\r\n            var name, value, fullSubName, subName, subValue, innerObj, i;\r\n\r\n            for (name in obj) {\r\n                value = obj[name];\r\n\r\n                if (value instanceof Array) {\r\n                    for (i = 0; i < value.length; ++i) {\r\n                        subValue = value[i];\r\n                        fullSubName = name + '[' + i + ']';\r\n                        innerObj = {};\r\n                        innerObj[fullSubName] = subValue;\r\n                        query += param(innerObj) + '&';\r\n                    }\r\n                } else if (value instanceof Object) {\r\n                    for (subName in value) {\r\n                        subValue = value[subName];\r\n                        fullSubName = name + '.' + subName;\r\n                        innerObj = {};\r\n                        innerObj[fullSubName] = subValue;\r\n                        query += param(innerObj) + '&';\r\n                    }\r\n                } else if (value !== undefined && value !== null) {\r\n                    query += encodeURIComponent(name) + '=' + encodeURIComponent(value) + '&';\r\n                }\r\n            }\r\n\r\n            return query.length ? query.substr(0, query.length - 1) : query;\r\n        };\r\n\r\n        return isObject(data) && !isFile(data) ? param(data) : data;\r\n    },\r\n    withCredentials: true\r\n});\r\n\r\najax.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';\r\n\r\n// request interceptor\r\najax.interceptors.request.use(\r\n    (config) => {\r\n        let uin = Cookies.get('uin');\r\n        let token = Cookies.get('token');\r\n\r\n        config.headers = config.headers || {};\r\n        config.headers['Content-Type'] = 'application/x-www-form-urlencoded';\r\n\r\n        if (uin) {\r\n            config.headers['uin'] = uin;\r\n        }\r\n        if (token) {\r\n            config.headers['token'] = token;\r\n        }\r\n\r\n        return config;\r\n    },\r\n    (error) => {\r\n        console.log(error); // for debug\r\n        return Promise.reject(error);\r\n    }\r\n);\r\n\r\n// response interceptor\r\najax.interceptors.response.use(\r\n    (response) => {\r\n        const res = response.data;\r\n        if (res.code !== 0) {\r\n            Message({\r\n                message: res.msg || res.message || '未知错误',\r\n                type: 'error',\r\n                duration: 5 * 1000\r\n            });\r\n\r\n            if (res.code === 999 || res.code === 990) {\r\n                MessageBox.confirm('你已被登出，可以取消继续留在该页面，或者重新登录', '确定登出', {\r\n                    confirmButtonText: '重新登录',\r\n                    cancelButtonText: '取消',\r\n                    type: 'warning'\r\n                }).then(() => {\r\n                    store.commit(Types.CLEAR_USER_TOKEN);\r\n                    setTimeout(() => {\r\n                        location.reload();\r\n                    }, 0);\r\n                });\r\n            }\r\n\r\n            return Promise.reject(res);\r\n        } else {\r\n            return Promise.resolve(res);\r\n        }\r\n    },\r\n    (error) => {\r\n        console.log('err' + error); // for debug\r\n        Message({\r\n            message: error.msg || error.message || '网络状况不佳',\r\n            type: 'error',\r\n            duration: 5 * 1000\r\n        });\r\n        return Promise.reject(error);\r\n    }\r\n);\r\n\r\nexport default ajax;\r\n","import mod from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=style&index=0&id=18f3739a&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../node_modules/css-loader/index.js??ref--11-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Layout.vue?vue&type=style&index=0&id=18f3739a&lang=scss&scoped=true&\"","import mod from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMain.vue?vue&type=style&index=0&id=689483c0&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../node_modules/mini-css-extract-plugin/dist/loader.js!../../../../node_modules/css-loader/index.js??ref--11-1!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMain.vue?vue&type=style&index=0&id=689483c0&lang=scss&scoped=true&\"","import mod from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js!../../node_modules/css-loader/index.js??ref--11-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resetPwdDialog.vue?vue&type=style&index=0&lang=scss&\"; export default mod; export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js!../../node_modules/css-loader/index.js??ref--11-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/lib/index.js??ref--11-2!../../node_modules/sass-loader/lib/loader.js??ref--11-3!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./resetPwdDialog.vue?vue&type=style&index=0&lang=scss&\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHEAAABvCAYAAADboi87AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoV2luZG93cykiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjJGRjA4QThBRTY3MTFFNEIzNjU4QUZFRDEwQkY1RTMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjJGRjA4QTlBRTY3MTFFNEIzNjU4QUZFRDEwQkY1RTMiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoyMkZGMDhBNkFFNjcxMUU0QjM2NThBRkVEMTBCRjVFMyIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoyMkZGMDhBN0FFNjcxMUU0QjM2NThBRkVEMTBCRjVFMyIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/Pt5yArgAAA49SURBVHja7J1LbBXX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\""],"sourceRoot":""}