{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/views/DamageReport.vue?ddc6","webpack:///./src/components/common/UAppLayout.vue?188d","webpack:///./src/views/DamageReportSK.vue?9766","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/components/AppFooter.vue?309b","webpack:///./src/views/ResetPasswordVerify.vue?8fdc","webpack:///./src/components/AppHeader.vue?5d50","webpack:///./src/components/common/UStrongPassword.vue?8546","webpack:///./src/assets lazy ^\\.\\/.*\\.svg$ namespace object","webpack:///./src/components/LogOutDialog.vue?f057","webpack:///./src/App.vue","webpack:///./src/components/AppHeader.vue","webpack:///./src/components/common/UAppHeader.vue","webpack:///./src/store/ActionTypes.ts","webpack:///./src/store/MutationTypes.ts","webpack:///./src/i18n.ts","webpack:///./src/services/AccountClient.ts","webpack:///./src/dtos/AuthTokenRequestDto.ts","webpack:///./src/model/AuthToken.ts","webpack:///./src/services/TokenClient.ts","webpack:///./src/services/AuthTokenService.ts","webpack:///./src/config/dev.ts","webpack:///./src/config/prod.ts","webpack:///./src/config/test.ts","webpack:///./src/config/local.ts","webpack:///./src/config/index.ts","webpack:///./src/views/ChangePassword.vue","webpack:///./src/dtos/ChangePasswordDto.ts","webpack:///./src/services/SecondFactorClient.ts","webpack:///./src/components/common/UErrorContainer.vue","webpack:///./src/components/common/UErrorContainer.vue?9938","webpack:///./src/components/common/UErrorItem.vue","webpack:///./src/components/common/UErrorItem.vue?fd4c","webpack:///./src/components/common/UStrongPassword.vue","webpack:///./src/validation/StrongPasswordValidator.ts","webpack:///./src/validation/Validators.ts","webpack:///./src/components/common/UStrongPassword.vue?3ae4","webpack:///./src/components/common/UStrongPassword.vue?ce96","webpack:///./src/dtos/AccountDto.ts","webpack:///./src/components/VerificationPrompt.vue","webpack:///./src/components/VerificationPrompt.vue?f6af","webpack:///./src/components/VerificationPrompt.vue?1350","webpack:///./src/dtos/ChangePasswordValidateDto.ts","webpack:///./src/views/ChangePassword.vue?bd28","webpack:///./src/views/ChangePassword.vue?00ee","webpack:///./src/views/ResetPasswordVerify.vue","webpack:///./src/dtos/FinishResetPasswordDto.ts","webpack:///./src/dtos/ResetPasswordDto.ts","webpack:///./src/services/PasswordResetClient.ts","webpack:///./src/dtos/ResetPasswordValidateDto.ts","webpack:///./src/views/ResetPasswordVerify.vue?342a","webpack:///./src/views/ResetPasswordVerify.vue?1bbe","webpack:///./src/views/UserProfile.vue","webpack:///./src/services/BrokerClient.ts","webpack:///./src/components/common/UFloatingLabel.vue","webpack:///./src/components/common/UFloatingLabel.vue?6bad","webpack:///./src/dtos/BrokerDto.ts","webpack:///./src/components/PasswordVerificationPrompt.vue","webpack:///./src/components/PasswordVerificationPrompt.vue?a12c","webpack:///./src/components/PasswordVerificationPrompt.vue?d302","webpack:///./src/services/TilesClient.ts","webpack:///./src/dtos/VerifyEmailUniquenessDto.ts","webpack:///./src/help/GeneralFunction.ts","webpack:///./src/views/UserProfile.vue?2b4c","webpack:///./src/views/UserProfile.vue?f186","webpack:///./src/views/Tiles.vue","webpack:///./src/components/common/UTile.vue","webpack:///./src/dtos/TileCmsDto.ts","webpack:///./src/services/AuditClient.ts","webpack:///./src/dtos/CreateAuditDto.ts","webpack:///./src/components/common/UTile.vue?0637","webpack:///./src/components/common/UTile.vue?d8c1","webpack:///./src/services/ExtraPropertyClient.ts","webpack:///./src/dtos/ExtraPropertyDto.ts","webpack:///./src/components/PasswordExpirationDialog.vue","webpack:///./src/components/PasswordExpirationDialog.vue?ed58","webpack:///./src/components/PasswordExpirationDialog.vue?411b","webpack:///./src/dtos/TilesSequenceDto.ts","webpack:///./src/help/EventBus.ts","webpack:///./src/views/Tiles.vue?be03","webpack:///./src/views/Tiles.vue?1588","webpack:///./src/views/DamageReport.vue","webpack:///./src/views/DamageReport.vue?d78c","webpack:///./src/views/DamageReport.vue?f95b","webpack:///./src/views/DamageReportSK.vue","webpack:///./src/dtos/Agent360Dto.ts","webpack:///./src/services/C360Client.ts","webpack:///./src/views/DamageReportSK.vue?2b36","webpack:///./src/views/DamageReportSK.vue?c78a","webpack:///./src/views/ResetPassword.vue","webpack:///./src/views/ResetPassword.vue?b464","webpack:///./src/views/ResetPassword.vue?15a1","webpack:///./src/views/LogOut.vue","webpack:///./src/views/LogOut.vue?97fb","webpack:///./src/views/LogOut.vue?2e6c","webpack:///./src/types/WebSocketMessageTypes.ts","webpack:///./src/router/index.ts","webpack:///./src/dtos/WebSocketDto.ts","webpack:///./src/model/Message.ts","webpack:///./src/dtos/WebSocketDtoAck.ts","webpack:///./src/help/WebSocketFunctions.ts","webpack:///./src/services/LoginService.ts","webpack:///./src/dtos/InitAppDto.ts","webpack:///./src/services/RecaptchaClient.ts","webpack:///./src/store/index.ts","webpack:///./src/components/common/UAppHeader.vue?0aa0","webpack:///./src/components/common/UAppHeader.vue?35fb","webpack:///./src/components/common/UIconButton.vue","webpack:///./src/components/common/UIcon.vue","webpack:///./src/components/common/UIdleTimer.vue","webpack:///./src/components/common/UIdleTimer.vue?b68b","webpack:///./src/components/common/UIdleTimer.vue?edbf","webpack:///./src/components/common/UIcon.vue?236c","webpack:///./src/components/common/UIcon.vue?e81e","webpack:///./src/components/common/UIconButton.vue?197b","webpack:///./src/components/common/UIconButton.vue?bd44","webpack:///./src/components/AppHeader.vue?cd58","webpack:///./src/components/AppHeader.vue?efcd","webpack:///./src/components/AppFooter.vue","webpack:///./src/components/AppFooter.vue?f086","webpack:///./src/components/AppFooter.vue?36eb","webpack:///./src/components/common/UAppLayout.vue","webpack:///./src/components/common/UAppLayout.vue?8d78","webpack:///./src/components/common/UAppLayout.vue?6018","webpack:///./src/App.vue?3acc","webpack:///./src/App.vue?dfb6","webpack:///./src/components/LogOutDialog.vue","webpack:///./src/components/LogOutDialog.vue?5fc3","webpack:///./src/components/LogOutDialog.vue?971e","webpack:///./src/components/BaseLabel.vue","webpack:///./src/components/BaseLabel.vue?47fe","webpack:///./src/components/BaseLabel.vue?8e54","webpack:///./src/main.ts","webpack:///./src/components/PasswordVerificationPrompt.vue?2d4c","webpack:///./src/components/PasswordExpirationDialog.vue?3186","webpack:///./src/components/VerificationPrompt.vue?b35f","webpack:///./src/views/UserProfile.vue?478b"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","jsonpScriptSrc","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","code","keys","webpackAsyncContext","then","ids","backgroundName","bgName","header","ref","footer","autoZIndex","position","baseZIndex","closable","showHeader","style","visible","pretimeoutDialogIsVissible","label","stayLoggedIn","class","banner","to","image","isMobile","isLoggedIn","firstName","lastName","isImpersonification","showTimer","showLogoutDialogClick","tooltip","toggleMenu","aria-haspopup","aria-controls","model","menuItems","popup","showLogoutDialog","logout","time","ActionTypes","MutationTypes","messages","currentLocale","find","str","includes","navigator","language","i18n","legacy","locale","fallbackLocale","a","this","RESOURCE_ACCOUNTS","verificationData","patch","headers","errorMessages","Map","global","put","post","init","assign","accessToken","refreshToken","validTo","RESOURCE_TOKEN","supressErrorMessage","client","redirectUri","getToken","res","access_token","refresh_token","getValidTo","expires_in","duration","Date","setMinutes","getMinutes","apiUrl","authUrl","authRedirectUri","damageReportUrl","damageReportUrlBaseSK","wsUrl","envName","isTest","isProduction","isDevelopment","prod","test","dev","local","for","changePassword","v$","$invalid","placeholder","origPass","$dirty","$model","disabled","saving","secondFactorMissing","required","form","newPass","minPasswordLength","newPassVerify","passwordsMatch","severity","href","$router","loading","icon","loadingIcon","iconPos","showVerifyPrompt","continueSaving","$event","resendVerificationCode","displayModal","login","recaptchaToken","RESOURCE_SECOND_FACTORS","errorMessage","render","val","modelValue","onChanged","strongPasswordValidation","strongPasswordMessage","HasDigit","HasLower","HasUpper","AllLetterOrDigit","Array","from","every","Score","password","StrongPasswordValidator","components","UErrorContainer","UErrorItem","props","String","Boolean","Number","emits","setup","emit","rules","$touch","__scopeId","isVisible","modal","displayCountDownButton","countDownText","resendButtonDisabled","token","submit","autofocus","interval","resendButtonText","resendButtonTextTimer","set","startTimer","clearInterval","minutes","seconds","timer","setInterval","parseInt","toString","UStrongPassword","VerificationPrompt","secFactor","toast","router","store","useStore","userId","state","user","accountClient","account","verificationCodeSent","verifyPrompt","useSecondFactorVerification","reCaptcha","getRecaptchaToken","getters","isRecaptchaEnabled","recaptchaLoaded","executeRecaptcha","add","summary","detail","meta","content","getMe","username","email","usePasswordConfirmation","getSecondFactors","authenticate","changePasswordVerify","originalPassword","newPassword","verificationToken","life","valid","validateMyNewPassword","resetTokenValid","height","savingIcon","resetPasswordUrl","redirectToLogIn","RESOURCE_PASSWORD_RESET","route","resetClient","PasswordResetClient","secondFactorClient","resetToken","loginService","baseUrl","getFullPath","path","endsWith","startsWith","substring","tilesPath","fullPath","resetPassworPath","query","verify","tokenValid","finish","twoFactorToken","validate","fullName","saveChanges","emailInvalid","isSSO","readonly","birthDateFormated","IsUserFromInternalDistribution","emailChanged","hasHCLRight","secondaryEmail","phoneNumber","phoneNumberIsEditable","phoneNumberValid","broker","crn","showPasswordVerifyPrompt","modalMessage","displaySecondaryModal","secondaryModalMessage","typeInput","showPassword","computed","sequenceDataDto","text","indexOf","checkEmailOrderingSuffix","replace","checkEmailSuffix","suffix","UFloatingLabel","PasswordVerificationPrompt","general","origAccount","tiles","mobileValidate","phone","mobileNumber","getType","secondaryEmailValid","RegExp","emailValidStyle","toLowerCase","cutEmail","loadMe","commit","setUser","isSecondaryEmailEditationOk","some","x","applicationName","getAll","getById","brokerId","birthDate","Intl","DateTimeFormat","format","updatedAccount","technicalAccount","verifyEmailUniquenessDto","verifyMyNewEmailUniqueness","loginname","oldEmail","$reset","brokerNumber","sortModeEnabled","tag","list","increaseRerenderKey","item","element","block-link","tileData","reRenderKey","tile","saveSequenceToDB","returnInitialArrayState","dialogUserProfileButtonLabel","showPhoneNumberIsCorrectButton","confirmPhoneNumber","checkPhoneMessage","hasHCLRightAndEmptySecondaryEmail","hidden","continueDialogButtonIsHidden","secondaryEmailDialogVisible","tileStyle","$props","blockLink","pushUri","tileImageStyle","tileImage","tileName","getTooltipByBrowserLanguage","RESOURCE_AUDIT","auditClient","tileUri","url","color","colorHover","width","makeSvgObject","URL","createObjectURL","Blob","isEmpty","getNameByBrowserLanguage","nameSk","nameEn","createAuditDto","auditType","callerApplicationId","description","userAccountId","createAudit","open","openInSameWindow","focus","tooltipCZ","tooltipSK","tooltipEN","extraname","exactMatch","passwordExpirationDate","toLocaleDateString","events","eventName","fn","forEach","UTile","draggable","tilesClient","initialTiles","dialog","extraPropertyClient","phoneNumberValidated","extraName","getNumberOfDaysToSecondFactor","secondFactorActivationDate","diff","Math","abs","getTime","diffDays","ceil","on","numberOfDaysToSecondFactor","phoneNumberIsEditableUntil","setDate","getDate","showCheckPhoneDialog","respone","daysCount","date","setShowCheckPhoneDialog","showPasswordExpirationWarning","showPasswordExpirationDialog","dialogRef","PasswordExpirationDialog","dismissableMask","templates","onClick","close","extraPropertyDto","app","secondaryEmailDialogDate","methods","tilesSequenceData","JSON","stringify","tilesSubsequenceDto","SaveTilesSequence","buttons","button","method","action","reportUri","personalNumber","base64Url","split","base64","jsonPayload","decodeURIComponent","atob","charCodeAt","join","parse","acquisition_number","startDamage","RESOURCE_C360","urlReplace","c360Agent","load","defaultNS","c360Client","getAgent","mounted","emailSent","passwordExpiredMessage","startPasswordReset","encodeURIComponent","currentRoute","expired","WebSocketMessageTypes","routes","redirect","component","Tiles","background","UserProfile","DamageReport","DamageReportSK","ChangePassword","ResetPassword","ResetPasswordVerify","LogOut","history","now","messageType","messageId","socket","isConnected","sessionState","principalUsername","dispatch","tryRefreshToken","webSocketDto","crypto","randomUUID","application","ssoSessionId","json","logToConsoleEnabled","log","main","config","globalProperties","$socket","send","saveMessage","bye","$disconnect","webSocketAckDto","ack","replyTo","tokenService","returnUri","location","getAuthUrl","getReturnUrl","sendMessage","loginOut","authType","clientId","params","logOutPath","recaptchaClient","recaptchaEnabled","impersonification","sso","reconnectError","userSource","authSrc","lastActivity","lastWSPing","fromOrig","isUserLoggedIn","pingActivity","mutations","removeUser","setToken","tokenAccess","obj","session_state","principal_username","user_source","auth_src","initApp","setRecaptcha","setImpersonification","setSSO","SOCKET_ONOPEN","currentTarget","SOCKET_ONCLOSE","SOCKET_ONERROR","SOCKET_ONMESSAGE","SOCKET_RECONNECT","count","info","SOCKET_RECONNECT_ERROR","actions","getUser","refreshed","catch","getRecaptchaStatus","getRecaptchaStatusForCurrentNetwork","year","month","day","hour","minute","second","imgClass","imgPath","display","idleLimit","defaultCounter","counter","decreaseTime","wsPretimeoutTimeoutInSeconds","pretimeout","resetCounter","idleLimitInSeconds","recordActivity","ev","addEventListener","removeEventListener","UIdleTimer","default","UIcon","UAppHeader","UIconButton","menu","items","command","toggle","resetTimer","screen","getFullYear","haNodeIdentifier","appVersion","curr","_","UAppLayout","AppHeader","AppFooter","helloMessageId","startPingTimer","wsPingTimeoutInSeconds","ping","title","instance","hideBadge","findIndex","storedMessage","sendAckMessage","exc","hello","appMounted","pathToConfig","origin","App","getErrorMessage","response","BaseLabel","directive","use","recaptchaSiteKey","siteKey","loaderOptions","useRecaptchaNet","wsEnabled","connectManually","reconnection","reconnectionAttempts","reconnectionDelay","mount","defaults","baseURL","interceptors","auth","Authorization","status","responseURL","errorCode","$toast","msg","isoDateFormat","handleDates","body","beforeEach","next","$dialog","LogOutDialog","$","appContext","$connect"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAKnBhB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASY,EAAe5B,GACvB,OAAOyB,EAAoBI,EAAI,OAAS,GAAG7B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,MAI5P,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAU+B,QAGnC,IAAIC,EAASJ,EAAiB5B,GAAY,CACzCK,EAAGL,EACHiC,GAAG,EACHF,QAAS,IAUV,OANAjB,EAAQd,GAAUW,KAAKqB,EAAOD,QAASC,EAAQA,EAAOD,QAASL,GAG/DM,EAAOC,GAAI,EAGJD,EAAOD,QAKfL,EAAoBQ,EAAI,SAAuBjC,GAC9C,IAAIkC,EAAW,GAKXC,EAAqBxB,EAAgBX,GACzC,GAA0B,IAAvBmC,EAGF,GAAGA,EACFD,EAAStB,KAAKuB,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAIC,SAAQ,SAASC,EAASC,GAC3CJ,EAAqBxB,EAAgBX,GAAW,CAACsC,EAASC,MAE3DL,EAAStB,KAAKuB,EAAmB,GAAKC,GAGtC,IACII,EADAC,EAASC,SAASC,cAAc,UAGpCF,EAAOG,QAAU,QACjBH,EAAOI,QAAU,IACbpB,EAAoBqB,IACvBL,EAAOM,aAAa,QAAStB,EAAoBqB,IAElDL,EAAOO,IAAMpB,EAAe5B,GAG5B,IAAIiD,EAAQ,IAAIC,MAChBV,EAAmB,SAAUW,GAE5BV,EAAOW,QAAUX,EAAOY,OAAS,KACjCC,aAAaT,GACb,IAAIU,EAAQ5C,EAAgBX,GAC5B,GAAa,IAAVuD,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYL,IAAyB,SAAfA,EAAMM,KAAkB,UAAYN,EAAMM,MAChEC,EAAUP,GAASA,EAAMQ,QAAUR,EAAMQ,OAAOX,IACpDC,EAAMW,QAAU,iBAAmB5D,EAAU,cAAgBwD,EAAY,KAAOE,EAAU,IAC1FT,EAAMY,KAAO,iBACbZ,EAAMQ,KAAOD,EACbP,EAAMa,QAAUJ,EAChBH,EAAM,GAAGN,GAEVtC,EAAgBX,QAAW+D,IAG7B,IAAIlB,EAAUmB,YAAW,WACxBxB,EAAiB,CAAEiB,KAAM,UAAWE,OAAQlB,MAC1C,MACHA,EAAOW,QAAUX,EAAOY,OAASb,EACjCE,SAASuB,KAAKC,YAAYzB,GAG5B,OAAOJ,QAAQ8B,IAAIjC,IAIpBT,EAAoB2C,EAAIvD,EAGxBY,EAAoB4C,EAAI1C,EAGxBF,EAAoB6C,EAAI,SAASxC,EAAS+B,EAAMU,GAC3C9C,EAAoB+C,EAAE1C,EAAS+B,IAClCtD,OAAOkE,eAAe3C,EAAS+B,EAAM,CAAEa,YAAY,EAAMC,IAAKJ,KAKhE9C,EAAoBmD,EAAI,SAAS9C,GACX,qBAAX+C,QAA0BA,OAAOC,aAC1CvE,OAAOkE,eAAe3C,EAAS+C,OAAOC,YAAa,CAAEC,MAAO,WAE7DxE,OAAOkE,eAAe3C,EAAS,aAAc,CAAEiD,OAAO,KAQvDtD,EAAoBuD,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQtD,EAAoBsD,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK5E,OAAO6E,OAAO,MAGvB,GAFA3D,EAAoBmD,EAAEO,GACtB5E,OAAOkE,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOtD,EAAoB6C,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR1D,EAAoB8D,EAAI,SAASxD,GAChC,IAAIwC,EAASxC,GAAUA,EAAOmD,WAC7B,WAAwB,OAAOnD,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAN,EAAoB6C,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR9C,EAAoB+C,EAAI,SAASgB,EAAQC,GAAY,OAAOlF,OAAOC,UAAUC,eAAeC,KAAK8E,EAAQC,IAGzGhE,EAAoBI,EAAI,IAGxBJ,EAAoBiE,GAAK,SAASC,GAA2B,MAApBC,QAAQ3C,MAAM0C,GAAYA,GAEnE,IAAIE,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjF,KAAK0E,KAAKO,GAC5CA,EAAWjF,KAAOf,EAClBgG,EAAaA,EAAWG,QACxB,IAAI,IAAI5F,EAAI,EAAGA,EAAIyF,EAAWvF,OAAQF,IAAKP,EAAqBgG,EAAWzF,IAC3E,IAAIU,EAAsBiF,EAI1B/E,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,2EC5NT,W,6DCAA,W,yhPCAA,W,qECAA,IAAI+E,EAAM,CACT,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,QAAS,OACT,WAAY,OACZ,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,WAAY,OACZ,cAAe,OACf,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,YAAa,OACb,eAAgB,OAChB,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,QAAS,OACT,WAAY,OACZ,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,QAAS,OACT,WAAY,OACZ,OAAQ,OACR,UAAW,OACX,QAAS,OACT,WAAY,OACZ,QAAS,OACT,aAAc,OACd,gBAAiB,OACjB,WAAY,OACZ,UAAW,OACX,aAAc,OACd,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,UAAW,OACX,OAAQ,OACR,YAAa,OACb,eAAgB,OAChB,UAAW,OACX,OAAQ,OACR,UAAW,OACX,aAAc,OACd,gBAAiB,OACjB,OAAQ,OACR,UAAW,OACX,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,OACd,UAAW,OACX,aAAc,QAIf,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAO1E,EAAoB2E,GAE5B,SAASC,EAAsBF,GAC9B,IAAI1E,EAAoB+C,EAAEyB,EAAKE,GAAM,CACpC,IAAIlE,EAAI,IAAIiB,MAAM,uBAAyBiD,EAAM,KAEjD,MADAlE,EAAEqE,KAAO,mBACHrE,EAEP,OAAOgE,EAAIE,GAEZD,EAAeK,KAAO,WACrB,OAAOhG,OAAOgG,KAAKN,IAEpBC,EAAe5D,QAAU+D,EACzBtE,EAAOD,QAAUoE,EACjBA,EAAeE,GAAK,Q,oCCnSpB,W,oCCAA,W,2iPCAA,W,oCCAA,W,uBCAA,IAAIH,EAAM,CACT,oBAAqB,CACpB,OACA,kBAED,uBAAwB,CACvB,OACA,kBAED,0BAA2B,CAC1B,OACA,kBAED,eAAgB,CACf,OACA,kBAED,oBAAqB,CACpB,OACA,kBAED,qBAAsB,CACrB,OACA,mBAGF,SAASO,EAAoBL,GAC5B,IAAI1E,EAAoB+C,EAAEyB,EAAKE,GAC9B,OAAO9D,QAAQC,UAAUmE,MAAK,WAC7B,IAAIxE,EAAI,IAAIiB,MAAM,uBAAyBiD,EAAM,KAEjD,MADAlE,EAAEqE,KAAO,mBACHrE,KAIR,IAAIyE,EAAMT,EAAIE,GAAMC,EAAKM,EAAI,GAC7B,OAAOjF,EAAoBQ,EAAEyE,EAAI,IAAID,MAAK,WACzC,OAAOhF,EAAoBuD,EAAEoB,EAAI,MAGnCI,EAAoBD,KAAO,WAC1B,OAAOhG,OAAOgG,KAAKN,IAEpBO,EAAoBJ,GAAK,OACzBrE,EAAOD,QAAU0E,G,oCC5CjB,W,4pQCCI,yBAmBe,GAnBAG,eAAgB,EAAAC,QAAM,CAChBC,OAAM,sBACnB,iBAA2B,CAA3B,yBAA2B,GAAfC,IAAI,UAAQ,cAOXC,OAAM,sBACnB,iBAAc,CAAd,yBAAc,O,8BALlB,iBAAe,CAAf,yBAAe,GACf,yBAAsE,GAA/DC,WAAW,QAAQC,SAAS,cAAcC,WAAW,WAC5D,yBAAiB,GAKjB,yBAME,GANMD,SAAS,SAAUE,UAAU,EAAOC,YAAY,EAAOP,OAAQ,EAAA7B,EAAC,0BAA6BqC,MAAO,eACzGC,QAAS,EAAAC,2B,kDAAA,EAAAA,2BAA0B,IAAEnB,GAAG,Y,CAEtCW,OAAM,sBAChB,iBAAiD,CAAjD,yBAAiD,GAAzCS,MAAM,KAAU,QAAK,+BAAE,EAAAC,uB,8BAFhC,iBAAmC,C,0DAAjC,EAAAzC,EAAC,+BAAgC,IACnC,O,2LCLgB0C,MAAM,a,uBACO,gCAAI,sB,GAOlBA,MAAM,iB,SAOdA,MAAM,mB,GACFA,MAAM,e,GACDA,MAAM,gB,GACNA,MAAM,c,GACPA,MAAM,iB,kVA7BnB,yBAuBe,iCAtBMC,OAAM,sBACf,iBAIc,CAJd,yBAIc,GAJAC,GAAI,EAAAA,IAAE,C,8BAChB,iBAEW,E,yBAFX,yBAEW,oB,8BADP,iBAA2E,CAA3E,yBAA2E,GAA3DC,MAAO,EAAAC,WAAQ,mC,0DAKnB,EAAAC,W,MAAX,O,yBACb,iBAGO,CAHP,gCAGO,OAHP,EAGO,C,0DAFA,EAAAC,WAAS,GAAG,E,0DAAO,EAAAC,UAAW,IACjC,G,4BAAA,gCAAwE,wCAAnC,EAAAjD,EAAC,iC,YAAzB,EAAAkD,yBAEjB,yBAEc,GAFDN,GAAG,gBAAc,C,8BAC1B,iBAAsC,CAAtC,yBAAsC,GAAvBC,MAAM,qB,MAEzB,yBAAoI,GAApHM,WAAW,EAAMN,MAAM,SAAU,QAAO,EAAAO,sBAAuBtB,IAAI,QAASuB,QAAS,EAAArD,EAAC,4B,8BACtG,gCAGM,MAHN,EAGM,CAFF,yBAA2G,GAA5F6C,MAAM,cAAe,QAAO,EAAAS,WAAYC,gBAAc,OAAOC,gBAAc,gB,oBAC1F,yBAAsE,GAAhE1B,IAAI,OAAOV,GAAG,eAAgBqC,MAAO,EAAAC,UAAYC,OAAO,G,gDAKvC,EAAAC,kB,yBAAnC,gCASM,MATN,EASM,CARF,gCAOM,MAPN,EAOM,CANF,gCAAiE,OAAjE,EAAiE,6BAApC,EAAA5D,EAAC,8BAC9B,gCAAmE,OAAnE,EAAmE,6BAAxC,EAAAA,EAAC,kCAC5B,gCAGM,MAHN,EAGM,CAFF,yBAA+F,GAAvF0C,MAAM,eAAgBF,MAAO,EAAAxC,EAAC,kCAAyC,QAAO,EAAA6D,Q,4BACtF,yBAAuG,GAA/FnB,MAAM,eAAgBF,MAAO,EAAAxC,EAAC,wBAA+B,QAAK,+BAAE,EAAA4D,kBAAgB,K,4EC7B3FlB,MAAM,0B,GAEFA,MAAM,c,GAKdA,MAAM,e,wDATf,gCAUS,eATL,gCAOM,OAPDA,MAAM,WAAYL,MAAK,4BAAE,EAAAa,oBAAmB,wB,CAC7C,gCAKM,MALN,EAKM,CAJF,wBAAqB,mBACrB,gCAEM,MAFN,EAEM,CADF,wBAAoB,sB,GAIhC,gCAAwC,MAAxC,EAAwC,6BAAZ,EAAAY,MAAI,K,0ECV5BC,ECAAC,E,+JCMNC,EAAW,CAChB,QAAS,EACT,QAAS,EACT,QAAS,GAGJC,EAAgB3I,OAAOgG,KAAK0C,GAAUE,MAAK,SAAAC,GAAG,OAAIA,EAAIC,SAASC,UAAUC,aAClEC,EAAO,eAAW,CAC9BC,QAAQ,EACRC,OAAQR,EACRS,eAAgB,QAChBV,aCLK,E,uFACgC,Y,mNAGtB,EAAAW,EAAMjF,IAAN,UAAakF,KAAKC,kBAAlB,Q,uCAA2ChK,M,qIAK7CsG,EAAY,EAAsB2D,GAC9C,OAAO,EAAAH,EAAMI,MAAN,UAAeH,KAAKC,kBAApB,YAAyC1D,GAAM,EACrD,CACC6D,QAAS,CAAE,sBAAuBF,GAClCG,cAAe,IAAIC,IAAI,CACtB,CAAC,IAAKX,EAAKY,OAAOpF,EAAE,sCACpB,CAAC,IAAKwE,EAAKY,OAAOpF,EAAE,4C,sGAKUoB,EAAYtG,G,0GACtC,EAAA8J,EAAMS,IAAN,UAAaR,KAAKC,kBAAlB,YAAuC1D,EAAvC,2BAAoEtG,I,8MAG9CsG,G,iGACf,EAAAwD,EAAMjF,IAAN,UAAakF,KAAKC,kBAAlB,YAAuC1D,EAAvC,oB,uCAA6DtG,M,sNAGpCA,G,iGACnB,EAAA8J,EAAMU,KAAN,UAAcT,KAAKC,kBAAnB,mCAAuEhK,G,8BAAOA,K,yPAGhEA,G,iGACrB,EAAA8J,EAAMU,KAAN,UAAcT,KAAKC,kBAAnB,6BAAiEhK,G,yJAKjE,IClDM,EAKpB,WAAmByK,GAAmC,0DAJhC,IAIgC,kCAHjC,IAGiC,2BAFxC,IAGPhK,OAAOiK,OAAOX,KAAMU,ICNP,EAKnB,WAAYE,EAAqBC,EAAsBC,GAAa,kJAClEd,KAAKY,YAAcA,EACnBZ,KAAKa,aAAeA,EACpBb,KAAKc,QAAUA,GCHb,E,oFACoB,Y,mHAEH7K,G,uGACA,EAAA8J,EAAMU,KAAN,UAAcT,KAAKe,eAAnB,UAA2C9K,EAAM,CAAE+K,qBAAqB,I,cAAvF1J,E,yBACCA,EAAOrB,M,wMAGWA,G,uGACJ,EAAA8J,EAAMU,KAAN,UAAcT,KAAKe,eAAnB,iBAAkD9K,EACtE,CAAE+K,qBAAqB,I,cADlB1J,E,yBAGCA,EAAOrB,M,iHAKD,ICjBM,E,WAGjB,yEACI+J,KAAKiB,OAAS,IAAI,E,mHAGAxE,EAAcyE,G,uGACdlB,KAAKiB,OAAOE,SAAS,IAAI,EAAoB,CAC3D1E,OACAyE,iB,cAFEE,E,yBAKC,IAAI,EAAUA,EAAIC,aAAcD,EAAIE,cAAetB,KAAKuB,WAAWH,EAAII,c,0MAGxD,G,uGACJxB,KAAKiB,OAAOJ,aAAa,IAAI,EAAoB,CAAEA,aAAA,K,cAA/DO,E,yBACC,IAAI,EAAUA,EAAIC,aAAcD,EAAIE,cAAetB,KAAKuB,WAAWH,EAAII,c,2IAG/DC,GACf,IAAMX,EAAU,IAAIY,KAGpB,OAFAZ,EAAQa,WAAWb,EAAQc,aAAgBH,EAAW,GAAM,GAErDX,M,kBP9Bf,SAAY5B,GACR,uBACA,uCACA,yBACA,6CACA,4CALJ,CAAYA,MAAW,KCAvB,SAAYC,GACX,uBACA,6BACA,yBACA,uDACA,iEACA,uBACA,iCACA,iDACA,yBACA,qBACA,mCACA,qCACA,qCACA,yCACA,yCACA,qDACA,+BAjBD,CAAYA,MAAa,KOAV,OACX0C,OAAQ,8CACRC,QAAS,wEACTC,gBAAiB,8BACjBC,gBAAiB,0CACjBC,sBAAuB,4BACvBC,MAAO,GACPC,QAAS,QCPE,GACXN,OAAQ,0CACRC,QAAS,oEACTC,gBAAiB,0BACjBC,gBAAiB,wCACjBC,sBAAuB,0BACvBC,MAAO,GACPC,QAAS,ICPE,GACXN,OAAQ,+CACRC,QAAS,yEACTC,gBAAiB,+BACjBC,gBAAiB,0CACjBC,sBAAuB,4BACvBC,MAAO,wCACPC,QAAS,SCPE,GACXN,OAAQ,8BAERC,QAAS,yEACTC,gBAAiB,wBACjBC,gBAAiB,0CACjBC,sBAAuB,4BACvBC,MAAO,wCACPC,QAAS,UCHPC,GAAS,EACTC,GAAe,EACfC,GAAgB,EAGP,EAAAD,EAAeE,EAAOH,EAASI,EAAOF,EAAgBG,EAAMC,E,eCTlE7E,MAAM,oB,GAINA,MAAM,oC,IAEEA,MAAM,iB,IAQA8E,IAAI,kB,IAYV9E,MAAM,iB,IAQA8E,IAAI,oB,IAcV9E,MAAM,gB,8eAhDnB,gCAEM,MAFN,EAEM,CADF,gCAA4C,uCAArC,EAAA1C,EAAC,kCAGZ,gCAqDM,MArDN,EAqDM,CApDF,gCAmDO,QAnDA,SAAM,2DAAU,EAAAyH,gBAAgB,EAAAC,GAAGC,YAAQ,e,CAC9C,gCASM,MATN,GASM,CARF,yBAMuD,GAN5ClJ,KAAK,WACL2C,GAAG,iBACFwG,YAAa,EAAA5H,EAAC,0CACf0C,MAAK,6BAAC,iBAAgB,aAEA,EAAAgF,GAAGG,SAASF,UAAY,EAAAD,GAAGG,SAASC,U,WADjD,EAAAJ,GAAGG,SAASE,O,qDAAZ,EAAAL,GAAGG,SAASE,OAAM,IAE1BC,SAAU,EAAAC,QAAU,EAAAC,qB,wDAChC,gCAAqF,QAArF,GAAqF,6BAAtD,EAAAlI,EAAC,gDAEX,EAAA0H,GAAGG,SAASF,UAAY,EAAAD,GAAGG,SAASC,Q,yBAA7D,yBAIoB,W,8BAHhB,iBAEe,CAFK,EAAAJ,GAAGG,SAASM,SAASR,U,yBAAzC,yBAEe,W,8BADX,iBAA2D,C,0DAAxD,EAAA3H,EAAC,4D,gGAIZ,yBAE+D,G,WAFnC,EAAAoI,KAAKC,Q,qDAAL,EAAAD,KAAKC,QAAO,IAAGC,kBAAmB,EAAAA,kBAC1C9F,MAAO,EAAAxC,EAAC,qCACRgI,SAAU,EAAAC,QAAU,EAAAC,qB,8DAExC,gCASM,MATN,GASM,CARF,yBAMuD,GAN5CzJ,KAAK,WACL2C,GAAG,mBACFwG,YAAa,EAAA5H,EAAC,2CACf0C,MAAK,6BAAC,iBAAgB,aAEA,EAAAgF,GAAGa,cAAcZ,UAAY,EAAAD,GAAGa,cAAcT,U,WADtD,EAAAJ,GAAGa,cAAcR,O,qDAAjB,EAAAL,GAAGa,cAAcR,OAAM,I,eAArC,UAECC,SAAU,EAAAC,QAAU,EAAAC,qB,wDAChC,gCAAwF,QAAxF,GAAwF,6BAAvD,EAAAlI,EAAC,iDAEb,EAAA0H,GAAGa,cAAcZ,UAAY,EAAAD,GAAGa,cAAcT,Q,yBAAvE,yBAOoB,W,8BANhB,iBAEe,CAFK,EAAAJ,GAAGa,cAAcC,eAAeb,U,yBAApD,yBAEe,W,8BADX,iBAAuD,C,0DAApD,EAAA3H,EAAC,wD,8CAEY,EAAA0H,GAAGa,cAAcJ,SAASR,U,yBAA9C,yBAEe,W,8BADX,iBAAyD,C,0DAAtD,EAAA3H,EAAC,0D,gGAGR,yBAGU,GAHDyI,SAAS,OAAQtG,UAAU,G,+BAChC,iBAAuD,C,0DAApD,EAAAnC,EAAC,iDAAmD,IACvD,mCAAqG,KAAlG0I,KAAK,IAAK,QAAK,+BAAE,EAAAC,QAAQ/M,KAAI,oB,6BAAqB,EAAAoE,EAAC,iD,MAE9D,gCAOM,MAPN,GAOM,CANF,yBAKQ,GALAvB,KAAK,SACJ+D,MAAO,EAAAxC,EAAC,iCACT0C,MAAM,mBACLsF,SAAU,EAAAY,SAAW,EAAAX,QAAU,EAAAC,oBAC/BW,KAAM,EAAAC,YACzBC,QAAQ,S,6CAIT,yBAAkK,GAArIzG,QAAS,EAAA0G,iB,kDAAA,EAAAA,iBAAgB,IAAG,WAAQ,+BAAE,EAAAC,eAAeC,KAAU,yBAAsB,+BAAE,EAAAC,2BAA0BrH,IAAI,gB,oBACjJ,yBAMO,GANCG,SAAS,SAAUE,UAAU,EAAOC,YAAY,EAAOP,OAAQ,EAAA7B,EAAC,0BAC1DsC,QAAS,EAAA8G,a,kDAAA,EAAAA,aAAY,IAAEhI,GAAG,Y,CAE3BW,OAAM,sBACb,iBAAwD,CAAxD,yBAAwD,GAAhDS,MAAM,KAAU,QAAK,wBAAE,EAAA4G,cAAY,U,8BAF/C,iBAAuE,C,0DAApE,EAAApJ,EAAC,qDAAyD,EAAAqJ,SAAU,IACvE,O,sCC/Da,GAKpB,WAAmB9D,GAAiC,yDAJ/B,IAI+B,uCAH1B,IAG0B,wCAFzB,IAGpBhK,OAAOiK,OAAOX,KAAMU,ICDtB,G,6FACsC,iB,uHAEjBnE,EAAYkI,G,0GAC9B,EAAA1E,EAAMU,KAAN,UAAcT,KAAK0E,wBAAnB,YAA8CnI,EAA9C,wCAAgFkI,GAAkB,GACxG,CAAEE,aAAchF,EAAKY,OAAOpF,EAAE,kD,mHAKlB,M,2CCdP0C,MAAM,qB,iDAAV,gCAEK,KAFL,GAEK,CADD,wBAAQ,sBCDhB,MAAMjF,GAAS,GACfA,GAAOgM,OAAS,GAED,U,ICHP/G,MAAM,W,iDAAV,gCAEK,KAFL,GAEK,CADD,gCAAuB,cAAhB,wBAAQ,wBCDvB,MAAM,GAAS,GACf,GAAO+G,OAAS,GAED,U,ICHN/G,MAAM,iB,IASA8E,IAAI,qB,mQATf,gCAUM,MAVN,GAUM,CATF,yBAOmC,GAPxB/I,KAAK,WACJ2C,GAAG,oBACFwG,YAAa,EAAApF,MACdE,MAAK,6BAAC,iBAAgB,aAGA,EAAAgF,GAAGgC,IAAI/B,UAAY,EAAAD,GAAGgC,IAAI5B,UAF/C6B,WAAY,EAAAA,WACZ,sBAAmB,EAAAC,UAEnB5B,SAAU,EAAAA,U,8EACvB,gCAAkD,QAAlD,GAAkD,6BAAhB,EAAAxF,OAAK,KAElB,EAAAkF,GAAGgC,IAAI/B,UAAY,EAAAD,GAAGgC,IAAI5B,Q,yBAAnD,yBAaoB,W,8BAZhB,iBAEe,CAFK,EAAAJ,GAAGgC,IAAIvB,SAASR,U,yBAApC,yBAEe,W,8BADX,iBAAmD,C,0DAAhD,EAAA3H,EAAC,oD,8CAEY,EAAA0H,GAAGgC,IAAIG,yBAAyBlC,U,yBAApD,yBAQe,W,8BAPX,iBAAyB,C,0DAAvB,EAAAmC,uBAAuB,IACzB,mCAKK,WAJD,gCAAyD,uCAAnD,EAAA9J,EAAC,+CACP,gCAAyD,uCAAnD,EAAAA,EAAC,+CACP,gCAAyD,uCAAnD,EAAAA,EAAC,+CACP,gCAAyD,uCAAnD,EAAAA,EAAC,qD,gGAIM,EAAA0H,GAAGgC,IAAI5B,Q,yBAAhC,yBAEqB,W,8BADrB,iBAAgE,CAAhE,gCAAgE,0CAAvD,EAAA9H,EAAC,oD,qFC3BR+J,GAAW,SAAC3F,GAAD,MAAiB,KAAKiD,KAAKjD,IACtC4F,GAAW,SAAC5F,GAAD,MAAiB,QAAQiD,KAAKjD,IACzC6F,GAAU,SAAC7F,GAAD,MAAiB,QAAQiD,KAAKjD,IACxC8F,GAAmB,SAAC9F,GAAD,OAAiB+F,MAAMC,KAAKhG,GAAKiG,OAAM,SAAA3N,GAAC,OAAIuN,GAASvN,IAAMsN,GAAStN,IAAMqN,GAASrN,OAEtG4N,GAAQ,SAACC,GAAD,OACTL,GAAiBK,GAAY,EAAI,IAC/BR,GAASQ,GAAY,EAAI,IACzBP,GAASO,GAAY,EAAI,IACzBN,GAASM,GAAY,EAAI,IAElB,YAAUA,EAAkBjC,GACtC,OAAOiC,EAASjP,QAAUgN,GAAqBgC,GAAMC,IAAa,GCVzD,GAAiB,SAASxK,EAAgBuI,GACnD,MAAwB,kBAAVvI,GAAmD,kBAAtBuI,GAAkCkC,GAAwBzK,EAAOuI,ICMjG,gCAAgB,CAC3BmC,WAAY,CAAEC,mBAAiBC,eAC/BC,MAAO,CACHjB,WAAYkB,OACZrI,MAAOqI,OACP7C,SAAU8C,QACVxC,kBAAmByC,QAEvBC,MAAO,CAAC,qBAERC,MAV2B,SAUrBL,EAVqB,GAUN,IAANM,EAAM,EAANA,KAAM,EACH,iBAANlL,EADS,EACTA,EACFoI,EAAO,sBAAS,CAClBsB,IAAKkB,EAAMjB,aAGTG,EAAwB,uBAAS,WACnC,OAAO9J,EAAE,0CAA2C,CAAC1E,OAAQsP,EAAMtC,uBAEjEuB,EAA2B,kBAAM,GAAezB,EAAKsB,IAAKkB,EAAMtC,oBAChE6C,EAAQ,CACVzB,IAAK,CAAEvB,SAAA,QAAU0B,6BAGfnC,EAAK,gBAAayD,EAAO/C,GAEzBwB,EAAY,SAACzL,GACfiK,EAAKsB,IAAMvL,EACXuJ,EAAG3H,MAAMqL,SACTF,EAAK,oBAAqB/M,IAG9B,MAAO,CACHiK,OACAV,KACAkC,YACA5J,IACA8J,4B,UCzCZ,GAAOL,OAAS,GAChB,GAAO4B,UAAY,kBAEJ,U,aCRM,GAuBpB,WAAmB9F,GAA0B,gDAtBjC,IAsBiC,gCArB1B,IAqB0B,+BApB3B,IAoB2B,qCAnB1BxG,GAmB0B,kCAlBzB,IAkByB,+BAjB5B,IAiB4B,+BAhB5B,IAgB4B,4BAf9B,IAe8B,4BAd9B,IAc8B,gCAb1B,IAa0B,iCAZzB,IAYyB,wCAXlB,IAWkB,+CAVZ,GAUY,6CATd,GASc,sDARTA,GAQS,+BAP3B,IAO2B,wCANnB,GAMmB,2BAL/B,IAK+B,6CAJb,IAIa,qDAHN,GAGM,0CAFrBA,GAGjBxD,OAAOiK,OAAOX,KAAMU,I,IClBf7C,MAAM,e,8LALf,yBAsBS,GAtBOJ,QAAS,EAAAgJ,U,kDAAA,EAAAA,UAAS,IAAEC,MAAA,I,CACrB1J,OAAM,sBACb,iBAAqE,CAArE,gCAAqE,uCAA9D,EAAA7B,EAAC,6DAQD+B,OAAM,sBACb,iBAIwC,CAA1B,EAAAyJ,wB,yBAJd,yBAIwC,G,MAJ/BhJ,MAAO,EAAAiJ,cACR/I,MAAM,iBACLsF,SAAU,EAAA0D,qBACV,QAAO,EAAAvC,wB,+EAEhB,yBAI0B,GAJjB3G,MAAO,EAAAxC,EAAC,8BACT0C,MAAM,iBACNmG,KAAK,cACJb,UAAW,EAAA2D,MACX,QAAO,EAAAC,Q,yEAfpB,iBAGM,CAHN,gCAGM,MAHN,GAGM,CAFF,gCAA4D,sCAAtD,EAAA5L,EAAC,kDACP,yBAAuC,G,WAAnB,EAAA2L,M,qDAAA,EAAAA,MAAK,IAAEE,UAAA,I,iDCJpB,oCAAgB,CAC3BjB,MAAO,CACHtI,QAASwI,SAEbE,MAAO,CAAC,iBAAkB,WAAY,0BACtCC,MAL2B,SAKrBL,EALqB,GAKN,IAANM,EAAM,EAANA,KAAM,EACH,iBAANlL,EADS,EACTA,EACF2L,EAAQ,iBAAI,IACZF,EAAgB,iBAAI,IACpBK,EAAW,iBAAI,GACfJ,EAAuB,kBAAI,GAC3BK,EAAmB/L,EAAE,sDACrBgM,EAAwBhM,EAAE,wDAC1BwL,EAAyB,kBAAI,GAC7BF,EAAY,sBAAS,CACvB3L,IADuB,WAEnB,OAAOiL,EAAMtI,SAEjB2J,IAJuB,SAInBvC,GACAwB,EAAK,iBAAkBxB,MAIzBkC,EAAS,WACXV,EAAK,WAAYS,EAAM5L,OACvB4L,EAAM5L,MAAQ,IAGZoJ,EAAyB,WAC3B+B,EAAK,2BAGHgB,EAAa,WACfV,EAAuBzL,OAAQ,EAC/B2L,EAAqB3L,OAAQ,EAC7B0L,EAAc1L,MAASiM,EAAwB,SAC/CG,cAAcL,EAAS/L,OACvB,IAA0BqM,EAASC,EAA/BC,EAAS,IAEbR,EAAS/L,MAAQwM,aAAY,WACzBH,EAAUI,UAAUF,EAAQ,IAAIG,WAAY,IAC5CJ,EAAUG,UAAUF,EAAQ,IAAIG,WAAY,IAE5CL,EAAUA,EAAU,GAAK,IAAMA,EAAUA,EACzCC,EAAUA,EAAU,GAAK,IAAMA,EAAUA,EACzCZ,EAAc1L,MAAQiM,EAAwB,IAAMI,EAAU,IAAMC,IAE9DC,EAAQ,IACVb,EAAc1L,MAAQgM,EACtBI,cAAcL,EAAS/L,OACvB2L,EAAqB3L,OAAQ,KAElC,MAGP,MAAO,CACH4L,QACAL,YACAM,SACAH,gBACAS,aACAR,uBACAvC,yBACAnJ,IACAwL,6B,UC/DhB,GAAO/B,OAAS,GAChB,GAAO4B,UAAY,kBAEJ,UCRM,GAIpB,WAAmB9F,GAAyC,8DAHlC,IAGkC,kCAFvC,IAGdhK,OAAOiK,OAAOX,KAAMU,I,aCkBT,gCAAgB,CAC3BkF,WAAY,CAAEC,mBAAiBC,cAAY+B,mBAAiBC,uBAC5D1B,MAF2B,WAEtB,QAaG2B,EAZEC,EAAQ,kBACRC,EAAS,iBACTC,EAAQC,KAHb,EAIa,iBAANhN,EAJP,EAIOA,EACF4I,EAAU,kBAAI,GAAQX,EAAS,kBAAI,GACnCa,EAAc,uBAAS,kBAAMF,EAAQ7I,OAASkI,EAAOlI,MACrD,wBAA0B,MAC1BuI,EAAoB,iBAAI,IACxB2E,EAAS,iBAAG,oBAACF,EAAMG,MAAMC,YAAb,aAAC,EAAkB/L,UAAnB,QAAyB,IAErCgM,EAAgB,IAAI,EACpBC,EAAU,sBAAS,IAAI,IAEvBnF,EAAsB,kBAAI,GAC5BoF,GAAuB,EACrBC,EAAe,iBAAI,MACnBvE,EAAmB,kBAAI,GACvBwE,EAA8B,kBAAI,GAElCC,EAAY,6BACdnE,EAAiB,GACfD,EAAQ,iBAAI,IACZD,EAAe,kBAAI,GAEnBsE,EAAiB,yDAAG,iGACjBX,EAAMY,QAAQC,mBADG,0CAEX,GAFW,UAItBtE,EAAiB,IAEbmE,EANkB,gCAOZA,EAAUI,kBAPE,uBAQKJ,EAAUK,iBAAiB,iBARhC,OAQlBxE,EARkB,iBAWA,MAAlBA,QAA4CvK,GAAlBuK,GAAiD,IAAlBA,EAXvC,wBAYlBuD,EAAMkB,IAAI,CACNtF,SAAU,QACVuF,QAAShO,EAAE,sBACXiO,OAAQjO,EAAE,mCAfI,mBAiBX,GAjBW,kCAoBf,GApBe,4CAAH,qDAuBjBoI,EAAO,sBAAS,CAClBP,SAAU,GACVQ,QAAS,GACTE,cAAe,KAGnB,gBAAQ,CACJ2F,KAAM,CACF,CACIrP,KAAM,SACNsP,QAAS,cAKrB,uBAAS,wCAAC,8GAEFvF,EAAQ7I,OAAQ,EAFd,KAGFxE,OAHE,KAGY8R,EAHZ,SAG2BD,EAAcgB,QAHzC,2BAGK5I,OAHL,qBAIF6D,EAAMtJ,MAAQsN,EAAQgB,SAAWhB,EAAQgB,SAAWhB,EAAQiB,MACvC,YAAjBjB,EAAQ5O,KACR6J,EAAkBvI,MAAQ,GAE1BuI,EAAkBvI,MAAQ,IAG1BsN,EAAQkB,wBAXV,iBAYEf,EAA4BzN,OAAQ,EAZtC,+BAcEyN,EAA4BzN,OAAQ,EAdtC,UAeqBqN,EAAcoB,iBAAiBvB,EAAOlN,OAf3D,QAeE6M,EAfF,OAemE,GAChD,MAAbA,IACA1E,EAAoBnI,OAAQ,EAC5BqJ,EAAarJ,OAAQ,GAlB3B,qEAyBN6I,EAAQ7I,OAAQ,EAzBV,2DA4BV,IAAMyI,EAAiB,kBAAMJ,EAAKC,UAAYD,EAAKG,eAC7C4C,EAAQ,CACVtD,SAAU,CAAEM,SAAA,SACZI,cAAe,CAAEJ,SAAA,QAAUK,mBAGzBd,EAAK,gBAAayD,EAAO/C,GAEzBqG,EAAY,yDAAG,0GAERnB,EAFQ,iCAGH,IAAI,IAAqBmB,aAAa7B,EAAUxL,GAAIkI,GAHjD,OAIT/N,OAAOgS,EAAaxN,OAAOmM,aAC3BoB,GAAuB,EALd,OAObtE,EAAiBjJ,OAAQ,EAPZ,4GAAH,qDAaZoJ,EAAsB,yDAAG,8GAChBuE,IADgB,yEAI3BJ,GAAuB,EAJI,SAKrBmB,IALqB,2CAAH,qDAQtBxF,EAAc,yDAAG,WAAOlE,GAAP,wFACnBkD,EAAOlI,OAAQ,EADI,kBAITqN,EAAcsB,qBAChBzB,EAAOlN,MACP,IAAI,GAAkB,CAClB4O,iBAAkBvG,EAAKP,SACvB+G,YAAaxG,EAAKC,QAClBwG,kBAAmB9J,KATZ,OAYXyI,EAA4BzN,QAC5BiJ,EAAiBjJ,OAAQ,GAG7B8M,EAAMkB,IAAI,CACNtF,SAAU,UACVwF,OAAQjO,EAAE,wCACV8O,KAAM,MAGVhC,EAAOlR,KAAK,gBAtBG,2DA4BnBqM,EAAOlI,OAAQ,EA5BI,yDAAH,sDA+Bd0H,EAAc,yDAAG,WAAOsH,GAAP,oFAEnBrH,EAAG3H,MAAMqL,SACJ2D,EAHc,oDAOnB9G,EAAOlI,OAAQ,EAPI,UASXyN,EAA4BzN,MATjB,0CAWDqN,EAAc4B,sBAAsB,IAAI,GAA0B,CACpEL,iBAAkBvG,EAAKP,SACvB+G,YAAaxG,EAAKC,WAbf,wBAgBIqF,IAhBJ,sFAmBDe,IAnBC,6FAyBXxF,EAAe,IAzBJ,qEAgCnBhB,EAAOlI,OAAQ,EAhCI,iEAAH,sDAkCpB,MAAO,CACHqI,OACAV,KACAkB,UACAX,SACAa,cACArB,iBACAzH,IACAkI,sBACAc,mBACAuE,eACAtE,iBACAE,yBACAb,oBACAe,QACAD,mBC9NhB,GAAOK,OAAS,GAED,U,iBCHE/G,MAAM,oB,UAEEA,MAAM,e,eASdA,MAAM,oC,IAWEA,MAAM,iB,IAQA8E,IAAI,qB,IAWV9E,MAAM,gB,UAYdA,MAAM,6B,siBAtDH,EAAAkG,SAAW,EAAAqG,iB,yBAAvB,gCAoDO,Q,MApDkC,SAAM,2DAAU,EAAAxH,gBAAgB,EAAAC,GAAGC,YAAQ,e,CAChF,gCASM,MATN,GASM,CARc,EAAAiB,S,yBACZ,gCAEM,MAFN,GAEM,CADF,yBAA0B,GAAhBsG,OAAO,a,yBAIrB,gCAAwE,qCAAjE,EAAAlP,EAAC,0CAA8C,EAAAqO,YAAQ,MAItE,gCAuCM,MAvCN,GAuCM,CAtCc,EAAAzF,S,2BACZ,gCAEM,8DAFiDuB,MAAM,GAAG5I,SAAI,SAAtBnG,G,gCAA9C,gCAEM,OAFDsH,MAAM,4BAA+DrC,IAAKjF,G,CAC3E,yBAA0B,GAAhB8T,OAAO,c,gCAGzB,gCAgCW,uBA/BP,yBAE+D,G,WAFnC,EAAA9G,KAAKC,Q,qDAAL,EAAAD,KAAKC,QAAO,IAAGC,kBAAmB,EAAAA,kBAC1C9F,MAAO,EAAAxC,EAAC,0CACRgI,SAAU,EAAAC,QAAU,EAAAC,qB,8DAExC,gCASM,MATN,GASM,CARF,yBAM0F,GAN/EzJ,KAAK,WACL2C,GAAG,oBACFwG,YAAa,EAAA5H,EAAC,gDACf0C,MAAK,6BAAC,iBAAgB,aAGA,EAAAgF,GAAGa,cAAcZ,UAAY,EAAAD,GAAGa,cAAcT,U,WAF3D,EAAAJ,GAAGa,cAAcR,O,qDAAjB,EAAAL,GAAGa,cAAcR,OAAM,IAC/BC,SAAU,EAAAC,QAAU,EAAAC,qB,wDAEhC,gCAA8F,QAA9F,GAA8F,6BAA5D,EAAAlI,EAAC,sDAEd,EAAA0H,GAAGa,cAAcZ,UAAY,EAAAD,GAAGa,cAAcT,Q,yBAAvE,yBAOoB,W,8BANhB,iBAEe,CAFK,EAAAJ,GAAGa,cAAcC,eAAeb,U,yBAApD,yBAEe,W,8BADX,iBAA4D,C,0DAAzD,EAAA3H,EAAC,6D,8CAEY,EAAA0H,GAAGa,cAAcJ,SAASR,U,yBAA9C,yBAEe,W,8BADX,iBAA8D,C,0DAA3D,EAAA3H,EAAC,+D,gGAIZ,gCAOM,MAPN,GAOM,CANF,yBAK0B,GALlBvB,KAAK,SACJ+D,MAAO,EAAAxC,EAAC,sCACT0C,MAAM,mBACLsF,SAAU,EAAAC,QAAU,EAAAC,oBACpBW,KAAM,EAAAsG,WACPpG,QAAQ,S,8EAM5B,gCAKM,MALN,GAKM,CAJF,yBAGU,GAHDN,SAAS,QAAStG,UAAU,G,+BACjC,iBAAwD,C,0DAArD,EAAAnC,EAAC,kDAAoD,IACxD,mCAA8D,KAApD0I,KAAM,EAAA0G,oB,6BAAsB,EAAAA,oBAAgB,U,SAKtE,yBAAmK,GAAtI9M,QAAS,EAAA0G,iB,kDAAA,EAAAA,iBAAgB,IAAG,WAAQ,+BAAE,EAAAC,eAAeC,KAAU,yBAAsB,+BAAE,EAAAC,2BAA0BrH,IAAI,gB,oBAClJ,yBAMM,GANEG,SAAS,SAAUE,UAAU,EAAQC,YAAY,EAAOP,OAAQ,EAAA7B,EAAC,8CAClEsC,QAAS,EAAA8G,a,kDAAA,EAAAA,aAAY,IAAEhI,GAAG,WAAWiB,MAAA,2BAA+BkJ,OAAO,G,CAEzExJ,OAAM,sBAChB,iBAAkD,CAAlD,yBAAkD,GAA1CS,MAAM,KAAU,QAAO,EAAA6M,iB,sDAFhC,iBAA2D,C,0DAAzD,EAAArP,EAAC,uDAAwD,IAC3D,O,sCCnEmB,GAOpB,WAAmBuF,GAAsC,oDANzC,IAMyC,iCALrC,IAKqC,qCAJjC,IAIiC,kCAHpC,IAGoC,qCAFjC,IAGjBhK,OAAOiK,OAAOX,KAAMU,ICRP,GAIpB,WAAmBA,GAAgC,oDAHnC,IAGmC,iCAF/B,IAGbhK,OAAOiK,OAAOX,KAAMU,ICGtB,G,6FACsC,kB,oDAE/B8I,GACX,OAAO,EAAAzJ,EAAMU,KAAN,UAAcT,KAAKyK,wBAAnB,iBAAmDjB,M,wFAGvCvT,G,iGACL,EAAA8J,EAAMU,KAAN,UAAcT,KAAKyK,wBAAnB,WAAqDxU,EAAM,CAAE+K,qBAAqB,I,uCAAS/K,M,kMAGtFA,G,iGACL,EAAA8J,EAAMU,KAAN,UAAcT,KAAKyK,wBAAnB,WAAqDxU,G,uCAAOA,M,oMAGrDA,G,iGACP,EAAA8J,EAAMU,KAAN,UAAcT,KAAKyK,wBAAnB,aAAuDxU,G,uCAAOA,M,iHAK/D,MC7BM,GAKpB,WAAmByK,GAAwC,oDAJ3C,IAI2C,iCAHvC,IAGuC,kCAFtC,IAGdhK,OAAOiK,OAAOX,KAAMU,ICmBT,gCAAgB,CAC3BkF,WAAY,CAAEC,mBAAiBC,cAAY+B,mBAAiBC,uBAC5D1B,MAF2B,WAGvB,IAOI2B,EAPE2C,EAAQ,iBACR1C,EAAQ,kBAFb,EAGa,iBAAN7M,EAHP,EAGOA,EACF+M,EAAQC,KAERwC,EAAc,IAAIC,GAClBC,EAAqB,IAAI,GAE3BzC,EAAS,GAAI0C,EAAa,GAC1BnC,GAA8B,EAC5BlF,EAAoB,iBAAI,IACxBJ,EAAsB,kBAAI,GAC1Bc,EAAmB,kBAAI,GACvBiG,EAAkB,sBAAS,kBAAI,IAASZ,EAAW,sBAAS,iBAAI,KAClEzF,EAAU,kBAAI,GAAQX,EAAS,kBAAI,GAEjCkH,EAAa,uBAAS,kBAAMlH,EAAOlI,MAAQ,wBAA0B,MACrEwN,EAAe,iBAAI,MACrBD,GAAuB,EACrBG,EAAY,6BAEdnE,EAAiB,GACfF,EAAe,kBAAI,GACnBwG,EAAe,IAAI,GACnBC,EAAU,GAAH,OAAM,EAAOjJ,iBAE1B,SAASkJ,EAAYC,GAIjB,OAHIF,EAAQG,SAAS,MAAQD,EAAKE,WAAW,OACzCF,EAAOA,EAAKG,UAAU,IAEnBL,EAAUE,EAErB,IAAMV,EAAkB,WACpB,IAAMc,EAAY,GAAO7S,QAAQ,CAAEuB,KAAM,UAAWuR,SACpDR,EAAavG,MAAMyG,EAAYK,KAE7Bf,EAAmB,WACrB,IAAMiB,EAAmB,GAAO/S,QAAQ,CAAEuB,KAAM,kBAAmBuR,SACnE,OAAON,EAAYO,IAEjB3C,EAAiB,yDAAG,iGACjBX,EAAMY,QAAQC,mBADG,0CAEX,GAFW,UAItBtE,EAAiB,IAEbmE,EANkB,gCAOZA,EAAUI,kBAPE,uBAQKJ,EAAUK,iBAAiB,iBARhC,OAQlBxE,EARkB,iBAWA,MAAlBA,QAA4CvK,GAAlBuK,GAAiD,IAAlBA,EAXvC,wBAYlBuD,EAAMkB,IAAI,CACNtF,SAAU,QACVuF,QAAShO,EAAE,sBACXiO,OAAQjO,EAAE,mCAfI,mBAiBX,GAjBW,kCAoBf,GApBe,4CAAH,qDAuBvB,gBAAQ,CACJkO,KAAM,CACF,CACIrP,KAAM,SACNsP,QAAS,cAKrB,uBAAS,wCAAC,mHACNlB,EAAM,oBAAGsC,EAAMe,MAAM,cAAf,aAAG,EAAoB7D,kBAAvB,QAAqC,GAC3CkD,EAAU,oBAAGJ,EAAMe,MAAM,gBAAf,aAAG,EAAsB7D,kBAAzB,QAAuC,GAF3C,SAKF7D,EAAQ7I,OAAQ,EALd,SAMgByP,EAAYe,OAAO,IAAI,GAAiB,CACtDtD,OAAQA,EACR0C,WAAYA,KARd,UAMI1J,EANJ,OAWEA,EAAIqC,oBACJA,EAAkBvI,MAAQkG,EAAIqC,mBAGlC2G,EAAgBlP,MAAQkG,EAAIuK,WAC5BnC,EAAStO,MAAQkG,EAAIoI,SACrBb,EAA8BvH,EAAIuH,6BAC9BvH,EAAIuK,aAAchD,EAlBpB,6CAoByB,IAAI,GAAgBgB,iBAAiBvB,GApB9D,QAoBML,EApBN,OAoBuE,GAChD,MAAbA,IACA1E,EAAoBnI,OAAQ,EAC5B8M,EAAMkB,IAAI,CACNtF,SAAU,QACVuF,QAAShO,EAAE,sBACXiO,OAAQjO,EAAE,yCA1BxB,2HAqCN4I,EAAQ7I,OAAQ,EArCV,mEAwCV,IAAMqI,EAAO,sBAAS,CAClBC,QAAS,GACTE,cAAe,KAGbC,EAAiB,kBAAMJ,EAAKC,UAAYD,EAAKG,eAC7C4C,EACN,CACI5C,cAAe,CAAEJ,SAAA,QAAUK,mBAGzBd,EAAK,gBAAayD,EAAO/C,GAEzBqG,EAAY,yDAAG,0GAERnB,EAFQ,gCAGHoC,EAAmBjB,aAAa7B,EAAUxL,GAAIkI,GAH3C,OAIT/N,OAAOgS,EAAaxN,OAAOmM,aAC3BoB,GAAuB,EALd,OAObtE,EAAiBjJ,OAAQ,EAPZ,4GAAH,qDAaZoJ,EAAsB,yDAAG,8GAChBuE,IADgB,yEAK3BJ,GAAuB,EALI,SAMrBmB,IANqB,2CAAH,qDAStBxF,EAAc,yDAAG,WAAOlE,GAAP,0FACnBkD,EAAOlI,OAAQ,EADI,UAGVyN,EAHU,gCAIAE,IAJA,kFASG8B,EAAYiB,OAAO,IAAI,GAAuB,CAC5DxD,OAAQA,EACR0C,WAAYA,EACZe,eAAgB3L,EAChB6J,YAAaxG,EAAKC,QAClBiB,eAAgBA,KAdL,OASTrD,EATS,OAiBVA,EAAIuK,YASDhD,IACAxE,EAAiBjJ,OAAQ,EACzBuN,GAAuB,GAE3BlE,EAAarJ,OAAQ,GAXrB8M,EAAMkB,IAAI,CACNtF,SAAU,QACVuF,QAAShO,EAAE,sBACXiO,OAAQjO,EAAE,0CACV8O,KAAM,MAvBC,6DAmCnB7G,EAAOlI,OAAQ,EAnCI,0DAAH,sDAuCd0H,EAAc,yDAAG,WAAOsH,GAAP,oFACnBrH,EAAG3H,MAAMqL,SACJ2D,EAFc,iEAMRrB,IANQ,sEAUfF,EAVe,2CAYLgC,EAAYmB,SAAS,IAAI,GAAyB,CACpD1D,OAAQA,EACR0C,WAAYA,EACZf,YAAaxG,EAAKC,WAfX,yBAkBLoG,IAlBK,6FAwBfxF,EAAe,IAxBA,0DAAH,sDA4BpB,MAAO,CACHb,OACAV,KACAuF,SACA0C,aACAtB,WACAY,kBACArG,UACAX,SACAkH,aACA1H,iBACAzH,IACAgJ,mBACAuE,eACAtE,iBACAf,sBACAiB,yBACAb,oBACAyE,QACA3D,eACAiG,kBACAD,uB,UClQhB,GAAO3F,OAAS,GAChB,GAAO4B,UAAY,kBAEJ,U,ICPN3I,MAAM,gB,UAEEA,MAAM,e,IACFA,MAAM,2B,IACFA,MAAM,mB,eASlBA,MAAM,e,IACFA,MAAM,oC,IAcY8E,IAAI,kB,IASJA,IAAI,sB,IASJA,IAAI,qB,IASJA,IAAI,sB,IASJA,IAAI,kB,IAkBJA,IAAI,4B,IASJA,IAAI,kB,IAeJA,IAAI,wB,IASJA,IAAI,uB,8iBAnHnC,gCAuIM,MAvIN,GAuIM,CAtIc,EAAAoB,S,yBACZ,gCAMM,MANN,GAMM,CALF,gCAIM,MAJN,GAIM,CAHF,gCAEM,MAFN,GAEM,CADF,yBAA0B,GAAhBsG,OAAO,iB,yBAM7B,gCAAuB,qCAAhB,EAAA0B,UAAQ,IAEnB,gCAyHM,MAzHN,GAyHM,CAxHF,gCAuHM,MAvHN,GAuHM,CAtHc,EAAAhI,S,2BACZ,gCAEM,8DAFiDuB,MAAM,GAAG5I,SAAI,SAAtBnG,G,gCAA9C,gCAEM,OAFDsH,MAAM,4BAA+DrC,IAAKjF,G,CAC3E,yBAA0B,GAAhB8T,OAAO,c,gCAGzB,gCAgHW,uBA/GP,gCAwGO,QAxGA,SAAM,2DAAU,EAAA2B,aAAa,EAAAnJ,GAAGC,WAAa,EAAAmJ,kBAAY,e,CACnC,EAAAC,M,iEAAzB,yBAOmB,W,8BANf,iBAIsB,CAJtB,yBAIsB,GAJX3P,GAAG,iBACHsB,MAAM,iB,WACG,EAAA2G,M,qDAAA,EAAAA,MAAK,IACdrB,SAAA,GACAgJ,SAAA,I,uBACX,gCAA2E,QAA3E,GAA2E,6BAA5C,EAAAhR,EAAC,wC,OAGpC,yBAOmB,Q,8BANf,iBAIsB,CAJtB,yBAIsB,GAJXoB,GAAG,qBACHsB,MAAM,iB,WACG,EAAA2K,QAAQrK,U,qDAAR,EAAAqK,QAAQrK,UAAS,IAC1BgF,SAAA,GACAgJ,SAAA,I,uBACX,gCAA+E,QAA/E,GAA+E,6BAA5C,EAAAhR,EAAC,wC,MAGxC,yBAOmB,Q,8BANf,iBAIsB,CAJtB,yBAIsB,GAJXoB,GAAG,oBACHsB,MAAM,iB,WACG,EAAA2K,QAAQpK,S,qDAAR,EAAAoK,QAAQpK,SAAQ,IACzB+E,SAAA,GACAgJ,SAAA,I,uBACX,gCAA6E,QAA7E,GAA6E,6BAA3C,EAAAhR,EAAC,uC,MAGvC,yBAOmB,Q,8BANf,iBAIsB,CAJtB,yBAIsB,GAJXoB,GAAG,qBACHsB,MAAM,iB,WACG,EAAAuO,kB,qDAAA,EAAAA,kBAAiB,IAC1BjJ,SAAA,GACAgJ,SAAA,I,uBACX,gCAA+E,QAA/E,GAA+E,6BAA5C,EAAAhR,EAAC,wC,MAGxC,yBAOmB,Q,8BANf,iBAIgG,CAJhG,yBAIgG,GAJrFoB,GAAG,iBACHsB,MAAK,6BAAC,iBAAgB,cAGE,EAAAgF,GAAG4G,MAAM3G,UAAY,EAAAmJ,iBAAmB,EAAApJ,GAAG4G,MAAMxG,U,WAFhE,EAAAJ,GAAG4G,MAAMvG,O,qDAAT,EAAAL,GAAG4G,MAAMvG,OAAM,IACvBC,SAAU,EAAAC,QAAU,EAAA8I,OAAS,EAAAG,gC,0CAEzC,gCAAuE,QAAvE,GAAuE,6BAAxC,EAAAlR,EAAC,oC,OAEV,EAAA0H,GAAG4G,MAAM3G,UAAY,EAAAmJ,gBAAkB,EAAAK,iBAAoB,EAAAzJ,GAAG4G,MAAMxG,Q,yBAA9F,yBAUoB,W,8BAThB,iBAEe,CAFK,EAAAJ,GAAG4G,MAAMnG,SAASR,U,yBAAtC,yBAEe,W,8BADX,iBAA6C,C,0DAA1C,EAAA3H,EAAC,8C,8CAEY,EAAA8Q,gB,yBAApB,yBAEe,W,8BADX,iBAA+C,C,0DAA5C,EAAA9Q,EAAC,gD,8CAEY,EAAAmR,gB,yBAApB,yBAEe,W,8BADX,iBAA+C,C,0DAA5C,EAAAnR,EAAC,gD,gGAIY,EAAAoR,a,yBAAxB,yBAKmB,W,8BAJf,iBAE+C,CAF/C,yBAE+C,GAFpChQ,GAAG,2BACHsB,MAAM,iB,WACG,EAAAgF,GAAG2J,eAAetJ,O,qDAAlB,EAAAL,GAAG2J,eAAetJ,OAAM,K,uBAC5C,gCAA0F,QAA1F,GAA0F,6BAAjD,EAAA/H,EAAC,6C,8CAG9C,yBAOmB,Q,8BANf,iBAIsF,CAJtF,yBAIsF,GAJ3EoB,GAAG,iBACHsB,MAAK,6BAAC,iBAAgB,aAGA,EAAAgF,GAAG4J,YAAY3J,UAAY,EAAAD,GAAG4J,YAAYxJ,U,WAFvD,EAAAJ,GAAG4J,YAAYvJ,O,qDAAf,EAAAL,GAAG4J,YAAYvJ,OAAM,IAC7BC,SAAU,EAAAC,SAAW,EAAAoF,QAAQkE,uBAAyB,EAAAR,O,0CAElE,gCAAuE,QAAvE,GAAuE,6BAAxC,EAAA/Q,EAAC,oC,MAEX,EAAA0H,GAAG4J,YAAY3J,UAAY,EAAAD,GAAG4J,YAAYxJ,Q,yBAAnE,yBAKoB,W,8BAHhB,iBAEe,CAFK,EAAAJ,GAAG4J,YAAYE,iBAAiB7J,U,yBAApD,yBAEe,W,8BADX,iBAAqD,C,0DAAlD,EAAA3H,EAAC,sD,gGAIZ,yBAOmB,Q,8BANf,iBAIsB,CAJtB,yBAIsB,GAJXoB,GAAG,uBACHsB,MAAM,iB,WACG,EAAA+O,OAAO5S,K,qDAAP,EAAA4S,OAAO5S,KAAI,IACpBmJ,SAAA,GACAgJ,SAAA,I,uBACX,gCAAkF,QAAlF,GAAkF,6BAA7C,EAAAhR,EAAC,yC,MAG1C,yBAOmB,Q,8BANf,iBAIsB,CAJtB,yBAIsB,GAJXoB,GAAG,sBACHsB,MAAM,iB,WACG,EAAA+O,OAAOC,I,qDAAP,EAAAD,OAAOC,IAAG,IACnB1J,SAAA,GACAgJ,SAAA,I,uBACX,gCAAgF,QAAhF,GAAgF,6BAA5C,EAAAhR,EAAC,wC,MAS1B,EAAA+Q,M,iEANf,yBAMwB,G,MANfvO,MAAO,EAAAxC,EAAC,8BACT0C,MAAM,mBACNjE,KAAK,SACJuJ,SAAU,EAAAC,SAAY,EAAAP,GAAG4G,MAAMxG,SAAW,EAAAJ,GAAG4J,YAAYxJ,SAAW,EAAAJ,GAAG2J,eAAevJ,OACtFe,KAAM,EAAAsG,WACPpG,QAAQ,S,0CAQL,EAAAgI,M,iEAJf,yBAIwB,G,MAJfvO,MAAO,EAAAxC,EAAC,sCACT0C,MAAM,mBACL,QAAK,iCAAE,EAAAiG,QAAQ/M,KAAI,qBACnBoM,SAAU,EAAAC,Q,0CAOnC,yBAAmK,GAAtI3F,QAAS,EAAA0G,iB,oDAAA,EAAAA,iBAAgB,IAAG,WAAQ,iCAAE,EAAAC,eAAeC,KAAU,yBAAsB,iCAAE,EAAAC,2BAA0BrH,IAAI,gB,oBAClJ,yBAA8G,GAAxEQ,QAAS,EAAAqP,yB,oDAAA,EAAAA,yBAAwB,IAAG,WAAQ,iCAAE,EAAA1I,eAAeC,M,oBACnG,yBAMS,GANDjH,SAAS,SAAUE,UAAU,EAAOC,YAAY,EAAOP,OAAQ,EAAA7B,EAAC,0BACxDsC,QAAS,EAAA8G,a,oDAAA,EAAAA,aAAY,IAAEhI,GAAG,Y,CAE3BW,OAAM,sBACb,iBAAwD,CAAxD,yBAAwD,GAAhDS,MAAM,KAAU,QAAK,0BAAE,EAAA4G,cAAY,U,8BAF/C,iBAAkB,C,0DAAf,EAAAwI,cAAe,IAClB,O,6BAIJ,yBAMS,GAND3P,SAAS,SAAUE,UAAU,EAAOC,YAAY,EAAOP,OAAQ,EAAA7B,EAAC,0BACxDsC,QAAS,EAAAuP,sB,oDAAA,EAAAA,sBAAqB,IAAEzQ,GAAG,qB,CAEpCW,OAAM,sBACb,iBAAiE,CAAjE,yBAAiE,GAAzDS,MAAM,KAAU,QAAK,0BAAE,EAAAqP,uBAAqB,U,8BAFxD,iBAA2B,C,0DAAxB,EAAAC,uBAAwB,IAC3B,O,0DCjJF,G,0EACY,W,kHAEI1Q,G,iGACN,EAAAwD,EAAMjF,IAAN,UAAakF,KAAKhG,KAAlB,YAA0BuC,I,uCAAOtG,M,iHAKlC,M,ICbL4H,MAAM,iB,iDAAZ,gCAEO,OAFP,GAEO,CADH,wBAAQ,sBCDhB,MAAM,GAAS,GACf,GAAO+G,OAAS,GAED,UCJM,GAOpB,WAAmBlE,GAAyB,gDANhC,IAMgC,2BAL9B,IAK8B,0BAJ/B,GAI+B,kCAHvB,IAGuB,mCAFtB,GAGfhK,OAAOiK,OAAOX,KAAMU,I,4BCFf7C,MAAM,e,8LALf,yBAiBS,GAjBOJ,QAAS,EAAAgJ,U,kDAAA,EAAAA,UAAS,IAAEC,MAAA,I,CACrB1J,OAAM,sBACb,iBAAkE,CAAlE,gCAAkE,uCAA3D,EAAA7B,EAAC,0DAQD+B,OAAM,sBACb,iBAI0B,CAJ1B,yBAI0B,GAJjBS,MAAO,EAAAxC,EAAC,8BACT0C,MAAM,iBACNmG,KAAK,cACJb,UAAW,EAAA2D,MACX,QAAO,EAAAC,Q,yEAVpB,iBAGM,CAHN,gCAGM,MAHN,GAGM,CAFF,yBAAyD,G,WAArC,EAAAD,M,qDAAA,EAAAA,MAAK,IAAGlN,KAAM,EAAAsT,UAAWlG,UAAA,I,0DAC7C,gCAAyF,KAA/DnJ,MAAM,YAAiB,QAAK,+BAAE,EAAAsP,cAAe,EAAAA,gB,wBAA3D,EAAAA,gB,4BAA6E,gCAA8F,KAArEtP,MAAM,kBAAuB,QAAK,+BAAE,EAAAsP,cAAe,EAAAA,gB,uBAAjE,EAAAA,sB,oBCLjG,oCAAgB,CAC3BpH,MAAO,CACHtI,QAASwI,SAEbE,MAAO,CAAE,iBAAkB,YAC3BiH,SAAU,CACNF,UADM,WAEF,OAAOlN,KAAKmN,aAAe,OAAS,aAG5C/G,MAV2B,SAUrBL,EAVqB,GAUN,IAANM,EAAM,EAANA,KAAM,EACH,iBAANlL,EADS,EACTA,EACF2L,EAAQ,iBAAI,IACZL,EAAY,sBAAS,CACvB3L,IADuB,WAEnB,OAAOiL,EAAMtI,SAEjB2J,IAJuB,SAInBvC,GACAwB,EAAK,iBAAkBxB,MAIzBkC,EAAS,WACXV,EAAK,WAAYS,EAAM5L,OACvB4L,EAAM5L,MAAQ,IAGlB,MAAO,CACH4L,QACAL,YACAM,SACA5L,MAGRlF,KAlC2B,WAmCvB,MAAO,CACHkX,cAAc,M,UClC1B,GAAOvI,OAAS,GAChB,GAAO4B,UAAY,kBAEJ,UCHT,G,0EACY,S,oNAEF,EAAAzG,EAAMjF,IAAN,UAAakF,KAAKhG,O,uCAAS/D,M,4MAGXoX,G,iGAChB,EAAAtN,EAAMU,KAAN,UAAcT,KAAKhG,KAAnB,iBAAwCqT,G,uCAAkBpX,M,iHAK3D,M,aCjBM,G,gEACL,K,aCDK,G,uGAEDqX,GACZ,IAAIhW,EAASgW,EACb,OAAIhW,EAAOiW,QAAQ,KAAO,IACjBvN,KAAKwN,yBAAyBF,KAC/BA,EAAOA,EAAKG,QAAQ,IAAK,KAE7BnW,EAASgW,EAAKjC,UAAU,EAAGiC,EAAKC,QAAQ,MACpCvN,KAAK0N,iBAAiBJ,IACfhW,EAGRgW,I,+CAGqBA,GAC5B,GAAIA,EAAKC,QAAQ,MAAQ,EAAG,CACxB,IAAMI,EAASL,EAAKjC,UAAUiC,EAAKC,QAAQ,KAAMD,EAAK7W,QACtD,GAAIkX,EAAOJ,QAAQ,MAAQ,EACvB,OAAO,EAGf,OAAO,I,uCAGaD,GACpB,IAAMK,EAASL,EAAKjC,UAAUiC,EAAKC,QAAQ,MAAME,QAAQ,IAAK,IAC9D,QAAI,qBAAqBjL,KAAKmL,O,KCGnB,gCAAgB,CAC3B/H,WAAY,CAAEgI,kBAAgB/H,mBAAiBC,cAAYgC,sBAAoB+F,+BAC/EzH,MAF2B,WAEtB,UACK4B,EAAQ,kBACRE,EAAQC,KAFb,EAGa,iBAANhN,EAHP,EAGOA,EACF2S,EAAU,IAAI,GACd1F,EAAS,iBAAG,oBAACF,EAAMG,MAAMC,YAAb,aAAC,EAAkB/L,UAAnB,QAAyB,IAErCwH,EAAU,kBAAI,GAAQX,EAAS,kBAAI,GACnCkH,EAAa,uBAAS,kBAAMlH,EAAOlI,MAAQ,wBAA0B,MACrEqJ,EAAe,kBAAI,GACnByI,EAAwB,kBAAI,GAC5BzE,EAAgB,IAAI,EACpBqE,EAAS,sBAAS,IAAI,IACtBG,EAAe,iBAAI,IACnBE,EAAwB,iBAAI9R,EAAE,2CAC9B+Q,EAAkC,QAA1B,UAAAhE,EAAMG,MAAMC,YAAZ,eAAkB1O,MAG5BmU,EAAc,IAAI,GAChBvF,EAAU,sBAAS,IAAI,IACvBwF,EAAQ,sBAAS1I,SAEvB,SAAS2I,EAAeC,GACpB,IAAMC,EAAe,gBAAYD,GAEjC,QAAIC,GACkC,WAA3BA,EAAaC,UAK5B,IAYIrG,EAZEsG,EAAsB,WACxB,MAAiC,IAA1B7F,EAAQgE,gBAAkD,MAA1BhE,EAAQgE,qBAAoDtS,GAA1BsO,EAAQgE,gBAAqC,eAAwBhE,EAAQgE,iBAGpJG,EAAmB,kBAAMnE,EAAQkE,uBAClC,IAAI4B,OAAO,oFAAqF9L,KAAKgG,EAAQiE,cAAgBwB,EAAezF,EAAQiE,cAEnJnG,EAAQ,CACVmD,MAAO,CAAEnG,SAAA,SACTmJ,YAAa,CAAEE,oBACfH,eAAgB,CAAE6B,wBAGhBxL,EAAK,gBAAayD,EAAOkC,GACzBhE,EAAQ,iBAAI,IACdiE,GAAuB,EACrBC,EAAe,iBAAI,MAEnBE,EAAY,6BACdnE,EAAiB,GAEfoE,EAAiB,yDAAG,iGACjBX,EAAMY,QAAQC,mBADG,0CAEX,GAFW,UAItBtE,EAAiB,IAEbmE,EANkB,gCAOZA,EAAUI,kBAPE,uBAQKJ,EAAUK,iBAAiB,iBARhC,OAQlBxE,EARkB,iBAWA,MAAlBA,QAA4CvK,GAAlBuK,GAAiD,IAAlBA,EAXvC,wBAYlBuD,EAAMkB,IAAI,CACNtF,SAAU,QACVuF,QAAShO,EAAE,sBACXiO,OAAQjO,EAAE,mCAfI,mBAiBX,GAjBW,kCAoBf,GApBe,4CAAH,qDAuBjB8Q,EAAe,WACjB,MAAwB,IAAjBzD,EAAQiB,QAAuB,eAAwBjB,EAAQiB,QAGpE8E,EAAkB,WACpB,OAAO,eAAwB/F,EAAQiB,OAAS,GAAK,aAGnD6C,EAAe,WACjB,OAA4B,MAApB9D,EAAQgB,eAAwCtP,GAApBsO,EAAQgB,UAAyBhB,EAAQgB,SAAS/S,OAAS,KAC1FwV,KAAkBzD,EAAQiB,MAAM+E,eAAiBV,EAAQW,SAASV,EAAYtE,OAAO+E,eArF7F,SAwFcE,IAxFd,6FAwFD,0GACIhY,OADJ,KACkB8R,EADlB,SACiCD,EAAcgB,QAD/C,wBACW5I,OADX,qBAEI6D,EAAMtJ,MAAQsN,EAAQgB,SAAWhB,EAAQgB,SAAWhB,EAAQiB,MAC5DsE,EAAc,IAAI,GAAWvF,GAC7BA,EAAQiB,MAAQqE,EAAQW,SAASjG,EAAQiB,OACzCvB,EAAMyG,OAAOxP,EAAcyP,QAASpG,GALxC,4CAxFC,wBAgGD,IAAMqG,EAA8B,WAEhC,QADA,OAAIb,EAAMc,MAAK,SAAAC,GAAC,MAAyB,OAArBA,EAAEC,sBAEdxG,EAAQiB,OAASjB,EAAQgE,gBAAzB,UAA2ChE,EAAQgE,sBAAnD,OAA2C,EAAwBrB,SAAS,aAA5E,UAA2F3C,EAAQgE,sBAAnG,OAA2F,EAAwBrB,SAAS,cAaxI,gBAAQ,CACJ9B,KAAM,CACF,CACIrP,KAAM,SACNsP,QAAS,cAKrB,uBAAS,wCAAC,qGACNvF,EAAQ7I,OAAQ,EADV,kBAGIwT,IAHJ,mBAIFhY,OAJE,KAIYsX,EAJZ,UAIyB,IAAI,IAAciB,SAJ3C,+BAIKtO,OAJL,0BAKFjK,OALE,KAKYkW,EALZ,WAK0B,IAAI,IAAesC,QAAQ1G,EAAQ2G,UAL7D,yBAKKxO,OALL,kFAYNoD,EAAQ7I,OAAQ,EAZV,2DAeV,IAAM6Q,EAAW,uBAAS,2BAASvD,EAAQrK,UAAjB,YAA8BqK,EAAQpK,aAC1DgO,EAAoB,uBAAS,kBAAO5D,EAAQ4G,UAE5C,IAAIC,KAAKC,eAAe,SAASC,OAAO/G,EAAQ4G,gBADhDlV,KAGAiK,EAAmB,kBAAI,GACvB2I,EAA2B,kBAAI,GACjC3M,EAAQ,GAENyJ,EAAY,yDAAG,0GAERnB,EAFQ,iCAGH,IAAI,IAAqBmB,aAAa7B,EAAUxL,GAAIkI,GAHjD,OAIT/N,OAAOgS,EAAaxN,OAAOmM,aAC3BoB,GAAuB,EALd,OAObtE,EAAiBjJ,OAAQ,EAPZ,4GAAH,qDAaZoJ,EAAsB,yDAAG,8GAChBuE,IADgB,yEAI3BJ,GAAuB,EAJI,SAKrBmB,IALqB,2CAAH,qDAQtBoC,EAAW,yDAAG,WAAO9B,GAAP,4FACX2E,IADW,uBAEZ7B,EAAsB9R,OAAQ,EAFlB,6BAKVsU,EAAiB,IAAI,GAAWhH,GAClCsF,EAAQW,SAASV,EAAYtE,QAAU+F,EAAe/F,QACtD+F,EAAe/F,MAAQsE,EAAYtE,OAED,KAAlC+F,EAAehD,iBACfgD,EAAehD,oBAAiBtS,GAEpCiG,EAAQ,KAAK4N,EAAayB,KAEtBtF,GAAS/J,EAAM1J,OAAS,GAdZ,oBAgBZ2M,EAAOlI,OAAQ,EAhBH,SAkBHsN,EAAQiH,kBAAoB1B,EAAYtE,OAAS+F,EAAe/F,MAlB7D,wBAmBEiG,EAA2B,IAAI,GACrCA,EAAyBjG,MAAQ+F,EAAe/F,MApB5C,UAqBElB,EAAcoH,2BAA2BD,GArB3C,YAuBJlH,EAAQkB,wBAvBJ,iBAwBJoD,EAAyB5R,OAAQ,EAxB7B,yCA0BeqN,EAAcoB,iBAAiBvB,EAAOlN,OA1BrD,WA0BJ6M,EA1BI,OA0B6D,IAC7DA,EA3BA,kCA4BWc,IA5BX,sFA+BMe,IA/BN,gCAiCAmD,EAAa7R,MAAQC,EAAE,uCAAwC,CAAEyU,UAAWpL,EAAMtJ,QAClFqJ,EAAarJ,OAAQ,EAlCrB,qEA0CZkI,EAAOlI,OAAQ,EA1CH,0DAAH,sDA8CXkJ,EAAc,yDAAG,WAAOlE,GAAP,8FACnBkD,EAAOlI,OAAQ,EADI,SAGT2U,EAAW9B,EAAYtE,MAHd,SAITlB,EAAcpI,MAAMiI,EAAOlN,MAAOiF,EAAOD,GAJhC,cAMXsI,EAAQkB,wBACRoD,EAAyB5R,OAAQ,GAEjCiJ,EAAiBjJ,OAAQ,EACzBuN,GAAuB,GAVZ,kBAcLiG,IAdK,OAeNlG,EAAQgB,UAAYqG,GAAY9B,EAAYtE,QAC7CsD,EAAa7R,MAAQC,EAAE,oCAAqC,CAAEyU,UAAWpL,EAAMtJ,QAC/EqJ,EAAarJ,OAAQ,GAjBd,6DAyBf2H,EAAG3H,MAAM4U,SAET9H,EAAMkB,IAAI,CACNtF,SAAU,UACVuF,QAAS,UACTC,OAAQ,qBACRa,KAAM,MA/BK,6DAqCnB7G,EAAOlI,OAAQ,EArCI,iEAAH,sDAwCpB,MAAO,CACHiJ,mBACAJ,UACAX,SACAkH,aACAzH,KACA2F,UACAoE,SACAb,WACAK,oBACAJ,cACA5H,iBACAjJ,IACA2R,2BACAtI,QACAyH,eACAsC,kBACAjC,eACA/H,eACAD,yBACAoE,eACAqE,eACAb,QACA8B,QACAhB,wBACAC,wBACA4B,gCAIRzB,SAAS,CACLb,YADK,WAED,OAAOvM,KAAKgO,MAAMc,MAAK,SAAAC,GAAC,MAAyB,OAArBA,EAAEC,oBAGlC3C,+BALK,WAMD,OAAmC,KAA5BrM,KAAK4M,OAAOmD,cAAoD,KAA5B/P,KAAK4M,OAAOmD,cAChB,KAA5B/P,KAAK4M,OAAOmD,cAAmD,OAA5B/P,KAAK4M,OAAOmD,iB,UC7T1E,GAAOnL,OAAS,GAChB,GAAO4B,UAAY,kBAEJ,U,UCNP3I,MAAM,0BAAiDL,MAAA,yB,UACvCK,MAAM,c,2BAmBrBA,MAAM,oC,IAeDA,MAAM,gB,wUApCnB,gCAAmC,uCAA5B,EAAA1C,EAAC,uBACqC,EAAA6U,iB,yBAA1C,gCAA8H,KAA9H,GAA8H,6BAAnC,EAAA7U,EAAC,+B,uCACjF,EAAA4I,S,yBAAX,gCAIG,MAJH,GAIG,E,2BAHC,gCAEM,2DAFeuB,MAAM,GAAG5I,SAAI,SAAtBnG,G,gCAAZ,gCAEM,OAFkCiF,IAAKjF,GAAC,CAC1C,yBAA0B,GAAhB8T,OAAO,c,mCAGzB,gCAaM,UAZe,EAAA2F,iB,yBAAjB,yBAMS,G,MANyBC,IAAI,MAAOC,KAAM,EAAAlC,MAAOnQ,MAAM,kBAAmB,MAAK,EAAAsS,qB,CACzEC,KAAI,sBACX,gBADcC,EACd,EADcA,QACd,MADqB,E,yBACrB,gCAEM,OAFA7U,IAAK6U,EAAQrB,iB,2BACf,yBAA+F,GAAvFnR,MAAM,sBAAuByS,cAAY,EAAOC,SAAUF,EAAU7U,IAAK,EAAAgV,a,iFAI7F,gCAIG,O,MAJUN,KAAM,EAAAlC,MAAOnQ,MAAM,mB,6BAC5B,gCAEM,2CAFc,EAAAmQ,OAAK,SAAbyC,G,gCAAZ,gCAEM,OAF4BjV,IAAKiV,EAAKzB,iB,CACxC,yBAA8C,GAArCsB,cAAY,EAAQC,SAAUE,G,2CAInD,gCAGM,MAHN,GAGM,CAF+C,EAAAT,iB,yBAAjD,yBAAgI,G,MAAxHnS,MAAM,6BAAqDF,MAAO,EAAAxC,EAAC,sBAAyB,QAAK,+BAAE,EAAAuV,sB,0DACzD,EAAAV,iB,yBAAlD,yBAAyI,G,MAAjInS,MAAM,8BAAsDF,MAAO,EAAAxC,EAAC,sBAA0B,QAAK,+BAAE,EAAAwV,6B,4DAGpH,yBAOS,GAPDvT,SAAS,SAAUE,UAAU,EAAOC,YAAY,EAAOP,OAAQ,EAAA7B,EAAC,0BAA6BqC,MAAO,eAClGC,QAAS,EAAA8G,a,kDAAA,EAAAA,aAAY,IAAEhI,GAAG,Y,CAExBW,OAAM,sBAChB,iBAA2H,CAA3H,yBAA2H,GAAlHS,MAAO,EAAAiT,+BAAiC,QAAK,C,+BAAE,EAAA9M,QAAQ/M,KAAI,kB,wBAA8B,EAAAwN,cAAY,M,kBAChG,EAAAsM,kC,yBAAd,yBAAqI,G,MAApFlT,MAAO,EAAAxC,EAAC,sCAA6C,QAAK,+BAAE,EAAA2V,wB,4FAH9G,iBAAqB,C,0DAAnB,EAAAC,mBAAmB,IACrB,O,6BAME,yBAMS,GANAzT,UAAU,EAAeG,QAAS,EAAAuT,kC,kDAAA,EAAAA,kCAAiC,IAAEtK,MAAA,GAAO1J,OAAQ,EAAA7B,EAAC,0BAA6BqC,MAAO,gB,CAEnHN,OAAM,sBACb,iBAAqG,CAArG,yBAAqG,GAA7FtD,KAAK,SAAU+D,MAAO,EAAAxC,EAAC,qBAAwB,QAAK,+BAAE,EAAA2I,QAAQ/M,KAAI,mB,kBAC1E,yBAA6K,GAApKka,OAAQ,EAAAC,6BAA8BtX,KAAK,SAAU+D,MAAO,EAAAxC,EAAC,0BAA4ByI,SAAS,YAAa,QAAK,+BAAE,EAAAuN,6BAA2B,K,6DAH9J,iBAA4E,CAA5E,gCAA4E,OAA5E,GAA4E,6BAA/C,EAAAhW,EAAC,6C,qDClCxB0C,MAAM,a,qIAFhB,gCAGI,KAHDA,MAAM,WAAYL,MAAK,4BAAE,EAAA4T,WAAWvN,KAAK,IAAK,QAAK,+BAAG,EAAAwN,OAAOC,WAAa,EAAAC,a,CACzE,gCAAmE,OAA9D1T,MAAM,aAAcL,MAAK,4BAAE,EAAAgU,gBAAiBrY,IAAK,EAAAsY,W,YACtD,gCAA6C,OAA7C,GAA6C,6BAAlB,EAAAC,UAAQ,I,QAFgE,EAAAC,4BAA4B,EAAAN,OAAOd,e,QAAlD,M,cCDvE,GAkBpB,WAAmB7P,GAA0B,6DAjBpB,IAiBoB,2BAhB/B,IAgB+B,6BAf7B,IAe6B,6BAd7B,IAc6B,kCAbxB,IAawB,0BAZhC,IAYgC,4BAX9B,IAW8B,iCAVzB,IAUyB,4BAT9B,IAS8B,6BAR7B,IAQ6B,gCAP1B,IAO0B,gCAN1B,IAM0B,gCAL1B,IAK0B,4BAJ9B,IAI8B,iCAHzB,IAGyB,wCAFnB,GAGnBhK,OAAOiK,OAAOX,KAAMU,IChBtB,G,oFAC6B,S,sHAETzK,G,iGACJ,EAAA8J,EAAMU,KAAN,UAAcT,KAAK4R,gBAAkB3b,EAAM,CAAE+K,qBAAqB,I,8BAAS/K,K,yJAIlF,MCXM,G,wEACG,I,gCACJ,I,kCACE,I,0CACQ,KCGX,gCAAgB,CAC/B8P,MAAO,CACHwK,SAAU,GACVe,UAAWrL,SAGfG,MAN+B,SAMzBL,GAAK,kCACD8L,EAAc,IAAI,GAClB3J,EAAQC,KACR2J,EAAO,UAAG/L,EAAMwK,gBAAT,aAAG,EAAgBwB,IAC1BX,EAAY,CACd,yCAAsBrL,EAAMwK,gBAA5B,aAAsB,EAAgByB,aAAtC,QAA+C,GAC/C,+CAA4BjM,EAAMwK,gBAAlC,aAA4B,EAAgB0B,kBAA5C,QAA0D,GAC1D,UAAW,UAAAlM,EAAMwK,gBAAN,SAAgByB,MAAQ,QAAU,GAC7C,gBAAiB,UAAAjM,EAAMwK,gBAAN,SAAgByB,OAAhB,UAAyBjM,EAAMwK,gBAA/B,OAAyB,EAAgB0B,WAAa,GAAK,UAC5E,gBAAiB,UAAAlM,EAAMwK,gBAAN,SAAgByB,MAAQ,eAAiB,GAC1D,sBAAuB,UAAAjM,EAAMwK,gBAAN,SAAgB0B,WAAa,GAAK,sBAGvDT,EAAiB,CACnB,0BAASzL,EAAMwK,gBAAf,aAAS,EAAgB2B,aAAzB,QAAkC,GAClC,2BAAUnM,EAAMwK,gBAAhB,aAAU,EAAgBlG,cAA1B,QAAoC,IAGlC8H,EAAgB,SAACnU,GACnB,OAAIA,EACOoU,IAAIC,gBAAgB,IAAIC,KAAK,CAACtU,GAAQ,CAACpE,KAAM,mBAGjDoE,GAGX,SAASuU,EAAQjF,GACb,OAASA,GAAQ,IAAMA,EAAK7W,OAGhC,SAAS+b,EAAyBvc,GAC9B,IAAIA,EAYA,MAAO,GAXP,OAAQwJ,UAAUC,UACd,IAAK,KACL,QACI,OAAOzJ,EAAK+D,KAChB,IAAK,KACD,OAAQuY,EAAQtc,EAAKwc,QAAwBxc,EAAK+D,KAAnB/D,EAAKwc,OACxC,IAAK,KACD,OAAQF,EAAQtc,EAAKyc,QAAwBzc,EAAK+D,KAAnB/D,EAAKyc,QAQpD,SAASnB,IACL,IAAG,MACOoB,EAAiB,IAAI,GAC3BA,EAAeC,UAAY,kBAC3BD,EAAeE,oBAAsB,SACrCF,EAAeG,YAAc,yBAAgB/M,EAAMwK,gBAAtB,aAAgB,EAAgBvB,iBAAiB,IAC3E9G,EAAMY,QAAQzK,sBACbsU,EAAeG,aAAe,mBAG/B5K,EAAMG,MAAMC,OACXqK,EAAeI,cAAgB7K,EAAMG,MAAMC,KAAK/L,IAEpDsV,EAAYmB,YAAYL,GAE5B,UAGW,QAARb,IACC,UAAA7V,OAAOgX,KAAKnB,EAAS,UAAA/L,EAAMwK,gBAAN,SAAgB2C,iBAAmB,QAAU,iBAAlE,SAA6EC,SAIrF,SAASxB,EAA4B1b,GACjC,IAAIA,EAYA,MAAO,GAXP,OAAQwJ,UAAUC,UACd,IAAK,KACL,QACI,OAAOzJ,EAAKmd,UAChB,IAAK,KACD,OAAOnd,EAAKod,UAChB,IAAK,KACD,OAAOpd,EAAKqd,WAQ5B,MAAO,CACHlC,YACAI,iBACAE,SAAUc,EAAyBzM,EAAMwK,UACzCkB,UAAWU,EAAa,UAACpM,EAAMwK,gBAAP,aAAC,EAAgBvS,OACzCuT,UACAI,kCCvGZ,GAAO/M,OAAS,GAED,U,wBCDT,G,0EACY,c,iHAEG3O,G,iGACN,EAAA8J,EAAMU,KAAKT,KAAKhG,KAAM/D,G,yOAGjB+D,EAAcuZ,EAAmBC,G,iGACrC,EAAAzT,EAAMjF,IAAN,UAAakF,KAAKhG,KAAlB,oBAAkCA,EAAlC,sBAAoDuZ,EAApD,uBAA4EC,I,uCAAevd,M,qHAK3F,MCjBK,G,6DACR,I,2BACE,I,gCACK,I,8BACF,I,kCACI,I,6BACL,K,0ECLX,EAAAkF,EAAC,sDAAyD,EAAAsY,0BCM7C,oCAAgB,CAC3BrN,MAD2B,WACtB,MACa,iBAANjL,EADP,EACOA,EACF+M,EAAQC,KACRG,EAAOJ,EAAMG,MAAMC,KACnBmL,EAAyB,iBAAI,IAInC,OAHInL,GAAQA,EAAKmL,yBACbA,EAAuBvY,MAAQ,IAAIwG,KAAK4G,EAAKmL,wBAAwBC,sBAElE,CACHvY,IACAsY,6B,UCbhB,GAAO7O,OAAS,GAChB,GAAO4B,UAAY,kBAEJ,U,aCRM,G,+DACN,K,wBCDT,I,yCAGF,yEACExG,KAAK2T,OAAS,G,kDAGbC,EAAmBC,GACpB7T,KAAK2T,OAAOC,GAAa5T,KAAK2T,OAAOC,IAAc,GACnD5T,KAAK2T,OAAOC,GAAW7c,KAAK8c,K,0BAG1BD,EAAmBC,GACrB,GAAI7T,KAAK2T,OAAOC,GACd,IAAK,IAAIrd,EAAI,EAAGA,EAAIyJ,KAAK2T,OAAOC,GAAWnd,OAAQF,IACjD,GAAIyJ,KAAK2T,OAAOC,GAAWrd,KAAOsd,EAAI,CACpC7T,KAAK2T,OAAOC,GAAWjc,OAAOpB,EAAG,GACjC,S,2BAMHqd,EAAmB3d,GAClB+J,KAAK2T,OAAOC,IACd5T,KAAK2T,OAAOC,GAAWE,SAAQ,SAAUD,GACvCA,EAAG5d,U,MAMI,OAAI,GCTN,gCAAgB,CAC3B+D,KAAM,OACN4L,WAAY,CAAEmO,SAAOC,UAAA,MACrB5N,MAH2B,WAIvB,IAAM6N,EAAc,IAAI,GAClB/L,EAAQC,KACR6F,EAAQ,sBAAS1I,SACjB4O,EAAe,sBAAS5O,SACxB6O,EAAS,kBACTlM,EAAS,iBAETlE,EAAU,kBAAI,GACdQ,EAAe,kBAAI,GACnBwM,EAAoB,iBAAI,IAV7B,EAWa,iBAAN5V,EAXP,EAWOA,EACFiZ,EAAsB,IAAI,GAC1BC,EAAuB,uBACvBC,EAAY,SACZhM,EAAOJ,EAAMG,MAAMC,KACnB6I,EAA8B,kBAAI,GAClCX,EAAc,iBAAI,GAClBR,EAAkB,kBAAI,GAW5B,SAASuE,EAA8BC,GACnC,IAAMC,EAAOC,KAAKC,IAAIH,EAA2BI,WAAY,IAAIlT,MAAOkT,WAClEC,EAAWH,KAAKI,KAAKL,EAAO,OAClC,OAAOI,EAZX,gBAAQ,CACJxL,KAAM,CACF,CACIrP,KAAM,SACNsP,QAAS,YAWrB,uBAAS,wCAAC,iHACNvF,EAAQ7I,OAAQ,EADV,cAGFxE,OAHE,KAGYsX,EAHZ,SAGyBiG,EAAYhF,SAHrC,wBAGKtO,OAHL,qBAIFjK,OAAOiK,OAAOuT,EAAclG,GAJ1B,gEASN,GAAS+G,GAAG,kBAAZ,wCAA+B,8FAE3B/E,EAAgB9U,OAAQ,EAFG,6CAK3BoN,IAAQA,EAAKkM,2BAdX,oBAeIQ,OAAgE9a,GAAnCoO,EAAKkM,2BAA0C,EAAID,EAA8BjM,EAAKkM,4BACnHS,EAA6B3M,EAAKkM,2BACxCS,EAA2BC,QAAQD,EAA2BE,UAAY,IAEtE7M,EAAKoE,wBAAyBxE,EAAMG,MAAM+M,qBAnB5C,4CAqB4BhB,EAAoB7K,MAAM8K,EAAsBC,GAAW,GArBvF,QAqBYe,EArBZ,OAsB4B,GAAlBA,EAAQ5e,SACRsa,EAAkB7V,MACdC,EAAE,oCAAqC,CAAEma,UAAWN,IAAgC,UAC9D9a,GAApBoO,EAAKmE,aAAgD,IAApBnE,EAAKmE,YACpCtR,EAAE,4BAA6B,CAAEoa,KAAM,KAAON,GAA4B1F,OAAO,cACjFpU,EAAE,4BAA6B,CAAEsR,YAAanE,EAAKmE,YAAa8I,KAAM,KAAON,GAA4B1F,OAAO,eACxHhL,EAAarJ,OAAQ,GAEzBgN,EAAMyG,OAAOxP,EAAcqW,yBAAyB,GA9B1D,8DAqCFlN,GAAQA,EAAKmN,+BAAiCvN,EAAMG,MAAMqN,+BACpDC,EAAYxB,EAAOlB,KAAK2C,GAA0B,CACpD7P,MAAO,CACH/I,OAAQ7B,EAAE,+CACVuL,OAAO,EACPmP,iBAAiB,EACjBvY,UAAU,GAEdwY,UAAW,CACP5Y,OAAQ,WACJ,MAAO,CACH,eAAE,QAAQ,CACNS,MAAOxC,EAAE,gCACT4a,QAAS,WACL9N,EAAOlR,KAAK,mBACZ4e,EAAUK,SACXhP,WAAW,IAElB,eAAE,QAAQ,CACNrJ,MAAO,KACPoY,QAAS,WACNJ,EAAUK,SACVhP,WAAW,SAMlCkB,EAAMyG,OAAOxP,EAAcuW,8BAA8B,IAG7D3R,EAAQ7I,OAAQ,EApEV,mEAuEV,IAAM4V,EAAkB,yDAAG,uGAEvBvM,EAAarJ,OAAQ,GACjBoN,EAHmB,iCAKT2N,EAAmB,IAAI,GAC7BA,EAAiB7N,OAASpC,OAAOsC,EAAK/L,IACtC0Z,EAAiBjc,KAAOqa,EACxB4B,EAAiB3B,UAAYA,EAC7B2B,EAAiB3M,QAAU,KAAO,IAAI5H,MAAQ6N,OAAO,uBATtC,UAWT6E,EAAoB7Y,OAAO0a,GAXlB,uHAAH,qDAkBlBpF,EAAiC,WACnC,OAAOvI,QAA4BpO,GAApBoO,EAAKmE,aAAgD,IAApBnE,EAAKmE,aAGnDmE,EAA+B,WACjC,OAAIC,IACO1V,EAAE,mCAENA,EAAE,mCAGb,MAAO,CAAE6S,QACAkG,eACAnQ,UACA5I,IACAoJ,eACAwM,oBACAD,qBACAF,+BACAC,iCACAM,8BACA7I,OACAkI,cACAyD,cACAjE,oBAGb5C,SAAS,CACL4D,kCADK,WAC4B,QAC7B,OAAOhR,KAAKgO,MAAMc,MAAK,SAAAC,GAAC,MAAyB,OAArBA,EAAEC,qBAA4D,QAA9B,UAAAhP,KAAKsI,YAAL,eAAWkE,sBAAyDtS,KAA9B,UAAA8F,KAAKsI,YAAL,eAAWkE,kBAAiCxM,KAAKmR,6BAGvJD,6BALK,WAMD,OAAO,IAAIxP,KAAS,IAAIA,KAAK,GAAM2G,MAAM6N,IAAIC,4BAIrDC,QAAQ,CACE1F,iBADF,WACkB,uKAClB,EAAKP,sBACCkG,EAAoBC,KAAKC,UAAU,EAAKvI,MAAM5R,KAAI,SAAA2S,GAAC,OAAIA,EAAEC,oBACzDwH,EAAsB,IAAI,GAChCA,EAAoBvgB,KAAOogB,EAJT,SAKZ,EAAKpC,YAAYwC,kBAAkBD,GALvB,OAOlB,EAAKxG,iBAAkB,EAPL,8CAUtBW,wBAXI,WAYAja,OAAOiK,OAAOX,KAAKgO,MAAOhO,KAAKkU,cAC/BlU,KAAKmQ,sBACLnQ,KAAKgQ,iBAAkB,GAG3BG,oBAjBI,WAkBAnQ,KAAKwQ,aAAe,MC1MhC,GAAO5L,OAAS,GAED,U,ICHT/G,MAAM,2B,0OADX,gCAA0C,uCAAnC,EAAA1C,EAAC,8BACR,gCAYS,MAZT,GAYS,E,2BAXF,gCAUM,2CAVgB,EAAAub,SAAO,SAAjBC,G,gCAAZ,gCAUM,OAV0Bnb,IAAKmb,EAAOpa,I,CAC3C,gCAQC,QARKqa,OAAO,OAAO9c,OAAO,SAAU+c,OAAQ,EAAAC,W,CAClD,gCAAwD,SAAjDld,KAAK,SAASI,KAAK,OAAQkB,MAAOyb,EAAOpT,M,WAChD,gCAAsE,SAA/D3J,KAAK,SAASI,KAAK,aAAckB,MAAO,EAAAoN,KAAKyO,gB,WACpD,gCAAgE,SAAzDnd,KAAK,SAASI,KAAK,gBAAiBkB,MAAO,EAAAoN,KAAKmB,O,WACvD,gCAAwE,SAAjE7P,KAAK,SAASI,KAAK,oBAAqBkB,MAAO,EAAAoN,KAAKnK,W,WAC3D,gCAAsE,SAA/DvE,KAAK,SAASI,KAAK,mBAAoBkB,MAAO,EAAAoN,KAAKlK,U,WAE1D,yBAAuE,GAA9DT,MAAOgZ,EAAOhZ,MAAOE,MAAM,mBAAmBjE,KAAK,U,2CCAhD,oCAAgB,CAC9BwM,MAD8B,WAE7B,IAAM8B,EAAQC,KADV,EAEmB,iBAANhN,EAFb,EAEaA,EACX2S,EAAU,IAAI,GAUX,SAASW,EAASnB,GACd,GAAIA,EAAM,CACN,IAAIhW,EAASgW,EACb,OAAIhW,EAAOiW,QAAQ,KAAO,IACjBO,EAAQN,yBAAyBF,KAClCA,EAAOA,EAAKG,QAAQ,IAAK,KAE7BnW,EAASgW,EAAKjC,UAAU,EAAGiC,EAAKC,QAAQ,MACpCO,EAAQJ,iBAAiBJ,IAClBhW,EAGRgW,EAEX,OAAOA,EAvBX,gBAAQ,CACJjE,KAAM,CACF,CACIrP,KAAM,SACNsP,QAAS,cAsBrB,IAAMhB,EAAO,uBAAS,WAAK,gBAC7B0O,GAAY,oBAAC9O,EAAMG,MAAMvB,aAAb,aAAC,EAAmBlG,YAAYgH,kBAAhC,QAA8C,IAAIqP,MAAM,KAAK,GACtEC,EAASF,EAAUvJ,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KACpD0J,EAAcC,mBAAmBC,KAAKH,GAAQD,MAAM,IAAI7a,KAAI,SAAS5B,GAC7E,MAAO,KAAO,KAAOA,EAAE8c,WAAW,GAAG1P,SAAS,KAAKzL,OAAO,MACxDob,KAAK,KAER,MAAO,CACNhb,GAAE,UAAE2L,EAAMG,MAAMC,YAAd,aAAE,EAAkB/L,GACtBkN,MAAOgF,EAAQ,UAACvG,EAAMG,MAAMC,YAAb,aAAC,EAAkBmB,OAClCtL,UAAS,UAAE+J,EAAMG,MAAMC,YAAd,aAAE,EAAkBnK,UAC7BC,SAAQ,UAAE8J,EAAMG,MAAMC,YAAd,aAAE,EAAkBlK,SAC5B2Y,eAAgBT,KAAKkB,MAAML,GAAaM,uBAIpCf,EAAU,CACf,CACCna,GAAI,EACJoB,MAAOxC,EAAE,gCACToI,KAAM,eAEP,CACChH,GAAI,EACJoB,MAAOxC,EAAE,gCACToI,KAAM,kBAEP,CACChH,GAAI,EACJoB,MAAOxC,EAAE,qCACToI,KAAM,SAEP,CACChH,GAAI,EACJoB,MAAOxC,EAAE,4CACToI,KAAM,SAEP,CACChH,GAAI,EACJoB,MAAOxC,EAAE,0CACToI,KAAM,YAEP,CACChH,GAAI,EACJoB,MAAOxC,EAAE,sDACToI,KAAM,aAEP,CACChH,GAAI,EACJoB,MAAOxC,EAAE,wCACToI,KAAM,UAEP,CACChH,GAAI,EACJoB,MAAOxC,EAAE,sCACToI,KAAM,SAIR,MAAO,CACN+E,OACAoO,UACAI,UAAW,EAAO9U,gBAClB7G,Q,UCpGJ,GAAOyJ,OAAS,GAChB,GAAO4B,UAAY,kBAEJ,U,ICNT3I,MAAM,2B,2JADX,gCAA4C,uCAArC,EAAA1C,EAAC,gCACR,gCAIS,MAJT,GAIS,E,2BAHR,gCAEM,2CAFgB,EAAAub,SAAO,SAAjBC,G,gCAAZ,gCAEM,OAF0Bnb,IAAKmb,EAAOpa,I,CAC3C,yBAAwH,GAA/GoB,MAAOgZ,EAAOhZ,MAAOE,MAAM,mBAAmBjE,KAAK,SAAc,QAAK,mBAAE,EAAA8d,YAAYf,EAAO5E,IAAK,EAAAzJ,KAAKmB,S,kDCJ5F,GAiBpB,WAAmB/I,GAA2B,yDAhBzB,IAgByB,kCAfzB,IAeyB,gCAd3B,IAc2B,6BAb9B,IAa8B,iCAZ1B,IAY0B,4CAXf,IAWe,0CAVjB,IAUiB,yBATlC,IASkC,gCAR3B,IAQ2B,+BAP5B,IAO4B,kCANzB,IAMyB,kCALzB,IAKyB,gCAJ3B,IAI2B,4BAH/B,IAG+B,4BAF/B,IAGdhK,OAAOiK,OAAOX,KAAMU,ICfhB,G,mFAC4B,Q,sNAGlB,EAAAX,EAAMjF,IAAN,UAAakF,KAAK2X,gB,uCAAkB1hB,M,gHAIrC,MCAI,gCAAgB,CAC3BmQ,MAD2B,WACtB,MACa,iBAANjL,EADP,EACOA,EACF+M,EAAQC,KACd,gBAAQ,CACJkB,KAAM,CACF,CACIrP,KAAM,SACNsP,QAAS,cAKrB,IAAMoN,EAAU,CACZ,CACIna,GAAI,EACJoB,MAAOxC,EAAE,gCACT4W,IAAK,GAAF,OAAK,EAAO9P,sBAAZ,kEAEP,CACI1F,GAAI,EACJoB,MAAOxC,EAAE,qCACT4W,IAAK,GAAF,OAAK,EAAO9P,sBAAZ,kFAEP,CACI1F,GAAI,EACJoB,MAAOxC,EAAE,kCACT4W,IAAK,GAAF,OAAK,EAAO9P,sBAAZ,iFAEP,CACI1F,GAAI,EACJoB,MAAOxC,EAAE,mCACT4W,IAAK,GAAF,OAAK,EAAO9P,sBAAZ,mEAEP,CACI1F,GAAI,EACJoB,MAAOxC,EAAE,yCACT4W,IAAK,GAAF,OAAK,EAAO9P,sBAAZ,wEAEP,CACI1F,GAAI,EACJoB,MAAOxC,EAAE,oCACT4W,IAAK,GAAF,OAAK,EAAO9P,sBAAZ,oEAEP,CACI1F,GAAI,EACJoB,MAAOxC,EAAE,kCACT4W,IAAK,GAAF,OAAK,EAAO9P,sBAAZ,gEAILqG,EAAO,uBAAS,WAAK,MACvB,MAAO,CACHmB,MAAK,UAAEvB,EAAMG,MAAMC,YAAd,aAAE,EAAkBmB,UAIjC,MAAO,CACHiN,UAASvb,IAAGmN,SAGpB8N,QAAS,CACLsB,YADK,SACO3F,EAAatI,GACrB,IAAMmO,EAAU,OAAG7F,QAAH,IAAGA,OAAH,EAAGA,EAAKtE,QAAQ,UAAWzN,KAAK6X,UAAUvc,IAAImS,QAAQ,UAAWhE,GACjFxN,OAAOgX,KAAK2E,EAAY,WAEtBE,KALD,WAKK,yKACAC,EAAY,MACZC,EAAa,IAAI,GAFjB,cAIFthB,OAJE,KAIY,EAAKmhB,UAJjB,SAIkCG,EAAWC,WAJ7C,wBAIKtX,OAJL,kFAQN,EAAKkX,UAAUvc,GAAf,UAAoB,EAAKuc,UAAUvc,UAAnC,QAAyCyc,EARnC,8DAWd9hB,KA7E2B,WA8EvB,IAAM4hB,EAAY,IAAI,GACtB,MAAO,CACHA,cAGdK,QAnFiC,WAoFhClY,KAAK8X,U,UC1FR,GAAOlT,OAAS,GAChB,GAAO4B,UAAY,kBAEJ,U,ICLR3I,MAAM,4C,IASNA,MAAM,O,IACLA,MAAM,oB,IAMPA,MAAM,O,IACLA,MAAM,oC,IACLA,MAAM,iB,IASH8E,IAAI,oB,GACX,gCAAM,mB,IAGF9E,MAAM,gB,2HAjCE,EAAAsa,W,yBAAhB,gCASW,uBARV,gCAAqD,uCAA9C,EAAAhd,EAAC,0CACR,gCAMM,MANN,GAMM,CALL,gCAII,sCAHA,EAAAA,EAAC,sCAAyC,IAC7C,6BAAE,EAAAoI,KAAKiG,UAAU,IACjB,6BAAG,EAAArO,EAAC,4C,+BAIP,gCAiCW,uBAhCV,gCAKM,MALN,GAKM,CAJL,gCAGM,MAHN,GAGM,CAFL,gCAAmC,uCAA7B,EAAAid,wBAAsB,GAC5B,gCAAyD,uCAAlD,EAAAjd,EAAC,kDAIV,gCAwBM,MAxBN,GAwBM,CAvBL,gCAsBM,MAtBN,GAsBM,CArBL,gCAWM,MAXN,GAWM,CAVL,yBAMO,G,WANkB,EAAAoI,KAAKiG,S,qDAAL,EAAAjG,KAAKiG,SAAQ,I,eAA3B,UACN3L,MAAM,iBACNtB,GAAG,mBACFwG,YAAa,EAAA5H,EAAC,iCACdgI,SAAU,EAAAY,QACV,QAAK,sBAAQ,EAAAsU,mBAAkB,Y,0DAGrC,gCAA6E,QAA7E,GAA6E,6BAA5C,EAAAld,EAAC,qCAClC,KAGD,gCAOM,MAPN,GAOM,CANL,yBAKgC,GALvBwC,MAAO,EAAAxC,EAAC,gCACf0C,MAAM,mBACLsF,SAAU,EAAAY,UAAY,EAAAR,KAAKiG,SAC3BxF,KAAM,EAAAC,YACPC,QAAQ,QACP,QAAO,EAAAmU,oB,0DChCA,oCAAgB,CAC9BjS,MAD8B,WACzB,MACU,iBAANjL,EADJ,EACIA,EACF8F,EAAS,IAAI2J,GAEb7G,EAAU,kBAAI,GAAQoU,EAAY,kBAAI,GACtClU,EAAc,uBAAS,kBAAMF,EAAQ7I,MAAQ,wBAA0B,MACvEqI,EAAO,sBAAS,CACrBiG,SAAU,KAEL4O,EAAyB,iBAAI,IAE7B,gBAAQ,CACJ/O,KAAM,CACF,CACIrP,KAAM,SACNsP,QAAS,cAK3B,IAAM+O,EAAkB,yDAAG,wGACtBtU,EAAQ7I,OAAUqI,EAAKiG,SADD,wDAK1BzF,EAAQ7I,OAAQ,EALU,SAOnBsO,EAAW8O,mBAAmB/U,EAAKiG,UAPhB,SAQPvI,EAAOP,KAAK8I,GARL,cASzB2O,EAAUjd,OAAQ,EATO,6DAc1B6I,EAAQ7I,OAAQ,EAdU,0DAAH,qDAsBxB,YAL+ChB,IAA5C,GAAOqe,aAAard,MAAMuQ,MAAM+M,UAElCJ,EAAuBld,MAAQC,EAAE,6CAG3B,CACNoI,OACA4U,YACApU,UACAE,cACA9I,IACAkd,qBACAD,6BCvDH,GAAOxT,OAAS,GAED,U,yDCJd,gCAAuC,uCAAhC,EAAAzJ,EAAC,4BCKM,oCAAgB,CAC9BiL,MAD8B,WACzB,MACU,iBAANjL,EADJ,EACIA,EAUR,OATM,gBAAQ,CACJkO,KAAM,CACF,CACIrP,KAAM,SACNsP,QAAS,cAKpB,CACNnO,QChBH,GAAOyJ,OAAS,GAED,ICLH6T,GDKG,MEKTC,GAAgC,CACrC,CACCxN,KAAM,IACNyN,SAAU,UAEX,CACCzN,KAAM,SACNlR,KAAM,QACN4e,UAAWC,GACXxP,KAAM,CAAEyP,WAAY,UAErB,CACC5N,KAAM,gBACNlR,KAAM,eACN4e,UAAWG,GACX1P,KAAM,CAAEyP,WAAY,iBAErB,CACC5N,KAAM,iBACNlR,KAAM,gBACN4e,UAAWI,GACX3P,KAAM,CAAEyP,WAAY,kBAErB,CACC5N,KAAM,oBACNlR,KAAM,mBACN4e,UAAWK,GACX5P,KAAM,CAAEyP,WAAY,kBAErB,CACC5N,KAAM,mBACNlR,KAAM,kBACN4e,UAAWM,GACX7P,KAAM,CAAEyP,WAAY,oBAErB,CACC5N,KAAM,iBACNlR,KAAM,gBACN4e,UAAWO,GACX9P,KAAM,CAAEyP,WAAY,mBAErB,CACC5N,KAAM,yBACNlR,KAAM,wBACN4e,UAAWQ,GACX/P,KAAM,CAAEyP,WAAY,mBAErB,CACC5N,KAAM,UACNlR,KAAM,SACN4e,UAAWS,GACXhQ,KAAM,CAAEyP,WAAY,aAIhB,GAAS,eAAa,CAC3BQ,QAAS,iBACTZ,YAGc,MCtEM,G,6DACR,I,2BACEhX,KAAK6X,O,6BACH,I,2BACF,I,kCACO,I,mCACC,I,4BACP,MFPhB,SAAYd,GACX,mBACA,iBACA,uBACA,qBACA,eACA,8BAND,CAAYA,QAAqB,K,UGEZ,GAInB,WAAYlc,EAAYid,GAAkC,kGACxDxZ,KAAKzD,GAAKA,EACVyD,KAAKwZ,YAAcA,GCRF,G,6DACR,I,2BACE9X,KAAK6X,O,8BACF,I,0BACJ,KCSO,G,0KAEeC,G,8FACxBC,EAAY,KACZ,GAAMpR,MAAMC,MACZkR,GACA,GAAMnR,MAAMvB,OACZ,GAAMuB,MAAMqR,OAAOC,aACnB,GAAMtR,MAAMuR,cACZ,GAAMvR,MAAMwR,mB,iCACF,GAAMC,SAAS5a,EAAY6a,gBAAiB,GAAM1R,MAAMvB,O,OACxDkT,EAAe,IAAI,GACzBA,EAAazd,GAAK0d,OAAOC,aACzBF,EAAaG,YAAc,SAC3BH,EAAapD,OAAS4C,EACtBQ,EAAaI,aAAe,GAAM/R,MAAMuR,aACxCI,EAAa1R,KAAO,GAAMD,MAAMwR,kBAChCG,EAAalT,MAAQ,GAAMuB,MAAMvB,MAAMlG,YACvC6Y,EAAYO,EAAazd,GACnB8d,EAAO/D,KAAKC,UAAUyD,GACzB,GAAM3R,MAAM6N,IAAIoE,sBACfve,QAAQwe,IAAI,gBACZxe,QAAQwe,IAAIF,IAEhBG,GAAKC,OAAOC,iBAAiBC,QAAQC,KAAKP,GAC1C,GAAM1L,OAAOxP,EAAc0b,YAAa,IAAI,GAAQpB,EAAWD,IAC/D,IACOA,GAAef,GAAsBqC,KACpCN,GAAKC,OAAOC,iBAAiBK,cAGrC,U,iCAKDtB,G,2IAGkBA,GACzB,IAAMuB,EAAkB,IAAI,GAC5BA,EAAgBze,GAAK0d,OAAOC,aAC5Bc,EAAgBC,IAAM,OACtBD,EAAgBE,QAAUzB,EAC1B,IAAMY,EAAO/D,KAAKC,UAAUyE,GAC5BR,GAAKC,OAAOC,iBAAiBC,QAAQC,KAAKP,O,KClD7B,G,WAKjB,sEAJ+B/B,mBAAmB,EAAOvW,kBAIzD,2CACI/B,KAAKmb,aAAe,IAAI,E,qDAGfC,GACTC,SAASxX,KAAQ7D,KAAKsb,WAAW,OAAQ,WAAYF,K,wLAI/CA,EAAYpb,KAAKub,e,SACjB,GAAmBC,YAAY/C,GAAsBzZ,Q,uBACrD,GAAmBwc,YAAY/C,GAAsBqC,K,OAC3D,GAAMnM,OAAOxP,EAAcsc,UAC3BJ,SAASxX,KAAQ7D,KAAKsb,WAAW,SAAU,WAAYF,G,0IAGxCM,EAAkBC,EAAmBP,GACpD,IAAMla,EAAW,OAAGka,QAAH,IAAGA,IAAapb,KAAKkB,YAChC0a,EAAS,CAAC,gBAAD,OACK1a,GAChB,qBACA,gBAGAya,GACAC,EAAO7kB,KAAP,oBAAyB4kB,IAG7B,IAAM5J,EAAM,EAAOjQ,QAAQqJ,SAAS,KAAO,EAAOrJ,QAAQ3F,MAAM,GAAI,GAAK,EAAO2F,QAChF,gBAAUiQ,EAAV,YAAiB2J,EAAjB,YAA6BE,EAAOrE,KAAK,Q,qCAGzB,MACVrL,EAAkC,QAA1B,aAAM7D,MAAMC,YAAZ,eAAkB1O,MAChC,GAAGsS,EAAM,CACL,IAAMlB,EAAU,GAAH,OAAM,EAAOjJ,iBACtB8Z,EAAa,GAAOpjB,QAAQ,CAAEuB,KAAM,WAAYuR,SAKpD,OAHIP,EAAQG,SAAS,MAAQ0Q,EAAWzQ,WAAW,OAC/CyQ,EAAaA,EAAWxQ,UAAU,IAE/BL,EAAU6Q,O,KCtDR,G,2EACM,I,wCACA,G,uCACA,I,2CACG,G,yCACD,M,6CACI,I,mDACM,K,iCACnB,G,+CACe,c,8BACjB,YCRZ,G,0EACY,a,iPAEF,EAAA9b,EAAMjF,IAAN,UAAakF,KAAKhG,O,uCAAS/D,M,gHAI5B,MCUTklB,GAAe,IAAI,EACnB,GAAgB,IAAI,EACpB,GAAe,IAAI,GACnBW,GAAkB,IAAI,GAwGftgB,GAA2BR,SAElC,SAAUmN,KACZ,OAAO,eAAa3M,IAGT,sBAAmB,CACjC6M,MAAO,CACNC,UAAMpO,EACN4M,WAAO5M,EACPkb,sBAAsB,EACtBM,8BAA8B,EAC9BQ,IAAK,IAAI,GACT6F,kBAAkB,EAClBC,mBAAmB,EACbC,KAAK,EACLvC,OAAQ,CAEJC,aAAa,EAEb5f,QAAS,GAETmiB,gBAAgB,GAEpBtC,kBAAc1f,EACd2f,uBAAmB3f,EACnBiiB,gBAAYjiB,EACZkiB,aAASliB,EACTmiB,kBAAcniB,EACdoiB,gBAAYpiB,EACZkF,SAAU,IAAIkG,MACdiX,cAAUriB,GAGjB4O,QAAS,CACR0T,eAAgB,SAACnU,GAChB,YAAqBnO,GAAdmO,EAAMC,MAEdS,mBAAoB,SAACV,GACpB,OAAOA,EAAM6N,IAAI6F,kBAElB1d,oBAAqB,SAACgK,GACrB,OAAOA,EAAM2T,mBAERS,aAAc,SAACpU,GACX,OAAOA,EAAMgU,oBAAqCniB,GAApBmO,EAAMiU,YAA4BjU,EAAMiU,YAAcjU,EAAMgU,aAAehU,EAAMiU,cAI1HI,WAAS,wBACPvd,EAAcyP,SADP,SACgBvG,EAAOC,GAC9BD,EAAMC,KAAOA,KAFN,kBAKPnJ,EAAcwd,YALP,SAKmBtU,GAC1BA,EAAMC,UAAOpO,KANN,kBASPiF,EAAcyd,UATP,SASiBvU,EAAOvB,GACtBuB,EAAMvB,MAAQA,EACd,IAAM+V,EAAc/V,EAAMlG,YACpBoW,EAAY6F,EAAY5F,MAAM,KAAK,GACnCC,EAASF,EAAUvJ,QAAQ,KAAM,KAAKA,QAAQ,KAAM,KACpD0J,EAAcC,mBAAmBC,KAAKH,GAAQD,MAAM,IAAI7a,KAAI,SAAU5B,GACxE,MAAO,KAAO,KAAOA,EAAE8c,WAAW,GAAG1P,SAAS,KAAKzL,OAAO,MAC3Dob,KAAK,KACFuF,EAAMxG,KAAKkB,MAAML,GACvB9O,EAAMuR,aAAekD,EAAIC,cACzB1U,EAAMwR,kBAAoBiD,EAAIE,mBAC9B3U,EAAM8T,WAAaW,EAAIG,YACvB5U,EAAM+T,QAAUU,EAAII,SACpB7U,EAAMkU,SAAWO,EAAIP,YAtBvB,kBAyBPpd,EAAcqW,yBAzBP,SAyBgCnN,EAAO+M,GAC9C/M,EAAM+M,qBAAuBA,KA1BtB,kBA4BPjW,EAAcuW,8BA5BP,SA4BqCrN,EAAOqN,GACnDrN,EAAMqN,6BAA+BA,KA7B9B,kBA+BPvW,EAAcge,SA/BP,SA+BgB9U,EAAO8U,GAC9B9U,EAAM6N,IAAMiH,KAhCL,kBAkCPhe,EAAcie,cAlCP,SAkCqB/U,EAAO0T,GACnC1T,EAAM0T,iBAAmBA,KAnClB,kBAqCP5c,EAAcke,sBArCP,SAqC6BhV,EAAO2T,GAC3C3T,EAAM2T,kBAAoBA,KAtCnB,kBAwCP7c,EAAcsc,UAxCP,SAwCiBpT,GACxBA,EAAMC,UAAOpO,EACbmO,EAAMvB,WAAQ5M,EACdmO,EAAM+M,sBAAuB,EAC7B/M,EAAMqN,8BAA+B,EACrCrN,EAAM6N,IAAM,IAAI,GAChB7N,EAAM0T,kBAAmB,EACzB1T,EAAM2T,mBAAoB,EACjB3T,EAAM4T,KAAM,EACZ5T,EAAMuR,kBAAe1f,EACrBmO,EAAMwR,uBAAoB3f,EAC1BmO,EAAM8T,gBAAajiB,EACnBmO,EAAM+T,aAAUliB,EAChBmO,EAAMkU,cAAWriB,EACjBmO,EAAMqR,OAAS,CACXC,aAAa,EACb5f,QAAS,GACTmiB,gBAAgB,MAzDtB,kBA4DP/c,EAAcme,QA5DP,SA4DejV,EAAO4T,GAC7B5T,EAAM4T,IAAMA,KA7DL,kBA+DD9c,EAAcoe,eA/Db,SA+D4BlV,EAAO/O,GAC7B+O,EAAM6N,IAAIoE,sBACVve,QAAQwe,IAAI,kBACZxe,QAAQwe,IAAIjhB,IAEhBkhB,GAAKC,OAAOC,iBAAiBC,QAAUrhB,EAAMkkB,cAC7CnV,EAAMqR,OAAOC,aAAc,KArE7B,kBAuEDxa,EAAcse,gBAvEb,SAuE6BpV,EAAO/O,GAClC+O,EAAMqR,OAAOC,aAAc,KAxE7B,kBA0EDxa,EAAcue,gBA1Eb,SA0E6BrV,EAAO/O,GAC9B+O,EAAM6N,IAAIoE,sBACVve,QAAQwe,IAAI,mBACZxe,QAAQ3C,MAAMiP,EAAO/O,OA7E3B,kBAiFD6F,EAAcwe,kBAjFb,SAiF+BtV,EAAOtO,GAChCsO,EAAM6N,IAAIoE,sBACVve,QAAQwe,IAAI,qBACZxe,QAAQwe,IAAIxgB,IAEhBsO,EAAMqR,OAAO3f,QAAUA,EAAQ9D,QAtFjC,kBAyFDkJ,EAAcye,kBAzFb,SAyF+BvV,EAAOwV,GACpC9hB,QAAQ+hB,KAAKzV,EAAOwV,MA1FtB,kBA4FD1e,EAAc4e,wBA5Fb,SA4FqC1V,GACnCA,EAAMqR,OAAOwC,gBAAiB,KA7FhC,kBA+FD/c,EAAc0b,aA/Fb,SA+F0BxS,EAAOtO,GAC3BsO,EAAMjJ,SAAS3I,QAAU,IACzB4R,EAAMjJ,SAASlI,QAEnBmR,EAAMjJ,SAASrI,KAAKgD,MAnGtB,IAuGNikB,SAAO,wBACI9e,EAAYiC,UADhB,cACyD,gKAA7BwN,EAA6B,EAA7BA,OAAYlS,EAAiB,EAAjBA,KAAM2e,EAAW,EAAXA,UAAW,SACpCD,GAAaha,SAAS1E,EAAM2e,GADQ,OAClDtU,EADkD,OAExD6H,EAAOxP,EAAcyd,SAAU9V,GAFyB,gDADzD,kBAKI5H,EAAY+e,SALhB,YAKmC,4JAARtP,EAAQ,EAARA,OAAQ,SACf,GAAcpF,QADC,OAC5BjB,EAD4B,OAElCqG,EAAOxP,EAAcyP,QAAStG,GAFI,gDALnC,kBASIpJ,EAAY6a,iBAThB,WAS6CjT,GAAK,sJAAf6H,EAAe,EAAfA,SAG9B7H,EAAMhG,QAAU,IAAIY,MAHyB,gCAIvCyZ,GAAata,aAAaiG,EAAMjG,cAAcjE,MAAK,SAAAshB,GACrDvP,EAAOxP,EAAcyd,SAAUsB,MAChCC,OAAM,WACL,GAAanf,YAP4B,gDATlD,kBAoBIE,EAAYkf,oBApBhB,YAoB8C,4JAARzP,EAAQ,EAARA,OAAQ,SACdmN,GAAgBuC,sCADF,OACvCtC,EADuC,OAE7CpN,EAAOxP,EAAcie,aAAcrB,GAFU,gDApB9C,MClRI,gCAAgB,CAC3B3V,MAD2B,WAEvB,IAAM8B,EAAQC,KACR9J,EAAsB,uBAAS,kBAAM6J,EAAMY,QAAQzK,uBACnDY,EAAO,iBAAI,IACAyI,aAAY,WACzBzI,EAAK/D,MAAQmU,KAAKC,eAAe7P,UAAUC,SACvC,CACI4e,KAAM,UACNC,MAAO,UACPC,IAAK,UACLC,KAAM,UACNC,OAAQ,UACRC,OAAQ,YACTpP,WACR,KACH,MAAO,CAAElR,sBAAqBY,WCjBtC,GAAO2F,OAAS,EAED,U,ICJHhL,KAAK,SAASiE,MAAM,iB,+KAA5B,gCAIS,SAJT,GAIS,E,yBAHL,yBAEW,oB,8BADP,iBAA2D,CAA3D,yBAA2D,GAAlDS,UAAW,EAAAA,UAAYN,MAAO,EAAAA,MAAOf,IAAI,S,gDAFE,EAAAuB,a,QAAf,M,QCAvCX,MAAM,U,wHAAZ,gCAGO,OAHP,GAGO,CAFH,gCAAwC,OAAlCA,MAAK,4BAAE,EAAA+gB,UAAWzlB,IAAK,EAAA0lB,S,YACT,EAAAvgB,W,yBAApB,yBAA4C,G,MAAbrB,IAAI,S,6GCFvC,gCAAmD,OAA9CY,MAAM,QAASL,MAAK,4BAAE,EAAAA,Q,6BAAS,EAAAshB,SAAO,GCM5B,oCAAgB,CAC3B/Y,MAAO,CACHgZ,UAAW7Y,QAEfE,MAJ2B,SAIrBL,GACF,IAGI0B,EAHEqX,EAAU,iBAAI,IACdE,EAAiB,KACjBC,EAAU,iBAAID,GAEpBvX,EAAQ,EACR,IAAMjK,EAAQ,uBAAS,kBAAO,GAAMsL,QAAQzK,qBAAuB4gB,EAAQ/jB,OAAS,IAAM,uDAAyD,MAC7I6P,EAAe,IAAI,GAEnBmU,EAAY,yDAAG,0GACjBD,EAAQ/jB,QACJ+jB,EAAQ/jB,OAAS,IACjBoM,cAAcG,GACdsD,EAAa/L,UAGdigB,EAAQ/jB,OAAS,GAAMmN,MAAM6N,IAAIiJ,8BAChC,GAAmB3D,YAAY/C,GAAsB2G,YAEnDV,EAAUO,EAAQ/jB,MAAQ,GAAM,EAChCyjB,EAASM,EAAQ/jB,MAAQ,GAAK,EAE9BqM,EAbW,UAaEmX,EAAS,GAAK,IAAMA,EAASA,GAC1ClX,EAdW,UAcEmX,EAAS,GAAK,IAAMA,EAASA,GAEhDG,EAAQ5jB,MAAR,UAAmBqM,EAAnB,YAA8BC,GAhBb,2CAAH,qDAmBZ6X,EAAe,WAAK,MACtBJ,EAAQ/jB,MAAR,UAAgB,GAAMmN,MAAM6N,IAAIoJ,0BAAhC,QAAsDN,GAGpDO,EAAiB,WACnB,GAAMlX,MAAMgU,aAAe,IAAI3a,KAC/B2d,KAGE1L,EAAS,CACX,YAAa,YAAa,UAC1B,SAAU,cAcd,OAZAA,EAAOG,SAAQ,SAAA0L,GAAE,OAAIvjB,OAAOwjB,iBAAiBD,EAAID,GAAgB,MAEjEF,IACA5X,EAAQC,YAAYwX,EAAc,KAElC,6BAAe,wCAAC,oGAEZ,IADA5X,cAAcG,GACLlR,EAAIod,EAAOld,OAAS,EAAGF,GAAK,EAAGA,GAAK,EACzC0F,OAAOyjB,oBAAoB/L,EAAOpd,GAAIgpB,GAH9B,4CAOT,CAAEN,UAASH,UAASO,eAAc7hB,YC7DrD,GAAOoH,OAAS,GAED,UCDA,gCAAgB,CAC3BmB,MAAO,CACH/H,MAAOgI,OACP1H,UAAW2H,SAEfL,WAAW,CAAC+Z,eACNvZ,MANqB,SAMfL,GAAK,sEAIJsZ,EAJI,wFAIJA,EAJI,WAKNtZ,EAAMzH,WACL5H,OAAO+Q,EAAMvM,OAAOmkB,gBANf,SACS,UAAO,YAAYtZ,EAAM/H,MAAzB,SADT,cACP6gB,EADO,OAEPD,EAAW7Y,EAAMzH,UAAY,YAAc,GAC3CmJ,EAAQ,iBAAI,MAHL,kBASN,CAAEoX,QAASA,EAAQe,QAAShB,WAAUS,eAAc5X,UAT9C,gDCPrB,GAAO7C,OAAS,GAED,UCAA,gCAAgB,CAC3BgB,WAAY,CAAEia,UACd9Z,MAAO,CACH/H,MAAOgI,OACP1H,UAAW2H,QACXzH,QAASwH,QAEbI,MAP2B,SAOrBL,GAAK,MACO,iBAER0B,GAHC,EACCtM,EAEM,iBAAI,OAClB,SAASkkB,IACFtZ,EAAMzH,WACL5H,OAAO+Q,EAAMvM,OAAOmkB,eAG5B,MAAO,CAACA,eAAc5X,YClB9B,GAAO7C,OAAS,GAED,UCKA,gCAAgB,CAC3BgB,WAAY,CAACka,cAAYC,gBACzB3Z,MAF2B,WAGvB,IAAMqB,EAAQ,iBAAI,MACZS,EAAQC,KAFb,EAGa,iBAANhN,EAHP,EAGOA,EACF4P,EAAe,IAAI,GACnBL,EAAQ,iBACR3L,EAAmB,kBAAI,GAEvBZ,EAAY,uBAAS,kCAAM+J,EAAMG,MAAMC,YAAlB,aAAM,EAAkBnK,aAC7CC,EAAW,uBAAS,kCAAM8J,EAAMG,MAAMC,YAAlB,aAAM,EAAkBlK,YAC5CF,EAAa,uBAAS,kBAAMgK,EAAMY,QAAQ0T,kBAC1Cne,EAAsB,uBAAS,kBAAM6J,EAAMY,QAAQzK,uBACnDW,EAAS,WACX+L,EAAa/L,UAEXjB,EAAK,uBAAS,WAChB,MAAqB,UAAd2M,EAAM1Q,KAAmB,UAAY,OAG1CgmB,EAAO,mBACPnhB,EAAY,iBAAI,CAClB,CACIohB,MAAO,CACH,CACItiB,MAAO,sBACPuiB,QAAS,WACL,GAAS7Z,KAAK,yBAO5B5H,EAAa,SAACnF,GAChB0mB,EAAK9kB,MAAMilB,OAAO7mB,IAGtB,SAAS8mB,IACL1pB,OAAO+Q,EAAMvM,OAAOmkB,eAGxB,SAASphB,IACL,OAAOoiB,OAAOnO,OAAS,IAG3B,SAAS3T,IACLQ,EAAiB7D,OAAQ,EAG7B,MAAO,CACHiD,YACAC,WACAF,aACAc,SACAX,sBACAlD,IACA4C,KACA0J,QACA2Y,aACAvhB,YACAmhB,OACAvhB,aACAR,WACAc,mBACAR,4B,UCvEZ,GAAOqG,OAAS,EAChB,GAAO4B,UAAY,kBAEJ,U,ICNF3I,MAAM,a,IAEJgG,KAAK,K,yDAHhB,gCAMS,eALL,gCAIM,MAJN,GAIM,C,6BAJiB,YACX,kCAAOnC,MAAO4e,eAAgB,eACtC,mCAAkG,IAAlG,GAAkG,6BAAnF,EAAAnlB,EAAC,qCAAuC,MAAG,6BAAE,EAAA+M,MAAMG,MAAM6N,IAAIqK,kBAAgB,G,6BAAM,MAClG,6BAAG,EAAAC,YAAU,O,iBCCV,gCAAgB,CAC3Bpa,MAD2B,WACtB,MACa,iBAANjL,EADP,EACOA,EACR,MAAO,CAAEA,IAAG+M,MAAA,GAAOsY,WAAW,Y,UCJtC,GAAO5b,OAAS,GAChB,GAAO4B,UAAY,kBAEJ,U,ICJF3I,MAAM,U,IACFA,MAAM,a,yDAJnB,gCAQM,OARDA,MAAK,6BAAC,eAAD,aAA8B,EAAAf,mB,CACpC,wBAAsB,mBAEtB,gCAEM,MAFN,GAEM,CADF,gCAAqC,MAArC,GAAqC,CAAd,wBAAQ,wBAGnC,wBAAsB,oB,GCJf,oCAAgB,CAC3BsJ,MAD2B,WAEvB,IAAMsE,EAAQ,iBACR5N,EAAiB,iBAAI4N,EAAMrB,KAAKyP,YAItC,OAFA,mBAAMpO,GAAO,SAAC+V,EAAMC,GAAK,MAAG5jB,EAAe5B,MAAf,UAAuBulB,EAAKpX,KAAKyP,kBAAjC,QAA+C,UAEpE,CAAEhc,qB,UCNjB,GAAO8H,OAAS,GAChB,GAAO4B,UAAY,kBAEJ,UCKI,gCAAgB,CAC3BZ,WAAY,CAAE+a,cAAYC,aAAWC,cAErCza,MAH2B,WAGtB,MACa,iBAANjL,EADP,EACOA,EACFuC,EAA6B,kBAAI,GACjCX,EAAS,iBAAI,IACbC,EAAS,iBAAI,MACbkL,EAAQC,KACR4C,EAAe,IAAI,GACrB+V,EAAiB,GACf7Z,EAAW,iBAAI,GARpB,SAoBc8Z,IApBd,6FAoBD,sGACIzZ,cAAcL,EAAS/L,OACnBuM,EAFR,UAEgBS,EAAMG,MAAM6N,IAAI8K,8BAFhC,QAE0D,GACtD/Z,EAAS/L,MAAQwM,YAAW,wCAAC,2GACnBD,EAAQ,GADW,mBAErBA,EAAK,UAAGS,EAAMG,MAAM6N,IAAI8K,8BAAnB,QAA6C,IAC9C9Y,EAAMY,QAAQ2T,aAHG,gCAIX,GAAmBjB,YAAY/C,GAAsBwI,MAJ1C,OAKjBvjB,EAA2BxC,OAAQ,EALlB,2CAQ1B,KAXP,2CApBC,wBASD,uBAAS,wCAAC,yGACNrC,SAASqoB,MAAQ,SAAW,EAAO/e,SAC/B+F,EAAMY,QAAQC,mBAFZ,mBAGIH,EAAY,8BACdA,EAJF,gCAKQA,EAAUI,kBALlB,OAMW,OAATJ,QAAS,IAATA,GAAA,UAAAA,EAAWuY,SAASjmB,aAApB,SAA2BkmB,YAN7B,4CAyBV,oBAAM,kBAAMlZ,EAAMG,MAAMqR,OAAO3f,WAAS,WACpC,IACI,IAAMA,EAAUuc,KAAKkB,MAAMtP,EAAMG,MAAMqR,OAAO3f,QAAQ6N,YAEtD,GAAIkZ,GAAkBA,GAAkB/mB,EAAQmhB,QACzB,GAAfnhB,EAAQkhB,KACR8F,SAEF,GAAK7Y,EAAMG,MAAMjJ,SAASiiB,WAAU,SAAA9mB,GAAC,OAAEA,EAAEgC,IAAMxC,EAAQmhB,YAAY,EAAE,CACvE,IAAMoG,EAAgBpZ,EAAMG,MAAMjJ,SAASE,MAAK,SAAA/E,GAAC,OAAIA,EAAEgC,GAAKxC,EAAQmhB,WACjEoG,GAAiBA,EAAc9H,aAAef,GAAsBwI,OACnE/Y,EAAMG,MAAMiU,WAAa,IAAI5a,WAG5B3H,GAAWA,EAAQuO,MAAQvO,EAAQqgB,cAAgBrgB,EAAQ6c,QAAU7c,EAAQogB,aAC9EjS,EAAMG,MAAMwR,mBAAqB9f,EAAQuO,MACzCJ,EAAMG,MAAMuR,cAAgB7f,EAAQqgB,eAA0E,GAA1DlS,EAAMG,MAAMjJ,SAASiiB,WAAU,SAAA9mB,GAAC,OAAEA,EAAEgC,IAAMxC,EAAQwC,QAClGxC,EAAQ6c,QAAU6B,GAAsBzZ,QACxC,GAAmBuiB,eAAexnB,EAAQwC,IAC1CwO,EAAa/L,UACNjF,EAAQ6c,QAAU6B,GAAsBwI,MAC/CvqB,OAAOsG,EAAO9B,OAAOklB,aACrBW,IACA7Y,EAAMG,MAAMiU,WAAa,IAAI5a,KAC7B,GAAmB6f,eAAexnB,EAAQwC,KACnCxC,EAAQ6c,QAAU6B,GAAsB2G,aAC/C1hB,EAA2BxC,OAAQ,EACnC,GAAmBqmB,eAAexnB,EAAQwC,MAIxD,MAAOilB,GACDtZ,EAAMG,MAAM6N,IAAIoE,sBAChBve,QAAQwe,IAAI,kBACZxe,QAAQ3C,MAAMooB,QAK1B,mBAAK,wCAAC,uHAAYtZ,EAAMG,MAAMqR,OAAOC,aAA/B,2CAAD,wCAA6C,2GAEtCzR,EAAMG,MAAMqR,OAAOC,YAFmB,gCAGf,GAAmB6B,YAAY/C,GAAsBgJ,OAHtC,OAGtCX,EAHsC,iEAMtC5Y,EAAMG,MAAM6N,IAAIoE,sBAChBve,QAAQwe,IAAI,cACZxe,QAAQ3C,MAAR,OARsC,0DAalD,IAAMwE,EAAY,yDAAG,qGACjBF,EAA2BxC,OAAQ,EADlB,SAEX,GAAmBsgB,YAAY/C,GAAsBwI,MAF1C,2CAAH,qDAKlB,MAAO,CACHlkB,SACAC,SACAU,6BACAvC,IACAyC,mBC7GhB,GAAOgH,OAASA,EAED,U,sHCJT,EAAAzJ,EAAC,2CCIY,oCAAgB,CAC3BiL,MAD2B,WACtB,MACa,iBAANjL,EADP,EACOA,EACR,MAAO,CACHA,Q,UCJhB,GAAOyJ,OAAS,GAChB,GAAO4B,UAAY,kBAEJ,U,oICPd,gCAAyB,0CAAhB,EAAA7I,OAAK,GCEC,oCAAgB,CAC9B3D,KAAM,YACN+L,MAAO,CACNpI,MAAOqI,UCHV,GAAOpB,OAAS,GAED,IC0CX8c,GD1CW,M,sLC2CT,GAAe,IAAI,GACnBC,GAAe1lB,OAAO2lB,OAAS,sBAC/BrE,GAAgBpe,EAAcoe,cAC9BE,GAAiBte,EAAcse,eAC/BC,GAAiBve,EAAcue,eAC/BC,GAAmBxe,EAAcwe,iBACjCC,GAAmBze,EAAcye,iBACjCG,GAAyB5e,EAAc4e,uBACvCrB,GAAY,CACda,iBACAE,kBACAC,kBACAC,oBACAC,oBACAG,2BAGE7H,GAAM,uBAAU2L,IACP,mBA0Df,SAASC,GAAgBlL,GACrB,OAAQA,GACJ,IAAK,MACD,OAAOjX,EAAKY,OAAOpF,EAAE,mCACzB,IAAK,OACL,IAAK,MACL,IAAK,QACD,OAAOwE,EAAKY,OAAOpF,EAAE,kCACzB,IAAK,SACD,OAAOwE,EAAKY,OAAOpF,EAAE,oCACzB,QACI,OAAOwE,EAAKY,OAAOpF,EAAE,mCAnEjC,EAAA4E,EAAMjF,IAAI6mB,IAAc/kB,KAAxB,yDAA6B,WAAMmlB,GAAN,oFACzB,GAAMpT,OAAOxP,EAAcge,QAAS4E,EAAS9rB,OACzC,GAAMoS,MAAM6N,IAAI6F,iBAFK,gCAEmB,GAAMjC,SAAS5a,EAAYkf,oBAF9C,OAG5BlI,GACC0C,UAAU,cAAe,SACtBA,UAAU,WAAY,SACtBA,UAAU,WAAY,SACtBA,UAAU,SAAU,SACpBA,UAAU,WAAY,SACtBA,UAAU,YAAaoJ,IACvBpJ,UAAU,WAAY,SACtBA,UAAU,UAAW,SACrBA,UAAU,SAAU,SACpBA,UAAU,YAAa,SACvBA,UAAU,SAAU,SACpBA,UAAU,YAAa,SACvBA,UAAU,QAAS,SACnBA,UAAU,UAAW,SACrBA,UAAU,WAAY,SACtBA,UAAU,gBAAiB,SAC3BA,UAAU,OAAQ,SAIlBqJ,UAAU,UAAW,SACrBC,IAAI,SACJA,IAAI,SACJA,IAAI,GAAO1mB,IACX0mB,IAAIviB,GACJuiB,IAAI,IACJA,IAAI,SACJA,IAAI,mBAEF,GAAM7Z,MAAM6N,IAAIiM,kBAAoB,GAAM9Z,MAAM6N,IAAI6F,kBACnD7F,GAAIgM,IAAI,mBAAc,CAClBE,QAAS,GAAM/Z,MAAM6N,IAAIiM,iBAAkBE,cAAe,CAEtDC,iBAAiB,KAK1B,EAAOpgB,OAAsC,GAA7B,GAAMmG,MAAM6N,IAAIqM,WAC/BrM,GAAIgM,IAAI,KAAe,EAAOhgB,MAAO,CACjCqN,OAAQ,GACRiT,iBAAiB,EACjBta,MAAO,GACPwU,UAAWA,GACX+F,cAAc,EACdC,qBAAsB,EACtBC,kBAAmB,MAG9BjB,GAAaxL,GAAI0M,MAAM,QArDK,2CAA7B,uDAuEA,EAAA7iB,EAAM8iB,SAASC,QAAU,EAAOjhB,OAChC,EAAA9B,EAAMgjB,aAAa9oB,QAAQioB,IAA3B,yDAA+B,WAAMzH,GAAN,oFACtBA,EAAOuI,MAAsB,yBAAdvI,EAAO1I,MAAkC,GAAM1J,MAAMvB,MAD9C,gCAEjB,GAAMgT,SAAS5a,EAAY6a,gBAAiB,GAAM1R,MAAMvB,OAFvC,OAGvB2T,EAAOra,QAAQ6iB,cAAf,iBAAyC,GAAM5a,MAAMvB,MAAMlG,aAHpC,gCAMpB6Z,GANoB,2CAA/B,uDASA,EAAA1a,EAAMgjB,aAAahB,SAASG,KAAI,SAAAH,GAAQ,OAAIA,KACxC,SAAC3oB,GAAqB,UAClB,KAA8B,MAA1B,UAAAA,EAAM2oB,gBAAN,eAAgBmB,SAA4C,MAA1B,UAAA9pB,EAAM2oB,gBAAN,eAAgBmB,UAAiB,UAAA9pB,EAAMa,eAAN,eAAekpB,YAAY5V,QAAQ,wBAAyB,GAE5H,OACH,GAAI,UAACnU,EAAMqhB,cAAP,QAAC,EAAczZ,oBACf,GAAI5H,EAAM2oB,UAAqC,KAAzB3oB,EAAM2oB,SAASmB,QAA2D,yBAAzC9pB,EAAM2oB,SAAS9rB,KAAamtB,UAC/E1B,GAAW2B,OAAOna,IAAI,CAClBtF,SAAU,QACVuF,QAASxJ,EAAKY,OAAOpF,EAAE,sBACvBiO,OAAQzJ,EAAKY,OAAOpF,EAAE,qDAEvB,GAAI/B,EAAM2oB,UAAqC,KAAzB3oB,EAAM2oB,SAASmB,QAA2D,yBAAzC9pB,EAAM2oB,SAAS9rB,KAAamtB,UACtF1B,GAAW2B,OAAOna,IAAI,CAClBtF,SAAU,QACVuF,QAASxJ,EAAKY,OAAOpF,EAAE,sBACvBiO,OAAQzJ,EAAKY,OAAOpF,EAAE,qDAEvB,GAAI/B,EAAM2oB,UAAqC,KAAzB3oB,EAAM2oB,SAASmB,QAA2D,8BAAzC9pB,EAAM2oB,SAAS9rB,KAAamtB,UACtF1B,GAAW2B,OAAOna,IAAI,CAClBtF,SAAU,QACVuF,QAASxJ,EAAKY,OAAOpF,EAAE,sBACvBiO,OAAQzJ,EAAKY,OAAOpF,EAAE,yCAEvB,GAAI/B,EAAM2oB,UAAqC,KAAzB3oB,EAAM2oB,SAASmB,QAA2D,4BAAzC9pB,EAAM2oB,SAAS9rB,KAAamtB,UACtF1B,GAAW2B,OAAOna,IAAI,CAClBtF,SAAU,QACVuF,QAASxJ,EAAKY,OAAOpF,EAAE,sBACvBiO,OAAQzJ,EAAKY,OAAOpF,EAAE,iDAEvB,GAAI/B,EAAM2oB,UAAqC,KAAzB3oB,EAAM2oB,SAASmB,QAA2D,+BAAzC9pB,EAAM2oB,SAAS9rB,KAAamtB,UACtF1B,GAAW2B,OAAOna,IAAI,CAClBtF,SAAU,QACVuF,QAASxJ,EAAKY,OAAOpF,EAAE,sBACvBiO,OAAQzJ,EAAKY,OAAOpF,EAAE,2CAOvB,iBACGmoB,GAAM,UAAAlqB,EAAMqhB,cAAN,mBAAcpa,qBAAd,eAA6BvF,IAA7B,oBAAiC1B,EAAM2oB,gBAAvC,aAAiC,EAAgBmB,cAAjD,QAA2D,MAA3D,UACL9pB,EAAMqhB,cADD,aACL,EAAc9V,eAAgBmd,GAAe,UAAC1oB,EAAMqhB,cAAP,aAAC,EAAc7D,QAEnE8K,GAAW2B,OAAOna,IAAI,CAClBtF,SAAU,QACVuF,QAASxJ,EAAKY,OAAOpF,EAAE,sBACvBiO,OAAQka,IAKpB,OAAO9qB,QAAQE,OAAOU,GAlDtB,GAAa4F,YAsDzB,EAAAe,EAAMgjB,aAAahB,SAASG,KAAI,SAAA9gB,GAC5B,IAAMmiB,EACF,qFAEEC,EAAc,SAAdA,EAAeC,GACjB,IAAKA,GAAwB,WAAhB,eAAOA,GAChB,OAAOA,EAGX,cAAkB/sB,OAAOgG,KAAK+mB,GAA9B,eAAqC,CAAhC,IAAM,EAAG,KACJvoB,EAAQuoB,EAAK,GACfvoB,GAA0B,kBAAVA,GAAsBqoB,EAAc/gB,KAAKtH,GACzDuoB,EAAK,GAAO,IAAI/hB,KAAKxG,GACG,WAAjB,eAAOA,IACdsoB,EAAYtoB,KAOxB,OAFAsoB,EAAYpiB,EAAInL,MAETmL,KAGX,GAAOsiB,WAAP,yDAAkB,WAAO3lB,EAAI2iB,EAAGiD,GAAd,sGACV5lB,EAAG/D,KADO,OAEX,kBAFW,MAGX,0BAHW,MAIX,WAJW,6BAKf2pB,IALe,gCASF,GAAM7a,QAAQ0T,eATZ,gBAUFmH,IAVE,2BAWK,GAAMtb,MAAMvB,MAXjB,kCAaI,GAAMgT,SAAS5a,EAAY+e,SAb/B,QAeF0F,IAfE,wBAiBE5hB,EAAkB,EAAOA,gBACzBmJ,EAAOnN,EAAGmN,KACVnJ,EAAgBoJ,SAAS,MAAQD,EAAKE,WAAW,OACjDF,EAAOA,EAAKG,UAAU,IAG1B,MAAMH,EAAKE,WAAW,MAClBF,EAAOA,EAAK/O,MAAM,GAxBpB,GA2BIif,EA3BJ,UA2BmBrZ,GA3BnB,OA2BqCmJ,GACjCzO,EA5BJ,UA4BWsB,EAAG0N,MAAM,eA5BpB,aA4BW,EAAkB7D,YAC3BnL,EA7BF,kCA8BQ,GAAMqd,SAAS5a,EAAYiC,SAAU,CAAE1E,OAAM2e,cA9BrD,YA+BM,GAAM/S,MAAMvB,MA/BlB,yBAgCoC5M,GAA1B,GAAMmO,MAAM8T,WAhCtB,wBAiCgBxG,EAAY+L,GAAWkC,QAAQ3Q,KAAK4Q,GAAc,CACpD9d,MAAO,CACH/I,OAAQ2C,EAAKY,OAAOpF,EAAE,sBACtBuL,OAAO,EACPmP,iBAAiB,EACjBvY,UAAU,GAEdwY,UAAW,CACP5Y,OAAQ,WACJ,MAAO,CACH,eAAE,QAAQ,CACNS,MAAOgC,EAAKY,OAAOpF,EAAE,wBACrB4a,QAAS,WACL,GAAa/W,SACb2W,EAAUK,SACXhP,WAAW,SAhD5C,2BAuDwC,qBAAvB,GAAMqB,MAAM+T,SACnB,GAAMzN,OAAOxP,EAAcke,sBAAsB,GAxD3D,QA2DU,GAAMhV,MAAMkU,UACZ,GAAM5N,OAAOxP,EAAcme,QAAQ,GA5D7C,yBA+DQ,GAAMxD,SAAS5a,EAAY+e,SA/DnC,aAgEV,EAAO/b,OAAsC,GAA7B,GAAMmG,MAAM6N,IAAIqM,WAAsB,GAAMla,MAAMvB,OAAU,GAAMuB,MAAMvB,iBAAyB,IAAc,GAAMuB,MAAMqR,OAAOC,YAhExI,kCAiEN+H,GAAWoC,EAAEC,WAAWtJ,OAAOC,iBAAiBsJ,SAAS,EAAO9hB,MAAQ,UAAa,GAAMmG,MAAMvB,MAAclG,aAjEzG,QAmEE+iB,EAAK5lB,EAAGmN,MAnEV,wBAqEE,GAAa1G,MAAM4W,GArErB,4CAAlB,4D,kCCtOA,W,kCCAA,W,kCCAA,W,uGCAA,W","file":"js/app.37857e73.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-2d0aa57c\":\"1a855a3f\",\"chunk-2d0af4d9\":\"7454fc34\",\"chunk-2d0b8b5b\":\"4a573c03\",\"chunk-2d0c80f1\":\"10bf9ad8\",\"chunk-2d0cc987\":\"d827910d\",\"chunk-2d0e1839\":\"e90bfab8\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./DamageReport.vue?vue&type=style&index=0&id=1a6b7879&scoped=true&lang=scss\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UAppLayout.vue?vue&type=style&index=0&id=857987da&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./DamageReportSK.vue?vue&type=style&index=0&id=1261b791&scoped=true&lang=scss\"","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AppFooter.vue?vue&type=style&index=0&id=4b4349d5&scoped=true&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ResetPasswordVerify.vue?vue&type=style&index=0&id=c02cda70&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./AppHeader.vue?vue&type=style&index=0&id=143b386b&lang=scss&scoped=true\"","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UStrongPassword.vue?vue&type=style&index=0&id=0ec49a26&lang=scss&scoped=true\"","var map = {\n\t\"./logo_unihub.svg\": [\n\t\t\"7b80\",\n\t\t\"chunk-2d0e1839\"\n\t],\n\t\"./logo_unihubOld.svg\": [\n\t\t\"4f32\",\n\t\t\"chunk-2d0cc987\"\n\t],\n\t\"./logo_unihub_small.svg\": [\n\t\t\"52ec\",\n\t\t\"chunk-2d0c80f1\"\n\t],\n\t\"./logout.svg\": [\n\t\t\"309a\",\n\t\t\"chunk-2d0b8b5b\"\n\t],\n\t\"./menu-burger.svg\": [\n\t\t\"0e6d\",\n\t\t\"chunk-2d0af4d9\"\n\t],\n\t\"./user-profile.svg\": [\n\t\t\"1139\",\n\t\t\"chunk-2d0aa57c\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"7e7b\";\nmodule.exports = webpackAsyncContext;","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./LogOutDialog.vue?vue&type=style&index=0&id=a2f61328&lang=scss&scoped=true\"","\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\t\t{{t('global.messages.pretimeout')}}\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n \r\n\r\n\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ firstName }}{{ lastName }}\r\n {{ t(\"appHeader.impersonated\")}} \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{t('tiles.messages.warning')}}\r\n {{t(\"logOut.titles.logoutDialog\")}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{time}}\r\n \r\n\r\n\r\n","export enum ActionTypes {\r\n getUser = \"getUser\",\r\n tryRefreshToken = \"tryRefreshToken\",\r\n getToken = \"getToken\",\r\n getRecaptchaStatus = \"getRecaptchaStatus\",\r\n socketSendMessage = \"socketSendMessage\"\r\n}","export enum MutationTypes {\r\n\tsetUser = \"setUser\",\r\n\tremoveUser = \"removeUser\",\r\n\tsetToken = \"setToken\",\r\n\tsetShowCheckPhoneDialog = \"setShowCheckPhoneDialog\",\r\n\tshowPasswordExpirationDialog = \"showPasswordExpirationDialog\",\r\n\tinitApp = \"initApp\",\r\n\tsetRecaptcha = \"setRecaptcha\",\r\n\tsetImpersonification = \"setImpersonification\",\r\n\tloginOut = \"loginOut\",\r\n\tsetSSO = \"setSSO\",\r\n\tSOCKET_ONOPEN = 'SOCKET_ONOPEN',\r\n\tSOCKET_ONCLOSE = 'SOCKET_ONCLOSE',\r\n\tSOCKET_ONERROR = 'SOCKET_ONERROR',\r\n\tSOCKET_ONMESSAGE = 'SOCKET_ONMESSAGE',\r\n\tSOCKET_RECONNECT = 'SOCKET_RECONNECT',\r\n\tSOCKET_RECONNECT_ERROR = 'SOCKET_RECONNECT_ERROR',\r\n\tsaveMessage = \"saveMessage\"\r\n}","import { createI18n } from 'vue-i18n';\r\n\r\nimport csCZ from '@/locale/cs-CZ.json';\r\nimport skSK from '@/locale/sk-SK.json';\r\nimport enUS from '@/locale/en-US.json';\r\n\r\nconst messages = {\r\n\t'cs-CZ': csCZ,\r\n\t'sk-SK': skSK,\r\n\t'en-US': enUS\r\n}\r\n\r\nconst currentLocale = Object.keys(messages).find(str => str.includes(navigator.language));\r\nexport const i18n = createI18n({\r\n\tlegacy: false,\r\n\tlocale: currentLocale,\r\n\tfallbackLocale: 'cs-CZ',\r\n\tmessages\r\n});","import axios from 'axios';\r\nimport { PatchObject } from 'json-patch-gen';\r\nimport AccountDto from '../dtos/AccountDto';\r\nimport ChangePasswordDto from '../dtos/ChangePasswordDto';\r\nimport SecondFactorDto from '../dtos/SecondFactorDto';\r\nimport { useI18n } from 'vue-i18n';\r\nimport AccountClientMock from './mocks/AccountClientMock';\r\nimport { i18n } from '@/i18n';\r\nimport VerifyEmailUniquenessDto from '../dtos/VerifyEmailUniquenessDto';\r\nimport ChangePasswordValidateDto from '../dtos/ChangePasswordValidateDto';\r\n\r\n\r\nclass AccountClient {\r\n\tprivate readonly RESOURCE_ACCOUNTS = 'Accounts';\r\n\r\n\tpublic async getMe(): Promise {\r\n\t\treturn (await axios.get(`${this.RESOURCE_ACCOUNTS}/me`)).data;\r\n\t}\r\n\r\n\t\r\n\r\n\tpublic patch(id: string, patch: PatchObject[], verificationData: string): Promise {\r\n\t\treturn axios.patch(`${this.RESOURCE_ACCOUNTS}/${id}`, patch,\r\n\t\t\t{ \r\n\t\t\t\theaders: { \"x-verification-data\": verificationData },\r\n\t\t\t\terrorMessages: new Map([\r\n\t\t\t\t\t[403, i18n.global.t(\"toast.messages.verificationFailed\")],\r\n\t\t\t\t\t[409, i18n.global.t(\"toast.messages.emailAlreadyExists\")]\r\n\t\t\t\t])\r\n\t\t\t});\r\n\t}\r\n\r\n\tpublic async changePasswordVerify(id: string, data: ChangePasswordDto): Promise {\r\n\t\treturn axios.put(`${this.RESOURCE_ACCOUNTS}/${id}/verify-change-password`, data);\r\n\t}\r\n\r\n\tpublic async getSecondFactors(id: string): Promise {\r\n\t\treturn (await axios.get(`${this.RESOURCE_ACCOUNTS}/${id}/second-factors`)).data;\r\n\t}\r\n\r\n\tpublic async verifyMyNewEmailUniqueness(data: VerifyEmailUniquenessDto): Promise {\r\n\t\treturn await (await axios.post(`${this.RESOURCE_ACCOUNTS}/me/verify-new-email-uniqueness`, data)).data;\r\n\t}\r\n\r\n\tpublic async validateMyNewPassword(data: ChangePasswordValidateDto): Promise {\r\n\t\treturn await axios.post(`${this.RESOURCE_ACCOUNTS}/me/validate-new-password`, data);\r\n\t}\r\n}\r\n\r\n//export default process.env.NODE_ENV === 'production' ? AccountClient : AccountClientMock\r\nexport default AccountClient","export default class AuthTokenRequestDto {\r\n\tpublic refreshToken = '';\r\n\tpublic redirectUri = '';\r\n\tpublic code = '';\r\n\r\n\tpublic constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}","export default class AuthToken {\r\n public accessToken: string;\r\n public refreshToken: string;\r\n public validTo: Date;\r\n\r\n constructor(accessToken: string, refreshToken: string, validTo: Date) {\r\n this.accessToken = accessToken\r\n this.refreshToken = refreshToken\r\n this.validTo = validTo\r\n }\r\n}","import axios from 'axios';\r\nimport AuthTokenRequestDto from '../dtos/AuthTokenRequestDto';\r\nimport AuthTokenDto from '../dtos/AuthTokenDto';\r\nimport TokenClientMock from './mocks/TokenClientMock';\r\n\r\nclass TokenClient {\r\n\tprivate RESOURCE_TOKEN = 'keycloak';\r\n\r\n\tpublic async getToken(data: AuthTokenRequestDto): Promise {\r\n\t\tconst result = await axios.post(`${this.RESOURCE_TOKEN}/token`, data, { supressErrorMessage: true });\r\n\t\treturn result.data;\r\n\t}\r\n\r\n\tpublic async refreshToken(data: AuthTokenRequestDto): Promise {\r\n\t\tconst result = await axios.post(`${this.RESOURCE_TOKEN}/refreshToken`, data, \r\n\t\t\t{ supressErrorMessage: true });\r\n\r\n\t\treturn result.data;\r\n\t}\r\n}\r\n\r\n//export default process.env.NODE_ENV === 'production' ? TokenClient : TokenClientMock\r\nexport default TokenClient","import AuthTokenRequestDto from '@/dtos/AuthTokenRequestDto';\r\nimport AuthToken from '@/model/AuthToken';\r\nimport TokenClientMock from './mocks/TokenClientMock';\r\nimport TokenClient from './TokenClient';\r\n\r\nexport default class AuthTokenService {\r\n private readonly client: TokenClient;\r\n\r\n constructor() {\r\n this.client = new TokenClient();\r\n }\r\n\r\n public async getToken(code: string, redirectUri: string): Promise {\r\n const res = await this.client.getToken(new AuthTokenRequestDto({ \r\n code, \r\n redirectUri\r\n }));\r\n\r\n return new AuthToken(res.access_token, res.refresh_token, this.getValidTo(res.expires_in));\r\n }\r\n\r\n public async refreshToken(refreshToken: string): Promise {\r\n const res = await this.client.refreshToken(new AuthTokenRequestDto({ refreshToken }));\r\n return new AuthToken(res.access_token, res.refresh_token, this.getValidTo(res.expires_in));\r\n }\r\n\r\n private getValidTo(duration: number) {\r\n const validTo = new Date();\r\n validTo.setMinutes(validTo.getMinutes() + (duration / 60) - 1);\r\n\r\n return validTo;\r\n }\r\n}","export default {\r\n apiUrl: \"https://unihub-dev.uniqa.cz/hyperionapi/api\",\r\n authUrl: \"https://login-dev.uniqa.cz/auth/realms/people/protocol/openid-connect\",\r\n authRedirectUri: \"https://unihub-dev.uniqa.cz\",\r\n damageReportUrl: \"https://skody-t.uniqa.cz/form/redirect/\",\r\n damageReportUrlBaseSK: \"https://skody-t.uniqa.sk/\",\r\n wsUrl: \"\",\r\n envName: \"-Dev\" \r\n}","export default {\r\n apiUrl: \"https://unihub.uniqa.cz/hyperionapi/api\",\r\n authUrl: \"https://login.uniqa.cz/auth/realms/people/protocol/openid-connect\",\r\n authRedirectUri: \"https://unihub.uniqa.cz\",\r\n damageReportUrl: \"https://skody.uniqa.cz/form/redirect/\",\r\n damageReportUrlBaseSK: \"https://skody.uniqa.sk/\",\r\n wsUrl: \"\",\r\n envName: \"\" \r\n}","export default {\r\n apiUrl: \"https://unihub-test.uniqa.cz/hyperionapi/api\",\r\n authUrl: \"https://login-test.uniqa.cz/auth/realms/people/protocol/openid-connect\",\r\n authRedirectUri: \"https://unihub-test.uniqa.cz\",\r\n damageReportUrl: \"https://skody-t.uniqa.cz/form/redirect/\",\r\n damageReportUrlBaseSK: \"https://skody-t.uniqa.sk/\",\r\n wsUrl: \"wss://wsocket-test.uniqa.cz/messaging\",\r\n envName: \"-Test\" \r\n}","export default {\r\n apiUrl: \"https://localhost:44365/api\",\r\n //authUrl: \"https://login-dev.uniqa.cz/auth/realms/people/protocol/openid-connect\",\r\n authUrl: \"https://login-test.uniqa.cz/auth/realms/people/protocol/openid-connect\",\r\n authRedirectUri: \"http://localhost:8080\",\r\n damageReportUrl: \"https://skody-t.uniqa.cz/form/redirect/\",\r\n damageReportUrlBaseSK: \"https://skody-t.uniqa.sk/\",\r\n wsUrl: \"wss://wsocket-test.uniqa.cz/messaging\",\r\n envName: \"-Local\" \r\n}\r\n","import dev from \"./dev\";\r\nimport prod from \"./prod\"\r\nimport test from \"./test\"\r\nimport local from \"./local\"\r\n\r\nconst isTest = process.env.NODE_ENV === 'testenv'\r\nconst isProduction = process.env.NODE_ENV === 'production'\r\nconst isDevelopment = process.env.NODE_ENV === 'development'\r\n\r\n\r\nexport default isProduction ? prod : isTest ? test : isDevelopment ? dev : local;","\r\n \r\n {{ t(\"changePassword.pageTitle\") }}\r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ t(\"changePassword.fields.originalPassword\") }}\r\n \r\n \r\n \r\n {{ t(\"changePassword.validations.enterOriginalPassword\") }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {{ t(\"changePassword.fields.verifyNewPassword\") }}\r\n \r\n \r\n \r\n {{ t(\"changePassword.validations.passwordsMismatch\") }}\r\n \r\n \r\n {{ t(\"changePassword.validations.enterVerifyPassword\") }}\r\n \r\n \r\n \r\n {{ t(\"changePassword.messages.resetPasswordMessage\") }}\r\n {{t(\"changePassword.messages.resetPassword\")}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ t(\"changePassword.messages.missing2faError\", { loginname: login}) }}\r\n \r\n \r\n \r\n \r\n\r\n\r\n","export default class ChangePasswordDto {\r\n\tpublic newPassword = '';\r\n\tpublic originalPassword = '';\r\n\tpublic verificationToken = '';\r\n\r\n\tpublic constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}","import { i18n } from '@/i18n';\r\nimport axios from 'axios';\r\nimport SecondFactorDto from '../dtos/SecondFactorDto';\r\nimport SecondFactorClientMock from './mocks/SecondFactorClientMock';\r\n\r\nclass SecondFactorClient {\r\n\tprivate readonly RESOURCE_SECOND_FACTORS = 'SecondFactors';\r\n\r\n\tpublic async authenticate(id: string, recaptchaToken: string): Promise {\r\n\t\treturn axios.post(`${this.RESOURCE_SECOND_FACTORS}/${id}/authenticate?recaptchaToken=${recaptchaToken}`, {}, \r\n\t\t\t{ errorMessage: i18n.global.t(\"toast.messages.errorSendingVerificationCode\") });\r\n\t}\r\n}\r\n\r\n//export default process.env.NODE_ENV === 'production' ? SecondFactorClient : SecondFactorClientMock\r\nexport default SecondFactorClient","\r\n \r\n \r\n \r\n","import { render } from \"./UErrorContainer.vue?vue&type=template&id=23015224\"\nconst script = {}\nscript.render = render\n\nexport default script","\r\n \r\n \r\n \r\n","import { render } from \"./UErrorItem.vue?vue&type=template&id=b2659d34\"\nconst script = {}\nscript.render = render\n\nexport default script","\r\n \r\n \r\n {{ label }}\r\n \r\n \r\n \r\n {{ t(\"strongPassword.messages.enterNewPassword\") }}\r\n \r\n \r\n {{strongPasswordMessage}}\r\n \r\n {{t(\"strongPassword.messages.strongPassword2\")}}\r\n {{t(\"strongPassword.messages.strongPassword3\")}}\r\n {{t(\"strongPassword.messages.strongPassword4\")}}\r\n {{t(\"strongPassword.messages.strongPassword5\")}}\r\n \r\n \r\n \r\n \r\n {{t(\"changePassword.validations.passwordRules\")}}\r\n \r\n\r\n\r\n\r\n\r\n","const HasDigit = (str: string) => /\\d/.test(str);\r\nconst HasLower = (str: string) => /[a-z]/.test(str);\r\nconst HasUpper= (str: string) => /[A-Z]/.test(str);\r\nconst AllLetterOrDigit = (str: string) => Array.from(str).every(s => HasUpper(s) || HasLower(s) || HasDigit(s));\r\n\r\nconst Score = (password: string) => \r\n (AllLetterOrDigit(password) ? 0 : 1)\r\n + (HasDigit(password) ? 1 : 0)\r\n + (HasLower(password) ? 1 : 0)\r\n + (HasUpper(password) ? 1 : 0);\r\n\r\nexport default function(password: string, minPasswordLength: number): boolean {\r\n return password.length >= minPasswordLength && Score(password) >= 3; \r\n}","import StrongPasswordValidator from \"./StrongPasswordValidator\";\r\n\r\nexport const strongPassword = function(value: unknown, minPasswordLength: unknown) {\r\n return typeof value === \"string\" && typeof minPasswordLength === \"number\" && StrongPasswordValidator(value, minPasswordLength);\r\n}","\r\nimport {computed, defineComponent, reactive } from 'vue';\r\nimport UErrorContainer from \"@/components/common/UErrorContainer.vue\";\r\nimport UErrorItem from \"@/components/common/UErrorItem.vue\";\r\nimport { required } from '@vuelidate/validators';\r\nimport { strongPassword } from '@/validation/Validators';\r\nimport useVuelidate from '@vuelidate/core';\r\nimport { useI18n } from 'vue-i18n';\r\n\r\nexport default defineComponent({\r\n components: { UErrorContainer, UErrorItem },\r\n props: {\r\n modelValue: String,\r\n label: String,\r\n disabled: Boolean,\r\n minPasswordLength: Number\r\n },\r\n emits: ['update:modelValue'],\r\n\r\n setup(props, { emit }) {\r\n const { t } = useI18n();\r\n const form = reactive({\r\n val: props.modelValue,\r\n })\r\n \r\n const strongPasswordMessage = computed(() => {\r\n return t(\"strongPassword.messages.strongPassword1\", {length: props.minPasswordLength})});\r\n \r\n const strongPasswordValidation = () => strongPassword(form.val, props.minPasswordLength); \r\n const rules = {\r\n val: { required, strongPasswordValidation }\r\n };\r\n\r\n const v$ = useVuelidate(rules, form);\r\n\r\n const onChanged = (event: string) => {\r\n form.val = event;\r\n v$.value.$touch();\r\n emit('update:modelValue', event);\r\n }\r\n\r\n return {\r\n form,\r\n v$,\r\n onChanged,\r\n t,\r\n strongPasswordMessage\r\n }\r\n },\r\n})\r\n","import { render } from \"./UStrongPassword.vue?vue&type=template&id=0ec49a26&scoped=true\"\nimport script from \"./UStrongPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./UStrongPassword.vue?vue&type=script&lang=ts\"\n\nimport \"./UStrongPassword.vue?vue&type=style&index=0&id=0ec49a26&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-0ec49a26\"\n\nexport default script","export default class AccountDto {\r\n\tpublic id = '';\r\n\tpublic firstName = '';\r\n\tpublic lastName = '';\r\n\tpublic birthDate = undefined as Date | undefined;\r\n\tpublic phoneNumber= '';\r\n\tpublic brokerId= '';\r\n\tpublic password= '';\r\n\tpublic email = '';\r\n\tpublic state = '';\r\n\tpublic stateName = '';\r\n\tpublic brokerName = '';\r\n\tpublic verificationToken = '';\r\n\tpublic usePasswordConfirmation = false;\r\n\tpublic phoneNumberIsEditable = false;\r\n\tpublic secondFactorActivationDate = undefined as Date | undefined;\r\n\tpublic username = '';\r\n\tpublic technicalAccount = false;\r\n\tpublic type = '';\r\n\tpublic passwordExpirationDate = '';\r\n\tpublic showPasswordExpirationWarning = false;\r\n\tpublic secondaryEmail = undefined as string | undefined;\r\n\r\n\tpublic constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}","\r\n \r\n \r\n {{ t(\"verificationPrompt.messages.enterVerificationCode\") }}\r\n \r\n\r\n \r\n {{ t(\"verificationPrompt.messages.codeSentViaSMS\") }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","\r\n import { computed, defineComponent, ref } from 'vue'\r\n import { useI18n } from 'vue-i18n';\r\n\r\n export default defineComponent({\r\n props: {\r\n visible: Boolean\r\n },\r\n emits: ['update:visible', 'submited', 'resendVerificationCode'],\r\n setup(props, { emit }) {\r\n const { t } = useI18n();\r\n const token = ref(\"\");\r\n const countDownText = ref(\"\");\r\n const interval = ref(0);\r\n const resendButtonDisabled = ref(true);\r\n const resendButtonText = t(\"resetPasswordVerify.buttons.resendVerificationCode\");\r\n const resendButtonTextTimer = t(\"resetPasswordVerify.buttons.resendVerificationCodeIn\");\r\n const displayCountDownButton = ref(false);\r\n const isVisible = computed({\r\n get() {\r\n return props.visible;\r\n },\r\n set(val: boolean) {\r\n emit('update:visible', val);\r\n }\r\n })\r\n\r\n const submit = () => {\r\n emit('submited', token.value);\r\n token.value = \"\";\r\n }\r\n\r\n const resendVerificationCode = () => {\r\n emit('resendVerificationCode');\r\n }\r\n \r\n const startTimer = () => {\r\n displayCountDownButton.value = true;\r\n resendButtonDisabled.value = true;\r\n countDownText.value = resendButtonTextTimer + \" 02:00\";\r\n clearInterval(interval.value);\r\n let timer = (60 * 2) - 1, minutes, seconds;\r\n\r\n interval.value = setInterval(function () {\r\n minutes = parseInt((timer / 60).toString(), 10);\r\n seconds = parseInt((timer % 60).toString(), 10);\r\n\r\n minutes = minutes < 10 ? \"0\" + minutes : minutes;\r\n seconds = seconds < 10 ? \"0\" + seconds : seconds;\r\n countDownText.value = resendButtonTextTimer + \" \" + minutes + \":\" + seconds;\r\n\r\n if (--timer < 0) {\r\n countDownText.value = resendButtonText;\r\n clearInterval(interval.value);\r\n resendButtonDisabled.value = false;\r\n }\r\n }, 1000);\r\n }\r\n\r\n return {\r\n token,\r\n isVisible,\r\n submit,\r\n countDownText,\r\n startTimer,\r\n resendButtonDisabled,\r\n resendVerificationCode,\r\n t,\r\n displayCountDownButton\r\n }\r\n },\r\n })\r\n","import { render } from \"./VerificationPrompt.vue?vue&type=template&id=65ff9016&scoped=true\"\nimport script from \"./VerificationPrompt.vue?vue&type=script&lang=ts\"\nexport * from \"./VerificationPrompt.vue?vue&type=script&lang=ts\"\n\nimport \"./VerificationPrompt.vue?vue&type=style&index=0&id=65ff9016&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-65ff9016\"\n\nexport default script","export default class ChangePasswordValidateDto {\r\n\tpublic originalPassword = '';\r\n\tpublic newPassword = '';\r\n\r\n\tpublic constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}","\r\n import { computed, defineComponent, onMounted, reactive, ref } from 'vue'\r\n import AccountClient from '@/services/AccountClient';\r\n import ChangePasswordDto from '@/dtos/ChangePasswordDto';\r\n import SecondFactorClient from '@/services/SecondFactorClient';\r\n import { useToast } from \"primevue/usetoast\";\r\n import { useRouter } from 'vue-router';\r\n import { required, requiredIf } from '@vuelidate/validators';\r\n import useVuelidate from \"@vuelidate/core\";\r\n import UErrorContainer from \"@/components/common/UErrorContainer.vue\";\r\n import UErrorItem from \"@/components/common/UErrorItem.vue\";\r\n import { useStore } from '@/store';\r\n import UStrongPassword from '@/components/common/UStrongPassword.vue';\r\n import { useI18n } from 'vue-i18n';\r\n import { useHead } from '@vueuse/head';\r\n import AccountDto from '../dtos/AccountDto';\r\n import SecondFactorDto from '@/dtos/SecondFactorDto';\r\n import VerificationPrompt from '@/components/VerificationPrompt.vue';\r\n import ChangePasswordValidateDto from '@/dtos/ChangePasswordValidateDto';\r\n import { VueReCaptcha, useReCaptcha } from 'vue-recaptcha-v3';\r\n import WebSocketFunctions from '../help/WebSocketFunctions';\r\n import { WebSocketMessageTypes } from '@/types/WebSocketMessageTypes';\r\n \r\n export default defineComponent({\r\n components: { UErrorContainer, UErrorItem, UStrongPassword, VerificationPrompt },\r\n setup() {\r\n const toast = useToast();\r\n const router = useRouter();\r\n const store = useStore();\r\n const { t } = useI18n();\r\n const loading = ref(false), saving = ref(false);\r\n const loadingIcon = computed(() => loading.value || saving.value\r\n ? \"pi pi-spin pi-spinner\" : \"\");\r\n const minPasswordLength = ref(10);\r\n const userId = ref(store.state.user?.id ?? \"\");\r\n\r\n const accountClient = new AccountClient();\r\n const account = reactive(new AccountDto());\r\n let secFactor: SecondFactorDto;\r\n const secondFactorMissing = ref(false);\r\n let verificationCodeSent = false;\r\n const verifyPrompt = ref(null);\r\n const showVerifyPrompt = ref(false);\r\n const useSecondFactorVerification = ref(false);\r\n\r\n const reCaptcha = useReCaptcha();\r\n let recaptchaToken = \"\";\r\n const login = ref('');\r\n const displayModal = ref(false);\r\n\r\n const getRecaptchaToken = async () => {\r\n if (!store.getters.isRecaptchaEnabled) {\r\n return true;\r\n }\r\n recaptchaToken = \"\";\r\n // (optional) Wait until recaptcha has been loaded.\r\n if (reCaptcha) {\r\n await reCaptcha.recaptchaLoaded();\r\n recaptchaToken = await reCaptcha.executeRecaptcha('resetPassword');\r\n }\r\n\r\n if (recaptchaToken == null || recaptchaToken == undefined || recaptchaToken == \"\") {\r\n toast.add({\r\n severity: 'error',\r\n summary: t(\"toast.titles.error\"),\r\n detail: t(\"toast.messages.recaptchaError\")\r\n });\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n const form = reactive({\r\n origPass: \"\",\r\n newPass: \"\",\r\n newPassVerify: \"\"\r\n });\r\n\r\n useHead({\r\n meta: [\r\n {\r\n name: `robots`,\r\n content: \"noindex\",\r\n },\r\n ],\r\n });\r\n\r\n onMounted(async () => {\r\n try {\r\n loading.value = true;\r\n Object.assign(account, await accountClient.getMe());\r\n login.value = account.username ? account.username : account.email;\r\n if (account.type === \"Service\") {\r\n minPasswordLength.value = 25;\r\n } else {\r\n minPasswordLength.value = 10;\r\n }\r\n\r\n if (account.usePasswordConfirmation) {\r\n useSecondFactorVerification.value = false;\r\n } else {\r\n useSecondFactorVerification.value = true;\r\n secFactor = (await accountClient.getSecondFactors(userId.value))[0];\r\n if (secFactor == null) {\r\n secondFactorMissing.value = true;\r\n displayModal.value = true;\r\n }\r\n }\r\n } catch {\r\n // intercepted by axios\r\n }\r\n\r\n loading.value = false;\r\n });\r\n\r\n const passwordsMatch = () => form.newPass === form.newPassVerify; // TODO duplicated\r\n const rules = {\r\n origPass: { required },\r\n newPassVerify: { required, passwordsMatch }\r\n };\r\n\r\n const v$ = useVuelidate(rules, form);\r\n\r\n const authenticate = async () => {\r\n try {\r\n if (!verificationCodeSent) {\r\n await new SecondFactorClient().authenticate(secFactor.id, recaptchaToken)\r\n Object(verifyPrompt.value).startTimer();\r\n verificationCodeSent = true;\r\n }\r\n showVerifyPrompt.value = true;\r\n } catch {\r\n // intercepted by axios\r\n }\r\n };\r\n\r\n const resendVerificationCode = async () => {\r\n if (!await getRecaptchaToken()) {\r\n return;\r\n }\r\n verificationCodeSent = false;\r\n await authenticate();\r\n };\r\n\r\n const continueSaving = async (verificationData: string) => {\r\n saving.value = true;\r\n\r\n try {\r\n await accountClient.changePasswordVerify(\r\n userId.value,\r\n new ChangePasswordDto({\r\n originalPassword: form.origPass,\r\n newPassword: form.newPass,\r\n verificationToken: verificationData\r\n }));\r\n\r\n if (useSecondFactorVerification.value) {\r\n showVerifyPrompt.value = false;\r\n }\r\n\r\n toast.add({\r\n severity: 'success',\r\n detail: t(\"toast.messages.passwordChangeSuccess\"),\r\n life: 3000\r\n });\r\n\r\n router.push(\"user-profile\");\r\n\r\n } catch {\r\n // intercepted by axios\r\n }\r\n\r\n saving.value = false;\r\n\r\n };\r\n const changePassword = async (valid: boolean) => {\r\n\r\n v$.value.$touch();\r\n if (!valid) {\r\n return;\r\n }\r\n\r\n saving.value = true;\r\n try {\r\n if (useSecondFactorVerification.value) {\r\n try {\r\n await accountClient.validateMyNewPassword(new ChangePasswordValidateDto({\r\n originalPassword: form.origPass,\r\n newPassword: form.newPass\r\n }));\r\n\r\n if (!await getRecaptchaToken()) {\r\n return;\r\n }\r\n await authenticate();\r\n }\r\n catch {\r\n // intercepted by axios\r\n }\r\n } else {\r\n continueSaving(\"\");\r\n }\r\n\r\n } catch {\r\n // intercepted by axios\r\n }\r\n\r\n saving.value = false;\r\n };\r\n return {\r\n form,\r\n v$,\r\n loading,\r\n saving,\r\n loadingIcon,\r\n changePassword,\r\n t,\r\n secondFactorMissing,\r\n showVerifyPrompt,\r\n verifyPrompt,\r\n continueSaving,\r\n resendVerificationCode,\r\n minPasswordLength,\r\n login,\r\n displayModal\r\n };\r\n },\r\n })\r\n","import { render } from \"./ChangePassword.vue?vue&type=template&id=dd93da8a\"\nimport script from \"./ChangePassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ChangePassword.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ t(\"resetPasswordVerify.pageTitle\", { username: username}) }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {{ t(\"resetPasswordVerify.fields.verifyNewPassword\") }}\r\n \r\n \r\n \r\n {{ t(\"resetPasswordVerify.validations.passwordsMismatch\") }}\r\n \r\n \r\n {{ t(\"resetPasswordVerify.validations.enterVerifyPassword\") }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ t(\"resetPasswordVerify.messages.resetLinkInvalid\") }}\r\n {{resetPasswordUrl()}}\r\n \r\n \r\n \r\n\r\n \r\n \r\n\t\t{{t('resetPasswordVerify.messages.passwordChangeSuccess')}}\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n\r\n\r\n","export default class FinishResetPasswordDto {\r\n\tpublic userId = '';\r\n\tpublic resetToken = '';\r\n\tpublic twoFactorToken = '';\r\n\tpublic newPassword = '';\r\n\tpublic recaptchaToken = '';\r\n\r\n\tpublic constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}","export default class ResetPasswordDto {\r\n\tpublic userId = '';\r\n\tpublic resetToken = '';\r\n\r\n\tpublic constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}","import axios from 'axios';\r\nimport FinishResetPasswordDto from '../dtos/FinishResetPasswordDto';\r\nimport PasswordResetResponseDto from '../dtos/PasswordResetResponseDto';\r\nimport ResetPasswordDto from '../dtos/ResetPasswordDto';\r\nimport VerifyTokenResponseDto from '../dtos/VerifyTokenResponseDto';\r\nimport PasswordResetClientMock from './mocks/PasswordResetClientMock';\r\nimport ResetPasswordValidateDto from '../dtos/ResetPasswordValidateDto';\r\n\r\nclass PasswordReset {\t\r\n\tprivate readonly RESOURCE_PASSWORD_RESET = 'password-reset';\r\n\t\r\n\tpublic init(username: string): Promise {\r\n\t\treturn axios.post(`${this.RESOURCE_PASSWORD_RESET}/init/${username}`);\r\n\t}\r\n\r\n\tpublic async verify(data: ResetPasswordDto): Promise {\r\n\t\treturn (await axios.post(`${this.RESOURCE_PASSWORD_RESET}/verify`, data, { supressErrorMessage: true })).data;\r\n\t}\r\n\r\n\tpublic async finish(data: FinishResetPasswordDto): Promise {\r\n\t\treturn (await axios.post(`${this.RESOURCE_PASSWORD_RESET}/finish`, data)).data;\r\n\t}\r\n\r\n\tpublic async validate(data: ResetPasswordValidateDto): Promise {\r\n\t\treturn (await axios.post(`${this.RESOURCE_PASSWORD_RESET}/validate`, data)).data;\r\n\t}\r\n}\r\n\r\n//export default process.env.NODE_ENV === 'production' ? PasswordReset : PasswordResetClientMock\r\nexport default PasswordReset ","export default class ResetPasswordValidateDto {\r\n\tpublic userId = '';\r\n\tpublic resetToken = '';\r\n\tpublic newPassword = '';\r\n\r\n\tpublic constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}","\r\n import FinishResetPasswordDto from '@/dtos/FinishResetPasswordDto';\r\n import ResetPasswordDto from '@/dtos/ResetPasswordDto';\r\n import { computed, defineComponent, onMounted, reactive, ref } from 'vue'\r\n import { useRoute } from 'vue-router'\r\n import PasswordResetClient from '../services/PasswordResetClient';\r\n import SecondFactorClient from '../services/SecondFactorClient';\r\n import { useToast } from \"primevue/usetoast\";\r\n import AccountClient from '@/services/AccountClient';\r\n import UErrorContainer from \"@/components/common/UErrorContainer.vue\";\r\n import UErrorItem from \"@/components/common/UErrorItem.vue\";\r\n import { required, requiredIf } from '@vuelidate/validators';\r\n import useVuelidate from \"@vuelidate/core\";\r\n import UStrongPassword from '@/components/common/UStrongPassword.vue';\r\n import { useI18n } from 'vue-i18n';\r\n import config from '../config';\r\n import router from '../router';\r\n import { useHead } from '@vueuse/head';\r\n import ResetPasswordValidateDto from '@/dtos/ResetPasswordValidateDto';\r\n import SecondFactorDto from '@/dtos/SecondFactorDto';\r\n import VerificationPrompt from '@/components/VerificationPrompt.vue';\r\n import { VueReCaptcha, useReCaptcha } from 'vue-recaptcha-v3';\r\n import { useStore } from '@/store';\r\n import LoginService from '../services/LoginService';\r\n\r\n export default defineComponent({\r\n components: { UErrorContainer, UErrorItem, UStrongPassword, VerificationPrompt },\r\n setup() {\r\n const route = useRoute();\r\n const toast = useToast();\r\n const { t } = useI18n();\r\n const store = useStore();\r\n\r\n const resetClient = new PasswordResetClient();\r\n const secondFactorClient = new SecondFactorClient();\r\n let secFactor: SecondFactorDto;\r\n let userId = \"\", resetToken = \"\";\r\n let useSecondFactorVerification = false;\r\n const minPasswordLength = ref(10);\r\n const secondFactorMissing = ref(false);\r\n const showVerifyPrompt = ref(false);\r\n const resetTokenValid = reactive(ref(false)), username = reactive(ref(\"\")),\r\n loading = ref(false), saving = ref(false);\r\n\r\n const savingIcon = computed(() => saving.value ? \"pi pi-spin pi-spinner\" : \"\");\r\n const verifyPrompt = ref(null);\r\n let verificationCodeSent = false;\r\n const reCaptcha = useReCaptcha();\r\n\r\n let recaptchaToken = \"\";\r\n const displayModal = ref(false);\r\n const loginService = new LoginService();\r\n const baseUrl = `${config.authRedirectUri}`;\r\n\r\n function getFullPath(path: string): string {\r\n if (baseUrl.endsWith('/') && path.startsWith('/')) {\r\n path = path.substring(1);\r\n }\r\n return baseUrl + path;\r\n }\r\n const redirectToLogIn = () => {\r\n const tilesPath = router.resolve({ name: 'tiles' }).fullPath;\r\n loginService.login(getFullPath(tilesPath));\r\n };\r\n const resetPasswordUrl = () => {\r\n const resetPassworPath = router.resolve({ name: 'ResetPassword' }).fullPath;\r\n return getFullPath(resetPassworPath);\r\n }\r\n const getRecaptchaToken = async () => {\r\n if (!store.getters.isRecaptchaEnabled) {\r\n return true;\r\n }\r\n recaptchaToken = \"\";\r\n // (optional) Wait until recaptcha has been loaded.\r\n if (reCaptcha) {\r\n await reCaptcha.recaptchaLoaded();\r\n recaptchaToken = await reCaptcha.executeRecaptcha('resetPassword');\r\n }\r\n\r\n if (recaptchaToken == null || recaptchaToken == undefined || recaptchaToken == \"\") {\r\n toast.add({\r\n severity: 'error',\r\n summary: t(\"toast.titles.error\"),\r\n detail: t(\"toast.messages.recaptchaError\")\r\n });\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n useHead({\r\n meta: [\r\n {\r\n name: `robots`,\r\n content: \"noindex\",\r\n },\r\n ],\r\n });\r\n\r\n onMounted(async () => {\r\n userId = route.query[\"uid\"]?.toString() ?? \"\";\r\n resetToken = route.query[\"token\"]?.toString() ?? \"\";\r\n\r\n try {\r\n loading.value = true;\r\n const res = await resetClient.verify(new ResetPasswordDto({\r\n userId: userId,\r\n resetToken: resetToken\r\n }));\r\n\r\n if (res.minPasswordLength) {\r\n minPasswordLength.value = res.minPasswordLength;\r\n }\r\n\r\n resetTokenValid.value = res.tokenValid;\r\n username.value = res.username;\r\n useSecondFactorVerification = res.useSecondFactorVerification;\r\n if (res.tokenValid && useSecondFactorVerification) {\r\n try {\r\n secFactor = (await new AccountClient().getSecondFactors(userId))[0];\r\n if (secFactor == null) {\r\n secondFactorMissing.value = true;\r\n toast.add({\r\n severity: 'error',\r\n summary: t(\"toast.titles.error\"),\r\n detail: t(\"toast.messages.secondFactorMissing\")\r\n });\r\n }\r\n } catch {\r\n // intercepted by axios\r\n }\r\n }\r\n } catch {\r\n // intercepted by axios\r\n }\r\n\r\n loading.value = false;\r\n });\r\n\r\n const form = reactive({\r\n newPass: \"\",\r\n newPassVerify: \"\",\r\n });\r\n\r\n const passwordsMatch = () => form.newPass === form.newPassVerify; // TODO duplicated\r\n const rules =\r\n {\r\n newPassVerify: { required, passwordsMatch },\r\n };\r\n\r\n const v$ = useVuelidate(rules, form);\r\n\r\n const authenticate = async () => {\r\n try {\r\n if (!verificationCodeSent) {\r\n await secondFactorClient.authenticate(secFactor.id, recaptchaToken);\r\n Object(verifyPrompt.value).startTimer();\r\n verificationCodeSent = true;\r\n }\r\n showVerifyPrompt.value = true;\r\n } catch {\r\n // intercepted by axios\r\n }\r\n };\r\n\r\n const resendVerificationCode = async () => {\r\n if (!await getRecaptchaToken()) {\r\n return;\r\n }\r\n\r\n verificationCodeSent = false;\r\n await authenticate();\r\n };\r\n\r\n const continueSaving = async (verificationData: string) => {\r\n saving.value = true;\r\n try {\r\n if (useSecondFactorVerification) {\r\n if (!await getRecaptchaToken()) {\r\n return;\r\n }\r\n }\r\n\r\n const res = await resetClient.finish(new FinishResetPasswordDto({\r\n userId: userId,\r\n resetToken: resetToken,\r\n twoFactorToken: verificationData,\r\n newPassword: form.newPass,\r\n recaptchaToken: recaptchaToken\r\n }));\r\n\r\n if (!res.tokenValid) {\r\n\r\n toast.add({\r\n severity: 'error',\r\n summary: t(\"toast.titles.error\"),\r\n detail: t(\"toast.messages.invalidVerificationCode\"),\r\n life: 3000\r\n })\r\n } else {\r\n if (useSecondFactorVerification) {\r\n showVerifyPrompt.value = false;\r\n verificationCodeSent = false;\r\n }\r\n displayModal.value = true;\r\n }\r\n } catch {\r\n // intercepted by axios\r\n }\r\n saving.value = false;\r\n\r\n };\r\n\r\n const changePassword = async (valid: boolean) => {\r\n v$.value.$touch();\r\n if (!valid) {\r\n return;\r\n }\r\n\r\n if (!await getRecaptchaToken()) {\r\n return;\r\n }\r\n\r\n if (useSecondFactorVerification) {\r\n try {\r\n await resetClient.validate(new ResetPasswordValidateDto({\r\n userId: userId,\r\n resetToken: resetToken,\r\n newPassword: form.newPass\r\n }));\r\n\r\n await authenticate();\r\n }\r\n catch {\r\n // intercepted by axios\r\n }\r\n } else {\r\n continueSaving(\"\");\r\n }\r\n };\r\n\r\n return {\r\n form,\r\n v$,\r\n userId,\r\n resetToken,\r\n username,\r\n resetTokenValid,\r\n loading,\r\n saving,\r\n savingIcon,\r\n changePassword,\r\n t,\r\n showVerifyPrompt,\r\n verifyPrompt,\r\n continueSaving,\r\n secondFactorMissing,\r\n resendVerificationCode,\r\n minPasswordLength,\r\n store,\r\n displayModal,\r\n redirectToLogIn,\r\n resetPasswordUrl\r\n };\r\n },\r\n })\r\n","import { render } from \"./ResetPasswordVerify.vue?vue&type=template&id=c02cda70&scoped=true\"\nimport script from \"./ResetPasswordVerify.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPasswordVerify.vue?vue&type=script&lang=ts\"\n\nimport \"./ResetPasswordVerify.vue?vue&type=style&index=0&id=c02cda70&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-c02cda70\"\n\nexport default script","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ fullName }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {{ t(\"userProfile.fields.loginName\") }}\r\n \r\n\r\n \r\n \r\n {{ t(\"userProfile.fields.firstName\") }}\r\n \r\n\r\n \r\n \r\n {{ t(\"userProfile.fields.lastName\") }}\r\n \r\n\r\n \r\n \r\n {{ t(\"userProfile.fields.birthDate\") }}\r\n \r\n\r\n \r\n \r\n {{ t(\"userProfile.fields.email\") }}\r\n \r\n \r\n \r\n {{ t(\"userProfile.validations.enterEmail\") }}\r\n \r\n \r\n {{ t(\"userProfile.validations.invalidEmail\") }}\r\n \r\n \r\n {{ t(\"userProfile.validations.emailChanged\") }}\r\n \r\n \r\n\r\n \r\n \r\n {{ t(\"userProfile.fields.secondaryEmail\") }}\r\n \r\n\r\n \r\n \r\n {{ t(\"userProfile.fields.phone\") }}\r\n \r\n \r\n\r\n \r\n {{ t(\"userProfile.validations.invalidPhoneNumber\") }}\r\n \r\n \r\n\r\n \r\n \r\n {{ t(\"userProfile.fields.brokerName\") }}\r\n \r\n\r\n \r\n \r\n {{ t(\"userProfile.fields.brokerCrn\") }}\r\n \r\n\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {{ modalMessage }}\r\n \r\n \r\n \r\n \r\n \r\n {{ secondaryModalMessage }}\r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","import axios from 'axios';\r\nimport BrokerDto from '../dtos/BrokerDto';\r\nimport BrokerClientMock from './mocks/BrokerClientMock';\r\nimport BrokerServiceMock from './mocks/BrokerClientMock';\r\n\r\nclass BrokerClient {\r\n\tprotected name = 'Brokers';\r\n\r\n\tpublic async getById(id: string): Promise {\r\n\t\treturn (await axios.get(`${this.name}/${id}`)).data;\r\n\t}\r\n}\r\n\r\n//export default process.env.NODE_ENV === 'production' ? BrokerClient : BrokerClientMock\r\nexport default BrokerClient\r\n","\r\n \r\n \r\n \r\n","import { render } from \"./UFloatingLabel.vue?vue&type=template&id=f8da6cae\"\nconst script = {}\nscript.render = render\n\nexport default script","export default class BrokerDto {\r\n\tpublic id = '';\r\n\tpublic name = '';\r\n\tpublic crn = 0;\r\n\tpublic description = '';\r\n\tpublic brokerNumber = 0;\r\n\r\n\tpublic constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}","\r\n \r\n \r\n {{ t(\"userProfile.messages.enterVerificationPassword\") }}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n\r\n","\r\nimport { computed, defineComponent, ref } from 'vue'\r\nimport { useI18n } from 'vue-i18n';\r\nexport default defineComponent({\r\n props: {\r\n visible: Boolean\r\n },\r\n emits: [ 'update:visible', 'submited' ],\r\n computed: {\r\n typeInput(): string {\r\n return this.showPassword ? 'text' : 'password';\r\n }\r\n },\r\n setup(props, { emit }) {\r\n const { t } = useI18n();\r\n const token = ref(\"\");\r\n const isVisible = computed({\r\n get() {\r\n return props.visible;\r\n },\r\n set(val: boolean) {\r\n emit('update:visible', val);\r\n }\r\n })\r\n\r\n const submit = () => {\r\n emit('submited', token.value);\r\n token.value = \"\";\r\n }\r\n\r\n return {\r\n token,\r\n isVisible,\r\n submit,\r\n t\r\n }\r\n },\r\n data() {\r\n return {\r\n showPassword: false\r\n }\r\n }\r\n})\r\n","import { render } from \"./PasswordVerificationPrompt.vue?vue&type=template&id=a47840d8&scoped=true\"\nimport script from \"./PasswordVerificationPrompt.vue?vue&type=script&lang=ts\"\nexport * from \"./PasswordVerificationPrompt.vue?vue&type=script&lang=ts\"\n\nimport \"./PasswordVerificationPrompt.vue?vue&type=style&index=0&id=a47840d8&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-a47840d8\"\n\nexport default script","import axios from 'axios';\r\nimport TileCmsDto from '../dtos/TileCmsDto';\r\nimport TilesClientMock from './mocks/TilesClientMock';\r\nimport TilesSequenceDto from '@/dtos/TilesSequenceDto';\r\n\r\nclass TilesClient {\r\n\tprotected name = 'Tiles';\r\n\tpublic async getAll(): Promise {\r\n\t\treturn (await axios.get(`${this.name}`)).data;\r\n\t}\r\n\r\n\tpublic async SaveTilesSequence(sequenceDataDto: TilesSequenceDto): Promise{\r\n\t\treturn (await axios.post(`${this.name}/saveSequence`, sequenceDataDto)).data;\r\n\t}\r\n}\r\n\r\n//export default process.env.NODE_ENV === 'production' ? TilesClient : TilesClientMock\r\nexport default TilesClient\r\n","export default class VerifyEmailUniquenessDto {\r\n\tpublic email = '';\r\n}","export default class GeneralFunction {\r\n\r\n public cutEmail(text: string): string {\r\n let result = text;\r\n if (result.indexOf(\"#\") > 0) {\r\n if (!this.checkEmailOrderingSuffix(text)) {\r\n text = text.replace(\"@\", \"\");\r\n }\r\n result = text.substring(0, text.indexOf(\"#\"));\r\n if (this.checkEmailSuffix(text)) {\r\n return result;\r\n }\r\n }\r\n return text;\r\n }\r\n\r\n public checkEmailOrderingSuffix(text: string): boolean {\r\n if (text.indexOf(\"#\") > -1) {\r\n const suffix = text.substring(text.indexOf(\"#\"), text.length);\r\n if (suffix.indexOf(\"@\") > -1) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n public checkEmailSuffix(text: string): boolean {\r\n const suffix = text.substring(text.indexOf(\"#\")).replace(\"#\", \"\");\r\n if (/^[A-Za-z0-9\\-._]+$/.test(suffix)) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n}\r\n\r\n\r\n","\r\n import { computed, defineComponent, onMounted, reactive, ref } from 'vue';\r\n import BrokerClient from '../services/BrokerClient';\r\n import AccountClient from '../services/AccountClient';\r\n import AccountDto from '../dtos/AccountDto';\r\n import UFloatingLabel from '@/components/common/UFloatingLabel.vue'\r\n import BrokerDto from '@/dtos/BrokerDto';\r\n import diff, { PatchObject } from 'json-patch-gen';\r\n import { useToast } from 'primevue/usetoast';\r\n import useVuelidate from '@vuelidate/core';\r\n import { required, email, requiredIf } from '@vuelidate/validators';\r\n import UErrorContainer from \"@/components/common/UErrorContainer.vue\";\r\n import UErrorItem from \"@/components/common/UErrorItem.vue\";\r\n import VerificationPrompt from '@/components/VerificationPrompt.vue';\r\n import PasswordVerificationPrompt from '@/components/PasswordVerificationPrompt.vue';\r\n import TilesClient from '../services/TilesClient';\r\n import SecondFactorClient from '@/services/SecondFactorClient';\r\n import { useStore } from '@/store';\r\n import { useI18n } from 'vue-i18n';\r\n import * as EmailValidator from 'email-validator';\r\n import { useHead } from '@vueuse/head';\r\n import VerifyEmailUniquenessDto from '@/dtos/VerifyEmailUniquenessDto';\r\n import SecondFactorDto from '@/dtos/SecondFactorDto';\r\n import parseMobile from 'libphonenumber-js/mobile';\r\n import { VueReCaptcha, useReCaptcha } from 'vue-recaptcha-v3';\r\n import General from '../help/GeneralFunction';\r\n import WebSocketFunctions from '../help/WebSocketFunctions';\r\n import { WebSocketMessageTypes } from '@/types/WebSocketMessageTypes';\r\nimport TileCmsDto from '@/dtos/TileCmsDto';\r\nimport { MutationTypes } from '@/store/MutationTypes';\r\n\r\n export default defineComponent({\r\n components: { UFloatingLabel, UErrorContainer, UErrorItem, VerificationPrompt, PasswordVerificationPrompt },\r\n setup() {\r\n const toast = useToast();\r\n const store = useStore();\r\n const { t } = useI18n();\r\n const general = new General();\r\n const userId = ref(store.state.user?.id ?? \"\");\r\n\r\n const loading = ref(false), saving = ref(false);\r\n const savingIcon = computed(() => saving.value ? \"pi pi-spin pi-spinner\" : \"\");\r\n const displayModal = ref(false);\r\n const displaySecondaryModal = ref(false);\r\n const accountClient = new AccountClient();\r\n const broker = reactive(new BrokerDto());\r\n const modalMessage = ref(\"\");\r\n const secondaryModalMessage = ref(t('tiles.messages.secondaryEmailEditation'));\r\n const isSSO = store.state.user?.type == \"SSO\";\r\n //SAVEBUTTON - disable save button v pripade ze nebola vykonana ziadna zmena v profile\r\n //const origAccount = reactive(new AccountDto());\r\n let origAccount = new AccountDto();\r\n const account = reactive(new AccountDto());\r\n const tiles = reactive(Array());\r\n\r\n function mobileValidate(phone: string): boolean {\r\n const mobileNumber = parseMobile(phone);\r\n\r\n if (mobileNumber) {\r\n return mobileNumber.getType() === 'MOBILE';\r\n }\r\n return false;\r\n }\r\n\r\n const secondaryEmailValid = (): boolean =>{\r\n return account.secondaryEmail == '' || account.secondaryEmail == null || account.secondaryEmail == undefined ? true : EmailValidator.validate(account.secondaryEmail);\r\n }\r\n\r\n const phoneNumberValid = () => account.phoneNumberIsEditable ?\r\n (new RegExp('^(\\\\+|(00))((420)|(421)|(36)|(48))[0-9]{9}$|^(\\\\+|(00))(((43)|(49))[0-9]{9,11})$')).test(account.phoneNumber) && mobileValidate(account.phoneNumber) :\r\n true;\r\n const rules = {\r\n email: { required },\r\n phoneNumber: { phoneNumberValid },\r\n secondaryEmail: { secondaryEmailValid }\r\n };\r\n let secFactor: SecondFactorDto;\r\n const v$ = useVuelidate(rules, account);\r\n const login = ref('');\r\n let verificationCodeSent = false;\r\n const verifyPrompt = ref(null);\r\n\r\n const reCaptcha = useReCaptcha();\r\n let recaptchaToken = \"\";\r\n\r\n const getRecaptchaToken = async () => {\r\n if (!store.getters.isRecaptchaEnabled) {\r\n return true;\r\n }\r\n recaptchaToken = \"\";\r\n // (optional) Wait until recaptcha has been loaded.\r\n if (reCaptcha) {\r\n await reCaptcha.recaptchaLoaded();\r\n recaptchaToken = await reCaptcha.executeRecaptcha('resetPassword');\r\n }\r\n\r\n if (recaptchaToken == null || recaptchaToken == undefined || recaptchaToken == \"\") {\r\n toast.add({\r\n severity: 'error',\r\n summary: t(\"toast.titles.error\"),\r\n detail: t(\"toast.messages.recaptchaError\")\r\n });\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n const emailInvalid = (): boolean => {\r\n return account.email == '' ? false : !EmailValidator.validate(account.email);\r\n }\r\n\r\n const emailValidStyle = (): string => {\r\n return EmailValidator.validate(account.email) ? '' : 'p-invalid';\r\n }\r\n\r\n const emailChanged = (): boolean => {\r\n return (account.username == null || account.username == undefined || account.username.length < 1) &&\r\n !emailInvalid() && account.email.toLowerCase() != general.cutEmail(origAccount.email).toLowerCase();\r\n }\r\n\r\n async function loadMe(): Promise {\r\n Object.assign(account, await accountClient.getMe());\r\n login.value = account.username ? account.username : account.email;\r\n origAccount = new AccountDto(account);\r\n account.email = general.cutEmail(account.email);\r\n store.commit(MutationTypes.setUser, account);\r\n }\r\n\r\n const isSecondaryEmailEditationOk = (): boolean =>{\r\n if (tiles.some(x => x.applicationName == 'HCL'))\r\n {\r\n if (account.email == account.secondaryEmail || account.secondaryEmail?.endsWith('uniqa.cz') || account.secondaryEmail?.endsWith('uniqa.sk')){\r\n return false;\r\n }\r\n else{\r\n return true;\r\n }\r\n }\r\n else\r\n {\r\n return true; // vracime Ok jestli uzivatel nema HCL pravo, tzn. nekontrolujeme editace sekundarniho emailu\r\n }\r\n }\r\n\r\n useHead({\r\n meta: [\r\n {\r\n name: `robots`,\r\n content: \"noindex\",\r\n },\r\n ],\r\n });\r\n\r\n onMounted(async () => {\r\n loading.value = true;\r\n try {\r\n await loadMe();\r\n Object.assign(tiles, await new TilesClient().getAll());\r\n Object.assign(broker, await new BrokerClient().getById(account.brokerId));\r\n //SAVEBUTTON - disable save button v pripade ze nebola vykonana ziadna zmena v profile\r\n //Object.assign(origAccount , new AccountDto(account));\r\n } catch {\r\n // intercepted by axios\r\n }\r\n\r\n loading.value = false;\r\n });\r\n\r\n const fullName = computed(() => `${account.firstName} ${account.lastName}`);\r\n const birthDateFormated = computed(() => !account.birthDate\r\n ? undefined\r\n : new Intl.DateTimeFormat('cs-CZ').format(account.birthDate));\r\n\r\n const showVerifyPrompt = ref(false);\r\n const showPasswordVerifyPrompt = ref(false);\r\n let patch = [] as PatchObject[];\r\n\r\n const authenticate = async () => {\r\n try {\r\n if (!verificationCodeSent) {\r\n await new SecondFactorClient().authenticate(secFactor.id, recaptchaToken);\r\n Object(verifyPrompt.value).startTimer();\r\n verificationCodeSent = true;\r\n }\r\n showVerifyPrompt.value = true;\r\n } catch {\r\n // intercepted by axios\r\n }\r\n };\r\n\r\n const resendVerificationCode = async () => {\r\n if (!await getRecaptchaToken()) {\r\n return;\r\n }\r\n verificationCodeSent = false;\r\n await authenticate();\r\n };\r\n\r\n const saveChanges = async (valid: boolean) => {\r\n if (!isSecondaryEmailEditationOk()){\r\n displaySecondaryModal.value = true;\r\n return;\r\n }\r\n const updatedAccount = new AccountDto(account);\r\n if (general.cutEmail(origAccount.email) == updatedAccount.email) {\r\n updatedAccount.email = origAccount.email;\r\n }\r\n if (updatedAccount.secondaryEmail === \"\"){\r\n updatedAccount.secondaryEmail = undefined;\r\n }\r\n patch = diff(origAccount, updatedAccount);\r\n\r\n if (valid && patch.length > 0) {\r\n\r\n saving.value = true;\r\n try {\r\n if (!account.technicalAccount && origAccount.email != updatedAccount.email) {\r\n const verifyEmailUniquenessDto = new VerifyEmailUniquenessDto();\r\n verifyEmailUniquenessDto.email = updatedAccount.email;\r\n await accountClient.verifyMyNewEmailUniqueness(verifyEmailUniquenessDto);\r\n }\r\n if (account.usePasswordConfirmation) {\r\n showPasswordVerifyPrompt.value = true;\r\n } else {\r\n secFactor = (await accountClient.getSecondFactors(userId.value))[0];\r\n if (secFactor) {\r\n if (!await getRecaptchaToken()) {\r\n return;\r\n }\r\n await authenticate();\r\n } else {\r\n modalMessage.value = t(\"userProfile.messages.missing2faError\", { loginname: login.value})\r\n displayModal.value = true;\r\n }\r\n }\r\n // TODO getting second factor is duplicated with changepassword component -> move to service\r\n\r\n } catch {\r\n // intercepted by axios\r\n }\r\n saving.value = false;\r\n }\r\n }\r\n\r\n const continueSaving = async (verificationData: string) => {\r\n saving.value = true;\r\n try {\r\n const oldEmail = origAccount.email;\r\n await accountClient.patch(userId.value, patch, verificationData);\r\n\r\n if (account.usePasswordConfirmation) {\r\n showPasswordVerifyPrompt.value = false;\r\n } else {\r\n showVerifyPrompt.value = false;\r\n verificationCodeSent = false;\r\n }\r\n\r\n try {\r\n await loadMe();\r\n if (!account.username && oldEmail != origAccount.email) {\r\n modalMessage.value = t(\"userProfile.messages.newLoginName\", { loginname: login.value});\r\n displayModal.value = true;\r\n }\r\n } catch {\r\n // intercepted by axios\r\n }\r\n //SAVEBUTTON - disable save button v pripade ze nebola vykonana ziadna zmena v profile\r\n //Object.assign(origAccount , new AccountDto(account));\r\n\r\n v$.value.$reset();\r\n\r\n toast.add({\r\n severity: 'success',\r\n summary: 'Uloženo',\r\n detail: 'Změny byly uloženy',\r\n life: 3000\r\n });\r\n } catch {\r\n // intercepted by axios\r\n }\r\n\r\n saving.value = false;\r\n }\r\n\r\n return {\r\n showVerifyPrompt,\r\n loading,\r\n saving,\r\n savingIcon,\r\n v$,\r\n account,\r\n broker,\r\n fullName,\r\n birthDateFormated,\r\n saveChanges,\r\n continueSaving,\r\n t,\r\n showPasswordVerifyPrompt,\r\n login,\r\n emailInvalid,\r\n emailValidStyle,\r\n emailChanged,\r\n displayModal,\r\n resendVerificationCode,\r\n verifyPrompt,\r\n modalMessage,\r\n isSSO,\r\n tiles,\r\n displaySecondaryModal,\r\n secondaryModalMessage,\r\n isSecondaryEmailEditationOk\r\n }\r\n },\r\n\r\n computed:{\r\n hasHCLRight(): boolean{\r\n return this.tiles.some(x => x.applicationName == 'HCL');\r\n },\r\n\r\n IsUserFromInternalDistribution(): boolean{\r\n return this.broker.brokerNumber == 6000 || this.broker.brokerNumber == 3000\r\n || this.broker.brokerNumber == 292 || this.broker.brokerNumber == 99999; \r\n }\r\n }\r\n\r\n /*computed: {\r\n /*disableSaveButton(): boolean\r\n {\r\n //SAVEBUTTON - disable save button v pripade ze nebola vykonana ziadna zmena v profile\r\n let patch = [] as PatchObject[];\r\n patch = diff(this.origAccount, this.account);\r\n return patch.length == 0 || this.v$.$invalid || this.emailValidStyle != '';\r\n }*/\r\n //},\r\n });\r\n","import { render } from \"./UserProfile.vue?vue&type=template&id=f3ab0c0e&scoped=true\"\nimport script from \"./UserProfile.vue?vue&type=script&lang=ts\"\nexport * from \"./UserProfile.vue?vue&type=script&lang=ts\"\n\nimport \"./UserProfile.vue?vue&type=style&index=0&id=f3ab0c0e&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-f3ab0c0e\"\n\nexport default script","\r\n\t{{ t(\"tiles.pageTitle\") }}\r\n {{ t(\"tiles.pageSortSubTitle\") }} \r\n \r\n \r\n \r\n \r\n\t\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\t \r\n \r\n \r\n \r\n \r\n\t \r\n \r\n \r\n \r\n \r\n \r\n\t\r\n\t\r\n\t\t{{checkPhoneMessage}}\r\n\t\t\r\n\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n \r\n {{t('tiles.messages.fillSecondaryEmail')}}\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n","\r\n \r\n \r\n {{ tileName }}\r\n \r\n\r\n\r\n\r\n","export default class TileCmsDto {\r\n\tpublic applicationName = '';\r\n\tpublic name = '';\r\n\tpublic nameSk = '';\r\n\tpublic nameEn = '';\r\n\tpublic description = '';\r\n\tpublic url = '';\r\n\tpublic color = '';\r\n\tpublic colorHover = '';\r\n\tpublic width = '';\r\n\tpublic height = '';\r\n\tpublic tooltipCZ = '';\r\n\tpublic tooltipSK = '';\r\n\tpublic tooltipEN = '';\r\n\tpublic image = '';\r\n\tpublic imageHover = '';\r\n\tpublic openInSameWindow = false;\r\n\r\n\tpublic constructor(init?: Partial) {\r\n Object.assign(this, init);\r\n }\r\n}\r\n\r\n","import axios from 'axios';\r\nimport CreateAuditDto from '../dtos/CreateAuditDto';\r\n\r\nclass AuditClient {\r\n\tprivate readonly RESOURCE_AUDIT = 'Audit';\r\n\r\n\tpublic async createAudit(data: CreateAuditDto): Promise {\r\n\t\treturn await (await axios.post(`${this.RESOURCE_AUDIT}`, data, { supressErrorMessage: true })).data;\r\n\t}\r\n}\r\n\r\nexport default AuditClient","export default class CreateAuditDto {\r\n\tpublic userAccountId = '';\r\n\tpublic auditType = '';\r\n\tpublic description = '';\r\n\tpublic callerApplicationId = '';\r\n}","\r\nimport { defineComponent } from 'vue'\r\nimport TileCmsDto from '@/dtos/TileCmsDto';\r\nimport AuditClient from '@/services/AuditClient';\r\nimport CreateAuditDto from '@/dtos/CreateAuditDto';\r\nimport { useStore } from '@/store';\r\n\r\n export default defineComponent({\r\n props: {\r\n tileData: TileCmsDto,\r\n blockLink: Boolean\r\n },\r\n \r\n setup(props) {\r\n const auditClient = new AuditClient();\r\n const store = useStore();\r\n const tileUri = props.tileData?.url;\r\n const tileStyle = {\r\n \"--background-color\": props.tileData?.color ?? \"\",\r\n \"--background-color-hover\": props.tileData?.colorHover ?? \"\",\r\n \"--color\": props.tileData?.color ? \"white\" : \"\",\r\n \"--color-hover\": props.tileData?.color || props.tileData?.colorHover ? \"\" : \"#005ca9\",\r\n \"--icon-filter\": props.tileData?.color ? \"invert(100%)\" : \"\",\r\n \"--icon-filter-hover\": props.tileData?.colorHover ? \"\" : \"var(--icon-filter)\"\r\n }\r\n \r\n const tileImageStyle = {\r\n \"width\": props.tileData?.width ?? \"\",\r\n \"height\": props.tileData?.height ?? \"\"\r\n };\r\n\r\n const makeSvgObject = (image: string | undefined) => {\r\n if (image) {\r\n return URL.createObjectURL(new Blob([image], {type: 'image/svg+xml'}))\r\n }\r\n\r\n return image;\r\n }\r\n\r\n function isEmpty(text: string): boolean {\r\n return (!text || 0 === text.length);\r\n }\r\n\r\n function getNameByBrowserLanguage(data: TileCmsDto | undefined): string {\r\n if (data) {\r\n switch (navigator.language) {\r\n case \"cs\":\r\n default:\r\n return data.name;\r\n case \"sk\":\r\n return !isEmpty(data.nameSk) ? data.nameSk : data.name;\r\n case \"en\":\r\n return !isEmpty(data.nameEn) ? data.nameEn : data.name;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n } \r\n\r\n function pushUri(){\r\n try{\r\n const createAuditDto = new CreateAuditDto();\r\n createAuditDto.auditType = \"UnihubAppOpened\";\r\n createAuditDto.callerApplicationId = \"UNIHUB\";\r\n createAuditDto.description = \"Opened app \" + props.tileData?.applicationName+ \".\";\r\n if(store.getters.isImpersonification){\r\n createAuditDto.description += \" (Impersonated)\";\r\n } \r\n \r\n if(store.state.user){\r\n createAuditDto.userAccountId = store.state.user.id;\r\n }\r\n auditClient.createAudit(createAuditDto);\r\n }\r\n catch{\r\n //\r\n }\r\n if(tileUri){\r\n window.open(tileUri, props.tileData?.openInSameWindow ? \"_self\" : \"_blank\")?.focus();\r\n }\r\n }\r\n\r\n function getTooltipByBrowserLanguage(data: TileCmsDto | undefined): string {\r\n if (data) {\r\n switch (navigator.language) {\r\n case \"cs\":\r\n default:\r\n return data.tooltipCZ;\r\n case \"sk\":\r\n return data.tooltipSK\r\n case \"en\":\r\n return data.tooltipEN;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n }\r\n\r\n return {\r\n tileStyle,\r\n tileImageStyle,\r\n tileName: getNameByBrowserLanguage(props.tileData),\r\n tileImage: makeSvgObject(props.tileData?.image),\r\n pushUri,\r\n getTooltipByBrowserLanguage\r\n };\r\n },\r\n})\r\n","import { render } from \"./UTile.vue?vue&type=template&id=65716092\"\nimport script from \"./UTile.vue?vue&type=script&lang=ts\"\nexport * from \"./UTile.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","import axios from 'axios';\r\nimport ExtraPropertyClientMock from './mocks/ExtraPropertyClientMock';\r\nimport ExtraPropertyDto from '../dtos/ExtraPropertyDto';\r\n\r\nclass ExtraPropertyClient {\r\n\tprotected name = 'Properties';\r\n\r\n\tpublic async create(data: ExtraPropertyDto): Promise {\r\n\t\treturn await axios.post(this.name, data);\r\n\t}\r\n\r\n\tpublic async getMe(name: string, extraname: string, exactMatch: boolean): Promise {\r\n\t\treturn (await axios.get(`${this.name}/me?name=${name}&extraname=${extraname}&exactMatch=${exactMatch}`)).data;\r\n\t}\r\n}\r\n\r\n\t//export default process.env.NODE_ENV === 'production' ? ExtraPropertyClient : ExtraPropertyClientMock\r\n\texport default ExtraPropertyClient\r\n\r\n","export default class ExtraPropertyDto {\r\n\tpublic id = '';\r\n\tpublic name = '';\r\n\tpublic extraName = '';\r\n\tpublic content = '';\r\n\tpublic description = '';\r\n\tpublic userId = '';\r\n}","\r\n {{t(\"tiles.messages.errorPasswordExpirationMessage\", {date: passwordExpirationDate})}}\r\n\r\n\r\n\r\n\r\n","\r\n\r\n import { defineComponent, ref } from 'vue'\r\n import { useI18n } from 'vue-i18n';\r\n import { useStore } from '@/store';\r\n\r\n\r\n export default defineComponent({\r\n setup() {\r\n const { t } = useI18n();\r\n const store = useStore();\r\n const user = store.state.user;\r\n const passwordExpirationDate = ref('');\r\n if (user && user.passwordExpirationDate) {\r\n passwordExpirationDate.value = new Date(user.passwordExpirationDate).toLocaleDateString();\r\n }\r\n return {\r\n t,\r\n passwordExpirationDate\r\n };\r\n }\r\n })\r\n\r\n","import { render } from \"./PasswordExpirationDialog.vue?vue&type=template&id=426776a2&scoped=true\"\nimport script from \"./PasswordExpirationDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./PasswordExpirationDialog.vue?vue&type=script&lang=ts\"\n\nimport \"./PasswordExpirationDialog.vue?vue&type=style&index=0&id=426776a2&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-426776a2\"\n\nexport default script","export default class TilesSequenceDto {\r\n\tpublic data = '';\r\n}\t","class EventBus {\r\n events: {[key: string]: any};\r\n \r\n constructor() {\r\n this.events = {};\r\n }\r\n \r\n on(eventName: string, fn?: any) {\r\n this.events[eventName] = this.events[eventName] || [];\r\n this.events[eventName].push(fn);\r\n }\r\n \r\n off(eventName: string, fn?: any) {\r\n if (this.events[eventName]) {\r\n for (let i = 0; i < this.events[eventName].length; i++) {\r\n if (this.events[eventName][i] === fn) {\r\n this.events[eventName].splice(i, 1);\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n \r\n emit(eventName: string, data?: any) {\r\n if (this.events[eventName]) {\r\n this.events[eventName].forEach(function (fn: any) {\r\n fn(data);\r\n })\r\n }\r\n }\r\n }\r\n \r\n export default new EventBus();","\r\n\r\nimport { defineComponent, onMounted, reactive, ref, h } from 'vue';\r\nimport TilesClient from '../services/TilesClient';\r\nimport UTile from '@/components/common/UTile.vue';\r\nimport { useI18n } from 'vue-i18n';\r\nimport store, { useStore } from '@/store';\r\nimport { MutationTypes } from '../store/MutationTypes';\r\nimport moment from 'moment';\r\nimport ExtraPropertyClient from '@/services/ExtraPropertyClient';\r\nimport ExtraPropertyDto from '../dtos/ExtraPropertyDto';\r\nimport { useHead } from '@vueuse/head';\r\nimport { useDialog } from \"primevue/usedialog\";\r\nimport PasswordExpirationDialog from '@/components/PasswordExpirationDialog.vue';\r\nimport Button from 'primevue/button';\r\nimport { useRouter } from 'vue-router';\r\nimport WebSocketFunctions from '../help/WebSocketFunctions';\r\nimport { WebSocketMessageTypes } from '@/types/WebSocketMessageTypes';\r\nimport TileCmsDto from '@/dtos/TileCmsDto';\r\nimport TilesSequenceDto from '@/dtos/TilesSequenceDto';\r\nimport draggable from 'vuedraggable';\r\nimport EventBus from '@/help/EventBus';\r\n\r\nexport default defineComponent({\r\n name: 'Tile',\r\n components: { UTile, draggable },\r\n setup() {\r\n const tilesClient = new TilesClient();\r\n const store = useStore();\r\n const tiles = reactive(Array());\r\n const initialTiles = reactive(Array());\r\n const dialog = useDialog();\r\n const router = useRouter();\r\n\r\n const loading = ref(false);\r\n const displayModal = ref(false);\r\n const checkPhoneMessage = ref('');\r\n const { t } = useI18n();\r\n const extraPropertyClient = new ExtraPropertyClient();\r\n const phoneNumberValidated = \"PhoneNumberValidated\";\r\n const extraName = \"triton\";\r\n const user = store.state.user;\r\n const secondaryEmailDialogVisible = ref(true);\r\n const reRenderKey = ref(0);\r\n const sortModeEnabled = ref(false);\r\n\r\n useHead({\r\n meta: [\r\n {\r\n name: `robots`,\r\n content: 'index',\r\n },\r\n ],\r\n });\r\n\r\n function getNumberOfDaysToSecondFactor(secondFactorActivationDate: Date): number {\r\n const diff = Math.abs(secondFactorActivationDate.getTime() - new Date().getTime());\r\n const diffDays = Math.ceil(diff / (1000 * 3600 * 24));\r\n return diffDays;\r\n }\r\n\r\n onMounted(async () => {\r\n loading.value = true;\r\n try {\r\n Object.assign(tiles, await tilesClient.getAll());\r\n Object.assign(initialTiles, tiles);\r\n } catch {\r\n // intercepted by axios\r\n }\r\n\r\n EventBus.on('sortModeEnabled', async () =>\r\n {\r\n sortModeEnabled.value = true;\r\n });\r\n\r\n if (user && user.secondFactorActivationDate) {\r\n const numberOfDaysToSecondFactor = user.secondFactorActivationDate == undefined ? 0 : getNumberOfDaysToSecondFactor(user.secondFactorActivationDate)\r\n const phoneNumberIsEditableUntil = user.secondFactorActivationDate;\r\n phoneNumberIsEditableUntil.setDate(phoneNumberIsEditableUntil.getDate() - 1);\r\n\r\n if (user.phoneNumberIsEditable && store.state.showCheckPhoneDialog) {\r\n try {\r\n const respone = await extraPropertyClient.getMe(phoneNumberValidated, extraName, true);\r\n if (respone.length == 0) {\r\n checkPhoneMessage.value =\r\n t(\"tiles.messages.daysToSecondFactor\", { daysCount: numberOfDaysToSecondFactor }) + \" \" +\r\n ((user.phoneNumber == undefined || user.phoneNumber == \"\") ?\r\n t(\"tiles.messages.enterPhone\", { date: moment(phoneNumberIsEditableUntil).format('D.M.YYYY') }) :\r\n t(\"tiles.messages.checkPhone\", { phoneNumber: user.phoneNumber, date: moment(phoneNumberIsEditableUntil).format('D.M.YYYY') }));\r\n displayModal.value = true;\r\n }\r\n store.commit(MutationTypes.setShowCheckPhoneDialog, false);\r\n } catch {\r\n // intercepted by axios\r\n }\r\n }\r\n }\r\n\r\n if (user && user.showPasswordExpirationWarning && store.state.showPasswordExpirationDialog) {\r\n const dialogRef = dialog.open(PasswordExpirationDialog, {\r\n props: {\r\n header: t(\"tiles.messages.errorPasswordExpirationTitle\"),\r\n modal: true,\r\n dismissableMask: false,\r\n closable: false\r\n },\r\n templates: {\r\n footer: () => {\r\n return [\r\n h(Button, {\r\n label: t(\"tiles.buttons.changePassword\"),\r\n onClick: () => {\r\n router.push('change-password');\r\n dialogRef.close();\r\n }, autofocus: true\r\n }),\r\n h(Button, {\r\n label: 'OK',\r\n onClick: () => {\r\n dialogRef.close();\r\n }, autofocus: false\r\n })\r\n ]\r\n }\r\n }\r\n });\r\n store.commit(MutationTypes.showPasswordExpirationDialog, false);\r\n }\r\n \r\n loading.value = false;\r\n });\r\n\r\n const confirmPhoneNumber = async () => {\r\n //const user = store.state.user;\r\n displayModal.value = false;\r\n if (user) {\r\n try {\r\n const extraPropertyDto = new ExtraPropertyDto();\r\n extraPropertyDto.userId = String(user.id);\r\n extraPropertyDto.name = phoneNumberValidated;\r\n extraPropertyDto.extraName = extraName;\r\n extraPropertyDto.content = moment(new Date()).format('DD.MM.YYYY HH:mm:ss');\r\n\r\n await extraPropertyClient.create(extraPropertyDto);\r\n } catch {\r\n // intercepted by axios\r\n }\r\n }\r\n };\r\n\r\n const showPhoneNumberIsCorrectButton = () => {\r\n return user && user.phoneNumber != undefined && user.phoneNumber != \"\";\r\n };\r\n\r\n const dialogUserProfileButtonLabel = () => {\r\n if (showPhoneNumberIsCorrectButton()) {\r\n return t('tiles.buttons.changePhoneNumber')\r\n }\r\n return t('tiles.buttons.enterPhoneNumber')\r\n };\r\n\r\n return { tiles, \r\n initialTiles,\r\n loading, \r\n t, \r\n displayModal, \r\n checkPhoneMessage, \r\n confirmPhoneNumber, \r\n dialogUserProfileButtonLabel, \r\n showPhoneNumberIsCorrectButton, \r\n secondaryEmailDialogVisible, \r\n user,\r\n reRenderKey,\r\n tilesClient,\r\n sortModeEnabled };\r\n },\r\n\r\n computed:{\r\n hasHCLRightAndEmptySecondaryEmail(): boolean{\r\n return this.tiles.some(x => x.applicationName == 'HCL') && (this.user?.secondaryEmail === null || this.user?.secondaryEmail === undefined) && this.secondaryEmailDialogVisible;\r\n },\r\n\r\n continueDialogButtonIsHidden(): boolean{\r\n return new Date() > new Date(store.state.app.secondaryEmailDialogDate);\r\n }\r\n },\r\n\r\n methods:{\r\n async saveSequenceToDB(){\r\n this.increaseRerenderKey();\r\n const tilesSequenceData = JSON.stringify(this.tiles.map(x => x.applicationName));\r\n const tilesSubsequenceDto = new TilesSequenceDto();\r\n tilesSubsequenceDto.data = tilesSequenceData;\r\n await this.tilesClient.SaveTilesSequence(tilesSubsequenceDto);\r\n\r\n this.sortModeEnabled = false;\r\n },\r\n\r\n returnInitialArrayState(){\r\n Object.assign(this.tiles, this.initialTiles);\r\n this.increaseRerenderKey();\r\n this.sortModeEnabled = false;\r\n },\r\n\r\n increaseRerenderKey(){\r\n this.reRenderKey += 1;\r\n }\r\n }\r\n});\r\n\r\n","import { render } from \"./Tiles.vue?vue&type=template&id=32b0ef35\"\nimport script from \"./Tiles.vue?vue&type=script&lang=ts\"\nexport * from \"./Tiles.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","\r\n\t{{ t(\"damageReport.pageTitle\") }}\r\n\t\r\n \r\n \t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\r\n\t\t\t\t\r\n\t\t\t\r\n \r\n \r\n\r\n\r\n\r\n\r\n\r\n","\r\n\r\n\timport config from '@/config';\r\n\timport { useStore } from '@/store';\r\n\timport { computed, defineComponent, onMounted } from 'vue';\r\n\timport { useI18n } from 'vue-i18n';\r\n\timport { useHead } from '@vueuse/head';\r\n\timport General from '../help/GeneralFunction';\r\n import WebSocketFunctions from '../help/WebSocketFunctions';\r\n import { WebSocketMessageTypes } from '@/types/WebSocketMessageTypes';\r\n\r\n\texport default defineComponent({\r\n\t\tsetup() {\r\n\t\t\tconst store = useStore();\r\n const { t } = useI18n();\r\n\t\t\tconst general = new General();\r\n useHead({\r\n meta: [\r\n {\r\n name: `robots`,\r\n content: \"noindex\",\r\n },\r\n ],\r\n });\r\n\t\t\t\r\n function cutEmail(text: string | undefined): string | undefined {\r\n if (text) {\r\n let result = text;\r\n if (result.indexOf(\"#\") > 0) {\r\n if (!general.checkEmailOrderingSuffix(text)) {\r\n text = text.replace(\"@\", \"\");\r\n }\r\n result = text.substring(0, text.indexOf(\"#\"));\r\n if (general.checkEmailSuffix(text)) {\r\n return result;\r\n }\r\n }\r\n return text;\r\n }\r\n return text;\r\n\t\t\t}\r\n\r\n const user = computed(() => {\r\n\t\t\t\tconst base64Url = (store.state.token?.accessToken.toString() ?? '').split('.')[1];\r\n \t\t\tconst base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n \t\t\tconst jsonPayload = decodeURIComponent(atob(base64).split('').map(function(c) {\r\n\t\t\t\t\treturn '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n\t\t\t\t}).join(''));\r\n\r\n\t\t\t\treturn {\r\n\t\t\t\t\tid: store.state.user?.id,\r\n\t\t\t\t\temail: cutEmail(store.state.user?.email),\r\n\t\t\t\t\tfirstName: store.state.user?.firstName,\r\n\t\t\t\t\tlastName: store.state.user?.lastName,\r\n\t\t\t\t\tpersonalNumber: JSON.parse(jsonPayload).acquisition_number\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tconst buttons = [\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 0,\r\n\t\t\t\t\tlabel: t(\"damageReport.buttons.insured\"),\r\n\t\t\t\t\tform: \"MTPL_SKODCA\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 1,\r\n\t\t\t\t\tlabel: t(\"damageReport.buttons.injured\"),\r\n\t\t\t\t\tform: \"MTPL_POSKODENY\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 2,\r\n\t\t\t\t\tlabel: t(\"damageReport.buttons.carInsurance\"),\r\n\t\t\t\t\tform: \"CASCO\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 3,\r\n\t\t\t\t\tlabel: t(\"damageReport.buttons.frontGlassInsurance\"),\r\n\t\t\t\t\tform: \"GLASS\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 4,\r\n\t\t\t\t\tlabel: t(\"damageReport.buttons.propertyInsurance\"),\r\n\t\t\t\t\tform: \"PROPERTY\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 5,\r\n\t\t\t\t\tlabel: t(\"damageReport.buttons.damageResponsibilityInsurance\"),\r\n\t\t\t\t\tform: \"LIABILITY\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 6,\r\n\t\t\t\t\tlabel: t(\"damageReport.buttons.travelInsurance\"),\r\n\t\t\t\t\tform: \"TRAVEL\"\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tid: 7,\r\n\t\t\t\t\tlabel: t(\"damageReport.buttons.lifeInsurance\"),\r\n\t\t\t\t\tform: \"LIFE\"\r\n\t\t\t\t},\r\n\t\t\t]\r\n\r\n\t\t\treturn {\r\n\t\t\t\tuser,\r\n\t\t\t\tbuttons,\r\n\t\t\t\treportUri: config.damageReportUrl,\r\n\t\t\t\tt\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n\r\n","import { render } from \"./DamageReport.vue?vue&type=template&id=1a6b7879&scoped=true\"\nimport script from \"./DamageReport.vue?vue&type=script&lang=ts\"\nexport * from \"./DamageReport.vue?vue&type=script&lang=ts\"\n\nimport \"./DamageReport.vue?vue&type=style&index=0&id=1a6b7879&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-1a6b7879\"\n\nexport default script","\r\n\t{{ t(\"damageReportSK.pageTitle\") }}\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\r\n \r\n\r\n\r\n\r\n\r\n\r\n","export default class Agent360Dto {\r\n\tpublic agentNumber = '';\r\n\tpublic countryCode = '';\r\n\tpublic agentType = '';\r\n\tpublic regNum = '';\r\n\tpublic branchName = '';\r\n\tpublic companyRepresentative = '';\r\n\tpublic distributionChannel = '';\r\n\tpublic ns = '';\r\n\tpublic firstName = '';\r\n\tpublic lastName = '';\r\n\tpublic birthNumber = '';\r\n\tpublic companyName = '';\r\n\tpublic companyID = '';\r\n\tpublic email = '';\r\n\tpublic phone = '';\r\n\r\n\tpublic constructor(init?: Partial) {\r\n\t\tObject.assign(this, init);\r\n\t}\r\n}","import axios from 'axios';\r\nimport Agent360Dto from '../dtos/Agent360Dto';\r\n\r\nclass C360Client {\r\n\tprivate readonly RESOURCE_C360 = 'C360';\r\n\t\r\n\tpublic async getAgent(): Promise {\r\n\t\treturn (await axios.get(`${this.RESOURCE_C360}`)).data;\r\n\t}\r\n}\r\n\r\nexport default C360Client","\r\n\r\n\timport config from '@/config';\r\n\timport { useStore } from '@/store';\r\n import { computed, defineComponent, onMounted } from 'vue';\r\n import { useI18n } from 'vue-i18n';\r\n\timport { useHead } from '@vueuse/head';\r\n\timport Agent360Dto from '../dtos/Agent360Dto';\r\n import C360Client from '../services/C360Client';\r\n import WebSocketFunctions from '../help/WebSocketFunctions';\r\n import { WebSocketMessageTypes } from '@/types/WebSocketMessageTypes';\r\n export default defineComponent({\r\n setup() {\r\n const { t } = useI18n();\r\n const store = useStore();\r\n useHead({\r\n meta: [\r\n {\r\n name: `robots`,\r\n content: \"noindex\",\r\n },\r\n ],\r\n });\r\n\r\n const buttons = [\r\n {\r\n id: 0,\r\n label: t(\"damageReportSK.buttons.kasko\"),\r\n url: `${config.damageReportUrlBaseSK}/vozidla/havarijne-poistenie/?stredisko={stred}&email={email}`\r\n },\r\n {\r\n id: 1,\r\n label: t(\"damageReportSK.buttons.pzpDamaged\"),\r\n url: `${config.damageReportUrlBaseSK}/vozidla/povinne-zmluvne-poistenie/poskodeny/?stredisko={stred}&email={email}`\r\n },\r\n {\r\n id: 2,\r\n label: t(\"damageReportSK.buttons.pzpPest\"),\r\n url: `${config.damageReportUrlBaseSK}/vozidla/povinne-zmluvne-poistenie/poisteny/?stredisko={stred}&email={email}`\r\n },\r\n {\r\n id: 3,\r\n label: t(\"damageReportSK.buttons.property\"),\r\n url: `${config.damageReportUrlBaseSK}/majetok-zodpovednost/majetok/?stredisko={stred}&email={email}`\r\n },\r\n {\r\n id: 4,\r\n label: t(\"damageReportSK.buttons.responsibility\"),\r\n url: `${config.damageReportUrlBaseSK}/majetok-zodpovednost/zodpovednost/?stredisko={stred}&email={email}`\r\n },\r\n {\r\n id: 5,\r\n label: t(\"damageReportSK.buttons.traveling\"),\r\n url: `${config.damageReportUrlBaseSK}/cestovanie/cestovne-poistenie/?stredisko={stred}&email={email}`\r\n },\r\n {\r\n id: 6,\r\n label: t(\"damageReportSK.buttons.persons\"),\r\n url: `${config.damageReportUrlBaseSK}/osoby/zivot-zdravie-uraz/?stredisko={stred}&email={email}`\r\n },\r\n ]\r\n \r\n const user = computed(() => {\r\n return {\r\n email: store.state.user?.email\r\n }\r\n });\r\n\r\n return {\r\n buttons, t, user\r\n }\r\n },\r\n methods: {\r\n startDamage(url: string, email: string) {\r\n const urlReplace = url?.replace(\"{stred}\", this.c360Agent.ns).replace(\"{email}\", email);\r\n window.open(urlReplace, \"_blank\");\r\n },\r\n async load() {\r\n const defaultNS = \"N/A\";\r\n const c360Client = new C360Client();\r\n try {\r\n Object.assign(this.c360Agent, await c360Client.getAgent());\r\n } catch (error) {\r\n // intercepted by axios\r\n }\r\n this.c360Agent.ns = this.c360Agent.ns ?? defaultNS;\r\n }\r\n\t\t},\r\n data() {\r\n const c360Agent = new Agent360Dto();\r\n return {\t\t\t\t\r\n c360Agent\r\n\t\t\t}\r\n\t\t},\r\n\t\tmounted() {\r\n\t\t\tthis.load();\r\n }\r\n\t});\r\n\r\n","import { render } from \"./DamageReportSK.vue?vue&type=template&id=1261b791&scoped=true\"\nimport script from \"./DamageReportSK.vue?vue&type=script&lang=ts\"\nexport * from \"./DamageReportSK.vue?vue&type=script&lang=ts\"\n\nimport \"./DamageReportSK.vue?vue&type=style&index=0&id=1261b791&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-1261b791\"\n\nexport default script","\r\n\t\r\n\t\t{{ t(\"resetPassword.pageTitles.emailSent\")}}\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{{ t( \"resetPassword.messages.emailSent1\") }}\r\n\t\t\t\t{{form.username}}\r\n\t\t\t\t{{ t( \"resetPassword.messages.emailSent2\") }}\r\n\t\t\t\r\n\t\t\r\n\t\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{{passwordExpiredMessage}}\r\n\t\t\t\t{{ t(\"resetPassword.pageTitles.enterUsername\")}}\r\n\t\t\t\r\n\t\t\r\n\t\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t\t \r\n\t\t\t\t\t{{ t(\"resetPassword.fields.userName\")}}\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\r\n\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t\r\n\t\r\n\r\n\r\n","\r\n\r\nimport { computed, defineComponent, reactive, ref } from 'vue';\t\r\nimport PasswordResetClient from '../services/PasswordResetClient';\r\nimport { useI18n } from 'vue-i18n';\r\nimport router from '../router';\r\nimport { useHead } from '@vueuse/head';\r\n\r\nexport default defineComponent({ \r\n\tsetup() {\r\n\t\tconst { t } = useI18n();\r\n\t\tconst client = new PasswordResetClient();\r\n\r\n\t\tconst loading = ref(false), emailSent = ref(false);\r\n\t\tconst loadingIcon = computed(() => loading.value ? \"pi pi-spin pi-spinner\" : \"\");\r\n\t\tconst form = reactive({\r\n\t\t\tusername: \"\"\r\n\t\t});\r\n\t\tconst passwordExpiredMessage = ref('');\r\n\r\n useHead({\r\n meta: [\r\n {\r\n name: `robots`,\r\n content: \"noindex\",\r\n },\r\n ],\r\n });\r\n\r\n\t\tconst startPasswordReset = async () => {\r\n\t\t\tif (loading.value || !form.username) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tloading.value = true;\r\n\t\t\ttry {\r\n\t\t\t\tconst username = encodeURIComponent(form.username);\r\n\t\t\t\tconst res = await client.init(username);\r\n\t\t\t\temailSent.value = true;\r\n\t\t\t} catch {\r\n\t\t\t\t// intercepted by axios\r\n\t\t\t}\r\n\r\n\t\t\tloading.value = false;\r\n\t\t};\r\n\r\n\t\tif(router.currentRoute.value.query.expired !== undefined)\r\n\t\t{\r\n\t\t\tpasswordExpiredMessage.value = t(\"resetPassword.pageTitles.passwordExpired\");\t\r\n\t\t}\r\n\r\n\t\treturn {\r\n\t\t\tform,\r\n\t\t\temailSent,\r\n\t\t\tloading,\r\n\t\t\tloadingIcon,\r\n\t\t\tt,\r\n\t\t\tstartPasswordReset,\r\n\t\t\tpasswordExpiredMessage\r\n\t\t}\t\t\t\r\n\t}\r\n});\r\n\r\n","import { render } from \"./ResetPassword.vue?vue&type=template&id=44cfac3c\"\nimport script from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nexport * from \"./ResetPassword.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","\r\n\t{{ t(\"logOut.titles.logOut\")}}\r\n\r\n\r\n","\r\n\r\nimport { defineComponent } from 'vue';\t\r\nimport { useI18n } from 'vue-i18n';\r\nimport { useHead } from '@vueuse/head';\r\n\r\nexport default defineComponent({ \r\n\tsetup() {\r\n\t\tconst { t } = useI18n();\r\n useHead({\r\n meta: [\r\n {\r\n name: `robots`,\r\n content: \"noindex\",\r\n },\r\n ],\r\n });\r\n\r\n\t\treturn {\t\r\n\t\t\tt\r\n\t\t}\t\t\t\r\n\t}\r\n});\r\n\r\n","import { render } from \"./LogOut.vue?vue&type=template&id=2d195441\"\nimport script from \"./LogOut.vue?vue&type=script&lang=ts\"\nexport * from \"./LogOut.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","export enum WebSocketMessageTypes {\r\n\thello = \"hello\",\r\n\tping = \"ping\",\r\n\ttimeout = \"timeout\",\r\n\tlogout = \"logout\",\r\n\tbye = \"bye\",\r\n\tpretimeout = \"pretimeout\"\r\n}","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';\r\nimport ChangePassword from '@/views/ChangePassword.vue';\r\nimport ResetPasswordVerify from '@/views/ResetPasswordVerify.vue';\r\nimport UserProfile from '@/views/UserProfile.vue';\r\nimport Tiles from '@/views/Tiles.vue';\r\nimport DamageReport from '@/views/DamageReport.vue';\r\nimport DamageReportSK from '@/views/DamageReportSK.vue';\r\nimport ResetPassword from '@/views/ResetPassword.vue';\r\nimport LogOut from '@/views/LogOut.vue';\r\n\r\nconst routes: Array = [\r\n\t{\r\n\t\tpath: '/',\r\n\t\tredirect: '/tiles',\r\n\t},\r\n\t{\r\n\t\tpath: '/tiles',\r\n\t\tname: 'tiles',\r\n\t\tcomponent: Tiles,\r\n\t\tmeta: { background: \"tiles\" }\r\n\t},\r\n\t{\r\n\t\tpath: '/user-profile',\r\n\t\tname: 'user-profile',\r\n\t\tcomponent: UserProfile,\r\n\t\tmeta: { background: \"user-profile\" }\r\n\t},\r\n\t{\r\n\t\tpath: '/damage-report',\r\n\t\tname: 'damage-report',\r\n\t\tcomponent: DamageReport,\r\n\t\tmeta: { background: \"damage-report\" }\r\n\t},\r\n\t{\r\n\t\tpath: '/damage-report-sk',\r\n\t\tname: 'damage-report-sk',\r\n\t\tcomponent: DamageReportSK,\r\n\t\tmeta: { background: \"damage-report\" }\r\n\t},\r\n\t{\r\n\t\tpath: '/change-password',\r\n\t\tname: 'change-password',\r\n\t\tcomponent: ChangePassword,\t\r\n\t\tmeta: { background: \"change-password\" }\r\n\t},\r\n\t{\r\n\t\tpath: '/resetPassword',\r\n\t\tname: 'ResetPassword',\r\n\t\tcomponent: ResetPassword,\r\n\t\tmeta: { background: \"reset-password\" }\r\n\t},\r\n\t{\r\n\t\tpath: '/reset-password-verify',\r\n\t\tname: 'reset-password-verify',\r\n\t\tcomponent: ResetPasswordVerify,\r\n\t\tmeta: { background: \"reset-password\" }\r\n\t},\r\n\t{\r\n\t\tpath: '/logOut',\r\n\t\tname: 'LogOut',\r\n\t\tcomponent: LogOut,\r\n\t\tmeta: { background: \"log-out\" }\r\n\t}\r\n]\r\n\r\nconst router = createRouter({\r\n\thistory: createWebHistory(),\r\n\troutes\r\n});\r\n\r\nexport default router","export default class WebSocketDto {\t\r\n\tpublic id = '';\r\n\tpublic send = Date.now();\r\n\tpublic method = '';\r\n\tpublic user = '';\r\n\tpublic application = '';\r\n\tpublic ssoSessionId = '';\r\n\tpublic token = '';\r\n}","import { WebSocketMessageTypes } from \"@/types/WebSocketMessageTypes\";\r\n\r\nexport default class Message {\r\n public id: string;\r\n public messageType: WebSocketMessageTypes;\r\n\r\n constructor(id: string, messageType: WebSocketMessageTypes) {\r\n this.id = id\r\n this.messageType = messageType\r\n }\r\n}","export default class WebSocketAckDto {\t\r\n\tpublic id = '';\r\n\tpublic send = Date.now();\r\n\tpublic replyTo = '';\r\n\tpublic ack = '';\r\n}","import AccountDto from '@/dtos/AccountDto';\r\nimport AuthToken from '@/model/AuthToken';\r\nimport store from '../store/index'\r\nimport WebSocketDto from '@/dtos/WebSocketDto';\r\nimport main from \"../main\";\r\nimport { WebSocketMessageTypes } from '@/types/WebSocketMessageTypes';\r\nimport config from '../config';\r\nimport { AppConfig, getCurrentInstance } from 'vue';\r\nimport { ActionTypes } from '@/store/ActionTypes';\r\nimport { MutationTypes } from '../store/MutationTypes';\r\nimport Message from '@/model/Message';\r\nimport WebSocketAckDto from '@/dtos/WebSocketDtoAck';\r\n\r\nexport default class WebSocketFunctions {\r\n\r\n public static async sendMessage(messageType: WebSocketMessageTypes): Promise {\r\n let messageId = '';\r\n if (store.state.user && \r\n messageType && \r\n store.state.token && \r\n store.state.socket.isConnected && \r\n store.state.sessionState && \r\n store.state.principalUsername) {\r\n await store.dispatch(ActionTypes.tryRefreshToken, store.state.token);\r\n const webSocketDto = new WebSocketDto();\r\n webSocketDto.id = crypto.randomUUID();\r\n webSocketDto.application = \"unihub\";\r\n webSocketDto.method = messageType;\r\n webSocketDto.ssoSessionId = store.state.sessionState;\r\n webSocketDto.user = store.state.principalUsername;\r\n webSocketDto.token = store.state.token.accessToken;\r\n messageId = webSocketDto.id;\r\n const json = JSON.stringify(webSocketDto);\r\n if(store.state.app.logToConsoleEnabled){\r\n console.log('SOCKET: SEND');\r\n console.log(json);\r\n }\r\n main.config.globalProperties.$socket.send(json);\r\n store.commit(MutationTypes.saveMessage, new Message(messageId, messageType));\r\n try{\r\n if(messageType == WebSocketMessageTypes.bye){\r\n main.config.globalProperties.$disconnect();\r\n }\r\n }\r\n catch{\r\n //log out z Unihubu\r\n }\r\n \r\n }\r\n return messageId;\r\n }\r\n\r\n public static sendAckMessage(messageId: string){\r\n const webSocketAckDto = new WebSocketAckDto();\r\n webSocketAckDto.id = crypto.randomUUID();\r\n webSocketAckDto.ack = \"true\";\r\n webSocketAckDto.replyTo = messageId;\r\n const json = JSON.stringify(webSocketAckDto);\r\n main.config.globalProperties.$socket.send(json);\r\n }\r\n}\r\n","import config from \"@/config\";\r\nimport store from \"@/store\";\r\nimport { MutationTypes } from \"@/store/MutationTypes\";\r\nimport AuthTokenService from \"./AuthTokenService\";\r\nimport router from '../router';\r\nimport WebSocketFunctions from '../help/WebSocketFunctions';\r\nimport { WebSocketMessageTypes } from '@/types/WebSocketMessageTypes';\r\n\r\nexport default class LoginService {\r\n private readonly redirectUri = encodeURIComponent(config.authRedirectUri);\r\n\r\n private tokenService: AuthTokenService;\r\n\r\n constructor() {\r\n this.tokenService = new AuthTokenService();\r\n }\r\n \r\n public login(returnUri: string): void {\r\n location.href = this.getAuthUrl(\"auth\", \"hyperion\", returnUri);\r\n }\r\n\r\n public async logout(): Promise {\r\n const returnUri = this.getReturnUrl();\r\n await WebSocketFunctions.sendMessage(WebSocketMessageTypes.logout);\r\n await WebSocketFunctions.sendMessage(WebSocketMessageTypes.bye);\r\n store.commit(MutationTypes.loginOut);\r\n location.href = this.getAuthUrl(\"logout\", \"hyperion\", returnUri);\r\n }\r\n\r\n private getAuthUrl(authType: string, clientId?: string, returnUri?: string): string {\r\n const redirectUri = returnUri ?? this.redirectUri;\r\n const params = [\r\n `redirect_uri=${redirectUri}`,\r\n \"response_type=code\",\r\n \"scope=openid\"\r\n ];\r\n\r\n if (clientId) {\r\n params.push(`client_id=${clientId}`);\r\n }\r\n\r\n const url = config.authUrl.endsWith(\"/\") ? config.authUrl.slice(0, -1) : config.authUrl;\r\n return `${url}/${authType}?${params.join(\"&\")}`;\r\n }\r\n\r\n private getReturnUrl(): string | undefined {\r\n const isSSO = store.state.user?.type == 'SSO';\r\n if(isSSO){\r\n const baseUrl = `${config.authRedirectUri}`;\r\n let logOutPath = router.resolve({ name: 'LogOut' }).fullPath;\r\n\r\n if (baseUrl.endsWith('/') && logOutPath.startsWith('/')) {\r\n logOutPath = logOutPath.substring(1);\r\n }\r\n return baseUrl + logOutPath\r\n }else{\r\n return undefined\r\n }\r\n }\r\n}","export default class InitAppDto {\r\n\tpublic recaptchaSiteKey = '';\r\n\tpublic recaptchaEnabled = false;\r\n\tpublic haNodeIdentifier = '';\r\n\tpublic logToConsoleEnabled = false;\r\n\tpublic idleLimitInSeconds = 3600;\r\n\tpublic wsPingTimeoutInSeconds = 30;\r\n\tpublic wsPretimeoutTimeoutInSeconds = 300;\r\n\tpublic wsEnabled = true;\r\n\tpublic secondaryEmailDialogDate = '2024-04-30';\r\n\tpublic version = \"v1.0000\"\r\n}","import axios from 'axios';\r\n\r\nclass RecaptchaClient {\r\n\tprotected name = 'Recaptcha';\r\n\tpublic async getRecaptchaStatusForCurrentNetwork(): Promise {\r\n\t\treturn (await axios.get(`${this.name}`)).data;\r\n\t}\r\n}\r\n\r\nexport default RecaptchaClient\r\n","import AccountDto from '@/dtos/AccountDto';\r\nimport AuthToken from '@/model/AuthToken';\r\nimport AccountClient from '@/services/AccountClient';\r\nimport AuthTokenService from '@/services/AuthTokenService';\r\nimport { InjectionKey } from 'vue';\r\nimport {\r\n ActionContext, ActionTree, CommitOptions, createStore, DispatchOptions, GetterTree, MutationTree,\r\n Store as VuexStore, useStore as baseUseStore\r\n} from 'vuex';\r\nimport { ActionTypes } from './ActionTypes';\r\nimport { MutationTypes } from './MutationTypes';\r\nimport LoginService from '@/services/LoginService';\r\nimport InitAppDto from '@/dtos/InitAppDto';\r\nimport RecaptchaClient from '@/services/RecaptchaClient';\r\nimport main from \"../main\";\r\nimport WebSocketFunctions from '@/help/WebSocketFunctions';\r\nimport { WebSocketMessageTypes } from '@/types/WebSocketMessageTypes';\r\nimport Message from '@/model/Message';\r\n\r\nconst tokenService = new AuthTokenService();\r\nconst accountClient = new AccountClient();\r\nconst loginService = new LoginService();\r\nconst recaptchaClient = new RecaptchaClient();\r\n\r\nexport interface State {\r\n\tuser?: AccountDto;\r\n\ttoken?: AuthToken;\r\n\tshowCheckPhoneDialog: boolean;\r\n\tshowPasswordExpirationDialog: boolean;\r\n\tapp: InitAppDto;\r\n\trecaptchaEnabled: boolean;\r\n\timpersonification: boolean;\r\n\tsso: boolean;\r\n socket: {\r\n // Connection Status\r\n isConnected: boolean;\r\n // Message content\r\n message: string;\r\n // Reconnect error\r\n reconnectError: boolean;\r\n };\r\n sessionState: string | undefined;\r\n principalUsername: string | undefined;\r\n userSource: string | undefined;\r\n authSrc: string | undefined;\r\n lastActivity: Date | undefined;\r\n lastWSPing: Date | undefined;\r\n messages: Message[];\r\n fromOrig: string | undefined;\r\n}\r\n\r\nexport type Mutations = {\r\n\t[MutationTypes.setUser](state: S, user: AccountDto): void;\r\n\t[MutationTypes.removeUser](state: S): void;\r\n\t[MutationTypes.setToken](state: S, token: AuthToken): void;\r\n\t[MutationTypes.setShowCheckPhoneDialog](state: S, showCheckPhoneDialog: boolean): void;\r\n\t[MutationTypes.showPasswordExpirationDialog](state: S, showPasswordExpirationDialog: boolean): void;\r\n\t[MutationTypes.initApp](state: S, initApp: InitAppDto): void;\r\n\t[MutationTypes.setRecaptcha](state: S, recaptchaEnabled: boolean): void;\r\n\t[MutationTypes.setImpersonification](state: S, impersonification: boolean): void;\r\n\t[MutationTypes.loginOut](state: S): void;\r\n [MutationTypes.setSSO](state: S, sso: boolean): void;\r\n [MutationTypes.saveMessage](state: S, message: Message): void;\r\n}\r\n\r\nexport type Getters = {\r\n isUserLoggedIn(state: State): boolean;\r\n isRecaptchaEnabled(state: State): boolean;\r\n isImpersonification(state: State): boolean;\r\n pingActivity(state: State): boolean;\r\n}\r\n\r\ntype AugmentedActionContext = {\r\n commit(\r\n key: K,\r\n payload: Parameters[1]\r\n ): ReturnType;\r\n} & Omit, 'commit'>\r\n\r\ntype GetTokenAction = {\r\n code: string;\r\n returnUri: string;\r\n}\r\n\r\nexport interface Actions {\r\n [ActionTypes.getToken](\r\n { commit }: AugmentedActionContext,\r\n payload: GetTokenAction\r\n ): Promise;\r\n\r\n [ActionTypes.getUser](\r\n { commit }: AugmentedActionContext,\r\n ): Promise;\r\n\r\n [ActionTypes.tryRefreshToken](\r\n { commit }: AugmentedActionContext,\r\n token: AuthToken\r\n ): Promise;\r\n\r\n [ActionTypes.getRecaptchaStatus](\r\n { commit }: AugmentedActionContext,\r\n enabled: boolean\r\n ): Promise;\r\n}\r\n\r\nexport type Store = Omit<\r\n VuexStore,\r\n 'getters' | 'commit' | 'dispatch'>\r\n & {\r\n commit[1]>(\r\n key: K,\r\n payload?: P,\r\n options?: CommitOptions\r\n ): ReturnType;\r\n } & {\r\n getters: {\r\n [K in keyof Getters]: ReturnType\r\n };\r\n } & {\r\n dispatch(\r\n key: K,\r\n payload?: Parameters[1],\r\n options?: DispatchOptions\r\n ): ReturnType;\r\n }\r\n\r\nexport const key: InjectionKey = Symbol();\r\n\r\nexport function useStore() {\r\n return baseUseStore(key) as Store;\r\n}\r\n\r\nexport default createStore({\r\n\tstate: {\r\n\t\tuser: undefined,\r\n\t\ttoken: undefined,\r\n\t\tshowCheckPhoneDialog: true,\r\n\t\tshowPasswordExpirationDialog: true,\r\n\t\tapp: new InitAppDto(),\r\n\t\trecaptchaEnabled: false,\r\n\t\timpersonification: false,\r\n sso: false,\r\n socket: {\r\n // Connection Status\r\n isConnected: false,\r\n // Message content\r\n message: \"\",\r\n // Reconnect error\r\n reconnectError: false\r\n },\r\n sessionState: undefined,\r\n principalUsername: undefined,\r\n userSource: undefined,\r\n authSrc: undefined,\r\n lastActivity: undefined,\r\n lastWSPing: undefined,\r\n messages: new Array(),\r\n fromOrig: undefined\r\n\t},\r\n\r\n\tgetters: {\r\n\t\tisUserLoggedIn: (state) => {\r\n\t\t\treturn state.user != undefined;\r\n\t\t},\r\n\t\tisRecaptchaEnabled: (state) => {\r\n\t\t\treturn state.app.recaptchaEnabled;\r\n\t\t},\r\n\t\tisImpersonification: (state) => {\r\n\t\t\treturn state.impersonification;\r\n },\r\n pingActivity: (state) => {\r\n return state.lastActivity && (state.lastWSPing == undefined || (state.lastWSPing && state.lastActivity > state.lastWSPing));\r\n }\r\n\t} as GetterTree & Getters,\r\n\r\n\tmutations: {\r\n\t\t[MutationTypes.setUser](state, user) {\r\n\t\t\tstate.user = user;\r\n\t\t},\r\n\r\n\t\t[MutationTypes.removeUser](state) {\r\n\t\t\tstate.user = undefined;\r\n\t\t},\r\n\r\n\t\t[MutationTypes.setToken](state, token) {\r\n state.token = token;\r\n const tokenAccess = token.accessToken;\r\n const base64Url = tokenAccess.split('.')[1];\r\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n const jsonPayload = decodeURIComponent(atob(base64).split('').map(function (c) {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n }).join(''));\r\n const obj = JSON.parse(jsonPayload);\r\n state.sessionState = obj.session_state;\r\n state.principalUsername = obj.principal_username;\r\n state.userSource = obj.user_source;\r\n state.authSrc = obj.auth_src;\r\n state.fromOrig = obj.fromOrig;\r\n\t\t},\r\n\r\n\t\t[MutationTypes.setShowCheckPhoneDialog](state, showCheckPhoneDialog) {\r\n\t\t\tstate.showCheckPhoneDialog = showCheckPhoneDialog;\r\n\t\t},\r\n\t\t[MutationTypes.showPasswordExpirationDialog](state, showPasswordExpirationDialog) {\r\n\t\t\tstate.showPasswordExpirationDialog = showPasswordExpirationDialog;\r\n\t\t},\r\n\t\t[MutationTypes.initApp](state, initApp) {\r\n\t\t\tstate.app = initApp;\r\n\t\t},\t\r\n\t\t[MutationTypes.setRecaptcha](state, recaptchaEnabled) {\r\n\t\t\tstate.recaptchaEnabled = recaptchaEnabled;\r\n\t\t},\r\n\t\t[MutationTypes.setImpersonification](state, impersonification) {\r\n\t\t\tstate.impersonification = impersonification;\r\n\t\t},\r\n\t\t[MutationTypes.loginOut](state) {\r\n\t\t\tstate.user = undefined;\r\n\t\t\tstate.token = undefined;\r\n\t\t\tstate.showCheckPhoneDialog = true;\r\n\t\t\tstate.showPasswordExpirationDialog = true;\r\n\t\t\tstate.app = new InitAppDto();\r\n\t\t\tstate.recaptchaEnabled = true;\r\n\t\t\tstate.impersonification = false;\r\n state.sso = false;\r\n state.sessionState = undefined;\r\n state.principalUsername = undefined;\r\n state.userSource = undefined;\r\n state.authSrc = undefined;\r\n state.fromOrig = undefined;\r\n state.socket = {\r\n isConnected: false,\r\n message: \"\",\r\n reconnectError: false\r\n }\r\n\t\t},\r\n\t\t[MutationTypes.setSSO](state, sso) {\r\n\t\t\tstate.sso = sso;\r\n },\r\n [MutationTypes.SOCKET_ONOPEN](state, event) {\r\n if (state.app.logToConsoleEnabled) {\r\n console.log('SOCKET: ONOPEN');\r\n console.log(event);\r\n }\r\n main.config.globalProperties.$socket = event.currentTarget;\r\n state.socket.isConnected = true;\r\n },\r\n [MutationTypes.SOCKET_ONCLOSE](state, event) {\r\n state.socket.isConnected = false;\r\n },\r\n [MutationTypes.SOCKET_ONERROR](state, event) {\r\n if (state.app.logToConsoleEnabled) {\r\n console.log('SOCKET: ONERROR');\r\n console.error(state, event)\r\n }\r\n },\r\n // default handler called for all methods\r\n [MutationTypes.SOCKET_ONMESSAGE](state, message) {\r\n if (state.app.logToConsoleEnabled) {\r\n console.log('SOCKET: ONMESSAGE');\r\n console.log(message);\r\n }\r\n state.socket.message = message.data\r\n },\r\n // mutations for reconnect methods\r\n [MutationTypes.SOCKET_RECONNECT](state, count) {\r\n console.info(state, count);\r\n },\r\n [MutationTypes.SOCKET_RECONNECT_ERROR](state) {\r\n state.socket.reconnectError = true;\r\n },\r\n [MutationTypes.saveMessage](state, message) {\r\n if (state.messages.length >= 10) {\r\n state.messages.shift();\r\n }\r\n state.messages.push(message);\r\n }\r\n\t} as MutationTree & Mutations,\r\n\r\n actions: {\r\n async [ActionTypes.getToken]({ commit }, { code, returnUri }) {\r\n const token = await tokenService.getToken(code, returnUri);\r\n commit(MutationTypes.setToken, token);\r\n },\r\n async [ActionTypes.getUser]({ commit }) {\r\n const user = await accountClient.getMe();\r\n commit(MutationTypes.setUser, user);\r\n },\r\n async [ActionTypes.tryRefreshToken]({ commit }, token) {\r\n // note: currently not in use, leaving here in case token refresh becomes \r\n // desirable again - please call inside axios request interceptor\r\n if (token.validTo < new Date()) {\r\n await tokenService.refreshToken(token.refreshToken).then(refreshed => {\r\n commit(MutationTypes.setToken, refreshed);\r\n }).catch(() => {\r\n loginService.logout();\r\n });\r\n }\r\n },\r\n async [ActionTypes.getRecaptchaStatus]({ commit }) {\r\n const recaptchaEnabled = await recaptchaClient.getRecaptchaStatusForCurrentNetwork();\r\n commit(MutationTypes.setRecaptcha, recaptchaEnabled);\r\n }\r\n } as ActionTree & Actions\r\n}) as Store\r\n","\r\nimport { computed, defineComponent, ref } from 'vue'\r\nimport { useStore } from '@/store';\r\n\r\nexport default defineComponent({\r\n setup() {\r\n const store = useStore();\r\n const isImpersonification = computed(() => store.getters.isImpersonification);\r\n const time = ref('');\r\n const interval = setInterval(() => {\r\n time.value = Intl.DateTimeFormat(navigator.language,\r\n {\r\n year: 'numeric',\r\n month: 'numeric',\r\n day: 'numeric',\r\n hour: 'numeric',\r\n minute: 'numeric',\r\n second: 'numeric'\r\n }).format()\r\n }, 1000)\r\n return { isImpersonification, time };\r\n }\r\n})\r\n","import { render } from \"./UAppHeader.vue?vue&type=template&id=971ad3a4\"\nimport script from \"./UAppHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./UAppHeader.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","\r\n \r\n \r\n \r\n \r\n \r\n\r\n\r\n\r\n","\r\n \r\n \r\n \r\n \r\n\r\n\r\n","\r\n {{display}}\r\n\r\n\r\n","\r\nimport store from '@/store';\r\nimport { defineComponent, ref, computed, onBeforeUnmount } from 'vue'\r\nimport LoginService from '@/services/LoginService';\r\nimport WebSocketFunctions from '@/help/WebSocketFunctions';\r\nimport { WebSocketMessageTypes } from '@/types/WebSocketMessageTypes';\r\n\r\n export default defineComponent({\r\n props: {\r\n idleLimit: Number\r\n },\r\n setup(props) {\r\n const display = ref(\"\");\r\n const defaultCounter = 3600; // seconds\r\n const counter = ref(defaultCounter);\r\n let timer: number;\r\n timer = 0; // TODO ts lint error prefer-const when not assigned here\r\n const style = computed(() => !store.getters.isImpersonification && counter.value <= 300 ? \"filter: invert(100%); color: red; font-weight: bold;\" : \"\");\r\n const loginService = new LoginService();\r\n\r\n const decreaseTime = async () => {\r\n counter.value--;\r\n if (counter.value <= 0) {\r\n clearInterval(timer);\r\n loginService.logout();\r\n }\r\n\r\n if(counter.value == store.state.app.wsPretimeoutTimeoutInSeconds){\r\n WebSocketFunctions.sendMessage(WebSocketMessageTypes.pretimeout);\r\n }\r\n const minute = (counter.value / 60) | 0;\r\n const second = counter.value % 60 | 0;\r\n\r\n const minutes = `${minute < 10 ? \"0\" + minute : minute}`;\r\n const seconds = `${second < 10 ? \"0\" + second : second}`;\r\n\r\n display.value = `${minutes}:${seconds}`;\r\n };\r\n\r\n const resetCounter = () => {\r\n counter.value = store.state.app.idleLimitInSeconds ?? defaultCounter;\r\n };\r\n\r\n const recordActivity = () => {\r\n store.state.lastActivity = new Date();\r\n resetCounter();\r\n };\r\n\r\n const events = [\r\n 'mousedown', 'mousemove', 'keydown',\r\n 'scroll', 'touchstart'\r\n ];\r\n events.forEach(ev => window.addEventListener(ev, recordActivity, true));\r\n\r\n resetCounter();\r\n timer = setInterval(decreaseTime, 1000);\r\n\r\n onBeforeUnmount(async () => {\r\n clearInterval(timer);\r\n for (let i = events.length - 1; i >= 0; i -= 1) {\r\n window.removeEventListener(events[i], recordActivity);\r\n }\r\n })\r\n\r\n return { counter, display, resetCounter, style }\r\n },\r\n })\r\n","import { render } from \"./UIdleTimer.vue?vue&type=template&id=31615115\"\nimport script from \"./UIdleTimer.vue?vue&type=script&lang=ts\"\nexport * from \"./UIdleTimer.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","\r\nimport { defineComponent, ref } from 'vue'\r\n import UIdleTimer from '@/components/common/UIdleTimer.vue';\r\n\r\nexport default defineComponent({\r\n props: {\r\n image: String,\r\n showTimer: Boolean\r\n },\r\n components:{UIdleTimer},\r\n async setup(props) {\r\n const imgPath = await import(`@/assets/${props.image}.svg`);\r\n const imgClass = props.showTimer ? \"img-timer\" : \"\";\r\n const timer = ref(null);\r\n function resetCounter (){\r\n if(props.showTimer){\r\n Object(timer.value).resetCounter();\r\n }\r\n }\r\n return { imgPath: imgPath.default, imgClass, resetCounter, timer };\r\n },\r\n})\r\n","import { render } from \"./UIcon.vue?vue&type=template&id=137df9d5\"\nimport script from \"./UIcon.vue?vue&type=script&lang=ts\"\nexport * from \"./UIcon.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","\r\nimport { defineComponent, ref } from 'vue'\r\nimport UIcon from '@/components/common/UIcon.vue'\r\nimport { useI18n } from 'vue-i18n';\r\n\r\nexport default defineComponent({\r\n components: { UIcon },\r\n props: {\r\n image: String,\r\n showTimer: Boolean, \r\n tooltip: String\r\n },\r\n setup(props){\r\n const { t } = useI18n();\r\n \r\n const timer = ref(null);\r\n function resetCounter (){\r\n if(props.showTimer){\r\n Object(timer.value).resetCounter();\r\n }\r\n }\r\n return {resetCounter, timer}\r\n }\r\n})\r\n","import { render } from \"./UIconButton.vue?vue&type=template&id=06cd47fc\"\nimport script from \"./UIconButton.vue?vue&type=script&lang=ts\"\nexport * from \"./UIconButton.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","\r\nimport { computed, defineComponent, ref } from 'vue'\r\nimport UAppHeader from '@/components/common/UAppHeader.vue'\r\nimport UIconButton from '@/components/common/UIconButton.vue'\r\nimport { useStore } from '@/store';\r\nimport LoginService from '@/services/LoginService';\r\nimport { useI18n } from 'vue-i18n';\r\nimport { useRoute } from 'vue-router';\r\nimport EventBus from '@/help/EventBus';\r\n\r\nexport default defineComponent({\r\n components: {UAppHeader, UIconButton},\r\n setup() {\r\n const timer = ref(null);\r\n const store = useStore();\r\n const { t } = useI18n();\r\n const loginService = new LoginService();\r\n const route = useRoute();\r\n const showLogoutDialog = ref(false);\r\n\r\n const firstName = computed(() => store.state.user?.firstName);\r\n const lastName = computed(() => store.state.user?.lastName);\r\n const isLoggedIn = computed(() => store.getters.isUserLoggedIn);\r\n const isImpersonification = computed(() => store.getters.isImpersonification);\r\n const logout = () => {\r\n loginService.logout();\r\n };\r\n const to = computed(() => {\r\n return route.name == \"LogOut\" ? '/LogOut' : '/';\r\n });\r\n\r\n const menu = ref();\r\n const menuItems = ref([\r\n {\r\n items: [\r\n {\r\n label: 'Přeskládat dlaždice',\r\n command: () =>{\r\n EventBus.emit('sortModeEnabled');\r\n }\r\n }\r\n ]\r\n }\r\n ]);\r\n\r\n const toggleMenu = (event: any) => {\r\n menu.value.toggle(event);\r\n };\r\n\r\n function resetTimer(){\r\n Object(timer.value).resetCounter();\r\n }\r\n\r\n function isMobile(){\r\n return screen.width <= 450;\r\n }\r\n\r\n function showLogoutDialogClick(){\r\n showLogoutDialog.value = true;\r\n }\r\n\r\n return {\r\n firstName,\r\n lastName,\r\n isLoggedIn,\r\n logout,\r\n isImpersonification,\r\n t,\r\n to,\r\n timer,\r\n resetTimer,\r\n menuItems,\r\n menu,\r\n toggleMenu,\r\n isMobile,\r\n showLogoutDialog,\r\n showLogoutDialogClick\r\n };\r\n }\r\n})\r\n","import { render } from \"./AppHeader.vue?vue&type=template&id=143b386b&scoped=true\"\nimport script from \"./AppHeader.vue?vue&type=script&lang=ts\"\nexport * from \"./AppHeader.vue?vue&type=script&lang=ts\"\n\nimport \"./AppHeader.vue?vue&type=style&index=0&id=143b386b&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-143b386b\"\n\nexport default script","\r\n \r\n\r\n\r\n\r\n\r\n","\r\nimport { defineComponent } from 'vue'\r\nimport { useI18n } from 'vue-i18n';\r\nimport store from '../store';\r\nimport { version } from '../../package.json';\r\n\r\nexport default defineComponent({\r\n setup() {\r\n const { t } = useI18n();\r\n return { t, store, appVersion:version };\r\n },\r\n})\r\n","import { render } from \"./AppFooter.vue?vue&type=template&id=4b4349d5&scoped=true\"\nimport script from \"./AppFooter.vue?vue&type=script&lang=ts\"\nexport * from \"./AppFooter.vue?vue&type=script&lang=ts\"\n\nimport \"./AppFooter.vue?vue&type=style&index=0&id=4b4349d5&scoped=true&lang=scss\"\nscript.render = render\nscript.__scopeId = \"data-v-4b4349d5\"\n\nexport default script","\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n\r\n\r\n","\r\nimport { defineComponent, ref, watch } from 'vue'\r\nimport { useRoute } from 'vue-router'\r\n\r\nexport default defineComponent({\r\n setup() {\r\n const route = useRoute();\r\n const backgroundName = ref(route.meta.background);\r\n\r\n watch(route, (curr, _) => { backgroundName.value = curr.meta.background ?? \"none\" });\r\n\r\n return { backgroundName };\r\n }\r\n})\r\n","import { render } from \"./UAppLayout.vue?vue&type=template&id=857987da&scoped=true\"\nimport script from \"./UAppLayout.vue?vue&type=script&lang=ts\"\nexport * from \"./UAppLayout.vue?vue&type=script&lang=ts\"\n\nimport \"./UAppLayout.vue?vue&type=style&index=0&id=857987da&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-857987da\"\n\nexport default script","\r\n import { defineComponent, onMounted, ref, computed, watch } from 'vue';\r\n import AppHeader from '@/components/AppHeader.vue';\r\n import AppFooter from '@/components/AppFooter.vue';\r\n import UAppLayout from '@/components/common/UAppLayout.vue';\r\n import { VueReCaptcha, useReCaptcha } from 'vue-recaptcha-v3';\r\n import { useStore } from '@/store';\r\n import { WebSocketMessageTypes } from './types/WebSocketMessageTypes';\r\n import LoginService from './services/LoginService';\r\n import WebSocketFunctions from './help/WebSocketFunctions';\r\n import config from './config';\r\n import { useI18n } from 'vue-i18n';\r\n\r\n export default defineComponent({\r\n components: { UAppLayout, AppHeader, AppFooter },\r\n\r\n setup() {\r\n const { t } = useI18n();\r\n const pretimeoutDialogIsVissible = ref(false);\r\n const bgName = ref(\"\");\r\n const header = ref(null);\r\n const store = useStore();\r\n const loginService = new LoginService();\r\n let helloMessageId = '';\r\n const interval = ref(0);\r\n onMounted(async () => {\r\n document.title = 'Unihub' + config.envName;\r\n if (store.getters.isRecaptchaEnabled) {\r\n const reCaptcha = useReCaptcha();\r\n if (reCaptcha) {\r\n await reCaptcha.recaptchaLoaded();\r\n reCaptcha?.instance.value?.hideBadge();\r\n }\r\n }\r\n });\r\n\r\n async function startPingTimer(): Promise {\r\n clearInterval(interval.value);\r\n let timer = store.state.app.wsPingTimeoutInSeconds ?? 30;\r\n interval.value = setInterval(async function () {\r\n if (--timer < 0) {\r\n timer = store.state.app.wsPingTimeoutInSeconds ?? 30;\r\n if (store.getters.pingActivity) {\r\n await WebSocketFunctions.sendMessage(WebSocketMessageTypes.ping);\r\n pretimeoutDialogIsVissible.value = false;\r\n }\r\n }\r\n }, 1000);\r\n }\r\n\r\n watch(() => store.state.socket.message, function () {\r\n try {\r\n const message = JSON.parse(store.state.socket.message.toString());\r\n\r\n if (helloMessageId && helloMessageId == message.replyTo) {\r\n if (message.ack == true) {\r\n startPingTimer();\r\n }\r\n }else if ( store.state.messages.findIndex(m=>m.id == message.replyTo) > -1){\r\n const storedMessage = store.state.messages.find(m => m.id = message.replyTo);\r\n if(storedMessage && storedMessage.messageType == WebSocketMessageTypes.ping){\r\n store.state.lastWSPing = new Date();\r\n }\r\n }\r\n else if (message && message.user && message.ssoSessionId && message.method && message.application) {\r\n if (store.state.principalUsername == message.user &&\r\n store.state.sessionState == message.ssoSessionId && store.state.messages.findIndex(m=>m.id == message.id) == -1) {\r\n if (message.method == WebSocketMessageTypes.logout) {\r\n WebSocketFunctions.sendAckMessage(message.id);\r\n loginService.logout();\r\n } else if (message.method == WebSocketMessageTypes.ping) {\r\n Object(header.value).resetTimer();\r\n startPingTimer();\r\n store.state.lastWSPing = new Date();\r\n WebSocketFunctions.sendAckMessage(message.id);\r\n } else if (message.method == WebSocketMessageTypes.pretimeout) {\r\n pretimeoutDialogIsVissible.value = true;\r\n WebSocketFunctions.sendAckMessage(message.id);\r\n }\r\n }\r\n }\r\n } catch (exc) {\r\n if (store.state.app.logToConsoleEnabled) {\r\n console.log('APP: ONMESSAGE');\r\n console.error(exc)\r\n }\r\n }\r\n });\r\n\r\n watch(async () => store.state.socket.isConnected, async function () {\r\n try {\r\n if (store.state.socket.isConnected) {\r\n helloMessageId = await WebSocketFunctions.sendMessage(WebSocketMessageTypes.hello);\r\n }\r\n } catch (exc) {\r\n if (store.state.app.logToConsoleEnabled) {\r\n console.log('APP: Hello');\r\n console.error(exc)\r\n }\r\n }\r\n });\r\n \r\n const stayLoggedIn = async () => {\r\n pretimeoutDialogIsVissible.value = false;\r\n await WebSocketFunctions.sendMessage(WebSocketMessageTypes.ping);\r\n };\r\n\r\n return {\r\n bgName,\r\n header,\r\n pretimeoutDialogIsVissible,\r\n t,\r\n stayLoggedIn\r\n }\r\n }\r\n });\r\n","import { render } from \"./App.vue?vue&type=template&id=03c1d329\"\nimport script from \"./App.vue?vue&type=script&lang=ts\"\nexport * from \"./App.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","\r\n {{t(\"tiles.messages.errorNoUnihubPermission\")}}\r\n\r\n\r\n\r\n\r\n","\r\n\r\n import { defineComponent, inject } from 'vue'\r\n import { useI18n } from 'vue-i18n';\r\n\r\n export default defineComponent({\r\n setup() {\r\n const { t } = useI18n();\r\n return {\r\n t\r\n };\r\n }\r\n })\r\n\r\n","import { render } from \"./LogOutDialog.vue?vue&type=template&id=a2f61328&scoped=true\"\nimport script from \"./LogOutDialog.vue?vue&type=script&lang=ts\"\nexport * from \"./LogOutDialog.vue?vue&type=script&lang=ts\"\n\nimport \"./LogOutDialog.vue?vue&type=style&index=0&id=a2f61328&lang=scss&scoped=true\"\nscript.render = render\nscript.__scopeId = \"data-v-a2f61328\"\n\nexport default script","\r\n\t{{label}} \r\n\r\n\r\n\r\n\r\n\r\n\r\n","\r\n\timport { defineComponent } from 'vue';\r\n\r\n\texport default defineComponent({\r\n\t\tname: 'BaseLabel',\r\n\t\tprops: {\r\n\t\t\tlabel: String\r\n\t\t}\r\n\t}\r\n\t);\r\n\r\n\r\n","import { render } from \"./BaseLabel.vue?vue&type=template&id=7b29f1a6\"\nimport script from \"./BaseLabel.vue?vue&type=script&lang=ts\"\nexport * from \"./BaseLabel.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","import Vue, { ComponentInternalInstance, getCurrentInstance, createApp, h } from 'vue'\r\nimport App from './App.vue'\r\nimport PrimeVue from 'primevue/config';\r\nimport router from './router'\r\nimport store, { key } from './store'\r\nimport { ActionTypes } from './store/ActionTypes';\r\nimport { MutationTypes } from './store/MutationTypes';\r\nimport axios, { AxiosError } from 'axios';\r\nimport ToastService from 'primevue/toastservice';\r\nimport LoginService from './services/LoginService';\r\nimport { i18n } from \"@/i18n\";\r\nimport { createHead } from '@vueuse/head';\r\nimport 'primevue/resources/themes/bootstrap4-light-blue/theme.css';\r\nimport 'primevue/resources/primevue.min.css';\r\nimport 'primeicons/primeicons.css';\r\nimport LogOutDialog from './components/LogOutDialog.vue';\r\nimport AuthToken from '@/model/AuthToken';\r\nimport VueNativeSock from \"vue-native-websocket-vue3\";\r\n//import 'primeflex/primeflex.css';\r\n\r\nimport './css-framework/index.scss';\r\n\r\nimport Button from 'primevue/button';\r\nimport InputText from 'primevue/inputtext';\r\nimport TabView from 'primevue/tabview';\r\nimport TabPanel from 'primevue/tabpanel';\r\nimport BaseLabel from '@/components/BaseLabel.vue';\r\nimport Dropdown from 'primevue/dropdown';\r\nimport Dialog from 'primevue/dialog';\r\nimport Password from 'primevue/password';\r\nimport Column from 'primevue/column';\r\nimport DataTable from 'primevue/datatable';\r\nimport Checkbox from 'primevue/checkbox';\r\nimport ColumnGroup from 'primevue/columngroup';\r\nimport Toast from 'primevue/toast';\r\nimport Tooltip from 'primevue/tooltip';\r\nimport Message from 'primevue/message';\r\nimport Skeleton from 'primevue/skeleton';\r\nimport DialogService from 'primevue/dialogservice';\r\nimport DynamicDialog from 'primevue/dynamicdialog';\r\nimport Menu from 'primevue/menu';\r\n\r\nimport config from './config'; // TODO load config from file using store\r\nimport { VueReCaptcha } from 'vue-recaptcha-v3';\r\n\r\n// TODO better fix\r\n/* eslint prefer-const: \"off\" */\r\nlet appMounted: Vue.ComponentPublicInstance;\r\nconst loginService = new LoginService();\r\nconst pathToConfig = window.origin + '/config/config.json';\r\nconst SOCKET_ONOPEN = MutationTypes.SOCKET_ONOPEN;\r\nconst SOCKET_ONCLOSE = MutationTypes.SOCKET_ONCLOSE;\r\nconst SOCKET_ONERROR = MutationTypes.SOCKET_ONERROR;\r\nconst SOCKET_ONMESSAGE = MutationTypes.SOCKET_ONMESSAGE;\r\nconst SOCKET_RECONNECT = MutationTypes.SOCKET_RECONNECT;\r\nconst SOCKET_RECONNECT_ERROR = MutationTypes.SOCKET_RECONNECT_ERROR\r\nconst mutations = {\r\n SOCKET_ONOPEN,\r\n SOCKET_ONCLOSE,\r\n SOCKET_ONERROR,\r\n SOCKET_ONMESSAGE,\r\n SOCKET_RECONNECT,\r\n SOCKET_RECONNECT_ERROR\r\n};\r\n\r\nconst app = createApp(App)\r\nexport default app;\r\n\r\naxios.get(pathToConfig).then(async response => {\r\n store.commit(MutationTypes.initApp, response.data);\r\n if (store.state.app.recaptchaEnabled) await store.dispatch(ActionTypes.getRecaptchaStatus);\r\n\tapp\r\n\t.component('ColumnGroup', ColumnGroup)\r\n .component('Checkbox', Checkbox)\r\n .component('Password', Password)\r\n .component('Dialog', Dialog)\r\n .component('Dropdown', Dropdown)\r\n .component('BaseLabel', BaseLabel)\r\n .component('TabPanel', TabPanel)\r\n .component('TabView', TabView)\r\n .component('Button', Button)\r\n .component('InputText', InputText)\r\n .component('Column', Column)\r\n .component('DataTable', DataTable)\r\n .component('Toast', Toast)\r\n .component('Message', Message)\r\n .component('Skeleton', Skeleton)\r\n .component('DynamicDialog', DynamicDialog)\r\n .component('Menu', Menu)\r\n // TODO bug in primevue should be fixed but is not https://github.com/primefaces/primevue/issues/943\r\n // eslint-disable-next-line\r\n // @ts-ignore\r\n .directive('tooltip', Tooltip)\r\n .use(PrimeVue)\r\n .use(DialogService)\r\n .use(store, key)\r\n .use(i18n)\r\n .use(router) \r\n .use(ToastService)\r\n .use(createHead());\r\n \r\n if(store.state.app.recaptchaSiteKey && store.state.app.recaptchaEnabled){\r\n app.use(VueReCaptcha, {\r\n siteKey: store.state.app.recaptchaSiteKey, loaderOptions: {\r\n //Due to limitations in certain countries it's required to use recaptcha.net instead of google.com.\r\n useRecaptchaNet: false\r\n }\r\n });\r\n }\r\n\r\n if(config.wsUrl && store.state.app.wsEnabled != false) {\r\n app.use(VueNativeSock, config.wsUrl, {\r\n format: \"\",\r\n connectManually: true,\r\n store: store,\r\n mutations: mutations,\r\n reconnection: true,\r\n reconnectionAttempts: 5,\r\n reconnectionDelay: 3000,\r\n });\r\n }\r\n\tappMounted = app.mount('#app');\r\n});\r\n\r\nfunction getErrorMessage(method: string | undefined): string {\r\n switch (method) {\r\n case \"get\":\r\n return i18n.global.t(\"toast.messages.errorLoadingData\");\r\n case \"post\":\r\n case \"put\":\r\n case \"patch\":\r\n return i18n.global.t(\"toast.messages.errorSavingData\");\r\n case \"delete\":\r\n return i18n.global.t(\"toast.messages.errorRemovingData\");\r\n default:\r\n return i18n.global.t(\"toast.messages.errorCallingApi\");\r\n }\r\n}\r\n\r\naxios.defaults.baseURL = config.apiUrl;\r\naxios.interceptors.request.use(async config => {\r\n if (!config.auth && config.url != 'keycloak/refreshToken' && store.state.token) {\r\n await store.dispatch(ActionTypes.tryRefreshToken, store.state.token);\r\n config.headers.Authorization = `Bearer ${store.state.token.accessToken}`;\r\n }\r\n\r\n return config;\r\n})\r\n\r\naxios.interceptors.response.use(response => response,\r\n (error: AxiosError) => {\r\n if (error.response?.status == 401 || (error.response?.status == 500 && error.request?.responseURL.indexOf('api/keycloak/token') >= 0)) {\r\n loginService.logout();\r\n } else {\r\n if (!error.config?.supressErrorMessage) {\r\n if (error.response && error.response.status == 409 && (error.response.data as any).errorCode == 'CommonPasswordsFailed') {\r\n appMounted.$toast.add({\r\n severity: 'error',\r\n summary: i18n.global.t(\"toast.titles.error\"),\r\n detail: i18n.global.t(\"toast.messages.verifyCommonPasswordsFailed\")\r\n });\r\n } else if (error.response && error.response.status == 409 && (error.response.data as any).errorCode == 'PasswordHistoryFailed') {\r\n appMounted.$toast.add({\r\n severity: 'error',\r\n summary: i18n.global.t(\"toast.titles.error\"),\r\n detail: i18n.global.t(\"toast.messages.verifyPasswordHistoryFailed\")\r\n });\r\n } else if (error.response && error.response.status == 403 && (error.response.data as any).errorCode == 'PasswordVerificationFailed') {\r\n appMounted.$toast.add({\r\n severity: 'error',\r\n summary: i18n.global.t(\"toast.titles.error\"),\r\n detail: i18n.global.t(\"toast.messages.invalidPassword\")\r\n });\r\n } else if (error.response && error.response.status == 403 && (error.response.data as any).errorCode == 'InvalidVerificationToken') {\r\n appMounted.$toast.add({\r\n severity: 'error',\r\n summary: i18n.global.t(\"toast.titles.error\"),\r\n detail: i18n.global.t(\"toast.messages.invalidVerificationCode\")\r\n });\r\n } else if (error.response && error.response.status == 409 && (error.response.data as any).errorCode == 'VerifyEmailUniquenessFailed') {\r\n appMounted.$toast.add({\r\n severity: 'error',\r\n summary: i18n.global.t(\"toast.titles.error\"),\r\n detail: i18n.global.t(\"toast.messages.emailAlreadyExists\")\r\n });\r\n /* } else if (error.response && error.response.status == 400 && error.response.data.errorCode == 'UserAccountIdNotSetInToken') {\r\n setTimeout(() => {\r\n alert(i18n.global.t(\"tiles.messages.errorNoUnihubPermission\"));\r\n loginService.logout();\r\n }, 500);*/\r\n } else {\r\n const msg = error.config?.errorMessages?.get(error.response?.status ?? 0)\r\n || error.config?.errorMessage || getErrorMessage(error.config?.method);\r\n\r\n appMounted.$toast.add({\r\n severity: 'error',\r\n summary: i18n.global.t(\"toast.titles.error\"),\r\n detail: msg\r\n });\r\n }\r\n }\r\n\r\n return Promise.reject(error);\r\n }\r\n });\r\n\r\naxios.interceptors.response.use(res => {\r\n const isoDateFormat =\r\n /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)((-(\\d{2}):(\\d{2})|Z)?)$/;\r\n\r\n const handleDates = (body: any) => { // TODO argument type?\r\n if (!body || typeof body !== \"object\") {\r\n return body;\r\n }\r\n\r\n for (const key of Object.keys(body)) {\r\n const value = body[key];\r\n if (value && typeof value === \"string\" && isoDateFormat.test(value)) {\r\n body[key] = new Date(value);\r\n } else if (typeof value === \"object\") {\r\n handleDates(value);\r\n }\r\n }\r\n };\r\n\r\n handleDates(res.data);\r\n\r\n return res;\r\n});\r\n\r\nrouter.beforeEach(async (to, _, next) => {\r\n\tswitch(to.name) {\r\n\t\tcase \"ResetPassword\":\r\n\t\tcase \"reset-password-verify\":\r\n\t\tcase \"LogOut\":\r\n\t\t\tnext();\r\n\t\t\tbreak;\r\n\r\n default:\r\n if (store.getters.isUserLoggedIn) {\r\n next();\r\n } else if (store.state.token) {\r\n\r\n await store.dispatch(ActionTypes.getUser);\r\n\r\n next();\r\n } else {\r\n let authRedirectUri = config.authRedirectUri;\r\n let path = to.path;\r\n if (authRedirectUri.endsWith('/') && path.startsWith('/')) {\r\n path = path.substring(1);\r\n }\r\n \r\n while(path.startsWith('//')){\r\n path = path.slice(1);\r\n }\r\n \r\n const returnUri = `${authRedirectUri}${path}`\r\n const code = to.query[\"code\"]?.toString();\r\n if (code) {\r\n await store.dispatch(ActionTypes.getToken, { code, returnUri });\r\n if (store.state.token) {\r\n if (store.state.userSource == undefined) {\r\n const dialogRef = appMounted.$dialog.open(LogOutDialog, {\r\n props: {\r\n header: i18n.global.t(\"toast.titles.error\"),\r\n modal: true,\r\n dismissableMask: false,\r\n closable: false\r\n },\r\n templates: {\r\n footer: () => {\r\n return [\r\n h(Button, {\r\n label: i18n.global.t(\"tiles.buttons.logout\"),\r\n onClick: () => {\r\n loginService.logout();\r\n dialogRef.close();\r\n }, autofocus: true\r\n })\r\n ]\r\n }\r\n }\r\n });\r\n return;\r\n } else if (store.state.authSrc == 'impersonification') {\r\n store.commit(MutationTypes.setImpersonification, true);\r\n }\r\n\r\n if (store.state.fromOrig) {\r\n store.commit(MutationTypes.setSSO, true);\r\n }\r\n }\r\n await store.dispatch(ActionTypes.getUser);\r\n\t\t\t\t\tif(config.wsUrl && store.state.app.wsEnabled != false && store.state.token && (store.state.token as any) instanceof AuthToken && !store.state.socket.isConnected){\r\n\t\t\t\t\t\tawait appMounted.$.appContext.config.globalProperties.$connect(config.wsUrl + \"?token=\" + (store.state.token as any).accessToken);\r\n\t\t\t\t\t}\r\n next(to.path);\r\n } else {\r\n loginService.login(returnUri);\r\n }\r\n }\r\n }\r\n});\r\n\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./PasswordVerificationPrompt.vue?vue&type=style&index=0&id=a47840d8&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./PasswordExpirationDialog.vue?vue&type=style&index=0&id=426776a2&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./VerificationPrompt.vue?vue&type=style&index=0&id=65ff9016&lang=scss&scoped=true\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./UserProfile.vue?vue&type=style&index=0&id=f3ab0c0e&scoped=true&lang=scss\""],"sourceRoot":""}
{{ t(\"verificationPrompt.messages.codeSentViaSMS\") }}
\r\n\t\t\t\t{{ t( \"resetPassword.messages.emailSent1\") }}\r\n\t\t\t\t{{form.username}}\r\n\t\t\t\t{{ t( \"resetPassword.messages.emailSent2\") }}\r\n\t\t\t