gitextract_h090yf1s/ ├── .gitchangelog.rc ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yaml │ │ ├── config.yml │ │ └── feature_request.yaml │ ├── auto_translator.py │ ├── change_version.sh │ ├── dependabot.yml │ ├── release_message.md │ ├── sync_translate.sh │ └── workflows/ │ ├── add_signed_microsft.yml │ ├── build.yml │ ├── ci.yml │ ├── release.yml │ ├── stale.yml │ └── winget.yml ├── .gitignore ├── .gitmodules ├── .metadata ├── .prettierrc ├── .release_notes.tpl ├── .stignore ├── .vscode/ │ ├── extensions.json │ ├── launch.json │ └── settings.json ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── HISTORY.md ├── LICENSE.md ├── Makefile ├── README.md ├── README_br.md ├── README_cn.md ├── README_fa.md ├── README_ja.md ├── README_ru.md ├── analysis_options.yaml ├── android/ │ ├── .gitignore │ ├── .stignore │ ├── app/ │ │ ├── build.gradle │ │ ├── libs/ │ │ │ └── .gitkeep │ │ └── src/ │ │ ├── debug/ │ │ │ └── AndroidManifest.xml │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── aidl/ │ │ │ │ └── com/ │ │ │ │ └── hiddify/ │ │ │ │ └── hiddify/ │ │ │ │ ├── IService.aidl │ │ │ │ └── IServiceCallback.aidl │ │ │ ├── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── hiddify/ │ │ │ │ └── hiddify/ │ │ │ │ ├── ActiveGroupsChannel.kt │ │ │ │ ├── Application.kt │ │ │ │ ├── EventHandler.kt │ │ │ │ ├── GroupsChannel.kt │ │ │ │ ├── LogHandler.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── MethodHandler.kt │ │ │ │ ├── PlatformSettingsHandler.kt │ │ │ │ ├── Settings.kt │ │ │ │ ├── ShortcutActivity.kt │ │ │ │ ├── StatsChannel.kt │ │ │ │ ├── bg/ │ │ │ │ │ ├── AppChangeReceiver.kt │ │ │ │ │ ├── BootReceiver.kt │ │ │ │ │ ├── BoxService.kt │ │ │ │ │ ├── Bugs.kt │ │ │ │ │ ├── DefaultNetworkListener.kt │ │ │ │ │ ├── DefaultNetworkMonitor.kt │ │ │ │ │ ├── LocalResolver.kt │ │ │ │ │ ├── PlatformInterfaceWrapper.kt │ │ │ │ │ ├── ProxyService.kt │ │ │ │ │ ├── ServiceBinder.kt │ │ │ │ │ ├── ServiceConnection.kt │ │ │ │ │ ├── ServiceNotification.kt │ │ │ │ │ ├── TileService.kt │ │ │ │ │ └── VPNService.kt │ │ │ │ ├── constant/ │ │ │ │ │ ├── Action.kt │ │ │ │ │ ├── Alert.kt │ │ │ │ │ ├── PerAppProxyMode.kt │ │ │ │ │ ├── ServiceMode.kt │ │ │ │ │ ├── SettingsKey.kt │ │ │ │ │ ├── Status.kt │ │ │ │ │ └── bugs.kt │ │ │ │ ├── ktx/ │ │ │ │ │ ├── Continuations.kt │ │ │ │ │ └── Wrappers.kt │ │ │ │ └── utils/ │ │ │ │ ├── CommandClient.kt │ │ │ │ ├── GrpcProvider.kt │ │ │ │ └── OutboundMapper.kt │ │ │ ├── protos/ │ │ │ │ ├── extension/ │ │ │ │ │ ├── extension.proto │ │ │ │ │ └── extension_service.proto │ │ │ │ └── v2/ │ │ │ │ ├── config/ │ │ │ │ │ └── route_rule.proto │ │ │ │ ├── hcommon/ │ │ │ │ │ └── common.proto │ │ │ │ ├── hcore/ │ │ │ │ │ ├── hcore.proto │ │ │ │ │ ├── hcore_service.proto │ │ │ │ │ └── tunnelservice/ │ │ │ │ │ ├── tunnel.proto │ │ │ │ │ └── tunnel_service.proto │ │ │ │ ├── hello/ │ │ │ │ │ ├── hello.proto │ │ │ │ │ └── hello_service.proto │ │ │ │ ├── hiddifyoptions/ │ │ │ │ │ └── hiddify_options.proto │ │ │ │ └── profile/ │ │ │ │ ├── profile.proto │ │ │ │ └── profile_service.proto │ │ │ └── res/ │ │ │ ├── drawable/ │ │ │ │ ├── android12splash.xml │ │ │ │ ├── ic_banner_foreground.xml │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ ├── ic_launcher_foreground.xml │ │ │ │ └── launch_background.xml │ │ │ ├── drawable-v21/ │ │ │ │ └── launch_background.xml │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ ├── ic_banner.xml │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── values/ │ │ │ │ ├── colors.xml │ │ │ │ ├── ic_banner_background.xml │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ ├── values-night/ │ │ │ │ └── styles.xml │ │ │ ├── values-night-v31/ │ │ │ │ └── styles.xml │ │ │ ├── values-v31/ │ │ │ │ └── styles.xml │ │ │ └── xml/ │ │ │ ├── network_security_config.xml │ │ │ └── shortcuts.xml │ │ └── profile/ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ └── settings.gradle ├── appcast.xml ├── assets/ │ ├── core/ │ │ └── .gitkeep │ ├── fonts/ │ │ └── emoji_source.txt │ ├── images/ │ │ └── convert_icon.sh │ └── translations/ │ ├── ar.i18n.json │ ├── en.i18n.json │ ├── es.i18n.json │ ├── fa.i18n.json │ ├── fr.i18n.json │ ├── id.i18n.json │ ├── pt-BR.i18n.json │ ├── ru.i18n.json │ ├── tr.i18n.json │ ├── zh-CN.i18n.json │ └── zh-TW.i18n.json ├── build.yaml ├── dependencies.properties ├── devtools_options.yaml ├── ios/ │ ├── .gitignore │ ├── .stignore │ ├── Base.xcconfig │ ├── Flutter/ │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Frameworks/ │ │ └── .gitkeep │ ├── HiddifyPacketTunnel/ │ │ ├── HiddifyPacketTunnel.entitlements │ │ ├── Info.plist │ │ ├── Logger.swift │ │ ├── PacketTunnelProvider.swift │ │ ├── PrivacyInfo.xcprivacy │ │ ├── SingBox/ │ │ │ ├── Extension+RunBlocking.swift │ │ │ ├── ExtensionPlatformInterface.swift │ │ │ ├── ExtensionProvider.swift │ │ │ └── SingBox.swift │ │ └── TrafficReader.swift │ ├── Local Packages/ │ │ └── Package.swift │ ├── Podfile │ ├── Runner/ │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets/ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── LaunchBackground.imageset/ │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.imageset/ │ │ │ ├── Contents.json │ │ │ └── README.md │ │ ├── Base.lproj/ │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Extensions/ │ │ │ └── Bundle+Properties.swift │ │ ├── Handlers/ │ │ │ ├── ActiveGroupsEventHandler.swift │ │ │ ├── AlertsEventHandler.swift │ │ │ ├── FileMethodHandler.swift │ │ │ ├── GroupsEventHandler.swift │ │ │ ├── LogsEventHandler.swift │ │ │ ├── MethodHandler.swift │ │ │ ├── PlatformMethodHandler.swift │ │ │ ├── StatsEventHandler.swift │ │ │ └── StatusEventHandler.swift │ │ ├── Info.plist │ │ ├── PrivacyInfo.xcprivacy │ │ ├── Runner-Bridging-Header.h │ │ ├── Runner.entitlements │ │ └── VPN/ │ │ ├── Helpers/ │ │ │ └── Stored.swift │ │ ├── VPNConfig.swift │ │ └── VPNManager.swift │ ├── Runner.xcodeproj/ │ │ ├── project.pbxproj │ │ ├── project.xcworkspace/ │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata/ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ │ └── xcshareddata/ │ │ └── xcschemes/ │ │ ├── HiddifyPacketTunnel.xcscheme │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace/ │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata/ │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings │ ├── RunnerTests/ │ │ └── RunnerTests.swift │ ├── Shared/ │ │ ├── CommandClient.swift │ │ ├── FilePath.swift │ │ └── Outbound.swift │ ├── exportOptions.plist │ └── packaging/ │ └── ios/ │ └── make_config.yaml ├── lib/ │ ├── bootstrap.dart │ ├── core/ │ │ ├── analytics/ │ │ │ ├── analytics_controller.dart │ │ │ ├── analytics_filter.dart │ │ │ └── analytics_logger.dart │ │ ├── app_info/ │ │ │ └── app_info_provider.dart │ │ ├── db/ │ │ │ ├── converters/ │ │ │ │ └── duration_converter.dart │ │ │ ├── db.dart │ │ │ ├── db.steps.dart │ │ │ ├── provider/ │ │ │ │ └── db_providers.dart │ │ │ └── schemas/ │ │ │ └── db/ │ │ │ ├── drift_schema_v1.json │ │ │ ├── drift_schema_v2.json │ │ │ ├── drift_schema_v3.json │ │ │ ├── drift_schema_v4.json │ │ │ └── drift_schema_v5.json │ │ ├── directories/ │ │ │ └── directories_provider.dart │ │ ├── haptic/ │ │ │ └── haptic_service.dart │ │ ├── http_client/ │ │ │ ├── dio_http_client.dart │ │ │ └── http_client_provider.dart │ │ ├── localization/ │ │ │ ├── locale_extensions.dart │ │ │ ├── locale_preferences.dart │ │ │ └── translations.dart │ │ ├── logger/ │ │ │ ├── custom_logger.dart │ │ │ ├── logger.dart │ │ │ └── logger_controller.dart │ │ ├── model/ │ │ │ ├── app_info_entity.dart │ │ │ ├── constants.dart │ │ │ ├── directories.dart │ │ │ ├── environment.dart │ │ │ ├── failures.dart │ │ │ ├── optional_range.dart │ │ │ └── region.dart │ │ ├── notification/ │ │ │ └── in_app_notification_controller.dart │ │ ├── preferences/ │ │ │ ├── actions_at_closing.dart │ │ │ ├── general_preferences.dart │ │ │ ├── preferences_migration.dart │ │ │ └── preferences_provider.dart │ │ ├── router/ │ │ │ ├── adaptive_layout/ │ │ │ │ ├── my_adaptive_layout.dart │ │ │ │ └── shell_route_action.dart │ │ │ ├── bottom_sheets/ │ │ │ │ ├── bottom_sheets_notifier.dart │ │ │ │ └── widgets/ │ │ │ │ ├── auto_apps_selection_modal.dart │ │ │ │ └── quick_settings_modal.dart │ │ │ ├── deep_linking/ │ │ │ │ ├── my_app_links.dart │ │ │ │ └── url_protocol/ │ │ │ │ ├── README_url_protocol.md │ │ │ │ ├── api.dart │ │ │ │ ├── protocol.dart │ │ │ │ ├── web_url_protocol.dart │ │ │ │ └── windows_protocol.dart │ │ │ ├── dialog/ │ │ │ │ ├── dialog_notifier.dart │ │ │ │ └── widgets/ │ │ │ │ ├── action_at_closing_dialog.dart │ │ │ │ ├── confirmation_dialog.dart │ │ │ │ ├── custom_alert_dialog.dart │ │ │ │ ├── experimental_feature_notice.dart │ │ │ │ ├── free_profile_consent_dialog.dart │ │ │ │ ├── new_version_dialog.dart │ │ │ │ ├── no_active_profile_dialog.dart │ │ │ │ ├── ok_dialog.dart │ │ │ │ ├── proxy_info_dialog.dart │ │ │ │ ├── save_dialog.dart │ │ │ │ ├── setting_checkbox_dialog.dart │ │ │ │ ├── setting_input_dialog.dart │ │ │ │ ├── setting_picker_dialog.dart │ │ │ │ ├── setting_radio_dialog.dart │ │ │ │ ├── setting_slider_dialog.dart │ │ │ │ ├── setting_text_dialog.dart │ │ │ │ ├── sort_profiles_dialog.dart │ │ │ │ ├── unknown_domains_warning_dialog.dart │ │ │ │ ├── warp_license_dialog.dart │ │ │ │ └── window_closing_dialog.dart │ │ │ └── go_router/ │ │ │ ├── go_router_notifier.dart │ │ │ ├── helper/ │ │ │ │ ├── active_breakpoint_notifier.dart │ │ │ │ ├── custom_transition.dart │ │ │ │ └── popup_count_notifier.dart │ │ │ ├── refresh_listenable.dart │ │ │ └── routing_config_notifier.dart │ │ ├── theme/ │ │ │ ├── app_theme.dart │ │ │ ├── app_theme_mode.dart │ │ │ ├── theme_extensions.dart │ │ │ └── theme_preferences.dart │ │ ├── utils/ │ │ │ ├── exception_handler.dart │ │ │ ├── ffi_utils.dart │ │ │ ├── ip_utils.dart │ │ │ ├── json_converters.dart │ │ │ ├── laststeam.dart │ │ │ ├── preferences_utils.dart │ │ │ └── throttler.dart │ │ └── widget/ │ │ ├── adaptive_icon.dart │ │ ├── adaptive_menu.dart │ │ ├── animated_text.dart │ │ ├── animated_visibility.dart │ │ ├── shimmer_skeleton.dart │ │ ├── skeleton_widget.dart │ │ ├── spaced_list_widget.dart │ │ └── tip_card.dart │ ├── features/ │ │ ├── about/ │ │ │ └── widget/ │ │ │ └── about_page.dart │ │ ├── app/ │ │ │ └── widget/ │ │ │ └── app.dart │ │ ├── app_update/ │ │ │ ├── data/ │ │ │ │ ├── app_update_data_providers.dart │ │ │ │ ├── app_update_repository.dart │ │ │ │ └── github_release_parser.dart │ │ │ ├── model/ │ │ │ │ ├── app_update_failure.dart │ │ │ │ └── remote_version_entity.dart │ │ │ └── notifier/ │ │ │ ├── app_update_notifier.dart │ │ │ └── app_update_state.dart │ │ ├── auto_start/ │ │ │ └── notifier/ │ │ │ └── auto_start_notifier.dart │ │ ├── common/ │ │ │ ├── custom_text_scroll.dart │ │ │ ├── general_pref_tiles.dart │ │ │ ├── qr_code_dialog.dart │ │ │ └── qr_code_scanner_screen.dart │ │ ├── connection/ │ │ │ ├── data/ │ │ │ │ ├── connection_data_providers.dart │ │ │ │ └── connection_repository.dart │ │ │ ├── model/ │ │ │ │ ├── connection_failure.dart │ │ │ │ └── connection_status.dart │ │ │ ├── notifier/ │ │ │ │ └── connection_notifier.dart │ │ │ └── widget/ │ │ │ └── connection_wrapper.dart │ │ ├── deep_link/ │ │ │ └── notifier/ │ │ │ └── deep_link_notifier.dart │ │ ├── home/ │ │ │ └── widget/ │ │ │ ├── connection_button.dart │ │ │ ├── empty_profiles_home_body.dart │ │ │ ├── home_page.dart │ │ │ ├── new_con_button.dart │ │ │ └── new_connection_button.dart │ │ ├── intro/ │ │ │ └── widget/ │ │ │ └── intro_page.dart │ │ ├── log/ │ │ │ ├── data/ │ │ │ │ ├── log_data_providers.dart │ │ │ │ ├── log_parser.dart │ │ │ │ ├── log_path_resolver.dart │ │ │ │ └── log_repository.dart │ │ │ ├── model/ │ │ │ │ ├── log_entity.dart │ │ │ │ ├── log_failure.dart │ │ │ │ └── log_level.dart │ │ │ └── overview/ │ │ │ ├── logs_overview_notifier.dart │ │ │ ├── logs_overview_state.dart │ │ │ └── logs_page.dart │ │ ├── per_app_proxy/ │ │ │ ├── data/ │ │ │ │ ├── app_proxy_data_source.dart │ │ │ │ ├── auto_selection_repository.dart │ │ │ │ ├── auto_selection_repository_provider.dart │ │ │ │ └── selected_data_provider.dart │ │ │ ├── model/ │ │ │ │ ├── app_package_info.dart │ │ │ │ ├── per_app_proxy_backup.dart │ │ │ │ ├── per_app_proxy_mode.dart │ │ │ │ └── pkg_flag.dart │ │ │ └── overview/ │ │ │ ├── per_app_proxy_loading_notifier.dart │ │ │ ├── per_app_proxy_notifier.dart │ │ │ ├── per_app_proxy_page.dart │ │ │ └── per_app_proxy_service_notifier.dart │ │ ├── platform_specific/ │ │ │ └── android_quick_settings_tile.dart │ │ ├── profile/ │ │ │ ├── add/ │ │ │ │ ├── add_profile_modal.dart │ │ │ │ ├── model/ │ │ │ │ │ └── free_profiles_model.dart │ │ │ │ └── widgets/ │ │ │ │ ├── fix_btn.dart │ │ │ │ ├── fix_btns.dart │ │ │ │ ├── free_btn.dart │ │ │ │ ├── free_btns.dart │ │ │ │ ├── loading.dart │ │ │ │ ├── nav_bar.dart │ │ │ │ └── widgets.dart │ │ │ ├── data/ │ │ │ │ ├── profile_data_mapper.dart │ │ │ │ ├── profile_data_providers.dart │ │ │ │ ├── profile_data_source.dart │ │ │ │ ├── profile_parser.dart │ │ │ │ ├── profile_path_resolver.dart │ │ │ │ └── profile_repository.dart │ │ │ ├── details/ │ │ │ │ ├── json_editor.dart │ │ │ │ ├── profile_details_notifier.dart │ │ │ │ ├── profile_details_page.dart │ │ │ │ └── profile_details_state.dart │ │ │ ├── model/ │ │ │ │ ├── profile_entity.dart │ │ │ │ ├── profile_failure.dart │ │ │ │ └── profile_sort_enum.dart │ │ │ ├── notifier/ │ │ │ │ ├── active_profile_notifier.dart │ │ │ │ ├── profile_notifier.dart │ │ │ │ └── profiles_update_notifier.dart │ │ │ ├── overview/ │ │ │ │ ├── profiles_modal.dart │ │ │ │ ├── profiles_notifier.dart │ │ │ │ └── profiles_page.dart │ │ │ └── widget/ │ │ │ ├── profile_tile.dart │ │ │ └── profile_tile_main.dart │ │ ├── proxy/ │ │ │ ├── active/ │ │ │ │ ├── active_proxy_card.dart │ │ │ │ ├── active_proxy_delay_indicator.dart │ │ │ │ ├── active_proxy_footer_old.dart │ │ │ │ ├── active_proxy_notifier.dart │ │ │ │ └── ip_widget.dart │ │ │ ├── data/ │ │ │ │ ├── proxy_data_providers.dart │ │ │ │ └── proxy_repository.dart │ │ │ ├── model/ │ │ │ │ ├── ip_info_entity.dart │ │ │ │ ├── proxy_entity.dart │ │ │ │ └── proxy_failure.dart │ │ │ ├── overview/ │ │ │ │ ├── proxies_overview_notifier.dart │ │ │ │ └── proxies_overview_page.dart │ │ │ └── widget/ │ │ │ └── proxy_tile.dart │ │ ├── route_rules/ │ │ │ ├── notifier/ │ │ │ │ ├── android_apps_notifier.dart │ │ │ │ ├── generic_list_notifier.dart │ │ │ │ ├── rule_notifier.dart │ │ │ │ └── rules_notifier.dart │ │ │ ├── overview/ │ │ │ │ ├── android_apps_page.dart │ │ │ │ ├── generic_list_page.dart │ │ │ │ ├── rule_page.dart │ │ │ │ └── rules_page.dart │ │ │ └── widget/ │ │ │ ├── rule_tile.dart │ │ │ ├── setting_checkbox.dart │ │ │ ├── setting_detail_chips.dart │ │ │ ├── setting_divider.dart │ │ │ ├── setting_generic_list.dart │ │ │ ├── setting_radio.dart │ │ │ └── setting_text.dart │ │ ├── settings/ │ │ │ ├── data/ │ │ │ │ ├── battery_optimization_repository.dart │ │ │ │ ├── config_option_data_providers.dart │ │ │ │ └── config_option_repository.dart │ │ │ ├── model/ │ │ │ │ ├── config_option_failure.dart │ │ │ │ └── settings_failure.dart │ │ │ ├── notifier/ │ │ │ │ ├── battery_optimization/ │ │ │ │ │ └── battery_optimizations_notifier.dart │ │ │ │ ├── config_option/ │ │ │ │ │ └── config_option_notifier.dart │ │ │ │ ├── reset_tunnel/ │ │ │ │ │ └── reset_tunnel_notifier.dart │ │ │ │ └── warp_option/ │ │ │ │ └── warp_option_notifier.dart │ │ │ ├── overview/ │ │ │ │ ├── sections/ │ │ │ │ │ ├── dns_options_page.dart │ │ │ │ │ ├── general_page.dart │ │ │ │ │ ├── inbound_options_page.dart │ │ │ │ │ ├── route_options_page.dart │ │ │ │ │ ├── tls_tricks_page.dart │ │ │ │ │ └── warp_options_page.dart │ │ │ │ └── settings_page.dart │ │ │ └── widget/ │ │ │ ├── autocomplete_field.dart │ │ │ └── preference_tile.dart │ │ ├── shortcut/ │ │ │ └── shortcut_wrapper.dart │ │ ├── stats/ │ │ │ ├── data/ │ │ │ │ ├── stats_data_providers.dart │ │ │ │ └── stats_repository.dart │ │ │ ├── model/ │ │ │ │ ├── stats_entity.dart │ │ │ │ └── stats_failure.dart │ │ │ ├── notifier/ │ │ │ │ └── stats_notifier.dart │ │ │ └── widget/ │ │ │ ├── connection_stats_card.dart │ │ │ ├── side_bar_stats_overview.dart │ │ │ └── stats_card.dart │ │ ├── system_tray/ │ │ │ ├── notifier/ │ │ │ │ └── system_tray_notifier.dart │ │ │ └── widget/ │ │ │ └── system_tray_wrapper.dart │ │ └── window/ │ │ ├── notifier/ │ │ │ └── window_notifier.dart │ │ └── widget/ │ │ └── window_wrapper.dart │ ├── gen/ │ │ └── hiddify_core_generated_bindings.dart │ ├── hiddifycore/ │ │ ├── core_interface/ │ │ │ ├── core_interface.dart │ │ │ ├── core_interface_desktop.dart │ │ │ ├── core_interface_mobile.dart │ │ │ ├── core_interface_wrapper.dart │ │ │ ├── core_interface_wrapper_stub.dart │ │ │ └── mtls_channel_cred.dart │ │ ├── generated/ │ │ │ ├── extension/ │ │ │ │ ├── extension.pb.dart │ │ │ │ ├── extension.pbenum.dart │ │ │ │ ├── extension.pbjson.dart │ │ │ │ ├── extension_service.pb.dart │ │ │ │ ├── extension_service.pbenum.dart │ │ │ │ ├── extension_service.pbgrpc.dart │ │ │ │ └── extension_service.pbjson.dart │ │ │ ├── google/ │ │ │ │ └── protobuf/ │ │ │ │ ├── timestamp.pb.dart │ │ │ │ ├── timestamp.pbenum.dart │ │ │ │ └── timestamp.pbjson.dart │ │ │ └── v2/ │ │ │ ├── common/ │ │ │ │ ├── common.pb.dart │ │ │ │ ├── common.pbenum.dart │ │ │ │ └── common.pbjson.dart │ │ │ ├── config/ │ │ │ │ ├── route_rule.pb.dart │ │ │ │ ├── route_rule.pbenum.dart │ │ │ │ └── route_rule.pbjson.dart │ │ │ ├── hcommon/ │ │ │ │ ├── common.pb.dart │ │ │ │ ├── common.pbenum.dart │ │ │ │ └── common.pbjson.dart │ │ │ ├── hcore/ │ │ │ │ ├── hcore.pb.dart │ │ │ │ ├── hcore.pbenum.dart │ │ │ │ ├── hcore.pbjson.dart │ │ │ │ ├── hcore_service.pb.dart │ │ │ │ ├── hcore_service.pbenum.dart │ │ │ │ ├── hcore_service.pbgrpc.dart │ │ │ │ ├── hcore_service.pbjson.dart │ │ │ │ └── tunnelservice/ │ │ │ │ ├── tunnel.pb.dart │ │ │ │ ├── tunnel.pbenum.dart │ │ │ │ ├── tunnel.pbjson.dart │ │ │ │ ├── tunnel_service.pb.dart │ │ │ │ ├── tunnel_service.pbenum.dart │ │ │ │ ├── tunnel_service.pbgrpc.dart │ │ │ │ └── tunnel_service.pbjson.dart │ │ │ ├── hello/ │ │ │ │ ├── hello.pb.dart │ │ │ │ ├── hello.pbenum.dart │ │ │ │ ├── hello.pbjson.dart │ │ │ │ ├── hello_service.pb.dart │ │ │ │ ├── hello_service.pbenum.dart │ │ │ │ ├── hello_service.pbgrpc.dart │ │ │ │ └── hello_service.pbjson.dart │ │ │ ├── hiddifyoptions/ │ │ │ │ ├── hiddify_options.pb.dart │ │ │ │ ├── hiddify_options.pbenum.dart │ │ │ │ └── hiddify_options.pbjson.dart │ │ │ └── profile/ │ │ │ ├── profile.pb.dart │ │ │ ├── profile.pbenum.dart │ │ │ ├── profile.pbjson.dart │ │ │ ├── profile_service.pb.dart │ │ │ ├── profile_service.pbenum.dart │ │ │ ├── profile_service.pbgrpc.dart │ │ │ └── profile_service.pbjson.dart │ │ ├── hiddify_core_service.dart │ │ ├── hiddify_core_service_provider.dart │ │ └── init_signal.dart │ ├── main.dart │ ├── main_prod.dart │ ├── riverpod_observer.dart │ ├── singbox/ │ │ └── model/ │ │ ├── core_status.dart │ │ ├── singbox_config_enum.dart │ │ ├── singbox_config_option.dart │ │ ├── singbox_outbound.dart │ │ ├── singbox_proxy_type.dart │ │ ├── singbox_rule.dart │ │ ├── singbox_stats.dart │ │ └── warp_account.dart │ └── utils/ │ ├── alerts.dart │ ├── async_mutation.dart │ ├── bottom_sheet_page.dart │ ├── callback_debouncer.dart │ ├── custom_loggers.dart │ ├── custom_text_form_field.dart │ ├── date_time_formatter.dart │ ├── link_parsers.dart │ ├── mutation_state.dart │ ├── number_formatters.dart │ ├── placeholders.dart │ ├── platform_utils.dart │ ├── riverpod_utils.dart │ ├── sentry_riverpod_observer.dart │ ├── sentry_utils.dart │ ├── text_utils.dart │ ├── uri_utils.dart │ ├── utils.dart │ └── validators.dart ├── linux/ │ ├── .gitignore │ ├── .stignore │ ├── CMakeLists.txt │ ├── flutter/ │ │ ├── CMakeLists.txt │ │ ├── generated_plugin_registrant.cc │ │ ├── generated_plugin_registrant.h │ │ └── generated_plugins.cmake │ ├── main.cc │ ├── my_application.cc │ ├── my_application.h │ └── packaging/ │ ├── app.hiddify.com.appdata.xml │ ├── appimage/ │ │ ├── AppRun │ │ └── make_config.yaml │ ├── deb/ │ │ └── make_config.yaml │ └── rpm/ │ └── make_config.yaml ├── linux_deps.list ├── macos/ │ ├── .gitignore │ ├── .stignore │ ├── Flutter/ │ │ ├── Flutter-Debug.xcconfig │ │ ├── Flutter-Release.xcconfig │ │ └── GeneratedPluginRegistrant.swift │ ├── Podfile │ ├── Runner/ │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets/ │ │ │ └── AppIcon.appiconset/ │ │ │ └── Contents.json │ │ ├── Base.lproj/ │ │ │ └── MainMenu.xib │ │ ├── Configs/ │ │ │ ├── AppInfo.xcconfig │ │ │ ├── Debug.xcconfig │ │ │ ├── Release.xcconfig │ │ │ └── Warnings.xcconfig │ │ ├── DebugProfile.entitlements │ │ ├── Info.plist │ │ ├── MainFlutterWindow.swift │ │ └── Release.entitlements │ ├── Runner.xcodeproj/ │ │ ├── project.pbxproj │ │ ├── project.xcworkspace/ │ │ │ └── xcshareddata/ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── swiftpm/ │ │ │ └── Package.resolved │ │ └── xcshareddata/ │ │ └── xcschemes/ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace/ │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata/ │ │ ├── IDEWorkspaceChecks.plist │ │ └── swiftpm/ │ │ └── Package.resolved │ ├── RunnerTests/ │ │ └── RunnerTests.swift │ └── packaging/ │ ├── dmg/ │ │ └── make_config.yaml │ └── pkg/ │ └── make_config.yaml ├── project.inlang/ │ ├── project_id │ └── settings.json ├── pubspec.yaml ├── scripts/ │ └── package_windows.ps1 ├── snap/ │ └── gui/ │ └── app_icon.desktop ├── test/ │ ├── core/ │ │ └── utils/ │ │ └── ip_utils_test.dart │ ├── drift/ │ │ └── db/ │ │ ├── generated/ │ │ │ ├── schema.dart │ │ │ ├── schema_v1.dart │ │ │ ├── schema_v2.dart │ │ │ ├── schema_v3.dart │ │ │ ├── schema_v4.dart │ │ │ └── schema_v5.dart │ │ └── migration_test.dart │ └── features/ │ └── profile/ │ └── data/ │ └── profile_parser_test.dart ├── test.configs/ │ ├── README.md │ ├── ainita │ ├── dnstt/ │ │ ├── dnstt_raw_config.json │ │ └── readme.md │ ├── fragment │ ├── free_configs │ ├── mahsa │ ├── super_fragment │ ├── warp │ └── warp2 ├── web/ │ ├── drift_worker.js │ ├── index.html │ ├── manifest.json │ └── sqlite3.wasm └── windows/ ├── .gitignore ├── .stignore ├── CMakeLists.txt ├── flutter/ │ ├── CMakeLists.txt │ ├── generated_plugin_registrant.cc │ ├── generated_plugin_registrant.h │ └── generated_plugins.cmake ├── packaging/ │ ├── exe/ │ │ ├── inno_setup.sas │ │ └── make_config.yaml │ └── msix/ │ └── make_config.yaml └── runner/ ├── CMakeLists.txt ├── Runner.rc ├── flutter_window.cpp ├── flutter_window.h ├── main.cpp ├── resource.h ├── runner.exe.manifest ├── utils.cpp ├── utils.h ├── win32_window.cpp └── win32_window.h