gitextract_xlm06j4i/ ├── .github/ │ └── ISSUE_TEMPLATE/ │ ├── bug_report.yml │ ├── feature_request.yml │ └── 功能请求.yml ├── .gitignore ├── .metadata ├── LICENSE ├── README.md ├── README_CN.md ├── analysis_options.yaml ├── android/ │ ├── .gitignore │ ├── app/ │ │ ├── build.gradle │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── debug/ │ │ │ └── AndroidManifest.xml │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── kotlin/ │ │ │ │ └── com/ │ │ │ │ └── network/ │ │ │ │ └── proxy/ │ │ │ │ ├── MainActivity.kt │ │ │ │ ├── ProxyVpnService.kt │ │ │ │ ├── VpnAlertDialog.kt │ │ │ │ ├── plugin/ │ │ │ │ │ ├── AndroidFlutterPlugin.kt │ │ │ │ │ ├── AppInfo.kt │ │ │ │ │ ├── AppLifecyclePlugin.kt │ │ │ │ │ ├── InstalledAppsPlugin.kt │ │ │ │ │ ├── PictureInPicturePlugin.kt │ │ │ │ │ ├── ProcessInfoPlugin.kt │ │ │ │ │ └── VpnServicePlugin.kt │ │ │ │ └── vpn/ │ │ │ │ ├── Connection.kt │ │ │ │ ├── ConnectionHandler.kt │ │ │ │ ├── ConnectionManager.kt │ │ │ │ ├── Protocol.java │ │ │ │ ├── ProxyVpnThread.kt │ │ │ │ ├── Tag.kt │ │ │ │ ├── socket/ │ │ │ │ │ ├── ClientPacketWriter.kt │ │ │ │ │ ├── CloseableConnection.kt │ │ │ │ │ ├── Constant.kt │ │ │ │ │ ├── ProtectSocket.kt │ │ │ │ │ ├── ProtectSocketHolder.kt │ │ │ │ │ ├── SocketChannelReader.java │ │ │ │ │ ├── SocketChannelWriter.java │ │ │ │ │ └── SocketNIODataService.java │ │ │ │ ├── transport/ │ │ │ │ │ ├── Packet.kt │ │ │ │ │ ├── icmp/ │ │ │ │ │ │ ├── ICMPPacket.java │ │ │ │ │ │ └── ICMPPacketFactory.java │ │ │ │ │ └── protocol/ │ │ │ │ │ ├── IP4Header.kt │ │ │ │ │ ├── TCPHeader.kt │ │ │ │ │ ├── TCPPacketFactory.kt │ │ │ │ │ ├── TransportHeader.kt │ │ │ │ │ └── UDPHeader.kt │ │ │ │ └── util/ │ │ │ │ ├── PacketUtil.kt │ │ │ │ ├── ProcessInfoManager.kt │ │ │ │ ├── SimpleCache.kt │ │ │ │ └── TLS.kt │ │ │ └── res/ │ │ │ ├── drawable/ │ │ │ │ └── launch_background.xml │ │ │ ├── drawable-v21/ │ │ │ │ └── launch_background.xml │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ └── ic_launcher.xml │ │ │ ├── values/ │ │ │ │ └── styles.xml │ │ │ └── values-night/ │ │ │ └── styles.xml │ │ └── profile/ │ │ └── AndroidManifest.xml │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ └── settings.gradle ├── assets/ │ ├── certs/ │ │ ├── ca.crt │ │ ├── ca_key.pem │ │ └── ca_private.der │ └── js/ │ └── fetch.js ├── devtools_options.yaml ├── distribute_options.yaml ├── ios/ │ ├── .gitignore │ ├── Flutter/ │ │ ├── AppFrameworkInfo.plist │ │ ├── Debug.xcconfig │ │ └── Release.xcconfig │ ├── Podfile │ ├── ProxyPin/ │ │ ├── Info.plist │ │ ├── PacketTunnelProvider.swift │ │ ├── ProxyPin-Bridging-Header.h │ │ ├── ProxyPin.entitlements │ │ └── vpn/ │ │ ├── Connection.swift │ │ ├── ConnectionHandler.swift │ │ ├── ConnectionManager.swift │ │ ├── NWProtocol.swift │ │ ├── ProxyVpnService.swift │ │ ├── QueueFactory.swift │ │ ├── ping/ │ │ │ ├── GBPing.h │ │ │ ├── GBPing.m │ │ │ ├── GBPingHelper.swift │ │ │ ├── GBPingSummary.h │ │ │ ├── GBPingSummary.m │ │ │ └── ICMPHeader.h │ │ ├── socket/ │ │ │ ├── ClientPacketWriter.swift │ │ │ ├── CloseableConnection.swift │ │ │ └── SocketIOService.swift │ │ ├── transport/ │ │ │ ├── Packet.swift │ │ │ └── protocol/ │ │ │ ├── ICMPPacket.swift │ │ │ ├── IP4Header.swift │ │ │ ├── TCPHeader.swift │ │ │ ├── TCPPacketFactory.swift │ │ │ ├── TransportHeader.swift │ │ │ └── UDPHeader.swift │ │ └── utils/ │ │ ├── PacketUtil.swift │ │ └── TLS.swift │ ├── Runner/ │ │ ├── AppDelegate.swift │ │ ├── Assets.xcassets/ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ └── LaunchImage.imageset/ │ │ │ ├── Contents.json │ │ │ └── README.md │ │ ├── AudioManager.swift │ │ ├── Base.lproj/ │ │ │ ├── LaunchScreen.storyboard │ │ │ └── Main.storyboard │ │ ├── Handlers/ │ │ │ └── MethodHandler.swift │ │ ├── Info.plist │ │ ├── Runner-Bridging-Header.h │ │ ├── Runner.entitlements │ │ ├── VpnManager.swift │ │ ├── en.lproj/ │ │ │ └── InfoPlist.strings │ │ ├── pip/ │ │ │ ├── PictureInPictureManager.swift │ │ │ └── PictureInPictureView.swift │ │ └── zh-Hans.lproj/ │ │ ├── InfoPlist.strings │ │ ├── LaunchScreen.strings │ │ └── Main.strings │ ├── 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 │ └── RunnerTests/ │ └── RunnerTests.swift ├── l10n.yaml ├── lib/ │ ├── l10n/ │ │ ├── app_en.arb │ │ ├── app_localizations.dart │ │ ├── app_localizations_en.dart │ │ ├── app_localizations_zh.dart │ │ ├── app_zh.arb │ │ └── app_zh_Hant.arb │ ├── main.dart │ ├── native/ │ │ ├── app_lifecycle.dart │ │ ├── installed_apps.dart │ │ ├── native_method.dart │ │ ├── pip.dart │ │ ├── process_info.dart │ │ └── vpn.dart │ ├── network/ │ │ ├── bin/ │ │ │ ├── configuration.dart │ │ │ ├── listener.dart │ │ │ └── server.dart │ │ ├── channel/ │ │ │ ├── channel.dart │ │ │ ├── channel_context.dart │ │ │ ├── channel_dispatcher.dart │ │ │ ├── host_port.dart │ │ │ └── network.dart │ │ ├── components/ │ │ │ ├── host_filter.dart │ │ │ ├── hosts.dart │ │ │ ├── interceptor.dart │ │ │ ├── js/ │ │ │ │ ├── file.dart │ │ │ │ ├── md5.dart │ │ │ │ ├── script_engine.dart │ │ │ │ └── xhr.dart │ │ │ ├── manager/ │ │ │ │ ├── hosts_manager.dart │ │ │ │ ├── report_server_manager.dart │ │ │ │ ├── request_block_manager.dart │ │ │ │ ├── request_breakpoint_manager.dart │ │ │ │ ├── request_crypto_manager.dart │ │ │ │ ├── request_map_manager.dart │ │ │ │ ├── request_rewrite_manager.dart │ │ │ │ ├── rewrite_rule.dart │ │ │ │ └── script_manager.dart │ │ │ ├── report_server_interceptor.dart │ │ │ ├── request_block.dart │ │ │ ├── request_breakpoint.dart │ │ │ ├── request_map.dart │ │ │ ├── request_rewrite.dart │ │ │ └── script.dart │ │ ├── handle/ │ │ │ ├── http_proxy_handle.dart │ │ │ ├── relay_handle.dart │ │ │ ├── sse_handle.dart │ │ │ └── websocket_handle.dart │ │ ├── http/ │ │ │ ├── codec.dart │ │ │ ├── constants.dart │ │ │ ├── content_type.dart │ │ │ ├── h2/ │ │ │ │ ├── frame.dart │ │ │ │ ├── h2_codec.dart │ │ │ │ ├── hpack/ │ │ │ │ │ ├── hpack.dart │ │ │ │ │ ├── huffman.dart │ │ │ │ │ └── huffman_table.dart │ │ │ │ └── setting.dart │ │ │ ├── http.dart │ │ │ ├── http_client.dart │ │ │ ├── http_headers.dart │ │ │ ├── parse/ │ │ │ │ ├── body_reader.dart │ │ │ │ └── http_parser.dart │ │ │ ├── sse.dart │ │ │ └── websocket.dart │ │ ├── socks/ │ │ │ └── socks5.dart │ │ └── util/ │ │ ├── attribute_keys.dart │ │ ├── byte_buf.dart │ │ ├── byte_utils.dart │ │ ├── cache.dart │ │ ├── cert/ │ │ │ ├── basic_constraints.dart │ │ │ ├── cert_data.dart │ │ │ ├── der.dart │ │ │ ├── extension.dart │ │ │ ├── key_usage.dart │ │ │ ├── pkcs12.dart │ │ │ └── x509.dart │ │ ├── compress.dart │ │ ├── crts.dart │ │ ├── crypto.dart │ │ ├── file_read.dart │ │ ├── lang.dart │ │ ├── localizations.dart │ │ ├── logger.dart │ │ ├── process_info.dart │ │ ├── proxy_helper.dart │ │ ├── random.dart │ │ ├── socket_address.dart │ │ ├── system_proxy.dart │ │ ├── task_queue.dart │ │ ├── tls.dart │ │ └── uri.dart │ ├── storage/ │ │ ├── favorites.dart │ │ ├── histories.dart │ │ ├── local_storage.dart │ │ ├── path.dart │ │ └── shared_preference_keys.dart │ ├── ui/ │ │ ├── app_update/ │ │ │ ├── app_update_repository.dart │ │ │ ├── constants.dart │ │ │ ├── new_version_dialog.dart │ │ │ └── remote_version_entity.dart │ │ ├── component/ │ │ │ ├── app_dialog.dart │ │ │ ├── buttons.dart │ │ │ ├── chinese_font.dart │ │ │ ├── context_menu_region.dart │ │ │ ├── device.dart │ │ │ ├── history_cache_time.dart │ │ │ ├── http_method_popup.dart │ │ │ ├── json/ │ │ │ │ ├── json_text.dart │ │ │ │ ├── json_viewer.dart │ │ │ │ ├── theme.dart │ │ │ │ └── toast.dart │ │ │ ├── memory_cleanup.dart │ │ │ ├── model/ │ │ │ │ └── search_model.dart │ │ │ ├── multi_window.dart │ │ │ ├── proxy_port_setting.dart │ │ │ ├── qrcode/ │ │ │ │ └── qr_scan_view.dart │ │ │ ├── search/ │ │ │ │ ├── highlight_text.dart │ │ │ │ ├── search_controller.dart │ │ │ │ └── search_field.dart │ │ │ ├── search_condition.dart │ │ │ ├── split_view.dart │ │ │ ├── state_component.dart │ │ │ ├── text_field.dart │ │ │ ├── transition.dart │ │ │ ├── utils.dart │ │ │ └── widgets.dart │ │ ├── configuration.dart │ │ ├── content/ │ │ │ ├── body.dart │ │ │ ├── headers.dart │ │ │ ├── menu.dart │ │ │ ├── panel.dart │ │ │ └── web_socket.dart │ │ ├── desktop/ │ │ │ ├── common.dart │ │ │ ├── debug/ │ │ │ │ └── breakpoint_executor.dart │ │ │ ├── desktop.dart │ │ │ ├── left_menus/ │ │ │ │ ├── favorite.dart │ │ │ │ ├── history.dart │ │ │ │ └── navigation.dart │ │ │ ├── preference.dart │ │ │ ├── request/ │ │ │ │ ├── domians.dart │ │ │ │ ├── list.dart │ │ │ │ ├── repeat.dart │ │ │ │ ├── report_servers.dart │ │ │ │ ├── request.dart │ │ │ │ ├── request_editor.dart │ │ │ │ ├── request_sequence.dart │ │ │ │ └── search.dart │ │ │ ├── setting/ │ │ │ │ ├── about.dart │ │ │ │ ├── external_proxy.dart │ │ │ │ ├── filter.dart │ │ │ │ ├── hosts.dart │ │ │ │ ├── request_block.dart │ │ │ │ ├── request_breakpoint.dart │ │ │ │ ├── request_crypto.dart │ │ │ │ ├── request_map/ │ │ │ │ │ ├── map_local.dart │ │ │ │ │ └── map_scipt.dart │ │ │ │ ├── request_map.dart │ │ │ │ ├── request_rewrite.dart │ │ │ │ ├── rewrite/ │ │ │ │ │ ├── rewrite_replace.dart │ │ │ │ │ └── rewrite_update.dart │ │ │ │ ├── script.dart │ │ │ │ └── setting.dart │ │ │ ├── ssl/ │ │ │ │ ├── cert_installer.dart │ │ │ │ ├── pc_cert.dart │ │ │ │ └── ssl.dart │ │ │ ├── toolbar/ │ │ │ │ ├── phone_connect.dart │ │ │ │ └── toolbar.dart │ │ │ ├── widgets/ │ │ │ │ ├── highlight.dart │ │ │ │ └── windows_toolbar.dart │ │ │ └── window_listener.dart │ │ ├── launch/ │ │ │ └── launch.dart │ │ ├── mobile/ │ │ │ ├── debug/ │ │ │ │ └── breakpoint_executor.dart │ │ │ ├── menu/ │ │ │ │ ├── bottom_navigation.dart │ │ │ │ ├── drawer.dart │ │ │ │ └── menu.dart │ │ │ ├── mobile.dart │ │ │ ├── request/ │ │ │ │ ├── domians.dart │ │ │ │ ├── favorite.dart │ │ │ │ ├── history.dart │ │ │ │ ├── list.dart │ │ │ │ ├── repeat.dart │ │ │ │ ├── request.dart │ │ │ │ ├── request_editor.dart │ │ │ │ ├── request_editor_source.dart │ │ │ │ ├── request_sequence.dart │ │ │ │ └── search.dart │ │ │ ├── setting/ │ │ │ │ ├── app_filter.dart │ │ │ │ ├── filter.dart │ │ │ │ ├── hosts.dart │ │ │ │ ├── preference.dart │ │ │ │ ├── proxy.dart │ │ │ │ ├── report_servers.dart │ │ │ │ ├── request_block.dart │ │ │ │ ├── request_breakpoint.dart │ │ │ │ ├── request_crypto.dart │ │ │ │ ├── request_map/ │ │ │ │ │ ├── map_local.dart │ │ │ │ │ └── map_scipt.dart │ │ │ │ ├── request_map.dart │ │ │ │ ├── request_rewrite.dart │ │ │ │ ├── rewrite/ │ │ │ │ │ ├── rewrite_replace.dart │ │ │ │ │ └── rewrite_update.dart │ │ │ │ ├── script.dart │ │ │ │ ├── ssl.dart │ │ │ │ ├── theme.dart │ │ │ │ └── video_player.dart │ │ │ └── widgets/ │ │ │ ├── about.dart │ │ │ ├── floating_window.dart │ │ │ ├── highlight.dart │ │ │ ├── pip.dart │ │ │ └── remote_device.dart │ │ └── toolbox/ │ │ ├── aes_page.dart │ │ ├── cert_hash.dart │ │ ├── encoder.dart │ │ ├── js_run.dart │ │ ├── qr_code_page.dart │ │ ├── regexp.dart │ │ ├── timestamp.dart │ │ ├── toolbox.dart │ │ └── websocket_request.dart │ └── utils/ │ ├── aes.dart │ ├── crypto_body_decoder.dart │ ├── curl.dart │ ├── desktop_support.dart │ ├── export_request.dart │ ├── files.dart │ ├── font.dart │ ├── har.dart │ ├── ip.dart │ ├── keyword_highlight.dart │ ├── lang.dart │ ├── listenable_list.dart │ ├── navigator.dart │ ├── num.dart │ ├── platform.dart │ ├── python.dart │ └── task.dart ├── linux/ │ ├── .gitignore │ ├── CMakeLists.txt │ ├── build.sh │ ├── flutter/ │ │ ├── CMakeLists.txt │ │ ├── generated_plugin_registrant.cc │ │ ├── generated_plugin_registrant.h │ │ └── generated_plugins.cmake │ ├── main.cc │ ├── my_application.cc │ ├── my_application.h │ └── proxy-pin.desktop ├── macos/ │ ├── .gitignore │ ├── Flutter/ │ │ ├── Flutter-Debug.xcconfig │ │ ├── Flutter-Release.xcconfig │ │ └── GeneratedPluginRegistrant.swift │ ├── Podfile │ ├── Runner/ │ │ ├── AppDelegate.swift │ │ ├── AppLifecycleChannel.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 │ │ └── RunnerProfile.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 ├── test/ │ ├── base64_test.dart │ ├── cert_test.dart │ ├── favorites_trim_test.dart │ ├── http_test.dart │ ├── js.js │ ├── js_test.dart │ ├── pk12_test.dart │ ├── requests_test.py │ ├── temp_ipv6_test.dart │ ├── tests.dart │ ├── url_test.dart │ ├── web_test.dart │ ├── websocket.dart │ ├── websocket_persistence_test.dart │ ├── widget_test.dart │ └── x509_test.dart └── windows/ ├── .gitignore ├── 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