From 1ab9407e798802ed3ea6a4ed927c61edc64eba8a Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Tue, 21 Jul 2026 09:08:15 +0200 Subject: [PATCH] Refactor code structure for improved readability and maintainability; optimize performance across multiple modules. --- .codex | 0 .cursor/rules/legacy-cpp-workers.mdc | 0 .gitea/workflows/deploy.yml | 0 .github/workflows/android-security.yml | 29 + .github/workflows/android-tests.yml | 50 + .gitignore | 0 .vscode/settings.json | 0 CHURCH_MODELS.md | 0 CHURCH_OFFICES.md | 0 CMakeLists.txt | 0 CMakeLists.txt.user | 0 CMakeLists.txt.user.d36652f | 0 DEPLOYMENT.md | 0 OAUTH_CREDENTIALS_SETUP.md | 0 PERFORMANCE_ANALYSIS.md | 0 README.md | 0 README_MATCH3_CAMPAIGN.md | 0 SELL_OVERVIEW.md | 0 SSL-SETUP.md | 0 android/.idea/android.iml | 0 android/.idea/caches/deviceStreaming.xml | 36 + android/.idea/deviceManager.xml | 0 android/.idea/markdown.xml | 0 android/.idea/misc.xml | 0 android/.idea/modules.xml | 0 android/.idea/vcs.xml | 0 android/ANDROID_APP_PLAN.md | 0 android/APP_LINKS.md | 58 + android/NATIVE_ANDROID_APP_PLAN.md | 799 ++++--- android/README.md | 0 android/SECURITY.md | 37 + android/STORE_COMPLIANCE.md | 17 + android/TESTING.md | 45 + .../android/.idea/AndroidProjectSystem.xml | 0 android/android/.idea/compiler.xml | 6 + .../.idea/deploymentTargetSelector.xml | 4 + android/android/.idea/migrations.xml | 0 android/android/.idea/misc.xml | 3 +- android/android/.idea/runConfigurations.xml | 0 .../runConfigurations/YourPart_Debug.xml | 0 android/android/app/build.gradle | 0 android/android/app/capacitor.build.gradle | 0 android/android/app/proguard-rules.pro | 0 .../yourpart/app/ExampleInstrumentedTest.java | 0 .../android/app/src/main/AndroidManifest.xml | 0 .../java/de/yourpart/app/MainActivity.java | 0 .../main/res/drawable-land-hdpi/splash.png | Bin .../main/res/drawable-land-mdpi/splash.png | Bin .../main/res/drawable-land-xhdpi/splash.png | Bin .../main/res/drawable-land-xxhdpi/splash.png | Bin .../main/res/drawable-land-xxxhdpi/splash.png | Bin .../main/res/drawable-port-hdpi/splash.png | Bin .../main/res/drawable-port-mdpi/splash.png | Bin .../main/res/drawable-port-xhdpi/splash.png | Bin .../main/res/drawable-port-xxhdpi/splash.png | Bin .../main/res/drawable-port-xxxhdpi/splash.png | Bin .../drawable-v24/ic_launcher_foreground.xml | 0 .../res/drawable/ic_launcher_background.xml | 0 .../app/src/main/res/drawable/splash.png | Bin .../app/src/main/res/layout/activity_main.xml | 0 .../res/mipmap-anydpi-v26/ic_launcher.xml | 0 .../mipmap-anydpi-v26/ic_launcher_round.xml | 0 .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin .../mipmap-hdpi/ic_launcher_foreground.png | Bin .../res/mipmap-hdpi/ic_launcher_round.png | Bin .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin .../mipmap-mdpi/ic_launcher_foreground.png | Bin .../res/mipmap-mdpi/ic_launcher_round.png | Bin .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin .../mipmap-xhdpi/ic_launcher_foreground.png | Bin .../res/mipmap-xhdpi/ic_launcher_round.png | Bin .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin .../res/values/ic_launcher_background.xml | 0 .../app/src/main/res/values/strings.xml | 0 .../app/src/main/res/values/styles.xml | 0 .../app/src/main/res/xml/file_paths.xml | 0 .../java/de/yourpart/app/ExampleUnitTest.java | 0 android/android/build.gradle | 0 android/android/capacitor.settings.gradle | 0 android/android/gradle.properties | 0 .../android/gradle/wrapper/gradle-wrapper.jar | Bin .../gradle/wrapper/gradle-wrapper.properties | 0 android/android/gradlew.bat | 0 android/android/settings.gradle | 0 android/android/variables.gradle | 0 android/capacitor.config.ts | 0 android/native/.idea/AndroidProjectSystem.xml | 6 + .../native/.idea/caches/deviceStreaming.xml | 2001 +++++++++++++++++ .../native/.idea/deploymentTargetSelector.xml | 18 + android/native/.idea/deviceManager.xml | 13 + android/native/.idea/gradle.xml | 30 + android/native/.idea/markdown.xml | 8 + android/native/.idea/migrations.xml | 10 + android/native/.idea/misc.xml | 9 + android/native/.idea/runConfigurations.xml | 17 + android/native/.idea/vcs.xml | 7 + .../.kotlin/errors/errors-1783688579715.log | 76 + .../.kotlin/errors/errors-1783688926385.log | 76 + .../.kotlin/errors/errors-1783689039380.log | 76 + .../.kotlin/errors/errors-1784193658070.log | 149 ++ .../.kotlin/errors/errors-1784193658098.log | 150 ++ .../.kotlin/errors/errors-1784193702998.log | 153 ++ .../.kotlin/errors/errors-1784193703057.log | 128 ++ android/native/README.md | 24 + android/native/app/build.gradle.kts | 154 +- android/native/app/google-services.json | 29 + .../native/app/google-services.json.example | 17 + android/native/app/proguard-rules.pro | 0 .../2.json | 232 ++ .../auth/storage/SessionStoreResumeTest.kt | 25 + .../core/persistence/AppCacheMigrationTest.kt | 42 + .../nativeapp/ui/NativeScreenComposeTest.kt | 83 + .../debug/res/xml/network_security_config.xml | 8 + .../native/app/src/main/AndroidManifest.xml | 21 + .../de/yourpart/nativeapp/MainActivity.kt | 50 +- .../nativeapp/YourPartNativeApplication.kt | 0 .../nativeapp/core/auth/model/AuthModels.kt | 58 + .../core/auth/storage/AuthSessionStore.kt | 9 + .../core/auth/storage/SessionStore.kt | 66 + .../nativeapp/core/config/AppConfig.kt | 35 + .../yourpart/nativeapp/core/di/AppModule.kt | 60 + .../nativeapp/core/di/PersistenceModule.kt | 38 + .../nativeapp/core/di/StorageModule.kt | 16 + .../nativeapp/core/navigation/AppLink.kt | 58 + .../nativeapp/core/network/ApiResult.kt | 7 + .../core/network/AuthHeaderInterceptor.kt | 28 + .../core/network/BackendErrorParser.kt | 25 + .../nativeapp/core/network/DownloadHelper.kt | 35 + .../core/network/MultipartUploadHelper.kt | 28 + .../nativeapp/core/network/NetworkError.kt | 35 + .../nativeapp/core/network/NetworkPolicy.kt | 17 + .../core/network/NetworkRequestExecutor.kt | 39 + .../core/network/PaginationModels.kt | 20 + .../core/persistence/AppCacheDatabase.kt | 25 + .../core/persistence/AppCacheMigrations.kt | 21 + .../nativeapp/core/persistence/CacheDaos.kt | 82 + .../core/persistence/CacheEntities.kt | 54 + .../nativeapp/core/persistence/CachePolicy.kt | 18 + .../core/persistence/FeatureFlagDefaults.kt | 10 + .../core/persistence/UserPreferencesStore.kt | 60 + .../core/realtime/DaemonMessageParser.kt | 22 + .../core/realtime/DefaultRealtimeManager.kt | 250 ++ .../core/realtime/RealtimeCacheInvalidator.kt | 28 + .../core/realtime/RealtimeEventCenter.kt | 42 + .../core/realtime/RealtimeManager.kt | 14 + .../nativeapp/core/realtime/RealtimeModels.kt | 38 + .../feature/admin/AdminAccessRepository.kt | 46 + .../feature/admin/AdminAccessViewModel.kt | 38 + .../nativeapp/feature/admin/AdminScreen.kt | 39 + .../feature/adult/AdultRepository.kt | 70 + .../nativeapp/feature/adult/AdultScreen.kt | 43 + .../nativeapp/feature/adult/AdultViewModel.kt | 26 + .../nativeapp/feature/auth/AuthRepository.kt | 177 ++ .../nativeapp/feature/auth/AuthScreen.kt | 140 ++ .../nativeapp/feature/auth/AuthViewModel.kt | 218 ++ .../feature/auth/ForgotPasswordScreen.kt | 58 + .../nativeapp/feature/auth/RegisterScreen.kt | 66 + .../nativeapp/feature/chat/ChatModels.kt | 122 + .../nativeapp/feature/chat/ChatRepository.kt | 279 +++ .../nativeapp/feature/chat/ChatScreen.kt | 414 ++++ .../nativeapp/feature/chat/ChatViewModel.kt | 525 +++++ .../feature/falukant/FalukantModels.kt | 144 ++ .../feature/falukant/FalukantRepository.kt | 219 ++ .../feature/falukant/FalukantScreen.kt | 483 ++++ .../feature/falukant/FalukantViewModel.kt | 287 +++ .../nativeapp/feature/forum/ForumModels.kt | 70 + .../feature/forum/ForumRepository.kt | 83 + .../nativeapp/feature/forum/ForumScreens.kt | 236 ++ .../feature/forum/ForumViewModels.kt | 201 ++ .../feature/gallery/GalleryModels.kt | 36 + .../feature/gallery/GalleryRepository.kt | 162 ++ .../feature/gallery/GalleryScreen.kt | 438 ++++ .../gallery/GalleryUploadRequestFactory.kt | 29 + .../feature/gallery/GalleryViewModel.kt | 264 +++ .../nativeapp/feature/home/HomeModels.kt | 89 + .../nativeapp/feature/home/HomeRepository.kt | 120 + .../nativeapp/feature/home/HomeScreen.kt | 149 ++ .../nativeapp/feature/home/HomeViewModel.kt | 43 + .../feature/legal/LegalRepository.kt | 22 + .../nativeapp/feature/legal/LegalScreen.kt | 25 + .../nativeapp/feature/legal/LegalViewModel.kt | 7 + .../feature/match3/Match3Repository.kt | 55 + .../nativeapp/feature/match3/Match3Screen.kt | 65 + .../feature/match3/Match3ViewModel.kt | 89 + .../feature/minigames/MinigamesScreen.kt | 26 + .../feature/personal/PersonalModels.kt | 42 + .../feature/personal/PersonalRepository.kt | 99 + .../feature/personal/PersonalScreen.kt | 194 ++ .../feature/personal/PersonalViewModel.kt | 169 ++ .../publiccontent/PublicContentModels.kt | 29 + .../publiccontent/PublicContentRepository.kt | 29 + .../publiccontent/PublicContentScreens.kt | 105 + .../publiccontent/PublicContentViewModel.kt | 27 + .../nativeapp/feature/push/PushRepository.kt | 60 + .../nativeapp/feature/push/PushScreen.kt | 74 + .../nativeapp/feature/push/PushViewModel.kt | 74 + .../push/YourPartFirebaseMessagingService.kt | 50 + .../feature/settings/SettingsModels.kt | 180 ++ .../feature/settings/SettingsRepository.kt | 306 +++ .../feature/settings/SettingsScreen.kt | 768 +++++++ .../feature/settings/SettingsViewModel.kt | 268 +++ .../nativeapp/feature/social/FriendsModels.kt | 27 + .../feature/social/FriendsRepository.kt | 80 + .../nativeapp/feature/social/FriendsScreen.kt | 192 ++ .../feature/social/FriendsViewModel.kt | 90 + .../nativeapp/feature/social/SocialModels.kt | 74 + .../feature/social/SocialRepository.kt | 156 ++ .../nativeapp/feature/social/SocialScreens.kt | 570 +++++ .../feature/social/SocialViewModels.kt | 304 +++ .../nativeapp/feature/taxi/TaxiRepository.kt | 48 + .../nativeapp/feature/taxi/TaxiScreen.kt | 61 + .../nativeapp/feature/taxi/TaxiViewModel.kt | 35 + .../feature/vocab/VocabRepository.kt | 117 + .../nativeapp/feature/vocab/VocabScreen.kt | 188 ++ .../nativeapp/feature/vocab/VocabViewModel.kt | 233 ++ .../nativeapp/ui/YourPartNativeApp.kt | 847 ++++++- .../nativeapp/ui/components/YpAvatar.kt | 48 + .../nativeapp/ui/components/YpButton.kt | 56 + .../nativeapp/ui/components/YpDialog.kt | 40 + .../nativeapp/ui/components/YpStateCard.kt | 61 + .../nativeapp/ui/components/YpStatusChip.kt | 53 + .../nativeapp/ui/components/YpTextField.kt | 40 + .../nativeapp/ui/navigation/AppDestination.kt | 256 +++ .../nativeapp/ui/navigation/MenuPolicy.kt | 42 + .../ui/navigation/RealtimeDebugDestination.kt | 9 + .../nativeapp/ui/screens/PlaceholderScreen.kt | 37 + .../ui/screens/RealtimeDebugScreen.kt | 70 + .../de/yourpart/nativeapp/ui/theme/Color.kt | 27 + .../de/yourpart/nativeapp/ui/theme/Shape.kt | 15 + .../de/yourpart/nativeapp/ui/theme/Spacing.kt | 20 + .../de/yourpart/nativeapp/ui/theme/Theme.kt | 63 +- .../yourpart/nativeapp/ui/theme/Typography.kt | 53 + .../res/drawable/ic_launcher_foreground.xml | 0 .../native/app/src/main/res/values/colors.xml | 0 .../app/src/main/res/values/strings.xml | 0 .../native/app/src/main/res/values/styles.xml | 0 .../res/xml/network_security_config.xml | 4 + .../core/network/AuthHeaderInterceptorTest.kt | 120 + .../core/network/BackendErrorParserTest.kt | 20 + .../network/NetworkRequestExecutorTest.kt | 33 + .../core/realtime/DaemonMessageParserTest.kt | 28 + .../feature/auth/AuthRepositoryTest.kt | 69 + .../feature/falukant/FalukantModelsTest.kt | 42 + .../GalleryUploadRequestFactoryTest.kt | 43 + .../settings/SettingsRepositoryTest.kt | 54 + android/native/build.gradle.kts | 8 +- android/native/gradle.properties | 0 .../native/gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 45457 bytes .../gradle/wrapper/gradle-wrapper.properties | 7 + android/native/gradlew | 251 +++ android/native/gradlew.bat | 94 + android/native/settings.gradle.kts | 0 android/package-lock.json | 1748 +++++++++++++- android/package.json | 3 +- backend/README_SCHEMA_UPDATES.md | 0 backend/README_TAX.md | 0 backend/app.js | 2 + backend/check-connections.js | 0 backend/cleanup-connections.js | 0 backend/config/chatBridge.json | 0 backend/config/config.json | 0 backend/config/loadEnv.js | 0 backend/config/sequelize-cli.cjs | 0 backend/controllers/adminController.js | 0 backend/controllers/authController.js | 3 +- backend/controllers/blogController.js | 0 backend/controllers/calendarController.js | 0 backend/controllers/chatController.js | 0 backend/controllers/contactController.js | 0 backend/controllers/dashboardController.js | 0 backend/controllers/falukantController.js | 0 backend/controllers/forumController.js | 0 backend/controllers/friendshipController.js | 0 backend/controllers/match3Controller.js | 0 backend/controllers/minigamesController.js | 0 backend/controllers/moderationController.js | 0 backend/controllers/navigationController.js | 0 backend/controllers/newsController.js | 0 .../controllers/pushNotificationController.js | 34 + backend/controllers/settingsController.js | 6 + .../controllers/socialnetworkController.js | 12 + backend/controllers/taxiController.js | 0 .../controllers/taxiHighscoreController.js | 0 backend/controllers/taxiMapController.js | 0 backend/controllers/termineController.js | 0 backend/controllers/vocabController.js | 0 backend/daemonServer.js | 0 backend/data/lesson-checkpoints.json | 0 backend/data/termine.csv | 0 backend/env.example | 0 backend/env.local.example | 0 backend/fix-index-fields-v2.js | 0 backend/fix-index-fields.js | 0 backend/fix-pgcrypto-extension.js | 0 backend/jobs/politicalBenefitsTick.js | 0 backend/jobs/sessionCleanup.js | 0 backend/locales/de.json | 0 backend/locales/en.json | 0 backend/middleware/authMiddleware.js | 0 backend/middleware/uploadMiddleware.js | 33 + backend/migrations-active/.gitkeep | 0 .../20260515000000-add-oauth-identities.cjs | 0 ...5-add-answer-fields-to-contact_message.cjs | 0 ...last-nobility-advance-to-falukant-user.cjs | 0 ...000-add-character-name-to-notification.cjs | 0 ...6000000-add-weather-type-to-production.cjs | 0 ...216000100-add-product-quality-to-stock.cjs | 0 ...1220000000-add-reputation-to-character.cjs | 0 .../20251220001000-add-reputation-actions.cjs | 0 ...2000-backfill-reputation-action-window.cjs | 0 ...20251220003000-seed-reputation-actions.cjs | 0 ...51222000000-fix-vehicle-condition-null.cjs | 0 ...00-add-may-repair-vehicles-to-director.cjs | 0 ...0251230000000-add-vocab-trainer-tables.cjs | 0 ...0001000-add-vocab-chapters-and-lexemes.cjs | 0 ...260101000000-add-tax-percent-to-region.cjs | 0 ...0002-add-neutral-sell-costs-to-product.cjs | 0 .../20260115000000-add-vocab-courses.cjs | 0 ...0115000001-add-vocab-grammar-exercises.cjs | 0 .../20260115000002-add-course-structure.cjs | 0 ...260115000003-add-course-learning-goals.cjs | 0 ...0000-add-notification-user-shown-index.cjs | 0 ...elationship-state-and-child-legitimacy.cjs | 0 ...0320001000-backfill-relationship-state.cjs | 0 ...60320002000-add-servants-to-user-house.cjs | 0 ...00-add-household-tension-to-user-house.cjs | 0 .../20260323010000-expand-debtors-prism.cjs | 0 ...-transport-guards-and-raid-underground.cjs | 0 ...60325000000-add-vocab-lesson-didactics.cjs | 0 ...010000-expand-user-param-value-to-text.cjs | 0 ...260326000000-add-adult-area-to-gallery.cjs | 0 .../20260326001000-create-erotic-video.cjs | 0 ...6002000-add-is-adult-only-to-chat-room.cjs | 0 ...326003000-add-adult-content-moderation.cjs | 0 ...0327000000-add-erotic-video-visibility.cjs | 0 ...20260330000000-add-character-pregnancy.cjs | 0 ...1000000-add-vocab-lesson-phase1-fields.cjs | 0 ...add-vocab-course-progress-lesson-state.cjs | 0 ...000-politics-benefits-and-daily-salary.cjs | 0 ...0000-add-ui-locale-fr-user-param-value.cjs | 0 ...dd-certificate-productions-count-since.cjs | 0 ...402180000-political-benefits-mechanics.cjs | 0 ...20000-political-office-hierarchy-level.cjs | 0 ...tionship-state-scandal-extra-daily-pct.cjs | 0 ...hip-state-marriage-satisfaction-column.cjs | 0 .../20260417000000-add-vocab-srs-item.cjs | 0 .../add_trigger_for_hashedId.cjs | 0 ...ndexes-for-director-proposals-rollback.sql | 0 ...000-add-indexes-for-director-proposals.sql | 0 .../20260716000000-create-user-block.sql | 16 + ...260716010000-create-push-notifications.sql | 24 + backend/migrations/README.md | 0 .../add_chat_room_dialog_fields.sql | 0 .../migrations/add_condition_to_vehicle.sql | 0 .../add_is_heir_to_child_relation.sql | 0 .../make_transport_product_nullable.sql | 0 .../2023xxxxxx-change-email-to-bytea.js | 0 backend/models/associations.js | 0 backend/models/chat/index.js | 0 backend/models/chat/rights.js | 0 backend/models/chat/room.js | 0 backend/models/chat/room_type.js | 0 backend/models/chat/user.js | 0 backend/models/chat/user_rights.js | 0 backend/models/community/blog.js | 0 backend/models/community/blog_post.js | 0 backend/models/community/calendar_event.js | 0 backend/models/community/diary.js | 0 backend/models/community/diary_history.js | 0 .../models/community/erotic_content_report.js | 0 backend/models/community/erotic_video.js | 0 .../erotic_video_image_visibility.js | 0 .../community/erotic_video_visibility_user.js | 0 backend/models/community/folder.js | 0 .../community/folder_image_visibility.js | 0 .../community/folder_visibility_user.js | 0 backend/models/community/friendship.js | 0 backend/models/community/guestbook.js | 0 backend/models/community/image.js | 0 .../community/image_image_visibility.js | 0 .../models/community/image_visibility_user.js | 0 backend/models/community/interest.js | 0 backend/models/community/oauth_identity.js | 0 .../community/push_notification_device.js | 14 + .../community/push_notification_setting.js | 16 + backend/models/community/user.js | 0 backend/models/community/user_block.js | 7 + backend/models/community/user_dashboard.js | 0 backend/models/community/user_param.js | 0 .../models/community/user_param_visibility.js | 0 backend/models/community/user_right.js | 0 backend/models/community/vocab_course.js | 0 .../community/vocab_course_enrollment.js | 0 .../models/community/vocab_course_lesson.js | 0 .../models/community/vocab_course_progress.js | 0 .../community/vocab_grammar_exercise.js | 0 .../vocab_grammar_exercise_progress.js | 0 .../community/vocab_grammar_exercise_type.js | 0 backend/models/community/vocab_srs_item.js | 0 backend/models/falukant/data/branch.js | 0 backend/models/falukant/data/buyable_house.js | 0 backend/models/falukant/data/buyable_stock.js | 0 backend/models/falukant/data/candidate.js | 0 backend/models/falukant/data/character.js | 0 .../models/falukant/data/child_relation.js | 0 .../falukant/data/church_application.js | 0 backend/models/falukant/data/church_office.js | 0 backend/models/falukant/data/credit.js | 0 backend/models/falukant/data/debtors_prism.js | 0 backend/models/falukant/data/director.js | 0 .../models/falukant/data/director_proposal.js | 0 backend/models/falukant/data/election.js | 0 .../models/falukant/data/election_result.js | 0 .../falukant/data/falukant_character_trait.js | 0 backend/models/falukant/data/inventory.js | 0 backend/models/falukant/data/learning.js | 0 .../models/falukant/data/marriage_proposal.js | 0 .../data/occupied_political_office.js | 0 backend/models/falukant/data/party.js | 0 .../falukant/data/partyInvitedNobility.js | 0 .../falukant/data/political_appointment.js | 0 .../data/political_benefit_last_tick.js | 0 .../models/falukant/data/political_office.js | 0 .../models/falukant/data/product_knowledge.js | 0 backend/models/falukant/data/production.js | 0 backend/models/falukant/data/region.js | 0 .../models/falukant/data/region_distance.js | 0 .../falukant/data/region_tax_history.js | 0 backend/models/falukant/data/relationship.js | 0 .../falukant/data/relationship_state.js | 0 backend/models/falukant/data/stock.js | 0 .../falukant/data/town_product_worth.js | 0 backend/models/falukant/data/transport.js | 0 backend/models/falukant/data/underground.js | 0 backend/models/falukant/data/user.js | 0 backend/models/falukant/data/user_house.js | 0 backend/models/falukant/data/vehicle.js | 0 backend/models/falukant/data/vote.js | 0 backend/models/falukant/data/weather.js | 0 backend/models/falukant/log/dayproduction.js | 0 backend/models/falukant/log/daysell.js | 0 .../models/falukant/log/election_history.js | 0 .../models/falukant/log/health_activity.js | 0 backend/models/falukant/log/moneyflow.js | 0 backend/models/falukant/log/notification.js | 0 .../falukant/log/political_office_history.js | 0 .../falukant/log/product_price_history.js | 0 .../models/falukant/log/promotional_gift.js | 0 .../falukant/log/relationship_change_log.js | 0 .../models/falukant/log/reputation_action.js | 0 .../predefine/church_office_requirement.js | 0 .../models/falukant/predefine/firstname.js | 0 backend/models/falukant/predefine/lastname.js | 0 .../predefine/political_office_benefit.js | 0 .../political_office_prerequisite.js | 0 .../promotional_gift_character_trait.js | 0 .../predefine/promotional_gift_mood.js | 0 backend/models/falukant/type/banquette.js | 0 backend/models/falukant/type/branch.js | 0 .../models/falukant/type/character_trait.js | 0 .../falukant/type/church_office_type.js | 0 backend/models/falukant/type/house.js | 0 .../models/falukant/type/learn_recipient.js | 0 backend/models/falukant/type/mood.js | 0 backend/models/falukant/type/music.js | 0 backend/models/falukant/type/party.js | 0 .../type/political_office_benefit_type.js | 0 .../falukant/type/political_office_type.js | 0 backend/models/falukant/type/product.js | 0 .../falukant/type/product_weather_effect.js | 0 .../models/falukant/type/promotional_gift.js | 0 backend/models/falukant/type/region.js | 0 backend/models/falukant/type/relationship.js | 0 .../models/falukant/type/reputation_action.js | 0 backend/models/falukant/type/stock.js | 0 backend/models/falukant/type/title_benefit.js | 0 .../models/falukant/type/title_of_nobility.js | 0 .../models/falukant/type/title_requirement.js | 0 backend/models/falukant/type/underground.js | 0 backend/models/falukant/type/vehicle.js | 0 backend/models/falukant/type/weather.js | 0 backend/models/forum/forum.js | 0 .../models/forum/forum_forum_permission.js | 0 backend/models/forum/forum_permission.js | 0 backend/models/forum/forum_user_permission.js | 0 backend/models/forum/message.js | 0 backend/models/forum/message_history.js | 0 backend/models/forum/message_image.js | 0 backend/models/forum/title.js | 0 backend/models/forum/title_history.js | 0 backend/models/index.js | 0 backend/models/logs/login.js | 0 backend/models/match3/campaign.js | 0 backend/models/match3/level.js | 0 backend/models/match3/levelTileType.js | 0 backend/models/match3/objective.js | 0 backend/models/match3/tileType.js | 0 backend/models/match3/userLevelProgress.js | 0 backend/models/match3/userProgress.js | 0 backend/models/minigames/taxiHighscore.js | 0 backend/models/service/contactmessage.js | 0 backend/models/service/minigame_campaign.js | 0 .../models/service/minigame_campaign_level.js | 0 .../models/service/minigame_user_progress.js | 0 backend/models/taxi/index.js | 0 backend/models/taxi/taxiGameState.js | 0 backend/models/taxi/taxiLevelStats.js | 0 backend/models/taxi/taxiMap.js | 0 backend/models/taxi/taxiMapTile.js | 0 backend/models/taxi/taxiMapTileHouse.js | 0 backend/models/taxi/taxiMapTileStreet.js | 0 backend/models/taxi/taxiMapType.js | 0 backend/models/taxi/taxiStreetName.js | 0 backend/models/trigger.js | 0 backend/models/type/image_visibility.js | 0 backend/models/type/interest.js | 0 backend/models/type/interest_translation.js | 0 backend/models/type/settings.js | 0 backend/models/type/user_param.js | 0 backend/models/type/user_param_value.js | 0 backend/models/type/user_param_visibility.js | 0 backend/models/type/user_right.js | 0 backend/models/type/widget_type.js | 0 backend/package-lock.json | 1652 +++++++++++++- backend/package.json | 1 + backend/routers/adminRouter.js | 0 backend/routers/authRouter.js | 0 backend/routers/blogRouter.js | 7 +- backend/routers/calendarRouter.js | 0 backend/routers/chatRouter.js | 0 backend/routers/contactRouter.js | 0 backend/routers/dashboardRouter.js | 0 backend/routers/falukantRouter.js | 0 backend/routers/forumRouter.js | 0 backend/routers/friendshipRouter.js | 0 backend/routers/match3Router.js | 0 backend/routers/modelsProxyRouter.js | 0 backend/routers/moderationRouter.js | 0 backend/routers/navigationRouter.js | 0 backend/routers/newsRouter.js | 0 backend/routers/pushNotificationRouter.js | 12 + backend/routers/settingsRouter.js | 7 +- backend/routers/socialnetworkRouter.js | 15 +- backend/routers/taxiHighscoreRouter.js | 0 backend/routers/taxiMapRouter.js | 0 backend/routers/taxiRouter.js | 0 backend/routers/termineRouter.js | 0 backend/routers/vocabRouter.js | 0 backend/scripts/add-bisaya-week1-lessons.js | 0 ...d-grammar-exercises-to-existing-courses.js | 0 backend/scripts/analyze-bisaya-courses.cjs | 0 backend/scripts/analyze-bisaya-courses.js | 0 .../scripts/apply-bisaya-course-refresh.js | 0 backend/scripts/bisaya-course-phase1.js | 0 .../scripts/bisaya-course-phase2-pedagogy.js | 0 .../scripts/bisaya-course-phase3-extension.js | 0 .../scripts/bisaya-course-phase4-extension.js | 0 .../scripts/bisaya-course-phase5-extension.js | 0 backend/scripts/bisaya-course-plan-24-43.js | 22 +- backend/scripts/count-per-lesson-24-43.mjs | 0 backend/scripts/count_corepatterns.js | 0 .../scripts/create-bisaya-course-content.js | 32 +- backend/scripts/create-bisaya-course.js | 52 +- ...create-german-for-bisaya-course-content.js | 0 .../create-german-for-bisaya-course.js | 0 .../scripts/dedupe-bisaya-family-courses.js | 0 backend/scripts/diag-srs-stats.js | 0 .../scripts/extend-bisaya-course-phase3.js | 0 .../scripts/extend-bisaya-course-phase4.js | 0 .../scripts/extend-bisaya-course-phase5.js | 0 .../extend-german-for-bisaya-course-phase3.js | 0 .../extend-german-for-bisaya-course-phase4.js | 0 .../extend-german-for-bisaya-course-phase5.js | 0 backend/scripts/falukant-moneyflow-report.mjs | 0 .../falukant-town-product-worth-stats.mjs | 0 backend/scripts/find-duplicate-patterns.mjs | 0 backend/scripts/find-exercise-by-text.cjs | 0 backend/scripts/fix-bisaya-review-field.mjs | 0 backend/scripts/fix-srs-immediate-due.js | 0 backend/scripts/fix-srs-queries-plain.sql | 0 backend/scripts/fix-srs-queries.sql | 0 .../scripts/generate-lesson-checkpoints.cjs | 0 backend/scripts/german-for-bisaya-phase1.js | 0 .../german-for-bisaya-phase2-pedagogy.js | 0 .../german-for-bisaya-phase3-extension.js | 0 .../german-for-bisaya-phase4-extension.js | 0 .../german-for-bisaya-phase5-extension.js | 0 .../scripts/migrate-bisaya-zahlen-split.js | 2 +- .../normalize-core-pattern-alternatives.js | 0 .../normalize-exercise-answer-alternatives.js | 0 backend/scripts/print-lesson-patterns.mjs | 0 .../scripts/repair-bisaya-children-lessons.js | 0 ...repair-bisaya-feelings-emotions-lessons.js | 0 .../repair-bisaya-number-answer-pairs.js | 3 + backend/scripts/repair-fix-body-mc.cjs | 0 ...air-invalid-srs-fragment-sentence-pairs.js | 0 backend/scripts/repair-remove-sentence-mc.js | 0 backend/scripts/sync-vocab-course-content.js | 0 backend/scripts/update-bisaya-didactics.js | 36 +- .../scripts/update-week1-bisaya-exercises.js | 0 backend/server.js | 0 backend/services/BaseService.js | 0 backend/services/ContactService.js | 0 backend/services/adminService.js | 0 backend/services/authService.js | 0 backend/services/blogService.js | 0 backend/services/calendarService.js | 0 backend/services/chatService.js | 2 + backend/services/chatTcpBridge.js | 0 backend/services/dashboardService.js | 0 backend/services/emailService.js | 0 .../falukantPoliticalPowersService.js | 0 backend/services/falukantService.js | 6 +- backend/services/forumService.js | 0 backend/services/friendshipService.js | 0 backend/services/match3Service.js | 0 backend/services/minigamesService.js | 0 backend/services/modelsProxyService.js | 0 backend/services/moderationService.js | 0 backend/services/newsService.js | 0 backend/services/npcCreationJobService.js | 0 backend/services/oauthService.js | 16 +- backend/services/pushNotificationService.js | 108 + backend/services/settingsService.js | 124 + backend/services/socialnetworkService.js | 14 + backend/services/taxiHighscoreService.js | 0 backend/services/taxiMapService.js | 0 backend/services/taxiService.js | 0 backend/services/vocabService.js | 0 backend/services/webSocketService.js | 0 .../sql/add-native-language-to-courses.sql | 0 backend/sql/add-speaking-exercise-types.sql | 0 backend/sql/add_adult_area_to_gallery.sql | 0 backend/sql/add_adult_content_moderation.sql | 0 .../sql/add_adult_verification_user_param.sql | 0 .../add_character_name_to_notification.sql | 0 backend/sql/add_character_pregnancy.sql | 0 .../sql/add_director_auto_adjust_income.sql | 0 ...nt_user_last_political_daily_salary_on.sql | 0 .../add_household_tension_to_user_house.sql | 0 .../sql/add_is_adult_only_to_chat_room.sql | 0 .../add_language_assistant_user_params.sql | 0 .../add_political_office_hierarchy_level.sql | 0 backend/sql/add_product_quality_to_stock.sql | 0 ...elationship_state_and_child_legitimacy.sql | 0 backend/sql/add_servants_to_user_house.sql | 0 ..._transport_guards_and_raid_underground.sql | 0 ...dd_underground_investigate_affair_type.sql | 0 .../add_underground_raid_transport_type.sql | 0 backend/sql/add_vocab_lesson_didactics.sql | 0 .../sql/add_vocab_lesson_phase1_fields.sql | 0 backend/sql/add_vocab_srs_item.sql | 0 .../sql/add_weather_type_to_production.sql | 0 .../sql/add_worker_schedule_read_right.sql | 0 .../sql/backfill_bisaya_phase2_pedagogy.sql | 0 backend/sql/backfill_relationship_state.sql | 0 backend/sql/balance_carrot_product.sql | 0 ...line-sequelize-meta-migrations-archive.sql | 0 ...cleanup_orphaned_user_param_visibility.sql | 0 backend/sql/create-vocab-courses.sql | 0 backend/sql/create_erotic_video.sql | 0 .../falukant_moneyflow_by_activity.sql | 0 .../falukant_moneyflow_window_totals.sql | 0 .../falukant_town_product_worth_stats.sql | 0 backend/sql/expand_debtors_prism.sql | 0 .../sql/expand_user_param_value_to_text.sql | 0 ...extend_bisaya_course_phase3_to_6_weeks.sql | 0 ...xtend_bisaya_course_phase4_to_3_months.sql | 0 ..._bisaya_course_phase5_to_stabilization.sql | 0 ..._political_office_benefit_align_schema.sql | 0 .../falukant_political_office_benefits.sql | 0 ...lukant_political_office_benefits_steps.sql | 0 ...lukant_political_office_extra_benefits.sql | 0 .../sql/fix_schema_drift_falukant_compat.sql | 0 .../sql/rebalance_product_certificates.sql | 0 backend/sql/seed_dashboard_widget_types.sql | 0 .../update-bisaya-babay-multiple-choice.sql | 0 backend/sql/update-vocab-courses-existing.sql | 0 .../update_nobility_requirements_extended.sql | 0 backend/sql/update_product_sell_costs.sql | 0 backend/sync-database.js | 0 backend/sync-tables-only.js | 0 backend/tools/dumpGiftsDebug.js | 0 backend/tools/repairPromotionalGifts.js | 0 backend/tools/simulate_getGiftCost.js | 0 backend/tools/testGiftCost.js | 0 backend/utils/checkRightsTable.js | 0 backend/utils/cleanupDatabaseConstraints.js | 0 backend/utils/crypto.js | 0 backend/utils/encryption.js | 0 .../utils/falukant/falukantProductEconomy.js | 0 .../falukant/initializeFalukantPredefines.js | 0 .../utils/falukant/initializeFalukantTypes.js | 0 backend/utils/fixMatch3Data.js | 0 backend/utils/i18n.js | 0 backend/utils/initializeChat.js | 0 backend/utils/initializeFalukant.js | 0 backend/utils/initializeForum.js | 0 backend/utils/initializeImageTypes.js | 0 backend/utils/initializeMatch3.js | 0 backend/utils/initializeMatch3TileTypes.js | 0 backend/utils/initializeSettings.js | 0 backend/utils/initializeTaxi.js | 0 backend/utils/initializeTypes.js | 0 backend/utils/initializeUserRights.js | 0 backend/utils/initializeWidgetTypes.js | 0 backend/utils/locales/de.json | 0 backend/utils/locales/en.json | 0 backend/utils/redis.js | 0 backend/utils/sequelize.js | 0 backend/utils/socket.js | 18 +- backend/utils/storagePaths.js | 0 backend/utils/syncDatabase.js | 0 backend/utils/updateExistingMatch3Levels.js | 0 .../utils/updateMatch3LevelsWithTileTypes.js | 0 backend/utils/userdata.js | 0 build-frontend.sh | 0 check-vocab-schema.sql | 0 cmake/install-config.cmake | 0 daemon.conf | 0 daemon.log | 0 docs/ADSENSE_PREAPPLY_REVIEW_2026-04-27.md | 0 docs/ADSENSE_READINESS.md | 0 docs/ADSENSE_UGC_MODERATION.md | 0 docs/ADULT_SOCIAL_EROTIC_CONCEPT.md | 0 docs/BISAYA_4_WEEK_COURSE.md | 0 docs/BISAYA_COURSE_EXAMPLE.md | 0 ...YA_COURSE_EXPANSION_IMPLEMENTATION_SPEC.md | 0 docs/BISAYA_LESSON_PLAN_24_153.md | 0 ...A_SITE_LOCALIZATION_IMPLEMENTATION_SPEC.md | 0 ...FALUKANT_CHURCH_ADVANCEMENT_DAEMON_SPEC.md | 0 docs/FALUKANT_DEBTORS_PRISON_CONCEPT.md | 0 docs/FALUKANT_DEBTORS_PRISON_DAEMON_SPEC.md | 0 docs/FALUKANT_LOVERS_CONCEPT.md | 0 docs/FALUKANT_LOVERS_DAEMON_HANDOFF.md | 0 docs/FALUKANT_LOVERS_DAEMON_SPEC.md | 0 .../FALUKANT_LOVERS_IMPLEMENTATION_BACKLOG.md | 0 docs/FALUKANT_LOVERS_TECHNICAL_CONCEPT.md | 0 ...FALUKANT_LOVERS_UNDERGROUND_DAEMON_SPEC.md | 0 ...ALUKANT_MARRIAGE_HOUSEHOLD_CONTROL_SPEC.md | 0 ...UKANT_MARRIAGE_HOUSEHOLD_DAEMON_HANDOFF.md | 0 docs/FALUKANT_NOBILITY_ADVANCEMENT_SPEC.md | 0 ...UKANT_POLITICAL_BENEFITS_DAEMON_UI_SPEC.md | 0 ...T_PREGNANCY_SCHEDULED_BIRTH_DAEMON_SPEC.md | 0 docs/FALUKANT_PRODUCTION_CERTIFICATE.md | 0 docs/FALUKANT_PRODUCTION_CERTIFICATE_SPEC.md | 0 docs/FALUKANT_SERVANTS_CONCEPT.md | 0 docs/FALUKANT_SERVANTS_IMPLEMENTATION_SPEC.md | 0 docs/FALUKANT_TRANSPORT_RAIDS_SPEC.md | 0 docs/FALUKANT_UI_WEBSOCKET.md | 0 ...UKANT_UNDERGROUND_AFFAIR_DAEMON_HANDOFF.md | 0 docs/FALUKANT_UNDERGROUND_AFFAIR_PLAN.md | 0 docs/GERMAN_FOR_BISAYA_IMPLEMENTATION_SPEC.md | 0 docs/KONZEPT_UI_SPRACHE_FRANZOESISCH.md | 0 docs/LEGACY_CPP_WORKERS.md | 0 docs/OLLAMA_LANGUAGE_ASSISTANT_SETUP.md | 0 docs/UI_REDESIGN_PLAN.md | 0 docs/UMLAUT_NORMALIZATION_PLAN.md | 0 docs/USABILITY_AUDIT_U1.md | 0 docs/USABILITY_CONCEPT.md | 0 docs/VOCAB_TRAINER_DIDACTIC_CONCEPT.md | 0 dump.rdb | Bin frontend/.env.android.example | 0 frontend/.env.local | 0 frontend/.env.production | 0 frontend/.env.server | 0 frontend/README_MINIGAMES.md | 0 frontend/dump.rdb | Bin frontend/index.html | 0 frontend/package-lock.json | 0 frontend/package.json | 0 .../.well-known/assetlinks.json.example | 12 + frontend/public/ads.txt | 0 frontend/public/assets/index-B4fysdFj.js | 0 frontend/public/assets/index-B7qXuEZt.css | 0 frontend/public/assets/index-BLkCbvUa.css | 0 frontend/public/assets/index-BeXHiB-n.js | 0 frontend/public/assets/index-C2z2YL6l.js | 0 frontend/public/assets/index-z5H98VOo.css | 0 frontend/public/assets/message24-DprhQEAI.png | Bin frontend/public/audio-worklet-processor.js | 0 frontend/public/draco/gltf/draco_decoder.js | 0 frontend/public/draco/gltf/draco_decoder.wasm | Bin .../public/draco/gltf/draco_wasm_wrapper.js | 0 frontend/public/favicon.ico | Bin .../public/images/backgrounds/welcome.png | Bin .../public/images/falukant/avatar/female.png | Bin .../images/falukant/avatar/female00.jpg | Bin .../images/falukant/avatar/female01.jpg | Bin .../images/falukant/avatar/female02.jpg | Bin .../images/falukant/avatar/female03.png | Bin .../public/images/falukant/avatar/male.png | Bin .../public/images/falukant/avatar/male00.jpg | Bin .../public/images/falukant/avatar/male01.jpg | Bin .../public/images/falukant/avatar/male02.jpg | Bin .../public/images/falukant/avatar/male03.png | Bin .../images/falukant/backgrounds/bg1.png | Bin .../images/falukant/backgrounds/bg1_opt.png | Bin .../images/falukant/backgrounds/bg2.png | Bin .../images/falukant/backgrounds/bg2_opt.png | Bin frontend/public/images/falukant/houses.png | Bin frontend/public/images/falukant/map.png | Bin frontend/public/images/falukant/map_old.png | Bin frontend/public/images/icons/accept16.png | Bin frontend/public/images/icons/accept24.png | Bin frontend/public/images/icons/activity.png | Bin .../public/images/icons/arrowdownblack.png | Bin .../public/images/icons/arrowdowngray.png | Bin frontend/public/images/icons/ban16.png | Bin frontend/public/images/icons/ban24.png | Bin frontend/public/images/icons/block16.png | Bin frontend/public/images/icons/block24.png | Bin frontend/public/images/icons/calendar.png | Bin frontend/public/images/icons/cam.png | Bin frontend/public/images/icons/cam16.png | Bin frontend/public/images/icons/cam24.png | Bin .../public/images/icons/cancel-friendship.png | Bin frontend/public/images/icons/chat.png | Bin frontend/public/images/icons/chaticon16.png | Bin frontend/public/images/icons/chaticon24.png | Bin frontend/public/images/icons/cloud.png | Bin frontend/public/images/icons/cloud16.png | Bin frontend/public/images/icons/cloud24.png | Bin frontend/public/images/icons/colorpicker.png | Bin frontend/public/images/icons/coming-soon.png | 0 frontend/public/images/icons/contact16.png | Bin frontend/public/images/icons/contact24.png | Bin frontend/public/images/icons/contactform.png | Bin frontend/public/images/icons/decline16.png | Bin frontend/public/images/icons/decline24.png | Bin frontend/public/images/icons/dice16.png | Bin frontend/public/images/icons/dice24.png | Bin frontend/public/images/icons/enter16.png | Bin frontend/public/images/icons/enter24.png | Bin frontend/public/images/icons/exit16.png | Bin frontend/public/images/icons/exit24.png | Bin frontend/public/images/icons/falukant.png | Bin frontend/public/images/icons/falukant/age.png | Bin .../public/images/icons/falukant/bank.jpg | Bin .../public/images/icons/falukant/bank.png | Bin .../public/images/icons/falukant/branches.png | Bin .../public/images/icons/falukant/church.jpg | Bin .../public/images/icons/falukant/darknet.jpg | Bin .../public/images/icons/falukant/darknet.png | Bin .../public/images/icons/falukant/director.png | Bin .../images/icons/falukant/directors.jpg | Bin .../images/icons/falukant/education.jpg | Bin .../public/images/icons/falukant/events.png | Bin .../public/images/icons/falukant/family.jpg | Bin .../public/images/icons/falukant/family.png | Bin .../public/images/icons/falukant/german.zip | Bin .../public/images/icons/falukant/health.jpg | Bin .../public/images/icons/falukant/house.jpg | Bin .../public/images/icons/falukant/house.png | Bin .../public/images/icons/falukant/messages.png | Bin .../images/icons/falukant/messages16.png | Bin .../images/icons/falukant/messages24.png | Bin .../images/icons/falukant/moneyhistory.jpg | Bin .../images/icons/falukant/moneyhistory.png | Bin .../public/images/icons/falukant/nobility.jpg | Bin .../public/images/icons/falukant/overview.jpg | Bin .../public/images/icons/falukant/overview.png | Bin .../public/images/icons/falukant/politics.jpg | Bin .../public/images/icons/falukant/politics.png | Bin .../images/icons/falukant/product-carrot.png | Bin .../images/icons/falukant/product-fish.png | Bin .../images/icons/falukant/product-grain.png | Bin .../images/icons/falukant/product-leather.png | Bin .../images/icons/falukant/product-meat.png | Bin .../images/icons/falukant/product-wheat.png | Bin .../images/icons/falukant/relationship-.png | Bin .../icons/falukant/relationship-engaged.png | Bin .../icons/falukant/relationship-married.png | Bin .../icons/falukant/relationship-widow.png | Bin .../icons/falukant/relationship-wooing.png | Bin .../images/icons/falukant/relationships.png | Bin .../images/icons/falukant/reputation.jpg | Bin .../images/icons/falukant/reputation.png | Bin .../images/icons/falukant/schooling.png | Bin .../images/icons/falukant/shortmap/bank.png | Bin .../images/icons/falukant/shortmap/church.png | Bin .../icons/falukant/shortmap/darknet.png | Bin .../icons/falukant/shortmap/directors.png | Bin .../icons/falukant/shortmap/education.png | Bin .../images/icons/falukant/shortmap/family.png | Bin .../images/icons/falukant/shortmap/guild.png | Bin .../images/icons/falukant/shortmap/health.png | Bin .../images/icons/falukant/shortmap/house.png | Bin .../icons/falukant/shortmap/moneyhistory.png | Bin .../icons/falukant/shortmap/nobility.png | Bin .../icons/falukant/shortmap/overview.png | Bin .../icons/falukant/shortmap/politics.png | Bin .../icons/falukant/shortmap/reputation.png | Bin .../images/icons/falukant/shortmap/towns.png | Bin .../images/icons/falukant/storage-field.png | Bin .../images/icons/falukant/storage-iron.png | Bin .../images/icons/falukant/storage-stone.png | Bin .../images/icons/falukant/storage-wood.png | Bin .../public/images/icons/falukant/title.png | Bin .../public/images/icons/falukant/towns.jpg | Bin .../public/images/icons/falukant/workshop.png | Bin frontend/public/images/icons/falukant16.png | Bin frontend/public/images/icons/falukant24.png | Bin frontend/public/images/icons/folder.png | Bin frontend/public/images/icons/folder16.png | Bin frontend/public/images/icons/folder24.png | Bin frontend/public/images/icons/friends16.png | Bin frontend/public/images/icons/friends24.png | Bin frontend/public/images/icons/friendsadd16.png | Bin frontend/public/images/icons/friendsadd24.png | Bin frontend/public/images/icons/game.png | 0 frontend/public/images/icons/home16.png | Bin frontend/public/images/icons/home24.png | Bin frontend/public/images/icons/imprint.png | Bin frontend/public/images/icons/imprint16.png | Bin frontend/public/images/icons/imprint24.png | Bin frontend/public/images/icons/info16.png | Bin frontend/public/images/icons/info24.png | Bin frontend/public/images/icons/lock16.png | Bin frontend/public/images/icons/lock24.png | Bin frontend/public/images/icons/logo_color.png | Bin frontend/public/images/icons/logo_mono.png | Bin frontend/public/images/icons/malefemale16.png | Bin frontend/public/images/icons/malefemale24.png | Bin frontend/public/images/icons/message.png | Bin frontend/public/images/icons/message16.png | Bin frontend/public/images/icons/message24.png | Bin frontend/public/images/icons/minigames.png | Bin frontend/public/images/icons/minigames16.png | Bin frontend/public/images/icons/minigames24.png | Bin frontend/public/images/icons/minimize16.png | Bin frontend/public/images/icons/minimize24.png | Bin frontend/public/images/icons/multichat.png | Bin frontend/public/images/icons/multichat16.png | Bin frontend/public/images/icons/multichat24.png | Bin frontend/public/images/icons/privacy.png | Bin frontend/public/images/icons/privacy16.png | Bin frontend/public/images/icons/privacy24.png | Bin frontend/public/images/icons/privacy30.png | Bin frontend/public/images/icons/privacy45.png | Bin frontend/public/images/icons/profile.png | Bin frontend/public/images/icons/profile16.png | Bin frontend/public/images/icons/profile24.png | Bin frontend/public/images/icons/rain.png | Bin .../images/icons/request-friendship.png | Bin frontend/public/images/icons/scream.png | Bin frontend/public/images/icons/search16.png | Bin frontend/public/images/icons/search24.png | Bin frontend/public/images/icons/sendmessage.png | Bin frontend/public/images/icons/settings.png | Bin frontend/public/images/icons/settings16.png | Bin frontend/public/images/icons/settings24.png | Bin .../public/images/icons/socialnetwork.png | Bin frontend/public/images/icons/sun-clouds.png | Bin frontend/public/images/icons/sun-rain.png | Bin frontend/public/images/icons/sun.png | Bin frontend/public/images/icons/unban16.png | Bin frontend/public/images/icons/unban24.png | Bin frontend/public/images/icons/unblock16.png | Bin frontend/public/images/icons/unblock24.png | Bin frontend/public/images/icons/usersearch16.png | Bin frontend/public/images/icons/usersearch24.png | Bin frontend/public/images/logos/logo.png | Bin .../images/mascot/mascot_female.old.png | Bin .../public/images/mascot/mascot_female.png | Bin .../public/images/mascot/mascot_male.old.png | Bin frontend/public/images/mascot/mascot_male.png | Bin .../public/images/screenshots/friends.png | Bin frontend/public/images/taxi/car1.svg | 0 frontend/public/images/taxi/car_blue.svg | 0 frontend/public/images/taxi/car_green.svg | 0 frontend/public/images/taxi/car_pink.svg | 0 frontend/public/images/taxi/car_red.svg | 0 frontend/public/images/taxi/car_turquise.svg | 0 .../public/images/taxi/cornerbottomleft.svg | 0 .../public/images/taxi/cornerbottomright.svg | 0 frontend/public/images/taxi/cornertopleft.svg | 0 .../public/images/taxi/cornertopright.svg | 0 frontend/public/images/taxi/cross.svg | 0 .../public/images/taxi/fuelhorizontal.svg | 0 frontend/public/images/taxi/fuelvertical.svg | 0 frontend/public/images/taxi/horizontal.svg | 0 frontend/public/images/taxi/house.svg | 0 frontend/public/images/taxi/house_small.png | Bin .../images/taxi/map-cornerbottomleft.svg | 0 .../images/taxi/map-cornerbottomright.svg | 0 .../public/images/taxi/map-cornertopleft.svg | 0 .../public/images/taxi/map-cornertopright.svg | 0 frontend/public/images/taxi/map-cross.svg | 0 .../public/images/taxi/map-fuelhorizontal.svg | 0 .../public/images/taxi/map-fuelvertical.svg | 0 .../public/images/taxi/map-horizontal.svg | 0 frontend/public/images/taxi/map-tdown.svg | 0 frontend/public/images/taxi/map-tleft.svg | 0 frontend/public/images/taxi/map-tright.svg | 0 frontend/public/images/taxi/map-tup.svg | 0 frontend/public/images/taxi/map-vertical.svg | 0 frontend/public/images/taxi/passenger1.png | Bin frontend/public/images/taxi/passenger2.png | Bin frontend/public/images/taxi/passenger3.png | Bin frontend/public/images/taxi/passenger4.png | Bin frontend/public/images/taxi/passenger5.png | Bin frontend/public/images/taxi/passenger6.png | Bin frontend/public/images/taxi/person.svg | 0 frontend/public/images/taxi/radar.svg | 0 frontend/public/images/taxi/redlight.svg | 0 frontend/public/images/taxi/taxi.svg | 0 frontend/public/images/taxi/tdown.svg | 0 frontend/public/images/taxi/ticket.svg | 0 frontend/public/images/taxi/tleft.svg | 0 .../public/images/taxi/trafficlight-green.svg | 0 .../public/images/taxi/trafficlight-red.svg | 0 .../images/taxi/trafficlight-redyellow.svg | 0 .../images/taxi/trafficlight-yellow.svg | 0 frontend/public/images/taxi/tright.svg | 0 frontend/public/images/taxi/tup.svg | 0 frontend/public/images/taxi/vertical.svg | 0 frontend/public/index.html | 0 .../models/3d/falukant/characters/README.md | 0 .../models/3d/falukant/characters/female.glb | Bin .../3d/falukant/characters/female_1y.glb | Bin .../3d/falukant/characters/female_2y.glb | Bin .../3d/falukant/characters/female_5y.glb | Bin .../3d/falukant/characters/female_adult.glb | Bin .../3d/falukant/characters/female_child.glb | Bin .../characters/female_child_original.glb | Bin .../3d/falukant/characters/female_preteen.glb | Bin .../3d/falukant/characters/female_teen.glb | Bin .../3d/falukant/characters/female_toddler.glb | Bin .../characters/female_toddler_old.glb | Bin .../models/3d/falukant/characters/male.glb | Bin .../3d/falukant/characters/male_adult.glb | Bin .../3d/falukant/characters/male_child.glb | Bin .../3d/falukant/characters/male_child_opt.glb | Bin .../3d/falukant/characters/male_preteen.glb | Bin .../3d/falukant/characters/male_teen.glb | Bin .../3d/falukant/characters/male_toddler.glb | Bin frontend/public/robots.txt | 0 frontend/public/sitemap.xml | 0 frontend/public/sounds/fail.mp3 | Bin frontend/public/sounds/match3/bomb.wav | Bin frontend/public/sounds/match3/falling.wav | Bin frontend/public/sounds/match3/move.wav | Bin frontend/public/sounds/match3/rainbow.wav | Bin frontend/public/sounds/match3/roket.wav | Bin frontend/public/sounds/success.mp3 | Bin frontend/scripts/audit-ceb-locale.mjs | 0 frontend/scripts/build-ceb-falukant-patch.mjs | 0 .../scripts/build-ceb-socialnetwork-patch.mjs | 0 .../scripts/ceb-patches/falukant-patch.json | 0 .../ceb-patches/socialnetwork-patch.json | 0 frontend/scripts/check-i18n-locale-parity.mjs | 0 .../scripts/generate-fr-locale-from-de.mjs | 0 frontend/scripts/merge-ceb-locale-patch.mjs | 0 frontend/scripts/optimize-glb.mjs | 0 frontend/scripts/smooth-fr-falukant.mjs | 0 frontend/src/App.vue | 0 frontend/src/api/blogApi.js | 0 frontend/src/api/chatApi.js | 0 frontend/src/api/friendshipApi.js | 0 frontend/src/assets/motorSound.js | 0 frontend/src/assets/styles.scss | 0 frontend/src/components/AppContent.vue | 0 frontend/src/components/AppFooter.vue | 0 frontend/src/components/AppHeader.vue | 0 frontend/src/components/AppNavigation.vue | 0 frontend/src/components/AppSectionBar.vue | 0 frontend/src/components/Character3D.vue | 0 frontend/src/components/DashboardWidget.vue | 0 frontend/src/components/DialogWidget.vue | 0 frontend/src/components/FolderItem.vue | 0 frontend/src/components/MessageboxWidget.vue | 0 frontend/src/components/QuillEditor.vue | 0 frontend/src/components/SettingsWidget.vue | 0 frontend/src/components/SimpleTabs.vue | 0 frontend/src/components/TermineWidget.vue | 0 .../src/components/admin/AdminUserSearch.vue | 0 .../components/falukant/BranchSelection.vue | 0 .../src/components/falukant/DirectorInfo.vue | 0 .../components/falukant/MessagesDialog.vue | 0 .../components/falukant/ProductionSection.vue | 0 .../components/falukant/RevenueSection.vue | 0 .../src/components/falukant/SaleSection.vue | 0 .../src/components/falukant/StatusBar.vue | 0 .../components/falukant/StorageSection.vue | 0 .../src/components/form/CheckboxWidget.vue | 0 .../src/components/form/DateInputWidget.vue | 0 .../src/components/form/FloatInputWidget.vue | 0 .../src/components/form/FormattedDropdown.vue | 0 .../src/components/form/InputNumberWidget.vue | 0 .../src/components/form/InputStringWidget.vue | 0 .../src/components/form/MultiselectWidget.vue | 0 .../components/form/SelectDropdownWidget.vue | 0 .../src/components/widgets/BirthdayWidget.vue | 0 .../src/components/widgets/FalukantWidget.vue | 0 .../src/components/widgets/ListWidget.vue | 0 .../components/widgets/MiniCalendarWidget.vue | 0 .../src/components/widgets/NewsWidget.vue | 0 .../widgets/UpcomingEventsWidget.vue | 0 .../components/widgets/VocabCoursesWidget.vue | 0 frontend/src/content/content.js | 0 frontend/src/content/publicGuides.js | 0 frontend/src/data/streetCoordinates.json | 0 .../src/dialogues/admin/AnswerContact.vue | 0 .../src/dialogues/admin/ForumAdminView.vue | 0 frontend/src/dialogues/admin/RoomDialog.vue | 0 .../dialogues/admin/WebSocketLogDialog.vue | 0 .../dialogues/auth/PasswordResetDialog.vue | 0 .../src/dialogues/auth/RegisterDialog.vue | 0 .../src/dialogues/chat/MultiChatDialog.vue | 0 .../src/dialogues/chat/RandomChatDialog.vue | 0 .../dialogues/falukant/BuyVehicleDialog.vue | 0 .../dialogues/falukant/ChildDetailsDialog.vue | 0 .../dialogues/falukant/CreateBranchDialog.vue | 0 .../falukant/MoneyHistoryGraphDialog.vue | 0 .../dialogues/falukant/NewDirectorDialog.vue | 0 .../socialnetwork/CreateFolderDialog.vue | 0 .../socialnetwork/EditImageDialog.vue | 0 .../socialnetwork/ShowImageDialog.vue | 0 .../socialnetwork/UserProfileDialog.vue | 0 .../socialnetwork/VocabPracticeDialog.vue | 0 .../socialnetwork/VocabSearchDialog.vue | 0 .../src/dialogues/standard/ChooseDialog.vue | 0 .../src/dialogues/standard/ContactDialog.vue | 0 .../dialogues/standard/DataPrivacyDialog.vue | 0 .../src/dialogues/standard/ErrorDialog.vue | 0 .../src/dialogues/standard/ImprintDialog.vue | 0 .../src/dialogues/standard/MessageDialog.vue | 0 frontend/src/i18n/index.js | 0 frontend/src/i18n/locales/ceb/activate.json | 0 frontend/src/i18n/locales/ceb/admin.json | 0 frontend/src/i18n/locales/ceb/blog.json | 0 frontend/src/i18n/locales/ceb/chat.json | 0 frontend/src/i18n/locales/ceb/error.json | 0 frontend/src/i18n/locales/ceb/falukant.json | 0 frontend/src/i18n/locales/ceb/friends.json | 0 frontend/src/i18n/locales/ceb/general.json | 0 frontend/src/i18n/locales/ceb/header.json | 0 frontend/src/i18n/locales/ceb/home.json | 0 frontend/src/i18n/locales/ceb/message.json | 0 frontend/src/i18n/locales/ceb/minigames.json | 0 frontend/src/i18n/locales/ceb/navigation.json | 0 .../src/i18n/locales/ceb/passwordReset.json | 0 frontend/src/i18n/locales/ceb/personal.json | 0 frontend/src/i18n/locales/ceb/register.json | 0 frontend/src/i18n/locales/ceb/seo.json | 0 frontend/src/i18n/locales/ceb/settings.json | 0 .../src/i18n/locales/ceb/socialnetwork.json | 0 frontend/src/i18n/locales/de/activate.json | 0 frontend/src/i18n/locales/de/admin.json | 0 frontend/src/i18n/locales/de/blog.json | 0 frontend/src/i18n/locales/de/chat.json | 0 frontend/src/i18n/locales/de/error.json | 0 frontend/src/i18n/locales/de/falukant.json | 0 frontend/src/i18n/locales/de/friends.json | 0 frontend/src/i18n/locales/de/general.json | 0 frontend/src/i18n/locales/de/header.json | 0 frontend/src/i18n/locales/de/home.json | 0 frontend/src/i18n/locales/de/message.json | 0 frontend/src/i18n/locales/de/minigames.json | 0 frontend/src/i18n/locales/de/navigation.json | 0 .../src/i18n/locales/de/passwordReset.json | 0 frontend/src/i18n/locales/de/personal.json | 0 frontend/src/i18n/locales/de/register.json | 0 frontend/src/i18n/locales/de/seo.json | 0 frontend/src/i18n/locales/de/settings.json | 0 .../src/i18n/locales/de/socialnetwork.json | 0 frontend/src/i18n/locales/en/activate.json | 0 frontend/src/i18n/locales/en/admin.json | 0 frontend/src/i18n/locales/en/blog.json | 0 frontend/src/i18n/locales/en/chat.json | 0 frontend/src/i18n/locales/en/error.json | 0 frontend/src/i18n/locales/en/falukant.json | 0 frontend/src/i18n/locales/en/friends.json | 0 frontend/src/i18n/locales/en/general.json | 0 frontend/src/i18n/locales/en/header.json | 0 frontend/src/i18n/locales/en/home.json | 0 frontend/src/i18n/locales/en/message.json | 0 frontend/src/i18n/locales/en/minigames.json | 0 frontend/src/i18n/locales/en/navigation.json | 0 .../src/i18n/locales/en/passwordReset.json | 0 frontend/src/i18n/locales/en/personal.json | 0 frontend/src/i18n/locales/en/register.json | 0 frontend/src/i18n/locales/en/seo.json | 0 frontend/src/i18n/locales/en/settings.json | 0 .../src/i18n/locales/en/socialnetwork.json | 0 frontend/src/i18n/locales/es/activate.json | 0 frontend/src/i18n/locales/es/admin.json | 0 frontend/src/i18n/locales/es/blog.json | 0 frontend/src/i18n/locales/es/chat.json | 0 frontend/src/i18n/locales/es/error.json | 0 frontend/src/i18n/locales/es/falukant.json | 0 frontend/src/i18n/locales/es/friends.json | 0 frontend/src/i18n/locales/es/general.json | 0 frontend/src/i18n/locales/es/header.json | 0 frontend/src/i18n/locales/es/home.json | 0 frontend/src/i18n/locales/es/message.json | 0 frontend/src/i18n/locales/es/minigames.json | 0 frontend/src/i18n/locales/es/navigation.json | 0 .../src/i18n/locales/es/passwordReset.json | 0 frontend/src/i18n/locales/es/personal.json | 0 frontend/src/i18n/locales/es/register.json | 0 frontend/src/i18n/locales/es/seo.json | 0 frontend/src/i18n/locales/es/settings.json | 0 .../src/i18n/locales/es/socialnetwork.json | 0 frontend/src/i18n/locales/fr/activate.json | 0 frontend/src/i18n/locales/fr/admin.json | 0 frontend/src/i18n/locales/fr/blog.json | 0 frontend/src/i18n/locales/fr/chat.json | 0 frontend/src/i18n/locales/fr/error.json | 0 frontend/src/i18n/locales/fr/falukant.json | 0 frontend/src/i18n/locales/fr/friends.json | 0 frontend/src/i18n/locales/fr/general.json | 0 frontend/src/i18n/locales/fr/header.json | 0 frontend/src/i18n/locales/fr/home.json | 0 frontend/src/i18n/locales/fr/message.json | 0 frontend/src/i18n/locales/fr/minigames.json | 0 frontend/src/i18n/locales/fr/navigation.json | 0 .../src/i18n/locales/fr/passwordReset.json | 0 frontend/src/i18n/locales/fr/personal.json | 0 frontend/src/i18n/locales/fr/register.json | 0 frontend/src/i18n/locales/fr/seo.json | 0 frontend/src/i18n/locales/fr/settings.json | 0 .../src/i18n/locales/fr/socialnetwork.json | 0 frontend/src/i18n/supportedLocales.js | 0 frontend/src/main.js | 0 frontend/src/router/adminRoutes.js | 0 frontend/src/router/authRoutes.js | 8 + frontend/src/router/blogRoutes.js | 0 frontend/src/router/falukantRoutes.js | 0 frontend/src/router/index.js | 0 frontend/src/router/marketingRoutes.js | 0 frontend/src/router/minigamesRoutes.js | 0 frontend/src/router/personalRoutes.js | 0 frontend/src/router/settingsRoutes.js | 0 frontend/src/router/socialRoutes.js | 0 frontend/src/services/chatWs.js | 0 frontend/src/store/index.js | 0 frontend/src/store/modules/dialogs.js | 0 frontend/src/utils/appConfig.js | 0 frontend/src/utils/axios.js | 0 frontend/src/utils/chatConfig.js | 0 frontend/src/utils/datetime.js | 0 frontend/src/utils/eventBus.js | 0 frontend/src/utils/feedback.js | 0 frontend/src/utils/knowledgeHelper.js | 0 frontend/src/utils/menuLoader.js | 0 frontend/src/utils/numberAnswerVariants.js | 0 frontend/src/utils/paramValues.js | 0 frontend/src/utils/seo.js | 0 frontend/src/utils/streetCoordinates.js | 0 frontend/src/utils/threeLoaders.js | 0 frontend/src/utils/threeModelRuntime.js | 0 frontend/src/utils/threeRuntime.js | 0 frontend/src/utils/vocabCourseTitle.js | 0 frontend/src/views/HomeView.vue | 0 .../src/views/admin/AdultVerificationView.vue | 0 frontend/src/views/admin/ChatRoomsView.vue | 0 frontend/src/views/admin/ContactsView.vue | 0 .../src/views/admin/EroticModerationView.vue | 0 frontend/src/views/admin/InterestsView.vue | 0 frontend/src/views/admin/MinigamesView.vue | 0 .../src/views/admin/ModerationReportsView.vue | 0 frontend/src/views/admin/RoomsView.vue | 0 .../src/views/admin/ServicesStatusView.vue | 0 frontend/src/views/admin/TaxiToolsView.vue | 0 frontend/src/views/admin/UserRightsView.vue | 0 .../src/views/admin/UserStatisticsView.vue | 0 frontend/src/views/admin/UsersView.vue | 0 .../views/admin/falukant/CreateNPCView.vue | 0 .../src/views/admin/falukant/EditUserView.vue | 0 .../views/admin/falukant/MapRegionsView.vue | 0 .../admin/falukant/WorkerSchedulesView.vue | 0 frontend/src/views/auth/ActivateView.vue | 0 frontend/src/views/auth/OAuthCallbackView.vue | 0 .../src/views/auth/OAuthUserCallbackView.vue | 0 frontend/src/views/blog/BlogEditorView.vue | 0 frontend/src/views/blog/BlogListView.vue | 0 frontend/src/views/blog/BlogView.vue | 0 .../views/blog/components/RichTextEditor.vue | 0 .../src/views/falukant/AllCharactersTest.vue | 0 frontend/src/views/falukant/BankView.vue | 0 frontend/src/views/falukant/BranchView.vue | 0 frontend/src/views/falukant/ChurchView.vue | 0 frontend/src/views/falukant/CreateView.vue | 0 frontend/src/views/falukant/DirectorView.vue | 0 frontend/src/views/falukant/EducationView.vue | 0 frontend/src/views/falukant/FamilyView.vue | 0 frontend/src/views/falukant/HealthView.vue | 0 frontend/src/views/falukant/HouseView.vue | 0 .../src/views/falukant/MoneyHistoryView.vue | 0 frontend/src/views/falukant/NobilityView.vue | 0 frontend/src/views/falukant/OverviewView.vue | 0 frontend/src/views/falukant/PoliticsView.vue | 0 .../src/views/falukant/ReputationView.vue | 0 .../src/views/falukant/UndergroundView.vue | 0 frontend/src/views/home/LoggedInView.vue | 0 frontend/src/views/home/NoLoginView.vue | 0 frontend/src/views/minigames/Match3Game.vue | 0 frontend/src/views/minigames/TaxiGame.vue | 0 .../src/views/minigames/TaxiGame.vue.backup2 | 0 frontend/src/views/personal/CalendarView.vue | 0 .../public/BisayaLearningLandingView.vue | 0 .../src/views/public/FalukantLandingView.vue | 0 .../public/GermanForBisayaLandingView.vue | 0 .../src/views/public/GuideArticleView.vue | 0 frontend/src/views/public/GuideListView.vue | 0 .../src/views/public/MinigamesLandingView.vue | 0 .../src/views/public/VocabLandingView.vue | 0 frontend/src/views/settings/AccountView.vue | 0 frontend/src/views/settings/FlirtView.vue | 0 frontend/src/views/settings/InterestsView.vue | 0 .../views/settings/LanguageAssistantView.vue | 0 frontend/src/views/settings/PersonalView.vue | 0 frontend/src/views/settings/SexualityView.vue | 0 frontend/src/views/settings/ViewView.vue | 0 frontend/src/views/social/DiaryView.vue | 0 .../src/views/social/EroticAccessView.vue | 0 .../social/EroticMediaPlaceholderView.vue | 0 .../src/views/social/EroticPicturesView.vue | 0 .../src/views/social/EroticVideosView.vue | 0 frontend/src/views/social/ForumTopicView.vue | 0 frontend/src/views/social/ForumView.vue | 0 frontend/src/views/social/FriendsView.vue | 0 frontend/src/views/social/GalleryView.vue | 0 frontend/src/views/social/GuestbookView.vue | 0 frontend/src/views/social/SearchView.vue | 0 .../src/views/social/VocabChapterView.vue | 0 .../src/views/social/VocabCourseListView.vue | 0 frontend/src/views/social/VocabCourseView.vue | 0 .../src/views/social/VocabDictionaryView.vue | 0 .../src/views/social/VocabLanguageView.vue | 0 .../views/social/VocabLessonReviewView.vue | 0 frontend/src/views/social/VocabLessonView.vue | 0 .../src/views/social/VocabNewLanguageView.vue | 0 .../src/views/social/VocabSubscribeView.vue | 0 .../src/views/social/VocabTrainerView.vue | 0 frontend/vite.config.js | 0 lib/uSockets.a | Bin mcp/language-course-server/.env.example | 0 mcp/language-course-server/README.md | 0 .../data/glossary.example.json | 0 mcp/language-course-server/data/glossary.json | 0 mcp/language-course-server/package-lock.json | 0 mcp/language-course-server/package.json | 0 mcp/language-course-server/src/llm.mjs | 0 mcp/language-course-server/src/server.mjs | 0 package-lock.json | 0 package.json | 0 renovate.json | 0 rollback.sh | 0 src/character_creation_worker.cpp | 0 src/character_creation_worker.h | 0 src/config.cpp | 0 src/config.h | 0 src/connection_guard.h | 0 src/connection_pool.cpp | 0 src/connection_pool.h | 0 src/database.cpp | 0 src/database.h | 0 src/director_worker.cpp | 0 src/director_worker.h | 0 src/houseworker.cpp | 0 src/houseworker.h | 0 src/main.cpp | 0 src/message_broker.cpp | 0 src/message_broker.h | 0 src/performance_utils.h | 0 src/politics_worker.cpp | 0 src/politics_worker.h | 0 src/produce_worker.cpp | 0 src/produce_worker.h | 0 src/stockagemanager.cpp | 0 src/stockagemanager.h | 0 src/underground_worker.cpp | 0 src/underground_worker.h | 0 src/usercharacterworker.cpp | 0 src/usercharacterworker.h | 0 src/utils.cpp | 0 src/utils.h | 0 src/valuerecalculationworker.cpp | 0 src/valuerecalculationworker.h | 0 src/websocket_server.cpp | 0 src/websocket_server.h | 0 src/worker.h | 0 ssl-certs/server.crt | 0 ssl-certs/server.key | 0 websocket-config-guide.md | 0 yourpart-daemon.service | 0 yourpart-http.conf | 0 yourpart-https-alternative.conf | 0 yourpart-https.conf | 0 yourpart-websocket-fixed.conf | 0 yourpart-ws-fixed.conf | 0 yourpart.service | 0 1400 files changed, 22278 insertions(+), 485 deletions(-) mode change 100644 => 100755 .codex mode change 100644 => 100755 .cursor/rules/legacy-cpp-workers.mdc mode change 100644 => 100755 .gitea/workflows/deploy.yml create mode 100644 .github/workflows/android-security.yml create mode 100644 .github/workflows/android-tests.yml mode change 100644 => 100755 .gitignore mode change 100644 => 100755 .vscode/settings.json mode change 100644 => 100755 CHURCH_MODELS.md mode change 100644 => 100755 CHURCH_OFFICES.md mode change 100644 => 100755 CMakeLists.txt mode change 100644 => 100755 CMakeLists.txt.user mode change 100644 => 100755 CMakeLists.txt.user.d36652f mode change 100644 => 100755 DEPLOYMENT.md mode change 100644 => 100755 OAUTH_CREDENTIALS_SETUP.md mode change 100644 => 100755 PERFORMANCE_ANALYSIS.md mode change 100644 => 100755 README.md mode change 100644 => 100755 README_MATCH3_CAMPAIGN.md mode change 100644 => 100755 SELL_OVERVIEW.md mode change 100644 => 100755 SSL-SETUP.md mode change 100644 => 100755 android/.idea/android.iml mode change 100644 => 100755 android/.idea/caches/deviceStreaming.xml mode change 100644 => 100755 android/.idea/deviceManager.xml mode change 100644 => 100755 android/.idea/markdown.xml mode change 100644 => 100755 android/.idea/misc.xml mode change 100644 => 100755 android/.idea/modules.xml mode change 100644 => 100755 android/.idea/vcs.xml mode change 100644 => 100755 android/ANDROID_APP_PLAN.md create mode 100644 android/APP_LINKS.md mode change 100644 => 100755 android/NATIVE_ANDROID_APP_PLAN.md mode change 100644 => 100755 android/README.md create mode 100644 android/SECURITY.md create mode 100644 android/STORE_COMPLIANCE.md create mode 100644 android/TESTING.md mode change 100644 => 100755 android/android/.idea/AndroidProjectSystem.xml create mode 100755 android/android/.idea/compiler.xml mode change 100644 => 100755 android/android/.idea/deploymentTargetSelector.xml mode change 100644 => 100755 android/android/.idea/migrations.xml mode change 100644 => 100755 android/android/.idea/misc.xml mode change 100644 => 100755 android/android/.idea/runConfigurations.xml mode change 100644 => 100755 android/android/.idea/runConfigurations/YourPart_Debug.xml mode change 100644 => 100755 android/android/app/build.gradle mode change 100644 => 100755 android/android/app/capacitor.build.gradle mode change 100644 => 100755 android/android/app/proguard-rules.pro mode change 100644 => 100755 android/android/app/src/androidTest/java/de/yourpart/app/ExampleInstrumentedTest.java mode change 100644 => 100755 android/android/app/src/main/AndroidManifest.xml mode change 100644 => 100755 android/android/app/src/main/java/de/yourpart/app/MainActivity.java mode change 100644 => 100755 android/android/app/src/main/res/drawable-land-hdpi/splash.png mode change 100644 => 100755 android/android/app/src/main/res/drawable-land-mdpi/splash.png mode change 100644 => 100755 android/android/app/src/main/res/drawable-land-xhdpi/splash.png mode change 100644 => 100755 android/android/app/src/main/res/drawable-land-xxhdpi/splash.png mode change 100644 => 100755 android/android/app/src/main/res/drawable-land-xxxhdpi/splash.png mode change 100644 => 100755 android/android/app/src/main/res/drawable-port-hdpi/splash.png mode change 100644 => 100755 android/android/app/src/main/res/drawable-port-mdpi/splash.png mode change 100644 => 100755 android/android/app/src/main/res/drawable-port-xhdpi/splash.png mode change 100644 => 100755 android/android/app/src/main/res/drawable-port-xxhdpi/splash.png mode change 100644 => 100755 android/android/app/src/main/res/drawable-port-xxxhdpi/splash.png mode change 100644 => 100755 android/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml mode change 100644 => 100755 android/android/app/src/main/res/drawable/ic_launcher_background.xml mode change 100644 => 100755 android/android/app/src/main/res/drawable/splash.png mode change 100644 => 100755 android/android/app/src/main/res/layout/activity_main.xml mode change 100644 => 100755 android/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml mode change 100644 => 100755 android/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml mode change 100644 => 100755 android/android/app/src/main/res/mipmap-hdpi/ic_launcher.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-mdpi/ic_launcher.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png mode change 100644 => 100755 android/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png mode change 100644 => 100755 android/android/app/src/main/res/values/ic_launcher_background.xml mode change 100644 => 100755 android/android/app/src/main/res/values/strings.xml mode change 100644 => 100755 android/android/app/src/main/res/values/styles.xml mode change 100644 => 100755 android/android/app/src/main/res/xml/file_paths.xml mode change 100644 => 100755 android/android/app/src/test/java/de/yourpart/app/ExampleUnitTest.java mode change 100644 => 100755 android/android/build.gradle mode change 100644 => 100755 android/android/capacitor.settings.gradle mode change 100644 => 100755 android/android/gradle.properties mode change 100644 => 100755 android/android/gradle/wrapper/gradle-wrapper.jar mode change 100644 => 100755 android/android/gradle/wrapper/gradle-wrapper.properties mode change 100644 => 100755 android/android/gradlew.bat mode change 100644 => 100755 android/android/settings.gradle mode change 100644 => 100755 android/android/variables.gradle mode change 100644 => 100755 android/capacitor.config.ts create mode 100755 android/native/.idea/AndroidProjectSystem.xml create mode 100755 android/native/.idea/caches/deviceStreaming.xml create mode 100755 android/native/.idea/deploymentTargetSelector.xml create mode 100755 android/native/.idea/deviceManager.xml create mode 100755 android/native/.idea/gradle.xml create mode 100755 android/native/.idea/markdown.xml create mode 100755 android/native/.idea/migrations.xml create mode 100755 android/native/.idea/misc.xml create mode 100755 android/native/.idea/runConfigurations.xml create mode 100755 android/native/.idea/vcs.xml create mode 100755 android/native/.kotlin/errors/errors-1783688579715.log create mode 100755 android/native/.kotlin/errors/errors-1783688926385.log create mode 100755 android/native/.kotlin/errors/errors-1783689039380.log create mode 100644 android/native/.kotlin/errors/errors-1784193658070.log create mode 100644 android/native/.kotlin/errors/errors-1784193658098.log create mode 100644 android/native/.kotlin/errors/errors-1784193702998.log create mode 100644 android/native/.kotlin/errors/errors-1784193703057.log mode change 100644 => 100755 android/native/README.md mode change 100644 => 100755 android/native/app/build.gradle.kts create mode 100644 android/native/app/google-services.json create mode 100644 android/native/app/google-services.json.example mode change 100644 => 100755 android/native/app/proguard-rules.pro create mode 100644 android/native/app/schemas/de.yourpart.nativeapp.core.persistence.AppCacheDatabase/2.json create mode 100644 android/native/app/src/androidTest/java/de/yourpart/nativeapp/core/auth/storage/SessionStoreResumeTest.kt create mode 100644 android/native/app/src/androidTest/java/de/yourpart/nativeapp/core/persistence/AppCacheMigrationTest.kt create mode 100644 android/native/app/src/androidTest/java/de/yourpart/nativeapp/ui/NativeScreenComposeTest.kt create mode 100755 android/native/app/src/debug/res/xml/network_security_config.xml mode change 100644 => 100755 android/native/app/src/main/AndroidManifest.xml mode change 100644 => 100755 android/native/app/src/main/java/de/yourpart/nativeapp/MainActivity.kt mode change 100644 => 100755 android/native/app/src/main/java/de/yourpart/nativeapp/YourPartNativeApplication.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/auth/model/AuthModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/auth/storage/AuthSessionStore.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/auth/storage/SessionStore.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/config/AppConfig.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/di/AppModule.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/di/PersistenceModule.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/di/StorageModule.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/core/navigation/AppLink.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/network/ApiResult.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/network/AuthHeaderInterceptor.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/network/BackendErrorParser.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/network/DownloadHelper.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/network/MultipartUploadHelper.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/network/NetworkError.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/network/NetworkPolicy.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/network/NetworkRequestExecutor.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/network/PaginationModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/persistence/AppCacheDatabase.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/core/persistence/AppCacheMigrations.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/persistence/CacheDaos.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/persistence/CacheEntities.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/persistence/CachePolicy.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/persistence/FeatureFlagDefaults.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/persistence/UserPreferencesStore.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/realtime/DaemonMessageParser.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/realtime/DefaultRealtimeManager.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/realtime/RealtimeCacheInvalidator.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/realtime/RealtimeEventCenter.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/realtime/RealtimeManager.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/core/realtime/RealtimeModels.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/admin/AdminAccessRepository.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/admin/AdminAccessViewModel.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/admin/AdminScreen.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/adult/AdultRepository.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/adult/AdultScreen.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/adult/AdultViewModel.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/auth/AuthRepository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/auth/AuthScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/auth/AuthViewModel.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/auth/ForgotPasswordScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/auth/RegisterScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/chat/ChatModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/chat/ChatRepository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/chat/ChatScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/chat/ChatViewModel.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/falukant/FalukantModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/falukant/FalukantRepository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/falukant/FalukantScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/falukant/FalukantViewModel.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/forum/ForumModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/forum/ForumRepository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/forum/ForumScreens.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/forum/ForumViewModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/gallery/GalleryModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/gallery/GalleryRepository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/gallery/GalleryScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/gallery/GalleryUploadRequestFactory.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/gallery/GalleryViewModel.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/home/HomeModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/home/HomeRepository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/home/HomeScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/home/HomeViewModel.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/legal/LegalRepository.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/legal/LegalScreen.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/legal/LegalViewModel.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/match3/Match3Repository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/match3/Match3Screen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/match3/Match3ViewModel.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/minigames/MinigamesScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/personal/PersonalModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/personal/PersonalRepository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/personal/PersonalScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/personal/PersonalViewModel.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/publiccontent/PublicContentModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/publiccontent/PublicContentRepository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/publiccontent/PublicContentScreens.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/publiccontent/PublicContentViewModel.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/push/PushRepository.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/push/PushScreen.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/push/PushViewModel.kt create mode 100644 android/native/app/src/main/java/de/yourpart/nativeapp/feature/push/YourPartFirebaseMessagingService.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/settings/SettingsModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/settings/SettingsRepository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/settings/SettingsScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/settings/SettingsViewModel.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/social/FriendsModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/social/FriendsRepository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/social/FriendsScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/social/FriendsViewModel.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/social/SocialModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/social/SocialRepository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/social/SocialScreens.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/social/SocialViewModels.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/taxi/TaxiRepository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/taxi/TaxiScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/taxi/TaxiViewModel.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/vocab/VocabRepository.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/vocab/VocabScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/feature/vocab/VocabViewModel.kt mode change 100644 => 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/YourPartNativeApp.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/components/YpAvatar.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/components/YpButton.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/components/YpDialog.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/components/YpStateCard.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/components/YpStatusChip.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/components/YpTextField.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/navigation/AppDestination.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/navigation/MenuPolicy.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/navigation/RealtimeDebugDestination.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/screens/PlaceholderScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/screens/RealtimeDebugScreen.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/theme/Color.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/theme/Shape.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/theme/Spacing.kt mode change 100644 => 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/theme/Theme.kt create mode 100755 android/native/app/src/main/java/de/yourpart/nativeapp/ui/theme/Typography.kt mode change 100644 => 100755 android/native/app/src/main/res/drawable/ic_launcher_foreground.xml mode change 100644 => 100755 android/native/app/src/main/res/values/colors.xml mode change 100644 => 100755 android/native/app/src/main/res/values/strings.xml mode change 100644 => 100755 android/native/app/src/main/res/values/styles.xml create mode 100755 android/native/app/src/release/res/xml/network_security_config.xml create mode 100755 android/native/app/src/test/java/de/yourpart/nativeapp/core/network/AuthHeaderInterceptorTest.kt create mode 100644 android/native/app/src/test/java/de/yourpart/nativeapp/core/network/BackendErrorParserTest.kt create mode 100644 android/native/app/src/test/java/de/yourpart/nativeapp/core/network/NetworkRequestExecutorTest.kt create mode 100755 android/native/app/src/test/java/de/yourpart/nativeapp/core/realtime/DaemonMessageParserTest.kt create mode 100644 android/native/app/src/test/java/de/yourpart/nativeapp/feature/auth/AuthRepositoryTest.kt create mode 100755 android/native/app/src/test/java/de/yourpart/nativeapp/feature/falukant/FalukantModelsTest.kt create mode 100755 android/native/app/src/test/java/de/yourpart/nativeapp/feature/gallery/GalleryUploadRequestFactoryTest.kt create mode 100644 android/native/app/src/test/java/de/yourpart/nativeapp/feature/settings/SettingsRepositoryTest.kt mode change 100644 => 100755 android/native/build.gradle.kts mode change 100644 => 100755 android/native/gradle.properties create mode 100755 android/native/gradle/wrapper/gradle-wrapper.jar create mode 100755 android/native/gradle/wrapper/gradle-wrapper.properties create mode 100755 android/native/gradlew create mode 100755 android/native/gradlew.bat mode change 100644 => 100755 android/native/settings.gradle.kts mode change 100644 => 100755 android/package-lock.json mode change 100644 => 100755 android/package.json mode change 100644 => 100755 backend/README_SCHEMA_UPDATES.md mode change 100644 => 100755 backend/README_TAX.md mode change 100644 => 100755 backend/app.js mode change 100644 => 100755 backend/check-connections.js mode change 100644 => 100755 backend/cleanup-connections.js mode change 100644 => 100755 backend/config/chatBridge.json mode change 100644 => 100755 backend/config/config.json mode change 100644 => 100755 backend/config/loadEnv.js mode change 100644 => 100755 backend/config/sequelize-cli.cjs mode change 100644 => 100755 backend/controllers/adminController.js mode change 100644 => 100755 backend/controllers/authController.js mode change 100644 => 100755 backend/controllers/blogController.js mode change 100644 => 100755 backend/controllers/calendarController.js mode change 100644 => 100755 backend/controllers/chatController.js mode change 100644 => 100755 backend/controllers/contactController.js mode change 100644 => 100755 backend/controllers/dashboardController.js mode change 100644 => 100755 backend/controllers/falukantController.js mode change 100644 => 100755 backend/controllers/forumController.js mode change 100644 => 100755 backend/controllers/friendshipController.js mode change 100644 => 100755 backend/controllers/match3Controller.js mode change 100644 => 100755 backend/controllers/minigamesController.js mode change 100644 => 100755 backend/controllers/moderationController.js mode change 100644 => 100755 backend/controllers/navigationController.js mode change 100644 => 100755 backend/controllers/newsController.js create mode 100644 backend/controllers/pushNotificationController.js mode change 100644 => 100755 backend/controllers/settingsController.js mode change 100644 => 100755 backend/controllers/socialnetworkController.js mode change 100644 => 100755 backend/controllers/taxiController.js mode change 100644 => 100755 backend/controllers/taxiHighscoreController.js mode change 100644 => 100755 backend/controllers/taxiMapController.js mode change 100644 => 100755 backend/controllers/termineController.js mode change 100644 => 100755 backend/controllers/vocabController.js mode change 100644 => 100755 backend/daemonServer.js mode change 100644 => 100755 backend/data/lesson-checkpoints.json mode change 100644 => 100755 backend/data/termine.csv mode change 100644 => 100755 backend/env.example mode change 100644 => 100755 backend/env.local.example mode change 100644 => 100755 backend/fix-index-fields-v2.js mode change 100644 => 100755 backend/fix-index-fields.js mode change 100644 => 100755 backend/fix-pgcrypto-extension.js mode change 100644 => 100755 backend/jobs/politicalBenefitsTick.js mode change 100644 => 100755 backend/jobs/sessionCleanup.js mode change 100644 => 100755 backend/locales/de.json mode change 100644 => 100755 backend/locales/en.json mode change 100644 => 100755 backend/middleware/authMiddleware.js create mode 100644 backend/middleware/uploadMiddleware.js mode change 100644 => 100755 backend/migrations-active/.gitkeep mode change 100644 => 100755 backend/migrations-active/20260515000000-add-oauth-identities.cjs mode change 100644 => 100755 backend/migrations-archive/20240913071145-add-answer-fields-to-contact_message.cjs mode change 100644 => 100755 backend/migrations-archive/20251126120000-add-last-nobility-advance-to-falukant-user.cjs mode change 100644 => 100755 backend/migrations-archive/20251208000000-add-character-name-to-notification.cjs mode change 100644 => 100755 backend/migrations-archive/20251216000000-add-weather-type-to-production.cjs mode change 100644 => 100755 backend/migrations-archive/20251216000100-add-product-quality-to-stock.cjs mode change 100644 => 100755 backend/migrations-archive/20251220000000-add-reputation-to-character.cjs mode change 100644 => 100755 backend/migrations-archive/20251220001000-add-reputation-actions.cjs mode change 100644 => 100755 backend/migrations-archive/20251220002000-backfill-reputation-action-window.cjs mode change 100644 => 100755 backend/migrations-archive/20251220003000-seed-reputation-actions.cjs mode change 100644 => 100755 backend/migrations-archive/20251222000000-fix-vehicle-condition-null.cjs mode change 100644 => 100755 backend/migrations-archive/20251222001000-add-may-repair-vehicles-to-director.cjs mode change 100644 => 100755 backend/migrations-archive/20251230000000-add-vocab-trainer-tables.cjs mode change 100644 => 100755 backend/migrations-archive/20251230001000-add-vocab-chapters-and-lexemes.cjs mode change 100644 => 100755 backend/migrations-archive/20260101000000-add-tax-percent-to-region.cjs mode change 100644 => 100755 backend/migrations-archive/20260101000002-add-neutral-sell-costs-to-product.cjs mode change 100644 => 100755 backend/migrations-archive/20260115000000-add-vocab-courses.cjs mode change 100644 => 100755 backend/migrations-archive/20260115000001-add-vocab-grammar-exercises.cjs mode change 100644 => 100755 backend/migrations-archive/20260115000002-add-course-structure.cjs mode change 100644 => 100755 backend/migrations-archive/20260115000003-add-course-learning-goals.cjs mode change 100644 => 100755 backend/migrations-archive/20260118000000-add-notification-user-shown-index.cjs mode change 100644 => 100755 backend/migrations-archive/20260320000000-add-relationship-state-and-child-legitimacy.cjs mode change 100644 => 100755 backend/migrations-archive/20260320001000-backfill-relationship-state.cjs mode change 100644 => 100755 backend/migrations-archive/20260320002000-add-servants-to-user-house.cjs mode change 100644 => 100755 backend/migrations-archive/20260323000000-add-household-tension-to-user-house.cjs mode change 100644 => 100755 backend/migrations-archive/20260323010000-expand-debtors-prism.cjs mode change 100644 => 100755 backend/migrations-archive/20260323020000-add-transport-guards-and-raid-underground.cjs mode change 100644 => 100755 backend/migrations-archive/20260325000000-add-vocab-lesson-didactics.cjs mode change 100644 => 100755 backend/migrations-archive/20260325010000-expand-user-param-value-to-text.cjs mode change 100644 => 100755 backend/migrations-archive/20260326000000-add-adult-area-to-gallery.cjs mode change 100644 => 100755 backend/migrations-archive/20260326001000-create-erotic-video.cjs mode change 100644 => 100755 backend/migrations-archive/20260326002000-add-is-adult-only-to-chat-room.cjs mode change 100644 => 100755 backend/migrations-archive/20260326003000-add-adult-content-moderation.cjs mode change 100644 => 100755 backend/migrations-archive/20260327000000-add-erotic-video-visibility.cjs mode change 100644 => 100755 backend/migrations-archive/20260330000000-add-character-pregnancy.cjs mode change 100644 => 100755 backend/migrations-archive/20260331000000-add-vocab-lesson-phase1-fields.cjs mode change 100644 => 100755 backend/migrations-archive/20260401000000-add-vocab-course-progress-lesson-state.cjs mode change 100644 => 100755 backend/migrations-archive/20260401120000-politics-benefits-and-daily-salary.cjs mode change 100644 => 100755 backend/migrations-archive/20260402120000-add-ui-locale-fr-user-param-value.cjs mode change 100644 => 100755 backend/migrations-archive/20260402140000-add-certificate-productions-count-since.cjs mode change 100644 => 100755 backend/migrations-archive/20260402180000-political-benefits-mechanics.cjs mode change 100644 => 100755 backend/migrations-archive/20260403120000-political-office-hierarchy-level.cjs mode change 100644 => 100755 backend/migrations-archive/20260413152500-add-relationship-state-scandal-extra-daily-pct.cjs mode change 100644 => 100755 backend/migrations-archive/20260413190000-add-relationship-state-marriage-satisfaction-column.cjs mode change 100644 => 100755 backend/migrations-archive/20260417000000-add-vocab-srs-item.cjs mode change 100644 => 100755 backend/migrations-archive/add_trigger_for_hashedId.cjs mode change 100644 => 100755 backend/migrations/20260112000000-add-indexes-for-director-proposals-rollback.sql mode change 100644 => 100755 backend/migrations/20260112000000-add-indexes-for-director-proposals.sql create mode 100644 backend/migrations/20260716000000-create-user-block.sql create mode 100644 backend/migrations/20260716010000-create-push-notifications.sql mode change 100644 => 100755 backend/migrations/README.md mode change 100644 => 100755 backend/migrations/add_chat_room_dialog_fields.sql mode change 100644 => 100755 backend/migrations/add_condition_to_vehicle.sql mode change 100644 => 100755 backend/migrations/add_is_heir_to_child_relation.sql mode change 100644 => 100755 backend/migrations/make_transport_product_nullable.sql mode change 100644 => 100755 backend/migrations/migrations/2023xxxxxx-change-email-to-bytea.js mode change 100644 => 100755 backend/models/associations.js mode change 100644 => 100755 backend/models/chat/index.js mode change 100644 => 100755 backend/models/chat/rights.js mode change 100644 => 100755 backend/models/chat/room.js mode change 100644 => 100755 backend/models/chat/room_type.js mode change 100644 => 100755 backend/models/chat/user.js mode change 100644 => 100755 backend/models/chat/user_rights.js mode change 100644 => 100755 backend/models/community/blog.js mode change 100644 => 100755 backend/models/community/blog_post.js mode change 100644 => 100755 backend/models/community/calendar_event.js mode change 100644 => 100755 backend/models/community/diary.js mode change 100644 => 100755 backend/models/community/diary_history.js mode change 100644 => 100755 backend/models/community/erotic_content_report.js mode change 100644 => 100755 backend/models/community/erotic_video.js mode change 100644 => 100755 backend/models/community/erotic_video_image_visibility.js mode change 100644 => 100755 backend/models/community/erotic_video_visibility_user.js mode change 100644 => 100755 backend/models/community/folder.js mode change 100644 => 100755 backend/models/community/folder_image_visibility.js mode change 100644 => 100755 backend/models/community/folder_visibility_user.js mode change 100644 => 100755 backend/models/community/friendship.js mode change 100644 => 100755 backend/models/community/guestbook.js mode change 100644 => 100755 backend/models/community/image.js mode change 100644 => 100755 backend/models/community/image_image_visibility.js mode change 100644 => 100755 backend/models/community/image_visibility_user.js mode change 100644 => 100755 backend/models/community/interest.js mode change 100644 => 100755 backend/models/community/oauth_identity.js create mode 100644 backend/models/community/push_notification_device.js create mode 100644 backend/models/community/push_notification_setting.js mode change 100644 => 100755 backend/models/community/user.js create mode 100644 backend/models/community/user_block.js mode change 100644 => 100755 backend/models/community/user_dashboard.js mode change 100644 => 100755 backend/models/community/user_param.js mode change 100644 => 100755 backend/models/community/user_param_visibility.js mode change 100644 => 100755 backend/models/community/user_right.js mode change 100644 => 100755 backend/models/community/vocab_course.js mode change 100644 => 100755 backend/models/community/vocab_course_enrollment.js mode change 100644 => 100755 backend/models/community/vocab_course_lesson.js mode change 100644 => 100755 backend/models/community/vocab_course_progress.js mode change 100644 => 100755 backend/models/community/vocab_grammar_exercise.js mode change 100644 => 100755 backend/models/community/vocab_grammar_exercise_progress.js mode change 100644 => 100755 backend/models/community/vocab_grammar_exercise_type.js mode change 100644 => 100755 backend/models/community/vocab_srs_item.js mode change 100644 => 100755 backend/models/falukant/data/branch.js mode change 100644 => 100755 backend/models/falukant/data/buyable_house.js mode change 100644 => 100755 backend/models/falukant/data/buyable_stock.js mode change 100644 => 100755 backend/models/falukant/data/candidate.js mode change 100644 => 100755 backend/models/falukant/data/character.js mode change 100644 => 100755 backend/models/falukant/data/child_relation.js mode change 100644 => 100755 backend/models/falukant/data/church_application.js mode change 100644 => 100755 backend/models/falukant/data/church_office.js mode change 100644 => 100755 backend/models/falukant/data/credit.js mode change 100644 => 100755 backend/models/falukant/data/debtors_prism.js mode change 100644 => 100755 backend/models/falukant/data/director.js mode change 100644 => 100755 backend/models/falukant/data/director_proposal.js mode change 100644 => 100755 backend/models/falukant/data/election.js mode change 100644 => 100755 backend/models/falukant/data/election_result.js mode change 100644 => 100755 backend/models/falukant/data/falukant_character_trait.js mode change 100644 => 100755 backend/models/falukant/data/inventory.js mode change 100644 => 100755 backend/models/falukant/data/learning.js mode change 100644 => 100755 backend/models/falukant/data/marriage_proposal.js mode change 100644 => 100755 backend/models/falukant/data/occupied_political_office.js mode change 100644 => 100755 backend/models/falukant/data/party.js mode change 100644 => 100755 backend/models/falukant/data/partyInvitedNobility.js mode change 100644 => 100755 backend/models/falukant/data/political_appointment.js mode change 100644 => 100755 backend/models/falukant/data/political_benefit_last_tick.js mode change 100644 => 100755 backend/models/falukant/data/political_office.js mode change 100644 => 100755 backend/models/falukant/data/product_knowledge.js mode change 100644 => 100755 backend/models/falukant/data/production.js mode change 100644 => 100755 backend/models/falukant/data/region.js mode change 100644 => 100755 backend/models/falukant/data/region_distance.js mode change 100644 => 100755 backend/models/falukant/data/region_tax_history.js mode change 100644 => 100755 backend/models/falukant/data/relationship.js mode change 100644 => 100755 backend/models/falukant/data/relationship_state.js mode change 100644 => 100755 backend/models/falukant/data/stock.js mode change 100644 => 100755 backend/models/falukant/data/town_product_worth.js mode change 100644 => 100755 backend/models/falukant/data/transport.js mode change 100644 => 100755 backend/models/falukant/data/underground.js mode change 100644 => 100755 backend/models/falukant/data/user.js mode change 100644 => 100755 backend/models/falukant/data/user_house.js mode change 100644 => 100755 backend/models/falukant/data/vehicle.js mode change 100644 => 100755 backend/models/falukant/data/vote.js mode change 100644 => 100755 backend/models/falukant/data/weather.js mode change 100644 => 100755 backend/models/falukant/log/dayproduction.js mode change 100644 => 100755 backend/models/falukant/log/daysell.js mode change 100644 => 100755 backend/models/falukant/log/election_history.js mode change 100644 => 100755 backend/models/falukant/log/health_activity.js mode change 100644 => 100755 backend/models/falukant/log/moneyflow.js mode change 100644 => 100755 backend/models/falukant/log/notification.js mode change 100644 => 100755 backend/models/falukant/log/political_office_history.js mode change 100644 => 100755 backend/models/falukant/log/product_price_history.js mode change 100644 => 100755 backend/models/falukant/log/promotional_gift.js mode change 100644 => 100755 backend/models/falukant/log/relationship_change_log.js mode change 100644 => 100755 backend/models/falukant/log/reputation_action.js mode change 100644 => 100755 backend/models/falukant/predefine/church_office_requirement.js mode change 100644 => 100755 backend/models/falukant/predefine/firstname.js mode change 100644 => 100755 backend/models/falukant/predefine/lastname.js mode change 100644 => 100755 backend/models/falukant/predefine/political_office_benefit.js mode change 100644 => 100755 backend/models/falukant/predefine/political_office_prerequisite.js mode change 100644 => 100755 backend/models/falukant/predefine/promotional_gift_character_trait.js mode change 100644 => 100755 backend/models/falukant/predefine/promotional_gift_mood.js mode change 100644 => 100755 backend/models/falukant/type/banquette.js mode change 100644 => 100755 backend/models/falukant/type/branch.js mode change 100644 => 100755 backend/models/falukant/type/character_trait.js mode change 100644 => 100755 backend/models/falukant/type/church_office_type.js mode change 100644 => 100755 backend/models/falukant/type/house.js mode change 100644 => 100755 backend/models/falukant/type/learn_recipient.js mode change 100644 => 100755 backend/models/falukant/type/mood.js mode change 100644 => 100755 backend/models/falukant/type/music.js mode change 100644 => 100755 backend/models/falukant/type/party.js mode change 100644 => 100755 backend/models/falukant/type/political_office_benefit_type.js mode change 100644 => 100755 backend/models/falukant/type/political_office_type.js mode change 100644 => 100755 backend/models/falukant/type/product.js mode change 100644 => 100755 backend/models/falukant/type/product_weather_effect.js mode change 100644 => 100755 backend/models/falukant/type/promotional_gift.js mode change 100644 => 100755 backend/models/falukant/type/region.js mode change 100644 => 100755 backend/models/falukant/type/relationship.js mode change 100644 => 100755 backend/models/falukant/type/reputation_action.js mode change 100644 => 100755 backend/models/falukant/type/stock.js mode change 100644 => 100755 backend/models/falukant/type/title_benefit.js mode change 100644 => 100755 backend/models/falukant/type/title_of_nobility.js mode change 100644 => 100755 backend/models/falukant/type/title_requirement.js mode change 100644 => 100755 backend/models/falukant/type/underground.js mode change 100644 => 100755 backend/models/falukant/type/vehicle.js mode change 100644 => 100755 backend/models/falukant/type/weather.js mode change 100644 => 100755 backend/models/forum/forum.js mode change 100644 => 100755 backend/models/forum/forum_forum_permission.js mode change 100644 => 100755 backend/models/forum/forum_permission.js mode change 100644 => 100755 backend/models/forum/forum_user_permission.js mode change 100644 => 100755 backend/models/forum/message.js mode change 100644 => 100755 backend/models/forum/message_history.js mode change 100644 => 100755 backend/models/forum/message_image.js mode change 100644 => 100755 backend/models/forum/title.js mode change 100644 => 100755 backend/models/forum/title_history.js mode change 100644 => 100755 backend/models/index.js mode change 100644 => 100755 backend/models/logs/login.js mode change 100644 => 100755 backend/models/match3/campaign.js mode change 100644 => 100755 backend/models/match3/level.js mode change 100644 => 100755 backend/models/match3/levelTileType.js mode change 100644 => 100755 backend/models/match3/objective.js mode change 100644 => 100755 backend/models/match3/tileType.js mode change 100644 => 100755 backend/models/match3/userLevelProgress.js mode change 100644 => 100755 backend/models/match3/userProgress.js mode change 100644 => 100755 backend/models/minigames/taxiHighscore.js mode change 100644 => 100755 backend/models/service/contactmessage.js mode change 100644 => 100755 backend/models/service/minigame_campaign.js mode change 100644 => 100755 backend/models/service/minigame_campaign_level.js mode change 100644 => 100755 backend/models/service/minigame_user_progress.js mode change 100644 => 100755 backend/models/taxi/index.js mode change 100644 => 100755 backend/models/taxi/taxiGameState.js mode change 100644 => 100755 backend/models/taxi/taxiLevelStats.js mode change 100644 => 100755 backend/models/taxi/taxiMap.js mode change 100644 => 100755 backend/models/taxi/taxiMapTile.js mode change 100644 => 100755 backend/models/taxi/taxiMapTileHouse.js mode change 100644 => 100755 backend/models/taxi/taxiMapTileStreet.js mode change 100644 => 100755 backend/models/taxi/taxiMapType.js mode change 100644 => 100755 backend/models/taxi/taxiStreetName.js mode change 100644 => 100755 backend/models/trigger.js mode change 100644 => 100755 backend/models/type/image_visibility.js mode change 100644 => 100755 backend/models/type/interest.js mode change 100644 => 100755 backend/models/type/interest_translation.js mode change 100644 => 100755 backend/models/type/settings.js mode change 100644 => 100755 backend/models/type/user_param.js mode change 100644 => 100755 backend/models/type/user_param_value.js mode change 100644 => 100755 backend/models/type/user_param_visibility.js mode change 100644 => 100755 backend/models/type/user_right.js mode change 100644 => 100755 backend/models/type/widget_type.js mode change 100644 => 100755 backend/package-lock.json mode change 100644 => 100755 backend/package.json mode change 100644 => 100755 backend/routers/adminRouter.js mode change 100644 => 100755 backend/routers/authRouter.js mode change 100644 => 100755 backend/routers/blogRouter.js mode change 100644 => 100755 backend/routers/calendarRouter.js mode change 100644 => 100755 backend/routers/chatRouter.js mode change 100644 => 100755 backend/routers/contactRouter.js mode change 100644 => 100755 backend/routers/dashboardRouter.js mode change 100644 => 100755 backend/routers/falukantRouter.js mode change 100644 => 100755 backend/routers/forumRouter.js mode change 100644 => 100755 backend/routers/friendshipRouter.js mode change 100644 => 100755 backend/routers/match3Router.js mode change 100644 => 100755 backend/routers/modelsProxyRouter.js mode change 100644 => 100755 backend/routers/moderationRouter.js mode change 100644 => 100755 backend/routers/navigationRouter.js mode change 100644 => 100755 backend/routers/newsRouter.js create mode 100644 backend/routers/pushNotificationRouter.js mode change 100644 => 100755 backend/routers/settingsRouter.js mode change 100644 => 100755 backend/routers/socialnetworkRouter.js mode change 100644 => 100755 backend/routers/taxiHighscoreRouter.js mode change 100644 => 100755 backend/routers/taxiMapRouter.js mode change 100644 => 100755 backend/routers/taxiRouter.js mode change 100644 => 100755 backend/routers/termineRouter.js mode change 100644 => 100755 backend/routers/vocabRouter.js mode change 100644 => 100755 backend/scripts/add-bisaya-week1-lessons.js mode change 100644 => 100755 backend/scripts/add-grammar-exercises-to-existing-courses.js mode change 100644 => 100755 backend/scripts/analyze-bisaya-courses.cjs mode change 100644 => 100755 backend/scripts/analyze-bisaya-courses.js mode change 100644 => 100755 backend/scripts/apply-bisaya-course-refresh.js mode change 100644 => 100755 backend/scripts/bisaya-course-phase1.js mode change 100644 => 100755 backend/scripts/bisaya-course-phase2-pedagogy.js mode change 100644 => 100755 backend/scripts/bisaya-course-phase3-extension.js mode change 100644 => 100755 backend/scripts/bisaya-course-phase4-extension.js mode change 100644 => 100755 backend/scripts/bisaya-course-phase5-extension.js mode change 100644 => 100755 backend/scripts/bisaya-course-plan-24-43.js mode change 100644 => 100755 backend/scripts/count-per-lesson-24-43.mjs mode change 100644 => 100755 backend/scripts/count_corepatterns.js mode change 100644 => 100755 backend/scripts/create-bisaya-course-content.js mode change 100644 => 100755 backend/scripts/create-german-for-bisaya-course-content.js mode change 100644 => 100755 backend/scripts/create-german-for-bisaya-course.js mode change 100644 => 100755 backend/scripts/dedupe-bisaya-family-courses.js mode change 100644 => 100755 backend/scripts/diag-srs-stats.js mode change 100644 => 100755 backend/scripts/extend-bisaya-course-phase3.js mode change 100644 => 100755 backend/scripts/extend-bisaya-course-phase4.js mode change 100644 => 100755 backend/scripts/extend-bisaya-course-phase5.js mode change 100644 => 100755 backend/scripts/extend-german-for-bisaya-course-phase3.js mode change 100644 => 100755 backend/scripts/extend-german-for-bisaya-course-phase4.js mode change 100644 => 100755 backend/scripts/extend-german-for-bisaya-course-phase5.js mode change 100644 => 100755 backend/scripts/falukant-moneyflow-report.mjs mode change 100644 => 100755 backend/scripts/falukant-town-product-worth-stats.mjs mode change 100644 => 100755 backend/scripts/find-duplicate-patterns.mjs mode change 100644 => 100755 backend/scripts/find-exercise-by-text.cjs mode change 100644 => 100755 backend/scripts/fix-bisaya-review-field.mjs mode change 100644 => 100755 backend/scripts/fix-srs-immediate-due.js mode change 100644 => 100755 backend/scripts/fix-srs-queries-plain.sql mode change 100644 => 100755 backend/scripts/fix-srs-queries.sql mode change 100644 => 100755 backend/scripts/generate-lesson-checkpoints.cjs mode change 100644 => 100755 backend/scripts/german-for-bisaya-phase1.js mode change 100644 => 100755 backend/scripts/german-for-bisaya-phase2-pedagogy.js mode change 100644 => 100755 backend/scripts/german-for-bisaya-phase3-extension.js mode change 100644 => 100755 backend/scripts/german-for-bisaya-phase4-extension.js mode change 100644 => 100755 backend/scripts/german-for-bisaya-phase5-extension.js mode change 100644 => 100755 backend/scripts/migrate-bisaya-zahlen-split.js mode change 100644 => 100755 backend/scripts/normalize-core-pattern-alternatives.js mode change 100644 => 100755 backend/scripts/normalize-exercise-answer-alternatives.js mode change 100644 => 100755 backend/scripts/print-lesson-patterns.mjs mode change 100644 => 100755 backend/scripts/repair-bisaya-children-lessons.js mode change 100644 => 100755 backend/scripts/repair-bisaya-feelings-emotions-lessons.js mode change 100644 => 100755 backend/scripts/repair-bisaya-number-answer-pairs.js mode change 100644 => 100755 backend/scripts/repair-fix-body-mc.cjs mode change 100644 => 100755 backend/scripts/repair-invalid-srs-fragment-sentence-pairs.js mode change 100644 => 100755 backend/scripts/repair-remove-sentence-mc.js mode change 100644 => 100755 backend/scripts/sync-vocab-course-content.js mode change 100644 => 100755 backend/scripts/update-bisaya-didactics.js mode change 100644 => 100755 backend/scripts/update-week1-bisaya-exercises.js mode change 100644 => 100755 backend/server.js mode change 100644 => 100755 backend/services/BaseService.js mode change 100644 => 100755 backend/services/ContactService.js mode change 100644 => 100755 backend/services/adminService.js mode change 100644 => 100755 backend/services/authService.js mode change 100644 => 100755 backend/services/blogService.js mode change 100644 => 100755 backend/services/calendarService.js mode change 100644 => 100755 backend/services/chatService.js mode change 100644 => 100755 backend/services/chatTcpBridge.js mode change 100644 => 100755 backend/services/dashboardService.js mode change 100644 => 100755 backend/services/emailService.js mode change 100644 => 100755 backend/services/falukantPoliticalPowersService.js mode change 100644 => 100755 backend/services/falukantService.js mode change 100644 => 100755 backend/services/forumService.js mode change 100644 => 100755 backend/services/friendshipService.js mode change 100644 => 100755 backend/services/match3Service.js mode change 100644 => 100755 backend/services/minigamesService.js mode change 100644 => 100755 backend/services/modelsProxyService.js mode change 100644 => 100755 backend/services/moderationService.js mode change 100644 => 100755 backend/services/newsService.js mode change 100644 => 100755 backend/services/npcCreationJobService.js mode change 100644 => 100755 backend/services/oauthService.js create mode 100644 backend/services/pushNotificationService.js mode change 100644 => 100755 backend/services/settingsService.js mode change 100644 => 100755 backend/services/socialnetworkService.js mode change 100644 => 100755 backend/services/taxiHighscoreService.js mode change 100644 => 100755 backend/services/taxiMapService.js mode change 100644 => 100755 backend/services/taxiService.js mode change 100644 => 100755 backend/services/vocabService.js mode change 100644 => 100755 backend/services/webSocketService.js mode change 100644 => 100755 backend/sql/add-native-language-to-courses.sql mode change 100644 => 100755 backend/sql/add-speaking-exercise-types.sql mode change 100644 => 100755 backend/sql/add_adult_area_to_gallery.sql mode change 100644 => 100755 backend/sql/add_adult_content_moderation.sql mode change 100644 => 100755 backend/sql/add_adult_verification_user_param.sql mode change 100644 => 100755 backend/sql/add_character_name_to_notification.sql mode change 100644 => 100755 backend/sql/add_character_pregnancy.sql mode change 100644 => 100755 backend/sql/add_director_auto_adjust_income.sql mode change 100644 => 100755 backend/sql/add_falukant_user_last_political_daily_salary_on.sql mode change 100644 => 100755 backend/sql/add_household_tension_to_user_house.sql mode change 100644 => 100755 backend/sql/add_is_adult_only_to_chat_room.sql mode change 100644 => 100755 backend/sql/add_language_assistant_user_params.sql mode change 100644 => 100755 backend/sql/add_political_office_hierarchy_level.sql mode change 100644 => 100755 backend/sql/add_product_quality_to_stock.sql mode change 100644 => 100755 backend/sql/add_relationship_state_and_child_legitimacy.sql mode change 100644 => 100755 backend/sql/add_servants_to_user_house.sql mode change 100644 => 100755 backend/sql/add_transport_guards_and_raid_underground.sql mode change 100644 => 100755 backend/sql/add_underground_investigate_affair_type.sql mode change 100644 => 100755 backend/sql/add_underground_raid_transport_type.sql mode change 100644 => 100755 backend/sql/add_vocab_lesson_didactics.sql mode change 100644 => 100755 backend/sql/add_vocab_lesson_phase1_fields.sql mode change 100644 => 100755 backend/sql/add_vocab_srs_item.sql mode change 100644 => 100755 backend/sql/add_weather_type_to_production.sql mode change 100644 => 100755 backend/sql/add_worker_schedule_read_right.sql mode change 100644 => 100755 backend/sql/backfill_bisaya_phase2_pedagogy.sql mode change 100644 => 100755 backend/sql/backfill_relationship_state.sql mode change 100644 => 100755 backend/sql/balance_carrot_product.sql mode change 100644 => 100755 backend/sql/baseline-sequelize-meta-migrations-archive.sql mode change 100644 => 100755 backend/sql/cleanup_orphaned_user_param_visibility.sql mode change 100644 => 100755 backend/sql/create-vocab-courses.sql mode change 100644 => 100755 backend/sql/create_erotic_video.sql mode change 100644 => 100755 backend/sql/diagnostics/falukant_moneyflow_by_activity.sql mode change 100644 => 100755 backend/sql/diagnostics/falukant_moneyflow_window_totals.sql mode change 100644 => 100755 backend/sql/diagnostics/falukant_town_product_worth_stats.sql mode change 100644 => 100755 backend/sql/expand_debtors_prism.sql mode change 100644 => 100755 backend/sql/expand_user_param_value_to_text.sql mode change 100644 => 100755 backend/sql/extend_bisaya_course_phase3_to_6_weeks.sql mode change 100644 => 100755 backend/sql/extend_bisaya_course_phase4_to_3_months.sql mode change 100644 => 100755 backend/sql/extend_bisaya_course_phase5_to_stabilization.sql mode change 100644 => 100755 backend/sql/falukant_political_office_benefit_align_schema.sql mode change 100644 => 100755 backend/sql/falukant_political_office_benefits.sql mode change 100644 => 100755 backend/sql/falukant_political_office_benefits_steps.sql mode change 100644 => 100755 backend/sql/falukant_political_office_extra_benefits.sql mode change 100644 => 100755 backend/sql/fix_schema_drift_falukant_compat.sql mode change 100644 => 100755 backend/sql/rebalance_product_certificates.sql mode change 100644 => 100755 backend/sql/seed_dashboard_widget_types.sql mode change 100644 => 100755 backend/sql/update-bisaya-babay-multiple-choice.sql mode change 100644 => 100755 backend/sql/update-vocab-courses-existing.sql mode change 100644 => 100755 backend/sql/update_nobility_requirements_extended.sql mode change 100644 => 100755 backend/sql/update_product_sell_costs.sql mode change 100644 => 100755 backend/sync-database.js mode change 100644 => 100755 backend/sync-tables-only.js mode change 100644 => 100755 backend/tools/dumpGiftsDebug.js mode change 100644 => 100755 backend/tools/repairPromotionalGifts.js mode change 100644 => 100755 backend/tools/simulate_getGiftCost.js mode change 100644 => 100755 backend/tools/testGiftCost.js mode change 100644 => 100755 backend/utils/checkRightsTable.js mode change 100644 => 100755 backend/utils/cleanupDatabaseConstraints.js mode change 100644 => 100755 backend/utils/crypto.js mode change 100644 => 100755 backend/utils/encryption.js mode change 100644 => 100755 backend/utils/falukant/falukantProductEconomy.js mode change 100644 => 100755 backend/utils/falukant/initializeFalukantPredefines.js mode change 100644 => 100755 backend/utils/falukant/initializeFalukantTypes.js mode change 100644 => 100755 backend/utils/fixMatch3Data.js mode change 100644 => 100755 backend/utils/i18n.js mode change 100644 => 100755 backend/utils/initializeChat.js mode change 100644 => 100755 backend/utils/initializeFalukant.js mode change 100644 => 100755 backend/utils/initializeForum.js mode change 100644 => 100755 backend/utils/initializeImageTypes.js mode change 100644 => 100755 backend/utils/initializeMatch3.js mode change 100644 => 100755 backend/utils/initializeMatch3TileTypes.js mode change 100644 => 100755 backend/utils/initializeSettings.js mode change 100644 => 100755 backend/utils/initializeTaxi.js mode change 100644 => 100755 backend/utils/initializeTypes.js mode change 100644 => 100755 backend/utils/initializeUserRights.js mode change 100644 => 100755 backend/utils/initializeWidgetTypes.js mode change 100644 => 100755 backend/utils/locales/de.json mode change 100644 => 100755 backend/utils/locales/en.json mode change 100644 => 100755 backend/utils/redis.js mode change 100644 => 100755 backend/utils/sequelize.js mode change 100644 => 100755 backend/utils/socket.js mode change 100644 => 100755 backend/utils/storagePaths.js mode change 100644 => 100755 backend/utils/syncDatabase.js mode change 100644 => 100755 backend/utils/updateExistingMatch3Levels.js mode change 100644 => 100755 backend/utils/updateMatch3LevelsWithTileTypes.js mode change 100644 => 100755 backend/utils/userdata.js mode change 100644 => 100755 build-frontend.sh mode change 100644 => 100755 check-vocab-schema.sql mode change 100644 => 100755 cmake/install-config.cmake mode change 100644 => 100755 daemon.conf mode change 100644 => 100755 daemon.log mode change 100644 => 100755 docs/ADSENSE_PREAPPLY_REVIEW_2026-04-27.md mode change 100644 => 100755 docs/ADSENSE_READINESS.md mode change 100644 => 100755 docs/ADSENSE_UGC_MODERATION.md mode change 100644 => 100755 docs/ADULT_SOCIAL_EROTIC_CONCEPT.md mode change 100644 => 100755 docs/BISAYA_4_WEEK_COURSE.md mode change 100644 => 100755 docs/BISAYA_COURSE_EXAMPLE.md mode change 100644 => 100755 docs/BISAYA_COURSE_EXPANSION_IMPLEMENTATION_SPEC.md mode change 100644 => 100755 docs/BISAYA_LESSON_PLAN_24_153.md mode change 100644 => 100755 docs/BISAYA_SITE_LOCALIZATION_IMPLEMENTATION_SPEC.md mode change 100644 => 100755 docs/FALUKANT_CHURCH_ADVANCEMENT_DAEMON_SPEC.md mode change 100644 => 100755 docs/FALUKANT_DEBTORS_PRISON_CONCEPT.md mode change 100644 => 100755 docs/FALUKANT_DEBTORS_PRISON_DAEMON_SPEC.md mode change 100644 => 100755 docs/FALUKANT_LOVERS_CONCEPT.md mode change 100644 => 100755 docs/FALUKANT_LOVERS_DAEMON_HANDOFF.md mode change 100644 => 100755 docs/FALUKANT_LOVERS_DAEMON_SPEC.md mode change 100644 => 100755 docs/FALUKANT_LOVERS_IMPLEMENTATION_BACKLOG.md mode change 100644 => 100755 docs/FALUKANT_LOVERS_TECHNICAL_CONCEPT.md mode change 100644 => 100755 docs/FALUKANT_LOVERS_UNDERGROUND_DAEMON_SPEC.md mode change 100644 => 100755 docs/FALUKANT_MARRIAGE_HOUSEHOLD_CONTROL_SPEC.md mode change 100644 => 100755 docs/FALUKANT_MARRIAGE_HOUSEHOLD_DAEMON_HANDOFF.md mode change 100644 => 100755 docs/FALUKANT_NOBILITY_ADVANCEMENT_SPEC.md mode change 100644 => 100755 docs/FALUKANT_POLITICAL_BENEFITS_DAEMON_UI_SPEC.md mode change 100644 => 100755 docs/FALUKANT_PREGNANCY_SCHEDULED_BIRTH_DAEMON_SPEC.md mode change 100644 => 100755 docs/FALUKANT_PRODUCTION_CERTIFICATE.md mode change 100644 => 100755 docs/FALUKANT_PRODUCTION_CERTIFICATE_SPEC.md mode change 100644 => 100755 docs/FALUKANT_SERVANTS_CONCEPT.md mode change 100644 => 100755 docs/FALUKANT_SERVANTS_IMPLEMENTATION_SPEC.md mode change 100644 => 100755 docs/FALUKANT_TRANSPORT_RAIDS_SPEC.md mode change 100644 => 100755 docs/FALUKANT_UI_WEBSOCKET.md mode change 100644 => 100755 docs/FALUKANT_UNDERGROUND_AFFAIR_DAEMON_HANDOFF.md mode change 100644 => 100755 docs/FALUKANT_UNDERGROUND_AFFAIR_PLAN.md mode change 100644 => 100755 docs/GERMAN_FOR_BISAYA_IMPLEMENTATION_SPEC.md mode change 100644 => 100755 docs/KONZEPT_UI_SPRACHE_FRANZOESISCH.md mode change 100644 => 100755 docs/LEGACY_CPP_WORKERS.md mode change 100644 => 100755 docs/OLLAMA_LANGUAGE_ASSISTANT_SETUP.md mode change 100644 => 100755 docs/UI_REDESIGN_PLAN.md mode change 100644 => 100755 docs/UMLAUT_NORMALIZATION_PLAN.md mode change 100644 => 100755 docs/USABILITY_AUDIT_U1.md mode change 100644 => 100755 docs/USABILITY_CONCEPT.md mode change 100644 => 100755 docs/VOCAB_TRAINER_DIDACTIC_CONCEPT.md mode change 100644 => 100755 dump.rdb mode change 100644 => 100755 frontend/.env.android.example mode change 100644 => 100755 frontend/.env.local mode change 100644 => 100755 frontend/.env.production mode change 100644 => 100755 frontend/.env.server mode change 100644 => 100755 frontend/README_MINIGAMES.md mode change 100644 => 100755 frontend/dump.rdb mode change 100644 => 100755 frontend/index.html mode change 100644 => 100755 frontend/package-lock.json mode change 100644 => 100755 frontend/package.json create mode 100644 frontend/public/.well-known/assetlinks.json.example mode change 100644 => 100755 frontend/public/ads.txt mode change 100644 => 100755 frontend/public/assets/index-B4fysdFj.js mode change 100644 => 100755 frontend/public/assets/index-B7qXuEZt.css mode change 100644 => 100755 frontend/public/assets/index-BLkCbvUa.css mode change 100644 => 100755 frontend/public/assets/index-BeXHiB-n.js mode change 100644 => 100755 frontend/public/assets/index-C2z2YL6l.js mode change 100644 => 100755 frontend/public/assets/index-z5H98VOo.css mode change 100644 => 100755 frontend/public/assets/message24-DprhQEAI.png mode change 100644 => 100755 frontend/public/audio-worklet-processor.js mode change 100644 => 100755 frontend/public/draco/gltf/draco_decoder.js mode change 100644 => 100755 frontend/public/draco/gltf/draco_decoder.wasm mode change 100644 => 100755 frontend/public/draco/gltf/draco_wasm_wrapper.js mode change 100644 => 100755 frontend/public/favicon.ico mode change 100644 => 100755 frontend/public/images/backgrounds/welcome.png mode change 100644 => 100755 frontend/public/images/falukant/avatar/female.png mode change 100644 => 100755 frontend/public/images/falukant/avatar/female00.jpg mode change 100644 => 100755 frontend/public/images/falukant/avatar/female01.jpg mode change 100644 => 100755 frontend/public/images/falukant/avatar/female02.jpg mode change 100644 => 100755 frontend/public/images/falukant/avatar/female03.png mode change 100644 => 100755 frontend/public/images/falukant/avatar/male.png mode change 100644 => 100755 frontend/public/images/falukant/avatar/male00.jpg mode change 100644 => 100755 frontend/public/images/falukant/avatar/male01.jpg mode change 100644 => 100755 frontend/public/images/falukant/avatar/male02.jpg mode change 100644 => 100755 frontend/public/images/falukant/avatar/male03.png mode change 100644 => 100755 frontend/public/images/falukant/backgrounds/bg1.png mode change 100644 => 100755 frontend/public/images/falukant/backgrounds/bg1_opt.png mode change 100644 => 100755 frontend/public/images/falukant/backgrounds/bg2.png mode change 100644 => 100755 frontend/public/images/falukant/backgrounds/bg2_opt.png mode change 100644 => 100755 frontend/public/images/falukant/houses.png mode change 100644 => 100755 frontend/public/images/falukant/map.png mode change 100644 => 100755 frontend/public/images/falukant/map_old.png mode change 100644 => 100755 frontend/public/images/icons/accept16.png mode change 100644 => 100755 frontend/public/images/icons/accept24.png mode change 100644 => 100755 frontend/public/images/icons/activity.png mode change 100644 => 100755 frontend/public/images/icons/arrowdownblack.png mode change 100644 => 100755 frontend/public/images/icons/arrowdowngray.png mode change 100644 => 100755 frontend/public/images/icons/ban16.png mode change 100644 => 100755 frontend/public/images/icons/ban24.png mode change 100644 => 100755 frontend/public/images/icons/block16.png mode change 100644 => 100755 frontend/public/images/icons/block24.png mode change 100644 => 100755 frontend/public/images/icons/calendar.png mode change 100644 => 100755 frontend/public/images/icons/cam.png mode change 100644 => 100755 frontend/public/images/icons/cam16.png mode change 100644 => 100755 frontend/public/images/icons/cam24.png mode change 100644 => 100755 frontend/public/images/icons/cancel-friendship.png mode change 100644 => 100755 frontend/public/images/icons/chat.png mode change 100644 => 100755 frontend/public/images/icons/chaticon16.png mode change 100644 => 100755 frontend/public/images/icons/chaticon24.png mode change 100644 => 100755 frontend/public/images/icons/cloud.png mode change 100644 => 100755 frontend/public/images/icons/cloud16.png mode change 100644 => 100755 frontend/public/images/icons/cloud24.png mode change 100644 => 100755 frontend/public/images/icons/colorpicker.png mode change 100644 => 100755 frontend/public/images/icons/coming-soon.png mode change 100644 => 100755 frontend/public/images/icons/contact16.png mode change 100644 => 100755 frontend/public/images/icons/contact24.png mode change 100644 => 100755 frontend/public/images/icons/contactform.png mode change 100644 => 100755 frontend/public/images/icons/decline16.png mode change 100644 => 100755 frontend/public/images/icons/decline24.png mode change 100644 => 100755 frontend/public/images/icons/dice16.png mode change 100644 => 100755 frontend/public/images/icons/dice24.png mode change 100644 => 100755 frontend/public/images/icons/enter16.png mode change 100644 => 100755 frontend/public/images/icons/enter24.png mode change 100644 => 100755 frontend/public/images/icons/exit16.png mode change 100644 => 100755 frontend/public/images/icons/exit24.png mode change 100644 => 100755 frontend/public/images/icons/falukant.png mode change 100644 => 100755 frontend/public/images/icons/falukant/age.png mode change 100644 => 100755 frontend/public/images/icons/falukant/bank.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/bank.png mode change 100644 => 100755 frontend/public/images/icons/falukant/branches.png mode change 100644 => 100755 frontend/public/images/icons/falukant/church.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/darknet.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/darknet.png mode change 100644 => 100755 frontend/public/images/icons/falukant/director.png mode change 100644 => 100755 frontend/public/images/icons/falukant/directors.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/education.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/events.png mode change 100644 => 100755 frontend/public/images/icons/falukant/family.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/family.png mode change 100644 => 100755 frontend/public/images/icons/falukant/german.zip mode change 100644 => 100755 frontend/public/images/icons/falukant/health.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/house.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/house.png mode change 100644 => 100755 frontend/public/images/icons/falukant/messages.png mode change 100644 => 100755 frontend/public/images/icons/falukant/messages16.png mode change 100644 => 100755 frontend/public/images/icons/falukant/messages24.png mode change 100644 => 100755 frontend/public/images/icons/falukant/moneyhistory.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/moneyhistory.png mode change 100644 => 100755 frontend/public/images/icons/falukant/nobility.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/overview.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/overview.png mode change 100644 => 100755 frontend/public/images/icons/falukant/politics.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/politics.png mode change 100644 => 100755 frontend/public/images/icons/falukant/product-carrot.png mode change 100644 => 100755 frontend/public/images/icons/falukant/product-fish.png mode change 100644 => 100755 frontend/public/images/icons/falukant/product-grain.png mode change 100644 => 100755 frontend/public/images/icons/falukant/product-leather.png mode change 100644 => 100755 frontend/public/images/icons/falukant/product-meat.png mode change 100644 => 100755 frontend/public/images/icons/falukant/product-wheat.png mode change 100644 => 100755 frontend/public/images/icons/falukant/relationship-.png mode change 100644 => 100755 frontend/public/images/icons/falukant/relationship-engaged.png mode change 100644 => 100755 frontend/public/images/icons/falukant/relationship-married.png mode change 100644 => 100755 frontend/public/images/icons/falukant/relationship-widow.png mode change 100644 => 100755 frontend/public/images/icons/falukant/relationship-wooing.png mode change 100644 => 100755 frontend/public/images/icons/falukant/relationships.png mode change 100644 => 100755 frontend/public/images/icons/falukant/reputation.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/reputation.png mode change 100644 => 100755 frontend/public/images/icons/falukant/schooling.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/bank.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/church.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/darknet.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/directors.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/education.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/family.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/guild.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/health.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/house.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/moneyhistory.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/nobility.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/overview.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/politics.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/reputation.png mode change 100644 => 100755 frontend/public/images/icons/falukant/shortmap/towns.png mode change 100644 => 100755 frontend/public/images/icons/falukant/storage-field.png mode change 100644 => 100755 frontend/public/images/icons/falukant/storage-iron.png mode change 100644 => 100755 frontend/public/images/icons/falukant/storage-stone.png mode change 100644 => 100755 frontend/public/images/icons/falukant/storage-wood.png mode change 100644 => 100755 frontend/public/images/icons/falukant/title.png mode change 100644 => 100755 frontend/public/images/icons/falukant/towns.jpg mode change 100644 => 100755 frontend/public/images/icons/falukant/workshop.png mode change 100644 => 100755 frontend/public/images/icons/falukant16.png mode change 100644 => 100755 frontend/public/images/icons/falukant24.png mode change 100644 => 100755 frontend/public/images/icons/folder.png mode change 100644 => 100755 frontend/public/images/icons/folder16.png mode change 100644 => 100755 frontend/public/images/icons/folder24.png mode change 100644 => 100755 frontend/public/images/icons/friends16.png mode change 100644 => 100755 frontend/public/images/icons/friends24.png mode change 100644 => 100755 frontend/public/images/icons/friendsadd16.png mode change 100644 => 100755 frontend/public/images/icons/friendsadd24.png mode change 100644 => 100755 frontend/public/images/icons/game.png mode change 100644 => 100755 frontend/public/images/icons/home16.png mode change 100644 => 100755 frontend/public/images/icons/home24.png mode change 100644 => 100755 frontend/public/images/icons/imprint.png mode change 100644 => 100755 frontend/public/images/icons/imprint16.png mode change 100644 => 100755 frontend/public/images/icons/imprint24.png mode change 100644 => 100755 frontend/public/images/icons/info16.png mode change 100644 => 100755 frontend/public/images/icons/info24.png mode change 100644 => 100755 frontend/public/images/icons/lock16.png mode change 100644 => 100755 frontend/public/images/icons/lock24.png mode change 100644 => 100755 frontend/public/images/icons/logo_color.png mode change 100644 => 100755 frontend/public/images/icons/logo_mono.png mode change 100644 => 100755 frontend/public/images/icons/malefemale16.png mode change 100644 => 100755 frontend/public/images/icons/malefemale24.png mode change 100644 => 100755 frontend/public/images/icons/message.png mode change 100644 => 100755 frontend/public/images/icons/message16.png mode change 100644 => 100755 frontend/public/images/icons/message24.png mode change 100644 => 100755 frontend/public/images/icons/minigames.png mode change 100644 => 100755 frontend/public/images/icons/minigames16.png mode change 100644 => 100755 frontend/public/images/icons/minigames24.png mode change 100644 => 100755 frontend/public/images/icons/minimize16.png mode change 100644 => 100755 frontend/public/images/icons/minimize24.png mode change 100644 => 100755 frontend/public/images/icons/multichat.png mode change 100644 => 100755 frontend/public/images/icons/multichat16.png mode change 100644 => 100755 frontend/public/images/icons/multichat24.png mode change 100644 => 100755 frontend/public/images/icons/privacy.png mode change 100644 => 100755 frontend/public/images/icons/privacy16.png mode change 100644 => 100755 frontend/public/images/icons/privacy24.png mode change 100644 => 100755 frontend/public/images/icons/privacy30.png mode change 100644 => 100755 frontend/public/images/icons/privacy45.png mode change 100644 => 100755 frontend/public/images/icons/profile.png mode change 100644 => 100755 frontend/public/images/icons/profile16.png mode change 100644 => 100755 frontend/public/images/icons/profile24.png mode change 100644 => 100755 frontend/public/images/icons/rain.png mode change 100644 => 100755 frontend/public/images/icons/request-friendship.png mode change 100644 => 100755 frontend/public/images/icons/scream.png mode change 100644 => 100755 frontend/public/images/icons/search16.png mode change 100644 => 100755 frontend/public/images/icons/search24.png mode change 100644 => 100755 frontend/public/images/icons/sendmessage.png mode change 100644 => 100755 frontend/public/images/icons/settings.png mode change 100644 => 100755 frontend/public/images/icons/settings16.png mode change 100644 => 100755 frontend/public/images/icons/settings24.png mode change 100644 => 100755 frontend/public/images/icons/socialnetwork.png mode change 100644 => 100755 frontend/public/images/icons/sun-clouds.png mode change 100644 => 100755 frontend/public/images/icons/sun-rain.png mode change 100644 => 100755 frontend/public/images/icons/sun.png mode change 100644 => 100755 frontend/public/images/icons/unban16.png mode change 100644 => 100755 frontend/public/images/icons/unban24.png mode change 100644 => 100755 frontend/public/images/icons/unblock16.png mode change 100644 => 100755 frontend/public/images/icons/unblock24.png mode change 100644 => 100755 frontend/public/images/icons/usersearch16.png mode change 100644 => 100755 frontend/public/images/icons/usersearch24.png mode change 100644 => 100755 frontend/public/images/logos/logo.png mode change 100644 => 100755 frontend/public/images/mascot/mascot_female.old.png mode change 100644 => 100755 frontend/public/images/mascot/mascot_female.png mode change 100644 => 100755 frontend/public/images/mascot/mascot_male.old.png mode change 100644 => 100755 frontend/public/images/mascot/mascot_male.png mode change 100644 => 100755 frontend/public/images/screenshots/friends.png mode change 100644 => 100755 frontend/public/images/taxi/car1.svg mode change 100644 => 100755 frontend/public/images/taxi/car_blue.svg mode change 100644 => 100755 frontend/public/images/taxi/car_green.svg mode change 100644 => 100755 frontend/public/images/taxi/car_pink.svg mode change 100644 => 100755 frontend/public/images/taxi/car_red.svg mode change 100644 => 100755 frontend/public/images/taxi/car_turquise.svg mode change 100644 => 100755 frontend/public/images/taxi/cornerbottomleft.svg mode change 100644 => 100755 frontend/public/images/taxi/cornerbottomright.svg mode change 100644 => 100755 frontend/public/images/taxi/cornertopleft.svg mode change 100644 => 100755 frontend/public/images/taxi/cornertopright.svg mode change 100644 => 100755 frontend/public/images/taxi/cross.svg mode change 100644 => 100755 frontend/public/images/taxi/fuelhorizontal.svg mode change 100644 => 100755 frontend/public/images/taxi/fuelvertical.svg mode change 100644 => 100755 frontend/public/images/taxi/horizontal.svg mode change 100644 => 100755 frontend/public/images/taxi/house.svg mode change 100644 => 100755 frontend/public/images/taxi/house_small.png mode change 100644 => 100755 frontend/public/images/taxi/map-cornerbottomleft.svg mode change 100644 => 100755 frontend/public/images/taxi/map-cornerbottomright.svg mode change 100644 => 100755 frontend/public/images/taxi/map-cornertopleft.svg mode change 100644 => 100755 frontend/public/images/taxi/map-cornertopright.svg mode change 100644 => 100755 frontend/public/images/taxi/map-cross.svg mode change 100644 => 100755 frontend/public/images/taxi/map-fuelhorizontal.svg mode change 100644 => 100755 frontend/public/images/taxi/map-fuelvertical.svg mode change 100644 => 100755 frontend/public/images/taxi/map-horizontal.svg mode change 100644 => 100755 frontend/public/images/taxi/map-tdown.svg mode change 100644 => 100755 frontend/public/images/taxi/map-tleft.svg mode change 100644 => 100755 frontend/public/images/taxi/map-tright.svg mode change 100644 => 100755 frontend/public/images/taxi/map-tup.svg mode change 100644 => 100755 frontend/public/images/taxi/map-vertical.svg mode change 100644 => 100755 frontend/public/images/taxi/passenger1.png mode change 100644 => 100755 frontend/public/images/taxi/passenger2.png mode change 100644 => 100755 frontend/public/images/taxi/passenger3.png mode change 100644 => 100755 frontend/public/images/taxi/passenger4.png mode change 100644 => 100755 frontend/public/images/taxi/passenger5.png mode change 100644 => 100755 frontend/public/images/taxi/passenger6.png mode change 100644 => 100755 frontend/public/images/taxi/person.svg mode change 100644 => 100755 frontend/public/images/taxi/radar.svg mode change 100644 => 100755 frontend/public/images/taxi/redlight.svg mode change 100644 => 100755 frontend/public/images/taxi/taxi.svg mode change 100644 => 100755 frontend/public/images/taxi/tdown.svg mode change 100644 => 100755 frontend/public/images/taxi/ticket.svg mode change 100644 => 100755 frontend/public/images/taxi/tleft.svg mode change 100644 => 100755 frontend/public/images/taxi/trafficlight-green.svg mode change 100644 => 100755 frontend/public/images/taxi/trafficlight-red.svg mode change 100644 => 100755 frontend/public/images/taxi/trafficlight-redyellow.svg mode change 100644 => 100755 frontend/public/images/taxi/trafficlight-yellow.svg mode change 100644 => 100755 frontend/public/images/taxi/tright.svg mode change 100644 => 100755 frontend/public/images/taxi/tup.svg mode change 100644 => 100755 frontend/public/images/taxi/vertical.svg mode change 100644 => 100755 frontend/public/index.html mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/README.md mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/female.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/female_1y.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/female_2y.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/female_5y.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/female_adult.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/female_child.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/female_child_original.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/female_preteen.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/female_teen.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/female_toddler.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/female_toddler_old.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/male.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/male_adult.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/male_child.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/male_child_opt.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/male_preteen.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/male_teen.glb mode change 100644 => 100755 frontend/public/models/3d/falukant/characters/male_toddler.glb mode change 100644 => 100755 frontend/public/robots.txt mode change 100644 => 100755 frontend/public/sitemap.xml mode change 100644 => 100755 frontend/public/sounds/fail.mp3 mode change 100644 => 100755 frontend/public/sounds/match3/bomb.wav mode change 100644 => 100755 frontend/public/sounds/match3/falling.wav mode change 100644 => 100755 frontend/public/sounds/match3/move.wav mode change 100644 => 100755 frontend/public/sounds/match3/rainbow.wav mode change 100644 => 100755 frontend/public/sounds/match3/roket.wav mode change 100644 => 100755 frontend/public/sounds/success.mp3 mode change 100644 => 100755 frontend/scripts/audit-ceb-locale.mjs mode change 100644 => 100755 frontend/scripts/build-ceb-falukant-patch.mjs mode change 100644 => 100755 frontend/scripts/build-ceb-socialnetwork-patch.mjs mode change 100644 => 100755 frontend/scripts/ceb-patches/falukant-patch.json mode change 100644 => 100755 frontend/scripts/ceb-patches/socialnetwork-patch.json mode change 100644 => 100755 frontend/scripts/check-i18n-locale-parity.mjs mode change 100644 => 100755 frontend/scripts/generate-fr-locale-from-de.mjs mode change 100644 => 100755 frontend/scripts/merge-ceb-locale-patch.mjs mode change 100644 => 100755 frontend/scripts/optimize-glb.mjs mode change 100644 => 100755 frontend/scripts/smooth-fr-falukant.mjs mode change 100644 => 100755 frontend/src/App.vue mode change 100644 => 100755 frontend/src/api/blogApi.js mode change 100644 => 100755 frontend/src/api/chatApi.js mode change 100644 => 100755 frontend/src/api/friendshipApi.js mode change 100644 => 100755 frontend/src/assets/motorSound.js mode change 100644 => 100755 frontend/src/assets/styles.scss mode change 100644 => 100755 frontend/src/components/AppContent.vue mode change 100644 => 100755 frontend/src/components/AppFooter.vue mode change 100644 => 100755 frontend/src/components/AppHeader.vue mode change 100644 => 100755 frontend/src/components/AppNavigation.vue mode change 100644 => 100755 frontend/src/components/AppSectionBar.vue mode change 100644 => 100755 frontend/src/components/Character3D.vue mode change 100644 => 100755 frontend/src/components/DashboardWidget.vue mode change 100644 => 100755 frontend/src/components/DialogWidget.vue mode change 100644 => 100755 frontend/src/components/FolderItem.vue mode change 100644 => 100755 frontend/src/components/MessageboxWidget.vue mode change 100644 => 100755 frontend/src/components/QuillEditor.vue mode change 100644 => 100755 frontend/src/components/SettingsWidget.vue mode change 100644 => 100755 frontend/src/components/SimpleTabs.vue mode change 100644 => 100755 frontend/src/components/TermineWidget.vue mode change 100644 => 100755 frontend/src/components/admin/AdminUserSearch.vue mode change 100644 => 100755 frontend/src/components/falukant/BranchSelection.vue mode change 100644 => 100755 frontend/src/components/falukant/DirectorInfo.vue mode change 100644 => 100755 frontend/src/components/falukant/MessagesDialog.vue mode change 100644 => 100755 frontend/src/components/falukant/ProductionSection.vue mode change 100644 => 100755 frontend/src/components/falukant/RevenueSection.vue mode change 100644 => 100755 frontend/src/components/falukant/SaleSection.vue mode change 100644 => 100755 frontend/src/components/falukant/StatusBar.vue mode change 100644 => 100755 frontend/src/components/falukant/StorageSection.vue mode change 100644 => 100755 frontend/src/components/form/CheckboxWidget.vue mode change 100644 => 100755 frontend/src/components/form/DateInputWidget.vue mode change 100644 => 100755 frontend/src/components/form/FloatInputWidget.vue mode change 100644 => 100755 frontend/src/components/form/FormattedDropdown.vue mode change 100644 => 100755 frontend/src/components/form/InputNumberWidget.vue mode change 100644 => 100755 frontend/src/components/form/InputStringWidget.vue mode change 100644 => 100755 frontend/src/components/form/MultiselectWidget.vue mode change 100644 => 100755 frontend/src/components/form/SelectDropdownWidget.vue mode change 100644 => 100755 frontend/src/components/widgets/BirthdayWidget.vue mode change 100644 => 100755 frontend/src/components/widgets/FalukantWidget.vue mode change 100644 => 100755 frontend/src/components/widgets/ListWidget.vue mode change 100644 => 100755 frontend/src/components/widgets/MiniCalendarWidget.vue mode change 100644 => 100755 frontend/src/components/widgets/NewsWidget.vue mode change 100644 => 100755 frontend/src/components/widgets/UpcomingEventsWidget.vue mode change 100644 => 100755 frontend/src/components/widgets/VocabCoursesWidget.vue mode change 100644 => 100755 frontend/src/content/content.js mode change 100644 => 100755 frontend/src/content/publicGuides.js mode change 100644 => 100755 frontend/src/data/streetCoordinates.json mode change 100644 => 100755 frontend/src/dialogues/admin/AnswerContact.vue mode change 100644 => 100755 frontend/src/dialogues/admin/ForumAdminView.vue mode change 100644 => 100755 frontend/src/dialogues/admin/RoomDialog.vue mode change 100644 => 100755 frontend/src/dialogues/admin/WebSocketLogDialog.vue mode change 100644 => 100755 frontend/src/dialogues/auth/PasswordResetDialog.vue mode change 100644 => 100755 frontend/src/dialogues/auth/RegisterDialog.vue mode change 100644 => 100755 frontend/src/dialogues/chat/MultiChatDialog.vue mode change 100644 => 100755 frontend/src/dialogues/chat/RandomChatDialog.vue mode change 100644 => 100755 frontend/src/dialogues/falukant/BuyVehicleDialog.vue mode change 100644 => 100755 frontend/src/dialogues/falukant/ChildDetailsDialog.vue mode change 100644 => 100755 frontend/src/dialogues/falukant/CreateBranchDialog.vue mode change 100644 => 100755 frontend/src/dialogues/falukant/MoneyHistoryGraphDialog.vue mode change 100644 => 100755 frontend/src/dialogues/falukant/NewDirectorDialog.vue mode change 100644 => 100755 frontend/src/dialogues/socialnetwork/CreateFolderDialog.vue mode change 100644 => 100755 frontend/src/dialogues/socialnetwork/EditImageDialog.vue mode change 100644 => 100755 frontend/src/dialogues/socialnetwork/ShowImageDialog.vue mode change 100644 => 100755 frontend/src/dialogues/socialnetwork/UserProfileDialog.vue mode change 100644 => 100755 frontend/src/dialogues/socialnetwork/VocabPracticeDialog.vue mode change 100644 => 100755 frontend/src/dialogues/socialnetwork/VocabSearchDialog.vue mode change 100644 => 100755 frontend/src/dialogues/standard/ChooseDialog.vue mode change 100644 => 100755 frontend/src/dialogues/standard/ContactDialog.vue mode change 100644 => 100755 frontend/src/dialogues/standard/DataPrivacyDialog.vue mode change 100644 => 100755 frontend/src/dialogues/standard/ErrorDialog.vue mode change 100644 => 100755 frontend/src/dialogues/standard/ImprintDialog.vue mode change 100644 => 100755 frontend/src/dialogues/standard/MessageDialog.vue mode change 100644 => 100755 frontend/src/i18n/index.js mode change 100644 => 100755 frontend/src/i18n/locales/ceb/activate.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/admin.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/blog.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/chat.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/error.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/falukant.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/friends.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/general.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/header.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/home.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/message.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/minigames.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/navigation.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/passwordReset.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/personal.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/register.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/seo.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/settings.json mode change 100644 => 100755 frontend/src/i18n/locales/ceb/socialnetwork.json mode change 100644 => 100755 frontend/src/i18n/locales/de/activate.json mode change 100644 => 100755 frontend/src/i18n/locales/de/admin.json mode change 100644 => 100755 frontend/src/i18n/locales/de/blog.json mode change 100644 => 100755 frontend/src/i18n/locales/de/chat.json mode change 100644 => 100755 frontend/src/i18n/locales/de/error.json mode change 100644 => 100755 frontend/src/i18n/locales/de/falukant.json mode change 100644 => 100755 frontend/src/i18n/locales/de/friends.json mode change 100644 => 100755 frontend/src/i18n/locales/de/general.json mode change 100644 => 100755 frontend/src/i18n/locales/de/header.json mode change 100644 => 100755 frontend/src/i18n/locales/de/home.json mode change 100644 => 100755 frontend/src/i18n/locales/de/message.json mode change 100644 => 100755 frontend/src/i18n/locales/de/minigames.json mode change 100644 => 100755 frontend/src/i18n/locales/de/navigation.json mode change 100644 => 100755 frontend/src/i18n/locales/de/passwordReset.json mode change 100644 => 100755 frontend/src/i18n/locales/de/personal.json mode change 100644 => 100755 frontend/src/i18n/locales/de/register.json mode change 100644 => 100755 frontend/src/i18n/locales/de/seo.json mode change 100644 => 100755 frontend/src/i18n/locales/de/settings.json mode change 100644 => 100755 frontend/src/i18n/locales/de/socialnetwork.json mode change 100644 => 100755 frontend/src/i18n/locales/en/activate.json mode change 100644 => 100755 frontend/src/i18n/locales/en/admin.json mode change 100644 => 100755 frontend/src/i18n/locales/en/blog.json mode change 100644 => 100755 frontend/src/i18n/locales/en/chat.json mode change 100644 => 100755 frontend/src/i18n/locales/en/error.json mode change 100644 => 100755 frontend/src/i18n/locales/en/falukant.json mode change 100644 => 100755 frontend/src/i18n/locales/en/friends.json mode change 100644 => 100755 frontend/src/i18n/locales/en/general.json mode change 100644 => 100755 frontend/src/i18n/locales/en/header.json mode change 100644 => 100755 frontend/src/i18n/locales/en/home.json mode change 100644 => 100755 frontend/src/i18n/locales/en/message.json mode change 100644 => 100755 frontend/src/i18n/locales/en/minigames.json mode change 100644 => 100755 frontend/src/i18n/locales/en/navigation.json mode change 100644 => 100755 frontend/src/i18n/locales/en/passwordReset.json mode change 100644 => 100755 frontend/src/i18n/locales/en/personal.json mode change 100644 => 100755 frontend/src/i18n/locales/en/register.json mode change 100644 => 100755 frontend/src/i18n/locales/en/seo.json mode change 100644 => 100755 frontend/src/i18n/locales/en/settings.json mode change 100644 => 100755 frontend/src/i18n/locales/en/socialnetwork.json mode change 100644 => 100755 frontend/src/i18n/locales/es/activate.json mode change 100644 => 100755 frontend/src/i18n/locales/es/admin.json mode change 100644 => 100755 frontend/src/i18n/locales/es/blog.json mode change 100644 => 100755 frontend/src/i18n/locales/es/chat.json mode change 100644 => 100755 frontend/src/i18n/locales/es/error.json mode change 100644 => 100755 frontend/src/i18n/locales/es/falukant.json mode change 100644 => 100755 frontend/src/i18n/locales/es/friends.json mode change 100644 => 100755 frontend/src/i18n/locales/es/general.json mode change 100644 => 100755 frontend/src/i18n/locales/es/header.json mode change 100644 => 100755 frontend/src/i18n/locales/es/home.json mode change 100644 => 100755 frontend/src/i18n/locales/es/message.json mode change 100644 => 100755 frontend/src/i18n/locales/es/minigames.json mode change 100644 => 100755 frontend/src/i18n/locales/es/navigation.json mode change 100644 => 100755 frontend/src/i18n/locales/es/passwordReset.json mode change 100644 => 100755 frontend/src/i18n/locales/es/personal.json mode change 100644 => 100755 frontend/src/i18n/locales/es/register.json mode change 100644 => 100755 frontend/src/i18n/locales/es/seo.json mode change 100644 => 100755 frontend/src/i18n/locales/es/settings.json mode change 100644 => 100755 frontend/src/i18n/locales/es/socialnetwork.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/activate.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/admin.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/blog.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/chat.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/error.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/falukant.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/friends.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/general.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/header.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/home.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/message.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/minigames.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/navigation.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/passwordReset.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/personal.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/register.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/seo.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/settings.json mode change 100644 => 100755 frontend/src/i18n/locales/fr/socialnetwork.json mode change 100644 => 100755 frontend/src/i18n/supportedLocales.js mode change 100644 => 100755 frontend/src/main.js mode change 100644 => 100755 frontend/src/router/adminRoutes.js mode change 100644 => 100755 frontend/src/router/authRoutes.js mode change 100644 => 100755 frontend/src/router/blogRoutes.js mode change 100644 => 100755 frontend/src/router/falukantRoutes.js mode change 100644 => 100755 frontend/src/router/index.js mode change 100644 => 100755 frontend/src/router/marketingRoutes.js mode change 100644 => 100755 frontend/src/router/minigamesRoutes.js mode change 100644 => 100755 frontend/src/router/personalRoutes.js mode change 100644 => 100755 frontend/src/router/settingsRoutes.js mode change 100644 => 100755 frontend/src/router/socialRoutes.js mode change 100644 => 100755 frontend/src/services/chatWs.js mode change 100644 => 100755 frontend/src/store/index.js mode change 100644 => 100755 frontend/src/store/modules/dialogs.js mode change 100644 => 100755 frontend/src/utils/appConfig.js mode change 100644 => 100755 frontend/src/utils/axios.js mode change 100644 => 100755 frontend/src/utils/chatConfig.js mode change 100644 => 100755 frontend/src/utils/datetime.js mode change 100644 => 100755 frontend/src/utils/eventBus.js mode change 100644 => 100755 frontend/src/utils/feedback.js mode change 100644 => 100755 frontend/src/utils/knowledgeHelper.js mode change 100644 => 100755 frontend/src/utils/menuLoader.js mode change 100644 => 100755 frontend/src/utils/numberAnswerVariants.js mode change 100644 => 100755 frontend/src/utils/paramValues.js mode change 100644 => 100755 frontend/src/utils/seo.js mode change 100644 => 100755 frontend/src/utils/streetCoordinates.js mode change 100644 => 100755 frontend/src/utils/threeLoaders.js mode change 100644 => 100755 frontend/src/utils/threeModelRuntime.js mode change 100644 => 100755 frontend/src/utils/threeRuntime.js mode change 100644 => 100755 frontend/src/utils/vocabCourseTitle.js mode change 100644 => 100755 frontend/src/views/HomeView.vue mode change 100644 => 100755 frontend/src/views/admin/AdultVerificationView.vue mode change 100644 => 100755 frontend/src/views/admin/ChatRoomsView.vue mode change 100644 => 100755 frontend/src/views/admin/ContactsView.vue mode change 100644 => 100755 frontend/src/views/admin/EroticModerationView.vue mode change 100644 => 100755 frontend/src/views/admin/InterestsView.vue mode change 100644 => 100755 frontend/src/views/admin/MinigamesView.vue mode change 100644 => 100755 frontend/src/views/admin/ModerationReportsView.vue mode change 100644 => 100755 frontend/src/views/admin/RoomsView.vue mode change 100644 => 100755 frontend/src/views/admin/ServicesStatusView.vue mode change 100644 => 100755 frontend/src/views/admin/TaxiToolsView.vue mode change 100644 => 100755 frontend/src/views/admin/UserRightsView.vue mode change 100644 => 100755 frontend/src/views/admin/UserStatisticsView.vue mode change 100644 => 100755 frontend/src/views/admin/UsersView.vue mode change 100644 => 100755 frontend/src/views/admin/falukant/CreateNPCView.vue mode change 100644 => 100755 frontend/src/views/admin/falukant/EditUserView.vue mode change 100644 => 100755 frontend/src/views/admin/falukant/MapRegionsView.vue mode change 100644 => 100755 frontend/src/views/admin/falukant/WorkerSchedulesView.vue mode change 100644 => 100755 frontend/src/views/auth/ActivateView.vue mode change 100644 => 100755 frontend/src/views/auth/OAuthCallbackView.vue mode change 100644 => 100755 frontend/src/views/auth/OAuthUserCallbackView.vue mode change 100644 => 100755 frontend/src/views/blog/BlogEditorView.vue mode change 100644 => 100755 frontend/src/views/blog/BlogListView.vue mode change 100644 => 100755 frontend/src/views/blog/BlogView.vue mode change 100644 => 100755 frontend/src/views/blog/components/RichTextEditor.vue mode change 100644 => 100755 frontend/src/views/falukant/AllCharactersTest.vue mode change 100644 => 100755 frontend/src/views/falukant/BankView.vue mode change 100644 => 100755 frontend/src/views/falukant/BranchView.vue mode change 100644 => 100755 frontend/src/views/falukant/ChurchView.vue mode change 100644 => 100755 frontend/src/views/falukant/CreateView.vue mode change 100644 => 100755 frontend/src/views/falukant/DirectorView.vue mode change 100644 => 100755 frontend/src/views/falukant/EducationView.vue mode change 100644 => 100755 frontend/src/views/falukant/FamilyView.vue mode change 100644 => 100755 frontend/src/views/falukant/HealthView.vue mode change 100644 => 100755 frontend/src/views/falukant/HouseView.vue mode change 100644 => 100755 frontend/src/views/falukant/MoneyHistoryView.vue mode change 100644 => 100755 frontend/src/views/falukant/NobilityView.vue mode change 100644 => 100755 frontend/src/views/falukant/OverviewView.vue mode change 100644 => 100755 frontend/src/views/falukant/PoliticsView.vue mode change 100644 => 100755 frontend/src/views/falukant/ReputationView.vue mode change 100644 => 100755 frontend/src/views/falukant/UndergroundView.vue mode change 100644 => 100755 frontend/src/views/home/LoggedInView.vue mode change 100644 => 100755 frontend/src/views/home/NoLoginView.vue mode change 100644 => 100755 frontend/src/views/minigames/Match3Game.vue mode change 100644 => 100755 frontend/src/views/minigames/TaxiGame.vue mode change 100644 => 100755 frontend/src/views/minigames/TaxiGame.vue.backup2 mode change 100644 => 100755 frontend/src/views/personal/CalendarView.vue mode change 100644 => 100755 frontend/src/views/public/BisayaLearningLandingView.vue mode change 100644 => 100755 frontend/src/views/public/FalukantLandingView.vue mode change 100644 => 100755 frontend/src/views/public/GermanForBisayaLandingView.vue mode change 100644 => 100755 frontend/src/views/public/GuideArticleView.vue mode change 100644 => 100755 frontend/src/views/public/GuideListView.vue mode change 100644 => 100755 frontend/src/views/public/MinigamesLandingView.vue mode change 100644 => 100755 frontend/src/views/public/VocabLandingView.vue mode change 100644 => 100755 frontend/src/views/settings/AccountView.vue mode change 100644 => 100755 frontend/src/views/settings/FlirtView.vue mode change 100644 => 100755 frontend/src/views/settings/InterestsView.vue mode change 100644 => 100755 frontend/src/views/settings/LanguageAssistantView.vue mode change 100644 => 100755 frontend/src/views/settings/PersonalView.vue mode change 100644 => 100755 frontend/src/views/settings/SexualityView.vue mode change 100644 => 100755 frontend/src/views/settings/ViewView.vue mode change 100644 => 100755 frontend/src/views/social/DiaryView.vue mode change 100644 => 100755 frontend/src/views/social/EroticAccessView.vue mode change 100644 => 100755 frontend/src/views/social/EroticMediaPlaceholderView.vue mode change 100644 => 100755 frontend/src/views/social/EroticPicturesView.vue mode change 100644 => 100755 frontend/src/views/social/EroticVideosView.vue mode change 100644 => 100755 frontend/src/views/social/ForumTopicView.vue mode change 100644 => 100755 frontend/src/views/social/ForumView.vue mode change 100644 => 100755 frontend/src/views/social/FriendsView.vue mode change 100644 => 100755 frontend/src/views/social/GalleryView.vue mode change 100644 => 100755 frontend/src/views/social/GuestbookView.vue mode change 100644 => 100755 frontend/src/views/social/SearchView.vue mode change 100644 => 100755 frontend/src/views/social/VocabChapterView.vue mode change 100644 => 100755 frontend/src/views/social/VocabCourseListView.vue mode change 100644 => 100755 frontend/src/views/social/VocabCourseView.vue mode change 100644 => 100755 frontend/src/views/social/VocabDictionaryView.vue mode change 100644 => 100755 frontend/src/views/social/VocabLanguageView.vue mode change 100644 => 100755 frontend/src/views/social/VocabLessonReviewView.vue mode change 100644 => 100755 frontend/src/views/social/VocabLessonView.vue mode change 100644 => 100755 frontend/src/views/social/VocabNewLanguageView.vue mode change 100644 => 100755 frontend/src/views/social/VocabSubscribeView.vue mode change 100644 => 100755 frontend/src/views/social/VocabTrainerView.vue mode change 100644 => 100755 frontend/vite.config.js mode change 100644 => 100755 lib/uSockets.a mode change 100644 => 100755 mcp/language-course-server/.env.example mode change 100644 => 100755 mcp/language-course-server/README.md mode change 100644 => 100755 mcp/language-course-server/data/glossary.example.json mode change 100644 => 100755 mcp/language-course-server/data/glossary.json mode change 100644 => 100755 mcp/language-course-server/package-lock.json mode change 100644 => 100755 mcp/language-course-server/package.json mode change 100644 => 100755 mcp/language-course-server/src/llm.mjs mode change 100644 => 100755 mcp/language-course-server/src/server.mjs mode change 100644 => 100755 package-lock.json mode change 100644 => 100755 package.json mode change 100644 => 100755 renovate.json mode change 100644 => 100755 rollback.sh mode change 100644 => 100755 src/character_creation_worker.cpp mode change 100644 => 100755 src/character_creation_worker.h mode change 100644 => 100755 src/config.cpp mode change 100644 => 100755 src/config.h mode change 100644 => 100755 src/connection_guard.h mode change 100644 => 100755 src/connection_pool.cpp mode change 100644 => 100755 src/connection_pool.h mode change 100644 => 100755 src/database.cpp mode change 100644 => 100755 src/database.h mode change 100644 => 100755 src/director_worker.cpp mode change 100644 => 100755 src/director_worker.h mode change 100644 => 100755 src/houseworker.cpp mode change 100644 => 100755 src/houseworker.h mode change 100644 => 100755 src/main.cpp mode change 100644 => 100755 src/message_broker.cpp mode change 100644 => 100755 src/message_broker.h mode change 100644 => 100755 src/performance_utils.h mode change 100644 => 100755 src/politics_worker.cpp mode change 100644 => 100755 src/politics_worker.h mode change 100644 => 100755 src/produce_worker.cpp mode change 100644 => 100755 src/produce_worker.h mode change 100644 => 100755 src/stockagemanager.cpp mode change 100644 => 100755 src/stockagemanager.h mode change 100644 => 100755 src/underground_worker.cpp mode change 100644 => 100755 src/underground_worker.h mode change 100644 => 100755 src/usercharacterworker.cpp mode change 100644 => 100755 src/usercharacterworker.h mode change 100644 => 100755 src/utils.cpp mode change 100644 => 100755 src/utils.h mode change 100644 => 100755 src/valuerecalculationworker.cpp mode change 100644 => 100755 src/valuerecalculationworker.h mode change 100644 => 100755 src/websocket_server.cpp mode change 100644 => 100755 src/websocket_server.h mode change 100644 => 100755 src/worker.h mode change 100644 => 100755 ssl-certs/server.crt mode change 100644 => 100755 ssl-certs/server.key mode change 100644 => 100755 websocket-config-guide.md mode change 100644 => 100755 yourpart-daemon.service mode change 100644 => 100755 yourpart-http.conf mode change 100644 => 100755 yourpart-https-alternative.conf mode change 100644 => 100755 yourpart-https.conf mode change 100644 => 100755 yourpart-websocket-fixed.conf mode change 100644 => 100755 yourpart-ws-fixed.conf mode change 100644 => 100755 yourpart.service diff --git a/.codex b/.codex old mode 100644 new mode 100755 diff --git a/.cursor/rules/legacy-cpp-workers.mdc b/.cursor/rules/legacy-cpp-workers.mdc old mode 100644 new mode 100755 diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml old mode 100644 new mode 100755 diff --git a/.github/workflows/android-security.yml b/.github/workflows/android-security.yml new file mode 100644 index 0000000..6c6560c --- /dev/null +++ b/.github/workflows/android-security.yml @@ -0,0 +1,29 @@ +name: Android Security + +on: + push: + paths: + - 'android/native/**' + - '.github/workflows/android-security.yml' + pull_request: + paths: + - 'android/native/**' + - '.github/workflows/android-security.yml' + +jobs: + scan: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: '17' + - name: Android lint + working-directory: android/native + run: ./gradlew :app:lintProductionRelease + - name: Scan dependencies with OSV + uses: google/osv-scanner-action/osv-scanner-action@v2.0.2 + with: + scan-args: |- + --recursive android/native diff --git a/.github/workflows/android-tests.yml b/.github/workflows/android-tests.yml new file mode 100644 index 0000000..a5729d6 --- /dev/null +++ b/.github/workflows/android-tests.yml @@ -0,0 +1,50 @@ +name: Android Tests + +on: + push: + paths: + - "android/native/**" + - ".github/workflows/android-tests.yml" + pull_request: + paths: + - "android/native/**" + - ".github/workflows/android-tests.yml" + +permissions: + contents: read + +jobs: + unit-tests: + name: JVM tests + runs-on: ubuntu-latest + defaults: + run: + working-directory: android/native + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: "17" + - uses: gradle/actions/setup-gradle@v4 + - run: ./gradlew :app:testLocalDebugUnitTest + + instrumentation-tests: + name: Emulator tests + runs-on: ubuntu-latest + defaults: + run: + working-directory: android/native + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: "17" + - uses: gradle/actions/setup-gradle@v4 + - uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 35 + target: google_apis + arch: x86_64 + script: ./gradlew :app:connectedLocalDebugAndroidTest diff --git a/.gitignore b/.gitignore old mode 100644 new mode 100755 diff --git a/.vscode/settings.json b/.vscode/settings.json old mode 100644 new mode 100755 diff --git a/CHURCH_MODELS.md b/CHURCH_MODELS.md old mode 100644 new mode 100755 diff --git a/CHURCH_OFFICES.md b/CHURCH_OFFICES.md old mode 100644 new mode 100755 diff --git a/CMakeLists.txt b/CMakeLists.txt old mode 100644 new mode 100755 diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user old mode 100644 new mode 100755 diff --git a/CMakeLists.txt.user.d36652f b/CMakeLists.txt.user.d36652f old mode 100644 new mode 100755 diff --git a/DEPLOYMENT.md b/DEPLOYMENT.md old mode 100644 new mode 100755 diff --git a/OAUTH_CREDENTIALS_SETUP.md b/OAUTH_CREDENTIALS_SETUP.md old mode 100644 new mode 100755 diff --git a/PERFORMANCE_ANALYSIS.md b/PERFORMANCE_ANALYSIS.md old mode 100644 new mode 100755 diff --git a/README.md b/README.md old mode 100644 new mode 100755 diff --git a/README_MATCH3_CAMPAIGN.md b/README_MATCH3_CAMPAIGN.md old mode 100644 new mode 100755 diff --git a/SELL_OVERVIEW.md b/SELL_OVERVIEW.md old mode 100644 new mode 100755 diff --git a/SSL-SETUP.md b/SSL-SETUP.md old mode 100644 new mode 100755 diff --git a/android/.idea/android.iml b/android/.idea/android.iml old mode 100644 new mode 100755 diff --git a/android/.idea/caches/deviceStreaming.xml b/android/.idea/caches/deviceStreaming.xml old mode 100644 new mode 100755 index c5f29f1..e70eb94 --- a/android/.idea/caches/deviceStreaming.xml +++ b/android/.idea/caches/deviceStreaming.xml @@ -591,6 +591,18 @@