diff --git a/include/kernel-version.mk b/include/kernel-version.mk index 1092c95738..049a62823b 100644 --- a/include/kernel-version.mk +++ b/include/kernel-version.mk @@ -6,12 +6,12 @@ ifdef CONFIG_TESTING_KERNEL KERNEL_PATCHVER:=$(KERNEL_TESTING_PATCHVER) endif -LINUX_VERSION-4.14 = .199 -LINUX_VERSION-4.19 = .148 +LINUX_VERSION-4.14 = .200 +LINUX_VERSION-4.19 = .149 LINUX_VERSION-5.4 = .68 -LINUX_KERNEL_HASH-4.14.199 = 02f3432a262b3804745501f8c3c51d735133af48a39909df8b031d0b9653d4f9 -LINUX_KERNEL_HASH-4.19.148 = 3308c74a93ce6d4e495fde35d1351061240a895f76a288248c343713bd63555b +LINUX_KERNEL_HASH-4.14.200 = 5d404a0224a34b5379f1871cc46825487d557c2660459d2b5c3cd4871d699a38 +LINUX_KERNEL_HASH-4.19.149 = d9cdcb9a66942a56b91c8d4b273d15a3c5b8e59fad44b79e03362cfffaa62a00 LINUX_KERNEL_HASH-5.4.68 = 0e93876c5ae8dc0c55cbe631971a46ab02b90cf7461fed3085703a5e4e3cd6dd remove_uri_prefix=$(subst git://,,$(subst http://,,$(subst https://,,$(1)))) diff --git a/package/ctcgfw/luci-app-openclash/Makefile b/package/ctcgfw/luci-app-openclash/Makefile index 32bab84eb1..e473474f85 100644 --- a/package/ctcgfw/luci-app-openclash/Makefile +++ b/package/ctcgfw/luci-app-openclash/Makefile @@ -1,7 +1,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-openclash -PKG_VERSION:=0.40.6 +PKG_VERSION:=0.40.7 PKG_RELEASE:=beta PKG_MAINTAINER:=vernesong diff --git a/package/ctcgfw/luci-app-openclash/luasrc/controller/openclash.lua b/package/ctcgfw/luci-app-openclash/luasrc/controller/openclash.lua index 1200635f54..cc3c1ff182 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/controller/openclash.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/controller/openclash.lua @@ -55,6 +55,17 @@ function index() end local fs = require "luci.openclash" +local core_path_mode = luci.sys.exec("uci get openclash.config.small_flash_memory 2>/dev/null |tr -d '\n'") +if core_path_mode ~= "1" then + dev_core_path="/etc/openclash/core/clash" + tun_core_path="/etc/openclash/core/clash_tun" + game_core_path="/etc/openclash/core/clash_game" +else + dev_core_path="/tmp/etc/openclash/core/clash" + tun_core_path="/tmp/etc/openclash/core/clash_tun" + game_core_path="/tmp/etc/openclash/core/clash_game" +end + local function is_running() return luci.sys.call("pidof clash >/dev/null") == 0 end @@ -143,26 +154,26 @@ local function coremodel() end local function corecv() -if not nixio.fs.access("/etc/openclash/core/clash") and not nixio.fs.access("/etc/openclash/clash") then +if not nixio.fs.access(dev_core_path) then return "0" else - return luci.sys.exec("/etc/openclash/core/clash -v 2>/dev/null |awk -F ' ' '{print $2}'") + return luci.sys.exec(string.format("%s -v 2>/dev/null |awk -F ' ' '{print $2}'",dev_core_path)) end end local function coretuncv() -if not nixio.fs.access("/etc/openclash/core/clash_tun") then +if not nixio.fs.access(tun_core_path) then return "0" else - return luci.sys.exec("/etc/openclash/core/clash_tun -v 2>/dev/null |awk -F ' ' '{print $2}'") + return luci.sys.exec(string.format("%s -v 2>/dev/null |awk -F ' ' '{print $2}'",tun_core_path)) end end local function coregamecv() -if not nixio.fs.access("/etc/openclash/core/clash_game") then +if not nixio.fs.access(game_core_path) then return "0" else - return luci.sys.exec("/etc/openclash/core/clash_game -v 2>/dev/null |awk -F ' ' '{print $2}'") + return luci.sys.exec(string.format("%s -v 2>/dev/null |awk -F ' ' '{print $2}'",game_core_path)) end end diff --git a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua index 956324b1eb..45c9202849 100644 --- a/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua +++ b/package/ctcgfw/luci-app-openclash/luasrc/model/cbi/openclash/settings.lua @@ -89,6 +89,12 @@ o:depends("en_mode", "redir-host-tun") o:depends("en_mode", "redir-host-vpn") o:depends("en_mode", "redir-host-mix") +o = s:taboption("op_mode", ListValue, "small_flash_memory", font_red..bold_on..translate("Small Flash Memory")..bold_off..font_off) +o.description = translate("Move Core And GEOIP Data File To /tmp/etc/openclash For Small Flash Memory Device") +o:value("0", translate("Disable")) +o:value("1", translate("Enable")) +o.default = "0" + ---- Operation Mode switch_mode = s:taboption("op_mode", DummyValue, "", nil) switch_mode.template = "openclash/switch_mode" diff --git a/package/ctcgfw/luci-app-openclash/po/zh-cn/openclash.zh-cn.po b/package/ctcgfw/luci-app-openclash/po/zh-cn/openclash.zh-cn.po index 36ebf10b19..f37b35cc53 100644 --- a/package/ctcgfw/luci-app-openclash/po/zh-cn/openclash.zh-cn.po +++ b/package/ctcgfw/luci-app-openclash/po/zh-cn/openclash.zh-cn.po @@ -1039,4 +1039,10 @@ msgid "Convert Subscribe Online With Template, Mix Proxies and Keep Settings opt msgstr "根据模板在线转换配置文件,混合节点和保留配置功能将不可用" msgid "Convert Subscribe function of Online is Supported By subconverter Written By tindy X" -msgstr "在线订阅转换功能由tindy X通过subconverter提供支持" \ No newline at end of file +msgstr "在线订阅转换功能由tindy X通过subconverter提供支持" + +msgid "Small Flash Memory" +msgstr "小闪存模式" + +msgid "Move Core And GEOIP Data File To /tmp/etc/openclash For Small Flash Memory Device" +msgstr "针对闪存空间不够的设备,移动内核和GEOIP数据库文件到 /tmp/etc/openclash 文件夹" \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/etc/config/openclash b/package/ctcgfw/luci-app-openclash/root/etc/config/openclash index 0e2c7f6aab..798f2501fc 100644 --- a/package/ctcgfw/luci-app-openclash/root/etc/config/openclash +++ b/package/ctcgfw/luci-app-openclash/root/etc/config/openclash @@ -28,6 +28,7 @@ config openclash 'config' option operation_mode 'redir-host' option enable_rule_proxy '0' option redirect_dns '0' + option small_flash_memory '0' config dns_servers option group 'nameserver' diff --git a/package/ctcgfw/luci-app-openclash/root/etc/init.d/openclash b/package/ctcgfw/luci-app-openclash/root/etc/init.d/openclash index be239cbafe..fae154059d 100644 --- a/package/ctcgfw/luci-app-openclash/root/etc/init.d/openclash +++ b/package/ctcgfw/luci-app-openclash/root/etc/init.d/openclash @@ -126,11 +126,6 @@ start_fail() yml_merge() { #合并文件 -if [ -z "$(grep "^Proxy:#d" "$PROXY_FILE")" ]; then - sed -i "s/^Proxy:/proxies:/g" "$PROXY_FILE" 2>/dev/null -else - sed -i "s/^Proxy:#d/proxies:/g" "$PROXY_FILE" 2>/dev/null -fi cat "$CHANGE_FILE" "$DNS_FILE" "$PROXY_PROVIDER_FILE" "$PROXY_FILE" "$GROUP_FILE" "$RULE_PROVIDER_FILE" "$SCRIPT_FILE" "$RULE_FILE" > "$CONFIG_FILE" 2>/dev/null } @@ -655,27 +650,35 @@ sed -i '/OpenClash-Game-Rules-End/d' "$RULE_FILE" 2>/dev/null sed -i '/OpenClash-Game-Rules/r/tmp/yaml_game_rule_group.yaml' "$RULE_FILE" 2>/dev/null } -yml_merge - #处理游戏节点与策略组 config_load "openclash" config_foreach yml_rule_group_get "rule_provider_config" config_foreach yml_rule_group_get "game_config" -sed -i '/^ \{0,\}proxy-groups:/r/tmp/yaml_groups.yaml' "$CONFIG_FILE" 2>/dev/null +sed -i '/^ \{0,\}proxy-groups:/r/tmp/yaml_groups.yaml' "$GROUP_FILE" 2>/dev/null sed -i '/^ \{0,\}Proxy:/d' /tmp/yaml_servers.yaml 2>/dev/null sed -i '/^ \{0,\}proxy-providers:/d' /tmp/yaml_provider.yaml 2>/dev/null -if [ -z "$(grep "^ \{0,\}Proxy:" "$CONFIG_FILE" 2>/dev/null)" ] && [ -f "/tmp/yaml_servers.yaml" ]; then - sed -i '/^ \{0,\}proxy-groups:/i\Proxy:' "$CONFIG_FILE" 2>/dev/null - sed -i '/^ \{0,\}Proxy:/r/tmp/yaml_servers.yaml' "$CONFIG_FILE" 2>/dev/null -elif [ -f "/tmp/yaml_servers.yaml" ]; then - sed -i '/^ \{0,\}Proxy:/r/tmp/yaml_servers.yaml' "$CONFIG_FILE" 2>/dev/null +if [ ! -f "$PROXY_FILE" ] && [ -f "/tmp/yaml_servers.yaml" ]; then + echo "Proxy:" > "$PROXY_FILE" 2>/dev/null + sed -i '/Proxy:/r/tmp/yaml_servers.yaml' "$PROXY_FILE" 2>/dev/null +elif [ -f "/tmp/yaml_servers.yaml" ] && [ -z "$(grep "^Proxy:#d" "$PROXY_FILE")" ]; then + sed -i '/^Proxy:/r/tmp/yaml_servers.yaml' "$PROXY_FILE" 2>/dev/null +elif [ -f "/tmp/yaml_servers.yaml" ] && [ -n "$(grep "^Proxy:#d" "$PROXY_FILE")" ]; then + sed -i '/^Proxy:#d/r/tmp/yaml_servers.yaml' "$PROXY_FILE" 2>/dev/null fi -if [ -z "$(grep "^ \{0,\}proxy-providers:" "$CONFIG_FILE" 2>/dev/null)" ] && [ -f "/tmp/yaml_provider.yaml" ]; then - sed -i '/OpenClash-General-Settings/a\proxy-providers:' "$CONFIG_FILE" 2>/dev/null - sed -i '/^ \{0,\}proxy-providers:/r/tmp/yaml_provider.yaml' "$CONFIG_FILE" 2>/dev/null +if [ ! -f "$PROXY_PROVIDER_FILE" ] && [ -f "/tmp/yaml_provider.yaml" ]; then + echo "proxy-providers:" > "$PROXY_PROVIDER_FILE" 2>/dev/null + sed -i '/proxy-providers:/r/tmp/yaml_provider.yaml' "$PROXY_PROVIDER_FILE" 2>/dev/null elif [ -f "/tmp/yaml_servers.yaml" ]; then - sed -i '/^ \{0,\}proxy-providers:r/tmp/yaml_provider.yaml' "$CONFIG_FILE" 2>/dev/null + sed -i '/^proxy-providers:r/tmp/yaml_provider.yaml' "$PROXY_PROVIDER_FILE" 2>/dev/null fi + +#关键字还原 +if [ -z "$(grep "^Proxy:#d" "$PROXY_FILE")" ]; then + sed -i "s/^Proxy:/proxies:/g" "$PROXY_FILE" 2>/dev/null +else + sed -i "s/^Proxy:#d/proxies:/g" "$PROXY_FILE" 2>/dev/null +fi + } yml_rule_set_add() @@ -962,13 +965,13 @@ if [ ! -f "$CONFIG_FILE" ]; then echo "配置文件不存在,您已设置订阅信息,准备开始下载..." >$START_LOG sleep 3 kill_clash - stop nohup /usr/share/openclash/openclash.sh & + exit 0 elif [ ! -f "$CONFIG_FILE" ]; then echo "错误: 缺少配置文件,请上传或更新配置文件!" >$START_LOG echo "${LOGTIME} Config Not Found" >> $LOG_FILE sleep 5 - start_fail + exit 0 fi fi } @@ -1009,84 +1012,105 @@ do_run_mode() fi } -do_run_core() +do_run_file() { - if [ ! -h "/etc/openclash/clash" ] && [ -s "/etc/openclash/clash" ] && [ ! -s "/etc/openclash/core/clash" ]; then - mv "/etc/openclash/clash" "/etc/openclash/core/clash" 2>/dev/null - fi + if [ "$small_flash_memory" != "1" ]; then + dev_core_path="/etc/openclash/core/clash" + tun_core_path="/etc/openclash/core/clash_tun" + game_core_path="/etc/openclash/core/clash_game" + geoip_path="/etc/openclash/Country.mmdb" + else + dev_core_path="/tmp/etc/openclash/core/clash" + tun_core_path="/tmp/etc/openclash/core/clash_tun" + game_core_path="/tmp/etc/openclash/core/clash_game" + geoip_path="/tmp/etc/openclash/Country.mmdb" + fi - rm -rf "/etc/openclash/clash" 2>/dev/null + rm -rf "/etc/openclash/clash" 2>/dev/null - if [ "$en_mode_tun" = "1" ] || [ "$en_mode_tun" = "3" ]; then - ln -s /etc/openclash/core/clash_tun /etc/openclash/clash 2>/dev/null - core_type="Tun" - echo "检测到配置了【Tun】内核专属功能,调用【Tun】内核启动..." >$START_LOG - sleep 1 - fi + if [ "$en_mode_tun" = "1" ] || [ "$en_mode_tun" = "3" ]; then + ln -s "$tun_core_path" /etc/openclash/clash 2>/dev/null + core_type="Tun" + core_start_log="检测到配置了【Tun】内核专属功能,调用【Tun】内核启动..." + fi - if [ "$en_mode_tun" = "2" ]; then - ln -s /etc/openclash/core/clash_game /etc/openclash/clash 2>/dev/null - core_type="Game" - echo "检测到配置了【Game】内核专属功能,调用【Game】内核启动..." >$START_LOG - sleep 1 - fi - - if [ "$proxy_mode" = "script" ] || [ "$rule_source" = "ConnersHua" ] || [ "$rule_source" = "lhie1" ]; then - ln -s /etc/openclash/core/clash_tun /etc/openclash/clash 2>/dev/null - core_type="Tun" - echo "检测到配置了【Tun】内核专属功能,调用【Tun】内核启动..." >$START_LOG - sleep 1 - fi + if [ "$en_mode_tun" = "2" ]; then + ln -s "$game_core_path" /etc/openclash/clash 2>/dev/null + core_type="Game" + core_start_log="检测到配置了【Game】内核专属功能,调用【Game】内核启动..." + fi - if [ -n "$(grep "^ \{0,\}rule-providers:" "$RULE_PROVIDER_FILE" 2>/dev/null)" ] && [ -n "$(grep "^ \{0,\}behavior" "$RULE_PROVIDER_FILE" 2>/dev/null |grep -v "^ \{0,\}#")" ]; then - ln -s /etc/openclash/core/clash_tun /etc/openclash/clash 2>/dev/null - core_type="Tun" - echo "检测到配置了【Tun】内核专属功能,调用【Tun】内核启动..." >$START_LOG - sleep 1 - fi + if [ "$proxy_mode" = "script" ] || [ "$rule_source" = "ConnersHua" ] || [ "$rule_source" = "lhie1" ]; then + ln -s "$tun_core_path" /etc/openclash/clash 2>/dev/null + core_type="Tun" + core_start_log="检测到配置了【Tun】内核专属功能,调用【Tun】内核启动..." + fi + + if [ -n "$(grep "^ \{0,\}rule-providers:" "$CONFIG_FILE" 2>/dev/null)" ] && [ -n "$(grep "^ \{0,\}behavior" "$CONFIG_FILE" 2>/dev/null |grep -v "^ \{0,\}#")" ]; then + ln -s "$tun_core_path" /etc/openclash/clash 2>/dev/null + core_type="Tun" + core_start_log="检测到配置了【Tun】内核专属功能,调用【Tun】内核启动..." + fi - if [ ! -f "/etc/openclash/clash" ] && [ -f "/etc/openclash/core/clash" ] && [ -z "$core_type" ]; then - ln -s /etc/openclash/core/clash /etc/openclash/clash 2>/dev/null - echo "未检测到特殊配置,调用【Dev】内核启动..." >$START_LOG - sleep 1 - fi + if [ ! -f "/etc/openclash/clash" ] && [ -f "$dev_core_path" ] && [ -z "$core_type" ]; then + ln -s "$dev_core_path" /etc/openclash/clash 2>/dev/null + core_start_log="未检测到特殊配置,调用【Dev】内核启动..." + fi - if [ ! -f "/etc/openclash/clash" ] && [ -f "/etc/openclash/core/clash_tun" ] && [ "$core_type" != "Game" ]; then - ln -s /etc/openclash/core/clash_tun /etc/openclash/clash 2>/dev/null - echo "检测到【Dev】内核未安装,调用【Tun】内核启动..." >$START_LOG - sleep 1 - fi + if [ ! -f "/etc/openclash/clash" ] && [ -f "$tun_core_path" ] && [ "$core_type" != "Game" ]; then + ln -s "$tun_core_path" /etc/openclash/clash 2>/dev/null + core_start_log="检测到【Dev】内核未安装,调用【Tun】内核启动..." + fi - if [ ! -f "/etc/openclash/clash" ] && [ -f "/etc/openclash/core/clash_game" ] && [ "$core_type" != "Tun" ]; then - ln -s /etc/openclash/core/clash_game /etc/openclash/clash 2>/dev/null - echo "检测到【Dev】内核未安装,调用【Game】内核启动..." >$START_LOG - sleep 1 - fi + if [ ! -f "/etc/openclash/clash" ] && [ -f "$game_core_path" ] && [ "$core_type" != "Tun" ]; then + ln -s "$game_core_path" /etc/openclash/clash 2>/dev/null + core_start_log="检测到【Dev】内核未安装,调用【Game】内核启动..." + fi #权限检查 - [ ! -x "/etc/openclash/core/clash_tun" ] && chmod 4755 /etc/openclash/core/clash_tun 2>/dev/null - [ ! -x "/etc/openclash/core/clash_game" ] && chmod 4755 /etc/openclash/core/clash_game 2>/dev/null - [ ! -x "/etc/openclash/core/clash" ] && chmod 4755 /etc/openclash/core/clash 2>/dev/null - - [ ! -f "$CLASH" ] && { - echo "检测到内核文件不存在,准备开始下载..." >$START_LOG - sleep 3 - rm -rf "/tmp/clash_last_version" 2>/dev/null + [ ! -x "$tun_core_path" ] && chmod 4755 "$tun_core_path" 2>/dev/null + [ ! -x "$game_core_path" ] && chmod 4755 "$game_core_path" 2>/dev/null + [ ! -x "$dev_core_path" ] && chmod 4755 "$dev_core_path" 2>/dev/null + + [ -f "$geoip_path" ] && [ "$small_flash_memory" = "1" ] && { + rm -rf "/etc/openclash/Country.mmdb" 2>/dev/null + ln -s "$geoip_path" /etc/openclash/Country.mmdb 2>/dev/null + } + + [ ! -f "$geoip_path" ] && { + echo "检测到GEOIP数据库文件不存在,准备开始下载..." >$START_LOG + sleep 3 + kill_clash + nohup /usr/share/openclash/openclash_ipdb.sh & + exit 0 + } + + [ ! -f "$CLASH" ] && { + echo "检测到内核文件不存在,准备开始下载..." >$START_LOG + sleep 3 + rm -rf "/tmp/clash_last_version" 2>/dev/null + kill_clash + nohup /usr/share/openclash/openclash_core.sh "$core_type" & + exit 0 + } + +} + +start_run_core() +{ + echo "$core_start_log" >$START_LOG + sleep 1 + ulimit -SHn 65535 2>/dev/null + config_reload=$(uci get openclash.config.config_reload 2>/dev/null) + if [ -n "$(pidof clash)" ] && [ "$core_type" != "Tun" ] && [ "$config_reload" != "0" ]; then + curl -s --connect-timeout 5 -m 5 -H 'Content-Type: application/json' -H "Authorization: Bearer ${da_password}" -XPUT http://"$lan_ip":"$cn_port"/configs -d "{\"path\": \"$CONFIG_FILE\"}" 2>/dev/null + else kill_clash - stop - nohup /usr/share/openclash/openclash_core.sh "$core_type" & - } - ulimit -SHn 65535 2>/dev/null - config_reload=$(uci get openclash.config.config_reload 2>/dev/null) - if [ -n "$(pidof clash)" ] && [ "$core_type" != "Tun" ] && [ "$config_reload" != "0" ]; then - curl -s --connect-timeout 5 -m 5 -H 'Content-Type: application/json' -H "Authorization: Bearer ${da_password}" -XPUT http://"$lan_ip":"$cn_port"/configs -d "{\"path\": \"$CONFIG_FILE\"}" 2>/dev/null - else - kill_clash - nohup "$CLASH" -d "$CLASH_CONFIG" -f "$CONFIG_FILE" >> $LOG_FILE 2>&1 & - fi - uci set openclash.config.config_reload=1 2>/dev/null - uci commit openclash + nohup "$CLASH" -d "$CLASH_CONFIG" -f "$CONFIG_FILE" >> $LOG_FILE 2>&1 & + fi + uci set openclash.config.config_reload=1 2>/dev/null + uci commit openclash } set_firewall() @@ -1437,6 +1461,7 @@ get_config() enable_rule_proxy=$(uci get openclash.config.enable_rule_proxy 2>/dev/null) stack_type=$(uci get openclash.config.stack_type 2>/dev/null) china_ip_route=$(uci get openclash.config.china_ip_route 2>/dev/null) + small_flash_memory=$(uci get openclash.config.small_flash_memory 2>/dev/null) } yml_field_check() @@ -1479,6 +1504,9 @@ start() echo "第一步: 获取配置..." >$START_LOG get_config + #检查文件是否存在 + do_run_file + echo "第二步: 配置文件检查..." >$START_LOG yml_check "$en_mode" "$enable_custom_dns" "$CONFIG_FILE" "$BACKUP_FILE" "$START_BACKUP" yml_dns_check @@ -1496,6 +1524,7 @@ start() yml_provider_path "$RULE_PROVIDER_FILE" "rule_provider" yml_custom_rule_provider yml_game_custom + yml_merge echo "第四步: DNS设置检查..." >$START_LOG if [ -n "$(sed -n '/^ \{0,\}nameserver:/{n;p}' "$CONFIG_FILE" |grep '^ \{0,\}fallback:')" ] || [ -n "$(sed -n '/^ \{0,\}nameserver:/{n;p}' "$CONFIG_FILE" |grep 'OpenClash-General')" ]; then @@ -1507,8 +1536,8 @@ start() fi echo "第五步: 启动主程序..." >$START_LOG - #检查是否存在核心文件 - do_run_core + sleep 1 + start_run_core #检测proxy_provider配置文件状态 echo "第六步: 等待主程序下载外部文件..." >$START_LOG diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/asset-manifest.json b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/asset-manifest.json new file mode 100644 index 0000000000..a3dbb3cc0b --- /dev/null +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/asset-manifest.json @@ -0,0 +1,19 @@ +{ + "files": { + "main.css": "./static/css/main.83e4b341.chunk.css", + "main.js": "./static/js/main.33688145.chunk.js", + "runtime-main.js": "./static/js/runtime-main.fefd5bb9.js", + "static/js/2.4c19c7e9.chunk.js": "./static/js/2.4c19c7e9.chunk.js", + "index.html": "./index.html", + "service-worker.js": "./service-worker.js", + "static/js/2.4c19c7e9.chunk.js.LICENSE.txt": "./static/js/2.4c19c7e9.chunk.js.LICENSE.txt", + "static/media/logo.45983944.png": "./static/media/logo.45983944.png", + "workbox-8a532145.js": "./workbox-8a532145.js" + }, + "entrypoints": [ + "static/js/runtime-main.fefd5bb9.js", + "static/js/2.4c19c7e9.chunk.js", + "static/css/main.83e4b341.chunk.css", + "static/js/main.33688145.chunk.js" + ] +} \ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/img/ffac0fa1d89f15922b4594863b8b32e9.png b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/img/ffac0fa1d89f15922b4594863b8b32e9.png deleted file mode 100644 index 6798639d0f..0000000000 Binary files a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/img/ffac0fa1d89f15922b4594863b8b32e9.png and /dev/null differ diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/index.html b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/index.html index 6d085e7027..ad96416de7 100644 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/index.html +++ b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/index.html @@ -1 +1 @@ -Clash
\ No newline at end of file +Clash
\ No newline at end of file diff --git a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/js/1.bundle.01d1a3c82895ade21dbf.min.js b/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/js/1.bundle.01d1a3c82895ade21dbf.min.js deleted file mode 100644 index f1f5935a94..0000000000 --- a/package/ctcgfw/luci-app-openclash/root/usr/share/openclash/dashboard/js/1.bundle.01d1a3c82895ade21dbf.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 1.bundle.01d1a3c82895ade21dbf.min.js.LICENSE.txt */ -(window.webpackJsonp=window.webpackJsonp||[]).push([[1],[function(e,t,n){"use strict";e.exports=n(54)},function(e,t,n){var r;!function(){"use strict";var n={}.hasOwnProperty;function o(){for(var e=[],t=0;t=0||(o[n]=e[n]);return o}n.d(t,"a",(function(){return r}))},,,,function(e,t,n){"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(55)},function(e,t,n){e.exports=n(58)()},function(e,t,n){"use strict";e.exports=n(62)},function(e,t,n){var r=n(38)(Object,"create");e.exports=r},function(e,t,n){var r=n(109);e.exports=function(e,t){for(var n=e.length;n--;)if(r(e[n][0],t))return n;return-1}},function(e,t,n){var r=n(115);e.exports=function(e,t){var n=e.__data__;return r(t)?n["string"==typeof t?"string":"hash"]:n.map}},function(e,t,n){"use strict";function r(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r3?t.i-4:t.i:Array.isArray(e)?1:p(e)?2:h(e)?3:0}function s(e,t){return 2===l(e)?e.has(t):Object.prototype.hasOwnProperty.call(e,t)}function c(e,t){return 2===l(e)?e.get(t):e[t]}function f(e,t,n){var r=l(e);2===r?e.set(t,n):3===r?(e.delete(t),e.add(n)):e[t]=n}function d(e,t){return e===t?0!==e||1/e==1/t:e!=e&&t!=t}function p(e){return K&&e instanceof Map}function h(e){return Y&&e instanceof Set}function m(e){return e.o||e.t}function v(e){if(Array.isArray(e))return e.slice();var t=ne(e);delete t[Z];for(var n=te(t),r=0;r1&&(e.set=e.add=e.clear=e.delete=y),Object.freeze(e),t&&u(e,(function(e,t){return g(t,!0)}),!0))}function y(){r(2)}function b(e){return null==e||"object"!=typeof e||Object.isFrozen(e)}function w(e){var t=re[e];return t||r(19,e),t}function S(e,t){re[e]=t}function x(){return G}function _(e,t){t&&(w("Patches"),e.u=[],e.s=[],e.v=t)}function E(e){T(e),e.p.forEach(k),e.p=null}function T(e){e===G&&(G=e.l)}function R(e){return G={p:[],l:G,h:e,m:!0,_:0}}function k(e){var t=e[Z];0===t.i||1===t.i?t.j():t.g=!0}function C(e,t){t._=t.p.length;var n=t.p[0],o=void 0!==e&&e!==n;return t.h.O||w("ES5").S(t,e,o),o?(n[Z].P&&(E(t),r(4)),i(e)&&(e=P(t,e),t.l||M(t,e)),t.u&&w("Patches").M(n[Z],e,t.u,t.s)):e=P(t,n,[]),E(t),t.u&&t.v(t.u,t.s),e!==X?e:void 0}function P(e,t,n){if(b(t))return t;var r=t[Z];if(!r)return u(t,(function(o,i){return O(e,r,t,o,i,n)}),!0),t;if(r.A!==e)return t;if(!r.P)return M(e,r.t,!0),r.t;if(!r.I){r.I=!0,r.A._--;var o=4===r.i||5===r.i?r.o=v(r.k):r.o;u(3===r.i?new Set(o):o,(function(t,i){return O(e,r,o,t,i,n)})),M(e,o,!1),n&&e.u&&w("Patches").R(r,n,e.u,e.s)}return r.o}function O(e,t,n,r,a,u){if(o(a)){var l=P(e,a,u&&t&&3!==t.i&&!s(t.D,r)?u.concat(r):void 0);if(f(n,r,l),!o(l))return;e.m=!1}if(i(a)&&!b(a)){if(!e.h.N&&e._<1)return;P(e,a),t&&t.A.l||M(e,a)}}function M(e,t,n){void 0===n&&(n=!1),e.h.N&&e.m&&g(t,n)}function A(e,t){var n=e[Z];return(n?m(n):e)[t]}function I(e,t){if(t in e)for(var n=Object.getPrototypeOf(e);n;){var r=Object.getOwnPropertyDescriptor(n,t);if(r)return r;n=Object.getPrototypeOf(n)}}function z(e){e.P||(e.P=!0,e.l&&z(e.l))}function N(e){e.o||(e.o=v(e.t))}function L(e,t,n){var r=p(t)?w("MapSet").T(t,n):h(t)?w("MapSet").F(t,n):e.O?function(e,t){var n=Array.isArray(e),r={i:n?1:0,A:t?t.A:x(),P:!1,I:!1,D:{},l:t,t:e,k:null,o:null,j:null,C:!1},o=r,i=oe;n&&(o=[r],i=ie);var a=Proxy.revocable(o,i),u=a.revoke,l=a.proxy;return r.k=l,r.j=u,l}(t,n):w("ES5").J(t,n);return(n?n.A:x()).p.push(r),r}function F(e){return o(e)||r(22,e),function e(t){if(!i(t))return t;var n,r=t[Z],o=l(t);if(r){if(!r.P&&(r.i<4||!w("ES5").K(r)))return r.t;r.I=!0,n=j(t,o),r.I=!1}else n=j(t,o);return u(n,(function(t,o){r&&c(r.t,t)===o||f(n,t,e(o))})),3===o?new Set(n):n}(e)}function j(e,t){switch(t){case 2:return new Map(e);case 3:return Array.from(e)}return v(e)}function D(){function e(e,t){var n=i[e];return n?n.enumerable=t:i[e]=n={configurable:!0,enumerable:t,get:function(){var t=this[Z];return oe.get(t,e)},set:function(t){var n=this[Z];oe.set(n,e,t)}},n}function t(e){for(var t=e.length-1;t>=0;t--){var o=e[t][Z];if(!o.P)switch(o.i){case 5:r(o)&&z(o);break;case 4:n(o)&&z(o)}}}function n(e){for(var t=e.t,n=e.k,r=te(n),o=r.length-1;o>=0;o--){var i=r[o];if(i!==Z){var a=t[i];if(void 0===a&&!s(t,i))return!0;var u=n[i],l=u&&u[Z];if(l?l.t!==a:!d(u,a))return!0}}var c=!!t[Z];return r.length!==te(t).length+(c?0:1)}function r(e){var t=e.k;if(t.length!==e.t.length)return!0;var n=Object.getOwnPropertyDescriptor(t,t.length-1);return!(!n||n.get)}var i={};S("ES5",{J:function(t,n){var r=Array.isArray(t),o=function(t,n){if(t){for(var r=Array(n.length),o=0;o1?r-1:0),u=1;u1?n-1:0),i=1;i=0;n--){var r=t[n];if(0===r.path.length&&"replace"===r.op){e=r.value;break}}var i=w("Patches").$;return o(e)?i(e,t):this.produce(e,(function(e){return i(e,t.slice(n+1))}))},e}(),ue=new ae,le=ue.produce,se=ue.produceWithPatches.bind(ue),ce=ue.setAutoFreeze.bind(ue),fe=ue.setUseProxies.bind(ue),de=ue.applyPatches.bind(ue),pe=ue.createDraft.bind(ue),he=ue.finishDraft.bind(ue);t.default=le},,function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"==typeof window&&(n=window)}e.exports=n},function(e,t){var n=Array.isArray;e.exports=n},function(e,t,n){var r=n(37),o=n(88);e.exports=function(e){return"symbol"==typeof e||o(e)&&"[object Symbol]"==r(e)}},function(e,t,n){var r=n(24).Symbol;e.exports=r},function(e,t,n){var r=n(85),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t,n){var r=n(119);e.exports=function(e){return null==e?"":r(e)}},,function(e,t,n){e.exports=function(){"use strict";var e="millisecond",t="second",n="minute",r="hour",o="day",i="week",a="month",u="quarter",l="year",s="date",c=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[^0-9]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?.?(\d{1,3})?$/,f=/\[([^\]]+)]|Y{2,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,d=function(e,t,n){var r=String(e);return!r||r.length>=t?e:""+Array(t+1-r.length).join(n)+e},p={s:d,z:function(e){var t=-e.utcOffset(),n=Math.abs(t),r=Math.floor(n/60),o=n%60;return(t<=0?"+":"-")+d(r,2,"0")+":"+d(o,2,"0")},m:function e(t,n){if(t.date()-1&&(t.__listeners[r]=t.__listeners[t.__listeners.length-1],t.__listeners.length--)}}},e.prototype.notify=function(){for(var e=0,t=this.__listeners;en.errorRetryCount)){var i=Math.min(o.retryCount||0,8),u=~~((Math.random()+.5)*(1<0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]0));return Promise.all(l).then((function(){return s.get(r)}))}return Promise.resolve(s.get(r))},O=function(e,t,n){var r=T[e];if(e&&r)for(var o=0;o0));return[2,Promise.all(h).then((function(){if(c)throw c;return s.get(o)}))]}if(c)throw c;return[2,l]}}))}))};var A=m.Provider,I=function(){for(var e=this,t=[],n=0;n=1&&(o=t[0]),t.length>2?(i=t[1],u=t[2]):"function"==typeof t[1]?i=t[1]:"object"==typeof t[1]&&(u=t[1]);var l=s.serializeKey(o),c=l[0],h=l[1],y=l[2];u=Object.assign({},f,Object(r.useContext)(m),u),void 0===i&&(i=u.fetcher);var C=s.get(c)||u.initialData,P=s.get(y),A=Object(r.useRef)({data:!1,error:!1,isValidating:!1}),I=Object(r.useRef)({data:C,error:P,isValidating:!1}),z=Object(r.useState)(null)[1],N=Object(r.useCallback)((function(e){var t=!1;for(var n in e)I.current[n]=e[n],A.current[n]&&(t=!0);if(t||u.suspense){if(L.current)return;z({})}}),[]),L=Object(r.useRef)(!1),F=Object(r.useRef)(c),j=Object(r.useRef)({emit:function(e){for(var t=[],n=1;n=0&&(n[r]=n[n.length-1],n.pop())}},U=Object(r.useCallback)((function(t){return void 0===t&&(t={}),v(e,void 0,void 0,(function(){var e,n,r,o,a,l,f;return g(this,(function(d){switch(d.label){case 0:if(!c||!i)return[2,!1];if(L.current)return[2,!1];t=Object.assign({dedupe:!1},t),e=!0,n=void 0!==S[c]&&t.dedupe,d.label=1;case 1:return d.trys.push([1,6,,7]),N({isValidating:!0}),r=void 0,o=void 0,n?(o=x[c],[4,S[c]]):[3,3];case 2:return r=d.sent(),[3,5];case 3:return u.loadingTimeout&&!s.get(c)&&setTimeout((function(){e&&j.current.emit("onLoadingSlow",c,u)}),u.loadingTimeout),S[c]=null!==h?i.apply(void 0,h):i(c),x[c]=o=Date.now(),[4,S[c]];case 4:r=d.sent(),setTimeout((function(){delete S[c],delete x[c]}),u.dedupingInterval),j.current.emit("onSuccess",r,c,u),d.label=5;case 5:return x[c]>o||R[c]&&(o<=R[c]||o<=k[c]||0===k[c])?(N({isValidating:!1}),[2,!1]):(s.set(c,r),s.set(y,void 0),a={isValidating:!1},void 0!==I.current.error&&(a.error=void 0),u.compare(I.current.data,r)||(a.data=r),N(a),n||O(c,r,void 0),[3,7]);case 6:return l=d.sent(),delete S[c],delete x[c],s.set(y,l),I.current.error!==l&&(N({isValidating:!1,error:l}),n||O(c,void 0,l)),j.current.emit("onError",l,c,u),u.shouldRetryOnError&&(f=(t.retryCount||0)+1,j.current.emit("onErrorRetry",l,c,u,U,Object.assign({dedupe:!0},t,{retryCount:f}))),[3,7];case 7:return e=!1,[2,!0]}}))}))}),[c]);if(w((function(){if(c){L.current=!1;var e=I.current.data,t=s.get(c)||u.initialData;F.current===c&&u.compare(e,t)||(N({data:t}),F.current=c);var n,r,o=function(){return U({dedupe:!0})};(u.revalidateOnMount||!u.initialData&&void 0===u.revalidateOnMount)&&(void 0!==t?b(o):o()),u.revalidateOnFocus&&(n=p(o,u.focusThrottleInterval)),u.revalidateOnReconnect&&(r=o);var i=function(e,t,n,r){void 0===e&&(e=!0),void 0===r&&(r=!0);var i={},a=!1;return void 0===t||u.compare(I.current.data,t)||(i.data=t,a=!0),I.current.error!==n&&(i.error=n,a=!0),a&&N(i),!!e&&(r?o():U())};return B(_,n),B(E,r),B(T,i),function(){N=function(){return null},L.current=!0,V(_,n),V(E,r),V(T,i)}}}),[c,U]),w((function(){var t=null,n=function(){return v(e,void 0,void 0,(function(){return g(this,(function(e){switch(e.label){case 0:return I.current.error||!u.refreshWhenHidden&&!a()||!u.refreshWhenOffline&&!d()?[3,2]:[4,U({dedupe:!0})];case 1:e.sent(),e.label=2;case 2:return u.refreshInterval&&(t=setTimeout(n,u.refreshInterval)),[2]}}))}))};return u.refreshInterval&&(t=setTimeout(n,u.refreshInterval)),function(){t&&clearTimeout(t)}}),[u.refreshInterval,u.refreshWhenHidden,u.refreshWhenOffline,U]),u.suspense){var W=s.get(c)||C,H=s.get(y)||P;if(void 0===W&&void 0===H){if(S[c]||U(),S[c]&&"function"==typeof S[c].then)throw S[c];W=S[c]}if(void 0===W&&H)throw H;return{error:H,data:W,revalidate:U,mutate:D,isValidating:I.current.isValidating}}return Object(r.useMemo)((function(){var e={revalidate:U,mutate:D};return Object.defineProperties(e,{error:{get:function(){return A.current.error=!0,F.current===c?I.current.error:P},enumerable:!0},data:{get:function(){return A.current.data=!0,F.current===c?I.current.data:C},enumerable:!0},isValidating:{get:function(){return A.current.isValidating=!0,I.current.isValidating},enumerable:!0}}),e}),[U])},z=function(e,t,n,r){return new(n||(n=Promise))((function(o,i){function a(e){try{l(r.next(e))}catch(t){i(t)}}function u(e){try{l(r.throw(e))}catch(t){i(t)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,u)}l((r=r.apply(e,t||[])).next())}))},N=function(e,t){var n,r,o,i,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:u(0),throw:u(1),return:u(2)},"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function u(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]=1&&(o=t[0]),t.length>2?(i=t[1],a=t[2]):"function"==typeof t[1]?i=t[1]:"object"==typeof t[1]&&(a=t[1]);var u=(a=Object.assign({},f,Object(r.useContext)(m),a)).initialSize,l=void 0===u?1:u,c=a.revalidateAll,d=void 0!==c&&c,p=a.persistSize,h=void 0!==p&&p,v=a.fetcher,g=L(a,["initialSize","revalidateAll","persistSize","fetcher"]);void 0===i&&(i=v);var y=null;try{y=s.serializeKey(o(0,null))[0]}catch(k){}var b=Object(r.useState)(!1)[1],w=null;y&&(w="context@"+y);var S,x=null;y&&(x="size@"+y,S=s.get(x));var _=Object(r.useRef)(S||l),E=Object(r.useRef)(!1);Object(r.useEffect)((function(){E.current?h||(_.current=l):E.current=!0}),[y]);var T=I(y?["many",y]:null,(function(){return z(e,void 0,void 0,(function(){var e,t,n,r,u,l,c,f,p,h;return N(this,(function(m){switch(m.label){case 0:e=s.get(w)||{},t=e.originalData,n=e.force,r=[],u=null,l=0,m.label=1;case 1:return l<_.current?(c=s.serializeKey(o(l,u)),f=c[0],p=c[1],f?(h=s.get(f),d||n||void 0===n&&0===l||t&&!a.compare(t[l],h)||void 0===h?null===p?[3,3]:[4,i.apply(void 0,p)]:[3,6]):[3,8]):[3,8];case 2:return h=m.sent(),[3,5];case 3:return[4,i(f)];case 4:h=m.sent(),m.label=5;case 5:s.set(f,h),m.label=6;case 6:r.push(h),u=h,m.label=7;case 7:return++l,[3,1];case 8:return s.delete(w),[2,r]}}))}))}),g),R=T.mutate;return T.size=_.current,T.mutate=Object(r.useCallback)((function(e,t){if(void 0===t&&(t=!0),t&&void 0!==e){var n=T.data;s.set(w,{originalData:n,force:!1})}else t&&s.set(w,{force:!0});return R(e,t)}),[R,T.data,w]),T.setSize=Object(r.useCallback)((function(e){return"function"==typeof e?_.current=e(_.current):"number"==typeof e&&(_.current=e),s.set(x,_.current),b((function(e){return!e})),T.mutate((function(e){return e}))}),[T.mutate,x]),T}t.default=I},function(e,t,n){"use strict";n.r(t),n.d(t,"MemoryRouter",(function(){return B})),n.d(t,"Prompt",(function(){return U})),n.d(t,"Redirect",(function(){return G})),n.d(t,"Route",(function(){return Q})),n.d(t,"Router",(function(){return D})),n.d(t,"StaticRouter",(function(){return ne})),n.d(t,"Switch",(function(){return re})),n.d(t,"generatePath",(function(){return $})),n.d(t,"matchPath",(function(){return Y})),n.d(t,"useHistory",(function(){return ae})),n.d(t,"useLocation",(function(){return ue})),n.d(t,"useParams",(function(){return le})),n.d(t,"useRouteMatch",(function(){return se})),n.d(t,"withRouter",(function(){return oe})),n.d(t,"BrowserRouter",(function(){return ce})),n.d(t,"HashRouter",(function(){return fe})),n.d(t,"Link",(function(){return ge})),n.d(t,"NavLink",(function(){return we}));var r=n(3),o=n(0),i=n.n(o),a=(n(13),n(2));function u(e){return"/"===e.charAt(0)}function l(e,t){for(var n=t,r=n+1,o=e.length;r=0;d--){var p=o[d];"."===p?l(o,d):".."===p?(l(o,d),f++):f&&(l(o,d),f--)}if(!s)for(;f--;f)o.unshift("..");!s||""===o[0]||o[0]&&u(o[0])||o.unshift("");var h=o.join("/");return n&&"/"!==h.substr(-1)&&(h+="/"),h};function c(e){return e.valueOf?e.valueOf():Object.prototype.valueOf.call(e)}var f=function e(t,n){if(t===n)return!0;if(null==t||null==n)return!1;if(Array.isArray(t))return Array.isArray(n)&&t.length===n.length&&t.every((function(t,r){return e(t,n[r])}));if("object"==typeof t||"object"==typeof n){var r=c(t),o=c(n);return r!==t||o!==n?e(r,o):Object.keys(Object.assign({},t,n)).every((function(r){return e(t[r],n[r])}))}return!1};var d=function(e,t){if(!e)throw new Error("Invariant failed")};function p(e){return"/"===e.charAt(0)?e:"/"+e}function h(e){return"/"===e.charAt(0)?e.substr(1):e}function m(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function v(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function g(e){var t=e.pathname,n=e.search,r=e.hash,o=t||"/";return n&&"?"!==n&&(o+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(o+="#"===r.charAt(0)?r:"#"+r),o}function y(e,t,n,r){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",o=t.indexOf("#");-1!==o&&(r=t.substr(o),t=t.substr(0,o));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e)).state=t:(void 0===(o=Object(a.a)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(i){throw i instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):i}return n&&(o.key=n),r?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=s(o.pathname,r.pathname)):o.pathname=r.pathname:o.pathname||(o.pathname="/"),o}function b(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,o){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof r?r(i,o):o(!0):o(!1!==i)}else o(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;rt?n.splice(t,n.length-t,r):n.push(r),f({action:"PUSH",location:r,index:t,entries:n})}}))},replace:function(e,t){var r=y(e,t,d(),w.location);c.confirmTransitionTo(r,"REPLACE",n,(function(e){e&&(w.entries[w.index]=r,f({action:"REPLACE",location:r}))}))},go:v,goBack:function(){v(-1)},goForward:function(){v(1)},canGo:function(e){var t=w.index+e;return t>=0&&t=200&&e<300}};l.headers={common:{Accept:"application/json, text/plain, */*"}},r.forEach(["delete","get","head"],(function(e){l.headers[e]={}})),r.forEach(["post","put","patch"],(function(e){l.headers[e]=r.merge(i)})),e.exports=l}).call(this,n(132))},function(e,t,n){"use strict";var r=n(7),o=n(134),i=n(41),a=n(136),u=n(139),l=n(140),s=n(45);e.exports=function(e){return new Promise((function(t,c){var f=e.data,d=e.headers;r.isFormData(f)&&delete d["Content-Type"];var p=new XMLHttpRequest;if(e.auth){var h=e.auth.username||"",m=e.auth.password||"";d.Authorization="Basic "+btoa(h+":"+m)}var v=a(e.baseURL,e.url);if(p.open(e.method.toUpperCase(),i(v,e.params,e.paramsSerializer),!0),p.timeout=e.timeout,p.onreadystatechange=function(){if(p&&4===p.readyState&&(0!==p.status||p.responseURL&&0===p.responseURL.indexOf("file:"))){var n="getAllResponseHeaders"in p?u(p.getAllResponseHeaders()):null,r={data:e.responseType&&"text"!==e.responseType?p.response:p.responseText,status:p.status,statusText:p.statusText,headers:n,config:e,request:p};o(t,c,r),p=null}},p.onabort=function(){p&&(c(s("Request aborted",e,"ECONNABORTED",p)),p=null)},p.onerror=function(){c(s("Network Error",e,null,p)),p=null},p.ontimeout=function(){var t="timeout of "+e.timeout+"ms exceeded";e.timeoutErrorMessage&&(t=e.timeoutErrorMessage),c(s(t,e,"ECONNABORTED",p)),p=null},r.isStandardBrowserEnv()){var g=n(141),y=(e.withCredentials||l(v))&&e.xsrfCookieName?g.read(e.xsrfCookieName):void 0;y&&(d[e.xsrfHeaderName]=y)}if("setRequestHeader"in p&&r.forEach(d,(function(e,t){void 0===f&&"content-type"===t.toLowerCase()?delete d[t]:p.setRequestHeader(t,e)})),r.isUndefined(e.withCredentials)||(p.withCredentials=!!e.withCredentials),e.responseType)try{p.responseType=e.responseType}catch(b){if("json"!==e.responseType)throw b}"function"==typeof e.onDownloadProgress&&p.addEventListener("progress",e.onDownloadProgress),"function"==typeof e.onUploadProgress&&p.upload&&p.upload.addEventListener("progress",e.onUploadProgress),e.cancelToken&&e.cancelToken.promise.then((function(e){p&&(p.abort(),c(e),p=null)})),void 0===f&&(f=null),p.send(f)}))}},function(e,t,n){"use strict";var r=n(135);e.exports=function(e,t,n,o,i){var a=new Error(e);return r(a,t,n,o,i)}},function(e,t,n){"use strict";var r=n(7);e.exports=function(e,t){t=t||{};var n={},o=["url","method","params","data"],i=["headers","auth","proxy"],a=["baseURL","url","transformRequest","transformResponse","paramsSerializer","timeout","withCredentials","adapter","responseType","xsrfCookieName","xsrfHeaderName","onUploadProgress","onDownloadProgress","maxContentLength","validateStatus","maxRedirects","httpAgent","httpsAgent","cancelToken","socketPath"];r.forEach(o,(function(e){void 0!==t[e]&&(n[e]=t[e])})),r.forEach(i,(function(o){r.isObject(t[o])?n[o]=r.deepMerge(e[o],t[o]):void 0!==t[o]?n[o]=t[o]:r.isObject(e[o])?n[o]=r.deepMerge(e[o]):void 0!==e[o]&&(n[o]=e[o])})),r.forEach(a,(function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])}));var u=o.concat(i).concat(a),l=Object.keys(t).filter((function(e){return-1===u.indexOf(e)}));return r.forEach(l,(function(r){void 0!==t[r]?n[r]=t[r]:void 0!==e[r]&&(n[r]=e[r])})),n}},function(e,t,n){"use strict";function r(e){this.message=e}r.prototype.toString=function(){return"Cancel"+(this.message?": "+this.message:"")},r.prototype.__CANCEL__=!0,e.exports=r},,function(e,t){var n=RegExp("[\\u200d\\ud800-\\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]");e.exports=function(e){return n.test(e)}},function(e,t,n){"use strict";var r=n(33),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},i={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},a={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},u={};function l(e){return r.isMemo(e)?a:u[e.$$typeof]||o}u[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},u[r.Memo]=a;var s=Object.defineProperty,c=Object.getOwnPropertyNames,f=Object.getOwnPropertySymbols,d=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,h=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(h){var o=p(n);o&&o!==h&&e(t,o,r)}var a=c(n);f&&(a=a.concat(f(n)));for(var u=l(t),m=l(n),v=0;vO.length&&O.push(e)}function I(e,t,n){return null==e?0:function e(t,n,r,o){var u=typeof t;"undefined"!==u&&"boolean"!==u||(t=null);var l=!1;if(null===t)l=!0;else switch(u){case"string":case"number":l=!0;break;case"object":switch(t.$$typeof){case i:case a:l=!0}}if(l)return r(o,t,""===n?"."+z(t,0):n),1;if(l=0,n=""===n?".":n+":",Array.isArray(t))for(var s=0;s