From 5eb416f3e2c70c24abe4cc841ff6c379c77b6b85 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Sat, 18 Apr 2026 02:04:09 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=B6=20Sync=202026-04-18=2002:04:09?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- luci-app-accesscontrol/Makefile | 3 +- .../luasrc/controller/mia.lua | 5 +- .../luasrc/model/cbi/mia.lua | 10 +- luci-app-accesscontrol/po/zh-cn | 1 - .../po/{zh_Hans => zh-cn}/mia.po | 3 - luci-app-accesscontrol/po/zh_Hans | 1 + luci-app-accesscontrol/root/etc/mia.include | 2 +- .../root/etc/uci-defaults/{mia => luci-mia} | 1 + luci-app-alist/Makefile | 13 - .../resources/view/alist/config.js | 151 ---------- .../luci-static/resources/view/alist/log.js | 75 ----- luci-app-alist/po/templates/alist.pot | 146 ---------- luci-app-alist/po/zh-cn | 1 - luci-app-alist/po/zh_Hans/alist.po | 155 ---------- .../usr/share/luci/menu.d/luci-app-alist.json | 29 -- .../usr/share/rpcd/acl.d/luci-app-alist.json | 17 -- luci-app-cifs/Makefile | 17 -- luci-app-cifs/luasrc/controller/cifs.lua | 24 -- luci-app-cifs/luasrc/model/cbi/cifs.lua | 97 ------- luci-app-cifs/luasrc/view/cifs_status.htm | 22 -- luci-app-cifs/po/zh-cn | 1 - luci-app-cifs/po/zh_Hans/cifs.po | 41 --- luci-app-cifs/root/etc/config/cifs | 7 - luci-app-cifs/root/etc/init.d/cifs | 184 ------------ luci-app-cifs/root/etc/uci-defaults/luci-cifs | 22 -- .../usr/share/rpcd/acl.d/luci-app-cifs.json | 11 - .../usr/share/ucitrack/luci-app-cifs.json | 4 - luci-app-fileassistant/Makefile | 6 +- .../luci-static/resources/fileassistant/fb.js | 74 ++++- .../luasrc/controller/fileassistant.lua | 45 ++- .../luasrc/view/fileassistant.htm | 5 +- .../rpcd/acl.d/luci-app-fileassistant.json | 11 - luci-app-haproxy-tcp/Makefile | 8 +- .../luasrc/controller/haproxy.lua | 14 +- .../luasrc/model/cbi/haproxy.lua | 47 ++-- luci-app-haproxy-tcp/po/zh-cn | 1 - luci-app-haproxy-tcp/po/zh-cn/haproxy-tcp.po | 34 +++ luci-app-haproxy-tcp/po/zh_Hans | 1 + .../po/zh_Hans/luci-app-haproxy-tcp.po | 69 ----- luci-app-haproxy-tcp/root/etc/haproxy_init.sh | 8 +- .../{z99-haproxy => 99_luci-haproxy} | 0 luci-app-k3usb/Makefile | 19 -- luci-app-k3usb/luasrc/controller/k3usb.lua | 13 - luci-app-k3usb/luasrc/model/cbi/k3usb.lua | 15 - luci-app-k3usb/po/zh-cn | 1 - luci-app-k3usb/po/zh_Hans/k3usb.po | 17 -- luci-app-k3usb/root/etc/config/k3usb | 3 - luci-app-k3usb/root/etc/init.d/k3usb | 62 ---- .../root/etc/uci-defaults/luci-k3usb | 19 -- luci-app-k3usb/root/usr/k3usb/35-usb-ehci | 1 - luci-app-k3usb/root/usr/k3usb/40-usb2 | 4 - .../root/usr/k3usb/45-phy-bcm-ns-usb2 | 1 - .../root/usr/k3usb/45-phy-bcm-ns-usb3 | 1 - luci-app-k3usb/root/usr/k3usb/50-usb-ohci | 3 - luci-app-k3usb/root/usr/k3usb/54-usb3 | 3 - luci-app-k3usb/root/usr/k3usb/test | 0 luci-app-k3usb/root/usr/k3usb/usb-storage | 1 - .../root/usr/k3usb/usb-storage-extras | 10 - .../usr/share/rpcd/acl.d/luci-app-k3usb.json | 11 - .../usr/share/ucitrack/luci-app-k3usb.json | 4 - luci-app-ltqtapi/Makefile | 14 + .../luasrc/controller/ltqtapi.lua | 40 +++ .../luasrc/model/cbi/luci_ltqtapi/account.lua | 16 ++ .../luasrc/model/cbi/luci_ltqtapi/contact.lua | 20 ++ .../view/admin_status/index/telephony.htm | 1 + .../luasrc/view/telephony_status.htm | 32 +++ luci-app-minieap/Makefile | 13 - .../luasrc/controller/minieap.lua | 20 -- .../luasrc/model/cbi/minieap/customfile.lua | 8 - .../luasrc/model/cbi/minieap/general.lua | 182 ------------ .../luasrc/model/cbi/minieap/log.lua | 23 -- luci-app-minieap/po/zh-cn | 1 - luci-app-minieap/po/zh_Hans/minieap.po | 227 --------------- luci-app-minieap/root/etc/config/minieap | 18 -- luci-app-minieap/root/etc/init.d/minieap | 70 ----- .../root/etc/uci-defaults/luci-minieap | 19 -- luci-app-minieap/root/usr/sbin/minieap-conver | 13 - luci-app-minieap/root/usr/sbin/minieap-ping | 24 -- .../share/rpcd/acl.d/luci-app-minieap.json | 11 - .../usr/share/ucitrack/luci-app-minieap.json | 4 - luci-app-mwan3helper/Makefile | 6 +- .../luasrc/controller/mwan3helper.lua | 23 +- .../luasrc/model/cbi/mwan3helper/client.lua | 4 +- .../luasrc/model/cbi/mwan3helper/list.lua | 2 - .../view/mwan3helper/mwan3helper_status.htm | 2 +- luci-app-mwan3helper/po/zh-cn | 1 - .../po/{zh_Hans => zh-cn}/mwan3helper.po | 2 +- luci-app-mwan3helper/po/zh_Hans | 1 + .../root/etc/init.d/mwan3helper | 29 +- .../{mwan3helper => luci-mwan3helper} | 0 luci-app-mwol/luasrc/controller/mwol.lua | 14 - luci-app-mwol/luasrc/model/cbi/mwol.lua | 141 ---------- luci-app-mwol/po/zh-cn | 1 - luci-app-mwol/po/zh_Hans/mwol.po | 54 ---- .../root/etc/uci-defaults/40_luci-mwol | 19 -- .../usr/share/rpcd/acl.d/luci-app-mwol.json | 11 - {luci-app-mwol => luci-app-nft-qos}/Makefile | 11 +- .../luasrc/controller/nft-qos.lua | 52 ++++ .../luasrc/model/cbi/nft-qos/nft-qos.lua | 229 +++++++++++++++ luci-app-nft-qos/luasrc/view/nft-qos/rate.htm | 187 +++++++++++++ luci-app-nft-qos/po/es/nft-qos.po | 245 ++++++++++++++++ luci-app-nft-qos/po/templates/nft-qos.pot | 230 +++++++++++++++ luci-app-nft-qos/po/zh-cn/nft-qos.po | 244 ++++++++++++++++ luci-app-nft-qos/po/zh-tw/nft-qos.po | 244 ++++++++++++++++ luci-app-nft-qos/po/zh_Hans | 1 + .../root/etc/uci-defaults/luci-nft-qos | 19 ++ luci-app-pppwn/Makefile | 34 +-- luci-app-pppwn/luasrc/controller/pppwn.lua | 2 +- .../luasrc/model/cbi/pppwn/settings.lua | 3 + luci-app-pppwn/po/zh-cn/pppwn.po | 6 + luci-app-pppwn/root/etc/init.d/pppwn | 16 +- luci-app-pppwn/root/www/goldhen.bin | Bin 0 -> 296112 bytes .../resources/view/qiyougamebooster.js | 96 ------- .../luasrc/controller/qiyougamebooster.lua | 12 + .../luasrc/model/cbi/qiyougamebooster.lua | 28 ++ .../po/templates/qiyougamebooster.pot | 52 ---- luci-app-qiyougamebooster/po/zh-cn | 1 - .../po/zh-cn/qiyougamebooster.po | 38 +++ luci-app-qiyougamebooster/po/zh_Hans | 1 + .../po/zh_Hans/qiyougamebooster.po | 52 ---- .../root/etc/uci-defaults/qiyougamebooster | 19 ++ .../menu.d/luci-app-qiyougamebooster.json | 16 -- .../rpcd/acl.d/luci-app-qiyougamebooster.json | 5 +- luci-app-shadowsocks-libev/Makefile | 16 ++ .../luasrc/controller/shadowsocks-libev.lua | 33 +++ .../shadowsocks-libev/instance-details.lua | 47 ++++ .../model/cbi/shadowsocks-libev/instances.lua | 104 +++++++ .../model/cbi/shadowsocks-libev/rules.lua | 109 ++++++++ .../model/cbi/shadowsocks-libev/servers.lua | 31 ++ .../luasrc/model/shadowsocks-libev.lua | 264 ++++++++++++++++++ .../view/shadowsocks-libev/add_instance.htm | 45 +++ .../uci-defaults/40_luci-shadowsocks-libev | 19 ++ .../Makefile | 11 +- .../luasrc/controller/shairplay.lua | 14 + .../luasrc/model/cbi/shairplay.lua | 65 +++++ luci-app-shairplay/po/ja/shairplay.po | 54 ++++ luci-app-shairplay/po/pt-br/shairplay.po | 54 ++++ luci-app-shairplay/po/ru/shairplay.po | 56 ++++ luci-app-shairplay/po/templates/shairplay.pot | 40 +++ .../root/etc/uci-defaults/40_luci-shairplay | 20 ++ luci-app-trojan-server/Makefile | 17 -- .../luasrc/controller/trojan_server.lua | 44 --- .../api/gen_trojan_config_file.lua | 40 --- .../luasrc/model/cbi/trojan_server/config.lua | 54 ---- .../luasrc/model/cbi/trojan_server/index.lua | 58 ---- .../luasrc/view/trojan_server/log.htm | 31 -- .../view/trojan_server/users_list_status.htm | 23 -- .../view/trojan_server/users_status.htm | 3 - luci-app-trojan-server/po/zh-cn | 1 - .../po/zh_Hans/trojan_server.po | 68 ----- .../root/etc/config/trojan_server | 13 - .../root/etc/init.d/trojan_server | 60 ---- .../etc/uci-defaults/luci-app-trojan-server | 29 -- .../rpcd/acl.d/luci-app-trojan-server.json | 11 - .../usr/share/trojan_server/firewall.include | 39 --- .../ucitrack/luci-app-trojan-server.json | 4 - luci-app-uugamebooster/Makefile | 10 +- .../resources/view/uugamebooster.js | 87 ------ .../luasrc/controller/uugamebooster.lua | 17 ++ .../luasrc/model/cbi/uugamebooster.lua | 19 ++ .../uugamebooster/uugamebooster_qcode.htm | 6 + .../uugamebooster/uugamebooster_status.htm | 21 ++ .../po/templates/uugamebooster.pot | 23 -- luci-app-uugamebooster/po/zh-cn | 1 - luci-app-uugamebooster/po/zh-cn/uuplugin.po | 12 + luci-app-uugamebooster/po/zh_Hans | 1 + .../po/zh_Hans/uugamebooster.po | 23 -- .../root/etc/config/uuplugin | 4 + .../root/etc/init.d/uugamebooster | 37 +++ .../etc/uci-defaults/45_luci-uugamebooster | 19 ++ .../luci/menu.d/luci-app-uugamebooster.json | 13 - .../rpcd/acl.d/luci-app-uugamebooster.json | 7 +- luci-app-uugamebooster/root/www/uuandriod.png | Bin 0 -> 236262 bytes .../root/www/uugamebooster/uuandroid.png | Bin 77225 -> 0 bytes .../root/www/uugamebooster/uuios.png | Bin 7292 -> 0 bytes luci-app-uugamebooster/root/www/uuios.png | Bin 0 -> 20642 bytes luci-app-v2ray-server/Makefile | 4 +- luci-app-v2ray-server/po/zh-cn | 1 - .../po/{zh_Hans => zh-cn}/v2ray_server.po | 0 luci-app-v2ray-server/po/zh_Hans | 1 + luci-app-verysync/Makefile | 4 +- .../luasrc/controller/verysync.lua | 10 +- .../luasrc/view/verysync/verysync_status.htm | 13 +- luci-app-verysync/po/zh-cn | 1 - .../po/{zh_Hans => zh-cn}/verysync.po | 0 luci-app-verysync/po/zh_Hans | 1 + .../root/etc/uci-defaults/luci-verysync | 19 ++ luci-app-webadmin/Makefile | 9 +- .../luasrc/controller/webadmin.lua | 7 +- .../luasrc/model/cbi/webadmin.lua | 15 +- luci-app-webadmin/po/zh-cn | 1 - .../po/{zh_Hans => zh-cn}/webadmin.po | 13 +- luci-app-webadmin/po/zh_Hans | 1 + .../share/rpcd/acl.d/luci-app-webadmin.json | 11 - .../luasrc/controller/webrestriction.lua | 18 -- .../luasrc/model/cbi/webrestriction.lua | 30 -- .../luasrc/view/webrestriction/index.htm | 18 -- .../view/webrestriction/webrestriction.htm | 3 - luci-app-webrestriction/po/zh-cn | 1 - .../po/zh_Hans/webrestriction.po | 2 - .../root/etc/config/webrestriction | 5 - .../root/etc/init.d/webrestriction | 86 ------ .../luci-app-control-webrestriction | 19 -- .../rpcd/acl.d/luci-app-webrestriction.json | 11 - .../ucitrack/luci-app-webrestriction.json | 4 - luci-app-yggdrasil/Makefile | 0 luci-lib-fs/Makefile | 26 +- 207 files changed, 3148 insertions(+), 3426 deletions(-) delete mode 120000 luci-app-accesscontrol/po/zh-cn rename luci-app-accesscontrol/po/{zh_Hans => zh-cn}/mia.po (96%) create mode 120000 luci-app-accesscontrol/po/zh_Hans rename luci-app-accesscontrol/root/etc/uci-defaults/{mia => luci-mia} (99%) delete mode 100644 luci-app-alist/Makefile delete mode 100644 luci-app-alist/htdocs/luci-static/resources/view/alist/config.js delete mode 100644 luci-app-alist/htdocs/luci-static/resources/view/alist/log.js delete mode 100644 luci-app-alist/po/templates/alist.pot delete mode 120000 luci-app-alist/po/zh-cn delete mode 100644 luci-app-alist/po/zh_Hans/alist.po delete mode 100644 luci-app-alist/root/usr/share/luci/menu.d/luci-app-alist.json delete mode 100644 luci-app-alist/root/usr/share/rpcd/acl.d/luci-app-alist.json delete mode 100644 luci-app-cifs/Makefile delete mode 100644 luci-app-cifs/luasrc/controller/cifs.lua delete mode 100644 luci-app-cifs/luasrc/model/cbi/cifs.lua delete mode 100644 luci-app-cifs/luasrc/view/cifs_status.htm delete mode 120000 luci-app-cifs/po/zh-cn delete mode 100644 luci-app-cifs/po/zh_Hans/cifs.po delete mode 100644 luci-app-cifs/root/etc/config/cifs delete mode 100755 luci-app-cifs/root/etc/init.d/cifs delete mode 100644 luci-app-cifs/root/etc/uci-defaults/luci-cifs delete mode 100644 luci-app-cifs/root/usr/share/rpcd/acl.d/luci-app-cifs.json delete mode 100644 luci-app-cifs/root/usr/share/ucitrack/luci-app-cifs.json delete mode 100644 luci-app-fileassistant/root/usr/share/rpcd/acl.d/luci-app-fileassistant.json delete mode 120000 luci-app-haproxy-tcp/po/zh-cn create mode 100644 luci-app-haproxy-tcp/po/zh-cn/haproxy-tcp.po create mode 120000 luci-app-haproxy-tcp/po/zh_Hans delete mode 100644 luci-app-haproxy-tcp/po/zh_Hans/luci-app-haproxy-tcp.po rename luci-app-haproxy-tcp/root/etc/uci-defaults/{z99-haproxy => 99_luci-haproxy} (100%) delete mode 100644 luci-app-k3usb/Makefile delete mode 100644 luci-app-k3usb/luasrc/controller/k3usb.lua delete mode 100644 luci-app-k3usb/luasrc/model/cbi/k3usb.lua delete mode 120000 luci-app-k3usb/po/zh-cn delete mode 100644 luci-app-k3usb/po/zh_Hans/k3usb.po delete mode 100644 luci-app-k3usb/root/etc/config/k3usb delete mode 100755 luci-app-k3usb/root/etc/init.d/k3usb delete mode 100644 luci-app-k3usb/root/etc/uci-defaults/luci-k3usb delete mode 100644 luci-app-k3usb/root/usr/k3usb/35-usb-ehci delete mode 100644 luci-app-k3usb/root/usr/k3usb/40-usb2 delete mode 100644 luci-app-k3usb/root/usr/k3usb/45-phy-bcm-ns-usb2 delete mode 100644 luci-app-k3usb/root/usr/k3usb/45-phy-bcm-ns-usb3 delete mode 100644 luci-app-k3usb/root/usr/k3usb/50-usb-ohci delete mode 100644 luci-app-k3usb/root/usr/k3usb/54-usb3 delete mode 100644 luci-app-k3usb/root/usr/k3usb/test delete mode 100644 luci-app-k3usb/root/usr/k3usb/usb-storage delete mode 100644 luci-app-k3usb/root/usr/k3usb/usb-storage-extras delete mode 100644 luci-app-k3usb/root/usr/share/rpcd/acl.d/luci-app-k3usb.json delete mode 100644 luci-app-k3usb/root/usr/share/ucitrack/luci-app-k3usb.json create mode 100644 luci-app-ltqtapi/Makefile create mode 100644 luci-app-ltqtapi/luasrc/controller/ltqtapi.lua create mode 100644 luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua create mode 100644 luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua create mode 100644 luci-app-ltqtapi/luasrc/view/admin_status/index/telephony.htm create mode 100644 luci-app-ltqtapi/luasrc/view/telephony_status.htm delete mode 100644 luci-app-minieap/Makefile delete mode 100644 luci-app-minieap/luasrc/controller/minieap.lua delete mode 100644 luci-app-minieap/luasrc/model/cbi/minieap/customfile.lua delete mode 100644 luci-app-minieap/luasrc/model/cbi/minieap/general.lua delete mode 100644 luci-app-minieap/luasrc/model/cbi/minieap/log.lua delete mode 120000 luci-app-minieap/po/zh-cn delete mode 100644 luci-app-minieap/po/zh_Hans/minieap.po delete mode 100644 luci-app-minieap/root/etc/config/minieap delete mode 100755 luci-app-minieap/root/etc/init.d/minieap delete mode 100644 luci-app-minieap/root/etc/uci-defaults/luci-minieap delete mode 100755 luci-app-minieap/root/usr/sbin/minieap-conver delete mode 100755 luci-app-minieap/root/usr/sbin/minieap-ping delete mode 100644 luci-app-minieap/root/usr/share/rpcd/acl.d/luci-app-minieap.json delete mode 100644 luci-app-minieap/root/usr/share/ucitrack/luci-app-minieap.json delete mode 120000 luci-app-mwan3helper/po/zh-cn rename luci-app-mwan3helper/po/{zh_Hans => zh-cn}/mwan3helper.po (96%) create mode 120000 luci-app-mwan3helper/po/zh_Hans rename luci-app-mwan3helper/root/etc/uci-defaults/{mwan3helper => luci-mwan3helper} (100%) delete mode 100644 luci-app-mwol/luasrc/controller/mwol.lua delete mode 100644 luci-app-mwol/luasrc/model/cbi/mwol.lua delete mode 120000 luci-app-mwol/po/zh-cn delete mode 100644 luci-app-mwol/po/zh_Hans/mwol.po delete mode 100644 luci-app-mwol/root/etc/uci-defaults/40_luci-mwol delete mode 100644 luci-app-mwol/root/usr/share/rpcd/acl.d/luci-app-mwol.json rename {luci-app-mwol => luci-app-nft-qos}/Makefile (58%) create mode 100644 luci-app-nft-qos/luasrc/controller/nft-qos.lua create mode 100644 luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua create mode 100644 luci-app-nft-qos/luasrc/view/nft-qos/rate.htm create mode 100644 luci-app-nft-qos/po/es/nft-qos.po create mode 100644 luci-app-nft-qos/po/templates/nft-qos.pot create mode 100644 luci-app-nft-qos/po/zh-cn/nft-qos.po create mode 100644 luci-app-nft-qos/po/zh-tw/nft-qos.po create mode 120000 luci-app-nft-qos/po/zh_Hans create mode 100644 luci-app-nft-qos/root/etc/uci-defaults/luci-nft-qos create mode 100644 luci-app-pppwn/root/www/goldhen.bin delete mode 100644 luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js create mode 100644 luci-app-qiyougamebooster/luasrc/controller/qiyougamebooster.lua create mode 100644 luci-app-qiyougamebooster/luasrc/model/cbi/qiyougamebooster.lua delete mode 100644 luci-app-qiyougamebooster/po/templates/qiyougamebooster.pot delete mode 120000 luci-app-qiyougamebooster/po/zh-cn create mode 100644 luci-app-qiyougamebooster/po/zh-cn/qiyougamebooster.po create mode 120000 luci-app-qiyougamebooster/po/zh_Hans delete mode 100644 luci-app-qiyougamebooster/po/zh_Hans/qiyougamebooster.po create mode 100644 luci-app-qiyougamebooster/root/etc/uci-defaults/qiyougamebooster delete mode 100644 luci-app-qiyougamebooster/root/usr/share/luci/menu.d/luci-app-qiyougamebooster.json create mode 100644 luci-app-shadowsocks-libev/Makefile create mode 100644 luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua create mode 100644 luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua create mode 100644 luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua create mode 100644 luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua create mode 100644 luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua create mode 100644 luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua create mode 100644 luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm create mode 100644 luci-app-shadowsocks-libev/root/etc/uci-defaults/40_luci-shadowsocks-libev rename {luci-app-webrestriction => luci-app-shairplay}/Makefile (59%) create mode 100644 luci-app-shairplay/luasrc/controller/shairplay.lua create mode 100644 luci-app-shairplay/luasrc/model/cbi/shairplay.lua create mode 100644 luci-app-shairplay/po/ja/shairplay.po create mode 100644 luci-app-shairplay/po/pt-br/shairplay.po create mode 100644 luci-app-shairplay/po/ru/shairplay.po create mode 100644 luci-app-shairplay/po/templates/shairplay.pot create mode 100644 luci-app-shairplay/root/etc/uci-defaults/40_luci-shairplay delete mode 100644 luci-app-trojan-server/Makefile delete mode 100644 luci-app-trojan-server/luasrc/controller/trojan_server.lua delete mode 100644 luci-app-trojan-server/luasrc/model/cbi/trojan_server/api/gen_trojan_config_file.lua delete mode 100644 luci-app-trojan-server/luasrc/model/cbi/trojan_server/config.lua delete mode 100644 luci-app-trojan-server/luasrc/model/cbi/trojan_server/index.lua delete mode 100644 luci-app-trojan-server/luasrc/view/trojan_server/log.htm delete mode 100644 luci-app-trojan-server/luasrc/view/trojan_server/users_list_status.htm delete mode 100644 luci-app-trojan-server/luasrc/view/trojan_server/users_status.htm delete mode 120000 luci-app-trojan-server/po/zh-cn delete mode 100644 luci-app-trojan-server/po/zh_Hans/trojan_server.po delete mode 100644 luci-app-trojan-server/root/etc/config/trojan_server delete mode 100755 luci-app-trojan-server/root/etc/init.d/trojan_server delete mode 100644 luci-app-trojan-server/root/etc/uci-defaults/luci-app-trojan-server delete mode 100644 luci-app-trojan-server/root/usr/share/rpcd/acl.d/luci-app-trojan-server.json delete mode 100755 luci-app-trojan-server/root/usr/share/trojan_server/firewall.include delete mode 100644 luci-app-trojan-server/root/usr/share/ucitrack/luci-app-trojan-server.json delete mode 100644 luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js create mode 100644 luci-app-uugamebooster/luasrc/controller/uugamebooster.lua create mode 100644 luci-app-uugamebooster/luasrc/model/cbi/uugamebooster.lua create mode 100644 luci-app-uugamebooster/luasrc/view/uugamebooster/uugamebooster_qcode.htm create mode 100644 luci-app-uugamebooster/luasrc/view/uugamebooster/uugamebooster_status.htm delete mode 100644 luci-app-uugamebooster/po/templates/uugamebooster.pot delete mode 120000 luci-app-uugamebooster/po/zh-cn create mode 100644 luci-app-uugamebooster/po/zh-cn/uuplugin.po create mode 120000 luci-app-uugamebooster/po/zh_Hans delete mode 100644 luci-app-uugamebooster/po/zh_Hans/uugamebooster.po create mode 100644 luci-app-uugamebooster/root/etc/config/uuplugin create mode 100755 luci-app-uugamebooster/root/etc/init.d/uugamebooster create mode 100644 luci-app-uugamebooster/root/etc/uci-defaults/45_luci-uugamebooster delete mode 100644 luci-app-uugamebooster/root/usr/share/luci/menu.d/luci-app-uugamebooster.json create mode 100644 luci-app-uugamebooster/root/www/uuandriod.png delete mode 100644 luci-app-uugamebooster/root/www/uugamebooster/uuandroid.png delete mode 100644 luci-app-uugamebooster/root/www/uugamebooster/uuios.png create mode 100644 luci-app-uugamebooster/root/www/uuios.png delete mode 120000 luci-app-v2ray-server/po/zh-cn rename luci-app-v2ray-server/po/{zh_Hans => zh-cn}/v2ray_server.po (100%) create mode 120000 luci-app-v2ray-server/po/zh_Hans delete mode 120000 luci-app-verysync/po/zh-cn rename luci-app-verysync/po/{zh_Hans => zh-cn}/verysync.po (100%) create mode 120000 luci-app-verysync/po/zh_Hans create mode 100644 luci-app-verysync/root/etc/uci-defaults/luci-verysync delete mode 120000 luci-app-webadmin/po/zh-cn rename luci-app-webadmin/po/{zh_Hans => zh-cn}/webadmin.po (78%) create mode 120000 luci-app-webadmin/po/zh_Hans delete mode 100644 luci-app-webadmin/root/usr/share/rpcd/acl.d/luci-app-webadmin.json delete mode 100644 luci-app-webrestriction/luasrc/controller/webrestriction.lua delete mode 100644 luci-app-webrestriction/luasrc/model/cbi/webrestriction.lua delete mode 100644 luci-app-webrestriction/luasrc/view/webrestriction/index.htm delete mode 100644 luci-app-webrestriction/luasrc/view/webrestriction/webrestriction.htm delete mode 120000 luci-app-webrestriction/po/zh-cn delete mode 100644 luci-app-webrestriction/po/zh_Hans/webrestriction.po delete mode 100644 luci-app-webrestriction/root/etc/config/webrestriction delete mode 100755 luci-app-webrestriction/root/etc/init.d/webrestriction delete mode 100644 luci-app-webrestriction/root/etc/uci-defaults/luci-app-control-webrestriction delete mode 100644 luci-app-webrestriction/root/usr/share/rpcd/acl.d/luci-app-webrestriction.json delete mode 100644 luci-app-webrestriction/root/usr/share/ucitrack/luci-app-webrestriction.json delete mode 100644 luci-app-yggdrasil/Makefile diff --git a/luci-app-accesscontrol/Makefile b/luci-app-accesscontrol/Makefile index 4edf4f6c..d6bdcb55 100644 --- a/luci-app-accesscontrol/Makefile +++ b/luci-app-accesscontrol/Makefile @@ -9,9 +9,10 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI Access Control Configuration LUCI_DEPENDS:= LUCI_PKGARCH:=all + PKG_NAME:=luci-app-accesscontrol PKG_VERSION:=1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 include $(TOPDIR)/feeds/luci/luci.mk diff --git a/luci-app-accesscontrol/luasrc/controller/mia.lua b/luci-app-accesscontrol/luasrc/controller/mia.lua index f92d11a7..60aa95db 100644 --- a/luci-app-accesscontrol/luasrc/controller/mia.lua +++ b/luci-app-accesscontrol/luasrc/controller/mia.lua @@ -5,10 +5,7 @@ function index() return end - local page = entry({"admin", "services", "mia"}, cbi("mia"), _("Internet Access Schedule Control"), 30) - page.dependent = true - page.acl_depends = { "luci-app-accesscontrol" } - + entry({"admin", "services", "mia"}, cbi("mia"), _("Internet Access Schedule Control"), 30).dependent = true entry({"admin", "services", "mia", "status"}, call("act_status")).leaf = true end diff --git a/luci-app-accesscontrol/luasrc/model/cbi/mia.lua b/luci-app-accesscontrol/luasrc/model/cbi/mia.lua index 1d801b8b..0d49867e 100644 --- a/luci-app-accesscontrol/luasrc/model/cbi/mia.lua +++ b/luci-app-accesscontrol/luasrc/model/cbi/mia.lua @@ -1,5 +1,7 @@ +a = Map("mia") +a.title = translate("Internet Access Schedule Control") +a.description = translate("Access Schedule Control Settins") -a = Map("mia", translate("Internet Access Schedule Control"), translate("Access Schedule Control Settins")) a:section(SimpleSection).template = "mia/mia_status" t = a:section(TypedSection, "basic") @@ -9,8 +11,8 @@ e = t:option(Flag, "enable", translate("Enabled")) e.rmempty = false e = t:option(Flag, "strict", translate("Strict Mode")) -e.rmempty = false e.description = translate("Strict Mode will degrade CPU performance, but it can achieve better results") +e.rmempty = false t = a:section(TypedSection, "macbind", translate("Client Rules")) t.template = "cbi/tblsection" @@ -28,12 +30,12 @@ e:value(t,"%s (%s)"%{t,a}) end) e = t:option(Value, "timeon", translate("Start time")) -e.default = "00:00" e.optional = false +e.default = "00:00" e = t:option(Value, "timeoff", translate("End time")) -e.default = "23:59" e.optional = false +e.default = "23:59" e = t:option(Flag, "z1", translate("Mon")) e.rmempty = true diff --git a/luci-app-accesscontrol/po/zh-cn b/luci-app-accesscontrol/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-accesscontrol/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-accesscontrol/po/zh_Hans/mia.po b/luci-app-accesscontrol/po/zh-cn/mia.po similarity index 96% rename from luci-app-accesscontrol/po/zh_Hans/mia.po rename to luci-app-accesscontrol/po/zh-cn/mia.po index 8848c130..8f7c16aa 100644 --- a/luci-app-accesscontrol/po/zh_Hans/mia.po +++ b/luci-app-accesscontrol/po/zh-cn/mia.po @@ -28,9 +28,6 @@ msgstr "开始时间" msgid "End time" msgstr "结束时间" -msgid "Enabled" -msgstr "启用" - msgid "Mon" msgstr "一" diff --git a/luci-app-accesscontrol/po/zh_Hans b/luci-app-accesscontrol/po/zh_Hans new file mode 120000 index 00000000..41451e4a --- /dev/null +++ b/luci-app-accesscontrol/po/zh_Hans @@ -0,0 +1 @@ +zh-cn \ No newline at end of file diff --git a/luci-app-accesscontrol/root/etc/mia.include b/luci-app-accesscontrol/root/etc/mia.include index 4d7859f3..359bbd6f 100755 --- a/luci-app-accesscontrol/root/etc/mia.include +++ b/luci-app-accesscontrol/root/etc/mia.include @@ -1 +1 @@ -/etc/init.d/mia restart \ No newline at end of file +/etc/init.d/mia restart diff --git a/luci-app-accesscontrol/root/etc/uci-defaults/mia b/luci-app-accesscontrol/root/etc/uci-defaults/luci-mia similarity index 99% rename from luci-app-accesscontrol/root/etc/uci-defaults/mia rename to luci-app-accesscontrol/root/etc/uci-defaults/luci-mia index f7ad30b8..6737992c 100644 --- a/luci-app-accesscontrol/root/etc/uci-defaults/mia +++ b/luci-app-accesscontrol/root/etc/uci-defaults/luci-mia @@ -13,6 +13,7 @@ uci -q batch <<-EOF >/dev/null add ucitrack mia set ucitrack.@mia[-1].init=mia commit ucitrack + delete firewall.mia set firewall.mia=include set firewall.mia.type=script diff --git a/luci-app-alist/Makefile b/luci-app-alist/Makefile deleted file mode 100644 index e3be692e..00000000 --- a/luci-app-alist/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 -# -# Copyright (C) 2023 ImmortalWrt.org - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI app for AList -LUCI_DEPENDS:=+alist -LUCI_PKGARCH:=all - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js b/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js deleted file mode 100644 index 818d6e00..00000000 --- a/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js +++ /dev/null @@ -1,151 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 - -'use strict'; -'require form'; -'require poll'; -'require rpc'; -'require uci'; -'require validation'; -'require view'; - -var callServiceList = rpc.declare({ - object: 'service', - method: 'list', - params: ['name'], - expect: { '': {} } -}); - -function getServiceStatus() { - return L.resolveDefault(callServiceList('alist'), {}).then(function (res) { - var isRunning = false; - try { - isRunning = res['alist']['instances']['instance1']['running']; - } catch (e) { } - return isRunning; - }); -} - -function renderStatus(isRunning, port) { - var spanTemp = '%s %s'; - var renderHTML; - if (isRunning) { - var button = String.format(' %s', - window.location.hostname, port, _('Open Web Interface')); - renderHTML = spanTemp.format('green', _('AList'), _('RUNNING')) + button; - } else { - renderHTML = spanTemp.format('red', _('AList'), _('NOT RUNNING')); - } - - return renderHTML; -} - -var stubValidator = { - factory: validation, - apply: function(type, value, args) { - if (value != null) - this.value = value; - - return validation.types[type].apply(this, args); - }, - assert: function(condition) { - return !!condition; - } -}; - -return view.extend({ - load: function() { - return Promise.all([ - uci.load('alist') - ]); - }, - - render: function(data) { - var m, s, o; - var webport = uci.get(data[0], 'config', 'listen_http_port') || '5244'; - - m = new form.Map('alist', _('AList'), - _('A file list/WebDAV program that supports multiple storages, powered by Gin and Solidjs.
' + - 'Default login username is admin and password is password.')); - - s = m.section(form.TypedSection); - s.anonymous = true; - s.render = function () { - poll.add(function () { - return L.resolveDefault(getServiceStatus()).then(function (res) { - var view = document.getElementById('service_status'); - view.innerHTML = renderStatus(res, webport); - }); - }); - - return E('div', { class: 'cbi-section', id: 'status_bar' }, [ - E('p', { id: 'service_status' }, _('Collecting data...')) - ]); - } - - s = m.section(form.NamedSection, 'config', 'alist'); - - o = s.option(form.Flag, 'enabled', _('Enable')); - o.default = o.disabled; - o.rmempty = false; - - o = s.option(form.Value, 'listen_addr', _('Listen address')); - o.default = '0.0.0.0'; - o.rmempty = false; - o.validate = function(section_id, value) { - if (!value) - return _('Expecting: %s').format(_('non-empty value')); - - var m4 = value.match(/^([^\[\]:]+)$/), - m6 = value.match(/^\[(.+)\]$/ ); - - if ((!m4 && !m6) || !stubValidator.apply('ipaddr', m4 ? m4[1] : m6[1])) - return _('Expecting: %s').format(_('valid IP address')); - - return true; - } - - o = s.option(form.Value, 'listen_http_port', _('Listen port')); - o.datatype = 'port'; - o.default = '5244'; - o.rmempty = false; - - o = s.option(form.Value, 'site_login_expire', _('Login expiration time'), - _('User login expiration time (in hours).')); - o.datatype = 'uinteger'; - o.default = '48'; - o.rmempty = false; - - o = s.option(form.Value, 'site_max_connections', _('Max connections'), - _('The maximum number of concurrent connections at the same time (0 = unlimited).')); - o.datatype = 'uinteger'; - o.default = '0'; - o.rmempty = false; - - o = s.option(form.Flag, 'site_tls_insecure', _('Allow insecure connection'), - _('Allow connection even if the remote TLS certificate is invalid (not recommended).')); - o.default = o.disabled; - - o = s.option(form.Flag, 'log_enable', _('Enable logging')); - o.default = o.enabled; - - o = s.option(form.Value, 'log_max_size', _('Max log size'), - _('The maximum size in megabytes of the log file before it gets rotated.')); - o.datatype = 'uinteger'; - o.default = '5'; - o.depends('log_enable', '1'); - - o = s.option(form.Value, 'log_max_backups', _('Max log backups'), - _('The maximum number of old log files to retain.')); - o.datatype = 'uinteger'; - o.default = '1'; - o.depends('log_enable', '1'); - - o = s.option(form.Value, 'log_max_age', _('Max log age'), - _('The maximum days of the log file to retain.')); - o.datatype = 'uinteger'; - o.default = '15'; - o.depends('log_enable', '1'); - - return m.render(); - } -}); diff --git a/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js b/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js deleted file mode 100644 index f300abef..00000000 --- a/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js +++ /dev/null @@ -1,75 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 - -'use strict'; -'require dom'; -'require fs'; -'require poll'; -'require uci'; -'require view'; - -return view.extend({ - render: function() { - /* Thanks to luci-app-aria2 */ - var css = ' \ - #log_textarea { \ - padding: 10px; \ - text-align: left; \ - } \ - #log_textarea pre { \ - padding: .5rem; \ - word-break: break-all; \ - margin: 0; \ - } \ - .description { \ - background-color: #33ccff; \ - }'; - - var log_textarea = E('div', { 'id': 'log_textarea' }, - E('img', { - 'src': L.resource(['icons/loading.gif']), - 'alt': _('Loading...'), - 'style': 'vertical-align:middle' - }, _('Collecting data...')) - ); - - poll.add(L.bind(function() { - return fs.read_direct('/var/run/alist/log/alist.log', 'text') - .then(function(res) { - var log = E('pre', { 'wrap': 'pre' }, [ - res.trim() || _('Log is empty.') - ]); - - dom.content(log_textarea, log); - }).catch(function(err) { - var log; - - if (err.toString().includes('NotFoundError')) - log = E('pre', { 'wrap': 'pre' }, [ - _('Log file does not exist.') - ]); - else - log = E('pre', { 'wrap': 'pre' }, [ - _('Unknown error: %s').format(err) - ]); - - dom.content(log_textarea, log); - }); - })); - - return E([ - E('style', [ css ]), - E('div', {'class': 'cbi-map'}, [ - E('div', {'class': 'cbi-section'}, [ - log_textarea, - E('div', {'style': 'text-align:right'}, - E('small', {}, _('Refresh every %s seconds.').format(L.env.pollinterval)) - ) - ]) - ]) - ]); - }, - - handleSaveApply: null, - handleSave: null, - handleReset: null -}); diff --git a/luci-app-alist/po/templates/alist.pot b/luci-app-alist/po/templates/alist.pot deleted file mode 100644 index ea258b0b..00000000 --- a/luci-app-alist/po/templates/alist.pot +++ /dev/null @@ -1,146 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:67 -msgid "" -"A file list/WebDAV program that supports multiple storages, powered by Gin " -"and Solidjs.
Default login username is admin and password " -"is password." -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:34 -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:36 -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:66 -#: applications/luci-app-alist/root/usr/share/luci/menu.d/luci-app-alist.json:3 -msgid "AList" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:125 -msgid "" -"Allow connection even if the remote TLS certificate is invalid (not " -"recommended)." -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:124 -msgid "Allow insecure connection" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:81 -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js:32 -msgid "Collecting data..." -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:87 -msgid "Enable" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:128 -msgid "Enable logging" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:96 -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:102 -msgid "Expecting: %s" -msgstr "" - -#: applications/luci-app-alist/root/usr/share/rpcd/acl.d/luci-app-alist.json:3 -msgid "Grant access to AList configuration" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:91 -msgid "Listen address" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:107 -msgid "Listen port" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js:30 -msgid "Loading..." -msgstr "" - -#: applications/luci-app-alist/root/usr/share/luci/menu.d/luci-app-alist.json:22 -msgid "Log" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js:48 -msgid "Log file does not exist." -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js:39 -msgid "Log is empty." -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:112 -msgid "Login expiration time" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:118 -msgid "Max connections" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:143 -msgid "Max log age" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:137 -msgid "Max log backups" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:131 -msgid "Max log size" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:36 -msgid "NOT RUNNING" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:33 -msgid "Open Web Interface" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:34 -msgid "RUNNING" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js:65 -msgid "Refresh every %s seconds." -msgstr "" - -#: applications/luci-app-alist/root/usr/share/luci/menu.d/luci-app-alist.json:14 -msgid "Settings" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:144 -msgid "The maximum days of the log file to retain." -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:119 -msgid "" -"The maximum number of concurrent connections at the same time (0 = " -"unlimited)." -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:138 -msgid "The maximum number of old log files to retain." -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:132 -msgid "The maximum size in megabytes of the log file before it gets rotated." -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js:52 -msgid "Unknown error: %s" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:113 -msgid "User login expiration time (in hours)." -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:96 -msgid "non-empty value" -msgstr "" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:102 -msgid "valid IP address" -msgstr "" diff --git a/luci-app-alist/po/zh-cn b/luci-app-alist/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-alist/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-alist/po/zh_Hans/alist.po b/luci-app-alist/po/zh_Hans/alist.po deleted file mode 100644 index 1ece1133..00000000 --- a/luci-app-alist/po/zh_Hans/alist.po +++ /dev/null @@ -1,155 +0,0 @@ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: zh-Hans\n" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:67 -msgid "" -"A file list/WebDAV program that supports multiple storages, powered by Gin " -"and Solidjs.
Default login username is admin and password " -"is password." -msgstr "" -"一个支持多存储的 文件列表/WebDAV 程序,使用 Gin 和 Solidjs。
默认登录用" -"户名 admin 密码 password。" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:34 -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:36 -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:66 -#: applications/luci-app-alist/root/usr/share/luci/menu.d/luci-app-alist.json:3 -msgid "AList" -msgstr "AList" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:125 -msgid "" -"Allow connection even if the remote TLS certificate is invalid (not " -"recommended)." -msgstr "即使远程 TLS 证书无效,也允许连接(不推荐)。" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:124 -msgid "Allow insecure connection" -msgstr "允许不安全连接" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:81 -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js:32 -msgid "Collecting data..." -msgstr "收集数据中..." - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:87 -msgid "Enable" -msgstr "启用" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:128 -msgid "Enable logging" -msgstr "启用日志" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:96 -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:102 -msgid "Expecting: %s" -msgstr "请输入:%s" - -#: applications/luci-app-alist/root/usr/share/rpcd/acl.d/luci-app-alist.json:3 -msgid "Grant access to AList configuration" -msgstr "授予访问 AList 配置的权限" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:91 -msgid "Listen address" -msgstr "监听地址" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:107 -msgid "Listen port" -msgstr "监听端口" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js:30 -msgid "Loading..." -msgstr "加载中..." - -#: applications/luci-app-alist/root/usr/share/luci/menu.d/luci-app-alist.json:22 -msgid "Log" -msgstr "日志" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js:48 -msgid "Log file does not exist." -msgstr "日志文件不存在。" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js:39 -msgid "Log is empty." -msgstr "日志为空。" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:112 -msgid "Login expiration time" -msgstr "登录过期时间" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:118 -msgid "Max connections" -msgstr "最大连接数" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:143 -msgid "Max log age" -msgstr "日志最长保留时间" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:137 -msgid "Max log backups" -msgstr "日志最大备份数" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:131 -msgid "Max log size" -msgstr "日志最大大小" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:36 -msgid "NOT RUNNING" -msgstr "未运行" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:33 -msgid "Open Web Interface" -msgstr "打开 Web 界面" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:34 -msgid "RUNNING" -msgstr "运行中" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js:65 -msgid "Refresh every %s seconds." -msgstr "每 %s 秒刷新。" - -#: applications/luci-app-alist/root/usr/share/luci/menu.d/luci-app-alist.json:14 -msgid "Settings" -msgstr "设置" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:144 -msgid "The maximum days of the log file to retain." -msgstr "日志文件的最长保存天数。" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:119 -msgid "" -"The maximum number of concurrent connections at the same time (0 = " -"unlimited)." -msgstr "允许的最大并发连接数(0 = 不限制)。" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:138 -msgid "The maximum number of old log files to retain." -msgstr "要保留的最大旧日志文件数量。" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:132 -msgid "The maximum size in megabytes of the log file before it gets rotated." -msgstr "轮换前的最大日志大小(单位:MB)。" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/log.js:52 -msgid "Unknown error: %s" -msgstr "未知错误:%s" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:113 -msgid "User login expiration time (in hours)." -msgstr "用户登录过期时间(单位:小时)。" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:96 -msgid "non-empty value" -msgstr "非空值" - -#: applications/luci-app-alist/htdocs/luci-static/resources/view/alist/config.js:102 -msgid "valid IP address" -msgstr "有效 IP 地址" diff --git a/luci-app-alist/root/usr/share/luci/menu.d/luci-app-alist.json b/luci-app-alist/root/usr/share/luci/menu.d/luci-app-alist.json deleted file mode 100644 index ca8bcca3..00000000 --- a/luci-app-alist/root/usr/share/luci/menu.d/luci-app-alist.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "admin/services/alist": { - "title": "AList", - "order": 10, - "action": { - "type": "firstchild" - }, - "depends": { - "acl": [ "luci-app-alist" ], - "uci": { "alist": true } - } - }, - "admin/services/alist/config": { - "title": "Settings", - "order": 10, - "action": { - "type": "view", - "path": "alist/config" - } - }, - "admin/services/alist/log": { - "title": "Log", - "order": 20, - "action": { - "type": "view", - "path": "alist/log" - } - } -} diff --git a/luci-app-alist/root/usr/share/rpcd/acl.d/luci-app-alist.json b/luci-app-alist/root/usr/share/rpcd/acl.d/luci-app-alist.json deleted file mode 100644 index 1dd31ef7..00000000 --- a/luci-app-alist/root/usr/share/rpcd/acl.d/luci-app-alist.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "luci-app-alist": { - "description": "Grant access to AList configuration", - "read": { - "file": { - "/var/run/alist/log/alist.log": [ "read" ] - }, - "ubus": { - "service": [ "list" ] - }, - "uci": [ "alist" ] - }, - "write": { - "uci": [ "alist" ] - } - } -} diff --git a/luci-app-cifs/Makefile b/luci-app-cifs/Makefile deleted file mode 100644 index 91fc36f7..00000000 --- a/luci-app-cifs/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -## Copyright (C) 2018 By-Ameng Openwrt.org -# -## This is free software, licensed under the Apache License, Version 2.0 . -# -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=luci-app-cifs -LUCI_DEPENDS:=+kmod-fs-cifs +kmod-nls-utf8 +kmod-nls-base +kmod-crypto-hmac +kmod-crypto-md5 +kmod-crypto-misc +cifsmount -LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=1 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-cifs/luasrc/controller/cifs.lua b/luci-app-cifs/luasrc/controller/cifs.lua deleted file mode 100644 index 0afe51cf..00000000 --- a/luci-app-cifs/luasrc/controller/cifs.lua +++ /dev/null @@ -1,24 +0,0 @@ --- Copyright 2015 --- Matthew --- Licensed to the public under the Apache License 2.0. - -module("luci.controller.cifs", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/cifs") then - return - end - - local page = entry({"admin", "services", "cifs"}, cbi("cifs"), _("Mounting NAT drives")) - page.dependent = true - page.acl_depends = { "luci-app-cifs" } - - entry({"admin", "services", "cifs", "status"}, call("act_status")).leaf = true -end - -function act_status() - local e = {} - e.running = luci.sys.call("pidof cifsd > /dev/null") == 0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end diff --git a/luci-app-cifs/luasrc/model/cbi/cifs.lua b/luci-app-cifs/luasrc/model/cbi/cifs.lua deleted file mode 100644 index e598d6ef..00000000 --- a/luci-app-cifs/luasrc/model/cbi/cifs.lua +++ /dev/null @@ -1,97 +0,0 @@ --- Copyright 2015 --- Matthew --- Licensed to the public under the Apache License 2.0. - -local fs = require "nixio.fs" - -m = Map("cifs", translate("Mounting NAT drives")) -m.description = translate("Allows you mounting Nat drives") - -m:section(SimpleSection).template = "cifs/cifs_status" - -s = m:section(TypedSection, "cifs", "Cifs") -s.anonymous = true - -s:tab("general", translate("General Settings")) - -switch = s:taboption("general", Flag, "enabled", translate("Enable")) -switch.rmempty = false - -workgroup = s:taboption("general", Value, "workgroup", translate("Workgroup")) -workgroup.default = "WORKGROUP" - -mountarea = s:taboption("general", Value, "mountarea", translate("Mount Area")) -mountarea.description = translate("All the Mounted NAT Drives will be centralized into this folder.") -mountarea.default = "/tmp/mnt" -mountarea.rmempty = false - -delay = s:taboption("general", Value, "delay", translate("Delay")) -delay.description = translate("Delay command runing for wait till your drivers online.\n Only work in start mode(/etc/init.d/cifs start) ") -delay:value("0") -delay:value("3") -delay:value("5") -delay:value("7") -delay:value("10") -delay.default = "5" - -iocharset = s:taboption("general", Value, "iocharset", translate("Iocharset")) -iocharset.description = translate("Character Encoding") -iocharset.default = "utf8" - -s = m:section(TypedSection, "natshare", translate("NAT Drivers")) -s.anonymous = true -s.addremove = true -s.template = "cbi/tblsection" - -server = s:option(Value, "server", translate("Server")) -server.description = translate("Server Name/IP") -server.size = 6 -server.rmempty = false - -name = s:option(Value, "name", translate("Name")) -name.description = translate("Mouting Folder Name") -name.size = 6 -name.rmempty = false - -sec = s:option(Value, "sec", translate("Choose Safety Mode")) -sec:value("none") -sec:value("krb5") -sec:value("krb5i") -sec:value("ntlm") -sec:value("ntlmi") -sec:value("ntlmv2") -sec:value("ntlmv2i") -sec.rmempty = true -sec.size = 7 - -agm = s:option(Value, "agm", translate("Arguments")) -agm:value("rm", translate"rm: Read Only") -agm:value("rw", translate"rw: Read and Write") -agm:value("noperm") -agm:value("noacl") -agm:value("sfu") -agm:value("dirctio") -agm:value("file_mode=0755,dir_mode=0n755") -agm:value("nounix", translate"nounix: Disable Unix Extensions") -agm.rmempty = true -agm.size = 8 - -guest = s:option(Flag, "guest", translate("Using Guest")) -guest.rmempty = false -guest.enabled = "1" -guest.disabled = "0" - -users = s:option(Value, "users", translate("Users")) -users.size = 3 -users.rmempty = true - -pwd = s:option(Value, "pwd", translate("password")) -pwd.rmempty = true -pwd.size = 3 - -local apply = luci.http.formvalue("cbi.apply") -if apply then - io.popen("/etc/init.d/cifs restart") -end - -return m diff --git a/luci-app-cifs/luasrc/view/cifs_status.htm b/luci-app-cifs/luasrc/view/cifs_status.htm deleted file mode 100644 index 3abb4dd2..00000000 --- a/luci-app-cifs/luasrc/view/cifs_status.htm +++ /dev/null @@ -1,22 +0,0 @@ - - -
-

- <%:Collecting data...%> -

-
diff --git a/luci-app-cifs/po/zh-cn b/luci-app-cifs/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-cifs/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-cifs/po/zh_Hans/cifs.po b/luci-app-cifs/po/zh_Hans/cifs.po deleted file mode 100644 index 796563ad..00000000 --- a/luci-app-cifs/po/zh_Hans/cifs.po +++ /dev/null @@ -1,41 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8\n" - -msgid "Mounting NAT drives" -msgstr "挂载网络驱动器" - -msgid "Allows you mounting Nat drives" -msgstr "允许挂载网络驱动器" - -msgid "Mount Area" -msgstr "挂载目录" - -msgid "All the Mounted NAT Drives will be centralized into this folder." -msgstr "所有安装的网络驱动器都将集中到这个文件夹中。" - -msgid "Delay" -msgstr "延迟" - -msgid "Delay command runing for wait till your drivers online.\n Only work in start mode(/etc/init.d/cifs start) " -msgstr "延迟命令运行,等待驱动程序联机。\n仅在启动模式下工作(/etc/init.d/cifs start)" - -msgid "Iocharset" -msgstr "编码" - -msgid "Character Encoding" -msgstr "字符编码" - -msgid "NAT Drivers" -msgstr "网络硬盘" - -msgid "Server Name/IP" -msgstr "服务器名称/ip地址" - -msgid "Mouting Folder Name" -msgstr "共享目录/名称" - -msgid "Choose Safety Mode" -msgstr "安全模式" - -msgid "Arguments" -msgstr "共享权限" diff --git a/luci-app-cifs/root/etc/config/cifs b/luci-app-cifs/root/etc/config/cifs deleted file mode 100644 index 87038a4f..00000000 --- a/luci-app-cifs/root/etc/config/cifs +++ /dev/null @@ -1,7 +0,0 @@ - -config cifs - option enabled '0' - option workgroup 'WORKGROUP' - option iocharset 'utf8' - option delay '5' - option mountarea '/tmp/mnt' diff --git a/luci-app-cifs/root/etc/init.d/cifs b/luci-app-cifs/root/etc/init.d/cifs deleted file mode 100755 index 2d6d5618..00000000 --- a/luci-app-cifs/root/etc/init.d/cifs +++ /dev/null @@ -1,184 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=99 - -ENABLED=0 -MOUNTAREA=0 -WORKGROUPD=0 -IOCHARSET=0 -DELAY=0 -GUEST="" -USERS="" -SEC="" -AGM="" - -cifs_header() { - local enabled - local workgroup - local mountarea - local delay - local iocharset - - config_get enabled $1 enabled - config_get mountarea $1 mountarea - config_get workgroup $1 workgroup - config_get delay $1 delay - config_get iocharset $1 iocharset - - ENABLED=$enabled - MOUNTAREA=$mountarea - WORKGROUPD=$workgroup - IOCHARSET=$iocharset - - if [ $delay != 0 ] - then - DELAY=$delay - fi -} - -mount_natshare() { - local server - local name - local guest - local users - local pwd - local sec - local agm - - local _mount_path - local _agm - - config_get server $1 server - config_get name $1 name - config_get guest $1 guest - config_get users $1 users - config_get pwd $1 pwd - config_get sec $1 sec - config_get agm $1 agm - - if [ $guest == 1 ] - then - GUEST="guest," - USERS="" - else if [ $guest == 0 ] - then { - if [ $users ] - then - USERS="username=$users,password=$pwd," - GUEST="" - else - USERS="" - GUEST="guest," - fi - } - fi - fi - - if [ $sec ] - then - SEC=",sec=$sec" - else - SEC="" - fi - - if [ $agm ] - then - AGM=",$agm" - else - AGM="" - fi - - natpath="//${server}/$name" - - append _mount_path "$MOUNTAREA/$name" - append _agm "-o ${USERS}${GUEST},dom=$WORKGROUPD,iocharset=$IOCHARSET,$SEC,$AGM,vers=1.0" - - sleep 1 - mkdir -p $_mount_path - mount -t cifs $natpath $_mount_path $_agm -} - -umount_natshare() { - local server - local name - local _mount_path - - config_get server $1 server - config_get name $1 name - - append _mount_path "$MOUNTAREA/$name" - - sleep 1 - umount -d -l $_mount_path - rm -r -f $_mount_path -} - -change_natshare() { - sleep 1 -} - -start() { - config_load cifs - config_foreach cifs_header cifs - - echo "Checking..." - - if [ $ENABLED == 1 ] - then { - echo "Cifs Mount is Enabled." - echo "Starting..." - if [ $DELAY != 0 ] - then - sleep $DELAY - echo "DELAY Operation ${DELAY}s" - else - echo "Not DELAY ${DELAY}s" - fi - - config_foreach mount_natshare natshare - - echo "Cifs Mount succeed." - } - else - echo "Cifs Mount is Disabled.Please enter The Web Cotrol Center to enable it." - fi -} - -stop() { - echo "Umounting..." - - config_load cifs - config_foreach cifs_header cifs - config_foreach umount_natshare natshare - - echo "Cifs Umount succeed." - -} - -restart() { - echo 'Umounting... ' - - config_load cifs - config_foreach cifs_header cifs - - config_foreach umount_natshare natshare - - echo "Cifs Umount succeed." - - echo '' - echo 'Checking... ' - - if [ $ENABLED == 1 ] - then { - echo 'Cifs Mmount is Enabled. ' - echo 'Starting... ' - - config_foreach mount_natshare natshare - - echo "Cifs Mount succeed." - } - else - /etc/init.d/cifs disable - echo "Cifs Mount is Disabled.Please enter The Web Cotrol Center to enable it." - fi -} diff --git a/luci-app-cifs/root/etc/uci-defaults/luci-cifs b/luci-app-cifs/root/etc/uci-defaults/luci-cifs deleted file mode 100644 index 59a5cd6b..00000000 --- a/luci-app-cifs/root/etc/uci-defaults/luci-cifs +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh -[ ! -f "/usr/share/ucitrack/luci-app-cifs.json" ] && { - cat > /usr/share/ucitrack/luci-app-cifs.json << EEOF -{ - "config": "cifs", - "init": "cifs" -} -EEOF -} - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@cifs[-1] - add ucitrack cifs - set ucitrack.@cifs[-1].init=cifs - commit ucitrack -EOF - -/etc/init.d/cifs stop >/dev/null 2>&1 -/etc/init.d/cifs disable >/dev/null 2>&1 - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/luci-app-cifs/root/usr/share/rpcd/acl.d/luci-app-cifs.json b/luci-app-cifs/root/usr/share/rpcd/acl.d/luci-app-cifs.json deleted file mode 100644 index b0646081..00000000 --- a/luci-app-cifs/root/usr/share/rpcd/acl.d/luci-app-cifs.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "luci-app-cifs": { - "description": "Grant UCI access for luci-app-cifs", - "read": { - "uci": [ "cifs" ] - }, - "write": { - "uci": [ "cifs" ] - } - } -} diff --git a/luci-app-cifs/root/usr/share/ucitrack/luci-app-cifs.json b/luci-app-cifs/root/usr/share/ucitrack/luci-app-cifs.json deleted file mode 100644 index ca5c972a..00000000 --- a/luci-app-cifs/root/usr/share/ucitrack/luci-app-cifs.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "config": "cifs", - "init": "cifs" -} diff --git a/luci-app-fileassistant/Makefile b/luci-app-fileassistant/Makefile index ad383666..caa9385e 100644 --- a/luci-app-fileassistant/Makefile +++ b/luci-app-fileassistant/Makefile @@ -6,9 +6,9 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI support for Fileassistant LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=1 +PKG_VERSION:=1.0-5 +PKG_RELEASE:=2 include $(TOPDIR)/feeds/luci/luci.mk -# call BuildPackage - OpenWrt buildroot signature +# call BuildPackage - OpenWrt buildroot signature \ No newline at end of file diff --git a/luci-app-fileassistant/htdocs/luci-static/resources/fileassistant/fb.js b/luci-app-fileassistant/htdocs/luci-static/resources/fileassistant/fb.js index 2e3addef..616919d2 100644 --- a/luci-app-fileassistant/htdocs/luci-static/resources/fileassistant/fb.js +++ b/luci-app-fileassistant/htdocs/luci-static/resources/fileassistant/fb.js @@ -91,6 +91,40 @@ String.prototype.replaceAll = function(search, replacement) { } } + function chmodPath(filename, isdir) { + var newmod = prompt('请输入新的权限位(支持八进制权限位或者a+x格式):', isdir === "1" ? "0755" : "0644"); + if (newmod) { + iwxhr.get('/cgi-bin/luci/admin/nas/fileassistant/chmod', + { + filepath: concatPath(currentPath, filename), + newmod: newmod + }, + function (x, res) { + if (res.ec === 0) { + refresh_list(res.data, currentPath); + } + } + ); + } + } + + function chownPath(filename) { + var newown = prompt('请输入新的用户名(支持用户名或用户名:群组格式):', "root"); + if (newown) { + iwxhr.get('/cgi-bin/luci/admin/nas/fileassistant/chown', + { + filepath: concatPath(currentPath, filename), + newown: newown + }, + function (x, res) { + if (res.ec === 0) { + refresh_list(res.data, currentPath); + } + } + ); + } + } + function openpath(filename, dirname) { dirname = dirname || currentPath; window.open('/cgi-bin/luci/admin/nas/fileassistant/open?path=' @@ -130,6 +164,13 @@ String.prototype.replaceAll = function(search, replacement) { else if (targetElem.className.indexOf('cbi-button-edit') > -1) { renamePath(targetElem.parentNode.parentNode.dataset['filename']); } + else if (targetElem.className.indexOf('cbi-button-chmod') > -1) { + infoElem = targetElem.parentNode.parentNode; + chmodPath(infoElem.dataset['filename'] , infoElem.dataset['isdir']); + } + else if (targetElem.className.indexOf('cbi-button-chown') > -1) { + chownPath(targetElem.parentNode.parentNode.dataset['filename']); + } else if (targetElem = getFileElem(targetElem)) { if (targetElem.className.indexOf('parent-icon') > -1) { update_list(currentPath.replace(/\/[^/]+($|\/$)/, '')); @@ -156,7 +197,14 @@ String.prototype.replaceAll = function(search, replacement) { } } function refresh_list(filenames, path) { - var listHtml = ''; + var listHtml = '
' + +'' + +'' + +'' + +'' + +'' + +'' + +''; if (path !== '/') { listHtml += ''; } @@ -196,7 +244,9 @@ String.prototype.replaceAll = function(search, replacement) { + '' + '' + ''; @@ -270,6 +320,26 @@ String.prototype.replaceAll = function(search, replacement) { } }; + document.getElementById('mkdir-toggle').onclick = function() { + var dirname = null; + if (dirname = prompt("请输入文件夹名称:")) { + var formData = new FormData(); + formData.append('path', currentPath); + formData.append('dirname', dirname); + var xhr = new XMLHttpRequest(); + xhr.open("POST", "/cgi-bin/luci/admin/nas/fileassistant/mkdir", true); + xhr.onload = function() { + if (xhr.status == 200) { + var res = JSON.parse(xhr.responseText); + refresh_list(res.data, currentPath); + } + else { + alert('创建失败,请稍后再试...'); + } + }; + xhr.send(formData); + } + }; document.addEventListener('DOMContentLoaded', function(evt) { var initPath = '/'; if (/path=([/\w]+)/.test(location.search)) { diff --git a/luci-app-fileassistant/luasrc/controller/fileassistant.lua b/luci-app-fileassistant/luasrc/controller/fileassistant.lua index 7b880136..4c4bcb59 100644 --- a/luci-app-fileassistant/luasrc/controller/fileassistant.lua +++ b/luci-app-fileassistant/luasrc/controller/fileassistant.lua @@ -6,7 +6,6 @@ function index() page = entry({"admin", "system", "fileassistant"}, template("fileassistant"), _("文件管理"), 50) page.i18n = "base" page.dependent = true - page.acl_depends = { "luci-app-fileassistant" } page = entry({"admin", "nas", "fileassistant", "list"}, call("fileassistant_list"), nil) page.leaf = true @@ -26,6 +25,14 @@ function index() page = entry({"admin", "nas", "fileassistant", "install"}, call("fileassistant_install"), nil) page.leaf = true + page = entry({"admin", "nas", "fileassistant", "mkdir"}, call("fileassistant_mkdir"), nil) + page.leaf = true + + page = entry({"admin", "nas", "fileassistant", "chmod"}, call("fileassistant_chmod"), nil) + page.leaf = true + + page = entry({"admin", "nas", "fileassistant", "chown"}, call("fileassistant_chown"), nil) + page.leaf = true end function list_response(path, success) @@ -109,15 +116,18 @@ function installIPK(filepath) end function fileassistant_upload() - local filecontent = luci.http.formvalue("upload-file") - local filename = luci.http.formvalue("upload-filename") - local uploaddir = luci.http.formvalue("upload-dir") - local filepath = uploaddir..filename - local fp + -- MUST setfilehandler before formvalue, + -- beacuse formvalue will parse form and write body to /tmp if filehandler not present luci.http.setfilehandler( function(meta, chunk, eof) if not fp and meta and meta.name == "upload-file" then + local filename = luci.http.formvalue("upload-filename") + local uploaddir = luci.http.formvalue("upload-dir") + if not uploaddir or not filename then + error("uploaddir or filename is nil") + end + local filepath = uploaddir..filename fp = io.open(filepath, "w") end if fp and chunk then @@ -129,7 +139,28 @@ function fileassistant_upload() end ) - list_response(uploaddir, true) + list_response(luci.http.formvalue("upload-dir"), true) +end + +function fileassistant_mkdir() + local path = luci.http.formvalue("path") + local dirname = luci.http.formvalue("dirname") + local success = os.execute('sh -c \'cd "'..path..'" && mkdir -p "'..dirname..'"\'') + list_response(path, success) +end + +function fileassistant_chmod() + local path = luci.http.formvalue("filepath") + local newmod = luci.http.formvalue("newmod") + local success = os.execute('chmod '..newmod..' "'..path..'"') + list_response(nixio.fs.dirname(path), success) +end + +function fileassistant_chown() + local path = luci.http.formvalue("filepath") + local newown = luci.http.formvalue("newown") + local success = os.execute('chown '..newown..' "'..path..'"') + list_response(nixio.fs.dirname(path), success) end function scandir(directory) diff --git a/luci-app-fileassistant/luasrc/view/fileassistant.htm b/luci-app-fileassistant/luasrc/view/fileassistant.htm index 15f069b9..3d760b40 100644 --- a/luci-app-fileassistant/luasrc/view/fileassistant.htm +++ b/luci-app-fileassistant/luasrc/view/fileassistant.htm @@ -1,12 +1,13 @@ <%+header%> - +

文件助手

文件列表
+
@@ -15,6 +16,6 @@
- + <%+footer%> diff --git a/luci-app-fileassistant/root/usr/share/rpcd/acl.d/luci-app-fileassistant.json b/luci-app-fileassistant/root/usr/share/rpcd/acl.d/luci-app-fileassistant.json deleted file mode 100644 index 8db4ea32..00000000 --- a/luci-app-fileassistant/root/usr/share/rpcd/acl.d/luci-app-fileassistant.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "luci-app-fileassistant": { - "description": "Grant UCI access for luci-app-fileassistant", - "read": { - "uci": [ "fileassistant" ] - }, - "write": { - "uci": [ "fileassistant" ] - } - } -} diff --git a/luci-app-haproxy-tcp/Makefile b/luci-app-haproxy-tcp/Makefile index 265ac7b3..b9e3a585 100644 --- a/luci-app-haproxy-tcp/Makefile +++ b/luci-app-haproxy-tcp/Makefile @@ -8,12 +8,12 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=luci for haproxy and shadowsocks LUCI_DEPENDS:=+haproxy LUCI_PKGARCH:=all + PKG_NAME:=luci-app-haproxy-tcp PKG_VERSION=1.4 -PKG_RELEASE:=1 -PKG_MAINTAINER:=Alex Zhuo <1886090@gmail.com> +PKG_RELEASE:=2 -include $(TOPDIR)/feeds/luci/luci.mk +PKG_MAINTAINER:=Alex Zhuo <1886090@gmail.com> define Package/$(PKG_NAME)/postinst #!/bin/sh @@ -24,4 +24,6 @@ echo stopping haproxy echo haproxy disabled endef +include $(TOPDIR)/feeds/luci/luci.mk + # call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-haproxy-tcp/luasrc/controller/haproxy.lua b/luci-app-haproxy-tcp/luasrc/controller/haproxy.lua index b1f5c438..84920969 100644 --- a/luci-app-haproxy-tcp/luasrc/controller/haproxy.lua +++ b/luci-app-haproxy-tcp/luasrc/controller/haproxy.lua @@ -1,9 +1,9 @@ module("luci.controller.haproxy", package.seeall) + function index() - if not nixio.fs.access("/etc/config/haproxy") then - return - end - local page = entry({"admin", "services", "haproxy"}, cbi("haproxy"), _("HAProxy")) - page.dependent = true - page.acl_depends = { "luci-app-haproxy-tcp" } -end \ No newline at end of file + if not nixio.fs.access("/etc/config/haproxy") then + return + end + + entry({"admin", "services", "haproxy"}, cbi("haproxy"), _("HAProxy")).dependent = true +end diff --git a/luci-app-haproxy-tcp/luasrc/model/cbi/haproxy.lua b/luci-app-haproxy-tcp/luasrc/model/cbi/haproxy.lua index f1812243..382fa5b0 100644 --- a/luci-app-haproxy-tcp/luasrc/model/cbi/haproxy.lua +++ b/luci-app-haproxy-tcp/luasrc/model/cbi/haproxy.lua @@ -16,11 +16,11 @@ if haproxy_on then else state_msg = "" .. translate("Not running") .. "" end -m=Map("haproxy",translate("HAProxy"),translate("HAProxy能够检测Shadowsocks服务器的连通情况,从而实现负载均衡和高可用的功能,支持主备用服务器宕机自动切换,并且可以设置多个主服务器用于分流,规定每个分流节点的流量比例等。前提条件是你的所有Shadowsocks服务器的【加密方式】和【密码】一致。

使用方法:配置好你的Shadowsocks服务器ip地址和端口,然后开启Shadowsocks服务,将服务器地址填写为【127.0.0.1】,端口【2222】,其他参数和之前一样即可,你可以通过访问【路由器的IP:1111/haproxy】输入用户名admin,密码root来观察各节点健康状况,红色为宕机,绿色正常,使用说明请点击这里") .. "

后台监控页面:" .. router_ip .. ":1111/haproxy 用户名admin,密码root" .. "

状态 - " .. state_msg) -s=m:section(TypedSection,"arguments","") - s.addremove=false - s.anonymous=true - view_enable = s:option(Flag,"enabled",translate("Enable")) +m = Map("haproxy", translate("HAProxy"), translate("HAProxy能够检测Shadowsocks服务器的连通情况,从而实现负载均衡和高可用的功能,支持主备用服务器宕机自动切换,并且可以设置多个主服务器用于分流,规定每个分流节点的流量比例等。前提条件是你的所有Shadowsocks服务器的【加密方式】和【密码】一致。

使用方法:配置好你的Shadowsocks服务器ip地址和端口,然后开启Shadowsocks服务,将服务器地址填写为【127.0.0.1】,端口【2222】,其他参数和之前一样即可,你可以通过访问【路由器的IP:1111/haproxy】输入用户名admin,密码root来观察各节点健康状况,红色为宕机,绿色正常,使用说明请点击这里") .. "

后台监控页面:" .. router_ip .. ":1111/haproxy 用户名admin,密码root" .. "

状态 - " .. state_msg) +s = m:section(TypedSection,"arguments","") + s.addremove = false + s.anonymous = true + view_enable = s:option(Flag, "enabled", translate("Enable")) --通过读写配置文件控制HAProxy这种方式已经弃用 --view_cfg = s:option(TextValue, "1", nil) --view_cfg.rmempty = false @@ -32,36 +32,37 @@ s=m:section(TypedSection,"arguments","") --function view_cfg.write(self, section, value) -- sync_value_to_file(value, "/etc/haproxy.cfg") --end -s=m:section(TypedSection,"main_server","" .. translate("Main Server List") .. "") - s.anonymous=true - s.addremove=true - o=s:option(Value,"server_name",translate("Display Name"),translate("Only English Characters,No spaces")) +s = m:section(TypedSection, "main_server","" .. translate("Main Server List") .. "") + s.anonymous = true + s.addremove = true + o = s:option(Value, "server_name", translate("Display Name"), translate("Only English Characters,No spaces")) o.rmempty = false - o=s:option(Flag,"validate",translate("validate")) + o = s:option(Flag,"validate",translate("validate")) - o=s:option(Value,"server_ip",translate("Proxy Server IP")) + o = s:option(Value, "server_ip", translate("Proxy Server IP")) - o=s:option(Value,"server_port",translate("Proxy Server Port")) - o.datatype="uinteger" - o=s:option(Value,"server_weight",translate("Weight")) - o.datatype="uinteger" + o = s:option(Value, "server_port", translate("Proxy Server Port")) + o.datatype = "uinteger" + o = s:option(Value, "server_weight", translate("Weight")) + o.datatype = "uinteger" -s=m:section(TypedSection,"backup_server","" .. translate("Backup Server List") .. "") - s.anonymous=true - s.addremove=true - o=s:option(Value,"server_name",translate("Display Name"),translate("Only English Characters,No spaces")) +s = m:section(TypedSection,"backup_server","" .. translate("Backup Server List") .. "") + s.anonymous = true + s.addremove = true + o = s:option(Value, "server_name", translate("Display Name"), translate("Only English Characters,No spaces")) o.rmempty = false - o=s:option(Flag,"validate",translate("validate")) + o = s:option(Flag, "validate", translate("validate")) - o=s:option(Value,"server_ip",translate("Proxy Server IP")) + o = s:option(Value, "server_ip", translate("Proxy Server IP")) - o=s:option(Value,"server_port",translate("Proxy Server Port")) - o.datatype="uinteger" + o = s:option(Value, "server_port", translate("Proxy Server Port")) + o.datatype = "uinteger" -- --------------------------------------------------- local apply = luci.http.formvalue("cbi.apply") if apply then os.execute("/etc/haproxy_init.sh restart >/dev/null 2>&1 &") end + return m diff --git a/luci-app-haproxy-tcp/po/zh-cn b/luci-app-haproxy-tcp/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-haproxy-tcp/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-haproxy-tcp/po/zh-cn/haproxy-tcp.po b/luci-app-haproxy-tcp/po/zh-cn/haproxy-tcp.po new file mode 100644 index 00000000..f0f2aa83 --- /dev/null +++ b/luci-app-haproxy-tcp/po/zh-cn/haproxy-tcp.po @@ -0,0 +1,34 @@ +msgid "Running" +msgstr "运行中" + +msgid "Not running" +msgstr "未运行" + +msgid "Main Server List" +msgstr "主服务器列表" + +msgid "Display Name" +msgstr "服务器名称" + +msgid "Only English Characters,No spaces" +msgstr "仅限英文字母,不要有空格" + +msgid "Proxy Server IP" +msgstr "代理服务器IP或域名" + +msgid "Proxy Server Port" +msgstr "代理服务器端口" + +msgid "Weight" +msgstr "分流权重" + +msgid "Backup Server List" +msgstr "备用服务器列表" + +msgid "validate" +msgstr "生效" + + + + + diff --git a/luci-app-haproxy-tcp/po/zh_Hans b/luci-app-haproxy-tcp/po/zh_Hans new file mode 120000 index 00000000..41451e4a --- /dev/null +++ b/luci-app-haproxy-tcp/po/zh_Hans @@ -0,0 +1 @@ +zh-cn \ No newline at end of file diff --git a/luci-app-haproxy-tcp/po/zh_Hans/luci-app-haproxy-tcp.po b/luci-app-haproxy-tcp/po/zh_Hans/luci-app-haproxy-tcp.po deleted file mode 100644 index da223e89..00000000 --- a/luci-app-haproxy-tcp/po/zh_Hans/luci-app-haproxy-tcp.po +++ /dev/null @@ -1,69 +0,0 @@ -msgid "" -msgstr "" -"Content-Type: text/plain; charset=UTF-8\n" -"Project-Id-Version: PACKAGE VERSION\n" -"Last-Translator: Automatically generated\n" -"Language-Team: none\n" -"Language: zh-Hans\n" -"MIME-Version: 1.0\n" -"Content-Transfer-Encoding: 8bit\n" - -#: luasrc/model/cbi/haproxy.lua:50 -msgid "Backup Server List" -msgstr "备用服务器列表" - -#: luasrc/model/cbi/haproxy.lua:38 luasrc/model/cbi/haproxy.lua:53 -msgid "Display Name" -msgstr "服务器名称" - -#: luasrc/model/cbi/haproxy.lua:23 -msgid "Enable" -msgstr "" - -#: luasrc/controller/haproxy.lua:6 luasrc/model/cbi/haproxy.lua:19 -msgid "HAProxy" -msgstr "" - -#: luasrc/model/cbi/haproxy.lua:19 -msgid "" -"HAProxy能够检测Shadowsocks服务器的连通情况,从而实现负载均衡和高可用的功能," -"支持主备用服务器宕机自动切换,并且可以设置多个主服务器用于分流,规定每个分流" -"节点的流量比例等。前提条件是你的所有Shadowsocks服务器的【加密方式】和【密码】" -"一致。

使用方法:配置好你的Shadowsocks服务器ip地址和端口,然后开启" -"Shadowsocks服务,将服务器地址填写为【127.0.0.1】,端口【2222】,其他参数和之" -"前一样即可,你可以通过访问【路由器的IP:1111/haproxy】输入用户名admin,密码" -"root来观察各节点健康状况,红色为宕机,绿色正常,使用说明请点击这里" -msgstr "" - -#: luasrc/model/cbi/haproxy.lua:35 -msgid "Main Server List" -msgstr "主服务器列表" - -#: luasrc/model/cbi/haproxy.lua:17 -msgid "Not running" -msgstr "未运行" - -#: luasrc/model/cbi/haproxy.lua:38 luasrc/model/cbi/haproxy.lua:53 -msgid "Only English Characters,No spaces" -msgstr "仅限英文字母,不要有空格" - -#: luasrc/model/cbi/haproxy.lua:43 luasrc/model/cbi/haproxy.lua:58 -msgid "Proxy Server IP" -msgstr "代理服务器IP或域名" - -#: luasrc/model/cbi/haproxy.lua:45 luasrc/model/cbi/haproxy.lua:60 -msgid "Proxy Server Port" -msgstr "代理服务器端口" - -#: luasrc/model/cbi/haproxy.lua:15 -msgid "Running" -msgstr "运行中" - -#: luasrc/model/cbi/haproxy.lua:47 -msgid "Weight" -msgstr "分流权重" - -#: luasrc/model/cbi/haproxy.lua:41 luasrc/model/cbi/haproxy.lua:56 -msgid "validate" -msgstr "生效" diff --git a/luci-app-haproxy-tcp/root/etc/haproxy_init.sh b/luci-app-haproxy-tcp/root/etc/haproxy_init.sh index c3a01dc2..9f969ee5 100755 --- a/luci-app-haproxy-tcp/root/etc/haproxy_init.sh +++ b/luci-app-haproxy-tcp/root/etc/haproxy_init.sh @@ -22,10 +22,10 @@ start(){ log 127.0.0.1 local0 #[日志输出配置,所有日志都记录在本机,通过local0输出] log 127.0.0.1 local1 notice #定义haproxy 日志级别[error warringinfo debug] daemon #以后台形式运行harpoxy - nbproc 1 #设置进程数量 + #nbproc 1 #设置进程数量 pidfile /var/run/haproxy.pid - ulimit-n 1024 #ulimit 的数量限制 - maxconn 1024 #默认最大连接数,需考虑ulimit-n限制 + #ulimit-n 1024 #ulimit 的数量限制 + #maxconn 2048 #默认最大连接数,需考虑ulimit-n限制 #chroot /usr/local/haproxy defaults log global @@ -130,4 +130,4 @@ restart(){ else stop; fi -} \ No newline at end of file +} diff --git a/luci-app-haproxy-tcp/root/etc/uci-defaults/z99-haproxy b/luci-app-haproxy-tcp/root/etc/uci-defaults/99_luci-haproxy similarity index 100% rename from luci-app-haproxy-tcp/root/etc/uci-defaults/z99-haproxy rename to luci-app-haproxy-tcp/root/etc/uci-defaults/99_luci-haproxy diff --git a/luci-app-k3usb/Makefile b/luci-app-k3usb/Makefile deleted file mode 100644 index d841f609..00000000 --- a/luci-app-k3usb/Makefile +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (C) 2018 XiaoShan mivm.cn - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI Support for k3usb3.0 on or off -LUCI_DEPENDS:=@TARGET_bcm53xx_generic_DEVICE_phicomm_k3 -LUCI_PKGARCH:=all - -PKG_NAME:=luci-app-k3usb -PKG_VERSION:=1.1.0 -PKG_RELEASE:=1 - -PKG_LICENSE:=GPLv3 -PKG_LICENSE_FILES:=LICENSE -PKG_MAINTAINER:=Shenzt - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-k3usb/luasrc/controller/k3usb.lua b/luci-app-k3usb/luasrc/controller/k3usb.lua deleted file mode 100644 index 68a52618..00000000 --- a/luci-app-k3usb/luasrc/controller/k3usb.lua +++ /dev/null @@ -1,13 +0,0 @@ --- Copyright (C) 2018 XiaoShan mivm.cn - -module("luci.controller.k3usb", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/k3usb") then - return - end - - local page = entry({"admin", "system", "k3usb"}, cbi("k3usb"), _("k3usb"), 60) - page.dependent = true - page.acl_depends = { "luci-app-k3usb" } -end diff --git a/luci-app-k3usb/luasrc/model/cbi/k3usb.lua b/luci-app-k3usb/luasrc/model/cbi/k3usb.lua deleted file mode 100644 index 16541353..00000000 --- a/luci-app-k3usb/luasrc/model/cbi/k3usb.lua +++ /dev/null @@ -1,15 +0,0 @@ --- Copyright (C) 2018 XiaoShan mivm.cn - -local m, s, o - -m = Map("k3usb", translate("k3usb")) -m.description = translate("k3 usb mode") - -s = m:section(TypedSection, "config", translate("usb mode")) -s.anonymous = true - -o = s:option(Flag, "usb3_enable", translate("usb3 enable :")) -o.description = translate("usb3 mode enable") -o.default = 1 - -return m diff --git a/luci-app-k3usb/po/zh-cn b/luci-app-k3usb/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-k3usb/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-k3usb/po/zh_Hans/k3usb.po b/luci-app-k3usb/po/zh_Hans/k3usb.po deleted file mode 100644 index 16165299..00000000 --- a/luci-app-k3usb/po/zh_Hans/k3usb.po +++ /dev/null @@ -1,17 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8\n" - -msgid "usb3 enable :" -msgstr "USB3 开启:" - -msgid "usb3 mode enable" -msgstr "是否开启USB3模式,修改此选项设备将会自动重启" - -msgid "k3usb" -msgstr "K3USB管理" - -msgid "k3 usb mode" -msgstr "开启或禁用USB3" - -msgid "usb mode" -msgstr "USB3管理模式" diff --git a/luci-app-k3usb/root/etc/config/k3usb b/luci-app-k3usb/root/etc/config/k3usb deleted file mode 100644 index c71dd937..00000000 --- a/luci-app-k3usb/root/etc/config/k3usb +++ /dev/null @@ -1,3 +0,0 @@ -config config usb - option usb3_enable '0' - diff --git a/luci-app-k3usb/root/etc/init.d/k3usb b/luci-app-k3usb/root/etc/init.d/k3usb deleted file mode 100755 index cb506b63..00000000 --- a/luci-app-k3usb/root/etc/init.d/k3usb +++ /dev/null @@ -1,62 +0,0 @@ -#!/bin/sh /etc/rc.common - -START=55 -STOP=55 - -usb3_enable=$(uci get k3usb.usb.usb3_enable 2>/dev/null) - -kernel=$(uname -a | awk '{print $3}') - -boot(){ - if [ "$usb3_enable" == "1" ]; then - #usb3 - kmodloader /usr/k3usb/45-phy-bcm-ns-usb3 - kmodloader /usr/k3usb/54-usb3 - - #usb2 - kmodloader /usr/k3usb/35-usb-ehci - kmodloader /usr/k3usb/40-usb2 - kmodloader /usr/k3usb/45-phy-bcm-ns-usb2 - kmodloader /usr/k3usb/50-usb-ohci - - echo "usb switch to usb3 mode!" - else - #usb2 - kmodloader /usr/k3usb/35-usb-ehci - kmodloader /usr/k3usb/40-usb2 - kmodloader /usr/k3usb/45-phy-bcm-ns-usb2 - kmodloader /usr/k3usb/50-usb-ohci - echo "usb switch to usb2 mode!" - fi - - kmodloader /usr/k3usb/usb-storage - kmodloader /usr/k3usb/usb-storage-extras - -} - - -start(){ - if [ "$usb3_enable" == "1" ]; then - if [ -z "$(lsmod | grep usb3)" ]; then - echo "usb change to usb3 mode, will reboot!" - reboot - else - echo "usb mode is usb3 , nothing to do" - fi - else - if [ -n "$(lsmod | grep usb3)" ]; then - echo "usb change usb2 mode, will reboot!" - reboot - else - echo "usb mode is usb2 , nothing to do" - fi - fi -} - -stop(){ - echo "nothing do" -} - -restart(){ - start -} diff --git a/luci-app-k3usb/root/etc/uci-defaults/luci-k3usb b/luci-app-k3usb/root/etc/uci-defaults/luci-k3usb deleted file mode 100644 index fbbdd725..00000000 --- a/luci-app-k3usb/root/etc/uci-defaults/luci-k3usb +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -[ ! -f "/usr/share/ucitrack/luci-app-k3usb.json" ] && { - cat > /usr/share/ucitrack/luci-app-k3usb.json << EEOF -{ - "config": "k3usb", - "init": "k3usb" -} -EEOF -} - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@k3usb[-1] - add ucitrack k3usb - set ucitrack.@k3usb[-1].init=k3usb - commit ucitrack -EOF - -rm -rf /tmp/luci-* -exit 0 diff --git a/luci-app-k3usb/root/usr/k3usb/35-usb-ehci b/luci-app-k3usb/root/usr/k3usb/35-usb-ehci deleted file mode 100644 index 52ae03a9..00000000 --- a/luci-app-k3usb/root/usr/k3usb/35-usb-ehci +++ /dev/null @@ -1 +0,0 @@ -ehci-hcd diff --git a/luci-app-k3usb/root/usr/k3usb/40-usb2 b/luci-app-k3usb/root/usr/k3usb/40-usb2 deleted file mode 100644 index d9ec9836..00000000 --- a/luci-app-k3usb/root/usr/k3usb/40-usb2 +++ /dev/null @@ -1,4 +0,0 @@ -ehci-hcd -ehci-platform -ehci-orion -ehci-atmel diff --git a/luci-app-k3usb/root/usr/k3usb/45-phy-bcm-ns-usb2 b/luci-app-k3usb/root/usr/k3usb/45-phy-bcm-ns-usb2 deleted file mode 100644 index d7364c5e..00000000 --- a/luci-app-k3usb/root/usr/k3usb/45-phy-bcm-ns-usb2 +++ /dev/null @@ -1 +0,0 @@ -phy-bcm-ns-usb2 diff --git a/luci-app-k3usb/root/usr/k3usb/45-phy-bcm-ns-usb3 b/luci-app-k3usb/root/usr/k3usb/45-phy-bcm-ns-usb3 deleted file mode 100644 index e5730da8..00000000 --- a/luci-app-k3usb/root/usr/k3usb/45-phy-bcm-ns-usb3 +++ /dev/null @@ -1 +0,0 @@ -phy-bcm-ns-usb3 diff --git a/luci-app-k3usb/root/usr/k3usb/50-usb-ohci b/luci-app-k3usb/root/usr/k3usb/50-usb-ohci deleted file mode 100644 index cb1ed678..00000000 --- a/luci-app-k3usb/root/usr/k3usb/50-usb-ohci +++ /dev/null @@ -1,3 +0,0 @@ -ohci-hcd -ohci-platform -ohci-at91 diff --git a/luci-app-k3usb/root/usr/k3usb/54-usb3 b/luci-app-k3usb/root/usr/k3usb/54-usb3 deleted file mode 100644 index 5ba5d865..00000000 --- a/luci-app-k3usb/root/usr/k3usb/54-usb3 +++ /dev/null @@ -1,3 +0,0 @@ -xhci-hcd -xhci-pci -xhci-plat-hcd diff --git a/luci-app-k3usb/root/usr/k3usb/test b/luci-app-k3usb/root/usr/k3usb/test deleted file mode 100644 index e69de29b..00000000 diff --git a/luci-app-k3usb/root/usr/k3usb/usb-storage b/luci-app-k3usb/root/usr/k3usb/usb-storage deleted file mode 100644 index 6b30c924..00000000 --- a/luci-app-k3usb/root/usr/k3usb/usb-storage +++ /dev/null @@ -1 +0,0 @@ -usb-storage diff --git a/luci-app-k3usb/root/usr/k3usb/usb-storage-extras b/luci-app-k3usb/root/usr/k3usb/usb-storage-extras deleted file mode 100644 index 446fa697..00000000 --- a/luci-app-k3usb/root/usr/k3usb/usb-storage-extras +++ /dev/null @@ -1,10 +0,0 @@ -ums-alauda -ums-cypress -ums-datafab -ums-freecom -ums-isd200 -ums-jumpshot -ums-karma -ums-sddr09 -ums-sddr55 -ums-usbat diff --git a/luci-app-k3usb/root/usr/share/rpcd/acl.d/luci-app-k3usb.json b/luci-app-k3usb/root/usr/share/rpcd/acl.d/luci-app-k3usb.json deleted file mode 100644 index a133b79c..00000000 --- a/luci-app-k3usb/root/usr/share/rpcd/acl.d/luci-app-k3usb.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "luci-app-k3usb": { - "description": "Grant UCI access for luci-app-k3usb", - "read": { - "uci": [ "k3usb" ] - }, - "write": { - "uci": [ "k3usb" ] - } - } -} diff --git a/luci-app-k3usb/root/usr/share/ucitrack/luci-app-k3usb.json b/luci-app-k3usb/root/usr/share/ucitrack/luci-app-k3usb.json deleted file mode 100644 index a6ffbb22..00000000 --- a/luci-app-k3usb/root/usr/share/ucitrack/luci-app-k3usb.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "config": "k3usb", - "init": "k3usb" -} diff --git a/luci-app-ltqtapi/Makefile b/luci-app-ltqtapi/Makefile new file mode 100644 index 00000000..88392341 --- /dev/null +++ b/luci-app-ltqtapi/Makefile @@ -0,0 +1,14 @@ +# +# Copyright (C) 2008-2014 The LuCI Team +# +# This is free software, licensed under the Apache License, Version 2.0 . +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI Support for Lantiq Devices +LUCI_DEPENDS:=@BROKEN + +include $(TOPDIR)/feeds/luci/luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-ltqtapi/luasrc/controller/ltqtapi.lua b/luci-app-ltqtapi/luasrc/controller/ltqtapi.lua new file mode 100644 index 00000000..46c76840 --- /dev/null +++ b/luci-app-ltqtapi/luasrc/controller/ltqtapi.lua @@ -0,0 +1,40 @@ +-- Copyright 2019 John Crispin +-- Licensed to the public under the Apache License 2.0. + +module("luci.controller.ltqtapi", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/telephony") then + return + end + + page = node("admin", "telephony") + page.target = firstchild() + page.title = _("VoIP") + page.order = 90 + + entry({"admin", "telephony", "account"}, cbi("luci_ltqtapi/account") , _("Account"), 10) + entry({"admin", "telephony", "contact"}, cbi("luci_ltqtapi/contact") , _("Contacts"), 20) + + entry({"admin", "telephony", "status"}, call("tapi_status")).leaf = true +end + +function tapi_status() + local st = { } + local state = require "luci.model.uci".cursor_state() + state:load("telephony") + + st.status = "Offline"; + if state:get("telephony", "state", "port1", "0") == "0" then + st.line1 = "Idle"; + else + st.line1 = "Calling"; + end + if state:get("telephony", "state", "port2", "0") == "0" then + st.line2 = "Idle"; + else + st.line2 = "Calling"; + end + luci.http.prepare_content("application/json") + luci.http.write_json(st) +end diff --git a/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua b/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua new file mode 100644 index 00000000..907db56e --- /dev/null +++ b/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/account.lua @@ -0,0 +1,16 @@ +-- Copyright 2010 John Crispin +-- Licensed to the public under the Apache License 2.0. + +m = Map("telephony", translate("VoIP")) +m.on_after_commit = function() luci.sys.call("/etc/init.d/telephony restart") end + +s = m:section(TypedSection, "account", translate("Account"), translate("Here You can specify the SIP account that you want to use.")) +s.anonymous = true +s.addremove = true + +s:option(Value, "realm", translate("Realm")) +s:option(Value, "username", translate("Username")) +s:option(Value, "password", translate("Password")) +s:option(Flag, "disabled", translate("Disabled")) + +return m diff --git a/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua b/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua new file mode 100644 index 00000000..b32feded --- /dev/null +++ b/luci-app-ltqtapi/luasrc/model/cbi/luci_ltqtapi/contact.lua @@ -0,0 +1,20 @@ +-- Copyright 2010 John Crispin +-- Licensed to the public under the Apache License 2.0. + +m = Map("telephony", translate("VoIP")) +m.on_after_commit = function() luci.sys.call("/etc/init.d/telephony reload") end + +s = m:section(TypedSection, "contact", translate("Contact"), translate("Here You can specify the SIP contacts that you want to use.")) +s.anonymous = true +s.addremove = true +s.template = "cbi/tsection" + +s:option(Value, "desc", translate("Name")) +s:option(Value, "code", translate("Shortdial")) +s:option(Value, "dial", translate("Dial")) + +t = s:option(ListValue, "type", translate("Type")) +t:value("sip", "SIP") +t:value("realm", "Landline") + +return m diff --git a/luci-app-ltqtapi/luasrc/view/admin_status/index/telephony.htm b/luci-app-ltqtapi/luasrc/view/admin_status/index/telephony.htm new file mode 100644 index 00000000..c7a58dd3 --- /dev/null +++ b/luci-app-ltqtapi/luasrc/view/admin_status/index/telephony.htm @@ -0,0 +1 @@ +<%+telephony_status%> diff --git a/luci-app-ltqtapi/luasrc/view/telephony_status.htm b/luci-app-ltqtapi/luasrc/view/telephony_status.htm new file mode 100644 index 00000000..d861ef9f --- /dev/null +++ b/luci-app-ltqtapi/luasrc/view/telephony_status.htm @@ -0,0 +1,32 @@ + + +
+ <%:Current Telephony State%> +
文件所有者修改时间大小权限操作
..
'+o.perms+'\ \ - ' + \ + \ + ' + install_btn + '
+ + + + + + + + +
<%:Uplink%><%:Port1%><%:Port2%>

<%:Collecting data...%>
+ diff --git a/luci-app-minieap/Makefile b/luci-app-minieap/Makefile deleted file mode 100644 index a259c158..00000000 --- a/luci-app-minieap/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -include $(TOPDIR)/rules.mk - -PKG_NAME:=luci-app-minieap -PKG_VERSION=1.0 -PKG_RELEASE:=1 - -LUCI_TITLE:=minieap 802.1X Client for LuCI -LUCI_PKGARCH:=all -LUCI_DEPENDS:=+minieap - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-minieap/luasrc/controller/minieap.lua b/luci-app-minieap/luasrc/controller/minieap.lua deleted file mode 100644 index 46acc677..00000000 --- a/luci-app-minieap/luasrc/controller/minieap.lua +++ /dev/null @@ -1,20 +0,0 @@ -module("luci.controller.minieap", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/minieap") then - return - end - - if luci.sys.call("command -v minieap >/dev/null") ~= 0 then - return - end - - local page = entry({"admin", "services", "minieap"}, alias("admin", "services", "minieap", "general"), _("minieap")) - page.order = 10 - page.dependent = true - page.acl_depends = { "luci-app-minieap" } - - entry({"admin", "services", "minieap", "general"}, cbi("minieap/general"), _("minieap Settings"), 10).leaf = true - -- entry({"admin", "services", "minieap", "customfile"}, cbi("minieap/customfile"), _("custom configfiles"), 20).leaf = true - entry({"admin", "services", "minieap", "log"}, cbi("minieap/log"), _("minieap LOG"), 30).leaf = true -end diff --git a/luci-app-minieap/luasrc/model/cbi/minieap/customfile.lua b/luci-app-minieap/luasrc/model/cbi/minieap/customfile.lua deleted file mode 100644 index 13484b1d..00000000 --- a/luci-app-minieap/luasrc/model/cbi/minieap/customfile.lua +++ /dev/null @@ -1,8 +0,0 @@ - -require("luci.sys") - -local f = SimpleForm("minieap", - translate("minieap LOG"), - translate("Log file:/var/log/minieap.log")) - -return f diff --git a/luci-app-minieap/luasrc/model/cbi/minieap/general.lua b/luci-app-minieap/luasrc/model/cbi/minieap/general.lua deleted file mode 100644 index 2695e93f..00000000 --- a/luci-app-minieap/luasrc/model/cbi/minieap/general.lua +++ /dev/null @@ -1,182 +0,0 @@ -local function is_running(name) - if luci.sys.call("pidof %s >/dev/null" %{name}) == 0 then - return translate("RUNNING") - else - return translate("NOT RUNNING") - end -end - -local function is_online(ipaddr) - if ipaddr == "0.0.0.0" or ipaddr == "nil" then - return translate("Pinghost not set") - end - if luci.sys.call("ping -c1 -w1 %s >/dev/null 2>&1" %{ipaddr}) == 0 then - return translate("ONLINE") - else - return translate("NOT ONLINE") - end -end - -require("luci.sys") - -m = Map("minieap", translate("minieap")) -m.description = translate("Configure minieap 802.11x.") - -s = m:section(TypedSection, "minieap", translate("Status")) -s.anonymous = true - -status = s:option(DummyValue,"_minieap_status", "minieap") -status.value = "%s" %{is_running("minieap")} -status.rawhtml = true - -t = io.popen('uci get minieap.@minieap[0].pinghost') -netstat = is_online(tostring(t:read("*line"))) -t:close() -if netstat ~= "" then -netstatus = s:option(DummyValue,"_network_status", translate("Network Status")) -netstatus.value = "%s" %{netstat} -netstatus.rawhtml = true -end - -o = m:section(TypedSection, "minieap", translate("Settings")) -o.addremove = false -o.anonymous = true - -o:tab("base", translate("Normal Settings")) -o:tab("advanced", translate("Advanced Settings")) -o:tab("plugins", translate("Plugins List")) -o:tab("ruijie", translate("Ruijie EAP Settings")) - -enable = o:taboption("base", Flag, "enable", translate("Enable")) - -name = o:taboption("base", Value, "username", translate("Username")) -name.description = translate("The username given to you by your network administrator") - -pass = o:taboption("base", Value, "password", translate("Password")) -pass.description = translate("The password you set or given to you by your network administrator") -pass.password = true - -ifname = o:taboption("base", ListValue, "nic", translate("Interfaces")) -ifname.description = translate("Physical interface of WAN") -for k, v in ipairs(luci.sys.net.devices()) do - if v ~= "lo" then - ifname:value(v) - end -end - -pinghost = o:taboption("base", Value, "pinghost", translate("PingHost")) -pinghost.description = translate("Ping host for drop detection, 0.0.0.0 to turn off this feature.") -pinghost.default = "0.0.0.0" - -pingintval = o:taboption("base", Value, "pingintval", translate("Ping intval")) -pingintval.description = translate("Interval of each ping. (in second) [default: 30]") -pingintval.default = "30" - -pingcommand = o:taboption("base", Value, "pingcommand", translate("Offline command")) -pingcommand.description = translate("Run Command when ping failed. [default: minieap -k 1]") -pingcommand:value("minieap -k 1") -pingcommand.default = "minieap -k 1" - -stage_timeout = o:taboption("advanced", Value, "stage_timeout", translate("Auth Timeout")) -stage_timeout.description = translate("802.11X auth timeout (in second). [default: 5]") -stage_timeout.default = "5" - -wait_after_fail = o:taboption("advanced", Value, "wait_after_fail", translate("Wait after failed")) -wait_after_fail.description = translate("Wait time between failed and next time (in second). [default: 30]") -wait_after_fail.default = "30" - -max_fail = o:taboption("advanced", Value, "max_fail", translate("Max fail")) -max_fail.description = translate("Maximum allowed number of failures. [default: 3]") -max_fail.default = "3" - -no_auto_reauth = o:taboption("advanced", ListValue, "no_auto_reauth", translate("Disable auto reauth")) -no_auto_reauth.description = translate("Disable auto reauth after offline. [default: True]") -no_auto_reauth:value(0, translate("False")) -no_auto_reauth:value(1, translate("True")) -no_auto_reauth.default = 1 - -proxy_lan_iface = o:taboption("advanced", Value, "proxy_lan_iface", translate("Proxy LAN's name")) -proxy_lan_iface.description = translate("Name of LAN interface when use proxy auth. [default: None]") -proxy_lan_iface.default = "" - -auth_round = o:taboption("advanced", Value, "auth_round", translate("Auth times")) -auth_round.description = translate("Number of times required for auth. [default: 1]") -auth_round.default = "1" - -max_retries = o:taboption("advanced", Value, "max_retries", translate("Max timeout")) -max_retries.description = translate("Maximum retry time after timeout. [default: 3]") -max_retries.default = "3" - -pid_file = o:taboption("advanced", Value, "pid_file", translate("PID file")) -pid_file.description = translate("Path of PID file. (Set 'None' to disable) [default: /var/run/minieap.pid]") -pid_file:value("/var/run/minieap.pid") -pid_file.default = "/var/run/minieap.pid" - -if_impl = o:taboption("advanced", ListValue, "if_impl", translate("Network Module")) -if_impl.description = translate("Network module for send and recv packages (openwrt support sockraw only)") -if_impl:value("sockraw") -if_impl.default = "sockraw" - -plugins = o:taboption("plugins", DynamicList, "module", translate("Plugins list")) -plugins.description = translate("Packets flow through these plug-ins in sequence. Pay attention to the order in the environment where the package plug-in is modified") -plugins:value("printer", translate("printer: Print length of packets")) -plugins:value("rjv3", translate('rjv3: Ruijie 802.11X. Support V3 verification algorithm')) - -heartbeat = o:taboption("ruijie", Value, "heartbeat", translate("Heartbeat interval")) -heartbeat.description = translate("Interval for sending Heartbeat packets (seconds) [Default: 60]") -heartbeat.default = "60" - -eap_bcast_addr = o:taboption("ruijie", ListValue, "eap_bcast_addr", translate("Broadcast address")) -eap_bcast_addr.description = translate("Broadcast address type when searching for servers [Default: Standard]") -eap_bcast_addr:value(0, translate("Standard")) -eap_bcast_addr:value(1, translate("Ruijie private")) -eap_bcast_addr.default = 0 - -dhcp_type = o:taboption("ruijie", ListValue, "dhcp_type", translate("DhcpMode")) -dhcp_type.description = translate("DHCP method [Default: After certification]") -dhcp_type:value(0, translate("None")) -dhcp_type:value(1, translate("Secondary authentication")) -dhcp_type:value(2, translate("Before certification")) -dhcp_type:value(3, translate("After certification")) -dhcp_type.default = 3 - -dhcp_script = o:taboption("ruijie", Value, "dhcp_script", translate("DhcpScript")) -dhcp_script.description = translate("DHCP script [Default: None]") -dhcp_script.default = "" - -service = o:taboption("ruijie", Value, "service", translate("Service")) -service.description = translate("Service From Ruijie Server [Default: internet]") -service.default = "internet" - -version_str = o:taboption("ruijie", Value, "version_str", translate("Version String")) -version_str.description = translate("Custom version [Default: RG-SU For Linux V1.0]") -version_str:value("RG-SU For Linux V1.0") -version_str.default = "RG-SU For Linux V1.0" - -fake_dns1 = o:taboption("ruijie", Value, "fake_dns1", translate("Main DNS server")) -fake_dns1.description = translate("Custom main DNS server [Default: FromSystem]") - -fake_dns2 = o:taboption("ruijie", Value, "fake_dns2", translate("Second DNS server")) -fake_dns2.description = translate("Custom second DNS server [Default: FromSystem]") - -fake_serial = o:taboption("ruijie", Value, "fake_serial", translate("Disk serial")) -fake_serial.description = translate("Custom disk serial [Default: From /etc/mtab]") - -max_dhcp_count = o:taboption("ruijie", Value, "max_dhcp_count", translate("DHCP try times")) -max_dhcp_count.description = translate("DHCP try times [Default: 3]") -max_dhcp_count.default = "3" - -rj_option = o:taboption("ruijie", DynamicList, "rj_option", translate("Custom EAP Options")) -rj_option.description = translate("Format <type>:<value>[:r]. Add a option type: <type>, value: <value>. :r for replace") - -if nixio.fs.mkdir("/etc/minieap.conf.d") == true then - nixio.fs.symlink("/etc/minieap.conf.d/minieap.conf.utf8", "/etc/minieap.conf") -end - -local apply = luci.http.formvalue("cbi.apply") -if apply then - luci.sys.call("minieap-conver | sort > /etc/minieap.conf.d/minieap.conf.utf8") - io.popen("/etc/init.d/minieap restart") -end - -return m diff --git a/luci-app-minieap/luasrc/model/cbi/minieap/log.lua b/luci-app-minieap/luasrc/model/cbi/minieap/log.lua deleted file mode 100644 index c45c1d81..00000000 --- a/luci-app-minieap/luasrc/model/cbi/minieap/log.lua +++ /dev/null @@ -1,23 +0,0 @@ -local fs = require "nixio.fs" - -local f = SimpleForm("minieap", - translate("minieap LOG"), - translate("Log file:/var/log/minieap.log")) - -local o = f:field(Value, "minieap_log") - -o.template = "cbi/tvalue" -o.rows = 32 - -function o.cfgvalue(self, section) - return fs.readfile("/var/log/minieap.log") -end - -function o.write(self, section, value) - require("luci.sys").call('cat /dev/null > /var/log/minieap.log 2>/dev/null') -end - -f.submit = translate("Clear log") -f.reset = false - -return f diff --git a/luci-app-minieap/po/zh-cn b/luci-app-minieap/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-minieap/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-minieap/po/zh_Hans/minieap.po b/luci-app-minieap/po/zh_Hans/minieap.po deleted file mode 100644 index e365eade..00000000 --- a/luci-app-minieap/po/zh_Hans/minieap.po +++ /dev/null @@ -1,227 +0,0 @@ -msgid "minieap Settings" -msgstr "minieap 设置" - -msgid "minieap LOG" -msgstr "minieap 日志" - -msgid "Log file:/var/log/minieap.log" -msgstr "日志文件: /var/log/minieap.log" - -msgid "RUNNING" -msgstr "运行中" - -msgid "NOT RUNNING" -msgstr "未运行" - -msgid "Pinghost not set" -msgstr "没有设置Ping主机" - -msgid "ONLINE" -msgstr "能访问互联网" - -msgid "NOT ONLINE" -msgstr "不能访问互联网" - -msgid "Configure minieap 802.11x." -msgstr "配置minieap 802.11x验证。" - -msgid "Network Status" -msgstr "网络状态" - -msgid "Settings" -msgstr "设置" - -msgid "Normal Settings" -msgstr "常规设置" - -msgid "Plugins List" -msgstr "插件列表" - -msgid "Ruijie EAP Settings" -msgstr "锐捷认证设置" - -msgid "The username given to you by your network administrator" -msgstr "您的用户名(或管理员分配的用户名)" - -msgid "The password you set or given to you by your network administrator" -msgstr "您的密码(或管理员分配的密码)" - -msgid "Physical interface of WAN" -msgstr "WAN口的物理接口" - -msgid "PingHost" -msgstr "Ping主机" - -msgid "Ping host for drop detection, 0.0.0.0 to turn off this feature." -msgstr "Ping主机,用于掉线检测,0.0.0.0表示关闭该功能" - -msgid "Packets flow through these plug-ins in sequence. Pay attention to the order in the environment where the package plug-in is modified" -msgstr "数据包会按顺序流经这些插件。在有修改数据包插件的环境中请注意顺序" - -msgid "printer: Print length of packets" -msgstr "printer:打印流入流出数据包的大小" - -msgid "rjv3: Ruijie 802.11X. Support V3 verification algorithm" -msgstr "rjv3:锐捷认证,支持V3算法" - -msgid "Heartbeat interval" -msgstr "心跳间隔" - -msgid "Interval for sending Heartbeat packets (seconds) [Default: 60]" -msgstr "发送心跳包的间隔(秒)[默认:60]" - -msgid "Broadcast address" -msgstr "广播地址类型" - -msgid "Broadcast address type when searching for servers [Default: Standard]" -msgstr "寻找服务器时的广播地址类型 [默认:标准]" - -msgid "Standard" -msgstr "标准" - -msgid "Ruijie private" -msgstr "锐捷私有" - -msgid "DhcpMode" -msgstr "DHCP方式" - -msgid "DHCP method [Default: After certification]" -msgstr "DHCP方式 [默认:认证后]" - -msgid "None" -msgstr "无" - -msgid "Secondary authentication" -msgstr "二次认证" - -msgid "Before certification" -msgstr "认证前" - -msgid "After certification" -msgstr "认证后" - -msgid "DhcpScript" -msgstr "DHCP脚本" - -msgid "DHCP script [Default: None]" -msgstr "DHCP脚本 [默认:无]" - -msgid "Service" -msgstr "服务" - -msgid "Service From Ruijie Server [Default: internet]" -msgstr "锐捷认证服务器上配置的用户服务" - -msgid "Version String" -msgstr "版本信息" - -msgid "Custom version [Default: RG-SU For Linux V1.0]" -msgstr "自定义版本信息 [默认:RG-SU For Linux V1.0]" - -msgid "Main DNS server" -msgstr "主DNS服务器" - -msgid "Custom main DNS server [Default: FromSystem]" -msgstr "自定义主DNS服务器 [默认:自动获取]" - -msgid "Second DNS server" -msgstr "从DNS服务器" - -msgid "Custom second DNS server [Default: FromSystem]" -msgstr "自定义从DNS服务器 [默认:自动获取]" - -msgid "Disk serial" -msgstr "磁盘序列号" - -msgid "Custom disk serial [Default: From /etc/mtab]" -msgstr "自定义磁盘序列号 [默认:自动获取]" - -msgid "DHCP try times" -msgstr "DHCP尝试次数" - -msgid "DHCP try times [Default: 3]" -msgstr "二次认证的DHCP尝试次数 [默认:3]" - -msgid "Custom EAP Options" -msgstr "自定义EAP字段" - -msgid "Format <type>:<value>[:r]. Add a option type: <type>, value: <value>. :r for replace" -msgstr "格式: <type>:<value>[:r]。 不带r为增加字段,带r为替换字段" - -msgid "Configfile encoding" -msgstr "配置文件编码" - -msgid "Auth Timeout" -msgstr "认证超时" - -msgid "802.11X auth timeout (in second). [default: 5]" -msgstr "单个认证阶段的超时时间 [默认:5]" - -msgid "Wait after failed" -msgstr "认证失败等待" - -msgid "Wait time between failed and next time (in second). [default: 30]" -msgstr "认证失败后重新认证前的等待时间[默认:30]" - -msgid "Max fail" -msgstr "最大失败次数" - -msgid "Maximum allowed number of failures. [default: 3]" -msgstr "最大允许认证失败次数 [默认:3]" - -msgid "Disable auto reauth" -msgstr "禁止自动重连" - -msgid "Disable auto reauth after offline. [default: True]" -msgstr "认证掉线后不允许自动重连 [默认:是]" - -msgid "False" -msgstr "否" - -msgid "True" -msgstr "是" - -msgid "Daemon mode" -msgstr "运行模式" - -msgid "Proxy LAN's name" -msgstr "代理LAN口名称" - -msgid "Name of LAN interface when use proxy auth. [default: None]" -msgstr "代理认证时的 LAN 网络界面名 [默认:无]" - -msgid "Auth times" -msgstr "认证次数" - -msgid "Number of times required for auth. [default: 1]" -msgstr "需要认证的次数 [默认:1]" - -msgid "Max timeout" -msgstr "最大超时重试" - -msgid "Maximum retry time after timeout. [default: 3]" -msgstr "最大超时重试的次数 [默认:3]" - -msgid "PID file" -msgstr "PID文件" - -msgid "Path of PID file. (Set 'None' to disable) [default: /var/run/minieap.pid]" -msgstr "PID 文件路径,设为none可禁用 [默认:/var/run/minieap.pid]" - -msgid "Network Module" -msgstr "网络操作模块" - -msgid "Network module for send and recv packages (openwrt support sockraw only)" -msgstr "选择此网络操作模块(openwrt只支持sockraw)" - -msgid "Ping intval" -msgstr "Ping间隔" - -msgid "Interval of each ping. (in second) [default: 30]" -msgstr "Ping Ping主机的间隔(秒) [默认:30]" - -msgid "Offline command" -msgstr "掉线执行命令" - -msgid "Run Command when ping failed. [default: minieap -k 1]" -msgstr "Ping 检测到掉线后执行的命令 [默认: minieap -k 1]" diff --git a/luci-app-minieap/root/etc/config/minieap b/luci-app-minieap/root/etc/config/minieap deleted file mode 100644 index cf4cdbad..00000000 --- a/luci-app-minieap/root/etc/config/minieap +++ /dev/null @@ -1,18 +0,0 @@ -config minieap - option pinghost '0.0.0.0' - option pingintval '30' - option pingcommand 'minieap -k 1' - option stage_timeout '5' - option wait_after_fail '30' - option max_fail '3' - option no_auto_reauth '1' - option auth_round '1' - option max_retries '3' - option pid_file '/var/run/minieap.pid' - option if_impl 'sockraw' - option heartbeat '60' - option eap_bcast_addr '0' - option dhcp_type '3' - option service 'internet' - option version_str 'RG-SU For Linux V1.0' - option max_dhcp_count '3' diff --git a/luci-app-minieap/root/etc/init.d/minieap b/luci-app-minieap/root/etc/init.d/minieap deleted file mode 100755 index fb896a62..00000000 --- a/luci-app-minieap/root/etc/init.d/minieap +++ /dev/null @@ -1,70 +0,0 @@ -#!/bin/sh /etc/rc.common -START=93 - -run_minieap() -{ - kill $(cat /var/log/minieap-ping.pid 2>/dev/null) 2>/dev/null - - local enable - local username - local password - local nic - local pinghost - config_get_bool enable $1 enable - config_get username $1 username - config_get password $1 password - config_get nic $1 nic - config_get pinghost $1 pinghost - - if [ $enable ] && [ $username ] && [ $password ] && [ $nic ]; then - if [ $pinghost ]; then - /bin/ash -c "/usr/sbin/minieap-ping &" - fi - /bin/ash -c "minieap -b3" - else - /bin/ash -c "minieap -k" - fi -} - -restart_minieap() -{ - kill $(cat /var/log/minieap-ping.pid 2>/dev/null) 2>/dev/null - - local enable - local username - local password - local nic - local pinghost - config_get_bool enable $1 enable - config_get username $1 username - config_get password $1 password - config_get nic $1 nic - config_get pinghost $1 pinghost - - if [ $enable ] && [ $username ] && [ $password ] && [ $nic ]; then - if [ $pinghost ]; then - /bin/ash -c "/usr/sbin/minieap-ping &" - fi - /bin/ash -c "minieap -k 1" - else - /bin/ash -c "minieap -k" - fi -} - -start() -{ - config_load minieap - config_foreach run_minieap minieap -} - -stop() -{ - kill $(cat /var/log/minieap-ping.pid 2>/dev/null) 2>/dev/null - /bin/ash -c "minieap -k" -} - -restart() -{ - config_load minieap - config_foreach restart_minieap minieap -} diff --git a/luci-app-minieap/root/etc/uci-defaults/luci-minieap b/luci-app-minieap/root/etc/uci-defaults/luci-minieap deleted file mode 100644 index bb3c1d89..00000000 --- a/luci-app-minieap/root/etc/uci-defaults/luci-minieap +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -[ ! -f "/usr/share/ucitrack/luci-app-minieap.json" ] && { - cat > /usr/share/ucitrack/luci-app-minieap.json << EEOF -{ - "config": "minieap", - "init": "minieap" -} -EEOF -} - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@minieap[-1] - add ucitrack minieap - set ucitrack.@minieap[-1].init=minieap - commit ucitrack -EOF - -rm -rf /tmp/luci-* -exit 0 diff --git a/luci-app-minieap/root/usr/sbin/minieap-conver b/luci-app-minieap/root/usr/sbin/minieap-conver deleted file mode 100755 index 2b2cc35c..00000000 --- a/luci-app-minieap/root/usr/sbin/minieap-conver +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -default_config='''daemonize=3 -''' - -echo $default_config -config_keys=$(uci show minieap | cut -d "." -f3- | awk -F "=" '{if ($0 != "") print $1}') -for key in $config_keys -do - if [[ "$key" != "pinghost" ]] && [[ "$key" != "pingintval" ]]; then - echo ${key//_/-}=$(uci get minieap.@minieap[0].$key) - fi -done diff --git a/luci-app-minieap/root/usr/sbin/minieap-ping b/luci-app-minieap/root/usr/sbin/minieap-ping deleted file mode 100755 index fb56f290..00000000 --- a/luci-app-minieap/root/usr/sbin/minieap-ping +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/sh - -kill $(cat /var/log/minieap-ping.pid 2>/dev/null) 2>/dev/null - -echo $$ > /var/log/minieap-ping.pid - -ping_host=$(uci get minieap.@minieap[0].pinghost) -ping_intval=$(uci get minieap.@minieap[0].pingintval) -ping_command=$(uci get minieap.@minieap[0].pingcommand) -ipint=$(echo $ping_host | awk -F "." '{print $1*2**8**3 + $2*2**8**2 + $3*2**8 + $4}') -if [[ $ipint -le 0 ]] || [[ $ipint -ge 4294967295 ]]; then - exit -fi - -if [ ! -z $ping_host ]; then - while true - do - ping -c1 -w1 $ping_host > /dev/null 2>&1 - if [ $? -ne 0 ]; then - $ping_command - fi - sleep $ping_intval - done -fi diff --git a/luci-app-minieap/root/usr/share/rpcd/acl.d/luci-app-minieap.json b/luci-app-minieap/root/usr/share/rpcd/acl.d/luci-app-minieap.json deleted file mode 100644 index f897478a..00000000 --- a/luci-app-minieap/root/usr/share/rpcd/acl.d/luci-app-minieap.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "luci-app-minieap": { - "description": "Grant UCI access for luci-app-minieap", - "read": { - "uci": [ "minieap" ] - }, - "write": { - "uci": [ "minieap" ] - } - } -} diff --git a/luci-app-minieap/root/usr/share/ucitrack/luci-app-minieap.json b/luci-app-minieap/root/usr/share/ucitrack/luci-app-minieap.json deleted file mode 100644 index 8bf0517a..00000000 --- a/luci-app-minieap/root/usr/share/ucitrack/luci-app-minieap.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "config": "minieap", - "init": "minieap" -} diff --git a/luci-app-mwan3helper/Makefile b/luci-app-mwan3helper/Makefile index f6149397..710f0713 100644 --- a/luci-app-mwan3helper/Makefile +++ b/luci-app-mwan3helper/Makefile @@ -8,11 +8,11 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI support for MWAN3 Helper LUCI_DEPENDS:=+luci-app-mwan3 +pdnsd-alt +dnsmasq-full +ipset LUCI_PKGARCH:=all + +PKG_NAME:=luci-app-mwan3helper PKG_VERSION:=1 -PKG_RELEASE:=1 +PKG_RELEASE:=2 include $(TOPDIR)/feeds/luci/luci.mk # call BuildPackage - OpenWrt buildroot signature - - diff --git a/luci-app-mwan3helper/luasrc/controller/mwan3helper.lua b/luci-app-mwan3helper/luasrc/controller/mwan3helper.lua index 56cb5e7c..ad9fffab 100644 --- a/luci-app-mwan3helper/luasrc/controller/mwan3helper.lua +++ b/luci-app-mwan3helper/luasrc/controller/mwan3helper.lua @@ -1,4 +1,3 @@ - -- Licensed to the public under the GNU General Public License v3. module("luci.controller.mwan3helper", package.seeall) @@ -8,21 +7,15 @@ function index() return end - - local page = entry({"admin", "services", "mwan3helper"},alias("admin", "services", "mwan3helper", "client"),_("MWAN3 Helper"), 300) - page.dependent = true - page.acl_depends = { "luci-app-mwan3helper" } - entry({"admin", "services", "mwan3helper", "client"},cbi("mwan3helper/client"),_("Settings"), 10).leaf = true - - entry({"admin", "services", "mwan3helper", "lists"},cbi("mwan3helper/list"),_("IPSet Lists"), 20).leaf = true - - entry({"admin","services","mwan3helper","status"},call("act_status")).leaf=true - + entry({"admin", "services", "mwan3helper"}, alias("admin", "services", "mwan3helper", "client"), _("MWAN3 Helper"), 300).dependent = true + entry({"admin", "services", "mwan3helper", "client"}, cbi("mwan3helper/client"), _("Settings"), 10).leaf = true + entry({"admin", "services", "mwan3helper", "lists"}, cbi("mwan3helper/list"), _("IPSet Lists"), 20).leaf = true + entry({"admin", "services", "mwan3helper", "status"}, call("act_status")).leaf = true end function act_status() - local e={} - e.running=luci.sys.call("pgrep mwan3dns >/dev/null")==0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) + local e = {} + e.running = luci.sys.call("pgrep mwan3dns >/dev/null") == 0 + luci.http.prepare_content("application/json") + luci.http.write_json(e) end diff --git a/luci-app-mwan3helper/luasrc/model/cbi/mwan3helper/client.lua b/luci-app-mwan3helper/luasrc/model/cbi/mwan3helper/client.lua index 466b28c7..876ab915 100644 --- a/luci-app-mwan3helper/luasrc/model/cbi/mwan3helper/client.lua +++ b/luci-app-mwan3helper/luasrc/model/cbi/mwan3helper/client.lua @@ -1,5 +1,3 @@ - - m = Map("mwan3helper") m.title = translate("MWAN3 Helper") m.description = translate("MWAN3 Helper generate IPSets") @@ -11,8 +9,8 @@ s.addremove = false s.anonymous = true o = s:option(Flag, "enabled", translate("Enable GFW IPSet")) -o.rmempty = false o.description = translate("启用 DNS 防污染并打开GFW IPSet(与SSR的GFW列表模式不能同时开启)") +o.rmempty = false o = s:option(ListValue, "dns", translate("Anti-pollution DNS Server")) o:value("208.67.222.222:443", translate("OpenDNS (208.67.222.222)")) diff --git a/luci-app-mwan3helper/luasrc/model/cbi/mwan3helper/list.lua b/luci-app-mwan3helper/luasrc/model/cbi/mwan3helper/list.lua index c908ff19..2f845aed 100644 --- a/luci-app-mwan3helper/luasrc/model/cbi/mwan3helper/list.lua +++ b/luci-app-mwan3helper/luasrc/model/cbi/mwan3helper/list.lua @@ -1,5 +1,3 @@ - - m = Map("mwan3helper") m.title = translate("MWAN3 IPSets") diff --git a/luci-app-mwan3helper/luasrc/view/mwan3helper/mwan3helper_status.htm b/luci-app-mwan3helper/luasrc/view/mwan3helper/mwan3helper_status.htm index 44c6a393..048a8814 100644 --- a/luci-app-mwan3helper/luasrc/view/mwan3helper/mwan3helper_status.htm +++ b/luci-app-mwan3helper/luasrc/view/mwan3helper/mwan3helper_status.htm @@ -19,4 +19,4 @@ XHR.poll(3, '<%=url([[admin]], [[services]], [[mwan3helper]], [[status]])%>', nu

<%:Collecting data...%>

- \ No newline at end of file + diff --git a/luci-app-mwan3helper/po/zh-cn b/luci-app-mwan3helper/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-mwan3helper/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-mwan3helper/po/zh_Hans/mwan3helper.po b/luci-app-mwan3helper/po/zh-cn/mwan3helper.po similarity index 96% rename from luci-app-mwan3helper/po/zh_Hans/mwan3helper.po rename to luci-app-mwan3helper/po/zh-cn/mwan3helper.po index ed36fb5c..ff418003 100644 --- a/luci-app-mwan3helper/po/zh_Hans/mwan3helper.po +++ b/luci-app-mwan3helper/po/zh-cn/mwan3helper.po @@ -2,7 +2,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"Language: zh_Hans\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" diff --git a/luci-app-mwan3helper/po/zh_Hans b/luci-app-mwan3helper/po/zh_Hans new file mode 120000 index 00000000..41451e4a --- /dev/null +++ b/luci-app-mwan3helper/po/zh_Hans @@ -0,0 +1 @@ +zh-cn \ No newline at end of file diff --git a/luci-app-mwan3helper/root/etc/init.d/mwan3helper b/luci-app-mwan3helper/root/etc/init.d/mwan3helper index 6247ec23..dd71017b 100755 --- a/luci-app-mwan3helper/root/etc/init.d/mwan3helper +++ b/luci-app-mwan3helper/root/etc/init.d/mwan3helper @@ -19,19 +19,19 @@ start_pdnsd() { cat > /var/etc/mwan3dns.conf < ---微信公众号【WiFi物联网】 - -module("luci.controller.mwol", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/mwol") then - return - end - - local page = entry({"admin", "services", "mwol"}, cbi("mwol"), _("Mwol")) - page.dependent = true - page.acl_depends = { "luci-app-mwol" } -end diff --git a/luci-app-mwol/luasrc/model/cbi/mwol.lua b/luci-app-mwol/luasrc/model/cbi/mwol.lua deleted file mode 100644 index 7bca0b8a..00000000 --- a/luci-app-mwol/luasrc/model/cbi/mwol.lua +++ /dev/null @@ -1,141 +0,0 @@ ---Copyright (C) 2019 mleaf ---微信公众号【WiFi物联网】 - -local NXFS = require "nixio.fs" -local SYS = require "luci.sys" -local HTTP = require "luci.http" -local DISP = require "luci.dispatcher" -local Status, subTopic, pubTopic -local m, s -local e, mwol -local encryption -local sys = require "luci.sys" - -local mac = luci.sys.exec("uci -q get mwol.mwol_conf.id") - -m = Map("mwol", translate("Mqtt wake on lan")) -m.description = translate("请关注微信公众号【WiFi物联网】获取更多信息: \【WiFi物联网】") - -if SYS.call("pidof mwol >/dev/null") == 0 then - Status = translate("Mwol正在运行...") -else - Status = translate("Mwol未运行...") -end - -subTopic = string.format("Mwol订阅消息主题: /mwol/pub/%s", mac) -pubTopic = string.format("Mwol发布消息主题: /mwol/sub/%s", mac) - --- --- LoRa Gateway config for gateway_conf --- -mwol = m:section(TypedSection, "mwol") ---mwol.addremove = false -mwol.anonymous = true -mwol.description = translate(string.format("%s

%s

%s", Status, subTopic, pubTopic)) - -mwol:tab("general", translate("General Settings")) -mwol:tab("encryptionSettings", translate("Encryption Settings")) -mwol:tab("ssl", translate("SSL Settings")) - --- --- MQTT general --- -e = mwol:taboption("general", Flag, "enable") -e.title = translate("Enable") -e.default = 0 -e.rmempty = false - -e = mwol:taboption("general", Value, "hostname") -e.title = translate("MQTT Server") - -e = mwol:taboption("general", Value, "port") -e.title = translate("MQTT Port") - -host = mwol:taboption("general", Value, "presetmac", translate("Host to wake up")) -host.description = translate("Choose the host to wake up or enter a custom MAC address to use") -host.title = translate("Preset Mac") -sys.net.mac_hints(function(mac, name) - host:value(mac, "%s (%s)" %{ mac, name }) -end) - -e = mwol:taboption("general", Value, "id") -e.default = mac -e.rmempty = false; -e.title = translate("MQTT Topic Id") - --- --- MQTT Using encryption --- -encryption_enable = mwol:taboption("encryptionSettings", ListValue, "encryptionenable", translate("Enable")) -encryption_enable.optional = false; -encryption_enable.rmempty = false; -encryption_enable.default = 0 -encryption_enable.datatype = "uinteger" -encryption_enable:value(1, translate("True")) -encryption_enable:value(0, translate("False")) - --- --- MQTT username --- -encryption_username = mwol:taboption("encryptionSettings", Value, "username", translate("MQTT UserName")) -encryption_username.optional = true; -encryption_username.rmempty = true; -encryption_username.default = "mleaf" -encryption_username.datatype = "string" -encryption_username:depends("encryptionenable", "1") - --- --- MQTT password --- -encryption_password = mwol:taboption("encryptionSettings", Value, "password", translate("MQTT Password")) -encryption_password.optional = true; -encryption_password.rmempty = true; -encryption_password.default = "www.mleaf.org" -encryption_password.datatype = "string" -encryption_password:depends("encryptionenable", "1") - --- --- MQTT Using SSL --- -ssl_enable = mwol:taboption("ssl", ListValue, "sslenable", translate("Enable")) -ssl_enable.optional = false; -ssl_enable.rmempty = false; -ssl_enable.default = 0 -ssl_enable.datatype = "uinteger" -ssl_enable:value(1, translate("True")) -ssl_enable:value(0, translate("False")) - --- --- MQTT cafile --- -cafile = mwol:taboption("ssl", Value, "cafile", translate("ca")) -cafile.description = translate("Edit the ca file path.") -cafile.optional = true; -cafile.rmempty = true; -cafile.default = false -cafile.datatype = "string" -cafile:depends("sslenable", "1") - --- --- MQTT crtfile --- -crtfile = mwol:taboption("ssl", Value, "crtfile", translate("crt")) -crtfile.description = translate("Edit the crt file path.") -crtfile.optional = true; -crtfile.rmempty = true; -crtfile.default = false -crtfile.datatype = "string" -crtfile:depends("sslenable", "1") - --- --- MQTT keyfile --- -keyfile = mwol:taboption("ssl", Value, "keyfile", translate("key")) -keyfile.description = translate("Edit the key file path.") -keyfile.optional = true; -keyfile.rmempty = true; -keyfile.default = false -keyfile.datatype = "string" -keyfile:depends("sslenable", "1") - -return m diff --git a/luci-app-mwol/po/zh-cn b/luci-app-mwol/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-mwol/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-mwol/po/zh_Hans/mwol.po b/luci-app-mwol/po/zh_Hans/mwol.po deleted file mode 100644 index 820eea7b..00000000 --- a/luci-app-mwol/po/zh_Hans/mwol.po +++ /dev/null @@ -1,54 +0,0 @@ - -msgid "Mwol Plus is Running" -msgstr "Mwol正在运行" - -msgid "Mwol Plus is Not Running" -msgstr "Mwol未运行" - -msgid "Mwol Sub Topic:" -msgstr "Mwol订阅消息主题:" - -msgid "Mwol Pub Topic:" -msgstr "Mwol发布消息主题:" - -msgid "General Settings" -msgstr "通用设置" - -msgid "Encryption Settings" -msgstr "加密设定" - -msgid "SSL Settings" -msgstr "SSL证书设置" - -msgid "Enable" -msgstr "开启" - -msgid "MQTT Server" -msgstr "MQTT服务器" - -msgid "MQTT Port" -msgstr "MQTT端口" - -msgid "Preset Mac" -msgstr "预设MAC地址" - -msgid "Choose the host to wake up or enter a custom MAC address to use" -msgstr "选择一个需要唤醒的主机或自定义唤醒主机的mac地址" - -msgid "MQTT Topic Id" -msgstr "MQTT主题ID" - -msgid "MQTT UserName" -msgstr "MQTT用户名" - -msgid "MQTT Password" -msgstr "MQTT密码" - -msgid "Edit the ca file path." -msgstr "编辑CA路径。" - -msgid "Edit the crt file path." -msgstr "编辑CRT路径。" - -msgid "Edit the key file path." -msgstr "编辑KEY路径。" diff --git a/luci-app-mwol/root/etc/uci-defaults/40_luci-mwol b/luci-app-mwol/root/etc/uci-defaults/40_luci-mwol deleted file mode 100644 index 7668d687..00000000 --- a/luci-app-mwol/root/etc/uci-defaults/40_luci-mwol +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -[ ! -f "/usr/share/ucitrack/luci-app-mwol.json" ] && { - cat > /usr/share/ucitrack/luci-app-mwol.json << EEOF -{ - "config": "mwol", - "init": "mwol" -} -EEOF -} - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@mwol[-1] - add ucitrack mwol - set ucitrack.@mwol[-1].init=mwol - commit ucitrack -EOF - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/luci-app-mwol/root/usr/share/rpcd/acl.d/luci-app-mwol.json b/luci-app-mwol/root/usr/share/rpcd/acl.d/luci-app-mwol.json deleted file mode 100644 index a3d3e54a..00000000 --- a/luci-app-mwol/root/usr/share/rpcd/acl.d/luci-app-mwol.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "luci-app-mwol": { - "description": "Grant UCI access for luci-app-mwol", - "read": { - "uci": [ "mwol" ] - }, - "write": { - "uci": [ "mwol" ] - } - } -} diff --git a/luci-app-mwol/Makefile b/luci-app-nft-qos/Makefile similarity index 58% rename from luci-app-mwol/Makefile rename to luci-app-nft-qos/Makefile index 3fdf0db7..ae17a188 100644 --- a/luci-app-mwol/Makefile +++ b/luci-app-nft-qos/Makefile @@ -1,16 +1,17 @@ # -# Copyright (C) 2019 mleaf -# 微信公众号【WiFi物联网】 +# Copyright (C) 2008-2014 The LuCI Team # # This is free software, licensed under the Apache License, Version 2.0 . # include $(TOPDIR)/rules.mk -LUCI_TITLE:=LuCI Support for Mwol -LUCI_DEPENDS:=+mwol +LUCI_TITLE:=Qos over Nftables +LUCI_DEPENDS:=+nft-qos LUCI_PKGARCH:=all -PKG_VERSION:=1.0 + +PKG_NAME:=luci-app-nft-qos +PKG_VERSION:=1 PKG_RELEASE:=1 include $(TOPDIR)/feeds/luci/luci.mk diff --git a/luci-app-nft-qos/luasrc/controller/nft-qos.lua b/luci-app-nft-qos/luasrc/controller/nft-qos.lua new file mode 100644 index 00000000..2fb6e102 --- /dev/null +++ b/luci-app-nft-qos/luasrc/controller/nft-qos.lua @@ -0,0 +1,52 @@ +-- Copyright 2018 Rosy Song +-- Licensed to the public under the Apache License 2.0. + +module("luci.controller.nft-qos", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/nft-qos") then + return + end + + entry({"admin", "status", "realtime", "rate"}, template("nft-qos/rate"), _("Rate"), 5).leaf = true + entry({"admin", "status", "realtime", "rate_status"}, call("action_rate")).leaf = true + entry({"admin", "services", "nft-qos"}, cbi("nft-qos/nft-qos"), _("Qos over Nftables"), 60) +end + +function _action_rate(rv, n) + local c = nixio.fs.access("/proc/net/ipv6_route") and + io.popen("nft list chain inet nft-qos-monitor " .. n .. " 2>/dev/null") or + io.popen("nft list chain ip nft-qos-monitor " .. n .. " 2>/dev/null") + + if c then + for l in c:lines() do + local _, i, p, b = l:match( + '^%s+ip ([^%s]+) ([^%s]+) counter packets (%d+) bytes (%d+)' + ) + if i and p and b then + -- handle expression + rv[#rv + 1] = { + rule = { + family = "inet", + table = "nft-qos-monitor", + chain = n, + handle = 0, + expr = { + { match = { right = i } }, + { counter = { packets = p, bytes = b } } + } + } + } + end + end + c:close() + end +end + +function action_rate() + luci.http.prepare_content("application/json") + local data = { nftables = {} } + _action_rate(data.nftables, "upload") + _action_rate(data.nftables, "download") + luci.http.write_json(data) +end diff --git a/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua b/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua new file mode 100644 index 00000000..61a6d76a --- /dev/null +++ b/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua @@ -0,0 +1,229 @@ +-- Copyright 2018 Rosy Song +-- Licensed to the public under the Apache License 2.0. + +local uci = require("luci.model.uci").cursor() +local wa = require("luci.tools.webadmin") +local fs = require("nixio.fs") +local ipc = require("luci.ip") + +local def_rate_dl = uci:get("nft-qos", "default", "static_rate_dl") +local def_rate_ul = uci:get("nft-qos", "default", "static_rate_ul") +local def_unit_dl = uci:get("nft-qos", "default", "static_unit_dl") +local def_unit_ul = uci:get("nft-qos", "default", "static_unit_ul") + +local def_up = uci:get("nft-qos", "default", "dynamic_bw_up") +local def_down = uci:get("nft-qos", "default", "dynamic_bw_down") + +local limit_enable = uci:get("nft-qos", "default", "limit_enable") +local limit_type = uci:get("nft-qos", "default", "limit_type") +local enable_priority = uci:get("nft-qos", "default", "priority_enable") + +local has_ipv6 = fs.access("/proc/net/ipv6_route") + +m = Map("nft-qos", translate("Qos over Nftables")) + +-- +-- Taboptions +-- +s = m:section(TypedSection, "default", translate("NFT-QoS Settings")) +s.addremove = false +s.anonymous = true + +s:tab("limit", "Limit Rate") +s:tab("priority", "Traffic Priority") + +-- +-- Static +-- +o = s:taboption("limit", Flag, "limit_enable", translate("Limit Enable"), translate("Enable Limit Rate Feature")) +o.default = limit_enable or o.enabled +o.rmempty = false + +o = s:taboption("limit", ListValue, "limit_type", translate("Limit Type"), translate("Type of Limit Rate")) +o.default = limit_static or "static" +o:depends("limit_enable","1") +o:value("static", "Static") +o:value("dynamic", "Dynamic") + +o = s:taboption("limit", Value, "static_rate_dl", translate("Default Download Rate"), translate("Default value for download rate")) +o.datatype = "uinteger" +o.default = def_rate_dl or '50' +o:depends("limit_type","static") + +o = s:taboption("limit", ListValue, "static_unit_dl", translate("Default Download Unit"), translate("Default unit for download rate")) +o.default = def_unit_dl or "kbytes" +o:depends("limit_type","static") +o:value("bytes", "Bytes/s") +o:value("kbytes", "KBytes/s") +o:value("mbytes", "MBytes/s") + +o = s:taboption("limit", Value, "static_rate_ul", translate("Default Upload Rate"), translate("Default value for upload rate")) +o.datatype = "uinteger" +o.default = def_rate_ul or '50' +o:depends("limit_type","static") + +o = s:taboption("limit", ListValue, "static_unit_ul", translate("Default Upload Unit"), translate("Default unit for upload rate")) +o.default = def_unit_ul or "kbytes" +o:depends("limit_type","static") +o:value("bytes", "Bytes/s") +o:value("kbytes", "KBytes/s") +o:value("mbytes", "MBytes/s") + +-- +-- Dynamic +-- +o = s:taboption("limit", Value, "dynamic_bw_down", translate("Download Bandwidth (Mbps)"), translate("Default value for download bandwidth")) +o.default = def_up or '100' +o.datatype = "uinteger" +o:depends("limit_type","dynamic") + +o = s:taboption("limit", Value, "dynamic_bw_up", translate("Upload Bandwidth (Mbps)"), translate("Default value for upload bandwidth")) +o.default = def_down or '100' +o.datatype = "uinteger" +o:depends("limit_type","dynamic") + +o = s:taboption("limit", Value, "dynamic_cidr", translate("Target Network (IPv4/MASK)"), translate("Network to be apply, e.g. 192.168.1.0/24, 10.2.0.0/16, etc")) +o.datatype = "cidr4" +ipc.routes({ family = 4, type = 1 }, function(rt) o.default = rt.dest end) +o:depends("limit_type","dynamic") + +if has_ipv6 then + o = s:taboption("limit", Value, "dynamic_cidr6", translate("Target Network6 (IPv6/MASK)"), translate("Network to be apply, e.g. AAAA::BBBB/64, CCCC::1/128, etc")) + o.datatype = "cidr6" + o:depends("limit_type","dynamic") +end + +o = s:taboption("limit", DynamicList, "limit_whitelist", translate("White List for Limit Rate")) +o.datatype = "ipaddr" +o:depends("limit_enable","1") + +-- +-- Priority +-- +o = s:taboption("priority", Flag, "priority_enable", translate("Enable Traffic Priority"), translate("Enable this feature")) +o.default = enable_priority or o.enabled +o.rmempty = false + +o = s:taboption("priority", ListValue, "priority_netdev", translate("Default Network Interface"), translate("Network Interface for Traffic Shaping, e.g. br-lan, eth0.1, eth0, etc")) +o:depends("priority_enable", "1") +wa.cbi_add_networks(o) + +-- +-- Static Limit Rate - Download Rate +-- +if limit_enable == "1" and limit_type == "static" then + +x = m:section(TypedSection, "download", translate("Static QoS-Download Rate")) +x.anonymous = true +x.addremove = true +x.template = "cbi/tblsection" + +o = x:option(Value, "hostname", translate("Hostname")) +o.datatype = "hostname" +o.default = 'undefined' + +if has_ipv6 then + o = x:option(Value, "ipaddr", translate("IP Address(V4 / V6)")) +else + o = x:option(Value, "ipaddr", translate("IP Address(V4 Only)")) +end +o.datatype = "ipaddr" +if nixio.fs.access("/tmp/dhcp.leases") or nixio.fs.access("/var/dhcp6.leases") then + o.titleref = luci.dispatcher.build_url("admin", "status", "overview") +end + +o = x:option(Value, "macaddr", translate("MAC (optional)")) +o.rmempty = true +o.datatype = "macaddr" + +o = x:option(Value, "rate", translate("Rate")) +o.default = def_rate_dl or '50' +o.size = 4 +o.datatype = "uinteger" + +o = x:option(ListValue, "unit", translate("Unit")) +o.default = def_unit_dl or "kbytes" +o:value("bytes", "Bytes/s") +o:value("kbytes", "KBytes/s") +o:value("mbytes", "MBytes/s") + +-- +-- Static Limit Rate - Upload Rate +-- +y = m:section(TypedSection, "upload", translate("Static QoS-Upload Rate")) +y.anonymous = true +y.addremove = true +y.template = "cbi/tblsection" + +o = y:option(Value, "hostname", translate("Hostname")) +o.datatype = "hostname" +o.default = 'undefined' + +if has_ipv6 then + o = y:option(Value, "ipaddr", translate("IP Address(V4 / V6)")) +else + o = y:option(Value, "ipaddr", translate("IP Address(V4 Only)")) +end +o.datatype = "ipaddr" +if nixio.fs.access("/tmp/dhcp.leases") or nixio.fs.access("/var/dhcp6.leases") then + o.titleref = luci.dispatcher.build_url("admin", "status", "overview") +end + +o = y:option(Value, "macaddr", translate("MAC (optional)")) +o.rmempty = true +o.datatype = "macaddr" + +o = y:option(Value, "rate", translate("Rate")) +o.default = def_rate_ul or '50' +o.size = 4 +o.datatype = "uinteger" + +o = y:option(ListValue, "unit", translate("Unit")) +o.default = def_unit_ul or "kbytes" +o:value("bytes", "Bytes/s") +o:value("kbytes", "KBytes/s") +o:value("mbytes", "MBytes/s") + +end + +-- +-- Traffic Priority Settings +-- +if enable_priority == "1" then + +s = m:section(TypedSection, "priority", translate("Traffic Priority Settings")) +s.anonymous = true +s.addremove = true +s.template = "cbi/tblsection" + +o = s:option(ListValue, "protocol", translate("Protocol")) +o.default = "tcp" +o:value("tcp", "TCP") +o:value("udp", "UDP") +o:value("udplite", "UDP-Lite") +o:value("sctp", "SCTP") +o:value("dccp", "DCCP") + +o = s:option(ListValue, "priority", translate("Priority")) +o.default = "1" +o:value("-400", "1") +o:value("-300", "2") +o:value("-225", "3") +o:value("-200", "4") +o:value("-150", "5") +o:value("-100", "6") +o:value("0", "7") +o:value("50", "8") +o:value("100", "9") +o:value("225", "10") +o:value("300", "11") + +o = s:option(Value, "service", translate("Service"), translate("e.g. https, 23, (separator is comma)")) +o.default = '?' + +o = s:option(Value, "comment", translate("Comment")) +o.default = '?' + +end + +return m diff --git a/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm b/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm new file mode 100644 index 00000000..fbe19aba --- /dev/null +++ b/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm @@ -0,0 +1,187 @@ +<%# + Copyright 2018 Rosy Song + Licensed to the public under the Apache License 2.0. +-%> + +<%+header%> + + + +

<%:Realtime Rate%>

+ +
<%:This page gives an overview over currently download/upload rate.%>
+ +
+ <%:Realtime Download Rate%> +
+
+
+
<%:IP Address%>
+
<%:Download Rate%>
+
<%:Bytes Total%>
+
<%:Packets Total%>
+
+
+
+ <%:Collecting data...%> +
+
+
+
+
+ +
+ <%:Realtime Upload Rate%> +
+
+
+
<%:IP Address%>
+
<%:Upload Rate%>
+
<%:Bytes Total%>
+
<%:Packets Total%>
+
+
+
+ <%:Collecting data...%> +
+
+
+
+
+ +<%+footer%> diff --git a/luci-app-nft-qos/po/es/nft-qos.po b/luci-app-nft-qos/po/es/nft-qos.po new file mode 100644 index 00000000..4cdcb95f --- /dev/null +++ b/luci-app-nft-qos/po/es/nft-qos.po @@ -0,0 +1,245 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.2.1\n" +"Last-Translator: \n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" +"Language: es\n" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:136 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:155 +msgid "Bytes Total" +msgstr "Total de bytes" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:141 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:160 +msgid "Collecting data..." +msgstr "Recolectando datos..." + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:224 +msgid "Comment" +msgstr "Comentario" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:48 +msgid "Default Download Rate" +msgstr "Velocidad de descarga predeterminada" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:53 +msgid "Default Download Unit" +msgstr "Unidad de descarga predeterminada" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:107 +msgid "Default Network Interface" +msgstr "Interfaz de red predeterminada" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:60 +msgid "Default Upload Rate" +msgstr "Velocidad de carga predeterminada" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:65 +msgid "Default Upload Unit" +msgstr "Unidad de carga predeterminada" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:53 +msgid "Default unit for download rate" +msgstr "Unidad predeterminada para la velocidad de descarga" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:65 +msgid "Default unit for upload rate" +msgstr "Unidad predeterminada para la velocidad de carga" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:75 +msgid "Default value for download bandwidth" +msgstr "Valor predeterminado para el ancho de banda de descarga" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:48 +msgid "Default value for download rate" +msgstr "Valor predeterminado para la velocidad de descarga" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:80 +msgid "Default value for upload bandwidth" +msgstr "Valor predeterminado para el ancho de banda de carga" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:60 +msgid "Default value for upload rate" +msgstr "Valor predeterminado para la velocidad de carga" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:75 +msgid "Download Bandwidth (Mbps)" +msgstr "Ancho de banda de descarga (Mbps)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:135 +msgid "Download Rate" +msgstr "Velocidad de descarga" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:38 +msgid "Enable Limit Rate Feature" +msgstr "Habilitar función de límite de velocidad" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:103 +msgid "Enable Traffic Priority" +msgstr "Habilitar prioridad de tráfico" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:103 +msgid "Enable this feature" +msgstr "Habilitar esta característica" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:121 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:158 +msgid "Hostname" +msgstr "Nombre de host" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:134 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:153 +msgid "IP Address" +msgstr "Dirección IP" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:126 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:163 +msgid "IP Address(V4 / V6)" +msgstr "Dirección IP (v4/v6)" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:128 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:165 +msgid "IP Address(V4 Only)" +msgstr "Dirección IP (sólo v4)" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:38 +msgid "Limit Enable" +msgstr "Habilitar límite" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:42 +msgid "Limit Type" +msgstr "Tipo de límite" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:135 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:172 +msgid "MAC (optional)" +msgstr "MAC (opcional)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:48 +msgid "MB" +msgstr "MB" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:28 +msgid "NFT-QoS Settings" +msgstr "Configuración de NFT-QoS" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:107 +msgid "Network Interface for Traffic Shaping, e.g. br-lan, eth0.1, eth0, etc" +msgstr "" +"Interfaz de red para configuración de tráfico, por ejemplo, br-lan, eth0.1, " +"eth0, etc." + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:85 +msgid "Network to be apply, e.g. 192.168.1.0/24, 10.2.0.0/16, etc" +msgstr "Red a aplicar, por ejemplo. 192.168.1.0/24, 10.2.0.0/16, etc." + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:91 +msgid "Network to be apply, e.g. AAAA::BBBB/64, CCCC::1/128, etc" +msgstr "Red a aplicar, por ejemplo. AAAA::BBBB/64, CCCC::1/128, etc." + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:65 +msgid "No information available" +msgstr "No hay información disponible" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:137 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:156 +msgid "Packets Total" +msgstr "Paquetes totales" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:207 +msgid "Priority" +msgstr "Prioridad" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:199 +msgid "Protocol" +msgstr "Protocolo" + +#: applications/luci-app-nft-qos/luasrc/controller/nft-qos.lua:16 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:23 +msgid "Qos over Nftables" +msgstr "Qos sobre Nftables" + +#: applications/luci-app-nft-qos/luasrc/controller/nft-qos.lua:12 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:139 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:176 +msgid "Rate" +msgstr "Velocidad" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:130 +msgid "Realtime Download Rate" +msgstr "Velocidad de descarga en tiempo real" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:125 +msgid "Realtime Rate" +msgstr "Velocidad en tiempo real" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:149 +msgid "Realtime Upload Rate" +msgstr "Velocidad de carga en tiempo real" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:221 +msgid "Service" +msgstr "Servicio" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:116 +msgid "Static QoS-Download Rate" +msgstr "Velocidad de descarga de QoS estática" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:153 +msgid "Static QoS-Upload Rate" +msgstr "Velocidad de carga de QoS estática" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:85 +msgid "Target Network (IPv4/MASK)" +msgstr "Red de destino (IPv4 / MASK)" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:91 +msgid "Target Network6 (IPv6/MASK)" +msgstr "Red de destino 6 (IPv6/MÁSCARA)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:127 +msgid "This page gives an overview over currently download/upload rate." +msgstr "" +"Esta página ofrece una vista general sobre la velocidad de descarga/carga " +"actual." + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:194 +msgid "Traffic Priority Settings" +msgstr "Ajustes de prioridad de tráfico" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:42 +msgid "Type of Limit Rate" +msgstr "Tipo de límite de velocidad" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:144 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:181 +msgid "Unit" +msgstr "Unidad" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:80 +msgid "Upload Bandwidth (Mbps)" +msgstr "Ancho de banda de carga (Mbps)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:154 +msgid "Upload Rate" +msgstr "Velocidad de carga" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:96 +msgid "White List for Limit Rate" +msgstr "Lista blanca para el límite de velocidad" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:221 +msgid "e.g. https, 23, (separator is comma)" +msgstr "p.ej. https, 23, (el separador es una coma)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:44 +msgid "kB" +msgstr "kB" diff --git a/luci-app-nft-qos/po/templates/nft-qos.pot b/luci-app-nft-qos/po/templates/nft-qos.pot new file mode 100644 index 00000000..8fecfa07 --- /dev/null +++ b/luci-app-nft-qos/po/templates/nft-qos.pot @@ -0,0 +1,230 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:136 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:155 +msgid "Bytes Total" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:141 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:160 +msgid "Collecting data..." +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:224 +msgid "Comment" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:48 +msgid "Default Download Rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:53 +msgid "Default Download Unit" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:107 +msgid "Default Network Interface" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:60 +msgid "Default Upload Rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:65 +msgid "Default Upload Unit" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:53 +msgid "Default unit for download rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:65 +msgid "Default unit for upload rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:75 +msgid "Default value for download bandwidth" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:48 +msgid "Default value for download rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:80 +msgid "Default value for upload bandwidth" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:60 +msgid "Default value for upload rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:75 +msgid "Download Bandwidth (Mbps)" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:135 +msgid "Download Rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:38 +msgid "Enable Limit Rate Feature" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:103 +msgid "Enable Traffic Priority" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:103 +msgid "Enable this feature" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:121 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:158 +msgid "Hostname" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:134 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:153 +msgid "IP Address" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:126 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:163 +msgid "IP Address(V4 / V6)" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:128 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:165 +msgid "IP Address(V4 Only)" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:38 +msgid "Limit Enable" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:42 +msgid "Limit Type" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:135 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:172 +msgid "MAC (optional)" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:48 +msgid "MB" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:28 +msgid "NFT-QoS Settings" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:107 +msgid "Network Interface for Traffic Shaping, e.g. br-lan, eth0.1, eth0, etc" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:85 +msgid "Network to be apply, e.g. 192.168.1.0/24, 10.2.0.0/16, etc" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:91 +msgid "Network to be apply, e.g. AAAA::BBBB/64, CCCC::1/128, etc" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:65 +msgid "No information available" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:137 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:156 +msgid "Packets Total" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:207 +msgid "Priority" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:199 +msgid "Protocol" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/controller/nft-qos.lua:16 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:23 +msgid "Qos over Nftables" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/controller/nft-qos.lua:12 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:139 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:176 +msgid "Rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:130 +msgid "Realtime Download Rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:125 +msgid "Realtime Rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:149 +msgid "Realtime Upload Rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:221 +msgid "Service" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:116 +msgid "Static QoS-Download Rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:153 +msgid "Static QoS-Upload Rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:85 +msgid "Target Network (IPv4/MASK)" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:91 +msgid "Target Network6 (IPv6/MASK)" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:127 +msgid "This page gives an overview over currently download/upload rate." +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:194 +msgid "Traffic Priority Settings" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:42 +msgid "Type of Limit Rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:144 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:181 +msgid "Unit" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:80 +msgid "Upload Bandwidth (Mbps)" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:154 +msgid "Upload Rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:96 +msgid "White List for Limit Rate" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:221 +msgid "e.g. https, 23, (separator is comma)" +msgstr "" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:44 +msgid "kB" +msgstr "" diff --git a/luci-app-nft-qos/po/zh-cn/nft-qos.po b/luci-app-nft-qos/po/zh-cn/nft-qos.po new file mode 100644 index 00000000..37a0d184 --- /dev/null +++ b/luci-app-nft-qos/po/zh-cn/nft-qos.po @@ -0,0 +1,244 @@ +# +# Yangfl , 2019. +# +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2020-06-07 10:45+0800\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 2.3.1\n" +"Last-Translator: dingpengyu \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language: zh_CN\n" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:136 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:155 +msgid "Bytes Total" +msgstr "字节总数" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:141 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:160 +msgid "Collecting data..." +msgstr "正在收集数据..." + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:224 +msgid "Comment" +msgstr "注释" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:48 +msgid "Default Download Rate" +msgstr "默认下载速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:53 +msgid "Default Download Unit" +msgstr "默认下载速率单位" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:107 +msgid "Default Network Interface" +msgstr "默认网络接口" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:60 +msgid "Default Upload Rate" +msgstr "默认上传速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:65 +msgid "Default Upload Unit" +msgstr "默认上传速率单位" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:53 +msgid "Default unit for download rate" +msgstr "默认的下载速率单位" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:65 +msgid "Default unit for upload rate" +msgstr "默认的上传速率单位" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:75 +msgid "Default value for download bandwidth" +msgstr "下载带宽的默认值" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:48 +msgid "Default value for download rate" +msgstr "下载速率的默认值" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:80 +msgid "Default value for upload bandwidth" +msgstr "上传带宽的默认值" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:60 +msgid "Default value for upload rate" +msgstr "上传速率的默认值" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:75 +msgid "Download Bandwidth (Mbps)" +msgstr "下载带宽(Mbps)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:135 +msgid "Download Rate" +msgstr "下载速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:38 +msgid "Enable Limit Rate Feature" +msgstr "开启速率限制功能" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:103 +msgid "Enable Traffic Priority" +msgstr "开启流量优先级" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:103 +msgid "Enable this feature" +msgstr "开启这个功能" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:121 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:158 +msgid "Hostname" +msgstr "主机名" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:134 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:153 +msgid "IP Address" +msgstr "IP 地址" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:126 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:163 +msgid "IP Address(V4 / V6)" +msgstr "IP 地址(V4 / V6)" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:128 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:165 +msgid "IP Address(V4 Only)" +msgstr "IP 地址(仅 V4)" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:38 +msgid "Limit Enable" +msgstr "限速开启" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:42 +msgid "Limit Type" +msgstr "限速类型" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:135 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:172 +msgid "MAC (optional)" +msgstr "物理地址(可选)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:48 +msgid "MB" +msgstr "MB" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:28 +msgid "NFT-QoS Settings" +msgstr "NFT-QoS 设置" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:107 +msgid "Network Interface for Traffic Shaping, e.g. br-lan, eth0.1, eth0, etc" +msgstr "流量整形的目标网络接口,例如br-lan、eth0.1、eth0等" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:85 +msgid "Network to be apply, e.g. 192.168.1.0/24, 10.2.0.0/16, etc" +msgstr "将要应用规则的网络,例如192.168.1.0/24、10.2.0.0/16等" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:91 +msgid "Network to be apply, e.g. AAAA::BBBB/64, CCCC::1/128, etc" +msgstr "将要应用规则的网络,例如AAAA::BBBB/64、CCCC::1/128等" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:65 +msgid "No information available" +msgstr "没有更多的信息" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:137 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:156 +msgid "Packets Total" +msgstr "数据包总数" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:207 +msgid "Priority" +msgstr "优先级" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:199 +msgid "Protocol" +msgstr "协议" + +#: applications/luci-app-nft-qos/luasrc/controller/nft-qos.lua:16 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:23 +msgid "Qos over Nftables" +msgstr "QoS Nftables 版" + +#: applications/luci-app-nft-qos/luasrc/controller/nft-qos.lua:12 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:139 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:176 +msgid "Rate" +msgstr "速率" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:130 +msgid "Realtime Download Rate" +msgstr "实时下载速率" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:125 +msgid "Realtime Rate" +msgstr "实时速率显示" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:149 +msgid "Realtime Upload Rate" +msgstr "实时上传速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:221 +msgid "Service" +msgstr "服务" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:116 +msgid "Static QoS-Download Rate" +msgstr "静态 QoS-下载速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:153 +msgid "Static QoS-Upload Rate" +msgstr "静态 QoS-上传速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:85 +msgid "Target Network (IPv4/MASK)" +msgstr "目标网络(IPv4 地址/掩码)" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:91 +msgid "Target Network6 (IPv6/MASK)" +msgstr "目标网络 v6(IPv6 地址/掩码)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:127 +msgid "This page gives an overview over currently download/upload rate." +msgstr "该页面提供了当前上传和下载速率的一个总览。" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:194 +msgid "Traffic Priority Settings" +msgstr "流量优先级设置" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:42 +msgid "Type of Limit Rate" +msgstr "限速的类型" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:144 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:181 +msgid "Unit" +msgstr "单位" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:80 +msgid "Upload Bandwidth (Mbps)" +msgstr "上传带宽(Mbps)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:154 +msgid "Upload Rate" +msgstr "上传速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:96 +msgid "White List for Limit Rate" +msgstr "限速白名单" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:221 +msgid "e.g. https, 23, (separator is comma)" +msgstr "例如https, 23(用逗号分隔)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:44 +msgid "kB" +msgstr "kB" diff --git a/luci-app-nft-qos/po/zh-tw/nft-qos.po b/luci-app-nft-qos/po/zh-tw/nft-qos.po new file mode 100644 index 00000000..5be9d8ab --- /dev/null +++ b/luci-app-nft-qos/po/zh-tw/nft-qos.po @@ -0,0 +1,244 @@ +# +# Yangfl , 2019. +# +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2019-01-03 22:28+0800\n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Gtranslator 3.30.1\n" +"Last-Translator: Yangfl \n" +"Plural-Forms: nplurals=1; plural=0;\n" +"Language: zh_TW\n" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:136 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:155 +msgid "Bytes Total" +msgstr "位元組總數" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:141 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:160 +msgid "Collecting data..." +msgstr "正在收集資料…" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:224 +msgid "Comment" +msgstr "註釋" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:48 +msgid "Default Download Rate" +msgstr "預設下載速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:53 +msgid "Default Download Unit" +msgstr "預設下載速率單位" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:107 +msgid "Default Network Interface" +msgstr "預設網路介面" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:60 +msgid "Default Upload Rate" +msgstr "預設上傳速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:65 +msgid "Default Upload Unit" +msgstr "預設上傳速率單位" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:53 +msgid "Default unit for download rate" +msgstr "預設的下載速率單位" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:65 +msgid "Default unit for upload rate" +msgstr "預設的上傳速率單位" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:75 +msgid "Default value for download bandwidth" +msgstr "下載頻寬的預設值" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:48 +msgid "Default value for download rate" +msgstr "下載速率的預設值" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:80 +msgid "Default value for upload bandwidth" +msgstr "上傳頻寬的預設值" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:60 +msgid "Default value for upload rate" +msgstr "上傳速率的預設值" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:75 +msgid "Download Bandwidth (Mbps)" +msgstr "下載頻寬(Mbps)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:135 +msgid "Download Rate" +msgstr "下載速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:38 +msgid "Enable Limit Rate Feature" +msgstr "開啟速率限制功能" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:103 +msgid "Enable Traffic Priority" +msgstr "開啟流量優先順序" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:103 +msgid "Enable this feature" +msgstr "開啟這個功能" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:121 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:158 +msgid "Hostname" +msgstr "主機名" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:134 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:153 +msgid "IP Address" +msgstr "IP 位址" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:126 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:163 +msgid "IP Address(V4 / V6)" +msgstr "IP 位址(V4 / V6)" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:128 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:165 +msgid "IP Address(V4 Only)" +msgstr "IP 位址(僅 V4)" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:38 +msgid "Limit Enable" +msgstr "限速開啟" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:42 +msgid "Limit Type" +msgstr "限速型別" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:135 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:172 +msgid "MAC (optional)" +msgstr "實體位址(可選)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:48 +msgid "MB" +msgstr "MB" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:28 +msgid "NFT-QoS Settings" +msgstr "NFT-QoS 設定" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:107 +msgid "Network Interface for Traffic Shaping, e.g. br-lan, eth0.1, eth0, etc" +msgstr "流量整形的目標網路介面,例如br-lan、eth0.1、eth0等" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:85 +msgid "Network to be apply, e.g. 192.168.1.0/24, 10.2.0.0/16, etc" +msgstr "將要應用規則的網路,例如192.168.1.0/24、10.2.0.0/16等" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:91 +msgid "Network to be apply, e.g. AAAA::BBBB/64, CCCC::1/128, etc" +msgstr "將要應用規則的網路,例如AAAA::BBBB/64、CCCC::1/128等" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:65 +msgid "No information available" +msgstr "沒有更多的資訊" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:137 +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:156 +msgid "Packets Total" +msgstr "資料包總數" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:207 +msgid "Priority" +msgstr "優先順序" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:199 +msgid "Protocol" +msgstr "協議" + +#: applications/luci-app-nft-qos/luasrc/controller/nft-qos.lua:16 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:23 +msgid "Qos over Nftables" +msgstr "QoS Nftables 版" + +#: applications/luci-app-nft-qos/luasrc/controller/nft-qos.lua:12 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:139 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:176 +msgid "Rate" +msgstr "速率" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:130 +msgid "Realtime Download Rate" +msgstr "實時下載速率" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:125 +msgid "Realtime Rate" +msgstr "實時速率顯示" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:149 +msgid "Realtime Upload Rate" +msgstr "實時上傳速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:221 +msgid "Service" +msgstr "服務" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:116 +msgid "Static QoS-Download Rate" +msgstr "靜態 QoS-下載速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:153 +msgid "Static QoS-Upload Rate" +msgstr "靜態 QoS-上傳速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:85 +msgid "Target Network (IPv4/MASK)" +msgstr "目標網路(IPv4 位址/掩碼)" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:91 +msgid "Target Network6 (IPv6/MASK)" +msgstr "目標網路 v6(IPv6 位址/掩碼)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:127 +msgid "This page gives an overview over currently download/upload rate." +msgstr "該頁面提供了當前上傳和下載速率的一個總覽。" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:194 +msgid "Traffic Priority Settings" +msgstr "流量優先順序設定" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:42 +msgid "Type of Limit Rate" +msgstr "限速的型別" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:144 +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:181 +msgid "Unit" +msgstr "單位" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:80 +msgid "Upload Bandwidth (Mbps)" +msgstr "上傳頻寬(Mbps)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:154 +msgid "Upload Rate" +msgstr "上傳速率" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:96 +msgid "White List for Limit Rate" +msgstr "限速白名單" + +#: applications/luci-app-nft-qos/luasrc/model/cbi/nft-qos/nft-qos.lua:221 +msgid "e.g. https, 23, (separator is comma)" +msgstr "例如https, 23(用逗號分隔)" + +#: applications/luci-app-nft-qos/luasrc/view/nft-qos/rate.htm:44 +msgid "kB" +msgstr "kB" diff --git a/luci-app-nft-qos/po/zh_Hans b/luci-app-nft-qos/po/zh_Hans new file mode 120000 index 00000000..41451e4a --- /dev/null +++ b/luci-app-nft-qos/po/zh_Hans @@ -0,0 +1 @@ +zh-cn \ No newline at end of file diff --git a/luci-app-nft-qos/root/etc/uci-defaults/luci-nft-qos b/luci-app-nft-qos/root/etc/uci-defaults/luci-nft-qos new file mode 100644 index 00000000..270233b3 --- /dev/null +++ b/luci-app-nft-qos/root/etc/uci-defaults/luci-nft-qos @@ -0,0 +1,19 @@ +#!/bin/sh +[ ! -f "/usr/share/ucitrack/luci-app-nft-qos.json" ] && { + cat > /usr/share/ucitrack/luci-app-nft-qos.json << EEOF +{ + "config": "nft-qos", + "init": "nft-qos" +} +EEOF +} + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@nft-qos[-1] + add ucitrack nft-qos + set ucitrack.@nft-qos[-1].init=nft-qos + commit ucitrack +EOF + +rm -rf /tmp/luci-*cache +exit 0 diff --git a/luci-app-pppwn/Makefile b/luci-app-pppwn/Makefile index 4e51fc74..639f8ed0 100644 --- a/luci-app-pppwn/Makefile +++ b/luci-app-pppwn/Makefile @@ -1,17 +1,17 @@ -# Copyright (C) 2022 Openwrt.org -# -# This is free software, licensed under the Apache License, Version 2.0 . -# - -include $(TOPDIR)/rules.mk - -LUCI_TITLE:=LuCI support for PPPWN -LUCI_DEPENDS:=+pppwn-cpp -LUCI_PKGARCH:=all -PKG_NAME:=luci-app-pppwn -PKG_VERSION:=1 -PKG_RELEASE:=1 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature +# Copyright (C) 2022 Openwrt.org +# +# This is free software, licensed under the Apache License, Version 2.0 . +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI support for PPPWN +LUCI_DEPENDS:=+pppwn-cpp +LUCI_PKGARCH:=all +PKG_NAME:=luci-app-pppwn +PKG_VERSION:=1 +PKG_RELEASE:=2 + +include $(TOPDIR)/feeds/luci/luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-pppwn/luasrc/controller/pppwn.lua b/luci-app-pppwn/luasrc/controller/pppwn.lua index 3e0dedd9..c71b78ef 100644 --- a/luci-app-pppwn/luasrc/controller/pppwn.lua +++ b/luci-app-pppwn/luasrc/controller/pppwn.lua @@ -7,7 +7,7 @@ function index() entry({"admin", "services", "pppwn"}, alias("admin", "services", "pppwn", "general"), _("PS4 PPP PWN"), 80) entry({"admin", "services", "pppwn", "general"}, cbi("pppwn/settings"), _("Base Setting"), 1) - --entry({"admin", "services", "pppwn", "log"}, form("pppwn/info"), _("Log"), 2) + entry({"admin", "services", "pppwn", "log"}, form("pppwn/info"), _("Log"), 2) entry({"admin", "services", "pppwn", "status"}, call("status")).leaf = true end diff --git a/luci-app-pppwn/luasrc/model/cbi/pppwn/settings.lua b/luci-app-pppwn/luasrc/model/cbi/pppwn/settings.lua index fd064af6..74ced9c6 100644 --- a/luci-app-pppwn/luasrc/model/cbi/pppwn/settings.lua +++ b/luci-app-pppwn/luasrc/model/cbi/pppwn/settings.lua @@ -28,4 +28,7 @@ fwver:value("900", translate("9.00")) fwver:value("1100", translate("11.00")) fwver.description = translate("1100 means Ver 11.00 etc.") +goldhen = s:option(DummyValue, "goldhen", translate("Download GoldHEN Payload BIN")) +goldhen.description = translate(""..translate("Copy goldhen.bin to the root directory of an exfat/fat32 USB and insert it into your PS4").."") + return m diff --git a/luci-app-pppwn/po/zh-cn/pppwn.po b/luci-app-pppwn/po/zh-cn/pppwn.po index b4fc0ec8..9142c0e3 100644 --- a/luci-app-pppwn/po/zh-cn/pppwn.po +++ b/luci-app-pppwn/po/zh-cn/pppwn.po @@ -12,3 +12,9 @@ msgstr "PlayStation 4 系统版本" msgid "1100 means Ver 11.00 etc." msgstr "1100 代表 11.00 版本,以此类推" + +msgid "Download GoldHEN Payload BIN" +msgstr "点击下载 GoldHEN Payload 二进制文件" + +msgid "Copy goldhen.bin to the root directory of an exfat/fat32 USB and insert it into your PS4." +msgstr "首次越狱请把 goldhen.bin 文件复制到一个 exfat/fat32 U盘根目录,并插入您的 PS4" diff --git a/luci-app-pppwn/root/etc/init.d/pppwn b/luci-app-pppwn/root/etc/init.d/pppwn index 9cc8f195..168fd2a8 100755 --- a/luci-app-pppwn/root/etc/init.d/pppwn +++ b/luci-app-pppwn/root/etc/init.d/pppwn @@ -2,11 +2,10 @@ # Copyright (C) 2008-2022 OpenWrt.org START=99 -USE_PROCD=1 PROG=/usr/bin/pppwn -start_service() { +start() { config_load "pppwn" config_get "port" "config" "port" @@ -17,12 +16,11 @@ start_service() { [ "${enable}" -gt 0 ] || return - procd_open_instance - procd_set_param command $PROG --interface $port --fw $fwver --stage1 "/etc/pppwn/stage1.bin" --stage2 "/etc/pppwn/stage2.bin" -a - procd_set_param respawn - procd_close_instance + $PROG --interface $port --fw $fwver --stage1 "/etc/pppwn/stage1.bin" --stage2 "/etc/pppwn/stage2.bin" -a > /var/log/pppwn.log & + } -service_triggers() { - procd_add_reload_trigger "pppwn" -} +stop() { + ps -w | grep -v "grep" | grep "$PROG" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 & + echo "" > /var/log/pppwn.log +} \ No newline at end of file diff --git a/luci-app-pppwn/root/www/goldhen.bin b/luci-app-pppwn/root/www/goldhen.bin new file mode 100644 index 0000000000000000000000000000000000000000..70fdd34ccfabbdc8b8a6bbe6cdeeca351a159060 GIT binary patch literal 296112 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�GDs?*TV;_0HE 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�i*!|CMsV7-TF|fpGIRTJtQ_T?X2 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

T%i0VPG#b#kr7wK1 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 URa8}UR#0+MQFK&wRX_880O1$UMF0Q* literal 0 HcmV?d00001 diff --git a/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js b/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js deleted file mode 100644 index be1e631d..00000000 --- a/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js +++ /dev/null @@ -1,96 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 - -'use strict'; -'require form'; -'require poll'; -'require uci'; -'require view'; -'require fs'; - -function getStatus() { - var result - try { - result = fs.exec('/usr/bin/qiyougamebooster.sh', ['status']); - return result.then(function(status) { - return status.stdout.trim() - }) - } catch (e) { } - return result; -} - -function getVersion() { - var result - try { - result = fs.exec('/usr/bin/qiyougamebooster.sh', ['version']) - return result.then(function(version) { - return version.stdout.trim() || _('QiYou Game Booster'); - }).catch(function() { - return _('QiYou Game Booster'); - }); - } catch (e) { } - return Promise.resolve(_('QiYou Game Booster')); -} - -function renderStatus(status, version) { - var spanTemp = '%s: %s %s'; - var renderHTML; - if (status == 'NOT ENABLED' || status == 'NOT RUNNING' || status == 'NOT SUPPORTED') { - renderHTML = spanTemp.format('red', _('Status'), _(version), _(status)); - } else { - renderHTML = spanTemp.format('green', _('Status'), _(version), _(status)); - } - return renderHTML; -} - -return view.extend({ - load: function() { - return Promise.all([ - uci.load('qiyougamebooster') - ]); - }, - - render: function() { - let m, s, o; - - m = new form.Map('qiyougamebooster', _('QiYou Game Booster'), - _('Play console games online with less lag and more stability.') + '
' + - _('— now supporting PS, Switch, Xbox, PC, and mobile.')); - - s = m.section(form.TypedSection); - s.anonymous = true; - s.render = function () { - poll.add(function () { - return L.resolveDefault(getStatus()).then(function (status) { - return L.resolveDefault(getVersion()).then(function (version) { - var view = document.getElementById('service_status'); - view.innerHTML = renderStatus(status, version); - }); - }); - }); - - return E('div', { class: 'cbi-section', id: 'status_bar' }, [ - E('p', { id: 'service_status' }, _('Collecting data...')) - ]); - } - - s = m.section(form.NamedSection, 'config', 'qiyougamebooster'); - - o = s.option(form.Flag, 'enabled', _('Enable')); - o.default = o.disabled; - o.rmempty = false; - - s = m.section(form.TypedSection); - s.anonymous = true; - s.render = function () { - return E('div', {class: 'cbi-section'}, [ - E('p', [ - E('img', {src: '/qiyougamebooster/Tutorial.png', height: '350'}) - ]) - ]) - } - - - return m.render(); - } - -}); diff --git a/luci-app-qiyougamebooster/luasrc/controller/qiyougamebooster.lua b/luci-app-qiyougamebooster/luasrc/controller/qiyougamebooster.lua new file mode 100644 index 00000000..7a28ee80 --- /dev/null +++ b/luci-app-qiyougamebooster/luasrc/controller/qiyougamebooster.lua @@ -0,0 +1,12 @@ +module("luci.controller.qiyougamebooster", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/qiyougamebooster") then + return + end + + local page + page = entry({"admin", "services", "qiyougamebooster"}, cbi("qiyougamebooster"), ("QiYou Game Booster"), 99) + page.dependent = false + page.acl_depends = {"luci-app-qiyougamebooster"} +end diff --git a/luci-app-qiyougamebooster/luasrc/model/cbi/qiyougamebooster.lua b/luci-app-qiyougamebooster/luasrc/model/cbi/qiyougamebooster.lua new file mode 100644 index 00000000..4fcde4a0 --- /dev/null +++ b/luci-app-qiyougamebooster/luasrc/model/cbi/qiyougamebooster.lua @@ -0,0 +1,28 @@ +require("luci.sys") + +m = Map("qiyougamebooster", translate("QiYou Game Booster"), + translate("Play console games online with less lag and more stability.") .. "
" .. + translate("— now supporting PS, Switch, Xbox, PC, and mobile.")) + +s = m:section(TypedSection, "qiyougamebooster") +s.anonymous = true +s.addremove = false + +sts = luci.sys.exec("qiyougamebooster.sh status 2> /dev/null") +ver = luci.sys.exec("qiyougamebooster.sh version 2> /dev/null") +o = s:option(DummyValue, "status") +o.rawhtml = true +if sts == "NOT ENABLED" or sts == "NOT SUPPORTED" or sts == "NOT RUNNING" then + o.value = string.format('%s: %s %s', "red", translate("Status"), ver, translate(sts)) +else + o.value = string.format('%s: %s %s', "green", translate("Status"), ver, translate(sts)) +end + +o = s:option(Flag, "enabled", translate("Enable")) +o.default = 0 + +o = s:option(DummyValue, "instructions") +o.rawhtml = true +o.value = "

" + +return m diff --git a/luci-app-qiyougamebooster/po/templates/qiyougamebooster.pot b/luci-app-qiyougamebooster/po/templates/qiyougamebooster.pot deleted file mode 100644 index d01d1f58..00000000 --- a/luci-app-qiyougamebooster/po/templates/qiyougamebooster.pot +++ /dev/null @@ -1,52 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:26 -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:28 -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:53 -msgid "QiYou Game Booster" -msgstr "" - -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:54 -msgid "Play console games online with less lag and more stability." -msgstr "" - -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:55 -msgid "— now supporting PS, Switch, Xbox, PC, and mobile." -msgstr "" - -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:70 -msgid "Collecting data..." -msgstr "" - -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:76 -msgid "Enable" -msgstr "" - -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:38 -msgid "Status" -msgstr "" - -msgid "NOT ENABLED" -msgstr "" - -msgid "CLOSED" -msgstr "" - -msgid "BOOSTING" -msgstr "" - -msgid "RUNNING" -msgstr "" - -msgid "NOT SUPPORTED" -msgstr "" - -msgid "DOWNLOADING" -msgstr "" - -msgid "INSTALLING" -msgstr "" - -msgid "NOT RUNNING" -msgstr "" diff --git a/luci-app-qiyougamebooster/po/zh-cn b/luci-app-qiyougamebooster/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-qiyougamebooster/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-qiyougamebooster/po/zh-cn/qiyougamebooster.po b/luci-app-qiyougamebooster/po/zh-cn/qiyougamebooster.po new file mode 100644 index 00000000..9740f135 --- /dev/null +++ b/luci-app-qiyougamebooster/po/zh-cn/qiyougamebooster.po @@ -0,0 +1,38 @@ +msgid "QiYou Game Booster" +msgstr "奇游联机宝" + +msgid "Play console games online with less lag and more stability." +msgstr "加速主机游戏,实现满速下载、稳定联机、飞快匹配体验。" + +msgid "— now supporting PS, Switch, Xbox, PC, and mobile." +msgstr "—— 现已支持 PS、Switch、Xbox、PC 与移动端。" + +msgid "Enable" +msgstr "启用" + +msgid "Status" +msgstr "状态" + +msgid "NOT ENABLED" +msgstr "未启用" + +msgid "CLOSED" +msgstr "已关闭" + +msgid "BOOSTING" +msgstr "加速中" + +msgid "RUNNING" +msgstr "运行中" + +msgid "NOT SUPPORTED" +msgstr "不支持" + +msgid "DOWNLOADING" +msgstr "下载中" + +msgid "INSTALLING" +msgstr "安装中" + +msgid "NOT RUNNING" +msgstr "未运行" diff --git a/luci-app-qiyougamebooster/po/zh_Hans b/luci-app-qiyougamebooster/po/zh_Hans new file mode 120000 index 00000000..41451e4a --- /dev/null +++ b/luci-app-qiyougamebooster/po/zh_Hans @@ -0,0 +1 @@ +zh-cn \ No newline at end of file diff --git a/luci-app-qiyougamebooster/po/zh_Hans/qiyougamebooster.po b/luci-app-qiyougamebooster/po/zh_Hans/qiyougamebooster.po deleted file mode 100644 index 1e5856f3..00000000 --- a/luci-app-qiyougamebooster/po/zh_Hans/qiyougamebooster.po +++ /dev/null @@ -1,52 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:26 -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:28 -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:53 -msgid "QiYou Game Booster" -msgstr "奇游联机宝" - -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:54 -msgid "Play console games online with less lag and more stability." -msgstr "加速主机游戏,实现满速下载、稳定联机、飞快匹配体验。" - -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:55 -msgid "— now supporting PS, Switch, Xbox, PC, and mobile." -msgstr "—— 现已支持 PS、Switch、Xbox、PC 与移动端。" - -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:70 -msgid "Collecting data..." -msgstr "正在收集数据中..." - -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:76 -msgid "Enable" -msgstr "启用" - -#: applications/luci-app-qiyougamebooster/htdocs/luci-static/resources/view/qiyougamebooster.js:38 -msgid "Status" -msgstr "状态" - -msgid "NOT ENABLED" -msgstr "未启用" - -msgid "CLOSED" -msgstr "已关闭" - -msgid "BOOSTING" -msgstr "加速中" - -msgid "RUNNING" -msgstr "运行中" - -msgid "NOT SUPPORTED" -msgstr "不支持" - -msgid "DOWNLOADING" -msgstr "下载中" - -msgid "INSTALLING" -msgstr "安装中" - -msgid "NOT RUNNING" -msgstr "未运行" diff --git a/luci-app-qiyougamebooster/root/etc/uci-defaults/qiyougamebooster b/luci-app-qiyougamebooster/root/etc/uci-defaults/qiyougamebooster new file mode 100644 index 00000000..fbd81c30 --- /dev/null +++ b/luci-app-qiyougamebooster/root/etc/uci-defaults/qiyougamebooster @@ -0,0 +1,19 @@ +#!/bin/sh +[ ! -f "/usr/share/ucitrack/luci-app-qiyougamebooster.json" ] && { + cat > /usr/share/ucitrack/luci-app-qiyougamebooster.json << EEOF +{ + "config": "qiyougamebooster", + "init": "qiyougamebooster" +} +EEOF +} + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@qiyougamebooster[-1] + add ucitrack qiyougamebooster + set ucitrack.@qiyougamebooster[-1].init=qiyougamebooster + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/luci-app-qiyougamebooster/root/usr/share/luci/menu.d/luci-app-qiyougamebooster.json b/luci-app-qiyougamebooster/root/usr/share/luci/menu.d/luci-app-qiyougamebooster.json deleted file mode 100644 index 0c161061..00000000 --- a/luci-app-qiyougamebooster/root/usr/share/luci/menu.d/luci-app-qiyougamebooster.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "admin/services/qiyougamebooster": { - "title": "QiYou Game Booster", - "action": { - "type": "view", - "path": "qiyougamebooster" - }, - "depends": { - "acl": [ "luci-app-qiyougamebooster" ], - "fs": { - "/usr/bin/qiyougamebooster.sh": "executable" - }, - "uci": { "qiyougamebooster": true } - } - } -} diff --git a/luci-app-qiyougamebooster/root/usr/share/rpcd/acl.d/luci-app-qiyougamebooster.json b/luci-app-qiyougamebooster/root/usr/share/rpcd/acl.d/luci-app-qiyougamebooster.json index 205ce66e..ed85a9ce 100644 --- a/luci-app-qiyougamebooster/root/usr/share/rpcd/acl.d/luci-app-qiyougamebooster.json +++ b/luci-app-qiyougamebooster/root/usr/share/rpcd/acl.d/luci-app-qiyougamebooster.json @@ -1,10 +1,7 @@ { - "luci-app-qiyougamebooster": { + "luci-app-qiyougamebooster": { "description": "Grant UCI access for luci-app-qiyougamebooster", "read": { - "file": { - "/usr/bin/qiyougamebooster.sh": [ "exec" ] - }, "uci": [ "qiyougamebooster" ] }, "write": { diff --git a/luci-app-shadowsocks-libev/Makefile b/luci-app-shadowsocks-libev/Makefile new file mode 100644 index 00000000..05b0a66c --- /dev/null +++ b/luci-app-shadowsocks-libev/Makefile @@ -0,0 +1,16 @@ +# +# Copyright (C) 2017 Yousong Zhou +# +# This is free software, licensed under the Apache License, Version 2.0 . +# + +include $(TOPDIR)/rules.mk + +LUCI_TITLE:=LuCI Support for shadowsocks-libev +LUCI_DEPENDS:= + +PKG_LICENSE:=Apache-2.0 + +include $(TOPDIR)/feeds/luci/luci.mk + +# call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua b/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua new file mode 100644 index 00000000..05d12e38 --- /dev/null +++ b/luci-app-shadowsocks-libev/luasrc/controller/shadowsocks-libev.lua @@ -0,0 +1,33 @@ +-- Copyright 2017 Yousong Zhou +-- Licensed to the public under the Apache License 2.0. +-- +module("luci.controller.shadowsocks-libev", package.seeall) + +function index() + entry({"admin", "services", "shadowsocks-libev"}, + alias("admin", "services", "shadowsocks-libev", "instances"), + _("Shadowsocks-libev"), 59) + + entry({"admin", "services", "shadowsocks-libev", "instances"}, + arcombine(cbi("shadowsocks-libev/instances"), cbi("shadowsocks-libev/instance-details")), + _("Local Instances"), 10).leaf = true + + entry({"admin", "services", "shadowsocks-libev", "servers"}, + cbi("shadowsocks-libev/servers"), + _("Remote Servers"), 20).leaf = true + + entry({"admin", "services", "shadowsocks-libev", "rules"}, + cbi("shadowsocks-libev/rules"), + _("Redir Rules"), 30).leaf = true + + entry({"admin", "services", "shadowsocks-libev", "status"}, call("ss_status"), nil).leaf = true + +end + +function ss_status() + local ut = require "luci.util" + local rv = ut.ubus("service", "list", {name = "shadowsocks-libev"})["shadowsocks-libev"] or {_=0} + + luci.http.prepare_content("application/json") + luci.http.write_json(rv) +end diff --git a/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua b/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua new file mode 100644 index 00000000..195a31f2 --- /dev/null +++ b/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instance-details.lua @@ -0,0 +1,47 @@ +-- Copyright 2017 Yousong Zhou +-- Licensed to the public under the Apache License 2.0. + +local ds = require "luci.dispatcher" +local ss = require "luci.model.shadowsocks-libev" + +local sname = arg[1] +local redirect_url = ds.build_url("admin/services/shadowsocks-libev/instances") +local s, o + +local m = Map("shadowsocks-libev") +local sdata = m:get(sname) +if not sdata then + luci.http.redirect(redirect_url) + return +end +local stype = sdata[".type"] +m.redirect = redirect_url +m.title = "shadowsocks-libev - %s - %s" % {stype, sname} + + +s = m:section(NamedSection, sname, stype) +s:tab("general", translate("General Settings")) +s:tab("advanced", translate("Advanced Settings")) +s:taboption("general", Flag, "disabled", translate("Disable")) +ss.option_install_package(s, "general") +ss.options_common(s, "advanced") + +if stype == "ss_server" then + ss.options_server(s, "general") + o = s:taboption("general", Value, "bind_address", + translate("Bind address"), + translate("The address ss-server will initiate connection from")) + o.datatype = "ipaddr" + o.placeholder = "0.0.0.0" + ss.values_ipaddr(o) +else + ss.options_client(s, "general") + if stype == "ss_tunnel" then + o = s:taboption("general", Value, "tunnel_address", + translate("Tunnel address"), + translate("The address ss-tunnel will forward traffic to")) + o.datatype = "hostport" + end +end + +return m diff --git a/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua b/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua new file mode 100644 index 00000000..62a90fb4 --- /dev/null +++ b/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/instances.lua @@ -0,0 +1,104 @@ +-- Copyright 2017 Yousong Zhou +-- Licensed to the public under the Apache License 2.0. + +local ds = require "luci.dispatcher" +local ss = require "luci.model.shadowsocks-libev" +local ut = require "luci.util" +local m, s, o + +m = Map("shadowsocks-libev", + translate("Local Instances"), + translate("Instances of shadowsocks-libev components, e.g. ss-local, \ + ss-redir, ss-tunnel, ss-server, etc. To enable an instance it \ + is required to enable both the instance itself and the remote \ + server it refers to.")) + +local instances = {} +local cfgtypes = { "ss_local", "ss_redir", "ss_server", "ss_tunnel" } + +for sname, sdata in pairs(m:get()) do + local key, value = ss.cfgvalue_overview(sdata) + if key ~= nil then + instances[key] = value + end +end + +s = m:section(Table, instances) +s.addremove = true +s.template_addremove = "shadowsocks-libev/add_instance" +s.extedit = function(self, section) + local value = instances[section] + if type(value) == "table" then + return ds.build_url(unpack(ds.context.requestpath), + "services/shadowsocks-libev/instances", + value[".name"]) + end +end +s.parse = function(self, ...) + Table.parse(self, ...) + + local crval = REMOVE_PREFIX .. self.config + local name = self.map:formvaluetable(crval) + for k,v in pairs(name) do + local value = instances[k] + local sname = value[".name"] + if type(value) == "table" then + m:del(sname) + instances[k] = nil + for _, oname in ipairs({"redir_tcp", "redir_udp"}) do + local ovalue = m:get("ss_rules", oname) + if ovalue == sname then + m:del("ss_rules", oname) + end + end + end + end + + local stype = m:formvalue("_newinst.type") + local sname = m:formvalue("_newinst.name") + if ut.contains(cfgtypes, stype) then + local created + if sname and #sname > 0 then + created = m:set(sname, nil, stype) + else + created = m:add(stype) + sname = created + end + if created then + m.uci:save("shadowsocks-libev") + luci.http.redirect(ds.build_url( + "admin/services/shadowsocks-libev/instances", sname + )) + end + end +end + +o = s:option(DummyValue, "name", translate("Name")) +o.rawhtml = true +o = s:option(DummyValue, "overview", translate("Overview")) +o.rawhtml = true + +s:option(DummyValue, "running", translate("Running")) + +o = s:option(Button, "disabled", translate("Enable/Disable")) +o.render = function(self, section, scope) + if instances[section].disabled then + self.title = translate("Disabled") + self.inputstyle = "reset" + else + self.title = translate("Enabled") + self.inputstyle = "save" + end + Button.render(self, section, scope) +end +o.write = function(self, section) + local sdata = instances[section] + if type(sdata) == "table" then + local sname = sdata[".name"] + local disabled = not sdata["disabled"] + sdata["disabled"] = disabled + m:set(sname, "disabled", tostring(disabled)) + end +end + +return m diff --git a/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua b/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua new file mode 100644 index 00000000..4a01bed2 --- /dev/null +++ b/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/rules.lua @@ -0,0 +1,109 @@ +-- Copyright 2017 Yousong Zhou +-- Licensed to the public under the Apache License 2.0. + +local ss = require("luci.model.shadowsocks-libev") + +local m, s, o + +m = Map("shadowsocks-libev", + translate("Redir Rules"), + translate("On this page you can configure how traffics are to be \ + forwarded to ss-redir instances. \ + If enabled, packets will first have their src ip addresses checked \ + against Src ip/net bypass, Src ip/net forward, \ + Src ip/net checkdst and if none matches Src default \ + will give the default action to be taken. \ + If the prior check results in action checkdst, packets will continue \ + to have their dst addresses checked.")) + +local sdata = m:get('ss_rules') +if not sdata then + m:set('ss_rules', nil, 'ss_rules') + m:set('ss_rules', 'disabled', "1") +end + +function src_dst_option(s, ...) + local o = s:taboption(...) + o.datatype = "or(ip4addr,cidr4)" +end + +s = m:section(NamedSection, "ss_rules", "ss_rules") +s:tab("general", translate("General Settings")) +s:tab("src", translate("Source Settings")) +s:tab("dst", translate("Destination Settings")) + +s:taboption('general', Flag, "disabled", translate("Disable")) +ss.option_install_package(s, 'general') + +o = s:taboption('general', ListValue, "redir_tcp", + translate("ss-redir for TCP")) +ss.values_redir(o, 'tcp') +o = s:taboption('general', ListValue, "redir_udp", + translate("ss-redir for UDP")) +ss.values_redir(o, 'udp') + +o = s:taboption('general', ListValue, "local_default", + translate("Local-out default"), + translate("Default action for locally generated TCP packets")) +ss.values_actions(o) +o = s:taboption('general', DynamicList, "ifnames", + translate("Ingress interfaces"), + translate("Only apply rules on packets from these network interfaces")) +ss.values_ifnames(o) +s:taboption('general', Value, "ipt_args", + translate("Extra arguments"), + translate("Passes additional arguments to iptables. Use with care!")) + +src_dst_option(s, 'src', DynamicList, "src_ips_bypass", + translate("Src ip/net bypass"), + translate("Bypass ss-redir for packets with src address in this list")) +src_dst_option(s, 'src', DynamicList, "src_ips_forward", + translate("Src ip/net forward"), + translate("Forward through ss-redir for packets with src address in this list")) +src_dst_option(s, 'src', DynamicList, "src_ips_checkdst", + translate("Src ip/net checkdst"), + translate("Continue to have dst address checked for packets with src address in this list")) +o = s:taboption('src', ListValue, "src_default", + translate("Src default"), + translate("Default action for packets whose src address do not match any of the src ip/net list")) +ss.values_actions(o) + +src_dst_option(s, 'dst', DynamicList, "dst_ips_bypass", + translate("Dst ip/net bypass"), + translate("Bypass ss-redir for packets with dst address in this list")) +src_dst_option(s, 'dst', DynamicList, "dst_ips_forward", + translate("Dst ip/net forward"), + translate("Forward through ss-redir for packets with dst address in this list")) + +o = s:taboption('dst', FileBrowser, "dst_ips_bypass_file", + translate("Dst ip/net bypass file"), + translate("File containing ip/net for the purposes as with Dst ip/net bypass")) +o.datatype = "file" +s:taboption('dst', FileBrowser, "dst_ips_forward_file", + translate("Dst ip/net forward file"), + translate("File containing ip/net for the purposes as with Dst ip/net forward")) +o.datatype = "file" +o = s:taboption('dst', ListValue, "dst_default", + translate("Dst default"), + translate("Default action for packets whose dst address do not match any of the dst ip list")) +ss.values_actions(o) + +local installed = os.execute("iptables -m recent -h &>/dev/null") == 0 +if installed then + o = s:taboption('dst', Flag, "dst_forward_recentrst") +else + m:set('ss_rules', 'dst_forward_recentrst', "0") + o = s:taboption("dst", Button, "_install") + o.inputtitle = translate("Install package iptables-mod-conntrack-extra") + o.inputstyle = "apply" + o.write = function() + return luci.http.redirect( + luci.dispatcher.build_url("admin/system/packages") .. + "?submit=1&install=iptables-mod-conntrack-extra" + ) + end +end +o.title = translate("Forward recentrst") +o.description = translate("Forward those packets whose dst have recently sent to us multiple tcp-rst") + +return m diff --git a/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua b/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua new file mode 100644 index 00000000..71c66562 --- /dev/null +++ b/luci-app-shadowsocks-libev/luasrc/model/cbi/shadowsocks-libev/servers.lua @@ -0,0 +1,31 @@ +-- Copyright 2017 Yousong Zhou +-- Licensed to the public under the Apache License 2.0. + +local ds = require "luci.dispatcher" +local ss = require("luci.model.shadowsocks-libev") + +local m, s + +m = Map("shadowsocks-libev", + translate("Remote Servers"), + translate("Definition of remote shadowsocks servers. \ + Disable any of them will also disable instances refering to it.")) + +local sname = arg[1] +if sname then + if not m:get(sname) then + luci.http.redirect(ds.build_url("admin/services/shadowsocks-libev/servers")) + return + end + s = m:section(NamedSection, sname, "server") + m.title = m.title .. ' - ' .. sname +else + s = m:section(TypedSection, "server") + s.template = 'cbi/tblsection' + s.addremove = true +end + +s:option(Flag, "disabled", translate("Disable")) +ss.options_server(s) + +return m diff --git a/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua b/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua new file mode 100644 index 00000000..af1a75b6 --- /dev/null +++ b/luci-app-shadowsocks-libev/luasrc/model/shadowsocks-libev.lua @@ -0,0 +1,264 @@ +-- Copyright 2017 Yousong Zhou +-- Licensed to the public under the Apache License 2.0. + +local _up = getfenv(3) +local ut = require("luci.util") +local sys = require("luci.sys") +local ds = require("luci.dispatcher") +local nw = require("luci.model.network") +nw.init() +module("luci.model.shadowsocks-libev", function(m) + setmetatable(m, {__index=function (self, k) + local tb = _up + return rawget(self, k) or _up[k] + end}) +end) + +function values_actions(o) + o:value("bypass") + o:value("forward") + if o.option ~= "dst_default" then + o:value("checkdst") + end +end + +function values_redir(o, xmode) + o.map.uci.foreach("shadowsocks-libev", "ss_redir", function(sdata) + local disabled = ucival_to_bool(sdata["disabled"]) + local sname = sdata[".name"] + local mode = sdata["mode"] or "tcp_only" + if not disabled and mode:find(xmode) then + local desc = "%s - %s" % {sname, mode} + o:value(sname, desc) + end + end) + o:value("", "") + o.default = "" +end + +function values_serverlist(o) + o.map.uci.foreach("shadowsocks-libev", "server", function(sdata) + local sname = sdata[".name"] + local server = sdata["server"] + local server_port = sdata["server_port"] + if server and server_port then + local disabled = ucival_to_bool(sdata[".disabled"]) and " - disabled" or "" + local desc = "%s - %s:%s%s" % {sname, server, server_port, disabled} + o:value(sname, desc) + end + end) +end + +function values_ipaddr(o) + for _, v in ipairs(nw:get_interfaces()) do + for _, a in ipairs(v:ipaddrs()) do + o:value(a:host():string(), '%s (%s)' %{ a:host(), v:shortname() }) + end + end +end + +function values_ifnames(o) + for _, v in ipairs(sys.net.devices()) do + o:value(v) + end +end + +function options_client(s, tab) + local o + + o = s:taboption(tab, ListValue, "server", translate("Remote server")) + values_serverlist(o) + o = s:taboption(tab, Value, "local_address", translate("Local address")) + o.datatype = "ipaddr" + o.placeholder = "0.0.0.0" + values_ipaddr(o) + o = s:taboption(tab, Value, "local_port", translate("Local port")) + o.datatype = "port" +end + +function options_server(s, tab) + local o + local optfunc + + if tab == nil then + optfunc = function(...) return s:option(...) end + else + optfunc = function(...) return s:taboption(tab, ...) end + end + + o = optfunc(Value, "server", translate("Server")) + o.datatype = "host" + o.size = 16 + o = optfunc(Value, "server_port", translate("Server port")) + o.datatype = "port" + o.size = 5 + o = optfunc(ListValue, "method", translate("Method")) + for _, m in ipairs(methods) do + o:value(m) + end + o = optfunc(Value, "key", translate("Key (base64 encoding)")) + o.datatype = "base64" + o.password = true + o.size = 12 + o = optfunc(Value, "password", translate("Password")) + o.password = true + o.size = 12 +end + +function options_common(s, tab) + local o + + o = s:taboption(tab, ListValue, "mode", translate("Mode of operation")) + for _, m in ipairs(modes) do + o:value(m) + end + o.default = "tcp_and_udp" + o = s:taboption(tab, Value, "mtu", translate("MTU")) + o.datatype = "uinteger" + o = s:taboption(tab, Value, "timeout", translate("Timeout (sec)")) + o.datatype = "uinteger" + s:taboption(tab, Value, "user", translate("Run as")) + + s:taboption(tab, Flag, "verbose", translate("Verbose")) + s:taboption(tab, Flag, "ipv6_first", translate("IPv6 First"), translate("Prefer IPv6 addresses when resolving names")) + s:taboption(tab, Flag, "fast_open", translate("Enable TCP Fast Open")) + s:taboption(tab, Flag, "no_delay", translate("Enable TCP_NODELAY")) + s:taboption(tab, Flag, "reuse_port", translate("Enable SO_REUSEPORT")) +end + +function ucival_to_bool(val) + return val == "true" or val == "1" or val == "yes" or val == "on" +end + +function cfgvalue_overview(sdata) + local stype = sdata[".type"] + local lines = {} + + if stype == "ss_server" then + cfgvalue_overview_(sdata, lines, names_options_server) + cfgvalue_overview_(sdata, lines, names_options_common) + cfgvalue_overview_(sdata, lines, { + "bind_address", + }) + elseif stype == "ss_local" or stype == "ss_redir" or stype == "ss_tunnel" then + cfgvalue_overview_(sdata, lines, names_options_client) + if stype == "ss_tunnel" then + cfgvalue_overview_(sdata, lines, {"tunnel_address"}) + end + cfgvalue_overview_(sdata, lines, names_options_common) + else + return nil, nil + end + local sname = sdata[".name"] + local key = "%s.%s" % {stype, sname} + local value = { + [".name"] = sname, + name = '%s.%s' % {stype, sname}, + overview = table.concat(lines, "
"), + disabled = ucival_to_bool(sdata["disabled"]), + } + return key, value +end + +function cfgvalue_overview_(sdata, lines, names) + local line + + for _, n in ipairs(names) do + local v = sdata[n] + if v ~= nil then + if n == "key" or n == "password" then + v = translate("") + end + local fv = "%s" % ut.pcdata(v) + if sdata[".type"] ~= "ss_server" and n == "server" then + fv = '
%s' % { + ds.build_url("admin/services/shadowsocks-libev/servers", v), fv} + end + line = n .. ": " .. fv + table.insert(lines, line) + end + end +end + +function option_install_package(s, tab) + local bin = s.sectiontype:gsub("_", "-", 1) + local installed = nixio.fs.access("/usr/bin/" .. bin) + if installed then + return + end + local opkg_package = "shadowsocks-libev-" .. bin + local p_install + if tab then + p_install = s:taboption(tab, Button, "_install") + else + p_install = s:option(Button, "_install") + end + p_install.title = translate("Package is not installed") + p_install.inputtitle = translate("Install package %q" % opkg_package) + p_install.inputstyle = "apply" + + function p_install.write() + return luci.http.redirect( + luci.dispatcher.build_url("admin/system/packages") .. + "?submit=1&install=%s" % opkg_package + ) + end +end + +names_options_server = { + "server", + "server_port", + "method", + "key", + "password", +} + +names_options_client = { + "server", + "local_address", + "local_port", +} + +names_options_common = { + "verbose", + "ipv6_first", + "fast_open", + "no_delay", + "reuse_port", + "mode", + "mtu", + "timeout", + "user", +} + +modes = { + "tcp_only", + "tcp_and_udp", + "udp_only", +} + +methods = { + -- aead + "aes-128-gcm", + "aes-192-gcm", + "aes-256-gcm", + "chacha20-ietf-poly1305", + "xchacha20-ietf-poly1305", + -- stream + "table", + "rc4", + "rc4-md5", + "aes-128-cfb", + "aes-192-cfb", + "aes-256-cfb", + "aes-128-ctr", + "aes-192-ctr", + "aes-256-ctr", + "bf-cfb", + "camellia-128-cfb", + "camellia-192-cfb", + "camellia-256-cfb", + "salsa20", + "chacha20", + "chacha20-ietf", +} diff --git a/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm b/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm new file mode 100644 index 00000000..219d89b0 --- /dev/null +++ b/luci-app-shadowsocks-libev/luasrc/view/shadowsocks-libev/add_instance.htm @@ -0,0 +1,45 @@ +
+
+ + + + + + +
+ + + + + +
+
+ diff --git a/luci-app-shadowsocks-libev/root/etc/uci-defaults/40_luci-shadowsocks-libev b/luci-app-shadowsocks-libev/root/etc/uci-defaults/40_luci-shadowsocks-libev new file mode 100644 index 00000000..9f86bdac --- /dev/null +++ b/luci-app-shadowsocks-libev/root/etc/uci-defaults/40_luci-shadowsocks-libev @@ -0,0 +1,19 @@ +#!/bin/sh +[ ! -f "/usr/share/ucitrack/luci-app-shadowsocks-libev.json" ] && { + cat > /usr/share/ucitrack/luci-app-shadowsocks-libev.json << EEOF +{ + "config": "shadowsocks-libev", + "init": "shadowsocks-libev" +} +EEOF +} + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@shadowsocks-libev[-1] + add ucitrack shadowsocks-libev + set ucitrack.@shadowsocks-libev[-1].init=shadowsocks-libev + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/luci-app-webrestriction/Makefile b/luci-app-shairplay/Makefile similarity index 59% rename from luci-app-webrestriction/Makefile rename to luci-app-shairplay/Makefile index 53670f9f..c5250f11 100644 --- a/luci-app-webrestriction/Makefile +++ b/luci-app-shairplay/Makefile @@ -1,17 +1,14 @@ -# Copyright (C) 2016 Openwrt.org +# +# Copyright (C) 2008-2014 The LuCI Team # # This is free software, licensed under the Apache License, Version 2.0 . # include $(TOPDIR)/rules.mk -LUCI_TITLE:=LuCI support for Webrestriction -LUCI_PKGARCH:=all -PKG_VERSION:=1.0 -PKG_RELEASE:=1 +LUCI_TITLE:=LuCI Support for Shairplay +LUCI_DEPENDS:=+shairplay include $(TOPDIR)/feeds/luci/luci.mk # call BuildPackage - OpenWrt buildroot signature - - diff --git a/luci-app-shairplay/luasrc/controller/shairplay.lua b/luci-app-shairplay/luasrc/controller/shairplay.lua new file mode 100644 index 00000000..d3223016 --- /dev/null +++ b/luci-app-shairplay/luasrc/controller/shairplay.lua @@ -0,0 +1,14 @@ +-- Copyright 2014 Álvaro Fernández Rojas +-- Licensed to the public under the Apache License 2.0. + +module("luci.controller.shairplay", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/shairplay") then + return + end + + local page = entry({"admin", "services", "shairplay"}, cbi("shairplay"), _("Shairplay")) + page.dependent = true + +end diff --git a/luci-app-shairplay/luasrc/model/cbi/shairplay.lua b/luci-app-shairplay/luasrc/model/cbi/shairplay.lua new file mode 100644 index 00000000..4e078d7e --- /dev/null +++ b/luci-app-shairplay/luasrc/model/cbi/shairplay.lua @@ -0,0 +1,65 @@ +-- Copyright 2014 Álvaro Fernández Rojas +-- Licensed to the public under the Apache License 2.0. + +m = Map("shairplay", "Shairplay", translate("Shairplay is a simple AirPlay server implementation, here you can configure the settings.")) + +s = m:section(TypedSection, "shairplay", "") +s.addremove = true +s.anonymous = false + +enable=s:option(Flag, "disabled", translate("Enabled")) +enable.enabled="0" +enable.disabled="1" +enable.default = "1" +enable.rmempty = false +respawn=s:option(Flag, "respawn", translate("Respawn")) +respawn.default = false + +apname = s:option(Value, "apname", translate("Airport Name")) +apname.rmempty = true + +port=s:option(Value, "port", translate("Port")) +port.rmempty = true +port.datatype = "port" + +pw = s:option(Value, "password", translate("Password")) +pw.rmempty = true +pw.password = true + +hwaddr=s:option(Value, "hwaddr", translate("HW Address")) +hwaddr.rmempty = true +hwaddr.datatype = "macaddr" + +ao_driver=s:option(ListValue, "ao_driver", translate("AO Driver")) +ao_driver:value("", translate("Default")) +ao_driver:value("alsa") +--ao_driver:value("alsa05") +--ao_driver:value("arts") +--ao_driver:value("esd") +--ao_driver:value("irix") +--ao_driver:value("nas") +ao_driver:value("oss") +--ao_driver:value("sun") + +ao_devicename=s:option(Value, "ao_devicename", translate("AO Device Name")) +ao_devicename.rmempty = true + +ao_deviceid = s:option(ListValue, "ao_deviceid", translate("AO Device ID")) +ao_deviceid.rmempty = true +ao_deviceid:value("", translate("Default")) +local pats = io.popen("find /proc/asound/ -type d -name 'card*' | sort") +if pats then + local l + while true do + l = pats:read("*l") + if not l then break end + + l = string.gsub(l, "/proc/asound/card", "") + if l then + ao_deviceid:value(l) + end + end + pats:close() +end + +return m diff --git a/luci-app-shairplay/po/ja/shairplay.po b/luci-app-shairplay/po/ja/shairplay.po new file mode 100644 index 00000000..07fa7be6 --- /dev/null +++ b/luci-app-shairplay/po/ja/shairplay.po @@ -0,0 +1,54 @@ +msgid "" +msgstr "" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: 2017-01-03 15:06+0900\n" +"Last-Translator: INAGAKI Hiroshi \n" +"Language-Team: \n" +"Language: ja\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" +"X-Poedit-Basepath: .\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +msgid "AO Device ID" +msgstr "オーディオ出力 デバイスID" + +msgid "AO Device Name" +msgstr "オーディオ出力 デバイス名" + +msgid "AO Driver" +msgstr "オーディオ出力 デバイスドライバー" + +msgid "Airport Name" +msgstr "Airport名" + +msgid "Default" +msgstr "デフォルト" + +msgid "Enabled" +msgstr "有効" + +msgid "HW Address" +msgstr "ハードウェア アドレス" + +msgid "Password" +msgstr "パスワード" + +msgid "Port" +msgstr "ポート" + +msgid "Respawn" +msgstr "リスポーン" + +msgid "Shairplay" +msgstr "" + +msgid "" +"Shairplay is a simple AirPlay server implementation, here you can configure " +"the settings." +msgstr "" +"Shairplayは、シンプルなAirPlay サーバー実装です。ここでは、設定を行うことがで" +"きます。" diff --git a/luci-app-shairplay/po/pt-br/shairplay.po b/luci-app-shairplay/po/pt-br/shairplay.po new file mode 100644 index 00000000..c7d0ab18 --- /dev/null +++ b/luci-app-shairplay/po/pt-br/shairplay.po @@ -0,0 +1,54 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.11\n" +"Last-Translator: Luiz Angelo Daros de Luca \n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language: pt_BR\n" +"X-Poedit-Bookmarks: -1,5,-1,-1,-1,-1,-1,-1,-1,-1\n" + +msgid "AO Device ID" +msgstr "Identificador do dispositivo AO" + +msgid "AO Device Name" +msgstr "Nome do dispositivo AO" + +msgid "AO Driver" +msgstr "Driver do AO" + +msgid "Airport Name" +msgstr "Nome do Airport" + +msgid "Default" +msgstr "Padrão" + +msgid "Enabled" +msgstr "Habilitado" + +msgid "HW Address" +msgstr "Endereço de Hardware" + +msgid "Password" +msgstr "Senha" + +msgid "Port" +msgstr "Porta" + +msgid "Respawn" +msgstr "Redisparar" + +msgid "Shairplay" +msgstr "Shairplay" + +msgid "" +"Shairplay is a simple AirPlay server implementation, here you can configure " +"the settings." +msgstr "" +"Shairplay é uma implementação simples de um servidor AirPlay. Aqui você pode " +"configurá-lo." diff --git a/luci-app-shairplay/po/ru/shairplay.po b/luci-app-shairplay/po/ru/shairplay.po new file mode 100644 index 00000000..037e90b5 --- /dev/null +++ b/luci-app-shairplay/po/ru/shairplay.po @@ -0,0 +1,56 @@ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: LuCI: shairplay\n" +"POT-Creation-Date: 2017-12-06 11:15+0300\n" +"PO-Revision-Date: 2018-01-14 11:43+0300\n" +"Language-Team: http://cyber-place.ru\n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: Poedit 1.8.7.1\n" +"Last-Translator: Vladimir aka sunny \n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"Language: ru\n" +"Project-Info: Это технический перевод, не дословный. Главное-удобный русский " +"интерфейс, все проверялось в графическом режиме, совместим с другими apps\n" + +msgid "AO Device ID" +msgstr "AO ID устройства" + +msgid "AO Device Name" +msgstr "AO имя устройства" + +msgid "AO Driver" +msgstr "AO драйвер" + +msgid "Airport Name" +msgstr "Имя Air-порта" + +msgid "Default" +msgstr "По умолчанию" + +msgid "Enabled" +msgstr "Включено" + +msgid "HW Address" +msgstr "HW адрес" + +msgid "Password" +msgstr "Пароль" + +msgid "Port" +msgstr "Порт" + +msgid "Respawn" +msgstr "Перерождение" + +msgid "Shairplay" +msgstr "Shairplay" + +msgid "" +"Shairplay is a simple AirPlay server implementation, here you can configure " +"the settings." +msgstr "" +"Shairplay является простой реализацией сервера AirPlay, здесь вы можете его " +"настроить." diff --git a/luci-app-shairplay/po/templates/shairplay.pot b/luci-app-shairplay/po/templates/shairplay.pot new file mode 100644 index 00000000..b3da99e0 --- /dev/null +++ b/luci-app-shairplay/po/templates/shairplay.pot @@ -0,0 +1,40 @@ +msgid "" +msgstr "Content-Type: text/plain; charset=UTF-8" + +msgid "AO Device ID" +msgstr "" + +msgid "AO Device Name" +msgstr "" + +msgid "AO Driver" +msgstr "" + +msgid "Airport Name" +msgstr "" + +msgid "Default" +msgstr "" + +msgid "Enabled" +msgstr "" + +msgid "HW Address" +msgstr "" + +msgid "Password" +msgstr "" + +msgid "Port" +msgstr "" + +msgid "Respawn" +msgstr "" + +msgid "Shairplay" +msgstr "" + +msgid "" +"Shairplay is a simple AirPlay server implementation, here you can configure " +"the settings." +msgstr "" diff --git a/luci-app-shairplay/root/etc/uci-defaults/40_luci-shairplay b/luci-app-shairplay/root/etc/uci-defaults/40_luci-shairplay new file mode 100644 index 00000000..6ab44fbe --- /dev/null +++ b/luci-app-shairplay/root/etc/uci-defaults/40_luci-shairplay @@ -0,0 +1,20 @@ +#!/bin/sh +[ ! -f "/usr/share/ucitrack/luci-app-shairplay.json" ] && { + cat > /usr/share/ucitrack/luci-app-shairplay.json << EEOF +{ + "config": "shairplay", + "init": "shairplay" +} +EEOF +} + +# needed for "Save and Apply" to restart shairplay +uci -q batch <<-EOF >/dev/null + delete ucitrack.@shairplay[-1] + add ucitrack shairplay + set ucitrack.@shairplay[-1].init="shairplay" + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/luci-app-trojan-server/Makefile b/luci-app-trojan-server/Makefile deleted file mode 100644 index 27999b7e..00000000 --- a/luci-app-trojan-server/Makefile +++ /dev/null @@ -1,17 +0,0 @@ -# Copyright (C) 2019-2020 Lienol -# -# This is free software, licensed under the GNU General Public License v3. -# - -include $(TOPDIR)/rules.mk - -PKG_NAME:=luci-app-trojan-server -LUCI_TITLE:=LuCI support for Trojan Server -LUCI_DEPENDS:=+luci-lib-jsonc +trojan -LUCI_PKGARCH:=all -PKG_VERSION:=1 -PKG_RELEASE:=1 - -include $(TOPDIR)/feeds/luci/luci.mk - -# call BuildPackage - OpenWrt buildroot signature \ No newline at end of file diff --git a/luci-app-trojan-server/luasrc/controller/trojan_server.lua b/luci-app-trojan-server/luasrc/controller/trojan_server.lua deleted file mode 100644 index 98846fa8..00000000 --- a/luci-app-trojan-server/luasrc/controller/trojan_server.lua +++ /dev/null @@ -1,44 +0,0 @@ --- Copyright 2019 Lienol -module("luci.controller.trojan_server", package.seeall) -local http = require "luci.http" - -function index() - if not nixio.fs.access("/etc/config/trojan_server") then return end - entry({"admin", "vpn"}, firstchild(), "VPN", 45).dependent = false - local page = entry({"admin", "vpn", "trojan_server"}, cbi("trojan_server/index"), - _("Trojan Server")) - page.order = 3 - page.dependent = true - page.acl_depends = { "luci-app-trojan-server" } - entry({"admin", "vpn", "trojan_server", "config"}, - cbi("trojan_server/config")).leaf = true - - entry({"admin", "vpn", "trojan_server", "users_status"}, - call("trojan_users_status")).leaf = true - entry({"admin", "vpn", "trojan_server", "get_log"}, call("get_log")).leaf = - true - entry({"admin", "vpn", "trojan_server", "clear_log"}, call("clear_log")).leaf = - true -end - -local function http_write_json(content) - http.prepare_content("application/json") - http.write_json(content or {code = 1}) -end - -function trojan_users_status() - local e = {} - e.index = luci.http.formvalue("index") - e.status = luci.sys.call( - "ps -w| grep -v grep | grep '/var/etc/trojan_server/" .. - luci.http.formvalue("id") .. "' >/dev/null") == 0 - http_write_json(e) -end - -function get_log() - luci.http.write(luci.sys.exec( - "[ -f '/var/log/trojan_server/app.log' ] && cat /var/log/trojan_server/app.log")) -end - -function clear_log() luci.sys.call("echo '' > /var/log/trojan_server/app.log") end - diff --git a/luci-app-trojan-server/luasrc/model/cbi/trojan_server/api/gen_trojan_config_file.lua b/luci-app-trojan-server/luasrc/model/cbi/trojan_server/api/gen_trojan_config_file.lua deleted file mode 100644 index e4811085..00000000 --- a/luci-app-trojan-server/luasrc/model/cbi/trojan_server/api/gen_trojan_config_file.lua +++ /dev/null @@ -1,40 +0,0 @@ -local ucursor = require"luci.model.uci".cursor() -local json = require "luci.jsonc" -local server_section = arg[1] -local server = ucursor:get_all("trojan_server", server_section) - -local trojan = { - run_type = "server", - local_addr = "0.0.0.0", - local_port = tonumber(server.port), - remote_addr = (server.remote_enable == "1" and server.remote_address) and - server.remote_address or nil, - remote_port = (server.remote_enable == "1" and server.remote_port) and - server.remote_port or nil, - password = server.password, - log_level = 1, - ssl = { - cert = server.ssl_certFile, - key = server.ssl_keyFile, - key_password = "", - cipher = "ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:AES128-SHA:AES256-SHA:DES-CBC3-SHA", - cipher_tls13 = "TLS_AES_128_GCM_SHA256:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_256_GCM_SHA384", - prefer_server_cipher = true, - alpn = {"http/1.1"}, - reuse_session = true, - session_ticket = false, - session_timeout = 600, - plain_http_response = "", - curves = "", - dhparam = "" - }, - tcp = { - prefer_ipv4 = false, - no_delay = true, - keep_alive = true, - reuse_port = false, - fast_open = (server.fast_open == "true") and true or false, - fast_open_qlen = 20 - } -} -print(json.stringify(trojan, 1)) diff --git a/luci-app-trojan-server/luasrc/model/cbi/trojan_server/config.lua b/luci-app-trojan-server/luasrc/model/cbi/trojan_server/config.lua deleted file mode 100644 index 060ce52d..00000000 --- a/luci-app-trojan-server/luasrc/model/cbi/trojan_server/config.lua +++ /dev/null @@ -1,54 +0,0 @@ -local app_name = "trojan_server" -local d = require "luci.dispatcher" - -map = Map(app_name, "Trojan " .. translate("Server Config")) -map.redirect = d.build_url("admin", "vpn", "trojan_server") - -t = map:section(NamedSection, arg[1], "user", "") -t.addremove = false -t.dynamic = false - -enable = t:option(Flag, "enable", translate("Enable")) -enable.default = "1" -enable.rmempty = false - -remarks = t:option(Value, "remarks", translate("Remarks")) -remarks.default = translate("Remarks") -remarks.rmempty = false - -port = t:option(Value, "port", translate("Port")) -port.datatype = "port" -port.rmempty = false - -password = t:option(DynamicList, "password", translate("Password")) - -tcp_fast_open = t:option(ListValue, "tcp_fast_open", translate("TCP Fast Open"), - translate( - "Enable TCP fast open (kernel support required)")) -tcp_fast_open:value("false") -tcp_fast_open:value("true") - -remote_enable = t:option(Flag, "remote_enable", translate("Enable Remote"), - translate( - "You can forward to Nginx/Caddy/V2ray WebSocket and more.")) -remote_enable.default = "1" -remote_enable.rmempty = false - -remote_address = t:option(Value, "remote_address", translate("Remote Address")) -remote_address.default = "127.0.0.1" -remote_address:depends("remote_enable", 1) - -remote_port = t:option(Value, "remote_port", translate("Remote Port")) -remote_port.datatype = "port" -remote_port.default = "80" -remote_port:depends("remote_enable", 1) - -tls_certFile = t:option(Value, "ssl_certFile", - "HTTPS" .. translate("Public key absolute path"), - translate("as:") .. "/etc/ssl/fullchain.pem") - -tls_keyFile = t:option(Value, "ssl_keyFile", - "HTTPS" .. translate("Private key absolute path"), - translate("as:") .. "/etc/ssl/private.key") - -return map diff --git a/luci-app-trojan-server/luasrc/model/cbi/trojan_server/index.lua b/luci-app-trojan-server/luasrc/model/cbi/trojan_server/index.lua deleted file mode 100644 index a6348a78..00000000 --- a/luci-app-trojan-server/luasrc/model/cbi/trojan_server/index.lua +++ /dev/null @@ -1,58 +0,0 @@ -local i = require "luci.dispatcher" -local e = require "nixio.fs" -local e = require "luci.sys" -local e = luci.model.uci.cursor() -local o = "trojan_server" - -m = Map(o, translate("Trojan Server")) - -t = m:section(TypedSection, "global", translate("Global Settings")) -t.anonymous = true -t.addremove = false -e = t:option(Flag, "enable", translate("Enable")) -e.rmempty = false - -t = m:section(TypedSection, "user", translate("Users Manager")) -t.anonymous = true -t.addremove = true -t.template = "cbi/tblsection" -t.extedit = i.build_url("admin", "vpn", o, "config", "%s") -function t.create(t, e) - local e = TypedSection.create(t, e) - luci.http.redirect(i.build_url("admin", "vpn", o, "config", e)) -end -function t.remove(t, a) - t.map.proceed = true - t.map:del(a) - luci.http.redirect(i.build_url("admin", "vpn", o)) -end -e = t:option(Flag, "enable", translate("Enable")) -e.width = "5%" -e.rmempty = false -e = t:option(DummyValue, "status", translate("Status")) -e.template = "trojan_server/users_status" -e.value = translate("Collecting data...") -e = t:option(DummyValue, "remarks", translate("Remarks")) -e.width = "20%" -e = t:option(DummyValue, "port", translate("Port")) -e.width = "20%" - -e = t:option(DummyValue, "password", translate("Password")) -e.width = "30%" -e.cfgvalue = function(self, section) - local e = m:get(section, "password") or "" - local t = "" - if type(e) == "table" then - for a = 1, #e do t = t .. e[a] .. "," end - t = string.sub(t, 0, #t - 1) - else - t = e - end - return t -end - -m:append(Template("trojan_server/log")) - -m:append(Template("trojan_server/users_list_status")) -return m - diff --git a/luci-app-trojan-server/luasrc/view/trojan_server/log.htm b/luci-app-trojan-server/luasrc/view/trojan_server/log.htm deleted file mode 100644 index b3e480f2..00000000 --- a/luci-app-trojan-server/luasrc/view/trojan_server/log.htm +++ /dev/null @@ -1,31 +0,0 @@ - -
- - <%:Logs%> - - - -
diff --git a/luci-app-trojan-server/luasrc/view/trojan_server/users_list_status.htm b/luci-app-trojan-server/luasrc/view/trojan_server/users_list_status.htm deleted file mode 100644 index 7b9009b5..00000000 --- a/luci-app-trojan-server/luasrc/view/trojan_server/users_list_status.htm +++ /dev/null @@ -1,23 +0,0 @@ -<% -local dsp = require "luci.dispatcher" --%> - - \ No newline at end of file diff --git a/luci-app-trojan-server/luasrc/view/trojan_server/users_status.htm b/luci-app-trojan-server/luasrc/view/trojan_server/users_status.htm deleted file mode 100644 index 73baddc1..00000000 --- a/luci-app-trojan-server/luasrc/view/trojan_server/users_status.htm +++ /dev/null @@ -1,3 +0,0 @@ -<%+cbi/valueheader%> --- -<%+cbi/valuefooter%> \ No newline at end of file diff --git a/luci-app-trojan-server/po/zh-cn b/luci-app-trojan-server/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-trojan-server/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-trojan-server/po/zh_Hans/trojan_server.po b/luci-app-trojan-server/po/zh_Hans/trojan_server.po deleted file mode 100644 index 2111c944..00000000 --- a/luci-app-trojan-server/po/zh_Hans/trojan_server.po +++ /dev/null @@ -1,68 +0,0 @@ -msgid "Trojan Server" -msgstr "Trojan 服务器" - -msgid "Global Settings" -msgstr "全局设置" - -msgid "Server Config" -msgstr "服务器配置" - -msgid "Users Manager" -msgstr "用户管理" - -msgid "Remarks" -msgstr "备注" - -msgid "Port" -msgstr "端口" - -msgid "Password" -msgstr "密码" - -msgid "TCP Fast Open" -msgstr "TCP快速打开" - -msgid "Enable TCP fast open (kernel support required)" -msgstr "是否启用TCP快速打开(需要内核支持)" - -msgid "Enable Remote" -msgstr "启用转发" - -msgid "You can forward to Nginx/Caddy/V2ray WebSocket and more." -msgstr "您可以转发到Nginx/Caddy/V2ray WebSocket等。" - -msgid "Remote Address" -msgstr "远程地址" - -msgid "Remote Port" -msgstr "远程端口" - -msgid "as:" -msgstr "如:" - -msgid "Public key absolute path" -msgstr "公钥文件绝对路径" - -msgid "Private key absolute path" -msgstr "私钥文件绝对路径" - -msgid "Logs" -msgstr "日志" - -msgid "Clear logs" -msgstr "清空日志" - -msgid "Enabled" -msgstr "启用" - -msgid "Status" -msgstr "状态" - -msgid "Current Condition" -msgstr "当前状态" - -msgid "NOT RUNNING" -msgstr "未运行" - -msgid "RUNNING" -msgstr "运行中" \ No newline at end of file diff --git a/luci-app-trojan-server/root/etc/config/trojan_server b/luci-app-trojan-server/root/etc/config/trojan_server deleted file mode 100644 index cff3b916..00000000 --- a/luci-app-trojan-server/root/etc/config/trojan_server +++ /dev/null @@ -1,13 +0,0 @@ - -config global - option enable '0' - -config user - option enable '1' - option remarks '测试' - option port '45443' - option tcp_fast_open 'false' - option ssl_certFile '/etc/config/ssl/fullchain.pem' - option ssl_keyFile '/etc/config/ssl/private.key' - list password '123456' - diff --git a/luci-app-trojan-server/root/etc/init.d/trojan_server b/luci-app-trojan-server/root/etc/init.d/trojan_server deleted file mode 100755 index fb2bf361..00000000 --- a/luci-app-trojan-server/root/etc/init.d/trojan_server +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh /etc/rc.common -# Copyright (C) 2019-2020 Lienol - -START=99 - -CONFIG=trojan_server -CONFIG_PATH=/var/etc/$CONFIG -LOG_PATH=/var/log/$CONFIG -LOG_APP_FILE=$LOG_PATH/app.log - -echolog() { - echo -e "$(date "+%Y-%m-%d %H:%M:%S"): $1" >> $LOG_APP_FILE -} - -gen_trojan_config_file() { - config_get enable $1 enable - [ "$enable" = "0" ] && return 0 - config_get remarks $1 remarks - config_get port $1 port - config_get ssl_certFile $1 ssl_certFile - config_get ssl_keyFile $1 ssl_keyFile - [ ! -f "$ssl_certFile" ] && echolog "$remarks $port 找不到HTTPS公钥文件,运行失败!" && exit - [ ! -f "$ssl_keyFile" ] && echolog "$remarks $port 找不到HTTPS私钥文件,运行失败!" && exit - lua /usr/lib/lua/luci/model/cbi/trojan_server/api/gen_trojan_config_file.lua $1 > $CONFIG_PATH/$1.json - echolog "$remarks $port 生成并运行 Trojan 配置文件 - $CONFIG_PATH/$1.json" - trojan -c $CONFIG_PATH/$1.json >/dev/null 2>&1 & -} - -start_trojan_server() { - mkdir -p $CONFIG_PATH $LOG_PATH - touch $LOG_APP_FILE - config_foreach gen_trojan_config_file "user" - fw3 reload >/dev/null 2>&1 & -} - -stop_trojan_server() { - fw3 reload >/dev/null 2>&1 - ps -w | grep "$CONFIG_PATH/" | grep -v "grep" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 & - rm -rf $CONFIG_PATH - rm -rf $LOG_PATH -} - -start() { - config_load $CONFIG - enable=$(uci get $CONFIG.@global[0].enable) - if [ "$enable" = "0" ];then - stop_trojan_server - else - start_trojan_server - fi -} - -stop() { - stop_trojan_server -} - -restart() { - stop - start -} \ No newline at end of file diff --git a/luci-app-trojan-server/root/etc/uci-defaults/luci-app-trojan-server b/luci-app-trojan-server/root/etc/uci-defaults/luci-app-trojan-server deleted file mode 100644 index 53db7e03..00000000 --- a/luci-app-trojan-server/root/etc/uci-defaults/luci-app-trojan-server +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -[ ! -f "/usr/share/ucitrack/luci-app-trojan_server.json" ] && { - cat > /usr/share/ucitrack/luci-app-trojan_server.json << EEOF -{ - "config": "trojan_server", - "init": "trojan_server" -} -EEOF -} - -uci -q batch <<-EOF >/dev/null - delete firewall.trojan_server - set firewall.trojan_server=include - set firewall.trojan_server.type=script - set firewall.trojan_server.path=/usr/share/trojan_server/firewall.include - set firewall.trojan_server.reload=1 -EOF - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@trojan_server[-1] - add ucitrack trojan_server - set ucitrack.@trojan_server[-1].init=trojan_server - commit ucitrack -EOF - -chmod a+x /usr/share/trojan_server/* >/dev/null 2>&1 - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/luci-app-trojan-server/root/usr/share/rpcd/acl.d/luci-app-trojan-server.json b/luci-app-trojan-server/root/usr/share/rpcd/acl.d/luci-app-trojan-server.json deleted file mode 100644 index 7eb91aec..00000000 --- a/luci-app-trojan-server/root/usr/share/rpcd/acl.d/luci-app-trojan-server.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "luci-app-trojan-server": { - "description": "Grant UCI access for luci-app-trojan-server", - "read": { - "uci": [ "trojan_server" ] - }, - "write": { - "uci": [ "trojan_server" ] - } - } -} diff --git a/luci-app-trojan-server/root/usr/share/trojan_server/firewall.include b/luci-app-trojan-server/root/usr/share/trojan_server/firewall.include deleted file mode 100755 index 462ad5b4..00000000 --- a/luci-app-trojan-server/root/usr/share/trojan_server/firewall.include +++ /dev/null @@ -1,39 +0,0 @@ -#!/bin/sh - -count=$(iptables -n -L INPUT 2>/dev/null | grep -c "TROJAN-SERVER") -if [ -n "$count" ]; then - until [ "$count" = 0 ] - do - rules=$(iptables -n -L INPUT --line-num 2>/dev/null | grep "TROJAN-SERVER" | awk '{print $1}') - for rule in $rules - do - iptables -D INPUT $rule 2>/dev/null - break - done - count=$(expr $count - 1) - done -fi - -iptables -F TROJAN-SERVER 2>/dev/null && iptables -X TROJAN-SERVER 2>/dev/null - -enable=$(uci -q get trojan_server.@global[0].enable) -if [ $enable -eq 1 ]; then - iptables -N TROJAN-SERVER - iptables -I INPUT -j TROJAN-SERVER - - count=$(uci show trojan_server | grep "@user" | sed -n '$p' | cut -d '[' -f 2 | cut -d ']' -f 1) - [ -n "$count" ] && [ "$count" -ge 0 ] && { - u_get() { - local ret=$(uci -q get trojan_server.@user[$1].$2) - echo ${ret:=$3} - } - for i in $(seq 0 $count); do - enable=$(u_get $i enable 0) - [ $enable -eq 0 ] && continue - remarks=$(u_get $i remarks) - port=$(u_get $i port) - iptables -A TROJAN-SERVER -p tcp --dport $port -m comment --comment "$remarks" -j ACCEPT - iptables -A TROJAN-SERVER -p udp --dport $port -m comment --comment "$remarks" -j ACCEPT - done - } -fi diff --git a/luci-app-trojan-server/root/usr/share/ucitrack/luci-app-trojan-server.json b/luci-app-trojan-server/root/usr/share/ucitrack/luci-app-trojan-server.json deleted file mode 100644 index 152e1059..00000000 --- a/luci-app-trojan-server/root/usr/share/ucitrack/luci-app-trojan-server.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "config": "trojan_server", - "init": "trojan_server" -} diff --git a/luci-app-uugamebooster/Makefile b/luci-app-uugamebooster/Makefile index e6db4e99..7e7a3524 100644 --- a/luci-app-uugamebooster/Makefile +++ b/luci-app-uugamebooster/Makefile @@ -1,14 +1,18 @@ -# SPDX-License-Identifier: Apache-2.0 +# Copyright (C) 2021 Openwrt.org +# +# This is free software, licensed under the Apache License, Version 2.0 . # include $(TOPDIR)/rules.mk -PKG_LICENSE:=Apache-2.0 - LUCI_TITLE:=LuCI support for UUgamebooster LUCI_DEPENDS:=+uugamebooster LUCI_PKGARCH:=all +PKG_NAME:=luci-app-uugamebooster +PKG_VERSION:=2.0 +PKG_RELEASE:=2 + include $(TOPDIR)/feeds/luci/luci.mk # call BuildPackage - OpenWrt buildroot signature diff --git a/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js b/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js deleted file mode 100644 index de7e6be6..00000000 --- a/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js +++ /dev/null @@ -1,87 +0,0 @@ -// SPDX-License-Identifier: Apache-2.0 - -'use strict'; -'require form'; -'require poll'; -'require rpc'; -'require uci'; -'require view'; - -const callServiceList = rpc.declare({ - object: 'service', - method: 'list', - params: ['name'], - expect: { '': {} } -}); - -function getServiceStatus() { - return L.resolveDefault(callServiceList('uugamebooster'), {}).then(function (res) { - var isRunning = false; - try { - isRunning = res['uugamebooster']['instances']['uugamebooster']['running']; - } catch (e) { } - return isRunning; - }); -} - -function renderStatus(isRunning) { - var spanTemp = '%s %s'; - var renderHTML; - if (isRunning) { - renderHTML = spanTemp.format('green', _('UU GameAcc'), _('RUNNING')) - } else { - renderHTML = spanTemp.format('red', _('UU GameAcc'), _('NOT RUNNING')); - } - - return renderHTML; -} - -return view.extend({ - load: function() { - return Promise.all([ - uci.load('uugamebooster') - ]); - }, - - render: function() { - let m, s, o; - - m = new form.Map('uugamebooster', _('UU Game Accelerator'), - _('A Paid Game Acceleration service')); - - s = m.section(form.TypedSection); - s.anonymous = true; - s.render = function () { - poll.add(function () { - return L.resolveDefault(getServiceStatus()).then(function (res) { - var view = document.getElementById('service_status'); - view.innerHTML = renderStatus(res); - }); - }); - - return E('div', { class: 'cbi-section', id: 'status_bar' }, [ - E('p', { id: 'service_status' }, _('Collecting data...')) - ]); - } - - s = m.section(form.NamedSection, 'config', 'uugamebooster'); - - o = s.option(form.Flag, 'enabled', _('Enable')); - o.default = o.disabled; - o.rmempty = false; - - s = m.section(form.TypedSection); - s.anonymous = true; - s.render = function () { - return E('div', {class: 'cbi-section'}, [ - E('p', [ - E('img', {src: '/uugamebooster/uuios.png', height: '300'}), - E('img', {src: '/uugamebooster/uuandroid.png', height: '300'}) - ]) - ]) - } - - return m.render(); - } - -}); diff --git a/luci-app-uugamebooster/luasrc/controller/uugamebooster.lua b/luci-app-uugamebooster/luasrc/controller/uugamebooster.lua new file mode 100644 index 00000000..d427f275 --- /dev/null +++ b/luci-app-uugamebooster/luasrc/controller/uugamebooster.lua @@ -0,0 +1,17 @@ +module("luci.controller.uugamebooster", package.seeall) + +function index() + if not nixio.fs.access("/etc/config/uugamebooster") then + return + end + + entry({"admin", "services", "uugamebooster"}, cbi("uugamebooster"), ("UU GameAcc"), 99).dependent = true + entry({"admin", "services", "uugamebooster", "status"}, call("act_status")).leaf = true +end + +function act_status() + local e = {} + e.running = luci.sys.call("pgrep -f uugamebooster >/dev/null") == 0 + luci.http.prepare_content("application/json") + luci.http.write_json(e) +end diff --git a/luci-app-uugamebooster/luasrc/model/cbi/uugamebooster.lua b/luci-app-uugamebooster/luasrc/model/cbi/uugamebooster.lua new file mode 100644 index 00000000..812c4068 --- /dev/null +++ b/luci-app-uugamebooster/luasrc/model/cbi/uugamebooster.lua @@ -0,0 +1,19 @@ +require("luci.util") + +mp = Map("uugamebooster") +mp.title = translate("UU Game Accelerator") +mp.description = translate("A Paid Game Acceleration service") + +mp:section(SimpleSection).template = "uugamebooster/uugamebooster_status" + +s = mp:section(TypedSection, "uugamebooster") +s.anonymous = true +s.addremove = false + +o = s:option(Flag, "enabled", translate("Enable")) +o.default = 0 +o.optional = false + +mp:section(SimpleSection).template = "uugamebooster/uugamebooster_qcode" + +return mp diff --git a/luci-app-uugamebooster/luasrc/view/uugamebooster/uugamebooster_qcode.htm b/luci-app-uugamebooster/luasrc/view/uugamebooster/uugamebooster_qcode.htm new file mode 100644 index 00000000..12cb2e97 --- /dev/null +++ b/luci-app-uugamebooster/luasrc/view/uugamebooster/uugamebooster_qcode.htm @@ -0,0 +1,6 @@ + +
+

+ +

+
diff --git a/luci-app-uugamebooster/luasrc/view/uugamebooster/uugamebooster_status.htm b/luci-app-uugamebooster/luasrc/view/uugamebooster/uugamebooster_status.htm new file mode 100644 index 00000000..c8abb464 --- /dev/null +++ b/luci-app-uugamebooster/luasrc/view/uugamebooster/uugamebooster_status.htm @@ -0,0 +1,21 @@ + + +
+

+ <%:Collecting data...%> +

+
diff --git a/luci-app-uugamebooster/po/templates/uugamebooster.pot b/luci-app-uugamebooster/po/templates/uugamebooster.pot deleted file mode 100644 index e328b81e..00000000 --- a/luci-app-uugamebooster/po/templates/uugamebooster.pot +++ /dev/null @@ -1,23 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -#: applications/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js:70 -msgid "Enable" -msgstr "" - -#: applications/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js:32 -#: applications/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js:34 -msgid "UU GameAcc" -msgstr "" - -#: applications/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js:50 -msgid "UU Game Accelerator" -msgstr "" - -#: applications/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js:51 -msgid "A Paid Game Acceleration service" -msgstr "" - -#: applications/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js:64 -msgid "Collecting data..." -msgstr "" diff --git a/luci-app-uugamebooster/po/zh-cn b/luci-app-uugamebooster/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-uugamebooster/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-uugamebooster/po/zh-cn/uuplugin.po b/luci-app-uugamebooster/po/zh-cn/uuplugin.po new file mode 100644 index 00000000..d2a3ddbb --- /dev/null +++ b/luci-app-uugamebooster/po/zh-cn/uuplugin.po @@ -0,0 +1,12 @@ + +msgid "Enable" +msgstr "启用" + +msgid "UU GameAcc" +msgstr "UU游戏加速器" + +msgid "UU Game Accelerator" +msgstr "UU游戏加速器" + +msgid "A Paid Game Acceleration service" +msgstr "一个富家子弟用的主机游戏加速器 (开启服务后,使用手机APP绑定路由器并指定加速主机)" diff --git a/luci-app-uugamebooster/po/zh_Hans b/luci-app-uugamebooster/po/zh_Hans new file mode 120000 index 00000000..41451e4a --- /dev/null +++ b/luci-app-uugamebooster/po/zh_Hans @@ -0,0 +1 @@ +zh-cn \ No newline at end of file diff --git a/luci-app-uugamebooster/po/zh_Hans/uugamebooster.po b/luci-app-uugamebooster/po/zh_Hans/uugamebooster.po deleted file mode 100644 index f0df78aa..00000000 --- a/luci-app-uugamebooster/po/zh_Hans/uugamebooster.po +++ /dev/null @@ -1,23 +0,0 @@ -msgid "" -msgstr "Content-Type: text/plain; charset=UTF-8" - -#: applications/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js:70 -msgid "Enable" -msgstr "启用" - -#: applications/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js:32 -#: applications/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js:34 -msgid "UU GameAcc" -msgstr "UU游戏加速器" - -#: applications/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js:50 -msgid "UU Game Accelerator" -msgstr "UU游戏加速器" - -#: applications/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js:51 -msgid "A Paid Game Acceleration service" -msgstr "一个付费主机游戏加速器 (开启服务后,使用手机APP绑定路由器并指定加速主机)" - -#: applications/luci-app-uugamebooster/htdocs/luci-static/resources/view/uugamebooster.js:64 -msgid "Collecting data..." -msgstr "正在收集数据中..." diff --git a/luci-app-uugamebooster/root/etc/config/uuplugin b/luci-app-uugamebooster/root/etc/config/uuplugin new file mode 100644 index 00000000..3df31274 --- /dev/null +++ b/luci-app-uugamebooster/root/etc/config/uuplugin @@ -0,0 +1,4 @@ + +config uuplugin 'uuplugin' + option enabled '0' + diff --git a/luci-app-uugamebooster/root/etc/init.d/uugamebooster b/luci-app-uugamebooster/root/etc/init.d/uugamebooster new file mode 100755 index 00000000..ed517955 --- /dev/null +++ b/luci-app-uugamebooster/root/etc/init.d/uugamebooster @@ -0,0 +1,37 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2021 Tianling Shen + +USE_PROCD=1 +START=99 + +CONF="uugamebooster" +PROG="/usr/bin/uugamebooster" + +UU_CONF="/usr/share/uugamebooster/uu.conf" + +start_service() { + config_load "$CONF" + local enabled + config_get_bool enabled "config" "enabled" "0" + [ "$enabled" -eq "1" ] || return 1 + + procd_open_instance "$CONF" + + procd_set_param command "$PROG" "$UU_CONF" + + procd_set_param limits core="unlimited" + procd_set_param respawn + procd_set_param stdout 1 + procd_set_param stderr 1 + + procd_close_instance +} + +reload_service() { + stop + start +} + +service_triggers() { + procd_add_reload_trigger "$CONF" +} diff --git a/luci-app-uugamebooster/root/etc/uci-defaults/45_luci-uugamebooster b/luci-app-uugamebooster/root/etc/uci-defaults/45_luci-uugamebooster new file mode 100644 index 00000000..b8689ef2 --- /dev/null +++ b/luci-app-uugamebooster/root/etc/uci-defaults/45_luci-uugamebooster @@ -0,0 +1,19 @@ +#!/bin/sh +[ ! -f "/usr/share/ucitrack/luci-app-uugamebooster.json" ] && { + cat > /usr/share/ucitrack/luci-app-uugamebooster.json << EEOF +{ + "config": "uugamebooster", + "init": "uugamebooster" +} +EEOF +} + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@uugamebooster[-1] + add ucitrack uugamebooster + set ucitrack.@uugamebooster[-1].init=uugamebooster + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/luci-app-uugamebooster/root/usr/share/luci/menu.d/luci-app-uugamebooster.json b/luci-app-uugamebooster/root/usr/share/luci/menu.d/luci-app-uugamebooster.json deleted file mode 100644 index e66370b9..00000000 --- a/luci-app-uugamebooster/root/usr/share/luci/menu.d/luci-app-uugamebooster.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "admin/services/uugamebooster": { - "title": "UU GameAcc", - "action": { - "type": "view", - "path": "uugamebooster" - }, - "depends": { - "acl": [ "luci-app-uugamebooster" ], - "uci": { "uugamebooster": true } - } - } -} diff --git a/luci-app-uugamebooster/root/usr/share/rpcd/acl.d/luci-app-uugamebooster.json b/luci-app-uugamebooster/root/usr/share/rpcd/acl.d/luci-app-uugamebooster.json index 11cbb55f..a99fc152 100644 --- a/luci-app-uugamebooster/root/usr/share/rpcd/acl.d/luci-app-uugamebooster.json +++ b/luci-app-uugamebooster/root/usr/share/rpcd/acl.d/luci-app-uugamebooster.json @@ -2,13 +2,10 @@ "luci-app-uugamebooster": { "description": "Grant UCI access for luci-app-uugamebooster", "read": { - "ubus": { - "service": [ "list" ] - }, - "uci": [ "uugamebooster" ] + "uci": [ "uuplugin" ] }, "write": { - "uci": [ "uugamebooster" ] + "uci": [ "uuplugin" ] } } } diff --git a/luci-app-uugamebooster/root/www/uuandriod.png b/luci-app-uugamebooster/root/www/uuandriod.png new file mode 100644 index 0000000000000000000000000000000000000000..edf7e8f59aed9f1cce3eca551e42b18f95f8a8c7 GIT binary patch literal 236262 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�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Á?=yDD50m}?5L~bO{m>M@KfX|$SmY2#&4Qz7+>DG z#Ddaa8JI#hfe(nH3=W;2x^Z9{wf%$eBh%VK-*un7G)rdf0lR@U-5cU}H`N1t;d1iN zddSB!qHi8B?!elqy~xPa$%H(-(N9UT{?H;o9F7s}1rsvS@(soLN!>9>e?Zr|7Y5Op zb9>o8PnT=ktoQHr;txo2L=+Jv z2r08zjlncBzQyN*ajdjmNB+Q-!G*QS52q(#>WIGGjBPjsc^)!ZQ~!v5Q*1w=f%$`M zAQ9%xyiL??E@nucUC%wuWDgOh@6^oJ@!nu@Z^Md^WJW+iS9&V((dMq3;2;PmApIOSp^d)WuEKIDt!M zK!tO+byPIC`QJ7H&r3UphW?KaM7+LMGJ5q!z{L+MkH_0cGQKr=IL1y0+;pLyUnP=HvfAmD*BJe5 z8t>dqgpO?^|Gg^{HVr->f*)HlXqweN=zhEPO?SI$IVCcR+6u~-ONA6o)~$@5cq*_7 z$pV$%Zek3L*TE3m6Z{1j)P8#Tc8b(?{#xC(Bb9#=sM%GG%q%hix9v}L1>DrT5 z#l$(15F`mFJ<#CmbFQE^$mCe_8fj-nn#kHvfaNlqhai>=L~*_7Xiynl4Hhgm3gf{z zgx*J9q+p)y29QiOFrI6XOh(@abbdffoZP}N^TqaL9#X!1k865sZ2=6;$5}#4Z@>MZ z6`;%P&+Nnt*ZS?jhVK^nki{Soi!GGIT#44|?7!dIZK=3=xSX8A( zvbtvQ3myi7zaeHRO>c0Q19`8q_MVEu21zg6{JS-%T}Hth^X1WdwwqX)iB(6oY#?%611%XKZ3)Yi~^EMo^;AG=cL zrMs#OwXKuJe9ye^c3)F|nqCP=8gLU`>P5ETVK&6zlUta+WxOMzA?4Zb&ZPHN_v}67 z)Qi1M!T@J$-X5ayhadst=2^gAew|Jv|4JOa+NZl67QsLcdjvr1O(U{3-sI=K;3$`K-z` zBGP%`ctUOzk*aX=&yLsd5&m0>KTXLoD9)El(a1y2Z)B1?7INOBmiKKA5kJ1e1^Gx8 zv^75QxwKn+MD5Vx{9y}E#w>~cn99K%Gyr8o_p^ZY{h7J_P1FL>JzLA1lM8L!cb7=L z$aE@huw+P+cB@QLzv_@_bR9d^L%-5S^VO*PsHGJjDyg0o>j7$InC`3GWd%MT1~W$E z^D&`otK^0bF3XAg2a)|HUBQ5*8#7CZMxC1L!^%=+2mF_s0-qI(%hq|GojXx>Q~fbpaWW5t-oaN zr_n}#=c`cUx!>7SW~;xpBD)0qgAMXlFSr0#m=WS$n5e%drb4(kheF31!cmx++Zu_D z)q2=a<1-?#Pw%C4?wx+1$wQAOr zM_XTl&ke6jC@|Vv{mfRYxgoOxq-6P z#Z`+=qFUKVy6f}hjUk~ma$QX@q0kr)k> zMa%lNcikrSuyvV|{(YEZe7|OQ>=CTo@JFc)j>0+5H(jToB^M1!Lm#{PQ6dm#Td;ss z#LwZJXaw)xpj2AwkyC6RB9+$&M@cQdX3dgnkSmL9Hja z*Wlp?Nqk;?sMUt}Un+$tT0=lSlrcHBdECrv7_}!|45Z2XB~=mMZ+K4=*kJo*v^C`# zsb)X3ZzpXQI8-?W_JI%c6YU5TMAAua>4iJ$H#L!`RyU$n$&JsEd+7mBy<2SjE%QNo z%5nb!k1%DbDM@=P^pW+E(~}*1u`*A)xqxESjeQmTl7J;r_=@=omJUv|Egw+~c8Z*& zH?Nu3`=`O;T1d+Klp4D) zfFjaV`w5s{!1cRy4-HPrB3 zE7Ue`83k$YG%|^>JZ1_UX=&EN_+9|~r`)S+7Ibjc*s0x|Vqsx3xu~{5-d%l85vUQ( z7Y!|Bb_6s^9DLc@pr#pO$k;|t7BGJT*$K3)oW!$r78ezIvQG{gbXj_x`8an^C>>TK z7O2|kGXIb#yGtT&d8u{sx$nV_tl%4@T)=%-TnKT=z@3eHpd9DkucoGrP+zS+lM2%~ zM!gtAy`^F1AItf-^hkBJ{cXfdKe3Vi!te~Q^ZrZ8=Z!8B2bd(pdI=qc+>$=Wczm7FNTvWl zSLe{uO+=T*`fU*z4*ursvIwMCq2qhiU?Bl-L%9Tzu(9nF$=|o6|v=3+`NWgCXe_ zO9TUtqnhqI$fYHp_AHFs%aTH8dGPf`y`y0rD*D#~*K5@ysKuxqO)5C@`mXCTYfK3$ zrMZS$Scbi?L=l8AMaT&*;9RU#;j9?^YoW#>9%+e(&rzI4P0rJsqH9+E!5lmo2K_5@ zVCvUj(@Q8S=(vj?sE+e>KUA>n5RR^(To8mUR_&Y(6)uNT06Jp^$mx7Hwro}YQs z56gw3r#S2avGgJUK@y&CvhtXE^cp-mAH)6Xzz&oG6ap}U%D3q(&HB6~Mo%I>q6<$2 z%^0*Wk|qk)JJ(SAF$9yw4W={^joOkv9pGPhlvRM9EXIjKI4pg-U$3*&Lq#`souylL zH_z;tn-yR6INekH?+L1tQyqpxCA^32W-F|yF{qx&lg9@ythtueQXy5FU3H-(O(H~UlZ|#w8 z`9d9PgpIL^Znw%obCC?7&_Nl!dqh~!7uFGEbdW+%AJJet&Q#C4Utuoc zzH*VpRaA^)-v7JYF2%d7)==s6;AmV5?(zVJZ56gZgx?ghrn9mRe_) zr8lyutyTGrr`q>eLCfx&#c4M}PP~0}(K9`z!wgI_>y6+2PL{H#YihTbK7d`}_wghQ zb=G)XK};u8DBT{FqDR*z>pyHt@y^BlnfS!Ddd+(RUC|B?{DE=t=l+B?bOsi3Ufi#D zCtEgR;M_5-_$ErqZyh65CAZ0*CK}Suy98Xx@qQRgAG+y+3Jg5a=TLGxqJh2Dn6;$b z7aCh#>>?DO)dq=r>a;5lRq1r;lr4JW>4X3rm!7W&r^{B~_;QzjDBKfDi_5gPcF35l z)TQ+FwjOWzCAH{O$j}Z$9*X!|6VH{yRH#p!QL194NXeN%pRzuYlNMYzj}Kz@7PT%e zV5N?L1CMYOtQ`GV#>!Jz`de#l6dqylgpoaw$3Y3C_UAM8bbz#+&0UmHebY*6h?~`zxR{G=>1fC!W zpx^gq=7S_I%t5%Yh8ui$Lqe$EB9IN=U$fb_~kw`@Ps8fEfo>={$L z|MGXa{bxAG*3Xp1%+*=?r>hmh7%VC8_-+GFHia0Tb*9|KJ#O%K~_q+MW~#H#-fTXQ#gmM6OU=d!pqy{|v#)Z)LByYlooPrf^r9Nc*#iySR2%%4M1)Q=vQ=;(`l*hGH*P@IhC1LWA42JnHc^MWFIGk^$7AAVC zpu62lzXGn5Ouw1#?(DVCu~$f-QRjF7Q-|0fx>|4u?tfxgsDmvylGOYkUjBbIb)3Nh z#@&fKRSO5AszCp7TxF)M61c8Z4*e|MOz@ubC{EuznScBf2RswvBnUqD?f54lAKM}g zY26N)M_;9z?oLcyqtQHQ!l&@a-jnKhG`*9f_3LGs1WZ4Fxu=4;FEB@Eqd@}fUN8u%WAGo zw=@ciFt0A~lhw$tW}l_vdZL!*$uTC4{J)C9!e%H!N3kgeqFRKUrikyxYh|s6`XH@m zmNmBqv)Fqqce~;X+-C6Cw(B(B-k@)fBhu;XJq#*eDT2Z&Sqn@9P>$t$eHD7ZNbUCg{k zjfVynkMXI<0im+a@^^ab#by5=u(+$)b6=j}n35EZ)fg;rtXF58>|TI_yc(M|Y2^D5OIv*J7m-QpOTYGOeL(>IW{n68X zhzgeK_xfuU8l*d~^i47E4B&!~aajFgk+}QXQ_snbPj?xg7E;}V8+g(E`uW|8tsjzs z4>R&slf(X5Iv(S!3Ulvmy`@ot#zY=M+{*!H6mLsyU<*yuKyD);sgqB&2O_4L)*1${E80x@i%3kHvl@v)<|=^ z462A`$oXE$m-Fo>9u8J3K4xJH!Xkf-zjPOZDo{Mk`_<}ngVlAqjUTJM2IT7s6O2(> zlx>fzj1)P9A<&!ig{~AEn@`%K=M=E!-T+tT(w`P!cO9{-H~M^68CNC+E!q9a4BKD- zr50cN*FFcV8pdEML5vw|P-@M6dhZbA0fM|^;V~r^y{J^b^MvXi!H|RO=F$gugQy~Z zcuOA0+V53!bSr{wT|AOiFf>`ne6hA8Izrz1<_9^N!73VpS~i4wUw~1Ve|U-0q-o;{ z`dBzjv~`nOCbfCAWUU5ZKJ(r-^8XHioNVu^Ohmt19>3te$X|N`%twgg;iG28y;!*Z zFv{+42R}BU05C-WMS$(-jF4a5+3Z}{@2E+iWa}H%A74mYt$mKOO%>xym`rsWx+rM1)18~*hD@(Nt2VXWOWYG^-d%|Z$GqP=DJ#5(6yc9 z-x+E0y26w5E8CPW;54aB92Cl$%WM27zgLcoHYwiQaYJ0xn(KZ-t|?a$NgVqxfBR|I zu6+88pRxSln#M}fr zBMgeQN`?k4FB4h77#*PK@&i#xDC;LFAGrzOejS5ri-!07c>qiN#*ZrqLZ7UScr;o5 zg1rT7F)bTwmml>ixV^-LVUsUT`4c}n1-F&2=Y7oo7?fIBx+{S zLbQQeC5pPR%@bPFu~mgy2h@Vb*%$F@uSogIHDz)HkP>5iBIJQ+R13(4xvmS!XN~dW z8tI+@cT3;+Lhl=Ka@$(nDkBpb09Jbqx!O^R2n>=f__nRZYTWwGMSK&&K}79;EjDEh z$*~-%IbfVAg2W|fhMMXp*)bGIG+QETS^-mx#23KL8keaC=BUN7#wt2LZZ@O*xCU=Y<$ADfi{+t^eq#KCa{%!UL%o?}HIhC@K zTs3Br-JKLoLB+3uTkXtAb?SOtX*t9IiSY24MWUNR5n$rpwLdT19@-eo^s= zqeTZG2OH&$JB%Ic^bzsyz88M(CS9H1Q8ln1J=C`n@dMjyPy0kKzJ^U@C}ZMgjjMi* zz^Q@{8$UKxEFJd{lQB43+VRQQ#nU>-qbd&~6LoHHK(Yu3+?c@cHs&rO@m@4}nselt zS>4xKiKE5e{1_9Z>`KHc@a_!3ZR&lHer&5igZM__e?u!S^tas9mXk^@eZ(?uw{X!m z9nD6k;NT~GHWcc~7YKQ9Hk>wFbGd2%hK_+-7!bB;_&XT>Kk-cA5^#6KucQN` z=?maE*}ay6sU2GPs|3ykydZF~0eSX+sPSjITLE>N`~e7Gx9T#|e+t8tYs?Xn!|Q=x zi<2>a6p{$p0>Sv!FSQxHK?-FN$;%5lMAY75`o4f~XO#$0_O^g+0*~}(&Ty>VdzNxT z8LhOti-r_J0y5Ch=?9XiEr3(jZI(jc+VxoPKr5r>R!l@!Z>QeaHP>Rs0J__!h*q+Y z11n-Z;4H$)Zzty_3N{M;2>x-t@HF#goLealB{R(Wt9egVPC@(w-{oTqrT8|dUZ?PX zF>`Evdx`RwaRTVxhQvVz4O890a!&F$fL9VDRU0;bC*S|W^0XR?3E$M;xnjLdrnmXd3L&Uf>u>3CaK}va`tShZw*#`{V%H6zP4K!vtMp*4m&Rr%Vv7*jtF$} zR>vN_`gq@yvGoa_7%}_le__7dGmkNYxPSFqa z2ZZYPXcfyT6{1gqfgc`+ifCkhUd#aE4+$MSix)3H?e7AT6>nVwaYF=zI4L>71f{ z3r)a{pchIHY#kQS$YKM+HGoU1VA-j2h#l&_JObZ8wdge1w-;aC@k8fQ<*n^Vi!FPl zKHytcz4CT0*tTjhEvcb>(~}`o%ii37VIDPVK2EYB#nkv+wAs5>^0=U)mmKJMIMeib@jdh`#?Mp9f_1lhM@8#mY}xeD(3FLJpk-t5r&kY~%gI zcv;mbUm#d7{^VbR_3n#Oj>p{mB1H|qX29;uI)#{G zv;cH=oj;L!Pt>baMqaRMz_i5~;r@h`-Hqs_hzvHykzo3(Hv0YIRf|(VyL!7&&O72R z47O&_qok+IenKgIPnX&+pW>M$TB0yr-^6>j02H#wWqX{=CGwEUcZDG)?u&guigr!_ z0`mpHRFPb{o6pZ=&s zIF5!$j({)a=#g7G_7eQ_LQPz1~j#+USFkncKWLWLu1A z?KYb1wmiD^^VZly_%o~SGh@g2sFk)EQL&;fixN;xu+ys2F$$l+fB~hEOh-ql>ZRof;5{XA+#j*6Fb{s2e=%vR?+T+Sq?0lLgaSM+S7HuwcM^pF z__8;=F>%9YOs!HWR|iPxsibUx5r^zA1&vE%dVYV6=U+MVz+` zo%4Q3c4zDJnx^+l@Kb-nL>EHQ*T1aF^_D?R0c);~*>fqW-lIz@3x8%rZps%gW?ZM7 zRZ+vAu)|**|9Y(S%UNMIQT*zMl7cz81 zE0o7O(7GH4-tiX3*PQ-NEpBM{;VwU=U^N-q+06kiw3GZK#+bk6jSwv`_z@%DJsWl4 znuSWU+o7qA*Pfp{*gB0(;F?eM^N0KgqAI1!jH~ee);*P32{vbkEj(n~DQ1v3IgS{z zZ;xE9b_Fu*fw}Us5ttSE?p5}`DxVp+A@oVaJs1ow)w6R4?R-v`nl`}`9BT1dGt;Vv zUz2XQMsR2r5bQDdhwgJGb?mK3(BDboE#?1&NGJbyh?GSaweH(C;X}KdLDQuHYwj1u z_vV+y^$^F0c4kBW9(41 zbq3dp(Ka{6T#fgxm|<@Ae0=6xS2{*7uzuv(M;xDU4aL7TK-u&4R2KXo^50#RSuYB+ zTK-UBehArzd-f63xg?;1x|l>)@jI>(M?UBO;Hso6duM@udDq5w8{;vR+J6Qke|)SC z8KT2@1FbL!fZTeA_Iz(N9-$~89#y$BZh?WgtsLOYIN4d~tNv#*oE<_d=PoTCOi3|k zD=Y$%kkjK{|Nlk5k1YeewETblhf8|ara>VI82q6!UwKTAWIUl&ptM{n1xz+h9(&Gqe(30> z>^lk9Y>Zc(%O&W7nH%qFAY)~CUp)~aCa1a+p$x})&$=c{fNaU>#q71Sv%5w(VX)f8 z;XhnXI0)Yp#R$7|H;8b$c+B zn~nbQJ`_m75e_nVdkB>Di6SZ=0!XXkcJj7$u9S6eyxfzYakYWYq-AGvJoUFbT~aIR z$awBsx1pd#@W0kj_EN;+WVa6-6#ApaL#g}Ey&C3y8@N|5-}!tsOSn;ml+>g{K&@u9 z#V@vYB#h$H51J8Y`or@EmAG0yr;MB^ta#@6nCo#4G%~MpI8R@2>N>_2228kzMfKRt z7>vG|U(YV_0p_yCKT{mU@A}_Q^c^`}IBxka@V?Ic&|{9T$It)?xLE$E=A1@h*4l+0 zywpBB``Y@mN&**OJE%c2jx6+(@dYx9eg4qb@@U*w$jT3_O}<>Kl~o1@ zCFar~dgmwENs^r8Bk;nh=6XY!_3(yX)#2lVXUN8a%ddh9SA_Wnd-xy6m;yo!=tAil z_9iTQ&63~$Tj#N^j)a|E=gUi4e?uc50`T+E1&;r1RsJM)iVm`Ca47Tl33-uci4TKY zqhm0~fMaV%86CFUJAQH2)S{beWag@+p4V5;c7@yc_W!>tiibDh{zf8zkKW^HRi8D{_5s0 z#Q>AAC?qL-_+`>tMixEt2{gORGxMQqOHi1^dw|pK;ja}K;D1jvXre?!Q=Bt#_Lu*I z)qeDc)lNXpoKjWN550dX6&7LkVqr*-zT)Pm6>OnPdXOd;+IqZ_RBy0cdJz~Grr+Zv zt0w@Ze74AkU)cUYe}w0K-{pMHqLN-Bg@2NVJMQlGO0-8Q-vT-#U4Tx^g||DLik%y! zbYJ$LKRYdqs(WxB9=*3S9RNH-@s1tZN+iglMZVYss2=}hkl~YF%)6*ioWSdO-*vcx zRK(KL6)Y#-sD7BG&Ob2myj(8NR%DXwEN=La$?eXv${mYcFr+6Y7Nl=3yLfo*eL-}_ zWKFsyj7BQ7aqWe28n@m;3pWCkw1w9nN?J$h!M|-2EL(LH!r7cGTPhZ%qO)9I`Ddig z_FMoeDD}aPsOOzAScYq(A%Ql@40B0N(Te56mrf7lcaSA6%<2J$vV3b*`W;SM2}RhQlLtG#2oP5C|RlGK5LYlgKx*q6x#C$UjW2XvfQ9ABGEu zI~kyA>GSo9e+vj26(Sn{m5z#B+TGu+tdqNwSQhf%^M3wE|NUJM^7-UtfezlH+fawg z8oK3tRN<(9;qrm21DI3x#NYn5GTs*c?94)wQP zV8qA|;M1R^dr6k(sz|Kqx{d5&p$VKrY{} z--yLu@6KntM@((x&nbeiu-5%=b5<^^g&bS_jmPN%jYg64fw?yOL^tj}l@_>a)snFP zl4$>_WoaUgcRzT?Qx0dtnEJs*e4t(<&ZqCWaQq%2=jK00u=uDA$mm65Iz3n|tX(Jg zGM8mO$EttNY-`_fL1H-WXkSz?iifMc=NWQlx5oh(9aFkK9=Y*ev&;<@Xz~iZ6oDRR@cvkta;rpaPw)DV)%}5Ox_pKKP%>AK2!h3j;?Bj9HS0tuJ0*${+7)SX;gs}AOl!EjVjAW@ zvvlfJ=hQZDYK+BB&SMSNfbXkQ&3_5{=D%Z4`lCW_wlR3f!CCpE{`RcGrUVOp;3=bX z&EA}k`J?$P`~tj7U?P!Ey}iYNhSFci8e0f+v?XTEsxx--LXEODCv1WqrQ?uK*j7j5 z#fD(X>}~KZpD~F_r)!&jK7Z@ADFyj&-stYmyv2?9d81G;vH;DwI@Qr>c>E4(Ip}PQ z$Hp51gV8Xr+9mI#n^F-X75)EI_2uzUx847;t2Clgl%Xt1wmXbv404wwOOz#hLSn|g zjAcYci;Qd|V@;8Jn6ZyBmPBOVjV()zU6wJJ5q=-f^S$rq{(1Sw>*bHnb*^(==UnHU z_xmlJ>0OhPX{>_&sOU!z4BL;=eboHwqKy5srQc*{X~+*^n?iFqvtb*T`FnnE@eRdq*!k;=h9v<9Zh@mYW#B-kv~9Z0<8B@KJYXHptjidNQONe zZT{f+RXZm3Q7LRzk;ZsEA*8TMk#oF4Ix#xhFYf(OB>4XRg-u4s?2(4BF#yF{uJS_87_R9 z`QSciUUL5JP2edH?BTOd!Ip)fn8%TC#?LDyG88p8Llu&TL>nrB>GaN)QhanQ8YnG? zo?0xPGZ;$%ih;ZK!Jn9Uu!EWbnP|NSNW-zFE_`A-_j7B(Wt&M!OE%sg_=OI|2;Poo z<3W(TzD^x`#ye%!aSLOA38EzL(`%>V*)yV|#HI&y+JcQLVY!s;{0Z z*>ei@U#lDBDlPT4vX5durT}8?>{UF71XVl8NpAG+g=_uxmj?7<%Pwg9pmqBPTK5n! z1HzjTjToNxq-Z92WLQ5D z0Ptk!OT8HK>(GL1LWqh1xOl~>N5N6_re29v=4wdI>886ZxK4dmVve ze)*1kS{VK+L=(tOjc6krHPRKr4y`|d{^lcJ=0_^|Ja-;}-OQ+~3w!#_Cc`0IUYwOv z>_ynQNM4x4aSY>27c~jsJB*aCM`=}`V3E5oxL~z9E zH%r*t+}tnNS7)8-&3ioV@vCr*iS5kqHxq1^26~~o^h9sO-J8PFPISforN4r03qk66 zBof8xL*^XQ`CH0?+95}3R|EL{VSKqpTvuPsv^{*LVCSaP>)76z)#%UeQ+`FPxLA3{ zI1{6U7lH$$vk%zsb|N{0Zt=5#oC{QDiY4{fkta?p-ha#9$WyXxV4{J&uGwO)^Wa0Q z8mX%Kug=c$!ffrhY1L5)o0^%LVS_1WzpW)^icMH^Cm!?eYPmrlAJ*e%iHkjc3a)T% zuz5?u0k7UM{l}_xiDCMH@ezHTa@goZttULhh^2ZZF!4#aqBpF}W>vqfs+?JM1>}>4JU0vq}7KW|-%?}dx6LNAEf3*~UoSweK<08O9@gDqnq{#8cMVUI|$gP>3N-GW& zee?FH+B9jJ{j2*spzwU8{`$U?Gdyi3SY-`$BZu;}`Uw4P=7`FT)&@XS(a1dW;!2c- zhn{vaW-wuB_aEBrr^47K>GxG6L(%08^2M>P+lVK$t+53x(U-fiB&C#mMVsv?Q z#ltbHaHL-{v-u)j47G%559*b6w^-D@K(Il557)h%E3%yO{$^`*l#4nJWbJmz?^@vT zkMhDW@~1AbyKg%j!vCepBBoJv5n98bN{%2tN)rMvZ8iaf2z)U*BKEz%eHm!ya$*4s zsAa#UlH*uzY=hFgb5c;*b(;feW^)NMEolmR#bH5f7#N|`Ozt118@IA{ z(7is^t~>RY%=2GKu}x!NG)&-k(@0TT05ITIS?4?p^W^Xo>;c}BLf{|Teh&ybmNhCB zlp(S9Oo>tnhc^?dUbqSsS6i}aqlKp5?~nO<@X>bo^-#HbhuW|}ldH{IQ&h-+9~Zt?Z&>g>WgRCAp=@7g>mOM7!zLg*+S7tMpzRp21stBfrp$_%!@Z(5m03a}6? zc=%(AlSV31AwH!caT41yHFJ9fi5;tm+~rUTL-$ZFnBZthUVyNex*K$eq5# zn5}`+m3?Zm6-r9kJLs1Ohf!lU@#EizxzyqP^52eIUq_eO>)Vc6&_3;7t%TFr@eD_U zayY#5*8>x1W?3u?k=dsrTWLp5P&Z7aO#W_^KdV@NF9$w!mW|EV4apQ0NA}HaY`rcH z_2|Mif*X-{o9K>|4aEnI2W9vUHk8xE-v75kVDm`fzwl)^nJ1O?73}@154|9EJVwS0 z#XD9UwSjwP?PF^N>kYyFsz=t_xkQ zyVPUI(Bv7zI%#n4&B}~ELe?uWFjv~Tll^7>dCp^zz8%is_D4WIBz^_=K-{HLk3r;3E;?$|}zO5fpT%rFNft)= zTz2g&#djsU8UvDV8&wt%{%vU;B!Fc~{AH5Su&6T7>~uM5DY&dE=vLR+%37311%DQd z+nU$(8ArWrN}&$z@p8ysWB=ng+e{ugdzZmFT$T{;a{;gBj9>31Gpvh{ciJFg@IRZy zn=9rrHuCq24OhOQ+a1S2W=++1;l6|*@PFu}~W-$vI|0|&wwN_0?O*2=xv zdjpb=F*P)kG7Zzw!_+T!O_NoYkk*qv&PHlmOIw@dcg@6Z zOJP0&dmiumn5UdWG>S167u5N-sn&mB{UkBnNk8m!53{Jw4R5VsD<nm<`d}V2-Fw*mYP`DU=+Q+@!F|u|JAMqs3pAz*A&+ z_)i|!5;bYO)~>t;jOqkTRf);?EV*BZxVe!m{^;CznIX#`C6_V>K~$u^RnU9SQvK|9 zyIjxKoT^he^q%!-a#w_5%M+({TQ1ym(m4E!y6ri{k+rtPpVx`OZ+}UazIk?-k4RL; zg&kgx8E_pOG@Co_+P7WE_2c)V#T>a?MWh^9-oIS0{7{K0n1=JxwOLge>L{Q6Oc8eN@I1y7^ZZW$f^_jn zVjTCyf)|{8makOLKOJV*dGjnR?9ZcU#PF%_KoQ4fQb;VKjyWRf>|^NO#xR!g>#O!$ z*@*9-TfX5`G7`vDqW`XEUd%0LU7&n;J#*+4VQq1yBQVm^Wl@>Wkj0wdcyAhSdk+6f zJ7A>Kgw;cKr%CyIog31LZhsx)zbCxJb^PDq8KAc#LIziOeUDSOx_&0D5cu-sHy0L8cO?|2PPXJ? z_tX>~9s8=(kjWCJt~!aVI#dFZ;fd;62lg-6D}B=7io+*(<&#_ErZ%y%5lu>6%8$)N zLgJIKo?9AQGYv3;>cqS>2&NJ6K6F`Y;9YbX%;0k8fWUJX4#=pVb0w7Xip|_lhe|Q0 zlZKGHCwc=(Mn9kFSudc^M;{2mtDlSkQckNIM=R9X=xNaw3C$MzwHXb?p)G0Fx7(sO zLI(qA!5&u~!IRU)w$5K;C*>{`M>%AtYd#aa%y(l!f!2_Wd{Z2%ZX7>X*Z$vym-Tkw>uaxlH<(T$JvTo4?NNG-Fb^iJ6a$CiV>)C0?0tr>g$z`#un83rP%Z=8AAPVGq;${P!XZ27AZ zB*BY6p@fHD0kTyMpAH`R5w;~gIpYw;$Diz)Mx)&^nxoc)=tVQXDO#kvB96@ClkoFt zQ0fT~2?KG|OPf?K#b|duhTOf=<=6}; zbETX8y|Tl4XduBlH-v_Re9NMi2qTi|QOL{MJ_+3th-IGS?qb!r63*lAlHRhr#iETL z;cyMc5~?tN=N&t*AZ>6%vNlJHciM{fWZaTvWtH-(6S;!g+CsCJ1KZFyx^2K8+W1FQ zCoUD1R+Cm|lqY3}yOTE^Kcbv!e-ZlsWQes#xo7WRb_sl;I+-cyH!6uA@HhevknP%g z=@OfjEO^lKV9a8eSfG+!l-ZV7@g90((7prRMKxgvHP)`l%MKvJuDn&SdSs6F!UwwTn%h+c7r}$oh zJmvVe&`&yE@1uhYq!-zwo?L3NbIkN!U!=N|d!YMEP`DorJ2%e%Xf8->ryh)&rd@kf z4yKO@&Abm(e7SM_MqTCO=10^&Ky=H0-8`~DGkI<{Mc82|l!lYp&d3XKntdU<+tcId z@AI{Ft>H;$s~4?d>-AGKJNSI_u*A{FZwrgZ9y2-<`UnjV?qQB;1C$?sT$broPx?0qV)4cU(%)K)+GVTLP zMMk%cBWKelPaF|mrYtnlGz=F|Vm>^0yD7 zHhcYqu7d54AcE}_4Uy@uTi%Q#&30)S5K7?}PgxsAtKkHAT(s1%g4|k~8kq2ngW`huTA%`8Po&6vOcbS$&A(Bs2eOy43Z(7#x7cQ%^6OzOI3#${$(pUU6AId1`%Fmh+q!eBU_~S!&G_ z?jQmNx7Bhr00$AlWz#0h-Ko4^!6ES5z~->muK%0iKU&*p2-Gab5Rof4Q?Sl8ZiDw9 znYYgsjEhfXfNYw4{O@yBXFkzB!i}=GwY{Z~c6w5`(U;Ph2~^@@Y@5H5E3EEnKs;A> zm5kdJu^{##n6E#*&~Qm88&BL@=p z#g^L^YqrM|T*vZ!0ky8_Wta__6y+;Bm)cpL?*1DN5QF;zqbgxuvUMHyKXb=;*yQ#% zgLl@lJ;2Z)(NX2@!SZ8ceAcjE_s4G3OblWXtt*nu+$=-HAUHFlHRtxPADa0_v5;`< z4??!@F6+DxhCV=jGb(RJTivXGk!O(&ZD*s#2(D1Sk)Xn9J}A`$Pd6i@P4Oh{S4Ku4 zrU7{)W`jmsR2Z5d2b!*|x`o6}+kiLrfl*=FrC8lnGuI2;?Tg`XQ3@XI1D7Z=w0hXw z_FfN)2^DEUUxUn%P#Jm1y$|G!-QdN6=RPg?ul~P(_*{UZ0QHg3!=s(y&wX*MNi^vA z5rO@R7lQVo#UwDWUhj+xm4cUUIs!Cmjnq`s=x~I#st&+FKH6&5j<^*lz;|zU_{ZFf zh_z3A>~kPqM0_R`dA^A(xL+BZy`L+2LUks)ZY##8cj}1DDJb7BRfvudH)fz>O4HyR zrC1Fa8M~Z^d`R-qJln=44xXP;lt3@s%GfW;oLvA_P~N*{{?R6EZgkGyi6Qn-14~w# zXs24jL>XV2pr#wQ5}9iRpfwRg7X1dajpsY6U5B^_g2L@e9OP?$g5t z5vpm~(JoVfZRpVA%Ktq`u9&%X1Ditu+$>?Coxv|#CIDu{Gah^Nd9%(MkXf1rZ2!_^ zq01-w-cprf^|kbdb8DSR1nMnGa-vh&-@zBt2~P$74H{;zVJuHZrXM>DeLa+EW5?sE zi;?Vpp(=L?_D?`()&E&R=k-mwK-|2c!VvJb*&g)i)ACBF(Y&sui&5h1L^}Y;gQ(Z` zsF;L-$%2d2Y&!JBi=?q1;Q_D{GP~k@`|D;rk-N9OnukTEu28DON%*80hCF6Y=w2dZ zu{!a2SO-OA#$BCJWF7B`@6pdFF312$-@Ll`$8zqhEOmKD9z!9u&Ae5gNK^u{6y0}K zs$B^EjM|xv&9D{d%*Mm_{c~R)nLQPD%iF7d|Bub5uevOqyo(5hOQ_b*Y(}N})ToW8 zlbx7f|MEcI4E#>0xtNyyYjw3{ag`hhz}ZbU-)r`{#;e-4LSySp){OTN4^Y->An>-Ey!5g5uPT2_ONHtqy>d6-&l&9F#o^ zFRCsd=+N^O-1x&R8ARv_9hw_xqxkBfEM|p(kfKg!150PWp$mRvI5l^GdAqKsy zv(YBoYYBZjOvhQ?ZGU_Y%W=1t>k2196~Ccid{hmOR?Nr)-}Guu1u~;bG)AKHTE!=% zXqUU;$4}q2ko#>^w+8_^)p4_LRqOIkTm%|}37`Xm4HbwRs&g!tv34L1PQ`>4#cX^i zpsN-2+!GXkSuq{{rTbrBTta_&dAlYcAq^B{tzhBXkF(v+-IdIOGmD6IQhOzOIUZHR znQXd`I3RAFUJC-~`%{WC>|a1GOn@3fbB6iO>Mpj;-JuAJiE~=JoA_UoDW`&JeUT{D zVk`xHnvvadxoaqSRt(dOSbq z8+CtRm)`mW@sp4-;`^0c|5QT3XypCwWr0Wmj0MK=SH^8V8@5G}M_y@ge!N}BZrsuX zz~Z_{$E%)=R$Fke>*d!9%zG)?L6tN{&A|bgYbKBz=AL1xczEr<}@RYS(Vc+%~=t=9y(}-cKHlM;=jMRG!dwHk8?I8ZQX>O zh!Z9Ul(v_C1%b9CM7>bnVn^2NwHtVKiXxs?!%C?6e+q4FgT(p94<6Qgr(wlyYBq(= zaIjCyL=6ZB*N}5VXMKu#UvecHmm6_#s$%-6(+a67YZAWY1 zG#I{24-KGj@TeU0JGt-w>*WUrCUz>v*?r~hCeRSbSMR4669*wJ{sDS%t}g`GwH&_D zGYY=AIPdh~aGzHpY%3?(=ZY_5FlF}lqobn-9Os22xB(XdMd*^620Zm6v)0Qm;xT)? zj3K-Dl~Ea4h_C45D2OWU6GgTnibFx){qw);P@_Vn$SkPVb%DjA5!-MN`vcvuHtLE+<)yW zH5YpHwqMWO+Y=N|0TIm)^?vu2nqV;6g`Bd>TKvnOK!r=G*@ObcoFQRove`cI#%C* z?(wwp9`X;_2E(F1LIv)S#>Q4B4gdJzs;r8>mH(^gicMxum^V`T$YNga>e2$4^IXR5 zwcU-Mf2k9|uP&n9dE6)>Qoz$lW9qi(sx|97{>hkl4uO2Z_)wai5njS4EPqesxvg~G z)e3Z*`$u_0C;z_|hOBl^mbt@TeC`5zH`N2jbo$zLLboWFohXiiHiP$mh58 z3s=T%<>We*$@V=|ayWb&{NL{}k^sWw&8qtU#z=UVCC@E}c#;%z?^wK(?sr4FgA!L- zowVjL>>rU=Tg_}E^o$oSMYy3X6ZG=u-yZlVv7m;3D@ZD#pS-I`!KUxv8@w~DD`VHG zrw*<^-^PhWG_-#Lq$>vLZsU(zmzG*g#?O|@bO@(!6pgaql$w1Tdr(yi(F01f<7ZPF z0A1t?+%7Z`(zJY=cKvdR;%!E6^<50a$&l8ht%m%);PiEC$rP@e%IlOLeQ5|&W{$93 z*mUE-Pp_W&=dPF=e#FH(HOAie0s&48w#(C(^Ymb?O+!w_4?-a?&0D1>GAIF9&&&C^z?Lf^&Y$JgPuM- zJj#ss%8i1RhB^gSrryH}!~dkF285O-MCV6`uAmoJ*Ag>>C#UBF7iYo?V`8(z6^A=% zJL?yhm*>!nnc0=eo2#AOy}>K!+TBgv+0owq!N~Q+`Nd^%W!LHX#m4>Z$;rv~_Ri7q z$->RmCS+@TVq$V?dhGggacTMB;PCe4x$=1L?CJ67Giey{N&*9_~__p zeqkYVceDBIXnJP$`0=6Uc)zKsW%BA`>GrzlV5{pNczI>Dy`!u4kbT!ghfR64-DxWnfF|rI=OgmUtZq7zSK9iB&ViF$0k}>IaD9-`3Hu0c?V=> z<*Ch$XzCd4KHO2#DbzIe`S|@**EArdl3BaH+}zp?gRE$cg4?^ti%ZIg$R$e;x9i)7 z-97zE|8_e%xx2dim`n~-{jCdJo;kR?RZ;`m%?u~(tg~@x(X*(?$f?9`ulX!Yy3UTy zZy!XhEm+%uK9fp#Z7jI0&;Qz9-M+umo*EdNSj;)ta&r9@x-xt5@E{?n5VX1U^}GJS z(9Cy!vBcyONm;8u$9t>mkmTKss_Kr;?tzor+m7S?p7F)sdz-oWwNWv7%1aY1?R{(< z->d3+N=lo-y%VR`*L&C33ybSP!D%Mu0sGJk0TJWhkQE^j>CJPfu7TIz{Vl(Z1)24^ z#>3r$!<~eU#f+>`K49Gm9<6N8^iPK*@b1lbBbh-cTLWZ0v@iT&X3gYFIDuV#b7=#Sjvct zsCzD-WKP%~NfZ6!?hyxzJ6})FanC;r>vrQ z|0>z)%jbV&sZO%bVvEBRL<^2z6<|zEQ z_6Ir_{*iG%ZSCUY0KgWH1+ZThCPs{j?=A?k=0Eo9OBl7*+;`;t3Kd8YTzY2+#gh8%wL z3Jx1YWOii4i75?cHT;N#+47s0yh%IckV1fkbvyt&*GZc4cJ?7B_86g$s_v1xgrnE3J4$tG?HJ?mZ))vH> zmxRA|fO*f7+ii4{yz6=j!fcZ_gosfSPrR+&1%+RmUQVyg{~dqL;57EYUbb-~_(*!I zXqb0*|FJTaAY4KpO#7?3oPkKTHXoX6CxIwp2jeY1+b#(NY9r_8s+NkQZE%AWm?aRx zX}lpLv$Zgrt{4JOgdx&#hD0UR2Ip7Gxw+xa+Cnk*H;&stGMOK(c$Z$&#{*ZQn>BBB zXNg}w42SA!*66vh7u&WrUm@V28Z500zeIuSHm=CbKQfn9l!HyXSfq}VJbnI#IZV%+ z9viltTei`rmUz^`(WVAO9sY9gE@bELqKR%QSs`pVZ*uI91qimhO1_C6jgbw}6x6Zq zq<&*<-X27z&B5zZe3iZUeCO2D)*Rck;JY)t3s zz%~M!E}KhE4w}>q2QgQRwnY`cS`NMNtlmobucp=WBeCYU=l~S5&^r+D}NfWC;0r6qif@?|8VnT_shkjVA4?E*y#`+`xP5;{QQo3+mVOQw>|gtEDn`B$F|-R zXk=8n_fyGvKGee7+v5W0!41ZDr8~R_9tE=TnbcoSD~63?7~CTg?Uv!VSZwwLGS@SKN3x2+ZkqW?DCa`RU}9)vc;NARlN1pM7$NEkIfA?bO0@%xW zrQ^8s2p-?5E{A37wE#>$inseSFzNvMw?38tkm?zG;uUI8%T&J8@@e2pIWSGUc+rMS zU*~6i6uSHf-!mDHCIXq00}*^m?e9y@Q^_bi@jZ9qr$1kbmz~{-7R@aEghia>R4^Cp zn1nv#OGnxgCreLAH0}8;HlTeVW3Fne3X{Q{KAlu1PP0SvDg(-VEtkVHR6}!9!k=WN z<7WnRgor0g(Yl7cTr`Hjh<25{xXn{|RI!9DU61%>tmk-~RV#KH+|rO@7YF@$(}E;e?@l+ctBO%f<%b7|_zL3=PpY^fvA7Tu)3ndaM-zl+MDczXwUI zo|OD*mcvE=APhsXP6anx8yFlM+(hT2qNYhy02-#LTe@dbV@9vvVvl-6=%+ z?B(nv=*bHDM%%)w^5Ga{T*R6^*O> z($Y*WwdOKHZA2g*2$3p2|LmN%80rGpSE-V~74$rV2M^8tU2?eTT8rQNEThQcFf;Ot z#!2+;$hP|K=CP_y+4HR|-05NhOU2XM-`{P;hnAMh=jg_E=~#!OJrBE? zmVWMH;dQBR$tn%!W0qFdKMEE|qQojSAT>N+14Nnqorlh^1X$*|bP;@Tf6o(BKxVV4 zP$`whppQk=rtX0`6#0chJW^|*nVlG9%hFgN1rjTijNk8TL<$FY(0vCWh*U|2A=;9H z7@I{TAu%x7k`Pel*@77oF5eFMPP_6FxN4ZZwE6ryHi2eM*%kv~c+aS80dOS`zy6I|LM@w0xc{44XeQXR>v6%FdL}B=H!##&_|1 z(Sj0pY`mTLS_lPPM4$9nS6W_DPIJ(Q7VA<^W2(XmX2x@ydXblIk3II7wk+y$n73F| zc*Z`>*4QY6^tSE*Vam#7HI-#$dy6&a&KZwU0{_euH4|l6cvY=g^kD)QwkS1XOTmYk zn~C6{z=Gx|N;#3Zg%fY}3yCG<Wo znHiPaBvkRdyLn*$Z_j!kqf`&i*!Rzc`@ z(y22Ixgrh%DVB!h!Y~w2qMi688<@=fviB-)4$0TxhM!MRzZx7=p;0NRUTX`vQUuzEt>Q4T=Yq*(or@T_FOjiabxn9k7ROFSA`qW_PPrjKB=r# ztZkYda5W#r?+AZOqh>ij`)(#y?ru#<9qpceJK!;9(UnDfE4g%+yJ8=(A}E9J_qo_L z{luT`M3J)`gKA>=oVu|3&RWzz6Fs9EnDF|i_y2Y$LkA)vCM_O#FNCLPvT%KoxUU=- zig_M5)FVx@HRj{!J2j4`60rqG=oIlb0|MUa%|!jl{~{UDQpMCEW+byv*z%J~9Y_KM zq*1=J)ohH}!xCq&7aCZ%4_KH>10zJ!5y3_**i<=qHl)L8je>0Za#$It+=pn!EH3M> zq(yHR6sK*ld?v_ga=s3FPvzRS&YUV@bYWy&d$qVFjPiXwCp+ys!8Gt#Io!GBqw&Zh zrO*6dW33uUrUelc0|FQrGT{oHwK0CeSZ?n5kKy6+^i*luQg7@9{yC0R{`-Zx+D0lF zn*~$gOp~Ah7^A+~>remvmMDT@waH!xz1>7xry3j|L7XsJ?UiDblFhh!XO4u&hfA*F z`RAaj{B%;)LofM2YyA`X{M;lfA<}d{*pDco##i|vo6Lsm$WzY66DeS8iln~`llmot zpvjQ@@O2RRe@dPd=~7|=YE{oN=ydjlCc^QQhgr@CR-0N8Pm{0=~f#I?1;l!1Bpx+RQ}=TDHbCN zq|x~vvlF0Gaoc=qJ=X42viWmkCvPSMyOJ^@B6RmOkJ*LJ9ip<_Yxz6GAPAjMybx4vV1+EE`cIn=LGAgImRwgM&O{-R*Zc%A zkq)>nNHPfD7!HY4c<_g*#)n8nA%k4Qwb$(gt~>U>sEqTyqC?Hw%#kV9>YjQ2@*rQj zGR43zK`Wg30BjKb27ile(&UMA{s~VeE{gsE30_1P zGgqJdF5i=FV)xrO48@=pVmqw%T6inbE%sEVA9^KE!iy*dP7FiOozV#Cjg$6T_`Hb6 z!dyhWh;B*}$FGzyDnnfd@T0cqhpc0MK6%EGFrrhy^2XRJGD=`8izwMa?*viinkrrk zAs+&$Vt30#VbU$@750D8(F5U-nRj~Gz}!z0{V=sv$@Z&eG8#m&@^Ae0iDpz0Ki{hZ z&3838(C)*O0NERUyjJ|z(TXoHon1VIzv^&C2`o0gqByrR?O94;Els+l=a4KR3VkHE z){O$=cJi`;9C00spl`Hqo%t4=kwARE5SK2o&#s$WsC&nA6RGsR!SATh{RR_`1Uh1R zzoUav42}LtpIO5o4|&6Q-v<-}`<;J--yHwbl{_SBmkso`@jq<>YCPU5#=bbg478*a zC#lxD0Q`DV)OMQ~5%a$cVpLC4TLQ$UZHUS<_U~ zwPNn;!iaqvqVe+d$JpS!B#jOZG5R8XUm*m3gOxBPvl_p z6yw!&*MrucSTb2l75QcwtIy+zTy1!Flv`}y^%6HWJlg$OGQsiNWRT6RS3hvZz+2a5 zaiZ$csS7WB7D)tlyFJT01-AD6#8<$4 z$1Xz=%&Gz`{K_&Gq2+VttM+B5E^D;Ku+qQPPrp(%NmJl(SX~H@UmHEI&FK5XM2qWh zIqxn`ou+}>zn&WsD*eOl4Wji=|FAz(?0h5X@k;gU49VGZi{E93ZdW`7uS$#uo zZ$8~RbtYF!fz?S#wjE;8uz8;P_hb-0HoBk{1M)fPT`JvA26g~nwZQXHCkGvFd*?1y zO!}(0gXz&}D;4tRv>mtYND%`7l668TroL<>=2_uvnSxsy!3mU!|Bw9k`-b~li?t!J z#bX>$-{H(5Wkn!y#l(mJo}ARwB-FTTN^C~aA%N#U^Ct~{k^n|fi0AiFRLW5jty<(Q zd$#UX=nJm0q=1C&H!HtkKiR)_G#3e68Hr<34lm>+aJIzSng8(tU9fsBCU2n!Uf=7OKOjVxCrR(hQpxK>BRW)WUM&|sh zkf)wyUj8vXp;f_(me}wLZC$&OA0=fR4bB=K6_^K!rzlOee(Zqquk1nk`E<*Y%9t zf@mq$K@+Kc0SIqaV3p#o7L?zD)X%$u%k9+qdwS+>)3{%TaHM&fz26uh^*#qI(@?g0 za}dUU5mHb1@SIJ9;fCK^^LHy>P3V!67QDd>Mk^b6vfkK(L&LVdBeldVZbt3R8pfvE z5Yp*4p`BA@h#1kbY9IOf#n-!bZznCE?8bx3cZVpzyAwmE?U?_*Xm@u;K~1NaD4~HL zG;WB)GCUq2=PA9CV7Xcz(7r@76j=Nb8@*qF5)u}AHKLxULrsr7*NA~3F%VTlvoz0b zDT_fN3ukz$ic@jq{WN-bu`4h8R9J$WnxJ~)yPZB>pt{5u+{9jDyii4iSLFG@~+k899R{MnGkcMR&D<*fiA@)W2O~mv_kU*(= zG=~m{f4KiWC(>X8yffArV8U5bm%5yFJWg1ieZuf&t@KE5$U7Cg34-c%^qk&&jXcd- z_7P-^>zk@mg2F`^?{w;zl2~T^{A4|)>G8a2>9TtF-`?@4#=DEYm?dw{yVaew^WItH zz@*DBN#z8!<;G`hD!cDMM^~uz&8~SmfPWUBLIxZJzn_=A?5yLXBO@BIC5N;z@EaBa zYLu3b+NwLQ7lSnyP+~!OLj-)=1*TxW9$3YAy0=UqZdxvFnHh-69(s8=T2cB};7ppA znuz>*=oZvf)l5KLrrK`!R~I{ERYGd~4z!JrNNmrD*B0_+jck~as7#2e-BiYWIx|gH z$y_!L2o*_`xi9)mvfSytdgW_C?2&n7c&6H;w zpq@yeFp~up$$19NWPPuHjDy+_;3y64T+uw6>!#wCDJ*4l>fVIaRQ#Gnm9c-9QCJ=j z`8*M~C8SQ6{JFfabD2;_yW9XQrfFLY{Jm!%t`JW1U(BF|gb%-U0GxE^Q zUZJqs9do`h6`@G9>*ydCbP$)0i2d)R=-!h8J?4~?sV{7gdSF5AO`m&=^7rL2g<_;v zery!}oDApc_^Vxm`Cv^s7-6M)=UJgT#kh)^zl%!Fhf3khK1fu7{zW~KDE+INSJ8>D zFsH858{IAEYGe--GxCqyLPVRxrRDy`%1jAo`TMxmw*@aBdO8N=DWaBh}HLHc{&yC^|0F&z-s=gfwNb?mHlh=k6|zCLg~MAq)6p?PTRj3#MXqj zoHVsbC4}~b96uh>RkPY_s&k#82`x1nK z@k~5vo==F#U0>s%I{)$HIH)Zga?bx(L64RYpG}JYsij_nLwW+rWcc1v!|*(&-|HC^ zGKkh*d3Ejw&i7Kw2nM-}G9`q&xdwPr$l59L_T*p#wj{5!S-CUO{6GIDiJ!`Axn z@Ya^X+v)YRL$9APtDQ#v63A+gtfK9jCi54cdYeGN;n$4lnM4NUFj*X#`@W|iE&7Vs zhD`V?v04pL3M_!~ho4vLZL9jOf3p;64;b>^h3&R9C#r5lClX7F)srf!sv2R(yf5m# zcCQn*H`@0(JsV$~SjSXW9xih$XyJ2KUi~N+=>BV=7irwn^CgI|O_D}xqaQHkw>g5I zM{6l~LdBHSLxn1*8VXh%LN}QV_=iYamUpWHNC52-;Q!-tZJ-j1HHr`jtY7+A;JY2G<3wCXa>pCnE^r032xJ z{;;J0`t3W@r-Ve*dfM`Yg#8bjKIz6~>BaQ<^tbhZ-+0dvA@)G<7hUqxfKqL%!VGgl zEWKY$dQ2ZEM5;sJFCTBHLtFgUo*ebwPdE2Z=;XDMyv*$koZ734x%kiX^J#M2;}_xz z;OI45BN$~ZW4sc0xz?fdl^7()%fob3tICP?z}Yu>#PMC(<`8X6pSvh`{cJP_Y)mG< zw5-TJWY!Cpm7np6!T(o;IECKOYYH-)bTI`fl3}RvJbY*#Z4of3xvFK4$H{2Py=rAF zr_lqkD9o%`qIF5KzRYF?3}aVf@mm7dqC7Gb7LAdJlRByr>KL1)2WgW3P@xNGIs@76 z2?Oj5${E~R=o?T%r=|7KC+al{s2M~WIK=?8qAE|E@$v>n5p0Gl`^M+W5LAVPpr;5J znFK?*r8r$}{6XO#LB_B_|EO@!XsT8a+6{dCNN`dE-j?#`Fg=vkpP*9(Cnbt0r9?n! z+sLxAbQ8zpz=_6L3l(u4%}Sf}NW7Rd?0(JroNom7wCy>(KMX*}2tU*uj^=dF~SKLH-}r58o-#Mc=3L7jLJHyATq%bsdc!lKgRR!9)| z|74;Eay;KH@{(T#&-D3=@q4vij7>Svc$gVAB_I)*Nlff>b{KxmnfRrPCS!!Z(&tM< z$)HP<*asMpM>b__Z#$s#EotkiME|Z@C1bt$ccb)3q_T*jJ``Ji;bxeLA+wNvpYsC~ zXoHl$6CS;H7+ZoS1Rg}Dl|qJPaqt%tX{w%V@_JYt_l)Yl5~(o~$R6lj<7>cM_q+L( z_$6ayHMJ33PTT}=)LxTewtDCc#T}1CE7A^%Q?tbseP>J3J6m$dL40CF*#xT$?F?{; zh8;9+QL24xwK`LABRUOh86vcCiq+pl9zWzB?EK`E2Yo>AtgK|FY3aAS$wM~r0-+)Y z?Lz&;O;lq!+kRDn?Stj2Crr1h_!jK%wo95E9bX4uHj_xc12?07luk3c%Z5kR44)tC zDzI9NrRy@y+kAZ2iEJ}0Xro;ovJeU&NVaXIx!tK#)SpMghi(ad57PH+AqzqwB$o^& zASuoi(1Q5K(sm;u*W)FSD1`?KcI8~haVb1v;%0_}rEu;V4T2{uw*>hczii3e?cAPj z^hHzdx6TEkjanlersv<3p4Qn@I^uH*bOawj2GV|8Lxyqv7gUQhO;vgOE{^ZdDJ%y?H9+)M4j#7(gp7DH^8~ROZ4}urLjLWzF4i<+G zI@``k0#8lcoNV@%fuBB-QaWKMzM%-c=*6%U-R4YX6ab8f=mkg$g#u0(R%zDkZj($f z?0>1&S=ah1##pW_=~n(69Kw8;4)MEmX8QU@aI5-)6eKyR3zX+SE6}f~IUh*ZxfQ$H zbQ3Zj`x;NPH-{N(>Su*XVKXol`c5iw`gJ{}VzCGDnx&-n)QA1f1!HVsD4yM-`Ew|4 zRdqde0gvY^`BEwJyPO6;q*liw77ZjCam4!H`vKR=&bYEYm2LW3?rmxYoQRB6vC=h} z%kUd`-sk4~Cp`$_*;P#z7U&z#4>g-#^TOMqk%H<59|JY?_H;V31x6;4z%LPToXu=9 zK5N~ZcVa(~^kpR|Ale-8S!Mi~=HQ^+o@7iM8k%W>Gpe)k?`__f<>t^9g;gH|DTtDP z=Uv~~(2qdh2K3OA<2lI~r3G9s`~?A4%!n|LU}K z=dc_M==yQ)`?yl#NQ!2G2bWsQl&w)dSBEVOw2(`*p{85Ft4toiIbojxF9HzH`M=Ql zy4=Sk9oal&f@j>&$Tjeo8EvCg#jHm}Dm#{EW{G~|g)1*Q`Y~N!B)o*BaUEtWg;<9o zvp$sKQC(2O$mD48M2VZgH;js_;vAxQ;CSqlbKFNS?0t2DcrT1|WXG1w9Cn;PqN&(l z`~!)lY1qwDH)O%(PL?$#YYtgy9cgs@8~~XXgD&t41$o?!{5*Qx!8%0EgUmHQxQNZ> z2kY!P(R9>s`Iv*@IN|W3u?aQ|KK(3+RPw^73y*mcWuF!#Me~vguP2QLN6@V*te(+4 z{^uIga(A+nCiQjV2`#UA_r|~4a3-mhJQdYIH8`+(r#HXQhPiQ8v;O0+cTY#}*Ww9( zd)x!1y3fl2XD_JHYct_6v`Gqej!78moFlUGs7=YzA|EGC2U4W6&OD^ZMSVW;K(54m zHqPIgm}7D7B0aBPHrDSnxV*G3#=OhvQ-=TaIZKwCyh!79m`3s<-S#Pl4ZQm`qA4R$ z&BgUli(X!QM$w&YS9niB4FXT?rr4kmsQh-bw*k^6*a7W?4s^hNg59Q03l64%eE2z5 zG&0Uh=u!BiIOGB^CR~We4evFKequ8ERaBTENwzZ1-?lxM7Tvns2A=o(@|VrWsv4fHFUunly77@5E_q8A?jx8fI%L zI3EnMu3>#wEEph_^o?X4@bTR2Zck?uA0F=jL%PPhr9>UV}y;Wk~)%s8K*35K)E~wGEeTDSN(iPCqY; zPbJ%qkd6lHkKV;X82i~iE_?d8uToAb_jlwiasQmDtWw)7HvSPKD4<~R_B+1;3)n_N zWo%fjA3f`i*{+5mM2rI(X=F;df+mWuYPcjyGE{)Lbhyu_c{10Lt~a;4KHr?SKX>d6 zTS-b^lSuoKaUeBU_9MFvS0zp+#2$`S_2A|@g~2}#fWuf{Q|$yu>juu z(G_t_3?oD7q@x>}kOokCjJP$PNAuofv}d{E&Ht<^P}aIr$>tMarjuy7@_L8-5RoB` z&B=#a^YxIUs`>avanc2z?rQfkdhq?+I5!DK$k9Xe4Q^f=d&2gPjywHYJ&8Q5MtDV) z?^#V0SArS(CmKKm3%DwcR1Exv-yJ=(^gw1*>U;oCZ+lC3{j=LDU8;ReRfa%c5pg7cihpv-ojySO zCQG9r5lMcX4)l(bdPCgDtl~u3me@I&#Biu3jN66r7de@v~H8yG9gZyNffPUl_uEVDt41c8b^*LX@HJ`i>@`o zx~ufsrTmA3sR-)_zjlk`Y0J-Qf_h(Ji(}SHKC=(Te=@&K6f8^btLXU4U|cUXBDhLPQF$EdydWR# zQ@NZN&Sqw@ge{Y4XHIe~bN#V&{)}30q$beNX=OQO>aB+`PDZJZ>IAt`Lh6@W5hJ>bnyl&2;8JeljiM!#EoQf6p4gd*~ z2x&mXhcfEdF2=jIz}!9xGxpa{elslUUr>xopz)kJv!DI7iUFJ}E@8qnzL$Al)&jvw zLY~KGVtyUJTj1)onU9a%79JXZX%=_PUfegBE+EuPjqXrLffzG%iWh+;9HSXUlK+RxmaOp%3u zSE+kSc)l*o%bp>a`mz(#6rNJ4Lk-`GfyD=p4i+*{nEWr`2wBk%d{qxVMB1^DJ zkF-uB%B%=vZj7mqo3zpqRn*ia+(}@dKZoe|01+6r z{ccTg&e3Brd8ZzCGxWV8r}vtbhyW!8n#7Y)LUUuT7{CG_bR>YwzC6hw$%O+C-r+d4 zW!BF1P834*Wz96H-L8VCrWRZ2vh*ZI^EDsJ38JtDHfL_iun@uiHQt>J@*_;ywi2CA z_WilfMm0pcb4|ib4s6R#2C9E`mHC0WH6zK-90H@F5;=ilMMW?NL^qWGB`&P~lhKWN z*uVy|LCHOYern(7EV0M*wt{E2CFi#ftv>F~dVn@);5@S888(aFX?|O{%R<~%qdNWu zYbr~*&n@6y0=3Rd|BL|0`C9HVA`FSB*j?!~cSDqSw8F6bQ27a)T!=CTurUq@ua*Z= zON{IUI$7?#o-Tz zy-(?ia51lr_s;_ga;~YRFP$E`TE`UQy*BQh9H6rRg!F(UBu~y`>>nsTX>J+T zV&`kBtMk&s@FUW&kl3tA3d)dv#)#lj+{cpm=dmk%q5>y~^?SPnl#3u#JgkzQ2UN_S zoy|`{%8MQB(z@?;VRIp$YovumNH(ojF#~EUTo%Ft&e8kM>3th7EXA7SahDw;*BRSY z;A)HOGXL?^!~njLHpTkq0$u8fTY|tvp=dX8VR<=IpACH?YEJB6*_HN!KLA+YR|f$B<&}BJaL?4@K#YISR6<2{2_?}a7DnQa8%h)u5NqAv&|{tH z=mHm34@vvaRvl8PfChbl-u=Lc@b#q^8yE4N8wOYBNiH<}G7TeJB z>}oh`t{Z<|S_%|R1JKapJE9(_INis?%7U)Ee{c;GjB`h_hP80xtUZ$b3Z&P#GJ?iR z#=nQK4K0uAFZJwF@F7|>-UJSSLX}-1v1k9b$8D@0W4>`Ixah3W`_7)>oe z4e`2Qu@g?zIVE7+pO5uTko`BBIK{yXA6adG=Z@#uN|}+UWV#+Oe}Fb2R{+HnsVMU8 z-~lCc*gg7AY}?vXljc8p>GVxK-rxxmaC;^xBBa-qw>T!YGu!F>28%{>3V@NS2A0EG zmWD$H#_a=X9no>j0fuIs)xa;nR*e_k!N;nF!9+w5#$aL$ZflJe5BX4Fwmp}Gi~|d) z3x}LBsG8$`&WNjhd3@5%5f-p-Ygj4BR78_v-qLug`%hf-cShUcr1g%-) zQPDbH9Xe5Ef-pE~bQojasOvvmQch9z4&&{|L;42|dzFRD z_&6~0JLx(Stb@Vy2~^+5A88iFiRV#vtN2>Jd|M7YZsz1y)aWf-Ry0Dt)4$4_vf>l- zw4c4s0^8CB8u1a6#CLC;s6Yy{$8IeRzh#`db})Gp{HH=e-lz`F_tc53!L0bBi~27{ zGg9i>Dh_0dn(0xVyJLboy>G&fg?h zFC8i{1iJ8cAoA6rS3~AL&JCI~7e9STTz>Ad_^(<4?x>M?~vE z)aDs}wypdDr#OLr73%;YpaeX(N*t^FXRqm88kfwHL#B6CiA2BdI9-8Ut$Ja3{G(<$ z;EM}7P^h}M;qcB=Xfk@7!_Uy3+RFc9mB526ROpKWzJ~u zKRB53_pF77nphc$QNbe31&$JX6rH3`Mqov7M4V*8`6iNIf+9c>^$EXYoO7;_Jl$Unlo* zx%AJri*~`gfw5u|r8B&kftBmj7iXH5+sq-Y5b~>zlR+ceX$oqA^cVujR>`4BIB#ZGz5<#6`w5G|a)P@sO7e~t zFtGEbheNcc?JTft9Vyo6Ivj)!YRsLrP0rxtkNQC66a?-Um zZnd|wwb5fI9H}=RpSox4EZkVuu4$m1Hgnd1_0}kts(lg{HTVBHbAQQAeRijPCP75< zBiLSv*%!QWjZSiw>?{+NlJy6Sknx=@W`VV}{;(4*?;i4}G@yDN$l*5B_;A7graP04=%@l&HepxzaJ%SD zoD{-GDk(5KmVX4?X?}X*F#*+KM$FD$^LZpt;n7<7IMK?m3+yz+@%XqAxLz>5?6}YmH3+^Lz8}EnCqJ$NG@c+Y)I!T;PNcB_~X&) z`^e%t)w+dm?wKKO=XUEVB9l);w`q@S1#cAG=P9m;xOT%orREC7w*}QIK553yv|f@WCu8j3hOXZ3IP}i6Mj@Q0qv}uyO_WacqD5kd5D7 z^UVC8wL~krLOReTC7u3c5y|@|nhT}@`hlc~?bWJLE?8u@n|b@E45N7?%0Ush^vU?{ zy$r8=XJRdjn9)6V9=)szU|Fg;E+j)T1XD_t7J$KyYV}$PrVs6Wc;@}t)@>b96;9_w z_8G*BM6_V%K!Gi|Da#&}UnK#b-Y;c`_v_<$pN2x>{V%YQbH~L;J?S?3Sv}^5m?k8x zHRGS6fse|z=@_kZ9e(A&CIRk#O52HhMnXFN)DU1{lcG`xJ2n@d>fG|jGTH_{1&h)` zrU5;JiOdD=qvlNH>YbNCdn~gt9ZaZ%w~6;xO&-0w;*J4(yi?5RkRLnKg&YPOTXy_v z_weWbs$~gw=L1=}wI@9tl%mnPTWI`eomwhUd zIr&F@eCwOs?1jpUC0&Tgm74?WvFS1?=qsT2^+DErd)TpVXaVh2x;!L3B$0FNVVw&y zovJ(rHKb-C*f?FG>wUZ-$G+gZW0)6zETJho^`FJ|+zHZDrsU!rMpT16Gxw-sN4Y>s z(L|y@FMI$DbOmx(iD)3wMfzicD~I-IRH>(sA3LjDJXN=mm?eN!JTbpegazGDDP$5&EjxwK;|_eKOr!PAuKxnY%0!`90T5-$1=P)Vy;)VU`MiJU}8 zeWzZ3wFQFH_S~?2$sbFQTu4<=TL*pgj9Wm^|Kcdu^5{Djn7aR)b#5Q+U3cMzQRj4>? zRtLr`4hoxN*4FJBt8zMMCnLZgT2jdmBGkI_(pTn+b^1rrAeTTK%l_}`3PM{ZQg_m>xGk{?RtY@aKjZ9aefDg;-PLQO{c|MAawz^#lj+5!{<8&GUa5_7&L>3R>C#Z7& z#{V1N1McVK)53w&P&GXh@`ND+#o#7@7AoN$WQE^zMS36Zx&w@b7n&X!s?pqAL;y{bc|sB&t*VzZ<< zzN$dNKf8Y8mGDBsT~|%o>$g|cUN_X4`IwOfmPwJ!tC#_(nY;LtzCV18l&fahjJ`+| zC)<%?q%{Vq-4!Tklow`O%zt{;?+BnF5xH<^0;+rZ)Y^+HjKt36ch%6&% zCDI^GI6dPp&+%IE%%o4PHG3UJZ z=;Htxch5xqgP8*`u1X>?>U;BC&F-o`8`^)s#q#a1S zJYm>B^s&|{huFvoe%VAV)AOf&L;d|$2hPJMkqmE%`SXzqs+=SvUU+?x%lOPX@G z@tCrNsfSMJ2M8{hWxZ()8P^cWdm$Z(ag`)lc7&YH7lYkxm?$z84c!HdN@^IengXF1? zSu|9uTC^b#LsS86XRVFj80XYXIw3a~k&UxKX3u_^BF*FUzFnx74C$$+P5Hmc9I9>s zmS8P?)wy124)IfpsJmlvdR)5a0DRS4d_}d*rwnP5Vk59;H%H~c8`j{<6)fGmiebb5 zu#Ie|{rL!Z1Act-0_@jc`vICTuR9XrQ>0y28aTO-@pk&wth6!aG553~I|X&w)wy)( zLprBKOyuiLu>d2*px4PIMfN=v$VhSVI|IbFDw!|{KxcOk`HCIiYXmMJAkiqyfEoi{T z-F*_+Vf<^7rbCOWE_%E^OrSG;c=YeAOR=fx;H*Rz4;FI=?~CFhapWH!gJy9+Xv*cBwzg8tma8^qt4P|@xk~n_)AC8f)ZsQ z!`F6&WUjrH4-__WLY6^_E7{QL)~bBC`l)jMWLvoaZ3|@>y++F$&$>Cb4u=lqpz|cM z9)dHqT#kE-rT>^{S($9Kw1ji{x zVCR8@_hqu<=^YG2xsV#%vYoKzLa%ok^!N_5eD z+C&>Amya+o=C;U;y)#swKL2psXQ*dNLEU4Jw9~l3(iT z=UQ`@SgtGdr|(4A5rp_sO$9Neul7!(4k-o`pGNUZEihyGHSXaMp|m>l5QeXP!_Y7m zVL{gRPEmyZ`=mFu2;;uYmralpi>?i{0W6_YLe{ssI)i13?BqLlxrjq}h@!GakBj3s zk!wp(rb!ECVhv&O5CJEQXs)HUYMVGUZU^}H%M}EIVEd)o65_{njPidAU~~258+3ljG3>En&HkNqM%lMORZ5Z)L6p2SWtH!~jjhX$+~P9cn_ZW<#}n zj1aoHYo(d0xUr5C)8{a`05E(ma*4J?*JS2Y2d_JcAAR`?=$v?9!r#1eA7&UJ_m;2@ zq8N~!`PP8GA|K*JS6h0~xG7Z?;S#89t&-*Pt0+r-)cSK5|JCRj0itrLO-7UoM|RKa zcGu&^A`udnv;ju^D;Q7S^Vj}oXO?}U-^za~BhGhS9*{ju%l~8LhYiWa-}OFX1!Bf@ z`5EBJ98I*TXU^36hK7)*`_r$^P8WM})H8Yk48W&dQT{Pa|GR;iE#IYKks&Jlul8Iq z+As#iKRxS^ngCyMf0dq=3Qp4e$(;lA><~r=v@Va*`7HmuF_EeFQ*r}XV}}zB`g$=+fqxm^!9R}26`(J< z(M;NhSPY=OiRW83p6G<=HVX9>+o9NHhDTJ!O7Y-0f|hv}8n&X-C1&Jzx42^%GUKSo z-%{cb{RiG@t@F%WF3RWpm__k@X|A?~YNLo-)Bu@q|Ab+6*7aZU0}GiJ z8-$_YSV0u5RktV}{HhN11{NmjzAq zclahyh==AP={A7egqq0=#Hz>K@9Lbk{Y6EL4YB++-?C1AH^MOD9rpCmfk*gyp=!c4 zpv822!5pUm*T2@kwNioil+X;+gWz`nR9eyd7&$S>Pt9#!!*4iJ%BA${jg5Z7^d`^0 zD;0|zNa!Lpo>@Z+ckkW*qg5FKd-2Z{b>lyMd&_v`nXu(snoI{aV!HG+7e`QDPfE3} zAjU|V{dDLpA7Y~1A7yb$s5u&%J3q#LnGR{OUJIg{`OwIM_v*Rl>Pq7WLKw}@cf}#s z#Gs_-D%Pq|ei_Ec*mdD|OkpF(j>&PD=sIt!Pw#bbNr(AuZWjuSIY?9D&?590ivCDs zcd*T=1ErywP`duP$+$$q80>*Fe^RcDx_UXAo1b}Kp!s>B1YA&m<^#OCUYfundC@~9 z71VT~b3IUYz9^b*B>ltNt|?i9HnywpPMXT>Rm}lDKZ?-E*>NzU=3)}lIq{Z_mUUDX z6E=h%imMp?B1KP?Z9>UkvjS(hG$IZmV(*cd%^}yC)AZ)ll7aAk7n&0uG>oXg_v-Vy z-+@GAigq${Mdq?8=J;$-)A(`|TDD`J5?`$b;Wv9GP$Lx!)_r>92?9Kmp|edXK~jf5 zMcsp2?x+3y3Qvx`zh9%pZ(g-#37F+EAX!~~izU2aKd2pCusL`Ydc9+JNa3Pq_rzNX-hb`0W_SXgk@|q62^;?tHQj@jP#i9lDAE zV?_kBfEnuv z9B@chN|G9ui`&R>k25(5MZJoH{{OfJ!FdIid#4yC6&nZPe*F5{#P|QH>E);1h`?)QEA+4TZ9-vf1hU_O z7!id!aKZ>ZmdAKVIZK`_)PYb^0ZND=RRUwhDA$IQMri4XL_lU(0%IYpgu#kXJwnYQ z7(Yf~@&BKnW;b}ee0P$6eIOa)$X)3eK$EY^jD($y-yV%M^sLiR`d!v-R`E}Mqr(E@ z+NpKo0G51XWBYo>`Agql~90|D>RY3DOX z&Nos(T7;=USrircdpUeb9c2jM9Ru{>tqNS87Qn2Z3@YSjfD%M7v))kS%!nO3j)jzyJl2aWb3Nd*`r7bNC>|7pwdCnV+fg?3$M% zv^y{Bz|u~pNlEs+EJ^Rw{6S>y4vu$sQNmHxEvwMk@&{oVv1u6yYu?#ju5frixv;xA zg|rk(xUdJ8RDh5PEi-_5!I2w^d1c7Hf|F z2ENJR-2*7yDPCj$@k;Wg_w)V|#;1v|Sutw~Sqtrs|Mt6XG>?T@SAgcOAT4ZCrA+(v zSs6kfv+z}uPrVUgTh}PQWSsDAZL-5WIdhO%0f%K_309(;~Cg7b-Z-U(6a#Ce&L;UJDJ@iGSL%%AXEggsbHrqV>$I>_L>9-I8t5zNwc?SozDfXpF@w# zHWJ1vL{vnI6axU%uv=GPEa&-c8N4L=FCwv~$UawXZ3O$Js>HV>#SPRdszX<%8dP69 zr!(iEHTPd~V6up8RhnO8Wrs>$6gVnEY%H+AHX{WW14{@e(fD0Hg(|#Ns<(|2B|=B_ z4+ppBQ#{JoX$H9;mp57ftC@FNT2P~76RF32sM^&GHg~w9x)Y?*%=W(4(sK$&|5dOJ za@64Kbm0pRK3&k+Tgk0cBY5Bk0Vq#6U3dEjR>?AiA_gct>#AQovo-7II7mEi&Fgm> zRwIjIvF?%_g7nul*uzt;IYq4k7tWiz$Y0KetC@)AhWoKDJPj?`LdEGP?wtrV8vO`{ zg-7L}xX&V=H*7+!ID6}}Ln-6I~7Go77*~b^mipbSv52Uq_-1G=Ips^Yi%H7zYG*aCi zOjrAgteqOw1T^deEY~WO%=)Z6v2-+9-MqDRC8ihRv2Tt0NljxgW=u20^-K$Gyr+jR zhL_BS^#(pv+6O-&H``zkXiAVve0{mrdCbnB|Br~zSwaXDKqqZ5!-D>U%cY} z$X1?wZxFD=Wa>p#(x{_k-(zWd45O9sQgfFHIq=Zp#NWnXtgDZI1CJ z-@-pB=Dlj0vUbpm5N1^VRIpILJm?(YfHak+6nCMnczltfZl4UaLF$bo`F#lwlq^TE zcWX-M{u1sjF>y|8deXyAh>R>Xz=PiwwqzlRlT2jS?&X!bv!^M{dbxGZv9pL<>bJD0 zy3Q*PK0F6(?IMv(#B0FU48EP^keUT~zijgdKO(O3xB+@wYKVZJg);;L8dd&-i}9;7 zw9kLWN$1c;CfQ$S+RAw~coH%&ru6Uc-ZDdQ>xwGpaR*0WR_&P@EQ0j^1LHG|@!BrwDAf04<>h%1bW zzYC4KG!Q|R zKnBpCzRvOb_D?K|ZMK}mEnn?0#1RrioAL2vq)cF<_46`fAoqdRyS-^onPl%g+%jA9 z8XZFq34_0Td=zK0s{(}|j80mFULs71t$q|5NArG~lCBQu&l;En2D(V|}WZZDWkv=m$|U;W^n@?$s_5 zuzn1Gj6r6o=zj0-VyCPZy6BFUo-7D2JJ+$^{v`L<02Q%Y1SGDAy{aJR#N`{Mk7R!CL9H zmKX3l+6AX%FH@~DjW~R1O0OPyhRIE6EjtARO8+Hk#QW})AHI{zZHV5B`_at(17yp3 zg*=lQ*Zpa?e!}MsiTJ~l*e@Qaa#s~>!lP%kW8hi1cH0^kqE*$A+Hi4#+0vRNi_Yv; z#tdmMD#{EwuA=KYzu#ke?6H#443-+jP6~nzmk}3`CJbpZ+Kzm{BmdK7n|ZolZaX^x zZ#VGh#{04Icw%MVdwnwz?jSXCATI?rrF~o?u^jKYzmJ3OtoX8nlDf#ItVTc~1xdk| z5lWH&A{>n097W@U5+@&oXme#|-;c zJ^&KKo^1u*Jp6NnW!n+n#$)}dmw#ZnO(#bnd!rpvftlcMiudMU_ocv_f4%cqZ%T?J zlQHBYj5?V0>dk5bRcS1$L+?D-n*OJkl;WSIXaTB zu+y*^E=_fHj_Dk`gc+^v{gDgz{LC_6mnERAh!eZ4$k-du@?^h}E_PH&GfmW&#=m{( z2O5i0MwZhY;|5kNfOE^)zv8cMQM5UmMBKWaf0}+%Y~#)J=_-3a_6Uw*Tv_8n)X^V0 zd&R}_2hM%eJ*?DbC;dfe^B5G-nMuQd9DZ0(N{zI#qc{UYhq>N-kU(qi0Bz^8U?wdme2B^i5HNKUFjCHUn-0_{nET%-`2<{? zAa*=SBQ?Jn^~y-toVpe#)Eg0+6XZ(!x>9>%h!bkRA)z!m3IjcUqGlEueOHaNp9v#W zmznC$BIk9?EFFNy72G5ekEFa-zir>AUi$Hs72;~Xp0kMyGvgg0zAeq-3q5=25u=fE+gE*kbtic9wQw1*E z+tB|^&#aDxzbTw<#%s`)ntQCL23`O-@^HQ-rp^0@4#44Vv-Zvm%O;=ZOvRA|-XjD%ItVzkh<{)|}$ub);ASB;67q{iF zi8Cr$?rG}+e!)#lA?HxAmAG}|AZkAPJhc_p5PsuQ*bLbvl6K&rc_wVhE=#85VwdMb zINs_j-I7|6{vP!U3T#`!mKCjzo` zdK75P?+5ywQ%BmfIU(8hYP4X&TeDgLMD!Z$4i?{lQL|+GvunWZr3A%H1igmkCUzE( zA&4{h3vNhlFh8w1CTPby`x<@5ow-XT1@_|<(XjU6Y=uC^Q(6xWd!oQ{TxCXih#Vip3D+wE zqab=}x||@!Clsd1#c5Xr|HbqC*A@UZrFrx_N5GX7OBwrE{>0&`@Ok>9YGryMoBfL{>|UM{U6#J5$}F~E^%%XJ=Y0xY`&G-p}H(8Dw300mukNRhmHme0YBk_+G=h% z+OIc4kc?#an?o>jX*#BEG@oP7$cxBUOjoLXm2lJcT^o@L zN5$z*3Sm`6_)77JL_;C_h>w*_9Y3etO=PJd(ts{I@OB#!;7xuW>!mI(jn>Usgov_W zUHq;zGL8ae^d0ASS)PR3z*(E-m;hd@H_D(?_cwQ@BDCgmpa~|Z7S+?k?bh;HcSz^! zt%nb4>~C^lM3ENTt4H(rN0m*`DKaPP(+_GxiDMy3N6BbUhp3SZO#(XnTYWSi~e~$Z%Ir3HL<5EbtNQE(br)O_& zZb~z+%bY5v@n@8-x^MsiI$Z~;iOz{5lW+w|btJ!mTAI%slVQJ-q3*wzsi8kzAX`>e zowp08w=b5Rw>cP)asvWOOXaeC679D(1I#Acxvv=TLhzm&zdWbnx^J@~#SdDXiqkVv z-68{rl=f;1T) z5&fneFVJ|0TcM6Qu!sxIjeD*4_(35 zEZMrruN?wB<_Wl(``b~>@+x?c&w116O63{``JGLTjh_Eh^aP<2FX1pM_a6di<3%^` zFHGgEgm#cWJ6VJE39!SqL9hXQ+I8Hcco<~?uq+a$|Aid7_l*u3;X2%#ww=~aS`JQ4 z)d>I3EXU|d%D-7;;YBgH?$MtV;TM*Ipa%ypRnScC?i4#-LGHy&+4!j#MgbIe`!G=# ztwIfHpez#TM45*h>_-P8r_09+hLlFaBvBv-3;3HUxgSo@xi})V!u~rrpuChMa$U;? zuKn>lsVul>o)~)A%m%Sw0~G4fba~A2#vG$#vz%rj{+D#F(yw{I3|x0O8>k5c%rEDD zy#vs9Rd+c+CW6xDkjZtv{oEFr)KTAw-29>oHg2kxs+IpVOd-D?6L<*mi5#7qmt!=Qr~q#hOX9BpaU(m3>AxEe z{nAfM#&(-X=uUwBb!TUil7)7?R9Zv64wQOf%F3z%v%W=Dcns6nDcr^9e}l>=&}&fFeWV)wzH3luJu}?bCK)qZE?+Zj=_!6NRIXz&>Rso;{nlN2qacT zk7ALW{w7+9?h%c@`631>N&OG`dE!@HzF7Yq7Xfl03{{3}e#6K11j#9b?M|_wdNp@O z#JHQihB0A$vmygcVJ-syN(xLtR<4i~SiY02hH>JgM79G{TGszb;t5T!EcGVu#DTgMs1kB(w7+8TONUv9{QA{=2*xZX@K)5=#}HH zo{cC4cs*bN##d4B3y_8T;z5#@Xdcngagd1GsW6SVjIBj@w@;3krPltt2ncA+Nq}~} zgAD?Zo^_NtWwPo_UuXz@+vWIW;Gz?V{#NN#HuxatzM}aTw@I*rF+Rw|34vwIV-7VB zQJ+A8?PT3;5GwVfemXD*1KR|Z(TD-8A(h9laZUl;P_cT@FZGl86%u#&8h8gl!I+sM zW9TmzL96gnMnK5n&$rOYpe$wzcQ^8dbq@!n#)AO4aHYIMMPkc%9L#b20*qim5CPmL z!DrqxZ!=e{zG#|itN)}lvoHXLlf#oly~EMd=m&{A5~A>h;xm&%sYiBr;SyAZTb8OK z6L^-MCg$65*=A#S)2T1!Anms$=2%eB@1>~C zPnVkydc*`@$Q>>chF-VG6-W-OoWk)cUGGw-L+Vx|%6%yv08&$U!8weN965N{L5bac z4&e=^-08=QJRgF$htkSR$0eroLX5y4-@SwZi-oPPPXAfoZ*CE=yMQ9*lMQ^tGKg{zjERvmf>eRd|UxFL{{OwdXeN z$gFEj;2FUq=eP1B7X=_woZ)c>Bp2myF?vmMwXPGmPlypqfUT1VYhi-5dLwq8KXp$m ze+eo%5b(s`((iENq|2j$>N3(oeP;@5=)@-pp8pAq;!@>FP7zRffev)@VMknnK@fnG z2v5j)?M8opFb?wt*2ml-aVV|~g{8|}m<#{5OLm_~*oIm4+}#9p2h!CuJiflEDZ738lml&x>aDEs zgFzgu3N812;R4@cwL;*}GxLGZkIzwB?AvL2!7l;J%Y_zx4aJC(mB~REpJPsaWrIS3 zCey##yaybpz#}Q)KVRzVxF+7bu((#uTRL96Z>ttGZ630xPwqc=7R9pKgS0V-*Mqef z%wHx73+3#e3cdEOq(Ww2dKvPrw(~$9>!DWy9X~JKF)Yo;T&pu%#k2Iy!&`s5@_5=H zBmmhlXB;k7A?JY;QBvQ}eWAUmsu3aUI*{{vGszld2qU>KG%Le%+oHK_Uy)I4LYxii zDCjXEhTc^MtQP#UJ~7xRw)-#7dt+BkgV%M+mV5?MMB0-calrqD5$fA@v8wei|Fhj; zuY%$8O8QptY5{33QEi+#+^1F#(k_XS8SzS9IFZp6>Q2kKfZ_WK)!$y>GDigamP}m9 zG3RWj#vO4}!ydSAkXnDjUKnqqKrg{IdhSY(0_NENq*7tBq;D;Wp1CPR;#GYVF$Evc zkwBEs4N3oqEc$h18rG)rec*1fG+KUlK%FLU>KgCL=55o3}-qECbrzEXTX z%VKU*Dfv`bY)DinP-k4PM99Z2X8kXod34QyPrNFi? z5Ts`8AKrtZ(PBZG(P8jAl8n{N#7{EK2tRS<%n=fjQS?H!GUM9}ZM}9@!w&2eVt~FP zlS%1Enp_YO4yqsRo4@s%4!FMiI86S2QM2+m{tIga*+ri`SKAWDNDL36K#*RE+%V&p zvl?5T&pB?IXeyw|BcU(Wj(%0ck$#R$pQiqPsYASylT%Y;!TZja^@xyPWw2^ub?$h0 zk|vz#FFqxzxans9g=UuxHnm4S{wakJi8JHZH#nh05bOJs?+U0;D|v{H#qREs2= z;IU4UC`FptLyq1i7@ea@AVWE#*gAKEtkwgskc^rN`!zeVCnMr(=J(>S`U!qnYUN>D zb;-cb)$3Xr85yb1E96VrIy1ndiV^<5e;D$9IhlLKGRO%~B{?jVdeikCk!YlFmJc+c zdY8qZxBojy1BL?8IH9soL!yF_-PdYp3nl{4Jgk`_Sye+aR&%1BV6n zNU-lu8BNEwbBMeBS`T1O1VBI=1te;#r#JomGGZEZSRJU#htVbja|MYS_RgWvRFzhQ-(Kk@qb1TQ;rg>J=?6 z4p9786G)qGeH?O?^_U8aKXfGRlrF< zN5Jv|a=0xZz{|X&Nv?=zIbJitj5DK(txfUkwa7ql@pRQEWOQ^J+0Ad2SEc%^9X}?% zvIHI^)>``Yq*>t?Ts%$IOGSx}+avf^zli>4Eg6_rW)R-d<~)O8uGN4ht}ZfEzrP== z&N()K7!(H#dGA>*I*u|MFh7%WQu-$l$=xD{0yC7S1V|_Me_UKZCH+c^i~&kyh0X6H z36djnEx0JN(G!Kh=8=E|B6E=yYhcRQT3fe|$GCUxk3@8NGl6&zfn`WEgNpbOC4)6S z2Fl-}Gy*mJGpp}?)7<)kq36uR$}c4JQ0$pg-g*f^=bQv?4(%d+J_W8fI!!%FAwR#t z#NKidK(XLYAc@d4I}V}h;ibnt1{;RJYGQ2100E&~jrp{YOq7F65WNN}!ShBs8s@CM zj`A8T?~AZ^Qxi;<2)c@2XJEwo&=e zyI-PG|DH=m?qYh`dcg=F#hmQgx;{c#)kOf z(_zvUX_{=5IjXCkQTnTQxK7Ns;7o?VWK@Q(CV?UFKV(iQ+r}iJvWVo{H5sbV9>at` z_V^h-QMSl0%9ByG?3ieP8AEP!@NtwX>WpxhG>i4j8m%-%s_b7Yi$8Bpq=k zvklr8Y`bw7yOi=Z2&PwHc`=ZtZAgSHGzWiL1jr}?91b!1X_oPc*m5$!GVdlQotfy$ zLPUHgaX?lvMK4Gz4=lZ3{D&)U)lGmge88~#N5iiltP3ej)hI{lPzBM<)&K{C@#$$M zExHI{Umw-{X3!cS1pU$@(4LDb|B9Jb*{T^mgJGSU+b~+b18SYh7biciIzFKa9zKel zAB4^2OsB34Y119mH<|LNyQE-$K|eQF5$RCYVJJ{#A|>V$j*hpXXx>==`Sn2#)0?+9 zGkS`1cxUe9caDjlk2%=&R!BO&VIax}fZU~AbNa|NNE=v6gj?eFZ@}Fz#TYgEqe7=K zhV}Bqfu%gjUk~wX)S$N|Ew|=t?t|s6=3)I~ovjF+gOlTHQ~@=uK2Co#J_;~!@;)GO zgxjeVkY0$V0c$za0K~;pa`5f+^T2le2!|qKE{>vJG3yHbvPc^=hKL1p+q=dK zjrsuBcTi0sXr$4`@Md7t1Wr?jgfqw(Fd|mnheD#Uqh6`KlgOa{TdbTYQ5EA5P{to z;V5m&uaT{-PH)_UYfm?pW4D`&Z<>-~-t+wSe4g90Ao0IC6o+j-p#KgL;KPb*DtW^C zmMBf;x9x#A_c#Z8g-<>0BSFDRq{~u0!+Y52>UYdc<+CMaywQcf=~?kk_DZWl^YOQ1 zEF42!N}ESDc2}9!)YHWlzB~HAaH5>sL#7vL#24 zWWTD&X}^i13w7)WDe{Qc5V4 zHF=cp4MCf(Qk}l%F*`M&-lwqLjc26PYAZoi?2r^02rqH@c3$LxK}M?7GGBO42 z#0W-^@7r>^!%3BqYn3fp$~Tp*ymu`0pULu4_!k6>H_(5LKcnMa8s>JCCK`L~?*4Tm zrH2MbT}EoNM9j5~F%xd$a`NH#bXPA(W+h6zH~7f_wX-_lpzMx{EO$?uEAc2sp+xzMBbV3*ovRb_3eI@2pmZL*Jo9F5a`Pv;Ny zqvyC|q=zP)b}M1~+*-PxO9tWc};nLdWTra!(a@Aa>@6f{{C*%Qk;ggK9yjI5>wyp zmZ+s1G~Oz1esQ>*@G1adPE!WrBXr*6XGvZ>hgOd;^>zeiBPo!TY4%$a+E1 ztR!*ppKlP7zg+AjoFhIdS(Q;^>!Z&xFghQc+|oS89O!*Z^}z3`O8bLMVEI)j6R`n0 zop)GbS42GR51TX*0kll(*6yB3YaFEiVF zT-2N2)f&u^_(cElcS}hFy}H#O? z4UREos-?5Bnwua+RX+5X&JpJ`@`B3+5yg>V`*^aZx}L;7vxSd~iV=`sxL5b&<~%2G z9hT7qj>pM=DMm??)RJaE$II{|oS}Hot%un(WQMY|1%5Hi?=anby5+My2~Fber7a4P z>=DsT>`!s%SSuv3g~j?PH}#6ntxY#(K41TOW*SD&`pA90@!%B-1KxfFP;`De{^fl* zg>&z;+4(v7i}=OkhK3&v)dW9zfiHd!pUR!>6B7l&gdyGVlE=WyXaWVJ3zxVBgm-eE z$fQFgGhgV?O;F6iVbOz?gVLQj2$Kq~g;jcI7HW)QVBXzSB4@)C)0t|Y6PDuxHNh{@OHDf_*UuWJaWnUj=kGMSdvTb4}D5fqSb58 z>l8%iG;M~ri$kUldc&W@t-~c>(d8TbT+;opiX(ye68~D`z4cs<`#hxW^m1>4+QJ{u z>UJ)aQDSh2-V@fTuXBzhPqK&eg&AtPCM5u!3BG};N(T7Q3yCv(eXH4MVYYy@`~ehj zP9sYJqN-G~A-=DF(PQF`-o9=oK6np%8+U1w=Xc|upYAn^S2QSi4cT3pHI|cxh!7F=h z{J>#J=_7&mSmc0`e@ z#YNyQIPLZGwA)=6ihGKpR&auO6ZV=QVLX48h`o&JN&}XfIzc9uPs&1ie%=o|OO;%Q zriWwA#Jp-?BZnU!q1qGLa(IE2l0P|0kLEgRwmn!KOE~t!4AkGSuPuoCjqtF{gc85R zbzdbo{fXa!M@-Pm7HJS|flC1mZ^_3X=FG=m8X1vlEGK$(E9ms_V*9?EBFoF$g(*AI z*@!^$mQr)1RS2FL_Eq`umFTWC#-6)Ek>{^ba8uK>82_FI`)bvf#p8JvIi&>=oEK~^ z9>gpKK3<;O-sMlCYno@-oxJ}vD9Ed?6)_bpHJ`VEyJ0uS4^QRHE2b+zy6Ak8DN8k@6hw|826Ks{T1&SV*W&X>k& z*#n`^^Ea5G51edln3Lv5kz;STxJvoB7@(*avjxeLgM((yjJKVk^-U&Q@^7F+=>_k8 zAubHr$^jRL;v?et<3I8}hnXWCE&4Q@BqIp>Ctxu zuOcklpPc><`esQooTc9I9t`5)5zSh?lU50MCt4P-StGgnUAtk0%XKp2paGZci^+&- z#-ci<%ltQ)C35=pAG1|#Gt#|~-G|%uDv`BbJudTaA_t~JR5|AdC zi+~=ss}dqCa&~Z)tT5^F_=dup8Jl3Ae~3#+28$Si=t_tR#8T&$Ki609*}vuR>G9kZ zP-&iN{&#aT4ZgGGrpb$!xc(Hmb>v+#rl5Z6L0vg#< z_V2Jf1}6?}D0fE0av!a`DVzm|f3m*YU$Bf@ttVRcV9@%ByKHH(m{rkdm01b`vmU7Vsh{+ilaG`F0aEzIvwF{|EYZ;K)s-+k2dh} zi|zoo_t>vW?L*>37idH9(_ya8@VD$!e=2E_es+9s=vQDx1i`zr$Jp4|RKJp(TP(A%OkGasTIm0ZeJ2W~(}#KVbyAQf!~?$w9A- zya=c#`{iclb}gF}fqMB2pEX97OMEc&yrwqdL_oU9q-9GW-O?W93hiBU<~qc3UqAAV z2Qvk`jzq|czt^kDExzp`;6%opTJ5lVU>j@>!lh&7Q08Yx2k8%|A#u2{w>UVAlQatO zuQ(up_>&D}M5BfT0h9pBrusBWNteXgtUCx95ZZdsyT#3t6(Jvc@=>OLEYsBq7n+zV z7oX`1P0N}5b58>iB!Sk=K77`;yv5q<0@gOJ=HpV4wgai4F?Q__{9Lj>^D(1#GU<&H zGr0FdB!epd9PXSAAjdv+xy(xBE8vPlWDeyQC+|PGpLM779J?%2SxSV-o3x<>g~n3Z z-Qg8j8E7iU`YSn4r;tD+i!o}V*4kmJXow%Y?7pNSa_&qG@ zu9vP46vh4@mTvbs0k_XNx?&`aakw!B_e6eVZ7#Rz+@q$FQ>=a6h48 zrk?&1%+T;M=GY#zqR7#ubL4=}UHgw(I%{cGk+Tt2dw+#ClvygWD?DM>Dbb3XJABxF zZ-goJ1^=rV8_oJ3ai$$+28RP|%@=9R<_S1myFHuc0;1Kq&q z-&D@f^dmcj{)dw4nX)J3Eiq3J4o#pM9SZ%UDHXm35`-W37$hOVoU`muu+NMu z0~+~PE4&p?`|BSJZs26CZ<+2Jqp_M^oRSYfnQRLoYCIm zg8>4IzU)YIV|!kK#9Nssf4(p$CWMG{bYMohECw78rd0Tmiu#GskWBYj;8&B2v*T{u zyg%-bVpqQu%f9|gA06AYDeKwM0ad@;{kl_Y%v9JU`)zQ!<}+lu}1^F&7`&_K?&?JIldYsDJ@dG;Ej1BSWSrA(<*vKR@h)>;n6oJwrhqv zP3SJ`C%+5PdH%Qk=idJW<<_KOVgsD~^S3<@iM>5|=L5eFv`v#@-`wvkhJY9WYIo)d zK)}bv?m$syVkC|HAzplMQ&3Sk-perdH1PU&4Ct36vW>{MW0gzUt!F9w-mDDk-PRSN zi3U%*718U{k+uqDfFxB=IMyw_c-}odqPic63p6IxV%6r&1$zwoamR~#YM`q?#t;tk z@Q~`GS5Em4JM$Pu&cPUZSN~8bFsMz_9B{aTnUdPhi^(k%^@uczS=wl!aYwf2*<(zYNa#a`IJ z^3q0R|BQA-E`huEqNUyjOGSNxk_a^n735v+1IE{%o!5hCe>(cv2^ilo5EL$$G{4~Q zY3=B)9CqvbOt@h3&A(_uf{#Ql@3^3{{c_e??@C>bU}^M&+5CIFMgy#yUqVJ$@&c@E zc!`9FkY1eEEQS9FR~BYS*;)b;8gGXUi{n>c>LuR(YOqQTMysPP9Ug16E(@W#KBL6p zP}10E`y70>Kk266W;154)mJy%=%1p$fA<)Zl&TC_5unP2o7*PSMCaw!@#y95?l!h# z{LJY{{V9;rDRr_BlcKc_EBwpfh2|;!-4g9lf;$}?cWOuEaaEa{8aeEnWq7d)+6q*e zJy?b;{kTb<+KqG*Pz^2S98(waFu7IOYNEQ{>m`5FXHHio-M401pWv1Iu3(XwkL;ki zP>)4kpc-<_%U7@}ce4%=bM24}+i71S6uFTWmXR@v1#kI3t8Dgw$oHZ=@;2Mf{b$N) zJ^KSHLoXJKOV;fQH(gyHO^q)`%chI_y(E;}KgZ&1ZArwxHC;0ouns#K_XZNMjih(V{a5 zG6vhQpJ_~k#HZu!KV13XMDIU?RLWNN0+1PWT4P~S1H_^apRs&zRl0iJLnki!8x>0!|G#)q``OdZK;%)%viyFnH}K8hwsV( z;{JD<6>yKI9Jcb?D>yxjHaYP?o;zbDLO*qPu zv0D{GvYTo*8C1wnI%O=~JbCRhnE2S=D zv8BD5dmwj-dgZz)G$ktDy#0`G=wZ|2t|5PxJfo{2+$tGbnFJp25j9(_K$xP9_>nYHGHf1>ESp)6e}ASaesqtRq3J@~N=Jhm*}N%3~d zAWM9)=nd>F+vghF_Fw=TE4$JQdarv(u528LOXC}R`(&3hB_3RdMq4-F$Od?$xMjf!?Md|s+{=2!l4%7 z44)2$d+LDBEu7+i2+x-Q5) zHtUPwnG*P#~#QqjFs@OL*haI;CBxhMC`>=T?y;+sn} ziWq$!EH74T$&|i^YljEb91^=)x~X730^}i9P+|3 zkOCZ3(PbhoGryoL5N^_s2RN2HVCE?C{dneh@+GBX`rFEP%d#qSGDJ`4M%%vcC!@YI zS1&Xr!i7rH=gu74*q_J3F>{7zC~6;r|K3dzIi<)eFZ6 zx4iDf!q0U2C?Iy-sVl%}o(i#eO>hRh_hY1s3G1`;;+~3AE?Jw?A<8}gSYG(^Sah#s1=j$=W6Rc>1eoy0NpWW^gfE*t6<&2O$2thNpxjw@rmi{Fd5p(+;07N~ z+~_e`_!X53mj*iHH|I#=FEunu5;yu^ARIIN-&OAt{7SO$fld~FvE#*aTNKVcK+G71 zau>q&yN{JZl`MpNI1~81Zinmi^4T8&6xKz*2`(JF#l%gN^0a&5jiaNZO~?50(#}qw zweQzA`tg8l!;^dWjQPtXvGTADioY=1H~Zjuf*5#sjP=&v<+4My&%b*J15kUM=xF6= z)-0+{#R30|b71-x4-XHGJ-)hsbkyEMqmBCnXs+=t@$Bo_NBFs3%JuA`TzN0N144Uw zvGeVm&SWNdt3W7PYht0tCn;3uIqRORGF|~uIz~96z1G{ngh72#7H%&u9&J}>;xh94 z?Ey=pla+J|A(Ue2u9x|(XH#s7um!K7{rJ#X|H(Q(2*3!>oo%Wkl1_C$^qYd!q_xd| zDmx1w8u)Ls@U1Cwwy}7;>Dr4!mU8b1jP}tn%#MM~WP5t{;nExN>Dl%UaC&_ImHCxE z;soKZ^&7$nckI1@I{Ta-AYJ1RUmt=aUYs5{b=bESk2YR`$XiZyRKLa zcQXjv=x=28aR?U~8gHGLun;~m8N+;oQsLR;8|&PKeEx zf-VP{m?`<~HMD&j7F3!^bU|^|6EmOo$c#)<{sW6$(2oD@0Nk^=?4!smR_CSd~fpwuA+#tNi5DtdP2JST{_*G=#19mUm`9#unT?|^FTc#{v>(I!?NP9%7 zf6+8Cl~8kPQ+*ys4M&UD6rS?*eFAJD-MU( zH{&NPF`npZ1<^4kLHR@m6r&M>BNm+*L^I5wB8iyhkajQIy4*!PGZDF37UH{is4h%_1H#F^+qZA;w8wAXYfs&FpxY~r@ds;fxGWb=kXY9L zA&_F9MmVvt`NDaGlZ}S)j4T#s;JAu*s<94@M$rcPe>5?>a{K{uzBi!~=G386cR zMHL}Rhq!NrX0h2ytIl;MmQ0rex#5VG81&`q&9YAq(H++E930q|;PVUZrD`34gEj!VwvNne1CTeEqO- z2c1Uv=#~+x9GX-6WfHwN>oS6rodH1j8|~wcrU%YC`=zO+jrbIK9^rF~d&K?595LIl z@^Lc@Zyy52*A^R%wf2L78-({9!U^=B-1CZ|dyL>$+Y5iJbdEEk6D7)G<}w~#!)VrD zdM<@5AD&bcmDetC;JiwSt1i;|{Jgl2qH(sVPi17qT%-IGC$8(O{GF z_Gs-kIk0lHM9v+9-hUrvA1y(U;&}1!`+oA)*4n585wlyb5(dKeHrp#hq|5cj*0>9c zJR8m&Zf(Vn8m|yG!pVVKhK8WlvUZ2Kvp9=p0pnP%&8_=8EAd&f(Vim7rT6x35Z-$T z$AS3u4pFWq3-9#8pTvRV9=M3F#X+f{sAw3^`UeT?Mpx`^)H|W8+Ia`=mZL$IMCPj! zUdrmDxIK0&+-pVa|Hz3ess|BIE_zp1^;J1HGLrrMAU`sqt+Hr089vB11A*#qpES!L zF2NEsBTCMYNR_JriC1)}pl4i(5SPmrRZnz5hSHW$w3bt;!r z*I9zdaK2W#9H>`6#k*88tcmcZQvT9Fcz{#2+zG{Ay z6#-2u^`^#w^a*dq9pGcV(hFaFIo^J-(>??(xgZN4bvRZw`y38%;X~8yMYAIAnr}De z$bKMj-@CH|FYHYXAR~fVoPXEQtHw*v8-1rwXOg$KUUb!|(k;c;Vh zs7&o;c)#R8wiKFUd~kgo{^n<^TAOjIGt0{!CY6!- zK(;D{c2|W+^3e>ROK;Qugcjz!tI2$|-prO|ucl25(gd*_&KoKmd}{2nSj~kPgpf1a z8mnb}At_rM)75lXwvH;qw*oL`YF~Yob^8%5YxO!Mx5}pxzRVYz`a0-?<;je*EKu%a_jZOqr;>7d%*W&K=|nF{QUfWdhTf9yngyZX|Zm-kfE>jrLB+W9bURf61ln(6Isj(S(dv%v# zX+Of5?5+%{H{O%i{sTY>ueGax;=~nj$fZko@IfyeXQ;HSt7@xSkW_VIutJLYNK%F; ze*HZlhd}tojC3rpnL5e!fK&F0)bJN!F%(kk!ZL#hB-eaux}_x*Nz;5`$v$#_W~Nn~un^8Mbj%rU z!50OkCr%?=2@HE;rdZaa&d|Nm3kQUcKYuSi0Hd=AC&>6c$Hwdu#3)*+4WRP3=egtMeViO5o>;MUr=p7?kJqj1=|WT0^@-3fE!NW?R@lln>Vc18P5Ge$ zSsDzoUOt>pQ@Oe_m>UTpCbQI>HI=OXn&A)qNzYa~CSWeony z#mFNEVl&PN2aetw(E#C)%?LhUt>%MdM#=^9K57#8$WhGGs#3@w^c_?SyeGzJBSLbQ zfh_zi!qbB+h)$&(tDN`*S@_kQ&Ro0?3CGKAxR@tyApEegvGK6Iwy|*pkBIo3%Ru-G zuB|zQk^SP@E2rz}WPHbb1hX>;-`UzZi|~6}v*zno8u!S(I9&9(e-ELlIGoNj20L4a zN5(l&*Nbg<3SyOOplgM2BN4x@DfpH4!ZE@-PWGI))lLX5q$Me>QQH-SO!9uSP1$+4 zqR)g9H2&9T^x+_-0Ox9&MA~ot8zmh^@GO(;As)oS4V^@(U@o9DdCo@KA^pyl{3e+WGf`QnXR~=B6!Tw< z@RC!CL?ZQUvDk!jnT2XS=eEAj{LlHS6d8*O`9Mu`CxW%SbGNeUYn=;H0&WjzFv0Z8 z0qse$@T({ljvpU3rUvdEJ&ebXmkfljOk*9I2!~3_{1Wt0j>l17{19|}d}J)33vLK5 z_>Z5r!#Sog8eK;qU~*Q2970x(mt33)xB!@a7Sf3sqmJ2R;l$26T`qhBZLr{ zqGQ2buUok*_=K(;9E8|M6yAMWGM2UvS2VtZa1MhTqr8Le&hc{Ua3pz|3uM^Iv2;#Q z*4^ov&oIQT7B2$AojRo}s?y2^c+UKL5+x!e1R$`6*rT2=WUByO4G^Bn%!Ge%MxE(! zpk5CPf}~MFs78jALP7ULlj%q^5SBO@47*%xCby$rclwu{9F3~bOJUF|_w#TdU(6N@ zfm~!HUu+I16RdSyQkDx&LeoW3eNuF{RTN$Q+kw27Kpn-F`C{R&4w?vMhLYJD(<8lb z*Qkp`#K2qq4#&3)@!#BAN3G*^cFNtO3`Ie&*fFmV1^~gidXyk z^N5pE(~)8^rzjB0Fs$tM>iL2~)yjen@wZwIQ-icztmd1|dcOMUXZ2?D>ra31GN|(5 zf>^5-T6djpQ5p#goVaRVrB5p(>iU?Xs&43_h>s!#k#u2%lMYLyfp9nh3({r=D+a=Q zrWcOi&Bi7=1yK@~AQ+%O+4_2TXI`F53@Q%mjK)juQgM7n+J=Roe zwc@~eI9pnWFh!E^3ytz%XmvNp#6YYeW55J=A8mWx*so*OQ(bqYqC+|l2466CE?7&L z%-wOIzs9%yRg)VT<_3vNDYmZj?wDMtLZPrwJ@~4|(7}+C<5~yBu%tx3Y(ki$JB^)& zj60h{Yyk+bs~!*ZBP)-b;ZHt~=$x7h6bi$trYR!BIC;^TFW%+r`J5tq-9oXccMyK? z>1VL4S_qe^TDHuK5VPxH0Sv#Vk|Io{l7|1TadI?N&T-lfYBk z7Q_8?YfiIVl_%;ezzvM|eG-{j$dRQ*1C8RI33hl+X@pnIMR^5bkRNhYOH} zH=AW{*_)ICg&(*m1)+B{>>F<8YZPobOeqC8y;&<43iUb^34I>gZv-g|9@z|1JRaT* zQnr7NT`N?5k$m3y4V!6Y1uC76VuZ&;EmAktQpaYLKu*qp zf-$z=KzOh8!f$k1y}*QL;p6gOI!|GqfxonPrKdBor^O)04jh|d!xo>PfZ+?fb_2yx z@yL{}@)DRrU)r2BqYSPa;sEJ}$4byRqVhmjsn7^G(;$ZO;vb|CrNdO5;6M3iI>2bf_+ytz_ziSfpPpT zV7hYE*gf@e?D=$4qSCWNt#z1&Lev}yW@*~1zFz6f+j9z$9`!e9nWos|BzA953 zp9^%gX;|M^2L%z9&Or5mFR>Wmr%Qz$g!?Pb9y*=*2Ycu5t27kFaTDV&R9svbNXlTW zad2QT=_Qd4ZAwZ9AX*kjHz^71jV_%!8J3Q|$biPgK+=Rb5t3(EbuuO|*2T@g!E<_O zp@<5oNcDc=xwq|mUX0bRUr*1u--O-R-4g1>EdN9#pX_)4WjwDyYBVk!spG9rjZ_!kWXV4keLDi6opQ zJUD(lRf}6H`R^!^V&f4>xL{0QE2{2dZe~lg{AA$g%;Au=fFP7`Ny{sNS}dc4J6A8B zvU?_M8ff);!xmKiT{-U7?k`LD8R>kn_36d4FCIyFy~YMmInHjVS+V10ha};Hifqej zy*D$#?Dw$2zWmrcVMqD81rlD-?lvq%r(Zuw_^Tc^*-LHb=@(fl|5(B$%{-ip)(HEN_V3sEVV`_}s;~bc}j`=9C(cEnixmVUUCa4$YWFpJ(f% z@<*`zDhvF&qFB(CxdZ2O6@^vvLv-P0Wp;v(Ge(f8r` ztbY!5m?=W%u*@2L65>sg+D}r^1HWZAKf<>J$0S zfwcB;RyYJr;J0f-4&!!hT~tUCjx)Kkjru>xq#oHsl&xvphp+MqLLLx5M@x*`DX?nKA86S@!PHZq-H2 zb}m;f=>w%&Dm8?`2^JM*XTI8Q;&N5y_xpV%&`&iyHP^T&dkUOGH%`AlYqhJ_Sl_oA zA~a+64XfMzXb7e|3VKt+%2$i#WH6|EUg0%K_;6x@|28drARELIJ`f78F_F?2ltF)4 z!pkM>;m59r=7YN^&bVcPlze{Q)SBhUu{2$+d?*d}oFs>!3H)|#$YI>BO(h&ymGIUL ztSNC8`k6RNMm(~bYU@wlXBhwu@3e++q`O;J#nWXLjuek=#tDS8zh`+KpcSr z64Wp*r%@^xl;Ma+s5*i6_im$l%Po-^k62Z3NXL#lV*93TzG<~o3+q)d!s8pYXlYt_ zb*u;w3`~FQ!J&3Kbl~pp9k%809mNuOSb8r*sT?}mxut*H)JCIGrzAnP8Ea_nXzpl^ z3r|(xRBK9-hG$Z_+|;zvvuwAAU8nv1lNtAz!v%?GaLKF}l$ z=MlQ@U*b?Uo8_!<0GhyW*M=O%?b_{erfdQ#mVkg%Vjrdhl0AQ_2uC@Z`TV`-VO?j^6;U3;!?R5}qpdS5$bf1vzjk-^P@5DB%KCrNo)=3Z<*(L3TO* zBC2l9vfi}hyskIe;K(~MnfuV9spo97_2!Lb;m6Rj&SG&I8GS@_1`1Axu=eujT9gCt z8*lC%9rPYIKjBOqd*FL7UOUATDXD@>c&hm0x$yXv58WV`2mm_p<=LTm<(M>g<(y^~ z_GQ}O$QR_Wh@@qq#ZN3nBmMOF`r@294jrKXPJG|Q_Y1R`AU`>G`V?mluM7V#;1ZrH z_V?m7xi?UZs0wAxoV-S+n2644h5Vz@ygO{W>#L9he+`w_ zY8L8WjxJx}n@ew#3qMN|&U4{uhD&&=*hgJBZ8m$H(M_f(U~yw7zJX!hFAE25-Y(wC zWR8x?0Qr5)K?^#A+jU;)ltS0~hatgl9&sdwhXA@eMh{>%#v9 zxP+&QKkdS)E*!XeoI!MRGMyC)Tp{3K)5NC0$jzJ zFt&E!uZDqovv?nK-~@N#ye|BIgiCm;*h4OystPF=zU;(jkrUs-eJ7l^QBOual=aA! zqZ8l8fe&UA^LFgO*E;cof0^}e@Vamgm+;iGzx~4BW{{*4?``J9BWsPa4H@q+P^Sxp zr9dYh%@~_HaW8b>J*Ac_R>jzXuXo~iPH}iH{9lJlc&gZEU3ilFZOn-m0OMy49Frsp z4(P6xdB7Q6jYos7QC1wUY>*c>A_uN^?`M7rYzWJ1#Ccu#KMt4hRI%q=c*2Q`#eB;v z^j^q7G7s?glk1577kgs%EWJ{>y6(RCjP3+ukCNi zzhO;R*(_Wn;XcWqg_SQ-aWL>OO5Ak4=yj|T+&`aS8jij2T7x58D?Tm@2NNG&_5MUL zGjXQIL@2V_zlDJlISU6L&z==O;YS9M4E*N2Lk+wPk58C}m+FO6Fi6n~9N}7Vd<$zEAi`uX?{Qre3iKU&0;*5w5^i- zwJ{AZ?1f_%t}!^mwW5Mv_!sDf?_xwv{Dz3@HK{Tmi#`c__Qegn+wrJ^m*o;aiVd^y zT7x58D=M&X=!NgY8;lp+#JM=D{rgQP1=!a~5$EZF`gfSPECU~Rw+46mlsn9}o^V!L9S-DUCMXj~VC+ROekeMEuPoF$I zOfNI%ukb`1(_wC#KNbi}eoc>c+O5N(8h67ne2aoU^F|1Zb^t>wXodl-6qERq9;K@o zoQ{JD0wSpR0O4LghMI+)P z9zc%)fG(EkkuF_Sg`cqtKW$q$d+W;7*vFf9zwRaRlkPpa5Fao|;}3Gm3sC~!)1HR% z%gVy!+}zTwxR?87{!jxWWxoBdg^!7R2`1l zklDqGWPyqGC}K?y;fxD3^x+(7@CZd~Ad=ylYlNLgq?=o59n6=J@#J zn8wlvLxm&$g)SU1?85)YoVUU)Z!q#A=2}~mne};0>qY{*j*%Ka(pNZ{FUzvr$`sMr z=&(B6MN3LDEk_CmY9vyf2TM4s5m8&oLa|N;o7EZ}pQX7h*v~sed$dR1c zO}9Y9&Sb$;4gvz-*+FKh|!6n3}saJNqO_{PwkB7yhtaxNg{m|BpFug;!Gt2Wo)jc`lRS z`QY;~+7#TLLr&RJil1zJD=(KN#jX+>zw&Jwf*K2XVeOeFJa!x{&)uNQm z@}$Maa&^~+kUQ*fxm+0g^9?(l?m-tFzoH{ez=&%edblc@!m(^#LbSFxbiD*+w1!%Y zD<?QX)850>NJ7#g*CE|EfE==7r5TV6GV~Hle;?vEEa;A^>mT84$Lv- zFy{xb6nHZrY=!VNg3WlRNw-B05Nig&R!Y|*@iZq`;X$kphgeQH94yB;93;S+)c%9Q zrqlP5 zNu-6z{#oG!j+c}Wj#G`qQNo~<^aBbP0I`-7VS`?Tp2Be>7BAZ^d~?y0QB#>x<*>_C z8=`Cl0$cZT9JkwvaGc<`5)V_jYK@M729CMz`t8r7&{#;i7$Wf%A+Ol+0~bBU*bt2fq%37 z(ZY=*Zr(&+n?Kw%Eq(YZG2DeeO`N;J387O+l*2AT^ztdME@`fliA#hFMNj9Dj7&D1r(}y1`++Ge7AY@5+0E5lt5_7D}<;zGY z0FMCGkb`{!t|NtWY&t`mMR_M##g7#}lT`>{o0NVcT=e7fv|{!(yzwv~JfaPPc@hv0 zQTSFVe~{VE7n2kgu2*xldLQ0(Ar)>$W%yu`^5_YCki<=BC;r7x_wIfBL`l4t!1u4- zoJ0xyubFzpmG}o&rcBSmC5F)d__Ox-n0N19U3vNCm8)-}5zpQ`rfbBo3xAq8Z-s|4 z-TY3tVJEVp)lw)Kjd+c9WM$Nit4-96lc@LL^C2CMvymM=jzft{rM6V{pu3eqBwer; zVU3QAk6?tdV1r|Y`_Ors!b7=Ks(a8$r8)=QRI0fHl#c! zkviO9S(7D8AA|WqD*Vh(XZ92LSxk&S=qc{`e+HgMX)?O`_YZ-*ROA0ziwLn^pi(R;lo|{CE&aj zzR_+~-0gfeSP{eVL)HjTW2t&P9?$Pe@i>nGSU5F|5hO>?0D_F6_YJGt#VyIVA*P+r zfwSxbXE6kPEfvuB6wbyRma2^W%Sdi`0E>%qzp&ATt( z7<&ZJ--@}1CGl1CgS>Z{*C^La@9yob+C)NtMk|Bbz~ zjY+MJIfwH{W4yCdb`5y%p^ zBQJ!>x@WCj97tF6u3KL(78UWN1R+n7?gtyoyV;d2oGRfLZ5j7UUa+X08`xJD(Mu8~4@;D1ZPNtFJfJMX{$`6r~e z#=QQ}Yw)1*I;`XUFaP{<$$wwFbGWNE$NpmKM=Im?$F$GfJrkcdYTLEO$>tfRwoxDj z*Q%$d)v?L(ZAASgiNSrN(yvhq#Dhe`h2J0iFO8I9Vf4YRL_ceNrzGLUisX|TRTW%J+E3*+G*h0HAlj-7vg!62RECjGyN(gnw z+!~c|KL0Mga2f|*UChmzYahJ>U_buu+aG;$)_1=E50W2W{1L{a{}!|g;K-^HUOf{x zwwfPp?`Cj_LU5nI{?Yrf6?%Dp>a(e9pN)?+vhe$Z%a?G{g$Esxe8Cb~cF;<=!o86S zCl7)XLdc{|0o~0xq1`*?xs{QCAcrzz;mm+8l@2=-f$UPJtRJd~`XG7qtTV$$V~dMR zh=R}^4YW`sTv4z}_!w2PpywpgW0s6=DVqv-j*6ZzOQz`M5M5hA8EL2EEh2BynKB(E z*=Vj%wAov@x>U}aFL*%0F`Ui(@vUcX9SyJ%p~`IBTE2DD&4Odsf}5!TS9d(%as=V% zQ<`k+HCig9cj4m6r_VcZkkdyfOZ*H9d)6q&d>ZiLB{vR^``x#{dx6S#?~v>7LY4fr z?;pbcn`YY6sbLkySjfo-cH)m~jeX~xxcC{;f%i@B&uk;6LVUQYxxL%oJbahE&kOt- zzjm> zVP`ZanMloD5p^YRZY?xf7C%m2B?$7MbZDv5=2^d~BT$RON|kWc+J;MoC=%Y}IzGOI zIlkrQEEU{*-c{Rr!OI(nf1KBs=3}{{4vEF;Ty_(qTb{7aTIfe0;R8ZGlBGQ&&O&DK z<7H>QP}s8|bfss>V32lkOaFe5c_+MjAwoSzQ9I8O^}2sqcXe9U=T2;oKAG?=n`%_T z>3ZSx4xF^hIQhn^O4Zgfcnbv5zFqQqh3|g%_MdnGt`@F&)Ql%QJ3XG9@&*{n+u-Tj zAAg#9C!g-_?!I;)FyOQAyzuD!%-#3DqP_jm?eRu0{J!9_C7k6p$+*(of`Vkr zPPPd*`3RWU5g~w6bcgMVQYNm7*g6p~=CaxK5-#HDa|Y3@w-Pw+wR!QMTZz;=hlz}_P*+3&^GSF5uOPmD!p_Ie+UwwP zHcc)A3$=81@tPKvUD*4(76{AmS#Ery@_z*v0V{Yo;iEwX?N;r1mR0$VPPEKM6e#RVAALq7H^%Vvn;m{XXPiuBN?%V-SUV&Ua zoc61I=2+!m`cY+CJf!TVI&tj4Azyh095|z|i!!X$91a=f+jrOI!IekezpWH+H_pzy z54dazXG>UI#1UfY?QJ1I?V1P#2v4>NMNMpk;o_@?b67mQh2ZhnTn;&I;+N*aatQ+- z2eE~{B690&q?3&*5N$0dlZl#6W%dL%QJ#a-LX_s?m#;A1hKQzK7UyJ@Pj0^=;+9^+ zKAEJ2ClrD$r-v(KmtM;kvB~3!)8AetX{(Rxg?|c`cJkqe!GlxGG1Y;?l7@hFVXi{OdWf8g`wYJp0aZ1g(0mR{U!U#j%()OMizb_ zz_`2ia5zl9(bna;@aK$1@U&pTPaQV^ORTYY4eueBrM0su2Rup=UV2Gs34nN$i_#>5 z5;W77*UMAmL-DdaJvljkoH%j#_X0R@<779J&&MPgdBAx1xnO0mic`O#ysmz4kZ4?~ zknu21!kNwGW#Qj|*phmB?t$Gm`CNH`wt_a(NO<`{d3kHukK^giKd7(7Q=fg{!%yB0 z9%Xy~$m0(`EC2`o9+&AB91TvIJ34Mu&&!`UoHmY+G)C!UdEi?4+H5`nFiYTk+e%v(ju1->TMhOdWQBiqn~CTB>+(y2Ek)U0(k4>0zu?t9?pH#3x@Fmk%=Cg^$SlZeKI9 z37R6IQZP>4J~G_?i3ZZ}MlYPxezy;#w660JZUls+}?iLKuCE*0u_}W9p57~&qYOLhMhro%GB@v2M#%ra~S)BzayU$8E?S2?hwp88*@2*UZ zx5F&d!@+_3{c3Y7T$2z>`2M(@+4ssEUY+*0uF!pb+4tHD*IPfO>Tk18t(@F$^uifV zeMopUYsF>%h1Z}xnBa5EBM#^6d$CK;=cZ)yctj0cH0kns;a@hBU?+YE8s2)^Ln(Rk z^R*FJ(%5C#T}i@e+;}Tp7v=2qbW_5(v|Fk4X?AygkN0&qQ;?6;zz6kTG2^>#rav!J zeC@lpuRTHa;p19g$Le4s3uicWA>pb$3#UAs+W|I3ojO=}B_|uV!c7R%reCse&KY)W znPfI@A!T|gGk_}e==AuIzz)K&0yf0$Tp}4QT@F0KCy#P1ASx17bs^W6ZCy&UtY4;d+UpVW-hrd#O;v4=Oz3`Ss7GB5Hg@kiLr`N!Wgz|fP!K};> z3?8NO18B$U@p!Vw&mMUIs}!j+p?tiM-m@kXZij-jB!;XGRp?9>maf{e+5D}8Y}Ohn z-FL@?c*W5ALC~3pS6*=yIIvY$zB!uSWg@Yz-%M{<$52luo88iRH&Tnssm0J3s?Pua zaa}MA2PjT_SE*D|dMKqK9zR0ag2$9K-2MaTS|@m&9y~Gqlz{TYfj@>Fcm;-M;^T+! zYEcDZgu>+KZ@)wJ;cR~E3q!+=UO2<4bqODJ*Z}8&iCkDD$UxpiEt4H{#2vGN{3e>q zxB!#MMUs&r{zB3=Iiqv7 z*9CgvR0*H&TaEb-4?8q|b1O}$q@=XeZup=3;iXHOG!vhDgVvJ_yq)U6sqBw` z$YtbNx>N}V0Uwsj$M@k2fD)7HYada4IKdWxgg1KO45!v5TxU%Kp;UofnEH_+7+6{| zrNGo}DgSK28gwCq94X5VVA%?FMkZR&Kp`i! znkS!n#4HKNy>L))Ea4QoA5(W+pX%@{V}jO78|7?#O;Z=4rr$ti4A7NZ&h}EM zIl6%I2CYy-0SB%rJ8*hFy~1T;!H_E9#I{^)G-@AtL~AUe6%4@@+8?6$@OF^!Mi$O+ zYF)xv{j#~SSrUU+*26)Do6&guAb2X_2)W{k07)`vfVC!-Asg-~n!NUqb+nhm_ht$k z>9s|hW6yB4nAMfM2ip>glR-*qs~^^Swvv1%{MF%hRq`1Z=`Z*RTz)(0QJ69A((Uj6aMH?FnLP$j(43uidBF5w92 z<6br_*jBd$7KTuGVZoK9NVq9z3XrTtCtz(Nwej_>o6E;=)8pfV{3g*Ru^m|k3IT_8 z03=$+U&`g|E#b6f?r2S)@aWNO(Y5HzO(dMf(Of9q!wz^7@to%>GNh%Q$t1jOE;Q;0 z1ags`kUQ;Vw1m@S;Z(W>nyHc#hfMrl13vq2ZjY5RaE-rJD{iieoI8RT235ib#r~IH zI?IzUzWC#JL*rBl|Hr-XhJ@D_wJ+hKXo7sZu4t}>l<>Hh!zp?w5+c5Q+OV zq!ag>@418v{^oY2S&bdIaq>oURrbdj*Ab^m_{g|XbL|Xo{ruyTZ+!d2AXUN}y>Nz8 z`w~uA3wl`S7Uu|3!Z&Um92`3<60XmgPDtoPAmLWWL>Oam>{&=r_l)Y(xf2Ozv-;Pp zU50${;EUzBbFBxlyk1k@-fLg8?iC8|PL{#oDs+X9((7M`^0%I~ab6AAx#{opuy(<$xBcmhWuPg;-e&j0>#U9=Z|p6>aFm72q{6Tf_7N>K1er~NT- z;C~Z2)AH~$SvdE@c`b#vzo{dUH9rxG49 zSxX!(Z@5*k>L>=ISu3y@4~G}PY9y^)vQr6%88X%`kt}obIG!m&wk`>Tq1bZOk%u(K zla+FX5?6t>=}NBu5_KgKx|VQgY#?~xJUDVMA7r;Y{1XY^u#|e_JdUDYv=DYjTF~97 zfsgCLz3}sh=Zz&Nj@v0!jPtz)J8++}z2d;Dv+@ALeE1m&XLD!9DNL$A`RR=xD2)^X zH&Uwi!W%(K9a9GqE<14W5igaHAiz+t6P<=0bSmMZeuYAzw|GKphE6_0JW;Q0(IrzT z!ckKf3zU_WPVh(5wlfmWw(nWfYp$#mAw@C}IF7n9djl+%!!uCog*UZHyy=a+T_WMJ zr8^wfoWoF@$Q2D9tG$wiBXoULSX*7Nc5w*BgHx=yJE3TCcQ5V~3(yvq7J|DLFJ6i} z#R*p2ifeEuxWiAsbI#>|k&FF2*=x_dGi%K(d*}6gY5_HMX-P3v?WT^c?;z5!<)@ma41jes0L6qoNS!MlK{;i>mcDMc2PMLv-%0V*BO34mrNb z*x#?gjUW|#paEZ%8XZN+B#c25$_`P11%B-zipX#yKn;qL3fVbU*SG#tIf9R_&k{VL zFQA+Zhe-UX|D8Nh`89+SsC*nJgV(@f=FFM`#$FHIFfT2^G8r*&BS++b3{21eHTdf~ zE+Jz6CxzaqzDH*IAJ#4{;2*wi;FV>%%unlz;-J%RmBSHO`l~4!DA;#!X_IN$)0mJ1zXnSQF_n{M)h_ zQnB$6y`4%fdxO74zM@T}ltMD-FA2t+1rT}Me0)yHD97QXS@!;$b|e{Nx3u9JqDq$; zS42Q7CE|fX;|!uy@J|0ygV!q!&6h-q9QP242Sa_d`6Wsqu?L84@S5PM$w%cD(nhV} z)P(T*gBG`Nu`-dUaNAwB%jlTK6<-HJAMmh$=|bhQv(-z`>Z8vj{yOy$ zKfKCG$R#K~`$YeufcTu;*<%4;)zd4}pL77(ijhw57TuK)wszWenpd9l7i=Ih5zGKU zm3tvc`m`T6eq=PfFHL<;)I*37Ze)(tPO&u_;{MynY@G#LlW20@fbKOKk_g?R(iPn` zu7fsJmG=h6lZ2SP!UCIy=xsO3H%D!V;R|n-29e1Oydwd8THrb@f@SJx!T3Z)z*?_9 zY=tSa^bi}*d%!mGzC2)|Rc+^IPSe#Lur~-vu;}q<JvS;kIl z>8sW4xlv3=5SQ8;nH z6QaqCKiDeV@T#oYD1@koADM{4TMSY99gD0=0vAUXQvVSA}2L2P{U_hs5TV{mL?3iK``rAYNb-Tb{gXe^$7PA1^AUQ4&ndAW<~dq+de9dVjFt1C`%OMbk=x^)nXo!=4Y zmjG#eS^DxWTA_Oo+v&j89KD2=3cG%Fxr2+luPgFPGud?Q%e(=#>ke{R0C@+6KbBMI zSU>YV=P$eu{-@DY9K3lQzXrT-UGbDgpts_KCMJ615I~0fu-@7@#)Uz3c>dXLyRq~J z9{+wLNwx*C^5ehZKni*g@!UqNnh}1FGn95C>ai9}dU}b@Im}AMbNHa#6#58btbXib zF)=P{tyrN#=KpUl^zW_oT}Y1Y6W--`+oyHzEd|sH=K$HI2Tsx*-u(k*{NK;+D))ov zr^GxR%T6^-!%sUIESu7*~It4Y7?r z|JBG;Fw^xT#ua^-dH&sK)?Bo?bmY>{rw4U75c^+lQ1la7f1(*Mm;#SKFsxQ|mm6(`>C8 zEM);?_$GQrqqAus`QNw}<(f#c4^@_7%DsO6^)*X)7rj61HB%19e&QeVW{ik=p5eSv zJ^DrUm1s~@f{jROLnG!pfQFdD-+#mr*nPCMc?N^QNN;Zj{m-rL^JgpWqXSCi2VVRk zP2!(F3^5a~%ML=C-e*_aU!71|aEckHfHm8bsTVvi4o*5!Qa}zG4t#4J!fV3AK9iDN z%92F2Jgw2+0o9@${uCU#{`*W6K7o_z^ah7e*Pe}on;g4x}pCt2%M?L>jBt2N_ z?G|+Sxof5VqRtgEp}`*Xx@e^eL$MGrbo?iJ-HZUej)7g@DWW)zsE-{T2|*bn_p`n0 zV6Czz5I6o?>w7%J+=@B9UqB**tLlL~6MbmLQxHeZZo|&X*h@V_zF5S|PSMG>>kOaD zj_NazkkI)EM0DQwJh!5kRLt@wfiTAX;cju2uRE|!d`(WCYuX>?32dUmH?mJ0E5dR9 z(zA6<_4IIGjH5AlE9(Dqg3-nQ;eO1e{V7t3(fky2E+V1cRHzP@Ra6actdA$^cddJk zBfkDBm*DB)Tutnhp}akOmdlmM{KNWppeI|r{Lc=NcllyX3Sp)l8nlcn7N5VH!tl-x z4m-HSmwyTZU^2!xLV-WPO1XhlwqjC|;=X?(wO70d0-2uaLaD$AM_5mNW13HEk1j#< zovzIA@A#2fU5z~F`A_YWL|%`NC!EqrIbf3}(malb{}HWI269{PiA=r;9Gj1aOXHsj?#O)=C(ru{U;2j{_+utxOF?QB3nY`=~)y49s! z@N@v)kgLj&%${;OqGD+*@Vj&Fbzm8?bp+0J2qG26-I({AK}@OE1$VK3GJ@*6ZCLB% z$Hy|a^c5j0pFO%L-VL!XQz0_*_o;*2n-VO zi}}vNR>%PlPdk^_qn>XfxHOSpG$1aPht*TkGq9pUQVa5G(oC5F+e}6q@nu|q*&LO- z-=Ne-8&i=G*4i>bttQ{^P#yYTH5U=TlzjLjNb|rw%n=(b%wQCN5r}Esbz3Ot#gMRz zC?LD04^4u)vQepZ9g?hKyS%Pf0l^o({P<%Ab=o|qgqzza;06)gc%7~7rKNQ950A2C z>kN`#cc>!(V{iW9T6_hXy3MEB>dOw!JLD}(QP^R{9uSnPrcnNBZ26RbZ%qI}df9ub z8%Uzf9__jPK2g{-RZBPaH1i=(Cd232dlzMzNH{v}g;uQGW zVfo{G>8Ve>39$t~8ZF-zeFFDb`&oSm@3ZzLhBrr{pRJ4y63PW562G_;?|*7v2F(s; z^?qqNYP*x$+g&97j=%F%tC5yxz3xpPVZw*spJ~#LwS&ZM*0i`p$ks=4OBglj($|72qWkbh%Vf?J&&|EDp2?$M(X6NO_RI>yeX2IE+aPvd>~xKbiI ziVRVbDB0*I3HEf#$m0Uoej4#%C%26^2}eYs)Orsy(y?SUnAwg<0{vcxi%TrLWgd3- z31*@=sAG@j7pROo({;DVp>(qOO?7NLKnP)m&xQ2|oui8fsL8{hHzBDQfJUA&RoKdH z2DWGeF@GJO-n{pH)}%r2-WvfW#*_u8>-~=Sw=S*k6^$CJ9@q3uSP+S>c5Vnc(6!bK zQF%$Wf(V&i*(O7)qyILDXHEQ(r?Ichpm!BeqoS=IQ~6R5><)GM;v2#YR&y$6{IYQ; z+O<}B2qE6$)ub~o&eEh|H*+A(h*&(9gr6uCdW$ zlvM#~pd~2dsC;FfupjnU$4{(c?1O`e`0?CD-Eq&$LJ+944eY1%7@a_^x8C(wYvztxuc3&}KT2Pd2cAi$Ni@j$ zW)?&9?#G`2F4FM#?hf}AAkw|M_d~x5THkN8q#cUzU+tHeNBD@m|GsvO91z(IKaWPt zgXeC2ykHNKV)NmdpXaq+pTx247a&PT!W7L)h#B21uP!VpDe3JMdmyN47pZj{ndjkl zCvUQB(CS0W2!{)PeCOj$roY55(BsjhH<#|<3nJ|_PNDjHp;|^_WGwK+-*0xlIjos= z(XpZ33PyM3(L_IK({s^WM;4!5NmJ&daZekDxT>a}TR;9nKG&8d8L`qxmBem>{uZZ< z)sSR)H(L)%ylJIG@lfYZASzC}W9pXD@b}f`BzX|;{O4|nfG}vk2ZPhvala)N_2P7a zi}lX|{Y(nyj&5~hf#&sObd|-7506wK-LROnMYDj=S}%J;H&rZ##l_+o*^zXwr&A{K zeF28%W;Eh%w&T?US6Az&-b9p)%@21DgwKHCBPZ`2qW);{?orNc#~8%La{gLO=e>ab z0Uy|_d^jM~81XfI1?t;od`2I#=u9vdCxf*mC7-HZ5gG7rrrj{sj-GE4X_{2z5NIDz z(o~YyaaGbs*hVRX0CD)`>INv4)Ue>0X=f%XHVAJ9e|<4XNR~$NW)r`FuTDad$F>na zjE5JpIxMriECU4XoHSI{sii8cK%&K%_Dl1J9F*J-YTID#Gb!`_dooNEyK`BW3P_FF zzRRpay4iJ$?{+E_7yzpuJP-;SiZZ5bm*ve(K-@QYfW~~#mYh_$6kY%LX66;D6;GL* ztQBZ2UDm{tc9-#Sq~bSiaRg9ol2u&9g1w@Ou%Nr_S9REI;VTw;Ow{<4!dN5E#kbE; zV3Qeq0}g!;gJL#vy_mu{Qb~-tb)jSCB(D9YLiWx=G%gk@7wQWH9oO;kzji8LZEaiX z)qhmIA3ol`gZ^}JYcIO}vKp!B>FN4ebD!$TncZODuWE{|eprC&2iznAinEOw$gNt) z(K@USv%&B1mvXXH6v_Ql#*z5|{)NT(TiKh!hX1b@U*E5815Vb0j!XAnno9^fFW1}c z_J0ESIo`hc*!|fnCpSr?KEmn&(C5unL`UnSVZa2pJckYqQsi+g4Kh&!Qnzg@6xuv0 zo$3VV1*o(YK8Tv|LOAPQ86()+m%OK4bKwTw?3Y`a;yvrm3S8^{s=Rf4Gh|$jRN2M^ z(POywesfN6p5ft##2ZvTdACBGFfTv9k7Br#DC~h5$fw$ci58;?@>=ihSc;WdX;Lo* zACMs$RAPl16|rIy;;_`VzN2Up-w8`Z8?Cg`jh5^UHcHlF@nvi0JkjAB2G_ok1w@P) zEa3B}bZQOr`Lh(Muk~+1QiY^7atk%&fnse_I?b77F79r377ZgJ#Pgf*mB`r(EzK zutP0R=D2g{-gLIe_TJl~p4BU4Ep0yNXF;8OyZNL6tes@0)7J+oF`$+RZu-#~%`TGJ zwVPS$;{Ixt)a%v(9<6_R`82OGh8jhe+;r}td|K=xSn+q;vcFnHJwQW^%HJ@ z&iuSi(7p-Pie{H0U3;pd`#<0LhWx*|AkPoB~Y1kDSPG1LkRqE<~)`DX) z3B>e+g4>0_kq_)eiHoJ|h2P6#+=-3}%`b)W8g^s_(=$?A?tCiJd2vKd%%v{3hb6j~ zN!$6_8_kMkPR{oG;BlXJTB@U`#Z+OVM=~)ZuHBg8Xh3JNw!3_xF0G##(4%laM#V3XI%V>G3$ z_|X%l9r^7YJQ$z#cH8}w?36kO!O@hQG8hW%yf!5OmK}hfRP#$o|Hl} zM26b1FUX?tFpL*#5u+2;KS$v{2=jC&rr5D#ZbhU|{$n$_WN2#wN+2_78g^Ot63$!d zFa7?lD;DDmd96kukA}9LJrD>HR2Iob3%{xqv;U$H+6v}{kW+DKG?fZr?N#ybK=32i8%@TWda=qjdTZM z^R_PSG1V(b_|uy}N4Xr8JQp;Fe-@n`IRb0aZr50>YAG-$The}|Sj78(18Fy=t8g#B ziK0!B`%Z}lNo*Uf1I-^Oe@!Hg*|5r&XU9ZQ1s%Hsa5S2X)tl8jtCX~0mFhq!8nQ5|Ff&62>j?L`J=<+hGJ`0B8`?ry&x<#N`cuu3JGNk`0 z-A&=@s9*R^!jG2(Ap)4G`mn{}r;EyTDi^?{zFsfXvY@t;_ft8%l%?`DRs1ymuvE0A zm?~q)ecJw2{{oOS-FOR-DZI`-UO$QYI8qNPTK`x<2FciqH_YvfeN$+?MY#1cvWo#C zpoQ&63>OtK8P2lldPC94Mc7$mXs9eIK(X4MYTjNkbbtr)ui{jJ`+}ll!hiL zf5@jBF7dRuEdVM6QQT$@mL@cqRRDdn9tBj&uVQ+z)@bB#$57TL+_wX_9jbdTL;nWeiVm!%g8h2xicprwGuixp5YIUinkE&z}1 z{`e)bFXLS5kd{B=QqfUk$fWbxY4rprV+a-oKq3eS0^7Z zSuQaO#b2W-10_6Rwg@vtaQD!}3VDQ3av-)*v+sZxNh*h4P2Wrv%;JyU)}=s*Z~H4U za;Y*DxAKVtOzU+6PTG}yH>?&80dI0ni&{bQFH=yz{EllOzcne-#ikF@E8o&(#%v< zg&n_b@;&8oA)YX4!3XdQ-0dUg%DQi$qwN2L)EH2C3vA@~eL?03sVQ^0fK1X*kt5N3 z{2VQUMc@9%S!$%bamZ_Ni`ZFK(f#Ac{!Fr?Ce4hgj!n)%4egp|E1__xjB!)pOJLCi zxpFS`vT8PA?S0f#C?9?%H)kikn?nv6)_Cdx zrV)giFrO;;U+*vq$ntX3ewp_h*bL5KUUDWjY3ltCGV_1&N)?8Dt+C}~6znz&Z_90K zLy$Icp+-jj(H3pIgdx`w_7hulYWeT1&NR(0%NS1%?!SUU>)sy=P?-2-WZe|KnIshv z>CwKA_}|>4DQm3sd=&|o+U^08hU3V1b@)8>th^KTuJ5@G(6Hm{Hr@+C6kiLbDgZ0s zn>5w`Cxa`Y^H3IvswGnyaDcw+dhIBE4`NO87{r9kGa>($1a6p(Bwlf8H~j!d{xcsnlhGP7bt@QC z>i_cq51147S?Q@}dTnZ+7FPdOu%b-6Aqg>;$pBB9EIk|;j>xoxE5nT&Qpp#D9E^;M zPlXtn{3Ab1VnX|3QA52blXhxL?a*}2-S6}c`@nI0)C!eWoOj2c5~L1Cm3>yISu*} zwp<&3W~b5@-=`ZU7N7RwF{+$Rq}`77r_Sq()0e&56N#dYy$xH1uax~$E}mt9of~c! zw~hVQu@E4u@+neyXmupL#{f@EFBA&(<+o$qFiI zrM@<|VxV{#mT;ciJCQ%HH3)c18iJgTs zWgNO%tlIb;kTlj;EN4B)KdzYT6Sw<6GGdarGU3O{o zA$$Z{j)8H68k(oeQe=NtsZMk1W)JGyE1*c9Xe?6S_^MuC~5 z;CbGiDYtL6)ZBzeCFU!w+PC_i~KYLepKF-yA^tkfB!uf2VoD3;8p zFvFvA5J(t!LJ3-mAFzvaq{_8xXM0O+%#z1HAGl?x6s!-*3SG2aj~i0NA4QASB}zuZ zK+7tT()}a;bZP)}s`Y@=G}_gPp=UdOH9_EB%|3j3*m-*_v#Vn6=tJwGs6;2dCxKTe zDwA~Ws~uQo97z3U@N5uA9!|$(Ps{o2;x&-8lUmKf?$^kN%&sy-V6Oq~?C@T)>S>Wd zC&0-H_&{_l5?|xwm;||gkY`O5$D*C^7e^+qQ{c>@8fLtG;7aQw5-aONHG|db=b3wc zYWJJt2#vFbU03@l*ON-|z3|HE94YTCcNSLs67&=hlLJ;mP4nMf7+G;q+0>5A^My?g zXb4RFE|=Dzc3<*?#9EqS%a!`<$2i`Sx!GLw<$=_af^qxj4vs=p4*f@W*5`J&+G7X|ew_Y2KSmZu{NzoQAz`M~6@zO%{F zPLp13h8oIc>BeefiHN>xFC}uW%h2GQ;bw1L$olwQaSw5#j#%hD_}*vCQWh7Pa10sM z0KR`{Gqa6*cD>V_3X`n=J*u6fgX8vjo82HMT6Fl7tK~d~J#!PL%ivsnU;;^%Mjx8KnR2*KA9P`R&d@Hr|daol$Q1anqEgCoV6m?SiNu_ehB>k0F zBX{H6a`h|BVpiD8;B-Gnhv}kHylf?~{gHmB*)?SIyXg!x*0~CjlbM}WKiHqks}uRh z47TM}^AHWmX~Yk1^5}&|j@R5tHrnvnra99ZoCR$)-R&@{_2+ZCc9n>W=b@wGbFL~Ta#5#Y&jJvig8?p z>DQNSd-|&`=&gPX!&WYP>(S-iL9*o13^Z-O)m<~&n5Lo0t`>dGQ_$y~%DxW&ys#pc z^FpDl-m2WmJao^nX=3tllJw@|&_+rhTn~_dHu-kSN|$ag@jHTkF|JBZzq!JEzX#)> z3*F=6*+amaY>GD=P zW-z^93r4T`>W!E#v@a9pr%z(>Dj@e-UFQ9z+79){W`-Z|U8m~dlC=h;gf$(DhBpfB zxR#YRWMkGPv8`L2=Y8jSZ9d$l+JC>;RCJuP`KE=slh~CjFG;xx8cEaNW~wMjHO#x@ z#(t|x{#s4QN#!`=D8&bT)I~VUU~zIkhXbI9WTZ`K`)i1d5)Uo-$H4y?nsgiZ$K4(k zj*mT;GK)H)iMNJFHeXCjv2rZYF>*uA#f#82^$(;~K^M7NI_ik6E6L-{I`Q|ofazmS zNhPCUK_am%RcG6IsUfI%a4qVz`zJpi0`bz76=V{>cqyge8|p-#KMaYp#ACHpRRpB; zv4|(LQ0|LbSOJ>+f~+BWXgRX&Dy1FGFj>=tVW7`T&~&m&WE0V7CsQHNyKXa784_vI zPdcPP3)<2YA&FY*!!^x{;km0%jh(4o-h_{K=SXV4@n#C?Igp<7^k1BE`1!7g#JB`f z>i_Ij#{KI9k^jm7$!jgj$DzD<3N|94qGl#c^ts9qsoQzN(4`IAql&oG^_)*DMVyIP zMsBu-rrLE3*+d95RMCz+AI$x`DrTU!u0>qh#pPylTKBb@%NyaquTM;|Exe9x7Lo^M-qEZX zRJMSuonZb%&PuGw4mrkiN{Ub7F4;?1WC)<@9rL2BmDQCl=jt8*Pi_P0mc40aaN7XO48crvevIuzh(IzKzX zozGJ*S4At?WtQ|kuB(hf1&KMz!RvSPQbQgKy zu8LM`qkeZn$de|ClHeBLr2B`@CYlwse5lg2qCN-H*7RqXJ1+JK;<*smc`F<|Qvz{e zCAWeB1P0CX{Dn)Vy)nC?u*M@`nK|< zVA|n-bS5qzc@gEajQ*EPCuSQpH&^^`wmXHZ6i*jB4?Goph&HR!-N}i}*N<*>hidV} zOkU*3EcXoh;>SPs*ItrG<`-c@KbCtQZ9P1yaunNw6`G4oi_xp?$z}`Bw;T(-(`IY3 z?)fY#21&|`Nku8l)>M+}ef4FZiD%sHY%X4(xYb&13N%)K!wfm7MHs4YKz|&SB$J;V zewA9)Uzd=BejKbl`{Sd40n7ol?y{wX!Cbh6lG(ny&(BWDe4vHH=rvlEfv>L7%cBvP z_VSD5Dax?irUYmJptfsCw%oM7RAphVFg(~UN=ip2u}YZL@I=Br$!X=iJEBAMMElpP zvn?TAhdMdoB`+io_FMJ_~QYJwO4Lf<9*^jE`$`FO{2~1JjC)&ZYE2Cpad;GU(>z!H3 zu&#ft3NstAfSvP^zT{OCUA%*_z^Vx<&V*rzWF*U*k0ze=-movFj|V;3jy_RYCLl3H z9Ebo+lLykzpykQrTnN_)zK&GR`E|x2Q`DkzV7?xv{NjyKp;08x&j(k=Q@P*SI1|Xz zpxuegB0xdSCMf)r)G(Pb_bYJ;p=S|%_a6lHCZ4I(c#^|(lPLNV6QL4vYuytMQp$3t z_gB7VF7J`=tko~lb#BC||9$bvgW=g^npMriEQCo$7N=V4O`tHDgjMen*dolg<^F2X zcIcfTRZ<)L=3mo=vVdB263p+V2D0n+^@kX*2eTEu1Pt}SGiZWDq^mKf@uF1o8~e4l z-|;qD3ZrX z^oR{Ie?1G-PTke~i$U<~+F^bx82vEHCWAL7{T1gFMtxx&KR-@poaF`N29~(N*du`# zo+y;qCz>T&!wJc zkBjR^AH2Gk5!8m`X+u0%UJD>-fqKw zbscnSNZBdl^{(6)(JVnFO*FID+Q2`DA+)&a@=G?N#A<6QrYptO<_l|-gv`oJEk+aG z@4Y%@sw=>yO#-6C*~r}y%7f5Xw@1k^4|;NzhmQVoSI-W3pt~X{39v4039XESKcZ%&3|h$SO%Z62Dv`){Qz)E69+X`Wl&goV~0|uPWF2 znUh!_>L3qbddd|}kw2LUP`PE`tJcYa9@#d?&_}-@q)cs=`ke}>O9+k=YG7UVwlUeZ z2Bcp}cn3+2<8s9jG*L#xpJgv)@ANsb;2q_;gM+q2oy*8g{K!t)zCMhos8=SuwZ6GU zm?lzW=QTrK+mC!KB_lTNQnd*gr41@J-tY@&7iHuY1aZ||BQY8|VHk|;f#PNo6X%4O z((GG4e6(tv#mH1Fi38zBau}S0XU_Q`P7MZ_I;Qg()%fiZoFsrGf9bCt3MI@$x~{EkZ;+S1 zk6Y`1DU>3D^0!~Mz*^0M`XtlZVxASD{-=1@wPra!fZ!iI(1y%n=MSG|v1 z3v;T!dIuU}2mR3lr){=ASH3dhyL#t)d%bmciOZsWV<3SS0U)FVe=7vrTjOlYrUqo3 z9Dey`b1bIS+=C~^+S(U=EsM1`{p7q2diS`?wk$U?|6yPPLAl;5kIS2k^}dBxr`qGy zWXtK}W(D$(^)h+)`vS*n#f&9!_E($1PVRi8ud44EG5j+ne)~$se1vYgS^>-asq`&0&0e3ybwZ8%+*$eH4SyF+8vU(B8n_7=MRrr_ezgOC@g@U0&B_ zIA3}Wab%$f;C-0j)I=_PZGO`5b{_K{U+gmmELkix5cqm%sbu6e*Ls)z9RNi=MYeFn z9GB&2(POe8YE2hIM5~_Zl}W(4DE!r*{x-Xhk%-hLdiPKhguoh>WXET0YSxota1mY9 z!I=~;VrQ_aT9^n~ObjuDNHl#o{5B7pCelCAnWWtA^D<#1F8?7@&{Ns7tf#f`NY{rG zv=8*d>3ke?OP}7Lt{r<_G=;U(6otAP7{VoH_#pOnr6THXTwGXLum1e;37uuck!aA4 zyu@}VL+6H*-4kM{lcLqP)b}773o}Le&QY&5_>=wv!`K`B-3th;81d#WP^8j9b7s!i z(_l8sXg!}7uYn56v!+a8>!lS;=*fc6E)7rQS824w(|flaBXR4nDV1zVjY3XG4V?gV(i7}@WjJO2?&}L}(H!HaNY=I1 ztRfH1Ex!W;e==9_pJ;$BN7+60{^E_dRXYgfyb83RyQ|Sc_#?QG;@|>$)%?z*JQeOa z^I`vr81={Qd_}29&8y#IPJWEUug1$;rxqnqN3T!%KcCW~AeccbnOo&=aTI~DSEMN* z4f*YP5A=06&W(2lz>&V03cN#!AJh@#qe;tek%;B0y?DghJcD8yBTiW-R3JhtgSfpn zC>ML@ar25-H>P}Dlc(l{v|>>u>hMH-u8P$K$lG9yj+d>Sx5}OoN+d9G%xME;^FnDQ|Hj|DUrZ;83Q0xR^5P_IOwFpfL z)}GK|=rS)p?f3FLO+`o1OU&@V`jU<8bD;-MKz@c{I2$SGHWRKspC0e1k+}@)3z%5E zL$gU(|BI@K-94W0viAD)N*<=gtqQvrRj!3|enVx(2?UA}KK}rxLrgI`Fbd%Pl7O5D zSP)S2rXKtS2ZW`W4Pf?Vk!7K{=KKsJzFzg<25q2d-XOiuA)#Pt7QqCrj@S6)y?sa*cJ;86GO1{CQbX6d!H)sJ9((t_5r!IGawJkiF( z`?Tm@>~&F0gMyd&f$@sW^JGuHx}5K+G>jiBz^Z^863rX!D9VB=#NvLc=Qk_OFrp~Z z)CTu&TFs;nt#rLIDIDT{*^TRgC3 z0-x}F&?+Lm4ko;DwZ6H;$MMp5pOj7hxB@~v4wFD#z4sZ zo;}i$>{1*1(kcd{k`JOx1;Y%p_ortWpSQdXoFS$W=fHN--Ie&W*dGQ-G8;{UA)|p+ zyGEAa#3|sas9PHOd#;B!4YX+cm^ABcWAhuh!ZSvN=UG&f}!N&|jxN&@FzK3<(BXN?>JE8BG_q=z0S~S_qCzu^{ zjZn_sTZ0>NK=Ce~%vn4^IxTYWNse+GV_fC+d<2!D=4n|DvIby`XO$8K;|3n8@SL5> zbS!GK%8{d>&~d)LLhNt<53Jf+c;iaEr2cF@3)Kf|Wa-ebwi>Te%ifL^TUP&qFI-qD zY|UjVv-}TU87QB$DA;`cNEA&V9T#b}xu$iW);x&(t^YNnW(7m{Q-K+e8>{?2+!;Xp zP7|!)(9H~^c8IHSW)PP}YEqRlSIGl0E}plRxf67Bq!35X=sLBC=(-`a(gw6eQvRA=Kl8oGui<3&JJzL7Vvwy~Q+Ir|7?Z~lF3_&ZI9 zyDy<2*CDX-8PLjbTMNa|Bh4n{$eYFbx`vku$6(8*8I;~3B42W(zx~m@SNX6p8w2Ot z$>rJNW2a<=&Q@o=G1a)g)JoR$H%$_!6le3hAkTP#LFXR~I1ix2_Fv#%sCw08&1>UR z$(Q-2MYw1XqD%itrE%|Y`FEpJBD$HHq~muEN6n?E;ifFx*(LQ1bHBdP9W9KWzi{_| zv;ln6YNao=K6dy?MCWa#K%!|hHq6rustbyBr?(mrFFakkwE_O+mzO^mpgYq)(StiA z)o!q2%u%wO3vZoAC>Rx%M?K*6uNvH3{wDNiR(+}8X5udg*x~_UCOm33k(bSA^<(It zuv(UPeJ!x8+`-#YHKcl7R{x%JbWP7tFiZue-2aEE(mEskE`l3%e1De*!Ojgd*HmT5 z)3b|v7eWJwbhB$-TP7*Dzh}1iYBnG0U#2jNOFdGdNO z+AS~8SaS_=Y3EgIU6jBmEfr;Jy0Mt-qUv=zO_mK8d6Ff;!oww;IG%;GycO$Z(VJ9p zpu)_`a5;8zn)E)BF67B79{uxKB=PZ08p`u2+|Z5d!t?I%28SuHM7nmHcfm{l3y)X= zq~j;JQ*}0-KB76Js68YQ5Icc503e2A&0rr}LkNoU$q7mb1lzJdEq)&)hNSudjdUky zZb<3OCYmvu&dk#pvcAV%!~{QQ7WRztzx}0>ITN2d*o$O+iT_>ijGJrF)x?kDWD?XVvX<^T0g@+G;`V|s-e3-9 zqYvtnHjt^$*Fv_*?n-y+M(ZT(>eE*=C*kwF!M(n;ip&b0`<y<N{(@spB7k`-oSv`^e&G*l-!rv=~r@(a^DN8zAi*u%PZP7T%lam?o~fjidqFaX@CoCqR{Cp>Mr@6f8h?b8~RXk^AfCb{)Lw%w#@ePcCg})oO*L= zM+(0x2DX_`e%3Y7$#04TSeNu<>8P*0`g&i;2ESys+$q44@>^l@Fw>IVZ;d~uZ&MF; z6t11x1fE-si~KDk*0lhfqBp3WUwIKi?=m{7L@(jb8^@Sx#W<~}dOR2pqtME+7qg#+ zvt?GCyZkUC5_AwvW?vc|Yjz+fNAjhqx={zlH1ZJMN(P@3EV5Ey&U1hC)CCPLvYgEV z7=^CCcoBQLm_1$>Wm@C-%EKsn8p{kMACcGU_15<->3qCzme2ZQfBqj_;Q%$?a*Z3M zd#J&dag}lL1k4}999uUq40HSwZ?g`JgM+k|Wl5%X#(8@;vEpdgMwbJRw_m2Bqs;}R z0&t0K0b>`Dow=M|cr#Tnc#dHEupnK03fF=Xa?M??Qk#EB-GI#tq*C4sRfsjAfsKv} z&$gOIwv3klcgPqWhT0!@2=1OF!UtM%lRK4P7@qShzbEV(M5yw104Z7Dk`)xmz&7j@ zn9ch@17+}uG#yxS2EW;7dLmBwbD40T+-0 zh!wjTAIW%{Bta!jx4oUqdH4KW=cQna(Ph27Qr|TXjCM+>Zch7}_mkQ35dp&%{r7WB zAE>>!_K9Q^=h5SP&{6<_7ifFacK0nkUGUO#t`d>I0}!KwkRu7+1IcL-Ch#toiQJ|0 z)sC84PWzQ1>jvW=-LRyP;9-OT=)U^M@@-he-9A42vd#&#@(W-ilwU1th%Dr4BeGeo zKE+?z!dHDBl`i-Kk}?ch`A!WhH;_FznXAi>{GuyYCQb_zx5mT8j{0<5q2=P|J8??Z z=fHcWb#al6*T>e%Y;fbJLHD5B#E0qf#D-a!^-8`|*Y2dX&~MJXD)vog3d=$pSm#fs z`LXAj8Q(m4s;?Tmg}6)PQ9%Y$J?G-m+lDDFF_z7)=&|9)oA}^-hhUG7%aF3PgU*Y3 z;4emuR47|Rp|HT`ot_7w(#LN6r|Va8m)!7#7iKjXs0-x42evsds?g*JndHE%Jp7pH zDEw0HuX~DV9)9)vC?#)qP;5pFNF`!)pf>NfXm7n}vX}}Uzi*iT#pB%j&fFO^7rJ+& zceL_ZSX8i-P=m%#5Znfz(3X9R!f)8fkLH;6ffhrsj6Acf_T#(_{b8P$pA(sCb^Ppd zfCf1RgHYBjVWMx4NB~6Bd;oe9O$%#;ZoS-@9~&)e+1anz9-&{)NHKwy+Gh(J%<50r z)c&05?aF$8;Zs1c*^Oi&)e8H0#kD2*d2fj0K#G@f>qv|x^N>WhyIhphaQfS(=7s1x z=h1?ETU99Q%H#@@5oZH&Il1ZMcxa!C8v1jQ0HQ$#7didZtt7R0XaXdF@t;qKO=2?Y zeNlw6AML!U#Yup-Bb|*~%)QpM?wRv5F0Wlmo>9bDOA4ye)k8k&a}CAAHRlk?&F!0a zmTXYWa0U7k%<~@;b0iyk?7+%tCL_w)^JkLR@EN6ih_Dx%$=W#cx%n!P-IHd!(gHNc z_r7TI(6V;RxmPG#^)Yh$d&wL7}zPq5g87{uVRAORE_JNP~pxfwrN zdD-LBCVGcMVel_`@2J4Pe~XF48H+aT&#aK?F`vbl@cmhhRxo2L4wZ>wI)CctC0#(v zf2oFK9ONDZj*^YOf}Ei)lH|t;?u9-|i_KP5I0z8~i!c?Yi6O7=BgDd3m!)3V)F))a z3>*Ae`lmTWQsEm=`4vT>U$L7zpOp2mD@E0^33fPItzg&E@$e6@GZRnz=qDl-P`iIa zJoo1-3qSs#6vkpK%;R#eQ8P&QXLM*<2SID=MA6Bqu znuy?4Kn@tjNGH<41Msk@*_e0GM|&ftq5w~oez&eBi{T`pvSI0K98nbS*^G(rRBP2A zC~-M+a3l+OBzx)qAO5p-A_NVC6SOQZge4I?{>JKTSH@GRd%h()X}9C$KY9;lCyu%l zA?DP+AKwGpo)0RvxT3#+(Z%ZYkA2Iwau{kuq13_Yf1pa$7DP`QbeK7IyMwM z6oQ9}h}$7*ouvVbgHWZnn4GKEFG4`>4r_bZ}dp#bne_pS9pZDBz&gJvQ%InZz4!ul*5G$1*{aoQnKW z?A9S~UT4_Y;_nxBf6qd1Kl=xvA*lZZa^(6jLTOL4a8@8yB{`|(JImvT6V8n8`cC)n znc!H=WXEv9H`(9`bx(lQILUB4uG4@#SWBR00mf~ItW+kxY;0lSv=8$i)wg78qy9(o z{+7wkCxZ6Cx0Vmuf(5&}CQc7sZ8zr3RH3({Nv&^S)hw1Ir<1CI8B@Wx zlHNo)zfo_;k3}jaU3x)|&i7+<@4m*b6(P-WaZ0fW%?mFxOFWEjqNX>{6F*Xgq8OeV@gA z`c}nT32kk}A{-$oJ#*|%F|id0!|cb#OZYD0Qs-~Dzsr48HE%PGkbRxSi(jkh$!_{=`{im-$l-nrf%F>RBzRWaIDyu> z;eZTw(SQL_we1q-hhGS%V=07|5y7a~^T^Lb1~i|zU=MO3*z)D~FI$IL z#9W)UHmwZBW(@Y7o+Y=Cbt((wgWmKGyCgcx@c!a4ni(&IzszZhQXK@r{7b$Wwvx#H zAIH|I_Ru~T{nY%*MIF6r#oA=g{7j8BH|gKh%2#pQIehc!AZ&T~X#R|TTGvo0l_NhL zm>i%>E0f>Oj&X$JUeW4SiDt+et zkA(q=$2hB(vl(Qu7W92_?6K4V;^g0BN5&be{7Q86dhh0tYa~#NUQfUIJ8YH{>-eKa z?8}PWIFs!%Bk?OE5z)AD|B|=U(wN8tAon!d>K=|mF^`8%4)-%+!GohF>8rz_~ z%gj z^%s!f;aXXGUwre>r~MAO&$S|Ag;;!&%l*_@yVYJR`4uSOYTuJ#<(He4R4S7#82cd7 zhac~6@>t>1)kerGncJSc)wh8q0LOUZPG=FZwf)yxsw zoh6M}$L&g!wsoZMRdtM-#RjcUtKgaR|G4u`GCUK;>X;nQSdN~L&gv3$&yQtrzuoaM zsXr)$&r??BYqZ|hwciO#ED2E}D>8d8E4>!jf5=!TyOMEqyE3zj5Oy9FYNYo~`=-rC zFF>kM+KdVmb*lh8O0!b{s!whf!D|FBM$84*bg?|_qD(Y-GHR|kS zM65Mb$7g?klBV@|GVgL^!>29Mt}cIUuTDM697Y(r)_R5;5II;FfE^zEWoVDu+Zhjz zy?A1jO(= zzOx!FxN41!qpCK+rUlgg3SclGUWShE<*R zY(#H+-Ub|TD`Ts&F^)CU*Df6pSlrvtT5@RLfbE)3b%$%l1 zSPK!Tw(sRC2;bX(cGcyfms%WGh0xCCd>6x{ObkR3#~RAe6P;Cqy1{g3*rOY&Gq3S= zH~PJzbq`htaqJZ~e$cZB}KD(<5KudxjRpg_Ee)6IS{aQj6iE@2UN$rDkgW5B~QT3rpf*&I3MsgK7V> z$X&rLiOUwIU{4XN|Juj^r(D-Y7M-MfY&wseX;4( z&I`FNkPkc&5k34h0a~r`y^87}r}ft{iSEok*e;X(FtTQK{^i;5)0lEmVc2*ok(NqM z3a8<6qm-8RNnHk7nf{Cqy503N+e(we=CKI%cJr50r`6Qla0O(GOYWGz(5Y+p}SKdr&P+ zYg2Rr?dhHR8hsh`l9VQrxos;sF~T7ZM3PQ6#iB+`k>&R-O|FFMjg6M%?K8~*w<5fZ>KyD4vre%r@h6in zTA_2|vM{~oWuP*+!U%+4%M4|;XEgOKWJ4MMHWtorrR>27@=_CG|0%Fk zKZy6Ni793JO(r_$zy+R_k#>}TF|yk>7;0$F|51JOhR5L}?XdbIN}yEwES>RUpFlz$=E1CLT3F}N06IHn4bI|=i4PWkbdgi!^I~A-|*Lc{~8sVT~Tn%B; zEdBO1rOOp8A}hSKEM!dfkx!jtf3{a)In-BB%!JMQZ3 zOn6}#jU2AEL3&9@J()(PS3-eHAIXkW$CJt9_L9#f)1KExe)eV$=MXDju%IYsLp^w9 zy?pQLfY=1d#THQZ4z0Q9boQn`5PgtA7@>cvnH5OU#W{|?3}vHHt~3wZdt{4IH#Gzl zSx>6&AbG)NJiwW)#yL~7FA(u`s5RxHZv6$neWEnI`PZ!7%~t}yS>4Hg#vo`0jnf*Q z0Q}G1=o+(aW&hVtC1(zmh6YhQ32>;FYL;~sI34&&Jy#I6_w4Mb z1x<{T+&ie}B+Fmvn0CZ9{1{4Wh>LO7`&Hr7bd8Cq zeX-d43;}Gvmc6q4TlCN~SblJ&lqtUSr7x;8um2*x`#wu+>8u-ca%2mc`LIbQ_s6=c7dLL$BQKxq^${*`jugBwu+-nVqUgWZlhv|18+J z`Wb=}0T=&$T^cPi?oaO1$=?}dtnYvx?g&?RldwPEB){rRkj2G9ucso$nKai79?APh z@Nt^eB9y$xQ+G+h|Jz*nTYOiM9}{bxbs$BQIUL)N;Oi@pqGZYN>ju-LiRL+z@`3K! zNZ~%n(LxM2Vv@Tb=0Kl<5=Z2 zR=q9h$-#$3?S4r(iG#$vNVa%qH~i___Z^Rju_i@U1rBEQ#LY{eoef1u`qOCayL9Vj zjGRq12PIpT@`=>gE!oVWKZK4#kzR5e6LsB+ftUL|b08~1@n_|2U8cd;xK6)X^ zO0VgXnpCnM16QCtU(&=z>o*`Ux{7xV$S6J| zIpgQ5Mawu5$`4yDLuu7yDziRJgR7tSWOV>1fx8F5%nYJapt0ehS&e0(-Q(^}-t+qv)?Z_JTGUSAKQ2J+qO-GS#s?jAQ7O2Tvz)WA*Ar`Jiq^H$KadVjTj= zE}qOgA|fg_;MV@76$PX5SCgWlBg_+e!xRw?k|jTSEl{JltP!ZD6Pt7daE-^;cW@b1 zmrum8*20NGk|!)SlW~8YTuztK_nVZo3qmko+~geBIc*^8Co;d_DA7hJCm2=oB_8E^x*STAdLl=jg$uD90=S)o-mcZurC z2Dv^S0rkEEJXB`hbn>gWt{n4&kpWIh~Vys?9hn=)>b_X_n|ZCr1J z!O{GED_wz^&r5+3Xr!@VE%c-y@%F%xmd58@-;$?=S=;))4Lj--*OtGpyR`E*ZfBeI zA1JMfGgN;cu&ePqS->6+nk_*h?`!>7pKMH?%UWa3^viEz z`Dt&#ZJCuc8_)goE{b##UgmO$1*K3{!_s3NmSm<3gj$;k%IW{Yskb2mjvYm!uy}Ma@&lh zre{^ue;?g5*tx2tUKbQ!zq4dGvLzCN*+-j=K`)*e5?iZf5(dQium@hHSii=wv0t7l z$)Te=ckj4w!PO_l>n=m*%L!=a@Sy^j`t7czfR%5c)#JR)V>>YgVo~MQr}^h}MTw9P z-}xg{a34iVOr}cNykM=f(vDb~m$9bV$)-Pil!8=e%3B;2IcCf_+V;_Nqz-^Ow^|=- z(JGs%Jz{^8*5G?}}IP?Kf~@ zA-$kbwM4`p4WVZ%yS`7?gsyKQ$5OjW71T`{e3IWhpewCqtDBvczy7wS3>a-Yq{nfZ=*Q<@jsjdcNtY-!&8@Eq6V@@dj)aNQu}H@$YO-sjdE_cKC*i?H{-}fIqzg zm?Ge_zr58U`QfLy<&i>8fqVv@MfJh-;{Y?e>;kNwSLT8YTYlnwPxh~~6ubF{QaYr@ z^annq$t% zVCwQA$>vkaCNn8lWVH;?;OZudJ~0$h@pK)K@u{o8+k@~te;YUI&TQgI9C|zM7IuDW z*7}Bb>38dyGbpT`S==Hj_0UCU+HWvr z_Wcy>2&Fv$=KLS0ea~?!?%hwogT;0>hS0ESPvzKRo&Fu)zwbq=9K=biC#^l!_#EZP ze%WyS!0>4BpgK;3y@k^Tj<9dtO3C}tQKXGeBl1gj|ai)n$w;mrQczOZzXfhxceux)?HOLQ%_SD z9IR^k0aOk}p696*v7*erLZx+ZbW9}2B1SUY#b6qHf^)9_O`~Ey0^8TVz4%^um$Njp z3+lbrH?}Wvd>kX;HQ)vWxSMH)1MbCq5y0D5FPJ852kT(=0%v8QW-;9QMfPO}zjjkL*{y8vQqHHKE{}D4{dw`8PCpJeH~}#OAZErC zB=zc{O~ROZM*#I~BpcKMYVJ#cKapB$T+T-5jv{;+niz2*Cg0Kl(b~HmY|q_(dNq6r$8RUpBT(-Fgo)*)c|R&WT0Cgl*(`eC9yfeL#mN6Zse#EVUx@2 zt6yiNey$$ehIorMb|l^h!TbtY;Fl|>0;mUHs+b-=pp6jJnEqihb60fwm{Ekd;M2MT z*%a&is8o>4l=J#MR5PxPz_5ykO6MFVy+Gvoz5{89A=A%gi&B}jzze_4<6-DX?c6^= zJYrPtO_NEz$77MptBiu-CyM45h2)MzC#rBj%asg}2Oy3lm3GX}Wl~<&eUhBD!)e?7d+IzMKy@R;fe7Om0D1(gk{V!OU&qdij)&J+cU?9pdDzaufTndC&b!OqGZ!J{`-QZOXX4`N`S4m;Z-O^MqG zoB~`;w#H%5m+9qX&#EomKDx^m@~&BYo?H=Pp#s1H*qe6QV>rQ_1V#WmtWQ9s8#;5e zA(D2d+E)fjuP0eLXKLQwhOE-S;jgH0zFps6z|{Z7Cw^xa+#(I}XwFC^UB|*pp7z8H z@Q1!TB>^P_R&aMT2PPVnN|8+_WxvX(>21;nO|h)No}a>`FLqZ4X_>Qh<22k=BSli3{Ap!W2$oTOJOJ-E3VJ@Cpe{&HnGUM)({Ta~{Q@zKXs z{5f4nv!|WHJ6+iHAG^LW|BM&@DJ*4HPeb*>25r3@nniU~NVB5XeZLLkEAPf5PLL;e zH-R3w@8gUXnocP=BnMQ~I!^-K=nr_ZIh9M4G8}UV6nrmaA}`B2v6mh%K{?ZNC4ihO z^Cj0KQyyx5vBNjrocqX6bG&E%Nu=IkhaTDeZ$?Q(UYU$#$BrAcDo4L&f$nji(gg{co)VgQTph z{48*mpunK(g(eT1rfBieT#x@A-#hmPleR*Q`gTjiLwu)*!Ti-<)QWk-5sa4$X%*|` zxe9{a`;oD&*T~VM&3u18`3^Uaw&6Y7=ItLl86@0A`Z9uHV6y|9R;$0k?J3U<(@+x) z-9)0of$o9M^gWFEM=FNW_=@Z=;bm&pgU!CTx^g!(T+9*kWA8t$SH#T@-8Mo!Wbw?E zGyry}!bSicpj2BFD~ff4BU5ljv7SlorNArDo4Q#BQmW!^MPfHi(Tw*S5$rQjE*-gW z!UNd?L1)!2{n*r*_oJ{Ya?^8e+kq;uu`qD&+iPMvK=(f|b!8}i1-+_>i5&Rb^Q)`R zdOI!*JYjiKg`K+dI^PqKknkg0PRxJn3Ery^7}Z%z_7}J$O`k^*4POmKgje5e*)=@?#$%C|vU&*q%RtQZlw5tsmG8r#7rO6M0>T(`cmYBg~^l zZ-YFh*6?SD)tJ*WWjgUUbe8bgqV_eNftwe{hmEEznqfc@2}j`{jyE3frFKQ}{Wp^$ zujL&?34%_2=WpV8--q#=ayL%Sg;F$Re05Z@@@{YWs74QN{kgE^-R>#z>9<5;JmWKf zuHzJ3A0)>f+4ny&9^vZ8?;^?PdKBF=wb%P=SaKjoMuaSAtw7%EES38_zf*whPe(23 zy-cl-j|f7~LgtEFT~4N;q}42(@c-*sA{KF$?TZ6`mRfRNX5J~^yx){9w~Esi^cLVp zIy>$yVOrv3MM|0qND+U4_+c~gfDP^e6b!29YQ$o94-fI_hQK&=0DV9huA*#kBV0u% zZ$Gox+4}afH}Y0V#gskR?A`r=P65j&@J#yNp8DA>ciG~O#oJ4rQf6^Om!6C;EEt4_ zqD9P!V_Sn<=)8N$x^fblcOpi6p0>QJ2|bh~ol%%XS73Hi)afZ1A&)t>{{|BC!R0qL zR~kmT-C43rw(j;Tu5#pCXCVQ_oBtFj6?fc4P|Bp?y_5M?{(NI1fLl?a*J3P8As31d zz}Urmi3D}_uB~qq#241t^DDww(S|nS+*pM0X9Ady^wE(*y1L|*5_VV`l|J5Si_(H? zaC*)BMr@&bmqp00OL@RqBxvOCQ4Lk|z)6uIxyaN{GQ1fsLUn;@h!2yTV5!N!4nYTR z@%t-e8m_YyzIw4vaG`M6+ay8wa~IZE*_LJ@-+!gS27YOEc%6yEBK&a92DhXC2^IDY zEzeq5Ou*9nB&k+1Xah@V5sArS%HsTwCOE zqUxEhh041fh2Am=>ji1!H5L^uUjI8AdpcJ>=&)X3>@ljZ%wjID_}`s??Dou%KpLrG zSZ*iq_B`s8+6b!qX|1yS6<>Y?l25$?H^d@w@i zUOi9INm;JWYmVH#sxNP@hlWs4@~@)n-XhYB(40Z8F2QaM&rPy@+`eN8)%KXpMP|_L zuZPT=Q}~!c$Z94yq{C^M(k}+5+`Llyud=XHGE}$s3y-PuQxS>ivw^ z!BNKerKvTE_{V5Gt&a2RXL_2|_qr?;JTbZV=lGK)$Nb+_@Q3d@zrDf^E)Jg=BrK6C zjC}Al05eSlZ2C=42UPiq*n|rcFNuQMDt1cu`5G^M_T4Kub=}aSR);oDXv@i~dB*7}Vov*OqCZx3`uD!y@4EJT5uk+z;Dm8PBhe|VM#nZXE`t6!usWLvF?MWK1@~${@&4q#|=${xa zW{ZbA4cUI*Xk)NKVw)mecEzjQKyy#E--P diff --git a/luci-app-uugamebooster/root/www/uugamebooster/uuios.png b/luci-app-uugamebooster/root/www/uugamebooster/uuios.png deleted file mode 100644 index bce47ab9849bbe0792a5aed876c766af8d562fe3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7292 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 ae=6zKcAR|8lc!7m1yq$Z6)WT|gZ>9PM_1zj diff --git a/luci-app-uugamebooster/root/www/uuios.png b/luci-app-uugamebooster/root/www/uuios.png new file mode 100644 index 0000000000000000000000000000000000000000..f76dc74eec9798d0dd1a320fac771782b2920c2f GIT binary patch literal 20642 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 R28k literal 0 HcmV?d00001 diff --git a/luci-app-v2ray-server/Makefile b/luci-app-v2ray-server/Makefile index a5710d53..4528e7f1 100644 --- a/luci-app-v2ray-server/Makefile +++ b/luci-app-v2ray-server/Makefile @@ -6,12 +6,12 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI support for V2ray Server -LUCI_DEPENDS:=+luci-compat +unzip +LUCI_DEPENDS:=+unzip LUCI_PKGARCH:=all PKG_NAME:=luci-app-v2ray-server PKG_VERSION:=13 -PKG_RELEASE:=1 +PKG_RELEASE:=2 include $(TOPDIR)/feeds/luci/luci.mk diff --git a/luci-app-v2ray-server/po/zh-cn b/luci-app-v2ray-server/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-v2ray-server/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-v2ray-server/po/zh_Hans/v2ray_server.po b/luci-app-v2ray-server/po/zh-cn/v2ray_server.po similarity index 100% rename from luci-app-v2ray-server/po/zh_Hans/v2ray_server.po rename to luci-app-v2ray-server/po/zh-cn/v2ray_server.po diff --git a/luci-app-v2ray-server/po/zh_Hans b/luci-app-v2ray-server/po/zh_Hans new file mode 120000 index 00000000..41451e4a --- /dev/null +++ b/luci-app-v2ray-server/po/zh_Hans @@ -0,0 +1 @@ +zh-cn \ No newline at end of file diff --git a/luci-app-verysync/Makefile b/luci-app-verysync/Makefile index f9823d89..09afdbb7 100644 --- a/luci-app-verysync/Makefile +++ b/luci-app-verysync/Makefile @@ -8,8 +8,10 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI support for Verysync LUCI_DEPENDS:=+verysync LUCI_PKGARCH:=all + +PKG_NAME:=luci-app-verysync PKG_VERSION:=1.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 include $(TOPDIR)/feeds/luci/luci.mk diff --git a/luci-app-verysync/luasrc/controller/verysync.lua b/luci-app-verysync/luasrc/controller/verysync.lua index ab6381ee..f89a2a1c 100644 --- a/luci-app-verysync/luasrc/controller/verysync.lua +++ b/luci-app-verysync/luasrc/controller/verysync.lua @@ -5,15 +5,13 @@ function index() return end - local page = entry({"admin", "nas", "verysync"}, cbi("verysync"), _("Verysync"), 10) - page.dependent = true - page.acl_depends = { "luci-app-verysync" } - entry({"admin","nas","verysync","status"},call("act_status")).leaf=true + entry({"admin", "nas", "verysync"}, cbi("verysync"), _("Verysync"), 10).dependent = true + entry({"admin", "nas", "verysync", "status"}, call("act_status")).leaf = true end function act_status() - local e={} - e.running=luci.sys.call("pgrep verysync >/dev/null")==0 + local e = {} + e.running = luci.sys.call("pgrep verysync >/dev/null") == 0 luci.http.prepare_content("application/json") luci.http.write_json(e) end diff --git a/luci-app-verysync/luasrc/view/verysync/verysync_status.htm b/luci-app-verysync/luasrc/view/verysync/verysync_status.htm index 65d8cbee..bd7874c5 100644 --- a/luci-app-verysync/luasrc/view/verysync/verysync_status.htm +++ b/luci-app-verysync/luasrc/view/verysync/verysync_status.htm @@ -5,7 +5,7 @@ XHR.poll(3, '<%=url([[admin]], [[nas]], [[verysync]], [[status]])%>', null, if (data && tb) { if (data.running) { - var links = 'Verysync <%:RUNNING%>'; + var links = 'Verysync <%:RUNNING%>'; tb.innerHTML = links; } else { tb.innerHTML = 'Verysync <%:NOT RUNNING%>'; @@ -14,9 +14,14 @@ XHR.poll(3, '<%=url([[admin]], [[nas]], [[verysync]], [[status]])%>', null, } ); -function openwebui(){ - var url = window.location.host+":<%=luci.sys.exec("uci -q get verysync.config.port"):gsub("^%s*(.-)%s*$", "%1")%>"; - window.open('http://'+url,'target',''); +function openClient() { + var curWwwPath = window.document.location.href; + var pathName = window.document.location.pathname; + var pos = curWwwPath.indexOf(pathName); + var localhostPath = curWwwPath.substring(0, pos); + var clientPort = window.document.getElementById("cbid.verysync.config.port").value + var url = localhostPath + ":" + clientPort; + window.open(url) }; //]]> diff --git a/luci-app-verysync/po/zh-cn b/luci-app-verysync/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-verysync/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-verysync/po/zh_Hans/verysync.po b/luci-app-verysync/po/zh-cn/verysync.po similarity index 100% rename from luci-app-verysync/po/zh_Hans/verysync.po rename to luci-app-verysync/po/zh-cn/verysync.po diff --git a/luci-app-verysync/po/zh_Hans b/luci-app-verysync/po/zh_Hans new file mode 120000 index 00000000..41451e4a --- /dev/null +++ b/luci-app-verysync/po/zh_Hans @@ -0,0 +1 @@ +zh-cn \ No newline at end of file diff --git a/luci-app-verysync/root/etc/uci-defaults/luci-verysync b/luci-app-verysync/root/etc/uci-defaults/luci-verysync new file mode 100644 index 00000000..13da5d67 --- /dev/null +++ b/luci-app-verysync/root/etc/uci-defaults/luci-verysync @@ -0,0 +1,19 @@ +#!/bin/sh +[ ! -f "/usr/share/ucitrack/luci-app-verysync.json" ] && { + cat > /usr/share/ucitrack/luci-app-verysync.json << EEOF +{ + "config": "verysync", + "init": "verysync" +} +EEOF +} + +uci -q batch <<-EOF >/dev/null + delete ucitrack.@verysync[-1] + add ucitrack verysync + set ucitrack.@verysync[-1].init=verysync + commit ucitrack +EOF + +rm -f /tmp/luci-indexcache +exit 0 diff --git a/luci-app-webadmin/Makefile b/luci-app-webadmin/Makefile index 48d42b2a..71e365e4 100644 --- a/luci-app-webadmin/Makefile +++ b/luci-app-webadmin/Makefile @@ -8,11 +8,12 @@ include $(TOPDIR)/rules.mk LUCI_TITLE:=LuCI page for Web Admin LUCI_DEPENDS:=+uhttpd -PKG_VERSION:=1.0 -PKG_RELEASE:=1 +LUCI_PKGARCH:=all + +PKG_NAME:=luci-app-webadmin +PKG_VERSION:=2 +PKG_RELEASE:=2 include $(TOPDIR)/feeds/luci/luci.mk # call BuildPackage - OpenWrt buildroot signature - - diff --git a/luci-app-webadmin/luasrc/controller/webadmin.lua b/luci-app-webadmin/luasrc/controller/webadmin.lua index 3ed295f9..5f173005 100644 --- a/luci-app-webadmin/luasrc/controller/webadmin.lua +++ b/luci-app-webadmin/luasrc/controller/webadmin.lua @@ -8,10 +8,5 @@ function index() return end - local page - - page = entry({"admin", "system", "webadmin"}, cbi("webadmin"), _("Web Admin"), 1) - page.leaf = true - page.acl_depends = { "luci-app-webadmin" } + entry({"admin", "system", "webadmin"}, cbi("webadmin"), _("Web Admin"), 1).leaf = true end - diff --git a/luci-app-webadmin/luasrc/model/cbi/webadmin.lua b/luci-app-webadmin/luasrc/model/cbi/webadmin.lua index e1872d20..dc80851c 100644 --- a/luci-app-webadmin/luasrc/model/cbi/webadmin.lua +++ b/luci-app-webadmin/luasrc/model/cbi/webadmin.lua @@ -3,14 +3,16 @@ local fs = require("nixio.fs") -local m = Map("uhttpd", translate("Web Admin Settings"), - translate("Web Admin Settings Page")) +m = Map("uhttpd") +m.title = translate("Web Admin Settings") +m.description = translate("Web Admin Settings Page") -local ucs = m:section(TypedSection, "uhttpd") +ucs = m:section(TypedSection, "uhttpd") ucs.addremove = false ucs.anonymous = true -lhttp = ucs:option(DynamicList, "listen_http", translate("HTTP listeners (address:port)"), translate("Bind to specific interface:port (by specifying interface address")) +lhttp = ucs:option(DynamicList, "listen_http", translate("HTTP listeners (address:port)")) +lhttp.description = translate("Bind to specific interface:port (by specifying interface address") lhttp.datatype = "list(ipaddrport(1))" function lhttp.validate(self, value, section) @@ -39,11 +41,12 @@ function lhttp.validate(self, value, section) end o = ucs:option(Flag, "redirect_https", translate("Redirect all HTTP to HTTPS")) +o.description = translate("Redirect all HTTP to HTTPS when SSl cert was installed") o.default = o.enabled o.rmempty = false -o.description = translate("Redirect all HTTP to HTTPS when SSl cert was installed") -o = ucs:option(Flag, "rfc1918_filter", translate("Ignore private IPs on public interface"), translate("Prevent access from private (RFC1918) IPs on an interface if it has an public IP address")) +o = ucs:option(Flag, "rfc1918_filter", translate("Ignore private IPs on public interface")) +o.description = translate("Prevent access from private (RFC1918) IPs on an interface if it has an public IP address") o.default = o.enabled o.rmempty = false diff --git a/luci-app-webadmin/po/zh-cn b/luci-app-webadmin/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-webadmin/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-webadmin/po/zh_Hans/webadmin.po b/luci-app-webadmin/po/zh-cn/webadmin.po similarity index 78% rename from luci-app-webadmin/po/zh_Hans/webadmin.po rename to luci-app-webadmin/po/zh-cn/webadmin.po index 176fdcc8..d2dab011 100644 --- a/luci-app-webadmin/po/zh_Hans/webadmin.po +++ b/luci-app-webadmin/po/zh-cn/webadmin.po @@ -1,10 +1,16 @@ msgid "" msgstr "" -"Language: zh_Hans\n" +"Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" +"Project-Id-Version: \n" +"POT-Creation-Date: \n" +"PO-Revision-Date: \n" +"Last-Translator: dingpengyu \n" +"Language-Team: \n" +"X-Generator: Poedit 2.3.1\n" msgid "Web Admin" msgstr "Web 管理" @@ -15,8 +21,8 @@ msgstr "Web 管理页面设置" msgid "Web Admin Settings Page" msgstr "设置更改Web管理页面端口,绑定地址,是否允许从互联网访问等" -msgid "HTTP listeners (address:port)"" -msgstr "HTTP 监听 (IP地址:端口)"" +msgid "HTTP listeners (address:port)" +msgstr "HTTP 监听 (IP地址:端口)" msgid "Bind to specific interface:port (by specifying interface address" msgstr "绑定到指定的IP地址:端口" @@ -38,4 +44,3 @@ msgstr "只允许内网访问" msgid "Prevent access from private (RFC1918) IPs on an interface if it has an public IP address" msgstr "拒绝从互联网访问Web管理页面" - diff --git a/luci-app-webadmin/po/zh_Hans b/luci-app-webadmin/po/zh_Hans new file mode 120000 index 00000000..41451e4a --- /dev/null +++ b/luci-app-webadmin/po/zh_Hans @@ -0,0 +1 @@ +zh-cn \ No newline at end of file diff --git a/luci-app-webadmin/root/usr/share/rpcd/acl.d/luci-app-webadmin.json b/luci-app-webadmin/root/usr/share/rpcd/acl.d/luci-app-webadmin.json deleted file mode 100644 index fccda4de..00000000 --- a/luci-app-webadmin/root/usr/share/rpcd/acl.d/luci-app-webadmin.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "luci-app-webadmin": { - "description": "Grant UCI access for luci-app-webadmin", - "read": { - "uci": [ "uhttpd" ] - }, - "write": { - "uci": [ "uhttpd" ] - } - } -} diff --git a/luci-app-webrestriction/luasrc/controller/webrestriction.lua b/luci-app-webrestriction/luasrc/controller/webrestriction.lua deleted file mode 100644 index 7ee5ee14..00000000 --- a/luci-app-webrestriction/luasrc/controller/webrestriction.lua +++ /dev/null @@ -1,18 +0,0 @@ -module("luci.controller.webrestriction", package.seeall) - -function index() - if not nixio.fs.access("/etc/config/webrestriction") then return end - - entry({"admin", "control"}, firstchild(), "Control", 44).dependent = false - local page = entry({"admin", "control", "webrestriction"}, cbi("webrestriction"),_("访问限制"), 11) - page.dependent = true - page.acl_depends = { "luci-app-webrestriction" } - entry({"admin", "control", "webrestriction", "status"}, call("status")).leaf = true -end - -function status() - local e = {} - e.status = luci.sys.call("iptables -L FORWARD |grep WEB_RESTRICTION >/dev/null") == 0 - luci.http.prepare_content("application/json") - luci.http.write_json(e) -end diff --git a/luci-app-webrestriction/luasrc/model/cbi/webrestriction.lua b/luci-app-webrestriction/luasrc/model/cbi/webrestriction.lua deleted file mode 100644 index bb0c688c..00000000 --- a/luci-app-webrestriction/luasrc/model/cbi/webrestriction.lua +++ /dev/null @@ -1,30 +0,0 @@ -local o = require "luci.sys" -local a, e, t -a = Map("webrestriction", translate("访问限制"), translate( - "使用黑名单或者白名单模式控制列表中的客户端是否能够连接到互联网。")) -a.template = "webrestriction/index" -e = a:section(TypedSection, "basic", translate("Running Status")) -e.anonymous = true -t = e:option(DummyValue, "webrestriction_status", translate("当前状态")) -t.template = "webrestriction/webrestriction" -t.value = translate("Collecting data...") -e = a:section(TypedSection, "basic", translate("全局设置")) -e.anonymous = true -t = e:option(Flag, "enable", translate("开启")) -t.rmempty = false -t = e:option(ListValue, "limit_type", translate("限制模式")) -t.default = "blacklist" -t:value("whitelist", translate("白名单")) -t:value("blacklist", translate("黑名单")) -t.rmempty = false -e = a:section(TypedSection, "macbind", translate("名单设置"), translate( - "如果是黑名单模式,列表中的客户端将被禁止连接到互联网;白名单模式表示仅有列表中的客户端可以连接到互联网。")) -e.template = "cbi/tblsection" -e.anonymous = true -e.addremove = true -t = e:option(Flag, "enable", translate("开启控制")) -t.rmempty = false -t = e:option(Value, "macaddr", translate("MAC地址")) -t.rmempty = true -o.net.mac_hints(function(e, a) t:value(e, "%s (%s)" % {e, a}) end) -return a diff --git a/luci-app-webrestriction/luasrc/view/webrestriction/index.htm b/luci-app-webrestriction/luasrc/view/webrestriction/index.htm deleted file mode 100644 index 21f269e7..00000000 --- a/luci-app-webrestriction/luasrc/view/webrestriction/index.htm +++ /dev/null @@ -1,18 +0,0 @@ -<%# - Copyright 2016 Chen RuiWei - Licensed to the public under the Apache License 2.0. --%> - -<% include("cbi/map") %> - diff --git a/luci-app-webrestriction/luasrc/view/webrestriction/webrestriction.htm b/luci-app-webrestriction/luasrc/view/webrestriction/webrestriction.htm deleted file mode 100644 index 03702cf7..00000000 --- a/luci-app-webrestriction/luasrc/view/webrestriction/webrestriction.htm +++ /dev/null @@ -1,3 +0,0 @@ -<%+cbi/valueheader%> -<%=pcdata(self:cfgvalue(section) or self.default or "")%> -<%+cbi/valuefooter%> diff --git a/luci-app-webrestriction/po/zh-cn b/luci-app-webrestriction/po/zh-cn deleted file mode 120000 index 8d69574d..00000000 --- a/luci-app-webrestriction/po/zh-cn +++ /dev/null @@ -1 +0,0 @@ -zh_Hans \ No newline at end of file diff --git a/luci-app-webrestriction/po/zh_Hans/webrestriction.po b/luci-app-webrestriction/po/zh_Hans/webrestriction.po deleted file mode 100644 index a883cf73..00000000 --- a/luci-app-webrestriction/po/zh_Hans/webrestriction.po +++ /dev/null @@ -1,2 +0,0 @@ -msgid "Control" -msgstr "管控" diff --git a/luci-app-webrestriction/root/etc/config/webrestriction b/luci-app-webrestriction/root/etc/config/webrestriction deleted file mode 100644 index 50459394..00000000 --- a/luci-app-webrestriction/root/etc/config/webrestriction +++ /dev/null @@ -1,5 +0,0 @@ - -config basic - option enable '0' - option limit_type 'blacklist' - diff --git a/luci-app-webrestriction/root/etc/init.d/webrestriction b/luci-app-webrestriction/root/etc/init.d/webrestriction deleted file mode 100755 index ab1d28cd..00000000 --- a/luci-app-webrestriction/root/etc/init.d/webrestriction +++ /dev/null @@ -1,86 +0,0 @@ -#!/bin/sh /etc/rc.common -# -# Copyright (C) 2015 OpenWrt-dist -# Copyright (C) 2016 fw867 -# -# This is free software, licensed under the GNU General Public License v3. -# See /LICENSE for more information. -# - -START=99 - -CONFIG=webrestriction -limit_type=$(uci -q get webrestriction.@basic[0].limit_type) - -uci_get_by_type() { - local index=0 - if [ -n $4 ]; then - index=$4 - fi - local ret=$(uci get $CONFIG.@$1[$index].$2 2>/dev/null) - echo ${ret:=$3} -} - -is_true() { - case $1 in - 1|on|true|yes|enabled) echo 0;; - *) echo 1;; - esac -} - -load_config() { - ENABLED=$(uci_get_by_type basic enable) - return $(is_true $ENABLED) -} - - -add_rule(){ - action=$1 - for i in $(seq 0 100) - do - enable=$(uci_get_by_type macbind enable '' $i) - macaddr=$(uci_get_by_type macbind macaddr '' $i) - if [ -z $enable ] || [ -z $macaddr ]; then - break - fi - if [ "$enable" == "1" ]; then - iptables -t filter -A WEB_RESTRICTION -m mac --mac-source $macaddr -j $action - [ "$limit_type" == "blacklist" ] && iptables -t nat -A WEB_RESTRICTION -m mac --mac-source $macaddr -j RETURN - #unset "$macaddr" - fi - done -} - -start(){ - - ! load_config && exit 0 - [ "`iptables -L FORWARD|grep -c WEB_RESTRICTION`" -gt 0 ] && exit 0; - iptables -P FORWARD DROP - iptables -t filter -N WEB_RESTRICTION - if [ "$limit_type" == "blacklist" ]; then - iptables -t nat -N WEB_RESTRICTION - add_rule DROP - else - add_rule ACCEPT - iptables -t filter -A WEB_RESTRICTION -j DROP - fi - - #获取FORWARD ACCEPT规则行号 - FA_INDEX=`iptables -t filter -L FORWARD|tail -n +3|sed -n -e '/^ACCEPT/='` - if [ -n "$FA_INDEX" ]; then - let FA_INDEX+=1 - fi - #确保添加到FORWARD ACCEPT规则之后 - iptables -t filter -I FORWARD $FA_INDEX -m comment --comment "Rule For Control" -j WEB_RESTRICTION - [ "$limit_type" == "blacklist" ] && iptables -t nat -I PREROUTING 1 -m comment --comment "Rule For Control" -j WEB_RESTRICTION -} -stop(){ - [ "`iptables -t filter -L | grep -c WEB_RESTRICTION`" -gt 0 ] && { - iptables -t filter -D FORWARD -m comment --comment "Rule For Control" -j WEB_RESTRICTION - iptables -t nat -D PREROUTING -m comment --comment "Rule For Control" -j WEB_RESTRICTION - iptables -t filter -F WEB_RESTRICTION - iptables -t filter -X WEB_RESTRICTION - iptables -t nat -F WEB_RESTRICTION - iptables -t nat -X WEB_RESTRICTION - } -} \ No newline at end of file diff --git a/luci-app-webrestriction/root/etc/uci-defaults/luci-app-control-webrestriction b/luci-app-webrestriction/root/etc/uci-defaults/luci-app-control-webrestriction deleted file mode 100644 index 0e2cce83..00000000 --- a/luci-app-webrestriction/root/etc/uci-defaults/luci-app-control-webrestriction +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -[ ! -f "/usr/share/ucitrack/luci-app-webrestriction.json" ] && { - cat > /usr/share/ucitrack/luci-app-webrestriction.json << EEOF -{ - "config": "webrestriction", - "init": "webrestriction" -} -EEOF -} - -uci -q batch <<-EOF >/dev/null - delete ucitrack.@webrestriction[-1] - add ucitrack webrestriction - set ucitrack.@webrestriction[-1].init=webrestriction - commit ucitrack -EOF - -rm -f /tmp/luci-indexcache -exit 0 diff --git a/luci-app-webrestriction/root/usr/share/rpcd/acl.d/luci-app-webrestriction.json b/luci-app-webrestriction/root/usr/share/rpcd/acl.d/luci-app-webrestriction.json deleted file mode 100644 index d14c51ff..00000000 --- a/luci-app-webrestriction/root/usr/share/rpcd/acl.d/luci-app-webrestriction.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "luci-app-webrestriction": { - "description": "Grant UCI access for luci-app-webrestriction", - "read": { - "uci": [ "webrestriction" ] - }, - "write": { - "uci": [ "webrestriction" ] - } - } -} diff --git a/luci-app-webrestriction/root/usr/share/ucitrack/luci-app-webrestriction.json b/luci-app-webrestriction/root/usr/share/ucitrack/luci-app-webrestriction.json deleted file mode 100644 index 7a1b3845..00000000 --- a/luci-app-webrestriction/root/usr/share/ucitrack/luci-app-webrestriction.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "config": "webrestriction", - "init": "webrestriction" -} diff --git a/luci-app-yggdrasil/Makefile b/luci-app-yggdrasil/Makefile deleted file mode 100644 index e69de29b..00000000 diff --git a/luci-lib-fs/Makefile b/luci-lib-fs/Makefile index 156c709f..edce8238 100644 --- a/luci-lib-fs/Makefile +++ b/luci-lib-fs/Makefile @@ -9,27 +9,41 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-lib-fs PKG_VERSION:=1.0 -PKG_RELEASE:=1 +PKG_RELEASE:=2 + +PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME) +PKG_INSTALL:=1 include $(INCLUDE_DIR)/package.mk define Package/luci-lib-fs + SUBMENU:=Lua SECTION:=lang CATEGORY:=Languages - SUBMENU:=Lua TITLE:=luci-lib-fs - URL:=https://github.com/lbthomsen/openwrt-luci - DEPENDS:=+luci +luci-lib-nixio PKGARCH:=all + URL:=https://github.com/lbthomsen/openwrt-luci + DEPENDS:=+luci-lib-nixio +endef + +define Package/luci-lib-fs/description + luci-lib-fs +endef + +define Build/Configure endef define Build/Compile - true endef +define Build/Install +endef + + define Package/luci-lib-fs/install $(INSTALL_DIR) $(1)/usr/lib/lua/luci - $(CP) ./files/fs.lua $(1)/usr/lib/lua/luci/fs.lua + $(CP) ./files/*.lua $(1)/usr/lib/lua/luci + endef $(eval $(call BuildPackage,luci-lib-fs))