{"version":3,"sources":["webpack:///./src/assets/img/yunpan-icon@3x.png","webpack:///./src/assets/img/logo.svg","webpack:///./src/components/Loader.vue?224f","webpack:///./src/components/Loader.vue","webpack:///./src/components/Loader.vue?4578","webpack:///./src/components/Dialog.vue?a61f","webpack:///./src/components/Dialog.vue","webpack:///./src/components/Dialog.vue?6079","webpack:///./src/components/HeaderPlus.vue?3f07","webpack:///./src/components/HeaderPlus.vue","webpack:///./src/components/HeaderPlus.vue?75a1","webpack:///./src/components/HuddlePop.vue?f26f","webpack:///./src/components/HuddlePop.vue","webpack:///./src/components/HuddlePop.vue?c5c2","webpack:///./src/components/FooterBar.vue?a98a","webpack:///./src/components/FooterBar.vue","webpack:///./src/components/FooterBar.vue?89b6","webpack:///./src/components/FilePopItem.vue?b354","webpack:///./src/components/FilePopItem.vue","webpack:///./src/components/FilePopItem.vue?75ed","webpack:///./src/components/FilePop.vue?ac74","webpack:///./src/components/FilePop.vue","webpack:///./src/components/FilePop.vue?732c","webpack:///./src/views/index.vue","webpack:///./src/views/index.vue?c665","webpack:///./src/assets/img/huddle-pop@3x.png","webpack:///./src/assets/img/meet-download-icon@3x.svg","webpack:///./src/components/Loader.vue?c911","webpack:///./src/components/Spin.vue?5edc","webpack:///./src/components/Spin.vue?ef4c","webpack:///./src/components/Spin.vue","webpack:///./src/components/Spin.vue?71fb","webpack:///./src/components/HeaderPlus.vue?5f3b","webpack:///./src/components/FilePop.vue?eb6e","webpack:///./src/assets/img/huddle-frame-quitIcon@3x.png","webpack:///./src/components/FooterBar.vue?848d","webpack:///./src/components/FilePopItem.vue?d91b","webpack:///./src/components/HuddlePop.vue?c32b","webpack:///./src/assets/img/speed-tack-icon@3x.png","webpack:///./src/components/HeaderPlus.vue?066d","webpack:///./src/assets/img/speedup.svg","webpack:////var/static/node_modules/.pnpm/nanoid@3.3.6/node_modules/nanoid/url-alphabet/index.js","webpack:////var/static/node_modules/.pnpm/nanoid@3.3.6/node_modules/nanoid/index.browser.js","webpack:///./src/api/flowhub.ts","webpack:///./src/views/index.vue?5161","webpack:///./src/composable/auth.ts"],"names":["module","exports","_withScopeId","n","_hoisted_1","key","class","_hoisted_2","_hoisted_3","render","_ctx","_cache","$props","$setup","$data","$options","modelValue","innerText","name","props","type","Boolean","required","String","require","action","emits","__exports__","_component_Loader","dialog","title","tip","onClick","args","handleTip","hasCheck","deleteCompletely","isIOS","more","innerHTML","verticalFooter","href","$event","close","cancelTxt","handleAcion","showLoader","okTxt","components","Loader","store","computed","this","cancel","navigator","userAgent","includes","methods","commit","show","setTimeout","xmlns","width","height","viewBox","d","_hoisted_4","_hoisted_5","_hoisted_6","src","draggable","_hoisted_7","_component_IconHome","disabled","isVip","isAndroid","isUseIOSHeader","isNative","callAppHome","alt","onOpenDeviceList","currentDeviceName","isLogin","showSpeedUp","goVip","showVipSpeedUp","isSuperVip","IconHome","setup","envStore","isDev","deviceStore","_deviceStore$currentD","_deviceStore$currentD2","currentDeviceRef","runnerTaskRef","openDeviceList","showDevice","_deviceStore$currentD3","phase","isSelect","isApp","isMiniProgram","self","top","showVip","user","$route","path","$store","getters","runningList","length","taskType","status","_window","_window2","window","webkit","messageHandlers","hdc","xlremote","routename","dispatch","$router","back","$stat","position","actionFrom","isShowVipPop","quitHuddlePop","watch","val","fill","stroke","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","cx","cy","r","_hoisted_35","_hoisted_36","_component_IconTvCinemaNew","currentPage","selectPage","downloadAndPendingList","num","isCinemaShowRef","isPluginShowRef","showPoint","clientVersion","match","IconTvCinemaNew","isServerSupportPlugin","util","hasLabel","baseConfig","baseConfigRef","configIsCinemaDisabled","_baseConfig$value","value","nfo_config","is_disabled","configIsPluginShow","_deviceStore$currentD4","params","platform","localStorage","getItem","undefined","console","log","setItem","immediate","configIsCinemaShow","total","_this$deviceInfoWatch","_this$deviceInfoWatch2","deviceInfoWatchData","client_version","page","push","query","handleSelect","iconLink","file","file_name","parseTime","Date","created_time","style","size","kind","iShowHuddle","MeetIcon","SpeedTackIcon","all","id","spec","file_size","Number","icon_link","mime_type","oVal","huddleNum","isYSvip","formatSize","async","e","_this$file","_this$file$name","_this$file2","_this$file$name2","_this$file3","_this$file4","_this$file5","_this$file6","_this$all$this$filePo","_this$all$this$filePo2","isVideo","stat","data","tab","gcid","hash","info_hash","url","task_name","filePopTaskID","task_size","file_extension","usage","theme","action_from","scene","then","showFilePop","parentIds","catch","files","load","leading","trailing","_component_FilePopItem","_component_Spin","default","_","goBack","backHome","isLoading","loadFunction","FilePopItem","Spin","list","map","closeAndRemovePopStateListener","removeEventListener","history","pushState","location","pathname","addEventListener","parent_id","error","isBack","isBackHome","__name","__props","state","toast","queryAuth","scope","privilegeAuth","showHead","router","currentRoute","target","watchDeviceExceedLimit","watchStopHandler","runnerList","newList","fromSpace","t","filter","task","_newList$find","find","v","_v$params","errorcode","filterDevice","deviceMap","toBeFilter","Array","from","isInPC","i","_i$","Map","watchRunnerUtilDeviceOnline","unwatch","newMap","filteredDeviceMap","changeCurrentDevice","message","selectDefaultDeviceSpace","_cachedDeviceRunner$p","_filteredDeviceMap$ge","cachedDeviceRunner","cachedSpace","space","has","get","keys","next","_val$params","checking","connecting","loading","curDeviceRunner","checkIsShowCooperationDialog","getDeviceInfo","_deviceStore$currentD5","deviceInfoRef","openDialogCooperationExpires","_deviceStore$currentD6","values","every","userStore","bodyClass","_router$currentRoute$","_deviceStore$currentD7","cacheIsVip","hasInit","vipType","normal","vip","is_vip","nativeCallConfigNav","colorMap","statusBarLightMode","noCallback","document","body","classList","remove","add","checkHezi","deviceList","heziStore","getHezi","heziDeviceList","firstHeziDevice","jumpToHezi","startRunner","_deviceStore$currentD8","pollRunnerList","defaultSpace","haveRequestedRunner","isInMac","handleQueryAction","nfo_id","nfo","scrape_result","pop","_router$currentRoute$2","checkIsBindAndIsLogin","pathEnv","authResult","auth","isDeviceLogin","result","isChanged","isBind","user_code","client_id","checkRunner","code","expires_in","replace","newQueryAuth","Object","assign","bindDevice","userID","userId","_authResult","State","Users","user_id","nickname","nickName","replaceState","auto_login","sso","signIn","browser","_store$state$user$nic","_store$state","_await$getSSOUser$nic","address","error_description","handleAuth","_router$currentRoute$3","privilege","handleCheck","handleRunner","updateAuthStatus","hasPopDeviceLimitExceededShown","error_message","handleAuthCancel","getFlowHubSlots","needExtraHeaderPadding","isPageShowEventListenerAttached","getUser","FooterBar","FilePop","Dialog","HuddlePop","showCover","nanoid","crypto","getRandomValues","Uint8Array","reduce","byte","toString","toUpperCase","FlowHub","constructor","availableSlotParams","POSITION_CINEMA_EMPTY","slots","accept_source","accept_landing_type","accept_style","accept_event","slotResult","ref","hosts","host","slot","useEnvStore","axios","post","headers","xbaseConfig","clientId","global","deviceID","reactive","startsWith","flowHubInstance","useHuaweiRequest","generateRequestID","timestamp","now","random","Math","floor","requestFunction","payload","Promise","resolve","reject","requestID","resp","_response$data","response","JSON","parse","Error","stringifiedPayload","stringify","getServiceData","_response$data2","postMessage","method","callback","getTime","function","curryGetDeviceStatus","requestFunc","currySignOut","curryGetAuthLink","curryGetEntryLink","useAuth","factory","mapFactoryToRequestComposable","huawei","curRequestFunction","linkResp","paramsToObject","URL","searchParams","updateGlobalProperties","_status$user","authParams","captureException","signOut"],"mappings":"mGAAAA,EAAOC,QAAU,k/E,gDCAjBD,EAAOC,QAAU,IAA0B,gB,6FCC3C,MAAMC,EAAeC,IAAM,yBAAa,mBAAoBA,EAAIA,IAAK,0BAAeA,GAC9EC,EAAa,CACjBC,IAAK,EACLC,MAAO,UAEHC,EAA0BL,EAAa,IAAmB,gCAAoB,MAAO,CACzFI,MAAO,WACN,CAAc,gCAAoB,MAAO,CAC1CA,MAAO,qBACH,IACAE,EAAa,CACjBH,IAAK,GAEA,SAASI,EAAOC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GAC1D,OAAOL,EAAKM,YAAc,yBAAc,gCAAoB,MAAOZ,EAAY,CAACG,EAAY,gCAAoB,OAAQ,KAAM,6BAAiBG,EAAKO,WAAY,OAAS,yBAAc,gCAAoB,MAAOT,EAAY,6BAAiBE,EAAKO,WAAY,ICdnP,mCAAgB,CAC7BC,KAAM,SACNC,MAAO,CACLH,WAAY,CACVI,KAAMC,QACNC,UAAU,GAEZL,UAAW,CACTG,KAAMG,OACNC,SAAS,GAEXC,OAAQ,CACNL,KAAMG,OACNC,SAAS,IAGbE,MAAO,GACP,QACE,MAAO,M,iCCZX,MAAMC,EAA2B,IAAgB,EAAQ,CAAC,CAAC,SAASlB,GAAQ,CAAC,YAAY,qBAE1E,QCRf,MAAM,EAAa,CACjBH,MAAO,SAEH,EAAa,CACjBA,MAAO,gBAEH,EAAa,CAAC,aACb,SAAS,EAAOI,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GAC1D,MAAMa,EAAoB,EAC1B,OAAO,yBAAc,gCAAoB,MAAO,EAAY,CAAC,gCAAoB,MAAO,CACtFtB,MAAO,4BAAgB,CAAC,SAAUI,EAAKe,UACtC,CAAC,gCAAoB,MAAO,EAAY,CAAC,gCAAoB,KAAM,KAAM,6BAAiBf,EAAKmB,OAAOC,OAAQ,GAAIpB,EAAKmB,OAAOE,KAAO,yBAAc,gCAAoB,IAAK,CAC7K1B,IAAK,EACLC,MAAO,OACP0B,QAASrB,EAAO,KAAOA,EAAO,GAE9B,IAAIsB,IAASvB,EAAKwB,WAAaxB,EAAKwB,aAAaD,KAChD,CAACvB,EAAKyB,UAAY,yBAAc,gCAAoB,IAAK,CAC1D9B,IAAK,EACLC,MAAO,4BAAgB,YAAWI,EAAK0B,iBAAmB,UAAY,WACrE,KAAM,IAAM,gCAAoB,IAAI,GAAO,gCAAoB,OAAQ,KAAM,6BAAiB1B,EAAKmB,OAAOE,KAAM,MAAQ,gCAAoB,IAAI,GAAuB,cAAhBrB,EAAKe,QAA0B,yBAAc,gCAAoB,IAAK,CAC9NpB,IAAK,EACLC,MAAO,4BAAgB,CAAC,aAAc,CACpC,IAAOI,EAAK2B,UAEb,KAAM,IAAM,gCAAoB,IAAI,GAAO3B,EAAKmB,OAAOS,MAAQ,yBAAc,gCAAoB,IAAK,CACvGjC,IAAK,EACLkC,UAAW7B,EAAKmB,OAAOS,MACtB,KAAM,EAAG,IAAe,gCAAoB,IAAI,KAAS,gCAAoB,MAAO,CACrFhC,MAAO,4BAAgBI,EAAKmB,OAAOW,eAAiB,mBAAqB,mBACxE,CAAC,4BAAgB,gCAAoB,IAAK,CAC3CC,KAAM,eACNnC,MAAO,eACP0B,QAASrB,EAAO,KAAOA,EAAO,GAAK+B,GAAUhC,EAAKiC,MAAM,YACvD,6BAAiBjC,EAAKmB,OAAOe,WAAY,KAAM,CAAC,CAAC,WAAQlC,EAAKmB,OAAOe,aAAc,gCAAoB,IAAK,CAC7GH,KAAM,eACNT,QAASrB,EAAO,KAAOA,EAAO,GAE9B,IAAIsB,IAASvB,EAAKmC,aAAenC,EAAKmC,eAAeZ,KACpD,CAAC,yBAAaL,EAAmB,CAClCZ,WAAYN,EAAKoC,WACjB,sBAAuBnC,EAAO,KAAOA,EAAO,GAAK+B,GAAUhC,EAAKoC,WAAaJ,GAC7EjB,OAAQf,EAAKe,OACb,aAAcf,EAAKmB,OAAOkB,OACzB,KAAM,EAAG,CAAC,aAAc,SAAU,iBAAkBrC,EAAKmB,OAAOW,gBAAkB,yBAAc,gCAAoB,IAAK,CAC1HnC,IAAK,EACLoC,KAAM,eACNnC,MAAO,eACP0B,QAASrB,EAAO,KAAOA,EAAO,GAAK+B,GAAUhC,EAAKiC,MAAM,WACvD,OAAS,gCAAoB,IAAI,IAAQ,IAAK,K,gBC9CpC,G,UAAA,6BAAgB,CAC7BzB,KAAM,SACN8B,WAAY,CACVC,UAEF,QACE,MAAO,CACLC,MAAO,mBAGXC,SAAU,IACL,eAAS,CAAC,SAAU,mBAAoB,eAC3C,SACE,OAAOC,KAAKvB,OAAOJ,QAErB,SACE,OAAO2B,KAAKvB,OAAOwB,QAErB,WACE,OAAOD,KAAKvB,OAAOM,WAAY,GAEjC,QACE,OAAQmB,UAAUC,UAAUC,SAAS,aAGzCC,QAAS,CACP,MAAMrC,GACJgC,KAAKF,MAAMQ,OAAO,SAAU,CAC1BC,MAAM,IAERP,KAAKF,MAAMQ,OAAO,SAAU,CAC1BjC,OAAQ,KAEVmC,WAAW,KACI,WAATxC,GAAqBgC,KAAKC,QAAQD,KAAKF,MAAMQ,OAAO,SAAU,CAChEjC,OAAQ2B,KAAKC,UAEd,IAEL,cACMD,KAAKvB,OAAOiB,YACdM,KAAKF,MAAMQ,OAAO,SAAU,CAC1BZ,YAAY,IAGhBM,KAAKF,MAAMQ,OAAO,SAAU,CAC1BjC,OAAQ,KAEVmC,WAAW,KACLR,KAAK3B,QAAQ2B,KAAKF,MAAMQ,OAAO,SAAU,CAC3CjC,OAAQ2B,KAAK3B,UAEd,IAEL,YACM2B,KAAKjB,UACPiB,KAAKF,MAAMQ,OAAO,SAAU,CAC1BtB,kBAAmBgB,KAAKhB,wBCxDlC,MAAM,EAA2B,IAAgB,EAAQ,CAAC,CAAC,SAAS,KAErD,Q,0CCJf,MAAM,EAAejC,IAAM,yBAAa,mBAAoBA,EAAIA,IAAK,0BAAeA,GAC9E,EAAa,CACjBG,MAAO,gBAEH,EAAa,CACjBD,IAAK,EACLwD,MAAO,6BACPC,MAAO,KACPC,OAAQ,KACRC,QAAS,aAEL,EAA0B,EAAa,IAAmB,gCAAoB,OAAQ,CAC1FC,EAAG,sNACF,MAAO,IACJC,EAAa,CAAC,GACdC,EAAa,CACjB9D,IAAK,EACLC,MAAO,sBAEH8D,EAA0B,EAAa,IAAmB,gCAAoB,MAAO,CACzFC,IAAK,IACL/D,MAAO,qBACPgE,UAAW,SACV,MAAO,IACJC,EAAa,CACjBjE,MAAO,oBAEF,SAAS,EAAOI,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GAC1D,MAAMyD,EAAsB,8BAAkB,YAC9C,OAAO,yBAAc,gCAAoB,SAAU,CACjDlE,MAAO,4BAAgB,CAAC,SAAU,CAChC,cAAeI,EAAK+D,SACpB,SAAU/D,EAAKgE,MACf,kBAAmBhE,EAAKiE,UACxB,cAAejE,EAAKkE,mBAErB,CAAC,gCAAoB,MAAO,EAAY,CAAClE,EAAKmE,UAAY,yBAAc,yBAAaL,EAAqB,CAC3GnE,IAAK,EACLyD,MAAO,KACPC,OAAQ,KACR/B,QAAStB,EAAKoE,aACb,KAAM,EAAG,CAAC,aAAe,gCAAoB,IAAI,GAAQpE,EAAKmE,SAS3D,gCAAoB,IAAI,IAT+C,yBAAc,gCAAoB,MAAO,CACpHxE,IAAK,EACLC,MAAO,cACP0B,QAASrB,EAAO,KAAOA,EAAO,GAE9B,IAAIsB,IAASvB,EAAKoE,aAAepE,EAAKoE,eAAe7C,IACrDoC,IAAK,IACLU,IAAK,OACLT,UAAW,WACwB,gCAAoB,MAAO,CAC9DhE,MAAO,cACP0B,QAASrB,EAAO,KAAOA,EAAO,GAE9B,IAAIsB,IAASvB,EAAKsE,kBAAoBtE,EAAKsE,oBAAoB/C,KAC9D,6BAAiBvB,EAAKuE,mBAAoB,GAAIvE,EAAKwE,SAAW,yBAAc,gCAAoB,MAAO,EAAYhB,IAAe,gCAAoB,IAAI,KAASxD,EAAKyE,aAAe,yBAAc,gCAAoB,IAAK,CAC/N9E,IAAK,EACLoC,KAAM,eACNnC,MAAO,YACP0B,QAASrB,EAAO,KAAOA,EAAO,GAE9B,IAAIsB,IAASvB,EAAK0E,OAAS1E,EAAK0E,SAASnD,KACxC,SAAW,gCAAoB,IAAI,GAAOvB,EAAK2E,gBAAkB,yBAAc,gCAAoB,MAAOlB,EAAY,CAACC,EAAY,gCAAoB,OAAQG,EAAY,6BAAiB7D,EAAK4E,WAAa,OAAS,MAAQ,QAAS,MAAQ,gCAAoB,IAAI,IAAQ,G,0ECzDtQ,+BAAgB,CAC7BpE,KAAM,aACN8B,WAAY,CACVuC,SAAA,QAEFC,MAAO,KACL,MAAMtC,EAAQ,iBACRuC,EAAW,iBACXC,GAAQ,EACRC,EAAc,iBACdV,EAAoB,sBAAS,KACjC,IAAIW,EAAuBC,EAC3B,OAAgM,QAAxLD,EAAoF,QAA3DC,EAAyBF,EAAYG,wBAAyD,IAA3BD,OAAoC,EAASA,EAAuBE,cAAc7E,YAA4C,IAA1B0E,EAAmCA,EAAwBF,EAAQ,YAAc,YAE3R,MAAO,CACLxC,QACAwC,QACAD,WACAO,eAAA,OACAf,sBAGJ,OACE,MAAO,CACLgB,YAAY,EACZtB,UAAA,OACAtC,MAAA,SAGJc,SAAU,IACL,eAAS,CAAC,MAAO,OAAQ,WAAY,WAAY,cAAe,QAAS,gBAAiB,QAAS,gBACnG,eAAW,CAAC,UAAW,aAAc,aAAc,UAAW,QAAS,cAAe,iBACzF,SACE,IAAI+C,EACJ,MAAMP,EAAc,iBACpB,MAAyK,wBAArG,QAA3DO,EAAyBP,EAAYG,wBAAyD,IAA3BI,OAAoC,EAASA,EAAuBH,cAAcI,QAEhK,WACE,OAAO/C,KAAKgD,UAEd,WACE,OAAQ,QAAa,QAAShD,KAAKiD,OAASjD,KAAKkD,gBAAkBC,OAASC,KAE9E,cACE,OAAQpD,KAAKsB,OAAStB,KAAKqD,SAAWrD,KAAKsD,MAA6B,QAArBtD,KAAKuD,OAAOC,MAAuC,YAArBxD,KAAKuD,OAAOC,MAAsBxD,KAAKyD,OAAOC,QAAQL,SAEzI,iBACE,OAAOrD,KAAK2D,YAAYC,OAAS,GAAuB,QAAlB5D,KAAK6D,UAAsB7D,KAAKsB,OAAStB,KAAK8D,QAA+B,QAArB9D,KAAKuD,OAAOC,MAAuC,YAArBxD,KAAKuD,OAAOC,MAE1I,iBACE,IAAIO,EAASC,EAEb,OAAO,QAAS/F,QAA+B,QAAtB8F,EAAUE,cAAgC,IAAZF,GAAqD,QAA9BA,EAAUA,EAAQG,cAAgC,IAAZH,GAA8D,QAAvCA,EAAUA,EAAQI,uBAAyC,IAAZJ,OAAqB,EAASA,EAAQK,MAAQnG,QAAgC,QAAvB+F,EAAWC,cAAiC,IAAbD,GAAwD,QAAhCA,EAAWA,EAASE,cAAiC,IAAbF,GAAiE,QAAzCA,EAAWA,EAASG,uBAA0C,IAAbH,OAAsB,EAASA,EAASK,YAGrchE,QAAS,CACP,oBACE,IAAIiE,EAAYnG,OAAO6B,KAAKuD,OAAOzF,MAC9BkC,KAAKyB,WACL,CAAC,OAAQ,QAAS,KAAM,UAAUrB,SAASkE,GAG9CtE,KAAKF,MAAMyE,SAAS,SAFpBvE,KAAKwE,QAAQC,SAKjB,QACEzE,KAAK0E,MAAM,CACTrG,OAAQ,wCAEV2B,KAAK0E,MAAM,CACTrG,OAAQ,6BAEV2B,KAAKF,MAAMyE,SAAS,QAAS,CAC3BI,SAAU,UAGd,mBACM3E,KAAK8B,SACP,eAAe,CACb8C,WAAY,iB,oBC/EtB,MAAM,EAA2B,IAAgB,EAAQ,CAAC,CAAC,SAAS,GAAQ,CAAC,YAAY,qBAE1E,Q,0CCPf,MAAM,EAAa,CACjB3H,IAAK,EACLC,MAAO,mBAEH,EAAa,CACjBA,MAAO,cAEH,EAA0B,+BAAmB,aAAgB,IAAa,maAAub,GAChgB,SAAS,EAAOI,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GAC1D,OAAOL,EAAKuH,cAAgB,yBAAc,gCAAoB,MAAO,EAAY,CAAC,gCAAoB,MAAO,EAAY,CAAC,gCAAoB,MAAO,CACnJ5D,IAAK,IACL/D,MAAO,kBACPgE,UAAW,QACXtC,QAASrB,EAAO,KAAOA,EAAO,GAE9B,IAAIsB,IAASvB,EAAKwH,eAAiBxH,EAAKwH,iBAAiBjG,MACvD,EAAYvB,EAAK+F,SAAW,yBAAc,gCAAoB,MAAO,CACvEpG,IAAK,EACLC,MAAO,gBACP0B,QAASrB,EAAO,KAAOA,EAAO,GAE9B,IAAIsB,IAASvB,EAAK0E,OAAS1E,EAAK0E,SAASnD,KACxC,aAAe,gCAAoB,IAAI,QAAa,gCAAoB,IAAI,GCvBlE,mCAAgB,CAC7Bf,KAAM,YACN,QACE,MAAO,CACLgC,MAAO,mBAGXC,SAAU,IACL,eAAS,CAAC,oBACV,eAAW,CAAC,UAAW,aAE5BgF,MAAO,CACL,QAAQC,GACNA,GAAOhF,KAAK8E,kBAGhBzE,QAAS,CACP,gBACEL,KAAKF,MAAMQ,OAAO,SAAU,CAC1BuE,cAAc,KAGlB,QAEE7E,KAAK0E,MAAM,CACTrG,OAAQ,6BAEV2B,KAAKF,MAAMyE,SAAS,QAAS,CAC3BI,SAAU,gB,UCvBlB,MAAM,GAA2B,IAAgB,EAAQ,CAAC,CAAC,SAAS,KAErD,UCRf,MAAM,GAAe5H,IAAM,yBAAa,mBAAoBA,EAAIA,IAAK,0BAAeA,GAC9E,GAAa,CACjBG,MAAO,cAEH,GAAa,CACjBD,IAAK,EACLC,MAAO,WAEH,GAAa,CACjBD,IAAK,EACLyD,MAAO,KACPC,OAAQ,KACRC,QAAS,YACTqE,KAAM,OACNxE,MAAO,8BAEH,GAA0B,GAAa,IAAmB,gCAAoB,OAAQ,CAC1FC,MAAO,KACPC,OAAQ,MACP,MAAO,IACJ,GAA0B,GAAa,IAAmB,gCAAoB,OAAQ,CAC1F,YAAa,UACb,YAAa,UACbE,EAAG,mWACHoE,KAAM,WACL,MAAO,IACJ,GAA0B,GAAa,IAAmB,gCAAoB,OAAQ,CAC1FpE,EAAG,+EACHqE,OAAQ,QACR,eAAgB,IAChB,iBAAkB,SACjB,MAAO,IACJ,GAA0B,GAAa,IAAmB,gCAAoB,OAAQ,CAC1FrE,EAAG,YACHqE,OAAQ,QACR,eAAgB,IAChB,iBAAkB,SACjB,MAAO,IACJC,GAAa,CAAC,GAAY,GAAY,GAAY,IAClDC,GAAa,CACjBnI,IAAK,EACLyD,MAAO,KACPC,OAAQ,KACRC,QAAS,YACTqE,KAAM,OACNxE,MAAO,8BAEH4E,GAA2B,GAAa,IAAmB,gCAAoB,OAAQ,CAC3F,YAAa,UACb,YAAa,UACbxE,EAAG,qXACHoE,KAAM,WACL,MAAO,IACJK,GAA2B,GAAa,IAAmB,gCAAoB,OAAQ,CAC3FzE,EAAG,8VACHqE,OAAQ,UACR,eAAgB,KACf,MAAO,IACJK,GAAc,CAACF,GAAaC,IAC5BE,GAAc,CAClBvI,IAAK,EACLyD,MAAO,KACPC,OAAQ,KACRC,QAAS,YACTqE,KAAM,OACNxE,MAAO,8BAEHgF,GAA2B,+BAAmB,ucAA8f,GAC5iBC,GAAc,CAACD,IACfE,GAAc,CAClB1I,IAAK,EACLyD,MAAO,KACPC,OAAQ,KACRC,QAAS,YACTqE,KAAM,OACNxE,MAAO,8BAEHmF,GAA2B,+BAAmB,gaAAud,GACrgBC,GAAc,CAACD,IACfE,GAAc,CAClB7I,IAAK,EACLC,MAAO,SAEH6I,GAAc,CAClB9I,IAAK,EACLyD,MAAO,KACPC,OAAQ,KACRC,QAAS,YACTqE,KAAM,OACNxE,MAAO,8BAEHuF,GAA2B,GAAa,IAAmB,gCAAoB,OAAQ,CAC3FtF,MAAO,KACPC,OAAQ,MACP,MAAO,IACJsF,GAA2B,GAAa,IAAmB,gCAAoB,OAAQ,CAC3F,YAAa,UACb,YAAa,UACbpF,EAAG,6lBACHoE,KAAM,WACL,MAAO,IACJiB,GAAc,CAACF,GAAaC,IAC5BE,GAAc,CAClBlJ,IAAK,EACLyD,MAAO,KACPC,OAAQ,KACRC,QAAS,YACTqE,KAAM,OACNxE,MAAO,8BAEH2F,GAA2B,GAAa,IAAmB,gCAAoB,OAAQ,CAC3F,YAAa,UACb,YAAa,UACbvF,EAAG,qFACHoE,KAAM,WACL,MAAO,IACJoB,GAA2B,GAAa,IAAmB,gCAAoB,SAAU,CAC7FC,GAAI,KACJC,GAAI,IACJC,EAAG,IACHvB,KAAM,WACL,MAAO,IACJwB,GAA2B,GAAa,IAAmB,gCAAoB,OAAQ,CAC3F5F,EAAG,YACHqE,OAAQ,QACR,eAAgB,IAChB,iBAAkB,QAClB,kBAAmB,SAClB,MAAO,IACJwB,GAAc,CAACN,GAAaC,GAAaI,IACxC,SAAS,GAAOnJ,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GAC1D,MAAMgJ,EAA6B,8BAAkB,mBACrD,OAAOrJ,EAAKiD,MAAQ,yBAAc,gCAAoB,UAAW,CAC/DtD,IAAK,EACLC,MAAO,4BAAgB,CACrB,QAAU,EACV,UAAgC,WAArBI,EAAKsJ,eAEjB,CAAC,gCAAoB,MAAO,GAAY,CAAC,gCAAoB,MAAO,CACrE1J,MAAO,OACP0B,QAASrB,EAAO,KAAOA,EAAO,GAAK+B,GAAUhC,EAAKuJ,WAAW,UAC5D,CAACvJ,EAAKwJ,uBAAuBlD,OAAS,GAAKtG,EAAKwG,QAAU,yBAAc,gCAAoB,OAAQ,GAAY,6BAAiBxG,EAAKyJ,KAAM,IAAM,gCAAoB,IAAI,GAA4B,SAArBzJ,EAAKsJ,aAA0B,yBAAc,gCAAoB,MAAO,GAAYzB,KAAe,gCAAoB,IAAI,GAA4B,SAArB7H,EAAKsJ,aAA0B,yBAAc,gCAAoB,MAAOxB,GAAYG,KAAgB,gCAAoB,IAAI,GAAO,gCAAoB,IAAK,CAChdrI,MAAO,4BAAgB,CACrB,QAAgC,SAArBI,EAAKsJ,eAEjB,OAAQ,KAAMtJ,EAAK0J,iBAAmB,yBAAc,gCAAoB,MAAO,CAChF/J,IAAK,EACLC,MAAO,4BAAgB,CACrB,MAAQ,EACR,cAAoC,WAArBI,EAAKsJ,cAEtBhI,QAASrB,EAAO,KAAOA,EAAO,GAAK+B,GAAUhC,EAAKuJ,WAAW,YAC5D,CAAC,yBAAaF,EAA4B,CAC3ChG,OAAQ,KACRD,MAAO,OACL,gCAAoB,IAAK,CAC3BxD,MAAO,4BAAgB,CACrB,QAAgC,WAArBI,EAAKsJ,eAEjB,SAAU,IAAK,IAAM,gCAAoB,IAAI,GAAOtJ,EAAK2J,iBAAmB,yBAAc,gCAAoB,MAAO,CACtHhK,IAAK,EACLC,MAAO,OACP0B,QAASrB,EAAO,KAAOA,EAAO,GAAK+B,GAAUhC,EAAKuJ,WAAW,YAC5D,CAAsB,WAArBvJ,EAAKsJ,aAA4B,yBAAc,gCAAoB,MAAOpB,GAAaE,KAAgB,gCAAoB,IAAI,GAA4B,WAArBpI,EAAKsJ,aAA4B,yBAAc,gCAAoB,MAAOjB,GAAaE,KAAgB,gCAAoB,IAAI,GAAO,gCAAoB,IAAK,CACvS3I,MAAO,4BAAgB,CACrB,QAAgC,WAArBI,EAAKsJ,eAEjB,QAAS,MAAQ,gCAAoB,IAAI,GAAO,gCAAoB,MAAO,CAC5E1J,MAAO,OACP0B,QAASrB,EAAO,KAAOA,EAAO,GAAK+B,GAAUhC,EAAKuJ,WAAW,QAC5D,CAACvJ,EAAK4J,WAAa5J,EAAK6J,cAAcC,MAAM,SAAW,yBAAc,gCAAoB,OAAQtB,KAAgB,gCAAoB,IAAI,GAA4B,OAArBxI,EAAKsJ,aAAwB,yBAAc,gCAAoB,MAAOb,GAAaG,KAAgB,gCAAoB,IAAI,GAA4B,OAArB5I,EAAKsJ,aAAwB,yBAAc,gCAAoB,MAAOT,GAAaO,KAAgB,gCAAoB,IAAI,GAAO,gCAAoB,IAAK,CAC9axJ,MAAO,4BAAgB,CACrB,QAAgC,OAArBI,EAAKsJ,eAEjB,OAAQ,QAAS,IAAM,gCAAoB,IAAI,G,iBCxKrC,gCAAgB,CAC7BhH,WAAY,CACVyH,gBAAA,QAEF,QACE,MAAML,EAAkB,kBAAI,GACtBC,EAAkB,kBAAI,GACtB1E,EAAc,iBACd+E,EAAwB,sBAAS,KACrC,IAAI9E,EACJ,OAAkE,QAA1DA,EAAwBD,EAAYG,wBAAwD,IAA1BF,OAAmC,EAASA,EAAsB+E,KAAKC,SAAS,gBAEtJC,EAAa,sBAAS,KAC1B,IAAIhF,EACJ,OAAmE,QAA3DA,EAAyBF,EAAYG,wBAAyD,IAA3BD,OAAoC,EAASA,EAAuBiF,gBAE3IC,EAAyB,sBAAS,KACtC,IAAIC,EACJ,OAAkD,QAA1CA,EAAoBH,EAAWI,aAAyC,IAAtBD,GAAuF,QAAtDA,EAAoBA,EAAkBE,kBAA8C,IAAtBF,OAA+B,EAASA,EAAkBG,cAE/MC,EAAqB,sBAAS,KAClC,IAAIlF,EAAwBmF,EAC5B,OAAOhK,QAAQ,OAAgBmC,SAAoZ,QAA1Y0C,EAAqF,QAA3DmF,EAAyB1F,EAAYG,wBAAyD,IAA3BuF,GAAyG,QAAnEA,EAAyBA,EAAuBtF,qBAAsD,IAA3BsF,GAAkG,QAA5DA,EAAyBA,EAAuBC,cAA+C,IAA3BD,OAAoC,EAASA,EAAuBE,gBAAiD,IAA3BrF,EAAoCA,EAAyB,KAAOwE,EAAsBO,SA6BvhB,OA3BA,2BAAc,KAEiC,SAAzCO,aAAaC,QAAQ,kBAEvBrB,EAAgBa,OAAQ,GAEmB,SAAzCO,aAAaC,QAAQ,kBAEvBpB,EAAgBY,OAAQ,KAG5B,mBAAMF,EAAwB3C,SAChBsD,IAARtD,IACJgC,EAAgBa,OAAS7C,EACzBuD,QAAQC,IAAI,2BAA4BxD,EAAKgC,EAAgBa,OAE7DO,aAAaK,QAAQ,eAAgBtK,OAAO6I,EAAgBa,UAC3D,CACDa,WAAW,IAEb,mBAAMV,EAAoBhD,IACxBiC,EAAgBY,MAAQ7C,EAExBoD,aAAaK,QAAQ,eAAgBtK,OAAO8I,EAAgBY,SAC3D,CACDa,WAAW,IAEN,CACL1B,kBACAC,kBACA0B,mBAAoBhB,EACpBK,uBAGJ,OACE,MAAO,CACLpB,YAAa,GACbM,UAAWlH,KAAKyB,WAAa,gBAAc,iBAG/C1B,SAAU,IACL,eAAS,CAAC,WAAY,WAAY,SAAU,kBAAmB,2BAC/D,eAAW,CAAC,2BACf,OACE,MAAO,CAAC,OAAQ,KAAM,SAAU,UAAUK,SAASJ,KAAKuD,OAAOzF,QAAUkC,KAAKgD,UAEhF,MACE,MAAM4F,EAAQ5I,KAAK8G,uBAAuBlD,OAAS,EAAI5D,KAAK8G,uBAAuBlD,OAAS,GAC5F,OAAOgF,EAAQ,GAAK,MAAQA,GAE9B,gBACE,IAAIC,EAAuBC,EAC3B,OAAwL,QAAhLD,EAAgF,QAAvDC,EAAyB9I,KAAK+I,2BAA4D,IAA3BD,OAAoC,EAASA,EAAuBE,sBAAsD,IAA1BH,EAAmCA,EAAwB,KAG/P9D,MAAO,CACL,cAAe,CACb,QAAQC,GACFhF,KAAKO,OACPP,KAAK4G,YAAc5B,IAGvB0D,WAAW,IAGfrI,QAAS,CACP,WAAW4I,GACLjJ,KAAKkH,YACP,gBAAc,eAAe,GAC7BlH,KAAKkH,WAAY,GAEnBlH,KAAKwE,QAAQ0E,KAAK,CAChBpL,KAAMmL,EACNE,MAAOnJ,KAAKuD,OAAO4F,Y,UCjG3B,MAAM,GAA2B,IAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAE1E,U,qCCPf,MACM,GAAa,CAAC,OACd,GAAa,CACjBlM,IAAK,EACLC,MAAO,qBACP+D,IAAK,KACLC,UAAW,SAEP,GAAa,CACjBhE,MAAO,mBAEH,GAAa,CACjBA,MAAO,mBAEH,GAAa,CACjBA,MAAO,oBAEF,SAAS,GAAOI,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GAC1D,OAAO,yBAAc,gCAAoB,MAAO,CAC9CT,MAAO,YACP0B,QAASrB,EAAO,KAAOA,EAAO,GAE9B,IAAIsB,IAASvB,EAAK8L,cAAgB9L,EAAK8L,gBAAgBvK,KACtD,CAAC,gCAAoB,MAAO,CAC7B3B,MAAO,iBACP+D,IAAK3D,EAAK+L,SACV1H,IAAK,KACLT,UAAW,SACV,KAAM,EAAG,IAAgC,kBAAnB5D,EAAKgM,KAAKtL,MAA4B,yBAAc,gCAAoB,MAAO,KAAe,gCAAoB,IAAI,GAAO,gCAAoB,UAAW,GAAY,CAAC,gCAAoB,IAAK,GAAY,6BAAiBV,EAAKgM,KAAKC,WAAajM,EAAKgM,KAAKxL,MAAO,GAAI,gCAAoB,UAAW,KAAM,CAAC,gCAAoB,IAAK,GAAY,CAAC,4BAAgB,gCAAoB,OAAQ,KAAM,6BAAiBR,EAAKkM,UAAU,IAAIC,KAAKnM,EAAKgM,KAAKI,gBAAiB,KAAM,CAAC,CAAC,WAA0B,QAAlBpM,EAAKuG,YAAuB,4BAAgB,gCAAoB,OAAQ,CAC5jB8F,MAAO,CACL,cAAe,QAEhB,6BAAiBrM,EAAKsM,MAAO,KAAM,CAAC,CAAC,WAA2B,iBAAnBtM,EAAKgM,KAAKO,gB,mHCxB7C,gCAAgB,CAC7B/L,KAAM,WACNC,MAAO,CAAC,KAAM,QACd,QACE,MAAO,CACL+B,MAAO,mBAGX,OACE,MAAO,CACLgK,aAAa,EACbC,SAAA,KACAC,cAAA,OAGJjK,SAAU,IACL,eAAS,CAAC,MAAO,WAAY,WAAY,QAAS,gBAAiB,YAAa,aAAc,gBAAiB,YAAa,qBAC5H,eAAW,CAAC,UAAW,QAAS,UAAW,cAAe,UAAW,UAAW,eACnF,OACE,OAAOC,KAAKiK,IAAIjK,KAAKkK,KAEvB,QACE,OAAOlK,KAAKsJ,KAAKvG,OAEnB,OACE,MAAMoH,GAAQnK,KAAKsJ,KAAKpB,OAAOiC,MAAQ,IAAI/C,MAAM,0BACjD,OAAO+C,GAAuB,qBAAfnK,KAAK+C,MAA+BoH,EAAK,GAAK,IAE/D,OACE,MAAsB,SAAlBnK,KAAK6D,UAA0C,iBAAnB7D,KAAKsJ,KAAKO,KAAgC,GAC3C,MAAxB7J,KAAKsJ,KAAKc,UAAoB,gBAAWpK,KAAKsJ,KAAKc,WAAaC,OAAOrK,KAAKsJ,KAAKM,OAAS,QAEnG,WACE,OAAO5J,KAAKsJ,KAAKgB,WAAa,gBAAoBtK,KAAKsJ,KAAKiB,aAGhExF,MAAO,CACL,MAAMC,EAAKwF,GACLxF,IAAQwF,GAAgB,uBAARxF,GAAgChF,KAAKyK,UAAY,GAAKzK,KAAKsJ,KAAKtL,OAAS,SAAsBgC,KAAK0K,SACtHlK,WAAW,IAAMR,KAAKF,MAAMyE,SAAS,cAAevE,KAAKsJ,MAAO,OAItEjJ,QAAS,CACPmJ,UAAA,QACAmB,WAAA,QACAvB,aAAc,MAASwB,eAAgBC,GACrC,GAAuB,eAAnB7K,KAAKsJ,KAAKO,KAAuB,CACnC,IAAIiB,EAAYC,EAAiBC,EAAaC,EAAkBC,EAAaC,EAAaC,EAAaC,EAAaC,EAAuBC,EAC3I,MAAMC,GAAwC,QAA5BV,EAAa9K,KAAKsJ,YAAiC,IAAfwB,GAAiE,QAAvCA,EAAaA,EAAWP,iBAAsC,IAAfO,OAAwB,EAASA,EAAW1K,SAAS,WAAa,gBAAkI,QAAhH2K,EAAgD,QAA7BC,EAAchL,KAAKsJ,YAAkC,IAAhB0B,OAAyB,EAASA,EAAYlN,YAAsC,IAApBiN,EAA6BA,EAAkB,IAgB1X,OAfA,OAAAU,GAAA,MAAK,CACHpN,OAAQ,+BACRqN,KAAM,CACJC,IAAuB,QAAlB3L,KAAK6D,SAAqB,cAAgB,WAC/C7F,KAAM,gBAA0B,gBAA2I,QAAjHiN,EAAiD,QAA7BC,EAAclL,KAAKsJ,YAAkC,IAAhB4B,OAAyB,EAASA,EAAYpN,YAAuC,IAArBmN,EAA8BA,EAAmB,KACpOW,KAAoC,QAA7BT,EAAcnL,KAAKsJ,YAAkC,IAAhB6B,OAAyB,EAASA,EAAYU,KAC1FC,UAAyC,QAA7BV,EAAcpL,KAAKsJ,YAAkC,IAAhB8B,GAAiE,QAAtCA,EAAcA,EAAYlD,cAAoC,IAAhBkD,OAAyB,EAASA,EAAYU,UACxKC,IAAmC,QAA7BV,EAAcrL,KAAKsJ,YAAkC,IAAhB+B,GAAiE,QAAtCA,EAAcA,EAAYnD,cAAoC,IAAhBmD,OAAyB,EAASA,EAAYU,IAClKC,UAAsE,QAA1DV,EAAwBtL,KAAKiK,IAAIjK,KAAKiM,sBAAsD,IAA1BX,OAAmC,EAASA,EAAsBxN,KAChJoO,UAAuE,QAA3DX,EAAyBvL,KAAKiK,IAAIjK,KAAKiM,sBAAuD,IAA3BV,OAAoC,EAASA,EAAuBnB,UACnJb,UAAWvJ,KAAKsJ,KAAKxL,KACrBsM,UAAWpK,KAAKsJ,KAAKc,UACrB+B,eAAgBnM,KAAKsJ,KAAK6C,kBAGvBnM,KAAKyD,OAAOc,SAAS,cAAe,CACzC2F,GAAIlK,KAAKsJ,KAAKY,GACdkC,MAAOZ,EAAU,EAAI,EACrBa,MAAO,QACPC,YAAa,YACbC,MAAO,kBACNC,KAAK,KACNxM,KAAKF,MAAMQ,OAAO,SAAU,CAC1BmM,aAAa,EACbR,cAAe,GACfS,UAAW,OAEZC,MAAM,KACY,wBAAf3M,KAAK+C,MACP,gBAAM,kBACG,CAAC,qBAAsB,qBAAqB3C,SAASJ,KAAK+C,QACnE,gBAAM,0BAIV/C,KAAKF,MAAMQ,OAAO,SAAU,CAC1BsM,MAAO,KAET5M,KAAK6M,KAAK7M,KAAKsJ,QAEhB,IAAK,CACNwD,SAAS,EACTC,UAAU,O,UC/FhB,MAAM,GAA2B,IAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAE1E,UCRf,MACM,GAAa,CACjB9P,IAAK,EACLC,MAAO,UAEH,GAAa,CACjBA,MAAO,gBAEH,GAAa,CACjBD,IAAK,EACLC,MAAO,iBAEF,SAAS,GAAOI,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GAC1D,MAAMqP,EAAyB,GACzBC,EAAkB,QACxB,OAAO,yBAAc,gCAAoB,cAAW,KAAM,CAAC,yBAAa,gBAAa,CACnFnP,KAAM,QACL,CACDoP,QAAS,qBAAS,IAAM,CAAC5P,EAAKmP,aAAe,yBAAc,gCAAoB,MAAO,CACpFxP,IAAK,EACLC,MAAO,QACP0B,QAASrB,EAAO,KAAOA,EAAO,GAE9B,IAAIsB,IAASvB,EAAKiC,OAASjC,EAAKiC,SAASV,OACrC,gCAAoB,IAAI,KAC9BsO,EAAG,IACD,yBAAa,gBAAa,CAC5BrP,KAAM,OACL,CACDoP,QAAS,qBAAS,IAAM,CAAC5P,EAAKmP,aAAe,yBAAc,gCAAoB,MAAO,GAAY,CAACnP,EAAKoP,UAAU9I,OAAS,GAAK,yBAAc,gCAAoB,IAAK,CACrK3G,IAAK,EACLoC,KAAM,eACNnC,MAAO,QACPwB,MAAO,KACPE,QAASrB,EAAO,KAAOA,EAAO,GAE9B,IAAIsB,IAASvB,EAAK8P,QAAU9P,EAAK8P,UAAUvO,OACvC,gCAAoB,IAAI,GAAOvB,EAAKoP,UAAU9I,OAAS,GAAK,yBAAc,gCAAoB,MAAO,CACzG3G,IAAK,EACLC,MAAO,aACP0B,QAASrB,EAAO,KAAOA,EAAO,GAE9B,IAAIsB,IAASvB,EAAK+P,UAAY/P,EAAK+P,YAAYxO,KAC9C,WAAa,gCAAoB,IAAI,GAAOvB,EAAKoP,UAAU9I,QAAU,GAAK,yBAAc,gCAAoB,IAAK,CAClH3G,IAAK,EACLoC,KAAM,eACNnC,MAAO,gBACPwB,MAAO,KACPE,QAASrB,EAAO,KAAOA,EAAO,GAE9B,IAAIsB,IAASvB,EAAKiC,OAASjC,EAAKiC,SAASV,OACrC,gCAAoB,IAAI,GAAO,gCAAoB,MAAO,GAAY,CAAC,gCAAoB,KAAM,CACrG3B,MAAO,4BAAgB,CACrB,KAAQI,EAAKoP,UAAU9I,OAAS,EAChC,KAAQtG,EAAKoP,UAAU9I,OAAS,KAEjC,6BAAiBtG,EAAKoP,UAAUpP,EAAKoP,UAAU9I,OAAS,GAAG9F,MAAO,GAAKR,EAAKgQ,UAMhE,gCAAoB,IAAI,IANqD,yBAAc,gCAAoB,MAAO,GAAY,EAAE,wBAAW,GAAO,gCAAoB,cAAW,KAAM,wBAAYhQ,EAAKsP,MAAO1C,IACzN,yBAAc,yBAAa8C,EAAwB,CACxD9C,GAAIA,EACJjN,IAAKiN,EACL2C,KAAMvP,EAAKiQ,cACV,KAAM,EAAG,CAAC,KAAM,WACjB,SAA0CjQ,EAAKgQ,WAAa,yBAAc,yBAAaL,EAAiB,CAC1GhQ,IAAK,EACLmG,IAAK,OACD,gCAAoB,IAAI,QAAa,gCAAoB,IAAI,KACnE+J,EAAG,KACA,I,iBC9DQ,gCAAgB,CAC7BvN,WAAY,CACV4N,eACAC,QAAA,MAEF,QACE,MAAO,CACL3N,MAAO,mBAGX,OACE,MAAO,CACLwN,WAAW,IAGfvN,SAAU,IACL,eAAS,CAAC,cAAe,gBAAiB,QAAS,MAAO,iBAC1D,eAAW,CAAC,YACf,WACE,MAAM2N,EAAO1N,KAAK4M,MAAMe,IAAIzD,GAAMlK,KAAKiK,IAAIC,IAC3C,OAAOwD,IAGX3I,MAAO,CACL,YAAYC,GAEV,MAAM4I,EAAiC,KACrC3J,OAAO4J,oBAAoB,WAAYD,GACvC,kBACA5N,KAAKT,SAEHyF,IACF8I,QAAQC,UAAU,GAAI,GAAIC,SAASC,UACnC,kBACAhK,OAAOiK,iBAAiB,WAAYN,MAI1C,YACAvN,QAAS,CACP,QACEL,KAAKF,MAAMQ,OAAO,SAAU,CAC1BmM,aAAa,EACbC,UAAW,GACXT,cAAe,MAGnB,mBAAmB3C,GACjBtJ,KAAKsN,WAAY,EACjB,UACQtN,KAAKF,MAAMyE,SAAS,WAAY,CACpC4J,UAAW7E,EAAKY,GAChBpM,KAAMwL,EAAKxL,OAEbkC,KAAKsN,WAAY,EACjB,MAAOc,GACP7F,QAAQC,IAAI4F,GACZpO,KAAKsN,WAAY,IAGrB,eACE,MAAMa,EAAYnO,KAAK0M,UAAU1M,KAAK0M,UAAU9I,OAAS,GAAGsG,SACtDlK,KAAKF,MAAMyE,SAAS,WAAY,CACpC4J,YACAE,QAAQ,KAGZ,iBACE,MAAMF,EAAYnO,KAAK0M,UAAU,GAAGxC,SAC9BlK,KAAKF,MAAMyE,SAAS,WAAY,CACpC4J,YACAG,YAAY,Q,UCtEpB,MAAM,GAA2B,IAAgB,GAAQ,CAAC,CAAC,SAAS,IAAQ,CAAC,YAAY,qBAE1E,U,wGCNf,MAAM,GAAa,CACjBpR,MAAO,SA4BmB,oCAAiB,CAC3CqR,OAAQ,QACR,MAAMC,GACJ,MAAMnM,EAAW,iBACX5D,EAAS,sBAAS,IACf,QAAMgQ,MAAMhQ,QAEfiQ,EAAQ,sBAAS,IACd,QAAMD,MAAMC,OAEfrQ,EAAS,sBAAS,IACf,QAAMoQ,MAAMpQ,QAEfsQ,EAAY,sBAAS,KAClB,IACF,QAAMF,MAAME,UACfC,MAAOvM,EAASuM,SAGdC,EAAgB,sBAAS,IACtB,QAAMJ,MAAMI,eAEfpN,EAAW,sBAAS,IACjB,QAAMgN,MAAMhN,UAEflB,EAAO,sBAAS,IACb9B,EAAOoJ,MAAMtH,MAEhBuO,EAAW,sBAAS,IACjB,CAAC,OAAQ,KAAM,SAAU,SAAS1O,SAAS2O,GAAA,KAAOC,aAAanH,MAAM/J,OAExEyE,EAAc,iBACd0M,EAAS,sBAAS,KACtB,IAAIzM,EAAuBC,EAC3B,OAA4S,QAApSD,EAAoF,QAA3DC,EAAyBF,EAAYG,wBAAyD,IAA3BD,GAAgH,QAA1EA,EAAyBA,EAAuBE,cAAcuF,cAA+C,IAA3BzF,OAAoC,EAASA,EAAuBwM,cAA8C,IAA1BzM,EAAmCA,EAAwB,KAE3W0M,EAAyB,KAC7B,MAAMC,EAAmB,mBAAM,IAAM5M,EAAY6M,WAAYC,IAE3D,GAAI,QAAMZ,MAAMa,UAAW,CACzB,MAAMC,EAAIF,EAAQG,OAAOC,GAAuB,uBAAfA,EAAK1M,OAAgCa,OAEpE,IAAI8L,EADN,GAAIH,GAAK,OAGP,IAAMF,GAGuE,wBAArE,QAHWK,EAAgBL,EAAQM,KAAKC,IAC9C,IAAIC,EACJ,OAAmC,QAA1BA,EAAYD,EAAE1H,cAAkC,IAAd2H,OAAuB,EAASA,EAAUZ,UAAY,QAAMR,MAAMa,mBAC7E,IAAlBI,OAA2B,EAASA,EAAc3M,OAYhE,OAXA,OAAA0I,GAAA,MAAK,CACHpN,OAAQ,6BACRqN,KAAM,CACJoE,UAAW,oBAGf,QAAMxP,OAAO,SAAU,CACrBZ,YAAY,IAEdyP,SACA,eAA8B,QAOlCY,EAAeC,IACnB,IAAIC,EAAaC,MAAMC,KAAKH,GAiB5B,OAfI3N,EAAS+N,SACXH,EAAaA,EAAWT,OAAOa,IAC7B,IAAIC,EACJ,MAAsL,cAA7J,QAAhBA,EAAMD,EAAE,UAAwB,IAARC,GAAgD,QAA7BA,EAAMA,EAAI3N,qBAAmC,IAAR2N,GAAyC,QAAtBA,EAAMA,EAAIpI,cAA4B,IAARoI,OAAiB,EAASA,EAAInI,aAYrK,IAAIoI,IAAIN,IAEXO,EAA8B,KAElC,MAAMC,EAAU,mBAAMlO,EAAYyN,UAAWU,IAC3C,MAAMC,EAAoBZ,EAAaW,GACvC,IAAK,MAAML,KAAKM,EACd,GAAiC,uBAA7BN,EAAE,GAAG1N,cAAcI,MAAgC,CACrDR,EAAYqO,oBAAoBP,EAAE,IAClCI,IACA,gBAAS,CACPI,QAAS,uBAEX,QAGH,CACDnI,WAAW,KAYToI,EAA2B,KAC/B,IAAIC,EAAuBC,EAC3B,MAAMC,EAAqB,gBAAc,mBACnCC,EAAqC,OAAvBD,QAAsD,IAAvBA,GAAyF,QAAvDF,EAAwBE,EAAmB/I,cAA8C,IAA1B6I,OAAmC,EAASA,EAAsB9B,OAChNe,EAAYzN,EAAYyN,UACxBW,EAAoBZ,EAAaC,GAEvC,GAAI3N,EAAS8O,MAEX,OADA5I,QAAQC,IAAI,uBAAwBnG,EAAS8O,OACtC9O,EAAS8O,MAGlB,GAAID,GAAeP,EAAkBS,IAAIF,IAAqL,wBAAnG,QAAhEF,EAAwBL,EAAkBU,IAAIH,UAAoD,IAA1BF,OAAmC,EAASA,EAAsBrO,cAAcI,OAEjN,OADAwF,QAAQC,IAAI,mBAAoB0I,GACzBA,EAGT,IAAK,MAAMb,KAAKM,EACd,GAAiC,uBAA7BN,EAAE,GAAG1N,cAAcI,MAErB,OADAwF,QAAQC,IAAI,iBAAkB6H,EAAE,IACzBA,EAAE,GAKb,OAAIa,GAAeP,EAAkBS,IAAIF,IAGvC3I,QAAQC,IAAI,mBAAoB0I,GACzBA,IAGTV,IACAjI,QAAQC,IAAI,eAAgBmI,EAAkBW,OAAOC,OAAO1J,OACrD8I,EAAkBW,OAAOC,OAAO1J,QAGzC,mBAAM,KACJ,IAAI/E,EACJ,OAAmE,QAA3DA,EAAyBP,EAAYG,wBAAyD,IAA3BI,OAAoC,EAASA,EAAuBH,eAC9IqC,IACD,IAAIwM,EACJ,QAAMlR,OAAO,SAAU,CACrBmR,UAAU,EACVC,YAAY,EACZC,SAAS,EACTR,MAAe,OAARnM,QAAwB,IAARA,GAAiD,QAA9BwM,EAAcxM,EAAIkD,cAAoC,IAAhBsJ,OAAyB,EAASA,EAAYvC,OAC9H2C,gBAAiB5M,MAGrB,MAAM,6BACJ6M,GACE,gBAAe,CACjBC,cAAe,KACb,IAAI7J,EAAwB8J,EAC5B,OAA4L,QAApL9J,EAAqF,QAA3D8J,EAAyBxP,EAAYG,wBAAyD,IAA3BqP,OAAoC,EAASA,EAAuBC,qBAAsD,IAA3B/J,EAAoCA,EAAyB,IAEnQgK,6BAA8B,SAGhC,mBAAM,KACJ,IAAIC,EACJ,OAAmE,QAA3DA,EAAyB3P,EAAYG,wBAAyD,IAA3BwP,OAAoC,EAASA,EAAuBF,eAC9IhN,IACD,QAAM1E,OAAO,SAAU,CACrByI,oBAAqB/D,IAEvB6M,MAKF,mBAAMtP,EAAYyN,UAAWhL,IACvBkL,MAAMC,KAAKnL,EAAImN,UAAUC,MAAM/B,GAA+B,uBAA1BA,EAAE1N,cAAcI,QACtDyN,MAGJ,MAAM6B,EAAY,kBACZC,EAAY,sBAAS,KACzB,IAAIC,EAAuBC,EAE3B,GAAI,CAAC,SAAU,gBAAiB,iBAAiBpS,SAAsE,QAA5DmS,EAAwBxD,GAAA,KAAOC,aAAanH,MAAM/J,YAA4C,IAA1ByU,EAAmCA,EAAwB,IACxL,MAAO,UAGT,IAAK,CAAC,OAAQ,SAAU,KAAM,SAASnS,SAASjC,OAAO4Q,GAAA,KAAOC,aAAanH,MAAM/J,OAC/E,MAAO,UAET,MAAM2U,EAAa,gBAAc,SACjC,OAAKJ,EAAUK,SAA0B,OAAfD,EAGtBJ,EAAUM,UAAY,QAAWC,QAAW,QAAMlP,QAAQpC,OAAuE,QAA3DkR,EAAyBjQ,EAAYG,wBAAyD,IAA3B8P,GAA8G,QAAxEA,EAAyBA,EAAuBR,cAAc1O,YAA6C,IAA3BkP,GAA+F,QAAzDA,EAAyBA,EAAuBK,WAA4C,IAA3BL,GAAqCA,EAAuBM,OAG/Z,SAFE,YAHe,SAAfL,EAAwB,SAAW,cAOxCM,EAAsBT,IAC1B,MAAMU,EAAW,CACf,UAAW,UACX,YAAa,UACb,UAAW,UACX,SAAU,WAEZ,gBAAW,aAAa,EAAO,OAAQA,EAASV,IAC5C,QACF,eAAY,CACVnK,SAAU,UACVrK,KAAM,iBACNoK,OAAQ,CACN+K,mBAA4B,YAARjO,MAErB,CACDkO,YAAY,KAIlB,mBAAMZ,EAAWtN,IACfmO,SAASC,KAAKC,UAAUC,OAAO,WAC/BH,SAASC,KAAKC,UAAUC,OAAO,aAC/BH,SAASC,KAAKC,UAAUC,OAAO,UAC/BH,SAASC,KAAKC,UAAUC,OAAO,WAC/BH,SAASC,KAAKC,UAAUE,IAAIvO,GAC5B+N,EAAoB/N,IACnB,CACD0D,WAAW,IAEb,MAAM8K,EAAY5I,UAChB,MAAM6I,EAAalR,EAAY6M,WAC/B,IAAqB,OAAfqE,QAAsC,IAAfA,IAAyBA,EAAW7P,QAAqF,IAA1E6P,EAAWjE,OAAOC,GAAuB,uBAAfA,EAAK1M,OAAgCa,SAGrI,QAAMF,QAAQ5B,QAEhB,IAEE,MAAM4R,EAAY,kBAGlB,SAFMA,EAAUC,UAEZtJ,OAAOqJ,EAAUE,eAAehQ,QAAU,EAAG,CAC/C,MAAMiQ,EAAkBH,EAAUE,eAAe,GACjDF,EAAUI,WAAWD,EAAgB3J,KAEvC,MAAOW,GACPtC,QAAQ6F,MAAM,0BAA2BvD,KAK3CkJ,EAAcnJ,UAClB,IAAIoJ,QACEzR,EAAY0R,eAAe,IACjC,MAAMC,EAAepD,IACjBoD,GACF3R,EAAYqO,oBAAoBsD,GAElC,gBAAc,kBAA+E,QAA3DF,EAAyBzR,EAAYG,wBAAyD,IAA3BsR,OAAoC,EAASA,EAAuBrR,eACzKuM,IACA,QAAM5O,OAAO,SAAU,CACrB6T,qBAAqB,IAEvB,sBAAS,KACP,QAAM5P,SAAS,cAEjBN,OAAO1B,YAAcA,GACjB,mBAAmBF,EAAS+N,QAAU/N,EAAS+R,UACjDZ,KAMEa,EAAoBzJ,UACxB,GAAIzB,EAAMmL,OACR,eAAoB,CAClBC,IAAK,CACHC,cAAe,CACbtK,GAAIG,OAAOlB,EAAMmL,UAGrBnE,KAAM,sBAIV,GAAkB,mBAAdhH,EAAMsL,KAMV,GAAkB,gBAAdtL,EAAMsL,IAAuB,CAC/B,IAAIC,EACJ,MAAM5S,QAAgB,kBACtB,IAAKA,EAAS,OAcd,OAZAiN,GAAA,KAAO7F,KAAK,CACVpL,KAAoE,QAA7D4W,EAAyB3F,GAAA,KAAOC,aAAanH,MAAM/J,YAA6C,IAA3B4W,EAAoCA,EAAyB,OACzIvL,MAAO,IACF4F,GAAA,KAAOC,aAAanH,MAAMsB,MAC7BsL,IAAK,WAGTjU,WAAW,KACT,eAAe,CACboE,WAAY,gBAEb,WArBH,eAAwB,CACtBuL,KAAM,kBAwBNwE,EAAwB/J,UAC5B,IACE,MAAM,QACJgK,GACE,iBACJ,IAAIC,EAAa,GACjB,GAAI,OAA4BzU,SAASwU,GAAU,CAEjD,MAAM,KACJE,GACE,mBACGC,EAAeC,SAAgBF,IACtCD,EAAaG,EACbzM,QAAQC,IAAI,4BAA6BuM,EAAeF,GAE1D,MAAM1L,EAAQ,IACT0L,KACA9F,GAAA,KAAOC,aAAanH,MAAMsB,OAE/BkL,EAAkBlL,GAClB,IAAI8L,GAAY,EAEhB,MAAMC,GAAoB,OAAV/L,QAA4B,IAAVA,OAAmB,EAASA,EAAMgM,aAAyB,OAAVhM,QAA4B,IAAVA,OAAmB,EAASA,EAAMiM,WACjItT,QAAgB,QAAMyC,SAAS,QAAS,CAC5C8Q,aAAcH,IAGhB,GADA3M,QAAQC,IAAI,SAAU0M,GACjBpT,EAcE,CASL,GAPIqH,EAAMyF,QACRzF,EAAMmM,aAAenM,EAAMmM,KAC3BnM,EAAMyF,cAAgBzF,EAAMyF,MAC5BzF,EAAMoM,mBAAqBpM,EAAMoM,WACjCpM,EAAMsF,cAAgBtF,EAAMsF,MAC5BwG,GAAY,GAEVC,EAAQ,CACV/L,EAAMgM,UAAYhM,EAAMgM,UAAUK,QAAQ,OAAQ,IAClD,MAAMC,EAAeC,OAAOC,OAAO,GAAIhH,EAAU9G,MAAO,CACtDsN,UAAWhM,EAAMgM,UACjBC,UAAWjM,EAAMiM,YAEnB,QAAM9U,OAAO,SAAU,CACrBqO,UAAW8G,WAENtM,EAAMgM,iBACNhM,EAAMiM,UACbH,GAAY,EACZW,EAAWH,OACN,CAGLjV,WAAWoK,UAET,OAAAa,GAAA,MAAK,CACHpN,OAAQ,+BAET,KAEH,MAAMgE,EAAW,iBACjB,GAAIA,EAASwT,QAAUxT,EAASwT,SAAW,QAAOC,OAAQ,CACxD,IAAIC,EACJ,QAAMzV,OAAO,SAAU,CACrBtB,kBAAkB,IAEpB,MAAMgX,EAAQ,QAAMvH,MACdnL,EAAO0S,EAAMC,MAAMhM,IAAId,EAAM+M,UAAY,GACzCpY,GAAuC,QAA9BiY,EAAclB,SAAwC,IAAhBkB,OAAyB,EAASA,EAAYjY,OAASqL,EAAMgN,UAAY7S,EAAK8S,UAAY,GAG/I,QAAM9V,OAAO,SAAU,CACrBC,MAAM,EACN7B,MAAO+C,EAASoG,MAAQ,SAAW,OACnClJ,IAAK,uBAAuBb,qCAC5B6B,MAAO,OACPH,UAAW,GACXnB,OAAQ,UACR4B,OAAQ,iBAGV8T,IAKJkB,GAAazU,WAAW,IAAMyD,OAAO6J,QAAQuI,aAAa,KAAM,GAAI,gBAAgBlN,IAAS,SAxEjF,CACZ,GAAyE,OAA1D,OAAVA,QAA4B,IAAVA,OAAmB,EAASA,EAAMmN,YAEvD,kBADMC,GAAA,KAAIC,SAGP,CAAC,SAAU,mBAAmBpW,SAAS2O,GAAA,KAAOC,aAAanH,MAAMrE,OACpEuL,GAAA,KAAOyG,QAAQ,CACbhS,KAAM,SACN2F,MAAO,IACFA,KACA0L,MAgEX,MAAOhK,GACPtC,QAAQ6F,MAAMvD,KAGZ+K,EAAahL,UACjB,MAAMc,QAAa,QAAMnH,SAAS,kBAAmB,IAChDoK,EACHF,MAAO,oBAGT,GADAlG,QAAQC,IAAIkD,GACRA,GAAQA,EAAK+K,QAAS,CACxB,IAAI3Y,EAAO,GAKT,IAAI4Y,EAAuBC,EAHvBC,EADN,GAAK,QAAoB,OAKvB9Y,EAAiN,QAAzM4Y,EAAyD,QAAhCC,EAAe,QAAMlI,aAAoC,IAAjBkI,GAAkE,QAAtCA,EAAeA,EAAarT,YAAmC,IAAjBqT,OAA0B,EAASA,EAAaP,gBAAgD,IAA1BM,EAAmCA,EAAwB,QAHpR5Y,EAAmE,QAA3D8Y,SAA+B,mBAAcR,gBAAgD,IAA1BQ,EAAmCA,EAAwB,GAKxI,QAAMtW,OAAO,SAAU,CACrBC,MAAM,EACN7B,MAAO,OACPC,IAAK,MAAMb,SAAY4N,EAAKmL,WAAW,OAAgBxF,IAAI3F,EAAK+K,UAAY,OAC5E9W,MAAO,KACPH,UAAW,KACXnB,OAAQ,SACR4B,OAAQ,aACRP,YAAY,QAG+D,kBAA/D,OAATgM,QAA0B,IAATA,OAAkB,EAASA,EAAKoL,mBACpD,QAAMxW,OAAO,SAAU,CACrBC,MAAM,EACN7B,MAAO,OACPC,IAAK,4CACLgB,MAAO,QACPtB,OAAQ,UAGV,QAAMiC,OAAO,SAAU,CACrBC,MAAM,EACN7B,MAAO,OACPC,IAAK,uBACLgB,MAAO,QACPtB,OAAQ,WAKV0Y,EAAanM,UACjB,IAAIoM,QACe,QAAMzS,SAAS,kBAAmB,IAChDoK,EAAU9G,MACb4G,MAAO,iBAET,QAAMnO,OAAO,SAAU,CACrBC,MAAM,IAEuJ,qBAA3F,QAA9DyW,EAAyBjI,GAAA,KAAOC,aAAanH,MAAMsB,aAA8C,IAA3B6N,OAAoC,EAASA,EAAuBC,WAC9IC,IAEAC,IAEF,QAAM7W,OAAO,SAAU,CACrBC,MAAM,EACNlC,OAAQ,GACR4B,OAAQ,GACRP,YAAY,KAGVwX,EAActM,gBACZ,QAAMrG,SAAS,sBACjBsK,EAAchH,MAChBsP,KAEA,QAAM7W,OAAO,SAAU,CACrBC,MAAM,EACNf,UAAW,KAEbgB,WAAW,KACT,QAAMF,OAAO,SAAU,CACrBC,MAAM,EACN7B,MAAO,iBACPC,IAAK,6CACLgB,MAAO,KACPtB,OAAQ,QACRqB,YAAY,IAEd,QAAMY,OAAO,SAAU,CACrBZ,YAAY,KAEb,OAGDyX,EAAevM,UACnBpK,WAAWoK,UAET,OAAAa,GAAA,MAAK,CACHpN,OAAQ,yBAEV,MAAM,QACJuW,GACE,iBACJ,GAAI,OAA4BxU,SAASwU,GAAU,CACjD,MAAM,iBACJwC,GACE,wBACEA,IAER,MAAM/U,EAAW,iBACZA,EAASgV,gCAA2D,eAAzB,QAAOC,gBACrDjV,EAASgV,gCAAiC,EAC1C,eAA8B,KAEhC,QAAM/W,OAAO,cAAe,QAAOgP,WACnCyE,KAEC,MAECwD,EAAmB3M,UACvB,QAAMtK,OAAO,SAAU,CACrBC,MAAM,EACN5B,IAAK,GACLO,KAAM,WAEF,QAAMqF,SAAS,kBAAmB,IACnCoK,EAAU9G,MACb4G,MAAO,kBAET,QAAMlK,SAAS,UAAU,IAE3B,mBAAMlG,EAAQ2G,IACA,WAARA,EAAkB+R,IAA8B,eAAR/R,EAAsBuS,IAAoC,YAARvS,GAA6B,UAARA,EAC7GvD,EAASoG,MACX,QAAMtD,SAAS,SAEf,QAAMA,SAAS,UAAU,GAEV,UAARS,GAAiB,QAAM1E,OAAO,SAAU,CACjDC,MAAM,MAGV,mBAAM0O,EAAQjK,IACRA,GAA0C,UAAnC+J,GAAA,KAAOC,aAAanH,MAAM/J,MACnC,QAAgB0Z,gBAAgB,2BAGpC,MAAMC,EAAyB,MACzB,OAKN,IAAIC,GAAkC,EAkBtC,OAjBA,2BAAc,KACPA,IAEHzT,OAAOiK,iBAAiB,WAAY,KAClC6E,EAAoBT,EAAUzK,SAEhC6P,GAAkC,KAGtC,uBAAU9M,UACR+J,UACMtC,EAAUsF,UAChB,gBAAc,QAAStF,EAAU/Q,OAC7BmW,KACFtE,SAASC,KAAKC,UAAUE,IAAI,6BAGzB,CAACjW,EAAMC,KACL,yBAAc,gCAAoB,cAAW,KAAM,CAAC,4BAAgB,yBAAa,EAAQ,KAAM,KAAM,KAAM,CAAC,CAAC,WAAQuR,EAASjH,SAAU,yBAAa,mBAAO,QAAa,CAC9K,aAAc,KACZ,yBAAa+P,IAAY,yBAAaC,IAAU,4BAAgB,yBAAaC,EAAQ,KAAM,KAAM,KAAM,CAAC,CAAC,WAAQvX,EAAKsH,SAAU,yBAAakQ,IAAY,4BAAgB,gCAAoB,MAAO,GAAY,CAAC,gCAAoB,OAAQ,KAAM,6BAAiBrJ,EAAM7G,MAAMgJ,SAAU,IAAK,KAAM,CAAC,CAAC,WAAQnC,EAAM7G,MAAMgJ,YAAa,Q,UChnBlV,MAAM,GAAc,GAEL,iB,uBCPfjU,EAAOC,QAAU,IAA0B,yB,uBCA3CD,EAAOC,QAAU,IAA0B,iC,oCCA3C,W,oCCAA,W,kDCCA,MACMG,EAAa,CACjBC,IAAK,EACLC,MAAO,SAEF,SAASG,EAAOC,EAAMC,EAAQC,EAAQC,EAAQC,EAAOC,GAC1D,OAAO,yBAAc,gCAAoB,cAAW,KAAM,CAACL,EAAK0a,WAAa,yBAAc,gCAAoB,MAAOhb,IAAe,gCAAoB,IAAI,GAAO,gCAAoB,MAAO,CAC7LE,MAAO,UACPyM,MAAO,4BAAgB,CACrBvG,IAAK9F,EAAK8F,IAAM,QAEjB,CAAC,gCAAoB,MAAO,CAC7BlG,MAAO,iBACPyM,MAAO,4BAAgB,CACrBhJ,OAAQrD,EAAKsM,KAAO,KACpBlJ,MAAOpD,EAAKsM,KAAO,QAEpB,KAAM,IAAK,IAAK,ICjBN,mCAAgB,CAC7B7L,MAAO,CACL6L,KAAM,CACJ5L,KAAMqM,OACN6C,QAAS,IAEX9J,IAAK,CACHpF,KAAMqM,OACN6C,QAAS,GAEX8K,UAAW,CACTha,KAAMC,QACNiP,SAAS,IAGb,QACE,MAAO,M,iCCVX,MAAM3O,EAA2B,IAAgB,EAAQ,CAAC,CAAC,SAASlB,GAAQ,CAAC,YAAY,qBAE1E,U,2DCTf,W,oCCAA,W,mECAAT,EAAOC,QAAU,0qC,oCCAjB,W,kCCAA,W,2DCAA,W,8CCAAD,EAAOC,QAAU,0nD,kCCAjB,W,uECAAD,EAAOC,QAAU,IAA0B,mB,yGCA3C,ICmBIob,EAAS,CAACrO,EAAO,KACnBsO,OAAOC,gBAAgB,IAAIC,WAAWxO,IAAOyO,OAAO,CAACnO,EAAIoO,KACvDA,GAAQ,GAENpO,GADEoO,EAAO,GACHA,EAAKC,SAAS,IACXD,EAAO,IACTA,EAAO,IAAIC,SAAS,IAAIC,cACtBF,EAAO,GACV,IAEA,IAEDpO,GACN,I,oDCpBC,MAAOuO,EAAbC,cACE,KAAAC,oBAAsB,CACpBC,sBAAuB,CAErB1O,GAAI,GAAG+N,IACPY,MAAO,CACL,CACE3O,GAAI,yCACJ4O,cAAe,CAAC,UAChBC,oBAAqB,CAAC,oBACtBC,aAAc,CACZ,0BAEFC,aAAc,CAAC,mBAAoB,mBAO3C,KAAAC,WAAaC,iBAAyB,IAEtC,KAAAC,MAAQ,CAAC,qCAAsC,2CAE/C,KAAAC,KAAOrZ,KAAKoZ,MAAM,GAElB,sBAAuBE,GACJC,iBAAjB,MACMvE,QAAewE,IAAMC,KAAQzZ,KAAKqZ,KAAR,6BAA0C,IACrErZ,KAAK2Y,oBAAoBW,IAC3B,CACDI,QAAS,CAEP,cAAeC,OAAYC,SAC3B,YAAa9Z,OAAM2O,MAAMmD,gBAAgB3C,OACzC,cAAe4K,OAAOC,YAGtB9E,EAAOtJ,OACT1L,KAAKkZ,WAAWrR,MAAMyR,GAAQS,sBAAS/E,EAAOtJ,OAIlD,oBAAqBK,EAAa7D,GAE5B8F,SAAS3O,KAAK2a,WAAW,UAAYjO,EAAIiO,WAAW,4CACtDjO,EAAMA,EAAIyJ,QAAQ,yCAA0C,4CAE9DgE,IAAMnI,IAAItF,EAAK,CACb2N,QAAS,CAEP,cAAeC,OAAYC,SAC3B,YAAa9Z,OAAM2O,MAAMmD,gBAAgB3C,OACzC,cAAe4K,OAAOC,UAExB5R,WACCyE,SAIA,MAAMsN,EAAkB,IAAIxB,G,yDCxEnC,W,oJC6BA,MAAMyB,EAAmBA,KAA6B,IAAAnW,EACpD,MAAMoW,EAAoBA,KACxB,MAAMC,EAAY3Q,KAAK4Q,MACjBC,EAASC,KAAKC,MAAsB,IAAhBD,KAAKD,UAC/B,MAAO,OAAOF,IAAYE,KAE5B,GAAIrW,OAAOG,IAAK,CACd,MAAMqW,EAAmBC,GAChB,IAAIC,QAAQ,CAACC,EAASC,KAC3B,IACE,MAAMC,EAAYX,IAClBlW,OAAO6W,GAAcC,IACnB,IAAI,IAAAC,EACF,MAAMC,EAA8FC,KAAKC,MAAMJ,GAC/G,GAAsB,IAAlBE,EAAS3F,MAAsB,OAAR2F,QAAQ,IAARA,GAAc,QAAND,EAARC,EAAUvP,YAAI,IAAAsP,GAAdA,EAAgBC,SAEzC,YADAL,EAAQK,EAASvP,KAAKuP,UAGxBJ,EAAO,IAAIO,MAAM,WACjB,MAAOhN,GACPyM,EAAOzM,KAGX,MAAMiN,EAAqBH,KAAKI,UAAUZ,GAC1CnS,QAAQC,IAAI,UAAWkS,GACvBzW,OAAOG,IAAImX,eAAe,sBAAuBF,EAAoBP,GACrE,MAAO1M,GACPyM,EAAOzM,MAIb,OAAOqM,EACF,GAAU,QAAV1W,EAAIE,cAAM,IAAAF,GAAQ,QAARA,EAANA,EAAQG,cAAM,IAAAH,GAAiB,QAAjBA,EAAdA,EAAgBI,uBAAe,IAAAJ,GAA/BA,EAAiCK,IAAK,CAE/C,MAAMqW,EAAmBC,GAChB,IAAIC,QAAQ,CAACC,EAASC,KAC3B,IACE,MAAMC,EAAYX,IAClBlW,OAAO6W,GAAcC,IACnB,IAAI,IAAAS,EACF,MAAMP,EAAWF,EAAK/F,OACtB,GAAsB,IAAlBiG,EAAS3F,MAAsB,OAAR2F,QAAQ,IAARA,GAAc,QAANO,EAARP,EAAUvP,YAAI,IAAA8P,GAAdA,EAAgBP,SAEzC,YADAL,EAAQK,EAASvP,KAAKuP,UAGxBJ,EAAO,IAAIO,MAAM,WACjB,MAAOhN,GACPyM,EAAOzM,KAIX7F,QAAQC,IAAI,UAAWkS,GACvBzW,OAAOC,OAAOC,gBAAgBC,IAAIqX,YAAY,CAC5CC,OAAQ,iBACRC,SAAUb,EACV5Q,IAAI,IAAIT,MAAOmS,UACflQ,KAAM,CACJmQ,SAAU,sBACVzI,KAAMsH,KAGV,MAAOtM,GACPyM,EAAOzM,MAIb,OAAOqM,EAET,MAAM,IAAIW,MAAM,uBAMLU,EAAwBC,GAC5B,IAAMA,EAAY,CACvBL,OAAQ,MACRlY,KAAM,mBAOJwY,EAAgBD,GACZ/d,GAAqB+d,EAAY,CACvCL,OAAQ,OACRlY,KAAM,gBACNxF,SAOEie,EAAoBF,GACjB,IAAMA,EAAY,CACvBL,OAAQ,MACRlY,KAAM,gBAOJ0Y,EAAqBH,GAClB,IAAMA,EAAY,CACvBL,OAAQ,MACRlY,KAAM,oBAQG2Y,EAAUA,CAACC,EAAU,YAChC,MAAMC,EAA8E,CAClFC,OAAQpC,GAGJ9C,EAAmBxM,UACvB,GAAIyR,EAA8BD,GAAU,CAC1C,MAAMG,EAAqBF,EAA8BD,KACnDI,QAAiBN,EAAkBK,EAAlBL,GAEvB,GADA3T,QAAQC,IAAI,yBAA0BgU,GAClCA,EAASzQ,IAAK,CAChB,MAAM5C,EAAQsT,eAAgB,IAAIC,IAAIF,EAASzQ,KAAK4Q,cACpDC,eAAuBzT,GACd,OAALA,QAAK,IAALA,KAAOmO,gBACT/O,QAAQ6F,MAAM,uBAAwBjF,EAAMmO,eAC5C5I,eAAMvF,EAAMmO,mBAQdxC,EAAOlK,UACX,IACE,GAAIyR,EAA8BD,GAAU,KAAAS,EAC1C,MAAMN,EAAqBF,EAA8BD,KAInDtY,QAAegY,EAAqBS,EAArBT,GAErB,GADAvT,QAAQC,IAAI,aAAc1E,GAChB,OAANA,QAAM,IAANA,GAAY,QAAN+Y,EAAN/Y,EAAQR,YAAI,IAAAuZ,GAAZA,EAAc3S,GAAI,CACpB,MAAMsS,QAAiBN,EAAkBK,EAAlBL,GAEvB,GADA3T,QAAQC,IAAI,gBAAiBgU,GACzBA,EAASzQ,IAAK,CAChB,MAAM5C,EAAQsT,eAAgB,IAAIC,IAAIF,EAASzQ,KAAK4Q,cACpDC,eAAuBzT,GACnBA,EAAMmO,gBACR/O,QAAQ6F,MAAM,uBAAwBjF,EAAMmO,eAC5C5I,eAAMvF,EAAMmO,gBAGhB,MAAO,EAAC,EAAMxT,EAAOR,MAEvB,MAAMkZ,QAAiBP,EAAiBM,EAAjBN,GAEvB,GADA1T,QAAQC,IAAI,gBAAiBgU,GACzBA,EAASzQ,IAAK,CAChB,MAAM+Q,EAAaL,eAAgB,IAAIC,IAAIF,EAASzQ,KAAK4Q,cAEzD,OADAC,eAAuBE,GAChB,EAAC,EAAOA,GAEjB,MAAM,IAAI1B,MAAM,mBAElB,MAAM,IAAIA,MAAM,qBAChB,MAAOhN,GAIP,MAHAM,eAASN,EAAMyC,QAAT,WACNkM,eAAiB3O,GACjB7F,QAAQ6F,MAAMA,EAAMyC,SACd,IAAIuK,MAAM,kBAOd4B,EAAUpS,UACd,GAAIyR,EAA8BD,GAAU,CAC1C,MAAMG,EAAqBF,EAA8BD,WACnDJ,EAAaO,EAAbP,CAAiChe,GAEzC,MAAM,IAAIod,MAAM,0BAGlB,MAAO,CACLtG,OACAkI,UACA5F,sB","file":"js/chunk-00ba9ac9.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/logo.svg\";","import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\";\nconst _withScopeId = n => (_pushScopeId(\"data-v-05f2b937\"), n = n(), _popScopeId(), n);\nconst _hoisted_1 = {\n  key: 0,\n  class: \"wapper\"\n};\nconst _hoisted_2 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", {\n  class: \"loading\"\n}, [/*#__PURE__*/_createElementVNode(\"div\", {\n  class: \"loading__image\"\n})], -1));\nconst _hoisted_3 = {\n  key: 1\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n  return _ctx.modelValue ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [_hoisted_2, _createElementVNode(\"span\", null, _toDisplayString(_ctx.innerText), 1)])) : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.innerText), 1));\n}","import { defineComponent } from 'vue';\nexport default defineComponent({\n  name: 'Loader',\n  props: {\n    modelValue: {\n      type: Boolean,\n      required: true\n    },\n    innerText: {\n      type: String,\n      require: true\n    },\n    action: {\n      type: String,\n      require: true\n    }\n  },\n  emits: {},\n  setup() {\n    return {};\n  }\n});","/* unplugin-vue-components disabled */import { render } from \"./Loader.vue?vue&type=template&id=05f2b937&scoped=true&ts=true\"\nimport script from \"./Loader.vue?vue&type=script&lang=ts\"\nexport * from \"./Loader.vue?vue&type=script&lang=ts\"\n\nimport \"./Loader.vue?vue&type=style&index=0&id=05f2b937&lang=scss&scoped=true\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-05f2b937\"]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, vShow as _vShow, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode } from \"vue\";\nconst _hoisted_1 = {\n  class: \"cover\"\n};\nconst _hoisted_2 = {\n  class: \"dialog__body\"\n};\nconst _hoisted_3 = [\"innerHTML\"];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_Loader = _resolveComponent(\"Loader\");\n  return _openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", {\n    class: _normalizeClass([\"dialog\", _ctx.action])\n  }, [_createElementVNode(\"div\", _hoisted_2, [_createElementVNode(\"h2\", null, _toDisplayString(_ctx.dialog.title), 1), _ctx.dialog.tip ? (_openBlock(), _createElementBlock(\"p\", {\n    key: 0,\n    class: \"tips\",\n    onClick: _cache[0] || (_cache[0] =\n    //@ts-ignore\n    (...args) => _ctx.handleTip && _ctx.handleTip(...args))\n  }, [_ctx.hasCheck ? (_openBlock(), _createElementBlock(\"i\", {\n    key: 0,\n    class: _normalizeClass(`qh-icon-${_ctx.deleteCompletely ? 'checked' : 'check'}`)\n  }, null, 2)) : _createCommentVNode(\"\", true), _createElementVNode(\"span\", null, _toDisplayString(_ctx.dialog.tip), 1)])) : _createCommentVNode(\"\", true), _ctx.action === 'tip-guide' ? (_openBlock(), _createElementBlock(\"p\", {\n    key: 1,\n    class: _normalizeClass([\"remind-img\", {\n      'ios': _ctx.isIOS\n    }])\n  }, null, 2)) : _createCommentVNode(\"\", true), _ctx.dialog.more ? (_openBlock(), _createElementBlock(\"p\", {\n    key: 2,\n    innerHTML: _ctx.dialog.more\n  }, null, 8, _hoisted_3)) : _createCommentVNode(\"\", true)]), _createElementVNode(\"div\", {\n    class: _normalizeClass(_ctx.dialog.verticalFooter ? 'dialog__vertical' : 'dialog__footer')\n  }, [_withDirectives(_createElementVNode(\"a\", {\n    href: \"javascript:;\",\n    class: \"button-other\",\n    onClick: _cache[1] || (_cache[1] = $event => _ctx.close('cancel'))\n  }, _toDisplayString(_ctx.dialog.cancelTxt), 513), [[_vShow, _ctx.dialog.cancelTxt]]), _createElementVNode(\"a\", {\n    href: \"javascript:;\",\n    onClick: _cache[3] || (_cache[3] =\n    //@ts-ignore\n    (...args) => _ctx.handleAcion && _ctx.handleAcion(...args))\n  }, [_createVNode(_component_Loader, {\n    modelValue: _ctx.showLoader,\n    \"onUpdate:modelValue\": _cache[2] || (_cache[2] = $event => _ctx.showLoader = $event),\n    action: _ctx.action,\n    \"inner-text\": _ctx.dialog.okTxt\n  }, null, 8, [\"modelValue\", \"action\", \"inner-text\"])]), _ctx.dialog.verticalFooter ? (_openBlock(), _createElementBlock(\"a\", {\n    key: 0,\n    href: \"javascript:;\",\n    class: \"button-other\",\n    onClick: _cache[4] || (_cache[4] = $event => _ctx.close('close'))\n  }, \"取消\")) : _createCommentVNode(\"\", true)], 2)], 2)]);\n}","import { defineComponent } from 'vue';\nimport { mapState, useStore } from 'vuex';\nimport Loader from '@remote/components/Loader.vue';\nimport '@remote/assets/css/dialog.scss';\nexport default defineComponent({\n  name: 'Dialog',\n  components: {\n    Loader\n  },\n  setup() {\n    return {\n      store: useStore()\n    };\n  },\n  computed: {\n    ...mapState(['dialog', 'deleteCompletely', 'showLoader']),\n    action() {\n      return this.dialog.action;\n    },\n    cancel() {\n      return this.dialog.cancel;\n    },\n    hasCheck() {\n      return this.dialog.hasCheck || false;\n    },\n    isIOS() {\n      return !navigator.userAgent.includes('Android');\n    }\n  },\n  methods: {\n    close(type) {\n      this.store.commit('dialog', {\n        show: false\n      });\n      this.store.commit('update', {\n        action: ''\n      });\n      setTimeout(() => {\n        if (type === 'cancel' && this.cancel) this.store.commit('update', {\n          action: this.cancel\n        });\n      }, 0);\n    },\n    handleAcion() {\n      if (this.dialog.showLoader) {\n        this.store.commit('update', {\n          showLoader: true\n        });\n      }\n      this.store.commit('update', {\n        action: ''\n      });\n      setTimeout(() => {\n        if (this.action) this.store.commit('update', {\n          action: this.action\n        });\n      }, 0);\n    },\n    handleTip() {\n      if (this.hasCheck) {\n        this.store.commit('update', {\n          deleteCompletely: !this.deleteCompletely\n        });\n      }\n    }\n  }\n});","/* unplugin-vue-components disabled */import { render } from \"./Dialog.vue?vue&type=template&id=18011858&ts=true\"\nimport script from \"./Dialog.vue?vue&type=script&lang=ts\"\nexport * from \"./Dialog.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\";\nimport _imports_0 from '@remote/assets/img/logo.svg';\nimport _imports_1 from '../assets/img/speedup.svg';\nconst _withScopeId = n => (_pushScopeId(\"data-v-44627cbf\"), n = n(), _popScopeId(), n);\nconst _hoisted_1 = {\n  class: \"header-title\"\n};\nconst _hoisted_2 = {\n  key: 2,\n  xmlns: \"http://www.w3.org/2000/svg\",\n  width: \"12\",\n  height: \"12\",\n  viewBox: \"0 0 12 12\"\n};\nconst _hoisted_3 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"path\", {\n  d: \"M6.92186 9.69375C6.44211 10.2695 5.55789 10.2695 5.07813 9.69375L1.64018 5.56821C0.988856 4.78661 1.54464 3.59999 2.56205 3.59999L9.43795 3.59999C10.4554 3.59999 11.0111 4.78662 10.3598 5.56821L6.92186 9.69375Z\"\n}, null, -1));\nconst _hoisted_4 = [_hoisted_3];\nconst _hoisted_5 = {\n  key: 1,\n  class: \"file-tab-vip-speed\"\n};\nconst _hoisted_6 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"img\", {\n  src: _imports_1,\n  class: \"file-tab-speedIcon\",\n  draggable: \"false\"\n}, null, -1));\nconst _hoisted_7 = {\n  class: \"file-tab-vipword\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_IconHome = _resolveComponent(\"IconHome\");\n  return _openBlock(), _createElementBlock(\"header\", {\n    class: _normalizeClass([\"header\", {\n      'is-disabled': _ctx.disabled,\n      'is-vip': _ctx.isVip,\n      'android-padding': _ctx.isAndroid,\n      'ios-padding': _ctx.isUseIOSHeader\n    }])\n  }, [_createElementVNode(\"div\", _hoisted_1, [_ctx.isNative ? (_openBlock(), _createBlock(_component_IconHome, {\n    key: 0,\n    width: \"36\",\n    height: \"36\",\n    onClick: _ctx.callAppHome\n  }, null, 8, [\"onClick\"])) : _createCommentVNode(\"\", true), !_ctx.isNative ? (_openBlock(), _createElementBlock(\"img\", {\n    key: 1,\n    class: \"header-logo\",\n    onClick: _cache[0] || (_cache[0] =\n    //@ts-ignore\n    (...args) => _ctx.callAppHome && _ctx.callAppHome(...args)),\n    src: _imports_0,\n    alt: \"logo\",\n    draggable: \"false\"\n  })) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", {\n    class: \"header-home\",\n    onClick: _cache[1] || (_cache[1] =\n    //@ts-ignore\n    (...args) => _ctx.onOpenDeviceList && _ctx.onOpenDeviceList(...args))\n  }, _toDisplayString(_ctx.currentDeviceName), 1), _ctx.isLogin ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_2, _hoisted_4)) : _createCommentVNode(\"\", true)]), _ctx.showSpeedUp ? (_openBlock(), _createElementBlock(\"a\", {\n    key: 0,\n    href: \"javascript:;\",\n    class: \"speed-btn\",\n    onClick: _cache[2] || (_cache[2] =\n    //@ts-ignore\n    (...args) => _ctx.goVip && _ctx.goVip(...args))\n  }, \"会员加速\")) : _createCommentVNode(\"\", true), _ctx.showVipSpeedUp ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [_hoisted_6, _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.isSuperVip ? '超级会员' : '会员') + \"特权加速中\", 1)])) : _createCommentVNode(\"\", true)], 2);\n}","import \"core-js/modules/web.self.js\";\nimport { computed, defineComponent } from 'vue';\nimport { mapState, mapGetters, useStore } from 'vuex';\nimport { isAndroidNative as isAndroid, isIOSNative as isIOS } from '@xunlei/universal-native-api';\nimport { IconHome } from '@xunlei/thunder-icon-vue';\nimport { useEnvStore } from '@remote/store/env';\nimport { useDeviceStore } from '@remote/store/device';\nimport { openDeviceList } from '@remote/utils/dialog';\nexport default defineComponent({\n  name: 'HeaderPlus',\n  components: {\n    IconHome\n  },\n  setup: () => {\n    const store = useStore();\n    const envStore = useEnvStore();\n    const isDev = process.env.NODE_ENV === 'development';\n    const deviceStore = useDeviceStore();\n    const currentDeviceName = computed(() => {\n      var _deviceStore$currentD, _deviceStore$currentD2;\n      return (_deviceStore$currentD = (_deviceStore$currentD2 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD2 === void 0 ? void 0 : _deviceStore$currentD2.runnerTaskRef.name) !== null && _deviceStore$currentD !== void 0 ? _deviceStore$currentD : isDev ? '迅雷-远程设备本地' : '迅雷-远程设备';\n    });\n    return {\n      store,\n      isDev,\n      envStore,\n      openDeviceList,\n      currentDeviceName\n    };\n  },\n  data() {\n    return {\n      showDevice: false,\n      isAndroid,\n      isIOS\n    };\n  },\n  computed: {\n    ...mapState(['all', 'user', 'isSelect', 'checking', 'inListFiles', 'isApp', 'isMiniProgram', 'isVip', 'taskType']),\n    ...mapGetters(['isLogin', 'isSuperVip', 'showHeader', 'showVip', 'isVip', 'runningList', 'isFullScreen']),\n    status() {\n      var _deviceStore$currentD3;\n      const deviceStore = useDeviceStore();\n      return ((_deviceStore$currentD3 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD3 === void 0 ? void 0 : _deviceStore$currentD3.runnerTaskRef.phase) === 'PHASE_TYPE_RUNNING';\n    },\n    disabled() {\n      return this.isSelect;\n    },\n    isNative() {\n      return (isAndroid || isIOS || this.isApp || this.isMiniProgram) && self === top;\n    },\n    showSpeedUp() {\n      return !this.isVip && this.showVip && this.user && this.$route.path !== '/me' && this.$route.path !== '/plugin' && this.$store.getters.showVip;\n    },\n    showVipSpeedUp() {\n      return this.runningList.length > 0 && this.taskType === 'ing' && this.isVip && this.status && this.$route.path !== '/me' && this.$route.path !== '/plugin';\n    },\n    isUseIOSHeader() {\n      var _window, _window2;\n      // iOS迅雷和华为浏览器,webview是全屏的,所以要用适配全面屏的header\n      return isIOS || Boolean((_window = window) === null || _window === void 0 || (_window = _window.webkit) === null || _window === void 0 || (_window = _window.messageHandlers) === null || _window === void 0 ? void 0 : _window.hdc) || Boolean((_window2 = window) === null || _window2 === void 0 || (_window2 = _window2.webkit) === null || _window2 === void 0 || (_window2 = _window2.messageHandlers) === null || _window2 === void 0 ? void 0 : _window2.xlremote);\n    }\n  },\n  methods: {\n    async callAppHome() {\n      let routename = String(this.$route.name);\n      if (!this.isNative) return;\n      if (!['home', 'login', 'me', 'plugin'].includes(routename)) {\n        this.$router.back();\n      } else {\n        this.store.dispatch('close');\n      }\n    },\n    goVip() {\n      this.$stat({\n        action: 'download_tab_top_vipspeed_btn_click'\n      });\n      this.$stat({\n        action: 'vip_accelerate_btn_click'\n      });\n      this.store.dispatch('goVip', {\n        position: 'hyjs'\n      });\n    },\n    onOpenDeviceList() {\n      if (this.isLogin) {\n        openDeviceList({\n          actionFrom: 'homepage'\n        });\n      }\n    }\n  }\n});","/* unplugin-vue-components disabled */import { render } from \"./HeaderPlus.vue?vue&type=template&id=44627cbf&scoped=true&ts=true\"\nimport script from \"./HeaderPlus.vue?vue&type=script&lang=ts\"\nexport * from \"./HeaderPlus.vue?vue&type=script&lang=ts\"\n\nimport \"./HeaderPlus.vue?vue&type=style&index=0&id=44627cbf&lang=scss\"\nimport \"./HeaderPlus.vue?vue&type=style&index=1&id=44627cbf&lang=scss&scoped=true\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-44627cbf\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createStaticVNode as _createStaticVNode } from \"vue\";\nimport _imports_0 from '../assets/img/huddle-frame-quitIcon@3x.png';\nimport _imports_1 from '../assets/img/huddle-pop@3x.png';\nconst _hoisted_1 = {\n  key: 0,\n  class: \"huddle-pop-mask\"\n};\nconst _hoisted_2 = {\n  class: \"huddle-pop\"\n};\nconst _hoisted_3 = /*#__PURE__*/_createStaticVNode(\"<img src=\\\"\" + _imports_1 + \"\\\" class=\\\"huddle-pop-pic\\\" draggable=\\\"false\\\"><p class=\\\"huddle-pop-txt1\\\"> 组队加速 </p><p class=\\\"huddle-pop-txt2\\\"> 超级会员专属特权 </p><table class=\\\"huddle-pop-form\\\"><tr><td class=\\\"huddle-pop-form-txt1\\\"> 用户身份 </td><td>年费超级会员</td><td>超级会员</td><td>白金会员</td></tr><tr><td class=\\\"huddle-pop-form-txt1\\\"> 组队次数 </td><td class=\\\"huddle-pop-form-txt2\\\"> 无限次 </td><td><span class=\\\"huddle-pop-form-txt2\\\">20</span>次/天</td><td>无</td></tr></table>\", 4);\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n  return _ctx.isShowVipPop ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [_createElementVNode(\"div\", _hoisted_2, [_createElementVNode(\"img\", {\n    src: _imports_0,\n    class: \"huddle-pop-quit\",\n    draggable: \"false\",\n    onClick: _cache[0] || (_cache[0] =\n    //@ts-ignore\n    (...args) => _ctx.quitHuddlePop && _ctx.quitHuddlePop(...args))\n  }), _hoisted_3, _ctx.showVip ? (_openBlock(), _createElementBlock(\"div\", {\n    key: 0,\n    class: \"huddle-pop-bt\",\n    onClick: _cache[1] || (_cache[1] =\n    //@ts-ignore\n    (...args) => _ctx.goVip && _ctx.goVip(...args))\n  }, \" 开通超级会员 \")) : _createCommentVNode(\"\", true)])])) : _createCommentVNode(\"\", true);\n}","import { defineComponent } from 'vue';\nimport { mapState, mapGetters, useStore } from 'vuex';\nexport default defineComponent({\n  name: 'HuddlePop',\n  setup() {\n    return {\n      store: useStore()\n    };\n  },\n  computed: {\n    ...mapState(['isShowVipPop']),\n    ...mapGetters(['isYSvip', 'showVip'])\n  },\n  watch: {\n    isYSvip(val) {\n      val && this.quitHuddlePop();\n    }\n  },\n  methods: {\n    quitHuddlePop() {\n      this.store.commit('update', {\n        isShowVipPop: false\n      });\n    },\n    goVip() {\n      //跳转开通会员界面\n      this.$stat({\n        action: 'vip_accelerate_btn_click'\n      });\n      this.store.dispatch('goVip', {\n        position: 'groupdl'\n      });\n    }\n  }\n});","/* unplugin-vue-components disabled */import { render } from \"./HuddlePop.vue?vue&type=template&id=990e83a6&ts=true\"\nimport script from \"./HuddlePop.vue?vue&type=script&lang=ts\"\nexport * from \"./HuddlePop.vue?vue&type=script&lang=ts\"\n\nimport \"./HuddlePop.vue?vue&type=style&index=0&id=990e83a6&lang=scss\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, resolveComponent as _resolveComponent, createVNode as _createVNode, createStaticVNode as _createStaticVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\";\nconst _withScopeId = n => (_pushScopeId(\"data-v-8eaeab62\"), n = n(), _popScopeId(), n);\nconst _hoisted_1 = {\n  class: \"footer-box\"\n};\nconst _hoisted_2 = {\n  key: 0,\n  class: \"red-num\"\n};\nconst _hoisted_3 = {\n  key: 1,\n  width: \"28\",\n  height: \"28\",\n  viewBox: \"0 0 28 28\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_4 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"rect\", {\n  width: \"28\",\n  height: \"28\"\n}, null, -1));\nconst _hoisted_5 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"path\", {\n  \"fill-rule\": \"evenodd\",\n  \"clip-rule\": \"evenodd\",\n  d: \"M14.6615 2.17021L24.3385 7.53497C24.7478 7.76192 25 8.18134 25 8.63524V19.3648C25 19.8187 24.7478 20.2381 24.3385 20.465L14.6615 25.8298C14.2522 26.0567 13.7478 26.0567 13.3385 25.8298L3.66155 20.465C3.25218 20.2381 3 19.8187 3 19.3648L3 8.63524C3 8.18134 3.25218 7.76192 3.66155 7.53497L13.3385 2.17021C13.7478 1.94326 14.2522 1.94326 14.6615 2.17021Z\",\n  fill: \"#3F85FF\"\n}, null, -1));\nconst _hoisted_6 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"path\", {\n  d: \"M11 14L13.8586 16.8586C13.9367 16.9367 14.0633 16.9367 14.1414 16.8586L17 14\",\n  stroke: \"white\",\n  \"stroke-width\": \"2\",\n  \"stroke-linecap\": \"round\"\n}, null, -1));\nconst _hoisted_7 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"path\", {\n  d: \"M14 10V15\",\n  stroke: \"white\",\n  \"stroke-width\": \"2\",\n  \"stroke-linecap\": \"round\"\n}, null, -1));\nconst _hoisted_8 = [_hoisted_4, _hoisted_5, _hoisted_6, _hoisted_7];\nconst _hoisted_9 = {\n  key: 2,\n  width: \"28\",\n  height: \"28\",\n  viewBox: \"0 0 28 28\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_10 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"path\", {\n  \"fill-rule\": \"evenodd\",\n  \"clip-rule\": \"evenodd\",\n  d: \"M15 10C15 9.44772 14.5523 9 14 9C13.4477 9 13 9.44772 13 10V14.5858L11.7071 13.2929C11.3166 12.9024 10.6834 12.9024 10.2929 13.2929C9.90237 13.6834 9.90237 14.3166 10.2929 14.7071L13.1515 17.5657C13.6201 18.0343 14.3799 18.0343 14.8485 17.5657L17.7071 14.7071C18.0976 14.3166 18.0976 13.6834 17.7071 13.2929C17.3166 12.9024 16.6834 12.9024 16.2929 13.2929L15 14.5858V10Z\",\n  fill: \"#6A707C\"\n}, null, -1));\nconst _hoisted_11 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"path\", {\n  d: \"M14.1767 3.0448L23.8536 8.40956C23.9574 8.46712 24 8.55873 24 8.63524V19.3648C24 19.4413 23.9574 19.5329 23.8536 19.5904L14.1767 24.9552C14.0689 25.0149 13.9311 25.0149 13.8233 24.9552L4.14641 19.5904C4.0426 19.5329 4 19.4413 4 19.3648V8.63524C4 8.55873 4.0426 8.46712 4.14641 8.40956L13.8233 3.0448C13.9311 2.98507 14.0689 2.98507 14.1767 3.0448Z\",\n  stroke: \"#61636F\",\n  \"stroke-width\": \"2\"\n}, null, -1));\nconst _hoisted_12 = [_hoisted_10, _hoisted_11];\nconst _hoisted_13 = {\n  key: 0,\n  width: \"28\",\n  height: \"28\",\n  viewBox: \"0 0 28 28\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_14 = /*#__PURE__*/_createStaticVNode(\"<rect width=\\\"28\\\" height=\\\"28\\\" fill=\\\"none\\\" data-v-8eaeab62></rect><rect x=\\\"4\\\" y=\\\"4\\\" width=\\\"8\\\" height=\\\"8\\\" stroke=\\\"#61636F\\\" stroke-width=\\\"2\\\" data-v-8eaeab62></rect><rect x=\\\"4\\\" y=\\\"16\\\" width=\\\"8\\\" height=\\\"8\\\" stroke=\\\"#61636F\\\" stroke-width=\\\"2\\\" data-v-8eaeab62></rect><rect x=\\\"16\\\" y=\\\"4\\\" width=\\\"8\\\" height=\\\"8\\\" stroke=\\\"#61636F\\\" stroke-width=\\\"2\\\" data-v-8eaeab62></rect><rect x=\\\"16\\\" y=\\\"16\\\" width=\\\"8\\\" height=\\\"8\\\" stroke=\\\"#61636F\\\" stroke-width=\\\"2\\\" data-v-8eaeab62></rect>\", 5);\nconst _hoisted_19 = [_hoisted_14];\nconst _hoisted_20 = {\n  key: 1,\n  width: \"28\",\n  height: \"28\",\n  viewBox: \"0 0 28 28\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_21 = /*#__PURE__*/_createStaticVNode(\"<rect width=\\\"28\\\" height=\\\"28\\\" fill=\\\"white\\\" data-v-8eaeab62></rect><rect x=\\\"3\\\" y=\\\"3\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"1\\\" fill=\\\"#3F85FF\\\" data-v-8eaeab62></rect><rect x=\\\"3\\\" y=\\\"15\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"1\\\" fill=\\\"#3F85FF\\\" data-v-8eaeab62></rect><rect x=\\\"15\\\" y=\\\"3\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"1\\\" fill=\\\"#3F85FF\\\" data-v-8eaeab62></rect><rect x=\\\"15\\\" y=\\\"15\\\" width=\\\"10\\\" height=\\\"10\\\" rx=\\\"1\\\" fill=\\\"#3F85FF\\\" data-v-8eaeab62></rect>\", 5);\nconst _hoisted_26 = [_hoisted_21];\nconst _hoisted_27 = {\n  key: 0,\n  class: \"point\"\n};\nconst _hoisted_28 = {\n  key: 1,\n  width: \"28\",\n  height: \"28\",\n  viewBox: \"0 0 28 28\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_29 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"rect\", {\n  width: \"28\",\n  height: \"28\"\n}, null, -1));\nconst _hoisted_30 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"path\", {\n  \"fill-rule\": \"evenodd\",\n  \"clip-rule\": \"evenodd\",\n  d: \"M14 3C10.6863 3 8 5.68629 8 9C8 12.3137 10.6863 15 14 15C17.3137 15 20 12.3137 20 9C20 5.68629 17.3137 3 14 3ZM22 9C22 11.8557 20.5037 14.3619 18.2524 15.7775C22.1791 17.2759 25 20.7904 25 25C25 25.5523 24.5523 26 24 26C23.4477 26 23 25.5523 23 25C23 20.6782 19.0723 17 14 17C8.92772 17 5 20.6782 5 25C5 25.5523 4.55228 26 4 26C3.44772 26 3 25.5523 3 25C3 20.7904 5.82093 17.2759 9.74761 15.7775C7.49628 14.3619 6 11.8557 6 9C6 4.58172 9.58172 1 14 1C18.4183 1 22 4.58172 22 9ZM15 19C15 18.4477 14.5523 18 14 18C13.4477 18 13 18.4477 13 19V23C13 23.5523 13.4477 24 14 24C14.5523 24 15 23.5523 15 23V19Z\",\n  fill: \"#61636F\"\n}, null, -1));\nconst _hoisted_31 = [_hoisted_29, _hoisted_30];\nconst _hoisted_32 = {\n  key: 2,\n  width: \"28\",\n  height: \"28\",\n  viewBox: \"0 0 28 28\",\n  fill: \"none\",\n  xmlns: \"http://www.w3.org/2000/svg\"\n};\nconst _hoisted_33 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"path\", {\n  \"fill-rule\": \"evenodd\",\n  \"clip-rule\": \"evenodd\",\n  d: \"M25 25C25 19.4772 20.0751 15 14 15C7.92487 15 3 19.4772 3 25C8.5 25 19.5 25 25 25Z\",\n  fill: \"#3F85FF\"\n}, null, -1));\nconst _hoisted_34 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"circle\", {\n  cx: \"14\",\n  cy: \"9\",\n  r: \"8\",\n  fill: \"#3F85FF\"\n}, null, -1));\nconst _hoisted_35 = /*#__PURE__*/_withScopeId(() => /*#__PURE__*/_createElementVNode(\"path\", {\n  d: \"M14 18V23\",\n  stroke: \"white\",\n  \"stroke-width\": \"2\",\n  \"stroke-linecap\": \"round\",\n  \"stroke-linejoin\": \"round\"\n}, null, -1));\nconst _hoisted_36 = [_hoisted_33, _hoisted_34, _hoisted_35];\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_IconTvCinemaNew = _resolveComponent(\"IconTvCinemaNew\");\n  return _ctx.show ? (_openBlock(), _createElementBlock(\"section\", {\n    key: 0,\n    class: _normalizeClass({\n      'footer': true,\n      'is-dark': _ctx.currentPage === 'cinema'\n    })\n  }, [_createElementVNode(\"div\", _hoisted_1, [_createElementVNode(\"div\", {\n    class: \"item\",\n    onClick: _cache[0] || (_cache[0] = $event => _ctx.selectPage('home'))\n  }, [_ctx.downloadAndPendingList.length > 0 && _ctx.status ? (_openBlock(), _createElementBlock(\"span\", _hoisted_2, _toDisplayString(_ctx.num), 1)) : _createCommentVNode(\"\", true), _ctx.currentPage === 'home' ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_3, _hoisted_8)) : _createCommentVNode(\"\", true), _ctx.currentPage !== 'home' ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_9, _hoisted_12)) : _createCommentVNode(\"\", true), _createElementVNode(\"p\", {\n    class: _normalizeClass({\n      'actived': _ctx.currentPage === 'home'\n    })\n  }, \" 下载 \", 2)]), _ctx.isCinemaShowRef ? (_openBlock(), _createElementBlock(\"div\", {\n    key: 0,\n    class: _normalizeClass({\n      'item': true,\n      'is-selected': _ctx.currentPage === 'cinema'\n    }),\n    onClick: _cache[1] || (_cache[1] = $event => _ctx.selectPage('cinema'))\n  }, [_createVNode(_component_IconTvCinemaNew, {\n    height: \"28\",\n    width: \"28\"\n  }), _createElementVNode(\"p\", {\n    class: _normalizeClass({\n      'actived': _ctx.currentPage === 'cinema'\n    })\n  }, \" 个人片库 \", 2)], 2)) : _createCommentVNode(\"\", true), _ctx.isPluginShowRef ? (_openBlock(), _createElementBlock(\"div\", {\n    key: 1,\n    class: \"item\",\n    onClick: _cache[2] || (_cache[2] = $event => _ctx.selectPage('plugin'))\n  }, [_ctx.currentPage !== 'plugin' ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_13, _hoisted_19)) : _createCommentVNode(\"\", true), _ctx.currentPage === 'plugin' ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_20, _hoisted_26)) : _createCommentVNode(\"\", true), _createElementVNode(\"p\", {\n    class: _normalizeClass({\n      'actived': _ctx.currentPage === 'plugin'\n    })\n  }, \" 小工具 \", 2)])) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", {\n    class: \"item\",\n    onClick: _cache[3] || (_cache[3] = $event => _ctx.selectPage('me'))\n  }, [_ctx.showPoint && _ctx.clientVersion.match(/2.13/) ? (_openBlock(), _createElementBlock(\"span\", _hoisted_27)) : _createCommentVNode(\"\", true), _ctx.currentPage !== 'me' ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_28, _hoisted_31)) : _createCommentVNode(\"\", true), _ctx.currentPage === 'me' ? (_openBlock(), _createElementBlock(\"svg\", _hoisted_32, _hoisted_36)) : _createCommentVNode(\"\", true), _createElementVNode(\"p\", {\n    class: _normalizeClass({\n      'actived': _ctx.currentPage === 'me'\n    })\n  }, \" 我的 \", 2)])])], 2)) : _createCommentVNode(\"\", true);\n}","import \"core-js/modules/es.array.push.js\";\nimport { computed, defineComponent, onBeforeMount, ref, watch } from 'vue';\nimport { mapState, mapGetters } from 'vuex';\nimport { PluginPlatforms } from '@remote/constant';\nimport { IconTvCinemaNew } from '@xunlei/thunder-icon-vue';\nimport { getLocalValue, setLocalValue } from '@remote/utils/index';\nimport { useDeviceStore } from '@remote/store/device';\nexport default defineComponent({\n  components: {\n    IconTvCinemaNew\n  },\n  setup() {\n    const isCinemaShowRef = ref(false);\n    const isPluginShowRef = ref(false);\n    const deviceStore = useDeviceStore();\n    const isServerSupportPlugin = computed(() => {\n      var _deviceStore$currentD;\n      return (_deviceStore$currentD = deviceStore.currentDeviceRef) === null || _deviceStore$currentD === void 0 ? void 0 : _deviceStore$currentD.util.hasLabel('withPlugin');\n    });\n    const baseConfig = computed(() => {\n      var _deviceStore$currentD2;\n      return (_deviceStore$currentD2 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD2 === void 0 ? void 0 : _deviceStore$currentD2.baseConfigRef;\n    });\n    const configIsCinemaDisabled = computed(() => {\n      var _baseConfig$value;\n      return (_baseConfig$value = baseConfig.value) === null || _baseConfig$value === void 0 || (_baseConfig$value = _baseConfig$value.nfo_config) === null || _baseConfig$value === void 0 ? void 0 : _baseConfig$value.is_disabled;\n    });\n    const configIsPluginShow = computed(() => {\n      var _deviceStore$currentD3, _deviceStore$currentD4;\n      return Boolean(PluginPlatforms.includes((_deviceStore$currentD3 = (_deviceStore$currentD4 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD4 === void 0 || (_deviceStore$currentD4 = _deviceStore$currentD4.runnerTaskRef) === null || _deviceStore$currentD4 === void 0 || (_deviceStore$currentD4 = _deviceStore$currentD4.params) === null || _deviceStore$currentD4 === void 0 ? void 0 : _deviceStore$currentD4.platform) !== null && _deviceStore$currentD3 !== void 0 ? _deviceStore$currentD3 : '') && isServerSupportPlugin.value);\n    });\n    onBeforeMount(() => {\n      // 读取缓存\n      if (localStorage.getItem('isCinemaShow') === 'true') {\n        // 个人影院展示缓存\n        isCinemaShowRef.value = true;\n      }\n      if (localStorage.getItem('isPluginShow') === 'true') {\n        // 小工具展示缓存\n        isPluginShowRef.value = true;\n      }\n    });\n    watch(configIsCinemaDisabled, val => {\n      if (val === undefined) return;\n      isCinemaShowRef.value = !val;\n      console.log('2- isCinemaShowRef.value', val, isCinemaShowRef.value);\n      // 更新缓存\n      localStorage.setItem('isCinemaShow', String(isCinemaShowRef.value));\n    }, {\n      immediate: true\n    });\n    watch(configIsPluginShow, val => {\n      isPluginShowRef.value = val;\n      // 更新缓存\n      localStorage.setItem('isPluginShow', String(isPluginShowRef.value));\n    }, {\n      immediate: true\n    });\n    return {\n      isCinemaShowRef,\n      isPluginShowRef,\n      configIsCinemaShow: configIsCinemaDisabled,\n      configIsPluginShow\n    };\n  },\n  data() {\n    return {\n      currentPage: '',\n      showPoint: this.isNative && !getLocalValue('hideMePoint')\n    };\n  },\n  computed: {\n    ...mapState(['isSelect', 'isNative', 'status', 'curDeviceRunner', 'deviceInfoWatchData']),\n    ...mapGetters(['downloadAndPendingList']),\n    show() {\n      return ['home', 'me', 'plugin', 'cinema'].includes(this.$route.name) && !this.isSelect;\n    },\n    num() {\n      const total = this.downloadAndPendingList.length > 0 ? this.downloadAndPendingList.length : '';\n      return total > 20 ? '20+' : total;\n    },\n    clientVersion() {\n      var _this$deviceInfoWatch, _this$deviceInfoWatch2;\n      return (_this$deviceInfoWatch = (_this$deviceInfoWatch2 = this.deviceInfoWatchData) === null || _this$deviceInfoWatch2 === void 0 ? void 0 : _this$deviceInfoWatch2.client_version) !== null && _this$deviceInfoWatch !== void 0 ? _this$deviceInfoWatch : '';\n    }\n  },\n  watch: {\n    '$route.name': {\n      handler(val) {\n        if (this.show) {\n          this.currentPage = val;\n        }\n      },\n      immediate: true\n    }\n  },\n  methods: {\n    selectPage(page) {\n      if (this.showPoint) {\n        setLocalValue('hideMePoint', true);\n        this.showPoint = false;\n      }\n      this.$router.push({\n        name: page,\n        query: this.$route.query\n      });\n    }\n  }\n});","/* unplugin-vue-components disabled */import { render } from \"./FooterBar.vue?vue&type=template&id=8eaeab62&scoped=true&ts=true\"\nimport script from \"./FooterBar.vue?vue&type=script&lang=ts\"\nexport * from \"./FooterBar.vue?vue&type=script&lang=ts\"\n\nimport \"./FooterBar.vue?vue&type=style&index=0&id=8eaeab62&lang=scss&scoped=true\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-8eaeab62\"]])\n\nexport default __exports__","import { createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, vShow as _vShow, withDirectives as _withDirectives, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\";\nimport _imports_0 from '../assets/img/yunpan-icon@3x.png';\nconst _withScopeId = n => (_pushScopeId(\"data-v-3f7bd9c2\"), n = n(), _popScopeId(), n);\nconst _hoisted_1 = [\"src\"];\nconst _hoisted_2 = {\n  key: 0,\n  class: \"file-item-tackback\",\n  src: _imports_0,\n  draggable: \"false\"\n};\nconst _hoisted_3 = {\n  class: \"file-item__main\"\n};\nconst _hoisted_4 = {\n  class: \"file-item__name\"\n};\nconst _hoisted_5 = {\n  class: \"file-item__speed\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n  return _openBlock(), _createElementBlock(\"div\", {\n    class: \"file-item\",\n    onClick: _cache[0] || (_cache[0] =\n    //@ts-ignore\n    (...args) => _ctx.handleSelect && _ctx.handleSelect(...args))\n  }, [_createElementVNode(\"img\", {\n    class: \"file-item__pic\",\n    src: _ctx.iconLink,\n    alt: \"图片\",\n    draggable: \"false\"\n  }, null, 8, _hoisted_1), _ctx.file.type === 'user#download' ? (_openBlock(), _createElementBlock(\"img\", _hoisted_2)) : _createCommentVNode(\"\", true), _createElementVNode(\"article\", _hoisted_3, [_createElementVNode(\"p\", _hoisted_4, _toDisplayString(_ctx.file.file_name || _ctx.file.name), 1), _createElementVNode(\"section\", null, [_createElementVNode(\"p\", _hoisted_5, [_withDirectives(_createElementVNode(\"span\", null, _toDisplayString(_ctx.parseTime(new Date(_ctx.file.created_time))), 513), [[_vShow, _ctx.taskType !== 'ing']]), _withDirectives(_createElementVNode(\"span\", {\n    style: {\n      \"margin-left\": \"5px\"\n    }\n  }, _toDisplayString(_ctx.size), 513), [[_vShow, _ctx.file.kind !== 'drive#folder']])])])])]);\n}","import { defineComponent } from 'vue';\nimport { formatSize, isTruePlayFormat, parseTime, toast } from '@remote/utils';\nimport { mapState, mapGetters, useStore } from 'vuex';\nimport { USER_DOWNLOAD_URL } from '@remote/constant';\nimport { getIconFromMineType } from '@remote/utils/static-icons';\nimport MeetIcon from '@remote/assets/img/meet-download-icon@3x.svg';\nimport SpeedTackIcon from '@remote/assets/img/speed-tack-icon@3x.png';\nimport debounce from 'lodash/debounce';\nimport { stat } from '@remote/utils/stat';\nimport { categorizeByFileExtension, getExtensionFromFilename } from '@shared/utils/file';\nexport default defineComponent({\n  name: 'FileItem',\n  props: ['id', 'load'],\n  setup() {\n    return {\n      store: useStore()\n    };\n  },\n  data() {\n    return {\n      iShowHuddle: true,\n      MeetIcon,\n      SpeedTackIcon\n    };\n  },\n  computed: {\n    ...mapState(['all', 'isSelect', 'taskType', 'tasks', 'filePopTaskID', 'huddleNum', 'teamTaskId', 'showLastCount', 'parentIds', 'isMiniProgram']),\n    ...mapGetters(['curList', 'isVip', 'vipType', 'runningList', 'isYSvip', 'showVip', 'appCanPlay']),\n    file() {\n      return this.all[this.id];\n    },\n    phase() {\n      return this.file.phase;\n    },\n    spec() {\n      const spec = (this.file.params.spec || '').match(/(delete|pause|running)/);\n      return spec && this.phase !== 'PHASE_TYPE_ERROR' ? spec[0] : '';\n    },\n    size() {\n      if (this.taskType === 'file' && this.file.kind === 'drive#folder') return '';\n      return this.file.file_size !== '0' ? formatSize(this.file.file_size || Number(this.file.size)) : '未知大小';\n    },\n    iconLink() {\n      return this.file.icon_link || getIconFromMineType(this.file.mime_type);\n    }\n  },\n  watch: {\n    phase(val, oVal) {\n      if (val !== oVal && val === 'PHASE_TYPE_RUNNING' && this.huddleNum > 0 && this.file.type === USER_DOWNLOAD_URL && !this.isYSvip) {\n        setTimeout(() => this.store.dispatch('checkHuddle', this.file), 1000);\n      }\n    }\n  },\n  methods: {\n    parseTime,\n    formatSize,\n    handleSelect: debounce(async function (e) {\n      if (this.file.kind === 'drive#file') {\n        var _this$file, _this$file$name, _this$file2, _this$file$name2, _this$file3, _this$file4, _this$file5, _this$file6, _this$all$this$filePo, _this$all$this$filePo2;\n        const isVideo = ((_this$file = this.file) === null || _this$file === void 0 || (_this$file = _this$file.mime_type) === null || _this$file === void 0 ? void 0 : _this$file.includes('video')) || isTruePlayFormat((_this$file$name = (_this$file2 = this.file) === null || _this$file2 === void 0 ? void 0 : _this$file2.name) !== null && _this$file$name !== void 0 ? _this$file$name : '');\n        stat({\n          action: 'complete_file_play_btn_click',\n          data: {\n            tab: this.taskType === 'ing' ? 'downloading' : 'complete',\n            type: categorizeByFileExtension(getExtensionFromFilename((_this$file$name2 = (_this$file3 = this.file) === null || _this$file3 === void 0 ? void 0 : _this$file3.name) !== null && _this$file$name2 !== void 0 ? _this$file$name2 : '')),\n            gcid: (_this$file4 = this.file) === null || _this$file4 === void 0 ? void 0 : _this$file4.hash,\n            info_hash: (_this$file5 = this.file) === null || _this$file5 === void 0 || (_this$file5 = _this$file5.params) === null || _this$file5 === void 0 ? void 0 : _this$file5.info_hash,\n            url: (_this$file6 = this.file) === null || _this$file6 === void 0 || (_this$file6 = _this$file6.params) === null || _this$file6 === void 0 ? void 0 : _this$file6.url,\n            task_name: (_this$all$this$filePo = this.all[this.filePopTaskID]) === null || _this$all$this$filePo === void 0 ? void 0 : _this$all$this$filePo.name,\n            task_size: (_this$all$this$filePo2 = this.all[this.filePopTaskID]) === null || _this$all$this$filePo2 === void 0 ? void 0 : _this$all$this$filePo2.file_size,\n            file_name: this.file.name,\n            file_size: this.file.file_size,\n            file_extension: this.file.file_extension\n          }\n        });\n        return this.$store.dispatch('getFileInfo', {\n          id: this.file.id,\n          usage: isVideo ? 2 : 0,\n          theme: 'light',\n          action_from: 'completed',\n          scene: 'download_list'\n        }).then(() => {\n          this.store.commit('update', {\n            showFilePop: false,\n            filePopTaskID: '',\n            parentIds: []\n          });\n        }).catch(() => {\n          if (this.phase === 'PHASE_TYPE_COMPLETE') {\n            toast('打开失败,请检查文件是否存在');\n          } else if (['PHASE_TYPE_RUNNING', 'PHASE_TYPE_PAUSED'].includes(this.phase)) {\n            toast('该任务尚未有已完成下载的文件,请稍后重试');\n          }\n        });\n      } else {\n        this.store.commit('update', {\n          files: []\n        });\n        this.load(this.file);\n      }\n    }, 500, {\n      leading: true,\n      trailing: false\n    })\n  }\n});","/* unplugin-vue-components disabled */import { render } from \"./FilePopItem.vue?vue&type=template&id=3f7bd9c2&scoped=true&ts=true\"\nimport script from \"./FilePopItem.vue?vue&type=script&lang=ts\"\nexport * from \"./FilePopItem.vue?vue&type=script&lang=ts\"\n\nimport \"./FilePopItem.vue?vue&type=style&index=0&id=3f7bd9c2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3f7bd9c2\"]])\n\nexport default __exports__","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, Transition as _Transition, withCtx as _withCtx, createVNode as _createVNode, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\";\nconst _withScopeId = n => (_pushScopeId(\"data-v-3c6720c5\"), n = n(), _popScopeId(), n);\nconst _hoisted_1 = {\n  key: 0,\n  class: \"dialog\"\n};\nconst _hoisted_2 = {\n  class: \"dialog__body\"\n};\nconst _hoisted_3 = {\n  key: 0,\n  class: \"file-pop-list\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n  const _component_FilePopItem = _resolveComponent(\"FilePopItem\");\n  const _component_Spin = _resolveComponent(\"Spin\");\n  return _openBlock(), _createElementBlock(_Fragment, null, [_createVNode(_Transition, {\n    name: \"mask\"\n  }, {\n    default: _withCtx(() => [_ctx.showFilePop ? (_openBlock(), _createElementBlock(\"div\", {\n      key: 0,\n      class: \"cover\",\n      onClick: _cache[0] || (_cache[0] =\n      //@ts-ignore\n      (...args) => _ctx.close && _ctx.close(...args))\n    })) : _createCommentVNode(\"\", true)]),\n    _: 1\n  }), _createVNode(_Transition, {\n    name: \"pop\"\n  }, {\n    default: _withCtx(() => [_ctx.showFilePop ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [_ctx.parentIds.length > 1 ? (_openBlock(), _createElementBlock(\"a\", {\n      key: 0,\n      href: \"javascript:;\",\n      class: \"arrow\",\n      title: \"返回\",\n      onClick: _cache[1] || (_cache[1] =\n      //@ts-ignore\n      (...args) => _ctx.goBack && _ctx.goBack(...args))\n    })) : _createCommentVNode(\"\", true), _ctx.parentIds.length > 2 ? (_openBlock(), _createElementBlock(\"div\", {\n      key: 1,\n      class: \"back-index\",\n      onClick: _cache[2] || (_cache[2] =\n      //@ts-ignore\n      (...args) => _ctx.backHome && _ctx.backHome(...args))\n    }, \" 返回首页 \")) : _createCommentVNode(\"\", true), _ctx.parentIds.length <= 2 ? (_openBlock(), _createElementBlock(\"a\", {\n      key: 2,\n      href: \"javascript:;\",\n      class: \"qh-icon-close\",\n      title: \"关闭\",\n      onClick: _cache[3] || (_cache[3] =\n      //@ts-ignore\n      (...args) => _ctx.close && _ctx.close(...args))\n    })) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", _hoisted_2, [_createElementVNode(\"h2\", {\n      class: _normalizeClass({\n        'more': _ctx.parentIds.length > 1,\n        'deep': _ctx.parentIds.length > 2\n      })\n    }, _toDisplayString(_ctx.parentIds[_ctx.parentIds.length - 1].name), 3), !_ctx.isLoading ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [(_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.files, id => {\n      return _openBlock(), _createBlock(_component_FilePopItem, {\n        id: id,\n        key: id,\n        load: _ctx.loadFunction\n      }, null, 8, [\"id\", \"load\"]);\n    }), 128))])) : _createCommentVNode(\"\", true), _ctx.isLoading ? (_openBlock(), _createBlock(_component_Spin, {\n      key: 1,\n      top: 300\n    })) : _createCommentVNode(\"\", true)])])) : _createCommentVNode(\"\", true)]),\n    _: 1\n  })], 64);\n}","import { defineComponent } from 'vue';\nimport { mapState, mapGetters, useStore } from 'vuex';\nimport FilePopItem from '@remote/components/FilePopItem.vue';\nimport Spin from '@remote/components/Spin.vue';\nimport { disableCloseOnBack, enableCloseOnBack } from '@remote/router';\n// import router from '@remote/router'\nexport default defineComponent({\n  components: {\n    FilePopItem,\n    Spin\n  },\n  setup() {\n    return {\n      store: useStore()\n    };\n  },\n  data() {\n    return {\n      isLoading: false\n    };\n  },\n  computed: {\n    ...mapState(['showFilePop', 'filePopTaskID', 'files', 'all', 'parentIds']),\n    ...mapGetters(['curList']),\n    fileList() {\n      const list = this.files.map(id => this.all[id]);\n      return list;\n    }\n  },\n  watch: {\n    showFilePop(val) {\n      // 这里是为了达到点击返回(后退)键,能够关闭弹窗\n      const closeAndRemovePopStateListener = () => {\n        window.removeEventListener('popstate', closeAndRemovePopStateListener);\n        enableCloseOnBack();\n        this.close();\n      };\n      if (val) {\n        history.pushState({}, '', location.pathname);\n        disableCloseOnBack();\n        window.addEventListener('popstate', closeAndRemovePopStateListener);\n      }\n    }\n  },\n  mounted() {},\n  methods: {\n    close() {\n      this.store.commit('update', {\n        showFilePop: false,\n        parentIds: [],\n        filePopTaskID: ''\n      });\n    },\n    async loadFunction(file) {\n      this.isLoading = true;\n      try {\n        await this.store.dispatch('getFiles', {\n          parent_id: file.id,\n          name: file.name\n        });\n        this.isLoading = false;\n      } catch (error) {\n        console.log(error);\n        this.isLoading = false;\n      }\n    },\n    async goBack() {\n      const parent_id = this.parentIds[this.parentIds.length - 2].id;\n      await this.store.dispatch('getFiles', {\n        parent_id,\n        isBack: true\n      });\n    },\n    async backHome() {\n      const parent_id = this.parentIds[0].id;\n      await this.store.dispatch('getFiles', {\n        parent_id,\n        isBackHome: true\n      });\n    }\n  }\n});","/* unplugin-vue-components disabled */import { render } from \"./FilePop.vue?vue&type=template&id=3c6720c5&scoped=true&ts=true\"\nimport script from \"./FilePop.vue?vue&type=script&lang=ts\"\nexport * from \"./FilePop.vue?vue&type=script&lang=ts\"\n\nimport \"./FilePop.vue?vue&type=style&index=0&id=3c6720c5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3c6720c5\"]])\n\nexport default __exports__","import \"core-js/modules/es.array.push.js\";\nimport { defineComponent as _defineComponent } from 'vue';\nimport { vShow as _vShow, createVNode as _createVNode, withDirectives as _withDirectives, unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\";\nconst _hoisted_1 = {\n  class: \"toast\"\n};\nimport { computed, onMounted, watch, onBeforeMount } from 'vue';\nimport { RouterView } from 'vue-router';\nimport { DEVICE_NAME_MAP, MAX_DEVICE_ONLINE_NUM, STAND_AUTH_PROCESS_PATH_ENV } from '@remote/constant';\nimport Dialog from '@remote/components/Dialog.vue';\nimport Header from '@remote/components/HeaderPlus.vue';\nimport HuddlePop from '@remote/components/HuddlePop.vue';\nimport FooterBar from '@remote/components/FooterBar.vue';\nimport FilePop from '@remote/components/FilePop.vue';\n/* import ReloadPrompt from '@remote/components/ReloadPrompt.vue' */\nimport { getLocalValue, isInXunleiApp, nativeCall, newToast, setLocalValue, stringifySearch } from '@remote/utils';\nimport global from '@remote/store/constantStore';\nimport { useAuth } from '@remote/composable/auth';\nimport sso, { getSSOUser, safeSSOInit } from '@remote/utils/sso';\nimport { useEnvStore } from '@remote/store/env';\nimport { isAndroidNative, isIOSNative, sendMessage } from '@xunlei/universal-native-api';\nimport { store } from '@remote/store';\nimport { stat } from '@remote/utils/stat';\nimport { flowHubInstance } from '@remote/api/flowhub';\nimport router from '@remote/router';\nimport { useHeziStore } from '@remote/store/hezi';\n// import { safeJSONParse } from '@shared/utils'\nimport { useDeviceStore } from '@remote/store/device';\nimport { nextTick } from 'vue';\nimport { VipVasType, useUserStore } from '@remote/store/user';\nimport { openPopCinemaDetail, openCinemaSourceSetting, openDialogDeviceLimitExceeded, openDeviceList, openDialogCooperationExpires } from '@remote/utils/dialog';\nimport { useCooperation } from '@shared/composable/cooperation';\nexport default /*#__PURE__*/_defineComponent({\n  __name: 'index',\n  setup(__props) {\n    const envStore = useEnvStore();\n    const dialog = computed(() => {\n      return store.state.dialog;\n    });\n    const toast = computed(() => {\n      return store.state.toast;\n    });\n    const action = computed(() => {\n      return store.state.action;\n    });\n    const queryAuth = computed(() => {\n      return {\n        ...store.state.queryAuth,\n        scope: envStore.scope\n      };\n    });\n    const privilegeAuth = computed(() => {\n      return store.state.privilegeAuth;\n    });\n    const isNative = computed(() => {\n      return store.state.isNative;\n    });\n    const show = computed(() => {\n      return dialog.value.show;\n    });\n    const showHead = computed(() => {\n      return ['home', 'me', 'plugin', 'login'].includes(router.currentRoute.value.name);\n    });\n    const deviceStore = useDeviceStore();\n    const target = computed(() => {\n      var _deviceStore$currentD, _deviceStore$currentD2;\n      return (_deviceStore$currentD = (_deviceStore$currentD2 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD2 === void 0 || (_deviceStore$currentD2 = _deviceStore$currentD2.runnerTaskRef.params) === null || _deviceStore$currentD2 === void 0 ? void 0 : _deviceStore$currentD2.target) !== null && _deviceStore$currentD !== void 0 ? _deviceStore$currentD : '';\n    });\n    const watchDeviceExceedLimit = () => {\n      const watchStopHandler = watch(() => deviceStore.runnerList, newList => {\n        // 判断是否需要展示设备数量超出限制弹窗\n        if (store.state.fromSpace) {\n          const t = newList.filter(task => task.phase === 'PHASE_TYPE_RUNNING').length;\n          if (t >= MAX_DEVICE_ONLINE_NUM) {\n            var _newList$find;\n            // 超出数量限制时,runner不会创建,所以要么找不到相同space的runner,要么找得到runner但是phase不是running\n            if (!(newList && ((_newList$find = newList.find(v => {\n              var _v$params;\n              return ((_v$params = v.params) === null || _v$params === void 0 ? void 0 : _v$params.target) === store.state.fromSpace;\n            })) === null || _newList$find === void 0 ? void 0 : _newList$find.phase) === 'PHASE_TYPE_RUNNING')) {\n              stat({\n                action: 'reconnect_device_page_show',\n                data: {\n                  errorcode: 'over_limit_num'\n                }\n              });\n              store.commit('update', {\n                showLoader: false\n              });\n              watchStopHandler(); // 停止监听\n              openDialogDeviceLimitExceeded({});\n              return;\n            }\n          }\n        }\n      });\n    };\n    const filterDevice = deviceMap => {\n      let toBeFilter = Array.from(deviceMap);\n      // 在PC中时,要过滤掉自己。\n      if (envStore.isInPC) {\n        toBeFilter = toBeFilter.filter(i => {\n          var _i$;\n          return ((_i$ = i[1]) === null || _i$ === void 0 || (_i$ = _i$.runnerTaskRef) === null || _i$ === void 0 || (_i$ = _i$.params) === null || _i$ === void 0 ? void 0 : _i$.platform) !== 'pcxllite';\n        });\n      }\n      // 不在海康环境中时要过滤掉海康设备\n      // if (platformPath !== 'hik') {\n      //   toBeFilter = toBeFilter.filter(i => i[1]?.runnerTaskRef?.params?.platform !== 'hiksemi')\n      // }\n      // 2024-11-04 绿联设备取消手雷中展示的限制\n      // 不在绿联环境中时要过滤掉绿联设备\n      // if (platformPath !== 'ugreen' && platformPath !== 'new-ugreen') {\n      //   toBeFilter = toBeFilter.filter(i => i[1]?.runnerTaskRef?.params?.platform !== 'ugreen')\n      // }\n      return new Map(toBeFilter);\n    };\n    const watchRunnerUtilDeviceOnline = () => {\n      // 创建一个watcher,监听deviceMap的变化,当有设备上线时,切换到该设备\n      const unwatch = watch(deviceStore.deviceMap, newMap => {\n        const filteredDeviceMap = filterDevice(newMap);\n        for (const i of filteredDeviceMap) {\n          if (i[1].runnerTaskRef.phase === 'PHASE_TYPE_RUNNING') {\n            deviceStore.changeCurrentDevice(i[0]);\n            unwatch();\n            newToast({\n              message: '检测到有设备上线,已自动切换到该设备'\n            });\n            break;\n          }\n        }\n      }, {\n        immediate: true\n      });\n    };\n    /**\n     * 选择默认设备\n     * 在第一次调用deviceStore.pollRunnerList之后调用\n     * 优先级P0: 使用url中指定的space\n     * 优先级P1: 使用本地缓存,且该设备在线\n     * 优先级P2: 取第一个在线设备\n     * 优先级P3: 使用本地缓存,且该设备离线\n     * 优先级P4(兜底): 使用第一个设备\n     */\n    const selectDefaultDeviceSpace = () => {\n      var _cachedDeviceRunner$p, _filteredDeviceMap$ge;\n      const cachedDeviceRunner = getLocalValue('curDeviceRunner');\n      const cachedSpace = cachedDeviceRunner === null || cachedDeviceRunner === void 0 || (_cachedDeviceRunner$p = cachedDeviceRunner.params) === null || _cachedDeviceRunner$p === void 0 ? void 0 : _cachedDeviceRunner$p.target;\n      const deviceMap = deviceStore.deviceMap;\n      const filteredDeviceMap = filterDevice(deviceMap);\n      // 优先级P0: 使用url中指定的space\n      if (envStore.space) {\n        console.log('[默认设备]使用url中指定的space', envStore.space);\n        return envStore.space;\n      }\n      // 优先级P1: 使用本地缓存,且该设备在线\n      if (cachedSpace && filteredDeviceMap.has(cachedSpace) && ((_filteredDeviceMap$ge = filteredDeviceMap.get(cachedSpace)) === null || _filteredDeviceMap$ge === void 0 ? void 0 : _filteredDeviceMap$ge.runnerTaskRef.phase) === 'PHASE_TYPE_RUNNING') {\n        console.log('[默认设备]使用本地缓存(在线)', cachedSpace);\n        return cachedSpace;\n      }\n      // 优先级P2: 取第一个在线设备\n      for (const i of filteredDeviceMap) {\n        if (i[1].runnerTaskRef.phase === 'PHASE_TYPE_RUNNING') {\n          console.log('[默认设备]取第一个在线设备', i[0]);\n          return i[0];\n        }\n      }\n      // 此时已无在线设备\n      // 优先级P3: 使用本地缓存,且该设备离线\n      if (cachedSpace && filteredDeviceMap.has(cachedSpace)) {\n        // 优先级P4: 取第一个设备(最近在线)\n        // 使用本地缓存,且该设备已离线线\n        console.log('[默认设备]使用本地缓存(离线)', cachedSpace);\n        return cachedSpace;\n      }\n      // 优先级P4(兜底): 使用第一个设备\n      watchRunnerUtilDeviceOnline();\n      console.log('[默认设备]取第一个设备', filteredDeviceMap.keys().next().value);\n      return filteredDeviceMap.keys().next().value;\n    };\n    // 兼容性:监听更新原来store里的curDeviceRunner\n    watch(() => {\n      var _deviceStore$currentD3;\n      return (_deviceStore$currentD3 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD3 === void 0 ? void 0 : _deviceStore$currentD3.runnerTaskRef;\n    }, val => {\n      var _val$params;\n      store.commit('update', {\n        checking: false,\n        connecting: false,\n        loading: false,\n        space: val === null || val === void 0 || (_val$params = val.params) === null || _val$params === void 0 ? void 0 : _val$params.target,\n        curDeviceRunner: val\n      });\n    });\n    const {\n      checkIsShowCooperationDialog\n    } = useCooperation({\n      getDeviceInfo: () => {\n        var _deviceStore$currentD4, _deviceStore$currentD5;\n        return (_deviceStore$currentD4 = (_deviceStore$currentD5 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD5 === void 0 ? void 0 : _deviceStore$currentD5.deviceInfoRef) !== null && _deviceStore$currentD4 !== void 0 ? _deviceStore$currentD4 : {};\n      },\n      openDialogCooperationExpires: openDialogCooperationExpires\n    });\n    // 兼容性:监听更新原来store里的deviceInfoWatchData\n    watch(() => {\n      var _deviceStore$currentD6;\n      return (_deviceStore$currentD6 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD6 === void 0 ? void 0 : _deviceStore$currentD6.deviceInfoRef;\n    }, val => {\n      store.commit('update', {\n        deviceInfoWatchData: val\n      });\n      checkIsShowCooperationDialog();\n    });\n    /**\n     * 监听设备列表,如果没有在线设备,\n     */\n    watch(deviceStore.deviceMap, val => {\n      if (Array.from(val.values()).every(i => i.runnerTaskRef.phase !== 'PHASE_TYPE_RUNNING')) {\n        watchRunnerUtilDeviceOnline();\n      }\n    });\n    const userStore = useUserStore();\n    const bodyClass = computed(() => {\n      var _router$currentRoute$, _deviceStore$currentD7;\n      // 片库黑色\n      if (['cinema', 'OAuthCallback', 'cinema-source'].includes((_router$currentRoute$ = router.currentRoute.value.name) !== null && _router$currentRoute$ !== void 0 ? _router$currentRoute$ : '')) {\n        return 'is-dark';\n      }\n      // 除片库、下载、小工具、我的、登录以外,都是白色\n      if (!['home', 'plugin', 'me', 'login'].includes(String(router.currentRoute.value.name))) {\n        return 'is-menu';\n      }\n      const cacheIsVip = getLocalValue('isVip');\n      if (!userStore.hasInit && cacheIsVip !== null) {\n        return cacheIsVip === 'true' ? 'is-vip' : 'is-normal';\n      }\n      if (userStore.vipType === VipVasType.normal || !store.getters.isVip || !((_deviceStore$currentD7 = deviceStore.currentDeviceRef) !== null && _deviceStore$currentD7 !== void 0 && (_deviceStore$currentD7 = _deviceStore$currentD7.deviceInfoRef.user) !== null && _deviceStore$currentD7 !== void 0 && (_deviceStore$currentD7 = _deviceStore$currentD7.vip) !== null && _deviceStore$currentD7 !== void 0 && _deviceStore$currentD7.is_vip)) {\n        return 'is-normal';\n      }\n      return 'is-vip';\n    });\n    const nativeCallConfigNav = bodyClass => {\n      const colorMap = {\n        'is-dark': '#16181E',\n        'is-normal': '#DFF1FF',\n        'is-menu': '#FFFFFF',\n        'is-vip': '#FEE8C5'\n      };\n      nativeCall('configNav', false, '迅雷下载', colorMap[bodyClass]);\n      if (isAndroidNative) {\n        sendMessage({\n          platform: 'android',\n          name: 'xlSetActionBar',\n          params: {\n            statusBarLightMode: val !== 'is-dark'\n          }\n        }, {\n          noCallback: true\n        });\n      }\n    };\n    watch(bodyClass, val => {\n      document.body.classList.remove('is-dark');\n      document.body.classList.remove('is-normal');\n      document.body.classList.remove('is-vip');\n      document.body.classList.remove('is-menu');\n      document.body.classList.add(val);\n      nativeCallConfigNav(val);\n    }, {\n      immediate: true\n    });\n    const checkHezi = async () => {\n      const deviceList = deviceStore.runnerList;\n      if (!(deviceList !== null && deviceList !== void 0 && deviceList.length) || deviceList.filter(task => task.phase === 'PHASE_TYPE_RUNNING').length === 0) {\n        // 没有在线设备的时候检查一下盒子在线状态\n        // 测试环境不请求的原因是会把登录态踢掉\n        if (store.getters.isLogin) {\n          // 只检查一次\n          try {\n            // 没有找过盒子设备\n            const heziStore = useHeziStore();\n            await heziStore.getHezi();\n            // haveLookUpHeziDevice = true\n            if (Number(heziStore.heziDeviceList.length) > 0) {\n              const firstHeziDevice = heziStore.heziDeviceList[0];\n              heziStore.jumpToHezi(firstHeziDevice.id);\n            }\n          } catch (e) {\n            console.error('getHeziDeviceList error', e);\n          }\n        }\n      }\n    };\n    const startRunner = async () => {\n      var _deviceStore$currentD8;\n      await deviceStore.pollRunnerList(12);\n      const defaultSpace = selectDefaultDeviceSpace();\n      if (defaultSpace) {\n        deviceStore.changeCurrentDevice(defaultSpace);\n      }\n      setLocalValue('curDeviceRunner', (_deviceStore$currentD8 = deviceStore.currentDeviceRef) === null || _deviceStore$currentD8 === void 0 ? void 0 : _deviceStore$currentD8.runnerTaskRef);\n      watchDeviceExceedLimit(); //TODO: 测试设备数超出限制逻辑\n      store.commit('update', {\n        haveRequestedRunner: true\n      });\n      nextTick(() => {\n        store.dispatch('getTasks');\n      });\n      window.deviceStore = deviceStore;\n      if (isInXunleiApp() || envStore.isInPC || envStore.isInMac) {\n        checkHezi();\n      }\n    };\n    /**\n     * 处理url中传入参数的不同行为\n     */\n    const handleQueryAction = async query => {\n      if (query.nfo_id) {\n        openPopCinemaDetail({\n          nfo: {\n            scrape_result: {\n              id: Number(query.nfo_id)\n            }\n          },\n          from: 'url_redirect'\n        });\n        return;\n      }\n      if (query.pop === 'source-setting') {\n        openCinemaSourceSetting({\n          from: 'url_redirect'\n        });\n        return;\n      }\n      if (query.pop === 'device-list') {\n        var _router$currentRoute$2;\n        const isLogin = await safeSSOInit();\n        if (!isLogin) return;\n        // 去掉pop参数\n        router.push({\n          name: (_router$currentRoute$2 = router.currentRoute.value.name) !== null && _router$currentRoute$2 !== void 0 ? _router$currentRoute$2 : 'home',\n          query: {\n            ...router.currentRoute.value.query,\n            pop: ''\n          }\n        });\n        setTimeout(() => {\n          openDeviceList({\n            actionFrom: 'url_action'\n          });\n        }, 500);\n        return;\n      }\n    };\n    const checkIsBindAndIsLogin = async () => {\n      try {\n        const {\n          pathEnv\n        } = useEnvStore();\n        let authResult = {};\n        if (STAND_AUTH_PROCESS_PATH_ENV.includes(pathEnv)) {\n          // 如果厂商提供了H5直接调用到套件的穿透接口(如华为),可以选择走下面的 auth 流程来处理绑定的流程。\n          const {\n            auth\n          } = useAuth();\n          const [isDeviceLogin, result] = await auth();\n          authResult = result;\n          console.log('isDeviceLogin, authResult', isDeviceLogin, authResult);\n        }\n        const query = {\n          ...authResult,\n          ...router.currentRoute.value.query\n        };\n        handleQueryAction(query);\n        let isChanged = false;\n        // user_code, client_id是从账号页面登录成功跳转回来时会带上的参数\n        const isBind = (query === null || query === void 0 ? void 0 : query.user_code) && (query === null || query === void 0 ? void 0 : query.client_id); // 进入绑定\n        const isLogin = await store.dispatch('login', {\n          checkRunner: !isBind\n        });\n        console.log('isBind', isBind);\n        if (!isLogin) {\n          if ((query === null || query === void 0 ? void 0 : query.auto_login) === '1') {\n            await sso.signIn();\n            return;\n          }\n          if (!['/close', '/oauth-callback'].includes(router.currentRoute.value.path)) {\n            router.replace({\n              path: '/login',\n              query: {\n                ...query,\n                ...authResult\n              }\n            });\n          }\n        } else {\n          // Why?\n          if (query.scope) {\n            query.code && delete query.code;\n            query.scope && delete query.scope;\n            query.expires_in && delete query.expires_in;\n            query.state && delete query.state;\n            isChanged = true;\n          }\n          if (isBind) {\n            query.user_code = query.user_code.replace(/\\#\\//, '');\n            const newQueryAuth = Object.assign({}, queryAuth.value, {\n              user_code: query.user_code,\n              client_id: query.client_id\n            });\n            store.commit('update', {\n              queryAuth: newQueryAuth\n            });\n            delete query.user_code;\n            delete query.client_id;\n            isChanged = true;\n            bindDevice(newQueryAuth);\n          } else {\n            // 登录成功\n            // 如果走绑定流程,会在getRunner之后开始请求\n            setTimeout(async () => {\n              // await store.dispatch('getDeviceInfoWatch')\n              stat({\n                action: 'connect_success_page_show'\n              });\n            }, 2000);\n            // await store.dispatch('checkPrivilegeAuth')\n            const envStore = useEnvStore();\n            if (envStore.userID && envStore.userID !== global.userId) {\n              var _authResult;\n              store.commit('update', {\n                deleteCompletely: false\n              });\n              const State = store.state;\n              const user = State.Users.all[query.user_id] || {};\n              const name = ((_authResult = authResult) === null || _authResult === void 0 ? void 0 : _authResult.name) || query.nickname || user.nickName || '';\n              // const userID = (authResult as API_DEVICE.UserInfo)?.id || global.user_id || query.user_id || ''\n              // logout2 为要求退出登陆,区分action以避免在个人页面中的退出两遍\n              store.commit('dialog', {\n                show: true,\n                title: isNative.value ? '登录状态提示' : '登录失败',\n                tip: `当前设备已经登录其他迅雷帐号,账号昵称【${name}】,您可以切换为该迅雷帐号进行下载管理(退出当前帐号后登录该帐号)`,\n                okTxt: '切换帐号',\n                cancelTxt: '',\n                action: 'logout2',\n                cancel: 'logout2'\n              });\n            } else {\n              startRunner();\n            }\n          }\n          // 去掉多余参数\n          // TODO: 这种方式会导致返回时会恢复这些参数\n          isChanged && setTimeout(() => window.history.replaceState(null, '', stringifySearch(query)), 1000);\n        }\n      } catch (e) {\n        console.error(e);\n      }\n    };\n    const bindDevice = async queryAuth => {\n      const data = await store.dispatch('deviceAuthorize', {\n        ...queryAuth,\n        state: 'WAITING_CONSENT'\n      });\n      console.log(data);\n      if (data && data.browser) {\n        let name = '';\n        if (!isAndroidNative && !isIOSNative) {\n          var _await$getSSOUser$nic;\n          name = (_await$getSSOUser$nic = (await getSSOUser()).nickName) !== null && _await$getSSOUser$nic !== void 0 ? _await$getSSOUser$nic : ''; // 取了个nickname\n        } else {\n          var _store$state$user$nic, _store$state;\n          name = (_store$state$user$nic = (_store$state = store.state) === null || _store$state === void 0 || (_store$state = _store$state.user) === null || _store$state === void 0 ? void 0 : _store$state.nickName) !== null && _store$state$user$nic !== void 0 ? _store$state$user$nic : '';\n        }\n        store.commit('dialog', {\n          show: true,\n          title: '确定登录',\n          tip: `账号【${name}】即将登录${data.address}的${DEVICE_NAME_MAP.get(data.browser) || ''}设备`,\n          okTxt: '确定',\n          cancelTxt: '取消',\n          action: 'authOk',\n          cancel: 'authCancel',\n          showLoader: true\n        });\n      } else {\n        if ((data === null || data === void 0 ? void 0 : data.error_description) === 'risk account') {\n          store.commit('dialog', {\n            show: true,\n            title: '登录失败',\n            tip: '账号存在风险,登录授权失败,请前往迅雷个人中心(i.xunlei.com)自助解封',\n            okTxt: '确定并退出',\n            action: 'close'\n          });\n        } else {\n          store.commit('dialog', {\n            show: true,\n            title: '登录超时',\n            tip: '迅雷登录授权已过期,请退出迅雷后重新打开',\n            okTxt: '确定并退出',\n            action: 'close'\n          });\n        }\n      }\n    };\n    const handleAuth = async () => {\n      var _router$currentRoute$3;\n      const data = await store.dispatch('deviceAuthorize', {\n        ...queryAuth.value,\n        state: 'ACCOMPLISHED'\n      });\n      store.commit('dialog', {\n        show: false\n      });\n      if (((_router$currentRoute$3 = router.currentRoute.value.query) === null || _router$currentRoute$3 === void 0 ? void 0 : _router$currentRoute$3.privilege) === 'PAN_CLI_PREVIEW') {\n        handleCheck();\n      } else {\n        handleRunner();\n      }\n      store.commit('dialog', {\n        show: false,\n        action: '',\n        cancel: '',\n        showLoader: false\n      });\n    };\n    const handleCheck = async () => {\n      await store.dispatch('checkPrivilegeAuth');\n      if (privilegeAuth.value) {\n        handleRunner();\n      } else {\n        store.commit('dialog', {\n          show: false,\n          cancelTxt: ''\n        });\n        setTimeout(() => {\n          store.commit('dialog', {\n            show: true,\n            title: '请在NAS设备输入内测邀请码',\n            tip: '该版本仅为Beta版不代表最终上线品质,目前采用邀请制,拥有内测邀请码才可以参与内测',\n            okTxt: '确认',\n            action: 'check',\n            showLoader: false\n          });\n          store.commit('update', {\n            showLoader: false\n          });\n        }, 1000);\n      }\n    };\n    const handleRunner = async () => {\n      setTimeout(async () => {\n        // H5主界面展示(用户有登录NAS且绑定设备后才上报)\n        stat({\n          action: 'mobile_homepage_show'\n        });\n        const {\n          pathEnv\n        } = useEnvStore();\n        if (STAND_AUTH_PROCESS_PATH_ENV.includes(pathEnv)) {\n          const {\n            updateAuthStatus\n          } = useAuth();\n          await updateAuthStatus();\n        }\n        const envStore = useEnvStore();\n        if (!envStore.hasPopDeviceLimitExceededShown && global.error_message === '超过同时登录设备上限') {\n          envStore.hasPopDeviceLimitExceededShown = true;\n          openDialogDeviceLimitExceeded({});\n        }\n        store.commit('Devices/set', global.fromSpace);\n        startRunner();\n        // setTimeout(() => store.dispatch('getDeviceInfoWatch'), 2000)\n      }, 3000);\n    };\n    const handleAuthCancel = async () => {\n      store.commit('dialog', {\n        show: false,\n        tip: '',\n        more: ''\n      });\n      await store.dispatch('deviceAuthorize', {\n        ...queryAuth.value,\n        state: 'ACCESS_DENIED'\n      });\n      store.dispatch('logout', true);\n    };\n    watch(action, val => {\n      if (val === 'authOk') handleAuth();else if (val === 'authCancel') handleAuthCancel();else if (val === 'logout2' || val === 'close') {\n        if (isNative.value) {\n          store.dispatch('close');\n        } else {\n          store.dispatch('logout', true);\n        }\n      } else if (val === 'check') store.commit('dialog', {\n        show: false\n      });\n    });\n    watch(target, val => {\n      if (val && router.currentRoute.value.name !== 'login') {\n        flowHubInstance.getFlowHubSlots('POSITION_CINEMA_EMPTY');\n      }\n    });\n    const needExtraHeaderPadding = () => {\n      if (isAndroidNative) {\n        return true;\n      }\n      return false;\n    };\n    let isPageShowEventListenerAttached = false;\n    onBeforeMount(() => {\n      if (!isPageShowEventListenerAttached) {\n        // 因为safari浏览器上有page cache,后退的时候不会触发onload事件,所以需要监听pageshow事件,重新设置nav\n        window.addEventListener('pageshow', () => {\n          nativeCallConfigNav(bodyClass.value);\n        });\n        isPageShowEventListenerAttached = true;\n      }\n    });\n    onMounted(async () => {\n      checkIsBindAndIsLogin();\n      await userStore.getUser();\n      setLocalValue('isVip', userStore.isVip);\n      if (needExtraHeaderPadding()) {\n        document.body.classList.add('is-extra-header-padding');\n      }\n    });\n    return (_ctx, _cache) => {\n      return _openBlock(), _createElementBlock(_Fragment, null, [_withDirectives(_createVNode(Header, null, null, 512), [[_vShow, showHead.value]]), _createVNode(_unref(RouterView), {\n        \"keep-alive\": \"\"\n      }), _createVNode(FooterBar), _createVNode(FilePop), _withDirectives(_createVNode(Dialog, null, null, 512), [[_vShow, show.value]]), _createVNode(HuddlePop), _withDirectives(_createElementVNode(\"div\", _hoisted_1, [_createElementVNode(\"span\", null, _toDisplayString(toast.value.message), 1)], 512), [[_vShow, toast.value.message]])], 64);\n    };\n  }\n});","/* unplugin-vue-components disabled */import script from \"./index.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./index.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./index.vue?vue&type=style&index=0&id=45125fb2&lang=css\"\n\nconst __exports__ = script;\n\nexport default __exports__","module.exports = __webpack_public_path__ + \"img/huddle-pop@3x.png\";","module.exports = __webpack_public_path__ + \"img/meet-download-icon@3x.svg\";","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./Loader.vue?vue&type=style&index=0&id=05f2b937&lang=scss&scoped=true\"","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./Spin.vue?vue&type=style&index=0&id=3b9d62ba&lang=scss&scoped=true\"","import { openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\";\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b9d62ba\"), n = n(), _popScopeId(), n);\nconst _hoisted_1 = {\n  key: 0,\n  class: \"cover\"\n};\nexport function render(_ctx, _cache, $props, $setup, $data, $options) {\n  return _openBlock(), _createElementBlock(_Fragment, null, [_ctx.showCover ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1)) : _createCommentVNode(\"\", true), _createElementVNode(\"div\", {\n    class: \"loading\",\n    style: _normalizeStyle({\n      top: _ctx.top + 'px'\n    })\n  }, [_createElementVNode(\"div\", {\n    class: \"loading__image\",\n    style: _normalizeStyle({\n      height: _ctx.size + 'px',\n      width: _ctx.size + 'px'\n    })\n  }, null, 4)], 4)], 64);\n}","import { defineComponent } from 'vue';\nexport default defineComponent({\n  props: {\n    size: {\n      type: Number,\n      default: 30\n    },\n    top: {\n      type: Number,\n      default: 0\n    },\n    showCover: {\n      type: Boolean,\n      default: false\n    }\n  },\n  setup() {\n    return {};\n  }\n});","/* unplugin-vue-components disabled */import { render } from \"./Spin.vue?vue&type=template&id=3b9d62ba&scoped=true&ts=true\"\nimport script from \"./Spin.vue?vue&type=script&lang=ts\"\nexport * from \"./Spin.vue?vue&type=script&lang=ts\"\n\nimport \"./Spin.vue?vue&type=style&index=0&id=3b9d62ba&lang=scss&scoped=true\"\n\nimport exportComponent from \"/var/static/node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-3b9d62ba\"]])\n\nexport default __exports__","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./HeaderPlus.vue?vue&type=style&index=0&id=44627cbf&lang=scss\"","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./FilePop.vue?vue&type=style&index=0&id=3c6720c5&lang=scss&scoped=true\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAAEi6oPRAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAASKADAAQAAAABAAAASAAAAACQMUbvAAAC1UlEQVR4Ae2b0VLCMBRExb9U3wRf4CPUfxBfBN/UvxSzDMtkYm/amzStMtsZ59LmZrs5TZM24NXVfNvL28eBZ9++fTzx86+IxDgZCde/svoOZE/RV/nflB8Oh0XWbH1CVl6FlQTijo5rFe+7pZsIVDlyN0EVRKAFge3uc5/q5np2dsKJxSCyWd2a+dnhmULhxr2HyGKxOM+RqVvzDEgMlZcQCQLvORHkZoXi5tAdKrk2iGAsYiUIFYnFIrEYPyuKgAiIwAUTOA+iQ9uIgZZTAaaFrnoYV0PeN8r65p20vtsQBbqM1RihbrEhCtAY971EWI8xO8EyyYoggsuHcszmiK/7rx1i6VZEKHdpSAwGrT6WM+sylDOSnqTWWKqnfREQAREQAREQAREQAREoIIAvo9JFMUsGj7DItcqt4663jvXq9hlC4WTfeL62ROPnaSvHOm6KWhX6HvRjM83fOmjSMlVrBvpuQpYpvCAGo8fl3xIy1C02BIGYFPZLXw5Rl5urU7MSIxbC+QqNY+vlzYplpbHKUNxnYCDsZ+++ISaLDcVm0GfC31Gr1lRRH0rNsOVxn4JBXFKWDY1uQ5YZnrDWlOuS9ZmBKVCJLx+NNoswNUT8SCr3W48hIsoRAREQAREQAREQAREQAREQAREQAREQAREQgcskgK+NTut/7kVMi8hp8XI/xf9HjWa6qzFcGGUZVvqxwl+yRAwNgOH3KLEm1sa5P3ZsCghmrUZ5QI2hUQquOSAaK2lkSR2eb6w4GSAaHtLoITnUax0nB8QGWRBQHsrumVc7blGnNM4GiIa7QKFsbjD0NysgC87ZXOWsR52aOAugLjDsMWhM11TumfVqgKR1JwWUA5M+G3ly00aNuT8JoJrG1tQdA1RTQGM2bkwtD7imgPCuFH528ghDHGPSW8ljFrkpqNCA583D3ZNXR/kiIAIiIAIiIAIiIAIiIAIiIAJ/l8APJTVW/4ddBbcAAAAASUVORK5CYII=\"","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./FooterBar.vue?vue&type=style&index=0&id=8eaeab62&lang=scss&scoped=true\"","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./FilePopItem.vue?vue&type=style&index=0&id=3f7bd9c2&lang=scss&scoped=true\"","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./HuddlePop.vue?vue&type=style&index=0&id=990e83a6&lang=scss\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAAGWB6gOAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAJKADAAQAAAABAAAAJAAAAAAqDuP8AAAEMklEQVRYCe1XTYgURxSuanuUWd1ICNOLSDQs4sEVFH8OuUzPDIua1ZmTvzcRF7wEo6AJmENAEhIQQ7yIogcDgcQ9CNOzmmjWnV0lhICCB72sogQRpttdNequO9PT5Xu9qaamp2qmZ0QEtQ/zXr33va++rr+uIaTZU8onWQ1GDGhipmSlV4jtiL5jpXYjVMcfJPeYh+4p/PEfsUcfwRPtWaSroQSamhexreQDTi0CfYU8QTR9O6m6I125URrEXr8j6sHeajQ9Lmz8cNp7OhGWEQjEN2OMLEBAWHgAYoxR2zL9SUAg1chXxqbRH9APxolSygw6fy4G8eEA9AMQNmz25Dmh5N9wd5jzH+jqO2cwtYa3X4sNXi4KO7OyHSgb3vGUkR3pF2siEdl5c4wRtmSmUDvQlSseEUnQVxLZheSXsAO+Fwt0PdbzUd/QLTHG/ZoVgMGHeXNtlbB/ZrYRh81Y160MgNdTG51pKRVh+nGht3vaK98JF1JN+9bYVPxajNcpEpPTrHJTbBvZLp3SgaoY475SEd8FMEPHYIb28oKWLPtrS5wNpxqqbYnwHQLDpj3NJyH82pEHFAgm4bCJwzSfDpNgWzn9HOxYmVUec6/xtuqMqTmQOJjbkmWeE0k0SnM8F7ZSRXheOoVUGWzw6rAwXViYsTABb9cpcgpmGg9dkQTBuq6v5kUyW0cEu/6SDFipVG6UrMw6WQ5jdURGbkSH3b1TWsDcP2D2pmU56RhxYClv3iWEfcLb3Mpmrk4RB6OllIQH966MBLFKokeDmcUw4AsR5D+UHgWSbt4M22B6w4ly1b3HYxrVVyeyl6/ztsxKiRzL7If59/FGpxaj6cuurFiMSYmA5CQswPuwAD8WwS379mAm2XLR+4I3PQLOoLmjZCX/fHg+k4miRbqIohQ2woz/nu5xy9WzgFnmVRke5h6rkoONaniu4RHCQVGsczXX6U08OQFHzg4RD6fHfx3x2NJ5vUMlMa7yX1mQXTA/hz82eAucHe4EtupYottYTnsGyuGcqt2WoHHL/NQl7FfCyCIlMSUXjezoelVeFY8s6On5zxJT7uTPcD/eoCLj8Ve53jVd1HhN9gj7e9J9rvxAcCGBhXWMV0aaLjY9moOa/51II4RTBFfhn+CrtDZM0KwNo2WRGN1vbCjebobFfCRBIpE9nJpHnnmHYBD2EcbmiLlGPuw2lpg1N077LkhvDLy2ZUG8EK2dT/4I384vxFidT8kkJdouI1v8rS4nCTRdQ5IaPwT/sw/Dl1wthpKheDy27YPeoXEVhyze1gjBtfIsrKctEsIpjWr9iWzxF0kuUqglQYx9ozmF4WsgZqXIDgu3GJ/VsbWz74IjxtvxIwuauNQ7v/KiPAaHYcLviNIXIGQP/Jk9007HqprIa6gyVTkOJAkQcSU+e87mzvUXbRXpWxV/CXlsb+LBGGDxAAAAAElFTkSuQmCC\"","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../../node_modules/.pnpm/sass-loader@8.0.2_sass@1.65.1/node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./HeaderPlus.vue?vue&type=style&index=1&id=44627cbf&lang=scss&scoped=true\"","module.exports = __webpack_public_path__ + \"img/speedup.svg\";","let urlAlphabet =\n  'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nexport { urlAlphabet }\n","import { urlAlphabet } from './url-alphabet/index.js'\nlet random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nlet customRandom = (alphabet, defaultSize, getRandom) => {\n  let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n  let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n  return (size = defaultSize) => {\n    let id = ''\n    while (true) {\n      let bytes = getRandom(step)\n      let j = step\n      while (j--) {\n        id += alphabet[bytes[j] & mask] || ''\n        if (id.length === size) return id\n      }\n    }\n  }\n}\nlet customAlphabet = (alphabet, size = 21) =>\n  customRandom(alphabet, size, random)\nlet nanoid = (size = 21) =>\n  crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n    byte &= 63\n    if (byte < 36) {\n      id += byte.toString(36)\n    } else if (byte < 62) {\n      id += (byte - 26).toString(36).toUpperCase()\n    } else if (byte > 62) {\n      id += '-'\n    } else {\n      id += '_'\n    }\n    return id\n  }, '')\nexport { nanoid, customAlphabet, customRandom, urlAlphabet, random }\n","import { store } from '@remote/store'\nimport axios from 'axios'\nimport { nanoid } from 'nanoid'\nimport pkg from '../../package.json'\nimport { xbaseConfig } from '@remote/api/config'\nimport { reactive, ref } from 'vue'\nimport { useEnvStore } from '@remote/store/env'\nimport global from '@remote/store/constantStore'\n\n/**\n * 全局单例\n */\nexport class FlowHub {\n  availableSlotParams = {\n    POSITION_CINEMA_EMPTY: {\n      // 后需更改为md5值,保证长度的一致性\n      id: `${nanoid()}`,\n      slots: [\n        {\n          id: 'nas_remote_personalmovie_middle_banner',\n          accept_source: ['native'],\n          accept_landing_type: ['LANDING_CALL_APP'],\n          accept_style: [\n            'image_above_text_below',\n          ],\n          accept_event: ['EVENT_IMPRESSION', 'EVENT_CLICK'],\n        },\n      ],\n    },\n  }\n\n  // TODO: type\n  slotResult = ref<Record<string, any>>({})\n\n  hosts = ['https://api-shoulei-ssl.xunlei.com', 'https://test-api-shoulei-ssl.xunlei.com']\n  \n  host = this.hosts[0]\n\n  async getFlowHubSlots (slot: (keyof FlowHub['availableSlotParams'])) {\n    const envStore = useEnvStore()\n    const result = await axios.post(`${this.host}/flowhub/v1/slots:batchGet`, {\n      ...this.availableSlotParams[slot],\n    }, {\n      headers: {\n        // 'user-id': store.state.user?.userID ?? '',\n        'x-client-id': xbaseConfig.clientId,\n        'x-peer-id': store.state.curDeviceRunner.target,\n        'x-device-id': global.deviceID,\n      },\n    })\n    if (result.data) {\n      this.slotResult.value[slot] = reactive(result.data)\n    }\n  }\n\n  async reportFlowHub (url: string, params?: Record<string, any>) {\n    // 测试环境兼容\n    if (location.href.startsWith('https') && url.startsWith('http://test.api-shoulei-ssl.xunlei.com')) {\n      url = url.replace('http://test.api-shoulei-ssl.xunlei.com', 'https://test-api-shoulei-ssl.xunlei.com')\n    }\n    axios.get(url, {\n      headers: {\n        // 'user-id': store.state.user?.userID ?? '',\n        'x-client-id': xbaseConfig.clientId,\n        'x-peer-id': store.state.curDeviceRunner.target,\n        'x-device-id': global.deviceID,\n      },\n      params,\n    }).catch()\n  }\n}\n\nexport const flowHubInstance = new FlowHub()","/* unplugin-vue-components disabled */export * from \"-!../../../../node_modules/.pnpm/unplugin@1.4.0/node_modules/unplugin/dist/webpack/loaders/transform.js?unpluginName=unplugin-vue-components!../../../../node_modules/.pnpm/mini-css-extract-plugin@0.9.0_webpack@4.46.0/node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../../node_modules/.pnpm/css-loader@3.6.0_webpack@4.46.0/node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/stylePostLoader.js!../../../../node_modules/.pnpm/postcss-loader@3.0.0/node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../../node_modules/.pnpm/cache-loader@4.1.0_webpack@4.46.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../node_modules/.pnpm/vue-loader@16.8.3_@vue+compiler-sfc@3.3.4_vue@3.3.4_webpack@4.46.0/node_modules/vue-loader/dist/index.js??ref--1-1!./index.vue?vue&type=style&index=0&id=45125fb2&lang=css\"","import { toast, updateGlobalProperties } from '@remote/utils/index'\nimport { captureException } from '@sentry/vue'\nimport { paramsToObject } from '@shared/utils'\n/**\n * 定义一个接口:FactoryRequestFunction,用于使用厂商的接口,调用套件端接口。\n * 后续接入新厂商的时候,只需要根据这个接口实现请求函数即可。\n */\ninterface FactoryRequestFunction {\n  (payload: API_DEVICE.FactoryRequestPayload): Promise<unknown>\n}\n\ninterface DeviceAuthParams {\n  //privilege=PLATFORM_XCLOUD&runner_space=&space=device_id%23d9ebf7685d30b57c8f64449ca694928e&user_code=AWMXCloZAXlx-qLu0g\n  client_id?: string\n  error_message?: string\n  noActionBar?: 'true' | 'false'\n  noStatusBar?: 'true' | 'false'\n  platform?: 'huawei'\n  plm?: 'hw'\n  privilege?: string\n  runner_space?: string\n  space?: string\n  user_code?: string\n}\n\n/**\n * 返回一个函数:使用华为和套件通信的机制,对套件发起请求。\n * 后续接入厂商,可以参考这个实现请求函数,复用认证流程。\n */\nconst useHuaweiRequest = (): FactoryRequestFunction => {\n  const generateRequestID = () => {\n    const timestamp = Date.now() // 当前时间戳\n    const random = Math.floor(Math.random() * 1000000) // 一个6位随机数\n    return `FUNC${timestamp}${random}`\n  }\n  if (window.hdc) { // 华为Android\n    const requestFunction = (payload: API_DEVICE.FactoryRequestPayload): Promise<unknown> => {\n      return new Promise((resolve, reject) => {\n        try {\n          const requestID = generateRequestID()\n          window[requestID] = (resp: string) => {\n            try {\n              const response: { code: number; data?: { response: unknown; pkgName: string; function: string } } = JSON.parse(resp)\n              if (response.code === 0 && response?.data?.response) {\n                resolve(response.data.response)\n                return\n              }\n              reject(new Error('连接设备失败'))\n            } catch (error) {\n              reject(error)\n            }\n          }\n          const stringifiedPayload = JSON.stringify(payload)\n          console.log('payload', payload)\n          window.hdc.getServiceData('com.xunlei.download', stringifiedPayload, requestID)\n        } catch (error) {\n          reject(error)\n        }\n      })\n    }\n    return requestFunction\n  } else if (window?.webkit?.messageHandlers?.hdc) {\n    // 华为 iOS\n    const requestFunction = (payload: API_DEVICE.FactoryRequestPayload): Promise<unknown> => {\n      return new Promise((resolve, reject) => {\n        try {\n          const requestID = generateRequestID()\n          window[requestID] = (resp: { result: { code: number; data?: { response: unknown; pkgName: string; function: string } }}) => {\n            try {\n              const response = resp.result\n              if (response.code === 0 && response?.data?.response) {\n                resolve(response.data.response)\n                return\n              }\n              reject(new Error('连接设备失败'))\n            } catch (error) {\n              reject(error)\n            }\n          }\n          // const stringifiedPayload = JSON.stringify(payload)\n          console.log('payload', payload)\n          window.webkit.messageHandlers.hdc.postMessage({\n            method: 'getServiceData',\n            callback: requestID,\n            id: new Date().getTime(),\n            data: {\n              function: 'com.xunlei.download',\n              body: payload,\n            },\n          })\n        } catch (error) {\n          reject(error)\n        }\n      })\n    }\n    return requestFunction\n  }\n  throw new Error('不在华为环境中: 没有找到hdc对象')\n}\n\n/**\n * 柯里化获取目前设备信息(绑定状态)\n */\nexport const curryGetDeviceStatus = (requestFunc: FactoryRequestFunction) => {\n  return () => requestFunc({\n    method: 'GET',\n    path: '/device/status',\n  }) as Promise<API_DEVICE.DeviceInfo>\n}\n\n/**\n * 柯里化退出设备登录态\n */\nconst currySignOut = (requestFunc: FactoryRequestFunction) => {\n  return (type?: 'relogin') => requestFunc({\n    method: 'POST',\n    path: '/auth/signout',\n    type,\n  }) as Promise<{}>\n}\n\n/**\n * 柯里化获取设备绑定链接\n */\nconst curryGetAuthLink = (requestFunc: FactoryRequestFunction) => {\n  return () => requestFunc({\n    method: 'GET',\n    path: '/auth/login',\n  }) as Promise<{ url?: string }>\n}\n\n/**\n * 柯里化获取入口链接\n */\nconst curryGetEntryLink = (requestFunc: FactoryRequestFunction) => {\n  return () => requestFunc({\n    method: 'GET',\n    path: '/device/control',\n  }) as Promise<{ url?: string }>\n}\n\n\n/**\n * 厂商认证流程\n */\nexport const useAuth = (factory = 'huawei') => {\n  const mapFactoryToRequestComposable: Record<string, () => FactoryRequestFunction> = {\n    huawei: useHuaweiRequest,\n  }\n\n  const updateAuthStatus = async () => {\n    if (mapFactoryToRequestComposable[factory]) {\n      const curRequestFunction = mapFactoryToRequestComposable[factory]()\n      const linkResp = await curryGetEntryLink(curRequestFunction)()\n      console.log('获取控制链接并更新global上的全局属性:', linkResp)\n      if (linkResp.url) {\n        const query = paramsToObject((new URL(linkResp.url).searchParams))\n        updateGlobalProperties(query)\n        if (query?.error_message) {\n          console.error('auth: error_message:', query.error_message)\n          toast(query.error_message)\n        }\n      }\n    }\n  }\n  /**\n   * 认证,绑定迅雷账号和设备 \n   */\n  const auth = async () => {\n    try {\n      if (mapFactoryToRequestComposable[factory]) {\n        const curRequestFunction = mapFactoryToRequestComposable[factory]()\n        // window.signout = async () => {\n        //   await currySignOut(curRequestFunction)()\n        // }\n        const status = await curryGetDeviceStatus(curRequestFunction)()\n        console.log('获取设备登录状态: ', status)\n        if (status?.user?.id) {\n          const linkResp = await curryGetEntryLink(curRequestFunction)()\n          console.log('设备已登录,获取控制链接:', linkResp)\n          if (linkResp.url) {\n            const query = paramsToObject((new URL(linkResp.url).searchParams))\n            updateGlobalProperties(query)\n            if (query.error_message) {\n              console.error('auth: error_message:', query.error_message)\n              toast(query.error_message)\n            }\n          }\n          return [true, status.user] as const // 未登录情况,这里ID应该为'',而不是在其他前端项目更常见的‘0’。因此这个判断是否登录应该是安全的。\n        } \n        const linkResp = await curryGetAuthLink(curRequestFunction)()\n        console.log('设备未登录,获取登录链接:', linkResp)\n        if (linkResp.url) {\n          const authParams = paramsToObject((new URL(linkResp.url).searchParams)) as DeviceAuthParams\n          updateGlobalProperties(authParams)\n          return [false, authParams] as const\n        }\n        throw new Error('Auth: 没有获取到认证链接')\n      }\n      throw new Error('Auth: 没有匹配的厂商请求函数')\n    } catch (error) {\n      toast(`${error.message};请退出后重试`)\n      captureException(error)\n      console.error(error.message)\n      throw new Error('auth failed.')\n    }\n  }\n\n  /**\n   * 解绑设备并重新登录 \n   */\n  const signOut = async (type?: 'relogin') => {\n    if (mapFactoryToRequestComposable[factory]) {\n      const curRequestFunction = mapFactoryToRequestComposable[factory]()\n      await currySignOut(curRequestFunction)(type)\n    }\n    throw new Error('ReLogin: 没有匹配的厂商请求函数.')\n  }\n\n  return {\n    auth,\n    signOut,\n    updateAuthStatus,\n  }\n}\n"],"sourceRoot":""}