From 5a2d84c1c20cf0546aa5a0abcc903f83b221e2ae Mon Sep 17 00:00:00 2001 From: lhie1 Date: Sat, 4 Apr 2020 07:08:26 +0800 Subject: [PATCH] del: JSBox --- JSBox/Rules-lhie1.box | Bin 211134 -> 0 bytes JSBox/Rules-lhie1/README.md | 30 - JSBox/Rules-lhie1/assets/balloons.json | 1 - JSBox/Rules-lhie1/assets/close_icon.png | Bin 4095 -> 0 bytes JSBox/Rules-lhie1/assets/icon.png | Bin 5026 -> 0 bytes JSBox/Rules-lhie1/assets/menu_icon.png | Bin 1465 -> 0 bytes JSBox/Rules-lhie1/assets/new_rules_tag.png | Bin 3935 -> 0 bytes JSBox/Rules-lhie1/assets/new_version_tag.png | Bin 3837 -> 0 bytes JSBox/Rules-lhie1/assets/selected_icon.png | Bin 3589 -> 0 bytes JSBox/Rules-lhie1/assets/thankyou.jpg | Bin 66727 -> 0 bytes JSBox/Rules-lhie1/assets/thankyou2.jpg | Bin 55729 -> 0 bytes JSBox/Rules-lhie1/assets/today_jsbox.png | Bin 8023 -> 0 bytes JSBox/Rules-lhie1/assets/today_pull.png | Bin 2622 -> 0 bytes JSBox/Rules-lhie1/assets/today_quan.png | Bin 3003 -> 0 bytes JSBox/Rules-lhie1/assets/today_quan_off.png | Bin 3758 -> 0 bytes JSBox/Rules-lhie1/assets/today_surge.png | Bin 11793 -> 0 bytes JSBox/Rules-lhie1/assets/today_surge2.png | Bin 9875 -> 0 bytes JSBox/Rules-lhie1/assets/today_surge_off.png | Bin 8390 -> 0 bytes JSBox/Rules-lhie1/config.json | 22 - JSBox/Rules-lhie1/data.js | 1 - JSBox/Rules-lhie1/defaultConf/customSettings | 1 - JSBox/Rules-lhie1/defaultConf/generalSettings | 30 - .../defaultConf/headerrewriteSettings | 1 - JSBox/Rules-lhie1/defaultConf/hostSettings | 1 - .../Rules-lhie1/defaultConf/hostnameSettings | 0 JSBox/Rules-lhie1/defaultConf/mitmSettings | 3 - .../defaultConf/proxyGroupSettings | 10 - JSBox/Rules-lhie1/defaultConf/ssidSettings | 1 - .../defaultConf/urlrewriteSettings | 1 - JSBox/Rules-lhie1/defaultConf/widgetSettings | 2 - JSBox/Rules-lhie1/docs.md | 60 - JSBox/Rules-lhie1/donate.md | 1 - JSBox/Rules-lhie1/main.js | 55 - JSBox/Rules-lhie1/restart.fndroid | 1 - JSBox/Rules-lhie1/scripts/app.js | 3010 ----------------- JSBox/Rules-lhie1/scripts/colorUtil.js | 60 - JSBox/Rules-lhie1/scripts/extension.js | 325 -- JSBox/Rules-lhie1/scripts/filenameUtil.js | 23 - JSBox/Rules-lhie1/scripts/init.js | 21 - JSBox/Rules-lhie1/scripts/proxyUitl.js | 318 -- JSBox/Rules-lhie1/scripts/ruleUpdateUtil.js | 87 - JSBox/Rules-lhie1/scripts/siri.js | 14 - JSBox/Rules-lhie1/scripts/sizeUtil.js | 8 - JSBox/Rules-lhie1/scripts/socketLogger.js | 49 - JSBox/Rules-lhie1/scripts/today.js | 468 --- JSBox/Rules-lhie1/scripts/updateUtil.js | 60 - JSBox/Rules-lhie1/scripts/videoReg.js | 16 - JSBox/Rules-lhie1/strings/en.strings | 3 - JSBox/Rules-lhie1/strings/zh-Hans.strings | 3 - JSBox/Rules-lhie1/updateLog.md | 546 --- JSBox/Rules-lhie1/version.fndroid | 1 - README.md | 8 +- 52 files changed, 4 insertions(+), 5237 deletions(-) delete mode 100644 JSBox/Rules-lhie1.box delete mode 100644 JSBox/Rules-lhie1/README.md delete mode 100644 JSBox/Rules-lhie1/assets/balloons.json delete mode 100644 JSBox/Rules-lhie1/assets/close_icon.png delete mode 100644 JSBox/Rules-lhie1/assets/icon.png delete mode 100644 JSBox/Rules-lhie1/assets/menu_icon.png delete mode 100644 JSBox/Rules-lhie1/assets/new_rules_tag.png delete mode 100644 JSBox/Rules-lhie1/assets/new_version_tag.png delete mode 100644 JSBox/Rules-lhie1/assets/selected_icon.png delete mode 100644 JSBox/Rules-lhie1/assets/thankyou.jpg delete mode 100644 JSBox/Rules-lhie1/assets/thankyou2.jpg delete mode 100644 JSBox/Rules-lhie1/assets/today_jsbox.png delete mode 100644 JSBox/Rules-lhie1/assets/today_pull.png delete mode 100644 JSBox/Rules-lhie1/assets/today_quan.png delete mode 100644 JSBox/Rules-lhie1/assets/today_quan_off.png delete mode 100644 JSBox/Rules-lhie1/assets/today_surge.png delete mode 100644 JSBox/Rules-lhie1/assets/today_surge2.png delete mode 100644 JSBox/Rules-lhie1/assets/today_surge_off.png delete mode 100644 JSBox/Rules-lhie1/config.json delete mode 100644 JSBox/Rules-lhie1/data.js delete mode 100644 JSBox/Rules-lhie1/defaultConf/customSettings delete mode 100644 JSBox/Rules-lhie1/defaultConf/generalSettings delete mode 100644 JSBox/Rules-lhie1/defaultConf/headerrewriteSettings delete mode 100644 JSBox/Rules-lhie1/defaultConf/hostSettings delete mode 100644 JSBox/Rules-lhie1/defaultConf/hostnameSettings delete mode 100644 JSBox/Rules-lhie1/defaultConf/mitmSettings delete mode 100644 JSBox/Rules-lhie1/defaultConf/proxyGroupSettings delete mode 100644 JSBox/Rules-lhie1/defaultConf/ssidSettings delete mode 100644 JSBox/Rules-lhie1/defaultConf/urlrewriteSettings delete mode 100644 JSBox/Rules-lhie1/defaultConf/widgetSettings delete mode 100644 JSBox/Rules-lhie1/docs.md delete mode 100644 JSBox/Rules-lhie1/donate.md delete mode 100644 JSBox/Rules-lhie1/main.js delete mode 100644 JSBox/Rules-lhie1/restart.fndroid delete mode 100644 JSBox/Rules-lhie1/scripts/app.js delete mode 100644 JSBox/Rules-lhie1/scripts/colorUtil.js delete mode 100644 JSBox/Rules-lhie1/scripts/extension.js delete mode 100644 JSBox/Rules-lhie1/scripts/filenameUtil.js delete mode 100644 JSBox/Rules-lhie1/scripts/init.js delete mode 100644 JSBox/Rules-lhie1/scripts/proxyUitl.js delete mode 100644 JSBox/Rules-lhie1/scripts/ruleUpdateUtil.js delete mode 100644 JSBox/Rules-lhie1/scripts/siri.js delete mode 100644 JSBox/Rules-lhie1/scripts/sizeUtil.js delete mode 100644 JSBox/Rules-lhie1/scripts/socketLogger.js delete mode 100644 JSBox/Rules-lhie1/scripts/today.js delete mode 100644 JSBox/Rules-lhie1/scripts/updateUtil.js delete mode 100644 JSBox/Rules-lhie1/scripts/videoReg.js delete mode 100644 JSBox/Rules-lhie1/strings/en.strings delete mode 100644 JSBox/Rules-lhie1/strings/zh-Hans.strings delete mode 100644 JSBox/Rules-lhie1/updateLog.md delete mode 100644 JSBox/Rules-lhie1/version.fndroid diff --git a/JSBox/Rules-lhie1.box b/JSBox/Rules-lhie1.box deleted file mode 100644 index cd38bce26dcee47b555aea8dbdf9524a8b49c472..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 211134 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

w}gb0 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

1I0?D6jq$i`$`VKh} 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

&p|}(0#sbV@G=_-*Unm>HK=V)=IEAZ(gSE zRRY7Hm$1=LfY2PS*J!>otXF-;>u@|%Z_4o`cI_p!o|vSxtg`W|gT-m(5YxgD)_U;S zdM%@p905BbOR4hPP~*fT??8OFu+T-{svgCAKBE%CS*W%B+GGAGXebMn;ZM0Go{&&p zXj9C#9-mlLFPM0^e$f0~A{v_bc?%=sQGdhn2l@|K1lp~bD{o(LQ|u{-=>9EG+5`qq zC-dFg&~+RmYw?#4l>QbdRdCeBc;`gGM`Mgx|3 z;Fy5+FA*a8)=Y5x_H2`_ zZ5&X60t9W3rGC&NzmX(s(wih6zL4z-Cled>4*~3dWEr#t;R^Hla??hwasZ*WRZalU z1A`*jF(${q2kdNk4ak*=b&-9reSHe|!jGkTj9XbQ)IH6SWpS0y@3huvDOyn0s6QLm zO`VkrbJP8)O5($&Td&Xe$a*5mU4+o-Sew)|N+wV+Ke^m~|J((Uc!JO zNd+sPI8>PP_B9_>Jdy|HoBA*z^1ap-hsr@3K>`h5rE+_D9&bM%!z}-AaPDA$^219r zA@n<~lkIO1PS1+v-sJH)X zI|5jQ9sOh~UtJVYOA(ZJa)^I@O@Jb>`S2S3h;5d5rhiWJe|^t~j^CmVS<2`DzmH%D zWsDGb906!i1H_ELr!4FiLZ_7&+}4bR0mi8V8WnCvSz|ugR`*FMDmdAuw5ym_=$m4z zY%KRCqmXF7A?v4l`&AO9W)b>-sY&SPaQhE@qc8d>&Mkyc1DJAJjx`bED~D|Nz=5-| zB0E~BXAYwd{1~C*Sg@zv1j)d-{hp)f6}sWH;F^sq(q}@J`=%#L#b1cWaAboB&7B|xhS}W{Sa_kXjwKtRVq-KaxTaUX)q>mOW zp~bozRg>CWKt$gIzdw0U+B%)wV$;I1@o*o6vE2gZJL0sHq5=hsp~()F z5{2%V+TwXLwGYBK5b31ys>fX|F@RmSh?`X{Cga*N^~8%}jsfdeSHn|UP8COIjL*>S zQ9ypJjZoi208w8bG4-~;>d0BDs(+j8s+3(3VfJ%&2)hi&{e%7H5fx6iFD7cWi~QVH zTyT7oXqF5q_|x*AYt8Fmo^~2-P0PlWh@D(ma>RMTA1@9;p7WET(8^f|gcSU&yX2SW{I<)$-fl{JvwUk4t-^Y3Sd7F&XnQaG*7f-oQC)_|D2-~? z&Ek0qJ-G+=HCldXl(k>1P?#xUJw+L<)%N;vBAH5ny7D$LqBL6Q_-)cG*{Sv~>C

  • QM?HxrcbhOMUfju{g+t3{KY?k___dGY z`EqcE$)*kh+>N;Adw_b_OW$ze4gE+QG09>5Cn5GskqIZe?Xq)e>)#iteSg5{W8IYK zGy#6J##8&YQ#F~NzX|<}Q$6ge#~HY4+}9M~G&;xs`ZV;T(7^WddqCgfdmYR$sfCu# z(B5WIc5$kE@^ekf{7@2iEw4!K9V(vT=Y-*pN8c4W^7B-O(+k1d6JQg=KSQ4SUEB6I zYBXXkG%XuvqJHEhIj^c}xFMo#Fv8}Tb~8{Ef7#=vrbT4Q#DZ4{FqcdAF2+$~sXE6T z(uV!ge#t5I*KI!EY@UIc9SxpHE3S|}`G~yV7#f{X~ z|7I3!-tE8K4W^Bj42u>koq=E&lKU9=6&6*RJpf?7y7tF<*U#r4ZM`2QuZhrB?Ipz- zcBKcbi>MS`mg}<(i2K7G4-m)f3kZunp2Do^5xKtVdIU6bUz}_PDdIe~m+E@)yYQHg zx^Sl}_zJo(t$YtCRZkseE?q1MuQ`S482)Ya0z&iAE6*b7$Z73{k`T!Ji5f7a5k}XU z)C$h=1WCdUMg@}#d(b0!jAVt*%J%@45@>y_uHKNF+w;anwtR|&k)`zJ6jlEKcdF%YNV)>Vq#T7`4jG&HnVV?w zuHMpPgkzp3JWIc{^=}d(Gd@REl*~6Ank?uUhb5hMcz#8x_1R3xB{y zvKIm3+T-Hfh&mHe{g%se4uS`UcsVWA>+4xz_QN!ZQuX7I_V=xM~E4=aqh>zcjK zr8sHIK_{d7Q!wlpF@`znM*}l%UHcYDlV-~CEh|-$r}SLld^FGp#2td9HO*7uPUFCu z|KU2s>i~MaP+MJB{YBc=k%%`MwfCp&uJ*qx2}VnRGw#+;twl1enBin8>lbyoq8@$h zwecrOR8k;)?qA%_e21Yc&zpYu)M+wxBlYqRRB7(5 zc(k19E`Y|D70gPFr#!8-v9JI(QIO>Ds*3(2KsCuiZin|y^C{ZLUp+GLlxHmD9m4=S zi|2{Z@Ea;qWpA330_{tQvyO&=CqI3yoY(T_3AD1fvzM)t!v3K-8i;kRsg9#0q(u57%hwgX)D zHEV<|nO#P=m;K+_eK75i15g329K3VVF2`4uaRH{3=m*txc4nj-LD zchP-Gf7C~Q4V85I9Ov9Tg8d8^0I}{Oi!)sg=9{sRy9^OpSQTxqenz`yA@!{64Y=+% zS`4A`ZI>dy8|eX-vwW|r%^<-dVfKC1mbU~b{Y9I6B0dMY(ZXkWvD9Rft3e$CB5IA( zmE%GS!aM#M-fh8f3xu`D=vRc$e=_6C&hnU@jJEyUdLufeVRKYKrd?~Ikm8UZI z6@2suhH{1G+6<$oM~w-bs>&FW3NF94Fc-?wk78XpGQ+^4sq=`JdBX(=$nFNYe9hKJ zM+BAI?>*8}MHkH3BgRaF00|jYg{u9L*E%0z@iRxGJ5SHpg=&ctwlqtT@4>TZlQ3{K zhRclKBUn$!JuqMHY9LhM(jZqA8NA1ylZ_f-#@8G2V+AGNcJSCw)YExX&-PJ$%DU{_ zWbw-9bt06#Gi~v(H6!M3_Z(lY3)ZQ~*fMPHDea#B7JY??L)P#}t^CMpU)sz?@;u|C z=S+6YiB{5u6G63?sHO_4)S>eB^pd0%w}lQM3Pk*xl9cvT+VG9^@CJA={nsyAhsJEY z0#{IUDoHK4qX64F+u$p@)9+h8PxAFfuv#i(L%nCrVw}Pqy3Q~y-W`r-#JYavw1BOX z=|}WZ@joiZw3tHJ^KfuM9O`qmF@Oba`}1gke$5g~s@2gNg-=4tE2;;j?PMY`tIrq} zQk&x(D^mp?m!O>}|K|V@P3K~(6wQ^mKnb!_&tF|*HYR^2Z3WeqEUiNdRNFJVEz2Er z`YE7Yqoi$7jxUU8PGpk~7nyYjWH7#BdZ^4mswOzMYQ_)Bk0@Q?5?|@gp95B?=l}TU z?=>jNW!BGZE;8RWYE$J#m)K%0caGX2-!k;U9eQmmbAF{0)qd=C5TQ!!jq+QNb>KZ3 z(uxi);dwsKeS6WiZdAW6yDqODfoDx0dJlZ@*QDR7L%#yMUcWli7}TM=TZ zc((Lk#A&8=Bg_uZhB@i_})4i&5{Nl&a z7?N1ijlK=q#rNrh9%~9NWBTY;1~SD*IE`Lwn%_m4yfatRPD~8-8DQ=hCGE%MZ~uY| zn#kF>2bQ(oK(G-jkx?|F_W*Rt1gYh#BQH6oEv^p2XmQo`@6O;o^dP+lNR4n4VF}$A z*WNuI1!3{pT`@IpwFMrQwozz1;#x31w1VGLJQz0Ao#ZlL?e#v(^7L`^j&j;Go^e!G zXRBrB9Z4muBICk9;3_>dUQ*b_;LNQkia%rQfy|_o1Nvt1Mcq$hUq<*6p`1A6!)<$c z5RfgobKxYiiWF%u?7g7i`Wd){gV{C>+iStz>lrW2hK>k#7Z_Wq{2s7{Bsf3~ke%*a z*yjUe6-7WcN_#e@ntUp&5m2Kh%|n+-+)y7+dQ(j&bw*EoQWy=v_Y8j1($Mm&HvXbL z{$`CbMYe(JF7Z5y4v3@x5RzT$Q?82RVu`|OkndZPU@C+ompvnA1 z7VGOY)B3Ha4M!BTw)4`>CUz08*@+-vIi?8w6t2>qg}-ysGN({cXvHU+q)L%;@jDF26cHaZ8K^1wQ-M}?IlrFwr zE4NI(@_G(Sf1ak@!G)-@yn&tn+GR?AO%jDnAcG_%U&`Gfck*z;+1dQ@%hZW~Qy|Gc zgtUccy@Q3;T&v77wKT-gSZkx`Jg2$!hT5*i5a=PmlEGTlPpcHf_is1FLj%M;;mbWL zB>IS@JxYVZUqKT_UmsKP&@P>We~QwU8rnh#Cu`XoS{k=wxF9QW*XsfrS_t3OC|ga6 zsJmpUdWj$d28ZjFQzM3FefC&VSm;rYrq#x* z{NB$(yl@QbpmYlqVXZ46Y$R;&P=H|6Duo!q~*0OWUn!(c-eo-AVYt42qN@vD|mG@@BqK+VjQuoC%Oo zVF7N$RMmOB{P8@RY7GgqI>UFoh~u)lMo}8t6VvKY$%v!o)OR$koQ6pVJ590OKbW`f$1?c>KT5nKCD~@XomGYKq1Onw11fQgp1Cfr#nF*TV{jm z)05*bgfx+A%5RqQ}08B_D%723*h9@K=;^%pkr$z^lg4iVhMWDGOY z6TFTYCdya_Np|HbY>Y`kfBaYqipk)Y2;I@&3=2OC7Z4M4;;iY~6zi)x6F33&CwL3fQCp8!I39sQ$K)I0I3@(~?1X720z|;i5Wy-iNR)VKv4Z;2^Ou2144D8; z3zU5o^bJAhy`WgQ{fPMa=;fjJ;_>6$lXBD>Q8NUtxf1&B|BMc}f%v^WSIJzuu%!36q24{a#tiDkI{& zSjZIft}A` zRd({Q+Cdlc4cIP~G4;s{yF;g%_2mfQ)OI=AnBdopaz@jZD!8hGUcwAhXp~t9$v$D4 zD)K|!>Ic6A8Y^{=Pkk{G8?LE;IzJ~xbz#pu;B1Hzms+raLr+T5qEs*tzP>OVKlIWkFUN>*EE~mvgO;o=f87YYUk~b|_*i$E} zQ<~jV0krmGux+&A$8!~!Mun-W(M*b&uPQg$czvp?Y$khORhl}ykWYpRIqn+?W~^aT zzXiaX{r;P2Fx%l2g(`I(S$!0ij_-%2V-a)FX8LJ0wK6UplSx%$7g);EeO5Hg?kSwy za#sy{pq~}p&O%`C5KrwGeig2KVU1*tFg0o7#z*$OVfjW2-%<{q$D5A-K@rFXQ~@%Y z?|c8D2V?(}9*+H2J8Ap2OiDWp_U?NY7_=k)KeQmQ+^9m&4i7U<2D zpNpXG&86(wUf{3ny_Jl8isL@=>$j#~u$_EA`B^hMD`a0X2O5Xi--zrx zKDIu8Odu(~b0|U6_Y<)yQ^YT)&X2-Jf2syYa$ae=BGZ?3mdSjh`$?}06g5D+uz*;*S3+o4DMB-oF-Z`I zGO8m?lI`!j(S$$=8Z&rvw@wptP$v5ewWIk#YfLTU^HY^jSL`f8+ly4KlK9DnrxGL6 zNB$@#R<_=_DQjZFWda6T4fPK0buxHG^l^GiR502wA6ELIJnMm{zj@3T^uo^um;(4+ zaR{JYO^kKP7HOt|?lCTVwi@}IIxSzfex6WPTWSS6uIPtd)Jz2(NbMeWDmQu8 zP2#oqmFB?qz&}itv#qNYRbWKChtOqDg86C;!#_fhvj{0TvntK8Y{`XsekJF)Yr=wH zW%j4EDs=$)Ui1&b@5aD&izJ%nZcp>x2QO9D+yfY%wu)0qw@Ke@ah9#Mgvrm&vT`yV{n>P3EuW zn0qfJNZBb&2zM&?q?8lX>kM++BO6A1+4Uv#1%cIYA#k{;inV_pqT-sp>&0Rp?}xq$ z@2vpw6?FW#{z9EhFr@I)lpU>FN2+ zVhuggEZI2`tVAAn)KMH~gs;IIud=+qNy7>ENKXuuBN{j5N(EQuJq>U=@O9``FX#;e zwo5;>{?SgPwS0W|(Pc<;T}@e?15q(x@1`^!Rm!r6xGZDaM_Lp9nt%P%H0TL->c(UG z;A?1FR2ZkVo|XG*{;qtOtzq?V|12TH!|!33magH7h(?!obk3|y=_mC06R zLVUKDDurs$oD#`J6@994Rej}pl3l*DPdF+jni=P^;haQj@BU+JT>i7x-aJ^#=^CgD z+mS}z8Z;MGKHR|C!X?Ej+<~+m+sVdz1(WT>!Rs_P94YnxJg27rpExURzEY;I3(0qEw}5co1IqBMNG%GV6vPH%o~l4or1Eo9M>9X0ePmJAG<@}T%KhvP<_ z31^QAA2=D?yk{Wf#c~a7>Dli#OSbZwit$UQxHxITM6+&0%Da@*C9?xjG}Z?y;$Pu7oB(<4!Hpi5;KiIv7|b zL6y~UYoenMkv-)O$Hzq1Bl=5Q&_d! z&`oh-j3VKu$^M(^Q}w0vvkM%|g#7R5?}5*lwB zjk_@q%QKu`@>)#X!VcEat!)4N*lf8iB<@OPcdopb4V1SE?M)ZW@XZ(JOy z7t88SqQ(b9$h?DiC1^1fJdA~@7w!rm>#z+R$JGoj5`a%%rjTZkeQ^CY%XJFQJU_2) zQGM#uVfW#3 za^~9k<153y>g$bHjR;l^b{OSag*q1Uqg))t6-$*_3pRx`{?@?{)34=M6y>ITTFR;} zUfb)-Mw7nZ?nhn!!8&A(#mfh;h zOd%WHm7tZ?3G^GwBzQ!rLa6^%Tw`OAm^y|{Wjzi7h0K7y*66lKtqvV>sq#AEtE!mI z-npWjEO*k9(qbbZ0!d1B9s$xkVy|Jg`}uU=pE=`6nPA(#R$30LZH^M(RZww2+yiJP z+DJyYzGrR+Nyzdm_u&3?!qK5il{H=o>c4@wr*L)Ejea% zu-pd-BTLPuXmGqS+75}=ShAl8rkQaBBkoMIy7*Df^5SLDr5A%_a^t;GOxTbg;Zw%! zaG<)HfXc51 z%vg}}u}LNx+q0cqlr7?8Xt`+#y;#(OM#(vgO9XI*+j-ez0?X*uHdwB|EqY{3Wk^gH%mkQi5{0M1a>)n(wZ=~ql zpvG=5Y})%W^0UsLy0T+iLix+Vjaw^JZo5OyEgnF4t2 zd1zXZyrbnu=I^EWy=!frS$zTrCYVU+B1BBbSEpi73cus#SKc8!@2gj;%?avLM~)0z zieL3*uB(`@p?_#`U8To-a0>JT&}tMPJWWeGp#=3u%_#v&C9YnBp+8BKo}otb*`;oM zJ_@kS?Fdm~w}M&m`B1h!Jh+(vS3s!0s9z0=nFJzm6-;O>R*+oG@e2%l_6GFsyrKZ| z31RS{3+7BBSEgzyT`V1Kl;uG_*I3u$0R#{hM6msZ3C+G*kjk}2z4)PtolZY3`2(-- zE|(y{MS^IqvhnN@Pn@=WUTdyj>TtFAqJY)GB)91mqNCV*vFkKigX!0sDhQpLG0f<@ zvDf5nuv$ny#pc1n5$GW69#8`lAk51BO_5ULM?dZkw{=Z+?g8#|aJi^n9#iwGy{wAc z!pFc)|JItrTiZ3Bi9d^>8g;r^!8>oV@md4XEt0B`yd@QltK}edlPk{5c` zuMKTjV6i^@Y~DS#`bvkDVgo*23Bp&s8%=dDcPzFcCFtPSW|TzkNmy(b*zPb($0;<0 zYE0qBy^Cfk&z%d81K&JHkswrir>#w{{`jJB44tq5!Jwk`q9yZ_`kFMTbHlH8Kf~$R z*m@0HrP`K|g-quPioCV$8!ler%`$67W0&t90!zY703Kr<~Dt=L^zCtTcP_kjN9 z;63n-Tgu0>y;T`ihh<}DwzO&vpnlfi=_R%!wv}BhG_CyAE$YV)P zF2j3(aQ&nLOdPdZs#0wQN4w10b}TM0xsId~X6faC+YY6cei)Y~o-+Thp2hs%&E@(s zSQNBo1uwOZRbD=wbb!*r=!TuDeb8VAkd@?cG4ut0wsSTXw2*N>e8j7_Ztz~+CZG8f) zgQ7m$Yd6-^K>|8F&^5Xj)uo>n!uU~6ncKmS?*Ti{BAZLqs@h7*vAC0(un=UUz&Y7k zsow0IHS96R;m`VTe{?xwe>&|V04#!VAqDWx)tity@lZV0c`+`aF zLr?dsWul(Ub&-vTd4Y3xU;jn8(QA^Qc{>zQ(+7N=^?cx@cvL-yn`VHEt^pBXQ2XRg9d!8QBa+;jAjCvJ+I4nl}@FXx6k7#VGLHg4C-qq@1U zV2etRMaJ&|z-M+#+QC+Lh}mtXfJ_}cV1f|xHXPfdXl5ZYlLp@OH9ycPW#Ew?z8>$(BVz$apajsjdj0|2l9^yohz_Za` zA|Y-J@6*lQ%4nZiRa@69aoDDL2&4Nyxh&KAQ22c1MrUL)9hR8IyEnqyt#PT0L>S0h zaE_?lxcYap=G_DJ_kb@H^CG2fyYwDdwn#oCr9E9Tx!IX{fWx2nfcSXUbjdw1+ST;% zyejhNjyFficlbsO&Wd-OhRkzZpzW5n%kkVpLjO_AdjK*_Yxwt~F<;}t)6AgKT&v@I$ijAquGWL2j7>*yra$V2j*g5|Lr>X^Wp*&U1w-<hlP0@vF?lcy})3cRi0R&6%a}oHKj3s7krwnhK%GUbO?$mW4THk>RTB z3J?44aj+l$!#C#GQE8~0=E(hB;cBnM3+n0@P z>^6SSW;oBv*~sdDAO{$}6Hdhfv>|{uk_0x-)NiH>9hYIVS%r{#PWV$IjKCGEx<{rz zx|l|r`hXx1n$a*oyy;IVYFgxJ&~*{FtHJ+@)a8H=tfk85bgfgO^UZI(@};NByB}sx zJ_jRmRWWEEP{hsNQLkx2;9FrM6E`2TOMk}$M>;w`k!`<;p$<=$HQxSx=7jFZyvn`De7B2}kidMf3xrp)Jb!}B2)tg*vtIV*d`~H#o^BBh5-%hF<_drx8u{~yQ zf^l!#&I4Sus$-(WEZw>oF(2HnO*$4Uu9hZuyPz>bRN&Eaw4qAg$vrAhz!5Fvu5lF( zhp|JLRPm4GkWMB{J9FQ!Nt&&Tx)M_-OrO(A_1}F*x%^0+{L_{M@_f9!mi^W8(}6hs z?e~Oa88hBUAZpKU*`QrB+XTjF9DU=MfFCm`@w0&-QP!JO zMAw>ltw#moRI{mxnfLdYOlzX*3f?|q3=Kl*X@t~SXJ>x_8XxaYpuLaGS>oLvHX%C1B@o&NtIJyU@TBu7svs5N6C*IqJ)mY*YIM3R>j~T3n zJVuI4)hOO%IO^4YwywMSB>Q5ub(A0F$cWYI@2Eu|YuJz^yr=us>zKJ04I%Cvu{`L} z4Z@F_ZCKDSJC{f%eduzTQu51!p7jjL{jp$fEZ_SZs{XaUS)T!0l9$}>Z;U$K9RZbl zXPA2?ys3c;272TfZ%BPg^WfHc;BLc!PZVrq{~+s`Yw;6$zQgq;$QYOr7S?_%(na%J zN!wn=pbL*zMw10|>Ka=9FC7v3?*U20eY7YxH1rWeniHJ*YkN=gs-6$=Wro3eUapt~xy9g$=lho$4A@?T=&nb+ z3Hl^I41894KxUlh_`&_)7zjH;sfBx8r1qsPe7<*Qr?In$_A*nLmlu~#K#?c8=ivVz&_w`Bx#wE6%EfMcli?n zj=e}cI6HNop9};Vq#{VRK~MQzP>hcSRsa8wK573?HFf)^t=6i1xx=3kD42GrS+k5i zisgtTo}UV^ZOjRv3wnIGB1iXzO07s!YlVdhV6*whQDu=5XN=wQfOLkPNS zRQ?LU^50c2Al0Ii2Qq`cZ(~y1t}m0>W-`-=G+R3y=Qc#I<3D#NI|HzQ8-j=)SPe9p zhHNsw?J1Y>GxJ5LK&=FZ>er##7`ikoFll*d;8Rl86H!{r@`BPwX?5oIJ0bHQ zGW*b>F8?z#^nX*{{=X*2|G&(#FW0)tgmS7n#6d+*5;^_ze;#p6S$oV?;REu=iR<|t z`?}{2PNg$wOasgMrqQR};d;|>M6mu@VNfzKQ~4-^{Q&EI6q*AT%6ShU_^gwxE4=|A zJdU=}fB0B)GU)_bs%WC~Rn~ab$0cb0M|VUHbM?d6 znE;81_)iAzfk+YOrTx3dzS`l6ZW-d3QmhPP__>1M1a`HSj#XTkaTILZh2VXBXu(_zvli0834+*fs)`P5|f#nY# zbf{n|<=+#eyz{& z#x1S$V6$(%)qto#9=MW#TwZi7lH^n&0--y?;;nTluiG*fo|!oE47}Q%EcF%-Tqz~# zEMl;x{H!ejYFW>0dPU`;YQ()t7v{$d*Nz6pzO@aJ<3>nl9sI=kZi@9&h)T5mbra2_E18{uDRt6sryiZxsoTm=E(D8x*HBugv zJz~yk!{wsS8-3@JRy-|;KcMLE=?rezPPj~PL-j%N{+B5vvL$Btp8>$(hL6kb}E5WB+zBp>+pmuqgyr%xHm zygwaAK!9$jT+8sp19_7+U zM(Np|lhSQvNkXN%N@Mqa@Ohi<8f(0EAgh*OWsqGpy7kl_Z;8EGPb<^G?ZRpCY zll@Kh)OFhXA>5gx!5I#e6cy3cC8)P0u36zcyb)VsbPC|3FfU|3l9FvWdFyhmEmOE*!2*+i0JACk`KPrC>~prIVX@rSo=7PR3^VSkiF3|0oAND231py8__~zt)8-PL#zPAC6KB#y^tz?RK+z<>gY& z2e(LGwo~pgVlgK9^4Zo6rToR|m;3w;$CmG74PUeNq?w4&hXBCoqiZSO!1v zSnb?i@y-iiEt~5!S~mT~b-6p4l|`^fQq7HJjUv-+79OHn6w}zVciaDPes-&|ggeZv zjTRq1UNpkR{dR(bd8_eW)jhw&U&yy`2me!U0?x${hn%GA{kuV0N9H1K6{19r9OI${ z;{K?+@b!$G8SjNY8_`0`DZ`3-IMM1WTBalJ6%dlSj*>rDKBI4saQ}L7bxz|54fssf z`3M}rk9?c-?(=#pSH3A}G>Y`cBWpwYj_&Op`ml4B(tnoYZ|ig_K4=Rs!xPvSrU^wOQonxE?AEq@`0FpP1+3$uHs{t9-@(8a)C;3jzMW%)~t0nd|2!Xp8&t%_(fvNbo4It5GoY?1pypZIkY5p#3q? zTOO9|tot0GV7iCQRROX!OBI#3Rhu2}thOkkfx9IuGB@|=5O6d=c}gR=(i50H%4r&} z6=wKE$|QCYpgsHGV*odKN!e_CF@gpn0nhQ|4x&&;<5`6l&6JF>G~Gu(@8KVA8?AbN z))I;Zv29Yk zr5Badc>mOam%KA#x7s^p9rYNgQ4Qw`bT)B<8q8NuGQWd=2h26hGB0drMV*#Q35jmo zoJi$vAN79c!_$9{Ln}0Z>j(p?4LQ`|LCCrpSLj%{Pj4wd`x;m0YV3%=81cr$RZ&YcjcIk#zBA;lWc#DJ)6XJtSA9I7(Zpmc%5mgKu7^n z7cxry4(dVnH{s7RJ=^{DsqbA4-3A3V3qB4K6|ja%xBccgfn7wGIt>5uqW>$%PBOa; zWj(4^k`kA%=@xvyCNgd!+AQod_a=wmn9FV(DKAF{Px#$FV$NRi)mJ+)le`XlzmwW( zP%Dx?wc`JHHL_9{$*iw~TI2f>eoB3}8x9I+rLmzU8ZE0)&@nn2j>wzqEfD$Qat}}0 z=9K91tcP<~#+~#tj!jfg^vzSb(nkNU;vvUfo@gLMoD});NHZeYOB`A>_bRfwcKt0~ z_j4=kwBhP~28Ek!{#nI`#3E!T^0*czs4}IsctiJneA<)+%E~0UVF6Ys$ijHVoXOp6 z`;(?9!E$-XX4gnv$QkFWo!TdzrmOy4F=b8_$`qm&1tYBwcJv0r4{D;x=TpBByFHhx zr{i%aZa6hCi@Fb3`d|&0mglz~kk;vSg>iw$B`TeZ`b9QWi>QL z%6wW)FJlhyY>uL2d^TGEFNN-?=R4%y5tC7V!w-7s0$k2z$Cb|mJ_2;d1M=rK7*B!^ z^(GR8YG*?OIcr&jn{5#!%L89@R&Pj$GF%DH2P-|q>6#RU43m!$#=ynx4Xg^9_WkD|2|z2CxVizw)}pRAeO zjJ$b+(k=HLfvr6>Ljy)fe`U~HO^#r}HOBZ`;zXkYa=Eb+JIiC-nz%VjX|cx2*2c$o zD$qc=2gV`CIFvtsc6kzYf#84(@@hd&d}$k5lQF|9;hNzL(k{&@EihcIyq2G8{&Km)Jx(ZG)|Frsk@>AYO3 zy<8U#TjqtY@J-7jQn-rqBEEkxTW7Sqnk@E^Tp&6A51-ZfjAFy@xJQ;E(%7^L;D=}1 zhOp??r$&el6$dDXsLv#^+u%FU zYYYdQliJ=>poAAcXS-pu2`;yoiHh`nA6;=k?~w>=)Ri6FeMJrHj0DSnhX)r~yZYW! z@59nrwOEhND#wNsbsDO-qv$dvho6a$78=fdB|A!ou}7s3_SzPW`Qb9hFW)F@jSFa} zc;s3$$ogpxfWzrGqa`@9Zqhlk(ZFYQmHOk5^z#YD8~8(_vn;}#!4;;cPkB18S9TAp zc8*`gy^Si)BhD4QcQ+pOm@WXk#g(~vRDjrQH+t9{W#`=)Q=#vHvIaPVu%}22HiLbz z;fr03mb0f#7I9)-^6>%njLtDcHoz8W*~xy4e^NBb4)BqY}r4{_fI?|DQ@t zjF^r#J5%>RAlb~hcEcys+1XGui(KF(iI(rDE6st@2*YB*&g=Tw60K)7BOVwQDhO$t_XJQOOJMHWw66P zb0z1fZb||SjA@qZd(MIThMS?y`cBJqIFh9{Nj4WxOy#n49kIV};^Dz+JS~yW4#U8w zT$$HP;2;wZ$nJ`Ar&P$>h7l-ate)u>tBUs{dP@kfi*&o1j6hQ5dyIByYY#DcfBlvl z3k&+HaPMKulAyTE86mM9=HJJ!(iY z3JvV6m7AC0VeYYQwR3d!TGjvci}!2CU+e?%Hh$4&>H#NUY(z=t0_(U7$Ni`H^dtP$ zv(C&LQ=9k4zvDS|*&~$@pE!}LZLN=)H&FW#g2X?j?-2EBM;8r3T^la~@~hzYu2??n zeqa%ih#l`uJe(z`!LoqANskehHbL0p-cNxqMd9Z?o z(Ljw+lT(oqCO9=VW6-@RR$v_wdf@$?+6BWR+~>g<=LZeogD0(FX`1`O+Q@)s;N1n# z4UTrdIMWeV>5*CI6-`Z99K6StOZ?L`uYUZGS>v};opyVi%MLBn@*!|?jMMblpVxK( z#f-o#qz_sJ3Zo1S`k4vxoygMd=-%da{=;xTG0?Uki*l8p_U~Iys;@}Zlrb?@_9|T% zE%A^YQ_UDlz~z*ktxoT+ObhDOqw=(+Aptb-U}15G_R(++ftXm&TttH!Z2lgp{gr7; zc{>`obsG7?$+K+W3c6^(_x#mD^8@{(a?RSBfRTq}%@4cCw+j7IGm46Yh!7Wxn$(T4EU!wW+1XbL@)-z(SxaOk@I#m*s@JEJ{|BtG1} zxEW3PsWox0Ld~V#t}VSQBs+X@JlB^m#rXZ3yCQLwR0i2m90>arIZ6x-#6H%+*j8s` zm*>UaIvRLtgdutpJTx%uG%2_;7>42+KfRH8ZA{qnAfZ{@<%4c09yNB4zygv4K8^;0 zk&mBwB}h{o*y}k_>=bLh8id{U7rTvWpH;8O=sjRc!jH+#y%%t&tvr*yZrtyokJ1CZ z4k!2A#o9-#G3h_{SpdrooOkYBzBIa5dGxblzuhX7o$n@v%JL1KW)Wl^ygglQ@i~D{ zqLlDDjn7WpF>z+iTQoq^tTEh3MDXL=Ypg&R?I{`vxVl~Ax~izqrI%RpD*o`p_v^za zrn7ztSf~Hd1;YPw70v$*%($GSz!%zph`W0Ky_-iKG{>KkOy(7v?9aBpUXl{}6G4R` ztXO&2V;0He(EnZ)Mfplh+Imd&)%_VUT;adX#%j{O&OL?#|D(Wv0REYKqx{R_k5d0A z^mAVc0#YpJVfXR=U;Ge<(Ho z3*i51>lS;Hay`vLEo3y&fX7O)T**|=#10>7*YZ;9V-dNJQiohi6lDT2p%fF@5ni=Y zax&Wm7b6{K&SfOp0;m8pRX7bGy49UBqG4)9K4IloUsRHW$mfutWyX8of%SJa+U(DgLaW=8d zOG`{MaLK*T_)_6Z>Q;NfLZ0JmvQ3ROw}^E)^*ty39$~NzT^JGGj7-j^SQkYZF83kH z!MrSJ=?&z2%0>?Cc+v4fRbS>MbmCe6GRx5ZR+*HjqL=t_d&kyml&guTT2DwV-n=my zDAn)b?*LUxc4!(BCPn#j;QFY3@H-{u9>u#F|9nIi=o*{6Q-I{ic{wLCBO4-b>tcH% zr=hN05f2?RyIGCiRPS-cfqk@^y_vjS6RD%HY#nPkhKcmFa{gf@&;LMBDGWkiU8qQ1 zY()Bf!`1dR>cSIL&AiYD^;Raz%B)!XbjR-*Y3u18Bg-+TS) z=_V>Y=7bkyYos0CJD5gj^P<>H+Vwsi45ERF;=>i&)e9{$Itk^IGEa*y=I7x$HqqG= zn={GBWlU%NQn2-2VBNX~`3@7v<z%B6FlLMe90M;7x&ScHK*d)-;*5u`0J@}kNFj~ z#&+R?%!PeEQYUj$v#=ymu4g$h%qgNyn_t~<>~VDUd+*}RZS{gM?jBVFUkx-6X*R4c zLlLU4c(W$Vzc?*8+Qml%`w)5h0W7Ir05JpkO@|Cup~!v@>p$xwZk=2T^RRiltKB)F z*e0jGlY2#(?(@2!j@C`Q7~Edp$YGv3sh@{3hRb@$x{K6|f1`rV8Hbx)j+MAOu*{|K zoxZaj+$uFoQ`naR8+&r!X_P&+>-C248M#ID^;Q_?YUCVm`|bbk*y`8&w(c6eBH7j& zae7ZR)_`}HGQgz~+;bnfqj7XQr^Vv_nd%LX-nW&&Ei^!M!nDjX(qk(Zzij|Pq+B49 z9-#sM%%h^@E)phAg;&x*Ki&RK&YK)rksz9pLI&^tmN3~b%ED+7*0Q+0rvi}&wk9w zzukPpo3B(6TDG>0HfQxX*KC-r6VxnK5EU$a_2k zJNtpEq4I#@%~hM7`DiIWZ!cX_%huc{$wji3={Bnh!u8p2bTYS9>cYyE=XJDEx4_+1 zo@F$yu%9)Ur?Ok0dsN1GcJt=+3-_?hS^t}v?yMX8O!yC!X8ZsvS2P?A@Fo%a$vCA5 zV$Ep-4qT~+2EYBv#_`?!bi=MvdUbpC-`L*1&hWo*JG$9kH7>zYsVy~4w_iaLf)gDR zw3LN1r^9mExhh3oOrD;hfuyBOa|d{#ap#2X54p^(+^dwe!fzQ4hI?_B;5IgsCv)5S zT|ChZA9{AC3XQw?=$bx+pJ5dAT8C7No3|5IgLpbY8TW#!GkJeVLL36_E~#xQgdv;X zfg54Vx~E#)6rtYzH|y;Dlhe;yvprcB8k6B4!0eya<0Ma->c*=Sb1D)xxgpwIJgUm|5vDYj&RQ>h785N%}KHQ@aRB^yKE9V)`7acxT+SZg>Y$%KN3Q@DnW*| z3Txx9e>sLPa2)VUHxv;jGv25wpBCYTx?+v5I{an4%~iF}FvtFJJvcMn8V%eH%bl^*{Lj;-K-4wessS09tx%>8{_q1sh&3q$p@}nztU& z;L|~0D$sB3ftI8*&wKy&e*SevNT!qYq1VZ>^UH0~T-0rAziAg?0|hhyz7N{}au$t| z58DvKW|%#J4vsXVf&FAjl#vA*fJLJCeQWnHe6x5l3y#!2?+2}e{e6`T2Vbp3x7QQZ zEuewHF*I;7tA+-wjKG5!gLQ$~JCUIM6mW0H&c}nOE65VK+5x~M{+LXEVbfy@Tj zVU^5ZqD;=@JZa9zexLzsjAa^}TfCUgy_UW}fiVs@EI9gaGUAR!ki#iUpudD1fUgnO z;)~vB0Hlrv7VZ9BijcbuxTl6$rf$;!Z`OVg`B!4!w+=CUJ`20NOhsKg96@iYlrN2! z=+u*)Vf_@eSh^ynSiOBi+wYNV3x_!95t9Mqk9Q)-5}8C5^mc2%{LucrZ& ze{qKMw<*FpHbvocOrQaxLu_N{aHX)&v&$X=3Y{RNnVzP5U_B2tJC#I{b|2CBqk)Wq zt;CNF3dOiCs-pt zDgu!QzF+279=)w7&gSD}1q(+5XC)aq*&8~U8_36(q~FJys6sj~j5}~7chSIZKDb@M zciMzb3bd*-rsY5vin0)pNIp&}=oH+{?S@IA0m_KolrS`q948LRz0z_eqth!#j$BX6 zW47vJDovPuof-;{t~ck}b$Zv82cx7q#2BfD@Hp);*kg>oHhM|4pTT#VqBSqYoK(xM zuEFg)hCKZLQw-Q2{J}pOP|aufK$>e_!8=U+67zqKlGVS`0H%4^L$ONp{&uA56OXO> ziXW+tU8%%-O5v&ANC7yc4b)}9)YL&!}F}r^opo0Grn`I^~rtirUl{n!e zMdovY3koUHCLJ!f^ww$}oSd|y=68?P8n#pH?hDi#u;wJ(W}v6O`v6~xy+j08HAyUp zL;B~ep?s#KRC?KCNh|2gth=3vvX{IT&VP1c`u`I&!>QEW-KmA>Nq*53Ig|!LXWOaV z7S0MPGg+#)y-9vIG+n0-Ca$+H242r% z{F#zW`(ZS&If@2oFzl>FMpn(^{Fzk4?1F@y$Ns`n+59Hi$AGCZGW}zXZaIHUmtWt7 zlK4Jf#}5)`)E25Hn)?c42feQ*4c{t6k}FCJx^J0NYNzG8XV;wXGoXBBZccPA?o-W) zylFCH`J}39AW%VET*~2-7?~^gdYK19mAJ$xU6y2U{V(QqQkOMw^* zI3@~+^)K#oa-)16qb})|6=)7pIX){2=|;cHMRL%NOwAkQ(XX*pIeU}d5%uOy(k2`}P+I5A zc236TJWSJ4?-oy@cen1F<_CUj`!t_pmqABI4nf5V+uc|?DLRjd z%+SFk`cE$-?ya8W;^Qf$Rou7BIWy5R7>VS~Pc*05oMB8OE)?`~#aMPVD}y=v(RW@};4HtNxFsg|Fq+G)dgO zeEO|5+#)>RUa{uX69!muLhD`bMreGeAn5vF8^(6bxf=FW)w6vp#bsmkwP(z&-X5G$ zPJxC4?x$hnj{AXKUZ>l`L0ocjMN0F8a`GQDdG+43vo5#uCYnu6prBM;xq7ot`5sZF zS{(odVsUe}zkl zJAV)Lyw8&E*rc5j_&9JtRnL;4z)wIvpJ@bJR+p2^P>JSTjIT{@P=m3@!xlnpYzw|* zT`Rn#@>9$@Epyw`538`z>4`$s3@a8&&uD1d*_YwZke=^=pk_O~{KGP=bq}TId%Pmr zB(xLkD!oN!$2{C7qET36!RcIC2GXylCk2`ctXtm_w>g@H z?&5kZ#XPIkIz?_xQ$2$+>7hF0b1tp5{Edv}uLkD5#BeP=(WJ@Y-{uk!Wv6YWF_$o| z!?%6xIP`=$#rva}H~>6|2Fj)91yNuYBxbdox#bsKi)-30uCOd@Y`~WK3FZZVS3+jy zb5&rTk*3Dhl~e2#cb-JuW*>lB)W*m>$NL3ZnmP+PaxJoDETfNfj24JrnKkpCkzZ*B7H(%d-=x)} z0T*zP2_Q$XtM65>0Kj|Fi?;6kOV*Y740Luy)kPw}PMy15QF9s^_)dIo)KAss6rS*%wPt`RRlOd)Lzn0SlY0mbWDYIoPuZtOM)YUK> z3Mwctg7|z74XEP{_T9}ml^$fZ4wR3lo%(LeI}|l#gL{IrQJbeW9S+TYH4XpMX>|!2 zXc{>Mf7u2TgBh}F8PtX-iNT(am5qeTyvdhtIMiP^JTwmdf{eRIJ?^VEHM7H;|D2+Z zD7(P;qWXz;@rCggt9N{YxY@I~=>s0O^`||Wo0&f+3Z|>+F0Yf1LCZQCTBN&$GKuZH zXJ{aVKY=>^GDWzBi$*|nu=4i^wa;~vU!v6hDTpVmDS`Sg9=Yof(m00(8bPIIeW(UB zuz;#rRDVb&LA(}KH)?z$v?|var)}}A_KLT&Tcn8K(+_$y5M(wi>>`tBkMtc|+*#?E1-os$z^08V9UcOQ{aG|6jo@QCB= zZ6fritv23%U|=lAVer{3Iw2!XOF9w_JbCF?Z3{Ynl!?Ors}f+>wa8aLb$YwMX3>lc z|61SK*7V|>42DFNZ)ylok?%#A3U#JdrMY#pN0N1^)lj_d=HI)XPwggA6lCz0h+7b` zzWB+I7=``-$On9PDI{`B@A@gLRGA?y?eYq`9;;1|yzrh}$#BQh+Tw0r#pV)x**DTlp#3YIoW#5`3pn5)!&kM!58t!uQX(K0x?xWo_@4Y?pS)W3 zn5X{v>ghMz(dO;O^bhvU;zz;wNuqV~QG-$*+@{V> zRCYp3>UO_q$zuYe6fL*oc*e5&s2$GAO$JiV<(--;cbp3QPmWszxOOH#zAjXxOk?!7 zL<6NN2HQ4Ca<2B>Z)Q(a%Z`d_C>0TP&N!RT<&Kw5$r9G_S6GzF`kTbNm{{B7nW!8P zm(ja=8B7>AAO$?hgX~wIelQ;JV>Wlbjm)9bXUA*?bIp>hFE|a{3{#tJk*%2uS8S}V zj?8o6bV5EY*Vi*!A38+GO&)O@@9;CxT&{A<9m zPKc<}*;(PiW(HMqBv(Frfddz~yC%`2UN}yzx_TZQ%YI)WQD0JThN@458KUnJ$Fvy- z>aHw5d(?6~L?6Y!l~Y~)^?mZ&W?tC=8Ehx!hO0g@wXtk+!9J$RU&->~$h4$F4l{Z0 z)HiOAN}tM#Xo zObvCg^AhLU-7?KGtDo}#>TBs@@>t|(KYG{DrkYwTzqziigM>@Y`QzD{S&d+Q<0ln8 zeyb3HFhj0XPl5HI;V%Ii@3ddoCQ~Lf*c2Im^^>lq(vGZsAqui$thfF8Qe!*wWM5CX zteh!*DC{Bm!?f?1fM9|waqOqs+zSRvoapXS+qs2;kw!M{a}UA2YU>i1x{&%t>ER=R zA;NNd;aerhoe8K3&9$`F4!?#0pr}1jYTh*d6!L(;^Ib%myG;QaxO1L;Glg-RibrxY zs|#B)MfH)PA>7Z51ycB{=Xp6eG6l+V!O7&ei)>PKBbk~{65E8@ua8vZvKG3iMA+@9 zGc&%?iawVqA=+RUn^sR0QeUh5s26D{C(jF$B!;k-Q}6$0XAJ*tsOXaOrak=0pP;TZ zi^Vwl%bEF7-`f$yPP}0K_@lJ!S>euEMv0R-KI937amxudN}yC+Zs6?wjXPg5ubdR6 z*BfHV{Dtc9Iu{?ySy$)%i|C1JE`gG!FA<6r8gRG3!Cl?)T4tz_H2?NK?b=90GCy=o zXFk`}^(Fg9wi9Kh&U`s4r?bMXG9$~rKHvMEnulf*_bCrnm|}13+b43L<6c~-pA@Su z8gzdmwz&K9R`RvCrf1x^m=br^IXX$ z`8;wFi4>rl5d@#W$E!=0p}2Sydg8W4>}2X2jbn8;f!;S`$eqOTv|4*&mD`@HDeixp zA@ywJ?R0Ek?5@E$EltOTlluu5JM?BlM(K?Oh;@Li#-jI1|FK0V$9w1ciRUWL^7cO) zUL-f_4rj+-%kxz)ODpo}((hFHYX8-e>m33DFT2&=x2kpWxQ zNva!}G2kCI;~b++Bt7}%#1^MD*9~!9mM2bdO+`MCPs<+xmMtQf8OI1=&jXl~X{xFsHN9L1OA(c-NV$ zI%a`dhc$Su@42$wqQ(lxK3k0iE@&ZdsoLkgZzSE7!Gs|(dEiJ(jfpyLYsV^j+>mnl zfzM;?-D=ak1&>+z!)lB#@6Lf+P-IGZ^IH{gIuLz4U7{g+xZ>ETOCi%VfH~%S9&-PQ?%YfsXR~aUeSw#gIT@^ zi_QKg!?{0yJUtMo5=ciCtsj0e)gZ?W+bGnviJ#(l_FC5Aknl^6uh#MElZ_|J@TdgU z^gHS{YWCMql*!8hwP6M|UAt;qi{RTQTvSEH6}md}-9$6z19P>jV<|s#!b~sIp}4)Z zhOnhb)yfgQ)T60Iomu(VXU@+uHbK4L^CDO5%9@n3i|h{VIh7Cc=)E+OQ$9~-zsZ(f zJQ&u4QnY=X7pR=~UHNPyp_eFSBga2Em>0Uo&iNoH)xHa;% z$I_B?<|}Y_BEITpI{ul~ZSFC4wgzjO@J8Rz(Wl;h?b$yrWeOYyilGU@v7W6Xk1S0W zboVn7zY26t-fz_A^4(!?FfE!^j}RMQ^u8d5ikt}9ICNP1=Fj$q5&y0PyPTpl1Ag{) z>AZu~*cHyrfJ@>zZbnDKcQ3iW>Pcw=ZiS`7d<6%!Dbt`6Y6dmlaeGNyG(hKw23kSs zE-4AZKJmE*zt!Hllo{|zw|#0;k5x`tQAj3YNM?vgVKsfCl#tE3ui)`>h~h_VXS3eb%8Dq0m|x79vRG#Ish@lrDB zu1FI0LjUpY#Fi3ewTKz382!3MmW^9kXy7yCgdG3Q6=o@$cx zW?_@lHww1lONfuFe8aCQ<=G?qk4{tm!5{p=AN&Ub3qAc`08mQ@2o*|8_HVQR0H*{2 z08mQ<1QY-W00;o#v8zk~00000000000000M0001Cb8}^Mb1!snWMO$KUak2uqI5@e09Dg1@HclQPUOpi%e!xEq^&f2z zb4ww0u*^So{TYc;Tf4bA3ju*19v>xSBz1oZW1k907lgO+PrfyNOa$|GfkUXJzGo0Xw?>(@}q12J|#_26D1<0395F ze{;LKsash7du~@vFJ}v&x`nHgJH+hIepu4{FRK2%=wFO~tPy$#vH7zpruJYbGj|6I zM>lz}DD@u-ySa_I5GS_)ScZ>-SCW^PQ(AzNQ;<)RQ%Z`PQ<@tj%`YV>^*6?UCo9Dv z%`M2qEy&Bu_eWA%Ku`)S3F46Clj7y#Q4mz)%{oK{~7%2@K`whIWdqwM?(zvun-1@ z86*z|X?m{y_Ctv$m(AGE)4i_lS`gA}b|)H3g;J4H4kP-Am_U)ghj=*93#6@Qtek&` z=@)DVDJhMgPO`!(IkPR{h8y zwl|`4gdc2sAosGmG8(b?V#P7Tbiw&wYIl5PfkpLn_=VE(!V428jtVV^fzGdcst_=z zPHG)ihPItT z;(GMFBHsEUTT#h{@FMRZ^xaJ(-tBH=ZF|tbPggmY8pm>rsyuIFzxk+L0KMgJBLS@V1T9m$#Oo!%gVX~*IW8k82* zU5c2iVT4QUZfml+M`t0#fMTlmvCt$PFMc2S)6Kc+;TtA&5i1hj5#UW8QtcCi_YVZB z^B+G<12qB!LuUJ2M13W__d9(zpDcno{DBg!;RNRNBlf}5AvAcE015G;z~CA(^?2-v zMZz*hLX>*@^fjt%IMN4=SfPYBBXj|u)VY4Vh>67>Z2NptaSDv;w=2*+SM~WUS@43e z+rg}v4*0Z#K|KhAy8i-7Hhy!$+B?K-Eq-+H+rE0bL!EKBj~`P=ltA;m=31V%US*F( zm03@{#Yslp-{HIamS?{iVc#?Vlk76y6YM;=jDD%HnMFt4hlH=@ndGbXre?5;c`%0& z&Nktq2vu)M_vhpu8HoxCfN8ZAHbPiuck@)bMgdir1UIUj3Ve~;VOJi%KgvB-u?Zx^ zx_RAfDkc!C_qBItW>-Hypa#*y7~}S=O+{$|ZS`xSXAYHZRxSIMi8C`9$>SFTkFCNV z?e7A_$1jOE@pf-t(6-*i%YvNvepPBPQOq`7>Dxp zh3&|r!rVRhp|xvwv^#GqMi_bf+|3YpjUbqk(a2za?2k|Z7-Z>2_j{NBq%859DXFG*_zoEbE@3)pfVqe%68VcQW*ZRg`z~tLi1e-K zW-JTYXYdYyKSTq1GZH&e;(NU&{mNJdc{4nhF4xCl)wrSg73HW-9dn+1Dq#1>^`k-a zhXp|_F3`THYWXileO_MIg+Z2^Dl`o^Zf)^5VvolG;UQuCF!9<%y!#7i8lBLqUIOUY zXqw63m4NSUfB}-Bu#^-soOFJ9=uXki$IuSZU(**-a?A4E<(W|mHXrU5gKG5rEAT<~ zfc!2ddb&(CTQ_fwT7J)@Jks7rt>c4oPxPPkHk{s0x`=8veRS`{UMNh0vti<`U7cD9 zO(xiBG-~KEDG&uj>d-0t)~B{59BFpPWLV;Nl(;gb3Rt(Um3F>%+y#b_kVy>6v{_nsk)FdwHwKItln<)i48wRL~uXst!*#7r;O~) zf_XW8%nRzYat!T@%vf0mhs26$Da8h5AL+}yAg2C!pc#%x$^`Ek93&8(wZoWPAAR4n z#sN1*bTzmdHGpBcn_`KRHYG~mb6fGKao<>k=OMb^)=WGKNTE;{N4A>w4KiZ_LPzg- zjdGr-RNHSRj|Y(P5Y&^-DyzkYQCGdWI$HMN_2QHBuzSD_qvdGXKVlBiJ1!^kFU05e z(Q^2sz#Ab`Rk;l~Y%I$T2+fpAE7R=vbjfN<_X&r9lbJL?WTN5SM|=q=URs&Gj3I6H zN~^PXR|>19D*Ay3YA#A5Q+5s4$0cC6=>pQdoaZ3xk~#V5wpJDu)PJ#Uk_mrbisv{^ zI9OTSs{fvY*Hw_Q2bqf2q`*k*R7PNmv6_o>vsIWHDh zT0IA!(-bn$$x~;%_aS4*LHvTcGe;)>g;d7u&^oo=tmTUYaaS}CPH52&%|!3ML|S#= zRWmTnDtO!@p2mA{aOmtg6)1?}=sT^$7qyiH$-d&TA(5xIDX7-V8*xb-Y~b1PB%Y~a z)mPVLo83v*c|$8DFY7%g9X<0zl|mJx{>5+`W#}`il|j^>t9?9BhT922zJ!%(8#zEP zT{_$uZKyh`Pf1xElMi7f)S9~!k_t%p7WaZ=TN$qtuPrn4+;h=-k~#OjdRg9z%xqk# zn9ODm9H@tY`>h3@ns;za=Q(o4ceg>5P*1#+SauRx*ATS_;epzBnjy0lDVBTMKUeI! zVES`_RHhGg@!JTfbxYQwKQN_d6;OYwjfoOC*rvx?Py$m;a3)88P@ZI7&uqRyw$YVK zZ@@L1M4b%bh>d#tO{9p-ZkTH9)2c)Xf)OZKt&N_A{K6eb)v&LV?mTOi^=uf7z}I3a zhub}zX(C8JjN*WzHEhMv?Alo~UJK$#iU0T>o5leywuoJ`sg)K^PCLo&Lui$+tm2la z-5Fz6PatC0_uyLa63}JX#ULr!@PCtF=9vEj7zn=kZ4Lnell@oNroK6PFrfFPKzLq%_TEbIZzS=*)cZl{0*&)I zo(H`cV}|bL&_*AmODGF-$WAvoMn9`+a}xN?-n^UP{3aq5@3tYO!&b=cr_F+zwL1+9 zlf&l5qXyF|$$!PZZoinjW*S_YcwNVp%L@zJ_7*p)6#Vf<9B>lyv!pHU;g2?HTpm}) zF08HDBpALbkww!d@S-3~9K)(^Nx$?Ao|`@)nKqT0ZK2O?B=HA0wGFz40X54{WNbEM zFdotc%e6#L0Vk}fk`7c6L*b+RPh|2lK}O>Oxoi$mQMO0G&YpP5fiExgb+^;gZxcp*2#z1>^u*t~j*}WorHy5+7C*g?JFCI+uGHL^bE28qvngzXPKVBI zU@+0q)<~Y<;(G(iR9-pp%zG2SM8f`X^0S>3`Oe8RReqPfZ8d0X+9ea3^xp5tljuJ8iKfu&KpDo#ESOa!@$Sz@g48S87VK5)v6t2MG!FFl z#zAkI%K$SZzvxSX_C&sOVGW~KA5~;>o%jsbXR_>EHQ%J zssEM(f`HK~(6RXOig+hiItu;}riy0kx4#A#d|o80m_McD`9AZ4TGjC(sHjG;#$p&j zc@eW0x$UTHW0c`R{3oFpRxo(x1zGxU@bgb`#|6b_*VdgRhlnpQRHSRNMAMj%q$70{ zi>=qF(~tXG%A$9V4qY{q&`JxB0acJU6ialJh~2tEX9aPDD#G`xTRlzUn7NyNu|iM9 zS5u+~`Aa^FpD%i(ntOV5`s2~l0cfPjlBHpaQ(G>hWV~43O}XDx<;PXy8H-3*Q^w1i zd8CptJh*;Fli`jF3H(#L_MX@%4b^ZUElmpt^{rz zd9f7euAsG|yPxs=xm7e(BJt(&Hx1rQzyAyY|7Kjfd)^x)_t+ZZiL3t*S6 z;JNnP-5^CEUA!Te(!mo82T5timcJJL@Y$eKlwN=g70Z$Jr}Am0(3@as2CG8K;>4@x z_~DT9dRvPr*hI@z^>et3Lou5yN%8s}*7VlT>~QnJtF`jtt6Qb}0!zx59rVg3kLzvS z25#aDbfD;tb5V6i@a_;eCNmU|d=4m($cXK=5#%^2ilz|50Wu=!zeY~A+c@TF)Li^Z zT?G;k<7-cz(^%r{w>Hhi#LypES}T{HsOVfq!r?m8)5>sdzo87?s>^#XW9XiVdpXpyrU$*VaOQKHn7 zhK*;$3n=jh+#FmR;LU6JqjHOXZYD)bd%E&Bobe}WQ{Rb=HSG|!pYJ_p0MJ>~z@N6y z{adVtQlP5tEIi*K&O;`|U+&vMi;j|?RfR{XI2Gfw9AC4 z=&OzLTPrdkMU~DeWNtXB5BkfjQo6vKHmvvS=2UKr+L=0LfeNO+J*xYj*%5|b-7z$n zbpMu_Z*rQ5jSxqFy&Qbk_fpZ=)>sxdG^NJqWO&7?vw6<=^jJ65V{=hj)WXy4z_+B2 z14a?k_aLxIwVp|~gH;=>DxBcW3vS6w<5}gPZ7-xHkjdgpc-X^eH{B*wZuM!2aGbo2V^WB`M7NxzHEUs%LZEi{|N| zb_Ua1?V!8u=Arqcvc3dY}!5~AHr#R4V0alv(nG~^r07Isu?qp6=}VYKWyYw z=tssi=9}(XS7H#AN2y$OgotOp@qnf&TK7t+=6^H(L-bh=uES?$5PC9OCUKqr`=n^y zq@ZyuX@fGmeme<9Gwn7-zY8_b*oDxIeGLywQsZUxVA2VG=8mc)O)#+|Yhggt-!UW_w1T4UBn>sDPE?y-Foii8AlT z-Wfz)+()kX|F&j15J@i9&wZp#PQWgql0q-};414RW>%z>Z0+AQkJY?+zEtbCHniTj zUYg3J9KTgdG3Jr@Q8{6rUQL$37Dkr$owo)_SqkHNDmWHC-aw6r*Vk337`)3zhfc!X+7kPy>*&9X1dmzCnMXsf;-+}_4b9XS~sxp|pXQrcI=d1Joh2`lE(t{kx=uZ7?B z4G~7{`8z(SBe!M2dNd|=(b&15usQ-IT!_1St~#PPudT{@jy2tItm($G>{5o@>eaf- zGMhGa=kbhr{8nrM?K8mS#53FQId6sS?!vX)DSF(#rdn~RX^F&XMJ$xiUc+5p`4m0cFJza zV^z3f+QyQBI*qthVpkERmrYuBJqQ`%YHSJ(qH$dpba(n6Cwk{4K}R+p8xXY2bp#yD z)#&k$uLl`sRch*4SVpx+f9Nt7C}+!QW|CGV*(_4J`o>4kz|CyHs}aXE2+v8TpC~qR zzUTxlCF;XX$DO^l5!_J#g;qz*f;*Z}g1@b9Il3)VA}o8pkToEqXd51}de|w_$$CmH zDY=BBo(JWscK~&9x;G{zzc-(XXhVR3@t!J zZR6nN(CYm{Y=`e{_>I^>*G^uehjeU)?H2aM0|zC zXApQR9Gfp4`i&3%gT8pDSz!B3dlVKcn|ohCYaw2=mzmv>sv}cU{r7iKd_Tr@O_i&5 zRAWa<>Z=o|b@ymNU{Ma@`;HS?hxTZNF^*_H`F7E)`chLJCkf9xBENWIs}h|P1^QtT z01E26Yu%>_=kM3$8bkIcnIhbHF+S@4GFNNDmI}1XZruQ3Q#Bo~`)IeJEA&})W44?k zlqwOglLPbnpK1+usN!?mxC2?_Kaa8aZ-bY3%#PLXr&|$((r_=8}lPEK$OE zHa6jPWctN>;V(Q0Q4s1BpjuKznmIOn^oI;nOEX7HM+xwZ1tTSo=uhME^lKdS2Yu{K zYhuc#mz%(6P#5dFR?6&bdTY^L zf`JEQzIXn9`aTZuyLgIF^+R0rqgdQft88tnC|&!#%PQ8z9vE^*y)vkCksVXv=UwC~6#CEpcJ22RYL}&vQ+CPFl-og4% zqPuv%kL#bd{8n>c8KjW`xI{mU>CuPkh+KZnu;Y_JFD+DL`usByEU>S=HuD|Jra_mp zx--#zz3E#cCb-C)P&$lQUYu5E4<}H0ET@e{K6Hnd8MP4RvRzA5e0atrFWIcH)q-Bb`2hIuzJ) z$1iwK`*wgQOY!x2zmljTttRpt3boGyEpr@8>c4F{s63F3@rT;=N#k&?es{*jmHu>e zLeLg(+I$9kw}Sz5{76-&YHM1sWP2-?$D05 z$OimKQ>J+(KRiuxlT~$7=GSjzGM4YYynqvPxc1U@cq%vy0|w4T3!i70;OJOg zhs8%Oq(;ke{4daZhS=pqi8D`1n?DD@Z+I>6ZxQOl($9#uU8n{283l?qr$2pA;Y3rh z4nBNQ0}=kn=~g+>zhN(sIT@0qs(M55J41-{BT$r71+_Xr)%wU5Z@#lLfJsICiWdrQ;KMe~G7o|*}^<6ZM|&c(B!vra=SWU085@b^^f$Yo0b)!pg0%P(wuC4nYmLFE7{p#uf1Gbqaq+gpSpxqE6`Zzc+@j`V>hm&b|}*@@afbSaTx0t zlFCO8kaIABOV3ESdvs#Ggy8|7_v>vI^wGyt{*WhB&r5w5^=9y4TGUI;U)~r%43*)a8p9s@rlENh9;a<8r(`ZNLIDkQJe4@80rGWEkv3*>aK`t8X+!Ay7-I&5 zfF3G^%Fhh)0t>+yYi7fDTp61kTxJ?qipv*I;O#=^kL{x0fe|-^x))SyQt8hLZ_bMG z)Xa%$d{a!hZkOsm3>e%h$3!DI%;Yx|fj^TZ?-(>cXfJ5cYsc?}C=vCo3jvoigaeU>*Ph6Xu(5y)c;(SA_lP0y* zr|2236Bo6Z@K}mmvXi@P=8ZU39)>gGzIf6gi7MT*4MpSPKK&L8+=LN6L7POXn~(*E z^UW~DO!Mx1PL47V+q>Dfs*|V)_F!HFWCj_!aEDn_y-oRc?DAIF_!wOugandyEmZx+ z_hIs_b*@+(VBxg|t4T)09%a%(6sB~hLJ)!z@q=moww-HjqwHFWwg z^#|DbSl0xRxL*=mr{;_zWZa6$d2DLBHY_rfOa}o_PacM2wKZ<0m7eD-*(9hm4IA_C z7~X4AZIa6tLw2oxhYV1_JFZPJ-p<$#nGw_4!ylIWf1w)VsQZWtiA6k5ZFoE~6|lh# znJXC3K6jp^tMv= zYzd+Ebim~^JiZE3fUbzzL;jcW`lF?Dc=dI-_ZfjTMgVX<0LuP3DxJ7&g9Ir~n#A~wdVHa#E~xvNc?-(G z&*ZC`kp_d+RioBpZfX!jxi&RW76*v3QsF~2E;!Rg6U08*un|*=ND3a^5kKcq?_7$pbXHhbw3@{9l^Qtv+4)2--lfg%~!LW3z`&R`_Y&m7_=xm(-PN`C=oTtcTP&l?5%mR`b4R$^Hy7kv#z4QV|rR!2H ze2*asHgUh`;Ne#d#IY6y) z9V8ecbK1;qU@zcT_Z2uhGn7-64gliOn$MTFM&(A}Dij#ASSx-I)G)u&tweoF{+&QM zgFmVU@UGIbE33F!2#BV(g3H0&OWmXv%#46JeFU(5`&=1Zw#`uJx*#sWduUI`5Efa< z>P{Tv@J<1tVBO5MJpj$8i-;@@0Ho7GVuw8xN<*o478lwRbqpaURf@QW$TjLWU8mIJ zwK`wY5_7_@Z3`^|G$CTKL(?rNOST1A#t5&2#~}NM{K)``_%9<7%l<`BC;wX1om)e+ zW_Pj()<}+m-zWN9r1c!2x9GXBNw32eB4u(k2#zW8*la7cVF|PI?t?YhGT)FpOX@34 zf2WQM=kcv8(O7jY-rmBHvLns3qW8&PDk3m1hOQE#jH~)DiT9`unQ?fMv9hiTwYkdr zFu~!OZv)7(0)N%Ws39U+4zuL%mly7ARe(onqRqpwd4=WKv zlRXWys_sVSGkzepzUd-1ACd<^D9UH4R3mZ&SNn}|_mKQCMTcB@O>)d&(NY0jNZZx~ z!4Y|VSuY8DJ+^2^JPx0X@N|gdQbXiU{N$kdgj^m=t;i#H!!0WbO(iJtHgk>ZTcQsK zs*d>itslto+x+77Z-QT^L#v_6cXUJWO0i*z*i=-W-oVIQ3O9_4Z==Ds^I9BVl%nv9 z6Zf#i-wH%Y*>Ht_F`Q;Jjl{gkh=F<8Gz~0Fb3SgQEVkuECVhA8H+Q{pM1jVFx7$(= zU*ZJ^Ilz)Q4IYbit`3FvY~)_JH%kQ8pp{5?fQb_YQfNnAR7rAsfZy;vZS}E%=?ZUJ zHX{9p`(N$JOcPxEMyj#V>4#nDhpkbRvlBe^Lv@j^tD{F6lE(|5opVbZ$vMGmqVa7hEb4z zpbFpkIo;sFK=%n8@OGLEi?8 z(#mID&#OQVnC!gE+us%cYHZb>&!H3Yw1E;#Qp6EBCvuX;>8S~va1z{OS#S4#b^BQ{ zx^K{hbv=#1952KeWtld?o&vw4rb$=i8#>*?7IXWTv+LI@Bm$T;luaslg-(C;u)Fd)a! za9HdrY?SP~Mew+*oqDoR?%~RdYygoxvmtk@>(C==#2!gGBDUKte+!1Hh(w3K20ar_!1pg0EO9u#uq4+B4D*ylyE&u>fO9KQH00;mG0Q<44OaK4?00000 z0000002TlM0AX`;Wpr~dbZ=x~d0%RCVsCgZaBgR{c?VEb&9<%*l_WWbVaPcTLGlbR zWE`>}N*I_S3@~I6kenq;21SD8C{cpw$Vd(nBq_uV@8yjQR4?b>^H z_v&wby}H-x>aOk>13e8=B1WQHw{DSYLLso56#M79LvZu2GONzNNfLP6Y2P5q3;&$uLBd_G^ zW^L;P_XOC$9grvm;9h$d5P-B(0Gdkait4(7;Rqzu9}PG3*E6#9ce0hW11c#3nkd#6?7JUXYNOq?{B;PFx!B*8{w14Q*#H2ZN~p)z(c(0f_MQbdwVi z@$vBy_K^^FMLURy$;!(9;Sd)WxBo<|L%f|o38FZiBTSZ4b;t$iTGN(iHHe{inzFl{EhbTgu(6qJ=(*_&kZgDgL}Ao zp>1#cVbAejn)>&ue}FgE$myezH%_s3hPc{#xxi7Lnh*uxO^vV}(oRlHLI$D^5|vVw zk`hys5fhUIsfvNY5@Ko+Dr(YTRq)>&|4J94E~6qND-D*C0^Mk;$;havf@CDrZoHtb zA|)y=^|!7j%EQwdWefjX7x|yMs{dA34vdCdd%B{HTwR_2jsOFMtEa06!qp7`HUt59 zO_3-&S04|)KkoUwJKPL|ybu(koH&f%Oy>HR2TTD@!5EUcene9Bkq*Y_D-mbG>P0d|X^9{qb zB)~YcH++`lr1Yffk}W(Yf|Whu?|Y(67@E;BVll)hE_Ng65^DtvlKP#p*(~`^3s4w9 zhJ#C@V6o?V?Q*t|8xUOM;BRODMG2V8Aj5yjJNo0tRD$Ek6QIj;Wh4b%XaV8~d^Bgx zJNL;sv?*OcL&8Q5D2Z6ShSKFVdDiW!CIaw;I>#P6m8@I>{aL5qWm^`M&g$sp#d}L) zxjynWQX@*X{H{AY_)t$=P3G?o#8vn*8A+^f;g-$O9=w9IBX}!+7 zH$qL+N)g?GJhr3xw8cS0Ao_YR8vP^-*bE`rpUb=4FYeb@TI3m>{e2yDv@km}a>Dn; zE1uWz4VH*9zSgLM9V%tNM8U|fQX=lD5N5Tq9FGhu=lXp$Cj7_w8u(+m+wm&Xp@vQP>-GM=P7L2?#_9dlCd;C;Ml5_HCHuG zBp+8&n2?f84HsOwgXH>v*0nBXPnu*DtxveWCMR>P&=83agXRCOezZ1uZHQ&0uz$I@ zN*P!abG=A?ia%~vXl&A-J0SSdm?o6lSo!cPkXEeNP!Kcd<(?PdPXkEH?4uLSI|ght z^?I%sr(`nRIuTUXiTjZ9P32ob$cUFtDRrtZ#jdXO_k+EwV(XB!_zbJ&-ls0^Om=aC zIISjeA&DvgUNf#&%A?)%u~Mq&(iyB5Qy%2moVVbl{Lik>x|)Xc^Y5cNFGlVv`T5Ja z`N(lLyA@fOooY^7sZZ8L84-B0P?RI_t7KGDZIXG9pqvC==;j&N65afc?@tYH23n}5 z?}v5!!F5(=!2Bq{2W-9dB$^$cu8*xS^tPO%a>Wk0P&Oc>{AISR5rn3_q-5`Pl0 zX59;5vYnMykLmGz5&~P*I36ZgPGUpUS+ZYTAnm?$))t8`{$74>nYd(6O4Oz84XMq? zhfk_mmDi|k-!PI~EOCBSm`gr#@2q-U|6no^sJjPJIXto4(-=)cPFZV(H`^Mc{ zq!bQPP~--q`1E}L^;@!+C3$hh5olU*o{$wg4T*6TeN?y2TT-MfJn+o9p3Jvh3tAYICzxZqL3z$w)fgAGDTsA@kp$>fWP4S5lD zsa@cJ5!q5ku*Xc>SDe7Zc89_F4zfp9G~%&h<#5hl&z8s@QqQF`HZxc|gw?iF9D~)? zIjJ84R1-|pdy*S{KepFibxLSAoLKM^AN~~Cl_Ew{;h_0?azouT1-S4RC@_qQU-2JW zen$IBx<6gvBqR;6?C%XBuPI&qOM+d}@U#IT3vkB;TTa{Z@&h9o; zJjvt!C@#NxpUonPU*47{g4KddW%A=EmRRNl8cGaKt1X|dUocJWb@r zzZ-6%&-CV}e{||Y#=YR(CK%r98l~Vk86O9hAe6445a2jVoI1*n6-TV_j$L$hQD#3C zV(k%Hi7=C;7C(zu(XBryHHBB+RtTb32i*-XgnYLYa_P{`GSErk(8g=hGwy5j{$5uK zff_;Ma1-zn!dTdpnh7wkhjEC&XcEMU+i>*8bq}v~hz@1g0C?Dm<5iA@F(+QKH5bB~ zQ|@?yfQ|Z1YC9Jse!xg)~5y5JyM&wl+dDKL>ixCmhSRtazx;roF7$=$Ax>q2-6;CE9>%V zD_Xnw!bAN#ToM_WxC4sYIV;E_q5i&g6>cII=aZCyJl;ll;C8~jM)wKbw4Ef5?Ss~5 z++llq!!hC|M`Lg4xIs#i3fryZ9uP|TIfpjRWkc4Gk@C`F)^_7%Pw%rr_K~@m-RVM# zdp>Wp8okpr08MK&v2+7JkgZEGb?R7E8C0XY8K=z&-+f}cdV?_@VpWkXn;O|iW`fc8 zYDTIr5FfMo>a&A@^C1%KD`vbmbLP2nIH^o;^Bk>^bel}TBkZE}E|}r0ZlIm5pLxhgEUrW9+(E`3x7?%$SVq4F4PKf?Vea+uP?$FU%*5d%dOVF$<74cXw7rQ& zZEbMdd)74fwW3K-s2<~@^e6Bznbo_P_(r#1!PyouD{YFIA!aa zz`&*TyeYO~Jn9q=F^|?xW$&FGlblu-c^WpWCgOxI)@Ut3x5=iW)j7r)OD8zel38{X zccT?%xmb5}TF6?=QeigZ2BFWKonItN9lV57J?;|v)WoJ_*VOdPkm*rwvuwA8NZ`%Z zF87)I>a|biwSd&|I|jSk7#cYhLnfmWas@*lE;Y;pkc10k>_K>ddZ>JF*=+yC_x-y( zcb~#tNhlyI-fPwPJu_;>h$$W@^Vq6mS*{Vg#YSP&Dow~G?dVhK`j^aSONQkLJo? zL@TZ$3ffmk`u4inF3Nf~ZuhjOWELxCyDPp)VYs}b-k~(+XakanJjQy#GQ>)qZ$oMA z2P;GtI;+*hDa5b>)z^>5*^Fx=CflR&k_`k$Q>8rNxG`_q;NPb|M}3-iv&j7VcqV}u zB)s@`T|XW4?V79f6hLs9l%$`XbCntF&|8sCI{KLoalim%cdZma42UIsnNl-?^7%3VJi%Q>ln_7slB%olGyjyJNJ6JEdi!l#@AoKBk)~S^ZN4ocKz}I z*;eN1J6e;EX|p?yWfb-UL~@@_y)D&^F&jT!wiR1CoBO9alq17vX49!u*4VK-ww>KO zozt|#**4@t_^p-;=OwJRgxW~SP-?cPU-cBVpzl^0By1c4pS>b`p7#m`!X#{epjKB`=L5&)=OP}hK=><0GZfP^@pnZfF~{O1d}vU z1oHi7z7W(ior-<|99!0?lm&+O88D~3r=!jQygxu2E9e&%NW0BTXP7a3lvoJp%G#P7 zef52onWyIKu)uNom>_J#F66C4fc%Wrdo^`c!=2t!h7UM?MY0YaBqCN2Ui6nnRSAv^ zKJ5pl3Pzss%Eh~4`(hpVKl4bK&M(}ktb*qAikpC@^S+4}lULMNwOY2BEn)T=-!S5L z#u>}q!-+6VuQq{{kG|;K6OvHo*jy~?qpbefFdjFR3Ia@~XoH?ssD}+81|)#|BN3 z6IDRnvO68;i%dg;^Uo)Vt1s&=e*9|q>>s`{t%Jvv9I!+$Ogpln4Y3ZzAnulfAZDb< zZA#0w!CvFx+<2DvG1?|qS2PtBCiqi9M|wvS0omuf+iCYN7g>IwFWo|nl7WVIBgMM| zU;FdTR}d16OLDX!a>(LO$qn~eT0Z8z7UVBVLV*`6tNL569tijzH4Nor@!?B?*wL0X zC!ef}E|%1b;CBMQmkAZ{%;y!98}Ex`HQs;hJtd%Cll|c_iRkb5>YIXC%{_Avf1SlD zMXR1S55GEDK&>G9AeVGzT=Y}ylyaaid2qdlbamhaK9z!Av5ctKM8hy`DM}2==iA)7 zRLQ%&>@g*%jzFM0(sXycleHpw}*py&5fd6me}yt ziDzchP<)rQ>Xh@|skZ8a28t(kQyn^_s=hQ5G4V{-UBsV)7B2ZV&R`o)%nqJHNd!r( z;H6bNh2Ei#I&Td|*nXJosaII*kksJ$KJ$)BEgeU%4CZUXEa$U1gOdI<;V8O{GdOgB zCM+F;(LSeI&NhwUEUGO%b79TVl^K}Fv7w^kU~JDyVQv%DHKw}fZ%M4(mOchfu6OZi z8h8aO>Z!_=4IGACJS?47`w-udPizZ|52=fZDwJs!p^$xD1yoee_g_Fzx*O^4E(sA3 z#6?0nBo|m3cIhrrX_QjBLqNJqS{jrFX+#918~zXd`Bgcd|K-ftg~R>aoICH$n>Pb3 zn%ngGo`o|!$Z^+nx~SEA&B5?6x6pIICsKa1<^VPh8(=s)iGG^zO`{?}mh#CsV2UJ} z(C4E4z`d`Z26i`pOhx_n1KU965BoeE9Dyv0Hg7UsFu*Ll@M)$NIo&m1#)^Jp>#w5< zUcGO(KDlEoJwRvkQev!Z-xpDOLFVY3Xh<*V>vWsGql7Wf*(|5hQyad$37%ZfSQ&K< z9ZuqcM48!@ZtUC;0c)NRIBjD!Bc;=3ZM70h+RM+ows%gR**@91Z$fW=OQQjMKBI_ae&x#3hj z=O{d!A+GOcY|_HRyC2yU7c7%+58^+Zfb9EWlfLWnEH^``0v6_C3$`!|x+WCLK8Ys@ zjK>eSX;Jb?w7Ck~Oil~jEk;1q6+aSFXHiM;Vr8@*wi=N4U_fT5678dPe`Q+4)&OG* zuLjB^N<`9^EWH_W3%JSeB9438BA426AIK(_dL7V)LFjmmwFJ*QF)CUJZabY6Ph?7e zkAk@0@)Z-bD0N1h=heayjL7D3JJCISLL|^bj-(r?Y&tQHCkqK39?AQ#{Q&Ic)M0`U zcI?knM(BdXN2g3c^d|B33D^1DF1)3}2xXc!+0V_ic-*5D9!be2o)$GHhmXGrnKD~IH z;WLrqB*ENzhoUKyU-jAT_Uurxsp4d;)i;Za*NH>lgPBQg6tGR3h2Cu%4u622P zv&s;b;qbZ9`4xPP*l$fVQwAT+nX+or+U>2{ok;i?zDRhqJ^XMI-sa4q7icw|*nr!Y~$0{SUA*{GW zr-f@9yE$CkM0}rAaJ_S?c#=aPwqUz>biltb_?4*#YEVGcRPG6X?Q|{Yi8H~mgq z_){vd!=0tv8=}BfgOq85f`$zyRHM+gB8B|Y^3C3cNh^I&=DII#h~m~0pW~%Ata`QH zrGyT&fYLJt%3B1B7-^K{ekzt0ZZJenBUMGxp-fR# zZ1O4aQW=fia|>kl1N>WMUaNIPUju1^kBJTfG9`#d5c!4(IVZ@gsM0e^qR^B5@ME-Q zbtw7*dsuF_1ky0ZU>or&zXdC72-TNDiyS`;_NUw*(#EsT{Nvh-nheUbad8@m8`AN z(8j|1HgbOhvQi&0on6|)Ty9iaoAMf5ssMJ>#&1v2^-MZTq!MzpjVinV|BM75boGAZ1KCy#NE!B69 zPrK9m6dChgYYjrznM4#;dm{ z-juLaj&@CZY%roJp0NN^w>m|qL%=ydH+e{zab0IA-})X}8cbc#>3!bn@20mB13xW# zmOLzeR_iQuBBSpVJL;K@@A~E&rknAEz0-88XDX;88p$WY!GUb4?L~<@L4g$GJ=5KC z*KZcHlnW=k6H2MeXERPcEoq{>n;sop->}jMPinR_D-uPCJI!a1Sl8$BY@d(et5Q)+ z2@S{M4T~aYXNm}<`48RHY!G^!;jFYrvVP2L zL6|$T<2mdJcituytAW1`czT}|5Z4pcX!7QM8(BPc7pX8ic|7nkvOu8cvw9q|0JbR>q5&2ZLc0Un&Wd+*9v_fd*S2+uwM`(mfO6%TT=- zaPE$pg8<^pjYvY8K``+6j)Meujb_i2++LI{FVLa3|YUSXWfuX z|DXBaZwBzz^doonIVGYhohJucPp@yZVo;_G^Xs@W)mqK>771aci4;@TN#FbSIgc%z30`a! zv+H;~{zBkmhel{@7~B}N7@OwG>^ z=9bB`pq;m;!xRsUdXbHL53}ew_s20cp0jp=OjkWd+^#(Xy|YWlFz=poZ8V=URQ?nY z;%xkV8mWs(-pSR&Cwo3y%XXX>hfgrPdxA>(nlC;}U80o~tge3lTnbUT;P6CD(BI&9 z)*hf@ltus{_&k;tuS!n3Ro%#WKsPut!;A(Ogrb)6o&&<{vS(6Bg949dzn6f1m)h#`TEN9+?) zP-|jfcCmnM7dNaKV)lWwa*dP}3Wuv~AgdDNjp%#jKMa!4Dq&}F8eaCCDCi7qLBfo9 zgZX51hkQb9#as|EJ$-0?asm7N@G=fr`4+ayi|rchX3BO}J3R^&hU7EwZT{E8El{LpKL z2)CS(w3EH1;|-?|A<5}m#<}gKdFhOF+b30C9y1yyuRR=bCtt>WwN+o2HKlhoR7)Fs zG)|=M!NlnQ)O~sDFp=z`ygak|5_?4jux9ev30;TrF>BMdti!pL;n}hI?Eu48@Of_6 zJ7=@13ORA8k}C8t9GyY)TV_$WN~g}8>!wS2w!4FNd8+0KR}Sg=O>ij^UWrV)$|!mz22s2pQmRI0icTdc#WAVh3=5VZ z(4Myr@dL{k6HC0_8uy%~DCTu}C!mLSf0vK#&LesmGkv~sU_WctXOcH+a+!_NT>9u5 zSgdcV6PjUK-qR4^4<);)-Z1S~we`)P0UIe4=7D!kpr6F0SKSg{f z1VZO(Sp7`$wK2qD#7a>TH=^q`#bV-6gypJUgZ_oeyRzln3|gwS+N|fCiyn~y$8{$I zgN|`8cyZ4MzxDREdX>*S5j}yXKBz!fCn-|p;V2Qo+EIbstunT#u3H&@@Z+Wc=~A+_Rl73B(3(j3 z?YG^p+Xe_6d%%7OK8UIZmHWlD;uGr)J1s*)Dvvh{yYp9DF<#9W0d{tN%b0O+-aXcMdK^urmkI+*IN;l_}eIcH}DVC5H5(yQ`7hU~7Gczgaf7%AttqTnN=0Q|$K- zDVr5bI7_5VQD2c^=~2lE{i0)}(lYJBejZJ4QF=GEpvS}`UDW1SMJ)^FYXr`8JZtNl z>rCT1o3-S^Bu_4!j_Bdd$EemyW-N$uaTtA!RbSD6Day{MMeP^T-prbOTAG?+d4C4> z4zl#V+TBi8XKJ00HtJB#fG@rt*!enHlY7>iB)D`#ELFoesEX#_aA3mMdYV32ZwL>(sMxAcoc8?NYi!++!Vo6n=K6R6JZ2J!mcfzqZ zc|%D{i{G2N2R`UB+T4uu^lo19J_?d&6|y(l#PXc;&FX0uFA5G|)AOu*gh@7oOa9tk z+4)1y?D#|K#)}x;y2T-;f?IQmiJ7gR($jKoqE$l9Ld^NJ5x3>dIB~}NUlg~Y*cgb* z)seTyJU<&3{TB9?XygF}1w}76=9})@jZI$s)y>)9NGrxMO$!>aVsSDtkAsADQRYrf zJeZ7WDcil<_AYEwQh6M;(Zy<6jW^LdQ1QAH8ym2L(%w&I86&$6UUs^rWbkQ${y-Yl&@Vid#n{HwEkv zY%DW89E%_C*YJE=H;7pP<@+Z{CzWivi|=HIFq|d(-NWZd*sD;Gmtt*Rkr<3w=yjNl z&)dgTH-5$Z^^q_Q$;cG>8=dc9no(#)ofO<5{5^M4Qi3@fG*RVy$cKufQ0;I$%~Io; z63>E(ZTOcrwbuHwTy|2T1MC)&LbcRIrZ5Y8dqbi)oJMLQr_=VrH?=R~u|`F2`t0L% z<7?SdJfRdet7ILpKjLL-_E6f=aM$@*D7Vt2if7`m|?pcW-Os3 zpyglf&_Ezd{yau?zjgY&1XE1R%0vKiaA(fcwDEC$NrO)GOD(sLmi6D5l+7{n&zH?9 ziTd^i?&$~CKcm0+gnvGxolZUW)x2OSca+%sB0)9%Jgb!Akv{@w|J(I^i!_#xb2qUf zL6~lc_HpFK#GYR*eLwFl9t8N;A`RIBQv%oy>(!-ig_t6~;XcJbB39)?5ToteHIHL5 zr3(<5p#x|5Kkl;_k~cfKMaJES1clCXN$Opa)(GS}uwhi4h|&AuO1;k2$7k=1ZS0%je>yX*eS(AZZyH~HPcA1KK>h(Sg}R;SEe#fjtWQgU53U`#Mv+WcR#kEPO?6+ z^YxY=&#DxCEo+^+HAN9W(dl zScSFB6VJb=d+;E6Oh}l$@|$bimZa>efrF8cGy9}~=md3u3RA7j*GnW7Dj}zrOkbbf z4$&AEXNMuaUIBaJ536i%#wg`{K+q;hup) zHz4FV+k}?OJ=#OT(FA82WE6F5dwj}h_xZesDM)yx#rVBd5b)mGCl@3ZJ2isxPf^e6 zc%mOT?l;42Ya-jQmEuLJ?ML2bdv3g_v50Fnxw8gi=J@`g4Gykg zYsc10oY&q-@uO9j4c2&-1e(sX$BrsT_nK~ev4u~yXsr%y5TMuC?FNZ`A{QRvfX0uX zxNo{_)9KF$eJHpWA$LzbUFYVQ7_a7&nG1<8h$4D(B5bBJW2tfVxpd!)J}ln<`gLDu zz81D%`|SPsOsh?N&ah(VPV*sW0hv4DrbQ?i%0h#Jg2F4~409W)HBjAthEC~ah^(I_ zq0X^1X5CmHW`rnRWjk-wH!dVTqn}5o2xV=hIFS#0tpl|P!sUCEU9vG$@Gx*0WPeb( z+tO>tuQwZ6k=13Bv~idwzy^NH{x)V^$IWh6WyCFL+<)Xy$+=_Y-N~Ih8Dxcp{-#0^ zj4{Fs*oEBBkME(1pAxomref8aNgic;F4w^_@5#RYg4bh;Rt5La)X7dp+b?>EHIY}3s@D5So0vvo1KWua?G6hVl;0G@;=SyCq-WD#5VxQ!j9o!;8{Ktydr3C+ zoWbBDm2rfSV2QDyMn)$VB(bzpL3&-smtoDU6W_yZcyQ(ul855#$=nk&0{ za>Vl;7$kkV6~ovusn+Xc&wngO7T+q(*}(#VF0uc-X%;B^d+*{uZkm7YU2N}UZT(|4 zvIeR$zBXAuH{}qaL(D_jHB4&+G}H(3@`&>a)YOi*s$~NG?vjN@!sYLA;ym5Hi~EW? zApD*fniFX|HE%mvM+?%ku4SGV=`uHESZU|%Z{DcNSg6%4dR(D?nqT+Xb*~}CQ1P` z-X+qFoxD*?hhxCxNE=UUHh5nFSQ%V~A!fl67r~9;qQsIC6N&M{*OmKuYexE0%XMW? zu%fIio_}J%5x+forvWFZb-4u>b!X`YFZuEsLiIzIcOXt?V+2)OG$r{cRh6wJ)wv44 zP$`5hEtzh$j~*HEQfVMeJYNt(n2UmahcN;zZkQ7d&T}m}&}wMAQQ~~?mq4d9oM!}y zY~PJi4Q&veX&FK{52c9fGtw)c%Xp%p&_&4);)#*r(Hp%p<(;5L3WoWMBnI*(KVxuO zK($$+ACxlk_iZJ1pr$k&FI!0C$0ZDU4fE^4Mmu4SXF9`S7B(ee35jS)PvX(zGz-^d zMnl4H>g5QH+?E29Fb59bK(&{^vyo8QhvfR*5GI9B^m-`)0{3Ua&2%etb z)8)?LU?D0l?5+U2P*5XTY9e>oUG_QT!3Mg_q~h9p2Sk1vnm(Utr(JrWTQRad1%7(4 z&jS0L@-L0Iv|q1jO;6S@b4t9@M;3`GPt39soSh~Wr1ZB;|F(~*TQ`2#@}${R5pMf& zCjaq)9G{|CQC)f7%u_Rn64e@C^1dx@)A&%8G+P0zb?iV4L(_@ggJH2SG?pf6cZHPH zE9Sf~ju^zQ`;@=lN5)<00&lIYBvvycB)M8WYwJ{=E&R*kgR75>XLH zZPk|wCql#+nMF%{CIp z_jUZD-@-N)VaM6BMNR+0j%DJF{`#9tp9m$6H*N%EE|<~CHwXwkzO65tN8pkpnldSW zZ)ts2eJW&HChsgRjnFR1kFExfx7+Z(pjS1_A}{8F;OQ_#y$gzStK@&{(QAe5Vf7#( zzw1@n=0blJBiq#dGvC1J)sa}^-TKw#OpcNdw!I_M$I4dRaDSAVUepE)ni;$Z$sliK&r5_Rxo*2Hhdg|=!8qZz zj*hfnN7F7t;p9{nn>p@|d?)|?j=S1Q9s~)gFe0rhY=aFf!y( zDA4HNnf`*Yyk8~c@-fdX$>zhBp+O4eTAdM>j|iiApx8(6ZnCtfDYgbyp@&K9Z-9kq>?`iG{&wE+>{u9*ogV=PmUF>b5p&zBCmSx(o7OY1)c z3^YuWkM{MuHMR}=9`}N!(74K{rq`^ zH~yHRtmY`TFrw2=iD(gsrL5yetPA{VGb=J%CBY|Q8!RJZiH8vbXl1uW1p8Z@l=5}u zw-sjI`@J}Wj;uwUhx*6WsUl_6zPW_+hz3Dt*Rw?jm=k@zgf$t0qvmE_eXUO7wJ5Q) zmvxRJMAAtQVHvAX;Jht+lZxr1LP5EhjfvxYg>OTpUT$ettHLEV{LRWv(k`j?P!%JV zyA8=k88%N{+{YKr(c0KCHyc#E>g;8v^)`&p%TsDkZG`O&9=vgktTrd|mgJn3T(cJ| z+s$*@#SRgjNV4H8)rn-~T91OTtK{KDK_2gzK^z}EjLjadB+01Jdm^rTv>TIupjyaT z<`K=kSMZtJ!c^BfieY72>h3@lsT_>9ZT(NPZl#zE|Dz z1Zctfc9#@YRsUPO!_D&Acb2Xrs2MM@vP0MB!&A1XA@37fq)JXb^$2q%O-pvHpQ_tb znHO(@6$^8m=G2^KT81~1x0O35-KrBbxk6@or8&Ka!{8c}tCYRt1kCrt}(OhBnO+_(Fuz!PsKHb&g|)1D-6Gak1Z!UDZRWStwKv$Zvr_5@=Uf7YK+T(9g3GCT&c?#WiK+g1}_FB+&4Hc0~w4 zEBCwl27^07ZOvg^5L?dweZ9_~Z`e>R4g9A9(1@>C0Q$-A41D{=?{2{%Z)6Mm7f7mj z_MAz6k2xfv` zo!(eoK?Q+;*J7`sY+OUJfx>P6g>neRRE#_*j<*GbhX6hyzfuICpSq9&Z@m3!nmNQ4 z;%H?3FQ5oOoku*O$w0~gr)YpcSH8NUpFo4`e*>8~!QgiPRHznk4&4Sd$-kXL%kejk zg&hq3FKrmpV$Yh?4!V2uL$90YOUT;=N3^)!$rKj^1j zZP$>T9IgMKz^`)?D6Zi9l&S*=%0T}-MVbgeIKpbS5v zmvGo61w4EY83eld7aKJ<2xMafwFP?8pNX$4^a%`)B}i!km=14Tmu1Tf0;$SM$tcQR zll2AYx2l`Myu(12!wCMCmFZ_H0H|mLH@YUv+M@gsJ#~>YJrW4S1{g*9mx5M634)n8 zLhXTLT^yaPA?iO$hB_Q-eGTS>Li6X?KisSigIl7N1B!{hqLj;ESOg#)83@!>8eh>*W-*Q5%s(sVKjd#5|BoJ>YwS?_T)E$Gt?AfrwX|m1pZ82 zsr%%L;IiWSY(W2AlBVBx-ylD3*ROF$0X9f}59Ry@q)d7k!jGZjH#Z9GH@A_!{WV@LDK^D#)6U(qKu^%% zx$Z&E&fmNcS2)BL1_d6j|LuSQKssqqb=*~L2kgHVz(+$MkTb;b2cMa(siPhAuaUQs zqz@dI{!qUK$i7}6^nX{2mjJV=oeAt(w|8c9dK3meJHL_!6pL#TpHF~5ju05!$Pv!@ z4~gi!xnPA`vRSFXHA*@V?O*u@-~a!H9(2{m9*-T^5a=c2@4Wp9fsKanONl=Yx8l8SiKXNsSTCqfxD6O+I;ek-TR%Z2IsXM>U}t7_ z9j6#G7fd4?L(v2jQ)IxmfBSVs@jo0G#2R7(hnW7;E0#ue;5|PQ`8}W?p93hrM$w33}{mX;E-Mc{Ey20n4tgR{Pym@jH17r37!dHR;G*x zfl7e9`a8^=&c9(SjBKsk?3{QxE$#nG6eTicMRpZ!CPtuJBmzZ5dMb%|DO)mRk%9!?9VL@i2h^0%GK--zXAR} z1MSaLyV?xl&&51{V~iYJ!}xD&gg-H^mi_!WxA}L*a}Xf?a>d_^fc}KIngspx2Ig-F hW4iw!eunkel&JDUbb8pvmeXsj_fB!fq+S2?2{{is>004mB*hnA4 zYT^424;Sk#p+&D|HDWXaJDN4wo#yXK#RGJ3WGo(HOmy|YWALuHK%aj6IRJnI>Sbd` zvqPJq+{i=)*L{pa0FlCC0|4i=0w}I-1UwCb#d~;>G@+|4ZBU38P7``b1+9dp=;1xR zjDo0m>mYL*w;+O>Iu5FJ9&#=K#S$RmX|9j}qBqGG6`%?IOBcoJ?@ud2A%8(=1Wo9_ zP1&I>A$nvg9-^Y4EbpcSgF%o;1sFmFiG-bnz?EQdMJ3jal!qZuDo7Mu74r85WksXn z+))^P!@py(Mw(Dh8jXTdRP^`vSMXO>AX7aQVe0DY`xs z<9*$zUKE-anFQHabj6ad(KMkfr~lppk@Al$$@lLxu@a^j;7U=1DJbo4=@$@<{@+j{ z@gKA=4TJxW-~TG?YZFMpD`N1z0MKRnKmN+v@7 z+A_-P_g-{=tM@k-_j@mTzvU{j%qZ?3?EgFHUsJ5=+3)^SwyeQFg^wq(s-4Oz>jhB~ z6ae7!HP+X$37D$OCd4`5#d=4sku)@FpE!9P1k3z{GT5Q_^o1aAJx!yCNj%bq-4>yV z!1JjL&j^@IwkKL%|9z0weyf~OO zKw3VTvNf3H`)+HyZRBeh>7(eRx9!_T9}|t>hIun{bI%28w-^|F2_z!&23uWdTWPCczbTE1?-5Q8{ z;_|zNPUKwSGulQc?CXG&xihV*(AeTHuO-FHK^xAf+a9b|QgC8!xu z-Pky87*PFU2iCE(3lAlkA^=mWoE6)eg$>NTye<&9UdV2E(Li(V6_i1WT>`9&W;e=vVYmC{ z*WgK~m&Lj)Xz$cA{aSuP7aKqqs^ZFW*mXPE#A^^fzE-Oz8H)*I_u8y!+*}c-~STla>`lfC}y@9pjF)urDUt+^iwCs&=_xe%btJ1WwV%1`F;Xf&7@H)?I~PT$h~ zaXT59s;H`2Q)QXw$^>~&Zy()S<@!?mkt3qX$)Xq&Oy{;ph?|$VJ>wPXTu>y&+lu4b zI~9;mLgvU7p5uI=?;d|lGUVMUbF-P0_bzk9r`mu`(;I;1k}{Flg{)1b(vpdT>=N&O z?C#Y1s)5!`h~7?W>lNO}5c-e_yw(8s%%qOarPBUDyaO$$Ar$XGW4_u+(eAsTUF9Yy zklhL8lB=kARCkDdiE&wnq6ooA(rp9=%y_xWQUjf9n>MtQvtT03*H5NDr^jZMJCMtB zRLNu778qn8XQ8=Ik{DGA2y}LOY)eq3t~`pUa`e-W3Rj4oiVJ)k{M_e_=JKfig{p(t zEQ2b)D-~%{YI#>axJ!e-Z}7efi3;S4=U~z?au>fWYAKsg_Ux?bxr!Y9cfu`gb&3#( zd&;lq3~t)fHuvjjPam{h`F0*qBcamMop*9W@ubhG(LW^nTXTkP6-y=#0H-I1Zu%%L z5Ex0DA-B2&XY~QP_MFvoRc_dOD7OkHkkV9iCV% zQmtmTy!aG%&&s0lN`tpFwOq>h4Ufb7g~s!PJ^j@j>7IfD55rwJ08H8%a_+!2_}tVO z#<6uOTH>9oiMK{FVCh~oAQE?!>+8={bW8O_$pfrH%#QtoyL3ak)XNabJ^>g;)*5r_5W&&#mrsS9)4=9`Td{$$I1 zV}(eTLRV?%2-g`stN@m&ZokPCt6ZCdT=x|}6xr4hlhHi0TgilcTzCt5#J;RqR?Dq$ zyxW_K<7}`P*R6ZLBA2&w^Fi=pYU=w_>qxm{CH1B$q~5^P;^3KfD?cjm?n-?)o!ZGg zOTfyjSe)FOf=VOLhYNLu2OgN_GPC-`-FevWV+_=^6||*^>dU=F(d9(fYh#GNFO~AT`yZNW&7`eYK?+gB4n$?I@>~Gt+Ww`uHAxG@f@cH50%k*s^e8WlAbMkli)RI3h6Bgc^xpq>rHhvs{qY zR^AHHhR=xa!)kXzuxmX*@$@j_RNXp%1*YtE?haZjeseZb;&Y6D$y~A@?mQ^#qqXO} zQtn_*i7R)urJg|O@O+=1R0=`-jbR=M3>KE@{xCFBP(jE+5|dvI2z6$iAF6#a%h)xt z8fVJT&!v7c>DExGFf(1|$td8COanw5nWC=Yq^CIIg2Ero+JMOm=_U&W)g`IT4Kalt znLq3*k7ceHuTYR>Rx_nv?gx2@OrP=Jh|EW#KizB!47~yq7)wfWzqQF`_T7ei<^EGt z{&gqTXUCFFlY|<>4dsVR`d1tmGe7%kaT-J?nuO&A}J}zeE&;L20eHZSKm^K*E~$G zM5ED}8ST^rTrKpsiVPof*No#H zxPR@;A$C`=u)uoJ5o>bIU4QaxC0R{X1pIE4c#?DjFr8C6DB=ARMh-UAIIB6I^94|a z8TVj(WhA=8K#<+}`I}2vr;);Mcu#B=FB5+Z zJ3&MX+&>($9B9-@Uee-wTkUo`b?w&cQ0;jU7kJUZ-qCjSQ;Fu2dEk53l=VG|cGSjZ zH00q!Lqi#YySdzHy)P&@_+_^Nu&lQHfU*YSYc@~b<|v-7UBCFScH*0k_U^Ic&1p)b zY`O@zib`2mIj<&68Y&W{VZK2-z@0I zXo3)dNx#1C(q@ppys`abOX=9D;pp!KX@;PqQD_lQlmZHOhh2P7zAEge(Yj%ipU)lv z$c9q@iq(W2x-ytl-`f7o7GZI$=td%$ZAN)*?e;x3YQ-^Gp*#I8Fz+gf)>q@*yh$p5 zzDj0j2Z9W0FilL6G5XVf@Vw%`zBdBz7<%SZgMK2 rZ!QhhTQjuR?5T@e2;B)|=L2jDzIfWF98U>82dg*D; zzcy?2hUXI>0bx(Lit`|ZpaReU9e1278f1h;d7`b*DEBb`_h@whfC`MUwkOz|UQu(y zVdYT2Fmj<-{5cx{P}d5@quhMZ1duD*6XT}=UVr@t48pi;fbEn_$kC{QTY*Dp{lR0I5{uG;zf*D(YP`V&I%(E$I)DSJ~3 zkRC1o4N{U*ly#GbLP2o292BMmheKsR3i40|i2V70%R*slN^ms=Wzb&__}p56yN8;U zzQJF%&UYGMF9HFt27!cxgvf;`%HaY$Ay8FS)n6J43bN-2*}yPA0xDG2FYxl;3i{|k zw*U;DfWi5Jekr0{aX|zP@VTe|2?2}$N7gU!uQZ(}3=)dML!ff?X6ySDVIFHM}OySk^0?;S|F2EXx^Zh%E7G5|4F3<~y z2kBjfgCy)Qe(t!CK*>Mxrlx8}et`s(pBvgpUjuxuAcw)Yt0}>h6qJ;8^_3J^wD8 zKcO-GM|PGhwmfTUY$<=Qb?@Zt?0oP;yKcaQ<+R>0*G4uN?4NqbiiZrDDz{%SSBJj1 zr^=siG_(44As27vvk=xlm6fDxc$U9VmA9wWNIVKBfwbvamPUu3n#Y%zWGt`GFqe;n zZN9t6#x(6BxHndy)_wMvKIa&DdY_!+U>p_JcdLMPp*1frubtOlmM;}4awlRf z%McheJD})!-SZ-lnuR7Brrc-{P20rhJP|P(0fSlnqR61b1{Pd!UznR6>Z8L4c$OY zyUMgtRxo%7jRljWXayN1wAYE0KPMT`#!NiT51qig*Mr2|x)+0|yEePfC}-~tByQ8J z4Vjl!$EnEoSx!^?U>EH;8QAB?y&OBTDelI)fr1iy<2*XTBHw7L^m*kcSPJStXG+e~ zTK~PTkEv+5;)LQmV{Id0o5IDbg_m3o z8Vo4-@3FS;u+MvrU06V&&S(XqWBKv4P4|=220z0yHHq-%4}B?;5sde!GA6{fAtZWU zevwLcJxs5-1(rf;H~2Sg<8V>Bfq2SG6o6PjqW^Tq5B)_t9synnsaVS*dX}9k)2ri; z45}zN-wF?D!XFzHieKhwxn(MI>fL$SVmicLH0MbI3jjo5*Nf31e!pN~o+VVpBx;Hf z)sd(3!5=e#Pa;S3+#kazscdQNPg=5Ng|y=8i+Iy&5<#|W#k^al&TMQt2i$f7c^j5V zni%Fx!W(V>rOOmxO;Q9L^|rj(f=f@5C*Yle4{beQZNNASaOp`*=lv{8ZeS^&$YTkgqJWr42;5zs)x7^r3dzkAjz* zkDi%u%pT=A4=wvb zggwBq-3*iII>IY~U?6ia_-y$?21MwVJ_*rL9F$GNol zmpoXB)=5Vfg90qIeyn`zrxib;LfkrxxP4>3jc~==r>ks{^Yl)XXOmp>&3+6nWAed! z!UdR^FS2B4m7G60w=mhVyL#4IAY15Y2!)>YWkOBa&9XA{EBku!JMs?*ncEb!)~L|o z?JbKEx9wG*sWbbHU8-&KOeos#QCO7*^*7>7zjF?-J1&mYcPNo*IV+i?P)ix_t^lm~vDIScUNz7nJZbYBE z*B<2%BT)VG$87PH1ozUivMfW%z01kcPA_W8EUuJTnE_Zw4oFFmN?u(z*d(@0GM0YR={-L)8ahjL$09-!S=TR5SApk|zi)`$n>Hfd z8Q5~9O#Sd=s1Etg%b{C-HskcR#VsisMW0&6y|Y_42CA!_z6Hi>bVch(+g3(nCmLBE zFifhef4og%%~JP4tqjLWCX#Y;opTDtcR!Bn4#vJKxJE55J4fY)D@%X)r28WWEV&n?G3o@`%DrTm-Cjolt5~ZT;bCDYUGoA8-em1Vd0@4K?M!rAXOY7Q+#uG$Cp%^B zkKS|xz+)8E?UKOYpyIn9q=jh{((H5TNZt;05-zOkuj=`k*k=yg8i6ASv`&KU+C|Pc z0v0gYSsg(@>YB953z2|w3w=J`G~Ohp;bY+@&EZZhamP=&MiLcmoMQ3*PMmZDJ2(d> zBLVmL5qgZ+=2RmMq&+DpX=PNX&@~3{vv7KYeZ=w^?$#VJf$Mg0#CV|?hMwm@qh=pT z*q(n7a;$tZqt$M9Z#mN=dHMnV2#=T>JIj?26cdYV|zSlY|`hH_LxT>A z?A}~2Yr1Q)3NaqDh{f6%t6dN?7rNYF5}H9X3Vx_)mD(Z^MRm7aZa5xX}DO zyw~maI?h8rk^L^jWy;ko@G_I6@^^j+Ps6RW2Yz{U@7*u>IA3U~%U|K4GP-fw`eome z1S}bYDG2?fGw02k@_qGL=*4)1@QgL&(f-zJ9(AkbdIeG^8!gN73RSZ1B^Q1XhK@4Y zOFW{T&qTF7N~8uKn7O>G3&1E&eRlnjP#44cWn@Rd+TmVNYw2dwYZgs~s;aDMT#s_| zC*lT$@76&Sg~+^K+_E8ZKA(H6;aQaEg~4)@eaR)Ch*TC9Mw@mf8>7lNMn)jv<;S9? zSyaQ=v^JZX!T|=RtxqK)e6tXl;r2lrYD=CV!_ieJq*v54oHzaY7qyWjG25j3uc}4D zts99qBEwb8+14(C4%+T7HuH^}-$RHLIa8}Ns#F4-?}qDAP|1cE5-IMwJ`Zvq=3;(g zFjid#S8f%PwyUCE08ki5{KTlMg1ecs~=b_`b_dWF{lx5+zd_^-xYuZtqYg zscv7AoB&1*305QIOc*x1&|rattSxE=)>$>ptZ-8*P)jd0e7e(~-LS3iTQC?KWB3RgPl)*8N^ z*r2*DVcT9XUVII19t#b7I&h!$x3IM0eT|^1j*_>#p{%|FrRWiBI#k|z`|{c~TRu3) z5hZzDsGxQ{;bYXC+1B8f?@rt@GNPsk$i&S-WU;$;Oqn0)Nt$J;KZK=^LBYexV-MS}Y5_qf>VNXFw?e zxUBl10S@K8L2Wh|lYcrJ6a7}!XrBX=Uj`P^L*{eu6!UVbA1<3Dhg^L9DlVB+hL9Jz z=BpJObQU(ZWIECG#!h_f_)}8r^{3VWce_=tQX{{$b>Fv$$k-m)tGij_xIN3pH9;6O zrKYLi*!@XZf4Mbwv8GfhXz((?!p`nvud3XpB1c)rj++5<#ctTaLBfZ}vZR=!Z|f~b zH+}31c5I7QR7bs5m+IHBKEZDS7aRsOqdo_-wd7S7A%WI^@P4>tat*1aLq&%54OJu5 zH{B_dnBDBo7UMV8dRu8us`rrNy2*uva+=o`nc2Onds{u}KTgXYKXxNf!5TG4NVsGA zRjG^I=#sZllRaF3v4>nA@U#hvgr83iqL!YoSwOls1mZtaaEk;E4=Iwxy^c9^O-w|2 zOS)?*!keDr)-~^hfZcm<+iB~*V9dBFf1lcSykQ~DTt-_%V{BFsf<3^Nme{0AISK7Z zCOc79a@mp1SHJCjQWR)Pj*Q+qC=%~iu8i1Z`*KWv@587aa6enyn3}!;^=<{H9{PT5 zAfmoW{5QumtRjVW0@Ge39Jn3 v9*7&O_e}PS*3{4x6aFcwU9d41Mac|kt0^}0Cjv8m{WUW}nCVyR-njKY4JZAU diff --git a/JSBox/Rules-lhie1/assets/menu_icon.png b/JSBox/Rules-lhie1/assets/menu_icon.png deleted file mode 100644 index 918e225516628380f2141ada3f1221e1706808c2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1465 zcmeAS@N?(olHy`uVBq!ia0vp^8bBPt!3HF=`^^smDajJoh?3y^w370~qErUQl>DSr z1<%~X^wgl##FWaylc_cg49rTIArU1JzCKpT`MG+DAT@dwxdlMo3=B5*6$OdO*{LN8 zNvY|XdA3ULckfqH$V{%1*XSQL?vFu&J;D8jzb> zlBiITo0C^;Rbi_HHrEQs1_|pcDS(xfWZNo192Makpx~Tel&WB=XRMoSU}&gdW~OIo zVrph)sH0$HU}&Uo07PcGh9*{~W>!Y#3Q(W~w5=#5%__*n4QdyVXRDM^Qc_^0uU}qX zu2*iXmtT~wZ)j<02{OaTNEfI=x41H|B(Xv_uUHvof=g;~a#3bMNoIbY0?5R~r2Ntn zTP2`NAzsKWfE$}v3=Jk=fazBx7U&!58GyV5Q|Rl9UukYGTy=3tP%6T`SPd=?sVqp< z4@xc0FD*(2MqHXQ$f^P>=c3falKi5O{QMkPCQEUIa|mpB;0jF)%Rcdb&7uds7XjB3t&7-l@9Zd^R^!d;H|AEr?m}fER$2kA-|B-lSYyAA*yW(@j=NdcHjAnWm9$)G) zv7JR#!;#Y~ph;-T0%WGXo>wmK%Zlh3|4uo`-e8NLvw3RO?CU(!8kRp`p24s&Nh(SC zIxpMIqtyvwF(+>eSi4wOFv>M~o&TFwXUE_!t{TA@bx^r$UT^)R*atfjcRjL+!s0ip1{kKb>CM6ta)?v`z84I}gjZ|G3Fm_awW+_gR(0de?X25p46B zRK#Oe-46X=Ib(~>ffKyVY8Tk|v3txC{TZdly80l)X7R6?=Au@t_dZx1eDovh<@(M^ zS9c1SbbsKGU@n|rw)vPX+u{e?pVtZ9;h(UFQ_S&dCCk|WzQXArv{%eeXxn|P)4zJs z>nG;k|IIZd`L#1veVzJL_wobI&EM4*^t*`7tYOcJVLfi~{LdqSJ#591=N^84z;|Qw zmUwpWbxmKVW!XNPQ+76!}K`jw4bxir`HQuW#;VMfB5em z&w}aE!Iz5jJFZG)Jx*U!#ChxaSGFCzVTVLIEk(C~7Wg$ubb9xX6Fzw#C+x1Ax3^-t zu+7m^y-xx*G1lD)#}YlDNc*?Fsh(AWA#GY(r^=SjY*1n9>FVdQ&MBb@0Kw}S AmjD0& diff --git a/JSBox/Rules-lhie1/assets/new_rules_tag.png b/JSBox/Rules-lhie1/assets/new_rules_tag.png deleted file mode 100644 index a9555cb11993f51b418eca3c791c016defcc212f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3935 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 diff --git a/JSBox/Rules-lhie1/assets/new_version_tag.png b/JSBox/Rules-lhie1/assets/new_version_tag.png deleted file mode 100644 index 9c7516b69af594b0a929f8d3702f89f66a27ad90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3837 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 diff --git a/JSBox/Rules-lhie1/assets/selected_icon.png b/JSBox/Rules-lhie1/assets/selected_icon.png deleted file mode 100644 index 0f1342c85089c11f4b9dec571e6f14e642d27ecf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3589 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 I%)R6P2gD{R_y7O^ diff --git a/JSBox/Rules-lhie1/assets/thankyou.jpg b/JSBox/Rules-lhie1/assets/thankyou.jpg deleted file mode 100644 index 892823a16d2b084f8a39831b3ad60fdd18be1f65..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66727 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 z 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 diff --git a/JSBox/Rules-lhie1/assets/thankyou2.jpg b/JSBox/Rules-lhie1/assets/thankyou2.jpg deleted file mode 100644 index 2cd5c604ed3cef7ce541a9f30cba1c718f8d272b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55729 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 F{|3Jg3}*lU diff --git a/JSBox/Rules-lhie1/assets/today_jsbox.png b/JSBox/Rules-lhie1/assets/today_jsbox.png deleted file mode 100644 index 980e08321996100a55a42d9626d145273f9c193a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8023 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 diff --git a/JSBox/Rules-lhie1/assets/today_pull.png b/JSBox/Rules-lhie1/assets/today_pull.png deleted file mode 100644 index fc0f192a9f98e76ff851c9b08767d8b1854825bf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2622 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 wXxOaVzfJ$`*#KqVRvO7kpAfFKb8)|{Bod5s; diff --git a/JSBox/Rules-lhie1/assets/today_quan_off.png b/JSBox/Rules-lhie1/assets/today_quan_off.png deleted file mode 100644 index 8c3cd5eafc61d3ac47220d206004b396105a96a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3758 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 diff --git a/JSBox/Rules-lhie1/config.json b/JSBox/Rules-lhie1/config.json deleted file mode 100644 index e345a31..0000000 --- a/JSBox/Rules-lhie1/config.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "info": { - "name": "Rules-lhie1", - "url": "https://raw.githubusercontent.com/Fndroid/jsbox_script/master/Rules-lhie1/.output/Rules-lhie1.box", - "version": "1.8.1", - "author": "Fndroid", - "website": "https://github.com/Fndroid/jsbox_script/tree/master/Rules-lhie1", - "types": 15 - }, - "settings": { - "minSDKVer": "1.0.0", - "minOSVer": "10.0.0", - "idleTimerDisabled": false, - "autoKeyboardEnabled": false, - "keyboardToolbarEnabled": false, - "rotateDisabled": false - }, - "widget": { - "tintColor": "", - "iconColor": "" - } -} diff --git a/JSBox/Rules-lhie1/data.js b/JSBox/Rules-lhie1/data.js deleted file mode 100644 index d74b461..0000000 --- a/JSBox/Rules-lhie1/data.js +++ /dev/null @@ -1 +0,0 @@ -{"urls":[],"widgetSettings":"# 带流量信息的订阅或托管链接\r\n# 每行一个,格式为:name=url","generalSettings":"[General]\r\n// Auto\r\nloglevel = notify\r\ndns-server = system,1.2.4.8,223.5.5.5,223.6.6.6\r\nskip-proxy = 127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,100.64.0.0/10,17.0.0.0/8,localhost,*.local,*.crashlytics.com\r\n\r\n// iOS\r\nexternal-controller-access = lhie1@0.0.0.0:6170\r\n\r\nallow-wifi-access = true\r\n\r\n// macOS\r\ninterface = 0.0.0.0\r\nsocks-interface = 0.0.0.0\r\nport = 8888\r\nsocks-port = 8889\r\n\r\nenhanced-mode-by-rule = false\r\nshow-error-page-for-reject = true\r\n\r\n// Auto\r\nexclude-simple-hostnames = true\r\nipv6 = true\r\nreplica = false\r\n\r\n[Replica]\r\nhide-apple-request = true\r\nhide-crashlytics-request = true\r\nhide-udp = false\r\nuse-keyword-filter = false","proxyGroupSettings":"[Proxy Group]\r\n🍃 Proxy = select,🏃 Auto,🚀 Direct,Proxy Header\r\n\r\n🍂 Domestic = select,🚀 Direct,🍃 Proxy\r\n\r\n🍎 Only = select,🚀 Direct,Proxy Header\r\n\r\n☁️ Others = select,🚀 Direct,🍃 Proxy\r\n\r\n🏃 Auto = url-test,ProxyHeader,url = http://www.gstatic.com/generate_204,interval = 1200","customSettings":"# Custom","hostSettings":"// custom host","urlrewriteSettings":"// custom url rewrite","ssidSettings":"// custom ssid","headerrewriteSettings":"// custom header rewrite","hostnameSettings":"","mitmSettings":"enable = true\r\nca-passphrase = 4B676386\r\nca-p12 = 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\r\n","workspace":{"fileName":"","serverData":[],"withEmoji":false,"usualData":[{"title":{"bgcolor":false,"text":"ADS","textColor":false}},{"title":{"bgcolor":false,"text":"MITM","textColor":false}},{"title":{"bgcolor":false,"text":"Emoji","textColor":false}},{"title":{"bgcolor":false,"text":"导出","textColor":false}}],"outputFormat":"Surge 3 TF","serverSuffix":"","deleteKeywords":"","customProxyGroup":{"ProxyHeader":[]}},"repoSha":{}} \ No newline at end of file diff --git a/JSBox/Rules-lhie1/defaultConf/customSettings b/JSBox/Rules-lhie1/defaultConf/customSettings deleted file mode 100644 index b55c643..0000000 --- a/JSBox/Rules-lhie1/defaultConf/customSettings +++ /dev/null @@ -1 +0,0 @@ -# Custom \ No newline at end of file diff --git a/JSBox/Rules-lhie1/defaultConf/generalSettings b/JSBox/Rules-lhie1/defaultConf/generalSettings deleted file mode 100644 index 9f60ea7..0000000 --- a/JSBox/Rules-lhie1/defaultConf/generalSettings +++ /dev/null @@ -1,30 +0,0 @@ -[General] -// Auto -loglevel = notify -dns-server = system,1.2.4.8,223.5.5.5,223.6.6.6 -skip-proxy = 127.0.0.1,192.168.0.0/16,10.0.0.0/8,172.16.0.0/12,100.64.0.0/10,17.0.0.0/8,localhost,*.local,*.crashlytics.com - -// iOS -external-controller-access = lhie1@0.0.0.0:6170 - -allow-wifi-access = true - -// macOS -interface = 0.0.0.0 -socks-interface = 0.0.0.0 -port = 8888 -socks-port = 8889 - -enhanced-mode-by-rule = false -show-error-page-for-reject = true - -// Auto -exclude-simple-hostnames = true -ipv6 = true -replica = false - -[Replica] -hide-apple-request = true -hide-crashlytics-request = true -hide-udp = false -use-keyword-filter = false \ No newline at end of file diff --git a/JSBox/Rules-lhie1/defaultConf/headerrewriteSettings b/JSBox/Rules-lhie1/defaultConf/headerrewriteSettings deleted file mode 100644 index 9785a7b..0000000 --- a/JSBox/Rules-lhie1/defaultConf/headerrewriteSettings +++ /dev/null @@ -1 +0,0 @@ -// custom header rewrite \ No newline at end of file diff --git a/JSBox/Rules-lhie1/defaultConf/hostSettings b/JSBox/Rules-lhie1/defaultConf/hostSettings deleted file mode 100644 index 9db2d42..0000000 --- a/JSBox/Rules-lhie1/defaultConf/hostSettings +++ /dev/null @@ -1 +0,0 @@ -// custom host \ No newline at end of file diff --git a/JSBox/Rules-lhie1/defaultConf/hostnameSettings b/JSBox/Rules-lhie1/defaultConf/hostnameSettings deleted file mode 100644 index e69de29..0000000 diff --git a/JSBox/Rules-lhie1/defaultConf/mitmSettings b/JSBox/Rules-lhie1/defaultConf/mitmSettings deleted file mode 100644 index a595a2d..0000000 --- a/JSBox/Rules-lhie1/defaultConf/mitmSettings +++ /dev/null @@ -1,3 +0,0 @@ -enable = true -ca-passphrase = 4B676386 -ca-p12 = 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 diff --git a/JSBox/Rules-lhie1/defaultConf/proxyGroupSettings b/JSBox/Rules-lhie1/defaultConf/proxyGroupSettings deleted file mode 100644 index da8de48..0000000 --- a/JSBox/Rules-lhie1/defaultConf/proxyGroupSettings +++ /dev/null @@ -1,10 +0,0 @@ -[Proxy Group] -🍃 Proxy = select,🏃 Auto,🚀 Direct,Proxy Header - -🍂 Domestic = select,🚀 Direct,🍃 Proxy - -🍎 Only = select,🚀 Direct,Proxy Header - -☁️ Others = select,🚀 Direct,🍃 Proxy - -🏃 Auto = url-test,ProxyHeader,url = http://www.gstatic.com/generate_204,interval = 1200 \ No newline at end of file diff --git a/JSBox/Rules-lhie1/defaultConf/ssidSettings b/JSBox/Rules-lhie1/defaultConf/ssidSettings deleted file mode 100644 index 0b22e8b..0000000 --- a/JSBox/Rules-lhie1/defaultConf/ssidSettings +++ /dev/null @@ -1 +0,0 @@ -// custom ssid \ No newline at end of file diff --git a/JSBox/Rules-lhie1/defaultConf/urlrewriteSettings b/JSBox/Rules-lhie1/defaultConf/urlrewriteSettings deleted file mode 100644 index e164c55..0000000 --- a/JSBox/Rules-lhie1/defaultConf/urlrewriteSettings +++ /dev/null @@ -1 +0,0 @@ -// custom url rewrite \ No newline at end of file diff --git a/JSBox/Rules-lhie1/defaultConf/widgetSettings b/JSBox/Rules-lhie1/defaultConf/widgetSettings deleted file mode 100644 index 59c76be..0000000 --- a/JSBox/Rules-lhie1/defaultConf/widgetSettings +++ /dev/null @@ -1,2 +0,0 @@ -# 带流量信息的订阅或托管链接 -# 每行一个,格式为:name=url \ No newline at end of file diff --git a/JSBox/Rules-lhie1/docs.md b/JSBox/Rules-lhie1/docs.md deleted file mode 100644 index 5094ff2..0000000 --- a/JSBox/Rules-lhie1/docs.md +++ /dev/null @@ -1,60 +0,0 @@ -### Rules-lhie1脚本使用简介 - -#### 主界面名词 -- 去广告:加载去广告规则(现有总规则6000+) -- 开启MITM:不选中则不使用MITM证书,选中后默认使用lhie1的证书(CA 4B676386),可以在进阶设置中进行自定义 -- 节点后缀:用于在节点后添加UDP、TFO和插件等功能 -- 导出配置:采用Action Sheet将.conf配置文件导出,不打开则尝试直接导出配置文件到Surge 3 -- 进阶设置:可自行配置常规(General)、代理分组(Proxy Group)、代理规则(Custom Rule)、本地DNS映射(Host)、URL重定向(URL Rewrite)、Header修改(Header Rewrite)、SSID、主机名(Hostname)和配置根证书(MITM),也可一键还原全部进阶设置 -- 生成配置:拉取规则生成.conf配置文件 - -#### 节点导入编辑 -> 这是脚本的一个特点,可以对节点进行编辑筛选等操作。 - -- 导入、更新:可以通过剪贴板或二维码导入,支持``ss://链接``、``Surge链接``和``托管地址``,支持批量导入(每行一个) -- 倒序:将节点顺序颠倒,方便不同机场节点选择 -- 占位符:为策略组添加占位符,默认Auto组的占位符是ProxyHeader -- 特殊代理:节点左滑即可将节点设置为某些链接的特殊代理,按钮可以设置Direct、查看设置和清除特殊代理设置 -- 节点删除:在节点列表左滑选择删除 -- 节点重命名:节点列表左滑选择重命名(方便部分不带节点名节点改名) -- 节点排序:节点列表长按拖动即可调整顺序 - -#### 新手指导 -熟悉以上内容后,只需根据自己的需求,导入节点,在列表中选择测速节点,选中开关,拉取规则生成即可享受最新的lhie1规则,而且在托管没有发生变化的情况下,每次进入脚本都可以直接拉取生成最新规则不需要重新配置。 - -#### 进阶设置 -> 进阶设置配置完毕后即可自动保存 - -- 常规(General):常规配置内容,可以设置DNS、Replica等内容 -- 代理分组(Proxy Group):配置代理组内容,每个组别都可以通过``Proxy Header(有空格)``代表所有节点名,``ProxyHeader(无空格)``代替Auto节点名 -- 代理规则(Custom Rule):自定义规则配置,将需要添加的规则添加到规则的最上面,如果要删除lhie1的规则,在规则前添加``-``即可,添加的优先级较高 -- 本地DNS映射(Host):自定义本地DNS映射 -- URL重定向(URL Rewrite):自定义URL重定向 -- Header修改(Header Rewrite):自定义Header修改 -- SSID:自定义SSID -- 主机名(Hostname):自定义主机名 -- MITM:用于配置根证书,默认为lhie1的证书(CA 4B676386),也可自行配置 - -注: -1.以上进阶设置请在“知道自己在做什么”的情况下修改; -2.如果信息填错导致Surge无法启动,可以将对应部分清空保存即可自动恢复为默认,也可一键还原全部进阶设置。 - -#### JSBox小组件 -> 可在iOS的Widget页面中添加使用,使用前需先在JSBox的小组件设置中选中该脚本。小组件视图高度可考虑设置为120。 - -- Surge3启动/停止运行(红色Surge3图标):利用Surge3提供的URL Scheme,可做到Surge3一键启动/停止运行 -- 生成配置(绿色下载图标):一键生成配置,并根据个人脚本中的设置,自动执行导出到Surge3或者打开导出配置的系统选单 -- 打开脚本(蓝色JSBox图标):从小组件进到该JSBox脚本的主界面 - -> 当规则有更新时小组件会有角标提醒及更新内容提示 - -#### URL Scheme -脚本支持自动根据配置拉取最新规则,URL Scheme如下: -``` -jsbox://run?name=Rules-lhie1&auto=1 -``` - -#### 最后 -目前该JSBox脚本只支持生成Surge3的配置,生成配置的各项功能已经能替代大部分的Workflow的自定义功能。 - -如觉得这个脚本好用,愿意打赏,感激不尽。 diff --git a/JSBox/Rules-lhie1/donate.md b/JSBox/Rules-lhie1/donate.md deleted file mode 100644 index 1d29b5f..0000000 --- a/JSBox/Rules-lhie1/donate.md +++ /dev/null @@ -1 +0,0 @@ -感谢所有可爱的支持者! \ No newline at end of file diff --git a/JSBox/Rules-lhie1/main.js b/JSBox/Rules-lhie1/main.js deleted file mode 100644 index b8b37b3..0000000 --- a/JSBox/Rules-lhie1/main.js +++ /dev/null @@ -1,55 +0,0 @@ -console.clear() - -const app = require('scripts/app') -const init = require('scripts/init') -const today = require('scripts/today') -const extension = require('scripts/extension') -const updateUtil = require('scripts/updateUtil') -const siri = require('scripts/siri') - -$app.autoKeyboardEnabled = true -$app.rotateDisabled = true -$app.keyboardToolbarEnabled = true - -let query = $context.query - -$objc('notification').invoke('objectForKey') - -if (query.auto == 1) { - app.autoGen() - return -} - -if ($app.env === $env.today) { - today.renderTodayUI() - return -} else if ($app.env === $env.safari) { - extension.renderExtensionUI() - return -} else if ($app.env === $env.action) { - extension.collectRules() - return -} else if ($app.env === $env.siri) { - siri.renderSiriUI() - return -} - -app.setUpWorkspace() - -init.asyncInitialize() - -app.renderUI() - -updateUtil.getLatestVersion({ - handler: version => { - if (updateUtil.needUpdate(version, updateUtil.getCurVersion())) { - $http.get({ - url: 'https://raw.githubusercontent.com/Fndroid/jsbox_script/master/Rules-lhie1/updateLog.md' + '?t=' + new Date().getTime(), - handler: resp => { - updateUtil.updateScript(version) - } - }) - - } - } -}) diff --git a/JSBox/Rules-lhie1/restart.fndroid b/JSBox/Rules-lhie1/restart.fndroid deleted file mode 100644 index f32a580..0000000 --- a/JSBox/Rules-lhie1/restart.fndroid +++ /dev/null @@ -1 +0,0 @@ -true \ No newline at end of file diff --git a/JSBox/Rules-lhie1/scripts/app.js b/JSBox/Rules-lhie1/scripts/app.js deleted file mode 100644 index e90227e..0000000 --- a/JSBox/Rules-lhie1/scripts/app.js +++ /dev/null @@ -1,3010 +0,0 @@ -const proxyUtil = require('scripts/proxyUitl') -const updateUtil = require('scripts/updateUtil') -const cu = require('scripts/colorUtil') -const ruleUpdateUtil = require('scripts/ruleUpdateUtil') -const colorUtil = require('scripts/colorUtil') - -const FILE = 'data.js' -const PROXY_HEADER = 'ProxyHeader' - -const settingKeys = ['widgetSettings', 'generalSettings', 'proxyGroupSettings', 'customSettings', 'hostSettings', 'urlrewriteSettings', 'ssidSettings', 'headerrewriteSettings', 'hostnameSettings', 'mitmSettings'] - -if (!$file.exists(FILE)) { - $file.write({ - data: $data({ "string": JSON.stringify({ "urls": [] }) }), - path: FILE - }) -} - -String.prototype.reverse = function () { - return this.toString().split('').reverse().join('') -} - -String.prototype.contains = function (sub) { - return this.indexOf(sub) > -1 -} - -setDefaultSettings() - -let screenHeight = $device.info.screen.height -const screenWidth = $device.info.screen.width - -const iPhoneX = $device.isIphoneX -if (iPhoneX) { - screenHeight -= 48 -} - -const statusBarHeight = iPhoneX ? 44 : 20 -const navBarHeight = 45 - -const selectedColor = $color("#c1dcf0") -const btnOnFg = colorUtil.getColor("usualBtnOnFg") -const btnOnBg = colorUtil.getColor("usualBtnOnBg") -const btnOffFg = colorUtil.getColor("usualBtnOffFg") -const btnOffBg = colorUtil.getColor("usualBtnOffBg") - -function renderUI() { - $ui.render({ - props: { - title: "lhie1规则", - navBarHidden: true, - statusBarHidden: colorUtil.getColor("statusBar", true) === 'clear' ? true : false, - statusBarStyle: colorUtil.getColor("statusBar", true) === '#ffffff' ? 1 : 0, - id: "bodyView", - }, - events: { - appeared: function (sender) { - // $("bodyView").runtimeValue().$viewController().$navigationController().$interactivePopGestureRecognizer().$delegate() - // $("bodyView").runtimeValue().$viewController().$navigationController().$interactivePopGestureRecognizer().$setDelegate(null) - if (typeof $ui.window.next !== 'undefined') { - console.error('警告:正在调试模式运行,界面可能会被遮挡,请从JSBox主界面运行此脚本!') - $addin.restart() - } - } - }, - views: [{ - type: "view", - props: { - id: "navBar", - bgcolor: colorUtil.getColor("navBar") - }, - layout: (make, view) => { - make.height.equalTo(navBarHeight + statusBarHeight) - make.width.equalTo(view.super) - }, - views: [{ - type: "lottie", - props: { - id: "navLoadingIcon", - loop: false, - speed: 3, - src: "assets/balloons.json" - }, - layout: (make, view) => { - make.size.equalTo($size(screenWidth, screenHeight)) - make.bottom.equalTo(navBarHeight + statusBarHeight + 80) - // make.right.equalTo(view.prev.left).offset(-15) - // make.bottom.equalTo(view.super).offset(100) - } - }, { - type: "label", - props: { - text: "lhie1规则", - textColor: colorUtil.getColor("navTitleText"), - font: $font("bold", 25) - }, - layout: (make, view) => { - make.height.equalTo(navBarHeight) - make.top.equalTo(statusBarHeight) - make.left.equalTo(15) - } - }, { - type: "image", - props: { - icon: $icon("204", colorUtil.getColor("navIconRight"), $size(25, 25)), - bgcolor: $color("clear") - }, - layout: (make, view) => { - make.right.equalTo(view.super).offset(-15) - make.height.width.equalTo(25) - make.bottom.equalTo(view.super).offset(-10) - }, - events: { - tapped: sender => { - archivesHandler() - } - } - }, { - type: "image", - props: { - icon: $icon("074", colorUtil.getColor("navIconLeft"), $size(25, 25)), - bgcolor: $color("clear") - }, - layout: (make, view) => { - make.right.equalTo(view.prev.left).offset(-15) - make.height.width.equalTo(25) - make.bottom.equalTo(view.super).offset(-10) - }, - events: { - tapped: sender => { - // $clipboard.text = 'GxsAtS84U7' - // $app.openURL("alipay://") - // $app.openURL("https://qr.alipay.com/c1x047207ryk0wiaj6m6ye3") - $ui.alert({ - title: '感谢支持', - message: '作者投入大量时间和精力对脚本进行开发和完善,你愿意给他赏杯咖啡支持一下吗?', - actions: [{ - title: "支付宝", - handler: () => { - $app.openURL($qrcode.decode($file.read("assets/thankyou2.jpg").image)) - } - }, { - title: "微信", - handler: () => { - $quicklook.open({ - image: $file.read("assets/thankyou.jpg").image - }) - } - }, { - title: "返回" - }] - }) - } - } - },] - }, { - type: "view", - props: { - id: "mainView" - }, - layout: (make, view) => { - make.height.equalTo(view.super).offset(navBarHeight + statusBarHeight); - make.width.equalTo(view.super) - make.top.equalTo(navBarHeight + statusBarHeight) - }, - views: [{ - type: "input", - props: { - id: "fileName", - text: '', - placeholder: "配置名(lhie1)" - }, - layout: (make, view) => { - make.width.equalTo(view.super).offset(-120) - make.height.equalTo(40) - make.left.top.equalTo(10) - }, - events: { - changed: sender => { - saveWorkspace() - }, - returned: sender => { - sender.blur() - } - } - }, { - type: "button", - props: { - type: $btnType.contactAdd, - id: "serverURL", - titleColor: colorUtil.getColor("importBtnText"), - title: " 导入节点", - }, - layout: (make, view) => { - make.width.equalTo(100) - make.height.equalTo(40) - make.right.equalTo(-10) - make.top.equalTo(10) - }, - events: { - tapped: sender => { - importMenu({ - handler: nodeImportHandler - }) - } - } - }, { - type: "matrix", - props: { - id: "serverControl", - columns: 3, - scrollEnabled: false, - itemHeight: 40, - bgcolor: $color("#f0f5f5"), - data: genControlItems(), - template: [{ - type: "label", - props: { - id: "title", - align: $align.center, - font: $font(14), - textColor: colorUtil.getColor("controlBtnText"), - autoFontSize: true - }, - layout: $layout.fill - }], - info: {} - }, - layout: (make, view) => { - make.width.equalTo(view.super).offset(-20) - make.centerX.equalTo(view.super) - make.height.equalTo(40) - make.top.equalTo($("serverURL").bottom).offset(10) - }, - events: { - didSelect: (sender, indexPath, data) => { - let btnTitle = data.title.text - if (btnTitle === '节点倒序') { - reverseServerGroup() - } else if (btnTitle === '删除分组') { - deleteServerGroup() - } else if (btnTitle === '特殊代理') { - specialProxyGroup(); - } else { - groupShortcut() - } - } - } - }, { - type: "list", - props: { - id: "serverEditor", - data: [], - separatorHidden: true, - reorder: true, - actions: [{ - title: "delete", - handler: (sender, indexPath) => { - saveWorkspace() - } - }, { - title: "编辑", - color: $color("tint"), - handler: (sender, indexPath) => { - let od = sender.data - let section = od[indexPath.section] - let item = section.rows[indexPath.row] - showAlterDialog(section.title, item.proxyLink, (newSec, newLink) => { - item.proxyLink = newLink - item.proxyName.text = newLink.split(/\s*=/)[0] - section.rows[indexPath.row] = item - section.title = newSec - sender.data = formatListData(od) - saveWorkspace() - }) - } - }], - borderWidth: 2, - borderColor: $color("#f0f5f5"), - template: { - views: [{ - type: 'label', - props: { - id: 'proxyName', - align: $align.left, - line: 1, - textColor: colorUtil.getColor("editorItemText"), - font: $font(16), - }, - layout: (make, view) => { - make.width.equalTo(view.super).offset(-60) - make.height.equalTo(view.super) - make.left.equalTo(view.super).offset(15) - } - }, { - type: "image", - props: { - id: "proxyAuto", - icon: $icon("062", colorUtil.getColor("editorItemIcon"), $size(15, 15)), - bgcolor: $color("clear"), - hidden: true - }, - layout: (make, view) => { - make.right.equalTo(view.super).offset(-15) - make.size.equalTo($size(15, 15)) - make.centerY.equalTo(view.super) - } - }] - }, - // radius: 5 - }, - layout: (make, view) => { - make.width.equalTo(view.super).offset(-20) - make.centerX.equalTo(view.super) - make.height.equalTo(screenHeight - 330 - (typeof $ui.window.next !== 'undefined' ? 45 : 0)) - make.top.equalTo($("serverControl").bottom) - }, - events: { - didSelect: (sender, indexPath, data) => { - let proxyName = data.proxyName.text - let isSelected = !data.proxyAuto.hidden - let controlInfo = $("serverControl").info - let currentGroup = controlInfo.currentProxyGroup - let customProxyGroup = controlInfo.customProxyGroup || {} - if (isSelected) { - data.proxyAuto.hidden = true - customProxyGroup[currentGroup] = customProxyGroup[currentGroup].filter(i => i !== proxyName) - } else { - data.proxyAuto.hidden = false - customProxyGroup[currentGroup].push(proxyName) - } - let uiData = sender.data - uiData[indexPath.section].rows[indexPath.row] = data - sender.data = uiData - $("serverControl").info = controlInfo - saveWorkspace() - }, - reorderFinished: data => { - $thread.background({ - delay: 0, - handler: function () { - $("serverEditor").data = formatListData(data) - saveWorkspace() - } - }) - }, - forEachItem: (view, indexPath) => { - if (indexPath.row % 2 === 1) { - view.bgcolor = $color("#f1f8ff") - } else { - view.bgcolor = $color("white") - } - }, - pulled: sender => { - let listSections = $("serverEditor").data.filter(i => /^http/.test(i.url)) - linkHandler(listSections.map(i => i.url).join('\n'), { - handler: (res, name, url, type) => { - sender.endRefreshing() - nodeImportHandler(res, name, url, type) - } - }) - } - } - }, { - type: "input", - props: { - id: "serverSuffixEditor", - placeholder: '节点后缀', - text: '', - font: $font(18), - type: $kbType.ascii - }, - layout: (make, view) => { - make.top.equalTo(view.prev.bottom).offset(10) - make.width.equalTo(view.prev).offset(-125) - make.height.equalTo(45) - make.left.equalTo(view.prev.left) - }, - events: { - changed: sender => { - saveWorkspace() - }, - returned: sender => { - sender.blur() - } - } - }, { - type: "view", - props: { - id: "outputFormatLabel", - bgcolor: $color("#f1f1f1"), - radius: 6 - }, - layout: (make, view) => { - make.right.equalTo(view.super.right).offset(-10) - make.top.equalTo(view.prev) - make.height.equalTo(view.prev) - make.width.equalTo(120) - }, - views: [{ - type: "image", - props: { - data: $file.read('assets/menu_icon.png'), - bgcolor: $color("clear"), - hidden: true - }, - layout: (make, view) => { - make.left.equalTo(view.super).offset(10) - make.height.width.equalTo(view.super.height).offset(-25) - make.centerY.equalTo(view.super) - } - }, { - type: "image", - props: { - id: "outputFormatIcon", - data: $file.read('assets/today_surge.png'), - bgcolor: $color("clear") - }, - layout: (make, view) => { - make.left.equalTo(view.super).offset(5) - make.height.width.equalTo(view.super.height).offset(-15) - make.centerY.equalTo(view.super).offset(1) - } - }, { - type: 'label', - props: { - textColor: colorUtil.getColor("outputFormatText"), - id: 'outputFormatType', - text: 'Surge3 Pro', - align: $align.center, - font: $font("bold", 16), - autoFontSize: true, - }, - layout: (make, view) => { - make.height.equalTo(view.super) - make.width.equalTo(view.super).offset(-45) - make.left.equalTo(view.prev.right) - make.top.equalTo(view.super) - } - }], - events: { - tapped: sender => { - renderOutputFormatMenu(sender) - } - } - }, { - type: "matrix", - props: { - id: "usualSettings", - columns: 4, - itemHeight: 40, - spacing: 5, - scrollEnabled: false, - data: [{ - title: { text: 'ADS', bgcolor: btnOnFg, textColor: btnOffFg } - }, { - title: { text: 'MITM', bgcolor: btnOnFg, textColor: btnOffFg } - }, { - title: { text: 'Emoji', bgcolor: btnOnFg, textColor: btnOffFg } - }, { - title: { text: '导出', bgcolor: btnOnFg, textColor: btnOffFg } - }], - template: [{ - type: "label", - props: { - id: "title", - align: $align.center, - font: $font(14), - radius: 5, - borderColor: btnOnBg, - borderWidth: 0.3, - }, - layout: $layout.fill - }] - }, - layout: (make, view) => { - make.width.equalTo(view.super).offset(-10) - make.centerX.equalTo(view.super) - make.height.equalTo(50) - make.top.equalTo($("serverSuffixEditor").bottom).offset(5) - }, - events: { - didSelect: (sender, indexPath, data) => { - if (indexPath.row === 2) { - refreshListEmoji(isEmoji()) - } - data.title.bgcolor = cu.isEqual(data.title.bgcolor, btnOnBg) ? btnOffBg : btnOnBg - data.title.textColor = cu.isEqual(data.title.bgcolor, btnOnFg) ? btnOffFg : btnOnFg - let uiData = $("usualSettings").data - uiData[indexPath.row] = data - $("usualSettings").data = uiData - saveWorkspace() - } - } - }] - }, { - type: "button", - props: { - id: "advanceBtn", - titleColor: colorUtil.getColor("advanceBtnFg"), - title: "进阶设置", - bgcolor: colorUtil.getColor("advanceBtnBg") - }, - layout: (make, view) => { - make.width.equalTo((screenWidth / 2 - 15) * 0.686 - 10) - make.left.equalTo(10) - make.height.equalTo(40) - make.top.equalTo($("usualSettings").bottom).offset(5) - }, - events: { - tapped: sender => { - renderAdvanceUI() - } - } - }, { - type: "button", - props: { - id: "aboutBtn", - titleColor: colorUtil.getColor("aboutBtnFg"), - title: "关于", - bgcolor: colorUtil.getColor("aboutBtnBg") - }, - layout: (make, view) => { - make.height.equalTo(40) - make.width.equalTo((screenWidth / 2 - 15) * 0.314 + 5) - make.left.equalTo($("advanceBtn").right).offset(5) - make.top.equalTo($("usualSettings").bottom).offset(5) - }, - events: { - tapped: sender => { - renderAboutUI() - } - } - }, { - type: "button", - props: { - id: "genBtn", - titleColor: colorUtil.getColor("genBtnFg"), - bgcolor: colorUtil.getColor("genBtnBg"), - title: "生成配置" - }, - layout: (make, view) => { - make.width.equalTo((screenWidth - 10) * 0.5 - 5) - make.height.equalTo(40) - make.right.equalTo(view.super).offset(-10) - make.top.equalTo($("usualSettings").bottom).offset(5) - }, - events: { - tapped: sender => { - makeConf({ - onStart: () => { - $("progressView").hidden = false - $ui.animate({ - duration: 0.2, - animation: function () { - $("progressView").alpha = 1 - } - }) - }, - onProgress: (p, hint) => { - hint !== '' && ($("loadingHintLabel").text = hint) - $("progressBar").value = p - }, - onDone: res => { - $ui.animate({ - duration: 0.3, - animation: function () { - $("progressView").alpha = 0 - }, - completion: function () { - $("loadingHintLabel").text = '处理中,请稍后' - $("progressBar").value = 0 - $("progressView").hidden = true - } - }) - exportConf(res.fileName, res.fileData, res.target, res.actionSheet, false, () => { - $http.stopServer() - }) - $app.listen({ - resume: function () { - $http.stopServer() - } - }) - }, - onError: res => { - $("progressView").value = 0 - $("progressView").hidden = true - } - }) - }, - longPressed: sender => { - $share.sheet(['data.js', $file.read('data.js')]) - } - } - }, { - type: "blur", - props: { - id: "progressView", - style: 1, - alpha: 0, - hidden: true - }, - layout: $layout.fill, - views: [{ - type: "label", - props: { - id: "loadingHintLabel", - text: "处理中,请稍后", - textColor: $color("black"), - }, - layout: (make, view) => { - make.centerX.equalTo(view.super) - make.centerY.equalTo(view.super).offset(-30) - } - }, { - type: "progress", - props: { - id: "progressBar", - value: 0 - }, - layout: (make, view) => { - make.width.equalTo(screenWidth * 0.8) - make.center.equalTo(view.super) - make.height.equalTo(3) - } - }] - },] - }) -} - -let nodeImportHandler = (res, name, url, type = -1) => { - // 如果是托管,url不为undefined - // console.log([res, name, url]) - let listData = $("serverEditor").data || [] - let existsSec = listData.find(item => item.url === url) - if (!res || res.length === 0) { - $ui.alert({ - title: `${existsSec ? '更新' : '获取'}失败`, - message: `${existsSec ? existsSec.title : url}` - }) - return - } - let section = existsSec || { title: name, rows: [], url: url } - section.rows = [] - let controlInfo = $("serverControl").info - for (let idx in res) { - if (res[idx].split("=")[1].trim() == 'direct') { - // 过滤直连 - continue - } - let selected = controlInfo.customProxyGroup[controlInfo.currentProxyGroup].indexOf(res[idx].split('=')[0].trim()) > -1 - section.rows.push({ - proxyName: { text: res[idx].split('=')[0].trim() }, - proxyLink: res[idx], - proxyAuto: { hidden: !selected }, - proxyType: type - }) - } - if (!existsSec) { - listData.unshift(section) - } - $("serverEditor").data = listData - saveWorkspace() -} - -function formatListData(data) { - if (!data || data.length === 0) { - return [] - } - let noGroup = [] - data = data.map(i => { - if (i.title === '' || i.rows.length === 0) { - noGroup = noGroup.concat(i.rows) - return null - } - return i - }).filter(i => i !== null) - if (noGroup.length > 0) { - data.unshift({ title: "", rows: noGroup }) - } - return data -} - - -function loading(on) { - let iconView = $("navLoadingIcon") - if (on) { - // iconView.play() - } else { - // iconView.pause() - } -} - -function refreshListEmoji(isEmoji) { - function addEmoji(emojiSet, name) { - let minIdx = 300; - let resEmoji = ''; - for (let idx in emojiSet) { - let reg = `(${emojiSet[idx].slice(1).join('|')})` - let matcher = name.match(new RegExp(reg)) - if (matcher && matcher.index < minIdx) { - minIdx = matcher.index - resEmoji = emojiSet[idx][0] - } - } - return minIdx !== 300 ? `${resEmoji} ${name}` : name - } - - function removeEmoji(emojiSet, name) { - let emoji = emojiSet.map(i => i[0]) - let reg = `(${emoji.join('|')}) ` - return name.replace(new RegExp(reg, 'g'), '') - } - - let serverEditorData = $("serverEditor").data - - loading(true) - $http.get({ - url: "https://raw.githubusercontent.com/Fndroid/country_emoji/master/emoji.json" + `?t=${new Date().getTime()}` - }).then(resp => { - loading(false) - let emojiSet = resp.data - $("serverEditor").data = serverEditorData.map(sec => { - sec.rows = sec.rows.map(i => { - i.proxyLink = isEmoji ? removeEmoji(emojiSet, i.proxyLink) : addEmoji(emojiSet, i.proxyLink) - i.proxyName.text = i.proxyLink.split(/\s*=/)[0] - return i - }) - return sec - }) - saveWorkspace() - }).catch(error => { - loading(false) - $ui.alert("Emoji配置获取失败") - }) -} - -function showAlterDialog(reg, rep, callback) { - let fontSize = $text.sizeThatFits({ - text: rep, - width: screenWidth - 100, - font: $font(16) - }) - let view = { - type: "blur", - layout: $layout.fill, - props: { - id: "alertBody", - style: 1, - alpha: 0 - }, - views: [{ - type: "view", - props: { - id: "alterMainView", - bgcolor: $color("#ccc"), - smoothRadius: 10 - }, - layout: (make, view) => { - make.height.equalTo(230 + fontSize.height); - make.width.equalTo(view.super).offset(-60); - make.center.equalTo(view.super) - }, - events: { - tapped: sender => { } - }, - views: [{ - type: "label", - props: { - text: "组别名称", - font: $font("bold", 16) - }, - layout: (make, view) => { - make.top.equalTo(view.super).offset(20); - make.left.equalTo(view.super).offset(10); - } - }, { - type: "input", - props: { - id: "alterInputSection", - text: reg, - autoFontSize: true - }, - events: { - returned: sender => { - sender.blur() - } - }, - layout: (make, view) => { - make.top.equalTo(view.prev.bottom).offset(10); - make.width.equalTo(view.super).offset(-20); - make.centerX.equalTo(view.super) - make.left.equalTo(view.super).offset(10); - make.height.equalTo(40) - } - }, { - type: "label", - props: { - text: "节点信息", - font: $font("bold", 16) - }, - layout: (make, view) => { - make.top.equalTo(view.prev.bottom).offset(15); - make.left.equalTo(view.super).offset(10); - } - }, { - type: "text", - props: { - id: "alberInputLink", - text: rep, - autoFontSize: true, - radius: 6, - font: $font(16), - bgcolor: $color("#eff0f2"), - insets: $insets(10, 5, 10, 5) - }, - events: { - returned: sender => { - sender.blur() - } - }, - layout: (make, view) => { - make.top.equalTo(view.prev.bottom).offset(10); - make.width.equalTo(view.super).offset(-20); - make.centerX.equalTo(view.super) - make.left.equalTo(view.super).offset(10); - make.height.equalTo(fontSize.height + 20) - } - }, { - type: 'button', - props: { - icon: $icon("064", $color("#fff"), $size(20, 20)), - id: 'confirmBtn', - radius: 25 - }, - layout: (make, view) => { - make.height.width.equalTo(50) - make.bottom.equalTo(view.super).offset(-10) - make.right.equalTo(view.super).offset(-10) - }, - events: { - tapped: sender => { - callback && callback($("alterInputSection").text, $("alberInputLink").text); - $("alertBody").remove(); - } - } - }] - }], - events: { - tapped: sender => { - sender.remove() - } - } - } - $("bodyView").add(view) - $ui.animate({ - duration: 0.2, - animation: () => { - $("alertBody").alpha = 1 - } - }) -} - -function renderOutputFormatMenu(superView) { - $("bodyView").add({ - type: "view", - props: { - id: "outputFormatSelectorView", - alpha: 0 - }, - layout: (make, view) => { - make.height.width.equalTo(view.super) - make.center.equalTo(view.super) - }, - views: [{ - type: "blur", - props: { - style: 2, - alpha: 1, - }, - layout: $layout.fill, - events: { - tapped: sender => { - hideView(sender); - } - } - }, { - type: "list", - props: { - id: "outputFormatSelectorItems", - radius: 15, - rowHeight: 50, - alwaysBounceVertical: false, - data: ['Surge 3 TF', 'Surge 3 Pro', 'Surge 2', 'Quantumult'], - frame: resetFrame(superView.frame), - header: { - type: "label", - props: { - text: "选择导出格式", - height: 50, - font: $font("bold", 15), - align: 1 - } - }, - separatorHidden: true - }, - events: { - didSelect: (sender, indexPath, data) => { - let type = 'surge' - if (data === 'Quantumult') { - type = 'quan' - } else if (data === 'Surge 2') { - type = 'surge2' - } - $("outputFormatType").text = data - $("outputFormatIcon").data = $file.read(`assets/today_${type}.png`) - saveWorkspace() - hideView(sender) - } - } - }] - }) - - $ui.animate({ - duration: 0.3, - damping: 0.8, - velocity: 0.3, - animation: () => { - superView.scale(1.2) - $("outputFormatSelectorView").alpha = 1 - $("outputFormatSelectorItems").frame = $rect(80, screenHeight - 430 + navBarHeight + statusBarHeight, screenWidth - 90, 250) - } - }) - - function hideView(sender) { - $ui.animate({ - duration: 0.2, - velocity: 0.5, - animation: () => { - superView.scale(1) - $("outputFormatSelectorView").alpha = 0; - $("outputFormatSelectorItems").frame = resetFrame(superView.frame); - }, - completion: () => { - sender.super.remove(); - } - }); - } -} - -function resetFrame(frame) { - return $rect(frame.x, frame.y + navBarHeight + statusBarHeight, frame.width, frame.height) -} - -function archivesHandler() { - const ARCHIVES = $addin.current.name + '/archivesFiles' - if (!$drive.exists(ARCHIVES)) { - $drive.mkdir(ARCHIVES) - } - console.log($drive.list(ARCHIVES)) - let latestVersion = ($app.info.build * 1) > 335 - let getFiles = function () { - return $drive.list(ARCHIVES).map(i => { - let path = i.runtimeValue().invoke('pathComponents').rawValue() - let name = latestVersion ? i : path[path.length - 1] - return { - archiveName: { - text: name, - textColor: name === $cache.get('currentArchive') ? $color("red") : $color("black") - } - } - }) - } - $("bodyView").add({ - type: "view", - props: { - id: "archivesView", - alpha: 0 - }, - layout: (make, view) => { - make.height.width.equalTo(view.super) - make.center.equalTo(view.super) - }, - views: [{ - type: "blur", - props: { - style: 2, - alpha: 1, - }, - layout: $layout.fill, - events: { - tapped: sender => { - $ui.animate({ - duration: 0.2, - animation: () => { - $("archivesView").alpha = 0 - $("archivesList").frame = $rect(0, 0, screenWidth, screenHeight) - }, - completion: () => { - sender.super.remove() - } - }) - } - } - }, { - type: "list", - props: { - id: "archivesList", - radius: 15, - data: getFiles(), - header: { - type: "label", - props: { - text: "配置备份", - height: 50, - font: $font("bold", 20), - align: $align.center - } - }, - template: { - props: { - bgcolor: $color("clear") - }, - views: [ - { - type: "label", - props: { - id: "archiveName" - }, - layout: (make, view) => { - make.width.equalTo(view.super).offset(-20) - make.left.equalTo(view.super).offset(10) - make.height.equalTo(view.super) - } - } - ] - }, - actions: [{ - title: "删除", - color: $color('red'), - handler: (sender, indexPath) => { - let fileName = sender.object(indexPath).archiveName.text - let success = $drive.delete(ARCHIVES + '/' + fileName) - if (success) { - sender.data = getFiles() - } - } - }, { - title: "导出", - handler: (sender, indexPath) => { - let fileName = sender.object(indexPath).archiveName.text - $share.sheet(['data.js', $drive.read(ARCHIVES + "/" + fileName)]) - } - }, { - title: "覆盖", - color: $color("tint"), - handler: (sender, indexPath) => { - let filename = sender.object(indexPath).archiveName.text - let success = $drive.write({ - data: $file.read('data.js'), - path: ARCHIVES + '/' + filename - }) - $ui.toast("配置文件覆盖" + (success ? "成功" : "失败")) - } - }] - }, - layout: (make, view) => { - make.height.equalTo(view.super).dividedBy(12 / 7) - make.width.equalTo(view.super).dividedBy(12 / 9) - make.center.equalTo(view.super) - }, - events: { - didSelect: (sender, indexPath, item) => { - let data = item.archiveName.text - if (/\..*?\.icloud/.test(data)) { - $ui.alert(`备份文件不在本地,请先进入iCloud下载,路径为:文件 -> JSBox -> ${$addin.current.name} -> archivesFiles`) - return - } - let success = $file.write({ - data: $drive.read(ARCHIVES + '/' + data), - path: "data.js" - }) - if (success) { - $cache.set('currentArchive', data) - $app.notify({ - name: 'loadData' - }) - $ui.animate({ - duration: 0.2, - animation: () => { - $("archivesView").alpha = 0 - $("archivesList").frame = $rect(0, 0, screenWidth, screenHeight) - }, - completion: () => { - sender.super.remove() - } - }) - } - } - } - }, { - type: "button", - props: { - title: "+", - circular: true, - }, - layout: (make, view) => { - make.bottom.equalTo(view.prev) - make.right.equalTo(view.prev).offset(-5) - make.height.width.equalTo(50) - }, - events: { - tapped: sender => { - $input.text({ - type: $kbType.default, - placeholder: "请输入备份文件名", - handler: function (text) { - if (text === '') { - $ui.error("无法创建备份") - return - } - let success = $drive.write({ - data: $file.read('data.js'), - path: ARCHIVES + '/' + text - }) - if (success) { - $cache.set('currentArchive', text) - sender.prev.data = getFiles() - } - } - }) - } - } - }] - }) - - $ui.animate({ - duration: .3, - damping: 0.8, - velocity: 0.3, - animation: () => { - $("archivesView").alpha = 1 - $("archivesList").scale(1.1) - } - }) -} - -// function specialProxyGroup() { -// if (getRulesReplacement()) { -// $ui.alert('检测到有规则替换,无法使用特殊代理设置') -// return -// } -// let groups = getProxyGroups(); -// const menuItems = groups.concat(['🚀 Direct', '查看设置', '清除设置']); -// $ui.menu({ -// items: menuItems, -// handler: function (mTitle, idx) { -// if (idx === menuItems.length - 1) { -// $("serverEditor").info = {}; -// saveWorkspace(); -// } -// else if (idx === menuItems.length - 2) { -// let videoProxy = $("serverEditor").info; -// let output = []; -// for (let k in videoProxy) { -// output.push(`${k} - ${videoProxy[k]}`); -// } -// $ui.alert(output.length > 0 ? output.join('\n') : "无设置特殊代理"); -// } -// else { -// let videoReg = require('scripts/videoReg') -// $ui.menu({ -// items: Object.keys(videoReg), -// handler: function (title, idx) { -// let proxyName = mTitle; -// let videoProxy = $("serverEditor").info; -// videoProxy[title] = proxyName; -// $("serverEditor").info = videoProxy; -// saveWorkspace(); -// } -// }); -// } -// } -// }); -// } - -function genControlItems() { - let currentProxyGroup = PROXY_HEADER - try { - currentProxyGroup = $("serverControl").info.currentProxyGroup - } catch (e) { } - return [{ - title: { text: '节点倒序' } - }, { - title: { text: currentProxyGroup } - }, { - title: { text: '删除分组' } - }] -} - -function getProxyGroups() { - let fileData = JSON.parse($file.read(FILE).string) - let proxyGroupSettings = fileData.proxyGroupSettings - let groups = proxyGroupSettings.split(/[\n\r]/).filter(i => /^(?!\/\/)[\s\S]+=[\s\S]+/.test(i)).map(i => i.split('=')[0].trim()) - return groups -} - -function groupShortcut() { - let controlInfo = $("serverControl").info - let currentProxyGroup = controlInfo.currentProxyGroup || PROXY_HEADER - let customProxyGroup = controlInfo.customProxyGroup || {} - let menuItems = Object.keys(customProxyGroup).sort() - $("bodyView").add({ - type: "view", - props: { - id: "placeholderView", - alpha: 0 - }, - layout: (make, view) => { - make.height.width.equalTo(view.super) - make.center.equalTo(view.super) - }, - views: [{ - type: "blur", - props: { - style: 2, - alpha: 1, - }, - layout: $layout.fill, - events: { - tapped: sender => { - removeAnimation() - } - } - }, { - type: "list", - props: { - id: "placeholderList", - radius: 15, - data: menuItems, - header: { - type: "label", - props: { - text: "占位符", - height: 50, - font: $font("bold", 20), - align: $align.center - } - }, - actions: [{ - title: "删除", - color: $color('red'), - handler: (sender, indexPath) => { - let title = sender.object(indexPath) - if ([PROXY_HEADER, 'Proxy Header'].indexOf(title) > -1) { - $ui.error("此占位符无法删除") - return - } - delete customProxyGroup[title] - $("serverControl").info = controlInfo - saveWorkspace() - $("placeholderList").data = Object.keys(customProxyGroup).sort() - } - }, { - title: "重命名", - handler: (sender, indexPath) => { - let title = sender.object(indexPath) - if ([PROXY_HEADER, 'Proxy Header'].indexOf(title) > -1) { - $ui.error("此占位符无法重命名") - return - } - $input.text({ - type: $kbType.default, - placeholder: title, - handler: function (text) { - if (sender.data.indexOf(text) > -1) { - $ui.error("此名称已被占用") - } else { - customProxyGroup[text] = customProxyGroup[title] - delete customProxyGroup[title] - if ($("serverControl").info.currentProxyGroup === title) { - switchToGroup(text) - } - $("serverControl").info = controlInfo - saveWorkspace() - sender.data = Object.keys(customProxyGroup).sort() - } - } - }) - } - }, { - title: "删除节点", - color: $color('tint'), - handler: (sender, indexPath) => { - let title = sender.object(indexPath) - let headers = customProxyGroup[title] - let editorData = $("serverEditor").data - editorData.map(section => { - section.rows = section.rows.filter(item => headers.indexOf(item.proxyName.text) === -1) - return section - }) - $("serverEditor").data = editorData - saveWorkspace() - $ui.toast("已删除占位符对应节点") - removeAnimation() - } - }] - }, - layout: (make, view) => { - make.height.equalTo(view.super).dividedBy(12 / 7) - make.width.equalTo(view.super).dividedBy(12 / 9) - make.center.equalTo(view.super) - }, - events: { - didSelect: (sender, indexPath, data) => { - $ui.toast(`当前占位符为:${data}`) - switchToGroup(data) - removeAnimation() - } - } - }, { - type: "button", - props: { - title: "+", - circular: true, - }, - layout: (make, view) => { - make.bottom.equalTo(view.prev) - make.right.equalTo(view.prev).offset(-5) - make.height.width.equalTo(50) - }, - events: { - tapped: sender => { - $input.text({ - type: $kbType.default, - placeholder: "建议:xxxHeader", - handler: function (text) { - if ([PROXY_HEADER, 'Proxy Header', ''].indexOf(text) > -1) { - $ui.error("占位符名称冲突") - return - } - customProxyGroup[text] = [] - $("serverControl").info = controlInfo - saveWorkspace() - $("placeholderList").data = Object.keys(customProxyGroup).sort() - } - }) - } - } - }] - }) - - function removeAnimation() { - $ui.animate({ - duration: 0.2, - animation: () => { - $("placeholderView").alpha = 0 - $("placeholderList").frame = resetFrame($("serverEditor").frame) - }, - completion: () => { - $("placeholderView").remove() - } - }) - } - - $ui.animate({ - duration: .3, - damping: 0.8, - animation: () => { - $("placeholderView").alpha = 1 - $("placeholderList").scale(1.1) - } - }) - - function switchToGroup(title) { - let group = customProxyGroup[title]; - // 保存当前编辑策略组 - controlInfo.currentProxyGroup = title; - $("serverControl").info = controlInfo; - // 恢复选中的策略组UI - let listData = $("serverEditor").data || []; - listData = listData.map(section => { - section.rows = section.rows.map(item => { - item.proxyAuto.hidden = !(group.indexOf(item.proxyName.text) > -1) - return item; - }); - return section; - }); - $("serverEditor").data = listData; - $("serverControl").data = genControlItems() - } -} - -function listReplace(sender, indexPath, obj) { - let oldData = sender.data - if (indexPath.section != null) { - oldData[indexPath.section].rows[indexPath.row] = obj - } else { - oldData[indexPath.row] = obj - } - sender.data = oldData -} - -function getAutoRules(url, done, hint = '') { - return new Promise((resolve, reject) => { - $http.get({ - url: url, - handler: function (resp) { - if (done) done(hint) - resolve(resp.data) - } - }) - }) -} - -function importMenu(params) { - let staticItems = ['剪贴板', '二维码', '空节点'] - $ui.menu({ - items: staticItems, - handler: function (title, idx) { - if (title === staticItems[0]) { - let clipText = $clipboard.text - linkHandler(clipText, params) - } else if (title === staticItems[1]) { - $qrcode.scan({ - handler(string) { - linkHandler(string, params) - } - }) - } else if (title === staticItems[2]) { - params.handler(['Empty Node = '], 'Default', `emptynode${new Date().getTime()}`) - } - } - }) -} - -function isEmoji() { - try { - let advanceSettings = JSON.parse($file.read(FILE).string) - let workspace = advanceSettings.workspace - let usualData = workspace.usualData - - let usualValue = function (key) { - return usualData.find(i => i.title.text == key) ? usualData.find(i => i.title.text == key).title.bgcolor : false - } - return usualValue('Emoji') - } catch (e) { - return false - } -} - -function linkHandler(url, params) { - let emoji = isEmoji() - let servers = { - shadowsocks: [], - surge: [], - online: [], - vmess: [], - ignore: [], - shadowsocksr: [] - } - - if (!url) { - $ui.alert('没有识别到有效链接') - return - } - - let urls = url.split(/[\r\n]+/g).map(i => i.trim()).filter(i => i !== '') - urls.forEach(item => { - if (/^ss:\/\//.test(item)) { - servers.shadowsocks.push(item) - } else if (/^https?:\/\//.test(item)) { - servers.online.push(item) - } else if (/[\S\s]+=[\s]*(custom|ss|http|https|socks5|socks5-tls|external)/.test(item)) { - servers.surge.push(item) - } else if (/^vmess:\/\//.test(item)) { - servers.vmess.push(item) - } else if (/^ssr:\/\//.test(item)) { - servers.shadowsocksr.push(item) - } else { - servers.ignore.push(item) - } - }) - - let updateHint = '' - updateHint += servers.shadowsocks.length > 0 ? `\nShadowsocks链接${servers.shadowsocks.length}个\n` : '' - updateHint += servers.shadowsocksr.length > 0 ? `\nShadowsocksR链接${servers.shadowsocksr.length}个\n` : '' - updateHint += servers.surge.length > 0 ? `\nSurge链接${servers.surge.length}个\n` : '' - updateHint += servers.vmess.length > 0 ? `\nV2Ray链接${servers.vmess.length}个\n` : '' - updateHint += servers.online.length > 0 ? `\n托管或订阅${servers.online.length}个\n` : '' - // $ui.alert({ - // title: '更新概况', - // message: updateHint - // }) - - function addEmoji(emojiSet, link) { - let name = link.split(/=/)[0] - let minIdx = 300; - let resEmoji = ''; - for (let idx in emojiSet) { - let reg = `(${emojiSet[idx].slice(1).join('|')})` - let matcher = name.match(new RegExp(reg)) - if (matcher && matcher.index < minIdx) { - minIdx = matcher.index - resEmoji = emojiSet[idx][0] - } - } - return minIdx !== 300 ? `${resEmoji} ${link}` : link - } - - function detailHandler(emojiSet = null) { - for (let k in servers) { - if (servers[k].length === 0) { - continue - } - if (k === 'shadowsocks') { - let res = proxyUtil.proxyFromURL(servers[k]) - params.handler(emojiSet ? res.servers.map(i => addEmoji(emojiSet, i)) : res.servers, res.sstag, servers[k].join('\n')) - } else if (k === 'surge') { - let urls = servers[k].map(i => i.replace(/,[\s]*udp-relay=true/, '')) - let result = [] - for (let idx in urls) { - result[idx] = urls[idx] - } - $delay(0.3, function () { - params.handler(emojiSet ? result.map(i => addEmoji(emojiSet, i)) : result, urls.length > 1 ? `批量Surge链接(${urls.length})` : result[0].split('=')[0].trim(), urls.join('\n')) - }) - } else if (k === 'online') { - loading(true) - proxyUtil.proxyFromConf({ - urls: servers[k], - handler: res => { - console.log('res', res); - loading(false) - params.handler(emojiSet ? res.servers.map(i => addEmoji(emojiSet, i)) : res.servers, res.filename, res.url, res.type) - } - }) - } else if (k === 'vmess') { - let res = proxyUtil.proxyFromVmess(servers[k]) - params.handler(emojiSet ? res.servers.map(i => addEmoji(emojiSet, i)) : res.servers, res.sstag, servers[k].join('\n')) - } else if (k === 'shadowsocksr') { - let res = proxyUtil.proxyFromSSR(servers[k]) - params.handler(emojiSet ? res.servers.map(i => addEmoji(emojiSet, i)) : res.servers, res.sstag, servers[k].join('\n')) - } else { - $ui.alert('剪贴板存在无法识别的行:\n\n' + servers.ignore.join('\n') + '\n\n以上行将被丢弃!') - } - } - } - - if (emoji) { - loading(true) - $http.get({ - url: "https://raw.githubusercontent.com/Fndroid/country_emoji/master/emoji.json" + `?t=${new Date().getTime()}` - }).then(resp => { - loading(false) - let emojiSet = resp.data - detailHandler(emojiSet) - }).catch(error => { - loading(false) - $ui.alert("Emoji配置获取失败") - }) - } else { - detailHandler(null) - } -} - -function write2file(key, value) { - let content = JSON.parse($file.read(FILE).string) - content[key] = value - $file.write({ - data: $data({ "string": JSON.stringify(content) }), - path: FILE - }) -} - -function renderAdvanceUI() { - let previewData = JSON.parse($file.read(FILE).string) - let placeHolders = Object.keys(previewData.workspace.customProxyGroup) - let inputViewData = [] - for (let idx in settingKeys) { - let content = previewData[settingKeys[idx]] - let view = { - type: "text", - props: { - text: content, - bgcolor: $color("#f0f5f5"), - font: $font(14) - }, - events: { - didChange: sender => { - let content = sender.text - if (sender.text == '') { - content = $file.read('defaultConf/' + settingKeys[idx]).string - sender.text = content - } - write2file(settingKeys[idx], content) - } - } - } - let phWidth = placeHolders.reduce((pre, cur) => (cur.length * 10 + pre), 0) + (placeHolders.length + 1) * 5 - if (idx == 2) { - view.props.accessoryView = { - type: "view", - props: { - height: 44, - bgcolor: $color("#ced4d4") - }, - views: [{ - type: "label", - props: { - text: "完成", - align: $align.center - }, - layout: (make, view) => { - make.right.equalTo(view.super) - make.top.equalTo(view.super) - make.height.equalTo(view.super) - make.width.equalTo(60) - }, - events: { - tapped: sender => { - $("inputViews").views[2].blur() - } - } - }, { - type: "scroll", - props: { - alwaysBounceHorizontal: true, - alwaysBounceVertical: false, - showsHorizontalIndicator: false, - contentSize: $size(phWidth, 34) - }, - views: placeHolders.map((i, idx) => { - return { - type: 'label', - props: { - text: i, - lines: 1, - font: $font("bold", 15), - align: $align.center, - bgcolor: $color("#fff"), - radius: 5, - textColor: $color('#000') - }, - layout: (make, view) => { - make.size.equalTo($size(i.length * 10, 34)) - make.centerY.equalTo(view.super) - // make.top.equalTo(view.suepr).offset(5) - if (idx > 0) { - make.left.equalTo(view.prev.right).offset(5) - } else { - make.left.equalTo(5) - } - }, - events: { - tapped: sender => { - let inputView = $("inputViews").views[2] - inputView.runtimeValue().$insertText(sender.text) - // let sr = inputView.selectedRange - // let old = inputView.text.split('') - // old.splice(sr.location, sr.length, sender.text) - // inputView.text = old.join('') - } - } - } - }), - layout: (make, view) => { - make.left.equalTo(view.super) - make.top.equalTo(view.super) - make.height.equalTo(view.super).offset(0) - make.width.equalTo(view.super).offset(-60) - } - }] - } - } - inputViewData.push(view) - } - let genControlBnts = function (idx) { - let titleTexts = ['小组件流量', '常规', '代理分组', '代理规则', '本地DNS映射', 'URL重定向', 'SSID', 'Header修改', '主机名', '配置根证书'] - const sbgc = colorUtil.getColor("advanceGridOnBg") - const stc = colorUtil.getColor("advanceGridOnFg") - const dbgc = colorUtil.getColor("advanceGridOffBg") - const dtc = colorUtil.getColor("advanceGridOffFg") - return titleTexts.map((item, i) => { - return { - title: { text: item, bgcolor: i === idx ? sbgc : dbgc, radius: 5, color: i == idx ? stc : dtc } - } - }) - } - $ui.push({ - type: "scroll", - props: { - title: "进阶设置", - navBarHidden: true, - statusBarHidden: colorUtil.getColor("statusBar", true) === 'clear' ? true : false, - statusBarStyle: colorUtil.getColor("statusBar", true) === '#ffffff' ? 1 : 0, - }, - views: [{ - type: "view", - props: { - id: "navBar", - bgcolor: colorUtil.getColor("navBar") - }, - layout: (make, view) => { - make.height.equalTo(navBarHeight + statusBarHeight) - make.width.equalTo(view.super) - }, - views: [{ - type: "label", - props: { - text: "进阶设置", - textColor: colorUtil.getColor("navTitleText"), - font: $font("bold", 25) - }, - layout: (make, view) => { - make.height.equalTo(navBarHeight) - make.top.equalTo(statusBarHeight) - make.left.equalTo(15) - } - }, { - type: "image", - props: { - icon: $icon("225", colorUtil.getColor("navIconRight"), $size(25, 25)), - bgcolor: $color("clear") - }, - layout: (make, view) => { - make.right.equalTo(view.super).offset(-15) - make.height.width.equalTo(25) - make.bottom.equalTo(view.super).offset(-10) - }, - events: { - tapped: sender => { - $ui.pop() - } - } - }] - }, { - type: "gallery", - props: { - id: "inputViews", - items: inputViewData, - interval: 0, - smoothRadius: 10, - }, - layout: (make, view) => { - make.height.equalTo(screenHeight - 325 - statusBarHeight - navBarHeight) - make.width.equalTo(view.super).offset(-20) - make.centerX.equalTo(view.super) - make.top.equalTo(navBarHeight + statusBarHeight + 10) - }, - events: { - changed: sender => { - let idx = sender.page - $("settingsControl").data = genControlBnts(idx) - } - } - }, { - type: "matrix", - props: { - columns: 2, - id: "settingsControl", - itemHeight: 40, - bgcolor: $color("#ffffff"), - spacing: 3, - data: genControlBnts(0), - template: [{ - type: "label", - props: { - id: "title", - align: $align.center, - font: $font("bold", 14) - }, - layout: $layout.fill - }] - }, - layout: (make, view) => { - make.height.equalTo(220) - make.centerX.equalTo(view.super) - make.width.equalTo(view.super).offset(-13) - make.top.equalTo(view.prev.bottom).offset(5) - }, - events: { - didSelect: (sender, indexPath, data) => { - let idx = indexPath.row - $("inputViews").page = idx - } - } - }, { - type: "label", - props: { - text: "上述设置点击完成生效,清空保存一次恢复默认", - font: $font(12), - textColor: $color("#595959"), - align: $align.center - }, - layout: (make, view) => { - make.top.equalTo(view.prev.bottom).offset(0) - make.width.equalTo(view.super) - make.height.equalTo(30) - make.centerX.equalTo(view.super) - } - }, { - type: "button", - props: { - title: '还原全部进阶设置', - bgcolor: $color("#ff6840") - }, - layout: (make, view) => { - make.width.equalTo(view.super).offset(-40) - make.centerX.equalTo(view.super) - make.top.equalTo(view.prev.bottom).offset(10) - make.height.equalTo(40) - }, - events: { - tapped: sender => { - $ui.alert({ - title: "提示", - message: "是否还原配置,还原后无法恢复", - actions: [{ - title: 'Cancel', - handler: () => { } - }, { - title: 'OK', - handler: () => { - let previewData = JSON.parse($file.read(FILE).string) - for (let idx in settingKeys) { - let defaultValue = $file.read(`defaultConf/${settingKeys[idx]}`).string - previewData[settingKeys[idx]] = defaultValue - } - $file.write({ - data: $data({ "string": JSON.stringify(previewData) }), - path: FILE - }) - $ui.pop() - } - }] - }) - } - } - }] - }) -} - -function renderAboutUI() { - let previewMD = function (title, filePath) { - $ui.push({ - props: { - title: title - }, - views: [{ - type: "markdown", - props: { - id: "", - content: $file.read(filePath).string - }, - layout: $layout.fill - }] - }) - } - - $ui.push({ - props: { - title: "关于", - id: "aboutMainView", - navBarHidden: true, - statusBarHidden: colorUtil.getColor("statusBar", true) === 'clear' ? true : false, - statusBarStyle: colorUtil.getColor("statusBar", true) === '#ffffff' ? 1 : 0, - }, - views: [{ - type: "view", - props: { - id: "navBar", - bgcolor: colorUtil.getColor("navBar") - }, - layout: (make, view) => { - make.height.equalTo(navBarHeight + statusBarHeight) - make.width.equalTo(view.super) - }, - views: [{ - type: "label", - props: { - text: "脚本相关", - textColor: colorUtil.getColor("navTitleText"), - font: $font("bold", 25) - }, - layout: (make, view) => { - make.height.equalTo(navBarHeight) - make.top.equalTo(statusBarHeight) - make.left.equalTo(15) - } - }, { - type: "image", - props: { - icon: $icon("225", colorUtil.getColor("navIconRight"), $size(25, 25)), - bgcolor: $color("clear") - }, - layout: (make, view) => { - make.right.equalTo(view.super).offset(-15) - make.height.width.equalTo(25) - make.bottom.equalTo(view.super).offset(-10) - }, - events: { - tapped: sender => { - $ui.pop() - } - } - }] - }, { - type: "scroll", - props: { - id: "mainAboutView", - contentSize: $size(0, 1000) - }, - layout: (make, view) => { - make.top.equalTo(navBarHeight + statusBarHeight); - make.width.equalTo(view.super) - make.height.equalTo(view.super).offset(navBarHeight + statusBarHeight) - }, - views: [{ - type: "label", - props: { - text: "文档说明", - font: $font(13), - textColor: $color("#505050") - }, - layout: (make, view) => { - make.top.equalTo(view.super).offset(10) - make.height.equalTo(30) - make.left.equalTo(15) - } - }, { - type: "list", - props: { - data: ["🗂 脚本简介", "🛠 使用手册", "📃 更新日志", "🖥 论坛导航"], - scrollEnabled: false - }, - layout: (make, view) => { - make.width.equalTo(view.super) - make.top.equalTo(view.prev.bottom).offset(0) - make.height.equalTo(180) - }, - events: { - didSelect: (sender, indexPath, data) => { - if (indexPath.row === 0) { - previewMD(data, 'docs.md') - } else if (indexPath.row === 1) { - $safari.open({ - url: "https://github.com/Fndroid/jsbox_script/wiki/Rules-lhie1" - }) - } else if (indexPath.row === 2) { - previewMD(data, 'updateLog.md') - } else { - $safari.open({ - url: "https://jsboxbbs.com/d/290-lhie1" - }) - } - } - } - }, { - type: "label", - props: { - text: "外部拓展", - font: $font(13), - textColor: $color("#505050") - }, - layout: (make, view) => { - make.top.equalTo(view.prev.bottom).offset(20) - make.height.equalTo(30) - make.left.equalTo(15) - } - }, { - type: "list", - props: { - data: ["🤖️ Rules-lhie1托管", "🎩 Quantumult去FA更新"], - scrollEnabled: false - }, - layout: (make, view) => { - make.width.equalTo(view.super) - make.top.equalTo(view.prev.bottom).offset(0) - make.height.equalTo(90) - }, - events: { - didSelect: (sender, indexPath, data) => { - if (indexPath.row === 0) { - $app.openURL("https://t.me/rules_lhie1_bot") - } else { - $safari.open({ - url: "https://jsboxbbs.com/d/474-quantumult-filter-action", - }) - } - } - } - }, { - type: "label", - props: { - text: "致谢捐献", - font: $font(13), - textColor: $color("#505050") - }, - layout: (make, view) => { - make.top.equalTo(view.prev.bottom).offset(20) - make.height.equalTo(30) - make.left.equalTo(15) - } - }, { - type: "list", - props: { - data: ["🙏 捐献打赏名单", "👍 赏杯咖啡支持作者"], - scrollEnabled: false - }, - layout: (make, view) => { - make.width.equalTo(view.super) - make.top.equalTo(view.prev.bottom).offset(0) - make.height.equalTo(90) - }, - events: { - didSelect: (sender, indexPath, data) => { - if (indexPath.row === 0) { - $http.get('https://raw.githubusercontent.com/Fndroid/sponsor_list/master/sponsors.md').then(res => { - let success = $file.write({ - data: $data({ string: res.data }), - path: 'donate.md' - }) - success && previewMD(data, 'donate.md') - }) - } else if (indexPath.row === 1) { - $ui.alert({ - title: '感谢支持', - message: '作者投入大量时间和精力对脚本进行开发和完善,你愿意给他赏杯咖啡支持一下吗?', - actions: [{ - title: "支付宝", - handler: () => { - $app.openURL($qrcode.decode($file.read("assets/thankyou2.jpg").image)) - } - }, { - title: "微信", - handler: () => { - $quicklook.open({ - image: $file.read("assets/thankyou.jpg").image - }) - } - }, { - title: "返回" - }] - }) - } else { - // $clipboard.text = 'GxsAtS84U7' - // $app.openURL("alipay://") - $app.openURL("https://qr.alipay.com/c1x047207ryk0wiaj6m6ye3") - } - } - } - }, { - type: "label", - props: { - text: "反馈联系", - font: $font(13), - textColor: $color("#505050") - }, - layout: (make, view) => { - make.top.equalTo(view.prev.bottom).offset(20) - make.height.equalTo(30) - make.left.equalTo(15) - } - }, { - type: "list", - props: { - data: ["📠 Telegram", "💡 GitHub", "📅 Channel"], - scrollEnabled: false - }, - layout: (make, view) => { - make.width.equalTo(view.super) - make.top.equalTo(view.prev.bottom).offset(0) - make.height.equalTo(140) - }, - events: { - didSelect: (sender, indexPath, data) => { - if (indexPath.row === 0) { - $safari.open({ - url: "https://t.me/Rules_lhie1", - }) - } else if (indexPath.row === 1) { - $safari.open({ - url: "https://github.com/Fndroid/jsbox_script/tree/master/Rules-lhie1/README.md", - }) - } else { - $safari.open({ - url: "https://t.me/Fndroids", - }) - } - } - } - }, { - type: "label", - props: { - text: "版本号:" + updateUtil.getCurVersion(), - font: $font(13), - textColor: $color("#505050") - }, - layout: (make, view) => { - make.top.equalTo(view.prev.bottom).offset(20) - make.height.equalTo(30) - make.centerX.equalTo(view.super) - } - }] - }] - }) -} - -function deleteServerGroup() { - let serverData = $("serverEditor").data - let sections = serverData.map(i => { - if (i.title === '') { - return '无分组节点' - } - return i.title - }) - $ui.menu({ - items: sections.concat(['全部删除', '关键字删除']), - handler: function (title, idx) { - if (title === '全部删除') { - $("serverEditor").data = [] - } else if (title === '关键字删除') { - $input.text({ - type: $kbType.default, - placeholder: "关键字,空格隔开", - text: $("serverControl").info.deleteKeywords || '', - handler: function (text) { - let keywords = text.split(/\s+/g).filter(i => i !== '') - let editorData = $("serverEditor").data - editorData.map(section => { - section.rows = section.rows.filter(item => keywords.every(k => !(new RegExp(k, 'g')).test(item.proxyName.text))) - return section - }) - $("serverEditor").data = editorData - let controlInfo = $("serverControl").info - controlInfo.deleteKeywords = text - $("serverControl").info = controlInfo - saveWorkspace() - } - }) - } else { - serverData.splice(idx, 1) - $("serverEditor").data = serverData - } - saveWorkspace() - } - }) -} - -function reverseServerGroup() { - let serverData = $("serverEditor").data - let sections = serverData.map(i => i.title) - if (sections.length === 1) { - serverData[0].rows.reverse() - $("serverEditor").data = serverData - saveWorkspace() - return - } - $ui.menu({ - items: sections.concat(['组别倒序']), - handler: function (title, idx) { - if (idx === sections.length) { - $("serverEditor").data = serverData.reverse() - } else { - serverData[idx].rows.reverse() - $("serverEditor").data = serverData - } - saveWorkspace() - } - }) -} - -let filePartReg = function (name) { - let reg = `\\[${name}\\]([\\S\\s]*?)(?:\\[General\\]|\\[Replica\\]|\\[Proxy\\]|\\[Proxy Group\\]|\\[Rule\\]|\\[Host\\]|\\[URL Rewrite\\]|\\[Header Rewrite\\]|\\[SSID Setting\\]|\\[MITM\\]|\\[URL-REJECTION\\]|\\[HOST\\]|\\[POLICY\\]|\\[REWRITE\\]|\\[Script\\]|$)` - return new RegExp(reg) -} - -function setUpWorkspace() { - $app.listen({ - ready: function () { - $("navLoadingIcon").play({ - fromProgress: 0, - toProgress: 0.6, - }) - $app.notify({ - name: 'loadData' - }) - }, - resume: () => { - - }, - loadData: () => { - let file = JSON.parse($file.read(FILE).string) - if (file && file.workspace) { - let workspace = file.workspace - $("fileName").text = workspace.fileName || '' - $("serverSuffixEditor").text = workspace.serverSuffix || '' - $("serverURL").info = workspace.withEmoji || false - let customProxyGroup = workspace.customProxyGroup || {} - let defaultGroupName = PROXY_HEADER - if (!(defaultGroupName in customProxyGroup)) { - customProxyGroup[defaultGroupName] = [] - } - let defaultGroup = customProxyGroup[defaultGroupName] - $("serverEditor").data = workspace.serverData.map(section => { - section.rows.map(item => { - item.proxyName = { - text: item.proxyName.text - } - item.proxyAuto = { - hidden: !(defaultGroup.indexOf(item.proxyName.text) > -1) - } - return item - }) - return section - }) - let usualSettingsData = workspace.usualData - let nd = $("usualSettings").data.map(item => { - let sd = usualSettingsData.find(i => i.title.text === item.title.text) - if (sd) { - item.title.bgcolor = sd.title.bgcolor ? btnOnBg : btnOffBg - item.title.textColor = sd.title.textColor ? btnOnFg : btnOffFg - } else { - item.title.bgcolor = btnOffFg - item.title.textColor = btnOffFg - } - return item - }) - $("usualSettings").data = nd - $("serverControl").info = { - deleteKeywords: workspace.deleteKeywords || '', - customProxyGroup: customProxyGroup, - currentProxyGroup: defaultGroupName - } - let outputFormat = workspace.outputFormat || 'Surge3' - let type = 'surge' - if (outputFormat === 'Quantumult') { - type = 'quan' - } else if (outputFormat === 'Surge 2') { - type = 'surge2' - } - $("outputFormatType").text = outputFormat - $("outputFormatIcon").data = $file.read(`assets/today_${type}.png`) - } else if (file && !file.workspace) { - let customProxyGroup = {} - let defaultGroupName = PROXY_HEADER - customProxyGroup[defaultGroupName] = [] - let defaultGroup = customProxyGroup[defaultGroupName] - $("serverControl").info = { - deleteKeywords: '', - customProxyGroup: customProxyGroup, - currentProxyGroup: defaultGroupName - } - } - } - }) -} - -function saveWorkspace() { - let workspace = { - fileName: $("fileName").text, - serverData: $("serverEditor").data, - withEmoji: $("serverURL").info || false, - usualData: $("usualSettings").data.map(i => { - i.title.bgcolor = cu.isEqual(btnOnBg, i.title.bgcolor) - i.title.textColor = cu.isEqual(btnOnFg, i.title.textColor) - return i - }), - outputFormat: $("outputFormatType").text, - serverSuffix: $("serverSuffixEditor").text, - deleteKeywords: $("serverControl").info.deleteKeywords || '', - customProxyGroup: $("serverControl").info.customProxyGroup || {} - } - let file = JSON.parse($file.read(FILE).string) - file.workspace = workspace - $file.write({ - data: $data({ string: JSON.stringify(file) }), - path: FILE - }) -} - - -function setDefaultSettings() { - let previewData = JSON.parse($file.read(FILE).string) - for (let idx in settingKeys) { - if (typeof previewData[settingKeys[idx]] === 'undefined' || previewData[settingKeys[idx]] == "") { - let defaultValue = ' ' - if ($file.exists(`defaultConf/${settingKeys[idx]}`)) { - defaultValue = $file.read(`defaultConf/${settingKeys[idx]}`).string - } - previewData[settingKeys[idx]] = defaultValue - } - } - $file.write({ - data: $data({ "string": JSON.stringify(previewData) }), - path: FILE - }) -} - -function autoGen() { - $ui.render({ - props: { - title: "" - }, - layout: $layout.fill, - views: [{ - type: "blur", - props: { - id: "progressView", - style: 1 - }, - layout: $layout.fill, - views: [{ - type: "label", - props: { - id: "loadingHintLabel", - text: "处理中,请稍后", - textColor: $color("black"), - }, - layout: (make, view) => { - make.centerX.equalTo(view.super) - make.centerY.equalTo(view.super).offset(-30) - } - }, { - type: "progress", - props: { - id: "progressBar", - value: 0 - }, - layout: (make, view) => { - make.width.equalTo(screenWidth * 0.8) - make.center.equalTo(view.super) - make.height.equalTo(3) - } - }, { - type: "button", - props: { - title: "CLOSE" - }, - layout: (make, view) => { - make.width.equalTo(80) - make.top.equalTo(view.prev.bottom).offset(20) - make.centerX.equalTo(view.super) - }, - events: { - tapped: sender => { - $http.stopServer() - $app.close() - } - } - }] - }] - }) - $app.listen({ - ready: function () { - makeConf({ - onProgress: (p, hint) => { - hint !== '' && ($("loadingHintLabel").text = hint) - $("progressBar").value = p - }, - onDone: res => { - exportConf(res.fileName, res.fileData, res.target, res.actionSheet, true, () => { - $http.stopServer() - $app.close() - }) - }, - onError: res => { - $ui.alert("无法生成配置文件,可能是规则仓库发生变化或网络出现问题") - } - }) - } - }) -} - -function makeConf(params) { - 'onStart' in params && params.onStart() - try { - let pu = { - prototype: "https://raw.githubusercontent.com/lhie1/Rules/master/Surge/Prototype.conf", - apple: 'https://raw.githubusercontent.com/lhie1/Rules/master/Auto/Apple.conf', - direct: 'https://raw.githubusercontent.com/lhie1/Rules/master/Auto/DIRECT.conf', - proxy: 'https://raw.githubusercontent.com/lhie1/Rules/master/Auto/PROXY.conf', - reject: 'https://raw.githubusercontent.com/lhie1/Rules/master/Auto/REJECT.conf', - testflight: 'https://raw.githubusercontent.com/lhie1/Rules/master/Surge/TestFlight.conf', - host: 'https://raw.githubusercontent.com/lhie1/Rules/master/Auto/HOST.conf', - urlrewrite: 'https://raw.githubusercontent.com/lhie1/Rules/master/Auto/URL%20Rewrite.conf', - headerrewrite: 'https://raw.githubusercontent.com/lhie1/Rules/master/Auto/Header%20Rewrite.conf', - hostname: 'https://raw.githubusercontent.com/lhie1/Rules/master/Auto/Hostname.conf', - mitm: 'https://raw.githubusercontent.com/lhie1/Rules/master/Surge/MITM.conf', - quanretcp: 'https://raw.githubusercontent.com/lhie1/Rules/master/Quantumult/Quantumult.conf', - quanextra: 'https://raw.githubusercontent.com/lhie1/Rules/master/Quantumult/Quantumult_Extra_JS.conf', - quanrejection: 'https://raw.githubusercontent.com/lhie1/Rules/master/Quantumult/Quantumult_URL.conf', - localhost: 'http://127.0.0.1/fndroid' - } - let advanceSettings = JSON.parse($file.read(FILE).string) - let workspace = advanceSettings.workspace - let usualData = workspace.usualData - let customProxyGroup = workspace.customProxyGroup - - let usualValue = function (key) { - return usualData.find(i => i.title.text == key) ? usualData.find(i => i.title.text == key).title.bgcolor : false - } - - let ads = usualValue('ADS') - let isMitm = usualValue('MITM') - let isActionSheet = usualValue('导出') - - let outputFormat = workspace.outputFormat - let surge2 = outputFormat === 'Surge 2' - let isQuan = outputFormat === 'Quantumult' - let testflight = outputFormat === 'Surge 3 TF' - - let serverEditorData = workspace.serverData - if (isQuan) { - serverEditorData = serverEditorData.map(i => { - let rows = i.rows.map(s => { - let containsOP = /obfs_param/.test(s.proxyLink) - s.proxyLink = s.proxyLink.replace(/,\s*group\s*=[^,]*/, '') - if (containsOP) { - s.proxyLink = s.proxyLink.replace(/obfs_param/, `group=${i.title}, obfs_param`) - } else { - s.proxyLink += `, group=${i.title}` - } - return s - }) - i.rows = rows - return i - }) - } - let flatServerData = serverEditorData.reduce((all, cur) => { - return { - rows: all.rows.concat(cur.rows) - } - }, { rows: [] }).rows - - let proxyNameLegal = function (name) { - return flatServerData.map(i => i.proxyName.text).concat(getProxyGroups()).concat(['🚀 Direct']).find(i => i === name) !== undefined - } - - let proxySuffix = workspace.serverSuffix.split(/\s*,\s*/g).map(i => i.replace(/\s/g, '')).filter(i => i !== '') - let proxies = flatServerData.map(i => { - let notExistSuffix = proxySuffix.filter((ps, idx) => { - if (idx === 0 && ps === '') return true - return i.proxyLink.indexOf(ps) < 0 - }) - let containsOP = /obfs_param/.test(i.proxyLink) - if (containsOP) { - i.proxyLink = i.proxyLink.replace(/obfs_param/, `${notExistSuffix.join(',')},obfs_param`) - } else if (notExistSuffix.length > 0) { - i.proxyLink += `,${notExistSuffix.join(',')}` - } - return i.proxyLink.replace('http://omgib13x8.bkt.clouddn.com/SSEncrypt.module', 'https://github.com/lhie1/Rules/blob/master/SSEncrypt.module?raw=true') - }).filter((item, idx, self) => { - let proxyName = item.split(/=/)[0].trim() - return self.findIndex(i => { - let pn = i.split('=')[0].trim() - return proxyName === pn - }) === idx - }) - proxies = proxies.join('\n') - let proxyHeaders = flatServerData.map(i => i.proxyName.text).join(', ') - let rules = '' - let prototype = '' - let host = '' - let urlRewrite = '' - let urlReject = '' - let headerRewrite = '' - let hostName = '' - let rename = null - let rulesReplacement = getRulesReplacement() - - let pgs = 0 - - let onPgs = function (hint) { - pgs += 0.1 - 'onProgress' in params && params.onProgress(pgs, hint) - } - - let emptyPromise = function (done, hint = '') { - if (done) done(hint) - return Promise.resolve('') - } - - let promiseArray = [ - getAutoRules(pu.prototype, onPgs, '成功取回配置模板'), // 0 - rulesReplacement ? getAutoRules(rulesReplacement, onPgs, '成功取回替换配置') : getAutoRules(isQuan || testflight ? pu.direct : pu.apple, onPgs, '成功取回APPLE规则'), // 1 - !ads || rulesReplacement ? emptyPromise(onPgs) : getAutoRules(isQuan || testflight ? pu.localhost : pu.reject, onPgs, '成功取回Reject规则'), // 2 - rulesReplacement ? emptyPromise(onPgs) : getAutoRules(isQuan || testflight ? pu.quanretcp : pu.proxy, onPgs, '成功取回Proxy规则'), // 3 - rulesReplacement ? emptyPromise(onPgs) : getAutoRules(isQuan || testflight ? pu.quanextra : pu.direct, onPgs, '成功取回Direct规则'), // 4 - rulesReplacement ? emptyPromise(onPgs) : getAutoRules(pu.host, onPgs, '成功取回Host'), // 5 - rulesReplacement ? emptyPromise(onPgs) : getAutoRules(pu.urlrewrite, onPgs, '成功取回URL Rewrite'), // 6 - rulesReplacement ? emptyPromise(onPgs) : getAutoRules(pu.headerrewrite, onPgs, '成功取回Header Rewrite'), // 7 - !ads || rulesReplacement ? emptyPromise(onPgs) : getAutoRules(pu.hostname, onPgs, '成功取回MITM Hostname'), // 8 - ] - - // 获取RULE-SET - let ruleSets = [] - if (!testflight) { - ruleSets = advanceSettings.customSettings.split(/[\r\n]/g).map(i => { - if (/^RULE-SET\s*,\s*(.*?)\s*,\s*(.*)/.test(i)) { - return { - url: RegExp.$1, - policy: RegExp.$2 - } - } - return null - }).filter(i => i) - } - console.log('ruleSets', ruleSets); - - promiseArray = promiseArray.concat(ruleSets.map(i => getAutoRules(i.url))) - - Promise.all(promiseArray).then(v => { - prototype = v[0] - if (rulesReplacement) { - let repRules = v[1].match(filePartReg('Rule')) - let repHost = v[1].match(filePartReg('Host')) - let repUrlRewrite = v[1].match(filePartReg('URL Rewrite')) - let repHeaderRewrite = v[1].match(filePartReg('Header Rewrite')) - let repHostName = v[1].match(/hostname\s*=\s*(.*?)[\n\r]/) - repRules && repRules[1] && (v[1] = repRules[1]) - repHost && repHost[1] && (v[5] = repHost[1]) - repUrlRewrite && repUrlRewrite[1] && (v[6] = '[URL Rewrite]\n' + repUrlRewrite[1]) - repHeaderRewrite && repHeaderRewrite[1] && (v[8] = '[Header Rewrite]\n' + repHeaderRewrite[1]) - repHostName && repHostName[1] && (v[9] = repHostName[1]) - } - - if (isQuan && !rulesReplacement && /\[TCP\]([\s\S]*)\/\/ Detect local network/.test(v[3])) { - let tcpRules = `${v[4]}\n${RegExp.$1}`.split(/[\n\r]+/g) - if (!ads) { - tcpRules = tcpRules.filter(i => !/^.*?,\s*REJECT\s*$/.test(i)) - } - let surgeLan = v[1].split(/[\r\n]/g).filter(i => /.*?,\s*DIRECT/.test(i)) - tcpRules = tcpRules.map(r => { - if (surgeLan.indexOf(r) > -1) return r - r = r.replace(/(^.*?,.*?,\s*)选择YouTube Music的策略(.*$)/, '$1🍃 Proxy$2') - r = r.replace(/(^.*?,.*?,\s*)选择TVB\/Viu的策略(.*$)/, '$1🍃 Proxy$2') - r = r.replace(/(^.*?,.*?,\s*)选择Vidol的策略(.*$)/, '$1🍃 Proxy$2') - r = r.replace(/(^.*?,.*?,\s*)选择Hulu的策略(.*$)/, '$1🍃 Proxy$2') - r = r.replace(/(^.*?,.*?,\s*)选择Spotify的策略(.*$)/, '$1🍃 Proxy$2') - r = r.replace(/(^.*?,.*?,\s*)选择Google的策略,不懂就不选(.*$)/, '$1🍃 Proxy$2') - r = r.replace(/(^.*?,.*?,\s*)选择微软服务的策略,不懂就选择DIRECT(.*$)/, '$1🍂 Domestic$2') - r = r.replace(/(^.*?,.*?,\s*)选择PayPal的策略,不懂就选择DIRECT(.*$)/, '$1🍂 Domestic$2') - r = r.replace(/(^.*?,.*?,\s*)选择Apple的策略,不懂就选择DIRECT(.*$)/, '$1🍎 Only$2') - r = r.replace(/(^.*?,.*?,\s*)选择Netflix的策略,不懂就不选(.*$)/, '$1🍃 Proxy$2') - r = r.replace(/(^.*?,.*?,\s*)选择国外流媒体的策略(.*$)/, '$1🍃 Proxy$2') - r = r.replace(/(^.*?,.*?,\s*)DIRECT(.*$)/i, '$1🍂 Domestic$2') - r = r.replace(/(^.*?,.*?,\s*)PROXY(.*$)/i, '$1🍃 Proxy$2') - r = r.replace(/^DOMAIN(.*?)🍃 Proxy\s*$/, 'DOMAIN$1🍃 Proxy,force-remote-dns') - return r - }) - v[1] = tcpRules.join('\n') - v[2] = '' - v[3] = '' - v[4] = '' - v[7] = v[7].replace(/hostname = /, '# hostname = ') - } - - if (testflight && !rulesReplacement) { - let autoNewPrefix = 'https://raw.githubusercontent.com/lhie1/Rules/master/Surge/Surge%203/Provider' - v[1] = `RULE-SET,SYSTEM,DIRECT\nRULE-SET,${autoNewPrefix}/Apple.list,🍎 Only` - v[2] = ads ? `RULE-SET,${autoNewPrefix}/Reject.list,REJECT` : '' - v[3] = `RULE-SET,${autoNewPrefix}/AsianTV.list,🍂 Domestic\nRULE-SET,${autoNewPrefix}/GlobalTV.list,🍃 Proxy\nRULE-SET,${autoNewPrefix}/Proxy.list,🍃 Proxy` - v[4] = `RULE-SET,${autoNewPrefix}/Domestic.list,🍂 Domestic\nRULE-SET,LAN,DIRECT` - } - - rules += `\n${v[1]}\n${v[2].replace(/REJECT/g, surge2 || isQuan ? "REJECT" : "REJECT-TINYGIF")}\n${v[3]}\n${v[4]}\n` - host = v[5] - urlRewrite += v[6] - urlReject += v[7] - headerRewrite = v[8] - hostName = v[9].split('\n') - - let seperateLines = function (content, rules = false) { - let addRules = content.split('\n').filter(i => !/^-/.test(i)).map(i => i.trim()) - if (rules && !testflight && promiseArray.length > 10) { - addRules = addRules.filter(i => !/^\s*RULE-SET/.test(i)) - for (let i = 10; i < promiseArray.length; i++) { - let policy = ruleSets[i - 10].policy - addRules = addRules.concat(v[i].split(/[\r\n]/g).map(i => { - console.log('i', i); - if (/^(.+?),(.+?),(.+)$/.test(i)) { - return `${RegExp.$1 + ',' + RegExp.$2},${policy},${RegExp.$3}${!testflight ? ',force-remote-dns' : ''}` - }else if (/^(.+?),(.+?)(?=$|\/\/|\#)/.test(i)) { - return `${RegExp.$1},${RegExp.$2},${policy}${!testflight ? ',force-remote-dns' : ''}` - } - return i - })) - } - } - console.log('adru', addRules) - - let res = { - add: addRules, - delete: content.split("\n").filter(i => /^-/.test(i)).map(i => i.replace(/^-/, '').trim()) - } - return res - } - - let prettyInsert = function (lines) { - return '\n\n' + lines.join('\n') + '\n\n' - } - - // 配置代理分组 - if (advanceSettings.proxyGroupSettings) { - let pgs = advanceSettings.proxyGroupSettings - rename = pgs.match(/\/\/\s*rename\s*:\s*(.*?)(?:\n|\r|$)/) - pgs = pgs.replace(/Proxy Header/g, proxyHeaders) - for (let name in customProxyGroup) { - let nameReg = new RegExp(`,\\s*${name}`, 'g') - let serverNames = customProxyGroup[name] - serverNames = serverNames.filter(i => proxyNameLegal(i)) - pgs = pgs.replace(nameReg, ',' + (serverNames.join(',') || flatServerData.map(i => i.proxyName.text).join(','))) - } - prototype = prototype.replace(/\[Proxy Group\][\s\S]+\[Rule\]/, pgs + '\n\n[Rule]') - } else { - prototype = prototype.replace(/Proxy Header/g, proxyHeaders) - prototype = prototype.replace(/ProxyHeader/g, customProxyGroup[PROXY_HEADER].filter(i => proxyNameLegal(i)).join(',') || flatServerData.map(i => i.proxyName.text).join(',')) - } - // 配置常规设置 - if (advanceSettings.generalSettings) { - prototype = prototype.replace(/\[General\][\s\S]+\[Proxy\]/, advanceSettings.generalSettings + '\n\n[Proxy]') - } - // 配置自定义规则 - let customRules = seperateLines(advanceSettings.customSettings, true) - let rulesList = rules.split(/[\r\n]/g) - let deleteList = customRules.add.map(i => { - if (/^(.*?),(.*?),/.test(i)) { - let type = RegExp.$1 - let content = RegExp.$2 - return `${type},${content}` - } - }) - rules = rulesList.filter(i => deleteList.findIndex(d => i.startsWith(d)) === -1).join('\n') - customRules.delete.forEach(i => rules = rules.replace(i, '')) - // 配置本地DNS映射 - let userHost = seperateLines(advanceSettings.hostSettings) - userHost.delete.forEach(i => host = host.replace(i, '')) - // 配置URL重定向 - let userUrl = seperateLines(advanceSettings.urlrewriteSettings) - userUrl.delete.forEach(i => { - urlRewrite = urlRewrite.replace(i, '') - urlReject = urlReject.replace(i, '') - }) - // 配置Header修改 - let userHeader = seperateLines(advanceSettings.headerrewriteSettings) - userHeader.delete.forEach(i => headerRewrite = headerRewrite.replace(i, '')) - // 配置SSID - let userSSID = advanceSettings.ssidSettings - // 配置MITM的Hostname - let userHostname = seperateLines(advanceSettings.hostnameSettings) - userHostname.delete.forEach(i => { - if (hostName.indexOf(i) >= 0) { - hostName.splice(hostName.indexOf(i), 1) - } - }) - - function ssr2ss(proxies) { - let proxyList = proxies.split(/\n/); - let res = proxyList.map(proxy => { - if (/=\s*shadowsocksr/.test(proxy)) { - return proxy.replace(/=\s*shadowsocksr/g, '= custom').replace(/"/g, '').replace(/,\s*(protocol|protocol_param|obfs|obfs_param)[^,$]+/g, '') + ', https://github.com/lhie1/Rules/blob/master/SSEncrypt.module?raw=true' - } else { - return proxy - } - }) - return res.join('\n') - } - - // if (isQuan) { - // prototype = prototype.replace(/\/\/ Detect local network/, `${prettyInsert(customRules.add)}\n`) - // } else { - prototype = prototype.replace('# Custom', prettyInsert(customRules.add)) - // } - prototype = prototype.replace('Proxys', isQuan ? proxies : ssr2ss(proxies)) - if (rulesReplacement) { - prototype = prototype.replace(/\[Rule\][\s\S]*FINAL\s*,[^\r\n]+/, `[Rule]\n${prettyInsert(customRules.add)}\n${rules}\n`) - } else { - prototype = prototype.replace('# All Rules', rules) - } - prototype = prototype.replace('# Host', "[Host]\n" + host + prettyInsert(userHost.add)) - prototype = prototype.replace('# URL Rewrite', urlRewrite.replace(/307/g, surge2 ? '302' : '307') + prettyInsert(userUrl.add)) - prototype = prototype.replace('# URL REJECT', urlReject) - prototype = prototype.replace('# SSID', '[SSID Setting]\n' + userSSID) - prototype = prototype.replace('# Header Rewrite', headerRewrite + prettyInsert(userHeader.add)) - //fix by shenqinci 2019年03月20日:当只有userHostName时,配置文件出现第一行为空的问题 - let finalHostNames = hostName.concat(userHostname.add).filter(i => i).join(', ') - if (finalHostNames !== '') { - prototype = prototype.replace('// Hostname', 'hostname = ' + finalHostNames) - } - - if (isMitm) { - prototype = prototype.replace('# MITM', advanceSettings.mitmSettings) - } else { - prototype = prototype.replace(/\[MITM\][\s\S]*$/, '') - } - - function genQuanPolices(content) { - let items = content.split(/[\n\r]+/).filter(i => i !== '' && !/^\/\//.test(i)).map(sta => { - let matcher = sta.match(/^(.*?)=(.*?),(.*?)$/); - if (/^(.*?)=(.*?),(.*?)$/.test(sta)) { - let pName = RegExp.$1 - let pType = RegExp.$2 - let pNodes = RegExp.$3 - let data = pNodes.split(/,/g) - if (/url-test/.test(pType) || /fallback/.test(pType)) { - let v = data.filter(i => !/(?:url|interval|tolerance|timeout)\s*=\s*/.test(i)) - return { - name: pName, - sta: ' auto', - data: v - } - } else if (/select/.test(pType)) { - return { - name: pName, - sta: pType.replace(/select/, 'static'), - data: data - } - } else if (/round-robin/.test(pType)) { - return { - name: pName, - sta: 'balance, round-robin', - data: data - } - } else { - return { - name: pName, - sta: 'ssid', - data: data - } - } - } else { - return null - } - }).filter(i => i !== null) - items.push({ - name: '🚀 Direct', - sta: 'static', - data: ["DIRECT"] - }) - let policies = items.map(i => { - if (i.sta.contains('auto') || i.sta.contains('balance, round-robin')) { - return `${i.name} : ${i.sta}\n${i.data.join('\n')}` - } else if (i.sta.contains('static')) { - return `${i.name} : ${i.sta}, ${i.data[0]}\n${i.data.join('\n')}` - } else if (i.sta === 'ssid') { - let wifi = i.data.find(i => /default\s*=/.test(i)) - let cellular = i.data.find(i => /cellular\s*=/.test(i)) || 'cellular = DIRECT' - let left = i.data.filter(i => i !== wifi && i !== cellular).map(i => { - let p = i.split('=') - return p[0].replace(/"/g, '') + '=' + p.slice(1).join('=') - }) - return `${i.name} : ${wifi.replace(/default\s*=/, 'wifi =')}, ${cellular}\n${left.join('\n')}` - } - }) - return policies.map(i => { - if (rename && rename[1]) { - i = globalRename(rename, i) // 圈特殊性 - } - return $text.base64Encode(i) - }) - } - - function seperateRejection(reject) { - let lines = reject.split(/[\r\n]+/) - let res = { reject: [], rewrite: []} - lines.forEach(l => { - if (/(.*?\s+\-\s+reject)/.test(l)) { - res.reject.push(RegExp.$1) - } else if (/(.*?\s+url\s(302|307|modify|simple\-response)\s.*$)/.test(l)) { - res.rewrite.push(RegExp.$1) - } - }) - return res - } - - function genQuanRewrite(content) { - let items = content.split(/[\n\r]+/).filter(i => i !== '' && /^(?!\/\/|#)/.test(i)).map(i => { - if (/^(.*?)\s+(.*?)\s+(.*?)\s*$/.test(i)) { - let type = RegExp.$3 - return `${RegExp.$1} url ${type === 'header' ? 'modify' : type} ${RegExp.$2}` - } - return '' - }).join('\n') - return items - } - - function genQuanRewriteTinyPng(reject, rewrite) { - let rejects = reject.split(/[\n\r]/g).filter(i => /.*?\s*-\s*reject/.test(i)).map(i => i.replace(/(.*?)\s*-\s*reject\s*$/, '$1')) - let items = rejects.map(i => `${i} url simple-response SFRUUC8xLjEgMjAwIE9LDQpTZXJ2ZXI6IG5naW54DQpDb250ZW50LVR5cGU6IGltYWdlL3BuZw0KQ29udGVudC1MZW5ndGg6IDU2DQpDb25uZWN0aW9uOiBjbG9zZQ0KDQqJUE5HDQoaCgAAAA1JSERSAAAAAQAAAAEIBgAAAB8VxIkAAAALSURBVHicY2AAAgAABQABel6rPw==`) - items = items.concat(rewrite.split(/[\n\r]+/).filter(i => i !== '' && /^(?!\/\/|#)/.test(i)).map(i => { - if (/^(.*?)\s+(.*?)\s+(.*?)\s*$/.test(i)) { - let type = RegExp.$3 - return `${RegExp.$1} url ${type === 'header' ? 'modify' : type} ${RegExp.$2}` - } - return '' - })) - return items.join('\n') - } - - function genQuanPart(name, content) { - return `\n[${name}]\n${content}\n` - } - - if (isQuan) { - prototype = prototype.replace(/☁️ Others, dns-failed/, '☁️ Others') - let proxyGroup = prototype.match(filePartReg('Proxy Group')) - if (proxyGroup && proxyGroup[1]) { - let policies = genQuanPolices(proxyGroup[1]) - prototype += genQuanPart('POLICY', policies.join('\n')) - } - userUrl.add.forEach(i => { - // if (/reject\s*$/.test(i)) { - // urlReject += `\n${i}\n` - // } else { - // urlRewrite += `\n${i}\n` - // } - let rule = i - if (/(.*?)\s+(.*?)\s+(307|302|header|reject)\s*$/.test(i)) { - if (RegExp.$3 === 'reject') { - rule = i - } else if (RegExp.$3 === 'header') { - rule = `${RegExp.$1} url modify ${RegExp.$2}` - } else { - rule = `${RegExp.$1} url ${RegExp.$3} ${RegExp.$2}` - } - } - urlReject = `\n${rule}\n${urlReject}` - }) - let quanRe = seperateRejection(urlReject) - prototype += genQuanPart('URL-REJECTION', quanRe.reject.join('\n')) - prototype += genQuanPart('REWRITE', quanRe.rewrite.join('\n')) - // prototype += genQuanPart('REWRITE', genQuanRewriteTinyPng(urlReject, urlRewrite)) - prototype += genQuanPart('HOST', host + prettyInsert(userHost.add)) - let sourceType = 'false, true, false'; - let sourceTypeParam = proxySuffix.find(x => /\s*source-type\s*=\s*[0-7]\s*(?:,|$)/.test(x)) - if (sourceTypeParam) { - let type = sourceTypeParam.match(/\s*source-type\s*=\s*([0-7])/)[1] * 1; - sourceType = `${type & 4 ? 'true' : 'false'}, ${type & 2 ? 'true' : 'false'}, ${type & 1 ? 'true' : 'false'}` - } - console.log(serverEditorData) - prototype += genQuanPart('SOURCE', serverEditorData.filter(i => { - // let isSSR = i.rows.find(l => /^.*?=\s*(?=shadowsocksr|vmess)/.test(l.proxyLink)) - // return isSSR !== undefined - return i.rows.find(i => i.proxyType > 0) - }).map(i => { - return `${i.title}, server, ${i.url}, ${sourceType}, ${i.title}` - }).join('\n') + (rulesReplacement ? "" : "\nlhie1, filter, https://raw.githubusercontent.com/lhie1/Rules/master/Quantumult/Quantumult.conf, true\nlhie1_extra, filter, https://raw.githubusercontent.com/lhie1/Rules/master/Quantumult/Quantumult_Extra.conf, true\nlhie1, blacklist, https://raw.githubusercontent.com/lhie1/Rules/master/Quantumult/Quantumult_URL.conf, true\n")) - let customDNS = prototype.match(/dns-server\s*=\s*(.*?)(?:\n|\r|$)/) - if (customDNS && customDNS[1]) { - prototype += genQuanPart('DNS', customDNS[1]) - } - let widgetProxies = customProxyGroup['WidgetHeader'] || null - if (widgetProxies) { - widgetProxies = widgetProxies.filter(i => proxyNameLegal(i)) - prototype += genQuanPart('BACKUP-SERVER', widgetProxies.join('\n')) - } - prototype = prototype.replace(/\[SSID Setting\]/, "[SUSPEND-SSID]").replace(/\ssuspend=true/g, '') - } - - if (rename && rename[1]) { - prototype = globalRename(rename, prototype); - } - - let fn = (workspace.fileName || 'lhie1') + '.conf' - - let exportTarget = 0 - - if (surge2) { - exportTarget = 1 - } - - if (isQuan) { - exportTarget = 2 - } - - if ('onDone' in params) { - ruleUpdateUtil.getGitHubFilesSha({ - handler: sha => { - if (sha) { - ruleUpdateUtil.setFilesSha(sha) - } - params.onDone({ - target: exportTarget, - actionSheet: isActionSheet, - fileName: fn, - fileData: prototype - }) - } - }) - } - }).catch(e => { - console.error(e.stack) - }) - } catch (e) { - console.error(e.stack) - 'onError' in params && params.onError(e) - } - - function globalRename(rename, prototype) { - let renamePat = rename[1].split(/\s*,\s*/g).filter(i => i.indexOf('=') > -1).map(i => { - let sp = i.reverse().split(/\s*=(?!\\)\s*/g); - return sp.map(i => i.reverse().trim().replace(">", ',')).reverse(); - }); - console.log(renamePat) - renamePat.forEach(i => { - let oldName = i[0]; - let newName = i[1].replace(/\\=/g, '='); - let oldNameReg = new RegExp(oldName, 'g'); - prototype = prototype.replace(oldNameReg, newName); - }); - return prototype; - } -} - -function getRulesReplacement(content = '') { - let advanceSettings = content ? content : JSON.parse($file.read(FILE).string) - if (advanceSettings.customSettings) { - let cs = advanceSettings.customSettings; - let pat = cs.match(/\/\/\s*replacement\s*:\s*(.*?)(?:\n|\r|$)/); - if (pat && pat[1]) { - return pat[1]; - } - } - return null; -} - -function exportConf(fileName, fileData, exportTarget, actionSheet, isAuto, actionSheetCancel) { - let surge3 = exportTarget === 0 - let surge2 = exportTarget === 1 - let isQuan = exportTarget === 2 - if (surge2 || surge3) { - let fnReg = /^[\x21-\x2A\x2C-\x2E\x30-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7B\x7D-\x7E]+$/ - if (actionSheet || !fnReg.test(fileName)) { - $share.sheet({ - items: [fileName, $data({ "string": fileData })], - handler: success => { - if (!success && actionSheetCancel) { - actionSheetCancel() - } - } - }) - } else { - if (!$file.exists("confs")) { - $file.mkdir("confs") - } else { - $file.list('confs').forEach(i => $file.delete('confs/' + i)) - } - $file.write({ - data: $data({ "string": fileData }), - path: `confs/${fileName}` - }) - $http.startServer({ - path: "confs/", - handler: res => { - let serverUrl = `http://127.0.0.1:${res.port}/` - $http.get({ - url: serverUrl + "list?path=", - handler: function (resp) { - if (resp.response.statusCode == 200) { - let surgeScheme = `surge${surge2 ? "" : "3"}:///install-config?url=${encodeURIComponent(serverUrl + "download?path=" + fileName)}` - $app.openURL(surgeScheme) - $delay(10, () => { - $http.stopServer() - if (isAuto) { - $app.close() - } - }) - } else { - $ui.alert("内置服务器启动失败,请重试") - } - } - }) - } - }) - } - } else if (isQuan) { - if (actionSheet) { - $share.sheet({ - items: [fileName, $data({ "string": fileData })], - handler: success => { - if (!success && actionSheetCancel) { - actionSheetCancel() - } - } - }) - } else { - $clipboard.text = fileData - $app.openURL("quantumult://settings?configuration=clipboard&autoclear=1") - } - } - - function genServerFiles(name, data) { - $file.write({ - data: $data({ "string": data }), - path: `confs/${name}` - }); - } -} - -function urlsaveBase64Encode(url) { - return $text.base64Encode(url).replace(/\+/g, '-').replace(/\\/g, '_').replace(/=/g, '') -} - -module.exports = { - renderUI: renderUI, - setUpWorkspace: setUpWorkspace, - autoGen: autoGen, - getRulesReplacement: getRulesReplacement -} diff --git a/JSBox/Rules-lhie1/scripts/colorUtil.js b/JSBox/Rules-lhie1/scripts/colorUtil.js deleted file mode 100644 index b1ecbb4..0000000 --- a/JSBox/Rules-lhie1/scripts/colorUtil.js +++ /dev/null @@ -1,60 +0,0 @@ -/* - -提示:自定义颜色请建立_custom/color.js文件以覆盖默认颜色, -格式: - -module.exports = { - editorItemText: "tint", - editorItemIcon: "tint", -} - -*/ - -const DEFAULT = { - statusBar: "#000000", // 状态栏文字颜色,#ffffff为白色,clear隐藏,其他为黑色 - navBar: "#ffffff", // 导航栏颜色 - navTitleText: "tint", // 标题栏文字颜色 - navIconLoading: "tint", // 加载图标颜色 - navIconLeft: "tint", // 标题栏红包按钮文字颜色 - navIconRight: "tint", // 标题栏备份按钮文字颜色 - importBtnText: "tint", // 导入按钮文字颜色 - controlBtnText: "#000000", // 操作栏文字颜色 - editorItemText: "tint", // 服务器列表文字颜色 - editorItemIcon: "tint", // 服务器列表图标颜色 - outputFormatText: "tint", // 输出格式文字颜色 - usualBtnOnBg: "#ff6666", // 常规选项按钮开启背景色 - usualBtnOnFg: "#ffffff", // 常规选项按钮开启前景色 - usualBtnOffBg: "#ffffff", // 常规选项按钮关闭背景色 - usualBtnOffFg: "#000000", // 常规选项按钮关闭前景色 - advanceBtnBg: "#808080", // 进阶按钮背景色 - advanceBtnFg: "#ffffff", // 进阶按钮前景色 - aboutBtnBg: "#808080", // 关于按钮背景色 - aboutBtnFg: "#ffffff", // 关于按钮前景色 - genBtnBg: "tint", // 生成按钮背景色 - genBtnFg: "#ffffff", // 生成按钮前景色 - advanceGridOnBg: "#ffda40", // 进阶设置网格选中背景色 - advanceGridOnFg: "#034769", // 进阶设置网格选中前景色 - advanceGridOffBg: "#63add0", // 进阶设置网格默认背景色 - advanceGridOffFg: "#ffffff", // 进阶设置网格默认前景色 -} - -const customColor = $file.exists("_custom/color.js") ? require('_custom/color.js') : {} - -function isEqual(color1, color2) { - return color1.runtimeValue().invoke('isEqual', color2) -} - -function getColor(name, hex = false) { - let resColor = "tint" - if (name in customColor) { - resColor = customColor[name] - } else if (name in DEFAULT) { - resColor = DEFAULT[name] - } - return hex ? resColor : $color(resColor) -} - -module.exports = { - isEqual: isEqual, - getColor: getColor -} \ No newline at end of file diff --git a/JSBox/Rules-lhie1/scripts/extension.js b/JSBox/Rules-lhie1/scripts/extension.js deleted file mode 100644 index 92ebb9d..0000000 --- a/JSBox/Rules-lhie1/scripts/extension.js +++ /dev/null @@ -1,325 +0,0 @@ -const app = require('scripts/app') - -const FILE = 'data.js' - -let screenHeight = $device.info.screen.height -const screenWidth = $device.info.screen.width - -const iPhoneX = screenWidth == 375 && screenHeight == 812 -if (iPhoneX) { - screenHeight -= 48 -} - -let renderExtensionUI = function () { - const host = $context.safari.items.location.hostname - $ui.render({ - props: { - title: "增加规则" - }, - views: [{ - type: "scroll", - props: { - id: "mainScrollView", - bgcolor: $color("#f0f5f5") - }, - layout: $layout.fill, - views: [{ - type: "label", - props: { - text: "当前网页路径" - }, - layout: (make, view) => { - make.width.equalTo(view.super) - make.left.equalTo(5) - make.height.equalTo(30) - make.top.equalTo(view.super.top).offset(10) - } - }, { - type: "text", - props: { - editable: false, - text: $context.safari.items.baseURI - }, - layout: (make, view) => { - make.top.equalTo(view.prev.bottom).offset(5) - make.width.equalTo(view.super) - make.height.equalTo(60) - } - }, { - type: "label", - props: { - text: "规则匹配项" - }, - layout: (make, view) => { - make.width.equalTo(view.super) - make.left.equalTo(5) - make.height.equalTo(30) - make.top.equalTo(view.prev.bottom).offset(10) - } - }, { - type: "list", - props: { - rowHeight: 60, - id: "styleList", - template: { - views: [{ - type: "label", - props: { - id: "styleName", - font: $font("bold", 16) - }, - layout: (make, view) => { - make.width.equalTo(view.super) - make.height.equalTo(view.super).dividedBy(2) - make.left.equalTo(view.super.left).offset(15) - make.top.equalTo(view.super.top).offset(5) - } - }, { - type: "label", - props: { - id: "styleValue", - }, - layout: (make, view) => { - make.width.equalTo(view.super) - make.height.equalTo(view.super).dividedBy(2) - make.left.equalTo(view.super.left).offset(15) - make.top.equalTo(view.prev.bottom).offset(-10) - } - }, { - type: "image", - props: { - id: "styleSelected", - bgcolor: $color("#ffffff") - }, - layout: (make, view) => { - make.centerY.equalTo(view.super) - make.height.width.equalTo(20) - make.right.equalTo(view.super.right).offset(-20) - } - }] - } - }, - layout: (make, view) => { - make.top.equalTo(view.prev.bottom).offset(5) - make.width.equalTo(view.super) - make.height.equalTo(0) - }, - events: { - didSelect: (sender, indexPath, data) => { - let uiData = sender.data.map((i, idx) => { - return { - styleName: i.styleName, - styleValue: i.styleValue, - styleSelected: { data: null } - } - }) - uiData[indexPath.row].styleSelected = { data: $file.read("assets/selected_icon.png") } - sender.data = uiData - sender.info = indexPath.row - } - } - }, { - type: "label", - props: { - text: "选择代理" - }, - layout: (make, view) => { - make.width.equalTo(view.super) - make.left.equalTo(5) - make.height.equalTo(30) - make.top.equalTo(view.prev.bottom).offset(10) - } - }, { - type: "list", - props: { - id: "proxyList", - rowHeight: 40, - template: { - views: [{ - type: "label", - props: { - id: "proxyName" - }, - layout: (make, view) => { - make.centerY.equalTo(view.super) - make.width.equalTo(view.super).offset(-80) - make.height.equalTo(view.super) - make.left.equalTo(view.super.left).offset(15) - } - }, { - type: "image", - props: { - id: "proxySelected", - bgcolor: $color("#ffffff") - }, - layout: (make, view) => { - make.centerY.equalTo(view.super) - make.height.width.equalTo(20) - make.right.equalTo(view.super.right).offset(-20) - } - }] - } - }, - layout: (make, view) => { - make.top.equalTo(view.prev.bottom).offset(5) - make.width.equalTo(view.super) - make.height.equalTo(0) - }, - events: { - didSelect: (sender, indexPath, data) => { - let uiData = sender.data.map((i, idx) => { - return { - proxyName: i.proxyName, - proxySelected: { data: null } - } - }) - uiData[indexPath.row].proxySelected = { data: $file.read("assets/selected_icon.png") } - sender.data = uiData - sender.info = indexPath.row - } - } - }, { - type: "label", - props: { - text: "添加规则", - align: $align.center, - bgcolor: $color("#fff") - }, - layout: (make, view) => { - make.width.equalTo(view.super) - make.height.equalTo(40) - make.top.equalTo(view.prev.bottom).offset(20) - }, - events: { - tapped: sender => { - if ($("styleList").info !== null && $("proxyList").info !== null) { - let styleName = $("styleList").data[$("styleList").info].styleName.text - let styleValue = $("styleList").data[$("styleList").info].styleValue.text - let proxy = $("proxyList").data[$("proxyList").info].proxyName.text - let rule = [styleName, styleValue, proxy].join(',') - saveRule(rule) - $context.close() - } else { - $ui.alert("请选择匹配项和代理") - } - } - } - }] - }] - }) - let styles = genStyleDefaultData(host) - let styleListHeight = styles.length * 60 - $("styleList").data = styles - $("styleList").updateLayout(make => { - make.height.equalTo(styleListHeight) - }) - let savedData = JSON.parse($file.read(FILE).string) - let proxyGroup = savedData.proxyGroupSettings.split('\n').filter(i => /^(?!\/|#)[\s\S]+=/.test(i)).map(i => i.split(/[\s]*=/)[0]) - let flatServerData = savedData.workspace.serverData.reduce((all, cur) => { - return { - rows: all.rows.concat(cur.rows) - } - }).rows - let proxies = ['🚀 Direct'].concat(proxyGroup, ['REJECT', 'REJECT-TINYGIF'], flatServerData.map(i => i.proxyName.text)) - let proxiesData = genProxyDefaultData(proxies) - let proxiesListHeight = proxiesData.length * 40 - $("proxyList").data = proxiesData - $("proxyList").updateLayout(make => { - make.height.equalTo(proxiesListHeight) - }) - resizeScrollView(styleListHeight + proxiesListHeight) - -} - -let resizeScrollView = function (listHeight) { - $("mainScrollView").contentSize = $size(screenWidth, 350 + listHeight) -} - -let genStyleDefaultData = function (domain) { - let dp = domain.split('.') - let res = [] - res.push({ - styleName: { text: 'DOMAIN' }, - styleValue: { text: domain } - }) - return res.concat(dp.map((item, idx, obj) => { - return { - styleName: { text: 'DOMAIN-SUFFIX' }, - styleValue: { text: obj.slice(idx).join('.') } - } - })) -} - -let saveRule = function (rule) { - let data = JSON.parse($file.read(FILE).string) - data.customSettings += `\n${rule}\n` - $file.write({ - data: $data({ "string": JSON.stringify(data) }), - path: FILE - }) -} - -let genProxyDefaultData = function (proxies) { - return proxies.map(i => { - return { - proxyName: { text: i } - } - }) -} - -function collectRules() { - let confFile = $context.data.string - let surgeReg = /\[Rule\]\n([\s\S]+)\n# Custom/ - let quanReg = /\[SERVER\]\n([\s\S]+)\n\[SOURCE\]/ - if (surgeReg.test(confFile)) { - let matcher = confFile.match(surgeReg) - if (matcher.length === 2) { - let rules = matcher[1] - saveRule(rules) - } - $context.close() - } else if (quanReg.test(confFile)) { - let matcher = confFile.match(quanReg); - let serversRaw = matcher[1] - let servers = serversRaw.split(/[\r\n]+/).filter(i => /.*?=/.test(i)) - let serverDataItem = { - title: "Quantumult导出节点", - url: "", - rows: servers.map(server => { - return { - proxyLink: server, - proxyName: { - bgcolor: false, - text: server.split(/=/)[0].trim() - } - } - }) - } - let file = JSON.parse($file.read(FILE).string); - let workspace = file.workspace; - let serverData = workspace.serverData; - serverData.unshift(serverDataItem); - let success = $file.write({ - data: $data({ "string": JSON.stringify(file) }), - path: FILE - }) - $ui.alert({ - title: "导入" + success ? '成功': '失败', - message: success ? `已经成功导入${serverDataItem.rows.length}个服务器至脚本,请重启脚本查看` : '文件格式有误', - actions: [{ - title: 'OK', - handler: () => { - $context.close() - } - }] - }); - } else { - $ui.alert("分享文件不合法") - } -} - - -module.exports = { - renderExtensionUI: renderExtensionUI, - collectRules: collectRules -} \ No newline at end of file diff --git a/JSBox/Rules-lhie1/scripts/filenameUtil.js b/JSBox/Rules-lhie1/scripts/filenameUtil.js deleted file mode 100644 index 9508d51..0000000 --- a/JSBox/Rules-lhie1/scripts/filenameUtil.js +++ /dev/null @@ -1,23 +0,0 @@ -const knownURLs = [ - {domain: 'api.rixcloud.io', name: 'rixCloud'}, - {domain: 'dler.cloud', name: 'Dler Cloud'} -] - -function getConfName(url) { - let matchConst = knownURLs.find(i => url.indexOf(i.domain) > -1) - if (matchConst) { - return matchConst.name - } else { - let path = url.split('?')[0].split('/') - let filename = path[path.length - 1] - if (filename.indexOf('.conf') == filename.length - 5) { - return filename.substring(0, filename.length - 5) - } else { - return filename - } - } -} - -module.exports = { - getConfName: getConfName -} \ No newline at end of file diff --git a/JSBox/Rules-lhie1/scripts/init.js b/JSBox/Rules-lhie1/scripts/init.js deleted file mode 100644 index 7e8e60d..0000000 --- a/JSBox/Rules-lhie1/scripts/init.js +++ /dev/null @@ -1,21 +0,0 @@ -function asyncInitialize() { - updateSpecialReg() -} - -function updateSpecialReg() { - $http.download({ - showsProgress: false, - url: "https://raw.githubusercontent.com/Fndroid/specialReg/master/specialReg.js?t=" + new Date().getTime() - }).then(resp => { - if (resp.response.statusCode === 200) { - let success = $file.write({ - data: resp.data, - path: "scripts/videoReg.js" - }); - } - }) -} - -module.exports = { - asyncInitialize: asyncInitialize -} \ No newline at end of file diff --git a/JSBox/Rules-lhie1/scripts/proxyUitl.js b/JSBox/Rules-lhie1/scripts/proxyUitl.js deleted file mode 100644 index a158f7a..0000000 --- a/JSBox/Rules-lhie1/scripts/proxyUitl.js +++ /dev/null @@ -1,318 +0,0 @@ -const filenameUtil = require('scripts/filenameUtil') - -String.prototype.strictTrim = function () { - let trimed = this.trim() - if ((matcher = trimed.match(/([\s\S]+),$/)) !== null) { - return matcher[1] - } - return trimed -} - -function urlsafeBase64Encode(url) { - return $text.base64Encode(url).replace(/\-/g, '+').replace(/\\/g, '_').replace(/=+$/, '') -} - -function urlsafeBase64Decode(base64) { - // Add removed at end '=' - base64 += Array(5 - base64.length % 4).join('='); - base64 = base64 - .replace(/\-/g, '+') // Convert '-' to '+' - .replace(/\_/g, '/'); // Convert '_' to '/' - return $text.base64Decode(base64).replace(/\u0000/, ''); -} - -function promiseConf(url) { - return new Promise((resolve, reject) => { - $http.get({ - url: url, - header: { - 'User-Agent': 'Surge/1174 CFNetwork/962 Darwin/18.0.0' - }, - handler: function (resp) { - let data = resp.data + '' - let filename = url - try { - let matcher = resp.response.runtimeValue().invoke('allHeaderFields').rawValue()["Content-Disposition"].match(/filename="?(.*?)(?:.conf|"|$)/) - filename = matcher[1] - } catch (e) { - filename = filenameUtil.getConfName(url) - } - // 兼容不规范ssr链接 - let noPaddingData = data - let padding = noPaddingData.length % 4 == 0 ? 0 : 4 - noPaddingData.length % 4 - for (let i = 0; i < padding; i++) { - noPaddingData += '=' - } - let decodedData = $text.base64Decode(data) || $text.base64Decode(noPaddingData) - if (/\[Proxy\]([\s\S]*?)\[Proxy Group\]/.test(data)) { - // Surge托管 - resolve({ - servers: RegExp.$1, - filename: filename, - type: 0 - }) - } else if (/^(ssr|ss|vmess):\/\//.test(decodedData)) { - let rawLinks = decodedData.split(/[\n\r\|\s]+/g).filter(i => i !== '' && /^(ssr|ss|vmess):\/\//.test(i)); - let output = rawLinks.map(i => { - if (/^ssr:\/\//.test(i)) { - let res = decodeSSR([i]) - return res.servers - } else if (/^ss:\/\//.test(i)) { - let res = decodeScheme([i]) - return res.servers - } else { - let res = decodeVmess([i]) - return res.servers - } - }) - resolve({ - servers: output.reduce((p, c) => { - return p.concat(c) - }, []).join('\n'), - filename: getDomain(url), - type: 4 - }) - } else if (/^ssr:\/\//.test(decodedData)) { - // SSR订阅 - let rawLinks = decodedData.split(/[\n\r\|\s]+/g).filter(i => i !== '' && /^ssr:\/\//.test(i)); - let res = decodeSSR(rawLinks); - resolve({ - servers: res.servers.join('\n'), - filename: res.sstag || filename, - type: 1 - }) - } else if (/^ss:\/\//.test(decodedData)) { - // SS订阅 - let rawLinks = decodedData.split(/[\n\r\|\s]+/g).filter(i => i !== '' && /^ss:\/\//.test(i)); - let serInfo = decodeScheme(rawLinks); - resolve({ - servers: serInfo.servers.join('\n'), - filename: serInfo.sstag || filename, - type: 2 - }) - } else if (/^vmess:\/\//.test(decodedData)) { - let rawLinks = decodedData.split(/[\n\r\|\s]+/g).filter(i => i !== '' && /^vmess:\/\//.test(i)); - console.log('rawLinks', typeof rawLinks); - let res = decodeVmess(rawLinks); - console.log('res', res); - resolve({ - servers: res.servers.join('\n'), - filename: res.sstag || filename, - type: 3 - }) - } else { - resolve() - } - } - }) - }) -} - -function getDomain(url) { - if (/https?:\/\/.*?\.(.*?)\.(.*?)(?=\/|$)/.test(url)) { - return `${RegExp.$1.trim()}.${RegExp.$2.trim()}` - } - return '批量导入' -} - -function decodeSSR(links) { - let tag = '' - let first = '' - function getParam(key, content) { - let reg = new RegExp(`${key}=(.*?)(?:&|$)`); - let matcher = content.match(reg); - return matcher && matcher[1] ? matcher[1] : ''; - } - let decodedLinks = links.map(i => { - let rawContentMatcher = i.match(/^ssr:\/\/(.*?)$/); - if (rawContentMatcher && rawContentMatcher[1]) { - let rawContent = urlsafeBase64Decode(rawContentMatcher[1]); - let rawContentParts = rawContent.split(/\/*\?/g) - let paramsMatcher = rawContentParts[0].match(/^(.*?):(.*?):(.*?):(.*?):(.*?):(.*?)$/); - if (paramsMatcher && paramsMatcher.length === 7) { - let host = paramsMatcher[1]; - let port = paramsMatcher[2]; - let protocol = paramsMatcher[3]; - let method = paramsMatcher[4]; - let obfs = paramsMatcher[5]; - let pass = urlsafeBase64Decode(paramsMatcher[6]); - let obfsparam = ''; - let protoparam = ''; - let group = ''; - let remarks = ''; - if (rawContentParts.length > 1) { - let target = rawContentParts[1]; - obfsparam = urlsafeBase64Decode(getParam('obfsparam', target)); - protoparam = urlsafeBase64Decode(getParam('protoparam', target)); - group = urlsafeBase64Decode(getParam('group', target)); - remarks = urlsafeBase64Decode(getParam('remarks', target)); - } - if (tag === '' && group !== '') { - tag = group; - } - let finalName = remarks === '' ? `${host}:${port}` : remarks - first = finalName - let res = `${finalName} = shadowsocksr, ${host}, ${port}, ${method}, "${pass}", protocol=${protocol}, obfs=${obfs}`; - res += protoparam ? `, protocol_param=${protoparam}` : ''; - res += obfsparam ? `, obfs_param="${obfsparam}"` : ''; - return res; - } - else { - return ''; - } - } - else { - return ''; - } - }); - let sstag = first - if (decodedLinks.length > 1) { - sstag = `批量SSR节点(${decodedLinks.length})` - } - if (tag !== '') { - sstag = tag - } - return { servers: decodedLinks, sstag: sstag } -} - -function getServersFromConfFile(params) { - let promiseArray = params.urls.map(i => promiseConf(i)) - Promise.all(promiseArray).then(confs => { - for (let idx in confs) { - let res = confs[idx] - let type = res ? res.type : -1 - let filename = res ? res.filename : ''; - let servers = res ? res.servers.split(/[\n\r]+/).filter(item => item !== '').map(i => i.strictTrim()) : []; - params.handler({ servers: servers, filename: filename, url: params.urls[idx], type: type }) - } - }).catch(reason => { - console.error(reason.stack) - params.handler(null) - }) -} - -function isJson(str) { - try { - JSON.parse(str) - } catch (e) { - return false - } - return true -} - -function decodeVmess(links) { - let result = [] - let tag = '' - - for (let idx in links) { - let link = links[idx] - - if (/^vmess:\/\/(.*?)$/.test(link)) { - let content = urlsafeBase64Decode(RegExp.$1) - if (isJson(content)) { - // v2rayN style - let jsonConf = JSON.parse(content) - let group = '' - const ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 12_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/16A5366a' - let obfs = `,obfs=${jsonConf.net === 'ws' ? 'ws' : 'http'},obfs-path="${jsonConf.path || '/'}",obfs-header="Host:${jsonConf.host || jsonConf.add}[Rr][Nn]User-Agent:${ua}"` - let quanVmess = `${jsonConf.ps} = vmess,${jsonConf.add},${jsonConf.port},chacha20-ietf-poly1305,"${jsonConf.id}",group=${group},over-tls=${jsonConf.tls === 'tls' ? 'true' : 'false'},certificate=1${jsonConf.type === 'none' && jsonConf.net !== 'ws' ? '' : obfs}` - result.push(quanVmess) - } else { - // Quantumult style - if (/group=(.*?),/.test(content)) { - tag = RegExp.$1 - } - result.push(content) - } - } - } - return { servers: result, sstag: tag || `批量V2Ray节点(${result.length})` } -} - -function decodeScheme(urls) { - // let urls = params.ssURL - let result = [] - let tag - let group = '' - - for (let idx in urls) { - let url = urls[idx] - let method, password, hostname, port, plugin - if (!url.includes('#')) { - let name = '无节点名称' - url += `#${name}` - } - tag = $text.URLDecode(url.match(/#(.*?)$/)[1]) - if (url.includes('?')) { - // tag = $text.URLDecode(url.match(/#(.*?)$/)[1]) - let mdps = url.match(/ss:\/\/(.*?)@/)[1] - let padding = 4 - mdps.length % 4 - if (padding < 4) { - mdps += Array(padding + 1).join('=') - } - let userinfo = $text.base64Decode(mdps) - method = userinfo.split(':')[0] - password = userinfo.split(':')[1] - let htpr = url.match(/@(.*?)\?/)[1].replace('\/', '') - hostname = htpr.split(':')[0] - port = htpr.split(':')[1] - let ps = $text.URLDecode(url.match(/\?(.*?)#/)[1]) - let obfsMatcher = ps.match(/obfs=(.*?)(;|$)/) - let obfsHostMatcher = ps.match(/obfs-host=(.*?)(&|;|$)/) - if (obfsMatcher) { - let obfs = obfsMatcher[1] - let obfsHost = obfsHostMatcher ? obfsHostMatcher[1] : 'cloudfront.net' - plugin = `obfs=${obfs}, obfs-host=${obfsHost}` - } - if (/group=(.*)(&|;|$)/.test(ps)) { - group = $text.base64Decode(RegExp.$1.trim()) - } - } else { - if (/ss:\/\/([^#]*)/.test(url)) { - let mdps = RegExp.$1 - if (/^(.*)@(.*?):(.*?)$/.test(mdps)) { - hostname = RegExp.$2 - port = RegExp.$3 - let methodAndPass = urlsafeBase64Decode(RegExp.$1) - console.log('methodAndPass', methodAndPass); - if (/^(.*?):(.*?)$/.test(methodAndPass)) { - method = RegExp.$1 - password = RegExp.$2 - } - } else { - let padding = 4 - mdps.length % 4 - if (padding < 4) { - mdps += Array(padding + 1).join('=') - } - if (/^(.*?):(.*)@(.*?):(.*?)$/.test($text.base64Decode(mdps))) { - method = RegExp.$1 - password = RegExp.$2 - hostname = RegExp.$3 - port = RegExp.$4 - } - } - } - } - let proxy = `${tag} = custom, ${hostname}, ${port}, ${method}, ${password}, https://github.com/lhie1/Rules/blob/master/SSEncrypt.module?raw=true` - if (plugin != undefined) { - proxy += `, ${plugin}` - } - result[idx] = proxy - } - let outName = '' - if (group) { - outName = group - } else if (result.length === 1) { - outName = tag - } else { - outName = `批量ss节点(${result.length})` - } - return { servers: result, sstag: outName } -} - -module.exports = { - proxyFromConf: getServersFromConfFile, - proxyFromURL: decodeScheme, - proxyFromVmess: decodeVmess, - proxyFromSSR: decodeSSR -} \ No newline at end of file diff --git a/JSBox/Rules-lhie1/scripts/ruleUpdateUtil.js b/JSBox/Rules-lhie1/scripts/ruleUpdateUtil.js deleted file mode 100644 index 5763964..0000000 --- a/JSBox/Rules-lhie1/scripts/ruleUpdateUtil.js +++ /dev/null @@ -1,87 +0,0 @@ -let githubRawReg = /^https:\/\/raw\.githubusercontent\.com\/(.*?)\/(.*?)\/master\/(.*?)$/ - -const FILE = 'data.js' - -function getRulesReplacement(content = '') { - let advanceSettings = content ? content : JSON.parse($file.read(FILE).string) - if (advanceSettings.customSettings) { - let cs = advanceSettings.customSettings; - let pat = cs.match(/\/\/\s*replacement\s*:\s*(.*?)[\n\r]/); - if (pat && pat[1]) { - return pat[1]; - } - } - return null; -} - -function getSoftwareType() { - let file = JSON.parse($file.read(FILE).string) - let workspace = file.workspace - let outputFormat = workspace.outputFormat - if (outputFormat === 'Surge 3 TF') { - return 0 - } else if (outputFormat === 'Surge 2') { - return 2 - } else if (outputFormat === 'Quantumult') { - return 3 - } - return 1 -} - -function checkUpdate(oldSha, newSha) { - return Object.keys(newSha).some(i => oldSha[i] !== newSha[i]) -} - -function setFilesSha(sha) { - let file = JSON.parse($file.read(FILE).string) - file['repoSha'] = sha - $file.write({ - data: $data({ "string": JSON.stringify(file) }), - path: FILE - }) -} - -function getFilesSha() { - let file = JSON.parse($file.read(FILE).string) - return file['repoSha'] || {} -} - -function getGitHubFilesSha(params) { - params.handler({}) -} - -function getRepoInfo() { - let owner = 'lhie1'; - let repoName = 'Rules'; - let filePath = 'Auto'; - let softwareType = getSoftwareType() - if (softwareType === 0) { - filePath = 'Auto_New' - } else if (softwareType === 3) { - filePath = 'Quantumult' - } - console.log(filePath) - let rulesRep = getRulesReplacement(); - if (rulesRep) { - let reg = rulesRep.match(githubRawReg); - if (reg && reg.length === 4) { - owner = reg[1]; - repoName = reg[2]; - filePath = reg[3]; - } - } - return { owner, repoName, filePath }; -} - -function getLatestCommitMessage(params) { - params.handler(null) -} - -module.exports = { - checkUpdate: checkUpdate, - getGitHubFilesSha: getGitHubFilesSha, - setFilesSha: setFilesSha, - getFilesSha: getFilesSha, - getLatestCommitMessage: getLatestCommitMessage, - getRepoInfo: getRepoInfo -} \ No newline at end of file diff --git a/JSBox/Rules-lhie1/scripts/siri.js b/JSBox/Rules-lhie1/scripts/siri.js deleted file mode 100644 index 03e5054..0000000 --- a/JSBox/Rules-lhie1/scripts/siri.js +++ /dev/null @@ -1,14 +0,0 @@ -const ruleUpdateUtil = require('scripts/ruleUpdateUtil'); - -function siriRun() { - -} - -function renderSiriUI() { - $intents.height = 100 -} - -module.exports = { - siriRun: siriRun, - renderSiriUI: renderSiriUI -} \ No newline at end of file diff --git a/JSBox/Rules-lhie1/scripts/sizeUtil.js b/JSBox/Rules-lhie1/scripts/sizeUtil.js deleted file mode 100644 index 25dd4d0..0000000 --- a/JSBox/Rules-lhie1/scripts/sizeUtil.js +++ /dev/null @@ -1,8 +0,0 @@ -function pc(x) { - let sw = $device.info.screen.width - return x * sw / 100 -} - -module.exports = { - pc: pc -} \ No newline at end of file diff --git a/JSBox/Rules-lhie1/scripts/socketLogger.js b/JSBox/Rules-lhie1/scripts/socketLogger.js deleted file mode 100644 index c5143d0..0000000 --- a/JSBox/Rules-lhie1/scripts/socketLogger.js +++ /dev/null @@ -1,49 +0,0 @@ -module.exports = { - init: (address, port, clearFirst = true, debug = true) => { - var oldLog = console.log; - var oldInfo = console.info; - var oldWarn = console.warn; - var oldError = console.error; - let start = clearFirst - var socket = $socket.new(`ws://${address}:${port}`); - socket.open() - console.log = function (obj) { - if (debug) { - let msg = JSON.stringify({ type: 'log', args: Array.prototype.slice.call(arguments) }); - start = sendMessage(start, socket, msg); - } - oldLog.apply(console, arguments); - } - console.info = function (obj) { - if (debug) { - let msg = JSON.stringify({ type: 'info', args: Array.prototype.slice.call(arguments) }); - start = sendMessage(start, socket, msg); - } - oldInfo.apply(console, arguments); - } - console.warn = function (obj) { - if (debug) { - let msg = JSON.stringify({ type: 'warn', args: Array.prototype.slice.call(arguments) }); - start = sendMessage(start, socket, msg); - } - oldWarn.apply(console, arguments); - } - console.error = function (obj) { - if (debug) { - let msg = JSON.stringify({ type: 'error', args: Array.prototype.slice.call(arguments) }); - start = sendMessage(start, socket, msg); - } - oldError.apply(console, arguments); - } - } -} - -function sendMessage(start, socket, msg) { - if (start) { - socket.send(JSON.stringify({ type: "_open" })); - start = false; - } - socket.send(msg); - return start; -} - diff --git a/JSBox/Rules-lhie1/scripts/today.js b/JSBox/Rules-lhie1/scripts/today.js deleted file mode 100644 index 13b12fa..0000000 --- a/JSBox/Rules-lhie1/scripts/today.js +++ /dev/null @@ -1,468 +0,0 @@ -const ruleUpdateUtil = require('scripts/ruleUpdateUtil') -const updateUtil = require('scripts/updateUtil') - -const loadingHint = "检查规则/脚本更新..." - -const scriptName = $addin.current.name - -const FILE = 'data.js' - -let pm = function (method) { - return new Promise((resolve, reject) => { - method({ - handler: res => { - resolve(res) - } - }) - }) -} - -function getIfaData() { - return Object.keys($network.ifa_data).filter(i => i.indexOf('utun') > -1) -} - -function vpnStatus() { - try { - // 支持最新TF($network.proxy_settings) - let proxySettings = $network.proxy_settings - let proxyScoped = proxySettings['__SCOPED__'] - let lans = Object.keys(proxyScoped) - return lans.find(i => i.indexOf('utun') > -1) ? 1 : 0 - } catch (e) { - // 兼容旧版,需要手动设置状态 - if ($cache.get("surgeOn")) { - let surgeOn = $cache.get('surgeOn') - let nowIfa = getIfaData() - let oldIfa = surgeOn.ifaKeys - if (nowIfa.length === oldIfa.length) { - return surgeOn.status ? 1 : 0 - } else { - return surgeOn.status ? 0 : 1 - } - } - return -1 - } -} - -function genSrugeLabel(status, isQuan) { - if (status === -1) { - return '长按设置' - } else if (status === 0) { - return isQuan ? '开启Quantumult' : '开启Surge' - } else { - return isQuan ? '关闭Quantumult' : '关闭Surge' - } -} - -function requestHead(url) { - if (!/^https?:\/\//.test(url)) return Promise.resolve('') - return new Promise((resolve, reject) => { - $http.request({ - method: "HEAD", - url: url, - header: { - // 'User-Agent': 'Quantumult' - }, - handler: function (resp) { - let headerFields = resp.response.runtimeValue().$allHeaderFields().rawValue(); - if ('Subscription-userinfo' in headerFields) { - resolve(headerFields['Subscription-userinfo']) - } else if ('subscription-userinfo' in headerFields) { - resolve(headerFields['subscription-userinfo']) - } else { - resolve('') - } - } - }) - }) -} - -function parseUsage(usageStr) { - let uploadMatcher = usageStr.match(/upload=(\d+)(?:;|$)/) - let downloadMatcher = usageStr.match(/download=(\d+)(?:;|$)/) - let totalMatcher = usageStr.match(/total=(\d+)(?:;|$)/) - let upload = 0 - let download = 0 - let total = 0 - if (uploadMatcher && uploadMatcher[1]) upload = uploadMatcher[1] * 1 - if (downloadMatcher && downloadMatcher[1]) download = downloadMatcher[1] * 1 - if (totalMatcher && totalMatcher[1]) total = totalMatcher[1] * 1 - return { - upload: upload, - download: download, - total: total - } -} - -function widgetSettings(file) { - let items = file.widgetSettings.split(/[\r\n]+/g).filter(i => /^.*?=\s*http/.test(i)) - return items.map(i => { - let p = i.split(/=/) - return { - name: p[0].trim(), - url: p.slice(1).join('=').trim() - } - }) -} - -function renderTodayUI() { - let file = JSON.parse($file.read(FILE).string) - let workspace = file.workspace - let widget = widgetSettings(file); - let groupNames = workspace.serverData.map(i => i.title).concat(widget.map(i => i.name)) - let groupURLs = workspace.serverData.map(i => i.url).concat(widget.map(i => i.url)).map(i => requestHead(i)) - Promise.all(groupURLs).then(res => { - console.log(res) - let usageData = [] - for (let idx in res) { - if (res[idx] === '') continue - let usage = parseUsage(res[idx]) - const GB = Math.pow(1024, 3) - usageData.push({ - groupName: { - text: `${groupNames[idx]}` - }, - usageProgress: { - value: (usage.download + usage.upload) / usage.total - }, - usageDetail: { - text: `↑ ${(usage.upload / GB).toFixed(2)}GB ↓ ${(usage.download / GB).toFixed(2)}GB ≡ ${((usage.total - usage.download - usage.upload) / GB).toFixed(2)}GB` - }, - usageDetail2: { - text: `${groupNames[idx]} ( ${(usage.total / GB).toFixed(2)}GB )` - } - }) - } - $("usageView").data = usageData - $("usageView").updateLayout(make => { - make.height.equalTo(usageData.length * 50) - }) - $widget.height = 110 + (usageData.length * 50) - }) - $widget.modeChanged = mode => { - if (mode === 1) { - $widget.height = 110 + ($("usageView").data.length * 50) - } - } - let outputFormat = workspace.outputFormat - let surge2 = outputFormat === 'Surge 2' - let isQuan = outputFormat === 'Quantumult' - let isLauncher = $app.widgetIndex < 0 || $app.widgetIndex > 2 - let checks = [pm(ruleUpdateUtil.getGitHubFilesSha), pm(updateUtil.getLatestVersion)] - let vStatus = vpnStatus() - Promise.all(checks).then(res => { - let canUpdate = ruleUpdateUtil.checkUpdate(ruleUpdateUtil.getFilesSha(), res[0]) - let newVersion = updateUtil.needUpdate(res[1], updateUtil.getCurVersion()) - $("newTag").hidden = !canUpdate - $("newVersionTag").hidden = !newVersion - return canUpdate ? pm(ruleUpdateUtil.getLatestCommitMessage) : Promise.resolve() - }).then(res => { - let { owner, repoName, filePath } = ruleUpdateUtil.getRepoInfo() - $("updateStatus").text = res ? res.commit.message : `${owner}\/${repoName}` - }) - let targetAppOn = $file.read("assets/today_surge.png") - let targetAppOff = $file.read("assets/today_surge_off.png") - if (isQuan) { - targetAppOn = $file.read("assets/today_quan.png") - targetAppOff = $file.read("assets/today_quan_off.png") - } else if (surge2) { - targetAppOn = $file.read("assets/today_surge2.png") - } - $ui.render({ - props: { - id: "todayMainView", - title: "Surge3规则生成", - hideNavbar: true, - navBarHidden: true, - }, - views: [{ - type: "blur", - props: { - id: "close", - style: 1, - radius: 0, - hidden: !isLauncher - }, - layout: (make, view) => { - make.width.height.equalTo(view.super).offset(10) - make.top.equalTo(view.super.top).offset(-10) - }, - events: { - tapped: sender => { - $app.close(0.3) - } - } - }, { - type: "view", - props: { - id: "", - }, - layout: (make, view) => { - make.height.equalTo(110) - make.width.equalTo(view.super).offset(-60) - make.centerX.equalTo(view.super) - }, - views: [{ - type: "label", - props: { - id: "updateStatus", - text: "Rules-lhie1 by Fndroid", - font: $font(12), - textColor: $rgba(50, 50, 50, .3) - }, - layout: (make, view) => { - make.top.equalTo(view.super.top).offset(5) - make.centerX.equalTo(view.super) - } - }, { - type: "label", - props: { - id: "updateStatus", - text: loadingHint, - font: $font(12), - textColor: $rgba(50, 50, 50, .3) - }, - layout: (make, view) => { - make.bottom.equalTo(view.super.bottom).offset(-5) - make.centerX.equalTo(view.super) - } - }, { - type: "image", - props: { - id: "pullBtn", - data: $file.read("assets/today_pull.png"), - radius: 25, - bgcolor: $rgba(255, 255, 255, 0) - }, - layout: (make, view) => { - make.width.height.equalTo(55) - make.centerY.equalTo(view.super).offset(-10) - make.centerX.equalTo(view.super) - }, - events: { - tapped: sender => { - $app.openURL(`jsbox://run?name=${encodeURIComponent(scriptName)}&auto=1`) - } - }, - }, { - type: "image", - props: { - id: "surgeBtn", - data: vStatus === 0 ? targetAppOff : targetAppOn, - radius: 25, - bgcolor: $rgba(255, 255, 255, 0) - }, - layout: (make, view) => { - make.width.height.equalTo(55) - make.centerY.equalTo(view.super).offset(-10) - // make.left.equalTo(view.prev.left).offset(-(sw / 3.5)) - make.left.equalTo(view.super) - console.log('width', $widget.width) - }, - events: { - tapped: sender => { - let url = `surge${surge2 ? "" : "3"}:///toggle?autoclose=true` - if (isQuan) { - url = 'quantumult://' + (vStatus === 0 ? 'start' : 'stop') - } - $app.openURL(url) - }, - longPressed: sender => { - $ui.alert({ - title: "初始设置", - message: '请选择当前VPN开关状态?', - actions: [{ - title: '已关闭', - handler: () => { - $cache.set("surgeOn", { - status: false, - ifaKeys: getIfaData() - }) - } - }, { - title: '已开启', - handler: () => { - $cache.set("surgeOn", { - status: true, - ifaKeys: getIfaData() - }) - } - }] - }) - } - } - }, { - type: "image", - props: { - id: "jsboxBtn", - data: $file.read("assets/today_jsbox.png"), - radius: 25, - bgcolor: $rgba(255, 255, 255, 0) - }, - layout: (make, view) => { - make.width.height.equalTo(50) - make.centerY.equalTo(view.super).offset(-10) - // make.right.equalTo(view.prev.prev.right).offset((sw / 3.5)) - make.right.equalTo(view.super) - }, - events: { - tapped: sender => { - $app.openURL(`jsbox://run?name=${encodeURIComponent(scriptName)}`) - } - } - }, { - type: "label", - props: { - text: "更新规则", - font: $font(12), - textColor: $rgba(50, 50, 50, .8), - align: $align.center - }, - layout: (make, view) => { - make.height.equalTo(12) - make.top.equalTo($("pullBtn").bottom) - make.width.equalTo($("pullBtn").width) - make.centerX.equalTo($("pullBtn")) - } - }, { - type: "label", - props: { - id: "surgeLabel", - text: genSrugeLabel(vStatus, isQuan), - font: $font(12), - textColor: $rgba(50, 50, 50, .8), - align: $align.center - }, - layout: (make, view) => { - make.height.equalTo(12) - make.top.equalTo(view.prev.top) - make.centerX.equalTo($("surgeBtn")) - } - }, { - type: "label", - props: { - text: "脚本设置", - font: $font(12), - textColor: $rgba(50, 50, 50, .8), - align: $align.center - }, - layout: (make, view) => { - make.height.equalTo(12) - make.top.equalTo($("pullBtn").bottom) - make.width.equalTo($("pullBtn").width) - make.centerX.equalTo($("jsboxBtn")) - } - }, { - type: "image", - props: { - id: "newTag", - data: $file.read("assets/new_rules_tag.png"), - bgcolor: $rgba(255, 255, 255, 0), - hidden: true - }, - layout: (make, view) => { - make.width.height.equalTo(15) - make.centerY.equalTo(view.super).offset(-20) - make.left.equalTo($("pullBtn").right).offset(-10) - } - }, { - type: "image", - props: { - id: "newVersionTag", - data: $file.read("assets/new_version_tag.png"), - bgcolor: $rgba(255, 255, 255, 0), - hidden: true - }, - layout: (make, view) => { - make.width.height.equalTo(15) - make.centerY.equalTo(view.super).offset(-20) - make.left.equalTo($("jsboxBtn").right).offset(-10) - } - }, { - type: "image", - props: { - id: "closeBtn", - data: $file.read("assets/close_icon.png"), - bgcolor: $rgba(255, 255, 255, 0), - hidden: !isLauncher, - alpha: 0.7 - }, - layout: (make, view) => { - make.width.height.equalTo(20) - make.top.equalTo(view.super.top).offset(10) - make.right.equalTo(view.super.right).offset(-10) - }, - events: { - tapped: sender => { - $app.close(.2) - } - } - }] - }, { - type: 'list', - props: { - id: "usageView", - data: [], - rowHeight: 50, - alwaysBounceVertical: false, - bgcolor: $color("clear"), - separatorHidden: true, - template: { - props: { - bgcolor: $color("clear") - }, - views: [{ - type: "progress", - props: { - id: 'usageProgress' - }, - layout: function (make, view) { - make.centerY.equalTo(view.super).offset(-3); - make.centerX.equalTo(view.super); - make.height.equalTo(3) - make.width.equalTo(view.super).multipliedBy(1).offset(-50) - }, - views: [{ - type: 'label', - props: { - id: 'usageDetail', - align: $align.center, - font: $font("bold", 10), - textColor: $color("#595959") - }, - layout: (make, view) => { - make.width.equalTo(view.super) - make.height.equalTo(20) - make.top.equalTo(view.super).offset(-20) - make.centerX.equalTo(view.super) - } - }, { - type: 'label', - props: { - id: 'usageDetail2', - align: $align.center, - font: $font("bold", 12), - textColor: $color("#595959") - }, - layout: (make, view) => { - make.width.equalTo(view.super) - make.height.equalTo(23) - make.top.equalTo(view.super) - make.centerX.equalTo(view.super) - } - }] - }] - } - }, - layout: (make, view) => { - make.top.equalTo(110) - make.width.equalTo(view.super) - make.height.width.equalTo(100) - } - }] - }) -} - -module.exports = { - renderTodayUI: renderTodayUI -} diff --git a/JSBox/Rules-lhie1/scripts/updateUtil.js b/JSBox/Rules-lhie1/scripts/updateUtil.js deleted file mode 100644 index 585ba00..0000000 --- a/JSBox/Rules-lhie1/scripts/updateUtil.js +++ /dev/null @@ -1,60 +0,0 @@ -function getCurVersion() { - let version = $file.read("version.fndroid").string - return version -} - -function needRestart() { - return $http.get({ - url: 'https://raw.githubusercontent.com/Fndroid/jsbox_script/master/Rules-lhie1/restart.fndroid' - }) -} - -function getLatestVersion(params) { - $http.get({ - url: 'https://raw.githubusercontent.com/Fndroid/jsbox_script/master/Rules-lhie1/version.fndroid' + '?t=' + new Date().getTime(), - handler: res => { - params.handler(res.data) - } - }) -} - -function updateScript(version) { - let url = 'https://raw.githubusercontent.com/Fndroid/jsbox_script/master/Rules-lhie1/.output/Rules-lhie1.box' + '?t=' + new Date().getTime() - const scriptName = $addin.current.name - let downloadBox = $http.download({ - url: url - }) - Promise.all([downloadBox, needRestart()]).then(res => { - let box = res[0].data - let restart = /true/.test(res[1].data) - $addin.save({ - name: scriptName, - data: box, - handler: (success) => { - if (success) { - $ui.toast(`更新完成`) - if (restart) { - $delay(0.3, () => { - $addin.run(scriptName) - }) - } - } - } - }) - }) -} - -function needUpdate(nv, ov) { - let getVersionWeight = i => { - return i.split('.').map(i => i * 1).reduce((s, i) => s * 100 + i) - } - return getVersionWeight(nv) > getVersionWeight(ov) -} - - -module.exports = { - getCurVersion: getCurVersion, - getLatestVersion: getLatestVersion, - updateScript: updateScript, - needUpdate: needUpdate -} diff --git a/JSBox/Rules-lhie1/scripts/videoReg.js b/JSBox/Rules-lhie1/scripts/videoReg.js deleted file mode 100644 index b529478..0000000 --- a/JSBox/Rules-lhie1/scripts/videoReg.js +++ /dev/null @@ -1,16 +0,0 @@ -module.exports = { - Netflix: /(?=USER-AGENT,Argo\*,|DOMAIN-SUFFIX,netflix.com,|DOMAIN-SUFFIX,netflix.net,|DOMAIN-SUFFIX,nflxext.com,|DOMAIN-SUFFIX,nflximg.com,|DOMAIN-SUFFIX,nflximg.net,|DOMAIN-SUFFIX,nflxvideo.net,|IP-CIDR,23.246.0.0\/12,|IP-CIDR,37.77.0.0\/12,|IP-CIDR,45.57.0.0\/12,|IP-CIDR,64.120.128.0\/17,|IP-CIDR,66.197.128.0\/17,|IP-CIDR,108.175.0.0\/12,|IP-CIDR,185.2.0.0\/12,|IP-CIDR,185.9.188.0\/22,|IP-CIDR,192.173.64.0\/18,|IP-CIDR,198.38.0.0\/12,|IP-CIDR,198.45.0.0\/12,)[^\n]+/g, - Spotify: /(?=PROCESS-NAME,Spotify,|DOMAIN-SUFFIX,spoti.fi,|DOMAIN-KEYWORD,spotify,|USER-AGENT,\*Spotify\*,|DOMAIN-SUFFIX,scdn.co,|DOMAIN-SUFFIX,spotify.com,)[^\n]+/g, - YouTube: /(?=USER-AGENT,com.google.ios.youtube\*,|USER-AGENT,YouTube\*,|DOMAIN-SUFFIX,googlevideo.com,|DOMAIN-SUFFIX,youtube.com,|DOMAIN-KEYWORD,youtube,)[^\n]+/g, - MytvSUPER: /(?=DOMAIN-KEYWORD,nowtv100,|DOMAIN-KEYWORD,rthklive,|DOMAIN-SUFFIX,mytvsuper.com,|DOMAIN-SUFFIX,tvb.com,)[^\n]+/g, - BBC: /(?=USER-AGENT,BBCiPlayer\*,|USER-AGENT,BBCBeacon\*,|DOMAIN-KEYWORD,co.uk,|DOMAIN-KEYWORD,uk-live,|DOMAIN-SUFFIX,bbc.co,|DOMAIN-SUFFIX,bbc.com,|DOMAIN-SUFFIX,bbci.co.uk,|DOMAIN-SUFFIX,bbc.co.uk,|DOMAIN-SUFFIX,vod-hls-uk-live.akamaized.net,)[^\n]+/g, - LINE: /(?=DOMAIN-SUFFIX,lin.ee,|DOMAIN-SUFFIX,line.me,|DOMAIN-SUFFIX,line.naver.jp,|DOMAIN-SUFFIX,line-apps.com,|DOMAIN-SUFFIX,line-cdn.net,|DOMAIN-SUFFIX,line-scdn.net,|DOMAIN-SUFFIX,nhncorp.jp,|IP-CIDR,103.2.28.0\/22,|IP-CIDR,119.235.224.0\/21,|IP-CIDR,119.235.232.0\/23,|IP-CIDR,119.235.235.0\/24,|IP-CIDR,119.235.236.0\/23,|IP-CIDR,125.6.146.0\/24,|IP-CIDR,125.6.149.0\/24,|IP-CIDR,125.6.190.0\/24,|IP-CIDR,125.209.208.0\/20,|IP-CIDR,203.104.103.0\/24,|IP-CIDR,203.104.128.0\/20,|IP-CIDR,203.174.66.64\/26,|IP-CIDR,203.174.77.0\/24,)[^\n]+/g, - SoundCloud: /(?=USER-AGENT,SoundCloud\*,|DOMAIN-SUFFIX,soundcloud.com,|DOMAIN-SUFFIX,sndcdn.com,)[^\n]+/g, - Google: /(?=DOMAIN-SUFFIX,goo.gl,|DOMAIN-SUFFIX,gvt1.com,|DOMAIN-SUFFIX,youtu.be,|DOMAIN-SUFFIX,ytimg.com,|DOMAIN-SUFFIX,ggpht.com,|DOMAIN-KEYWORD,gmail,|DOMAIN-KEYWORD,google,|DOMAIN-KEYWORD,gstatic,|DOMAIN-KEYWORD,youtube,|USER-AGENT,WalletAPP.app\*,|USER-AGENT,Wallet\*iSL\*,|DOMAIN-SUFFIX,google.com,|DOMAIN-SUFFIX,googleapis.com,)[^\n]+/g, - PayPal: /(?=USER-AGENT,PayPal\*,|DOMAIN-KEYWORD,paypal,|DOMAIN-SUFFIX,paypal.com,)[^\n]+/g, - Microsoft: /(?=USER-AGENT,Microsoft\*,|USER-AGENT,OneDrive\*,|DOMAIN-KEYWORD,microsoft,|DOMAIN-SUFFIX,bing.com,|DOMAIN-SUFFIX,bing.net,|DOMAIN-SUFFIX,cloudappsecurity.com,|DOMAIN-SUFFIX,docs.com,|DOMAIN-SUFFIX,hotmail.com,|DOMAIN-SUFFIX,live.com,|DOMAIN-SUFFIX,live.net,|DOMAIN-SUFFIX,microsoft.com,|DOMAIN-SUFFIX,msedge.net,|DOMAIN-SUFFIX,msn.com,|DOMAIN-SUFFIX,office.com,|DOMAIN-SUFFIX,office.net,|DOMAIN-SUFFIX,office365.com,|DOMAIN-SUFFIX,onedrive.com,|DOMAIN-SUFFIX,onenote.com,|DOMAIN-SUFFIX,onenote.net,|DOMAIN-SUFFIX,onmicrosoft.com,|DOMAIN-SUFFIX,outlook.com,|DOMAIN-SUFFIX,outlookgroups.ms,|DOMAIN-SUFFIX,visualstudio.com,|DOMAIN-SUFFIX,windows.com,|DOMAIN-SUFFIX,windows.net,|DOMAIN-SUFFIX,windowsupdate.com,)[^\n]+/g, - YoutubeMusic: /(?=USER-AGENT,\*youtubemusic\*,|USER-AGENT,YouTubeMusic\*,)[^\n]+/g, - TVB: /(?=USER-AGENT,mytv\*,|DOMAIN-SUFFIX,mytvsuper.com,|DOMAIN-KEYWORD,nowtv100,|DOMAIN-KEYWORD,rthklive,|DOMAIN-SUFFIX,tvb.com,|USER-AGENT,OTT_iPhone\*,|USER-AGENT,Viu\*,|DOMAIN-SUFFIX,viu.com,)[^\n]+/g, - Vidol: /(?=USER-AGENT,Vidol\*,|DOMAIN-SUFFIX,vidol.tv,)[^\n]+/g, - Hulu: /(?=DOMAIN-SUFFIX,hulu.com,)[^\n]+/g -} diff --git a/JSBox/Rules-lhie1/strings/en.strings b/JSBox/Rules-lhie1/strings/en.strings deleted file mode 100644 index ae42947..0000000 --- a/JSBox/Rules-lhie1/strings/en.strings +++ /dev/null @@ -1,3 +0,0 @@ -"OK" = "OK"; -"DONE" = "Done"; -"HELLO_WORLD" = "Hello, World!"; diff --git a/JSBox/Rules-lhie1/strings/zh-Hans.strings b/JSBox/Rules-lhie1/strings/zh-Hans.strings deleted file mode 100644 index b2d0c5d..0000000 --- a/JSBox/Rules-lhie1/strings/zh-Hans.strings +++ /dev/null @@ -1,3 +0,0 @@ -"OK" = "好的"; -"DONE" = "完成"; -"HELLO_WORLD" = "你好,世界!"; diff --git a/JSBox/Rules-lhie1/updateLog.md b/JSBox/Rules-lhie1/updateLog.md deleted file mode 100644 index 51c96a7..0000000 --- a/JSBox/Rules-lhie1/updateLog.md +++ /dev/null @@ -1,546 +0,0 @@ -**如打赏名单有遗漏,请TG联系我加一下** - -#### 2019.05.06 -1. 修复规则仓库调整导致的不兼容问题 -v1.9.70 - -#### 2019.04.15 -1. 修复“删除节点”逻辑问题 -v1.9.69 - -#### 2019.03.21 -1. 修复Quantumult自定义url rewrite不生效问题 -v1.9.67 - -#### 2019.03.20 -1. 修复规则仓库调整导致的不兼容问题 -v1.9.64 -2. 修复当只有userHostName时,配置文件出现第一行为空的问题 -v1.9.65 -3. 修复Quantumult规则变化导致的问题 -v1.9.66 - -#### 2019.02.25 -1. 修复规则仓库调整导致的不兼容问题 -v1.9.63 -2. 修复ss节点密码带有@导致不能识别问题 -v1.9.63 - -#### 2019.02.07 -1. 修复RuleSet注释无法识别问题 -v1.9.62 - -#### 2019.01.04 -1. 修复进阶设置占位符滚动问题 -v1.9.61 - -#### 2019.01.01 -1. 修复导出到Quantumult时RULE-SET转换错误问题 -v1.9.60 - -#### 2018.12.30 -1. rename替换中使用``>``代替``,`` -v1.9.59 - -#### 2018.12.21 -1. 支持导入混合类型订阅 -v1.9.58 - -#### 2018.12.20 -1. 修复RULE-SET被注释依然转换问题 -v1.9.57 - -#### 2018.11.24 -1. 修复非TF导出带有RULE-SET问题 -v1.9.56 - -#### 2018.11.19 -1. 修复Quantumult和Surge TF无法使用replacement问题 -v1.9.54 - -#### 2018.11.17 -1. 修复Widget布局问题 -v1.9.52 -2. 自定义规则对所有导出支持RULE-SET -v1.9.52 - -#### 2018.11.16 -1. 去除特殊代理 -v1.9.51 -2. 去除RuleSet的时间戳 -v1.9.51 - -#### 2018.11.14 -1. Quantumult所有Rejection部分使用最新Rewrite实现1x1像素过滤 -v1.9.50 -2. 替换支付宝红包 -v1.9.50 - -#### 2018.11.08 -1. 修复SSEncrypt.module失效问题 -v1.9.47 -2. 修复重复策略名无法导出问题 -v1.9.48 - -#### 2018.11.03 -1. 修复Quantumult问题 -v1.9.45 - -#### 2018.11.01 -1. 允许添加空节点 -v1.9.43 - -#### 2018.10.30 -1. 修复Shadowsocks订阅识别问题 -v1.9.39 -2. 修复Quantumult规则导出问题 -v1.9.40 -3. 修复SurgeTF规则导出问题 -v1.9.40 - -#### 2018.10.29 -1. 调整Quantumult自定义规则位置于GEOIP,CN上面 -v1.9.38 - -#### 2018.10.27 -1. 修复Quantumult所有LAN规则没有设置为DIRECT的问题 -v1.9.37 - -#### 2018.10.22 -1. 修正备份问题 -v1.9.36 - -#### 2018.10.18 -1. 恢复占位符重命名 -v1.9.35 -1. 代理分组输入框提供所有占位符名称选择 -v1.9.35 - -#### 2018.10.17 -1. 修复动画资源过大问题 -v1.9.34 - -#### 2018.10.15 -1. 小组件流量显示调整,设置时等号两边可以留空格 -v1.9.33 - -#### 2018.10.14 -1. 小组件规则更新信息根据APP显示 -v1.9.32 - -#### 2018.10.10 -1. 修复Shadowsocks链接导入错误 -v1.9.30 -2. 修复Shadowsocks订阅在Quantumult不生成的问题 -v1.9.31 - -#### 2018.10.05 -1. 调整调试状态栏显示状态下UI被遮挡的问题 -v1.9.28 - -#### 2018.10.03 -1. 替换占位符操作“重命名”为“删除节点” -v1.9.26 -2. 修复ssid策略组名称问题 -v1.9.27 - -#### 2018.10.01 -1. 调整RULE-SET中的URL,添加时间戳强制刷新 -v1.9.24 -2. 支持添加类型为round-robin的策略组,配置如select,对应Quantumult轮询 -v1.9.24 -3. 修复规则替换问题 -v1.9.25 - -#### 2018.09.29 -1. 生成Quantumult规则时,自动生成对应的favorite -v1.9.22 -2. 增加列表下拉更新节点 -v1.9.23 - -#### 2018.09.28 -1. 修复Quantumult无法导出问题 -v1.9.15 -2. 增加升级重启逻辑,仅在需要时重启脚本 -v1.9.16 -3. 修复SSID设置失效问题 -v1.9.17 -4. 增加导出Surge3 TF格式规则 -v1.9.18 -5. 修复图标问题 -v1.9.19 -6. 修复Bug -v1.9.21 - -#### 2018.09.25 -1. 修复特殊代理设置后无法生成配置文件问题 -v1.9.13 - -#### 2018.09.24 -1. 调整列表样式 -v1.9.12 - -#### 2018.09.20 -1. 修复特殊代理设置无效问题 -v1.9.11 - -#### 2018.09.19 -1. 调整Quantumult规则 -v1.9.9 - -#### 2018.09.16 -1. 调整ss链接识别 -v1.9.5 -2. 更改Quantulult导出的规则为Jacky Y维护的规则 -v1.9.7 -3. 增加备份文件选择后的提示 -v1.9.7 - -#### 2018.09.13 -1. 修复首次打开无法导入节点问题 -v1.9.4 -2. 允许空白分组,并在生成时清除其group信息 -v1.9.4 - -#### 2018.09.11 -1. 新添加节点显示在最顶部 -v1.9.3 -2. 修复v2ray订阅不生成问题 -v1.9.3 - -#### 2018.09.10 -1. 支持导入v2订阅(Quantumult和v2rayN),去除对Shadowrocket和Kitsunebi的vmess格式支持 -v1.9.1 -2. v2rayN的vmess默认加密方式改为chacha20-ietf-poly1305 -1.9.2 - -#### 2018.08.30 -1. 修复bug -v1.8.4 - -#### 2018.08.28 -1. 修复加载慢或无法加载的问题 -v1.8.2 - -#### 2018.08.26 -1. 修复Bug -v1.7.89 -2. 适配Quantumult的SSID suspend -v1.8.1 - -#### 2018.08.23 -1. 调整导航栏样式 -v1.7.82 -2. 增加Loading动画 -v1.7.83 - -#### 2018.08.22 -1. 允许定义部分UI(主界面和进阶设置)颜色,且不会因更新覆盖 -v1.7.80 - -#### 2018.08.21 -1. 增加从Quantumult导出节点,导出文件是选择JSBox即可 -v1.7.76 -2. 恢复SSID设置 -1.7.77 - -#### 2018.08.20 -1. 增加小组件流量显示自定义 -v1.7.75 - -#### 2018.08.19 -1. 修复SSR订阅识别Quantumult无法联网问题 -v1.7.73 -2. 修复Bug -v1.7.74 - -#### 2018.08.18 -1. 增加节点编辑,去除重命名 -v1.7.71 -2. 兼容某些不合规范的订阅 -v1.7.72 - -#### 2018.08.17 -1. 特殊代理设置会在脚本启动时从Github更新,地址:https://github.com/Fndroid/specialReg -v1.7.70 - -#### 2018.08.13 -1. 更新默认General配置,更新需要清空进阶设置里的“常规” -v1.7.69 - -#### 2018.08.12 -1. Emoji功能独立开关 -v1.7.66 -2. 修复更新节点时批量节点被恢复问题 -v1.7.66 -3. 部分机场订阅不规范无法识别问题 -v1.7.67 - -#### 2018.08.11 -1. Emoji更新可以对所有节点生效 -v1.7.64 -2. 修复bug -v1.7.65 - -#### 2018.08.09 -1. 修复SSR转换时模块丢失问题 -v1.7.63 - -#### 2018.08.07 -1. SSR链接导出到Surge时仅支持plain/origin兼容模式 -v1.7.62 -2. 订阅识别不支持混合类型,仅仅会读取首个节点类型,不同的将被抛弃 -v1.7.62 - -#### 2018.08.06 -1. 增加识别external类型Surge链接 -v1.7.61 -2. 导出为Surge时尝试将链接转换为ss链接 -v1.7.61 - -#### 2018.08.05 -1. 更新节点列表时可以带上国旗Emoji -v1.7.60 - -#### 2018.08.03 -1. 修复拓展选择时注释被误识别的问题 -v1.7.59 -2. 调整下载逻辑 -v1.7.59 - -#### 2018.08.01 -1. 修复Quantumult添加后缀被误识别为混淆参数的问题 -v1.7.58 - -#### 2018.07.30 -1. 增加后缀source-type=n,n合法值为0-7,用于Quantumult导出时设置订阅的OPTION选项 -v1.7.57 -2. 增加307重定向识别 -v1.7.57 - -#### 2018.07.28 -1. 修复某些设备小组件字体被遮挡的问题 -v1.7.56 - -#### 2018.07.27 -1. 增加识别Shadowsocks订阅 -v1.7.54 -2. 修复某些机场不能显示流量问题 -v1.7.54 -3. 增加节点更新/识别失败提示 -v1.7.55 - -#### 2018.07.25 -1. 调整小组件流量显示样式 -v1.7.52 -2. 修复流量信息和组名不对应问题 -v1.7.53 - -#### 2018.07.24 -1. 修复一个很难触发的Bug -v1.7.51 - -#### 2018.07.23 -1. 界面调整 -v1.7.50 - -#### 2018.07.22 -1. Quantumult调整REJECT规则部分,解决某些广告不能屏蔽问题(如腾讯视频) -v1.7.47 -2. 删除昨晚加班解决的问题 -v1.7.48 -3. 修复小Bug -v1.7.49 - -#### 2018.07.21 -1. 修复Quantumult导出时自定义URLRewrite或URLReject丢失问题 -v1.7.44 -2. 修复Quantumult导出时因节点名称不合法而丢弃的问题 -v1.7.45 - -#### 2018.07.20 -1. 关于页面增加托管Bot入口 -v1.7.41 -2. 长按“生成配置”按钮可以快速导出data.js文件 -v1.7.41 -3. 小组件会根据配置使用Quantumult支持的流量显示方式显示流量信息 -v1.7.42 -4. 调整小组件样式 -v1.7.43 - -#### 2018.07.19 -1. 更新托管文件名获取逻辑 -v1.7.40 - -#### 2018.07.18 -1. 调整小组件和启动器区分逻辑 -v1.7.38 -2. 调整主界面UI -v1.7.38 -3. 区分Surge2/3的图标 -v1.7.39 - -#### 2018.07.17 -1. 生成Quantumult配置时,如检测到SSR链接,则在Favorite里生成对应订阅 -v1.7.37 - -#### 2018.07.16 -1. 配置文件增加覆盖功能 -v1.7.36 - -#### 2018.07.15 -1. 支持识别Kitsunebi和Shadowrocket的V2Ray链接 - v1.7.35 - -#### 2018.07.13 -1. 修复SSR托管无法识别问题 - v1.7.32 -2. 增加更新/导入识别结果提示 - v1.7.32 -3. 增加都某些机场不规范订阅的识别 -v1.7.33 -4. 调整节点列表样式 -v1.7.33 - -#### 2018.07.12 -1. 导入Quantumult显示分组(vmess除外) - v1.7.30 -2. 支持识别SSR订阅和批量导入 - v1.7.31 -3. 支持识别V2Ray订阅和批量导入 - v1.7.31 - -#### 2018.07.10 -1. Quantumult最新TF已经修正obfs-host问题,所以删除hack逻辑 - v1.7.28 -2. 测试识别V2Ray链接(vmess://) - v1.7.29 - -#### 2018.07.09 -1. 修复下滑问题 - v1.7.27 -2. 修复Quantumult无法获取配置DNS问题 - v1.7.27 -3. 去除URL Scheme导出filter和rejection的特性,因为Quantumult无法识别里面的Policy - v1.7.27 -4. 支持使用特殊占位符``WidgetHeader``来配置Quantumult的Widget节点 - v1.7.27 - -#### 2018.07.08 -1. hack解决圈obfs-host识别问题 - v1.7.26 -2. 修复占位符会替换策略组名问题(占位符不要与节点名冲突)- v1.7.26 -3. 增加Quantumult小组件开关 - v1.7.26 -4. 导出为Quantumult时,不选择导出则只更新filter和rejection两部分 - v1.7.26 - -#### 2018.07.07 -1. 支持导出为Quantumult格式配置(beta),测试前请备份配置先 - v1.7.25 - -#### 2018.07.06 -1. Surge开关使用最新API判断,可不预先设置 - v1.7.24 - -#### 2018.07.05 -1. 调整Surge开关状态逻辑,如不能显示请反馈 - v1.7.22 -2. Surge开关状态需要先进行初始设置(长按图标即可) - v1.7.23 - -#### 2018.07.03 -1. 小组件点击逻辑不变,但会显示Surge开关状态 - -#### 2018.06.30 -1. 修复Surge2不开启MITM时报错的问题 - -#### 2018.06.26 -1. 增加占位符重命名 -2. 修复批量导入节点在更新时会重复出现的问题 - -#### 2018.06.24 -1. 关键字删除时,可以使用正则表达式,但除了``\s``(空格),这是分隔符 - -#### 2018.06.23 -1. 列表不选择时默认为DIRECT改为默认全选 - -#### 2018.06.22 -1. 调整右上角按钮,分别改为支付宝红包领取和备份当前配置 -2. 调整UI -3. 备份改为存储到iCloud -4. 修复可以创建空占位符问题 - -#### 2018.06.21 -1. ``// replacement``注释现在将会替换除General、Proxy Group和MITM的CA部分(替换规则不需要重新生成证书)外的其他内容 -2. 修复部分情况下hostname为空的错误 - -#### 2018.06.20 -1. 脚本右上角增加导出data.js文件选项,方便后续生成订阅 - -#### 2018.06.19 -1. 修复完成按钮无法保存后缀问题 - -#### 2018.06.18 -1. rename注释可以识别等号,但需要使用转义``\=``,每个替换的左边可以是一个正则表达式,右边为替换字符串 -2. 适配新版TF,脚本主界面右上角可以直接进入Surge - -#### 2018.06.17 -1. 直接导出到Surge的时间设置为10s,10s后会关闭开启的内置服务器防止耗电过多问题 - -#### 2018.06.16 -1. 为保证小组件快捷生成成功率,取消生成后回到JSBox自动退出功能,添加按钮手动操作 -2. 小组件支持显示规则替换仓库信息(仅支持Github托管master分支的配置) -3. 修复rename和replacement注释因边界无法识别问题 - -#### 2018.06.15 -1. 支持重命名默认策略组,需要在进阶设置中代理分组中添加注释:// rename: o1 = n1, o2 = n2 -2. 支持替换lhie1的所有规则,可以配合分组代理加载其他规则,用法在进阶设置中代理规则添加注释:// replacement: https://xxxx - -#### 2018.06.14 -1. 支持Surge2(未测试,因为我没有Surge2) -2. 修复Surge2的跳转问题 - -#### 2018.06.13 -1. 更新脚本简介 - -#### 2018.06.12 -1. 更新方式改为静默更新,有新版本将不会再弹出提示更新而在后台静默更新,更新后可不重启脚本生成规则,修复因更新脚本造成打断操作而产生心里阴影面积过大的问题 -2. 修复ProxyHeader占位符丢失问题 -3. 去除重复后缀 -4. 先进行占位符替换,避免影响General的内容,占位符命名请不要与Proxy Group里面的内容相同 - -#### 2018.06.11 -1. 调整界面 -2. 去除UPD设置选项,增加节点后缀设置,可用于UDP、TFO和插件设置 -3. 修复undefined问题 - -#### 2018.06.10 -1. 生成配置时检查特殊代理设置服务器是否存在,不存在则忽略避免报错 -2. 删除**批量Auto**选项 -3. 增加**策略组别**选项,用于生成用于进阶设置的占位符,和ProxyHeader类似 -4. 修复无法删除策略组占位符问题 -5. 增加特殊代理可选择策略组功能 -6. 修复特殊代理direct无效问题 - -如担心数据丢失,可对脚本内data.js文件进行备份 - -#### 2018.06.07 -1. 修复脚本名称更改后升级和小组件异常问题 - -#### 2018.06.06 -1. 删除导入节点时对组别进行保存的功能,因为有列表更新,所以貌似也没什么用 -2. 默认给所有节点打开tfo,开关明天做 - -#### 2018.06.03 -1. 删除分组时可以选择按照关键字删除 -2. 修复单个组别无法进行关键字删除的问题 - -#### 2018.06.02 -1. 小组件/启动器在规则有更新时显示最新的commit message - -#### 2018.05.27 -1. 适配两种奇葩的机场托管节点识别(分别是在节点前面加空格和节点后面加逗号) -2. 修复部分ss节点无法识别问题 -3. 修复windows下Shadowsocks二维码无法识别问题 -4. 打开小组件或启动器时同时检查脚本和规则更新 - -#### 2018.05.26 -1. 修复obfs识别问题 -2. 调整更新等待时间 -3. 区分启动器和小组件样式,启动器加入关闭按钮(性能模式启动器有效) - -#### 2018.05.25 -1. 修正不添加节点不能导出规则问题 -2. 调整启动器启动样式,启动后点击上下两部分空白可退出脚本 - -#### 2018.05.22 -1. 调整Widget样式 - -#### 2018.05.15 -1. 增加一个特性:在Surge里面将配置文件(.conf)分享到脚本,脚本会将当前配置的自定义规则(通过Surge的Extension添加的)追加到进阶设置里。 - -> 1的识别的配置文件需要时脚本生成的且进阶设置的代理规则包括``# Custom``注释 - -#### 2018.05.13 -1. 调整导入节点表现,当列表中已有该组时,会更新已有组 -2. 导入节点增加“更新节点列表”选项,用于升级列表中所有组 - -> 上述1,2仅对1.6.19及以后导入的组别生效 - -#### 2018.05.12 -1. 调整Widget样式,去除启动器启动时的导航栏 -2. 去除输入法上方的提示栏 -3. 修复定义ProxyHeader失败问题 - -#### 2018.05.11 -1. 增加对http/https/socks5/socks5-tls代理类型的支持,统一理解为Surge链接 -2. 增强剪贴板导入,以行为单位支持批量ss链接、Surge链接和托管地址混合导入 - -#### 2018.05.10 -1. 修复Safari拓展节点消失问题 -2. 优化拉取速度,更新规则耗时更短 -3. 当节点列表只有一个分组时,节点倒序、批量Auto和删除节点将不会弹出菜单,直接操作当前唯一组 - -#### 2018.05.09 -1. 调整UI -2. 增加组别支持,每次导入的节点会被分为一组,可以根据组别进行倒序、Auto和删除操作 -3. 取消对``固定脚本``的支持,列表外上滑将不再减少高度 -4. 节点重命名选项可以对所在组别进行重命名 - -> 由于列表结构改变,原本节点列表的数据会丢失,请重新导入 - -#### 2018.05.08 -1. 增加Safari拓展,在页面添加规则 -2. 修复图标过大导致JSBox启动器无法载入问题 -3. 调整``全部Auto``,如果当前已经全选,则全部反选一次 -4. 调整``导入节点``,如果列表中已经存在,则不会重复显示 -5. 修复自动生成时选择取消Action Sheet时脚本不退出问题 - -#### 2018.05.07 -1. 增加小组件支持 -2. 修复批量导入时不能识别``\r``换行的问题 -3. 自动生成后回到JSBox自动退出脚本 -4. 特殊代理增加单独查看、清除按钮,支持选择Direct -5. 调整小组件按钮位置,规则无更新时下方小字不再显示 - -#### 2018.05.06 -1. .conf的所有配置项现在都可以在进阶配置中定义,大部分设置可以使用``-(减号)``对lhie1配置剔除 -2. 内部代码调整,异常请反馈 -3. 部分UI调整 -4. 增加特殊代理设置,左滑节点即可设置 -5. 文档修正,感谢**Mornwind**的PR - -#### 2018.05.05 -1. 增加去自定义规则删除(优先级低于添加),写法: - ![](https://github.com/Fndroid/jsbox_script/blob/master/imgs/Rules-lhie1_pre2.jpg?raw=true) -2. 修复进阶设置Gallery切换按钮不联动的问题 -3. 增加关于页面 - - 感谢**Mornwind、几位匿名赞赏者**的咖啡 - -#### 2018.05.04 -1. 检测文件名,不合法则采用Action Sheet分享 -2. 由于无法检测脚本是否在``固定脚本``中运行,所以增加了上下滑动列表高度变化,虽然很突兀,但是没办法 -3. 增加节点重命名和排序 -4. 进阶设置界面调整,DNS设置改为General,MITM默认为lhie1的,不开启则为空 -5. 修正Surge3跳转 -6. 增加URL Scheme支持,添加``auto=1``即可根据配置自动生成一次规则 - -#### 2018.05.03 -1. 增加直接导出到Surge功能,但有限制,进入Surge后不要等待过长时间确定安装 -2. 更改TestFlight选项名为UDP -3. 尝试突破Surge加载问题 -4. 修复托管direct多余问题 - - 感谢**Nicked、Mornwind**的咖啡 - -#### 2018.05.02 - -1. 增加批量导入ss节点(剪贴板) -2. 增加批量导入Surge节点(剪贴板) -3. 增加生成的过渡动画代替默认的loading -4. 修复TINYGIF的问题 -5. 增加配置Proxy Group,``ProxyHeader``为Auto节点名,``Proxy Header``为所有节点名,可更改Auto设置 -6. 删除导入的相册选择选项,如需此操作请更新JSBox - - 感谢**Wangsc1 M**的咖啡 - -#### 2018.05.01 - -1. 跳转到主应用运行 -2. 调整界面(节点操作栏不再跟随滚动,开关说明) -3. 解除底部按钮固定,适配iPhoneX屏幕 - -> 无法运行无解,我无法复现... - -#### 2018.04.30 A - -1. 每次退出脚本先保存环境,下次进入可以直接使用 -2. 修改图标 -3. 支持导入Surge节点 -4. 修复``墙洞``托管无法识别问题 - -> 仅测试了cordcloud和rixCloud的托管导入,其他如果不能导入的,要不把托管借我测试再改密,要不等别人借我测试 - -> 脚本无法启动问题已经提交JSBox作者调试 - -#### 2018.04.30 - -1. 修复TF无效(节点无udp-relay=true)的问题 -2. 修复升级日志遮挡问题 -3. 由于``$addin.save``无回调,增加2s防止极端情况更新失败 -4. 调整界面,去掉Auto显示框,改为列表显示形式 -5. 增加``MITM``、``DNS``和``Rule Custom``设置 -6. 修正配置可能丢失的问题 -7. 修复输入框遮挡问题 -8. 修正配置文件与wf部分区别 -9. 增加MITM开关 - -> iOS 10.3.3如果能进入脚本,请TG和我说一下 - -#### 2018.04.29 - -1. 不选Auto时,Auto则为DIRECT,生成后请手动选择Proxy -2. 保存的``托管``或``ss://``改为以名称显示(可能不能很好兼容上版本) -3. 增加倒序和全部添加到Auto功能 -3. 调整界面大小 -4. 修正无法识别托管文件名的问题 diff --git a/JSBox/Rules-lhie1/version.fndroid b/JSBox/Rules-lhie1/version.fndroid deleted file mode 100644 index 770d2d0..0000000 --- a/JSBox/Rules-lhie1/version.fndroid +++ /dev/null @@ -1 +0,0 @@ -1.9.90 \ No newline at end of file diff --git a/README.md b/README.md index f18867d..9e372c6 100644 --- a/README.md +++ b/README.md @@ -61,18 +61,18 @@ Quantumult | [@Jacky Y](https://t.me/WatanabeMayu) | [Quantumult](https://t.me/q --- -### JSBox +### Subscription Converter ```` -Surge:https://xteko.com/redir?name=Rules-lhie1&url=https://raw.githubusercontent.com/lhie1/Rules/master/JSBox/Rules-lhie1.box +https://sub.dleris.best ```` --- -### Remote Files +### Shadowrocket (Remote Files) ```` -Shadowrocket:https://raw.githubusercontent.com/lhie1/Rules/master/Shadowrocket/Complete.conf +https://raw.githubusercontent.com/lhie1/Rules/master/Shadowrocket/Complete.conf ```` ---