From 11b4286926980449d92c7187c1286acfe50e86c0 Mon Sep 17 00:00:00 2001 From: baexxbin Date: Tue, 17 Dec 2024 22:19:23 +0900 Subject: [PATCH 1/6] chore: add .gitignore --- .../wishrise/.gitignore" | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/.gitignore" diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/.gitignore" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/.gitignore" new file mode 100644 index 0000000..3ef6945 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/.gitignore" @@ -0,0 +1,74 @@ +HELP.md +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### application.yml ### +.yml + + +### macOS ### +# General +.DS_Store +.AppleDouble +.LSOverride + +# Icon must end with two \r +Icon + + +# Thumbnails +._* + +# Files that might appear in the root of a volume +.DocumentRevisions-V100 +.fseventsd +.Spotlight-V100 +.TemporaryItems +.Trashes +.VolumeIcon.icns +.com.apple.timemachine.donotpresent + +# Directories potentially created on remote AFP share +.AppleDB +.AppleDesktop +Network Trash Folder +Temporary Items +.apdisk + +### macOS Patch ### +# iCloud generated files +*.icloud From e201da78206f63df76d70e29c65723fae05496a2 Mon Sep 17 00:00:00 2001 From: baexxbin Date: Tue, 17 Dec 2024 22:24:51 +0900 Subject: [PATCH 2/6] =?UTF-8?q?chore:=20=EA=B8=B0=EC=A1=B4wishrise=20?= =?UTF-8?q?=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EC=97=B0=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wishrise/build.gradle" | 65 +++++ .../gradle/wrapper/gradle-wrapper.jar" | Bin 0 -> 43453 bytes .../gradle/wrapper/gradle-wrapper.properties" | 7 + .../wishrise/gradlew" | 249 ++++++++++++++++++ .../wishrise/gradlew.bat" | 92 +++++++ .../wishrise/settings.gradle" | 1 + .../wishrise/WishriseApplication.java" | 15 ++ .../auth/controller/AuthController.java" | 91 +++++++ .../auth/domain/PrincipalDetails.java" | 74 ++++++ .../baexxbin/wishrise/auth/domain/Token.java" | 36 +++ .../wishrise/auth/dto/LoginResponse.java" | 20 ++ .../wishrise/auth/dto/OAuth2UserInfo.java" | 69 +++++ .../auth/exception/AuthException.java" | 10 + .../auth/exception/TokenException.java" | 11 + .../handler/CustomAccessDeniedHandler.java" | 19 ++ .../CustomAuthenticationEntryPoint.java" | 19 ++ .../auth/handler/OAuth2FailureHandler.java" | 19 ++ .../auth/handler/OAuth2SuccessHandler.java" | 65 +++++ .../auth/jwt/TokenAuthenticationFilter.java" | 107 ++++++++ .../auth/jwt/TokenExceptionFilter.java" | 26 ++ .../wishrise/auth/jwt/TokenProvider.java" | 166 ++++++++++++ .../auth/repository/TokenRepository.java" | 12 + .../service/CustomOAuth2UserService.java" | 51 ++++ .../wishrise/auth/service/TokenService.java" | 88 +++++++ .../wishrise/global/config/JasyptConfig.java" | 31 +++ .../wishrise/global/config/RedisConfig.java" | 85 ++++++ .../global/config/SecurityConfig.java" | 110 ++++++++ .../wishrise/global/config/WebConfig.java" | 19 ++ .../wishrise/global/constants/TokenKey.java" | 5 + .../global/exception/CustomException.java" | 21 ++ .../wishrise/global/exception/ErrorCode.java" | 29 ++ .../global/exception/ErrorResponse.java" | 7 + .../exception/GlobalExceptionHandler.java" | 46 ++++ .../wishrise/global/util/KeyGenerator.java" | 8 + .../wishrise/global/util/RedisUtils.java" | 27 ++ .../wishrise/goal/api/GoalApiController.java" | 15 ++ .../goal/application/GoalModuleService.java" | 41 +++ .../baexxbin/wishrise/goal/domain/Goal.java" | 66 +++++ .../wishrise/goal/domain/GoalType.java" | 5 + .../wishrise/goal/domain/ToWant.java" | 29 ++ .../goal/dto/request/SaveGoalServiceDto.java" | 37 +++ .../goal/repository/GoalJpaRepository.java" | 7 + .../goal/repository/ItemRepository.java" | 31 +++ .../member/api/MemberApiController.java" | 34 +++ .../application/MemberComponentService.java" | 86 ++++++ .../application/MemberModuleService.java" | 52 ++++ .../wishrise/member/domain/Information.java" | 25 ++ .../wishrise/member/domain/Member.java" | 74 ++++++ .../wishrise/member/domain/Rank.java" | 25 ++ .../wishrise/member/domain/Role.java" | 13 + .../member/dto/request/LoginRequestDto.java" | 16 ++ .../member/dto/request/MemberInfoDto.java" | 40 +++ .../repository/MemberCustomRepository.java" | 37 +++ .../repository/MemberJpaRepository.java" | 16 ++ .../register/api/RegisterApiController.java" | 29 ++ .../RegisterComponentService.java" | 42 +++ .../application/RegisterModuleService.java" | 19 ++ .../wishrise/register/domain/Register.java" | 53 ++++ .../register/domain/RegisteredStatus.java" | 5 + .../register/dto/RegisterSearch.java" | 11 + .../dto/request/RegisterGoalDto.java" | 42 +++ .../repository/RegisterJpaRepository.java" | 9 + .../repository/RegisterRepository.java" | 75 ++++++ .../src/main/resources/application-oauth.yml" | 33 +++ .../src/main/resources/application.yml" | 59 +++++ .../static/assets/CatLogo-DWgZBMUX.jpg" | Bin 0 -> 32977 bytes .../static/assets/index-C838mxqf.js" | 30 +++ .../static/assets/index-Pb23BZ5N.css" | 5 + .../src/main/resources/static/favicon.ico" | Bin 0 -> 4286 bytes .../src/main/resources/static/index.html" | 19 ++ .../wishrise/WishriseApplicationTests.java" | 13 + .../wishrise/auth/CreateJwtTest.java" | 21 ++ .../wishrise/goal/GoalControllerTest.java" | 88 +++++++ .../wishrise/goal/GoalServiceTest.java" | 60 +++++ .../member/MemberServiceIntegrationTest.java" | 109 ++++++++ .../wishrise/member/MemberServiceTest.java" | 92 +++++++ .../register/RegisterIntegrationTest.java" | 78 ++++++ .../register/RegisterServiceTest.java" | 114 ++++++++ 78 files changed, 3355 insertions(+) create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/build.gradle" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/gradle/wrapper/gradle-wrapper.jar" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/gradle/wrapper/gradle-wrapper.properties" create mode 100755 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/gradlew" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/gradlew.bat" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/settings.gradle" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/WishriseApplication.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/controller/AuthController.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/domain/PrincipalDetails.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/domain/Token.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/dto/LoginResponse.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/dto/OAuth2UserInfo.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/exception/AuthException.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/exception/TokenException.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/CustomAccessDeniedHandler.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/CustomAuthenticationEntryPoint.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/OAuth2FailureHandler.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/OAuth2SuccessHandler.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenAuthenticationFilter.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenExceptionFilter.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenProvider.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/repository/TokenRepository.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/service/CustomOAuth2UserService.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/service/TokenService.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/JasyptConfig.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/RedisConfig.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/SecurityConfig.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/WebConfig.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/constants/TokenKey.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/CustomException.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/ErrorCode.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/ErrorResponse.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/GlobalExceptionHandler.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/util/KeyGenerator.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/util/RedisUtils.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/api/GoalApiController.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/application/GoalModuleService.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/domain/Goal.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/domain/GoalType.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/domain/ToWant.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/dto/request/SaveGoalServiceDto.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/repository/GoalJpaRepository.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/repository/ItemRepository.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/api/MemberApiController.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberComponentService.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberModuleService.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Information.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Member.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Rank.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Role.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/dto/request/LoginRequestDto.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/dto/request/MemberInfoDto.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/repository/MemberCustomRepository.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/repository/MemberJpaRepository.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/api/RegisterApiController.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/application/RegisterComponentService.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/application/RegisterModuleService.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/domain/Register.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/domain/RegisteredStatus.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/dto/RegisterSearch.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/dto/request/RegisterGoalDto.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/repository/RegisterJpaRepository.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/repository/RegisterRepository.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/application-oauth.yml" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/application.yml" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/assets/CatLogo-DWgZBMUX.jpg" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/assets/index-C838mxqf.js" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/assets/index-Pb23BZ5N.css" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/favicon.ico" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/index.html" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/WishriseApplicationTests.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/auth/CreateJwtTest.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/goal/GoalControllerTest.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/goal/GoalServiceTest.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/member/MemberServiceIntegrationTest.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/member/MemberServiceTest.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/register/RegisterIntegrationTest.java" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/register/RegisterServiceTest.java" diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/build.gradle" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/build.gradle" new file mode 100644 index 0000000..4e36863 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/build.gradle" @@ -0,0 +1,65 @@ +plugins { + id 'java' + id 'org.springframework.boot' version '3.2.5' + id 'io.spring.dependency-management' version '1.1.4' +} + +group = 'com.baexxbin' +version = '0.0.1-SNAPSHOT' + +java { + sourceCompatibility = '17' +} + +configurations { + compileOnly { + extendsFrom annotationProcessor + } +} + +repositories { + mavenCentral() +} + +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-web' + testImplementation 'org.testng:testng:7.7.0' + compileOnly 'org.projectlombok:lombok' + runtimeOnly 'com.mysql:mysql-connector-j' + annotationProcessor 'org.projectlombok:lombok' + testImplementation 'org.springframework.boot:spring-boot-starter-test' + + // 테스트용 H2 데이터베이스 + testImplementation 'com.h2database:h2' + // Jasypt + implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.5' + // Swagger + implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.0.2' + + // Jackson + implementation 'com.fasterxml.jackson.core:jackson-databind' + implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.12.3' + + // Spring Security, OAuth2.0 + implementation 'org.springframework.boot:spring-boot-starter-security' + testImplementation 'org.springframework.security:spring-security-test' + implementation 'org.springframework.security:spring-security-oauth2-client' + + // OAuth2 JOSE + implementation 'org.springframework.security:spring-security-oauth2-jose' + + // jwt +// implementation 'io.jsonwebtoken:jjwt:0.9.1' + implementation 'io.jsonwebtoken:jjwt-api:0.12.6' + runtimeOnly 'io.jsonwebtoken:jjwt-impl:0.12.6' + runtimeOnly 'io.jsonwebtoken:jjwt-jackson:0.12.6' + + // redis + implementation 'org.springframework.boot:spring-boot-starter-data-redis' +} + +tasks.named('test') { + useJUnitPlatform() + systemProperty "jasypt.encryptor.password", System.getProperties().get("jasypt.encryptor.password") +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/gradle/wrapper/gradle-wrapper.jar" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/gradle/wrapper/gradle-wrapper.jar" new file mode 100644 index 0000000000000000000000000000000000000000..e6441136f3d4ba8a0da8d277868979cfbc8ad796 GIT binary patch literal 43453 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 yu?e%!_ptzGB|8GrCfu%p?(_ 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
NnX)EH+Nua)3Y(c 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 '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + org.gradle.wrapper.GradleWrapperMain \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/gradlew.bat" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/gradlew.bat" new file mode 100644 index 0000000..25da30d --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/gradlew.bat" @@ -0,0 +1,92 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/settings.gradle" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/settings.gradle" new file mode 100644 index 0000000..b543d53 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/settings.gradle" @@ -0,0 +1 @@ +rootProject.name = 'wishrise' diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/WishriseApplication.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/WishriseApplication.java" new file mode 100644 index 0000000..2afff27 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/WishriseApplication.java" @@ -0,0 +1,15 @@ +package com.baexxbin.wishrise; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; + +@SpringBootApplication +@EnableCaching +public class WishriseApplication { + + public static void main(String[] args) { + SpringApplication.run(WishriseApplication.class, args); + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/controller/AuthController.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/controller/AuthController.java" new file mode 100644 index 0000000..0dfc61b --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/controller/AuthController.java" @@ -0,0 +1,91 @@ +package com.baexxbin.wishrise.auth.controller; + +import com.baexxbin.wishrise.auth.dto.LoginResponse; +import com.baexxbin.wishrise.auth.jwt.TokenProvider; +import com.baexxbin.wishrise.auth.service.CustomOAuth2UserService; +import com.baexxbin.wishrise.auth.service.TokenService; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.annotation.AuthenticationPrincipal; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.web.bind.annotation.*; + +@RequiredArgsConstructor +@RestController +@RequestMapping("/auth") +public class AuthController { + private final TokenService tokenService; + private final TokenProvider tokenProvider; + +// @GetMapping("/auth/success") +// public ResponseEntity loginSuccess(@Valid LoginResponse loginResponse) { +// return ResponseEntity.ok(loginResponse); +// } + + // 인증 성공 후 로그인 상태 확인 + @GetMapping("/success") + public ResponseEntity loginSuccess( + @CookieValue(value = "accessToken", required = false) String accessToken) { + if (accessToken == null || !tokenProvider.validateToken(accessToken)) { + // 토큰이 없거나 유효하지 않으면 로그인 실패 메시지와 함께 오류 응답 반환 + return ResponseEntity.status(401).body( + LoginResponse.builder() + .accessToken("Invalid or expired token") + .userId(null) // 필요한 다른 필드는 null로 설정 + .username(null) + .role(null) + .build() + ); + } + LoginResponse loginResponse = tokenService.getLoginResponse(accessToken); + return ResponseEntity.ok(loginResponse); + } + + +// @DeleteMapping("/auth/logout") +// public ResponseEntity logout(@AuthenticationPrincipal UserDetails userDetails) { +// tokenService.deleteRefreshToken(userDetails.getUsername()); +// return ResponseEntity.noContent().build(); +// } + + // 로그아웃 처리 + @DeleteMapping("/logout") + public ResponseEntity logout( + @CookieValue(value = "accessToken", required = false) String accessToken) { + if (accessToken != null) { + tokenService.deleteRefreshToken(accessToken); + } + return ResponseEntity.noContent().build(); + } + + // 리프레시 토큰을 이용해 accessToken 재발급 + @PostMapping("/reissue") + public ResponseEntity reissueAccessToken( + @CookieValue(value = "accessToken", required = false) String accessToken, + HttpServletResponse response) { + if (accessToken == null || !tokenProvider.validateToken(accessToken)) { + return ResponseEntity.status(401).body("Invalid or expired access token."); + } + + // 리프레시 토큰을 이용해 새로운 accessToken 발급 + String newAccessToken = tokenService.reissueAccessToken(accessToken); + + if (newAccessToken == null) { + return ResponseEntity.status(401).body("Reissue failed. Token invalid or expired."); + } + + // 새 액세스 토큰 쿠키 추가 + Cookie cookie = new Cookie("accessToken", newAccessToken); + cookie.setHttpOnly(true); + cookie.setPath("/"); + cookie.setMaxAge(30 * 60); // 30분 + response.addCookie(cookie); + + return ResponseEntity.ok("Access token reissued successfully."); + } + + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/domain/PrincipalDetails.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/domain/PrincipalDetails.java" new file mode 100644 index 0000000..2f5915c --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/domain/PrincipalDetails.java" @@ -0,0 +1,74 @@ +package com.baexxbin.wishrise.auth.domain; + +import com.baexxbin.wishrise.member.domain.Member; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.oauth2.core.user.OAuth2User; + +import java.util.Collection; +import java.util.Collections; +import java.util.Map; + +/* +* OAuth2 인증을 사용한 로그인한 사용자 정보를 가짐 +* Spring Security에서 사용자 인증 및 권한 정보를 처리하는데 사용 +* +* OAuth2를 통해 로그인 시 Spring Security는 PrincipalDetails 객체 생성해 사용자 정보 관리 +* */ + +public record PrincipalDetails( + Member member, + Map attributes, // OAuth2로 부터 받은 사용자 정보 + String attributeKey // 사용자 정보 조회시 사용할 키 +) implements OAuth2User, UserDetails { + + @Override + public String getName() { + return attributes.get(attributeKey).toString(); + } + + @Override + public Map getAttributes() { + return attributes; + } + + @Override + public Collection getAuthorities() { + return Collections.singletonList( + new SimpleGrantedAuthority(member.getRole().getKey()) + ); + } + + @Override + public String getPassword() { + return null; + } + + @Override + public String getUsername() { + return member.getMemberKey(); + } + + @Override + public boolean isAccountNonExpired() { + return true; + } + + @Override + public boolean isAccountNonLocked() { + return true; + } + + @Override + public boolean isCredentialsNonExpired() { + return true; + } + + @Override + public boolean isEnabled() { + return true; + } + + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/domain/Token.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/domain/Token.java" new file mode 100644 index 0000000..dbef1c6 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/domain/Token.java" @@ -0,0 +1,36 @@ +package com.baexxbin.wishrise.auth.domain; + +import lombok.*; +import org.springframework.data.annotation.Id; +import org.springframework.data.redis.core.RedisHash; +import org.springframework.data.redis.core.index.Indexed; + +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@AllArgsConstructor(access = AccessLevel.PRIVATE) +@Builder +@RedisHash(value = "jwt", timeToLive = 60 * 60 * 24 * 7) +public class Token { + @Id + private String authId; // Redis 해시 키 + + @Indexed // 리프레시 토큰 조회 성능 향상 + private String refreshToken; + + private String accessToken; + + private String role; + + public Token(String memberKey, String refreshToken, String accessToken) { + } + + + public Token updateRefreshToken(String refreshToken) { + this.refreshToken = refreshToken; + return this; + } + + public void updateAccessToken(String accessToken) { + this.accessToken = accessToken; + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/dto/LoginResponse.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/dto/LoginResponse.java" new file mode 100644 index 0000000..bb5e4b6 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/dto/LoginResponse.java" @@ -0,0 +1,20 @@ +package com.baexxbin.wishrise.auth.dto; + +import jakarta.validation.constraints.NotBlank; +import lombok.Builder; + +/* +* 로그인 성공 시 클라이언트로 반환되는 데이터 구조 +* - 인증 성공 후 클라이언트에 필요한 정보 전달 (주로 jwt토큰, 사용자 정보 반환) +* - 클라이언트가 이후 요청에서 토큰을 사용해 인증을 유지하도록 지원 +* */ + +public record LoginResponse(String accessToken, + String refreshToken, + String userId, + String username, + String role) { + @Builder + public LoginResponse { + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/dto/OAuth2UserInfo.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/dto/OAuth2UserInfo.java" new file mode 100644 index 0000000..c2d14e9 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/dto/OAuth2UserInfo.java" @@ -0,0 +1,69 @@ +package com.baexxbin.wishrise.auth.dto; + +import com.baexxbin.wishrise.auth.exception.AuthException; +import com.baexxbin.wishrise.global.util.KeyGenerator; +import com.baexxbin.wishrise.member.domain.Information; +import com.baexxbin.wishrise.member.domain.Member; +import com.baexxbin.wishrise.member.domain.Rank; +import com.baexxbin.wishrise.member.domain.Role; +import lombok.Builder; + +import java.util.Map; + +import static com.baexxbin.wishrise.global.exception.ErrorCode.ILLEGAL_REGISTRATION_ID; + +/* +* OAuth2 인증 과정에서 사용자 정보를 캡슐화해 다양한 OAuth 제공자에서 통일된 사용자 정보를 제공하는 데 사용 +* - 제공자(Google, Kakao 등)에서 받은 사용자 정보를 표준화 +* - 인증 후, DB에 사용자 정보를 저장하거나, 회원 가입 과정에서 사용할 Member 엔티티로 변환 +* */ + +@Builder +public record OAuth2UserInfo( + String name, + String email, + String provider +) { + public static OAuth2UserInfo of(String registrationId, Map attributes) { + return switch (registrationId) { // registration id별로 userInfo 생성 + case "google" -> ofGoogle(attributes, registrationId); + case "kakao" -> ofKakao(attributes, registrationId); + default -> throw new AuthException(ILLEGAL_REGISTRATION_ID); + }; + } + + private static OAuth2UserInfo ofGoogle(Map attributes, String registrationId) { + return OAuth2UserInfo.builder() + .name((String) attributes.get("name")) + .email((String) attributes.get("email")) + .provider(registrationId) + .build(); + } + + private static OAuth2UserInfo ofKakao(Map attributes, String registrationId) { + Map account = (Map) attributes.get("kakao_account"); + Map profile = (Map) account.get("profile"); + + return OAuth2UserInfo.builder() + .name((String) profile.get("nickname")) + .email((String) account.get("email")) + .provider(registrationId) + .build(); + } + + public Member toEntity() { + Information information = Information.builder() + .point(0) + .rank(Rank.BRONZE) + .build(); + + return Member.builder() + .name(name) + .email(email) + .provider(provider) + .information(information) + .role(Role.USER) + .memberKey(KeyGenerator.generateKey()) + .build(); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/exception/AuthException.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/exception/AuthException.java" new file mode 100644 index 0000000..4e52015 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/exception/AuthException.java" @@ -0,0 +1,10 @@ +package com.baexxbin.wishrise.auth.exception; + +import com.baexxbin.wishrise.global.exception.CustomException; +import com.baexxbin.wishrise.global.exception.ErrorCode; + +public class AuthException extends CustomException { + public AuthException(ErrorCode errorCode) { + super(errorCode); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/exception/TokenException.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/exception/TokenException.java" new file mode 100644 index 0000000..e5e7e38 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/exception/TokenException.java" @@ -0,0 +1,11 @@ +package com.baexxbin.wishrise.auth.exception; + +import com.baexxbin.wishrise.global.exception.CustomException; +import com.baexxbin.wishrise.global.exception.ErrorCode; + +public class TokenException extends CustomException { + + public TokenException(ErrorCode errorCode) { + super(errorCode); + } +} \ No newline at end of file diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/CustomAccessDeniedHandler.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/CustomAccessDeniedHandler.java" new file mode 100644 index 0000000..39aa819 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/CustomAccessDeniedHandler.java" @@ -0,0 +1,19 @@ +package com.baexxbin.wishrise.auth.handler; + +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.access.AccessDeniedException; +import org.springframework.security.web.access.AccessDeniedHandler; + +import java.io.IOException; + +@Slf4j +public class CustomAccessDeniedHandler implements AccessDeniedHandler { + @Override + public void handle(HttpServletRequest request, HttpServletResponse response, AccessDeniedException accessDeniedException) throws IOException, ServletException { + log.error("AccessDeniedException is occurred. ", accessDeniedException); + response.sendError(HttpServletResponse.SC_FORBIDDEN, "접근 권한이 없습니다."); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/CustomAuthenticationEntryPoint.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/CustomAuthenticationEntryPoint.java" new file mode 100644 index 0000000..30e30a7 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/CustomAuthenticationEntryPoint.java" @@ -0,0 +1,19 @@ +package com.baexxbin.wishrise.auth.handler; + +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.AuthenticationEntryPoint; + +import java.io.IOException; + +@Slf4j +public class CustomAuthenticationEntryPoint implements AuthenticationEntryPoint { + @Override + public void commence(HttpServletRequest request, HttpServletResponse response, AuthenticationException authException) throws IOException, ServletException { + log.error("AuthenticationException is occurred. ", authException); + response.sendError(HttpServletResponse.SC_UNAUTHORIZED, "인증에 실패하였습니다."); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/OAuth2FailureHandler.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/OAuth2FailureHandler.java" new file mode 100644 index 0000000..16c3cc2 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/OAuth2FailureHandler.java" @@ -0,0 +1,19 @@ +package com.baexxbin.wishrise.auth.handler; + +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.web.authentication.AuthenticationFailureHandler; + +import java.io.IOException; + +@Slf4j +public class OAuth2FailureHandler implements AuthenticationFailureHandler { + @Override + public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response, AuthenticationException exception) throws IOException, ServletException { + log.error("OAuth2 login fail. ", exception); + response.sendError(HttpServletResponse.SC_BAD_REQUEST, "소셜 로그인에 실패하였습니다."); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/OAuth2SuccessHandler.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/OAuth2SuccessHandler.java" new file mode 100644 index 0000000..ad77397 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/OAuth2SuccessHandler.java" @@ -0,0 +1,65 @@ +package com.baexxbin.wishrise.auth.handler; + +import com.baexxbin.wishrise.auth.jwt.TokenProvider; +import com.baexxbin.wishrise.auth.service.TokenService; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.Authentication; +import org.springframework.security.web.authentication.AuthenticationSuccessHandler; +import org.springframework.stereotype.Component; +import org.springframework.web.util.UriComponentsBuilder; + +import java.io.IOException; + +/* +* OAuth2 인증 과정에서 성공적인 인증 이후의 동작 정의 +* */ + +@RequiredArgsConstructor +@Component +public class OAuth2SuccessHandler implements AuthenticationSuccessHandler { + private final TokenProvider tokenProvider; + private final TokenService tokenService; + private static final String URI = "/auth/success"; + + @Override + public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, + Authentication authentication) throws IOException, ServletException { + // 1. Access Token 생성 + String accessToken = tokenProvider.generateAccessToken(authentication); + + // 2. Refresh Token 생성 + String refreshToken = tokenProvider.generateRefreshToken(authentication); + + // 3. Token 저장 + String memberKey = authentication.getName(); + tokenService.saveOrUpdate(memberKey, refreshToken, accessToken); + + // 4. Access Token을 쿠키에 저장 + Cookie accessTokenCookie = new Cookie("accessToken", accessToken); + accessTokenCookie.setHttpOnly(true); // JS에서 접근 불가 + accessTokenCookie.setSecure(true); // HTTPS에서만 전송 + accessTokenCookie.setPath("/"); // 모든 경로에서 쿠키 전송 + accessTokenCookie.setMaxAge(30 * 60); // 30분간 유효 + + // 5. Refresh Token을 쿠키에 저장 + Cookie refreshTokenCookie = new Cookie("refreshToken", refreshToken); + refreshTokenCookie.setHttpOnly(true); // JS에서 접근 불가 + refreshTokenCookie.setPath("/"); // 모든 경로에서 쿠키 전송 + refreshTokenCookie.setMaxAge(7 * 24 * 60 * 60); // 7일간 유효 + + // 6. 응답에 쿠키 추가 + response.addCookie(accessTokenCookie); + response.addCookie(refreshTokenCookie); + + // 7. JSON 형태로 응답을 보내고 리다이렉트 + response.setContentType("application/json"); + response.getWriter().write("{\"message\": \"Login successful\", \"redirectUrl\": \"/auth/success\"}"); + response.setStatus(HttpServletResponse.SC_OK); + + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenAuthenticationFilter.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenAuthenticationFilter.java" new file mode 100644 index 0000000..d021e4d --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenAuthenticationFilter.java" @@ -0,0 +1,107 @@ +package com.baexxbin.wishrise.auth.jwt; + +import com.baexxbin.wishrise.auth.service.TokenService; +import com.baexxbin.wishrise.global.constants.TokenKey; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.RequiredArgsConstructor; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.stereotype.Component; +import org.springframework.util.ObjectUtils; +import org.springframework.util.StringUtils; +import org.springframework.web.filter.OncePerRequestFilter; + +import java.io.IOException; + +import static org.springframework.http.HttpHeaders.AUTHORIZATION; + + +/* + * 토큰에 대한 인증 처리 진행 + * 토큰 검중 후 유효한 경우 인증정보 설정, 만료된 경우 새 토큰 발급받아 응답 헤더 포함 + * */ + +@RequiredArgsConstructor +@Component +public class TokenAuthenticationFilter extends OncePerRequestFilter { + + private final TokenProvider tokenProvider; + private final TokenService tokenService; + +// @Override +// protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { +// String accessToken = resolveToken(request); +// +// // accessToken 검증 +// if (tokenProvider.validateToken(accessToken)) { +// setAuthentication(accessToken); +// } else { +// // 만료되었을 경우 accessToken 재발급 +// String reissueAccessToken = tokenProvider.reissueAccessToken(accessToken); +// +// if (StringUtils.hasText(reissueAccessToken)) { +// setAuthentication(reissueAccessToken); +// +// // 재발급된 accessToken 다시 전달 +// response.setHeader(AUTHORIZATION, TokenKey.TOKEN_PREFIX + reissueAccessToken); +// } +// } +// +// filterChain.doFilter(request, response); +// } + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { + String accessToken = resolveToken(request); + + // accessToken 검증 + if (StringUtils.hasText(accessToken) && tokenProvider.validateToken(accessToken)) { + setAuthentication(accessToken); + } else { + // 만료되었을 경우, 리프레시 토큰을 통해 새 accessToken 발급 + String refreshToken = resolveRefreshToken(request); + if (StringUtils.hasText(refreshToken) && tokenProvider.validateToken(refreshToken)) { + // 리프레시 토큰이 유효하면 accessToken 재발급 + String newAccessToken = tokenService.reissueAccessToken(refreshToken); + + if (StringUtils.hasText(newAccessToken)) { + setAuthentication(newAccessToken); + + // 재발급된 accessToken을 응답 헤더에 포함 + response.setHeader(AUTHORIZATION, TokenKey.TOKEN_PREFIX + newAccessToken); + } + } + } + + filterChain.doFilter(request, response); + } + + // 인증 정보 설정 + private void setAuthentication(String accessToken) { + Authentication authentication = tokenProvider.getAuthentication(accessToken); + SecurityContextHolder.getContext().setAuthentication(authentication); + } + + // 요청에서 토큰 추출 + private String resolveToken(HttpServletRequest request) { + String token = request.getHeader(AUTHORIZATION); + if (ObjectUtils.isEmpty(token) || !token.startsWith(TokenKey.TOKEN_PREFIX)) { + return null; + } + return token.substring(TokenKey.TOKEN_PREFIX.length()); + } + + // 요청에서 리프레시 토큰 추출 + private String resolveRefreshToken(HttpServletRequest request) { + // 리프레시 토큰은 따로 헤더에 담아서 보내는 방식이라면 이곳에서 추출 + // 예를 들어, Authorization 헤더와 다른 방식으로 전달된다면 이 부분을 수정 + String token = request.getHeader("X-Refresh-Token"); // 예시로 X-Refresh-Token 헤더 사용 + if (ObjectUtils.isEmpty(token) || !token.startsWith(TokenKey.TOKEN_PREFIX)) { + return null; + } + return token.substring(TokenKey.TOKEN_PREFIX.length()); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenExceptionFilter.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenExceptionFilter.java" new file mode 100644 index 0000000..92b3666 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenExceptionFilter.java" @@ -0,0 +1,26 @@ +package com.baexxbin.wishrise.auth.jwt; + +import com.baexxbin.wishrise.auth.exception.TokenException; +import jakarta.servlet.FilterChain; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.web.filter.OncePerRequestFilter; + +import java.io.IOException; + +/* +* 토큰 관련 예외처리를 위한 예외 핸들링 필터 +* */ + +public class TokenExceptionFilter extends OncePerRequestFilter { + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException { + try { + filterChain.doFilter(request, response); + } catch (TokenException e) { // servlet으로 예외전달 + response.sendError(e.getErrorCode().getHttpStatus().value(), e.getMessage()); + } + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenProvider.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenProvider.java" new file mode 100644 index 0000000..bb37d29 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenProvider.java" @@ -0,0 +1,166 @@ +package com.baexxbin.wishrise.auth.jwt; + +import com.baexxbin.wishrise.auth.domain.Token; +import com.baexxbin.wishrise.auth.exception.TokenException; +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.ExpiredJwtException; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.MalformedJwtException; +import io.jsonwebtoken.security.Keys; +import jakarta.annotation.PostConstruct; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.GrantedAuthority; +import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.core.userdetails.User; +import org.springframework.stereotype.Component; +import org.springframework.util.StringUtils; + +import javax.crypto.SecretKey; +import java.util.Collections; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +import static com.baexxbin.wishrise.global.exception.ErrorCode.INVALID_JWT_SIGNATURE; +import static com.baexxbin.wishrise.global.exception.ErrorCode.INVALID_TOKEN; + +/* +* JWT 생성 검증 파싱 +* */ + +@Slf4j +@RequiredArgsConstructor +@Component +public class TokenProvider { + + @Value("${spring.security.oauth2.resourceserver.jwt.secret}") + private String key; + private SecretKey secretKey; + private static final long ACCESS_TOKEN_EXPIRE_TIME = 1000 * 60 * 30L; +// private static final long REFRESH_TOKEN_EXPIRE_TIME = 1000 * 60 * 60L * 24 * 7; + private static final String KEY_ROLE = "role"; + + @PostConstruct + private void setSecretKey() { + secretKey = Keys.hmacShaKeyFor(key.getBytes()); + } + + // 내 서비스의 JWT accessToken 발급 + public String generateAccessToken(Authentication authentication) { + return generateToken(authentication); + } + + // 1. refresh token 발급 +// public void generateRefreshToken(Authentication authentication, String accessToken) { +// String refreshToken = generateToken(authentication, REFRESH_TOKEN_EXPIRE_TIME); +// tokenService.saveOrUpdate(authentication.getName(), refreshToken, accessToken); // redis에 저장 +// } + + public String generateRefreshToken(Authentication authentication) { + Date now = new Date(); + Date expiredDate = new Date(now.getTime() + (1000 * 60 * 60 * 24 * 7)); // 7일간 유효 + + return Jwts.builder() + .subject(authentication.getName()) + .issuedAt(now) + .expiration(expiredDate) + .signWith(secretKey, Jwts.SIG.HS512) + .compact(); + } + + + private String generateToken(Authentication authentication) { + Date now = new Date(); + Date expiredDate = new Date(now.getTime() + TokenProvider.ACCESS_TOKEN_EXPIRE_TIME); + + String authorities = authentication.getAuthorities().stream() + .map(GrantedAuthority::getAuthority) + .collect(Collectors.joining()); + + return Jwts.builder() + .subject(authentication.getName()) + .claim(KEY_ROLE, authorities) + .issuedAt(now) + .expiration(expiredDate) + .signWith(secretKey, Jwts.SIG.HS512) + .compact(); + } + +// public Authentication getAuthentication(String token) { +// Claims claims = parseClaims(token); +// List authorities = getAuthorities(claims); +// +// // 2. security의 User 객체 생성 +// User principal = new User(claims.getSubject(), "", authorities); +// return new UsernamePasswordAuthenticationToken(principal, token, authorities); +// } + + public Authentication getAuthentication(String token) { + Claims claims = parseClaims(token); + List authorities = Collections.singletonList( + new SimpleGrantedAuthority(claims.get(KEY_ROLE).toString())); + + User principal = new User(claims.getSubject(), "", authorities); + return new UsernamePasswordAuthenticationToken(principal, token, authorities); + } + +// private List getAuthorities(Claims claims) { +// return Collections.singletonList(new SimpleGrantedAuthority( +// claims.get(KEY_ROLE).toString())); +// } + +// // 3. accessToken 재발급 +// public String reissueAccessToken(String accessToken) { +// if (StringUtils.hasText(accessToken)) { +// Token token = tokenService.findByAccessTokenOrThrow(accessToken); +// String refreshToken = token.getRefreshToken(); +// +// if (validateToken(refreshToken)) { +// String reissueAccessToken = generateAccessToken(getAuthentication(refreshToken)); +// tokenService.updateToken(reissueAccessToken, token); +// return reissueAccessToken; +// } +// } +// return null; +// } + +// public boolean validateToken(String token) { +// if (!StringUtils.hasText(token)) { +// return false; +// } +// +// Claims claims = parseClaims(token); +// return claims.getExpiration().after(new Date()); +// } + + public boolean validateToken(String token) { + if (!StringUtils.hasText(token)) { + return false; + } + + try { + parseClaims(token); + return true; + } catch (ExpiredJwtException | MalformedJwtException e) { + return false; + } + } + + private Claims parseClaims(String token) { + try { + return Jwts.parser().verifyWith(secretKey).build() + .parseSignedClaims(token).getPayload(); + } catch (ExpiredJwtException e) { // 토큰 만료 + return e.getClaims(); // 토큰 만료시에도 Claims 반환 + } catch (MalformedJwtException e) { // 형식이 잘못된 토큰 + throw new TokenException(INVALID_TOKEN); + } catch (SecurityException e) { // 서명 검증 실패 + throw new TokenException(INVALID_JWT_SIGNATURE); + } + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/repository/TokenRepository.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/repository/TokenRepository.java" new file mode 100644 index 0000000..71ea3ce --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/repository/TokenRepository.java" @@ -0,0 +1,12 @@ +package com.baexxbin.wishrise.auth.repository; + +import com.baexxbin.wishrise.auth.domain.Token; +import org.springframework.data.repository.CrudRepository; + +import java.util.Optional; + +public interface TokenRepository extends CrudRepository { + Optional findByRefreshToken(String refreshToken); + Optional findByAccessToken(String accessToken); + Optional findByAuthId(String authId); +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/service/CustomOAuth2UserService.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/service/CustomOAuth2UserService.java" new file mode 100644 index 0000000..ddac3cb --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/service/CustomOAuth2UserService.java" @@ -0,0 +1,51 @@ +package com.baexxbin.wishrise.auth.service; + +import com.baexxbin.wishrise.auth.domain.PrincipalDetails; +import com.baexxbin.wishrise.auth.dto.OAuth2UserInfo; +import com.baexxbin.wishrise.member.application.MemberModuleService; +import com.baexxbin.wishrise.member.domain.Member; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.oauth2.client.userinfo.DefaultOAuth2UserService; +import org.springframework.security.oauth2.client.userinfo.OAuth2UserRequest; +import org.springframework.security.oauth2.core.OAuth2AuthenticationException; +import org.springframework.security.oauth2.core.user.OAuth2User; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Map; + +/* +* SecurityConfig에서 로그인 성공 이후 사용자 정보를 가져올 클래스 +* */ +@Slf4j +@RequiredArgsConstructor +@Service +public class CustomOAuth2UserService extends DefaultOAuth2UserService { + + private final MemberModuleService memberModuleService; + + @Transactional + @Override + public OAuth2User loadUser(OAuth2UserRequest userRequest) throws OAuth2AuthenticationException { + // 1. 유저 정보(attributes) 가져오기 + Map oAuth2UserAttributes = super.loadUser(userRequest).getAttributes(); + + // 2. resistrationId 가져오기 (third-party id) + String registrationId = userRequest.getClientRegistration().getRegistrationId(); + + // 3. userNameAttributeName 가져오기 + String userNameAttributeName = userRequest.getClientRegistration().getProviderDetails() + .getUserInfoEndpoint().getUserNameAttributeName(); + + // 4. 유저 정보 dto 생성 + OAuth2UserInfo oAuth2UserInfo = OAuth2UserInfo.of(registrationId, oAuth2UserAttributes); + + // 5. 회원가입 및 로그인 + Member member = memberModuleService.loginOrJoin(oAuth2UserInfo); + + // 6. OAuth2User로 반환 + return new PrincipalDetails(member, oAuth2UserAttributes, userNameAttributeName); + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/service/TokenService.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/service/TokenService.java" new file mode 100644 index 0000000..144fc83 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/service/TokenService.java" @@ -0,0 +1,88 @@ +package com.baexxbin.wishrise.auth.service; + +import com.baexxbin.wishrise.auth.domain.Token; +import com.baexxbin.wishrise.auth.dto.LoginResponse; +import com.baexxbin.wishrise.auth.exception.TokenException; +import com.baexxbin.wishrise.auth.jwt.TokenProvider; +import com.baexxbin.wishrise.auth.repository.TokenRepository; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.security.core.Authentication; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import static com.baexxbin.wishrise.global.exception.ErrorCode.TOKEN_EXPIRED; + +@Slf4j +@RequiredArgsConstructor +@Service +public class TokenService { + private final TokenRepository tokenRepository; + private final TokenProvider tokenProvider; + + + public void deleteRefreshToken(String memberKey) { + tokenRepository.deleteById(memberKey); + } + + @Transactional + public void saveOrUpdate(String memberKey, String refreshToken, String accessToken) { + Token token = tokenRepository.findByAccessToken(accessToken) + .map(o -> o.updateRefreshToken(refreshToken)) + .orElseGet(() -> new Token(memberKey, refreshToken, accessToken)); + + tokenRepository.save(token); + } + + public Token findByAccessTokenOrThrow(String accessToken) { + return tokenRepository.findByAccessToken(accessToken) + .orElseThrow(() -> new TokenException(TOKEN_EXPIRED)); + } + + @Transactional + public void updateToken(String accessToken, Token token) { + token.updateAccessToken(accessToken); + tokenRepository.save(token); + } + + public LoginResponse getLoginResponse(String accessToken) { + if (!tokenProvider.validateToken(accessToken)) { + throw new TokenException(TOKEN_EXPIRED); + } + + Authentication authentication = tokenProvider.getAuthentication(accessToken); + String userId = authentication.getName(); + String username = authentication.getPrincipal().toString(); + String role = authentication.getAuthorities().stream() + .findFirst() + .map(Object::toString) + .orElse("USER"); + + return LoginResponse.builder() + .accessToken(accessToken) + .refreshToken("refresh-token-placeholder") // 실제 리프레시 토큰 로직 추가 + .userId(userId) + .username(username) + .role(role) + .build(); + } + + + public String reissueAccessToken(String accessToken) { + if (!tokenProvider.validateToken(accessToken)) { + throw new TokenException(TOKEN_EXPIRED); + } + + Token token = findByAccessTokenOrThrow(accessToken); + String refreshToken = token.getRefreshToken(); + + if (!tokenProvider.validateToken(refreshToken)) { + throw new TokenException(TOKEN_EXPIRED); + } + + String newAccessToken = tokenProvider.generateAccessToken(tokenProvider.getAuthentication(refreshToken)); + updateToken(newAccessToken, token); + + return newAccessToken; + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/JasyptConfig.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/JasyptConfig.java" new file mode 100644 index 0000000..9d81963 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/JasyptConfig.java" @@ -0,0 +1,31 @@ +package com.baexxbin.wishrise.global.config; + + +import org.jasypt.encryption.StringEncryptor; +import org.jasypt.encryption.pbe.PooledPBEStringEncryptor; +import org.jasypt.encryption.pbe.config.SimpleStringPBEConfig; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class JasyptConfig { + @Value("${jasypt.encryptor.password}") + private String password; + + @Bean("jasyptStringEncryptor") // 위에서 지정한 빈 이름으로 암호기 생성 + public StringEncryptor stringEncryptor() { + PooledPBEStringEncryptor encryptor = new PooledPBEStringEncryptor(); + SimpleStringPBEConfig config = new SimpleStringPBEConfig(); + config.setPassword(password); // 외부주입 + config.setAlgorithm("PBEWithMD5AndDES"); + config.setKeyObtentionIterations("1000"); // 암호화 키를 얻기위해 반복해야하는 해시 횟수 + config.setPoolSize("1"); // 암호화 요청의 pool 크기 + config.setProviderName("SunJCE"); + config.setSaltGeneratorClassName("org.jasypt.salt.RandomSaltGenerator"); + config.setIvGeneratorClassName("org.jasypt.iv.NoIvGenerator"); + config.setStringOutputType("base64"); // 암호화 이후 어떤 형태로 값 받을지 + encryptor.setConfig(config); + return encryptor; + } +} \ No newline at end of file diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/RedisConfig.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/RedisConfig.java" new file mode 100644 index 0000000..ae3e356 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/RedisConfig.java" @@ -0,0 +1,85 @@ +package com.baexxbin.wishrise.global.config; + +import org.springframework.beans.factory.annotation.Value; +import org.springframework.cache.CacheManager; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.cache.RedisCacheConfiguration; +import org.springframework.data.redis.cache.RedisCacheManager; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.connection.RedisStandaloneConfiguration; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.RedisSerializationContext; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +import java.time.Duration; + +@Configuration +@EnableCaching +public class RedisConfig { + @Value("${spring.data.redis.host}") + private String host; + + @Value("${spring.data.redis.port}") + private int port; + + @Value("${spring.data.redis.password}") + private String password; + + + /* + * RedisStandaloneConfiguration 객체를 사용하여 Redis 서버의 설정을 한 곳에서 모아서 관리 + * LettuceConnectionFactory에 RedisStandaloneConfiguration을 전달하는 방식으로 Redis 연결 설정 + * */ + @Bean + public LettuceConnectionFactory redisConnectionFactory() { + RedisStandaloneConfiguration redisStandaloneConfiguration = new RedisStandaloneConfiguration(); + redisStandaloneConfiguration.setHostName(host); + redisStandaloneConfiguration.setPort(port); + redisStandaloneConfiguration.setPassword(password); // 패스워드 설정 + + return new LettuceConnectionFactory(redisStandaloneConfiguration); + } + + @Bean + public RedisTemplate redisTemplate() { + RedisTemplate redisTemplate = new RedisTemplate<>(); + redisTemplate.setConnectionFactory(redisConnectionFactory()); + + // 일반적인 key:value의 경우 시리얼라이저 + redisTemplate.setKeySerializer(new StringRedisSerializer()); + redisTemplate.setValueSerializer(new StringRedisSerializer()); + + // Hash를 사용할 경우 시리얼라이저 + redisTemplate.setHashKeySerializer(new StringRedisSerializer()); + redisTemplate.setHashValueSerializer(new StringRedisSerializer()); + + // 모든 경우 + redisTemplate.setDefaultSerializer(new StringRedisSerializer()); + + return redisTemplate; + } + + + // CacheManager 생성 + @Bean + public CacheManager redisCacheManager( // redis를 사용한 캐싱 설정 + RedisConnectionFactory redisConnectionFactory) { + RedisCacheConfiguration configuration = RedisCacheConfiguration + .defaultCacheConfig() + .serializeKeysWith(RedisSerializationContext.SerializationPair + .fromSerializer(new StringRedisSerializer())) + .serializeValuesWith(RedisSerializationContext.SerializationPair + .fromSerializer(new GenericJackson2JsonRedisSerializer())) + .entryTtl(Duration.ofMinutes(3L)); + + return RedisCacheManager.RedisCacheManagerBuilder + .fromConnectionFactory(redisConnectionFactory) + .cacheDefaults(configuration) + .build(); + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/SecurityConfig.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/SecurityConfig.java" new file mode 100644 index 0000000..89e1d20 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/SecurityConfig.java" @@ -0,0 +1,110 @@ +package com.baexxbin.wishrise.global.config; + +import com.baexxbin.wishrise.auth.handler.CustomAccessDeniedHandler; +import com.baexxbin.wishrise.auth.handler.CustomAuthenticationEntryPoint; +import com.baexxbin.wishrise.auth.handler.OAuth2FailureHandler; +import com.baexxbin.wishrise.auth.handler.OAuth2SuccessHandler; +import com.baexxbin.wishrise.auth.jwt.TokenAuthenticationFilter; +import com.baexxbin.wishrise.auth.jwt.TokenExceptionFilter; +import com.baexxbin.wishrise.auth.service.CustomOAuth2UserService; +import lombok.RequiredArgsConstructor; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.config.annotation.method.configuration.EnableMethodSecurity; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer; +import org.springframework.security.config.annotation.web.configurers.AbstractHttpConfigurer; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.security.web.SecurityFilterChain; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.security.web.util.matcher.AntPathRequestMatcher; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.CorsConfigurationSource; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; + +import java.util.Arrays; +import java.util.List; + +import static org.springframework.security.config.Customizer.withDefaults; + +@RequiredArgsConstructor +@Configuration +@EnableWebSecurity +@EnableMethodSecurity +public class SecurityConfig { + private final CustomOAuth2UserService customOAuth2UserService; + private final OAuth2SuccessHandler oAuth2SuccessHandler; + private final TokenAuthenticationFilter tokenAuthenticationFilter; + + + @Bean + public WebSecurityCustomizer webSecurityCustomizer() { // security를 적용하지 않을 리소스 + return web -> web.ignoring() + .requestMatchers("/error", "/favicon.ico"); + } + + @Bean + public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception{ + http + .csrf(AbstractHttpConfigurer::disable) + .cors(withDefaults()) + .httpBasic(AbstractHttpConfigurer::disable) + .formLogin(AbstractHttpConfigurer::disable) + .logout(AbstractHttpConfigurer::disable) + .sessionManagement(c -> + c.sessionCreationPolicy(SessionCreationPolicy.STATELESS)) + .authorizeHttpRequests(authorizeRequest -> + authorizeRequest + .requestMatchers( + AntPathRequestMatcher.antMatcher("/api/members"), + AntPathRequestMatcher.antMatcher("/api/login"), + AntPathRequestMatcher.antMatcher("/auth/success"), + AntPathRequestMatcher.antMatcher("/swagger-resources/**"), + AntPathRequestMatcher.antMatcher("/swagger-ui/**"), + AntPathRequestMatcher.antMatcher("/token/**") // 토큰 발급 경로 허용 + ).permitAll() + .anyRequest().authenticated() + ) + // oauth2 설정 + .oauth2Login(oauth -> + oauth + .userInfoEndpoint(c -> + c.userService(customOAuth2UserService) + ) + .successHandler(oAuth2SuccessHandler) + .failureHandler(new OAuth2FailureHandler()) + ) + + // jwt 관련 설정 + .addFilterBefore(tokenAuthenticationFilter, UsernamePasswordAuthenticationFilter.class) + .addFilterBefore(new TokenExceptionFilter(), tokenAuthenticationFilter.getClass()) // 토큰 예외 핸들링 + + // 인증 예외 핸들링 + .exceptionHandling((exceptions) -> exceptions + .authenticationEntryPoint(new CustomAuthenticationEntryPoint()) + .accessDeniedHandler(new CustomAccessDeniedHandler())); + + return http.build(); + } + + @Bean + public CorsConfigurationSource corsConfigurationSource() { + CorsConfiguration configuration = new CorsConfiguration(); + configuration.setAllowedOrigins(List.of("http://localhost:4173")); + configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE")); + configuration.setAllowedHeaders(Arrays.asList("Content-Type", "Authorization")); + configuration.setAllowCredentials(true); + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**", configuration); + return source; + } + + @Bean + PasswordEncoder passwordEncoder() { + return new BCryptPasswordEncoder(); + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/WebConfig.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/WebConfig.java" new file mode 100644 index 0000000..b33cdb9 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/config/WebConfig.java" @@ -0,0 +1,19 @@ +package com.baexxbin.wishrise.global.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebConfig implements WebMvcConfigurer { + + @Override + public void addCorsMappings(CorsRegistry registry) { + registry.addMapping("/api/**") + .allowedOrigins("http://localhost:4173") + .allowedMethods("GET", "POST", "PUT", "DELETE") + .allowedHeaders("Content-Type", "Authorization") + .allowCredentials(true); //쿠키 허용 + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/constants/TokenKey.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/constants/TokenKey.java" new file mode 100644 index 0000000..d4f08d2 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/constants/TokenKey.java" @@ -0,0 +1,5 @@ +package com.baexxbin.wishrise.global.constants; + +public final class TokenKey { + public static final String TOKEN_PREFIX = "Bearer "; +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/CustomException.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/CustomException.java" new file mode 100644 index 0000000..f3ecb56 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/CustomException.java" @@ -0,0 +1,21 @@ +package com.baexxbin.wishrise.global.exception; + +import lombok.Getter; + +@Getter +public abstract class CustomException extends RuntimeException{ + private final ErrorCode errorCode; + private final String message; + + public CustomException(ErrorCode errorCode) { + super(errorCode.getMessage()); + this.errorCode = errorCode; + this.message = errorCode.getMessage(); + } + + public CustomException(ErrorCode errorCode, String message) { + super(message); + this.errorCode = errorCode; + this.message = message; + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/ErrorCode.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/ErrorCode.java" new file mode 100644 index 0000000..5138178 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/ErrorCode.java" @@ -0,0 +1,29 @@ +package com.baexxbin.wishrise.global.exception; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; + +import static org.springframework.http.HttpStatus.*; + +@Getter +@RequiredArgsConstructor +public enum ErrorCode { + // auth + ILLEGAL_REGISTRATION_ID(NOT_ACCEPTABLE, "illegal registration id"), + TOKEN_EXPIRED(UNAUTHORIZED, "토큰이 만료되었습니다."), + INVALID_TOKEN(UNAUTHORIZED, "올바르지 않은 토큰입니다."), + INVALID_JWT_SIGNATURE(UNAUTHORIZED, "잘못된 JWT 시그니처입니다."), + + // member + MEMBER_NOT_FOUND(NOT_FOUND, "회원을 찾을 수 없습니다."), + + // global + NO_ACCESS(FORBIDDEN, "접근 권한이 없습니다."), + RESOURCE_NOT_FOUND(NOT_FOUND, "요청한 자원을 찾을 수 없습니다."), + INVALID_REQUEST(BAD_REQUEST, "올바르지 않은 요청입니다."), + INTERNAL_ERROR(INTERNAL_SERVER_ERROR, "예상치못한 에러가 발생했습니다."); + + private final HttpStatus httpStatus; + private final String message; +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/ErrorResponse.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/ErrorResponse.java" new file mode 100644 index 0000000..bb8c75a --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/ErrorResponse.java" @@ -0,0 +1,7 @@ +package com.baexxbin.wishrise.global.exception; + +public record ErrorResponse( + ErrorCode errorCode, + String message +) { +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/GlobalExceptionHandler.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/GlobalExceptionHandler.java" new file mode 100644 index 0000000..e3118da --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/exception/GlobalExceptionHandler.java" @@ -0,0 +1,46 @@ +package com.baexxbin.wishrise.global.exception; + +import jakarta.validation.ConstraintViolationException; +import lombok.extern.slf4j.Slf4j; +import org.springframework.dao.DataIntegrityViolationException; +import org.springframework.http.ResponseEntity; +import org.springframework.validation.FieldError; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.RestControllerAdvice; + +import static com.baexxbin.wishrise.global.exception.ErrorCode.INVALID_REQUEST; +import static com.baexxbin.wishrise.global.exception.ErrorCode.RESOURCE_NOT_FOUND; + +@Slf4j +@RestControllerAdvice +public class GlobalExceptionHandler { + @ExceptionHandler(CustomException.class) + public ResponseEntity handleCustomException(CustomException e) { // 사용자 정의 예외 처리 + return toResponse(e.getErrorCode(), e.getMessage()); + } + + @ExceptionHandler(MethodArgumentNotValidException.class) + public ResponseEntity handleMethodArgumentValidException(MethodArgumentNotValidException e) { // 유효성 검증 오류 처리 + FieldError fieldError = e.getBindingResult().getFieldError(); + assert fieldError != null; + String message = fieldError.getField() + " " + fieldError.getDefaultMessage(); + return toResponse(INVALID_REQUEST, message); + } + + @ExceptionHandler(ConstraintViolationException.class) + public ResponseEntity handleConstraintValidException(ConstraintViolationException e) { // 유효성 검증 실패 처리 + return toResponse(INVALID_REQUEST, e.getMessage().substring(19)); + } + + @ExceptionHandler(DataIntegrityViolationException.class) + public ResponseEntity handleDataIntegrityViolationException(DataIntegrityViolationException e) { // 데이터베이스 무결성 제약 조건 위반 처리 + log.error("DataIntegrityViolationException is occurred. ", e); + return toResponse(RESOURCE_NOT_FOUND, RESOURCE_NOT_FOUND.getMessage()); + } + + private ResponseEntity toResponse(ErrorCode errorCode, String message) { + return ResponseEntity.status(errorCode.getHttpStatus()) + .body(new ErrorResponse(errorCode, message)); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/util/KeyGenerator.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/util/KeyGenerator.java" new file mode 100644 index 0000000..a201329 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/util/KeyGenerator.java" @@ -0,0 +1,8 @@ +package com.baexxbin.wishrise.global.util; + +import java.util.UUID; +public final class KeyGenerator { + public static String generateKey() { + return UUID.randomUUID().toString().replace("-", ""); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/util/RedisUtils.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/util/RedisUtils.java" new file mode 100644 index 0000000..f1802a8 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/global/util/RedisUtils.java" @@ -0,0 +1,27 @@ +package com.baexxbin.wishrise.global.util; + +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.concurrent.TimeUnit; + +@Service +public class RedisUtils { + private final RedisTemplate redisTemplate; + + public RedisUtils(RedisTemplate redisTemplate) { + this.redisTemplate = redisTemplate; + } + + public void setData(String key, String value,Long expiredTime){ + redisTemplate.opsForValue().set(key, value, expiredTime, TimeUnit.MILLISECONDS); + } + + public String getData(String key){ + return (String) redisTemplate.opsForValue().get(key); + } + + public void deleteData(String key){ + redisTemplate.delete(key); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/api/GoalApiController.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/api/GoalApiController.java" new file mode 100644 index 0000000..419a876 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/api/GoalApiController.java" @@ -0,0 +1,15 @@ +package com.baexxbin.wishrise.goal.api; + +import com.baexxbin.wishrise.goal.application.GoalModuleService; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springframework.web.bind.annotation.*; + +@Tag(name = "GoalApi") +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/goal") +public class GoalApiController { + + private final GoalModuleService goalModuleService; +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/application/GoalModuleService.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/application/GoalModuleService.java" new file mode 100644 index 0000000..7ee9726 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/application/GoalModuleService.java" @@ -0,0 +1,41 @@ +package com.baexxbin.wishrise.goal.application; + +import com.baexxbin.wishrise.goal.domain.Goal; +import com.baexxbin.wishrise.goal.domain.ToWant; +import com.baexxbin.wishrise.goal.repository.GoalJpaRepository; +import com.baexxbin.wishrise.goal.dto.request.SaveGoalServiceDto; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@Transactional +@RequiredArgsConstructor +public class GoalModuleService { + + private final GoalJpaRepository goalJpaRepository; + + public Goal createGoal(SaveGoalServiceDto saveGoalServiceDto) { + if (saveGoalServiceDto instanceof SaveGoalServiceDto.TowantSaveDto) { + return createGoalTowant((SaveGoalServiceDto.TowantSaveDto) saveGoalServiceDto); + } + + Goal toDo = Goal.builder() + .title(saveGoalServiceDto.getTitle()) + .description(saveGoalServiceDto.getDescription()) + .targetDate(saveGoalServiceDto.getTargetDate()) + .build(); + return goalJpaRepository.save(toDo); + } + + + public ToWant createGoalTowant(SaveGoalServiceDto.TowantSaveDto goalServiceDto) { + ToWant toWant = ToWant.builder() + .title(goalServiceDto.getTitle()) + .description(goalServiceDto.getDescription()) + .targetDate(goalServiceDto.getTargetDate()) + .price(goalServiceDto.getPrice()) + .build(); + return goalJpaRepository.save(toWant); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/domain/Goal.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/domain/Goal.java" new file mode 100644 index 0000000..42b1167 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/domain/Goal.java" @@ -0,0 +1,66 @@ +package com.baexxbin.wishrise.goal.domain; + +import com.baexxbin.wishrise.register.domain.Register; +import com.fasterxml.jackson.annotation.JsonIgnore; +import jakarta.persistence.*; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.time.LocalDate; + +import static jakarta.persistence.FetchType.*; + +@Entity +@Inheritance(strategy = InheritanceType.JOINED) +@DiscriminatorColumn +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@SuperBuilder(toBuilder = true) +public class Goal { + @Id + @GeneratedValue + @Column(name = "goal_id") + private Long id; + + @Enumerated(EnumType.STRING) + @Builder.Default + private GoalType goalType = GoalType.DO; + private String title; + private String description; + + private LocalDate targetDate; + @Builder.Default + private int heartCount = 0; + + @JsonIgnore + @OneToOne(mappedBy = "goal", fetch = LAZY) + private Register register; + + + // ToDo 기본 생성자 + protected Goal(String title, String description, LocalDate targetDate) { + this.title = title; + this.description = description; + this.targetDate = targetDate; + } + + + // ToWant 자식생성자 호출 시 사용 + protected Goal(GoalType goalType, String title, String description, LocalDate targetDate) { + this.goalType = goalType; + this.title = title; + this.description = description; + this.targetDate = targetDate; + } + + public void updateGoal(GoalType goalType, String title, String description, LocalDate targetDate) { + this.goalType = goalType; + this.title = title; + this.description = description; + this.targetDate = targetDate; + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/domain/GoalType.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/domain/GoalType.java" new file mode 100644 index 0000000..900390a --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/domain/GoalType.java" @@ -0,0 +1,5 @@ +package com.baexxbin.wishrise.goal.domain; + +public enum GoalType { + DO, WANT +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/domain/ToWant.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/domain/ToWant.java" new file mode 100644 index 0000000..3f4aeaf --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/domain/ToWant.java" @@ -0,0 +1,29 @@ +package com.baexxbin.wishrise.goal.domain; + +import jakarta.persistence.DiscriminatorValue; +import jakarta.persistence.Entity; +import lombok.AccessLevel; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +import java.time.LocalDate; + +@Entity +@DiscriminatorValue("Want") +@Getter +@NoArgsConstructor(access = AccessLevel.PROTECTED) +@SuperBuilder +public class ToWant extends Goal { + private Integer price; + + public ToWant(String title, String description, LocalDate targetDate, Integer price) { + super(GoalType.WANT, title, description, targetDate); + this.price = price; + } + + public void updateToWant(String title, String description, LocalDate targetDate, Integer price) { + this.updateGoal(GoalType.WANT, title, description, targetDate); + this.price = price; + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/dto/request/SaveGoalServiceDto.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/dto/request/SaveGoalServiceDto.java" new file mode 100644 index 0000000..70dcede --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/dto/request/SaveGoalServiceDto.java" @@ -0,0 +1,37 @@ +package com.baexxbin.wishrise.goal.dto.request; + +import com.baexxbin.wishrise.goal.domain.GoalType; +import lombok.Getter; + +import java.time.LocalDate; + +@Getter +public abstract class SaveGoalServiceDto { + private GoalType goalType; + private String title; + private String description; + private LocalDate targetDate; + + public SaveGoalServiceDto(GoalType goalType, String title, String description, LocalDate targetDate) { + this.goalType = goalType; + this.title = title; + this.description = description; + this.targetDate = targetDate; + } + + public static class TodoSaveDto extends SaveGoalServiceDto { + public TodoSaveDto(String title, String description, LocalDate targetDate) { + super(GoalType.DO, title, description, targetDate); + } + } + + @Getter + public static class TowantSaveDto extends SaveGoalServiceDto { + private Integer price; + + public TowantSaveDto(String title, String description, LocalDate targetDate, Integer price) { + super(GoalType.WANT, title, description, targetDate); + this.price = price; + } + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/repository/GoalJpaRepository.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/repository/GoalJpaRepository.java" new file mode 100644 index 0000000..6d705ce --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/repository/GoalJpaRepository.java" @@ -0,0 +1,7 @@ +package com.baexxbin.wishrise.goal.repository; + +import com.baexxbin.wishrise.goal.domain.Goal; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface GoalJpaRepository extends JpaRepository { +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/repository/ItemRepository.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/repository/ItemRepository.java" new file mode 100644 index 0000000..ffd46e9 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/goal/repository/ItemRepository.java" @@ -0,0 +1,31 @@ +package com.baexxbin.wishrise.goal.repository; + +import com.baexxbin.wishrise.goal.domain.Goal; +import jakarta.persistence.EntityManager; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +@RequiredArgsConstructor +public class ItemRepository { + private final EntityManager em; + + public void save(Goal goal) { + if (goal.getId() == null) { + em.persist(goal); + } else { + em.merge(goal); + } + } + + public Goal findOne(Long id) { + return em.find(Goal.class, id); + } + + public List findAll() { + return em.createQuery("select g from Goal g", Goal.class) + .getResultList(); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/api/MemberApiController.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/api/MemberApiController.java" new file mode 100644 index 0000000..a6717f8 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/api/MemberApiController.java" @@ -0,0 +1,34 @@ +package com.baexxbin.wishrise.member.api; + +import com.baexxbin.wishrise.member.application.MemberComponentService; +import com.baexxbin.wishrise.member.dto.request.MemberInfoDto; +import io.swagger.v3.oas.annotations.tags.Tag; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +@Tag(name = "MemberApi") +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/members") +public class MemberApiController { + + private final MemberComponentService memberComponentService; + + // 회원가입 + @PostMapping + public ResponseEntity signUp(@RequestBody MemberInfoDto memberInfoDto) { + Long memberId = memberComponentService.join(memberInfoDto); + return ResponseEntity.ok(memberId); + } + + + @PutMapping("{userId}") + @ResponseStatus(HttpStatus.NO_CONTENT) + public void updateMember(@PathVariable Long userId, @RequestBody MemberInfoDto memberInfoDto) { + memberComponentService.update(userId, memberInfoDto); + } + + // 아이디 중복확인 +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberComponentService.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberComponentService.java" new file mode 100644 index 0000000..bd13bc2 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberComponentService.java" @@ -0,0 +1,86 @@ +package com.baexxbin.wishrise.member.application; + +import com.baexxbin.wishrise.auth.dto.OAuth2UserInfo; +import com.baexxbin.wishrise.global.util.KeyGenerator; +import com.baexxbin.wishrise.member.domain.Information; +import com.baexxbin.wishrise.member.domain.Member; +import com.baexxbin.wishrise.member.domain.Rank; +import com.baexxbin.wishrise.member.domain.Role; +import com.baexxbin.wishrise.member.dto.request.MemberInfoDto; +import jakarta.persistence.EntityNotFoundException; +import lombok.RequiredArgsConstructor; +import org.springframework.security.crypto.password.PasswordEncoder; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Optional; + +@Service +@Transactional(readOnly = true) +@RequiredArgsConstructor +public class MemberComponentService { + + private final MemberModuleService memberModuleService; + private final PasswordEncoder passwordEncoder; + + @Transactional + public Long join(MemberInfoDto memberInfoDto) { + validateDuplicateMemberNickname(memberInfoDto.getNickname()); + validateDuplicateMemberEmail(memberInfoDto.getEmail()); + + Member member = createMember(memberInfoDto); + return memberModuleService.save(member); + } + + private void validateDuplicateMemberNickname(String nickname) { + Optional findMembers = memberModuleService.findByNickname(nickname); + if (findMembers.isPresent()){ + throw new IllegalStateException("이미 존재하는 아이디입니다."); + } + } + + private void validateDuplicateMemberEmail(String email) { + Optional findEmail = memberModuleService.findByEmail(email); + if (findEmail.isPresent()) { + throw new IllegalStateException("이미 존재하는 이메일입니다."); + } + } + + private Member createMember(MemberInfoDto memberInfoDto) { + return Member.builder() + .nickname(memberInfoDto.getNickname()) + .name(memberInfoDto.getName()) + .password(passwordEncoder.encode(memberInfoDto.getPassword())) + .email(memberInfoDto.getEmail()) + .information(createDefaultInformation()) + .role(Role.USER) + .memberKey(KeyGenerator.generateKey()) + .build(); + } + + private Member createOauthMember(OAuth2UserInfo oAuth2UserInfo) { + return Member.builder() + .name(oAuth2UserInfo.name()) + .email(oAuth2UserInfo.email()) + .provider(oAuth2UserInfo.provider()) + .information(createDefaultInformation()) + .role(Role.USER) + .memberKey(KeyGenerator.generateKey()) + .build(); + } + + private Information createDefaultInformation() { + return Information.builder() + .point(0) + .rank(Rank.BRONZE) + .build(); + } + + @Transactional + public void update(Long userId, MemberInfoDto memberInfoDto) { + Optional optionalMember = memberModuleService.findById(userId); + Member member = optionalMember.orElseThrow(() -> new EntityNotFoundException("존재하지않는 회원입니다.")); + member.edit(memberInfoDto); + memberModuleService.save(member); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberModuleService.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberModuleService.java" new file mode 100644 index 0000000..7f5b948 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberModuleService.java" @@ -0,0 +1,52 @@ +package com.baexxbin.wishrise.member.application; + +import com.baexxbin.wishrise.auth.dto.OAuth2UserInfo; +import com.baexxbin.wishrise.member.domain.Member; +import com.baexxbin.wishrise.member.repository.MemberJpaRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +import java.util.Optional; + +@Service +@Transactional(readOnly = true) +@RequiredArgsConstructor +public class MemberModuleService { + + private final MemberJpaRepository memberJpaRepository; + + @Transactional + public Long save(Member member) { + Member saveMember = memberJpaRepository.save(member); + return saveMember.getId(); + } + + @Transactional + public Member saveEntity(Member member){ + return memberJpaRepository.save(member); + } + + public Optional findById(Long memberId) { + return memberJpaRepository.findById(memberId); + } + + public Optional findByNickname(String nickname) { + return memberJpaRepository.findByNickname(nickname); + } + + public Optional findByEmail(String email) { + return memberJpaRepository.findByEmail(email); + } + + public List findAll() { + return memberJpaRepository.findAll(); + } + + public Member loginOrJoin(OAuth2UserInfo oAuth2UserInfo) { + Member member = memberJpaRepository.findByEmail(oAuth2UserInfo.email()) + .orElseGet(oAuth2UserInfo::toEntity); + return memberJpaRepository.save(member); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Information.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Information.java" new file mode 100644 index 0000000..c5a4cf0 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Information.java" @@ -0,0 +1,25 @@ +package com.baexxbin.wishrise.member.domain; + +import jakarta.persistence.*; +import lombok.Builder; +import lombok.Getter; + +@Embeddable +@Getter +public class Information { + private Integer point; + + @Column(name = "member_rank") // rank는 db예약어 + @Enumerated(EnumType.STRING) + private Rank rank; + + @Builder + public Information(Integer point, Rank rank) { + this.point = point; + this.rank = rank; + } + + protected Information() { // 임베디드 타입 기본생성자 필수 + + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Member.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Member.java" new file mode 100644 index 0000000..823b3f6 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Member.java" @@ -0,0 +1,74 @@ +package com.baexxbin.wishrise.member.domain; + +import com.baexxbin.wishrise.member.dto.request.MemberInfoDto; +import com.baexxbin.wishrise.register.domain.Register; +import com.fasterxml.jackson.annotation.JsonIgnore; +import jakarta.persistence.*; +import lombok.Builder; +import lombok.Getter; + +import java.util.ArrayList; +import java.util.List; + +@Entity +@Getter +public class Member { + @Id + @GeneratedValue + @Column(name = "member_id") + private Long id; + +// @Column(nullable = false, updatable = false) + private String nickname; + + @Column(nullable = false) + private String name; +// @Column(nullable = false) + @Column() + private String password; + @Column(nullable = false, unique = true) + private String email; + + // 사용자가 인증한 OAuth 제공자 + @Column(nullable = false) + private String provider; + + @Embedded + private Information information; + + @Enumerated(EnumType.STRING) + @Column(name = "member_role", nullable = false) + private Role role = Role.USER; + + // 회원 고유 식별 키 + @Column(nullable = false, unique = true) + private String memberKey; + + @JsonIgnore // 클래스 속성 수준에서 직렬, 역직렬화시 해당 속성 무시 + @OneToMany(mappedBy = "member") + private List resgisters = new ArrayList<>(); + + @Column(name = "del_yn") + private boolean deleted = false; + + @Builder + public Member(String nickname, String name, String password, String email, String provider, Information information, Role role, String memberKey) { + this.nickname = nickname; + this.name = name; + this.password = password; + this.email = email; + this.provider = provider; + this.information = information; + this.role = role; + this.memberKey = memberKey; + } + protected Member() { + + } + + public void edit(MemberInfoDto memberInfoDto) { + this.name = memberInfoDto.getName(); + this.email = memberInfoDto.getEmail(); + this.password = memberInfoDto.getPassword(); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Rank.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Rank.java" new file mode 100644 index 0000000..c6afaac --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Rank.java" @@ -0,0 +1,25 @@ +package com.baexxbin.wishrise.member.domain; + +public enum Rank { + BRONZE(1, "BRONZE"), + SILVER(2, "SILVER"), + GOLD(3, "GOLD"), + PLATINUM(4, "PLATINUM"), + DIAMOND(5, "DIAMOND"); + + private final int level; + private final String name; + + Rank(int level, String name) { + this.level = level; + this.name = name; + } + + public int getLevel() { + return level; + } + + public String getName() { + return name; + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Role.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Role.java" new file mode 100644 index 0000000..b0b3fd3 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/domain/Role.java" @@ -0,0 +1,13 @@ +package com.baexxbin.wishrise.member.domain; + +import lombok.Getter; +import lombok.RequiredArgsConstructor; + +@Getter +@RequiredArgsConstructor +public enum Role { + USER("ROLE_USER"), + ADMIN("ROLE_ADMIN"); + + private final String key; +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/dto/request/LoginRequestDto.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/dto/request/LoginRequestDto.java" new file mode 100644 index 0000000..c1ccd62 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/dto/request/LoginRequestDto.java" @@ -0,0 +1,16 @@ +package com.baexxbin.wishrise.member.dto.request; + +import jakarta.validation.constraints.Email; +import jakarta.validation.constraints.NotNull; +import lombok.Getter; + +@Getter +public class LoginRequestDto { + @NotNull(message = "이메일 입력은 필수입니다.") + @Email + private String email; + + + @NotNull(message = "패스워드 입력은 필수입니다.") + private String password; +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/dto/request/MemberInfoDto.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/dto/request/MemberInfoDto.java" new file mode 100644 index 0000000..0dcd88e --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/dto/request/MemberInfoDto.java" @@ -0,0 +1,40 @@ +package com.baexxbin.wishrise.member.dto.request; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.*; +import lombok.Builder; +import lombok.Getter; + +@Getter +@Builder +@Schema(title = "MEM_REQ_01 : 회원가입 요청 DTO") +public class MemberInfoDto { + + @NotBlank(message = "사용자 닉네임을 입력해주세요.") + @Size(min = 3, max = 15, message = "사용자 닉네임은 15글자 이하로 입력해야 합니다.") + private String nickname; + + @NotBlank(message = "사용자 이름을 입력해주세요.") + @Size(min = 3, max = 15, message = "사용자 이름은 15글자 이하로 입력해야 합니다.") + private String name; + + @NotBlank + @Pattern(regexp="(?=.*[0-9])(?=.*[a-zA-Z])(?=.*\\W)(?=\\S+$).{8,20}", + message = "비밀번호는 영문 대,소문자와 숫자, 특수기호가 적어도 1개 이상씩 포함된 8자 ~ 20자의 비밀번호여야 합니다.") + private String password; + + @NotBlank(message = "사용자 이메일을 입력해주세요.") + @Email(message = "이메일 형식에 맞지 않습니다.") + private String email; + + + + public MemberInfoDto(String nickname, String name, String password, String email) { + this.nickname = nickname; + this.name = name; + this.password = password; + this.email = email; + } + + protected MemberInfoDto(){} +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/repository/MemberCustomRepository.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/repository/MemberCustomRepository.java" new file mode 100644 index 0000000..9d4c6be --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/repository/MemberCustomRepository.java" @@ -0,0 +1,37 @@ +package com.baexxbin.wishrise.member.repository; + +import com.baexxbin.wishrise.member.domain.Member; +import jakarta.persistence.EntityManager; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; + +import java.util.List; + +@Repository +@RequiredArgsConstructor +public class MemberCustomRepository { + private final EntityManager em; + + public void save(Member member) { + em.persist(member); + } + + public Member findOne(Long id) { + return em.find(Member.class, id); + } + + public List findAll() { + return em.createQuery("select m from Member m", Member.class) + .getResultList(); + } + + public List findByNickname(String name) { + return em.createQuery("select m from Member m where m.nickname = :name", Member.class) + .setParameter("name", name) + .getResultList(); + } + + public void update(Member member) { + em.merge(member); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/repository/MemberJpaRepository.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/repository/MemberJpaRepository.java" new file mode 100644 index 0000000..189ac0e --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/repository/MemberJpaRepository.java" @@ -0,0 +1,16 @@ +package com.baexxbin.wishrise.member.repository; + +import com.baexxbin.wishrise.member.domain.Member; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface MemberJpaRepository extends JpaRepository { + Optional findByNickname(String nickname); + Optional findByEmail(String email); +// Optional findUserByEmailAndProvider(String email, String provider); + + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/api/RegisterApiController.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/api/RegisterApiController.java" new file mode 100644 index 0000000..8deffa8 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/api/RegisterApiController.java" @@ -0,0 +1,29 @@ +package com.baexxbin.wishrise.register.api; + +import com.baexxbin.wishrise.register.application.RegisterComponentService; +import com.baexxbin.wishrise.register.dto.request.RegisterGoalDto; +import com.baexxbin.wishrise.goal.dto.request.SaveGoalServiceDto; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +@Tag(name = "RegisterApi") +@RestController +@RequiredArgsConstructor +@RequestMapping("/api/registrations") +public class RegisterApiController { + + private final RegisterComponentService registerComponentService; + + @PostMapping + public ResponseEntity register(@RequestParam(name = "loginUserId") Long loginUserId, @Valid @RequestBody RegisterGoalDto registerGoalDto) { + SaveGoalServiceDto saveGoalServiceDto = registerGoalDto.toServiceDto(); + Long registeredGoal = registerComponentService.registerGoal(loginUserId, saveGoalServiceDto); + + return ResponseEntity.status(HttpStatus.CREATED).body(registeredGoal); + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/application/RegisterComponentService.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/application/RegisterComponentService.java" new file mode 100644 index 0000000..fd092cd --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/application/RegisterComponentService.java" @@ -0,0 +1,42 @@ +package com.baexxbin.wishrise.register.application; + +import com.baexxbin.wishrise.goal.application.GoalModuleService; +import com.baexxbin.wishrise.goal.domain.Goal; +import com.baexxbin.wishrise.goal.dto.request.SaveGoalServiceDto; +import com.baexxbin.wishrise.member.application.MemberModuleService; +import com.baexxbin.wishrise.member.domain.Member; +import com.baexxbin.wishrise.register.domain.Register; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Optional; + + +@Service +@Transactional +@RequiredArgsConstructor +public class RegisterComponentService { + + private final RegisterModuleService registerModuleService; + private final GoalModuleService goalModuleService; + private final MemberModuleService memberModuleService; + + @Transactional + public Long registerGoal(Long loginUserId, SaveGoalServiceDto saveGoalServiceDto) { + Goal savedGoal = goalModuleService.createGoal(saveGoalServiceDto); + + Optional registerUser = memberModuleService.findById(loginUserId); + if (registerUser.isEmpty()) { + throw new IllegalArgumentException("User not found with id: " + loginUserId); + } + + Register register = Register.builder() + .member(registerUser.get()) + .goal(savedGoal) + .build(); + Register savedRegister = registerModuleService.save(register); + return savedRegister.getId(); + + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/application/RegisterModuleService.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/application/RegisterModuleService.java" new file mode 100644 index 0000000..7ed903d --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/application/RegisterModuleService.java" @@ -0,0 +1,19 @@ +package com.baexxbin.wishrise.register.application; + +import com.baexxbin.wishrise.register.domain.Register; +import com.baexxbin.wishrise.register.repository.RegisterJpaRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +@Service +@RequiredArgsConstructor +@Transactional +public class RegisterModuleService { + + private final RegisterJpaRepository registerJpaRepository; + + public Register save(Register register) { + return registerJpaRepository.save(register); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/domain/Register.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/domain/Register.java" new file mode 100644 index 0000000..35d94ce --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/domain/Register.java" @@ -0,0 +1,53 @@ +package com.baexxbin.wishrise.register.domain; + +import com.baexxbin.wishrise.goal.domain.Goal; +import com.baexxbin.wishrise.member.domain.Member; +import jakarta.persistence.*; +import lombok.Builder; +import lombok.Getter; + +import java.time.LocalDateTime; +import java.time.ZoneOffset; + +import static com.baexxbin.wishrise.register.domain.RegisteredStatus.*; +import static jakarta.persistence.FetchType.LAZY; + +@Entity +@Table(name = "registers") +@Getter +public class Register { + @Id + @GeneratedValue + @Column(name = "register_id") + private Long id; + + @ManyToOne(fetch = LAZY) + @JoinColumn(name = "member_id") + private Member member; + + @OneToOne(fetch = LAZY, cascade = CascadeType.ALL) + @JoinColumn(name = "goal_id") + private Goal goal; + + private LocalDateTime registrationDate; + + @Builder.Default + private LocalDateTime achievementDate = LocalDateTime.of(1970, 1, 1, 0, 0, 0).atOffset(ZoneOffset.UTC).toLocalDateTime(); + + @Builder.Default + @Enumerated(EnumType.STRING) + private RegisteredStatus status = REGISTRATION; + + + @Builder + public Register(Member member, Goal goal) { + this.member = member; + this.goal = goal; + this.registrationDate = LocalDateTime.now(ZoneOffset.UTC); + } + + protected Register() { + + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/domain/RegisteredStatus.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/domain/RegisteredStatus.java" new file mode 100644 index 0000000..ae465aa --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/domain/RegisteredStatus.java" @@ -0,0 +1,5 @@ +package com.baexxbin.wishrise.register.domain; + +public enum RegisteredStatus { + REGISTRATION, ACHIEVEMENT +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/dto/RegisterSearch.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/dto/RegisterSearch.java" new file mode 100644 index 0000000..25fb9c1 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/dto/RegisterSearch.java" @@ -0,0 +1,11 @@ +package com.baexxbin.wishrise.register.dto; + +import com.baexxbin.wishrise.register.domain.RegisteredStatus; +import lombok.Getter; +import lombok.Setter; + +@Getter @Setter +public class RegisterSearch { + private String memberName; // 회원 이름 + private RegisteredStatus registeredStatus; // 등록상태 [REGISTRATION, ACHIEVEMENT] +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/dto/request/RegisterGoalDto.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/dto/request/RegisterGoalDto.java" new file mode 100644 index 0000000..f59c4c5 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/dto/request/RegisterGoalDto.java" @@ -0,0 +1,42 @@ +package com.baexxbin.wishrise.register.dto.request; + +import com.baexxbin.wishrise.goal.domain.GoalType; +import com.baexxbin.wishrise.goal.dto.request.SaveGoalServiceDto; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; + +import java.time.LocalDate; + +@Getter +@Schema(title = "REGISTER_REQ_01 : 입력 목표 저장 DTO") +public class RegisterGoalDto { + private GoalType goalType; + private String title; + private String description; + private LocalDate targetDate; + + // ToWant일 경우 + private Integer price; + + + public RegisterGoalDto(GoalType goalType, String title, String description, LocalDate targetDate, Integer price) { + this.goalType = goalType; + this.title = title; + this.description = description; + this.targetDate = targetDate; + this.price = price; + } + + /** + * 컨트롤러와 서비스 사이 통신용 ServiceDto로 변환하여 전달 + * GoalType에 따라 service에서 처리할 수 있도록 전달 + */ + public SaveGoalServiceDto toServiceDto() { + if (GoalType.DO.equals(this.goalType)) { + return new SaveGoalServiceDto.TodoSaveDto(this.title, this.description, this.targetDate); + } else { + return new SaveGoalServiceDto.TowantSaveDto(this.title, this.description, this.targetDate, this.price); + } + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/repository/RegisterJpaRepository.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/repository/RegisterJpaRepository.java" new file mode 100644 index 0000000..b566553 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/repository/RegisterJpaRepository.java" @@ -0,0 +1,9 @@ +package com.baexxbin.wishrise.register.repository; + +import com.baexxbin.wishrise.register.domain.Register; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface RegisterJpaRepository extends JpaRepository { +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/repository/RegisterRepository.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/repository/RegisterRepository.java" new file mode 100644 index 0000000..bb3025f --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/register/repository/RegisterRepository.java" @@ -0,0 +1,75 @@ +package com.baexxbin.wishrise.register.repository; + +import com.baexxbin.wishrise.member.domain.Member; +import com.baexxbin.wishrise.register.domain.Register; +import com.baexxbin.wishrise.register.dto.RegisterSearch; +import jakarta.persistence.EntityManager; +import jakarta.persistence.TypedQuery; +import jakarta.persistence.criteria.*; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Repository; +import org.springframework.util.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +@Repository +@RequiredArgsConstructor +public class RegisterRepository { + + private final EntityManager em; + + public void save(Register register) { + em.persist(register); + } + + public Register findOne(Long id) { + return em.find(Register.class, id); + } + + public List findAll(RegisterSearch registerSearch) { + return em.createQuery("select o from Register o join o.member m" + + " where o.status =:status" + + " and m.name like :name", Register.class) + .setParameter("status", registerSearch.getRegisteredStatus()) + .setParameter("name", registerSearch.getMemberName()) + .setMaxResults(1000) // 최대 1000건 + .getResultList(); + } + + // JPA Criteria + public List findAllByCriteria(RegisterSearch registerSearch) { + CriteriaBuilder cb = em.getCriteriaBuilder(); + CriteriaQuery cq = cb.createQuery(Register.class); + Root o = cq.from(Register.class); + Join m = o.join("member", JoinType.INNER); + List criteria = new ArrayList<>(); + //주문 상태 검색 + if (registerSearch.getRegisteredStatus() != null) { + Predicate status = cb.equal(o.get("status"), + registerSearch.getRegisteredStatus()); + criteria.add(status); + } + //회원 이름 검색 + if (StringUtils.hasText(registerSearch.getMemberName())) { + Predicate name = + cb.like(m.get("name"), "%" + + registerSearch.getMemberName() + "%"); + criteria.add(name); + } + cq.where(cb.and(criteria.toArray(new Predicate[criteria.size()]))); + TypedQuery query = em.createQuery(cq).setMaxResults(1000); //최대 1000건 + return query.getResultList(); + } + + /** + * Register 조회 시 한방 쿼리로 Member, item 한번에 다 가져오기 + */ + public List findAllWithMemberItem() { + return em.createQuery( + "select r from Register r" + + " join fetch r.member m" + + " join fetch r.goal i", Register.class + ).getResultList(); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/application-oauth.yml" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/application-oauth.yml" new file mode 100644 index 0000000..9c4f44c --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/application-oauth.yml" @@ -0,0 +1,33 @@ +spring: + security: + oauth2: + client: + registration: + google: + client-id: ENC(qn57kp4BIdv04hfpVzYAjl8AiDGJWOuZn/yVWBw/FIdw1aKed7mNU6ItBq9Rdmk7aUDLBT8CizKf9xgFtOjUybPxa8/bsjS7nHv6wWWcQS3YOcXOLVxDSw==) + client-secret: ENC(1A/ZxBydqNWsqDKxPumAj8wziltaWv5iyu0jmY5HJeqeuF2GPXYhmTPaF/IigEyt) + scope: + - email + - profile + - openid + kakao: + client-id: ENC(BUcd8j9my8c+BOIkwmJEC/jfFkAWd5dOZwyNCAKb7Db8v3tiVg1vnB9FGcm1/y7I) + client-secret: ENC(fNoCvNCjPzycRO3YQ+y8nd1EsYCmAawzSygRD1Yxk6xabKnG+ykRLS4Z1nxMPqvn) + redirect-uri: http://localhost:8081/login/oauth2/code/kakao + client-authentication-method: client_secret_post + authorization-grant-type: authorization_code + scope: + - profile_nickname + - account_email + client-name: Kakao + provider: + kakao: + authorization-uri: https://kauth.kakao.com/oauth/authorize + token-uri: https://kauth.kakao.com/oauth/token + user-info-uri: https://kapi.kakao.com/v2/user/me + user-name-attribute: id + + resourceserver: + jwt: + secret: ENC(IjyRDp1E4HjZaypNXP6XFypAcCsaZN0SSFbNLeJRAyBaxK4slXnLngtSYSN8h/eWm+No9CxHMzNqp3uVBK+J3DnqyAealULATFKPScuXO9ua07cuZzwkHnEmxcWrOBMki2V9u6+2KVTy/IsCs686WdBtXWGEyg5AB+DMvjC4bvV3UMnoJS0YEUGc1aIi129H) +# expiration_time: 86400000 #1일 \ No newline at end of file diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/application.yml" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/application.yml" new file mode 100644 index 0000000..7542592 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/application.yml" @@ -0,0 +1,59 @@ +server: + port: 8081 + servlet: + context-path: / + encoding: + charset: UTF-8 + enabled: true + force: true + session: + timeout: 3600 + tomcat: + uri-encoding: UTF-8 + +spring: + application: + name: wishrise + datasource: + url: ENC(1ukvi6Dtk8zByTpD7hb/NNHMkW6YWvCkdSx/D9my9/N+2vSM37Sqro3q71y94kYW0gwYrAHb1lCSpQCdiJdfAqPi1adx6lCDNm5+9NmSgxk8IfzqaqBjBLFuAN5VNAbdIr/KEsYfuWQ=) + username: ENC(i8eu6VKIijmLJTGRI63pYA==) + password: ENC(/hiKFjadIbsEdQMsKX502pz3EdLup+VM) + driver-class-name: com.mysql.cj.jdbc.Driver + web: + resources: + static-locations: classpath:/static/ + jpa: + hibernate: + ddl-auto: create + properties: + hibernate: + default_batch_fetch_size: 1000 + format_sql: true + use-new-id-generator-mappings: false + jasypt: + encryptor: + bean: jasyptStringEncryptor + password: ${ENCRYPT_KEY} + cache: + type: redis + data: + redis: + host: localhost + port: 6379 + password: ENC(JYMRJu34p4awYv2h4FgG4w==) + profiles: + active: default + include: oauth + + +springdoc: + swagger-ui: + path: /swagger-custom-ui.html # swagger-ui 접근 경로 (default) + groups-order: DESC + tags-sorter: alpha + api-docs: + path: /api-docs # openAPI 접근 경로 + default-consumes-media-type: application/json + default-produces-media-type: application/json + paths-to-match: # 해당 패턴에 매칭되는 컨트롤러만 swagger ui 노출 + - /api/** diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/assets/CatLogo-DWgZBMUX.jpg" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/assets/CatLogo-DWgZBMUX.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..a9d37295ce265282aad87bdb6c35465607e2add1 GIT binary patch literal 32977 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 B_7VU9 literal 0 HcmV?d00001 diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/assets/index-C838mxqf.js" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/assets/index-C838mxqf.js" new file mode 100644 index 0000000..e979110 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/assets/index-C838mxqf.js" @@ -0,0 +1,30 @@ +var Bb=Object.defineProperty;var Rb=(e,t,n)=>t in e?Bb(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Kc=(e,t,n)=>Rb(e,typeof t!="symbol"?t+"":t,n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))a(l);new MutationObserver(l=>{for(const o of l)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&a(i)}).observe(document,{childList:!0,subtree:!0});function n(l){const o={};return l.integrity&&(o.integrity=l.integrity),l.referrerPolicy&&(o.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?o.credentials="include":l.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function a(l){if(l.ep)return;l.ep=!0;const o=n(l);fetch(l.href,o)}})();/** +* @vue/shared v3.4.29 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**//*! #__NO_SIDE_EFFECTS__ */function iu(e,t){const n=new Set(e.split(","));return a=>n.has(a)}const Ze={},al=[],Jt=()=>{},Ob=()=>!1,Ei=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),ru=e=>e.startsWith("onUpdate:"),ut=Object.assign,su=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},Db=Object.prototype.hasOwnProperty,Ne=(e,t)=>Db.call(e,t),Ce=Array.isArray,ll=e=>So(e)==="[object Map]",wv=e=>So(e)==="[object Set]",Yc=e=>So(e)==="[object Date]",Ie=e=>typeof e=="function",it=e=>typeof e=="string",Mn=e=>typeof e=="symbol",Ye=e=>e!==null&&typeof e=="object",kv=e=>(Ye(e)||Ie(e))&&Ie(e.then)&&Ie(e.catch),xv=Object.prototype.toString,So=e=>xv.call(e),Lb=e=>So(e).slice(8,-1),Cv=e=>So(e)==="[object Object]",uu=e=>it(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Ml=iu(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Ai=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},Mb=/-(\w)/g,nn=Ai(e=>e.replace(Mb,(t,n)=>n?n.toUpperCase():"")),Fb=/\B([A-Z])/g,pl=Ai(e=>e.replace(Fb,"-$1").toLowerCase()),Vn=Ai(e=>e.charAt(0).toUpperCase()+e.slice(1)),Pr=Ai(e=>e?`on${Vn(e)}`:""),ua=(e,t)=>!Object.is(e,t),Qo=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:a,value:n})},es=e=>{const t=parseFloat(e);return isNaN(t)?e:t},Vv=e=>{const t=it(e)?Number(e):NaN;return isNaN(t)?e:t};let qc;const Pv=()=>qc||(qc=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function cu(e){if(Ce(e)){const t={};for(let n=0;n{if(n){const a=n.split(Nb);a.length>1&&(t[a[0].trim()]=a[1].trim())}}),t}function wo(e){let t="";if(it(e))t=e;else if(Ce(e))for(let n=0;nit(e)?e:e==null?"":Ce(e)||Ye(e)&&(e.toString===xv||!Ie(e.toString))?JSON.stringify(e,Tv,2):String(e),Tv=(e,t)=>t&&t.__v_isRef?Tv(e,t.value):ll(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((n,[a,l],o)=>(n[Ir(a,o)+" =>"]=l,n),{})}:wv(t)?{[`Set(${t.size})`]:[...t.values()].map(n=>Ir(n))}:Mn(t)?Ir(t):Ye(t)&&!Ce(t)&&!Cv(t)?String(t):t,Ir=(e,t="")=>{var n;return Mn(e)?`Symbol(${(n=e.description)!=null?n:t})`:e};/** +* @vue/reactivity v3.4.29 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/let Ut;class Ev{constructor(t=!1){this.detached=t,this._active=!0,this.effects=[],this.cleanups=[],this.parent=Ut,!t&&Ut&&(this.index=(Ut.scopes||(Ut.scopes=[])).push(this)-1)}get active(){return this._active}run(t){if(this._active){const n=Ut;try{return Ut=this,t()}finally{Ut=n}}}on(){Ut=this}off(){Ut=this.parent}stop(t){if(this._active){let n,a;for(n=0,a=this.effects.length;n=5)break}}this._dirtyLevel===1&&(this._dirtyLevel=0),da()}return this._dirtyLevel>=5}set dirty(t){this._dirtyLevel=t?5:0}run(){if(this._dirtyLevel=0,!this.active)return this.fn();let t=ra,n=_a;try{return ra=!0,_a=this,this._runnings++,Xc(this),this.fn()}finally{Jc(this),this._runnings--,_a=n,ra=t}}stop(){this.active&&(Xc(this),Jc(this),this.onStop&&this.onStop(),this.active=!1)}}function Yb(e){return e.value}function Xc(e){e._trackId++,e._depsLength=0}function Jc(e){if(e.deps.length>e._depsLength){for(let t=e._depsLength;t0){a._dirtyLevel=2;continue}let l;a._dirtyLevel{const n=new Map;return n.cleanup=e,n.computed=t,n},di=new WeakMap,Va=Symbol(""),as=Symbol("");function zt(e,t,n){if(ra&&_a){let a=di.get(e);a||di.set(e,a=new Map);let l=a.get(n);l||a.set(n,l=Dv(()=>a.delete(n))),Rv(_a,l)}}function Ln(e,t,n,a,l,o){const i=di.get(e);if(!i)return;let r=[];if(t==="clear")r=[...i.values()];else if(n==="length"&&Ce(e)){const s=Number(a);i.forEach((u,c)=>{(c==="length"||!Mn(c)&&c>=s)&&r.push(u)})}else switch(n!==void 0&&r.push(i.get(n)),t){case"add":Ce(e)?uu(n)&&r.push(i.get("length")):(r.push(i.get(Va)),ll(e)&&r.push(i.get(as)));break;case"delete":Ce(e)||(r.push(i.get(Va)),ll(e)&&r.push(i.get(as)));break;case"set":ll(e)&&r.push(i.get(Va));break}vu();for(const s of r)s&&Ov(s,5);mu()}function qb(e,t){const n=di.get(e);return n&&n.get(t)}const Xb=iu("__proto__,__v_isRef,__isVue"),Lv=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(Mn)),Zc=Jb();function Jb(){const e={};return["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){const a=Ve(this);for(let o=0,i=this.length;o{e[t]=function(...n){ca(),vu();const a=Ve(this)[t].apply(this,n);return mu(),da(),a}}),e}function Zb(e){Mn(e)||(e=String(e));const t=Ve(this);return zt(t,"has",e),t.hasOwnProperty(e)}class Mv{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,a){const l=this._isReadonly,o=this._isShallow;if(n==="__v_isReactive")return!l;if(n==="__v_isReadonly")return l;if(n==="__v_isShallow")return o;if(n==="__v_raw")return a===(l?o?dp:Hv:o?Nv:$v).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(a)?t:void 0;const i=Ce(t);if(!l){if(i&&Ne(Zc,n))return Reflect.get(Zc,n,a);if(n==="hasOwnProperty")return Zb}const r=Reflect.get(t,n,a);return(Mn(n)?Lv.has(n):Xb(n))||(l||zt(t,"get",n),o)?r:rt(r)?i&&uu(n)?r:r.value:Ye(r)?l?Sl(r):Tt(r):r}}class Fv extends Mv{constructor(t=!1){super(!1,t)}set(t,n,a,l){let o=t[n];if(!this._isShallow){const s=Gl(o);if(!fi(a)&&!Gl(a)&&(o=Ve(o),a=Ve(a)),!Ce(t)&&rt(o)&&!rt(a))return s?!1:(o.value=a,!0)}const i=Ce(t)&&uu(n)?Number(n)e,Bi=e=>Reflect.getPrototypeOf(e);function $o(e,t,n=!1,a=!1){e=e.__v_raw;const l=Ve(e),o=Ve(t);n||(ua(t,o)&&zt(l,"get",t),zt(l,"get",o));const{has:i}=Bi(l),r=a?hu:n?bu:Kl;if(i.call(l,t))return r(e.get(t));if(i.call(l,o))return r(e.get(o));e!==l&&e.get(t)}function No(e,t=!1){const n=this.__v_raw,a=Ve(n),l=Ve(e);return t||(ua(e,l)&&zt(a,"has",e),zt(a,"has",l)),e===l?n.has(e):n.has(e)||n.has(l)}function Ho(e,t=!1){return e=e.__v_raw,!t&&zt(Ve(e),"iterate",Va),Reflect.get(e,"size",e)}function Qc(e){e=Ve(e);const t=Ve(this);return Bi(t).has.call(t,e)||(t.add(e),Ln(t,"add",e,e)),this}function ed(e,t){t=Ve(t);const n=Ve(this),{has:a,get:l}=Bi(n);let o=a.call(n,e);o||(e=Ve(e),o=a.call(n,e));const i=l.call(n,e);return n.set(e,t),o?ua(t,i)&&Ln(n,"set",e,t):Ln(n,"add",e,t),this}function td(e){const t=Ve(this),{has:n,get:a}=Bi(t);let l=n.call(t,e);l||(e=Ve(e),l=n.call(t,e)),a&&a.call(t,e);const o=t.delete(e);return l&&Ln(t,"delete",e,void 0),o}function nd(){const e=Ve(this),t=e.size!==0,n=e.clear();return t&&Ln(e,"clear",void 0,void 0),n}function zo(e,t){return function(a,l){const o=this,i=o.__v_raw,r=Ve(i),s=t?hu:e?bu:Kl;return!e&&zt(r,"iterate",Va),i.forEach((u,c)=>a.call(l,s(u),s(c),o))}}function jo(e,t,n){return function(...a){const l=this.__v_raw,o=Ve(l),i=ll(o),r=e==="entries"||e===Symbol.iterator&&i,s=e==="keys"&&i,u=l[e](...a),c=n?hu:t?bu:Kl;return!t&&zt(o,"iterate",s?as:Va),{next(){const{value:f,done:v}=u.next();return v?{value:f,done:v}:{value:r?[c(f[0]),c(f[1])]:c(f),done:v}},[Symbol.iterator](){return this}}}}function Xn(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function ap(){const e={get(o){return $o(this,o)},get size(){return Ho(this)},has:No,add:Qc,set:ed,delete:td,clear:nd,forEach:zo(!1,!1)},t={get(o){return $o(this,o,!1,!0)},get size(){return Ho(this)},has:No,add:Qc,set:ed,delete:td,clear:nd,forEach:zo(!1,!0)},n={get(o){return $o(this,o,!0)},get size(){return Ho(this,!0)},has(o){return No.call(this,o,!0)},add:Xn("add"),set:Xn("set"),delete:Xn("delete"),clear:Xn("clear"),forEach:zo(!0,!1)},a={get(o){return $o(this,o,!0,!0)},get size(){return Ho(this,!0)},has(o){return No.call(this,o,!0)},add:Xn("add"),set:Xn("set"),delete:Xn("delete"),clear:Xn("clear"),forEach:zo(!0,!0)};return["keys","values","entries",Symbol.iterator].forEach(o=>{e[o]=jo(o,!1,!1),n[o]=jo(o,!0,!1),t[o]=jo(o,!1,!0),a[o]=jo(o,!0,!0)}),[e,n,t,a]}const[lp,op,ip,rp]=ap();function gu(e,t){const n=t?e?rp:ip:e?op:lp;return(a,l,o)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?a:Reflect.get(Ne(n,l)&&l in a?n:a,l,o)}const sp={get:gu(!1,!1)},up={get:gu(!1,!0)},cp={get:gu(!0,!1)};const $v=new WeakMap,Nv=new WeakMap,Hv=new WeakMap,dp=new WeakMap;function fp(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function vp(e){return e.__v_skip||!Object.isExtensible(e)?0:fp(Lb(e))}function Tt(e){return Gl(e)?e:yu(e,!1,ep,sp,$v)}function zv(e){return yu(e,!1,np,up,Nv)}function Sl(e){return yu(e,!0,tp,cp,Hv)}function yu(e,t,n,a,l){if(!Ye(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const o=l.get(e);if(o)return o;const i=vp(e);if(i===0)return e;const r=new Proxy(e,i===2?a:n);return l.set(e,r),r}function Fl(e){return Gl(e)?Fl(e.__v_raw):!!(e&&e.__v_isReactive)}function Gl(e){return!!(e&&e.__v_isReadonly)}function fi(e){return!!(e&&e.__v_isShallow)}function jv(e){return e?!!e.__v_raw:!1}function Ve(e){const t=e&&e.__v_raw;return t?Ve(t):e}function Uv(e){return Object.isExtensible(e)&&_v(e,"__v_skip",!0),e}const Kl=e=>Ye(e)?Tt(e):e,bu=e=>Ye(e)?Sl(e):e;class Wv{constructor(t,n,a,l){this.getter=t,this._setter=n,this.dep=void 0,this.__v_isRef=!0,this.__v_isReadonly=!1,this.effect=new fu(()=>t(this._value),()=>ei(this,this.effect._dirtyLevel===3?3:4)),this.effect.computed=this,this.effect.active=this._cacheable=!l,this.__v_isReadonly=a}get value(){const t=Ve(this);return(!t._cacheable||t.effect.dirty)&&ua(t._value,t._value=t.effect.run())&&ei(t,5),Gv(t),t.effect._dirtyLevel>=2&&ei(t,3),t._value}set value(t){this._setter(t)}get _dirty(){return this.effect.dirty}set _dirty(t){this.effect.dirty=t}}function mp(e,t,n=!1){let a,l;const o=Ie(e);return o?(a=e,l=Jt):(a=e.get,l=e.set),new Wv(a,l,o||!l,n)}function Gv(e){var t;ra&&_a&&(e=Ve(e),Rv(_a,(t=e.dep)!=null?t:e.dep=Dv(()=>e.dep=void 0,e instanceof Wv?e:void 0)))}function ei(e,t=5,n,a){e=Ve(e);const l=e.dep;l&&Ov(l,t)}function rt(e){return!!(e&&e.__v_isRef===!0)}function te(e){return Kv(e,!1)}function ue(e){return Kv(e,!0)}function Kv(e,t){return rt(e)?e:new hp(e,t)}class hp{constructor(t,n){this.__v_isShallow=n,this.dep=void 0,this.__v_isRef=!0,this._rawValue=n?t:Ve(t),this._value=n?t:Kl(t)}get value(){return Gv(this),this._value}set value(t){const n=this.__v_isShallow||fi(t)||Gl(t);t=n?t:Ve(t),ua(t,this._rawValue)&&(this._rawValue,this._rawValue=t,this._value=n?t:Kl(t),ei(this,5))}}function st(e){return rt(e)?e.value:e}const gp={get:(e,t,n)=>st(Reflect.get(e,t,n)),set:(e,t,n,a)=>{const l=e[t];return rt(l)&&!rt(n)?(l.value=n,!0):Reflect.set(e,t,n,a)}};function Yv(e){return Fl(e)?e:new Proxy(e,gp)}function Ri(e){const t=Ce(e)?new Array(e.length):{};for(const n in e)t[n]=qv(e,n);return t}class yp{constructor(t,n,a){this._object=t,this._key=n,this._defaultValue=a,this.__v_isRef=!0}get value(){const t=this._object[this._key];return t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return qb(Ve(this._object),this._key)}}class bp{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0}get value(){return this._getter()}}function N(e,t,n){return rt(e)?e:Ie(e)?new bp(e):Ye(e)&&arguments.length>1?qv(e,t,n):te(e)}function qv(e,t,n){const a=e[t];return rt(a)?a:new yp(e,t,n)}/** +* @vue/runtime-core v3.4.29 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/function sa(e,t,n,a){try{return a?e(...a):e()}catch(l){ko(l,t,n)}}function en(e,t,n,a){if(Ie(e)){const l=sa(e,t,n,a);return l&&kv(l)&&l.catch(o=>{ko(o,t,n)}),l}if(Ce(e)){const l=[];for(let o=0;o>>1,l=Et[a],o=ql(l);own&&Et.splice(t,1)}function os(e){Ce(e)?ol.push(...e):(!ta||!ta.includes(e,e.allowRecurse?wa+1:wa))&&ol.push(e),Jv()}function ad(e,t,n=Yl?wn+1:0){for(;nql(n)-ql(a));if(ol.length=0,ta){ta.push(...t);return}for(ta=t,wa=0;wae.id==null?1/0:e.id,kp=(e,t)=>{const n=ql(e)-ql(t);if(n===0){if(e.pre&&!t.pre)return-1;if(t.pre&&!e.pre)return 1}return n};function Qv(e){ls=!1,Yl=!0,Et.sort(kp);try{for(wn=0;wnit(m)?m.trim():m)),f&&(l=n.map(es))}let r,s=a[r=Pr(t)]||a[r=Pr(nn(t))];!s&&o&&(s=a[r=Pr(pl(t))]),s&&en(s,e,6,l);const u=a[r+"Once"];if(u){if(!e.emitted)e.emitted={};else if(e.emitted[r])return;e.emitted[r]=!0,en(u,e,6,l)}}function em(e,t,n=!1){const a=t.emitsCache,l=a.get(e);if(l!==void 0)return l;const o=e.emits;let i={},r=!1;if(!Ie(e)){const s=u=>{const c=em(u,t,!0);c&&(r=!0,ut(i,c))};!n&&t.mixins.length&&t.mixins.forEach(s),e.extends&&s(e.extends),e.mixins&&e.mixins.forEach(s)}return!o&&!r?(Ye(e)&&a.set(e,null),null):(Ce(o)?o.forEach(s=>i[s]=null):ut(i,o),Ye(e)&&a.set(e,i),i)}function Oi(e,t){return!e||!Ei(t)?!1:(t=t.slice(2).replace(/Once$/,""),Ne(e,t[0].toLowerCase()+t.slice(1))||Ne(e,pl(t))||Ne(e,t))}let $t=null,Di=null;function vi(e){const t=$t;return $t=e,Di=e&&e.type.__scopeId||null,t}function jn(e){Di=e}function Un(){Di=null}function Re(e,t=$t,n){if(!t||e._n)return e;const a=(...l)=>{a._d&&pd(-1);const o=vi(t);let i;try{i=e(...l)}finally{vi(o),a._d&&pd(1)}return i};return a._n=!0,a._c=!0,a._d=!0,a}function Tr(e){const{type:t,vnode:n,proxy:a,withProxy:l,propsOptions:[o],slots:i,attrs:r,emit:s,render:u,renderCache:c,props:f,data:v,setupState:m,ctx:g,inheritAttrs:h}=e,y=vi(e);let p,S;try{if(n.shapeFlag&4){const A=l||a,x=A;p=cn(u.call(x,A,c,f,m,v,g)),S=r}else{const A=t;p=cn(A.length>1?A(f,{attrs:r,slots:i,emit:s}):A(f,null)),S=t.props?r:_p(r)}}catch(A){jl.length=0,ko(A,e,1),p=d(At)}let C=p;if(S&&h!==!1){const A=Object.keys(S),{shapeFlag:x}=C;A.length&&x&7&&(o&&A.some(ru)&&(S=Vp(S,o)),C=Fn(C,S,!1,!0))}return n.dirs&&(C=Fn(C,null,!1,!0),C.dirs=C.dirs?C.dirs.concat(n.dirs):n.dirs),n.transition&&(C.transition=n.transition),p=C,vi(y),p}function Cp(e,t=!0){let n;for(let a=0;a{let t;for(const n in e)(n==="class"||n==="style"||Ei(n))&&((t||(t={}))[n]=e[n]);return t},Vp=(e,t)=>{const n={};for(const a in e)(!ru(a)||!(a.slice(9)in t))&&(n[a]=e[a]);return n};function Pp(e,t,n){const{props:a,children:l,component:o}=e,{props:i,children:r,patchFlag:s}=t,u=o.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&s>=0){if(s&1024)return!0;if(s&16)return a?ld(a,i,u):!!i;if(s&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;let is=0;const Bp={name:"Suspense",__isSuspense:!0,process(e,t,n,a,l,o,i,r,s,u){if(e==null)Rp(t,n,a,l,o,i,r,s,u);else{if(o&&o.deps>0&&!e.suspense.isInFallback){t.suspense=e.suspense,t.suspense.vnode=t,t.el=e.el;return}Op(e,t,n,a,l,i,r,s,u)}},hydrate:Dp,create:Cu,normalize:Lp},tm=Bp;function Xl(e,t){const n=e.props&&e.props[t];Ie(n)&&n()}function Rp(e,t,n,a,l,o,i,r,s){const{p:u,o:{createElement:c}}=s,f=c("div"),v=e.suspense=Cu(e,l,a,t,f,n,o,i,r,s);u(null,v.pendingBranch=e.ssContent,f,null,a,v,o,i),v.deps>0?(Xl(e,"onPending"),Xl(e,"onFallback"),u(null,e.ssFallback,t,n,a,null,o,i),il(v,e.ssFallback)):v.resolve(!1,!0)}function Op(e,t,n,a,l,o,i,r,{p:s,um:u,o:{createElement:c}}){const f=t.suspense=e.suspense;f.vnode=t,t.el=e.el;const v=t.ssContent,m=t.ssFallback,{activeBranch:g,pendingBranch:h,isInFallback:y,isHydrating:p}=f;if(h)f.pendingBranch=v,kn(v,h)?(s(h,v,f.hiddenContainer,null,l,f,o,i,r),f.deps<=0?f.resolve():y&&(p||(s(g,m,n,a,l,null,o,i,r),il(f,m)))):(f.pendingId=is++,p?(f.isHydrating=!1,f.activeBranch=h):u(h,l,f),f.deps=0,f.effects.length=0,f.hiddenContainer=c("div"),y?(s(null,v,f.hiddenContainer,null,l,f,o,i,r),f.deps<=0?f.resolve():(s(g,m,n,a,l,null,o,i,r),il(f,m))):g&&kn(v,g)?(s(g,v,n,a,l,f,o,i,r),f.resolve(!0)):(s(null,v,f.hiddenContainer,null,l,f,o,i,r),f.deps<=0&&f.resolve()));else if(g&&kn(v,g))s(g,v,n,a,l,f,o,i,r),il(f,v);else if(Xl(t,"onPending"),f.pendingBranch=v,v.shapeFlag&512?f.pendingId=v.component.suspenseId:f.pendingId=is++,s(null,v,f.hiddenContainer,null,l,f,o,i,r),f.deps<=0)f.resolve();else{const{timeout:S,pendingId:C}=f;S>0?setTimeout(()=>{f.pendingId===C&&f.fallback(m)},S):S===0&&f.fallback(m)}}function Cu(e,t,n,a,l,o,i,r,s,u,c=!1){const{p:f,m:v,um:m,n:g,o:{parentNode:h,remove:y}}=u;let p;const S=Fp(e);S&&t&&t.pendingBranch&&(p=t.pendingId,t.deps++);const C=e.props?Vv(e.props.timeout):void 0,A=o,x={vnode:e,parent:t,parentComponent:n,namespace:i,container:a,hiddenContainer:l,deps:0,pendingId:is++,timeout:typeof C=="number"?C:-1,activeBranch:null,pendingBranch:null,isInFallback:!c,isHydrating:c,isUnmounted:!1,effects:[],resolve(k=!1,V=!1){const{vnode:T,activeBranch:w,pendingBranch:P,pendingId:E,effects:I,parentComponent:R,container:F}=x;let z=!1;x.isHydrating?x.isHydrating=!1:k||(z=w&&P.transition&&P.transition.mode==="out-in",z&&(w.transition.afterLeave=()=>{E===x.pendingId&&(v(P,F,o===A?g(w):o,0),os(I))}),w&&(h(w.el)!==x.hiddenContainer&&(o=g(w)),m(w,R,x,!0)),z||v(P,F,o,0)),il(x,P),x.pendingBranch=null,x.isInFallback=!1;let q=x.parent,ee=!1;for(;q;){if(q.pendingBranch){q.effects.push(...I),ee=!0;break}q=q.parent}!ee&&!z&&os(I),x.effects=[],S&&t&&t.pendingBranch&&p===t.pendingId&&(t.deps--,t.deps===0&&!V&&t.resolve()),Xl(T,"onResolve")},fallback(k){if(!x.pendingBranch)return;const{vnode:V,activeBranch:T,parentComponent:w,container:P,namespace:E}=x;Xl(V,"onFallback");const I=g(T),R=()=>{x.isInFallback&&(f(null,k,P,I,w,null,E,r,s),il(x,k))},F=k.transition&&k.transition.mode==="out-in";F&&(T.transition.afterLeave=R),x.isInFallback=!0,m(T,w,null,!0),F||R()},move(k,V,T){x.activeBranch&&v(x.activeBranch,k,V,T),x.container=k},next(){return x.activeBranch&&g(x.activeBranch)},registerDep(k,V,T){const w=!!x.pendingBranch;w&&x.deps++;const P=k.vnode.el;k.asyncDep.catch(E=>{ko(E,k,0)}).then(E=>{if(k.isUnmounted||x.isUnmounted||x.pendingId!==k.suspenseId)return;k.asyncResolved=!0;const{vnode:I}=k;ms(k,E,!1),P&&(I.el=P);const R=!P&&k.subTree.el;V(k,I,h(P||k.subTree.el),P?null:g(k.subTree),x,i,T),R&&y(R),wu(k,I.el),w&&--x.deps===0&&x.resolve()})},unmount(k,V){x.isUnmounted=!0,x.activeBranch&&m(x.activeBranch,n,k,V),x.pendingBranch&&m(x.pendingBranch,n,k,V)}};return x}function Dp(e,t,n,a,l,o,i,r,s){const u=t.suspense=Cu(t,a,n,e.parentNode,document.createElement("div"),null,l,o,i,r,!0),c=s(e,u.pendingBranch=t.ssContent,n,u,o,i);return u.deps===0&&u.resolve(!1,!0),c}function Lp(e){const{shapeFlag:t,children:n}=e,a=t&32;e.ssContent=id(a?n.default:n),e.ssFallback=a?id(n.fallback):d(At)}function id(e){let t;if(Ie(e)){const n=ul&&e._c;n&&(e._d=!1,ze()),e=e(),n&&(e._d=!0,t=Zt,xm())}return Ce(e)&&(e=Cp(e)),e=cn(e),t&&!e.dynamicChildren&&(e.dynamicChildren=t.filter(n=>n!==e)),e}function Mp(e,t){t&&t.pendingBranch?Ce(e)?t.effects.push(...e):t.effects.push(e):os(e)}function il(e,t){e.activeBranch=t;const{vnode:n,parentComponent:a}=e;let l=t.el;for(;!l&&t.component;)t=t.component.subTree,l=t.el;n.el=l,a&&a.subTree===n&&(a.vnode.el=l,wu(a,l))}function Fp(e){const t=e.props&&e.props.suspensible;return t!=null&&t!==!1}function Li(e,t,n=xt,a=!1){if(n){const l=n[e]||(n[e]=[]),o=t.__weh||(t.__weh=(...i)=>{ca();const r=Co(n),s=en(t,n,e,i);return r(),da(),s});return a?l.unshift(o):l.push(o),o}}const Wn=e=>(t,n=xt)=>{(!Ni||e==="sp")&&Li(e,(...a)=>t(...a),n)},_u=Wn("bm"),Vt=Wn("m"),nm=Wn("bu"),Vu=Wn("u"),Pt=Wn("bum"),Pu=Wn("um"),$p=Wn("sp"),Np=Wn("rtg"),Hp=Wn("rtc");function zp(e,t=xt){Li("ec",e,t)}function Ue(e,t){if($t===null)return e;const n=Hi($t),a=e.dirs||(e.dirs=[]);for(let l=0;lt(i,r,void 0,o));else{const i=Object.keys(e);l=new Array(i.length);for(let r=0,s=i.length;r!!e.type.__asyncLoader,rs=e=>e?Vm(e)?Hi(e):rs(e.parent):null,Nl=ut(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>rs(e.parent),$root:e=>rs(e.root),$emit:e=>e.emit,$options:e=>Iu(e),$forceUpdate:e=>e.f||(e.f=()=>{e.effect.dirty=!0,Su(e.update)}),$nextTick:e=>e.n||(e.n=Oe.bind(e.proxy)),$watch:e=>sS.bind(e)}),Er=(e,t)=>e!==Ze&&!e.__isScriptSetup&&Ne(e,t),jp={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:a,data:l,props:o,accessCache:i,type:r,appContext:s}=e;let u;if(t[0]!=="$"){const m=i[t];if(m!==void 0)switch(m){case 1:return a[t];case 2:return l[t];case 4:return n[t];case 3:return o[t]}else{if(Er(a,t))return i[t]=1,a[t];if(l!==Ze&&Ne(l,t))return i[t]=2,l[t];if((u=e.propsOptions[0])&&Ne(u,t))return i[t]=3,o[t];if(n!==Ze&&Ne(n,t))return i[t]=4,n[t];ss&&(i[t]=0)}}const c=Nl[t];let f,v;if(c)return t==="$attrs"&&zt(e.attrs,"get",""),c(e);if((f=r.__cssModules)&&(f=f[t]))return f;if(n!==Ze&&Ne(n,t))return i[t]=4,n[t];if(v=s.config.globalProperties,Ne(v,t))return v[t]},set({_:e},t,n){const{data:a,setupState:l,ctx:o}=e;return Er(l,t)?(l[t]=n,!0):a!==Ze&&Ne(a,t)?(a[t]=n,!0):Ne(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(o[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:a,appContext:l,propsOptions:o}},i){let r;return!!n[i]||e!==Ze&&Ne(e,i)||Er(t,i)||(r=o[0])&&Ne(r,i)||Ne(a,i)||Ne(Nl,i)||Ne(l.config.globalProperties,i)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:Ne(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function rd(e){return Ce(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let ss=!0;function Up(e){const t=Iu(e),n=e.proxy,a=e.ctx;ss=!1,t.beforeCreate&&sd(t.beforeCreate,e,"bc");const{data:l,computed:o,methods:i,watch:r,provide:s,inject:u,created:c,beforeMount:f,mounted:v,beforeUpdate:m,updated:g,activated:h,deactivated:y,beforeDestroy:p,beforeUnmount:S,destroyed:C,unmounted:A,render:x,renderTracked:k,renderTriggered:V,errorCaptured:T,serverPrefetch:w,expose:P,inheritAttrs:E,components:I,directives:R,filters:F}=t;if(u&&Wp(u,a,null),i)for(const ee in i){const $=i[ee];Ie($)&&(a[ee]=$.bind(n))}if(l){const ee=l.call(n,n);Ye(ee)&&(e.data=Tt(ee))}if(ss=!0,o)for(const ee in o){const $=o[ee],Z=Ie($)?$.bind(n,n):Ie($.get)?$.get.bind(n,n):Jt,M=!Ie($)&&Ie($.set)?$.set.bind(n):Jt,U=b({get:Z,set:M});Object.defineProperty(a,ee,{enumerable:!0,configurable:!0,get:()=>U.value,set:ne=>U.value=ne})}if(r)for(const ee in r)am(r[ee],a,n,ee);if(s){const ee=Ie(s)?s.call(n):s;Reflect.ownKeys(ee).forEach($=>{We($,ee[$])})}c&&sd(c,e,"c");function q(ee,$){Ce($)?$.forEach(Z=>ee(Z.bind(n))):$&&ee($.bind(n))}if(q(_u,f),q(Vt,v),q(nm,m),q(Vu,g),q(hm,h),q(gm,y),q(zp,T),q(Hp,k),q(Np,V),q(Pt,S),q(Pu,A),q($p,w),Ce(P))if(P.length){const ee=e.exposed||(e.exposed={});P.forEach($=>{Object.defineProperty(ee,$,{get:()=>n[$],set:Z=>n[$]=Z})})}else e.exposed||(e.exposed={});x&&e.render===Jt&&(e.render=x),E!=null&&(e.inheritAttrs=E),I&&(e.components=I),R&&(e.directives=R)}function Wp(e,t,n=Jt){Ce(e)&&(e=us(e));for(const a in e){const l=e[a];let o;Ye(l)?"default"in l?o=Te(l.from||a,l.default,!0):o=Te(l.from||a):o=Te(l),rt(o)?Object.defineProperty(t,a,{enumerable:!0,configurable:!0,get:()=>o.value,set:i=>o.value=i}):t[a]=o}}function sd(e,t,n){en(Ce(e)?e.map(a=>a.bind(t.proxy)):e.bind(t.proxy),t,n)}function am(e,t,n,a){const l=a.includes(".")?mm(n,a):()=>n[a];if(it(e)){const o=t[e];Ie(o)&&de(l,o)}else if(Ie(e))de(l,e.bind(n));else if(Ye(e))if(Ce(e))e.forEach(o=>am(o,t,n,a));else{const o=Ie(e.handler)?e.handler.bind(n):t[e.handler];Ie(o)&&de(l,o,e)}}function Iu(e){const t=e.type,{mixins:n,extends:a}=t,{mixins:l,optionsCache:o,config:{optionMergeStrategies:i}}=e.appContext,r=o.get(t);let s;return r?s=r:!l.length&&!n&&!a?s=t:(s={},l.length&&l.forEach(u=>hi(s,u,i,!0)),hi(s,t,i)),Ye(t)&&o.set(t,s),s}function hi(e,t,n,a=!1){const{mixins:l,extends:o}=t;o&&hi(e,o,n,!0),l&&l.forEach(i=>hi(e,i,n,!0));for(const i in t)if(!(a&&i==="expose")){const r=Gp[i]||n&&n[i];e[i]=r?r(e[i],t[i]):t[i]}return e}const Gp={data:ud,props:cd,emits:cd,methods:Dl,computed:Dl,beforeCreate:Lt,created:Lt,beforeMount:Lt,mounted:Lt,beforeUpdate:Lt,updated:Lt,beforeDestroy:Lt,beforeUnmount:Lt,destroyed:Lt,unmounted:Lt,activated:Lt,deactivated:Lt,errorCaptured:Lt,serverPrefetch:Lt,components:Dl,directives:Dl,watch:Yp,provide:ud,inject:Kp};function ud(e,t){return t?e?function(){return ut(Ie(e)?e.call(this,this):e,Ie(t)?t.call(this,this):t)}:t:e}function Kp(e,t){return Dl(us(e),us(t))}function us(e){if(Ce(e)){const t={};for(let n=0;n1)return n&&Ie(t)?t.call(a&&a.proxy):t}}const om={},im=()=>Object.create(om),rm=e=>Object.getPrototypeOf(e)===om;function Jp(e,t,n,a=!1){const l={},o=im();e.propsDefaults=Object.create(null),sm(e,t,l,o);for(const i in e.propsOptions[0])i in l||(l[i]=void 0);n?e.props=a?l:zv(l):e.type.props?e.props=l:e.props=o,e.attrs=o}function Zp(e,t,n,a){const{props:l,attrs:o,vnode:{patchFlag:i}}=e,r=Ve(l),[s]=e.propsOptions;let u=!1;if((a||i>0)&&!(i&16)){if(i&8){const c=e.vnode.dynamicProps;for(let f=0;f{s=!0;const[v,m]=um(f,t,!0);ut(i,v),m&&r.push(...m)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!o&&!s)return Ye(e)&&a.set(e,al),al;if(Ce(o))for(let c=0;c-1,m[1]=h<0||g-1||Ne(m,"default"))&&r.push(f)}}}const u=[i,r];return Ye(e)&&a.set(e,u),u}function dd(e){return e[0]!=="$"&&!Ml(e)}function fd(e){return e===null?"null":typeof e=="function"?e.name||"":typeof e=="object"&&e.constructor&&e.constructor.name||""}function vd(e,t){return fd(e)===fd(t)}function md(e,t){return Ce(t)?t.findIndex(n=>vd(n,e)):Ie(t)&&vd(t,e)?0:-1}const cm=e=>e[0]==="_"||e==="$stable",Tu=e=>Ce(e)?e.map(cn):[cn(e)],Qp=(e,t,n)=>{if(t._n)return t;const a=Re((...l)=>Tu(t(...l)),n);return a._c=!1,a},dm=(e,t,n)=>{const a=e._ctx;for(const l in e){if(cm(l))continue;const o=e[l];if(Ie(o))t[l]=Qp(l,o,a);else if(o!=null){const i=Tu(o);t[l]=()=>i}}},fm=(e,t)=>{const n=Tu(t);e.slots.default=()=>n},eS=(e,t)=>{const n=e.slots=im();if(e.vnode.shapeFlag&32){const a=t._;a?(ut(n,t),_v(n,"_",a,!0)):dm(t,n)}else t&&fm(e,t)},tS=(e,t,n)=>{const{vnode:a,slots:l}=e;let o=!0,i=Ze;if(a.shapeFlag&32){const r=t._;r?n&&r===1?o=!1:(ut(l,t),!n&&r===1&&delete l._):(o=!t.$stable,dm(t,l)),i=t}else t&&(fm(e,t),i={default:1});if(o)for(const r in l)!cm(r)&&i[r]==null&&delete l[r]};function ds(e,t,n,a,l=!1){if(Ce(e)){e.forEach((v,m)=>ds(v,t&&(Ce(t)?t[m]:t),n,a,l));return}if(ti(a)&&!l)return;const o=a.shapeFlag&4?Hi(a.component):a.el,i=l?null:o,{i:r,r:s}=e,u=t&&t.r,c=r.refs===Ze?r.refs={}:r.refs,f=r.setupState;if(u!=null&&u!==s&&(it(u)?(c[u]=null,Ne(f,u)&&(f[u]=null)):rt(u)&&(u.value=null)),Ie(s))sa(s,r,12,[i,c]);else{const v=it(s),m=rt(s);if(v||m){const g=()=>{if(e.f){const h=v?Ne(f,s)?f[s]:c[s]:s.value;l?Ce(h)&&su(h,o):Ce(h)?h.includes(o)||h.push(o):v?(c[s]=[o],Ne(f,s)&&(f[s]=c[s])):(s.value=[o],e.k&&(c[e.k]=s.value))}else v?(c[s]=i,Ne(f,s)&&(f[s]=i)):m&&(s.value=i,e.k&&(c[e.k]=i))};i?(g.id=-1,Ft(g,n)):g()}}}const Ft=Mp;function nS(e){return aS(e)}function aS(e,t){const n=Pv();n.__VUE__=!0;const{insert:a,remove:l,patchProp:o,createElement:i,createText:r,createComment:s,setText:u,setElementText:c,parentNode:f,nextSibling:v,setScopeId:m=Jt,insertStaticContent:g}=e,h=(_,B,O,H=null,W=null,re=null,oe=void 0,ce=null,se=!!B.dynamicChildren)=>{if(_===B)return;_&&!kn(_,B)&&(H=D(_),ne(_,W,re,!0),_=null),B.patchFlag===-2&&(se=!1,B.dynamicChildren=null);const{type:ae,ref:pe,shapeFlag:xe}=B;switch(ae){case xo:y(_,B,O,H);break;case At:p(_,B,O,H);break;case Rr:_==null&&S(B,O,H,oe);break;case ge:I(_,B,O,H,W,re,oe,ce,se);break;default:xe&1?x(_,B,O,H,W,re,oe,ce,se):xe&6?R(_,B,O,H,W,re,oe,ce,se):(xe&64||xe&128)&&ae.process(_,B,O,H,W,re,oe,ce,se,G)}pe!=null&&W&&ds(pe,_&&_.ref,re,B||_,!B)},y=(_,B,O,H)=>{if(_==null)a(B.el=r(B.children),O,H);else{const W=B.el=_.el;B.children!==_.children&&u(W,B.children)}},p=(_,B,O,H)=>{_==null?a(B.el=s(B.children||""),O,H):B.el=_.el},S=(_,B,O,H)=>{[_.el,_.anchor]=g(_.children,B,O,H,_.el,_.anchor)},C=({el:_,anchor:B},O,H)=>{let W;for(;_&&_!==B;)W=v(_),a(_,O,H),_=W;a(B,O,H)},A=({el:_,anchor:B})=>{let O;for(;_&&_!==B;)O=v(_),l(_),_=O;l(B)},x=(_,B,O,H,W,re,oe,ce,se)=>{B.type==="svg"?oe="svg":B.type==="math"&&(oe="mathml"),_==null?k(B,O,H,W,re,oe,ce,se):w(_,B,W,re,oe,ce,se)},k=(_,B,O,H,W,re,oe,ce)=>{let se,ae;const{props:pe,shapeFlag:xe,transition:ke,dirs:Ee}=_;if(se=_.el=i(_.type,re,pe&&pe.is,pe),xe&8?c(se,_.children):xe&16&&T(_.children,se,null,H,W,Ar(_,re),oe,ce),Ee&&ga(_,null,H,"created"),V(se,_,_.scopeId,oe,H),pe){for(const Je in pe)Je!=="value"&&!Ml(Je)&&o(se,Je,null,pe[Je],re,_.children,H,W,K);"value"in pe&&o(se,"value",null,pe.value,re),(ae=pe.onVnodeBeforeMount)&&pn(ae,H,_)}Ee&&ga(_,null,H,"beforeMount");const Le=lS(W,ke);Le&&ke.beforeEnter(se),a(se,B,O),((ae=pe&&pe.onVnodeMounted)||Le||Ee)&&Ft(()=>{ae&&pn(ae,H,_),Le&&ke.enter(se),Ee&&ga(_,null,H,"mounted")},W)},V=(_,B,O,H,W)=>{if(O&&m(_,O),H)for(let re=0;re{for(let ae=se;ae<_.length;ae++){const pe=_[ae]=ce?aa(_[ae]):cn(_[ae]);h(null,pe,B,O,H,W,re,oe,ce)}},w=(_,B,O,H,W,re,oe)=>{const ce=B.el=_.el;let{patchFlag:se,dynamicChildren:ae,dirs:pe}=B;se|=_.patchFlag&16;const xe=_.props||Ze,ke=B.props||Ze;let Ee;if(O&&ya(O,!1),(Ee=ke.onVnodeBeforeUpdate)&&pn(Ee,O,B,_),pe&&ga(B,_,O,"beforeUpdate"),O&&ya(O,!0),ae?P(_.dynamicChildren,ae,ce,O,H,Ar(B,W),re):oe||$(_,B,ce,null,O,H,Ar(B,W),re,!1),se>0){if(se&16)E(ce,B,xe,ke,O,H,W);else if(se&2&&xe.class!==ke.class&&o(ce,"class",null,ke.class,W),se&4&&o(ce,"style",xe.style,ke.style,W),se&8){const Le=B.dynamicProps;for(let Je=0;Je{Ee&&pn(Ee,O,B,_),pe&&ga(B,_,O,"updated")},H)},P=(_,B,O,H,W,re,oe)=>{for(let ce=0;ce{if(O!==H){if(O!==Ze)for(const ce in O)!Ml(ce)&&!(ce in H)&&o(_,ce,O[ce],null,oe,B.children,W,re,K);for(const ce in H){if(Ml(ce))continue;const se=H[ce],ae=O[ce];se!==ae&&ce!=="value"&&o(_,ce,ae,se,oe,B.children,W,re,K)}"value"in H&&o(_,"value",O.value,H.value,oe)}},I=(_,B,O,H,W,re,oe,ce,se)=>{const ae=B.el=_?_.el:r(""),pe=B.anchor=_?_.anchor:r("");let{patchFlag:xe,dynamicChildren:ke,slotScopeIds:Ee}=B;Ee&&(ce=ce?ce.concat(Ee):Ee),_==null?(a(ae,O,H),a(pe,O,H),T(B.children||[],O,pe,W,re,oe,ce,se)):xe>0&&xe&64&&ke&&_.dynamicChildren?(P(_.dynamicChildren,ke,O,W,re,oe,ce),(B.key!=null||W&&B===W.subTree)&&Eu(_,B,!0)):$(_,B,O,pe,W,re,oe,ce,se)},R=(_,B,O,H,W,re,oe,ce,se)=>{B.slotScopeIds=ce,_==null?B.shapeFlag&512?W.ctx.activate(B,O,H,oe,se):F(B,O,H,W,re,oe,se):z(_,B,se)},F=(_,B,O,H,W,re,oe)=>{const ce=_.component=SS(_,H,W);if(Fi(_)&&(ce.ctx.renderer=G),wS(ce),ce.asyncDep){if(W&&W.registerDep(ce,q,oe),!_.el){const se=ce.subTree=d(At);p(null,se,B,O)}}else q(ce,_,B,O,W,re,oe)},z=(_,B,O)=>{const H=B.component=_.component;if(Pp(_,B,O))if(H.asyncDep&&!H.asyncResolved){ee(H,B,O);return}else H.next=B,wp(H.update),H.effect.dirty=!0,H.update();else B.el=_.el,H.vnode=B},q=(_,B,O,H,W,re,oe)=>{const ce=()=>{if(_.isMounted){let{next:pe,bu:xe,u:ke,parent:Ee,vnode:Le}=_;{const qa=vm(_);if(qa){pe&&(pe.el=Le.el,ee(_,pe,oe)),qa.asyncDep.then(()=>{_.isUnmounted||ce()});return}}let Je=pe,je;ya(_,!1),pe?(pe.el=Le.el,ee(_,pe,oe)):pe=Le,xe&&Qo(xe),(je=pe.props&&pe.props.onVnodeBeforeUpdate)&&pn(je,Ee,pe,Le),ya(_,!0);const pt=Tr(_),un=_.subTree;_.subTree=pt,h(un,pt,f(un.el),D(un),_,W,re),pe.el=pt.el,Je===null&&wu(_,pt.el),ke&&Ft(ke,W),(je=pe.props&&pe.props.onVnodeUpdated)&&Ft(()=>pn(je,Ee,pe,Le),W)}else{let pe;const{el:xe,props:ke}=B,{bm:Ee,m:Le,parent:Je}=_,je=ti(B);if(ya(_,!1),Ee&&Qo(Ee),!je&&(pe=ke&&ke.onVnodeBeforeMount)&&pn(pe,Je,B),ya(_,!0),xe&&Q){const pt=()=>{_.subTree=Tr(_),Q(xe,_.subTree,_,W,null)};je?B.type.__asyncLoader().then(()=>!_.isUnmounted&&pt()):pt()}else{const pt=_.subTree=Tr(_);h(null,pt,O,H,_,W,re),B.el=pt.el}if(Le&&Ft(Le,W),!je&&(pe=ke&&ke.onVnodeMounted)){const pt=B;Ft(()=>pn(pe,Je,pt),W)}(B.shapeFlag&256||Je&&ti(Je.vnode)&&Je.vnode.shapeFlag&256)&&_.a&&Ft(_.a,W),_.isMounted=!0,B=O=H=null}},se=_.effect=new fu(ce,Jt,()=>Su(ae),_.scope),ae=_.update=()=>{se.dirty&&se.run()};ae.id=_.uid,ya(_,!0),ae()},ee=(_,B,O)=>{B.component=_;const H=_.vnode.props;_.vnode=B,_.next=null,Zp(_,B.props,H,O),tS(_,B.children,O),ca(),ad(_),da()},$=(_,B,O,H,W,re,oe,ce,se=!1)=>{const ae=_&&_.children,pe=_?_.shapeFlag:0,xe=B.children,{patchFlag:ke,shapeFlag:Ee}=B;if(ke>0){if(ke&128){M(ae,xe,O,H,W,re,oe,ce,se);return}else if(ke&256){Z(ae,xe,O,H,W,re,oe,ce,se);return}}Ee&8?(pe&16&&K(ae,W,re),xe!==ae&&c(O,xe)):pe&16?Ee&16?M(ae,xe,O,H,W,re,oe,ce,se):K(ae,W,re,!0):(pe&8&&c(O,""),Ee&16&&T(xe,O,H,W,re,oe,ce,se))},Z=(_,B,O,H,W,re,oe,ce,se)=>{_=_||al,B=B||al;const ae=_.length,pe=B.length,xe=Math.min(ae,pe);let ke;for(ke=0;kepe?K(_,W,re,!0,!1,xe):T(B,O,H,W,re,oe,ce,se,xe)},M=(_,B,O,H,W,re,oe,ce,se)=>{let ae=0;const pe=B.length;let xe=_.length-1,ke=pe-1;for(;ae<=xe&&ae<=ke;){const Ee=_[ae],Le=B[ae]=se?aa(B[ae]):cn(B[ae]);if(kn(Ee,Le))h(Ee,Le,O,null,W,re,oe,ce,se);else break;ae++}for(;ae<=xe&&ae<=ke;){const Ee=_[xe],Le=B[ke]=se?aa(B[ke]):cn(B[ke]);if(kn(Ee,Le))h(Ee,Le,O,null,W,re,oe,ce,se);else break;xe--,ke--}if(ae>xe){if(ae<=ke){const Ee=ke+1,Le=Eeke)for(;ae<=xe;)ne(_[ae],W,re,!0),ae++;else{const Ee=ae,Le=ae,Je=new Map;for(ae=Le;ae<=ke;ae++){const jt=B[ae]=se?aa(B[ae]):cn(B[ae]);jt.key!=null&&Je.set(jt.key,ae)}let je,pt=0;const un=ke-Le+1;let qa=!1,Uc=0;const Tl=new Array(un);for(ae=0;ae=un){ne(jt,W,re,!0);continue}let bn;if(jt.key!=null)bn=Je.get(jt.key);else for(je=Le;je<=ke;je++)if(Tl[je-Le]===0&&kn(jt,B[je])){bn=je;break}bn===void 0?ne(jt,W,re,!0):(Tl[bn-Le]=ae+1,bn>=Uc?Uc=bn:qa=!0,h(jt,B[bn],O,null,W,re,oe,ce,se),pt++)}const Wc=qa?oS(Tl):al;for(je=Wc.length-1,ae=un-1;ae>=0;ae--){const jt=Le+ae,bn=B[jt],Gc=jt+1{const{el:re,type:oe,transition:ce,children:se,shapeFlag:ae}=_;if(ae&6){U(_.component.subTree,B,O,H);return}if(ae&128){_.suspense.move(B,O,H);return}if(ae&64){oe.move(_,B,O,G);return}if(oe===ge){a(re,B,O);for(let xe=0;xece.enter(re),W);else{const{leave:xe,delayLeave:ke,afterLeave:Ee}=ce,Le=()=>a(re,B,O),Je=()=>{xe(re,()=>{Le(),Ee&&Ee()})};ke?ke(re,Le,Je):Je()}else a(re,B,O)},ne=(_,B,O,H=!1,W=!1)=>{const{type:re,props:oe,ref:ce,children:se,dynamicChildren:ae,shapeFlag:pe,patchFlag:xe,dirs:ke,memoIndex:Ee}=_;if(ce!=null&&ds(ce,null,O,_,!0),Ee!=null&&(B.renderCache[Ee]=void 0),pe&256){B.ctx.deactivate(_);return}const Le=pe&1&&ke,Je=!ti(_);let je;if(Je&&(je=oe&&oe.onVnodeBeforeUnmount)&&pn(je,B,_),pe&6)ye(_.component,O,H);else{if(pe&128){_.suspense.unmount(O,H);return}Le&&ga(_,null,B,"beforeUnmount"),pe&64?_.type.remove(_,B,O,W,G,H):ae&&(re!==ge||xe>0&&xe&64)?K(ae,B,O,!1,!0):(re===ge&&xe&384||!W&&pe&16)&&K(se,B,O),H&&he(_)}(Je&&(je=oe&&oe.onVnodeUnmounted)||Le)&&Ft(()=>{je&&pn(je,B,_),Le&&ga(_,null,B,"unmounted")},O)},he=_=>{const{type:B,el:O,anchor:H,transition:W}=_;if(B===ge){we(O,H);return}if(B===Rr){A(_);return}const re=()=>{l(O),W&&!W.persisted&&W.afterLeave&&W.afterLeave()};if(_.shapeFlag&1&&W&&!W.persisted){const{leave:oe,delayLeave:ce}=W,se=()=>oe(O,re);ce?ce(_.el,re,se):se()}else re()},we=(_,B)=>{let O;for(;_!==B;)O=v(_),l(_),_=O;l(B)},ye=(_,B,O)=>{const{bum:H,scope:W,update:re,subTree:oe,um:ce,m:se,a:ae}=_;hd(se),hd(ae),H&&Qo(H),W.stop(),re&&(re.active=!1,ne(oe,_,B,O)),ce&&Ft(ce,B),Ft(()=>{_.isUnmounted=!0},B),B&&B.pendingBranch&&!B.isUnmounted&&_.asyncDep&&!_.asyncResolved&&_.suspenseId===B.pendingId&&(B.deps--,B.deps===0&&B.resolve())},K=(_,B,O,H=!1,W=!1,re=0)=>{for(let oe=re;oe<_.length;oe++)ne(_[oe],B,O,H,W)},D=_=>_.shapeFlag&6?D(_.component.subTree):_.shapeFlag&128?_.suspense.next():v(_.anchor||_.el);let ie=!1;const le=(_,B,O)=>{_==null?B._vnode&&ne(B._vnode,null,null,!0):h(B._vnode||null,_,B,null,null,null,O),ie||(ie=!0,ad(),Zv(),ie=!1),B._vnode=_},G={p:h,um:ne,m:U,r:he,mt:F,mc:T,pc:$,pbc:P,n:D,o:e};let be,Q;return{render:le,hydrate:be,createApp:Xp(le,be)}}function Ar({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function ya({effect:e,update:t},n){e.allowRecurse=t.allowRecurse=n}function lS(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Eu(e,t,n=!1){const a=e.children,l=t.children;if(Ce(a)&&Ce(l))for(let o=0;o>1,e[n[r]]0&&(t[a]=n[o-1]),n[o]=a)}}for(o=n.length,i=n[o-1];o-- >0;)n[o]=i,i=t[i];return n}function vm(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:vm(t)}function hd(e){if(e)for(let t=0;tTe(iS);function nt(e,t){return Au(e,null,t)}const Uo={};function de(e,t,n){return Au(e,t,n)}function Au(e,t,{immediate:n,deep:a,flush:l,once:o,onTrack:i,onTrigger:r}=Ze){if(t&&o){const k=t;t=(...V)=>{k(...V),x()}}const s=xt,u=k=>a===!0?k:oa(k,a===!1?1:void 0);let c,f=!1,v=!1;if(rt(e)?(c=()=>e.value,f=fi(e)):Fl(e)?(c=()=>u(e),f=!0):Ce(e)?(v=!0,f=e.some(k=>Fl(k)||fi(k)),c=()=>e.map(k=>{if(rt(k))return k.value;if(Fl(k))return u(k);if(Ie(k))return sa(k,s,2)})):Ie(e)?t?c=()=>sa(e,s,2):c=()=>(m&&m(),en(e,s,3,[g])):c=Jt,t&&a){const k=c;c=()=>oa(k())}let m,g=k=>{m=C.onStop=()=>{sa(k,s,4),m=C.onStop=void 0}},h;if(Ni)if(g=Jt,t?n&&en(t,s,3,[c(),v?[]:void 0,g]):c(),l==="sync"){const k=rS();h=k.__watcherHandles||(k.__watcherHandles=[])}else return Jt;let y=v?new Array(e.length).fill(Uo):Uo;const p=()=>{if(!(!C.active||!C.dirty))if(t){const k=C.run();(a||f||(v?k.some((V,T)=>ua(V,y[T])):ua(k,y)))&&(m&&m(),en(t,s,3,[k,y===Uo?void 0:v&&y[0]===Uo?[]:y,g]),y=k)}else C.run()};p.allowRecurse=!!t;let S;l==="sync"?S=p:l==="post"?S=()=>Ft(p,s&&s.suspense):(p.pre=!0,s&&(p.id=s.uid),S=()=>Su(p));const C=new fu(c,Jt,S),A=Kb(),x=()=>{C.stop(),A&&su(A.effects,C)};return t?n?p():y=C.run():l==="post"?Ft(C.run.bind(C),s&&s.suspense):C.run(),h&&h.push(x),x}function sS(e,t,n){const a=this.proxy,l=it(e)?e.includes(".")?mm(a,e):()=>a[e]:e.bind(a,a);let o;Ie(t)?o=t:(o=t.handler,n=t);const i=Co(this),r=Au(l,o.bind(a),n);return i(),r}function mm(e,t){const n=t.split(".");return()=>{let a=e;for(let l=0;l{oa(a,t,n)});else if(Cv(e)){for(const a in e)oa(e[a],t,n);for(const a of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,a)&&oa(e[a],t,n)}return e}const Fi=e=>e.type.__isKeepAlive;function hm(e,t){ym(e,"a",t)}function gm(e,t){ym(e,"da",t)}function ym(e,t,n=xt){const a=e.__wdc||(e.__wdc=()=>{let l=n;for(;l;){if(l.isDeactivated)return;l=l.parent}return e()});if(Li(t,a,n),n){let l=n.parent;for(;l&&l.parent;)Fi(l.parent.vnode)&&uS(a,t,n,l),l=l.parent}}function uS(e,t,n,a){const l=Li(t,e,a,!0);Pu(()=>{su(a[t],l)},n)}const na=Symbol("_leaveCb"),Wo=Symbol("_enterCb");function bm(){const e={isMounted:!1,isLeaving:!1,isUnmounting:!1,leavingVNodes:new Map};return Vt(()=>{e.isMounted=!0}),Pt(()=>{e.isUnmounting=!0}),e}const Xt=[Function,Array],pm={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:Xt,onEnter:Xt,onAfterEnter:Xt,onEnterCancelled:Xt,onBeforeLeave:Xt,onLeave:Xt,onAfterLeave:Xt,onLeaveCancelled:Xt,onBeforeAppear:Xt,onAppear:Xt,onAfterAppear:Xt,onAppearCancelled:Xt},Sm=e=>{const t=e.subTree;return t.component?Sm(t.component):t},cS={name:"BaseTransition",props:pm,setup(e,{slots:t}){const n=Ou(),a=bm();return()=>{const l=t.default&&Bu(t.default(),!0);if(!l||!l.length)return;let o=l[0];if(l.length>1){for(const v of l)if(v.type!==At){o=v;break}}const i=Ve(e),{mode:r}=i;if(a.isLeaving)return Br(o);const s=gd(o);if(!s)return Br(o);let u=Jl(s,i,a,n,v=>u=v);sl(s,u);const c=n.subTree,f=c&&gd(c);if(f&&f.type!==At&&!kn(s,f)&&Sm(n).type!==At){const v=Jl(f,i,a,n);if(sl(f,v),r==="out-in"&&s.type!==At)return a.isLeaving=!0,v.afterLeave=()=>{a.isLeaving=!1,n.update.active!==!1&&(n.effect.dirty=!0,n.update())},Br(o);r==="in-out"&&s.type!==At&&(v.delayLeave=(m,g,h)=>{const y=wm(a,f);y[String(f.key)]=f,m[na]=()=>{g(),m[na]=void 0,delete u.delayedLeave},u.delayedLeave=h})}return o}}},dS=cS;function wm(e,t){const{leavingVNodes:n}=e;let a=n.get(t.type);return a||(a=Object.create(null),n.set(t.type,a)),a}function Jl(e,t,n,a,l){const{appear:o,mode:i,persisted:r=!1,onBeforeEnter:s,onEnter:u,onAfterEnter:c,onEnterCancelled:f,onBeforeLeave:v,onLeave:m,onAfterLeave:g,onLeaveCancelled:h,onBeforeAppear:y,onAppear:p,onAfterAppear:S,onAppearCancelled:C}=t,A=String(e.key),x=wm(n,e),k=(w,P)=>{w&&en(w,a,9,P)},V=(w,P)=>{const E=P[1];k(w,P),Ce(w)?w.every(I=>I.length<=1)&&E():w.length<=1&&E()},T={mode:i,persisted:r,beforeEnter(w){let P=s;if(!n.isMounted)if(o)P=y||s;else return;w[na]&&w[na](!0);const E=x[A];E&&kn(e,E)&&E.el[na]&&E.el[na](),k(P,[w])},enter(w){let P=u,E=c,I=f;if(!n.isMounted)if(o)P=p||u,E=S||c,I=C||f;else return;let R=!1;const F=w[Wo]=z=>{R||(R=!0,z?k(I,[w]):k(E,[w]),T.delayedLeave&&T.delayedLeave(),w[Wo]=void 0)};P?V(P,[w,F]):F()},leave(w,P){const E=String(e.key);if(w[Wo]&&w[Wo](!0),n.isUnmounting)return P();k(v,[w]);let I=!1;const R=w[na]=F=>{I||(I=!0,P(),F?k(h,[w]):k(g,[w]),w[na]=void 0,x[E]===e&&delete x[E])};x[E]=e,m?V(m,[w,R]):R()},clone(w){const P=Jl(w,t,n,a,l);return l&&l(P),P}};return T}function Br(e){if(Fi(e))return e=Fn(e),e.children=null,e}function gd(e){if(!Fi(e))return e;const{shapeFlag:t,children:n}=e;if(n){if(t&16)return n[0];if(t&32&&Ie(n.default))return n.default()}}function sl(e,t){e.shapeFlag&6&&e.component?sl(e.component.subTree,t):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function Bu(e,t=!1,n){let a=[],l=0;for(let o=0;o1)for(let o=0;oe.__isTeleport,zl=e=>e&&(e.disabled||e.disabled===""),yd=e=>typeof SVGElement<"u"&&e instanceof SVGElement,bd=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,fs=(e,t)=>{const n=e&&e.to;return it(n)?t?t(n):null:n},vS={name:"Teleport",__isTeleport:!0,process(e,t,n,a,l,o,i,r,s,u){const{mc:c,pc:f,pbc:v,o:{insert:m,querySelector:g,createText:h,createComment:y}}=u,p=zl(t.props);let{shapeFlag:S,children:C,dynamicChildren:A}=t;if(e==null){const x=t.el=h(""),k=t.anchor=h("");m(x,n,a),m(k,n,a);const V=t.target=fs(t.props,g),T=t.targetAnchor=h("");V&&(m(T,V),i==="svg"||yd(V)?i="svg":(i==="mathml"||bd(V))&&(i="mathml"));const w=(P,E)=>{S&16&&c(C,P,E,l,o,i,r,s)};p?w(n,k):V&&w(V,T)}else{t.el=e.el;const x=t.anchor=e.anchor,k=t.target=e.target,V=t.targetAnchor=e.targetAnchor,T=zl(e.props),w=T?n:k,P=T?x:V;if(i==="svg"||yd(k)?i="svg":(i==="mathml"||bd(k))&&(i="mathml"),A?(v(e.dynamicChildren,A,w,l,o,i,r),Eu(e,t,!0)):s||f(e,t,w,P,l,o,i,r,!1),p)T?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):Go(t,n,x,u,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const E=t.target=fs(t.props,g);E&&Go(t,E,null,u,0)}else T&&Go(t,k,V,u,1)}km(t)},remove(e,t,n,a,{um:l,o:{remove:o}},i){const{shapeFlag:r,children:s,anchor:u,targetAnchor:c,target:f,props:v}=e;if(f&&o(c),i&&o(u),r&16){const m=i||!zl(v);for(let g=0;g0?Zt||al:null,xm(),ul>0&&Zt&&Zt.push(e),e}function qe(e,t,n,a,l,o){return Cm(me(e,t,n,a,l,o,!0))}function $i(e,t,n,a,l){return Cm(d(e,t,n,a,l,!0))}function Zl(e){return e?e.__v_isVNode===!0:!1}function kn(e,t){return e.type===t.type&&e.key===t.key}const _m=({key:e})=>e??null,ni=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?it(e)||rt(e)||Ie(e)?{i:$t,r:e,k:t,f:!!n}:e:null);function me(e,t=null,n=null,a=0,l=null,o=e===ge?0:1,i=!1,r=!1){const s={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&_m(t),ref:t&&ni(t),scopeId:Di,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetAnchor:null,staticCount:0,shapeFlag:o,patchFlag:a,dynamicProps:l,dynamicChildren:null,appContext:null,ctx:$t};return r?(Ru(s,n),o&128&&e.normalize(s)):n&&(s.shapeFlag|=it(n)?8:16),ul>0&&!i&&Zt&&(s.patchFlag>0||o&6)&&s.patchFlag!==32&&Zt.push(s),s}const d=gS;function gS(e,t=null,n=null,a=0,l=null,o=!1){if((!e||e===Tp)&&(e=At),Zl(e)){const r=Fn(e,t,!0);return n&&Ru(r,n),ul>0&&!o&&Zt&&(r.shapeFlag&6?Zt[Zt.indexOf(e)]=r:Zt.push(r)),r.patchFlag=-2,r}if(VS(e)&&(e=e.__vccOpts),t){t=yS(t);let{class:r,style:s}=t;r&&!it(r)&&(t.class=wo(r)),Ye(s)&&(jv(s)&&!Ce(s)&&(s=ut({},s)),t.style=cu(s))}const i=it(e)?1:Ap(e)?128:fS(e)?64:Ye(e)?4:Ie(e)?2:0;return me(e,t,n,a,l,i,o,!0)}function yS(e){return e?jv(e)||rm(e)?ut({},e):e:null}function Fn(e,t,n=!1,a=!1){const{props:l,ref:o,patchFlag:i,children:r,transition:s}=e,u=t?X(l||{},t):l,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:u,key:u&&_m(u),ref:t&&t.ref?n&&o?Ce(o)?o.concat(ni(t)):[o,ni(t)]:ni(t):o,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:r,target:e.target,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==ge?i===-1?16:i|16:i,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:s,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&Fn(e.ssContent),ssFallback:e.ssFallback&&Fn(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return s&&a&&sl(c,s.clone(c)),c}function mt(e=" ",t=0){return d(xo,null,e,t)}function Ql(e="",t=!1){return t?(ze(),$i(At,null,e)):d(At,null,e)}function cn(e){return e==null||typeof e=="boolean"?d(At):Ce(e)?d(ge,null,e.slice()):typeof e=="object"?aa(e):d(xo,null,String(e))}function aa(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:Fn(e)}function Ru(e,t){let n=0;const{shapeFlag:a}=e;if(t==null)t=null;else if(Ce(t))n=16;else if(typeof t=="object")if(a&65){const l=t.default;l&&(l._c&&(l._d=!1),Ru(e,l()),l._c&&(l._d=!0));return}else{n=32;const l=t._;!l&&!rm(t)?t._ctx=$t:l===3&&$t&&($t.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else Ie(t)?(t={default:t,_ctx:$t},n=32):(t=String(t),a&64?(n=16,t=[mt(t)]):n=8);e.children=t,e.shapeFlag|=n}function X(...e){const t={};for(let n=0;nxt||$t;let gi,vs;{const e=Pv(),t=(n,a)=>{let l;return(l=e[n])||(l=e[n]=[]),l.push(a),o=>{l.length>1?l.forEach(i=>i(o)):l[0](o)}};gi=t("__VUE_INSTANCE_SETTERS__",n=>xt=n),vs=t("__VUE_SSR_SETTERS__",n=>Ni=n)}const Co=e=>{const t=xt;return gi(e),e.scope.on(),()=>{e.scope.off(),gi(t)}},Sd=()=>{xt&&xt.scope.off(),gi(null)};function Vm(e){return e.vnode.shapeFlag&4}let Ni=!1;function wS(e,t=!1){t&&vs(t);const{props:n,children:a}=e.vnode,l=Vm(e);Jp(e,n,l,t),eS(e,a);const o=l?kS(e,t):void 0;return t&&vs(!1),o}function kS(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,jp);const{setup:a}=n;if(a){const l=e.setupContext=a.length>1?CS(e):null,o=Co(e);ca();const i=sa(a,e,0,[e.props,l]);if(da(),o(),kv(i)){if(i.then(Sd,Sd),t)return i.then(r=>{ms(e,r,t)}).catch(r=>{ko(r,e,0)});e.asyncDep=i}else ms(e,i,t)}else Pm(e,t)}function ms(e,t,n){Ie(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:Ye(t)&&(e.setupState=Yv(t)),Pm(e,n)}let wd;function Pm(e,t,n){const a=e.type;if(!e.render){if(!t&&wd&&!a.render){const l=a.template||Iu(e).template;if(l){const{isCustomElement:o,compilerOptions:i}=e.appContext.config,{delimiters:r,compilerOptions:s}=a,u=ut(ut({isCustomElement:o,delimiters:r},i),s);a.render=wd(l,u)}}e.render=a.render||Jt}{const l=Co(e);ca();try{Up(e)}finally{da(),l()}}}const xS={get(e,t){return zt(e,"get",""),e[t]}};function CS(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,xS),slots:e.slots,emit:e.emit,expose:t}}function Hi(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(Yv(Uv(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Nl)return Nl[n](e)},has(t,n){return n in t||n in Nl}})):e.proxy}function _S(e,t=!0){return Ie(e)?e.displayName||e.name:e.name||t&&e.__name}function VS(e){return Ie(e)&&"__vccOpts"in e}const b=(e,t)=>mp(e,t,Ni);function mn(e,t,n){const a=arguments.length;return a===2?Ye(t)&&!Ce(t)?Zl(t)?d(e,null,[t]):d(e,t):d(e,null,t):(a>3?n=Array.prototype.slice.call(arguments,2):a===3&&Zl(n)&&(n=[n]),d(e,t,n))}const PS="3.4.29";/** +* @vue/runtime-dom v3.4.29 +* (c) 2018-present Yuxi (Evan) You and Vue contributors +* @license MIT +**/const IS="http://www.w3.org/2000/svg",TS="http://www.w3.org/1998/Math/MathML",On=typeof document<"u"?document:null,kd=On&&On.createElement("template"),ES={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,a)=>{const l=t==="svg"?On.createElementNS(IS,e):t==="mathml"?On.createElementNS(TS,e):n?On.createElement(e,{is:n}):On.createElement(e);return e==="select"&&a&&a.multiple!=null&&l.setAttribute("multiple",a.multiple),l},createText:e=>On.createTextNode(e),createComment:e=>On.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>On.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,a,l,o){const i=n?n.previousSibling:t.lastChild;if(l&&(l===o||l.nextSibling))for(;t.insertBefore(l.cloneNode(!0),n),!(l===o||!(l=l.nextSibling)););else{kd.innerHTML=a==="svg"?`${e}`:a==="mathml"?`${e}`:e;const r=kd.content;if(a==="svg"||a==="mathml"){const s=r.firstChild;for(;s.firstChild;)r.appendChild(s.firstChild);r.removeChild(s)}t.insertBefore(r,n)}return[i?i.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Jn="transition",El="animation",cl=Symbol("_vtc"),Cn=(e,{slots:t})=>mn(dS,Tm(e),t);Cn.displayName="Transition";const Im={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},AS=Cn.props=ut({},pm,Im),ba=(e,t=[])=>{Ce(e)?e.forEach(n=>n(...t)):e&&e(...t)},xd=e=>e?Ce(e)?e.some(t=>t.length>1):e.length>1:!1;function Tm(e){const t={};for(const I in e)I in Im||(t[I]=e[I]);if(e.css===!1)return t;const{name:n="v",type:a,duration:l,enterFromClass:o=`${n}-enter-from`,enterActiveClass:i=`${n}-enter-active`,enterToClass:r=`${n}-enter-to`,appearFromClass:s=o,appearActiveClass:u=i,appearToClass:c=r,leaveFromClass:f=`${n}-leave-from`,leaveActiveClass:v=`${n}-leave-active`,leaveToClass:m=`${n}-leave-to`}=e,g=BS(l),h=g&&g[0],y=g&&g[1],{onBeforeEnter:p,onEnter:S,onEnterCancelled:C,onLeave:A,onLeaveCancelled:x,onBeforeAppear:k=p,onAppear:V=S,onAppearCancelled:T=C}=t,w=(I,R,F)=>{ea(I,R?c:r),ea(I,R?u:i),F&&F()},P=(I,R)=>{I._isLeaving=!1,ea(I,f),ea(I,m),ea(I,v),R&&R()},E=I=>(R,F)=>{const z=I?V:S,q=()=>w(R,I,F);ba(z,[R,q]),Cd(()=>{ea(R,I?s:o),Rn(R,I?c:r),xd(z)||_d(R,a,h,q)})};return ut(t,{onBeforeEnter(I){ba(p,[I]),Rn(I,o),Rn(I,i)},onBeforeAppear(I){ba(k,[I]),Rn(I,s),Rn(I,u)},onEnter:E(!1),onAppear:E(!0),onLeave(I,R){I._isLeaving=!0;const F=()=>P(I,R);Rn(I,f),Rn(I,v),Am(),Cd(()=>{I._isLeaving&&(ea(I,f),Rn(I,m),xd(A)||_d(I,a,y,F))}),ba(A,[I,F])},onEnterCancelled(I){w(I,!1),ba(C,[I])},onAppearCancelled(I){w(I,!0),ba(T,[I])},onLeaveCancelled(I){P(I),ba(x,[I])}})}function BS(e){if(e==null)return null;if(Ye(e))return[Or(e.enter),Or(e.leave)];{const t=Or(e);return[t,t]}}function Or(e){return Vv(e)}function Rn(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[cl]||(e[cl]=new Set)).add(t)}function ea(e,t){t.split(/\s+/).forEach(a=>a&&e.classList.remove(a));const n=e[cl];n&&(n.delete(t),n.size||(e[cl]=void 0))}function Cd(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let RS=0;function _d(e,t,n,a){const l=e._endId=++RS,o=()=>{l===e._endId&&a()};if(n)return setTimeout(o,n);const{type:i,timeout:r,propCount:s}=Em(e,t);if(!i)return a();const u=i+"end";let c=0;const f=()=>{e.removeEventListener(u,v),o()},v=m=>{m.target===e&&++c>=s&&f()};setTimeout(()=>{c(n[g]||"").split(", "),l=a(`${Jn}Delay`),o=a(`${Jn}Duration`),i=Vd(l,o),r=a(`${El}Delay`),s=a(`${El}Duration`),u=Vd(r,s);let c=null,f=0,v=0;t===Jn?i>0&&(c=Jn,f=i,v=o.length):t===El?u>0&&(c=El,f=u,v=s.length):(f=Math.max(i,u),c=f>0?i>u?Jn:El:null,v=c?c===Jn?o.length:s.length:0);const m=c===Jn&&/\b(transform|all)(,|$)/.test(a(`${Jn}Property`).toString());return{type:c,timeout:f,propCount:v,hasTransform:m}}function Vd(e,t){for(;e.lengthPd(n)+Pd(e[a])))}function Pd(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function Am(){return document.body.offsetHeight}function OS(e,t,n){const a=e[cl];a&&(t=(t?[t,...a]:[...a]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const yi=Symbol("_vod"),Bm=Symbol("_vsh"),hn={beforeMount(e,{value:t},{transition:n}){e[yi]=e.style.display==="none"?"":e.style.display,n&&t?n.beforeEnter(e):Al(e,t)},mounted(e,{value:t},{transition:n}){n&&t&&n.enter(e)},updated(e,{value:t,oldValue:n},{transition:a}){!t!=!n&&(a?t?(a.beforeEnter(e),Al(e,!0),a.enter(e)):a.leave(e,()=>{Al(e,!1)}):Al(e,t))},beforeUnmount(e,{value:t}){Al(e,t)}};function Al(e,t){e.style.display=t?e[yi]:"none",e[Bm]=!t}const DS=Symbol(""),LS=/(^|;)\s*display\s*:/;function MS(e,t,n){const a=e.style,l=it(n);let o=!1;if(n&&!l){if(t)if(it(t))for(const i of t.split(";")){const r=i.slice(0,i.indexOf(":")).trim();n[r]==null&&ai(a,r,"")}else for(const i in t)n[i]==null&&ai(a,i,"");for(const i in n)i==="display"&&(o=!0),ai(a,i,n[i])}else if(l){if(t!==n){const i=a[DS];i&&(n+=";"+i),a.cssText=n,o=LS.test(n)}}else t&&e.removeAttribute("style");yi in e&&(e[yi]=o?a.display:"",e[Bm]&&(a.display="none"))}const Id=/\s*!important$/;function ai(e,t,n){if(Ce(n))n.forEach(a=>ai(e,t,a));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const a=FS(e,t);Id.test(n)?e.setProperty(pl(a),n.replace(Id,""),"important"):e[a]=n}}const Td=["Webkit","Moz","ms"],Dr={};function FS(e,t){const n=Dr[t];if(n)return n;let a=nn(t);if(a!=="filter"&&a in e)return Dr[t]=a;a=Vn(a);for(let l=0;lLr||(jS.then(()=>Lr=0),Lr=Date.now());function WS(e,t){const n=a=>{if(!a._vts)a._vts=Date.now();else if(a._vts<=n.attached)return;en(GS(a,n.value),t,5,[a])};return n.value=e,n.attached=US(),n}function GS(e,t){if(Ce(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(a=>l=>!l._stopped&&a&&a(l))}else return t}const Od=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,KS=(e,t,n,a,l,o,i,r,s)=>{const u=l==="svg";t==="class"?OS(e,a,u):t==="style"?MS(e,n,a):Ei(t)?ru(t)||HS(e,t,n,a,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):YS(e,t,a,u))?($S(e,t,a,o,i,r,s),(t==="value"||t==="checked"||t==="selected")&&Ad(e,t,a,u,i,t!=="value")):(t==="true-value"?e._trueValue=a:t==="false-value"&&(e._falseValue=a),Ad(e,t,a,u))};function YS(e,t,n,a){if(a)return!!(t==="innerHTML"||t==="textContent"||t in e&&Od(t)&&Ie(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const l=e.tagName;if(l==="IMG"||l==="VIDEO"||l==="CANVAS"||l==="SOURCE")return!1}return Od(t)&&it(n)?!1:t in e}const Rm=new WeakMap,Om=new WeakMap,bi=Symbol("_moveCb"),Dd=Symbol("_enterCb"),Dm={name:"TransitionGroup",props:ut({},AS,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Ou(),a=bm();let l,o;return Vu(()=>{if(!l.length)return;const i=e.moveClass||`${e.name||"v"}-move`;if(!QS(l[0].el,n.vnode.el,i))return;l.forEach(XS),l.forEach(JS);const r=l.filter(ZS);Am(),r.forEach(s=>{const u=s.el,c=u.style;Rn(u,i),c.transform=c.webkitTransform=c.transitionDuration="";const f=u[bi]=v=>{v&&v.target!==u||(!v||/transform$/.test(v.propertyName))&&(u.removeEventListener("transitionend",f),u[bi]=null,ea(u,i))};u.addEventListener("transitionend",f)})}),()=>{const i=Ve(e),r=Tm(i);let s=i.tag||ge;if(l=[],o)for(let u=0;udelete e.mode;Dm.props;const Du=Dm;function XS(e){const t=e.el;t[bi]&&t[bi](),t[Dd]&&t[Dd]()}function JS(e){Om.set(e,e.el.getBoundingClientRect())}function ZS(e){const t=Rm.get(e),n=Om.get(e),a=t.left-n.left,l=t.top-n.top;if(a||l){const o=e.el.style;return o.transform=o.webkitTransform=`translate(${a}px,${l}px)`,o.transitionDuration="0s",e}}function QS(e,t,n){const a=e.cloneNode(),l=e[cl];l&&l.forEach(r=>{r.split(/\s+/).forEach(s=>s&&a.classList.remove(s))}),n.split(/\s+/).forEach(r=>r&&a.classList.add(r)),a.style.display="none";const o=t.nodeType===1?t:t.parentNode;o.appendChild(a);const{hasTransform:i}=Em(a);return o.removeChild(a),i}const pi=e=>{const t=e.props["onUpdate:modelValue"]||!1;return Ce(t)?n=>Qo(t,n):t};function e0(e){e.target.composing=!0}function Ld(e){const t=e.target;t.composing&&(t.composing=!1,t.dispatchEvent(new Event("input")))}const rl=Symbol("_assign"),li={created(e,{modifiers:{lazy:t,trim:n,number:a}},l){e[rl]=pi(l);const o=a||l.props&&l.props.type==="number";ka(e,t?"change":"input",i=>{if(i.target.composing)return;let r=e.value;n&&(r=r.trim()),o&&(r=es(r)),e[rl](r)}),n&&ka(e,"change",()=>{e.value=e.value.trim()}),t||(ka(e,"compositionstart",e0),ka(e,"compositionend",Ld),ka(e,"change",Ld))},mounted(e,{value:t}){e.value=t??""},beforeUpdate(e,{value:t,oldValue:n,modifiers:{lazy:a,trim:l,number:o}},i){if(e[rl]=pi(i),e.composing)return;const r=(o||e.type==="number")&&!/^0\d/.test(e.value)?es(e.value):e.value,s=t??"";r!==s&&(document.activeElement===e&&e.type!=="range"&&(a&&t===n||l&&e.value.trim()===s)||(e.value=s))}},Md={created(e,{value:t},n){e.checked=ci(t,n.props.value),e[rl]=pi(n),ka(e,"change",()=>{e[rl](t0(e))})},beforeUpdate(e,{value:t,oldValue:n},a){e[rl]=pi(a),t!==n&&(e.checked=ci(t,a.props.value))}};function t0(e){return"_value"in e?e._value:e.value}const n0=["ctrl","shift","alt","meta"],a0={stop:e=>e.stopPropagation(),prevent:e=>e.preventDefault(),self:e=>e.target!==e.currentTarget,ctrl:e=>!e.ctrlKey,shift:e=>!e.shiftKey,alt:e=>!e.altKey,meta:e=>!e.metaKey,left:e=>"button"in e&&e.button!==0,middle:e=>"button"in e&&e.button!==1,right:e=>"button"in e&&e.button!==2,exact:(e,t)=>n0.some(n=>e[`${n}Key`]&&!t.includes(n))},eo=(e,t)=>{const n=e._withMods||(e._withMods={}),a=t.join(".");return n[a]||(n[a]=(l,...o)=>{for(let i=0;i{Lm().render(...e)},o0=(...e)=>{const t=Lm().createApp(...e),{mount:n}=t;return t.mount=a=>{const l=r0(a);if(!l)return;const o=t._component;!Ie(o)&&!o.render&&!o.template&&(o.template=l.innerHTML),l.innerHTML="";const i=n(l,!1,i0(l));return l instanceof Element&&(l.removeAttribute("v-cloak"),l.setAttribute("data-v-app","")),i},t};function i0(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function r0(e){return it(e)?document.querySelector(e):e}const Pn=(e,t)=>{const n=e.__vccOpts||e;for(const[a,l]of t)n[a]=l;return n},s0={name:"BaseFooter"},u0=e=>(jn("data-v-279a36c3"),e=e(),Un(),e),c0={class:"footer"},d0=u0(()=>me("p",null,"© 2024. Baexxbin. Inc. All rights reserved",-1)),f0=[d0];function v0(e,t,n,a,l,o){return ze(),qe("footer",c0,f0)}const m0=Pn(s0,[["render",v0],["__scopeId","data-v-279a36c3"]]),h0="/assets/CatLogo-DWgZBMUX.jpg",g0={name:"BaseHeader",data(){return{userId:"",userName:"",userLevel:"",userPoint:""}},computed:{logged(){return`${this.userName} (${this.userId})님 [Level:${this.userLevel}, Point:${this.userPoint}]`}},methods:{fetchSessionData(){axios.get("/api/session").then(e=>{const t=e.data;this.userId=t.userid||"",this.userName=t.username||"",this.userLevel=t.userlevel||"",this.userPoint=t.userpoint||""}).catch(e=>{console.error("세션 데이터를 가져오는 중 오류 발생:",e)})}},mounted(){this.fetchSessionData()}},Lu=e=>(jn("data-v-cc3498fb"),e=e(),Un(),e),y0={align:"right",class:"logn"},b0=Lu(()=>me("a",{href:"logout.php"},"로그아웃",-1)),p0=Lu(()=>me("div",{class:"text-center"},[me("img",{src:h0,class:"logo",alt:"Logo"})],-1)),S0=Lu(()=>me("div",null,[me("h1",null,"BucketList")],-1)),w0={class:"gnb-menu"};function k0(e,t,n,a,l,o){const i=$l("router-link");return ze(),qe("div",null,[me("div",y0,[l.userId?(ze(),qe(ge,{key:1},[me("a",null,It(o.logged),1),b0,d(i,{to:"/ModifyMember"},{default:Re(()=>[mt("정보 수정")]),_:1})],64)):(ze(),qe(ge,{key:0},[d(i,{to:"/Login"},{default:Re(()=>[mt("로그인")]),_:1}),d(i,{to:"/JoinMember"},{default:Re(()=>[mt("회원가입")]),_:1})],64))]),p0,S0,me("nav",w0,[d(i,{to:"/"},{default:Re(()=>[mt("홈🏠")]),_:1}),d(i,{to:"/BoardList"},{default:Re(()=>[mt("버킷리스트 둘러보기👀")]),_:1}),d(i,{to:"/CreateBucket"},{default:Re(()=>[mt("버킷리스트 추가하기🛒")]),_:1}),d(i,{to:"/MyBucket"},{default:Re(()=>[mt("나의 버킷리스트📃")]),_:1})])])}const x0=Pn(g0,[["render",k0],["__scopeId","data-v-cc3498fb"]]);function L(e,t){return n=>Object.keys(e).reduce((a,l)=>{const i=typeof e[l]=="object"&&e[l]!=null&&!Array.isArray(e[l])?e[l]:{type:e[l]};return n&&l in n?a[l]={...i,default:n[l]}:a[l]=i,t&&!a[l].source&&(a[l].source=t),a},{})}const ve=L({class:[String,Array,Object],style:{type:[String,Array,Object],default:null}},"component"),He=typeof window<"u",Mu=He&&"IntersectionObserver"in window,C0=He&&("ontouchstart"in window||window.navigator.maxTouchPoints>0),$d=He&&"EyeDropper"in window;function Nd(e,t,n){_0(e,t),t.set(e,n)}function _0(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function V0(e,t,n){return e.set(Fm(e,t),n),n}function pa(e,t){return e.get(Fm(e,t))}function Fm(e,t,n){if(typeof e=="function"?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function $m(e,t,n){const a=t.length-1;if(a<0)return e===void 0?n:e;for(let l=0;lIn(e[a],t[a]))}function to(e,t,n){return e==null||!t||typeof t!="string"?n:e[t]!==void 0?e[t]:(t=t.replace(/\[(\w+)\]/g,".$1"),t=t.replace(/^\./,""),$m(e,t.split("."),n))}function dt(e,t,n){if(t===!0)return e===void 0?n:e;if(t==null||typeof t=="boolean")return n;if(e!==Object(e)){if(typeof t!="function")return n;const l=t(e,n);return typeof l>"u"?n:l}if(typeof t=="string")return to(e,t,n);if(Array.isArray(t))return $m(e,t,n);if(typeof t!="function")return n;const a=t(e,n);return typeof a>"u"?n:a}function xn(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return Array.from({length:e},(n,a)=>t+a)}function fe(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"px";if(!(e==null||e===""))return isNaN(+e)?String(e):isFinite(+e)?`${Number(e)}${t}`:void 0}function no(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function Fu(e){if(e&&"$el"in e){const t=e.$el;return(t==null?void 0:t.nodeType)===Node.TEXT_NODE?t.nextElementSibling:t}return e}const Hd=Object.freeze({enter:13,tab:9,delete:46,esc:27,space:32,up:38,down:40,left:37,right:39,end:35,home:36,del:46,backspace:8,insert:45,pageup:33,pagedown:34,shift:16}),hs=Object.freeze({enter:"Enter",tab:"Tab",delete:"Delete",esc:"Escape",space:"Space",up:"ArrowUp",down:"ArrowDown",left:"ArrowLeft",right:"ArrowRight",end:"End",home:"Home",del:"Delete",backspace:"Backspace",insert:"Insert",pageup:"PageUp",pagedown:"PageDown",shift:"Shift"});function Nm(e){return Object.keys(e)}function xa(e,t){return t.every(n=>e.hasOwnProperty(n))}function Hm(e,t){const n={},a=new Set(Object.keys(e));for(const l of t)a.has(l)&&(n[l]=e[l]);return n}function gs(e,t,n){const a=Object.create(null),l=Object.create(null);for(const o in e)t.some(i=>i instanceof RegExp?i.test(o):i===o)&&!(n!=null&&n.some(i=>i===o))?a[o]=e[o]:l[o]=e[o];return[a,l]}function ct(e,t){const n={...e};return t.forEach(a=>delete n[a]),n}function zi(e,t){const n={};return t.forEach(a=>n[a]=e[a]),n}const zm=/^on[^a-z]/,ji=e=>zm.test(e),P0=["onAfterscriptexecute","onAnimationcancel","onAnimationend","onAnimationiteration","onAnimationstart","onAuxclick","onBeforeinput","onBeforescriptexecute","onChange","onClick","onCompositionend","onCompositionstart","onCompositionupdate","onContextmenu","onCopy","onCut","onDblclick","onFocusin","onFocusout","onFullscreenchange","onFullscreenerror","onGesturechange","onGestureend","onGesturestart","onGotpointercapture","onInput","onKeydown","onKeypress","onKeyup","onLostpointercapture","onMousedown","onMousemove","onMouseout","onMouseover","onMouseup","onMousewheel","onPaste","onPointercancel","onPointerdown","onPointerenter","onPointerleave","onPointermove","onPointerout","onPointerover","onPointerup","onReset","onSelect","onSubmit","onTouchcancel","onTouchend","onTouchmove","onTouchstart","onTransitioncancel","onTransitionend","onTransitionrun","onTransitionstart","onWheel"],I0=["ArrowUp","ArrowDown","ArrowRight","ArrowLeft","Enter","Escape","Tab"," "];function T0(e){return e.isComposing&&I0.includes(e.key)}function fa(e){const[t,n]=gs(e,[zm]),a=ct(t,P0),[l,o]=gs(n,["class","style","id",/^data-/]);return Object.assign(l,t),Object.assign(o,a),[l,o]}function Qe(e){return e==null?[]:Array.isArray(e)?e:[e]}function E0(e,t){let n=0;const a=function(){for(var l=arguments.length,o=new Array(l),i=0;ie(...o),st(t))};return a.clear=()=>{clearTimeout(n)},a.immediate=e,a}function ot(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:1;return Math.max(t,Math.min(n,e))}function zd(e){const t=e.toString().trim();return t.includes(".")?t.length-t.indexOf(".")-1:0}function jd(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"0";return e+n.repeat(Math.max(0,t-e.length))}function Ud(e,t){return(arguments.length>2&&arguments[2]!==void 0?arguments[2]:"0").repeat(Math.max(0,t-e.length))+e}function A0(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1;const n=[];let a=0;for(;a1&&arguments[1]!==void 0?arguments[1]:1e3;if(e=t&&a0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0;const a={};for(const l in e)a[l]=e[l];for(const l in t){const o=e[l],i=t[l];if(no(o)&&no(i)){a[l]=Bt(o,i,n);continue}if(Array.isArray(o)&&Array.isArray(i)&&n){a[l]=n(o,i);continue}a[l]=i}return a}function jm(e){return e.map(t=>t.type===ge?jm(t.children):t).flat()}function Pa(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";if(Pa.cache.has(e))return Pa.cache.get(e);const t=e.replace(/[^a-z]/gi,"-").replace(/\B([A-Z])/g,"-$1").toLowerCase();return Pa.cache.set(e,t),t}Pa.cache=new Map;function tl(e,t){if(!t||typeof t!="object")return[];if(Array.isArray(t))return t.map(n=>tl(e,n)).flat(1);if(t.suspense)return tl(e,t.ssContent);if(Array.isArray(t.children))return t.children.map(n=>tl(e,n)).flat(1);if(t.component){if(Object.getOwnPropertySymbols(t.component.provides).includes(e))return[t.component];if(t.component.subTree)return tl(e,t.component.subTree).flat(1)}return[]}var Ko=new WeakMap,Xa=new WeakMap;class B0{constructor(t){Nd(this,Ko,[]),Nd(this,Xa,0),this.size=t}push(t){pa(Ko,this)[pa(Xa,this)]=t,V0(Xa,this,(pa(Xa,this)+1)%this.size)}values(){return pa(Ko,this).slice(pa(Xa,this)).concat(pa(Ko,this).slice(0,pa(Xa,this)))}}function R0(e){return"touches"in e?{clientX:e.touches[0].clientX,clientY:e.touches[0].clientY}:{clientX:e.clientX,clientY:e.clientY}}function $u(e){const t=Tt({}),n=b(e);return nt(()=>{for(const a in n.value)t[a]=n.value[a]},{flush:"sync"}),Ri(t)}function Si(e,t){return e.includes(t)}function Um(e){return e[2].toLowerCase()+e.slice(3)}const St=()=>[Function,Array];function Gd(e,t){return t="on"+Vn(t),!!(e[t]||e[`${t}Once`]||e[`${t}Capture`]||e[`${t}OnceCapture`]||e[`${t}CaptureOnce`])}function Nu(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a1&&arguments[1]!==void 0?arguments[1]:!0;const n=["button","[href]",'input:not([type="hidden"])',"select","textarea","[tabindex]"].map(a=>`${a}${t?':not([tabindex="-1"])':""}:not([disabled])`).join(", ");return[...e.querySelectorAll(n)]}function Wm(e,t,n){let a,l=e.indexOf(document.activeElement);const o=t==="next"?1:-1;do l+=o,a=e[l];while((!a||a.offsetParent==null||!((n==null?void 0:n(a))??!0))&&l=0);return a}function dl(e,t){var a,l,o,i;const n=ao(e);if(!t)(e===document.activeElement||!e.contains(document.activeElement))&&((a=n[0])==null||a.focus());else if(t==="first")(l=n[0])==null||l.focus();else if(t==="last")(o=n.at(-1))==null||o.focus();else if(typeof t=="number")(i=n[t])==null||i.focus();else{const r=Wm(n,t);r?r.focus():dl(e,t==="next"?"first":"last")}}function Yo(e){return e==null||typeof e=="string"&&e.trim()===""}function Gm(){}function fl(e,t){if(!(He&&typeof CSS<"u"&&typeof CSS.supports<"u"&&CSS.supports(`selector(${t})`)))return null;try{return!!e&&e.matches(t)}catch{return null}}function Ui(e){return e.some(t=>Zl(t)?t.type===At?!1:t.type!==ge||Ui(t.children):!0)?e:null}function O0(e,t){if(!He||e===0)return t(),()=>{};const n=window.setTimeout(t,e);return()=>window.clearTimeout(n)}function Kd(e,t){const n=ue();return nt(()=>{n.value=e()},{flush:"sync",...t}),Sl(n)}function D0(e,t){const n=e.clientX,a=e.clientY,l=t.getBoundingClientRect(),o=l.left,i=l.top,r=l.right,s=l.bottom;return n>=o&&n<=r&&a>=i&&a<=s}function wi(){const e=ue(),t=n=>{e.value=n};return Object.defineProperty(t,"value",{enumerable:!0,get:()=>e.value,set:n=>e.value=n}),Object.defineProperty(t,"el",{enumerable:!0,get:()=>Fu(e.value)}),t}const Km=["top","bottom"],L0=["start","end","left","right"];function ys(e,t){let[n,a]=e.split(" ");return a||(a=Si(Km,n)?"start":Si(L0,n)?"top":"center"),{side:bs(n,t),align:bs(a,t)}}function bs(e,t){return e==="start"?t?"right":"left":e==="end"?t?"left":"right":e}function Mr(e){return{side:{center:"center",top:"bottom",bottom:"top",left:"right",right:"left"}[e.side],align:e.align}}function Fr(e){return{side:e.side,align:{center:"center",top:"bottom",bottom:"top",left:"right",right:"left"}[e.align]}}function Yd(e){return{side:e.align,align:e.side}}function qd(e){return Si(Km,e.side)?"y":"x"}class Ia{constructor(t){let{x:n,y:a,width:l,height:o}=t;this.x=n,this.y=a,this.width=l,this.height=o}get top(){return this.y}get bottom(){return this.y+this.height}get left(){return this.x}get right(){return this.x+this.width}}function Xd(e,t){return{x:{before:Math.max(0,t.left-e.left),after:Math.max(0,e.right-t.right)},y:{before:Math.max(0,t.top-e.top),after:Math.max(0,e.bottom-t.bottom)}}}function Ym(e){return Array.isArray(e)?new Ia({x:e[0],y:e[1],width:0,height:0}):e.getBoundingClientRect()}function Hu(e){const t=e.getBoundingClientRect(),n=getComputedStyle(e),a=n.transform;if(a){let l,o,i,r,s;if(a.startsWith("matrix3d("))l=a.slice(9,-1).split(/, /),o=+l[0],i=+l[5],r=+l[12],s=+l[13];else if(a.startsWith("matrix("))l=a.slice(7,-1).split(/, /),o=+l[0],i=+l[3],r=+l[4],s=+l[5];else return new Ia(t);const u=n.transformOrigin,c=t.x-r-(1-o)*parseFloat(u),f=t.y-s-(1-i)*parseFloat(u.slice(u.indexOf(" ")+1)),v=o?t.width/o:e.offsetWidth+1,m=i?t.height/i:e.offsetHeight+1;return new Ia({x:c,y:f,width:v,height:m})}else return new Ia(t)}function Ca(e,t,n){if(typeof e.animate>"u")return{finished:Promise.resolve()};let a;try{a=e.animate(t,n)}catch{return{finished:Promise.resolve()}}return typeof a.finished>"u"&&(a.finished=new Promise(l=>{a.onfinish=()=>{l(a)}})),a}const oi=new WeakMap;function M0(e,t){Object.keys(t).forEach(n=>{if(ji(n)){const a=Um(n),l=oi.get(e);if(t[n]==null)l==null||l.forEach(o=>{const[i,r]=o;i===a&&(e.removeEventListener(a,r),l.delete(o))});else if(!l||![...l].some(o=>o[0]===a&&o[1]===t[n])){e.addEventListener(a,t[n]);const o=l||new Set;o.add([a,t[n]]),oi.has(e)||oi.set(e,o)}}else t[n]==null?e.removeAttribute(n):e.setAttribute(n,t[n])})}function F0(e,t){Object.keys(t).forEach(n=>{if(ji(n)){const a=Um(n),l=oi.get(e);l==null||l.forEach(o=>{const[i,r]=o;i===a&&(e.removeEventListener(a,r),l.delete(o))})}else e.removeAttribute(n)})}const Ja=2.4,Jd=.2126729,Zd=.7151522,Qd=.072175,$0=.55,N0=.58,H0=.57,z0=.62,qo=.03,ef=1.45,j0=5e-4,U0=1.25,W0=1.25,tf=.078,nf=12.82051282051282,Xo=.06,af=.001;function lf(e,t){const n=(e.r/255)**Ja,a=(e.g/255)**Ja,l=(e.b/255)**Ja,o=(t.r/255)**Ja,i=(t.g/255)**Ja,r=(t.b/255)**Ja;let s=n*Jd+a*Zd+l*Qd,u=o*Jd+i*Zd+r*Qd;if(s<=qo&&(s+=(qo-s)**ef),u<=qo&&(u+=(qo-u)**ef),Math.abs(u-s)s){const f=(u**$0-s**N0)*U0;c=f-af?0:f>-tf?f-f*nf*Xo:f+Xo}return c*100}function G0(e,t){t=Array.isArray(t)?t.slice(0,-1).map(n=>`'${n}'`).join(", ")+` or '${t.at(-1)}'`:`'${t}'`}const ki=.20689655172413793,K0=e=>e>ki**3?Math.cbrt(e):e/(3*ki**2)+4/29,Y0=e=>e>ki?e**3:3*ki**2*(e-4/29);function qm(e){const t=K0,n=t(e[1]);return[116*n-16,500*(t(e[0]/.95047)-n),200*(n-t(e[2]/1.08883))]}function Xm(e){const t=Y0,n=(e[0]+16)/116;return[t(n+e[1]/500)*.95047,t(n),t(n-e[2]/200)*1.08883]}const q0=[[3.2406,-1.5372,-.4986],[-.9689,1.8758,.0415],[.0557,-.204,1.057]],X0=e=>e<=.0031308?e*12.92:1.055*e**(1/2.4)-.055,J0=[[.4124,.3576,.1805],[.2126,.7152,.0722],[.0193,.1192,.9505]],Z0=e=>e<=.04045?e/12.92:((e+.055)/1.055)**2.4;function Jm(e){const t=Array(3),n=X0,a=q0;for(let l=0;l<3;++l)t[l]=Math.round(ot(n(a[l][0]*e[0]+a[l][1]*e[1]+a[l][2]*e[2]))*255);return{r:t[0],g:t[1],b:t[2]}}function zu(e){let{r:t,g:n,b:a}=e;const l=[0,0,0],o=Z0,i=J0;t=o(t/255),n=o(n/255),a=o(a/255);for(let r=0;r<3;++r)l[r]=i[r][0]*t+i[r][1]*n+i[r][2]*a;return l}function ps(e){return!!e&&/^(#|var\(--|(rgb|hsl)a?\()/.test(e)}function Q0(e){return ps(e)&&!/^((rgb|hsl)a?\()?var\(--/.test(e)}const of=/^(?(?:rgb|hsl)a?)\((?.+)\)/,ew={rgb:(e,t,n,a)=>({r:e,g:t,b:n,a}),rgba:(e,t,n,a)=>({r:e,g:t,b:n,a}),hsl:(e,t,n,a)=>rf({h:e,s:t,l:n,a}),hsla:(e,t,n,a)=>rf({h:e,s:t,l:n,a}),hsv:(e,t,n,a)=>$n({h:e,s:t,v:n,a}),hsva:(e,t,n,a)=>$n({h:e,s:t,v:n,a})};function Qt(e){if(typeof e=="number")return{r:(e&16711680)>>16,g:(e&65280)>>8,b:e&255};if(typeof e=="string"&&of.test(e)){const{groups:t}=e.match(of),{fn:n,values:a}=t,l=a.split(/,\s*/).map(o=>o.endsWith("%")&&["hsl","hsla","hsv","hsva"].includes(n)?parseFloat(o)/100:parseFloat(o));return ew[n](...l)}else if(typeof e=="string"){let t=e.startsWith("#")?e.slice(1):e;return[3,4].includes(t.length)?t=t.split("").map(n=>n+n).join(""):[6,8].includes(t.length),nh(t)}else if(typeof e=="object"){if(xa(e,["r","g","b"]))return e;if(xa(e,["h","s","l"]))return $n(ju(e));if(xa(e,["h","s","v"]))return $n(e)}throw new TypeError(`Invalid color: ${e==null?e:String(e)||e.constructor.name} +Expected #hex, #hexa, rgb(), rgba(), hsl(), hsla(), object or number`)}function $n(e){const{h:t,s:n,v:a,a:l}=e,o=r=>{const s=(r+t/60)%6;return a-a*n*Math.max(Math.min(s,4-s,1),0)},i=[o(5),o(3),o(1)].map(r=>Math.round(r*255));return{r:i[0],g:i[1],b:i[2],a:l}}function rf(e){return $n(ju(e))}function Wi(e){if(!e)return{h:0,s:1,v:1,a:1};const t=e.r/255,n=e.g/255,a=e.b/255,l=Math.max(t,n,a),o=Math.min(t,n,a);let i=0;l!==o&&(l===t?i=60*(0+(n-a)/(l-o)):l===n?i=60*(2+(a-t)/(l-o)):l===a&&(i=60*(4+(t-n)/(l-o)))),i<0&&(i=i+360);const r=l===0?0:(l-o)/l,s=[i,r,l];return{h:s[0],s:s[1],v:s[2],a:e.a}}function Zm(e){const{h:t,s:n,v:a,a:l}=e,o=a-a*n/2,i=o===1||o===0?0:(a-o)/Math.min(o,1-o);return{h:t,s:i,l:o,a:l}}function ju(e){const{h:t,s:n,l:a,a:l}=e,o=a+n*Math.min(a,1-a),i=o===0?0:2-2*a/o;return{h:t,s:i,v:o,a:l}}function Qm(e){let{r:t,g:n,b:a,a:l}=e;return l===void 0?`rgb(${t}, ${n}, ${a})`:`rgba(${t}, ${n}, ${a}, ${l})`}function eh(e){return Qm($n(e))}function Jo(e){const t=Math.round(e).toString(16);return("00".substr(0,2-t.length)+t).toUpperCase()}function th(e){let{r:t,g:n,b:a,a:l}=e;return`#${[Jo(t),Jo(n),Jo(a),l!==void 0?Jo(Math.round(l*255)):""].join("")}`}function nh(e){e=tw(e);let[t,n,a,l]=A0(e,2).map(o=>parseInt(o,16));return l=l===void 0?l:l/255,{r:t,g:n,b:a,a:l}}function ah(e){const t=nh(e);return Wi(t)}function lh(e){return th($n(e))}function tw(e){return e.startsWith("#")&&(e=e.slice(1)),e=e.replace(/([^0-9a-f])/gi,"F"),(e.length===3||e.length===4)&&(e=e.split("").map(t=>t+t).join("")),e.length!==6&&(e=jd(jd(e,6),8,"F")),e}function nw(e,t){const n=qm(zu(e));return n[0]=n[0]+t*10,Jm(Xm(n))}function aw(e,t){const n=qm(zu(e));return n[0]=n[0]-t*10,Jm(Xm(n))}function Ss(e){const t=Qt(e);return zu(t)[1]}function lw(e,t){const n=Ss(e),a=Ss(t),l=Math.max(n,a),o=Math.min(n,a);return(l+.05)/(o+.05)}function oh(e){const t=Math.abs(lf(Qt(0),Qt(e)));return Math.abs(lf(Qt(16777215),Qt(e)))>Math.min(t,50)?"#fff":"#000"}function at(e,t){const n=Ou();if(!n)throw new Error(`[Vuetify] ${e} must be called from inside a setup function`);return n}function Tn(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"composables";const t=at(e).type;return Pa((t==null?void 0:t.aliasName)||(t==null?void 0:t.name))}let ih=0,ii=new WeakMap;function wt(){const e=at("getUid");if(ii.has(e))return ii.get(e);{const t=ih++;return ii.set(e,t),t}}wt.reset=()=>{ih=0,ii=new WeakMap};function ow(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:at("injectSelf");const{provides:n}=t;if(n&&e in n)return n[e]}const vl=Symbol.for("vuetify:defaults");function iw(e){return te(e)}function Uu(){const e=Te(vl);if(!e)throw new Error("[Vuetify] Could not find defaults instance");return e}function et(e,t){const n=Uu(),a=te(e),l=b(()=>{if(st(t==null?void 0:t.disabled))return n.value;const i=st(t==null?void 0:t.scoped),r=st(t==null?void 0:t.reset),s=st(t==null?void 0:t.root);if(a.value==null&&!(i||r||s))return n.value;let u=Bt(a.value,{prev:n.value});if(i)return u;if(r||s){const c=Number(r||1/0);for(let f=0;f<=c&&!(!u||!("prev"in u));f++)u=u.prev;return u&&typeof s=="string"&&s in u&&(u=Bt(Bt(u,{prev:u}),u[s])),u}return u.prev?Bt(u.prev,u):u});return We(vl,l),l}function rw(e,t){var n,a;return typeof((n=e.props)==null?void 0:n[t])<"u"||typeof((a=e.props)==null?void 0:a[Pa(t)])<"u"}function sw(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Uu();const a=at("useDefaults");if(t=t??a.type.name??a.type.__name,!t)throw new Error("[Vuetify] Could not determine component name");const l=b(()=>{var s;return(s=n.value)==null?void 0:s[e._as??t]}),o=new Proxy(e,{get(s,u){var f,v,m,g,h,y,p;const c=Reflect.get(s,u);return u==="class"||u==="style"?[(f=l.value)==null?void 0:f[u],c].filter(S=>S!=null):typeof u=="string"&&!rw(a.vnode,u)?((v=l.value)==null?void 0:v[u])!==void 0?(m=l.value)==null?void 0:m[u]:((h=(g=n.value)==null?void 0:g.global)==null?void 0:h[u])!==void 0?(p=(y=n.value)==null?void 0:y.global)==null?void 0:p[u]:c:c}}),i=ue();nt(()=>{if(l.value){const s=Object.entries(l.value).filter(u=>{let[c]=u;return c.startsWith(c[0].toUpperCase())});i.value=s.length?Object.fromEntries(s):void 0}else i.value=void 0});function r(){const s=ow(vl,a);We(vl,b(()=>i.value?Bt((s==null?void 0:s.value)??{},i.value):s==null?void 0:s.value))}return{props:o,provideSubDefaults:r}}function Kt(e){if(e._setup=e._setup??e.setup,!e.name)return e;if(e._setup){e.props=L(e.props??{},e.name)();const t=Object.keys(e.props).filter(n=>n!=="class"&&n!=="style");e.filterProps=function(a){return Hm(a,t)},e.props._as=String,e.setup=function(a,l){const o=Uu();if(!o.value)return e._setup(a,l);const{props:i,provideSubDefaults:r}=sw(a,a._as??e.name,o),s=e._setup(i,l);return r(),s}}return e}function j(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return t=>(e?Kt:Mi)(t)}function uw(e,t){return t.props=e,t}function En(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"div",n=arguments.length>2?arguments[2]:void 0;return j()({name:n??Vn(nn(e.replace(/__/g,"-"))),props:{tag:{type:String,default:t},...ve()},setup(a,l){let{slots:o}=l;return()=>{var i;return mn(a.tag,{class:[e,a.class],style:a.style},(i=o.default)==null?void 0:i.call(o))}}})}function rh(e){if(typeof e.getRootNode!="function"){for(;e.parentNode;)e=e.parentNode;return e!==document?null:document}const t=e.getRootNode();return t!==document&&t.getRootNode({composed:!0})!==document?null:t}const lo="cubic-bezier(0.4, 0, 0.2, 1)",cw="cubic-bezier(0.0, 0, 0.2, 1)",dw="cubic-bezier(0.4, 0, 1, 1)";function sf(e,t,n){return Object.keys(e).filter(a=>ji(a)&&a.endsWith(t)).reduce((a,l)=>(a[l.slice(0,-t.length)]=o=>e[l](o,n(o)),a),{})}function Wu(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;for(;e;){if(t?fw(e):Gu(e))return e;e=e.parentElement}return document.scrollingElement}function xi(e,t){const n=[];if(t&&e&&!t.contains(e))return n;for(;e&&(Gu(e)&&n.push(e),e!==t);)e=e.parentElement;return n}function Gu(e){if(!e||e.nodeType!==Node.ELEMENT_NODE)return!1;const t=window.getComputedStyle(e);return t.overflowY==="scroll"||t.overflowY==="auto"&&e.scrollHeight>e.clientHeight}function fw(e){if(!e||e.nodeType!==Node.ELEMENT_NODE)return!1;const t=window.getComputedStyle(e);return["scroll","auto"].includes(t.overflowY)}function vw(e){for(;e;){if(window.getComputedStyle(e).position==="fixed")return!0;e=e.offsetParent}return!1}function Y(e){const t=at("useRender");t.render=e}function fn(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"content";const n=wi(),a=te();if(He){const l=new ResizeObserver(o=>{e==null||e(o,l),o.length&&(t==="content"?a.value=o[0].contentRect:a.value=o[0].target.getBoundingClientRect())});Pt(()=>{l.disconnect()}),de(()=>n.el,(o,i)=>{i&&(l.unobserve(i),a.value=void 0),o&&l.observe(o)},{flush:"post"})}return{resizeRef:n,contentRect:Sl(a)}}const oo=Symbol.for("vuetify:layout"),sh=Symbol.for("vuetify:layout-item"),uf=1e3,uh=L({overlaps:{type:Array,default:()=>[]},fullHeight:Boolean},"layout"),$a=L({name:{type:String},order:{type:[Number,String],default:0},absolute:Boolean},"layout-item");function ch(){const e=Te(oo);if(!e)throw new Error("[Vuetify] Could not find injected layout");return{layoutIsReady:Oe(),getLayoutItem:e.getLayoutItem,mainRect:e.mainRect,mainStyles:e.mainStyles}}function Na(e){const t=Te(oo);if(!t)throw new Error("[Vuetify] Could not find injected layout");const n=e.id??`layout-item-${wt()}`,a=at("useLayoutItem");We(sh,{id:n});const l=ue(!1);gm(()=>l.value=!0),hm(()=>l.value=!1);const o=Oe(),{layoutItemStyles:i,layoutItemScrimStyles:r}=t.register(a,{...e,active:b(()=>l.value?!1:e.active.value),id:n});return Pt(()=>t.unregister(n)),{layoutItemStyles:i,layoutRect:t.layoutRect,layoutItemScrimStyles:r,layoutIsReady:o}}const mw=(e,t,n,a)=>{let l={top:0,left:0,right:0,bottom:0};const o=[{id:"",layer:{...l}}];for(const i of e){const r=t.get(i),s=n.get(i),u=a.get(i);if(!r||!s||!u)continue;const c={...l,[r.value]:parseInt(l[r.value],10)+(u.value?parseInt(s.value,10):0)};o.push({id:i,layer:c}),l=c}return o};function dh(e){const t=Te(oo,null),n=b(()=>t?t.rootZIndex.value-100:uf),a=te([]),l=Tt(new Map),o=Tt(new Map),i=Tt(new Map),r=Tt(new Map),s=Tt(new Map),{resizeRef:u,contentRect:c}=fn(),f=Kd(()=>{const x=[...new Set([...i.values()].map(V=>V.value))].sort((V,T)=>V-T),k=[];for(const V of x){const T=a.value.filter(w=>{var P;return((P=i.get(w))==null?void 0:P.value)===V});k.push(...T)}return mw(k,l,o,r)}),v=b(()=>!Array.from(s.values()).some(x=>x.value)),m=b(()=>f.value[f.value.length-1].layer),g=b(()=>({"--v-layout-left":fe(m.value.left),"--v-layout-right":fe(m.value.right),"--v-layout-top":fe(m.value.top),"--v-layout-bottom":fe(m.value.bottom),...v.value?void 0:{transition:"none"}})),h=Kd(()=>f.value.slice(1).map((x,k)=>{let{id:V}=x;const{layer:T}=f.value[k],w=o.get(V),P=l.get(V);return{id:V,...T,size:Number(w.value),position:P.value}})),y=x=>h.value.find(k=>k.id===x),p=at("createLayout"),S=Oe();We(oo,{register:(x,k)=>{let{id:V,order:T,position:w,layoutSize:P,elementSize:E,active:I,disableTransitions:R,absolute:F}=k;i.set(V,T),l.set(V,w),o.set(V,P),r.set(V,I),R&&s.set(V,R);const q=tl(sh,p==null?void 0:p.vnode).indexOf(x);q>-1?a.value.splice(q,0,V):a.value.push(V);const ee=b(()=>h.value.findIndex(U=>U.id===V)),$=b(()=>n.value+f.value.length*2-ee.value*2),Z=b(()=>{const U=w.value==="left"||w.value==="right",ne=w.value==="right",he=w.value==="bottom",we=E.value??P.value,ye=we===0?"%":"px",K={[w.value]:0,zIndex:$.value,transform:`translate${U?"X":"Y"}(${(I.value?0:-(we===0?100:we))*(ne||he?-1:1)}${ye})`,position:F.value||n.value!==uf?"absolute":"fixed",...v.value?void 0:{transition:"none"}};if(ee.value<0)throw new Error(`Layout item "${V}" is missing`);const D=h.value[ee.value];if(!D)throw new Error(`[Vuetify] Could not find layout item "${V}"`);return{...K,height:U?`calc(100% - ${D.top}px - ${D.bottom}px)`:E.value?`${E.value}px`:void 0,left:ne?void 0:`${D.left}px`,right:ne?`${D.right}px`:void 0,top:w.value!=="bottom"?`${D.top}px`:void 0,bottom:w.value!=="top"?`${D.bottom}px`:void 0,width:U?E.value?`${E.value}px`:void 0:`calc(100% - ${D.left}px - ${D.right}px)`}}),M=b(()=>({zIndex:$.value-1}));return{layoutItemStyles:Z,layoutItemScrimStyles:M,zIndex:$}},unregister:x=>{i.delete(x),l.delete(x),o.delete(x),r.delete(x),s.delete(x),a.value=a.value.filter(k=>k!==x)},mainRect:m,mainStyles:g,getLayoutItem:y,items:h,layoutRect:c,rootZIndex:n,layoutIsReady:S});const C=b(()=>["v-layout",{"v-layout--full-height":e.fullHeight}]),A=b(()=>({zIndex:t?n.value:void 0,position:t?"relative":void 0,overflow:t?"hidden":void 0}));return{layoutClasses:C,layoutStyles:A,getLayoutItem:y,items:h,layoutRect:c,layoutIsReady:S,layoutRef:u}}function Nt(e,t){let n;function a(){n=du(),n.run(()=>t.length?t(()=>{n==null||n.stop(),a()}):t())}de(e,l=>{l&&!n?a():l||(n==null||n.stop(),n=void 0)},{immediate:!0}),Ot(()=>{n==null||n.stop()})}function Se(e,t,n){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:f=>f,l=arguments.length>4&&arguments[4]!==void 0?arguments[4]:f=>f;const o=at("useProxiedModel"),i=te(e[t]!==void 0?e[t]:n),r=Pa(t),u=b(r!==t?()=>{var f,v,m,g;return e[t],!!(((f=o.vnode.props)!=null&&f.hasOwnProperty(t)||(v=o.vnode.props)!=null&&v.hasOwnProperty(r))&&((m=o.vnode.props)!=null&&m.hasOwnProperty(`onUpdate:${t}`)||(g=o.vnode.props)!=null&&g.hasOwnProperty(`onUpdate:${r}`)))}:()=>{var f,v;return e[t],!!((f=o.vnode.props)!=null&&f.hasOwnProperty(t)&&((v=o.vnode.props)!=null&&v.hasOwnProperty(`onUpdate:${t}`)))});Nt(()=>!u.value,()=>{de(()=>e[t],f=>{i.value=f})});const c=b({get(){const f=e[t];return a(u.value?f:i.value)},set(f){const v=l(f),m=Ve(u.value?e[t]:i.value);m===v||a(m)===f||(i.value=v,o==null||o.emit(`update:${t}`,v))}});return Object.defineProperty(c,"externalValue",{get:()=>u.value?e[t]:i.value}),c}const hw={badge:"Badge",open:"Open",close:"Close",dismiss:"Dismiss",confirmEdit:{ok:"OK",cancel:"Cancel"},dataIterator:{noResultsText:"No matching records found",loadingText:"Loading items..."},dataTable:{itemsPerPageText:"Rows per page:",ariaLabel:{sortDescending:"Sorted descending.",sortAscending:"Sorted ascending.",sortNone:"Not sorted.",activateNone:"Activate to remove sorting.",activateDescending:"Activate to sort descending.",activateAscending:"Activate to sort ascending."},sortBy:"Sort by"},dataFooter:{itemsPerPageText:"Items per page:",itemsPerPageAll:"All",nextPage:"Next page",prevPage:"Previous page",firstPage:"First page",lastPage:"Last page",pageText:"{0}-{1} of {2}"},dateRangeInput:{divider:"to"},datePicker:{itemsSelected:"{0} selected",range:{title:"Select dates",header:"Enter dates"},title:"Select date",header:"Enter date",input:{placeholder:"Enter date"}},noDataText:"No data available",carousel:{prev:"Previous visual",next:"Next visual",ariaLabel:{delimiter:"Carousel slide {0} of {1}"}},calendar:{moreEvents:"{0} more",today:"Today"},input:{clear:"Clear {0}",prependAction:"{0} prepended action",appendAction:"{0} appended action",otp:"Please enter OTP character {0}"},fileInput:{counter:"{0} files",counterSize:"{0} files ({1} in total)"},timePicker:{am:"AM",pm:"PM",title:"Select Time"},pagination:{ariaLabel:{root:"Pagination Navigation",next:"Next page",previous:"Previous page",page:"Go to page {0}",currentPage:"Page {0}, Current page",first:"First page",last:"Last page"}},stepper:{next:"Next",prev:"Previous"},rating:{ariaLabel:{item:"Rating {0} of {1}"}},loading:"Loading...",infiniteScroll:{loadMore:"Load more",empty:"No more"}},cf="$vuetify.",df=(e,t)=>e.replace(/\{(\d+)\}/g,(n,a)=>String(t[+a])),fh=(e,t,n)=>function(a){for(var l=arguments.length,o=new Array(l>1?l-1:0),i=1;inew Intl.NumberFormat([e.value,t.value],a).format(n)}function $r(e,t,n){const a=Se(e,t,e[t]??n.value);return a.value=e[t]??n.value,de(n,l=>{e[t]==null&&(a.value=n.value)}),a}function mh(e){return t=>{const n=$r(t,"locale",e.current),a=$r(t,"fallback",e.fallback),l=$r(t,"messages",e.messages);return{name:"vuetify",current:n,fallback:a,messages:l,t:fh(n,a,l),n:vh(n,a),provide:mh({current:n,fallback:a,messages:l})}}}function gw(e){const t=ue((e==null?void 0:e.locale)??"en"),n=ue((e==null?void 0:e.fallback)??"en"),a=te({en:hw,...e==null?void 0:e.messages});return{name:"vuetify",current:t,fallback:n,messages:a,t:fh(t,n,a),n:vh(t,n),provide:mh({current:t,fallback:n,messages:a})}}const ml=Symbol.for("vuetify:locale");function yw(e){return e.name!=null}function bw(e){const t=e!=null&&e.adapter&&yw(e==null?void 0:e.adapter)?e==null?void 0:e.adapter:gw(e),n=ww(t,e);return{...t,...n}}function lt(){const e=Te(ml);if(!e)throw new Error("[Vuetify] Could not find injected locale instance");return e}function pw(e){const t=Te(ml);if(!t)throw new Error("[Vuetify] Could not find injected locale instance");const n=t.provide(e),a=kw(n,t.rtl,e),l={...n,...a};return We(ml,l),l}function Sw(){return{af:!1,ar:!0,bg:!1,ca:!1,ckb:!1,cs:!1,de:!1,el:!1,en:!1,es:!1,et:!1,fa:!0,fi:!1,fr:!1,hr:!1,hu:!1,he:!0,id:!1,it:!1,ja:!1,km:!1,ko:!1,lv:!1,lt:!1,nl:!1,no:!1,pl:!1,pt:!1,ro:!1,ru:!1,sk:!1,sl:!1,srCyrl:!1,srLatn:!1,sv:!1,th:!1,tr:!1,az:!1,uk:!1,vi:!1,zhHans:!1,zhHant:!1}}function ww(e,t){const n=te((t==null?void 0:t.rtl)??Sw()),a=b(()=>n.value[e.current.value]??!1);return{isRtl:a,rtl:n,rtlClasses:b(()=>`v-locale--is-${a.value?"rtl":"ltr"}`)}}function kw(e,t,n){const a=b(()=>n.rtl??t.value[e.current.value]??!1);return{isRtl:a,rtl:t,rtlClasses:b(()=>`v-locale--is-${a.value?"rtl":"ltr"}`)}}function ht(){const e=Te(ml);if(!e)throw new Error("[Vuetify] Could not find injected rtl instance");return{isRtl:e.isRtl,rtlClasses:e.rtlClasses}}const io=Symbol.for("vuetify:theme"),De=L({theme:String},"theme");function ff(){return{defaultTheme:"light",variations:{colors:[],lighten:0,darken:0},themes:{light:{dark:!1,colors:{background:"#FFFFFF",surface:"#FFFFFF","surface-bright":"#FFFFFF","surface-light":"#EEEEEE","surface-variant":"#424242","on-surface-variant":"#EEEEEE",primary:"#1867C0","primary-darken-1":"#1F5592",secondary:"#48A9A6","secondary-darken-1":"#018786",error:"#B00020",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"},variables:{"border-color":"#000000","border-opacity":.12,"high-emphasis-opacity":.87,"medium-emphasis-opacity":.6,"disabled-opacity":.38,"idle-opacity":.04,"hover-opacity":.04,"focus-opacity":.12,"selected-opacity":.08,"activated-opacity":.12,"pressed-opacity":.12,"dragged-opacity":.08,"theme-kbd":"#212529","theme-on-kbd":"#FFFFFF","theme-code":"#F5F5F5","theme-on-code":"#000000"}},dark:{dark:!0,colors:{background:"#121212",surface:"#212121","surface-bright":"#ccbfd6","surface-light":"#424242","surface-variant":"#a3a3a3","on-surface-variant":"#424242",primary:"#2196F3","primary-darken-1":"#277CC1",secondary:"#54B6B2","secondary-darken-1":"#48A9A6",error:"#CF6679",info:"#2196F3",success:"#4CAF50",warning:"#FB8C00"},variables:{"border-color":"#FFFFFF","border-opacity":.12,"high-emphasis-opacity":1,"medium-emphasis-opacity":.7,"disabled-opacity":.5,"idle-opacity":.1,"hover-opacity":.04,"focus-opacity":.12,"selected-opacity":.08,"activated-opacity":.12,"pressed-opacity":.16,"dragged-opacity":.08,"theme-kbd":"#212529","theme-on-kbd":"#FFFFFF","theme-code":"#343434","theme-on-code":"#CCCCCC"}}}}}function xw(){var a,l;let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:ff();const t=ff();if(!e)return{...t,isDisabled:!0};const n={};for(const[o,i]of Object.entries(e.themes??{})){const r=i.dark||o==="dark"?(a=t.themes)==null?void 0:a.dark:(l=t.themes)==null?void 0:l.light;n[o]=Bt(r,i)}return Bt(t,{...e,themes:n})}function Cw(e){const t=xw(e),n=te(t.defaultTheme),a=te(t.themes),l=b(()=>{const c={};for(const[f,v]of Object.entries(a.value)){const m=c[f]={...v,colors:{...v.colors}};if(t.variations)for(const g of t.variations.colors){const h=m.colors[g];if(h)for(const y of["lighten","darken"]){const p=y==="lighten"?nw:aw;for(const S of xn(t.variations[y],1))m.colors[`${g}-${y}-${S}`]=th(p(Qt(h),S))}}for(const g of Object.keys(m.colors)){if(/^on-[a-z]/.test(g)||m.colors[`on-${g}`])continue;const h=`on-${g}`,y=Qt(m.colors[g]);m.colors[h]=oh(y)}}return c}),o=b(()=>l.value[n.value]),i=b(()=>{var g;const c=[];(g=o.value)!=null&&g.dark&&Sa(c,":root",["color-scheme: dark"]),Sa(c,":root",vf(o.value));for(const[h,y]of Object.entries(l.value))Sa(c,`.v-theme--${h}`,[`color-scheme: ${y.dark?"dark":"normal"}`,...vf(y)]);const f=[],v=[],m=new Set(Object.values(l.value).flatMap(h=>Object.keys(h.colors)));for(const h of m)/^on-[a-z]/.test(h)?Sa(v,`.${h}`,[`color: rgb(var(--v-theme-${h})) !important`]):(Sa(f,`.bg-${h}`,[`--v-theme-overlay-multiplier: var(--v-theme-${h}-overlay-multiplier)`,`background-color: rgb(var(--v-theme-${h})) !important`,`color: rgb(var(--v-theme-on-${h})) !important`]),Sa(v,`.text-${h}`,[`color: rgb(var(--v-theme-${h})) !important`]),Sa(v,`.border-${h}`,[`--v-border-color: var(--v-theme-${h})`]));return c.push(...f,...v),c.map((h,y)=>y===0?h:` ${h}`).join("")});function r(){return{style:[{children:i.value,id:"vuetify-theme-stylesheet",nonce:t.cspNonce||!1}]}}function s(c){if(t.isDisabled)return;const f=c._context.provides.usehead;if(f)if(f.push){const m=f.push(r);He&&de(i,()=>{m.patch(r)})}else He?(f.addHeadObjs(b(r)),nt(()=>f.updateDOM())):f.addHeadObjs(r());else{let g=function(){if(typeof document<"u"&&!m){const h=document.createElement("style");h.type="text/css",h.id="vuetify-theme-stylesheet",t.cspNonce&&h.setAttribute("nonce",t.cspNonce),m=h,document.head.appendChild(m)}m&&(m.innerHTML=i.value)};var v=g;let m=He?document.getElementById("vuetify-theme-stylesheet"):null;He?de(i,g,{immediate:!0}):g()}}const u=b(()=>t.isDisabled?void 0:`v-theme--${n.value}`);return{install:s,isDisabled:t.isDisabled,name:n,themes:a,current:o,computedThemes:l,themeClasses:u,styles:i,global:{name:n,current:o}}}function $e(e){at("provideTheme");const t=Te(io,null);if(!t)throw new Error("Could not find Vuetify theme injection");const n=b(()=>e.theme??t.name.value),a=b(()=>t.themes.value[n.value]),l=b(()=>t.isDisabled?void 0:`v-theme--${n.value}`),o={...t,name:n,current:a,themeClasses:l};return We(io,o),o}function hh(){at("useTheme");const e=Te(io,null);if(!e)throw new Error("Could not find Vuetify theme injection");return e}function Sa(e,t,n){e.push(`${t} { +`,...n.map(a=>` ${a}; +`),`} +`)}function vf(e){const t=e.dark?2:1,n=e.dark?1:2,a=[];for(const[l,o]of Object.entries(e.colors)){const i=Qt(o);a.push(`--v-theme-${l}: ${i.r},${i.g},${i.b}`),l.startsWith("on-")||a.push(`--v-theme-${l}-overlay-multiplier: ${Ss(o)>.18?t:n}`)}for(const[l,o]of Object.entries(e.variables)){const i=typeof o=="string"&&o.startsWith("#")?Qt(o):void 0,r=i?`${i.r}, ${i.g}, ${i.b}`:void 0;a.push(`--v-${l}: ${r??o}`)}return a}const _w=L({...ve(),...uh({fullHeight:!0}),...De()},"VApp"),gh=j()({name:"VApp",props:_w(),setup(e,t){let{slots:n}=t;const a=$e(e),{layoutClasses:l,getLayoutItem:o,items:i,layoutRef:r}=dh(e),{rtlClasses:s}=ht();return Y(()=>d("div",{ref:r,class:["v-application",a.themeClasses.value,l.value,s.value,e.class],style:[e.style]},[d("div",{class:"v-application__wrap"},[d(tm,null,{default:()=>{var u;return[d(ge,null,[(u=n.default)==null?void 0:u.call(n)])]}})])])),{getLayoutItem:o,items:i,theme:a}}}),gt=L({height:[Number,String],maxHeight:[Number,String],maxWidth:[Number,String],minHeight:[Number,String],minWidth:[Number,String],width:[Number,String]},"dimension");function yt(e){return{dimensionStyles:b(()=>{const n={},a=fe(e.height),l=fe(e.maxHeight),o=fe(e.maxWidth),i=fe(e.minHeight),r=fe(e.minWidth),s=fe(e.width);return a!=null&&(n.height=a),l!=null&&(n.maxHeight=l),o!=null&&(n.maxWidth=o),i!=null&&(n.minHeight=i),r!=null&&(n.minWidth=r),s!=null&&(n.width=s),n})}}function Ha(){const e=ue(!1);return Vt(()=>{window.requestAnimationFrame(()=>{e.value=!0})}),{ssrBootStyles:b(()=>e.value?void 0:{transition:"none !important"}),isBooted:Sl(e)}}const Pe=L({tag:{type:String,default:"div"}},"tag"),Vw=L({scrollable:Boolean,...ve(),...gt(),...Pe({tag:"main"})},"VMain"),yh=j()({name:"VMain",props:Vw(),setup(e,t){let{slots:n}=t;const{dimensionStyles:a}=yt(e),{mainStyles:l,layoutIsReady:o}=ch(),{ssrBootStyles:i}=Ha();return Y(()=>d(e.tag,{class:["v-main",{"v-main--scrollable":e.scrollable},e.class],style:[l.value,i.value,a.value,e.style]},{default:()=>{var r,s;return[e.scrollable?d("div",{class:"v-main__scroller"},[(r=n.default)==null?void 0:r.call(n)]):(s=n.default)==null?void 0:s.call(n)]}})),o}}),Pw=Mi({name:"App",components:{BaseHeader:x0,BaseFooter:m0}});function Iw(e,t,n,a,l,o){const i=$l("BaseHeader"),r=$l("router-view"),s=$l("BaseFooter");return ze(),$i(gh,null,{default:Re(()=>[d(i),d(yh,null,{default:Re(()=>[d(r)]),_:1}),d(s)]),_:1})}const Tw=Pn(Pw,[["render",Iw]]);/*! + * vue-router v4.3.3 + * (c) 2024 Eduardo San Martin Morote + * @license MIT + */const el=typeof document<"u";function Ew(e){return e.__esModule||e[Symbol.toStringTag]==="Module"}const Ke=Object.assign;function Nr(e,t){const n={};for(const a in t){const l=t[a];n[a]=vn(l)?l.map(e):e(l)}return n}const Ul=()=>{},vn=Array.isArray,bh=/#/g,Aw=/&/g,Bw=/\//g,Rw=/=/g,Ow=/\?/g,ph=/\+/g,Dw=/%5B/g,Lw=/%5D/g,Sh=/%5E/g,Mw=/%60/g,wh=/%7B/g,Fw=/%7C/g,kh=/%7D/g,$w=/%20/g;function Ku(e){return encodeURI(""+e).replace(Fw,"|").replace(Dw,"[").replace(Lw,"]")}function Nw(e){return Ku(e).replace(wh,"{").replace(kh,"}").replace(Sh,"^")}function ws(e){return Ku(e).replace(ph,"%2B").replace($w,"+").replace(bh,"%23").replace(Aw,"%26").replace(Mw,"`").replace(wh,"{").replace(kh,"}").replace(Sh,"^")}function Hw(e){return ws(e).replace(Rw,"%3D")}function zw(e){return Ku(e).replace(bh,"%23").replace(Ow,"%3F")}function jw(e){return e==null?"":zw(e).replace(Bw,"%2F")}function ro(e){try{return decodeURIComponent(""+e)}catch{}return""+e}const Uw=/\/$/,Ww=e=>e.replace(Uw,"");function Hr(e,t,n="/"){let a,l={},o="",i="";const r=t.indexOf("#");let s=t.indexOf("?");return r=0&&(s=-1),s>-1&&(a=t.slice(0,s),o=t.slice(s+1,r>-1?r:t.length),l=e(o)),r>-1&&(a=a||t.slice(0,r),i=t.slice(r,t.length)),a=qw(a??t,n),{fullPath:a+(o&&"?")+o+i,path:a,query:l,hash:ro(i)}}function Gw(e,t){const n=t.query?e(t.query):"";return t.path+(n&&"?")+n+(t.hash||"")}function mf(e,t){return!t||!e.toLowerCase().startsWith(t.toLowerCase())?e:e.slice(t.length)||"/"}function Kw(e,t,n){const a=t.matched.length-1,l=n.matched.length-1;return a>-1&&a===l&&hl(t.matched[a],n.matched[l])&&xh(t.params,n.params)&&e(t.query)===e(n.query)&&t.hash===n.hash}function hl(e,t){return(e.aliasOf||e)===(t.aliasOf||t)}function xh(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!Yw(e[n],t[n]))return!1;return!0}function Yw(e,t){return vn(e)?hf(e,t):vn(t)?hf(t,e):e===t}function hf(e,t){return vn(t)?e.length===t.length&&e.every((n,a)=>n===t[a]):e.length===1&&e[0]===t}function qw(e,t){if(e.startsWith("/"))return e;if(!e)return t;const n=t.split("/"),a=e.split("/"),l=a[a.length-1];(l===".."||l===".")&&a.push("");let o=n.length-1,i,r;for(i=0;i1&&o--;else break;return n.slice(0,o).join("/")+"/"+a.slice(i).join("/")}var so;(function(e){e.pop="pop",e.push="push"})(so||(so={}));var Wl;(function(e){e.back="back",e.forward="forward",e.unknown=""})(Wl||(Wl={}));function Xw(e){if(!e)if(el){const t=document.querySelector("base");e=t&&t.getAttribute("href")||"/",e=e.replace(/^\w+:\/\/[^\/]+/,"")}else e="/";return e[0]!=="/"&&e[0]!=="#"&&(e="/"+e),Ww(e)}const Jw=/^[^#]+#/;function Zw(e,t){return e.replace(Jw,"#")+t}function Qw(e,t){const n=document.documentElement.getBoundingClientRect(),a=e.getBoundingClientRect();return{behavior:t.behavior,left:a.left-n.left-(t.left||0),top:a.top-n.top-(t.top||0)}}const Gi=()=>({left:window.scrollX,top:window.scrollY});function ek(e){let t;if("el"in e){const n=e.el,a=typeof n=="string"&&n.startsWith("#"),l=typeof n=="string"?a?document.getElementById(n.slice(1)):document.querySelector(n):n;if(!l)return;t=Qw(l,e)}else t=e;"scrollBehavior"in document.documentElement.style?window.scrollTo(t):window.scrollTo(t.left!=null?t.left:window.scrollX,t.top!=null?t.top:window.scrollY)}function gf(e,t){return(history.state?history.state.position-t:-1)+e}const ks=new Map;function tk(e,t){ks.set(e,t)}function nk(e){const t=ks.get(e);return ks.delete(e),t}let ak=()=>location.protocol+"//"+location.host;function Ch(e,t){const{pathname:n,search:a,hash:l}=t,o=e.indexOf("#");if(o>-1){let r=l.includes(e.slice(o))?e.slice(o).length:1,s=l.slice(r);return s[0]!=="/"&&(s="/"+s),mf(s,"")}return mf(n,e)+a+l}function lk(e,t,n,a){let l=[],o=[],i=null;const r=({state:v})=>{const m=Ch(e,location),g=n.value,h=t.value;let y=0;if(v){if(n.value=m,t.value=v,i&&i===g){i=null;return}y=h?v.position-h.position:0}else a(m);l.forEach(p=>{p(n.value,g,{delta:y,type:so.pop,direction:y?y>0?Wl.forward:Wl.back:Wl.unknown})})};function s(){i=n.value}function u(v){l.push(v);const m=()=>{const g=l.indexOf(v);g>-1&&l.splice(g,1)};return o.push(m),m}function c(){const{history:v}=window;v.state&&v.replaceState(Ke({},v.state,{scroll:Gi()}),"")}function f(){for(const v of o)v();o=[],window.removeEventListener("popstate",r),window.removeEventListener("beforeunload",c)}return window.addEventListener("popstate",r),window.addEventListener("beforeunload",c,{passive:!0}),{pauseListeners:s,listen:u,destroy:f}}function yf(e,t,n,a=!1,l=!1){return{back:e,current:t,forward:n,replaced:a,position:window.history.length,scroll:l?Gi():null}}function ok(e){const{history:t,location:n}=window,a={value:Ch(e,n)},l={value:t.state};l.value||o(a.value,{back:null,current:a.value,forward:null,position:t.length-1,replaced:!0,scroll:null},!0);function o(s,u,c){const f=e.indexOf("#"),v=f>-1?(n.host&&document.querySelector("base")?e:e.slice(f))+s:ak()+e+s;try{t[c?"replaceState":"pushState"](u,"",v),l.value=u}catch(m){console.error(m),n[c?"replace":"assign"](v)}}function i(s,u){const c=Ke({},t.state,yf(l.value.back,s,l.value.forward,!0),u,{position:l.value.position});o(s,c,!0),a.value=s}function r(s,u){const c=Ke({},l.value,t.state,{forward:s,scroll:Gi()});o(c.current,c,!0);const f=Ke({},yf(a.value,s,null),{position:c.position+1},u);o(s,f,!1),a.value=s}return{location:a,state:l,push:r,replace:i}}function ik(e){e=Xw(e);const t=ok(e),n=lk(e,t.state,t.location,t.replace);function a(o,i=!0){i||n.pauseListeners(),history.go(o)}const l=Ke({location:"",base:e,go:a,createHref:Zw.bind(null,e)},t,n);return Object.defineProperty(l,"location",{enumerable:!0,get:()=>t.location.value}),Object.defineProperty(l,"state",{enumerable:!0,get:()=>t.state.value}),l}function rk(e){return typeof e=="string"||e&&typeof e=="object"}function _h(e){return typeof e=="string"||typeof e=="symbol"}const Zn={path:"/",name:void 0,params:{},query:{},hash:"",fullPath:"/",matched:[],meta:{},redirectedFrom:void 0},Vh=Symbol("");var bf;(function(e){e[e.aborted=4]="aborted",e[e.cancelled=8]="cancelled",e[e.duplicated=16]="duplicated"})(bf||(bf={}));function gl(e,t){return Ke(new Error,{type:e,[Vh]:!0},t)}function Bn(e,t){return e instanceof Error&&Vh in e&&(t==null||!!(e.type&t))}const pf="[^/]+?",sk={sensitive:!1,strict:!1,start:!0,end:!0},uk=/[.+*?^${}()[\]/\\]/g;function ck(e,t){const n=Ke({},sk,t),a=[];let l=n.start?"^":"";const o=[];for(const u of e){const c=u.length?[]:[90];n.strict&&!u.length&&(l+="/");for(let f=0;ft.length?t.length===1&&t[0]===80?1:-1:0}function Ph(e,t){let n=0;const a=e.score,l=t.score;for(;n0&&t[t.length-1]<0}const fk={type:0,value:""},vk=/[a-zA-Z0-9_]/;function mk(e){if(!e)return[[]];if(e==="/")return[[fk]];if(!e.startsWith("/"))throw new Error(`Invalid path "${e}"`);function t(m){throw new Error(`ERR (${n})/"${u}": ${m}`)}let n=0,a=n;const l=[];let o;function i(){o&&l.push(o),o=[]}let r=0,s,u="",c="";function f(){u&&(n===0?o.push({type:0,value:u}):n===1||n===2||n===3?(o.length>1&&(s==="*"||s==="+")&&t(`A repeatable param (${u}) must be alone in its segment. eg: '/:ids+.`),o.push({type:1,value:u,regexp:c,repeatable:s==="*"||s==="+",optional:s==="*"||s==="?"})):t("Invalid state to consume buffer"),u="")}function v(){u+=s}for(;r{i(S)}:Ul}function i(c){if(_h(c)){const f=a.get(c);f&&(a.delete(c),n.splice(n.indexOf(f),1),f.children.forEach(i),f.alias.forEach(i))}else{const f=n.indexOf(c);f>-1&&(n.splice(f,1),c.record.name&&a.delete(c.record.name),c.children.forEach(i),c.alias.forEach(i))}}function r(){return n}function s(c){const f=Sk(c,n);n.splice(f,0,c),c.record.name&&!kf(c)&&a.set(c.record.name,c)}function u(c,f){let v,m={},g,h;if("name"in c&&c.name){if(v=a.get(c.name),!v)throw gl(1,{location:c});h=v.record.name,m=Ke(wf(f.params,v.keys.filter(S=>!S.optional).concat(v.parent?v.parent.keys.filter(S=>S.optional):[]).map(S=>S.name)),c.params&&wf(c.params,v.keys.map(S=>S.name))),g=v.stringify(m)}else if(c.path!=null)g=c.path,v=n.find(S=>S.re.test(g)),v&&(m=v.parse(g),h=v.record.name);else{if(v=f.name?a.get(f.name):n.find(S=>S.re.test(f.path)),!v)throw gl(1,{location:c,currentLocation:f});h=v.record.name,m=Ke({},f.params,c.params),g=v.stringify(m)}const y=[];let p=v;for(;p;)y.unshift(p.record),p=p.parent;return{name:h,path:g,params:m,matched:y,meta:pk(y)}}return e.forEach(c=>o(c)),{addRoute:o,resolve:u,removeRoute:i,getRoutes:r,getRecordMatcher:l}}function wf(e,t){const n={};for(const a of t)a in e&&(n[a]=e[a]);return n}function yk(e){return{path:e.path,redirect:e.redirect,name:e.name,meta:e.meta||{},aliasOf:void 0,beforeEnter:e.beforeEnter,props:bk(e),children:e.children||[],instances:{},leaveGuards:new Set,updateGuards:new Set,enterCallbacks:{},components:"components"in e?e.components||null:e.component&&{default:e.component}}}function bk(e){const t={},n=e.props||!1;if("component"in e)t.default=n;else for(const a in e.components)t[a]=typeof n=="object"?n[a]:n;return t}function kf(e){for(;e;){if(e.record.aliasOf)return!0;e=e.parent}return!1}function pk(e){return e.reduce((t,n)=>Ke(t,n.meta),{})}function xf(e,t){const n={};for(const a in e)n[a]=a in t?t[a]:e[a];return n}function Sk(e,t){let n=0,a=t.length;for(;n!==a;){const o=n+a>>1;Ph(e,t[o])<0?a=o:n=o+1}const l=wk(e);return l&&(a=t.lastIndexOf(l,a-1)),a}function wk(e){let t=e;for(;t=t.parent;)if(Ih(t)&&Ph(e,t)===0)return t}function Ih({record:e}){return!!(e.name||e.components&&Object.keys(e.components).length||e.redirect)}function kk(e){const t={};if(e===""||e==="?")return t;const a=(e[0]==="?"?e.slice(1):e).split("&");for(let l=0;lo&&ws(o)):[a&&ws(a)]).forEach(o=>{o!==void 0&&(t+=(t.length?"&":"")+n,o!=null&&(t+="="+o))})}return t}function xk(e){const t={};for(const n in e){const a=e[n];a!==void 0&&(t[n]=vn(a)?a.map(l=>l==null?null:""+l):a==null?a:""+a)}return t}const Ck=Symbol(""),_f=Symbol(""),Yu=Symbol(""),Th=Symbol(""),xs=Symbol("");function Bl(){let e=[];function t(a){return e.push(a),()=>{const l=e.indexOf(a);l>-1&&e.splice(l,1)}}function n(){e=[]}return{add:t,list:()=>e.slice(),reset:n}}function la(e,t,n,a,l,o=i=>i()){const i=a&&(a.enterCallbacks[l]=a.enterCallbacks[l]||[]);return()=>new Promise((r,s)=>{const u=v=>{v===!1?s(gl(4,{from:n,to:t})):v instanceof Error?s(v):rk(v)?s(gl(2,{from:t,to:v})):(i&&a.enterCallbacks[l]===i&&typeof v=="function"&&i.push(v),r())},c=o(()=>e.call(a&&a.instances[l],t,n,u));let f=Promise.resolve(c);e.length<3&&(f=f.then(u)),f.catch(v=>s(v))})}function zr(e,t,n,a,l=o=>o()){const o=[];for(const i of e)for(const r in i.components){let s=i.components[r];if(!(t!=="beforeRouteEnter"&&!i.instances[r]))if(_k(s)){const c=(s.__vccOpts||s)[t];c&&o.push(la(c,n,a,i,r,l))}else{let u=s();o.push(()=>u.then(c=>{if(!c)return Promise.reject(new Error(`Couldn't resolve component "${r}" at "${i.path}"`));const f=Ew(c)?c.default:c;i.components[r]=f;const m=(f.__vccOpts||f)[t];return m&&la(m,n,a,i,r,l)()}))}}return o}function _k(e){return typeof e=="object"||"displayName"in e||"props"in e||"__vccOpts"in e}function Vf(e){const t=Te(Yu),n=Te(Th),a=b(()=>{const s=st(e.to);return t.resolve(s)}),l=b(()=>{const{matched:s}=a.value,{length:u}=s,c=s[u-1],f=n.matched;if(!c||!f.length)return-1;const v=f.findIndex(hl.bind(null,c));if(v>-1)return v;const m=Pf(s[u-2]);return u>1&&Pf(c)===m&&f[f.length-1].path!==m?f.findIndex(hl.bind(null,s[u-2])):v}),o=b(()=>l.value>-1&&Tk(n.params,a.value.params)),i=b(()=>l.value>-1&&l.value===n.matched.length-1&&xh(n.params,a.value.params));function r(s={}){return Ik(s)?t[st(e.replace)?"replace":"push"](st(e.to)).catch(Ul):Promise.resolve()}return{route:a,href:b(()=>a.value.href),isActive:o,isExactActive:i,navigate:r}}const Vk=Mi({name:"RouterLink",compatConfig:{MODE:3},props:{to:{type:[String,Object],required:!0},replace:Boolean,activeClass:String,exactActiveClass:String,custom:Boolean,ariaCurrentValue:{type:String,default:"page"}},useLink:Vf,setup(e,{slots:t}){const n=Tt(Vf(e)),{options:a}=Te(Yu),l=b(()=>({[If(e.activeClass,a.linkActiveClass,"router-link-active")]:n.isActive,[If(e.exactActiveClass,a.linkExactActiveClass,"router-link-exact-active")]:n.isExactActive}));return()=>{const o=t.default&&t.default(n);return e.custom?o:mn("a",{"aria-current":n.isExactActive?e.ariaCurrentValue:null,href:n.href,onClick:n.navigate,class:l.value},o)}}}),Pk=Vk;function Ik(e){if(!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)&&!e.defaultPrevented&&!(e.button!==void 0&&e.button!==0)){if(e.currentTarget&&e.currentTarget.getAttribute){const t=e.currentTarget.getAttribute("target");if(/\b_blank\b/i.test(t))return}return e.preventDefault&&e.preventDefault(),!0}}function Tk(e,t){for(const n in t){const a=t[n],l=e[n];if(typeof a=="string"){if(a!==l)return!1}else if(!vn(l)||l.length!==a.length||a.some((o,i)=>o!==l[i]))return!1}return!0}function Pf(e){return e?e.aliasOf?e.aliasOf.path:e.path:""}const If=(e,t,n)=>e??t??n,Ek=Mi({name:"RouterView",inheritAttrs:!1,props:{name:{type:String,default:"default"},route:Object},compatConfig:{MODE:3},setup(e,{attrs:t,slots:n}){const a=Te(xs),l=b(()=>e.route||a.value),o=Te(_f,0),i=b(()=>{let u=st(o);const{matched:c}=l.value;let f;for(;(f=c[u])&&!f.components;)u++;return u}),r=b(()=>l.value.matched[i.value]);We(_f,b(()=>i.value+1)),We(Ck,r),We(xs,l);const s=te();return de(()=>[s.value,r.value,e.name],([u,c,f],[v,m,g])=>{c&&(c.instances[f]=u,m&&m!==c&&u&&u===v&&(c.leaveGuards.size||(c.leaveGuards=m.leaveGuards),c.updateGuards.size||(c.updateGuards=m.updateGuards))),u&&c&&(!m||!hl(c,m)||!v)&&(c.enterCallbacks[f]||[]).forEach(h=>h(u))},{flush:"post"}),()=>{const u=l.value,c=e.name,f=r.value,v=f&&f.components[c];if(!v)return Tf(n.default,{Component:v,route:u});const m=f.props[c],g=m?m===!0?u.params:typeof m=="function"?m(u):m:null,y=mn(v,Ke({},g,t,{onVnodeUnmounted:p=>{p.component.isUnmounted&&(f.instances[c]=null)},ref:s}));return Tf(n.default,{Component:y,route:u})||y}}});function Tf(e,t){if(!e)return null;const n=e(t);return n.length===1?n[0]:n}const Ak=Ek;function Bk(e){const t=gk(e.routes,e),n=e.parseQuery||kk,a=e.stringifyQuery||Cf,l=e.history,o=Bl(),i=Bl(),r=Bl(),s=ue(Zn);let u=Zn;el&&e.scrollBehavior&&"scrollRestoration"in history&&(history.scrollRestoration="manual");const c=Nr.bind(null,D=>""+D),f=Nr.bind(null,jw),v=Nr.bind(null,ro);function m(D,ie){let le,G;return _h(D)?(le=t.getRecordMatcher(D),G=ie):G=D,t.addRoute(G,le)}function g(D){const ie=t.getRecordMatcher(D);ie&&t.removeRoute(ie)}function h(){return t.getRoutes().map(D=>D.record)}function y(D){return!!t.getRecordMatcher(D)}function p(D,ie){if(ie=Ke({},ie||s.value),typeof D=="string"){const B=Hr(n,D,ie.path),O=t.resolve({path:B.path},ie),H=l.createHref(B.fullPath);return Ke(B,O,{params:v(O.params),hash:ro(B.hash),redirectedFrom:void 0,href:H})}let le;if(D.path!=null)le=Ke({},D,{path:Hr(n,D.path,ie.path).path});else{const B=Ke({},D.params);for(const O in B)B[O]==null&&delete B[O];le=Ke({},D,{params:f(B)}),ie.params=f(ie.params)}const G=t.resolve(le,ie),be=D.hash||"";G.params=c(v(G.params));const Q=Gw(a,Ke({},D,{hash:Nw(be),path:G.path})),_=l.createHref(Q);return Ke({fullPath:Q,hash:be,query:a===Cf?xk(D.query):D.query||{}},G,{redirectedFrom:void 0,href:_})}function S(D){return typeof D=="string"?Hr(n,D,s.value.path):Ke({},D)}function C(D,ie){if(u!==D)return gl(8,{from:ie,to:D})}function A(D){return V(D)}function x(D){return A(Ke(S(D),{replace:!0}))}function k(D){const ie=D.matched[D.matched.length-1];if(ie&&ie.redirect){const{redirect:le}=ie;let G=typeof le=="function"?le(D):le;return typeof G=="string"&&(G=G.includes("?")||G.includes("#")?G=S(G):{path:G},G.params={}),Ke({query:D.query,hash:D.hash,params:G.path!=null?{}:D.params},G)}}function V(D,ie){const le=u=p(D),G=s.value,be=D.state,Q=D.force,_=D.replace===!0,B=k(le);if(B)return V(Ke(S(B),{state:typeof B=="object"?Ke({},be,B.state):be,force:Q,replace:_}),ie||le);const O=le;O.redirectedFrom=ie;let H;return!Q&&Kw(a,G,le)&&(H=gl(16,{to:O,from:G}),U(G,G,!0,!1)),(H?Promise.resolve(H):P(O,G)).catch(W=>Bn(W)?Bn(W,2)?W:M(W):$(W,O,G)).then(W=>{if(W){if(Bn(W,2))return V(Ke({replace:_},S(W.to),{state:typeof W.to=="object"?Ke({},be,W.to.state):be,force:Q}),ie||O)}else W=I(O,G,!0,_,be);return E(O,G,W),W})}function T(D,ie){const le=C(D,ie);return le?Promise.reject(le):Promise.resolve()}function w(D){const ie=we.values().next().value;return ie&&typeof ie.runWithContext=="function"?ie.runWithContext(D):D()}function P(D,ie){let le;const[G,be,Q]=Rk(D,ie);le=zr(G.reverse(),"beforeRouteLeave",D,ie);for(const B of G)B.leaveGuards.forEach(O=>{le.push(la(O,D,ie))});const _=T.bind(null,D,ie);return le.push(_),K(le).then(()=>{le=[];for(const B of o.list())le.push(la(B,D,ie));return le.push(_),K(le)}).then(()=>{le=zr(be,"beforeRouteUpdate",D,ie);for(const B of be)B.updateGuards.forEach(O=>{le.push(la(O,D,ie))});return le.push(_),K(le)}).then(()=>{le=[];for(const B of Q)if(B.beforeEnter)if(vn(B.beforeEnter))for(const O of B.beforeEnter)le.push(la(O,D,ie));else le.push(la(B.beforeEnter,D,ie));return le.push(_),K(le)}).then(()=>(D.matched.forEach(B=>B.enterCallbacks={}),le=zr(Q,"beforeRouteEnter",D,ie,w),le.push(_),K(le))).then(()=>{le=[];for(const B of i.list())le.push(la(B,D,ie));return le.push(_),K(le)}).catch(B=>Bn(B,8)?B:Promise.reject(B))}function E(D,ie,le){r.list().forEach(G=>w(()=>G(D,ie,le)))}function I(D,ie,le,G,be){const Q=C(D,ie);if(Q)return Q;const _=ie===Zn,B=el?history.state:{};le&&(G||_?l.replace(D.fullPath,Ke({scroll:_&&B&&B.scroll},be)):l.push(D.fullPath,be)),s.value=D,U(D,ie,le,_),M()}let R;function F(){R||(R=l.listen((D,ie,le)=>{if(!ye.listening)return;const G=p(D),be=k(G);if(be){V(Ke(be,{replace:!0}),G).catch(Ul);return}u=G;const Q=s.value;el&&tk(gf(Q.fullPath,le.delta),Gi()),P(G,Q).catch(_=>Bn(_,12)?_:Bn(_,2)?(V(_.to,G).then(B=>{Bn(B,20)&&!le.delta&&le.type===so.pop&&l.go(-1,!1)}).catch(Ul),Promise.reject()):(le.delta&&l.go(-le.delta,!1),$(_,G,Q))).then(_=>{_=_||I(G,Q,!1),_&&(le.delta&&!Bn(_,8)?l.go(-le.delta,!1):le.type===so.pop&&Bn(_,20)&&l.go(-1,!1)),E(G,Q,_)}).catch(Ul)}))}let z=Bl(),q=Bl(),ee;function $(D,ie,le){M(D);const G=q.list();return G.length?G.forEach(be=>be(D,ie,le)):console.error(D),Promise.reject(D)}function Z(){return ee&&s.value!==Zn?Promise.resolve():new Promise((D,ie)=>{z.add([D,ie])})}function M(D){return ee||(ee=!D,F(),z.list().forEach(([ie,le])=>D?le(D):ie()),z.reset()),D}function U(D,ie,le,G){const{scrollBehavior:be}=e;if(!el||!be)return Promise.resolve();const Q=!le&&nk(gf(D.fullPath,0))||(G||!le)&&history.state&&history.state.scroll||null;return Oe().then(()=>be(D,ie,Q)).then(_=>_&&ek(_)).catch(_=>$(_,D,ie))}const ne=D=>l.go(D);let he;const we=new Set,ye={currentRoute:s,listening:!0,addRoute:m,removeRoute:g,hasRoute:y,getRoutes:h,resolve:p,options:e,push:A,replace:x,go:ne,back:()=>ne(-1),forward:()=>ne(1),beforeEach:o.add,beforeResolve:i.add,afterEach:r.add,onError:q.add,isReady:Z,install(D){const ie=this;D.component("RouterLink",Pk),D.component("RouterView",Ak),D.config.globalProperties.$router=ie,Object.defineProperty(D.config.globalProperties,"$route",{enumerable:!0,get:()=>st(s)}),el&&!he&&s.value===Zn&&(he=!0,A(l.location).catch(be=>{}));const le={};for(const be in Zn)Object.defineProperty(le,be,{get:()=>s.value[be],enumerable:!0});D.provide(Yu,ie),D.provide(Th,zv(le)),D.provide(xs,s);const G=D.unmount;we.add(D),D.unmount=function(){we.delete(D),we.size<1&&(u=Zn,R&&R(),R=null,s.value=Zn,he=!1,ee=!1),G()}}};function K(D){return D.reduce((ie,le)=>ie.then(()=>w(le)),Promise.resolve())}return ye}function Rk(e,t){const n=[],a=[],l=[],o=Math.max(t.matched.length,e.matched.length);for(let i=0;ihl(u,r))?a.push(r):n.push(r));const s=e.matched[i];s&&(t.matched.find(u=>hl(u,s))||l.push(s))}return[n,a,l]}const Ok={name:"MainHome",data(){return{list:[],currentPage:1,scale:10,isUserLoggedIn:!1}},computed:{totalPages(){return Math.ceil(this.list.length/this.scale)},paginatedList(){const e=(this.currentPage-1)*this.scale,t=e+this.scale;return this.list.slice(e,t)}},methods:{navigateToAddBucket(){this.$router.push("/add_bucket")},alertLogin(){alert("로그인 후 이용해 주세요!")}}},Eh=e=>(jn("data-v-4ebe6f31"),e=e(),Un(),e),Dk=Eh(()=>me("div",{class:"todayList"},[me("h3",null,"이루어진 버킷리스트"),me("p",null,"다른사람들이 이루어낸 버킷리스트입니다:)")],-1)),Lk={id:"board_list"},Mk=["src"],Fk={class:"card-body"},$k={class:"card-title"},Nk={class:"card-text"},Hk={class:"card-footer"},zk={class:"text-muted"},jk=Eh(()=>me("br",null,null,-1)),Uk={class:"text-muted"},Wk={id:"page_num"},Gk={key:0},Kk=["onClick"],Yk={key:1},qk={key:0},Xk={key:1};function Jk(e,t,n,a,l,o){return ze(),qe("div",null,[Dk,me("div",Lk,[(ze(!0),qe(ge,null,mi(o.paginatedList,(i,r)=>(ze(),qe("div",{key:r,class:"card"},[me("p",null,It(i.id)+"님의 버킷리스트",1),me("img",{class:"card-img-top",src:`../data/${i.file_image}`,alt:"Card image cap"},null,8,Mk),me("div",Fk,[me("h3",$k,It(i.goal),1),me("p",Nk,It(i.how),1)]),me("div",Hk,[me("small",zk,"등록일: "+It(i.regist_day),1),jk,me("small",Uk,"예정일: "+It(i.target_day),1)])]))),128))]),me("ul",Wk,[l.currentPage>1?(ze(),qe("li",Gk,[me("button",{onClick:t[0]||(t[0]=i=>l.currentPage--)},"◀ 이전")])):Ql("",!0),(ze(!0),qe(ge,null,mi(o.totalPages,i=>(ze(),qe("li",{key:i},[me("button",{onClick:r=>l.currentPage=i,class:wo({active:l.currentPage===i})},It(i),11,Kk)]))),128)),l.currentPagel.currentPage++)},"다음 ▶")])):Ql("",!0)]),l.isUserLoggedIn?(ze(),qe("div",qk,[me("button",{onClick:t[2]||(t[2]=(...i)=>o.navigateToAddBucket&&o.navigateToAddBucket(...i)),class:"btn btn-warning btn-sm"},"버킷리스트 작성하러가기")])):(ze(),qe("div",Xk,[me("button",{onClick:t[3]||(t[3]=(...i)=>o.alertLogin&&o.alertLogin(...i)),class:"btn btn-warning btn-sm"},"버킷리스트 작성하러가기")]))])}const Zk=Pn(Ok,[["render",Jk],["__scopeId","data-v-4ebe6f31"]]),Qk={name:"BoardList",data(){return{list:[],currentPage:1,scale:6,isUserLoggedIn:!1}},computed:{totalPages(){return Math.ceil(this.list.length/this.scale)},paginatedList(){const e=(this.currentPage-1)*this.scale,t=e+this.scale;return this.list.slice(e,t)}},methods:{navigateToAddBucket(){this.$router.push("/add_bucket")},alertLogin(){alert("로그인 후 이용해 주세요!")}}},qu=e=>(jn("data-v-dfdd62bc"),e=e(),Un(),e),ex={id:"board_box"},tx=qu(()=>me("h3",null,"버킷리스트 둘러보기",-1)),nx=qu(()=>me("p",null,"다른사람들은 어떤 버킷리스트를 가지고 있나 둘러보아요:)",-1)),ax={id:"board_list"},lx=["src"],ox={class:"card-body"},ix={class:"card-title"},rx={class:"card-text"},sx={class:"card-footer"},ux={class:"text-muted"},cx=qu(()=>me("br",null,null,-1)),dx={class:"text-muted"},fx={id:"page_num"},vx={key:0},mx=["onClick"],hx={key:1},gx={key:0},yx={key:1};function bx(e,t,n,a,l,o){return ze(),qe("div",null,[me("section",null,[me("div",ex,[tx,nx,me("div",ax,[(ze(!0),qe(ge,null,mi(o.paginatedList,i=>(ze(),qe("div",{key:i.num,class:"card"},[me("p",null,It(i.id)+"님의 버킷리스트",1),me("img",{class:"card-img-top",src:`../data/${i.file_image}`,alt:"Card image cap"},null,8,lx),me("div",ox,[me("h3",ix,It(i.goal),1),me("p",rx,It(i.how),1)]),me("div",sx,[me("small",ux,"등록일: "+It(i.regist_day),1),cx,me("small",dx,"예정일: "+It(i.target_day),1)])]))),128))]),me("ul",fx,[l.currentPage>1?(ze(),qe("li",vx,[me("button",{onClick:t[0]||(t[0]=i=>l.currentPage--)},"◀ 이전")])):Ql("",!0),(ze(!0),qe(ge,null,mi(o.totalPages,i=>(ze(),qe("li",{key:i},[me("button",{onClick:r=>l.currentPage=i,class:wo({active:l.currentPage===i})},It(i),11,mx)]))),128)),l.currentPagel.currentPage++)},"다음 ▶")])):Ql("",!0)]),l.isUserLoggedIn?(ze(),qe("div",gx,[me("button",{onClick:t[2]||(t[2]=(...i)=>o.navigateToAddBucket&&o.navigateToAddBucket(...i)),class:"btn btn-warning btn-sm"},"버킷리스트 작성하러가기")])):(ze(),qe("div",yx,[me("button",{onClick:t[3]||(t[3]=(...i)=>o.alertLogin&&o.alertLogin(...i)),class:"btn btn-warning btn-sm"},"버킷리스트 작성하러가기")]))])])])}const px=Pn(Qk,[["render",bx],["__scopeId","data-v-dfdd62bc"]]),Sx={name:"CreateBucket",data(){return{userId:"",goal:"",kind:"want-do",targetDate:"",how:"",file:null}},methods:{checkInput(){if(!this.goal){alert("버킷리스트를 입력하세요!"),this.$refs.goal.focus();return}if(!this.targetDate){alert("목표날짜를 입력하세요!"),this.$refs.targetDate.focus();return}if(!this.how){alert("방법을 입력하세요!"),this.$refs.how.focus();return}this.submitForm(),alert("버킷리스트를 등록하였습니다:)")},onFileChange(e){this.file=e.target.files[0]},submitForm(){const e=new FormData;e.append("goal",this.goal),e.append("kind",this.kind),e.append("target_date",this.targetDate),e.append("how",this.how),e.append("upfile",this.file),axios.post("/api/board-insert",e).then(t=>{console.log(t.data)}).catch(t=>{console.error("There was an error!",t)})}}},va=e=>(jn("data-v-6ab8e9b4"),e=e(),Un(),e),wx=va(()=>me("h3",null,"버킷리스트 작성하기",-1)),kx={class:"add-form"},xx=va(()=>me("div",{class:"card-header"},[me("h4",null,"BUCKET LIST")],-1)),Cx={class:"goal"},_x={for:"goal"},Vx={class:"kind"},Px=va(()=>me("label",{class:"form-check-label",for:"want-do"},"하고싶은 일",-1)),Ix=va(()=>me("label",{class:"form-check-label",for:"want-have"},"갖고싶은 것",-1)),Tx={class:"goal-date"},Ex=va(()=>me("label",{for:"target_date"},"목표날짜",-1)),Ax={class:"how"},Bx=va(()=>me("label",{for:"how"},"방법",-1)),Rx={class:"upload-img"},Ox=va(()=>me("label",{for:"upfile"},"목표사진 올리기",-1)),Dx=va(()=>me("button",{type:"submit",class:"btn btn-warning"},"완료",-1));function Lx(e,t,n,a,l,o){return ze(),qe("div",null,[me("section",null,[wx,me("div",kx,[xx,me("form",{onSubmit:t[6]||(t[6]=eo((...i)=>o.checkInput&&o.checkInput(...i),["prevent"]))},[me("div",Cx,[me("label",_x,It(l.userId)+"의 버킷리스트",1),Ue(me("input",{id:"goal","onUpdate:modelValue":t[0]||(t[0]=i=>l.goal=i),type:"text",class:"form-control",placeholder:"목표를 적어주세요"},null,512),[[li,l.goal]])]),me("div",Vx,[Ue(me("input",{type:"radio",name:"kind",id:"want-do",value:"want-do","onUpdate:modelValue":t[1]||(t[1]=i=>l.kind=i),checked:""},null,512),[[Md,l.kind]]),Px,Ue(me("input",{type:"radio",name:"kind",id:"want-have",value:"want-have","onUpdate:modelValue":t[2]||(t[2]=i=>l.kind=i)},null,512),[[Md,l.kind]]),Ix]),me("div",Tx,[Ex,Ue(me("input",{id:"target_date","onUpdate:modelValue":t[3]||(t[3]=i=>l.targetDate=i),type:"text",class:"form-control",placeholder:"언제까지 달성할지 적어주세요"},null,512),[[li,l.targetDate]])]),me("div",Ax,[Bx,Ue(me("input",{id:"how","onUpdate:modelValue":t[4]||(t[4]=i=>l.how=i),type:"text",class:"form-control",placeholder:"어떻게 달성할지 알려주세요"},null,512),[[li,l.how]])]),me("div",Rx,[Ox,me("input",{id:"upfile",onChange:t[5]||(t[5]=(...i)=>o.onFileChange&&o.onFileChange(...i)),type:"file",class:"form-control-file"},null,32)]),Dx],32)])])])}const Mx=Pn(Sx,[["render",Lx],["__scopeId","data-v-6ab8e9b4"]]),Fx={name:"JoinMember",data(){return{errorMessage:""}},methods:{loginWithGoogle(){try{const e="http://localhost:8081/oauth2/authorization/google";window.location.href=e}catch{this.errorMessage="로그인 중 오류가 발생했습니다."}},async fetchLoginResponse(){try{const e=await axios.get("http://localhost:8081/auth/success",{withCredentials:!0}),{accessToken:t,refreshToken:n,username:a,userId:l}=e.data;localStorage.setItem("accessToken",t),localStorage.setItem("refreshToken",n),this.$router.push({name:"MainHome"})}catch(e){console.error("로그인 응답 처리 오류:",e),this.errorMessage="로그인 결과를 가져오는 중 오류가 발생했습니다."}}},mounted(){this.fetchLoginResponse()}},$x=e=>(jn("data-v-d44d05d4"),e=e(),Un(),e),Nx={id:"main_content"},Hx={id:"login_box"},zx=$x(()=>me("h2",null,"소셜 로그인",-1)),jx={key:0,class:"error-message"};function Ux(e,t,n,a,l,o){return ze(),qe("div",null,[me("section",null,[me("div",Nx,[me("div",Hx,[zx,me("button",{onClick:t[0]||(t[0]=(...i)=>o.loginWithGoogle&&o.loginWithGoogle(...i)),class:"btn btn-danger"},"Google로 로그인"),l.errorMessage?(ze(),qe("div",jx,It(l.errorMessage),1)):Ql("",!0)])])])])}const Wx=Pn(Fx,[["render",Ux],["__scopeId","data-v-d44d05d4"]]),Yt=L({border:[Boolean,Number,String]},"border");function ln(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Tn();return{borderClasses:b(()=>{const a=rt(e)?e.value:e.border,l=[];if(a===!0||a==="")l.push(`${t}--border`);else if(typeof a=="string"||a===0)for(const o of String(a).split(" "))l.push(`border-${o}`);return l})}}const Gx=[null,"default","comfortable","compact"],bt=L({density:{type:String,default:"default",validator:e=>Gx.includes(e)}},"density");function Dt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Tn();return{densityClasses:b(()=>`${t}--density-${e.density}`)}}const vt=L({elevation:{type:[Number,String],validator(e){const t=parseInt(e);return!isNaN(t)&&t>=0&&t<=24}}},"elevation");function kt(e){return{elevationClasses:b(()=>{const n=rt(e)?e.value:e.elevation,a=[];return n==null||a.push(`elevation-${n}`),a})}}const Xe=L({rounded:{type:[Boolean,Number,String],default:void 0},tile:Boolean},"rounded");function tt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Tn();return{roundedClasses:b(()=>{const a=rt(e)?e.value:e.rounded,l=rt(e)?e.value:e.tile,o=[];if(a===!0||a==="")o.push(`${t}--rounded`);else if(typeof a=="string"||a===0)for(const i of String(a).split(" "))o.push(`rounded-${i}`);else(l||a===!1)&&o.push("rounded-0");return o})}}function Xu(e){return $u(()=>{const t=[],n={};if(e.value.background)if(ps(e.value.background)){if(n.backgroundColor=e.value.background,!e.value.text&&Q0(e.value.background)){const a=Qt(e.value.background);if(a.a==null||a.a===1){const l=oh(a);n.color=l,n.caretColor=l}}}else t.push(`bg-${e.value.background}`);return e.value.text&&(ps(e.value.text)?(n.color=e.value.text,n.caretColor=e.value.text):t.push(`text-${e.value.text}`)),{colorClasses:t,colorStyles:n}})}function Ct(e,t){const n=b(()=>({text:rt(e)?e.value:t?e[t]:null})),{colorClasses:a,colorStyles:l}=Xu(n);return{textColorClasses:a,textColorStyles:l}}function Ge(e,t){const n=b(()=>({background:rt(e)?e.value:t?e[t]:null})),{colorClasses:a,colorStyles:l}=Xu(n);return{backgroundColorClasses:a,backgroundColorStyles:l}}const Kx=["elevated","flat","tonal","outlined","text","plain"];function ma(e,t){return d(ge,null,[e&&d("span",{key:"overlay",class:`${t}__overlay`},null),d("span",{key:"underlay",class:`${t}__underlay`},null)])}const on=L({color:String,variant:{type:String,default:"elevated",validator:e=>Kx.includes(e)}},"variant");function za(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Tn();const n=b(()=>{const{variant:o}=st(e);return`${t}--variant-${o}`}),{colorClasses:a,colorStyles:l}=Xu(b(()=>{const{variant:o,color:i}=st(e);return{[["elevated","flat"].includes(o)?"background":"text"]:i}}));return{colorClasses:a,colorStyles:l,variantClasses:n}}const Ah=L({baseColor:String,divided:Boolean,...Yt(),...ve(),...bt(),...vt(),...Xe(),...Pe(),...De(),...on()},"VBtnGroup"),Cs=j()({name:"VBtnGroup",props:Ah(),setup(e,t){let{slots:n}=t;const{themeClasses:a}=$e(e),{densityClasses:l}=Dt(e),{borderClasses:o}=ln(e),{elevationClasses:i}=kt(e),{roundedClasses:r}=tt(e);et({VBtn:{height:"auto",baseColor:N(e,"baseColor"),color:N(e,"color"),density:N(e,"density"),flat:!0,variant:N(e,"variant")}}),Y(()=>d(e.tag,{class:["v-btn-group",{"v-btn-group--divided":e.divided},a.value,o.value,l.value,i.value,r.value,e.class],style:e.style},n))}}),ja=L({modelValue:{type:null,default:void 0},multiple:Boolean,mandatory:[Boolean,String],max:Number,selectedClass:String,disabled:Boolean},"group"),Ua=L({value:null,disabled:Boolean,selectedClass:String},"group-item");function Wa(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;const a=at("useGroupItem");if(!a)throw new Error("[Vuetify] useGroupItem composable must be used inside a component setup function");const l=wt();We(Symbol.for(`${t.description}:id`),l);const o=Te(t,null);if(!o){if(!n)return o;throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${t.description}`)}const i=N(e,"value"),r=b(()=>!!(o.disabled.value||e.disabled));o.register({id:l,value:i,disabled:r},a),Pt(()=>{o.unregister(l)});const s=b(()=>o.isSelected(l)),u=b(()=>o.items.value[0].id===l),c=b(()=>o.items.value[o.items.value.length-1].id===l),f=b(()=>s.value&&[o.selectedClass.value,e.selectedClass]);return de(s,v=>{a.emit("group:selected",{value:v})},{flush:"sync"}),{id:l,isSelected:s,isFirst:u,isLast:c,toggle:()=>o.select(l,!s.value),select:v=>o.select(l,v),selectedClass:f,value:i,disabled:r,group:o}}function ha(e,t){let n=!1;const a=Tt([]),l=Se(e,"modelValue",[],v=>v==null?[]:Bh(a,Qe(v)),v=>{const m=qx(a,v);return e.multiple?m:m[0]}),o=at("useGroup");function i(v,m){const g=v,h=Symbol.for(`${t.description}:id`),p=tl(h,o==null?void 0:o.vnode).indexOf(m);st(g.value)==null&&(g.value=p,g.useIndexAsValue=!0),p>-1?a.splice(p,0,g):a.push(g)}function r(v){if(n)return;s();const m=a.findIndex(g=>g.id===v);a.splice(m,1)}function s(){const v=a.find(m=>!m.disabled);v&&e.mandatory==="force"&&!l.value.length&&(l.value=[v.id])}Vt(()=>{s()}),Pt(()=>{n=!0}),Vu(()=>{for(let v=0;vh.id===v);if(!(m&&(g!=null&&g.disabled)))if(e.multiple){const h=l.value.slice(),y=h.findIndex(S=>S===v),p=~y;if(m=m??!p,p&&e.mandatory&&h.length<=1||!p&&e.max!=null&&h.length+1>e.max)return;y<0&&m?h.push(v):y>=0&&!m&&h.splice(y,1),l.value=h}else{const h=l.value.includes(v);if(e.mandatory&&h)return;l.value=m??!h?[v]:[]}}function c(v){if(e.multiple,l.value.length){const m=l.value[0],g=a.findIndex(p=>p.id===m);let h=(g+v)%a.length,y=a[h];for(;y.disabled&&h!==g;)h=(h+v)%a.length,y=a[h];if(y.disabled)return;l.value=[a[h].id]}else{const m=a.find(g=>!g.disabled);m&&(l.value=[m.id])}}const f={register:i,unregister:r,selected:l,select:u,disabled:N(e,"disabled"),prev:()=>c(a.length-1),next:()=>c(1),isSelected:v=>l.value.includes(v),selectedClass:b(()=>e.selectedClass),items:b(()=>a),getItemIndex:v=>Yx(a,v)};return We(t,f),f}function Yx(e,t){const n=Bh(e,[t]);return n.length?e.findIndex(a=>a.id===n[0]):-1}function Bh(e,t){const n=[];return t.forEach(a=>{const l=e.find(i=>In(a,i.value)),o=e[a];(l==null?void 0:l.value)!=null?n.push(l.id):o!=null&&n.push(o.id)}),n}function qx(e,t){const n=[];return t.forEach(a=>{const l=e.findIndex(o=>o.id===a);if(~l){const o=e[l];n.push(o.value!=null?o.value:l)}}),n}const Ju=Symbol.for("vuetify:v-btn-toggle"),Xx=L({...Ah(),...ja()},"VBtnToggle"),Jx=j()({name:"VBtnToggle",props:Xx(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{isSelected:a,next:l,prev:o,select:i,selected:r}=ha(e,Ju);return Y(()=>{const s=Cs.filterProps(e);return d(Cs,X({class:["v-btn-toggle",e.class]},s,{style:e.style}),{default:()=>{var u;return[(u=n.default)==null?void 0:u.call(n,{isSelected:a,next:l,prev:o,select:i,selected:r})]}})}),{next:l,prev:o,select:i}}}),Zx=L({defaults:Object,disabled:Boolean,reset:[Number,String],root:[Boolean,String],scoped:Boolean},"VDefaultsProvider"),Be=j(!1)({name:"VDefaultsProvider",props:Zx(),setup(e,t){let{slots:n}=t;const{defaults:a,disabled:l,reset:o,root:i,scoped:r}=Ri(e);return et(a,{reset:o,root:i,scoped:r,disabled:l}),()=>{var s;return(s=n.default)==null?void 0:s.call(n)}}}),Qx={collapse:"mdi-chevron-up",complete:"mdi-check",cancel:"mdi-close-circle",close:"mdi-close",delete:"mdi-close-circle",clear:"mdi-close-circle",success:"mdi-check-circle",info:"mdi-information",warning:"mdi-alert-circle",error:"mdi-close-circle",prev:"mdi-chevron-left",next:"mdi-chevron-right",checkboxOn:"mdi-checkbox-marked",checkboxOff:"mdi-checkbox-blank-outline",checkboxIndeterminate:"mdi-minus-box",delimiter:"mdi-circle",sortAsc:"mdi-arrow-up",sortDesc:"mdi-arrow-down",expand:"mdi-chevron-down",menu:"mdi-menu",subgroup:"mdi-menu-down",dropdown:"mdi-menu-down",radioOn:"mdi-radiobox-marked",radioOff:"mdi-radiobox-blank",edit:"mdi-pencil",ratingEmpty:"mdi-star-outline",ratingFull:"mdi-star",ratingHalf:"mdi-star-half-full",loading:"mdi-cached",first:"mdi-page-first",last:"mdi-page-last",unfold:"mdi-unfold-more-horizontal",file:"mdi-paperclip",plus:"mdi-plus",minus:"mdi-minus",calendar:"mdi-calendar",treeviewCollapse:"mdi-menu-down",treeviewExpand:"mdi-menu-right",eyeDropper:"mdi-eyedropper"},eC={component:e=>mn(Qu,{...e,class:"mdi"})},_e=[String,Function,Object,Array],_s=Symbol.for("vuetify:icons"),Ki=L({icon:{type:_e},tag:{type:String,required:!0}},"icon"),Vs=j()({name:"VComponentIcon",props:Ki(),setup(e,t){let{slots:n}=t;return()=>{const a=e.icon;return d(e.tag,null,{default:()=>{var l;return[e.icon?d(a,null,null):(l=n.default)==null?void 0:l.call(n)]}})}}}),Zu=Kt({name:"VSvgIcon",inheritAttrs:!1,props:Ki(),setup(e,t){let{attrs:n}=t;return()=>d(e.tag,X(n,{style:null}),{default:()=>[d("svg",{class:"v-icon__svg",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",role:"img","aria-hidden":"true"},[Array.isArray(e.icon)?e.icon.map(a=>Array.isArray(a)?d("path",{d:a[0],"fill-opacity":a[1]},null):d("path",{d:a},null)):d("path",{d:e.icon},null)])]})}}),tC=Kt({name:"VLigatureIcon",props:Ki(),setup(e){return()=>d(e.tag,null,{default:()=>[e.icon]})}}),Qu=Kt({name:"VClassIcon",props:Ki(),setup(e){return()=>d(e.tag,{class:e.icon},null)}});function nC(){return{svg:{component:Zu},class:{component:Qu}}}function aC(e){const t=nC(),n=(e==null?void 0:e.defaultSet)??"mdi";return n==="mdi"&&!t.mdi&&(t.mdi=eC),Bt({defaultSet:n,sets:t,aliases:{...Qx,vuetify:["M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z",["M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z",.6]],"vuetify-outline":"svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z","vuetify-play":["m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z",["M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z",.6]]}},e)}const lC=e=>{const t=Te(_s);if(!t)throw new Error("Missing Vuetify Icons provide!");return{iconData:b(()=>{var s;const a=st(e);if(!a)return{component:Vs};let l=a;if(typeof l=="string"&&(l=l.trim(),l.startsWith("$")&&(l=(s=t.aliases)==null?void 0:s[l.slice(1)])),Array.isArray(l))return{component:Zu,icon:l};if(typeof l!="string")return{component:Vs,icon:l};const o=Object.keys(t.sets).find(u=>typeof l=="string"&&l.startsWith(`${u}:`)),i=o?l.slice(o.length+1):l;return{component:t.sets[o??t.defaultSet].component,icon:i}})}},oC=["x-small","small","default","large","x-large"],An=L({size:{type:[String,Number],default:"default"}},"size");function wl(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Tn();return $u(()=>{let n,a;return Si(oC,e.size)?n=`${t}--size-${e.size}`:e.size&&(a={width:fe(e.size),height:fe(e.size)}),{sizeClasses:n,sizeStyles:a}})}const iC=L({color:String,disabled:Boolean,start:Boolean,end:Boolean,icon:_e,...ve(),...An(),...Pe({tag:"i"}),...De()},"VIcon"),Fe=j()({name:"VIcon",props:iC(),setup(e,t){let{attrs:n,slots:a}=t;const l=te(),{themeClasses:o}=$e(e),{iconData:i}=lC(b(()=>l.value||e.icon)),{sizeClasses:r}=wl(e),{textColorClasses:s,textColorStyles:u}=Ct(N(e,"color"));return Y(()=>{var v,m;const c=(v=a.default)==null?void 0:v.call(a);c&&(l.value=(m=jm(c).filter(g=>g.type===xo&&g.children&&typeof g.children=="string")[0])==null?void 0:m.children);const f=!!(n.onClick||n.onClickOnce);return d(i.value.component,{tag:e.tag,icon:i.value.icon,class:["v-icon","notranslate",o.value,r.value,s.value,{"v-icon--clickable":f,"v-icon--disabled":e.disabled,"v-icon--start":e.start,"v-icon--end":e.end},e.class],style:[r.value?void 0:{fontSize:fe(e.size),height:fe(e.size),width:fe(e.size)},u.value,e.style],role:f?"button":void 0,"aria-hidden":!f,tabindex:f?e.disabled?-1:0:void 0},{default:()=>[c]})}),{}}});function Yi(e,t){const n=te(),a=ue(!1);if(Mu){const l=new IntersectionObserver(o=>{e==null||e(o,l),a.value=!!o.find(i=>i.isIntersecting)},t);Pt(()=>{l.disconnect()}),de(n,(o,i)=>{i&&(l.unobserve(i),a.value=!1),o&&l.observe(o)},{flush:"post"})}return{intersectionRef:n,isIntersecting:a}}const rC=L({bgColor:String,color:String,indeterminate:[Boolean,String],modelValue:{type:[Number,String],default:0},rotate:{type:[Number,String],default:0},width:{type:[Number,String],default:4},...ve(),...An(),...Pe({tag:"div"}),...De()},"VProgressCircular"),yl=j()({name:"VProgressCircular",props:rC(),setup(e,t){let{slots:n}=t;const a=20,l=2*Math.PI*a,o=te(),{themeClasses:i}=$e(e),{sizeClasses:r,sizeStyles:s}=wl(e),{textColorClasses:u,textColorStyles:c}=Ct(N(e,"color")),{textColorClasses:f,textColorStyles:v}=Ct(N(e,"bgColor")),{intersectionRef:m,isIntersecting:g}=Yi(),{resizeRef:h,contentRect:y}=fn(),p=b(()=>Math.max(0,Math.min(100,parseFloat(e.modelValue)))),S=b(()=>Number(e.width)),C=b(()=>s.value?Number(e.size):y.value?y.value.width:Math.max(S.value,32)),A=b(()=>a/(1-S.value/C.value)*2),x=b(()=>S.value/C.value*A.value),k=b(()=>fe((100-p.value)/100*l));return nt(()=>{m.value=o.value,h.value=o.value}),Y(()=>d(e.tag,{ref:o,class:["v-progress-circular",{"v-progress-circular--indeterminate":!!e.indeterminate,"v-progress-circular--visible":g.value,"v-progress-circular--disable-shrink":e.indeterminate==="disable-shrink"},i.value,r.value,u.value,e.class],style:[s.value,c.value,e.style],role:"progressbar","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":e.indeterminate?void 0:p.value},{default:()=>[d("svg",{style:{transform:`rotate(calc(-90deg + ${Number(e.rotate)}deg))`},xmlns:"http://www.w3.org/2000/svg",viewBox:`0 0 ${A.value} ${A.value}`},[d("circle",{class:["v-progress-circular__underlay",f.value],style:v.value,fill:"transparent",cx:"50%",cy:"50%",r:a,"stroke-width":x.value,"stroke-dasharray":l,"stroke-dashoffset":0},null),d("circle",{class:"v-progress-circular__overlay",fill:"transparent",cx:"50%",cy:"50%",r:a,"stroke-width":x.value,"stroke-dasharray":l,"stroke-dashoffset":k.value},null)]),n.default&&d("div",{class:"v-progress-circular__content"},[n.default({value:p.value})])]})),{}}}),Ef={center:"center",top:"bottom",bottom:"top",left:"right",right:"left"},Gn=L({location:String},"location");function Ga(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n=arguments.length>2?arguments[2]:void 0;const{isRtl:a}=ht();return{locationStyles:b(()=>{if(!e.location)return{};const{side:o,align:i}=ys(e.location.split(" ").length>1?e.location:`${e.location} center`,a.value);function r(u){return n?n(u):0}const s={};return o!=="center"&&(t?s[Ef[o]]=`calc(100% - ${r(o)}px)`:s[o]=0),i!=="center"?t?s[Ef[i]]=`calc(100% - ${r(i)}px)`:s[i]=0:(o==="center"?s.top=s.left="50%":s[{top:"left",bottom:"left",left:"top",right:"top"}[o]]="50%",s.transform={top:"translateX(-50%)",bottom:"translateX(-50%)",left:"translateY(-50%)",right:"translateY(-50%)",center:"translate(-50%, -50%)"}[o]),s})}}const sC=L({absolute:Boolean,active:{type:Boolean,default:!0},bgColor:String,bgOpacity:[Number,String],bufferValue:{type:[Number,String],default:0},bufferColor:String,bufferOpacity:[Number,String],clickable:Boolean,color:String,height:{type:[Number,String],default:4},indeterminate:Boolean,max:{type:[Number,String],default:100},modelValue:{type:[Number,String],default:0},opacity:[Number,String],reverse:Boolean,stream:Boolean,striped:Boolean,roundedBar:Boolean,...ve(),...Gn({location:"top"}),...Xe(),...Pe(),...De()},"VProgressLinear"),qi=j()({name:"VProgressLinear",props:sC(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const a=Se(e,"modelValue"),{isRtl:l,rtlClasses:o}=ht(),{themeClasses:i}=$e(e),{locationStyles:r}=Ga(e),{textColorClasses:s,textColorStyles:u}=Ct(e,"color"),{backgroundColorClasses:c,backgroundColorStyles:f}=Ge(b(()=>e.bgColor||e.color)),{backgroundColorClasses:v,backgroundColorStyles:m}=Ge(b(()=>e.bufferColor||e.bgColor||e.color)),{backgroundColorClasses:g,backgroundColorStyles:h}=Ge(e,"color"),{roundedClasses:y}=tt(e),{intersectionRef:p,isIntersecting:S}=Yi(),C=b(()=>parseFloat(e.max)),A=b(()=>parseFloat(e.height)),x=b(()=>ot(parseFloat(e.bufferValue)/C.value*100,0,100)),k=b(()=>ot(parseFloat(a.value)/C.value*100,0,100)),V=b(()=>l.value!==e.reverse),T=b(()=>e.indeterminate?"fade-transition":"slide-x-transition");function w(P){if(!p.value)return;const{left:E,right:I,width:R}=p.value.getBoundingClientRect(),F=V.value?R-P.clientX+(I-R):P.clientX-E;a.value=Math.round(F/R*C.value)}return Y(()=>d(e.tag,{ref:p,class:["v-progress-linear",{"v-progress-linear--absolute":e.absolute,"v-progress-linear--active":e.active&&S.value,"v-progress-linear--reverse":V.value,"v-progress-linear--rounded":e.rounded,"v-progress-linear--rounded-bar":e.roundedBar,"v-progress-linear--striped":e.striped},y.value,i.value,o.value,e.class],style:[{bottom:e.location==="bottom"?0:void 0,top:e.location==="top"?0:void 0,height:e.active?fe(A.value):0,"--v-progress-linear-height":fe(A.value),...e.absolute?r.value:{}},e.style],role:"progressbar","aria-hidden":e.active?"false":"true","aria-valuemin":"0","aria-valuemax":e.max,"aria-valuenow":e.indeterminate?void 0:k.value,onClick:e.clickable&&w},{default:()=>[e.stream&&d("div",{key:"stream",class:["v-progress-linear__stream",s.value],style:{...u.value,[V.value?"left":"right"]:fe(-A.value),borderTop:`${fe(A.value/2)} dotted`,opacity:parseFloat(e.bufferOpacity),top:`calc(50% - ${fe(A.value/4)})`,width:fe(100-x.value,"%"),"--v-progress-linear-stream-to":fe(A.value*(V.value?1:-1))}},null),d("div",{class:["v-progress-linear__background",c.value],style:[f.value,{opacity:parseFloat(e.bgOpacity),width:e.stream?0:void 0}]},null),d("div",{class:["v-progress-linear__buffer",v.value],style:[m.value,{opacity:parseFloat(e.bufferOpacity),width:fe(x.value,"%")}]},null),d(Cn,{name:T.value},{default:()=>[e.indeterminate?d("div",{class:"v-progress-linear__indeterminate"},[["long","short"].map(P=>d("div",{key:P,class:["v-progress-linear__indeterminate",P,g.value],style:h.value},null))]):d("div",{class:["v-progress-linear__determinate",g.value],style:[h.value,{width:fe(k.value,"%")}]},null)]}),n.default&&d("div",{class:"v-progress-linear__content"},[n.default({value:k.value,buffer:x.value})])]})),{}}}),Xi=L({loading:[Boolean,String]},"loader");function _o(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Tn();return{loaderClasses:b(()=>({[`${t}--loading`]:e.loading}))}}function Vo(e,t){var a;let{slots:n}=t;return d("div",{class:`${e.name}__loader`},[((a=n.default)==null?void 0:a.call(n,{color:e.color,isActive:e.active}))||d(qi,{absolute:e.absolute,active:e.active,color:e.color,height:"2",indeterminate:!0},null)])}const uC=["static","relative","fixed","absolute","sticky"],kl=L({position:{type:String,validator:e=>uC.includes(e)}},"position");function xl(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Tn();return{positionClasses:b(()=>e.position?`${t}--${e.position}`:void 0)}}function cC(){const e=at("useRoute");return b(()=>{var t;return(t=e==null?void 0:e.proxy)==null?void 0:t.$route})}function Rh(){var e,t;return(t=(e=at("useRouter"))==null?void 0:e.proxy)==null?void 0:t.$router}function Po(e,t){var u,c;const n=Ep("RouterLink"),a=b(()=>!!(e.href||e.to)),l=b(()=>(a==null?void 0:a.value)||Gd(t,"click")||Gd(e,"click"));if(typeof n=="string"||!("useLink"in n))return{isLink:a,isClickable:l,href:N(e,"href")};const o=b(()=>({...e,to:N(()=>e.to||"")})),i=n.useLink(o.value),r=b(()=>e.to?i:void 0),s=cC();return{isLink:a,isClickable:l,route:(u=r.value)==null?void 0:u.route,navigate:(c=r.value)==null?void 0:c.navigate,isActive:b(()=>{var f,v,m;return r.value?e.exact?s.value?((m=r.value.isExactActive)==null?void 0:m.value)&&In(r.value.route.value.query,s.value.query):((v=r.value.isExactActive)==null?void 0:v.value)??!1:((f=r.value.isActive)==null?void 0:f.value)??!1:!1}),href:b(()=>{var f;return e.to?(f=r.value)==null?void 0:f.route.value.href:e.href})}}const Io=L({href:String,replace:Boolean,to:[String,Object],exact:Boolean},"router");let jr=!1;function dC(e,t){let n=!1,a,l;He&&(Oe(()=>{window.addEventListener("popstate",o),a=e==null?void 0:e.beforeEach((i,r,s)=>{jr?n?t(s):s():setTimeout(()=>n?t(s):s()),jr=!0}),l=e==null?void 0:e.afterEach(()=>{jr=!1})}),Ot(()=>{window.removeEventListener("popstate",o),a==null||a(),l==null||l()}));function o(i){var r;(r=i.state)!=null&&r.replaced||(n=!0,setTimeout(()=>n=!1))}}function fC(e,t){de(()=>{var n;return(n=e.isActive)==null?void 0:n.value},n=>{e.isLink.value&&n&&t&&Oe(()=>{t(!0)})},{immediate:!0})}const Ps=Symbol("rippleStop"),vC=80;function Af(e,t){e.style.transform=t,e.style.webkitTransform=t}function Is(e){return e.constructor.name==="TouchEvent"}function Oh(e){return e.constructor.name==="KeyboardEvent"}const mC=function(e,t){var f;let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},a=0,l=0;if(!Oh(e)){const v=t.getBoundingClientRect(),m=Is(e)?e.touches[e.touches.length-1]:e;a=m.clientX-v.left,l=m.clientY-v.top}let o=0,i=.3;(f=t._ripple)!=null&&f.circle?(i=.15,o=t.clientWidth/2,o=n.center?o:o+Math.sqrt((a-o)**2+(l-o)**2)/4):o=Math.sqrt(t.clientWidth**2+t.clientHeight**2)/2;const r=`${(t.clientWidth-o*2)/2}px`,s=`${(t.clientHeight-o*2)/2}px`,u=n.center?r:`${a-o}px`,c=n.center?s:`${l-o}px`;return{radius:o,scale:i,x:u,y:c,centerX:r,centerY:s}},Ci={show(e,t){var m;let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!((m=t==null?void 0:t._ripple)!=null&&m.enabled))return;const a=document.createElement("span"),l=document.createElement("span");a.appendChild(l),a.className="v-ripple__container",n.class&&(a.className+=` ${n.class}`);const{radius:o,scale:i,x:r,y:s,centerX:u,centerY:c}=mC(e,t,n),f=`${o*2}px`;l.className="v-ripple__animation",l.style.width=f,l.style.height=f,t.appendChild(a);const v=window.getComputedStyle(t);v&&v.position==="static"&&(t.style.position="relative",t.dataset.previousPosition="static"),l.classList.add("v-ripple__animation--enter"),l.classList.add("v-ripple__animation--visible"),Af(l,`translate(${r}, ${s}) scale3d(${i},${i},${i})`),l.dataset.activated=String(performance.now()),setTimeout(()=>{l.classList.remove("v-ripple__animation--enter"),l.classList.add("v-ripple__animation--in"),Af(l,`translate(${u}, ${c}) scale3d(1,1,1)`)},0)},hide(e){var o;if(!((o=e==null?void 0:e._ripple)!=null&&o.enabled))return;const t=e.getElementsByClassName("v-ripple__animation");if(t.length===0)return;const n=t[t.length-1];if(n.dataset.isHiding)return;n.dataset.isHiding="true";const a=performance.now()-Number(n.dataset.activated),l=Math.max(250-a,0);setTimeout(()=>{n.classList.remove("v-ripple__animation--in"),n.classList.add("v-ripple__animation--out"),setTimeout(()=>{var r;e.getElementsByClassName("v-ripple__animation").length===1&&e.dataset.previousPosition&&(e.style.position=e.dataset.previousPosition,delete e.dataset.previousPosition),((r=n.parentNode)==null?void 0:r.parentNode)===e&&e.removeChild(n.parentNode)},300)},l)}};function Dh(e){return typeof e>"u"||!!e}function uo(e){const t={},n=e.currentTarget;if(!(!(n!=null&&n._ripple)||n._ripple.touched||e[Ps])){if(e[Ps]=!0,Is(e))n._ripple.touched=!0,n._ripple.isTouch=!0;else if(n._ripple.isTouch)return;if(t.center=n._ripple.centered||Oh(e),n._ripple.class&&(t.class=n._ripple.class),Is(e)){if(n._ripple.showTimerCommit)return;n._ripple.showTimerCommit=()=>{Ci.show(e,n,t)},n._ripple.showTimer=window.setTimeout(()=>{var a;(a=n==null?void 0:n._ripple)!=null&&a.showTimerCommit&&(n._ripple.showTimerCommit(),n._ripple.showTimerCommit=null)},vC)}else Ci.show(e,n,t)}}function Bf(e){e[Ps]=!0}function Wt(e){const t=e.currentTarget;if(t!=null&&t._ripple){if(window.clearTimeout(t._ripple.showTimer),e.type==="touchend"&&t._ripple.showTimerCommit){t._ripple.showTimerCommit(),t._ripple.showTimerCommit=null,t._ripple.showTimer=window.setTimeout(()=>{Wt(e)});return}window.setTimeout(()=>{t._ripple&&(t._ripple.touched=!1)}),Ci.hide(t)}}function Lh(e){const t=e.currentTarget;t!=null&&t._ripple&&(t._ripple.showTimerCommit&&(t._ripple.showTimerCommit=null),window.clearTimeout(t._ripple.showTimer))}let co=!1;function Mh(e){!co&&(e.keyCode===Hd.enter||e.keyCode===Hd.space)&&(co=!0,uo(e))}function Fh(e){co=!1,Wt(e)}function $h(e){co&&(co=!1,Wt(e))}function Nh(e,t,n){const{value:a,modifiers:l}=t,o=Dh(a);if(o||Ci.hide(e),e._ripple=e._ripple??{},e._ripple.enabled=o,e._ripple.centered=l.center,e._ripple.circle=l.circle,no(a)&&a.class&&(e._ripple.class=a.class),o&&!n){if(l.stop){e.addEventListener("touchstart",Bf,{passive:!0}),e.addEventListener("mousedown",Bf);return}e.addEventListener("touchstart",uo,{passive:!0}),e.addEventListener("touchend",Wt,{passive:!0}),e.addEventListener("touchmove",Lh,{passive:!0}),e.addEventListener("touchcancel",Wt),e.addEventListener("mousedown",uo),e.addEventListener("mouseup",Wt),e.addEventListener("mouseleave",Wt),e.addEventListener("keydown",Mh),e.addEventListener("keyup",Fh),e.addEventListener("blur",$h),e.addEventListener("dragstart",Wt,{passive:!0})}else!o&&n&&Hh(e)}function Hh(e){e.removeEventListener("mousedown",uo),e.removeEventListener("touchstart",uo),e.removeEventListener("touchend",Wt),e.removeEventListener("touchmove",Lh),e.removeEventListener("touchcancel",Wt),e.removeEventListener("mouseup",Wt),e.removeEventListener("mouseleave",Wt),e.removeEventListener("keydown",Mh),e.removeEventListener("keyup",Fh),e.removeEventListener("dragstart",Wt),e.removeEventListener("blur",$h)}function hC(e,t){Nh(e,t,!1)}function gC(e){delete e._ripple,Hh(e)}function yC(e,t){if(t.value===t.oldValue)return;const n=Dh(t.oldValue);Nh(e,t,n)}const Kn={mounted:hC,unmounted:gC,updated:yC},Ji=L({active:{type:Boolean,default:void 0},baseColor:String,symbol:{type:null,default:Ju},flat:Boolean,icon:[Boolean,String,Function,Object],prependIcon:_e,appendIcon:_e,block:Boolean,readonly:Boolean,slim:Boolean,stacked:Boolean,ripple:{type:[Boolean,Object],default:!0},text:String,...Yt(),...ve(),...bt(),...gt(),...vt(),...Ua(),...Xi(),...Gn(),...kl(),...Xe(),...Io(),...An(),...Pe({tag:"button"}),...De(),...on({variant:"elevated"})},"VBtn"),Me=j()({name:"VBtn",props:Ji(),emits:{"group:selected":e=>!0},setup(e,t){let{attrs:n,slots:a}=t;const{themeClasses:l}=$e(e),{borderClasses:o}=ln(e),{densityClasses:i}=Dt(e),{dimensionStyles:r}=yt(e),{elevationClasses:s}=kt(e),{loaderClasses:u}=_o(e),{locationStyles:c}=Ga(e),{positionClasses:f}=xl(e),{roundedClasses:v}=tt(e),{sizeClasses:m,sizeStyles:g}=wl(e),h=Wa(e,e.symbol,!1),y=Po(e,n),p=b(()=>{var P;return e.active!==void 0?e.active:y.isLink.value?(P=y.isActive)==null?void 0:P.value:h==null?void 0:h.isSelected.value}),S=b(()=>{var E,I;return{color:(h==null?void 0:h.isSelected.value)&&(!y.isLink.value||((E=y.isActive)==null?void 0:E.value))||!h||((I=y.isActive)==null?void 0:I.value)?e.color??e.baseColor:e.baseColor,variant:e.variant}}),{colorClasses:C,colorStyles:A,variantClasses:x}=za(S),k=b(()=>(h==null?void 0:h.disabled.value)||e.disabled),V=b(()=>e.variant==="elevated"&&!(e.disabled||e.flat||e.border)),T=b(()=>{if(!(e.value===void 0||typeof e.value=="symbol"))return Object(e.value)===e.value?JSON.stringify(e.value,null,0):e.value});function w(P){var E;k.value||y.isLink.value&&(P.metaKey||P.ctrlKey||P.shiftKey||P.button!==0||n.target==="_blank")||((E=y.navigate)==null||E.call(y,P),h==null||h.toggle())}return fC(y,h==null?void 0:h.select),Y(()=>{const P=y.isLink.value?"a":e.tag,E=!!(e.prependIcon||a.prepend),I=!!(e.appendIcon||a.append),R=!!(e.icon&&e.icon!==!0);return Ue(d(P,{type:P==="a"?void 0:"button",class:["v-btn",h==null?void 0:h.selectedClass.value,{"v-btn--active":p.value,"v-btn--block":e.block,"v-btn--disabled":k.value,"v-btn--elevated":V.value,"v-btn--flat":e.flat,"v-btn--icon":!!e.icon,"v-btn--loading":e.loading,"v-btn--readonly":e.readonly,"v-btn--slim":e.slim,"v-btn--stacked":e.stacked},l.value,o.value,C.value,i.value,s.value,u.value,f.value,v.value,m.value,x.value,e.class],style:[A.value,r.value,c.value,g.value,e.style],"aria-busy":e.loading?!0:void 0,disabled:k.value||void 0,href:y.href.value,tabindex:e.loading||e.readonly?-1:void 0,onClick:w,value:T.value},{default:()=>{var F;return[ma(!0,"v-btn"),!e.icon&&E&&d("span",{key:"prepend",class:"v-btn__prepend"},[a.prepend?d(Be,{key:"prepend-defaults",disabled:!e.prependIcon,defaults:{VIcon:{icon:e.prependIcon}}},a.prepend):d(Fe,{key:"prepend-icon",icon:e.prependIcon},null)]),d("span",{class:"v-btn__content","data-no-activator":""},[!a.default&&R?d(Fe,{key:"content-icon",icon:e.icon},null):d(Be,{key:"content-defaults",disabled:!R,defaults:{VIcon:{icon:e.icon}}},{default:()=>{var z;return[((z=a.default)==null?void 0:z.call(a))??e.text]}})]),!e.icon&&I&&d("span",{key:"append",class:"v-btn__append"},[a.append?d(Be,{key:"append-defaults",disabled:!e.appendIcon,defaults:{VIcon:{icon:e.appendIcon}}},a.append):d(Fe,{key:"append-icon",icon:e.appendIcon},null)]),!!e.loading&&d("span",{key:"loader",class:"v-btn__loader"},[((F=a.loader)==null?void 0:F.call(a))??d(yl,{color:typeof e.loading=="boolean"?void 0:e.loading,indeterminate:!0,width:"2"},null)])]}}),[[Kn,!k.value&&!!e.ripple,"",{center:!!e.icon}]])}),{group:h}}}),zh=j()({name:"VCardActions",props:ve(),setup(e,t){let{slots:n}=t;return et({VBtn:{slim:!0,variant:"text"}}),Y(()=>{var a;return d("div",{class:["v-card-actions",e.class],style:e.style},[(a=n.default)==null?void 0:a.call(n)])}),{}}}),bC=L({opacity:[Number,String],...ve(),...Pe()},"VCardSubtitle"),jh=j()({name:"VCardSubtitle",props:bC(),setup(e,t){let{slots:n}=t;return Y(()=>d(e.tag,{class:["v-card-subtitle",e.class],style:[{"--v-card-subtitle-opacity":e.opacity},e.style]},n)),{}}}),Zi=En("v-card-title");function pC(e){return{aspectStyles:b(()=>{const t=Number(e.aspectRatio);return t?{paddingBottom:String(1/t*100)+"%"}:void 0})}}const Uh=L({aspectRatio:[String,Number],contentClass:null,inline:Boolean,...ve(),...gt()},"VResponsive"),Ts=j()({name:"VResponsive",props:Uh(),setup(e,t){let{slots:n}=t;const{aspectStyles:a}=pC(e),{dimensionStyles:l}=yt(e);return Y(()=>{var o;return d("div",{class:["v-responsive",{"v-responsive--inline":e.inline},e.class],style:[l.value,e.style]},[d("div",{class:"v-responsive__sizer",style:a.value},null),(o=n.additional)==null?void 0:o.call(n),n.default&&d("div",{class:["v-responsive__content",e.contentClass]},[n.default()])])}),{}}}),gn=L({transition:{type:[Boolean,String,Object],default:"fade-transition",validator:e=>e!==!0}},"transition"),Rt=(e,t)=>{let{slots:n}=t;const{transition:a,disabled:l,group:o,...i}=e,{component:r=o?Du:Cn,...s}=typeof a=="object"?a:{};return mn(r,X(typeof a=="string"?{name:l?"":a}:s,typeof a=="string"?{}:Object.fromEntries(Object.entries({disabled:l,group:o}).filter(u=>{let[c,f]=u;return f!==void 0})),i),n)};function SC(e,t){if(!Mu)return;const n=t.modifiers||{},a=t.value,{handler:l,options:o}=typeof a=="object"?a:{handler:a,options:{}},i=new IntersectionObserver(function(){var f;let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],s=arguments.length>1?arguments[1]:void 0;const u=(f=e._observe)==null?void 0:f[t.instance.$.uid];if(!u)return;const c=r.some(v=>v.isIntersecting);l&&(!n.quiet||u.init)&&(!n.once||c||u.init)&&l(c,r,s),c&&n.once?Wh(e,t):u.init=!0},o);e._observe=Object(e._observe),e._observe[t.instance.$.uid]={init:!1,observer:i},i.observe(e)}function Wh(e,t){var a;const n=(a=e._observe)==null?void 0:a[t.instance.$.uid];n&&(n.observer.unobserve(e),delete e._observe[t.instance.$.uid])}const To={mounted:SC,unmounted:Wh},Gh=L({alt:String,cover:Boolean,color:String,draggable:{type:[Boolean,String],default:void 0},eager:Boolean,gradient:String,lazySrc:String,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},sizes:String,src:{type:[String,Object],default:""},crossorigin:String,referrerpolicy:String,srcset:String,position:String,...Uh(),...ve(),...Xe(),...gn()},"VImg"),Nn=j()({name:"VImg",directives:{intersect:To},props:Gh(),emits:{loadstart:e=>!0,load:e=>!0,error:e=>!0},setup(e,t){let{emit:n,slots:a}=t;const{backgroundColorClasses:l,backgroundColorStyles:o}=Ge(N(e,"color")),{roundedClasses:i}=tt(e),r=at("VImg"),s=ue(""),u=te(),c=ue(e.eager?"loading":"idle"),f=ue(),v=ue(),m=b(()=>e.src&&typeof e.src=="object"?{src:e.src.src,srcset:e.srcset||e.src.srcset,lazySrc:e.lazySrc||e.src.lazySrc,aspect:Number(e.aspectRatio||e.src.aspect||0)}:{src:e.src,srcset:e.srcset,lazySrc:e.lazySrc,aspect:Number(e.aspectRatio||0)}),g=b(()=>m.value.aspect||f.value/v.value||0);de(()=>e.src,()=>{h(c.value!=="idle")}),de(g,(I,R)=>{!I&&R&&u.value&&A(u.value)}),_u(()=>h());function h(I){if(!(e.eager&&I)&&!(Mu&&!I&&!e.eager)){if(c.value="loading",m.value.lazySrc){const R=new Image;R.src=m.value.lazySrc,A(R,null)}m.value.src&&Oe(()=>{var R;n("loadstart",((R=u.value)==null?void 0:R.currentSrc)||m.value.src),setTimeout(()=>{var F;if(!r.isUnmounted)if((F=u.value)!=null&&F.complete){if(u.value.naturalWidth||p(),c.value==="error")return;g.value||A(u.value,null),c.value==="loading"&&y()}else g.value||A(u.value),S()})})}}function y(){var I;r.isUnmounted||(S(),A(u.value),c.value="loaded",n("load",((I=u.value)==null?void 0:I.currentSrc)||m.value.src))}function p(){var I;r.isUnmounted||(c.value="error",n("error",((I=u.value)==null?void 0:I.currentSrc)||m.value.src))}function S(){const I=u.value;I&&(s.value=I.currentSrc||I.src)}let C=-1;Pt(()=>{clearTimeout(C)});function A(I){let R=arguments.length>1&&arguments[1]!==void 0?arguments[1]:100;const F=()=>{if(clearTimeout(C),r.isUnmounted)return;const{naturalHeight:z,naturalWidth:q}=I;z||q?(f.value=q,v.value=z):!I.complete&&c.value==="loading"&&R!=null?C=window.setTimeout(F,R):(I.currentSrc.endsWith(".svg")||I.currentSrc.startsWith("data:image/svg+xml"))&&(f.value=1,v.value=1)};F()}const x=b(()=>({"v-img__img--cover":e.cover,"v-img__img--contain":!e.cover})),k=()=>{var F;if(!m.value.src||c.value==="idle")return null;const I=d("img",{class:["v-img__img",x.value],style:{objectPosition:e.position},src:m.value.src,srcset:m.value.srcset,alt:e.alt,crossorigin:e.crossorigin,referrerpolicy:e.referrerpolicy,draggable:e.draggable,sizes:e.sizes,ref:u,onLoad:y,onError:p},null),R=(F=a.sources)==null?void 0:F.call(a);return d(Rt,{transition:e.transition,appear:!0},{default:()=>[Ue(R?d("picture",{class:"v-img__picture"},[R,I]):I,[[hn,c.value==="loaded"]])]})},V=()=>d(Rt,{transition:e.transition},{default:()=>[m.value.lazySrc&&c.value!=="loaded"&&d("img",{class:["v-img__img","v-img__img--preload",x.value],style:{objectPosition:e.position},src:m.value.lazySrc,alt:e.alt,crossorigin:e.crossorigin,referrerpolicy:e.referrerpolicy,draggable:e.draggable},null)]}),T=()=>a.placeholder?d(Rt,{transition:e.transition,appear:!0},{default:()=>[(c.value==="loading"||c.value==="error"&&!a.error)&&d("div",{class:"v-img__placeholder"},[a.placeholder()])]}):null,w=()=>a.error?d(Rt,{transition:e.transition,appear:!0},{default:()=>[c.value==="error"&&d("div",{class:"v-img__error"},[a.error()])]}):null,P=()=>e.gradient?d("div",{class:"v-img__gradient",style:{backgroundImage:`linear-gradient(${e.gradient})`}},null):null,E=ue(!1);{const I=de(g,R=>{R&&(requestAnimationFrame(()=>{requestAnimationFrame(()=>{E.value=!0})}),I())})}return Y(()=>{const I=Ts.filterProps(e);return Ue(d(Ts,X({class:["v-img",{"v-img--booting":!E.value},l.value,i.value,e.class],style:[{width:fe(e.width==="auto"?f.value:e.width)},o.value,e.style]},I,{aspectRatio:g.value,"aria-label":e.alt,role:e.alt?"img":void 0}),{additional:()=>d(ge,null,[d(k,null,null),d(V,null,null),d(P,null,null),d(T,null,null),d(w,null,null)]),default:a.default}),[[Gt("intersect"),{handler:h,options:e.options},null,{once:!0}]])}),{currentSrc:s,image:u,state:c,naturalWidth:f,naturalHeight:v}}}),wC=L({start:Boolean,end:Boolean,icon:_e,image:String,text:String,...ve(),...bt(),...Xe(),...An(),...Pe(),...De(),...on({variant:"flat"})},"VAvatar"),an=j()({name:"VAvatar",props:wC(),setup(e,t){let{slots:n}=t;const{themeClasses:a}=$e(e),{colorClasses:l,colorStyles:o,variantClasses:i}=za(e),{densityClasses:r}=Dt(e),{roundedClasses:s}=tt(e),{sizeClasses:u,sizeStyles:c}=wl(e);return Y(()=>d(e.tag,{class:["v-avatar",{"v-avatar--start":e.start,"v-avatar--end":e.end},a.value,l.value,r.value,s.value,u.value,i.value,e.class],style:[o.value,c.value,e.style]},{default:()=>[n.default?d(Be,{key:"content-defaults",defaults:{VImg:{cover:!0,image:e.image},VIcon:{icon:e.icon}}},{default:()=>[n.default()]}):e.image?d(Nn,{key:"image",src:e.image,alt:"",cover:!0},null):e.icon?d(Fe,{key:"icon",icon:e.icon},null):e.text,ma(!1,"v-avatar")]})),{}}}),kC=L({appendAvatar:String,appendIcon:_e,prependAvatar:String,prependIcon:_e,subtitle:[String,Number],title:[String,Number],...ve(),...bt()},"VCardItem"),Kh=j()({name:"VCardItem",props:kC(),setup(e,t){let{slots:n}=t;return Y(()=>{var u;const a=!!(e.prependAvatar||e.prependIcon),l=!!(a||n.prepend),o=!!(e.appendAvatar||e.appendIcon),i=!!(o||n.append),r=!!(e.title!=null||n.title),s=!!(e.subtitle!=null||n.subtitle);return d("div",{class:["v-card-item",e.class],style:e.style},[l&&d("div",{key:"prepend",class:"v-card-item__prepend"},[n.prepend?d(Be,{key:"prepend-defaults",disabled:!a,defaults:{VAvatar:{density:e.density,image:e.prependAvatar},VIcon:{density:e.density,icon:e.prependIcon}}},n.prepend):d(ge,null,[e.prependAvatar&&d(an,{key:"prepend-avatar",density:e.density,image:e.prependAvatar},null),e.prependIcon&&d(Fe,{key:"prepend-icon",density:e.density,icon:e.prependIcon},null)])]),d("div",{class:"v-card-item__content"},[r&&d(Zi,{key:"title"},{default:()=>{var c;return[((c=n.title)==null?void 0:c.call(n))??e.title]}}),s&&d(jh,{key:"subtitle"},{default:()=>{var c;return[((c=n.subtitle)==null?void 0:c.call(n))??e.subtitle]}}),(u=n.default)==null?void 0:u.call(n)]),i&&d("div",{key:"append",class:"v-card-item__append"},[n.append?d(Be,{key:"append-defaults",disabled:!o,defaults:{VAvatar:{density:e.density,image:e.appendAvatar},VIcon:{density:e.density,icon:e.appendIcon}}},n.append):d(ge,null,[e.appendIcon&&d(Fe,{key:"append-icon",density:e.density,icon:e.appendIcon},null),e.appendAvatar&&d(an,{key:"append-avatar",density:e.density,image:e.appendAvatar},null)])])])}),{}}}),xC=L({opacity:[Number,String],...ve(),...Pe()},"VCardText"),Qi=j()({name:"VCardText",props:xC(),setup(e,t){let{slots:n}=t;return Y(()=>d(e.tag,{class:["v-card-text",e.class],style:[{"--v-card-text-opacity":e.opacity},e.style]},n)),{}}}),CC=L({appendAvatar:String,appendIcon:_e,disabled:Boolean,flat:Boolean,hover:Boolean,image:String,link:{type:Boolean,default:void 0},prependAvatar:String,prependIcon:_e,ripple:{type:[Boolean,Object],default:!0},subtitle:[String,Number],text:[String,Number],title:[String,Number],...Yt(),...ve(),...bt(),...gt(),...vt(),...Xi(),...Gn(),...kl(),...Xe(),...Io(),...Pe(),...De(),...on({variant:"elevated"})},"VCard"),ec=j()({name:"VCard",directives:{Ripple:Kn},props:CC(),setup(e,t){let{attrs:n,slots:a}=t;const{themeClasses:l}=$e(e),{borderClasses:o}=ln(e),{colorClasses:i,colorStyles:r,variantClasses:s}=za(e),{densityClasses:u}=Dt(e),{dimensionStyles:c}=yt(e),{elevationClasses:f}=kt(e),{loaderClasses:v}=_o(e),{locationStyles:m}=Ga(e),{positionClasses:g}=xl(e),{roundedClasses:h}=tt(e),y=Po(e,n),p=b(()=>e.link!==!1&&y.isLink.value),S=b(()=>!e.disabled&&e.link!==!1&&(e.link||y.isClickable.value));return Y(()=>{const C=p.value?"a":e.tag,A=!!(a.title||e.title!=null),x=!!(a.subtitle||e.subtitle!=null),k=A||x,V=!!(a.append||e.appendAvatar||e.appendIcon),T=!!(a.prepend||e.prependAvatar||e.prependIcon),w=!!(a.image||e.image),P=k||T||V,E=!!(a.text||e.text!=null);return Ue(d(C,{class:["v-card",{"v-card--disabled":e.disabled,"v-card--flat":e.flat,"v-card--hover":e.hover&&!(e.disabled||e.flat),"v-card--link":S.value},l.value,o.value,i.value,u.value,f.value,v.value,g.value,h.value,s.value,e.class],style:[r.value,c.value,m.value,e.style],href:y.href.value,onClick:S.value&&y.navigate,tabindex:e.disabled?-1:void 0},{default:()=>{var I;return[w&&d("div",{key:"image",class:"v-card__image"},[a.image?d(Be,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},a.image):d(Nn,{key:"image-img",cover:!0,src:e.image},null)]),d(Vo,{name:"v-card",active:!!e.loading,color:typeof e.loading=="boolean"?void 0:e.loading},{default:a.loader}),P&&d(Kh,{key:"item",prependAvatar:e.prependAvatar,prependIcon:e.prependIcon,title:e.title,subtitle:e.subtitle,appendAvatar:e.appendAvatar,appendIcon:e.appendIcon},{default:a.item,prepend:a.prepend,title:a.title,subtitle:a.subtitle,append:a.append}),E&&d(Qi,{key:"text"},{default:()=>{var R;return[((R=a.text)==null?void 0:R.call(a))??e.text]}}),(I=a.default)==null?void 0:I.call(a),a.actions&&d(zh,null,{default:a.actions}),ma(S.value,"v-card")]}}),[[Gt("ripple"),S.value&&e.ripple]])}),{}}}),Yh=Symbol.for("vuetify:form"),_C=L({disabled:Boolean,fastFail:Boolean,readonly:Boolean,modelValue:{type:Boolean,default:null},validateOn:{type:String,default:"input"}},"form");function VC(e){const t=Se(e,"modelValue"),n=b(()=>e.disabled),a=b(()=>e.readonly),l=ue(!1),o=te([]),i=te([]);async function r(){const c=[];let f=!0;i.value=[],l.value=!0;for(const v of o.value){const m=await v.validate();if(m.length>0&&(f=!1,c.push({id:v.id,errorMessages:m})),!f&&e.fastFail)break}return i.value=c,l.value=!1,{valid:f,errors:i.value}}function s(){o.value.forEach(c=>c.reset())}function u(){o.value.forEach(c=>c.resetValidation())}return de(o,()=>{let c=0,f=0;const v=[];for(const m of o.value)m.isValid===!1?(f++,v.push({id:m.id,errorMessages:m.errorMessages})):m.isValid===!0&&c++;i.value=v,t.value=f>0?!1:c===o.value.length?!0:null},{deep:!0,flush:"post"}),We(Yh,{register:c=>{let{id:f,vm:v,validate:m,reset:g,resetValidation:h}=c;o.value.some(y=>y.id===f),o.value.push({id:f,validate:m,reset:g,resetValidation:h,vm:Uv(v),isValid:null,errorMessages:[]})},unregister:c=>{o.value=o.value.filter(f=>f.id!==c)},update:(c,f,v)=>{const m=o.value.find(g=>g.id===c);m&&(m.isValid=f,m.errorMessages=v)},isDisabled:n,isReadonly:a,isValidating:l,isValid:t,items:o,validateOn:N(e,"validateOn")}),{errors:i,isDisabled:n,isReadonly:a,isValidating:l,isValid:t,items:o,validate:r,reset:s,resetValidation:u}}function er(){return Te(Yh,null)}const Ur=Symbol("Forwarded refs");function Wr(e,t){let n=e;for(;n;){const a=Reflect.getOwnPropertyDescriptor(n,t);if(a)return a;n=Object.getPrototypeOf(n)}}function rn(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a!0,submit:e=>!0},setup(e,t){let{slots:n,emit:a}=t;const l=VC(e),o=te();function i(s){s.preventDefault(),l.reset()}function r(s){const u=s,c=l.validate();u.then=c.then.bind(c),u.catch=c.catch.bind(c),u.finally=c.finally.bind(c),a("submit",u),u.defaultPrevented||c.then(f=>{var m;let{valid:v}=f;v&&((m=o.value)==null||m.submit())}),u.preventDefault()}return Y(()=>{var s;return d("form",{ref:o,class:["v-form",e.class],style:e.style,novalidate:!0,onReset:i,onSubmit:r},[(s=n.default)==null?void 0:s.call(n,l)])}),rn(l,o)}}),IC=L({fluid:{type:Boolean,default:!1},...ve(),...Pe()},"VContainer"),nc=j()({name:"VContainer",props:IC(),setup(e,t){let{slots:n}=t;const{rtlClasses:a}=ht();return Y(()=>d(e.tag,{class:["v-container",{"v-container--fluid":e.fluid},a.value,e.class],style:e.style},n)),{}}}),tr=["sm","md","lg","xl","xxl"],Es=Symbol.for("vuetify:display"),Rf={mobileBreakpoint:"lg",thresholds:{xs:0,sm:600,md:960,lg:1280,xl:1920,xxl:2560}},TC=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Rf;return Bt(Rf,e)};function Of(e){return He&&!e?window.innerWidth:typeof e=="object"&&e.clientWidth||0}function Df(e){return He&&!e?window.innerHeight:typeof e=="object"&&e.clientHeight||0}function Lf(e){const t=He&&!e?window.navigator.userAgent:"ssr";function n(g){return!!t.match(g)}const a=n(/android/i),l=n(/iphone|ipad|ipod/i),o=n(/cordova/i),i=n(/electron/i),r=n(/chrome/i),s=n(/edge/i),u=n(/firefox/i),c=n(/opera/i),f=n(/win/i),v=n(/mac/i),m=n(/linux/i);return{android:a,ios:l,cordova:o,electron:i,chrome:r,edge:s,firefox:u,opera:c,win:f,mac:v,linux:m,touch:C0,ssr:t==="ssr"}}function EC(e,t){const{thresholds:n,mobileBreakpoint:a}=TC(e),l=ue(Df(t)),o=ue(Lf(t)),i=Tt({}),r=ue(Of(t));function s(){l.value=Df(),r.value=Of()}function u(){s(),o.value=Lf()}return nt(()=>{const c=r.value=n.xxl,y=c?"xs":f?"sm":v?"md":m?"lg":g?"xl":"xxl",p=typeof a=="number"?a:n[a],S=r.value0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Tn();const n=Te(Es);if(!n)throw new Error("Could not find Vuetify display injection");const a=b(()=>{if(e.mobile!=null)return e.mobile;if(!e.mobileBreakpoint)return n.mobile.value;const o=typeof e.mobileBreakpoint=="number"?e.mobileBreakpoint:n.thresholds.value[e.mobileBreakpoint];return n.width.valuet?{[`${t}--mobile`]:a.value}:{});return{...n,displayClasses:l,mobile:a}}const qh=tr.reduce((e,t)=>(e[t]={type:[Boolean,String,Number],default:!1},e),{}),Xh=tr.reduce((e,t)=>{const n="offset"+Vn(t);return e[n]={type:[String,Number],default:null},e},{}),Jh=tr.reduce((e,t)=>{const n="order"+Vn(t);return e[n]={type:[String,Number],default:null},e},{}),Mf={col:Object.keys(qh),offset:Object.keys(Xh),order:Object.keys(Jh)};function AC(e,t,n){let a=e;if(!(n==null||n===!1)){if(t){const l=t.replace(e,"");a+=`-${l}`}return e==="col"&&(a="v-"+a),e==="col"&&(n===""||n===!0)||(a+=`-${n}`),a.toLowerCase()}}const BC=["auto","start","end","center","baseline","stretch"],RC=L({cols:{type:[Boolean,String,Number],default:!1},...qh,offset:{type:[String,Number],default:null},...Xh,order:{type:[String,Number],default:null},...Jh,alignSelf:{type:String,default:null,validator:e=>BC.includes(e)},...ve(),...Pe()},"VCol"),Sn=j()({name:"VCol",props:RC(),setup(e,t){let{slots:n}=t;const a=b(()=>{const l=[];let o;for(o in Mf)Mf[o].forEach(r=>{const s=e[r],u=AC(o,r,s);u&&l.push(u)});const i=l.some(r=>r.startsWith("v-col-"));return l.push({"v-col":!i||!e.cols,[`v-col-${e.cols}`]:e.cols,[`offset-${e.offset}`]:e.offset,[`order-${e.order}`]:e.order,[`align-self-${e.alignSelf}`]:e.alignSelf}),l});return()=>{var l;return mn(e.tag,{class:[a.value,e.class],style:e.style},(l=n.default)==null?void 0:l.call(n))}}}),ac=["start","end","center"],Zh=["space-between","space-around","space-evenly"];function lc(e,t){return tr.reduce((n,a)=>{const l=e+Vn(a);return n[l]=t(),n},{})}const OC=[...ac,"baseline","stretch"],Qh=e=>OC.includes(e),eg=lc("align",()=>({type:String,default:null,validator:Qh})),DC=[...ac,...Zh],tg=e=>DC.includes(e),ng=lc("justify",()=>({type:String,default:null,validator:tg})),LC=[...ac,...Zh,"stretch"],ag=e=>LC.includes(e),lg=lc("alignContent",()=>({type:String,default:null,validator:ag})),Ff={align:Object.keys(eg),justify:Object.keys(ng),alignContent:Object.keys(lg)},MC={align:"align",justify:"justify",alignContent:"align-content"};function FC(e,t,n){let a=MC[e];if(n!=null){if(t){const l=t.replace(e,"");a+=`-${l}`}return a+=`-${n}`,a.toLowerCase()}}const $C=L({dense:Boolean,noGutters:Boolean,align:{type:String,default:null,validator:Qh},...eg,justify:{type:String,default:null,validator:tg},...ng,alignContent:{type:String,default:null,validator:ag},...lg,...ve(),...Pe()},"VRow"),Dn=j()({name:"VRow",props:$C(),setup(e,t){let{slots:n}=t;const a=b(()=>{const l=[];let o;for(o in Ff)Ff[o].forEach(i=>{const r=e[i],s=FC(o,i,r);s&&l.push(s)});return l.push({"v-row--no-gutters":e.noGutters,"v-row--dense":e.dense,[`align-${e.align}`]:e.align,[`justify-${e.justify}`]:e.justify,[`align-content-${e.alignContent}`]:e.alignContent}),l});return()=>{var l;return mn(e.tag,{class:["v-row",a.value,e.class],style:e.style},(l=n.default)==null?void 0:l.call(n))}}}),og=En("v-spacer","div","VSpacer"),NC=L({disabled:Boolean,group:Boolean,hideOnLeave:Boolean,leaveAbsolute:Boolean,mode:String,origin:String},"transition");function qt(e,t,n){return j()({name:e,props:NC({mode:n,origin:t}),setup(a,l){let{slots:o}=l;const i={onBeforeEnter(r){a.origin&&(r.style.transformOrigin=a.origin)},onLeave(r){if(a.leaveAbsolute){const{offsetTop:s,offsetLeft:u,offsetWidth:c,offsetHeight:f}=r;r._transitionInitialStyles={position:r.style.position,top:r.style.top,left:r.style.left,width:r.style.width,height:r.style.height},r.style.position="absolute",r.style.top=`${s}px`,r.style.left=`${u}px`,r.style.width=`${c}px`,r.style.height=`${f}px`}a.hideOnLeave&&r.style.setProperty("display","none","important")},onAfterLeave(r){if(a.leaveAbsolute&&(r!=null&&r._transitionInitialStyles)){const{position:s,top:u,left:c,width:f,height:v}=r._transitionInitialStyles;delete r._transitionInitialStyles,r.style.position=s||"",r.style.top=u||"",r.style.left=c||"",r.style.width=f||"",r.style.height=v||""}}};return()=>{const r=a.group?Du:Cn;return mn(r,{name:a.disabled?"":e,css:!a.disabled,...a.group?void 0:{mode:a.mode},...a.disabled?{}:i},o.default)}}})}function ig(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"in-out";return j()({name:e,props:{mode:{type:String,default:n},disabled:Boolean,group:Boolean},setup(a,l){let{slots:o}=l;const i=a.group?Du:Cn;return()=>mn(i,{name:a.disabled?"":e,css:!a.disabled,...a.disabled?{}:t},o.default)}})}function rg(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";const n=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1)?"width":"height",a=nn(`offset-${n}`);return{onBeforeEnter(i){i._parent=i.parentNode,i._initialStyle={transition:i.style.transition,overflow:i.style.overflow,[n]:i.style[n]}},onEnter(i){const r=i._initialStyle;i.style.setProperty("transition","none","important"),i.style.overflow="hidden";const s=`${i[a]}px`;i.style[n]="0",i.offsetHeight,i.style.transition=r.transition,e&&i._parent&&i._parent.classList.add(e),requestAnimationFrame(()=>{i.style[n]=s})},onAfterEnter:o,onEnterCancelled:o,onLeave(i){i._initialStyle={transition:"",overflow:i.style.overflow,[n]:i.style[n]},i.style.overflow="hidden",i.style[n]=`${i[a]}px`,i.offsetHeight,requestAnimationFrame(()=>i.style[n]="0")},onAfterLeave:l,onLeaveCancelled:l};function l(i){e&&i._parent&&i._parent.classList.remove(e),o(i)}function o(i){const r=i._initialStyle[n];i.style.overflow=i._initialStyle.overflow,r!=null&&(i.style[n]=r),delete i._initialStyle}}const HC=L({target:[Object,Array]},"v-dialog-transition"),nr=j()({name:"VDialogTransition",props:HC(),setup(e,t){let{slots:n}=t;const a={onBeforeEnter(l){l.style.pointerEvents="none",l.style.visibility="hidden"},async onEnter(l,o){var v;await new Promise(m=>requestAnimationFrame(m)),await new Promise(m=>requestAnimationFrame(m)),l.style.visibility="";const{x:i,y:r,sx:s,sy:u,speed:c}=Nf(e.target,l),f=Ca(l,[{transform:`translate(${i}px, ${r}px) scale(${s}, ${u})`,opacity:0},{}],{duration:225*c,easing:cw});(v=$f(l))==null||v.forEach(m=>{Ca(m,[{opacity:0},{opacity:0,offset:.33},{}],{duration:225*2*c,easing:lo})}),f.finished.then(()=>o())},onAfterEnter(l){l.style.removeProperty("pointer-events")},onBeforeLeave(l){l.style.pointerEvents="none"},async onLeave(l,o){var v;await new Promise(m=>requestAnimationFrame(m));const{x:i,y:r,sx:s,sy:u,speed:c}=Nf(e.target,l);Ca(l,[{},{transform:`translate(${i}px, ${r}px) scale(${s}, ${u})`,opacity:0}],{duration:125*c,easing:dw}).finished.then(()=>o()),(v=$f(l))==null||v.forEach(m=>{Ca(m,[{},{opacity:0,offset:.2},{opacity:0}],{duration:125*2*c,easing:lo})})},onAfterLeave(l){l.style.removeProperty("pointer-events")}};return()=>e.target?d(Cn,X({name:"dialog-transition"},a,{css:!1}),n):d(Cn,{name:"dialog-transition"},n)}});function $f(e){var n;const t=(n=e.querySelector(":scope > .v-card, :scope > .v-sheet, :scope > .v-list"))==null?void 0:n.children;return t&&[...t]}function Nf(e,t){const n=Ym(e),a=Hu(t),[l,o]=getComputedStyle(t).transformOrigin.split(" ").map(p=>parseFloat(p)),[i,r]=getComputedStyle(t).getPropertyValue("--v-overlay-anchor-origin").split(" ");let s=n.left+n.width/2;i==="left"||r==="left"?s-=n.width/2:(i==="right"||r==="right")&&(s+=n.width/2);let u=n.top+n.height/2;i==="top"||r==="top"?u-=n.height/2:(i==="bottom"||r==="bottom")&&(u+=n.height/2);const c=n.width/a.width,f=n.height/a.height,v=Math.max(1,c,f),m=c/v||0,g=f/v||0,h=a.width*a.height/(window.innerWidth*window.innerHeight),y=h>.12?Math.min(1.5,(h-.12)*10+1):1;return{x:s-(l+a.left),y:u-(o+a.top),sx:m,sy:g,speed:y}}const zC=qt("fab-transition","center center","out-in"),jC=qt("dialog-bottom-transition"),UC=qt("dialog-top-transition"),fo=qt("fade-transition"),oc=qt("scale-transition"),WC=qt("scroll-x-transition"),GC=qt("scroll-x-reverse-transition"),KC=qt("scroll-y-transition"),YC=qt("scroll-y-reverse-transition"),qC=qt("slide-x-transition"),XC=qt("slide-x-reverse-transition"),ic=qt("slide-y-transition"),JC=qt("slide-y-reverse-transition"),ar=ig("expand-transition",rg()),rc=ig("expand-x-transition",rg("",!0)),ZC=L({active:Boolean,disabled:Boolean,max:[Number,String],value:{type:[Number,String],default:0},...ve(),...gn({transition:{component:ic}})},"VCounter"),lr=j()({name:"VCounter",functional:!0,props:ZC(),setup(e,t){let{slots:n}=t;const a=b(()=>e.max?`${e.value} / ${e.max}`:String(e.value));return Y(()=>d(Rt,{transition:e.transition},{default:()=>[Ue(d("div",{class:["v-counter",{"text-error":e.max&&!e.disabled&&parseFloat(e.value)>parseFloat(e.max)},e.class],style:e.style},[n.default?n.default({counter:a.value,max:e.max,value:e.value}):a.value]),[[hn,e.active]])]})),{}}}),QC=L({text:String,onClick:St(),...ve(),...De()},"VLabel"),Cl=j()({name:"VLabel",props:QC(),setup(e,t){let{slots:n}=t;return Y(()=>{var a;return d("label",{class:["v-label",{"v-label--clickable":!!e.onClick},e.class],style:e.style,onClick:e.onClick},[e.text,(a=n.default)==null?void 0:a.call(n)])}),{}}}),e1=L({floating:Boolean,...ve()},"VFieldLabel"),Ll=j()({name:"VFieldLabel",props:e1(),setup(e,t){let{slots:n}=t;return Y(()=>d(Cl,{class:["v-field-label",{"v-field-label--floating":e.floating},e.class],style:e.style,"aria-hidden":e.floating||void 0},n)),{}}});function sg(e){const{t}=lt();function n(a){let{name:l}=a;const o={prepend:"prependAction",prependInner:"prependAction",append:"appendAction",appendInner:"appendAction",clear:"clear"}[l],i=e[`onClick:${l}`],r=i&&o?t(`$vuetify.input.${o}`,e.label??""):void 0;return d(Fe,{icon:e[`${l}Icon`],"aria-label":r,onClick:i},null)}return{InputIcon:n}}const Eo=L({focused:Boolean,"onUpdate:focused":St()},"focus");function Yn(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Tn();const n=Se(e,"focused"),a=b(()=>({[`${t}--focused`]:n.value}));function l(){n.value=!0}function o(){n.value=!1}return{focusClasses:a,isFocused:n,focus:l,blur:o}}const t1=["underlined","outlined","filled","solo","solo-inverted","solo-filled","plain"],Ao=L({appendInnerIcon:_e,bgColor:String,clearable:Boolean,clearIcon:{type:_e,default:"$clear"},active:Boolean,centerAffix:{type:Boolean,default:void 0},color:String,baseColor:String,dirty:Boolean,disabled:{type:Boolean,default:null},error:Boolean,flat:Boolean,label:String,persistentClear:Boolean,prependInnerIcon:_e,reverse:Boolean,singleLine:Boolean,variant:{type:String,default:"filled",validator:e=>t1.includes(e)},"onClick:clear":St(),"onClick:appendInner":St(),"onClick:prependInner":St(),...ve(),...Xi(),...Xe(),...De()},"VField"),_l=j()({name:"VField",inheritAttrs:!1,props:{id:String,...Eo(),...Ao()},emits:{"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{attrs:n,emit:a,slots:l}=t;const{themeClasses:o}=$e(e),{loaderClasses:i}=_o(e),{focusClasses:r,isFocused:s,focus:u,blur:c}=Yn(e),{InputIcon:f}=sg(e),{roundedClasses:v}=tt(e),{rtlClasses:m}=ht(),g=b(()=>e.dirty||e.active),h=b(()=>!e.singleLine&&!!(e.label||l.label)),y=wt(),p=b(()=>e.id||`input-${y}`),S=b(()=>`${p.value}-messages`),C=te(),A=te(),x=te(),k=b(()=>["plain","underlined"].includes(e.variant)),{backgroundColorClasses:V,backgroundColorStyles:T}=Ge(N(e,"bgColor")),{textColorClasses:w,textColorStyles:P}=Ct(b(()=>e.error||e.disabled?void 0:g.value&&s.value?e.color:e.baseColor));de(g,F=>{if(h.value){const z=C.value.$el,q=A.value.$el;requestAnimationFrame(()=>{const ee=Hu(z),$=q.getBoundingClientRect(),Z=$.x-ee.x,M=$.y-ee.y-(ee.height/2-$.height/2),U=$.width/.75,ne=Math.abs(U-ee.width)>1?{maxWidth:fe(U)}:void 0,he=getComputedStyle(z),we=getComputedStyle(q),ye=parseFloat(he.transitionDuration)*1e3||150,K=parseFloat(we.getPropertyValue("--v-field-label-scale")),D=we.getPropertyValue("color");z.style.visibility="visible",q.style.visibility="hidden",Ca(z,{transform:`translate(${Z}px, ${M}px) scale(${K})`,color:D,...ne},{duration:ye,easing:lo,direction:F?"normal":"reverse"}).finished.then(()=>{z.style.removeProperty("visibility"),q.style.removeProperty("visibility")})})}},{flush:"post"});const E=b(()=>({isActive:g,isFocused:s,controlRef:x,blur:c,focus:u}));function I(F){F.target!==document.activeElement&&F.preventDefault()}function R(F){var z;F.key!=="Enter"&&F.key!==" "||(F.preventDefault(),F.stopPropagation(),(z=e["onClick:clear"])==null||z.call(e,new MouseEvent("click")))}return Y(()=>{var Z,M,U;const F=e.variant==="outlined",z=!!(l["prepend-inner"]||e.prependInnerIcon),q=!!(e.clearable||l.clear),ee=!!(l["append-inner"]||e.appendInnerIcon||q),$=()=>l.label?l.label({...E.value,label:e.label,props:{for:p.value}}):e.label;return d("div",X({class:["v-field",{"v-field--active":g.value,"v-field--appended":ee,"v-field--center-affix":e.centerAffix??!k.value,"v-field--disabled":e.disabled,"v-field--dirty":e.dirty,"v-field--error":e.error,"v-field--flat":e.flat,"v-field--has-background":!!e.bgColor,"v-field--persistent-clear":e.persistentClear,"v-field--prepended":z,"v-field--reverse":e.reverse,"v-field--single-line":e.singleLine,"v-field--no-label":!$(),[`v-field--variant-${e.variant}`]:!0},o.value,V.value,r.value,i.value,v.value,m.value,e.class],style:[T.value,e.style],onClick:I},n),[d("div",{class:"v-field__overlay"},null),d(Vo,{name:"v-field",active:!!e.loading,color:e.error?"error":typeof e.loading=="string"?e.loading:e.color},{default:l.loader}),z&&d("div",{key:"prepend",class:"v-field__prepend-inner"},[e.prependInnerIcon&&d(f,{key:"prepend-icon",name:"prependInner"},null),(Z=l["prepend-inner"])==null?void 0:Z.call(l,E.value)]),d("div",{class:"v-field__field","data-no-activator":""},[["filled","solo","solo-inverted","solo-filled"].includes(e.variant)&&h.value&&d(Ll,{key:"floating-label",ref:A,class:[w.value],floating:!0,for:p.value,style:P.value},{default:()=>[$()]}),d(Ll,{ref:C,for:p.value},{default:()=>[$()]}),(M=l.default)==null?void 0:M.call(l,{...E.value,props:{id:p.value,class:"v-field__input","aria-describedby":S.value},focus:u,blur:c})]),q&&d(rc,{key:"clear"},{default:()=>[Ue(d("div",{class:"v-field__clearable",onMousedown:ne=>{ne.preventDefault(),ne.stopPropagation()}},[d(Be,{defaults:{VIcon:{icon:e.clearIcon}}},{default:()=>[l.clear?l.clear({...E.value,props:{onKeydown:R,onFocus:u,onBlur:c,onClick:e["onClick:clear"]}}):d(f,{name:"clear",onKeydown:R,onFocus:u,onBlur:c},null)]})]),[[hn,e.dirty]])]}),ee&&d("div",{key:"append",class:"v-field__append-inner"},[(U=l["append-inner"])==null?void 0:U.call(l,E.value),e.appendInnerIcon&&d(f,{key:"append-icon",name:"appendInner"},null)]),d("div",{class:["v-field__outline",w.value],style:P.value},[F&&d(ge,null,[d("div",{class:"v-field__outline__start"},null),h.value&&d("div",{class:"v-field__outline__notch"},[d(Ll,{ref:A,floating:!0,for:p.value},{default:()=>[$()]})]),d("div",{class:"v-field__outline__end"},null)]),k.value&&h.value&&d(Ll,{ref:A,floating:!0,for:p.value},{default:()=>[$()]})])])}),{controlRef:x}}});function sc(e){const t=Object.keys(_l.props).filter(n=>!ji(n)&&n!=="class"&&n!=="style");return Hm(e,t)}const n1=L({active:Boolean,color:String,messages:{type:[Array,String],default:()=>[]},...ve(),...gn({transition:{component:ic,leaveAbsolute:!0,group:!0}})},"VMessages"),ug=j()({name:"VMessages",props:n1(),setup(e,t){let{slots:n}=t;const a=b(()=>Qe(e.messages)),{textColorClasses:l,textColorStyles:o}=Ct(b(()=>e.color));return Y(()=>d(Rt,{transition:e.transition,tag:"div",class:["v-messages",l.value,e.class],style:[o.value,e.style],role:"alert","aria-live":"polite"},{default:()=>[e.active&&a.value.map((i,r)=>d("div",{class:"v-messages__message",key:`${r}-${a.value}`},[n.message?n.message({message:i}):i]))]})),{}}}),cg=L({disabled:{type:Boolean,default:null},error:Boolean,errorMessages:{type:[Array,String],default:()=>[]},maxErrors:{type:[Number,String],default:1},name:String,label:String,readonly:{type:Boolean,default:null},rules:{type:Array,default:()=>[]},modelValue:null,validateOn:String,validationValue:null,...Eo()},"validation");function dg(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Tn(),n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:wt();const a=Se(e,"modelValue"),l=b(()=>e.validationValue===void 0?a.value:e.validationValue),o=er(),i=te([]),r=ue(!0),s=b(()=>!!(Qe(a.value===""?null:a.value).length||Qe(l.value===""?null:l.value).length)),u=b(()=>!!(e.disabled??(o==null?void 0:o.isDisabled.value))),c=b(()=>!!(e.readonly??(o==null?void 0:o.isReadonly.value))),f=b(()=>{var x;return(x=e.errorMessages)!=null&&x.length?Qe(e.errorMessages).concat(i.value).slice(0,Math.max(0,+e.maxErrors)):i.value}),v=b(()=>{let x=(e.validateOn??(o==null?void 0:o.validateOn.value))||"input";x==="lazy"&&(x="input lazy");const k=new Set((x==null?void 0:x.split(" "))??[]);return{blur:k.has("blur")||k.has("input"),input:k.has("input"),submit:k.has("submit"),lazy:k.has("lazy")}}),m=b(()=>{var x;return e.error||(x=e.errorMessages)!=null&&x.length?!1:e.rules.length?r.value?i.value.length||v.value.lazy?null:!0:!i.value.length:!0}),g=ue(!1),h=b(()=>({[`${t}--error`]:m.value===!1,[`${t}--dirty`]:s.value,[`${t}--disabled`]:u.value,[`${t}--readonly`]:c.value})),y=at("validation"),p=b(()=>e.name??st(n));_u(()=>{o==null||o.register({id:p.value,vm:y,validate:A,reset:S,resetValidation:C})}),Pt(()=>{o==null||o.unregister(p.value)}),Vt(async()=>{v.value.lazy||await A(!0),o==null||o.update(p.value,m.value,f.value)}),Nt(()=>v.value.input,()=>{de(l,()=>{if(l.value!=null)A();else if(e.focused){const x=de(()=>e.focused,k=>{k||A(),x()})}})}),Nt(()=>v.value.blur,()=>{de(()=>e.focused,x=>{x||A()})}),de([m,f],()=>{o==null||o.update(p.value,m.value,f.value)});async function S(){a.value=null,await Oe(),await C()}async function C(){r.value=!0,v.value.lazy?i.value=[]:await A(!0)}async function A(){let x=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1;const k=[];g.value=!0;for(const V of e.rules){if(k.length>=+(e.maxErrors??1))break;const w=await(typeof V=="function"?V:()=>V)(l.value);if(w!==!0){if(w!==!1&&typeof w!="string"){console.warn(`${w} is not a valid value. Rule functions must return boolean true or a string.`);continue}k.push(w||"")}}return i.value=k,g.value=!1,r.value=x,i.value}return{errorMessages:f,isDirty:s,isDisabled:u,isReadonly:c,isPristine:r,isValid:m,isValidating:g,reset:S,resetValidation:C,validate:A,validationClasses:h}}const qn=L({id:String,appendIcon:_e,centerAffix:{type:Boolean,default:!0},prependIcon:_e,hideDetails:[Boolean,String],hideSpinButtons:Boolean,hint:String,persistentHint:Boolean,messages:{type:[Array,String],default:()=>[]},direction:{type:String,default:"horizontal",validator:e=>["horizontal","vertical"].includes(e)},"onClick:prepend":St(),"onClick:append":St(),...ve(),...bt(),...zi(gt(),["maxWidth","minWidth","width"]),...De(),...cg()},"VInput"),_t=j()({name:"VInput",props:{...qn()},emits:{"update:modelValue":e=>!0},setup(e,t){let{attrs:n,slots:a,emit:l}=t;const{densityClasses:o}=Dt(e),{dimensionStyles:i}=yt(e),{themeClasses:r}=$e(e),{rtlClasses:s}=ht(),{InputIcon:u}=sg(e),c=wt(),f=b(()=>e.id||`input-${c}`),v=b(()=>`${f.value}-messages`),{errorMessages:m,isDirty:g,isDisabled:h,isReadonly:y,isPristine:p,isValid:S,isValidating:C,reset:A,resetValidation:x,validate:k,validationClasses:V}=dg(e,"v-input",f),T=b(()=>({id:f,messagesId:v,isDirty:g,isDisabled:h,isReadonly:y,isPristine:p,isValid:S,isValidating:C,reset:A,resetValidation:x,validate:k})),w=b(()=>{var P;return(P=e.errorMessages)!=null&&P.length||!p.value&&m.value.length?m.value:e.hint&&(e.persistentHint||e.focused)?e.hint:e.messages});return Y(()=>{var F,z,q,ee;const P=!!(a.prepend||e.prependIcon),E=!!(a.append||e.appendIcon),I=w.value.length>0,R=!e.hideDetails||e.hideDetails==="auto"&&(I||!!a.details);return d("div",{class:["v-input",`v-input--${e.direction}`,{"v-input--center-affix":e.centerAffix,"v-input--hide-spin-buttons":e.hideSpinButtons},o.value,r.value,s.value,V.value,e.class],style:[i.value,e.style]},[P&&d("div",{key:"prepend",class:"v-input__prepend"},[(F=a.prepend)==null?void 0:F.call(a,T.value),e.prependIcon&&d(u,{key:"prepend-icon",name:"prepend"},null)]),a.default&&d("div",{class:"v-input__control"},[(z=a.default)==null?void 0:z.call(a,T.value)]),E&&d("div",{key:"append",class:"v-input__append"},[e.appendIcon&&d(u,{key:"append-icon",name:"append"},null),(q=a.append)==null?void 0:q.call(a,T.value)]),R&&d("div",{class:"v-input__details"},[d(ug,{id:v.value,active:I,messages:w.value},{message:a.message}),(ee=a.details)==null?void 0:ee.call(a,T.value)])])}),{reset:A,resetValidation:x,validate:k,isValid:S,errorMessages:m}}}),a1=["color","file","time","date","datetime-local","week","month"],or=L({autofocus:Boolean,counter:[Boolean,Number,String],counterValue:[Number,Function],prefix:String,placeholder:String,persistentPlaceholder:Boolean,persistentCounter:Boolean,suffix:String,role:String,type:{type:String,default:"text"},modelModifiers:Object,...qn(),...Ao()},"VTextField"),Mt=j()({name:"VTextField",directives:{Intersect:To},inheritAttrs:!1,props:or(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{attrs:n,emit:a,slots:l}=t;const o=Se(e,"modelValue"),{isFocused:i,focus:r,blur:s}=Yn(e),u=b(()=>typeof e.counterValue=="function"?e.counterValue(o.value):typeof e.counterValue=="number"?e.counterValue:(o.value??"").toString().length),c=b(()=>{if(n.maxlength)return n.maxlength;if(!(!e.counter||typeof e.counter!="number"&&typeof e.counter!="string"))return e.counter}),f=b(()=>["plain","underlined"].includes(e.variant));function v(k,V){var T,w;!e.autofocus||!k||(w=(T=V[0].target)==null?void 0:T.focus)==null||w.call(T)}const m=te(),g=te(),h=te(),y=b(()=>a1.includes(e.type)||e.persistentPlaceholder||i.value||e.active);function p(){var k;h.value!==document.activeElement&&((k=h.value)==null||k.focus()),i.value||r()}function S(k){a("mousedown:control",k),k.target!==h.value&&(p(),k.preventDefault())}function C(k){p(),a("click:control",k)}function A(k){k.stopPropagation(),p(),Oe(()=>{o.value=null,Nu(e["onClick:clear"],k)})}function x(k){var T;const V=k.target;if(o.value=V.value,(T=e.modelModifiers)!=null&&T.trim&&["text","search","password","tel","url"].includes(e.type)){const w=[V.selectionStart,V.selectionEnd];Oe(()=>{V.selectionStart=w[0],V.selectionEnd=w[1]})}}return Y(()=>{const k=!!(l.counter||e.counter!==!1&&e.counter!=null),V=!!(k||l.details),[T,w]=fa(n),{modelValue:P,...E}=_t.filterProps(e),I=sc(e);return d(_t,X({ref:m,modelValue:o.value,"onUpdate:modelValue":R=>o.value=R,class:["v-text-field",{"v-text-field--prefixed":e.prefix,"v-text-field--suffixed":e.suffix,"v-input--plain-underlined":f.value},e.class],style:e.style},T,E,{centerAffix:!f.value,focused:i.value}),{...l,default:R=>{let{id:F,isDisabled:z,isDirty:q,isReadonly:ee,isValid:$}=R;return d(_l,X({ref:g,onMousedown:S,onClick:C,"onClick:clear":A,"onClick:prependInner":e["onClick:prependInner"],"onClick:appendInner":e["onClick:appendInner"],role:e.role},I,{id:F.value,active:y.value||q.value,dirty:q.value||e.dirty,disabled:z.value,focused:i.value,error:$.value===!1}),{...l,default:Z=>{let{props:{class:M,...U}}=Z;const ne=Ue(d("input",X({ref:h,value:o.value,onInput:x,autofocus:e.autofocus,readonly:ee.value,disabled:z.value,name:e.name,placeholder:e.placeholder,size:1,type:e.type,onFocus:p,onBlur:s},U,w),null),[[Gt("intersect"),{handler:v},null,{once:!0}]]);return d(ge,null,[e.prefix&&d("span",{class:"v-text-field__prefix"},[d("span",{class:"v-text-field__prefix__text"},[e.prefix])]),l.default?d("div",{class:M,"data-no-activator":""},[l.default(),ne]):Fn(ne,{class:M}),e.suffix&&d("span",{class:"v-text-field__suffix"},[d("span",{class:"v-text-field__suffix__text"},[e.suffix])])])}})},details:V?R=>{var F;return d(ge,null,[(F=l.details)==null?void 0:F.call(l,R),k&&d(ge,null,[d("span",null,null),d(lr,{active:e.persistentCounter||i.value,value:u.value,max:c.value,disabled:e.disabled},l.counter)])])}:void 0})}),rn({},m,g,h)}}),l1={name:"ModifyMember",data(){return{userId:"",password:"",passwordConfirm:"",name:"",email1:"",email2:""}},methods:{fetchData(){axios.get("/api/member",{params:{id:this.userId}}).then(e=>{const t=e.data;this.userId=t.id,this.password=t.pass,this.passwordConfirm=t.pass,this.name=t.name;const n=t.email.split("@");this.email1=n[0],this.email2=n[1]}).catch(e=>{console.error("There was an error fetching the member data!",e)})},checkInput(){if(!this.password||!this.passwordConfirm||!this.name||!this.email1||!this.email2){alert("모든 필드를 입력하세요!");return}if(this.password!==this.passwordConfirm){alert("비밀번호가 일치하지 않습니다!");return}this.submitForm()},resetForm(){this.fetchData()},submitForm(){const e={id:this.userId,pass:this.password,name:this.name,email:`${this.email1}@${this.email2}`};axios.post("/api/member_modify",e).then(t=>{console.log("회원 정보가 수정되었습니다!",t.data)}).catch(t=>{console.error("There was an error modifying the member data!",t)})}},created(){this.fetchData()}},o1=e=>(jn("data-v-ef254e13"),e=e(),Un(),e),i1=o1(()=>me("span",{class:"headline"},"회원 정보수정",-1));function r1(e,t,n,a,l,o){return ze(),$i(nc,{class:"fill-height"},{default:Re(()=>[d(Dn,{align:"center",justify:"center"},{default:Re(()=>[d(Sn,{cols:"12",sm:"8",md:"6",lg:"4"},{default:Re(()=>[d(ec,null,{default:Re(()=>[d(Zi,{class:"text-center"},{default:Re(()=>[i1]),_:1}),d(Qi,null,{default:Re(()=>[d(tc,{onSubmit:eo(o.checkInput,["prevent"])},{default:Re(()=>[d(Dn,{class:"mb-4"},{default:Re(()=>[d(Sn,{cols:"4"},{default:Re(()=>[d(Mt,{modelValue:l.userId,"onUpdate:modelValue":t[0]||(t[0]=i=>l.userId=i),label:"아이디",readonly:"",outlined:"",dense:""},null,8,["modelValue"])]),_:1})]),_:1}),d(Dn,{class:"mb-4"},{default:Re(()=>[d(Sn,{cols:"12"},{default:Re(()=>[d(Mt,{modelValue:l.password,"onUpdate:modelValue":t[1]||(t[1]=i=>l.password=i),label:"비밀번호",type:"password",outlined:"",dense:""},null,8,["modelValue"])]),_:1})]),_:1}),d(Dn,{class:"mb-4"},{default:Re(()=>[d(Sn,{cols:"12"},{default:Re(()=>[d(Mt,{modelValue:l.passwordConfirm,"onUpdate:modelValue":t[2]||(t[2]=i=>l.passwordConfirm=i),label:"비밀번호 확인",type:"password",outlined:"",dense:""},null,8,["modelValue"])]),_:1})]),_:1}),d(Dn,{class:"mb-4"},{default:Re(()=>[d(Sn,{cols:"12"},{default:Re(()=>[d(Mt,{modelValue:l.name,"onUpdate:modelValue":t[3]||(t[3]=i=>l.name=i),label:"이름",outlined:"",dense:""},null,8,["modelValue"])]),_:1})]),_:1}),d(Dn,{class:"mb-4"},{default:Re(()=>[d(Sn,{cols:"5"},{default:Re(()=>[d(Mt,{modelValue:l.email1,"onUpdate:modelValue":t[4]||(t[4]=i=>l.email1=i),label:"이메일",outlined:"",dense:""},null,8,["modelValue"])]),_:1}),d(Sn,{cols:"7"},{default:Re(()=>[d(Mt,{modelValue:l.email2,"onUpdate:modelValue":t[5]||(t[5]=i=>l.email2=i),label:"도메인",outlined:"",dense:""},null,8,["modelValue"])]),_:1})]),_:1}),d(Dn,null,{default:Re(()=>[d(Sn,{cols:"12",class:"text-right"},{default:Re(()=>[d(Me,{color:"#FFD54F",type:"submit",class:"mr-2"},{default:Re(()=>[mt(" 확인 ")]),_:1}),d(Me,{color:"info",onClick:o.resetForm},{default:Re(()=>[mt(" 취소 ")]),_:1},8,["onClick"])]),_:1})]),_:1})]),_:1},8,["onSubmit"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}const s1=Pn(l1,[["render",r1],["__scopeId","data-v-ef254e13"]]),u1={name:"Login",data(){return{id:"",pass:""}},methods:{checkInput(){if(!this.id){alert("아이디를 입력하세요!");return}if(!this.pass){alert("비밀번호를 입력하세요!");return}this.submitForm()},submitForm(){axios.post("http://localhost:8000/api/login",{id:this.id,pass:this.pass}).then(e=>{const t=e.data;t.success?(sessionStorage.setItem("userid",t.userid),sessionStorage.setItem("username",t.username),sessionStorage.setItem("userlevel",t.userlevel),sessionStorage.setItem("userpoint",t.userpoint),this.$router.push("/")):alert(t.message)}).catch(e=>{console.error("There was an error!",e),alert("로그인 중 오류가 발생했습니다.")})}}},c1=e=>(jn("data-v-814fd6a0"),e=e(),Un(),e),d1=c1(()=>me("span",{class:"headline"},"로그인",-1));function f1(e,t,n,a,l,o){return ze(),$i(nc,{class:"fill-height"},{default:Re(()=>[d(Dn,{align:"center",justify:"center"},{default:Re(()=>[d(Sn,{cols:"12",sm:"8",md:"4"},{default:Re(()=>[d(ec,null,{default:Re(()=>[d(Zi,{class:"text-center"},{default:Re(()=>[d1]),_:1}),d(Qi,null,{default:Re(()=>[d(tc,{onSubmit:eo(o.checkInput,["prevent"])},{default:Re(()=>[d(Mt,{modelValue:l.id,"onUpdate:modelValue":t[0]||(t[0]=i=>l.id=i),label:"아이디",required:""},null,8,["modelValue"]),d(Mt,{modelValue:l.pass,"onUpdate:modelValue":t[1]||(t[1]=i=>l.pass=i),label:"비밀번호",type:"password",required:""},null,8,["modelValue"]),d(Me,{color:"warning",type:"submit",class:"mt-4",block:""},{default:Re(()=>[mt("로그인")]),_:1})]),_:1},8,["onSubmit"])]),_:1})]),_:1})]),_:1})]),_:1})]),_:1})}const v1=Pn(u1,[["render",f1],["__scopeId","data-v-814fd6a0"]]),m1={name:"AuthSuccess",mounted(){this.fetchLoginResponse()},methods:{async fetchLoginResponse(){try{const e=await axios.get("http://localhost:8081/auth/success",{withCredentials:!0}),{accessToken:t,refreshToken:n}=e.data;localStorage.setItem("accessToken",t),localStorage.setItem("refreshToken",n),this.$router.push({name:"MainHome"})}catch(e){console.error("로그인 응답 처리 오류:",e),this.$router.push({name:"Login"})}}}},h1=e=>(jn("data-v-37f316ef"),e=e(),Un(),e),g1=h1(()=>me("h1",null,"로그인 성공 중...",-1)),y1=[g1];function b1(e,t,n,a,l,o){return ze(),qe("div",null,y1)}const p1=Pn(m1,[["render",b1],["__scopeId","data-v-37f316ef"]]),S1=[{path:"/",name:"MainHome",component:Zk},{path:"/BoardList",name:"BoardList",component:px},{path:"/CreateBucket",name:"CreateBucket",component:Mx},{path:"/JoinMember",name:"JoinMember",component:Wx},{path:"/ModifyMember",name:"ModifyMember",component:s1},{path:"/Login",name:"Login",component:v1},{path:"/auth/success",name:"AuthSuccess",component:p1}],w1=Bk({history:ik(),routes:S1}),vo={"001":1,AD:1,AE:6,AF:6,AG:0,AI:1,AL:1,AM:1,AN:1,AR:1,AS:0,AT:1,AU:1,AX:1,AZ:1,BA:1,BD:0,BE:1,BG:1,BH:6,BM:1,BN:1,BR:0,BS:0,BT:0,BW:0,BY:1,BZ:0,CA:0,CH:1,CL:1,CM:1,CN:1,CO:0,CR:1,CY:1,CZ:1,DE:1,DJ:6,DK:1,DM:0,DO:0,DZ:6,EC:1,EE:1,EG:6,ES:1,ET:0,FI:1,FJ:1,FO:1,FR:1,GB:1,"GB-alt-variant":0,GE:1,GF:1,GP:1,GR:1,GT:0,GU:0,HK:0,HN:0,HR:1,HU:1,ID:0,IE:1,IL:0,IN:0,IQ:6,IR:6,IS:1,IT:1,JM:0,JO:6,JP:0,KE:0,KG:1,KH:0,KR:0,KW:6,KZ:1,LA:0,LB:1,LI:1,LK:1,LT:1,LU:1,LV:1,LY:6,MC:1,MD:1,ME:1,MH:0,MK:1,MM:0,MN:1,MO:0,MQ:1,MT:0,MV:5,MX:0,MY:1,MZ:0,NI:0,NL:1,NO:1,NP:0,NZ:1,OM:6,PA:0,PE:0,PH:0,PK:0,PL:1,PR:0,PT:0,PY:0,QA:6,RE:1,RO:1,RS:1,RU:1,SA:0,SD:6,SE:1,SG:0,SI:1,SK:1,SM:1,SV:0,SY:6,TH:0,TJ:1,TM:1,TR:1,TT:0,TW:0,UA:1,UM:0,US:0,UY:1,UZ:1,VA:1,VE:0,VI:0,VN:1,WS:0,XK:1,YE:0,ZA:0,ZW:0};function k1(e,t){const n=[];let a=[];const l=fg(e),o=vg(e),i=(l.getDay()-vo[t.slice(-2).toUpperCase()]+7)%7,r=(o.getDay()-vo[t.slice(-2).toUpperCase()]+7)%7;for(let s=0;s0&&n.push(a),n}function x1(e,t){const n=new Date(e);for(;n.getDay()!==(vo[t.slice(-2).toUpperCase()]??0);)n.setDate(n.getDate()-1);return n}function C1(e,t){const n=new Date(e),a=((vo[t.slice(-2).toUpperCase()]??0)+6)%7;for(;n.getDay()!==a;)n.setDate(n.getDate()+1);return n}function fg(e){return new Date(e.getFullYear(),e.getMonth(),1)}function vg(e){return new Date(e.getFullYear(),e.getMonth()+1,0)}function _1(e){const t=e.split("-").map(Number);return new Date(t[0],t[1]-1,t[2])}const V1=/^([12]\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\d|3[01]))$/;function mg(e){if(e==null)return new Date;if(e instanceof Date)return e;if(typeof e=="string"){let t;if(V1.test(e))return _1(e);if(t=Date.parse(e),!isNaN(t))return new Date(t)}return null}const Hf=new Date(2e3,0,2);function P1(e){const t=vo[e.slice(-2).toUpperCase()];return xn(7).map(n=>{const a=new Date(Hf);return a.setDate(Hf.getDate()+t+n),new Intl.DateTimeFormat(e,{weekday:"narrow"}).format(a)})}function I1(e,t,n,a){const l=mg(e)??new Date,o=a==null?void 0:a[t];if(typeof o=="function")return o(l,t,n);let i={};switch(t){case"fullDate":i={year:"numeric",month:"long",day:"numeric"};break;case"fullDateWithWeekday":i={weekday:"long",year:"numeric",month:"long",day:"numeric"};break;case"normalDate":const r=l.getDate(),s=new Intl.DateTimeFormat(n,{month:"long"}).format(l);return`${r} ${s}`;case"normalDateWithWeekday":i={weekday:"short",day:"numeric",month:"short"};break;case"shortDate":i={month:"short",day:"numeric"};break;case"year":i={year:"numeric"};break;case"month":i={month:"long"};break;case"monthShort":i={month:"short"};break;case"monthAndYear":i={month:"long",year:"numeric"};break;case"monthAndDate":i={month:"long",day:"numeric"};break;case"weekday":i={weekday:"long"};break;case"weekdayShort":i={weekday:"short"};break;case"dayOfMonth":return new Intl.NumberFormat(n).format(l.getDate());case"hours12h":i={hour:"numeric",hour12:!0};break;case"hours24h":i={hour:"numeric",hour12:!1};break;case"minutes":i={minute:"numeric"};break;case"seconds":i={second:"numeric"};break;case"fullTime":i={hour:"numeric",minute:"numeric",second:"numeric",hour12:!0};break;case"fullTime12h":i={hour:"numeric",minute:"numeric",second:"numeric",hour12:!0};break;case"fullTime24h":i={hour:"numeric",minute:"numeric",second:"numeric",hour12:!1};break;case"fullDateTime":i={year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0};break;case"fullDateTime12h":i={year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0};break;case"fullDateTime24h":i={year:"numeric",month:"long",day:"numeric",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1};break;case"keyboardDate":i={year:"numeric",month:"2-digit",day:"2-digit"};break;case"keyboardDateTime":i={year:"numeric",month:"2-digit",day:"2-digit",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1};break;case"keyboardDateTime12h":i={year:"numeric",month:"2-digit",day:"2-digit",hour:"numeric",minute:"numeric",second:"numeric",hour12:!0};break;case"keyboardDateTime24h":i={year:"numeric",month:"2-digit",day:"2-digit",hour:"numeric",minute:"numeric",second:"numeric",hour12:!1};break;default:i=o??{timeZone:"UTC",timeZoneName:"short"}}return new Intl.DateTimeFormat(n,i).format(l)}function T1(e,t){const n=e.toJsDate(t),a=n.getFullYear(),l=Ud(String(n.getMonth()+1),2,"0"),o=Ud(String(n.getDate()),2,"0");return`${a}-${l}-${o}`}function E1(e){const[t,n,a]=e.split("-").map(Number);return new Date(t,n-1,a)}function A1(e,t){const n=new Date(e);return n.setMinutes(n.getMinutes()+t),n}function B1(e,t){const n=new Date(e);return n.setHours(n.getHours()+t),n}function R1(e,t){const n=new Date(e);return n.setDate(n.getDate()+t),n}function O1(e,t){const n=new Date(e);return n.setDate(n.getDate()+t*7),n}function D1(e,t){const n=new Date(e);return n.setDate(1),n.setMonth(n.getMonth()+t),n}function L1(e){return e.getFullYear()}function M1(e){return e.getMonth()}function F1(e){return e.getDate()}function $1(e){return new Date(e.getFullYear(),e.getMonth()+1,1)}function N1(e){return new Date(e.getFullYear(),e.getMonth()-1,1)}function H1(e){return e.getHours()}function z1(e){return e.getMinutes()}function j1(e){return new Date(e.getFullYear(),0,1)}function U1(e){return new Date(e.getFullYear(),11,31)}function W1(e,t){return _i(e,t[0])&&Y1(e,t[1])}function G1(e){const t=new Date(e);return t instanceof Date&&!isNaN(t.getTime())}function _i(e,t){return e.getTime()>t.getTime()}function K1(e,t){return _i(As(e),As(t))}function Y1(e,t){return e.getTime(){n.locale=e.locale[a]??a??n.locale}),n}function Bo(){const e=Te(hg);if(!e)throw new Error("[Vuetify] Could not find injected date options");const t=lt();return gg(e,t)}function r_(e,t){const n=e.toJsDate(t);let a=n.getFullYear(),l=new Date(a,0,1);if(n=r&&(a=a+1,l=r)}const o=Math.abs(n.getTime()-l.getTime()),i=Math.ceil(o/(1e3*60*60*24));return Math.floor(i/7)+1}const yg=Symbol.for("vuetify:goto");function bg(){return{container:void 0,duration:300,layout:!1,offset:0,easing:"easeInOutCubic",patterns:{linear:e=>e,easeInQuad:e=>e**2,easeOutQuad:e=>e*(2-e),easeInOutQuad:e=>e<.5?2*e**2:-1+(4-2*e)*e,easeInCubic:e=>e**3,easeOutCubic:e=>--e**3+1,easeInOutCubic:e=>e<.5?4*e**3:(e-1)*(2*e-2)*(2*e-2)+1,easeInQuart:e=>e**4,easeOutQuart:e=>1- --e**4,easeInOutQuart:e=>e<.5?8*e**4:1-8*--e**4,easeInQuint:e=>e**5,easeOutQuint:e=>1+--e**5,easeInOutQuint:e=>e<.5?16*e**5:1+16*--e**5}}}function s_(e){return uc(e)??(document.scrollingElement||document.body)}function uc(e){return typeof e=="string"?document.querySelector(e):Fu(e)}function Gr(e,t,n){if(typeof e=="number")return t&&n?-e:e;let a=uc(e),l=0;for(;a;)l+=t?a.offsetLeft:a.offsetTop,a=a.offsetParent;return l}function u_(e,t){return{rtl:t.isRtl,options:Bt(bg(),e)}}async function Uf(e,t,n,a){const l=n?"scrollLeft":"scrollTop",o=Bt((a==null?void 0:a.options)??bg(),t),i=a==null?void 0:a.rtl.value,r=(typeof e=="number"?e:uc(e))??0,s=o.container==="parent"&&r instanceof HTMLElement?r.parentElement:s_(o.container),u=typeof o.easing=="function"?o.easing:o.patterns[o.easing];if(!u)throw new TypeError(`Easing function "${o.easing}" not found.`);let c;if(typeof r=="number")c=Gr(r,n,i);else if(c=Gr(r,n,i)-Gr(s,n,i),o.layout){const g=window.getComputedStyle(r).getPropertyValue("--v-layout-top");g&&(c-=parseInt(g,10))}c+=o.offset,c=d_(s,c,!!i,!!n);const f=s[l]??0;if(c===f)return Promise.resolve(c);const v=performance.now();return new Promise(m=>requestAnimationFrame(function g(h){const p=(h-v)/o.duration,S=Math.floor(f+(c-f)*u(ot(p,0,1)));if(s[l]=S,p>=1&&Math.abs(S-s[l])<10)return m(c);if(p>2)return m(s[l]);requestAnimationFrame(g)}))}function c_(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t=Te(yg),{isRtl:n}=ht();if(!t)throw new Error("[Vuetify] Could not find injected goto instance");const a={...t,rtl:b(()=>t.rtl.value||n.value)};async function l(o,i){return Uf(o,Bt(e,i),!1,a)}return l.horizontal=async(o,i)=>Uf(o,Bt(e,i),!0,a),l}function d_(e,t,n,a){const{scrollWidth:l,scrollHeight:o}=e,[i,r]=e===document.scrollingElement?[window.innerWidth,window.innerHeight]:[e.offsetWidth,e.offsetHeight];let s,u;return a?n?(s=-(l-i),u=0):(s=0,u=l-i):(s=0,u=o+-r),Math.max(Math.min(t,u),s)}function pg(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{blueprint:t,...n}=e,a=Bt(t,n),{aliases:l={},components:o={},directives:i={}}=a,r=iw(a.defaults),s=EC(a.display,a.ssr),u=Cw(a.theme),c=aC(a.icons),f=bw(a.locale),v=i_(a.date,f),m=u_(a.goTo,f);return{install:h=>{for(const y in i)h.directive(y,i[y]);for(const y in o)h.component(y,o[y]);for(const y in l)h.component(y,Kt({...l[y],name:y,aliasName:l[y].name}));if(u.install(h),h.provide(vl,r),h.provide(Es,s),h.provide(io,u),h.provide(_s,c),h.provide(ml,f),h.provide(hg,v.options),h.provide(jf,v.instance),h.provide(yg,m),He&&a.ssr)if(h.$nuxt)h.$nuxt.hook("app:suspense:resolve",()=>{s.update()});else{const{mount:y}=h;h.mount=function(){const p=y(...arguments);return Oe(()=>s.update()),h.mount=y,p}}wt.reset(),h.mixin({computed:{$vuetify(){return Tt({defaults:Za.call(this,vl),display:Za.call(this,Es),theme:Za.call(this,io),icons:Za.call(this,_s),locale:Za.call(this,ml),date:Za.call(this,jf)})}}})},defaults:r,display:s,theme:u,icons:c,locale:f,date:v,goTo:m}}const f_="3.6.9";pg.version=f_;function Za(e){var a,l;const t=this.$,n=((a=t.parent)==null?void 0:a.provides)??((l=t.vnode.appContext)==null?void 0:l.provides);if(n&&e in n)return n[e]}const Sg=L({text:String,...ve(),...Pe()},"VToolbarTitle"),cc=j()({name:"VToolbarTitle",props:Sg(),setup(e,t){let{slots:n}=t;return Y(()=>{const a=!!(n.default||n.text||e.text);return d(e.tag,{class:["v-toolbar-title",e.class],style:e.style},{default:()=>{var l;return[a&&d("div",{class:"v-toolbar-title__placeholder"},[n.text?n.text():e.text,(l=n.default)==null?void 0:l.call(n)])]}})}),{}}}),v_=[null,"prominent","default","comfortable","compact"],wg=L({absolute:Boolean,collapse:Boolean,color:String,density:{type:String,default:"default",validator:e=>v_.includes(e)},extended:Boolean,extensionHeight:{type:[Number,String],default:48},flat:Boolean,floating:Boolean,height:{type:[Number,String],default:64},image:String,title:String,...Yt(),...ve(),...vt(),...Xe(),...Pe({tag:"header"}),...De()},"VToolbar"),Bs=j()({name:"VToolbar",props:wg(),setup(e,t){var m;let{slots:n}=t;const{backgroundColorClasses:a,backgroundColorStyles:l}=Ge(N(e,"color")),{borderClasses:o}=ln(e),{elevationClasses:i}=kt(e),{roundedClasses:r}=tt(e),{themeClasses:s}=$e(e),{rtlClasses:u}=ht(),c=ue(!!(e.extended||(m=n.extension)!=null&&m.call(n))),f=b(()=>parseInt(Number(e.height)+(e.density==="prominent"?Number(e.height):0)-(e.density==="comfortable"?8:0)-(e.density==="compact"?16:0),10)),v=b(()=>c.value?parseInt(Number(e.extensionHeight)+(e.density==="prominent"?Number(e.extensionHeight):0)-(e.density==="comfortable"?4:0)-(e.density==="compact"?8:0),10):0);return et({VBtn:{variant:"text"}}),Y(()=>{var p;const g=!!(e.title||n.title),h=!!(n.image||e.image),y=(p=n.extension)==null?void 0:p.call(n);return c.value=!!(e.extended||y),d(e.tag,{class:["v-toolbar",{"v-toolbar--absolute":e.absolute,"v-toolbar--collapse":e.collapse,"v-toolbar--flat":e.flat,"v-toolbar--floating":e.floating,[`v-toolbar--density-${e.density}`]:!0},a.value,o.value,i.value,r.value,s.value,u.value,e.class],style:[l.value,e.style]},{default:()=>[h&&d("div",{key:"image",class:"v-toolbar__image"},[n.image?d(Be,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{cover:!0,src:e.image}}},n.image):d(Nn,{key:"image-img",cover:!0,src:e.image},null)]),d(Be,{defaults:{VTabs:{height:fe(f.value)}}},{default:()=>{var S,C,A;return[d("div",{class:"v-toolbar__content",style:{height:fe(f.value)}},[n.prepend&&d("div",{class:"v-toolbar__prepend"},[(S=n.prepend)==null?void 0:S.call(n)]),g&&d(cc,{key:"title",text:e.title},{text:n.title}),(C=n.default)==null?void 0:C.call(n),n.append&&d("div",{class:"v-toolbar__append"},[(A=n.append)==null?void 0:A.call(n)])])]}}),d(Be,{defaults:{VTabs:{height:fe(v.value)}}},{default:()=>[d(ar,null,{default:()=>[c.value&&d("div",{class:"v-toolbar__extension",style:{height:fe(v.value)}},[y])]})]})]})}),{contentHeight:f,extensionHeight:v}}}),m_=L({scrollTarget:{type:String},scrollThreshold:{type:[String,Number],default:300}},"scroll");function h_(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const{canScroll:n}=t;let a=0,l=0;const o=te(null),i=ue(0),r=ue(0),s=ue(0),u=ue(!1),c=ue(!1),f=b(()=>Number(e.scrollThreshold)),v=b(()=>ot((f.value-i.value)/f.value||0)),m=()=>{const g=o.value;if(!g||n&&!n.value)return;a=i.value,i.value="window"in g?g.pageYOffset:g.scrollTop;const h=g instanceof Window?document.documentElement.scrollHeight:g.scrollHeight;if(l!==h){l=h;return}c.value=i.value{r.value=r.value||i.value}),de(u,()=>{r.value=0}),Vt(()=>{de(()=>e.scrollTarget,g=>{var y;const h=g?document.querySelector(g):window;h&&h!==o.value&&((y=o.value)==null||y.removeEventListener("scroll",m),o.value=h,o.value.addEventListener("scroll",m,{passive:!0}))},{immediate:!0})}),Pt(()=>{var g;(g=o.value)==null||g.removeEventListener("scroll",m)}),n&&de(n,m,{immediate:!0}),{scrollThreshold:f,currentScroll:i,currentThreshold:s,isScrollActive:u,scrollRatio:v,isScrollingUp:c,savedScroll:r}}const g_=L({scrollBehavior:String,modelValue:{type:Boolean,default:!0},location:{type:String,default:"top",validator:e=>["top","bottom"].includes(e)},...wg(),...$a(),...m_(),height:{type:[Number,String],default:64}},"VAppBar"),y_=j()({name:"VAppBar",props:g_(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const a=te(),l=Se(e,"modelValue"),o=b(()=>{var A;const C=new Set(((A=e.scrollBehavior)==null?void 0:A.split(" "))??[]);return{hide:C.has("hide"),fullyHide:C.has("fully-hide"),inverted:C.has("inverted"),collapse:C.has("collapse"),elevate:C.has("elevate"),fadeImage:C.has("fade-image")}}),i=b(()=>{const C=o.value;return C.hide||C.fullyHide||C.inverted||C.collapse||C.elevate||C.fadeImage||!l.value}),{currentScroll:r,scrollThreshold:s,isScrollingUp:u,scrollRatio:c}=h_(e,{canScroll:i}),f=b(()=>o.value.hide||o.value.fullyHide),v=b(()=>e.collapse||o.value.collapse&&(o.value.inverted?c.value>0:c.value===0)),m=b(()=>e.flat||o.value.fullyHide&&!l.value||o.value.elevate&&(o.value.inverted?r.value>0:r.value===0)),g=b(()=>o.value.fadeImage?o.value.inverted?1-c.value:c.value:void 0),h=b(()=>{var x,k;const C=Number(((x=a.value)==null?void 0:x.contentHeight)??e.height),A=Number(((k=a.value)==null?void 0:k.extensionHeight)??0);return f.value?r.value!!e.scrollBehavior),()=>{nt(()=>{f.value?o.value.inverted?l.value=r.value>s.value:l.value=u.value||r.valueparseInt(e.order,10)),position:N(e,"location"),layoutSize:h,elementSize:ue(void 0),active:l,absolute:N(e,"absolute")});return Y(()=>{const C=Bs.filterProps(e);return d(Bs,X({ref:a,class:["v-app-bar",{"v-app-bar--bottom":e.location==="bottom"},e.class],style:[{...p.value,"--v-toolbar-image-opacity":g.value,height:void 0,...y.value},e.style]},C,{collapse:v.value,flat:m.value}),n)}),S}}),b_=L({...Ji({icon:"$menu",variant:"text"})},"VAppBarNavIcon"),p_=j()({name:"VAppBarNavIcon",props:b_(),setup(e,t){let{slots:n}=t;return Y(()=>d(Me,X(e,{class:["v-app-bar-nav-icon"]}),n)),{}}}),S_=j()({name:"VAppBarTitle",props:Sg(),setup(e,t){let{slots:n}=t;return Y(()=>d(cc,X(e,{class:"v-app-bar-title"}),n)),{}}}),kg=En("v-alert-title"),w_=["success","info","warning","error"],k_=L({border:{type:[Boolean,String],validator:e=>typeof e=="boolean"||["top","end","bottom","start"].includes(e)},borderColor:String,closable:Boolean,closeIcon:{type:_e,default:"$close"},closeLabel:{type:String,default:"$vuetify.close"},icon:{type:[Boolean,String,Function,Object],default:null},modelValue:{type:Boolean,default:!0},prominent:Boolean,title:String,text:String,type:{type:String,validator:e=>w_.includes(e)},...ve(),...bt(),...gt(),...vt(),...Gn(),...kl(),...Xe(),...Pe(),...De(),...on({variant:"flat"})},"VAlert"),x_=j()({name:"VAlert",props:k_(),emits:{"click:close":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{emit:n,slots:a}=t;const l=Se(e,"modelValue"),o=b(()=>{if(e.icon!==!1)return e.type?e.icon??`$${e.type}`:e.icon}),i=b(()=>({color:e.color??e.type,variant:e.variant})),{themeClasses:r}=$e(e),{colorClasses:s,colorStyles:u,variantClasses:c}=za(i),{densityClasses:f}=Dt(e),{dimensionStyles:v}=yt(e),{elevationClasses:m}=kt(e),{locationStyles:g}=Ga(e),{positionClasses:h}=xl(e),{roundedClasses:y}=tt(e),{textColorClasses:p,textColorStyles:S}=Ct(N(e,"borderColor")),{t:C}=lt(),A=b(()=>({"aria-label":C(e.closeLabel),onClick(x){l.value=!1,n("click:close",x)}}));return()=>{const x=!!(a.prepend||o.value),k=!!(a.title||e.title),V=!!(a.close||e.closable);return l.value&&d(e.tag,{class:["v-alert",e.border&&{"v-alert--border":!!e.border,[`v-alert--border-${e.border===!0?"start":e.border}`]:!0},{"v-alert--prominent":e.prominent},r.value,s.value,f.value,m.value,h.value,y.value,c.value,e.class],style:[u.value,v.value,g.value,e.style],role:"alert"},{default:()=>{var T,w;return[ma(!1,"v-alert"),e.border&&d("div",{key:"border",class:["v-alert__border",p.value],style:S.value},null),x&&d("div",{key:"prepend",class:"v-alert__prepend"},[a.prepend?d(Be,{key:"prepend-defaults",disabled:!o.value,defaults:{VIcon:{density:e.density,icon:o.value,size:e.prominent?44:28}}},a.prepend):d(Fe,{key:"prepend-icon",density:e.density,icon:o.value,size:e.prominent?44:28},null)]),d("div",{class:"v-alert__content"},[k&&d(kg,{key:"title"},{default:()=>{var P;return[((P=a.title)==null?void 0:P.call(a))??e.title]}}),((T=a.text)==null?void 0:T.call(a))??e.text,(w=a.default)==null?void 0:w.call(a)]),a.append&&d("div",{key:"append",class:"v-alert__append"},[a.append()]),V&&d("div",{key:"close",class:"v-alert__close"},[a.close?d(Be,{key:"close-defaults",defaults:{VBtn:{icon:e.closeIcon,size:"x-small",variant:"text"}}},{default:()=>{var P;return[(P=a.close)==null?void 0:P.call(a,{props:A.value})]}}):d(Me,X({key:"close-btn",icon:e.closeIcon,size:"x-small",variant:"text"},A.value),null)])]}})}}}),xg=Symbol.for("vuetify:selection-control-group"),dc=L({color:String,disabled:{type:Boolean,default:null},defaultsTarget:String,error:Boolean,id:String,inline:Boolean,falseIcon:_e,trueIcon:_e,ripple:{type:[Boolean,Object],default:!0},multiple:{type:Boolean,default:null},name:String,readonly:{type:Boolean,default:null},modelValue:null,type:String,valueComparator:{type:Function,default:In},...ve(),...bt(),...De()},"SelectionControlGroup"),C_=L({...dc({defaultsTarget:"VSelectionControl"})},"VSelectionControlGroup"),Cg=j()({name:"VSelectionControlGroup",props:C_(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const a=Se(e,"modelValue"),l=wt(),o=b(()=>e.id||`v-selection-control-group-${l}`),i=b(()=>e.name||o.value),r=new Set;return We(xg,{modelValue:a,forceUpdate:()=>{r.forEach(s=>s())},onForceUpdate:s=>{r.add(s),Ot(()=>{r.delete(s)})}}),et({[e.defaultsTarget]:{color:N(e,"color"),disabled:N(e,"disabled"),density:N(e,"density"),error:N(e,"error"),inline:N(e,"inline"),modelValue:a,multiple:b(()=>!!e.multiple||e.multiple==null&&Array.isArray(a.value)),name:i,falseIcon:N(e,"falseIcon"),trueIcon:N(e,"trueIcon"),readonly:N(e,"readonly"),ripple:N(e,"ripple"),type:N(e,"type"),valueComparator:N(e,"valueComparator")}}),Y(()=>{var s;return d("div",{class:["v-selection-control-group",{"v-selection-control-group--inline":e.inline},e.class],style:e.style,role:e.type==="radio"?"radiogroup":void 0},[(s=n.default)==null?void 0:s.call(n)])}),{}}}),ir=L({label:String,baseColor:String,trueValue:null,falseValue:null,value:null,...ve(),...dc()},"VSelectionControl");function __(e){const t=Te(xg,void 0),{densityClasses:n}=Dt(e),a=Se(e,"modelValue"),l=b(()=>e.trueValue!==void 0?e.trueValue:e.value!==void 0?e.value:!0),o=b(()=>e.falseValue!==void 0?e.falseValue:!1),i=b(()=>!!e.multiple||e.multiple==null&&Array.isArray(a.value)),r=b({get(){const m=t?t.modelValue.value:a.value;return i.value?Qe(m).some(g=>e.valueComparator(g,l.value)):e.valueComparator(m,l.value)},set(m){if(e.readonly)return;const g=m?l.value:o.value;let h=g;i.value&&(h=m?[...Qe(a.value),g]:Qe(a.value).filter(y=>!e.valueComparator(y,l.value))),t?t.modelValue.value=h:a.value=h}}),{textColorClasses:s,textColorStyles:u}=Ct(b(()=>{if(!(e.error||e.disabled))return r.value?e.color:e.baseColor})),{backgroundColorClasses:c,backgroundColorStyles:f}=Ge(b(()=>r.value&&!e.error&&!e.disabled?e.color:e.baseColor)),v=b(()=>r.value?e.trueIcon:e.falseIcon);return{group:t,densityClasses:n,trueValue:l,falseValue:o,model:r,textColorClasses:s,textColorStyles:u,backgroundColorClasses:c,backgroundColorStyles:f,icon:v}}const Aa=j()({name:"VSelectionControl",directives:{Ripple:Kn},inheritAttrs:!1,props:ir(),emits:{"update:modelValue":e=>!0},setup(e,t){let{attrs:n,slots:a}=t;const{group:l,densityClasses:o,icon:i,model:r,textColorClasses:s,textColorStyles:u,backgroundColorClasses:c,backgroundColorStyles:f,trueValue:v}=__(e),m=wt(),g=ue(!1),h=ue(!1),y=te(),p=b(()=>e.id||`input-${m}`),S=b(()=>!e.disabled&&!e.readonly);l==null||l.onForceUpdate(()=>{y.value&&(y.value.checked=r.value)});function C(V){S.value&&(g.value=!0,fl(V.target,":focus-visible")!==!1&&(h.value=!0))}function A(){g.value=!1,h.value=!1}function x(V){V.stopPropagation()}function k(V){if(!S.value){y.value&&(y.value.checked=r.value);return}e.readonly&&l&&Oe(()=>l.forceUpdate()),r.value=V.target.checked}return Y(()=>{var E,I;const V=a.label?a.label({label:e.label,props:{for:p.value}}):e.label,[T,w]=fa(n),P=d("input",X({ref:y,checked:r.value,disabled:!!e.disabled,id:p.value,onBlur:A,onFocus:C,onInput:k,"aria-disabled":!!e.disabled,"aria-label":e.label,type:e.type,value:v.value,name:e.name,"aria-checked":e.type==="checkbox"?r.value:void 0},w),null);return d("div",X({class:["v-selection-control",{"v-selection-control--dirty":r.value,"v-selection-control--disabled":e.disabled,"v-selection-control--error":e.error,"v-selection-control--focused":g.value,"v-selection-control--focus-visible":h.value,"v-selection-control--inline":e.inline},o.value,e.class]},T,{style:e.style}),[d("div",{class:["v-selection-control__wrapper",s.value],style:u.value},[(E=a.default)==null?void 0:E.call(a,{backgroundColorClasses:c,backgroundColorStyles:f}),Ue(d("div",{class:["v-selection-control__input"]},[((I=a.input)==null?void 0:I.call(a,{model:r,textColorClasses:s,textColorStyles:u,backgroundColorClasses:c,backgroundColorStyles:f,inputNode:P,icon:i.value,props:{onFocus:C,onBlur:A,id:p.value}}))??d(ge,null,[i.value&&d(Fe,{key:"icon",icon:i.value},null),P])]),[[Gt("ripple"),e.ripple&&[!e.disabled&&!e.readonly,null,["center","circle"]]]])]),V&&d(Cl,{for:p.value,onClick:x},{default:()=>[V]})])}),{isFocused:g,input:y}}}),_g=L({indeterminate:Boolean,indeterminateIcon:{type:_e,default:"$checkboxIndeterminate"},...ir({falseIcon:"$checkboxOff",trueIcon:"$checkboxOn"})},"VCheckboxBtn"),Hn=j()({name:"VCheckboxBtn",props:_g(),emits:{"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,t){let{slots:n}=t;const a=Se(e,"indeterminate"),l=Se(e,"modelValue");function o(s){a.value&&(a.value=!1)}const i=b(()=>a.value?e.indeterminateIcon:e.falseIcon),r=b(()=>a.value?e.indeterminateIcon:e.trueIcon);return Y(()=>{const s=ct(Aa.filterProps(e),["modelValue"]);return d(Aa,X(s,{modelValue:l.value,"onUpdate:modelValue":[u=>l.value=u,o],class:["v-checkbox-btn",e.class],style:e.style,type:"checkbox",falseIcon:i.value,trueIcon:r.value,"aria-checked":a.value?"mixed":void 0}),n)}),{}}}),V_=L({...qn(),...ct(_g(),["inline"])},"VCheckbox"),P_=j()({name:"VCheckbox",inheritAttrs:!1,props:V_(),emits:{"update:modelValue":e=>!0,"update:focused":e=>!0},setup(e,t){let{attrs:n,slots:a}=t;const l=Se(e,"modelValue"),{isFocused:o,focus:i,blur:r}=Yn(e),s=wt(),u=b(()=>e.id||`checkbox-${s}`);return Y(()=>{const[c,f]=fa(n),v=_t.filterProps(e),m=Hn.filterProps(e);return d(_t,X({class:["v-checkbox",e.class]},c,v,{modelValue:l.value,"onUpdate:modelValue":g=>l.value=g,id:u.value,focused:o.value,style:e.style}),{...a,default:g=>{let{id:h,messagesId:y,isDisabled:p,isReadonly:S,isValid:C}=g;return d(Hn,X(m,{id:h.value,"aria-describedby":y.value,disabled:p.value,readonly:S.value},f,{error:C.value===!1,modelValue:l.value,"onUpdate:modelValue":A=>l.value=A,onFocus:i,onBlur:r}),a)}})}),{}}});function I_(e){let{selectedElement:t,containerElement:n,isRtl:a,isHorizontal:l}=e;const o=mo(l,n),i=Vg(l,a,n),r=mo(l,t),s=Pg(l,t),u=r*.4;return i>s?s-u:i+otypeof e=="boolean"||["always","desktop","mobile"].includes(e)},...ve(),...Ka({mobile:null}),...Pe(),...ja({selectedClass:"v-slide-group-item--active"})},"VSlideGroup"),ho=j()({name:"VSlideGroup",props:fc(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{isRtl:a}=ht(),{displayClasses:l,mobile:o}=sn(e),i=ha(e,e.symbol),r=ue(!1),s=ue(0),u=ue(0),c=ue(0),f=b(()=>e.direction==="horizontal"),{resizeRef:v,contentRect:m}=fn(),{resizeRef:g,contentRect:h}=fn(),y=c_(),p=b(()=>({container:v.el,duration:200,easing:"easeOutQuart"})),S=b(()=>i.selected.value.length?i.items.value.findIndex(M=>M.id===i.selected.value[0]):-1),C=b(()=>i.selected.value.length?i.items.value.findIndex(M=>M.id===i.selected.value[i.selected.value.length-1]):-1);if(He){let M=-1;de(()=>[i.selected.value,m.value,h.value,f.value],()=>{cancelAnimationFrame(M),M=requestAnimationFrame(()=>{if(m.value&&h.value){const U=f.value?"width":"height";u.value=m.value[U],c.value=h.value[U],r.value=u.value+1=0&&g.el){const U=g.el.children[C.value];x(U,e.centerActive)}})})}const A=ue(!1);function x(M,U){let ne=0;U?ne=T_({containerElement:v.el,isHorizontal:f.value,selectedElement:M}):ne=I_({containerElement:v.el,isHorizontal:f.value,isRtl:a.value,selectedElement:M}),k(ne)}function k(M){if(!He||!v.el)return;const U=mo(f.value,v.el),ne=Vg(f.value,a.value,v.el);if(!(Wf(f.value,v.el)<=U||Math.abs(M-ne)<16)){if(f.value&&a.value&&v.el){const{scrollWidth:we,offsetWidth:ye}=v.el;M=we-ye-M}f.value?y.horizontal(M,p.value):y(M,p.value)}}function V(M){const{scrollTop:U,scrollLeft:ne}=M.target;s.value=f.value?ne:U}function T(M){if(A.value=!0,!(!r.value||!g.el)){for(const U of M.composedPath())for(const ne of g.el.children)if(ne===U){x(ne);return}}}function w(M){A.value=!1}let P=!1;function E(M){var U;!P&&!A.value&&!(M.relatedTarget&&((U=g.el)!=null&&U.contains(M.relatedTarget)))&&F(),P=!1}function I(){P=!0}function R(M){if(!g.el)return;function U(ne){M.preventDefault(),F(ne)}f.value?M.key==="ArrowRight"?U(a.value?"prev":"next"):M.key==="ArrowLeft"&&U(a.value?"next":"prev"):M.key==="ArrowDown"?U("next"):M.key==="ArrowUp"&&U("prev"),M.key==="Home"?U("first"):M.key==="End"&&U("last")}function F(M){var ne,he;if(!g.el)return;let U;if(!M)U=ao(g.el)[0];else if(M==="next"){if(U=(ne=g.el.querySelector(":focus"))==null?void 0:ne.nextElementSibling,!U)return F("first")}else if(M==="prev"){if(U=(he=g.el.querySelector(":focus"))==null?void 0:he.previousElementSibling,!U)return F("last")}else M==="first"?U=g.el.firstElementChild:M==="last"&&(U=g.el.lastElementChild);U&&U.focus({preventScroll:!0})}function z(M){const U=f.value&&a.value?-1:1,ne=(M==="prev"?-U:U)*u.value;let he=s.value+ne;if(f.value&&a.value&&v.el){const{scrollWidth:we,offsetWidth:ye}=v.el;he+=we-ye}k(he)}const q=b(()=>({next:i.next,prev:i.prev,select:i.select,isSelected:i.isSelected})),ee=b(()=>{switch(e.showArrows){case"always":return!0;case"desktop":return!o.value;case!0:return r.value||Math.abs(s.value)>0;case"mobile":return o.value||r.value||Math.abs(s.value)>0;default:return!o.value&&(r.value||Math.abs(s.value)>0)}}),$=b(()=>Math.abs(s.value)>1),Z=b(()=>{if(!v.value)return!1;const M=Wf(f.value,v.el),U=E_(f.value,v.el);return M-U-Math.abs(s.value)>1});return Y(()=>d(e.tag,{class:["v-slide-group",{"v-slide-group--vertical":!f.value,"v-slide-group--has-affixes":ee.value,"v-slide-group--is-overflowing":r.value},l.value,e.class],style:e.style,tabindex:A.value||i.selected.value.length?-1:0,onFocus:E},{default:()=>{var M,U,ne;return[ee.value&&d("div",{key:"prev",class:["v-slide-group__prev",{"v-slide-group__prev--disabled":!$.value}],onMousedown:I,onClick:()=>$.value&&z("prev")},[((M=n.prev)==null?void 0:M.call(n,q.value))??d(fo,null,{default:()=>[d(Fe,{icon:a.value?e.nextIcon:e.prevIcon},null)]})]),d("div",{key:"container",ref:v,class:"v-slide-group__container",onScroll:V},[d("div",{ref:g,class:"v-slide-group__content",onFocusin:T,onFocusout:w,onKeydown:R},[(U=n.default)==null?void 0:U.call(n,q.value)])]),ee.value&&d("div",{key:"next",class:["v-slide-group__next",{"v-slide-group__next--disabled":!Z.value}],onMousedown:I,onClick:()=>Z.value&&z("next")},[((ne=n.next)==null?void 0:ne.call(n,q.value))??d(fo,null,{default:()=>[d(Fe,{icon:a.value?e.prevIcon:e.nextIcon},null)]})])]}})),{selected:i.selected,scrollTo:z,scrollOffset:s,focus:F}}}),Tg=Symbol.for("vuetify:v-chip-group"),A_=L({column:Boolean,filter:Boolean,valueComparator:{type:Function,default:In},...fc(),...ve(),...ja({selectedClass:"v-chip--selected"}),...Pe(),...De(),...on({variant:"tonal"})},"VChipGroup"),B_=j()({name:"VChipGroup",props:A_(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{themeClasses:a}=$e(e),{isSelected:l,select:o,next:i,prev:r,selected:s}=ha(e,Tg);return et({VChip:{color:N(e,"color"),disabled:N(e,"disabled"),filter:N(e,"filter"),variant:N(e,"variant")}}),Y(()=>{const u=ho.filterProps(e);return d(ho,X(u,{class:["v-chip-group",{"v-chip-group--column":e.column},a.value,e.class],style:e.style}),{default:()=>{var c;return[(c=n.default)==null?void 0:c.call(n,{isSelected:l,select:o,next:i,prev:r,selected:s.value})]}})}),{}}}),R_=L({activeClass:String,appendAvatar:String,appendIcon:_e,closable:Boolean,closeIcon:{type:_e,default:"$delete"},closeLabel:{type:String,default:"$vuetify.close"},draggable:Boolean,filter:Boolean,filterIcon:{type:String,default:"$complete"},label:Boolean,link:{type:Boolean,default:void 0},pill:Boolean,prependAvatar:String,prependIcon:_e,ripple:{type:[Boolean,Object],default:!0},text:String,modelValue:{type:Boolean,default:!0},onClick:St(),onClickOnce:St(),...Yt(),...ve(),...bt(),...vt(),...Ua(),...Xe(),...Io(),...An(),...Pe({tag:"span"}),...De(),...on({variant:"tonal"})},"VChip"),Vl=j()({name:"VChip",directives:{Ripple:Kn},props:R_(),emits:{"click:close":e=>!0,"update:modelValue":e=>!0,"group:selected":e=>!0,click:e=>!0},setup(e,t){let{attrs:n,emit:a,slots:l}=t;const{t:o}=lt(),{borderClasses:i}=ln(e),{colorClasses:r,colorStyles:s,variantClasses:u}=za(e),{densityClasses:c}=Dt(e),{elevationClasses:f}=kt(e),{roundedClasses:v}=tt(e),{sizeClasses:m}=wl(e),{themeClasses:g}=$e(e),h=Se(e,"modelValue"),y=Wa(e,Tg,!1),p=Po(e,n),S=b(()=>e.link!==!1&&p.isLink.value),C=b(()=>!e.disabled&&e.link!==!1&&(!!y||e.link||p.isClickable.value)),A=b(()=>({"aria-label":o(e.closeLabel),onClick(V){V.preventDefault(),V.stopPropagation(),h.value=!1,a("click:close",V)}}));function x(V){var T;a("click",V),C.value&&((T=p.navigate)==null||T.call(p,V),y==null||y.toggle())}function k(V){(V.key==="Enter"||V.key===" ")&&(V.preventDefault(),x(V))}return()=>{const V=p.isLink.value?"a":e.tag,T=!!(e.appendIcon||e.appendAvatar),w=!!(T||l.append),P=!!(l.close||e.closable),E=!!(l.filter||e.filter)&&y,I=!!(e.prependIcon||e.prependAvatar),R=!!(I||l.prepend),F=!y||y.isSelected.value;return h.value&&Ue(d(V,{class:["v-chip",{"v-chip--disabled":e.disabled,"v-chip--label":e.label,"v-chip--link":C.value,"v-chip--filter":E,"v-chip--pill":e.pill},g.value,i.value,F?r.value:void 0,c.value,f.value,v.value,m.value,u.value,y==null?void 0:y.selectedClass.value,e.class],style:[F?s.value:void 0,e.style],disabled:e.disabled||void 0,draggable:e.draggable,href:p.href.value,tabindex:C.value?0:void 0,onClick:x,onKeydown:C.value&&!S.value&&k},{default:()=>{var z;return[ma(C.value,"v-chip"),E&&d(rc,{key:"filter"},{default:()=>[Ue(d("div",{class:"v-chip__filter"},[l.filter?d(Be,{key:"filter-defaults",disabled:!e.filterIcon,defaults:{VIcon:{icon:e.filterIcon}}},l.filter):d(Fe,{key:"filter-icon",icon:e.filterIcon},null)]),[[hn,y.isSelected.value]])]}),R&&d("div",{key:"prepend",class:"v-chip__prepend"},[l.prepend?d(Be,{key:"prepend-defaults",disabled:!I,defaults:{VAvatar:{image:e.prependAvatar,start:!0},VIcon:{icon:e.prependIcon,start:!0}}},l.prepend):d(ge,null,[e.prependIcon&&d(Fe,{key:"prepend-icon",icon:e.prependIcon,start:!0},null),e.prependAvatar&&d(an,{key:"prepend-avatar",image:e.prependAvatar,start:!0},null)])]),d("div",{class:"v-chip__content","data-no-activator":""},[((z=l.default)==null?void 0:z.call(l,{isSelected:y==null?void 0:y.isSelected.value,selectedClass:y==null?void 0:y.selectedClass.value,select:y==null?void 0:y.select,toggle:y==null?void 0:y.toggle,value:y==null?void 0:y.value.value,disabled:e.disabled}))??e.text]),w&&d("div",{key:"append",class:"v-chip__append"},[l.append?d(Be,{key:"append-defaults",disabled:!T,defaults:{VAvatar:{end:!0,image:e.appendAvatar},VIcon:{end:!0,icon:e.appendIcon}}},l.append):d(ge,null,[e.appendIcon&&d(Fe,{key:"append-icon",end:!0,icon:e.appendIcon},null),e.appendAvatar&&d(an,{key:"append-avatar",end:!0,image:e.appendAvatar},null)])]),P&&d("button",X({key:"close",class:"v-chip__close",type:"button"},A.value),[l.close?d(Be,{key:"close-defaults",defaults:{VIcon:{icon:e.closeIcon,size:"x-small"}}},l.close):d(Fe,{key:"close-icon",icon:e.closeIcon,size:"x-small"},null)])]}}),[[Gt("ripple"),C.value&&e.ripple,null]])}}}),Rs=Symbol.for("vuetify:list");function Eg(){const e=Te(Rs,{hasPrepend:ue(!1),updateHasPrepend:()=>null}),t={hasPrepend:ue(!1),updateHasPrepend:n=>{n&&(t.hasPrepend.value=n)}};return We(Rs,t),e}function Ag(){return Te(Rs,null)}const vc=e=>{const t={activate:n=>{let{id:a,value:l,activated:o}=n;return a=Ve(a),e&&!l&&o.size===1&&o.has(a)||(l?o.add(a):o.delete(a)),o},in:(n,a,l)=>{let o=new Set;if(n!=null)for(const i of Qe(n))o=t.activate({id:i,value:!0,activated:new Set(o),children:a,parents:l});return o},out:n=>Array.from(n)};return t},Bg=e=>{const t=vc(e);return{activate:a=>{let{activated:l,id:o,...i}=a;o=Ve(o);const r=l.has(o)?new Set([o]):new Set;return t.activate({...i,id:o,activated:r})},in:(a,l,o)=>{let i=new Set;if(a!=null){const r=Qe(a);r.length&&(i=t.in(r.slice(0,1),l,o))}return i},out:(a,l,o)=>t.out(a,l,o)}},O_=e=>{const t=vc(e);return{activate:a=>{let{id:l,activated:o,children:i,...r}=a;return l=Ve(l),i.has(l)?o:t.activate({id:l,activated:o,children:i,...r})},in:t.in,out:t.out}},D_=e=>{const t=Bg(e);return{activate:a=>{let{id:l,activated:o,children:i,...r}=a;return l=Ve(l),i.has(l)?o:t.activate({id:l,activated:o,children:i,...r})},in:t.in,out:t.out}},L_={open:e=>{let{id:t,value:n,opened:a,parents:l}=e;if(n){const o=new Set;o.add(t);let i=l.get(t);for(;i!=null;)o.add(i),i=l.get(i);return o}else return a.delete(t),a},select:()=>null},Rg={open:e=>{let{id:t,value:n,opened:a,parents:l}=e;if(n){let o=l.get(t);for(a.add(t);o!=null&&o!==t;)a.add(o),o=l.get(o);return a}else a.delete(t);return a},select:()=>null},M_={open:Rg.open,select:e=>{let{id:t,value:n,opened:a,parents:l}=e;if(!n)return a;const o=[];let i=l.get(t);for(;i!=null;)o.push(i),i=l.get(i);return new Set(o)}},mc=e=>{const t={select:n=>{let{id:a,value:l,selected:o}=n;if(a=Ve(a),e&&!l){const i=Array.from(o.entries()).reduce((r,s)=>{let[u,c]=s;return c==="on"&&r.push(u),r},[]);if(i.length===1&&i[0]===a)return o}return o.set(a,l?"on":"off"),o},in:(n,a,l)=>{let o=new Map;for(const i of n||[])o=t.select({id:i,value:!0,selected:new Map(o),children:a,parents:l});return o},out:n=>{const a=[];for(const[l,o]of n.entries())o==="on"&&a.push(l);return a}};return t},Og=e=>{const t=mc(e);return{select:a=>{let{selected:l,id:o,...i}=a;o=Ve(o);const r=l.has(o)?new Map([[o,l.get(o)]]):new Map;return t.select({...i,id:o,selected:r})},in:(a,l,o)=>{let i=new Map;return a!=null&&a.length&&(i=t.in(a.slice(0,1),l,o)),i},out:(a,l,o)=>t.out(a,l,o)}},F_=e=>{const t=mc(e);return{select:a=>{let{id:l,selected:o,children:i,...r}=a;return l=Ve(l),i.has(l)?o:t.select({id:l,selected:o,children:i,...r})},in:t.in,out:t.out}},$_=e=>{const t=Og(e);return{select:a=>{let{id:l,selected:o,children:i,...r}=a;return l=Ve(l),i.has(l)?o:t.select({id:l,selected:o,children:i,...r})},in:t.in,out:t.out}},N_=e=>{const t={select:n=>{let{id:a,value:l,selected:o,children:i,parents:r}=n;a=Ve(a);const s=new Map(o),u=[a];for(;u.length;){const f=u.shift();o.set(f,l?"on":"off"),i.has(f)&&u.push(...i.get(f))}let c=r.get(a);for(;c;){const f=i.get(c),v=f.every(g=>o.get(g)==="on"),m=f.every(g=>!o.has(g)||o.get(g)==="off");o.set(c,v?"on":m?"off":"indeterminate"),c=r.get(c)}return e&&!l&&Array.from(o.entries()).reduce((v,m)=>{let[g,h]=m;return h==="on"&&v.push(g),v},[]).length===0?s:o},in:(n,a,l)=>{let o=new Map;for(const i of n||[])o=t.select({id:i,value:!0,selected:new Map(o),children:a,parents:l});return o},out:(n,a)=>{const l=[];for(const[o,i]of n.entries())i==="on"&&!a.has(o)&&l.push(o);return l}};return t},go=Symbol.for("vuetify:nested"),Dg={id:ue(),root:{register:()=>null,unregister:()=>null,parents:te(new Map),children:te(new Map),open:()=>null,openOnSelect:()=>null,activate:()=>null,select:()=>null,activatable:te(!1),selectable:te(!1),opened:te(new Set),activated:te(new Set),selected:te(new Map),selectedValues:te([])}},H_=L({activatable:Boolean,selectable:Boolean,activeStrategy:[String,Function,Object],selectStrategy:[String,Function,Object],openStrategy:[String,Object],opened:null,activated:null,selected:null,mandatory:Boolean},"nested"),z_=e=>{let t=!1;const n=te(new Map),a=te(new Map),l=Se(e,"opened",e.opened,m=>new Set(m),m=>[...m.values()]),o=b(()=>{if(typeof e.activeStrategy=="object")return e.activeStrategy;if(typeof e.activeStrategy=="function")return e.activeStrategy(e.mandatory);switch(e.activeStrategy){case"leaf":return O_(e.mandatory);case"single-leaf":return D_(e.mandatory);case"independent":return vc(e.mandatory);case"single-independent":default:return Bg(e.mandatory)}}),i=b(()=>{if(typeof e.selectStrategy=="object")return e.selectStrategy;if(typeof e.selectStrategy=="function")return e.selectStrategy(e.mandatory);switch(e.selectStrategy){case"single-leaf":return $_(e.mandatory);case"leaf":return F_(e.mandatory);case"independent":return mc(e.mandatory);case"single-independent":return Og(e.mandatory);case"classic":default:return N_(e.mandatory)}}),r=b(()=>{if(typeof e.openStrategy=="object")return e.openStrategy;switch(e.openStrategy){case"list":return M_;case"single":return L_;case"multiple":default:return Rg}}),s=Se(e,"activated",e.activated,m=>o.value.in(m,n.value,a.value),m=>o.value.out(m,n.value,a.value)),u=Se(e,"selected",e.selected,m=>i.value.in(m,n.value,a.value),m=>i.value.out(m,n.value,a.value));Pt(()=>{t=!0});function c(m){const g=[];let h=m;for(;h!=null;)g.unshift(h),h=a.value.get(h);return g}const f=at("nested"),v={id:ue(),root:{opened:l,activatable:N(e,"activatable"),selectable:N(e,"selectable"),activated:s,selected:u,selectedValues:b(()=>{const m=[];for(const[g,h]of u.value.entries())h==="on"&&m.push(g);return m}),register:(m,g,h)=>{g&&m!==g&&a.value.set(m,g),h&&n.value.set(m,[]),g!=null&&n.value.set(g,[...n.value.get(g)||[],m])},unregister:m=>{if(t)return;n.value.delete(m);const g=a.value.get(m);if(g){const h=n.value.get(g)??[];n.value.set(g,h.filter(y=>y!==m))}a.value.delete(m),l.value.delete(m)},open:(m,g,h)=>{f.emit("click:open",{id:m,value:g,path:c(m),event:h});const y=r.value.open({id:m,value:g,opened:new Set(l.value),children:n.value,parents:a.value,event:h});y&&(l.value=y)},openOnSelect:(m,g,h)=>{const y=r.value.select({id:m,value:g,selected:new Map(u.value),opened:new Set(l.value),children:n.value,parents:a.value,event:h});y&&(l.value=y)},select:(m,g,h)=>{f.emit("click:select",{id:m,value:g,path:c(m),event:h});const y=i.value.select({id:m,value:g,selected:new Map(u.value),children:n.value,parents:a.value,event:h});y&&(u.value=y),v.root.openOnSelect(m,g,h)},activate:(m,g,h)=>{if(!e.activatable)return v.root.select(m,!0,h);f.emit("click:activate",{id:m,value:g,path:c(m),event:h});const y=o.value.activate({id:m,value:g,activated:new Set(s.value),children:n.value,parents:a.value,event:h});y&&(s.value=y)},children:n,parents:a}};return We(go,v),v.root},Lg=(e,t)=>{const n=Te(go,Dg),a=Symbol(wt()),l=b(()=>e.value!==void 0?e.value:a),o={...n,id:l,open:(i,r)=>n.root.open(l.value,i,r),openOnSelect:(i,r)=>n.root.openOnSelect(l.value,i,r),isOpen:b(()=>n.root.opened.value.has(l.value)),parent:b(()=>n.root.parents.value.get(l.value)),activate:(i,r)=>n.root.activate(l.value,i,r),isActivated:b(()=>n.root.activated.value.has(Ve(l.value))),select:(i,r)=>n.root.select(l.value,i,r),isSelected:b(()=>n.root.selected.value.get(Ve(l.value))==="on"),isIndeterminate:b(()=>n.root.selected.value.get(l.value)==="indeterminate"),isLeaf:b(()=>!n.root.children.value.get(l.value)),isGroupActivator:n.isGroupActivator};return!n.isGroupActivator&&n.root.register(l.value,n.id.value,t),Pt(()=>{!n.isGroupActivator&&n.root.unregister(l.value)}),t&&We(go,o),o},j_=()=>{const e=Te(go,Dg);We(go,{...e,isGroupActivator:!0})},U_=Kt({name:"VListGroupActivator",setup(e,t){let{slots:n}=t;return j_(),()=>{var a;return(a=n.default)==null?void 0:a.call(n)}}}),W_=L({activeColor:String,baseColor:String,color:String,collapseIcon:{type:_e,default:"$collapse"},expandIcon:{type:_e,default:"$expand"},prependIcon:_e,appendIcon:_e,fluid:Boolean,subgroup:Boolean,title:String,value:null,...ve(),...Pe()},"VListGroup"),Os=j()({name:"VListGroup",props:W_(),setup(e,t){let{slots:n}=t;const{isOpen:a,open:l,id:o}=Lg(N(e,"value"),!0),i=b(()=>`v-list-group--id-${String(o.value)}`),r=Ag(),{isBooted:s}=Ha();function u(m){m.stopPropagation(),l(!a.value,m)}const c=b(()=>({onClick:u,class:"v-list-group__header",id:i.value})),f=b(()=>a.value?e.collapseIcon:e.expandIcon),v=b(()=>({VListItem:{active:a.value,activeColor:e.activeColor,baseColor:e.baseColor,color:e.color,prependIcon:e.prependIcon||e.subgroup&&f.value,appendIcon:e.appendIcon||!e.subgroup&&f.value,title:e.title,value:e.value}}));return Y(()=>d(e.tag,{class:["v-list-group",{"v-list-group--prepend":r==null?void 0:r.hasPrepend.value,"v-list-group--fluid":e.fluid,"v-list-group--subgroup":e.subgroup,"v-list-group--open":a.value},e.class],style:e.style},{default:()=>[n.activator&&d(Be,{defaults:v.value},{default:()=>[d(U_,null,{default:()=>[n.activator({props:c.value,isOpen:a.value})]})]}),d(Rt,{transition:{component:ar},disabled:!s.value},{default:()=>{var m;return[Ue(d("div",{class:"v-list-group__items",role:"group","aria-labelledby":i.value},[(m=n.default)==null?void 0:m.call(n)]),[[hn,a.value]])]}})]})),{isOpen:a}}}),G_=L({opacity:[Number,String],...ve(),...Pe()},"VListItemSubtitle"),Mg=j()({name:"VListItemSubtitle",props:G_(),setup(e,t){let{slots:n}=t;return Y(()=>d(e.tag,{class:["v-list-item-subtitle",e.class],style:[{"--v-list-item-subtitle-opacity":e.opacity},e.style]},n)),{}}}),Fg=En("v-list-item-title"),K_=L({active:{type:Boolean,default:void 0},activeClass:String,activeColor:String,appendAvatar:String,appendIcon:_e,baseColor:String,disabled:Boolean,lines:[Boolean,String],link:{type:Boolean,default:void 0},nav:Boolean,prependAvatar:String,prependIcon:_e,ripple:{type:[Boolean,Object],default:!0},slim:Boolean,subtitle:[String,Number],title:[String,Number],value:null,onClick:St(),onClickOnce:St(),...Yt(),...ve(),...bt(),...gt(),...vt(),...Xe(),...Io(),...Pe(),...De(),...on({variant:"text"})},"VListItem"),zn=j()({name:"VListItem",directives:{Ripple:Kn},props:K_(),emits:{click:e=>!0},setup(e,t){let{attrs:n,slots:a,emit:l}=t;const o=Po(e,n),i=b(()=>e.value===void 0?o.href.value:e.value),{activate:r,isActivated:s,select:u,isSelected:c,isIndeterminate:f,isGroupActivator:v,root:m,parent:g,openOnSelect:h}=Lg(i,!1),y=Ag(),p=b(()=>{var M;return e.active!==!1&&(e.active||((M=o.isActive)==null?void 0:M.value)||(m.activatable.value?s.value:c.value))}),S=b(()=>e.link!==!1&&o.isLink.value),C=b(()=>!e.disabled&&e.link!==!1&&(e.link||o.isClickable.value||!!y&&(m.selectable.value||m.activatable.value||e.value!=null))),A=b(()=>e.rounded||e.nav),x=b(()=>e.color??e.activeColor),k=b(()=>({color:p.value?x.value??e.baseColor:e.baseColor,variant:e.variant}));de(()=>{var M;return(M=o.isActive)==null?void 0:M.value},M=>{M&&g.value!=null&&m.open(g.value,!0),M&&h(M)},{immediate:!0});const{themeClasses:V}=$e(e),{borderClasses:T}=ln(e),{colorClasses:w,colorStyles:P,variantClasses:E}=za(k),{densityClasses:I}=Dt(e),{dimensionStyles:R}=yt(e),{elevationClasses:F}=kt(e),{roundedClasses:z}=tt(A),q=b(()=>e.lines?`v-list-item--${e.lines}-line`:void 0),ee=b(()=>({isActive:p.value,select:u,isSelected:c.value,isIndeterminate:f.value}));function $(M){var U;l("click",M),C.value&&((U=o.navigate)==null||U.call(o,M),!v&&(m.activatable.value?r(!s.value,M):(m.selectable.value||e.value!=null)&&u(!c.value,M)))}function Z(M){(M.key==="Enter"||M.key===" ")&&(M.preventDefault(),$(M))}return Y(()=>{const M=S.value?"a":e.tag,U=a.title||e.title!=null,ne=a.subtitle||e.subtitle!=null,he=!!(e.appendAvatar||e.appendIcon),we=!!(he||a.append),ye=!!(e.prependAvatar||e.prependIcon),K=!!(ye||a.prepend);return y==null||y.updateHasPrepend(K),e.activeColor&&G0("active-color",["color","base-color"]),Ue(d(M,{class:["v-list-item",{"v-list-item--active":p.value,"v-list-item--disabled":e.disabled,"v-list-item--link":C.value,"v-list-item--nav":e.nav,"v-list-item--prepend":!K&&(y==null?void 0:y.hasPrepend.value),"v-list-item--slim":e.slim,[`${e.activeClass}`]:e.activeClass&&p.value},V.value,T.value,w.value,I.value,F.value,q.value,z.value,E.value,e.class],style:[P.value,R.value,e.style],href:o.href.value,tabindex:C.value?y?-2:0:void 0,onClick:$,onKeydown:C.value&&!S.value&&Z},{default:()=>{var D;return[ma(C.value||p.value,"v-list-item"),K&&d("div",{key:"prepend",class:"v-list-item__prepend"},[a.prepend?d(Be,{key:"prepend-defaults",disabled:!ye,defaults:{VAvatar:{density:e.density,image:e.prependAvatar},VIcon:{density:e.density,icon:e.prependIcon},VListItemAction:{start:!0}}},{default:()=>{var ie;return[(ie=a.prepend)==null?void 0:ie.call(a,ee.value)]}}):d(ge,null,[e.prependAvatar&&d(an,{key:"prepend-avatar",density:e.density,image:e.prependAvatar},null),e.prependIcon&&d(Fe,{key:"prepend-icon",density:e.density,icon:e.prependIcon},null)]),d("div",{class:"v-list-item__spacer"},null)]),d("div",{class:"v-list-item__content","data-no-activator":""},[U&&d(Fg,{key:"title"},{default:()=>{var ie;return[((ie=a.title)==null?void 0:ie.call(a,{title:e.title}))??e.title]}}),ne&&d(Mg,{key:"subtitle"},{default:()=>{var ie;return[((ie=a.subtitle)==null?void 0:ie.call(a,{subtitle:e.subtitle}))??e.subtitle]}}),(D=a.default)==null?void 0:D.call(a,ee.value)]),we&&d("div",{key:"append",class:"v-list-item__append"},[a.append?d(Be,{key:"append-defaults",disabled:!he,defaults:{VAvatar:{density:e.density,image:e.appendAvatar},VIcon:{density:e.density,icon:e.appendIcon},VListItemAction:{end:!0}}},{default:()=>{var ie;return[(ie=a.append)==null?void 0:ie.call(a,ee.value)]}}):d(ge,null,[e.appendIcon&&d(Fe,{key:"append-icon",density:e.density,icon:e.appendIcon},null),e.appendAvatar&&d(an,{key:"append-avatar",density:e.density,image:e.appendAvatar},null)]),d("div",{class:"v-list-item__spacer"},null)])]}}),[[Gt("ripple"),C.value&&e.ripple]])}),{activate:r,isActivated:s,isGroupActivator:v,isSelected:c,list:y,select:u}}}),Y_=L({color:String,inset:Boolean,sticky:Boolean,title:String,...ve(),...Pe()},"VListSubheader"),$g=j()({name:"VListSubheader",props:Y_(),setup(e,t){let{slots:n}=t;const{textColorClasses:a,textColorStyles:l}=Ct(N(e,"color"));return Y(()=>{const o=!!(n.default||e.title);return d(e.tag,{class:["v-list-subheader",{"v-list-subheader--inset":e.inset,"v-list-subheader--sticky":e.sticky},a.value,e.class],style:[{textColorStyles:l},e.style]},{default:()=>{var i;return[o&&d("div",{class:"v-list-subheader__text"},[((i=n.default)==null?void 0:i.call(n))??e.title])]}})}),{}}}),q_=L({color:String,inset:Boolean,length:[Number,String],opacity:[Number,String],thickness:[Number,String],vertical:Boolean,...ve(),...De()},"VDivider"),Ro=j()({name:"VDivider",props:q_(),setup(e,t){let{attrs:n,slots:a}=t;const{themeClasses:l}=$e(e),{textColorClasses:o,textColorStyles:i}=Ct(N(e,"color")),r=b(()=>{const s={};return e.length&&(s[e.vertical?"height":"width"]=fe(e.length)),e.thickness&&(s[e.vertical?"borderRightWidth":"borderTopWidth"]=fe(e.thickness)),s});return Y(()=>{const s=d("hr",{class:[{"v-divider":!0,"v-divider--inset":e.inset,"v-divider--vertical":e.vertical},l.value,o.value,e.class],style:[r.value,i.value,{"--v-border-opacity":e.opacity},e.style],"aria-orientation":!n.role||n.role==="separator"?e.vertical?"vertical":"horizontal":void 0,role:`${n.role||"separator"}`},null);return a.default?d("div",{class:["v-divider__wrapper",{"v-divider__wrapper--vertical":e.vertical,"v-divider__wrapper--inset":e.inset}]},[s,d("div",{class:"v-divider__content"},[a.default()]),s]):s}),{}}}),X_=L({items:Array,returnObject:Boolean},"VListChildren"),Ng=j()({name:"VListChildren",props:X_(),setup(e,t){let{slots:n}=t;return Eg(),()=>{var a,l;return((a=n.default)==null?void 0:a.call(n))??((l=e.items)==null?void 0:l.map(o=>{var v,m;let{children:i,props:r,type:s,raw:u}=o;if(s==="divider")return((v=n.divider)==null?void 0:v.call(n,{props:r}))??d(Ro,r,null);if(s==="subheader")return((m=n.subheader)==null?void 0:m.call(n,{props:r}))??d($g,r,null);const c={subtitle:n.subtitle?g=>{var h;return(h=n.subtitle)==null?void 0:h.call(n,{...g,item:u})}:void 0,prepend:n.prepend?g=>{var h;return(h=n.prepend)==null?void 0:h.call(n,{...g,item:u})}:void 0,append:n.append?g=>{var h;return(h=n.append)==null?void 0:h.call(n,{...g,item:u})}:void 0,title:n.title?g=>{var h;return(h=n.title)==null?void 0:h.call(n,{...g,item:u})}:void 0},f=Os.filterProps(r);return i?d(Os,X({value:r==null?void 0:r.value},f),{activator:g=>{let{props:h}=g;const y={...r,...h,value:e.returnObject?u:r.value};return n.header?n.header({props:y}):d(zn,y,c)},default:()=>d(Ng,{items:i,returnObject:e.returnObject},n)}):n.item?n.item({props:r}):d(zn,X(r,{value:e.returnObject?u:r.value}),c)}))}}}),Hg=L({items:{type:Array,default:()=>[]},itemTitle:{type:[String,Array,Function],default:"title"},itemValue:{type:[String,Array,Function],default:"value"},itemChildren:{type:[Boolean,String,Array,Function],default:"children"},itemProps:{type:[Boolean,String,Array,Function],default:"props"},returnObject:Boolean,valueComparator:{type:Function,default:In}},"list-items");function ia(e,t){const n=dt(t,e.itemTitle,t),a=dt(t,e.itemValue,n),l=dt(t,e.itemChildren),o=e.itemProps===!0?typeof t=="object"&&t!=null&&!Array.isArray(t)?"children"in t?ct(t,["children"]):t:void 0:dt(t,e.itemProps),i={title:n,value:a,...o};return{title:String(i.title??""),value:i.value,props:i,children:Array.isArray(l)?zg(e,l):void 0,raw:t}}function zg(e,t){const n=[];for(const a of t)n.push(ia(e,a));return n}function hc(e){const t=b(()=>zg(e,e.items)),n=b(()=>t.value.some(o=>o.value===null));function a(o){return n.value||(o=o.filter(i=>i!==null)),o.map(i=>e.returnObject&&typeof i=="string"?ia(e,i):t.value.find(r=>e.valueComparator(i,r.value))||ia(e,i))}function l(o){return e.returnObject?o.map(i=>{let{raw:r}=i;return r}):o.map(i=>{let{value:r}=i;return r})}return{items:t,transformIn:a,transformOut:l}}function J_(e){return typeof e=="string"||typeof e=="number"||typeof e=="boolean"}function Z_(e,t){const n=dt(t,e.itemType,"item"),a=J_(t)?t:dt(t,e.itemTitle),l=dt(t,e.itemValue,void 0),o=dt(t,e.itemChildren),i=e.itemProps===!0?ct(t,["children"]):dt(t,e.itemProps),r={title:a,value:l,...i};return{type:n,title:r.title,value:r.value,props:r,children:n==="item"&&o?jg(e,o):void 0,raw:t}}function jg(e,t){const n=[];for(const a of t)n.push(Z_(e,a));return n}function Q_(e){return{items:b(()=>jg(e,e.items))}}const eV=L({baseColor:String,activeColor:String,activeClass:String,bgColor:String,disabled:Boolean,expandIcon:String,collapseIcon:String,lines:{type:[Boolean,String],default:"one"},slim:Boolean,nav:Boolean,"onClick:open":St(),"onClick:select":St(),"onUpdate:opened":St(),...H_({selectStrategy:"single-leaf",openStrategy:"list"}),...Yt(),...ve(),...bt(),...gt(),...vt(),itemType:{type:String,default:"type"},...Hg(),...Xe(),...Pe(),...De(),...on({variant:"text"})},"VList"),rr=j()({name:"VList",props:eV(),emits:{"update:selected":e=>!0,"update:activated":e=>!0,"update:opened":e=>!0,"click:open":e=>!0,"click:activate":e=>!0,"click:select":e=>!0},setup(e,t){let{slots:n}=t;const{items:a}=Q_(e),{themeClasses:l}=$e(e),{backgroundColorClasses:o,backgroundColorStyles:i}=Ge(N(e,"bgColor")),{borderClasses:r}=ln(e),{densityClasses:s}=Dt(e),{dimensionStyles:u}=yt(e),{elevationClasses:c}=kt(e),{roundedClasses:f}=tt(e),{children:v,open:m,parents:g,select:h}=z_(e),y=b(()=>e.lines?`v-list--${e.lines}-line`:void 0),p=N(e,"activeColor"),S=N(e,"baseColor"),C=N(e,"color");Eg(),et({VListGroup:{activeColor:p,baseColor:S,color:C,expandIcon:N(e,"expandIcon"),collapseIcon:N(e,"collapseIcon")},VListItem:{activeClass:N(e,"activeClass"),activeColor:p,baseColor:S,color:C,density:N(e,"density"),disabled:N(e,"disabled"),lines:N(e,"lines"),nav:N(e,"nav"),slim:N(e,"slim"),variant:N(e,"variant")}});const A=ue(!1),x=te();function k(I){A.value=!0}function V(I){A.value=!1}function T(I){var R;!A.value&&!(I.relatedTarget&&((R=x.value)!=null&&R.contains(I.relatedTarget)))&&E()}function w(I){const R=I.target;if(!(!x.value||["INPUT","TEXTAREA"].includes(R.tagName))){if(I.key==="ArrowDown")E("next");else if(I.key==="ArrowUp")E("prev");else if(I.key==="Home")E("first");else if(I.key==="End")E("last");else return;I.preventDefault()}}function P(I){A.value=!0}function E(I){if(x.value)return dl(x.value,I)}return Y(()=>d(e.tag,{ref:x,class:["v-list",{"v-list--disabled":e.disabled,"v-list--nav":e.nav,"v-list--slim":e.slim},l.value,o.value,r.value,s.value,c.value,y.value,f.value,e.class],style:[i.value,u.value,e.style],tabindex:e.disabled||A.value?-1:0,role:"listbox","aria-activedescendant":void 0,onFocusin:k,onFocusout:V,onFocus:T,onKeydown:w,onMousedown:P},{default:()=>[d(Ng,{items:a.value,returnObject:e.returnObject},n)]})),{open:m,select:h,focus:E,children:v,parents:g}}}),tV=En("v-list-img"),nV=L({start:Boolean,end:Boolean,...ve(),...Pe()},"VListItemAction"),aV=j()({name:"VListItemAction",props:nV(),setup(e,t){let{slots:n}=t;return Y(()=>d(e.tag,{class:["v-list-item-action",{"v-list-item-action--start":e.start,"v-list-item-action--end":e.end},e.class],style:e.style},n)),{}}}),lV=L({start:Boolean,end:Boolean,...ve(),...Pe()},"VListItemMedia"),oV=j()({name:"VListItemMedia",props:lV(),setup(e,t){let{slots:n}=t;return Y(()=>d(e.tag,{class:["v-list-item-media",{"v-list-item-media--start":e.start,"v-list-item-media--end":e.end},e.class],style:e.style},n)),{}}});function Kr(e,t){return{x:e.x+t.x,y:e.y+t.y}}function iV(e,t){return{x:e.x-t.x,y:e.y-t.y}}function Gf(e,t){if(e.side==="top"||e.side==="bottom"){const{side:n,align:a}=e,l=a==="left"?0:a==="center"?t.width/2:a==="right"?t.width:a,o=n==="top"?0:n==="bottom"?t.height:n;return Kr({x:l,y:o},t)}else if(e.side==="left"||e.side==="right"){const{side:n,align:a}=e,l=n==="left"?0:n==="right"?t.width:n,o=a==="top"?0:a==="center"?t.height/2:a==="bottom"?t.height:a;return Kr({x:l,y:o},t)}return Kr({x:t.width/2,y:t.height/2},t)}const Ug={static:uV,connected:dV},rV=L({locationStrategy:{type:[String,Function],default:"static",validator:e=>typeof e=="function"||e in Ug},location:{type:String,default:"bottom"},origin:{type:String,default:"auto"},offset:[Number,String,Array]},"VOverlay-location-strategies");function sV(e,t){const n=te({}),a=te();He&&Nt(()=>!!(t.isActive.value&&e.locationStrategy),o=>{var i,r;de(()=>e.locationStrategy,o),Ot(()=>{window.removeEventListener("resize",l),a.value=void 0}),window.addEventListener("resize",l,{passive:!0}),typeof e.locationStrategy=="function"?a.value=(i=e.locationStrategy(t,e,n))==null?void 0:i.updateLocation:a.value=(r=Ug[e.locationStrategy](t,e,n))==null?void 0:r.updateLocation});function l(o){var i;(i=a.value)==null||i.call(a,o)}return{contentStyles:n,updateLocation:a}}function uV(){}function cV(e,t){t?e.style.removeProperty("left"):e.style.removeProperty("right");const n=Hu(e);return t?n.x+=parseFloat(e.style.right||0):n.x-=parseFloat(e.style.left||0),n.y-=parseFloat(e.style.top||0),n}function dV(e,t,n){(Array.isArray(e.target.value)||vw(e.target.value))&&Object.assign(n.value,{position:"fixed",top:0,[e.isRtl.value?"right":"left"]:0});const{preferredAnchor:l,preferredOrigin:o}=$u(()=>{const g=ys(t.location,e.isRtl.value),h=t.origin==="overlap"?g:t.origin==="auto"?Mr(g):ys(t.origin,e.isRtl.value);return g.side===h.side&&g.align===Fr(h).align?{preferredAnchor:Yd(g),preferredOrigin:Yd(h)}:{preferredAnchor:g,preferredOrigin:h}}),[i,r,s,u]=["minWidth","minHeight","maxWidth","maxHeight"].map(g=>b(()=>{const h=parseFloat(t[g]);return isNaN(h)?1/0:h})),c=b(()=>{if(Array.isArray(t.offset))return t.offset;if(typeof t.offset=="string"){const g=t.offset.split(" ").map(parseFloat);return g.length<2&&g.push(0),g}return typeof t.offset=="number"?[t.offset,0]:[0,0]});let f=!1;const v=new ResizeObserver(()=>{f&&m()});de([e.target,e.contentEl],(g,h)=>{let[y,p]=g,[S,C]=h;S&&!Array.isArray(S)&&v.unobserve(S),y&&!Array.isArray(y)&&v.observe(y),C&&v.unobserve(C),p&&v.observe(p)},{immediate:!0}),Ot(()=>{v.disconnect()});function m(){if(f=!1,requestAnimationFrame(()=>f=!0),!e.target.value||!e.contentEl.value)return;const g=Ym(e.target.value),h=cV(e.contentEl.value,e.isRtl.value),y=xi(e.contentEl.value),p=12;y.length||(y.push(document.documentElement),e.contentEl.value.style.top&&e.contentEl.value.style.left||(h.x-=parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-x")||0),h.y-=parseFloat(document.documentElement.style.getPropertyValue("--v-body-scroll-y")||0)));const S=y.reduce((E,I)=>{const R=I.getBoundingClientRect(),F=new Ia({x:I===document.documentElement?0:R.x,y:I===document.documentElement?0:R.y,width:I.clientWidth,height:I.clientHeight});return E?new Ia({x:Math.max(E.left,F.left),y:Math.max(E.top,F.top),width:Math.min(E.right,F.right)-Math.max(E.left,F.left),height:Math.min(E.bottom,F.bottom)-Math.max(E.top,F.top)}):F},void 0);S.x+=p,S.y+=p,S.width-=p*2,S.height-=p*2;let C={anchor:l.value,origin:o.value};function A(E){const I=new Ia(h),R=Gf(E.anchor,g),F=Gf(E.origin,I);let{x:z,y:q}=iV(R,F);switch(E.anchor.side){case"top":q-=c.value[0];break;case"bottom":q+=c.value[0];break;case"left":z-=c.value[0];break;case"right":z+=c.value[0];break}switch(E.anchor.align){case"top":q-=c.value[1];break;case"bottom":q+=c.value[1];break;case"left":z-=c.value[1];break;case"right":z+=c.value[1];break}return I.x+=z,I.y+=q,I.width=Math.min(I.width,s.value),I.height=Math.min(I.height,u.value),{overflows:Xd(I,S),x:z,y:q}}let x=0,k=0;const V={x:0,y:0},T={x:!1,y:!1};let w=-1;for(;!(w++>10);){const{x:E,y:I,overflows:R}=A(C);x+=E,k+=I,h.x+=E,h.y+=I;{const F=qd(C.anchor),z=R.x.before||R.x.after,q=R.y.before||R.y.after;let ee=!1;if(["x","y"].forEach($=>{if($==="x"&&z&&!T.x||$==="y"&&q&&!T.y){const Z={anchor:{...C.anchor},origin:{...C.origin}},M=$==="x"?F==="y"?Fr:Mr:F==="y"?Mr:Fr;Z.anchor=M(Z.anchor),Z.origin=M(Z.origin);const{overflows:U}=A(Z);(U[$].before<=R[$].before&&U[$].after<=R[$].after||U[$].before+U[$].after<(R[$].before+R[$].after)/2)&&(C=Z,ee=T[$]=!0)}}),ee)continue}R.x.before&&(x+=R.x.before,h.x+=R.x.before),R.x.after&&(x-=R.x.after,h.x-=R.x.after),R.y.before&&(k+=R.y.before,h.y+=R.y.before),R.y.after&&(k-=R.y.after,h.y-=R.y.after);{const F=Xd(h,S);V.x=S.width-F.x.before-F.x.after,V.y=S.height-F.y.before-F.y.after,x+=F.x.before,h.x+=F.x.before,k+=F.y.before,h.y+=F.y.before}break}const P=qd(C.anchor);return Object.assign(n.value,{"--v-overlay-anchor-origin":`${C.anchor.side} ${C.anchor.align}`,transformOrigin:`${C.origin.side} ${C.origin.align}`,top:fe(Yr(k)),left:e.isRtl.value?void 0:fe(Yr(x)),right:e.isRtl.value?fe(Yr(-x)):void 0,minWidth:fe(P==="y"?Math.min(i.value,g.width):i.value),maxWidth:fe(Kf(ot(V.x,i.value===1/0?0:i.value,s.value))),maxHeight:fe(Kf(ot(V.y,r.value===1/0?0:r.value,u.value)))}),{available:V,contentBox:h}}return de(()=>[l.value,o.value,t.offset,t.minWidth,t.minHeight,t.maxWidth,t.maxHeight],()=>m()),Oe(()=>{const g=m();if(!g)return;const{available:h,contentBox:y}=g;y.height>h.y&&requestAnimationFrame(()=>{m(),requestAnimationFrame(()=>{m()})})}),{updateLocation:m}}function Yr(e){return Math.round(e*devicePixelRatio)/devicePixelRatio}function Kf(e){return Math.ceil(e*devicePixelRatio)/devicePixelRatio}let Ds=!0;const Vi=[];function fV(e){!Ds||Vi.length?(Vi.push(e),Ls()):(Ds=!1,e(),Ls())}let Yf=-1;function Ls(){cancelAnimationFrame(Yf),Yf=requestAnimationFrame(()=>{const e=Vi.shift();e&&e(),Vi.length?Ls():Ds=!0})}const ri={none:null,close:hV,block:gV,reposition:yV},vV=L({scrollStrategy:{type:[String,Function],default:"block",validator:e=>typeof e=="function"||e in ri}},"VOverlay-scroll-strategies");function mV(e,t){if(!He)return;let n;nt(async()=>{n==null||n.stop(),t.isActive.value&&e.scrollStrategy&&(n=du(),await new Promise(a=>setTimeout(a)),n.active&&n.run(()=>{var a;typeof e.scrollStrategy=="function"?e.scrollStrategy(t,e,n):(a=ri[e.scrollStrategy])==null||a.call(ri,t,e,n)}))}),Ot(()=>{n==null||n.stop()})}function hV(e){function t(n){e.isActive.value=!1}Wg(e.targetEl.value??e.contentEl.value,t)}function gV(e,t){var i;const n=(i=e.root.value)==null?void 0:i.offsetParent,a=[...new Set([...xi(e.targetEl.value,t.contained?n:void 0),...xi(e.contentEl.value,t.contained?n:void 0)])].filter(r=>!r.classList.contains("v-overlay-scroll-blocked")),l=window.innerWidth-document.documentElement.offsetWidth,o=(r=>Gu(r)&&r)(n||document.documentElement);o&&e.root.value.classList.add("v-overlay--scroll-blocked"),a.forEach((r,s)=>{r.style.setProperty("--v-body-scroll-x",fe(-r.scrollLeft)),r.style.setProperty("--v-body-scroll-y",fe(-r.scrollTop)),r!==document.documentElement&&r.style.setProperty("--v-scrollbar-offset",fe(l)),r.classList.add("v-overlay-scroll-blocked")}),Ot(()=>{a.forEach((r,s)=>{const u=parseFloat(r.style.getPropertyValue("--v-body-scroll-x")),c=parseFloat(r.style.getPropertyValue("--v-body-scroll-y")),f=r.style.scrollBehavior;r.style.scrollBehavior="auto",r.style.removeProperty("--v-body-scroll-x"),r.style.removeProperty("--v-body-scroll-y"),r.style.removeProperty("--v-scrollbar-offset"),r.classList.remove("v-overlay-scroll-blocked"),r.scrollLeft=-u,r.scrollTop=-c,r.style.scrollBehavior=f}),o&&e.root.value.classList.remove("v-overlay--scroll-blocked")})}function yV(e,t,n){let a=!1,l=-1,o=-1;function i(r){fV(()=>{var c,f;const s=performance.now();(f=(c=e.updateLocation).value)==null||f.call(c,r),a=(performance.now()-s)/(1e3/60)>2})}o=(typeof requestIdleCallback>"u"?r=>r():requestIdleCallback)(()=>{n.run(()=>{Wg(e.targetEl.value??e.contentEl.value,r=>{a?(cancelAnimationFrame(l),l=requestAnimationFrame(()=>{l=requestAnimationFrame(()=>{i(r)})})):i(r)})})}),Ot(()=>{typeof cancelIdleCallback<"u"&&cancelIdleCallback(o),cancelAnimationFrame(l)})}function Wg(e,t){const n=[document,...xi(e)];n.forEach(a=>{a.addEventListener("scroll",t,{passive:!0})}),Ot(()=>{n.forEach(a=>{a.removeEventListener("scroll",t)})})}const Ms=Symbol.for("vuetify:v-menu"),gc=L({closeDelay:[Number,String],openDelay:[Number,String]},"delay");function yc(e,t){let n=()=>{};function a(i){n==null||n();const r=Number(i?e.openDelay:e.closeDelay);return new Promise(s=>{n=O0(r,()=>{t==null||t(i),s(i)})})}function l(){return a(!0)}function o(){return a(!1)}return{clearDelay:n,runOpenDelay:l,runCloseDelay:o}}const bV=L({target:[String,Object],activator:[String,Object],activatorProps:{type:Object,default:()=>({})},openOnClick:{type:Boolean,default:void 0},openOnHover:Boolean,openOnFocus:{type:Boolean,default:void 0},closeOnContentClick:Boolean,...gc()},"VOverlay-activator");function pV(e,t){let{isActive:n,isTop:a}=t;const l=at("useActivator"),o=te();let i=!1,r=!1,s=!0;const u=b(()=>e.openOnFocus||e.openOnFocus==null&&e.openOnHover),c=b(()=>e.openOnClick||e.openOnClick==null&&!e.openOnHover&&!u.value),{runOpenDelay:f,runCloseDelay:v}=yc(e,V=>{V===(e.openOnHover&&i||u.value&&r)&&!(e.openOnHover&&n.value&&!a.value)&&(n.value!==V&&(s=!0),n.value=V)}),m=te(),g={onClick:V=>{V.stopPropagation(),o.value=V.currentTarget||V.target,n.value||(m.value=[V.clientX,V.clientY]),n.value=!n.value},onMouseenter:V=>{var T;(T=V.sourceCapabilities)!=null&&T.firesTouchEvents||(i=!0,o.value=V.currentTarget||V.target,f())},onMouseleave:V=>{i=!1,v()},onFocus:V=>{fl(V.target,":focus-visible")!==!1&&(r=!0,V.stopPropagation(),o.value=V.currentTarget||V.target,f())},onBlur:V=>{r=!1,V.stopPropagation(),v()}},h=b(()=>{const V={};return c.value&&(V.onClick=g.onClick),e.openOnHover&&(V.onMouseenter=g.onMouseenter,V.onMouseleave=g.onMouseleave),u.value&&(V.onFocus=g.onFocus,V.onBlur=g.onBlur),V}),y=b(()=>{const V={};if(e.openOnHover&&(V.onMouseenter=()=>{i=!0,f()},V.onMouseleave=()=>{i=!1,v()}),u.value&&(V.onFocusin=()=>{r=!0,f()},V.onFocusout=()=>{r=!1,v()}),e.closeOnContentClick){const T=Te(Ms,null);V.onClick=()=>{n.value=!1,T==null||T.closeParents()}}return V}),p=b(()=>{const V={};return e.openOnHover&&(V.onMouseenter=()=>{s&&(i=!0,s=!1,f())},V.onMouseleave=()=>{i=!1,v()}),V});de(a,V=>{V&&(e.openOnHover&&!i&&(!u.value||!r)||u.value&&!r&&(!e.openOnHover||!i))&&(n.value=!1)}),de(n,V=>{V||setTimeout(()=>{m.value=void 0})},{flush:"post"});const S=wi();nt(()=>{S.value&&Oe(()=>{o.value=S.el})});const C=wi(),A=b(()=>e.target==="cursor"&&m.value?m.value:C.value?C.el:Gg(e.target,l)||o.value),x=b(()=>Array.isArray(A.value)?void 0:A.value);let k;return de(()=>!!e.activator,V=>{V&&He?(k=du(),k.run(()=>{SV(e,l,{activatorEl:o,activatorEvents:h})})):k&&k.stop()},{flush:"post",immediate:!0}),Ot(()=>{k==null||k.stop()}),{activatorEl:o,activatorRef:S,target:A,targetEl:x,targetRef:C,activatorEvents:h,contentEvents:y,scrimEvents:p}}function SV(e,t,n){let{activatorEl:a,activatorEvents:l}=n;de(()=>e.activator,(s,u)=>{if(u&&s!==u){const c=r(u);c&&i(c)}s&&Oe(()=>o())},{immediate:!0}),de(()=>e.activatorProps,()=>{o()}),Ot(()=>{i()});function o(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:r(),u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.activatorProps;s&&M0(s,X(l.value,u))}function i(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:r(),u=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.activatorProps;s&&F0(s,X(l.value,u))}function r(){let s=arguments.length>0&&arguments[0]!==void 0?arguments[0]:e.activator;const u=Gg(s,t);return a.value=(u==null?void 0:u.nodeType)===Node.ELEMENT_NODE?u:void 0,a.value}}function Gg(e,t){var a,l;if(!e)return;let n;if(e==="parent"){let o=(l=(a=t==null?void 0:t.proxy)==null?void 0:a.$el)==null?void 0:l.parentNode;for(;o!=null&&o.hasAttribute("data-no-activator");)o=o.parentNode;n=o}else typeof e=="string"?n=document.querySelector(e):"$el"in e?n=e.$el:n=e;return n}function Kg(){if(!He)return ue(!1);const{ssr:e}=sn();if(e){const t=ue(!1);return Vt(()=>{t.value=!0}),t}else return ue(!0)}const bc=L({eager:Boolean},"lazy");function pc(e,t){const n=ue(!1),a=b(()=>n.value||e.eager||t.value);de(t,()=>n.value=!0);function l(){e.eager||(n.value=!1)}return{isBooted:n,hasContent:a,onAfterLeave:l}}function Ya(){const t=at("useScopeId").vnode.scopeId;return{scopeId:t?{[t]:""}:void 0}}const qf=Symbol.for("vuetify:stack"),Rl=Tt([]);function wV(e,t,n){const a=at("useStack"),l=!n,o=Te(qf,void 0),i=Tt({activeChildren:new Set});We(qf,i);const r=ue(+t.value);Nt(e,()=>{var f;const c=(f=Rl.at(-1))==null?void 0:f[1];r.value=c?c+10:+t.value,l&&Rl.push([a.uid,r.value]),o==null||o.activeChildren.add(a.uid),Ot(()=>{if(l){const v=Ve(Rl).findIndex(m=>m[0]===a.uid);Rl.splice(v,1)}o==null||o.activeChildren.delete(a.uid)})});const s=ue(!0);l&&nt(()=>{var f;const c=((f=Rl.at(-1))==null?void 0:f[0])===a.uid;setTimeout(()=>s.value=c)});const u=b(()=>!i.activeChildren.size);return{globalTop:Sl(s),localTop:u,stackStyles:b(()=>({zIndex:r.value}))}}function kV(e){return{teleportTarget:b(()=>{const n=e.value;if(n===!0||!He)return;const a=n===!1?document.body:typeof n=="string"?document.querySelector(n):n;if(a==null)return;let l=a.querySelector(":scope > .v-overlay-container");return l||(l=document.createElement("div"),l.className="v-overlay-container",a.appendChild(l)),l})}}function xV(){return!0}function Yg(e,t,n){if(!e||qg(e,n)===!1)return!1;const a=rh(t);if(typeof ShadowRoot<"u"&&a instanceof ShadowRoot&&a.host===e.target)return!1;const l=(typeof n.value=="object"&&n.value.include||(()=>[]))();return l.push(t),!l.some(o=>o==null?void 0:o.contains(e.target))}function qg(e,t){return(typeof t.value=="object"&&t.value.closeConditional||xV)(e)}function CV(e,t,n){const a=typeof n.value=="function"?n.value:n.value.handler;t._clickOutside.lastMousedownWasOutside&&Yg(e,t,n)&&setTimeout(()=>{qg(e,n)&&a&&a(e)},0)}function Xf(e,t){const n=rh(e);t(document),typeof ShadowRoot<"u"&&n instanceof ShadowRoot&&t(n)}const Xg={mounted(e,t){const n=l=>CV(l,e,t),a=l=>{e._clickOutside.lastMousedownWasOutside=Yg(l,e,t)};Xf(e,l=>{l.addEventListener("click",n,!0),l.addEventListener("mousedown",a,!0)}),e._clickOutside||(e._clickOutside={lastMousedownWasOutside:!1}),e._clickOutside[t.instance.$.uid]={onClick:n,onMousedown:a}},unmounted(e,t){e._clickOutside&&(Xf(e,n=>{var o;if(!n||!((o=e._clickOutside)!=null&&o[t.instance.$.uid]))return;const{onClick:a,onMousedown:l}=e._clickOutside[t.instance.$.uid];n.removeEventListener("click",a,!0),n.removeEventListener("mousedown",l,!0)}),delete e._clickOutside[t.instance.$.uid])}};function _V(e){const{modelValue:t,color:n,...a}=e;return d(Cn,{name:"fade-transition",appear:!0},{default:()=>[e.modelValue&&d("div",X({class:["v-overlay__scrim",e.color.backgroundColorClasses.value],style:e.color.backgroundColorStyles.value},a),null)]})}const Oo=L({absolute:Boolean,attach:[Boolean,String,Object],closeOnBack:{type:Boolean,default:!0},contained:Boolean,contentClass:null,contentProps:null,disabled:Boolean,opacity:[Number,String],noClickAnimation:Boolean,modelValue:Boolean,persistent:Boolean,scrim:{type:[Boolean,String],default:!0},zIndex:{type:[Number,String],default:2e3},...bV(),...ve(),...gt(),...bc(),...rV(),...vV(),...De(),...gn()},"VOverlay"),_n=j()({name:"VOverlay",directives:{ClickOutside:Xg},inheritAttrs:!1,props:{_disableGlobalStack:Boolean,...Oo()},emits:{"click:outside":e=>!0,"update:modelValue":e=>!0,afterEnter:()=>!0,afterLeave:()=>!0},setup(e,t){let{slots:n,attrs:a,emit:l}=t;const o=Se(e,"modelValue"),i=b({get:()=>o.value,set:K=>{K&&e.disabled||(o.value=K)}}),{themeClasses:r}=$e(e),{rtlClasses:s,isRtl:u}=ht(),{hasContent:c,onAfterLeave:f}=pc(e,i),v=Ge(b(()=>typeof e.scrim=="string"?e.scrim:null)),{globalTop:m,localTop:g,stackStyles:h}=wV(i,N(e,"zIndex"),e._disableGlobalStack),{activatorEl:y,activatorRef:p,target:S,targetEl:C,targetRef:A,activatorEvents:x,contentEvents:k,scrimEvents:V}=pV(e,{isActive:i,isTop:g}),T=b(()=>{var K;return(K=y==null?void 0:y.value)==null?void 0:K.getRootNode()}),{teleportTarget:w}=kV(b(()=>e.attach||e.contained||T.value instanceof ShadowRoot?T.value:!1)),{dimensionStyles:P}=yt(e),E=Kg(),{scopeId:I}=Ya();de(()=>e.disabled,K=>{K&&(i.value=!1)});const R=te(),F=te(),z=te(),{contentStyles:q,updateLocation:ee}=sV(e,{isRtl:u,contentEl:z,target:S,isActive:i});mV(e,{root:R,contentEl:z,targetEl:C,isActive:i,updateLocation:ee});function $(K){l("click:outside",K),e.persistent?he():i.value=!1}function Z(K){return i.value&&m.value&&(!e.scrim||K.target===F.value)}He&&de(i,K=>{K?window.addEventListener("keydown",M):window.removeEventListener("keydown",M)},{immediate:!0}),Pt(()=>{He&&window.removeEventListener("keydown",M)});function M(K){var D,ie;K.key==="Escape"&&m.value&&(e.persistent?he():(i.value=!1,(D=z.value)!=null&&D.contains(document.activeElement)&&((ie=y.value)==null||ie.focus())))}const U=Rh();Nt(()=>e.closeOnBack,()=>{dC(U,K=>{m.value&&i.value?(K(!1),e.persistent?he():i.value=!1):K()})});const ne=te();de(()=>i.value&&(e.absolute||e.contained)&&w.value==null,K=>{if(K){const D=Wu(R.value);D&&D!==document.scrollingElement&&(ne.value=D.scrollTop)}});function he(){e.noClickAnimation||z.value&&Ca(z.value,[{transformOrigin:"center"},{transform:"scale(1.03)"},{transformOrigin:"center"}],{duration:150,easing:lo})}function we(){l("afterEnter")}function ye(){f(),l("afterLeave")}return Y(()=>{var K;return d(ge,null,[(K=n.activator)==null?void 0:K.call(n,{isActive:i.value,targetRef:A,props:X({ref:p},x.value,e.activatorProps)}),E.value&&c.value&&d(hS,{disabled:!w.value,to:w.value},{default:()=>[d("div",X({class:["v-overlay",{"v-overlay--absolute":e.absolute||e.contained,"v-overlay--active":i.value,"v-overlay--contained":e.contained},r.value,s.value,e.class],style:[h.value,{"--v-overlay-opacity":e.opacity,top:fe(ne.value)},e.style],ref:R},I,a),[d(_V,X({color:v,modelValue:i.value&&!!e.scrim,ref:F},V.value),null),d(Rt,{appear:!0,persisted:!0,transition:e.transition,target:S.value,onAfterEnter:we,onAfterLeave:ye},{default:()=>{var D;return[Ue(d("div",X({ref:z,class:["v-overlay__content",e.contentClass],style:[P.value,q.value]},k.value,e.contentProps),[(D=n.default)==null?void 0:D.call(n,{isActive:i})]),[[hn,i.value],[Gt("click-outside"),{handler:$,closeConditional:Z,include:()=>[y.value]}]])]}})])]})])}),{activatorEl:y,scrimEl:F,target:S,animateClick:he,contentEl:z,globalTop:m,localTop:g,updateLocation:ee}}}),Jg=L({id:String,...ct(Oo({closeDelay:250,closeOnContentClick:!0,locationStrategy:"connected",openDelay:300,scrim:!1,scrollStrategy:"reposition",transition:{component:nr}}),["absolute"])},"VMenu"),bl=j()({name:"VMenu",props:Jg(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const a=Se(e,"modelValue"),{scopeId:l}=Ya(),o=wt(),i=b(()=>e.id||`v-menu-${o}`),r=te(),s=Te(Ms,null),u=ue(0);We(Ms,{register(){++u.value},unregister(){--u.value},closeParents(h){setTimeout(()=>{!u.value&&!e.persistent&&(h==null||h&&!D0(h,r.value.contentEl))&&(a.value=!1,s==null||s.closeParents())},40)}});async function c(h){var S,C,A;const y=h.relatedTarget,p=h.target;await Oe(),a.value&&y!==p&&((S=r.value)!=null&&S.contentEl)&&((C=r.value)!=null&&C.globalTop)&&![document,r.value.contentEl].includes(p)&&!r.value.contentEl.contains(p)&&((A=ao(r.value.contentEl)[0])==null||A.focus())}de(a,h=>{h?(s==null||s.register(),document.addEventListener("focusin",c,{once:!0})):(s==null||s.unregister(),document.removeEventListener("focusin",c))});function f(h){s==null||s.closeParents(h)}function v(h){var y,p,S;if(!e.disabled)if(h.key==="Tab"||h.key==="Enter"&&!e.closeOnContentClick){if(h.key==="Enter"&&(h.target instanceof HTMLTextAreaElement||h.target instanceof HTMLInputElement&&h.target.closest("form")))return;h.key==="Enter"&&h.preventDefault(),Wm(ao((y=r.value)==null?void 0:y.contentEl,!1),h.shiftKey?"prev":"next",A=>A.tabIndex>=0)||(a.value=!1,(S=(p=r.value)==null?void 0:p.activatorEl)==null||S.focus())}else["Enter"," "].includes(h.key)&&e.closeOnContentClick&&(a.value=!1,s==null||s.closeParents())}function m(h){var p;if(e.disabled)return;const y=(p=r.value)==null?void 0:p.contentEl;y&&a.value?h.key==="ArrowDown"?(h.preventDefault(),dl(y,"next")):h.key==="ArrowUp"&&(h.preventDefault(),dl(y,"prev")):["ArrowDown","ArrowUp"].includes(h.key)&&(a.value=!0,h.preventDefault(),setTimeout(()=>setTimeout(()=>m(h))))}const g=b(()=>X({"aria-haspopup":"menu","aria-expanded":String(a.value),"aria-owns":i.value,onKeydown:m},e.activatorProps));return Y(()=>{const h=_n.filterProps(e);return d(_n,X({ref:r,id:i.value,class:["v-menu",e.class],style:e.style},h,{modelValue:a.value,"onUpdate:modelValue":y=>a.value=y,absolute:!0,activatorProps:g.value,"onClick:outside":f,onKeydown:v},l),{activator:n.activator,default:function(){for(var y=arguments.length,p=new Array(y),S=0;S{var C;return[(C=n.default)==null?void 0:C.call(n,...p)]}})}})}),rn({id:i,ΨopenChildren:u},r)}}),VV=L({renderless:Boolean,...ve()},"VVirtualScrollItem"),Zg=j()({name:"VVirtualScrollItem",inheritAttrs:!1,props:VV(),emits:{"update:height":e=>!0},setup(e,t){let{attrs:n,emit:a,slots:l}=t;const{resizeRef:o,contentRect:i}=fn(void 0,"border");de(()=>{var r;return(r=i.value)==null?void 0:r.height},r=>{r!=null&&a("update:height",r)}),Y(()=>{var r,s;return e.renderless?d(ge,null,[(r=l.default)==null?void 0:r.call(l,{itemRef:o})]):d("div",X({ref:o,class:["v-virtual-scroll__item",e.class],style:e.style},n),[(s=l.default)==null?void 0:s.call(l)])})}}),PV=-1,IV=1,qr=100,Qg=L({itemHeight:{type:[Number,String],default:null},height:[Number,String]},"virtual");function ey(e,t){const n=sn(),a=ue(0);nt(()=>{a.value=parseFloat(e.itemHeight||0)});const l=ue(0),o=ue(Math.ceil((parseInt(e.height)||n.height.value)/(a.value||16))||1),i=ue(0),r=ue(0),s=te(),u=te();let c=0;const{resizeRef:f,contentRect:v}=fn();nt(()=>{f.value=s.value});const m=b(()=>{var Z;return s.value===document.documentElement?n.height.value:((Z=v.value)==null?void 0:Z.height)||parseInt(e.height)||0}),g=b(()=>!!(s.value&&u.value&&m.value&&a.value));let h=Array.from({length:t.value.length}),y=Array.from({length:t.value.length});const p=ue(0);let S=-1;function C(Z){return h[Z]||a.value}const A=E0(()=>{const Z=performance.now();y[0]=0;const M=t.value.length;for(let U=1;U<=M-1;U++)y[U]=(y[U-1]||0)+C(U-1);p.value=Math.max(p.value,performance.now()-Z)},p),x=de(g,Z=>{Z&&(x(),c=u.value.offsetTop,A.immediate(),z(),~S&&Oe(()=>{He&&window.requestAnimationFrame(()=>{ee(S),S=-1})}))});Ot(()=>{A.clear()});function k(Z,M){const U=h[Z],ne=a.value;a.value=ne?Math.min(a.value,M):M,(U!==M||ne!==a.value)&&(h[Z]=M,A())}function V(Z){return Z=ot(Z,0,t.value.length-1),y[Z]||0}function T(Z){return TV(y,Z)}let w=0,P=0,E=0;de(m,(Z,M)=>{M&&(z(),Z{P=0,z()}))});function I(){if(!s.value||!u.value)return;const Z=s.value.scrollTop,M=performance.now();M-E>500?(P=Math.sign(Z-w),c=u.value.offsetTop):P=Z-w,w=Z,E=M,z()}function R(){!s.value||!u.value||(P=0,E=0,z())}let F=-1;function z(){cancelAnimationFrame(F),F=requestAnimationFrame(q)}function q(){if(!s.value||!m.value)return;const Z=w-c,M=Math.sign(P),U=Math.max(0,Z-qr),ne=ot(T(U),0,t.value.length),he=Z+m.value+qr,we=ot(T(he)+1,ne+1,t.value.length);if((M!==PV||neo.value)){const ye=V(l.value)-V(ne),K=V(we)-V(o.value);Math.max(ye,K)>qr?(l.value=ne,o.value=we):(ne<=0&&(l.value=ne),we>=t.value.length&&(o.value=we))}i.value=V(l.value),r.value=V(t.value.length)-V(o.value)}function ee(Z){const M=V(Z);!s.value||Z&&!M?S=Z:s.value.scrollTop=M}const $=b(()=>t.value.slice(l.value,o.value).map((Z,M)=>({raw:Z,index:M+l.value})));return de(t,()=>{h=Array.from({length:t.value.length}),y=Array.from({length:t.value.length}),A.immediate(),z()},{deep:!0}),{containerRef:s,markerRef:u,computedItems:$,paddingTop:i,paddingBottom:r,scrollToIndex:ee,handleScroll:I,handleScrollend:R,handleItemResize:k}}function TV(e,t){let n=e.length-1,a=0,l=0,o=null,i=-1;if(e[n]>1,o=e[l],o>t)n=l-1;else if(o[]},renderless:Boolean,...Qg(),...ve(),...gt()},"VVirtualScroll"),sr=j()({name:"VVirtualScroll",props:EV(),setup(e,t){let{slots:n}=t;const a=at("VVirtualScroll"),{dimensionStyles:l}=yt(e),{containerRef:o,markerRef:i,handleScroll:r,handleScrollend:s,handleItemResize:u,scrollToIndex:c,paddingTop:f,paddingBottom:v,computedItems:m}=ey(e,N(e,"items"));return Nt(()=>e.renderless,()=>{function g(){var p,S;const y=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:!1)?"addEventListener":"removeEventListener";o.value===document.documentElement?(document[y]("scroll",r,{passive:!0}),document[y]("scrollend",s)):((p=o.value)==null||p[y]("scroll",r,{passive:!0}),(S=o.value)==null||S[y]("scrollend",s))}Vt(()=>{o.value=Wu(a.vnode.el,!0),g(!0)}),Ot(g)}),Y(()=>{const g=m.value.map(h=>d(Zg,{key:h.index,renderless:e.renderless,"onUpdate:height":y=>u(h.index,y)},{default:y=>{var p;return(p=n.default)==null?void 0:p.call(n,{item:h.raw,index:h.index,...y})}}));return e.renderless?d(ge,null,[d("div",{ref:i,class:"v-virtual-scroll__spacer",style:{paddingTop:fe(f.value)}},null),g,d("div",{class:"v-virtual-scroll__spacer",style:{paddingBottom:fe(v.value)}},null)]):d("div",{ref:o,class:["v-virtual-scroll",e.class],onScrollPassive:r,onScrollend:s,style:[l.value,e.style]},[d("div",{ref:i,class:"v-virtual-scroll__container",style:{paddingTop:fe(f.value),paddingBottom:fe(v.value)}},[g])])}),{scrollToIndex:c}}});function Sc(e,t){const n=ue(!1);let a;function l(r){cancelAnimationFrame(a),n.value=!0,a=requestAnimationFrame(()=>{a=requestAnimationFrame(()=>{n.value=!1})})}async function o(){await new Promise(r=>requestAnimationFrame(r)),await new Promise(r=>requestAnimationFrame(r)),await new Promise(r=>requestAnimationFrame(r)),await new Promise(r=>{if(n.value){const s=de(n,()=>{s(),r()})}else r()})}async function i(r){var c,f;if(r.key==="Tab"&&((c=t.value)==null||c.focus()),!["PageDown","PageUp","Home","End"].includes(r.key))return;const s=(f=e.value)==null?void 0:f.$el;if(!s)return;(r.key==="Home"||r.key==="End")&&s.scrollTo({top:r.key==="Home"?0:s.scrollHeight,behavior:"smooth"}),await o();const u=s.querySelectorAll(":scope > :not(.v-virtual-scroll__spacer)");if(r.key==="PageDown"||r.key==="Home"){const v=s.getBoundingClientRect().top;for(const m of u)if(m.getBoundingClientRect().top>=v){m.focus();break}}else{const v=s.getBoundingClientRect().bottom;for(const m of[...u].reverse())if(m.getBoundingClientRect().bottom<=v){m.focus();break}}}return{onListScroll:l,onListKeydown:i}}const wc=L({chips:Boolean,closableChips:Boolean,closeText:{type:String,default:"$vuetify.close"},openText:{type:String,default:"$vuetify.open"},eager:Boolean,hideNoData:Boolean,hideSelected:Boolean,listProps:{type:Object},menu:Boolean,menuIcon:{type:_e,default:"$dropdown"},menuProps:{type:Object},multiple:Boolean,noDataText:{type:String,default:"$vuetify.noDataText"},openOnClear:Boolean,itemColor:String,...Hg({itemChildren:!1})},"Select"),AV=L({...wc(),...ct(or({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...gn({transition:{component:nr}})},"VSelect"),kc=j()({name:"VSelect",props:AV(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:menu":e=>!0},setup(e,t){let{slots:n}=t;const{t:a}=lt(),l=te(),o=te(),i=te(),r=Se(e,"menu"),s=b({get:()=>r.value,set:$=>{var Z;r.value&&!$&&((Z=o.value)!=null&&Z.ΨopenChildren)||(r.value=$)}}),{items:u,transformIn:c,transformOut:f}=hc(e),v=Se(e,"modelValue",[],$=>c($===null?[null]:Qe($)),$=>{const Z=f($);return e.multiple?Z:Z[0]??null}),m=b(()=>typeof e.counterValue=="function"?e.counterValue(v.value):typeof e.counterValue=="number"?e.counterValue:v.value.length),g=er(),h=b(()=>v.value.map($=>$.value)),y=ue(!1),p=b(()=>s.value?e.closeText:e.openText);let S="",C;const A=b(()=>e.hideSelected?u.value.filter($=>!v.value.some(Z=>e.valueComparator(Z,$))):u.value),x=b(()=>e.hideNoData&&!A.value.length||e.readonly||(g==null?void 0:g.isReadonly.value)),k=b(()=>{var $;return{...e.menuProps,activatorProps:{...(($=e.menuProps)==null?void 0:$.activatorProps)||{},"aria-haspopup":"listbox"}}}),V=te(),{onListScroll:T,onListKeydown:w}=Sc(V,l);function P($){e.openOnClear&&(s.value=!0)}function E(){x.value||(s.value=!s.value)}function I($){var he,we;if(!$.key||e.readonly||g!=null&&g.isReadonly.value)return;["Enter"," ","ArrowDown","ArrowUp","Home","End"].includes($.key)&&$.preventDefault(),["Enter","ArrowDown"," "].includes($.key)&&(s.value=!0),["Escape","Tab"].includes($.key)&&(s.value=!1),$.key==="Home"?(he=V.value)==null||he.focus("first"):$.key==="End"&&((we=V.value)==null||we.focus("last"));const Z=1e3;function M(ye){const K=ye.key.length===1,D=!ye.ctrlKey&&!ye.metaKey&&!ye.altKey;return K&&D}if(e.multiple||!M($))return;const U=performance.now();U-C>Z&&(S=""),S+=$.key.toLowerCase(),C=U;const ne=u.value.find(ye=>ye.title.toLowerCase().startsWith(S));if(ne!==void 0){v.value=[ne];const ye=A.value.indexOf(ne);He&&window.requestAnimationFrame(()=>{var K;ye>=0&&((K=i.value)==null||K.scrollToIndex(ye))})}}function R($){let Z=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!$.props.disabled)if(e.multiple){const M=v.value.findIndex(ne=>e.valueComparator(ne.value,$.value)),U=Z??!~M;if(~M){const ne=U?[...v.value,$]:[...v.value];ne.splice(M,1),v.value=ne}else U&&(v.value=[...v.value,$])}else{const M=Z!==!1;v.value=M?[$]:[],Oe(()=>{s.value=!1})}}function F($){var Z;(Z=V.value)!=null&&Z.$el.contains($.relatedTarget)||(s.value=!1)}function z(){var $;y.value&&(($=l.value)==null||$.focus())}function q($){y.value=!0}function ee($){if($==null)v.value=[];else if(fl(l.value,":autofill")||fl(l.value,":-webkit-autofill")){const Z=u.value.find(M=>M.title===$);Z&&R(Z)}else l.value&&(l.value.value="")}return de(s,()=>{if(!e.hideSelected&&s.value&&v.value.length){const $=A.value.findIndex(Z=>v.value.some(M=>e.valueComparator(M.value,Z.value)));He&&window.requestAnimationFrame(()=>{var Z;$>=0&&((Z=i.value)==null||Z.scrollToIndex($))})}}),de(()=>e.items,($,Z)=>{s.value||y.value&&!Z.length&&$.length&&(s.value=!0)}),Y(()=>{const $=!!(e.chips||n.chip),Z=!!(!e.hideNoData||A.value.length||n["prepend-item"]||n["append-item"]||n["no-data"]),M=v.value.length>0,U=Mt.filterProps(e),ne=M||!y.value&&e.label&&!e.persistentPlaceholder?void 0:e.placeholder;return d(Mt,X({ref:l},U,{modelValue:v.value.map(he=>he.props.value).join(", "),"onUpdate:modelValue":ee,focused:y.value,"onUpdate:focused":he=>y.value=he,validationValue:v.externalValue,counterValue:m.value,dirty:M,class:["v-select",{"v-select--active-menu":s.value,"v-select--chips":!!e.chips,[`v-select--${e.multiple?"multiple":"single"}`]:!0,"v-select--selected":v.value.length,"v-select--selection-slot":!!n.selection},e.class],style:e.style,inputmode:"none",placeholder:ne,"onClick:clear":P,"onMousedown:control":E,onBlur:F,onKeydown:I,"aria-label":a(p.value),title:a(p.value)}),{...n,default:()=>d(ge,null,[d(bl,X({ref:o,modelValue:s.value,"onUpdate:modelValue":he=>s.value=he,activator:"parent",contentClass:"v-select__content",disabled:x.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:z},k.value),{default:()=>[Z&&d(rr,X({ref:V,selected:h.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:he=>he.preventDefault(),onKeydown:w,onFocusin:q,onScrollPassive:T,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},e.listProps),{default:()=>{var he,we,ye;return[(he=n["prepend-item"])==null?void 0:he.call(n),!A.value.length&&!e.hideNoData&&(((we=n["no-data"])==null?void 0:we.call(n))??d(zn,{title:a(e.noDataText)},null)),d(sr,{ref:i,renderless:!0,items:A.value},{default:K=>{var be;let{item:D,index:ie,itemRef:le}=K;const G=X(D.props,{ref:le,key:ie,onClick:()=>R(D,null)});return((be=n.item)==null?void 0:be.call(n,{item:D,index:ie,props:G}))??d(zn,X(G,{role:"option"}),{prepend:Q=>{let{isSelected:_}=Q;return d(ge,null,[e.multiple&&!e.hideSelected?d(Hn,{key:D.value,modelValue:_,ripple:!1,tabindex:"-1"},null):void 0,D.props.prependAvatar&&d(an,{image:D.props.prependAvatar},null),D.props.prependIcon&&d(Fe,{icon:D.props.prependIcon},null)])}})}}),(ye=n["append-item"])==null?void 0:ye.call(n)]}})]}),v.value.map((he,we)=>{function ye(le){le.stopPropagation(),le.preventDefault(),R(he,!1)}const K={"onClick:close":ye,onKeydown(le){le.key!=="Enter"&&le.key!==" "||(le.preventDefault(),le.stopPropagation(),ye(le))},onMousedown(le){le.preventDefault(),le.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},D=$?!!n.chip:!!n.selection,ie=D?Ui($?n.chip({item:he,index:we,props:K}):n.selection({item:he,index:we})):void 0;if(!(D&&!ie))return d("div",{key:he.value,class:"v-select__selection"},[$?n.chip?d(Be,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:he.title}}},{default:()=>[ie]}):d(Vl,X({key:"chip",closable:e.closableChips,size:"small",text:he.title,disabled:he.props.disabled},K),null):ie??d("span",{class:"v-select__selection-text"},[he.title,e.multiple&&wee==null||t==null?-1:e.toString().toLocaleLowerCase().indexOf(t.toString().toLocaleLowerCase()),Do=L({customFilter:Function,customKeyFilter:Object,filterKeys:[Array,String],filterMode:{type:String,default:"intersection"},noFilter:Boolean},"filter");function RV(e,t,n){var r;const a=[],l=(n==null?void 0:n.default)??BV,o=n!=null&&n.filterKeys?Qe(n.filterKeys):!1,i=Object.keys((n==null?void 0:n.customKeyFilter)??{}).length;if(!(e!=null&&e.length))return a;e:for(let s=0;s0)&&!(n!=null&&n.noFilter)){if(typeof u=="object"){const y=o||Object.keys(c);for(const p of y){const S=dt(c,p),C=(r=n==null?void 0:n.customKeyFilter)==null?void 0:r[p];if(m=C?C(S,t,u):l(S,t,u),m!==-1&&m!==!1)C?f[p]=m:v[p]=m;else if((n==null?void 0:n.filterMode)==="every")continue e}}else m=l(u,t,u),m!==-1&&m!==!1&&(v.title=m);const g=Object.keys(v).length,h=Object.keys(f).length;if(!g&&!h||(n==null?void 0:n.filterMode)==="union"&&h!==i&&!g||(n==null?void 0:n.filterMode)==="intersection"&&(h!==i||!g))continue}a.push({index:s,matches:{...v,...f}})}return a}function Lo(e,t,n,a){const l=te([]),o=te(new Map),i=b(()=>a!=null&&a.transform?st(t).map(s=>[s,a.transform(s)]):st(t));nt(()=>{const s=typeof n=="function"?n():st(n),u=typeof s!="string"&&typeof s!="number"?"":String(s),c=RV(i.value,u,{customKeyFilter:{...e.customKeyFilter,...st(a==null?void 0:a.customKeyFilter)},default:e.customFilter,filterKeys:e.filterKeys,filterMode:e.filterMode,noFilter:e.noFilter}),f=st(t),v=[],m=new Map;c.forEach(g=>{let{index:h,matches:y}=g;const p=f[h];v.push(p),m.set(p.value,y)}),l.value=v,o.value=m});function r(s){return o.value.get(s.value)}return{filteredItems:l,filteredMatches:o,getMatches:r}}function OV(e,t,n){if(t==null)return e;if(Array.isArray(t))throw new Error("Multiple matches is not implemented");return typeof t=="number"&&~t?d(ge,null,[d("span",{class:"v-autocomplete__unmask"},[e.substr(0,t)]),d("span",{class:"v-autocomplete__mask"},[e.substr(t,n)]),d("span",{class:"v-autocomplete__unmask"},[e.substr(t+n)])]):e}const DV=L({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:Boolean,search:String,...Do({filterKeys:["title"]}),...wc(),...ct(or({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...gn({transition:!1})},"VAutocomplete"),LV=j()({name:"VAutocomplete",props:DV(),emits:{"update:focused":e=>!0,"update:search":e=>!0,"update:modelValue":e=>!0,"update:menu":e=>!0},setup(e,t){let{slots:n}=t;const{t:a}=lt(),l=te(),o=ue(!1),i=ue(!0),r=ue(!1),s=te(),u=te(),c=Se(e,"menu"),f=b({get:()=>c.value,set:G=>{var be;c.value&&!G&&((be=s.value)!=null&&be.ΨopenChildren)||(c.value=G)}}),v=ue(-1),m=b(()=>{var G;return(G=l.value)==null?void 0:G.color}),g=b(()=>f.value?e.closeText:e.openText),{items:h,transformIn:y,transformOut:p}=hc(e),{textColorClasses:S,textColorStyles:C}=Ct(m),A=Se(e,"search",""),x=Se(e,"modelValue",[],G=>y(G===null?[null]:Qe(G)),G=>{const be=p(G);return e.multiple?be:be[0]??null}),k=b(()=>typeof e.counterValue=="function"?e.counterValue(x.value):typeof e.counterValue=="number"?e.counterValue:x.value.length),V=er(),{filteredItems:T,getMatches:w}=Lo(e,h,()=>i.value?"":A.value),P=b(()=>e.hideSelected?T.value.filter(G=>!x.value.some(be=>be.value===G.value)):T.value),E=b(()=>!!(e.chips||n.chip)),I=b(()=>E.value||!!n.selection),R=b(()=>x.value.map(G=>G.props.value)),F=b(()=>{var be;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&A.value===((be=P.value[0])==null?void 0:be.title))&&P.value.length>0&&!i.value&&!r.value}),z=b(()=>e.hideNoData&&!P.value.length||e.readonly||(V==null?void 0:V.isReadonly.value)),q=te(),{onListScroll:ee,onListKeydown:$}=Sc(q,l);function Z(G){e.openOnClear&&(f.value=!0),A.value=""}function M(){z.value||(f.value=!0)}function U(G){z.value||(o.value&&(G.preventDefault(),G.stopPropagation()),f.value=!f.value)}function ne(G){var _,B,O;if(e.readonly||V!=null&&V.isReadonly.value)return;const be=l.value.selectionStart,Q=x.value.length;if((v.value>-1||["Enter","ArrowDown","ArrowUp"].includes(G.key))&&G.preventDefault(),["Enter","ArrowDown"].includes(G.key)&&(f.value=!0),["Escape"].includes(G.key)&&(f.value=!1),F.value&&["Enter","Tab"].includes(G.key)&&!x.value.some(H=>{let{value:W}=H;return W===P.value[0].value})&&le(P.value[0]),G.key==="ArrowDown"&&F.value&&((_=q.value)==null||_.focus("next")),["Backspace","Delete"].includes(G.key)){if(!e.multiple&&I.value&&x.value.length>0&&!A.value)return le(x.value[0],!1);if(~v.value){const H=v.value;le(x.value[v.value],!1),v.value=H>=Q-1?Q-2:H}else G.key==="Backspace"&&!A.value&&(v.value=Q-1)}if(e.multiple){if(G.key==="ArrowLeft"){if(v.value<0&&be>0)return;const H=v.value>-1?v.value-1:Q-1;x.value[H]?v.value=H:(v.value=-1,l.value.setSelectionRange((B=A.value)==null?void 0:B.length,(O=A.value)==null?void 0:O.length))}if(G.key==="ArrowRight"){if(v.value<0)return;const H=v.value+1;x.value[H]?v.value=H:(v.value=-1,l.value.setSelectionRange(0,0))}}}function he(G){if(fl(l.value,":autofill")||fl(l.value,":-webkit-autofill")){const be=h.value.find(Q=>Q.title===G.target.value);be&&le(be)}}function we(){var G;o.value&&(i.value=!0,(G=l.value)==null||G.focus())}function ye(G){o.value=!0,setTimeout(()=>{r.value=!0})}function K(G){r.value=!1}function D(G){(G==null||G===""&&!e.multiple&&!I.value)&&(x.value=[])}const ie=ue(!1);function le(G){let be=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!G||G.props.disabled))if(e.multiple){const Q=x.value.findIndex(B=>e.valueComparator(B.value,G.value)),_=be??!~Q;if(~Q){const B=_?[...x.value,G]:[...x.value];B.splice(Q,1),x.value=B}else _&&(x.value=[...x.value,G]);e.clearOnSelect&&(A.value="")}else{const Q=be!==!1;x.value=Q?[G]:[],A.value=Q&&!I.value?G.title:"",Oe(()=>{f.value=!1,i.value=!0})}}return de(o,(G,be)=>{var Q;G!==be&&(G?(ie.value=!0,A.value=e.multiple||I.value?"":String(((Q=x.value.at(-1))==null?void 0:Q.props.title)??""),i.value=!0,Oe(()=>ie.value=!1)):(!e.multiple&&A.value==null&&(x.value=[]),f.value=!1,x.value.some(_=>{let{title:B}=_;return B===A.value})||(A.value=""),v.value=-1))}),de(A,G=>{!o.value||ie.value||(G&&(f.value=!0),i.value=!G)}),de(f,()=>{if(!e.hideSelected&&f.value&&x.value.length){const G=P.value.findIndex(be=>x.value.some(Q=>be.value===Q.value));He&&window.requestAnimationFrame(()=>{var be;G>=0&&((be=u.value)==null||be.scrollToIndex(G))})}}),de(()=>e.items,(G,be)=>{f.value||o.value&&!be.length&&G.length&&(f.value=!0)}),Y(()=>{const G=!!(!e.hideNoData||P.value.length||n["prepend-item"]||n["append-item"]||n["no-data"]),be=x.value.length>0,Q=Mt.filterProps(e);return d(Mt,X({ref:l},Q,{modelValue:A.value,"onUpdate:modelValue":[_=>A.value=_,D],focused:o.value,"onUpdate:focused":_=>o.value=_,validationValue:x.externalValue,counterValue:k.value,dirty:be,onChange:he,class:["v-autocomplete",`v-autocomplete--${e.multiple?"multiple":"single"}`,{"v-autocomplete--active-menu":f.value,"v-autocomplete--chips":!!e.chips,"v-autocomplete--selection-slot":!!I.value,"v-autocomplete--selecting-index":v.value>-1},e.class],style:e.style,readonly:e.readonly,placeholder:be?void 0:e.placeholder,"onClick:clear":Z,"onMousedown:control":M,onKeydown:ne}),{...n,default:()=>d(ge,null,[d(bl,X({ref:s,modelValue:f.value,"onUpdate:modelValue":_=>f.value=_,activator:"parent",contentClass:"v-autocomplete__content",disabled:z.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:we},e.menuProps),{default:()=>[G&&d(rr,X({ref:q,selected:R.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:_=>_.preventDefault(),onKeydown:$,onFocusin:ye,onFocusout:K,onScrollPassive:ee,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},e.listProps),{default:()=>{var _,B,O;return[(_=n["prepend-item"])==null?void 0:_.call(n),!P.value.length&&!e.hideNoData&&(((B=n["no-data"])==null?void 0:B.call(n))??d(zn,{title:a(e.noDataText)},null)),d(sr,{ref:u,renderless:!0,items:P.value},{default:H=>{var se;let{item:W,index:re,itemRef:oe}=H;const ce=X(W.props,{ref:oe,key:re,active:F.value&&re===0?!0:void 0,onClick:()=>le(W,null)});return((se=n.item)==null?void 0:se.call(n,{item:W,index:re,props:ce}))??d(zn,X(ce,{role:"option"}),{prepend:ae=>{let{isSelected:pe}=ae;return d(ge,null,[e.multiple&&!e.hideSelected?d(Hn,{key:W.value,modelValue:pe,ripple:!1,tabindex:"-1"},null):void 0,W.props.prependAvatar&&d(an,{image:W.props.prependAvatar},null),W.props.prependIcon&&d(Fe,{icon:W.props.prependIcon},null)])},title:()=>{var ae,pe;return i.value?W.title:OV(W.title,(ae=w(W))==null?void 0:ae.title,((pe=A.value)==null?void 0:pe.length)??0)}})}}),(O=n["append-item"])==null?void 0:O.call(n)]}})]}),x.value.map((_,B)=>{function O(oe){oe.stopPropagation(),oe.preventDefault(),le(_,!1)}const H={"onClick:close":O,onKeydown(oe){oe.key!=="Enter"&&oe.key!==" "||(oe.preventDefault(),oe.stopPropagation(),O(oe))},onMousedown(oe){oe.preventDefault(),oe.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},W=E.value?!!n.chip:!!n.selection,re=W?Ui(E.value?n.chip({item:_,index:B,props:H}):n.selection({item:_,index:B})):void 0;if(!(W&&!re))return d("div",{key:_.value,class:["v-autocomplete__selection",B===v.value&&["v-autocomplete__selection--selected",S.value]],style:B===v.value?C.value:{}},[E.value?n.chip?d(Be,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:_.title}}},{default:()=>[re]}):d(Vl,X({key:"chip",closable:e.closableChips,size:"small",text:_.title,disabled:_.props.disabled},H),null):re??d("span",{class:"v-autocomplete__selection-text"},[_.title,e.multiple&&B(e.floating?e.dot?2:4:e.dot?8:12)+(["top","bottom"].includes(c)?+(e.offsetY??0):["left","right"].includes(c)?+(e.offsetX??0):0));return Y(()=>{const c=Number(e.content),f=!e.max||isNaN(c)?e.content:c<=+e.max?c:`${e.max}+`,[v,m]=gs(t.attrs,["aria-atomic","aria-label","aria-live","role","title"]);return d(e.tag,X({class:["v-badge",{"v-badge--bordered":e.bordered,"v-badge--dot":e.dot,"v-badge--floating":e.floating,"v-badge--inline":e.inline},e.class]},m,{style:e.style}),{default:()=>{var g,h;return[d("div",{class:"v-badge__wrapper"},[(h=(g=t.slots).default)==null?void 0:h.call(g),d(Rt,{transition:e.transition},{default:()=>{var y,p;return[Ue(d("span",X({class:["v-badge__badge",s.value,n.value,l.value,i.value],style:[a.value,r.value,e.inline?{}:u.value],"aria-atomic":"true","aria-label":o(e.label,c),"aria-live":"polite",role:"status"},v),[e.dot?void 0:t.slots.badge?(p=(y=t.slots).badge)==null?void 0:p.call(y):e.icon?d(Fe,{icon:e.icon},null):f]),[[hn,e.modelValue]])]}})])]}})}),{}}}),$V=L({color:String,density:String,...ve()},"VBannerActions"),ty=j()({name:"VBannerActions",props:$V(),setup(e,t){let{slots:n}=t;return et({VBtn:{color:e.color,density:e.density,slim:!0,variant:"text"}}),Y(()=>{var a;return d("div",{class:["v-banner-actions",e.class],style:e.style},[(a=n.default)==null?void 0:a.call(n)])}),{}}}),ny=En("v-banner-text"),NV=L({avatar:String,bgColor:String,color:String,icon:_e,lines:String,stacked:Boolean,sticky:Boolean,text:String,...Yt(),...ve(),...bt(),...gt(),...Ka({mobile:null}),...vt(),...Gn(),...kl(),...Xe(),...Pe(),...De()},"VBanner"),HV=j()({name:"VBanner",props:NV(),setup(e,t){let{slots:n}=t;const{backgroundColorClasses:a,backgroundColorStyles:l}=Ge(e,"bgColor"),{borderClasses:o}=ln(e),{densityClasses:i}=Dt(e),{displayClasses:r,mobile:s}=sn(e),{dimensionStyles:u}=yt(e),{elevationClasses:c}=kt(e),{locationStyles:f}=Ga(e),{positionClasses:v}=xl(e),{roundedClasses:m}=tt(e),{themeClasses:g}=$e(e),h=N(e,"color"),y=N(e,"density");et({VBannerActions:{color:h,density:y}}),Y(()=>{const p=!!(e.text||n.text),S=!!(e.avatar||e.icon),C=!!(S||n.prepend);return d(e.tag,{class:["v-banner",{"v-banner--stacked":e.stacked||s.value,"v-banner--sticky":e.sticky,[`v-banner--${e.lines}-line`]:!!e.lines},g.value,a.value,o.value,i.value,r.value,c.value,v.value,m.value,e.class],style:[l.value,u.value,f.value,e.style],role:"banner"},{default:()=>{var A;return[C&&d("div",{key:"prepend",class:"v-banner__prepend"},[n.prepend?d(Be,{key:"prepend-defaults",disabled:!S,defaults:{VAvatar:{color:h.value,density:y.value,icon:e.icon,image:e.avatar}}},n.prepend):d(an,{key:"prepend-avatar",color:h.value,density:y.value,icon:e.icon,image:e.avatar},null)]),d("div",{class:"v-banner__content"},[p&&d(ny,{key:"text"},{default:()=>{var x;return[((x=n.text)==null?void 0:x.call(n))??e.text]}}),(A=n.default)==null?void 0:A.call(n)]),n.actions&&d(ty,{key:"actions"},n.actions)]}})})}}),zV=L({baseColor:String,bgColor:String,color:String,grow:Boolean,mode:{type:String,validator:e=>!e||["horizontal","shift"].includes(e)},height:{type:[Number,String],default:56},active:{type:Boolean,default:!0},...Yt(),...ve(),...bt(),...vt(),...Xe(),...$a({name:"bottom-navigation"}),...Pe({tag:"header"}),...ja({selectedClass:"v-btn--selected"}),...De()},"VBottomNavigation"),jV=j()({name:"VBottomNavigation",props:zV(),emits:{"update:active":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{themeClasses:a}=hh(),{borderClasses:l}=ln(e),{backgroundColorClasses:o,backgroundColorStyles:i}=Ge(N(e,"bgColor")),{densityClasses:r}=Dt(e),{elevationClasses:s}=kt(e),{roundedClasses:u}=tt(e),{ssrBootStyles:c}=Ha(),f=b(()=>Number(e.height)-(e.density==="comfortable"?8:0)-(e.density==="compact"?16:0)),v=Se(e,"active",e.active),{layoutItemStyles:m,layoutIsReady:g}=Na({id:e.name,order:b(()=>parseInt(e.order,10)),position:b(()=>"bottom"),layoutSize:b(()=>v.value?f.value:0),elementSize:f,active:v,absolute:N(e,"absolute")});return ha(e,Ju),et({VBtn:{baseColor:N(e,"baseColor"),color:N(e,"color"),density:N(e,"density"),stacked:b(()=>e.mode!=="horizontal"),variant:"text"}},{scoped:!0}),Y(()=>d(e.tag,{class:["v-bottom-navigation",{"v-bottom-navigation--active":v.value,"v-bottom-navigation--grow":e.grow,"v-bottom-navigation--shift":e.mode==="shift"},a.value,o.value,l.value,r.value,s.value,u.value,e.class],style:[i.value,m.value,{height:fe(f.value)},c.value,e.style]},{default:()=>[n.default&&d("div",{class:"v-bottom-navigation__content"},[n.default()])]})),g}}),ay=L({fullscreen:Boolean,retainFocus:{type:Boolean,default:!0},scrollable:Boolean,...Oo({origin:"center center",scrollStrategy:"block",transition:{component:nr},zIndex:2400})},"VDialog"),Fs=j()({name:"VDialog",props:ay(),emits:{"update:modelValue":e=>!0,afterLeave:()=>!0},setup(e,t){let{emit:n,slots:a}=t;const l=Se(e,"modelValue"),{scopeId:o}=Ya(),i=te();function r(c){var m,g;const f=c.relatedTarget,v=c.target;if(f!==v&&((m=i.value)!=null&&m.contentEl)&&((g=i.value)!=null&&g.globalTop)&&![document,i.value.contentEl].includes(v)&&!i.value.contentEl.contains(v)){const h=ao(i.value.contentEl);if(!h.length)return;const y=h[0],p=h[h.length-1];f===y?p.focus():y.focus()}}He&&de(()=>l.value&&e.retainFocus,c=>{c?document.addEventListener("focusin",r):document.removeEventListener("focusin",r)},{immediate:!0});function s(){var c;(c=i.value)!=null&&c.contentEl&&!i.value.contentEl.contains(document.activeElement)&&i.value.contentEl.focus({preventScroll:!0})}function u(){n("afterLeave")}return de(l,async c=>{var f;c||(await Oe(),(f=i.value.activatorEl)==null||f.focus({preventScroll:!0}))}),Y(()=>{const c=_n.filterProps(e),f=X({"aria-haspopup":"dialog","aria-expanded":String(l.value)},e.activatorProps),v=X({tabindex:-1},e.contentProps);return d(_n,X({ref:i,class:["v-dialog",{"v-dialog--fullscreen":e.fullscreen,"v-dialog--scrollable":e.scrollable},e.class],style:e.style},c,{modelValue:l.value,"onUpdate:modelValue":m=>l.value=m,"aria-modal":"true",activatorProps:f,contentProps:v,role:"dialog",onAfterEnter:s,onAfterLeave:u},o),{activator:a.activator,default:function(){for(var m=arguments.length,g=new Array(m),h=0;h{var y;return[(y=a.default)==null?void 0:y.call(a,...g)]}})}})}),rn({},i)}}),UV=L({inset:Boolean,...ay({transition:"bottom-sheet-transition"})},"VBottomSheet"),WV=j()({name:"VBottomSheet",props:UV(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const a=Se(e,"modelValue");return Y(()=>{const l=Fs.filterProps(e);return d(Fs,X(l,{contentClass:["v-bottom-sheet__content",e.contentClass],modelValue:a.value,"onUpdate:modelValue":o=>a.value=o,class:["v-bottom-sheet",{"v-bottom-sheet--inset":e.inset},e.class],style:e.style}),n)}),{}}}),GV=L({divider:[Number,String],...ve()},"VBreadcrumbsDivider"),ly=j()({name:"VBreadcrumbsDivider",props:GV(),setup(e,t){let{slots:n}=t;return Y(()=>{var a;return d("li",{class:["v-breadcrumbs-divider",e.class],style:e.style},[((a=n==null?void 0:n.default)==null?void 0:a.call(n))??e.divider])}),{}}}),KV=L({active:Boolean,activeClass:String,activeColor:String,color:String,disabled:Boolean,title:String,...ve(),...Io(),...Pe({tag:"li"})},"VBreadcrumbsItem"),oy=j()({name:"VBreadcrumbsItem",props:KV(),setup(e,t){let{slots:n,attrs:a}=t;const l=Po(e,a),o=b(()=>{var u;return e.active||((u=l.isActive)==null?void 0:u.value)}),i=b(()=>o.value?e.activeColor:e.color),{textColorClasses:r,textColorStyles:s}=Ct(i);return Y(()=>d(e.tag,{class:["v-breadcrumbs-item",{"v-breadcrumbs-item--active":o.value,"v-breadcrumbs-item--disabled":e.disabled,[`${e.activeClass}`]:o.value&&e.activeClass},r.value,e.class],style:[s.value,e.style],"aria-current":o.value?"page":void 0},{default:()=>{var u,c;return[l.isLink.value?d("a",{class:"v-breadcrumbs-item--link",href:l.href.value,"aria-current":o.value?"page":void 0,onClick:l.navigate},[((c=n.default)==null?void 0:c.call(n))??e.title]):((u=n.default)==null?void 0:u.call(n))??e.title]}})),{}}}),YV=L({activeClass:String,activeColor:String,bgColor:String,color:String,disabled:Boolean,divider:{type:String,default:"/"},icon:_e,items:{type:Array,default:()=>[]},...ve(),...bt(),...Xe(),...Pe({tag:"ul"})},"VBreadcrumbs"),qV=j()({name:"VBreadcrumbs",props:YV(),setup(e,t){let{slots:n}=t;const{backgroundColorClasses:a,backgroundColorStyles:l}=Ge(N(e,"bgColor")),{densityClasses:o}=Dt(e),{roundedClasses:i}=tt(e);et({VBreadcrumbsDivider:{divider:N(e,"divider")},VBreadcrumbsItem:{activeClass:N(e,"activeClass"),activeColor:N(e,"activeColor"),color:N(e,"color"),disabled:N(e,"disabled")}});const r=b(()=>e.items.map(s=>typeof s=="string"?{item:{title:s},raw:s}:{item:s,raw:s}));return Y(()=>{const s=!!(n.prepend||e.icon);return d(e.tag,{class:["v-breadcrumbs",a.value,o.value,i.value,e.class],style:[l.value,e.style]},{default:()=>{var u;return[s&&d("li",{key:"prepend",class:"v-breadcrumbs__prepend"},[n.prepend?d(Be,{key:"prepend-defaults",disabled:!e.icon,defaults:{VIcon:{icon:e.icon,start:!0}}},n.prepend):d(Fe,{key:"prepend-icon",start:!0,icon:e.icon},null)]),r.value.map((c,f,v)=>{var h;let{item:m,raw:g}=c;return d(ge,null,[((h=n.item)==null?void 0:h.call(n,{item:m,index:f}))??d(oy,X({key:f,disabled:f>=v.length-1},typeof m=="string"?{title:m}:m),{default:n.title?()=>{var y;return(y=n.title)==null?void 0:y.call(n,{item:m,index:f})}:void 0}),f{var y;return(y=n.divider)==null?void 0:y.call(n,{item:g,index:f})}:void 0})])}),(u=n.default)==null?void 0:u.call(n)]}})}),{}}}),XV=e=>{const{touchstartX:t,touchendX:n,touchstartY:a,touchendY:l}=e,o=.5,i=16;e.offsetX=n-t,e.offsetY=l-a,Math.abs(e.offsetY)t+i&&e.right(e)),Math.abs(e.offsetX)a+i&&e.down(e))};function JV(e,t){var a;const n=e.changedTouches[0];t.touchstartX=n.clientX,t.touchstartY=n.clientY,(a=t.start)==null||a.call(t,{originalEvent:e,...t})}function ZV(e,t){var a;const n=e.changedTouches[0];t.touchendX=n.clientX,t.touchendY=n.clientY,(a=t.end)==null||a.call(t,{originalEvent:e,...t}),XV(t)}function QV(e,t){var a;const n=e.changedTouches[0];t.touchmoveX=n.clientX,t.touchmoveY=n.clientY,(a=t.move)==null||a.call(t,{originalEvent:e,...t})}function eP(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const t={touchstartX:0,touchstartY:0,touchendX:0,touchendY:0,touchmoveX:0,touchmoveY:0,offsetX:0,offsetY:0,left:e.left,right:e.right,up:e.up,down:e.down,start:e.start,move:e.move,end:e.end};return{touchstart:n=>JV(n,t),touchend:n=>ZV(n,t),touchmove:n=>QV(n,t)}}function tP(e,t){var r;const n=t.value,a=n!=null&&n.parent?e.parentElement:e,l=(n==null?void 0:n.options)??{passive:!0},o=(r=t.instance)==null?void 0:r.$.uid;if(!a||!o)return;const i=eP(t.value);a._touchHandlers=a._touchHandlers??Object.create(null),a._touchHandlers[o]=i,Nm(i).forEach(s=>{a.addEventListener(s,i[s],l)})}function nP(e,t){var o,i;const n=(o=t.value)!=null&&o.parent?e.parentElement:e,a=(i=t.instance)==null?void 0:i.$.uid;if(!(n!=null&&n._touchHandlers)||!a)return;const l=n._touchHandlers[a];Nm(l).forEach(r=>{n.removeEventListener(r,l[r])}),delete n._touchHandlers[a]}const xc={mounted:tP,unmounted:nP},iy=Symbol.for("vuetify:v-window"),ry=Symbol.for("vuetify:v-window-group"),ur=L({continuous:Boolean,nextIcon:{type:[Boolean,String,Function,Object],default:"$next"},prevIcon:{type:[Boolean,String,Function,Object],default:"$prev"},reverse:Boolean,showArrows:{type:[Boolean,String],validator:e=>typeof e=="boolean"||e==="hover"},touch:{type:[Object,Boolean],default:void 0},direction:{type:String,default:"horizontal"},modelValue:null,disabled:Boolean,selectedClass:{type:String,default:"v-window-item--active"},mandatory:{type:[Boolean,String],default:"force"},...ve(),...Pe(),...De()},"VWindow"),Ba=j()({name:"VWindow",directives:{Touch:xc},props:ur(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{themeClasses:a}=$e(e),{isRtl:l}=ht(),{t:o}=lt(),i=ha(e,ry),r=te(),s=b(()=>l.value?!e.reverse:e.reverse),u=ue(!1),c=b(()=>{const A=e.direction==="vertical"?"y":"x",k=(s.value?!u.value:u.value)?"-reverse":"";return`v-window-${A}${k}-transition`}),f=ue(0),v=te(void 0),m=b(()=>i.items.value.findIndex(A=>i.selected.value.includes(A.id)));de(m,(A,x)=>{const k=i.items.value.length,V=k-1;k<=2?u.value=Ae.continuous||m.value!==0),h=b(()=>e.continuous||m.value!==i.items.value.length-1);function y(){g.value&&i.prev()}function p(){h.value&&i.next()}const S=b(()=>{const A=[],x={icon:l.value?e.nextIcon:e.prevIcon,class:`v-window__${s.value?"right":"left"}`,onClick:i.prev,"aria-label":o("$vuetify.carousel.prev")};A.push(g.value?n.prev?n.prev({props:x}):d(Me,x,null):d("div",null,null));const k={icon:l.value?e.prevIcon:e.nextIcon,class:`v-window__${s.value?"left":"right"}`,onClick:i.next,"aria-label":o("$vuetify.carousel.next")};return A.push(h.value?n.next?n.next({props:k}):d(Me,k,null):d("div",null,null)),A}),C=b(()=>e.touch===!1?e.touch:{...{left:()=>{s.value?y():p()},right:()=>{s.value?p():y()},start:x=>{let{originalEvent:k}=x;k.stopPropagation()}},...e.touch===!0?{}:e.touch});return Y(()=>Ue(d(e.tag,{ref:r,class:["v-window",{"v-window--show-arrows-on-hover":e.showArrows==="hover"},a.value,e.class],style:e.style},{default:()=>{var A,x;return[d("div",{class:"v-window__container",style:{height:v.value}},[(A=n.default)==null?void 0:A.call(n,{group:i}),e.showArrows!==!1&&d("div",{class:"v-window__controls"},[S.value])]),(x=n.additional)==null?void 0:x.call(n,{group:i})]}}),[[Gt("touch"),C.value]])),{group:i}}}),aP=L({color:String,cycle:Boolean,delimiterIcon:{type:_e,default:"$delimiter"},height:{type:[Number,String],default:500},hideDelimiters:Boolean,hideDelimiterBackground:Boolean,interval:{type:[Number,String],default:6e3,validator:e=>Number(e)>0},progress:[Boolean,String],verticalDelimiters:[Boolean,String],...ur({continuous:!0,mandatory:"force",showArrows:!0})},"VCarousel"),lP=j()({name:"VCarousel",props:aP(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const a=Se(e,"modelValue"),{t:l}=lt(),o=te();let i=-1;de(a,s),de(()=>e.interval,s),de(()=>e.cycle,u=>{u?s():window.clearTimeout(i)}),Vt(r);function r(){!e.cycle||!o.value||(i=window.setTimeout(o.value.group.next,+e.interval>0?+e.interval:6e3))}function s(){window.clearTimeout(i),window.requestAnimationFrame(r)}return Y(()=>{const u=Ba.filterProps(e);return d(Ba,X({ref:o},u,{modelValue:a.value,"onUpdate:modelValue":c=>a.value=c,class:["v-carousel",{"v-carousel--hide-delimiter-background":e.hideDelimiterBackground,"v-carousel--vertical-delimiters":e.verticalDelimiters},e.class],style:[{height:fe(e.height)},e.style]}),{default:n.default,additional:c=>{let{group:f}=c;return d(ge,null,[!e.hideDelimiters&&d("div",{class:"v-carousel__controls",style:{left:e.verticalDelimiters==="left"&&e.verticalDelimiters?0:"auto",right:e.verticalDelimiters==="right"?0:"auto"}},[f.items.value.length>0&&d(Be,{defaults:{VBtn:{color:e.color,icon:e.delimiterIcon,size:"x-small",variant:"text"}},scoped:!0},{default:()=>[f.items.value.map((v,m)=>{const g={id:`carousel-item-${v.id}`,"aria-label":l("$vuetify.carousel.ariaLabel.delimiter",m+1,f.items.value.length),class:["v-carousel__controls__item",f.isSelected(v.id)&&"v-btn--active"],onClick:()=>f.select(v.id,!0)};return n.item?n.item({props:g,item:v}):d(Me,X(v,g),null)})]})]),e.progress&&d(qi,{class:"v-carousel__progress",color:typeof e.progress=="string"?e.progress:void 0,modelValue:(f.getItemIndex(a.value)+1)/f.items.value.length*100},null)])},prev:n.prev,next:n.next})}),{}}}),cr=L({reverseTransition:{type:[Boolean,String],default:void 0},transition:{type:[Boolean,String],default:void 0},...ve(),...Ua(),...bc()},"VWindowItem"),Ra=j()({name:"VWindowItem",directives:{Touch:xc},props:cr(),emits:{"group:selected":e=>!0},setup(e,t){let{slots:n}=t;const a=Te(iy),l=Wa(e,ry),{isBooted:o}=Ha();if(!a||!l)throw new Error("[Vuetify] VWindowItem must be used inside VWindow");const i=ue(!1),r=b(()=>o.value&&(a.isReversed.value?e.reverseTransition!==!1:e.transition!==!1));function s(){!i.value||!a||(i.value=!1,a.transitionCount.value>0&&(a.transitionCount.value-=1,a.transitionCount.value===0&&(a.transitionHeight.value=void 0)))}function u(){var g;i.value||!a||(i.value=!0,a.transitionCount.value===0&&(a.transitionHeight.value=fe((g=a.rootRef.value)==null?void 0:g.clientHeight)),a.transitionCount.value+=1)}function c(){s()}function f(g){i.value&&Oe(()=>{!r.value||!i.value||!a||(a.transitionHeight.value=fe(g.clientHeight))})}const v=b(()=>{const g=a.isReversed.value?e.reverseTransition:e.transition;return r.value?{name:typeof g!="string"?a.transition.value:g,onBeforeEnter:u,onAfterEnter:s,onEnterCancelled:c,onBeforeLeave:u,onAfterLeave:s,onLeaveCancelled:c,onEnter:f}:!1}),{hasContent:m}=pc(e,l.isSelected);return Y(()=>d(Rt,{transition:v.value,disabled:!o.value},{default:()=>{var g;return[Ue(d("div",{class:["v-window-item",l.selectedClass.value,e.class],style:e.style},[m.value&&((g=n.default)==null?void 0:g.call(n))]),[[hn,l.isSelected.value]])]}})),{groupItem:l}}}),oP=L({...Gh(),...cr()},"VCarouselItem"),iP=j()({name:"VCarouselItem",inheritAttrs:!1,props:oP(),setup(e,t){let{slots:n,attrs:a}=t;Y(()=>{const l=Nn.filterProps(e),o=Ra.filterProps(e);return d(Ra,X({class:["v-carousel-item",e.class]},o),{default:()=>[d(Nn,X(a,l),n)]})})}}),rP=En("v-code"),sP=L({color:{type:Object},disabled:Boolean,dotSize:{type:[Number,String],default:10},height:{type:[Number,String],default:150},width:{type:[Number,String],default:300},...ve()},"VColorPickerCanvas"),uP=Kt({name:"VColorPickerCanvas",props:sP(),emits:{"update:color":e=>!0,"update:position":e=>!0},setup(e,t){let{emit:n}=t;const a=ue(!1),l=te(),o=ue(parseFloat(e.width)),i=ue(parseFloat(e.height)),r=te({x:0,y:0}),s=b({get:()=>r.value,set(y){var C,A;if(!l.value)return;const{x:p,y:S}=y;r.value=y,n("update:color",{h:((C=e.color)==null?void 0:C.h)??0,s:ot(p,0,o.value)/o.value,v:1-ot(S,0,i.value)/i.value,a:((A=e.color)==null?void 0:A.a)??1})}}),u=b(()=>{const{x:y,y:p}=s.value,S=parseInt(e.dotSize,10)/2;return{width:fe(e.dotSize),height:fe(e.dotSize),transform:`translate(${fe(y-S)}, ${fe(p-S)})`}}),{resizeRef:c}=fn(y=>{var C;if(!((C=c.el)!=null&&C.offsetParent))return;const{width:p,height:S}=y[0].contentRect;o.value=p,i.value=S});function f(y,p,S){const{left:C,top:A,width:x,height:k}=S;s.value={x:ot(y-C,0,x),y:ot(p-A,0,k)}}function v(y){y.type==="mousedown"&&y.preventDefault(),!e.disabled&&(m(y),window.addEventListener("mousemove",m),window.addEventListener("mouseup",g),window.addEventListener("touchmove",m),window.addEventListener("touchend",g))}function m(y){if(e.disabled||!l.value)return;a.value=!0;const p=R0(y);f(p.clientX,p.clientY,l.value.getBoundingClientRect())}function g(){window.removeEventListener("mousemove",m),window.removeEventListener("mouseup",g),window.removeEventListener("touchmove",m),window.removeEventListener("touchend",g)}function h(){var A;if(!l.value)return;const y=l.value,p=y.getContext("2d");if(!p)return;const S=p.createLinearGradient(0,0,y.width,0);S.addColorStop(0,"hsla(0, 0%, 100%, 1)"),S.addColorStop(1,`hsla(${((A=e.color)==null?void 0:A.h)??0}, 100%, 50%, 1)`),p.fillStyle=S,p.fillRect(0,0,y.width,y.height);const C=p.createLinearGradient(0,0,0,y.height);C.addColorStop(0,"hsla(0, 0%, 0%, 0)"),C.addColorStop(1,"hsla(0, 0%, 0%, 1)"),p.fillStyle=C,p.fillRect(0,0,y.width,y.height)}return de(()=>{var y;return(y=e.color)==null?void 0:y.h},h,{immediate:!0}),de(()=>[o.value,i.value],(y,p)=>{h(),r.value={x:s.value.x*y[0]/p[0],y:s.value.y*y[1]/p[1]}},{flush:"post"}),de(()=>e.color,()=>{if(a.value){a.value=!1;return}r.value=e.color?{x:e.color.s*o.value,y:(1-e.color.v)*i.value}:{x:0,y:0}},{deep:!0,immediate:!0}),Vt(()=>h()),Y(()=>d("div",{ref:c,class:["v-color-picker-canvas",e.class],style:e.style,onMousedown:v,onTouchstartPassive:v},[d("canvas",{ref:l,width:o.value,height:i.value},null),e.color&&d("div",{class:["v-color-picker-canvas__dot",{"v-color-picker-canvas__dot--disabled":e.disabled}],style:u.value},null)])),{}}});function cP(e,t){if(t){const{a:n,...a}=e;return a}return e}function dP(e,t){if(t==null||typeof t=="string"){const n=lh(e);return e.a===1?n.slice(0,7):n}if(typeof t=="object"){let n;return xa(t,["r","g","b"])?n=$n(e):xa(t,["h","s","l"])?n=Zm(e):xa(t,["h","s","v"])&&(n=e),cP(n,!xa(t,["a"])&&e.a===1)}return e}const nl={h:0,s:0,v:0,a:1},$s={inputProps:{type:"number",min:0},inputs:[{label:"R",max:255,step:1,getValue:e=>Math.round(e.r),getColor:(e,t)=>({...e,r:Number(t)})},{label:"G",max:255,step:1,getValue:e=>Math.round(e.g),getColor:(e,t)=>({...e,g:Number(t)})},{label:"B",max:255,step:1,getValue:e=>Math.round(e.b),getColor:(e,t)=>({...e,b:Number(t)})},{label:"A",max:1,step:.01,getValue:e=>{let{a:t}=e;return t!=null?Math.round(t*100)/100:1},getColor:(e,t)=>({...e,a:Number(t)})}],to:$n,from:Wi};var Sv;const fP={...$s,inputs:(Sv=$s.inputs)==null?void 0:Sv.slice(0,3)},Ns={inputProps:{type:"number",min:0},inputs:[{label:"H",max:360,step:1,getValue:e=>Math.round(e.h),getColor:(e,t)=>({...e,h:Number(t)})},{label:"S",max:1,step:.01,getValue:e=>Math.round(e.s*100)/100,getColor:(e,t)=>({...e,s:Number(t)})},{label:"L",max:1,step:.01,getValue:e=>Math.round(e.l*100)/100,getColor:(e,t)=>({...e,l:Number(t)})},{label:"A",max:1,step:.01,getValue:e=>{let{a:t}=e;return t!=null?Math.round(t*100)/100:1},getColor:(e,t)=>({...e,a:Number(t)})}],to:Zm,from:ju},vP={...Ns,inputs:Ns.inputs.slice(0,3)},sy={inputProps:{type:"text"},inputs:[{label:"HEXA",getValue:e=>e,getColor:(e,t)=>t}],to:lh,from:ah},mP={...sy,inputs:[{label:"HEX",getValue:e=>e.slice(0,7),getColor:(e,t)=>t}]},Ta={rgb:fP,rgba:$s,hsl:vP,hsla:Ns,hex:mP,hexa:sy},hP=e=>{let{label:t,...n}=e;return d("div",{class:"v-color-picker-edit__input"},[d("input",n,null),d("span",null,[t])])},gP=L({color:Object,disabled:Boolean,mode:{type:String,default:"rgba",validator:e=>Object.keys(Ta).includes(e)},modes:{type:Array,default:()=>Object.keys(Ta),validator:e=>Array.isArray(e)&&e.every(t=>Object.keys(Ta).includes(t))},...ve()},"VColorPickerEdit"),yP=Kt({name:"VColorPickerEdit",props:gP(),emits:{"update:color":e=>!0,"update:mode":e=>!0},setup(e,t){let{emit:n}=t;const a=b(()=>e.modes.map(o=>({...Ta[o],name:o}))),l=b(()=>{var r;const o=a.value.find(s=>s.name===e.mode);if(!o)return[];const i=e.color?o.to(e.color):null;return(r=o.inputs)==null?void 0:r.map(s=>{let{getValue:u,getColor:c,...f}=s;return{...o.inputProps,...f,disabled:e.disabled,value:i&&u(i),onChange:v=>{const m=v.target;m&&n("update:color",o.from(c(i??o.to(nl),m.value)))}}})});return Y(()=>{var o;return d("div",{class:["v-color-picker-edit",e.class],style:e.style},[(o=l.value)==null?void 0:o.map(i=>d(hP,i,null)),a.value.length>1&&d(Me,{icon:"$unfold",size:"x-small",variant:"plain",onClick:()=>{const i=a.value.findIndex(r=>r.name===e.mode);n("update:mode",a.value[(i+1)%a.value.length].name)}},null)])}),{}}}),Cc=Symbol.for("vuetify:v-slider");function Hs(e,t,n){const a=n==="vertical",l=t.getBoundingClientRect(),o="touches"in e?e.touches[0]:e;return a?o.clientY-(l.top+l.height/2):o.clientX-(l.left+l.width/2)}function bP(e,t){return"touches"in e&&e.touches.length?e.touches[0][t]:"changedTouches"in e&&e.changedTouches.length?e.changedTouches[0][t]:e[t]}const uy=L({disabled:{type:Boolean,default:null},error:Boolean,readonly:{type:Boolean,default:null},max:{type:[Number,String],default:100},min:{type:[Number,String],default:0},step:{type:[Number,String],default:0},thumbColor:String,thumbLabel:{type:[Boolean,String],default:void 0,validator:e=>typeof e=="boolean"||e==="always"},thumbSize:{type:[Number,String],default:20},showTicks:{type:[Boolean,String],default:!1,validator:e=>typeof e=="boolean"||e==="always"},ticks:{type:[Array,Object]},tickSize:{type:[Number,String],default:2},color:String,trackColor:String,trackFillColor:String,trackSize:{type:[Number,String],default:4},direction:{type:String,default:"horizontal",validator:e=>["vertical","horizontal"].includes(e)},reverse:Boolean,...Xe(),...vt({elevation:2}),ripple:{type:Boolean,default:!0}},"Slider"),cy=e=>{const t=b(()=>parseFloat(e.min)),n=b(()=>parseFloat(e.max)),a=b(()=>+e.step>0?parseFloat(e.step):0),l=b(()=>Math.max(zd(a.value),zd(t.value)));function o(i){if(i=parseFloat(i),a.value<=0)return i;const r=ot(i,t.value,n.value),s=t.value%a.value,u=Math.round((r-s)/a.value)*a.value+s;return parseFloat(Math.min(u,n.value).toFixed(l.value))}return{min:t,max:n,step:a,decimals:l,roundValue:o}},dy=e=>{let{props:t,steps:n,onSliderStart:a,onSliderMove:l,onSliderEnd:o,getActiveThumb:i}=e;const{isRtl:r}=ht(),s=N(t,"reverse"),u=b(()=>t.direction==="vertical"),c=b(()=>u.value!==s.value),{min:f,max:v,step:m,decimals:g,roundValue:h}=n,y=b(()=>parseInt(t.thumbSize,10)),p=b(()=>parseInt(t.tickSize,10)),S=b(()=>parseInt(t.trackSize,10)),C=b(()=>(v.value-f.value)/m.value),A=N(t,"disabled"),x=b(()=>t.error||t.disabled?void 0:t.thumbColor??t.color),k=b(()=>t.error||t.disabled?void 0:t.trackColor??t.color),V=b(()=>t.error||t.disabled?void 0:t.trackFillColor??t.color),T=ue(!1),w=ue(0),P=te(),E=te();function I(K){var O;const D=t.direction==="vertical",ie=D?"top":"left",le=D?"height":"width",G=D?"clientY":"clientX",{[ie]:be,[le]:Q}=(O=P.value)==null?void 0:O.$el.getBoundingClientRect(),_=bP(K,G);let B=Math.min(Math.max((_-be-w.value)/Q,0),1)||0;return(D?c.value:c.value!==r.value)&&(B=1-B),h(f.value+B*(v.value-f.value))}const R=K=>{o({value:I(K)}),T.value=!1,w.value=0},F=K=>{E.value=i(K),E.value&&(E.value.focus(),T.value=!0,E.value.contains(K.target)?w.value=Hs(K,E.value,t.direction):(w.value=0,l({value:I(K)})),a({value:I(K)}))},z={passive:!0,capture:!0};function q(K){l({value:I(K)})}function ee(K){K.stopPropagation(),K.preventDefault(),R(K),window.removeEventListener("mousemove",q,z),window.removeEventListener("mouseup",ee)}function $(K){var D;R(K),window.removeEventListener("touchmove",q,z),(D=K.target)==null||D.removeEventListener("touchend",$)}function Z(K){var D;F(K),window.addEventListener("touchmove",q,z),(D=K.target)==null||D.addEventListener("touchend",$,{passive:!1})}function M(K){K.preventDefault(),F(K),window.addEventListener("mousemove",q,z),window.addEventListener("mouseup",ee,{passive:!1})}const U=K=>{const D=(K-f.value)/(v.value-f.value)*100;return ot(isNaN(D)?0:D,0,100)},ne=N(t,"showTicks"),he=b(()=>ne.value?t.ticks?Array.isArray(t.ticks)?t.ticks.map(K=>({value:K,position:U(K),label:K.toString()})):Object.keys(t.ticks).map(K=>({value:parseFloat(K),position:U(parseFloat(K)),label:t.ticks[K]})):C.value!==1/0?xn(C.value+1).map(K=>{const D=f.value+K*m.value;return{value:D,position:U(D)}}):[]:[]),we=b(()=>he.value.some(K=>{let{label:D}=K;return!!D})),ye={activeThumbRef:E,color:N(t,"color"),decimals:g,disabled:A,direction:N(t,"direction"),elevation:N(t,"elevation"),hasLabels:we,isReversed:s,indexFromEnd:c,min:f,max:v,mousePressed:T,numTicks:C,onSliderMousedown:M,onSliderTouchstart:Z,parsedTicks:he,parseMouseMove:I,position:U,readonly:N(t,"readonly"),rounded:N(t,"rounded"),roundValue:h,showTicks:ne,startOffset:w,step:m,thumbSize:y,thumbColor:x,thumbLabel:N(t,"thumbLabel"),ticks:N(t,"ticks"),tickSize:p,trackColor:k,trackContainerRef:P,trackFillColor:V,trackSize:S,vertical:u};return We(Cc,ye),ye},pP=L({focused:Boolean,max:{type:Number,required:!0},min:{type:Number,required:!0},modelValue:{type:Number,required:!0},position:{type:Number,required:!0},ripple:{type:[Boolean,Object],default:!0},name:String,...ve()},"VSliderThumb"),zs=j()({name:"VSliderThumb",directives:{Ripple:Kn},props:pP(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n,emit:a}=t;const l=Te(Cc),{isRtl:o,rtlClasses:i}=ht();if(!l)throw new Error("[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider");const{thumbColor:r,step:s,disabled:u,thumbSize:c,thumbLabel:f,direction:v,isReversed:m,vertical:g,readonly:h,elevation:y,mousePressed:p,decimals:S,indexFromEnd:C}=l,A=b(()=>u.value?void 0:y.value),{elevationClasses:x}=kt(A),{textColorClasses:k,textColorStyles:V}=Ct(r),{pageup:T,pagedown:w,end:P,home:E,left:I,right:R,down:F,up:z}=hs,q=[T,w,P,E,I,R,F,z],ee=b(()=>s.value?[1,2,3]:[1,5,10]);function $(M,U){if(!q.includes(M.key))return;M.preventDefault();const ne=s.value||.1,he=(e.max-e.min)/ne;if([I,R,F,z].includes(M.key)){const ye=(g.value?[o.value?I:R,m.value?F:z]:C.value!==o.value?[I,z]:[R,z]).includes(M.key)?1:-1,K=M.shiftKey?2:M.ctrlKey?1:0;U=U+ye*ne*ee.value[K]}else if(M.key===E)U=e.min;else if(M.key===P)U=e.max;else{const we=M.key===w?1:-1;U=U-we*ne*(he>100?he/10:10)}return Math.max(e.min,Math.min(e.max,U))}function Z(M){const U=$(M,e.modelValue);U!=null&&a("update:modelValue",U)}return Y(()=>{const M=fe(C.value?100-e.position:e.position,"%");return d("div",{class:["v-slider-thumb",{"v-slider-thumb--focused":e.focused,"v-slider-thumb--pressed":e.focused&&p.value},e.class,i.value],style:[{"--v-slider-thumb-position":M,"--v-slider-thumb-size":fe(c.value)},e.style],role:"slider",tabindex:u.value?-1:0,"aria-label":e.name,"aria-valuemin":e.min,"aria-valuemax":e.max,"aria-valuenow":e.modelValue,"aria-readonly":!!h.value,"aria-orientation":v.value,onKeydown:h.value?void 0:Z},[d("div",{class:["v-slider-thumb__surface",k.value,x.value],style:{...V.value}},null),Ue(d("div",{class:["v-slider-thumb__ripple",k.value],style:V.value},null),[[Gt("ripple"),e.ripple,null,{circle:!0,center:!0}]]),d(oc,{origin:"bottom center"},{default:()=>{var U;return[Ue(d("div",{class:"v-slider-thumb__label-container"},[d("div",{class:["v-slider-thumb__label"]},[d("div",null,[((U=n["thumb-label"])==null?void 0:U.call(n,{modelValue:e.modelValue}))??e.modelValue.toFixed(s.value?S.value:1)])])]),[[hn,f.value&&e.focused||f.value==="always"]])]}})])}),{}}}),SP=L({start:{type:Number,required:!0},stop:{type:Number,required:!0},...ve()},"VSliderTrack"),fy=j()({name:"VSliderTrack",props:SP(),emits:{},setup(e,t){let{slots:n}=t;const a=Te(Cc);if(!a)throw new Error("[Vuetify] v-slider-track must be inside v-slider or v-range-slider");const{color:l,parsedTicks:o,rounded:i,showTicks:r,tickSize:s,trackColor:u,trackFillColor:c,trackSize:f,vertical:v,min:m,max:g,indexFromEnd:h}=a,{roundedClasses:y}=tt(i),{backgroundColorClasses:p,backgroundColorStyles:S}=Ge(c),{backgroundColorClasses:C,backgroundColorStyles:A}=Ge(u),x=b(()=>`inset-${v.value?"block":"inline"}-${h.value?"end":"start"}`),k=b(()=>v.value?"height":"width"),V=b(()=>({[x.value]:"0%",[k.value]:"100%"})),T=b(()=>e.stop-e.start),w=b(()=>({[x.value]:fe(e.start,"%"),[k.value]:fe(T.value,"%")})),P=b(()=>r.value?(v.value?o.value.slice().reverse():o.value).map((I,R)=>{var z;const F=I.value!==m.value&&I.value!==g.value?fe(I.position,"%"):void 0;return d("div",{key:I.value,class:["v-slider-track__tick",{"v-slider-track__tick--filled":I.position>=e.start&&I.position<=e.stop,"v-slider-track__tick--first":I.value===m.value,"v-slider-track__tick--last":I.value===g.value}],style:{[x.value]:F}},[(I.label||n["tick-label"])&&d("div",{class:"v-slider-track__tick-label"},[((z=n["tick-label"])==null?void 0:z.call(n,{tick:I,index:R}))??I.label])])}):[]);return Y(()=>d("div",{class:["v-slider-track",y.value,e.class],style:[{"--v-slider-track-size":fe(f.value),"--v-slider-tick-size":fe(s.value)},e.style]},[d("div",{class:["v-slider-track__background",C.value,{"v-slider-track__background--opacity":!!l.value||!c.value}],style:{...V.value,...A.value}},null),d("div",{class:["v-slider-track__fill",p.value],style:{...w.value,...S.value}},null),r.value&&d("div",{class:["v-slider-track__ticks",{"v-slider-track__ticks--always-show":r.value==="always"}]},[P.value])])),{}}}),wP=L({...Eo(),...uy(),...qn(),modelValue:{type:[Number,String],default:0}},"VSlider"),js=j()({name:"VSlider",props:wP(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,start:e=>!0,end:e=>!0},setup(e,t){let{slots:n,emit:a}=t;const l=te(),{rtlClasses:o}=ht(),i=cy(e),r=Se(e,"modelValue",void 0,k=>i.roundValue(k??i.min.value)),{min:s,max:u,mousePressed:c,roundValue:f,onSliderMousedown:v,onSliderTouchstart:m,trackContainerRef:g,position:h,hasLabels:y,readonly:p}=dy({props:e,steps:i,onSliderStart:()=>{a("start",r.value)},onSliderEnd:k=>{let{value:V}=k;const T=f(V);r.value=T,a("end",T)},onSliderMove:k=>{let{value:V}=k;return r.value=f(V)},getActiveThumb:()=>{var k;return(k=l.value)==null?void 0:k.$el}}),{isFocused:S,focus:C,blur:A}=Yn(e),x=b(()=>h(r.value));return Y(()=>{const k=_t.filterProps(e),V=!!(e.label||n.label||n.prepend);return d(_t,X({class:["v-slider",{"v-slider--has-labels":!!n["tick-label"]||y.value,"v-slider--focused":S.value,"v-slider--pressed":c.value,"v-slider--disabled":e.disabled},o.value,e.class],style:e.style},k,{focused:S.value}),{...n,prepend:V?T=>{var w,P;return d(ge,null,[((w=n.label)==null?void 0:w.call(n,T))??(e.label?d(Cl,{id:T.id.value,class:"v-slider__label",text:e.label},null):void 0),(P=n.prepend)==null?void 0:P.call(n,T)])}:void 0,default:T=>{let{id:w,messagesId:P}=T;return d("div",{class:"v-slider__container",onMousedown:p.value?void 0:v,onTouchstartPassive:p.value?void 0:m},[d("input",{id:w.value,name:e.name||w.value,disabled:!!e.disabled,readonly:!!e.readonly,tabindex:"-1",value:r.value},null),d(fy,{ref:g,start:0,stop:x.value},{"tick-label":n["tick-label"]}),d(zs,{ref:l,"aria-describedby":P.value,focused:S.value,min:s.value,max:u.value,modelValue:r.value,"onUpdate:modelValue":E=>r.value=E,position:x.value,elevation:e.elevation,onFocus:C,onBlur:A,ripple:e.ripple,name:e.name},{"thumb-label":n["thumb-label"]})])}})}),{}}}),kP=L({color:{type:Object},disabled:Boolean,hideAlpha:Boolean,...ve()},"VColorPickerPreview"),xP=Kt({name:"VColorPickerPreview",props:kP(),emits:{"update:color":e=>!0},setup(e,t){let{emit:n}=t;const a=new AbortController;Pu(()=>a.abort());async function l(){if(!$d)return;const o=new window.EyeDropper;try{const i=await o.open({signal:a.signal}),r=ah(i.sRGBHex);n("update:color",{...e.color??nl,...r})}catch{}}return Y(()=>{var o,i;return d("div",{class:["v-color-picker-preview",{"v-color-picker-preview--hide-alpha":e.hideAlpha},e.class],style:e.style},[$d&&d("div",{class:"v-color-picker-preview__eye-dropper",key:"eyeDropper"},[d(Me,{onClick:l,icon:"$eyeDropper",variant:"plain",density:"comfortable"},null)]),d("div",{class:"v-color-picker-preview__dot"},[d("div",{style:{background:eh(e.color??nl)}},null)]),d("div",{class:"v-color-picker-preview__sliders"},[d(js,{class:"v-color-picker-preview__track v-color-picker-preview__hue",modelValue:(o=e.color)==null?void 0:o.h,"onUpdate:modelValue":r=>n("update:color",{...e.color??nl,h:r}),step:0,min:0,max:360,disabled:e.disabled,thumbSize:14,trackSize:8,trackFillColor:"white",hideDetails:!0},null),!e.hideAlpha&&d(js,{class:"v-color-picker-preview__track v-color-picker-preview__alpha",modelValue:((i=e.color)==null?void 0:i.a)??1,"onUpdate:modelValue":r=>n("update:color",{...e.color??nl,a:r}),step:1/256,min:0,max:1,disabled:e.disabled,thumbSize:14,trackSize:8,trackFillColor:"white",hideDetails:!0},null)])])}),{}}}),CP={base:"#f44336",lighten5:"#ffebee",lighten4:"#ffcdd2",lighten3:"#ef9a9a",lighten2:"#e57373",lighten1:"#ef5350",darken1:"#e53935",darken2:"#d32f2f",darken3:"#c62828",darken4:"#b71c1c",accent1:"#ff8a80",accent2:"#ff5252",accent3:"#ff1744",accent4:"#d50000"},_P={base:"#e91e63",lighten5:"#fce4ec",lighten4:"#f8bbd0",lighten3:"#f48fb1",lighten2:"#f06292",lighten1:"#ec407a",darken1:"#d81b60",darken2:"#c2185b",darken3:"#ad1457",darken4:"#880e4f",accent1:"#ff80ab",accent2:"#ff4081",accent3:"#f50057",accent4:"#c51162"},VP={base:"#9c27b0",lighten5:"#f3e5f5",lighten4:"#e1bee7",lighten3:"#ce93d8",lighten2:"#ba68c8",lighten1:"#ab47bc",darken1:"#8e24aa",darken2:"#7b1fa2",darken3:"#6a1b9a",darken4:"#4a148c",accent1:"#ea80fc",accent2:"#e040fb",accent3:"#d500f9",accent4:"#aa00ff"},PP={base:"#673ab7",lighten5:"#ede7f6",lighten4:"#d1c4e9",lighten3:"#b39ddb",lighten2:"#9575cd",lighten1:"#7e57c2",darken1:"#5e35b1",darken2:"#512da8",darken3:"#4527a0",darken4:"#311b92",accent1:"#b388ff",accent2:"#7c4dff",accent3:"#651fff",accent4:"#6200ea"},IP={base:"#3f51b5",lighten5:"#e8eaf6",lighten4:"#c5cae9",lighten3:"#9fa8da",lighten2:"#7986cb",lighten1:"#5c6bc0",darken1:"#3949ab",darken2:"#303f9f",darken3:"#283593",darken4:"#1a237e",accent1:"#8c9eff",accent2:"#536dfe",accent3:"#3d5afe",accent4:"#304ffe"},TP={base:"#2196f3",lighten5:"#e3f2fd",lighten4:"#bbdefb",lighten3:"#90caf9",lighten2:"#64b5f6",lighten1:"#42a5f5",darken1:"#1e88e5",darken2:"#1976d2",darken3:"#1565c0",darken4:"#0d47a1",accent1:"#82b1ff",accent2:"#448aff",accent3:"#2979ff",accent4:"#2962ff"},EP={base:"#03a9f4",lighten5:"#e1f5fe",lighten4:"#b3e5fc",lighten3:"#81d4fa",lighten2:"#4fc3f7",lighten1:"#29b6f6",darken1:"#039be5",darken2:"#0288d1",darken3:"#0277bd",darken4:"#01579b",accent1:"#80d8ff",accent2:"#40c4ff",accent3:"#00b0ff",accent4:"#0091ea"},AP={base:"#00bcd4",lighten5:"#e0f7fa",lighten4:"#b2ebf2",lighten3:"#80deea",lighten2:"#4dd0e1",lighten1:"#26c6da",darken1:"#00acc1",darken2:"#0097a7",darken3:"#00838f",darken4:"#006064",accent1:"#84ffff",accent2:"#18ffff",accent3:"#00e5ff",accent4:"#00b8d4"},BP={base:"#009688",lighten5:"#e0f2f1",lighten4:"#b2dfdb",lighten3:"#80cbc4",lighten2:"#4db6ac",lighten1:"#26a69a",darken1:"#00897b",darken2:"#00796b",darken3:"#00695c",darken4:"#004d40",accent1:"#a7ffeb",accent2:"#64ffda",accent3:"#1de9b6",accent4:"#00bfa5"},RP={base:"#4caf50",lighten5:"#e8f5e9",lighten4:"#c8e6c9",lighten3:"#a5d6a7",lighten2:"#81c784",lighten1:"#66bb6a",darken1:"#43a047",darken2:"#388e3c",darken3:"#2e7d32",darken4:"#1b5e20",accent1:"#b9f6ca",accent2:"#69f0ae",accent3:"#00e676",accent4:"#00c853"},OP={base:"#8bc34a",lighten5:"#f1f8e9",lighten4:"#dcedc8",lighten3:"#c5e1a5",lighten2:"#aed581",lighten1:"#9ccc65",darken1:"#7cb342",darken2:"#689f38",darken3:"#558b2f",darken4:"#33691e",accent1:"#ccff90",accent2:"#b2ff59",accent3:"#76ff03",accent4:"#64dd17"},DP={base:"#cddc39",lighten5:"#f9fbe7",lighten4:"#f0f4c3",lighten3:"#e6ee9c",lighten2:"#dce775",lighten1:"#d4e157",darken1:"#c0ca33",darken2:"#afb42b",darken3:"#9e9d24",darken4:"#827717",accent1:"#f4ff81",accent2:"#eeff41",accent3:"#c6ff00",accent4:"#aeea00"},LP={base:"#ffeb3b",lighten5:"#fffde7",lighten4:"#fff9c4",lighten3:"#fff59d",lighten2:"#fff176",lighten1:"#ffee58",darken1:"#fdd835",darken2:"#fbc02d",darken3:"#f9a825",darken4:"#f57f17",accent1:"#ffff8d",accent2:"#ffff00",accent3:"#ffea00",accent4:"#ffd600"},MP={base:"#ffc107",lighten5:"#fff8e1",lighten4:"#ffecb3",lighten3:"#ffe082",lighten2:"#ffd54f",lighten1:"#ffca28",darken1:"#ffb300",darken2:"#ffa000",darken3:"#ff8f00",darken4:"#ff6f00",accent1:"#ffe57f",accent2:"#ffd740",accent3:"#ffc400",accent4:"#ffab00"},FP={base:"#ff9800",lighten5:"#fff3e0",lighten4:"#ffe0b2",lighten3:"#ffcc80",lighten2:"#ffb74d",lighten1:"#ffa726",darken1:"#fb8c00",darken2:"#f57c00",darken3:"#ef6c00",darken4:"#e65100",accent1:"#ffd180",accent2:"#ffab40",accent3:"#ff9100",accent4:"#ff6d00"},$P={base:"#ff5722",lighten5:"#fbe9e7",lighten4:"#ffccbc",lighten3:"#ffab91",lighten2:"#ff8a65",lighten1:"#ff7043",darken1:"#f4511e",darken2:"#e64a19",darken3:"#d84315",darken4:"#bf360c",accent1:"#ff9e80",accent2:"#ff6e40",accent3:"#ff3d00",accent4:"#dd2c00"},NP={base:"#795548",lighten5:"#efebe9",lighten4:"#d7ccc8",lighten3:"#bcaaa4",lighten2:"#a1887f",lighten1:"#8d6e63",darken1:"#6d4c41",darken2:"#5d4037",darken3:"#4e342e",darken4:"#3e2723"},HP={base:"#607d8b",lighten5:"#eceff1",lighten4:"#cfd8dc",lighten3:"#b0bec5",lighten2:"#90a4ae",lighten1:"#78909c",darken1:"#546e7a",darken2:"#455a64",darken3:"#37474f",darken4:"#263238"},zP={base:"#9e9e9e",lighten5:"#fafafa",lighten4:"#f5f5f5",lighten3:"#eeeeee",lighten2:"#e0e0e0",lighten1:"#bdbdbd",darken1:"#757575",darken2:"#616161",darken3:"#424242",darken4:"#212121"},jP={black:"#000000",white:"#ffffff",transparent:"#ffffff00"},UP={red:CP,pink:_P,purple:VP,deepPurple:PP,indigo:IP,blue:TP,lightBlue:EP,cyan:AP,teal:BP,green:RP,lightGreen:OP,lime:DP,yellow:LP,amber:MP,orange:FP,deepOrange:$P,brown:NP,blueGrey:HP,grey:zP,shades:jP},WP=L({swatches:{type:Array,default:()=>GP(UP)},disabled:Boolean,color:Object,maxHeight:[Number,String],...ve()},"VColorPickerSwatches");function GP(e){return Object.keys(e).map(t=>{const n=e[t];return n.base?[n.base,n.darken4,n.darken3,n.darken2,n.darken1,n.lighten1,n.lighten2,n.lighten3,n.lighten4,n.lighten5]:[n.black,n.white,n.transparent]})}const KP=Kt({name:"VColorPickerSwatches",props:WP(),emits:{"update:color":e=>!0},setup(e,t){let{emit:n}=t;return Y(()=>d("div",{class:["v-color-picker-swatches",e.class],style:[{maxHeight:fe(e.maxHeight)},e.style]},[d("div",null,[e.swatches.map(a=>d("div",{class:"v-color-picker-swatches__swatch"},[a.map(l=>{const o=Qt(l),i=Wi(o),r=Qm(o);return d("div",{class:"v-color-picker-swatches__color",onClick:()=>i&&n("update:color",i)},[d("div",{style:{background:r}},[e.color&&In(e.color,i)?d(Fe,{size:"x-small",icon:"$success",color:lw(l,"#FFFFFF")>2?"white":"black"},null):void 0])])})]))])])),{}}}),dr=L({color:String,...Yt(),...ve(),...gt(),...vt(),...Gn(),...kl(),...Xe(),...Pe(),...De()},"VSheet"),Oa=j()({name:"VSheet",props:dr(),setup(e,t){let{slots:n}=t;const{themeClasses:a}=$e(e),{backgroundColorClasses:l,backgroundColorStyles:o}=Ge(N(e,"color")),{borderClasses:i}=ln(e),{dimensionStyles:r}=yt(e),{elevationClasses:s}=kt(e),{locationStyles:u}=Ga(e),{positionClasses:c}=xl(e),{roundedClasses:f}=tt(e);return Y(()=>d(e.tag,{class:["v-sheet",a.value,l.value,i.value,s.value,c.value,f.value,e.class],style:[o.value,r.value,u.value,e.style]},n)),{}}}),YP=L({canvasHeight:{type:[String,Number],default:150},disabled:Boolean,dotSize:{type:[Number,String],default:10},hideCanvas:Boolean,hideSliders:Boolean,hideInputs:Boolean,mode:{type:String,default:"rgba",validator:e=>Object.keys(Ta).includes(e)},modes:{type:Array,default:()=>Object.keys(Ta),validator:e=>Array.isArray(e)&&e.every(t=>Object.keys(Ta).includes(t))},showSwatches:Boolean,swatches:Array,swatchesMaxHeight:{type:[Number,String],default:150},modelValue:{type:[Object,String]},...ct(dr({width:300}),["height","location","minHeight","maxHeight","minWidth","maxWidth"])},"VColorPicker"),qP=Kt({name:"VColorPicker",props:YP(),emits:{"update:modelValue":e=>!0,"update:mode":e=>!0},setup(e){const t=Se(e,"mode"),n=te(null),a=Se(e,"modelValue",void 0,s=>{if(s==null||s==="")return null;let u;try{u=Wi(Qt(s))}catch{return null}return u},s=>s?dP(s,e.modelValue):null),l=b(()=>a.value?{...a.value,h:n.value??a.value.h}:null),{rtlClasses:o}=ht();let i=!0;de(a,s=>{if(!i){i=!0;return}s&&(n.value=s.h)},{immediate:!0});const r=s=>{i=!1,n.value=s.h,a.value=s};return Vt(()=>{e.modes.includes(t.value)||(t.value=e.modes[0])}),et({VSlider:{color:void 0,trackColor:void 0,trackFillColor:void 0}}),Y(()=>{const s=Oa.filterProps(e);return d(Oa,X({rounded:e.rounded,elevation:e.elevation,theme:e.theme,class:["v-color-picker",o.value,e.class],style:[{"--v-color-picker-color-hsv":eh({...l.value??nl,a:1})},e.style]},s,{maxWidth:e.width}),{default:()=>[!e.hideCanvas&&d(uP,{key:"canvas",color:l.value,"onUpdate:color":r,disabled:e.disabled,dotSize:e.dotSize,width:e.width,height:e.canvasHeight},null),(!e.hideSliders||!e.hideInputs)&&d("div",{key:"controls",class:"v-color-picker__controls"},[!e.hideSliders&&d(xP,{key:"preview",color:l.value,"onUpdate:color":r,hideAlpha:!t.value.endsWith("a"),disabled:e.disabled},null),!e.hideInputs&&d(yP,{key:"edit",modes:e.modes,mode:t.value,"onUpdate:mode":u=>t.value=u,color:l.value,"onUpdate:color":r,disabled:e.disabled},null)]),e.showSwatches&&d(KP,{key:"swatches",color:l.value,"onUpdate:color":r,maxHeight:e.swatchesMaxHeight,swatches:e.swatches,disabled:e.disabled},null)]})}),{}}});function XP(e,t,n){if(t==null)return e;if(Array.isArray(t))throw new Error("Multiple matches is not implemented");return typeof t=="number"&&~t?d(ge,null,[d("span",{class:"v-combobox__unmask"},[e.substr(0,t)]),d("span",{class:"v-combobox__mask"},[e.substr(t,n)]),d("span",{class:"v-combobox__unmask"},[e.substr(t+n)])]):e}const JP=L({autoSelectFirst:{type:[Boolean,String]},clearOnSelect:{type:Boolean,default:!0},delimiters:Array,...Do({filterKeys:["title"]}),...wc({hideNoData:!0,returnObject:!0}),...ct(or({modelValue:null,role:"combobox"}),["validationValue","dirty","appendInnerIcon"]),...gn({transition:!1})},"VCombobox"),ZP=j()({name:"VCombobox",props:JP(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:search":e=>!0,"update:menu":e=>!0},setup(e,t){var be;let{emit:n,slots:a}=t;const{t:l}=lt(),o=te(),i=ue(!1),r=ue(!0),s=ue(!1),u=te(),c=te(),f=Se(e,"menu"),v=b({get:()=>f.value,set:Q=>{var _;f.value&&!Q&&((_=u.value)!=null&&_.ΨopenChildren)||(f.value=Q)}}),m=ue(-1);let g=!1;const h=b(()=>{var Q;return(Q=o.value)==null?void 0:Q.color}),y=b(()=>v.value?e.closeText:e.openText),{items:p,transformIn:S,transformOut:C}=hc(e),{textColorClasses:A,textColorStyles:x}=Ct(h),k=Se(e,"modelValue",[],Q=>S(Qe(Q)),Q=>{const _=C(Q);return e.multiple?_:_[0]??null}),V=er(),T=b(()=>!!(e.chips||a.chip)),w=b(()=>T.value||!!a.selection),P=ue(!e.multiple&&!w.value?((be=k.value[0])==null?void 0:be.title)??"":""),E=b({get:()=>P.value,set:Q=>{var _;if(P.value=Q??"",!e.multiple&&!w.value&&(k.value=[ia(e,Q)]),Q&&e.multiple&&((_=e.delimiters)!=null&&_.length)){const B=Q.split(new RegExp(`(?:${e.delimiters.join("|")})+`));B.length>1&&(B.forEach(O=>{O=O.trim(),O&&D(ia(e,O))}),P.value="")}Q||(m.value=-1),r.value=!Q}}),I=b(()=>typeof e.counterValue=="function"?e.counterValue(k.value):typeof e.counterValue=="number"?e.counterValue:e.multiple?k.value.length:E.value.length);de(P,Q=>{g?Oe(()=>g=!1):i.value&&!v.value&&(v.value=!0),n("update:search",Q)}),de(k,Q=>{var _;!e.multiple&&!w.value&&(P.value=((_=Q[0])==null?void 0:_.title)??"")});const{filteredItems:R,getMatches:F}=Lo(e,p,()=>r.value?"":E.value),z=b(()=>e.hideSelected?R.value.filter(Q=>!k.value.some(_=>_.value===Q.value)):R.value),q=b(()=>k.value.map(Q=>Q.value)),ee=b(()=>{var _;return(e.autoSelectFirst===!0||e.autoSelectFirst==="exact"&&E.value===((_=z.value[0])==null?void 0:_.title))&&z.value.length>0&&!r.value&&!s.value}),$=b(()=>e.hideNoData&&!z.value.length||e.readonly||(V==null?void 0:V.isReadonly.value)),Z=te(),{onListScroll:M,onListKeydown:U}=Sc(Z,o);function ne(Q){g=!0,e.openOnClear&&(v.value=!0)}function he(){$.value||(v.value=!0)}function we(Q){$.value||(i.value&&(Q.preventDefault(),Q.stopPropagation()),v.value=!v.value)}function ye(Q){var O;if(T0(Q)||e.readonly||V!=null&&V.isReadonly.value)return;const _=o.value.selectionStart,B=k.value.length;if((m.value>-1||["Enter","ArrowDown","ArrowUp"].includes(Q.key))&&Q.preventDefault(),["Enter","ArrowDown"].includes(Q.key)&&(v.value=!0),["Escape"].includes(Q.key)&&(v.value=!1),["Enter","Escape","Tab"].includes(Q.key)&&(ee.value&&["Enter","Tab"].includes(Q.key)&&!k.value.some(H=>{let{value:W}=H;return W===z.value[0].value})&&D(R.value[0]),r.value=!0),Q.key==="ArrowDown"&&ee.value&&((O=Z.value)==null||O.focus("next")),Q.key==="Enter"&&E.value&&(D(ia(e,E.value)),w.value&&(P.value="")),["Backspace","Delete"].includes(Q.key)){if(!e.multiple&&w.value&&k.value.length>0&&!E.value)return D(k.value[0],!1);if(~m.value){const H=m.value;D(k.value[m.value],!1),m.value=H>=B-1?B-2:H}else Q.key==="Backspace"&&!E.value&&(m.value=B-1)}if(e.multiple){if(Q.key==="ArrowLeft"){if(m.value<0&&_>0)return;const H=m.value>-1?m.value-1:B-1;k.value[H]?m.value=H:(m.value=-1,o.value.setSelectionRange(E.value.length,E.value.length))}if(Q.key==="ArrowRight"){if(m.value<0)return;const H=m.value+1;k.value[H]?m.value=H:(m.value=-1,o.value.setSelectionRange(0,0))}}}function K(){var Q;i.value&&(r.value=!0,(Q=o.value)==null||Q.focus())}function D(Q){let _=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(!(!Q||Q.props.disabled))if(e.multiple){const B=k.value.findIndex(H=>e.valueComparator(H.value,Q.value)),O=_??!~B;if(~B){const H=O?[...k.value,Q]:[...k.value];H.splice(B,1),k.value=H}else O&&(k.value=[...k.value,Q]);e.clearOnSelect&&(E.value="")}else{const B=_!==!1;k.value=B?[Q]:[],P.value=B&&!w.value?Q.title:"",Oe(()=>{v.value=!1,r.value=!0})}}function ie(Q){i.value=!0,setTimeout(()=>{s.value=!0})}function le(Q){s.value=!1}function G(Q){(Q==null||Q===""&&!e.multiple&&!w.value)&&(k.value=[])}return de(i,(Q,_)=>{if(!(Q||Q===_)&&(m.value=-1,v.value=!1,E.value)){if(e.multiple){D(ia(e,E.value));return}if(!w.value)return;k.value.some(B=>{let{title:O}=B;return O===E.value})?P.value="":D(ia(e,E.value))}}),de(v,()=>{if(!e.hideSelected&&v.value&&k.value.length){const Q=z.value.findIndex(_=>k.value.some(B=>e.valueComparator(B.value,_.value)));He&&window.requestAnimationFrame(()=>{var _;Q>=0&&((_=c.value)==null||_.scrollToIndex(Q))})}}),de(()=>e.items,(Q,_)=>{v.value||i.value&&!_.length&&Q.length&&(v.value=!0)}),Y(()=>{const Q=!!(!e.hideNoData||z.value.length||a["prepend-item"]||a["append-item"]||a["no-data"]),_=k.value.length>0,B=Mt.filterProps(e);return d(Mt,X({ref:o},B,{modelValue:E.value,"onUpdate:modelValue":[O=>E.value=O,G],focused:i.value,"onUpdate:focused":O=>i.value=O,validationValue:k.externalValue,counterValue:I.value,dirty:_,class:["v-combobox",{"v-combobox--active-menu":v.value,"v-combobox--chips":!!e.chips,"v-combobox--selection-slot":!!w.value,"v-combobox--selecting-index":m.value>-1,[`v-combobox--${e.multiple?"multiple":"single"}`]:!0},e.class],style:e.style,readonly:e.readonly,placeholder:_?void 0:e.placeholder,"onClick:clear":ne,"onMousedown:control":he,onKeydown:ye}),{...a,default:()=>d(ge,null,[d(bl,X({ref:u,modelValue:v.value,"onUpdate:modelValue":O=>v.value=O,activator:"parent",contentClass:"v-combobox__content",disabled:$.value,eager:e.eager,maxHeight:310,openOnClick:!1,closeOnContentClick:!1,transition:e.transition,onAfterLeave:K},e.menuProps),{default:()=>[Q&&d(rr,X({ref:Z,selected:q.value,selectStrategy:e.multiple?"independent":"single-independent",onMousedown:O=>O.preventDefault(),onKeydown:U,onFocusin:ie,onFocusout:le,onScrollPassive:M,tabindex:"-1","aria-live":"polite",color:e.itemColor??e.color},e.listProps),{default:()=>{var O,H,W;return[(O=a["prepend-item"])==null?void 0:O.call(a),!z.value.length&&!e.hideNoData&&(((H=a["no-data"])==null?void 0:H.call(a))??d(zn,{title:l(e.noDataText)},null)),d(sr,{ref:c,renderless:!0,items:z.value},{default:re=>{var pe;let{item:oe,index:ce,itemRef:se}=re;const ae=X(oe.props,{ref:se,key:ce,active:ee.value&&ce===0?!0:void 0,onClick:()=>D(oe,null)});return((pe=a.item)==null?void 0:pe.call(a,{item:oe,index:ce,props:ae}))??d(zn,X(ae,{role:"option"}),{prepend:xe=>{let{isSelected:ke}=xe;return d(ge,null,[e.multiple&&!e.hideSelected?d(Hn,{key:oe.value,modelValue:ke,ripple:!1,tabindex:"-1"},null):void 0,oe.props.prependAvatar&&d(an,{image:oe.props.prependAvatar},null),oe.props.prependIcon&&d(Fe,{icon:oe.props.prependIcon},null)])},title:()=>{var xe,ke;return r.value?oe.title:XP(oe.title,(xe=F(oe))==null?void 0:xe.title,((ke=E.value)==null?void 0:ke.length)??0)}})}}),(W=a["append-item"])==null?void 0:W.call(a)]}})]}),k.value.map((O,H)=>{function W(se){se.stopPropagation(),se.preventDefault(),D(O,!1)}const re={"onClick:close":W,onKeydown(se){se.key!=="Enter"&&se.key!==" "||(se.preventDefault(),se.stopPropagation(),W(se))},onMousedown(se){se.preventDefault(),se.stopPropagation()},modelValue:!0,"onUpdate:modelValue":void 0},oe=T.value?!!a.chip:!!a.selection,ce=oe?Ui(T.value?a.chip({item:O,index:H,props:re}):a.selection({item:O,index:H})):void 0;if(!(oe&&!ce))return d("div",{key:O.value,class:["v-combobox__selection",H===m.value&&["v-combobox__selection--selected",A.value]],style:H===m.value?x.value:{}},[T.value?a.chip?d(Be,{key:"chip-defaults",defaults:{VChip:{closable:e.closableChips,size:"small",text:O.title}}},{default:()=>[ce]}):d(Vl,X({key:"chip",closable:e.closableChips,size:"small",text:O.title,disabled:O.props.disabled},re),null):ce??d("span",{class:"v-combobox__selection-text"},[O.title,e.multiple&&H!0,save:e=>!0,"update:modelValue":e=>!0},setup(e,t){let{emit:n,slots:a}=t;const l=Se(e,"modelValue"),o=te();nt(()=>{o.value=structuredClone(Ve(l.value))});const{t:i}=lt(),r=b(()=>In(l.value,o.value));function s(){l.value=o.value,n("save",o.value)}function u(){o.value=structuredClone(Ve(l.value)),n("cancel")}let c=!1;return Y(()=>{var v;const f=d(ge,null,[d(Me,{disabled:r.value,variant:"text",color:e.color,onClick:u,text:i(e.cancelText)},null),d(Me,{disabled:r.value,variant:"text",color:e.color,onClick:s,text:i(e.okText)},null)]);return d(ge,null,[(v=a.default)==null?void 0:v.call(a,{model:o,save:s,cancel:u,isPristine:r.value,get actions(){return c=!0,f}}),!c&&f])}),{save:s,cancel:u,isPristine:r}}}),vy=L({expandOnClick:Boolean,showExpand:Boolean,expanded:{type:Array,default:()=>[]}},"DataTable-expand"),my=Symbol.for("vuetify:datatable:expanded");function fr(e){const t=N(e,"expandOnClick"),n=Se(e,"expanded",e.expanded,r=>new Set(r),r=>[...r.values()]);function a(r,s){const u=new Set(n.value);s?u.add(r.value):u.delete(r.value),n.value=u}function l(r){return n.value.has(r.value)}function o(r){a(r,!l(r))}const i={expand:a,expanded:n,expandOnClick:t,isExpanded:l,toggleExpand:o};return We(my,i),i}function hy(){const e=Te(my);if(!e)throw new Error("foo");return e}const _c=L({groupBy:{type:Array,default:()=>[]}},"DataTable-group"),gy=Symbol.for("vuetify:data-table-group");function Vc(e){return{groupBy:Se(e,"groupBy")}}function vr(e){const{groupBy:t,sortBy:n}=e,a=te(new Set),l=b(()=>t.value.map(u=>({...u,order:u.order??!1})).concat(n.value));function o(u){return a.value.has(u.id)}function i(u){const c=new Set(a.value);o(u)?c.delete(u.id):c.add(u.id),a.value=c}function r(u){function c(f){const v=[];for(const m of f.items)"type"in m&&m.type==="group"?v.push(...c(m)):v.push(m);return v}return c({type:"group",items:u,id:"dummy",key:"dummy",value:"dummy",depth:0})}const s={sortByWithGroups:l,toggleGroup:i,opened:a,groupBy:t,extractRows:r,isGroupOpen:o};return We(gy,s),s}function yy(){const e=Te(gy);if(!e)throw new Error("Missing group!");return e}function tI(e,t){if(!e.length)return[];const n=new Map;for(const a of e){const l=to(a.raw,t);n.has(l)||n.set(l,[]),n.get(l).push(a)}return n}function by(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:"root";if(!t.length)return[];const l=tI(e,t[0]),o=[],i=t.slice(1);return l.forEach((r,s)=>{const u=t[0],c=`${a}_${u}_${s}`;o.push({depth:n,id:c,key:u,value:s,items:i.length?by(r,i,n+1,c):r,type:"group"})}),o}function py(e,t){const n=[];for(const a of e)"type"in a&&a.type==="group"?(a.value!=null&&n.push(a),(t.has(a.id)||a.value==null)&&n.push(...py(a.items,t))):n.push(a);return n}function mr(e,t,n){return{flatItems:b(()=>{if(!t.value.length)return e.value;const l=by(e.value,t.value.map(o=>o.key));return py(l,n.value)})}}function hr(e){let{page:t,itemsPerPage:n,sortBy:a,groupBy:l,search:o}=e;const i=at("VDataTable"),r=b(()=>({page:t.value,itemsPerPage:n.value,sortBy:a.value,groupBy:l.value,search:o.value}));let s=null;de(r,()=>{In(s,r.value)||(s&&s.search!==r.value.search&&(t.value=1),i.emit("update:options",r.value),s=r.value)},{deep:!0,immediate:!0})}const Pc=L({page:{type:[Number,String],default:1},itemsPerPage:{type:[Number,String],default:10}},"DataTable-paginate"),Sy=Symbol.for("vuetify:data-table-pagination");function Ic(e){const t=Se(e,"page",void 0,a=>+(a??1)),n=Se(e,"itemsPerPage",void 0,a=>+(a??10));return{page:t,itemsPerPage:n}}function Tc(e){const{page:t,itemsPerPage:n,itemsLength:a}=e,l=b(()=>n.value===-1?0:n.value*(t.value-1)),o=b(()=>n.value===-1?a.value:Math.min(a.value,l.value+n.value)),i=b(()=>n.value===-1||a.value===0?1:Math.ceil(a.value/n.value));nt(()=>{t.value>i.value&&(t.value=i.value)});function r(v){n.value=v,t.value=1}function s(){t.value=ot(t.value+1,1,i.value)}function u(){t.value=ot(t.value-1,1,i.value)}function c(v){t.value=ot(v,1,i.value)}const f={page:t,itemsPerPage:n,startIndex:l,stopIndex:o,pageCount:i,itemsLength:a,nextPage:s,prevPage:u,setPage:c,setItemsPerPage:r};return We(Sy,f),f}function nI(){const e=Te(Sy);if(!e)throw new Error("Missing pagination!");return e}function wy(e){const t=at("usePaginatedItems"),{items:n,startIndex:a,stopIndex:l,itemsPerPage:o}=e,i=b(()=>o.value<=0?n.value:n.value.slice(a.value,l.value));return de(i,r=>{t.emit("update:currentItems",r)}),{paginatedItems:i}}const aI={showSelectAll:!1,allSelected:()=>[],select:e=>{var a;let{items:t,value:n}=e;return new Set(n?[(a=t[0])==null?void 0:a.value]:[])},selectAll:e=>{let{selected:t}=e;return t}},ky={showSelectAll:!0,allSelected:e=>{let{currentPage:t}=e;return t},select:e=>{let{items:t,value:n,selected:a}=e;for(const l of t)n?a.add(l.value):a.delete(l.value);return a},selectAll:e=>{let{value:t,currentPage:n,selected:a}=e;return ky.select({items:n,value:t,selected:a})}},xy={showSelectAll:!0,allSelected:e=>{let{allItems:t}=e;return t},select:e=>{let{items:t,value:n,selected:a}=e;for(const l of t)n?a.add(l.value):a.delete(l.value);return a},selectAll:e=>{let{value:t,allItems:n,selected:a}=e;return xy.select({items:n,value:t,selected:a})}},Cy=L({showSelect:Boolean,selectStrategy:{type:[String,Object],default:"page"},modelValue:{type:Array,default:()=>[]},valueComparator:{type:Function,default:In}},"DataTable-select"),_y=Symbol.for("vuetify:data-table-selection");function gr(e,t){let{allItems:n,currentPage:a}=t;const l=Se(e,"modelValue",e.modelValue,p=>new Set(Qe(p).map(S=>{var C;return((C=n.value.find(A=>e.valueComparator(S,A.value)))==null?void 0:C.value)??S})),p=>[...p.values()]),o=b(()=>n.value.filter(p=>p.selectable)),i=b(()=>a.value.filter(p=>p.selectable)),r=b(()=>{if(typeof e.selectStrategy=="object")return e.selectStrategy;switch(e.selectStrategy){case"single":return aI;case"all":return xy;case"page":default:return ky}});function s(p){return Qe(p).every(S=>l.value.has(S.value))}function u(p){return Qe(p).some(S=>l.value.has(S.value))}function c(p,S){const C=r.value.select({items:p,value:S,selected:new Set(l.value)});l.value=C}function f(p){c([p],!s([p]))}function v(p){const S=r.value.selectAll({value:p,allItems:o.value,currentPage:i.value,selected:new Set(l.value)});l.value=S}const m=b(()=>l.value.size>0),g=b(()=>{const p=r.value.allSelected({allItems:o.value,currentPage:i.value});return!!p.length&&s(p)}),h=b(()=>r.value.showSelectAll),y={toggleSelect:f,select:c,selectAll:v,isSelected:s,isSomeSelected:u,someSelected:m,allSelected:g,showSelectAll:h};return We(_y,y),y}function yr(){const e=Te(_y);if(!e)throw new Error("Missing selection!");return e}const Vy=L({sortBy:{type:Array,default:()=>[]},customKeySort:Object,multiSort:Boolean,mustSort:Boolean},"DataTable-sort"),Py=Symbol.for("vuetify:data-table-sort");function br(e){const t=Se(e,"sortBy"),n=N(e,"mustSort"),a=N(e,"multiSort");return{sortBy:t,mustSort:n,multiSort:a}}function pr(e){const{sortBy:t,mustSort:n,multiSort:a,page:l}=e,o=s=>{if(s.key==null)return;let u=t.value.map(f=>({...f}))??[];const c=u.find(f=>f.key===s.key);c?c.order==="desc"?n.value?c.order="asc":u=u.filter(f=>f.key!==s.key):c.order="desc":a.value?u=[...u,{key:s.key,order:"asc"}]:u=[{key:s.key,order:"asc"}],t.value=u,l&&(l.value=1)};function i(s){return!!t.value.find(u=>u.key===s.key)}const r={sortBy:t,toggleSort:o,isSorted:i};return We(Py,r),r}function Iy(){const e=Te(Py);if(!e)throw new Error("Missing sort!");return e}function Ec(e,t,n,a){const l=lt();return{sortedItems:b(()=>{var i,r;return!n.value.length||e.disableSort?t.value:lI(t.value,n.value,l.current.value,{transform:a==null?void 0:a.transform,sortFunctions:{...e.customKeySort,...(i=a==null?void 0:a.sortFunctions)==null?void 0:i.value},sortRawFunctions:(r=a==null?void 0:a.sortRawFunctions)==null?void 0:r.value})})}}function lI(e,t,n,a){const l=new Intl.Collator(n,{sensitivity:"accent",usage:"sort"});return e.map(i=>[i,a!=null&&a.transform?a.transform(i):i]).sort((i,r)=>{var s,u;for(let c=0;cS!=null?S.toString().toLocaleLowerCase():S),g!==h)return Yo(g)&&Yo(h)?0:Yo(g)?-1:Yo(h)?1:!isNaN(g)&&!isNaN(h)?Number(g)-Number(h):l.compare(g,h)}}return 0}).map(i=>{let[r]=i;return r})}const oI=L({items:{type:Array,default:()=>[]},itemValue:{type:[String,Array,Function],default:"id"},itemSelectable:{type:[String,Array,Function],default:null},returnObject:Boolean},"DataIterator-items");function iI(e,t){const n=e.returnObject?t:dt(t,e.itemValue),a=dt(t,e.itemSelectable,!0);return{type:"item",value:n,selectable:a,raw:t}}function rI(e,t){const n=[];for(const a of t)n.push(iI(e,a));return n}function sI(e){return{items:b(()=>rI(e,e.items))}}const uI=L({search:String,loading:Boolean,...ve(),...oI(),...Cy(),...Vy(),...Pc({itemsPerPage:5}),...vy(),..._c(),...Do(),...Pe(),...gn({transition:{component:fo,hideOnLeave:!0}})},"VDataIterator"),cI=j()({name:"VDataIterator",props:uI(),emits:{"update:modelValue":e=>!0,"update:groupBy":e=>!0,"update:page":e=>!0,"update:itemsPerPage":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:expanded":e=>!0,"update:currentItems":e=>!0},setup(e,t){let{slots:n}=t;const a=Se(e,"groupBy"),l=N(e,"search"),{items:o}=sI(e),{filteredItems:i}=Lo(e,o,l,{transform:U=>U.raw}),{sortBy:r,multiSort:s,mustSort:u}=br(e),{page:c,itemsPerPage:f}=Ic(e),{toggleSort:v}=pr({sortBy:r,multiSort:s,mustSort:u,page:c}),{sortByWithGroups:m,opened:g,extractRows:h,isGroupOpen:y,toggleGroup:p}=vr({groupBy:a,sortBy:r}),{sortedItems:S}=Ec(e,i,m,{transform:U=>U.raw}),{flatItems:C}=mr(S,a,g),A=b(()=>C.value.length),{startIndex:x,stopIndex:k,pageCount:V,prevPage:T,nextPage:w,setItemsPerPage:P,setPage:E}=Tc({page:c,itemsPerPage:f,itemsLength:A}),{paginatedItems:I}=wy({items:C,startIndex:x,stopIndex:k,itemsPerPage:f}),R=b(()=>h(I.value)),{isSelected:F,select:z,selectAll:q,toggleSelect:ee}=gr(e,{allItems:o,currentPage:R}),{isExpanded:$,toggleExpand:Z}=fr(e);hr({page:c,itemsPerPage:f,sortBy:r,groupBy:a,search:l});const M=b(()=>({page:c.value,itemsPerPage:f.value,sortBy:r.value,pageCount:V.value,toggleSort:v,prevPage:T,nextPage:w,setPage:E,setItemsPerPage:P,isSelected:F,select:z,selectAll:q,toggleSelect:ee,isExpanded:$,toggleExpand:Z,isGroupOpen:y,toggleGroup:p,items:R.value,groupedItems:I.value}));return Y(()=>d(e.tag,{class:["v-data-iterator",{"v-data-iterator--loading":e.loading},e.class],style:e.style},{default:()=>{var U,ne;return[(U=n.header)==null?void 0:U.call(n,M.value),d(Rt,{transition:e.transition},{default:()=>{var he,we;return[e.loading?d(Vo,{key:"loader",name:"v-data-iterator",active:!0},{default:ye=>{var K;return(K=n.loader)==null?void 0:K.call(n,ye)}}):d("div",{key:"items"},[I.value.length?(we=n.default)==null?void 0:we.call(n,M.value):(he=n["no-data"])==null?void 0:he.call(n)])]}}),(ne=n.footer)==null?void 0:ne.call(n,M.value)]}})),{}}});function dI(){const e=te([]);nm(()=>e.value=[]);function t(n,a){e.value[a]=n}return{refs:e,updateRef:t}}const fI=L({activeColor:String,start:{type:[Number,String],default:1},modelValue:{type:Number,default:e=>e.start},disabled:Boolean,length:{type:[Number,String],default:1,validator:e=>e%1===0},totalVisible:[Number,String],firstIcon:{type:_e,default:"$first"},prevIcon:{type:_e,default:"$prev"},nextIcon:{type:_e,default:"$next"},lastIcon:{type:_e,default:"$last"},ariaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.root"},pageAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.page"},currentPageAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.currentPage"},firstAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.first"},previousAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.previous"},nextAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.next"},lastAriaLabel:{type:String,default:"$vuetify.pagination.ariaLabel.last"},ellipsis:{type:String,default:"..."},showFirstLastPage:Boolean,...Yt(),...ve(),...bt(),...vt(),...Xe(),...An(),...Pe({tag:"nav"}),...De(),...on({variant:"text"})},"VPagination"),Us=j()({name:"VPagination",props:fI(),emits:{"update:modelValue":e=>!0,first:e=>!0,prev:e=>!0,next:e=>!0,last:e=>!0},setup(e,t){let{slots:n,emit:a}=t;const l=Se(e,"modelValue"),{t:o,n:i}=lt(),{isRtl:r}=ht(),{themeClasses:s}=$e(e),{width:u}=sn(),c=ue(-1);et(void 0,{scoped:!0});const{resizeRef:f}=fn(T=>{if(!T.length)return;const{target:w,contentRect:P}=T[0],E=w.querySelector(".v-pagination__list > *");if(!E)return;const I=P.width,R=E.offsetWidth+parseFloat(getComputedStyle(E).marginRight)*2;c.value=h(I,R)}),v=b(()=>parseInt(e.length,10)),m=b(()=>parseInt(e.start,10)),g=b(()=>e.totalVisible!=null?parseInt(e.totalVisible,10):c.value>=0?c.value:h(u.value,58));function h(T,w){const P=e.showFirstLastPage?5:3;return Math.max(0,Math.floor(+((T-w*P)/w).toFixed(2)))}const y=b(()=>{if(v.value<=0||isNaN(v.value)||v.value>Number.MAX_SAFE_INTEGER)return[];if(g.value<=0)return[];if(g.value===1)return[l.value];if(v.value<=g.value)return xn(v.value,m.value);const T=g.value%2===0,w=T?g.value/2:Math.floor(g.value/2),P=T?w:w+1,E=v.value-w;if(P-l.value>=0)return[...xn(Math.max(1,g.value-1),m.value),e.ellipsis,v.value];if(l.value-E>=(T?1:0)){const I=g.value-1,R=v.value-I+m.value;return[m.value,e.ellipsis,...xn(I,R)]}else{const I=Math.max(1,g.value-3),R=I===1?l.value:l.value-Math.ceil(I/2)+m.value;return[m.value,e.ellipsis,...xn(I,R),e.ellipsis,v.value]}});function p(T,w,P){T.preventDefault(),l.value=w,P&&a(P,w)}const{refs:S,updateRef:C}=dI();et({VPaginationBtn:{color:N(e,"color"),border:N(e,"border"),density:N(e,"density"),size:N(e,"size"),variant:N(e,"variant"),rounded:N(e,"rounded"),elevation:N(e,"elevation")}});const A=b(()=>y.value.map((T,w)=>{const P=E=>C(E,w);if(typeof T=="string")return{isActive:!1,key:`ellipsis-${w}`,page:T,props:{ref:P,ellipsis:!0,icon:!0,disabled:!0}};{const E=T===l.value;return{isActive:E,key:T,page:i(T),props:{ref:P,ellipsis:!1,icon:!0,disabled:!!e.disabled||+e.length<2,color:E?e.activeColor:e.color,"aria-current":E,"aria-label":o(E?e.currentPageAriaLabel:e.pageAriaLabel,T),onClick:I=>p(I,T)}}}})),x=b(()=>{const T=!!e.disabled||l.value<=m.value,w=!!e.disabled||l.value>=m.value+v.value-1;return{first:e.showFirstLastPage?{icon:r.value?e.lastIcon:e.firstIcon,onClick:P=>p(P,m.value,"first"),disabled:T,"aria-label":o(e.firstAriaLabel),"aria-disabled":T}:void 0,prev:{icon:r.value?e.nextIcon:e.prevIcon,onClick:P=>p(P,l.value-1,"prev"),disabled:T,"aria-label":o(e.previousAriaLabel),"aria-disabled":T},next:{icon:r.value?e.prevIcon:e.nextIcon,onClick:P=>p(P,l.value+1,"next"),disabled:w,"aria-label":o(e.nextAriaLabel),"aria-disabled":w},last:e.showFirstLastPage?{icon:r.value?e.firstIcon:e.lastIcon,onClick:P=>p(P,m.value+v.value-1,"last"),disabled:w,"aria-label":o(e.lastAriaLabel),"aria-disabled":w}:void 0}});function k(){var w;const T=l.value-m.value;(w=S.value[T])==null||w.$el.focus()}function V(T){T.key===hs.left&&!e.disabled&&l.value>+e.start?(l.value=l.value-1,Oe(k)):T.key===hs.right&&!e.disabled&&l.valued(e.tag,{ref:f,class:["v-pagination",s.value,e.class],style:e.style,role:"navigation","aria-label":o(e.ariaLabel),onKeydown:V,"data-test":"v-pagination-root"},{default:()=>[d("ul",{class:"v-pagination__list"},[e.showFirstLastPage&&d("li",{key:"first",class:"v-pagination__first","data-test":"v-pagination-first"},[n.first?n.first(x.value.first):d(Me,X({_as:"VPaginationBtn"},x.value.first),null)]),d("li",{key:"prev",class:"v-pagination__prev","data-test":"v-pagination-prev"},[n.prev?n.prev(x.value.prev):d(Me,X({_as:"VPaginationBtn"},x.value.prev),null)]),A.value.map((T,w)=>d("li",{key:T.key,class:["v-pagination__item",{"v-pagination__item--is-active":T.isActive}],"data-test":"v-pagination-item"},[n.item?n.item(T):d(Me,X({_as:"VPaginationBtn"},T.props),{default:()=>[T.page]})])),d("li",{key:"next",class:"v-pagination__next","data-test":"v-pagination-next"},[n.next?n.next(x.value.next):d(Me,X({_as:"VPaginationBtn"},x.value.next),null)]),e.showFirstLastPage&&d("li",{key:"last",class:"v-pagination__last","data-test":"v-pagination-last"},[n.last?n.last(x.value.last):d(Me,X({_as:"VPaginationBtn"},x.value.last),null)])])]})),{}}}),Ac=L({prevIcon:{type:String,default:"$prev"},nextIcon:{type:String,default:"$next"},firstIcon:{type:String,default:"$first"},lastIcon:{type:String,default:"$last"},itemsPerPageText:{type:String,default:"$vuetify.dataFooter.itemsPerPageText"},pageText:{type:String,default:"$vuetify.dataFooter.pageText"},firstPageLabel:{type:String,default:"$vuetify.dataFooter.firstPage"},prevPageLabel:{type:String,default:"$vuetify.dataFooter.prevPage"},nextPageLabel:{type:String,default:"$vuetify.dataFooter.nextPage"},lastPageLabel:{type:String,default:"$vuetify.dataFooter.lastPage"},itemsPerPageOptions:{type:Array,default:()=>[{value:10,title:"10"},{value:25,title:"25"},{value:50,title:"50"},{value:100,title:"100"},{value:-1,title:"$vuetify.dataFooter.itemsPerPageAll"}]},showCurrentPage:Boolean},"VDataTableFooter"),yo=j()({name:"VDataTableFooter",props:Ac(),setup(e,t){let{slots:n}=t;const{t:a}=lt(),{page:l,pageCount:o,startIndex:i,stopIndex:r,itemsLength:s,itemsPerPage:u,setItemsPerPage:c}=nI(),f=b(()=>e.itemsPerPageOptions.map(v=>typeof v=="number"?{value:v,title:v===-1?a("$vuetify.dataFooter.itemsPerPageAll"):String(v)}:{...v,title:isNaN(Number(v.title))?a(v.title):v.title}));return Y(()=>{var m;const v=Us.filterProps(e);return d("div",{class:"v-data-table-footer"},[(m=n.prepend)==null?void 0:m.call(n),d("div",{class:"v-data-table-footer__items-per-page"},[d("span",null,[a(e.itemsPerPageText)]),d(kc,{items:f.value,modelValue:u.value,"onUpdate:modelValue":g=>c(Number(g)),density:"compact",variant:"outlined","hide-details":!0},null)]),d("div",{class:"v-data-table-footer__info"},[d("div",null,[a(e.pageText,s.value?i.value+1:0,r.value,s.value)])]),d("div",{class:"v-data-table-footer__pagination"},[d(Us,X({modelValue:l.value,"onUpdate:modelValue":g=>l.value=g,density:"comfortable","first-aria-label":e.firstPageLabel,"last-aria-label":e.lastPageLabel,length:o.value,"next-aria-label":e.nextPageLabel,"previous-aria-label":e.prevPageLabel,rounded:!0,"show-first-last-page":!0,"total-visible":e.showCurrentPage?1:0,variant:"plain"},v),null)])])}),{}}}),Pi=uw({align:{type:String,default:"start"},fixed:Boolean,fixedOffset:[Number,String],height:[Number,String],lastFixed:Boolean,noPadding:Boolean,tag:String,width:[Number,String],maxWidth:[Number,String],nowrap:Boolean},(e,t)=>{let{slots:n}=t;const a=e.tag??"td";return d(a,{class:["v-data-table__td",{"v-data-table-column--fixed":e.fixed,"v-data-table-column--last-fixed":e.lastFixed,"v-data-table-column--no-padding":e.noPadding,"v-data-table-column--nowrap":e.nowrap},`v-data-table-column--align-${e.align}`],style:{height:fe(e.height),width:fe(e.width),maxWidth:fe(e.maxWidth),left:fe(e.fixedOffset||null)}},{default:()=>{var l;return[(l=n.default)==null?void 0:l.call(n)]}})}),vI=L({headers:Array},"DataTable-header"),Ty=Symbol.for("vuetify:data-table-headers"),Ey={title:"",sortable:!1},mI={...Ey,width:48};function hI(){const t=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).map(n=>({element:n,priority:0}));return{enqueue:(n,a)=>{let l=!1;for(let o=0;oa){t.splice(o,0,{element:n,priority:a}),l=!0;break}l||t.push({element:n,priority:a})},size:()=>t.length,count:()=>{let n=0;if(!t.length)return 0;const a=Math.floor(t[0].priority);for(let l=0;lt.shift()}}function Ws(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];if(!e.children)t.push(e);else for(const n of e.children)Ws(n,t);return t}function Ay(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:new Set;for(const n of e)n.key&&t.add(n.key),n.children&&Ay(n.children,t);return t}function gI(e){if(e.key){if(e.key==="data-table-group")return Ey;if(["data-table-expand","data-table-select"].includes(e.key))return mI}}function Bc(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return e.children?Math.max(t,...e.children.map(n=>Bc(n,t+1))):t}function yI(e){let t=!1;function n(o){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(o)if(i&&(o.fixed=!0),o.fixed)if(o.children)for(let r=o.children.length-1;r>=0;r--)n(o.children[r],!0);else t?isNaN(+o.width)&&(`${o.key}`,void 0):o.lastFixed=!0,t=!0;else if(o.children)for(let r=o.children.length-1;r>=0;r--)n(o.children[r]);else t=!1}for(let o=e.length-1;o>=0;o--)n(e[o]);function a(o){let i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(!o)return i;if(o.children){o.fixedOffset=i;for(const r of o.children)i=a(r,i)}else o.fixed&&(o.fixedOffset=i,i+=parseFloat(o.width||"0")||0);return i}let l=0;for(const o of e)l=a(o,l)}function bI(e,t){const n=[];let a=0;const l=hI(e);for(;l.size()>0;){let i=l.count();const r=[];let s=1;for(;i>0;){const{element:u,priority:c}=l.dequeue(),f=t-a-Bc(u);if(r.push({...u,rowspan:f??1,colspan:u.children?Ws(u).length:1}),u.children)for(const v of u.children){const m=c%1+s/Math.pow(10,a+2);l.enqueue(v,a+f+m)}s+=1,i-=1}a+=1,n.push(r)}return{columns:e.map(i=>Ws(i)).flat(),headers:n}}function By(e){const t=[];for(const n of e){const a={...gI(n),...n},l=a.key??(typeof a.value=="string"?a.value:null),o=a.value??l??null,i={...a,key:l,value:o,sortable:a.sortable??(a.key!=null||!!a.sort),children:a.children?By(a.children):void 0};t.push(i)}return t}function Rc(e,t){const n=te([]),a=te([]),l=te({}),o=te({}),i=te({});nt(()=>{var h,y,p;const u=(e.headers||Object.keys(e.items[0]??{}).map(S=>({key:S,title:Vn(S)}))).slice(),c=Ay(u);(h=t==null?void 0:t.groupBy)!=null&&h.value.length&&!c.has("data-table-group")&&u.unshift({key:"data-table-group",title:"Group"}),(y=t==null?void 0:t.showSelect)!=null&&y.value&&!c.has("data-table-select")&&u.unshift({key:"data-table-select"}),(p=t==null?void 0:t.showExpand)!=null&&p.value&&!c.has("data-table-expand")&&u.push({key:"data-table-expand"});const f=By(u);yI(f);const v=Math.max(...f.map(S=>Bc(S)))+1,m=bI(f,v);n.value=m.headers,a.value=m.columns;const g=m.headers.flat(1);for(const S of g)S.key&&(S.sortable&&(S.sort&&(l.value[S.key]=S.sort),S.sortRaw&&(o.value[S.key]=S.sortRaw)),S.filter&&(i.value[S.key]=S.filter))});const r={headers:n,columns:a,sortFunctions:l,sortRawFunctions:o,filterFunctions:i};return We(Ty,r),r}function Sr(){const e=Te(Ty);if(!e)throw new Error("Missing headers!");return e}const Ry=L({color:String,sticky:Boolean,disableSort:Boolean,multiSort:Boolean,sortAscIcon:{type:_e,default:"$sortAsc"},sortDescIcon:{type:_e,default:"$sortDesc"},headerProps:{type:Object},...Ka(),...Xi()},"VDataTableHeaders"),Da=j()({name:"VDataTableHeaders",props:Ry(),setup(e,t){let{slots:n}=t;const{t:a}=lt(),{toggleSort:l,sortBy:o,isSorted:i}=Iy(),{someSelected:r,allSelected:s,selectAll:u,showSelectAll:c}=yr(),{columns:f,headers:v}=Sr(),{loaderClasses:m}=_o(e);function g(T,w){if(!(!e.sticky&&!T.fixed))return{position:"sticky",left:T.fixed?fe(T.fixedOffset):void 0,top:e.sticky?`calc(var(--v-table-header-height) * ${w})`:void 0}}function h(T){const w=o.value.find(P=>P.key===T.key);return w?w.order==="asc"?e.sortAscIcon:e.sortDescIcon:e.sortAscIcon}const{backgroundColorClasses:y,backgroundColorStyles:p}=Ge(e,"color"),{displayClasses:S,mobile:C}=sn(e),A=b(()=>({headers:v.value,columns:f.value,toggleSort:l,isSorted:i,sortBy:o.value,someSelected:r.value,allSelected:s.value,selectAll:u,getSortIcon:h})),x=b(()=>["v-data-table__th",{"v-data-table__th--sticky":e.sticky},S.value,m.value]),k=T=>{let{column:w,x:P,y:E}=T;const I=w.key==="data-table-select"||w.key==="data-table-expand",R=X(e.headerProps??{},w.headerProps??{});return d(Pi,X({tag:"th",align:w.align,class:[{"v-data-table__th--sortable":w.sortable&&!e.disableSort,"v-data-table__th--sorted":i(w),"v-data-table__th--fixed":w.fixed},...x.value],style:{width:fe(w.width),minWidth:fe(w.minWidth),maxWidth:fe(w.maxWidth),...g(w,E)},colspan:w.colspan,rowspan:w.rowspan,onClick:w.sortable?()=>l(w):void 0,fixed:w.fixed,nowrap:w.nowrap,lastFixed:w.lastFixed,noPadding:I},R),{default:()=>{var q;const F=`header.${w.key}`,z={column:w,selectAll:u,isSorted:i,toggleSort:l,sortBy:o.value,someSelected:r.value,allSelected:s.value,getSortIcon:h};return n[F]?n[F](z):w.key==="data-table-select"?((q=n["header.data-table-select"])==null?void 0:q.call(n,z))??(c.value&&d(Hn,{modelValue:s.value,indeterminate:r.value&&!s.value,"onUpdate:modelValue":u},null)):d("div",{class:"v-data-table-header__content"},[d("span",null,[w.title]),w.sortable&&!e.disableSort&&d(Fe,{key:"icon",class:"v-data-table-header__sort-icon",icon:h(w)},null),e.multiSort&&i(w)&&d("div",{key:"badge",class:["v-data-table-header__sort-badge",...y.value],style:p.value},[o.value.findIndex(ee=>ee.key===w.key)+1])])}})},V=()=>{const T=X(e.headerProps??{}??{}),w=b(()=>f.value.filter(E=>(E==null?void 0:E.sortable)&&!e.disableSort)),P=b(()=>{if(f.value.find(I=>I.key==="data-table-select")!=null)return s.value?"$checkboxOn":r.value?"$checkboxIndeterminate":"$checkboxOff"});return d(Pi,X({tag:"th",class:[...x.value],colspan:v.value.length+1},T),{default:()=>[d("div",{class:"v-data-table-header__content"},[d(kc,{chips:!0,class:"v-data-table__td-sort-select",clearable:!0,density:"default",items:w.value,label:a("$vuetify.dataTable.sortBy"),multiple:e.multiSort,variant:"underlined","onClick:clear":()=>o.value=[],appendIcon:P.value,"onClick:append":()=>u(!s.value)},{...n,chip:E=>{var I;return d(Vl,{onClick:(I=E.item.raw)!=null&&I.sortable?()=>l(E.item.raw):void 0,onMousedown:R=>{R.preventDefault(),R.stopPropagation()}},{default:()=>[E.item.title,d(Fe,{class:["v-data-table__td-sort-icon",i(E.item.raw)&&"v-data-table__td-sort-icon-active"],icon:h(E.item.raw),size:"small"},null)]})}})])]})};Y(()=>C.value?d("tr",null,[d(V,null,null)]):d(ge,null,[n.headers?n.headers(A.value):v.value.map((T,w)=>d("tr",null,[T.map((P,E)=>d(k,{column:P,x:E,y:w},null))])),e.loading&&d("tr",{class:"v-data-table-progress"},[d("th",{colspan:f.value.length},[d(Vo,{name:"v-data-table-progress",absolute:!0,active:!0,color:typeof e.loading=="boolean"?void 0:e.loading,indeterminate:!0},{default:n.loader})])])]))}}),pI=L({item:{type:Object,required:!0}},"VDataTableGroupHeaderRow"),SI=j()({name:"VDataTableGroupHeaderRow",props:pI(),setup(e,t){let{slots:n}=t;const{isGroupOpen:a,toggleGroup:l,extractRows:o}=yy(),{isSelected:i,isSomeSelected:r,select:s}=yr(),{columns:u}=Sr(),c=b(()=>o([e.item]));return()=>d("tr",{class:"v-data-table-group-header-row",style:{"--v-data-table-group-header-row-depth":e.item.depth}},[u.value.map(f=>{var v,m;if(f.key==="data-table-group"){const g=a(e.item)?"$expand":"$next",h=()=>l(e.item);return((v=n["data-table-group"])==null?void 0:v.call(n,{item:e.item,count:c.value.length,props:{icon:g,onClick:h}}))??d(Pi,{class:"v-data-table-group-header-row__column"},{default:()=>[d(Me,{size:"small",variant:"text",icon:g,onClick:h},null),d("span",null,[e.item.value]),d("span",null,[mt("("),c.value.length,mt(")")])]})}if(f.key==="data-table-select"){const g=i(c.value),h=r(c.value)&&!g,y=p=>s(c.value,p);return((m=n["data-table-select"])==null?void 0:m.call(n,{props:{modelValue:g,indeterminate:h,"onUpdate:modelValue":y}}))??d("td",null,[d(Hn,{modelValue:g,indeterminate:h,"onUpdate:modelValue":y},null)])}return d("td",null,null)})])}}),wI=L({index:Number,item:Object,cellProps:[Object,Function],onClick:St(),onContextmenu:St(),onDblclick:St(),...Ka()},"VDataTableRow"),Oc=j()({name:"VDataTableRow",props:wI(),setup(e,t){let{slots:n}=t;const{displayClasses:a,mobile:l}=sn(e,"v-data-table__tr"),{isSelected:o,toggleSelect:i,someSelected:r,allSelected:s,selectAll:u}=yr(),{isExpanded:c,toggleExpand:f}=hy(),{toggleSort:v,sortBy:m,isSorted:g}=Iy(),{columns:h}=Sr();Y(()=>d("tr",{class:["v-data-table__tr",{"v-data-table__tr--clickable":!!(e.onClick||e.onContextmenu||e.onDblclick)},a.value],onClick:e.onClick,onContextmenu:e.onContextmenu,onDblclick:e.onDblclick},[e.item&&h.value.map((y,p)=>{const S=e.item,C=`item.${y.key}`,A=`header.${y.key}`,x={index:e.index,item:S.raw,internalItem:S,value:to(S.columns,y.key),column:y,isSelected:o,toggleSelect:i,isExpanded:c,toggleExpand:f},k={column:y,selectAll:u,isSorted:g,toggleSort:v,sortBy:m.value,someSelected:r.value,allSelected:s.value,getSortIcon:()=>""},V=typeof e.cellProps=="function"?e.cellProps({index:x.index,item:x.item,internalItem:x.internalItem,value:x.value,column:y}):e.cellProps,T=typeof y.cellProps=="function"?y.cellProps({index:x.index,item:x.item,internalItem:x.internalItem,value:x.value}):y.cellProps;return d(Pi,X({align:y.align,class:{"v-data-table__td--expanded-row":y.key==="data-table-expand","v-data-table__td--select-row":y.key==="data-table-select"},fixed:y.fixed,fixedOffset:y.fixedOffset,lastFixed:y.lastFixed,maxWidth:l.value?void 0:y.maxWidth,noPadding:y.key==="data-table-select"||y.key==="data-table-expand",nowrap:y.nowrap,width:l.value?void 0:y.width},V,T),{default:()=>{var P,E,I,R,F;if(n[C]&&!l.value)return(P=n[C])==null?void 0:P.call(n,x);if(y.key==="data-table-select")return((E=n["item.data-table-select"])==null?void 0:E.call(n,x))??d(Hn,{disabled:!S.selectable,modelValue:o([S]),onClick:eo(()=>i(S),["stop"])},null);if(y.key==="data-table-expand")return((I=n["item.data-table-expand"])==null?void 0:I.call(n,x))??d(Me,{icon:c(S)?"$collapse":"$expand",size:"small",variant:"text",onClick:eo(()=>f(S),["stop"])},null);const w=It(x.value);return l.value?d(ge,null,[d("div",{class:"v-data-table__td-title"},[((R=n[A])==null?void 0:R.call(n,k))??y.title]),d("div",{class:"v-data-table__td-value"},[((F=n[C])==null?void 0:F.call(n,x))??w])]):w}})})]))}}),Oy=L({loading:[Boolean,String],loadingText:{type:String,default:"$vuetify.dataIterator.loadingText"},hideNoData:Boolean,items:{type:Array,default:()=>[]},noDataText:{type:String,default:"$vuetify.noDataText"},rowProps:[Object,Function],cellProps:[Object,Function],...Ka()},"VDataTableRows"),La=j()({name:"VDataTableRows",inheritAttrs:!1,props:Oy(),setup(e,t){let{attrs:n,slots:a}=t;const{columns:l}=Sr(),{expandOnClick:o,toggleExpand:i,isExpanded:r}=hy(),{isSelected:s,toggleSelect:u}=yr(),{toggleGroup:c,isGroupOpen:f}=yy(),{t:v}=lt(),{mobile:m}=sn(e);return Y(()=>{var g,h;return e.loading&&(!e.items.length||a.loading)?d("tr",{class:"v-data-table-rows-loading",key:"loading"},[d("td",{colspan:l.value.length},[((g=a.loading)==null?void 0:g.call(a))??v(e.loadingText)])]):!e.loading&&!e.items.length&&!e.hideNoData?d("tr",{class:"v-data-table-rows-no-data",key:"no-data"},[d("td",{colspan:l.value.length},[((h=a["no-data"])==null?void 0:h.call(a))??v(e.noDataText)])]):d(ge,null,[e.items.map((y,p)=>{var A;if(y.type==="group"){const x={index:p,item:y,columns:l.value,isExpanded:r,toggleExpand:i,isSelected:s,toggleSelect:u,toggleGroup:c,isGroupOpen:f};return a["group-header"]?a["group-header"](x):d(SI,X({key:`group-header_${y.id}`,item:y},sf(n,":group-header",()=>x)),a)}const S={index:p,item:y.raw,internalItem:y,columns:l.value,isExpanded:r,toggleExpand:i,isSelected:s,toggleSelect:u},C={...S,props:X({key:`item_${y.key??y.index}`,onClick:o.value?()=>{i(y)}:void 0,index:p,item:y,cellProps:e.cellProps,mobile:m.value},sf(n,":row",()=>S),typeof e.rowProps=="function"?e.rowProps({item:S.item,index:S.index,internalItem:S.internalItem}):e.rowProps)};return d(ge,{key:C.props.key},[a.item?a.item(C):d(Oc,C.props,a),r(y)&&((A=a["expanded-row"])==null?void 0:A.call(a,S))])})])}),{}}}),Dy=L({fixedHeader:Boolean,fixedFooter:Boolean,height:[Number,String],hover:Boolean,...ve(),...bt(),...Pe(),...De()},"VTable"),Ma=j()({name:"VTable",props:Dy(),setup(e,t){let{slots:n,emit:a}=t;const{themeClasses:l}=$e(e),{densityClasses:o}=Dt(e);return Y(()=>d(e.tag,{class:["v-table",{"v-table--fixed-height":!!e.height,"v-table--fixed-header":e.fixedHeader,"v-table--fixed-footer":e.fixedFooter,"v-table--has-top":!!n.top,"v-table--has-bottom":!!n.bottom,"v-table--hover":e.hover},l.value,o.value,e.class],style:e.style},{default:()=>{var i,r,s;return[(i=n.top)==null?void 0:i.call(n),n.default?d("div",{class:"v-table__wrapper",style:{height:fe(e.height)}},[d("table",null,[n.default()])]):(r=n.wrapper)==null?void 0:r.call(n),(s=n.bottom)==null?void 0:s.call(n)]}})),{}}}),kI=L({items:{type:Array,default:()=>[]},itemValue:{type:[String,Array,Function],default:"id"},itemSelectable:{type:[String,Array,Function],default:null},rowProps:[Object,Function],cellProps:[Object,Function],returnObject:Boolean},"DataTable-items");function xI(e,t,n,a){const l=e.returnObject?t:dt(t,e.itemValue),o=dt(t,e.itemSelectable,!0),i=a.reduce((r,s)=>(s.key!=null&&(r[s.key]=dt(t,s.value)),r),{});return{type:"item",key:e.returnObject?dt(t,e.itemValue):l,index:n,value:l,selectable:o,columns:i,raw:t}}function CI(e,t,n){return t.map((a,l)=>xI(e,a,l,n))}function Dc(e,t){return{items:b(()=>CI(e,e.items,t.value))}}const Lc=L({...Oy(),hideDefaultBody:Boolean,hideDefaultFooter:Boolean,hideDefaultHeader:Boolean,width:[String,Number],search:String,...vy(),..._c(),...vI(),...kI(),...Cy(),...Vy(),...Ry(),...Dy()},"DataTable"),_I=L({...Pc(),...Lc(),...Do(),...Ac()},"VDataTable"),VI=j()({name:"VDataTable",props:_I(),emits:{"update:modelValue":e=>!0,"update:page":e=>!0,"update:itemsPerPage":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:groupBy":e=>!0,"update:expanded":e=>!0,"update:currentItems":e=>!0},setup(e,t){let{attrs:n,slots:a}=t;const{groupBy:l}=Vc(e),{sortBy:o,multiSort:i,mustSort:r}=br(e),{page:s,itemsPerPage:u}=Ic(e),{columns:c,headers:f,sortFunctions:v,sortRawFunctions:m,filterFunctions:g}=Rc(e,{groupBy:l,showSelect:N(e,"showSelect"),showExpand:N(e,"showExpand")}),{items:h}=Dc(e,c),y=N(e,"search"),{filteredItems:p}=Lo(e,h,y,{transform:K=>K.columns,customKeyFilter:g}),{toggleSort:S}=pr({sortBy:o,multiSort:i,mustSort:r,page:s}),{sortByWithGroups:C,opened:A,extractRows:x,isGroupOpen:k,toggleGroup:V}=vr({groupBy:l,sortBy:o}),{sortedItems:T}=Ec(e,p,C,{transform:K=>K.columns,sortFunctions:v,sortRawFunctions:m}),{flatItems:w}=mr(T,l,A),P=b(()=>w.value.length),{startIndex:E,stopIndex:I,pageCount:R,setItemsPerPage:F}=Tc({page:s,itemsPerPage:u,itemsLength:P}),{paginatedItems:z}=wy({items:w,startIndex:E,stopIndex:I,itemsPerPage:u}),q=b(()=>x(z.value)),{isSelected:ee,select:$,selectAll:Z,toggleSelect:M,someSelected:U,allSelected:ne}=gr(e,{allItems:h,currentPage:q}),{isExpanded:he,toggleExpand:we}=fr(e);hr({page:s,itemsPerPage:u,sortBy:o,groupBy:l,search:y}),et({VDataTableRows:{hideNoData:N(e,"hideNoData"),noDataText:N(e,"noDataText"),loading:N(e,"loading"),loadingText:N(e,"loadingText")}});const ye=b(()=>({page:s.value,itemsPerPage:u.value,sortBy:o.value,pageCount:R.value,toggleSort:S,setItemsPerPage:F,someSelected:U.value,allSelected:ne.value,isSelected:ee,select:$,selectAll:Z,toggleSelect:M,isExpanded:he,toggleExpand:we,isGroupOpen:k,toggleGroup:V,items:q.value.map(K=>K.raw),internalItems:q.value,groupedItems:z.value,columns:c.value,headers:f.value}));return Y(()=>{const K=yo.filterProps(e),D=Da.filterProps(e),ie=La.filterProps(e),le=Ma.filterProps(e);return d(Ma,X({class:["v-data-table",{"v-data-table--show-select":e.showSelect,"v-data-table--loading":e.loading},e.class],style:e.style},le),{top:()=>{var G;return(G=a.top)==null?void 0:G.call(a,ye.value)},default:()=>{var G,be,Q,_,B,O;return a.default?a.default(ye.value):d(ge,null,[(G=a.colgroup)==null?void 0:G.call(a,ye.value),!e.hideDefaultHeader&&d("thead",{key:"thead"},[d(Da,D,a)]),(be=a.thead)==null?void 0:be.call(a,ye.value),!e.hideDefaultBody&&d("tbody",null,[(Q=a["body.prepend"])==null?void 0:Q.call(a,ye.value),a.body?a.body(ye.value):d(La,X(n,ie,{items:z.value}),a),(_=a["body.append"])==null?void 0:_.call(a,ye.value)]),(B=a.tbody)==null?void 0:B.call(a,ye.value),(O=a.tfoot)==null?void 0:O.call(a,ye.value)])},bottom:()=>a.bottom?a.bottom(ye.value):!e.hideDefaultFooter&&d(ge,null,[d(Ro,null,null),d(yo,K,{prepend:a["footer.prepend"]})])})}),{}}}),PI=L({...Lc(),..._c(),...Qg(),...Do()},"VDataTableVirtual"),II=j()({name:"VDataTableVirtual",props:PI(),emits:{"update:modelValue":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:groupBy":e=>!0,"update:expanded":e=>!0},setup(e,t){let{attrs:n,slots:a}=t;const{groupBy:l}=Vc(e),{sortBy:o,multiSort:i,mustSort:r}=br(e),{columns:s,headers:u,filterFunctions:c,sortFunctions:f,sortRawFunctions:v}=Rc(e,{groupBy:l,showSelect:N(e,"showSelect"),showExpand:N(e,"showExpand")}),{items:m}=Dc(e,s),g=N(e,"search"),{filteredItems:h}=Lo(e,m,g,{transform:D=>D.columns,customKeyFilter:c}),{toggleSort:y}=pr({sortBy:o,multiSort:i,mustSort:r}),{sortByWithGroups:p,opened:S,extractRows:C,isGroupOpen:A,toggleGroup:x}=vr({groupBy:l,sortBy:o}),{sortedItems:k}=Ec(e,h,p,{transform:D=>D.columns,sortFunctions:f,sortRawFunctions:v}),{flatItems:V}=mr(k,l,S),T=b(()=>C(V.value)),{isSelected:w,select:P,selectAll:E,toggleSelect:I,someSelected:R,allSelected:F}=gr(e,{allItems:T,currentPage:T}),{isExpanded:z,toggleExpand:q}=fr(e),{containerRef:ee,markerRef:$,paddingTop:Z,paddingBottom:M,computedItems:U,handleItemResize:ne,handleScroll:he,handleScrollend:we}=ey(e,V),ye=b(()=>U.value.map(D=>D.raw));hr({sortBy:o,page:ue(1),itemsPerPage:ue(-1),groupBy:l,search:g}),et({VDataTableRows:{hideNoData:N(e,"hideNoData"),noDataText:N(e,"noDataText"),loading:N(e,"loading"),loadingText:N(e,"loadingText")}});const K=b(()=>({sortBy:o.value,toggleSort:y,someSelected:R.value,allSelected:F.value,isSelected:w,select:P,selectAll:E,toggleSelect:I,isExpanded:z,toggleExpand:q,isGroupOpen:A,toggleGroup:x,items:T.value.map(D=>D.raw),internalItems:T.value,groupedItems:V.value,columns:s.value,headers:u.value}));Y(()=>{const D=Da.filterProps(e),ie=La.filterProps(e),le=Ma.filterProps(e);return d(Ma,X({class:["v-data-table",{"v-data-table--loading":e.loading},e.class],style:e.style},le),{top:()=>{var G;return(G=a.top)==null?void 0:G.call(a,K.value)},wrapper:()=>{var G,be,Q;return d("div",{ref:ee,onScrollPassive:he,onScrollend:we,class:"v-table__wrapper",style:{height:fe(e.height)}},[d("table",null,[(G=a.colgroup)==null?void 0:G.call(a,K.value),!e.hideDefaultHeader&&d("thead",{key:"thead"},[d(Da,X(D,{sticky:e.fixedHeader}),a)]),!e.hideDefaultBody&&d("tbody",null,[d("tr",{ref:$,style:{height:fe(Z.value),border:0}},[d("td",{colspan:s.value.length,style:{height:0,border:0}},null)]),(be=a["body.prepend"])==null?void 0:be.call(a,K.value),d(La,X(n,ie,{items:ye.value}),{...a,item:_=>d(Zg,{key:_.internalItem.index,renderless:!0,"onUpdate:height":B=>ne(_.internalItem.index,B)},{default:B=>{var H;let{itemRef:O}=B;return((H=a.item)==null?void 0:H.call(a,{..._,itemRef:O}))??d(Oc,X(_.props,{ref:O,key:_.internalItem.index,index:_.internalItem.index}),a)}})}),(Q=a["body.append"])==null?void 0:Q.call(a,K.value),d("tr",{style:{height:fe(M.value),border:0}},[d("td",{colspan:s.value.length,style:{height:0,border:0}},null)])])])])},bottom:()=>{var G;return(G=a.bottom)==null?void 0:G.call(a,K.value)}})})}}),TI=L({itemsLength:{type:[Number,String],required:!0},...Pc(),...Lc(),...Ac()},"VDataTableServer"),EI=j()({name:"VDataTableServer",props:TI(),emits:{"update:modelValue":e=>!0,"update:page":e=>!0,"update:itemsPerPage":e=>!0,"update:sortBy":e=>!0,"update:options":e=>!0,"update:expanded":e=>!0,"update:groupBy":e=>!0},setup(e,t){let{attrs:n,slots:a}=t;const{groupBy:l}=Vc(e),{sortBy:o,multiSort:i,mustSort:r}=br(e),{page:s,itemsPerPage:u}=Ic(e),c=b(()=>parseInt(e.itemsLength,10)),{columns:f,headers:v}=Rc(e,{groupBy:l,showSelect:N(e,"showSelect"),showExpand:N(e,"showExpand")}),{items:m}=Dc(e,f),{toggleSort:g}=pr({sortBy:o,multiSort:i,mustSort:r,page:s}),{opened:h,isGroupOpen:y,toggleGroup:p,extractRows:S}=vr({groupBy:l,sortBy:o}),{pageCount:C,setItemsPerPage:A}=Tc({page:s,itemsPerPage:u,itemsLength:c}),{flatItems:x}=mr(m,l,h),{isSelected:k,select:V,selectAll:T,toggleSelect:w,someSelected:P,allSelected:E}=gr(e,{allItems:m,currentPage:m}),{isExpanded:I,toggleExpand:R}=fr(e),F=b(()=>S(m.value));hr({page:s,itemsPerPage:u,sortBy:o,groupBy:l,search:N(e,"search")}),We("v-data-table",{toggleSort:g,sortBy:o}),et({VDataTableRows:{hideNoData:N(e,"hideNoData"),noDataText:N(e,"noDataText"),loading:N(e,"loading"),loadingText:N(e,"loadingText")}});const z=b(()=>({page:s.value,itemsPerPage:u.value,sortBy:o.value,pageCount:C.value,toggleSort:g,setItemsPerPage:A,someSelected:P.value,allSelected:E.value,isSelected:k,select:V,selectAll:T,toggleSelect:w,isExpanded:I,toggleExpand:R,isGroupOpen:y,toggleGroup:p,items:F.value.map(q=>q.raw),internalItems:F.value,groupedItems:x.value,columns:f.value,headers:v.value}));Y(()=>{const q=yo.filterProps(e),ee=Da.filterProps(e),$=La.filterProps(e),Z=Ma.filterProps(e);return d(Ma,X({class:["v-data-table",{"v-data-table--loading":e.loading},e.class],style:e.style},Z),{top:()=>{var M;return(M=a.top)==null?void 0:M.call(a,z.value)},default:()=>{var M,U,ne,he,we,ye;return a.default?a.default(z.value):d(ge,null,[(M=a.colgroup)==null?void 0:M.call(a,z.value),!e.hideDefaultHeader&&d("thead",{key:"thead",class:"v-data-table__thead",role:"rowgroup"},[d(Da,X(ee,{sticky:e.fixedHeader}),a)]),(U=a.thead)==null?void 0:U.call(a,z.value),!e.hideDefaultBody&&d("tbody",{class:"v-data-table__tbody",role:"rowgroup"},[(ne=a["body.prepend"])==null?void 0:ne.call(a,z.value),a.body?a.body(z.value):d(La,X(n,$,{items:x.value}),a),(he=a["body.append"])==null?void 0:he.call(a,z.value)]),(we=a.tbody)==null?void 0:we.call(a,z.value),(ye=a.tfoot)==null?void 0:ye.call(a,z.value)])},bottom:()=>a.bottom?a.bottom(z.value):!e.hideDefaultFooter&&d(ge,null,[d(Ro,null,null),d(yo,q,{prepend:a["footer.prepend"]})])})})}}),Ly=L({active:{type:[String,Array],default:void 0},disabled:{type:[Boolean,String,Array],default:!1},nextIcon:{type:[String],default:"$next"},prevIcon:{type:[String],default:"$prev"},modeIcon:{type:[String],default:"$subgroup"},text:String,viewMode:{type:String,default:"month"}},"VDatePickerControls"),Gs=j()({name:"VDatePickerControls",props:Ly(),emits:{"click:year":()=>!0,"click:month":()=>!0,"click:prev":()=>!0,"click:next":()=>!0,"click:text":()=>!0},setup(e,t){let{emit:n}=t;const a=b(()=>Array.isArray(e.disabled)?e.disabled.includes("text"):!!e.disabled),l=b(()=>Array.isArray(e.disabled)?e.disabled.includes("mode"):!!e.disabled),o=b(()=>Array.isArray(e.disabled)?e.disabled.includes("prev"):!!e.disabled),i=b(()=>Array.isArray(e.disabled)?e.disabled.includes("next"):!!e.disabled);function r(){n("click:prev")}function s(){n("click:next")}function u(){n("click:year")}function c(){n("click:month")}return Y(()=>d("div",{class:["v-date-picker-controls"]},[d(Me,{class:"v-date-picker-controls__month-btn",disabled:a.value,text:e.text,variant:"text",rounded:!0,onClick:c},null),d(Me,{key:"mode-btn",class:"v-date-picker-controls__mode-btn",disabled:l.value,density:"comfortable",icon:e.modeIcon,variant:"text",onClick:u},null),d(og,{key:"mode-spacer"},null),d("div",{key:"month-buttons",class:"v-date-picker-controls__month"},[d(Me,{disabled:o.value,icon:e.prevIcon,variant:"text",onClick:r},null),d(Me,{disabled:i.value,icon:e.nextIcon,variant:"text",onClick:s},null)])])),{}}}),AI=L({appendIcon:String,color:String,header:String,transition:String,onClick:St()},"VDatePickerHeader"),Ks=j()({name:"VDatePickerHeader",props:AI(),emits:{click:()=>!0,"click:append":()=>!0},setup(e,t){let{emit:n,slots:a}=t;const{backgroundColorClasses:l,backgroundColorStyles:o}=Ge(e,"color");function i(){n("click")}function r(){n("click:append")}return Y(()=>{const s=!!(a.default||e.header),u=!!(a.append||e.appendIcon);return d("div",{class:["v-date-picker-header",{"v-date-picker-header--clickable":!!e.onClick},l.value],style:o.value,onClick:i},[a.prepend&&d("div",{key:"prepend",class:"v-date-picker-header__prepend"},[a.prepend()]),s&&d(Rt,{key:"content",name:e.transition},{default:()=>{var c;return[d("div",{key:e.header,class:"v-date-picker-header__content"},[((c=a.default)==null?void 0:c.call(a))??e.header])]}}),u&&d("div",{class:"v-date-picker-header__append"},[a.append?d(Be,{key:"append-defaults",disabled:!e.appendIcon,defaults:{VBtn:{icon:e.appendIcon,variant:"text"}}},{default:()=>{var c;return[(c=a.append)==null?void 0:c.call(a)]}}):d(Me,{key:"append-btn",icon:e.appendIcon,variant:"text",onClick:r},null)])])}),{}}}),BI=L({allowedDates:[Array,Function],disabled:Boolean,displayValue:null,modelValue:Array,month:[Number,String],max:null,min:null,showAdjacentMonths:Boolean,year:[Number,String],weekdays:{type:Array,default:()=>[0,1,2,3,4,5,6]},weeksInMonth:{type:String,default:"dynamic"}},"calendar");function RI(e){const t=Bo(),n=Se(e,"modelValue",[],v=>Qe(v)),a=b(()=>e.displayValue?t.date(e.displayValue):n.value.length>0?t.date(n.value[0]):e.min?t.date(e.min):Array.isArray(e.allowedDates)?t.date(e.allowedDates[0]):t.date()),l=Se(e,"year",void 0,v=>{const m=v!=null?Number(v):t.getYear(a.value);return t.startOfYear(t.setYear(t.date(),m))},v=>t.getYear(v)),o=Se(e,"month",void 0,v=>{const m=v!=null?Number(v):t.getMonth(a.value),g=t.setYear(t.startOfMonth(t.date()),t.getYear(l.value));return t.setMonth(g,m)},v=>t.getMonth(v)),i=b(()=>{const v=t.getWeekArray(o.value),m=v.flat(),g=6*7;if(e.weeksInMonth==="static"&&m.lengthe.weekdays.includes(t.toJsDate(g).getDay())).map((g,h)=>{const y=t.toISO(g),p=!t.isSameMonth(g,o.value),S=t.isSameDay(g,t.startOfMonth(o.value)),C=t.isSameDay(g,t.endOfMonth(o.value)),A=t.isSameDay(g,o.value);return{date:g,isoDate:y,formatted:t.format(g,"keyboardDate"),year:t.getYear(g),month:t.getMonth(g),isDisabled:f(g),isWeekStart:h%7===0,isWeekEnd:h%7===6,isToday:t.isSameDay(g,m),isAdjacent:p,isHidden:p&&!e.showAdjacentMonths,isStart:S,isSelected:n.value.some(x=>t.isSameDay(g,x)),isEnd:C,isSame:A,localized:t.format(g,"dayOfMonth")}})}const s=b(()=>{const v=t.startOfWeek(a.value),m=[];for(let h=0;h<=6;h++)m.push(t.addDays(v,h));const g=t.date();return r(m,g)}),u=b(()=>{const v=i.value.flat(),m=t.date();return r(v,m)}),c=b(()=>i.value.map(v=>v.length?r_(t,v[0]):null));function f(v){if(e.disabled)return!0;const m=t.date(v);return e.min&&t.isAfter(t.date(e.min),m)||e.max&&t.isAfter(m,t.date(e.max))?!0:Array.isArray(e.allowedDates)&&e.allowedDates.length>0?!e.allowedDates.some(g=>t.isSameDay(t.date(g),m)):typeof e.allowedDates=="function"?!e.allowedDates(m):!1}return{displayValue:a,daysInMonth:u,daysInWeek:s,genDays:r,model:n,weeksInMonth:i,weekNumbers:c}}const My=L({color:String,hideWeekdays:Boolean,multiple:[Boolean,Number,String],showWeek:Boolean,transition:{type:String,default:"picker-transition"},reverseTransition:{type:String,default:"picker-reverse-transition"},...BI()},"VDatePickerMonth"),Ys=j()({name:"VDatePickerMonth",props:My(),emits:{"update:modelValue":e=>!0,"update:month":e=>!0,"update:year":e=>!0},setup(e,t){let{emit:n,slots:a}=t;const l=te(),{daysInMonth:o,model:i,weekNumbers:r}=RI(e),s=Bo(),u=ue(),c=ue(),f=ue(!1),v=b(()=>f.value?e.reverseTransition:e.transition);e.multiple==="range"&&i.value.length>0&&(u.value=i.value[0],i.value.length>1&&(c.value=i.value[i.value.length-1]));const m=b(()=>{const p=["number","string"].includes(typeof e.multiple)?Number(e.multiple):1/0;return i.value.length>=p});de(o,(p,S)=>{S&&(f.value=s.isBefore(p[0].date,S[0].date))});function g(p){const S=s.startOfDay(p);if(i.value.length===0&&(u.value=void 0),!u.value)u.value=S,i.value=[u.value];else if(c.value)u.value=p,c.value=void 0,i.value=[u.value];else{if(s.isSameDay(S,u.value)){u.value=void 0,i.value=[];return}else s.isBefore(S,u.value)?(c.value=s.endOfDay(u.value),u.value=S):c.value=s.endOfDay(S);const C=s.getDiff(c.value,u.value,"days"),A=[u.value];for(let x=1;xs.isSameDay(C,p));if(S===-1)i.value=[...i.value,p];else{const C=[...i.value];C.splice(S,1),i.value=C}}function y(p){e.multiple==="range"?g(p):e.multiple?h(p):i.value=[p]}return()=>d("div",{class:"v-date-picker-month"},[e.showWeek&&d("div",{key:"weeks",class:"v-date-picker-month__weeks"},[!e.hideWeekdays&&d("div",{key:"hide-week-days",class:"v-date-picker-month__day"},[mt(" ")]),r.value.map(p=>d("div",{class:["v-date-picker-month__day","v-date-picker-month__day--adjacent"]},[p]))]),d(Rt,{name:v.value},{default:()=>{var p;return[d("div",{ref:l,key:(p=o.value[0].date)==null?void 0:p.toString(),class:"v-date-picker-month__days"},[!e.hideWeekdays&&s.getWeekdays().map(S=>d("div",{class:["v-date-picker-month__day","v-date-picker-month__weekday"]},[S])),o.value.map((S,C)=>{const A={props:{onClick:()=>y(S.date)},item:S,i:C};return m.value&&!S.isSelected&&(S.isDisabled=!0),d("div",{class:["v-date-picker-month__day",{"v-date-picker-month__day--adjacent":S.isAdjacent,"v-date-picker-month__day--hide-adjacent":S.isHidden,"v-date-picker-month__day--selected":S.isSelected,"v-date-picker-month__day--week-end":S.isWeekEnd,"v-date-picker-month__day--week-start":S.isWeekStart}],"data-v-date":S.isDisabled?void 0:S.isoDate},[(e.showAdjacentMonths||!S.isAdjacent)&&d(Be,{defaults:{VBtn:{class:"v-date-picker-month__day-btn",color:(S.isSelected||S.isToday)&&!S.isDisabled?e.color:void 0,disabled:S.isDisabled,icon:!0,ripple:!1,text:S.localized,variant:S.isDisabled?S.isToday?"outlined":"text":S.isToday&&!S.isSelected?"outlined":"flat",onClick:()=>y(S.date)}}},{default:()=>{var x;return[((x=a.day)==null?void 0:x.call(a,A))??d(Me,A.props,null)]}})])})])]}})])}}),Fy=L({color:String,height:[String,Number],min:null,max:null,modelValue:Number,year:Number},"VDatePickerMonths"),qs=j()({name:"VDatePickerMonths",props:Fy(),emits:{"update:modelValue":e=>!0},setup(e,t){let{emit:n,slots:a}=t;const l=Bo(),o=Se(e,"modelValue"),i=b(()=>{let r=l.startOfYear(l.date());return e.year&&(r=l.setYear(r,e.year)),xn(12).map(s=>{const u=l.format(r,"monthShort"),c=!!(e.min&&l.isAfter(l.startOfMonth(l.date(e.min)),r)||e.max&&l.isAfter(r,l.startOfMonth(l.date(e.max))));return r=l.getNextMonth(r),{isDisabled:c,text:u,value:s}})});return nt(()=>{o.value=o.value??l.getMonth(l.date())}),Y(()=>d("div",{class:"v-date-picker-months",style:{height:fe(e.height)}},[d("div",{class:"v-date-picker-months__content"},[i.value.map((r,s)=>{var f;const u={active:o.value===s,color:o.value===s?e.color:void 0,disabled:r.isDisabled,rounded:!0,text:r.text,variant:o.value===r.value?"flat":"text",onClick:()=>c(s)};function c(v){if(o.value===v){n("update:modelValue",o.value);return}o.value=v}return((f=a.month)==null?void 0:f.call(a,{month:r,i:s,props:u}))??d(Me,X({key:"month"},u),null)})])])),{}}}),$y=L({color:String,height:[String,Number],min:null,max:null,modelValue:Number},"VDatePickerYears"),Xs=j()({name:"VDatePickerYears",props:$y(),emits:{"update:modelValue":e=>!0},setup(e,t){let{emit:n,slots:a}=t;const l=Bo(),o=Se(e,"modelValue"),i=b(()=>{const s=l.getYear(l.date());let u=s-100,c=s+52;e.min&&(u=l.getYear(l.date(e.min))),e.max&&(c=l.getYear(l.date(e.max)));let f=l.startOfYear(l.date());return f=l.setYear(f,u),xn(c-u+1,u).map(v=>{const m=l.format(f,"year");return f=l.setYear(f,l.getYear(f)+1),{text:m,value:v}})});nt(()=>{o.value=o.value??l.getYear(l.date())});const r=wi();return Vt(async()=>{var s;await Oe(),(s=r.el)==null||s.scrollIntoView({block:"center"})}),Y(()=>d("div",{class:"v-date-picker-years",style:{height:fe(e.height)}},[d("div",{class:"v-date-picker-years__content"},[i.value.map((s,u)=>{var f;const c={ref:o.value===s.value?r:void 0,active:o.value===s.value,color:o.value===s.value?e.color:void 0,rounded:!0,text:s.text,variant:o.value===s.value?"flat":"text",onClick:()=>{if(o.value===s.value){n("update:modelValue",o.value);return}o.value=s.value}};return((f=a.year)==null?void 0:f.call(a,{year:s,i:u,props:c}))??d(Me,X({key:"month"},c),null)})])])),{}}}),OI=En("v-picker-title"),Ny=L({bgColor:String,landscape:Boolean,title:String,hideHeader:Boolean,...dr()},"VPicker"),Jf=j()({name:"VPicker",props:Ny(),setup(e,t){let{slots:n}=t;const{backgroundColorClasses:a,backgroundColorStyles:l}=Ge(N(e,"color"));return Y(()=>{const o=Oa.filterProps(e),i=!!(e.title||n.title);return d(Oa,X(o,{color:e.bgColor,class:["v-picker",{"v-picker--landscape":e.landscape,"v-picker--with-actions":!!n.actions},e.class],style:e.style}),{default:()=>{var r;return[!e.hideHeader&&d("div",{key:"header",class:[a.value],style:[l.value]},[i&&d(OI,{key:"picker-title"},{default:()=>{var s;return[((s=n.title)==null?void 0:s.call(n))??e.title]}}),n.header&&d("div",{class:"v-picker__header"},[n.header()])]),d("div",{class:"v-picker__body"},[(r=n.default)==null?void 0:r.call(n)]),n.actions&&d(Be,{defaults:{VBtn:{slim:!0,variant:"text"}}},{default:()=>[d("div",{class:"v-picker__actions"},[n.actions()])]})]}})}),{}}}),DI=L({header:{type:String,default:"$vuetify.datePicker.header"},...Ly(),...My({weeksInMonth:"static"}),...ct(Fy(),["modelValue"]),...ct($y(),["modelValue"]),...Ny({title:"$vuetify.datePicker.title"}),modelValue:null},"VDatePicker"),LI=j()({name:"VDatePicker",props:DI(),emits:{"update:modelValue":e=>!0,"update:month":e=>!0,"update:year":e=>!0,"update:viewMode":e=>!0},setup(e,t){let{emit:n,slots:a}=t;const l=Bo(),{t:o}=lt(),i=Se(e,"modelValue",void 0,w=>Qe(w),w=>e.multiple?w:w[0]),r=Se(e,"viewMode"),s=b(()=>{var P;const w=l.date((P=i.value)==null?void 0:P[0]);return w&&l.isValid(w)?w:l.date()}),u=te(Number(e.month??l.getMonth(l.startOfMonth(s.value)))),c=te(Number(e.year??l.getYear(l.startOfYear(l.setMonth(s.value,u.value))))),f=ue(!1),v=b(()=>e.multiple&&i.value.length>1?o("$vuetify.datePicker.itemsSelected",i.value.length):i.value[0]&&l.isValid(i.value[0])?l.format(l.date(i.value[0]),"normalDateWithWeekday"):o(e.header)),m=b(()=>{let w=l.date();return w=l.setDate(w,1),w=l.setMonth(w,u.value),w=l.setYear(w,c.value),l.format(w,"monthAndYear")}),g=b(()=>`date-picker-header${f.value?"-reverse":""}-transition`),h=b(()=>{const w=l.date(e.min);return e.min&&l.isValid(w)?w:null}),y=b(()=>{const w=l.date(e.max);return e.max&&l.isValid(w)?w:null}),p=b(()=>{if(e.disabled)return!0;const w=[];if(r.value!=="month")w.push("prev","next");else{let P=l.date();if(P=l.setYear(P,c.value),P=l.setMonth(P,u.value),h.value){const E=l.addDays(l.startOfMonth(P),-1);l.isAfter(h.value,E)&&w.push("prev")}if(y.value){const E=l.addDays(l.endOfMonth(P),1);l.isAfter(E,y.value)&&w.push("next")}}return w});function S(){u.value<11?u.value++:(c.value++,u.value=0,T(c.value)),V(u.value)}function C(){u.value>0?u.value--:(c.value--,u.value=11,T(c.value)),V(u.value)}function A(){r.value="month"}function x(){r.value=r.value==="months"?"month":"months"}function k(){r.value=r.value==="year"?"month":"year"}function V(w){r.value==="months"&&x(),n("update:month",w)}function T(w){r.value==="year"&&k(),n("update:year",w)}return de(i,(w,P)=>{const E=l.date(Qe(P)[P.length-1]),I=l.date(Qe(w)[w.length-1]),R=l.getMonth(I),F=l.getYear(I);R!==u.value&&(u.value=R,V(u.value)),F!==c.value&&(c.value=F,T(c.value)),f.value=l.isBefore(E,I)}),Y(()=>{const w=Jf.filterProps(e),P=Gs.filterProps(e),E=Ks.filterProps(e),I=Ys.filterProps(e),R=ct(qs.filterProps(e),["modelValue"]),F=ct(Xs.filterProps(e),["modelValue"]),z={header:v.value,transition:g.value};return d(Jf,X(w,{class:["v-date-picker",`v-date-picker--${r.value}`,{"v-date-picker--show-week":e.showWeek},e.class],style:e.style}),{title:()=>{var q;return((q=a.title)==null?void 0:q.call(a))??d("div",{class:"v-date-picker__title"},[o(e.title)])},header:()=>a.header?d(Be,{defaults:{VDatePickerHeader:{...z}}},{default:()=>{var q;return[(q=a.header)==null?void 0:q.call(a,z)]}}):d(Ks,X({key:"header"},E,z,{onClick:r.value!=="month"?A:void 0}),{...a,default:void 0}),default:()=>d(ge,null,[d(Gs,X(P,{disabled:p.value,text:m.value,"onClick:next":S,"onClick:prev":C,"onClick:month":x,"onClick:year":k}),null),d(fo,{hideOnLeave:!0},{default:()=>[r.value==="months"?d(qs,X({key:"date-picker-months"},R,{modelValue:u.value,"onUpdate:modelValue":[q=>u.value=q,V],min:h.value,max:y.value,year:c.value}),null):r.value==="year"?d(Xs,X({key:"date-picker-years"},F,{modelValue:c.value,"onUpdate:modelValue":[q=>c.value=q,T],min:h.value,max:y.value}),null):d(Ys,X({key:"date-picker-month"},I,{modelValue:i.value,"onUpdate:modelValue":q=>i.value=q,month:u.value,"onUpdate:month":[q=>u.value=q,V],year:c.value,"onUpdate:year":[q=>c.value=q,T],min:h.value,max:y.value}),null)]})]),actions:a.actions})}),{}}}),MI=L({actionText:String,bgColor:String,color:String,icon:_e,image:String,justify:{type:String,default:"center"},headline:String,title:String,text:String,textWidth:{type:[Number,String],default:500},href:String,to:String,...ve(),...gt(),...An({size:void 0}),...De()},"VEmptyState"),FI=j()({name:"VEmptyState",props:MI(),emits:{"click:action":e=>!0},setup(e,t){let{emit:n,slots:a}=t;const{themeClasses:l}=$e(e),{backgroundColorClasses:o,backgroundColorStyles:i}=Ge(N(e,"bgColor")),{dimensionStyles:r}=yt(e),{displayClasses:s}=sn();function u(c){n("click:action",c)}return Y(()=>{var y,p,S;const c=!!(a.actions||e.actionText),f=!!(a.headline||e.headline),v=!!(a.title||e.title),m=!!(a.text||e.text),g=!!(a.media||e.image||e.icon),h=e.size||(e.image?200:96);return d("div",{class:["v-empty-state",{[`v-empty-state--${e.justify}`]:!0},l.value,o.value,s.value,e.class],style:[i.value,r.value,e.style]},[g&&d("div",{key:"media",class:"v-empty-state__media"},[a.media?d(Be,{key:"media-defaults",defaults:{VImg:{src:e.image,height:h},VIcon:{size:h,icon:e.icon}}},{default:()=>[a.media()]}):d(ge,null,[e.image?d(Nn,{key:"image",src:e.image,height:h},null):e.icon?d(Fe,{key:"icon",color:e.color,size:h,icon:e.icon},null):void 0])]),f&&d("div",{key:"headline",class:"v-empty-state__headline"},[((y=a.headline)==null?void 0:y.call(a))??e.headline]),v&&d("div",{key:"title",class:"v-empty-state__title"},[((p=a.title)==null?void 0:p.call(a))??e.title]),m&&d("div",{key:"text",class:"v-empty-state__text",style:{maxWidth:fe(e.textWidth)}},[((S=a.text)==null?void 0:S.call(a))??e.text]),a.default&&d("div",{key:"content",class:"v-empty-state__content"},[a.default()]),c&&d("div",{key:"actions",class:"v-empty-state__actions"},[d(Be,{defaults:{VBtn:{class:"v-empty-state__action-btn",color:e.color??"surface-variant",text:e.actionText}}},{default:()=>{var C;return[((C=a.actions)==null?void 0:C.call(a,{props:{onClick:u}}))??d(Me,{onClick:u},null)]}})])])}),{}}}),bo=Symbol.for("vuetify:v-expansion-panel"),Hy=L({...ve(),...bc()},"VExpansionPanelText"),Js=j()({name:"VExpansionPanelText",props:Hy(),setup(e,t){let{slots:n}=t;const a=Te(bo);if(!a)throw new Error("[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel");const{hasContent:l,onAfterLeave:o}=pc(e,a.isSelected);return Y(()=>d(ar,{onAfterLeave:o},{default:()=>{var i;return[Ue(d("div",{class:["v-expansion-panel-text",e.class],style:e.style},[n.default&&l.value&&d("div",{class:"v-expansion-panel-text__wrapper"},[(i=n.default)==null?void 0:i.call(n)])]),[[hn,a.isSelected.value]])]}})),{}}}),zy=L({color:String,expandIcon:{type:_e,default:"$expand"},collapseIcon:{type:_e,default:"$collapse"},hideActions:Boolean,focusable:Boolean,static:Boolean,ripple:{type:[Boolean,Object],default:!1},readonly:Boolean,...ve()},"VExpansionPanelTitle"),Zs=j()({name:"VExpansionPanelTitle",directives:{Ripple:Kn},props:zy(),setup(e,t){let{slots:n}=t;const a=Te(bo);if(!a)throw new Error("[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel");const{backgroundColorClasses:l,backgroundColorStyles:o}=Ge(e,"color"),i=b(()=>({collapseIcon:e.collapseIcon,disabled:a.disabled.value,expanded:a.isSelected.value,expandIcon:e.expandIcon,readonly:e.readonly}));return Y(()=>{var r;return Ue(d("button",{class:["v-expansion-panel-title",{"v-expansion-panel-title--active":a.isSelected.value,"v-expansion-panel-title--focusable":e.focusable,"v-expansion-panel-title--static":e.static},l.value,e.class],style:[o.value,e.style],type:"button",tabindex:a.disabled.value?-1:void 0,disabled:a.disabled.value,"aria-expanded":a.isSelected.value,onClick:e.readonly?void 0:a.toggle},[d("span",{class:"v-expansion-panel-title__overlay"},null),(r=n.default)==null?void 0:r.call(n,i.value),!e.hideActions&&d("span",{class:"v-expansion-panel-title__icon"},[n.actions?n.actions(i.value):d(Fe,{icon:a.isSelected.value?e.collapseIcon:e.expandIcon},null)])]),[[Gt("ripple"),e.ripple]])}),{}}}),jy=L({title:String,text:String,bgColor:String,...vt(),...Ua(),...Xe(),...Pe(),...zy(),...Hy()},"VExpansionPanel"),$I=j()({name:"VExpansionPanel",props:jy(),emits:{"group:selected":e=>!0},setup(e,t){let{slots:n}=t;const a=Wa(e,bo),{backgroundColorClasses:l,backgroundColorStyles:o}=Ge(e,"bgColor"),{elevationClasses:i}=kt(e),{roundedClasses:r}=tt(e),s=b(()=>(a==null?void 0:a.disabled.value)||e.disabled),u=b(()=>a.group.items.value.reduce((v,m,g)=>(a.group.selected.value.includes(m.id)&&v.push(g),v),[])),c=b(()=>{const v=a.group.items.value.findIndex(m=>m.id===a.id);return!a.isSelected.value&&u.value.some(m=>m-v===1)}),f=b(()=>{const v=a.group.items.value.findIndex(m=>m.id===a.id);return!a.isSelected.value&&u.value.some(m=>m-v===-1)});return We(bo,a),Y(()=>{const v=!!(n.text||e.text),m=!!(n.title||e.title),g=Zs.filterProps(e),h=Js.filterProps(e);return d(e.tag,{class:["v-expansion-panel",{"v-expansion-panel--active":a.isSelected.value,"v-expansion-panel--before-active":c.value,"v-expansion-panel--after-active":f.value,"v-expansion-panel--disabled":s.value},r.value,l.value,e.class],style:[o.value,e.style]},{default:()=>{var y;return[d("div",{class:["v-expansion-panel__shadow",...i.value]},null),m&&d(Zs,X({key:"title"},g),{default:()=>[n.title?n.title():e.title]}),v&&d(Js,X({key:"text"},h),{default:()=>[n.text?n.text():e.text]}),(y=n.default)==null?void 0:y.call(n)]}})}),{groupItem:a}}}),NI=["default","accordion","inset","popout"],HI=L({flat:Boolean,...ja(),...jy(),...De(),variant:{type:String,default:"default",validator:e=>NI.includes(e)}},"VExpansionPanels"),zI=j()({name:"VExpansionPanels",props:HI(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{next:a,prev:l}=ha(e,bo),{themeClasses:o}=$e(e),i=b(()=>e.variant&&`v-expansion-panels--variant-${e.variant}`);return et({VExpansionPanel:{bgColor:N(e,"bgColor"),collapseIcon:N(e,"collapseIcon"),color:N(e,"color"),eager:N(e,"eager"),elevation:N(e,"elevation"),expandIcon:N(e,"expandIcon"),focusable:N(e,"focusable"),hideActions:N(e,"hideActions"),readonly:N(e,"readonly"),ripple:N(e,"ripple"),rounded:N(e,"rounded"),static:N(e,"static")}}),Y(()=>d(e.tag,{class:["v-expansion-panels",{"v-expansion-panels--flat":e.flat,"v-expansion-panels--tile":e.tile},o.value,i.value,e.class],style:e.style},{default:()=>{var r;return[(r=n.default)==null?void 0:r.call(n,{prev:l,next:a})]}})),{next:a,prev:l}}}),jI=L({app:Boolean,appear:Boolean,extended:Boolean,layout:Boolean,offset:Boolean,modelValue:{type:Boolean,default:!0},...ct(Ji({active:!0}),["location"]),...$a(),...Gn(),...gn({transition:"fab-transition"})},"VFab"),UI=j()({name:"VFab",props:jI(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const a=Se(e,"modelValue"),l=ue(56),o=te(),{resizeRef:i}=fn(f=>{f.length&&(l.value=f[0].target.clientHeight)}),r=b(()=>e.app||e.absolute),s=b(()=>{var f;return r.value?((f=e.location)==null?void 0:f.split(" ").shift())??"bottom":!1}),u=b(()=>{var f;return r.value?((f=e.location)==null?void 0:f.split(" ")[1])??"end":!1});Nt(()=>e.app,()=>{const f=Na({id:e.name,order:b(()=>parseInt(e.order,10)),position:s,layoutSize:b(()=>e.layout?l.value+24:0),elementSize:b(()=>l.value+24),active:b(()=>e.app&&a.value),absolute:N(e,"absolute")});nt(()=>{o.value=f.layoutItemStyles.value})});const c=te();return Y(()=>{const f=Me.filterProps(e);return d("div",{ref:c,class:["v-fab",{"v-fab--absolute":e.absolute,"v-fab--app":!!e.app,"v-fab--extended":e.extended,"v-fab--offset":e.offset,[`v-fab--${s.value}`]:r.value,[`v-fab--${u.value}`]:r.value},e.class],style:[e.app?{...o.value}:{height:"inherit",width:void 0},e.style]},[d("div",{class:"v-fab__container"},[d(Rt,{appear:e.appear,transition:e.transition},{default:()=>[Ue(d(Me,X({ref:i},f,{active:void 0,location:void 0}),n),[[hn,e.active]])]})])])}),{}}}),WI=L({chips:Boolean,counter:Boolean,counterSizeString:{type:String,default:"$vuetify.fileInput.counterSize"},counterString:{type:String,default:"$vuetify.fileInput.counter"},hideInput:Boolean,multiple:Boolean,showSize:{type:[Boolean,Number,String],default:!1,validator:e=>typeof e=="boolean"||[1e3,1024].includes(Number(e))},...qn({prependIcon:"$file"}),modelValue:{type:[Array,Object],default:e=>e.multiple?[]:null,validator:e=>Qe(e).every(t=>t!=null&&typeof t=="object")},...Ao({clearable:!0})},"VFileInput"),GI=j()({name:"VFileInput",inheritAttrs:!1,props:WI(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{attrs:n,emit:a,slots:l}=t;const{t:o}=lt(),i=Se(e,"modelValue",e.modelValue,w=>Qe(w),w=>e.multiple||Array.isArray(e.modelValue)?w:w[0]??null),{isFocused:r,focus:s,blur:u}=Yn(e),c=b(()=>typeof e.showSize!="boolean"?e.showSize:void 0),f=b(()=>(i.value??[]).reduce((w,P)=>{let{size:E=0}=P;return w+E},0)),v=b(()=>Wd(f.value,c.value)),m=b(()=>(i.value??[]).map(w=>{const{name:P="",size:E=0}=w;return e.showSize?`${P} (${Wd(E,c.value)})`:P})),g=b(()=>{var P;const w=((P=i.value)==null?void 0:P.length)??0;return e.showSize?o(e.counterSizeString,w,v.value):o(e.counterString,w)}),h=te(),y=te(),p=te(),S=b(()=>r.value||e.active),C=b(()=>["plain","underlined"].includes(e.variant));function A(){var w;p.value!==document.activeElement&&((w=p.value)==null||w.focus()),r.value||s()}function x(w){var P;(P=p.value)==null||P.click()}function k(w){a("mousedown:control",w)}function V(w){var P;(P=p.value)==null||P.click(),a("click:control",w)}function T(w){w.stopPropagation(),A(),Oe(()=>{i.value=[],Nu(e["onClick:clear"],w)})}return de(i,w=>{(!Array.isArray(w)||!w.length)&&p.value&&(p.value.value="")}),Y(()=>{const w=!!(l.counter||e.counter),P=!!(w||l.details),[E,I]=fa(n),{modelValue:R,...F}=_t.filterProps(e),z=sc(e);return d(_t,X({ref:h,modelValue:i.value,"onUpdate:modelValue":q=>i.value=q,class:["v-file-input",{"v-file-input--chips":!!e.chips,"v-file-input--hide":e.hideInput,"v-input--plain-underlined":C.value},e.class],style:e.style,"onClick:prepend":x},E,F,{centerAffix:!C.value,focused:r.value}),{...l,default:q=>{let{id:ee,isDisabled:$,isDirty:Z,isReadonly:M,isValid:U}=q;return d(_l,X({ref:y,"prepend-icon":e.prependIcon,onMousedown:k,onClick:V,"onClick:clear":T,"onClick:prependInner":e["onClick:prependInner"],"onClick:appendInner":e["onClick:appendInner"]},z,{id:ee.value,active:S.value||Z.value,dirty:Z.value||e.dirty,disabled:$.value,focused:r.value,error:U.value===!1}),{...l,default:ne=>{var ye;let{props:{class:he,...we}}=ne;return d(ge,null,[d("input",X({ref:p,type:"file",readonly:M.value,disabled:$.value,multiple:e.multiple,name:e.name,onClick:K=>{K.stopPropagation(),M.value&&K.preventDefault(),A()},onChange:K=>{if(!K.target)return;const D=K.target;i.value=[...D.files??[]]},onFocus:A,onBlur:u},we,I),null),d("div",{class:he},[!!((ye=i.value)!=null&&ye.length)&&!e.hideInput&&(l.selection?l.selection({fileNames:m.value,totalBytes:f.value,totalBytesReadable:v.value}):e.chips?m.value.map(K=>d(Vl,{key:K,size:"small",text:K},null)):m.value.join(", "))])])}})},details:P?q=>{var ee,$;return d(ge,null,[(ee=l.details)==null?void 0:ee.call(l,q),w&&d(ge,null,[d("span",null,null),d(lr,{active:!!(($=i.value)!=null&&$.length),value:g.value,disabled:e.disabled},l.counter)])])}:void 0})}),rn({},h,y,p)}}),KI=L({app:Boolean,color:String,height:{type:[Number,String],default:"auto"},...Yt(),...ve(),...vt(),...$a(),...Xe(),...Pe({tag:"footer"}),...De()},"VFooter"),YI=j()({name:"VFooter",props:KI(),setup(e,t){let{slots:n}=t;const{themeClasses:a}=$e(e),{backgroundColorClasses:l,backgroundColorStyles:o}=Ge(N(e,"color")),{borderClasses:i}=ln(e),{elevationClasses:r}=kt(e),{roundedClasses:s}=tt(e),u=ue(32),{resizeRef:c}=fn(g=>{g.length&&(u.value=g[0].target.clientHeight)}),f=b(()=>e.height==="auto"?u.value:parseInt(e.height,10)),{layoutItemStyles:v,layoutIsReady:m}=Na({id:e.name,order:b(()=>parseInt(e.order,10)),position:b(()=>"bottom"),layoutSize:f,elementSize:b(()=>e.height==="auto"?void 0:f.value),active:b(()=>e.app),absolute:N(e,"absolute")});return Y(()=>d(e.tag,{ref:c,class:["v-footer",a.value,l.value,i.value,r.value,s.value,e.class],style:[o.value,e.app?v.value:{height:fe(e.height)},e.style]},n)),e.app?m:{}}}),qI=L({disabled:Boolean,modelValue:{type:Boolean,default:null},...gc()},"VHover"),XI=j()({name:"VHover",props:qI(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const a=Se(e,"modelValue"),{runOpenDelay:l,runCloseDelay:o}=yc(e,i=>!e.disabled&&(a.value=i));return()=>{var i;return(i=n.default)==null?void 0:i.call(n,{isHovering:a.value,props:{onMouseenter:l,onMouseleave:o}})}}}),JI=L({color:String,direction:{type:String,default:"vertical",validator:e=>["vertical","horizontal"].includes(e)},side:{type:String,default:"end",validator:e=>["start","end","both"].includes(e)},mode:{type:String,default:"intersect",validator:e=>["intersect","manual"].includes(e)},margin:[Number,String],loadMoreText:{type:String,default:"$vuetify.infiniteScroll.loadMore"},emptyText:{type:String,default:"$vuetify.infiniteScroll.empty"},...gt(),...Pe()},"VInfiniteScroll"),Zf=Kt({name:"VInfiniteScrollIntersect",props:{side:{type:String,required:!0},rootRef:null,rootMargin:String},emits:{intersect:(e,t)=>!0},setup(e,t){let{emit:n}=t;const{intersectionRef:a,isIntersecting:l}=Yi(o=>{},e.rootMargin?{rootMargin:e.rootMargin}:void 0);return de(l,async o=>{n("intersect",e.side,o)}),Y(()=>d("div",{class:"v-infinite-scroll-intersect",ref:a},[mt(" ")])),{}}}),ZI=j()({name:"VInfiniteScroll",props:JI(),emits:{load:e=>!0},setup(e,t){let{slots:n,emit:a}=t;const l=te(),o=ue("ok"),i=ue("ok"),r=b(()=>fe(e.margin)),s=ue(!1);function u(x){if(!l.value)return;const k=e.direction==="vertical"?"scrollTop":"scrollLeft";l.value[k]=x}function c(){if(!l.value)return 0;const x=e.direction==="vertical"?"scrollTop":"scrollLeft";return l.value[x]}function f(){if(!l.value)return 0;const x=e.direction==="vertical"?"scrollHeight":"scrollWidth";return l.value[x]}function v(){if(!l.value)return 0;const x=e.direction==="vertical"?"clientHeight":"clientWidth";return l.value[x]}Vt(()=>{l.value&&(e.side==="start"?u(f()):e.side==="both"&&u(f()/2-v()/2))});function m(x,k){x==="start"?o.value=k:x==="end"&&(i.value=k)}function g(x){return x==="start"?o.value:i.value}let h=0;function y(x,k){s.value=k,s.value&&p(x)}function p(x){if(e.mode!=="manual"&&!s.value)return;const k=g(x);if(!l.value||["empty","loading"].includes(k))return;h=f(),m(x,"loading");function V(T){m(x,T),Oe(()=>{T==="empty"||T==="error"||(T==="ok"&&x==="start"&&u(f()-h+c()),e.mode!=="manual"&&Oe(()=>{window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{window.requestAnimationFrame(()=>{p(x)})})})}))})}a("load",{side:x,done:V})}const{t:S}=lt();function C(x,k){var w,P,E,I,R;if(e.side!==x&&e.side!=="both")return;const V=()=>p(x),T={side:x,props:{onClick:V,color:e.color}};return k==="error"?(w=n.error)==null?void 0:w.call(n,T):k==="empty"?((P=n.empty)==null?void 0:P.call(n,T))??d("div",null,[S(e.emptyText)]):e.mode==="manual"?k==="loading"?((E=n.loading)==null?void 0:E.call(n,T))??d(yl,{indeterminate:!0,color:e.color},null):((I=n["load-more"])==null?void 0:I.call(n,T))??d(Me,{variant:"outlined",color:e.color,onClick:V},{default:()=>[S(e.loadMoreText)]}):((R=n.loading)==null?void 0:R.call(n,T))??d(yl,{indeterminate:!0,color:e.color},null)}const{dimensionStyles:A}=yt(e);Y(()=>{const x=e.tag,k=e.side==="start"||e.side==="both",V=e.side==="end"||e.side==="both",T=e.mode==="intersect";return d(x,{ref:l,class:["v-infinite-scroll",`v-infinite-scroll--${e.direction}`,{"v-infinite-scroll--start":k,"v-infinite-scroll--end":V}],style:A.value},{default:()=>{var w;return[d("div",{class:"v-infinite-scroll__side"},[C("start",o.value)]),l.value&&k&&T&&d(Zf,{key:"start",side:"start",onIntersect:y,rootRef:l.value,rootMargin:r.value},null),(w=n.default)==null?void 0:w.call(n),l.value&&V&&T&&d(Zf,{key:"end",side:"end",onIntersect:y,rootRef:l.value,rootMargin:r.value},null),d("div",{class:"v-infinite-scroll__side"},[C("end",i.value)])]}})})}}),Uy=Symbol.for("vuetify:v-item-group"),QI=L({...ve(),...ja({selectedClass:"v-item--selected"}),...Pe(),...De()},"VItemGroup"),eT=j()({name:"VItemGroup",props:QI(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{themeClasses:a}=$e(e),{isSelected:l,select:o,next:i,prev:r,selected:s}=ha(e,Uy);return()=>d(e.tag,{class:["v-item-group",a.value,e.class],style:e.style},{default:()=>{var u;return[(u=n.default)==null?void 0:u.call(n,{isSelected:l,select:o,next:i,prev:r,selected:s.value})]}})}}),tT=j()({name:"VItem",props:Ua(),emits:{"group:selected":e=>!0},setup(e,t){let{slots:n}=t;const{isSelected:a,select:l,toggle:o,selectedClass:i,value:r,disabled:s}=Wa(e,Uy);return()=>{var u;return(u=n.default)==null?void 0:u.call(n,{isSelected:a.value,selectedClass:i.value,select:l,toggle:o,value:r.value,disabled:s.value})}}}),nT=En("v-kbd"),aT=L({...ve(),...gt(),...uh()},"VLayout"),lT=j()({name:"VLayout",props:aT(),setup(e,t){let{slots:n}=t;const{layoutClasses:a,layoutStyles:l,getLayoutItem:o,items:i,layoutRef:r}=dh(e),{dimensionStyles:s}=yt(e);return Y(()=>d("div",{ref:r,class:[a.value,e.class],style:[s.value,l.value,e.style]},[d(tm,null,{default:()=>{var u;return[d(ge,null,[(u=n.default)==null?void 0:u.call(n)])]}})])),{getLayoutItem:o,items:i}}}),oT=L({position:{type:String,required:!0},size:{type:[Number,String],default:300},modelValue:Boolean,...ve(),...$a()},"VLayoutItem"),iT=j()({name:"VLayoutItem",props:oT(),setup(e,t){let{slots:n}=t;const{layoutItemStyles:a,layoutIsReady:l}=Na({id:e.name,order:b(()=>parseInt(e.order,10)),position:N(e,"position"),elementSize:N(e,"size"),layoutSize:N(e,"size"),active:N(e,"modelValue"),absolute:N(e,"absolute")});return Y(()=>{var o;return d("div",{class:["v-layout-item",e.class],style:[a.value,e.style]},[(o=n.default)==null?void 0:o.call(n)])}),l}}),rT=L({modelValue:Boolean,options:{type:Object,default:()=>({root:void 0,rootMargin:void 0,threshold:void 0})},...ve(),...gt(),...Pe(),...gn({transition:"fade-transition"})},"VLazy"),sT=j()({name:"VLazy",directives:{intersect:To},props:rT(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{dimensionStyles:a}=yt(e),l=Se(e,"modelValue");function o(i){l.value||(l.value=i)}return Y(()=>Ue(d(e.tag,{class:["v-lazy",e.class],style:[a.value,e.style]},{default:()=>[l.value&&d(Rt,{transition:e.transition,appear:!0},{default:()=>{var i;return[(i=n.default)==null?void 0:i.call(n)]}})]}),[[Gt("intersect"),{handler:o,options:e.options},null]])),{}}}),uT=L({locale:String,fallbackLocale:String,messages:Object,rtl:{type:Boolean,default:void 0},...ve()},"VLocaleProvider"),cT=j()({name:"VLocaleProvider",props:uT(),setup(e,t){let{slots:n}=t;const{rtlClasses:a}=pw(e);return Y(()=>{var l;return d("div",{class:["v-locale-provider",a.value,e.class],style:e.style},[(l=n.default)==null?void 0:l.call(n)])}),{}}});function dT(e){let{rootEl:t,isSticky:n,layoutItemStyles:a}=e;const l=ue(!1),o=ue(0),i=b(()=>{const u=typeof l.value=="boolean"?"top":l.value;return[n.value?{top:"auto",bottom:"auto",height:void 0}:void 0,l.value?{[u]:fe(o.value)}:{top:a.value.top}]});Vt(()=>{de(n,u=>{u?window.addEventListener("scroll",s,{passive:!0}):window.removeEventListener("scroll",s)},{immediate:!0})}),Pt(()=>{window.removeEventListener("scroll",s)});let r=0;function s(){const u=r>window.scrollY?"up":"down",c=t.value.getBoundingClientRect(),f=parseFloat(a.value.top??0),v=window.scrollY-Math.max(0,o.value-f),m=c.height+Math.max(o.value,f)-window.scrollY-window.innerHeight,g=parseFloat(getComputedStyle(t.value).getPropertyValue("--v-body-scroll-y"))||0;c.height0;n--){if(e[n].t===e[n-1].t)continue;const a=Qf(t),l=(e[n].d-e[n-1].d)/(e[n].t-e[n-1].t);t+=(l-a)*Math.abs(l),n===e.length-1&&(t*=.5)}return Qf(t)*1e3}function mT(){const e={};function t(l){Array.from(l.changedTouches).forEach(o=>{(e[o.identifier]??(e[o.identifier]=new B0(vT))).push([l.timeStamp,o])})}function n(l){Array.from(l.changedTouches).forEach(o=>{delete e[o.identifier]})}function a(l){var u;const o=(u=e[l])==null?void 0:u.values().reverse();if(!o)throw new Error(`No samples for touch id ${l}`);const i=o[0],r=[],s=[];for(const c of o){if(i[0]-c[0]>fT)break;r.push({t:c[0],d:c[1].clientX}),s.push({t:c[0],d:c[1].clientY})}return{x:ev(r),y:ev(s),get direction(){const{x:c,y:f}=this,[v,m]=[Math.abs(c),Math.abs(f)];return v>m&&c>=0?"right":v>m&&c<=0?"left":m>v&&f>=0?"down":m>v&&f<=0?"up":hT()}}}return{addMovement:t,endTouch:n,getVelocity:a}}function hT(){throw new Error}function gT(e){let{el:t,isActive:n,isTemporary:a,width:l,touchless:o,position:i}=e;Vt(()=>{window.addEventListener("touchstart",S,{passive:!0}),window.addEventListener("touchmove",C,{passive:!1}),window.addEventListener("touchend",A,{passive:!0})}),Pt(()=>{window.removeEventListener("touchstart",S),window.removeEventListener("touchmove",C),window.removeEventListener("touchend",A)});const r=b(()=>["left","right"].includes(i.value)),{addMovement:s,endTouch:u,getVelocity:c}=mT();let f=!1;const v=ue(!1),m=ue(0),g=ue(0);let h;function y(k,V){return(i.value==="left"?k:i.value==="right"?document.documentElement.clientWidth-k:i.value==="top"?k:i.value==="bottom"?document.documentElement.clientHeight-k:Qa())-(V?l.value:0)}function p(k){let V=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const T=i.value==="left"?(k-g.value)/l.value:i.value==="right"?(document.documentElement.clientWidth-k-g.value)/l.value:i.value==="top"?(k-g.value)/l.value:i.value==="bottom"?(document.documentElement.clientHeight-k-g.value)/l.value:Qa();return V?Math.max(0,Math.min(1,T)):T}function S(k){if(o.value)return;const V=k.changedTouches[0].clientX,T=k.changedTouches[0].clientY,w=25,P=i.value==="left"?Vdocument.documentElement.clientWidth-w:i.value==="top"?Tdocument.documentElement.clientHeight-w:Qa(),E=n.value&&(i.value==="left"?Vdocument.documentElement.clientWidth-l.value:i.value==="top"?Tdocument.documentElement.clientHeight-l.value:Qa());(P||E||n.value&&a.value)&&(h=[V,T],g.value=y(r.value?V:T,n.value),m.value=p(r.value?V:T),f=g.value>-20&&g.value<80,u(k),s(k))}function C(k){const V=k.changedTouches[0].clientX,T=k.changedTouches[0].clientY;if(f){if(!k.cancelable){f=!1;return}const P=Math.abs(V-h[0]),E=Math.abs(T-h[1]);(r.value?P>E&&P>3:E>P&&E>3)?(v.value=!0,f=!1):(r.value?E:P)>3&&(f=!1)}if(!v.value)return;k.preventDefault(),s(k);const w=p(r.value?V:T,!1);m.value=Math.max(0,Math.min(1,w)),w>1?g.value=y(r.value?V:T,!0):w<0&&(g.value=y(r.value?V:T,!1))}function A(k){if(f=!1,!v.value)return;s(k),v.value=!1;const V=c(k.changedTouches[0].identifier),T=Math.abs(V.x),w=Math.abs(V.y);(r.value?T>w&&T>400:w>T&&w>3)?n.value=V.direction===({left:"right",right:"left",top:"down",bottom:"up"}[i.value]||Qa()):n.value=m.value>.5}const x=b(()=>v.value?{transform:i.value==="left"?`translateX(calc(-100% + ${m.value*l.value}px))`:i.value==="right"?`translateX(calc(100% - ${m.value*l.value}px))`:i.value==="top"?`translateY(calc(-100% + ${m.value*l.value}px))`:i.value==="bottom"?`translateY(calc(100% - ${m.value*l.value}px))`:Qa(),transition:"none"}:void 0);return Nt(v,()=>{var T,w;const k=((T=t.value)==null?void 0:T.style.transform)??null,V=((w=t.value)==null?void 0:w.style.transition)??null;nt(()=>{var P,E,I,R;(E=t.value)==null||E.style.setProperty("transform",((P=x.value)==null?void 0:P.transform)||"none"),(R=t.value)==null||R.style.setProperty("transition",((I=x.value)==null?void 0:I.transition)||null)}),Ot(()=>{var P,E;(P=t.value)==null||P.style.setProperty("transform",k),(E=t.value)==null||E.style.setProperty("transition",V)})}),{isDragging:v,dragProgress:m,dragStyles:x}}function Qa(){throw new Error}const yT=["start","end","left","right","top","bottom"],bT=L({color:String,disableResizeWatcher:Boolean,disableRouteWatcher:Boolean,expandOnHover:Boolean,floating:Boolean,modelValue:{type:Boolean,default:null},permanent:Boolean,rail:{type:Boolean,default:null},railWidth:{type:[Number,String],default:56},scrim:{type:[Boolean,String],default:!0},image:String,temporary:Boolean,persistent:Boolean,touchless:Boolean,width:{type:[Number,String],default:256},location:{type:String,default:"start",validator:e=>yT.includes(e)},sticky:Boolean,...Yt(),...ve(),...gc(),...Ka({mobile:null}),...vt(),...$a(),...Xe(),...Pe({tag:"nav"}),...De()},"VNavigationDrawer"),pT=j()({name:"VNavigationDrawer",props:bT(),emits:{"update:modelValue":e=>!0,"update:rail":e=>!0},setup(e,t){let{attrs:n,emit:a,slots:l}=t;const{isRtl:o}=ht(),{themeClasses:i}=$e(e),{borderClasses:r}=ln(e),{backgroundColorClasses:s,backgroundColorStyles:u}=Ge(N(e,"color")),{elevationClasses:c}=kt(e),{displayClasses:f,mobile:v}=sn(e),{roundedClasses:m}=tt(e),g=Rh(),h=Se(e,"modelValue",null,ne=>!!ne),{ssrBootStyles:y}=Ha(),{scopeId:p}=Ya(),S=te(),C=ue(!1),{runOpenDelay:A,runCloseDelay:x}=yc(e,ne=>{C.value=ne}),k=b(()=>e.rail&&e.expandOnHover&&C.value?Number(e.width):Number(e.rail?e.railWidth:e.width)),V=b(()=>bs(e.location,o.value)),T=b(()=>e.persistent),w=b(()=>!e.permanent&&(v.value||e.temporary)),P=b(()=>e.sticky&&!w.value&&V.value!=="bottom");Nt(()=>e.expandOnHover&&e.rail!=null,()=>{de(C,ne=>a("update:rail",!ne))}),Nt(()=>!e.disableResizeWatcher,()=>{de(w,ne=>!e.permanent&&Oe(()=>h.value=!ne))}),Nt(()=>!e.disableRouteWatcher&&!!g,()=>{de(g.currentRoute,()=>w.value&&(h.value=!1))}),de(()=>e.permanent,ne=>{ne&&(h.value=!0)}),e.modelValue==null&&!w.value&&(h.value=e.permanent||!v.value);const{isDragging:E,dragProgress:I}=gT({el:S,isActive:h,isTemporary:w,width:k,touchless:N(e,"touchless"),position:V}),R=b(()=>{const ne=w.value?0:e.rail&&e.expandOnHover?Number(e.railWidth):k.value;return E.value?ne*I.value:ne}),F=b(()=>["top","bottom"].includes(e.location)?0:k.value),{layoutItemStyles:z,layoutItemScrimStyles:q,layoutIsReady:ee}=Na({id:e.name,order:b(()=>parseInt(e.order,10)),position:V,layoutSize:R,elementSize:F,active:b(()=>h.value||E.value),disableTransitions:b(()=>E.value),absolute:b(()=>e.absolute||P.value&&typeof $.value!="string")}),{isStuck:$,stickyStyles:Z}=dT({rootEl:S,isSticky:P,layoutItemStyles:z}),M=Ge(b(()=>typeof e.scrim=="string"?e.scrim:null)),U=b(()=>({...E.value?{opacity:I.value*.2,transition:"none"}:void 0,...q.value}));return et({VList:{bgColor:"transparent"}}),Y(()=>{const ne=l.image||e.image;return d(ge,null,[d(e.tag,X({ref:S,onMouseenter:A,onMouseleave:x,class:["v-navigation-drawer",`v-navigation-drawer--${V.value}`,{"v-navigation-drawer--expand-on-hover":e.expandOnHover,"v-navigation-drawer--floating":e.floating,"v-navigation-drawer--is-hovering":C.value,"v-navigation-drawer--rail":e.rail,"v-navigation-drawer--temporary":w.value,"v-navigation-drawer--persistent":T.value,"v-navigation-drawer--active":h.value,"v-navigation-drawer--sticky":P.value},i.value,s.value,r.value,f.value,c.value,m.value,e.class],style:[u.value,z.value,y.value,Z.value,e.style,["top","bottom"].includes(V.value)?{height:"auto"}:{}]},p,n),{default:()=>{var he,we,ye;return[ne&&d("div",{key:"image",class:"v-navigation-drawer__img"},[l.image?d(Be,{key:"image-defaults",disabled:!e.image,defaults:{VImg:{alt:"",cover:!0,height:"inherit",src:e.image}}},l.image):d(Nn,{key:"image-img",alt:"",cover:!0,height:"inherit",src:e.image},null)]),l.prepend&&d("div",{class:"v-navigation-drawer__prepend"},[(he=l.prepend)==null?void 0:he.call(l)]),d("div",{class:"v-navigation-drawer__content"},[(we=l.default)==null?void 0:we.call(l)]),l.append&&d("div",{class:"v-navigation-drawer__append"},[(ye=l.append)==null?void 0:ye.call(l)])]}}),d(Cn,{name:"fade-transition"},{default:()=>[w.value&&(E.value||h.value)&&!!e.scrim&&d("div",X({class:["v-navigation-drawer__scrim",M.backgroundColorClasses.value],style:[U.value,M.backgroundColorStyles.value],onClick:()=>{T.value||(h.value=!1)}},p),null)]})])}),ee.then(()=>({isStuck:$}))}}),ST=Kt({name:"VNoSsr",setup(e,t){let{slots:n}=t;const a=Kg();return()=>{var l;return a.value&&((l=n.default)==null?void 0:l.call(n))}}}),wT=L({autofocus:Boolean,divider:String,focusAll:Boolean,label:{type:String,default:"$vuetify.input.otp"},length:{type:[Number,String],default:6},modelValue:{type:[Number,String],default:void 0},placeholder:String,type:{type:String,default:"number"},...gt(),...Eo(),...zi(Ao({variant:"outlined"}),["baseColor","bgColor","class","color","disabled","error","loading","rounded","style","theme","variant"])},"VOtpInput"),kT=j()({name:"VOtpInput",props:wT(),emits:{finish:e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{attrs:n,emit:a,slots:l}=t;const{dimensionStyles:o}=yt(e),{isFocused:i,focus:r,blur:s}=Yn(e),u=Se(e,"modelValue","",T=>T==null?[]:String(T).split(""),T=>T.join("")),{t:c}=lt(),f=b(()=>Number(e.length)),v=b(()=>Array(f.value).fill(0)),m=te(-1),g=te(),h=te([]),y=b(()=>h.value[m.value]);function p(){if(V(y.value.value)){y.value.value="";return}const T=u.value.slice(),w=y.value.value;T[m.value]=w;let P=null;m.value>u.value.length?P=u.value.length+1:m.value+1!==f.value&&(P="next"),u.value=T,P&&dl(g.value,P)}function S(T){const w=u.value.slice(),P=m.value;let E=null;["ArrowLeft","ArrowRight","Backspace","Delete"].includes(T.key)&&(T.preventDefault(),T.key==="ArrowLeft"?E="prev":T.key==="ArrowRight"?E="next":["Backspace","Delete"].includes(T.key)&&(w[m.value]="",u.value=w,m.value>0&&T.key==="Backspace"?E="prev":requestAnimationFrame(()=>{var I;(I=h.value[P])==null||I.select()})),requestAnimationFrame(()=>{E!=null&&dl(g.value,E)}))}function C(T,w){var E,I;w.preventDefault(),w.stopPropagation();const P=((E=w==null?void 0:w.clipboardData)==null?void 0:E.getData("Text"))??"";V(P)||(u.value=P.split(""),(I=h.value)==null||I[T].blur())}function A(){u.value=[]}function x(T,w){r(),m.value=w}function k(){s(),m.value=-1}function V(T){return e.type==="number"&&/[^0-9]/g.test(T)}return et({VField:{color:b(()=>e.color),bgColor:b(()=>e.color),baseColor:b(()=>e.baseColor),disabled:b(()=>e.disabled),error:b(()=>e.error),variant:b(()=>e.variant)}},{scoped:!0}),de(u,T=>{T.length===f.value&&a("finish",T.join(""))},{deep:!0}),de(m,T=>{T<0||Oe(()=>{var w;(w=h.value[T])==null||w.select()})}),Y(()=>{var P;const[T,w]=fa(n);return d("div",X({class:["v-otp-input",{"v-otp-input--divided":!!e.divider},e.class],style:[e.style]},T),[d("div",{ref:g,class:"v-otp-input__content",style:[o.value]},[v.value.map((E,I)=>d(ge,null,[e.divider&&I!==0&&d("span",{class:"v-otp-input__divider"},[e.divider]),d(_l,{focused:i.value&&e.focusAll||m.value===I,key:I},{...l,loader:void 0,default:()=>d("input",{ref:R=>h.value[I]=R,"aria-label":c(e.label,I+1),autofocus:I===0&&e.autofocus,autocomplete:"one-time-code",class:["v-otp-input__field"],disabled:e.disabled,inputmode:e.type==="number"?"numeric":"text",min:e.type==="number"?0:void 0,maxlength:"1",placeholder:e.placeholder,type:e.type==="number"?"text":e.type,value:u.value[I],onInput:p,onFocus:R=>x(R,I),onBlur:k,onKeydown:S,onPaste:R=>C(I,R)},null)})])),d("input",X({class:"v-otp-input-input",type:"hidden"},w,{value:u.value.join("")}),null),d(_n,{contained:!0,"content-class":"v-otp-input__loader","model-value":!!e.loading,persistent:!0},{default:()=>{var E;return[((E=l.loader)==null?void 0:E.call(l))??d(yl,{color:typeof e.loading=="boolean"?void 0:e.loading,indeterminate:!0,size:"24",width:"2"},null)]}}),(P=l.default)==null?void 0:P.call(l)])])}),{blur:()=>{var T;(T=h.value)==null||T.some(w=>w.blur())},focus:()=>{var T;(T=h.value)==null||T[0].focus()},reset:A,isFocused:i}}});function xT(e){return Math.floor(Math.abs(e))*Math.sign(e)}const CT=L({scale:{type:[Number,String],default:.5},...ve()},"VParallax"),_T=j()({name:"VParallax",props:CT(),setup(e,t){let{slots:n}=t;const{intersectionRef:a,isIntersecting:l}=Yi(),{resizeRef:o,contentRect:i}=fn(),{height:r}=sn(),s=te();nt(()=>{var m;a.value=o.value=(m=s.value)==null?void 0:m.$el});let u;de(l,m=>{m?(u=Wu(a.value),u=u===document.scrollingElement?document:u,u.addEventListener("scroll",v,{passive:!0}),v()):u.removeEventListener("scroll",v)}),Pt(()=>{u==null||u.removeEventListener("scroll",v)}),de(r,v),de(()=>{var m;return(m=i.value)==null?void 0:m.height},v);const c=b(()=>1-ot(+e.scale));let f=-1;function v(){l.value&&(cancelAnimationFrame(f),f=requestAnimationFrame(()=>{var x;const m=((x=s.value)==null?void 0:x.$el).querySelector(".v-img__img");if(!m)return;const g=u instanceof Document?document.documentElement.clientHeight:u.clientHeight,h=u instanceof Document?window.scrollY:u.scrollTop,y=a.value.getBoundingClientRect().top+h,p=i.value.height,S=y+(p-g)/2,C=xT((h-S)*c.value),A=Math.max(1,(c.value*(g-p)+p)/p);m.style.setProperty("transform",`translateY(${C}px) scale(${A})`)}))}return Y(()=>d(Nn,{class:["v-parallax",{"v-parallax--active":l.value},e.class],style:e.style,ref:s,cover:!0,onLoadstart:v,onLoad:v},n)),{}}}),VT=L({...ir({falseIcon:"$radioOff",trueIcon:"$radioOn"})},"VRadio"),PT=j()({name:"VRadio",props:VT(),setup(e,t){let{slots:n}=t;return Y(()=>d(Aa,X(e,{class:["v-radio",e.class],style:e.style,type:"radio"}),n)),{}}}),IT=L({height:{type:[Number,String],default:"auto"},...qn(),...ct(dc(),["multiple"]),trueIcon:{type:_e,default:"$radioOn"},falseIcon:{type:_e,default:"$radioOff"},type:{type:String,default:"radio"}},"VRadioGroup"),TT=j()({name:"VRadioGroup",inheritAttrs:!1,props:IT(),emits:{"update:modelValue":e=>!0},setup(e,t){let{attrs:n,slots:a}=t;const l=wt(),o=b(()=>e.id||`radio-group-${l}`),i=Se(e,"modelValue");return Y(()=>{const[r,s]=fa(n),u=_t.filterProps(e),c=Aa.filterProps(e),f=a.label?a.label({label:e.label,props:{for:o.value}}):e.label;return d(_t,X({class:["v-radio-group",e.class],style:e.style},r,u,{modelValue:i.value,"onUpdate:modelValue":v=>i.value=v,id:o.value}),{...a,default:v=>{let{id:m,messagesId:g,isDisabled:h,isReadonly:y}=v;return d(ge,null,[f&&d(Cl,{id:m.value},{default:()=>[f]}),d(Cg,X(c,{id:m.value,"aria-describedby":g.value,defaultsTarget:"VRadio",trueIcon:e.trueIcon,falseIcon:e.falseIcon,type:e.type,disabled:h.value,readonly:y.value,"aria-labelledby":f?m.value:void 0,multiple:!1},s,{modelValue:i.value,"onUpdate:modelValue":p=>i.value=p}),a)])}})}),{}}}),ET=L({...Eo(),...qn(),...uy(),strict:Boolean,modelValue:{type:Array,default:()=>[0,0]}},"VRangeSlider"),AT=j()({name:"VRangeSlider",props:ET(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,end:e=>!0,start:e=>!0},setup(e,t){let{slots:n,emit:a}=t;const l=te(),o=te(),i=te(),{rtlClasses:r}=ht();function s(P){if(!l.value||!o.value)return;const E=Hs(P,l.value.$el,e.direction),I=Hs(P,o.value.$el,e.direction),R=Math.abs(E),F=Math.abs(I);return RP!=null&&P.length?P.map(E=>u.roundValue(E)):[0,0]),{activeThumbRef:f,hasLabels:v,max:m,min:g,mousePressed:h,onSliderMousedown:y,onSliderTouchstart:p,position:S,trackContainerRef:C,readonly:A}=dy({props:e,steps:u,onSliderStart:()=>{a("start",c.value)},onSliderEnd:P=>{var R;let{value:E}=P;const I=f.value===((R=l.value)==null?void 0:R.$el)?[E,c.value[1]]:[c.value[0],E];!e.strict&&I[0]{var F,z,q,ee;let{value:E}=P;const[I,R]=c.value;!e.strict&&I===R&&I!==g.value&&(f.value=E>I?(F=o.value)==null?void 0:F.$el:(z=l.value)==null?void 0:z.$el,(q=f.value)==null||q.focus()),f.value===((ee=l.value)==null?void 0:ee.$el)?c.value=[Math.min(E,R),R]:c.value=[I,Math.max(I,E)]},getActiveThumb:s}),{isFocused:x,focus:k,blur:V}=Yn(e),T=b(()=>S(c.value[0])),w=b(()=>S(c.value[1]));return Y(()=>{const P=_t.filterProps(e),E=!!(e.label||n.label||n.prepend);return d(_t,X({class:["v-slider","v-range-slider",{"v-slider--has-labels":!!n["tick-label"]||v.value,"v-slider--focused":x.value,"v-slider--pressed":h.value,"v-slider--disabled":e.disabled},r.value,e.class],style:e.style,ref:i},P,{focused:x.value}),{...n,prepend:E?I=>{var R,F;return d(ge,null,[((R=n.label)==null?void 0:R.call(n,I))??(e.label?d(Cl,{class:"v-slider__label",text:e.label},null):void 0),(F=n.prepend)==null?void 0:F.call(n,I)])}:void 0,default:I=>{var z,q;let{id:R,messagesId:F}=I;return d("div",{class:"v-slider__container",onMousedown:A.value?void 0:y,onTouchstartPassive:A.value?void 0:p},[d("input",{id:`${R.value}_start`,name:e.name||R.value,disabled:!!e.disabled,readonly:!!e.readonly,tabindex:"-1",value:c.value[0]},null),d("input",{id:`${R.value}_stop`,name:e.name||R.value,disabled:!!e.disabled,readonly:!!e.readonly,tabindex:"-1",value:c.value[1]},null),d(fy,{ref:C,start:T.value,stop:w.value},{"tick-label":n["tick-label"]}),d(zs,{ref:l,"aria-describedby":F.value,focused:x&&f.value===((z=l.value)==null?void 0:z.$el),modelValue:c.value[0],"onUpdate:modelValue":ee=>c.value=[ee,c.value[1]],onFocus:ee=>{var $,Z,M,U;k(),f.value=($=l.value)==null?void 0:$.$el,c.value[0]===c.value[1]&&c.value[1]===g.value&&ee.relatedTarget!==((Z=o.value)==null?void 0:Z.$el)&&((M=l.value)==null||M.$el.blur(),(U=o.value)==null||U.$el.focus())},onBlur:()=>{V(),f.value=void 0},min:g.value,max:c.value[1],position:T.value,ripple:e.ripple},{"thumb-label":n["thumb-label"]}),d(zs,{ref:o,"aria-describedby":F.value,focused:x&&f.value===((q=o.value)==null?void 0:q.$el),modelValue:c.value[1],"onUpdate:modelValue":ee=>c.value=[c.value[0],ee],onFocus:ee=>{var $,Z,M,U;k(),f.value=($=o.value)==null?void 0:$.$el,c.value[0]===c.value[1]&&c.value[0]===m.value&&ee.relatedTarget!==((Z=l.value)==null?void 0:Z.$el)&&((M=o.value)==null||M.$el.blur(),(U=l.value)==null||U.$el.focus())},onBlur:()=>{V(),f.value=void 0},min:c.value[0],max:m.value,position:w.value,ripple:e.ripple},{"thumb-label":n["thumb-label"]})])}})}),{}}}),BT=L({name:String,itemAriaLabel:{type:String,default:"$vuetify.rating.ariaLabel.item"},activeColor:String,color:String,clearable:Boolean,disabled:Boolean,emptyIcon:{type:_e,default:"$ratingEmpty"},fullIcon:{type:_e,default:"$ratingFull"},halfIncrements:Boolean,hover:Boolean,length:{type:[Number,String],default:5},readonly:Boolean,modelValue:{type:[Number,String],default:0},itemLabels:Array,itemLabelPosition:{type:String,default:"top",validator:e=>["top","bottom"].includes(e)},ripple:Boolean,...ve(),...bt(),...An(),...Pe(),...De()},"VRating"),RT=j()({name:"VRating",props:BT(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{t:a}=lt(),{themeClasses:l}=$e(e),o=Se(e,"modelValue"),i=b(()=>ot(parseFloat(o.value),0,+e.length)),r=b(()=>xn(Number(e.length),1)),s=b(()=>r.value.flatMap(h=>e.halfIncrements?[h-.5,h]:[h])),u=ue(-1),c=b(()=>s.value.map(h=>{const y=e.hover&&u.value>-1,p=i.value>=h,S=u.value>=h,A=(y?S:p)?e.fullIcon:e.emptyIcon,x=e.activeColor??e.color,k=p||S?x:e.color;return{isFilled:p,isHovered:S,icon:A,color:k}})),f=b(()=>[0,...s.value].map(h=>{function y(){u.value=h}function p(){u.value=-1}function S(){e.disabled||e.readonly||(o.value=i.value===h&&e.clearable?0:h)}return{onMouseenter:e.hover?y:void 0,onMouseleave:e.hover?p:void 0,onClick:S}})),v=b(()=>e.name??`v-rating-${wt()}`);function m(h){var T,w;let{value:y,index:p,showStar:S=!0}=h;const{onMouseenter:C,onMouseleave:A,onClick:x}=f.value[p+1],k=`${v.value}-${String(y).replace(".","-")}`,V={color:(T=c.value[p])==null?void 0:T.color,density:e.density,disabled:e.disabled,icon:(w=c.value[p])==null?void 0:w.icon,ripple:e.ripple,size:e.size,variant:"plain"};return d(ge,null,[d("label",{for:k,class:{"v-rating__item--half":e.halfIncrements&&y%1>0,"v-rating__item--full":e.halfIncrements&&y%1===0},onMouseenter:C,onMouseleave:A,onClick:x},[d("span",{class:"v-rating__hidden"},[a(e.itemAriaLabel,y,e.length)]),S?n.item?n.item({...c.value[p],props:V,value:y,index:p,rating:i.value}):d(Me,X({"aria-label":a(e.itemAriaLabel,y,e.length)},V),null):void 0]),d("input",{class:"v-rating__hidden",name:v.value,id:k,type:"radio",value:y,checked:i.value===y,tabindex:-1,readonly:e.readonly,disabled:e.disabled},null)])}function g(h){return n["item-label"]?n["item-label"](h):h.label?d("span",null,[h.label]):d("span",null,[mt(" ")])}return Y(()=>{var y;const h=!!((y=e.itemLabels)!=null&&y.length)||n["item-label"];return d(e.tag,{class:["v-rating",{"v-rating--hover":e.hover,"v-rating--readonly":e.readonly},l.value,e.class],style:e.style},{default:()=>[d(m,{value:0,index:-1,showStar:!1},null),r.value.map((p,S)=>{var C,A;return d("div",{class:"v-rating__wrapper"},[h&&e.itemLabelPosition==="top"?g({value:p,index:S,label:(C=e.itemLabels)==null?void 0:C[S]}):void 0,d("div",{class:"v-rating__item"},[e.halfIncrements?d(ge,null,[d(m,{value:p-.5,index:S*2},null),d(m,{value:p,index:S*2+1},null)]):d(m,{value:p,index:S},null)]),h&&e.itemLabelPosition==="bottom"?g({value:p,index:S,label:(A=e.itemLabels)==null?void 0:A[S]}):void 0])})]})}),{}}}),OT={actions:"button@2",article:"heading, paragraph",avatar:"avatar",button:"button",card:"image, heading","card-avatar":"image, list-item-avatar",chip:"chip","date-picker":"list-item, heading, divider, date-picker-options, date-picker-days, actions","date-picker-options":"text, avatar@2","date-picker-days":"avatar@28",divider:"divider",heading:"heading",image:"image","list-item":"text","list-item-avatar":"avatar, text","list-item-two-line":"sentences","list-item-avatar-two-line":"avatar, sentences","list-item-three-line":"paragraph","list-item-avatar-three-line":"avatar, paragraph",ossein:"ossein",paragraph:"text@3",sentences:"text@2",subtitle:"text",table:"table-heading, table-thead, table-tbody, table-tfoot","table-heading":"chip, text","table-thead":"heading@6","table-tbody":"table-row-divider@6","table-row-divider":"table-row, divider","table-row":"text@6","table-tfoot":"text@2, avatar@2",text:"text"};function DT(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return d("div",{class:["v-skeleton-loader__bone",`v-skeleton-loader__${e}`]},[t])}function tv(e){const[t,n]=e.split("@");return Array.from({length:n}).map(()=>wr(t))}function wr(e){let t=[];if(!e)return t;const n=OT[e];if(e!==n){if(e.includes(","))return nv(e);if(e.includes("@"))return tv(e);n.includes(",")?t=nv(n):n.includes("@")?t=tv(n):n&&t.push(wr(n))}return[DT(e,t)]}function nv(e){return e.replace(/\s/g,"").split(",").map(wr)}const LT=L({boilerplate:Boolean,color:String,loading:Boolean,loadingText:{type:String,default:"$vuetify.loading"},type:{type:[String,Array],default:"ossein"},...gt(),...vt(),...De()},"VSkeletonLoader"),MT=j()({name:"VSkeletonLoader",props:LT(),setup(e,t){let{slots:n}=t;const{backgroundColorClasses:a,backgroundColorStyles:l}=Ge(N(e,"color")),{dimensionStyles:o}=yt(e),{elevationClasses:i}=kt(e),{themeClasses:r}=$e(e),{t:s}=lt(),u=b(()=>wr(Qe(e.type).join(",")));return Y(()=>{var f;const c=!n.default||e.loading;return d("div",{class:["v-skeleton-loader",{"v-skeleton-loader--boilerplate":e.boilerplate},r.value,a.value,i.value],style:[l.value,c?o.value:{}],"aria-busy":e.boilerplate?void 0:c,"aria-live":e.boilerplate?void 0:"polite","aria-label":e.boilerplate?void 0:s(e.loadingText),role:e.boilerplate?void 0:"alert"},[c?u.value:(f=n.default)==null?void 0:f.call(n)])}),{}}}),FT=j()({name:"VSlideGroupItem",props:Ua(),emits:{"group:selected":e=>!0},setup(e,t){let{slots:n}=t;const a=Wa(e,Ig);return()=>{var l;return(l=n.default)==null?void 0:l.call(n,{isSelected:a.isSelected.value,select:a.select,toggle:a.toggle,selectedClass:a.selectedClass.value})}}});function $T(e){const t=ue(e);let n=-1;function a(){clearInterval(n)}function l(){a(),Oe(()=>t.value=e)}function o(i){const r=i?getComputedStyle(i):{transitionDuration:.2},s=parseFloat(r.transitionDuration)*1e3||200;if(a(),t.value<=0)return;const u=performance.now();n=window.setInterval(()=>{const c=performance.now()-u+s;t.value=Math.max(e-c,0),t.value<=0&&a()},s)}return Ot(a),{clear:a,time:t,start:o,reset:l}}const NT=L({multiLine:Boolean,text:String,timer:[Boolean,String],timeout:{type:[Number,String],default:5e3},vertical:Boolean,...Gn({location:"bottom"}),...kl(),...Xe(),...on(),...De(),...ct(Oo({transition:"v-snackbar-transition"}),["persistent","noClickAnimation","scrim","scrollStrategy"])},"VSnackbar"),HT=j()({name:"VSnackbar",props:NT(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const a=Se(e,"modelValue"),{positionClasses:l}=xl(e),{scopeId:o}=Ya(),{themeClasses:i}=$e(e),{colorClasses:r,colorStyles:s,variantClasses:u}=za(e),{roundedClasses:c}=tt(e),f=$T(Number(e.timeout)),v=te(),m=te(),g=ue(!1),h=ue(0),y=te(),p=Te(oo,void 0);Nt(()=>!!p,()=>{const P=ch();nt(()=>{y.value=P.mainStyles.value})}),de(a,C),de(()=>e.timeout,C),Vt(()=>{a.value&&C()});let S=-1;function C(){f.reset(),window.clearTimeout(S);const P=Number(e.timeout);if(!a.value||P===-1)return;const E=Fu(m.value);f.start(E),S=window.setTimeout(()=>{a.value=!1},P)}function A(){f.reset(),window.clearTimeout(S)}function x(){g.value=!0,A()}function k(){g.value=!1,C()}function V(P){h.value=P.touches[0].clientY}function T(P){Math.abs(h.value-P.changedTouches[0].clientY)>50&&(a.value=!1)}const w=b(()=>e.location.split(" ").reduce((P,E)=>(P[`v-snackbar--${E}`]=!0,P),{}));return Y(()=>{const P=_n.filterProps(e),E=!!(n.default||n.text||e.text);return d(_n,X({ref:v,class:["v-snackbar",{"v-snackbar--active":a.value,"v-snackbar--multi-line":e.multiLine&&!e.vertical,"v-snackbar--timer":!!e.timer,"v-snackbar--vertical":e.vertical},w.value,l.value,e.class],style:[y.value,e.style]},P,{modelValue:a.value,"onUpdate:modelValue":I=>a.value=I,contentProps:X({class:["v-snackbar__wrapper",i.value,r.value,c.value,u.value],style:[s.value],onPointerenter:x,onPointerleave:k},P.contentProps),persistent:!0,noClickAnimation:!0,scrim:!1,scrollStrategy:"none",_disableGlobalStack:!0,onTouchstartPassive:V,onTouchend:T},o),{default:()=>{var I,R;return[ma(!1,"v-snackbar"),e.timer&&!g.value&&d("div",{key:"timer",class:"v-snackbar__timer"},[d(qi,{ref:m,color:typeof e.timer=="string"?e.timer:"info",max:e.timeout,"model-value":f.time.value},null)]),E&&d("div",{key:"content",class:"v-snackbar__content",role:"status","aria-live":"polite"},[((I=n.text)==null?void 0:I.call(n))??e.text,(R=n.default)==null?void 0:R.call(n)]),n.actions&&d(Be,{defaults:{VBtn:{variant:"text",ripple:!1,slim:!0}}},{default:()=>[d("div",{class:"v-snackbar__actions"},[n.actions({isActive:a})])]})]},activator:n.activator})}),rn({},v)}}),Wy=L({autoDraw:Boolean,autoDrawDuration:[Number,String],autoDrawEasing:{type:String,default:"ease"},color:String,gradient:{type:Array,default:()=>[]},gradientDirection:{type:String,validator:e=>["top","bottom","left","right"].includes(e),default:"top"},height:{type:[String,Number],default:75},labels:{type:Array,default:()=>[]},labelSize:{type:[Number,String],default:7},lineWidth:{type:[String,Number],default:4},id:String,itemValue:{type:String,default:"value"},modelValue:{type:Array,default:()=>[]},min:[String,Number],max:[String,Number],padding:{type:[String,Number],default:8},showLabels:Boolean,smooth:Boolean,width:{type:[Number,String],default:300}},"Line"),Gy=L({autoLineWidth:Boolean,...Wy()},"VBarline"),av=j()({name:"VBarline",props:Gy(),setup(e,t){let{slots:n}=t;const a=wt(),l=b(()=>e.id||`barline-${a}`),o=b(()=>Number(e.autoDrawDuration)||500),i=b(()=>!!(e.showLabels||e.labels.length>0||n!=null&&n.label)),r=b(()=>parseFloat(e.lineWidth)||4),s=b(()=>Math.max(e.modelValue.length*r.value,Number(e.width))),u=b(()=>({minX:0,maxX:s.value,minY:0,maxY:parseInt(e.height,10)})),c=b(()=>e.modelValue.map(h=>dt(h,e.itemValue,h)));function f(h,y){const{minX:p,maxX:S,minY:C,maxY:A}=y,x=h.length;let k=e.max!=null?Number(e.max):Math.max(...h),V=e.min!=null?Number(e.min):Math.min(...h);V>0&&e.min==null&&(V=0),k<0&&e.max==null&&(k=0);const T=S/x,w=(A-C)/(k-V||1),P=A-Math.abs(V*w);return h.map((E,I)=>{const R=Math.abs(w*E);return{x:p+I*T,y:P-R+ +(E<0)*R,height:R,value:E}})}const v=b(()=>{const h=[],y=f(c.value,u.value),p=y.length;for(let S=0;h.lengthf(c.value,u.value)),g=b(()=>(Math.abs(m.value[0].x-m.value[1].x)-r.value)/2);Y(()=>{const h=e.gradient.slice().length?e.gradient.slice().reverse():[""];return d("svg",{display:"block"},[d("defs",null,[d("linearGradient",{id:l.value,gradientUnits:"userSpaceOnUse",x1:e.gradientDirection==="left"?"100%":"0",y1:e.gradientDirection==="top"?"100%":"0",x2:e.gradientDirection==="right"?"100%":"0",y2:e.gradientDirection==="bottom"?"100%":"0"},[h.map((y,p)=>d("stop",{offset:p/Math.max(h.length-1,1),"stop-color":y||"currentColor"},null))])]),d("clipPath",{id:`${l.value}-clip`},[m.value.map(y=>d("rect",{x:y.x+g.value,y:y.y,width:r.value,height:y.height,rx:typeof e.smooth=="number"?e.smooth:e.smooth?2:0,ry:typeof e.smooth=="number"?e.smooth:e.smooth?2:0},[e.autoDraw&&d(ge,null,[d("animate",{attributeName:"y",from:y.y+y.height,to:y.y,dur:`${o.value}ms`,fill:"freeze"},null),d("animate",{attributeName:"height",from:"0",to:y.height,dur:`${o.value}ms`,fill:"freeze"},null)])]))]),i.value&&d("g",{key:"labels",style:{textAnchor:"middle",dominantBaseline:"mathematical",fill:"currentColor"}},[v.value.map((y,p)=>{var S;return d("text",{x:y.x+g.value+r.value/2,y:parseInt(e.height,10)-2+(parseInt(e.labelSize,10)||7*.75),"font-size":Number(e.labelSize)||7},[((S=n.label)==null?void 0:S.call(n,{index:p,value:y.value}))??y.value])})]),d("g",{"clip-path":`url(#${l.value}-clip)`,fill:`url(#${l.value})`},[d("rect",{x:0,y:0,width:Math.max(e.modelValue.length*r.value,Number(e.width)),height:e.height},null)])])})}});function zT(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1,a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:75;if(e.length===0)return"";const l=e.shift(),o=e[e.length-1];return(n?`M${l.x} ${a-l.x+2} L${l.x} ${l.y}`:`M${l.x} ${l.y}`)+e.map((i,r)=>{const s=e[r+1],u=e[r-1]||l,c=s&&jT(s,i,u);if(!s||c)return`L${i.x} ${i.y}`;const f=Math.min(lv(u,i),lv(s,i)),m=f/2e.id||`trendline-${a}`),o=b(()=>Number(e.autoDrawDuration)||(e.fill?500:2e3)),i=te(0),r=te(null);function s(y,p){const{minX:S,maxX:C,minY:A,maxY:x}=p,k=y.length,V=e.max!=null?Number(e.max):Math.max(...y),T=e.min!=null?Number(e.min):Math.min(...y),w=(C-S)/(k-1),P=(x-A)/(V-T||1);return y.map((E,I)=>({x:S+I*w,y:x-(E-T)*P,value:E}))}const u=b(()=>!!(e.showLabels||e.labels.length>0||n!=null&&n.label)),c=b(()=>parseFloat(e.lineWidth)||4),f=b(()=>Number(e.width)),v=b(()=>{const y=Number(e.padding);return{minX:y,maxX:f.value-y,minY:y,maxY:parseInt(e.height,10)-y}}),m=b(()=>e.modelValue.map(y=>dt(y,e.itemValue,y))),g=b(()=>{const y=[],p=s(m.value,v.value),S=p.length;for(let C=0;y.lengthe.modelValue,async()=>{if(await Oe(),!e.autoDraw||!r.value)return;const y=r.value,p=y.getTotalLength();e.fill?(y.style.transformOrigin="bottom center",y.style.transition="none",y.style.transform="scaleY(0)",y.getBoundingClientRect(),y.style.transition=`transform ${o.value}ms ${e.autoDrawEasing}`,y.style.transform="scaleY(1)"):(y.style.strokeDasharray=`${p}`,y.style.strokeDashoffset=`${p}`,y.getBoundingClientRect(),y.style.transition=`stroke-dashoffset ${o.value}ms ${e.autoDrawEasing}`,y.style.strokeDashoffset="0"),i.value=p},{immediate:!0});function h(y){return zT(s(m.value,v.value),e.smooth?8:Number(e.smooth),y,parseInt(e.height,10))}Y(()=>{var p;const y=e.gradient.slice().length?e.gradient.slice().reverse():[""];return d("svg",{display:"block","stroke-width":parseFloat(e.lineWidth)??4},[d("defs",null,[d("linearGradient",{id:l.value,gradientUnits:"userSpaceOnUse",x1:e.gradientDirection==="left"?"100%":"0",y1:e.gradientDirection==="top"?"100%":"0",x2:e.gradientDirection==="right"?"100%":"0",y2:e.gradientDirection==="bottom"?"100%":"0"},[y.map((S,C)=>d("stop",{offset:C/Math.max(y.length-1,1),"stop-color":S||"currentColor"},null))])]),u.value&&d("g",{key:"labels",style:{textAnchor:"middle",dominantBaseline:"mathematical",fill:"currentColor"}},[g.value.map((S,C)=>{var A;return d("text",{x:S.x+c.value/2+c.value/2,y:parseInt(e.height,10)-4+(parseInt(e.labelSize,10)||7*.75),"font-size":Number(e.labelSize)||7},[((A=n.label)==null?void 0:A.call(n,{index:C,value:S.value}))??S.value])})]),d("path",{ref:r,d:h(e.fill),fill:e.fill?`url(#${l.value})`:"none",stroke:e.fill?"none":`url(#${l.value})`},null),e.fill&&d("path",{d:h(!1),fill:"none",stroke:e.color??((p=e.gradient)==null?void 0:p[0])},null)])})}}),UT=L({type:{type:String,default:"trend"},...Gy(),...Ky()},"VSparkline"),WT=j()({name:"VSparkline",props:UT(),setup(e,t){let{slots:n}=t;const{textColorClasses:a,textColorStyles:l}=Ct(N(e,"color")),o=b(()=>!!(e.showLabels||e.labels.length>0||n!=null&&n.label)),i=b(()=>{let r=parseInt(e.height,10);return o.value&&(r+=parseInt(e.labelSize,10)*1.5),r});Y(()=>{const r=e.type==="trend"?iv:av,s=e.type==="trend"?iv.filterProps(e):av.filterProps(e);return d(r,X({key:e.type,class:a.value,style:l.value,viewBox:`0 0 ${e.width} ${parseInt(i.value,10)}`},s),n)})}}),GT=L({...ve(),...Jg({offset:8,minWidth:0,openDelay:0,closeDelay:100,location:"top center",transition:"scale-transition"})},"VSpeedDial"),KT=j()({name:"VSpeedDial",props:GT(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const a=Se(e,"modelValue"),l=te(),o=b(()=>{const[r,s="center"]=e.location.split(" ");return`${r} ${s}`}),i=b(()=>({[`v-speed-dial__content--${o.value.replace(" ","-")}`]:!0}));return Y(()=>{const r=bl.filterProps(e);return d(bl,X(r,{modelValue:a.value,"onUpdate:modelValue":s=>a.value=s,class:e.class,style:e.style,contentClass:["v-speed-dial__content",i.value],location:o.value,ref:l,transition:"fade-transition"}),{...n,default:s=>d(Be,{defaults:{VBtn:{size:"small"}}},{default:()=>[d(Rt,{appear:!0,group:!0,transition:e.transition},{default:()=>{var u;return[(u=n.default)==null?void 0:u.call(n,s)]}})]})})}),{}}}),Mc=Symbol.for("vuetify:v-stepper"),Yy=L({color:String,disabled:{type:[Boolean,String],default:!1},prevText:{type:String,default:"$vuetify.stepper.prev"},nextText:{type:String,default:"$vuetify.stepper.next"}},"VStepperActions"),qy=j()({name:"VStepperActions",props:Yy(),emits:{"click:prev":()=>!0,"click:next":()=>!0},setup(e,t){let{emit:n,slots:a}=t;const{t:l}=lt();function o(){n("click:prev")}function i(){n("click:next")}return Y(()=>{const r={onClick:o},s={onClick:i};return d("div",{class:"v-stepper-actions"},[d(Be,{defaults:{VBtn:{disabled:["prev",!0].includes(e.disabled),text:l(e.prevText),variant:"text"}}},{default:()=>{var u;return[((u=a.prev)==null?void 0:u.call(a,{props:r}))??d(Me,r,null)]}}),d(Be,{defaults:{VBtn:{color:e.color,disabled:["next",!0].includes(e.disabled),text:l(e.nextText),variant:"tonal"}}},{default:()=>{var u;return[((u=a.next)==null?void 0:u.call(a,{props:s}))??d(Me,s,null)]}})])}),{}}}),Xy=En("v-stepper-header"),YT=L({color:String,title:String,subtitle:String,complete:Boolean,completeIcon:{type:String,default:"$complete"},editable:Boolean,editIcon:{type:String,default:"$edit"},error:Boolean,errorIcon:{type:String,default:"$error"},icon:String,ripple:{type:[Boolean,Object],default:!0},rules:{type:Array,default:()=>[]}},"StepperItem"),qT=L({...YT(),...Ua()},"VStepperItem"),Jy=j()({name:"VStepperItem",directives:{Ripple:Kn},props:qT(),emits:{"group:selected":e=>!0},setup(e,t){let{slots:n}=t;const a=Wa(e,Mc,!0),l=b(()=>(a==null?void 0:a.value.value)??e.value),o=b(()=>e.rules.every(v=>v()===!0)),i=b(()=>!e.disabled&&e.editable),r=b(()=>!e.disabled&&e.editable),s=b(()=>e.error||!o.value),u=b(()=>e.complete||e.rules.length>0&&o.value),c=b(()=>s.value?e.errorIcon:u.value?e.completeIcon:a.isSelected.value&&e.editable?e.editIcon:e.icon),f=b(()=>({canEdit:r.value,hasError:s.value,hasCompleted:u.value,title:e.title,subtitle:e.subtitle,step:l.value,value:e.value}));return Y(()=>{var y,p,S;const v=(!a||a.isSelected.value||u.value||r.value)&&!s.value&&!e.disabled,m=!!(e.title!=null||n.title),g=!!(e.subtitle!=null||n.subtitle);function h(){a==null||a.toggle()}return Ue(d("button",{class:["v-stepper-item",{"v-stepper-item--complete":u.value,"v-stepper-item--disabled":e.disabled,"v-stepper-item--error":s.value},a==null?void 0:a.selectedClass.value],disabled:!e.editable,onClick:h},[i.value&&ma(!0,"v-stepper-item"),d(an,{key:"stepper-avatar",class:"v-stepper-item__avatar",color:v?e.color:void 0,size:24},{default:()=>{var C;return[((C=n.icon)==null?void 0:C.call(n,f.value))??(c.value?d(Fe,{icon:c.value},null):l.value)]}}),d("div",{class:"v-stepper-item__content"},[m&&d("div",{key:"title",class:"v-stepper-item__title"},[((y=n.title)==null?void 0:y.call(n,f.value))??e.title]),g&&d("div",{key:"subtitle",class:"v-stepper-item__subtitle"},[((p=n.subtitle)==null?void 0:p.call(n,f.value))??e.subtitle]),(S=n.default)==null?void 0:S.call(n,f.value)])]),[[Gt("ripple"),e.ripple&&e.editable,null]])}),{}}}),XT=L({...ct(ur(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])},"VStepperWindow"),Zy=j()({name:"VStepperWindow",props:XT(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const a=Te(Mc,null),l=Se(e,"modelValue"),o=b({get(){var i;return l.value!=null||!a?l.value:(i=a.items.value.find(r=>a.selected.value.includes(r.id)))==null?void 0:i.value},set(i){l.value=i}});return Y(()=>{const i=Ba.filterProps(e);return d(Ba,X({_as:"VStepperWindow"},i,{modelValue:o.value,"onUpdate:modelValue":r=>o.value=r,class:["v-stepper-window",e.class],style:e.style,mandatory:!1,touch:!1}),n)}),{}}}),JT=L({...cr()},"VStepperWindowItem"),Qy=j()({name:"VStepperWindowItem",props:JT(),setup(e,t){let{slots:n}=t;return Y(()=>{const a=Ra.filterProps(e);return d(Ra,X({_as:"VStepperWindowItem"},a,{class:["v-stepper-window-item",e.class],style:e.style}),n)}),{}}}),ZT=L({altLabels:Boolean,bgColor:String,completeIcon:String,editIcon:String,editable:Boolean,errorIcon:String,hideActions:Boolean,items:{type:Array,default:()=>[]},itemTitle:{type:String,default:"title"},itemValue:{type:String,default:"value"},nonLinear:Boolean,flat:Boolean,...Ka()},"Stepper"),QT=L({...ZT(),...ja({mandatory:"force",selectedClass:"v-stepper-item--selected"}),...dr(),...zi(Yy(),["prevText","nextText"])},"VStepper"),eE=j()({name:"VStepper",props:QT(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const{items:a,next:l,prev:o,selected:i}=ha(e,Mc),{displayClasses:r,mobile:s}=sn(e),{completeIcon:u,editIcon:c,errorIcon:f,color:v,editable:m,prevText:g,nextText:h}=Ri(e),y=b(()=>e.items.map((C,A)=>{const x=dt(C,e.itemTitle,C),k=dt(C,e.itemValue,A+1);return{title:x,value:k,raw:C}})),p=b(()=>a.value.findIndex(C=>i.value.includes(C.id))),S=b(()=>e.disabled?e.disabled:p.value===0?"prev":p.value===a.value.length-1?"next":!1);return et({VStepperItem:{editable:m,errorIcon:f,completeIcon:u,editIcon:c,prevText:g,nextText:h},VStepperActions:{color:v,disabled:S,prevText:g,nextText:h}}),Y(()=>{const C=Oa.filterProps(e),A=!!(n.header||e.items.length),x=e.items.length>0,k=!e.hideActions&&!!(x||n.actions);return d(Oa,X(C,{color:e.bgColor,class:["v-stepper",{"v-stepper--alt-labels":e.altLabels,"v-stepper--flat":e.flat,"v-stepper--non-linear":e.nonLinear,"v-stepper--mobile":s.value},r.value,e.class],style:e.style}),{default:()=>{var V,T;return[A&&d(Xy,{key:"stepper-header"},{default:()=>[y.value.map((w,P)=>{let{raw:E,...I}=w;return d(ge,null,[!!P&&d(Ro,null,null),d(Jy,I,{default:n[`header-item.${I.value}`]??n.header,icon:n.icon,title:n.title,subtitle:n.subtitle})])})]}),x&&d(Zy,{key:"stepper-window"},{default:()=>[y.value.map(w=>d(Qy,{value:w.value},{default:()=>{var P,E;return((P=n[`item.${w.value}`])==null?void 0:P.call(n,w))??((E=n.item)==null?void 0:E.call(n,w))}}))]}),(V=n.default)==null?void 0:V.call(n,{prev:o,next:l}),k&&(((T=n.actions)==null?void 0:T.call(n,{next:l,prev:o}))??d(qy,{key:"stepper-actions","onClick:prev":o,"onClick:next":l},n))]}})}),{prev:o,next:l}}}),tE=L({indeterminate:Boolean,inset:Boolean,flat:Boolean,loading:{type:[Boolean,String],default:!1},...qn(),...ir()},"VSwitch"),nE=j()({name:"VSwitch",inheritAttrs:!1,props:tE(),emits:{"update:focused":e=>!0,"update:modelValue":e=>!0,"update:indeterminate":e=>!0},setup(e,t){let{attrs:n,slots:a}=t;const l=Se(e,"indeterminate"),o=Se(e,"modelValue"),{loaderClasses:i}=_o(e),{isFocused:r,focus:s,blur:u}=Yn(e),c=te(),f=He&&window.matchMedia("(forced-colors: active)").matches,v=b(()=>typeof e.loading=="string"&&e.loading!==""?e.loading:e.color),m=wt(),g=b(()=>e.id||`switch-${m}`);function h(){l.value&&(l.value=!1)}function y(p){var S,C;p.stopPropagation(),p.preventDefault(),(C=(S=c.value)==null?void 0:S.input)==null||C.click()}return Y(()=>{const[p,S]=fa(n),C=_t.filterProps(e),A=Aa.filterProps(e);return d(_t,X({class:["v-switch",{"v-switch--flat":e.flat},{"v-switch--inset":e.inset},{"v-switch--indeterminate":l.value},i.value,e.class]},p,C,{modelValue:o.value,"onUpdate:modelValue":x=>o.value=x,id:g.value,focused:r.value,style:e.style}),{...a,default:x=>{let{id:k,messagesId:V,isDisabled:T,isReadonly:w,isValid:P}=x;const E={model:o,isValid:P};return d(Aa,X({ref:c},A,{modelValue:o.value,"onUpdate:modelValue":[I=>o.value=I,h],id:k.value,"aria-describedby":V.value,type:"checkbox","aria-checked":l.value?"mixed":void 0,disabled:T.value,readonly:w.value,onFocus:s,onBlur:u},S),{...a,default:I=>{let{backgroundColorClasses:R,backgroundColorStyles:F}=I;return d("div",{class:["v-switch__track",f?void 0:R.value],style:F.value,onClick:y},[a["track-true"]&&d("div",{key:"prepend",class:"v-switch__track-true"},[a["track-true"](E)]),a["track-false"]&&d("div",{key:"append",class:"v-switch__track-false"},[a["track-false"](E)])])},input:I=>{let{inputNode:R,icon:F,backgroundColorClasses:z,backgroundColorStyles:q}=I;return d(ge,null,[R,d("div",{class:["v-switch__thumb",{"v-switch__thumb--filled":F||e.loading},e.inset||f?void 0:z.value],style:e.inset?void 0:q.value},[a.thumb?d(Be,{defaults:{VIcon:{icon:F,size:"x-small"}}},{default:()=>[a.thumb({...E,icon:F})]}):d(oc,null,{default:()=>[e.loading?d(Vo,{name:"v-switch",active:!0,color:P.value===!1?void 0:v.value},{default:ee=>a.loader?a.loader(ee):d(yl,{active:ee.isActive,color:ee.color,indeterminate:!0,size:"16",width:"2"},null)}):F&&d(Fe,{key:String(F),icon:F,size:"x-small"},null)]})])])}})}})}),{}}}),aE=L({color:String,height:[Number,String],window:Boolean,...ve(),...vt(),...$a(),...Xe(),...Pe(),...De()},"VSystemBar"),lE=j()({name:"VSystemBar",props:aE(),setup(e,t){let{slots:n}=t;const{themeClasses:a}=$e(e),{backgroundColorClasses:l,backgroundColorStyles:o}=Ge(N(e,"color")),{elevationClasses:i}=kt(e),{roundedClasses:r}=tt(e),{ssrBootStyles:s}=Ha(),u=b(()=>e.height??(e.window?32:24)),{layoutItemStyles:c}=Na({id:e.name,order:b(()=>parseInt(e.order,10)),position:ue("top"),layoutSize:u,elementSize:u,active:b(()=>!0),absolute:N(e,"absolute")});return Y(()=>d(e.tag,{class:["v-system-bar",{"v-system-bar--window":e.window},a.value,l.value,i.value,r.value,e.class],style:[o.value,c.value,s.value,e.style]},n)),{}}}),Fc=Symbol.for("vuetify:v-tabs"),oE=L({fixed:Boolean,sliderColor:String,hideSlider:Boolean,direction:{type:String,default:"horizontal"},...ct(Ji({selectedClass:"v-tab--selected",variant:"text"}),["active","block","flat","location","position","symbol"])},"VTab"),eb=j()({name:"VTab",props:oE(),setup(e,t){let{slots:n,attrs:a}=t;const{textColorClasses:l,textColorStyles:o}=Ct(e,"sliderColor"),i=te(),r=te(),s=b(()=>e.direction==="horizontal"),u=b(()=>{var f,v;return((v=(f=i.value)==null?void 0:f.group)==null?void 0:v.isSelected.value)??!1});function c(f){var m,g;let{value:v}=f;if(v){const h=(g=(m=i.value)==null?void 0:m.$el.parentElement)==null?void 0:g.querySelector(".v-tab--selected .v-tab__slider"),y=r.value;if(!h||!y)return;const p=getComputedStyle(h).color,S=h.getBoundingClientRect(),C=y.getBoundingClientRect(),A=s.value?"x":"y",x=s.value?"X":"Y",k=s.value?"right":"bottom",V=s.value?"width":"height",T=S[A],w=C[A],P=T>w?S[k]-C[k]:S[A]-C[A],E=Math.sign(P)>0?s.value?"right":"bottom":Math.sign(P)<0?s.value?"left":"top":"center",R=(Math.abs(P)+(Math.sign(P)<0?S[V]:C[V]))/Math.max(S[V],C[V])||0,F=S[V]/C[V]||0,z=1.5;Ca(y,{backgroundColor:[p,"currentcolor"],transform:[`translate${x}(${P}px) scale${x}(${F})`,`translate${x}(${P/z}px) scale${x}(${(R-1)/z+1})`,"none"],transformOrigin:Array(3).fill(E)},{duration:225,easing:lo})}}return Y(()=>{const f=Me.filterProps(e);return d(Me,X({symbol:Fc,ref:i,class:["v-tab",e.class],style:e.style,tabindex:u.value?0:-1,role:"tab","aria-selected":String(u.value),active:!1},f,a,{block:e.fixed,maxWidth:e.fixed?300:void 0,"onGroup:selected":c}),{...n,default:()=>{var v;return d(ge,null,[((v=n.default)==null?void 0:v.call(n))??e.text,!e.hideSlider&&d("div",{ref:r,class:["v-tab__slider",l.value],style:o.value},null)])}})}),rn({},i)}}),iE=L({...ct(ur(),["continuous","nextIcon","prevIcon","showArrows","touch","mandatory"])},"VTabsWindow"),tb=j()({name:"VTabsWindow",props:iE(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const a=Te(Fc,null),l=Se(e,"modelValue"),o=b({get(){var i;return l.value!=null||!a?l.value:(i=a.items.value.find(r=>a.selected.value.includes(r.id)))==null?void 0:i.value},set(i){l.value=i}});return Y(()=>{const i=Ba.filterProps(e);return d(Ba,X({_as:"VTabsWindow"},i,{modelValue:o.value,"onUpdate:modelValue":r=>o.value=r,class:["v-tabs-window",e.class],style:e.style,mandatory:!1,touch:!1}),n)}),{}}}),rE=L({...cr()},"VTabsWindowItem"),nb=j()({name:"VTabsWindowItem",props:rE(),setup(e,t){let{slots:n}=t;return Y(()=>{const a=Ra.filterProps(e);return d(Ra,X({_as:"VTabsWindowItem"},a,{class:["v-tabs-window-item",e.class],style:e.style}),n)}),{}}});function sE(e){return e?e.map(t=>no(t)?t:{text:t,value:t}):[]}const uE=L({alignTabs:{type:String,default:"start"},color:String,fixedTabs:Boolean,items:{type:Array,default:()=>[]},stacked:Boolean,bgColor:String,grow:Boolean,height:{type:[Number,String],default:void 0},hideSlider:Boolean,sliderColor:String,...fc({mandatory:"force",selectedClass:"v-tab-item--selected"}),...bt(),...Pe()},"VTabs"),cE=j()({name:"VTabs",props:uE(),emits:{"update:modelValue":e=>!0},setup(e,t){let{attrs:n,slots:a}=t;const l=Se(e,"modelValue"),o=b(()=>sE(e.items)),{densityClasses:i}=Dt(e),{backgroundColorClasses:r,backgroundColorStyles:s}=Ge(N(e,"bgColor")),{scopeId:u}=Ya();return et({VTab:{color:N(e,"color"),direction:N(e,"direction"),stacked:N(e,"stacked"),fixed:N(e,"fixedTabs"),sliderColor:N(e,"sliderColor"),hideSlider:N(e,"hideSlider")}}),Y(()=>{const c=ho.filterProps(e),f=!!(a.window||e.items.length>0);return d(ge,null,[d(ho,X(c,{modelValue:l.value,"onUpdate:modelValue":v=>l.value=v,class:["v-tabs",`v-tabs--${e.direction}`,`v-tabs--align-tabs-${e.alignTabs}`,{"v-tabs--fixed-tabs":e.fixedTabs,"v-tabs--grow":e.grow,"v-tabs--stacked":e.stacked},i.value,r.value,e.class],style:[{"--v-tabs-height":fe(e.height)},s.value,e.style],role:"tablist",symbol:Fc},u,n),{default:()=>{var v;return[((v=a.default)==null?void 0:v.call(a))??o.value.map(m=>{var g;return((g=a.tab)==null?void 0:g.call(a,{item:m}))??d(eb,X(m,{key:m.text,value:m.value}),{default:a[`tab.${m.value}`]?()=>{var h;return(h=a[`tab.${m.value}`])==null?void 0:h.call(a,{item:m})}:void 0})})]}}),f&&d(tb,X({modelValue:l.value,"onUpdate:modelValue":v=>l.value=v,key:"tabs-window"},u),{default:()=>{var v;return[o.value.map(m=>{var g;return((g=a.item)==null?void 0:g.call(a,{item:m}))??d(nb,{value:m.value},{default:()=>{var h;return(h=a[`item.${m.value}`])==null?void 0:h.call(a,{item:m})}})}),(v=a.window)==null?void 0:v.call(a)]}})])}),{}}}),dE=L({autoGrow:Boolean,autofocus:Boolean,counter:[Boolean,Number,String],counterValue:Function,prefix:String,placeholder:String,persistentPlaceholder:Boolean,persistentCounter:Boolean,noResize:Boolean,rows:{type:[Number,String],default:5,validator:e=>!isNaN(parseFloat(e))},maxRows:{type:[Number,String],validator:e=>!isNaN(parseFloat(e))},suffix:String,modelModifiers:Object,...qn(),...Ao()},"VTextarea"),fE=j()({name:"VTextarea",directives:{Intersect:To},inheritAttrs:!1,props:dE(),emits:{"click:control":e=>!0,"mousedown:control":e=>!0,"update:focused":e=>!0,"update:modelValue":e=>!0},setup(e,t){let{attrs:n,emit:a,slots:l}=t;const o=Se(e,"modelValue"),{isFocused:i,focus:r,blur:s}=Yn(e),u=b(()=>typeof e.counterValue=="function"?e.counterValue(o.value):(o.value||"").toString().length),c=b(()=>{if(n.maxlength)return n.maxlength;if(!(!e.counter||typeof e.counter!="number"&&typeof e.counter!="string"))return e.counter});function f(E,I){var R,F;!e.autofocus||!E||(F=(R=I[0].target)==null?void 0:R.focus)==null||F.call(R)}const v=te(),m=te(),g=ue(""),h=te(),y=b(()=>e.persistentPlaceholder||i.value||e.active);function p(){var E;h.value!==document.activeElement&&((E=h.value)==null||E.focus()),i.value||r()}function S(E){p(),a("click:control",E)}function C(E){a("mousedown:control",E)}function A(E){E.stopPropagation(),p(),Oe(()=>{o.value="",Nu(e["onClick:clear"],E)})}function x(E){var R;const I=E.target;if(o.value=I.value,(R=e.modelModifiers)!=null&&R.trim){const F=[I.selectionStart,I.selectionEnd];Oe(()=>{I.selectionStart=F[0],I.selectionEnd=F[1]})}}const k=te(),V=te(+e.rows),T=b(()=>["plain","underlined"].includes(e.variant));nt(()=>{e.autoGrow||(V.value=+e.rows)});function w(){e.autoGrow&&Oe(()=>{if(!k.value||!m.value)return;const E=getComputedStyle(k.value),I=getComputedStyle(m.value.$el),R=parseFloat(E.getPropertyValue("--v-field-padding-top"))+parseFloat(E.getPropertyValue("--v-input-padding-top"))+parseFloat(E.getPropertyValue("--v-field-padding-bottom")),F=k.value.scrollHeight,z=parseFloat(E.lineHeight),q=Math.max(parseFloat(e.rows)*z+R,parseFloat(I.getPropertyValue("--v-input-control-height"))),ee=parseFloat(e.maxRows)*z+R||1/0,$=ot(F??0,q,ee);V.value=Math.floor(($-R)/z),g.value=fe($)})}Vt(w),de(o,w),de(()=>e.rows,w),de(()=>e.maxRows,w),de(()=>e.density,w);let P;return de(k,E=>{E?(P=new ResizeObserver(w),P.observe(k.value)):P==null||P.disconnect()}),Pt(()=>{P==null||P.disconnect()}),Y(()=>{const E=!!(l.counter||e.counter||e.counterValue),I=!!(E||l.details),[R,F]=fa(n),{modelValue:z,...q}=_t.filterProps(e),ee=sc(e);return d(_t,X({ref:v,modelValue:o.value,"onUpdate:modelValue":$=>o.value=$,class:["v-textarea v-text-field",{"v-textarea--prefixed":e.prefix,"v-textarea--suffixed":e.suffix,"v-text-field--prefixed":e.prefix,"v-text-field--suffixed":e.suffix,"v-textarea--auto-grow":e.autoGrow,"v-textarea--no-resize":e.noResize||e.autoGrow,"v-input--plain-underlined":T.value},e.class],style:e.style},R,q,{centerAffix:V.value===1&&!T.value,focused:i.value}),{...l,default:$=>{let{id:Z,isDisabled:M,isDirty:U,isReadonly:ne,isValid:he}=$;return d(_l,X({ref:m,style:{"--v-textarea-control-height":g.value},onClick:S,onMousedown:C,"onClick:clear":A,"onClick:prependInner":e["onClick:prependInner"],"onClick:appendInner":e["onClick:appendInner"]},ee,{id:Z.value,active:y.value||U.value,centerAffix:V.value===1&&!T.value,dirty:U.value||e.dirty,disabled:M.value,focused:i.value,error:he.value===!1}),{...l,default:we=>{let{props:{class:ye,...K}}=we;return d(ge,null,[e.prefix&&d("span",{class:"v-text-field__prefix"},[e.prefix]),Ue(d("textarea",X({ref:h,class:ye,value:o.value,onInput:x,autofocus:e.autofocus,readonly:ne.value,disabled:M.value,placeholder:e.placeholder,rows:e.rows,name:e.name,onFocus:p,onBlur:s},K,F),null),[[Gt("intersect"),{handler:f},null,{once:!0}]]),e.autoGrow&&Ue(d("textarea",{class:[ye,"v-textarea__sizer"],id:`${K.id}-sizer`,"onUpdate:modelValue":D=>o.value=D,ref:k,readonly:!0,"aria-hidden":"true"},null),[[li,o.value]]),e.suffix&&d("span",{class:"v-text-field__suffix"},[e.suffix])])}})},details:I?$=>{var Z;return d(ge,null,[(Z=l.details)==null?void 0:Z.call(l,$),E&&d(ge,null,[d("span",null,null),d(lr,{active:e.persistentCounter||i.value,value:u.value,max:c.value,disabled:e.disabled},l.counter)])])}:void 0})}),rn({},v,m,h)}}),vE=L({withBackground:Boolean,...ve(),...De(),...Pe()},"VThemeProvider"),mE=j()({name:"VThemeProvider",props:vE(),setup(e,t){let{slots:n}=t;const{themeClasses:a}=$e(e);return()=>{var l;return e.withBackground?d(e.tag,{class:["v-theme-provider",a.value,e.class],style:e.style},{default:()=>{var o;return[(o=n.default)==null?void 0:o.call(n)]}}):(l=n.default)==null?void 0:l.call(n)}}}),hE=L({dotColor:String,fillDot:Boolean,hideDot:Boolean,icon:_e,iconColor:String,lineColor:String,...ve(),...Xe(),...An(),...vt()},"VTimelineDivider"),gE=j()({name:"VTimelineDivider",props:hE(),setup(e,t){let{slots:n}=t;const{sizeClasses:a,sizeStyles:l}=wl(e,"v-timeline-divider__dot"),{backgroundColorStyles:o,backgroundColorClasses:i}=Ge(N(e,"dotColor")),{roundedClasses:r}=tt(e,"v-timeline-divider__dot"),{elevationClasses:s}=kt(e),{backgroundColorClasses:u,backgroundColorStyles:c}=Ge(N(e,"lineColor"));return Y(()=>d("div",{class:["v-timeline-divider",{"v-timeline-divider--fill-dot":e.fillDot},e.class],style:e.style},[d("div",{class:["v-timeline-divider__before",u.value],style:c.value},null),!e.hideDot&&d("div",{key:"dot",class:["v-timeline-divider__dot",s.value,r.value,a.value],style:l.value},[d("div",{class:["v-timeline-divider__inner-dot",i.value,r.value],style:o.value},[n.default?d(Be,{key:"icon-defaults",disabled:!e.icon,defaults:{VIcon:{color:e.iconColor,icon:e.icon,size:e.size}}},n.default):d(Fe,{key:"icon",color:e.iconColor,icon:e.icon,size:e.size},null)])]),d("div",{class:["v-timeline-divider__after",u.value],style:c.value},null)])),{}}}),ab=L({density:String,dotColor:String,fillDot:Boolean,hideDot:Boolean,hideOpposite:{type:Boolean,default:void 0},icon:_e,iconColor:String,lineInset:[Number,String],...ve(),...gt(),...vt(),...Xe(),...An(),...Pe()},"VTimelineItem"),yE=j()({name:"VTimelineItem",props:ab(),setup(e,t){let{slots:n}=t;const{dimensionStyles:a}=yt(e),l=ue(0),o=te();return de(o,i=>{var r;i&&(l.value=((r=i.$el.querySelector(".v-timeline-divider__dot"))==null?void 0:r.getBoundingClientRect().width)??0)},{flush:"post"}),Y(()=>{var i,r;return d("div",{class:["v-timeline-item",{"v-timeline-item--fill-dot":e.fillDot},e.class],style:[{"--v-timeline-dot-size":fe(l.value),"--v-timeline-line-inset":e.lineInset?`calc(var(--v-timeline-dot-size) / 2 + ${fe(e.lineInset)})`:fe(0)},e.style]},[d("div",{class:"v-timeline-item__body",style:a.value},[(i=n.default)==null?void 0:i.call(n)]),d(gE,{ref:o,hideDot:e.hideDot,icon:e.icon,iconColor:e.iconColor,size:e.size,elevation:e.elevation,dotColor:e.dotColor,fillDot:e.fillDot,rounded:e.rounded},{default:n.icon}),e.density!=="compact"&&d("div",{class:"v-timeline-item__opposite"},[!e.hideOpposite&&((r=n.opposite)==null?void 0:r.call(n))])])}),{}}}),bE=L({align:{type:String,default:"center",validator:e=>["center","start"].includes(e)},direction:{type:String,default:"vertical",validator:e=>["vertical","horizontal"].includes(e)},justify:{type:String,default:"auto",validator:e=>["auto","center"].includes(e)},side:{type:String,validator:e=>e==null||["start","end"].includes(e)},lineThickness:{type:[String,Number],default:2},lineColor:String,truncateLine:{type:String,validator:e=>["start","end","both"].includes(e)},...zi(ab({lineInset:0}),["dotColor","fillDot","hideOpposite","iconColor","lineInset","size"]),...ve(),...bt(),...Pe(),...De()},"VTimeline"),pE=j()({name:"VTimeline",props:bE(),setup(e,t){let{slots:n}=t;const{themeClasses:a}=$e(e),{densityClasses:l}=Dt(e),{rtlClasses:o}=ht();et({VTimelineDivider:{lineColor:N(e,"lineColor")},VTimelineItem:{density:N(e,"density"),dotColor:N(e,"dotColor"),fillDot:N(e,"fillDot"),hideOpposite:N(e,"hideOpposite"),iconColor:N(e,"iconColor"),lineColor:N(e,"lineColor"),lineInset:N(e,"lineInset"),size:N(e,"size")}});const i=b(()=>{const s=e.side?e.side:e.density!=="default"?"end":null;return s&&`v-timeline--side-${s}`}),r=b(()=>{const s=["v-timeline--truncate-line-start","v-timeline--truncate-line-end"];switch(e.truncateLine){case"both":return s;case"start":return s[0];case"end":return s[1];default:return null}});return Y(()=>d(e.tag,{class:["v-timeline",`v-timeline--${e.direction}`,`v-timeline--align-${e.align}`,`v-timeline--justify-${e.justify}`,r.value,{"v-timeline--inset-line":!!e.lineInset},a.value,l.value,i.value,o.value,e.class],style:[{"--v-timeline-line-thickness":fe(e.lineThickness)},e.style]},n)),{}}}),SE=L({...ve(),...on({variant:"text"})},"VToolbarItems"),wE=j()({name:"VToolbarItems",props:SE(),setup(e,t){let{slots:n}=t;return et({VBtn:{color:N(e,"color"),height:"inherit",variant:N(e,"variant")}}),Y(()=>{var a;return d("div",{class:["v-toolbar-items",e.class],style:e.style},[(a=n.default)==null?void 0:a.call(n)])}),{}}}),kE=L({id:String,text:String,...ct(Oo({closeOnBack:!1,location:"end",locationStrategy:"connected",eager:!0,minWidth:0,offset:10,openOnClick:!1,openOnHover:!0,origin:"auto",scrim:!1,scrollStrategy:"reposition",transition:!1}),["absolute","persistent"])},"VTooltip"),lb=j()({name:"VTooltip",props:kE(),emits:{"update:modelValue":e=>!0},setup(e,t){let{slots:n}=t;const a=Se(e,"modelValue"),{scopeId:l}=Ya(),o=wt(),i=b(()=>e.id||`v-tooltip-${o}`),r=te(),s=b(()=>e.location.split(" ").length>1?e.location:e.location+" center"),u=b(()=>e.origin==="auto"||e.origin==="overlap"||e.origin.split(" ").length>1||e.location.split(" ").length>1?e.origin:e.origin+" center"),c=b(()=>e.transition?e.transition:a.value?"scale-transition":"fade-transition"),f=b(()=>X({"aria-describedby":i.value},e.activatorProps));return Y(()=>{const v=_n.filterProps(e);return d(_n,X({ref:r,class:["v-tooltip",e.class],style:e.style,id:i.value},v,{modelValue:a.value,"onUpdate:modelValue":m=>a.value=m,transition:c.value,absolute:!0,location:s.value,origin:u.value,persistent:!0,role:"tooltip",activatorProps:f.value,_disableGlobalStack:!0},l),{activator:n.activator,default:function(){var y;for(var m=arguments.length,g=new Array(m),h=0;h!0},setup(e,t){let{slots:n}=t;const a=dg(e,"validation");return()=>{var l;return(l=n.default)==null?void 0:l.call(n,a)}}}),CE=Object.freeze(Object.defineProperty({__proto__:null,VAlert:x_,VAlertTitle:kg,VApp:gh,VAppBar:y_,VAppBarNavIcon:p_,VAppBarTitle:S_,VAutocomplete:LV,VAvatar:an,VBadge:FV,VBanner:HV,VBannerActions:ty,VBannerText:ny,VBottomNavigation:jV,VBottomSheet:WV,VBreadcrumbs:qV,VBreadcrumbsDivider:ly,VBreadcrumbsItem:oy,VBtn:Me,VBtnGroup:Cs,VBtnToggle:Jx,VCard:ec,VCardActions:zh,VCardItem:Kh,VCardSubtitle:jh,VCardText:Qi,VCardTitle:Zi,VCarousel:lP,VCarouselItem:iP,VCheckbox:P_,VCheckboxBtn:Hn,VChip:Vl,VChipGroup:B_,VClassIcon:Qu,VCode:rP,VCol:Sn,VColorPicker:qP,VCombobox:ZP,VComponentIcon:Vs,VConfirmEdit:eI,VContainer:nc,VCounter:lr,VDataIterator:cI,VDataTable:VI,VDataTableFooter:yo,VDataTableHeaders:Da,VDataTableRow:Oc,VDataTableRows:La,VDataTableServer:EI,VDataTableVirtual:II,VDatePicker:LI,VDatePickerControls:Gs,VDatePickerHeader:Ks,VDatePickerMonth:Ys,VDatePickerMonths:qs,VDatePickerYears:Xs,VDefaultsProvider:Be,VDialog:Fs,VDialogBottomTransition:jC,VDialogTopTransition:UC,VDialogTransition:nr,VDivider:Ro,VEmptyState:FI,VExpandTransition:ar,VExpandXTransition:rc,VExpansionPanel:$I,VExpansionPanelText:Js,VExpansionPanelTitle:Zs,VExpansionPanels:zI,VFab:UI,VFabTransition:zC,VFadeTransition:fo,VField:_l,VFieldLabel:Ll,VFileInput:GI,VFooter:YI,VForm:tc,VHover:XI,VIcon:Fe,VImg:Nn,VInfiniteScroll:ZI,VInput:_t,VItem:tT,VItemGroup:eT,VKbd:nT,VLabel:Cl,VLayout:lT,VLayoutItem:iT,VLazy:sT,VLigatureIcon:tC,VList:rr,VListGroup:Os,VListImg:tV,VListItem:zn,VListItemAction:aV,VListItemMedia:oV,VListItemSubtitle:Mg,VListItemTitle:Fg,VListSubheader:$g,VLocaleProvider:cT,VMain:yh,VMenu:bl,VMessages:ug,VNavigationDrawer:pT,VNoSsr:ST,VOtpInput:kT,VOverlay:_n,VPagination:Us,VParallax:_T,VProgressCircular:yl,VProgressLinear:qi,VRadio:PT,VRadioGroup:TT,VRangeSlider:AT,VRating:RT,VResponsive:Ts,VRow:Dn,VScaleTransition:oc,VScrollXReverseTransition:GC,VScrollXTransition:WC,VScrollYReverseTransition:YC,VScrollYTransition:KC,VSelect:kc,VSelectionControl:Aa,VSelectionControlGroup:Cg,VSheet:Oa,VSkeletonLoader:MT,VSlideGroup:ho,VSlideGroupItem:FT,VSlideXReverseTransition:XC,VSlideXTransition:qC,VSlideYReverseTransition:JC,VSlideYTransition:ic,VSlider:js,VSnackbar:HT,VSpacer:og,VSparkline:WT,VSpeedDial:KT,VStepper:eE,VStepperActions:qy,VStepperHeader:Xy,VStepperItem:Jy,VStepperWindow:Zy,VStepperWindowItem:Qy,VSvgIcon:Zu,VSwitch:nE,VSystemBar:lE,VTab:eb,VTable:Ma,VTabs:cE,VTabsWindow:tb,VTabsWindowItem:nb,VTextField:Mt,VTextarea:fE,VThemeProvider:mE,VTimeline:pE,VTimelineItem:yE,VToolbar:Bs,VToolbarItems:wE,VToolbarTitle:cc,VTooltip:lb,VValidation:xE,VVirtualScroll:sr,VWindow:Ba,VWindowItem:Ra},Symbol.toStringTag,{value:"Module"}));function _E(e,t){const n=t.modifiers||{},a=t.value,{once:l,immediate:o,...i}=n,r=!Object.keys(i).length,{handler:s,options:u}=typeof a=="object"?a:{handler:a,options:{attributes:(i==null?void 0:i.attr)??r,characterData:(i==null?void 0:i.char)??r,childList:(i==null?void 0:i.child)??r,subtree:(i==null?void 0:i.sub)??r}},c=new MutationObserver(function(){let f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],v=arguments.length>1?arguments[1]:void 0;s==null||s(f,v),l&&ob(e,t)});o&&(s==null||s([],c)),e._mutate=Object(e._mutate),e._mutate[t.instance.$.uid]={observer:c},c.observe(e,u)}function ob(e,t){var n;(n=e._mutate)!=null&&n[t.instance.$.uid]&&(e._mutate[t.instance.$.uid].observer.disconnect(),delete e._mutate[t.instance.$.uid])}const VE={mounted:_E,unmounted:ob};function PE(e,t){var l,o;const n=t.value,a={passive:!((l=t.modifiers)!=null&&l.active)};window.addEventListener("resize",n,a),e._onResize=Object(e._onResize),e._onResize[t.instance.$.uid]={handler:n,options:a},(o=t.modifiers)!=null&&o.quiet||n()}function IE(e,t){var l;if(!((l=e._onResize)!=null&&l[t.instance.$.uid]))return;const{handler:n,options:a}=e._onResize[t.instance.$.uid];window.removeEventListener("resize",n,a),delete e._onResize[t.instance.$.uid]}const TE={mounted:PE,unmounted:IE};function ib(e,t){const{self:n=!1}=t.modifiers??{},a=t.value,l=typeof a=="object"&&a.options||{passive:!0},o=typeof a=="function"||"handleEvent"in a?a:a.handler,i=n?e:t.arg?document.querySelector(t.arg):window;i&&(i.addEventListener("scroll",o,l),e._onScroll=Object(e._onScroll),e._onScroll[t.instance.$.uid]={handler:o,options:l,target:n?void 0:i})}function rb(e,t){var o;if(!((o=e._onScroll)!=null&&o[t.instance.$.uid]))return;const{handler:n,options:a,target:l=e}=e._onScroll[t.instance.$.uid];l.removeEventListener("scroll",n,a),delete e._onScroll[t.instance.$.uid]}function EE(e,t){t.value!==t.oldValue&&(rb(e,t),ib(e,t))}const AE={mounted:ib,unmounted:rb,updated:EE};function BE(e,t){const n=typeof e=="string"?$l(e):e,a=RE(n,t);return{mounted:a,updated:a,unmounted(l){Mm(null,l)}}}function RE(e,t){return function(n,a,l){var f,v,m;const o=typeof t=="function"?t(a):t,i=((f=a.value)==null?void 0:f.text)??a.value??(o==null?void 0:o.text),r=no(a.value)?a.value:{},s=()=>i??n.innerHTML,u=(l.ctx===a.instance.$?(v=OE(l,a.instance.$))==null?void 0:v.provides:(m=l.ctx)==null?void 0:m.provides)??a.instance.$.provides,c=mn(e,X(o,r),s);c.appContext=Object.assign(Object.create(null),a.instance.$.appContext,{provides:u}),Mm(c,n)}}function OE(e,t){const n=new Set,a=o=>{var i,r;for(const s of o){if(!s)continue;if(s===e)return!0;n.add(s);let u;if(s.suspense?u=a([s.ssContent]):Array.isArray(s.children)?u=a(s.children):(i=s.component)!=null&&i.vnode&&(u=a([(r=s.component)==null?void 0:r.subTree])),u)return u;n.delete(s)}return!1};if(!a([t.subTree]))throw new Error("Could not find original vnode");const l=Array.from(n).reverse();for(const o of l)if(o.component)return o.component;return t}const DE=BE(lb,e=>{var t;return{activator:"parent",location:((t=e.arg)==null?void 0:t.replace("-"," "))??"top",text:typeof e.value=="boolean"?void 0:e.value}}),LE=Object.freeze(Object.defineProperty({__proto__:null,ClickOutside:Xg,Intersect:To,Mutate:VE,Resize:TE,Ripple:Kn,Scroll:AE,Tooltip:DE,Touch:xc},Symbol.toStringTag,{value:"Module"})),ME=pg({components:CE,directives:LE});function sb(e,t){return function(){return e.apply(t,arguments)}}const{toString:FE}=Object.prototype,{getPrototypeOf:$c}=Object,kr=(e=>t=>{const n=FE.call(t);return e[n]||(e[n]=n.slice(8,-1).toLowerCase())})(Object.create(null)),yn=e=>(e=e.toLowerCase(),t=>kr(t)===e),xr=e=>t=>typeof t===e,{isArray:Pl}=Array,po=xr("undefined");function $E(e){return e!==null&&!po(e)&&e.constructor!==null&&!po(e.constructor)&&tn(e.constructor.isBuffer)&&e.constructor.isBuffer(e)}const ub=yn("ArrayBuffer");function NE(e){let t;return typeof ArrayBuffer<"u"&&ArrayBuffer.isView?t=ArrayBuffer.isView(e):t=e&&e.buffer&&ub(e.buffer),t}const HE=xr("string"),tn=xr("function"),cb=xr("number"),Cr=e=>e!==null&&typeof e=="object",zE=e=>e===!0||e===!1,si=e=>{if(kr(e)!=="object")return!1;const t=$c(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},jE=yn("Date"),UE=yn("File"),WE=yn("Blob"),GE=yn("FileList"),KE=e=>Cr(e)&&tn(e.pipe),YE=e=>{let t;return e&&(typeof FormData=="function"&&e instanceof FormData||tn(e.append)&&((t=kr(e))==="formdata"||t==="object"&&tn(e.toString)&&e.toString()==="[object FormData]"))},qE=yn("URLSearchParams"),[XE,JE,ZE,QE]=["ReadableStream","Request","Response","Headers"].map(yn),eA=e=>e.trim?e.trim():e.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"");function Mo(e,t,{allOwnKeys:n=!1}={}){if(e===null||typeof e>"u")return;let a,l;if(typeof e!="object"&&(e=[e]),Pl(e))for(a=0,l=e.length;a0;)if(l=n[a],t===l.toLowerCase())return l;return null}const fb=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:global,vb=e=>!po(e)&&e!==fb;function Qs(){const{caseless:e}=vb(this)&&this||{},t={},n=(a,l)=>{const o=e&&db(t,l)||l;si(t[o])&&si(a)?t[o]=Qs(t[o],a):si(a)?t[o]=Qs({},a):Pl(a)?t[o]=a.slice():t[o]=a};for(let a=0,l=arguments.length;a(Mo(t,(l,o)=>{n&&tn(l)?e[o]=sb(l,n):e[o]=l},{allOwnKeys:a}),e),nA=e=>(e.charCodeAt(0)===65279&&(e=e.slice(1)),e),aA=(e,t,n,a)=>{e.prototype=Object.create(t.prototype,a),e.prototype.constructor=e,Object.defineProperty(e,"super",{value:t.prototype}),n&&Object.assign(e.prototype,n)},lA=(e,t,n,a)=>{let l,o,i;const r={};if(t=t||{},e==null)return t;do{for(l=Object.getOwnPropertyNames(e),o=l.length;o-- >0;)i=l[o],(!a||a(i,e,t))&&!r[i]&&(t[i]=e[i],r[i]=!0);e=n!==!1&&$c(e)}while(e&&(!n||n(e,t))&&e!==Object.prototype);return t},oA=(e,t,n)=>{e=String(e),(n===void 0||n>e.length)&&(n=e.length),n-=t.length;const a=e.indexOf(t,n);return a!==-1&&a===n},iA=e=>{if(!e)return null;if(Pl(e))return e;let t=e.length;if(!cb(t))return null;const n=new Array(t);for(;t-- >0;)n[t]=e[t];return n},rA=(e=>t=>e&&t instanceof e)(typeof Uint8Array<"u"&&$c(Uint8Array)),sA=(e,t)=>{const a=(e&&e[Symbol.iterator]).call(e);let l;for(;(l=a.next())&&!l.done;){const o=l.value;t.call(e,o[0],o[1])}},uA=(e,t)=>{let n;const a=[];for(;(n=e.exec(t))!==null;)a.push(n);return a},cA=yn("HTMLFormElement"),dA=e=>e.toLowerCase().replace(/[-_\s]([a-z\d])(\w*)/g,function(n,a,l){return a.toUpperCase()+l}),rv=(({hasOwnProperty:e})=>(t,n)=>e.call(t,n))(Object.prototype),fA=yn("RegExp"),mb=(e,t)=>{const n=Object.getOwnPropertyDescriptors(e),a={};Mo(n,(l,o)=>{let i;(i=t(l,o,e))!==!1&&(a[o]=i||l)}),Object.defineProperties(e,a)},vA=e=>{mb(e,(t,n)=>{if(tn(e)&&["arguments","caller","callee"].indexOf(n)!==-1)return!1;const a=e[n];if(tn(a)){if(t.enumerable=!1,"writable"in t){t.writable=!1;return}t.set||(t.set=()=>{throw Error("Can not rewrite read-only method '"+n+"'")})}})},mA=(e,t)=>{const n={},a=l=>{l.forEach(o=>{n[o]=!0})};return Pl(e)?a(e):a(String(e).split(t)),n},hA=()=>{},gA=(e,t)=>e!=null&&Number.isFinite(e=+e)?e:t,Xr="abcdefghijklmnopqrstuvwxyz",sv="0123456789",hb={DIGIT:sv,ALPHA:Xr,ALPHA_DIGIT:Xr+Xr.toUpperCase()+sv},yA=(e=16,t=hb.ALPHA_DIGIT)=>{let n="";const{length:a}=t;for(;e--;)n+=t[Math.random()*a|0];return n};function bA(e){return!!(e&&tn(e.append)&&e[Symbol.toStringTag]==="FormData"&&e[Symbol.iterator])}const pA=e=>{const t=new Array(10),n=(a,l)=>{if(Cr(a)){if(t.indexOf(a)>=0)return;if(!("toJSON"in a)){t[l]=a;const o=Pl(a)?[]:{};return Mo(a,(i,r)=>{const s=n(i,l+1);!po(s)&&(o[r]=s)}),t[l]=void 0,o}}return a};return n(e,0)},SA=yn("AsyncFunction"),wA=e=>e&&(Cr(e)||tn(e))&&tn(e.then)&&tn(e.catch),J={isArray:Pl,isArrayBuffer:ub,isBuffer:$E,isFormData:YE,isArrayBufferView:NE,isString:HE,isNumber:cb,isBoolean:zE,isObject:Cr,isPlainObject:si,isReadableStream:XE,isRequest:JE,isResponse:ZE,isHeaders:QE,isUndefined:po,isDate:jE,isFile:UE,isBlob:WE,isRegExp:fA,isFunction:tn,isStream:KE,isURLSearchParams:qE,isTypedArray:rA,isFileList:GE,forEach:Mo,merge:Qs,extend:tA,trim:eA,stripBOM:nA,inherits:aA,toFlatObject:lA,kindOf:kr,kindOfTest:yn,endsWith:oA,toArray:iA,forEachEntry:sA,matchAll:uA,isHTMLForm:cA,hasOwnProperty:rv,hasOwnProp:rv,reduceDescriptors:mb,freezeMethods:vA,toObjectSet:mA,toCamelCase:dA,noop:hA,toFiniteNumber:gA,findKey:db,global:fb,isContextDefined:vb,ALPHABET:hb,generateString:yA,isSpecCompliantForm:bA,toJSONObject:pA,isAsyncFn:SA,isThenable:wA};function Ae(e,t,n,a,l){Error.call(this),Error.captureStackTrace?Error.captureStackTrace(this,this.constructor):this.stack=new Error().stack,this.message=e,this.name="AxiosError",t&&(this.code=t),n&&(this.config=n),a&&(this.request=a),l&&(this.response=l)}J.inherits(Ae,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:J.toJSONObject(this.config),code:this.code,status:this.response&&this.response.status?this.response.status:null}}});const gb=Ae.prototype,yb={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED","ERR_NOT_SUPPORT","ERR_INVALID_URL"].forEach(e=>{yb[e]={value:e}});Object.defineProperties(Ae,yb);Object.defineProperty(gb,"isAxiosError",{value:!0});Ae.from=(e,t,n,a,l,o)=>{const i=Object.create(gb);return J.toFlatObject(e,i,function(s){return s!==Error.prototype},r=>r!=="isAxiosError"),Ae.call(i,e.message,t,n,a,l),i.cause=e,i.name=e.name,o&&Object.assign(i,o),i};const kA=null;function eu(e){return J.isPlainObject(e)||J.isArray(e)}function bb(e){return J.endsWith(e,"[]")?e.slice(0,-2):e}function uv(e,t,n){return e?e.concat(t).map(function(l,o){return l=bb(l),!n&&o?"["+l+"]":l}).join(n?".":""):t}function xA(e){return J.isArray(e)&&!e.some(eu)}const CA=J.toFlatObject(J,{},null,function(t){return/^is[A-Z]/.test(t)});function _r(e,t,n){if(!J.isObject(e))throw new TypeError("target must be an object");t=t||new FormData,n=J.toFlatObject(n,{metaTokens:!0,dots:!1,indexes:!1},!1,function(h,y){return!J.isUndefined(y[h])});const a=n.metaTokens,l=n.visitor||c,o=n.dots,i=n.indexes,s=(n.Blob||typeof Blob<"u"&&Blob)&&J.isSpecCompliantForm(t);if(!J.isFunction(l))throw new TypeError("visitor must be a function");function u(g){if(g===null)return"";if(J.isDate(g))return g.toISOString();if(!s&&J.isBlob(g))throw new Ae("Blob is not supported. Use a Buffer instead.");return J.isArrayBuffer(g)||J.isTypedArray(g)?s&&typeof Blob=="function"?new Blob([g]):Buffer.from(g):g}function c(g,h,y){let p=g;if(g&&!y&&typeof g=="object"){if(J.endsWith(h,"{}"))h=a?h:h.slice(0,-2),g=JSON.stringify(g);else if(J.isArray(g)&&xA(g)||(J.isFileList(g)||J.endsWith(h,"[]"))&&(p=J.toArray(g)))return h=bb(h),p.forEach(function(C,A){!(J.isUndefined(C)||C===null)&&t.append(i===!0?uv([h],A,o):i===null?h:h+"[]",u(C))}),!1}return eu(g)?!0:(t.append(uv(y,h,o),u(g)),!1)}const f=[],v=Object.assign(CA,{defaultVisitor:c,convertValue:u,isVisitable:eu});function m(g,h){if(!J.isUndefined(g)){if(f.indexOf(g)!==-1)throw Error("Circular reference detected in "+h.join("."));f.push(g),J.forEach(g,function(p,S){(!(J.isUndefined(p)||p===null)&&l.call(t,p,J.isString(S)?S.trim():S,h,v))===!0&&m(p,h?h.concat(S):[S])}),f.pop()}}if(!J.isObject(e))throw new TypeError("data must be an object");return m(e),t}function cv(e){const t={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+","%00":"\0"};return encodeURIComponent(e).replace(/[!'()~]|%20|%00/g,function(a){return t[a]})}function Nc(e,t){this._pairs=[],e&&_r(e,this,t)}const pb=Nc.prototype;pb.append=function(t,n){this._pairs.push([t,n])};pb.toString=function(t){const n=t?function(a){return t.call(this,a,cv)}:cv;return this._pairs.map(function(l){return n(l[0])+"="+n(l[1])},"").join("&")};function _A(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}function Sb(e,t,n){if(!t)return e;const a=n&&n.encode||_A,l=n&&n.serialize;let o;if(l?o=l(t,n):o=J.isURLSearchParams(t)?t.toString():new Nc(t,n).toString(a),o){const i=e.indexOf("#");i!==-1&&(e=e.slice(0,i)),e+=(e.indexOf("?")===-1?"?":"&")+o}return e}class dv{constructor(){this.handlers=[]}use(t,n,a){return this.handlers.push({fulfilled:t,rejected:n,synchronous:a?a.synchronous:!1,runWhen:a?a.runWhen:null}),this.handlers.length-1}eject(t){this.handlers[t]&&(this.handlers[t]=null)}clear(){this.handlers&&(this.handlers=[])}forEach(t){J.forEach(this.handlers,function(a){a!==null&&t(a)})}}const wb={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},VA=typeof URLSearchParams<"u"?URLSearchParams:Nc,PA=typeof FormData<"u"?FormData:null,IA=typeof Blob<"u"?Blob:null,TA={isBrowser:!0,classes:{URLSearchParams:VA,FormData:PA,Blob:IA},protocols:["http","https","file","blob","url","data"]},Hc=typeof window<"u"&&typeof document<"u",EA=(e=>Hc&&["ReactNative","NativeScript","NS"].indexOf(e)<0)(typeof navigator<"u"&&navigator.product),AA=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope&&typeof self.importScripts=="function",BA=Hc&&window.location.href||"http://localhost",RA=Object.freeze(Object.defineProperty({__proto__:null,hasBrowserEnv:Hc,hasStandardBrowserEnv:EA,hasStandardBrowserWebWorkerEnv:AA,origin:BA},Symbol.toStringTag,{value:"Module"})),dn={...RA,...TA};function OA(e,t){return _r(e,new dn.classes.URLSearchParams,Object.assign({visitor:function(n,a,l,o){return dn.isNode&&J.isBuffer(n)?(this.append(a,n.toString("base64")),!1):o.defaultVisitor.apply(this,arguments)}},t))}function DA(e){return J.matchAll(/\w+|\[(\w*)]/g,e).map(t=>t[0]==="[]"?"":t[1]||t[0])}function LA(e){const t={},n=Object.keys(e);let a;const l=n.length;let o;for(a=0;a=n.length;return i=!i&&J.isArray(l)?l.length:i,s?(J.hasOwnProp(l,i)?l[i]=[l[i],a]:l[i]=a,!r):((!l[i]||!J.isObject(l[i]))&&(l[i]=[]),t(n,a,l[i],o)&&J.isArray(l[i])&&(l[i]=LA(l[i])),!r)}if(J.isFormData(e)&&J.isFunction(e.entries)){const n={};return J.forEachEntry(e,(a,l)=>{t(DA(a),l,n,0)}),n}return null}function MA(e,t,n){if(J.isString(e))try{return(t||JSON.parse)(e),J.trim(e)}catch(a){if(a.name!=="SyntaxError")throw a}return(n||JSON.stringify)(e)}const Fo={transitional:wb,adapter:["xhr","http","fetch"],transformRequest:[function(t,n){const a=n.getContentType()||"",l=a.indexOf("application/json")>-1,o=J.isObject(t);if(o&&J.isHTMLForm(t)&&(t=new FormData(t)),J.isFormData(t))return l?JSON.stringify(kb(t)):t;if(J.isArrayBuffer(t)||J.isBuffer(t)||J.isStream(t)||J.isFile(t)||J.isBlob(t)||J.isReadableStream(t))return t;if(J.isArrayBufferView(t))return t.buffer;if(J.isURLSearchParams(t))return n.setContentType("application/x-www-form-urlencoded;charset=utf-8",!1),t.toString();let r;if(o){if(a.indexOf("application/x-www-form-urlencoded")>-1)return OA(t,this.formSerializer).toString();if((r=J.isFileList(t))||a.indexOf("multipart/form-data")>-1){const s=this.env&&this.env.FormData;return _r(r?{"files[]":t}:t,s&&new s,this.formSerializer)}}return o||l?(n.setContentType("application/json",!1),MA(t)):t}],transformResponse:[function(t){const n=this.transitional||Fo.transitional,a=n&&n.forcedJSONParsing,l=this.responseType==="json";if(J.isResponse(t)||J.isReadableStream(t))return t;if(t&&J.isString(t)&&(a&&!this.responseType||l)){const i=!(n&&n.silentJSONParsing)&&l;try{return JSON.parse(t)}catch(r){if(i)throw r.name==="SyntaxError"?Ae.from(r,Ae.ERR_BAD_RESPONSE,this,null,this.response):r}}return t}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:dn.classes.FormData,Blob:dn.classes.Blob},validateStatus:function(t){return t>=200&&t<300},headers:{common:{Accept:"application/json, text/plain, */*","Content-Type":void 0}}};J.forEach(["delete","get","head","post","put","patch"],e=>{Fo.headers[e]={}});const FA=J.toObjectSet(["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"]),$A=e=>{const t={};let n,a,l;return e&&e.split(` +`).forEach(function(i){l=i.indexOf(":"),n=i.substring(0,l).trim().toLowerCase(),a=i.substring(l+1).trim(),!(!n||t[n]&&FA[n])&&(n==="set-cookie"?t[n]?t[n].push(a):t[n]=[a]:t[n]=t[n]?t[n]+", "+a:a)}),t},fv=Symbol("internals");function Ol(e){return e&&String(e).trim().toLowerCase()}function ui(e){return e===!1||e==null?e:J.isArray(e)?e.map(ui):String(e)}function NA(e){const t=Object.create(null),n=/([^\s,;=]+)\s*(?:=\s*([^,;]+))?/g;let a;for(;a=n.exec(e);)t[a[1]]=a[2];return t}const HA=e=>/^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(e.trim());function Jr(e,t,n,a,l){if(J.isFunction(a))return a.call(this,t,n);if(l&&(t=n),!!J.isString(t)){if(J.isString(a))return t.indexOf(a)!==-1;if(J.isRegExp(a))return a.test(t)}}function zA(e){return e.trim().toLowerCase().replace(/([a-z\d])(\w*)/g,(t,n,a)=>n.toUpperCase()+a)}function jA(e,t){const n=J.toCamelCase(" "+t);["get","set","has"].forEach(a=>{Object.defineProperty(e,a+n,{value:function(l,o,i){return this[a].call(this,t,l,o,i)},configurable:!0})})}class Ht{constructor(t){t&&this.set(t)}set(t,n,a){const l=this;function o(r,s,u){const c=Ol(s);if(!c)throw new Error("header name must be a non-empty string");const f=J.findKey(l,c);(!f||l[f]===void 0||u===!0||u===void 0&&l[f]!==!1)&&(l[f||s]=ui(r))}const i=(r,s)=>J.forEach(r,(u,c)=>o(u,c,s));if(J.isPlainObject(t)||t instanceof this.constructor)i(t,n);else if(J.isString(t)&&(t=t.trim())&&!HA(t))i($A(t),n);else if(J.isHeaders(t))for(const[r,s]of t.entries())o(s,r,a);else t!=null&&o(n,t,a);return this}get(t,n){if(t=Ol(t),t){const a=J.findKey(this,t);if(a){const l=this[a];if(!n)return l;if(n===!0)return NA(l);if(J.isFunction(n))return n.call(this,l,a);if(J.isRegExp(n))return n.exec(l);throw new TypeError("parser must be boolean|regexp|function")}}}has(t,n){if(t=Ol(t),t){const a=J.findKey(this,t);return!!(a&&this[a]!==void 0&&(!n||Jr(this,this[a],a,n)))}return!1}delete(t,n){const a=this;let l=!1;function o(i){if(i=Ol(i),i){const r=J.findKey(a,i);r&&(!n||Jr(a,a[r],r,n))&&(delete a[r],l=!0)}}return J.isArray(t)?t.forEach(o):o(t),l}clear(t){const n=Object.keys(this);let a=n.length,l=!1;for(;a--;){const o=n[a];(!t||Jr(this,this[o],o,t,!0))&&(delete this[o],l=!0)}return l}normalize(t){const n=this,a={};return J.forEach(this,(l,o)=>{const i=J.findKey(a,o);if(i){n[i]=ui(l),delete n[o];return}const r=t?zA(o):String(o).trim();r!==o&&delete n[o],n[r]=ui(l),a[r]=!0}),this}concat(...t){return this.constructor.concat(this,...t)}toJSON(t){const n=Object.create(null);return J.forEach(this,(a,l)=>{a!=null&&a!==!1&&(n[l]=t&&J.isArray(a)?a.join(", "):a)}),n}[Symbol.iterator](){return Object.entries(this.toJSON())[Symbol.iterator]()}toString(){return Object.entries(this.toJSON()).map(([t,n])=>t+": "+n).join(` +`)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const a=new this(t);return n.forEach(l=>a.set(l)),a}static accessor(t){const a=(this[fv]=this[fv]={accessors:{}}).accessors,l=this.prototype;function o(i){const r=Ol(i);a[r]||(jA(l,i),a[r]=!0)}return J.isArray(t)?t.forEach(o):o(t),this}}Ht.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);J.reduceDescriptors(Ht.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(a){this[n]=a}}});J.freezeMethods(Ht);function Zr(e,t){const n=this||Fo,a=t||n,l=Ht.from(a.headers);let o=a.data;return J.forEach(e,function(r){o=r.call(n,o,l.normalize(),t?t.status:void 0)}),l.normalize(),o}function xb(e){return!!(e&&e.__CANCEL__)}function Il(e,t,n){Ae.call(this,e??"canceled",Ae.ERR_CANCELED,t,n),this.name="CanceledError"}J.inherits(Il,Ae,{__CANCEL__:!0});function Cb(e,t,n){const a=n.config.validateStatus;!n.status||!a||a(n.status)?e(n):t(new Ae("Request failed with status code "+n.status,[Ae.ERR_BAD_REQUEST,Ae.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}function UA(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function WA(e,t){e=e||10;const n=new Array(e),a=new Array(e);let l=0,o=0,i;return t=t!==void 0?t:1e3,function(s){const u=Date.now(),c=a[o];i||(i=u),n[l]=s,a[l]=u;let f=o,v=0;for(;f!==l;)v+=n[f++],f=f%e;if(l=(l+1)%e,l===o&&(o=(o+1)%e),u-ia)return l&&(clearTimeout(l),l=null),n=r,e.apply(null,arguments);l||(l=setTimeout(()=>(l=null,n=Date.now(),e.apply(null,arguments)),a-(r-n)))}}const Ii=(e,t,n=3)=>{let a=0;const l=WA(50,250);return GA(o=>{const i=o.loaded,r=o.lengthComputable?o.total:void 0,s=i-a,u=l(s),c=i<=r;a=i;const f={loaded:i,total:r,progress:r?i/r:void 0,bytes:s,rate:u||void 0,estimated:u&&r&&c?(r-i)/u:void 0,event:o,lengthComputable:r!=null};f[t?"download":"upload"]=!0,e(f)},n)},KA=dn.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");let a;function l(o){let i=o;return t&&(n.setAttribute("href",i),i=n.href),n.setAttribute("href",i),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return a=l(window.location.href),function(i){const r=J.isString(i)?l(i):i;return r.protocol===a.protocol&&r.host===a.host}}():function(){return function(){return!0}}(),YA=dn.hasStandardBrowserEnv?{write(e,t,n,a,l,o){const i=[e+"="+encodeURIComponent(t)];J.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),J.isString(a)&&i.push("path="+a),J.isString(l)&&i.push("domain="+l),o===!0&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function qA(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function XA(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function _b(e,t){return e&&!qA(t)?XA(e,t):t}const vv=e=>e instanceof Ht?{...e}:e;function Fa(e,t){t=t||{};const n={};function a(u,c,f){return J.isPlainObject(u)&&J.isPlainObject(c)?J.merge.call({caseless:f},u,c):J.isPlainObject(c)?J.merge({},c):J.isArray(c)?c.slice():c}function l(u,c,f){if(J.isUndefined(c)){if(!J.isUndefined(u))return a(void 0,u,f)}else return a(u,c,f)}function o(u,c){if(!J.isUndefined(c))return a(void 0,c)}function i(u,c){if(J.isUndefined(c)){if(!J.isUndefined(u))return a(void 0,u)}else return a(void 0,c)}function r(u,c,f){if(f in t)return a(u,c);if(f in e)return a(void 0,u)}const s={url:o,method:o,data:o,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:r,headers:(u,c)=>l(vv(u),vv(c),!0)};return J.forEach(Object.keys(Object.assign({},e,t)),function(c){const f=s[c]||l,v=f(e[c],t[c],c);J.isUndefined(v)&&f!==r||(n[c]=v)}),n}const Vb=e=>{const t=Fa({},e);let{data:n,withXSRFToken:a,xsrfHeaderName:l,xsrfCookieName:o,headers:i,auth:r}=t;t.headers=i=Ht.from(i),t.url=Sb(_b(t.baseURL,t.url),e.params,e.paramsSerializer),r&&i.set("Authorization","Basic "+btoa((r.username||"")+":"+(r.password?unescape(encodeURIComponent(r.password)):"")));let s;if(J.isFormData(n)){if(dn.hasStandardBrowserEnv||dn.hasStandardBrowserWebWorkerEnv)i.setContentType(void 0);else if((s=i.getContentType())!==!1){const[u,...c]=s?s.split(";").map(f=>f.trim()).filter(Boolean):[];i.setContentType([u||"multipart/form-data",...c].join("; "))}}if(dn.hasStandardBrowserEnv&&(a&&J.isFunction(a)&&(a=a(t)),a||a!==!1&&KA(t.url))){const u=l&&o&&YA.read(o);u&&i.set(l,u)}return t},JA=typeof XMLHttpRequest<"u",ZA=JA&&function(e){return new Promise(function(n,a){const l=Vb(e);let o=l.data;const i=Ht.from(l.headers).normalize();let{responseType:r}=l,s;function u(){l.cancelToken&&l.cancelToken.unsubscribe(s),l.signal&&l.signal.removeEventListener("abort",s)}let c=new XMLHttpRequest;c.open(l.method.toUpperCase(),l.url,!0),c.timeout=l.timeout;function f(){if(!c)return;const m=Ht.from("getAllResponseHeaders"in c&&c.getAllResponseHeaders()),h={data:!r||r==="text"||r==="json"?c.responseText:c.response,status:c.status,statusText:c.statusText,headers:m,config:e,request:c};Cb(function(p){n(p),u()},function(p){a(p),u()},h),c=null}"onloadend"in c?c.onloadend=f:c.onreadystatechange=function(){!c||c.readyState!==4||c.status===0&&!(c.responseURL&&c.responseURL.indexOf("file:")===0)||setTimeout(f)},c.onabort=function(){c&&(a(new Ae("Request aborted",Ae.ECONNABORTED,l,c)),c=null)},c.onerror=function(){a(new Ae("Network Error",Ae.ERR_NETWORK,l,c)),c=null},c.ontimeout=function(){let g=l.timeout?"timeout of "+l.timeout+"ms exceeded":"timeout exceeded";const h=l.transitional||wb;l.timeoutErrorMessage&&(g=l.timeoutErrorMessage),a(new Ae(g,h.clarifyTimeoutError?Ae.ETIMEDOUT:Ae.ECONNABORTED,l,c)),c=null},o===void 0&&i.setContentType(null),"setRequestHeader"in c&&J.forEach(i.toJSON(),function(g,h){c.setRequestHeader(h,g)}),J.isUndefined(l.withCredentials)||(c.withCredentials=!!l.withCredentials),r&&r!=="json"&&(c.responseType=l.responseType),typeof l.onDownloadProgress=="function"&&c.addEventListener("progress",Ii(l.onDownloadProgress,!0)),typeof l.onUploadProgress=="function"&&c.upload&&c.upload.addEventListener("progress",Ii(l.onUploadProgress)),(l.cancelToken||l.signal)&&(s=m=>{c&&(a(!m||m.type?new Il(null,e,c):m),c.abort(),c=null)},l.cancelToken&&l.cancelToken.subscribe(s),l.signal&&(l.signal.aborted?s():l.signal.addEventListener("abort",s)));const v=UA(l.url);if(v&&dn.protocols.indexOf(v)===-1){a(new Ae("Unsupported protocol "+v+":",Ae.ERR_BAD_REQUEST,e));return}c.send(o||null)})},QA=(e,t)=>{let n=new AbortController,a;const l=function(s){if(!a){a=!0,i();const u=s instanceof Error?s:this.reason;n.abort(u instanceof Ae?u:new Il(u instanceof Error?u.message:u))}};let o=t&&setTimeout(()=>{l(new Ae(`timeout ${t} of ms exceeded`,Ae.ETIMEDOUT))},t);const i=()=>{e&&(o&&clearTimeout(o),o=null,e.forEach(s=>{s&&(s.removeEventListener?s.removeEventListener("abort",l):s.unsubscribe(l))}),e=null)};e.forEach(s=>s&&s.addEventListener&&s.addEventListener("abort",l));const{signal:r}=n;return r.unsubscribe=i,[r,()=>{o&&clearTimeout(o),o=null}]},eB=function*(e,t){let n=e.byteLength;if(!t||n{const o=tB(e,t,l);let i=0;return new ReadableStream({type:"bytes",async pull(r){const{done:s,value:u}=await o.next();if(s){r.close(),a();return}let c=u.byteLength;n&&n(i+=c),r.enqueue(new Uint8Array(u))},cancel(r){return a(r),o.return()}},{highWaterMark:2})},hv=(e,t)=>{const n=e!=null;return a=>setTimeout(()=>t({lengthComputable:n,total:e,loaded:a}))},Vr=typeof fetch=="function"&&typeof Request=="function"&&typeof Response=="function",Pb=Vr&&typeof ReadableStream=="function",tu=Vr&&(typeof TextEncoder=="function"?(e=>t=>e.encode(t))(new TextEncoder):async e=>new Uint8Array(await new Response(e).arrayBuffer())),nB=Pb&&(()=>{let e=!1;const t=new Request(dn.origin,{body:new ReadableStream,method:"POST",get duplex(){return e=!0,"half"}}).headers.has("Content-Type");return e&&!t})(),gv=64*1024,nu=Pb&&!!(()=>{try{return J.isReadableStream(new Response("").body)}catch{}})(),Ti={stream:nu&&(e=>e.body)};Vr&&(e=>{["text","arrayBuffer","blob","formData","stream"].forEach(t=>{!Ti[t]&&(Ti[t]=J.isFunction(e[t])?n=>n[t]():(n,a)=>{throw new Ae(`Response type '${t}' is not supported`,Ae.ERR_NOT_SUPPORT,a)})})})(new Response);const aB=async e=>{if(e==null)return 0;if(J.isBlob(e))return e.size;if(J.isSpecCompliantForm(e))return(await new Request(e).arrayBuffer()).byteLength;if(J.isArrayBufferView(e))return e.byteLength;if(J.isURLSearchParams(e)&&(e=e+""),J.isString(e))return(await tu(e)).byteLength},lB=async(e,t)=>{const n=J.toFiniteNumber(e.getContentLength());return n??aB(t)},oB=Vr&&(async e=>{let{url:t,method:n,data:a,signal:l,cancelToken:o,timeout:i,onDownloadProgress:r,onUploadProgress:s,responseType:u,headers:c,withCredentials:f="same-origin",fetchOptions:v}=Vb(e);u=u?(u+"").toLowerCase():"text";let[m,g]=l||o||i?QA([l,o],i):[],h,y;const p=()=>{!h&&setTimeout(()=>{m&&m.unsubscribe()}),h=!0};let S;try{if(s&&nB&&n!=="get"&&n!=="head"&&(S=await lB(c,a))!==0){let k=new Request(t,{method:"POST",body:a,duplex:"half"}),V;J.isFormData(a)&&(V=k.headers.get("content-type"))&&c.setContentType(V),k.body&&(a=mv(k.body,gv,hv(S,Ii(s)),null,tu))}J.isString(f)||(f=f?"cors":"omit"),y=new Request(t,{...v,signal:m,method:n.toUpperCase(),headers:c.normalize().toJSON(),body:a,duplex:"half",withCredentials:f});let C=await fetch(y);const A=nu&&(u==="stream"||u==="response");if(nu&&(r||A)){const k={};["status","statusText","headers"].forEach(T=>{k[T]=C[T]});const V=J.toFiniteNumber(C.headers.get("content-length"));C=new Response(mv(C.body,gv,r&&hv(V,Ii(r,!0)),A&&p,tu),k)}u=u||"text";let x=await Ti[J.findKey(Ti,u)||"text"](C,e);return!A&&p(),g&&g(),await new Promise((k,V)=>{Cb(k,V,{data:x,headers:Ht.from(C.headers),status:C.status,statusText:C.statusText,config:e,request:y})})}catch(C){throw p(),C&&C.name==="TypeError"&&/fetch/i.test(C.message)?Object.assign(new Ae("Network Error",Ae.ERR_NETWORK,e,y),{cause:C.cause||C}):Ae.from(C,C&&C.code,e,y)}}),au={http:kA,xhr:ZA,fetch:oB};J.forEach(au,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const yv=e=>`- ${e}`,iB=e=>J.isFunction(e)||e===null||e===!1,Ib={getAdapter:e=>{e=J.isArray(e)?e:[e];const{length:t}=e;let n,a;const l={};for(let o=0;o`adapter ${r} `+(s===!1?"is not supported by the environment":"is not available in the build"));let i=t?o.length>1?`since : +`+o.map(yv).join(` +`):" "+yv(o[0]):"as no adapter specified";throw new Ae("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return a},adapters:au};function Qr(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Il(null,e)}function bv(e){return Qr(e),e.headers=Ht.from(e.headers),e.data=Zr.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Ib.getAdapter(e.adapter||Fo.adapter)(e).then(function(a){return Qr(e),a.data=Zr.call(e,e.transformResponse,a),a.headers=Ht.from(a.headers),a},function(a){return xb(a)||(Qr(e),a&&a.response&&(a.response.data=Zr.call(e,e.transformResponse,a.response),a.response.headers=Ht.from(a.response.headers))),Promise.reject(a)})}const Tb="1.7.2",zc={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{zc[e]=function(a){return typeof a===e||"a"+(t<1?"n ":" ")+e}});const pv={};zc.transitional=function(t,n,a){function l(o,i){return"[Axios v"+Tb+"] Transitional option '"+o+"'"+i+(a?". "+a:"")}return(o,i,r)=>{if(t===!1)throw new Ae(l(i," has been removed"+(n?" in "+n:"")),Ae.ERR_DEPRECATED);return n&&!pv[i]&&(pv[i]=!0,console.warn(l(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(o,i,r):!0}};function rB(e,t,n){if(typeof e!="object")throw new Ae("options must be an object",Ae.ERR_BAD_OPTION_VALUE);const a=Object.keys(e);let l=a.length;for(;l-- >0;){const o=a[l],i=t[o];if(i){const r=e[o],s=r===void 0||i(r,o,e);if(s!==!0)throw new Ae("option "+o+" must be "+s,Ae.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new Ae("Unknown option "+o,Ae.ERR_BAD_OPTION)}}const lu={assertOptions:rB,validators:zc},Qn=lu.validators;class Ea{constructor(t){this.defaults=t,this.interceptors={request:new dv,response:new dv}}async request(t,n){try{return await this._request(t,n)}catch(a){if(a instanceof Error){let l;Error.captureStackTrace?Error.captureStackTrace(l={}):l=new Error;const o=l.stack?l.stack.replace(/^.+\n/,""):"";try{a.stack?o&&!String(a.stack).endsWith(o.replace(/^.+\n.+\n/,""))&&(a.stack+=` +`+o):a.stack=o}catch{}}throw a}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Fa(this.defaults,n);const{transitional:a,paramsSerializer:l,headers:o}=n;a!==void 0&&lu.assertOptions(a,{silentJSONParsing:Qn.transitional(Qn.boolean),forcedJSONParsing:Qn.transitional(Qn.boolean),clarifyTimeoutError:Qn.transitional(Qn.boolean)},!1),l!=null&&(J.isFunction(l)?n.paramsSerializer={serialize:l}:lu.assertOptions(l,{encode:Qn.function,serialize:Qn.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=o&&J.merge(o.common,o[n.method]);o&&J.forEach(["delete","get","head","post","put","patch","common"],g=>{delete o[g]}),n.headers=Ht.concat(i,o);const r=[];let s=!0;this.interceptors.request.forEach(function(h){typeof h.runWhen=="function"&&h.runWhen(n)===!1||(s=s&&h.synchronous,r.unshift(h.fulfilled,h.rejected))});const u=[];this.interceptors.response.forEach(function(h){u.push(h.fulfilled,h.rejected)});let c,f=0,v;if(!s){const g=[bv.bind(this),void 0];for(g.unshift.apply(g,r),g.push.apply(g,u),v=g.length,c=Promise.resolve(n);f{if(!a._listeners)return;let o=a._listeners.length;for(;o-- >0;)a._listeners[o](l);a._listeners=null}),this.promise.then=l=>{let o;const i=new Promise(r=>{a.subscribe(r),o=r}).then(l);return i.cancel=function(){a.unsubscribe(o)},i},t(function(o,i,r){a.reason||(a.reason=new Il(o,i,r),n(a.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}static source(){let t;return{token:new jc(function(l){t=l}),cancel:t}}}function sB(e){return function(n){return e.apply(null,n)}}function uB(e){return J.isObject(e)&&e.isAxiosError===!0}const ou={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(ou).forEach(([e,t])=>{ou[t]=e});function Eb(e){const t=new Ea(e),n=sb(Ea.prototype.request,t);return J.extend(n,Ea.prototype,t,{allOwnKeys:!0}),J.extend(n,t,null,{allOwnKeys:!0}),n.create=function(l){return Eb(Fa(e,l))},n}const ft=Eb(Fo);ft.Axios=Ea;ft.CanceledError=Il;ft.CancelToken=jc;ft.isCancel=xb;ft.VERSION=Tb;ft.toFormData=_r;ft.AxiosError=Ae;ft.Cancel=ft.CanceledError;ft.all=function(t){return Promise.all(t)};ft.spread=sB;ft.isAxiosError=uB;ft.mergeConfig=Fa;ft.AxiosHeaders=Ht;ft.formToJSON=e=>kb(J.isHTMLForm(e)?new FormData(e):e);ft.getAdapter=Ib.getAdapter;ft.HttpStatusCode=ou;ft.default=ft;class Ab{}Kc(Ab,"Instance",ft.create({timeout:1e4,withCredentials:!0}));const cB={install(e){e.config.globalProperties.$axios=Ab.Instance}};o0(Tw).use(ME).use(w1).use(cB).mount("#app"); diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/assets/index-Pb23BZ5N.css" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/assets/index-Pb23BZ5N.css" new file mode 100644 index 0000000..b2b2311 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/assets/index-Pb23BZ5N.css" @@ -0,0 +1,5 @@ +.footer[data-v-279a36c3]{text-align:center;padding:20px;background-color:#f1f1f1;font-family:Arial,sans-serif}@font-face{font-family:Dolbomche_R;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2104@1.0/Dolbomche_R.woff) format("woff");font-weight:400;font-style:normal}.logo[data-v-cc3498fb]{height:130px}.gnb-menu[data-v-cc3498fb]{display:flex;justify-content:space-around;align-items:center;height:7vh;border:solid lightgrey;border-radius:30px;margin:30px 0 50px}.gnb-menu a[data-v-cc3498fb]{font-size:24px;color:#000;text-decoration:none;position:relative;padding:6px 12px;font-family:Dolbomche_R}.gnb-menu a[data-v-cc3498fb]:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0;height:4px;background:#ffd54f;transition:all .5s ease-out}.gnb-menu a[data-v-cc3498fb]:hover:after{width:100%}.logn a[data-v-cc3498fb]{font-size:17px;color:#000;text-align:right;padding:6px 12px}h1[data-v-cc3498fb]{text-align:center;font-family:Dolbomche_R}.text-center img[data-v-cc3498fb]{display:block;margin:0 auto}.v-application{display:flex;background:rgb(var(--v-theme-background));color:rgba(var(--v-theme-on-background),var(--v-high-emphasis-opacity))}.v-application__wrap{backface-visibility:hidden;display:flex;flex-direction:column;flex:1 1 auto;max-width:100%;min-height:100vh;min-height:100dvh;position:relative}.v-main{flex:1 0 auto;max-width:100%;transition:.2s cubic-bezier(.4,0,.2,1);padding-left:var(--v-layout-left);padding-right:var(--v-layout-right);padding-top:var(--v-layout-top);padding-bottom:var(--v-layout-bottom)}.v-main__scroller{max-width:100%;position:relative}.v-main--scrollable{display:flex;position:absolute;top:0;left:0;width:100%;height:100%}.v-main--scrollable>.v-main__scroller{flex:1 1 auto;overflow-y:auto;--v-layout-left: 0px;--v-layout-right: 0px;--v-layout-top: 0px;--v-layout-bottom: 0px}@font-face{font-family:Dolbomche_R;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2104@1.0/Dolbomche_R.woff) format("woff");font-weight:400;font-style:normal}.logo[data-v-4ebe6f31]{height:130px}.gnb-menu[data-v-4ebe6f31]{display:flex;justify-content:space-around;align-items:center;height:7vh;border:solid lightgrey;border-radius:30px;margin:30px 0 50px}.gnb-menu a[data-v-4ebe6f31]{font-size:24px;color:#000;text-decoration:none;position:relative;padding:6px 12px;font-family:Dolbomche_R}.gnb-menu a[data-v-4ebe6f31]:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:0;height:4px;background:#ffd54f;transition:all .5s ease-out}.gnb-menu a[data-v-4ebe6f31]:hover:after{width:100%}.logn a[data-v-4ebe6f31]{font-size:17px;color:#000;text-align:right;padding:6px 12px}h1[data-v-4ebe6f31]{text-align:center;font-family:Dolbomche_R}.text-center img[data-v-4ebe6f31]{display:block;margin:0 auto}@font-face{font-family:Dolbomche_R;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2104@1.0/Dolbomche_R.woff) format("woff");font-weight:400;font-style:normal}#board_box[data-v-dfdd62bc]{font-family:Dolbomche_R}.card[data-v-dfdd62bc]{width:400px;display:inline-table;margin:30px;padding:10px;font-family:Dolbomche_R;background:#fff0f5}@font-face{font-family:Dolbomche_R;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2104@1.0/Dolbomche_R.woff) format("woff");font-weight:400;font-style:normal;font-size:large}div[data-v-6ab8e9b4]{font-family:Dolbomche_R;font-size:medium}.add-form[data-v-6ab8e9b4]{border:1.5px solid #fed35a;border-radius:20px;margin:30px;padding:30px 50px 50px;width:600px;display:inline-block;background:#ffedb8}.goal[data-v-6ab8e9b4],.kind[data-v-6ab8e9b4],.goal-date[data-v-6ab8e9b4],.how[data-v-6ab8e9b4],.upload-img[data-v-6ab8e9b4]{margin:5px;padding:10px}.card-header[data-v-6ab8e9b4]{padding:.75rem 1.25rem;margin-bottom:0;border-bottom:1px solid #ffc107;background-color:#fff8dc}label[data-v-6ab8e9b4]{font-size:20px}h3[data-v-6ab8e9b4]{font-family:Dolbomche_R;font-size:35px}@font-face{font-family:Dolbomche_R;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2104@1.0/Dolbomche_R.woff) format("woff");font-weight:400;font-style:normal}div[data-v-d44d05d4]{font-family:Dolbomche_R}#login_box[data-v-d44d05d4]{width:800px;margin:0 auto;padding:20px;background-color:#f9f9f9;border-radius:10px;box-shadow:0 0 10px #0000001a}#login_box h2[data-v-d44d05d4]{margin:10px 0 30px;font-size:24px;color:#333}.btn[data-v-d44d05d4]{padding:10px 20px;font-size:16px;border:none;border-radius:5px;cursor:pointer}.btn-danger[data-v-d44d05d4]{background-color:#db4437;color:#fff}.error-message[data-v-d44d05d4]{color:red;margin-top:10px}@font-face{font-family:Dolbomche_R;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2104@1.0/Dolbomche_R.woff) format("woff");font-weight:400;font-style:normal}.fill-height[data-v-ef254e13]{height:100vh}.v-card[data-v-ef254e13]{padding:20px}.v-card-title[data-v-ef254e13]{padding-bottom:0}.v-text-field[data-v-ef254e13]{margin-bottom:20px}.v-btn[data-v-ef254e13]{background-color:#ffd54f!important;color:#000!important}.v-btn[data-v-ef254e13]:hover{background-color:#ffca28!important}.v-btn{align-items:center;border-radius:4px;display:inline-grid;grid-template-areas:"prepend content append";grid-template-columns:max-content auto max-content;font-weight:500;justify-content:center;letter-spacing:.0892857143em;line-height:normal;max-width:100%;outline:none;position:relative;text-decoration:none;text-indent:.0892857143em;text-transform:uppercase;transition-property:box-shadow,transform,opacity,background;transition-duration:.28s;transition-timing-function:cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;vertical-align:middle;flex-shrink:0;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0}.v-btn--size-x-small{--v-btn-size: .625rem;--v-btn-height: 20px;font-size:var(--v-btn-size);min-width:36px;padding:0 8px}.v-btn--size-small{--v-btn-size: .75rem;--v-btn-height: 28px;font-size:var(--v-btn-size);min-width:50px;padding:0 12px}.v-btn--size-default{--v-btn-size: .875rem;--v-btn-height: 36px;font-size:var(--v-btn-size);min-width:64px;padding:0 16px}.v-btn--size-large{--v-btn-size: 1rem;--v-btn-height: 44px;font-size:var(--v-btn-size);min-width:78px;padding:0 20px}.v-btn--size-x-large{--v-btn-size: 1.125rem;--v-btn-height: 52px;font-size:var(--v-btn-size);min-width:92px;padding:0 24px}.v-btn.v-btn--density-default{height:calc(var(--v-btn-height) + 0px)}.v-btn.v-btn--density-comfortable{height:calc(var(--v-btn-height) + -8px)}.v-btn.v-btn--density-compact{height:calc(var(--v-btn-height) + -12px)}.v-btn--border{border-width:thin;box-shadow:none}.v-btn--absolute{position:absolute}.v-btn--fixed{position:fixed}.v-btn:hover>.v-btn__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-btn:focus-visible>.v-btn__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-btn:focus>.v-btn__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-btn--active>.v-btn__overlay,.v-btn[aria-haspopup=menu][aria-expanded=true]>.v-btn__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-btn--active:hover>.v-btn__overlay,.v-btn[aria-haspopup=menu][aria-expanded=true]:hover>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-btn--active:focus-visible>.v-btn__overlay,.v-btn[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-btn--active:focus>.v-btn__overlay,.v-btn[aria-haspopup=menu][aria-expanded=true]:focus>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-btn--variant-plain,.v-btn--variant-outlined,.v-btn--variant-text,.v-btn--variant-tonal{background:transparent;color:inherit}.v-btn--variant-plain{opacity:.62}.v-btn--variant-plain:focus,.v-btn--variant-plain:hover{opacity:1}.v-btn--variant-plain .v-btn__overlay{display:none}.v-btn--variant-elevated,.v-btn--variant-flat{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-btn--variant-elevated{box-shadow:0 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 2px 2px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 5px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-btn--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-btn--variant-outlined{border:thin solid currentColor}.v-btn--variant-text .v-btn__overlay{background:currentColor}.v-btn--variant-tonal .v-btn__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-btn .v-btn__underlay{position:absolute}@supports selector(:focus-visible){.v-btn:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;border:2px solid currentColor;border-radius:inherit;opacity:0;transition:opacity .2s ease-in-out}.v-btn:focus-visible:after{opacity:calc(.25 * var(--v-theme-overlay-multiplier))}}.v-btn--icon{border-radius:50%;min-width:0;padding:0}.v-btn--icon.v-btn--size-default{--v-btn-size: 1rem}.v-btn--icon.v-btn--density-default{width:calc(var(--v-btn-height) + 12px);height:calc(var(--v-btn-height) + 12px)}.v-btn--icon.v-btn--density-comfortable{width:calc(var(--v-btn-height) + 0px);height:calc(var(--v-btn-height) + 0px)}.v-btn--icon.v-btn--density-compact{width:calc(var(--v-btn-height) + -8px);height:calc(var(--v-btn-height) + -8px)}.v-btn--elevated:hover,.v-btn--elevated:focus{box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-btn--elevated:active{box-shadow:0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 14px 2px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-btn--flat{box-shadow:none}.v-btn--block{display:flex;flex:1 0 auto;min-width:100%}.v-btn--disabled{pointer-events:none;opacity:.26}.v-btn--disabled:hover{opacity:.26}.v-btn--disabled.v-btn--variant-elevated,.v-btn--disabled.v-btn--variant-flat{box-shadow:none;opacity:1;color:rgba(var(--v-theme-on-surface),.26);background:rgb(var(--v-theme-surface))}.v-btn--disabled.v-btn--variant-elevated .v-btn__overlay,.v-btn--disabled.v-btn--variant-flat .v-btn__overlay{opacity:.4615384615}.v-btn--loading{pointer-events:none}.v-btn--loading .v-btn__content,.v-btn--loading .v-btn__prepend,.v-btn--loading .v-btn__append{opacity:0}.v-btn--stacked{grid-template-areas:"prepend" "content" "append";grid-template-columns:auto;grid-template-rows:max-content max-content max-content;justify-items:center;align-content:center}.v-btn--stacked .v-btn__content{flex-direction:column;line-height:1.25}.v-btn--stacked .v-btn__prepend,.v-btn--stacked .v-btn__append,.v-btn--stacked .v-btn__content>.v-icon--start,.v-btn--stacked .v-btn__content>.v-icon--end{margin-inline:0}.v-btn--stacked .v-btn__prepend,.v-btn--stacked .v-btn__content>.v-icon--start{margin-bottom:4px}.v-btn--stacked .v-btn__append,.v-btn--stacked .v-btn__content>.v-icon--end{margin-top:4px}.v-btn--stacked.v-btn--size-x-small{--v-btn-size: .625rem;--v-btn-height: 56px;font-size:var(--v-btn-size);min-width:56px;padding:0 12px}.v-btn--stacked.v-btn--size-small{--v-btn-size: .75rem;--v-btn-height: 64px;font-size:var(--v-btn-size);min-width:64px;padding:0 14px}.v-btn--stacked.v-btn--size-default{--v-btn-size: .875rem;--v-btn-height: 72px;font-size:var(--v-btn-size);min-width:72px;padding:0 16px}.v-btn--stacked.v-btn--size-large{--v-btn-size: 1rem;--v-btn-height: 80px;font-size:var(--v-btn-size);min-width:80px;padding:0 18px}.v-btn--stacked.v-btn--size-x-large{--v-btn-size: 1.125rem;--v-btn-height: 88px;font-size:var(--v-btn-size);min-width:88px;padding:0 20px}.v-btn--stacked.v-btn--density-default{height:calc(var(--v-btn-height) + 0px)}.v-btn--stacked.v-btn--density-comfortable{height:calc(var(--v-btn-height) + -16px)}.v-btn--stacked.v-btn--density-compact{height:calc(var(--v-btn-height) + -24px)}.v-btn--slim{padding:0 8px}.v-btn--readonly{pointer-events:none}.v-btn--rounded{border-radius:24px}.v-btn--rounded.v-btn--icon{border-radius:4px}.v-btn .v-icon{--v-icon-size-multiplier: .8571428571}.v-btn--icon .v-icon{--v-icon-size-multiplier: 1}.v-btn--stacked .v-icon{--v-icon-size-multiplier: 1.1428571429}.v-btn__loader{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.v-btn__loader>.v-progress-circular{width:1.5em;height:1.5em}.v-btn__content,.v-btn__prepend,.v-btn__append{align-items:center;display:flex;transition:transform,opacity .2s cubic-bezier(.4,0,.2,1)}.v-btn__prepend{grid-area:prepend;margin-inline:calc(var(--v-btn-height) / -9) calc(var(--v-btn-height) / 4.5)}.v-btn--slim .v-btn__prepend{margin-inline-start:0}.v-btn__append{grid-area:append;margin-inline:calc(var(--v-btn-height) / 4.5) calc(var(--v-btn-height) / -9)}.v-btn--slim .v-btn__append{margin-inline-end:0}.v-btn__content{grid-area:content;justify-content:center;white-space:nowrap}.v-btn__content>.v-icon--start{margin-inline:calc(var(--v-btn-height) / -9) calc(var(--v-btn-height) / 4.5)}.v-btn__content>.v-icon--end{margin-inline:calc(var(--v-btn-height) / 4.5) calc(var(--v-btn-height) / -9)}.v-btn--stacked .v-btn__content{white-space:normal}.v-btn__overlay{background-color:currentColor;border-radius:inherit;opacity:0;transition:opacity .2s ease-in-out}.v-btn__overlay,.v-btn__underlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.v-card-actions .v-btn~.v-btn:not(.v-btn-toggle .v-btn){margin-inline-start:.5rem}.v-pagination .v-btn{border-radius:4px}.v-pagination .v-btn--rounded{border-radius:50%}.v-btn__overlay{transition:none}.v-pagination__item--is-active .v-btn__overlay{opacity:var(--v-border-opacity)}.v-btn-toggle>.v-btn.v-btn--active:not(.v-btn--disabled)>.v-btn__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-btn-toggle>.v-btn.v-btn--active:not(.v-btn--disabled):hover>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-btn-toggle>.v-btn.v-btn--active:not(.v-btn--disabled):focus-visible>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-btn-toggle>.v-btn.v-btn--active:not(.v-btn--disabled):focus>.v-btn__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-btn-group{display:inline-flex;flex-wrap:nowrap;max-width:100%;min-width:0;overflow:hidden;vertical-align:middle;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:4px;background:transparent;color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-btn-group--border{border-width:thin;box-shadow:none}.v-btn-group--density-default.v-btn-group{height:48px}.v-btn-group--density-comfortable.v-btn-group{height:40px}.v-btn-group--density-compact.v-btn-group{height:36px}.v-btn-group .v-btn{border-radius:0;border-color:inherit}.v-btn-group .v-btn:not(:last-child){border-inline-end:none}.v-btn-group .v-btn:not(:first-child){border-inline-start:none}.v-btn-group .v-btn:first-child{border-start-start-radius:inherit;border-end-start-radius:inherit}.v-btn-group .v-btn:last-child{border-start-end-radius:inherit;border-end-end-radius:inherit}.v-btn-group--divided .v-btn:not(:last-child){border-inline-end-width:thin;border-inline-end-style:solid;border-inline-end-color:rgba(var(--v-border-color),var(--v-border-opacity))}.v-btn-group--tile{border-radius:0}.v-icon{--v-icon-size-multiplier: 1;align-items:center;display:inline-flex;font-feature-settings:"liga";height:1em;justify-content:center;letter-spacing:normal;line-height:1;position:relative;text-indent:0;text-align:center;-webkit-user-select:none;user-select:none;vertical-align:middle;width:1em;min-width:1em}.v-icon--clickable{cursor:pointer}.v-icon--disabled{pointer-events:none;opacity:.38}.v-icon--size-x-small{font-size:calc(var(--v-icon-size-multiplier) * 1em)}.v-icon--size-small{font-size:calc(var(--v-icon-size-multiplier) * 1.25em)}.v-icon--size-default{font-size:calc(var(--v-icon-size-multiplier) * 1.5em)}.v-icon--size-large{font-size:calc(var(--v-icon-size-multiplier) * 1.75em)}.v-icon--size-x-large{font-size:calc(var(--v-icon-size-multiplier) * 2em)}.v-icon__svg{fill:currentColor;width:100%;height:100%}.v-icon--start{margin-inline-end:8px}.v-icon--end{margin-inline-start:8px}.v-progress-circular{align-items:center;display:inline-flex;justify-content:center;position:relative;vertical-align:middle}.v-progress-circular>svg{width:100%;height:100%;margin:auto;position:absolute;top:0;bottom:0;left:0;right:0;z-index:0}.v-progress-circular__content{align-items:center;display:flex;justify-content:center}.v-progress-circular__underlay{color:rgba(var(--v-border-color),var(--v-border-opacity));stroke:currentColor;z-index:1}.v-progress-circular__overlay{stroke:currentColor;transition:all .2s ease-in-out,stroke-width 0s;z-index:2}.v-progress-circular--size-x-small{height:16px;width:16px}.v-progress-circular--size-small{height:24px;width:24px}.v-progress-circular--size-default{height:32px;width:32px}.v-progress-circular--size-large{height:48px;width:48px}.v-progress-circular--size-x-large{height:64px;width:64px}.v-progress-circular--indeterminate>svg{animation:progress-circular-rotate 1.4s linear infinite;transform-origin:center center;transition:all .2s ease-in-out}.v-progress-circular--indeterminate .v-progress-circular__overlay{animation:progress-circular-dash 1.4s ease-in-out infinite,progress-circular-rotate 1.4s linear infinite;stroke-dasharray:25,200;stroke-dashoffset:0;stroke-linecap:round;transform-origin:center center;transform:rotate(-90deg)}.v-progress-circular--disable-shrink>svg{animation-duration:.7s}.v-progress-circular--disable-shrink .v-progress-circular__overlay{animation:none}.v-progress-circular--indeterminate:not(.v-progress-circular--visible)>svg,.v-progress-circular--indeterminate:not(.v-progress-circular--visible) .v-progress-circular__overlay{animation-play-state:paused!important}@keyframes progress-circular-dash{0%{stroke-dasharray:1,200;stroke-dashoffset:0px}50%{stroke-dasharray:100,200;stroke-dashoffset:-15px}to{stroke-dasharray:100,200;stroke-dashoffset:-124px}}@keyframes progress-circular-rotate{to{transform:rotate(270deg)}}.v-progress-linear{background:transparent;overflow:hidden;position:relative;transition:.2s cubic-bezier(.4,0,.2,1);width:100%}.v-progress-linear__background,.v-progress-linear__buffer{background:currentColor;bottom:0;left:0;opacity:var(--v-border-opacity);position:absolute;top:0;width:100%;transition-property:width,left,right;transition:inherit}.v-progress-linear__content{align-items:center;display:flex;height:100%;justify-content:center;left:0;pointer-events:none;position:absolute;top:0;width:100%}.v-progress-linear__determinate,.v-progress-linear__indeterminate{background:currentColor}.v-progress-linear__determinate{height:inherit;left:0;position:absolute;transition:inherit;transition-property:width,left,right}.v-progress-linear__indeterminate .long,.v-progress-linear__indeterminate .short{animation-play-state:paused;animation-duration:2.2s;animation-iteration-count:infinite;bottom:0;height:inherit;left:0;position:absolute;right:auto;top:0;width:auto}.v-progress-linear__indeterminate .long{animation-name:indeterminate-ltr}.v-progress-linear__indeterminate .short{animation-name:indeterminate-short-ltr}.v-progress-linear__stream{animation:stream .25s infinite linear;animation-play-state:paused;bottom:0;left:auto;opacity:.3;pointer-events:none;position:absolute;transition:inherit;transition-property:width,left,right}.v-progress-linear--reverse .v-progress-linear__background,.v-progress-linear--reverse .v-progress-linear__determinate,.v-progress-linear--reverse .v-progress-linear__content,.v-progress-linear--reverse .v-progress-linear__indeterminate .long,.v-progress-linear--reverse .v-progress-linear__indeterminate .short{left:auto;right:0}.v-progress-linear--reverse .v-progress-linear__indeterminate .long{animation-name:indeterminate-rtl}.v-progress-linear--reverse .v-progress-linear__indeterminate .short{animation-name:indeterminate-short-rtl}.v-progress-linear--reverse .v-progress-linear__stream{right:auto}.v-progress-linear--absolute,.v-progress-linear--fixed{left:0;z-index:1}.v-progress-linear--absolute{position:absolute}.v-progress-linear--fixed{position:fixed}.v-progress-linear--rounded{border-radius:9999px}.v-progress-linear--rounded.v-progress-linear--rounded-bar .v-progress-linear__determinate,.v-progress-linear--rounded.v-progress-linear--rounded-bar .v-progress-linear__indeterminate{border-radius:inherit}.v-progress-linear--striped .v-progress-linear__determinate{animation:progress-linear-stripes 1s infinite linear;background-image:linear-gradient(135deg,hsla(0,0%,100%,.25) 25%,transparent 0,transparent 50%,hsla(0,0%,100%,.25) 0,hsla(0,0%,100%,.25) 75%,transparent 0,transparent);background-repeat:repeat;background-size:var(--v-progress-linear-height)}.v-progress-linear--active .v-progress-linear__indeterminate .long,.v-progress-linear--active .v-progress-linear__indeterminate .short,.v-progress-linear--active .v-progress-linear__stream{animation-play-state:running}.v-progress-linear--rounded-bar .v-progress-linear__determinate,.v-progress-linear--rounded-bar .v-progress-linear__indeterminate,.v-progress-linear--rounded-bar .v-progress-linear__stream+.v-progress-linear__background{border-radius:9999px}.v-progress-linear--rounded-bar .v-progress-linear__determinate{border-start-start-radius:0;border-end-start-radius:0}@keyframes indeterminate-ltr{0%{left:-90%;right:100%}60%{left:-90%;right:100%}to{left:100%;right:-35%}}@keyframes indeterminate-rtl{0%{left:100%;right:-90%}60%{left:100%;right:-90%}to{left:-35%;right:100%}}@keyframes indeterminate-short-ltr{0%{left:-200%;right:100%}60%{left:107%;right:-8%}to{left:107%;right:-8%}}@keyframes indeterminate-short-rtl{0%{left:100%;right:-200%}60%{left:-8%;right:107%}to{left:-8%;right:107%}}@keyframes stream{to{transform:translate(var(--v-progress-linear-stream-to))}}@keyframes progress-linear-stripes{0%{background-position-x:var(--v-progress-linear-height)}}.v-ripple__container{color:inherit;border-radius:inherit;position:absolute;width:100%;height:100%;left:0;top:0;overflow:hidden;z-index:0;pointer-events:none;contain:strict}.v-ripple__animation{color:inherit;position:absolute;top:0;left:0;border-radius:50%;background:currentColor;opacity:0;pointer-events:none;overflow:hidden;will-change:transform,opacity}.v-ripple__animation--enter{transition:none;opacity:0}.v-ripple__animation--in{transition:transform .25s cubic-bezier(0,0,.2,1),opacity .1s cubic-bezier(0,0,.2,1);opacity:calc(.25 * var(--v-theme-overlay-multiplier))}.v-ripple__animation--out{transition:opacity .3s cubic-bezier(0,0,.2,1);opacity:0}.v-card{display:block;overflow:hidden;overflow-wrap:break-word;position:relative;padding:0;text-decoration:none;transition-duration:.28s;transition-property:box-shadow,opacity,background;transition-timing-function:cubic-bezier(.4,0,.2,1);z-index:0;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;border-radius:4px}.v-card--border{border-width:thin;box-shadow:none}.v-card--absolute{position:absolute}.v-card--fixed{position:fixed}.v-card:hover>.v-card__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-card:focus-visible>.v-card__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-card:focus>.v-card__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-card--active>.v-card__overlay,.v-card[aria-haspopup=menu][aria-expanded=true]>.v-card__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-card--active:hover>.v-card__overlay,.v-card[aria-haspopup=menu][aria-expanded=true]:hover>.v-card__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-card--active:focus-visible>.v-card__overlay,.v-card[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-card__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-card--active:focus>.v-card__overlay,.v-card[aria-haspopup=menu][aria-expanded=true]:focus>.v-card__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-card--variant-plain,.v-card--variant-outlined,.v-card--variant-text,.v-card--variant-tonal{background:transparent;color:inherit}.v-card--variant-plain{opacity:.62}.v-card--variant-plain:focus,.v-card--variant-plain:hover{opacity:1}.v-card--variant-plain .v-card__overlay{display:none}.v-card--variant-elevated,.v-card--variant-flat{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-card--variant-elevated{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-card--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-card--variant-outlined{border:thin solid currentColor}.v-card--variant-text .v-card__overlay{background:currentColor}.v-card--variant-tonal .v-card__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-card .v-card__underlay{position:absolute}.v-card--disabled{pointer-events:none;-webkit-user-select:none;user-select:none}.v-card--disabled>:not(.v-card__loader){opacity:.6}.v-card--flat{box-shadow:none}.v-card--hover{cursor:pointer}.v-card--hover:before,.v-card--hover:after{border-radius:inherit;bottom:0;content:"";display:block;left:0;pointer-events:none;position:absolute;right:0;top:0;transition:inherit}.v-card--hover:before{opacity:1;z-index:-1;box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-card--hover:after{z-index:1;opacity:0;box-shadow:0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 14px 2px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-card--hover:hover:after{opacity:1}.v-card--hover:hover:before{opacity:0}.v-card--hover:hover{box-shadow:0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 14px 2px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-card--link{cursor:pointer}.v-card-actions{align-items:center;display:flex;flex:none;min-height:52px;padding:.5rem}.v-card-item{align-items:center;display:grid;flex:none;grid-template-areas:"prepend content append";grid-template-columns:max-content auto max-content;padding:.625rem 1rem}.v-card-item+.v-card-text{padding-top:0}.v-card-item__prepend,.v-card-item__append{align-items:center;display:flex}.v-card-item__prepend{grid-area:prepend;padding-inline-end:.5rem}.v-card-item__append{grid-area:append;padding-inline-start:.5rem}.v-card-item__content{align-self:center;grid-area:content;overflow:hidden}.v-card-title{display:block;flex:none;font-size:1.25rem;font-weight:500;-webkit-hyphens:auto;hyphens:auto;letter-spacing:.0125em;min-width:0;overflow-wrap:normal;overflow:hidden;padding:.5rem 1rem;text-overflow:ellipsis;text-transform:none;white-space:nowrap;word-break:normal;word-wrap:break-word}.v-card .v-card-title{line-height:1.6}.v-card--density-comfortable .v-card-title{line-height:1.75rem}.v-card--density-compact .v-card-title{line-height:1.55rem}.v-card-item .v-card-title{padding:0}.v-card-title+.v-card-text,.v-card-title+.v-card-actions{padding-top:0}.v-card-subtitle{display:block;flex:none;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;opacity:var(--v-card-subtitle-opacity, var(--v-medium-emphasis-opacity));overflow:hidden;padding:0 1rem;text-overflow:ellipsis;text-transform:none;white-space:nowrap}.v-card .v-card-subtitle{line-height:1.425}.v-card--density-comfortable .v-card-subtitle{line-height:1.125rem}.v-card--density-compact .v-card-subtitle{line-height:1rem}.v-card-item .v-card-subtitle{padding:0 0 .25rem}.v-card-text{flex:1 1 auto;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;opacity:var(--v-card-text-opacity, 1);padding:1rem;text-transform:none}.v-card .v-card-text{line-height:1.425}.v-card--density-comfortable .v-card-text{line-height:1.2rem}.v-card--density-compact .v-card-text{line-height:1.15rem}.v-card__image{display:flex;height:100%;flex:1 1 auto;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:-1}.v-card__content{border-radius:inherit;overflow:hidden;position:relative}.v-card__loader{bottom:auto;top:0;left:0;position:absolute;right:0;width:100%;z-index:1}.v-card__overlay{background-color:currentColor;border-radius:inherit;position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;transition:opacity .2s ease-in-out}.v-avatar{flex:none;align-items:center;display:inline-flex;justify-content:center;line-height:normal;overflow:hidden;position:relative;text-align:center;transition:.2s cubic-bezier(.4,0,.2,1);transition-property:width,height;vertical-align:middle;border-radius:50%}.v-avatar.v-avatar--size-x-small{--v-avatar-height: 24px}.v-avatar.v-avatar--size-small{--v-avatar-height: 32px}.v-avatar.v-avatar--size-default{--v-avatar-height: 40px}.v-avatar.v-avatar--size-large{--v-avatar-height: 48px}.v-avatar.v-avatar--size-x-large{--v-avatar-height: 56px}.v-avatar.v-avatar--density-default{height:calc(var(--v-avatar-height) + 0px);width:calc(var(--v-avatar-height) + 0px)}.v-avatar.v-avatar--density-comfortable{height:calc(var(--v-avatar-height) + -4px);width:calc(var(--v-avatar-height) + -4px)}.v-avatar.v-avatar--density-compact{height:calc(var(--v-avatar-height) + -8px);width:calc(var(--v-avatar-height) + -8px)}.v-avatar--variant-plain,.v-avatar--variant-outlined,.v-avatar--variant-text,.v-avatar--variant-tonal{background:transparent;color:inherit}.v-avatar--variant-plain{opacity:.62}.v-avatar--variant-plain:focus,.v-avatar--variant-plain:hover{opacity:1}.v-avatar--variant-plain .v-avatar__overlay{display:none}.v-avatar--variant-elevated,.v-avatar--variant-flat{background:var(--v-theme-surface);color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity))}.v-avatar--variant-elevated{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-avatar--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-avatar--variant-outlined{border:thin solid currentColor}.v-avatar--variant-text .v-avatar__overlay{background:currentColor}.v-avatar--variant-tonal .v-avatar__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-avatar .v-avatar__underlay{position:absolute}.v-avatar--rounded{border-radius:4px}.v-avatar--start{margin-inline-end:8px}.v-avatar--end{margin-inline-start:8px}.v-avatar .v-img{height:100%;width:100%}.v-img{--v-theme-overlay-multiplier: 3;z-index:0}.v-img--booting .v-responsive__sizer{transition:none}.v-img--rounded{border-radius:4px}.v-img__img,.v-img__picture,.v-img__gradient,.v-img__placeholder,.v-img__error{z-index:-1;position:absolute;top:0;left:0;width:100%;height:100%}.v-img__img--preload{filter:blur(4px)}.v-img__img--contain{object-fit:contain}.v-img__img--cover{object-fit:cover}.v-img__gradient{background-repeat:no-repeat}.v-responsive{display:flex;flex:1 0 auto;max-height:100%;max-width:100%;overflow:hidden;position:relative}.v-responsive--inline{display:inline-flex;flex:0 0 auto}.v-responsive__content{flex:1 0 0px;max-width:100%}.v-responsive__sizer~.v-responsive__content{margin-inline-start:-100%}.v-responsive__sizer{flex:1 0 0px;transition:padding-bottom .2s cubic-bezier(.4,0,.2,1);pointer-events:none}.v-container{width:100%;padding:16px;margin-right:auto;margin-left:auto}@media (min-width: 960px){.v-container{max-width:900px}}@media (min-width: 1280px){.v-container{max-width:1200px}}@media (min-width: 1920px){.v-container{max-width:1800px}}@media (min-width: 2560px){.v-container{max-width:2400px}}.v-container--fluid{max-width:100%}.v-container.fill-height{align-items:center;display:flex;flex-wrap:wrap}.v-row{display:flex;flex-wrap:wrap;flex:1 1 auto;margin:-12px}.v-row+.v-row{margin-top:12px}.v-row+.v-row--dense{margin-top:4px}.v-row--dense{margin:-4px}.v-row--dense>.v-col,.v-row--dense>[class*=v-col-]{padding:4px}.v-row.v-row--no-gutters{margin:0}.v-row.v-row--no-gutters>.v-col,.v-row.v-row--no-gutters>[class*=v-col-]{padding:0}.v-spacer{flex-grow:1}.v-col-xxl,.v-col-xxl-auto,.v-col-xxl-12,.v-col-xxl-11,.v-col-xxl-10,.v-col-xxl-9,.v-col-xxl-8,.v-col-xxl-7,.v-col-xxl-6,.v-col-xxl-5,.v-col-xxl-4,.v-col-xxl-3,.v-col-xxl-2,.v-col-xxl-1,.v-col-xl,.v-col-xl-auto,.v-col-xl-12,.v-col-xl-11,.v-col-xl-10,.v-col-xl-9,.v-col-xl-8,.v-col-xl-7,.v-col-xl-6,.v-col-xl-5,.v-col-xl-4,.v-col-xl-3,.v-col-xl-2,.v-col-xl-1,.v-col-lg,.v-col-lg-auto,.v-col-lg-12,.v-col-lg-11,.v-col-lg-10,.v-col-lg-9,.v-col-lg-8,.v-col-lg-7,.v-col-lg-6,.v-col-lg-5,.v-col-lg-4,.v-col-lg-3,.v-col-lg-2,.v-col-lg-1,.v-col-md,.v-col-md-auto,.v-col-md-12,.v-col-md-11,.v-col-md-10,.v-col-md-9,.v-col-md-8,.v-col-md-7,.v-col-md-6,.v-col-md-5,.v-col-md-4,.v-col-md-3,.v-col-md-2,.v-col-md-1,.v-col-sm,.v-col-sm-auto,.v-col-sm-12,.v-col-sm-11,.v-col-sm-10,.v-col-sm-9,.v-col-sm-8,.v-col-sm-7,.v-col-sm-6,.v-col-sm-5,.v-col-sm-4,.v-col-sm-3,.v-col-sm-2,.v-col-sm-1,.v-col,.v-col-auto,.v-col-12,.v-col-11,.v-col-10,.v-col-9,.v-col-8,.v-col-7,.v-col-6,.v-col-5,.v-col-4,.v-col-3,.v-col-2,.v-col-1{width:100%;padding:12px}.v-col{flex-basis:0;flex-grow:1;max-width:100%}.v-col-auto{flex:0 0 auto;width:auto;max-width:100%}.v-col-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.v-col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.v-col-3{flex:0 0 25%;max-width:25%}.v-col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.v-col-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.v-col-6{flex:0 0 50%;max-width:50%}.v-col-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.v-col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.v-col-9{flex:0 0 75%;max-width:75%}.v-col-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.v-col-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.v-col-12{flex:0 0 100%;max-width:100%}.offset-1{margin-inline-start:8.3333333333%}.offset-2{margin-inline-start:16.6666666667%}.offset-3{margin-inline-start:25%}.offset-4{margin-inline-start:33.3333333333%}.offset-5{margin-inline-start:41.6666666667%}.offset-6{margin-inline-start:50%}.offset-7{margin-inline-start:58.3333333333%}.offset-8{margin-inline-start:66.6666666667%}.offset-9{margin-inline-start:75%}.offset-10{margin-inline-start:83.3333333333%}.offset-11{margin-inline-start:91.6666666667%}@media (min-width: 600px){.v-col-sm{flex-basis:0;flex-grow:1;max-width:100%}.v-col-sm-auto{flex:0 0 auto;width:auto;max-width:100%}.v-col-sm-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.v-col-sm-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.v-col-sm-3{flex:0 0 25%;max-width:25%}.v-col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.v-col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.v-col-sm-6{flex:0 0 50%;max-width:50%}.v-col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.v-col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.v-col-sm-9{flex:0 0 75%;max-width:75%}.v-col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.v-col-sm-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.v-col-sm-12{flex:0 0 100%;max-width:100%}.offset-sm-0{margin-inline-start:0}.offset-sm-1{margin-inline-start:8.3333333333%}.offset-sm-2{margin-inline-start:16.6666666667%}.offset-sm-3{margin-inline-start:25%}.offset-sm-4{margin-inline-start:33.3333333333%}.offset-sm-5{margin-inline-start:41.6666666667%}.offset-sm-6{margin-inline-start:50%}.offset-sm-7{margin-inline-start:58.3333333333%}.offset-sm-8{margin-inline-start:66.6666666667%}.offset-sm-9{margin-inline-start:75%}.offset-sm-10{margin-inline-start:83.3333333333%}.offset-sm-11{margin-inline-start:91.6666666667%}}@media (min-width: 960px){.v-col-md{flex-basis:0;flex-grow:1;max-width:100%}.v-col-md-auto{flex:0 0 auto;width:auto;max-width:100%}.v-col-md-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.v-col-md-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.v-col-md-3{flex:0 0 25%;max-width:25%}.v-col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.v-col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.v-col-md-6{flex:0 0 50%;max-width:50%}.v-col-md-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.v-col-md-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.v-col-md-9{flex:0 0 75%;max-width:75%}.v-col-md-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.v-col-md-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.v-col-md-12{flex:0 0 100%;max-width:100%}.offset-md-0{margin-inline-start:0}.offset-md-1{margin-inline-start:8.3333333333%}.offset-md-2{margin-inline-start:16.6666666667%}.offset-md-3{margin-inline-start:25%}.offset-md-4{margin-inline-start:33.3333333333%}.offset-md-5{margin-inline-start:41.6666666667%}.offset-md-6{margin-inline-start:50%}.offset-md-7{margin-inline-start:58.3333333333%}.offset-md-8{margin-inline-start:66.6666666667%}.offset-md-9{margin-inline-start:75%}.offset-md-10{margin-inline-start:83.3333333333%}.offset-md-11{margin-inline-start:91.6666666667%}}@media (min-width: 1280px){.v-col-lg{flex-basis:0;flex-grow:1;max-width:100%}.v-col-lg-auto{flex:0 0 auto;width:auto;max-width:100%}.v-col-lg-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.v-col-lg-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.v-col-lg-3{flex:0 0 25%;max-width:25%}.v-col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.v-col-lg-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.v-col-lg-6{flex:0 0 50%;max-width:50%}.v-col-lg-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.v-col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.v-col-lg-9{flex:0 0 75%;max-width:75%}.v-col-lg-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.v-col-lg-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.v-col-lg-12{flex:0 0 100%;max-width:100%}.offset-lg-0{margin-inline-start:0}.offset-lg-1{margin-inline-start:8.3333333333%}.offset-lg-2{margin-inline-start:16.6666666667%}.offset-lg-3{margin-inline-start:25%}.offset-lg-4{margin-inline-start:33.3333333333%}.offset-lg-5{margin-inline-start:41.6666666667%}.offset-lg-6{margin-inline-start:50%}.offset-lg-7{margin-inline-start:58.3333333333%}.offset-lg-8{margin-inline-start:66.6666666667%}.offset-lg-9{margin-inline-start:75%}.offset-lg-10{margin-inline-start:83.3333333333%}.offset-lg-11{margin-inline-start:91.6666666667%}}@media (min-width: 1920px){.v-col-xl{flex-basis:0;flex-grow:1;max-width:100%}.v-col-xl-auto{flex:0 0 auto;width:auto;max-width:100%}.v-col-xl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.v-col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.v-col-xl-3{flex:0 0 25%;max-width:25%}.v-col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.v-col-xl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.v-col-xl-6{flex:0 0 50%;max-width:50%}.v-col-xl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.v-col-xl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.v-col-xl-9{flex:0 0 75%;max-width:75%}.v-col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.v-col-xl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.v-col-xl-12{flex:0 0 100%;max-width:100%}.offset-xl-0{margin-inline-start:0}.offset-xl-1{margin-inline-start:8.3333333333%}.offset-xl-2{margin-inline-start:16.6666666667%}.offset-xl-3{margin-inline-start:25%}.offset-xl-4{margin-inline-start:33.3333333333%}.offset-xl-5{margin-inline-start:41.6666666667%}.offset-xl-6{margin-inline-start:50%}.offset-xl-7{margin-inline-start:58.3333333333%}.offset-xl-8{margin-inline-start:66.6666666667%}.offset-xl-9{margin-inline-start:75%}.offset-xl-10{margin-inline-start:83.3333333333%}.offset-xl-11{margin-inline-start:91.6666666667%}}@media (min-width: 2560px){.v-col-xxl{flex-basis:0;flex-grow:1;max-width:100%}.v-col-xxl-auto{flex:0 0 auto;width:auto;max-width:100%}.v-col-xxl-1{flex:0 0 8.3333333333%;max-width:8.3333333333%}.v-col-xxl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.v-col-xxl-3{flex:0 0 25%;max-width:25%}.v-col-xxl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.v-col-xxl-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.v-col-xxl-6{flex:0 0 50%;max-width:50%}.v-col-xxl-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}.v-col-xxl-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.v-col-xxl-9{flex:0 0 75%;max-width:75%}.v-col-xxl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}.v-col-xxl-11{flex:0 0 91.6666666667%;max-width:91.6666666667%}.v-col-xxl-12{flex:0 0 100%;max-width:100%}.offset-xxl-0{margin-inline-start:0}.offset-xxl-1{margin-inline-start:8.3333333333%}.offset-xxl-2{margin-inline-start:16.6666666667%}.offset-xxl-3{margin-inline-start:25%}.offset-xxl-4{margin-inline-start:33.3333333333%}.offset-xxl-5{margin-inline-start:41.6666666667%}.offset-xxl-6{margin-inline-start:50%}.offset-xxl-7{margin-inline-start:58.3333333333%}.offset-xxl-8{margin-inline-start:66.6666666667%}.offset-xxl-9{margin-inline-start:75%}.offset-xxl-10{margin-inline-start:83.3333333333%}.offset-xxl-11{margin-inline-start:91.6666666667%}}.v-text-field input{color:inherit;opacity:0;flex:1;transition:.15s opacity cubic-bezier(.4,0,.2,1);min-width:0}.v-text-field input:focus,.v-text-field input:active{outline:none}.v-text-field input:invalid{box-shadow:none}.v-text-field .v-field{cursor:text}.v-text-field--prefixed.v-text-field .v-field__input{--v-field-padding-start: 6px}.v-text-field--suffixed.v-text-field .v-field__input{--v-field-padding-end: 0}.v-text-field .v-input__details{padding-inline:16px}.v-input--plain-underlined.v-text-field .v-input__details{padding-inline:0}.v-text-field .v-field--no-label input,.v-text-field .v-field--active input{opacity:1}.v-text-field .v-field--single-line input{transition:none}.v-text-field__prefix,.v-text-field__suffix{align-items:center;color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));cursor:default;display:flex;opacity:0;transition:inherit;white-space:nowrap;min-height:max(var(--v-input-control-height, 56px),1.5rem + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom));padding-top:calc(var(--v-field-padding-top, 4px) + var(--v-input-padding-top, 0));padding-bottom:var(--v-field-padding-bottom, 6px)}.v-field--active .v-text-field__prefix,.v-field--active .v-text-field__suffix{opacity:1}.v-field--disabled .v-text-field__prefix,.v-field--disabled .v-text-field__suffix{color:rgba(var(--v-theme-on-surface),var(--v-disabled-opacity))}.v-text-field__prefix{padding-inline-start:var(--v-field-padding-start)}.v-text-field__suffix{padding-inline-end:var(--v-field-padding-end)}.v-counter{color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));flex:0 1 auto;font-size:12px;transition-duration:.15s}.v-field{--v-theme-overlay-multiplier: 1;display:grid;grid-template-areas:"prepend-inner field clear append-inner";grid-template-columns:min-content minmax(0,1fr) min-content min-content;font-size:16px;letter-spacing:.009375em;max-width:100%;border-radius:4px;contain:layout;flex:1 0;grid-area:control;position:relative;--v-field-padding-start: 16px;--v-field-padding-end: 16px;--v-field-padding-top: 8px;--v-field-padding-bottom: 4px;--v-field-input-padding-top: calc(var(--v-field-padding-top, 8px) + var(--v-input-padding-top, 0));--v-field-input-padding-bottom: var(--v-field-padding-bottom, 4px)}.v-field--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-field .v-chip{--v-chip-height: 24px}.v-field--prepended{padding-inline-start:12px}.v-field--appended{padding-inline-end:12px}.v-field--variant-solo,.v-field--variant-solo-filled,.v-field--variant-solo-inverted{background:rgb(var(--v-theme-surface));border-color:transparent;color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity));box-shadow:0 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 2px 2px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 5px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-field--variant-solo-inverted.v-field--focused{color:rgb(var(--v-theme-on-surface-variant))}.v-field--variant-filled{border-bottom-left-radius:0;border-bottom-right-radius:0}.v-input--density-default .v-field--variant-solo,.v-input--density-default .v-field--variant-solo-inverted,.v-input--density-default .v-field--variant-solo-filled,.v-input--density-default .v-field--variant-filled{--v-input-control-height: 56px;--v-field-padding-bottom: 4px}.v-input--density-comfortable .v-field--variant-solo,.v-input--density-comfortable .v-field--variant-solo-inverted,.v-input--density-comfortable .v-field--variant-solo-filled,.v-input--density-comfortable .v-field--variant-filled{--v-input-control-height: 48px;--v-field-padding-bottom: 0px}.v-input--density-compact .v-field--variant-solo,.v-input--density-compact .v-field--variant-solo-inverted,.v-input--density-compact .v-field--variant-solo-filled,.v-input--density-compact .v-field--variant-filled{--v-input-control-height: 40px;--v-field-padding-bottom: 0px}.v-field--variant-outlined,.v-field--single-line,.v-field--no-label{--v-field-padding-top: 0px}.v-input--density-default .v-field--variant-outlined,.v-input--density-default .v-field--single-line,.v-input--density-default .v-field--no-label{--v-field-padding-bottom: 16px}.v-input--density-comfortable .v-field--variant-outlined,.v-input--density-comfortable .v-field--single-line,.v-input--density-comfortable .v-field--no-label{--v-field-padding-bottom: 12px}.v-input--density-compact .v-field--variant-outlined,.v-input--density-compact .v-field--single-line,.v-input--density-compact .v-field--no-label{--v-field-padding-bottom: 8px}.v-field--variant-plain,.v-field--variant-underlined{border-radius:0;padding:0}.v-field--variant-plain.v-field,.v-field--variant-underlined.v-field{--v-field-padding-start: 0px;--v-field-padding-end: 0px}.v-input--density-default .v-field--variant-plain,.v-input--density-default .v-field--variant-underlined{--v-input-control-height: 48px;--v-field-padding-top: 4px;--v-field-padding-bottom: 4px}.v-input--density-comfortable .v-field--variant-plain,.v-input--density-comfortable .v-field--variant-underlined{--v-input-control-height: 40px;--v-field-padding-top: 2px;--v-field-padding-bottom: 0px}.v-input--density-compact .v-field--variant-plain,.v-input--density-compact .v-field--variant-underlined{--v-input-control-height: 32px;--v-field-padding-top: 0px;--v-field-padding-bottom: 0px}.v-field--flat{box-shadow:none}.v-field--rounded{border-radius:24px}.v-field.v-field--prepended{--v-field-padding-start: 6px}.v-field.v-field--appended{--v-field-padding-end: 6px}.v-field__input{align-items:center;color:inherit;column-gap:2px;display:flex;flex-wrap:wrap;letter-spacing:.009375em;opacity:var(--v-high-emphasis-opacity);min-height:max(var(--v-input-control-height, 56px),1.5rem + var(--v-field-input-padding-top) + var(--v-field-input-padding-bottom));min-width:0;padding-inline:var(--v-field-padding-start) var(--v-field-padding-end);padding-top:var(--v-field-input-padding-top);padding-bottom:var(--v-field-input-padding-bottom);position:relative;width:100%}.v-input--density-default .v-field__input{row-gap:8px}.v-input--density-comfortable .v-field__input{row-gap:6px}.v-input--density-compact .v-field__input{row-gap:4px}.v-field__input input{letter-spacing:inherit}.v-field__input input::placeholder,input.v-field__input::placeholder,textarea.v-field__input::placeholder{color:currentColor;opacity:var(--v-disabled-opacity)}.v-field__input:focus,.v-field__input:active{outline:none}.v-field__input:invalid{box-shadow:none}.v-field__field{flex:1 0;grid-area:field;position:relative;align-items:flex-start;display:flex}.v-field__prepend-inner{grid-area:prepend-inner;padding-inline-end:var(--v-field-padding-after)}.v-field__clearable{grid-area:clear}.v-field__append-inner{grid-area:append-inner;padding-inline-start:var(--v-field-padding-after)}.v-field__append-inner,.v-field__clearable,.v-field__prepend-inner{display:flex;align-items:flex-start;padding-top:var(--v-input-padding-top, 8px)}.v-field--center-affix .v-field__append-inner,.v-field--center-affix .v-field__clearable,.v-field--center-affix .v-field__prepend-inner{align-items:center;padding-top:0}.v-field.v-field--variant-underlined .v-field__append-inner,.v-field.v-field--variant-underlined .v-field__clearable,.v-field.v-field--variant-underlined .v-field__prepend-inner,.v-field.v-field--variant-plain .v-field__append-inner,.v-field.v-field--variant-plain .v-field__clearable,.v-field.v-field--variant-plain .v-field__prepend-inner{align-items:flex-start;padding-top:calc(var(--v-field-padding-top, 8px) + var(--v-input-padding-top, 0));padding-bottom:var(--v-field-padding-bottom, 4px)}.v-field--focused .v-field__prepend-inner,.v-field--focused .v-field__append-inner{opacity:1}.v-field__prepend-inner>.v-icon,.v-field__append-inner>.v-icon,.v-field__clearable>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-field--disabled .v-field__prepend-inner>.v-icon,.v-field--error .v-field__prepend-inner>.v-icon,.v-field--disabled .v-field__append-inner>.v-icon,.v-field--error .v-field__append-inner>.v-icon,.v-field--disabled .v-field__clearable>.v-icon,.v-field--error .v-field__clearable>.v-icon{opacity:1}.v-field--error:not(.v-field--disabled) .v-field__prepend-inner>.v-icon,.v-field--error:not(.v-field--disabled) .v-field__append-inner>.v-icon,.v-field--error:not(.v-field--disabled) .v-field__clearable>.v-icon{color:rgb(var(--v-theme-error))}.v-field__clearable{cursor:pointer;opacity:0;overflow:hidden;margin-inline:4px;transition:.15s cubic-bezier(.4,0,.2,1);transition-property:opacity,transform,width}.v-field--focused .v-field__clearable,.v-field--persistent-clear .v-field__clearable{opacity:1}@media (hover: hover){.v-field:hover .v-field__clearable{opacity:1}}@media (hover: none){.v-field__clearable{opacity:1}}.v-label.v-field-label{contain:layout paint;display:block;margin-inline-start:var(--v-field-padding-start);margin-inline-end:var(--v-field-padding-end);max-width:calc(100% - var(--v-field-padding-start) - var(--v-field-padding-end));pointer-events:none;position:absolute;top:var(--v-input-padding-top);transform-origin:left center;transition:.15s cubic-bezier(.4,0,.2,1);transition-property:opacity,transform;z-index:1}.v-field--variant-underlined .v-label.v-field-label,.v-field--variant-plain .v-label.v-field-label{top:calc(var(--v-input-padding-top) + var(--v-field-padding-top))}.v-field--center-affix .v-label.v-field-label{top:50%;transform:translateY(-50%)}.v-field--active .v-label.v-field-label{visibility:hidden}.v-field--focused .v-label.v-field-label,.v-field--error .v-label.v-field-label{opacity:1}.v-field--error:not(.v-field--disabled) .v-label.v-field-label{color:rgb(var(--v-theme-error))}.v-label.v-field-label--floating{--v-field-label-scale: .75em;font-size:var(--v-field-label-scale);visibility:hidden;max-width:100%}.v-field--center-affix .v-label.v-field-label--floating{transform:none}.v-field.v-field--active .v-label.v-field-label--floating{visibility:unset}.v-input--density-default .v-field--variant-solo .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-filled .v-label.v-field-label--floating,.v-input--density-default .v-field--variant-solo-filled .v-label.v-field-label--floating{top:7px}.v-input--density-comfortable .v-field--variant-solo .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-filled .v-label.v-field-label--floating,.v-input--density-comfortable .v-field--variant-solo-filled .v-label.v-field-label--floating{top:5px}.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:3px}.v-field--variant-plain .v-label.v-field-label--floating,.v-field--variant-underlined .v-label.v-field-label--floating{transform:translateY(-16px);margin:0;top:var(--v-input-padding-top)}.v-field--variant-outlined .v-label.v-field-label--floating{transform:translateY(-50%);transform-origin:center;position:static;margin:0 4px}.v-field__outline{--v-field-border-width: 1px;--v-field-border-opacity: .38;align-items:stretch;contain:layout;display:flex;height:100%;left:0;pointer-events:none;position:absolute;right:0;width:100%}@media (hover: hover){.v-field:hover .v-field__outline{--v-field-border-opacity: var(--v-high-emphasis-opacity)}}.v-field--error:not(.v-field--disabled) .v-field__outline{color:rgb(var(--v-theme-error))}.v-field.v-field--focused .v-field__outline,.v-input.v-input--error .v-field__outline{--v-field-border-opacity: 1}.v-field--variant-outlined.v-field--focused .v-field__outline{--v-field-border-width: 2px}.v-field--variant-filled .v-field__outline:before,.v-field--variant-underlined .v-field__outline:before{border-color:currentColor;border-style:solid;border-width:0 0 var(--v-field-border-width);opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-filled .v-field__outline:after,.v-field--variant-underlined .v-field__outline:after{border-color:currentColor;border-style:solid;border-width:0 0 2px;transform:scaleX(0);transition:transform .15s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--focused.v-field--variant-filled .v-field__outline:after,.v-field--focused.v-field--variant-underlined .v-field__outline:after{transform:scaleX(1)}.v-field--variant-outlined .v-field__outline{border-radius:inherit}.v-field--variant-outlined .v-field__outline__start,.v-field--variant-outlined .v-field__outline__notch:before,.v-field--variant-outlined .v-field__outline__notch:after,.v-field--variant-outlined .v-field__outline__end{border:0 solid currentColor;opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1)}.v-field--variant-outlined .v-field__outline__start{flex:0 0 12px;border-top-width:var(--v-field-border-width);border-bottom-width:var(--v-field-border-width);border-inline-start-width:var(--v-field-border-width);border-start-start-radius:inherit;border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:inherit}.v-field--rounded.v-field--variant-outlined .v-field__outline__start,[class^=rounded-].v-field--variant-outlined .v-field__outline__start,[class*=" rounded-"].v-field--variant-outlined .v-field__outline__start{flex-basis:calc(var(--v-input-control-height) / 2 + 2px)}.v-field--reverse.v-field--variant-outlined .v-field__outline__start{border-start-start-radius:0;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:0;border-inline-end-width:var(--v-field-border-width);border-inline-start-width:0}.v-field--variant-outlined .v-field__outline__notch{flex:none;position:relative;max-width:calc(100% - 12px)}.v-field--variant-outlined .v-field__outline__notch:before,.v-field--variant-outlined .v-field__outline__notch:after{opacity:var(--v-field-border-opacity);transition:opacity .25s cubic-bezier(.4,0,.2,1);content:"";position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-outlined .v-field__outline__notch:before{border-width:var(--v-field-border-width) 0 0}.v-field--variant-outlined .v-field__outline__notch:after{bottom:0;border-width:0 0 var(--v-field-border-width)}.v-field--active.v-field--variant-outlined .v-field__outline__notch:before{opacity:0}.v-field--variant-outlined .v-field__outline__end{flex:1;border-top-width:var(--v-field-border-width);border-bottom-width:var(--v-field-border-width);border-inline-end-width:var(--v-field-border-width);border-start-start-radius:0;border-start-end-radius:inherit;border-end-end-radius:inherit;border-end-start-radius:0}.v-field--reverse.v-field--variant-outlined .v-field__outline__end{border-start-start-radius:inherit;border-start-end-radius:0;border-end-end-radius:0;border-end-start-radius:inherit;border-inline-end-width:0;border-inline-start-width:var(--v-field-border-width)}.v-field__loader{top:calc(100% - 2px);left:0;position:absolute;right:0;width:100%;border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:inherit;border-bottom-right-radius:inherit;overflow:hidden}.v-field--variant-outlined .v-field__loader{top:calc(100% - 3px);width:calc(100% - 2px);left:1px}.v-field__overlay{border-radius:inherit;pointer-events:none;position:absolute;top:0;left:0;width:100%;height:100%}.v-field--variant-filled .v-field__overlay{background-color:currentColor;opacity:.04;transition:opacity .25s cubic-bezier(.4,0,.2,1)}.v-field--variant-filled.v-field--has-background .v-field__overlay{opacity:0}@media (hover: hover){.v-field--variant-filled:hover .v-field__overlay{opacity:calc((.04 + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}}.v-field--variant-filled.v-field--focused .v-field__overlay{opacity:calc((.04 + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}.v-field--variant-solo-filled .v-field__overlay{background-color:currentColor;opacity:.04;transition:opacity .25s cubic-bezier(.4,0,.2,1)}@media (hover: hover){.v-field--variant-solo-filled:hover .v-field__overlay{opacity:calc((.04 + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}}.v-field--variant-solo-filled.v-field--focused .v-field__overlay{opacity:calc((.04 + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}.v-field--variant-solo-inverted .v-field__overlay{transition:opacity .25s cubic-bezier(.4,0,.2,1)}.v-field--variant-solo-inverted.v-field--has-background .v-field__overlay{opacity:0}@media (hover: hover){.v-field--variant-solo-inverted:hover .v-field__overlay{opacity:calc((.04 + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}}.v-field--variant-solo-inverted.v-field--focused .v-field__overlay{background-color:rgb(var(--v-theme-surface-variant));opacity:1}.v-field--reverse .v-field__field,.v-field--reverse .v-field__input,.v-field--reverse .v-field__outline{flex-direction:row-reverse}.v-field--reverse .v-field__input,.v-field--reverse input{text-align:end}.v-input--disabled .v-field--variant-filled .v-field__outline:before,.v-input--disabled .v-field--variant-underlined .v-field__outline:before{border-image:repeating-linear-gradient(to right,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 0px,rgba(var(--v-theme-on-surface),var(--v-disabled-opacity)) 2px,transparent 2px,transparent 4px) 1 repeat}.v-field--loading .v-field__outline:after,.v-field--loading .v-field__outline:before{opacity:0}.v-label{align-items:center;color:inherit;display:inline-flex;font-size:1rem;letter-spacing:.009375em;min-width:0;opacity:var(--v-medium-emphasis-opacity);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-label--clickable{cursor:pointer}.v-input{display:grid;flex:1 1 auto;font-size:1rem;font-weight:400;line-height:1.5}.v-input--disabled{pointer-events:none}.v-input--density-default{--v-input-control-height: 56px;--v-input-padding-top: 16px}.v-input--density-comfortable{--v-input-control-height: 48px;--v-input-padding-top: 12px}.v-input--density-compact{--v-input-control-height: 40px;--v-input-padding-top: 8px}.v-input--vertical{grid-template-areas:"append" "control" "prepend";grid-template-rows:max-content auto max-content;grid-template-columns:min-content}.v-input--vertical .v-input__prepend{margin-block-start:16px}.v-input--vertical .v-input__append{margin-block-end:16px}.v-input--horizontal{grid-template-areas:"prepend control append" "a messages b";grid-template-columns:max-content minmax(0,1fr) max-content;grid-template-rows:auto auto}.v-input--horizontal .v-input__prepend{margin-inline-end:16px}.v-input--horizontal .v-input__append{margin-inline-start:16px}.v-input__details{align-items:flex-end;display:flex;font-size:.75rem;font-weight:400;grid-area:messages;letter-spacing:.0333333333em;line-height:normal;min-height:22px;padding-top:6px;overflow:hidden;justify-content:space-between}.v-input__details>.v-icon,.v-input__prepend>.v-icon,.v-input__append>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-input--disabled .v-input__details>.v-icon,.v-input--disabled .v-input__details .v-messages,.v-input--error .v-input__details>.v-icon,.v-input--error .v-input__details .v-messages,.v-input--disabled .v-input__prepend>.v-icon,.v-input--disabled .v-input__prepend .v-messages,.v-input--error .v-input__prepend>.v-icon,.v-input--error .v-input__prepend .v-messages,.v-input--disabled .v-input__append>.v-icon,.v-input--disabled .v-input__append .v-messages,.v-input--error .v-input__append>.v-icon,.v-input--error .v-input__append .v-messages{opacity:1}.v-input--disabled .v-input__details,.v-input--disabled .v-input__prepend,.v-input--disabled .v-input__append{opacity:var(--v-disabled-opacity)}.v-input--error:not(.v-input--disabled) .v-input__details>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__details .v-messages,.v-input--error:not(.v-input--disabled) .v-input__prepend>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__prepend .v-messages,.v-input--error:not(.v-input--disabled) .v-input__append>.v-icon,.v-input--error:not(.v-input--disabled) .v-input__append .v-messages{color:rgb(var(--v-theme-error))}.v-input__prepend,.v-input__append{display:flex;align-items:flex-start;padding-top:var(--v-input-padding-top)}.v-input--center-affix .v-input__prepend,.v-input--center-affix .v-input__append{align-items:center;padding-top:0}.v-input__prepend{grid-area:prepend}.v-input__append{grid-area:append}.v-input__control{display:flex;grid-area:control}.v-input--hide-spin-buttons input::-webkit-outer-spin-button,.v-input--hide-spin-buttons input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.v-input--hide-spin-buttons input[type=number]{-moz-appearance:textfield}.v-input--plain-underlined .v-input__prepend,.v-input--plain-underlined .v-input__append{align-items:flex-start}.v-input--density-default.v-input--plain-underlined .v-input__prepend,.v-input--density-default.v-input--plain-underlined .v-input__append{padding-top:calc(var(--v-input-padding-top) + 4px)}.v-input--density-comfortable.v-input--plain-underlined .v-input__prepend,.v-input--density-comfortable.v-input--plain-underlined .v-input__append{padding-top:calc(var(--v-input-padding-top) + 2px)}.v-input--density-compact.v-input--plain-underlined .v-input__prepend,.v-input--density-compact.v-input--plain-underlined .v-input__append{padding-top:calc(var(--v-input-padding-top) + 0px)}.v-messages{flex:1 1 auto;font-size:12px;min-height:14px;min-width:1px;opacity:var(--v-medium-emphasis-opacity);position:relative}.v-messages__message{line-height:12px;word-break:break-word;overflow-wrap:break-word;word-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;transition-duration:.15s}@font-face{font-family:Dolbomche_R;src:url(https://cdn.jsdelivr.net/gh/projectnoonnu/noonfonts_2104@1.0/Dolbomche_R.woff) format("woff");font-weight:400;font-style:normal}.fill-height[data-v-814fd6a0]{height:100vh}.v-card[data-v-814fd6a0]{padding:20px}.v-card-title[data-v-814fd6a0]{padding-bottom:0}.v-btn[data-v-814fd6a0]{margin-top:20px;color:#ffd54f}h1[data-v-37f316ef]{color:#333}@keyframes v-shake{59%{margin-left:0}60%,80%{margin-left:2px}70%,90%{margin-left:-2px}}.bg-black{background-color:#000!important;color:#fff!important}.bg-white{background-color:#fff!important;color:#000!important}.bg-transparent{background-color:transparent!important;color:currentColor!important}.bg-red{background-color:#f44336!important;color:#fff!important}.bg-red-lighten-5{background-color:#ffebee!important;color:#000!important}.bg-red-lighten-4{background-color:#ffcdd2!important;color:#000!important}.bg-red-lighten-3{background-color:#ef9a9a!important;color:#000!important}.bg-red-lighten-2{background-color:#e57373!important;color:#fff!important}.bg-red-lighten-1{background-color:#ef5350!important;color:#fff!important}.bg-red-darken-1{background-color:#e53935!important;color:#fff!important}.bg-red-darken-2{background-color:#d32f2f!important;color:#fff!important}.bg-red-darken-3{background-color:#c62828!important;color:#fff!important}.bg-red-darken-4{background-color:#b71c1c!important;color:#fff!important}.bg-red-accent-1{background-color:#ff8a80!important;color:#000!important}.bg-red-accent-2{background-color:#ff5252!important;color:#fff!important}.bg-red-accent-3{background-color:#ff1744!important;color:#fff!important}.bg-red-accent-4{background-color:#d50000!important;color:#fff!important}.bg-pink{background-color:#e91e63!important;color:#fff!important}.bg-pink-lighten-5{background-color:#fce4ec!important;color:#000!important}.bg-pink-lighten-4{background-color:#f8bbd0!important;color:#000!important}.bg-pink-lighten-3{background-color:#f48fb1!important;color:#000!important}.bg-pink-lighten-2{background-color:#f06292!important;color:#fff!important}.bg-pink-lighten-1{background-color:#ec407a!important;color:#fff!important}.bg-pink-darken-1{background-color:#d81b60!important;color:#fff!important}.bg-pink-darken-2{background-color:#c2185b!important;color:#fff!important}.bg-pink-darken-3{background-color:#ad1457!important;color:#fff!important}.bg-pink-darken-4{background-color:#880e4f!important;color:#fff!important}.bg-pink-accent-1{background-color:#ff80ab!important;color:#fff!important}.bg-pink-accent-2{background-color:#ff4081!important;color:#fff!important}.bg-pink-accent-3{background-color:#f50057!important;color:#fff!important}.bg-pink-accent-4{background-color:#c51162!important;color:#fff!important}.bg-purple{background-color:#9c27b0!important;color:#fff!important}.bg-purple-lighten-5{background-color:#f3e5f5!important;color:#000!important}.bg-purple-lighten-4{background-color:#e1bee7!important;color:#000!important}.bg-purple-lighten-3{background-color:#ce93d8!important;color:#fff!important}.bg-purple-lighten-2{background-color:#ba68c8!important;color:#fff!important}.bg-purple-lighten-1{background-color:#ab47bc!important;color:#fff!important}.bg-purple-darken-1{background-color:#8e24aa!important;color:#fff!important}.bg-purple-darken-2{background-color:#7b1fa2!important;color:#fff!important}.bg-purple-darken-3{background-color:#6a1b9a!important;color:#fff!important}.bg-purple-darken-4{background-color:#4a148c!important;color:#fff!important}.bg-purple-accent-1{background-color:#ea80fc!important;color:#fff!important}.bg-purple-accent-2{background-color:#e040fb!important;color:#fff!important}.bg-purple-accent-3{background-color:#d500f9!important;color:#fff!important}.bg-purple-accent-4{background-color:#a0f!important;color:#fff!important}.bg-deep-purple{background-color:#673ab7!important;color:#fff!important}.bg-deep-purple-lighten-5{background-color:#ede7f6!important;color:#000!important}.bg-deep-purple-lighten-4{background-color:#d1c4e9!important;color:#000!important}.bg-deep-purple-lighten-3{background-color:#b39ddb!important;color:#fff!important}.bg-deep-purple-lighten-2{background-color:#9575cd!important;color:#fff!important}.bg-deep-purple-lighten-1{background-color:#7e57c2!important;color:#fff!important}.bg-deep-purple-darken-1{background-color:#5e35b1!important;color:#fff!important}.bg-deep-purple-darken-2{background-color:#512da8!important;color:#fff!important}.bg-deep-purple-darken-3{background-color:#4527a0!important;color:#fff!important}.bg-deep-purple-darken-4{background-color:#311b92!important;color:#fff!important}.bg-deep-purple-accent-1{background-color:#b388ff!important;color:#fff!important}.bg-deep-purple-accent-2{background-color:#7c4dff!important;color:#fff!important}.bg-deep-purple-accent-3{background-color:#651fff!important;color:#fff!important}.bg-deep-purple-accent-4{background-color:#6200ea!important;color:#fff!important}.bg-indigo{background-color:#3f51b5!important;color:#fff!important}.bg-indigo-lighten-5{background-color:#e8eaf6!important;color:#000!important}.bg-indigo-lighten-4{background-color:#c5cae9!important;color:#000!important}.bg-indigo-lighten-3{background-color:#9fa8da!important;color:#fff!important}.bg-indigo-lighten-2{background-color:#7986cb!important;color:#fff!important}.bg-indigo-lighten-1{background-color:#5c6bc0!important;color:#fff!important}.bg-indigo-darken-1{background-color:#3949ab!important;color:#fff!important}.bg-indigo-darken-2{background-color:#303f9f!important;color:#fff!important}.bg-indigo-darken-3{background-color:#283593!important;color:#fff!important}.bg-indigo-darken-4{background-color:#1a237e!important;color:#fff!important}.bg-indigo-accent-1{background-color:#8c9eff!important;color:#fff!important}.bg-indigo-accent-2{background-color:#536dfe!important;color:#fff!important}.bg-indigo-accent-3{background-color:#3d5afe!important;color:#fff!important}.bg-indigo-accent-4{background-color:#304ffe!important;color:#fff!important}.bg-blue{background-color:#2196f3!important;color:#fff!important}.bg-blue-lighten-5{background-color:#e3f2fd!important;color:#000!important}.bg-blue-lighten-4{background-color:#bbdefb!important;color:#000!important}.bg-blue-lighten-3{background-color:#90caf9!important;color:#000!important}.bg-blue-lighten-2{background-color:#64b5f6!important;color:#000!important}.bg-blue-lighten-1{background-color:#42a5f5!important;color:#fff!important}.bg-blue-darken-1{background-color:#1e88e5!important;color:#fff!important}.bg-blue-darken-2{background-color:#1976d2!important;color:#fff!important}.bg-blue-darken-3{background-color:#1565c0!important;color:#fff!important}.bg-blue-darken-4{background-color:#0d47a1!important;color:#fff!important}.bg-blue-accent-1{background-color:#82b1ff!important;color:#000!important}.bg-blue-accent-2{background-color:#448aff!important;color:#fff!important}.bg-blue-accent-3{background-color:#2979ff!important;color:#fff!important}.bg-blue-accent-4{background-color:#2962ff!important;color:#fff!important}.bg-light-blue{background-color:#03a9f4!important;color:#fff!important}.bg-light-blue-lighten-5{background-color:#e1f5fe!important;color:#000!important}.bg-light-blue-lighten-4{background-color:#b3e5fc!important;color:#000!important}.bg-light-blue-lighten-3{background-color:#81d4fa!important;color:#000!important}.bg-light-blue-lighten-2{background-color:#4fc3f7!important;color:#000!important}.bg-light-blue-lighten-1{background-color:#29b6f6!important;color:#000!important}.bg-light-blue-darken-1{background-color:#039be5!important;color:#fff!important}.bg-light-blue-darken-2{background-color:#0288d1!important;color:#fff!important}.bg-light-blue-darken-3{background-color:#0277bd!important;color:#fff!important}.bg-light-blue-darken-4{background-color:#01579b!important;color:#fff!important}.bg-light-blue-accent-1{background-color:#80d8ff!important;color:#000!important}.bg-light-blue-accent-2{background-color:#40c4ff!important;color:#000!important}.bg-light-blue-accent-3{background-color:#00b0ff!important;color:#fff!important}.bg-light-blue-accent-4{background-color:#0091ea!important;color:#fff!important}.bg-cyan{background-color:#00bcd4!important;color:#000!important}.bg-cyan-lighten-5{background-color:#e0f7fa!important;color:#000!important}.bg-cyan-lighten-4{background-color:#b2ebf2!important;color:#000!important}.bg-cyan-lighten-3{background-color:#80deea!important;color:#000!important}.bg-cyan-lighten-2{background-color:#4dd0e1!important;color:#000!important}.bg-cyan-lighten-1{background-color:#26c6da!important;color:#000!important}.bg-cyan-darken-1{background-color:#00acc1!important;color:#fff!important}.bg-cyan-darken-2{background-color:#0097a7!important;color:#fff!important}.bg-cyan-darken-3{background-color:#00838f!important;color:#fff!important}.bg-cyan-darken-4{background-color:#006064!important;color:#fff!important}.bg-cyan-accent-1{background-color:#84ffff!important;color:#000!important}.bg-cyan-accent-2{background-color:#18ffff!important;color:#000!important}.bg-cyan-accent-3{background-color:#00e5ff!important;color:#000!important}.bg-cyan-accent-4{background-color:#00b8d4!important;color:#fff!important}.bg-teal{background-color:#009688!important;color:#fff!important}.bg-teal-lighten-5{background-color:#e0f2f1!important;color:#000!important}.bg-teal-lighten-4{background-color:#b2dfdb!important;color:#000!important}.bg-teal-lighten-3{background-color:#80cbc4!important;color:#000!important}.bg-teal-lighten-2{background-color:#4db6ac!important;color:#fff!important}.bg-teal-lighten-1{background-color:#26a69a!important;color:#fff!important}.bg-teal-darken-1{background-color:#00897b!important;color:#fff!important}.bg-teal-darken-2{background-color:#00796b!important;color:#fff!important}.bg-teal-darken-3{background-color:#00695c!important;color:#fff!important}.bg-teal-darken-4{background-color:#004d40!important;color:#fff!important}.bg-teal-accent-1{background-color:#a7ffeb!important;color:#000!important}.bg-teal-accent-2{background-color:#64ffda!important;color:#000!important}.bg-teal-accent-3{background-color:#1de9b6!important;color:#000!important}.bg-teal-accent-4{background-color:#00bfa5!important;color:#fff!important}.bg-green{background-color:#4caf50!important;color:#fff!important}.bg-green-lighten-5{background-color:#e8f5e9!important;color:#000!important}.bg-green-lighten-4{background-color:#c8e6c9!important;color:#000!important}.bg-green-lighten-3{background-color:#a5d6a7!important;color:#000!important}.bg-green-lighten-2{background-color:#81c784!important;color:#000!important}.bg-green-lighten-1{background-color:#66bb6a!important;color:#fff!important}.bg-green-darken-1{background-color:#43a047!important;color:#fff!important}.bg-green-darken-2{background-color:#388e3c!important;color:#fff!important}.bg-green-darken-3{background-color:#2e7d32!important;color:#fff!important}.bg-green-darken-4{background-color:#1b5e20!important;color:#fff!important}.bg-green-accent-1{background-color:#b9f6ca!important;color:#000!important}.bg-green-accent-2{background-color:#69f0ae!important;color:#000!important}.bg-green-accent-3{background-color:#00e676!important;color:#000!important}.bg-green-accent-4{background-color:#00c853!important;color:#000!important}.bg-light-green{background-color:#8bc34a!important;color:#000!important}.bg-light-green-lighten-5{background-color:#f1f8e9!important;color:#000!important}.bg-light-green-lighten-4{background-color:#dcedc8!important;color:#000!important}.bg-light-green-lighten-3{background-color:#c5e1a5!important;color:#000!important}.bg-light-green-lighten-2{background-color:#aed581!important;color:#000!important}.bg-light-green-lighten-1{background-color:#9ccc65!important;color:#000!important}.bg-light-green-darken-1{background-color:#7cb342!important;color:#fff!important}.bg-light-green-darken-2{background-color:#689f38!important;color:#fff!important}.bg-light-green-darken-3{background-color:#558b2f!important;color:#fff!important}.bg-light-green-darken-4{background-color:#33691e!important;color:#fff!important}.bg-light-green-accent-1{background-color:#ccff90!important;color:#000!important}.bg-light-green-accent-2{background-color:#b2ff59!important;color:#000!important}.bg-light-green-accent-3{background-color:#76ff03!important;color:#000!important}.bg-light-green-accent-4{background-color:#64dd17!important;color:#000!important}.bg-lime{background-color:#cddc39!important;color:#000!important}.bg-lime-lighten-5{background-color:#f9fbe7!important;color:#000!important}.bg-lime-lighten-4{background-color:#f0f4c3!important;color:#000!important}.bg-lime-lighten-3{background-color:#e6ee9c!important;color:#000!important}.bg-lime-lighten-2{background-color:#dce775!important;color:#000!important}.bg-lime-lighten-1{background-color:#d4e157!important;color:#000!important}.bg-lime-darken-1{background-color:#c0ca33!important;color:#000!important}.bg-lime-darken-2{background-color:#afb42b!important;color:#000!important}.bg-lime-darken-3{background-color:#9e9d24!important;color:#fff!important}.bg-lime-darken-4{background-color:#827717!important;color:#fff!important}.bg-lime-accent-1{background-color:#f4ff81!important;color:#000!important}.bg-lime-accent-2{background-color:#eeff41!important;color:#000!important}.bg-lime-accent-3{background-color:#c6ff00!important;color:#000!important}.bg-lime-accent-4{background-color:#aeea00!important;color:#000!important}.bg-yellow{background-color:#ffeb3b!important;color:#000!important}.bg-yellow-lighten-5{background-color:#fffde7!important;color:#000!important}.bg-yellow-lighten-4{background-color:#fff9c4!important;color:#000!important}.bg-yellow-lighten-3{background-color:#fff59d!important;color:#000!important}.bg-yellow-lighten-2{background-color:#fff176!important;color:#000!important}.bg-yellow-lighten-1{background-color:#ffee58!important;color:#000!important}.bg-yellow-darken-1{background-color:#fdd835!important;color:#000!important}.bg-yellow-darken-2{background-color:#fbc02d!important;color:#000!important}.bg-yellow-darken-3{background-color:#f9a825!important;color:#000!important}.bg-yellow-darken-4{background-color:#f57f17!important;color:#fff!important}.bg-yellow-accent-1{background-color:#ffff8d!important;color:#000!important}.bg-yellow-accent-2{background-color:#ff0!important;color:#000!important}.bg-yellow-accent-3{background-color:#ffea00!important;color:#000!important}.bg-yellow-accent-4{background-color:#ffd600!important;color:#000!important}.bg-amber{background-color:#ffc107!important;color:#000!important}.bg-amber-lighten-5{background-color:#fff8e1!important;color:#000!important}.bg-amber-lighten-4{background-color:#ffecb3!important;color:#000!important}.bg-amber-lighten-3{background-color:#ffe082!important;color:#000!important}.bg-amber-lighten-2{background-color:#ffd54f!important;color:#000!important}.bg-amber-lighten-1{background-color:#ffca28!important;color:#000!important}.bg-amber-darken-1{background-color:#ffb300!important;color:#000!important}.bg-amber-darken-2{background-color:#ffa000!important;color:#000!important}.bg-amber-darken-3{background-color:#ff8f00!important;color:#000!important}.bg-amber-darken-4{background-color:#ff6f00!important;color:#fff!important}.bg-amber-accent-1{background-color:#ffe57f!important;color:#000!important}.bg-amber-accent-2{background-color:#ffd740!important;color:#000!important}.bg-amber-accent-3{background-color:#ffc400!important;color:#000!important}.bg-amber-accent-4{background-color:#ffab00!important;color:#000!important}.bg-orange{background-color:#ff9800!important;color:#000!important}.bg-orange-lighten-5{background-color:#fff3e0!important;color:#000!important}.bg-orange-lighten-4{background-color:#ffe0b2!important;color:#000!important}.bg-orange-lighten-3{background-color:#ffcc80!important;color:#000!important}.bg-orange-lighten-2{background-color:#ffb74d!important;color:#000!important}.bg-orange-lighten-1{background-color:#ffa726!important;color:#000!important}.bg-orange-darken-1{background-color:#fb8c00!important;color:#fff!important}.bg-orange-darken-2{background-color:#f57c00!important;color:#fff!important}.bg-orange-darken-3{background-color:#ef6c00!important;color:#fff!important}.bg-orange-darken-4{background-color:#e65100!important;color:#fff!important}.bg-orange-accent-1{background-color:#ffd180!important;color:#000!important}.bg-orange-accent-2{background-color:#ffab40!important;color:#000!important}.bg-orange-accent-3{background-color:#ff9100!important;color:#000!important}.bg-orange-accent-4{background-color:#ff6d00!important;color:#fff!important}.bg-deep-orange{background-color:#ff5722!important;color:#fff!important}.bg-deep-orange-lighten-5{background-color:#fbe9e7!important;color:#000!important}.bg-deep-orange-lighten-4{background-color:#ffccbc!important;color:#000!important}.bg-deep-orange-lighten-3{background-color:#ffab91!important;color:#000!important}.bg-deep-orange-lighten-2{background-color:#ff8a65!important;color:#000!important}.bg-deep-orange-lighten-1{background-color:#ff7043!important;color:#fff!important}.bg-deep-orange-darken-1{background-color:#f4511e!important;color:#fff!important}.bg-deep-orange-darken-2{background-color:#e64a19!important;color:#fff!important}.bg-deep-orange-darken-3{background-color:#d84315!important;color:#fff!important}.bg-deep-orange-darken-4{background-color:#bf360c!important;color:#fff!important}.bg-deep-orange-accent-1{background-color:#ff9e80!important;color:#000!important}.bg-deep-orange-accent-2{background-color:#ff6e40!important;color:#fff!important}.bg-deep-orange-accent-3{background-color:#ff3d00!important;color:#fff!important}.bg-deep-orange-accent-4{background-color:#dd2c00!important;color:#fff!important}.bg-brown{background-color:#795548!important;color:#fff!important}.bg-brown-lighten-5{background-color:#efebe9!important;color:#000!important}.bg-brown-lighten-4{background-color:#d7ccc8!important;color:#000!important}.bg-brown-lighten-3{background-color:#bcaaa4!important;color:#000!important}.bg-brown-lighten-2{background-color:#a1887f!important;color:#fff!important}.bg-brown-lighten-1{background-color:#8d6e63!important;color:#fff!important}.bg-brown-darken-1{background-color:#6d4c41!important;color:#fff!important}.bg-brown-darken-2{background-color:#5d4037!important;color:#fff!important}.bg-brown-darken-3{background-color:#4e342e!important;color:#fff!important}.bg-brown-darken-4{background-color:#3e2723!important;color:#fff!important}.bg-blue-grey{background-color:#607d8b!important;color:#fff!important}.bg-blue-grey-lighten-5{background-color:#eceff1!important;color:#000!important}.bg-blue-grey-lighten-4{background-color:#cfd8dc!important;color:#000!important}.bg-blue-grey-lighten-3{background-color:#b0bec5!important;color:#000!important}.bg-blue-grey-lighten-2{background-color:#90a4ae!important;color:#fff!important}.bg-blue-grey-lighten-1{background-color:#78909c!important;color:#fff!important}.bg-blue-grey-darken-1{background-color:#546e7a!important;color:#fff!important}.bg-blue-grey-darken-2{background-color:#455a64!important;color:#fff!important}.bg-blue-grey-darken-3{background-color:#37474f!important;color:#fff!important}.bg-blue-grey-darken-4{background-color:#263238!important;color:#fff!important}.bg-grey{background-color:#9e9e9e!important;color:#fff!important}.bg-grey-lighten-5{background-color:#fafafa!important;color:#000!important}.bg-grey-lighten-4{background-color:#f5f5f5!important;color:#000!important}.bg-grey-lighten-3{background-color:#eee!important;color:#000!important}.bg-grey-lighten-2{background-color:#e0e0e0!important;color:#000!important}.bg-grey-lighten-1{background-color:#bdbdbd!important;color:#000!important}.bg-grey-darken-1{background-color:#757575!important;color:#fff!important}.bg-grey-darken-2{background-color:#616161!important;color:#fff!important}.bg-grey-darken-3{background-color:#424242!important;color:#fff!important}.bg-grey-darken-4{background-color:#212121!important;color:#fff!important}.bg-shades-black{background-color:#000!important;color:#fff!important}.bg-shades-white{background-color:#fff!important;color:#000!important}.bg-shades-transparent{background-color:transparent!important;color:currentColor!important}.text-black{color:#000!important}.text-white{color:#fff!important}.text-transparent{color:transparent!important}.text-red{color:#f44336!important}.text-red-lighten-5{color:#ffebee!important}.text-red-lighten-4{color:#ffcdd2!important}.text-red-lighten-3{color:#ef9a9a!important}.text-red-lighten-2{color:#e57373!important}.text-red-lighten-1{color:#ef5350!important}.text-red-darken-1{color:#e53935!important}.text-red-darken-2{color:#d32f2f!important}.text-red-darken-3{color:#c62828!important}.text-red-darken-4{color:#b71c1c!important}.text-red-accent-1{color:#ff8a80!important}.text-red-accent-2{color:#ff5252!important}.text-red-accent-3{color:#ff1744!important}.text-red-accent-4{color:#d50000!important}.text-pink{color:#e91e63!important}.text-pink-lighten-5{color:#fce4ec!important}.text-pink-lighten-4{color:#f8bbd0!important}.text-pink-lighten-3{color:#f48fb1!important}.text-pink-lighten-2{color:#f06292!important}.text-pink-lighten-1{color:#ec407a!important}.text-pink-darken-1{color:#d81b60!important}.text-pink-darken-2{color:#c2185b!important}.text-pink-darken-3{color:#ad1457!important}.text-pink-darken-4{color:#880e4f!important}.text-pink-accent-1{color:#ff80ab!important}.text-pink-accent-2{color:#ff4081!important}.text-pink-accent-3{color:#f50057!important}.text-pink-accent-4{color:#c51162!important}.text-purple{color:#9c27b0!important}.text-purple-lighten-5{color:#f3e5f5!important}.text-purple-lighten-4{color:#e1bee7!important}.text-purple-lighten-3{color:#ce93d8!important}.text-purple-lighten-2{color:#ba68c8!important}.text-purple-lighten-1{color:#ab47bc!important}.text-purple-darken-1{color:#8e24aa!important}.text-purple-darken-2{color:#7b1fa2!important}.text-purple-darken-3{color:#6a1b9a!important}.text-purple-darken-4{color:#4a148c!important}.text-purple-accent-1{color:#ea80fc!important}.text-purple-accent-2{color:#e040fb!important}.text-purple-accent-3{color:#d500f9!important}.text-purple-accent-4{color:#a0f!important}.text-deep-purple{color:#673ab7!important}.text-deep-purple-lighten-5{color:#ede7f6!important}.text-deep-purple-lighten-4{color:#d1c4e9!important}.text-deep-purple-lighten-3{color:#b39ddb!important}.text-deep-purple-lighten-2{color:#9575cd!important}.text-deep-purple-lighten-1{color:#7e57c2!important}.text-deep-purple-darken-1{color:#5e35b1!important}.text-deep-purple-darken-2{color:#512da8!important}.text-deep-purple-darken-3{color:#4527a0!important}.text-deep-purple-darken-4{color:#311b92!important}.text-deep-purple-accent-1{color:#b388ff!important}.text-deep-purple-accent-2{color:#7c4dff!important}.text-deep-purple-accent-3{color:#651fff!important}.text-deep-purple-accent-4{color:#6200ea!important}.text-indigo{color:#3f51b5!important}.text-indigo-lighten-5{color:#e8eaf6!important}.text-indigo-lighten-4{color:#c5cae9!important}.text-indigo-lighten-3{color:#9fa8da!important}.text-indigo-lighten-2{color:#7986cb!important}.text-indigo-lighten-1{color:#5c6bc0!important}.text-indigo-darken-1{color:#3949ab!important}.text-indigo-darken-2{color:#303f9f!important}.text-indigo-darken-3{color:#283593!important}.text-indigo-darken-4{color:#1a237e!important}.text-indigo-accent-1{color:#8c9eff!important}.text-indigo-accent-2{color:#536dfe!important}.text-indigo-accent-3{color:#3d5afe!important}.text-indigo-accent-4{color:#304ffe!important}.text-blue{color:#2196f3!important}.text-blue-lighten-5{color:#e3f2fd!important}.text-blue-lighten-4{color:#bbdefb!important}.text-blue-lighten-3{color:#90caf9!important}.text-blue-lighten-2{color:#64b5f6!important}.text-blue-lighten-1{color:#42a5f5!important}.text-blue-darken-1{color:#1e88e5!important}.text-blue-darken-2{color:#1976d2!important}.text-blue-darken-3{color:#1565c0!important}.text-blue-darken-4{color:#0d47a1!important}.text-blue-accent-1{color:#82b1ff!important}.text-blue-accent-2{color:#448aff!important}.text-blue-accent-3{color:#2979ff!important}.text-blue-accent-4{color:#2962ff!important}.text-light-blue{color:#03a9f4!important}.text-light-blue-lighten-5{color:#e1f5fe!important}.text-light-blue-lighten-4{color:#b3e5fc!important}.text-light-blue-lighten-3{color:#81d4fa!important}.text-light-blue-lighten-2{color:#4fc3f7!important}.text-light-blue-lighten-1{color:#29b6f6!important}.text-light-blue-darken-1{color:#039be5!important}.text-light-blue-darken-2{color:#0288d1!important}.text-light-blue-darken-3{color:#0277bd!important}.text-light-blue-darken-4{color:#01579b!important}.text-light-blue-accent-1{color:#80d8ff!important}.text-light-blue-accent-2{color:#40c4ff!important}.text-light-blue-accent-3{color:#00b0ff!important}.text-light-blue-accent-4{color:#0091ea!important}.text-cyan{color:#00bcd4!important}.text-cyan-lighten-5{color:#e0f7fa!important}.text-cyan-lighten-4{color:#b2ebf2!important}.text-cyan-lighten-3{color:#80deea!important}.text-cyan-lighten-2{color:#4dd0e1!important}.text-cyan-lighten-1{color:#26c6da!important}.text-cyan-darken-1{color:#00acc1!important}.text-cyan-darken-2{color:#0097a7!important}.text-cyan-darken-3{color:#00838f!important}.text-cyan-darken-4{color:#006064!important}.text-cyan-accent-1{color:#84ffff!important}.text-cyan-accent-2{color:#18ffff!important}.text-cyan-accent-3{color:#00e5ff!important}.text-cyan-accent-4{color:#00b8d4!important}.text-teal{color:#009688!important}.text-teal-lighten-5{color:#e0f2f1!important}.text-teal-lighten-4{color:#b2dfdb!important}.text-teal-lighten-3{color:#80cbc4!important}.text-teal-lighten-2{color:#4db6ac!important}.text-teal-lighten-1{color:#26a69a!important}.text-teal-darken-1{color:#00897b!important}.text-teal-darken-2{color:#00796b!important}.text-teal-darken-3{color:#00695c!important}.text-teal-darken-4{color:#004d40!important}.text-teal-accent-1{color:#a7ffeb!important}.text-teal-accent-2{color:#64ffda!important}.text-teal-accent-3{color:#1de9b6!important}.text-teal-accent-4{color:#00bfa5!important}.text-green{color:#4caf50!important}.text-green-lighten-5{color:#e8f5e9!important}.text-green-lighten-4{color:#c8e6c9!important}.text-green-lighten-3{color:#a5d6a7!important}.text-green-lighten-2{color:#81c784!important}.text-green-lighten-1{color:#66bb6a!important}.text-green-darken-1{color:#43a047!important}.text-green-darken-2{color:#388e3c!important}.text-green-darken-3{color:#2e7d32!important}.text-green-darken-4{color:#1b5e20!important}.text-green-accent-1{color:#b9f6ca!important}.text-green-accent-2{color:#69f0ae!important}.text-green-accent-3{color:#00e676!important}.text-green-accent-4{color:#00c853!important}.text-light-green{color:#8bc34a!important}.text-light-green-lighten-5{color:#f1f8e9!important}.text-light-green-lighten-4{color:#dcedc8!important}.text-light-green-lighten-3{color:#c5e1a5!important}.text-light-green-lighten-2{color:#aed581!important}.text-light-green-lighten-1{color:#9ccc65!important}.text-light-green-darken-1{color:#7cb342!important}.text-light-green-darken-2{color:#689f38!important}.text-light-green-darken-3{color:#558b2f!important}.text-light-green-darken-4{color:#33691e!important}.text-light-green-accent-1{color:#ccff90!important}.text-light-green-accent-2{color:#b2ff59!important}.text-light-green-accent-3{color:#76ff03!important}.text-light-green-accent-4{color:#64dd17!important}.text-lime{color:#cddc39!important}.text-lime-lighten-5{color:#f9fbe7!important}.text-lime-lighten-4{color:#f0f4c3!important}.text-lime-lighten-3{color:#e6ee9c!important}.text-lime-lighten-2{color:#dce775!important}.text-lime-lighten-1{color:#d4e157!important}.text-lime-darken-1{color:#c0ca33!important}.text-lime-darken-2{color:#afb42b!important}.text-lime-darken-3{color:#9e9d24!important}.text-lime-darken-4{color:#827717!important}.text-lime-accent-1{color:#f4ff81!important}.text-lime-accent-2{color:#eeff41!important}.text-lime-accent-3{color:#c6ff00!important}.text-lime-accent-4{color:#aeea00!important}.text-yellow{color:#ffeb3b!important}.text-yellow-lighten-5{color:#fffde7!important}.text-yellow-lighten-4{color:#fff9c4!important}.text-yellow-lighten-3{color:#fff59d!important}.text-yellow-lighten-2{color:#fff176!important}.text-yellow-lighten-1{color:#ffee58!important}.text-yellow-darken-1{color:#fdd835!important}.text-yellow-darken-2{color:#fbc02d!important}.text-yellow-darken-3{color:#f9a825!important}.text-yellow-darken-4{color:#f57f17!important}.text-yellow-accent-1{color:#ffff8d!important}.text-yellow-accent-2{color:#ff0!important}.text-yellow-accent-3{color:#ffea00!important}.text-yellow-accent-4{color:#ffd600!important}.text-amber{color:#ffc107!important}.text-amber-lighten-5{color:#fff8e1!important}.text-amber-lighten-4{color:#ffecb3!important}.text-amber-lighten-3{color:#ffe082!important}.text-amber-lighten-2{color:#ffd54f!important}.text-amber-lighten-1{color:#ffca28!important}.text-amber-darken-1{color:#ffb300!important}.text-amber-darken-2{color:#ffa000!important}.text-amber-darken-3{color:#ff8f00!important}.text-amber-darken-4{color:#ff6f00!important}.text-amber-accent-1{color:#ffe57f!important}.text-amber-accent-2{color:#ffd740!important}.text-amber-accent-3{color:#ffc400!important}.text-amber-accent-4{color:#ffab00!important}.text-orange{color:#ff9800!important}.text-orange-lighten-5{color:#fff3e0!important}.text-orange-lighten-4{color:#ffe0b2!important}.text-orange-lighten-3{color:#ffcc80!important}.text-orange-lighten-2{color:#ffb74d!important}.text-orange-lighten-1{color:#ffa726!important}.text-orange-darken-1{color:#fb8c00!important}.text-orange-darken-2{color:#f57c00!important}.text-orange-darken-3{color:#ef6c00!important}.text-orange-darken-4{color:#e65100!important}.text-orange-accent-1{color:#ffd180!important}.text-orange-accent-2{color:#ffab40!important}.text-orange-accent-3{color:#ff9100!important}.text-orange-accent-4{color:#ff6d00!important}.text-deep-orange{color:#ff5722!important}.text-deep-orange-lighten-5{color:#fbe9e7!important}.text-deep-orange-lighten-4{color:#ffccbc!important}.text-deep-orange-lighten-3{color:#ffab91!important}.text-deep-orange-lighten-2{color:#ff8a65!important}.text-deep-orange-lighten-1{color:#ff7043!important}.text-deep-orange-darken-1{color:#f4511e!important}.text-deep-orange-darken-2{color:#e64a19!important}.text-deep-orange-darken-3{color:#d84315!important}.text-deep-orange-darken-4{color:#bf360c!important}.text-deep-orange-accent-1{color:#ff9e80!important}.text-deep-orange-accent-2{color:#ff6e40!important}.text-deep-orange-accent-3{color:#ff3d00!important}.text-deep-orange-accent-4{color:#dd2c00!important}.text-brown{color:#795548!important}.text-brown-lighten-5{color:#efebe9!important}.text-brown-lighten-4{color:#d7ccc8!important}.text-brown-lighten-3{color:#bcaaa4!important}.text-brown-lighten-2{color:#a1887f!important}.text-brown-lighten-1{color:#8d6e63!important}.text-brown-darken-1{color:#6d4c41!important}.text-brown-darken-2{color:#5d4037!important}.text-brown-darken-3{color:#4e342e!important}.text-brown-darken-4{color:#3e2723!important}.text-blue-grey{color:#607d8b!important}.text-blue-grey-lighten-5{color:#eceff1!important}.text-blue-grey-lighten-4{color:#cfd8dc!important}.text-blue-grey-lighten-3{color:#b0bec5!important}.text-blue-grey-lighten-2{color:#90a4ae!important}.text-blue-grey-lighten-1{color:#78909c!important}.text-blue-grey-darken-1{color:#546e7a!important}.text-blue-grey-darken-2{color:#455a64!important}.text-blue-grey-darken-3{color:#37474f!important}.text-blue-grey-darken-4{color:#263238!important}.text-grey{color:#9e9e9e!important}.text-grey-lighten-5{color:#fafafa!important}.text-grey-lighten-4{color:#f5f5f5!important}.text-grey-lighten-3{color:#eee!important}.text-grey-lighten-2{color:#e0e0e0!important}.text-grey-lighten-1{color:#bdbdbd!important}.text-grey-darken-1{color:#757575!important}.text-grey-darken-2{color:#616161!important}.text-grey-darken-3{color:#424242!important}.text-grey-darken-4{color:#212121!important}.text-shades-black{color:#000!important}.text-shades-white{color:#fff!important}.text-shades-transparent{color:transparent!important}/*! + * ress.css • v2.0.4 + * MIT License + * github.com/filipelinhares/ress + */html{box-sizing:border-box;overflow-y:scroll;-webkit-text-size-adjust:100%;word-break:normal;-moz-tab-size:4;tab-size:4}*,:before,:after{background-repeat:no-repeat;box-sizing:inherit}:before,:after{text-decoration:inherit;vertical-align:inherit}*{padding:0;margin:0}hr{overflow:visible;height:0}details,main{display:block}summary{display:list-item}small{font-size:80%}[hidden]{display:none}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}a{background-color:transparent}a:active,a:hover{outline-width:0}code,kbd,pre,samp{font-family:monospace,monospace}pre{font-size:1em}b,strong{font-weight:bolder}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}input{border-radius:0}[disabled]{cursor:default}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}textarea{overflow:auto;resize:vertical}button,input,optgroup,select,textarea{font:inherit}optgroup{font-weight:700}button{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit],[role=button]{cursor:pointer;color:inherit}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{outline:1px dotted ButtonText}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button,input,select,textarea{background-color:transparent;border-style:none}select{-moz-appearance:none;-webkit-appearance:none}select::-ms-expand{display:none}select::-ms-value{color:currentColor}legend{border:0;color:inherit;display:table;white-space:normal;max-width:100%}::-webkit-file-upload-button{-webkit-appearance:button;color:inherit;font:inherit}::-ms-clear,::-ms-reveal{display:none}img{border-style:none}progress{vertical-align:baseline}@media screen{[hidden~=screen]{display:inherit}[hidden~=screen]:not(:active):not(:focus):not(:target){position:absolute!important;clip:rect(0 0 0 0)!important}}[aria-busy=true]{cursor:progress}[aria-controls]{cursor:pointer}[aria-disabled=true]{cursor:default}.dialog-transition-enter-active,.dialog-bottom-transition-enter-active,.dialog-top-transition-enter-active{transition-duration:225ms!important;transition-timing-function:cubic-bezier(0,0,.2,1)!important}.dialog-transition-leave-active,.dialog-bottom-transition-leave-active,.dialog-top-transition-leave-active{transition-duration:125ms!important;transition-timing-function:cubic-bezier(.4,0,1,1)!important}.dialog-transition-enter-active,.dialog-transition-leave-active,.dialog-bottom-transition-enter-active,.dialog-bottom-transition-leave-active,.dialog-top-transition-enter-active,.dialog-top-transition-leave-active{transition-property:transform,opacity!important;pointer-events:none}.dialog-transition-enter-from,.dialog-transition-leave-to{transform:scale(.9);opacity:0}.dialog-transition-enter-to,.dialog-transition-leave-from{opacity:1}.dialog-bottom-transition-enter-from,.dialog-bottom-transition-leave-to{transform:translateY(calc(50vh + 50%))}.dialog-top-transition-enter-from,.dialog-top-transition-leave-to{transform:translateY(calc(-50vh - 50%))}.picker-transition-enter-active,.picker-reverse-transition-enter-active,.picker-transition-leave-active,.picker-reverse-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.picker-transition-move,.picker-reverse-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.picker-transition-enter-from,.picker-transition-leave-to,.picker-reverse-transition-enter-from,.picker-reverse-transition-leave-to{opacity:0}.picker-transition-leave-from,.picker-transition-leave-active,.picker-transition-leave-to,.picker-reverse-transition-leave-from,.picker-reverse-transition-leave-active,.picker-reverse-transition-leave-to{position:absolute!important}.picker-transition-enter-active,.picker-transition-leave-active,.picker-reverse-transition-enter-active,.picker-reverse-transition-leave-active{transition-property:transform,opacity!important}.picker-transition-enter-active,.picker-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.picker-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.picker-transition-enter-from{transform:translate(100%)}.picker-transition-leave-to{transform:translate(-100%)}.picker-reverse-transition-enter-active,.picker-reverse-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.picker-reverse-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.picker-reverse-transition-enter-from{transform:translate(-100%)}.picker-reverse-transition-leave-to{transform:translate(100%)}.expand-transition-enter-active,.expand-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.expand-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.expand-transition-enter-active,.expand-transition-leave-active{transition-property:height!important}.expand-x-transition-enter-active,.expand-x-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.expand-x-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.expand-x-transition-enter-active,.expand-x-transition-leave-active{transition-property:width!important}.scale-transition-enter-active,.scale-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scale-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scale-transition-leave-to{opacity:0}.scale-transition-leave-active{transition-duration:.1s!important}.scale-transition-enter-from{opacity:0;transform:scale(0)}.scale-transition-enter-active,.scale-transition-leave-active{transition-property:transform,opacity!important}.scale-rotate-transition-enter-active,.scale-rotate-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scale-rotate-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scale-rotate-transition-leave-to{opacity:0}.scale-rotate-transition-leave-active{transition-duration:.1s!important}.scale-rotate-transition-enter-from{opacity:0;transform:scale(0) rotate(-45deg)}.scale-rotate-transition-enter-active,.scale-rotate-transition-leave-active{transition-property:transform,opacity!important}.scale-rotate-reverse-transition-enter-active,.scale-rotate-reverse-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scale-rotate-reverse-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scale-rotate-reverse-transition-leave-to{opacity:0}.scale-rotate-reverse-transition-leave-active{transition-duration:.1s!important}.scale-rotate-reverse-transition-enter-from{opacity:0;transform:scale(0) rotate(45deg)}.scale-rotate-reverse-transition-enter-active,.scale-rotate-reverse-transition-leave-active{transition-property:transform,opacity!important}.message-transition-enter-active,.message-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.message-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.message-transition-enter-from,.message-transition-leave-to{opacity:0;transform:translateY(-15px)}.message-transition-leave-from,.message-transition-leave-active{position:absolute}.message-transition-enter-active,.message-transition-leave-active{transition-property:transform,opacity!important}.slide-y-transition-enter-active,.slide-y-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.slide-y-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.slide-y-transition-enter-from,.slide-y-transition-leave-to{opacity:0;transform:translateY(-15px)}.slide-y-transition-enter-active,.slide-y-transition-leave-active{transition-property:transform,opacity!important}.slide-y-reverse-transition-enter-active,.slide-y-reverse-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.slide-y-reverse-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.slide-y-reverse-transition-enter-from,.slide-y-reverse-transition-leave-to{opacity:0;transform:translateY(15px)}.slide-y-reverse-transition-enter-active,.slide-y-reverse-transition-leave-active{transition-property:transform,opacity!important}.scroll-y-transition-enter-active,.scroll-y-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scroll-y-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scroll-y-transition-enter-from,.scroll-y-transition-leave-to{opacity:0}.scroll-y-transition-enter-from{transform:translateY(-15px)}.scroll-y-transition-leave-to{transform:translateY(15px)}.scroll-y-transition-enter-active,.scroll-y-transition-leave-active{transition-property:transform,opacity!important}.scroll-y-reverse-transition-enter-active,.scroll-y-reverse-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scroll-y-reverse-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scroll-y-reverse-transition-enter-from,.scroll-y-reverse-transition-leave-to{opacity:0}.scroll-y-reverse-transition-enter-from{transform:translateY(15px)}.scroll-y-reverse-transition-leave-to{transform:translateY(-15px)}.scroll-y-reverse-transition-enter-active,.scroll-y-reverse-transition-leave-active{transition-property:transform,opacity!important}.scroll-x-transition-enter-active,.scroll-x-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scroll-x-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scroll-x-transition-enter-from,.scroll-x-transition-leave-to{opacity:0}.scroll-x-transition-enter-from{transform:translate(-15px)}.scroll-x-transition-leave-to{transform:translate(15px)}.scroll-x-transition-enter-active,.scroll-x-transition-leave-active{transition-property:transform,opacity!important}.scroll-x-reverse-transition-enter-active,.scroll-x-reverse-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scroll-x-reverse-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.scroll-x-reverse-transition-enter-from,.scroll-x-reverse-transition-leave-to{opacity:0}.scroll-x-reverse-transition-enter-from{transform:translate(15px)}.scroll-x-reverse-transition-leave-to{transform:translate(-15px)}.scroll-x-reverse-transition-enter-active,.scroll-x-reverse-transition-leave-active{transition-property:transform,opacity!important}.slide-x-transition-enter-active,.slide-x-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.slide-x-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.slide-x-transition-enter-from,.slide-x-transition-leave-to{opacity:0;transform:translate(-15px)}.slide-x-transition-enter-active,.slide-x-transition-leave-active{transition-property:transform,opacity!important}.slide-x-reverse-transition-enter-active,.slide-x-reverse-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.slide-x-reverse-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.slide-x-reverse-transition-enter-from,.slide-x-reverse-transition-leave-to{opacity:0;transform:translate(15px)}.slide-x-reverse-transition-enter-active,.slide-x-reverse-transition-leave-active{transition-property:transform,opacity!important}.fade-transition-enter-active,.fade-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.fade-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.fade-transition-enter-from,.fade-transition-leave-to{opacity:0!important}.fade-transition-enter-active,.fade-transition-leave-active{transition-property:opacity!important}.fab-transition-enter-active,.fab-transition-leave-active{transition-duration:.3s!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.fab-transition-move{transition-duration:.5s!important;transition-property:transform!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.fab-transition-enter-from,.fab-transition-leave-to{transform:scale(0) rotate(-45deg)}.fab-transition-enter-active,.fab-transition-leave-active{transition-property:transform!important}.v-locale--is-rtl{direction:rtl}.v-locale--is-ltr{direction:ltr}.blockquote{padding:16px 0 16px 24px;font-size:18px;font-weight:300}html{font-family:Roboto,sans-serif;line-height:1.5;font-size:1rem;overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-tap-highlight-color:rgba(0,0,0,0)}html.overflow-y-hidden{overflow-y:hidden!important}:root{--v-theme-overlay-multiplier: 1;--v-scrollbar-offset: 0px}@supports (-webkit-touch-callout: none){body{cursor:pointer}}@media only print{.hidden-print-only{display:none!important}}@media only screen{.hidden-screen-only{display:none!important}}@media (max-width: 599.98px){.hidden-xs{display:none!important}}@media (min-width: 600px) and (max-width: 959.98px){.hidden-sm{display:none!important}}@media (min-width: 960px) and (max-width: 1279.98px){.hidden-md{display:none!important}}@media (min-width: 1280px) and (max-width: 1919.98px){.hidden-lg{display:none!important}}@media (min-width: 1920px) and (max-width: 2559.98px){.hidden-xl{display:none!important}}@media (min-width: 2560px){.hidden-xxl{display:none!important}}@media (min-width: 600px){.hidden-sm-and-up{display:none!important}}@media (min-width: 960px){.hidden-md-and-up{display:none!important}}@media (min-width: 1280px){.hidden-lg-and-up{display:none!important}}@media (min-width: 1920px){.hidden-xl-and-up{display:none!important}}@media (max-width: 959.98px){.hidden-sm-and-down{display:none!important}}@media (max-width: 1279.98px){.hidden-md-and-down{display:none!important}}@media (max-width: 1919.98px){.hidden-lg-and-down{display:none!important}}@media (max-width: 2559.98px){.hidden-xl-and-down{display:none!important}}.elevation-24{box-shadow:0 11px 15px -7px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 24px 38px 3px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 9px 46px 8px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-23{box-shadow:0 11px 14px -7px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 23px 36px 3px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 9px 44px 8px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-22{box-shadow:0 10px 14px -6px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 22px 35px 3px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 8px 42px 7px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-21{box-shadow:0 10px 13px -6px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 21px 33px 3px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 8px 40px 7px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-20{box-shadow:0 10px 13px -6px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 20px 31px 3px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 8px 38px 7px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-19{box-shadow:0 9px 12px -6px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 19px 29px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 7px 36px 6px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-18{box-shadow:0 9px 11px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 18px 28px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 7px 34px 6px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-17{box-shadow:0 8px 11px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 17px 26px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 6px 32px 5px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-16{box-shadow:0 8px 10px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 16px 24px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 6px 30px 5px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-15{box-shadow:0 8px 9px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 15px 22px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 6px 28px 5px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-14{box-shadow:0 7px 9px -4px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 14px 21px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 5px 26px 4px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-13{box-shadow:0 7px 8px -4px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 13px 19px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 5px 24px 4px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-12{box-shadow:0 7px 8px -4px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 12px 17px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 5px 22px 4px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-11{box-shadow:0 6px 7px -4px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 11px 15px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 4px 20px 3px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-10{box-shadow:0 6px 6px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 10px 14px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 4px 18px 3px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-9{box-shadow:0 5px 6px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 9px 12px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 16px 2px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-8{box-shadow:0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 14px 2px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-7{box-shadow:0 4px 5px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 7px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 2px 16px 1px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-6{box-shadow:0 3px 5px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 6px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 18px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-5{box-shadow:0 3px 5px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 5px 8px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 14px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-4{box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-3{box-shadow:0 3px 3px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 3px 4px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 8px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-2{box-shadow:0 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 2px 2px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 5px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-1{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.elevation-0{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))!important}.d-sr-only,.d-sr-only-focusable:not(:focus){border:0!important;clip:rect(0,0,0,0)!important;height:1px!important;margin:-1px!important;overflow:hidden!important;padding:0!important;position:absolute!important;white-space:nowrap!important;width:1px!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.overflow-x-auto{overflow-x:auto!important}.overflow-x-hidden{overflow-x:hidden!important}.overflow-x-scroll{overflow-x:scroll!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-hidden{overflow-y:hidden!important}.overflow-y-scroll{overflow-y:scroll!important}.d-none{display:none!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.float-none{float:none!important}.float-left{float:left!important}.float-right{float:right!important}.v-locale--is-rtl .float-end{float:left!important}.v-locale--is-rtl .float-start,.v-locale--is-ltr .float-end{float:right!important}.v-locale--is-ltr .float-start{float:left!important}.flex-fill,.flex-1-1{flex:1 1 auto!important}.flex-1-0{flex:1 0 auto!important}.flex-0-1{flex:0 1 auto!important}.flex-0-0{flex:0 0 auto!important}.flex-1-1-100{flex:1 1 100%!important}.flex-1-0-100{flex:1 0 100%!important}.flex-0-1-100{flex:0 1 100%!important}.flex-0-0-100{flex:0 0 100%!important}.flex-1-1-0{flex:1 1 0!important}.flex-1-0-0{flex:1 0 0!important}.flex-0-1-0{flex:0 1 0!important}.flex-0-0-0{flex:0 0 0!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-start{justify-content:flex-start!important}.justify-end{justify-content:flex-end!important}.justify-center{justify-content:center!important}.justify-space-between{justify-content:space-between!important}.justify-space-around{justify-content:space-around!important}.justify-space-evenly{justify-content:space-evenly!important}.align-start{align-items:flex-start!important}.align-end{align-items:flex-end!important}.align-center{align-items:center!important}.align-baseline{align-items:baseline!important}.align-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-space-between{align-content:space-between!important}.align-content-space-around{align-content:space-around!important}.align-content-space-evenly{align-content:space-evenly!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-6{order:6!important}.order-7{order:7!important}.order-8{order:8!important}.order-9{order:9!important}.order-10{order:10!important}.order-11{order:11!important}.order-12{order:12!important}.order-last{order:13!important}.ga-0{gap:0px!important}.ga-1{gap:4px!important}.ga-2{gap:8px!important}.ga-3{gap:12px!important}.ga-4{gap:16px!important}.ga-5{gap:20px!important}.ga-6{gap:24px!important}.ga-7{gap:28px!important}.ga-8{gap:32px!important}.ga-9{gap:36px!important}.ga-10{gap:40px!important}.ga-11{gap:44px!important}.ga-12{gap:48px!important}.ga-13{gap:52px!important}.ga-14{gap:56px!important}.ga-15{gap:60px!important}.ga-16{gap:64px!important}.ga-auto{gap:auto!important}.gr-0{row-gap:0px!important}.gr-1{row-gap:4px!important}.gr-2{row-gap:8px!important}.gr-3{row-gap:12px!important}.gr-4{row-gap:16px!important}.gr-5{row-gap:20px!important}.gr-6{row-gap:24px!important}.gr-7{row-gap:28px!important}.gr-8{row-gap:32px!important}.gr-9{row-gap:36px!important}.gr-10{row-gap:40px!important}.gr-11{row-gap:44px!important}.gr-12{row-gap:48px!important}.gr-13{row-gap:52px!important}.gr-14{row-gap:56px!important}.gr-15{row-gap:60px!important}.gr-16{row-gap:64px!important}.gr-auto{row-gap:auto!important}.gc-0{column-gap:0px!important}.gc-1{column-gap:4px!important}.gc-2{column-gap:8px!important}.gc-3{column-gap:12px!important}.gc-4{column-gap:16px!important}.gc-5{column-gap:20px!important}.gc-6{column-gap:24px!important}.gc-7{column-gap:28px!important}.gc-8{column-gap:32px!important}.gc-9{column-gap:36px!important}.gc-10{column-gap:40px!important}.gc-11{column-gap:44px!important}.gc-12{column-gap:48px!important}.gc-13{column-gap:52px!important}.gc-14{column-gap:56px!important}.gc-15{column-gap:60px!important}.gc-16{column-gap:64px!important}.gc-auto{column-gap:auto!important}.ma-0{margin:0!important}.ma-1{margin:4px!important}.ma-2{margin:8px!important}.ma-3{margin:12px!important}.ma-4{margin:16px!important}.ma-5{margin:20px!important}.ma-6{margin:24px!important}.ma-7{margin:28px!important}.ma-8{margin:32px!important}.ma-9{margin:36px!important}.ma-10{margin:40px!important}.ma-11{margin:44px!important}.ma-12{margin:48px!important}.ma-13{margin:52px!important}.ma-14{margin:56px!important}.ma-15{margin:60px!important}.ma-16{margin:64px!important}.ma-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:4px!important;margin-left:4px!important}.mx-2{margin-right:8px!important;margin-left:8px!important}.mx-3{margin-right:12px!important;margin-left:12px!important}.mx-4{margin-right:16px!important;margin-left:16px!important}.mx-5{margin-right:20px!important;margin-left:20px!important}.mx-6{margin-right:24px!important;margin-left:24px!important}.mx-7{margin-right:28px!important;margin-left:28px!important}.mx-8{margin-right:32px!important;margin-left:32px!important}.mx-9{margin-right:36px!important;margin-left:36px!important}.mx-10{margin-right:40px!important;margin-left:40px!important}.mx-11{margin-right:44px!important;margin-left:44px!important}.mx-12{margin-right:48px!important;margin-left:48px!important}.mx-13{margin-right:52px!important;margin-left:52px!important}.mx-14{margin-right:56px!important;margin-left:56px!important}.mx-15{margin-right:60px!important;margin-left:60px!important}.mx-16{margin-right:64px!important;margin-left:64px!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:4px!important;margin-bottom:4px!important}.my-2{margin-top:8px!important;margin-bottom:8px!important}.my-3{margin-top:12px!important;margin-bottom:12px!important}.my-4{margin-top:16px!important;margin-bottom:16px!important}.my-5{margin-top:20px!important;margin-bottom:20px!important}.my-6{margin-top:24px!important;margin-bottom:24px!important}.my-7{margin-top:28px!important;margin-bottom:28px!important}.my-8{margin-top:32px!important;margin-bottom:32px!important}.my-9{margin-top:36px!important;margin-bottom:36px!important}.my-10{margin-top:40px!important;margin-bottom:40px!important}.my-11{margin-top:44px!important;margin-bottom:44px!important}.my-12{margin-top:48px!important;margin-bottom:48px!important}.my-13{margin-top:52px!important;margin-bottom:52px!important}.my-14{margin-top:56px!important;margin-bottom:56px!important}.my-15{margin-top:60px!important;margin-bottom:60px!important}.my-16{margin-top:64px!important;margin-bottom:64px!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:4px!important}.mt-2{margin-top:8px!important}.mt-3{margin-top:12px!important}.mt-4{margin-top:16px!important}.mt-5{margin-top:20px!important}.mt-6{margin-top:24px!important}.mt-7{margin-top:28px!important}.mt-8{margin-top:32px!important}.mt-9{margin-top:36px!important}.mt-10{margin-top:40px!important}.mt-11{margin-top:44px!important}.mt-12{margin-top:48px!important}.mt-13{margin-top:52px!important}.mt-14{margin-top:56px!important}.mt-15{margin-top:60px!important}.mt-16{margin-top:64px!important}.mt-auto{margin-top:auto!important}.mr-0{margin-right:0!important}.mr-1{margin-right:4px!important}.mr-2{margin-right:8px!important}.mr-3{margin-right:12px!important}.mr-4{margin-right:16px!important}.mr-5{margin-right:20px!important}.mr-6{margin-right:24px!important}.mr-7{margin-right:28px!important}.mr-8{margin-right:32px!important}.mr-9{margin-right:36px!important}.mr-10{margin-right:40px!important}.mr-11{margin-right:44px!important}.mr-12{margin-right:48px!important}.mr-13{margin-right:52px!important}.mr-14{margin-right:56px!important}.mr-15{margin-right:60px!important}.mr-16{margin-right:64px!important}.mr-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:4px!important}.mb-2{margin-bottom:8px!important}.mb-3{margin-bottom:12px!important}.mb-4{margin-bottom:16px!important}.mb-5{margin-bottom:20px!important}.mb-6{margin-bottom:24px!important}.mb-7{margin-bottom:28px!important}.mb-8{margin-bottom:32px!important}.mb-9{margin-bottom:36px!important}.mb-10{margin-bottom:40px!important}.mb-11{margin-bottom:44px!important}.mb-12{margin-bottom:48px!important}.mb-13{margin-bottom:52px!important}.mb-14{margin-bottom:56px!important}.mb-15{margin-bottom:60px!important}.mb-16{margin-bottom:64px!important}.mb-auto{margin-bottom:auto!important}.ml-0{margin-left:0!important}.ml-1{margin-left:4px!important}.ml-2{margin-left:8px!important}.ml-3{margin-left:12px!important}.ml-4{margin-left:16px!important}.ml-5{margin-left:20px!important}.ml-6{margin-left:24px!important}.ml-7{margin-left:28px!important}.ml-8{margin-left:32px!important}.ml-9{margin-left:36px!important}.ml-10{margin-left:40px!important}.ml-11{margin-left:44px!important}.ml-12{margin-left:48px!important}.ml-13{margin-left:52px!important}.ml-14{margin-left:56px!important}.ml-15{margin-left:60px!important}.ml-16{margin-left:64px!important}.ml-auto{margin-left:auto!important}.ms-0{margin-inline-start:0px!important}.ms-1{margin-inline-start:4px!important}.ms-2{margin-inline-start:8px!important}.ms-3{margin-inline-start:12px!important}.ms-4{margin-inline-start:16px!important}.ms-5{margin-inline-start:20px!important}.ms-6{margin-inline-start:24px!important}.ms-7{margin-inline-start:28px!important}.ms-8{margin-inline-start:32px!important}.ms-9{margin-inline-start:36px!important}.ms-10{margin-inline-start:40px!important}.ms-11{margin-inline-start:44px!important}.ms-12{margin-inline-start:48px!important}.ms-13{margin-inline-start:52px!important}.ms-14{margin-inline-start:56px!important}.ms-15{margin-inline-start:60px!important}.ms-16{margin-inline-start:64px!important}.ms-auto{margin-inline-start:auto!important}.me-0{margin-inline-end:0px!important}.me-1{margin-inline-end:4px!important}.me-2{margin-inline-end:8px!important}.me-3{margin-inline-end:12px!important}.me-4{margin-inline-end:16px!important}.me-5{margin-inline-end:20px!important}.me-6{margin-inline-end:24px!important}.me-7{margin-inline-end:28px!important}.me-8{margin-inline-end:32px!important}.me-9{margin-inline-end:36px!important}.me-10{margin-inline-end:40px!important}.me-11{margin-inline-end:44px!important}.me-12{margin-inline-end:48px!important}.me-13{margin-inline-end:52px!important}.me-14{margin-inline-end:56px!important}.me-15{margin-inline-end:60px!important}.me-16{margin-inline-end:64px!important}.me-auto{margin-inline-end:auto!important}.ma-n1{margin:-4px!important}.ma-n2{margin:-8px!important}.ma-n3{margin:-12px!important}.ma-n4{margin:-16px!important}.ma-n5{margin:-20px!important}.ma-n6{margin:-24px!important}.ma-n7{margin:-28px!important}.ma-n8{margin:-32px!important}.ma-n9{margin:-36px!important}.ma-n10{margin:-40px!important}.ma-n11{margin:-44px!important}.ma-n12{margin:-48px!important}.ma-n13{margin:-52px!important}.ma-n14{margin:-56px!important}.ma-n15{margin:-60px!important}.ma-n16{margin:-64px!important}.mx-n1{margin-right:-4px!important;margin-left:-4px!important}.mx-n2{margin-right:-8px!important;margin-left:-8px!important}.mx-n3{margin-right:-12px!important;margin-left:-12px!important}.mx-n4{margin-right:-16px!important;margin-left:-16px!important}.mx-n5{margin-right:-20px!important;margin-left:-20px!important}.mx-n6{margin-right:-24px!important;margin-left:-24px!important}.mx-n7{margin-right:-28px!important;margin-left:-28px!important}.mx-n8{margin-right:-32px!important;margin-left:-32px!important}.mx-n9{margin-right:-36px!important;margin-left:-36px!important}.mx-n10{margin-right:-40px!important;margin-left:-40px!important}.mx-n11{margin-right:-44px!important;margin-left:-44px!important}.mx-n12{margin-right:-48px!important;margin-left:-48px!important}.mx-n13{margin-right:-52px!important;margin-left:-52px!important}.mx-n14{margin-right:-56px!important;margin-left:-56px!important}.mx-n15{margin-right:-60px!important;margin-left:-60px!important}.mx-n16{margin-right:-64px!important;margin-left:-64px!important}.my-n1{margin-top:-4px!important;margin-bottom:-4px!important}.my-n2{margin-top:-8px!important;margin-bottom:-8px!important}.my-n3{margin-top:-12px!important;margin-bottom:-12px!important}.my-n4{margin-top:-16px!important;margin-bottom:-16px!important}.my-n5{margin-top:-20px!important;margin-bottom:-20px!important}.my-n6{margin-top:-24px!important;margin-bottom:-24px!important}.my-n7{margin-top:-28px!important;margin-bottom:-28px!important}.my-n8{margin-top:-32px!important;margin-bottom:-32px!important}.my-n9{margin-top:-36px!important;margin-bottom:-36px!important}.my-n10{margin-top:-40px!important;margin-bottom:-40px!important}.my-n11{margin-top:-44px!important;margin-bottom:-44px!important}.my-n12{margin-top:-48px!important;margin-bottom:-48px!important}.my-n13{margin-top:-52px!important;margin-bottom:-52px!important}.my-n14{margin-top:-56px!important;margin-bottom:-56px!important}.my-n15{margin-top:-60px!important;margin-bottom:-60px!important}.my-n16{margin-top:-64px!important;margin-bottom:-64px!important}.mt-n1{margin-top:-4px!important}.mt-n2{margin-top:-8px!important}.mt-n3{margin-top:-12px!important}.mt-n4{margin-top:-16px!important}.mt-n5{margin-top:-20px!important}.mt-n6{margin-top:-24px!important}.mt-n7{margin-top:-28px!important}.mt-n8{margin-top:-32px!important}.mt-n9{margin-top:-36px!important}.mt-n10{margin-top:-40px!important}.mt-n11{margin-top:-44px!important}.mt-n12{margin-top:-48px!important}.mt-n13{margin-top:-52px!important}.mt-n14{margin-top:-56px!important}.mt-n15{margin-top:-60px!important}.mt-n16{margin-top:-64px!important}.mr-n1{margin-right:-4px!important}.mr-n2{margin-right:-8px!important}.mr-n3{margin-right:-12px!important}.mr-n4{margin-right:-16px!important}.mr-n5{margin-right:-20px!important}.mr-n6{margin-right:-24px!important}.mr-n7{margin-right:-28px!important}.mr-n8{margin-right:-32px!important}.mr-n9{margin-right:-36px!important}.mr-n10{margin-right:-40px!important}.mr-n11{margin-right:-44px!important}.mr-n12{margin-right:-48px!important}.mr-n13{margin-right:-52px!important}.mr-n14{margin-right:-56px!important}.mr-n15{margin-right:-60px!important}.mr-n16{margin-right:-64px!important}.mb-n1{margin-bottom:-4px!important}.mb-n2{margin-bottom:-8px!important}.mb-n3{margin-bottom:-12px!important}.mb-n4{margin-bottom:-16px!important}.mb-n5{margin-bottom:-20px!important}.mb-n6{margin-bottom:-24px!important}.mb-n7{margin-bottom:-28px!important}.mb-n8{margin-bottom:-32px!important}.mb-n9{margin-bottom:-36px!important}.mb-n10{margin-bottom:-40px!important}.mb-n11{margin-bottom:-44px!important}.mb-n12{margin-bottom:-48px!important}.mb-n13{margin-bottom:-52px!important}.mb-n14{margin-bottom:-56px!important}.mb-n15{margin-bottom:-60px!important}.mb-n16{margin-bottom:-64px!important}.ml-n1{margin-left:-4px!important}.ml-n2{margin-left:-8px!important}.ml-n3{margin-left:-12px!important}.ml-n4{margin-left:-16px!important}.ml-n5{margin-left:-20px!important}.ml-n6{margin-left:-24px!important}.ml-n7{margin-left:-28px!important}.ml-n8{margin-left:-32px!important}.ml-n9{margin-left:-36px!important}.ml-n10{margin-left:-40px!important}.ml-n11{margin-left:-44px!important}.ml-n12{margin-left:-48px!important}.ml-n13{margin-left:-52px!important}.ml-n14{margin-left:-56px!important}.ml-n15{margin-left:-60px!important}.ml-n16{margin-left:-64px!important}.ms-n1{margin-inline-start:-4px!important}.ms-n2{margin-inline-start:-8px!important}.ms-n3{margin-inline-start:-12px!important}.ms-n4{margin-inline-start:-16px!important}.ms-n5{margin-inline-start:-20px!important}.ms-n6{margin-inline-start:-24px!important}.ms-n7{margin-inline-start:-28px!important}.ms-n8{margin-inline-start:-32px!important}.ms-n9{margin-inline-start:-36px!important}.ms-n10{margin-inline-start:-40px!important}.ms-n11{margin-inline-start:-44px!important}.ms-n12{margin-inline-start:-48px!important}.ms-n13{margin-inline-start:-52px!important}.ms-n14{margin-inline-start:-56px!important}.ms-n15{margin-inline-start:-60px!important}.ms-n16{margin-inline-start:-64px!important}.me-n1{margin-inline-end:-4px!important}.me-n2{margin-inline-end:-8px!important}.me-n3{margin-inline-end:-12px!important}.me-n4{margin-inline-end:-16px!important}.me-n5{margin-inline-end:-20px!important}.me-n6{margin-inline-end:-24px!important}.me-n7{margin-inline-end:-28px!important}.me-n8{margin-inline-end:-32px!important}.me-n9{margin-inline-end:-36px!important}.me-n10{margin-inline-end:-40px!important}.me-n11{margin-inline-end:-44px!important}.me-n12{margin-inline-end:-48px!important}.me-n13{margin-inline-end:-52px!important}.me-n14{margin-inline-end:-56px!important}.me-n15{margin-inline-end:-60px!important}.me-n16{margin-inline-end:-64px!important}.pa-0{padding:0!important}.pa-1{padding:4px!important}.pa-2{padding:8px!important}.pa-3{padding:12px!important}.pa-4{padding:16px!important}.pa-5{padding:20px!important}.pa-6{padding:24px!important}.pa-7{padding:28px!important}.pa-8{padding:32px!important}.pa-9{padding:36px!important}.pa-10{padding:40px!important}.pa-11{padding:44px!important}.pa-12{padding:48px!important}.pa-13{padding:52px!important}.pa-14{padding:56px!important}.pa-15{padding:60px!important}.pa-16{padding:64px!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:4px!important;padding-left:4px!important}.px-2{padding-right:8px!important;padding-left:8px!important}.px-3{padding-right:12px!important;padding-left:12px!important}.px-4{padding-right:16px!important;padding-left:16px!important}.px-5{padding-right:20px!important;padding-left:20px!important}.px-6{padding-right:24px!important;padding-left:24px!important}.px-7{padding-right:28px!important;padding-left:28px!important}.px-8{padding-right:32px!important;padding-left:32px!important}.px-9{padding-right:36px!important;padding-left:36px!important}.px-10{padding-right:40px!important;padding-left:40px!important}.px-11{padding-right:44px!important;padding-left:44px!important}.px-12{padding-right:48px!important;padding-left:48px!important}.px-13{padding-right:52px!important;padding-left:52px!important}.px-14{padding-right:56px!important;padding-left:56px!important}.px-15{padding-right:60px!important;padding-left:60px!important}.px-16{padding-right:64px!important;padding-left:64px!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:4px!important;padding-bottom:4px!important}.py-2{padding-top:8px!important;padding-bottom:8px!important}.py-3{padding-top:12px!important;padding-bottom:12px!important}.py-4{padding-top:16px!important;padding-bottom:16px!important}.py-5{padding-top:20px!important;padding-bottom:20px!important}.py-6{padding-top:24px!important;padding-bottom:24px!important}.py-7{padding-top:28px!important;padding-bottom:28px!important}.py-8{padding-top:32px!important;padding-bottom:32px!important}.py-9{padding-top:36px!important;padding-bottom:36px!important}.py-10{padding-top:40px!important;padding-bottom:40px!important}.py-11{padding-top:44px!important;padding-bottom:44px!important}.py-12{padding-top:48px!important;padding-bottom:48px!important}.py-13{padding-top:52px!important;padding-bottom:52px!important}.py-14{padding-top:56px!important;padding-bottom:56px!important}.py-15{padding-top:60px!important;padding-bottom:60px!important}.py-16{padding-top:64px!important;padding-bottom:64px!important}.pt-0{padding-top:0!important}.pt-1{padding-top:4px!important}.pt-2{padding-top:8px!important}.pt-3{padding-top:12px!important}.pt-4{padding-top:16px!important}.pt-5{padding-top:20px!important}.pt-6{padding-top:24px!important}.pt-7{padding-top:28px!important}.pt-8{padding-top:32px!important}.pt-9{padding-top:36px!important}.pt-10{padding-top:40px!important}.pt-11{padding-top:44px!important}.pt-12{padding-top:48px!important}.pt-13{padding-top:52px!important}.pt-14{padding-top:56px!important}.pt-15{padding-top:60px!important}.pt-16{padding-top:64px!important}.pr-0{padding-right:0!important}.pr-1{padding-right:4px!important}.pr-2{padding-right:8px!important}.pr-3{padding-right:12px!important}.pr-4{padding-right:16px!important}.pr-5{padding-right:20px!important}.pr-6{padding-right:24px!important}.pr-7{padding-right:28px!important}.pr-8{padding-right:32px!important}.pr-9{padding-right:36px!important}.pr-10{padding-right:40px!important}.pr-11{padding-right:44px!important}.pr-12{padding-right:48px!important}.pr-13{padding-right:52px!important}.pr-14{padding-right:56px!important}.pr-15{padding-right:60px!important}.pr-16{padding-right:64px!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:4px!important}.pb-2{padding-bottom:8px!important}.pb-3{padding-bottom:12px!important}.pb-4{padding-bottom:16px!important}.pb-5{padding-bottom:20px!important}.pb-6{padding-bottom:24px!important}.pb-7{padding-bottom:28px!important}.pb-8{padding-bottom:32px!important}.pb-9{padding-bottom:36px!important}.pb-10{padding-bottom:40px!important}.pb-11{padding-bottom:44px!important}.pb-12{padding-bottom:48px!important}.pb-13{padding-bottom:52px!important}.pb-14{padding-bottom:56px!important}.pb-15{padding-bottom:60px!important}.pb-16{padding-bottom:64px!important}.pl-0{padding-left:0!important}.pl-1{padding-left:4px!important}.pl-2{padding-left:8px!important}.pl-3{padding-left:12px!important}.pl-4{padding-left:16px!important}.pl-5{padding-left:20px!important}.pl-6{padding-left:24px!important}.pl-7{padding-left:28px!important}.pl-8{padding-left:32px!important}.pl-9{padding-left:36px!important}.pl-10{padding-left:40px!important}.pl-11{padding-left:44px!important}.pl-12{padding-left:48px!important}.pl-13{padding-left:52px!important}.pl-14{padding-left:56px!important}.pl-15{padding-left:60px!important}.pl-16{padding-left:64px!important}.ps-0{padding-inline-start:0px!important}.ps-1{padding-inline-start:4px!important}.ps-2{padding-inline-start:8px!important}.ps-3{padding-inline-start:12px!important}.ps-4{padding-inline-start:16px!important}.ps-5{padding-inline-start:20px!important}.ps-6{padding-inline-start:24px!important}.ps-7{padding-inline-start:28px!important}.ps-8{padding-inline-start:32px!important}.ps-9{padding-inline-start:36px!important}.ps-10{padding-inline-start:40px!important}.ps-11{padding-inline-start:44px!important}.ps-12{padding-inline-start:48px!important}.ps-13{padding-inline-start:52px!important}.ps-14{padding-inline-start:56px!important}.ps-15{padding-inline-start:60px!important}.ps-16{padding-inline-start:64px!important}.pe-0{padding-inline-end:0px!important}.pe-1{padding-inline-end:4px!important}.pe-2{padding-inline-end:8px!important}.pe-3{padding-inline-end:12px!important}.pe-4{padding-inline-end:16px!important}.pe-5{padding-inline-end:20px!important}.pe-6{padding-inline-end:24px!important}.pe-7{padding-inline-end:28px!important}.pe-8{padding-inline-end:32px!important}.pe-9{padding-inline-end:36px!important}.pe-10{padding-inline-end:40px!important}.pe-11{padding-inline-end:44px!important}.pe-12{padding-inline-end:48px!important}.pe-13{padding-inline-end:52px!important}.pe-14{padding-inline-end:56px!important}.pe-15{padding-inline-end:60px!important}.pe-16{padding-inline-end:64px!important}.rounded-0{border-radius:0!important}.rounded-sm{border-radius:2px!important}.rounded{border-radius:4px!important}.rounded-lg{border-radius:8px!important}.rounded-xl{border-radius:24px!important}.rounded-pill{border-radius:9999px!important}.rounded-circle{border-radius:50%!important}.rounded-shaped{border-radius:24px 0!important}.rounded-t-0{border-top-left-radius:0!important;border-top-right-radius:0!important}.rounded-t-sm{border-top-left-radius:2px!important;border-top-right-radius:2px!important}.rounded-t{border-top-left-radius:4px!important;border-top-right-radius:4px!important}.rounded-t-lg{border-top-left-radius:8px!important;border-top-right-radius:8px!important}.rounded-t-xl{border-top-left-radius:24px!important;border-top-right-radius:24px!important}.rounded-t-pill{border-top-left-radius:9999px!important;border-top-right-radius:9999px!important}.rounded-t-circle{border-top-left-radius:50%!important;border-top-right-radius:50%!important}.rounded-t-shaped{border-top-left-radius:24px!important;border-top-right-radius:0!important}.v-locale--is-ltr .rounded-e-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.v-locale--is-rtl .rounded-e-0{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.v-locale--is-ltr .rounded-e-sm{border-top-right-radius:2px!important;border-bottom-right-radius:2px!important}.v-locale--is-rtl .rounded-e-sm{border-top-left-radius:2px!important;border-bottom-left-radius:2px!important}.v-locale--is-ltr .rounded-e{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important}.v-locale--is-rtl .rounded-e{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important}.v-locale--is-ltr .rounded-e-lg{border-top-right-radius:8px!important;border-bottom-right-radius:8px!important}.v-locale--is-rtl .rounded-e-lg{border-top-left-radius:8px!important;border-bottom-left-radius:8px!important}.v-locale--is-ltr .rounded-e-xl{border-top-right-radius:24px!important;border-bottom-right-radius:24px!important}.v-locale--is-rtl .rounded-e-xl{border-top-left-radius:24px!important;border-bottom-left-radius:24px!important}.v-locale--is-ltr .rounded-e-pill{border-top-right-radius:9999px!important;border-bottom-right-radius:9999px!important}.v-locale--is-rtl .rounded-e-pill{border-top-left-radius:9999px!important;border-bottom-left-radius:9999px!important}.v-locale--is-ltr .rounded-e-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.v-locale--is-rtl .rounded-e-circle{border-top-left-radius:50%!important;border-bottom-left-radius:50%!important}.v-locale--is-ltr .rounded-e-shaped{border-top-right-radius:24px!important;border-bottom-right-radius:0!important}.v-locale--is-rtl .rounded-e-shaped{border-top-left-radius:24px!important;border-bottom-left-radius:0!important}.rounded-b-0{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.rounded-b-sm{border-bottom-left-radius:2px!important;border-bottom-right-radius:2px!important}.rounded-b{border-bottom-left-radius:4px!important;border-bottom-right-radius:4px!important}.rounded-b-lg{border-bottom-left-radius:8px!important;border-bottom-right-radius:8px!important}.rounded-b-xl{border-bottom-left-radius:24px!important;border-bottom-right-radius:24px!important}.rounded-b-pill{border-bottom-left-radius:9999px!important;border-bottom-right-radius:9999px!important}.rounded-b-circle{border-bottom-left-radius:50%!important;border-bottom-right-radius:50%!important}.rounded-b-shaped{border-bottom-left-radius:24px!important;border-bottom-right-radius:0!important}.v-locale--is-ltr .rounded-s-0{border-top-left-radius:0!important;border-bottom-left-radius:0!important}.v-locale--is-rtl .rounded-s-0{border-top-right-radius:0!important;border-bottom-right-radius:0!important}.v-locale--is-ltr .rounded-s-sm{border-top-left-radius:2px!important;border-bottom-left-radius:2px!important}.v-locale--is-rtl .rounded-s-sm{border-top-right-radius:2px!important;border-bottom-right-radius:2px!important}.v-locale--is-ltr .rounded-s{border-top-left-radius:4px!important;border-bottom-left-radius:4px!important}.v-locale--is-rtl .rounded-s{border-top-right-radius:4px!important;border-bottom-right-radius:4px!important}.v-locale--is-ltr .rounded-s-lg{border-top-left-radius:8px!important;border-bottom-left-radius:8px!important}.v-locale--is-rtl .rounded-s-lg{border-top-right-radius:8px!important;border-bottom-right-radius:8px!important}.v-locale--is-ltr .rounded-s-xl{border-top-left-radius:24px!important;border-bottom-left-radius:24px!important}.v-locale--is-rtl .rounded-s-xl{border-top-right-radius:24px!important;border-bottom-right-radius:24px!important}.v-locale--is-ltr .rounded-s-pill{border-top-left-radius:9999px!important;border-bottom-left-radius:9999px!important}.v-locale--is-rtl .rounded-s-pill{border-top-right-radius:9999px!important;border-bottom-right-radius:9999px!important}.v-locale--is-ltr .rounded-s-circle{border-top-left-radius:50%!important;border-bottom-left-radius:50%!important}.v-locale--is-rtl .rounded-s-circle{border-top-right-radius:50%!important;border-bottom-right-radius:50%!important}.v-locale--is-ltr .rounded-s-shaped{border-top-left-radius:24px!important;border-bottom-left-radius:0!important}.v-locale--is-rtl .rounded-s-shaped{border-top-right-radius:24px!important;border-bottom-right-radius:0!important}.v-locale--is-ltr .rounded-ts-0{border-top-left-radius:0!important}.v-locale--is-rtl .rounded-ts-0{border-top-right-radius:0!important}.v-locale--is-ltr .rounded-ts-sm{border-top-left-radius:2px!important}.v-locale--is-rtl .rounded-ts-sm{border-top-right-radius:2px!important}.v-locale--is-ltr .rounded-ts{border-top-left-radius:4px!important}.v-locale--is-rtl .rounded-ts{border-top-right-radius:4px!important}.v-locale--is-ltr .rounded-ts-lg{border-top-left-radius:8px!important}.v-locale--is-rtl .rounded-ts-lg{border-top-right-radius:8px!important}.v-locale--is-ltr .rounded-ts-xl{border-top-left-radius:24px!important}.v-locale--is-rtl .rounded-ts-xl{border-top-right-radius:24px!important}.v-locale--is-ltr .rounded-ts-pill{border-top-left-radius:9999px!important}.v-locale--is-rtl .rounded-ts-pill{border-top-right-radius:9999px!important}.v-locale--is-ltr .rounded-ts-circle{border-top-left-radius:50%!important}.v-locale--is-rtl .rounded-ts-circle{border-top-right-radius:50%!important}.v-locale--is-ltr .rounded-ts-shaped{border-top-left-radius:24px 0!important}.v-locale--is-rtl .rounded-ts-shaped{border-top-right-radius:24px 0!important}.v-locale--is-ltr .rounded-te-0{border-top-right-radius:0!important}.v-locale--is-rtl .rounded-te-0{border-top-left-radius:0!important}.v-locale--is-ltr .rounded-te-sm{border-top-right-radius:2px!important}.v-locale--is-rtl .rounded-te-sm{border-top-left-radius:2px!important}.v-locale--is-ltr .rounded-te{border-top-right-radius:4px!important}.v-locale--is-rtl .rounded-te{border-top-left-radius:4px!important}.v-locale--is-ltr .rounded-te-lg{border-top-right-radius:8px!important}.v-locale--is-rtl .rounded-te-lg{border-top-left-radius:8px!important}.v-locale--is-ltr .rounded-te-xl{border-top-right-radius:24px!important}.v-locale--is-rtl .rounded-te-xl{border-top-left-radius:24px!important}.v-locale--is-ltr .rounded-te-pill{border-top-right-radius:9999px!important}.v-locale--is-rtl .rounded-te-pill{border-top-left-radius:9999px!important}.v-locale--is-ltr .rounded-te-circle{border-top-right-radius:50%!important}.v-locale--is-rtl .rounded-te-circle{border-top-left-radius:50%!important}.v-locale--is-ltr .rounded-te-shaped{border-top-right-radius:24px 0!important}.v-locale--is-rtl .rounded-te-shaped{border-top-left-radius:24px 0!important}.v-locale--is-ltr .rounded-be-0{border-bottom-right-radius:0!important}.v-locale--is-rtl .rounded-be-0{border-bottom-left-radius:0!important}.v-locale--is-ltr .rounded-be-sm{border-bottom-right-radius:2px!important}.v-locale--is-rtl .rounded-be-sm{border-bottom-left-radius:2px!important}.v-locale--is-ltr .rounded-be{border-bottom-right-radius:4px!important}.v-locale--is-rtl .rounded-be{border-bottom-left-radius:4px!important}.v-locale--is-ltr .rounded-be-lg{border-bottom-right-radius:8px!important}.v-locale--is-rtl .rounded-be-lg{border-bottom-left-radius:8px!important}.v-locale--is-ltr .rounded-be-xl{border-bottom-right-radius:24px!important}.v-locale--is-rtl .rounded-be-xl{border-bottom-left-radius:24px!important}.v-locale--is-ltr .rounded-be-pill{border-bottom-right-radius:9999px!important}.v-locale--is-rtl .rounded-be-pill{border-bottom-left-radius:9999px!important}.v-locale--is-ltr .rounded-be-circle{border-bottom-right-radius:50%!important}.v-locale--is-rtl .rounded-be-circle{border-bottom-left-radius:50%!important}.v-locale--is-ltr .rounded-be-shaped{border-bottom-right-radius:24px 0!important}.v-locale--is-rtl .rounded-be-shaped{border-bottom-left-radius:24px 0!important}.v-locale--is-ltr .rounded-bs-0{border-bottom-left-radius:0!important}.v-locale--is-rtl .rounded-bs-0{border-bottom-right-radius:0!important}.v-locale--is-ltr .rounded-bs-sm{border-bottom-left-radius:2px!important}.v-locale--is-rtl .rounded-bs-sm{border-bottom-right-radius:2px!important}.v-locale--is-ltr .rounded-bs{border-bottom-left-radius:4px!important}.v-locale--is-rtl .rounded-bs{border-bottom-right-radius:4px!important}.v-locale--is-ltr .rounded-bs-lg{border-bottom-left-radius:8px!important}.v-locale--is-rtl .rounded-bs-lg{border-bottom-right-radius:8px!important}.v-locale--is-ltr .rounded-bs-xl{border-bottom-left-radius:24px!important}.v-locale--is-rtl .rounded-bs-xl{border-bottom-right-radius:24px!important}.v-locale--is-ltr .rounded-bs-pill{border-bottom-left-radius:9999px!important}.v-locale--is-rtl .rounded-bs-pill{border-bottom-right-radius:9999px!important}.v-locale--is-ltr .rounded-bs-circle{border-bottom-left-radius:50%!important}.v-locale--is-rtl .rounded-bs-circle{border-bottom-right-radius:50%!important}.v-locale--is-ltr .rounded-bs-shaped{border-bottom-left-radius:24px 0!important}.v-locale--is-rtl .rounded-bs-shaped{border-bottom-right-radius:24px 0!important}.border-0{border-width:0!important;border-style:solid!important;border-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border,.border-thin{border-width:thin!important;border-style:solid!important;border-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-sm{border-width:1px!important;border-style:solid!important;border-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-md{border-width:2px!important;border-style:solid!important;border-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-lg{border-width:4px!important;border-style:solid!important;border-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-xl{border-width:8px!important;border-style:solid!important;border-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-opacity-0{--v-border-opacity: 0 !important}.border-opacity{--v-border-opacity: .12 !important}.border-opacity-25{--v-border-opacity: .25 !important}.border-opacity-50{--v-border-opacity: .5 !important}.border-opacity-75{--v-border-opacity: .75 !important}.border-opacity-100{--v-border-opacity: 1 !important}.border-t-0{border-block-start-width:0!important;border-block-start-style:solid!important;border-block-start-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-t,.border-t-thin{border-block-start-width:thin!important;border-block-start-style:solid!important;border-block-start-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-t-sm{border-block-start-width:1px!important;border-block-start-style:solid!important;border-block-start-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-t-md{border-block-start-width:2px!important;border-block-start-style:solid!important;border-block-start-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-t-lg{border-block-start-width:4px!important;border-block-start-style:solid!important;border-block-start-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-t-xl{border-block-start-width:8px!important;border-block-start-style:solid!important;border-block-start-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-e-0{border-inline-end-width:0!important;border-inline-end-style:solid!important;border-inline-end-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-e,.border-e-thin{border-inline-end-width:thin!important;border-inline-end-style:solid!important;border-inline-end-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-e-sm{border-inline-end-width:1px!important;border-inline-end-style:solid!important;border-inline-end-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-e-md{border-inline-end-width:2px!important;border-inline-end-style:solid!important;border-inline-end-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-e-lg{border-inline-end-width:4px!important;border-inline-end-style:solid!important;border-inline-end-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-e-xl{border-inline-end-width:8px!important;border-inline-end-style:solid!important;border-inline-end-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-b-0{border-block-end-width:0!important;border-block-end-style:solid!important;border-block-end-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-b,.border-b-thin{border-block-end-width:thin!important;border-block-end-style:solid!important;border-block-end-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-b-sm{border-block-end-width:1px!important;border-block-end-style:solid!important;border-block-end-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-b-md{border-block-end-width:2px!important;border-block-end-style:solid!important;border-block-end-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-b-lg{border-block-end-width:4px!important;border-block-end-style:solid!important;border-block-end-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-b-xl{border-block-end-width:8px!important;border-block-end-style:solid!important;border-block-end-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-s-0{border-inline-start-width:0!important;border-inline-start-style:solid!important;border-inline-start-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-s,.border-s-thin{border-inline-start-width:thin!important;border-inline-start-style:solid!important;border-inline-start-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-s-sm{border-inline-start-width:1px!important;border-inline-start-style:solid!important;border-inline-start-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-s-md{border-inline-start-width:2px!important;border-inline-start-style:solid!important;border-inline-start-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-s-lg{border-inline-start-width:4px!important;border-inline-start-style:solid!important;border-inline-start-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-s-xl{border-inline-start-width:8px!important;border-inline-start-style:solid!important;border-inline-start-color:rgba(var(--v-border-color),var(--v-border-opacity))!important}.border-solid{border-style:solid!important}.border-dashed{border-style:dashed!important}.border-dotted{border-style:dotted!important}.border-double{border-style:double!important}.border-none{border-style:none!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}.text-justify{text-align:justify!important}.text-start{text-align:start!important}.text-end{text-align:end!important}.text-decoration-line-through{text-decoration:line-through!important}.text-decoration-none{text-decoration:none!important}.text-decoration-overline{text-decoration:overline!important}.text-decoration-underline{text-decoration:underline!important}.text-wrap{white-space:normal!important}.text-no-wrap{white-space:nowrap!important}.text-pre{white-space:pre!important}.text-pre-line{white-space:pre-line!important}.text-pre-wrap{white-space:pre-wrap!important}.text-break{overflow-wrap:break-word!important;word-break:break-word!important}.opacity-hover{opacity:var(--v-hover-opacity)!important}.opacity-focus{opacity:var(--v-focus-opacity)!important}.opacity-selected{opacity:var(--v-selected-opacity)!important}.opacity-activated{opacity:var(--v-activated-opacity)!important}.opacity-pressed{opacity:var(--v-pressed-opacity)!important}.opacity-dragged{opacity:var(--v-dragged-opacity)!important}.opacity-0{opacity:0!important}.opacity-10{opacity:.1!important}.opacity-20{opacity:.2!important}.opacity-30{opacity:.3!important}.opacity-40{opacity:.4!important}.opacity-50{opacity:.5!important}.opacity-60{opacity:.6!important}.opacity-70{opacity:.7!important}.opacity-80{opacity:.8!important}.opacity-90{opacity:.9!important}.opacity-100{opacity:1!important}.text-high-emphasis{color:rgba(var(--v-theme-on-background),var(--v-high-emphasis-opacity))!important}.text-medium-emphasis{color:rgba(var(--v-theme-on-background),var(--v-medium-emphasis-opacity))!important}.text-disabled{color:rgba(var(--v-theme-on-background),var(--v-disabled-opacity))!important}.text-truncate{white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}.text-h1{font-size:6rem!important;font-weight:300;line-height:1;letter-spacing:-.015625em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-h2{font-size:3.75rem!important;font-weight:300;line-height:1;letter-spacing:-.0083333333em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-h3{font-size:3rem!important;font-weight:400;line-height:1.05;letter-spacing:normal!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-h4{font-size:2.125rem!important;font-weight:400;line-height:1.175;letter-spacing:.0073529412em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-h5{font-size:1.5rem!important;font-weight:400;line-height:1.333;letter-spacing:normal!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-h6{font-size:1.25rem!important;font-weight:500;line-height:1.6;letter-spacing:.0125em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-subtitle-1{font-size:1rem!important;font-weight:400;line-height:1.75;letter-spacing:.009375em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-subtitle-2{font-size:.875rem!important;font-weight:500;line-height:1.6;letter-spacing:.0071428571em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-body-1{font-size:1rem!important;font-weight:400;line-height:1.5;letter-spacing:.03125em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-body-2{font-size:.875rem!important;font-weight:400;line-height:1.425;letter-spacing:.0178571429em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-button{font-size:.875rem!important;font-weight:500;line-height:2.6;letter-spacing:.0892857143em!important;font-family:Roboto,sans-serif;text-transform:uppercase!important}.text-caption{font-size:.75rem!important;font-weight:400;line-height:1.667;letter-spacing:.0333333333em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-overline{font-size:.75rem!important;font-weight:500;line-height:2.667;letter-spacing:.1666666667em!important;font-family:Roboto,sans-serif;text-transform:uppercase!important}.text-none{text-transform:none!important}.text-capitalize{text-transform:capitalize!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.font-weight-thin{font-weight:100!important}.font-weight-light{font-weight:300!important}.font-weight-regular{font-weight:400!important}.font-weight-medium{font-weight:500!important}.font-weight-bold{font-weight:700!important}.font-weight-black{font-weight:900!important}.font-italic{font-style:italic!important}.text-mono{font-family:monospace!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-fixed{position:fixed!important}.position-absolute{position:absolute!important}.position-sticky{position:sticky!important}.top-0{top:0!important}.right-0{right:0!important}.bottom-0{bottom:0!important}.left-0{left:0!important}.cursor-auto{cursor:auto!important}.cursor-default{cursor:default!important}.cursor-pointer{cursor:pointer!important}.cursor-wait{cursor:wait!important}.cursor-text{cursor:text!important}.cursor-move{cursor:move!important}.cursor-help{cursor:help!important}.cursor-not-allowed{cursor:not-allowed!important}.cursor-progress{cursor:progress!important}.cursor-grab{cursor:grab!important}.cursor-grabbing{cursor:grabbing!important}.cursor-none{cursor:none!important}.fill-height{height:100%!important}.h-auto{height:auto!important}.h-screen{height:100vh!important}.h-0{height:0!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-screen{height:100dvh!important}.w-auto{width:auto!important}.w-0{width:0!important}.w-25{width:25%!important}.w-33{width:33%!important}.w-50{width:50%!important}.w-66{width:66%!important}.w-75{width:75%!important}.w-100{width:100%!important}@media (min-width: 600px){.d-sm-none{display:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.float-sm-none{float:none!important}.float-sm-left{float:left!important}.float-sm-right{float:right!important}.v-locale--is-rtl .float-sm-end{float:left!important}.v-locale--is-rtl .float-sm-start,.v-locale--is-ltr .float-sm-end{float:right!important}.v-locale--is-ltr .float-sm-start{float:left!important}.flex-sm-fill,.flex-sm-1-1{flex:1 1 auto!important}.flex-sm-1-0{flex:1 0 auto!important}.flex-sm-0-1{flex:0 1 auto!important}.flex-sm-0-0{flex:0 0 auto!important}.flex-sm-1-1-100{flex:1 1 100%!important}.flex-sm-1-0-100{flex:1 0 100%!important}.flex-sm-0-1-100{flex:0 1 100%!important}.flex-sm-0-0-100{flex:0 0 100%!important}.flex-sm-1-1-0{flex:1 1 0!important}.flex-sm-1-0-0{flex:1 0 0!important}.flex-sm-0-1-0{flex:0 1 0!important}.flex-sm-0-0-0{flex:0 0 0!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-sm-start{justify-content:flex-start!important}.justify-sm-end{justify-content:flex-end!important}.justify-sm-center{justify-content:center!important}.justify-sm-space-between{justify-content:space-between!important}.justify-sm-space-around{justify-content:space-around!important}.justify-sm-space-evenly{justify-content:space-evenly!important}.align-sm-start{align-items:flex-start!important}.align-sm-end{align-items:flex-end!important}.align-sm-center{align-items:center!important}.align-sm-baseline{align-items:baseline!important}.align-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-space-between{align-content:space-between!important}.align-content-sm-space-around{align-content:space-around!important}.align-content-sm-space-evenly{align-content:space-evenly!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-6{order:6!important}.order-sm-7{order:7!important}.order-sm-8{order:8!important}.order-sm-9{order:9!important}.order-sm-10{order:10!important}.order-sm-11{order:11!important}.order-sm-12{order:12!important}.order-sm-last{order:13!important}.ga-sm-0{gap:0px!important}.ga-sm-1{gap:4px!important}.ga-sm-2{gap:8px!important}.ga-sm-3{gap:12px!important}.ga-sm-4{gap:16px!important}.ga-sm-5{gap:20px!important}.ga-sm-6{gap:24px!important}.ga-sm-7{gap:28px!important}.ga-sm-8{gap:32px!important}.ga-sm-9{gap:36px!important}.ga-sm-10{gap:40px!important}.ga-sm-11{gap:44px!important}.ga-sm-12{gap:48px!important}.ga-sm-13{gap:52px!important}.ga-sm-14{gap:56px!important}.ga-sm-15{gap:60px!important}.ga-sm-16{gap:64px!important}.ga-sm-auto{gap:auto!important}.gr-sm-0{row-gap:0px!important}.gr-sm-1{row-gap:4px!important}.gr-sm-2{row-gap:8px!important}.gr-sm-3{row-gap:12px!important}.gr-sm-4{row-gap:16px!important}.gr-sm-5{row-gap:20px!important}.gr-sm-6{row-gap:24px!important}.gr-sm-7{row-gap:28px!important}.gr-sm-8{row-gap:32px!important}.gr-sm-9{row-gap:36px!important}.gr-sm-10{row-gap:40px!important}.gr-sm-11{row-gap:44px!important}.gr-sm-12{row-gap:48px!important}.gr-sm-13{row-gap:52px!important}.gr-sm-14{row-gap:56px!important}.gr-sm-15{row-gap:60px!important}.gr-sm-16{row-gap:64px!important}.gr-sm-auto{row-gap:auto!important}.gc-sm-0{column-gap:0px!important}.gc-sm-1{column-gap:4px!important}.gc-sm-2{column-gap:8px!important}.gc-sm-3{column-gap:12px!important}.gc-sm-4{column-gap:16px!important}.gc-sm-5{column-gap:20px!important}.gc-sm-6{column-gap:24px!important}.gc-sm-7{column-gap:28px!important}.gc-sm-8{column-gap:32px!important}.gc-sm-9{column-gap:36px!important}.gc-sm-10{column-gap:40px!important}.gc-sm-11{column-gap:44px!important}.gc-sm-12{column-gap:48px!important}.gc-sm-13{column-gap:52px!important}.gc-sm-14{column-gap:56px!important}.gc-sm-15{column-gap:60px!important}.gc-sm-16{column-gap:64px!important}.gc-sm-auto{column-gap:auto!important}.ma-sm-0{margin:0!important}.ma-sm-1{margin:4px!important}.ma-sm-2{margin:8px!important}.ma-sm-3{margin:12px!important}.ma-sm-4{margin:16px!important}.ma-sm-5{margin:20px!important}.ma-sm-6{margin:24px!important}.ma-sm-7{margin:28px!important}.ma-sm-8{margin:32px!important}.ma-sm-9{margin:36px!important}.ma-sm-10{margin:40px!important}.ma-sm-11{margin:44px!important}.ma-sm-12{margin:48px!important}.ma-sm-13{margin:52px!important}.ma-sm-14{margin:56px!important}.ma-sm-15{margin:60px!important}.ma-sm-16{margin:64px!important}.ma-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:4px!important;margin-left:4px!important}.mx-sm-2{margin-right:8px!important;margin-left:8px!important}.mx-sm-3{margin-right:12px!important;margin-left:12px!important}.mx-sm-4{margin-right:16px!important;margin-left:16px!important}.mx-sm-5{margin-right:20px!important;margin-left:20px!important}.mx-sm-6{margin-right:24px!important;margin-left:24px!important}.mx-sm-7{margin-right:28px!important;margin-left:28px!important}.mx-sm-8{margin-right:32px!important;margin-left:32px!important}.mx-sm-9{margin-right:36px!important;margin-left:36px!important}.mx-sm-10{margin-right:40px!important;margin-left:40px!important}.mx-sm-11{margin-right:44px!important;margin-left:44px!important}.mx-sm-12{margin-right:48px!important;margin-left:48px!important}.mx-sm-13{margin-right:52px!important;margin-left:52px!important}.mx-sm-14{margin-right:56px!important;margin-left:56px!important}.mx-sm-15{margin-right:60px!important;margin-left:60px!important}.mx-sm-16{margin-right:64px!important;margin-left:64px!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:4px!important;margin-bottom:4px!important}.my-sm-2{margin-top:8px!important;margin-bottom:8px!important}.my-sm-3{margin-top:12px!important;margin-bottom:12px!important}.my-sm-4{margin-top:16px!important;margin-bottom:16px!important}.my-sm-5{margin-top:20px!important;margin-bottom:20px!important}.my-sm-6{margin-top:24px!important;margin-bottom:24px!important}.my-sm-7{margin-top:28px!important;margin-bottom:28px!important}.my-sm-8{margin-top:32px!important;margin-bottom:32px!important}.my-sm-9{margin-top:36px!important;margin-bottom:36px!important}.my-sm-10{margin-top:40px!important;margin-bottom:40px!important}.my-sm-11{margin-top:44px!important;margin-bottom:44px!important}.my-sm-12{margin-top:48px!important;margin-bottom:48px!important}.my-sm-13{margin-top:52px!important;margin-bottom:52px!important}.my-sm-14{margin-top:56px!important;margin-bottom:56px!important}.my-sm-15{margin-top:60px!important;margin-bottom:60px!important}.my-sm-16{margin-top:64px!important;margin-bottom:64px!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:4px!important}.mt-sm-2{margin-top:8px!important}.mt-sm-3{margin-top:12px!important}.mt-sm-4{margin-top:16px!important}.mt-sm-5{margin-top:20px!important}.mt-sm-6{margin-top:24px!important}.mt-sm-7{margin-top:28px!important}.mt-sm-8{margin-top:32px!important}.mt-sm-9{margin-top:36px!important}.mt-sm-10{margin-top:40px!important}.mt-sm-11{margin-top:44px!important}.mt-sm-12{margin-top:48px!important}.mt-sm-13{margin-top:52px!important}.mt-sm-14{margin-top:56px!important}.mt-sm-15{margin-top:60px!important}.mt-sm-16{margin-top:64px!important}.mt-sm-auto{margin-top:auto!important}.mr-sm-0{margin-right:0!important}.mr-sm-1{margin-right:4px!important}.mr-sm-2{margin-right:8px!important}.mr-sm-3{margin-right:12px!important}.mr-sm-4{margin-right:16px!important}.mr-sm-5{margin-right:20px!important}.mr-sm-6{margin-right:24px!important}.mr-sm-7{margin-right:28px!important}.mr-sm-8{margin-right:32px!important}.mr-sm-9{margin-right:36px!important}.mr-sm-10{margin-right:40px!important}.mr-sm-11{margin-right:44px!important}.mr-sm-12{margin-right:48px!important}.mr-sm-13{margin-right:52px!important}.mr-sm-14{margin-right:56px!important}.mr-sm-15{margin-right:60px!important}.mr-sm-16{margin-right:64px!important}.mr-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:4px!important}.mb-sm-2{margin-bottom:8px!important}.mb-sm-3{margin-bottom:12px!important}.mb-sm-4{margin-bottom:16px!important}.mb-sm-5{margin-bottom:20px!important}.mb-sm-6{margin-bottom:24px!important}.mb-sm-7{margin-bottom:28px!important}.mb-sm-8{margin-bottom:32px!important}.mb-sm-9{margin-bottom:36px!important}.mb-sm-10{margin-bottom:40px!important}.mb-sm-11{margin-bottom:44px!important}.mb-sm-12{margin-bottom:48px!important}.mb-sm-13{margin-bottom:52px!important}.mb-sm-14{margin-bottom:56px!important}.mb-sm-15{margin-bottom:60px!important}.mb-sm-16{margin-bottom:64px!important}.mb-sm-auto{margin-bottom:auto!important}.ml-sm-0{margin-left:0!important}.ml-sm-1{margin-left:4px!important}.ml-sm-2{margin-left:8px!important}.ml-sm-3{margin-left:12px!important}.ml-sm-4{margin-left:16px!important}.ml-sm-5{margin-left:20px!important}.ml-sm-6{margin-left:24px!important}.ml-sm-7{margin-left:28px!important}.ml-sm-8{margin-left:32px!important}.ml-sm-9{margin-left:36px!important}.ml-sm-10{margin-left:40px!important}.ml-sm-11{margin-left:44px!important}.ml-sm-12{margin-left:48px!important}.ml-sm-13{margin-left:52px!important}.ml-sm-14{margin-left:56px!important}.ml-sm-15{margin-left:60px!important}.ml-sm-16{margin-left:64px!important}.ml-sm-auto{margin-left:auto!important}.ms-sm-0{margin-inline-start:0px!important}.ms-sm-1{margin-inline-start:4px!important}.ms-sm-2{margin-inline-start:8px!important}.ms-sm-3{margin-inline-start:12px!important}.ms-sm-4{margin-inline-start:16px!important}.ms-sm-5{margin-inline-start:20px!important}.ms-sm-6{margin-inline-start:24px!important}.ms-sm-7{margin-inline-start:28px!important}.ms-sm-8{margin-inline-start:32px!important}.ms-sm-9{margin-inline-start:36px!important}.ms-sm-10{margin-inline-start:40px!important}.ms-sm-11{margin-inline-start:44px!important}.ms-sm-12{margin-inline-start:48px!important}.ms-sm-13{margin-inline-start:52px!important}.ms-sm-14{margin-inline-start:56px!important}.ms-sm-15{margin-inline-start:60px!important}.ms-sm-16{margin-inline-start:64px!important}.ms-sm-auto{margin-inline-start:auto!important}.me-sm-0{margin-inline-end:0px!important}.me-sm-1{margin-inline-end:4px!important}.me-sm-2{margin-inline-end:8px!important}.me-sm-3{margin-inline-end:12px!important}.me-sm-4{margin-inline-end:16px!important}.me-sm-5{margin-inline-end:20px!important}.me-sm-6{margin-inline-end:24px!important}.me-sm-7{margin-inline-end:28px!important}.me-sm-8{margin-inline-end:32px!important}.me-sm-9{margin-inline-end:36px!important}.me-sm-10{margin-inline-end:40px!important}.me-sm-11{margin-inline-end:44px!important}.me-sm-12{margin-inline-end:48px!important}.me-sm-13{margin-inline-end:52px!important}.me-sm-14{margin-inline-end:56px!important}.me-sm-15{margin-inline-end:60px!important}.me-sm-16{margin-inline-end:64px!important}.me-sm-auto{margin-inline-end:auto!important}.ma-sm-n1{margin:-4px!important}.ma-sm-n2{margin:-8px!important}.ma-sm-n3{margin:-12px!important}.ma-sm-n4{margin:-16px!important}.ma-sm-n5{margin:-20px!important}.ma-sm-n6{margin:-24px!important}.ma-sm-n7{margin:-28px!important}.ma-sm-n8{margin:-32px!important}.ma-sm-n9{margin:-36px!important}.ma-sm-n10{margin:-40px!important}.ma-sm-n11{margin:-44px!important}.ma-sm-n12{margin:-48px!important}.ma-sm-n13{margin:-52px!important}.ma-sm-n14{margin:-56px!important}.ma-sm-n15{margin:-60px!important}.ma-sm-n16{margin:-64px!important}.mx-sm-n1{margin-right:-4px!important;margin-left:-4px!important}.mx-sm-n2{margin-right:-8px!important;margin-left:-8px!important}.mx-sm-n3{margin-right:-12px!important;margin-left:-12px!important}.mx-sm-n4{margin-right:-16px!important;margin-left:-16px!important}.mx-sm-n5{margin-right:-20px!important;margin-left:-20px!important}.mx-sm-n6{margin-right:-24px!important;margin-left:-24px!important}.mx-sm-n7{margin-right:-28px!important;margin-left:-28px!important}.mx-sm-n8{margin-right:-32px!important;margin-left:-32px!important}.mx-sm-n9{margin-right:-36px!important;margin-left:-36px!important}.mx-sm-n10{margin-right:-40px!important;margin-left:-40px!important}.mx-sm-n11{margin-right:-44px!important;margin-left:-44px!important}.mx-sm-n12{margin-right:-48px!important;margin-left:-48px!important}.mx-sm-n13{margin-right:-52px!important;margin-left:-52px!important}.mx-sm-n14{margin-right:-56px!important;margin-left:-56px!important}.mx-sm-n15{margin-right:-60px!important;margin-left:-60px!important}.mx-sm-n16{margin-right:-64px!important;margin-left:-64px!important}.my-sm-n1{margin-top:-4px!important;margin-bottom:-4px!important}.my-sm-n2{margin-top:-8px!important;margin-bottom:-8px!important}.my-sm-n3{margin-top:-12px!important;margin-bottom:-12px!important}.my-sm-n4{margin-top:-16px!important;margin-bottom:-16px!important}.my-sm-n5{margin-top:-20px!important;margin-bottom:-20px!important}.my-sm-n6{margin-top:-24px!important;margin-bottom:-24px!important}.my-sm-n7{margin-top:-28px!important;margin-bottom:-28px!important}.my-sm-n8{margin-top:-32px!important;margin-bottom:-32px!important}.my-sm-n9{margin-top:-36px!important;margin-bottom:-36px!important}.my-sm-n10{margin-top:-40px!important;margin-bottom:-40px!important}.my-sm-n11{margin-top:-44px!important;margin-bottom:-44px!important}.my-sm-n12{margin-top:-48px!important;margin-bottom:-48px!important}.my-sm-n13{margin-top:-52px!important;margin-bottom:-52px!important}.my-sm-n14{margin-top:-56px!important;margin-bottom:-56px!important}.my-sm-n15{margin-top:-60px!important;margin-bottom:-60px!important}.my-sm-n16{margin-top:-64px!important;margin-bottom:-64px!important}.mt-sm-n1{margin-top:-4px!important}.mt-sm-n2{margin-top:-8px!important}.mt-sm-n3{margin-top:-12px!important}.mt-sm-n4{margin-top:-16px!important}.mt-sm-n5{margin-top:-20px!important}.mt-sm-n6{margin-top:-24px!important}.mt-sm-n7{margin-top:-28px!important}.mt-sm-n8{margin-top:-32px!important}.mt-sm-n9{margin-top:-36px!important}.mt-sm-n10{margin-top:-40px!important}.mt-sm-n11{margin-top:-44px!important}.mt-sm-n12{margin-top:-48px!important}.mt-sm-n13{margin-top:-52px!important}.mt-sm-n14{margin-top:-56px!important}.mt-sm-n15{margin-top:-60px!important}.mt-sm-n16{margin-top:-64px!important}.mr-sm-n1{margin-right:-4px!important}.mr-sm-n2{margin-right:-8px!important}.mr-sm-n3{margin-right:-12px!important}.mr-sm-n4{margin-right:-16px!important}.mr-sm-n5{margin-right:-20px!important}.mr-sm-n6{margin-right:-24px!important}.mr-sm-n7{margin-right:-28px!important}.mr-sm-n8{margin-right:-32px!important}.mr-sm-n9{margin-right:-36px!important}.mr-sm-n10{margin-right:-40px!important}.mr-sm-n11{margin-right:-44px!important}.mr-sm-n12{margin-right:-48px!important}.mr-sm-n13{margin-right:-52px!important}.mr-sm-n14{margin-right:-56px!important}.mr-sm-n15{margin-right:-60px!important}.mr-sm-n16{margin-right:-64px!important}.mb-sm-n1{margin-bottom:-4px!important}.mb-sm-n2{margin-bottom:-8px!important}.mb-sm-n3{margin-bottom:-12px!important}.mb-sm-n4{margin-bottom:-16px!important}.mb-sm-n5{margin-bottom:-20px!important}.mb-sm-n6{margin-bottom:-24px!important}.mb-sm-n7{margin-bottom:-28px!important}.mb-sm-n8{margin-bottom:-32px!important}.mb-sm-n9{margin-bottom:-36px!important}.mb-sm-n10{margin-bottom:-40px!important}.mb-sm-n11{margin-bottom:-44px!important}.mb-sm-n12{margin-bottom:-48px!important}.mb-sm-n13{margin-bottom:-52px!important}.mb-sm-n14{margin-bottom:-56px!important}.mb-sm-n15{margin-bottom:-60px!important}.mb-sm-n16{margin-bottom:-64px!important}.ml-sm-n1{margin-left:-4px!important}.ml-sm-n2{margin-left:-8px!important}.ml-sm-n3{margin-left:-12px!important}.ml-sm-n4{margin-left:-16px!important}.ml-sm-n5{margin-left:-20px!important}.ml-sm-n6{margin-left:-24px!important}.ml-sm-n7{margin-left:-28px!important}.ml-sm-n8{margin-left:-32px!important}.ml-sm-n9{margin-left:-36px!important}.ml-sm-n10{margin-left:-40px!important}.ml-sm-n11{margin-left:-44px!important}.ml-sm-n12{margin-left:-48px!important}.ml-sm-n13{margin-left:-52px!important}.ml-sm-n14{margin-left:-56px!important}.ml-sm-n15{margin-left:-60px!important}.ml-sm-n16{margin-left:-64px!important}.ms-sm-n1{margin-inline-start:-4px!important}.ms-sm-n2{margin-inline-start:-8px!important}.ms-sm-n3{margin-inline-start:-12px!important}.ms-sm-n4{margin-inline-start:-16px!important}.ms-sm-n5{margin-inline-start:-20px!important}.ms-sm-n6{margin-inline-start:-24px!important}.ms-sm-n7{margin-inline-start:-28px!important}.ms-sm-n8{margin-inline-start:-32px!important}.ms-sm-n9{margin-inline-start:-36px!important}.ms-sm-n10{margin-inline-start:-40px!important}.ms-sm-n11{margin-inline-start:-44px!important}.ms-sm-n12{margin-inline-start:-48px!important}.ms-sm-n13{margin-inline-start:-52px!important}.ms-sm-n14{margin-inline-start:-56px!important}.ms-sm-n15{margin-inline-start:-60px!important}.ms-sm-n16{margin-inline-start:-64px!important}.me-sm-n1{margin-inline-end:-4px!important}.me-sm-n2{margin-inline-end:-8px!important}.me-sm-n3{margin-inline-end:-12px!important}.me-sm-n4{margin-inline-end:-16px!important}.me-sm-n5{margin-inline-end:-20px!important}.me-sm-n6{margin-inline-end:-24px!important}.me-sm-n7{margin-inline-end:-28px!important}.me-sm-n8{margin-inline-end:-32px!important}.me-sm-n9{margin-inline-end:-36px!important}.me-sm-n10{margin-inline-end:-40px!important}.me-sm-n11{margin-inline-end:-44px!important}.me-sm-n12{margin-inline-end:-48px!important}.me-sm-n13{margin-inline-end:-52px!important}.me-sm-n14{margin-inline-end:-56px!important}.me-sm-n15{margin-inline-end:-60px!important}.me-sm-n16{margin-inline-end:-64px!important}.pa-sm-0{padding:0!important}.pa-sm-1{padding:4px!important}.pa-sm-2{padding:8px!important}.pa-sm-3{padding:12px!important}.pa-sm-4{padding:16px!important}.pa-sm-5{padding:20px!important}.pa-sm-6{padding:24px!important}.pa-sm-7{padding:28px!important}.pa-sm-8{padding:32px!important}.pa-sm-9{padding:36px!important}.pa-sm-10{padding:40px!important}.pa-sm-11{padding:44px!important}.pa-sm-12{padding:48px!important}.pa-sm-13{padding:52px!important}.pa-sm-14{padding:56px!important}.pa-sm-15{padding:60px!important}.pa-sm-16{padding:64px!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:4px!important;padding-left:4px!important}.px-sm-2{padding-right:8px!important;padding-left:8px!important}.px-sm-3{padding-right:12px!important;padding-left:12px!important}.px-sm-4{padding-right:16px!important;padding-left:16px!important}.px-sm-5{padding-right:20px!important;padding-left:20px!important}.px-sm-6{padding-right:24px!important;padding-left:24px!important}.px-sm-7{padding-right:28px!important;padding-left:28px!important}.px-sm-8{padding-right:32px!important;padding-left:32px!important}.px-sm-9{padding-right:36px!important;padding-left:36px!important}.px-sm-10{padding-right:40px!important;padding-left:40px!important}.px-sm-11{padding-right:44px!important;padding-left:44px!important}.px-sm-12{padding-right:48px!important;padding-left:48px!important}.px-sm-13{padding-right:52px!important;padding-left:52px!important}.px-sm-14{padding-right:56px!important;padding-left:56px!important}.px-sm-15{padding-right:60px!important;padding-left:60px!important}.px-sm-16{padding-right:64px!important;padding-left:64px!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:4px!important;padding-bottom:4px!important}.py-sm-2{padding-top:8px!important;padding-bottom:8px!important}.py-sm-3{padding-top:12px!important;padding-bottom:12px!important}.py-sm-4{padding-top:16px!important;padding-bottom:16px!important}.py-sm-5{padding-top:20px!important;padding-bottom:20px!important}.py-sm-6{padding-top:24px!important;padding-bottom:24px!important}.py-sm-7{padding-top:28px!important;padding-bottom:28px!important}.py-sm-8{padding-top:32px!important;padding-bottom:32px!important}.py-sm-9{padding-top:36px!important;padding-bottom:36px!important}.py-sm-10{padding-top:40px!important;padding-bottom:40px!important}.py-sm-11{padding-top:44px!important;padding-bottom:44px!important}.py-sm-12{padding-top:48px!important;padding-bottom:48px!important}.py-sm-13{padding-top:52px!important;padding-bottom:52px!important}.py-sm-14{padding-top:56px!important;padding-bottom:56px!important}.py-sm-15{padding-top:60px!important;padding-bottom:60px!important}.py-sm-16{padding-top:64px!important;padding-bottom:64px!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:4px!important}.pt-sm-2{padding-top:8px!important}.pt-sm-3{padding-top:12px!important}.pt-sm-4{padding-top:16px!important}.pt-sm-5{padding-top:20px!important}.pt-sm-6{padding-top:24px!important}.pt-sm-7{padding-top:28px!important}.pt-sm-8{padding-top:32px!important}.pt-sm-9{padding-top:36px!important}.pt-sm-10{padding-top:40px!important}.pt-sm-11{padding-top:44px!important}.pt-sm-12{padding-top:48px!important}.pt-sm-13{padding-top:52px!important}.pt-sm-14{padding-top:56px!important}.pt-sm-15{padding-top:60px!important}.pt-sm-16{padding-top:64px!important}.pr-sm-0{padding-right:0!important}.pr-sm-1{padding-right:4px!important}.pr-sm-2{padding-right:8px!important}.pr-sm-3{padding-right:12px!important}.pr-sm-4{padding-right:16px!important}.pr-sm-5{padding-right:20px!important}.pr-sm-6{padding-right:24px!important}.pr-sm-7{padding-right:28px!important}.pr-sm-8{padding-right:32px!important}.pr-sm-9{padding-right:36px!important}.pr-sm-10{padding-right:40px!important}.pr-sm-11{padding-right:44px!important}.pr-sm-12{padding-right:48px!important}.pr-sm-13{padding-right:52px!important}.pr-sm-14{padding-right:56px!important}.pr-sm-15{padding-right:60px!important}.pr-sm-16{padding-right:64px!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:4px!important}.pb-sm-2{padding-bottom:8px!important}.pb-sm-3{padding-bottom:12px!important}.pb-sm-4{padding-bottom:16px!important}.pb-sm-5{padding-bottom:20px!important}.pb-sm-6{padding-bottom:24px!important}.pb-sm-7{padding-bottom:28px!important}.pb-sm-8{padding-bottom:32px!important}.pb-sm-9{padding-bottom:36px!important}.pb-sm-10{padding-bottom:40px!important}.pb-sm-11{padding-bottom:44px!important}.pb-sm-12{padding-bottom:48px!important}.pb-sm-13{padding-bottom:52px!important}.pb-sm-14{padding-bottom:56px!important}.pb-sm-15{padding-bottom:60px!important}.pb-sm-16{padding-bottom:64px!important}.pl-sm-0{padding-left:0!important}.pl-sm-1{padding-left:4px!important}.pl-sm-2{padding-left:8px!important}.pl-sm-3{padding-left:12px!important}.pl-sm-4{padding-left:16px!important}.pl-sm-5{padding-left:20px!important}.pl-sm-6{padding-left:24px!important}.pl-sm-7{padding-left:28px!important}.pl-sm-8{padding-left:32px!important}.pl-sm-9{padding-left:36px!important}.pl-sm-10{padding-left:40px!important}.pl-sm-11{padding-left:44px!important}.pl-sm-12{padding-left:48px!important}.pl-sm-13{padding-left:52px!important}.pl-sm-14{padding-left:56px!important}.pl-sm-15{padding-left:60px!important}.pl-sm-16{padding-left:64px!important}.ps-sm-0{padding-inline-start:0px!important}.ps-sm-1{padding-inline-start:4px!important}.ps-sm-2{padding-inline-start:8px!important}.ps-sm-3{padding-inline-start:12px!important}.ps-sm-4{padding-inline-start:16px!important}.ps-sm-5{padding-inline-start:20px!important}.ps-sm-6{padding-inline-start:24px!important}.ps-sm-7{padding-inline-start:28px!important}.ps-sm-8{padding-inline-start:32px!important}.ps-sm-9{padding-inline-start:36px!important}.ps-sm-10{padding-inline-start:40px!important}.ps-sm-11{padding-inline-start:44px!important}.ps-sm-12{padding-inline-start:48px!important}.ps-sm-13{padding-inline-start:52px!important}.ps-sm-14{padding-inline-start:56px!important}.ps-sm-15{padding-inline-start:60px!important}.ps-sm-16{padding-inline-start:64px!important}.pe-sm-0{padding-inline-end:0px!important}.pe-sm-1{padding-inline-end:4px!important}.pe-sm-2{padding-inline-end:8px!important}.pe-sm-3{padding-inline-end:12px!important}.pe-sm-4{padding-inline-end:16px!important}.pe-sm-5{padding-inline-end:20px!important}.pe-sm-6{padding-inline-end:24px!important}.pe-sm-7{padding-inline-end:28px!important}.pe-sm-8{padding-inline-end:32px!important}.pe-sm-9{padding-inline-end:36px!important}.pe-sm-10{padding-inline-end:40px!important}.pe-sm-11{padding-inline-end:44px!important}.pe-sm-12{padding-inline-end:48px!important}.pe-sm-13{padding-inline-end:52px!important}.pe-sm-14{padding-inline-end:56px!important}.pe-sm-15{padding-inline-end:60px!important}.pe-sm-16{padding-inline-end:64px!important}.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}.text-sm-justify{text-align:justify!important}.text-sm-start{text-align:start!important}.text-sm-end{text-align:end!important}.text-sm-h1{font-size:6rem!important;font-weight:300;line-height:1;letter-spacing:-.015625em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-sm-h2{font-size:3.75rem!important;font-weight:300;line-height:1;letter-spacing:-.0083333333em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-sm-h3{font-size:3rem!important;font-weight:400;line-height:1.05;letter-spacing:normal!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-sm-h4{font-size:2.125rem!important;font-weight:400;line-height:1.175;letter-spacing:.0073529412em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-sm-h5{font-size:1.5rem!important;font-weight:400;line-height:1.333;letter-spacing:normal!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-sm-h6{font-size:1.25rem!important;font-weight:500;line-height:1.6;letter-spacing:.0125em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-sm-subtitle-1{font-size:1rem!important;font-weight:400;line-height:1.75;letter-spacing:.009375em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-sm-subtitle-2{font-size:.875rem!important;font-weight:500;line-height:1.6;letter-spacing:.0071428571em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-sm-body-1{font-size:1rem!important;font-weight:400;line-height:1.5;letter-spacing:.03125em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-sm-body-2{font-size:.875rem!important;font-weight:400;line-height:1.425;letter-spacing:.0178571429em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-sm-button{font-size:.875rem!important;font-weight:500;line-height:2.6;letter-spacing:.0892857143em!important;font-family:Roboto,sans-serif;text-transform:uppercase!important}.text-sm-caption{font-size:.75rem!important;font-weight:400;line-height:1.667;letter-spacing:.0333333333em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-sm-overline{font-size:.75rem!important;font-weight:500;line-height:2.667;letter-spacing:.1666666667em!important;font-family:Roboto,sans-serif;text-transform:uppercase!important}.h-sm-auto{height:auto!important}.h-sm-screen{height:100vh!important}.h-sm-0{height:0!important}.h-sm-25{height:25%!important}.h-sm-50{height:50%!important}.h-sm-75{height:75%!important}.h-sm-100{height:100%!important}.w-sm-auto{width:auto!important}.w-sm-0{width:0!important}.w-sm-25{width:25%!important}.w-sm-33{width:33%!important}.w-sm-50{width:50%!important}.w-sm-66{width:66%!important}.w-sm-75{width:75%!important}.w-sm-100{width:100%!important}}@media (min-width: 960px){.d-md-none{display:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.float-md-none{float:none!important}.float-md-left{float:left!important}.float-md-right{float:right!important}.v-locale--is-rtl .float-md-end{float:left!important}.v-locale--is-rtl .float-md-start,.v-locale--is-ltr .float-md-end{float:right!important}.v-locale--is-ltr .float-md-start{float:left!important}.flex-md-fill,.flex-md-1-1{flex:1 1 auto!important}.flex-md-1-0{flex:1 0 auto!important}.flex-md-0-1{flex:0 1 auto!important}.flex-md-0-0{flex:0 0 auto!important}.flex-md-1-1-100{flex:1 1 100%!important}.flex-md-1-0-100{flex:1 0 100%!important}.flex-md-0-1-100{flex:0 1 100%!important}.flex-md-0-0-100{flex:0 0 100%!important}.flex-md-1-1-0{flex:1 1 0!important}.flex-md-1-0-0{flex:1 0 0!important}.flex-md-0-1-0{flex:0 1 0!important}.flex-md-0-0-0{flex:0 0 0!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-md-start{justify-content:flex-start!important}.justify-md-end{justify-content:flex-end!important}.justify-md-center{justify-content:center!important}.justify-md-space-between{justify-content:space-between!important}.justify-md-space-around{justify-content:space-around!important}.justify-md-space-evenly{justify-content:space-evenly!important}.align-md-start{align-items:flex-start!important}.align-md-end{align-items:flex-end!important}.align-md-center{align-items:center!important}.align-md-baseline{align-items:baseline!important}.align-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-space-between{align-content:space-between!important}.align-content-md-space-around{align-content:space-around!important}.align-content-md-space-evenly{align-content:space-evenly!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-6{order:6!important}.order-md-7{order:7!important}.order-md-8{order:8!important}.order-md-9{order:9!important}.order-md-10{order:10!important}.order-md-11{order:11!important}.order-md-12{order:12!important}.order-md-last{order:13!important}.ga-md-0{gap:0px!important}.ga-md-1{gap:4px!important}.ga-md-2{gap:8px!important}.ga-md-3{gap:12px!important}.ga-md-4{gap:16px!important}.ga-md-5{gap:20px!important}.ga-md-6{gap:24px!important}.ga-md-7{gap:28px!important}.ga-md-8{gap:32px!important}.ga-md-9{gap:36px!important}.ga-md-10{gap:40px!important}.ga-md-11{gap:44px!important}.ga-md-12{gap:48px!important}.ga-md-13{gap:52px!important}.ga-md-14{gap:56px!important}.ga-md-15{gap:60px!important}.ga-md-16{gap:64px!important}.ga-md-auto{gap:auto!important}.gr-md-0{row-gap:0px!important}.gr-md-1{row-gap:4px!important}.gr-md-2{row-gap:8px!important}.gr-md-3{row-gap:12px!important}.gr-md-4{row-gap:16px!important}.gr-md-5{row-gap:20px!important}.gr-md-6{row-gap:24px!important}.gr-md-7{row-gap:28px!important}.gr-md-8{row-gap:32px!important}.gr-md-9{row-gap:36px!important}.gr-md-10{row-gap:40px!important}.gr-md-11{row-gap:44px!important}.gr-md-12{row-gap:48px!important}.gr-md-13{row-gap:52px!important}.gr-md-14{row-gap:56px!important}.gr-md-15{row-gap:60px!important}.gr-md-16{row-gap:64px!important}.gr-md-auto{row-gap:auto!important}.gc-md-0{column-gap:0px!important}.gc-md-1{column-gap:4px!important}.gc-md-2{column-gap:8px!important}.gc-md-3{column-gap:12px!important}.gc-md-4{column-gap:16px!important}.gc-md-5{column-gap:20px!important}.gc-md-6{column-gap:24px!important}.gc-md-7{column-gap:28px!important}.gc-md-8{column-gap:32px!important}.gc-md-9{column-gap:36px!important}.gc-md-10{column-gap:40px!important}.gc-md-11{column-gap:44px!important}.gc-md-12{column-gap:48px!important}.gc-md-13{column-gap:52px!important}.gc-md-14{column-gap:56px!important}.gc-md-15{column-gap:60px!important}.gc-md-16{column-gap:64px!important}.gc-md-auto{column-gap:auto!important}.ma-md-0{margin:0!important}.ma-md-1{margin:4px!important}.ma-md-2{margin:8px!important}.ma-md-3{margin:12px!important}.ma-md-4{margin:16px!important}.ma-md-5{margin:20px!important}.ma-md-6{margin:24px!important}.ma-md-7{margin:28px!important}.ma-md-8{margin:32px!important}.ma-md-9{margin:36px!important}.ma-md-10{margin:40px!important}.ma-md-11{margin:44px!important}.ma-md-12{margin:48px!important}.ma-md-13{margin:52px!important}.ma-md-14{margin:56px!important}.ma-md-15{margin:60px!important}.ma-md-16{margin:64px!important}.ma-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:4px!important;margin-left:4px!important}.mx-md-2{margin-right:8px!important;margin-left:8px!important}.mx-md-3{margin-right:12px!important;margin-left:12px!important}.mx-md-4{margin-right:16px!important;margin-left:16px!important}.mx-md-5{margin-right:20px!important;margin-left:20px!important}.mx-md-6{margin-right:24px!important;margin-left:24px!important}.mx-md-7{margin-right:28px!important;margin-left:28px!important}.mx-md-8{margin-right:32px!important;margin-left:32px!important}.mx-md-9{margin-right:36px!important;margin-left:36px!important}.mx-md-10{margin-right:40px!important;margin-left:40px!important}.mx-md-11{margin-right:44px!important;margin-left:44px!important}.mx-md-12{margin-right:48px!important;margin-left:48px!important}.mx-md-13{margin-right:52px!important;margin-left:52px!important}.mx-md-14{margin-right:56px!important;margin-left:56px!important}.mx-md-15{margin-right:60px!important;margin-left:60px!important}.mx-md-16{margin-right:64px!important;margin-left:64px!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:4px!important;margin-bottom:4px!important}.my-md-2{margin-top:8px!important;margin-bottom:8px!important}.my-md-3{margin-top:12px!important;margin-bottom:12px!important}.my-md-4{margin-top:16px!important;margin-bottom:16px!important}.my-md-5{margin-top:20px!important;margin-bottom:20px!important}.my-md-6{margin-top:24px!important;margin-bottom:24px!important}.my-md-7{margin-top:28px!important;margin-bottom:28px!important}.my-md-8{margin-top:32px!important;margin-bottom:32px!important}.my-md-9{margin-top:36px!important;margin-bottom:36px!important}.my-md-10{margin-top:40px!important;margin-bottom:40px!important}.my-md-11{margin-top:44px!important;margin-bottom:44px!important}.my-md-12{margin-top:48px!important;margin-bottom:48px!important}.my-md-13{margin-top:52px!important;margin-bottom:52px!important}.my-md-14{margin-top:56px!important;margin-bottom:56px!important}.my-md-15{margin-top:60px!important;margin-bottom:60px!important}.my-md-16{margin-top:64px!important;margin-bottom:64px!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:4px!important}.mt-md-2{margin-top:8px!important}.mt-md-3{margin-top:12px!important}.mt-md-4{margin-top:16px!important}.mt-md-5{margin-top:20px!important}.mt-md-6{margin-top:24px!important}.mt-md-7{margin-top:28px!important}.mt-md-8{margin-top:32px!important}.mt-md-9{margin-top:36px!important}.mt-md-10{margin-top:40px!important}.mt-md-11{margin-top:44px!important}.mt-md-12{margin-top:48px!important}.mt-md-13{margin-top:52px!important}.mt-md-14{margin-top:56px!important}.mt-md-15{margin-top:60px!important}.mt-md-16{margin-top:64px!important}.mt-md-auto{margin-top:auto!important}.mr-md-0{margin-right:0!important}.mr-md-1{margin-right:4px!important}.mr-md-2{margin-right:8px!important}.mr-md-3{margin-right:12px!important}.mr-md-4{margin-right:16px!important}.mr-md-5{margin-right:20px!important}.mr-md-6{margin-right:24px!important}.mr-md-7{margin-right:28px!important}.mr-md-8{margin-right:32px!important}.mr-md-9{margin-right:36px!important}.mr-md-10{margin-right:40px!important}.mr-md-11{margin-right:44px!important}.mr-md-12{margin-right:48px!important}.mr-md-13{margin-right:52px!important}.mr-md-14{margin-right:56px!important}.mr-md-15{margin-right:60px!important}.mr-md-16{margin-right:64px!important}.mr-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:4px!important}.mb-md-2{margin-bottom:8px!important}.mb-md-3{margin-bottom:12px!important}.mb-md-4{margin-bottom:16px!important}.mb-md-5{margin-bottom:20px!important}.mb-md-6{margin-bottom:24px!important}.mb-md-7{margin-bottom:28px!important}.mb-md-8{margin-bottom:32px!important}.mb-md-9{margin-bottom:36px!important}.mb-md-10{margin-bottom:40px!important}.mb-md-11{margin-bottom:44px!important}.mb-md-12{margin-bottom:48px!important}.mb-md-13{margin-bottom:52px!important}.mb-md-14{margin-bottom:56px!important}.mb-md-15{margin-bottom:60px!important}.mb-md-16{margin-bottom:64px!important}.mb-md-auto{margin-bottom:auto!important}.ml-md-0{margin-left:0!important}.ml-md-1{margin-left:4px!important}.ml-md-2{margin-left:8px!important}.ml-md-3{margin-left:12px!important}.ml-md-4{margin-left:16px!important}.ml-md-5{margin-left:20px!important}.ml-md-6{margin-left:24px!important}.ml-md-7{margin-left:28px!important}.ml-md-8{margin-left:32px!important}.ml-md-9{margin-left:36px!important}.ml-md-10{margin-left:40px!important}.ml-md-11{margin-left:44px!important}.ml-md-12{margin-left:48px!important}.ml-md-13{margin-left:52px!important}.ml-md-14{margin-left:56px!important}.ml-md-15{margin-left:60px!important}.ml-md-16{margin-left:64px!important}.ml-md-auto{margin-left:auto!important}.ms-md-0{margin-inline-start:0px!important}.ms-md-1{margin-inline-start:4px!important}.ms-md-2{margin-inline-start:8px!important}.ms-md-3{margin-inline-start:12px!important}.ms-md-4{margin-inline-start:16px!important}.ms-md-5{margin-inline-start:20px!important}.ms-md-6{margin-inline-start:24px!important}.ms-md-7{margin-inline-start:28px!important}.ms-md-8{margin-inline-start:32px!important}.ms-md-9{margin-inline-start:36px!important}.ms-md-10{margin-inline-start:40px!important}.ms-md-11{margin-inline-start:44px!important}.ms-md-12{margin-inline-start:48px!important}.ms-md-13{margin-inline-start:52px!important}.ms-md-14{margin-inline-start:56px!important}.ms-md-15{margin-inline-start:60px!important}.ms-md-16{margin-inline-start:64px!important}.ms-md-auto{margin-inline-start:auto!important}.me-md-0{margin-inline-end:0px!important}.me-md-1{margin-inline-end:4px!important}.me-md-2{margin-inline-end:8px!important}.me-md-3{margin-inline-end:12px!important}.me-md-4{margin-inline-end:16px!important}.me-md-5{margin-inline-end:20px!important}.me-md-6{margin-inline-end:24px!important}.me-md-7{margin-inline-end:28px!important}.me-md-8{margin-inline-end:32px!important}.me-md-9{margin-inline-end:36px!important}.me-md-10{margin-inline-end:40px!important}.me-md-11{margin-inline-end:44px!important}.me-md-12{margin-inline-end:48px!important}.me-md-13{margin-inline-end:52px!important}.me-md-14{margin-inline-end:56px!important}.me-md-15{margin-inline-end:60px!important}.me-md-16{margin-inline-end:64px!important}.me-md-auto{margin-inline-end:auto!important}.ma-md-n1{margin:-4px!important}.ma-md-n2{margin:-8px!important}.ma-md-n3{margin:-12px!important}.ma-md-n4{margin:-16px!important}.ma-md-n5{margin:-20px!important}.ma-md-n6{margin:-24px!important}.ma-md-n7{margin:-28px!important}.ma-md-n8{margin:-32px!important}.ma-md-n9{margin:-36px!important}.ma-md-n10{margin:-40px!important}.ma-md-n11{margin:-44px!important}.ma-md-n12{margin:-48px!important}.ma-md-n13{margin:-52px!important}.ma-md-n14{margin:-56px!important}.ma-md-n15{margin:-60px!important}.ma-md-n16{margin:-64px!important}.mx-md-n1{margin-right:-4px!important;margin-left:-4px!important}.mx-md-n2{margin-right:-8px!important;margin-left:-8px!important}.mx-md-n3{margin-right:-12px!important;margin-left:-12px!important}.mx-md-n4{margin-right:-16px!important;margin-left:-16px!important}.mx-md-n5{margin-right:-20px!important;margin-left:-20px!important}.mx-md-n6{margin-right:-24px!important;margin-left:-24px!important}.mx-md-n7{margin-right:-28px!important;margin-left:-28px!important}.mx-md-n8{margin-right:-32px!important;margin-left:-32px!important}.mx-md-n9{margin-right:-36px!important;margin-left:-36px!important}.mx-md-n10{margin-right:-40px!important;margin-left:-40px!important}.mx-md-n11{margin-right:-44px!important;margin-left:-44px!important}.mx-md-n12{margin-right:-48px!important;margin-left:-48px!important}.mx-md-n13{margin-right:-52px!important;margin-left:-52px!important}.mx-md-n14{margin-right:-56px!important;margin-left:-56px!important}.mx-md-n15{margin-right:-60px!important;margin-left:-60px!important}.mx-md-n16{margin-right:-64px!important;margin-left:-64px!important}.my-md-n1{margin-top:-4px!important;margin-bottom:-4px!important}.my-md-n2{margin-top:-8px!important;margin-bottom:-8px!important}.my-md-n3{margin-top:-12px!important;margin-bottom:-12px!important}.my-md-n4{margin-top:-16px!important;margin-bottom:-16px!important}.my-md-n5{margin-top:-20px!important;margin-bottom:-20px!important}.my-md-n6{margin-top:-24px!important;margin-bottom:-24px!important}.my-md-n7{margin-top:-28px!important;margin-bottom:-28px!important}.my-md-n8{margin-top:-32px!important;margin-bottom:-32px!important}.my-md-n9{margin-top:-36px!important;margin-bottom:-36px!important}.my-md-n10{margin-top:-40px!important;margin-bottom:-40px!important}.my-md-n11{margin-top:-44px!important;margin-bottom:-44px!important}.my-md-n12{margin-top:-48px!important;margin-bottom:-48px!important}.my-md-n13{margin-top:-52px!important;margin-bottom:-52px!important}.my-md-n14{margin-top:-56px!important;margin-bottom:-56px!important}.my-md-n15{margin-top:-60px!important;margin-bottom:-60px!important}.my-md-n16{margin-top:-64px!important;margin-bottom:-64px!important}.mt-md-n1{margin-top:-4px!important}.mt-md-n2{margin-top:-8px!important}.mt-md-n3{margin-top:-12px!important}.mt-md-n4{margin-top:-16px!important}.mt-md-n5{margin-top:-20px!important}.mt-md-n6{margin-top:-24px!important}.mt-md-n7{margin-top:-28px!important}.mt-md-n8{margin-top:-32px!important}.mt-md-n9{margin-top:-36px!important}.mt-md-n10{margin-top:-40px!important}.mt-md-n11{margin-top:-44px!important}.mt-md-n12{margin-top:-48px!important}.mt-md-n13{margin-top:-52px!important}.mt-md-n14{margin-top:-56px!important}.mt-md-n15{margin-top:-60px!important}.mt-md-n16{margin-top:-64px!important}.mr-md-n1{margin-right:-4px!important}.mr-md-n2{margin-right:-8px!important}.mr-md-n3{margin-right:-12px!important}.mr-md-n4{margin-right:-16px!important}.mr-md-n5{margin-right:-20px!important}.mr-md-n6{margin-right:-24px!important}.mr-md-n7{margin-right:-28px!important}.mr-md-n8{margin-right:-32px!important}.mr-md-n9{margin-right:-36px!important}.mr-md-n10{margin-right:-40px!important}.mr-md-n11{margin-right:-44px!important}.mr-md-n12{margin-right:-48px!important}.mr-md-n13{margin-right:-52px!important}.mr-md-n14{margin-right:-56px!important}.mr-md-n15{margin-right:-60px!important}.mr-md-n16{margin-right:-64px!important}.mb-md-n1{margin-bottom:-4px!important}.mb-md-n2{margin-bottom:-8px!important}.mb-md-n3{margin-bottom:-12px!important}.mb-md-n4{margin-bottom:-16px!important}.mb-md-n5{margin-bottom:-20px!important}.mb-md-n6{margin-bottom:-24px!important}.mb-md-n7{margin-bottom:-28px!important}.mb-md-n8{margin-bottom:-32px!important}.mb-md-n9{margin-bottom:-36px!important}.mb-md-n10{margin-bottom:-40px!important}.mb-md-n11{margin-bottom:-44px!important}.mb-md-n12{margin-bottom:-48px!important}.mb-md-n13{margin-bottom:-52px!important}.mb-md-n14{margin-bottom:-56px!important}.mb-md-n15{margin-bottom:-60px!important}.mb-md-n16{margin-bottom:-64px!important}.ml-md-n1{margin-left:-4px!important}.ml-md-n2{margin-left:-8px!important}.ml-md-n3{margin-left:-12px!important}.ml-md-n4{margin-left:-16px!important}.ml-md-n5{margin-left:-20px!important}.ml-md-n6{margin-left:-24px!important}.ml-md-n7{margin-left:-28px!important}.ml-md-n8{margin-left:-32px!important}.ml-md-n9{margin-left:-36px!important}.ml-md-n10{margin-left:-40px!important}.ml-md-n11{margin-left:-44px!important}.ml-md-n12{margin-left:-48px!important}.ml-md-n13{margin-left:-52px!important}.ml-md-n14{margin-left:-56px!important}.ml-md-n15{margin-left:-60px!important}.ml-md-n16{margin-left:-64px!important}.ms-md-n1{margin-inline-start:-4px!important}.ms-md-n2{margin-inline-start:-8px!important}.ms-md-n3{margin-inline-start:-12px!important}.ms-md-n4{margin-inline-start:-16px!important}.ms-md-n5{margin-inline-start:-20px!important}.ms-md-n6{margin-inline-start:-24px!important}.ms-md-n7{margin-inline-start:-28px!important}.ms-md-n8{margin-inline-start:-32px!important}.ms-md-n9{margin-inline-start:-36px!important}.ms-md-n10{margin-inline-start:-40px!important}.ms-md-n11{margin-inline-start:-44px!important}.ms-md-n12{margin-inline-start:-48px!important}.ms-md-n13{margin-inline-start:-52px!important}.ms-md-n14{margin-inline-start:-56px!important}.ms-md-n15{margin-inline-start:-60px!important}.ms-md-n16{margin-inline-start:-64px!important}.me-md-n1{margin-inline-end:-4px!important}.me-md-n2{margin-inline-end:-8px!important}.me-md-n3{margin-inline-end:-12px!important}.me-md-n4{margin-inline-end:-16px!important}.me-md-n5{margin-inline-end:-20px!important}.me-md-n6{margin-inline-end:-24px!important}.me-md-n7{margin-inline-end:-28px!important}.me-md-n8{margin-inline-end:-32px!important}.me-md-n9{margin-inline-end:-36px!important}.me-md-n10{margin-inline-end:-40px!important}.me-md-n11{margin-inline-end:-44px!important}.me-md-n12{margin-inline-end:-48px!important}.me-md-n13{margin-inline-end:-52px!important}.me-md-n14{margin-inline-end:-56px!important}.me-md-n15{margin-inline-end:-60px!important}.me-md-n16{margin-inline-end:-64px!important}.pa-md-0{padding:0!important}.pa-md-1{padding:4px!important}.pa-md-2{padding:8px!important}.pa-md-3{padding:12px!important}.pa-md-4{padding:16px!important}.pa-md-5{padding:20px!important}.pa-md-6{padding:24px!important}.pa-md-7{padding:28px!important}.pa-md-8{padding:32px!important}.pa-md-9{padding:36px!important}.pa-md-10{padding:40px!important}.pa-md-11{padding:44px!important}.pa-md-12{padding:48px!important}.pa-md-13{padding:52px!important}.pa-md-14{padding:56px!important}.pa-md-15{padding:60px!important}.pa-md-16{padding:64px!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:4px!important;padding-left:4px!important}.px-md-2{padding-right:8px!important;padding-left:8px!important}.px-md-3{padding-right:12px!important;padding-left:12px!important}.px-md-4{padding-right:16px!important;padding-left:16px!important}.px-md-5{padding-right:20px!important;padding-left:20px!important}.px-md-6{padding-right:24px!important;padding-left:24px!important}.px-md-7{padding-right:28px!important;padding-left:28px!important}.px-md-8{padding-right:32px!important;padding-left:32px!important}.px-md-9{padding-right:36px!important;padding-left:36px!important}.px-md-10{padding-right:40px!important;padding-left:40px!important}.px-md-11{padding-right:44px!important;padding-left:44px!important}.px-md-12{padding-right:48px!important;padding-left:48px!important}.px-md-13{padding-right:52px!important;padding-left:52px!important}.px-md-14{padding-right:56px!important;padding-left:56px!important}.px-md-15{padding-right:60px!important;padding-left:60px!important}.px-md-16{padding-right:64px!important;padding-left:64px!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:4px!important;padding-bottom:4px!important}.py-md-2{padding-top:8px!important;padding-bottom:8px!important}.py-md-3{padding-top:12px!important;padding-bottom:12px!important}.py-md-4{padding-top:16px!important;padding-bottom:16px!important}.py-md-5{padding-top:20px!important;padding-bottom:20px!important}.py-md-6{padding-top:24px!important;padding-bottom:24px!important}.py-md-7{padding-top:28px!important;padding-bottom:28px!important}.py-md-8{padding-top:32px!important;padding-bottom:32px!important}.py-md-9{padding-top:36px!important;padding-bottom:36px!important}.py-md-10{padding-top:40px!important;padding-bottom:40px!important}.py-md-11{padding-top:44px!important;padding-bottom:44px!important}.py-md-12{padding-top:48px!important;padding-bottom:48px!important}.py-md-13{padding-top:52px!important;padding-bottom:52px!important}.py-md-14{padding-top:56px!important;padding-bottom:56px!important}.py-md-15{padding-top:60px!important;padding-bottom:60px!important}.py-md-16{padding-top:64px!important;padding-bottom:64px!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:4px!important}.pt-md-2{padding-top:8px!important}.pt-md-3{padding-top:12px!important}.pt-md-4{padding-top:16px!important}.pt-md-5{padding-top:20px!important}.pt-md-6{padding-top:24px!important}.pt-md-7{padding-top:28px!important}.pt-md-8{padding-top:32px!important}.pt-md-9{padding-top:36px!important}.pt-md-10{padding-top:40px!important}.pt-md-11{padding-top:44px!important}.pt-md-12{padding-top:48px!important}.pt-md-13{padding-top:52px!important}.pt-md-14{padding-top:56px!important}.pt-md-15{padding-top:60px!important}.pt-md-16{padding-top:64px!important}.pr-md-0{padding-right:0!important}.pr-md-1{padding-right:4px!important}.pr-md-2{padding-right:8px!important}.pr-md-3{padding-right:12px!important}.pr-md-4{padding-right:16px!important}.pr-md-5{padding-right:20px!important}.pr-md-6{padding-right:24px!important}.pr-md-7{padding-right:28px!important}.pr-md-8{padding-right:32px!important}.pr-md-9{padding-right:36px!important}.pr-md-10{padding-right:40px!important}.pr-md-11{padding-right:44px!important}.pr-md-12{padding-right:48px!important}.pr-md-13{padding-right:52px!important}.pr-md-14{padding-right:56px!important}.pr-md-15{padding-right:60px!important}.pr-md-16{padding-right:64px!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:4px!important}.pb-md-2{padding-bottom:8px!important}.pb-md-3{padding-bottom:12px!important}.pb-md-4{padding-bottom:16px!important}.pb-md-5{padding-bottom:20px!important}.pb-md-6{padding-bottom:24px!important}.pb-md-7{padding-bottom:28px!important}.pb-md-8{padding-bottom:32px!important}.pb-md-9{padding-bottom:36px!important}.pb-md-10{padding-bottom:40px!important}.pb-md-11{padding-bottom:44px!important}.pb-md-12{padding-bottom:48px!important}.pb-md-13{padding-bottom:52px!important}.pb-md-14{padding-bottom:56px!important}.pb-md-15{padding-bottom:60px!important}.pb-md-16{padding-bottom:64px!important}.pl-md-0{padding-left:0!important}.pl-md-1{padding-left:4px!important}.pl-md-2{padding-left:8px!important}.pl-md-3{padding-left:12px!important}.pl-md-4{padding-left:16px!important}.pl-md-5{padding-left:20px!important}.pl-md-6{padding-left:24px!important}.pl-md-7{padding-left:28px!important}.pl-md-8{padding-left:32px!important}.pl-md-9{padding-left:36px!important}.pl-md-10{padding-left:40px!important}.pl-md-11{padding-left:44px!important}.pl-md-12{padding-left:48px!important}.pl-md-13{padding-left:52px!important}.pl-md-14{padding-left:56px!important}.pl-md-15{padding-left:60px!important}.pl-md-16{padding-left:64px!important}.ps-md-0{padding-inline-start:0px!important}.ps-md-1{padding-inline-start:4px!important}.ps-md-2{padding-inline-start:8px!important}.ps-md-3{padding-inline-start:12px!important}.ps-md-4{padding-inline-start:16px!important}.ps-md-5{padding-inline-start:20px!important}.ps-md-6{padding-inline-start:24px!important}.ps-md-7{padding-inline-start:28px!important}.ps-md-8{padding-inline-start:32px!important}.ps-md-9{padding-inline-start:36px!important}.ps-md-10{padding-inline-start:40px!important}.ps-md-11{padding-inline-start:44px!important}.ps-md-12{padding-inline-start:48px!important}.ps-md-13{padding-inline-start:52px!important}.ps-md-14{padding-inline-start:56px!important}.ps-md-15{padding-inline-start:60px!important}.ps-md-16{padding-inline-start:64px!important}.pe-md-0{padding-inline-end:0px!important}.pe-md-1{padding-inline-end:4px!important}.pe-md-2{padding-inline-end:8px!important}.pe-md-3{padding-inline-end:12px!important}.pe-md-4{padding-inline-end:16px!important}.pe-md-5{padding-inline-end:20px!important}.pe-md-6{padding-inline-end:24px!important}.pe-md-7{padding-inline-end:28px!important}.pe-md-8{padding-inline-end:32px!important}.pe-md-9{padding-inline-end:36px!important}.pe-md-10{padding-inline-end:40px!important}.pe-md-11{padding-inline-end:44px!important}.pe-md-12{padding-inline-end:48px!important}.pe-md-13{padding-inline-end:52px!important}.pe-md-14{padding-inline-end:56px!important}.pe-md-15{padding-inline-end:60px!important}.pe-md-16{padding-inline-end:64px!important}.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}.text-md-justify{text-align:justify!important}.text-md-start{text-align:start!important}.text-md-end{text-align:end!important}.text-md-h1{font-size:6rem!important;font-weight:300;line-height:1;letter-spacing:-.015625em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-md-h2{font-size:3.75rem!important;font-weight:300;line-height:1;letter-spacing:-.0083333333em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-md-h3{font-size:3rem!important;font-weight:400;line-height:1.05;letter-spacing:normal!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-md-h4{font-size:2.125rem!important;font-weight:400;line-height:1.175;letter-spacing:.0073529412em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-md-h5{font-size:1.5rem!important;font-weight:400;line-height:1.333;letter-spacing:normal!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-md-h6{font-size:1.25rem!important;font-weight:500;line-height:1.6;letter-spacing:.0125em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-md-subtitle-1{font-size:1rem!important;font-weight:400;line-height:1.75;letter-spacing:.009375em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-md-subtitle-2{font-size:.875rem!important;font-weight:500;line-height:1.6;letter-spacing:.0071428571em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-md-body-1{font-size:1rem!important;font-weight:400;line-height:1.5;letter-spacing:.03125em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-md-body-2{font-size:.875rem!important;font-weight:400;line-height:1.425;letter-spacing:.0178571429em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-md-button{font-size:.875rem!important;font-weight:500;line-height:2.6;letter-spacing:.0892857143em!important;font-family:Roboto,sans-serif;text-transform:uppercase!important}.text-md-caption{font-size:.75rem!important;font-weight:400;line-height:1.667;letter-spacing:.0333333333em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-md-overline{font-size:.75rem!important;font-weight:500;line-height:2.667;letter-spacing:.1666666667em!important;font-family:Roboto,sans-serif;text-transform:uppercase!important}.h-md-auto{height:auto!important}.h-md-screen{height:100vh!important}.h-md-0{height:0!important}.h-md-25{height:25%!important}.h-md-50{height:50%!important}.h-md-75{height:75%!important}.h-md-100{height:100%!important}.w-md-auto{width:auto!important}.w-md-0{width:0!important}.w-md-25{width:25%!important}.w-md-33{width:33%!important}.w-md-50{width:50%!important}.w-md-66{width:66%!important}.w-md-75{width:75%!important}.w-md-100{width:100%!important}}@media (min-width: 1280px){.d-lg-none{display:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.float-lg-none{float:none!important}.float-lg-left{float:left!important}.float-lg-right{float:right!important}.v-locale--is-rtl .float-lg-end{float:left!important}.v-locale--is-rtl .float-lg-start,.v-locale--is-ltr .float-lg-end{float:right!important}.v-locale--is-ltr .float-lg-start{float:left!important}.flex-lg-fill,.flex-lg-1-1{flex:1 1 auto!important}.flex-lg-1-0{flex:1 0 auto!important}.flex-lg-0-1{flex:0 1 auto!important}.flex-lg-0-0{flex:0 0 auto!important}.flex-lg-1-1-100{flex:1 1 100%!important}.flex-lg-1-0-100{flex:1 0 100%!important}.flex-lg-0-1-100{flex:0 1 100%!important}.flex-lg-0-0-100{flex:0 0 100%!important}.flex-lg-1-1-0{flex:1 1 0!important}.flex-lg-1-0-0{flex:1 0 0!important}.flex-lg-0-1-0{flex:0 1 0!important}.flex-lg-0-0-0{flex:0 0 0!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-lg-start{justify-content:flex-start!important}.justify-lg-end{justify-content:flex-end!important}.justify-lg-center{justify-content:center!important}.justify-lg-space-between{justify-content:space-between!important}.justify-lg-space-around{justify-content:space-around!important}.justify-lg-space-evenly{justify-content:space-evenly!important}.align-lg-start{align-items:flex-start!important}.align-lg-end{align-items:flex-end!important}.align-lg-center{align-items:center!important}.align-lg-baseline{align-items:baseline!important}.align-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-space-between{align-content:space-between!important}.align-content-lg-space-around{align-content:space-around!important}.align-content-lg-space-evenly{align-content:space-evenly!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-6{order:6!important}.order-lg-7{order:7!important}.order-lg-8{order:8!important}.order-lg-9{order:9!important}.order-lg-10{order:10!important}.order-lg-11{order:11!important}.order-lg-12{order:12!important}.order-lg-last{order:13!important}.ga-lg-0{gap:0px!important}.ga-lg-1{gap:4px!important}.ga-lg-2{gap:8px!important}.ga-lg-3{gap:12px!important}.ga-lg-4{gap:16px!important}.ga-lg-5{gap:20px!important}.ga-lg-6{gap:24px!important}.ga-lg-7{gap:28px!important}.ga-lg-8{gap:32px!important}.ga-lg-9{gap:36px!important}.ga-lg-10{gap:40px!important}.ga-lg-11{gap:44px!important}.ga-lg-12{gap:48px!important}.ga-lg-13{gap:52px!important}.ga-lg-14{gap:56px!important}.ga-lg-15{gap:60px!important}.ga-lg-16{gap:64px!important}.ga-lg-auto{gap:auto!important}.gr-lg-0{row-gap:0px!important}.gr-lg-1{row-gap:4px!important}.gr-lg-2{row-gap:8px!important}.gr-lg-3{row-gap:12px!important}.gr-lg-4{row-gap:16px!important}.gr-lg-5{row-gap:20px!important}.gr-lg-6{row-gap:24px!important}.gr-lg-7{row-gap:28px!important}.gr-lg-8{row-gap:32px!important}.gr-lg-9{row-gap:36px!important}.gr-lg-10{row-gap:40px!important}.gr-lg-11{row-gap:44px!important}.gr-lg-12{row-gap:48px!important}.gr-lg-13{row-gap:52px!important}.gr-lg-14{row-gap:56px!important}.gr-lg-15{row-gap:60px!important}.gr-lg-16{row-gap:64px!important}.gr-lg-auto{row-gap:auto!important}.gc-lg-0{column-gap:0px!important}.gc-lg-1{column-gap:4px!important}.gc-lg-2{column-gap:8px!important}.gc-lg-3{column-gap:12px!important}.gc-lg-4{column-gap:16px!important}.gc-lg-5{column-gap:20px!important}.gc-lg-6{column-gap:24px!important}.gc-lg-7{column-gap:28px!important}.gc-lg-8{column-gap:32px!important}.gc-lg-9{column-gap:36px!important}.gc-lg-10{column-gap:40px!important}.gc-lg-11{column-gap:44px!important}.gc-lg-12{column-gap:48px!important}.gc-lg-13{column-gap:52px!important}.gc-lg-14{column-gap:56px!important}.gc-lg-15{column-gap:60px!important}.gc-lg-16{column-gap:64px!important}.gc-lg-auto{column-gap:auto!important}.ma-lg-0{margin:0!important}.ma-lg-1{margin:4px!important}.ma-lg-2{margin:8px!important}.ma-lg-3{margin:12px!important}.ma-lg-4{margin:16px!important}.ma-lg-5{margin:20px!important}.ma-lg-6{margin:24px!important}.ma-lg-7{margin:28px!important}.ma-lg-8{margin:32px!important}.ma-lg-9{margin:36px!important}.ma-lg-10{margin:40px!important}.ma-lg-11{margin:44px!important}.ma-lg-12{margin:48px!important}.ma-lg-13{margin:52px!important}.ma-lg-14{margin:56px!important}.ma-lg-15{margin:60px!important}.ma-lg-16{margin:64px!important}.ma-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:4px!important;margin-left:4px!important}.mx-lg-2{margin-right:8px!important;margin-left:8px!important}.mx-lg-3{margin-right:12px!important;margin-left:12px!important}.mx-lg-4{margin-right:16px!important;margin-left:16px!important}.mx-lg-5{margin-right:20px!important;margin-left:20px!important}.mx-lg-6{margin-right:24px!important;margin-left:24px!important}.mx-lg-7{margin-right:28px!important;margin-left:28px!important}.mx-lg-8{margin-right:32px!important;margin-left:32px!important}.mx-lg-9{margin-right:36px!important;margin-left:36px!important}.mx-lg-10{margin-right:40px!important;margin-left:40px!important}.mx-lg-11{margin-right:44px!important;margin-left:44px!important}.mx-lg-12{margin-right:48px!important;margin-left:48px!important}.mx-lg-13{margin-right:52px!important;margin-left:52px!important}.mx-lg-14{margin-right:56px!important;margin-left:56px!important}.mx-lg-15{margin-right:60px!important;margin-left:60px!important}.mx-lg-16{margin-right:64px!important;margin-left:64px!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:4px!important;margin-bottom:4px!important}.my-lg-2{margin-top:8px!important;margin-bottom:8px!important}.my-lg-3{margin-top:12px!important;margin-bottom:12px!important}.my-lg-4{margin-top:16px!important;margin-bottom:16px!important}.my-lg-5{margin-top:20px!important;margin-bottom:20px!important}.my-lg-6{margin-top:24px!important;margin-bottom:24px!important}.my-lg-7{margin-top:28px!important;margin-bottom:28px!important}.my-lg-8{margin-top:32px!important;margin-bottom:32px!important}.my-lg-9{margin-top:36px!important;margin-bottom:36px!important}.my-lg-10{margin-top:40px!important;margin-bottom:40px!important}.my-lg-11{margin-top:44px!important;margin-bottom:44px!important}.my-lg-12{margin-top:48px!important;margin-bottom:48px!important}.my-lg-13{margin-top:52px!important;margin-bottom:52px!important}.my-lg-14{margin-top:56px!important;margin-bottom:56px!important}.my-lg-15{margin-top:60px!important;margin-bottom:60px!important}.my-lg-16{margin-top:64px!important;margin-bottom:64px!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:4px!important}.mt-lg-2{margin-top:8px!important}.mt-lg-3{margin-top:12px!important}.mt-lg-4{margin-top:16px!important}.mt-lg-5{margin-top:20px!important}.mt-lg-6{margin-top:24px!important}.mt-lg-7{margin-top:28px!important}.mt-lg-8{margin-top:32px!important}.mt-lg-9{margin-top:36px!important}.mt-lg-10{margin-top:40px!important}.mt-lg-11{margin-top:44px!important}.mt-lg-12{margin-top:48px!important}.mt-lg-13{margin-top:52px!important}.mt-lg-14{margin-top:56px!important}.mt-lg-15{margin-top:60px!important}.mt-lg-16{margin-top:64px!important}.mt-lg-auto{margin-top:auto!important}.mr-lg-0{margin-right:0!important}.mr-lg-1{margin-right:4px!important}.mr-lg-2{margin-right:8px!important}.mr-lg-3{margin-right:12px!important}.mr-lg-4{margin-right:16px!important}.mr-lg-5{margin-right:20px!important}.mr-lg-6{margin-right:24px!important}.mr-lg-7{margin-right:28px!important}.mr-lg-8{margin-right:32px!important}.mr-lg-9{margin-right:36px!important}.mr-lg-10{margin-right:40px!important}.mr-lg-11{margin-right:44px!important}.mr-lg-12{margin-right:48px!important}.mr-lg-13{margin-right:52px!important}.mr-lg-14{margin-right:56px!important}.mr-lg-15{margin-right:60px!important}.mr-lg-16{margin-right:64px!important}.mr-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:4px!important}.mb-lg-2{margin-bottom:8px!important}.mb-lg-3{margin-bottom:12px!important}.mb-lg-4{margin-bottom:16px!important}.mb-lg-5{margin-bottom:20px!important}.mb-lg-6{margin-bottom:24px!important}.mb-lg-7{margin-bottom:28px!important}.mb-lg-8{margin-bottom:32px!important}.mb-lg-9{margin-bottom:36px!important}.mb-lg-10{margin-bottom:40px!important}.mb-lg-11{margin-bottom:44px!important}.mb-lg-12{margin-bottom:48px!important}.mb-lg-13{margin-bottom:52px!important}.mb-lg-14{margin-bottom:56px!important}.mb-lg-15{margin-bottom:60px!important}.mb-lg-16{margin-bottom:64px!important}.mb-lg-auto{margin-bottom:auto!important}.ml-lg-0{margin-left:0!important}.ml-lg-1{margin-left:4px!important}.ml-lg-2{margin-left:8px!important}.ml-lg-3{margin-left:12px!important}.ml-lg-4{margin-left:16px!important}.ml-lg-5{margin-left:20px!important}.ml-lg-6{margin-left:24px!important}.ml-lg-7{margin-left:28px!important}.ml-lg-8{margin-left:32px!important}.ml-lg-9{margin-left:36px!important}.ml-lg-10{margin-left:40px!important}.ml-lg-11{margin-left:44px!important}.ml-lg-12{margin-left:48px!important}.ml-lg-13{margin-left:52px!important}.ml-lg-14{margin-left:56px!important}.ml-lg-15{margin-left:60px!important}.ml-lg-16{margin-left:64px!important}.ml-lg-auto{margin-left:auto!important}.ms-lg-0{margin-inline-start:0px!important}.ms-lg-1{margin-inline-start:4px!important}.ms-lg-2{margin-inline-start:8px!important}.ms-lg-3{margin-inline-start:12px!important}.ms-lg-4{margin-inline-start:16px!important}.ms-lg-5{margin-inline-start:20px!important}.ms-lg-6{margin-inline-start:24px!important}.ms-lg-7{margin-inline-start:28px!important}.ms-lg-8{margin-inline-start:32px!important}.ms-lg-9{margin-inline-start:36px!important}.ms-lg-10{margin-inline-start:40px!important}.ms-lg-11{margin-inline-start:44px!important}.ms-lg-12{margin-inline-start:48px!important}.ms-lg-13{margin-inline-start:52px!important}.ms-lg-14{margin-inline-start:56px!important}.ms-lg-15{margin-inline-start:60px!important}.ms-lg-16{margin-inline-start:64px!important}.ms-lg-auto{margin-inline-start:auto!important}.me-lg-0{margin-inline-end:0px!important}.me-lg-1{margin-inline-end:4px!important}.me-lg-2{margin-inline-end:8px!important}.me-lg-3{margin-inline-end:12px!important}.me-lg-4{margin-inline-end:16px!important}.me-lg-5{margin-inline-end:20px!important}.me-lg-6{margin-inline-end:24px!important}.me-lg-7{margin-inline-end:28px!important}.me-lg-8{margin-inline-end:32px!important}.me-lg-9{margin-inline-end:36px!important}.me-lg-10{margin-inline-end:40px!important}.me-lg-11{margin-inline-end:44px!important}.me-lg-12{margin-inline-end:48px!important}.me-lg-13{margin-inline-end:52px!important}.me-lg-14{margin-inline-end:56px!important}.me-lg-15{margin-inline-end:60px!important}.me-lg-16{margin-inline-end:64px!important}.me-lg-auto{margin-inline-end:auto!important}.ma-lg-n1{margin:-4px!important}.ma-lg-n2{margin:-8px!important}.ma-lg-n3{margin:-12px!important}.ma-lg-n4{margin:-16px!important}.ma-lg-n5{margin:-20px!important}.ma-lg-n6{margin:-24px!important}.ma-lg-n7{margin:-28px!important}.ma-lg-n8{margin:-32px!important}.ma-lg-n9{margin:-36px!important}.ma-lg-n10{margin:-40px!important}.ma-lg-n11{margin:-44px!important}.ma-lg-n12{margin:-48px!important}.ma-lg-n13{margin:-52px!important}.ma-lg-n14{margin:-56px!important}.ma-lg-n15{margin:-60px!important}.ma-lg-n16{margin:-64px!important}.mx-lg-n1{margin-right:-4px!important;margin-left:-4px!important}.mx-lg-n2{margin-right:-8px!important;margin-left:-8px!important}.mx-lg-n3{margin-right:-12px!important;margin-left:-12px!important}.mx-lg-n4{margin-right:-16px!important;margin-left:-16px!important}.mx-lg-n5{margin-right:-20px!important;margin-left:-20px!important}.mx-lg-n6{margin-right:-24px!important;margin-left:-24px!important}.mx-lg-n7{margin-right:-28px!important;margin-left:-28px!important}.mx-lg-n8{margin-right:-32px!important;margin-left:-32px!important}.mx-lg-n9{margin-right:-36px!important;margin-left:-36px!important}.mx-lg-n10{margin-right:-40px!important;margin-left:-40px!important}.mx-lg-n11{margin-right:-44px!important;margin-left:-44px!important}.mx-lg-n12{margin-right:-48px!important;margin-left:-48px!important}.mx-lg-n13{margin-right:-52px!important;margin-left:-52px!important}.mx-lg-n14{margin-right:-56px!important;margin-left:-56px!important}.mx-lg-n15{margin-right:-60px!important;margin-left:-60px!important}.mx-lg-n16{margin-right:-64px!important;margin-left:-64px!important}.my-lg-n1{margin-top:-4px!important;margin-bottom:-4px!important}.my-lg-n2{margin-top:-8px!important;margin-bottom:-8px!important}.my-lg-n3{margin-top:-12px!important;margin-bottom:-12px!important}.my-lg-n4{margin-top:-16px!important;margin-bottom:-16px!important}.my-lg-n5{margin-top:-20px!important;margin-bottom:-20px!important}.my-lg-n6{margin-top:-24px!important;margin-bottom:-24px!important}.my-lg-n7{margin-top:-28px!important;margin-bottom:-28px!important}.my-lg-n8{margin-top:-32px!important;margin-bottom:-32px!important}.my-lg-n9{margin-top:-36px!important;margin-bottom:-36px!important}.my-lg-n10{margin-top:-40px!important;margin-bottom:-40px!important}.my-lg-n11{margin-top:-44px!important;margin-bottom:-44px!important}.my-lg-n12{margin-top:-48px!important;margin-bottom:-48px!important}.my-lg-n13{margin-top:-52px!important;margin-bottom:-52px!important}.my-lg-n14{margin-top:-56px!important;margin-bottom:-56px!important}.my-lg-n15{margin-top:-60px!important;margin-bottom:-60px!important}.my-lg-n16{margin-top:-64px!important;margin-bottom:-64px!important}.mt-lg-n1{margin-top:-4px!important}.mt-lg-n2{margin-top:-8px!important}.mt-lg-n3{margin-top:-12px!important}.mt-lg-n4{margin-top:-16px!important}.mt-lg-n5{margin-top:-20px!important}.mt-lg-n6{margin-top:-24px!important}.mt-lg-n7{margin-top:-28px!important}.mt-lg-n8{margin-top:-32px!important}.mt-lg-n9{margin-top:-36px!important}.mt-lg-n10{margin-top:-40px!important}.mt-lg-n11{margin-top:-44px!important}.mt-lg-n12{margin-top:-48px!important}.mt-lg-n13{margin-top:-52px!important}.mt-lg-n14{margin-top:-56px!important}.mt-lg-n15{margin-top:-60px!important}.mt-lg-n16{margin-top:-64px!important}.mr-lg-n1{margin-right:-4px!important}.mr-lg-n2{margin-right:-8px!important}.mr-lg-n3{margin-right:-12px!important}.mr-lg-n4{margin-right:-16px!important}.mr-lg-n5{margin-right:-20px!important}.mr-lg-n6{margin-right:-24px!important}.mr-lg-n7{margin-right:-28px!important}.mr-lg-n8{margin-right:-32px!important}.mr-lg-n9{margin-right:-36px!important}.mr-lg-n10{margin-right:-40px!important}.mr-lg-n11{margin-right:-44px!important}.mr-lg-n12{margin-right:-48px!important}.mr-lg-n13{margin-right:-52px!important}.mr-lg-n14{margin-right:-56px!important}.mr-lg-n15{margin-right:-60px!important}.mr-lg-n16{margin-right:-64px!important}.mb-lg-n1{margin-bottom:-4px!important}.mb-lg-n2{margin-bottom:-8px!important}.mb-lg-n3{margin-bottom:-12px!important}.mb-lg-n4{margin-bottom:-16px!important}.mb-lg-n5{margin-bottom:-20px!important}.mb-lg-n6{margin-bottom:-24px!important}.mb-lg-n7{margin-bottom:-28px!important}.mb-lg-n8{margin-bottom:-32px!important}.mb-lg-n9{margin-bottom:-36px!important}.mb-lg-n10{margin-bottom:-40px!important}.mb-lg-n11{margin-bottom:-44px!important}.mb-lg-n12{margin-bottom:-48px!important}.mb-lg-n13{margin-bottom:-52px!important}.mb-lg-n14{margin-bottom:-56px!important}.mb-lg-n15{margin-bottom:-60px!important}.mb-lg-n16{margin-bottom:-64px!important}.ml-lg-n1{margin-left:-4px!important}.ml-lg-n2{margin-left:-8px!important}.ml-lg-n3{margin-left:-12px!important}.ml-lg-n4{margin-left:-16px!important}.ml-lg-n5{margin-left:-20px!important}.ml-lg-n6{margin-left:-24px!important}.ml-lg-n7{margin-left:-28px!important}.ml-lg-n8{margin-left:-32px!important}.ml-lg-n9{margin-left:-36px!important}.ml-lg-n10{margin-left:-40px!important}.ml-lg-n11{margin-left:-44px!important}.ml-lg-n12{margin-left:-48px!important}.ml-lg-n13{margin-left:-52px!important}.ml-lg-n14{margin-left:-56px!important}.ml-lg-n15{margin-left:-60px!important}.ml-lg-n16{margin-left:-64px!important}.ms-lg-n1{margin-inline-start:-4px!important}.ms-lg-n2{margin-inline-start:-8px!important}.ms-lg-n3{margin-inline-start:-12px!important}.ms-lg-n4{margin-inline-start:-16px!important}.ms-lg-n5{margin-inline-start:-20px!important}.ms-lg-n6{margin-inline-start:-24px!important}.ms-lg-n7{margin-inline-start:-28px!important}.ms-lg-n8{margin-inline-start:-32px!important}.ms-lg-n9{margin-inline-start:-36px!important}.ms-lg-n10{margin-inline-start:-40px!important}.ms-lg-n11{margin-inline-start:-44px!important}.ms-lg-n12{margin-inline-start:-48px!important}.ms-lg-n13{margin-inline-start:-52px!important}.ms-lg-n14{margin-inline-start:-56px!important}.ms-lg-n15{margin-inline-start:-60px!important}.ms-lg-n16{margin-inline-start:-64px!important}.me-lg-n1{margin-inline-end:-4px!important}.me-lg-n2{margin-inline-end:-8px!important}.me-lg-n3{margin-inline-end:-12px!important}.me-lg-n4{margin-inline-end:-16px!important}.me-lg-n5{margin-inline-end:-20px!important}.me-lg-n6{margin-inline-end:-24px!important}.me-lg-n7{margin-inline-end:-28px!important}.me-lg-n8{margin-inline-end:-32px!important}.me-lg-n9{margin-inline-end:-36px!important}.me-lg-n10{margin-inline-end:-40px!important}.me-lg-n11{margin-inline-end:-44px!important}.me-lg-n12{margin-inline-end:-48px!important}.me-lg-n13{margin-inline-end:-52px!important}.me-lg-n14{margin-inline-end:-56px!important}.me-lg-n15{margin-inline-end:-60px!important}.me-lg-n16{margin-inline-end:-64px!important}.pa-lg-0{padding:0!important}.pa-lg-1{padding:4px!important}.pa-lg-2{padding:8px!important}.pa-lg-3{padding:12px!important}.pa-lg-4{padding:16px!important}.pa-lg-5{padding:20px!important}.pa-lg-6{padding:24px!important}.pa-lg-7{padding:28px!important}.pa-lg-8{padding:32px!important}.pa-lg-9{padding:36px!important}.pa-lg-10{padding:40px!important}.pa-lg-11{padding:44px!important}.pa-lg-12{padding:48px!important}.pa-lg-13{padding:52px!important}.pa-lg-14{padding:56px!important}.pa-lg-15{padding:60px!important}.pa-lg-16{padding:64px!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:4px!important;padding-left:4px!important}.px-lg-2{padding-right:8px!important;padding-left:8px!important}.px-lg-3{padding-right:12px!important;padding-left:12px!important}.px-lg-4{padding-right:16px!important;padding-left:16px!important}.px-lg-5{padding-right:20px!important;padding-left:20px!important}.px-lg-6{padding-right:24px!important;padding-left:24px!important}.px-lg-7{padding-right:28px!important;padding-left:28px!important}.px-lg-8{padding-right:32px!important;padding-left:32px!important}.px-lg-9{padding-right:36px!important;padding-left:36px!important}.px-lg-10{padding-right:40px!important;padding-left:40px!important}.px-lg-11{padding-right:44px!important;padding-left:44px!important}.px-lg-12{padding-right:48px!important;padding-left:48px!important}.px-lg-13{padding-right:52px!important;padding-left:52px!important}.px-lg-14{padding-right:56px!important;padding-left:56px!important}.px-lg-15{padding-right:60px!important;padding-left:60px!important}.px-lg-16{padding-right:64px!important;padding-left:64px!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:4px!important;padding-bottom:4px!important}.py-lg-2{padding-top:8px!important;padding-bottom:8px!important}.py-lg-3{padding-top:12px!important;padding-bottom:12px!important}.py-lg-4{padding-top:16px!important;padding-bottom:16px!important}.py-lg-5{padding-top:20px!important;padding-bottom:20px!important}.py-lg-6{padding-top:24px!important;padding-bottom:24px!important}.py-lg-7{padding-top:28px!important;padding-bottom:28px!important}.py-lg-8{padding-top:32px!important;padding-bottom:32px!important}.py-lg-9{padding-top:36px!important;padding-bottom:36px!important}.py-lg-10{padding-top:40px!important;padding-bottom:40px!important}.py-lg-11{padding-top:44px!important;padding-bottom:44px!important}.py-lg-12{padding-top:48px!important;padding-bottom:48px!important}.py-lg-13{padding-top:52px!important;padding-bottom:52px!important}.py-lg-14{padding-top:56px!important;padding-bottom:56px!important}.py-lg-15{padding-top:60px!important;padding-bottom:60px!important}.py-lg-16{padding-top:64px!important;padding-bottom:64px!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:4px!important}.pt-lg-2{padding-top:8px!important}.pt-lg-3{padding-top:12px!important}.pt-lg-4{padding-top:16px!important}.pt-lg-5{padding-top:20px!important}.pt-lg-6{padding-top:24px!important}.pt-lg-7{padding-top:28px!important}.pt-lg-8{padding-top:32px!important}.pt-lg-9{padding-top:36px!important}.pt-lg-10{padding-top:40px!important}.pt-lg-11{padding-top:44px!important}.pt-lg-12{padding-top:48px!important}.pt-lg-13{padding-top:52px!important}.pt-lg-14{padding-top:56px!important}.pt-lg-15{padding-top:60px!important}.pt-lg-16{padding-top:64px!important}.pr-lg-0{padding-right:0!important}.pr-lg-1{padding-right:4px!important}.pr-lg-2{padding-right:8px!important}.pr-lg-3{padding-right:12px!important}.pr-lg-4{padding-right:16px!important}.pr-lg-5{padding-right:20px!important}.pr-lg-6{padding-right:24px!important}.pr-lg-7{padding-right:28px!important}.pr-lg-8{padding-right:32px!important}.pr-lg-9{padding-right:36px!important}.pr-lg-10{padding-right:40px!important}.pr-lg-11{padding-right:44px!important}.pr-lg-12{padding-right:48px!important}.pr-lg-13{padding-right:52px!important}.pr-lg-14{padding-right:56px!important}.pr-lg-15{padding-right:60px!important}.pr-lg-16{padding-right:64px!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:4px!important}.pb-lg-2{padding-bottom:8px!important}.pb-lg-3{padding-bottom:12px!important}.pb-lg-4{padding-bottom:16px!important}.pb-lg-5{padding-bottom:20px!important}.pb-lg-6{padding-bottom:24px!important}.pb-lg-7{padding-bottom:28px!important}.pb-lg-8{padding-bottom:32px!important}.pb-lg-9{padding-bottom:36px!important}.pb-lg-10{padding-bottom:40px!important}.pb-lg-11{padding-bottom:44px!important}.pb-lg-12{padding-bottom:48px!important}.pb-lg-13{padding-bottom:52px!important}.pb-lg-14{padding-bottom:56px!important}.pb-lg-15{padding-bottom:60px!important}.pb-lg-16{padding-bottom:64px!important}.pl-lg-0{padding-left:0!important}.pl-lg-1{padding-left:4px!important}.pl-lg-2{padding-left:8px!important}.pl-lg-3{padding-left:12px!important}.pl-lg-4{padding-left:16px!important}.pl-lg-5{padding-left:20px!important}.pl-lg-6{padding-left:24px!important}.pl-lg-7{padding-left:28px!important}.pl-lg-8{padding-left:32px!important}.pl-lg-9{padding-left:36px!important}.pl-lg-10{padding-left:40px!important}.pl-lg-11{padding-left:44px!important}.pl-lg-12{padding-left:48px!important}.pl-lg-13{padding-left:52px!important}.pl-lg-14{padding-left:56px!important}.pl-lg-15{padding-left:60px!important}.pl-lg-16{padding-left:64px!important}.ps-lg-0{padding-inline-start:0px!important}.ps-lg-1{padding-inline-start:4px!important}.ps-lg-2{padding-inline-start:8px!important}.ps-lg-3{padding-inline-start:12px!important}.ps-lg-4{padding-inline-start:16px!important}.ps-lg-5{padding-inline-start:20px!important}.ps-lg-6{padding-inline-start:24px!important}.ps-lg-7{padding-inline-start:28px!important}.ps-lg-8{padding-inline-start:32px!important}.ps-lg-9{padding-inline-start:36px!important}.ps-lg-10{padding-inline-start:40px!important}.ps-lg-11{padding-inline-start:44px!important}.ps-lg-12{padding-inline-start:48px!important}.ps-lg-13{padding-inline-start:52px!important}.ps-lg-14{padding-inline-start:56px!important}.ps-lg-15{padding-inline-start:60px!important}.ps-lg-16{padding-inline-start:64px!important}.pe-lg-0{padding-inline-end:0px!important}.pe-lg-1{padding-inline-end:4px!important}.pe-lg-2{padding-inline-end:8px!important}.pe-lg-3{padding-inline-end:12px!important}.pe-lg-4{padding-inline-end:16px!important}.pe-lg-5{padding-inline-end:20px!important}.pe-lg-6{padding-inline-end:24px!important}.pe-lg-7{padding-inline-end:28px!important}.pe-lg-8{padding-inline-end:32px!important}.pe-lg-9{padding-inline-end:36px!important}.pe-lg-10{padding-inline-end:40px!important}.pe-lg-11{padding-inline-end:44px!important}.pe-lg-12{padding-inline-end:48px!important}.pe-lg-13{padding-inline-end:52px!important}.pe-lg-14{padding-inline-end:56px!important}.pe-lg-15{padding-inline-end:60px!important}.pe-lg-16{padding-inline-end:64px!important}.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}.text-lg-justify{text-align:justify!important}.text-lg-start{text-align:start!important}.text-lg-end{text-align:end!important}.text-lg-h1{font-size:6rem!important;font-weight:300;line-height:1;letter-spacing:-.015625em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-lg-h2{font-size:3.75rem!important;font-weight:300;line-height:1;letter-spacing:-.0083333333em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-lg-h3{font-size:3rem!important;font-weight:400;line-height:1.05;letter-spacing:normal!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-lg-h4{font-size:2.125rem!important;font-weight:400;line-height:1.175;letter-spacing:.0073529412em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-lg-h5{font-size:1.5rem!important;font-weight:400;line-height:1.333;letter-spacing:normal!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-lg-h6{font-size:1.25rem!important;font-weight:500;line-height:1.6;letter-spacing:.0125em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-lg-subtitle-1{font-size:1rem!important;font-weight:400;line-height:1.75;letter-spacing:.009375em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-lg-subtitle-2{font-size:.875rem!important;font-weight:500;line-height:1.6;letter-spacing:.0071428571em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-lg-body-1{font-size:1rem!important;font-weight:400;line-height:1.5;letter-spacing:.03125em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-lg-body-2{font-size:.875rem!important;font-weight:400;line-height:1.425;letter-spacing:.0178571429em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-lg-button{font-size:.875rem!important;font-weight:500;line-height:2.6;letter-spacing:.0892857143em!important;font-family:Roboto,sans-serif;text-transform:uppercase!important}.text-lg-caption{font-size:.75rem!important;font-weight:400;line-height:1.667;letter-spacing:.0333333333em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-lg-overline{font-size:.75rem!important;font-weight:500;line-height:2.667;letter-spacing:.1666666667em!important;font-family:Roboto,sans-serif;text-transform:uppercase!important}.h-lg-auto{height:auto!important}.h-lg-screen{height:100vh!important}.h-lg-0{height:0!important}.h-lg-25{height:25%!important}.h-lg-50{height:50%!important}.h-lg-75{height:75%!important}.h-lg-100{height:100%!important}.w-lg-auto{width:auto!important}.w-lg-0{width:0!important}.w-lg-25{width:25%!important}.w-lg-33{width:33%!important}.w-lg-50{width:50%!important}.w-lg-66{width:66%!important}.w-lg-75{width:75%!important}.w-lg-100{width:100%!important}}@media (min-width: 1920px){.d-xl-none{display:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.float-xl-none{float:none!important}.float-xl-left{float:left!important}.float-xl-right{float:right!important}.v-locale--is-rtl .float-xl-end{float:left!important}.v-locale--is-rtl .float-xl-start,.v-locale--is-ltr .float-xl-end{float:right!important}.v-locale--is-ltr .float-xl-start{float:left!important}.flex-xl-fill,.flex-xl-1-1{flex:1 1 auto!important}.flex-xl-1-0{flex:1 0 auto!important}.flex-xl-0-1{flex:0 1 auto!important}.flex-xl-0-0{flex:0 0 auto!important}.flex-xl-1-1-100{flex:1 1 100%!important}.flex-xl-1-0-100{flex:1 0 100%!important}.flex-xl-0-1-100{flex:0 1 100%!important}.flex-xl-0-0-100{flex:0 0 100%!important}.flex-xl-1-1-0{flex:1 1 0!important}.flex-xl-1-0-0{flex:1 0 0!important}.flex-xl-0-1-0{flex:0 1 0!important}.flex-xl-0-0-0{flex:0 0 0!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-xl-start{justify-content:flex-start!important}.justify-xl-end{justify-content:flex-end!important}.justify-xl-center{justify-content:center!important}.justify-xl-space-between{justify-content:space-between!important}.justify-xl-space-around{justify-content:space-around!important}.justify-xl-space-evenly{justify-content:space-evenly!important}.align-xl-start{align-items:flex-start!important}.align-xl-end{align-items:flex-end!important}.align-xl-center{align-items:center!important}.align-xl-baseline{align-items:baseline!important}.align-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-space-between{align-content:space-between!important}.align-content-xl-space-around{align-content:space-around!important}.align-content-xl-space-evenly{align-content:space-evenly!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-6{order:6!important}.order-xl-7{order:7!important}.order-xl-8{order:8!important}.order-xl-9{order:9!important}.order-xl-10{order:10!important}.order-xl-11{order:11!important}.order-xl-12{order:12!important}.order-xl-last{order:13!important}.ga-xl-0{gap:0px!important}.ga-xl-1{gap:4px!important}.ga-xl-2{gap:8px!important}.ga-xl-3{gap:12px!important}.ga-xl-4{gap:16px!important}.ga-xl-5{gap:20px!important}.ga-xl-6{gap:24px!important}.ga-xl-7{gap:28px!important}.ga-xl-8{gap:32px!important}.ga-xl-9{gap:36px!important}.ga-xl-10{gap:40px!important}.ga-xl-11{gap:44px!important}.ga-xl-12{gap:48px!important}.ga-xl-13{gap:52px!important}.ga-xl-14{gap:56px!important}.ga-xl-15{gap:60px!important}.ga-xl-16{gap:64px!important}.ga-xl-auto{gap:auto!important}.gr-xl-0{row-gap:0px!important}.gr-xl-1{row-gap:4px!important}.gr-xl-2{row-gap:8px!important}.gr-xl-3{row-gap:12px!important}.gr-xl-4{row-gap:16px!important}.gr-xl-5{row-gap:20px!important}.gr-xl-6{row-gap:24px!important}.gr-xl-7{row-gap:28px!important}.gr-xl-8{row-gap:32px!important}.gr-xl-9{row-gap:36px!important}.gr-xl-10{row-gap:40px!important}.gr-xl-11{row-gap:44px!important}.gr-xl-12{row-gap:48px!important}.gr-xl-13{row-gap:52px!important}.gr-xl-14{row-gap:56px!important}.gr-xl-15{row-gap:60px!important}.gr-xl-16{row-gap:64px!important}.gr-xl-auto{row-gap:auto!important}.gc-xl-0{column-gap:0px!important}.gc-xl-1{column-gap:4px!important}.gc-xl-2{column-gap:8px!important}.gc-xl-3{column-gap:12px!important}.gc-xl-4{column-gap:16px!important}.gc-xl-5{column-gap:20px!important}.gc-xl-6{column-gap:24px!important}.gc-xl-7{column-gap:28px!important}.gc-xl-8{column-gap:32px!important}.gc-xl-9{column-gap:36px!important}.gc-xl-10{column-gap:40px!important}.gc-xl-11{column-gap:44px!important}.gc-xl-12{column-gap:48px!important}.gc-xl-13{column-gap:52px!important}.gc-xl-14{column-gap:56px!important}.gc-xl-15{column-gap:60px!important}.gc-xl-16{column-gap:64px!important}.gc-xl-auto{column-gap:auto!important}.ma-xl-0{margin:0!important}.ma-xl-1{margin:4px!important}.ma-xl-2{margin:8px!important}.ma-xl-3{margin:12px!important}.ma-xl-4{margin:16px!important}.ma-xl-5{margin:20px!important}.ma-xl-6{margin:24px!important}.ma-xl-7{margin:28px!important}.ma-xl-8{margin:32px!important}.ma-xl-9{margin:36px!important}.ma-xl-10{margin:40px!important}.ma-xl-11{margin:44px!important}.ma-xl-12{margin:48px!important}.ma-xl-13{margin:52px!important}.ma-xl-14{margin:56px!important}.ma-xl-15{margin:60px!important}.ma-xl-16{margin:64px!important}.ma-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:4px!important;margin-left:4px!important}.mx-xl-2{margin-right:8px!important;margin-left:8px!important}.mx-xl-3{margin-right:12px!important;margin-left:12px!important}.mx-xl-4{margin-right:16px!important;margin-left:16px!important}.mx-xl-5{margin-right:20px!important;margin-left:20px!important}.mx-xl-6{margin-right:24px!important;margin-left:24px!important}.mx-xl-7{margin-right:28px!important;margin-left:28px!important}.mx-xl-8{margin-right:32px!important;margin-left:32px!important}.mx-xl-9{margin-right:36px!important;margin-left:36px!important}.mx-xl-10{margin-right:40px!important;margin-left:40px!important}.mx-xl-11{margin-right:44px!important;margin-left:44px!important}.mx-xl-12{margin-right:48px!important;margin-left:48px!important}.mx-xl-13{margin-right:52px!important;margin-left:52px!important}.mx-xl-14{margin-right:56px!important;margin-left:56px!important}.mx-xl-15{margin-right:60px!important;margin-left:60px!important}.mx-xl-16{margin-right:64px!important;margin-left:64px!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:4px!important;margin-bottom:4px!important}.my-xl-2{margin-top:8px!important;margin-bottom:8px!important}.my-xl-3{margin-top:12px!important;margin-bottom:12px!important}.my-xl-4{margin-top:16px!important;margin-bottom:16px!important}.my-xl-5{margin-top:20px!important;margin-bottom:20px!important}.my-xl-6{margin-top:24px!important;margin-bottom:24px!important}.my-xl-7{margin-top:28px!important;margin-bottom:28px!important}.my-xl-8{margin-top:32px!important;margin-bottom:32px!important}.my-xl-9{margin-top:36px!important;margin-bottom:36px!important}.my-xl-10{margin-top:40px!important;margin-bottom:40px!important}.my-xl-11{margin-top:44px!important;margin-bottom:44px!important}.my-xl-12{margin-top:48px!important;margin-bottom:48px!important}.my-xl-13{margin-top:52px!important;margin-bottom:52px!important}.my-xl-14{margin-top:56px!important;margin-bottom:56px!important}.my-xl-15{margin-top:60px!important;margin-bottom:60px!important}.my-xl-16{margin-top:64px!important;margin-bottom:64px!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:4px!important}.mt-xl-2{margin-top:8px!important}.mt-xl-3{margin-top:12px!important}.mt-xl-4{margin-top:16px!important}.mt-xl-5{margin-top:20px!important}.mt-xl-6{margin-top:24px!important}.mt-xl-7{margin-top:28px!important}.mt-xl-8{margin-top:32px!important}.mt-xl-9{margin-top:36px!important}.mt-xl-10{margin-top:40px!important}.mt-xl-11{margin-top:44px!important}.mt-xl-12{margin-top:48px!important}.mt-xl-13{margin-top:52px!important}.mt-xl-14{margin-top:56px!important}.mt-xl-15{margin-top:60px!important}.mt-xl-16{margin-top:64px!important}.mt-xl-auto{margin-top:auto!important}.mr-xl-0{margin-right:0!important}.mr-xl-1{margin-right:4px!important}.mr-xl-2{margin-right:8px!important}.mr-xl-3{margin-right:12px!important}.mr-xl-4{margin-right:16px!important}.mr-xl-5{margin-right:20px!important}.mr-xl-6{margin-right:24px!important}.mr-xl-7{margin-right:28px!important}.mr-xl-8{margin-right:32px!important}.mr-xl-9{margin-right:36px!important}.mr-xl-10{margin-right:40px!important}.mr-xl-11{margin-right:44px!important}.mr-xl-12{margin-right:48px!important}.mr-xl-13{margin-right:52px!important}.mr-xl-14{margin-right:56px!important}.mr-xl-15{margin-right:60px!important}.mr-xl-16{margin-right:64px!important}.mr-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:4px!important}.mb-xl-2{margin-bottom:8px!important}.mb-xl-3{margin-bottom:12px!important}.mb-xl-4{margin-bottom:16px!important}.mb-xl-5{margin-bottom:20px!important}.mb-xl-6{margin-bottom:24px!important}.mb-xl-7{margin-bottom:28px!important}.mb-xl-8{margin-bottom:32px!important}.mb-xl-9{margin-bottom:36px!important}.mb-xl-10{margin-bottom:40px!important}.mb-xl-11{margin-bottom:44px!important}.mb-xl-12{margin-bottom:48px!important}.mb-xl-13{margin-bottom:52px!important}.mb-xl-14{margin-bottom:56px!important}.mb-xl-15{margin-bottom:60px!important}.mb-xl-16{margin-bottom:64px!important}.mb-xl-auto{margin-bottom:auto!important}.ml-xl-0{margin-left:0!important}.ml-xl-1{margin-left:4px!important}.ml-xl-2{margin-left:8px!important}.ml-xl-3{margin-left:12px!important}.ml-xl-4{margin-left:16px!important}.ml-xl-5{margin-left:20px!important}.ml-xl-6{margin-left:24px!important}.ml-xl-7{margin-left:28px!important}.ml-xl-8{margin-left:32px!important}.ml-xl-9{margin-left:36px!important}.ml-xl-10{margin-left:40px!important}.ml-xl-11{margin-left:44px!important}.ml-xl-12{margin-left:48px!important}.ml-xl-13{margin-left:52px!important}.ml-xl-14{margin-left:56px!important}.ml-xl-15{margin-left:60px!important}.ml-xl-16{margin-left:64px!important}.ml-xl-auto{margin-left:auto!important}.ms-xl-0{margin-inline-start:0px!important}.ms-xl-1{margin-inline-start:4px!important}.ms-xl-2{margin-inline-start:8px!important}.ms-xl-3{margin-inline-start:12px!important}.ms-xl-4{margin-inline-start:16px!important}.ms-xl-5{margin-inline-start:20px!important}.ms-xl-6{margin-inline-start:24px!important}.ms-xl-7{margin-inline-start:28px!important}.ms-xl-8{margin-inline-start:32px!important}.ms-xl-9{margin-inline-start:36px!important}.ms-xl-10{margin-inline-start:40px!important}.ms-xl-11{margin-inline-start:44px!important}.ms-xl-12{margin-inline-start:48px!important}.ms-xl-13{margin-inline-start:52px!important}.ms-xl-14{margin-inline-start:56px!important}.ms-xl-15{margin-inline-start:60px!important}.ms-xl-16{margin-inline-start:64px!important}.ms-xl-auto{margin-inline-start:auto!important}.me-xl-0{margin-inline-end:0px!important}.me-xl-1{margin-inline-end:4px!important}.me-xl-2{margin-inline-end:8px!important}.me-xl-3{margin-inline-end:12px!important}.me-xl-4{margin-inline-end:16px!important}.me-xl-5{margin-inline-end:20px!important}.me-xl-6{margin-inline-end:24px!important}.me-xl-7{margin-inline-end:28px!important}.me-xl-8{margin-inline-end:32px!important}.me-xl-9{margin-inline-end:36px!important}.me-xl-10{margin-inline-end:40px!important}.me-xl-11{margin-inline-end:44px!important}.me-xl-12{margin-inline-end:48px!important}.me-xl-13{margin-inline-end:52px!important}.me-xl-14{margin-inline-end:56px!important}.me-xl-15{margin-inline-end:60px!important}.me-xl-16{margin-inline-end:64px!important}.me-xl-auto{margin-inline-end:auto!important}.ma-xl-n1{margin:-4px!important}.ma-xl-n2{margin:-8px!important}.ma-xl-n3{margin:-12px!important}.ma-xl-n4{margin:-16px!important}.ma-xl-n5{margin:-20px!important}.ma-xl-n6{margin:-24px!important}.ma-xl-n7{margin:-28px!important}.ma-xl-n8{margin:-32px!important}.ma-xl-n9{margin:-36px!important}.ma-xl-n10{margin:-40px!important}.ma-xl-n11{margin:-44px!important}.ma-xl-n12{margin:-48px!important}.ma-xl-n13{margin:-52px!important}.ma-xl-n14{margin:-56px!important}.ma-xl-n15{margin:-60px!important}.ma-xl-n16{margin:-64px!important}.mx-xl-n1{margin-right:-4px!important;margin-left:-4px!important}.mx-xl-n2{margin-right:-8px!important;margin-left:-8px!important}.mx-xl-n3{margin-right:-12px!important;margin-left:-12px!important}.mx-xl-n4{margin-right:-16px!important;margin-left:-16px!important}.mx-xl-n5{margin-right:-20px!important;margin-left:-20px!important}.mx-xl-n6{margin-right:-24px!important;margin-left:-24px!important}.mx-xl-n7{margin-right:-28px!important;margin-left:-28px!important}.mx-xl-n8{margin-right:-32px!important;margin-left:-32px!important}.mx-xl-n9{margin-right:-36px!important;margin-left:-36px!important}.mx-xl-n10{margin-right:-40px!important;margin-left:-40px!important}.mx-xl-n11{margin-right:-44px!important;margin-left:-44px!important}.mx-xl-n12{margin-right:-48px!important;margin-left:-48px!important}.mx-xl-n13{margin-right:-52px!important;margin-left:-52px!important}.mx-xl-n14{margin-right:-56px!important;margin-left:-56px!important}.mx-xl-n15{margin-right:-60px!important;margin-left:-60px!important}.mx-xl-n16{margin-right:-64px!important;margin-left:-64px!important}.my-xl-n1{margin-top:-4px!important;margin-bottom:-4px!important}.my-xl-n2{margin-top:-8px!important;margin-bottom:-8px!important}.my-xl-n3{margin-top:-12px!important;margin-bottom:-12px!important}.my-xl-n4{margin-top:-16px!important;margin-bottom:-16px!important}.my-xl-n5{margin-top:-20px!important;margin-bottom:-20px!important}.my-xl-n6{margin-top:-24px!important;margin-bottom:-24px!important}.my-xl-n7{margin-top:-28px!important;margin-bottom:-28px!important}.my-xl-n8{margin-top:-32px!important;margin-bottom:-32px!important}.my-xl-n9{margin-top:-36px!important;margin-bottom:-36px!important}.my-xl-n10{margin-top:-40px!important;margin-bottom:-40px!important}.my-xl-n11{margin-top:-44px!important;margin-bottom:-44px!important}.my-xl-n12{margin-top:-48px!important;margin-bottom:-48px!important}.my-xl-n13{margin-top:-52px!important;margin-bottom:-52px!important}.my-xl-n14{margin-top:-56px!important;margin-bottom:-56px!important}.my-xl-n15{margin-top:-60px!important;margin-bottom:-60px!important}.my-xl-n16{margin-top:-64px!important;margin-bottom:-64px!important}.mt-xl-n1{margin-top:-4px!important}.mt-xl-n2{margin-top:-8px!important}.mt-xl-n3{margin-top:-12px!important}.mt-xl-n4{margin-top:-16px!important}.mt-xl-n5{margin-top:-20px!important}.mt-xl-n6{margin-top:-24px!important}.mt-xl-n7{margin-top:-28px!important}.mt-xl-n8{margin-top:-32px!important}.mt-xl-n9{margin-top:-36px!important}.mt-xl-n10{margin-top:-40px!important}.mt-xl-n11{margin-top:-44px!important}.mt-xl-n12{margin-top:-48px!important}.mt-xl-n13{margin-top:-52px!important}.mt-xl-n14{margin-top:-56px!important}.mt-xl-n15{margin-top:-60px!important}.mt-xl-n16{margin-top:-64px!important}.mr-xl-n1{margin-right:-4px!important}.mr-xl-n2{margin-right:-8px!important}.mr-xl-n3{margin-right:-12px!important}.mr-xl-n4{margin-right:-16px!important}.mr-xl-n5{margin-right:-20px!important}.mr-xl-n6{margin-right:-24px!important}.mr-xl-n7{margin-right:-28px!important}.mr-xl-n8{margin-right:-32px!important}.mr-xl-n9{margin-right:-36px!important}.mr-xl-n10{margin-right:-40px!important}.mr-xl-n11{margin-right:-44px!important}.mr-xl-n12{margin-right:-48px!important}.mr-xl-n13{margin-right:-52px!important}.mr-xl-n14{margin-right:-56px!important}.mr-xl-n15{margin-right:-60px!important}.mr-xl-n16{margin-right:-64px!important}.mb-xl-n1{margin-bottom:-4px!important}.mb-xl-n2{margin-bottom:-8px!important}.mb-xl-n3{margin-bottom:-12px!important}.mb-xl-n4{margin-bottom:-16px!important}.mb-xl-n5{margin-bottom:-20px!important}.mb-xl-n6{margin-bottom:-24px!important}.mb-xl-n7{margin-bottom:-28px!important}.mb-xl-n8{margin-bottom:-32px!important}.mb-xl-n9{margin-bottom:-36px!important}.mb-xl-n10{margin-bottom:-40px!important}.mb-xl-n11{margin-bottom:-44px!important}.mb-xl-n12{margin-bottom:-48px!important}.mb-xl-n13{margin-bottom:-52px!important}.mb-xl-n14{margin-bottom:-56px!important}.mb-xl-n15{margin-bottom:-60px!important}.mb-xl-n16{margin-bottom:-64px!important}.ml-xl-n1{margin-left:-4px!important}.ml-xl-n2{margin-left:-8px!important}.ml-xl-n3{margin-left:-12px!important}.ml-xl-n4{margin-left:-16px!important}.ml-xl-n5{margin-left:-20px!important}.ml-xl-n6{margin-left:-24px!important}.ml-xl-n7{margin-left:-28px!important}.ml-xl-n8{margin-left:-32px!important}.ml-xl-n9{margin-left:-36px!important}.ml-xl-n10{margin-left:-40px!important}.ml-xl-n11{margin-left:-44px!important}.ml-xl-n12{margin-left:-48px!important}.ml-xl-n13{margin-left:-52px!important}.ml-xl-n14{margin-left:-56px!important}.ml-xl-n15{margin-left:-60px!important}.ml-xl-n16{margin-left:-64px!important}.ms-xl-n1{margin-inline-start:-4px!important}.ms-xl-n2{margin-inline-start:-8px!important}.ms-xl-n3{margin-inline-start:-12px!important}.ms-xl-n4{margin-inline-start:-16px!important}.ms-xl-n5{margin-inline-start:-20px!important}.ms-xl-n6{margin-inline-start:-24px!important}.ms-xl-n7{margin-inline-start:-28px!important}.ms-xl-n8{margin-inline-start:-32px!important}.ms-xl-n9{margin-inline-start:-36px!important}.ms-xl-n10{margin-inline-start:-40px!important}.ms-xl-n11{margin-inline-start:-44px!important}.ms-xl-n12{margin-inline-start:-48px!important}.ms-xl-n13{margin-inline-start:-52px!important}.ms-xl-n14{margin-inline-start:-56px!important}.ms-xl-n15{margin-inline-start:-60px!important}.ms-xl-n16{margin-inline-start:-64px!important}.me-xl-n1{margin-inline-end:-4px!important}.me-xl-n2{margin-inline-end:-8px!important}.me-xl-n3{margin-inline-end:-12px!important}.me-xl-n4{margin-inline-end:-16px!important}.me-xl-n5{margin-inline-end:-20px!important}.me-xl-n6{margin-inline-end:-24px!important}.me-xl-n7{margin-inline-end:-28px!important}.me-xl-n8{margin-inline-end:-32px!important}.me-xl-n9{margin-inline-end:-36px!important}.me-xl-n10{margin-inline-end:-40px!important}.me-xl-n11{margin-inline-end:-44px!important}.me-xl-n12{margin-inline-end:-48px!important}.me-xl-n13{margin-inline-end:-52px!important}.me-xl-n14{margin-inline-end:-56px!important}.me-xl-n15{margin-inline-end:-60px!important}.me-xl-n16{margin-inline-end:-64px!important}.pa-xl-0{padding:0!important}.pa-xl-1{padding:4px!important}.pa-xl-2{padding:8px!important}.pa-xl-3{padding:12px!important}.pa-xl-4{padding:16px!important}.pa-xl-5{padding:20px!important}.pa-xl-6{padding:24px!important}.pa-xl-7{padding:28px!important}.pa-xl-8{padding:32px!important}.pa-xl-9{padding:36px!important}.pa-xl-10{padding:40px!important}.pa-xl-11{padding:44px!important}.pa-xl-12{padding:48px!important}.pa-xl-13{padding:52px!important}.pa-xl-14{padding:56px!important}.pa-xl-15{padding:60px!important}.pa-xl-16{padding:64px!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:4px!important;padding-left:4px!important}.px-xl-2{padding-right:8px!important;padding-left:8px!important}.px-xl-3{padding-right:12px!important;padding-left:12px!important}.px-xl-4{padding-right:16px!important;padding-left:16px!important}.px-xl-5{padding-right:20px!important;padding-left:20px!important}.px-xl-6{padding-right:24px!important;padding-left:24px!important}.px-xl-7{padding-right:28px!important;padding-left:28px!important}.px-xl-8{padding-right:32px!important;padding-left:32px!important}.px-xl-9{padding-right:36px!important;padding-left:36px!important}.px-xl-10{padding-right:40px!important;padding-left:40px!important}.px-xl-11{padding-right:44px!important;padding-left:44px!important}.px-xl-12{padding-right:48px!important;padding-left:48px!important}.px-xl-13{padding-right:52px!important;padding-left:52px!important}.px-xl-14{padding-right:56px!important;padding-left:56px!important}.px-xl-15{padding-right:60px!important;padding-left:60px!important}.px-xl-16{padding-right:64px!important;padding-left:64px!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:4px!important;padding-bottom:4px!important}.py-xl-2{padding-top:8px!important;padding-bottom:8px!important}.py-xl-3{padding-top:12px!important;padding-bottom:12px!important}.py-xl-4{padding-top:16px!important;padding-bottom:16px!important}.py-xl-5{padding-top:20px!important;padding-bottom:20px!important}.py-xl-6{padding-top:24px!important;padding-bottom:24px!important}.py-xl-7{padding-top:28px!important;padding-bottom:28px!important}.py-xl-8{padding-top:32px!important;padding-bottom:32px!important}.py-xl-9{padding-top:36px!important;padding-bottom:36px!important}.py-xl-10{padding-top:40px!important;padding-bottom:40px!important}.py-xl-11{padding-top:44px!important;padding-bottom:44px!important}.py-xl-12{padding-top:48px!important;padding-bottom:48px!important}.py-xl-13{padding-top:52px!important;padding-bottom:52px!important}.py-xl-14{padding-top:56px!important;padding-bottom:56px!important}.py-xl-15{padding-top:60px!important;padding-bottom:60px!important}.py-xl-16{padding-top:64px!important;padding-bottom:64px!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:4px!important}.pt-xl-2{padding-top:8px!important}.pt-xl-3{padding-top:12px!important}.pt-xl-4{padding-top:16px!important}.pt-xl-5{padding-top:20px!important}.pt-xl-6{padding-top:24px!important}.pt-xl-7{padding-top:28px!important}.pt-xl-8{padding-top:32px!important}.pt-xl-9{padding-top:36px!important}.pt-xl-10{padding-top:40px!important}.pt-xl-11{padding-top:44px!important}.pt-xl-12{padding-top:48px!important}.pt-xl-13{padding-top:52px!important}.pt-xl-14{padding-top:56px!important}.pt-xl-15{padding-top:60px!important}.pt-xl-16{padding-top:64px!important}.pr-xl-0{padding-right:0!important}.pr-xl-1{padding-right:4px!important}.pr-xl-2{padding-right:8px!important}.pr-xl-3{padding-right:12px!important}.pr-xl-4{padding-right:16px!important}.pr-xl-5{padding-right:20px!important}.pr-xl-6{padding-right:24px!important}.pr-xl-7{padding-right:28px!important}.pr-xl-8{padding-right:32px!important}.pr-xl-9{padding-right:36px!important}.pr-xl-10{padding-right:40px!important}.pr-xl-11{padding-right:44px!important}.pr-xl-12{padding-right:48px!important}.pr-xl-13{padding-right:52px!important}.pr-xl-14{padding-right:56px!important}.pr-xl-15{padding-right:60px!important}.pr-xl-16{padding-right:64px!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:4px!important}.pb-xl-2{padding-bottom:8px!important}.pb-xl-3{padding-bottom:12px!important}.pb-xl-4{padding-bottom:16px!important}.pb-xl-5{padding-bottom:20px!important}.pb-xl-6{padding-bottom:24px!important}.pb-xl-7{padding-bottom:28px!important}.pb-xl-8{padding-bottom:32px!important}.pb-xl-9{padding-bottom:36px!important}.pb-xl-10{padding-bottom:40px!important}.pb-xl-11{padding-bottom:44px!important}.pb-xl-12{padding-bottom:48px!important}.pb-xl-13{padding-bottom:52px!important}.pb-xl-14{padding-bottom:56px!important}.pb-xl-15{padding-bottom:60px!important}.pb-xl-16{padding-bottom:64px!important}.pl-xl-0{padding-left:0!important}.pl-xl-1{padding-left:4px!important}.pl-xl-2{padding-left:8px!important}.pl-xl-3{padding-left:12px!important}.pl-xl-4{padding-left:16px!important}.pl-xl-5{padding-left:20px!important}.pl-xl-6{padding-left:24px!important}.pl-xl-7{padding-left:28px!important}.pl-xl-8{padding-left:32px!important}.pl-xl-9{padding-left:36px!important}.pl-xl-10{padding-left:40px!important}.pl-xl-11{padding-left:44px!important}.pl-xl-12{padding-left:48px!important}.pl-xl-13{padding-left:52px!important}.pl-xl-14{padding-left:56px!important}.pl-xl-15{padding-left:60px!important}.pl-xl-16{padding-left:64px!important}.ps-xl-0{padding-inline-start:0px!important}.ps-xl-1{padding-inline-start:4px!important}.ps-xl-2{padding-inline-start:8px!important}.ps-xl-3{padding-inline-start:12px!important}.ps-xl-4{padding-inline-start:16px!important}.ps-xl-5{padding-inline-start:20px!important}.ps-xl-6{padding-inline-start:24px!important}.ps-xl-7{padding-inline-start:28px!important}.ps-xl-8{padding-inline-start:32px!important}.ps-xl-9{padding-inline-start:36px!important}.ps-xl-10{padding-inline-start:40px!important}.ps-xl-11{padding-inline-start:44px!important}.ps-xl-12{padding-inline-start:48px!important}.ps-xl-13{padding-inline-start:52px!important}.ps-xl-14{padding-inline-start:56px!important}.ps-xl-15{padding-inline-start:60px!important}.ps-xl-16{padding-inline-start:64px!important}.pe-xl-0{padding-inline-end:0px!important}.pe-xl-1{padding-inline-end:4px!important}.pe-xl-2{padding-inline-end:8px!important}.pe-xl-3{padding-inline-end:12px!important}.pe-xl-4{padding-inline-end:16px!important}.pe-xl-5{padding-inline-end:20px!important}.pe-xl-6{padding-inline-end:24px!important}.pe-xl-7{padding-inline-end:28px!important}.pe-xl-8{padding-inline-end:32px!important}.pe-xl-9{padding-inline-end:36px!important}.pe-xl-10{padding-inline-end:40px!important}.pe-xl-11{padding-inline-end:44px!important}.pe-xl-12{padding-inline-end:48px!important}.pe-xl-13{padding-inline-end:52px!important}.pe-xl-14{padding-inline-end:56px!important}.pe-xl-15{padding-inline-end:60px!important}.pe-xl-16{padding-inline-end:64px!important}.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}.text-xl-justify{text-align:justify!important}.text-xl-start{text-align:start!important}.text-xl-end{text-align:end!important}.text-xl-h1{font-size:6rem!important;font-weight:300;line-height:1;letter-spacing:-.015625em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xl-h2{font-size:3.75rem!important;font-weight:300;line-height:1;letter-spacing:-.0083333333em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xl-h3{font-size:3rem!important;font-weight:400;line-height:1.05;letter-spacing:normal!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xl-h4{font-size:2.125rem!important;font-weight:400;line-height:1.175;letter-spacing:.0073529412em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xl-h5{font-size:1.5rem!important;font-weight:400;line-height:1.333;letter-spacing:normal!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xl-h6{font-size:1.25rem!important;font-weight:500;line-height:1.6;letter-spacing:.0125em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xl-subtitle-1{font-size:1rem!important;font-weight:400;line-height:1.75;letter-spacing:.009375em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xl-subtitle-2{font-size:.875rem!important;font-weight:500;line-height:1.6;letter-spacing:.0071428571em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xl-body-1{font-size:1rem!important;font-weight:400;line-height:1.5;letter-spacing:.03125em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xl-body-2{font-size:.875rem!important;font-weight:400;line-height:1.425;letter-spacing:.0178571429em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xl-button{font-size:.875rem!important;font-weight:500;line-height:2.6;letter-spacing:.0892857143em!important;font-family:Roboto,sans-serif;text-transform:uppercase!important}.text-xl-caption{font-size:.75rem!important;font-weight:400;line-height:1.667;letter-spacing:.0333333333em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xl-overline{font-size:.75rem!important;font-weight:500;line-height:2.667;letter-spacing:.1666666667em!important;font-family:Roboto,sans-serif;text-transform:uppercase!important}.h-xl-auto{height:auto!important}.h-xl-screen{height:100vh!important}.h-xl-0{height:0!important}.h-xl-25{height:25%!important}.h-xl-50{height:50%!important}.h-xl-75{height:75%!important}.h-xl-100{height:100%!important}.w-xl-auto{width:auto!important}.w-xl-0{width:0!important}.w-xl-25{width:25%!important}.w-xl-33{width:33%!important}.w-xl-50{width:50%!important}.w-xl-66{width:66%!important}.w-xl-75{width:75%!important}.w-xl-100{width:100%!important}}@media (min-width: 2560px){.d-xxl-none{display:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.float-xxl-none{float:none!important}.float-xxl-left{float:left!important}.float-xxl-right{float:right!important}.v-locale--is-rtl .float-xxl-end{float:left!important}.v-locale--is-rtl .float-xxl-start,.v-locale--is-ltr .float-xxl-end{float:right!important}.v-locale--is-ltr .float-xxl-start{float:left!important}.flex-xxl-fill,.flex-xxl-1-1{flex:1 1 auto!important}.flex-xxl-1-0{flex:1 0 auto!important}.flex-xxl-0-1{flex:0 1 auto!important}.flex-xxl-0-0{flex:0 0 auto!important}.flex-xxl-1-1-100{flex:1 1 100%!important}.flex-xxl-1-0-100{flex:1 0 100%!important}.flex-xxl-0-1-100{flex:0 1 100%!important}.flex-xxl-0-0-100{flex:0 0 100%!important}.flex-xxl-1-1-0{flex:1 1 0!important}.flex-xxl-1-0-0{flex:1 0 0!important}.flex-xxl-0-1-0{flex:0 1 0!important}.flex-xxl-0-0-0{flex:0 0 0!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.justify-xxl-start{justify-content:flex-start!important}.justify-xxl-end{justify-content:flex-end!important}.justify-xxl-center{justify-content:center!important}.justify-xxl-space-between{justify-content:space-between!important}.justify-xxl-space-around{justify-content:space-around!important}.justify-xxl-space-evenly{justify-content:space-evenly!important}.align-xxl-start{align-items:flex-start!important}.align-xxl-end{align-items:flex-end!important}.align-xxl-center{align-items:center!important}.align-xxl-baseline{align-items:baseline!important}.align-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-space-between{align-content:space-between!important}.align-content-xxl-space-around{align-content:space-around!important}.align-content-xxl-space-evenly{align-content:space-evenly!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-6{order:6!important}.order-xxl-7{order:7!important}.order-xxl-8{order:8!important}.order-xxl-9{order:9!important}.order-xxl-10{order:10!important}.order-xxl-11{order:11!important}.order-xxl-12{order:12!important}.order-xxl-last{order:13!important}.ga-xxl-0{gap:0px!important}.ga-xxl-1{gap:4px!important}.ga-xxl-2{gap:8px!important}.ga-xxl-3{gap:12px!important}.ga-xxl-4{gap:16px!important}.ga-xxl-5{gap:20px!important}.ga-xxl-6{gap:24px!important}.ga-xxl-7{gap:28px!important}.ga-xxl-8{gap:32px!important}.ga-xxl-9{gap:36px!important}.ga-xxl-10{gap:40px!important}.ga-xxl-11{gap:44px!important}.ga-xxl-12{gap:48px!important}.ga-xxl-13{gap:52px!important}.ga-xxl-14{gap:56px!important}.ga-xxl-15{gap:60px!important}.ga-xxl-16{gap:64px!important}.ga-xxl-auto{gap:auto!important}.gr-xxl-0{row-gap:0px!important}.gr-xxl-1{row-gap:4px!important}.gr-xxl-2{row-gap:8px!important}.gr-xxl-3{row-gap:12px!important}.gr-xxl-4{row-gap:16px!important}.gr-xxl-5{row-gap:20px!important}.gr-xxl-6{row-gap:24px!important}.gr-xxl-7{row-gap:28px!important}.gr-xxl-8{row-gap:32px!important}.gr-xxl-9{row-gap:36px!important}.gr-xxl-10{row-gap:40px!important}.gr-xxl-11{row-gap:44px!important}.gr-xxl-12{row-gap:48px!important}.gr-xxl-13{row-gap:52px!important}.gr-xxl-14{row-gap:56px!important}.gr-xxl-15{row-gap:60px!important}.gr-xxl-16{row-gap:64px!important}.gr-xxl-auto{row-gap:auto!important}.gc-xxl-0{column-gap:0px!important}.gc-xxl-1{column-gap:4px!important}.gc-xxl-2{column-gap:8px!important}.gc-xxl-3{column-gap:12px!important}.gc-xxl-4{column-gap:16px!important}.gc-xxl-5{column-gap:20px!important}.gc-xxl-6{column-gap:24px!important}.gc-xxl-7{column-gap:28px!important}.gc-xxl-8{column-gap:32px!important}.gc-xxl-9{column-gap:36px!important}.gc-xxl-10{column-gap:40px!important}.gc-xxl-11{column-gap:44px!important}.gc-xxl-12{column-gap:48px!important}.gc-xxl-13{column-gap:52px!important}.gc-xxl-14{column-gap:56px!important}.gc-xxl-15{column-gap:60px!important}.gc-xxl-16{column-gap:64px!important}.gc-xxl-auto{column-gap:auto!important}.ma-xxl-0{margin:0!important}.ma-xxl-1{margin:4px!important}.ma-xxl-2{margin:8px!important}.ma-xxl-3{margin:12px!important}.ma-xxl-4{margin:16px!important}.ma-xxl-5{margin:20px!important}.ma-xxl-6{margin:24px!important}.ma-xxl-7{margin:28px!important}.ma-xxl-8{margin:32px!important}.ma-xxl-9{margin:36px!important}.ma-xxl-10{margin:40px!important}.ma-xxl-11{margin:44px!important}.ma-xxl-12{margin:48px!important}.ma-xxl-13{margin:52px!important}.ma-xxl-14{margin:56px!important}.ma-xxl-15{margin:60px!important}.ma-xxl-16{margin:64px!important}.ma-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:4px!important;margin-left:4px!important}.mx-xxl-2{margin-right:8px!important;margin-left:8px!important}.mx-xxl-3{margin-right:12px!important;margin-left:12px!important}.mx-xxl-4{margin-right:16px!important;margin-left:16px!important}.mx-xxl-5{margin-right:20px!important;margin-left:20px!important}.mx-xxl-6{margin-right:24px!important;margin-left:24px!important}.mx-xxl-7{margin-right:28px!important;margin-left:28px!important}.mx-xxl-8{margin-right:32px!important;margin-left:32px!important}.mx-xxl-9{margin-right:36px!important;margin-left:36px!important}.mx-xxl-10{margin-right:40px!important;margin-left:40px!important}.mx-xxl-11{margin-right:44px!important;margin-left:44px!important}.mx-xxl-12{margin-right:48px!important;margin-left:48px!important}.mx-xxl-13{margin-right:52px!important;margin-left:52px!important}.mx-xxl-14{margin-right:56px!important;margin-left:56px!important}.mx-xxl-15{margin-right:60px!important;margin-left:60px!important}.mx-xxl-16{margin-right:64px!important;margin-left:64px!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:4px!important;margin-bottom:4px!important}.my-xxl-2{margin-top:8px!important;margin-bottom:8px!important}.my-xxl-3{margin-top:12px!important;margin-bottom:12px!important}.my-xxl-4{margin-top:16px!important;margin-bottom:16px!important}.my-xxl-5{margin-top:20px!important;margin-bottom:20px!important}.my-xxl-6{margin-top:24px!important;margin-bottom:24px!important}.my-xxl-7{margin-top:28px!important;margin-bottom:28px!important}.my-xxl-8{margin-top:32px!important;margin-bottom:32px!important}.my-xxl-9{margin-top:36px!important;margin-bottom:36px!important}.my-xxl-10{margin-top:40px!important;margin-bottom:40px!important}.my-xxl-11{margin-top:44px!important;margin-bottom:44px!important}.my-xxl-12{margin-top:48px!important;margin-bottom:48px!important}.my-xxl-13{margin-top:52px!important;margin-bottom:52px!important}.my-xxl-14{margin-top:56px!important;margin-bottom:56px!important}.my-xxl-15{margin-top:60px!important;margin-bottom:60px!important}.my-xxl-16{margin-top:64px!important;margin-bottom:64px!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:4px!important}.mt-xxl-2{margin-top:8px!important}.mt-xxl-3{margin-top:12px!important}.mt-xxl-4{margin-top:16px!important}.mt-xxl-5{margin-top:20px!important}.mt-xxl-6{margin-top:24px!important}.mt-xxl-7{margin-top:28px!important}.mt-xxl-8{margin-top:32px!important}.mt-xxl-9{margin-top:36px!important}.mt-xxl-10{margin-top:40px!important}.mt-xxl-11{margin-top:44px!important}.mt-xxl-12{margin-top:48px!important}.mt-xxl-13{margin-top:52px!important}.mt-xxl-14{margin-top:56px!important}.mt-xxl-15{margin-top:60px!important}.mt-xxl-16{margin-top:64px!important}.mt-xxl-auto{margin-top:auto!important}.mr-xxl-0{margin-right:0!important}.mr-xxl-1{margin-right:4px!important}.mr-xxl-2{margin-right:8px!important}.mr-xxl-3{margin-right:12px!important}.mr-xxl-4{margin-right:16px!important}.mr-xxl-5{margin-right:20px!important}.mr-xxl-6{margin-right:24px!important}.mr-xxl-7{margin-right:28px!important}.mr-xxl-8{margin-right:32px!important}.mr-xxl-9{margin-right:36px!important}.mr-xxl-10{margin-right:40px!important}.mr-xxl-11{margin-right:44px!important}.mr-xxl-12{margin-right:48px!important}.mr-xxl-13{margin-right:52px!important}.mr-xxl-14{margin-right:56px!important}.mr-xxl-15{margin-right:60px!important}.mr-xxl-16{margin-right:64px!important}.mr-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:4px!important}.mb-xxl-2{margin-bottom:8px!important}.mb-xxl-3{margin-bottom:12px!important}.mb-xxl-4{margin-bottom:16px!important}.mb-xxl-5{margin-bottom:20px!important}.mb-xxl-6{margin-bottom:24px!important}.mb-xxl-7{margin-bottom:28px!important}.mb-xxl-8{margin-bottom:32px!important}.mb-xxl-9{margin-bottom:36px!important}.mb-xxl-10{margin-bottom:40px!important}.mb-xxl-11{margin-bottom:44px!important}.mb-xxl-12{margin-bottom:48px!important}.mb-xxl-13{margin-bottom:52px!important}.mb-xxl-14{margin-bottom:56px!important}.mb-xxl-15{margin-bottom:60px!important}.mb-xxl-16{margin-bottom:64px!important}.mb-xxl-auto{margin-bottom:auto!important}.ml-xxl-0{margin-left:0!important}.ml-xxl-1{margin-left:4px!important}.ml-xxl-2{margin-left:8px!important}.ml-xxl-3{margin-left:12px!important}.ml-xxl-4{margin-left:16px!important}.ml-xxl-5{margin-left:20px!important}.ml-xxl-6{margin-left:24px!important}.ml-xxl-7{margin-left:28px!important}.ml-xxl-8{margin-left:32px!important}.ml-xxl-9{margin-left:36px!important}.ml-xxl-10{margin-left:40px!important}.ml-xxl-11{margin-left:44px!important}.ml-xxl-12{margin-left:48px!important}.ml-xxl-13{margin-left:52px!important}.ml-xxl-14{margin-left:56px!important}.ml-xxl-15{margin-left:60px!important}.ml-xxl-16{margin-left:64px!important}.ml-xxl-auto{margin-left:auto!important}.ms-xxl-0{margin-inline-start:0px!important}.ms-xxl-1{margin-inline-start:4px!important}.ms-xxl-2{margin-inline-start:8px!important}.ms-xxl-3{margin-inline-start:12px!important}.ms-xxl-4{margin-inline-start:16px!important}.ms-xxl-5{margin-inline-start:20px!important}.ms-xxl-6{margin-inline-start:24px!important}.ms-xxl-7{margin-inline-start:28px!important}.ms-xxl-8{margin-inline-start:32px!important}.ms-xxl-9{margin-inline-start:36px!important}.ms-xxl-10{margin-inline-start:40px!important}.ms-xxl-11{margin-inline-start:44px!important}.ms-xxl-12{margin-inline-start:48px!important}.ms-xxl-13{margin-inline-start:52px!important}.ms-xxl-14{margin-inline-start:56px!important}.ms-xxl-15{margin-inline-start:60px!important}.ms-xxl-16{margin-inline-start:64px!important}.ms-xxl-auto{margin-inline-start:auto!important}.me-xxl-0{margin-inline-end:0px!important}.me-xxl-1{margin-inline-end:4px!important}.me-xxl-2{margin-inline-end:8px!important}.me-xxl-3{margin-inline-end:12px!important}.me-xxl-4{margin-inline-end:16px!important}.me-xxl-5{margin-inline-end:20px!important}.me-xxl-6{margin-inline-end:24px!important}.me-xxl-7{margin-inline-end:28px!important}.me-xxl-8{margin-inline-end:32px!important}.me-xxl-9{margin-inline-end:36px!important}.me-xxl-10{margin-inline-end:40px!important}.me-xxl-11{margin-inline-end:44px!important}.me-xxl-12{margin-inline-end:48px!important}.me-xxl-13{margin-inline-end:52px!important}.me-xxl-14{margin-inline-end:56px!important}.me-xxl-15{margin-inline-end:60px!important}.me-xxl-16{margin-inline-end:64px!important}.me-xxl-auto{margin-inline-end:auto!important}.ma-xxl-n1{margin:-4px!important}.ma-xxl-n2{margin:-8px!important}.ma-xxl-n3{margin:-12px!important}.ma-xxl-n4{margin:-16px!important}.ma-xxl-n5{margin:-20px!important}.ma-xxl-n6{margin:-24px!important}.ma-xxl-n7{margin:-28px!important}.ma-xxl-n8{margin:-32px!important}.ma-xxl-n9{margin:-36px!important}.ma-xxl-n10{margin:-40px!important}.ma-xxl-n11{margin:-44px!important}.ma-xxl-n12{margin:-48px!important}.ma-xxl-n13{margin:-52px!important}.ma-xxl-n14{margin:-56px!important}.ma-xxl-n15{margin:-60px!important}.ma-xxl-n16{margin:-64px!important}.mx-xxl-n1{margin-right:-4px!important;margin-left:-4px!important}.mx-xxl-n2{margin-right:-8px!important;margin-left:-8px!important}.mx-xxl-n3{margin-right:-12px!important;margin-left:-12px!important}.mx-xxl-n4{margin-right:-16px!important;margin-left:-16px!important}.mx-xxl-n5{margin-right:-20px!important;margin-left:-20px!important}.mx-xxl-n6{margin-right:-24px!important;margin-left:-24px!important}.mx-xxl-n7{margin-right:-28px!important;margin-left:-28px!important}.mx-xxl-n8{margin-right:-32px!important;margin-left:-32px!important}.mx-xxl-n9{margin-right:-36px!important;margin-left:-36px!important}.mx-xxl-n10{margin-right:-40px!important;margin-left:-40px!important}.mx-xxl-n11{margin-right:-44px!important;margin-left:-44px!important}.mx-xxl-n12{margin-right:-48px!important;margin-left:-48px!important}.mx-xxl-n13{margin-right:-52px!important;margin-left:-52px!important}.mx-xxl-n14{margin-right:-56px!important;margin-left:-56px!important}.mx-xxl-n15{margin-right:-60px!important;margin-left:-60px!important}.mx-xxl-n16{margin-right:-64px!important;margin-left:-64px!important}.my-xxl-n1{margin-top:-4px!important;margin-bottom:-4px!important}.my-xxl-n2{margin-top:-8px!important;margin-bottom:-8px!important}.my-xxl-n3{margin-top:-12px!important;margin-bottom:-12px!important}.my-xxl-n4{margin-top:-16px!important;margin-bottom:-16px!important}.my-xxl-n5{margin-top:-20px!important;margin-bottom:-20px!important}.my-xxl-n6{margin-top:-24px!important;margin-bottom:-24px!important}.my-xxl-n7{margin-top:-28px!important;margin-bottom:-28px!important}.my-xxl-n8{margin-top:-32px!important;margin-bottom:-32px!important}.my-xxl-n9{margin-top:-36px!important;margin-bottom:-36px!important}.my-xxl-n10{margin-top:-40px!important;margin-bottom:-40px!important}.my-xxl-n11{margin-top:-44px!important;margin-bottom:-44px!important}.my-xxl-n12{margin-top:-48px!important;margin-bottom:-48px!important}.my-xxl-n13{margin-top:-52px!important;margin-bottom:-52px!important}.my-xxl-n14{margin-top:-56px!important;margin-bottom:-56px!important}.my-xxl-n15{margin-top:-60px!important;margin-bottom:-60px!important}.my-xxl-n16{margin-top:-64px!important;margin-bottom:-64px!important}.mt-xxl-n1{margin-top:-4px!important}.mt-xxl-n2{margin-top:-8px!important}.mt-xxl-n3{margin-top:-12px!important}.mt-xxl-n4{margin-top:-16px!important}.mt-xxl-n5{margin-top:-20px!important}.mt-xxl-n6{margin-top:-24px!important}.mt-xxl-n7{margin-top:-28px!important}.mt-xxl-n8{margin-top:-32px!important}.mt-xxl-n9{margin-top:-36px!important}.mt-xxl-n10{margin-top:-40px!important}.mt-xxl-n11{margin-top:-44px!important}.mt-xxl-n12{margin-top:-48px!important}.mt-xxl-n13{margin-top:-52px!important}.mt-xxl-n14{margin-top:-56px!important}.mt-xxl-n15{margin-top:-60px!important}.mt-xxl-n16{margin-top:-64px!important}.mr-xxl-n1{margin-right:-4px!important}.mr-xxl-n2{margin-right:-8px!important}.mr-xxl-n3{margin-right:-12px!important}.mr-xxl-n4{margin-right:-16px!important}.mr-xxl-n5{margin-right:-20px!important}.mr-xxl-n6{margin-right:-24px!important}.mr-xxl-n7{margin-right:-28px!important}.mr-xxl-n8{margin-right:-32px!important}.mr-xxl-n9{margin-right:-36px!important}.mr-xxl-n10{margin-right:-40px!important}.mr-xxl-n11{margin-right:-44px!important}.mr-xxl-n12{margin-right:-48px!important}.mr-xxl-n13{margin-right:-52px!important}.mr-xxl-n14{margin-right:-56px!important}.mr-xxl-n15{margin-right:-60px!important}.mr-xxl-n16{margin-right:-64px!important}.mb-xxl-n1{margin-bottom:-4px!important}.mb-xxl-n2{margin-bottom:-8px!important}.mb-xxl-n3{margin-bottom:-12px!important}.mb-xxl-n4{margin-bottom:-16px!important}.mb-xxl-n5{margin-bottom:-20px!important}.mb-xxl-n6{margin-bottom:-24px!important}.mb-xxl-n7{margin-bottom:-28px!important}.mb-xxl-n8{margin-bottom:-32px!important}.mb-xxl-n9{margin-bottom:-36px!important}.mb-xxl-n10{margin-bottom:-40px!important}.mb-xxl-n11{margin-bottom:-44px!important}.mb-xxl-n12{margin-bottom:-48px!important}.mb-xxl-n13{margin-bottom:-52px!important}.mb-xxl-n14{margin-bottom:-56px!important}.mb-xxl-n15{margin-bottom:-60px!important}.mb-xxl-n16{margin-bottom:-64px!important}.ml-xxl-n1{margin-left:-4px!important}.ml-xxl-n2{margin-left:-8px!important}.ml-xxl-n3{margin-left:-12px!important}.ml-xxl-n4{margin-left:-16px!important}.ml-xxl-n5{margin-left:-20px!important}.ml-xxl-n6{margin-left:-24px!important}.ml-xxl-n7{margin-left:-28px!important}.ml-xxl-n8{margin-left:-32px!important}.ml-xxl-n9{margin-left:-36px!important}.ml-xxl-n10{margin-left:-40px!important}.ml-xxl-n11{margin-left:-44px!important}.ml-xxl-n12{margin-left:-48px!important}.ml-xxl-n13{margin-left:-52px!important}.ml-xxl-n14{margin-left:-56px!important}.ml-xxl-n15{margin-left:-60px!important}.ml-xxl-n16{margin-left:-64px!important}.ms-xxl-n1{margin-inline-start:-4px!important}.ms-xxl-n2{margin-inline-start:-8px!important}.ms-xxl-n3{margin-inline-start:-12px!important}.ms-xxl-n4{margin-inline-start:-16px!important}.ms-xxl-n5{margin-inline-start:-20px!important}.ms-xxl-n6{margin-inline-start:-24px!important}.ms-xxl-n7{margin-inline-start:-28px!important}.ms-xxl-n8{margin-inline-start:-32px!important}.ms-xxl-n9{margin-inline-start:-36px!important}.ms-xxl-n10{margin-inline-start:-40px!important}.ms-xxl-n11{margin-inline-start:-44px!important}.ms-xxl-n12{margin-inline-start:-48px!important}.ms-xxl-n13{margin-inline-start:-52px!important}.ms-xxl-n14{margin-inline-start:-56px!important}.ms-xxl-n15{margin-inline-start:-60px!important}.ms-xxl-n16{margin-inline-start:-64px!important}.me-xxl-n1{margin-inline-end:-4px!important}.me-xxl-n2{margin-inline-end:-8px!important}.me-xxl-n3{margin-inline-end:-12px!important}.me-xxl-n4{margin-inline-end:-16px!important}.me-xxl-n5{margin-inline-end:-20px!important}.me-xxl-n6{margin-inline-end:-24px!important}.me-xxl-n7{margin-inline-end:-28px!important}.me-xxl-n8{margin-inline-end:-32px!important}.me-xxl-n9{margin-inline-end:-36px!important}.me-xxl-n10{margin-inline-end:-40px!important}.me-xxl-n11{margin-inline-end:-44px!important}.me-xxl-n12{margin-inline-end:-48px!important}.me-xxl-n13{margin-inline-end:-52px!important}.me-xxl-n14{margin-inline-end:-56px!important}.me-xxl-n15{margin-inline-end:-60px!important}.me-xxl-n16{margin-inline-end:-64px!important}.pa-xxl-0{padding:0!important}.pa-xxl-1{padding:4px!important}.pa-xxl-2{padding:8px!important}.pa-xxl-3{padding:12px!important}.pa-xxl-4{padding:16px!important}.pa-xxl-5{padding:20px!important}.pa-xxl-6{padding:24px!important}.pa-xxl-7{padding:28px!important}.pa-xxl-8{padding:32px!important}.pa-xxl-9{padding:36px!important}.pa-xxl-10{padding:40px!important}.pa-xxl-11{padding:44px!important}.pa-xxl-12{padding:48px!important}.pa-xxl-13{padding:52px!important}.pa-xxl-14{padding:56px!important}.pa-xxl-15{padding:60px!important}.pa-xxl-16{padding:64px!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:4px!important;padding-left:4px!important}.px-xxl-2{padding-right:8px!important;padding-left:8px!important}.px-xxl-3{padding-right:12px!important;padding-left:12px!important}.px-xxl-4{padding-right:16px!important;padding-left:16px!important}.px-xxl-5{padding-right:20px!important;padding-left:20px!important}.px-xxl-6{padding-right:24px!important;padding-left:24px!important}.px-xxl-7{padding-right:28px!important;padding-left:28px!important}.px-xxl-8{padding-right:32px!important;padding-left:32px!important}.px-xxl-9{padding-right:36px!important;padding-left:36px!important}.px-xxl-10{padding-right:40px!important;padding-left:40px!important}.px-xxl-11{padding-right:44px!important;padding-left:44px!important}.px-xxl-12{padding-right:48px!important;padding-left:48px!important}.px-xxl-13{padding-right:52px!important;padding-left:52px!important}.px-xxl-14{padding-right:56px!important;padding-left:56px!important}.px-xxl-15{padding-right:60px!important;padding-left:60px!important}.px-xxl-16{padding-right:64px!important;padding-left:64px!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:4px!important;padding-bottom:4px!important}.py-xxl-2{padding-top:8px!important;padding-bottom:8px!important}.py-xxl-3{padding-top:12px!important;padding-bottom:12px!important}.py-xxl-4{padding-top:16px!important;padding-bottom:16px!important}.py-xxl-5{padding-top:20px!important;padding-bottom:20px!important}.py-xxl-6{padding-top:24px!important;padding-bottom:24px!important}.py-xxl-7{padding-top:28px!important;padding-bottom:28px!important}.py-xxl-8{padding-top:32px!important;padding-bottom:32px!important}.py-xxl-9{padding-top:36px!important;padding-bottom:36px!important}.py-xxl-10{padding-top:40px!important;padding-bottom:40px!important}.py-xxl-11{padding-top:44px!important;padding-bottom:44px!important}.py-xxl-12{padding-top:48px!important;padding-bottom:48px!important}.py-xxl-13{padding-top:52px!important;padding-bottom:52px!important}.py-xxl-14{padding-top:56px!important;padding-bottom:56px!important}.py-xxl-15{padding-top:60px!important;padding-bottom:60px!important}.py-xxl-16{padding-top:64px!important;padding-bottom:64px!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:4px!important}.pt-xxl-2{padding-top:8px!important}.pt-xxl-3{padding-top:12px!important}.pt-xxl-4{padding-top:16px!important}.pt-xxl-5{padding-top:20px!important}.pt-xxl-6{padding-top:24px!important}.pt-xxl-7{padding-top:28px!important}.pt-xxl-8{padding-top:32px!important}.pt-xxl-9{padding-top:36px!important}.pt-xxl-10{padding-top:40px!important}.pt-xxl-11{padding-top:44px!important}.pt-xxl-12{padding-top:48px!important}.pt-xxl-13{padding-top:52px!important}.pt-xxl-14{padding-top:56px!important}.pt-xxl-15{padding-top:60px!important}.pt-xxl-16{padding-top:64px!important}.pr-xxl-0{padding-right:0!important}.pr-xxl-1{padding-right:4px!important}.pr-xxl-2{padding-right:8px!important}.pr-xxl-3{padding-right:12px!important}.pr-xxl-4{padding-right:16px!important}.pr-xxl-5{padding-right:20px!important}.pr-xxl-6{padding-right:24px!important}.pr-xxl-7{padding-right:28px!important}.pr-xxl-8{padding-right:32px!important}.pr-xxl-9{padding-right:36px!important}.pr-xxl-10{padding-right:40px!important}.pr-xxl-11{padding-right:44px!important}.pr-xxl-12{padding-right:48px!important}.pr-xxl-13{padding-right:52px!important}.pr-xxl-14{padding-right:56px!important}.pr-xxl-15{padding-right:60px!important}.pr-xxl-16{padding-right:64px!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:4px!important}.pb-xxl-2{padding-bottom:8px!important}.pb-xxl-3{padding-bottom:12px!important}.pb-xxl-4{padding-bottom:16px!important}.pb-xxl-5{padding-bottom:20px!important}.pb-xxl-6{padding-bottom:24px!important}.pb-xxl-7{padding-bottom:28px!important}.pb-xxl-8{padding-bottom:32px!important}.pb-xxl-9{padding-bottom:36px!important}.pb-xxl-10{padding-bottom:40px!important}.pb-xxl-11{padding-bottom:44px!important}.pb-xxl-12{padding-bottom:48px!important}.pb-xxl-13{padding-bottom:52px!important}.pb-xxl-14{padding-bottom:56px!important}.pb-xxl-15{padding-bottom:60px!important}.pb-xxl-16{padding-bottom:64px!important}.pl-xxl-0{padding-left:0!important}.pl-xxl-1{padding-left:4px!important}.pl-xxl-2{padding-left:8px!important}.pl-xxl-3{padding-left:12px!important}.pl-xxl-4{padding-left:16px!important}.pl-xxl-5{padding-left:20px!important}.pl-xxl-6{padding-left:24px!important}.pl-xxl-7{padding-left:28px!important}.pl-xxl-8{padding-left:32px!important}.pl-xxl-9{padding-left:36px!important}.pl-xxl-10{padding-left:40px!important}.pl-xxl-11{padding-left:44px!important}.pl-xxl-12{padding-left:48px!important}.pl-xxl-13{padding-left:52px!important}.pl-xxl-14{padding-left:56px!important}.pl-xxl-15{padding-left:60px!important}.pl-xxl-16{padding-left:64px!important}.ps-xxl-0{padding-inline-start:0px!important}.ps-xxl-1{padding-inline-start:4px!important}.ps-xxl-2{padding-inline-start:8px!important}.ps-xxl-3{padding-inline-start:12px!important}.ps-xxl-4{padding-inline-start:16px!important}.ps-xxl-5{padding-inline-start:20px!important}.ps-xxl-6{padding-inline-start:24px!important}.ps-xxl-7{padding-inline-start:28px!important}.ps-xxl-8{padding-inline-start:32px!important}.ps-xxl-9{padding-inline-start:36px!important}.ps-xxl-10{padding-inline-start:40px!important}.ps-xxl-11{padding-inline-start:44px!important}.ps-xxl-12{padding-inline-start:48px!important}.ps-xxl-13{padding-inline-start:52px!important}.ps-xxl-14{padding-inline-start:56px!important}.ps-xxl-15{padding-inline-start:60px!important}.ps-xxl-16{padding-inline-start:64px!important}.pe-xxl-0{padding-inline-end:0px!important}.pe-xxl-1{padding-inline-end:4px!important}.pe-xxl-2{padding-inline-end:8px!important}.pe-xxl-3{padding-inline-end:12px!important}.pe-xxl-4{padding-inline-end:16px!important}.pe-xxl-5{padding-inline-end:20px!important}.pe-xxl-6{padding-inline-end:24px!important}.pe-xxl-7{padding-inline-end:28px!important}.pe-xxl-8{padding-inline-end:32px!important}.pe-xxl-9{padding-inline-end:36px!important}.pe-xxl-10{padding-inline-end:40px!important}.pe-xxl-11{padding-inline-end:44px!important}.pe-xxl-12{padding-inline-end:48px!important}.pe-xxl-13{padding-inline-end:52px!important}.pe-xxl-14{padding-inline-end:56px!important}.pe-xxl-15{padding-inline-end:60px!important}.pe-xxl-16{padding-inline-end:64px!important}.text-xxl-left{text-align:left!important}.text-xxl-right{text-align:right!important}.text-xxl-center{text-align:center!important}.text-xxl-justify{text-align:justify!important}.text-xxl-start{text-align:start!important}.text-xxl-end{text-align:end!important}.text-xxl-h1{font-size:6rem!important;font-weight:300;line-height:1;letter-spacing:-.015625em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xxl-h2{font-size:3.75rem!important;font-weight:300;line-height:1;letter-spacing:-.0083333333em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xxl-h3{font-size:3rem!important;font-weight:400;line-height:1.05;letter-spacing:normal!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xxl-h4{font-size:2.125rem!important;font-weight:400;line-height:1.175;letter-spacing:.0073529412em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xxl-h5{font-size:1.5rem!important;font-weight:400;line-height:1.333;letter-spacing:normal!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xxl-h6{font-size:1.25rem!important;font-weight:500;line-height:1.6;letter-spacing:.0125em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xxl-subtitle-1{font-size:1rem!important;font-weight:400;line-height:1.75;letter-spacing:.009375em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xxl-subtitle-2{font-size:.875rem!important;font-weight:500;line-height:1.6;letter-spacing:.0071428571em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xxl-body-1{font-size:1rem!important;font-weight:400;line-height:1.5;letter-spacing:.03125em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xxl-body-2{font-size:.875rem!important;font-weight:400;line-height:1.425;letter-spacing:.0178571429em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xxl-button{font-size:.875rem!important;font-weight:500;line-height:2.6;letter-spacing:.0892857143em!important;font-family:Roboto,sans-serif;text-transform:uppercase!important}.text-xxl-caption{font-size:.75rem!important;font-weight:400;line-height:1.667;letter-spacing:.0333333333em!important;font-family:Roboto,sans-serif;text-transform:none!important}.text-xxl-overline{font-size:.75rem!important;font-weight:500;line-height:2.667;letter-spacing:.1666666667em!important;font-family:Roboto,sans-serif;text-transform:uppercase!important}.h-xxl-auto{height:auto!important}.h-xxl-screen{height:100vh!important}.h-xxl-0{height:0!important}.h-xxl-25{height:25%!important}.h-xxl-50{height:50%!important}.h-xxl-75{height:75%!important}.h-xxl-100{height:100%!important}.w-xxl-auto{width:auto!important}.w-xxl-0{width:0!important}.w-xxl-25{width:25%!important}.w-xxl-33{width:33%!important}.w-xxl-50{width:50%!important}.w-xxl-66{width:66%!important}.w-xxl-75{width:75%!important}.w-xxl-100{width:100%!important}}@media print{.d-print-none{display:none!important}.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.float-print-none{float:none!important}.float-print-left{float:left!important}.float-print-right{float:right!important}.v-locale--is-rtl .float-print-end{float:left!important}.v-locale--is-rtl .float-print-start,.v-locale--is-ltr .float-print-end{float:right!important}.v-locale--is-ltr .float-print-start{float:left!important}}.v-app-bar{display:flex}.v-app-bar.v-toolbar{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-app-bar.v-toolbar:not(.v-toolbar--flat){box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-app-bar:not(.v-toolbar--absolute){padding-inline-end:var(--v-scrollbar-offset)}.v-toolbar{align-items:flex-start;display:flex;flex:none;flex-direction:column;justify-content:space-between;max-width:100%;position:relative;transition:.2s cubic-bezier(.4,0,.2,1);transition-property:height,width,transform,max-width,left,right,top,bottom,box-shadow;width:100%;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:0;background:rgb(var(--v-theme-surface-light));color:rgba(var(--v-theme-on-surface-light),var(--v-high-emphasis-opacity))}.v-toolbar--border{border-width:thin;box-shadow:none}.v-toolbar--absolute{position:absolute}.v-toolbar--collapse{max-width:112px;overflow:hidden;border-end-end-radius:24px}.v-toolbar--collapse .v-toolbar-title{display:none}.v-toolbar--flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-toolbar--floating{display:inline-flex}.v-toolbar--rounded{border-radius:4px}.v-toolbar__content,.v-toolbar__extension{align-items:center;display:flex;flex:0 0 auto;position:relative;transition:inherit;width:100%}.v-toolbar__content{overflow:hidden}.v-toolbar__content>.v-btn:first-child{margin-inline-start:4px}.v-toolbar__content>.v-btn:last-child{margin-inline-end:4px}.v-toolbar__content>.v-toolbar-title{margin-inline-start:20px}.v-toolbar--density-prominent .v-toolbar__content{align-items:flex-start}.v-toolbar__image{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;opacity:var(--v-toolbar-image-opacity, 1);transition-property:opacity}.v-toolbar__prepend,.v-toolbar__append{align-items:center;align-self:stretch;display:flex}.v-toolbar__prepend{margin-inline:4px auto}.v-toolbar__append{margin-inline:auto 4px}.v-toolbar-title{flex:1 1;min-width:0;font-size:1.25rem;font-weight:400;letter-spacing:0;line-height:1.75rem;text-transform:none}.v-toolbar--density-prominent .v-toolbar-title{align-self:flex-end;padding-bottom:6px;font-size:1.5rem;font-weight:400;letter-spacing:0;line-height:2.25rem;text-transform:none}.v-toolbar-title__placeholder{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-toolbar-items{display:flex;height:inherit;align-self:stretch}.v-toolbar-items>.v-btn{border-radius:0}.v-alert{display:grid;flex:1 1;grid-template-areas:"prepend content append close" ". content . .";grid-template-columns:max-content auto max-content max-content;position:relative;padding:16px;overflow:hidden;--v-border-color: currentColor;border-radius:4px}.v-alert--absolute{position:absolute}.v-alert--fixed{position:fixed}.v-alert--sticky{position:sticky}.v-alert--variant-plain,.v-alert--variant-outlined,.v-alert--variant-text,.v-alert--variant-tonal{background:transparent;color:inherit}.v-alert--variant-plain{opacity:.62}.v-alert--variant-plain:focus,.v-alert--variant-plain:hover{opacity:1}.v-alert--variant-plain .v-alert__overlay{display:none}.v-alert--variant-elevated,.v-alert--variant-flat{background:rgb(var(--v-theme-surface-light));color:rgba(var(--v-theme-on-surface-light),var(--v-high-emphasis-opacity))}.v-alert--variant-elevated{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-alert--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-alert--variant-outlined{border:thin solid currentColor}.v-alert--variant-text .v-alert__overlay{background:currentColor}.v-alert--variant-tonal .v-alert__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-alert .v-alert__underlay{position:absolute}.v-alert--prominent{grid-template-areas:"prepend content append close" "prepend content . ."}.v-alert.v-alert--border{--v-border-opacity: .38}.v-alert.v-alert--border.v-alert--border-start{padding-inline-start:24px}.v-alert.v-alert--border.v-alert--border-end{padding-inline-end:24px}.v-alert--variant-plain{transition:.2s opacity cubic-bezier(.4,0,.2,1)}.v-alert--density-default{padding-bottom:16px;padding-top:16px}.v-alert--density-default.v-alert--border-top{padding-top:24px}.v-alert--density-default.v-alert--border-bottom{padding-bottom:24px}.v-alert--density-comfortable{padding-bottom:12px;padding-top:12px}.v-alert--density-comfortable.v-alert--border-top{padding-top:20px}.v-alert--density-comfortable.v-alert--border-bottom{padding-bottom:20px}.v-alert--density-compact{padding-bottom:8px;padding-top:8px}.v-alert--density-compact.v-alert--border-top{padding-top:16px}.v-alert--density-compact.v-alert--border-bottom{padding-bottom:16px}.v-alert__border{border-radius:inherit;bottom:0;left:0;opacity:var(--v-border-opacity);position:absolute;pointer-events:none;right:0;top:0;width:100%;border-color:currentColor;border-style:solid;border-width:0}.v-alert__border--border{border-width:8px;box-shadow:none}.v-alert--border-start .v-alert__border{border-inline-start-width:8px}.v-alert--border-end .v-alert__border{border-inline-end-width:8px}.v-alert--border-top .v-alert__border{border-top-width:8px}.v-alert--border-bottom .v-alert__border{border-bottom-width:8px}.v-alert__close{flex:0 1 auto;grid-area:close}.v-alert__content{align-self:center;grid-area:content;overflow:hidden}.v-alert__append,.v-alert__close{align-self:flex-start;margin-inline-start:16px}.v-alert__append{align-self:flex-start;grid-area:append}.v-alert__append+.v-alert__close{margin-inline-start:16px}.v-alert__prepend{align-self:flex-start;display:flex;align-items:center;grid-area:prepend;margin-inline-end:16px}.v-alert--prominent .v-alert__prepend{align-self:center}.v-alert__underlay{grid-area:none;position:absolute}.v-alert--border-start .v-alert__underlay{border-top-left-radius:0;border-bottom-left-radius:0}.v-alert--border-end .v-alert__underlay{border-top-right-radius:0;border-bottom-right-radius:0}.v-alert--border-top .v-alert__underlay{border-top-left-radius:0;border-top-right-radius:0}.v-alert--border-bottom .v-alert__underlay{border-bottom-left-radius:0;border-bottom-right-radius:0}.v-alert-title{align-items:center;align-self:center;display:flex;font-size:1.25rem;font-weight:500;-webkit-hyphens:auto;hyphens:auto;letter-spacing:.0125em;line-height:1.75rem;overflow-wrap:normal;text-transform:none;word-break:normal;word-wrap:break-word}.v-autocomplete .v-field .v-text-field__prefix,.v-autocomplete .v-field .v-text-field__suffix,.v-autocomplete .v-field .v-field__input,.v-autocomplete .v-field.v-field{cursor:text}.v-autocomplete .v-field .v-field__input>input{flex:1 1}.v-autocomplete .v-field input{min-width:64px}.v-autocomplete .v-field:not(.v-field--focused) input{min-width:0}.v-autocomplete .v-field--dirty .v-autocomplete__selection{margin-inline-end:2px}.v-autocomplete .v-autocomplete__selection-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-autocomplete__content{overflow:hidden;box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:4px}.v-autocomplete__mask{background:rgb(var(--v-theme-surface-light))}.v-autocomplete__selection{display:inline-flex;align-items:center;height:1.5rem;letter-spacing:inherit;line-height:inherit;max-width:calc(100% - 4px)}.v-autocomplete__selection:first-child{margin-inline-start:0}.v-autocomplete--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-autocomplete--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-autocomplete--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-autocomplete--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0}.v-autocomplete--selecting-index .v-autocomplete__selection{opacity:var(--v-medium-emphasis-opacity)}.v-autocomplete--selecting-index .v-autocomplete__selection--selected{opacity:1}.v-autocomplete--selecting-index .v-field__input>input{caret-color:transparent}.v-autocomplete--single:not(.v-autocomplete--selection-slot).v-text-field input{flex:1 1;position:absolute;left:0;right:0;width:100%;padding-inline:inherit}.v-autocomplete--single:not(.v-autocomplete--selection-slot) .v-field--active input{transition:none}.v-autocomplete--single:not(.v-autocomplete--selection-slot) .v-field--dirty:not(.v-field--focused) input{opacity:0}.v-autocomplete--single:not(.v-autocomplete--selection-slot) .v-field--focused .v-autocomplete__selection{opacity:0}.v-autocomplete__menu-icon{margin-inline-start:4px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-autocomplete--active-menu .v-autocomplete__menu-icon{opacity:var(--v-high-emphasis-opacity);transform:rotate(180deg)}.v-checkbox.v-input{flex:0 1 auto}.v-checkbox .v-selection-control{min-height:var(--v-input-control-height)}.v-selection-control{align-items:center;contain:layout;display:flex;flex:1 0;grid-area:control;position:relative;-webkit-user-select:none;user-select:none}.v-selection-control .v-label{white-space:normal;word-break:break-word;height:100%}.v-selection-control--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-selection-control--error .v-label,.v-selection-control--disabled .v-label{opacity:1}.v-selection-control--error:not(.v-selection-control--disabled) .v-label{color:rgb(var(--v-theme-error))}.v-selection-control--inline{display:inline-flex;flex:0 0 auto;min-width:0;max-width:100%}.v-selection-control--inline .v-label{width:auto}.v-selection-control--density-default{--v-selection-control-size: 40px}.v-selection-control--density-comfortable{--v-selection-control-size: 36px}.v-selection-control--density-compact{--v-selection-control-size: 28px}.v-selection-control__wrapper{width:var(--v-selection-control-size);height:var(--v-selection-control-size);display:inline-flex;align-items:center;position:relative;justify-content:center;flex:none}.v-selection-control__input{width:var(--v-selection-control-size);height:var(--v-selection-control-size);align-items:center;display:flex;flex:none;justify-content:center;position:relative;border-radius:50%}.v-selection-control__input input{cursor:pointer;position:absolute;left:0;top:0;width:100%;height:100%;opacity:0}.v-selection-control__input:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;border-radius:100%;background-color:currentColor;opacity:0;pointer-events:none}.v-selection-control__input:hover:before{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-selection-control__input>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-selection-control--disabled .v-selection-control__input>.v-icon,.v-selection-control--dirty .v-selection-control__input>.v-icon,.v-selection-control--error .v-selection-control__input>.v-icon{opacity:1}.v-selection-control--error:not(.v-selection-control--disabled) .v-selection-control__input>.v-icon{color:rgb(var(--v-theme-error))}.v-selection-control--focus-visible .v-selection-control__input:before{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}.v-selection-control-group{grid-area:control;display:flex;flex-direction:column}.v-selection-control-group--inline{flex-direction:row;flex-wrap:wrap}.v-chip{align-items:center;display:inline-flex;font-weight:400;max-width:100%;min-width:0;overflow:hidden;position:relative;text-decoration:none;white-space:nowrap;vertical-align:middle;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;border-radius:9999px}.v-chip .v-icon{--v-icon-size-multiplier: .8571428571}.v-chip.v-chip--size-x-small{--v-chip-size: .625rem;--v-chip-height: 20px;font-size:.625rem;padding:0 8px}.v-chip.v-chip--size-x-small .v-avatar{--v-avatar-height: 14px}.v-chip--pill.v-chip.v-chip--size-x-small .v-avatar{--v-avatar-height: 20px}.v-chip.v-chip--size-x-small .v-avatar--start{margin-inline-start:-5.6px;margin-inline-end:4px}.v-chip--pill.v-chip.v-chip--size-x-small .v-avatar--start{margin-inline-start:-8px}.v-chip.v-chip--size-x-small .v-avatar--end{margin-inline-start:4px;margin-inline-end:-5.6px}.v-chip--pill.v-chip.v-chip--size-x-small .v-avatar--end{margin-inline-end:-8px}.v-chip--pill.v-chip.v-chip--size-x-small .v-avatar--end+.v-chip__close{margin-inline-start:12px}.v-chip.v-chip--size-x-small .v-icon--start,.v-chip.v-chip--size-x-small .v-chip__filter{margin-inline-start:-4px;margin-inline-end:4px}.v-chip.v-chip--size-x-small .v-icon--end,.v-chip.v-chip--size-x-small .v-chip__close{margin-inline-start:4px;margin-inline-end:-4px}.v-chip.v-chip--size-x-small .v-icon--end+.v-chip__close,.v-chip.v-chip--size-x-small .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-x-small .v-chip__append+.v-chip__close{margin-inline-start:8px}.v-chip.v-chip--size-small{--v-chip-size: .75rem;--v-chip-height: 26px;font-size:.75rem;padding:0 10px}.v-chip.v-chip--size-small .v-avatar{--v-avatar-height: 20px}.v-chip--pill.v-chip.v-chip--size-small .v-avatar{--v-avatar-height: 26px}.v-chip.v-chip--size-small .v-avatar--start{margin-inline-start:-7px;margin-inline-end:5px}.v-chip--pill.v-chip.v-chip--size-small .v-avatar--start{margin-inline-start:-10px}.v-chip.v-chip--size-small .v-avatar--end{margin-inline-start:5px;margin-inline-end:-7px}.v-chip--pill.v-chip.v-chip--size-small .v-avatar--end{margin-inline-end:-10px}.v-chip--pill.v-chip.v-chip--size-small .v-avatar--end+.v-chip__close{margin-inline-start:15px}.v-chip.v-chip--size-small .v-icon--start,.v-chip.v-chip--size-small .v-chip__filter{margin-inline-start:-5px;margin-inline-end:5px}.v-chip.v-chip--size-small .v-icon--end,.v-chip.v-chip--size-small .v-chip__close{margin-inline-start:5px;margin-inline-end:-5px}.v-chip.v-chip--size-small .v-icon--end+.v-chip__close,.v-chip.v-chip--size-small .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-small .v-chip__append+.v-chip__close{margin-inline-start:10px}.v-chip.v-chip--size-default{--v-chip-size: .875rem;--v-chip-height: 32px;font-size:.875rem;padding:0 12px}.v-chip.v-chip--size-default .v-avatar{--v-avatar-height: 26px}.v-chip--pill.v-chip.v-chip--size-default .v-avatar{--v-avatar-height: 32px}.v-chip.v-chip--size-default .v-avatar--start{margin-inline-start:-8.4px;margin-inline-end:6px}.v-chip--pill.v-chip.v-chip--size-default .v-avatar--start{margin-inline-start:-12px}.v-chip.v-chip--size-default .v-avatar--end{margin-inline-start:6px;margin-inline-end:-8.4px}.v-chip--pill.v-chip.v-chip--size-default .v-avatar--end{margin-inline-end:-12px}.v-chip--pill.v-chip.v-chip--size-default .v-avatar--end+.v-chip__close{margin-inline-start:18px}.v-chip.v-chip--size-default .v-icon--start,.v-chip.v-chip--size-default .v-chip__filter{margin-inline-start:-6px;margin-inline-end:6px}.v-chip.v-chip--size-default .v-icon--end,.v-chip.v-chip--size-default .v-chip__close{margin-inline-start:6px;margin-inline-end:-6px}.v-chip.v-chip--size-default .v-icon--end+.v-chip__close,.v-chip.v-chip--size-default .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-default .v-chip__append+.v-chip__close{margin-inline-start:12px}.v-chip.v-chip--size-large{--v-chip-size: 1rem;--v-chip-height: 38px;font-size:1rem;padding:0 14px}.v-chip.v-chip--size-large .v-avatar{--v-avatar-height: 32px}.v-chip--pill.v-chip.v-chip--size-large .v-avatar{--v-avatar-height: 38px}.v-chip.v-chip--size-large .v-avatar--start{margin-inline-start:-9.8px;margin-inline-end:7px}.v-chip--pill.v-chip.v-chip--size-large .v-avatar--start{margin-inline-start:-14px}.v-chip.v-chip--size-large .v-avatar--end{margin-inline-start:7px;margin-inline-end:-9.8px}.v-chip--pill.v-chip.v-chip--size-large .v-avatar--end{margin-inline-end:-14px}.v-chip--pill.v-chip.v-chip--size-large .v-avatar--end+.v-chip__close{margin-inline-start:21px}.v-chip.v-chip--size-large .v-icon--start,.v-chip.v-chip--size-large .v-chip__filter{margin-inline-start:-7px;margin-inline-end:7px}.v-chip.v-chip--size-large .v-icon--end,.v-chip.v-chip--size-large .v-chip__close{margin-inline-start:7px;margin-inline-end:-7px}.v-chip.v-chip--size-large .v-icon--end+.v-chip__close,.v-chip.v-chip--size-large .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-large .v-chip__append+.v-chip__close{margin-inline-start:14px}.v-chip.v-chip--size-x-large{--v-chip-size: 1.125rem;--v-chip-height: 44px;font-size:1.125rem;padding:0 17px}.v-chip.v-chip--size-x-large .v-avatar{--v-avatar-height: 38px}.v-chip--pill.v-chip.v-chip--size-x-large .v-avatar{--v-avatar-height: 44px}.v-chip.v-chip--size-x-large .v-avatar--start{margin-inline-start:-11.9px;margin-inline-end:8.5px}.v-chip--pill.v-chip.v-chip--size-x-large .v-avatar--start{margin-inline-start:-17px}.v-chip.v-chip--size-x-large .v-avatar--end{margin-inline-start:8.5px;margin-inline-end:-11.9px}.v-chip--pill.v-chip.v-chip--size-x-large .v-avatar--end{margin-inline-end:-17px}.v-chip--pill.v-chip.v-chip--size-x-large .v-avatar--end+.v-chip__close{margin-inline-start:25.5px}.v-chip.v-chip--size-x-large .v-icon--start,.v-chip.v-chip--size-x-large .v-chip__filter{margin-inline-start:-8.5px;margin-inline-end:8.5px}.v-chip.v-chip--size-x-large .v-icon--end,.v-chip.v-chip--size-x-large .v-chip__close{margin-inline-start:8.5px;margin-inline-end:-8.5px}.v-chip.v-chip--size-x-large .v-icon--end+.v-chip__close,.v-chip.v-chip--size-x-large .v-avatar--end+.v-chip__close,.v-chip.v-chip--size-x-large .v-chip__append+.v-chip__close{margin-inline-start:17px}.v-chip.v-chip--density-default{height:calc(var(--v-chip-height) + 0px)}.v-chip.v-chip--density-comfortable{height:calc(var(--v-chip-height) + -4px)}.v-chip.v-chip--density-compact{height:calc(var(--v-chip-height) + -8px)}.v-chip:hover>.v-chip__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-chip:focus-visible>.v-chip__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-chip:focus>.v-chip__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-chip--active>.v-chip__overlay,.v-chip[aria-haspopup=menu][aria-expanded=true]>.v-chip__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-chip--active:hover>.v-chip__overlay,.v-chip[aria-haspopup=menu][aria-expanded=true]:hover>.v-chip__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-chip--active:focus-visible>.v-chip__overlay,.v-chip[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-chip__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-chip--active:focus>.v-chip__overlay,.v-chip[aria-haspopup=menu][aria-expanded=true]:focus>.v-chip__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-chip--variant-plain,.v-chip--variant-outlined,.v-chip--variant-text,.v-chip--variant-tonal{background:transparent;color:inherit}.v-chip--variant-plain{opacity:.26}.v-chip--variant-plain:focus,.v-chip--variant-plain:hover{opacity:1}.v-chip--variant-plain .v-chip__overlay{display:none}.v-chip--variant-elevated,.v-chip--variant-flat{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant))}.v-chip--variant-elevated{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-chip--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-chip--variant-outlined{border:thin solid currentColor}.v-chip--variant-text .v-chip__overlay{background:currentColor}.v-chip--variant-tonal .v-chip__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-chip .v-chip__underlay{position:absolute}.v-chip--border{border-width:thin}.v-chip--link{cursor:pointer}.v-chip--link,.v-chip--filter{-webkit-user-select:none;user-select:none}.v-chip__content{align-items:center;display:inline-flex}.v-autocomplete__selection .v-chip__content,.v-combobox__selection .v-chip__content,.v-select__selection .v-chip__content{overflow:hidden}.v-chip__filter,.v-chip__prepend,.v-chip__append,.v-chip__close{align-items:center;display:inline-flex}.v-chip__close{cursor:pointer;flex:0 1 auto;font-size:18px;max-height:18px;max-width:18px;-webkit-user-select:none;user-select:none}.v-chip__close .v-icon{font-size:inherit}.v-chip__filter{transition:.15s cubic-bezier(.4,0,.2,1)}.v-chip__overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:currentColor;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .2s ease-in-out}.v-chip--disabled{opacity:.3;pointer-events:none;-webkit-user-select:none;user-select:none}.v-chip--label{border-radius:4px}.v-chip-group{display:flex;max-width:100%;min-width:0;overflow-x:auto;padding:4px 0}.v-chip-group .v-chip{margin:4px 8px 4px 0}.v-chip-group .v-chip.v-chip--selected:not(.v-chip--disabled) .v-chip__overlay{opacity:var(--v-activated-opacity)}.v-chip-group--column .v-slide-group__content{white-space:normal;flex-wrap:wrap;max-width:100%}.v-slide-group{display:flex;overflow:hidden}.v-slide-group__next,.v-slide-group__prev{align-items:center;display:flex;flex:0 1 52px;justify-content:center;min-width:52px;cursor:pointer}.v-slide-group__next--disabled,.v-slide-group__prev--disabled{pointer-events:none;opacity:var(--v-disabled-opacity)}.v-slide-group__content{display:flex;flex:1 0 auto;position:relative;transition:.2s all cubic-bezier(.4,0,.2,1);white-space:nowrap}.v-slide-group__content>*{white-space:initial}.v-slide-group__container{contain:content;display:flex;flex:1 1 auto;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;scrollbar-color:rgba(0,0,0,0)}.v-slide-group__container::-webkit-scrollbar{display:none}.v-slide-group--vertical{max-height:inherit}.v-slide-group--vertical,.v-slide-group--vertical .v-slide-group__container,.v-slide-group--vertical .v-slide-group__content{flex-direction:column}.v-slide-group--vertical .v-slide-group__container{overflow-x:hidden;overflow-y:auto}.v-list{overflow:auto;padding:8px 0;position:relative;outline:none;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:0;background:rgba(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-list--border{border-width:thin;box-shadow:none}.v-list--disabled{pointer-events:none;-webkit-user-select:none;user-select:none}.v-list--nav{padding-inline:8px}.v-list--rounded{border-radius:4px}.v-list--subheader{padding-top:0}.v-list-img{border-radius:inherit;display:flex;height:100%;left:0;overflow:hidden;position:absolute;top:0;width:100%;z-index:-1}.v-list-subheader{align-items:center;background:inherit;color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));display:flex;font-size:.875rem;font-weight:400;line-height:1.375rem;padding-inline-end:16px;min-height:40px;transition:.2s min-height cubic-bezier(.4,0,.2,1)}.v-list-subheader__text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-list--density-default .v-list-subheader{min-height:40px;padding-inline-start:calc(16px + var(--indent-padding))!important}.v-list--density-comfortable .v-list-subheader{min-height:36px;padding-inline-start:calc(16px + var(--indent-padding))!important}.v-list--density-compact .v-list-subheader{min-height:32px;padding-inline-start:calc(16px + var(--indent-padding))!important}.v-list-subheader--inset{--indent-padding: 56px}.v-list--nav .v-list-subheader{font-size:.75rem}.v-list-subheader--sticky{background:inherit;left:0;position:sticky;top:0;z-index:1}.v-list__overlay{background-color:currentColor;border-radius:inherit;bottom:0;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s ease-in-out}.v-list-item{align-items:center;display:grid;flex:none;grid-template-areas:"prepend content append";grid-template-columns:max-content 1fr auto;outline:none;max-width:100%;padding:4px 16px;position:relative;text-decoration:none;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;border-radius:0}.v-list-item--border{border-width:thin;box-shadow:none}.v-list-item:hover>.v-list-item__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-list-item:focus-visible>.v-list-item__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-list-item:focus>.v-list-item__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-list-item--active>.v-list-item__overlay,.v-list-item[aria-haspopup=menu][aria-expanded=true]>.v-list-item__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-list-item--active:hover>.v-list-item__overlay,.v-list-item[aria-haspopup=menu][aria-expanded=true]:hover>.v-list-item__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-list-item--active:focus-visible>.v-list-item__overlay,.v-list-item[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-list-item__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-list-item--active:focus>.v-list-item__overlay,.v-list-item[aria-haspopup=menu][aria-expanded=true]:focus>.v-list-item__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-list-item--variant-plain,.v-list-item--variant-outlined,.v-list-item--variant-text,.v-list-item--variant-tonal{background:transparent;color:inherit}.v-list-item--variant-plain{opacity:.62}.v-list-item--variant-plain:focus,.v-list-item--variant-plain:hover{opacity:1}.v-list-item--variant-plain .v-list-item__overlay{display:none}.v-list-item--variant-elevated,.v-list-item--variant-flat{background:rgba(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-list-item--variant-elevated{box-shadow:0 2px 1px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 1px 1px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 3px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-list-item--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-list-item--variant-outlined{border:thin solid currentColor}.v-list-item--variant-text .v-list-item__overlay{background:currentColor}.v-list-item--variant-tonal .v-list-item__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-list-item .v-list-item__underlay{position:absolute}@supports selector(:focus-visible){.v-list-item:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;border:2px solid currentColor;border-radius:4px;opacity:0;transition:opacity .2s ease-in-out}.v-list-item:focus-visible:after{opacity:calc(.15 * var(--v-theme-overlay-multiplier))}}.v-list-item__prepend>.v-badge .v-icon,.v-list-item__prepend>.v-icon,.v-list-item__append>.v-badge .v-icon,.v-list-item__append>.v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-list-item--active .v-list-item__prepend>.v-badge .v-icon,.v-list-item--active .v-list-item__prepend>.v-icon,.v-list-item--active .v-list-item__append>.v-badge .v-icon,.v-list-item--active .v-list-item__append>.v-icon{opacity:1}.v-list-item--active:not(.v-list-item--link) .v-list-item__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-list-item--rounded{border-radius:4px}.v-list-item--disabled{pointer-events:none;-webkit-user-select:none;user-select:none;opacity:.6}.v-list-item--link{cursor:pointer}.v-navigation-drawer--rail:not(.v-navigation-drawer--expand-on-hover) .v-list-item .v-avatar,.v-navigation-drawer--rail.v-navigation-drawer--expand-on-hover:not(.v-navigation-drawer--is-hovering) .v-list-item .v-avatar{--v-avatar-height: 24px}.v-list-item__prepend{align-items:center;align-self:center;display:flex;grid-area:prepend}.v-list-item__prepend>.v-badge~.v-list-item__spacer,.v-list-item__prepend>.v-icon~.v-list-item__spacer,.v-list-item__prepend>.v-tooltip~.v-list-item__spacer{width:32px}.v-list-item__prepend>.v-avatar~.v-list-item__spacer{width:16px}.v-list-item__prepend>.v-list-item-action~.v-list-item__spacer{width:16px}.v-list-item--slim .v-list-item__prepend>.v-badge~.v-list-item__spacer,.v-list-item--slim .v-list-item__prepend>.v-icon~.v-list-item__spacer,.v-list-item--slim .v-list-item__prepend>.v-tooltip~.v-list-item__spacer{width:20px}.v-list-item--slim .v-list-item__prepend>.v-avatar~.v-list-item__spacer{width:4px}.v-list-item--slim .v-list-item__prepend>.v-list-item-action~.v-list-item__spacer{width:4px}.v-list-item--three-line .v-list-item__prepend{align-self:start}.v-list-item__append{align-self:center;display:flex;align-items:center;grid-area:append}.v-list-item__append .v-list-item__spacer{order:-1;transition:.15s width cubic-bezier(.4,0,.2,1)}.v-list-item__append>.v-badge~.v-list-item__spacer,.v-list-item__append>.v-icon~.v-list-item__spacer,.v-list-item__append>.v-tooltip~.v-list-item__spacer{width:32px}.v-list-item__append>.v-avatar~.v-list-item__spacer{width:16px}.v-list-item__append>.v-list-item-action~.v-list-item__spacer{width:16px}.v-list-item--slim .v-list-item__append>.v-badge~.v-list-item__spacer,.v-list-item--slim .v-list-item__append>.v-icon~.v-list-item__spacer,.v-list-item--slim .v-list-item__append>.v-tooltip~.v-list-item__spacer{width:20px}.v-list-item--slim .v-list-item__append>.v-avatar~.v-list-item__spacer{width:4px}.v-list-item--slim .v-list-item__append>.v-list-item-action~.v-list-item__spacer{width:4px}.v-list-item--three-line .v-list-item__append{align-self:start}.v-list-item__content{align-self:center;grid-area:content;overflow:hidden}.v-list-item-action{align-self:center;display:flex;align-items:center;flex:none;transition:inherit;transition-property:height,width}.v-list-item-action--start{margin-inline-end:8px;margin-inline-start:-8px}.v-list-item-action--end{margin-inline-start:8px;margin-inline-end:-8px}.v-list-item-media{margin-top:0;margin-bottom:0}.v-list-item-media--start{margin-inline-end:16px}.v-list-item-media--end{margin-inline-start:16px}.v-list-item--two-line .v-list-item-media{margin-top:-4px;margin-bottom:-4px}.v-list-item--three-line .v-list-item-media{margin-top:0;margin-bottom:0}.v-list-item-subtitle{-webkit-box-orient:vertical;display:-webkit-box;opacity:var(--v-list-item-subtitle-opacity, var(--v-medium-emphasis-opacity));overflow:hidden;padding:0;text-overflow:ellipsis;overflow-wrap:break-word;word-break:initial;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;line-height:1rem;text-transform:none}.v-list-item--one-line .v-list-item-subtitle{-webkit-line-clamp:1}.v-list-item--two-line .v-list-item-subtitle{-webkit-line-clamp:2}.v-list-item--three-line .v-list-item-subtitle{-webkit-line-clamp:3}.v-list-item--nav .v-list-item-subtitle{font-size:.75rem;font-weight:400;letter-spacing:.0178571429em;line-height:1rem}.v-list-item-title{-webkit-hyphens:auto;hyphens:auto;overflow-wrap:normal;overflow:hidden;padding:0;white-space:nowrap;text-overflow:ellipsis;word-break:normal;word-wrap:break-word;font-size:1rem;font-weight:400;letter-spacing:.009375em;line-height:1.5;text-transform:none}.v-list-item--nav .v-list-item-title{font-size:.8125rem;font-weight:500;letter-spacing:normal;line-height:1rem}.v-list-item--density-default{min-height:40px}.v-list-item--density-default.v-list-item--one-line{min-height:48px;padding-top:4px;padding-bottom:4px}.v-list-item--density-default.v-list-item--two-line{min-height:64px;padding-top:12px;padding-bottom:12px}.v-list-item--density-default.v-list-item--three-line{min-height:88px;padding-top:16px;padding-bottom:16px}.v-list-item--density-default.v-list-item--three-line .v-list-item__prepend,.v-list-item--density-default.v-list-item--three-line .v-list-item__append{padding-top:8px}.v-list-item--density-default:not(.v-list-item--nav).v-list-item--one-line{padding-inline:16px}.v-list-item--density-default:not(.v-list-item--nav).v-list-item--two-line{padding-inline:16px}.v-list-item--density-default:not(.v-list-item--nav).v-list-item--three-line{padding-inline:16px}.v-list-item--density-comfortable{min-height:36px}.v-list-item--density-comfortable.v-list-item--one-line{min-height:44px}.v-list-item--density-comfortable.v-list-item--two-line{min-height:60px;padding-top:8px;padding-bottom:8px}.v-list-item--density-comfortable.v-list-item--three-line{min-height:84px;padding-top:12px;padding-bottom:12px}.v-list-item--density-comfortable.v-list-item--three-line .v-list-item__prepend,.v-list-item--density-comfortable.v-list-item--three-line .v-list-item__append{padding-top:6px}.v-list-item--density-comfortable:not(.v-list-item--nav).v-list-item--one-line{padding-inline:16px}.v-list-item--density-comfortable:not(.v-list-item--nav).v-list-item--two-line{padding-inline:16px}.v-list-item--density-comfortable:not(.v-list-item--nav).v-list-item--three-line{padding-inline:16px}.v-list-item--density-compact{min-height:32px}.v-list-item--density-compact.v-list-item--one-line{min-height:40px}.v-list-item--density-compact.v-list-item--two-line{min-height:56px;padding-top:4px;padding-bottom:4px}.v-list-item--density-compact.v-list-item--three-line{min-height:80px;padding-top:8px;padding-bottom:8px}.v-list-item--density-compact.v-list-item--three-line .v-list-item__prepend,.v-list-item--density-compact.v-list-item--three-line .v-list-item__append{padding-top:4px}.v-list-item--density-compact:not(.v-list-item--nav).v-list-item--one-line{padding-inline:16px}.v-list-item--density-compact:not(.v-list-item--nav).v-list-item--two-line{padding-inline:16px}.v-list-item--density-compact:not(.v-list-item--nav).v-list-item--three-line{padding-inline:16px}.v-list-item--nav{padding-inline:8px}.v-list .v-list-item--nav:not(:only-child){margin-bottom:4px}.v-list-item__underlay{position:absolute}.v-list-item__overlay{background-color:currentColor;border-radius:inherit;bottom:0;left:0;opacity:0;pointer-events:none;position:absolute;right:0;top:0;transition:opacity .2s ease-in-out}.v-list-item--active.v-list-item--variant-elevated .v-list-item__overlay{--v-theme-overlay-multiplier: 0}.v-list{--indent-padding: 0px}.v-list--nav{--indent-padding: -8px}.v-list-group{--list-indent-size: 16px;--parent-padding: var(--indent-padding);--prepend-width: 40px}.v-list--slim .v-list-group{--prepend-width: 28px}.v-list-group--fluid{--list-indent-size: 0px}.v-list-group--prepend{--parent-padding: calc(var(--indent-padding) + var(--prepend-width))}.v-list-group--fluid.v-list-group--prepend{--parent-padding: var(--indent-padding)}.v-list-group__items{--indent-padding: calc(var(--parent-padding) + var(--list-indent-size))}.v-list-group__items .v-list-item{padding-inline-start:calc(16px + var(--indent-padding))!important}.v-list-group__header:not(.v-treeview-item--activetable-group-activator).v-list-item--active:not(:focus-visible) .v-list-item__overlay{opacity:0}.v-list-group__header:not(.v-treeview-item--activetable-group-activator).v-list-item--active:hover .v-list-item__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-divider{display:block;flex:1 1 100%;height:0px;max-height:0px;opacity:var(--v-border-opacity);transition:inherit;border-style:solid;border-width:thin 0 0 0}.v-divider--vertical{align-self:stretch;border-width:0 thin 0 0;display:inline-flex;height:auto;margin-left:-1px;max-height:100%;max-width:0px;vertical-align:text-bottom;width:0px}.v-divider--inset:not(.v-divider--vertical){max-width:calc(100% - 72px);margin-inline-start:72px}.v-divider--inset.v-divider--vertical{margin-bottom:8px;margin-top:8px;max-height:calc(100% - 16px)}.v-divider__content{padding:0 16px;text-wrap:nowrap}.v-divider__wrapper--vertical .v-divider__content{padding:4px 0}.v-divider__wrapper{display:flex;align-items:center;justify-content:center}.v-divider__wrapper--vertical{flex-direction:column;height:100%}.v-divider__wrapper--vertical .v-divider{margin:0 auto}.v-menu>.v-overlay__content{display:flex;flex-direction:column;border-radius:4px}.v-menu>.v-overlay__content>.v-card,.v-menu>.v-overlay__content>.v-sheet,.v-menu>.v-overlay__content>.v-list{background:rgb(var(--v-theme-surface));border-radius:inherit;overflow:auto;height:100%;box-shadow:0 5px 5px -3px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 8px 10px 1px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 3px 14px 2px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-overlay-container{contain:layout;left:0;pointer-events:none;position:absolute;top:0;display:contents}.v-overlay-scroll-blocked{padding-inline-end:var(--v-scrollbar-offset)}.v-overlay-scroll-blocked:not(html){overflow-y:hidden!important}html.v-overlay-scroll-blocked{position:fixed;top:var(--v-body-scroll-y);left:var(--v-body-scroll-x);width:100%;height:100%}.v-overlay{border-radius:inherit;display:flex;left:0;pointer-events:none;position:fixed;top:0;bottom:0;right:0}.v-overlay__content{outline:none;position:absolute;pointer-events:auto;contain:layout}.v-overlay__scrim{pointer-events:auto;background:rgb(var(--v-theme-on-surface));border-radius:inherit;bottom:0;left:0;opacity:var(--v-overlay-opacity, .32);position:fixed;right:0;top:0}.v-overlay--absolute,.v-overlay--contained .v-overlay__scrim{position:absolute}.v-overlay--scroll-blocked{padding-inline-end:var(--v-scrollbar-offset)}.v-select .v-field .v-text-field__prefix,.v-select .v-field .v-text-field__suffix,.v-select .v-field .v-field__input,.v-select .v-field.v-field{cursor:pointer}.v-select .v-field .v-field__input>input{align-self:flex-start;opacity:1;flex:0 0;position:absolute;width:100%;transition:none;pointer-events:none;caret-color:transparent}.v-select .v-field--dirty .v-select__selection{margin-inline-end:2px}.v-select .v-select__selection-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-select__content{overflow:hidden;box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:4px}.v-select__selection{display:inline-flex;align-items:center;letter-spacing:inherit;line-height:inherit;max-width:100%}.v-select .v-select__selection:first-child{margin-inline-start:0}.v-select--selected .v-field .v-field__input>input{opacity:0}.v-select__menu-icon{margin-inline-start:4px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-select--active-menu .v-select__menu-icon{opacity:var(--v-high-emphasis-opacity);transform:rotate(180deg)}.v-virtual-scroll{display:block;flex:1 1 auto;max-width:100%;overflow:auto;position:relative}.v-virtual-scroll__container{display:block}.v-badge{display:inline-block;line-height:1}.v-badge__badge{align-items:center;display:inline-flex;border-radius:10px;font-size:.75rem;font-weight:500;height:1.25rem;justify-content:center;min-width:20px;padding:4px 6px;pointer-events:auto;position:absolute;text-align:center;text-indent:0;transition:.225s cubic-bezier(.4,0,.2,1);white-space:nowrap;background:rgb(var(--v-theme-surface-variant));color:rgba(var(--v-theme-on-surface-variant),var(--v-high-emphasis-opacity))}.v-badge--bordered .v-badge__badge:after{border-radius:inherit;border-style:solid;border-width:2px;bottom:0;color:rgb(var(--v-theme-background));content:"";left:0;position:absolute;right:0;top:0;transform:scale(1.05)}.v-badge--dot .v-badge__badge{border-radius:4.5px;height:9px;min-width:0;padding:0;width:9px}.v-badge--dot .v-badge__badge:after{border-width:1.5px}.v-badge--inline .v-badge__badge{position:relative;vertical-align:middle}.v-badge__badge .v-icon{color:inherit;font-size:.75rem;margin:0 -2px}.v-badge__badge img,.v-badge__badge .v-img{height:100%;width:100%}.v-badge__wrapper{display:flex;position:relative}.v-badge--inline .v-badge__wrapper{align-items:center;display:inline-flex;justify-content:center;margin:0 4px}.v-banner{display:grid;flex:1 1;font-size:.875rem;grid-template-areas:"prepend content actions";grid-template-columns:max-content auto max-content;grid-template-rows:max-content max-content;line-height:1.6;overflow:hidden;padding-inline:16px 8px;padding-top:16px;padding-bottom:16px;position:relative;width:100%;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0 0 thin 0;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:0;background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-banner--border{border-width:thin;box-shadow:none}.v-banner--absolute{position:absolute}.v-banner--fixed{position:fixed}.v-banner--sticky{position:sticky}.v-banner--rounded{border-radius:4px}.v-banner--stacked:not(.v-banner--one-line){grid-template-areas:"prepend content" ". actions"}.v-banner--stacked .v-banner-text{padding-inline-end:36px}.v-banner--density-default .v-banner-actions{margin-bottom:-8px}.v-banner--density-default.v-banner--one-line{padding-top:8px;padding-bottom:8px}.v-banner--density-default.v-banner--one-line .v-banner-actions{margin-bottom:0}.v-banner--density-default.v-banner--one-line{padding-top:10px}.v-banner--density-default.v-banner--two-line{padding-top:16px;padding-bottom:16px}.v-banner--density-default.v-banner--three-line{padding-top:24px;padding-bottom:16px}.v-banner--density-default:not(.v-banner--one-line) .v-banner-actions,.v-banner--density-default.v-banner--two-line .v-banner-actions,.v-banner--density-default.v-banner--three-line .v-banner-actions{margin-top:20px}.v-banner--density-comfortable .v-banner-actions{margin-bottom:-4px}.v-banner--density-comfortable.v-banner--one-line{padding-top:4px;padding-bottom:4px}.v-banner--density-comfortable.v-banner--one-line .v-banner-actions{margin-bottom:0}.v-banner--density-comfortable.v-banner--two-line{padding-top:12px;padding-bottom:12px}.v-banner--density-comfortable.v-banner--three-line{padding-top:20px;padding-bottom:12px}.v-banner--density-comfortable:not(.v-banner--one-line) .v-banner-actions,.v-banner--density-comfortable.v-banner--two-line .v-banner-actions,.v-banner--density-comfortable.v-banner--three-line .v-banner-actions{margin-top:16px}.v-banner--density-compact .v-banner-actions{margin-bottom:0}.v-banner--density-compact.v-banner--one-line{padding-top:0;padding-bottom:0}.v-banner--density-compact.v-banner--one-line .v-banner-actions{margin-bottom:0}.v-banner--density-compact.v-banner--two-line{padding-top:8px;padding-bottom:8px}.v-banner--density-compact.v-banner--three-line{padding-top:16px;padding-bottom:8px}.v-banner--density-compact:not(.v-banner--one-line) .v-banner-actions,.v-banner--density-compact.v-banner--two-line .v-banner-actions,.v-banner--density-compact.v-banner--three-line .v-banner-actions{margin-top:12px}.v-banner--sticky{top:0;z-index:1}.v-banner__content{align-items:center;display:flex;grid-area:content}.v-banner__prepend{align-self:flex-start;grid-area:prepend;margin-inline-end:24px}.v-banner-actions{align-self:flex-end;display:flex;flex:0 1;grid-area:actions;justify-content:flex-end}.v-banner--two-line .v-banner-actions,.v-banner--three-line .v-banner-actions{margin-top:20px}.v-banner-text{-webkit-box-orient:vertical;display:-webkit-box;padding-inline-end:90px;overflow:hidden}.v-banner--one-line .v-banner-text{-webkit-line-clamp:1}.v-banner--two-line .v-banner-text{-webkit-line-clamp:2}.v-banner--three-line .v-banner-text{-webkit-line-clamp:3}.v-banner--two-line .v-banner-text,.v-banner--three-line .v-banner-text{align-self:flex-start}.v-bottom-navigation{display:flex;max-width:100%;overflow:hidden;position:absolute;transition:transform,color,.2s,.1s cubic-bezier(.4,0,.2,1);border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;border-radius:0;background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-bottom-navigation--border{border-width:thin;box-shadow:none}.v-bottom-navigation--active{box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-bottom-navigation__content{display:flex;flex:none;font-size:.75rem;justify-content:center;transition:inherit;width:100%}.v-bottom-navigation .v-bottom-navigation__content>.v-btn{font-size:inherit;height:100%;max-width:168px;min-width:80px;text-transform:none;transition:inherit;width:auto;border-radius:0}.v-bottom-navigation .v-bottom-navigation__content>.v-btn .v-btn__content,.v-bottom-navigation .v-bottom-navigation__content>.v-btn .v-btn__icon{transition:inherit}.v-bottom-navigation .v-bottom-navigation__content>.v-btn .v-btn__icon{font-size:1.5rem}.v-bottom-navigation--grow .v-bottom-navigation__content>.v-btn{flex-grow:1}.v-bottom-navigation--shift .v-bottom-navigation__content .v-btn:not(.v-btn--selected) .v-btn__content>span{transition:inherit;opacity:0}.v-bottom-navigation--shift .v-bottom-navigation__content .v-btn:not(.v-btn--selected) .v-btn__content{transform:translateY(.5rem)}.bottom-sheet-transition-enter-from,.bottom-sheet-transition-leave-to{transform:translateY(100%)}.v-bottom-sheet>.v-bottom-sheet__content.v-overlay__content{align-self:flex-end;border-radius:0;flex:0 1 auto;left:0;right:0;margin-inline:0;margin-bottom:0;transition-duration:.2s;width:100%;max-width:100%;overflow:visible;box-shadow:0 7px 8px -4px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 12px 17px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 5px 22px 4px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-bottom-sheet>.v-bottom-sheet__content.v-overlay__content>.v-card,.v-bottom-sheet>.v-bottom-sheet__content.v-overlay__content>.v-sheet{border-radius:0}.v-bottom-sheet.v-bottom-sheet--inset{max-width:none}@media (min-width: 600px){.v-bottom-sheet.v-bottom-sheet--inset{max-width:70%}}.v-dialog{align-items:center;justify-content:center;margin:auto}.v-dialog>.v-overlay__content{max-height:calc(100% - 48px);width:calc(100% - 48px);max-width:calc(100% - 48px);margin:24px}.v-dialog>.v-overlay__content,.v-dialog>.v-overlay__content>form{display:flex;flex-direction:column;min-height:0}.v-dialog>.v-overlay__content>.v-card,.v-dialog>.v-overlay__content>.v-sheet,.v-dialog>.v-overlay__content>form>.v-card,.v-dialog>.v-overlay__content>form>.v-sheet{--v-scrollbar-offset: 0px;border-radius:4px;overflow-y:auto;box-shadow:0 11px 15px -7px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 24px 38px 3px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 9px 46px 8px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-dialog>.v-overlay__content>.v-card,.v-dialog>.v-overlay__content>form>.v-card{display:flex;flex-direction:column}.v-dialog>.v-overlay__content>.v-card>.v-card-item,.v-dialog>.v-overlay__content>form>.v-card>.v-card-item{padding:16px 24px}.v-dialog>.v-overlay__content>.v-card>.v-card-item+.v-card-text,.v-dialog>.v-overlay__content>form>.v-card>.v-card-item+.v-card-text{padding-top:0}.v-dialog>.v-overlay__content>.v-card>.v-card-text,.v-dialog>.v-overlay__content>form>.v-card>.v-card-text{font-size:inherit;letter-spacing:.03125em;line-height:inherit;padding:16px 24px 24px}.v-dialog>.v-overlay__content>.v-card>.v-card-actions,.v-dialog>.v-overlay__content>form>.v-card>.v-card-actions{justify-content:flex-end}.v-dialog--fullscreen{--v-scrollbar-offset: 0px}.v-dialog--fullscreen>.v-overlay__content{border-radius:0;margin:0;padding:0;width:100%;height:100%;max-width:100%;max-height:100%;overflow-y:auto;top:0;left:0}.v-dialog--fullscreen>.v-overlay__content>.v-card,.v-dialog--fullscreen>.v-overlay__content>.v-sheet,.v-dialog--fullscreen>.v-overlay__content>form>.v-card,.v-dialog--fullscreen>.v-overlay__content>form>.v-sheet{min-height:100%;min-width:100%;border-radius:0}.v-dialog--scrollable>.v-overlay__content,.v-dialog--scrollable>.v-overlay__content>form{display:flex}.v-dialog--scrollable>.v-overlay__content>.v-card,.v-dialog--scrollable>.v-overlay__content>form>.v-card{display:flex;flex:1 1 100%;flex-direction:column;max-height:100%;max-width:100%}.v-dialog--scrollable>.v-overlay__content>.v-card>.v-card-text,.v-dialog--scrollable>.v-overlay__content>form>.v-card>.v-card-text{backface-visibility:hidden;overflow-y:auto}.v-breadcrumbs{display:flex;align-items:center;line-height:1.6;padding:16px 12px}.v-breadcrumbs--rounded{border-radius:4px}.v-breadcrumbs--density-default{padding-top:16px;padding-bottom:16px}.v-breadcrumbs--density-comfortable{padding-top:12px;padding-bottom:12px}.v-breadcrumbs--density-compact{padding-top:8px;padding-bottom:8px}.v-breadcrumbs__prepend{align-items:center;display:inline-flex}.v-breadcrumbs-item{align-items:center;color:inherit;display:inline-flex;padding:0 4px;text-decoration:none;vertical-align:middle}.v-breadcrumbs-item--disabled{opacity:var(--v-disabled-opacity);pointer-events:none}.v-breadcrumbs-item--link{color:inherit;text-decoration:none}.v-breadcrumbs-item--link:hover{text-decoration:underline}.v-breadcrumbs-item .v-icon{font-size:1rem;margin-inline:-4px 2px}.v-breadcrumbs-divider{display:inline-block;padding:0 8px;vertical-align:middle}.v-carousel{overflow:hidden;position:relative;width:100%}.v-carousel__controls{align-items:center;bottom:0;display:flex;height:50px;justify-content:center;list-style-type:none;position:absolute;width:100%;z-index:1;background:rgba(var(--v-theme-surface-variant),.3);color:rgb(var(--v-theme-on-surface-variant))}.v-carousel__controls>.v-item-group{flex:0 1 auto}.v-carousel__controls__item{margin:0 8px}.v-carousel__controls__item .v-icon{opacity:.5}.v-carousel__controls__item--active .v-icon{opacity:1;vertical-align:middle}.v-carousel__controls__item:hover{background:none}.v-carousel__controls__item:hover .v-icon{opacity:.8}.v-carousel__progress{margin:0;position:absolute;bottom:0;left:0;right:0}.v-carousel-item{display:block;height:inherit;text-decoration:none}.v-carousel-item>.v-img{height:inherit}.v-carousel--hide-delimiter-background .v-carousel__controls{background:transparent}.v-carousel--vertical-delimiters .v-carousel__controls{flex-direction:column;height:100%!important;width:50px}.v-window{overflow:hidden}.v-window__container{display:flex;flex-direction:column;height:inherit;position:relative;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-window__controls{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 16px;pointer-events:none}.v-window__controls>*{pointer-events:auto}.v-window--show-arrows-on-hover{overflow:hidden}.v-window--show-arrows-on-hover .v-window__left{transform:translate(-200%)}.v-window--show-arrows-on-hover .v-window__right{transform:translate(200%)}.v-window--show-arrows-on-hover:hover .v-window__left,.v-window--show-arrows-on-hover:hover .v-window__right{transform:translate(0)}.v-window-x-transition-enter-active,.v-window-x-transition-leave-active,.v-window-x-reverse-transition-enter-active,.v-window-x-reverse-transition-leave-active,.v-window-y-transition-enter-active,.v-window-y-transition-leave-active,.v-window-y-reverse-transition-enter-active,.v-window-y-reverse-transition-leave-active{transition:.3s cubic-bezier(.25,.8,.5,1)}.v-window-x-transition-leave-from,.v-window-x-transition-leave-to,.v-window-x-reverse-transition-leave-from,.v-window-x-reverse-transition-leave-to,.v-window-y-transition-leave-from,.v-window-y-transition-leave-to,.v-window-y-reverse-transition-leave-from,.v-window-y-reverse-transition-leave-to{position:absolute!important;top:0;width:100%}.v-window-x-transition-enter-from{transform:translate(100%)}.v-window-x-transition-leave-to,.v-window-x-reverse-transition-enter-from{transform:translate(-100%)}.v-window-x-reverse-transition-leave-to{transform:translate(100%)}.v-window-y-transition-enter-from{transform:translateY(100%)}.v-window-y-transition-leave-to,.v-window-y-reverse-transition-enter-from{transform:translateY(-100%)}.v-window-y-reverse-transition-leave-to{transform:translateY(100%)}.v-code{background-color:rgb(var(--v-theme-code));color:rgb(var(--v-theme-on-code));border-radius:4px;line-height:1.8;font-size:.9em;font-weight:400;padding:.2em .4em}.v-color-picker{align-self:flex-start;contain:content}.v-color-picker.v-sheet{box-shadow:0 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 2px 2px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 5px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:4px}.v-color-picker__controls{display:flex;flex-direction:column;padding:16px}.v-color-picker--flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-color-picker--flat .v-color-picker__track:not(.v-input--is-disabled) .v-slider__thumb{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-color-picker-canvas{display:flex;position:relative;overflow:hidden;contain:content;touch-action:none}.v-color-picker-canvas__dot{position:absolute;top:0;left:0;width:15px;height:15px;background:transparent;border-radius:50%;box-shadow:0 0 0 1.5px #fff,inset 0 0 1px 1.5px #0000004d}.v-color-picker-canvas__dot--disabled{box-shadow:0 0 0 1.5px #ffffffb3,inset 0 0 1px 1.5px #0000004d}.v-color-picker-canvas:hover .v-color-picker-canvas__dot{will-change:transform}.v-color-picker-edit{display:flex;margin-top:24px}.v-color-picker-edit__input{width:100%;display:flex;flex-wrap:wrap;justify-content:center;text-align:center}.v-color-picker-edit__input:not(:last-child){margin-inline-end:8px}.v-color-picker-edit__input input{border-radius:4px;margin-bottom:8px;min-width:0;outline:none;text-align:center;width:100%;height:32px;background:rgba(var(--v-theme-surface-variant),.2);color:rgba(var(--v-theme-on-surface))}.v-color-picker-edit__input span{font-size:.75rem}.v-color-picker-preview__alpha .v-slider-track__background{background-color:transparent!important}.v-locale--is-ltr.v-color-picker-preview__alpha .v-slider-track__background,.v-locale--is-ltr .v-color-picker-preview__alpha .v-slider-track__background{background-image:linear-gradient(to right,transparent,var(--v-color-picker-color-hsv))}.v-locale--is-rtl.v-color-picker-preview__alpha .v-slider-track__background,.v-locale--is-rtl .v-color-picker-preview__alpha .v-slider-track__background{background-image:linear-gradient(to left,transparent,var(--v-color-picker-color-hsv))}.v-color-picker-preview__alpha .v-slider-track__background:after{content:"";z-index:-1;left:0;top:0;width:100%;height:100%;position:absolute;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAACRJREFUKFNjPHTo0H8GJGBnZ8eIzGekgwJk+0BsdCtRHEQbBQBbbh0dIGKknQAAAABJRU5ErkJggg==) repeat;border-radius:inherit}.v-color-picker-preview__sliders{display:flex;flex:1 0 auto;flex-direction:column;padding-inline-end:16px}.v-color-picker-preview__dot{position:relative;height:30px;width:30px;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAACRJREFUKFNjPHTo0H8GJGBnZ8eIzGekgwJk+0BsdCtRHEQbBQBbbh0dIGKknQAAAABJRU5ErkJggg==) repeat;border-radius:50%;overflow:hidden;margin-inline-end:24px}.v-color-picker-preview__dot>div{width:100%;height:100%}.v-locale--is-ltr.v-color-picker-preview__hue:not(.v-input--is-disabled) .v-slider-track__background,.v-locale--is-ltr .v-color-picker-preview__hue:not(.v-input--is-disabled) .v-slider-track__background{background:linear-gradient(to right,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.v-locale--is-rtl.v-color-picker-preview__hue:not(.v-input--is-disabled) .v-slider-track__background,.v-locale--is-rtl .v-color-picker-preview__hue:not(.v-input--is-disabled) .v-slider-track__background{background:linear-gradient(to left,red,#ff0,#0f0,#0ff,#00f,#f0f,red)}.v-color-picker-preview__track{position:relative;width:100%;margin:0!important}.v-color-picker-preview__track .v-slider-track__fill{display:none}.v-color-picker-preview{align-items:center;display:flex;margin-bottom:0}.v-color-picker-preview__eye-dropper{position:relative;margin-right:12px}.v-slider .v-slider__container input{cursor:default;padding:0;width:100%;display:none}.v-slider>.v-input__append,.v-slider>.v-input__prepend{padding:0}.v-slider__container{position:relative;min-height:inherit;width:100%;height:100%;display:flex;justify-content:center;align-items:center;cursor:pointer}.v-input--disabled .v-slider__container{opacity:var(--v-disabled-opacity)}.v-input--error:not(.v-input--disabled) .v-slider__container{color:rgb(var(--v-theme-error))}.v-slider.v-input--horizontal{align-items:center;margin-inline:8px 8px}.v-slider.v-input--horizontal>.v-input__control{min-height:32px;display:flex;align-items:center}.v-slider.v-input--vertical{justify-content:center;margin-top:12px;margin-bottom:12px}.v-slider.v-input--vertical>.v-input__control{min-height:300px}.v-slider.v-input--disabled{pointer-events:none}.v-slider--has-labels>.v-input__control{margin-bottom:4px}.v-slider__label{margin-inline-end:12px}.v-slider-thumb{touch-action:none;color:rgb(var(--v-theme-surface-variant))}.v-input--error:not(.v-input--disabled) .v-slider-thumb{color:inherit}.v-slider-thumb__label{background:rgba(var(--v-theme-surface-variant),.7);color:rgb(var(--v-theme-on-surface-variant))}.v-slider-thumb__label:before{color:rgba(var(--v-theme-surface-variant),.7)}.v-slider-thumb{outline:none;position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1)}.v-slider-thumb__surface{cursor:pointer;width:var(--v-slider-thumb-size);height:var(--v-slider-thumb-size);border-radius:50%;-webkit-user-select:none;user-select:none;background-color:currentColor}@media (forced-colors: active){.v-slider-thumb__surface{background-color:highlight}}.v-slider-thumb__surface:before{transition:.3s cubic-bezier(.4,0,.2,1);content:"";color:inherit;top:0;left:0;width:100%;height:100%;border-radius:50%;background:currentColor;position:absolute;pointer-events:none;opacity:0}.v-slider-thumb__surface:after{content:"";width:42px;height:42px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.v-slider-thumb__label-container{position:absolute;transition:.2s cubic-bezier(.4,0,1,1)}.v-slider-thumb__label{display:flex;align-items:center;justify-content:center;font-size:.75rem;min-width:35px;height:25px;border-radius:4px;padding:6px;position:absolute;-webkit-user-select:none;user-select:none;transition:.2s cubic-bezier(.4,0,1,1)}.v-slider-thumb__label:before{content:"";width:0;height:0;position:absolute}.v-slider-thumb__ripple{position:absolute;left:calc(var(--v-slider-thumb-size) / -2);top:calc(var(--v-slider-thumb-size) / -2);width:calc(var(--v-slider-thumb-size) * 2);height:calc(var(--v-slider-thumb-size) * 2);background:inherit}.v-slider.v-input--horizontal .v-slider-thumb{top:50%;transform:translateY(-50%);inset-inline-start:calc(var(--v-slider-thumb-position) - var(--v-slider-thumb-size) / 2)}.v-slider.v-input--horizontal .v-slider-thumb__label-container{left:calc(var(--v-slider-thumb-size) / 2);top:0}.v-slider.v-input--horizontal .v-slider-thumb__label{bottom:calc(var(--v-slider-thumb-size) / 2)}.v-locale--is-ltr.v-slider.v-input--horizontal .v-slider-thumb__label,.v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-thumb__label{transform:translate(-50%)}.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-thumb__label,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-thumb__label{transform:translate(50%)}.v-slider.v-input--horizontal .v-slider-thumb__label:before{border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid currentColor;bottom:-6px}.v-slider.v-input--vertical .v-slider-thumb{top:calc(var(--v-slider-thumb-position) - var(--v-slider-thumb-size) / 2)}.v-slider.v-input--vertical .v-slider-thumb__label-container{top:calc(var(--v-slider-thumb-size) / 2);right:0}.v-slider.v-input--vertical .v-slider-thumb__label{top:-12.5px;left:calc(var(--v-slider-thumb-size) / 2)}.v-slider.v-input--vertical .v-slider-thumb__label:before{border-right:6px solid currentColor;border-top:6px solid transparent;border-bottom:6px solid transparent;left:-6px}.v-slider-thumb--focused .v-slider-thumb__surface:before{transform:scale(2);opacity:var(--v-focus-opacity)}.v-slider-thumb--pressed{transition:none}.v-slider-thumb--pressed .v-slider-thumb__surface:before{opacity:var(--v-pressed-opacity)}@media (hover: hover){.v-slider-thumb:hover .v-slider-thumb__surface:before{transform:scale(2)}.v-slider-thumb:hover:not(.v-slider-thumb--focused) .v-slider-thumb__surface:before{opacity:var(--v-hover-opacity)}}.v-slider-track__background{background-color:rgb(var(--v-theme-surface-variant))}@media (forced-colors: active){.v-slider-track__background{background-color:highlight}}.v-slider-track__fill{background-color:rgb(var(--v-theme-surface-variant))}@media (forced-colors: active){.v-slider-track__fill{background-color:highlight}}.v-slider-track__tick{background-color:rgb(var(--v-theme-surface-variant))}.v-slider-track__tick--filled{background-color:rgb(var(--v-theme-surface-light))}.v-slider-track{border-radius:6px}@media (forced-colors: active){.v-slider-track{border:thin solid buttontext}}.v-slider-track__background,.v-slider-track__fill{position:absolute;transition:.3s cubic-bezier(.25,.8,.5,1);border-radius:inherit}.v-slider--pressed .v-slider-track__background,.v-slider--pressed .v-slider-track__fill{transition:none}.v-input--error:not(.v-input--disabled) .v-slider-track__background,.v-input--error:not(.v-input--disabled) .v-slider-track__fill{background-color:currentColor}.v-slider-track__ticks{height:100%;width:100%;position:relative}.v-slider-track__tick{position:absolute;opacity:0;transition:.2s opacity cubic-bezier(.4,0,.2,1);border-radius:2px;width:var(--v-slider-tick-size);height:var(--v-slider-tick-size);transform:translate(calc(var(--v-slider-tick-size) / -2),calc(var(--v-slider-tick-size) / -2))}.v-locale--is-ltr.v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-ltr .v-slider-track__tick--first .v-slider-track__tick-label{transform:none}.v-locale--is-rtl.v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-rtl .v-slider-track__tick--first .v-slider-track__tick-label{transform:translate(100%)}.v-locale--is-ltr.v-slider-track__tick--last .v-slider-track__tick-label,.v-locale--is-ltr .v-slider-track__tick--last .v-slider-track__tick-label{transform:translate(-100%)}.v-locale--is-rtl.v-slider-track__tick--last .v-slider-track__tick-label,.v-locale--is-rtl .v-slider-track__tick--last .v-slider-track__tick-label{transform:none}.v-slider-track__tick-label{position:absolute;-webkit-user-select:none;user-select:none;white-space:nowrap}.v-slider.v-input--horizontal .v-slider-track{display:flex;align-items:center;width:100%;height:calc(var(--v-slider-track-size) + 2px);touch-action:pan-y}.v-slider.v-input--horizontal .v-slider-track__background{height:var(--v-slider-track-size)}.v-slider.v-input--horizontal .v-slider-track__fill{height:inherit}.v-slider.v-input--horizontal .v-slider-track__tick{margin-top:calc(calc(var(--v-slider-track-size) + 2px) / 2)}.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-track__tick,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick{transform:translate(calc(var(--v-slider-tick-size) / 2),calc(var(--v-slider-tick-size) / -2))}.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label{margin-top:calc(var(--v-slider-track-size) / 2 + 8px)}.v-locale--is-ltr.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label,.v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label{transform:translate(-50%)}.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label{transform:translate(50%)}.v-slider.v-input--horizontal .v-slider-track__tick--first{margin-inline-start:calc(var(--v-slider-tick-size) + 1px)}.v-locale--is-ltr.v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label{transform:translate(0)}.v-slider.v-input--horizontal .v-slider-track__tick--last{margin-inline-start:calc(100% - var(--v-slider-tick-size) - 1px)}.v-locale--is-ltr.v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label,.v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label{transform:translate(-100%)}.v-locale--is-rtl.v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label,.v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label{transform:translate(100%)}.v-slider.v-input--vertical .v-slider-track{height:100%;display:flex;justify-content:center;width:calc(var(--v-slider-track-size) + 2px);touch-action:pan-x}.v-slider.v-input--vertical .v-slider-track__background{width:var(--v-slider-track-size)}.v-slider.v-input--vertical .v-slider-track__fill{width:inherit}.v-slider.v-input--vertical .v-slider-track__ticks{height:100%}.v-slider.v-input--vertical .v-slider-track__tick{margin-inline-start:calc(calc(var(--v-slider-track-size) + 2px) / 2);transform:translate(calc(var(--v-slider-tick-size) / -2),calc(var(--v-slider-tick-size) / 2))}.v-locale--is-rtl.v-slider.v-input--vertical .v-slider-track__tick,.v-locale--is-rtl .v-slider.v-input--vertical .v-slider-track__tick{transform:translate(calc(var(--v-slider-tick-size) / 2),calc(var(--v-slider-tick-size) / 2))}.v-slider.v-input--vertical .v-slider-track__tick--first{bottom:calc(0% + var(--v-slider-tick-size) + 1px)}.v-slider.v-input--vertical .v-slider-track__tick--last{bottom:calc(100% - var(--v-slider-tick-size) - 1px)}.v-slider.v-input--vertical .v-slider-track__tick .v-slider-track__tick-label{margin-inline-start:calc(var(--v-slider-track-size) / 2 + 12px);transform:translateY(-50%)}.v-slider-track__ticks--always-show .v-slider-track__tick,.v-slider--focused .v-slider-track__tick{opacity:1}.v-slider-track__background--opacity{opacity:.38}.v-color-picker-swatches{overflow-y:auto}.v-color-picker-swatches>div{display:flex;flex-wrap:wrap;justify-content:center;padding:8px}.v-color-picker-swatches__swatch{display:flex;flex-direction:column;margin-bottom:10px}.v-color-picker-swatches__color{position:relative;height:18px;max-height:18px;width:45px;margin:2px 4px;border-radius:2px;-webkit-user-select:none;user-select:none;overflow:hidden;background:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAgAAAAICAYAAADED76LAAAAAXNSR0IArs4c6QAAACRJREFUKFNjPHTo0H8GJGBnZ8eIzGekgwJk+0BsdCtRHEQbBQBbbh0dIGKknQAAAABJRU5ErkJggg==) repeat;cursor:pointer}.v-color-picker-swatches__color>div{display:flex;align-items:center;justify-content:center;width:100%;height:100%}.v-sheet{display:block;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:0;background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-sheet--border{border-width:thin;box-shadow:none}.v-sheet--absolute{position:absolute}.v-sheet--fixed{position:fixed}.v-sheet--relative{position:relative}.v-sheet--sticky{position:sticky}.v-sheet--rounded{border-radius:4px}.v-combobox .v-field .v-text-field__prefix,.v-combobox .v-field .v-text-field__suffix,.v-combobox .v-field .v-field__input,.v-combobox .v-field.v-field{cursor:text}.v-combobox .v-field .v-field__input>input{flex:1 1}.v-combobox .v-field input{min-width:64px}.v-combobox .v-field:not(.v-field--focused) input{min-width:0}.v-combobox .v-field--dirty .v-combobox__selection{margin-inline-end:2px}.v-combobox .v-combobox__selection-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.v-combobox__content{overflow:hidden;box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:4px}.v-combobox__mask{background:rgb(var(--v-theme-surface-light))}.v-combobox__selection{display:inline-flex;align-items:center;height:1.5rem;letter-spacing:inherit;line-height:inherit;max-width:calc(100% - 4px)}.v-combobox__selection:first-child{margin-inline-start:0}.v-combobox--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-combobox--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0}.v-combobox--selecting-index .v-combobox__selection{opacity:var(--v-medium-emphasis-opacity)}.v-combobox--selecting-index .v-combobox__selection--selected{opacity:1}.v-combobox--selecting-index .v-field__input>input{caret-color:transparent}.v-combobox--single:not(.v-combobox--selection-slot).v-text-field input{flex:1 1;position:absolute;left:0;right:0;width:100%;padding-inline:inherit}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--active input{transition:none}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--dirty:not(.v-field--focused) input{opacity:0}.v-combobox--single:not(.v-combobox--selection-slot) .v-field--focused .v-combobox__selection{opacity:0}.v-combobox__menu-icon{margin-inline-start:4px;transition:.2s cubic-bezier(.4,0,.2,1)}.v-combobox--active-menu .v-combobox__menu-icon{opacity:var(--v-high-emphasis-opacity);transform:rotate(180deg)}.v-data-table{width:100%}.v-data-table__table{width:100%;border-collapse:separate;border-spacing:0}.v-data-table__tr--focus{border:1px dotted black}.v-data-table__tr--clickable{cursor:pointer}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--align-end,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--align-end,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--align-end,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--align-end{text-align:end}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--align-end .v-data-table-header__content,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--align-end .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--align-end .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--align-end .v-data-table-header__content{flex-direction:row-reverse}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--align-center,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--align-center,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--align-center,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--align-center{text-align:center}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--align-center .v-data-table-header__content,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--align-center .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--align-center .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--align-center .v-data-table-header__content{justify-content:center}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--no-padding,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--no-padding,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--no-padding,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--no-padding{padding:0 8px}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--nowrap,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--nowrap,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--nowrap,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--nowrap{text-overflow:ellipsis;text-wrap:nowrap;overflow:hidden}.v-data-table .v-table__wrapper>table>thead>tr>td.v-data-table-column--nowrap .v-data-table-header__content,.v-data-table .v-table__wrapper>table>thead>tr th.v-data-table-column--nowrap .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr>td.v-data-table-column--nowrap .v-data-table-header__content,.v-data-table .v-table__wrapper>table tbody>tr th.v-data-table-column--nowrap .v-data-table-header__content{display:contents}.v-data-table .v-table__wrapper>table>thead>tr>th,.v-data-table .v-table__wrapper>table tbody>tr>th{align-items:center}.v-data-table .v-table__wrapper>table>thead>tr>th.v-data-table__th--fixed,.v-data-table .v-table__wrapper>table tbody>tr>th.v-data-table__th--fixed{position:sticky}.v-data-table .v-table__wrapper>table>thead>tr>th.v-data-table__th--sortable:hover,.v-data-table .v-table__wrapper>table tbody>tr>th.v-data-table__th--sortable:hover{cursor:pointer;color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-data-table .v-table__wrapper>table>thead>tr>th:not(.v-data-table__th--sorted) .v-data-table-header__sort-icon,.v-data-table .v-table__wrapper>table tbody>tr>th:not(.v-data-table__th--sorted) .v-data-table-header__sort-icon{opacity:0}.v-data-table .v-table__wrapper>table>thead>tr>th:not(.v-data-table__th--sorted):hover .v-data-table-header__sort-icon,.v-data-table .v-table__wrapper>table tbody>tr>th:not(.v-data-table__th--sorted):hover .v-data-table-header__sort-icon{opacity:.5}.v-data-table .v-table__wrapper>table>thead>tr.v-data-table__tr--mobile>td,.v-data-table .v-table__wrapper>table tbody>tr.v-data-table__tr--mobile>td{height:fit-content}.v-data-table-column--fixed,.v-data-table__th--sticky{background:rgb(var(--v-theme-surface));position:sticky!important;left:0;z-index:1}.v-data-table-column--last-fixed{border-right:1px solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-data-table.v-table--fixed-header>.v-table__wrapper>table>thead>tr>th.v-data-table-column--fixed{z-index:2}.v-data-table-group-header-row td{background:rgba(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface))}.v-data-table-group-header-row td>span{padding-left:5px}.v-data-table--loading .v-data-table__td{opacity:var(--v-disabled-opacity)}.v-data-table-group-header-row__column{padding-left:calc(var(--v-data-table-group-header-row-depth) * 16px)!important}.v-data-table-header__content{display:flex;align-items:center}.v-data-table-header__sort-badge{display:inline-flex;justify-content:center;align-items:center;font-size:.875rem;padding:4px;border-radius:50%;background:rgba(var(--v-border-color),var(--v-border-opacity));min-width:20px;min-height:20px;width:20px;height:20px}.v-data-table-progress>th{border:none!important;height:auto!important;padding:0!important}.v-data-table-progress__loader{position:relative}.v-data-table-rows-loading,.v-data-table-rows-no-data{text-align:center}.v-data-table__tr--mobile>.v-data-table__td--expanded-row{grid-template-columns:0;justify-content:center}.v-data-table__tr--mobile>.v-data-table__td--select-row{grid-template-columns:0;justify-content:end}.v-data-table__tr--mobile>td{align-items:center;column-gap:4px;display:grid;grid-template-columns:repeat(2,1fr);min-height:var(--v-table-row-height)}.v-data-table__tr--mobile>td:not(:last-child){border-bottom:0!important}.v-data-table__td-title{font-weight:500;text-align:left}.v-data-table__td-value{text-align:right}.v-data-table__td-sort-icon{color:rgba(var(--v-theme-on-surface),var(--v-disabled-opacity))}.v-data-table__td-sort-icon-active{color:rgba(var(--v-theme-on-surface))}.v-data-table-footer{align-items:center;display:flex;flex-wrap:wrap;justify-content:flex-end;padding:8px 4px}.v-data-table-footer__items-per-page{align-items:center;display:flex;justify-content:center}.v-data-table-footer__items-per-page>span{padding-inline-end:8px}.v-data-table-footer__items-per-page>.v-select{width:90px}.v-data-table-footer__info{display:flex;justify-content:flex-end;min-width:116px;padding:0 16px}.v-data-table-footer__paginationz{align-items:center;display:flex;margin-inline-start:16px}.v-data-table-footer__page{padding:0 8px}.v-pagination__list{display:inline-flex;list-style-type:none;justify-content:center;width:100%}.v-pagination__item,.v-pagination__first,.v-pagination__prev,.v-pagination__next,.v-pagination__last{margin:.3rem}.v-table{background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity));font-size:.875rem;transition-duration:.28s;transition-property:box-shadow,opacity,background,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.v-table .v-table-divider{border-right:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table .v-table__wrapper>table>thead>tr>th{border-bottom:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>td,.v-table .v-table__wrapper>table>tbody>tr:not(:last-child)>th{border-bottom:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table .v-table__wrapper>table>tfoot>tr>td,.v-table .v-table__wrapper>table>tfoot>tr>th{border-top:thin solid rgba(var(--v-border-color),var(--v-border-opacity))}.v-table.v-table--hover>.v-table__wrapper>table>tbody>tr>td{position:relative}.v-table.v-table--hover>.v-table__wrapper>table>tbody>tr:hover>td:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:rgba(var(--v-border-color),var(--v-hover-opacity));pointer-events:none}.v-table.v-table--fixed-header>.v-table__wrapper>table>thead>tr>th{background:rgb(var(--v-theme-surface));box-shadow:inset 0 -1px rgba(var(--v-border-color),var(--v-border-opacity));z-index:1}.v-table.v-table--fixed-footer>tfoot>tr>th,.v-table.v-table--fixed-footer>tfoot>tr>td{background:rgb(var(--v-theme-surface));box-shadow:inset 0 1px rgba(var(--v-border-color),var(--v-border-opacity))}.v-table{border-radius:inherit;line-height:1.5;max-width:100%;display:flex;flex-direction:column}.v-table>.v-table__wrapper>table{width:100%;border-spacing:0}.v-table>.v-table__wrapper>table>tbody>tr>td,.v-table>.v-table__wrapper>table>tbody>tr>th,.v-table>.v-table__wrapper>table>thead>tr>td,.v-table>.v-table__wrapper>table>thead>tr>th,.v-table>.v-table__wrapper>table>tfoot>tr>td,.v-table>.v-table__wrapper>table>tfoot>tr>th{padding:0 16px;transition-duration:.28s;transition-property:box-shadow,opacity,background,height;transition-timing-function:cubic-bezier(.4,0,.2,1)}.v-table>.v-table__wrapper>table>tbody>tr>td,.v-table>.v-table__wrapper>table>thead>tr>td,.v-table>.v-table__wrapper>table>tfoot>tr>td{height:var(--v-table-row-height)}.v-table>.v-table__wrapper>table>tbody>tr>th,.v-table>.v-table__wrapper>table>thead>tr>th,.v-table>.v-table__wrapper>table>tfoot>tr>th{height:var(--v-table-header-height);font-weight:500;-webkit-user-select:none;user-select:none;text-align:start}.v-table--density-default{--v-table-header-height: 56px;--v-table-row-height: 52px}.v-table--density-comfortable{--v-table-header-height: 48px;--v-table-row-height: 44px}.v-table--density-compact{--v-table-header-height: 40px;--v-table-row-height: 36px}.v-table__wrapper{border-radius:inherit;overflow:auto;flex:1 1 auto}.v-table--has-top>.v-table__wrapper>table>tbody>tr:first-child:hover>td:first-child{border-top-left-radius:0}.v-table--has-top>.v-table__wrapper>table>tbody>tr:first-child:hover>td:last-child{border-top-right-radius:0}.v-table--has-bottom>.v-table__wrapper>table>tbody>tr:last-child:hover>td:first-child{border-bottom-left-radius:0}.v-table--has-bottom>.v-table__wrapper>table>tbody>tr:last-child:hover>td:last-child{border-bottom-right-radius:0}.v-table--fixed-height>.v-table__wrapper{overflow-y:auto}.v-table--fixed-header>.v-table__wrapper>table>thead{position:sticky;top:0;z-index:2}.v-table--fixed-header>.v-table__wrapper>table>thead>tr>th{border-bottom:0px!important}.v-table--fixed-footer>.v-table__wrapper>table>tfoot>tr{position:sticky;bottom:0;z-index:1}.v-table--fixed-footer>.v-table__wrapper>table>tfoot>tr>td,.v-table--fixed-footer>.v-table__wrapper>table>tfoot>tr>th{border-top:0px!important}.v-date-picker{overflow:hidden;width:328px}.v-date-picker--show-week{width:368px}.v-date-picker-controls{display:flex;align-items:center;justify-content:space-between;font-size:.875rem;padding-top:4px;padding-bottom:4px;padding-inline-start:6px;padding-inline-end:12px}.v-date-picker-controls>.v-btn:first-child{text-transform:none;font-weight:400;line-height:initial;letter-spacing:initial}.v-date-picker-controls--variant-classic{padding-inline-start:12px}.v-date-picker-controls--variant-modern .v-date-picker__title:not(:hover){opacity:.7}.v-date-picker--month .v-date-picker-controls--variant-modern .v-date-picker__title{cursor:pointer}.v-date-picker--year .v-date-picker-controls--variant-modern .v-date-picker__title{opacity:1}.v-date-picker-controls .v-btn:last-child{margin-inline-start:4px}.v-date-picker--year .v-date-picker-controls .v-date-picker-controls__mode-btn{transform:rotate(180deg)}.v-date-picker-controls__date{margin-inline-end:4px}.v-date-picker-controls--variant-classic .v-date-picker-controls__date{margin:auto;text-align:center}.v-date-picker-controls__month{display:flex}.v-locale--is-rtl.v-date-picker-controls__month,.v-locale--is-rtl .v-date-picker-controls__month{flex-direction:row-reverse}.v-date-picker-controls--variant-classic .v-date-picker-controls__month{flex:1 0 auto}.v-date-picker__title{display:inline-block}.v-date-picker-header{align-items:flex-end;height:70px;display:grid;grid-template-areas:"prepend content append";grid-template-columns:min-content minmax(0,1fr) min-content;overflow:hidden;padding-inline:24px 12px;padding-bottom:12px}.v-date-picker-header__append{grid-area:append}.v-date-picker-header__prepend{grid-area:prepend;padding-inline-start:8px}.v-date-picker-header__content{align-items:center;display:inline-flex;font-size:32px;line-height:40px;grid-area:content;justify-content:space-between}.v-date-picker-header--clickable .v-date-picker-header__content{cursor:pointer}.v-date-picker-header--clickable .v-date-picker-header__content:not(:hover){opacity:.7}.date-picker-header-transition-enter-active,.date-picker-header-reverse-transition-enter-active,.date-picker-header-transition-leave-active,.date-picker-header-reverse-transition-leave-active{transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.date-picker-header-transition-enter-from{transform:translateY(100%)}.date-picker-header-transition-leave-to{opacity:0;transform:translateY(-100%)}.date-picker-header-reverse-transition-enter-from{transform:translateY(-100%)}.date-picker-header-reverse-transition-leave-to{opacity:0;transform:translateY(100%)}.v-date-picker-month{display:flex;justify-content:center;padding:0 12px 8px;--v-date-picker-month-day-diff: 4px}.v-date-picker-month__weeks{display:grid;grid-template-rows:min-content min-content min-content min-content min-content min-content min-content;column-gap:4px;font-size:.85rem}.v-date-picker-month__weeks+.v-date-picker-month__days{grid-row-gap:0}.v-date-picker-month__weekday{font-size:.85rem}.v-date-picker-month__days{display:grid;grid-template-columns:min-content min-content min-content min-content min-content min-content min-content;column-gap:4px;flex:1 1;justify-content:space-around}.v-date-picker-month__day{align-items:center;display:flex;justify-content:center;position:relative;height:40px;width:40px}.v-date-picker-month__day--selected .v-btn{background-color:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant))}.v-date-picker-month__day .v-btn.v-date-picker-month__day-btn{--v-btn-height: 24px;--v-btn-size: .85rem}.v-date-picker-month__day--week{font-size:var(--v-btn-size)}.v-date-picker-month__day--adjacent{opacity:.5}.v-date-picker-month__day--hide-adjacent{opacity:0}.v-date-picker-months{height:288px}.v-date-picker-months__content{align-items:center;display:grid;flex:1 1;height:inherit;justify-content:space-around;grid-template-columns:repeat(2,1fr);grid-gap:0px 24px;padding-inline-start:36px;padding-inline-end:36px}.v-date-picker-months__content .v-btn{text-transform:none;padding-inline-start:8px;padding-inline-end:8px}.v-date-picker-years{height:288px;overflow-y:scroll}.v-date-picker-years__content{display:grid;flex:1 1;justify-content:space-around;grid-template-columns:repeat(3,1fr);gap:8px 24px;padding-inline:32px}.v-date-picker-years__content .v-btn{padding-inline:8px}.v-picker.v-sheet{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:4px;display:grid;grid-auto-rows:min-content;grid-template-areas:"title" "header" "body";overflow:hidden}.v-picker.v-sheet.v-picker--with-actions{grid-template-areas:"title" "header" "body" "actions"}.v-picker__body{grid-area:body;overflow:hidden;position:relative}.v-picker__header{grid-area:header}.v-picker__actions{grid-area:actions;padding:0 12px 12px;display:flex;align-items:center;justify-content:flex-end}.v-picker__actions .v-btn{min-width:48px}.v-picker__actions .v-btn:not(:last-child){margin-inline-end:8px}.v-picker--landscape{grid-template-areas:"title" "header body" "header body"}.v-picker--landscape.v-picker--with-actions{grid-template-areas:"title" "header body" "header actions"}.v-picker-title{text-transform:uppercase;font-size:.75rem;grid-area:title;padding-inline:24px 12px;padding-top:16px;padding-bottom:16px;font-weight:400;letter-spacing:.1666666667em}.v-empty-state{align-items:center;display:flex;flex-direction:column;justify-content:center;min-height:100%;padding:16px}.v-empty-state--start{align-items:flex-start}.v-empty-state--center{align-items:center}.v-empty-state--end{align-items:flex-end}.v-empty-state__media{text-align:center;width:100%}.v-empty-state__media .v-icon{color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity))}.v-empty-state__headline{color:rgba(var(--v-theme-on-surface),var(--v-medium-emphasis-opacity));font-size:3.75rem;font-weight:300;line-height:1;text-align:center;margin-bottom:8px}.v-empty-state--mobile .v-empty-state__headline{font-size:2.125rem}.v-empty-state__title{font-size:1.25rem;font-weight:500;line-height:1.6;margin-bottom:4px;text-align:center}.v-empty-state__text{font-size:.875rem;font-weight:400;line-height:1.425;padding:0 16px;text-align:center}.v-empty-state__content{padding:24px 0}.v-empty-state__actions{display:flex;gap:8px;padding:16px}.v-empty-state__action-btn.v-btn{background-color:initial;color:initial}.v-expansion-panel{background-color:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-expansion-panel:not(:first-child):after{border-color:rgba(var(--v-border-color),var(--v-border-opacity))}.v-expansion-panel--disabled .v-expansion-panel-title{color:rgba(var(--v-theme-on-surface),.26)}.v-expansion-panel--disabled .v-expansion-panel-title .v-expansion-panel-title__overlay{opacity:.4615384615}.v-expansion-panels{display:flex;flex-wrap:wrap;justify-content:center;list-style-type:none;padding:0;width:100%;position:relative;z-index:1}.v-expansion-panels:not(.v-expansion-panels--variant-accordion)>:not(:first-child):not(:last-child):not(.v-expansion-panel--active):not(.v-expansion-panel--before-active){border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.v-expansion-panels:not(.v-expansion-panels--variant-accordion)>:not(:first-child):not(:last-child):not(.v-expansion-panel--active):not(.v-expansion-panel--after-active){border-top-left-radius:0!important;border-top-right-radius:0!important}.v-expansion-panels:not(.v-expansion-panels--variant-accordion)>:first-child:not(:last-child):not(.v-expansion-panel--active):not(.v-expansion-panel--before-active){border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.v-expansion-panels:not(.v-expansion-panels--variant-accordion)>:last-child:not(:first-child):not(.v-expansion-panel--active):not(.v-expansion-panel--after-active){border-top-left-radius:0!important;border-top-right-radius:0!important}.v-expansion-panels--variant-accordion>:first-child:not(:last-child){border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.v-expansion-panels--variant-accordion>:last-child:not(:first-child){border-top-left-radius:0!important;border-top-right-radius:0!important}.v-expansion-panels--variant-accordion>:last-child:not(:first-child) .v-expansion-panel-title--active{border-bottom-left-radius:initial;border-bottom-right-radius:initial}.v-expansion-panels--variant-accordion>:not(:first-child):not(:last-child){border-radius:0!important}.v-expansion-panels--variant-accordion .v-expansion-panel-title__overlay{transition:.3s border-radius cubic-bezier(.4,0,.2,1)}.v-expansion-panel{flex:1 0 100%;max-width:100%;position:relative;transition:.3s all cubic-bezier(.4,0,.2,1);transition-property:margin-top,border-radius,border,max-width;border-radius:4px}.v-expansion-panel:not(:first-child):after{border-top-style:solid;border-top-width:thin;content:"";left:0;position:absolute;right:0;top:0;transition:.3s opacity cubic-bezier(.4,0,.2,1)}.v-expansion-panel--disabled .v-expansion-panel-title{pointer-events:none}.v-expansion-panel--active:not(:first-child),.v-expansion-panel--active+.v-expansion-panel{margin-top:16px}.v-expansion-panel--active:not(:first-child):after,.v-expansion-panel--active+.v-expansion-panel:after{opacity:0}.v-expansion-panel--active>.v-expansion-panel-title{border-bottom-left-radius:0;border-bottom-right-radius:0}.v-expansion-panel--active>.v-expansion-panel-title:not(.v-expansion-panel-title--static){min-height:64px}.v-expansion-panel__shadow{position:absolute;top:0;left:0;width:100%;height:100%;box-shadow:0 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 2px 2px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 5px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:inherit;z-index:-1}.v-expansion-panel-title{align-items:center;text-align:start;border-radius:inherit;display:flex;font-size:.9375rem;line-height:1;min-height:48px;outline:none;padding:16px 24px;position:relative;transition:.3s min-height cubic-bezier(.4,0,.2,1);width:100%;justify-content:space-between}.v-expansion-panel-title:hover>.v-expansion-panel-title__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-expansion-panel-title:focus-visible>.v-expansion-panel-title__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-expansion-panel-title:focus>.v-expansion-panel-title__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-expansion-panel-title--focusable.v-expansion-panel-title--active .v-expansion-panel-title__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-expansion-panel-title--focusable.v-expansion-panel-title--active:hover .v-expansion-panel-title__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-expansion-panel-title--focusable.v-expansion-panel-title--active:focus-visible .v-expansion-panel-title__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-expansion-panel-title--focusable.v-expansion-panel-title--active:focus .v-expansion-panel-title__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-expansion-panel-title__overlay{position:absolute;top:0;left:0;width:100%;height:100%;background-color:currentColor;border-radius:inherit;opacity:0}.v-expansion-panel-title__icon{display:inline-flex;margin-bottom:-4px;margin-top:-4px;-webkit-user-select:none;user-select:none;margin-inline-start:auto}.v-expansion-panel-text{display:flex}.v-expansion-panel-text__wrapper{padding:8px 24px 16px;flex:1 1 auto;max-width:100%}.v-expansion-panels--variant-accordion>.v-expansion-panel{margin-top:0}.v-expansion-panels--variant-accordion>.v-expansion-panel:after{opacity:1}.v-expansion-panels--variant-popout>.v-expansion-panel{max-width:calc(100% - 32px)}.v-expansion-panels--variant-popout>.v-expansion-panel--active{max-width:calc(100% + 16px)}.v-expansion-panels--variant-inset>.v-expansion-panel{max-width:100%}.v-expansion-panels--variant-inset>.v-expansion-panel--active{max-width:calc(100% - 32px)}.v-expansion-panels--flat>.v-expansion-panel:after{border-top:none}.v-expansion-panels--flat>.v-expansion-panel .v-expansion-panel__shadow{display:none}.v-expansion-panels--tile{border-radius:0}.v-expansion-panels--tile>.v-expansion-panel{border-radius:0}.v-fab{align-items:center;display:inline-flex;flex:1 1 auto;pointer-events:none;position:relative;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1);vertical-align:middle}.v-fab .v-btn{pointer-events:auto}.v-fab .v-btn--variant-elevated{box-shadow:0 3px 3px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 3px 4px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 8px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-fab--app,.v-fab--absolute{display:flex}.v-fab--start,.v-fab--left{justify-content:flex-start}.v-fab--center{align-items:center;justify-content:center}.v-fab--end,.v-fab--right{justify-content:flex-end}.v-fab--bottom{align-items:flex-end}.v-fab--top{align-items:flex-start}.v-fab--extended .v-btn{border-radius:9999px!important}.v-fab__container{align-self:center;display:inline-flex;position:absolute;vertical-align:middle}.v-fab--app .v-fab__container{margin:12px}.v-fab--absolute .v-fab__container{position:absolute;z-index:4}.v-fab--offset.v-fab--top .v-fab__container{transform:translateY(-50%)}.v-fab--offset.v-fab--bottom .v-fab__container{transform:translateY(50%)}.v-fab--top .v-fab__container{top:0}.v-fab--bottom .v-fab__container{bottom:0}.v-fab--left .v-fab__container,.v-fab--start .v-fab__container{left:0}.v-fab--right .v-fab__container,.v-fab--end .v-fab__container{right:0}.v-file-input--hide.v-input .v-field,.v-file-input--hide.v-input .v-input__control,.v-file-input--hide.v-input .v-input__details{display:none}.v-file-input--hide.v-input .v-input__prepend{grid-area:control;margin:0 auto}.v-file-input--chips.v-input--density-compact .v-field--variant-solo .v-label.v-field-label--floating,.v-file-input--chips.v-input--density-compact .v-field--variant-solo-inverted .v-label.v-field-label--floating,.v-file-input--chips.v-input--density-compact .v-field--variant-filled .v-label.v-field-label--floating,.v-file-input--chips.v-input--density-compact .v-field--variant-solo-filled .v-label.v-field-label--floating{top:0}.v-file-input input[type=file]{height:100%;left:0;opacity:0;position:absolute;top:0;width:100%;z-index:1}.v-file-input .v-input__details{padding-inline:16px}.v-input--plain-underlined.v-file-input .v-input__details{padding-inline:0}.v-footer{align-items:center;display:flex;flex:1 1 auto;padding:8px 16px;position:relative;transition:.2s cubic-bezier(.4,0,.2,1);transition-property:height,width,transform,max-width,left,right,top,bottom;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:0;background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-footer--border{border-width:thin;box-shadow:none}.v-footer--absolute{position:absolute}.v-footer--fixed{position:fixed}.v-footer--rounded{border-radius:4px}.v-infinite-scroll--horizontal{display:flex;flex-direction:row;overflow-x:auto}.v-infinite-scroll--horizontal .v-infinite-scroll-intersect{height:100%;width:1px}.v-infinite-scroll--vertical{display:flex;flex-direction:column;overflow-y:auto}.v-infinite-scroll--vertical .v-infinite-scroll-intersect{height:1px;width:100%}.v-infinite-scroll__side{align-items:center;display:flex;justify-content:center;padding:8px}.v-item-group{flex:0 1 auto;max-width:100%;position:relative;transition:.2s cubic-bezier(.4,0,.2,1)}.v-kbd{background:rgb(var(--v-theme-kbd));color:rgb(var(--v-theme-on-kbd));border-radius:3px;display:inline;font-size:85%;font-weight:400;padding:.2em .4rem;box-shadow:0 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 2px 2px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 5px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-layout{--v-scrollbar-offset: 0px;display:flex;flex:1 1 auto}.v-layout--full-height{--v-scrollbar-offset: inherit;height:100%}.v-layout-item{position:absolute;transition:.2s cubic-bezier(.4,0,.2,1)}.v-layout-item--absolute{position:absolute}.v-locale-provider{display:contents}.v-navigation-drawer{-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;height:100%;max-width:100%;pointer-events:auto;transition-duration:.2s;transition-property:box-shadow,transform,visibility,width,height,left,right,top,bottom;transition-timing-function:cubic-bezier(.4,0,.2,1);position:absolute;border-color:rgba(var(--v-border-color),var(--v-border-opacity));border-style:solid;border-width:0;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));background:rgb(var(--v-theme-surface));color:rgba(var(--v-theme-on-surface),var(--v-high-emphasis-opacity))}.v-navigation-drawer--border{border-width:thin;box-shadow:none}.v-navigation-drawer--rounded{border-radius:4px}.v-navigation-drawer--top,.v-navigation-drawer--bottom{max-height:-webkit-fill-available;overflow-y:auto}.v-navigation-drawer--top{top:0;border-bottom-width:thin}.v-navigation-drawer--bottom{left:0;border-top-width:thin}.v-navigation-drawer--left{top:0;left:0;right:auto;border-right-width:thin}.v-navigation-drawer--right{top:0;left:auto;right:0;border-left-width:thin}.v-navigation-drawer--floating{border:none}.v-navigation-drawer--temporary.v-navigation-drawer--active{box-shadow:0 8px 10px -5px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 16px 24px 2px var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 6px 30px 5px var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-navigation-drawer--sticky{height:auto;transition:box-shadow,transform,visibility,width,height,left,right}.v-navigation-drawer .v-list{overflow:hidden}.v-navigation-drawer__content{flex:0 1 auto;height:100%;max-width:100%;overflow-x:hidden;overflow-y:auto}.v-navigation-drawer__img{height:100%;left:0;position:absolute;top:0;width:100%;z-index:-1}.v-navigation-drawer__img img:not(.v-img__img){height:inherit;object-fit:cover;width:inherit}.v-navigation-drawer__scrim{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;opacity:.2;transition:opacity .2s cubic-bezier(.4,0,.2,1);z-index:1}.v-navigation-drawer__prepend,.v-navigation-drawer__append{flex:none;overflow:hidden}.v-otp-input{border-radius:4px;align-items:center;display:flex;justify-content:center;padding:.5rem 0;position:relative}.v-otp-input .v-field{height:100%}.v-otp-input__divider{margin:0 8px}.v-otp-input__content{align-items:center;display:flex;gap:.5rem;height:64px;padding:.5rem;justify-content:center;max-width:320px;position:relative;border-radius:inherit}.v-otp-input--divided .v-otp-input__content{max-width:360px}.v-otp-input__field{color:inherit;font-size:1.25rem;height:100%;outline:none;text-align:center;width:100%}.v-otp-input__field[type=number]::-webkit-outer-spin-button,.v-otp-input__field[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.v-otp-input__field[type=number]{-moz-appearance:textfield}.v-otp-input__loader{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.v-otp-input__loader .v-progress-linear{position:absolute}.v-parallax{position:relative;overflow:hidden}.v-parallax--active>.v-img__img{will-change:transform}.v-radio-group>.v-input__control{flex-direction:column}.v-radio-group>.v-input__control>.v-label{margin-inline-start:16px}.v-radio-group>.v-input__control>.v-label+.v-selection-control-group{padding-inline-start:6px;margin-top:8px}.v-radio-group .v-input__details{padding-inline:16px}.v-rating{max-width:100%;display:inline-flex;white-space:nowrap}.v-rating--readonly{pointer-events:none}.v-rating__wrapper{align-items:center;display:inline-flex;flex-direction:column}.v-rating__wrapper--bottom{flex-direction:column-reverse}.v-rating__item{display:inline-flex;position:relative}.v-rating__item label{cursor:pointer}.v-rating__item .v-btn--variant-plain{opacity:1}.v-rating__item .v-btn{transition-property:transform}.v-rating__item .v-btn .v-icon{transition:inherit;transition-timing-function:cubic-bezier(0,0,.2,1)}.v-rating--hover .v-rating__item:hover:not(.v-rating__item--focused) .v-btn{transform:scale(1.25)}.v-rating__item--half{overflow:hidden;position:absolute;clip-path:polygon(0 0,50% 0,50% 100%,0 100%);z-index:1}.v-rating__item--half .v-btn__overlay,.v-rating__item--half:hover .v-btn__overlay{opacity:0}.v-rating__hidden{height:0;opacity:0;position:absolute;width:0}.v-skeleton-loader{align-items:center;background:rgb(var(--v-theme-surface));border-radius:4px;display:flex;flex-wrap:wrap;position:relative;vertical-align:top}.v-skeleton-loader__actions{justify-content:end}.v-skeleton-loader .v-skeleton-loader__ossein{height:100%}.v-skeleton-loader .v-skeleton-loader__avatar,.v-skeleton-loader .v-skeleton-loader__button,.v-skeleton-loader .v-skeleton-loader__chip,.v-skeleton-loader .v-skeleton-loader__divider,.v-skeleton-loader .v-skeleton-loader__heading,.v-skeleton-loader .v-skeleton-loader__image,.v-skeleton-loader .v-skeleton-loader__ossein,.v-skeleton-loader .v-skeleton-loader__text{background:rgba(var(--v-theme-on-surface),var(--v-border-opacity))}.v-skeleton-loader .v-skeleton-loader__list-item,.v-skeleton-loader .v-skeleton-loader__list-item-avatar,.v-skeleton-loader .v-skeleton-loader__list-item-text,.v-skeleton-loader .v-skeleton-loader__list-item-two-line,.v-skeleton-loader .v-skeleton-loader__list-item-avatar-two-line,.v-skeleton-loader .v-skeleton-loader__list-item-three-line,.v-skeleton-loader .v-skeleton-loader__list-item-avatar-three-line{border-radius:4px}.v-skeleton-loader__bone{align-items:center;border-radius:inherit;display:flex;flex:1 1 100%;flex-wrap:wrap;overflow:hidden;position:relative}.v-skeleton-loader__bone:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;animation:loading 1.5s infinite;background:linear-gradient(90deg,rgba(var(--v-theme-surface),0),rgba(var(--v-theme-surface),.3),rgba(var(--v-theme-surface),0));transform:translate(-100%);z-index:1}.v-skeleton-loader__avatar{border-radius:50%;flex:0 1 auto;margin:8px 16px;max-height:48px;min-height:48px;height:48px;max-width:48px;min-width:48px;width:48px}.v-skeleton-loader__avatar+.v-skeleton-loader__bone{flex:1 1 auto;margin-inline-start:0}.v-skeleton-loader__avatar+.v-skeleton-loader__sentences>.v-skeleton-loader__text,.v-skeleton-loader__avatar+.v-skeleton-loader__paragraph>.v-skeleton-loader__text{margin-inline-start:0}.v-skeleton-loader__button{border-radius:4px;height:36px;margin:16px;max-width:64px}.v-skeleton-loader__button+.v-skeleton-loader__bone{flex:1 1 auto;margin-inline-start:0}.v-skeleton-loader__button+.v-skeleton-loader__sentences>.v-skeleton-loader__text,.v-skeleton-loader__button+.v-skeleton-loader__paragraph>.v-skeleton-loader__text{margin-inline-start:0}.v-skeleton-loader__chip{border-radius:16px;margin:16px;height:32px;max-width:96px}.v-skeleton-loader__chip+.v-skeleton-loader__bone{flex:1 1 auto;margin-inline-start:0}.v-skeleton-loader__chip+.v-skeleton-loader__sentences>.v-skeleton-loader__text,.v-skeleton-loader__chip+.v-skeleton-loader__paragraph>.v-skeleton-loader__text{margin-inline-start:0}.v-skeleton-loader__date-picker{border-radius:inherit}.v-skeleton-loader__date-picker .v-skeleton-loader__list-item:first-child .v-skeleton-loader__text{max-width:88px;width:20%}.v-skeleton-loader__date-picker .v-skeleton-loader__heading{max-width:256px;width:40%}.v-skeleton-loader__date-picker-days{flex-wrap:wrap;margin:16px}.v-skeleton-loader__date-picker-days .v-skeleton-loader__avatar{border-radius:4px;margin:4px;max-width:100%}.v-skeleton-loader__date-picker-options{flex-wrap:nowrap}.v-skeleton-loader__date-picker-options .v-skeleton-loader__text{flex:1 1 auto}.v-skeleton-loader__divider{border-radius:1px;height:2px}.v-skeleton-loader__heading{border-radius:12px;margin:16px;height:24px}.v-skeleton-loader__heading+.v-skeleton-loader__subtitle{margin-top:-16px}.v-skeleton-loader__image{height:150px;border-radius:0}.v-skeleton-loader__card .v-skeleton-loader__image{border-radius:0}.v-skeleton-loader__list-item{margin:16px}.v-skeleton-loader__list-item .v-skeleton-loader__text{margin:0}.v-skeleton-loader__table-thead{justify-content:space-between}.v-skeleton-loader__table-thead .v-skeleton-loader__heading{margin-top:16px;max-width:16px}.v-skeleton-loader__table-tfoot{flex-wrap:nowrap}.v-skeleton-loader__table-tfoot>.v-skeleton-loader__text.v-skeleton-loader__bone{margin-top:16px}.v-skeleton-loader__table-row{align-items:baseline;margin:0 8px;justify-content:space-evenly;flex-wrap:nowrap}.v-skeleton-loader__table-row>.v-skeleton-loader__text.v-skeleton-loader__bone{margin-inline:8px}.v-skeleton-loader__table-row+.v-skeleton-loader__divider{margin:0 16px}.v-skeleton-loader__table-cell{align-items:center;display:flex;height:48px;width:88px}.v-skeleton-loader__table-cell .v-skeleton-loader__text{margin-bottom:0}.v-skeleton-loader__subtitle{max-width:70%}.v-skeleton-loader__subtitle>.v-skeleton-loader__text{height:16px;border-radius:8px}.v-skeleton-loader__text{border-radius:6px;margin:16px;height:12px}.v-skeleton-loader__text+.v-skeleton-loader__text{margin-top:-8px;max-width:50%}.v-skeleton-loader__text+.v-skeleton-loader__text+.v-skeleton-loader__text{max-width:70%}.v-skeleton-loader--boilerplate .v-skeleton-loader__bone:after{display:none}.v-skeleton-loader--is-loading{overflow:hidden}.v-skeleton-loader--tile,.v-skeleton-loader--tile .v-skeleton-loader__bone{border-radius:0}@keyframes loading{to{transform:translate(100%)}}.v-snackbar{justify-content:center;z-index:10000;margin:8px;margin-inline-end:calc(8px + var(--v-scrollbar-offset));padding:var(--v-layout-top) var(--v-layout-right) var(--v-layout-bottom) var(--v-layout-left)}.v-snackbar:not(.v-snackbar--center):not(.v-snackbar--top){align-items:flex-end}.v-snackbar__wrapper{align-items:center;display:flex;max-width:672px;min-height:48px;min-width:344px;overflow:hidden;padding:0;border-radius:4px}.v-snackbar--variant-plain,.v-snackbar--variant-outlined,.v-snackbar--variant-text,.v-snackbar--variant-tonal{background:transparent;color:inherit}.v-snackbar--variant-plain{opacity:.62}.v-snackbar--variant-plain:focus,.v-snackbar--variant-plain:hover{opacity:1}.v-snackbar--variant-plain .v-snackbar__overlay{display:none}.v-snackbar--variant-elevated,.v-snackbar--variant-flat{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant))}.v-snackbar--variant-elevated{box-shadow:0 3px 5px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 6px 10px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 18px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-snackbar--variant-outlined{border:thin solid currentColor}.v-snackbar--variant-text .v-snackbar__overlay{background:currentColor}.v-snackbar--variant-tonal .v-snackbar__underlay{background:currentColor;opacity:var(--v-activated-opacity);border-radius:inherit;top:0;right:0;bottom:0;left:0;pointer-events:none}.v-snackbar .v-snackbar__underlay{position:absolute}.v-snackbar__content{flex-grow:1;font-size:.875rem;font-weight:400;letter-spacing:.0178571429em;line-height:1.425;margin-right:auto;padding:14px 16px;text-align:initial}.v-snackbar__actions{align-items:center;align-self:center;display:flex;margin-inline-end:8px}.v-snackbar__actions>.v-btn{padding:0 8px;min-width:auto}.v-snackbar__timer{width:100%;position:absolute;top:0}.v-snackbar__timer .v-progress-linear{transition:.2s linear}.v-snackbar--absolute{position:absolute;z-index:1}.v-snackbar--multi-line .v-snackbar__wrapper{min-height:68px}.v-snackbar--vertical .v-snackbar__wrapper{flex-direction:column}.v-snackbar--vertical .v-snackbar__wrapper .v-snackbar__actions{align-self:flex-end;margin-bottom:8px}.v-snackbar--center{align-items:center;justify-content:center}.v-snackbar--top{align-items:flex-start}.v-snackbar--bottom{align-items:flex-end}.v-snackbar--left,.v-snackbar--start{justify-content:flex-start}.v-snackbar--right,.v-snackbar--end{justify-content:flex-end}.v-snackbar-transition-enter-active,.v-snackbar-transition-leave-active{transition-duration:.15s;transition-timing-function:cubic-bezier(0,0,.2,1)}.v-snackbar-transition-enter-active{transition-property:opacity,transform}.v-snackbar-transition-enter-from{opacity:0;transform:scale(.8)}.v-snackbar-transition-leave-active{transition-property:opacity}.v-snackbar-transition-leave-to{opacity:0}.v-speed-dial__content{gap:8px}.v-speed-dial__content.v-overlay__content.v-speed-dial__content--end,.v-speed-dial__content.v-overlay__content.v-speed-dial__content--end-center,.v-speed-dial__content.v-overlay__content.v-speed-dial__content--right,.v-speed-dial__content.v-overlay__content.v-speed-dial__content--right-center{flex-direction:row}.v-speed-dial__content.v-overlay__content.v-speed-dial__content--left,.v-speed-dial__content.v-overlay__content.v-speed-dial__content--left-center,.v-speed-dial__content.v-overlay__content.v-speed-dial__content--start,.v-speed-dial__content.v-overlay__content.v-speed-dial__content--start-center{flex-direction:row-reverse}.v-speed-dial__content.v-overlay__content.v-speed-dial__content--top,.v-speed-dial__content.v-overlay__content.v-speed-dial__content--top-center{flex-direction:column-reverse}.v-speed-dial__content>*:nth-child(1){transition-delay:0s}.v-speed-dial__content>*:nth-child(2){transition-delay:.05s}.v-speed-dial__content>*:nth-child(3){transition-delay:.1s}.v-speed-dial__content>*:nth-child(4){transition-delay:.15s}.v-speed-dial__content>*:nth-child(5){transition-delay:.2s}.v-speed-dial__content>*:nth-child(6){transition-delay:.25s}.v-speed-dial__content>*:nth-child(7){transition-delay:.3s}.v-speed-dial__content>*:nth-child(8){transition-delay:.35s}.v-speed-dial__content>*:nth-child(9){transition-delay:.4s}.v-speed-dial__content>*:nth-child(10){transition-delay:.45s}.v-stepper.v-sheet{box-shadow:0 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 2px 2px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 5px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));border-radius:4px;overflow:hidden}.v-stepper.v-sheet.v-stepper--flat{box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-stepper-header{box-shadow:0 3px 1px -2px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 2px 2px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 5px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));align-items:center;display:flex;position:relative;overflow-x:auto;justify-content:space-between;z-index:1}.v-stepper-header .v-divider{margin:0 -16px}.v-stepper-header .v-divider:last-child{margin-inline-end:0}.v-stepper-header .v-divider:first-child{margin-inline-start:0}.v-stepper--alt-labels .v-stepper-header{height:auto}.v-stepper--alt-labels .v-stepper-header .v-divider{align-self:flex-start;margin:35px -67px 0}.v-stepper-window{margin:1.5rem}.v-stepper-actions{display:flex;align-items:center;justify-content:space-between;padding:1rem}.v-stepper .v-stepper-actions{padding:0 1.5rem 1rem}.v-stepper-window-item .v-stepper-actions{padding:1.5rem 0 0}.v-stepper-item{align-items:center;align-self:stretch;display:inline-flex;flex:none;outline:none;opacity:var(--v-medium-emphasis-opacity);padding:1.5rem;position:relative;transition-duration:.2s;transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1)}.v-stepper-item:hover>.v-stepper-item__overlay{opacity:calc(var(--v-hover-opacity) * var(--v-theme-overlay-multiplier))}.v-stepper-item:focus-visible>.v-stepper-item__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-stepper-item:focus>.v-stepper-item__overlay{opacity:calc(var(--v-focus-opacity) * var(--v-theme-overlay-multiplier))}}.v-stepper-item--active>.v-stepper-item__overlay,.v-stepper-item[aria-haspopup=menu][aria-expanded=true]>.v-stepper-item__overlay{opacity:calc(var(--v-activated-opacity) * var(--v-theme-overlay-multiplier))}.v-stepper-item--active:hover>.v-stepper-item__overlay,.v-stepper-item[aria-haspopup=menu][aria-expanded=true]:hover>.v-stepper-item__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-hover-opacity)) * var(--v-theme-overlay-multiplier))}.v-stepper-item--active:focus-visible>.v-stepper-item__overlay,.v-stepper-item[aria-haspopup=menu][aria-expanded=true]:focus-visible>.v-stepper-item__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}@supports not selector(:focus-visible){.v-stepper-item--active:focus>.v-stepper-item__overlay,.v-stepper-item[aria-haspopup=menu][aria-expanded=true]:focus>.v-stepper-item__overlay{opacity:calc((var(--v-activated-opacity) + var(--v-focus-opacity)) * var(--v-theme-overlay-multiplier))}}.v-stepper--non-linear .v-stepper-item{opacity:var(--v-high-emphasis-opacity)}.v-stepper-item--selected{opacity:1}.v-stepper-item--error{color:rgb(var(--v-theme-error))}.v-stepper-item--disabled{opacity:var(--v-medium-emphasis-opacity);pointer-events:none}.v-stepper--alt-labels .v-stepper-item{flex-direction:column;justify-content:flex-start;align-items:center;flex-basis:175px}.v-stepper-item__avatar.v-avatar{background:rgba(var(--v-theme-surface-variant),var(--v-medium-emphasis-opacity));color:rgb(var(--v-theme-on-surface-variant));font-size:.75rem;margin-inline-end:8px}.v-stepper--mobile .v-stepper-item__avatar.v-avatar{margin-inline-end:0}.v-stepper-item__avatar.v-avatar .v-icon{font-size:.875rem}.v-stepper-item--selected .v-stepper-item__avatar.v-avatar,.v-stepper-item--complete .v-stepper-item__avatar.v-avatar{background:rgb(var(--v-theme-surface-variant))}.v-stepper-item--error .v-stepper-item__avatar.v-avatar{background:rgb(var(--v-theme-error))}.v-stepper--alt-labels .v-stepper-item__avatar.v-avatar{margin-bottom:16px;margin-inline-end:0}.v-stepper-item__title{line-height:1}.v-stepper--mobile .v-stepper-item__title{display:none}.v-stepper-item__subtitle{font-size:.75rem;text-align:left;line-height:1;opacity:var(--v-medium-emphasis-opacity)}.v-stepper--alt-labels .v-stepper-item__subtitle{text-align:center}.v-stepper--mobile .v-stepper-item__subtitle{display:none}.v-stepper-item__overlay{background-color:currentColor;border-radius:inherit;opacity:0;transition:opacity .2s ease-in-out}.v-stepper-item__overlay,.v-stepper-item__underlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.v-switch .v-label{padding-inline-start:10px}.v-switch__loader{display:flex}.v-switch__loader .v-progress-circular{color:rgb(var(--v-theme-surface))}.v-switch__track,.v-switch__thumb{transition:none}.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__track,.v-selection-control--error:not(.v-selection-control--disabled) .v-switch__thumb{background-color:rgb(var(--v-theme-error));color:rgb(var(--v-theme-on-error))}.v-switch__track-true{margin-inline-end:auto}.v-selection-control:not(.v-selection-control--dirty) .v-switch__track-true{opacity:0}.v-switch__track-false{margin-inline-start:auto}.v-selection-control--dirty .v-switch__track-false{opacity:0}.v-switch__track{display:inline-flex;align-items:center;font-size:.5rem;padding:0 5px;background-color:rgb(var(--v-theme-surface-variant));border-radius:9999px;height:14px;opacity:.6;min-width:36px;cursor:pointer;transition:.2s background-color cubic-bezier(.4,0,.2,1)}.v-switch--inset .v-switch__track{border-radius:9999px;font-size:.75rem;height:32px;min-width:52px}.v-switch__thumb{align-items:center;background-color:rgb(var(--v-theme-surface-bright));color:rgb(var(--v-theme-on-surface-bright));border-radius:50%;display:flex;font-size:.75rem;height:20px;justify-content:center;width:20px;pointer-events:none;transition:.15s .05s transform cubic-bezier(0,0,.2,1),.2s color cubic-bezier(.4,0,.2,1),.2s background-color cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.v-switch:not(.v-switch--inset) .v-switch__thumb{box-shadow:0 2px 4px -1px var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 4px 5px 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 1px 10px 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-switch.v-switch--flat:not(.v-switch--inset) .v-switch__thumb{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant));box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-switch--inset .v-switch__thumb{height:24px;width:24px;transform:scale(.6666666667)}.v-switch--inset .v-switch__thumb--filled{transform:none}.v-switch--inset .v-selection-control--dirty .v-switch__thumb{transform:none;transition:.15s .05s transform cubic-bezier(0,0,.2,1)}.v-switch.v-input{flex:0 1 auto}.v-switch .v-selection-control{min-height:var(--v-input-control-height)}.v-switch .v-selection-control__input{border-radius:50%;transition:.2s transform cubic-bezier(.4,0,.2,1);position:absolute}.v-locale--is-ltr.v-switch .v-selection-control__input,.v-locale--is-ltr .v-switch .v-selection-control__input{transform:translate(-10px)}.v-locale--is-rtl.v-switch .v-selection-control__input,.v-locale--is-rtl .v-switch .v-selection-control__input{transform:translate(10px)}.v-switch .v-selection-control__input .v-icon{position:absolute}.v-locale--is-ltr.v-switch .v-selection-control--dirty .v-selection-control__input,.v-locale--is-ltr .v-switch .v-selection-control--dirty .v-selection-control__input{transform:translate(10px)}.v-locale--is-rtl.v-switch .v-selection-control--dirty .v-selection-control__input,.v-locale--is-rtl .v-switch .v-selection-control--dirty .v-selection-control__input{transform:translate(-10px)}.v-switch.v-switch--indeterminate .v-selection-control__input{transform:scale(.8)}.v-switch.v-switch--indeterminate .v-switch__thumb{transform:scale(.75);box-shadow:none}.v-switch.v-switch--inset .v-selection-control__wrapper{width:auto}.v-switch.v-input--vertical .v-label{min-width:max-content}.v-switch.v-input--vertical .v-selection-control__wrapper{transform:rotate(-90deg)}@media (forced-colors: active){.v-switch .v-switch__loader .v-progress-circular{color:currentColor}.v-switch .v-switch__thumb{background-color:buttontext}.v-switch .v-switch__track,.v-switch .v-switch__thumb{border:1px solid;color:buttontext}.v-switch:not(.v-switch--loading):not(.v-input--disabled) .v-selection-control--dirty .v-switch__thumb{background-color:highlight}.v-switch:not(.v-input--disabled) .v-selection-control--dirty .v-switch__track{background-color:highlight}.v-switch:not(.v-input--disabled) .v-selection-control--dirty .v-switch__track,.v-switch:not(.v-input--disabled) .v-selection-control--dirty .v-switch__thumb{color:highlight}.v-switch.v-switch--inset .v-switch__track{border-width:2px}.v-switch.v-switch--inset:not(.v-switch--loading):not(.v-input--disabled) .v-selection-control--dirty .v-switch__thumb{background-color:highlighttext;color:highlighttext}.v-switch.v-input--disabled .v-switch__thumb{background-color:graytext}.v-switch.v-input--disabled .v-switch__track,.v-switch.v-input--disabled .v-switch__thumb{color:graytext}.v-switch.v-switch--loading .v-switch__thumb{background-color:canvas}.v-switch.v-switch--loading.v-switch--inset .v-switch__thumb,.v-switch.v-switch--loading.v-switch--indeterminate .v-switch__thumb{border-width:0}}.v-system-bar{align-items:center;display:flex;flex:1 1 auto;height:24px;justify-content:flex-end;max-width:100%;padding-inline:8px;position:relative;text-align:end;width:100%;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12));background:rgba(var(--v-theme-surface-light));color:rgba(var(--v-theme-on-surface-light),var(--v-high-emphasis-opacity));font-size:.75rem;font-weight:400;letter-spacing:.0333333333em;line-height:1.667;text-transform:none}.v-system-bar .v-icon{opacity:var(--v-medium-emphasis-opacity)}.v-system-bar--absolute{position:absolute}.v-system-bar--fixed{position:fixed}.v-system-bar--rounded{border-radius:0}.v-system-bar--window{height:32px}.v-system-bar:not(.v-system-bar--absolute){padding-inline-end:calc(var(--v-scrollbar-offset) + 8px)}.v-tab.v-tab.v-btn{height:var(--v-tabs-height);border-radius:0;min-width:90px}.v-slide-group--horizontal .v-tab{max-width:360px}.v-slide-group--vertical .v-tab{justify-content:start}.v-tab__slider{position:absolute;bottom:0;left:0;height:2px;width:100%;background:currentColor;pointer-events:none;opacity:0}.v-tab--selected .v-tab__slider{opacity:1}.v-slide-group--vertical .v-tab__slider{top:0;height:100%;width:2px}.v-tabs{display:flex;height:var(--v-tabs-height)}.v-tabs--density-default{--v-tabs-height: 48px}.v-tabs--density-default.v-tabs--stacked{--v-tabs-height: 72px}.v-tabs--density-comfortable{--v-tabs-height: 44px}.v-tabs--density-comfortable.v-tabs--stacked{--v-tabs-height: 68px}.v-tabs--density-compact{--v-tabs-height: 36px}.v-tabs--density-compact.v-tabs--stacked{--v-tabs-height: 60px}.v-tabs.v-slide-group--vertical{height:auto;flex:none;--v-tabs-height: 48px}.v-tabs--align-tabs-title:not(.v-slide-group--has-affixes) .v-tab:first-child{margin-inline-start:42px}.v-tabs--fixed-tabs .v-slide-group__content>*:last-child,.v-tabs--align-tabs-center .v-slide-group__content>*:last-child{margin-inline-end:auto}.v-tabs--fixed-tabs .v-slide-group__content>*:first-child,.v-tabs--align-tabs-center .v-slide-group__content>*:first-child{margin-inline-start:auto}.v-tabs--grow{flex-grow:1}.v-tabs--grow .v-tab{flex:1 0 auto;max-width:none}.v-tabs--align-tabs-end .v-tab:first-child{margin-inline-start:auto}.v-tabs--align-tabs-end .v-tab:last-child{margin-inline-end:0}@media (max-width: 1279.98px){.v-tabs.v-slide-group--is-overflowing.v-slide-group--horizontal:not(.v-slide-group--has-affixes) .v-tab:first-child{margin-inline-start:52px}.v-tabs.v-slide-group--is-overflowing.v-slide-group--horizontal:not(.v-slide-group--has-affixes) .v-tab:last-child{margin-inline-end:52px}}.v-textarea .v-field{--v-textarea-control-height: var(--v-input-control-height)}.v-textarea .v-field__field{--v-input-control-height: var(--v-textarea-control-height)}.v-textarea .v-field__input{flex:1 1 auto;outline:none;-webkit-mask-image:linear-gradient(to bottom,transparent,transparent calc(var(--v-field-padding-top, 0) + var(--v-input-padding-top, 0) - 6px),black calc(var(--v-field-padding-top, 0) + var(--v-input-padding-top, 0) + 4px));mask-image:linear-gradient(to bottom,transparent,transparent calc(var(--v-field-padding-top, 0) + var(--v-input-padding-top, 0) - 6px),black calc(var(--v-field-padding-top, 0) + var(--v-input-padding-top, 0) + 4px))}.v-textarea .v-field__input.v-textarea__sizer{visibility:hidden;position:absolute;top:0;left:0;height:0!important;min-height:0!important;pointer-events:none}.v-textarea--no-resize .v-field__input{resize:none}.v-textarea .v-field--no-label textarea,.v-textarea .v-field--active textarea{opacity:1}.v-textarea textarea{opacity:0;flex:1;min-width:0;transition:.15s opacity cubic-bezier(.4,0,.2,1)}.v-textarea textarea:focus,.v-textarea textarea:active{outline:none}.v-textarea textarea:invalid{box-shadow:none}.v-theme-provider{background:rgb(var(--v-theme-background));color:rgb(var(--v-theme-on-background))}.v-timeline .v-timeline-divider__dot{background:rgb(var(--v-theme-surface-light))}.v-timeline .v-timeline-divider__inner-dot{background:rgb(var(--v-theme-on-surface))}.v-timeline{display:grid;grid-auto-flow:dense;position:relative}.v-timeline--horizontal.v-timeline{grid-column-gap:24px;width:100%}.v-timeline--horizontal.v-timeline .v-timeline-item:nth-child(2n) .v-timeline-item__body{grid-row:3;padding-block-start:24px}.v-timeline--horizontal.v-timeline .v-timeline-item:nth-child(2n) .v-timeline-item__opposite{grid-row:1;padding-block-end:24px;align-self:flex-end}.v-timeline--horizontal.v-timeline .v-timeline-item:nth-child(odd) .v-timeline-item__body{grid-row:1;padding-block-end:24px;align-self:flex-end}.v-timeline--horizontal.v-timeline .v-timeline-item:nth-child(odd) .v-timeline-item__opposite{grid-row:3;padding-block-start:24px}.v-timeline--vertical.v-timeline{row-gap:24px;height:100%}.v-timeline--vertical.v-timeline .v-timeline-item:first-child .v-timeline-divider,.v-timeline--vertical.v-timeline .v-timeline-item:first-child .v-timeline-item__body,.v-timeline--vertical.v-timeline .v-timeline-item:first-child .v-timeline-item__opposite{padding-block-start:24px}.v-timeline--vertical.v-timeline .v-timeline-item:last-child .v-timeline-divider,.v-timeline--vertical.v-timeline .v-timeline-item:last-child .v-timeline-item__body,.v-timeline--vertical.v-timeline .v-timeline-item:last-child .v-timeline-item__opposite{padding-block-end:24px}.v-timeline--vertical.v-timeline .v-timeline-item:nth-child(2n) .v-timeline-item__body{grid-column:1;padding-inline-end:24px}.v-timeline--vertical.v-timeline .v-timeline-item:nth-child(2n) .v-timeline-item__opposite{grid-column:3;padding-inline-start:24px}.v-timeline--vertical.v-timeline .v-timeline-item:nth-child(odd) .v-timeline-item__body{grid-column:3;padding-inline-start:24px}.v-timeline--vertical.v-timeline .v-timeline-item:nth-child(odd) .v-timeline-item__opposite{grid-column:1;justify-self:flex-end;padding-inline-end:24px}.v-timeline-item{display:contents}.v-timeline-divider{position:relative;display:flex;align-items:center}.v-timeline--horizontal .v-timeline-divider{flex-direction:row;grid-row:2;width:100%}.v-timeline--vertical .v-timeline-divider{height:100%;flex-direction:column;grid-column:2}.v-timeline-divider__before{background:rgba(var(--v-border-color),var(--v-border-opacity));position:absolute}.v-timeline--horizontal .v-timeline-divider__before{height:var(--v-timeline-line-thickness);width:calc(var(--v-timeline-line-size-base) + 12px - var(--v-timeline-line-inset));inset-inline-start:-12px;inset-inline-end:initial}.v-timeline--vertical .v-timeline-divider__before{height:calc(var(--v-timeline-line-size-base) + 12px - var(--v-timeline-line-inset));width:var(--v-timeline-line-thickness);top:-12px}.v-timeline-divider__after{background:rgba(var(--v-border-color),var(--v-border-opacity));position:absolute}.v-timeline--horizontal .v-timeline-divider__after{height:var(--v-timeline-line-thickness);width:calc(var(--v-timeline-line-size-base) + 12px - var(--v-timeline-line-inset));inset-inline-end:-12px;inset-inline-start:initial}.v-timeline--vertical .v-timeline-divider__after{height:calc(var(--v-timeline-line-size-base) + 12px - var(--v-timeline-line-inset));width:var(--v-timeline-line-thickness);bottom:-12px}.v-timeline--vertical .v-timeline-item:first-child .v-timeline-divider__before{height:calc(var(--v-timeline-line-size-base) + 12px - var(--v-timeline-line-inset));top:0}.v-timeline--horizontal .v-timeline-item:first-child .v-timeline-divider__before{width:calc(var(--v-timeline-line-size-base) + 12px - var(--v-timeline-line-inset));inset-inline-start:0;inset-inline-end:initial}.v-timeline--vertical .v-timeline-item:first-child .v-timeline-divider__after{height:calc(var(--v-timeline-line-size-base) - var(--v-timeline-line-inset) + var(--v-timeline-line-size-offset))}.v-timeline--horizontal .v-timeline-item:first-child .v-timeline-divider__after{width:calc(var(--v-timeline-line-size-base) - var(--v-timeline-line-inset) + var(--v-timeline-line-size-offset));inset-inline-end:-12px;inset-inline-start:initial}.v-timeline--vertical .v-timeline-item:last-child .v-timeline-divider__before{height:calc(var(--v-timeline-line-size-base) - var(--v-timeline-line-inset) + var(--v-timeline-line-size-offset))}.v-timeline--horizontal .v-timeline-item:last-child .v-timeline-divider__before{width:calc(var(--v-timeline-line-size-base) - var(--v-timeline-line-inset) + var(--v-timeline-line-size-offset))}.v-timeline--vertical .v-timeline-item:last-child .v-timeline-divider__after{height:calc(var(--v-timeline-line-size-base) + 12px - var(--v-timeline-line-inset));bottom:0}.v-timeline--horizontal .v-timeline-item:last-child .v-timeline-divider__after{width:calc(var(--v-timeline-line-size-base) + 12px - var(--v-timeline-line-inset));inset-inline-end:0;inset-inline-start:initial}.v-timeline--vertical .v-timeline-item:only-child .v-timeline-divider__after{height:calc(var(--v-timeline-line-size-base) - var(--v-timeline-line-inset))}.v-timeline-divider__dot{z-index:1;flex-shrink:0;border-radius:50%;display:flex;justify-content:center;align-items:center;box-shadow:0 0 0 0 var(--v-shadow-key-umbra-opacity, rgba(0, 0, 0, .2)),0 0 0 0 var(--v-shadow-key-penumbra-opacity, rgba(0, 0, 0, .14)),0 0 0 0 var(--v-shadow-key-ambient-opacity, rgba(0, 0, 0, .12))}.v-timeline-divider__dot--size-x-small{height:22px;width:22px}.v-timeline-divider__dot--size-x-small .v-timeline-divider__inner-dot{height:calc(100% - 6px);width:calc(100% - 6px)}.v-timeline-divider__dot--size-small{height:30px;width:30px}.v-timeline-divider__dot--size-small .v-timeline-divider__inner-dot{height:calc(100% - 8px);width:calc(100% - 8px)}.v-timeline-divider__dot--size-default{height:38px;width:38px}.v-timeline-divider__dot--size-default .v-timeline-divider__inner-dot{height:calc(100% - 8px);width:calc(100% - 8px)}.v-timeline-divider__dot--size-large{height:46px;width:46px}.v-timeline-divider__dot--size-large .v-timeline-divider__inner-dot{height:calc(100% - 8px);width:calc(100% - 8px)}.v-timeline-divider__dot--size-x-large{height:54px;width:54px}.v-timeline-divider__dot--size-x-large .v-timeline-divider__inner-dot{height:calc(100% - 10px);width:calc(100% - 10px)}.v-timeline-divider__inner-dot{align-items:center;border-radius:50%;display:flex;justify-content:center}.v-timeline--horizontal.v-timeline--justify-center{grid-template-rows:minmax(auto,50%) min-content minmax(auto,50%)}.v-timeline--vertical.v-timeline--justify-center{grid-template-columns:minmax(auto,50%) min-content minmax(auto,50%)}.v-timeline--horizontal.v-timeline--justify-auto{grid-template-rows:auto min-content auto}.v-timeline--vertical.v-timeline--justify-auto{grid-template-columns:auto min-content auto}.v-timeline--horizontal.v-timeline--density-comfortable{height:100%}.v-timeline--horizontal.v-timeline--density-comfortable.v-timeline--side-end{grid-template-rows:min-content min-content auto}.v-timeline--horizontal.v-timeline--density-comfortable.v-timeline--side-start{grid-template-rows:auto min-content min-content}.v-timeline--vertical.v-timeline--density-comfortable{width:100%}.v-timeline--vertical.v-timeline--density-comfortable.v-timeline--side-end{grid-template-columns:min-content min-content auto}.v-timeline--vertical.v-timeline--density-comfortable.v-timeline--side-start{grid-template-columns:auto min-content min-content}.v-timeline--horizontal.v-timeline--density-compact.v-timeline--side-end{grid-template-rows:0 min-content auto}.v-timeline--horizontal.v-timeline--density-compact.v-timeline--side-start{grid-template-rows:auto min-content 0}.v-timeline--horizontal.v-timeline--density-compact .v-timeline-item__body{grid-row:1}.v-timeline--vertical.v-timeline--density-compact.v-timeline--side-end{grid-template-columns:0 min-content auto}.v-timeline--vertical.v-timeline--density-compact.v-timeline--side-start{grid-template-columns:auto min-content 0}.v-timeline--vertical.v-timeline--density-compact .v-timeline-item__body{grid-column:3}.v-timeline--horizontal.v-timeline.v-timeline--side-end .v-timeline-item .v-timeline-item__body{grid-row:3;padding-block-end:initial;padding-block-start:24px}.v-timeline--horizontal.v-timeline.v-timeline--side-end .v-timeline-item .v-timeline-item__opposite{grid-row:1;padding-block-end:24px;padding-block-start:initial}.v-timeline--vertical.v-timeline.v-timeline--side-end .v-timeline-item .v-timeline-item__body{grid-column:3;padding-inline-start:24px;padding-inline-end:initial;justify-self:flex-start}.v-timeline--vertical.v-timeline.v-timeline--side-end .v-timeline-item .v-timeline-item__opposite{grid-column:1;justify-self:flex-end;padding-inline-end:24px;padding-inline-start:initial}.v-timeline--horizontal.v-timeline.v-timeline--side-start .v-timeline-item .v-timeline-item__body{grid-row:1;padding-block-end:24px;padding-block-start:initial}.v-timeline--horizontal.v-timeline.v-timeline--side-start .v-timeline-item .v-timeline-item__opposite{grid-row:3;padding-block-end:initial;padding-block-start:24px}.v-timeline--vertical.v-timeline.v-timeline--side-start .v-timeline-item .v-timeline-item__body{grid-column:1;justify-self:flex-end;padding-inline-end:24px}.v-timeline--vertical.v-timeline.v-timeline--side-start .v-timeline-item .v-timeline-item__opposite{grid-column:3;padding-inline-start:24px;justify-self:flex-start}.v-timeline-divider--fill-dot .v-timeline-divider__inner-dot{height:inherit;width:inherit}.v-timeline--align-center{--v-timeline-line-size-base: 50%;--v-timeline-line-size-offset: 0px}.v-timeline--horizontal.v-timeline--align-center{justify-items:center}.v-timeline--horizontal.v-timeline--align-center .v-timeline-item__body,.v-timeline--horizontal.v-timeline--align-center .v-timeline-item__opposite{padding-inline:12px}.v-timeline--horizontal.v-timeline--align-center .v-timeline-divider{justify-content:center}.v-timeline--vertical.v-timeline--align-center{align-items:center}.v-timeline--vertical.v-timeline--align-center .v-timeline-divider{justify-content:center}.v-timeline--align-start{--v-timeline-line-size-base: 100%;--v-timeline-line-size-offset: 12px}.v-timeline--align-start .v-timeline-item:first-child .v-timeline-divider__before{--v-timeline-line-size-offset: 24px}.v-timeline--align-start .v-timeline-item:first-child .v-timeline-divider__after{--v-timeline-line-size-offset: -12px}.v-timeline--align-start .v-timeline-item:last-child .v-timeline-divider__after{--v-timeline-line-size-offset: 0px}.v-timeline--horizontal.v-timeline--align-start{justify-items:flex-start}.v-timeline--horizontal.v-timeline--align-start .v-timeline-divider{justify-content:flex-start}.v-timeline--horizontal.v-timeline--align-start .v-timeline-divider .v-timeline-divider__before{width:calc(var(--v-timeline-line-size-offset) + var(--v-timeline-dot-size) / 2 - var(--v-timeline-line-inset))}.v-timeline--horizontal.v-timeline--align-start .v-timeline-divider .v-timeline-divider__after{width:calc(var(--v-timeline-line-size-base) - var(--v-timeline-dot-size) / 2 + var(--v-timeline-line-size-offset) - var(--v-timeline-line-inset))}.v-timeline--vertical.v-timeline--align-start{align-items:flex-start}.v-timeline--vertical.v-timeline--align-start .v-timeline-divider{justify-content:flex-start}.v-timeline--vertical.v-timeline--align-start .v-timeline-divider .v-timeline-divider__before{height:calc(var(--v-timeline-line-size-offset) + var(--v-timeline-dot-size) / 2 - var(--v-timeline-line-inset))}.v-timeline--vertical.v-timeline--align-start .v-timeline-divider .v-timeline-divider__after{height:calc(var(--v-timeline-line-size-base) - var(--v-timeline-dot-size) / 2 + var(--v-timeline-line-size-offset) - var(--v-timeline-line-inset))}.v-timeline--truncate-line-start .v-timeline-item:first-child .v-timeline-divider__before{display:none}.v-timeline--truncate-line-start .v-timeline-item:first-child .v-timeline-divider__after{--v-timeline-line-size-offset: 12px}.v-timeline--vertical.v-timeline--truncate-line-start .v-timeline-item:first-child .v-timeline-divider,.v-timeline--vertical.v-timeline--truncate-line-start .v-timeline-item:first-child .v-timeline-item__body,.v-timeline--vertical.v-timeline--truncate-line-start .v-timeline-item:first-child .v-timeline-item__opposite{padding-block-start:0}.v-timeline--horizontal.v-timeline--truncate-line-start .v-timeline-item:first-child .v-timeline-divider,.v-timeline--horizontal.v-timeline--truncate-line-start .v-timeline-item:first-child .v-timeline-item__body,.v-timeline--horizontal.v-timeline--truncate-line-start .v-timeline-item:first-child .v-timeline-item__opposite{padding-inline-start:0}.v-timeline--truncate-line-end .v-timeline-item:last-child .v-timeline-divider__after{display:none}.v-timeline--truncate-line-end .v-timeline-item:last-child .v-timeline-divider__before{--v-timeline-line-size-offset: 12px}.v-timeline--vertical.v-timeline--truncate-line-end .v-timeline-item:last-child .v-timeline-divider,.v-timeline--vertical.v-timeline--truncate-line-end .v-timeline-item:last-child .v-timeline-item__body,.v-timeline--vertical.v-timeline--truncate-line-end .v-timeline-item:last-child .v-timeline-item__opposite{padding-block-end:0}.v-timeline--horizontal.v-timeline--truncate-line-end .v-timeline-item:last-child .v-timeline-divider,.v-timeline--horizontal.v-timeline--truncate-line-end .v-timeline-item:last-child .v-timeline-item__body,.v-timeline--horizontal.v-timeline--truncate-line-end .v-timeline-item:last-child .v-timeline-item__opposite{padding-inline-end:0}.v-tooltip>.v-overlay__content{background:rgb(var(--v-theme-surface-variant));color:rgb(var(--v-theme-on-surface-variant));border-radius:4px;font-size:.875rem;line-height:1.6;display:inline-block;padding:5px 16px;text-transform:initial;width:auto;opacity:1;pointer-events:none;transition-property:opacity,transform;overflow-wrap:break-word}.v-tooltip>.v-overlay__content[class*=enter-active]{transition-timing-function:cubic-bezier(0,0,.2,1);transition-duration:.15s}.v-tooltip>.v-overlay__content[class*=leave-active]{transition-timing-function:cubic-bezier(.4,0,1,1);transition-duration:75ms} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/favicon.ico" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/favicon.ico" new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/index.html" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/index.html" new file mode 100644 index 0000000..7279add --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/resources/static/index.html" @@ -0,0 +1,19 @@ + + + + + + + + Wishrise + + + + + +
+ + + diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/WishriseApplicationTests.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/WishriseApplicationTests.java" new file mode 100644 index 0000000..644e1a3 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/WishriseApplicationTests.java" @@ -0,0 +1,13 @@ +package com.baexxbin.wishrise; + +import org.testng.annotations.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class WishriseApplicationTests { + + @Test + void contextLoads() { + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/auth/CreateJwtTest.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/auth/CreateJwtTest.java" new file mode 100644 index 0000000..450be05 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/auth/CreateJwtTest.java" @@ -0,0 +1,21 @@ +package com.baexxbin.wishrise.auth; + +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; + +import static org.assertj.core.api.Assertions.assertThat; + +@SpringBootTest +@ActiveProfiles("oauth") +public class CreateJwtTest { + @Value("${spring.security.oauth2.resourceserver.jwt.secret}") + private String secretKeyPlain; + + @Test + void 시크릿키_존재_확인() { + System.out.println("ENCRYPT_KEY: " + System.getenv("ENCRYPT_KEY")); + assertThat(secretKeyPlain).isNotNull(); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/goal/GoalControllerTest.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/goal/GoalControllerTest.java" new file mode 100644 index 0000000..ecedbd4 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/goal/GoalControllerTest.java" @@ -0,0 +1,88 @@ +package com.baexxbin.wishrise.goal; + +import com.baexxbin.wishrise.goal.application.GoalModuleService; +import com.baexxbin.wishrise.goal.domain.Goal; +import com.baexxbin.wishrise.goal.domain.GoalType; +import com.baexxbin.wishrise.register.api.RegisterApiController; +import com.baexxbin.wishrise.register.dto.request.RegisterGoalDto; +import com.baexxbin.wishrise.goal.dto.request.SaveGoalServiceDto; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.test.web.servlet.MockMvc; +import org.springframework.test.web.servlet.setup.MockMvcBuilders; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseStatus; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +import java.time.LocalDate; + +@ExtendWith(MockitoExtension.class) +public class GoalControllerTest { + + private MockMvc mockMvc; + + @InjectMocks + private RegisterApiController registerApiController; + + @Mock + private GoalModuleService goalModuleService; + + + private ObjectMapper objectMapper; + + @BeforeEach + void setUp() { + objectMapper = new ObjectMapper(); + objectMapper.registerModule(new JavaTimeModule()); + mockMvc = MockMvcBuilders.standaloneSetup(registerApiController) + .setControllerAdvice(new GlobalExceptionHandler()) + .build(); + } + + @Test + void createGoal() throws Exception { + RegisterGoalDto registerGoalDto = new RegisterGoalDto(GoalType.DO, "title", "description", LocalDate.now(), null); + SaveGoalServiceDto saveGoalServiceDto = registerGoalDto.toServiceDto(); + + Goal mockGoal = Goal.builder() + .title(saveGoalServiceDto.getTitle()) + .description(saveGoalServiceDto.getDescription()) + .targetDate(saveGoalServiceDto.getTargetDate()) + .build(); + + when(goalModuleService.createGoal(any(SaveGoalServiceDto.class))).thenReturn(mockGoal); + + mockMvc.perform(post("/api/registrations") + .contentType(MediaType.APPLICATION_JSON) + .param("loginUserId", "1") + .content(objectMapper.writeValueAsString(registerGoalDto))) + .andExpect(status().isCreated()) + .andExpect(jsonPath("$").value(1L)); + } + + @ControllerAdvice + static class GlobalExceptionHandler { + @ExceptionHandler(Exception.class) + @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) + public ResponseEntity handleException(Exception ex) { + System.err.println("An error occurred: " + ex.getMessage()); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR) + .body("An unexpected error occurred. Please try again later."); + } + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/goal/GoalServiceTest.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/goal/GoalServiceTest.java" new file mode 100644 index 0000000..a4db969 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/goal/GoalServiceTest.java" @@ -0,0 +1,60 @@ +package com.baexxbin.wishrise.goal; + +import com.baexxbin.wishrise.goal.application.GoalModuleService; +import com.baexxbin.wishrise.goal.domain.Goal; +import com.baexxbin.wishrise.goal.domain.ToWant; +import com.baexxbin.wishrise.goal.repository.GoalJpaRepository; +import com.baexxbin.wishrise.goal.dto.request.SaveGoalServiceDto; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.junit.jupiter.MockitoExtension; + +import java.time.LocalDate; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; + +@ExtendWith(MockitoExtension.class) // Junit5, Mockito 연동을 위해 작성 +public class GoalServiceTest { + + @InjectMocks + private GoalModuleService goalModuleService; + + @Mock + private GoalJpaRepository goalJpaRepository; + + @Test + void createGoal() { + SaveGoalServiceDto saveGoalServiceDto = new SaveGoalServiceDto.TodoSaveDto("목표 제목", "내용내용", LocalDate.now()); + + Goal expectedGoal = Goal.builder() + .title("목표 제목") + .description("내용내용") + .targetDate(LocalDate.now()) + .build(); + + when(goalJpaRepository.save(any(Goal.class))).thenReturn(expectedGoal); + + Long goalId = goalModuleService.createGoal(saveGoalServiceDto).getId(); + assertEquals(expectedGoal.getId(), goalId); + } + + @Test + void createGoalTowant() { + SaveGoalServiceDto.TowantSaveDto goalServiceDto = new SaveGoalServiceDto.TowantSaveDto("물건", "갖고싶어요", LocalDate.now(), 1000); + + ToWant expectedToWant = ToWant.builder() + .title("물건") + .description("갖고싶어요") + .targetDate(LocalDate.now()) + .price(1000) + .build(); + + when(goalJpaRepository.save(any(ToWant.class))).thenReturn(expectedToWant); + Long goalId = goalModuleService.createGoalTowant(goalServiceDto).getId(); + assertEquals(expectedToWant.getId(), goalId); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/member/MemberServiceIntegrationTest.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/member/MemberServiceIntegrationTest.java" new file mode 100644 index 0000000..3ca9ae1 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/member/MemberServiceIntegrationTest.java" @@ -0,0 +1,109 @@ +package com.baexxbin.wishrise.member; + +import com.baexxbin.wishrise.member.application.MemberComponentService; +import com.baexxbin.wishrise.member.domain.Information; +import com.baexxbin.wishrise.member.domain.Member; +import com.baexxbin.wishrise.member.domain.Rank; +import com.baexxbin.wishrise.member.dto.request.MemberInfoDto; +import com.baexxbin.wishrise.member.repository.MemberJpaRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.context.TestPropertySource; +import org.springframework.transaction.annotation.Transactional; + +import org.junit.jupiter.api.Test; + +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.*; + +@SpringBootTest +@AutoConfigureMockMvc +@ActiveProfiles("test") +@TestPropertySource(locations = "classpath:application-test.yml") +@Transactional +public class MemberServiceIntegrationTest { + @Autowired + private MemberComponentService memberComponentService; + + @Autowired + private MemberJpaRepository memberJpaRepository; + + @Test + public void testJoin() { + // Arrange + MemberInfoDto dto = MemberInfoDto.builder() + .nickname("testNickname") + .name("testName") + .password("testPassword") + .email("test@example.com") + .build(); + + // Act + Long memberId = memberComponentService.join(dto); + + // Assert + assertNotNull(memberId); + } + + @Test + public void testJoinWithDuplicateNickname() { + // Arrange + MemberInfoDto dto1 = MemberInfoDto.builder() + .nickname("배수빙") + .name("배수빈") + .password("1234") + .email("test@example.com") + .build(); + + MemberInfoDto dto2 = MemberInfoDto.builder() + .nickname("배수빙") + .name("배수빔") + .password("12345") + .email("test2@example.com") + .build(); + + // Act + memberComponentService.join(dto1); + + // Assert + IllegalStateException exception = assertThrows(IllegalStateException.class, () -> memberComponentService.join(dto2)); + + assertEquals("이미 존재하는 아이디입니다.", exception.getMessage()); + } + + @Test + public void testUpdateMember_Success() { + // Given + MemberInfoDto memberInfoDto = MemberInfoDto.builder() + .nickname("또비닝") + .name("배수빈") + .password("Password123!") + .email("test@example.com") + .build(); + + Member savedMember = memberJpaRepository.save(Member.builder() + .nickname("또비닝") + .name("옛날배수빈") + .password("OldPassword123!") + .email("test@example.com") + .information(new Information(0, Rank.BRONZE)) + .build()); + + Long userId = savedMember.getId(); + + // When + memberComponentService.update(userId, memberInfoDto); + + // Then + Optional updatedMemberOpt = memberJpaRepository.findById(userId); + Member updatedMember = updatedMemberOpt.orElseThrow(() -> new RuntimeException("회원을 찾을 수 없습니다.")); + assertEquals(memberInfoDto.getName(), updatedMember.getName()); + assertEquals(memberInfoDto.getPassword(), updatedMember.getPassword()); + assertEquals(memberInfoDto.getEmail(), updatedMember.getEmail()); + assertEquals("또비닝", updatedMember.getNickname()); // 닉네임은 변경되지 않아야 함 + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/member/MemberServiceTest.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/member/MemberServiceTest.java" new file mode 100644 index 0000000..d6b97f9 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/member/MemberServiceTest.java" @@ -0,0 +1,92 @@ +package com.baexxbin.wishrise.member; + +import com.baexxbin.wishrise.member.application.MemberComponentService; +import com.baexxbin.wishrise.member.application.MemberModuleService; +import com.baexxbin.wishrise.member.domain.Information; +import com.baexxbin.wishrise.member.domain.Member; +import com.baexxbin.wishrise.member.domain.Rank; +import com.baexxbin.wishrise.member.dto.request.MemberInfoDto; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; + +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +public class MemberServiceTest { + @InjectMocks + private MemberComponentService memberComponentService; + + @Mock + private MemberModuleService memberModuleService; + + // @Mock 어노테이션이 붙은 필드들 초기화 + @BeforeEach + void setUp() { + MockitoAnnotations.openMocks(this); + } + + @Test + void testJoin_Success() { + // Given: 테스트 데이터 준비 + MemberInfoDto memberInfoDto = MemberInfoDto.builder() + .nickname("또비닝") + .name("배수빈") + .password("Password123!") + .email("test@example.com") + .build(); + + // Mock 동작 정의 + when(memberModuleService.findByNickname(anyString())).thenReturn(Optional.empty()); + when(memberModuleService.findByEmail(anyString())).thenReturn(Optional.empty()); + when(memberModuleService.save(any(Member.class))).thenReturn(1L); + + // When: 테스트 메서드 호출 + Long memberId = memberComponentService.join(memberInfoDto); + + // Then: 결과 검증 + assertNotNull(memberId); + verify(memberModuleService).save(any(Member.class)); + + } + + @Test + void testUpdate_Success() { + // Given + Long userId = 1L; + MemberInfoDto memberInfoDto = MemberInfoDto.builder() + .nickname("또비닝") + .name("배수빈") + .password("Password123!") + .email("test@example.com") + .build(); + + Member member = Member.builder() + .nickname("또비닝") + .name("옛날배수빈") + .password("OldPassword123!") + .email("test@example.com") + .information(new Information(0, Rank.BRONZE)) + .build(); + + when(memberModuleService.findById(userId)).thenReturn(Optional.of(member)); + + // When + memberComponentService.update(userId, memberInfoDto); + + // Then + verify(memberModuleService).save(member); + assertEquals("또비닝", member.getNickname()); + assertEquals(member.getName(), memberInfoDto.getName()); + assertEquals(member.getPassword(), memberInfoDto.getPassword()); + assertEquals(member.getEmail(), memberInfoDto.getEmail()); + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/register/RegisterIntegrationTest.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/register/RegisterIntegrationTest.java" new file mode 100644 index 0000000..76a58bf --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/register/RegisterIntegrationTest.java" @@ -0,0 +1,78 @@ +package com.baexxbin.wishrise.register; + +import com.baexxbin.wishrise.goal.domain.GoalType; +import com.baexxbin.wishrise.member.application.MemberModuleService; +import com.baexxbin.wishrise.member.domain.Information; +import com.baexxbin.wishrise.member.domain.Member; +import com.baexxbin.wishrise.member.domain.Rank; +import com.baexxbin.wishrise.member.repository.MemberJpaRepository; +import com.baexxbin.wishrise.register.dto.request.RegisterGoalDto; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.MediaType; +import org.springframework.test.context.ActiveProfiles; +import org.springframework.test.web.servlet.MockMvc; + +import java.time.LocalDate; +import java.util.Optional; + +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.BDDMockito.given; +import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.post; +import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; + +@SpringBootTest +@AutoConfigureMockMvc +@ActiveProfiles("test") +public class RegisterIntegrationTest { + @Autowired + private MockMvc mockMvc; + + @Autowired + private ObjectMapper objectMapper; + + @Autowired + private MemberJpaRepository memberJpaRepository; + + + @MockBean + private MemberModuleService memberModuleService; + + private Member member; + + @BeforeEach + public void setUp() { + member = memberJpaRepository.save(Member.builder() + .nickname("testuser") + .name("Test User") + .password("Password123!") + .email("test@example.com") + .information(new Information(0, Rank.BRONZE)) + .build()); + } + + @Test + public void testRegisterGoal() throws Exception { + RegisterGoalDto registerGoalDto = new RegisterGoalDto( + GoalType.DO, + "Test Goal", + "This is a test goal", + LocalDate.now().plusDays(10), + null + ); + + given(memberModuleService.findById(any(Long.class))).willReturn(Optional.of(member)); + + mockMvc.perform(post("/api/registrations") + .param("loginUserId", String.valueOf(member.getId())) + .contentType(MediaType.APPLICATION_JSON) + .content(objectMapper.writeValueAsString(registerGoalDto))) + .andExpect(status().isCreated()); + } + +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/register/RegisterServiceTest.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/register/RegisterServiceTest.java" new file mode 100644 index 0000000..f140191 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/test/java/com/baexxbin/wishrise/register/RegisterServiceTest.java" @@ -0,0 +1,114 @@ +package com.baexxbin.wishrise.register; + +import com.baexxbin.wishrise.goal.application.GoalModuleService; +import com.baexxbin.wishrise.goal.domain.Goal; +import com.baexxbin.wishrise.goal.dto.request.SaveGoalServiceDto; +import com.baexxbin.wishrise.member.application.MemberModuleService; +import com.baexxbin.wishrise.member.domain.Information; +import com.baexxbin.wishrise.member.domain.Member; +import com.baexxbin.wishrise.member.domain.Rank; +import com.baexxbin.wishrise.register.application.RegisterComponentService; +import com.baexxbin.wishrise.register.application.RegisterModuleService; +import com.baexxbin.wishrise.register.domain.Register; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.mockito.MockitoAnnotations; +import org.springframework.test.util.ReflectionTestUtils; + +import java.time.LocalDate; +import java.util.Optional; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; + +public class RegisterServiceTest { + @InjectMocks + private RegisterComponentService registerComponentService; + + @Mock + private RegisterModuleService registerModuleService; + + @Mock + private GoalModuleService goalModuleService; + + @Mock + private MemberModuleService memberModuleService; + + + @BeforeEach + public void setUp() { + MockitoAnnotations.openMocks(this); + } + + @Test + public void testRegisterGoal_Success() { + // Given + Long userId = 1L; + SaveGoalServiceDto saveGoalServiceDto = new SaveGoalServiceDto.TodoSaveDto( + "Test Goal", + "This is a test goal", + LocalDate.now().plusDays(10) + ); + + Member member = Member.builder() + .nickname("testuser") + .name("Test User") + .password("Password123!") + .email("test@example.com") + .information(new Information(0, Rank.BRONZE)) + .build(); + ReflectionTestUtils.setField(member, "id", userId); + + Goal goal = Goal.builder() + .goalType(saveGoalServiceDto.getGoalType()) // 명시적으로 GoalType 설정 + .title(saveGoalServiceDto.getTitle()) + .description(saveGoalServiceDto.getDescription()) + .targetDate(saveGoalServiceDto.getTargetDate()) + .build(); + ReflectionTestUtils.setField(goal, "id", 1L); + + Register register = Register.builder() + .member(member) + .goal(goal) + .build(); + + when(goalModuleService.createGoal(any(SaveGoalServiceDto.class))).thenReturn(goal); + when(memberModuleService.findById(userId)).thenReturn(Optional.of(member)); + + // Mock 객체는 실제 저장소와 상호작용하지 않기에 저장된 ID값 자동 설정 안됨 >> 수동으로 ID값 설정해줌 + when(registerModuleService.save(any(Register.class))).thenAnswer(invocation -> { + Register arg = invocation.getArgument(0); + ReflectionTestUtils.setField(arg, "id", 1L); + return arg; + }); + + // When + Long registeredGoalId = registerComponentService.registerGoal(userId, saveGoalServiceDto); + + // Then + assertEquals(1L, registeredGoalId); + } + + @Test + public void testRegisterGoal_UserNotFound() { + // Given + Long userId = 1L; + SaveGoalServiceDto saveGoalServiceDto = new SaveGoalServiceDto.TodoSaveDto( + "Test Goal", + "This is a test goal", + LocalDate.now().plusDays(10) + ); + + when(memberModuleService.findById(userId)).thenReturn(Optional.empty()); + + // When & Then + Exception exception = assertThrows(IllegalArgumentException.class, () -> + registerComponentService.registerGoal(userId, saveGoalServiceDto)); + + assertEquals("User not found with id: " + userId, exception.getMessage()); + } +} From b7e0d7db5b50361f2b9011b1b050d2398ea40090 Mon Sep 17 00:00:00 2001 From: baexxbin Date: Tue, 17 Dec 2024 22:37:33 +0900 Subject: [PATCH 3/6] chore: add gitignore --- .../wishrise-fe/.gitignore" | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/.gitignore" diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/.gitignore" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/.gitignore" new file mode 100644 index 0000000..282954d --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/.gitignore" @@ -0,0 +1,24 @@ +.DS_Store +node_modules +/dist + + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +node_modules From b8283b5424359777e6d148ff77edd099e968403a Mon Sep 17 00:00:00 2001 From: baexxbin Date: Tue, 17 Dec 2024 22:42:05 +0900 Subject: [PATCH 4/6] =?UTF-8?q?chore:=20=EA=B8=B0=EC=A1=B4=20wishrise-fe?= =?UTF-8?q?=20=ED=94=84=EB=A1=9C=EC=A0=9D=ED=8A=B8=20=EC=97=B0=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wishrise-fe/babel.config.js" | 5 + .../wishrise-fe/index.html" | 18 + .../wishrise-fe/jsconfig.json" | 27 + .../wishrise-fe/package-lock.json" | 2762 +++++++++++++++++ .../wishrise-fe/package.json" | 47 + .../wishrise-fe/public/favicon.ico" | Bin 0 -> 4286 bytes .../wishrise-fe/src/App.vue" | 24 + .../wishrise-fe/src/assets/CatLogo.jpg" | Bin 0 -> 32977 bytes .../wishrise-fe/src/assets/logo.png" | Bin 0 -> 6849 bytes .../wishrise-fe/src/components/MainHome.vue" | 155 + .../src/components/board/BoardList.vue" | 111 + .../src/components/board/CreateBucket.vue" | 162 + .../src/components/common/BaseFooter.vue" | 21 + .../src/components/common/BaseHeader.vue" | 131 + .../src/components/member/AuthSuccess.vue" | 44 + .../src/components/member/JoinMember.vue" | 128 + .../src/components/member/Login.vue" | 101 + .../src/components/member/ModifyMember.vue" | 201 ++ .../wishrise-fe/src/main.js" | 14 + .../wishrise-fe/src/plugins/axios.js" | 12 + .../wishrise-fe/src/plugins/vuetify.js" | 12 + .../wishrise-fe/src/routers/index.js" | 56 + .../src/services/axios.service.js" | 12 + .../wishrise-fe/vite.config.mjs" | 32 + 24 files changed, 4075 insertions(+) create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/babel.config.js" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/index.html" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/jsconfig.json" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/package-lock.json" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/package.json" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/public/favicon.ico" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/App.vue" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/assets/CatLogo.jpg" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/assets/logo.png" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/MainHome.vue" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/board/BoardList.vue" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/board/CreateBucket.vue" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/common/BaseFooter.vue" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/common/BaseHeader.vue" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/AuthSuccess.vue" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/JoinMember.vue" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/Login.vue" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/ModifyMember.vue" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/main.js" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/plugins/axios.js" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/plugins/vuetify.js" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/routers/index.js" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/services/axios.service.js" create mode 100644 "\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/vite.config.mjs" diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/babel.config.js" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/babel.config.js" new file mode 100644 index 0000000..e955840 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/babel.config.js" @@ -0,0 +1,5 @@ +module.exports = { + presets: [ + '@vue/cli-plugin-babel/preset' + ] +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/index.html" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/index.html" new file mode 100644 index 0000000..3807d4a --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/index.html" @@ -0,0 +1,18 @@ + + + + + + + + Wishrise + + + +
+ + + + diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/jsconfig.json" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/jsconfig.json" new file mode 100644 index 0000000..b3b22b0 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/jsconfig.json" @@ -0,0 +1,27 @@ +{ + "compilerOptions": { + "target": "es5", + "module": "esnext", + "baseUrl": "./", + "moduleResolution": "node", + "paths": { + "@/*": [ + "src/*" + ] + }, + "lib": [ + "esnext", + "dom", + "dom.iterable", + "scripthost" + ] + }, + "include": [ + "src/**/*", + "vite.config.mjs" // 여기서 vite.config.mjs 파일을 포함하도록 설정 + ], + "exclude": [ + "node_modules", + "dist" + ] +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/package-lock.json" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/package-lock.json" new file mode 100644 index 0000000..b0cec5d --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/package-lock.json" @@ -0,0 +1,2762 @@ +{ + "name": "wishrise-fe", + "version": "0.1.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "wishrise-fe", + "version": "0.1.0", + "dependencies": { + "@mdi/font": "^7.4.47", + "@vitejs/plugin-vue": "^5.0.5", + "axios": "^1.7.2", + "core-js": "^3.8.3", + "vite": "^5.3.1", + "vue": "^3.2.13", + "vue-router": "^4.3.3", + "vuetify": "^3.6.9" + }, + "devDependencies": { + "eslint": "^7.32.0", + "eslint-plugin-vue": "^8.0.3", + "vite-plugin-vuetify": "^2.0.3" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.24.7.tgz", + "integrity": "sha512-rR+PBcQ1SMQDDyF6X0wxtG8QyLCgUB0eRAGguqRLfkCA87l7yAP7ehq8SNj96OOGTO8OBV70KhuFYcIkHXOg0w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.24.7.tgz", + "integrity": "sha512-EStJpq4OuY8xYfhGVXngigBJRWxftKX9ksiGDnmlY3o7B/V7KIAc9X4oiK87uPJSc/vs5L869bem5fhZa8caZw==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.24.7", + "chalk": "^2.4.2", + "js-tokens": "^4.0.0", + "picocolors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.24.7", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.7.tgz", + "integrity": "sha512-9uUYRm6OqQrCqQdG1iCBwBPZgN8ciDBro2nIOFaiRz1/BCxaI7CNvQbDHvsArAC7Tw9Hda/B3U+6ui9u4HWXPw==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", + "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", + "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", + "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", + "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", + "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", + "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", + "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", + "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", + "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", + "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", + "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", + "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", + "cpu": [ + "loong64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", + "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", + "cpu": [ + "mips64el" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", + "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", + "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", + "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", + "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", + "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", + "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", + "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", + "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", + "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", + "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz", + "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.1.1", + "espree": "^7.3.0", + "globals": "^13.9.0", + "ignore": "^4.0.6", + "import-fresh": "^3.2.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/@eslint/eslintrc/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz", + "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==", + "deprecated": "Use @eslint/config-array instead", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.0", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "deprecated": "Use @eslint/object-schema instead", + "dev": true + }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "optional": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "optional": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.6.tgz", + "integrity": "sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.25" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, + "node_modules/@mdi/font": { + "version": "7.4.47", + "resolved": "https://registry.npmjs.org/@mdi/font/-/font-7.4.47.tgz", + "integrity": "sha512-43MtGpd585SNzHZPcYowu/84Vz2a2g31TvPMTm9uTiCSWzaheQySUcSyUH/46fPnuPQWof2yd0pGBtzee/IQWw==" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.18.0.tgz", + "integrity": "sha512-Tya6xypR10giZV1XzxmH5wr25VcZSncG0pZIjfePT0OVBvqNEurzValetGNarVrGiq66EBVAFn15iYX4w6FKgQ==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.18.0.tgz", + "integrity": "sha512-avCea0RAP03lTsDhEyfy+hpfr85KfyTctMADqHVhLAF3MlIkq83CP8UfAHUssgXTYd+6er6PaAhx/QGv4L1EiA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.18.0.tgz", + "integrity": "sha512-IWfdwU7KDSm07Ty0PuA/W2JYoZ4iTj3TUQjkVsO/6U+4I1jN5lcR71ZEvRh52sDOERdnNhhHU57UITXz5jC1/w==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.18.0.tgz", + "integrity": "sha512-n2LMsUz7Ynu7DoQrSQkBf8iNrjOGyPLrdSg802vk6XT3FtsgX6JbE8IHRvposskFm9SNxzkLYGSq9QdpLYpRNA==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.18.0.tgz", + "integrity": "sha512-C/zbRYRXFjWvz9Z4haRxcTdnkPt1BtCkz+7RtBSuNmKzMzp3ZxdM28Mpccn6pt28/UWUCTXa+b0Mx1k3g6NOMA==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.18.0.tgz", + "integrity": "sha512-l3m9ewPgjQSXrUMHg93vt0hYCGnrMOcUpTz6FLtbwljo2HluS4zTXFy2571YQbisTnfTKPZ01u/ukJdQTLGh9A==", + "cpu": [ + "arm" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.18.0.tgz", + "integrity": "sha512-rJ5D47d8WD7J+7STKdCUAgmQk49xuFrRi9pZkWoRD1UeSMakbcepWXPF8ycChBoAqs1pb2wzvbY6Q33WmN2ftw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.18.0.tgz", + "integrity": "sha512-be6Yx37b24ZwxQ+wOQXXLZqpq4jTckJhtGlWGZs68TgdKXJgw54lUUoFYrg6Zs/kjzAQwEwYbp8JxZVzZLRepQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.18.0.tgz", + "integrity": "sha512-hNVMQK+qrA9Todu9+wqrXOHxFiD5YmdEi3paj6vP02Kx1hjd2LLYR2eaN7DsEshg09+9uzWi2W18MJDlG0cxJA==", + "cpu": [ + "ppc64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.18.0.tgz", + "integrity": "sha512-ROCM7i+m1NfdrsmvwSzoxp9HFtmKGHEqu5NNDiZWQtXLA8S5HBCkVvKAxJ8U+CVctHwV2Gb5VUaK7UAkzhDjlg==", + "cpu": [ + "riscv64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.18.0.tgz", + "integrity": "sha512-0UyyRHyDN42QL+NbqevXIIUnKA47A+45WyasO+y2bGJ1mhQrfrtXUpTxCOrfxCR4esV3/RLYyucGVPiUsO8xjg==", + "cpu": [ + "s390x" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.18.0.tgz", + "integrity": "sha512-xuglR2rBVHA5UsI8h8UbX4VJ470PtGCf5Vpswh7p2ukaqBGFTnsfzxUBetoWBWymHMxbIG0Cmx7Y9qDZzr648w==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.18.0.tgz", + "integrity": "sha512-LKaqQL9osY/ir2geuLVvRRs+utWUNilzdE90TpyoX0eNqPzWjRm14oMEE+YLve4k/NAqCdPkGYDaDF5Sw+xBfg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.18.0.tgz", + "integrity": "sha512-7J6TkZQFGo9qBKH0pk2cEVSRhJbL6MtfWxth7Y5YmZs57Pi+4x6c2dStAUvaQkHQLnEQv1jzBUW43GvZW8OFqA==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.18.0.tgz", + "integrity": "sha512-Txjh+IxBPbkUB9+SXZMpv+b/vnTEtFyfWZgJ6iyCmt2tdx0OF5WhFowLmnh8ENGNpfUlUZkdI//4IEmhwPieNg==", + "cpu": [ + "ia32" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.18.0.tgz", + "integrity": "sha512-UOo5FdvOL0+eIVTgS4tIdbW+TtnBLWg1YBCcU2KWM7nuNwRz9bksDX1bekJJCpu25N1DVWaCwnT39dVQxzqS8g==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==" + }, + "node_modules/@types/node": { + "version": "20.14.2", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.14.2.tgz", + "integrity": "sha512-xyu6WAMVwv6AKFLB+e/7ySZVr/0zLCzOa7rSpq6jNwpqOrUbcACDWC+53d4n2QHOnDou0fbIsg8wZu/sxrnI4Q==", + "optional": true, + "peer": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.0.5.tgz", + "integrity": "sha512-LOjm7XeIimLBZyzinBQ6OSm3UBCNVCpLkxGC0oWmm2YPzVZoxMsdvNVimLTBzpAnR9hl/yn1SHGuRfe6/Td9rQ==", + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": "^5.0.0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.4.29.tgz", + "integrity": "sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/shared": "3.4.29", + "entities": "^4.5.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.4.29.tgz", + "integrity": "sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==", + "dependencies": { + "@vue/compiler-core": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.4.29.tgz", + "integrity": "sha512-zygDcEtn8ZimDlrEQyLUovoWgKQic6aEQqRXce2WXBvSeHbEbcAsXyCk9oG33ZkyWH4sl9D3tkYc1idoOkdqZQ==", + "dependencies": { + "@babel/parser": "^7.24.7", + "@vue/compiler-core": "3.4.29", + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.10", + "postcss": "^8.4.38", + "source-map-js": "^1.2.0" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.4.29.tgz", + "integrity": "sha512-rFbwCmxJ16tDp3N8XCx5xSQzjhidYjXllvEcqX/lopkoznlNPz3jyy0WGJCyhAaVQK677WWFt3YO/WUEkMMUFQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.3.tgz", + "integrity": "sha512-0MiMsFma/HqA6g3KLKn+AGpL1kgKhFWszC9U29NfpWK5LE7bjeXxySWJrOJ77hBz+TBrBQ7o4QJqbPbqbs8rJw==" + }, + "node_modules/@vue/reactivity": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.4.29.tgz", + "integrity": "sha512-w8+KV+mb1a8ornnGQitnMdLfE0kXmteaxLdccm2XwdFxXst4q/Z7SEboCV5SqJNpZbKFeaRBBJBhW24aJyGINg==", + "dependencies": { + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.4.29.tgz", + "integrity": "sha512-s8fmX3YVR/Rk5ig0ic0NuzTNjK2M7iLuVSZyMmCzN/+Mjuqqif1JasCtEtmtoJWF32pAtUjyuT2ljNKNLeOmnQ==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/shared": "3.4.29" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.4.29.tgz", + "integrity": "sha512-gI10atCrtOLf/2MPPMM+dpz3NGulo9ZZR9d1dWo4fYvm+xkfvRrw1ZmJ7mkWtiJVXSsdmPbcK1p5dZzOCKDN0g==", + "dependencies": { + "@vue/reactivity": "3.4.29", + "@vue/runtime-core": "3.4.29", + "@vue/shared": "3.4.29", + "csstype": "^3.1.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.4.29.tgz", + "integrity": "sha512-HMLCmPI2j/k8PVkSBysrA2RxcxC5DgBiCdj7n7H2QtR8bQQPqKAe8qoaxLcInzouBmzwJ+J0x20ygN/B5mYBng==", + "dependencies": { + "@vue/compiler-ssr": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "vue": "3.4.29" + } + }, + "node_modules/@vue/shared": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.4.29.tgz", + "integrity": "sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==" + }, + "node_modules/@vuetify/loader-shared": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@vuetify/loader-shared/-/loader-shared-2.0.3.tgz", + "integrity": "sha512-Ss3GC7eJYkp2SF6xVzsT7FAruEmdihmn4OCk2+UocREerlXKWgOKKzTN5PN3ZVN5q05jHHrsNhTuWbhN61Bpdg==", + "devOptional": true, + "dependencies": { + "upath": "^2.0.1" + }, + "peerDependencies": { + "vue": "^3.0.0", + "vuetify": "^3.0.0" + } + }, + "node_modules/acorn": { + "version": "8.12.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.12.0.tgz", + "integrity": "sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==", + "devOptional": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz", + "integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "optional": true, + "peer": true + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/core-js": { + "version": "3.37.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz", + "integrity": "sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", + "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" + }, + "node_modules/debug": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", + "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "devOptional": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/enquirer": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.4.1.tgz", + "integrity": "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.1", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/esbuild": { + "version": "0.21.5", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", + "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.21.5", + "@esbuild/android-arm": "0.21.5", + "@esbuild/android-arm64": "0.21.5", + "@esbuild/android-x64": "0.21.5", + "@esbuild/darwin-arm64": "0.21.5", + "@esbuild/darwin-x64": "0.21.5", + "@esbuild/freebsd-arm64": "0.21.5", + "@esbuild/freebsd-x64": "0.21.5", + "@esbuild/linux-arm": "0.21.5", + "@esbuild/linux-arm64": "0.21.5", + "@esbuild/linux-ia32": "0.21.5", + "@esbuild/linux-loong64": "0.21.5", + "@esbuild/linux-mips64el": "0.21.5", + "@esbuild/linux-ppc64": "0.21.5", + "@esbuild/linux-riscv64": "0.21.5", + "@esbuild/linux-s390x": "0.21.5", + "@esbuild/linux-x64": "0.21.5", + "@esbuild/netbsd-x64": "0.21.5", + "@esbuild/openbsd-x64": "0.21.5", + "@esbuild/sunos-x64": "0.21.5", + "@esbuild/win32-arm64": "0.21.5", + "@esbuild/win32-ia32": "0.21.5", + "@esbuild/win32-x64": "0.21.5" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eslint": { + "version": "7.32.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz", + "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==", + "dev": true, + "dependencies": { + "@babel/code-frame": "7.12.11", + "@eslint/eslintrc": "^0.4.3", + "@humanwhocodes/config-array": "^0.5.0", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.0.1", + "doctrine": "^3.0.0", + "enquirer": "^2.3.5", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^5.1.1", + "eslint-utils": "^2.1.0", + "eslint-visitor-keys": "^2.0.0", + "espree": "^7.3.1", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^5.1.2", + "globals": "^13.6.0", + "ignore": "^4.0.6", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^3.13.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.0.4", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "progress": "^2.0.0", + "regexpp": "^3.1.0", + "semver": "^7.2.1", + "strip-ansi": "^6.0.0", + "strip-json-comments": "^3.1.0", + "table": "^6.0.9", + "text-table": "^0.2.0", + "v8-compile-cache": "^2.0.3" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-8.7.1.tgz", + "integrity": "sha512-28sbtm4l4cOzoO1LtzQPxfxhQABararUb1JtqusQqObJpWX2e/gmVyeYVfepizPFne0Q5cILkYGiBoV36L12Wg==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^8.0.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-vue/node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-plugin-vue/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz", + "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^1.1.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/eslint/node_modules/globals": { + "version": "13.24.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", + "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", + "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/espree": { + "version": "7.3.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz", + "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==", + "dev": true, + "dependencies": { + "acorn": "^7.4.0", + "acorn-jsx": "^5.3.1", + "eslint-visitor-keys": "^1.3.0" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", + "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flat-cache": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", + "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "dev": true, + "dependencies": { + "flatted": "^3.2.9", + "keyv": "^4.5.3", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.1.tgz", + "integrity": "sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "deprecated": "Glob versions prior to v9 are no longer supported", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "dependencies": { + "json-buffer": "3.0.1" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/magic-string": { + "version": "0.30.10", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.10.tgz", + "integrity": "sha512-iIRwTIf0QKV3UAnYK4PU8uiEc4SRh5jX0mwpIwETPpHdhVM4f53RSwS/vXvN1JhGX+Cs7B8qIq3d6AH49O5fAQ==", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.4.15" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "devOptional": true + }, + "node_modules/nanoid": { + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/picocolors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.1.tgz", + "integrity": "sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==" + }, + "node_modules/postcss": { + "version": "8.4.38", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.38.tgz", + "integrity": "sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "dependencies": { + "nanoid": "^3.3.7", + "picocolors": "^1.0.0", + "source-map-js": "^1.2.0" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.0.tgz", + "integrity": "sha512-UMz42UD0UY0EApS0ZL9o1XnLhSTtvvvLe5Dc2H2O56fvRZi+KulDyf5ctDhhtYJBGKStV2FL1fy6253cmLgqVQ==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/punycode": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", + "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "deprecated": "Rimraf versions prior to v4 are no longer supported", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.18.0.tgz", + "integrity": "sha512-QmJz14PX3rzbJCN1SG4Xe/bAAX2a6NpCP8ab2vfu2GiUr8AQcr2nCV/oEO3yneFarB67zk8ShlIyWb2LGTb3Sg==", + "dependencies": { + "@types/estree": "1.0.5" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.18.0", + "@rollup/rollup-android-arm64": "4.18.0", + "@rollup/rollup-darwin-arm64": "4.18.0", + "@rollup/rollup-darwin-x64": "4.18.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.18.0", + "@rollup/rollup-linux-arm-musleabihf": "4.18.0", + "@rollup/rollup-linux-arm64-gnu": "4.18.0", + "@rollup/rollup-linux-arm64-musl": "4.18.0", + "@rollup/rollup-linux-powerpc64le-gnu": "4.18.0", + "@rollup/rollup-linux-riscv64-gnu": "4.18.0", + "@rollup/rollup-linux-s390x-gnu": "4.18.0", + "@rollup/rollup-linux-x64-gnu": "4.18.0", + "@rollup/rollup-linux-x64-musl": "4.18.0", + "@rollup/rollup-win32-arm64-msvc": "4.18.0", + "@rollup/rollup-win32-ia32-msvc": "4.18.0", + "@rollup/rollup-win32-x64-msvc": "4.18.0", + "fsevents": "~2.3.2" + } + }, + "node_modules/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/slice-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/slice-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "optional": true, + "peer": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-js": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.0.tgz", + "integrity": "sha512-itJW8lvSA0TXEphiRoawsCksnlf8SyvmFzIhltqAHluXd88pkCd+cXJVHTDwdCr0IzwptSm035IHQktUu1QUMg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "optional": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", + "dev": true + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table": { + "version": "6.8.2", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.2.tgz", + "integrity": "sha512-w2sfv80nrAh2VCbqR5AK27wswXhqcck2AhfnNW76beQXskGZ1V12GwS//yYVa3d3fcvAip2OUnbDAjW2k3v9fA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.16.0.tgz", + "integrity": "sha512-F0twR8U1ZU67JIEtekUcLkXkoO5mMMmgGD8sK/xUFzJ805jxHQl92hImFAqqXMyMYjSPOyUPAwHYhB72g5sTXw==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.3", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.4.1" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/terser": { + "version": "5.31.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.31.1.tgz", + "integrity": "sha512-37upzU1+viGvuFtBo9NPufCb9dwM0+l9hMxYyWfBA+fbwrPqNJAhbZ6W47bBFnZHKHTUBnMvi87434qq+qnxOg==", + "optional": true, + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "optional": true, + "peer": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/undici-types": { + "version": "5.26.5", + "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", + "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "optional": true, + "peer": true + }, + "node_modules/upath": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz", + "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==", + "devOptional": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/v8-compile-cache": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz", + "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==", + "dev": true + }, + "node_modules/vite": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/vite/-/vite-5.3.1.tgz", + "integrity": "sha512-XBmSKRLXLxiaPYamLv3/hnP/KXDai1NDexN0FpkTaZXTfycHvkRHoenpgl/fvuK/kPbB6xAgoyiryAhQNxYmAQ==", + "dependencies": { + "esbuild": "^0.21.3", + "postcss": "^8.4.38", + "rollup": "^4.13.0" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^18.0.0 || >=20.0.0", + "less": "*", + "lightningcss": "^1.21.0", + "sass": "*", + "stylus": "*", + "sugarss": "*", + "terser": "^5.4.0" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + } + } + }, + "node_modules/vite-plugin-vuetify": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/vite-plugin-vuetify/-/vite-plugin-vuetify-2.0.3.tgz", + "integrity": "sha512-HbYajgGgb/noaVKNRhnnXIiQZrNXfNIeanUGAwXgOxL6h/KULS40Uf51Kyz8hNmdegF+DwjgXXI/8J1PNS83xw==", + "devOptional": true, + "dependencies": { + "@vuetify/loader-shared": "^2.0.3", + "debug": "^4.3.3", + "upath": "^2.0.1" + }, + "engines": { + "node": "^18.0.0 || >=20.0.0" + }, + "peerDependencies": { + "vite": ">=5", + "vue": "^3.0.0", + "vuetify": "^3.0.0" + } + }, + "node_modules/vue": { + "version": "3.4.29", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.4.29.tgz", + "integrity": "sha512-8QUYfRcYzNlYuzKPfge1UWC6nF9ym0lx7mpGVPJYNhddxEf3DD0+kU07NTL0sXuiT2HuJuKr/iEO8WvXvT0RSQ==", + "dependencies": { + "@vue/compiler-dom": "3.4.29", + "@vue/compiler-sfc": "3.4.29", + "@vue/runtime-dom": "3.4.29", + "@vue/server-renderer": "3.4.29", + "@vue/shared": "3.4.29" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-eslint-parser": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-8.3.0.tgz", + "integrity": "sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==", + "dev": true, + "dependencies": { + "debug": "^4.3.2", + "eslint-scope": "^7.0.0", + "eslint-visitor-keys": "^3.1.0", + "espree": "^9.0.0", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.5" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "7.2.2", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", + "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/espree": { + "version": "9.6.1", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", + "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "dev": true, + "dependencies": { + "acorn": "^8.9.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.4.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/vue-eslint-parser/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/semver": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.2.tgz", + "integrity": "sha512-FNAIBWCx9qcRhoHcgcJ0gvU7SN1lYU2ZXuSfl04bSC5OpvDHFyJCjdNHomPXxjQlCBU67YW64PzY7/VIEH7F2w==", + "dev": true, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/vue-router": { + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.3.3.tgz", + "integrity": "sha512-8Q+u+WP4N2SXY38FDcF2H1dUEbYVHVPtPCPZj/GTZx8RCbiB8AtJP9+YIxn4Vs0svMTNQcLIzka4GH7Utkx9xQ==", + "dependencies": { + "@vue/devtools-api": "^6.5.1" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vuetify": { + "version": "3.6.9", + "resolved": "https://registry.npmjs.org/vuetify/-/vuetify-3.6.9.tgz", + "integrity": "sha512-LVIZL0OCwzg3Aw2F8nT1rK/renpTPOcDEPe5E002Vj+VjXwsCNqwwxNteGfrcNlp0vgIJ8WusMvaxp69UJ3NJg==", + "engines": { + "node": "^12.20 || >=14.13" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/johnleider" + }, + "peerDependencies": { + "typescript": ">=4.7", + "vite-plugin-vuetify": ">=1.0.0", + "vue": "^3.3.0", + "vue-i18n": "^9.0.0", + "webpack-plugin-vuetify": ">=2.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + }, + "vite-plugin-vuetify": { + "optional": true + }, + "vue-i18n": { + "optional": true + }, + "webpack-plugin-vuetify": { + "optional": true + } + } + }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + } + } +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/package.json" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/package.json" new file mode 100644 index 0000000..138995c --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/package.json" @@ -0,0 +1,47 @@ +{ + "name": "wishrise-fe", + "version": "0.1.0", + "private": true, + "type": "module", + "scripts": { + "start": "vite", + "build": "vite build", + "serve": "vite preview", + "lint": "eslint . --ext .vue,.js,.jsx,.ts,.tsx" + }, + "dependencies": { + "@mdi/font": "^7.4.47", + "@vitejs/plugin-vue": "^5.0.5", + "axios": "^1.7.2", + "core-js": "^3.8.3", + "vite": "^5.3.1", + "vue": "^3.2.13", + "vue-router": "^4.3.3", + "vuetify": "^3.6.9" + }, + "devDependencies": { + "eslint": "^7.32.0", + "eslint-plugin-vue": "^8.0.3", + "vite-plugin-vuetify": "^2.0.3" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/vue3-essential", + "eslint:recommended" + ], + "parserOptions": { + "parser": "@babel/eslint-parser" + }, + "rules": {} + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not dead", + "not ie 11" + ] +} diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/public/favicon.ico" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/public/favicon.ico" new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/App.vue" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/App.vue" new file mode 100644 index 0000000..b592049 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/App.vue" @@ -0,0 +1,24 @@ + + + diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/assets/CatLogo.jpg" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/assets/CatLogo.jpg" new file mode 100644 index 0000000000000000000000000000000000000000..a9d37295ce265282aad87bdb6c35465607e2add1 GIT binary patch literal 32977 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 B_7VU9 literal 0 HcmV?d00001 diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/assets/logo.png" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/assets/logo.png" new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 GIT binary patch literal 6849 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 +
+
+

이루어진 버킷리스트

+

다른사람들이 이루어낸 버킷리스트입니다:)

+
+ +
+
+

{{ item.id }}님의 버킷리스트

+ Card image cap +
+

{{ item.goal }}

+

{{ item.how }}

+
+ +
+
+ +
    +
  • + +
  • +
  • + +
  • +
  • + +
  • +
+ +
+ +
+
+ +
+
+ + + + + \ No newline at end of file diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/board/BoardList.vue" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/board/BoardList.vue" new file mode 100644 index 0000000..1871af0 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/board/BoardList.vue" @@ -0,0 +1,111 @@ + + + + + + \ No newline at end of file diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/board/CreateBucket.vue" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/board/CreateBucket.vue" new file mode 100644 index 0000000..4d6c47e --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/board/CreateBucket.vue" @@ -0,0 +1,162 @@ + + + + + + \ No newline at end of file diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/common/BaseFooter.vue" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/common/BaseFooter.vue" new file mode 100644 index 0000000..2423bf4 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/common/BaseFooter.vue" @@ -0,0 +1,21 @@ + + + + + + \ No newline at end of file diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/common/BaseHeader.vue" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/common/BaseHeader.vue" new file mode 100644 index 0000000..7e9c1f7 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/common/BaseHeader.vue" @@ -0,0 +1,131 @@ + + + + + diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/AuthSuccess.vue" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/AuthSuccess.vue" new file mode 100644 index 0000000..11d73d6 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/AuthSuccess.vue" @@ -0,0 +1,44 @@ + + + + + diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/JoinMember.vue" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/JoinMember.vue" new file mode 100644 index 0000000..f19f09b --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/JoinMember.vue" @@ -0,0 +1,128 @@ + + + + + diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/Login.vue" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/Login.vue" new file mode 100644 index 0000000..f781ea7 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/Login.vue" @@ -0,0 +1,101 @@ + + + + + + \ No newline at end of file diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/ModifyMember.vue" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/ModifyMember.vue" new file mode 100644 index 0000000..9ada26a --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/components/member/ModifyMember.vue" @@ -0,0 +1,201 @@ + + + + + + \ No newline at end of file diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/main.js" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/main.js" new file mode 100644 index 0000000..dea797b --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/main.js" @@ -0,0 +1,14 @@ +import { createApp } from 'vue' + + +import App from './App.vue' +import router from './routers'; +import vuetify from './plugins/vuetify'; +import axiosPlugin from './plugins/axios'; + +createApp(App) + .use(vuetify) + .use(router) + .use(axiosPlugin) + .mount('#app') + diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/plugins/axios.js" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/plugins/axios.js" new file mode 100644 index 0000000..ac1e0cc --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/plugins/axios.js" @@ -0,0 +1,12 @@ +// Vue 플러그인을 통해 AxiosService 전역 설정 +// 모든 컴포넌트에서 this.$axios로 접근 가능 + +import AxiosService from '../services/axios.service'; + +const axiosPlugin = { + install(app) { + app.config.globalProperties.$axios = AxiosService.Instance; // Axios 인스턴스를 전역 속성으로 추가 + } +}; + +export default axiosPlugin; \ No newline at end of file diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/plugins/vuetify.js" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/plugins/vuetify.js" new file mode 100644 index 0000000..b888588 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/plugins/vuetify.js" @@ -0,0 +1,12 @@ +// import '@mdi/font/css/meterialdesignicons.css' +import 'vuetify/styles' +import { createVuetify } from 'vuetify' +import * as components from 'vuetify/components' +import * as directives from 'vuetify/directives' + +const vuetify = createVuetify({ + components, + directives, +}); + +export default vuetify; \ No newline at end of file diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/routers/index.js" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/routers/index.js" new file mode 100644 index 0000000..dc1e5af --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/routers/index.js" @@ -0,0 +1,56 @@ +// router/index.js + +import { createRouter, createWebHistory } from 'vue-router'; +import MainHome from '../components/MainHome.vue'; +import BoardList from '../components/board/BoardList.vue'; +import CreateBucket from '../components/board/CreateBucket.vue'; +import JoinMember from '../components/member/JoinMember.vue'; +import ModifyMember from '../components/member/ModifyMember.vue'; +import Login from '../components/member/Login.vue'; +import AuthSuccess from '../components/member/AuthSuccess.vue'; + + +const routes = [ + { + path: '/', + name: 'MainHome', + component: MainHome + }, + { + path: '/BoardList', + name: 'BoardList', + component: BoardList + }, + { + path: '/CreateBucket', + name: 'CreateBucket', + component: CreateBucket + }, + { + path: '/JoinMember', + name: 'JoinMember', + component: JoinMember + }, + { + path: '/ModifyMember', + name: 'ModifyMember', + component: ModifyMember + }, + { + path: '/Login', + name: 'Login', + component: Login + }, + { + path: '/auth/success', + name: 'AuthSuccess', + component: AuthSuccess + }, +]; + +const router = createRouter({ + history: createWebHistory(), + routes +}); + +export default router; diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/services/axios.service.js" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/services/axios.service.js" new file mode 100644 index 0000000..e412fd2 --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/src/services/axios.service.js" @@ -0,0 +1,12 @@ +// service class를 통해 axios 접근 + +import axios from 'axios'; + +class AxiosService { + static Instance = axios.create({ + timeout: 10000, + withCredentials: true, // 쿠키와 자격 증명 함께 전송 + }); +} + +export default AxiosService; \ No newline at end of file diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/vite.config.mjs" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/vite.config.mjs" new file mode 100644 index 0000000..c09836d --- /dev/null +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise-fe/vite.config.mjs" @@ -0,0 +1,32 @@ +import { defineConfig } from 'vite'; +import vue from '@vitejs/plugin-vue'; +import vuetify from 'vite-plugin-vuetify'; +import { resolve } from 'path'; + +export default defineConfig({ + root: resolve(__dirname, '.'), // 프로젝트 루트 디렉토리 설정 + plugins: [ + vue(), + vuetify({ + autoImport: true, + }), + ], + build: { + outDir: '../wishrise/src/main/resources/static', // Build Directory + emptyOutDir: true, // 빌드 디렉토리를 비움 + rollupOptions: { + external: ['@mdi/font'], // @mdi/font 패키지를 외부로 설정 + }, + }, + server: { + // port:8080, + proxy: { + '/api': { + target: 'http://localhost:8081', + changeOrigin: true, + withCredentials: true, // 쿠키와 자격 증명을 함께 전송 + }, + }, + }, + publicDir: 'public', // public 폴더 지정 +}); From 06851f712fedd8af81a7815d731b3b728dc00831 Mon Sep 17 00:00:00 2001 From: baexxbin Date: Sat, 21 Dec 2024 01:47:04 +0900 Subject: [PATCH 5/6] =?UTF-8?q?feat:=20jwt=20=EC=83=9D=EC=84=B1=20?= =?UTF-8?q?=ED=81=B4=EB=9E=98=EC=8A=A4=20=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit TokenProvider: JWT 생성 및 검증 TokenService: 엑세스, 리프레시 토큰 생성 및 비즈니스 로직 구현 --- .../wishrise/auth/jwt/TokenProvider.java" | 53 ++------- .../auth/repository/TokenRepository.java" | 24 +++-- .../wishrise/auth/service/TokenService.java" | 101 ++++++++++-------- 3 files changed, 80 insertions(+), 98 deletions(-) diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenProvider.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenProvider.java" index bb37d29..633dbed 100644 --- "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenProvider.java" +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/jwt/TokenProvider.java" @@ -15,7 +15,6 @@ import org.springframework.security.core.Authentication; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; -import org.springframework.security.core.userdetails.User; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; @@ -29,7 +28,7 @@ import static com.baexxbin.wishrise.global.exception.ErrorCode.INVALID_TOKEN; /* -* JWT 생성 검증 파싱 +* JWT 생성 및 검증만 담당하는 도메인 중립적인 '토큰 처리기' 역할 * */ @Slf4j @@ -90,52 +89,22 @@ private String generateToken(Authentication authentication) { .compact(); } -// public Authentication getAuthentication(String token) { -// Claims claims = parseClaims(token); -// List authorities = getAuthorities(claims); -// -// // 2. security의 User 객체 생성 -// User principal = new User(claims.getSubject(), "", authorities); -// return new UsernamePasswordAuthenticationToken(principal, token, authorities); -// } public Authentication getAuthentication(String token) { Claims claims = parseClaims(token); - List authorities = Collections.singletonList( - new SimpleGrantedAuthority(claims.get(KEY_ROLE).toString())); - User principal = new User(claims.getSubject(), "", authorities); - return new UsernamePasswordAuthenticationToken(principal, token, authorities); - } - -// private List getAuthorities(Claims claims) { -// return Collections.singletonList(new SimpleGrantedAuthority( -// claims.get(KEY_ROLE).toString())); -// } + // 1. JWT에서 정보 추출 + String userId = claims.getSubject(); + String role = claims.get("role", String.class); -// // 3. accessToken 재발급 -// public String reissueAccessToken(String accessToken) { -// if (StringUtils.hasText(accessToken)) { -// Token token = tokenService.findByAccessTokenOrThrow(accessToken); -// String refreshToken = token.getRefreshToken(); -// -// if (validateToken(refreshToken)) { -// String reissueAccessToken = generateAccessToken(getAuthentication(refreshToken)); -// tokenService.updateToken(reissueAccessToken, token); -// return reissueAccessToken; -// } -// } -// return null; -// } + // 2. 권한 생성 + List authorities = Collections.singletonList( + new SimpleGrantedAuthority(role) + ); -// public boolean validateToken(String token) { -// if (!StringUtils.hasText(token)) { -// return false; -// } -// -// Claims claims = parseClaims(token); -// return claims.getExpiration().after(new Date()); -// } + // 3. JWT의 정보 Authentication에 전달 + return new UsernamePasswordAuthenticationToken(userId, null, authorities); + } public boolean validateToken(String token) { if (!StringUtils.hasText(token)) { diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/repository/TokenRepository.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/repository/TokenRepository.java" index 71ea3ce..7605915 100644 --- "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/repository/TokenRepository.java" +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/repository/TokenRepository.java" @@ -1,12 +1,16 @@ -package com.baexxbin.wishrise.auth.repository; +//package com.baexxbin.wishrise.auth.repository; +// +//import com.baexxbin.wishrise.auth.domain.Token; +//import org.springframework.data.repository.CrudRepository; +// +//import java.util.Optional; +// +//public interface TokenRepository extends CrudRepository { +// Optional findByRefreshToken(String refreshToken); +// Optional findByAccessToken(String accessToken); +// Optional findByAuthId(String authId); +//} -import com.baexxbin.wishrise.auth.domain.Token; -import org.springframework.data.repository.CrudRepository; -import java.util.Optional; - -public interface TokenRepository extends CrudRepository { - Optional findByRefreshToken(String refreshToken); - Optional findByAccessToken(String accessToken); - Optional findByAuthId(String authId); -} +// 이건 jwt를 데이터베이스에 저장하는 용도. +// jwt를 데이터베이스가 아닌 redis에서 관리할 것이기 때문에 필요없음 \ No newline at end of file diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/service/TokenService.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/service/TokenService.java" index 144fc83..c593126 100644 --- "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/service/TokenService.java" +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/service/TokenService.java" @@ -4,7 +4,7 @@ import com.baexxbin.wishrise.auth.dto.LoginResponse; import com.baexxbin.wishrise.auth.exception.TokenException; import com.baexxbin.wishrise.auth.jwt.TokenProvider; -import com.baexxbin.wishrise.auth.repository.TokenRepository; +import com.baexxbin.wishrise.global.util.RedisUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.security.core.Authentication; @@ -13,76 +13,85 @@ import static com.baexxbin.wishrise.global.exception.ErrorCode.TOKEN_EXPIRED; +/* +* Refresh Token : Redis에 저장 +* Access Token : 클라이언트에서만 저장 +* */ @Slf4j @RequiredArgsConstructor @Service public class TokenService { - private final TokenRepository tokenRepository; private final TokenProvider tokenProvider; + private final RedisUtils redisUtils; + + private static final String REFRESH_TOKEN_PREFIX = "refresh:"; // Redis Key Prefix + private static final long REFRESH_TOKEN_EXPIRE_TIME = 1000 * 60 * 60 * 24 * 7; // 7일 (밀리초) - public void deleteRefreshToken(String memberKey) { - tokenRepository.deleteById(memberKey); - } + // Access Token 및 Refresh Token 생성 @Transactional - public void saveOrUpdate(String memberKey, String refreshToken, String accessToken) { - Token token = tokenRepository.findByAccessToken(accessToken) - .map(o -> o.updateRefreshToken(refreshToken)) - .orElseGet(() -> new Token(memberKey, refreshToken, accessToken)); + public Token generateTokens(Authentication authentication) { + // Access Token 생성 + String accessToken = tokenProvider.generateAccessToken(authentication); - tokenRepository.save(token); - } + // Refresh Token 생성 + String refreshToken = tokenProvider.generateRefreshToken(authentication); + + // Refresh Token Redis 저장 + String redisKey = REFRESH_TOKEN_PREFIX + authentication.getName(); + redisUtils.setData(redisKey, refreshToken, REFRESH_TOKEN_EXPIRE_TIME); - public Token findByAccessTokenOrThrow(String accessToken) { - return tokenRepository.findByAccessToken(accessToken) - .orElseThrow(() -> new TokenException(TOKEN_EXPIRED)); + return new Token(authentication.getName(), refreshToken, accessToken); } - @Transactional - public void updateToken(String accessToken, Token token) { - token.updateAccessToken(accessToken); - tokenRepository.save(token); + // Redis에서 Refresh Token 삭제 + public void deleteRefreshToken(String memberKey) { + String redisKey = REFRESH_TOKEN_PREFIX + memberKey; + redisUtils.deleteData(redisKey); } - public LoginResponse getLoginResponse(String accessToken) { - if (!tokenProvider.validateToken(accessToken)) { - throw new TokenException(TOKEN_EXPIRED); - } - Authentication authentication = tokenProvider.getAuthentication(accessToken); - String userId = authentication.getName(); - String username = authentication.getPrincipal().toString(); - String role = authentication.getAuthorities().stream() - .findFirst() - .map(Object::toString) - .orElse("USER"); + // Redis에서 Refresh Token 검증 + public boolean validateRefreshToken(String memberKey, String refreshToken) { + String redisKey = REFRESH_TOKEN_PREFIX + memberKey; + String storedRefreshToken = redisUtils.getData(redisKey); - return LoginResponse.builder() - .accessToken(accessToken) - .refreshToken("refresh-token-placeholder") // 실제 리프레시 토큰 로직 추가 - .userId(userId) - .username(username) - .role(role) - .build(); + // Redis에 저장된 토큰과 비교 및 유효성 검증 + return refreshToken.equals(storedRefreshToken) && tokenProvider.validateToken(refreshToken); } - public String reissueAccessToken(String accessToken) { - if (!tokenProvider.validateToken(accessToken)) { + // Access Token 재발급 + public String reissueAccessToken(String refreshToken) { + // Refresh Token에서 인증 정보 가져오기 + Authentication authentication = tokenProvider.getAuthentication(refreshToken); + + // Redis에서 Refresh Token 검증 + String memberKey = authentication.getName(); + if (!validateRefreshToken(memberKey, refreshToken)) { throw new TokenException(TOKEN_EXPIRED); } - Token token = findByAccessTokenOrThrow(accessToken); - String refreshToken = token.getRefreshToken(); + // Access Token 재발급 + return tokenProvider.generateAccessToken(authentication); + } - if (!tokenProvider.validateToken(refreshToken)) { - throw new TokenException(TOKEN_EXPIRED); - } - String newAccessToken = tokenProvider.generateAccessToken(tokenProvider.getAuthentication(refreshToken)); - updateToken(newAccessToken, token); + // 로그인 응답 생성 + public LoginResponse getLoginResponse(Authentication authentication) { + // Access Token 및 Refresh Token 생성 + Token tokens = generateTokens(authentication); - return newAccessToken; + return LoginResponse.builder() + .accessToken(tokens.getAccessToken()) + .refreshToken(tokens.getRefreshToken()) + .userId(authentication.getName()) + .username(authentication.getPrincipal().toString()) + .role(authentication.getAuthorities().stream() + .findFirst() + .map(Object::toString) + .orElse("USER")) + .build(); } } From a2c060295eecfb8aa89038464e2a6ccc72d106b5 Mon Sep 17 00:00:00 2001 From: baexxbin Date: Sat, 21 Dec 2024 01:51:03 +0900 Subject: [PATCH 6/6] =?UTF-8?q?feat:=20OAuth2SuccessHandler=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/domain/PrincipalDetails.java" | 15 ++-- .../auth/handler/OAuth2SuccessHandler.java" | 79 +++++++++++-------- .../application/MemberComponentService.java" | 4 + .../application/MemberModuleService.java" | 4 + 4 files changed, 61 insertions(+), 41 deletions(-) diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/domain/PrincipalDetails.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/domain/PrincipalDetails.java" index 2f5915c..75ef045 100644 --- "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/domain/PrincipalDetails.java" +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/domain/PrincipalDetails.java" @@ -12,9 +12,12 @@ /* * OAuth2 인증을 사용한 로그인한 사용자 정보를 가짐 -* Spring Security에서 사용자 인증 및 권한 정보를 처리하는데 사용 +* Spring Security에서 OAuth2 인증을 통해 로그인한 사용자 정보를 처리하는 '사용자 정보 객체' * * OAuth2를 통해 로그인 시 Spring Security는 PrincipalDetails 객체 생성해 사용자 정보 관리 +* OAuth2User 인터페이스 구현 : OAuth2 인증을 통해 로그인한 사용자 정보를 처리 +* UserDetails 인터페이스 구현 : Spring Security에서 사용자 인증 및 권한을 처리할 때 필요한 정보 제공 +* GrantedAuthority : Spring Security에서 권한을 확인하는 전용 객체 * */ public record PrincipalDetails( @@ -43,7 +46,7 @@ public Collection getAuthorities() { @Override public String getPassword() { return null; - } + } // OAuth2 로그인에서는 비밀번호가 필요 없으므로 null @Override public String getUsername() { @@ -53,22 +56,22 @@ public String getUsername() { @Override public boolean isAccountNonExpired() { return true; - } + } // 계정 만료 여부 @Override public boolean isAccountNonLocked() { return true; - } + } // 계정 잠금 여부 @Override public boolean isCredentialsNonExpired() { return true; - } + } // 자격 증명 만료 여부 @Override public boolean isEnabled() { return true; - } + } // 계정 활성화 여부 } diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/OAuth2SuccessHandler.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/OAuth2SuccessHandler.java" index ad77397..d4064bb 100644 --- "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/OAuth2SuccessHandler.java" +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/auth/handler/OAuth2SuccessHandler.java" @@ -1,18 +1,24 @@ package com.baexxbin.wishrise.auth.handler; -import com.baexxbin.wishrise.auth.jwt.TokenProvider; +import com.baexxbin.wishrise.auth.domain.PrincipalDetails; +import com.baexxbin.wishrise.auth.domain.Token; +import com.baexxbin.wishrise.auth.dto.OAuth2UserInfo; import com.baexxbin.wishrise.auth.service.TokenService; +import com.baexxbin.wishrise.member.application.MemberModuleService; +import com.baexxbin.wishrise.member.domain.Member; import jakarta.servlet.ServletException; -import jakarta.servlet.http.Cookie; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.oauth2.core.user.OAuth2User; import org.springframework.security.web.authentication.AuthenticationSuccessHandler; import org.springframework.stereotype.Component; -import org.springframework.web.util.UriComponentsBuilder; import java.io.IOException; +import java.util.Map; /* * OAuth2 인증 과정에서 성공적인 인증 이후의 동작 정의 @@ -21,45 +27,48 @@ @RequiredArgsConstructor @Component public class OAuth2SuccessHandler implements AuthenticationSuccessHandler { - private final TokenProvider tokenProvider; private final TokenService tokenService; + private final MemberModuleService memberModuleService; private static final String URI = "/auth/success"; @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException { - // 1. Access Token 생성 - String accessToken = tokenProvider.generateAccessToken(authentication); - - // 2. Refresh Token 생성 - String refreshToken = tokenProvider.generateRefreshToken(authentication); - - // 3. Token 저장 - String memberKey = authentication.getName(); - tokenService.saveOrUpdate(memberKey, refreshToken, accessToken); - - // 4. Access Token을 쿠키에 저장 - Cookie accessTokenCookie = new Cookie("accessToken", accessToken); - accessTokenCookie.setHttpOnly(true); // JS에서 접근 불가 - accessTokenCookie.setSecure(true); // HTTPS에서만 전송 - accessTokenCookie.setPath("/"); // 모든 경로에서 쿠키 전송 - accessTokenCookie.setMaxAge(30 * 60); // 30분간 유효 - - // 5. Refresh Token을 쿠키에 저장 - Cookie refreshTokenCookie = new Cookie("refreshToken", refreshToken); - refreshTokenCookie.setHttpOnly(true); // JS에서 접근 불가 - refreshTokenCookie.setPath("/"); // 모든 경로에서 쿠키 전송 - refreshTokenCookie.setMaxAge(7 * 24 * 60 * 60); // 7일간 유효 - - // 6. 응답에 쿠키 추가 - response.addCookie(accessTokenCookie); - response.addCookie(refreshTokenCookie); - - // 7. JSON 형태로 응답을 보내고 리다이렉트 - response.setContentType("application/json"); - response.getWriter().write("{\"message\": \"Login successful\", \"redirectUrl\": \"/auth/success\"}"); - response.setStatus(HttpServletResponse.SC_OK); + // 1. Authentication에서 PrincipalDetails 가져오기 + PrincipalDetails principalDetails = (PrincipalDetails) authentication.getPrincipal(); + + // 2. OAuth2User 정보 가져오기 + OAuth2User oAuth2User = principalDetails; + + // 3. OAuth2User에서 필요한 정보 추출 + String registrationId = oAuth2User.getName(); // 소셜 로그인 제공자의 registrationId + Map attributes = oAuth2User.getAttributes(); // 소셜 로그인 제공자에서 받은 사용자 정보 + + // 4. OAuth2UserInfo 객체 생성 + OAuth2UserInfo oAuth2UserInfo = OAuth2UserInfo.of(registrationId, attributes); + + // 5. loginOrJoin 호출하여 회원 정보 처리 + Member member = memberModuleService.loginOrJoin(oAuth2UserInfo); + + // 6. 새로운 PrincipalDetails 객체 생성 + PrincipalDetails newPrincipalDetails = new PrincipalDetails(member, attributes, registrationId); + + // 7. 새로운 Authentication 객체 생성 + Authentication newAuthentication = new UsernamePasswordAuthenticationToken( + newPrincipalDetails, + null, + newPrincipalDetails.getAuthorities() + ); + + // 8. SecurityContext에 새 Authentication 설정 + SecurityContextHolder.getContext().setAuthentication(newAuthentication); + + // 9. JWT 생성 + Token token = tokenService.generateTokens(newAuthentication); + + // 10. JWT 응답으로 보내기 + response.setHeader("Authorization", "Bearer " + token.getAccessToken()); } } diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberComponentService.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberComponentService.java" index bd13bc2..3c14ee0 100644 --- "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberComponentService.java" +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberComponentService.java" @@ -15,6 +15,10 @@ import java.util.Optional; +/* + * 비즈니스 로직 처리 + * */ + @Service @Transactional(readOnly = true) @RequiredArgsConstructor diff --git "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberModuleService.java" "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberModuleService.java" index 7f5b948..a34f35b 100644 --- "a/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberModuleService.java" +++ "b/\353\260\260\354\210\230\353\271\210_\353\223\234\353\246\274\354\272\220\354\262\230/wishrise/src/main/java/com/baexxbin/wishrise/member/application/MemberModuleService.java" @@ -10,6 +10,10 @@ import java.util.List; import java.util.Optional; + +/* +* 데이터 접근과 관련된 작업 처리 +* */ @Service @Transactional(readOnly = true) @RequiredArgsConstructor