gitextract_09h7tnhn/ ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug_report.yml │ │ ├── config.yml │ │ └── feature_request.yml │ ├── release_template.md │ ├── release_template_pre.md │ └── workflows/ │ └── build.yaml ├── .gitignore ├── .metadata ├── LICENSE ├── Makefile ├── analysis_options.yaml ├── android/ │ ├── .gitignore │ ├── app/ │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── debug/ │ │ │ └── AndroidManifest.xml │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── appshub/ │ │ │ │ └── bettbox/ │ │ │ │ ├── BettboxApplication.kt │ │ │ │ ├── FilesProvider.kt │ │ │ │ ├── GlobalState.kt │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── TempActivity.kt │ │ │ │ ├── extensions/ │ │ │ │ │ └── Ext.kt │ │ │ │ ├── models/ │ │ │ │ │ ├── Package.kt │ │ │ │ │ ├── Process.kt │ │ │ │ │ └── Props.kt │ │ │ │ ├── modules/ │ │ │ │ │ └── SuspendModule.kt │ │ │ │ ├── plugins/ │ │ │ │ │ ├── AppPlugin.kt │ │ │ │ │ ├── ServicePlugin.kt │ │ │ │ │ ├── TilePlugin.kt │ │ │ │ │ └── VpnPlugin.kt │ │ │ │ ├── receivers/ │ │ │ │ │ ├── BootReceiver.kt │ │ │ │ │ └── PackageReplacedReceiver.kt │ │ │ │ └── services/ │ │ │ │ ├── BaseServiceInterface.kt │ │ │ │ ├── BettboxService.kt │ │ │ │ ├── BettboxTileService.kt │ │ │ │ └── BettboxVpnService.kt │ │ │ └── res/ │ │ │ ├── drawable/ │ │ │ │ ├── ic_launcher_background_dark.xml │ │ │ │ ├── ic_launcher_background_light.xml │ │ │ │ ├── ic_launcher_foreground_dark.xml │ │ │ │ ├── ic_launcher_foreground_light.xml │ │ │ │ ├── ic_notification_dark.xml │ │ │ │ ├── ic_notification_light.xml │ │ │ │ ├── ic_tile.xml │ │ │ │ ├── launch_background.xml │ │ │ │ └── tv_banner.xml │ │ │ ├── drawable-night/ │ │ │ │ ├── ic_tile.xml │ │ │ │ └── launch_background.xml │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ ├── ic_launcher.xml │ │ │ │ ├── ic_launcher_light.xml │ │ │ │ ├── ic_launcher_round.xml │ │ │ │ └── ic_launcher_round_light.xml │ │ │ ├── values/ │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ ├── values-night/ │ │ │ │ └── styles.xml │ │ │ ├── values-night-v27/ │ │ │ │ └── styles.xml │ │ │ ├── values-ru/ │ │ │ │ └── strings.xml │ │ │ ├── values-v27/ │ │ │ │ └── styles.xml │ │ │ ├── values-zh-rCN/ │ │ │ │ └── strings.xml │ │ │ ├── values-zh-rTW/ │ │ │ │ └── strings.xml │ │ │ └── xml/ │ │ │ ├── file_paths.xml │ │ │ └── network_security_config.xml │ │ └── profile/ │ │ └── AndroidManifest.xml │ ├── build.gradle.kts │ ├── core/ │ │ ├── .gitignore │ │ ├── build.gradle.kts │ │ ├── proguard-rules.pro │ │ └── src/ │ │ └── main/ │ │ ├── AndroidManifest.xml │ │ ├── cpp/ │ │ │ ├── CMakeLists.txt │ │ │ ├── core.cpp │ │ │ ├── jni_helper.cpp │ │ │ └── jni_helper.h │ │ └── java/ │ │ └── com/ │ │ └── appshub/ │ │ └── bettbox/ │ │ └── core/ │ │ ├── Core.kt │ │ └── TunInterface.kt │ ├── gradle.properties │ └── settings.gradle.kts ├── arb/ │ ├── intl_en.arb │ ├── intl_ru.arb │ ├── intl_zh_CN.arb │ └── intl_zh_TC.arb ├── assets/ │ └── data/ │ ├── ASN.mmdb │ └── geoip.metadb ├── build.yaml ├── core/ │ ├── Clash.Meta/ │ │ ├── .github/ │ │ │ ├── ISSUE_TEMPLATE/ │ │ │ │ ├── bug_report.yml │ │ │ │ ├── config.yml │ │ │ │ └── feature_request.yml │ │ │ ├── genReleaseNote.sh │ │ │ ├── patch/ │ │ │ │ ├── go1.21.patch │ │ │ │ ├── go1.22.patch │ │ │ │ ├── go1.23.patch │ │ │ │ ├── go1.24.patch │ │ │ │ ├── go1.25.patch │ │ │ │ ├── go1.26.patch │ │ │ │ ├── issue77731.patch │ │ │ │ ├── issue77930.patch │ │ │ │ └── issue77975.patch │ │ │ ├── release/ │ │ │ │ ├── .fpm_systemd │ │ │ │ ├── config.yaml │ │ │ │ ├── mihomo.service │ │ │ │ └── mihomo@.service │ │ │ ├── release.sh │ │ │ ├── rename-cgo.sh │ │ │ ├── rename-go120.sh │ │ │ └── workflows/ │ │ │ ├── build.yml │ │ │ ├── test.yml │ │ │ └── trigger-cmfa-update.yml │ │ ├── .gitignore │ │ ├── .golangci.yaml │ │ ├── Dockerfile │ │ ├── LICENSE │ │ ├── Makefile │ │ ├── adapter/ │ │ │ ├── adapter.go │ │ │ ├── inbound/ │ │ │ │ ├── addition.go │ │ │ │ ├── auth.go │ │ │ │ ├── http.go │ │ │ │ ├── https.go │ │ │ │ ├── ipfilter.go │ │ │ │ ├── listen.go │ │ │ │ ├── listen_notwindows.go │ │ │ │ ├── listen_windows.go │ │ │ │ ├── packet.go │ │ │ │ ├── socket.go │ │ │ │ └── util.go │ │ │ ├── outbound/ │ │ │ │ ├── anytls.go │ │ │ │ ├── base.go │ │ │ │ ├── direct.go │ │ │ │ ├── dns.go │ │ │ │ ├── ech.go │ │ │ │ ├── http.go │ │ │ │ ├── hysteria.go │ │ │ │ ├── hysteria2.go │ │ │ │ ├── masque.go │ │ │ │ ├── mieru.go │ │ │ │ ├── mieru_test.go │ │ │ │ ├── reality.go │ │ │ │ ├── reject.go │ │ │ │ ├── shadowsocks.go │ │ │ │ ├── shadowsocksr.go │ │ │ │ ├── singmux.go │ │ │ │ ├── snell.go │ │ │ │ ├── socks5.go │ │ │ │ ├── ssh.go │ │ │ │ ├── sudoku.go │ │ │ │ ├── trojan.go │ │ │ │ ├── trusttunnel.go │ │ │ │ ├── tuic.go │ │ │ │ ├── util.go │ │ │ │ ├── vless.go │ │ │ │ ├── vmess.go │ │ │ │ └── wireguard.go │ │ │ ├── outboundgroup/ │ │ │ │ ├── fallback.go │ │ │ │ ├── groupbase.go │ │ │ │ ├── loadbalance.go │ │ │ │ ├── parser.go │ │ │ │ ├── selector.go │ │ │ │ ├── urltest.go │ │ │ │ └── util.go │ │ │ ├── parser.go │ │ │ ├── patch.go │ │ │ └── provider/ │ │ │ ├── healthcheck.go │ │ │ ├── override.go │ │ │ ├── parser.go │ │ │ ├── patch.go │ │ │ ├── provider.go │ │ │ └── subscription_info.go │ │ ├── android_tz.go │ │ ├── check_amd64.sh │ │ ├── common/ │ │ │ ├── arc/ │ │ │ │ ├── arc.go │ │ │ │ ├── arc_test.go │ │ │ │ └── entry.go │ │ │ ├── atomic/ │ │ │ │ ├── enum.go │ │ │ │ ├── type.go │ │ │ │ ├── value.go │ │ │ │ └── value_test.go │ │ │ ├── batch/ │ │ │ │ ├── batch.go │ │ │ │ └── batch_test.go │ │ │ ├── buf/ │ │ │ │ └── sing.go │ │ │ ├── callback/ │ │ │ │ ├── callback.go │ │ │ │ └── close_callback.go │ │ │ ├── cmd/ │ │ │ │ ├── cmd.go │ │ │ │ ├── cmd_other.go │ │ │ │ ├── cmd_test.go │ │ │ │ └── cmd_windows.go │ │ │ ├── contextutils/ │ │ │ │ ├── afterfunc_compact.go │ │ │ │ ├── afterfunc_go120.go │ │ │ │ ├── afterfunc_go121.go │ │ │ │ ├── afterfunc_test.go │ │ │ │ ├── withoutcancel_compact.go │ │ │ │ ├── withoutcancel_go120.go │ │ │ │ └── withoutcancel_go121.go │ │ │ ├── convert/ │ │ │ │ ├── base64.go │ │ │ │ ├── converter.go │ │ │ │ ├── converter_test.go │ │ │ │ ├── util.go │ │ │ │ └── v.go │ │ │ ├── deque/ │ │ │ │ └── deque.go │ │ │ ├── httputils/ │ │ │ │ ├── addr.go │ │ │ │ ├── force_close.go │ │ │ │ └── h2_transport_close.go │ │ │ ├── lru/ │ │ │ │ ├── lrucache.go │ │ │ │ └── lrucache_test.go │ │ │ ├── maphash/ │ │ │ │ ├── common.go │ │ │ │ ├── comparable_go120.go │ │ │ │ ├── comparable_go124.go │ │ │ │ └── maphash_test.go │ │ │ ├── murmur3/ │ │ │ │ ├── murmur.go │ │ │ │ └── murmur32.go │ │ │ ├── net/ │ │ │ │ ├── addr.go │ │ │ │ ├── bind.go │ │ │ │ ├── bufconn.go │ │ │ │ ├── bufconn_unsafe.go │ │ │ │ ├── cached.go │ │ │ │ ├── context.go │ │ │ │ ├── context_test.go │ │ │ │ ├── deadline/ │ │ │ │ │ ├── conn.go │ │ │ │ │ ├── packet.go │ │ │ │ │ ├── packet_enhance.go │ │ │ │ │ ├── packet_sing.go │ │ │ │ │ ├── pipe.go │ │ │ │ │ └── pipe_sing.go │ │ │ │ ├── earlyconn.go │ │ │ │ ├── io.go │ │ │ │ ├── listener.go │ │ │ │ ├── packet/ │ │ │ │ │ ├── packet.go │ │ │ │ │ ├── packet_posix.go │ │ │ │ │ ├── packet_sing.go │ │ │ │ │ ├── packet_windows.go │ │ │ │ │ ├── ref.go │ │ │ │ │ ├── ref_sing.go │ │ │ │ │ ├── thread.go │ │ │ │ │ └── thread_sing.go │ │ │ │ ├── packet.go │ │ │ │ ├── refconn.go │ │ │ │ ├── relay.go │ │ │ │ ├── sing.go │ │ │ │ ├── tcpip.go │ │ │ │ └── websocket.go │ │ │ ├── observable/ │ │ │ │ ├── iterable.go │ │ │ │ ├── observable.go │ │ │ │ ├── observable_test.go │ │ │ │ └── subscriber.go │ │ │ ├── once/ │ │ │ │ ├── once_go120.go │ │ │ │ ├── once_go122.go │ │ │ │ └── oncefunc.go │ │ │ ├── orderedmap/ │ │ │ │ ├── doc.go │ │ │ │ ├── json.go │ │ │ │ ├── json_fuzz_test.go │ │ │ │ ├── json_test.go │ │ │ │ ├── orderedmap.go │ │ │ │ ├── orderedmap_test.go │ │ │ │ ├── utils_test.go │ │ │ │ ├── yaml.go │ │ │ │ ├── yaml_fuzz_test.go │ │ │ │ └── yaml_test.go │ │ │ ├── picker/ │ │ │ │ ├── picker.go │ │ │ │ └── picker_test.go │ │ │ ├── pool/ │ │ │ │ ├── alloc.go │ │ │ │ ├── alloc_test.go │ │ │ │ ├── buffer.go │ │ │ │ ├── buffer_low_memory.go │ │ │ │ ├── buffer_standard.go │ │ │ │ ├── pool.go │ │ │ │ └── sing.go │ │ │ ├── queue/ │ │ │ │ ├── queue.go │ │ │ │ └── queue_test.go │ │ │ ├── singledo/ │ │ │ │ ├── singledo.go │ │ │ │ └── singledo_test.go │ │ │ ├── singleflight/ │ │ │ │ └── singleflight.go │ │ │ ├── sockopt/ │ │ │ │ ├── reuse_common.go │ │ │ │ ├── reuse_other.go │ │ │ │ ├── reuse_unix.go │ │ │ │ └── reuse_windows.go │ │ │ ├── structure/ │ │ │ │ ├── structure.go │ │ │ │ └── structure_test.go │ │ │ ├── utils/ │ │ │ │ ├── callback.go │ │ │ │ ├── global_id.go │ │ │ │ ├── hash.go │ │ │ │ ├── manipulation.go │ │ │ │ ├── must.go │ │ │ │ ├── range.go │ │ │ │ ├── ranges.go │ │ │ │ ├── ranges_test.go │ │ │ │ ├── slice.go │ │ │ │ ├── string_unsafe.go │ │ │ │ ├── strings.go │ │ │ │ ├── uuid.go │ │ │ │ └── uuid_test.go │ │ │ ├── xsync/ │ │ │ │ ├── map.go │ │ │ │ ├── map_extra.go │ │ │ │ ├── map_extra_test.go │ │ │ │ └── map_test.go │ │ │ └── yaml/ │ │ │ └── yaml.go │ │ ├── component/ │ │ │ ├── auth/ │ │ │ │ └── auth.go │ │ │ ├── ca/ │ │ │ │ ├── auth.go │ │ │ │ ├── ca-certificates.crt │ │ │ │ ├── config.go │ │ │ │ ├── fingerprint.go │ │ │ │ ├── fingerprint_test.go │ │ │ │ ├── fix_windows.go │ │ │ │ └── keypair.go │ │ │ ├── cidr/ │ │ │ │ ├── ipcidr_set.go │ │ │ │ ├── ipcidr_set_bin.go │ │ │ │ └── ipcidr_set_test.go │ │ │ ├── dhcp/ │ │ │ │ ├── conn.go │ │ │ │ └── dhcp.go │ │ │ ├── dialer/ │ │ │ │ ├── bind.go │ │ │ │ ├── bind_darwin.go │ │ │ │ ├── bind_linux.go │ │ │ │ ├── bind_others.go │ │ │ │ ├── bind_windows.go │ │ │ │ ├── control.go │ │ │ │ ├── dialer.go │ │ │ │ ├── error.go │ │ │ │ ├── mark_linux.go │ │ │ │ ├── mark_nonlinux.go │ │ │ │ ├── options.go │ │ │ │ ├── reuse.go │ │ │ │ ├── socket_hook.go │ │ │ │ ├── tfo.go │ │ │ │ └── tfo_windows.go │ │ │ ├── ech/ │ │ │ │ ├── ech.go │ │ │ │ ├── echparser/ │ │ │ │ │ └── echparser.go │ │ │ │ ├── key.go │ │ │ │ └── key_test.go │ │ │ ├── fakeip/ │ │ │ │ ├── cachefile.go │ │ │ │ ├── memory.go │ │ │ │ ├── pool.go │ │ │ │ ├── pool_test.go │ │ │ │ ├── skipper.go │ │ │ │ └── skipper_test.go │ │ │ ├── generator/ │ │ │ │ ├── cmd.go │ │ │ │ └── x25519.go │ │ │ ├── geodata/ │ │ │ │ ├── attr.go │ │ │ │ ├── geodata.go │ │ │ │ ├── geodataproto.go │ │ │ │ ├── init.go │ │ │ │ ├── memconservative/ │ │ │ │ │ ├── cache.go │ │ │ │ │ ├── decode.go │ │ │ │ │ └── memc.go │ │ │ │ ├── package_info.go │ │ │ │ ├── router/ │ │ │ │ │ ├── condition.go │ │ │ │ │ ├── config.pb.go │ │ │ │ │ └── config.proto │ │ │ │ ├── standard/ │ │ │ │ │ └── standard.go │ │ │ │ ├── strmatcher/ │ │ │ │ │ ├── ac_automaton_matcher.go │ │ │ │ │ ├── matchers.go │ │ │ │ │ ├── mph_matcher.go │ │ │ │ │ ├── package_info.go │ │ │ │ │ └── strmatcher.go │ │ │ │ └── utils.go │ │ │ ├── http/ │ │ │ │ └── http.go │ │ │ ├── iface/ │ │ │ │ └── iface.go │ │ │ ├── keepalive/ │ │ │ │ ├── tcp_keepalive.go │ │ │ │ ├── tcp_keepalive_go122.go │ │ │ │ ├── tcp_keepalive_go123.go │ │ │ │ ├── tcp_keepalive_go123_unix.go │ │ │ │ └── tcp_keepalive_go123_windows.go │ │ │ ├── loopback/ │ │ │ │ └── detector.go │ │ │ ├── memory/ │ │ │ │ ├── memory.go │ │ │ │ ├── memory_darwin.go │ │ │ │ ├── memory_darwin_amd64.s │ │ │ │ ├── memory_darwin_arm64.s │ │ │ │ ├── memory_falllback.go │ │ │ │ ├── memory_freebsd.go │ │ │ │ ├── memory_freebsd_386.go │ │ │ │ ├── memory_freebsd_amd64.go │ │ │ │ ├── memory_freebsd_arm.go │ │ │ │ ├── memory_freebsd_arm64.go │ │ │ │ ├── memory_linux.go │ │ │ │ ├── memory_openbsd.go │ │ │ │ ├── memory_openbsd_386.go │ │ │ │ ├── memory_openbsd_amd64.go │ │ │ │ ├── memory_openbsd_arm.go │ │ │ │ ├── memory_openbsd_arm64.go │ │ │ │ ├── memory_openbsd_riscv64.go │ │ │ │ ├── memory_test.go │ │ │ │ └── memory_windows.go │ │ │ ├── mmdb/ │ │ │ │ ├── mmdb.go │ │ │ │ └── reader.go │ │ │ ├── mptcp/ │ │ │ │ ├── mptcp_go120.go │ │ │ │ └── mptcp_go121.go │ │ │ ├── nat/ │ │ │ │ ├── proxy.go │ │ │ │ └── table.go │ │ │ ├── pool/ │ │ │ │ ├── pool.go │ │ │ │ └── pool_test.go │ │ │ ├── power/ │ │ │ │ ├── event.go │ │ │ │ ├── event_other.go │ │ │ │ └── event_windows.go │ │ │ ├── process/ │ │ │ │ ├── find_process_mode.go │ │ │ │ ├── process.go │ │ │ │ ├── process_darwin.go │ │ │ │ ├── process_freebsd_amd64.go │ │ │ │ ├── process_linux.go │ │ │ │ ├── process_other.go │ │ │ │ └── process_windows.go │ │ │ ├── profile/ │ │ │ │ ├── cachefile/ │ │ │ │ │ ├── cache.go │ │ │ │ │ ├── etag.go │ │ │ │ │ ├── fakeip.go │ │ │ │ │ ├── storage.go │ │ │ │ │ └── subscriptioninfo.go │ │ │ │ └── profile.go │ │ │ ├── proxydialer/ │ │ │ │ ├── byname.go │ │ │ │ ├── proxydialer.go │ │ │ │ ├── sing.go │ │ │ │ ├── slowdown.go │ │ │ │ └── slowdown_sing.go │ │ │ ├── resolver/ │ │ │ │ ├── enhancer.go │ │ │ │ ├── host.go │ │ │ │ ├── hosts/ │ │ │ │ │ ├── hosts.go │ │ │ │ │ └── hosts_windows.go │ │ │ │ ├── ip4p.go │ │ │ │ ├── relay.go │ │ │ │ ├── resolver.go │ │ │ │ ├── service.go │ │ │ │ └── system.go │ │ │ ├── resource/ │ │ │ │ ├── fetcher.go │ │ │ │ └── vehicle.go │ │ │ ├── slowdown/ │ │ │ │ ├── backoff.go │ │ │ │ └── slowdown.go │ │ │ ├── sniffer/ │ │ │ │ ├── base_sniffer.go │ │ │ │ ├── dispatcher.go │ │ │ │ ├── http_sniffer.go │ │ │ │ ├── quic_sniffer.go │ │ │ │ ├── sniff_test.go │ │ │ │ └── tls_sniffer.go │ │ │ ├── tls/ │ │ │ │ ├── httpserver.go │ │ │ │ ├── reality.go │ │ │ │ └── utls.go │ │ │ ├── trie/ │ │ │ │ ├── domain.go │ │ │ │ ├── domain_set.go │ │ │ │ ├── domain_set_bin.go │ │ │ │ ├── domain_set_test.go │ │ │ │ ├── domain_test.go │ │ │ │ ├── ipcidr_node.go │ │ │ │ ├── ipcidr_trie.go │ │ │ │ ├── node.go │ │ │ │ └── trie_test.go │ │ │ ├── updater/ │ │ │ │ ├── patch.go │ │ │ │ ├── update_core.go │ │ │ │ ├── update_core_test.go │ │ │ │ ├── update_geo.go │ │ │ │ ├── update_ui.go │ │ │ │ └── utils.go │ │ │ └── wildcard/ │ │ │ ├── wildcard.go │ │ │ └── wildcard_test.go │ │ ├── config/ │ │ │ ├── config.go │ │ │ ├── initial.go │ │ │ ├── utils.go │ │ │ └── utils_test.go │ │ ├── constant/ │ │ │ ├── adapters.go │ │ │ ├── context.go │ │ │ ├── dns.go │ │ │ ├── features/ │ │ │ │ ├── android.go │ │ │ │ ├── android_stub.go │ │ │ │ ├── goflags.go │ │ │ │ ├── low_memory.go │ │ │ │ ├── low_memory_stub.go │ │ │ │ ├── no_fake_tcp.go │ │ │ │ ├── no_fake_tcp_stub.go │ │ │ │ ├── tags.go │ │ │ │ ├── version.go │ │ │ │ ├── version_windows.go │ │ │ │ ├── with_gvisor.go │ │ │ │ └── with_gvisor_stub.go │ │ │ ├── listener.go │ │ │ ├── matcher.go │ │ │ ├── metadata.go │ │ │ ├── path.go │ │ │ ├── path_test.go │ │ │ ├── provider/ │ │ │ │ └── interface.go │ │ │ ├── rule.go │ │ │ ├── sniffer/ │ │ │ │ └── sniffer.go │ │ │ ├── tun.go │ │ │ ├── tunnel.go │ │ │ └── version.go │ │ ├── context/ │ │ │ ├── conn.go │ │ │ ├── dns.go │ │ │ └── packetconn.go │ │ ├── dns/ │ │ │ ├── client.go │ │ │ ├── dhcp.go │ │ │ ├── dialer.go │ │ │ ├── doh.go │ │ │ ├── doq.go │ │ │ ├── dot.go │ │ │ ├── edns0_subnet.go │ │ │ ├── enhancer.go │ │ │ ├── middleware.go │ │ │ ├── patch_android.go │ │ │ ├── policy.go │ │ │ ├── rcode.go │ │ │ ├── resolver.go │ │ │ ├── server.go │ │ │ ├── service.go │ │ │ ├── system.go │ │ │ ├── system_common.go │ │ │ ├── system_posix.go │ │ │ ├── system_windows.go │ │ │ └── util.go │ │ ├── docker/ │ │ │ └── file-name.sh │ │ ├── docs/ │ │ │ └── config.yaml │ │ ├── flake.nix │ │ ├── go.mod │ │ ├── go.sum │ │ ├── hub/ │ │ │ ├── executor/ │ │ │ │ ├── concurrent_load_limit.go │ │ │ │ ├── concurrent_load_single.go │ │ │ │ ├── concurrent_load_unlimit.go │ │ │ │ ├── executor.go │ │ │ │ └── patch.go │ │ │ ├── hub.go │ │ │ └── route/ │ │ │ ├── cache.go │ │ │ ├── common.go │ │ │ ├── configs.go │ │ │ ├── connections.go │ │ │ ├── ctxkeys.go │ │ │ ├── dns.go │ │ │ ├── doh.go │ │ │ ├── errors.go │ │ │ ├── external.go │ │ │ ├── groups.go │ │ │ ├── patch_android.go │ │ │ ├── provider.go │ │ │ ├── proxies.go │ │ │ ├── restart.go │ │ │ ├── rules.go │ │ │ ├── server.go │ │ │ ├── storage.go │ │ │ └── upgrade.go │ │ ├── listener/ │ │ │ ├── anytls/ │ │ │ │ └── server.go │ │ │ ├── auth/ │ │ │ │ └── auth.go │ │ │ ├── config/ │ │ │ │ ├── anytls.go │ │ │ │ ├── auth.go │ │ │ │ ├── hysteria2.go │ │ │ │ ├── kcptun.go │ │ │ │ ├── shadowsocks.go │ │ │ │ ├── shadowtls.go │ │ │ │ ├── sudoku.go │ │ │ │ ├── trojan.go │ │ │ │ ├── trusttunnel.go │ │ │ │ ├── tuic.go │ │ │ │ ├── tun.go │ │ │ │ ├── tunnel.go │ │ │ │ ├── vless.go │ │ │ │ └── vmess.go │ │ │ ├── http/ │ │ │ │ ├── client.go │ │ │ │ ├── hack.go │ │ │ │ ├── patch_android.go │ │ │ │ ├── proxy.go │ │ │ │ ├── server.go │ │ │ │ ├── upgrade.go │ │ │ │ └── utils.go │ │ │ ├── inbound/ │ │ │ │ ├── anytls.go │ │ │ │ ├── anytls_test.go │ │ │ │ ├── auth.go │ │ │ │ ├── base.go │ │ │ │ ├── common_test.go │ │ │ │ ├── http.go │ │ │ │ ├── hysteria2.go │ │ │ │ ├── hysteria2_test.go │ │ │ │ ├── kcptun.go │ │ │ │ ├── mieru.go │ │ │ │ ├── mieru_test.go │ │ │ │ ├── mixed.go │ │ │ │ ├── mux.go │ │ │ │ ├── mux_test.go │ │ │ │ ├── reality.go │ │ │ │ ├── redir.go │ │ │ │ ├── shadowsocks.go │ │ │ │ ├── shadowsocks_test.go │ │ │ │ ├── shadowtls.go │ │ │ │ ├── socks.go │ │ │ │ ├── sudoku.go │ │ │ │ ├── sudoku_test.go │ │ │ │ ├── tproxy.go │ │ │ │ ├── trojan.go │ │ │ │ ├── trojan_test.go │ │ │ │ ├── trusttunnel.go │ │ │ │ ├── trusttunnel_test.go │ │ │ │ ├── tuic.go │ │ │ │ ├── tuic_test.go │ │ │ │ ├── tun.go │ │ │ │ ├── tunnel.go │ │ │ │ ├── vless.go │ │ │ │ ├── vless_test.go │ │ │ │ ├── vmess.go │ │ │ │ └── vmess_test.go │ │ │ ├── inner/ │ │ │ │ └── tcp.go │ │ │ ├── listener.go │ │ │ ├── mieru/ │ │ │ │ └── server.go │ │ │ ├── mixed/ │ │ │ │ └── mixed.go │ │ │ ├── parse.go │ │ │ ├── patch.go │ │ │ ├── reality/ │ │ │ │ └── reality.go │ │ │ ├── redir/ │ │ │ │ ├── tcp.go │ │ │ │ ├── tcp_darwin.go │ │ │ │ ├── tcp_freebsd.go │ │ │ │ ├── tcp_linux.go │ │ │ │ ├── tcp_linux_386.go │ │ │ │ ├── tcp_linux_other.go │ │ │ │ └── tcp_other.go │ │ │ ├── shadowsocks/ │ │ │ │ ├── tcp.go │ │ │ │ ├── udp.go │ │ │ │ ├── utils.go │ │ │ │ └── utils_test.go │ │ │ ├── sing/ │ │ │ │ ├── context.go │ │ │ │ ├── dialer.go │ │ │ │ ├── sing.go │ │ │ │ └── util.go │ │ │ ├── sing_hysteria2/ │ │ │ │ └── server.go │ │ │ ├── sing_shadowsocks/ │ │ │ │ └── server.go │ │ │ ├── sing_tun/ │ │ │ │ ├── dns.go │ │ │ │ ├── iface.go │ │ │ │ ├── prepare.go │ │ │ │ ├── redirect_linux.go │ │ │ │ ├── redirect_stub.go │ │ │ │ ├── server.go │ │ │ │ ├── server_notwindows.go │ │ │ │ ├── server_windows.go │ │ │ │ ├── tun_name_darwin.go │ │ │ │ ├── tun_name_linux.go │ │ │ │ └── tun_name_other.go │ │ │ ├── sing_vless/ │ │ │ │ ├── server.go │ │ │ │ └── service.go │ │ │ ├── sing_vmess/ │ │ │ │ ├── server.go │ │ │ │ └── server_test.go │ │ │ ├── socks/ │ │ │ │ ├── tcp.go │ │ │ │ ├── udp.go │ │ │ │ └── utils.go │ │ │ ├── sudoku/ │ │ │ │ └── server.go │ │ │ ├── tproxy/ │ │ │ │ ├── packet.go │ │ │ │ ├── setsockopt_linux.go │ │ │ │ ├── setsockopt_other.go │ │ │ │ ├── tproxy.go │ │ │ │ ├── tproxy_iptables.go │ │ │ │ ├── udp.go │ │ │ │ ├── udp_linux.go │ │ │ │ └── udp_other.go │ │ │ ├── trojan/ │ │ │ │ ├── packet.go │ │ │ │ └── server.go │ │ │ ├── trusttunnel/ │ │ │ │ └── server.go │ │ │ ├── tuic/ │ │ │ │ └── server.go │ │ │ └── tunnel/ │ │ │ ├── packet.go │ │ │ ├── tcp.go │ │ │ └── udp.go │ │ ├── log/ │ │ │ ├── level.go │ │ │ ├── log.go │ │ │ └── sing.go │ │ ├── main.go │ │ ├── ntp/ │ │ │ ├── ntp/ │ │ │ │ ├── service.go │ │ │ │ ├── time_stub.go │ │ │ │ ├── time_unix.go │ │ │ │ └── time_windows.go │ │ │ └── time.go │ │ ├── rules/ │ │ │ ├── common/ │ │ │ │ ├── base.go │ │ │ │ ├── domain.go │ │ │ │ ├── domain_keyword.go │ │ │ │ ├── domain_regex.go │ │ │ │ ├── domain_suffix.go │ │ │ │ ├── domain_wildcard.go │ │ │ │ ├── dscp.go │ │ │ │ ├── final.go │ │ │ │ ├── geoip.go │ │ │ │ ├── geosite.go │ │ │ │ ├── in_name.go │ │ │ │ ├── in_type.go │ │ │ │ ├── in_user.go │ │ │ │ ├── ipasn.go │ │ │ │ ├── ipcidr.go │ │ │ │ ├── ipsuffix.go │ │ │ │ ├── network_type.go │ │ │ │ ├── port.go │ │ │ │ ├── process.go │ │ │ │ └── uid.go │ │ │ ├── logic/ │ │ │ │ └── logic.go │ │ │ ├── logic_test/ │ │ │ │ └── logic_test.go │ │ │ ├── parser.go │ │ │ ├── provider/ │ │ │ │ ├── classical_strategy.go │ │ │ │ ├── domain_strategy.go │ │ │ │ ├── ipcidr_strategy.go │ │ │ │ ├── mrs_converter.go │ │ │ │ ├── mrs_reader.go │ │ │ │ ├── parse.go │ │ │ │ ├── patch_android.go │ │ │ │ ├── provider.go │ │ │ │ └── rule_set.go │ │ │ └── wrapper/ │ │ │ └── wrapper.go │ │ ├── test/ │ │ │ ├── .golangci.yaml │ │ │ ├── Makefile │ │ │ ├── clash_test.go │ │ │ ├── config/ │ │ │ │ ├── example.org-key.pem │ │ │ │ ├── example.org.pem │ │ │ │ ├── hysteria.json │ │ │ │ ├── snell-http.conf │ │ │ │ ├── snell-tls.conf │ │ │ │ ├── snell.conf │ │ │ │ ├── trojan-grpc.json │ │ │ │ ├── trojan-ws.json │ │ │ │ ├── trojan-xtls.json │ │ │ │ ├── trojan.json │ │ │ │ ├── vless-tls.json │ │ │ │ ├── vless-ws.json │ │ │ │ ├── vless-xtls.json │ │ │ │ ├── vmess-grpc.json │ │ │ │ ├── vmess-http.json │ │ │ │ ├── vmess-http2.json │ │ │ │ ├── vmess-tls.json │ │ │ │ ├── vmess-ws-0rtt.json │ │ │ │ ├── vmess-ws-tls.json │ │ │ │ ├── vmess-ws.json │ │ │ │ ├── vmess.json │ │ │ │ └── xray-shadowsocks.json │ │ │ ├── dns_test.go │ │ │ ├── docker_test.go │ │ │ ├── go.mod │ │ │ ├── go.sum │ │ │ ├── hysteria_test.go │ │ │ ├── snell_test.go │ │ │ ├── ss_test.go │ │ │ ├── trojan_test.go │ │ │ ├── util.go │ │ │ ├── util_darwin_test.go │ │ │ ├── util_other_test.go │ │ │ ├── vless_test.go │ │ │ └── vmess_test.go │ │ ├── transport/ │ │ │ ├── anytls/ │ │ │ │ ├── client.go │ │ │ │ ├── padding/ │ │ │ │ │ └── padding.go │ │ │ │ ├── pipe/ │ │ │ │ │ ├── deadline.go │ │ │ │ │ └── io_pipe.go │ │ │ │ ├── session/ │ │ │ │ │ ├── client.go │ │ │ │ │ ├── frame.go │ │ │ │ │ ├── session.go │ │ │ │ │ └── stream.go │ │ │ │ ├── skiplist/ │ │ │ │ │ ├── contianer.go │ │ │ │ │ ├── skiplist.go │ │ │ │ │ ├── skiplist_newnode.go │ │ │ │ │ └── types.go │ │ │ │ └── util/ │ │ │ │ ├── deadline.go │ │ │ │ ├── routine.go │ │ │ │ ├── string_map.go │ │ │ │ └── type.go │ │ │ ├── gost-plugin/ │ │ │ │ └── websocket.go │ │ │ ├── gun/ │ │ │ │ ├── gun.go │ │ │ │ ├── server.go │ │ │ │ └── utils.go │ │ │ ├── hysteria/ │ │ │ │ ├── congestion/ │ │ │ │ │ ├── brutal.go │ │ │ │ │ └── pacer.go │ │ │ │ ├── conns/ │ │ │ │ │ ├── faketcp/ │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── obfs.go │ │ │ │ │ │ ├── tcp_linux.go │ │ │ │ │ │ └── tcp_stub.go │ │ │ │ │ ├── udp/ │ │ │ │ │ │ ├── hop.go │ │ │ │ │ │ └── obfs.go │ │ │ │ │ └── wechat/ │ │ │ │ │ └── obfs.go │ │ │ │ ├── core/ │ │ │ │ │ ├── client.go │ │ │ │ │ ├── frag.go │ │ │ │ │ ├── frag_test.go │ │ │ │ │ ├── protocol.go │ │ │ │ │ └── stream.go │ │ │ │ ├── obfs/ │ │ │ │ │ ├── dummy.go │ │ │ │ │ ├── obfs.go │ │ │ │ │ ├── xplus.go │ │ │ │ │ └── xplus_test.go │ │ │ │ ├── pmtud_fix/ │ │ │ │ │ ├── avail.go │ │ │ │ │ └── unavail.go │ │ │ │ ├── transport/ │ │ │ │ │ └── client.go │ │ │ │ └── utils/ │ │ │ │ └── misc.go │ │ │ ├── kcptun/ │ │ │ │ ├── client.go │ │ │ │ ├── common.go │ │ │ │ ├── comp.go │ │ │ │ ├── doc.go │ │ │ │ └── server.go │ │ │ ├── masque/ │ │ │ │ ├── client_h2.go │ │ │ │ └── masque.go │ │ │ ├── restls/ │ │ │ │ └── restls.go │ │ │ ├── shadowsocks/ │ │ │ │ ├── core/ │ │ │ │ │ └── cipher.go │ │ │ │ ├── shadowaead/ │ │ │ │ │ ├── cipher.go │ │ │ │ │ ├── packet.go │ │ │ │ │ └── stream.go │ │ │ │ └── shadowstream/ │ │ │ │ ├── chacha20.go │ │ │ │ ├── cipher.go │ │ │ │ ├── packet.go │ │ │ │ └── stream.go │ │ │ ├── shadowtls/ │ │ │ │ └── shadowtls.go │ │ │ ├── simple-obfs/ │ │ │ │ ├── http.go │ │ │ │ └── tls.go │ │ │ ├── sing-shadowtls/ │ │ │ │ └── shadowtls.go │ │ │ ├── snell/ │ │ │ │ ├── cipher.go │ │ │ │ ├── pool.go │ │ │ │ └── snell.go │ │ │ ├── socks4/ │ │ │ │ └── socks4.go │ │ │ ├── socks5/ │ │ │ │ └── socks5.go │ │ │ ├── ssr/ │ │ │ │ ├── obfs/ │ │ │ │ │ ├── base.go │ │ │ │ │ ├── http_post.go │ │ │ │ │ ├── http_simple.go │ │ │ │ │ ├── obfs.go │ │ │ │ │ ├── plain.go │ │ │ │ │ ├── random_head.go │ │ │ │ │ └── tls1.2_ticket_auth.go │ │ │ │ ├── protocol/ │ │ │ │ │ ├── auth_aes128_md5.go │ │ │ │ │ ├── auth_aes128_sha1.go │ │ │ │ │ ├── auth_chain_a.go │ │ │ │ │ ├── auth_chain_b.go │ │ │ │ │ ├── auth_sha1_v4.go │ │ │ │ │ ├── base.go │ │ │ │ │ ├── origin.go │ │ │ │ │ ├── packet.go │ │ │ │ │ ├── protocol.go │ │ │ │ │ └── stream.go │ │ │ │ └── tools/ │ │ │ │ ├── bufPool.go │ │ │ │ ├── crypto.go │ │ │ │ └── random.go │ │ │ ├── sudoku/ │ │ │ │ ├── address.go │ │ │ │ ├── config.go │ │ │ │ ├── crypto/ │ │ │ │ │ ├── aead.go │ │ │ │ │ ├── ed25519.go │ │ │ │ │ ├── record_conn.go │ │ │ │ │ └── record_conn_test.go │ │ │ │ ├── directional_hint_test.go │ │ │ │ ├── early_handshake.go │ │ │ │ ├── features_test.go │ │ │ │ ├── handshake.go │ │ │ │ ├── handshake_kip.go │ │ │ │ ├── handshake_test.go │ │ │ │ ├── httpmask_tunnel.go │ │ │ │ ├── httpmask_tunnel_test.go │ │ │ │ ├── init.go │ │ │ │ ├── init_test.go │ │ │ │ ├── kip.go │ │ │ │ ├── kip_test.go │ │ │ │ ├── multiplex/ │ │ │ │ │ ├── session.go │ │ │ │ │ └── write_chunks.go │ │ │ │ ├── multiplex.go │ │ │ │ ├── multiplex_test.go │ │ │ │ ├── obfs/ │ │ │ │ │ ├── httpmask/ │ │ │ │ │ │ ├── auth.go │ │ │ │ │ │ ├── early_handshake.go │ │ │ │ │ │ ├── halfpipe.go │ │ │ │ │ │ ├── masker.go │ │ │ │ │ │ ├── pathroot.go │ │ │ │ │ │ ├── tunnel.go │ │ │ │ │ │ ├── tunnel_ws.go │ │ │ │ │ │ ├── tunnel_ws_server.go │ │ │ │ │ │ └── ws_stream_conn.go │ │ │ │ │ └── sudoku/ │ │ │ │ │ ├── ascii_mode.go │ │ │ │ │ ├── ascii_mode_test.go │ │ │ │ │ ├── conn.go │ │ │ │ │ ├── encode.go │ │ │ │ │ ├── grid.go │ │ │ │ │ ├── layout.go │ │ │ │ │ ├── packed.go │ │ │ │ │ ├── packed_prefix_test.go │ │ │ │ │ ├── padding_prob.go │ │ │ │ │ ├── pending.go │ │ │ │ │ ├── rand.go │ │ │ │ │ ├── table.go │ │ │ │ │ └── table_set.go │ │ │ │ ├── replay.go │ │ │ │ ├── session_keys.go │ │ │ │ ├── table_probe.go │ │ │ │ ├── tables.go │ │ │ │ ├── tables_directional_test.go │ │ │ │ ├── uot.go │ │ │ │ └── write_chunks.go │ │ │ ├── trojan/ │ │ │ │ └── trojan.go │ │ │ ├── trusttunnel/ │ │ │ │ ├── client.go │ │ │ │ ├── doc.go │ │ │ │ ├── icmp.go │ │ │ │ ├── packet.go │ │ │ │ ├── protocol.go │ │ │ │ ├── quic.go │ │ │ │ └── service.go │ │ │ ├── tuic/ │ │ │ │ ├── common/ │ │ │ │ │ ├── congestion.go │ │ │ │ │ └── dial.go │ │ │ │ ├── congestion/ │ │ │ │ │ ├── bandwidth.go │ │ │ │ │ ├── bandwidth_sampler.go │ │ │ │ │ ├── bbr_sender.go │ │ │ │ │ ├── cubic.go │ │ │ │ │ ├── cubic_sender.go │ │ │ │ │ ├── hybrid_slow_start.go │ │ │ │ │ ├── minmax.go │ │ │ │ │ ├── minmax_go120.go │ │ │ │ │ ├── minmax_go121.go │ │ │ │ │ ├── pacer.go │ │ │ │ │ └── windowed_filter.go │ │ │ │ ├── congestion_v2/ │ │ │ │ │ ├── bandwidth.go │ │ │ │ │ ├── bandwidth_sampler.go │ │ │ │ │ ├── bbr_sender.go │ │ │ │ │ ├── minmax_go120.go │ │ │ │ │ ├── minmax_go121.go │ │ │ │ │ ├── pacer.go │ │ │ │ │ ├── packet_number_indexed_queue.go │ │ │ │ │ ├── ringbuffer.go │ │ │ │ │ └── windowed_filter.go │ │ │ │ ├── pool_client.go │ │ │ │ ├── server.go │ │ │ │ ├── tuic.go │ │ │ │ ├── types/ │ │ │ │ │ ├── stream.go │ │ │ │ │ └── type.go │ │ │ │ ├── v4/ │ │ │ │ │ ├── client.go │ │ │ │ │ ├── packet.go │ │ │ │ │ ├── protocol.go │ │ │ │ │ └── server.go │ │ │ │ └── v5/ │ │ │ │ ├── client.go │ │ │ │ ├── frag.go │ │ │ │ ├── packet.go │ │ │ │ ├── protocol.go │ │ │ │ └── server.go │ │ │ ├── v2ray-plugin/ │ │ │ │ ├── mux.go │ │ │ │ └── websocket.go │ │ │ ├── vless/ │ │ │ │ ├── addons.go │ │ │ │ ├── addons_test.go │ │ │ │ ├── config.pb.go │ │ │ │ ├── config.proto │ │ │ │ ├── conn.go │ │ │ │ ├── encryption/ │ │ │ │ │ ├── client.go │ │ │ │ │ ├── client_test.go │ │ │ │ │ ├── common.go │ │ │ │ │ ├── doc.go │ │ │ │ │ ├── factory.go │ │ │ │ │ ├── key.go │ │ │ │ │ ├── server.go │ │ │ │ │ └── xor.go │ │ │ │ ├── packet.go │ │ │ │ ├── vision/ │ │ │ │ │ ├── conn.go │ │ │ │ │ ├── filter.go │ │ │ │ │ ├── padding.go │ │ │ │ │ └── vision.go │ │ │ │ └── vless.go │ │ │ ├── vmess/ │ │ │ │ ├── aead.go │ │ │ │ ├── chunk.go │ │ │ │ ├── conn.go │ │ │ │ ├── h2.go │ │ │ │ ├── header.go │ │ │ │ ├── http.go │ │ │ │ ├── tls.go │ │ │ │ ├── user.go │ │ │ │ ├── vmess.go │ │ │ │ ├── websocket.go │ │ │ │ ├── websocket_go120.go │ │ │ │ └── websocket_go121.go │ │ │ └── xhttp/ │ │ │ ├── browser.go │ │ │ ├── client.go │ │ │ ├── config.go │ │ │ ├── conn.go │ │ │ ├── reuse.go │ │ │ ├── reuse_test.go │ │ │ ├── server.go │ │ │ ├── server_test.go │ │ │ ├── upload_queue.go │ │ │ ├── upload_queue_test.go │ │ │ └── xpadding.go │ │ └── tunnel/ │ │ ├── connection.go │ │ ├── dns_dialer.go │ │ ├── mode.go │ │ ├── statistic/ │ │ │ ├── manager.go │ │ │ ├── patch.go │ │ │ ├── patch_android.go │ │ │ └── tracker.go │ │ ├── status.go │ │ └── tunnel.go │ ├── action.go │ ├── android_bride.go │ ├── common.go │ ├── constant.go │ ├── dart-bridge/ │ │ ├── include/ │ │ │ ├── dart_api.h │ │ │ ├── dart_api_dl.c │ │ │ ├── dart_api_dl.h │ │ │ ├── dart_native_api.h │ │ │ ├── dart_tools_api.h │ │ │ ├── dart_version.h │ │ │ └── internal/ │ │ │ └── dart_api_dl_impl.h │ │ ├── lib.go │ │ └── lib_common.go │ ├── go.mod │ ├── go.sum │ ├── hub.go │ ├── lib.go │ ├── lib_android.go │ ├── lib_no_android.go │ ├── main.go │ ├── main_cgo.go │ ├── platform/ │ │ ├── limit.go │ │ └── procfs.go │ ├── server.go │ ├── state/ │ │ └── state.go │ └── tun/ │ └── tun.go ├── devtools_options.yaml ├── distribute_options.yaml ├── lib/ │ ├── application.dart │ ├── clash/ │ │ ├── clash.dart │ │ ├── core.dart │ │ ├── generated/ │ │ │ └── clash_ffi.dart │ │ ├── interface.dart │ │ ├── lib.dart │ │ ├── message.dart │ │ └── service.dart │ ├── common/ │ │ ├── android.dart │ │ ├── app_localizations.dart │ │ ├── archive.dart │ │ ├── color.dart │ │ ├── common.dart │ │ ├── constant.dart │ │ ├── context.dart │ │ ├── converter.dart │ │ ├── datetime.dart │ │ ├── dav_client.dart │ │ ├── fixed.dart │ │ ├── flclash_database_extractor.dart │ │ ├── function.dart │ │ ├── future.dart │ │ ├── helper_auth.dart │ │ ├── http.dart │ │ ├── icons.dart │ │ ├── iterable.dart │ │ ├── js_runtime_manager.dart │ │ ├── keyboard.dart │ │ ├── launch.dart │ │ ├── link.dart │ │ ├── lock.dart │ │ ├── measure.dart │ │ ├── mixin.dart │ │ ├── navigation.dart │ │ ├── navigator.dart │ │ ├── network.dart │ │ ├── network_matcher.dart │ │ ├── num.dart │ │ ├── package.dart │ │ ├── path.dart │ │ ├── picker.dart │ │ ├── preferences.dart │ │ ├── print.dart │ │ ├── protocol.dart │ │ ├── proxy.dart │ │ ├── render.dart │ │ ├── request.dart │ │ ├── scroll.dart │ │ ├── state.dart │ │ ├── string.dart │ │ ├── system.dart │ │ ├── task.dart │ │ ├── text.dart │ │ ├── theme.dart │ │ ├── tray.dart │ │ ├── ui_manager.dart │ │ ├── utils.dart │ │ └── window.dart │ ├── controller.dart │ ├── enum/ │ │ └── enum.dart │ ├── l10n/ │ │ ├── intl/ │ │ │ ├── messages_all.dart │ │ │ ├── messages_en.dart │ │ │ ├── messages_ru.dart │ │ │ ├── messages_zh_CN.dart │ │ │ └── messages_zh_TC.dart │ │ └── l10n.dart │ ├── main.dart │ ├── manager/ │ │ ├── android_manager.dart │ │ ├── app_manager.dart │ │ ├── clash_manager.dart │ │ ├── connectivity_manager.dart │ │ ├── hotkey_manager.dart │ │ ├── manager.dart │ │ ├── message_manager.dart │ │ ├── proxy_manager.dart │ │ ├── smart_auto_stop_manager.dart │ │ ├── theme_manager.dart │ │ ├── tile_manager.dart │ │ ├── tray_manager.dart │ │ ├── vpn_manager.dart │ │ └── window_manager.dart │ ├── models/ │ │ ├── app.dart │ │ ├── clash_config.dart │ │ ├── common.dart │ │ ├── config.dart │ │ ├── core.dart │ │ ├── generated/ │ │ │ ├── app.freezed.dart │ │ │ ├── clash_config.freezed.dart │ │ │ ├── clash_config.g.dart │ │ │ ├── common.freezed.dart │ │ │ ├── common.g.dart │ │ │ ├── config.freezed.dart │ │ │ ├── config.g.dart │ │ │ ├── core.freezed.dart │ │ │ ├── core.g.dart │ │ │ ├── profile.freezed.dart │ │ │ ├── profile.g.dart │ │ │ ├── selector.freezed.dart │ │ │ └── widget.freezed.dart │ │ ├── models.dart │ │ ├── profile.dart │ │ ├── selector.dart │ │ └── widget.dart │ ├── pages/ │ │ ├── editor.dart │ │ ├── home.dart │ │ ├── pages.dart │ │ └── scan.dart │ ├── plugins/ │ │ ├── app.dart │ │ ├── service.dart │ │ ├── tile.dart │ │ └── vpn.dart │ ├── providers/ │ │ ├── app.dart │ │ ├── config.dart │ │ ├── generated/ │ │ │ ├── app.g.dart │ │ │ ├── config.g.dart │ │ │ └── state.g.dart │ │ ├── providers.dart │ │ └── state.dart │ ├── state.dart │ ├── views/ │ │ ├── about.dart │ │ ├── access.dart │ │ ├── application_setting.dart │ │ ├── backup_and_recovery.dart │ │ ├── config/ │ │ │ ├── config.dart │ │ │ ├── dns.dart │ │ │ ├── experimental.dart │ │ │ ├── general.dart │ │ │ ├── network.dart │ │ │ ├── ntp.dart │ │ │ ├── sniffer.dart │ │ │ └── tunnel.dart │ │ ├── connection/ │ │ │ ├── connections.dart │ │ │ ├── item.dart │ │ │ └── requests.dart │ │ ├── dashboard/ │ │ │ ├── dashboard.dart │ │ │ └── widgets/ │ │ │ ├── connections_count.dart │ │ │ ├── dns_override.dart │ │ │ ├── fcm_status.dart │ │ │ ├── intranet_ip.dart │ │ │ ├── ipv6_switch.dart │ │ │ ├── memory_info.dart │ │ │ ├── network_detection.dart │ │ │ ├── network_speed.dart │ │ │ ├── network_speed_small.dart │ │ │ ├── ntp_override.dart │ │ │ ├── online_panel.dart │ │ │ ├── outbound_mode.dart │ │ │ ├── providers_info.dart │ │ │ ├── quick_options.dart │ │ │ ├── sniffer_override.dart │ │ │ ├── start_button.dart │ │ │ ├── traffic_usage.dart │ │ │ ├── wakelock_switch.dart │ │ │ └── widgets.dart │ │ ├── developer.dart │ │ ├── hotkey.dart │ │ ├── logs.dart │ │ ├── other_setting.dart │ │ ├── profiles/ │ │ │ ├── add_profile.dart │ │ │ ├── edit_profile.dart │ │ │ ├── override_profile.dart │ │ │ ├── profiles.dart │ │ │ └── scripts.dart │ │ ├── proxies/ │ │ │ ├── advanced_settings.dart │ │ │ ├── card.dart │ │ │ ├── common.dart │ │ │ ├── list.dart │ │ │ ├── providers.dart │ │ │ ├── proxies.dart │ │ │ ├── setting.dart │ │ │ └── tab.dart │ │ ├── resources.dart │ │ ├── theme.dart │ │ ├── tools.dart │ │ └── views.dart │ └── widgets/ │ ├── activate_box.dart │ ├── animate_grid.dart │ ├── bar_chart.dart │ ├── builder.dart │ ├── card.dart │ ├── chip.dart │ ├── color_scheme_box.dart │ ├── container.dart │ ├── dialog.dart │ ├── disabled_mask.dart │ ├── donut_chart.dart │ ├── effect.dart │ ├── fade_box.dart │ ├── float_layout.dart │ ├── google_bottom_nav_bar.dart │ ├── grid.dart │ ├── icon.dart │ ├── input.dart │ ├── keep_scope.dart │ ├── line_chart.dart │ ├── list.dart │ ├── notification.dart │ ├── null_status.dart │ ├── open_container.dart │ ├── palette.dart │ ├── pop_scope.dart │ ├── popup.dart │ ├── scaffold.dart │ ├── scroll.dart │ ├── setting.dart │ ├── sheet.dart │ ├── side_sheet.dart │ ├── subscription_info_view.dart │ ├── super_grid.dart │ ├── tab.dart │ ├── text.dart │ ├── view.dart │ ├── wave.dart │ └── widgets.dart ├── linux/ │ ├── .gitignore │ ├── 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/ │ ├── appimage/ │ │ └── make_config.yaml │ ├── deb/ │ │ └── make_config.yaml │ └── rpm/ │ └── make_config.yaml ├── macos/ │ ├── .gitignore │ ├── Flutter/ │ │ ├── Flutter-Debug.xcconfig │ │ ├── Flutter-Release.xcconfig │ │ └── GeneratedPluginRegistrant.swift │ ├── Podfile │ ├── Runner/ │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets/ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ └── 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 │ │ └── xcshareddata/ │ │ └── xcschemes/ │ │ └── Runner.xcscheme │ ├── Runner.xcworkspace/ │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata/ │ │ └── IDEWorkspaceChecks.plist │ ├── RunnerTests/ │ │ └── RunnerTests.swift │ └── packaging/ │ └── dmg/ │ └── make_config.yaml ├── plugins/ │ ├── flutter_distributor/ │ │ ├── .all-contributorsrc │ │ ├── .github/ │ │ │ ├── FUNDING.yml │ │ │ └── workflows/ │ │ │ ├── hello_world_build.yml │ │ │ ├── lint.yml │ │ │ └── test.yml │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── analysis_options.yaml │ │ ├── examples/ │ │ │ ├── custom_binary_name/ │ │ │ │ ├── .gitignore │ │ │ │ ├── .metadata │ │ │ │ ├── analysis_options.yaml │ │ │ │ ├── distribute_options.yaml │ │ │ │ ├── lib/ │ │ │ │ │ └── main.dart │ │ │ │ ├── linux/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── 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/ │ │ │ │ │ ├── appimage/ │ │ │ │ │ │ └── make_config.yaml │ │ │ │ │ └── deb/ │ │ │ │ │ └── make_config.yaml │ │ │ │ ├── macos/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── Flutter/ │ │ │ │ │ │ ├── Flutter-Debug.xcconfig │ │ │ │ │ │ ├── Flutter-Release.xcconfig │ │ │ │ │ │ └── GeneratedPluginRegistrant.swift │ │ │ │ │ ├── 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 │ │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ │ └── xcschemes/ │ │ │ │ │ │ └── Runner.xcscheme │ │ │ │ │ ├── Runner.xcworkspace/ │ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ │ ├── RunnerTests/ │ │ │ │ │ │ └── RunnerTests.swift │ │ │ │ │ └── packaging/ │ │ │ │ │ └── dmg/ │ │ │ │ │ └── make_config.yaml │ │ │ │ ├── pubspec.yaml │ │ │ │ ├── release.sh │ │ │ │ └── test/ │ │ │ │ └── widget_test.dart │ │ │ ├── hello_world/ │ │ │ │ ├── .gitignore │ │ │ │ ├── .metadata │ │ │ │ ├── analysis_options.yaml │ │ │ │ ├── android/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── app/ │ │ │ │ │ │ ├── build.gradle │ │ │ │ │ │ └── src/ │ │ │ │ │ │ ├── debug/ │ │ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ │ │ ├── main/ │ │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ │ ├── kotlin/ │ │ │ │ │ │ │ │ └── org/ │ │ │ │ │ │ │ │ └── leanflutter/ │ │ │ │ │ │ │ │ └── examples/ │ │ │ │ │ │ │ │ └── hello_world/ │ │ │ │ │ │ │ │ └── MainActivity.kt │ │ │ │ │ │ │ └── res/ │ │ │ │ │ │ │ ├── drawable/ │ │ │ │ │ │ │ │ └── launch_background.xml │ │ │ │ │ │ │ ├── drawable-v21/ │ │ │ │ │ │ │ │ └── launch_background.xml │ │ │ │ │ │ │ ├── values/ │ │ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ │ └── values-night/ │ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ └── profile/ │ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ │ ├── build.gradle │ │ │ │ │ ├── gradle/ │ │ │ │ │ │ └── wrapper/ │ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ │ ├── gradle.properties │ │ │ │ │ └── settings.gradle │ │ │ │ ├── distribute_options.yaml │ │ │ │ ├── env.json │ │ │ │ ├── ios/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── ExportOptions.plist │ │ │ │ │ ├── Flutter/ │ │ │ │ │ │ ├── AppFrameworkInfo.plist │ │ │ │ │ │ ├── Debug.xcconfig │ │ │ │ │ │ └── Release.xcconfig │ │ │ │ │ ├── Podfile │ │ │ │ │ ├── Runner/ │ │ │ │ │ │ ├── AppDelegate.swift │ │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ │ └── LaunchImage.imageset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Base.lproj/ │ │ │ │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ │ │ │ └── Main.storyboard │ │ │ │ │ │ ├── Info.plist │ │ │ │ │ │ └── Runner-Bridging-Header.h │ │ │ │ │ ├── Runner.xcodeproj/ │ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ │ ├── project.xcworkspace/ │ │ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ │ │ └── WorkspaceSettings.xcsettings │ │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ │ └── xcschemes/ │ │ │ │ │ │ └── Runner.xcscheme │ │ │ │ │ └── Runner.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── WorkspaceSettings.xcsettings │ │ │ │ ├── lib/ │ │ │ │ │ └── main.dart │ │ │ │ ├── linux/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── 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/ │ │ │ │ │ ├── appimage/ │ │ │ │ │ │ └── make_config.yaml │ │ │ │ │ ├── deb/ │ │ │ │ │ │ └── make_config.yaml │ │ │ │ │ ├── helloworld.appdata.xml │ │ │ │ │ ├── pacman/ │ │ │ │ │ │ └── make_config.yaml │ │ │ │ │ └── rpm/ │ │ │ │ │ └── make_config.yaml │ │ │ │ ├── macos/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── 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 │ │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ │ └── xcschemes/ │ │ │ │ │ │ └── Runner.xcscheme │ │ │ │ │ ├── Runner.xcworkspace/ │ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ │ └── packaging/ │ │ │ │ │ ├── dmg/ │ │ │ │ │ │ └── make_config.yaml │ │ │ │ │ └── pkg/ │ │ │ │ │ └── make_config.yaml │ │ │ │ ├── ohos/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── AppScope/ │ │ │ │ │ │ ├── app.json5 │ │ │ │ │ │ └── resources/ │ │ │ │ │ │ └── base/ │ │ │ │ │ │ └── element/ │ │ │ │ │ │ └── string.json │ │ │ │ │ ├── build-profile.json5 │ │ │ │ │ ├── entry/ │ │ │ │ │ │ ├── .gitignore │ │ │ │ │ │ ├── build-profile.json5 │ │ │ │ │ │ ├── hvigorfile.ts │ │ │ │ │ │ ├── oh-package.json5 │ │ │ │ │ │ └── src/ │ │ │ │ │ │ ├── main/ │ │ │ │ │ │ │ ├── ets/ │ │ │ │ │ │ │ │ ├── entryability/ │ │ │ │ │ │ │ │ │ └── EntryAbility.ets │ │ │ │ │ │ │ │ ├── pages/ │ │ │ │ │ │ │ │ │ └── Index.ets │ │ │ │ │ │ │ │ └── plugins/ │ │ │ │ │ │ │ │ └── GeneratedPluginRegistrant.ets │ │ │ │ │ │ │ ├── module.json5 │ │ │ │ │ │ │ └── resources/ │ │ │ │ │ │ │ ├── base/ │ │ │ │ │ │ │ │ ├── element/ │ │ │ │ │ │ │ │ │ ├── color.json │ │ │ │ │ │ │ │ │ └── string.json │ │ │ │ │ │ │ │ └── profile/ │ │ │ │ │ │ │ │ ├── buildinfo.json5 │ │ │ │ │ │ │ │ └── main_pages.json │ │ │ │ │ │ │ ├── en_US/ │ │ │ │ │ │ │ │ └── element/ │ │ │ │ │ │ │ │ └── string.json │ │ │ │ │ │ │ └── zh_CN/ │ │ │ │ │ │ │ └── element/ │ │ │ │ │ │ │ └── string.json │ │ │ │ │ │ └── ohosTest/ │ │ │ │ │ │ ├── ets/ │ │ │ │ │ │ │ ├── test/ │ │ │ │ │ │ │ │ ├── Ability.test.ets │ │ │ │ │ │ │ │ └── List.test.ets │ │ │ │ │ │ │ ├── testability/ │ │ │ │ │ │ │ │ ├── TestAbility.ets │ │ │ │ │ │ │ │ └── pages/ │ │ │ │ │ │ │ │ └── Index.ets │ │ │ │ │ │ │ └── testrunner/ │ │ │ │ │ │ │ └── OpenHarmonyTestRunner.ts │ │ │ │ │ │ ├── module.json5 │ │ │ │ │ │ └── resources/ │ │ │ │ │ │ └── base/ │ │ │ │ │ │ ├── element/ │ │ │ │ │ │ │ ├── color.json │ │ │ │ │ │ │ └── string.json │ │ │ │ │ │ └── profile/ │ │ │ │ │ │ └── test_pages.json │ │ │ │ │ ├── hvigor/ │ │ │ │ │ │ └── hvigor-config.json5 │ │ │ │ │ ├── hvigorfile.ts │ │ │ │ │ └── oh-package.json5 │ │ │ │ ├── pubspec.yaml │ │ │ │ ├── release.sh │ │ │ │ ├── test/ │ │ │ │ │ └── widget_test.dart │ │ │ │ ├── web/ │ │ │ │ │ ├── index.html │ │ │ │ │ └── manifest.json │ │ │ │ └── windows/ │ │ │ │ ├── .gitignore │ │ │ │ ├── CMakeLists.txt │ │ │ │ ├── flutter/ │ │ │ │ │ ├── CMakeLists.txt │ │ │ │ │ ├── generated_plugin_registrant.cc │ │ │ │ │ ├── generated_plugin_registrant.h │ │ │ │ │ └── generated_plugins.cmake │ │ │ │ ├── packaging/ │ │ │ │ │ ├── exe/ │ │ │ │ │ │ ├── custom-inno-setup-script.iss │ │ │ │ │ │ └── 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 │ │ │ └── multiple_flavors/ │ │ │ ├── .gitignore │ │ │ ├── .metadata │ │ │ ├── analysis_options.yaml │ │ │ ├── android/ │ │ │ │ ├── .gitignore │ │ │ │ ├── app/ │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src/ │ │ │ │ │ ├── debug/ │ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ │ ├── main/ │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ ├── java/ │ │ │ │ │ │ │ └── org/ │ │ │ │ │ │ │ └── leanflutter/ │ │ │ │ │ │ │ └── examples/ │ │ │ │ │ │ │ └── multiple_flavors/ │ │ │ │ │ │ │ └── MainActivity.java │ │ │ │ │ │ └── res/ │ │ │ │ │ │ ├── drawable/ │ │ │ │ │ │ │ └── launch_background.xml │ │ │ │ │ │ ├── drawable-v21/ │ │ │ │ │ │ │ └── launch_background.xml │ │ │ │ │ │ ├── values/ │ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ └── values-night/ │ │ │ │ │ │ └── styles.xml │ │ │ │ │ └── profile/ │ │ │ │ │ └── AndroidManifest.xml │ │ │ │ ├── build.gradle │ │ │ │ ├── gradle/ │ │ │ │ │ └── wrapper/ │ │ │ │ │ └── gradle-wrapper.properties │ │ │ │ ├── gradle.properties │ │ │ │ └── settings.gradle │ │ │ ├── distribute_options.yaml │ │ │ ├── ios/ │ │ │ │ ├── .gitignore │ │ │ │ ├── Flutter/ │ │ │ │ │ ├── AppFrameworkInfo.plist │ │ │ │ │ ├── Debug.xcconfig │ │ │ │ │ └── Release.xcconfig │ │ │ │ ├── Podfile │ │ │ │ ├── Runner/ │ │ │ │ │ ├── AppDelegate.h │ │ │ │ │ ├── AppDelegate.m │ │ │ │ │ ├── Assets.xcassets/ │ │ │ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── LaunchImage.imageset/ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ ├── Base.lproj/ │ │ │ │ │ │ ├── LaunchScreen.storyboard │ │ │ │ │ │ └── Main.storyboard │ │ │ │ │ ├── Info.plist │ │ │ │ │ └── main.m │ │ │ │ ├── Runner.xcodeproj/ │ │ │ │ │ ├── project.pbxproj │ │ │ │ │ ├── project.xcworkspace/ │ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ │ └── WorkspaceSettings.xcsettings │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── xcschemes/ │ │ │ │ │ ├── Runner.xcscheme │ │ │ │ │ ├── dev.xcscheme │ │ │ │ │ └── prod.xcscheme │ │ │ │ ├── Runner.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── WorkspaceSettings.xcsettings │ │ │ │ ├── dev_ExportOptions.plist │ │ │ │ └── prod_ExportOptions.plist │ │ │ ├── lib/ │ │ │ │ └── main.dart │ │ │ ├── macos/ │ │ │ │ ├── .gitignore │ │ │ │ ├── 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 │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── xcschemes/ │ │ │ │ │ ├── Runner.xcscheme │ │ │ │ │ ├── dev.xcscheme │ │ │ │ │ └── prod.xcscheme │ │ │ │ ├── Runner.xcworkspace/ │ │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ │ └── xcshareddata/ │ │ │ │ │ └── IDEWorkspaceChecks.plist │ │ │ │ ├── RunnerTests/ │ │ │ │ │ └── RunnerTests.swift │ │ │ │ └── packaging/ │ │ │ │ └── dmg/ │ │ │ │ └── make_config.yaml │ │ │ ├── ohos/ │ │ │ │ ├── .gitignore │ │ │ │ ├── AppScope/ │ │ │ │ │ ├── app.json5 │ │ │ │ │ └── resources/ │ │ │ │ │ └── base/ │ │ │ │ │ └── element/ │ │ │ │ │ └── string.json │ │ │ │ ├── build-profile.json5 │ │ │ │ ├── entry/ │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── build-profile.json5 │ │ │ │ │ ├── hvigorfile.ts │ │ │ │ │ ├── oh-package.json5 │ │ │ │ │ └── src/ │ │ │ │ │ ├── main/ │ │ │ │ │ │ ├── ets/ │ │ │ │ │ │ │ ├── entryability/ │ │ │ │ │ │ │ │ └── EntryAbility.ets │ │ │ │ │ │ │ ├── pages/ │ │ │ │ │ │ │ │ └── Index.ets │ │ │ │ │ │ │ └── plugins/ │ │ │ │ │ │ │ └── GeneratedPluginRegistrant.ets │ │ │ │ │ │ ├── module.json5 │ │ │ │ │ │ └── resources/ │ │ │ │ │ │ ├── base/ │ │ │ │ │ │ │ ├── element/ │ │ │ │ │ │ │ │ ├── color.json │ │ │ │ │ │ │ │ └── string.json │ │ │ │ │ │ │ └── profile/ │ │ │ │ │ │ │ ├── buildinfo.json5 │ │ │ │ │ │ │ └── main_pages.json │ │ │ │ │ │ ├── en_US/ │ │ │ │ │ │ │ └── element/ │ │ │ │ │ │ │ └── string.json │ │ │ │ │ │ └── zh_CN/ │ │ │ │ │ │ └── element/ │ │ │ │ │ │ └── string.json │ │ │ │ │ └── ohosTest/ │ │ │ │ │ ├── ets/ │ │ │ │ │ │ ├── test/ │ │ │ │ │ │ │ ├── Ability.test.ets │ │ │ │ │ │ │ └── List.test.ets │ │ │ │ │ │ ├── testability/ │ │ │ │ │ │ │ ├── TestAbility.ets │ │ │ │ │ │ │ └── pages/ │ │ │ │ │ │ │ └── Index.ets │ │ │ │ │ │ └── testrunner/ │ │ │ │ │ │ └── OpenHarmonyTestRunner.ts │ │ │ │ │ ├── module.json5 │ │ │ │ │ └── resources/ │ │ │ │ │ └── base/ │ │ │ │ │ ├── element/ │ │ │ │ │ │ ├── color.json │ │ │ │ │ │ └── string.json │ │ │ │ │ └── profile/ │ │ │ │ │ └── test_pages.json │ │ │ │ ├── hvigor/ │ │ │ │ │ └── hvigor-config.json5 │ │ │ │ ├── hvigorfile.ts │ │ │ │ └── oh-package.json5 │ │ │ ├── pubspec.yaml │ │ │ ├── release.sh │ │ │ └── test/ │ │ │ └── widget_test.dart │ │ ├── melos.yaml │ │ ├── packages/ │ │ │ ├── fastforge/ │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── analysis_options.yaml │ │ │ │ ├── bin/ │ │ │ │ │ └── main.dart │ │ │ │ ├── lib/ │ │ │ │ │ └── fastforge.dart │ │ │ │ └── pubspec.yaml │ │ │ ├── flutter_app_builder/ │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── analysis_options.yaml │ │ │ │ ├── lib/ │ │ │ │ │ ├── flutter_app_builder.dart │ │ │ │ │ └── src/ │ │ │ │ │ ├── build_config.dart │ │ │ │ │ ├── build_error.dart │ │ │ │ │ ├── build_result.dart │ │ │ │ │ ├── builders/ │ │ │ │ │ │ ├── android/ │ │ │ │ │ │ │ ├── app_builder_android.dart │ │ │ │ │ │ │ └── build_android_result.dart │ │ │ │ │ │ ├── app_builder.dart │ │ │ │ │ │ ├── builders.dart │ │ │ │ │ │ ├── ios/ │ │ │ │ │ │ │ ├── app_builder_ios.dart │ │ │ │ │ │ │ └── build_ios_result.dart │ │ │ │ │ │ ├── linux/ │ │ │ │ │ │ │ ├── app_builder_linux.dart │ │ │ │ │ │ │ └── build_linux_result.dart │ │ │ │ │ │ ├── macos/ │ │ │ │ │ │ │ ├── app_builder_macos.dart │ │ │ │ │ │ │ └── build_macos_result.dart │ │ │ │ │ │ ├── ohos/ │ │ │ │ │ │ │ ├── app_builder_ohos.dart │ │ │ │ │ │ │ └── build_ohos_result.dart │ │ │ │ │ │ ├── web/ │ │ │ │ │ │ │ ├── app_builder_web.dart │ │ │ │ │ │ │ └── build_web_result.dart │ │ │ │ │ │ └── windows/ │ │ │ │ │ │ ├── app_builder_windows.dart │ │ │ │ │ │ └── build_windows_result.dart │ │ │ │ │ ├── commands/ │ │ │ │ │ │ └── flutter.dart │ │ │ │ │ └── flutter_app_builder.dart │ │ │ │ ├── pubspec.yaml │ │ │ │ └── test/ │ │ │ │ └── src/ │ │ │ │ ├── build_config_test.dart │ │ │ │ ├── builders/ │ │ │ │ │ ├── android/ │ │ │ │ │ │ └── build_android_result_test.dart │ │ │ │ │ ├── ios/ │ │ │ │ │ │ └── build_ios_result_test.dart │ │ │ │ │ ├── linux/ │ │ │ │ │ │ └── build_linux_result_test.dart │ │ │ │ │ ├── macos/ │ │ │ │ │ │ └── build_ios_result_test.dart │ │ │ │ │ ├── web/ │ │ │ │ │ │ └── build_web_result_test.dart │ │ │ │ │ └── windows/ │ │ │ │ │ └── build_windows_result_test.dart │ │ │ │ └── commands/ │ │ │ │ └── flutter_test.dart │ │ │ ├── flutter_app_packager/ │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── analysis_options.yaml │ │ │ │ ├── lib/ │ │ │ │ │ ├── flutter_app_packager.dart │ │ │ │ │ └── src/ │ │ │ │ │ ├── api/ │ │ │ │ │ │ ├── app_package_maker.dart │ │ │ │ │ │ ├── distribute_options_base.dart │ │ │ │ │ │ ├── make_config.dart │ │ │ │ │ │ ├── make_error.dart │ │ │ │ │ │ └── make_result.dart │ │ │ │ │ ├── flutter_app_packager.dart │ │ │ │ │ └── makers/ │ │ │ │ │ ├── aab/ │ │ │ │ │ │ └── app_package_maker_aab.dart │ │ │ │ │ ├── apk/ │ │ │ │ │ │ └── app_package_maker_apk.dart │ │ │ │ │ ├── app/ │ │ │ │ │ │ └── app_package_maker_app.dart │ │ │ │ │ ├── appimage/ │ │ │ │ │ │ ├── app_package_maker_appimage.dart │ │ │ │ │ │ └── make_appimage_config.dart │ │ │ │ │ ├── deb/ │ │ │ │ │ │ ├── app_package_maker_deb.dart │ │ │ │ │ │ └── make_deb_config.dart │ │ │ │ │ ├── direct/ │ │ │ │ │ │ └── app_package_maker_direct.dart │ │ │ │ │ ├── dmg/ │ │ │ │ │ │ ├── app_package_maker_dmg.dart │ │ │ │ │ │ ├── commands/ │ │ │ │ │ │ │ └── appdmg.dart │ │ │ │ │ │ └── make_dmg_config.dart │ │ │ │ │ ├── exe/ │ │ │ │ │ │ ├── app_package_maker_exe.dart │ │ │ │ │ │ ├── inno_setup/ │ │ │ │ │ │ │ ├── inno_setup_compiler.dart │ │ │ │ │ │ │ └── inno_setup_script.dart │ │ │ │ │ │ └── make_exe_config.dart │ │ │ │ │ ├── hap/ │ │ │ │ │ │ └── app_package_maker_hap.dart │ │ │ │ │ ├── ipa/ │ │ │ │ │ │ └── app_package_maker_ipa.dart │ │ │ │ │ ├── makers.dart │ │ │ │ │ ├── msix/ │ │ │ │ │ │ ├── app_package_maker_msix.dart │ │ │ │ │ │ └── make_msix_config.dart │ │ │ │ │ ├── pacman/ │ │ │ │ │ │ ├── app_package_maker_pacman.dart │ │ │ │ │ │ └── make_pacman_config.dart │ │ │ │ │ ├── pkg/ │ │ │ │ │ │ ├── app_package_maker_pkg.dart │ │ │ │ │ │ └── make_pkg_config.dart │ │ │ │ │ ├── rpm/ │ │ │ │ │ │ ├── app_package_maker_rpm.dart │ │ │ │ │ │ ├── make_rpm_config.dart │ │ │ │ │ │ └── rpmbuild.dart │ │ │ │ │ └── zip/ │ │ │ │ │ └── app_package_maker_zip.dart │ │ │ │ ├── pubspec.yaml │ │ │ │ └── test/ │ │ │ │ └── src/ │ │ │ │ └── api/ │ │ │ │ └── make_config_test.dart │ │ │ ├── flutter_app_publisher/ │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── analysis_options.yaml │ │ │ │ ├── lib/ │ │ │ │ │ ├── flutter_app_publisher.dart │ │ │ │ │ └── src/ │ │ │ │ │ ├── api/ │ │ │ │ │ │ └── app_package_publisher.dart │ │ │ │ │ ├── flutter_app_publisher.dart │ │ │ │ │ └── publishers/ │ │ │ │ │ ├── appcenter/ │ │ │ │ │ │ ├── app_package_publisher_appcenter.dart │ │ │ │ │ │ └── publish_appcenter_config.dart │ │ │ │ │ ├── appstore/ │ │ │ │ │ │ ├── app_package_publisher_appstore.dart │ │ │ │ │ │ └── publish_appstore_config.dart │ │ │ │ │ ├── fir/ │ │ │ │ │ │ ├── app_package_publisher_fir.dart │ │ │ │ │ │ └── publish_fir_config.dart │ │ │ │ │ ├── firebase/ │ │ │ │ │ │ ├── app_package_publisher_firebase.dart │ │ │ │ │ │ └── publish_firebase_config.dart │ │ │ │ │ ├── firebase_hosting/ │ │ │ │ │ │ ├── app_package_publisher_firebase_hosting.dart │ │ │ │ │ │ └── publish_firebase_hosting_config.dart │ │ │ │ │ ├── github/ │ │ │ │ │ │ ├── app_package_publisher_github.dart │ │ │ │ │ │ └── publish_github_config.dart │ │ │ │ │ ├── pgyer/ │ │ │ │ │ │ ├── app_package_publisher_pgyer.dart │ │ │ │ │ │ └── publish_pgyer_config.dart │ │ │ │ │ ├── playstore/ │ │ │ │ │ │ ├── app_package_publisher_playstore.dart │ │ │ │ │ │ └── publish_playstore_config.dart │ │ │ │ │ ├── publishers.dart │ │ │ │ │ ├── qiniu/ │ │ │ │ │ │ ├── app_package_publisher_qiniu.dart │ │ │ │ │ │ └── publish_qiniu_config.dart │ │ │ │ │ └── vercel/ │ │ │ │ │ ├── app_package_publisher_vercel.dart │ │ │ │ │ └── publish_vercel_config.dart │ │ │ │ └── pubspec.yaml │ │ │ ├── flutter_distributor/ │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── analysis_options.yaml │ │ │ │ ├── bin/ │ │ │ │ │ ├── command_package.dart │ │ │ │ │ ├── command_publish.dart │ │ │ │ │ ├── command_release.dart │ │ │ │ │ ├── command_upgrade.dart │ │ │ │ │ └── main.dart │ │ │ │ ├── lib/ │ │ │ │ │ ├── flutter_distributor.dart │ │ │ │ │ └── src/ │ │ │ │ │ ├── distribute_options.dart │ │ │ │ │ ├── extensions/ │ │ │ │ │ │ ├── extensions.dart │ │ │ │ │ │ └── string.dart │ │ │ │ │ ├── flutter_distributor.dart │ │ │ │ │ ├── release.dart │ │ │ │ │ ├── release_job.dart │ │ │ │ │ └── utils/ │ │ │ │ │ ├── default_shell_executor.dart │ │ │ │ │ ├── logger.dart │ │ │ │ │ ├── pub_dev_api.dart │ │ │ │ │ └── utils.dart │ │ │ │ ├── pubspec.yaml │ │ │ │ └── test/ │ │ │ │ └── src/ │ │ │ │ └── extensions/ │ │ │ │ └── string_test.dart │ │ │ ├── parse_app_package/ │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── bin/ │ │ │ │ │ └── main.dart │ │ │ │ ├── lib/ │ │ │ │ │ ├── parse_app_package.dart │ │ │ │ │ └── src/ │ │ │ │ │ ├── api/ │ │ │ │ │ │ └── app_package_parser.dart │ │ │ │ │ ├── parse_app_package.dart │ │ │ │ │ └── parsers/ │ │ │ │ │ ├── apk/ │ │ │ │ │ │ └── app_package_parser_apk.dart │ │ │ │ │ ├── ipa/ │ │ │ │ │ │ └── app_package_parser_ipa.dart │ │ │ │ │ └── parsers.dart │ │ │ │ └── pubspec.yaml │ │ │ ├── shell_executor/ │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── lib/ │ │ │ │ │ ├── shell_executor.dart │ │ │ │ │ └── src/ │ │ │ │ │ ├── command.dart │ │ │ │ │ ├── command_error.dart │ │ │ │ │ ├── shell_executor.dart │ │ │ │ │ └── utils/ │ │ │ │ │ └── path_expansion.dart │ │ │ │ ├── pubspec.yaml │ │ │ │ └── test/ │ │ │ │ └── src/ │ │ │ │ └── utils/ │ │ │ │ └── path_expansion_test.dart │ │ │ ├── shell_uikit/ │ │ │ │ ├── .gitignore │ │ │ │ ├── LICENSE │ │ │ │ ├── example/ │ │ │ │ │ ├── progress_bar_example.dart │ │ │ │ │ └── spinner_example.dart │ │ │ │ ├── lib/ │ │ │ │ │ ├── shell_uikit.dart │ │ │ │ │ └── src/ │ │ │ │ │ ├── progress_bar.dart │ │ │ │ │ └── spinner.dart │ │ │ │ └── pubspec.yaml │ │ │ └── unified_distributor/ │ │ │ ├── .gitignore │ │ │ ├── LICENSE │ │ │ ├── analysis_options.yaml │ │ │ ├── lib/ │ │ │ │ ├── src/ │ │ │ │ │ ├── check_version_result.dart │ │ │ │ │ ├── cli/ │ │ │ │ │ │ ├── cli.dart │ │ │ │ │ │ ├── command_package.dart │ │ │ │ │ │ ├── command_publish.dart │ │ │ │ │ │ ├── command_release.dart │ │ │ │ │ │ └── command_upgrade.dart │ │ │ │ │ ├── distribute_options.dart │ │ │ │ │ ├── extensions/ │ │ │ │ │ │ └── string.dart │ │ │ │ │ ├── release.dart │ │ │ │ │ ├── release_job.dart │ │ │ │ │ ├── unified_distributor.dart │ │ │ │ │ └── utils/ │ │ │ │ │ ├── default_shell_executor.dart │ │ │ │ │ ├── logger.dart │ │ │ │ │ └── pub_dev_api.dart │ │ │ │ └── unified_distributor.dart │ │ │ ├── pubspec.yaml │ │ │ └── test/ │ │ │ └── src/ │ │ │ └── extensions/ │ │ │ └── string_test.dart │ │ ├── pubspec.yaml │ │ └── website/ │ │ ├── .gitignore │ │ ├── astro.config.mjs │ │ ├── package.json │ │ ├── src/ │ │ │ ├── components/ │ │ │ │ └── starlight/ │ │ │ │ └── TableOfContents.astro │ │ │ ├── content/ │ │ │ │ ├── config.ts │ │ │ │ ├── docs/ │ │ │ │ │ ├── index.mdx │ │ │ │ │ └── zh-hans/ │ │ │ │ │ └── index.mdx │ │ │ │ └── i18n/ │ │ │ │ ├── en.json │ │ │ │ └── zh-cn.json │ │ │ ├── env.d.ts │ │ │ └── tailwind.css │ │ ├── tailwind.config.js │ │ └── tsconfig.json │ ├── proxy/ │ │ ├── .gitignore │ │ ├── .metadata │ │ ├── LICENSE │ │ ├── analysis_options.yaml │ │ ├── lib/ │ │ │ ├── proxy.dart │ │ │ ├── proxy_method_channel.dart │ │ │ └── proxy_platform_interface.dart │ │ ├── pubspec.yaml │ │ └── windows/ │ │ ├── .gitignore │ │ ├── CMakeLists.txt │ │ ├── include/ │ │ │ └── proxy/ │ │ │ └── proxy_plugin_c_api.h │ │ ├── proxy_plugin.cpp │ │ ├── proxy_plugin.h │ │ ├── proxy_plugin_c_api.cpp │ │ └── test/ │ │ └── proxy_plugin_test.cpp │ └── window_ext/ │ ├── .gitignore │ ├── .metadata │ ├── LICENSE │ ├── analysis_options.yaml │ ├── lib/ │ │ ├── window_ext.dart │ │ ├── window_ext_listener.dart │ │ └── window_ext_manager.dart │ ├── macos/ │ │ ├── Classes/ │ │ │ └── WindowExtPlugin.swift │ │ └── window_ext.podspec │ ├── pubspec.yaml │ └── windows/ │ ├── .gitignore │ ├── CMakeLists.txt │ ├── include/ │ │ └── window_ext/ │ │ └── window_ext_plugin_c_api.h │ ├── test/ │ │ └── window_ext_plugin_test.cpp │ ├── window_ext_plugin.cpp │ ├── window_ext_plugin.h │ └── window_ext_plugin_c_api.cpp ├── pubspec.yaml ├── services/ │ └── helper/ │ ├── Cargo.toml │ ├── build.rs │ └── src/ │ ├── main.rs │ └── service/ │ ├── hub.rs │ ├── mod.rs │ └── windows.rs ├── setup.dart └── windows/ ├── .gitignore ├── CMakeLists.txt ├── flutter/ │ ├── CMakeLists.txt │ ├── generated_plugin_registrant.cc │ ├── generated_plugin_registrant.h │ └── generated_plugins.cmake ├── packaging/ │ └── exe/ │ ├── ChineseSimplified.isl │ ├── inno_setup.iss │ └── 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