From 5e4df34706c32fe69ade4f36f9353bdb693254ab Mon Sep 17 00:00:00 2001 From: catfoolyou Date: Wed, 5 Feb 2025 14:30:54 -0500 Subject: [PATCH] teavm source added --- build.gradle | 28 +- lwjgl-rundir/eaglercraft.jar | Bin 3757595 -> 3758668 bytes .../java/net/lax1dude/eaglercraft/Client.java | 391 ++ .../adapter/DetectAnisotropicGlitch.java | 189 + .../adapter/EaglerAdapterImpl2.java | 4222 +++++++++++++++++ .../eaglercraft/adapter/SimpleStorage.java | 190 + .../eaglercraft/adapter/Tessellator.java | 386 ++ .../adapter/teavm/BufferConverter.java | 59 + .../adapter/teavm/EaglercraftLANClient.java | 63 + .../adapter/teavm/EaglercraftLANServer.java | 57 + .../adapter/teavm/EaglercraftVoiceClient.java | 63 + .../adapter/teavm/MessageChannel.java | 36 + .../adapter/teavm/SelfDefence.java | 103 + .../eaglercraft/adapter/teavm/TeaVMUtils.java | 95 + .../adapter/teavm/WebGL2RenderingContext.java | 46 + .../eaglercraft/adapter/teavm/WebGLQuery.java | 6 + .../adapter/teavm/WebGLVertexArray.java | 6 + .../generators/TeaVMUtilsUnwrapGenerator.java | 158 + .../adapter/vfs/BooleanResult.java | 18 + .../lax1dude/eaglercraft/adapter/vfs/SYS.java | 19 + .../eaglercraft/adapter/vfs/VFSIterator.java | 17 + .../eaglercraft/adapter/vfs/VFile.java | 227 + .../adapter/vfs/VIteratorFile.java | 290 ++ .../adapter/vfs/VirtualFilesystem.java | 690 +++ 24 files changed, 7358 insertions(+), 1 deletion(-) create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/Client.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/DetectAnisotropicGlitch.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/EaglerAdapterImpl2.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/SimpleStorage.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/Tessellator.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/BufferConverter.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/EaglercraftLANClient.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/EaglercraftLANServer.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/EaglercraftVoiceClient.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/MessageChannel.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/SelfDefence.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/TeaVMUtils.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/WebGL2RenderingContext.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/WebGLQuery.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/WebGLVertexArray.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/generators/TeaVMUtilsUnwrapGenerator.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/BooleanResult.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/SYS.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VFSIterator.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VFile.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VIteratorFile.java create mode 100644 src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VirtualFilesystem.java diff --git a/build.gradle b/build.gradle index a4436e1..12c6f8d 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,8 @@ +import org.teavm.gradle.api.OptimizationLevel + plugins { id "java" + id "org.teavm" version "0.10.2" } sourceSets { @@ -22,10 +25,33 @@ tasks.withType(JavaCompile) { dependencies { implementation fileTree(dir: './lwjgl-rundir/', include: '*.jar') + + teavm(teavm.libs.jso) + teavm(teavm.libs.jsoApis) + compileOnly "org.teavm:teavm-core:0.10.2" // workaround for a few hacks } +def folder = "javascript" +def name = "classes.js" + +teavm.js { + obfuscated = true + sourceMap = true + targetFileName = "../" + name + optimization = OptimizationLevel.AGGRESSIVE + outOfProcess = false + fastGlobalAnalysis = false + processMemory = 512 + entryPointName = "main" + mainClass = "net.lax1dude.eaglercraft.Client" + outputDir = file(folder) + properties = [ "java.util.TimeZone.autodetect": "true" ] + debugInformation = false +} +/* tasks.register('copyDebugJar', Copy) { project.delete("lwjgl-rundir/eaglercraft.jar") from layout.buildDirectory.file("eaglercraft.jar") into ("lwjgl-rundir/") -} \ No newline at end of file +} +*/ \ No newline at end of file diff --git a/lwjgl-rundir/eaglercraft.jar b/lwjgl-rundir/eaglercraft.jar index 0396202909abab3f0f9849b3eb5e30eea19ee281..cc119a5dd0461f8aa5263a4b484152cc1bbae11c 100644 GIT binary patch delta 431084 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

U%)#lC-rkVnOyFJy(_mPf5bXWsO?oSbHU z+nY_knvYZ&Q$@D^L(57~z3)bjW;*ZxFr)1%oDs1tX8(@WeV$JRJKeWO&Idx_TDb@WWs!c5}j~gWVr;D>s`~owvyP z^VnFL^Pczvp)twxn(RAadP<3`?zSB;C4Vmkp z!ugN=EWV2mMa8#{(DhuBI?pec`&ZCnT=^IP^V{_`{TWl|9=aV?*y(*}xx`28+d0%_ zT%SL-@_^cP%EQ_R3tvGSqDEWw>bqd`yUW0w4D;wJ?8XY z!C^$ZsV(@%H??I@?{(GfSRR$fbc>&>>v8brOzUwx08?DzsHEx$f5hE`04!>MhZ!k1 zb8u+J?LmI&427`&W;`dryZd^k`buJWw8NnfBZuoDtyiY8B2CoLuSJ`iE+i7XOU$-g zQ{iQWuGOA^E-Vy2tFaZP!@~X3(<5td=6YFZd@+1PEiquxJwU?Fv)Iso`1f@XU#zbw zMX`dbd(3u~^RMyZNE3GPX)zZDonx6>_E4kiClocB4$v!%rA1+HBfBxCgwG%w~Ch9`xHIMo;E4ritdsuseNcWu5zl7bH=TPiBnLN$oo)$+CF`?I9zJ71Z-QD6UQWqKF+<*k z2{fMLzV4v8VM%kD4lnWZb$pfZO+(hy+On9^YRn9pK>zzdZE-^hJBWP2zI?RbF`%Pi z2E+_hzT#!IK9(7*J5(b+*TMQ| f_o3ejp_P|P2@ftACf@=ZQzP@lIXWMDSIa|bJ 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 z zi9|gYp^(88p)P<(I~x5tpNJz0do;NqQZ0|MpptqufPdFUbHOcJTd|vhn@v;L{lb@m?S?vHS4Da zN2V&JE+AYFZ%o0Iyuy?RUCEA&qKv=1e#X|t_*B4EMhBSxMin(a!W-pP6 z>zK|SO`|HkJ?H3&?MXwwL+KPb9vdAy@OME_wyTMDrydr_qGxb+1wU2EF`+V$qRvx< zaHz2_U%NcB3BLoe0jG<%vj=>t{|ulz6a=R$`x!Q6)Dt?!awyHLhDSy~9ocRuQ3hFd zXBK@C=Jtz>Ce??H zoswnVp*AC*BU8-u^){Qa{q>PRmB3zOz}8D~;tzS_PwHKyZ>I*iPA%d@{Gn+(Hjwfu z;aWEiw!e1Zlex%hQB1%&iY(y* z5g#kOkuh}r{w9Po|mac_o%Zk}jSW2U1bDm8FZVF|=DfH2n&pF=Z> zO=CR^a}+?JdW89giO(;~E_57QMm!?!<<|<;em-|HIKc#m` zd}1jSVacAS6m}@XOA-;&&~X3P+PGyY_z{%>=Uv>hnldb;nd2W%KnmzXf!>e#Fl zvouYtnAy3Oy=cmAwKDo#iJ$26Ehd*<`IzNgIU}Eqr7Uy4sidX_Y3W#s7tt`c;EG#~ zJ?B@tI?iEgI<&ylwjZ4NGdAEvYru?`6xID2u1$K7TC@ePRtlahCYR--us+1GgPq~j zl?7s3(TTv6G(LfaSE^kw7PLp+qDAg_*W5B)$0l>ZzalRzVQ<^-ACaJ=$Rtzi7J8FJ z?@Sbw3pS;7;-w<49K*W^#Dh8nvd2Wylv5H)GdL$S1C|$oy7-shM#Wvde*C2Vthk(0 z4YqR&Zk9^nk_854&=NYvDML~ks8g?&(bCGkPeaPUnnB>;2Yc32h6eV8UKh-Gi9 z|Fq)zKJ^C>?|~GzC4SEwOuA$9g3Q$@pb?LPOoV{s-o~z+P3~=(2_ae7UF==lqumUN z0syK`(2_jaxf6dj2J+shgY9xa`0XV~tIHOvlRuV{f((*9Ti7QZPHahBijgI6*4bFV znFV8Yr@tSJOhDn_%u%BrvaDyB%!G+ylq65#Fi8wa1{5Cb>MujAEb4obd;N`iYS<}3 zUcdH{W_A?}Amy$nkVI7_A6Jm6X_vB}>=p5qn!52GID@3cUO;np*lD#JSlvHv2-P++ z=r(#JvmKK43_+T>vK?uQYgE`fTx*I>@Rbw+(OJ2t8=0_;MQ>#-F2i8B!aA}_C0O$_l8C37{H~r7b6Do3g39UDGZ8#M z^+{2h{ydO9i?aR4-2QZ#Rj7h8!xhn$4!@W*c&BA*`O#H{N~Xs6$`jo2dCxD+t$cM{ zcTXNQT#XswFp6LWC&$z$TK|OGkkc?{#{^g$P(^nIalJwdFQ+C@_U`H+kx+bUg5GoI zhy&3{D$XpgEl?J=65OHpmG_y^_px8Dek^BMIjGXE?q-#((R#~`K8CQ1OkKz*_X0-r zv_Uu)xuPG3$mp(2uW`DBbsuMNfUd=3*ri({p#S zzkpL9h74E0t5s;ygrzA`h&+qELJW;_=~S;^>}2DWv?pnK8+p1^S9tvuD#xYrOT6F09f>Ejw^0gr*<}D zVUmbtNCl1BT757+5rqtn3S}EDZoxGtxVeOdAHO1L zss5{l&e6vvEyl|weD2$k5p~VPgs46X7i>_K{n9#o;-rRVrh$EarY2NJ(?<^2jm0JG za=nizu3EaRsIyi=Me(^Laen6`UI}0O{h%$Lb~|)FO>?Stb^EjtR$k?SzAQG|YUCI~ zZ+S_=uoxu*3+0OKp`hF@`Kd@Y3iysWb3l@6k@&MhbO95L7DYxFS`mJsY2-v<-TbBVx<+eq77?iB{1oD|exe}dbcKGD|Q#p4Mxcp`~b`G6~9g#o_lwd_W zLU9{fT zYh(xP2zyuOuQejmkXVzNGc}f5fthmF#Q6}r3i}!MtI>jnc6%4t!Awo)?vUFX%Br6; zuJC4)dA{|U^v55LWxT&7?mQ)}sC-CL*L%WQ?zdc+UZ5Ypw1gJdt1ApK(Ax7R!#)zcnI#Sy7*y4WBWGb|JJs+Zt-V!a7xJt6X z4~8#C_*N|c!}a)DZEFf@Jq;~0Re1V&&@`7U9=)Cw0+^_D%Ief%dj5EErnq|L!QK2mX1_^ zFu`+7$PcXhzMd{O%FleWt~PCFf7x&=;hB}bO`1_CvO`EE#Llpw$P68;4Sx?*dr z`mT+gTX`77aQ)^kq6#;S&BiDimu< zxr@Hj+f8>eKde#4fouueT>P47y|EV=P^RQdwbRg}fltk^%)) zx$KgWT#4_vR6~&DA2`y{?hyMXp7(4o ztsQ6bd2c*CxKVQLN2x!HeWzLjBz+gm*DB(p==BwG6+9|8bJPIs<)IIpR1aL3dsaRcIuOuiwWc z1y!>24ci!INz8~U_tV(S4fxGZcSfzWG@1tUWy5G8>Uk#r#sBI?3`J!2N5)?JEuKf}gAHd@`@L+QLQZ;T)**Ni<-) zQQiXkJk*wk%(_r;Sf;Iy+Wu{?u=Yi^V-U=y@}oQ~BPug|wJ{|C#P)UgzM` zVIi+xY~;K@We8z~zTaGT;Vmn1O(L#)LsOPUjy-TOE&$|(NV0(Vfr!-RqtXFpd_y~) zUMF;UvDQ6|Y)T%zb6}EyD#ZHcAEDP@rO0Xsr3Fh(ACFnevkcK?l~7RW_Y1-#lFMhD z8rD%)3%Rr^Q_+VZgZPb_pVzry&&%dU2`N7jwV6+ai9^nA>`SpfoB`)`@y=WfpqC6d zf#d|Q?n3dv{5vD}$bnvb?P5%>&us)U214{CkxS6OD9;#?OD13Q)CD{1o<_r9`foKL zU!Ca*Jh<$lEW;|4FKQmE=8 zsmu}RP*#PL#wGnen#q<$pO_Y3iudzNI$8xweUYA_fWN3Flk%4iaEJg&Yw9+8$;HBQ ze`D%_N2mJ>)OAHa)?(xNo3CfaKjCdiv^iHCeTkE_wbz}fu}gK4tsuVyDq-Y(z~}%* zx^JUDNk(670BmM3m%(IL05dGQ#Kl>vCXU1Nb9k#R#UY_6k`YA-pV_WXjtVDse{)k8 zK?Q~ez~qWhOHeT@!^B+LaHA(q1E?P{>Ac!a=qqv@{j{bg2!RBcS`T zQ-&7g9rScuFCO&!A3?Bxs5H#aQCDiErhefn5gQh9ijVo|mtD(ti+q*N5T-@X5!a4m zm~;qYY?E3Y`BP2e3NKJrx0Alq z;P?++3Y4TxmhiT4qbUMrG!JqtGQhJ|_Q5^qsp-q=6p+_Lbyud9^%|DI;azbcC%;pq zz0kok#doLhj?MUK*GCr>NZd332k+T1hLNI9tK6(b{z;d8PuO3@#~En9|9NKmIQ@&4 zy;kH|KiWq+k?@+)XSvS5(f872Sy66DNj#cC@cb`JIclI??S9zOo!tKt?rcg8n_|dnoTv z1X6lUP(I&pX zKV|r3=4No|H|=h~xUp1mXYoM%>*11V7k!i!Y>whSk#9w-@Yl6?M{@ z#UM8_H>eM7pb%8ij zNq#M?E^HjqcHBhYRL=GhGm00?SZ2H7qFMVLue|%}-?i~IRyk9$`RWVylnWwldwYme zuy4oz0h~Z%zn=hlxC6BNPH09{Z*PTN_?CMQKC}15U~fm%Uq$GzhB`(_cYK#yLb}nAL3MC`t2i}92|vE zO`Q00I8w|)aE&o|ECx>_gTAl=XU9t|@G8E)N$+pBz~Axx{S`&K@ntu>x(7aJfsc_3 zKaasbG3Q&#c{TSt{QX$$fgf7nr?%8z+fsk0gxw6sE+@u>^M4^)SsH<&VtFj1m1V_P zp8ZjvKYAAJWrc_b>)*l##MmKw+3*#6*vMUM)J`^PFB?Z$6I$5Boown}Hj}<)wX)LX zSgQid&2M3qMR{ydD_fkC@j;9&&*{x#Y^92^qjJ*M(>E6}wmK*MA^k4%SWS$1bEFYt z^*P@2(3c`fWh1av6@+RH8{bgyV(Tk-vBdcUTH?byq%*QARB*~4zE9M;Nio{m4a z&xo|w7@HJTyME~m@rBzrL4+6LY2w|BNd=3e&xiUMN~`v9{Gj8^s`Li>b}{H%q2 zZWsG%D`eu^@!L?6wz6;X*mp7Z!&I}Vz{QVfY_7mjFPjP~L27TajR779G1o#To&%aQ4e2t3WTL{9xQNjKQC&AAs z#{P?9>ld6bzoMx64TaF}s08<+;Mos{{hp(A{@0f(2nF0Hl$t1H_26M4I zmc|Mg{cV$U)}JXh6jR5uOjgFS*nF1F4re)R9eF`H@2O1XV+n^n^;eF z2kXu5W_^)G3fX-K;bAlh9%qBu*K7#e$A`uk63jf8pMbnC>+tUZfT{3F zOyzW%NvG3HIvtT2kjDqc_#g*C-lNcWRvsT3oNVNjK#Uhr%iWCHbZmYEVxXlGAJ@t! z#Q0>D$BVleYw^D|lT8Ae!@z3Ou zRz5Sv%VK;^Q7fNU*o80fWas3|`qMm!ly8#N)k?c`JEV2B&W!PeTO@1V_iHj`L!C>4pDq2=d0(Y%}|j9fO9>v0Sj@co%j&AIVPOv)GAz9y^I2&Q9h>uv7WbYztq*PUlf}20xaa z$xmhheg>lpozLeNu?zT>?0-UjExU-{%r54w>=OPoyNtii{=(m3SMYzbt^7Z18~>SI zDJ*uC=*O-W6WDe!on0g5vmK&}T`LY_*NLU<22sau6hYQ3qU-{347*jF#BLL(vfITO z>`rkmyIWk$c8V+5F7a2^B5q-=Vi((^wZj#Vg+}95*1yDgV4xOjuz$YBH1) zOBMu~%lZ~|f@B}TcDo$!5--Q2@p9~V=C;f6*W=}c6)z|1;^p|I@TpynqLe1Z!E{PjyVL>J_w?kknC5+egT6H|NqK_epBpMcpu*eyU64JGU0(;jYyL% z{6YJfnQAgh{1@Xj9e*^*pO9Of=@~s)+H0F6_0lHXaVk#7|7R3Y8@+H6Q!~BsDMYW{ zI7uB4y7B=tO;5!buWPf>k3nk&*!?&P4?re+5c;!+U?}R*(d-eJ$o>Y?*rPbh9)l(9 zahzRGz)|c;@Uf>L%$|l#>=`(LJqugdb8t3$9xh@pz?JMpxPOMd1lO^bVJ~|H9%iq? z6YMp3j=c`Avp3)^_9nc`-hzLyw>1|P*#vh+vp+oOjOH~k%lgdv4u|JDm|=a6Zvrv? zKH-*4Cr<&NSxA{_MZ5Xhdw7t;^0toA-_Zv49(L;eBo8ku?%`QKSpUIa8ucRj6WW-z zW>}0z7Yr9-cz-KD2LC^iJ;YDZAFX^#l{Mml`WQcRsvI%Z81cYFQ%tn-t$g!Z7*t^7 zTO%jB3S_=3+qDUQx*wAR`%gHjm7l+Si-nT#?E=}#FIrw8?@E}JBhj$|oE8TA7<#i$ zU@-d>$^IFPU|+x_G`eQ6ub>*=SFmqj75i5A;7G)B27kJeKjIW{!Dtw2{e*88VV-cO z)>uDV|J6~2qtHbA1!>S5W?P@}Q;~dwVHy(hS0wmQm}32gX$E@U6Rh76ifxz`0^g5- zU1VTc`z(H}#ZR&LS@?_ADjKsxD9A)n3Np6nt_+8QKO%I>`pyX;R3arWi}5R$$M|0t z3_}Xuuzw96jq#gy@;h#Xy*v5td-xs(RU_`Gk+)=+8l+o&;u#)AGAY%glzT`s;vLQ zAe1vB+3z@_`(YNc<801gK9{hRo8aLtIE}mEOr8$s@GQ8H=fLGW4|ec;xQ%y%S9t-v z!F#~lybrv~`@sjiKYYOlz`yyx1UGn~$ok18kOyYL71rnYCSf*QW}$?`v7HYWSiid@ zj(^f^Fw!YE5{>iEFpZq>?;Ngi!I#$C6xV_-=%jz*5{?Kh1alu&gcTNl)Z+K;gI@T; z@a<6d&rpiImEZ;g(p(n5-I<#AIa3pDv=>|XEAxx;`0K6w&8?8OlmERLmf`n%@$WmD zp&Y;e5&!# zNG>4a`65+zE8mwS^oj^wJ`wfoByjV|kj1A!7d{mx@M1WePlL^TI$XhLz;=G9rbw;b zy@dF<#+8P`fax?l8bfJr^6T_lx~+ZjP2roN-!e#i;QKb~C)C##LcGlS5#L;BA6)3l z+hLDU6hgu$di8?cm486pq(okxB&!VvEk=I_$r+JZ*bp^)IaW3v2RA)h zMcS|@AfKWbPf%Py#|R@6IRwu+)61TnIiB7Y2GOq(=V zjB^Qi6|&(X$mC0*fG>xEdN5C|GG?enyC<#0$3B0h9*TT`f9@cO_Y~X9*SiTNU z<^ed1H^BKk2p947a2bzi%8bX}Z-DOF{pN5iO#H6a7qBu{?pva*p9(J#o z31GkX8gZ{E(;voP)R&v44j|MXQ+K46-sN z4x@*TLWyNDK_j_i8x+LEkA&p-EIs9UrR~KRrFN5y<3h2o%hhBUe4B%J6V7?tj@M~ZkzE8sU8Tekp|B6F? z9hCFylNfxC-EZB;9)Dmhv9QhA^s@|qen%qUgOoXQ?Y2>!T@n*_>3ATYN2MPpF+dVx_f|-E z1j3$}pk9vL27ft-@qh%t`^kRB)@iw9H{04O9M`)cFt=KJ|l&f3BljvJx?lNB&@eF#`BN3}7cZuhS z_D^DZ=`Qi2y{xkv=Ij!$*sD8Oht_g-gGF7UWu%yRJ%1+NYU7FTU>foS7T_&Ff8r&N z--7~bFBJ0oaIQWGqxnN9sQ!i~%cC%lKL&^K$6*D30*>TQLJfZg>iBaI<bY|9_4d{0FA^kL(cs6B~&>>jeG_o5p`-C43*7%lESdg0mIEV5L}#+gZ!ksXbniB-AU*w8 zSdfYGsSCT!nW2jv{np!7Q91O`3db^R7DtAC=eERPXuT);CQZcNNfXfko?lK9AU`1i zo^=*>ip71dUE+OY#p7DVN4C&AT2IAK6LatjC%L_7)WQx>zGS1U$$^1z2tJ3PsGEpS z8-J@AsJwyx;)XZ`GQ@B!ITUilXcUiQpobU>1H~k)H6DhDVi+c-!8lQZwP(O2Q3_K< zSyFF`lX{Z_<|2}BOX+6;{UGJK!UK+Sudrnd;LL@g`2U(#@zsLikHeM2?-AcJ*ajC5 z7x#$oIXonOs_MB7Mvd4l{@W^k+YXzlbbp@M-zphJ*RDjWQ;I+hEsYjf(+tbEu>C!U z-y_o)TnqDt_q<0c4F@6Q$*fkHvkk`EO(M8#UHe{%I-FKP>7!kZdu6`PX`50uz2<`w z3!nh|HBcOew5f)%VkyiJ%b`@PfWyQQutcna<-!9SMGc%Rd~m*~hnqwo!Jacvqkr3a zd?0K=OTC*OshblD@@B_CQ*bpZ$U_|knGN!HILzW9OZ>#A`~n3?*6ywXClvkzs(@US z>A6JK-Lm^u=}sbW)rbU5r^+0rqYyfdk(0h01t!HSNJyPdQtDvQ3>A|-NyhSYGLelO z*fG(hiutBD+wGlbQT=?=sP|5E*?)2L0)vcbL*&4dt+Ed}(WmE|r{~FjYirNTciHd# z*Vg9A0k!94w#tDWOAs(Li#z13IcQEQsANIgfyvA%X=0+vS0ijTVTX>$SMgDwno*Fk zTMp?WhlgTvq+C5Qy}-yeTjkgSqadSIPH2^rsj)NiUAp1?^og1InODNH?tf{zUVi2o z>+;jj2-S3v#p}Ar>G=Plp$jKxb<2v$5=3h4zc7y+0+wG8+C+Dqc!{-tkAE&{ZDQR02YuJmPq$6DL4GoCxd1NpQS48O{`^ zpiDazE)iScDsdV-Ab(DWH^mw7oj8+q5ofU;;%rtZ&S3+@`D~21kj)Smu_|#fTPiML ztHh;jo!G{r;wpBDxSDMj+u7~n8ul=zJt3}T&xz~UE8=?gk+_k4C2r#B;%44e+`FSRTQnu&@zqkfa4IHgs z(Tq71^+bR1jrBQ}lQ<$bSihm;ZQ!``$jmaqXCf@w!w)S)cOzcDQVFx9HEXkp(lu7M$ zYu`>+V06`@(@rhu(SreGw?2V=+$)b;u}7YOU4M(o6StBxCQl*9S)SIRP3guq(;-(X z=qodzzsyc*b3pqx`va%@(Hz5XwB7{=a8a*q=on$I*7wwon_Pc2oY-qCMDg{^$Dx59 zyXCn%<;6F`YAkZ3o$!|#_H)}rX}?@O(ZH7-z4K+hVW(W*Dx1mC(@CxJwyk8IvkTjo zxPME#f^wHO)8&p<+1l2_sW{aD4MHiqLYgdqF0v<#mc3!J>;omTFU*sLaFpy10XYy( zl!M@Oc?g^(i{L^zLQ`P|c5pIOIUYv|`uVn*HxH&+zd5nAixOtuMTt1vMb<}1LEFqr z10&7-E3D@xQm;?kY~~+hMjBG_yadtM7JvIy_ok=Zfkd@hGz z&bRFH|7evTZ$*(g-Rb*?CqUj!HMc=8r|-Mv=ZUwkSamZLQhvT`2Zb((4&Q9mL5u;r z<#(;}d*r@J)YGwTq_a0O^-D&h0R4;~lk2suVZ-ILbyQA(bU6v<;uM^V)1arE0fn*z z=g2G=AEyCfBn*GQuXwCN@uQWJ~06>?nBx^UIUiDe@F{ zt~@;v|NRUaoF%2};BJR2Z-bj0u55v8>;)oZx65q>!u&A6mFYSJ%k^h#(SHp={)7>1 z6}l^jXm9$wI3Kg~Y(Cc9I~}sp-D$r=5lZfN`uEw776&afG5SP-j?C_!$$o?3O!m#) zj|?s2nE?NVNxg>tfUF2->o80+ zOyA2NT~V~#pe5O3_82BD^?%SO6{Mtt#c;HnpVcmugJ{GIm$PjxW~9fA%w}*^4r?{? z?$*=#R=5LQB%48M(O(030c6XIpqsn|nd4FzBrk(e@-Hw^ZiQlb6*9+m6fxH!V_Xkj zc>{`>W{Aj}VUxTK#mybCMec-i`+sOQx-`Fj#s zdO07x5_B0F52N?&wTInUHKLW>JW-CI2s*|8jUp|NMNx+!GS06IiPA|v1^whRNQq}* zf_x4s@jT3tFD3-)D1Yc~eP(@%Og8~?9o8)dl@O?N69RQ^LZHsI7dCW{hk;Sy^jK(a zv-> zeib$4>p0+Vz#;Oj#Nc#;Y`w>UP#uyqI0`MV-_XpQ$$p`gaDTeE|9>IgB;PrByouB8 z$_azOHarGUpxr2>K>Kd!@wgLMHToy*IPKWYf1s-T5c&Ee?B-`E>^|?@Am|2+t|@ie z9O?8)qRDX^v|A#Q|4afRfLJ$Ua`j*f+<5= zjS+1a>&?pY8-E;>Z(*SPE@=n!pad5U(i(plyxQDdRMhrD$@wElVirTZK#&??tBe#u+z25VLOdOTaDSvhvgX+F@Iw|_H;Rwz%GwS#KhT-R$~#V zE7fXL+o?G=ezxsnENcs&f81)Uh#5!P2H{M*u_;LlYngG|w;AOrB^#ctw4y}N#ux21 zyogn;&K_)cy07L@!|MzQmfr^H2?N?$*|Y6v`>VT6rMl!*KVxmoXs{D9=&{=fZ#8oC zCbFwyMt@Vb*Bdi7#f)R|7fphA$_X)|JoNX??AygS`O>SQA!eL9qcxnnk)9yF^WX!lcW^C2SZhzH~@bd&4i>r1UJGMfm6%%)Db+`kq z8yH2~?Z(-i8RhF@TzBb}fV_Rfiaeuvk8$&Z*(2==Xi*nBheMj7D_S$TPLA6?05XbN z~Sc=;SH` zY=#qiXenrqU3ZUh{r^|km4H`KB;o3rsj7a2V3L=^kN^P;V8UexHwgj56$N2IA>aWl zm*Ro4y08jzh_|AMXaE(wf{H{#GKoY#@xpaoyhRpwT~GFM-Op9{6b#w!o_X_z=YR8C zKA7qLyQ^Mz&vbQFSM?C`Qz;_#JAF=SSiD6a#ar}|-vvz(*`}vqoFdeRLve~j@hY34 z&@S(k7I_#t>0Wo5y-kPJdy}Qn`Pw+-;!*qsAM%-u@PJQU{6bIk7Cc<7$(r!* zS{Af@=@tLW6ziFyUb$~v{C0Y6n|~L-k4HSpJYC#^KPV}3EJkVOUD`nNCdVs8@pu!q z8X2PLPniClZbS@;%|`5~l;ew?24XFCRLXJ5vz92eMyWKKn9@woJH)hnm!ck?ts1qt z?WkYLw2*4szVq_ACSMukvrRsw$aX2ew(XlRQA&{$20cnOyQoWT+kfIsFn`a-d2X{= z1#|Ul$YzOf3|@twYx>7RDatll|-aUWOKZ&fxOlUktBE9fj?y)8QXQR=TI3yzsr9udTBdHl-KX8Px_<{%^-!yUJ#?*! zuJC$!UCet|WX{gu<-yq)y52iNL#s5E;~k=LX^nR>&pRX-XgGE|cv)#U$J8huhjixz zlsIiL76nW}3ud4VvytF3WVi|?EXN3}#&&QErocvQ4_h$}9#Iy{lb8whm<@X|2VTdH z@D}F5hu9eoVgVe+u7B`f>;|paU39?HL_YQqgR!R=iA7>87K@44S4_ixViuku=HdWx zF%A}&;!v>yhl{m1LafJfaW9S(58`N1ig=yc(rvmUSn;+WmYXNw|3!mRs*iE4&X}b6TIH~3RhcS;~MKI-e9%j zI$Pk)b}HUtr{nE*C%nTx4ezvzalPFaH`v4Q9(ycqw5#zxdp_Q8Uy57oWw_P86Cbee z#clR>+-}$5qkpzqrR{g|ar+=XVSkNJIu<_dWaBQUH`Y0&Sno{0-OhQ~=*&Uaxfu62 zE3w7dh|fD)@I~ht-0SSaSDp9qHRog8=X{B;JO5GXBe>uB0pG?5zKhxT9`?cyaUdSR zGx1M24G-a5C6}+pPjD@MhP&`{wPt^Xd+{*t$G_o0{C~H~eS=5vJF@V5Li~v`u$4Lz zP)`!nj~p67NM}-n=1@CYK&f;arO^gTry9zjM<|naQWiZ++4MZ+(mu+g1C&o+Q5QN& z1&nkWx2HmmQZMdEr*l{8&Aq4(mr!3GNoVj_D&>hZkmu20UQEMyISuCrshl69kz7Zk z*rn0@GJjR_A7~7}M`QUAP2eL`#jSLfL^@lh(nOg>lVv_lkv(Xt>_g|tQkpJ@(+pWf z)p82Wl+`p#uAvL%O*BW|NpoYzn_xBM$&T+)_A2_>5p48;yPHIzJKIrhIIb$)cn+*ox7#xMGIPCfFm$H z+WtpKwbDA~RESpS4k9Iz(WdNQZFYihcE-$5mG`XCjI?&AnW@fZon~pv94spf0?Pa}A9RsU>uP&*nooEKz6G8)PPY~@&(lTk zf;YsX1>rY3LRsB=G}F4xN_(N3i(2Tm>f$Kfv4_?JG|@fAERi~x{__OumF5G{0*KH; zD4>g>kQRq*!XAN5*dr8U=YUn9<6-;AzJGoTCKyyTH|}&WRxIrbMZb%HnFvn93fWJk zER*Ul&(P+kJ<*=zv#s!LT-ET5Dwj4TxHL%V>*R)-D}!H zkt{<;c0-NyS;QMD({dj8g!)eW+m+a3wiVjkFGR83gq{uYVGM z8$f!BLrp@oC`UtE0kJL$Irx|8wO^>6+W+#_Udhg4!YRXeSbyY`na?&&gG5iaV2=a*+QXr%$8mgz1K(|Xe7Up z>f)6S8uQ*hwI*)V$LH2e{pAbp56ovMtF{EvcmQPZK*;66(3OWkZypMzJOYMt8I0$0 zn9L(#23NpEJPH=_XjsZ;!b+}$yLb%T&tu^c9uH4*6*ThMp(*7C@0IKC{C}mv<6cN9 zWWb|d=&8T4X0<}8K1+HWRzbQP9&AGO_Mg6GCu~9S)X=lCf@d{Cmid%bK4sK<&1baQk{4F+ zTrFQzTKd0Y@;?`_M={m`@MDa>(5mpp{qqJoJi;!s%fl|I4KbG###~Yqb4hVM{Y$_7 zo@2?SZ%c;BT&X=txiX9&(V=EKX1bn!%yLRxYAesu5mXODj^dCj8-Lg;aT%4tmZgS5 z8emXF6=g+ALVQ@3)rzrUhg-VuP1^_BDds%uXJ6tJW#QFxY6GVaa%x3JfM*&!+r!~l zfali0Fh8@GbM-+Om-AlNbvyfYPc={jcOB%Il*`@9obp;NWqclmHE>D5qtN5g6Srw5 zMLv^p26GJ7$HxX3jDHN)-^aQbOd4!}kEPV}AU`=e_|2iFKf`^zsGiGB(l2l3QL2sk z%5JRZarw=Bmdlg9VKRFXSx$Z@)sJ)YYG9;+xVnKaFcCg!k$G|7-)zrG>;rM!<+)kt z@`AX?`doixhF2<)wMvPq)k-|Cfo#4Jy7SFST-^c#`Bo_B+kapR-vQ_GdYH}|U=eSG z%Xkx9&NZ-%H^Ua*0(HC<>iHqq&)eZGeiT0D$Kf#VfbaN8IKewb3hxp*{EX8c>LF-YwQQnO%&ERf?A?d|}3Gx)U(tA9i(>{^CqTK&E65kR)pm;bIX zTO3f&z|^yPLZ_H($Ql!pwQC_;$CyNns;Q)s5KLd|0G8|+CSq7&rP57L^?j2d(FDLkGeHSet z71mJf@_!{!zPyE(R2MbzRW2{}kmW6WtwvS^$jTO8rI9rOvbKfSY2>B=xw(aJ)yVAu zaz_iV*T~%gvY~}HYGhM@+}FZ28rc#cTU+=+jcikhw{g*4-&EoD>BaE{u0((Hh`(1; z<_MgoETuu}bsEnxd6vI$2hjG`JW9Wq7LJUj4|1vS$PU}r+jsCobsgH=Ot-VU1EnSlC&uzrw7j_7rZ~l+6lh`layF1fUd#IVtFr1v(@qGgqqV-Yi1-H zAy|<(LgyzP-fB71Cm!N|^s7S)@2;-rMt}9UiJKGqG$+KRL%?O0JU>YjzDy)ukhBRG z$P1HWg@B+_0TcJs<#YudDS`tyK^lew8+ zOPI{cj+AnK$blU(HAhGJ_vXli{xTZAV7*#x>!^?Pc92dLO-NI#9g|O~NN1_@&42tx z6Yt+`HQ2lDchtZ4<8O@j&8%D{xjVv8*a~Iv0N8SY?t@$?7pePfI7MEphUyA)z0zEl zn(Ni(`df2dZm!pw>k4zd-dtCk>soVNXRbHNThuSyCGS@Mbbh1UWW<4x_sJT$1#@6aWAS2mp?AMOxI}$pHlk0Jp&^96$*Tk#j{_n%O%;7X|`lp>cQF%1}(5XcDzmp>yo z3%6-^9G(#ZlXJHTi5y`90+MsLY>ON_1`dsLMOuOQuaKJz000yjmq0!f8JEtH920+3 z#~J?*yRZv91y=CF0~1A9RFoJcYODx|SU@8LE4DGu-N*7|+1^`}+w^YJ`%K&PKGHKy(#HO0_Q7(j$FKZgX5P#<-+aga`{o;7dH4A9 z04@~g=O6B$Xa1WOnaq(tE{{|8(w64kfR|N zn!vP(VORE;5hGyfopxp13RJcl)(*p}(`{W~T&HP-gIlYss;d@l?GzA=UW^yWT(n@x zg2j?mzJ>z$1ad=qkI`;eaWfhb@HM5RXtgaf5?U^a3pEsBqJXDMk8j{4`E`HD`N1dNy+Z!>n<3CoDfwHX>_qC`LoBrMB_*cT-Xt5=}3 zNvagqcP>6hWT>UOD*dyD{6UADKJ4ov}0J?OwFW!((17ldLvrcpo+^HSN{WXxPx{%86-sb(FVD`YjsXj}P$ZQ0nN? zH00%Dr@Yuo2nUk}lDvO(4cidl*`Z-)7o}s?kweQFGEx~!WoMvL zHu#>c+Kom$7LCLW!kDrReywX=PcKX=D{qQgp~~&?Xrxk3CDR4fqx9~cs7;T>aG3{| zhB%1F32CSaL^77&3e@S98g-7MT%Lm+xZH!C8hUXBGsajFCa!<55eeB{DseT+4OdC8 zeNY;=F^ywHL1303`Nr&~W3h zm}*|%R_Db>C~q_pW&}vP-K^oGxP?yttRZO{SQ*+;YE$ zz1T+q^k8t5gboyacJgT7&k1=FUiN$&~t_kWfCJZLCP`J(r z8@4f+!O4_Pc0<*_vk@`rYr?yMC*F=A<9^JN8q`EfN*9~U+Gf@+1 z2XV-Q!y2B!kr5Zn;S3HgZ4M(NO?uLyun|-{5clqFwjT^h9 zm7de^X^HG{p>Tr{8B{w5FW^NFUefRxd{&@%tOm`4U&+`S_BoRgdm4I5^#VSx;bnY* zTX`b}4Xb}X65=wmbDE7Chf&Z-U&1RMd|AU+q+e&8o}AarHZu}*l#<$hO~cpm4Vh=c zoZX;XO!0KQ$p|2t8)Xvv7QXGls~Wz8@1{MVp{XVujs_H{iN=6s=(fQ-mp)(wtxj}y zN+3-d3jK%~tsGjQ0^i3EJour8AK}N$Cu2znn^=E>W}IBM<^BI&is68@jcKrzA&JY9tGsuHw)fO zJ?0!dp4euAFjyT>y|m~aSwl$mc2E$3bIyj=$1`e17LMvJ>7boE6On+bG#75=)$NO? zp>&sZNH4i#>cl)VzSa!V%1&`b6}V|_s@i{IF)fRUA*-#iqCF!tTwQi%q0`x5gd=>E zX5q+9%xRQF-a_(7rwm?Nc2;%p$T~rxQZQ&mSVl`Xqh;~`!-m+91w`@T&_W6g%$6%EGovc&WpF+XDKzl6pnCfL~B;LRY5nlGV~#MsPHF3BjGP4X>yWC>IJh zC7bm48ORy2jpS_AhV^*dhGMRZsVACTQ%X7}k7anmQGvnz=nfiZ{#F)kM zEQ1y3L{@Tqad9N%6N|l1zLePK$aj>QztdU2(dmDK->Uw1PM_=06*%jBHM7rSs`5Dypqv4Q}b3~gsG=_CVJ$UlrZyX~9GkF$kA(|iVkQ1eZvKCyHuwwP0MzKO zkX5%F{S7|lyY0#%F3$cPS2%X4WG|^Q{YTL7#E^(tYO+SL){+DcYk_}YpR>7x)RJ*= z#Y^z+Mv>%E@gltJ_QT`ugWDxpx`wf=S1czcw+%^KjDO-^Tz^v?lrd$M6zbo2%Q+`Z z7IH(`39O^do0=+o%{+f=`2f~e_*ywysYVxbR6T(9ii1OXOe8zdXndK|2XcZzOtwhzMB?_dINVtY1TIqjClqDsqP6?BvW<%W5 zHB6AKAwjYnL9&HgWIDXIaa~fCo`83=-`6~V4!^HewU-Rw(xV7ARrq}ubI7BH`7^0_ zl%W!1m|QmOyi$=x?|~~C{rHAb+#|fn^ThoO4-Z$5R16^0JkQrNfM|<<{s0ntF-Lap zhfy@&HGnJUyV-vn$A`ct;5aqYhfLqK{kYyg&-dX0+%(U3E8F9^4d}=1G~}XZahJe6 z-yZT@=5{T~oI)0fC0Rw8MOhEhb)=Z$F3KdQXK`N!HeH`7`cA%1Zu6V*vxR&aV0EVh3nYgMDg#y zF6`lp`$1fT1GpAX;Re1CZ&VgrOIrjnM`T0(v!)v}L=Hz;(mq38J0fz0rc&n9Vw@OH z8*6wB5s^n(bhPrZokyF#sj@`YN#-iI2VM`lJcxNHp5Rvl|4x#{$dwHBb?{wO@k@xe zFnu;%l`nq^9B91C1EiBf#k*0=40_-go<59zw#RWy+Wh)HES@%Y?OA7S@~HXaYThqh znDSOKkGn@$*H0vawsYfV=80RF4{l}Zy^Y!9cItZv)9szq{4QQ0cPlHFB*h%ESV;I3 z&gE!=LS-_Yxuz8tQo}+OW)h4o$X1YjPI`Vf_OgGQvl|E5&3YLJ6b|-do&Ok4^h+o_ ze*~YClLPo-!MN87$}$Sd#W8$Uja|dWqM#ImV?)%AZfF;6F6cR{N2$~rb zB9#wk4m+3^Xd%2}^3a*n6$xGK;!S@@0|JtBw>+X8Tm=G? zbGMqO9K;0zk#o0TtsMLU0+MsLUa%ak0S=RMMOssHu1s?a008+Fm!T&R7?(*VI2C`5 zR|$9()fN74-kLCk^sz=3N7fJ^fk4q4Rbop}i_$&>OWZ|2TD>pkZ`=id9|nUjwK zSSMly$U`WGu!0Dp0@H27EAKXKBk6x??Ou7xO_py=n~h1=Fl>S7rKW9qmkESQ7B&|k zj{F!36pVu+aLHK7M$a|vjwV;LQRiuij31nw{j=ypn|t|5vCgABC6@Ly>~l zAd%Ay9jq}^Nyp}-XXpas+fBpLTh^>zx~8&)ZqLkNW_VRqaZD1Jqz`K-b7_CpGP_N$ z08=nEhG`0lagjjLKCM?Pw=}yWoTexJE?h6gd-UXFC{QPm+aUn8FN*^B~qE<4aMjxqhCg8j)J+EM}pzHj=R}NrL+!) zIWbmE0s=FnNQr`lQe>PjQe%I3nrS772%orE!IE?O0%Ao1p@6zn!7@pmm_==J``349 zrY-5q6|6udL)2v^yXwf{Gzy44ajaq-vZHNWmo{A^wLa~2%7Cv?uohLs8s{}DH7cxI z+xAh2VU;GasZeEN)S- z72BAd>?|@&-5O1-$$^F(Ysvu->DCSfjcB5yeWosPDe4Q*j9oEYtzb9y2+TUae*za- zTxsA83o28Q&aOb+yc~bd)h`?!Md`>j3SKMYot2-;7CnZRSL-ty{Jcm}O+lMnL$uQ{ zJ375MSk?s{X|v38HXC-j0N0{jwk+1*w37Pz`W)5MEE8!e*eB5x(sVtaLY9JVsW;Em zr5Q&-53b{9cQSXI*gW*bq^01+kXF!(zMKmf<|U{I@E%L+&+31jYRP%KknE?0=vQ#P z1l?ra)%t3Tb}emr8?8Zhh?~dQ?>qhy{`3m5^+k0wJn|M+^kXI{_y3G15(pF6}$^~ z3dB3C#-wH$?F2+gU0vP6<~Z(R8<9POt2fzCO~+Pu1g(T|I<<4Blz*>+d!!rVsNLxa zl*e&Mpt7mcOsOfu?KNC=r~|2*+M}7eI-EyUOC}k2PxXHsb)RF})O)HXANS$|F?>+L zhwx#6xnpBpYp1)bJGG$#^5YiXxMTfp#v?~+#TPFn5Lg1ksArkyraS#I=Gtvv@awU3*ulV%>{ zI4ZEhH8d+%c8MX12TpZ5PRchf^{I{>$1zH3w(5UaES{ltdCZrpJH$+i9nbPT8j@*u zT(zAwE!)ot1t;+^0n8QgSm6-qQ%bUXWqoFzyUrtcG=|3%JdQ80vd6Lz3Y}VNi?QGH z&tH3_#FrF&8DAm1Y=3%E$--PaUo*a{;A^t&jjP+brKx38ZT-egP4eXTq=IkYn{2JJ zkqm#I^4L&WVgkF)-?A|NUo zm$>Pc3SMoa2sTGQd_!vtre5`cn~|U)Mo+W_c2^Q6xd0frxtxr30pkk7qR~maNu$n` zS(r2`)@4!&x4I3E<8gb?dNv!ZHa#^VioX}&ANXes|B_AT-)xfSKw#RvPM491YH)uP zu44!sw_o6%?B0}N43uutY~3)4b@HC_ULvcDk}Sy zR%$}+>ok*{L4UCw*0oa4n7h@MmP&sash9}y5OzUpv_ma$eSxmiSTxRe0{yj~$ZQFKT*|u#?)|G9$uIvd{HF>h_nwsn;H+lYj zKfed}{dD8pYwNYowT@%2_tA7|&%dMRP2gSrs5fAH{wZu=JY2Si%9Hx|MA<@ap+D9*IftQ6VqfsW)?6q zsl@z?Re2mHBW%+PnRy)SXIF&y25R-NWOsmj)R>XJVvYi7u>^TQ)GRXH-Zz53W9A3@ z6fkB273MI)+2c|(0A!XUU;Sa@smM6~6AM>oQ#@yy(R#Z6OQZ$w>fL73lqZs2)Th!) zGFE-}d&t}4=TcI4tXmmT^OFIv&ljM|{wUHaXa3=o9zpDgDxQQflE&LV8;dD;o^Q8x z-Q~w*N6+6hDpYq>t{2Jv1X-8S-vk#?bgWce&8q)4;U+_QWpqUly*vFXDuYQ46|}1` zMzyWXc!2w?Xex1vZs_)v`zw(q(ZJ)7Jc>2vN0jR1e7TCLGyU&}xF=mQT9_ta&i6|x z>=!aGlHqNLDWTDynh9i)D{`%{YV^}W@ebZmRQ%@Hrvk9`=n5in=Gx~alBvz3rukwv zBwolrNxTloGLJJ8^`u@6;?kR%u{)j*S)EU%s9)$}zJ1Y;x%uFX*CMJnGhH=@sPPFj z995X|I|NG5oTdq3359(&&YsEJcg2tlqJcL2^lrMMB3x!bH%=AAQ8yHsQlHQDL4=3gd-*1dHox!Vuy=WT#kajXNwv*PU7`(x)^b0zl`fF@ z7iuXiq<4xz=QQRoGQK|=@Jci>Nhmt$&Np>@2yTYoZ*Nf|KV~+bObJ=`UQ#XHj8`OU z8gm&F6-hxfTPdd9S}iet&LCTffXI%6%uNgOgdigyNkNK6T&D3a{G(Z~^3IRosd4xK z;~g@FgOj+>s0Dh5QgJ|u#QftoK0S)!54b{GBYYCRSIg6T{JX?m;Q4W|H*FX7+QPt( zNVeY0Vh6J#Cn;#IOfkYX${68re?%mY;)3=E&rh)FjyA54yqw6Lrt zGE+wxfyC;22tFk!cJr~uZo;gG-WGj7NZ&)9V=AxxZkU|0Sg#A;5S%CSf(h@ecQdMRvYh}ZP?!uf$w|()P|v}^~=(Of^bn+7KTC#deH>YRQV-TY+DJ)jA6~>Zl zt_gFW1FO1H|V!z7gF@Mgxh~NMXb-WI&a6o_hUVBidSEVvOkT{B~SmqnSIKq z8ltgBnK%B)MMi|qLf1hfY2WH0I{1q6KgmTe)_VNy%a<<+5LvrE7Bp!<|h6qksc{-YvyEfZP%msyal6J7tGu=AUVjOXNku;(m@0w(;dpO;ur?E?Em zQ2%Wvc0|+&@n3j14le2`pW%&v$=Wr<$IC)h;e*K{Iw30ij~Fe@v>loP`Q?iq%>MzX zU9Cyr+W(voed3ir3DbEOL^J;bUprh9asS`RsoIEIJN86kw|!yrJP?>%SsF&R=Ff zej>4{eWkL*mJJW5q6$^O7z2ETfYeJcbGBw-Gt2JRORcK!N_ZuxmrRI}u69du8!B@S zT-L6)a|$#vc4+;6_1Qn{%)j-!ipJfH_f>&eFu7I5e_7#sIlR z+kvAYg91}~on&~}{mj^n>MOsL$a8;I4LPfSR#e zo9IbWp+dHr*F+ED@b`c~nqS#u`&`hKrO9l*iZf37K2bnEZR;X}l~A=2jEahNvmXR! zL;=|p(8F}(Kf1uS7Hl;Uz8U=uP(`;~R1!iydE;~$>{9)jij-JIvDw8w z5>3VQfN)cKMi(si8C5n+8?;+JW%0Fz^)i?=O{M)zj^aPL=W)+q2Bl9=u31>8-FU9q zZ6=~GBOH)(v>hpX{AREt%9>5k#< zn}z=T8fDkwcjy4(xEfro*~=3w8G|}g_)HArHuHO z9=S`Vy28H3uu9zYm?0i7q8gFbBn?%qE*xNtZAdTya?|1JB%Ir?a}L-gQyndTZ$7X_ zw(5mPO6c`{^OiKGOlNxkq7eDfe8IyOk@E>G`LmGy(I2yEFksFlqt~X2U!6H~_A(+5D zr~LUwg80S~@T026SS^ePDv`RD0oMhpm)m_jK+pB|K+bI89Lq3?5Dvvm-6FM-u7D6V z4ahYrJt*fqFwNnt=E~?yIrUs4a7Y;gRpjG@BDL;>FtI?g6U*2zHdL@ixz7Uay`N{d zPp7B3E@@={eT1HSVv_Py2}}_YIt|=R>f!jKw)t-ZK-Tun_BSzor8PD3-^5 z-Nx3|n25kw;XCE36>nAOE@W>@`>sTO@bwyxBr)0>htGQL^CB*Be)_QmVl8Cy%JD`>TVcgX8ld+-`B{A^P zOgN)3Hf&v8#(?kb#HVdWoYEW+Ds;vK&>~#4g2#c27eb)C5 z0;TxyS`a`^LzHk{t%+de8ZVORk<>_>Ex<(pi8(M=YZyd^+47t5M+XwCFj=8Si$gCb)Sb;A6+6IdZ|zqU zZnVYljVP<7Os7r$Y~Z4mCMa_jJAiyCm0Eq;kEO6KOUPOM(pvCgv@(Sz4dLR^G^A8P^w<&tA7cz*Je*^oW04WyGXM9cuKV=I*an_OdQ zvH-s6-)$((o~`;>+9Y3)x_Kf(XOAl2ISMM~PBpVv3RX}ovRe}@%8fR$6C$`N4JA>f zq!6$%|MIaExmnmLOvqN@2~y_9OB!K+OfM)_sOMBPaskAx_KmVXKOvopoLISXzxt;> z7*fRL7eh)g7vN|Yy9Wr-%7+Ej z_hHXzc8il09 z1v>Nm$ujgPVVaPC-^Y%l$rosiYB^5`{^*f+{TzeIhy@if^04CU`!?szd-P&T0xFw# zBLA%%ojH*`h@FWevSkXXWuAx^-sVs(Adzi#hF3-#fth=^<4D&jG2rX#`gZX1>GV8K ztXq5cukVEZ*$)g6Sxu>#kpQ(`?drg3pgvgeAnw3=t`tQ;GHLw&#~6>wHMZp#`FlSx zh-CU+p|p)vN6LTXkFQG2ac(%wVut-3?i|Hp9spFRYm#e9;$ZeV9H>uli>MqZ!>+ef z8zM$H>R(V$NHGJjthC`nS7)WYv4IvViR5(;MP7x~Y~$Lb=Cl*aDLno{xEf*!^b6T~ zUMkB+MK({rl_J+E^W__^RF0&Hjjd0*dtgU&Wa%8%8X1?}LgNuD^oO_?19BT9|!Um~2Gzwz{&0B+U-M3Qt)ZrCaYZ_CZ{h{u9DPY( z^&-mA%3dLXSv>9F+0>k2@Mpnsn{bpLq_c+&)h-P&%O9EE&6U|R?lK1;zF56rDJde% z{7OfqY_R~9OwA#m!F@UNq|n0)L}9y7wYh7SEU6t)acQDhA^V(jb?>8T;*{18Fa z$UwSL@{tjCLe_o7?il%ic!oWwG6#QZ2M+|1;@Vx)OCI+wA7rCR?O)?PN4!2OBZdHQ z9ta8a9NvT9nW&SDVl)eE!PxqF;%-^^(_Npb^bgd;lbxO-t*Y#vFHV7E!c!j%Z;JC8 z;VI3cn*O?4xL}9k;Eepq+sy$#GOAwso_|BxRR@xu2fSmlJ8lc%!n7Q39naPrOZ<8M zw(!E`jDnk>|H7qn$ZtcFLCz6B9G1ix&`;Ns(4`gx!iC!(*gX}%bL$)9i_SImbo=#z z*b;M_rtd>e%;4dsz%R$k){PqRhufIhzsfEN#d?dU@c~kWW_IqX@#AoNL_Fj6B*=%$ zWO+r5K5Z$-I-J7{JTLZMSu|4;oEq(H@6YjehwXRI>ye0!%A$)M1J?o2@^t`>G8;V3F)~FdJ=OvzUpj!4R+Y6w2J&K+|fjR;pU;= z=!U7@>tqddZNBn#h21VgO@dZ6Y?O(F!|56~2V2fFZb5>ff{8ny-f3B@Z++vDb_IHc z-LTmKUo>P~H;Vu_Xc|ZnhR{W5Yhx?hL-^jD4z7sjE{p=eCzCHEh7S3^{1VYJ6J0WE-sCWbi!VQ&M9<&@DM%Dm<5JszCTrs#KseS=#OZzv2e0Zav z9^DMTy~?K{7^cmy)H6s%z}Yf&B7EhPqJybCKR~cq2%u{&1q6RlPYj=w z5AB@8u6bWBjaVi3!e_y9G>t~EaPR(k?CER0iK(YFa0EW(ar>QUz%nF!`~XkKnzu5> zKx0DPN!l#Z*b{|DKF*OMwRPlA=HG!oZGUOeat70VpnlVP%_xpUi*;|S44Vf~ew%$C z!a!ov3@iso5)?u1ttMN+~Pd_|*8>V^OF&n(t#r0f8g9{-31Yubg+j zS2hunA)C{goUneC7=%aI#FiI(e$r_;2{loKL z{PPiDl6|vjM(i+X>j`AwMVs@7xhKqW_4ACfiGh{P1CH&3d+V1o?u><7{QMnmxzwtA z(?f?Sqk2#bqmp_U*+h_-l{Lsw)wzFLmJW37-S6zg>oxM*=9vFdau(sBkWm)R)Oc<< z7((({^N~9*6*LB)J>KuTFOpwLR4BKMu z8aa>+-#vkGT!67Cb6KFH9i_oPP|K%15?c#8?QNy@}f}>^btk55!-w;c; z=g`ywx*7Ry0zM0OX!7@R>pt^2xB{?t=aE2&U*-!zwyqsQ{ZfxaVm?@;Ng|ivINl(U zaGYJ(&HKrH5vJwO3TN~yc;jv04Oeo1EeYe(k^6mTOMknoafdF#Gb29$D4T0JQ*Pf& z@@3WSxi>^(HKA%iNjE-^-+Ox?=Rw;rVzZI3{hM!va)QMkEwM}&yF}zHV-YU zZO?Z+PTUUGINAB9+G!9`TH!!@`SEqC2NJ6S>n`@GRyRXW;+4G1F867ckI@TqFKuAt zl>+TeKeA|};^1bcI}xy*=_e|)Xa1)44zU7fkh$Hk3Ul5K=OoYDfIE7S zRm`67q;t1R2R^Cp<4${KP=GCe>~B5eAyOvbAZa~LfTdBasGh;Kjf3Ea`Bq3$z0Mxy zIrr0&AL0jtJ))8f{Q1!pII1=@OvN9@VTYTq%%sKm$~u3Nf*KS`#l;EFEDr?Krm8Y} z>k14BTF>+5n1s*~#~=(R>w)k%7_lU*Bh1I@RFUwrVja)50;+#xp8ujcm-0volB;g^ zt12QF#4#|iWtGTLuk|3=Vw@qbPqRN2iEJ)YQb*pJO{Q?lI9d=n%3|)3yqbdqlkzXr zdgP;AZy26>`h}5L$`xd8{Q@!(9{Zq+Rzzj9sC-W`Qxp!N_=71KmR#EouUGaL3Gw*~ z@bZJv0t$a8(W1$az()7lhIOQK1vP(`Zx&HU%|1&3iS`likh$$fcR}-7H zCKmgzNQiDv+z0u825x;C2DQ(^o7!g?up1sP>-rxCTvjqCA8I?YGqC~W{|adKZp1FI z|M|8bd$i-XO}~7J-N`b;MZnAY=R-_~94ZT+3 z?B79~tyvrZnNmTEEk*5l&corzL!IL{T0xbC1t&s*6au+0>JnkjBvK+H`gNJmV)5qI zF{}AQj&dcraBSgTK$t++&;=zi@00$YzYh-BPfQAGog*N6@H|Aw8)?`&snHRV3bCVk z&D%)*^x0nFP7vSm4tS#=&%>H(#%k!SIZt#8YQo^*Y`%mwRDEx@67bKvFU?lMG>l|W+lY_YX*K$oAl}&+L0eXUo>9r;9gV6E8 z6hkgrba)LWBB1WFfT>%yupp8xk!EU54O~PR%IHfvn89jEzQ%^K-f|H>0X$o=58Vix zvTaxcy^wjZg2W{v*Ho90&%s6{=wwWzt4)1MmSY-&$`|6)844#RM6Pa8IntN zU6si~ktE;=4%C442+&SWTx}aHn!8bQZ0o_4P>Lb)FoVq{df0MMgystTb!w?BA`o#kC`FLc0 z8fMF!&g=fzCU`}H@d0;JX?=lrmR65={uYZ~*254MPrHp;b_?=%(a{Q}P>DyA6wy6dCs{1X8JLU-JB z%mpcB;zbPj4S--=KnRY8p;g2Z5eH-DIHEbDi;uwD@isVYG3Sbi(-eU z+qh^@V{ea=h2r&PSIi+i8G;s07rBa`=3P{Lut~ssJN0n+u7a4`LLiLtgVc?aY>z%_ zEb){@a8G930mqes4F8=m1sSoF>I4SBF%oWG>CK6h|0)~?hIN}cu}r?nAFNNJf?AG6Ig}wQvipLRtAahDD`nV?-e~Ax1_2Z%ioSr|NN1-h zryV3@8ynu=SB6bxtno4Cug=sEr?@JTdCZJD_|-*)~n*iFtd6BiK&1) zj}OdN`T`B$3U)Na6;f=&t0@1FMOmQgPl;wNRoz#}U!caBghH z8U1s0%-BgSjRiPP_JFvPsLRGM>1$=IVvv^RyPAt6bx)H-j4oHaVh-nT)TEylnh$O; zi#@9H{QTQE{L@wqWTO6*LiDD*7yUXRzw+lv+xw}DpIK$&qazt z`Xl>j|NM4MOSG~+rln5o1P5~FA#`ocHD5)vT3I`HX0Nu(cGsC*+_fruag5Q}; zMc+bGf0K3|;3EkfzbwuGdoQtZBT4Xc?^15;lpA}%Z#7Lh6ttyNuw z`79i&+2g_zK%K6Q75t4jQAIAq8$)QPYJn42$^YOq3rztCH!qeviSgmE@*T3Jz7867*hri zM{Rjkwn(5~M%MRC6wGR;=Ah6A8@{a>8Q|JPVP~(sK=nT&GzKJ|ximrTHfm`Y!t_!L zPKlclz4;S+QNeKHSo4|4;;_6H8NH^aT*}g+NWWYoV6Cnd690}(RMYO#FSuKqZ`?9F z(nlv^N>rU*R%AqvEfhSzOos~_TBrX=HriPuL9fnAx2W3(DrV-SEc z;6?M2V8_tBIWiHduuXn@9E0JX=WMnN$w#k79XW!9WWQL1I$JCw+RBQssT*Y>R+g$f zm<#5V05*{+@!*d6w)a=~y{t-71?heJxm4yGWXOw0cit0R}K zLdUeL(uU{Bi>x7WL4i5XI@2i3-#ZEJ2%T0qTvlJ04`r66X1;65aU?hEq02&*(cNrr zrGjD|tTyoEr`Bd5y3k~c8k*5v72?j74Og=~tGm-^gjNu5uTPj{Y{sN2gw65=k@o;Kcrs<3$M^Z3Qti!V=(w0&{vvx|g z_VEK;VY{8Few!0okWpx;Fn$c@V`=wDLuB`s&G%+Si5&e$#CzzdIh*ep%bPAPL)I1g-^k z^yG5b{4itokjkZoys}1xdn~?J%B4R4V~vW~CY;k4kFf!@DGooi8?K$)Eue3;{hIfH` z)OoC+hUW?5)UF@s@W?!MQAf+fzqll7a}(*jqQVz>WZ^HlI?Sa{axkGzA|XDxLG2f5 zJXT?Mh*YWmhjAhCh@Qw?hbNt|Ssr*jG`nqHl&t)eE^g;6Gf0US=KjIr27LJTG-7IU zFwpyJK!ko)HzJTaJ0FOrv=Gcx4t9ZhUCGc^u=@@FD5^t%u!FkvD~Ugs(7;i!v0t)S zBpL2$9o4bORJ7%tuTB-0YB7as{94nVJbGm3dnmE$mr)j+!bIpSDAm`waF=2m+eNLi zf$ww(yjWUvxh4LI%Ur>M2EbhOwBm=ZZ3NB{n~@Tw6%MUcP|gYYJT_*z)XjRF+_qar z$BER2yuyrrl{$&Az>dT?t~_k+WR6^fTugy1cAo{Ek$ZfVFV)L9KZEj4x-;NZSpk*C zT2_x-Rv6lFT;!IqAmeK~b2)FA+Pc-GMnn1xpJG#xDCl0tb%lH&1n6UKR^`mChtCDM zNdK)^6$PZ&!jEG}IgP3tUUqVP;jpTXlvSd!TahkL%f6l?8<` z6RmkSi*VY=uS+CELuFH^GY}|)h0GDZb8aM;^}VFq6O~Wo6P0>Q>26lR4E7({GKFYm zOD75WdCVpKSSmDNT%G_lKV8ik&=M6*V1Ssk?D6mKrGH@I15M2oA&3w04s|8?mFY$? zMvkL|l zEf?<{yRzUx!F#W-5l9CH*#l6w%oOQWNFsU`m|DU#EM+pZMHrP{s;pR6PNQv@ zEuj!mM7m0PK+5!1u027XP7WqsIX%{N2ku1aDHh| z)%kz}8l}PF@Ph9#imE~TjTS{1?oQc}x#73RU+yUGZ@KG@sLy!r#JIs>6-@fOVt&>M z&>x#Pjx%%ChTF6;5eLW2M8zC=^wBKmVS9>1qILnU9wkXg`ailis(+}pU+G0EW`-~ zPG7CSbYQJ#MY4-JC-dPjf}Hs+MoH zxlFDgl>5o9@$?DjL>mdiXfJ!U0WgXAE+1sY-&wm*qX8> zfA%Gw%wR|vp4dtNE92I7r(F7#rI`Y&dMZ;*8sK`Y`^EXw zsf$>lzLnOP`H4tG=j99te(^Xcsi_lusII_eLreN19WEtyozab=-IJf~NzjED z29Y3g2<}_hMAfeGs&P#Mm_u6!8VG#>*EsT*D@5`211K~0G1Nq=LE2-h2)&8>wm4uV z7qxHh0~M%7ZAid`lzx?4kIM_K9bGy#fp67CE<1#Fj-NBWi+>z#vYf@0e;g3F!q4F7 z#D&7h3dc=X{@H>3QlA|kal?xC*U9sy_8kWLO*u0Uj^TquQr5P41cMay>`rgV4&TJD z5zC9(ICT5cF<5ZkQY`_@)P^)qhvVT^k_U{?eX%A9l8K*$t(vhVvNJV(pN3m6fbGrt zMz4<9t;1r18SzFM8N=JOrT6#A-TI8g0!$;jVU0#t65+WM=aEx<5rO&HnV=xVzU3VQ z=)Q#Cg_O}QE)s1cAb;`JDNeAX8||okZBhh%Gk(RGb#_76kLxbzzNn)BnCWMGdQFm} zzwkk#(>6eXkp)^mx<3~Lb&|W?Y|1x!c$FM*rCQfK_O-(;YF zXJncv=(Ve^V1|n3WVXgPw>_oEzgBga1ismQ#P|P2_+SFEjLH%_JX<45lxZtn>wd8yFi41SvkdpUTb9JO==C`>38Kp^TMG18c5v`%N;i=Wd#L zN=zgBP5vJEPxK>8p}~60e8>ZCtrLIx373BrXGF0|k?N~wf?QvP1e4}fU2w9)gUd(84#(T3TS9C5K*8UH z9S)>?++Qk-O^GTR&nXGUGKBqLskOzD2fBJ#%|6vT&3r@;DG>{Ne^^j?$oPwvFTPf5 z*v7o7Abe}f#;^u2rd%a;pgs&V{5{#e8G+^enXM6-BcZbZ6UQ!@4TN!9VDE-f)z&hQ zr0g!nikf=ZLVnWL=kYpNenjmu!=id!U;Uw0czGLeS^C%t&~}fKXbdvr8eje3f08eS zJ^zb)_N5iABRUl~dL50fTMTETk|cB{On@#ccoUHzQ>q`~3zne)8jggKKI%hXqaWQ(g4tV5@~HY zfLJ1=dj<<9!&qiIpqA_~5z{_LV0!_Nvvl4Mz+R|i!3WI%*8~qJpsT-PP<*V7s!c=k zY*tMw4$LKC7=kWHXL_$gDZwUF%>We06JLlG+b7GiPr3k#7b671=B~_E<$#A9tx1|T z`1Tp9HkiS6n>wS3IZY@=EvjtlGR{78&*EQdA_Qb=3N&v4;Bbs5A<)e1SQ;|s4GvtZ zv=Lp_cT9!j&4R_KnREk~<>5072_uFj{hC5<7Jf5vHs?#SbF7x_3fgwT61b{SxCh+_ zKE^3Si7u}4nQu<6pY3}r;2F!_(L}Cfb$k7fGM78dCQo{+%!vk!yGLykXFOW*l~R;uj)0wDVDf3`7=IKSKxVgr--mGK6Me* zQraO8ByCPfcTlUGFtm}?gC-2-Kh_2gX5nOAuG&h(2P6UDN`2y#&q6#4+=|-JRMcfY z^-@cC&OwrPh+ zPYHQQ!gFcK8e}Y!w%y%|F$d7Euec`+_oIYX@dpoudBN2O$@!%)1A5jsv@jBB_7=x< zUzZ)03}XBZKBxN492|wuO@3Xf?bY78Zqyz0K(%G?2pRt&un@!KaEEyimbBIz{=xZy z~GqoS1XU1Gu9WOv#_(k$d}~fYuB@vK(LjSE zY0 zumS?L0+An_5Y~{WEXY!AQ`It!C0Z`>*p_&OaHTbXN=gaP^hd#wG@&qmJxdSs zJ3Luf0I<;&(H6x$ z!#&FaHhj~QrO~69oOxChTS9%nd=Le^Z%jw-HSII=1TZfBTUc|iPM;XdRb5m4_m?nw zCYFac?JY)n=FLfb3(Rs~mNV52B6_ z()t%4tFRByI81?H4Auz!6X5oIs}*_FGf%w^v}GdU;#zEpj?arI-+pk2^kaNfnZ(SU zyIriJGh@q6HJY=8XHCm*Xm3rdvTar72MF;=REz&ZoQB6)>4dAVT}hxxJTIun+GY@G zT^#tXIOhjfU%4{r4m83R_8zHll3MZepAk@P7w|GAh=>O`ga*}%oil=iz}zA6Ph1W_ z#)*NS6E(7dt_3QD#n=QJVj$uY}*$d>%$^V?_bH$R*6WUmi-|hkIX{bO+HoOBU_&wJXrnddwrzsFB8pBl{I#FHbaKW}XAkBy|8K>Dp#P08Wg!BBLrG2wA6F zT`@D7KC+YIZAAXo-?e8cfI%HIsIhzN`N#4rpQq?wFRFo3Z3AoDQMk*sU$5>X@hSGz zBHhMNQ?y79-3ia>cRYg@oE5e*>{2noCRfBPKR)yqf!-l>Ts3^MB@n>j=ly>tgQwT^Vun&@=Sv=h&fb1 zKhBmNG~62A`b}3^?WkT7{9;|yuey)!lrXn4QU2)3F(oT^9?{ls9H>H5zywaxC=7<8LEJc$MBZ{x#KSq zZY9*yCh#$$aF>8fiu4b@P(wUJ89}O~8$OJ>f*Kkhtj+H8{3*LxMsO8@7RLf0oga3Aek;NoPlhQHG78h{x_$OoWFPQcPp44Fya7 zaSxq!?TuL;`|m)wOIFLd&Qao|(B|V|1`DNmJh^8FfPcYA^5sV+PFB1@??mOhmjB}1 zHpa&0lHv++=>7unAFg2lJ1fgbXf|X z0U!RdCzBP|?6kM5Z8Nd$v+dg}u4!+stFJ+K@Kz&}-W(n{*LYpPdG$O<1~CGTp|~9A zoDB8cfv@;yzm3=Ke`Qu=^sjYmanv)IXHeMY&UtP%mW(c5n69Xwrw3slzJ~vqoidTe z2b?_n!TQf;wPt7hda}BF26R*?ndpMk<^&f%)NMk1eueKHLQI@8+&iE0A0FC1J&^dR zNL*3he>L}8F-~NySp1o~OefjTEm!^XEHHdq2k2J=wv!-<8y)%pkczcY{uUr`s1pLAP@OBd3$$bsmjk8=2v^7u%f*Wr&|IrWzia7Hq$S zfU!Ks3)wgQ5P|t~leVDRu%00v#)9q%RN4rx}I>0JH;@krrplzOol?8K3~Pw z&Ys3r3s7|FY{gTN=f@r4m)|@y6~-_H#C{Q~nHz7|IZ-gbp9h$T&8uM?L~p^g$OJMt-|*hqxva_%La1pD0zed^^2I4 z`L`;L776dAB~ZyRxF`^sGpQVP5QP=1a+y=+Vwn4DPJ`-*(fu@C+M;=Edc#hiK-_%} zGGRtdp&K#q!pfVmhl;7{?|yN;BXg?=fuF+VRndY>BZuy8iFd_!CJ9l4ljG#XlQRhD z(WYMmScy*$clUS5?_WXxLWs8NYW1wB7w3Ps1!!J4hy7w=u-T0(HREz!lyGzKgxxiw zx{o_Fn|P}6q{2UL@;|xxB1}^8RR``}-XTq6Qb0~IeYrLw2stNn=_3XnI5~cFk{8~a z!|_Hnl)-#%Z_V;>x_Zuw_mTkUi}`8UCtmR*J9BKV9(8#>fa*EXTD?!NZ+OlH`$hYm z2d1YdtD=6I-Q&gHm`ZmMF9X+Q9%);UEI8*jpBdDybmBecD=)^fwW!;xaN>RbckBWF zeqF9lZ%3$<9fj?-_5O7SNGQ=K8l}M2HY6fNpXGw|E`D`xa4^qZi}ZDw6z9du_hVuM z6w`}H(*_?HMWp`lSVK!KLUAv1*nwPYX{GUvFPw+%Xq8m8;;HH9J^&aBMJI|?o~O?R?SVa$8tg7jj6A57@S9YhT`YYWf~ zcO>I~L~BJA>qS}baczeivpi{rkheM;hAR8Y`W#Qb!@aYD1=2kWV^C}tcFUC*gU%aB zIOKg_9A3^NKO*P;)%3+s$#)53$Oum8jBsm^NSP?&r6T{2uilX#P6QycX0U^9mcGR`>z>NC5$v?p5wp+`wg|Sd!Oc zEAj6sa;B4T3A5oJ{3%lHcw#%fWo0VWxc|^!R#$RN1VqD5fQrq~O}|;;X=SMVQ~oD@A}X&k*<4hH&>Kc9LR174MGWjy&ic6ooeRk*v8zgf z6@T1qHm-%z`Ue6MDGXi$sWmwei3rzta zHW(V=Lh6uf`^o__GbCja)RyR-2@-Q6Ydnbv_V_;mlR+$XK8jWf6!L{YzU;;xz1ZCB z5jdEMKZ|c8vKHxP@i@{=YN^h-mj%lDMBFBTPyGvQf^ZuRfj@$$aurN*dh+8nLER#s zZ6f|=#;ckA5OYM|AWi7!Zu&&FsUlZAf*Fys;)GSB!eIsa<~b$qy1Ko>A%E~G)DfJS zA~|05l)ii+L%iMT_#~ZgB%3vcXAC<=jUn7Xyxu@nsthvQpgRoR1D%JKs{L%cP@kcVR%kz!{kCr%Y& zE{s4E4MzY&wf;foEmEhrbR65tn3S6XA5^zh_)z=(iFkC`Ldh#Ws8Z~3ql_X%pE z9As!NGQWvUfylrMVMNxqVq!X>wbaA1#g$Bj%-mTV6w7sCQ)hS=!A1rETcMZ{OPN7sa68O1!i2)GZ^u z!~bLI9HTR7ng$%(<{jI%la1|UW822Pv6GFHjcsdV+qO2gjs3FE`{(;JXU=q;>guXN z_vxy+DwyrbYMleq3VS$>HjFk-`dVDUZalXBhIFr5sfk={GerCBXWGO>@8Uh-KH(36 z_j&&G)s1tBOa0BYvHWxWx)L$*t2wOMm=$7#!1eyKHx~r%Ok|GO#RIU zlb|~Z6GjzMx4yCmz#0^9Cdrmf2l)Drd9E>MqYmj?lMNT;pj#(o4~UjIFH)XR37GLy zMGHxrQ!)#TP8@~Y1m5Ilr0=EHiz4GzrpQsTSb<#Tv38 zk8zK=or68V`ep#LC%Z?dlkZq8XBq7MJ2fMpkeDN`v0c6V+%@>F^CrmXojN*aq~Kz% z3nohocHk)AN6HL{HRQjC-KL~f{ZwQ?ZL4S*UIHDQdYw;*4ct8EDW7Q3cn6bL6UHt! z`gN(SD@uhHYN{T6BA@2ZHq9Kud}ozwPRL?rq7v}g#(Wc=`C6b0wgd`|W95!vPUTDp ziFz_3EXxmo6NmA|HgczM_~|?5RiQC^X(n^YH~}~rZA#jZO@sXREVjlmzftPRj9-1t zvib;w?X4t%Z_W&Ta!8mH_|y|(vtSpR@vJGX0e|L%H`mC(7us?8Ep4u-!b1 znIv*N$kH!yCbRs{liKFVMpIaa%H~ZL%*5!DP@S8d6_HvV8gj{zOK%+!n#=2;rOXqp z+2z_mzGP$<4Y%5Z9-Zn z_=hB}5}XG2o4xhLE^?iIW|58&QBCYwIsT@O^LNT_?L)vhlrdULf5`S%=d)Z2Wv5zQ z!|F%_sX{Xk>Y(CZ90)#mSn!leqe`pTBFR_5ro_@EUPd1I#keGN^FP5%$^V@vhEOj8*Se>&s4Z-w zZey;UYmPv*v%U6TX}(WoMn)x(1%)E>hh}eE9Ogu!IeWYj=siVKe-B?Kz=iF#sb?qs_)FL}Ftc_*M&|s= z_|2#CDJRBBFZ#PtDuD?wm6Xb5qcp<1PhvAVsu3B_4*o>t%%<`|-P|v^WZNb!dMRU> zw^641kQKXX&VC@N(U~mA$>30=e^f%n%Y@1b0$%;iev}@`bOeCLbL&;o2tcazhZO=MNpA_nLO1t=7%VI-y z73u6&&XA{eDmXbn=@e~@0LE;~G(AGe+@CRctygr?f+WdHn>=Wi$8zD)UOGa}06Tdt zS?Y7PJ}5XhUE~QdMB83) z%)cm4ys-NVyTB^7xeblpR2E`5L=h^%110tv5{6aZjy{NVvKPa^TipsW{9!n2p(q&qLsgP0;6I#-eUI8;(WB~fdr%v+_SbTL9 z3|`14}lGld^W~VPcKs+7YOazSDl76;8COX+z}( zh3;AYynhRECQk4NVk%RTrek9gvS&uGn%yD?9g31)jHS7UCzXKnT5@YF6c6-LeR!u4 ze51M`O_wW3bQ+g)FGxfhL{)u4q~{T3xvbD(6=OMB{%wjpSlH``(c!WvgVaLfMHF=) zXRcdUXU`*jSD}L4YWh?`uoG+SuBVe=vfswYHA>KG^^|Q2Bx<#X*|JF9eBtchc=Fsw z`PGOoMDDNe+1NeQs~g;5uW_BNW!75WqwCYm*Zfy^@Z9C5dlC0d&R1ehYVDO<$3HY&tRMt5L5kicvSm~jt=J> zaUBWxzgr{#f#AqbHwTZN(emJ~Gmdj9!uxB^)vG>-Wo8kfsclk16T0z&gATw)o?(n` zy~Hh@Nw-(-{;Jwo`Xjv0OR~;%PBI3zBPpq%KXPhw$c>*+ZfvpL%~3I?SR?YksL6{JLbmD2CY#| zmYELJD$2T?h)u>1H1W%7FmA1^aXDsm!8;O+P3+xyz6TRB&to2@?=bGL#8T<$#4Z} z9g_d1s?gE)K~kKl(Q~$-T8w#3n>Y^V*_Q+aB2DYSw>)8S-yR5}B=={R5N3@v9^oF9 z*RS8XQg4YQH=3x>u(&F~91sMQ1&ODV)viDizrnaJPS<8uHwg2jcCf}FH5uGm1AkL5 zCus6{mi2sF<4ON6i+o~XO^-}HKG6e*(uPgRioCzCl{R8IoSS&loYtz?wy$DRO~wMe zSkPK?N++lL5sQagZ87`KOWN!DN84XPGj_b1CMn{qkQ z1FAmOvoNQ3ga%-B#8Iyx#MqU=To7Bwpu zX~DOLwbCrc&I`_qqn}%H;+Zu1hn$B5oueCfnLN5y-Bi4Mq8Em(mt;gj`diMKVs9C?`i~d2RL3Q2Wj?V3NDN1T@n|WIrHJjBt?79a{XFTmyx5u4s5)T`OeOpXGX%UTS zGH;jp7IoI^g4ftZNQ+QQHlwFjTs|_%c$9p*bi5c!$5S-RY;-yHZ)baiZrd*Y+c~~K zPTy(x-%C$mkGxH^IFXeR)ktf6cqI~KZUF-m!dV;volBi|%Z!$wO~0a%t7E@uwy^uy z#!P4^>(|`2I}Egl$iWBqbC9qD^NX)2puFIJRxjoiD;Z<3`PJl-YLh#hGRld=_q)z2 z*ZyQ=qC+5u(~f`NzVD1gzmSMuj6YtJBFXZETU0FEU&fticJ(p7}9Rzd}%o%wEuiBOq3+uG3vUqnaz!d*V8M-5JE{tdz;@dzDv^*-j03b1T16ehL zZ}7HfV?>8QuvMl@N5Gre)WOS*y-F^KDlw?skx>+G$D{_A`GDmc6E6c~7UF1p$t zbsBi5QMI^)mLa{`#C#c2tpd!4c=)Ovq3p%pld!cZ^29cTSGytToW(A9yP=}IO^Nf*t~ZWFuGTP+n((#Mkr>oa$BLa z0#JwT9_RPkf)%?Y)k!&Myr`zQ7Hm`>N^bOp2K{zHM8M%*DjA^R1C{wyLcyHNj= z-0v3~{NE`8fJ3&;_|46|7wby(@$?zO+pr!*TK@bp?uYTB)~$Nl?K z0<^6g5g-*q-#x)ci207IpsTfn%hJcc&JV3?cG!C8#W{dWU7{8l`ueET1-`~FoE_ur z84GXP15+fO9Lw;8%dRvIwVWNT+Lab2F^79e#1mK0KUr zbN2`783^y+8Jol9(bLY2Qm4S-eBq~!y&Z3Z)gYAXTy-4}`L3#>m6MlN$l7fiQWLiK z1e9hOU7#v0<9yzFZK^@^mv?i-P=Vj^J%+>1rR{{F@n!iHE~^B`D1oF0g}>v>4PM=2 zpxI~sdrTtujDYmJg}$jieS~9#SD6HaAFnH=0I(z_dS&Xlbu$gOs*kJNHzW6tP1i$t zLj>jL>B49?q_?tU*rSTiN!pwn)fvm|MzJrQORAj+tCBVT8Q-kt&U!x_m&ldg`A?k^ zg#ZUGx{Y2aGXAZxHhWd~v0q_i8+zxpYORE}IK7+nE>xo%q#l>lV*=WTfL2JTE8~Ky z4PcZ{8TQj06D7HOEm}!3Wc_|7gVOJ)7vn`fVb%V&^i;LzhOQX?r+4;aVX%r2KC;{ z={0c#0a!rsM<9&@+^P8ozxA@&;_;7{?<&&6OgF%Ej8q4uu2fyawL|NhIRN`@&cQu{ z{Gc3Y1$G(CKspK#LY|VOue(^$Kl2FSiKrj0nTlWqRTPT4Ws!4eQ+q7NG@eCUvAa|r z`Q z(+_TZv;?<9wtciLK1t8|{sM>EZjiN+KPk=zfrgzgpi7#I+Cm&Th-y)*hGoTExnTM* zL6hUPRDxZYuj#1;E@{IKp`u@IzpLQIIZQrOPkRKvXRaA?_V-8Ku+}%xkE*7jy()|x zZjnDUSG)0lV7}um`~kMP*md~uTr8Tmw%P%@?TS8?CU3jkRJaN`7nswL${_(+|lCf-}MSDACWHp%`ts?=DIkh(W7zJ8(^}=BVGVC^ZLq}tjgt< zY3A-6^<4wp@f1>+C?_mb9ho6SMX%U4NLLVEtknA%wOdk6kW zuHan9atE?9lX%G`@16f>JM;v!9mLePsnOfQKZ0VITqTxF1fmJ|W-1|mS-vk0e0rgG zxS1Vwd%eRN!h*UHQVSL$e@O0(#QVbb9(f7kA`5@Q+5&|zc56jUn=`67WzJ9}%JrnE z{TvDw{KWC!te9MTKL3i=*ujkt7;_lULTqYbNW6<(NxZ++c_ySM`xkbTc=Oe9L%L;0I_$o!A8uC@-#fqg zuvV->fwQ7})QzoOdeLs@5h$zfq?%Nhtj;eN%QfxGq-*a`H7pks@F-)1cm9m)PF{s1 zjhS$n&45}81h+v%s%)ZmJ5!3P3>&otr#GY$Ap`Q^Du}S^k17OAp0ods$O2to<*~G% z3VT|GyykfW_w8p4ygFf;sv9Sd(%AheN=l_2>=5^>eP8&k7uV8&8~g&?CpRWka}s}* zVx(>K8Urs-_NO-dj{hCp9gCF)K7As{wlLKl9!@kHx$!;74z$wdtEDh4C6bf`%U1!8 z?isLw=o|iP*vQN9B$e$aHYxEh(Mk~-wb=S1M-C(eGe%yfdjVuZ?APo#1=(45_wuB$ z)o1rm-?L%@JuZ>{91Gn*W5ZdzRMVYliL#u}e51}r{cnl}irrhq^a`kYq3SE@)a%PT zFzdm=!!#^wH)5*~Qt$XbpSki+yI@o58D@Yz_Muqr73Ak&WOj^{T@`(dQ zi|=^u6glJiIOFVz0gLPWZ5=QIovJK(MvyFUz{~(4QMz#5=RMo^I`0s!an{wvMp(-Q zPCnZ;D5#X*qO8+X{48X5ecQ$dA0uPX@yW`b|XWCBSTr1Nq_+K)dEMB zb;#w0VL}as&^7WCansN;CK+yLy zFH`L;Bm?9qYRs(R#%T}&F$btAeba7^?mAFoQ}o;JTkDvOdNmU*?dcDV9m@BOjq;6O z2~C^_&8Q1170$SR+g*CC73!^l`qN)x`ByGF$!|1~+<#CHNFc8nfNT>D@vfmXOF(Wm zL^}IvIkDU-4B&Xn9|sv-{LD;JTLdexb2sKy{E_o+QO!q6v}XqLYv6im>z0Jju7gtF zmL&B3)p6nndT|4?5$7AsVT0l<><8DvUgf^{BTuD;L67#i?C+m`A?61{j%068_9lNr zBv(ARGhT>%d%D8nR*@|={GCJLRJM$kTMi8-xs-k7o)OYtNLbm31nZ$yG@siAe!}h8 z`4A)iSUwMMrS7mqBnOV33Yzj#?i%LaIL3n#$({v(-LomIrM;xQG*7^_;k``a>Qw#lyQwadPkFnny}@pp=Ox#y3KH(m}r2yKIn!!2+g46<&% zvbNz5g-#J7XR4UHbMdcC2d=1u{6l-?YLt1sLnI@HJq>hzLg3ka zBqSZ*i6Ffe2PiW+emx0IXIRRi9)zCTZC7E!t=UFo(S66oqn~Bz&HBX z(=86w(F*%*XW1vCXqB`x;IrjcajV$(K9>(P{Z9E7*isj(nou|OI$O2}cTZi3;p?FK zc~QMm?8`H3eN>xoVWh;FHkx0mnu?XD`iMvplJi%2lk;FW$nH(EqDn!{pKq8aycyR{ z4WCN|+>LeP0M}ou z&+(k-*?v@vyKupu&-YIF^H$CFMo87BVLpSt-^xL0Nc9yGC7`F|iyoOQk%x2z0Wvj{C3 zha#6j)a60hQtw+AM$Jp5-hboWJL5WRd3+{{6{mV|=JRHKSGqMlHskI(H{Wd~%L(CM z-=7?u^)#OaxI@#zqRr-4`jd;+!7fui_CEr_9O2bBBtRJ(VP zdhg-;a&?yb_RV#4H5?UX==jPj-~Zjkx37= zN~R7l**ft3nsIpo8zbre~~o(sz`)@$MiG*f`<#z!Xp$ zS?D<7$dBpwE%T|_#{~6&kWXbhUjS*VC6z&O^9`n5hoDPoc9i~s7vm=ewnvCj(30Te1+c}soN4Nhoe3Z`bNxHfR$Va>RI3Aw&Crp?&I}Wr z1>`jCe~=~P&#u{vbo#)PCsoxdw-Pd{H}|@Y5jqw)Q*BgiTtSq02SrA|0&&xsVG$bR z-)=5cM%X+ux<_{Xa>O>@CJZLQ6GmHF`Hy{Po@AHYkCoXg!I_C(4>&DqMElTBBvDSL z>!l6Cua4|P!J;ak_rTu22j|GHKVvf1oy!NX9T=T+wS|r$9T)Ql=D$!QXaYRMYe9I) zF5f7!$q4u*pD~D1Jpl@Gz&jd$!>Zc5o4wfINxZnd*zZfgOGz!X7mJoW=z zb{C&`#Ob!BUFa1l=A6TZ45eZ+QbOi3qDLoH*3bSLk3T~1P*k7&4sua{uQTS%Uwoq& zMEG7NshiQwxWgQ*57zg`AFAGwUYy0~x>dV2l6CfWp0J+RpTQfafVJ4)Otyj`KQG?% zURis`Z`+Ts_eU3FIxb(9PD6iI;J-M#1rZCZj1f79`8@ZtdcE=Jy~K`4RQZ;?zewF4 zncN=jjpnr54c_Gv;{WkcsU!Iuj$WC89r04ihVH%v8+(nieA5>t`eSxaY7kJ6+}*=^ zpkAt~A5?qGn;H0d1Y8}`-Ekp{Tuj{guLr=K(biQDh|>pFR_0%CKAtXq zq6p@@gE!ulNpf4E@{MNQ_GcUJ^&N+uBZl{m&YVLpCmCY)2wo)a{|_TQ0ZYUkQYM1}RGX-{sN zT)mb)nmyu^oJx8xH7QpbxptaH?d6whejI#@zFWoaz)ec%nC7xeo< zsM)zv0ZHTdKs(}N!i$JCCKDT2mC<2b*Ifd*-%x(7pk%GcLpS`~nMeJuTd=VQdbzP4 zL5m$!;$EQacU`ryPhl|~C{w%Oy9$CZm%Bl`(t;4#f5djp^dTH>W@FogprLk?j6^*Q+ z-H6t*#T-4K+upoa^3m(at^|G>oC@pS9bxXq_1c{p;cgK!_3NjK3Fg3Tw)&vW^!JvB z)s)nv4$umz7I{!5SJ!^p{@8q!SzpCp8D_wI0Y1jr%^_A?&KJi@*;UR-d)?76wz>|+ z_(GN<)8|Zs6fMW6z@A*3nY4K1Z|X-h^ouiCt0s1@E!3qcZ53-2Qpj1UmYCsS3c~YV z)8h14h_MKbg+w)sz)*B`b@@9--#<~b^G$E%%(E@N%e@nX4e}gvA^gJ~ehPs2YpnplP*GrlI~3K0S>~lvuj1Z`f<-3TZCr8}5`C zDd8c$waX5TYi@*;eEULiVdC&UYZu<2BAAfPO@mQbTl|v#;=IlxThs#Q13`O9(|WS5 zWMkQpf!gxdyji9lcb>7ZF+=v$z3(FhWlXXGt>yhArO^6un%2Aem438D1h3> ze~70juMqdkx8Jw_Kw)!rWgE3I>4@$&rjfU>D*)vKri-Oa8ueuSDgo08%lxC@_ddou z#ElDy|JwB(Q&Jk(`^11EhS2if5zV`A%)=|@g-VUcU7mg4^uu$jRhYMIhPUpl`-8%} zn?uEG59gyQ>L8&>? zWA#q;>0dU)7inqX)GE$%BH@05GZkVAj<&m16z81gO&Z#r(pfc`pQ{)QQ-1O)%W~#v z%Xet2Fb;zcRbMgx8CtiC_ueh%sIHdvf;yZbxE0tKV zLooV_l_RJSVf7!2o~CzO;7Z?gh~2yI?;HadZXaPA50>|M1E}dcx*c_Y%#QJz5aegd z=Rk+hzt{L$ivDDL!P^5!2Q9VAzI6D*4i00QImTf4Uq4GO9NLHXV2j0fx*+?nbGIxxB zhA(L(Zx(`Ck@D*d2y(xHya?sX?>XXsY*ZR|5yaS?E5NnTDI~HCUJAcY8siO#1&T=& zT?ampu2ybdgf}#z&}}SV`T82C))dzMGZ0zKPpE*lMWyT%R7Jat0PGGnFZGHMSq#Y# zzPKGHdGi&$|=d>JtCmV1c*A zYO|$RL6E04K#OjLyub3^q(y^SS>hw_!At6FyBM)+)SZe7{pVyYLO0SG`?EQ>PFHjX zq&cSDvSm2IQgMv!yo?mSRn}AA4=^_-R~n@jn>`xPZuF z0`vCQ9;{;vV3XPXI)Ywh-af`;_~@;o6Sp5!)-$#xTz9DGCj)Qtb}z)IP+C7QSlySX za`$bQ^^?w41$QHl*0E)5*GfHTS#92lfJ&GPW8V3mb4j?YRrieYNDw(gagDL>EY`_u zldG3Y`P-s_W5hPe&N}i(JZ85rDqCY9jV;lI+b{E4po|HT>tz!%wWrc9-$rx!^cpl$ z`D&)=2Ev8}S8)<#dwJHU`Wxj7rO96m*6dS(=Zmm1 zsW4`| z0z}W*pU7=ey>{XCpR$~v+JJx;U^_jG-6)XY6j>eF)EQ8LIkFEVaYmiWb%aAYhqn|^ zX#d@=p+mMjEm)+IT9)`~pHgQ)I-u_bG2rZ_xR8B2bXWmz$m0*a2$XOPY{Td~t*aFg0931Ma_@O^-q$S;#Quoq z&bI;rX@0#>#Vd#p$|GTNy~N(C%kp$XnSEPPBM`RvXsF^~xlkh*eZtcbua11s0Os2T zOmGczEvE~Wq8%S%fI19JPd>Lws65I|BhZ+|Jp0pKT+^);d`&QhK|i|+!q zt2a0UWX5r2dDH#+9g|S~JX-B385fKhYA`18G2bz+0UO3taISE1h8nN2W zQGmoxB8d*0rX^8Kp4Z9q^Y!88PyY{-$H@+^t4WVZj|r{@tw-rLAyRoUEMT6XC&5}G z+_6H6uu%O%9=x+%t@9u?i_Te~Z5ZQBud9$5t)6i-j*Vf4jiIc@Y1t&iZC#`%H0p>4 zxd0yOM4}n76h)s>NbvU)9HCW!kaje>$BCh!AZywaRL~ikQwuIIEk&r-g({&78+A5e zv9xEIn{>_6C)biiKj}355eQ)E^>y^UW=^U*(7BE^;t4pwz`7ql(WcLleU;c3ZjxGT z`s?EmpGHl25^#x`c#)~<_)sZpNi5wxbW4~5H0B9Akdy|-5||3OQo6;8w5I6P=uQZr<*_;F|(sjM?%l=AN_N@~`q3A{-Gb+yOr z2HtMX&(!$53}Pg`a)o{M!WVNK(dOL8Z8)+~&dkV~epeObhEWAAQM?_qIhb{6HYr~R zu2qw>R_+yyiG49DEuceHKVAT7W^vULZYG`mirLlZs!5_}+;2rWHgrxAd99W+RylRA zzd8QF>rACP26AC2VOPo%Jry!j2TdX#{l}bsa#W?OCKywBi$hh8i{9u~F62n8ge4s) zZP8$ZM{k1&iDGF{ho~>-IyjH`TBL0m^j;u0RUv8y0(TdiFhE$(n}g0pz499Oig(AC)nH`EZlZE0Fed8BuR>~=|LK0K81>xb$m^l|Gz z&iapDR?@3FHHO99*0KONv84A$6efppphid*T7cj5o{&68Q11!j@^?Lv{ZgLte)#_Q z++%4RA?owI#ZHrn?MJvpr6;DE`H>lHeaoVApjsP{848r&uR$TUFvNd>KuT!1cIeP2 z&1r*qnMjrp^mw2!`28)R=KJ30a`o^CS97q#j|+1eY{>p8b$Sf8LHeRiy@R|Mnd(+^ zO3&|XL2M%9>B#v^Vg`hB6jUB^9WVeSP5)4qPDbHkKJ){JX3w7RSJ8%{RU!#{UxAFq zL=rNUS|=conqtu0$R^el89G-?Afp6uVGIvSu1jD=;x8PT736x4bvrVRq`thJ9riI8 zWE`6w2C;EM%bG?9sOK_(;5fV1Psr;}Hn(wZCXmHUv8byYsF$f<1l`mBPzgIC>um?i zY$Hxo`5od6?b&a49U2uj=+L)g_KMQ69qA0NUk4nWa&7G7ZElWO+%-!y%^L@8|ZjJ-g}ymq|84XLE>t7+L#%O#eP8+Ht2B5 zhpN|Eagw<2k2zOUF3ssq&x#FnS~(A0YyjHhl-vrRhUkz7f7I1%xaT<3;=LPIN+;Ah z;IBNP)}c;@d3p;J&h=9N;_4ID0TDZ4rq1W;_w>4<< zx;GeMX55OkB~#bu`+!M?96~~NxIN048?A4@qufi|g6G*-*6gt3RD5c+LnyyU=T%=01JjtbxY+DAAz8A^zH}arARrNk^b61xWvi`R^e6 z#o!UKdsXJbH7fnscRq}p$dy8>DVRjoGw{v85BBmpnHE#W&wUB0KOMAKsEFa3i1`lb z2g`vd`EbciP|3VOH?rZtNlFR{t!>g58y1){l`_Q2jT2$^bC$xc-um_0jwM7m<8e>HU4`iVmHL!Od>?$V}_0D9p<`+ z#Amkzl{P;+q#34-n+6xhD#*9-e~1IGrQPbf;MHJf)LRt3TicPl0nVGY&<&zs{*L`c#N8N4!)=tq%Ipe60}Z1+ROs3_8@KP%$Ws2L zS{KSNOL5e(=QYY_bG|}jYRD9-S2CXgZT{ph!>8Ulw~7l7Y@^+-u97u)1!A8q=AT*c z7-ShQJlG3AG#43xzjKq1cJ`lC3VRQFk{eDjKY`uGt&?=r$XIY)68)wfx*sH{0r~k--J5VlWP=!budIfOMEDM-zrOEI{`AGN6B3rgFE8*j2c)hr8Z$nqD(raK`p7IY zHzLXUaJ2*9w8~q;by!v+Ycid5eA*tCixDlFlKO115L2O~Yq-Zj5QD zD=4FiL{s{rfTXM`^l+YlDS1hL4llMimhi_yCRRnM_;!?Z?WI)hHx3<>Lbp`!^2-!X zUGxGF`FxH+$kU<5oy;A5`>yPK>(?{3I|koT>t^$UhYn{-M>FNLb21Xp(JfqvGq?+F z4=F>S)z2wbk}$Jg;wAXddIDPR}A@~k1C(2T-O>4C1^j=of-gqF`6?kf(tl`z)~;_Y>|dDEJMdJJE;iy8!DB)tuz&o} zpQnWR|D$#0#%PXY!-9YWprz)yGXPrjF9;i9|HGTAq92hPec?*!VN&y`P;gRz&@e)^ z2tE;d|3_kNdm|M64}|dfNqF&(TiSF1xcZL``t^-k0R0b13VBZxG=TV}n-v%0~udbU?Ni5-TQ;|owU{Zsw1Vn@We~#79Mn!5dw*%B*|C7TG0nEbu z8_;PCAmxAX*6nVBDG62B;Fsv}S0OS7%t+oXK>HnCq zEkytwi2vf4(&(7QK?DMFB>g|e?o1pWVk(U=H%g0IIY5Z$U!TdNfYASfNjM2$1N+a& zLe<0e^DnG!CHVhfwg0FVE&kI0Xs~~g37Z9M|K}^q1%LkofWzSP=oq+ zvatc+f%pf%z~235$v-me0yF90?brQ)hW|e@>~%i^R7=(Y02b+=5v6y4f&X;cKLXzW zXGCUT*lN$0{|!)6Nmvl^QzON{D6%n{UcMNbgnzp><;@#9gtcHKTfx9KA;^Wni-HSk zO-X)H1QbSq>ad-6n1;!jH?uVaXjMIQH31g$)s@$w>;!a3pgkARtCn=n{D?l*|Gpaz zZfB&^%d+mOKARp*`gA|>b#-4|J#F#7b;}xn*W&+`Ar34J#F2!g#Z5`?vjY;$$;US= z`nSy1xx_$6d0R|j^_iA#6lJuvhmrg$zp54`P=`Y!aOuI-2)^VmMT&SdGGZfFz|vc0 zU3VQeE4AV)LaK<7(B#59kh>$8803fKAh;{ScX9Y`UOIv++Eg?ONdT`rj)FTDKiizH z(V*%usjd}G0hi*u5onfImkcz;{bR3xuhpE#QVBPE%20%;muBw*MpvuSOB>5ui4@Zz z_bUJyW;w%>Q3OtKFw`G>!%h0bTOoaI02Smu#+hcRua=%A5Ce=BsY@$`oU>6 z$$QK8wK9yq?Tv@1% zBT>%NHnt~cgEUcB-84}!$)}=J9?S+;@Fo(QOt`CeAci*+ghqksq=f=CykUd5nqytR z3Xo~VCJJFgL&~)I$DJ$_*iiKn4_2pHKuFav)eXY(Vn-C>;Xv~S$w4IFBX1At36qXh zanuYQ5k`yaK8x&3N|EaKr$=112p~6P3+G)+gd5BRY8WT7=6G48-ND29lNl?WgUbkM zPOD|<`EvPq#tVUVw?$%;h;W)~c!%6EY#8-MWjZrXOToA_4m=N=aQbYziIe4R>6qp$ z0jS~yeuTpJ8{ipSRHfnu(>EYn#NZ8!^U!wciEFV5vZe+pP#=k?9k31>*I2PFDUR$5 zY`Ts4lz1V$hA`_b%YR~?tgL&JBmRJYlbjv3P^T?tQyB%W^K1oppmjn;E0k-^Dt3}2 zkD8vg?|E|dGqAxKs|s4`J9VTQeMY;jngRAbg#?9{UKvi>%3yWzYT!laRVil)2Agb_ z$)S*)d~t|KkYo|&FoYOv{K*VgP($Alz0KX@&@3%@1Zhz-#DujViNd%6dCjVTQMKrL zli`~PD<>eYa~a&xH4S9W;WGljObdT#|Bn)HO&jhwKt;eCwYihQ&hA1Wsct4Ry({4K zz$u!Rd-_J(Hkb$kFO`t8KBz~{F_>6f2b#7h^1sTXe*b5mOg;T&utE$^pgi^=GDuOEK zC^rUiV=PjTIFS0Yux;W7b2YTwCB@8g$*Mt?D4{a4=mf(oZTXuPfDtJR!#&kDR~&GK zaH?Ua*9D!(!d1h!`xH{&j!ftg*}*l7VTY@6QMHSmIv25i9%YxuiMRA?)P|SNB}lso zHq70lR6~Bw8YZ7qI;ZN5YOENj+mG}}gMC}t!Z)xZQ?u%>^^R|T)y$S?n zyRecyTeyoIl+{>o!N&U&;-%QW#ue0)k|m_a+bR9U3ExaxZ{{vFk1G?hqO-7&c8wHg zNFkmBm5zb(8at6^_93-DS>*4z#=IorH{$B8OzAaeAK;mK7Cd zekv`ryt{1ZC`0$~lFS@y3iMif;h809$(UYu0Yc?My$ z9Yfblz8TYhxl{k}KUK+5We|Mdfq!Qb9#F4$XolYvuglwB1|B8RgkJu674d)co-{JI zZ;}UUUpt@JB4@Ka44rvOkN`Zw1M2?eiKXag( zPVa{c1`p$oD_5}0^dTQ;M(5Iof!JpGV_&6C_`Gdsy^V05n?aps7nE_2#xTf6Uv=We z0Ygs1QN{_Es&t_kPqkqySaA(AtphekKNNsb0rhx6rHQGN++z8O@QKhPOVozkp|3Po zgC{2^aP8*+e22J&!ATQ^8-1}v<^H70+{4L8K%&>yY=E3tamolv>>p7KPc3+sTa6?V z3TZzBm_vg5|x4EZ1C}IZi`+h24w4ZrJEN!;Wtxmqre5AUim?BUzd5{e}-;#km zGTp8wD6K~y`pJ>R@SPz00-7ToCvFL+IGAbTubb$?hjb$u9U+-0iHwq8dlW|$ATNfd zq;#X*Gkd455rUK;v_GGjNj<6~RWSdJTK4^r zt&WbaIpbx@Q}hyAFY;c$p9*3}WujN#MQWpc$7GJdo{9?RP8~H^+EDOuwsI{uKGHJp zkogy#Q)j7~c6qfXwmV22TXIia2T_JT($EWBAkJ{^i^8kFC=l3dc*G=<-?el3M3efL zAqWis10zHHpJSPW z9|<1tR24%L^J7C`85L*x>MGC(DzHX6g1o*kJTf40v=3WspwV5Lxu$L?yvNx(sH%mAjHtzCo3d{WMx|I*!cFyb{nn}9%%ZF_ZA!9w`05aPfW7;37 zL7gRe3LKVVIko4=NH(Q%agAnv^AmCM#pXG;!~g+8Y&(8h;w3dXa?zJ^Zznh4_@vVc zJRaJk8IA=4>47an7Z z*9YsX8x8EzCSK6dFMa2_w=yya8{X{}MXk9zy;{4bBR+5A^tN*Ms%0feAa^ACB9;K= z`%UDM$UyPsF!*oi^zMS-J0nPT}*C_;bW?g_?fyc7L~f%4_D~{#5mV+@x&m~u}0X? zVO=NO3~C(9BWSo2kP(VaaQ(F-DDq3k$^-p8WJ`LAQb9Ttl0985%^2QeBuM%gau!MI zSab(Jc~-KYQ?B?f?WRTNPQr2^3AjCtaJR8CxB?nkZejZM0dQksb*15Ik4XRp87ke_ zB>W`muTCPr$YcB*KO9gslh)^Yi;CH`!4$m zeoFOBnL;D}<9JOq{eWHRix4%voD82dI9-HeFuDNjqF6PkgqheqT_cxx(O-OQYJYEO zxDPxc*Bf34Ad1~WKS)C#6IO=r^1Te#!&VK~u)?}MI;9Tilw-U8SM|rWmijJrg@#D1 zI=NxBwe5DNgKtE=xCU0GI>(*;{O0_4!pvJ1vC?Rva*aeG>hN7xzsG~z8y1#A!=7r0 zD8Yy(?tCL_dcl^e<;WIV8ukyb9}=|%M@>H>9F$4crABrg9VzP3)@dK5NMcAVY5O?9 z;5mH})H_mue7V78?x~4eiqg1wTA>NWUA-ujGdwGeiJ{VBknFugqadlVo3%z{vV8|j zc=Cj<@0dyZG72xxws$3qR*44-BxtLB<6{?}Pb9IsbGjIjgNfC{HaK&3(Z7{n6^js$ z3#Z1Y%KoFT+GoIc}XPVn!V?}rFx!6GD2y~L3|L4tqWbp#_mMaI-81pYwyzohhe zFAoeRx%|gTI7X8^f&WLuSjUne{o^;h;z^1D|9FPo?7s_@pFWrbFrc13c-$rl5Xsp8 z95MlDSMTeexAC=@pjy&T&V`kL2)0Q$gX9_ZKQ4j4fP^0Mzl>*5OcL^sDmkwt34;HR zLvU&)iG=;H>b;xf67s*s7yTqIP)G@%NlY^kcdhPoxF}GMAJ!)~!^;B?5<=jG1Chw{ zAT$+@khDYoOLn%%d3sF*U|@?JAXGa_VvwUe4}247f~1GwzwD@UOi~E`U&r95Bqreh z=%bCrNJ^y7?Dzxp=b0T3G(AKP(-eP3LJolYZ&>{^wCNQPaU(k|s8fLlt?BNDWcR-g zKr4479si}-pZ6rl|5m2tk)#OnzqL|&CE?}#uPTa_G#Tc<0vQi!>_1|w_A6=PzmzU6 zLRtxh^j~rwNXv0Qh6V$30|gKvkTelXkU|3fab`Gs_Xg~r6|nFi)KvsrkkL2>Y?GoK zsT%Y@7OEL65##2QurULnnUdlCe-~0{5Kx5&xoJG^M4{g%F|Kjn`B?UqMw=Ss0q&o2b6>M!tub}>$j)5boG0A_8d*Vp# z5dNDEYX)foI8w}K@azi_<{Y1EhX+c4!}z?=y@aq$m%m6q8KKW+;`yY8|5&`DQqrn_ zqiB?qYQy|@p=;|%S781dCAyV#^Is&k-K64xf0n62kI~&opA%~X|F^F|Q-r**OZ9CjB2b=(|ID`Hyw{$>Dkmnbk{l zZ0zi8Ds^;ERT?Vo-gUUgFL@vRETjqNf&SNhK9@e1Est3~7raxvhn>5s*&82U$oa(m zHbf(Bnd=DlNNMK6EqSy%snC(Q2Z9NbK97`nsy^>LNcpJ>5XQ3eD#nUYjPS}e&PJ5q z4$FHn-{9_11zUZeOyI1wWDg(YNiy~E+k0chSQ;IM2nGzZ4k25)%?K9-W(4U5@1KuI z**qs2F)s3GuEG5yJ0H?qWl?N8%hW`^9c5Axbb8&^nGgJ%zn$40yKUQ3Z-n zwsI265AN`v=$ei|sY-7gYRlaghhY<_eWUmdDotOhL1nDQV2j~8f=Wn`4GHKN39kjj zA5Wo76OIsTBo+N9VtAHkDF-No3 zC``FJIGN_t$7&XEd7RB1c&?2~_!E_5YZy$j!6TmE+gyK{ zPPfeG@M{bP&xqNu;%$~tHA%75g#-cYa;Q7j(zR?D4I=D8uDb8W!CaBc>z@&F5;)f| z0mLmaU~_+(D9ZIYmlWO!Bk5X2MdbkoVj&U791Ws$RlgBT)4#5w18sHjHap>q_IsXg z5hF2d-L=SnRgAgPtnL0u*J31=v8;s~@|suB)vuSY@b^*pJ=&Yo%h+BLMVa`!!&OLs zI}ZV=HJlk>es>;N*f9!gbP@))x-b7&;Kbi}~vQ|U4p8V@PPhU>d zc}$}IT_(6HuN>S%2M9B*mC;M*m_4@GptNtfe#aSHm1{#*CuL$)A&6$s$Vtepn7`Ld zVays(o$1;kVpvQ7wZ57!kA#JVrCK~;yPWgb$c*y7#d?(CZ17{v7}5?bY`<2F5-&o$ z@KzVFQNizVcUrH%y0*qp;f7lu)(Hu3*MDs!#cB=>1tA_B1RTq53A@B|WjLQOK94fF zb|kU!NFK!%X;?#S&AjNAONg!*JXm(rNv3YLQu^o=@lc^bggE8o{&Y4eDVk{M(TSGx zn0lB-IhJI8sTJ{1w1{RKB*`?ldo+g^1^i*&LQS4Y!7h_H@%;JzYB;W<~SmI!BcfYF2;~+ zEMRmpQstS253pKZ#z&wgAXlypm=(up81nDWk$mMF!c#{&^g2E?5su66h+{}alSJgB zKl|P?r;QYKb0qCODy~RyC+i(*rN_*&&{KN%2 zr5jvGw#$9S1@Io~k5D=O(@HR2#oW~nsj)E(1pYP%^52a7jkHF{)&`36=Y5H4WAdBk$3Spm&dxs}lUoqCB*k4%-ST=$j$>}U9C@=Bv;wntDdHrPeD*!|qZ(})+FZbiNQsGn2 zaUvgB9tS`8qZ$g^R}@~p1`DB1-vrq~{aAE&p9O{i{3t{Jq@Mqbv482$Q9Q<-+ZMXf z!;5O5rhvsB@=eo{Cs{`T{7Cszgfh7waDJN$|Bz0lLut#s+=II<(8b)&xeo8dlxW`6 z<8=nkEXF#Eh|xbNabVPYmV#w|Sli={b9h+4fSAe1+P(cvV%^p@8g8}-8#mK5P+S{R zsRIZnFudJ!7Ca#8pK7R&9}UPb3u5C<7$fXtU5#E`A$H`Q-!?uA`?X_Lbs#Q^z-=G$ zJP(0~*3N1-Om!=??z^I5=x@Gl7Sc1I7vxCR7u765>XM$c_u-)6Ot23{Y<6WSB=RQe zD2qEx3!gmfCl~dbHV4ks>sOQ_hi7}YeHHMnY$_x;IJdILQdP^QtnjX;5>n6lN(`Cw zDEYSnUSIvL1y<^%9(OIUhB8T>-IG0=vd5ICg&Y@#w=q%G7%EvF-qs9Wv)Qw(hp&7% zcLmR6*;`N3)%N7ivEKd;9$;!uyA)G-3>SuA@#I8)Fg2v9SgFHME;ZENynwpvFbSAu zegJk<4YdLb<`vshe52QG{tcoVuCT%IjJJZiSs=^7G3JT?bqDKq5j(-e3A}xHd!U_? zC|N#@&&*m}RH<>s@TsUQd$72zd2+kZS7Nl(D$(oO(=iNcpeF>cIZMm?!AbiRac`Q$3Z3lx{~41D;nT!7>mFg?toz8)P0=)v#*enpBJW=rOD)^g{UdAvN> z-?0QsKr+J0FEoN%+XzqJ_7LQIjvzw1fz=2!de zUovKndo9JSy4rrOvJA>PHNpU&;Df7^`)$Bt9jzRF{OIkmAX{`0-J7(ukyj28OWkic z0fr2>5r#<{M{uX)y5ujyRoqXf&ZLu`p0c(!T8LK?!CkqxmNwj~Wo7v3W<9vYVO<#*m$O1RN&?NCp{zjkmSia!<9k-< zlUN@+@|xsK%p z&QUwHOm!k7_SP<0)n}VBcg=I323{z+f7wB4aILbHVoD16o57-;W82wR8}T2ht```{ zX&&T>uRSoErdJ)lV3xop-gZ-=W_{$uXVjI0_1gJk>J(ZrVv;>(91jBDBOZGiQN-ll zH_qkK8vo_(*XO`!{0Z5j8+|zn?c?i9q4l@;p05}@!|a)*NU{ZoXu%{Yr2OR;GJPg6 zX+RQ$5exvyv4zJRKF8==?>5crzF`Vd_=d;L9NiJ;dBZM_=NUjxuB z(#YLFd1sf@?>~k2Mv(f8_IuHdHcorKOYXPUt@e=ZExb1$31qe9py6iDU(z~Gq=t?N zx$jFP&*C^ABio=SvjFP@01LXEjpC@2Z8+Its@T^+5Ol4b@-4N3>1;NVzxr$jBb=NA zkG}U`>nodg_6Z;!5`x%>0rwM9Eu5sP4G*m}Y?s;9*6%orlVqzoe0QlSen3}-pTJSt zs$-{{z+0!f@&~5pQ(Vu-{v+AC)VFbWw;E1#zSuYR9B!w~n!CWB4-CvYXi+lo`8dSC zKfjJZ%v-5KDOvbm>kWlD@aCHWfYg7RNfS#PB5dV!dP9JXwCqRj11&MdTz=(bmSwh~ zbqp{(!LM2oAxoo*L;hB0miDf^?#1h&qpDeF8|qvk6>XV1HD!pR`{fXR#SH@35#%0P zX!eV#sh!-t$BIfnLh(x?bKLE`ky^MShjetQz=qvuYT8LsI!PQfgOT&H(^grHXzc#EZat9+gku0s@xa|zkW$j@Hoz~&f9NTlLheHf(dZC^CXsW64>2oe2 zC?e9ow=c{h^HxcRrdObDp+uW?!p;u|n=x+|`Z2tj zt01JXOoKyV9h<9wrKo45<1RjsJWBV4AV`X6#GSBw!WS>S86TH2OQe%KcR*}8<-j6{ z{JIcWS)Nck+_qq;*eDhY+A-7joD8L04Z4o3K(KyYH1aLd7KT8^#G0#gPFJ5a+IiOS zi)6iO5!B86GU0rJdD_uSU#vrgT{CuL&bGivHhN zh)hw{)?e0&GoTChL+Ps4XRsG>weqzO@wF@&>C23@b&P4T6}J7nP*tVV9?i&$U|Y3DGcXsi8?swMr%ds`_Wjpb}aA6LztM6K5?= ziCET><%1e3gJUX`O=q~wi5(y#uV>4M_& zH4P2K+Q+s{s{`RA#mx&T@#m(Q1h^f zXon zG78g0ZXsmHm@?jxAj(vC_znijOeC?+hNz9-1A|{ILx*7fX15^<=O{2-DWI*yi?l;? zKRN6a%mA~*;RE5X$gLk( z>{#CxoI3jIMpTa~Unhrc<3Awk+WzB5j1V`m_!jevJNHK3v1qzb zJwqJ74-4{e|5ii4e?0I(9YOUqE^#S)N&f3m2>W)!>h2?9E&;-Zy20-y{i6#?Nn_)b zjB+F^zHhrq>l-3ez1tn^!nnts>?A%y>*5=kuI#YH7dgkY0HUHHqs!M)4*8fx8sQ?C z^W0v@yC~w9h4(uFH0Od|TdE09HeBUR)jK&}5Kk+GInJpJ zJF5doaxH2#P~LUNc4;%ivkoXYR3h!YyMh534Ik=0kp9)Mx4X7vkJA=;MO@0NIgv-N z-X+Jpd$}&9@%TVXT22))dHuVtCT0(@t-ixJtFwb`& zT7!mW)%9fBywLq(6pL)0)LLUfvrAr7y=~?%07GH!>wVxIQ)g)B#8v_FrsUSH{pt|P z%=sI~`Qg@d<{ST>Gs|q;6VnSDP}qZx|6L4gX2TkBqgv%sT5`+dBZI8o`>%?Yv6?tXjzci&ea4X{h?S= z$qo+Luuwv$uN$0Zx2Ie_uWk9;w9(9(X(X<4QiZtz*~fX7SEls7q@_7vO6_o(h;rq1 zWZ8yBg3IVeWAt($RDk(vZ08RY;25LziNcvMe+CGaPqNs2)Xjz;L^HK(kS_L&XCl$% z+I*y)m)7BkyjhVpuF!iOt4=bvBfb45{*naeDuBBI5r62}5&RQeGfX|tMS4eJpbD|H@zy%v~vp&5Ky!qM}YDzM&I8=~Yq0s^*rma_u`KN6UWaT*8@1MdIKTb5FCC8Qor){A)*QMJw` z9w}M>;B#oA)DeC#JaT8s^&l7qwP%94Z06qLw%Vwr4$cs?^>?lw@@5x-He4eioLH7tj}b(5zQX?etYX{ zIGCrqYMQf^w!Xv=^-ri1XIr2)>DhiY93372^|ll*{^pjM$ij!(I=%LqyXC_Ns&cI8 znPJ@T>R_0*2>H0*5yS7KOmxas2lBD?tzSid48?&$Yde}JKXB+2|?DV_xy>3sZn zeE%xE^nuFbFJ=?4bO^?s9zZw&oR>WWmvpZq5}Jei_$m3-h$T?k8!Y^W2WK`(ApY;5 z_}R9|6(HCP`L#JP%rQL7nIC00V`U2E%F#bi@=8)KPftJw>0rj1F;2NqKq2KC$_;&$ zfj7t8DJ^|0X`Vc*;^c|4A$n{}#L;^U-60hr8DQ5qdeGWqkm&oH`q1u9`9U5+{0>#RtiW z(lnRd;DPngLVx~MvlLqx{#0iaSj9e}*Ejy{hA>~n{W_if9xnwv)UVIStMEB+y&Jz?Ze4X@`mXm>I)!L-lPUu68{^1d6b1HIs<7xz7ga(&pH zZiVW$bPqgMe40Cg-DMZSzSidlGe5N5g}4{6k`DIbJfHVA9XAT949E!jmTtwW=si`v zbBsne+^@a+VnNt9ZB=bi661Uu|J(4cWnqAPR$%QL7_cp)3x}5Z`VecUI>UiGW)V5w?IKqvJ3lxwQZ_Q7Gx-R! zDD090snx;Ogm028+u^PaEnmwsrVy7*FvBcluOu z5A6wUNC3~|7%E}5bd#fCv@hqzgoQFrbs@2VByjtl^~&WK68Mwz8o*_=N=0}O(H_Cz z^<`=gH@Y(h$LW{iA!YW6?w_j0TklQqlUv?VoSge_n}eVoFJ8mJwkJR*e77U#$4`%2 zQ(va9BTLuSPu`W21U=_z90m(zu-ypo=_qytOb1Z*J+>an(~T(juz>Nq3f!47 zx(>CK&6Ps>ck51$KrN1~p9Kt-h}|mL@mYyVuwxz%1{unw)^K_?Q4pOGZ@ynLyM0O` zyAX2y$4tJLLBlbw?uGmGF>@80_>qChWB}O+?kT>G@K_qb{6_ZVR54RI?e zbJ|}KhRBbZMihk4LM)bJeh!D%@F{1`pmPaoeQR|IAP(DX%V3*gt*%4-& z9dzzY)IEx0#ZV#ueu=JD_6cAUMc;N4U0pxsf_)8*OPmbhyFT0W3NFMFzuY2PfW2Jj zY&p@SASQ(0{JApnKP$SF86S!R6%4vw&jeIPNhG@}`A7J%wD>(BZ&p?(t-tWmIfP94 z5ddT8ANDsS{O9+D%CFt&X%`>AKF2f_Vn3G9mmH$qJQ2Y>m(o{H&52wDX20AQMvYv4 zA>vR-m%Oiy&gVlU>Wf3&$urzKy)Ekq`jN(#!hQ~={QhWGu{ATG+(NQKLR(w>DDwII za2Lz{lKmeKmMqB~;}?X94E?S`4sb!|hx|Y|5klNeSy2Q?!M9%G8*Gi-GpY0G8uk6x zXk>f>)KGvnVj345M8$h#2Ypu({2j+@&M)=ngS$@O@oE-QeyhY}6d0M-Czhi3kC;*@ zn?JZuc?!Hg{PqAyh6NrkMn>Vkqd4Dp@oWUYVNLha7$HfLw&Y`O8wz7&7jV8|GTsA0 z^$|dEyEjI=eZx5e|5*FOEfty%*$%1(NHGv%Ri9 zxb_LiXCmUhj~%d&Foq|;y<3ti`oE|-A9TWhag91b9uyv3qI7?A>ux(nM_|;616H^5 z%i@8hfE$;xa6>VHr%3!>hZ5trSbX5*WhurJBxmSXbyKWzr&SYovd*^X1JX_cX~47# zmq}+~GRj|;2J+@g+s))XV-^eYAObkumdq(BNk@93p3*y{a2ZL*QJML{tMZ!Bgql&X zE-*RtU-XAty)o?~3U+~Emi;9y-6^F~P5aK@w*8AUuUy9*>R&kMy{?J!N5+ATExw2f zk+;+|OfnAGg~$NThCWWy68QrXvyJHQuzOqs_!;@KX|#tAzGB2n!v@2-C=A`OSn6yT z%=5IivO!(e2#7B*Zs^lQxy8Sc&Ma#Dx$j~(4w$4P48bT~{9cq;DdF!!NrF1uW;4El z!2~7WQgz+JzKhUWb;%DoE5ZTKjNtv}F58n9krGbUgfoHbt_+!lpI#qeFd6dWJ(qX< z*CtCW*{4K1#N!|E?$>MVU1C2U;*l2sMtV415&m~>v(|Hk%oyehNy09EKDf{H+N^ArB_KpRhBEtE&Bx=RfAS9vr?Kl zt{0xjQ7=p1Ir+}h$m?2~F1xe~^-{_o55%kk3nc1?((^eto9lHGZFrCCWS9@%$q{YTP)%Y z|0{Wyta=L-#TDr~;HJ%w8R1zRJl0()&UF(e`n6PwhzBUVbBn@n>3{-U6#+>~;$HfVWm_D3G^r4E0D;Lq7mxhj*|&$re1eCW z9dQUqHQKH@k4oLyG?|Ji%h0zz{C_U}E)u_8gMptT--0z|(i_oZWB&M1fdG*j-2CA% z${!!ZsfX-XsxMcpJ3q;$Yx7>IFVFRFv(kj7YYS4A&ae`>O0#bOF|)f=Rth=5 zWP}az6VC#4$Vd{m3Scy$H`(bqQJaaC=b$Nsnk8oM$|UpSYNX5; zQ!EW+-+{m)6fXS>nxf_%oo|kS`YTc5Px6=@yWNlWG*O~#zmn43S_`C; zvv)shW=Z!i`ZJ1v^A^E&!kXhhnlI~ydw)8}ZxaJ(_kg6*4h=p{7VB-iDX3|XFWJ4y zp7zQlm5gaDG<|S@%E^TY=|Jm(9(t+b5+n}IAC|eRQf^XVlVYpCbuuM&)q|MT&Rv67 zC7Q~J?jYU3iPUgr)=to0wDd=i8!`k>Z1f7M4l(AD1PnHY_fH7)N;~1STGA9Xnyv&E zdTtjg+kragy8t)-p?QDLX@yRe_jm{8uc1SoQJ1P7w^Iv(Z|$uhLlu}OhZ7-xO`^R= zbsS)kW5|g}O0|EH?}@Q`9KVCzt$_s922B$x4r|s6ZH-^%yKL`I1d#%p zros56qLO{7Mk)62t)XwAPzu#I_j-Pswfhs1*$is?SG<1qEkE3&Yr^bB*|%|( zXD!22@h)7jWo6N1vh}&su-!FRaZaoE9DNlCl8jY3hRyT;aJ8Acb+j0zFZ?)$vN8Ve z!+{Oq4=++j%MW^cKQ}Gd0dy+I+0ui3ioX-1DnXwf!zH2nA8j>bii(vT265m(c3+4( z9}hgEQ_L6`>wpJCYbB?MsjLS@(Z%oNQRLcNsbNIkbW<9_yLOOuo%Hfjm*2nX9AV7z zr^RoMK)KMQixRLEsY)A#d7-cos>01&nC!U)N2v~%L?YHGkaQZ?_e-47bCLX^iQ< zkhKi8!(^(>6h5^xwTe0yYhBeycY|)_XG++xPFXFZs^e$y%95KT^ZLDC)m;?x4aWq| zghoSk)m_YRhzyc_s%9>6uH9crXdziD?L2v>w|&j(3|5kDeI))237fwL$n>h;hUxLp z`Kz$}Wr(WL8Q;1*N4e2zdCT>zI@0{lyV}~>UFRFeX6t$H%`wsBmj-SZy6r<{XS!}j zxYF#*ihkULz%7#(SR~98SrTh)iDl?IeqAI~7c!*ZOp`C#5nFofg+hI-kM6BKI>w2A za}m7l-nYT0Gth(c>VAa%PLjK{H00Tw1G@R5ZCv~A3T*<|WWwgCB0SU1ayl}Gg%Z4@Yu0}&4-e2NSO;xXYt z1lhZjkpRI&peWHno>IuhM(h|C3R6jeiwbaydQ64O)Qtd9R!DLPwZ~?XE#*dVb1L@2{2to zw&U&x?qVkHHodEV#^tGX4nv9BM7O&r(W7|Apn;urS7(&~h@hFa3c7cnuVSN zV<1Xu`p*)rbmp-Ijj#p#LsN8Wf}bWkCURJE_`aP&#<~jM<2nXb6{tmqRy*m9FJt;w zp;hZ@#@4G=6u8+Szvz2?!G>-y!{HN(<}>?gm$TkasHSv#wpOn^;#r)sZql$c#Lu^@ zU(0nqXD*&Q+OIdh8|uDx++^&n%{57&VFw&pR>u+M+|b=haox$fT(TUZ3Dyc12UyE7 z4x-~9e@n(qNp{TaFjUez2$h|WY?#_OqqN*_U6}w_kCd{+YEYvu{=H8q!015M!}uLP&5X=qDlye%4c1WI5KIEpVGjn!9dlS@dh86|O3?hsMZX=O4M0G^mK1k(CX zlGUp@YT+_UK?{pq-AtOcTZQf|WUeU@m7^*YR-RbS_A1a$oQ-&vTuw+;^6I#LJcKT1 z?)+q|4_Y(KuaQI*>Z4-8?(?POuE356>~&!}DSg&28JNMvh^$Q#_u^3mw01Q}XRI@^ znSIO8&it#T1q_sZ{%lORs@V2f9i3mbnf915+RzH)Gxaf@rLoDj5|*FC$?S9H`eUTN zV>!u>NASFIOH{tgi2YtTsc)3bL!-%y+#0tvSkOKF@{kY}%na!xcQznI{Q~6Y6|<2@ zENz{~buf)dJ@DoGpvJiDZG(Ou={#Zj-J_pK zSAAqnjJc6AgI~U#ghXkch~Jp^IwZ1YJk!`AtL<`75Fli^ zBU%<73UDy~S;uZy^T=y`*#V@!=zF)#WK$>!7~T<2nI=)Lyv+}?S}C{$S^aJT9N))f zcq*N<7*&}uAO0>T;kbtLO_XmCw5Ccb--*R2Oc+90!Xef;`&zjAN2yIsGVaeDHSvJy zodIRzP^_}<;+EA)Y(eVAFlpS>jtc-e?Ma}MwD~EB1{ZRk@w}1gQ@2UdM~8F8x_cJo z+1m}0^Tks%uN<~9(I;Zi)jvyE8l;~}<)%Ye==5u4`f9cVo3*Ii+>$i7acq)z0G4Hp zNnN3(+n#Uj<6C{HLe98#gJb9`-IKFRt*~7{pih*+xX@0|QC-sD;IFHhA-L4In(y9g z)>h=uE{#EXSiPeSX$bssP1wmy3p|uOrp59=nrYsD$N+2=o*Men4coq^MmX$Zo-*Dq zcWGlir^MSn7ty55#m%3xWQ4b6!{U9kCEoK=Z{7V2p1>6S3jJLn@%OTVj@Br; zs!wl5He3zq7YdB8gNk}rC5ydmvqpC)K(4c(!|b#tUjH8E777!|HJwyuy?R%F*;7=n z^-(bOFn_C^d+@M>hWgSJ!?dRc9lV7mm5tex68`QCYK7gVyX=#pf`a(KwIqU_2zmF4 z2?g8lWX9wvKY+jc&NMPf?4GzWK4L#|dih&TDw(2iSTegx224Urxo{^3o^KCR?0^nC zC{GmnqW<^SmI5mPET|Ks=XHV=mKZ}KTd6p4CsGskCBLtEDqB6Z}2HL>&zI-28NO`V^aDlIkmTG#uIsuY;WpYDD0{toRVr$a|eg*8Y z8mT2}uE>ykc&Lw`)CBJ&35dQG;r5=+?e!2I`q3<22ZL_A;ME=RS`fzuV}fWs+cEXk>7!ud#kH&plOjn%eu zhmB_|!UQsK4!UWzoxgZiEI6l=Pb$RL6D8VyW1mdE?j-h9n%Z{6 zNAdg4rDP0p+H~c05Mm3Grye@U2r^;&JUX%K@-`Y4Lpi}7rzHjx<$)C~tVNGv8sa-L zRI9-KqL385&M~gab?kVz`VyQ~KKT>`0{InE&1Uz{M5X^sQ_6_dIc?`-WH#HNTg73P zWUB!BGY|!0)SB-lkPsPkzgIR5(fiSbUzfuF%2e{K?>o$;n!b;3p3wQMRB-)nRI179 z`gho^c`p7mZE0oEt1Xd0u2!uEik!`&JP#W+8gtZn;~G%K zux5`M3XkgkrBS7u(??Wu$eq7d+{x7Yl&^h3Mr_`}VfOGWdYY+Ifq^Z%T2R9z!RX`% z%lyUWkBjoq1**RCV@0gZD(ICci$NM#4@1rv4pw3-WGbCOP-awUrQ~`wOnq2!Zckk| zm)NBnlHurIFR?>??zX1IihOa(uVytkA~1*<*JzOUzj{^TfD;6?t;fjpfn zoZ@akRayq-tBMi`zuZ@yy-w@(C6mX2EDEFxN4mi5$PO=if|EGLu)p8SRkncfQx+e@ zmF3~&2IrjzEwF+y!gAJ= z{n~9bf*e7G#$$O;a9YRE+7WukFOU6_%wL^C#9JE+Y0$LDZb}=Zb+%nVb5GBmgp#Jb znTd8rROc?z5K>i$8}bcW^~~!6(Qcyn%TlYIvr7zy5lmzQ<*X}VuU}LxZa^#xpw#7P zGJ6_PJjs`Dg=R+ih{K9jYj?h7EPwT!Y_9nzIFHRm$H(!@t1hMn}3WH@MIuDr&2rT3}XQI;!XEDAuHGB&m|5SQL$t2pl&EP@o`b^RL?*|#rge6yTt zYI)M*Hq~QY;Yp0KAa}u5&t=Z2c}F^{=Jb<%&w9YR1l4klTuzj(sJx5FSZLG{&OASG z_r9bXFy4n$a=_#VB;%`ryDHW+yy1)@e=8C@)c43Wipa=WqcUll(~z z|3<&amHxc=a(TACu27qUNER;!Sg&W6bqcSvBU4F*NE=~p z9kC~RV?0&pHm?OeM3f>q`a4z6eJ^G56l554FKCHzs)ZLb7%uVsaGJ)TzO$yo--< z|0`>RQ@Nh-;0WpTe(ucD=T2-syYx5{t6HmsJk2ar=&@?;(Y!gI|GE!;e#*Z`aic6# zaK?@AWjdLg4B&8l)cvWsL@h;3B1cg!j2{m^`n0#6o)O8*X>IX9BupK6AJc*rY)ae&m_j8I@JJyB1;Zb|! zB#$X#c4>G3I7=)L zIESw(?luvJowh@ur+X?T0e4Yv#$;(8cDNz&2uEm((^3GVJraCdii4G=uIy95s5 zJL}%F*8J#IQ{82|yQ+8f^X}!GW8rHtkG=w@sOL?N280g=?Y3P6D{se92Ip|fr4Lm^MaK9k{ zGf=HD79pvmCU>r0#KZL5AuYCG;XE!v#f^(t8H==H?>fF*LjekI5WKC8J_#xXWg$EJ8+#TRX8 zp7Yxr=U_`*h$#L#1mWhF*R*yF50 zsQ}l`Jz3%G20glT>SxrI2b+@3qW;dquj9X#d%?kqMl<47&yApW1=ohMvxd=WwIF2*U(7T*ItH9i& zn|4G)%eaa=lgkqJCl+?TB-dfcA&P+@;(-h$!AliM1yo_S0>jqGUT*A&NoGXFG(SG2 za4=>Vq!AO$!H6r`z|#}vtX3W{hH=>rs`|!q*P12z;Y!CK2Wta--AC39R3iJ6Vb0WJGUbRzAV>YM?mM_Ir0wy^VgBC^*DS%KGr3K3m5=&*2>ZPF~N2kLhUwMcD~b=&0TKleH7nGlA+Fmssbs zl{TP<1+Q#U(9x;YiwcX?j*3QP#wcB3cfQY}r%C?m- zc*4XfghH|1>X&W~g4+wfUgKYtTS`ecl^cF^$XrK&iB=64QGJzzT9Ka;s6u(Ofx3Q_ zwLGfAgdA`Dd%0V|>f6yKp#`+`PJ%^CRyx#M%?|G(yc=9X6xNqSFt(yPal{en&>qM;Wc@C{;Ho;A1{Hif`RQvQ`GD zV8ZTAkF+)p$$5^L2?M-=X?Da6G4EOZl;JLJWP$rFnU_X)G>-+`XTQC-@mk{10%B&~5X-2O%J6NlT47Iaqoh29XybAMICJRCU* zT1sgSjtHb&`%NrJ<++0#<JTJHQY+SgZI zK!0vJ) zR{AVrC5TV@xMZ4hwG{*e1PnCA9*h_(CEWPK;aHbX-2X3|TLCc|+&?ZfvWgh@lS%zq zM=bpx-W>gB_w41vm${wN+x>w|Bags9HWM}zqkqDpZ0*F(p#QE=-a$MA)8siNoKJBbqWLlN!TYO9ZN>?8|+_-JrzmiXOjqNNS_cr5%rF0#_EKFE z!B0l{SdYXK{-0M|&5DHmvoE6^NnSo18sSWm2mS9adLNR~&tYBhBboa&wu&HJ` zyBZ4JdmngxAW>;t>Y5eRYsCJS9_-&dl>ZOUhHloQ0gz$-J0VyIK>Asya!CO9XNwP{0Lh<5 z2vh)&eI6960iIy~RW8o}ppN&iNzdMZ{!bLW+aG}QS*NuC0Ps^gQYZLd%7;3mdkEn7 zzq}fufFy!{dk+^yfUwUF@vH_w|2KN^Dqt-nANN=UD}kSK02wz=U)n#q-LMHH7$6g z#9#k){2B{s7S`uzf^E(@kbgWuX8!jH^0|p(5Xg!85nEVO9ZwAX&C)D4Ee|XR9DNqt zSQ0uY5(X8}LWUL}30mjZyQRg5FrQa~``uDu{lP~+p{3(-ONJnS7_H#o@QMnF|1tE| z{k5z;t%jA@5m9+VwYlqM7HRqh3Wioc3qqEsq0CpacbC+kl)+Yag26pt3|(sN@5ek_xW6aOuS zl8cMQNWd7T0o9Vx(+UXdQpz!7V8n-`e#fY$b87fE)A=;hmmq0=c)vjv)%@beC8M`N zA|`e<<4Mwn&U^F~jx~CzQj=o^db&fPKdxK@aEsi(snJzAy@M9N@ef2gH{|pPSDI@f zPZoiq*jg5O6J*Eg0Nn~{Y-W>64N(oe4<=f(VYy(xBiOSWt((?9#11}B z9oxzfwx*g#b*eCwE7l?FY;aa0kCuo4@fVj!BPk70+-2x?*+K^%gb|;x-lgc$Q@VLI zphWkuDAGAmC5R9aKDH<65~ya~Gr}pxN<(_}$G6vdrz{R%pTR8?n~A1|q9x^wTh>gT z>a%gBq{r=N=qI@yeKjyO(%K8kib>Q|(&JkQUl8yZ<9dZG>m6VGwCPQ*mGG~_A$}%K z(>pxwz0K1GL)+0z{#D{M*dN&|oXn1o;|uzB+9 z8UT%Fk11NZz?5)9sirPHzalen%@u;|cuZNLeX1&a>7tj3_?2C)lj<8g_} z?9#=yiSWKnS*;7k${>D6&Qg6{3s76o#G?xHLF>4TR)1+A({5I>e=X%|WzpOw>6#Kzx^NS|DAQqy;sv|f-E0v3L# z)5~jxTI&kSjnjCfsKv-XRY+UQ)Qe!Q8CI$2N5v>Vg6H5o%5ua`doWgI8?9yCm{rsu zfb;FgE_6oeztu;?c$s7Q5dh%$HNAv4xjSz)k5(in=zcW?)2~<7T}$lbU>vIKz#7VZhllnl+PlE+!r!jQ z=HSr=h8)W31Tfu$Z5pR;+u`rL%FXc)!kN*+nPT{|HfTwedR;Ff?LOY$l4T*7vzJfrg(%5 z;4lO*04sGgiRQv_6$c#JidYhJIg@>q!c2|{*R6BUd>_Upn#pWSx;#na+) zMmk$abba^#y?stodIanW;$d)g{TulfF+S1|H-UMGtIzU_s~JDTBY56~8^$tz507e~ zC4E5I{g--mXTA#0pDTEaL?4yfw2v*R*4SnJAa+hOFg+-?>aMb6YPv|XCG`y@ABc?& zft{{#Eb|F+-~QS8tK{PxMpj2`iXHFH$Xb0S#Mgjfqs#i1R4*XXwpT5p7u7buwJ@O* zFlPEMwE9vW;dFu*hWfm_|N33Fb+8xvUR93XfQ+wey*qaGBa_(`wO+v&?mFrp-7r*_ z+`plXabegv+OSotPK=7Wl=!EF&aq2NOKF^Y%N4IIx8yqZwQ=1u-hL7)x3W0rO4wk? z=#(0$zp#k#S7Gy4gtUCQ*y*%C(2K4e$)fnG>Q&K4iOC#ZKXkVS^%!f6@ST6>{VV5* z1erae{x)vIE7bp282XqqXOu`8!9S<8{S-%W+>iC!G5UXVCV>?aWC~&sCv-EbIw=|4 zzX?{`h&2CGg!RASn&nzm(c|(u2>G^d!>S&k0d3g>>{&w+1VlGz0om zM5j=~=jr;Rlz^10cpU5$g&!ZwzLR3o*U#1YQTazHp9(JUsAP{q0w5qU!T&9|1*=I( zfkj2JK{)CDv4YTSLD|UAy24DkeX-c_aV8(4EtK~Gre{@bwZzGXT8hkm8ul)WjSo$7 z8@g*%rn)Y4l4?S_rdHh!dEalciERaTV^>apxVa5--a>DzqA;&_|}$;BJc^$aQmPaia-Vu;QsA` zyl5LGLo1Qh`fA2#uISc3Zf>3&&=ngc!?C2*!^l~DL#Zp^>QK>lTq1EmeF*gz8`$D7 zVDzm=Sz)e0~Ow;jwh+8R}jmj&j7-MF{n2d5ZyBw>=S2Vjf8zvBcCslCKg}_ z8`2LAS@yHHe)4NN?vF>nS}Y!-ab=Tf+vbjGOSdI=tL#s*$PTf!* zkzaW!L*L^9mk>9jlzVWZYL8YN#KD@X)UtkIi3P{u#WD8QyVG2)%T+sgUz>sd)zE6Gk)DCwb5| zoI5bv`Hd(*#vUT8z5E2;3_fFAUjMe*#kg1jg-{a`z0`u-Oj6oTD)frGU||2a55Wa< zr^yP06Lz8P^;5bT$0Ns!`I86ipZQ;%-k^3abFe|B5U`kiB#>z+eKT`W5xmI1(% z*&@nuTg>}ei5?qpJm;u*>JZuRqDgVQ? ziHb8AYeJ4TVJmqaJyZV6ayvT~w8r8-LT}CViTII#a<3*Ud3_v6ZK02APy4U>(dN3* zASbNIV@o?SGz$8GBpTqWp_dUyCc+wwQ~i&PX?1(h$@Tg8>Eq`=KR8;*w!}5xq5>ke zj38HCx+FaqYi9MA@#bD4Y5I2J3h?YLrJClU6Srg>x`zIQ{MZy8!+M$BTEk-6zDDfm zcJ7zLS@&*H>b2XZhKt7-8QzBcHgM25Q!^kU92XXgM?PcQ0$BxQ+vbK?7J-{PwO1IA zn~6{yL20=*Fji*V0?;@9I4OsRz%?%4CQy3;+$~Px_O+OQM0Lw*UJ#0?&|UC=GL@Hf z)WXKNK(H@>;h<{4w&l_Zv=rN1mlUB1%oG1c8UUAHTbD{ zu4vD&9;!9HQ!Uop#+~D4!Gh`*bi>YrrIWr3>OK>s3ri3X>Y$J^$F_>2f?=LN>Sb+> zxKM@5VXJf1vg4vxc|mPa<_e*hPVuwTWJBC?wcLP^cPdrHvUa~;88(}|GU-^X9~s)1BL3n#IxpOG zo=Tq6{8pp6zjM`(J0ZTv@I_GVa(fz;hb6u;)X}Du^z3#{>~d) zsH{C-xZ{Jkpm5`(H~n+3%%AB7{PUCbPc`gY@o;85?;jBeLb4c5k@n}%0ASznAy?3= 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

Wo( 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�k+pgU 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 PzlpNBarWZ~)ad^J4kmNg delta 430706 zcmYg%b9iJ=uy!yLCmS0ZCmY+zZtQGq+cqY)ZEtMbHa51gu{YZLOTO=U?)~S~J8xBW zS0D7LuG2HoZ~&fBaR83+QwkD*4h9AT14d>Shd>GO-;qt~x53&Il@hmJ7-4+ zMJZd_qKTpN?JcdE?D>WzD8PZ^`V-O7)6KBU&Z7?ZQcneNOJWdf$Sf8ZB}_)Q^N98^ zoJ{8`%af5L#fZPjD_>S%QPyU~e`#moah&$f0d2h^Zu79thkmvAYC;kX=>Mzz z9+^ULVUwcT>=N_~8@0a4vYac}tg9vtB#254X^wWJ$Gkps$na~O;gb6xxyDG!?O-9= z!d1yRq`k_{D|q?!)FVs3>{@?M5)LO4m(zB)uk;9<;>!b%9EuO!=f>xLY%pF^7mb+YT!xi7 z(N+00Eg(&L4Qh*!y~Y!zKS)%4i>fzL{u-wNKq8Dh871mqm->3Uxy&L+M5*T_z8m0IIdsCp?1`Ly=r&<(jtE>`&c9EU0J=cQ959 zrK?Oz7bmq??O#7lW28HEQZ?_U4yJ`z)9Wn2!kl(D&#!Iqd@f8=uYGzy8^(D)>4u~^ z@lJ>F)kjM`Pk+fgtDR2lNfD9yk^6is7fcSas@p7r_)re2+ERZ;B#B3MUL`+%fHWQ_ zqje~>jGP;?`qXX5;C$=^dbiA3D{X53Vue9p)|zh0=;)e zcrnwq60|4fB|sLWCn&k zfHUJ)&Y0G=S0+9gV|aTD*78vwzmr3~CN|{f3i?jOGG<$f|^{Pu`{@{Bv4( z?lk?BhTY|#{>XhkSRZz=E76c2^6SRy=d?k%-}w1^;RpuigWtN$g8q;`j|QLqyH7@+ z{fNKye6-UD2Y&V;o1Y-SX+8{^$pPTa9}%Q%!h%115Q}i&;vbrnuL$6K9|RB)9Q)Ih z2nqb)(-{f{oD$_j#Xtg{{?UB%I0g83*bjin2(JHWW5*1R_}L7I1$^y8qs0o|{n-ow zJNPlf2Lo*ae*4jN^Q$Fz!KZDWH8}kTF>4Jj_%WPj3>R>A00gOBii`*N$N5Qd_4v<% z)ULVM13VP&126@FKYxZm7Y-hW{=xKQg9AA}Y=;-Xr#^_3MQ~M!4{)^%uKNk(*T5yg zKbWj_@ahlm6xkhc&W{d5cfgS_K0xXNIPK>choB+SK1ZYv2cb*w;nYV7QT^%dNDYAo z^}&QPK$v}k8#V|>!Vh;-B?#A#3)8%<3Q-OGu!+-#&?5f;m;Mm1pUinELtviaGT3gAIWmV3o%Rl0WblOImjQN868sd^J1W5LK=R?;7$lh^68#M z204!TVPnAq8TB#Dl)t=?pLfPJAEf%Hle7Tj;KyCoj3x&8_}K%324vgk1sgGdWM=$O zy~aa6LLq*<(5zNpzJkGmflVf-L(+kcFnofwQ;l(qeu$vJ3{=y$Qw@2U35zFVIL86^ zZcqxNkj86h>3K3Xdc)bNE6o$w-z1;Yd{!xOsNh=6xhSMHfFTF24FK;(JxBR~RN3w z(`6g(qNUC3g#<@8jkwJlr0o7?KuPZWC`G9DXQo26*n2h_7v?RG#-T$iRve8>h7=nn$g}MY;DtvfoZ>1$x>03#k1+0iiv?L0#MtQCVRjb&20|np@ z#&11HRTKJ7V*=~) zRC+j-nNBm=>Avnc(48a{ky0L3~%T$8rKanx>#wLjE9h4^q zWOv?udS~p!{2C2begIKGaVYdW5lGa>m?q(AmgSI)84CUl5FDE z_L4lMzl;W2*5E3u3cNhb%XNFfpvV(ViXshL?NO)e^`{U*M~Q)AOcSw#`y&lCrw^`b zjyaf)F)ZAos7&_}c3OVnC^iIgOr0sWh6{Lqae^oerGG%|ahT45oTg?dP9oAL%jWI* zSm=nib?7sJ#S6c877ZFOv_|H)%2ycA5PMXAz!-mz6Q9_u zS=ZRwax5u!tr@{cpI1vqy`c0RPuB-2zxEp?9r12*$9e=jY8`DsE!$V63 zv1FyNr)kDIlCrg_>xErAPFX2#K9Wkxm9{kMA#JVgOMh4A^2czFW^09StZ)JsrT9=j2La0pW@@3>mfApRl9hUW%L5@Z44= zl2OGuX^aOeTF@6?^KK^997Ox4TxSQi+fFjT4XVq$x zqT#N?#UO(Kf4A%%rxreVl;3zPM3wr;t~_DM0A>AE*me5%6WYa2V~;yTehxdjr`f$B zoy3~}2MoeqjkDrcurBJ=YU3}{d%#=VznERtm!O5I&Ix$p8M_1#dqoKCyVF?nyww5n zCLj}Pc74n?&r_9k`QXGC9X3BHHCJNWvH|o5PJHSqo*O=d)rjKb;N|>L*OYZ}Q ze$DaF={(w><2BO-H{UEmERN*AXbo*F1y$2K27DVr#NXi&&3WEATI!3RmT}L?m{2ru zWCUe7q$G{_KVn@6bo^7;1a18pe7sSf}(s#ORGAmv&!|6*i$Wzgg1Y@$KjIPnYaKHgGc2v9Jnd{OJiP#tcVV^kbC!P zTG3%Df?}t>iboMqOL6}zapAhbhmnVV8vLDsR$dxYYZctviohwu%F*yEW5O33xe2sH z8ToWlL?~O|1SErRw*#z)Vdh4?bfiV`SEj%)*bQOna1Up& z?%WTr)M_r=uh9v1S6)Ysxc0#KDb+x>0nZ|FatO3JuMnRZL~DRo)lyzf`8L~ZQekz3pu@zxI8PkTsufE#m?Pln(Gm547_7)OEg@S z5E(I;8%voP;yN*-w5i9w(FPM|FW4*ai_R&!1xa{iQ@%=R{KaV0IXJU)BftV(v2XV9 zxS50JG1`2+qV-m+=u^QhVCFsKUMY*kjD@ojOJg+iI2cis9zvOKEknk zfgJoa;dq10`wV&Y9kLSmpKWm%002NC`7izJmBX3Of&l{?M+O6vPN_|Y!cU1s;=oJ! zjmm)y`lb4&tGI;oPsbrXBQU~D7@&(xLjoWsu|5x774*eH)I;p+X?%#+>QAz>^|*`* zw>0HwzNp-gTCyH%tGt-(v{e{fuyLNZ-gu@w-#g59w1Ej5=;ZVn;d;zG;$_%6df`2~ z+7Ynr{IU(kkB|>Xh$HQX#SeR4loXb!GF?Imnzop4N=skJ6#rIk8H|=TQ4Q2?&Glan36_fPixWUOJd~@hnFw|<(K#TS7doH>v0tG;G(*S=Dt9_nymgKRhR7ee# ztdySBqSfKn?*;xc%d~lZ062|NtGsMzZZW}(dM zRbL~KVDXNAt4HC>luiX+Ow3HUDD~HpH#Al9tN&0(&N_}qk*|T?KwVU|Q}xf>(^bz- zlGK2WBIKptg9XYNi`$71?dif z1EH@Q0xL-ZI|@umsr{#Z=>$?faiZk($si4hib2JrHj%$qnk6b0$^8&8*awXrNP&{o zDC?RF&aXh6Tl|B0cuI_cF_JKCUNTd7)UbJ|xnjj~3Axn?a8426eE{0rQYL7cixQmmvQ_{tn-&~+M&L)uaX(nI#ZJ>GKY_i7{L zvbV6=<+xsO!ogv5=^Luka4v?hz%{c6pN z3X*2Z=kBrY*jO&&Omf?tj2q)=RECIUDKkQU%eN>iyOU4KpuGAcHJ3btIA$)`%+=`N zCLjE(2P#ihRYKgKBWXb?qD@Bg#SI2^>Z;2w`Po}@@IgHf+>Yu9BNOXq+wt>{&MRXt zg&`oYdRy_}trB@p<9x6q9n`po)8EjLYGL`s97!=V7z@KI*m0(yXx=CDh+Uv~`*z*L z&d4c0R#`_zSLuqp#V?Kh{%q;m7)MwBO4-Yrs}t&=8MHb3d|NDQj^3`?NZTCNoO66s zqkXq0BRL*c|KK>jvN)&RK{$R{FIgG+dtjnrs9b`hA?|g(!6fRs5OiCSPR+(srNRA= zo|f5Ew3v+0qfn*s`CFtU4EhO~zD#RBAou*|0NZb3#rl2=Sx(};^E!l9Ano4ExNlN@ z%2x)|zT|6CSQ#1x`+&^)n|*_}efne>(xLeuk20EGY!-?T>J+UTSI7!;C%)zgilFOq9BYvZ-f2NAp+N$YD)Y!g)|-ZQI{BSnECsmcp20Sfr(XDL zLgQP4=1c!v0Uz& z+Vi+RFW~<($N@Tj$?#>BpnMWCBwn{iQ&4LI=Q?Zk!+o!(pGf|R^}vv)kD|$)e6>v1 z04}vm*BQ{c!_C_mx=GGk?>j1jARWD~KCt;^ran}teM=-CE+vn47duQxWS)dV60>-~ zKo4blw(#~s8Q`gYv?1#9!q>rwla8bt;)QmywzI(z+X@oRM%pIV`pUqtosZ4;g!x7& zL;%zRRv!`iXM=JV9f_PL0z`*q20D(7_?=jApwoyTX?^=?L+w?f67FmVY0LfkE$p*{ zuD)r;aI8RSncTMsdt^um5DQk(he9tybVW78u<^ej>8l4_&UxW^J)Xc(zWLzr7lQ-?k)W zSn$X$rbAI=CrvNEpAtUuXn;uE4a>Y1iQ5F!Tn4FFnaUg+tl9ap8HQR9+dp7uo6?Qc zsB{du>>w^iH><0e!J_?v@g?a~y+V6c`sxJ~K!dqmnGUNa^t<;Md1Mp@v%PC}g9i36 zhy8=-c4GP!VxPph5ATX>vjo^^EqMJWUPJGuE{t8}`YSxx+enR=0M#exLeQs!tbe1v zKN1AzM``{fD|U<~<#xi{grWc9gh3%}kUx&UwTALsfo#Dbcn-(s=HKI!Bzs0t@kZKy z>9UE$umexBvm|_9CZ6z@mD#`vML>K3VNuABH`?L>aQ!MF=tbmGTU--zze`FhS#l{B zPtZfgBaVL=F!jtdY*4fOUE<1x$t}ZQKnC=~F>uL$qn}W)W&D5vE%vny>{1gbt|9f6 zcvV5l%^KELI#IX|RRofKK5WtqwE%CBLe|SAG(S`kJw$#wIya5HCIKVhP8O}KzxpF}Yp021=Uq=FE@_nATc`3gAwR4tJJ{!5tt zQ+bd9{1pBJ#cwWvj~ZagKR19766t@5lQNXuzB)7**bH(CN(vOwN7e+>?CK71fd26N z;|uWm?A|;W!1vinNf-d?qg2>j6A38$EHG-t17ts$iX^}_(uXRi5O9h70b&~g8=w8# zHUnZljGHQOU|v34I$l`d z+zz#OKHFeT3GAJ`HdlIb$Y zB~8sY=#DYL*;(h7jAw_wWqAN~0eNiZxWsT+vIczt%0l|LL7HB#FfhB7z?>#cLM>Xx z(9^n@I?cYqDA87`%o47G+a|vK0S=8uo|5W>&?!@?jw{<90MfTLgvxTumlb1AGQd#5 zQ!_NE9C8_3p7#IFs;_Ad`KKD=(L=SJzNL47?$k<;iqP@d$tWRgk{k7`ey`J87A8=n z#Fep&IazYG4P#B(O02WT$)RY=gyoq-MJ`fzav%@2q8|x(AltisO7W(ur&HY4GCp9# zijp{xq&H;t25NRCGBIOcz(?3&|G|}oFZnB`VJ+I9wmu$B&#*=x`1w_$iC{~Fii{dFTcQ&6(kUvvS4@~E2ApvKB!~%Wpq|69hvbQZuRAO;L3u8y zBshqtv!m@V_w*}844sGcoqq^(Y+f4zwc*X*RyOScB6fRW>im}Jv9n)}E)}UocNyX& zB9Xt8YX&7XI$b;z2CWMKuyrrrUrnVs+h~?H{hOFh-yrElD*NTpge(&EDJw4m(;JY6 zW!5iIr9he0Uvjs4+JS6Kzt7&JL&-x#6Ge`}E4zfVrS)mWAD$7ZFv1LK=lazQL_1MN7=sjZR zpDqkbzoPO_8A?v=MJsVEbO#dt zPUAjdpcS(^(sdF33(Ynw>)w*(=6>Nq>n>A7Z0kwL31gH3Ee=%gAgttVaU0C9lpLHz z@PNF}%y(x3oaFLyF=}i{0(2;`1pKB?^8R(`ZS6m`WMfc7vo1J&6Ui` zcH^^I9cfd#zNH?PT5tUUKY4%p4x_7oy#qp>?Bp_7uxGntL(}cIwM!muO8c$HZLvh; zYE{Kw|Fe%rsd~Q4X1DnYan4>=*JZ2%LJ?`fGvkhj!bepG$pgKr;@y)%XDJV-wt+42 zK7TWu@Ie&eV`{N{fXtZRquU&m-dI-10U$YoPdd5^N788^br?Q$)Dpo1?qilKzGlU zN*&ongJtd)yNSC?CwE@ayz9Y07@Ee)d(XhuP6$_bJ#ar*5SegK1w61!Pk~G&lbj;VKaHq zG{Atrr&uje>AN6ylq#hznsd3%s^oELV&iDMKo~{u?Hgr}-yh~C_9uazr%9tQdk5Vb z{aDfky*U$U6=o&j6ip~CNu79D^xSHpJX!M_MN>NlT{FHY2H><4qr?!_8g7D-lcyMrow2SwGN#jz*&UyRnT419^n$X=yY`Eh0 zHpCq^N?v}eO}0|fBuS?M=&CrT|086h0{rkEVX3Sv;u6xA(5(r29fdRWK;O50F;@*)9A;tj*F zzhm)C*Ww7+eXl?g1Qyf`Y$Yj z;Uv=#eJl&eTbFoVXis_?mWYZB--Ql#*nnT|cm_KUWnIRx9f`4R<49kT)dw|B{>usXbdp&M3BS^rAdz|t`#uNxVvQ_{4d461BJ~2&*H#^HbF>@ zenXA8Q;qtON#n2EEsXm$Jq75u6y#n~1yH}dM z60q@g4as^sS1aUoh1j|}oiD}0myNL|ImCou%eLqm?`K3*6<1O5D$6iiUrc_hV(Xo( z`5gk4hFr+oYn$~7V|3O)g`?XN%w~Th;r?YX3a^uB@+sv%>WPK7d0+k~IKuhLw~`mG z!W>9YaZSpywLC|*C|{$QEg+`Z<3o9Uf!$-Avw8D8#pO(_mZu2n)Ka*_J!4maayP;0HB^OK=VDyu9s!F(4=S6K>4&xp7 zJc|1Y^zpwY*84<57G4A}149b&T}OG>N!eOd7xSc=^4Fr?G4l-t7RTsUWa=!13*d)9 zB&QY06!DlV0!#BxN8;g~d|E4z=T?bI6Cik3bh@s{U++2kW5yM8!ObXyf%u`e@{)#{ z>032hU1KTa^w6tTo}zwrtle7m4Mq#UjTfk>Cw=&9t$7yI?MDH;V|@Rhf_J!T<@#9%XBOo<*|GU$@VM_T~-cwKBzs^ZC*7HIC?-)rgB3|L-u$ zE86h;Al}}34#J)QeVj)P)Aks&(_k(K2Qq>vea!X|*7ZZ=S5==Dt-`x}^dzYn&d$xWgtTG>!(0w%ak)=)o)$2%D1j0IJDnpgpcH>z&T?!=Mt)pYx@@=Ggx z^wPoYBuv(K`&Qv8-|?h!YUa*lPv;*d+I&bG0F>=mBdFG4p^22?RE8K9)vgGH7qHSl z8_NNY$i$a}`h?kEwgcR7zg!o+fEZ(XL+rt0w*O45ZS@*H@qZbMxt3208iu`%k>KN( z1ryj2Z4QCajJV%FguCH1OoJXJTp4Gw_jIjM-G5ju%o@&DYm$PF3Cgj|PU10F_oc~6 zmK_7OE^gGt@CDFR#k~pt9O1)sC9%T^89lJwa}2(svPq!f-5Z4JmO>fc0R33R!)LtG zemsX;%KD0oPu?@9$&kNNrw5dQvo95E&AX)^IdiAH&W)J((<4SN9hBecuGNrY*^tsU ztFx`ps1(0y+@(-UPpo`Ux6CTGKU7YvJsJ;uBEz{*JmVYP|BJqI4q%y;xY?Xvo-A|+ z_NRtVuYO zb_p5lMqD80*Gj@TXWm(_qk`x(36=Jw%*C&!sVpJ#E)WNqid-bkp#AR1Z(M8(4$Z@= zq|=TE3=W>%0|^ev=5Ih1BnAVnDSZqbgLonn3obbgBK^}A-!=O%>Rk+cz15m4EQUjdjTw$o9_4i6j7?32O4Aq$>C~@2entrRP<%Z-Wr3jdHZAWt#a`#kYK-${`!3 zeclwtJ&3*|-tloizD)f6Kc9B~TS42Q0joY2*IzM#0-q~#eH`H8=N=+1JRsudMkaA` z;P1~pM1-_J%THAV9q{E7gfjep5X1yT|7<6N1<3QMT4n`e!hS5$ulRsXpWkmvB!Eb8 z9~FWYMWEPcU*M|15;&BPlEUQP{Vp#M3@io?42&aXryYhUC7qN550s>G;(#WG{5}-l zS*KP*Y7lx2T=umJC4k@r_;CdS;o^ytYq=a4HwmO7RNKccM#L^&aN@hsm0u}?7G_kU&RV8Swx%HLdLaU1@IdP^3=&>LIwpY_?^e|HJZbOXTM_E zgR?=c`QNGL+l+Plm6p)`VW6DO`h9|n>SnQ@o$op0v41lb?&XpUy~{-K5{{V4=*0CY z%CD%F`A|<&g9?5fpRoAeuvQoXh!_XLU3#~hQc2;+SkfX%6dCw`+XKW#U8bD(3+<$L zs8!qX0I8+(x!7XYalw1s{6nz8n;hjVR-^-hg{HKM$)Oif;VIUG5}9+1MSHAMj0jdv zJQqsiC#WenOEkB>D+raUlv6QshjnOsfhqwb9IJ(>px*&UPKEZ_`le~q@FY3C2a)7b zWYkDfIm9VmJhrxj{UZ^k(+{FLyxz~OvR*AEq!Du1yG6rTLWse8QB$74$0(cnm9y=J zZ%(peI@iYVvpto8v@>>TJ3Sdi!pj$pDj7Y+7PvB~;J6}n`~<(lI#cKDm8qLEl68rp zEnmXbK`h)=JKW^QJSN#Z9W6N3a5l~|0f)UZB&3b4C&?j*Ys`mxPx!iKPYT0ySHaTd zuHR3}#r@^dES1)vSQXccHUk_MUtp1 z7wG$~U0JsfL%L7NI}6cU%!E7(of4f_$cQ%S`?Se5B2DxDTjn3h94ISt2BT57w_8T+B)BD86)#Ti5A526)vP*`BI#=`y>RpyL@+i(FfFv&Y&xrlT?}4`0`t!ID#Vsg zNmNfJ%4I?&(i{?z7j9qu1KX-4Bugx*+~$pu&lneM?=pX36gSRY;&=eqovw%*@|3M) ztaN`23pvHF-y**~O60*p@wvuQ&jeGg&VnSDoS<9Jhg?#7b+%z39KU}p1q;=r%10+0 zMm2-wMOU@|YA^m)x%-v}eGKyLzdP0Ht*xy(*1mI@FQ_js{`KD)WVMoKd3B>|%MY_N z#LS45TZ!c_JhkyXwyB?51?e-TLD;pYnXHkDojyj&1@zyt9?v`=vFNeJ(yT=4Ssw^H z$Yy2=|Jff99h_H5{xdLW4ZS7)P{M+w9N#LQ#E2)986TqW*Bg5Nbew_dGW@si^}*PR z7^?ok@`xCscvjv8zifnd_Ij(6_F%b`e(dWG8nLb}cwteto!D2Dla~DqL!k-)r+Slo zgr%sO*Ypgep`i*~oDaim>++vol!s9mZ%zqciV?!jrG1bWg+8sDt~Som9p~2_*O6cz z>B{nv{)XRorrDECDn<&n;7bLsR_GdOm2&*g^A+a4-gk%c)qiW|FVX*&hyR<8s`?fDI50{&V&niAJM3{t5<$zy}7#@-h2<{eN}S9x@J;6haRm9LSx;HohZPB3NGv zf{I=pVPwus9UT=l@_T3?U2eRDiMS{Qi@ix7$%XR3FAe+BpJOU)i%lBpg6O|AK+2Yy zmYUX$m6eT+7Uh*2m0$nnIBsQ-jpX{g=S*MT!XIwDT<|@vJ5KvtL`)NTpCS9=oUX0> zv`b^8ZP_74AL=WGB>=^#wXmURC8ftoH^`>WW0+gX1okuen|hF8N@NMyB_-02`eUh6 z)Y0wtkSL9enb~a&{8XjlCC0ak2u5R%_W`iwiI)+h=wgHg!>UlBTxJsJ;%UxMmzcM1 z;~5Zt;m?*9-7DRX7iXR$sZpX#0AjvA7;)m-$OH*RA&{Yg!-M*b45Vp0n(Up)REXq6 zR75laO2v6qu;7E1lwHYDcT$51^z{pSOvp9SuFV>VvlC|p;YFC!6ZQ{AZ~Nk!ToCzI z`>?q(ITB%-8bu7Oncd=p5`fF|D3_AKOQSQ?n6d=e8Vo|knpAPW`tkFVp-4-Il-y+8 zei*2*c1%Su^Mk_dj4Jw3)t!Qa;3BcOS^F_X6dYdt-BSQdfV9@yCfKM_KmwDD?{otr zN`l+`RBmSUPu@$k!eObRZAXf4beZIZ*)D?a3&%d)xuTh&UGJm44ovbb?e870U<>%$`0ofzivpO6%fS0OC1lqDl5he5%CmH!p zGb*L)OM{Nh>T0x(NAPN>WkRtZgD~k)VbcuSDiBxH!c5S9z|)z%IkBZ;z_}Fl!K(Dx z(T)tYFs|bu6%dwoV3GUR8nLDtm>Z8Rji3=)}zOBVd|Y=Amt>@1Er4 z%m~D(jAwhWK+Lp?2iR}}Z<+0rX-RVq1~)2ARf2M%k5krduq%HU%L-!*h^YK+?xb61 z*PgwNsBj&97l`Gm)`I4G{XnN(s>ExO(P|qTGBedXkRpd3U3SOK&~!Ds)<&`?bd6o! zxA7EyWryckfodXe;?cQmqYv$JvvRgE%?rv~Yj90V4%m1~5A&p34|!Sn9Yda=Ez5}h zj19sMQEXd}fL^AW|2FR12gtkok#~m|C@**tX8x8O6aqENJsV+*b~FE^QLv-e_aLKl zR$JqWd`xCP^+Iub`UX2Zpy&R-I zQWQXNSbVy7JzxpE--Q)TD_V#)%`c!oTW?it@}BEctg~*ivaEKJ7qbe$`p06XZ_3)j zUmWIm2xx?kPg*0Y~#a!HKd0XogR{jMhG~y*Mh-h@BvdK(Hwa(iomP3saO`z$D z#3!Hf*?asO`(XU)>gpW%P%8^KxF=||Zye&#I)c3ks$fTX<=B74k1 zAPPSU8BM|vZ)IeQ1xF!xyO(FDq-Cmo;_%}+J!lJNXkFaFy`z8}brDRbgMVbL5sIh( zY;vpTQs%X{FXPEjv|8CS(h;{$cJc6!f;}%K<1V-1qFT?wV?U9@{yW;c)hSzrtRPH-#7j^ILHcC`@+0Ms|Q_{@ZNWKeeatF%g1c-R0rc z2{V85g8Dh*7iXN1CdyPSY0^O|iTqR7p{a=0v!`yX*{OYFM&Zm07I+jXB2ca5Y$vs-h0ge>v zJ?l7wbwz@(HfdTL*FsfYOFEu2jZK%0GOx#f9O;t9wu)pjQg@u{MD~u+O_*78U?sI9FGKopF z(<^a>wD)sH!E>$cFn1tFOyxOsz`|@gm&=4)x6F9{^t@6+kveOZiBY7Z*gK zftG3J*LVheKyT@w7WYzq8h4|f=@2ZJvV5aNy}IE(00)0S4{+vLvY5~1L^zD@X-h4Q zNp>eO&!2S5!(eY>J(5YAW;*L-uL_Ja3V4`A47*AfceD0(s|2NB)?~}!gPO`Ow}05D zHq7LU+AsLv{bPb(?lY?ukrHn8K0m`NIQz?qRT|;!@=F+XoYrE_*^j>LFz~#>@nP=4 zj&saJiiWl=mL63^+>}~Kidn-4v9h5={inOynRTfPL!&t67Dkkbd}tpNNqLxuoBUb!c8h)DPs5csKLL6AeU8@Vfj@G;so;W2{+kBiq6D%Z4EBs0yfM_g2Yl~N9j^{ck@m# z3tvP`ZGI|4DM&k&({OT99a?0K>e^$CXMgmWljHn^#XV5yNaFmJM@vUTTpAHvk$-+~ z2CYwLoP?S@`Lb=(G3IlA)wQDXA4Pp_V*A*Un%?klT!+>Q#G<4G{(oE|Yy!y5E^3Zt z+r~|lm3gOZNRrc($JylXj3X|HWhwdMub}=4o0@RTi_R(m6L!qwFD8(M*Jz)=SsyLa zAh?hfp=5*Z(@>C9P_qo?Wg}cpEHsM2DZJ1B)kkCanatX(4t)9TX|Bp{`41A)TbojH zbUVGKpa)UCC8JA!mO}(jiHz*WK5+ygCa2JL-AXN=!7SnGcoSYY8MzdmlN>9%;yz(Z z7;@{m>95nsM)wo2a)rVGj;tB###c#?-}%GBy*Im{tR1z=*bTxMN56h&emF^+_N}M>TUq^~e&pGbm zF+ZVER$?){bchHbV`Yq|X>ej(#5A&;h+%eqwQ~4#rnUY%0`pB+^i?~n;%?`(N|-sj z#N@gNv@cC_Vv5;GhQy}Z-r82E?JADJP%qGYjCBW>&?jqy%z_!5kZCA+OoP$?m;7z4 zP*?K~_ibo&jsFM7DR)E6Solx?aj~vS-=fp*Z=)IRX!GvECA#OV5~#|g<}J-T=(k0B zTM&AHj}$_i>@jFKUmz@jFfQ!fqY8R}uiJ7K*~1Csb&I zbkzgNs@`k%&0cb{y(tyb{O`_p=DxCp~B z6`=(?`UniuC`#|Tf3Z(RqSw?EcCvKcpuIuo*wXOAimsJ%(RyQU<7Kt1Nw)<{JB}TxC@QDShyq{zSmqwj?-+TwkX|7JL#5bQ>CU8!c=>dW7BK3@^W< zx2l*FXD!vT!PcM@NefwO=tw(@S>Y8FlgAHQKK4fr;y6DVP)O3@*go>a>{a z9Ze^Ed}>vUPK`ABhjT>&^pT~gDPyk)TCGQm#=(5xJ95p0dB(u}I3>!928rhL0|%A_ zgNoSlQmM1Q#hZr&pQc-?B8X-msQIhQ8irEE{+faCTG&0<(OI=kxawzW)SJ-67aq7` z77UCuvY64ns_3RW;7~Etk41(5UIk})3$JSilBgMIG1n>!^3itES+4iBekNg)SeW0G z*R>~7m3Q|>P81644PMrHIQnPomVj{1GKpjxhlNIY zV^-rTUCOkJRwsj+cb%>i!LbO!D#NOgc({$W+J7?}?!g}3^96XfLYk5C$t{_VDjp8* zmA7-V2)Cipp+gyg>BjA}-MOJJ^qMs=k+}Xl<;O&eQ*}lQ4~-~nG!(Hkv*Ix=Fw{(C zGUUR630eND?#$#8ya1ZjW5zKdm==(=6yT?r9ah>R%Y05lvMmeY6!&4K;-SaGrtF0W z>TwEC8lXNVYOVfZhfcOhDUfe=zdBjGZ0OH)DV)dTI>$EM7@c}4mDS8278~_OYbHHd zOKjK$wzBQd=LfI(Wwm*am_M#oTG+3u6eFH2Li}Mk2bMB+^MQJ=9J2o!Lw`4}dSg6@ zqlxiyN1#)DVbby_*q5h`slCCbjF}&UlYA`bsPGb?NIdT~^1JL^i8(%3xvrN?;0_79 zCx!=N_f1?GQi*=`H82?&ofw(_dyc@rDU6o#K-A z%gVYNKC|P&{5LfU^mf+40&Jq6F;=vC9(bvJK-y4I=^+xCQMJu}!ML_SIWkrmd$Tdo zG>u8S!u<5nQ&P2})7&qAmB@0=tiGMtsG#YHwN6}Nh%$iaFGS3A)ZKf@`9k4nzU0@J zS`neXwhs~9BO>BVu4`Z33VV~LM;&^t@8fxZrCbgx^Li!C1~7=XL*seYgo)TitcF$a zwN&D@z8W~@s~fd`$-sHskooI2^@9M8EA;mIyQ6zApL7qnm39}At~Yu+dh!E z-P$94-Juw}1}b4m6Wb;OGyd9UgX1u9LCTPDg00bvv?Lgc_F~w3xzEUf%sXr-Q1)xX ztEoOI$=)sN|5fzr;Pk>b)2C~!if}7tU&ip`5_yI}V>FyI0Xlr#b5w4b)AJ0~clw=^ zzz~nCtUCY8I^~*tg59vZJW1D{H|5N1oxe^+Ny<}Wf=rDhOl)`t+9h)=zMXS-Y)T%t z_SVKKJ!p)7m)0g^R2+LBJ+7sD46pG1jn$ycp^27kyJw#cet{r#y&dvB8Hcl;I2nWo z3M7F*oliK1)6LElN@)Zmn@}-Qt2(bKn6Iph|NXaZd}D1J4Y}T(W5U0ghHlc2&&||m%J7LsY73+0 zX`=Hfq{Q*d`(#ur#>#qTlgMk_pWl#Awj5v3L6{QNIp&bG>LawH!*oeHTQzc~|HIT* zM@8X$Z>!Y8(k&_7C5?o1Nq2WkcP`ysOLrsPT@upW-5r8}Z+l`Q|Q*H+s z@(n_CaF^UGBSyoRNy|PMshxXfWi#p1CvQif^~l7nyUu9J9soH!lMA#nvkt3$Ka4 z;trwj*IQ+Yq^kYq;eEC|dj7UFVM#Qq8^OZ5Tys00M~jp@oZ%w?vUV&iWRTKf)<15W z`>w~JH3n*xLME6oUPVq+a=eD`aEcEwZ^?Hwt&i_N#a|c|N$spOJ%e&FK)g1?5nFy* zsffx98XK^2>a$ZphDTf?_3$p6KbfJu{_VJaSU7X7L%Xqeyf@lMu>$ZBh-yM|i2b}| zeJpI2HFk@D?=O1#o|gW{uP85 zlimU%_QMC;J?V{wxnj;`$j*{PiyrRQ? zYDTZxq-_r>zv37631o`xbGqor}wIik(o^B3flPhhHUugHmy4$oB&2^Hn zIihi!s1-%)5bb**kyj8=pW2c5qU?o!$ZrRbP-4g$t#4H+!fNrjc$20t+^mq7PQ}lF z3?m=mwQ$?Am8%be6 zu;(7;z;~gTbzr;8>iEkRdrJPA4I!nFZ8SruZ!DFqH$#SOj0ewzLoxSb0V%6UzbRZ4 z$3-5?KA%(kUp^jDs$^Ruu912LXNQ`kzIdG+#=X@^L!W0A3a1N0+WEP!$k!%s$?3=I z*pW&!sq7E4M`h9#f|Z_(&r%h8fi9t*Fweg8*Wa@~{?u^z6RrJ=V`dKNZvG1QXx*c2 zd~@Bz5^90S=9(sR8Bg7qa(0jRWWdxhyw%^6=sTzMY|<)g%?humPCp-0>ln+ir4Gn@ z_itxwu;$-Rei-Pd0 zsJ>frF-n&J(LmwMF(W-^|$Fp}&ZGy>VG%woMIF zT3FqO^JsnezlGEoQfjEIu0Ov=Kp~qSOfo(nDhsYzKbkYm3r=Guffj zdO=`AIi|ZZtUywJ3auS_lsLCcH#tv&J6mDb=r7^0@TCX8I_u0S6J#|uaks4yZ7I6H zjb<1lb6q496_ht+M4IcuI3U|3eT>ujr3S>a{sF<%SKU&4+ofQye!hiynXR%_f~!tq6k)AJy!963$PAk}CNnri!4P2p0}+vkow^E(SiB zIhC7NeF-q@VS*(^o5U;>GjJ7UiF*2Zyp?KUKuKDn@Lo3U*_PU!#anC1I4#7=EW zl->U%kREjF{;i<&ooHC@IIs|#XS zIi;!0S2tBmTzt<)AeuXqi7afb%*n+`;Lz10VIQT_tE1Z)Lj)Qfbo_!weUfV{iQR*N z;c>XKW}eJ_C%gOCB0Jl|qqGVC+IX}MqfV6laPx_ksPF={QJ>AVQ(Rwi;Y+GSkgQ1O z#@d}0(nH_p%Gx`}=faChxAON#8GT|Be!Yo-8j7-T&h-F}xrQWP8fUk>;$XV=*r(c0#;uyh7mtNoOk>FlUo1&t@)~% zW5CtpU#YdiiyxUf%rGR%=@l5ZCP^KMrG3@Qqj3U#$rMgM;%!Yxp3$j~KhH&87Lr_+ zvO1!x_iMBwY>US5Yrri`00dMp=JxT}r(Fy-g?n_Cum^Ap-^U+|FWb-}z#|KLw7Bc?XM5YPeDk}v za8rcqM#Y5X(%13x;8x+aBQ8{wY*~WPl%Fa=qI@?og|aziRj3q~YY`a;;MJC=md;+e z*Q*(j=b>FkxAKj?Qk)A%K81tzLGuV2*9HJ|*2Kho+J+SDW=|!Xem+Y!)R$VJR zpQq|l_12KCf0ubolpHR7&4*t}HflBdjm99WIjK+i4uhUf7E4>{l=dLZFK^ZESe6rn zb4A3sJ=W`61Dq3mf5$kw>C@d8ZGg}PyL(>YCBJ67v7hboZR%oKPH)=fv;5+%Z4R26 z#m||UP^w}yFk!$wZbtCttR9fy=d+y-lyiREtq07QS7NZBxW(j`tn77rRgb|sI3rpC zQ}JF2D1rwLZx)Zm*Zh3k-Pzz3joAFjWr7_~%RQQ?vN?-HG>f{De zTn)@$n^Fwn4xG<@37I(}KpWxdIu5+v0m0=?RBwMv-(aQi)kEPNcO)-*9;JgSu1&~n zA55)0Uei05%D7CgQa%@-c%kqllQXp)(7_c(3&nM^?a#Nc-5yKtlz#>+j}RP*4t0JT zM@JqJ{cX5ap-n#V=8rI+M(qADVv47N4>kX4!IQgK-0owdp&ElnS_L;ZNm&sCH_JTE z`cRP)oEx0oae7T`Lg#~+fA|R`HnYQ(n$`V{C-CnLA$ZwU;ubSs#}=7Df2+Ho||pIe~Z31Ig(NHoG~!NWKP>5 zbTD0>(efO;KWWPi^324Zxu6!Ym8W|4%m0~PpZOwjHkM_spP|-@ZW6?bMk7P2+ad!29>`o6K|C#jHn;;LY#lHFe9w-Y&Wyu z>CK=G1|-x7$dqAGyWhXMVvSr|1ML*l?}J} ztF%VEVwH*_w_^2o7v7U0Tj2P|n%@`arDLpD@NL0r+X$n7vze#jkq%{zg6DL4+(rlo z4QI!ZA~IKGq2m6>+fQ6$I#jPShj-QU$g*UUf zdt07>m(J_MURm?&rd$a>UHzAw?f2hT@-&>hs^dr~s&)x`Y8cJGZp*_~ckkznZRoom z2sm4OoUu8DpN_9rcR_#W*lfIf*aOnNx_H3pAG*@|qc*C_T0S1Dv9CfuSt4`xJ(WeL zZ~3r;)6sm`v(w{z8hq0ge4O8N2Kmel$;9a~>=!LoB|ES#SEV(7+)<-z{&=E>!+tIr z;DvAcuB`&y;#&)W|p)(9!r0BeDHky{yAwrs3qf_ zH{tK5Dy7+gA;k^(4Mh~A-Pix2R(lJqU`mJiFD*?yALa%U3@2L%Ge>7!V``kL45w9U>!o z4)b3EUeXmz9i+R|EzA(43G**ZFvRGL2bd5@6U8gcKBNih1MDV5;RQ78)4v+<85}JC zzmPr#0BkNKMsN}twjClHjRxBYDTrahQbEkI#ew|@sR{oGdk0Y*Km-d1$p?%igH3}p zQB%SmK?)c&usx8%JRR&5q)^HTn~(T!qOxCL7aySVceHhfHG+n07#BlL$I}}f zCkO3+iIU86ZySc{1B;0DZyrPmuzL^{Fksl9kQE<$w%~R<>AQFM-@u>#!VrUfG2mdqbo`tjo1!jZ2T1=3 zt6;#TK!PzZ2;jIN1sX~?d5GDb)Nq@!|73Jr;odSp-wKlMaBoZ*{~bj-@T3?g5||kT z2U&W45FGi(e=^1?aDxy_8Pedc{#ATRhnoaICXJuOWncX6-8-oFV362bb|^$al_)1N z_(F&i0RCD4R|AnV;G+mN|M2deEHv0I1&$sJ65@nyVkv}kgP2ub4A&1C(xD!%_+PjZ z7{C3$k&rv!-b02)>xBFJuK}?O?%|&afNr=8NSD8(aB`6Sl$wLXgG|YE9?lFh?THPz zB8Yz1Z8#95>3#>!5|V*x{2Q(iLemF?1MngJQz(TAh=cT6BLoy8K#a}|{QI!*_7Qx9 z|8GaTRXE|nx>B6TO#{?`t$)NOO{EL~AmlJMvHI_S}=eCV!K8P02k%on2yDO zZb%J#DFBkJ+w`RzFb2W+)OKl4-FV79P^Jk~8TIIG%Df{&PR-b-ag!^_IbvbH)5OD2Gaqla-8T zO%t2UT&#?3>a5q^o}kCJr_Pb}r>pU^jSpOYNz|68lc=+3LMgeR9_(79fqKz_y@c96 zM^?fBch*e%pz4pkYem+>M8RLBPfCITefu>0gI|76*YkMjfSC%u$%*BX$Vc!T;&B|h zLF0d1PSTCg<2T<$nj&$VN4Mz_QFu1@=o#1Et+Za&2p)>OF`)IVtQYH=z59>#*s-S8%|hFPK;3=>4UkIr&Pg1KI94&hQ{Ya3>GP^ z>cddNR8c#jND3w6i7umuh7ZJge~t$uPaJrb>4z5DCGc%=2eiEvz6g!%yTe$XWC*R z{!6FQNXXfy*Y58V4a=|Vh23C5lxi@|m<&N4

    #n^{V)o z2FZ)85J4if9CUvzab!y0k}Io==4n^HgTXS4{V;O|=Zk zId#XT$q&e;Eq!(V6rv|WudG@G9GNP0*GB<173ceCb@h&ff4kq}z-!_PExX>%u$dSG ztt}3%SdXRx-Q6>6mlJb>$J^?5>WbLG6ScVB;^R1(1GQB|xm!uf0Ie+zy%8aGD+qUn zL~Xy7z_`ya%E>yIzBQ75NyBFtJA}R^58tg=iGM>d9Dnzt`{+#VQ!dg0zUcXSDfbMQ zz^mpFq~4l^=36`|r(aORxC$04!m}C7Ur;3i1VOp2t~~px%KH|H7gVP*0^;b(GBly$ z$d{taF&*@nDnif%*|TnQ|4>Vn{KlJ6K(;z;+>l91Hu$SoLnn)FMP@#>M!jeeORj=d zNCo#v!2Sk8F88p=Bcb;K*y{R?Co|7$s&NhXq&3zitR9>|D0da6^fx}|9Q5!^z^PfB z12(DiT2Yb}%JP@fhdcUiYjwP-ONi$kB(=wS+GhSb8lTvqSYO8&==F#O@1BA|DvEUo z6V;0b-L)~d!Q)Prs&nqXnO`|Upz9dFi`4j4RT{j&oyT`;jezbZV10Jn_Fqd7Z{kKH zm1wbo(2-Fa5jZR%IVq#mSU>q)7`0aeE4HVn^r6g=DRn#`E!sy7#)KMkTx<+sn@TV# z+FNe5j~18RPMpz~$>7dFpcgU;qM?4ZSO?EZS3-8Gor;hni~J$O;zj%1AgJnqpT%34 zV#$qY%GNu*MKV|9a z6rodo1zS+lspGl?i_qn>fTbnI2tR?V@(e%!vSvyycV;k;#1{d30fEb{87zx(}I zdhb5U8^eWk$IzzIEVTU%^#8L3Vp@yaW56vwba*1r|AUPB*zr{U^N=w3@M8aSr%MF! zn4$j%0jx>l4deaK7AP>qJN%zVlon=%SNp$3+}3z4@c$+AM+DdwCL;p@C6oMLnp#K$ z3HoQM9r{<`}Q}FfiMm#YJ1qiTY9c06o(X==m;k8`+Quz)lREnBe~ty_cX43XQe-H>bq z;la1ff|*IcbySW-V*$%tH%{#T&aWJ*b;JD~V|NaM$|FaLx2dG0r_}8uQR-jzY*Z+8 zd{<1HRvlk?$96bC8IL>f9nCQinKc*gUqf6h7G;}}pjb?nTUY=9QUT}F_3~k*9IMft zR#;&YndY7Ut)^N@wS$~U+rT!NN}Kc`)EmBb``b7!r#8A(C#%Ac00z8KsJ}is+}E+c z)(bom=Z}=3@64S6iA6HD7nO~M)OlhmHBa#jH_r4BNI-V0RvDt?7Hjj$L=y>oRPy1X zR*dCZms6E!kbX7bsC3zi)JtL&YJ6!3Cv{Yfv8uAEvg}AWqu1mpA=ox_qMT0V+Lr0S z4I#Ckyd~M13z4==lCJU@CsoIo3|CqEFk0EOI8=?rPD|QFH%O;dXdpz{$}SC?tvpbe zN6OQ(DKyH&9}hPRi-P-;0p9wkab>STQ@(mZk>1lJ>lO!4q@oaP%dK5u*oBs13sF%N z5pJvDm6W~72`pN6M-Ad?27xbzFHrll>S?19;xY;Ec$rg&Sx{oo9!aSy>~DnBIuPzNKs2~Q)ZV!MOMeI zO@F`-FCWB*k57mzeUf#ajvo^702z^BY4&H<&}2GtNQ=E1<{vW!97Tg- z>o62jRg-ULPt>?w|???64UiVO_GYv|XlUMWTvet9ePvm3?Iy&g{*- zusWF}cg{iM&V7Yl-S+-=n2*NSSJuG%_9ZZON23sE zcZj|B4L9UiwRP6YYFiz`Fia^x=5G%Ch!cE;2^7Oq#zqb4zT*$3`)Fld4#-*JBV1LP>W5{yc zU5PF_bDXpap=k{&ImzWIi#vN%@ABQ~J}z2q&+5bnt|B20lIjO5@tCzIZ=nQKt1<4O zj+4R7Oxznc9N?rMk@aVhV%#W=EXz|HY;7)Muq{Vh zO51Km>dTe~_AnMWXu6C50=kq=!RpzxkfwNaXc`pFbL=6HS+G+chG7H|SbhD|WojCz zwqwXuzwHYM=BFfy0gsY~m{MIv3I6)CHXvFQPyMbe8sZLYp2Wm?weU4m$W+KMav|D} zFTC;hcq>T_YWT|sj-*$}Q914VIXB}zY#?<6THzrFks%UH*pt2hZ)J)>GUnrk#0i5s zo)j@cLUTOmR~+N(q&S)9~2}{u(Fp za-aFOcl%E9V4MipS&AF;a~CWbo0IK19l=|hOv{5cRiVpL{JW=tJ}<*i@QHE z3F&DhO!*r6)Hujnh@<&NUTk%@(;2{c_=v;I>#4s1j7*yPYC9@Ffg%Ix1fZytJ)F71}T@Dg5%%7Ltvb@p&J| z?E&2k*v%Wq|L(`N++=lb^j@EDKbdOGDvjCR%yql(xg|7r&NK4cs*Hh=;i=~IPT&EH}sxv7rXZn z4Js>ip|D#}@JHFp;}ojOxEu)O;lWPJ6MF&BOR(RDx#5xRssjwGzR&Z-sr1R~fc|vb z_d-Hr$cLM{_$o6i`iLB&G+U9%9=MiNy-ca~RBhL1|Hr}h&~l0a_~&CVAZ zK3dGcqxHftQ>>t`u1RtZ=bW+uS_7#|FvzE>a8nTrFdsEKln(tsS=XjINkg(Xm<9oa zS{0@r3LS{S#0zh;$e1OQa=Cyhn}ii(24oJM!yM&GGCnnK!>R=A{rHagT+2i^ycw|o*W$l2_y;b zrF`s1f1o&m=qnnp)YgqM_U~eiITGH9U(Fm`qmzer=|S%vNY^LyO?fSIz{>y-$g@9? zP&Hv5e1yb8gycZ)P@N;K2T0Telw^4Z?|(j?Ar2nd^xq{y5$*`+P?Cnwj#ka_&3mfn z8{T)ItR_kpTEK(4k8E=bs7`V&Z^#%glHXX-$KS{7{K5MiW&5O3@k^P~r2o|KbQ%VF z>dFVG%i*aZ7NA46#Q(+1_z!}kt-<^FuSTM-$E*6k{u>x5)|cTA_PULp zRL;teBYyPvq)>&Nu3um&j+;b2zoxX5Mx3 zakA-6$nX3n40JALC*Ty1D<&z7g&eTfyqEHv-kjjjgaD}FJEIuqES@Y0w#I4}Iz(CE z=#l|);@ z8P~~dngkFmOpL%yMjNFDl4LU~wkmAYq-bYuWwdBiAxT|NCD0oD{RsNccnyjMbb{vQ@-)%slkhPiTn&r%9Au3pbVWR;}njj)RqtF!JPv)oj-qN}F#M zpsfoLmN!HX(`kdz@7`d6YT!c}uN-c(K#h-7QMARl_lrEzAFoI%W2K&zHEvI6a5 zm>|H@{8?ewCyEw6+fcZec76@LOgnw3?G2E4tCSq8Q?={LvW@+!xl}GO_on4*R+NWH zT~2M0W*zQ=ZDyW^2|B^k!)lu9DPLq*dglnwV=`d`KTT6zQ!}H?PtTH266lK}*Opm* zqBN>JOZs@6-p+PFbvo4aaUo@5j~X+eFRO*3hei$lK9}YSOxg*C4!mt``H9`7LJttI z#!UQd1p0*0V-)7pb#Lm%DH4&<+!m*w+dAW+)}9%fE0Q4Jz(v=I<3#35tXi+-FOeg> zlCo~V#tG`7d#$Kpv>Y3nomGUhr!c}8mFD}iE51nh3b@0Hg{ri=Vo9=^cX-CF=GhETmAhP$)x{qxDkn#Y?kM$&Z3oOS+y3({ zp+I!s6H)Tf=##in3IInn*0nD6D(`6A1GziESZ_2Qup1_ov7)F~m%=4fzk#+S>MUyh z+sqw{BtY(-036V413g`MwAor;(r_G*i4|LqOs>+^6?^_yy@?lc5yH8rfMQDC`>!RV zQc~ zpAZZ?1X|jTM|p;u_NF=#yXPlu)%;JRGHK7%6E3ZsH&`NZYU++3C-n^Apwkp|M9Vwn z2p+^GTlXmm1b7f#w6cV}hB&Z+s{;vOQ*n zvg-PD#fD6J(k!gxT(%CF^MuKm7h2L*=D!Txpt~iWAxE%o7ju?-&B=w6QiYnFxsp3( zj+66ssySwuv8Yq>Q=iQ;XzV9McW879I=A}N<~>EHzgXE+TceK_^qT*L>bS90_V{)s zc4SDpZ2Q3Z{5tzY;Mq}#xQ^?SCPk8+`*H~WtxR|q+vm!oOQAtH<5?{3pm zumR!20B7g0!9VtydP`^=qX$uM19x`AM0o#zEZR{GOr~lwy3Fk4ET(_586lPjM!FO! z4(c1HTm@?u}22-AH}y1+<^)kzm7F(wiU&#WZO7<^+F@HoqDxQ#rO6} zQT17Un=sd^Mb=}xreg9Wah6Ep+?Hu-MI~a7T3%k-bAAKBF?gXrJuqL`@hC5-1os`u zZckdt&cuR!?*1od-1=9R1W)(D9nY{k7U#_~y&e?-_@KZx0!emP(*xL`lql^$aa5e~ zUE<54u&iLTT(Q_5c_}llO$sL7h*;mr(AkVwpSk6mv*V3s>K7d&Jif#b(71HkpgN+_ zrJ-mV98nyA&r(;W7=rjH_;8xs-4fZ9p)C#JXn(`UPLw#Wp*0PI81aM^s(~5R`Ls`m z!HK}i0XS}&=4qd#H9bxM;)Ex355j3P*l4q#$Ttj!0Uje_Jeo?K#w5)do+ z1}xF`bs7ez8;*gv=g8ORz(1xr4L7Gq78yw8RG1Ff`~IdH&(2Rs61n@88uN*!rH4P%_x%7kQ{f+ATQY16cCs+OO$V@mMc~{Xm;aMtaF$Bu?^xt%}z_WDbBY z9&vc3UW9T`bOhTtsNil5zZDGBie>NwgOz@*)}I_9;bsmO?{3EYeHygtiRTT;67NhyFfyt_gK9-Wo8)TT;<;Y+K=mJ>+!C1`g ztW3=#ze+KKN;@G(|H~*v^f-naE1b4|HKc4jIM;}gNB23POPR-Sv6&DvEfCG zXG%Rm%E0tY*?n}<^)JCxKET0|Ik_s@Rxo>*7Nm66Z^ zCz|zhd!z*1UZld_q{3b~6N3Z=FTQUJ!-6;6V@XzEII7noy2&W$!ioLpPbF$sroSgF^EAO6_Bz5NpU^!Tk8z_D-7Vm6p9&U#~ z5e@Eu6E0*-(1W*;p!1J+(|eG4hWBBuNiVGjQHF-Zd$L4Ob0vT5O5Vrt^<*}Psc8&h zXHrr>n)F|L-}RxwkEq_q`nlwLqd4Oz@A}>VSch46O_WILXR^bI-C0aJG8+4Hggy&Q z?XH}UnEJZF1`Z38l3#JYWw>MBFvUK*z9ndYe+G04^7_WW(!Z(Bk{%pCJwvYuP#*~j zj(tfo7MzYM7!)3iV2bF>mRQRRAHV6xd=&7E1*FoAVo?%G++ZE{QkXRqGsUR0nlsnE z&0Xz*hwcLR5cX!${#5+&9|Zp%1NZHV7!QKUucn}^y-TOW=Kg=*q$8;xfc9@uUo-@e z{`j9iaxx6){zn-u9|NGl{O5PHPXYG+jpWV%)c(PYua*E6|6s;hD**FwnJ6 z)jojfUqIk7pz-5>_R7o&;QN2}O5rJB<-eIs@5}!U$Xo%q{^bbZ8vyaYtRe3a!1^!l z^b;WQUtFVK0Kh*qwEsIG=ifO5(7==b@tEKGM>?wi@|#~_{>M+QL*hm3U_$_o{JY>0 z30UEyv}QRk=xC&Xq$qWyzpqf zxQVS{e|`0B54W6<5-&d_a;(vZ-bg7>*diRw*gZ z|1MTXUE3}tPw^uo#d7O+*QMy<4z9{)JJXQGHPCniP)P?LT!W)dCT`+*k<(u%bSi;oz_E!WI8L))y4fp?5px@Z{4NH*HycVTZn-q13|t@rUYpg% zx#Q%;0ziXNfBUjsbGtHur89|^LsUnxXv$Yj8;Kb5{j&^Uea30MH(G5J*{Z{R(g*98 zNllaSD^ffV3T^3S;JmN7Vd>J?#Rer5DE9N?vx-{7xHZZI`1U}E7+_$6SPT0LPytBts2#I zHb|wFMJyuLauEI<&NuwSl&^Mw(sQ8GJ5@#{ky!A)ixlI=3vuYZ>kX`MHaHlq)s}0y zwuU3&nX;3|zA#^c6Qsn&_H4o=|48GTV})Xl*>Poz>r|T%W?;L`fTrN*Lr#~24)eg~lDW`5~I2lJ!=}B{^C8B__YUCT38&sk>7 zmKOo@40`$+yL$EPHD7dMmogIC+2HGxGiz0Ol_Ntw@MEuM>vQ`#VJpwjV?{ge^J)ax z;a3!;z%gTi=b%1v5t&W#Od_~$o^il0n&``l`|-9KW~rQegoj-3=C7ieQB)WCU5~t# z<6*9E;GPdCDP=@A&cYHq`ex;g3;0HN$_?^dD>f<85g1m$2I%RqF)93jlTW2%xLEy~ zfE#tkknmdaQ*>olk8p*)ljN@!{PtQ®pBu^Z+MCf4Sxg`=#ct0UJSwo`@ff=8>Y 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%0DkyX{# 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]?iWSdh+MR4-m2_rbUty?k^txfkz{Wo)P*;_+%zk^s$0GBuy zj!Nt8zEzU$^~s>?$RI&j0)L_^kqOEJBqf6AmyoE@ncg`Z<20^(eG@Z*BCA<~ zJ{GkX=(`dY`Q3cexlvJ|L9EeSqrsm%M&*h=+Tnvs1|CX=1uI?J3fVXW#XS#2Dt;zW zfG9zMyRfJkMF}Ec6s^MBBW{Dv)9X0w(h$^?1p~hN*-?CfkKU$`tc7)*S$I2Tdjup0 zWZU50ZMM`^a%57Eumo(9?z%Qr!_Zh=f@!S*tU5F{{l;7~i4G?*Z95`vniS$qz+;9{paM0C)|VzfvJ>z!wrX~cD9H^HnK+jc1sPky}vDHlZvb$SW6{o>CBOT zP3@?lYn5k^7KBtqfxnJ_w*%eijB`<}9Fr(t#B)u=^RXyUi;R66rWqY~PikoByh-Jv z%iDpHAhz`?eJz6BnEQi>J1=XE6y1SA@ztA2*=2-!xqq)pjBV7vMy7+Lafq+kzkMa? z_y%z_*WuU0=xz8UVfCb^KmLZNLtc?qCOr=AWb(IXoR@0LH428QZK-Pt`b11@IC&Se z`WyU;`&bwtTzpcKi6P$yaS$hszN&*#=HA%Od9MHZ-*Ez4T<16XTY=(0QTikKFdMs=ClIlpe9@QJ7nmkBo(ufK3wsmM>`M$!re=BwVtZgh`Mk!Jk5@gP z`VoYA!cdPMx}PH2KRX!szoSHa`uZ7XFqRxEhs#K6J0*C_|MW?|^c_gn8fJ3&$;J{t z3I?@LBNyD-dB`1~qoyNYAAA@k^8!6wn)ej&{Mz#TTJZczi<-TnKJaPHeV{lIk+T!RxGTfsy6oTNmG!VP>lzc0JneCAw35`(Lb;cj6cBdAN43Q z1d#hbco9|4qBZW9%wZJiKMFBcl4=-$9C+%8x`;iHWjLxK^5Z+K(%{r@t6)PbyzRcF z-`(Kc3P|<%q1xg^RNA9qZE7pd^_Kn_1&wtQr!y?pjqTxebawT;A6lwkkFUxWprn1je+ab z##w32CTQBeN6@oO>&U(b7yg(#!P~^}*WeAr#L@L|?3#>pxoY#3E$W3DW05D3jQUM4 zWfv!kPI@Z~@$#(qHO&S}5DiIii-ehTG=W_e7yi4aak9TkT2&>`h@-ua|!@Cm0JsY$L z2yA_raJj%3j3by7+CFEzazkeMp_L@88LDNR+<7!dUtyI{H8H&rno_f0boxR>lJpU z2_zKiQ4Drpb6z1nx);ni2U+1U>JdT;MHZs=*>?nU4%#YPZMJ5$6vh(wR*mU(Jzlak zO7gWra1R`Yk2|gTj*7{6coey5164eKtQk8NUqcT1sg??jDy>{HOJ)-d)+Jb~pVQ>1 zyeVD5bs@z+i!=QK3yo6?dx5jGXhO5$+s9}GJr!s>nY&(~lOxu3GMo>0J3qF{0xQV? z^oMKJ(}?Uw%T7GWyt~Cwe>GLgDL)-f(VVUNdfIT63*U=8Wp+&_9Am`RKhR8d0BOFCmQRUu#V0nTKQbS7 zi~8ahRTnslJiNaQwFTUOtxi5!Mnzinun_JtlwgKC@t2-w3o?SXvOh$cFB3Iq(fkw({n*W^tzp+BTAL^ zO~B@Z5C%^zYospm%)J+Jww3wTW4gX{6!daF6S?E>;a#}Rcp?z~u&c>>l7XIOqH)5` z!@c{ve5V%kUOUN&EWu`fvJSmmN(Ccc@2L^xi|9`{ehjlL0Dh1S(~jFfQ?-DlAzN-m zAC?bEG?kjvPnK47uOE)uu1rohioSylb0gvDW5ELVrtr#gb0r_?axqm?ZsvVgQoil_ zK0n~_+UTl)uo=LY><#N|HO!e;(AHidhdHjkE1FCJ{YW17tpifuj`De?4QEBdoyyD6 zJo=^0n|&0FGGJlf757ERSHIKmGWb!tyC(cZP2Cl*clrv7e%l+pA&}ob0jKoF7#Y5&n^;X zR*W@r{j3@6e2Q16E&1pjwDq+^;B<591vJP7)b%=l^7SJ7eRhL;=@CRha>f%e%AF+A zg)pK)WR>L7E4U7&L1g9cI69Nt7A+#Nu za6ES24O5nls=Pr|^Q)GTEkc2TGwLEhF1AKhG{Al+Q)D&xWcjRK&-Y#SCpXD4P+wQ^ z6=;Suk2D)S{cEbKHH4;sG3ow5#_fyO&ZZINLpB$X%?6lLKA)zH# zEX9IiX0l(R+yeMl@4JPfseQupE8P&K!gh=I=f>a?F2!YBo@Z)X7V#xd{ot{EtX%Jx zy5qL2(7eellYl<%S&FqSD!Ng4WR$f{6>OsvL=-0sgZ@_iCM31uC;{^__ zAKmI0@ey3gW<5&sUN+!t81h|CvUT}T{LbJeu#Vd3PSMyn@8jAwcdNnKQ*g17dB8S( zY(f}WmN3FqCrf#iHCgYbeXQm4NZw{d;So`RSU5Cp>%nYK5sg#GeP97KQkMeUmAn*QeBsqr*!t(~O{e{%aa@Y04w znE1bJg}ogMdDXA)2m?*3ZluO%(E>db5^5-k;NOX&kt8IR`~-f52{VxiQ!wkB^c0Y2pt<(L`_HJ9 z_Xm(zVEC3yQ9D;=-Kbm7TXdd?scO_I_7`S)D;w55P3GlJ8;-N)-?dXO__|=|kAnf72y+W_3 zU}E2Su~Kah(L;!!Q?8C?hEY%{?%py$KQ?mM6fify6n~VAVxmR`H|rFi*=a z()4?ZW(%>|sA{3!mt8}jVHIX+bY(mv@%YD}RsqvvH&B~+Su~(I0@isfPJ~7M4@B_R zCGa?z!Ed(557S-9IYLOg+|c(|Axu5viQbC{7lt8pj;=p<9a+gJPh;uE)jEv6cF8V@ z{yAM4lkz#DtxGpqb(Epwp+t~recw8EqjOw+DD z(((#S*6lz7YfzH`?N3hb?G7!8BWv4zfdW)TzcWt5X%hiE(u9=2D8cxROtrrUnr6v1 zg^&=c~YnJbiO z1TV2`7y6AOA70l$xU8ziF6}l5Pti6pK7V&_I?M#cHmbQ31ZER^V0d1Y0+8e3$PGNo zf$Ijl7h8Xs(KtHl$lhf#Q)~224xXQMkF20rXRix&sd8HaUvB%jX^?=?Ay7Ro(cO+L1>J%f$xcAs2&G2WZJ5hGY7RO7@{GvX`UBy_|mQfKHPFK$?d11oT*KK0}+t zEw>`!e$9`>B%`|zlaZn*H7d{L^7$%ctz}9pZIqEerRlWlH4M&-@hipU?cDrod3`xQ zeoxXJf3o6N?!rGba%IF6#F5ndI*ag7a5#A*Xce4#L zF>|%<$7|m}MCUi1E9o^ru(95yjm>=^58Z~0Bb!V*U{$rVZ}X(ob<6Ngu=n%miIfle z@Ea)-1VVLZlL{0BkVEM}+2U!lDG;!jjQ{LVHrLR}JcXsrDdv;c^X6~o6J-$E5@Nr_>_t!V(XT#;L<}n17ch|c8=9iA zxC`^C(e6|1N-%%;jaA<%YAlY{%Q~YFOm`a>*=}SBNYX#Iz-H%9I@($7OP?jaEll6m0{-Nnjr7h zO6U66U)NFz=EC(P6Fl-R$1~W`!@c3nWkC+%_*pKw4RlaR6$+vxdM{{}Boiwz;J{;? zoDm?2(y9S-a=7-zRfagh%Ek~N)r+=-XcR43XnoZw&^0o55SlqgTk+zhNPmXJoDtb~ zD_QZWQL%CJ+YHoe4b^7)&f=*~ooCC(7b^0hUrlh{0{mdzR2p$45_5Fc=19G&o$_%a zB3dz-8=-jb*N5;~0tZf_x?tDDT`Eg(nMB^!ZSS02+pQ}d>cGD684^PSU-39rEq z*&6?_nX?2$Z{~7RreyQ{6`c|!XOV%^px!EFGMQ%TTpSh2c>fcnq>`00D?Pj?;jGh0 z(?!~pWl1)^V2+SrA5rECB@EITfP~HaX9Nq(5k`t1^$)ihy|S58j_hp_lb0gfjA}l^ zo=r4xuB_bEU2`3F@q2J_xCjnLKo?PJr6RhrR7>gMYMA5Q^6x)6urwXN3PpsH6b>H) zv_IJCPVqYJyT14WCtGuKt zo$FekNs|IW;mjb@{k`gB3%@~(r>~5N=tu#n31HX!f)2Qr^Lvn)V$u3zJnH zuFeb6E*dy>X}mgMZAq<^<1N=xGMM5tqj?v=SfgkvG}RRE-nm~QSv;=Op3uZIXUkgh zcqGY%8P~22M2yz_l`5VFjzd>8#D$Ip$Y?;V|7;9RY`l+;FeJwfT$bW? zYVp5dLEMlIKf5jn@#t}blw~!4zPl{&WLYVmZJ)!yTcR1G?V{S_ZemgmtQmRU zBrd&*sf>SX6e|?l6VgXyQi}H-bn-}la1gSJj@>%TAz_*&D>voSA@&C}ZOIfY zXTL(+Nxd>QS_0Q8|EKQ=eAOW65i z>pH+f$Scj9UM5Gl%_U%!MGWB(=rp_Uz+riiEYZR@=ykrAZF<$w5y{ zce8h&A&>2r+CS=v^kTfm9y93QmEAgX^>{1j3qO9yq z(hr9>$IiEOS=&|{RC<|V){^Aa*?z-OXHo5=5>>0Z)Hr-{P0)4!cxj^%iq_fj5o+`HJqmVQ7U+X*luVo~o@Q`nyx=7vl(61!OTFA=#2b z0Ob-#lr32C9pAf7Vbqb~g9M+|E=7hTy?_1=BduJ2;hk6pUrZ9P-9N%-LUVf&i1Tji zS8wU{0bi=EQz;6Ryu0WH+Jau}-eG2Z;IK7wYFt~xauM2GOHZkf=l8$IkH#RG3hLIShRLpIxVzw`&+L2YK?yijqMbE}`) z+T|5Gir_CpoSG^7kU9#A=TBwwQSach;4?x$d-kPibyFpCpMD+#|M*pi+ZdTwv~YD? zL4;dQhVH3Prfp&>9781Jl^P8n40mHRrlImU<{wet(^hB@U*yy9N@~&cwL8xr((WV( zt*NTM|Lvn;O+bF+EpjG-hfl?c?gC4sR~tEwK=m(RLiJ*2l5L>vdS2L{pUVb^tk@#e z^Pg|>x-X`df?rSuHe5S*KcOk9ebs*#GPg{)-qOd z0!!u7CFY((q@qM@;xp-}lYP4v{x;Ld~luW!yR*OVT&#UdO4h{^7Vev&VGAS38 zk{DVjo+;%>%giKP&r>=(p3RZT$Vk}HLONw!-UcZsLsxcvWm4}WI*yB9Z5a3e4e*^$ zZ6T6(r;7Z^H_J6A&8ivBBKFNJN|b3&65`jsG^V4a0ovx)%>)8V9h)O`Mr-xNx&ay4 z59ORv*m)j4Bi|Vv)u|^N6j;3Q?iruoFPRkwrPMuLCaQ6*W0$3l0c6t6l)C0Z6fPWb zjF)FSr@xFXfWBx^qzE@9A~lu$&^dC_R)=(`PFY1=6=*1)DV-a1SrREGf|j=yu6o6z zPt;45Bf5t-^o|fbH&*Z~!jL!E^I!V?$?E)p)nx(syV`sjK(`e|>NpvK$JdIX!WvXK zdG6`=)TI?*z`VDKS*cZnRz?A5IZJw-d4E2{jE2$}*v3P3>#-J?61Q-x5pd0asi7(y zXV!yOnz1tbI&4!lK|&w-=}Yzo-Sd}vJI$c&5_W-Q)xa%^MwE{^pm^D68QNBvLVNmW zX@*rjxeE7utYRN!)dmNMIYpXG^>TdjI9hErM<`5r!;l4K@~nzsIlC`;{*Xi}q592k z5zZ$$P_CFNFaVKvaFlwqw8!=qmWL0rWBghtg-(mqgeqx~u3U6tS2GJbng;aa;3}YJ zu1~Q80vt1(iMoj7$xtW02pphg_JsC!OckCR&;rZL^3ckhNBGfBc zsVAOAVT-Dwbu5FceSIWk$6({e=3WCzPKpqXmh(-dubr*cP2G2yoCDLGt?%yp>njQ# zE~4il@?BndH(|SN)ZCgsu~%ycP#uyAie5SK6JEU!gB((^E)Q64Y=;+nX%j}rI@ zfw>40j~CemK7B!V8Ek)xp|F@KDfX2tP)IS`v$5*o!G}8?w+V(jbr@F!Rk$}SC^fB% z=O=1cAXGeKmPc@Xa_cp%LzhPyeQXlm;?Q$5^y(GM9$v8w>XubrBSkKm?-Xtr`=cGJ z=O07~Z9E+rB?DS3F>KipI_w*l8{V{{ZHyrJoW%chSubJKH2uec&#$y7?K7y1O18{RZ zR2HTAZ;e>yZ;jtw!VU8&iNH`}0wmgEhTEPEe5kwe*!m2l`z@q}qa)hjXXi!6fULu7 z(HaGbxZhqi>iyt_L@N_z^1?SHFP6hIlLsdbn*Nl?H|y5Fvk>#( zPTWr$kIGqoB&4%`=t8_se-#B+F&$i1<~FES=hsw37ky1u0TXb%T! zXQ*ZPvT_55OpWQ8>-;IlZSW&%FAM+lx>;#BsNCqEWfT}M*Ro(# zGe}vAc~WLdxPK=#05>+zaI?{nR2h-a!zNRw%6RI}oPE9FzTP2N)t3(kGHb2?hK$_J zlbXY1+g3t!8<$-)HD3}|fN{F3k%kYWTy|r4uMx(xvTrtl#)>pJCN88uO#BR5m!lxX z?PEDnBBFQpx_MX{I@IF))75m-chD+|@B52c#<%A(yTw-gu}-8JxxvzlO(^Lce(dDA zXxcLr4pkJf7rt`EJr|F-c@Rneg`KqVPnbNKWotW`n`z|x9h9M=3$*e^YR#a!af@Q^ zcWawZp^jS3C?42V9&;&USpPuMXm<6&^pZtL^D5j3j0w6r)EF(ySV1ryK`=c*Fr7g# zy@{lMb51ox)Dq&pL*nBOD}((+^HV1&yhG{;Mp8S|9XSKoKN$vHDZ9DYHOvweaBz-y z=N{H?XLCMV`*6$m0+kHY&hwtAiuElBZ$rw3is2PsO`;7gKF8|D>I%mAQoK`7m|jgD ztV_~P#+*zZCeJqO9N7nqxjY?_%BzhYHkx5+=t5?6^@ig<@Mvf|&WT1E&A5IHpHR5| zviKmL=`9I!`5R|8Bht=kQiCU!b7;zmpr{){^q^3!0+bjt1d=n#v7p>4RsYKJGL1D- zH?7H2VH>&TT>=&)jdRQnn;=BmN8Fv&^7dZTHR`+hgg--F4q@zu@%bBfTd7}`At6Du ziV2F5o%ezJp}}k<7^Uu-q>Iq>z)hDAD3}6pOMprN^bQ&@b3<6RkK`ePzxxck>TC+Y z?U!1#opdPSfs7JVx5IW51*cm(KCDUM0a*R}dEcb~_^eGxQu6)i9*l|C!1|>j*t0 z-Z>kO^=g32YVT3ixme*jJYHRUMAquY;B7;cUEc$=kNGRJPL+2crZweN?73x|0hCTX z*I z^kD{s&sy2+wSV2bqI^AkDt))~N;DeekMr2ol~{fvF(>PYKN0l@B%jZVm8&?5>r2V1 z-rq4UcG@zkH_zjkSshC$`&;Zeyfe}(5Y#6ECnI13EfjPr8iVW-EL8ZG+zz9t`N0BM zHa@*e0zAE!U>b{@*G@+pnsgwV7PIJPO8nLwXGlwAp*Lz~1?$!79T-A%6fukL*Q5#z zOMY5!Wr|*wUR#hpDjcD*N?PyeP~)ri&YM(RAS4KWsw6R|ALUCXAHrN5J7u)!Xj4@I z{V!C~<}iHmt(xmksJ{-Qn<=$c)2d_Y#XI_IUG3#cCfk990IRvDwYAwIfto-aoQv5i zk=}Zo%&Dtyb|_(;elIY?y|RXtW3bTb{HfniMDaI?(!vV}GyYIgdJdUe33k?+g;?Ey zr4LBw^`}72FwM%{ru=Y3;RsM*5{Ux-t(4b!L$CAFxl{GigA2cFGhEPzz zmc{$KW@m)C)MD0zUMyy&gj;}xTmVqkPd$%Y-Gm`%iH0!A^fM>AgbsvbMRyD6-(>PWM$VQAvCxl+~ZNszq9HN1;38 zWy5}-H>CX@$2lMb@Wc!^W>L`l9V7R51koVOmuV{-IdJk{a033Q+Z1{d+QoPNm=a9+9q|!sPtgWJObM zsTPFe@8MGq8IQ$M5f=|YPuJ2^X-}g&p<0IC+1#|1eENgjLgQ9F!Q2Gvl9|*FC6`5s z&8$Q%qTie;yu@(9=J)h_LuS(7G#y=_4dZ6M@0zdoB>T23NZ1JOKn;=R@C>1$h8&ck zL7QUO$-WtFwGOKfiw(8H8p<$wl(9jc)m~+G8w-@`{-kGIhLmdq(uC!ARF2zyQ`uaU zpc5;nWA^7A)0^nKxk@x$31uxzyvg3)u5qQjMc&i~4w>=A1)| zOtV>#MFIC5TZ^Lgp^!J}xe|A=46k^r66HDDUl-h&D=yJecr9!eJmHF!qKd=ywm$a@ zm_U50xkxIDS`buO!;+Tt?y!PX#^})xcyZ-h?5U??v?w~UoR%0zIhYESVGG{FAtSh7 z{3b*IKW1RBc)fql(Dz~d5}I_lp+ICFpdrYxZ-c?B)U$n~5oa0x63T}pnR51x5@ z*5xJZ$E;Hv^ym&?x{#4uCJTA~#0_^MEL=6U1@AJCUySn;W0aGBFnr<-*E6y zWbhN6TL&GVe>(7V+*wXZQTYXed3+n#NDO54UKrywvEdccttaO6o{$a%rR01LgisH% z_Y+$^)>LV+kaJ3~N`pfKj2^?~r`nwVa`E|6C%96t*Q zpAd_ikC7{LJ}@TGfx487Nw=FObFfo*W|rM1B3W%ew6%D6AS{rp7|hVWnJf#lS;3VVG)Dul@g|TdRFoGpYSSjrNk%d3As8-%_r;@$uIG?QIvDv z)3hV%$V+dnkEtgUi*NoPTVELzR}-wA;1=99xXUiPxCIFA1b25&aMXrGb7p#a`qVsqrn?`ff_Fhq_2d@pIu=e~`|M*nEn9;k zre*)~WzV=w=XTi%o{L@U1KsdILrdrFcaLc9^DCq=@Tq8vBlsJWUM1F`=>^`UAk0sGl zZkcV7rVA$;LB0*J#2HT?ARYG2{SBEBd6(#euc%`FhUrx2SO7Kfc`|ZQ)0FrQ$J&7TJ7o0w>bp@~kzxDY$;PBOd zm5-u+12*6T+g<|53E;Wpqq%3wd9Yk^ReWe&9X%;jLXrR->Q63+)7*^$tbota2?t2@ zk4&zb3RJBRVT6=gino; z7dQpK@&^o@gDZE8ANU;}rBERTY$Acr=qu7Sxfm=a0S)0lAz@U?2_2xB6Kt#0c_AQ}Rkj<2bt)DtyUhpum45h~NxhB)m;mJ}?OZE;x3H z!ulv|Byx1P;Ls8VnB<{F!1@2eN1FA^f$9G!0QueLJb%NukxMZD1(GIC2%tC9RskR3 z>Y`}?cEfFHs})G|uj3}}FvC$X@igY2CTz@OeUE_d*H2Cl$z>noVR2T+@Zk_2-cxETw69Id_G;<{5_5QAleL@<6U;Uo z4#lsNdE>2^RHu2~;a>K>Cp)qZ^&3yhuPaj|OgFP}Sd$YZG0D|dANyiu(>l>mT}$=q z+ExvBsSY^~3u3_U$@sou-OSdWsi@cev#_}>fIS-6;8w2C5O1_Rk(j>kVLlCP zSP$Shoy6a7S$|K3W6a3m^sC2VIfz(qN0frWOoPcR7gA}!F123_?b68bL}6qu_9@#O z?3u3256QcC7u%mKmmA%#{8Y7LYr5<zg#HXhUdNy`_hERCqv@lcJ7o z<}zGzA2?|;DsNpgK1a?i(j;~AjZSX}Jq8%C#p4bZK12!hlE!Fy#IdHEE;p2|I|#(l zjKybLmfCeDCPAE1*d{d)ibo8IuR7u}Z%0;FAy;0bs~sJOtIOtX5|@lqhOE)=^-3bb z2;RSh*4jc_&DFWQH7n!@R^PBQmpaJ~|FN_SR9LpTeHX-Vj>kTRnUbA9=k*$^y}_q7 zgr6kv>l?fLBV=c<51Oc2t5HEKTOa@M{4Pze=&ptaSt0yYlXyVLq}y=q_L`B5kvC6peN+O{60}8=6l9+(?Vo?Z3eGH#DhAP0CUEARQ2l9{ z0(16wlSJXv?HIn+9mM&#=DkV(>~|_LA33;Ih~t=R@M{M%txo*x{M!xo!ErdXxJ2e{ zPw4$ip@Q>ojFc*68vfGJGz#;T(GG>T>4Z2;jaqfYM{`;4^?P#9bm&(LAs=ZW^<U^1~Qh9#!F>laEf)rLeTYhp89_4$W3W5XPg2G0Ugje)? z2h#=ljXDW_l{WD5QQQ%esJgJTbmV*-1xC{Sxr5NdSWX>|+kLjW6N}6)-(-jC0*22* zM--}Utom1byGki~QL*N{m%?Qb-}VFWk6L5r5;(I%aFw7@AEZ;G3I}jzy9p9{`k2ZnF{5N9@i@Fy-ejD;O z-Li}>Hvuz5n!`NFTC*-D)itbzype}O6~APQHS?z+ix-QPIx;JAd2lYfx6GT)V3XVD zigMfUE;CZ~E~<;zs}5VB>po@_C)Ly;jD*T2{>cEp3mK@)szh_DyZnjj(M_mdyr zr8V&6Q3~@#}@rJ_z z39dUYFMNA`>&3hFFL?A^?y_b8w%G^0`p4^x%OyzOZ0gH91>dUyA9;VngH>r#cnkjF zi=`(C?0Hz%sCfT?3#{rNTJu>d?=BnwEavd0!=a#SA#W+1o0`0o7YmN{SSolC;afRp z9q%+e@#VRPmlZA-+aRyZzuv!UNMbv{(2FPJ{V#~A%t%6k�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 J{)z<~{|B#jAoKtL diff --git a/src/teavm/java/net/lax1dude/eaglercraft/Client.java b/src/teavm/java/net/lax1dude/eaglercraft/Client.java new file mode 100644 index 0000000..42ee668 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/Client.java @@ -0,0 +1,391 @@ +package net.lax1dude.eaglercraft; + +import static org.teavm.jso.webgl.WebGLRenderingContext.*; + +import org.json.JSONException; +import org.json.JSONObject; +import org.teavm.jso.JSBody; +import org.teavm.jso.JSExceptions; +import org.teavm.jso.JSFunctor; +import org.teavm.jso.JSObject; +import org.teavm.jso.browser.Window; +import org.teavm.jso.core.JSError; +import org.teavm.jso.dom.html.HTMLCanvasElement; +import org.teavm.jso.dom.html.HTMLDocument; +import org.teavm.jso.dom.html.HTMLElement; +import org.teavm.jso.webgl.WebGLRenderingContext; + +import net.lax1dude.eaglercraft.adapter.DetectAnisotropicGlitch; +import net.lax1dude.eaglercraft.adapter.EaglerAdapterImpl2; +import net.minecraft.src.Minecraft; +import net.minecraft.src.ServerList; + +public class Client { + private static final String crashImage = "data:image/png;base64,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c+Jxky5I/Mh1xeM3zkWXBZ4pmpnUPLFILBU7WOlgVjI14mniiKrplC9kPVY5b3HWKjXWuid/YSivr6S5TmsEcSwhgSQkKKihjApsRGnXSbGQovOYj3/Y9SfJpZCrDEaOBVShQXb94H/we7ZWYWrSSwrFgO4Xx/kYBXp2gWbdcb6PHad5AgSfgSu97a82gNlP0uttLXIEDGwDF9dtTdkDLneA8JMhm7IrBWkJhQLwfkbflAMGb4G+NW9urXOcPgAZmtXyDXBwCIwVKXvd5929nXP7t6c1vx8743KRRjbQVgAADfdpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IlhNUCBDb3JlIDQuNC4wLUV4aXYyIj4KIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgIHhtbG5zOkdJTVA9Imh0dHA6Ly93d3cuZ2ltcC5vcmcveG1wLyIKICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIgogICB4bXBNTTpEb2N1bWVudElEPSJnaW1wOmRvY2lkOmdpbXA6NDJlMTU3MGEtNmMyZS00Y2E1LWI3ZTMtOGI4ODI1MmMwZDMwIgogICB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjU1NGY3N2UwLTc4NmEtNGFlZS1iYjhmLWNhYTBiZGNiYzE3MSIKICAgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOmNmMWYyMjUxLWIwY2QtNDE1NS1hMjAyLTExNGI0ZGM2MmFhNSIKICAgZGM6Rm9ybWF0PSJpbWFnZS9wbmciCiAgIEdJTVA6QVBJPSIyLjAiCiAgIEdJTVA6UGxhdGZvcm09IldpbmRvd3MiCiAgIEdJTVA6VGltZVN0YW1wPSIxNjQzMDYxODUwNDk0OTc0IgogICBHSU1QOlZlcnNpb249IjIuMTAuMjQiCiAgIHRpZmY6T3JpZW50YXRpb249IjEiCiAgIHhtcDpDcmVhdG9yVG9vbD0iR0lNUCAyLjEwIj4KICAgPHhtcE1NOkhpc3Rvcnk+CiAgICA8cmRmOlNlcT4KICAgICA8cmRmOmxpCiAgICAgIHN0RXZ0OmFjdGlvbj0ic2F2ZWQiCiAgICAgIHN0RXZ0OmNoYW5nZWQ9Ii8iCiAgICAgIHN0RXZ0Omluc3RhbmNlSUQ9InhtcC5paWQ6ODUyMGQ4YTMtMWRhZC00ZjIwLWFjOTktODg4OTJkZDExNDQ0IgogICAgICBzdEV2dDpzb2Z0d2FyZUFnZW50PSJHaW1wIDIuMTAgKFdpbmRvd3MpIgogICAgICBzdEV2dDp3aGVuPSIyMDIxLTEyLTE3VDE3OjIyOjQ4Ii8+CiAgICAgPHJkZjpsaQogICAgICBzdEV2dDphY3Rpb249InNhdmVkIgogICAgICBzdEV2dDpjaGFuZ2VkPSIvIgogICAgICBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjJkY2U5N2M4LTBkZjItNGQzNi1iMzE1LWE0YjdmMmUyMjJiNSIKICAgICAgc3RFdnQ6c29mdHdhcmVBZ2VudD0iR2ltcCAyLjEwIChXaW5kb3dzKSIKICAgICAgc3RFdnQ6d2hlbj0iMjAyMi0wMS0yNFQxNDowNDoxMCIvPgogICAgPC9yZGY6U2VxPgogICA8L3htcE1NOkhpc3Rvcnk+CiAgPC9yZGY6RGVzY3JpcHRpb24+CiA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgCjw/eHBhY2tldCBlbmQ9InciPz61xwk6AAAABmJLR0QAnQCdAJ2roJyEAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH5gEYFgQKOBb3JwAAIABJREFUeNrtvXl0lFWePv7UvlelKvu+koSQRQiyBJGISEB0hFYZwW1sp4/2csaZ1jlz5sz80cc5c7rnaI8zju2o09qiIrKowEGURXYI+5IASQjZl0plT2rff3/073O/byVVlUQSRPs+5+QkkMpbb9333ud+lufzuaJgMBgEBwcHxw8UYj4EHBwcnMQ4ODg4OIlxcHBwcBLj4ODgJMbBwcHBSYyDg4ODkxgHBwcHJzEODg5OYhwcHBycxDg4ODg4iXFw/GWAqgHHfv+ufyv8+q7XvVMh4rWTHBwc3BLj4ODg4CTGwcHBwUmMg4ODkxgHBwcHJzEODg4OTmIcHBwcnMQ4ODg4iXFwcHBwEuPg4ODgJMbBwcHBSYyDg+NHBCkfAo6/ZAiLov1+P3w+H/x+P/x+P4LBIDQaDWQyGR+oSYyjSCSK+G9OYhwctwiHw4Guri44HA54vV74fD72FQgE4Pf74Xa74XA44Ha74Xa7EQgEsGrVKqSnp9+2BTlT5EJETT+PJZxgMAixWMx+FwgEIBb/2VGjn4W/o78P9/qxPSXo2pFez0mMg2MSC7mrqwt/+MMfYDabYbfb4XQ64XQ64XA42HeHw4HBwUFIJBJIJBLExMRg4cKFSEtL+0GSmJAwxsLn80EqlSIQCIRYomKxGD6fD2KxGH6/n31un88HiUQCv98fcm26Pr2H0LIlkhLeg/B3RIbCa30XS46TGMePHn6/HxaLBVu2bIFcLg9ZXLRQpFIpDAYDDAYDW0RyufwHRV7ChU9kQeQhtHyInLxeL7OwyFoS/o7caCI1+k7XlEgkjIiEJOXz+SASiSCVStl9SKX/j2pE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"; + + // avoid inlining of constant + private static String crashImageWrapper() { + return crashImage.substring(0); + } + + @JSBody(params = { }, script = "if(window.eaglercraftOpts) { return (typeof window.eaglercraftOpts === \"string\") ? window.eaglercraftOpts :" + + "JSON.stringify(window.eaglercraftOpts); } else { return null; }") + private static native String getEaglerOpts(); + + public static HTMLElement rootElement = null; + public static Minecraft instance = null; + public static void main(String[] args) { + String newArgs = getEaglerOpts(); + if(newArgs != null) { + crashScreenOptsDump = "window.eaglercraftOpts = " + newArgs; + try { + newMain(new JSONObject(newArgs)); + }catch(JSONException ex) { + Window.alert("There's a JSON syntax error in window.eaglercraftOpts:\n" + ex.toString()); + ex.printStackTrace(); + return; + } + }else { + oldMain(); + } + } + + private static String crashScreenOptsDump = null; + + private static void newMain(JSONObject conf) { + + String containerEl = conf.getString("container"); + + rootElement = Window.current().getDocument().getElementById(containerEl); + if(rootElement == null) { + throw new JSONException("Container element \"" + containerEl + "\" does not exist in page"); + } + + EaglerAdapterImpl2.setServerToJoinOnLaunch(conf.optString("joinServer", null)); + + String assetsURI = conf.getString("assetsURI"); + if(assetsURI.length() > 256) { + conf.put("assetsURI", assetsURI.substring(0, 256) + " ... "); + crashScreenOptsDump = "window.eaglercraftOpts = " + conf.toString(); + } + String serverWorkerURI = conf.optString("serverWorkerURI", null); + EaglerAdapterImpl2.setWorldDatabaseName(conf.optString("worldsFolder", "MAIN")); + + registerErrorHandler(); + + try { + + EaglerAdapterImpl2.initializeContext(rootElement, assetsURI, serverWorkerURI); + + ServerList.loadDefaultServers(conf); + AssetRepository.loadOverrides(conf); + LocalStorageManager.loadStorage(); + + run0(); + + }catch(Throwable t) { + showCrashScreen(t.toString() + "\n\n" + getStackTrace(t)); + return; + } + } + + private static void oldMain() { + String[] e = getOpts(); + crashScreenOptsDump = "window.minecraftOpts = [ "; + for(int i = 0; i < e.length; ++i) { + String sh = e[i].length() > 512 ? (e[i].substring(0, 512) + "...") : e[i]; + if(i > 0) { + crashScreenOptsDump += ", "; + } + crashScreenOptsDump += "\"" + sh + "\""; + } + crashScreenOptsDump += " ]"; + + registerErrorHandler(); + + try { + + EaglerAdapterImpl2.initializeContext(rootElement = Window.current().getDocument().getElementById(e[0]), e[1], "worker_bootstrap.js"); + + LocalStorageManager.loadStorage(); + if(e.length > 2 && e[2].length() > 0) { + ServerList.loadDefaultServers(e[2]); + } + if(e.length > 3) { + EaglerAdapterImpl2.setServerToJoinOnLaunch(e[3]); + } + + run0(); + + }catch(Throwable t) { + showCrashScreen(t.toString() + "\n\n" + getStackTrace(t)); + return; + } + } + + private static String getStackTrace(Throwable t) { + JSObject obj = JSExceptions.getJSException(t); + if(obj != null) { + JSError err = (JSError)obj; + return err.getStack() == null ? "[no stack trace]" : err.getStack(); + }else { + return "[no stack trace]"; + } + } + + private static void run0() { + System.out.println(" -------- starting minecraft -------- "); + instance = new Minecraft(); + run1(); + } + + private static void run1() { + instance.run(); + } + + @JSBody(params = { }, script = "return window.minecraftOpts;") + public static native String[] getOpts(); + + public static void registerErrorHandler() { + setWindowErrorHandler(new WindowErrorHandler() { + + @Override + public void call(String message, String file, int line, int col, JSError error) { + StringBuilder str = new StringBuilder(); + + str.append("Native Browser Exception\n"); + str.append("----------------------------------\n"); + str.append(" Line: ").append((file == null ? "unknown" : file) + ":" + line + ":" + col).append('\n'); + str.append(" Type: ").append(error == null ? "generic" : error.getName()).append('\n'); + + if(error != null) { + str.append(" Desc: ").append(error.getMessage() == null ? "null" : error.getMessage()).append('\n'); + } + + if(message != null) { + if(error == null || error.getMessage() == null || !message.endsWith(error.getMessage())) { + str.append(" Desc: ").append(message).append('\n'); + } + } + + str.append("----------------------------------\n\n"); + str.append(error.getStack() == null ? "No stack trace is available" : error.getStack()).append('\n'); + + showCrashScreen(str.toString()); + } + + }); + } + + @JSFunctor + private static interface WindowErrorHandler extends JSObject { + void call(String message, String file, int line, int col, JSError error); + } + + @JSBody(params = { "handler" }, script = "window.addEventListener(\"error\", function(e) { handler(" + + "(typeof e.message === \"string\") ? e.message : null," + + "(typeof e.filename === \"string\") ? e.filename : null," + + "(typeof e.lineno === \"number\") ? e.lineno : 0," + + "(typeof e.colno === \"number\") ? e.colno : 0," + + "(typeof e.error === \"undefined\") ? null : e.error); });") + public static native void setWindowErrorHandler(WindowErrorHandler handler); + + private static boolean isCrashed = false; + + private static void showCrashScreen(String t) { + if(!isCrashed) { + isCrashed = true; + + StringBuilder str = new StringBuilder(); + str.append("Game Crashed! I have fallen and I can't get up! If this has happened more than once then please copy the text on this screen and publish it in the issues feed of this fork's GitHub repository.\n\nThe URL to this fork's GitHub repository is: " + ConfigConstants.forkMe + "\n\n"); + str.append(t); + str.append('\n').append('\n'); + str.append("eaglercraft.version = \"").append(ConfigConstants.version).append("\"\n"); + str.append("eaglercraft.minecraft = \"1.5.2\"\n"); + str.append("eaglercraft.brand = \"lax1dude\"\n"); + str.append("eaglercraft.username = \"").append(EaglerProfile.username).append("\"\n"); + str.append('\n'); + str.append(addWebGLToCrash()); + str.append('\n'); + str.append(crashScreenOptsDump).append('\n'); + str.append('\n'); + addDebugNav(str, "userAgent"); + addDebugNav(str, "vendor"); + addDebugNav(str, "language"); + addDebugNav(str, "hardwareConcurrency"); + addDebugNav(str, "deviceMemory"); + addDebugNav(str, "platform"); + addDebugNav(str, "product"); + str.append('\n'); + str.append("rootElement.clientWidth = ").append(rootElement.getClientWidth()).append('\n'); + str.append("rootElement.clientHeight = ").append(rootElement.getClientHeight()).append('\n'); + addDebug(str, "innerWidth"); + addDebug(str, "innerHeight"); + addDebug(str, "outerWidth"); + addDebug(str, "outerHeight"); + addDebug(str, "devicePixelRatio"); + addDebugScreen(str, "availWidth"); + addDebugScreen(str, "availHeight"); + addDebugScreen(str, "colorDepth"); + addDebugScreen(str, "pixelDepth"); + str.append('\n'); + addDebugLocation(str, "href"); + str.append("\n----- Begin Minecraft Config -----\n"); + str.append(LocalStorageManager.dumpConfiguration()); + str.append("\n----- End Minecraft Config -----\n\n"); + addDebug(str, "minecraftServer"); + + String s = rootElement.getAttribute("style"); + rootElement.setAttribute("style", (s == null ? "" : s) + "position:relative;"); + HTMLDocument doc = Window.current().getDocument(); + HTMLElement img = doc.createElement("img"); + HTMLElement div = doc.createElement("div"); + img.setAttribute("style", "z-index:100;position:absolute;top:10px;left:calc(50% - 151px);"); + img.setAttribute("src", crashImageWrapper()); + div.setAttribute("style", "z-index:100;position:absolute;top:135px;left:10%;right:10%;bottom:30px;background-color:white;border:1px solid #cccccc;overflow-x:hidden;overflow-y:scroll;overflow-wrap:break-word;white-space:pre-wrap;font: 14px monospace;padding:10px;"); + rootElement.appendChild(img); + rootElement.appendChild(div); + div.appendChild(doc.createTextNode(str.toString())); + + EaglerAdapterImpl2.removeEventHandlers(); + + } + } + + private static String addWebGLToCrash() { + StringBuilder ret = new StringBuilder(); + + WebGLRenderingContext ctx = EaglerAdapterImpl2.webgl; + + if(ctx == null) { + HTMLCanvasElement cvs = (HTMLCanvasElement) Window.current().getDocument().createElement("canvas"); + + cvs.setWidth(64); + cvs.setHeight(64); + + ctx = (WebGLRenderingContext)cvs.getContext("webgl"); + } + + if(ctx != null) { + if(EaglerAdapterImpl2.webgl != null) { + ret.append("webgl.version = ").append(ctx.getParameterString(VERSION)).append('\n'); + } + if(ctx.getExtension("WEBGL_debug_renderer_info") != null) { + ret.append("webgl.renderer = ").append(ctx.getParameterString(/* UNMASKED_RENDERER_WEBGL */ 0x9246)).append('\n'); + ret.append("webgl.vendor = ").append(ctx.getParameterString(/* UNMASKED_VENDOR_WEBGL */ 0x9245)).append('\n'); + }else { + ret.append("webgl.renderer = ").append("" + ctx.getParameterString(RENDERER) + " [masked]").append('\n'); + ret.append("webgl.vendor = ").append("" + ctx.getParameterString(VENDOR) + " [masked]").append('\n'); + } + ret.append("\nwebgl.anisotropicGlitch = ").append(DetectAnisotropicGlitch.hasGlitch()).append('\n'); + }else { + ret.append("Failed to query GPU info!\n"); + } + + return ret.toString(); + } + + public static void showIncompatibleScreen(String t) { + if(!isCrashed) { + isCrashed = true; + + String s = rootElement.getAttribute("style"); + rootElement.setAttribute("style", (s == null ? "" : s) + "position:relative;"); + HTMLDocument doc = Window.current().getDocument(); + HTMLElement img = doc.createElement("img"); + HTMLElement div = doc.createElement("div"); + img.setAttribute("style", "z-index:100;position:absolute;top:10px;left:calc(50% - 151px);"); + img.setAttribute("src", crashImageWrapper()); + div.setAttribute("style", "z-index:100;position:absolute;top:135px;left:10%;right:10%;bottom:30px;background-color:white;border:1px solid #cccccc;overflow-x:hidden;overflow-y:scroll;font:18px sans-serif;padding:40px;"); + rootElement.appendChild(img); + rootElement.appendChild(div); + div.setInnerHTML("

    + This device is incompatible with Eaglercraft :(

    " + + "
    " + + "

    Issue:

    " + + "

    " + + "

    " + + "


    Things you can try:

    " + + "
      " + + "
    1. Just try using Eaglercraft on a different device, it isn't a bug it's common sense
    2. " + + "
    3. If you are on a mobile device, please try a proper desktop or a laptop computer
    4. " + + "
    5. If you are using a device with no mouse cursor, please use a device with a mouse cursor
    6. " + + "
    7. If you are not using Chrome/Edge, try installing the latest Google Chrome
    8. " + + "
    9. If your browser is out of date, please update it to the latest version
    10. " + + "
    11. If you are using an old OS such as Windows 7, please try Windows 10 or 11
    12. " + + "
    13. If you have a GPU launched before 2009, WebGL 2.0 support may be impossible
    14. " + + "
    " + + "
    "); + + div.querySelector("#crashReason").appendChild(doc.createTextNode(t)); + div.querySelector("#crashUserAgent").appendChild(doc.createTextNode(getStringNav("userAgent"))); + + EaglerAdapterImpl2.removeEventHandlers(); + + String webGLRenderer = "No GL_RENDERER string could be queried"; + + try { + HTMLCanvasElement cvs = (HTMLCanvasElement) Window.current().getDocument().createElement("canvas"); + + cvs.setWidth(64); + cvs.setHeight(64); + + WebGLRenderingContext ctx = (WebGLRenderingContext)cvs.getContext("webgl"); + + if(ctx != null) { + String r; + if(ctx.getExtension("WEBGL_debug_renderer_info") != null) { + r = ctx.getParameterString(/* UNMASKED_RENDERER_WEBGL */ 0x9246); + }else { + r = ctx.getParameterString(RENDERER); + if(r != null) { + r += " [masked]"; + } + } + if(r != null) { + webGLRenderer = r; + } + } + }catch(Throwable tt) { + } + + div.querySelector("#crashWebGL").appendChild(doc.createTextNode(webGLRenderer)); + + } + } + + @JSBody(params = { "v" }, script = "try { return \"\"+window[v]; } catch(e) { return \"\"; }") + private static native String getString(String var); + + @JSBody(params = { "v" }, script = "try { return \"\"+window.navigator[v]; } catch(e) { return \"\"; }") + private static native String getStringNav(String var); + + @JSBody(params = { "v" }, script = "try { return \"\"+window.screen[v]; } catch(e) { return \"\"; }") + private static native String getStringScreen(String var); + + @JSBody(params = { "v" }, script = "try { return \"\"+window.location[v]; } catch(e) { return \"\"; }") + private static native String getStringLocation(String var); + + private static void addDebug(StringBuilder str, String var) { + str.append("window.").append(var).append(" = ").append(getString(var)).append('\n'); + } + + private static void addDebugNav(StringBuilder str, String var) { + str.append("window.navigator.").append(var).append(" = ").append(getStringNav(var)).append('\n'); + } + + private static void addDebugScreen(StringBuilder str, String var) { + str.append("window.screen.").append(var).append(" = ").append(getStringScreen(var)).append('\n'); + } + + private static void addDebugLocation(StringBuilder str, String var) { + str.append("window.location.").append(var).append(" = ").append(getStringLocation(var)).append('\n'); + } + + private static void addArray(StringBuilder str, String var) { + str.append("window.").append(var).append(" = ").append(getArray(var)).append('\n'); + } + + @JSBody(params = { "v" }, script = "try { return (typeof window[v] !== \"undefined\") ? JSON.stringify(window[v]) : \"[\\\"\\\"]\"; } catch(e) { return \"[\\\"\\\"]\"; }") + private static native String getArray(String var); + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/DetectAnisotropicGlitch.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/DetectAnisotropicGlitch.java new file mode 100644 index 0000000..3f5c968 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/DetectAnisotropicGlitch.java @@ -0,0 +1,189 @@ +package net.lax1dude.eaglercraft.adapter; + +import static net.lax1dude.eaglercraft.adapter.teavm.WebGL2RenderingContext.*; + +import org.teavm.jso.browser.Window; +import org.teavm.jso.dom.html.HTMLCanvasElement; +import org.teavm.jso.typedarrays.Uint8Array; + +import net.lax1dude.eaglercraft.Client; +import net.lax1dude.eaglercraft.adapter.teavm.TeaVMUtils; +import net.lax1dude.eaglercraft.adapter.teavm.WebGL2RenderingContext; +import net.lax1dude.eaglercraft.adapter.teavm.WebGLVertexArray; + +import org.teavm.jso.webgl.*; + +public class DetectAnisotropicGlitch { + + private static boolean known = false; + private static boolean detected = false; + + public static boolean hasGlitch() { + if(!known) { + detected = detect(); + known = true; + } + return detected; + } + + public static boolean detect() { + HTMLCanvasElement cvs = (HTMLCanvasElement) Window.current().getDocument().createElement("canvas"); + + cvs.setWidth(400); + cvs.setHeight(300); + + WebGL2RenderingContext ctx = (WebGL2RenderingContext) cvs.getContext("webgl2"); + + if(ctx == null) { + Client.showIncompatibleScreen("WebGL 2.0 is not supported on this device!"); + throw new UnsupportedOperationException("WebGL 2 is not supported on this device!"); + } + + if(ctx.getExtension("EXT_texture_filter_anisotropic") != null) { + + String vshSrc = "#version 300 es\n" + + "precision lowp float;" + + "in vec2 a_pos;" + + "out vec2 v_pos;" + + "void main() {" + + " gl_Position = vec4((v_pos = a_pos) * 2.0 - 1.0, 0.0, 1.0);" + + "}"; + + String fshSrc = "#version 300 es\n" + + "precision lowp float;" + + "precision lowp sampler2D;" + + "uniform sampler2D tex;" + + "in vec2 v_pos;" + + "out vec4 fragColor;" + + "void main() {" + + " fragColor = vec4(texture(tex, v_pos).rgb, 1.0);" + + "}"; + + WebGLShader vsh = ctx.createShader(VERTEX_SHADER); + ctx.shaderSource(vsh, vshSrc); + ctx.compileShader(vsh); + + if(!ctx.getShaderParameterb(vsh, COMPILE_STATUS)) { + System.err.println("ERROR: Could not check for ANGLE Issue #4994, VERTEX_SHADER did not compile:"); + System.err.println(ctx.getShaderInfoLog(vsh)); + ctx.deleteShader(vsh); + return false; + } + + WebGLShader fsh = ctx.createShader(FRAGMENT_SHADER); + ctx.shaderSource(fsh, fshSrc); + ctx.compileShader(fsh); + + if(!ctx.getShaderParameterb(fsh, COMPILE_STATUS)) { + System.err.println("ERROR: Could not check for ANGLE Issue #4994, FRAGMENT_SHADER did not compile:"); + System.err.println(ctx.getShaderInfoLog(fsh)); + ctx.deleteShader(vsh); + ctx.deleteShader(fsh); + return false; + } + + WebGLProgram pr = ctx.createProgram(); + + ctx.attachShader(pr, vsh); + ctx.attachShader(pr, fsh); + + ctx.bindAttribLocation(pr, 0, "a_pos"); + ctx.bindAttribLocation(pr, 0, "fragColor"); + + ctx.linkProgram(pr); + + ctx.detachShader(pr, vsh); + ctx.detachShader(pr, fsh); + + ctx.deleteShader(vsh); + ctx.deleteShader(fsh); + + if(!ctx.getProgramParameterb(pr, LINK_STATUS)) { + System.err.println("ERROR: Could not check for ANGLE Issue #4994, program did not link:"); + System.err.println(ctx.getProgramInfoLog(pr)); + ctx.deleteProgram(pr); + return false; + } + + ctx.useProgram(pr); + + ctx.uniform1i(ctx.getUniformLocation(pr, "tex"), 0); + + byte x0 = (byte)0x00; + byte x1 = (byte)0xFF; + + byte[] pixelsData = new byte[] { + x0, x0, x0, x1, + x0, x0, x0, x1, + x1, x1, x1, x1, + x0, x0, x0, x1, + x0, x0, x0, x1, + x0, x0, x0, x1, + x1, x1, x1, x1, + x0, x0, x0, x1, + x0, x0, x0, x1, + x0, x0, x0, x1, + x1, x1, x1, x1, + x0, x0, x0, x1 + }; + + WebGLTexture tex = ctx.createTexture(); + + ctx.bindTexture(TEXTURE_2D, tex); + + ctx.texParameteri(TEXTURE_2D, TEXTURE_WRAP_S, REPEAT); + ctx.texParameteri(TEXTURE_2D, TEXTURE_WRAP_T, REPEAT); + ctx.texParameteri(TEXTURE_2D, TEXTURE_MIN_FILTER, NEAREST_MIPMAP_LINEAR); + ctx.texParameteri(TEXTURE_2D, TEXTURE_MAG_FILTER, NEAREST); + ctx.texParameterf(TEXTURE_2D, TEXTURE_MAX_ANISOTROPY_EXT, 16.0f); + + ctx.texImage2D(TEXTURE_2D, 0, RGBA, 4, 3, 0, RGBA, UNSIGNED_BYTE, TeaVMUtils.unwrapUnsignedByteArray(pixelsData)); + ctx.generateMipmap(TEXTURE_2D); + + float[] vertsData = new float[] { + 0.0f, 0.0f, + 1.0f, 0.0f, + 0.0f, 1.0f, + 1.0f, 0.0f, + 1.0f, 1.0f, + 0.0f, 1.0f + }; + + WebGLBuffer buf = ctx.createBuffer(); + + ctx.bindBuffer(ARRAY_BUFFER, buf); + ctx.bufferData(ARRAY_BUFFER, TeaVMUtils.unwrapFloatArray(vertsData), STATIC_DRAW); + + WebGLVertexArray arr = ctx.createVertexArray(); + + ctx.bindVertexArray(arr); + + ctx.enableVertexAttribArray(0); + ctx.vertexAttribPointer(0, 2, FLOAT, false, 8, 0); + + ctx.viewport(0, 0, 400, 300); + ctx.drawArrays(TRIANGLES, 0, 6); + + ctx.deleteVertexArray(arr); + ctx.deleteBuffer(buf); + ctx.deleteTexture(tex); + ctx.deleteProgram(pr); + + Uint8Array readPx = new Uint8Array(4); + ctx.readPixels(175, 150, 1, 1, RGBA, UNSIGNED_BYTE, readPx); + + boolean b = (readPx.get(0) + readPx.get(1) + readPx.get(2)) != 0; + + if(b) { + System.out.println("ANGLE issue #4994 is unpatched on this browser, enabling anisotropic fix"); + } + + return b; + }else { + System.err.println("WARNING: EXT_texture_filter_anisotropic is not supported!"); + return false; + } + + } + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/EaglerAdapterImpl2.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/EaglerAdapterImpl2.java new file mode 100644 index 0000000..b50f0f8 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/EaglerAdapterImpl2.java @@ -0,0 +1,4222 @@ +package net.lax1dude.eaglercraft.adapter; + +import static net.lax1dude.eaglercraft.adapter.teavm.WebGL2RenderingContext.*; + +import java.io.ByteArrayOutputStream; +import java.io.DataInputStream; +import java.io.DataOutputStream; +import java.io.EOFException; +import java.io.IOException; +import java.io.InputStream; +import java.nio.ByteBuffer; +import java.nio.IntBuffer; +import java.nio.charset.Charset; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.function.Consumer; +import java.util.stream.Collectors; + +import org.json.JSONObject; +import org.teavm.interop.Async; +import org.teavm.interop.AsyncCallback; +import org.teavm.jso.JSBody; +import org.teavm.jso.JSFunctor; +import org.teavm.jso.JSObject; +import org.teavm.jso.JSProperty; +import org.teavm.jso.ajax.ReadyStateChangeHandler; +import org.teavm.jso.ajax.XMLHttpRequest; +import org.teavm.jso.browser.Storage; +import org.teavm.jso.browser.TimerHandler; +import org.teavm.jso.browser.Window; +import org.teavm.jso.canvas.CanvasRenderingContext2D; +import org.teavm.jso.canvas.ImageData; +import org.teavm.jso.core.JSString; +import org.teavm.jso.dom.css.CSSStyleDeclaration; +import org.teavm.jso.dom.events.ErrorEvent; +import org.teavm.jso.dom.events.Event; +import org.teavm.jso.dom.events.EventListener; +import org.teavm.jso.dom.events.KeyboardEvent; +import org.teavm.jso.dom.events.MessageEvent; +import org.teavm.jso.dom.events.MouseEvent; +import org.teavm.jso.dom.events.WheelEvent; +import org.teavm.jso.dom.html.HTMLAudioElement; +import org.teavm.jso.dom.html.HTMLCanvasElement; +import org.teavm.jso.dom.html.HTMLDocument; +import org.teavm.jso.dom.html.HTMLElement; +import org.teavm.jso.dom.html.HTMLImageElement; +import org.teavm.jso.dom.html.HTMLVideoElement; +import org.teavm.jso.media.MediaError; +import org.teavm.jso.typedarrays.ArrayBuffer; +import org.teavm.jso.typedarrays.DataView; +import org.teavm.jso.typedarrays.Int32Array; +import org.teavm.jso.typedarrays.Uint8Array; +import org.teavm.jso.typedarrays.Uint8ClampedArray; +import org.teavm.jso.webaudio.AnalyserNode; +import org.teavm.jso.webaudio.AudioBuffer; +import org.teavm.jso.webaudio.AudioBufferSourceNode; +import org.teavm.jso.webaudio.AudioContext; +import org.teavm.jso.webaudio.AudioListener; +import org.teavm.jso.webaudio.AudioNode; +import org.teavm.jso.webaudio.ChannelMergerNode; +import org.teavm.jso.webaudio.DecodeErrorCallback; +import org.teavm.jso.webaudio.DecodeSuccessCallback; +import org.teavm.jso.webaudio.GainNode; +import org.teavm.jso.webaudio.MediaElementAudioSourceNode; +import org.teavm.jso.webaudio.MediaEvent; +import org.teavm.jso.webaudio.MediaStream; +import org.teavm.jso.webaudio.MediaStreamAudioSourceNode; +import org.teavm.jso.webaudio.PannerNode; +import org.teavm.jso.webgl.WebGLBuffer; +import org.teavm.jso.webgl.WebGLFramebuffer; +import org.teavm.jso.webgl.WebGLProgram; +import org.teavm.jso.webgl.WebGLRenderbuffer; +import org.teavm.jso.webgl.WebGLShader; +import org.teavm.jso.webgl.WebGLTexture; +import org.teavm.jso.webgl.WebGLUniformLocation; +import org.teavm.jso.websocket.CloseEvent; +import org.teavm.jso.websocket.WebSocket; +import org.teavm.jso.workers.Worker; +import org.teavm.platform.Platform; +import org.teavm.platform.PlatformRunnable; + +import net.lax1dude.eaglercraft.AssetRepository; +import net.lax1dude.eaglercraft.Base64; +import net.lax1dude.eaglercraft.Client; +import net.lax1dude.eaglercraft.EaglerAdapter; +import net.lax1dude.eaglercraft.EaglerImage; +import net.lax1dude.eaglercraft.EaglerInputStream; +import net.lax1dude.eaglercraft.EaglerProfile; +import net.lax1dude.eaglercraft.EarlyLoadScreen; +import net.lax1dude.eaglercraft.ExpiringSet; +import net.lax1dude.eaglercraft.IntegratedServer; +import net.lax1dude.eaglercraft.LANPeerEvent; +import net.lax1dude.eaglercraft.LocalStorageManager; +import net.lax1dude.eaglercraft.PKT; +import net.lax1dude.eaglercraft.RelayQuery; +import net.lax1dude.eaglercraft.RelayServerSocket; +import net.lax1dude.eaglercraft.RelayWorldsQuery; +import net.lax1dude.eaglercraft.ServerQuery; +import net.lax1dude.eaglercraft.adapter.teavm.BufferConverter; +import net.lax1dude.eaglercraft.adapter.teavm.EaglercraftLANClient; +import net.lax1dude.eaglercraft.adapter.teavm.EaglercraftLANServer; +import net.lax1dude.eaglercraft.adapter.teavm.EaglercraftVoiceClient; +import net.lax1dude.eaglercraft.adapter.teavm.MessageChannel; +import net.lax1dude.eaglercraft.adapter.teavm.SelfDefence; +import net.lax1dude.eaglercraft.adapter.teavm.TeaVMUtils; +import net.lax1dude.eaglercraft.adapter.teavm.WebGL2RenderingContext; +import net.lax1dude.eaglercraft.adapter.teavm.WebGLQuery; +import net.lax1dude.eaglercraft.adapter.teavm.WebGLVertexArray; +import net.lax1dude.eaglercraft.glemu.EaglerAdapterGL30; +import net.lax1dude.eaglercraft.sp.relay.pkt.IPacket; +import net.lax1dude.eaglercraft.sp.relay.pkt.IPacket00Handshake; +import net.lax1dude.eaglercraft.sp.relay.pkt.IPacket07LocalWorlds; +import net.lax1dude.eaglercraft.sp.relay.pkt.IPacket07LocalWorlds.LocalWorld; +import net.lax1dude.eaglercraft.sp.relay.pkt.IPacket69Pong; +import net.lax1dude.eaglercraft.sp.relay.pkt.IPacketFFErrorCode; +import net.minecraft.src.MathHelper; + +public class EaglerAdapterImpl2 { + + public static final boolean _wisWebGL() { + return true; + } + public static final String _wgetShaderHeader() { + return "#version 300 es"; + } + + @JSBody(params = { }, script = "return window.location.href;") + private static native String getLocationString(); + + public static final boolean isSSLPage() { + return getLocationString().startsWith("https"); + } + + public static final InputStream loadResource(String path) { + byte[] file = loadResourceBytes(path); + if (file != null) { + return new EaglerInputStream(file); + } else { + return null; + } + } + + public static final byte[] loadResourceBytes(String path) { + return AssetRepository.getResource(path); + } + + public static final String fileContents(String path) { + byte[] contents = loadResourceBytes(path); + if(contents == null) { + return null; + }else { + return new String(contents, Charset.forName("UTF-8")); + } + } + + public static final String[] fileContentsLines(String path) { + String contents = fileContents(path); + if(contents == null) { + return null; + }else { + return contents.replace("\r\n", "\n").split("[\r\n]"); + } + } + + @Async + public static native String downloadAssetPack(String assetPackageURI); + + private static void downloadAssetPack(String assetPackageURI, final AsyncCallback cb) { + final XMLHttpRequest request = new XMLHttpRequest(); + request.setResponseType("arraybuffer"); + request.open("GET", assetPackageURI, true); + request.setOnReadyStateChange(new ReadyStateChangeHandler() { + @Override + public void stateChanged() { + if(request.getReadyState() == XMLHttpRequest.DONE) { + loadedPackage = TeaVMUtils.wrapByteArrayBuffer((ArrayBuffer)request.getResponse()); + cb.complete("yee"); + } + } + }); + request.send(); + } + + @Async + public static native byte[] downloadURL(String url); + + private static void downloadURL(String url, final AsyncCallback cb) { + if(url.isEmpty()) { + cb.complete(new byte[0]); + return; + } + final XMLHttpRequest request = new XMLHttpRequest(); + request.setResponseType("arraybuffer"); + request.open("GET", url, true); + request.setOnReadyStateChange(new ReadyStateChangeHandler() { + @Override + public void stateChanged() { + if(request.getReadyState() == XMLHttpRequest.DONE) { + cb.complete(TeaVMUtils.wrapByteArrayBuffer((ArrayBuffer)request.getResponse())); + } + } + }); + request.send(); + } + + @JSBody(params = { "v", "s" }, script = "window[v] = s;") + public static native void setDebugVar(String v, String s); + + @JSBody(params = { }, script = "if(window.navigator.userActivation){return window.navigator.userActivation.hasBeenActive;}else{return false;}") + public static native boolean hasBeenActive(); + + public static HTMLDocument doc = null; + public static HTMLElement parent = null; + public static HTMLCanvasElement canvas = null; + public static WebGL2RenderingContext webgl = null; + public static FramebufferGL backBuffer = null; + public static RenderbufferGL backBufferColor = null; + public static RenderbufferGL backBufferDepth = null; + public static Window win = null; + private static byte[] loadedPackage = null; + private static EventListener contextmenu = null; + private static EventListener mousedown = null; + private static EventListener mouseup = null; + private static EventListener mousemove = null; + private static EventListener keydown = null; + private static EventListener keyup = null; + private static EventListener keypress = null; + private static EventListener wheel = null; + private static String[] identifier = new String[0]; + private static String integratedServerScript = "worker_bootstrap.js"; + private static boolean anisotropicFilteringSupported = false; + private static boolean vsyncSupport = false; + private static int vsyncTimeout = -1; + private static boolean useDelayOnSwap = false; + private static MessageChannel immediateContinueChannel = null; + private static Runnable currentMsgChannelContinueHack = null; + + private static final EagsFileChooser fileChooser = initFileChooser(); + + public static final String[] getIdentifier() { + return identifier; + } + + @JSBody(params = { "v" }, script = "try { return \"\"+window.navigator[v]; } catch(e) { return \"\"; }") + private static native String getNavString(String var); + + public static void onWindowUnload() { + LocalStorageManager.saveStorageA(); + LocalStorageManager.saveStorageG(); + LocalStorageManager.saveStorageP(); + } + + @JSBody(params = { "m" }, script = "return m.offsetX;") + private static native int getOffsetX(MouseEvent m); + + @JSBody(params = { "m" }, script = "return m.offsetY;") + private static native int getOffsetY(MouseEvent m); + + @JSBody(params = { "e" }, script = "return e.which;") + private static native int getWhich(KeyboardEvent e); + + public static final void initializeContext(HTMLElement rootElement, String assetPackageURI, String serverWorkerURI) { + parent = rootElement; + String s = parent.getAttribute("style"); + parent.setAttribute("style", (s == null ? "" : s)+"overflow-x:hidden;overflow-y:hidden;"); + win = Window.current(); + doc = win.getDocument(); + integratedServerScript = serverWorkerURI; + double r = win.getDevicePixelRatio(); + int iw = parent.getClientWidth(); + int ih = parent.getClientHeight(); + int sw = (int)(r * iw); + int sh = (int)(r * ih); + canvas = (HTMLCanvasElement)doc.createElement("canvas"); + CSSStyleDeclaration canvasStyle = canvas.getStyle(); + canvasStyle.setProperty("width", "100%"); + canvasStyle.setProperty("height", "100%"); + canvasStyle.setProperty("image-rendering", "pixelated"); + canvas.setWidth(sw); + canvas.setHeight(sh); + rootElement.appendChild(canvas); + try { + doc.exitPointerLock(); + }catch(Throwable t) { + Client.showIncompatibleScreen("Mouse cursor lock is not available on this device!"); + throw new RuntimeException("Mouse cursor lock is not available on this device!"); + } + SelfDefence.init(canvas); + webgl = (WebGL2RenderingContext) canvas.getContext("webgl2", youEagler()); + if(webgl == null) { + Client.showIncompatibleScreen("WebGL 2.0 is not supported on this device!"); + throw new RuntimeException("WebGL 2.0 is not supported in your browser ("+getNavString("userAgent")+")"); + } + + setupBackBuffer(); + resizeBackBuffer(sw, sh); + + anisotropicFilteringSupported = webgl.getExtension("EXT_texture_filter_anisotropic") != null; + + win.addEventListener("contextmenu", contextmenu = new EventListener() { + @Override + public void handleEvent(MouseEvent evt) { + evt.preventDefault(); + evt.stopPropagation(); + } + }); + canvas.addEventListener("mousedown", mousedown = new EventListener() { + @Override + public void handleEvent(MouseEvent evt) { + int b = evt.getButton(); + buttonStates[b == 1 ? 2 : (b == 2 ? 1 : b)] = true; + mouseEvents.add(evt); + evt.preventDefault(); + evt.stopPropagation(); + } + }); + canvas.addEventListener("mouseup", mouseup = new EventListener() { + @Override + public void handleEvent(MouseEvent evt) { + int b = evt.getButton(); + buttonStates[b == 1 ? 2 : (b == 2 ? 1 : b)] = false; + mouseEvents.add(evt); + evt.preventDefault(); + evt.stopPropagation(); + } + }); + canvas.addEventListener("mousemove", mousemove = new EventListener() { + @Override + public void handleEvent(MouseEvent evt) { + mouseX = (int)(getOffsetX(evt) * win.getDevicePixelRatio()); + mouseY = (int)((canvas.getClientHeight() - getOffsetY(evt)) * win.getDevicePixelRatio()); + mouseDX += evt.getMovementX(); + mouseDY += -evt.getMovementY(); + if(hasBeenActive()) { + mouseEvents.add(evt); + } + evt.preventDefault(); + evt.stopPropagation(); + } + }); + win.addEventListener("keydown", keydown = new EventListener() { + @Override + public void handleEvent(KeyboardEvent evt) { + //keyStates[remapKey(evt.getKeyCode())] = true; + keyStates[remapKey(getWhich(evt))] = true; + keyEvents.add(evt); + evt.preventDefault(); + evt.stopPropagation(); + } + }); + win.addEventListener("keyup", keyup = new EventListener() { + @Override + public void handleEvent(KeyboardEvent evt) { + //keyStates[remapKey(evt.getKeyCode())] = false; + keyStates[remapKey(getWhich(evt))] = false; + keyEvents.add(evt); + evt.preventDefault(); + evt.stopPropagation(); + } + }); + win.addEventListener("keypress", keypress = new EventListener() { + @Override + public void handleEvent(KeyboardEvent evt) { + if(enableRepeatEvents && evt.isRepeat()) keyEvents.add(evt); + evt.preventDefault(); + evt.stopPropagation(); + } + }); + canvas.addEventListener("wheel", wheel = new EventListener() { + @Override + public void handleEvent(WheelEvent evt) { + mouseEvents.add(evt); + evt.preventDefault(); + evt.stopPropagation(); + } + }); + win.addEventListener("blur", new EventListener() { + @Override + public void handleEvent(WheelEvent evt) { + isWindowFocused = false; + } + }); + win.addEventListener("focus", new EventListener() { + @Override + public void handleEvent(WheelEvent evt) { + isWindowFocused = true; + } + }); + onBeforeCloseRegister(); + + checkImmediateContinueSupport(); + + vsyncTimeout = -1; + vsyncSupport = false; + + try { + asyncRequestAnimationFrame(); + vsyncSupport = true; + }catch(Throwable t) { + System.err.println("VSync is not supported on this browser!"); + } + + initFileChooser(); + + EarlyLoadScreen.paintScreen(); + + voiceClient = startVoiceClient(); + rtcLANClient = startRTCLANClient(); + + //todo: safely skip startRTCLANServer() if the integrated server is disabled: + + //if(integratedServerScript != null) { + rtcLANServer = startRTCLANServer(); + //} + + downloadAssetPack(assetPackageURI); + + try { + AssetRepository.install(loadedPackage); + } catch (IOException e) { + e.printStackTrace(); + } + + if(mouseEvents.isEmpty() && keyEvents.isEmpty() && !hasBeenActive()) { + EarlyLoadScreen.paintEnable(); + + while(mouseEvents.isEmpty() && keyEvents.isEmpty()) { + sleep(100); + } + } + + audioctx = new AudioContext(); + masterVolumeNode = audioctx.createGain(); + masterVolumeNode.getGain().setValue(1.0f); + masterVolumeNode.connect(audioctx.getDestination()); + musicVolumeNode = audioctx.createGain(); + musicVolumeNode.getGain().setValue(1.0f); + musicVolumeNode.connect(audioctx.getDestination()); + + mouseEvents.clear(); + keyEvents.clear(); + + Window.setInterval(new TimerHandler() { + @Override + public void onTimer() { + if(!videosBuffer.isEmpty()) { + long now = steadyTimeMillis(); + Iterator vids = videosBuffer.values().iterator(); + while(vids.hasNext()) { + BufferedVideo v = vids.next(); + if(now - v.requestedTime > v.ttl) { + v.videoElement.setSrc(""); + vids.remove(); + } + } + } + } + }, 5000); + } + + @JSBody(params = { }, script = "return window.startVoiceClient();") + private static native EaglercraftVoiceClient startVoiceClient(); + + private static interface EagsFileChooser extends JSObject { + + @JSProperty + HTMLElement getInputElement(); + + void openFileChooser(String ext, String mime); + + @JSProperty + ArrayBuffer getFileChooserResult(); + + @JSProperty + void setFileChooserResult(ArrayBuffer val); + + @JSProperty + String getFileChooserResultName(); + + @JSProperty + void setFileChooserResultName(String str); + + } + + @JSBody(params = { }, script = + "var ret = {\r\n" + + "inputElement: null,\r\n" + + "openFileChooser: function(ext, mime){\r\n" + + "var el = ret.inputElement = document.createElement(\"input\");\r\n" + + "el.type = \"file\";\r\n" + + "el.multiple = false;\r\n" + + "el.addEventListener(\"change\", function(evt){\r\n" + + "var f = ret.inputElement.files;\r\n" + + "if(f.length == 0){\r\n" + + "ret.fileChooserResult = null;\r\n" + + "}else{\r\n" + + "ret.fileChooserResult = null;\r\n" + + "ret.fileChooserResultName = null;\r\n" + + "var phile = f[0];\r\n" + + "phile.arrayBuffer().then(function(res) {\r\n" + + "ret.fileChooserResult = res;\r\n" + + "ret.fileChooserResultName = phile.name;console.log(ret);\r\n" + + "});\r\n" + + "}\r\n" + + "});\r\n" + + "el.accept = \".\" + ext;\r\n" + + "el.click();\r\n" + + "},\r\n" + + "fileChooserResult: null,\r\n" + + "fileChooserResultName: null\r\n" + + "}; return ret;") + private static native EagsFileChooser initFileChooser(); + + public static final void destroyContext() { + + } + + public static final void removeEventHandlers() { + try { + win.removeEventListener("contextmenu", contextmenu); + canvas.removeEventListener("mousedown", mousedown); + canvas.removeEventListener("mouseup", mouseup); + canvas.removeEventListener("mousemove", mousemove); + win.removeEventListener("keydown", keydown); + win.removeEventListener("keyup", keyup); + win.removeEventListener("keypress", keypress); + canvas.removeEventListener("wheel", wheel); + }catch(Throwable t) { + } + try { + String screenImg = canvas.toDataURL("image/png"); + canvas.delete(); + HTMLImageElement newImage = (HTMLImageElement) doc.createElement("img"); + newImage.setSrc(screenImg); + newImage.setWidth(parent.getClientWidth()); + newImage.setHeight(parent.getClientHeight()); + parent.appendChild(newImage); + }catch(Throwable t) { + } + } + + private static LinkedList mouseEvents = new LinkedList<>(); + private static LinkedList keyEvents = new LinkedList<>(); + + private static int mouseX = 0; + private static int mouseY = 0; + private static double mouseDX = 0.0D; + private static double mouseDY = 0.0D; + private static int width = 0; + private static int height = 0; + private static boolean enableRepeatEvents = false; + private static boolean isWindowFocused = true; + + @JSBody(params = { }, script = "return {antialias: false, depth: true, powerPreference: \"high-performance\", desynchronized: true, preserveDrawingBuffer: false, premultipliedAlpha: false, alpha: false};") + public static native JSObject youEagler(); + + @JSBody(params = { }, script = "return { willReadFrequently: true };") + public static native JSObject youEagler2(); + + public static final int _wGL_TEXTURE_2D = TEXTURE_2D; + public static final int _wGL_DEPTH_TEST = DEPTH_TEST; + public static final int _wGL_LEQUAL = LEQUAL; + public static final int _wGL_GEQUAL = GEQUAL; + public static final int _wGL_GREATER = GREATER; + public static final int _wGL_LESS = LESS; + public static final int _wGL_BACK = BACK; + public static final int _wGL_FRONT = FRONT; + public static final int _wGL_FRONT_AND_BACK = FRONT_AND_BACK; + public static final int _wGL_COLOR_BUFFER_BIT = COLOR_BUFFER_BIT; + public static final int _wGL_DEPTH_BUFFER_BIT = DEPTH_BUFFER_BIT; + public static final int _wGL_BLEND = BLEND; + public static final int _wGL_RGBA = RGBA; + public static final int _wGL_RGB = RGB; + public static final int _wGL_RGB8 = RGB8; + public static final int _wGL_RGBA8 = RGBA8; + public static final int _wGL_RED = RED; + public static final int _wGL_R8 = R8; + public static final int _wGL_UNSIGNED_BYTE = UNSIGNED_BYTE; + public static final int _wGL_UNSIGNED_SHORT = UNSIGNED_SHORT; + public static final int _wGL_SRC_ALPHA = SRC_ALPHA; + public static final int _wGL_ONE_MINUS_SRC_ALPHA = ONE_MINUS_SRC_ALPHA; + public static final int _wGL_ONE_MINUS_DST_COLOR = ONE_MINUS_DST_COLOR; + public static final int _wGL_ONE_MINUS_SRC_COLOR = ONE_MINUS_SRC_COLOR; + public static final int _wGL_ZERO = ZERO; + public static final int _wGL_CULL_FACE = CULL_FACE; + public static final int _wGL_TEXTURE_MIN_FILTER = TEXTURE_MIN_FILTER; + public static final int _wGL_TEXTURE_MAG_FILTER = TEXTURE_MAG_FILTER; + public static final int _wGL_LINEAR = LINEAR; + public static final int _wGL_EQUAL = EQUAL; + public static final int _wGL_SRC_COLOR = SRC_COLOR; + public static final int _wGL_ONE = ONE; + public static final int _wGL_NEAREST = NEAREST; + public static final int _wGL_CLAMP = CLAMP_TO_EDGE; + public static final int _wGL_TEXTURE_WRAP_S = TEXTURE_WRAP_S; + public static final int _wGL_TEXTURE_WRAP_T = TEXTURE_WRAP_T; + public static final int _wGL_REPEAT = REPEAT; + public static final int _wGL_DST_COLOR = DST_COLOR; + public static final int _wGL_DST_ALPHA = DST_ALPHA; + public static final int _wGL_FLOAT = FLOAT; + public static final int _wGL_SHORT = SHORT; + public static final int _wGL_TRIANGLES = TRIANGLES; + public static final int _wGL_TRIANGLE_STRIP = TRIANGLE_STRIP; + public static final int _wGL_TRIANGLE_FAN = TRIANGLE_FAN; + public static final int _wGL_LINE_STRIP = LINE_STRIP; + public static final int _wGL_LINES = LINES; + public static final int _wGL_PACK_ALIGNMENT = PACK_ALIGNMENT; + public static final int _wGL_UNPACK_ALIGNMENT = UNPACK_ALIGNMENT; + public static final int _wGL_TEXTURE0 = TEXTURE0; + public static final int _wGL_TEXTURE1 = TEXTURE1; + public static final int _wGL_TEXTURE2 = TEXTURE2; + public static final int _wGL_TEXTURE3 = TEXTURE3; + public static final int _wGL_VIEWPORT = VIEWPORT; + public static final int _wGL_VERTEX_SHADER = VERTEX_SHADER; + public static final int _wGL_FRAGMENT_SHADER = FRAGMENT_SHADER; + public static final int _wGL_ARRAY_BUFFER = ARRAY_BUFFER; + public static final int _wGL_ELEMENT_ARRAY_BUFFER = ELEMENT_ARRAY_BUFFER; + public static final int _wGL_STATIC_DRAW = STATIC_DRAW; + public static final int _wGL_DYNAMIC_DRAW = DYNAMIC_DRAW; + public static final int _wGL_STREAM_DRAW = STREAM_DRAW; + public static final int _wGL_INVALID_ENUM = INVALID_ENUM; + public static final int _wGL_INVALID_VALUE= INVALID_VALUE; + public static final int _wGL_INVALID_OPERATION = INVALID_OPERATION; + public static final int _wGL_OUT_OF_MEMORY = OUT_OF_MEMORY; + public static final int _wGL_CONTEXT_LOST_WEBGL = CONTEXT_LOST_WEBGL; + public static final int _wGL_FRAMEBUFFER_COMPLETE = FRAMEBUFFER_COMPLETE; + public static final int _wGL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT = FRAMEBUFFER_INCOMPLETE_ATTACHMENT; + public static final int _wGL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT; + public static final int _wGL_COLOR_ATTACHMENT0 = COLOR_ATTACHMENT0; + public static final int _wGL_DEPTH_STENCIL_ATTACHMENT = DEPTH_STENCIL_ATTACHMENT; + public static final int _wGL_DEPTH_STENCIL = DEPTH_STENCIL; + public static final int _wGL_NEAREST_MIPMAP_LINEAR = NEAREST_MIPMAP_LINEAR; + public static final int _wGL_LINEAR_MIPMAP_LINEAR = LINEAR_MIPMAP_LINEAR; + public static final int _wGL_LINEAR_MIPMAP_NEAREST = LINEAR_MIPMAP_NEAREST; + public static final int _wGL_NEAREST_MIPMAP_NEAREST = NEAREST_MIPMAP_NEAREST; + public static final int _wGL_TEXTURE_MAX_LEVEL = TEXTURE_MAX_LEVEL; + public static final int _wGL_UNSIGNED_INT_24_8 = UNSIGNED_INT_24_8; + public static final int _wGL_UNSIGNED_INT = UNSIGNED_INT; + public static final int _wGL_ANY_SAMPLES_PASSED = ANY_SAMPLES_PASSED; + public static final int _wGL_QUERY_RESULT = QUERY_RESULT; + public static final int _wGL_QUERY_RESULT_AVAILABLE = QUERY_RESULT_AVAILABLE; + public static final int _wGL_TEXTURE_MAX_ANISOTROPY = TEXTURE_MAX_ANISOTROPY_EXT; + public static final int _wGL_DEPTH24_STENCIL8 = DEPTH24_STENCIL8; + public static final int _wGL_DEPTH_COMPONENT32F = DEPTH_COMPONENT32F; + public static final int _wGL_DEPTH_ATTACHMENT = DEPTH_ATTACHMENT; + public static final int _wGL_MULTISAMPLE = -1; + public static final int _wGL_LINE_SMOOTH = -1; + public static final int _wGL_READ_FRAMEBUFFER = READ_FRAMEBUFFER; + public static final int _wGL_DRAW_FRAMEBUFFER = DRAW_FRAMEBUFFER; + public static final int _wGL_FRAMEBUFFER = FRAMEBUFFER; + public static final int _wGL_POLYGON_OFFSET_FILL = POLYGON_OFFSET_FILL; + + public static final class TextureGL { + protected final WebGLTexture obj; + public int w = -1; + public int h = -1; + public boolean nearest = true; + public boolean anisotropic = false; + protected TextureGL(WebGLTexture obj) { + this.obj = obj; + } + } + public static final class BufferGL { + protected final WebGLBuffer obj; + protected BufferGL(WebGLBuffer obj) { + this.obj = obj; + } + } + public static final class ShaderGL { + protected final WebGLShader obj; + protected ShaderGL(WebGLShader obj) { + this.obj = obj; + } + } + private static int progId = 0; + public static final class ProgramGL { + protected final WebGLProgram obj; + protected final int hashcode; + protected ProgramGL(WebGLProgram obj) { + this.obj = obj; + this.hashcode = ++progId; + } + } + public static final class UniformGL { + protected final WebGLUniformLocation obj; + protected UniformGL(WebGLUniformLocation obj) { + this.obj = obj; + } + } + public static final class BufferArrayGL { + protected final WebGLVertexArray obj; + public boolean isQuadBufferBound; + protected BufferArrayGL(WebGLVertexArray obj) { + this.obj = obj; + this.isQuadBufferBound = false; + } + } + public static final class FramebufferGL { + protected final WebGLFramebuffer obj; + protected FramebufferGL(WebGLFramebuffer obj) { + this.obj = obj; + } + } + public static final class RenderbufferGL { + protected final WebGLRenderbuffer obj; + protected RenderbufferGL(WebGLRenderbuffer obj) { + this.obj = obj; + } + } + public static final class QueryGL { + protected final WebGLQuery obj; + protected QueryGL(WebGLQuery obj) { + this.obj = obj; + } + } + + public static final boolean anisotropicFilteringSupported() { + return anisotropicFilteringSupported; + } + public static final void _wglEnable(int p1) { + webgl.enable(p1); + } + public static final void _wglClearDepth(float p1) { + webgl.clearDepth(p1); + } + public static final void _wglDepthFunc(int p1) { + webgl.depthFunc(p1); + } + public static final void _wglCullFace(int p1) { + webgl.cullFace(p1); + } + private static int[] viewportCache = new int[4]; + public static final void _wglViewport(int p1, int p2, int p3, int p4) { + viewportCache[0] = p1; viewportCache[1] = p2; + viewportCache[2] = p3; viewportCache[3] = p4; + webgl.viewport(p1, p2, p3, p4); + } + public static final void _wglClear(int p1) { + webgl.clear(p1); + } + public static final void _wglClearColor(float p1, float p2, float p3, float p4) { + webgl.clearColor(p1, p2, p3, p4); + } + public static final void _wglDisable(int p1) { + webgl.disable(p1); + } + public static final int _wglGetError() { + return webgl.getError(); + } + public static final void _wglFlush() { + //webgl.flush(); + } + public static final void _wglTexImage2D(int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, ByteBuffer p9) { + webgl.texImage2D(p1, p2, p3, p4, p5, p6, p7, p8, p9 != null ? BufferConverter.convertByteBufferUnsigned(p9) : null); + } + public static final void _wglBlendFunc(int p1, int p2) { + webgl.blendFunc(p1, p2); + } + public static final void _wglBlendFuncSeparate(int p1, int p2, int p3, int p4) { + webgl.blendFuncSeparate(p1, p2, p3, p4); + } + public static final void _wglBlendColor(float r, float g, float b, float a) { + webgl.blendColor(r, g, b, a); + } + public static final void _wglDepthMask(boolean p1) { + webgl.depthMask(p1); + } + public static final void _wglColorMask(boolean p1, boolean p2, boolean p3, boolean p4) { + webgl.colorMask(p1, p2, p3, p4); + } + public static final void _wglBindTexture(int p1, TextureGL p2) { + webgl.bindTexture(p1, p2 == null ? null : p2.obj); + } + public static final void _wglCopyTexSubImage2D(int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8) { + webgl.copyTexSubImage2D(p1, p2, p3, p4, p5, p6, p7, p8); + } + public static final void _wglTexParameteri(int p1, int p2, int p3) { + webgl.texParameteri(p1, p2, p3); + } + public static final void _wglTexParameterf(int p1, int p2, float p3) { + webgl.texParameterf(p1, p2, p3); + } + public static final void _wglTexImage2D(int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, IntBuffer p9) { + webgl.texImage2D(p1, p2, p3, p4, p5, p6, p7, p8, p9 != null ? BufferConverter.convertIntBufferUnsigned(p9) : null); + } + public static final void _wglTexSubImage2D(int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, IntBuffer p9) { + webgl.texSubImage2D(p1, p2, p3, p4, p5, p6, p7, p8, p9 != null ? BufferConverter.convertIntBufferUnsigned(p9) : null); + } + public static final void _wglDeleteTextures(TextureGL p1) { + webgl.deleteTexture(p1.obj); + } + public static final void _wglDrawArrays(int p1, int p2, int p3) { + webgl.drawArrays(p1, p2, p3); + } + public static final void _wglDrawElements(int p1, int p2, int p3, int p4) { + webgl.drawElements(p1, p2, p3, p4); + } + public static final TextureGL _wglGenTextures() { + return new TextureGL(webgl.createTexture()); + } + public static final void _wglTexSubImage2D(int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, ByteBuffer p9) { + webgl.texSubImage2D(p1, p2, p3, p4, p5, p6, p7, p8, p9 != null ? BufferConverter.convertByteBufferUnsigned(p9) : null); + } + public static final void _wglActiveTexture(int p1) { + webgl.activeTexture(p1); + } + public static final ProgramGL _wglCreateProgram() { + return new ProgramGL(webgl.createProgram()); + } + public static final ShaderGL _wglCreateShader(int p1) { + return new ShaderGL(webgl.createShader(p1)); + } + public static final void _wglAttachShader(ProgramGL p1, ShaderGL p2) { + webgl.attachShader(p1.obj, p2.obj); + } + public static final void _wglDetachShader(ProgramGL p1, ShaderGL p2) { + webgl.detachShader(p1.obj, p2.obj); + } + public static final void _wglCompileShader(ShaderGL p1) { + webgl.compileShader(p1.obj); + } + public static final void _wglLinkProgram(ProgramGL p1) { + webgl.linkProgram(p1.obj); + } + public static final void _wglShaderSource(ShaderGL p1, String p2) { + webgl.shaderSource(p1.obj, p2); + } + public static final String _wglGetShaderInfoLog(ShaderGL p1) { + return webgl.getShaderInfoLog(p1.obj); + } + public static final String _wglGetProgramInfoLog(ProgramGL p1) { + return webgl.getProgramInfoLog(p1.obj); + } + public static final boolean _wglGetShaderCompiled(ShaderGL p1) { + return webgl.getShaderParameteri(p1.obj, COMPILE_STATUS) == 1; + } + public static final boolean _wglGetProgramLinked(ProgramGL p1) { + return webgl.getProgramParameteri(p1.obj, LINK_STATUS) == 1; + } + public static final void _wglDeleteShader(ShaderGL p1) { + webgl.deleteShader(p1.obj); + } + public static final void _wglDeleteProgram(ProgramGL p1) { + webgl.deleteProgram(p1.obj); + } + public static final BufferGL _wglCreateBuffer() { + return new BufferGL(webgl.createBuffer()); + } + public static final void _wglDeleteBuffer(BufferGL p1) { + webgl.deleteBuffer(p1.obj); + } + public static final void _wglBindBuffer(int p1, BufferGL p2) { + webgl.bindBuffer(p1, p2 == null ? null : p2.obj); + } + public static final void _wglBufferData0(int p1, IntBuffer p2, int p3) { + webgl.bufferData(p1, p2 != null ? BufferConverter.convertIntBufferUnsigned(p2) : null, p3); + } + public static final void _wglBufferSubData0(int p1, int p2, IntBuffer p3) { + webgl.bufferSubData(p1, p2, p3 != null ? BufferConverter.convertIntBufferUnsigned(p3) : null); + } + public static final void _wglBufferData(int p1, Object p2, int p3) { + webgl.bufferData(p1, (Int32Array)p2, p3); + } + public static final void _wglBufferData00(int p1, long len, int p3) { + webgl.bufferData(p1, (int)len, p3); + } + public static final void _wglBufferSubData(int p1, int p2, Object p3) { + webgl.bufferSubData(p1, p2, (Int32Array)p3); + } + public static final void _wglBindAttribLocation(ProgramGL p1, int p2, String p3) { + webgl.bindAttribLocation(p1.obj, p2, p3); + } + public static final void _wglEnableVertexAttribArray(int p1) { + webgl.enableVertexAttribArray(p1); + } + public static final void _wglDisableVertexAttribArray(int p1) { + webgl.disableVertexAttribArray(p1); + } + public static final UniformGL _wglGetUniformLocation(ProgramGL p1, String p2) { + WebGLUniformLocation u = webgl.getUniformLocation(p1.obj, p2); + return u == null ? null : new UniformGL(u); + } + public static final void _wglBindAttributeLocation(ProgramGL p1, int p2, String p3) { + webgl.bindAttribLocation(p1.obj, p2, p3); + } + public static final void _wglUniform1f(UniformGL p1, float p2) { + if(p1 != null) webgl.uniform1f(p1.obj, p2); + } + public static final void _wglUniform2f(UniformGL p1, float p2, float p3) { + if(p1 != null) webgl.uniform2f(p1.obj, p2, p3); + } + public static final void _wglUniform3f(UniformGL p1, float p2, float p3, float p4) { + if(p1 != null) webgl.uniform3f(p1.obj, p2, p3, p4); + } + public static final void _wglUniform4f(UniformGL p1, float p2, float p3, float p4, float p5) { + if(p1 != null) webgl.uniform4f(p1.obj, p2, p3, p4, p5); + } + public static final void _wglUniform1i(UniformGL p1, int p2) { + if(p1 != null) webgl.uniform1i(p1.obj, p2); + } + public static final void _wglUniform2i(UniformGL p1, int p2, int p3) { + if(p1 != null) webgl.uniform2i(p1.obj, p2, p3); + } + public static final void _wglUniform3i(UniformGL p1, int p2, int p3, int p4) { + if(p1 != null) webgl.uniform3i(p1.obj, p2, p3, p4); + } + public static final void _wglUniform4i(UniformGL p1, int p2, int p3, int p4, int p5) { + if(p1 != null) webgl.uniform4i(p1.obj, p2, p3, p4, p5); + } + public static final void _wglUniformMat2fv(UniformGL p1, float[] mat) { + if(p1 != null) webgl.uniformMatrix2fv(p1.obj, false, TeaVMUtils.unwrapFloatArray(mat)); + } + public static final void _wglUniformMat3fv(UniformGL p1, float[] mat) { + if(p1 != null) webgl.uniformMatrix3fv(p1.obj, false, TeaVMUtils.unwrapFloatArray(mat)); + } + public static final void _wglUniformMat4fv(UniformGL p1, float[] mat) { + if(p1 != null) webgl.uniformMatrix4fv(p1.obj, false, TeaVMUtils.unwrapFloatArray(mat)); + } + private static int currentProgram = -1; + public static final void _wglUseProgram(ProgramGL p1) { + if(p1 != null && currentProgram != p1.hashcode) { + currentProgram = p1.hashcode; + webgl.useProgram(p1.obj); + } + } + public static final void _wglGetParameter(int p1, int size, int[] ret) { + if(p1 == _wGL_VIEWPORT) { + ret[0] = viewportCache[0]; + ret[1] = viewportCache[1]; + ret[2] = viewportCache[2]; + ret[3] = viewportCache[3]; + } + } + public static final void _wglPolygonOffset(float p1, float p2) { + webgl.polygonOffset(p1, p2); + } + public static final void _wglVertexAttribPointer(int p1, int p2, int p3, boolean p4, int p5, int p6) { + webgl.vertexAttribPointer(p1, p2, p3, p4, p5, p6); + } + public static final void _wglBindFramebuffer(int p1, FramebufferGL p2) { + webgl.bindFramebuffer(p1, p2 == null ? backBuffer.obj : p2.obj); + } + public static final void _wglReadBuffer(int p1) { + webgl.readBuffer(p1); + } + public static final FramebufferGL _wglCreateFramebuffer() { + return new FramebufferGL(webgl.createFramebuffer()); + } + public static final void _wglDeleteFramebuffer(FramebufferGL p1) { + webgl.deleteFramebuffer(p1.obj); + } + public static final void _wglFramebufferTexture2D(int p1, TextureGL p2) { + webgl.framebufferTexture2D(FRAMEBUFFER, p1, TEXTURE_2D, p2 == null ? null : p2.obj, 0); + } + public static final void _wglFramebufferTexture2D(int p1, TextureGL p2, int p3) { + webgl.framebufferTexture2D(FRAMEBUFFER, p1, TEXTURE_2D, p2 == null ? null : p2.obj, p3); + } + public static final QueryGL _wglCreateQuery() { + return new QueryGL(webgl.createQuery()); + } + public static final void _wglBeginQuery(int p1, QueryGL p2) { + webgl.beginQuery(p1, p2.obj); + } + public static final void _wglEndQuery(int p1) { + webgl.endQuery(p1); + } + public static final void _wglDeleteQuery(QueryGL p1) { + webgl.deleteQuery(p1.obj); + } + public static final int _wglGetQueryObjecti(QueryGL p1, int p2) { + return webgl.getQueryParameter(p1.obj, p2); + } + public static final BufferArrayGL _wglCreateVertexArray() { + return new BufferArrayGL(webgl.createVertexArray()); + } + public static final void _wglDeleteVertexArray(BufferArrayGL p1) { + webgl.deleteVertexArray(p1.obj); + } + public static final void _wglBindVertexArray(BufferArrayGL p1) { + webgl.bindVertexArray(p1 == null ? null : p1.obj); + } + public static final void _wglDrawBuffer(int p1) { + webgl.drawBuffers(new int[] { p1 }); + } + public static final RenderbufferGL _wglCreateRenderBuffer() { + return new RenderbufferGL(webgl.createRenderbuffer()); + } + public static final void _wglBindRenderbuffer(RenderbufferGL p1) { + webgl.bindRenderbuffer(RENDERBUFFER, p1 == null ? null : p1.obj); + } + public static final void _wglRenderbufferStorage(int p1, int p2, int p3) { + webgl.renderbufferStorage(RENDERBUFFER, p1, p2, p3); + } + public static final void _wglFramebufferRenderbuffer(int p1, RenderbufferGL p2) { + webgl.framebufferRenderbuffer(FRAMEBUFFER, p1, RENDERBUFFER, p2 == null ? null : p2.obj); + } + public static final void _wglDeleteRenderbuffer(RenderbufferGL p1) { + webgl.deleteRenderbuffer(p1.obj); + } + public static final void _wglRenderbufferStorageMultisample(int p1, int p2, int p3, int p4) { + webgl.renderbufferStorageMultisample(RENDERBUFFER, p1, p2, p3, p4); + } + public static final void _wglBlitFramebuffer(int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10) { + webgl.blitFramebuffer(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10); + } + public static final int _wglGetAttribLocation(ProgramGL p1, String p2) { + return webgl.getAttribLocation(p1.obj, p2); + } + + @JSBody(params = { "ctx", "p" }, script = "return ctx.getTexParameter(0x0DE1, p) | 0;") + private static final native int __wglGetTexParameteri(WebGL2RenderingContext ctx, int p); + public static final int _wglGetTexParameteri(int p1) { + return __wglGetTexParameteri(webgl, p1); + } + @JSBody(params = { "ctx", "p" }, script = "return (0.0 + ctx.getTexParameter(0x0DE1, p));") + private static final native float __wglGetTexParameterf(WebGL2RenderingContext ctx, int p); + public static final float _wglGetTexParameterf(int p1) { + return __wglGetTexParameterf(webgl, p1); + } + public static final boolean isWindows() { + return getNavString("platform").toLowerCase().contains("win"); + } + public static final boolean glNeedsAnisotropicFix() { + return anisotropicFilteringSupported && DetectAnisotropicGlitch.hasGlitch(); + } + + private static HTMLCanvasElement imageLoadCanvas = null; + private static CanvasRenderingContext2D imageLoadContext = null; + + @JSBody(params = { "buf", "mime" }, script = "return URL.createObjectURL(new Blob([buf], {type: mime}));") + private static native String getDataURL(ArrayBuffer buf, String mime); + + @JSBody(params = { "url" }, script = "URL.revokeObjectURL(url);") + private static native void freeDataURL(String url); + + public static final EaglerImage loadPNG(byte[] data) { + return loadPNG0(TeaVMUtils.unwrapArrayBuffer(data)); + } + + @JSBody(params = { "cccc", "ennn" }, script = "cccc.imageSmoothingEnabled = ennn;") + private static native void setImageSmoothingMode(CanvasRenderingContext2D cc, boolean en); + + @Async + private static native EaglerImage loadPNG0(ArrayBuffer data); + + private static void loadPNG0(ArrayBuffer data, final AsyncCallback ret) { + final HTMLImageElement toLoad = (HTMLImageElement) doc.createElement("img"); + toLoad.addEventListener("load", new EventListener() { + @Override + public void handleEvent(Event evt) { + if(imageLoadCanvas == null) { + imageLoadCanvas = (HTMLCanvasElement) doc.createElement("canvas"); + } + if(imageLoadCanvas.getWidth() < toLoad.getWidth()) { + imageLoadCanvas.setWidth(toLoad.getWidth()); + } + if(imageLoadCanvas.getHeight() < toLoad.getHeight()) { + imageLoadCanvas.setHeight(toLoad.getHeight()); + } + if(imageLoadContext == null) { + imageLoadContext = (CanvasRenderingContext2D) imageLoadCanvas.getContext("2d", youEagler2()); + setImageSmoothingMode(imageLoadContext, false); + } + imageLoadContext.clearRect(0, 0, toLoad.getWidth(), toLoad.getHeight()); + imageLoadContext.drawImage(toLoad, 0, 0, toLoad.getWidth(), toLoad.getHeight()); + ImageData pxlsDat = imageLoadContext.getImageData(0, 0, toLoad.getWidth(), toLoad.getHeight()); + Uint8ClampedArray pxls = pxlsDat.getData(); + int totalPixels = pxlsDat.getWidth() * pxlsDat.getHeight(); + freeDataURL(toLoad.getSrc()); + if(pxls.getByteLength() < totalPixels << 2) { + ret.complete(null); + return; + } + DataView dv = new DataView(pxls.getBuffer()); + int[] pixels = new int[totalPixels]; + for(int i = 0, j; i < pixels.length; ++i) { + j = dv.getUint32(i << 2, false); + pixels[i] = ((j >> 8) & 0xFFFFFF) | ((j & 0xFF) << 24); + } + ret.complete(new EaglerImage(pixels, pxlsDat.getWidth(), pxlsDat.getHeight(), true)); + } + }); + toLoad.addEventListener("error", new EventListener() { + @Override + public void handleEvent(Event evt) { + freeDataURL(toLoad.getSrc()); + ret.complete(null); + } + }); + String src = getDataURL(data, "image/png"); + if(src == null) { + ret.complete(null); + }else { + toLoad.setSrc(src); + } + } + + private static HTMLVideoElement currentVideo = null; + private static TextureGL videoTexture = null; + private static boolean videoIsLoaded = false; + private static boolean videoTexIsInitialized = false; + private static int frameRate = 33; + private static long frameTimer = 0l; + + public static final boolean isVideoSupported() { + return true; + } + public static final void loadVideo(String src, boolean autoplay) { + loadVideo(src, autoplay, null, null); + } + public static final void loadVideo(String src, boolean autoplay, String setJavascriptPointer) { + loadVideo(src, autoplay, setJavascriptPointer, null); + } + + @JSBody(params = { "ptr", "el" }, script = "window[ptr] = el;") + private static native void setVideoPointer(String ptr, HTMLVideoElement el); + @JSBody(params = { "ptr", "el" }, script = "window[ptr](el);") + private static native void callVideoLoadEvent(String ptr, HTMLVideoElement el); + + private static MediaElementAudioSourceNode currentVideoAudioSource = null; + + private static GainNode currentVideoAudioGain = null; + private static float currentVideoAudioGainValue = 1.0f; + + private static PannerNode currentVideoAudioPanner = null; + private static float currentVideoAudioX = 0.0f; + private static float currentVideoAudioY = 0.0f; + private static float currentVideoAudioZ = 0.0f; + + public static final void loadVideo(String src, boolean autoplay, String setJavascriptPointer, final String javascriptOnloadFunction) { + videoIsLoaded = false; + videoTexIsInitialized = false; + if(videoTexture == null) { + videoTexture = _wglGenTextures(); + } + if(currentVideo != null) { + currentVideo.pause(); + currentVideo.setSrc(""); + } + + BufferedVideo vid = videosBuffer.get(src); + + if(vid != null) { + currentVideo = vid.videoElement; + videosBuffer.remove(src); + }else { + currentVideo = (HTMLVideoElement) win.getDocument().createElement("video"); + currentVideo.setAttribute("crossorigin", "anonymous"); + currentVideo.setAutoplay(autoplay); + } + + if(setJavascriptPointer != null) { + setVideoPointer(setJavascriptPointer, currentVideo); + } + + currentVideo.addEventListener("playing", new EventListener() { + @Override + public void handleEvent(Event evt) { + videoIsLoaded = true; + if(javascriptOnloadFunction != null) { + callVideoLoadEvent(javascriptOnloadFunction, currentVideo); + } + } + }); + + if(vid == null) { + currentVideo.setControls(false); + currentVideo.setSrc(src); + }else { + if(autoplay) { + currentVideo.play(); + } + } + + if(currentVideoAudioSource != null) { + currentVideoAudioSource.disconnect(); + } + + currentVideoAudioSource = audioctx.createMediaElementSource(currentVideo); + + if(currentVideoAudioGainValue < 0.0f) { + currentVideoAudioSource.connect(masterVolumeNode); + }else { + if(currentVideoAudioGain == null) { + currentVideoAudioGain = audioctx.createGain(); + currentVideoAudioGain.getGain().setValue(currentVideoAudioGainValue > 1.0f ? 1.0f : currentVideoAudioGainValue); + } + + currentVideoAudioSource.connect(currentVideoAudioGain); + + if(currentVideoAudioPanner == null) { + currentVideoAudioPanner = audioctx.createPanner(); + currentVideoAudioPanner.setRolloffFactor(1f); + currentVideoAudioPanner.setDistanceModel("linear"); + currentVideoAudioPanner.setPanningModel("HRTF"); + currentVideoAudioPanner.setConeInnerAngle(360f); + currentVideoAudioPanner.setConeOuterAngle(0f); + currentVideoAudioPanner.setConeOuterGain(0f); + currentVideoAudioPanner.setOrientation(0f, 1f, 0f); + currentVideoAudioPanner.setPosition(currentVideoAudioX, currentVideoAudioY, currentVideoAudioZ); + currentVideoAudioPanner.setMaxDistance(currentVideoAudioGainValue * 16f + 0.1f); + currentVideoAudioGain.connect(currentVideoAudioPanner); + currentVideoAudioPanner.connect(audioctx.getDestination()); + } + } + + } + + private static class BufferedVideo { + + protected final HTMLVideoElement videoElement; + protected final String url; + protected final long requestedTime; + protected final int ttl; + + public BufferedVideo(HTMLVideoElement videoElement, String url, int ttl) { + this.videoElement = videoElement; + this.url = url; + this.requestedTime = steadyTimeMillis(); + this.ttl = ttl; + } + + } + + private static final HashMap videosBuffer = new HashMap<>(); + + public static final void bufferVideo(String src, int ttl) { + if(!videosBuffer.containsKey(src)) { + HTMLVideoElement video = (HTMLVideoElement) win.getDocument().createElement("video"); + video.setAutoplay(false); + video.setAttribute("crossorigin", "anonymous"); + video.setPreload("auto"); + video.setControls(false); + video.setSrc(src); + videosBuffer.put(src, new BufferedVideo(video, src, ttl)); + } + } + + public static final void unloadVideo() { + if(videoTexture != null) { + _wglDeleteTextures(videoTexture); + videoTexture = null; + } + if(currentVideo != null) { + currentVideo.pause(); + currentVideo.setSrc(""); + currentVideo = null; + } + if(currentVideoAudioSource != null) { + currentVideoAudioSource.disconnect(); + } + } + public static final boolean isVideoLoaded() { + return videoTexture != null && currentVideo != null && videoIsLoaded; + } + public static final boolean isVideoPaused() { + return currentVideo == null || currentVideo.isPaused(); + } + public static final void setVideoPaused(boolean pause) { + if(currentVideo != null) { + if(pause) { + currentVideo.pause(); + }else { + currentVideo.play(); + } + } + } + public static final void setVideoLoop(boolean loop) { + if(currentVideo != null) { + currentVideo.setLoop(loop); + } + } + public static final void setVideoVolume(float x, float y, float z, float v) { + currentVideoAudioX = x; + currentVideoAudioY = y; + currentVideoAudioZ = z; + if(v < 0.0f) { + if(currentVideoAudioGainValue >= 0.0f && currentVideoAudioSource != null) { + currentVideoAudioSource.disconnect(); + currentVideoAudioSource.connect(masterVolumeNode); + } + currentVideoAudioGainValue = v; + }else { + if(currentVideoAudioGain != null) { + currentVideoAudioGain.getGain().setValue(v > 1.0f ? 1.0f : v); + if(currentVideoAudioGainValue < 0.0f && currentVideoAudioSource != null) { + currentVideoAudioSource.disconnect(); + currentVideoAudioSource.connect(currentVideoAudioGain); + } + } + currentVideoAudioGainValue = v; + if(currentVideoAudioPanner != null) { + currentVideoAudioPanner.setMaxDistance(v * 16f + 0.1f); + currentVideoAudioPanner.setPosition(x, y, z); + } + } + } + + @JSBody( + params = {"ctx", "target", "internalformat", "format", "type", "video"}, + script = "ctx.texImage2D(target, 0, internalformat, format, type, video);" + ) + private static native void html5VideoTexImage2D(WebGL2RenderingContext ctx, int target, int internalformat, int format, int type, HTMLVideoElement video); + + @JSBody( + params = {"ctx", "target", "format", "type", "video"}, + script = "ctx.texSubImage2D(target, 0, 0, 0, format, type, video);" + ) + private static native void html5VideoTexSubImage2D(WebGL2RenderingContext ctx, int target, int format, int type, HTMLVideoElement video); + + public static final void updateVideoTexture() { + long ms = steadyTimeMillis(); + if(ms - frameTimer < frameRate && videoTexIsInitialized) { + return; + } + frameTimer = ms; + if(currentVideo != null && videoTexture != null && videoIsLoaded) { + try { + _wglBindTexture(_wGL_TEXTURE_2D, videoTexture); + if(videoTexIsInitialized) { + html5VideoTexSubImage2D(webgl, _wGL_TEXTURE_2D, _wGL_RGBA, _wGL_UNSIGNED_BYTE, currentVideo); + }else { + html5VideoTexImage2D(webgl, _wGL_TEXTURE_2D, _wGL_RGBA, _wGL_RGBA, _wGL_UNSIGNED_BYTE, currentVideo); + _wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_WRAP_S, _wGL_CLAMP); + _wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_WRAP_T, _wGL_CLAMP); + _wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_MIN_FILTER, _wGL_LINEAR); + _wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_MAG_FILTER, _wGL_LINEAR); + videoTexIsInitialized = true; + } + }catch(Throwable t) { + // rip + } + } + } + public static final void bindVideoTexture() { + if(videoTexture != null) { + _wglBindTexture(_wGL_TEXTURE_2D, videoTexture); + } + } + public static final int getVideoWidth() { + if(currentVideo != null && videoIsLoaded) { + return currentVideo.getWidth(); + }else { + return -1; + } + } + public static final int getVideoHeight() { + if(currentVideo != null && videoIsLoaded) { + return currentVideo.getHeight(); + }else { + return -1; + } + } + public static final float getVideoCurrentTime() { + if(currentVideo != null && videoIsLoaded) { + return (float) currentVideo.getCurrentTime(); + }else { + return -1.0f; + } + } + public static final void setVideoCurrentTime(float seconds) { + if(currentVideo != null && videoIsLoaded) { + currentVideo.setCurrentTime(seconds); + } + } + public static final float getVideoDuration() { + if(currentVideo != null && videoIsLoaded) { + return (float) currentVideo.getDuration(); + }else { + return -1.0f; + } + } + + public static final int VIDEO_ERR_NONE = -1; + public static final int VIDEO_ERR_ABORTED = 1; + public static final int VIDEO_ERR_NETWORK = 2; + public static final int VIDEO_ERR_DECODE = 3; + public static final int VIDEO_ERR_SRC_NOT_SUPPORTED = 4; + + public static final int getVideoError() { + if(currentVideo != null && videoIsLoaded) { + MediaError err = currentVideo.getError(); + if(err != null) { + return err.getCode(); + }else { + return -1; + } + }else { + return -1; + } + } + + public static final void setVideoFrameRate(float fps) { + frameRate = (int)(1000.0f / fps); + if(frameRate < 1) { + frameRate = 1; + } + } + + private static HTMLImageElement currentImage = null; + private static TextureGL imageTexture = null; + private static boolean imageIsLoaded = false; + private static boolean imageTexIsInitialized = false; + private static int imageFrameRate = 33; + private static long imageFrameTimer = 0l; + + public static final boolean isImageSupported() { + return true; + } + public static final void loadImage(String src) { + loadImage(src, null); + } + public static final void loadImage(String src, String setJavascriptPointer) { + loadImage(src, setJavascriptPointer, null); + } + + @JSBody(params = { "ptr", "el" }, script = "window[ptr] = el;") + private static native void setImagePointer(String ptr, HTMLImageElement el); + @JSBody(params = { "ptr", "el" }, script = "window[ptr](el);") + private static native void callImageLoadEvent(String ptr, HTMLImageElement el); + + public static final void loadImage(String src, String setJavascriptPointer, final String javascriptOnloadFunction) { + imageIsLoaded = false; + imageTexIsInitialized = false; + if(imageTexture == null) { + imageTexture = _wglGenTextures(); + } + if(currentImage != null) { + currentImage.setSrc(""); + } + + BufferedImageElem img = imagesBuffer.get(src); + + if(img != null) { + currentImage = img.imageElement; + imagesBuffer.remove(src); + }else { + currentImage = (HTMLImageElement) win.getDocument().createElement("img"); + currentImage.setAttribute("crossorigin", "anonymous"); + } + + if(setJavascriptPointer != null) { + setImagePointer(setJavascriptPointer, currentImage); + } + + currentImage.addEventListener("load", new EventListener() { + @Override + public void handleEvent(Event evt) { + imageIsLoaded = true; + if(javascriptOnloadFunction != null) { + callImageLoadEvent(javascriptOnloadFunction, currentImage); + } + } + }); + + if(img == null) { + currentImage.setSrc(src); + } + } + + private static class BufferedImageElem { + + protected final HTMLImageElement imageElement; + protected final String url; + protected final long requestedTime; + protected final int ttl; + + public BufferedImageElem(HTMLImageElement imageElement, String url, int ttl) { + this.imageElement = imageElement; + this.url = url; + this.requestedTime = steadyTimeMillis(); + this.ttl = ttl; + } + + } + + private static final HashMap imagesBuffer = new HashMap<>(); + + public static final void bufferImage(String src, int ttl) { + if(!imagesBuffer.containsKey(src)) { + HTMLImageElement image = (HTMLImageElement) win.getDocument().createElement("img"); + image.setAttribute("crossorigin", "anonymous"); + image.setSrc(src); + imagesBuffer.put(src, new BufferedImageElem(image, src, ttl)); + } + } + + public static final void unloadImage() { + if(imageTexture != null) { + _wglDeleteTextures(imageTexture); + imageTexture = null; + } + if(currentImage != null) { + currentImage.setSrc(""); + currentImage = null; + } + } + public static final boolean isImageLoaded() { + return imageTexture != null && currentImage != null && imageIsLoaded; + } + + @JSBody( + params = {"ctx", "target", "internalformat", "format", "type", "image"}, + script = "ctx.texImage2D(target, 0, internalformat, format, type, image);" + ) + private static native void html5ImageTexImage2D(WebGL2RenderingContext ctx, int target, int internalformat, int format, int type, HTMLImageElement image); + + @JSBody( + params = {"ctx", "target", "format", "type", "image"}, + script = "ctx.texSubImage2D(target, 0, 0, 0, format, type, image);" + ) + private static native void html5ImageTexSubImage2D(WebGL2RenderingContext ctx, int target, int format, int type, HTMLImageElement image); + + public static final void updateImageTexture() { + long ms = steadyTimeMillis(); + if(ms - imageFrameTimer < imageFrameRate && imageTexIsInitialized) { + return; + } + imageFrameTimer = ms; + if(currentImage != null && imageTexture != null && imageIsLoaded) { + try { + _wglBindTexture(_wGL_TEXTURE_2D, imageTexture); + if(imageTexIsInitialized) { + html5ImageTexSubImage2D(webgl, _wGL_TEXTURE_2D, _wGL_RGBA, _wGL_UNSIGNED_BYTE, currentImage); + }else { + html5ImageTexImage2D(webgl, _wGL_TEXTURE_2D, _wGL_RGBA, _wGL_RGBA, _wGL_UNSIGNED_BYTE, currentImage); + _wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_WRAP_S, _wGL_CLAMP); + _wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_WRAP_T, _wGL_CLAMP); + _wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_MIN_FILTER, _wGL_LINEAR); + _wglTexParameteri(_wGL_TEXTURE_2D, _wGL_TEXTURE_MAG_FILTER, _wGL_LINEAR); + imageTexIsInitialized = true; + } + }catch(Throwable t) { + // rip + } + } + } + public static final void bindImageTexture() { + if(imageTexture != null) { + _wglBindTexture(_wGL_TEXTURE_2D, imageTexture); + } + } + public static final int getImageWidth() { + if(currentImage != null && imageIsLoaded) { + return currentImage.getWidth(); + }else { + return -1; + } + } + public static final int getImageHeight() { + if(currentImage != null && imageIsLoaded) { + return currentImage.getHeight(); + }else { + return -1; + } + } + + public static final void setImageFrameRate(float fps) { + frameRate = (int)(1000.0f / fps); + if(frameRate < 1) { + frameRate = 1; + } + } + + private static MouseEvent currentEvent = null; + private static KeyboardEvent currentEventK = null; + private static boolean[] buttonStates = new boolean[8]; + private static boolean[] keyStates = new boolean[256]; + public static final boolean mouseNext() { + currentEvent = null; + return !mouseEvents.isEmpty() && (currentEvent = mouseEvents.remove(0)) != null; + } + public static final int mouseGetEventButton() { + if(currentEvent == null || currentEvent.getType().equals(MouseEvent.MOUSEMOVE)) return -1; + int b = currentEvent.getButton(); + return b == 1 ? 2 : (b == 2 ? 1 : b); + } + public static final boolean mouseGetEventButtonState() { + return currentEvent == null ? false : currentEvent.getType().equals(MouseEvent.MOUSEDOWN); + } + public static final boolean mouseIsButtonDown(int p1) { + return buttonStates[p1]; + } + public static final int mouseGetEventDWheel() { + return ("wheel".equals(currentEvent.getType())) ? (((WheelEvent)currentEvent).getDeltaY() == 0.0D ? 0 : (((WheelEvent)currentEvent).getDeltaY() > 0.0D ? -1 : 1)) : 0; + } + public static final void mouseSetCursorPosition(int x, int y) { + + } + private static long mouseUngrabTimer = 0l; + private static int mouseUngrabTimeout = 0; + public static final void mouseSetGrabbed(boolean grabbed) { + if(grabbed) { + canvas.requestPointerLock(); + long t = steadyTimeMillis(); + if(mouseUngrabTimeout != 0) Window.clearTimeout(mouseUngrabTimeout); + mouseUngrabTimeout = 0; + if(t - mouseUngrabTimer < 3000l) { + mouseUngrabTimeout = Window.setTimeout(new TimerHandler() { + @Override + public void onTimer() { + canvas.requestPointerLock(); + } + }, 3000 - (int)(t - mouseUngrabTimer)); + } + }else { + mouseUngrabTimer = steadyTimeMillis(); + if(mouseUngrabTimeout != 0) Window.clearTimeout(mouseUngrabTimeout); + mouseUngrabTimeout = 0; + doc.exitPointerLock(); + } + } + public static final int mouseGetDX() { + double dx = mouseDX; + mouseDX = 0.0D; + return (int)dx; + } + public static final int mouseGetDY() { + double dy = mouseDY; + mouseDY = 0.0D; + return (int)dy; + } + public static final int mouseGetX() { + return mouseX; + } + public static final int mouseGetY() { + return mouseY; + } + public static final int mouseGetEventX() { + return currentEvent == null ? -1 : (int)(currentEvent.getClientX() * win.getDevicePixelRatio()); + } + public static final int mouseGetEventY() { + return currentEvent == null ? -1 : (int)((canvas.getClientHeight() - currentEvent.getClientY()) * win.getDevicePixelRatio()); + } + public static final boolean keysNext() { + if(unpressCTRL) { //un-press ctrl after copy/paste permission + keyEvents.clear(); + currentEventK = null; + keyStates[29] = false; + keyStates[157] = false; + keyStates[28] = false; + keyStates[219] = false; + keyStates[220] = false; + unpressCTRL = false; + return false; + } + currentEventK = null; + return !keyEvents.isEmpty() && (currentEventK = keyEvents.remove(0)) != null; + } + public static final int getEventKey() { + return currentEventK == null ? -1 : remapKey(getWhich(currentEventK)); + } + public static final char getEventChar() { + if(currentEventK == null) return '\0'; + String s = currentEventK.getKey(); + return currentEventK == null ? ' ' : (char) (s.length() > 1 ? '\0' : s.charAt(0)); + } + public static final boolean getEventKeyState() { + return currentEventK == null? false : !currentEventK.getType().equals("keyup"); + } + public static final boolean isKeyDown(int p1) { + if(unpressCTRL) { //un-press ctrl after copy/paste permission + keyStates[28] = false; + keyStates[29] = false; + keyStates[157] = false; + keyStates[219] = false; + keyStates[220] = false; + } + return keyStates[p1]; + } + public static final String getKeyName(int p1) { + return (p1 >= 0 && p1 < 256) ? LWJGLKeyNames[p1] : "null"; + } + public static final void setFullscreen(boolean p1) { + Window.alert("use F11 to enter fullscreen"); + } + public static final boolean shouldShutdown() { + return false; + } + public static final boolean isVSyncSupported() { + return vsyncSupport; + } + @JSBody(params = { "doc" }, script = "return (typeof doc.visibilityState !== \"string\") || (doc.visibilityState === \"visible\");") + private static native boolean getVisibilityState(JSObject doc); + private static final long[] syncTimer = new long[1]; + public static final void updateDisplay(int fpsLimit, boolean vsync) { + double r = win.getDevicePixelRatio(); + int w = parent.getClientWidth(); + int h = parent.getClientHeight(); + int w2 = (int)(w * r); + int h2 = (int)(h * r); + if(canvas.getWidth() != w2) { + canvas.setWidth(w2); + } + if(canvas.getHeight() != h2) { + canvas.setHeight(h2); + } + webgl.bindFramebuffer(FRAMEBUFFER, null); + webgl.bindFramebuffer(READ_FRAMEBUFFER, backBuffer.obj); + webgl.bindFramebuffer(DRAW_FRAMEBUFFER, null); + webgl.blitFramebuffer(0, 0, backBufferWidth, backBufferHeight, 0, 0, w2, h2, COLOR_BUFFER_BIT, NEAREST); + webgl.bindFramebuffer(FRAMEBUFFER, backBuffer.obj); + resizeBackBuffer(w2, h2); + + if(getVisibilityState(win.getDocument())) { + if(vsyncSupport && vsync) { + syncTimer[0] = 0l; + asyncRequestAnimationFrame(); + }else { + if(fpsLimit <= 0) { + syncTimer[0] = 0l; + swapDelayTeaVM(); + }else { + if(!EaglerAdapterGL30.sync(fpsLimit, syncTimer)) { + swapDelayTeaVM(); + } + } + } + }else { + syncTimer[0] = 0l; + sleep(50); + } + } + @Async + private static native void asyncRequestAnimationFrame(); + private static void asyncRequestAnimationFrame(AsyncCallback cb) { + if(vsyncTimeout != -1) { + cb.error(new IllegalStateException("Already waiting for vsync!")); + return; + } + final boolean[] hasTimedOut = new boolean[] { false }; + final int[] timeout = new int[] { -1 }; + Window.requestAnimationFrame((d) -> { + if(!hasTimedOut[0]) { + hasTimedOut[0] = true; + if(vsyncTimeout != -1) { + if(vsyncTimeout == timeout[0]) { + try { + Window.clearTimeout(vsyncTimeout); + }catch(Throwable t) { + } + vsyncTimeout = -1; + } + cb.complete(null); + } + } + }); + vsyncTimeout = timeout[0] = Window.setTimeout(() -> { + if(!hasTimedOut[0]) { + hasTimedOut[0] = true; + if(vsyncTimeout != -1) { + vsyncTimeout = -1; + cb.complete(null); + } + } + }, 50); + } + private static final void swapDelayTeaVM() { + if(!useDelayOnSwap && immediateContinueChannel != null) { + immediateContinueTeaVM0(); + }else { + sleep(0); + } + } + public static final void immediateContinue() { + if(immediateContinueChannel != null) { + immediateContinueTeaVM0(); + }else { + sleep(0); + } + } + public static final boolean immediateContinueSupported() { + return immediateContinueChannel != null; + } + private static final JSString emptyJSString = JSString.valueOf(""); + @Async + private static native void immediateContinueTeaVM0(); + private static void immediateContinueTeaVM0(final AsyncCallback cb) { + if(currentMsgChannelContinueHack != null) { + cb.error(new IllegalStateException("Main thread is already waiting for an immediate continue callback!")); + return; + } + currentMsgChannelContinueHack = () -> { + cb.complete(null); + }; + try { + immediateContinueChannel.getPort2().postMessage(emptyJSString); + }catch(Throwable t) { + currentMsgChannelContinueHack = null; + System.err.println("Caught error posting immediate continue, using setTimeout instead"); + Window.setTimeout(() -> cb.complete(null), 0); + } + } + private static final int IMMEDIATE_CONT_SUPPORTED = 0; + private static final int IMMEDIATE_CONT_FAILED_NOT_ASYNC = 1; + private static final int IMMEDIATE_CONT_FAILED_NOT_CONT = 2; + private static final int IMMEDIATE_CONT_FAILED_EXCEPTIONS = 3; + private static void checkImmediateContinueSupport() { + immediateContinueChannel = null; + int stat = checkImmediateContinueSupport0(); + if(stat == IMMEDIATE_CONT_SUPPORTED) { + return; + }else if(stat == IMMEDIATE_CONT_FAILED_NOT_ASYNC) { + System.err.println("MessageChannel fast immediate continue hack is incompatible with this browser due to actually continuing immediately!"); + }else if(stat == IMMEDIATE_CONT_FAILED_NOT_CONT) { + System.err.println("MessageChannel fast immediate continue hack is incompatible with this browser due to startup check failing!"); + }else if(stat == IMMEDIATE_CONT_FAILED_EXCEPTIONS) { + System.err.println("MessageChannel fast immediate continue hack is incompatible with this browser due to exceptions!"); + } + immediateContinueChannel = null; + } + private static int checkImmediateContinueSupport0() { + try { + if(!MessageChannel.supported()) { + return IMMEDIATE_CONT_SUPPORTED; + } + immediateContinueChannel = new MessageChannel(); + immediateContinueChannel.getPort1().addEventListener("message", new EventListener() { + @Override + public void handleEvent(MessageEvent evt) { + Runnable toRun = currentMsgChannelContinueHack; + currentMsgChannelContinueHack = null; + if(toRun != null) { + toRun.run(); + } + } + }); + immediateContinueChannel.getPort1().start(); + immediateContinueChannel.getPort2().start(); + final boolean[] checkMe = new boolean[1]; + checkMe[0] = false; + currentMsgChannelContinueHack = () -> { + checkMe[0] = true; + }; + immediateContinueChannel.getPort2().postMessage(emptyJSString); + if(checkMe[0]) { + currentMsgChannelContinueHack = null; + if(immediateContinueChannel != null) { + safeShutdownChannel(immediateContinueChannel); + } + immediateContinueChannel = null; + return IMMEDIATE_CONT_FAILED_NOT_ASYNC; + } + sleep(10); + currentMsgChannelContinueHack = null; + if(!checkMe[0]) { + if(immediateContinueChannel != null) { + safeShutdownChannel(immediateContinueChannel); + } + immediateContinueChannel = null; + return IMMEDIATE_CONT_FAILED_NOT_CONT; + }else { + return IMMEDIATE_CONT_SUPPORTED; + } + }catch(Throwable t) { + currentMsgChannelContinueHack = null; + if(immediateContinueChannel != null) { + safeShutdownChannel(immediateContinueChannel); + } + immediateContinueChannel = null; + return IMMEDIATE_CONT_FAILED_EXCEPTIONS; + } + } + private static void safeShutdownChannel(MessageChannel chan) { + try { + chan.getPort1().close(); + }catch(Throwable tt) { + } + try { + chan.getPort2().close(); + }catch(Throwable tt) { + } + } + public static final void setupBackBuffer() { + backBuffer = _wglCreateFramebuffer(); + _wglBindFramebuffer(_wGL_FRAMEBUFFER, null); + backBufferColor = _wglCreateRenderBuffer(); + _wglBindRenderbuffer(backBufferColor); + _wglFramebufferRenderbuffer(_wGL_COLOR_ATTACHMENT0, backBufferColor); + backBufferDepth = _wglCreateRenderBuffer(); + _wglBindRenderbuffer(backBufferDepth); + _wglFramebufferRenderbuffer(_wGL_DEPTH_ATTACHMENT, backBufferDepth); + } + private static int backBufferWidth = -1; + private static int backBufferHeight = -1; + public static final void resizeBackBuffer(int w, int h) { + if(w != backBufferWidth || h != backBufferHeight) { + _wglBindRenderbuffer(backBufferColor); + _wglRenderbufferStorage(_wGL_RGBA8, w, h); + _wglBindRenderbuffer(backBufferDepth); + _wglRenderbufferStorage(_wGL_DEPTH_COMPONENT32F, w, h); + backBufferWidth = w; + backBufferHeight = h; + } + } + public static final float getContentScaling() { + return (float)win.getDevicePixelRatio(); + } + public static final void enableRepeatEvents(boolean b) { + enableRepeatEvents = b; + } + + @JSBody(params = { }, script = "return document.pointerLockElement != null;") + public static native boolean isPointerLocked(); + + private static boolean pointerLockFlag = false; + + public static final boolean isFocused() { + boolean yee = isPointerLocked(); + boolean dee = pointerLockFlag; + pointerLockFlag = yee; + if(!dee && yee) { + mouseDX = 0.0D; + mouseDY = 0.0D; + } + return isWindowFocused && !(dee && !yee); + } + public static final int getScreenWidth() { + return win.getScreen().getAvailWidth(); + } + public static final int getScreenHeight() { + return win.getScreen().getAvailHeight(); + } + public static final int getCanvasWidth() { + return canvas.getWidth(); + } + public static final int getCanvasHeight() { + return canvas.getHeight(); + } + public static final void setDisplaySize(int x, int y) { + + } + + private static final DateFormat dateFormatSS = new SimpleDateFormat("yyyy-MM-dd_HH.mm.ss"); + public static final void saveScreenshot() { + webgl.finish(); + HTMLCanvasElement retardedCanvas = (HTMLCanvasElement)doc.createElement("canvas"); + retardedCanvas.setWidth(canvas.getWidth()); + retardedCanvas.setHeight(canvas.getHeight()); + CanvasRenderingContext2D cc = (CanvasRenderingContext2D)retardedCanvas.getContext("2d", youEagler2()); + setImageSmoothingMode(cc, false); + cc.setFillStyle("black"); + cc.fillRect(0, 0, canvas.getWidth(), canvas.getHeight()); + cc.drawImage(canvas, 0, 0, canvas.getWidth(), canvas.getHeight()); + saveScreenshot("screenshot_" + dateFormatSS.format(new Date()).toString() + ".png", retardedCanvas); + } + + @JSBody(params = { "name", "cvs" }, script = "var a=document.createElement(\"a\");a.href=cvs.toDataURL(\"image/png\");a.download=name;a.click();") + private static native void saveScreenshot(String name, HTMLCanvasElement cvs); + + public static enum RateLimit { + NONE, FAILED, BLOCKED, FAILED_POSSIBLY_LOCKED, LOCKED, NOW_LOCKED; + } + + private static final Set rateLimitedAddresses = new HashSet<>(); + private static final Set blockedAddresses = new HashSet<>(); + + private static WebSocket sock = null; + private static boolean sockIsConnecting = false; + private static boolean sockIsConnected = false; + private static boolean sockIsAlive = false; + private static LinkedList readPackets = new LinkedList<>(); + private static RateLimit rateLimitStatus = null; + private static String currentSockURI = null; + + public static final RateLimit getRateLimitStatus() { + RateLimit l = rateLimitStatus; + rateLimitStatus = null; + return l; + } + public static final void logRateLimit(String addr, RateLimit l) { + if(l == RateLimit.BLOCKED) { + blockedAddresses.add(addr); + }else { + rateLimitedAddresses.add(addr); + } + } + public static final RateLimit checkRateLimitHistory(String addr) { + if(blockedAddresses.contains(addr)) { + return RateLimit.LOCKED; + }else if(rateLimitedAddresses.contains(addr)) { + return RateLimit.BLOCKED; + }else { + return RateLimit.NONE; + } + } + + @Async + public static native String connectWebSocket(String sockURI); + + private static void connectWebSocket(String sockURI, final AsyncCallback cb) { + sockIsConnecting = true; + sockIsConnected = false; + sockIsAlive = false; + rateLimitStatus = null; + currentSockURI = sockURI; + try { + sock = new WebSocket(sockURI); + } catch(Throwable t) { + sockIsConnecting = false; + sockIsAlive = false; + return; + } + sock.setBinaryType("arraybuffer"); + sock.addEventListener("open", new EventListener() { + @Override + public void handleEvent(Event evt) { + sockIsConnecting = false; + sockIsAlive = false; + sockIsConnected = true; + readPackets.clear(); + cb.complete("okay"); + } + }); + sock.addEventListener("close", new EventListener() { + @Override + public void handleEvent(CloseEvent evt) { + sock = null; + if(sockIsConnecting) { + if(rateLimitStatus == null) { + if(blockedAddresses.contains(currentSockURI)) { + rateLimitStatus = RateLimit.LOCKED; + }else if(rateLimitedAddresses.contains(currentSockURI)) { + rateLimitStatus = RateLimit.FAILED_POSSIBLY_LOCKED; + }else { + rateLimitStatus = RateLimit.FAILED; + } + } + }else if(!sockIsAlive) { + if(rateLimitStatus == null) { + if(blockedAddresses.contains(currentSockURI)) { + rateLimitStatus = RateLimit.LOCKED; + }else if(rateLimitedAddresses.contains(currentSockURI)) { + rateLimitStatus = RateLimit.BLOCKED; + } + } + } + boolean b = sockIsConnecting; + sockIsConnecting = false; + sockIsConnected = false; + sockIsAlive = false; + if(b) cb.complete("fail"); + } + }); + sock.addEventListener("message", new EventListener() { + @Override + public void handleEvent(MessageEvent evt) { + sockIsAlive = true; + if(isString(evt.getData())) { + String stat = evt.getDataAsString(); + if(stat.equalsIgnoreCase("BLOCKED")) { + if(rateLimitStatus == null) { + rateLimitStatus = RateLimit.BLOCKED; + } + rateLimitedAddresses.add(currentSockURI); + }else if(stat.equalsIgnoreCase("LOCKED")) { + if(rateLimitStatus == null) { + rateLimitStatus = RateLimit.NOW_LOCKED; + } + rateLimitedAddresses.add(currentSockURI); + blockedAddresses.add(currentSockURI); + } + sockIsConnecting = false; + sockIsConnected = false; + sock.close(); + return; + } + readPackets.add(TeaVMUtils.wrapByteArrayBuffer(evt.getDataAsArray())); + } + }); + } + + public static final boolean startConnection(String uri) { + String res = connectWebSocket(uri); + return !"fail".equals(res); + } + public static final void endConnection() { + if(sock == null || sock.getReadyState() == 3) { + sockIsConnecting = false; + } + if(sock != null && !sockIsConnecting) sock.close(); + } + public static final boolean connectionOpen() { + if(IntegratedServer.doesChannelExist(EaglerProfile.username) && IntegratedServer.isWorldRunning()) { + return true; + } + if(!EaglerAdapter.clientLANClosed()) { + return true; + } + if(sock == null || sock.getReadyState() == 3) { + sockIsConnecting = false; + } + return sock != null && !sockIsConnecting && sock.getReadyState() != 3; + } + @JSBody(params = { "sock", "buffer" }, script = "sock.send(buffer);") + private static native void nativeBinarySend(WebSocket sock, ArrayBuffer buffer); + public static final void writePacket(byte[] packet) { + if(sock != null && !sockIsConnecting) { + nativeBinarySend(sock, TeaVMUtils.unwrapArrayBuffer(packet)); + } + } + public static final byte[] readPacket() { + if(!readPackets.isEmpty()) { + return readPackets.remove(0); + }else { + return null; + } + } + public static final byte[] loadLocalStorage(String key) { + try { + Storage strg = win.getLocalStorage(); + if(strg != null) { + String s = strg.getItem("_eaglercraft."+key); + if(s != null) { + return Base64.decodeBase64(s); + }else { + return null; + } + }else { + return null; + } + }catch(Throwable t) { + return null; + } + } + public static final void saveLocalStorage(String key, byte[] data) { + try { + Storage strg = win.getLocalStorage(); + if(strg != null) { + strg.setItem("_eaglercraft."+key, Base64.encodeBase64String(data)); + } + }catch(Throwable t) { + } + } + public static final void openLink(String url) { + SelfDefence.openWindowIgnore(url, "_blank"); + } + public static final void redirectTo(String url) { + win.getLocation().setFullURL(url); + } + + @JSBody(params = { }, script = "window.onbeforeunload = function(){javaMethods.get('net.lax1dude.eaglercraft.adapter.EaglerAdapterImpl2.onWindowUnload()V').invoke();return false;};") + private static native void onBeforeCloseRegister(); + + public static final void openFileChooser(String ext, String mime) { + fileChooser.openFileChooser(ext, mime); + } + + public static final boolean getFileChooserResultAvailable() { + return fileChooser.getFileChooserResult() != null; + } + + public static final byte[] getFileChooserResult() { + ArrayBuffer b = getFileChooserResult0(); + if(b == null) return null; + return TeaVMUtils.wrapByteArrayBuffer(b); + } + + public static final void clearFileChooserResult() { + getFileChooserResult0(); + } + + private static final ArrayBuffer getFileChooserResult0() { + ArrayBuffer ret = fileChooser.getFileChooserResult(); + fileChooser.setFileChooserResult(null); + return ret; + } + + public static final String getFileChooserResultName() { + return fileChooser.getFileChooserResultName(); + } + + public static final void setListenerPos(float x, float y, float z, float vx, float vy, float vz, float pitch, float yaw) { + float var2 = MathHelper.cos(-yaw * 0.017453292F); + float var3 = MathHelper.sin(-yaw * 0.017453292F); + float var4 = -MathHelper.cos(pitch * 0.017453292F); + float var5 = MathHelper.sin(pitch * 0.017453292F); + AudioListener l = audioctx.getListener(); + l.setPosition(x, y, z); + l.setOrientation(-var3 * var4, -var5, -var2 * var4, 0.0f, 1.0f, 0.0f); + } + + private static int playbackId = 0; + private static int audioElementId = 0; + private static final HashMap loadedSoundFiles = new HashMap<>(); + private static AudioContext audioctx = null; + private static GainNode masterVolumeNode = null; + private static GainNode musicVolumeNode = null; + private static float playbackOffsetDelay = 0.03f; + + public static final void setPlaybackOffsetDelay(float f) { + playbackOffsetDelay = f; + } + + private static final void setGainlessAudioVolume(float oldGain, float f, boolean music) { + if (f != oldGain) { + for (AudioSourceNodeX a : activeSoundEffects.values()) { + if (a.music == music && a instanceof MediaElementAudioSourceNodeX && a.gain == null) { + HTMLAudioElement aud = ((MediaElementAudioSourceNodeX) a).audio; + float newVolume = 0.5F; + if (oldGain == 0) { + aud.setMuted(false); + newVolume = f * aud.getVolume(); + } else if (f == 0) { + aud.setMuted(true); + newVolume = aud.getVolume() / oldGain; + } else { + newVolume = f * aud.getVolume() / oldGain; + } + aud.setVolume(newVolume > 1.0f ? 1.0f : newVolume); + } + } + } + } + + public static final void setMasterVolume(float f) { + setGainlessAudioVolume(masterVolumeNode.getGain().getValue(), f, false); + masterVolumeNode.getGain().setValue(f); + } + + public static final void setMusicVolume(float f) { + setGainlessAudioVolume(musicVolumeNode.getGain().getValue(), f, true); + musicVolumeNode.getGain().setValue(f); + } + + @Async + public static native AudioBuffer decodeAudioAsync(ArrayBuffer buffer); + + private static void decodeAudioAsync(ArrayBuffer buffer, final AsyncCallback cb) { + audioctx.decodeAudioData(buffer, new DecodeSuccessCallback() { + @Override + public void onSuccess(AudioBuffer decodedData) { + cb.complete(decodedData); + } + }, new DecodeErrorCallback() { + @Override + public void onError(JSObject error) { + cb.complete(null); + } + }); + } + + private static final HashMap activeSoundEffects = new HashMap<>(); + + private static class AudioBufferX { + private final AudioBuffer buffer; + private AudioBufferX(AudioBuffer buffer) { + this.buffer = buffer; + } + } + + private static class AudioSourceNodeX { + private final PannerNode panner; + private final GainNode gain; + private final boolean music; + private AudioSourceNodeX(PannerNode panner, GainNode gain, boolean music) { + this.panner = panner; + this.gain = gain; + this.music = music; + } + } + + private static class AudioBufferSourceNodeX extends AudioSourceNodeX { + private final AudioBufferSourceNode source; + private AudioBufferSourceNodeX(AudioBufferSourceNode source, PannerNode panner, GainNode gain, boolean music) { + super(panner, gain, music); + this.source = source; + } + } + + private static class MediaElementAudioSourceNodeX extends AudioSourceNodeX { + private final MediaElementAudioSourceNode source; + private final HTMLAudioElement audio; + private MediaElementAudioSourceNodeX(MediaElementAudioSourceNode source, HTMLAudioElement audio, PannerNode panner, GainNode gain, boolean music) { + super(panner, gain, music); + this.source = source; + this.audio = audio; + } + } + + @JSBody(params = { "playing", "volume" }, script = "window.dispatchEvent(new CustomEvent('eagTitleMusic', { detail: { playing: playing, volume: volume } }));return;") + public static native void fireTitleMusicEvent(boolean playing, float volume); + + private static final AudioBuffer getBufferFor(String fileName) { + AudioBufferX ret = loadedSoundFiles.get(fileName); + if(ret == null) { + byte[] file = loadResourceBytes(fileName); + if(file == null) return null; + Uint8Array buf = new Uint8Array(file.length); + buf.set(file); + ret = new AudioBufferX(decodeAudioAsync(buf.getBuffer())); + loadedSoundFiles.put(fileName, ret); + } + return ret.buffer; + } + public static final int beginPlayback(String fileName, float x, float y, float z, float volume, float pitch) { + return beginPlayback(fileName, x, y, z, volume, pitch, false); + } + public static final int beginPlayback(String fileNamePre, float x, float y, float z, float volume, float pitch, boolean music) { + if(fileNamePre.startsWith("/")) fileNamePre = fileNamePre.substring(1); + String fileName = AssetRepository.fileNameOverrides.getOrDefault(fileNamePre, fileNamePre); + AudioNode s; + HTMLAudioElement audioElement = null; + String lowerFileName = fileName.toLowerCase(); + boolean usingUrl = AssetRepository.fileNameOverrides.containsKey(fileNamePre) || lowerFileName.startsWith("http://") || lowerFileName.startsWith("https://") || lowerFileName.startsWith("blob:") || lowerFileName.startsWith("data:"); + if (usingUrl) { + audioElement = (HTMLAudioElement) win.getDocument().createElement("audio"); + audioElement.setAutoplay(true); + audioElement.setCrossOrigin("anonymous"); + audioElement.setSrc(fileName); + s = audioctx.createMediaElementSource(audioElement); + audioElement.setPlaybackRate(pitch); + } else { + AudioBuffer b = getBufferFor(fileName); + if(b == null) return -1; + s = audioctx.createBufferSource(); + ((AudioBufferSourceNode) s).setBuffer(b); + ((AudioBufferSourceNode) s).getPlaybackRate().setValue(pitch); + } + ChannelMergerNode c = audioctx.createChannelMerger(1); + PannerNode p = audioctx.createPanner(); + p.setPosition(x, y, z); + p.setMaxDistance(volume * 16f + 0.1f); + p.setRolloffFactor(1f); + //p.setVelocity(0f, 0f, 0f); + p.setDistanceModel("linear"); + p.setPanningModel("HRTF"); + p.setConeInnerAngle(360f); + p.setConeOuterAngle(0f); + p.setConeOuterGain(0f); + p.setOrientation(0f, 1f, 0f); + GainNode g = audioctx.createGain(); + g.getGain().setValue(volume > 1.0f ? 1.0f : volume); + s.connect(c); + c.connect(g); + g.connect(p); + p.connect(music ? musicVolumeNode : masterVolumeNode); + if (!usingUrl) { + ((AudioBufferSourceNode) s).start(0.0d, playbackOffsetDelay); + } + final int theId = ++playbackId; + if (usingUrl) { + activeSoundEffects.put(theId, new MediaElementAudioSourceNodeX((MediaElementAudioSourceNode) s, audioElement, p, g, music)); + audioElement.addEventListener("canplay", new EventListener() { + @Override + public void handleEvent(Event evt) { + if (activeSoundEffects.containsKey(theId)) { + ((MediaElementAudioSourceNodeX) activeSoundEffects.get(theId)).audio.play(); + } + } + }); + audioElement.addEventListener("ended", new EventListener() { + @Override + public void handleEvent(Event evt) { + ((MediaElementAudioSourceNodeX) activeSoundEffects.remove(theId)).audio.setSrc(""); + } + }); + } else { + activeSoundEffects.put(theId, new AudioBufferSourceNodeX((AudioBufferSourceNode) s, p, g, music)); + ((AudioBufferSourceNode) s).setOnEnded(new EventListener() { + @Override + public void handleEvent(MediaEvent evt) { + activeSoundEffects.remove(theId); + } + }); + } + return theId; + } + public static final int beginPlaybackStatic(String fileName, float volume, float pitch) { + return beginPlaybackStatic(fileName, volume, pitch, false); + } + public static final int beginPlaybackStatic(String fileNamePre, float volume, float pitch, boolean music) { + if(fileNamePre.startsWith("/")) fileNamePre = fileNamePre.substring(1); + String fileName = AssetRepository.fileNameOverrides.getOrDefault(fileNamePre, fileNamePre); + AudioNode s = null; + GainNode g = null; + HTMLAudioElement audioElement = null; + String lowerFileName = fileName.toLowerCase(); + boolean usingUrl = AssetRepository.fileNameOverrides.containsKey(fileNamePre) || lowerFileName.startsWith("http://") || lowerFileName.startsWith("https://") || lowerFileName.startsWith("blob:") || lowerFileName.startsWith("data:"); + if (usingUrl) { + audioElement = (HTMLAudioElement) win.getDocument().createElement("audio"); + audioElement.setAutoplay(true); + // audioElement.setCrossOrigin("anonymous"); + audioElement.setSrc(fileName); + audioElement.setPlaybackRate(pitch); + } else { + AudioBuffer b = getBufferFor(fileName); + if(b == null) return -1; + s = audioctx.createBufferSource(); + ((AudioBufferSourceNode) s).setBuffer(b); + ((AudioBufferSourceNode) s).getPlaybackRate().setValue(pitch); + g = audioctx.createGain(); + g.getGain().setValue(volume > 1.0f ? 1.0f : volume); + s.connect(g); + g.connect(music ? musicVolumeNode : masterVolumeNode); + ((AudioBufferSourceNode) s).start(0.0d, playbackOffsetDelay); + } + + final int theId = ++playbackId; + if (usingUrl) { + activeSoundEffects.put(theId, new MediaElementAudioSourceNodeX(null, audioElement, null, null, music)); + audioElement.addEventListener("canplay", new EventListener() { + @Override + public void handleEvent(Event evt) { + if (activeSoundEffects.containsKey(theId)) { + ((MediaElementAudioSourceNodeX) activeSoundEffects.get(theId)).audio.play(); + } + } + }); + audioElement.addEventListener("ended", new EventListener() { + @Override + public void handleEvent(Event evt) { + ((MediaElementAudioSourceNodeX) activeSoundEffects.remove(theId)).audio.setSrc(""); + } + }); + } else { + activeSoundEffects.put(theId, new AudioBufferSourceNodeX(((AudioBufferSourceNode) s), null, g, music)); + ((AudioBufferSourceNode) s).setOnEnded(new EventListener() { + @Override + public void handleEvent(MediaEvent evt) { + activeSoundEffects.remove(theId); + } + }); + } + return theId; + } + public static final void setPitch(int id, float pitch) { + AudioSourceNodeX a = activeSoundEffects.get(id); + if(a != null) { + if (a instanceof AudioBufferSourceNodeX) { + ((AudioBufferSourceNodeX) a).source.getPlaybackRate().setValue(pitch); + } else if (a instanceof MediaElementAudioSourceNodeX) { + ((MediaElementAudioSourceNodeX) a).audio.setPlaybackRate(pitch); + } + } + } + public static final void setVolume(int id, float volume) { + AudioSourceNodeX a = activeSoundEffects.get(id); + if(a != null) { + if (a instanceof MediaElementAudioSourceNodeX && a.gain == null) { + HTMLAudioElement audioElem = ((MediaElementAudioSourceNodeX) a).audio; + float gainValue = (a.music ? musicVolumeNode : masterVolumeNode).getGain().getValue(); + float newVolume; + if (gainValue == 0) { + audioElem.setMuted(true); + newVolume = volume; + } else { + audioElem.setMuted(false); + newVolume = gainValue * volume; + } + audioElem.setVolume(newVolume > 1.0f ? 1.0f : volume); + } else { + a.gain.getGain().setValue(volume > 1.0f ? 1.0f : volume); + if (a.panner != null) a.panner.setMaxDistance(volume * 16f + 0.1f); + } + } + } + public static final void moveSound(int id, float x, float y, float z, float vx, float vy, float vz) { + AudioSourceNodeX a = activeSoundEffects.get(id); + if(a != null && a.panner != null) { + a.panner.setPosition(x, y, z); + //a.panner.setVelocity(vx, vy, vz); + } + } + public static final void endSound(int id) { + AudioSourceNodeX a = activeSoundEffects.get(id); + if(a != null) { + if (a instanceof AudioBufferSourceNodeX) { + ((AudioBufferSourceNodeX) a).source.stop(); + } else if (a instanceof MediaElementAudioSourceNodeX) { + ((MediaElementAudioSourceNodeX) a).audio.pause(); + ((MediaElementAudioSourceNodeX) a).audio.setSrc(""); + } + activeSoundEffects.remove(id); + } + } + public static final boolean isPlaying(int id) { + return activeSoundEffects.containsKey(id); + } + public static final void openConsole() { + Window.alert("Still under development"); + } + + private static EaglercraftVoiceClient voiceClient = null; + + private static boolean voiceAvailableStat = false; + private static boolean voiceSignalHandlersInitialized = false; + + private static Consumer returnSignalHandler = null; + + private static final HashMap voiceAnalysers = new HashMap<>(); + private static final HashMap voiceGains = new HashMap<>(); + private static final HashMap voicePanners = new HashMap<>(); + private static final HashSet nearbyPlayers = new HashSet<>(); + + public static void clearVoiceAvailableStatus() { + voiceAvailableStat = false; + } + + public static void setVoiceSignalHandler(Consumer signalHandler) { + returnSignalHandler = signalHandler; + } + + public static final int VOICE_SIGNAL_ALLOWED = 0; + public static final int VOICE_SIGNAL_REQUEST = 0; + public static final int VOICE_SIGNAL_CONNECT = 1; + public static final int VOICE_SIGNAL_DISCONNECT = 2; + public static final int VOICE_SIGNAL_ICE = 3; + public static final int VOICE_SIGNAL_DESC = 4; + public static final int VOICE_SIGNAL_GLOBAL = 5; + + public static void handleVoiceSignal(byte[] data) { + try { + DataInputStream streamIn = new DataInputStream(new EaglerInputStream(data)); + int sig = streamIn.read(); + switch(sig) { + case VOICE_SIGNAL_GLOBAL: + String[] voicePlayers = new String[streamIn.readInt()]; + for(int i = 0; i < voicePlayers.length; i++) voicePlayers[i] = streamIn.readUTF(); + for (String username : voicePlayers) { + // notice that literally everyone except for those already connected using voice chat will receive the request; however, ones using proximity will simply ignore it. + sendVoiceRequestIfNeeded(username); + } + break; + case VOICE_SIGNAL_ALLOWED: + voiceAvailableStat = streamIn.read() == 1; + String[] servs = new String[streamIn.read()]; + for(int i = 0; i < servs.length; i++) { + servs[i] = streamIn.readUTF(); + } + voiceClient.setICEServers(servs); + break; + case VOICE_SIGNAL_CONNECT: + String peerId = streamIn.readUTF(); + try { + boolean offer = streamIn.readBoolean(); + voiceClient.signalConnect(peerId, offer); + } catch (EOFException e) { // this is actually a connect ANNOUNCE, not an absolute "yes please connect" situation + if (false && !nearbyPlayers.contains(peerId)) return; + // send request to peerId + sendVoiceRequest(peerId); + } + break; + case VOICE_SIGNAL_DISCONNECT: + String peerId2 = streamIn.readUTF(); + voiceClient.signalDisconnect(peerId2, true); + break; + case VOICE_SIGNAL_ICE: + String peerId3 = streamIn.readUTF(); + String candidate = streamIn.readUTF(); + voiceClient.signalICECandidate(peerId3, candidate); + break; + case VOICE_SIGNAL_DESC: + String peerId4 = streamIn.readUTF(); + String descJSON = streamIn.readUTF(); + voiceClient.signalDescription(peerId4, descJSON); + break; + default: + System.err.println("Unknown voice signal packet '" + sig + "'!"); + break; + } + }catch(IOException ex) { + ex.printStackTrace(); + } + } + + public static final boolean voiceAvailable() { + return voiceClient.voiceClientSupported() && voiceClient.getReadyState() != EaglercraftVoiceClient.READYSTATE_ABORTED; + } + public static final boolean voiceAllowed() { + return voiceAvailableStat; + } + public static final boolean voiceRelayed() { + return false; + } + + public static final void addNearbyPlayer(String username) { + recentlyNearbyPlayers.remove(username); + if (nearbyPlayers.add(username)) { + sendVoiceRequestIfNeeded(username); + } + } + + private static final void sendVoiceRequest(String username) { + try { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + DataOutputStream dos = new DataOutputStream(baos); + dos.write(VOICE_SIGNAL_REQUEST); + dos.writeUTF(username); + returnSignalHandler.accept(baos.toByteArray()); + } catch (IOException ignored) { } + } + + private static final void sendVoiceRequestIfNeeded(String username) { + + } + + private static final ExpiringSet recentlyNearbyPlayers = new ExpiringSet<>(5000, new ExpiringSet.ExpiringEvent() { + @Override + public void onExpiration(String username) { + if (!nearbyPlayers.contains(username)) voiceClient.signalDisconnect(username, false); + } + }); + + public static final void removeNearbyPlayer(String username) { + + } + + public static final void cleanupNearbyPlayers(HashSet existingPlayers) { + nearbyPlayers.stream().filter(un -> !existingPlayers.contains(un)).collect(Collectors.toSet()).forEach(EaglerAdapterImpl2::removeNearbyPlayer); + } + + public static final void updateVoicePosition(String username, double x, double y, double z) { + if (voicePanners.containsKey(username)) voicePanners.get(username).setPosition((float) x, (float) y, (float) z); + } + + public static final void sendInitialVoice() { + returnSignalHandler.accept(new byte[] { VOICE_SIGNAL_CONNECT }); + for (String username : nearbyPlayers) sendVoiceRequest(username); + } + + private static boolean talkStatus = false; + public static final void activateVoice(boolean talk) { + if(talkStatus != talk) { + voiceClient.activateVoice(talk); + } + talkStatus = talk; + } + + private static int proximity = 16; + public static final void setVoiceProximity(int prox) { + for (PannerNode panner : voicePanners.values()) panner.setMaxDistance(getVoiceListenVolume() * 2 * prox + 0.1f); + proximity = prox; + } + public static final int getVoiceProximity() { + return proximity; + } + + private static float volumeListen = 0.5f; + public static final void setVoiceListenVolume(float f) { + for (String username : voiceGains.keySet()) { + GainNode gain = voiceGains.get(username); + float val = f; + if(val > 0.5f) val = 0.5f + (val - 0.5f) * 3.0f; + if(val > 2.0f) val = 2.0f; + if(val < 0.0f) val = 0.0f; + gain.getGain().setValue(val * 2.0f); + if (voicePanners.containsKey(username)) voicePanners.get(username).setMaxDistance(f * 2 * getVoiceProximity() + 0.1f); + } + volumeListen = f; + } + public static final float getVoiceListenVolume() { + return volumeListen; + } + + private static float volumeSpeak = 0.5f; + public static final void setVoiceSpeakVolume(float f) { + if(volumeSpeak != f) { + voiceClient.setMicVolume(f); + } + volumeSpeak = f; + } + public static final float getVoiceSpeakVolume() { + return volumeSpeak; + } + + private static final Set mutedSet = new HashSet<>(); + private static final Set speakingSet = new HashSet<>(); + public static final Set getVoiceListening() { + return voiceGains.keySet(); + } + public static final Set getVoiceSpeaking() { + return speakingSet; + } + public static final void setVoiceMuted(String username, boolean mute) { + voiceClient.mutePeer(username, mute); + if(mute) { + mutedSet.add(username); + }else { + mutedSet.remove(username); + } + } + public static final Set getVoiceMuted() { + return mutedSet; + } + public static final List getVoiceRecent() { + return new ArrayList<>(voiceGains.keySet()); + } + + public static final void tickVoice() { + recentlyNearbyPlayers.checkForExpirations(); + speakingSet.clear(); + for (String username : voiceAnalysers.keySet()) { + AnalyserNode analyser = voiceAnalysers.get(username); + Uint8Array array = new Uint8Array(analyser.getFrequencyBinCount()); + analyser.getByteFrequencyData(array); + int len = array.getLength(); + for (int i = 0; i < len; i++) { + if (array.get(i) >= 0.1f) { + speakingSet.add(username); + break; + } + } + } + } + + + public static final void doJavascriptCoroutines() { + + } + public static final long maxMemory() { + return 1024*1024*1024; + } + public static final long totalMemory() { + return 1024*1024*1024; + } + public static final long freeMemory() { + return 0l; + } + public static final void exit() { + + } + + @JSBody(params = { }, script = "return window.navigator.userAgent;") + public static native String getUserAgent(); + + private static String[] LWJGLKeyNames = new String[] {"NONE", "ESCAPE", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "MINUS", "EQUALS", "BACK", "TAB", "Q", "W", "E", "R", "T", "Y", "U", "I", "O", "P", "LBRACKET", "RBRACKET", "RETURN", "LCONTROL", "A", "S", "D", "F", "G", "H", "J", "K", "L", "SEMICOLON", "APOSTROPHE", "GRAVE", "LSHIFT", "BACKSLASH", "Z", "X", "C", "V", "B", "N", "M", "COMMA", "PERIOD", "SLASH", "RSHIFT", "MULTIPLY", "LMENU", "SPACE", "CAPITAL", "F1", "F2", "F3", "F4", "F5", "F6", "F7", "F8", "F9", "F10", "NUMLOCK", "SCROLL", "NUMPAD7", "NUMPAD8", "NUMPAD9", "SUBTRACT", "NUMPAD4", "NUMPAD5", "NUMPAD6", "ADD", "NUMPAD1", "NUMPAD2", "NUMPAD3", "NUMPAD0", "DECIMAL", "null", "null", "null", "F11", "F12", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "F13", "F14", "F15", "F16", "F17", "F18", "null", "null", "null", "null", "null", "null", "KANA", "F19", "null", "null", "null", "null", "null", "null", "null", "CONVERT", "null", "NOCONVERT", "null", "YEN", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "NUMPADEQUALS", "null", "null", "CIRCUMFLEX", "AT", "COLON", "UNDERLINE", "KANJI", "STOP", "AX", "UNLABELED", "null", "null", "null", "null", "NUMPADENTER", "RCONTROL", "null", "null", "null", "null", "null", "null", "null", "null", "null", "SECTION", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "NUMPADCOMMA", "null", "DIVIDE", "null", "SYSRQ", "RMENU", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "FUNCTION", "PAUSE", "null", "HOME", "UP", "PRIOR", "null", "LEFT", "null", "RIGHT", "null", "END", "DOWN", "NEXT", "INSERT", "DELETE", "null", "null", "null", "null", "null", "null", "CLEAR", "LMETA", "RMETA", "APPS", "POWER", "SLEEP", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null", "null"}; + + private static int[] LWJGLKeyCodes = new int[] { + /* 0 */ -1, /* 1 */ -1, /* 2 */ -1, /* 3 */ -1, /* 4 */ -1, + /* 5 */ -1, /* 6 */ -1, /* 7 */ -1, /* 8 */ 14, /* 9 */ 15, + /* 10 */ -1, /* 11 */ -1, /* 12 */ -1, /* 13 */ 28, /* 14 */ -1, + /* 15 */ -1, /* 16 */ 42, /* 17 */ 29, /* 18 */ 56, /* 19 */ -1, + /* 20 */ -1, /* 21 */ -1, /* 22 */ -1, /* 23 */ -1, /* 24 */ -1, + /* 25 */ -1, /* 26 */ -1, /* 27 */ 1, /* 28 */ -1, /* 29 */ -1, + /* 30 */ -1, /* 31 */ -1, /* 32 */ 57, /* 33 */ 210, /* 34 */ 201, + /* 35 */ 207, /* 36 */ 199, /* 37 */ 203, /* 38 */ 200, /* 39 */ 205, + /* 40 */ 208, /* 41 */ 205, /* 42 */ 208, /* 43 */ -1, /* 44 */ -1, + /* 45 */ 210, /* 46 */ 211, /* 47 */ 211, /* 48 */ 11, /* 49 */ 2, + /* 50 */ 3, /* 51 */ 4, /* 52 */ 5, /* 53 */ 6, /* 54 */ 7, + /* 55 */ 8, /* 56 */ 9, /* 57 */ 10, /* 58 */ -1, /* 59 */ -1, + /* 60 */ -1, /* 61 */ -1, /* 62 */ -1, /* 63 */ -1, /* 64 */ -1, + /* 65 */ 30, /* 66 */ 48, /* 67 */ 46, /* 68 */ 32, /* 69 */ 18, + /* 70 */ 33, /* 71 */ 34, /* 72 */ 35, /* 73 */ 23, /* 74 */ 36, + /* 75 */ 37, /* 76 */ 38, /* 77 */ 50, /* 78 */ 49, /* 79 */ 24, + /* 80 */ 25, /* 81 */ 16, /* 82 */ 19, /* 83 */ 31, /* 84 */ 20, + /* 85 */ 22, /* 86 */ 47, /* 87 */ 17, /* 88 */ 45, /* 89 */ 21, + /* 90 */ 44, /* 91 */ -1, /* 92 */ -1, /* 93 */ -1, /* 94 */ -1, + /* 95 */ -1, /* 96 */ -1, /* 97 */ -1, /* 98 */ -1, /* 99 */ -1, + /* 100 */ -1, /* 101 */ -1, /* 102 */ -1, /* 103 */ -1, /* 104 */ -1, + /* 105 */ -1, /* 106 */ -1, /* 107 */ -1, /* 108 */ -1, /* 109 */ 12, + /* 110 */ 52, /* 111 */ 53, /* 112 */ -1, /* 113 */ -1, /* 114 */ -1, + /* 115 */ -1, /* 116 */ -1, /* 117 */ -1, /* 118 */ -1, /* 119 */ -1, + /* 120 */ -1, /* 121 */ -1, /* 122 */ -1, /* 123 */ -1, /* 124 */ -1, + /* 125 */ -1, /* 126 */ -1, /* 127 */ -1, /* 128 */ -1, /* 129 */ -1, + /* 130 */ -1, /* 131 */ -1, /* 132 */ -1, /* 133 */ -1, /* 134 */ -1, + /* 135 */ -1, /* 136 */ -1, /* 137 */ -1, /* 138 */ -1, /* 139 */ -1, + /* 140 */ -1, /* 141 */ -1, /* 142 */ -1, /* 143 */ -1, /* 144 */ -1, + /* 145 */ -1, /* 146 */ -1, /* 147 */ -1, /* 148 */ -1, /* 149 */ -1, + /* 150 */ -1, /* 151 */ -1, /* 152 */ -1, /* 153 */ -1, /* 154 */ -1, + /* 155 */ -1, /* 156 */ -1, /* 157 */ -1, /* 158 */ -1, /* 159 */ -1, + /* 160 */ -1, /* 161 */ -1, /* 162 */ -1, /* 163 */ -1, /* 164 */ -1, + /* 165 */ -1, /* 166 */ -1, /* 167 */ -1, /* 168 */ -1, /* 169 */ -1, + /* 170 */ -1, /* 171 */ -1, /* 172 */ -1, /* 173 */ -1, /* 174 */ -1, + /* 175 */ -1, /* 176 */ -1, /* 177 */ -1, /* 178 */ -1, /* 179 */ -1, + /* 180 */ -1, /* 181 */ -1, /* 182 */ -1, /* 183 */ -1, /* 184 */ -1, + /* 185 */ -1, /* 186 */ 39, /* 187 */ 13, /* 188 */ 51, /* 189 */ 12, + /* 190 */ 52, /* 191 */ 53, /* 192 */ -1, /* 193 */ -1, /* 194 */ -1, + /* 195 */ -1, /* 196 */ -1, /* 197 */ -1, /* 198 */ -1, /* 199 */ -1, + /* 200 */ -1, /* 201 */ -1, /* 202 */ -1, /* 203 */ -1, /* 204 */ -1, + /* 205 */ -1, /* 206 */ -1, /* 207 */ -1, /* 208 */ -1, /* 209 */ -1, + /* 210 */ -1, /* 211 */ -1, /* 212 */ -1, /* 213 */ -1, /* 214 */ -1, + /* 215 */ -1, /* 216 */ -1, /* 217 */ -1, /* 218 */ -1, /* 219 */ 26, + /* 220 */ 43, /* 221 */ 27, /* 222 */ 40 + }; + + public static final int _wArrayByteLength(Object obj) { + return ((Int32Array)obj).getByteLength(); + } + + public static final Object _wCreateLowLevelIntBuffer(int len) { + return new Int32Array(len); + } + + private static int appendbufferindex = 0; + private static Int32Array appendbuffer = new Int32Array(new ArrayBuffer(525000*4)); + + public static final void _wAppendLowLevelBuffer(Object arr) { + Int32Array a = ((Int32Array)arr); + if(appendbufferindex + a.getLength() < appendbuffer.getLength()) { + appendbuffer.set(a, appendbufferindex); + appendbufferindex += a.getLength(); + } + } + + public static final Object _wGetLowLevelBuffersAppended() { + Int32Array ret = new Int32Array(appendbuffer.getBuffer(), 0, appendbufferindex); + appendbufferindex = 0; + return ret; + } + + private static int remapKey(int k) { + return (k > LWJGLKeyCodes.length || k < 0) ? -1 : LWJGLKeyCodes[k]; + } + + public static final boolean isIntegratedServerAvailable() { + return integratedServerScript != null; + } + + @JSFunctor + private static interface WorkerBinaryPacketHandler extends JSObject { + public void onMessage(String channel, ArrayBuffer buf); + } + + private static final HashMap> workerMessageQueue = new HashMap<>(); + + private static Worker server = null; + private static boolean serverAlive = false; + + private static class WorkerBinaryPacketHandlerImpl implements WorkerBinaryPacketHandler { + + public void onMessage(String channel, ArrayBuffer buf) { + if(channel == null) { + System.err.println("Recieved IPC packet with null channel"); + return; + } + + serverAlive = true; + synchronized(workerMessageQueue) { + List existingQueue = workerMessageQueue.get(channel); + + if(existingQueue == null) { + System.err.println("Recieved IPC packet with unknown '" + channel + "' channel"); + return; + } + + if(buf == null) { + System.err.println("Recieved IPC packet with null buffer"); + return; + } + + existingQueue.add(new PKT(channel, TeaVMUtils.wrapByteArrayBuffer(buf))); + } + } + + } + + @JSBody(params = { "w", "wb" }, script = "w.onmessage = function(o) { wb(o.data.ch, o.data.dat); };") + private static native void registerPacketHandler(Worker w, WorkerBinaryPacketHandler wb); + + @JSBody(params = { "w", "ch", "dat" }, script = "w.postMessage({ ch: ch, dat : dat });") + private static native void sendWorkerPacket(Worker w, String channel, ArrayBuffer arr); + + @JSBody(params = { "w", "dbName" }, script = "w.postMessage({ worldDatabaseName : dbName });") + private static native void sendWorkerStartPacket(Worker w, String dbName); + + private static String worldDatabaseName = "MAIN"; + + public static final void beginLoadingIntegratedServer() { + if(server != null) { + server.terminate(); + } + workerMessageQueue.put("IPC", new LinkedList()); + server = new Worker(integratedServerScript); + server.onError(new EventListener() { + @Override + public void handleEvent(ErrorEvent evt) { + System.err.println("Worker Error: " + evt.getError()); + } + }); + sendWorkerStartPacket(server, worldDatabaseName); + registerPacketHandler(server, new WorkerBinaryPacketHandlerImpl()); + } + + public static final void setWorldDatabaseName(String name) { + worldDatabaseName = name; + } + + public static final boolean isIntegratedServerAlive() { + return serverAlive && server != null; + } + + public static final void terminateIntegratedServer() { + if(server != null) { + server.terminate(); + server = null; + serverAlive = false; + } + } + + public static final void sendToIntegratedServer(String channel, byte[] pkt) { + sendWorkerPacket(server, channel, TeaVMUtils.unwrapArrayBuffer(pkt)); + //System.out.println("[Client][WRITE][" + channel + "]: " + pkt.length); + } + + public static final void enableChannel(String channel) { + synchronized(workerMessageQueue) { + if(workerMessageQueue.containsKey(channel)) { + System.err.println("Tried to enable existing channel '" + channel + "' again"); + }else { + System.out.println("[Client][ENABLE][" + channel + "]"); + workerMessageQueue.put(channel, new LinkedList<>()); + } + } + } + + public static final void disableChannel(String channel) { + synchronized(workerMessageQueue) { + if(workerMessageQueue.remove(channel) == null) { + System.err.println("Tried to disable unknown channel '" + channel + "'"); + } + System.out.println("[Client][DISABLE][" + channel + "]"); + } + } + + public static final PKT recieveFromIntegratedServer(String channel) { + synchronized(workerMessageQueue) { + List list = workerMessageQueue.get(channel); + if(list == null) { + System.err.println("Tried to read from unknown channel '" + channel + "'"); + return null; + }else { + return list.size() > 0 ? list.remove(0) : null; + } + } + } + + @JSBody(params = { "name", "buf" }, script = + "var hr = window.URL.createObjectURL(new Blob([buf], {type: \"octet/stream\"}));" + + "var a = document.createElement(\"a\");" + + "a.href = hr; a.download = name; a.click();" + + "window.URL.revokeObjectURL(hr);") + private static final native void downloadBytesImpl(String str, ArrayBuffer buf); + + public static final void downloadBytes(String str, byte[] dat) { + downloadBytesImpl(str, TeaVMUtils.unwrapArrayBuffer(dat)); + } + + @JSFunctor + private static interface StupidFunctionResolveString extends JSObject { + void resolveStr(String s); + } + + private static boolean unpressCTRL = false; + + @Async + public static native String getClipboard(); + + private static void getClipboard(final AsyncCallback cb) { + final long start = steadyTimeMillis(); + getClipboard0(new StupidFunctionResolveString() { + @Override + public void resolveStr(String s) { + if(steadyTimeMillis() - start > 500l) { + unpressCTRL = true; + } + cb.complete(s); + } + }); + } + + @JSBody(params = { "cb" }, script = "if(!window.navigator.clipboard) cb(null); else window.navigator.clipboard.readText().then(function(s) { cb(s); }, function(s) { cb(null); });") + private static native void getClipboard0(StupidFunctionResolveString cb); + + @JSBody(params = { "str" }, script = "if(window.navigator.clipboard) window.navigator.clipboard.writeText(str);") + public static native void setClipboard(String str); + + @JSBody(params = { "obj" }, script = "return typeof obj === \"string\";") + private static native boolean isString(JSObject obj); + + private static class ServerQueryImpl implements ServerQuery { + + private final LinkedList queryResponses = new LinkedList<>(); + private final LinkedList queryResponsesBytes = new LinkedList<>(); + private final String type; + private boolean open; + private boolean alive; + private String uriString; + private long pingStart; + private long pingTimer; + + private final WebSocket sock; + + private ServerQueryImpl(String type_, String uri) { + type = type_; + uriString = uri; + alive = false; + pingStart = -1l; + pingTimer = -1l; + WebSocket s = null; + try { + s = new WebSocket(uri); + s.setBinaryType("arraybuffer"); + open = true; + }catch(Throwable t) { + open = false; + if(EaglerAdapterImpl2.blockedAddresses.contains(uriString)) { + queryResponses.add(new QueryResponse(true, -1l)); + }else if(EaglerAdapterImpl2.rateLimitedAddresses.contains(uriString)) { + queryResponses.add(new QueryResponse(false, -1l)); + } + sock = null; + return; + } + sock = s; + if(open) { + sock.addEventListener("open", new EventListener() { + @Override + public void handleEvent(Event evt) { + pingStart = steadyTimeMillis(); + sock.send("Accept: " + type); + } + }); + sock.addEventListener("close", new EventListener() { + @Override + public void handleEvent(CloseEvent evt) { + open = false; + if(!alive) { + if(EaglerAdapterImpl2.blockedAddresses.contains(uriString)) { + queryResponses.add(new QueryResponse(true, pingTimer)); + }else if(EaglerAdapterImpl2.rateLimitedAddresses.contains(uriString)) { + queryResponses.add(new QueryResponse(false, pingTimer)); + } + } + } + }); + sock.addEventListener("message", new EventListener() { + @Override + public void handleEvent(MessageEvent evt) { + alive = true; + if(pingTimer == -1) { + pingTimer = steadyTimeMillis() - pingStart; + } + if(isString(evt.getData())) { + try { + String str = evt.getDataAsString(); + if(str.equalsIgnoreCase("BLOCKED")) { + EaglerAdapterImpl2.rateLimitedAddresses.add(uriString); + queryResponses.add(new QueryResponse(false, pingTimer)); + sock.close(); + return; + }else if(str.equalsIgnoreCase("LOCKED")) { + EaglerAdapterImpl2.blockedAddresses.add(uriString); + queryResponses.add(new QueryResponse(true, pingTimer)); + sock.close(); + return; + }else { + QueryResponse q = new QueryResponse(new JSONObject(str), pingTimer); + if(q.rateLimitStatus != null) { + if(q.rateLimitStatus == RateLimit.BLOCKED) { + EaglerAdapterImpl2.rateLimitedAddresses.add(uriString); + }else if(q.rateLimitStatus == RateLimit.LOCKED) { + EaglerAdapterImpl2.blockedAddresses.add(uriString); + } + sock.close(); + } + queryResponses.add(q); + } + }catch(Throwable t) { + System.err.println("Query response could not be parsed: " + t.toString()); + } + }else { + queryResponsesBytes.add(TeaVMUtils.wrapByteArrayBuffer(evt.getDataAsArray())); + } + } + }); + Window.setTimeout(new TimerHandler() { + @Override + public void onTimer() { + if(open && sock.getReadyState() != 1) { + if(sock.getReadyState() == 0) { + sock.close(); + } + open = false; + } + } + }, 5000l); + } + } + + @Override + public boolean isQueryOpen() { + return open; + } + + @Override + public void close() { + open = false; + sock.close(); + } + + @Override + public void send(String str) { + sock.send(str); + } + + @Override + public int responseAvailable() { + return queryResponses.size(); + } + + @Override + public int responseBinaryAvailable() { + return queryResponsesBytes.size(); + } + + @Override + public QueryResponse getResponse() { + return queryResponses.size() > 0 ? queryResponses.remove(0) : null; + } + + @Override + public byte[] getBinaryResponse() { + return queryResponsesBytes.size() > 0 ? queryResponsesBytes.remove(0) : null; + } + + } + + public static final ServerQuery openQuery(String type, String uri) { + return new ServerQueryImpl(type, uri); + } + + private static String serverToJoinOnLaunch = null; + + public static final void setServerToJoinOnLaunch(String s) { + serverToJoinOnLaunch = s; + } + + public static final String getServerToJoinOnLaunch() { + return serverToJoinOnLaunch; + } + + private static boolean endianWasChecked = false; + private static boolean isBigEndian = false; + private static boolean isLittleEndian = false; + + public static final boolean isBigEndian() { + if(!endianWasChecked) { + int checkIntegerA = 0xFF000000; + int checkIntegerB = 0x000000FF; + + ArrayBuffer buf = new ArrayBuffer(4); + Int32Array bufW = new Int32Array(buf); + Uint8Array bufR = new Uint8Array(buf); + + bufW.set(0, checkIntegerA); + + boolean knownBig1 = false; + if(bufR.get(0) == (short)0xFF && bufR.get(1) == (short)0 && bufR.get(2) == (short)0 && bufR.get(3) == (short)0) { + knownBig1 = true; + } + + boolean knownLittle1 = false; + if(bufR.get(0) == (short)0 && bufR.get(1) == (short)0 && bufR.get(2) == (short)0 && bufR.get(3) == (short)0xFF) { + knownLittle1 = true; + } + + bufW.set(0, checkIntegerB); + + boolean knownBig2 = false; + if(bufR.get(0) == (short)0 && bufR.get(1) == (short)0 && bufR.get(2) == (short)0 && bufR.get(3) == (short)0xFF) { + knownBig2 = true; + } + + boolean knownLittle2 = false; + if(bufR.get(0) == (short)0xFF && bufR.get(1) == (short)0 && bufR.get(2) == (short)0 && bufR.get(3) == (short)0) { + knownLittle2 = true; + } + + if(knownBig1 == knownBig2 && knownLittle1 == knownLittle2 && knownBig1 != knownLittle1) { + isBigEndian = knownBig1; + isLittleEndian = knownLittle1; + } + + if(isBigEndian) { + System.out.println("This browser is BIG endian!"); + }else if(isLittleEndian) { + System.out.println("This browser is LITTLE endian!"); + }else { + System.out.println("The byte order of this browser is inconsistent!"); + System.out.println(" - the sequence FF000000 was " + (knownBig1 ? "" : "not ") + "big endian."); + System.out.println(" - the sequence FF000000 was " + (knownLittle1 ? "" : "not ") + "little endian."); + System.out.println(" - the sequence 000000FF was " + (knownBig2 ? "" : "not ") + "big endian."); + System.out.println(" - the sequence 000000FF was " + (knownLittle2 ? "" : "not ") + "little endian."); + } + + endianWasChecked = true; + } + return !isLittleEndian; + } + + private static final Map relayQueryLimited = new HashMap<>(); + private static final Map relayQueryBlocked = new HashMap<>(); + + private static class RelayQueryImpl implements RelayQuery { + + private final WebSocket sock; + private final String uri; + + private boolean open; + private boolean failed; + + private boolean hasRecievedAnyData = false; + + private int vers = -1; + private String comment = ""; + private String brand = ""; + + private long connectionOpenedAt; + private long connectionPingStart = -1; + private long connectionPingTimer = -1; + + private RateLimit rateLimitStatus = RateLimit.NONE; + + private VersionMismatch versError = VersionMismatch.UNKNOWN; + + private RelayQueryImpl(String uri) { + this.uri = uri; + WebSocket s = null; + try { + connectionOpenedAt = steadyTimeMillis(); + s = new WebSocket(uri); + s.setBinaryType("arraybuffer"); + open = true; + failed = false; + }catch(Throwable t) { + connectionOpenedAt = 0l; + sock = null; + open = false; + failed = true; + return; + } + sock = s; + sock.addEventListener("open", new EventListener() { + @Override + public void handleEvent(Event evt) { + try { + connectionPingStart = steadyTimeMillis(); + nativeBinarySend(sock, TeaVMUtils.unwrapArrayBuffer( + IPacket.writePacket(new IPacket00Handshake(0x03, IntegratedServer.preferredRelayVersion, "")) + )); + } catch (IOException e) { + System.err.println(e.toString()); + sock.close(); + failed = true; + } + } + }); + sock.addEventListener("message", new EventListener() { + @Override + public void handleEvent(MessageEvent evt) { + if(evt.getData() != null && !isString(evt.getData())) { + hasRecievedAnyData = true; + byte[] arr = TeaVMUtils.wrapByteArrayBuffer(evt.getDataAsArray()); + if(arr.length == 2 && arr[0] == (byte)0xFC) { + long millis = steadyTimeMillis(); + if(arr[1] == (byte)0x00 || arr[1] == (byte)0x01) { + rateLimitStatus = RateLimit.BLOCKED; + relayQueryLimited.put(RelayQueryImpl.this.uri, millis); + }else if(arr[1] == (byte)0x02) { + rateLimitStatus = RateLimit.NOW_LOCKED; + relayQueryLimited.put(RelayQueryImpl.this.uri, millis); + relayQueryBlocked.put(RelayQueryImpl.this.uri, millis); + }else { + rateLimitStatus = RateLimit.LOCKED; + relayQueryBlocked.put(RelayQueryImpl.this.uri, millis); + } + failed = true; + open = false; + sock.close(); + }else { + if(open) { + try { + IPacket pkt = IPacket.readPacket(new DataInputStream(new EaglerInputStream(arr))); + if(pkt instanceof IPacket69Pong) { + IPacket69Pong ipkt = (IPacket69Pong)pkt; + versError = RelayQuery.VersionMismatch.COMPATIBLE; + if(connectionPingTimer == -1) { + connectionPingTimer = steadyTimeMillis() - connectionPingStart; + } + vers = ipkt.protcolVersion; + comment = ipkt.comment; + brand = ipkt.brand; + open = false; + failed = false; + sock.close(); + }else if(pkt instanceof IPacketFFErrorCode) { + IPacketFFErrorCode ipkt = (IPacketFFErrorCode)pkt; + if(ipkt.code == IPacketFFErrorCode.TYPE_PROTOCOL_VERSION) { + String s = ipkt.desc.toLowerCase(); + if(s.contains("outdated client") || s.contains("client outdated")) { + versError = RelayQuery.VersionMismatch.CLIENT_OUTDATED; + }else if(s.contains("outdated server") || s.contains("server outdated") || + s.contains("outdated relay") || s.contains("server relay")) { + versError = RelayQuery.VersionMismatch.RELAY_OUTDATED; + }else { + versError = RelayQuery.VersionMismatch.UNKNOWN; + } + } + System.err.println(uri + ": Recieved query error code " + ipkt.code + ": " + ipkt.desc); + open = false; + failed = true; + sock.close(); + }else { + throw new IOException("Unexpected packet '" + pkt.getClass().getSimpleName() + "'"); + } + } catch (IOException e) { + System.err.println("Relay Query Error: " + e.toString()); + e.printStackTrace(); + open = false; + failed = true; + sock.close(); + } + } + } + } + } + }); + sock.addEventListener("close", new EventListener() { + @Override + public void handleEvent(CloseEvent evt) { + open = false; + if(!hasRecievedAnyData) { + failed = true; + Long l = relayQueryBlocked.get(uri); + if(l != null) { + if(steadyTimeMillis() - l.longValue() < 400000l) { + rateLimitStatus = RateLimit.LOCKED; + return; + } + } + l = relayQueryLimited.get(uri); + if(l != null) { + if(steadyTimeMillis() - l.longValue() < 900000l) { + rateLimitStatus = RateLimit.BLOCKED; + return; + } + } + } + } + }); + } + + @Override + public boolean isQueryOpen() { + return open; + } + + @Override + public boolean isQueryFailed() { + return failed; + } + + @Override + public RateLimit isQueryRateLimit() { + return rateLimitStatus; + } + + @Override + public void close() { + if(sock != null && open) { + sock.close(); + } + open = false; + } + + @Override + public int getVersion() { + return vers; + } + + @Override + public String getComment() { + return comment; + } + + @Override + public String getBrand() { + return brand; + } + + @Override + public long getPing() { + return connectionPingTimer < 1 ? 1 : connectionPingTimer; + } + + @Override + public VersionMismatch getCompatible() { + return versError; + } + + } + + private static class RelayQueryRatelimitDummy implements RelayQuery { + + private final RateLimit type; + + private RelayQueryRatelimitDummy(RateLimit type) { + this.type = type; + } + + @Override + public boolean isQueryOpen() { + return false; + } + + @Override + public boolean isQueryFailed() { + return true; + } + + @Override + public RateLimit isQueryRateLimit() { + return type; + } + + @Override + public void close() { + } + + @Override + public int getVersion() { + return IntegratedServer.preferredRelayVersion; + } + + @Override + public String getComment() { + return "this query was rate limited"; + } + + @Override + public String getBrand() { + return "lax1dude"; + } + + @Override + public long getPing() { + return 0l; + } + + @Override + public VersionMismatch getCompatible() { + return VersionMismatch.COMPATIBLE; + } + + } + + public static final RelayQuery openRelayQuery(String addr) { + long millis = steadyTimeMillis(); + + Long l = relayQueryBlocked.get(addr); + if(l != null && millis - l.longValue() < 60000l) { + return new RelayQueryRatelimitDummy(RateLimit.LOCKED); + } + + l = relayQueryLimited.get(addr); + if(l != null && millis - l.longValue() < 10000l) { + return new RelayQueryRatelimitDummy(RateLimit.BLOCKED); + } + + return new RelayQueryImpl(addr); + } + + private static class RelayWorldsQueryImpl implements RelayWorldsQuery { + + private final WebSocket sock; + private final String uri; + + private boolean open; + private boolean failed; + + private boolean hasRecievedAnyData = false; + private RateLimit rateLimitStatus = RateLimit.NONE; + + private RelayQuery.VersionMismatch versError = RelayQuery.VersionMismatch.UNKNOWN; + + private List worlds = null; + + private RelayWorldsQueryImpl(String uri) { + this.uri = uri; + WebSocket s = null; + try { + s = new WebSocket(uri); + s.setBinaryType("arraybuffer"); + open = true; + failed = false; + }catch(Throwable t) { + sock = null; + open = false; + failed = true; + return; + } + sock = s; + sock.addEventListener("open", new EventListener() { + @Override + public void handleEvent(Event evt) { + try { + nativeBinarySend(sock, TeaVMUtils.unwrapArrayBuffer( + IPacket.writePacket(new IPacket00Handshake(0x04, IntegratedServer.preferredRelayVersion, "")) + )); + } catch (IOException e) { + System.err.println(e.toString()); + sock.close(); + open = false; + failed = true; + } + } + }); + sock.addEventListener("message", new EventListener() { + @Override + public void handleEvent(MessageEvent evt) { + if(evt.getData() != null && !isString(evt.getData())) { + hasRecievedAnyData = true; + byte[] arr = TeaVMUtils.wrapByteArrayBuffer(evt.getDataAsArray()); + if(arr.length == 2 && arr[0] == (byte)0xFC) { + long millis = steadyTimeMillis(); + if(arr[1] == (byte)0x00 || arr[1] == (byte)0x01) { + rateLimitStatus = RateLimit.BLOCKED; + relayQueryLimited.put(RelayWorldsQueryImpl.this.uri, millis); + }else if(arr[1] == (byte)0x02) { + rateLimitStatus = RateLimit.NOW_LOCKED; + relayQueryLimited.put(RelayWorldsQueryImpl.this.uri, millis); + relayQueryBlocked.put(RelayWorldsQueryImpl.this.uri, millis); + }else { + rateLimitStatus = RateLimit.LOCKED; + relayQueryBlocked.put(RelayWorldsQueryImpl.this.uri, millis); + } + open = false; + failed = true; + sock.close(); + }else { + if(open) { + try { + IPacket pkt = IPacket.readPacket(new DataInputStream(new EaglerInputStream(arr))); + if(pkt instanceof IPacket07LocalWorlds) { + worlds = ((IPacket07LocalWorlds)pkt).worldsList; + sock.close(); + open = false; + failed = false; + }else if(pkt instanceof IPacketFFErrorCode) { + IPacketFFErrorCode ipkt = (IPacketFFErrorCode)pkt; + if(ipkt.code == IPacketFFErrorCode.TYPE_PROTOCOL_VERSION) { + String s = ipkt.desc.toLowerCase(); + if(s.contains("outdated client") || s.contains("client outdated")) { + versError = RelayQuery.VersionMismatch.CLIENT_OUTDATED; + }else if(s.contains("outdated server") || s.contains("server outdated") || + s.contains("outdated relay") || s.contains("server relay")) { + versError = RelayQuery.VersionMismatch.RELAY_OUTDATED; + }else { + versError = RelayQuery.VersionMismatch.UNKNOWN; + } + } + System.err.println(uri + ": Recieved query error code " + ipkt.code + ": " + ipkt.desc); + open = false; + failed = true; + sock.close(); + }else { + throw new IOException("Unexpected packet '" + pkt.getClass().getSimpleName() + "'"); + } + } catch (IOException e) { + System.err.println("Relay World Query Error: " + e.toString()); + e.printStackTrace(); + open = false; + failed = true; + sock.close(); + } + } + } + } + } + }); + sock.addEventListener("close", new EventListener() { + @Override + public void handleEvent(CloseEvent evt) { + open = false; + if(!hasRecievedAnyData) { + failed = true; + Long l = relayQueryBlocked.get(uri); + if(l != null) { + if(steadyTimeMillis() - l.longValue() < 400000l) { + rateLimitStatus = RateLimit.LOCKED; + return; + } + } + l = relayQueryLimited.get(uri); + if(l != null) { + if(steadyTimeMillis() - l.longValue() < 900000l) { + rateLimitStatus = RateLimit.BLOCKED; + return; + } + } + } + } + }); + } + + @Override + public boolean isQueryOpen() { + return open; + } + + @Override + public boolean isQueryFailed() { + return failed; + } + + @Override + public RateLimit isQueryRateLimit() { + return rateLimitStatus; + } + + @Override + public void close() { + if(open && sock != null) { + sock.close(); + } + open = false; + } + + @Override + public List getWorlds() { + return worlds; + } + + @Override + public RelayQuery.VersionMismatch getCompatible() { + return versError; + } + + } + + private static class RelayWorldsQueryRatelimitDummy implements RelayWorldsQuery { + + private final RateLimit rateLimit; + + private RelayWorldsQueryRatelimitDummy(RateLimit rateLimit) { + this.rateLimit = rateLimit; + } + + @Override + public boolean isQueryOpen() { + return false; + } + + @Override + public boolean isQueryFailed() { + return true; + } + + @Override + public RateLimit isQueryRateLimit() { + return rateLimit; + } + + @Override + public void close() { + } + + @Override + public List getWorlds() { + return new ArrayList<>(0); + } + + @Override + public RelayQuery.VersionMismatch getCompatible() { + return RelayQuery.VersionMismatch.COMPATIBLE; + } + } + + public static final RelayWorldsQuery openRelayWorldsQuery(String addr) { + long millis = steadyTimeMillis(); + + Long l = relayQueryBlocked.get(addr); + if(l != null && millis - l.longValue() < 60000l) { + return new RelayWorldsQueryRatelimitDummy(RateLimit.LOCKED); + } + + l = relayQueryLimited.get(addr); + if(l != null && millis - l.longValue() < 10000l) { + return new RelayWorldsQueryRatelimitDummy(RateLimit.BLOCKED); + } + + return new RelayWorldsQueryImpl(addr); + } + + private static class RelayServerSocketImpl implements RelayServerSocket { + + private final WebSocket sock; + private final String uri; + + private boolean open; + private boolean closed; + private boolean failed; + + private boolean hasRecievedAnyData; + + private final List exceptions = new LinkedList<>(); + private final List packets = new LinkedList<>(); + + private RelayServerSocketImpl(String uri, int timeout) { + this.uri = uri; + WebSocket s = null; + try { + s = new WebSocket(uri); + s.setBinaryType("arraybuffer"); + open = false; + closed = false; + failed = false; + }catch(Throwable t) { + exceptions.add(t); + sock = null; + open = false; + closed = true; + failed = true; + return; + } + sock = s; + sock.addEventListener("open", new EventListener() { + @Override + public void handleEvent(Event evt) { + open = true; + } + }); + sock.addEventListener("message", new EventListener() { + @Override + public void handleEvent(MessageEvent evt) { + if(evt.getData() != null && !isString(evt.getData())) { + hasRecievedAnyData = true; + byte[] arr = TeaVMUtils.wrapByteArrayBuffer(evt.getDataAsArray()); + try { + packets.add(IPacket.readPacket(new DataInputStream(new EaglerInputStream(arr)))); + } catch (IOException e) { + exceptions.add(e); + System.err.println("Relay Socket Error: " + e.toString()); + e.printStackTrace(); + open = false; + failed = true; + closed = true; + sock.close(); + } + } + } + }); + sock.addEventListener("close", new EventListener() { + @Override + public void handleEvent(CloseEvent evt) { + if(!hasRecievedAnyData) { + failed = true; + } + open = false; + closed = true; + } + }); + Window.setTimeout(new TimerHandler() { + + @Override + public void onTimer() { + if(!open && !closed) { + closed = true; + sock.close(); + } + } + + }, timeout); + } + + @Override + public boolean isOpen() { + return open; + } + + @Override + public boolean isClosed() { + return closed; + } + + @Override + public void close() { + if(open && sock != null) { + sock.close(); + } + open = false; + closed = true; + } + + @Override + public boolean isFailed() { + return failed; + } + + @Override + public Throwable getException() { + if(exceptions.size() > 0) { + return exceptions.remove(0); + }else { + return null; + } + } + + @Override + public void writePacket(IPacket pkt) { + try { + nativeBinarySend(sock, TeaVMUtils.unwrapArrayBuffer(IPacket.writePacket(pkt))); + } catch (Throwable e) { + System.err.println("Relay connection error: " + e.toString()); + e.printStackTrace(); + exceptions.add(e); + failed = true; + open = false; + closed = true; + sock.close(); + } + } + + @Override + public IPacket readPacket() { + if(packets.size() > 0) { + return packets.remove(0); + }else { + return null; + } + } + + @Override + public IPacket nextPacket() { + if(packets.size() > 0) { + return packets.get(0); + }else { + return null; + } + } + + @Override + public RateLimit getRatelimitHistory() { + if(relayQueryBlocked.containsKey(uri)) { + return RateLimit.LOCKED; + } + if(relayQueryLimited.containsKey(uri)) { + return RateLimit.BLOCKED; + } + return RateLimit.NONE; + } + + @Override + public String getURI() { + return uri; + } + + } + + private static class RelayServerSocketRatelimitDummy implements RelayServerSocket { + + private final RateLimit limit; + + private RelayServerSocketRatelimitDummy(RateLimit limit) { + this.limit = limit; + } + + @Override + public boolean isOpen() { + return false; + } + + @Override + public boolean isClosed() { + return true; + } + + @Override + public void close() { + } + + @Override + public boolean isFailed() { + return true; + } + + @Override + public Throwable getException() { + return null; + } + + @Override + public void writePacket(IPacket pkt) { + } + + @Override + public IPacket readPacket() { + return null; + } + + @Override + public IPacket nextPacket() { + return null; + } + + @Override + public RateLimit getRatelimitHistory() { + return limit; + } + + @Override + public String getURI() { + return ""; + } + + } + + public static final RelayServerSocket openRelayConnection(String addr, int timeout) { + long millis = steadyTimeMillis(); + + Long l = relayQueryBlocked.get(addr); + if(l != null && millis - l.longValue() < 60000l) { + return new RelayServerSocketRatelimitDummy(RateLimit.LOCKED); + } + + l = relayQueryLimited.get(addr); + if(l != null && millis - l.longValue() < 10000l) { + return new RelayServerSocketRatelimitDummy(RateLimit.BLOCKED); + } + + return new RelayServerSocketImpl(addr, timeout); + } + + private static EaglercraftLANClient rtcLANClient = null; + + @JSBody(params = { }, script = "return window.startLANClient();") + private static native EaglercraftLANClient startRTCLANClient(); + + private static boolean clientLANinit = false; + private static final List clientLANPacketBuffer = new ArrayList<>(); + + private static String clientICECandidate = null; + private static String clientDescription = null; + private static boolean clientDataChannelOpen = false; + private static boolean clientDataChannelClosed = true; + + public static final boolean clientLANSupported() { + return rtcLANClient.LANClientSupported(); + } + + public static final int clientLANReadyState() { + return rtcLANClient.getReadyState(); + } + + public static final void clientLANCloseConnection() { + rtcLANClient.signalRemoteDisconnect(false); + } + + public static final void clientLANSendPacket(byte[] pkt) { + rtcLANClient.sendPacketToServer(TeaVMUtils.unwrapArrayBuffer(pkt)); + } + + public static final byte[] clientLANReadPacket() { + return clientLANPacketBuffer.size() > 0 ? clientLANPacketBuffer.remove(0) : null; + } + + public static final void clientLANSetICEServersAndConnect(String[] servers) { + if(!clientLANinit) { + clientLANinit = true; + rtcLANClient.setDescriptionHandler(new EaglercraftLANClient.DescriptionHandler() { + @Override + public void call(String description) { + clientDescription = description; + } + }); + rtcLANClient.setICECandidateHandler(new EaglercraftLANClient.ICECandidateHandler() { + @Override + public void call(String candidate) { + clientICECandidate = candidate; + } + }); + rtcLANClient.setRemoteDataChannelHandler(new EaglercraftLANClient.ClientSignalHandler() { + @Override + public void call() { + clientDataChannelClosed = false; + clientDataChannelOpen = true; + } + }); + rtcLANClient.setRemotePacketHandler(new EaglercraftLANClient.RemotePacketHandler() { + @Override + public void call(ArrayBuffer buffer) { + clientLANPacketBuffer.add(TeaVMUtils.wrapByteArrayBuffer(buffer)); + } + }); + rtcLANClient.setRemoteDisconnectHandler(new EaglercraftLANClient.ClientSignalHandler() { + @Override + public void call() { + clientDataChannelClosed = true; + } + }); + } + rtcLANClient.setICEServers(servers); + if(clientLANReadyState() == rtcLANClient.READYSTATE_CONNECTED || clientLANReadyState() == rtcLANClient.READYSTATE_CONNECTING) { + rtcLANClient.signalRemoteDisconnect(true); + } + rtcLANClient.initializeClient(); + rtcLANClient.signalRemoteConnect(); + } + + public static final void clearLANClientState() { + clientICECandidate = null; + clientDescription = null; + clientDataChannelOpen = false; + clientDataChannelClosed = true; + } + + public static final String clientLANAwaitICECandidate() { + if(clientICECandidate != null) { + String ret = clientICECandidate; + clientICECandidate = null; + return ret; + }else { + return null; + } + } + + public static final String clientLANAwaitDescription() { + if(clientDescription != null) { + String ret = clientDescription; + clientDescription = null; + return ret; + }else { + return null; + } + } + + public static final boolean clientLANAwaitChannel() { + if(clientDataChannelOpen) { + clientDataChannelOpen = false; + return true; + }else { + return false; + } + } + + public static final boolean clientLANClosed() { + return clientDataChannelClosed; + } + + public static final void clientLANSetICECandidate(String candidate) { + rtcLANClient.signalRemoteICECandidate(candidate); + } + + public static final void clientLANSetDescription(String description) { + rtcLANClient.signalRemoteDescription(description); + } + + private static EaglercraftLANServer rtcLANServer = null; + + @JSBody(params = { }, script = "return window.startLANServer();") + private static native EaglercraftLANServer startRTCLANServer(); + + private static boolean serverLANinit = false; + private static final List serverLANEventBuffer = new LinkedList<>(); + + public static final boolean serverLANSupported() { + return rtcLANServer.LANServerSupported(); + } + + public static final void serverLANInitializeServer(String[] servers) { + serverLANEventBuffer.clear(); + rtcLANServer.setICEServers(servers); + rtcLANServer.initializeServer(); + if(!serverLANinit) { + serverLANinit = true; + rtcLANServer.setDescriptionHandler(new EaglercraftLANServer.DescriptionHandler() { + @Override + public void call(String peerId, String description) { + serverLANEventBuffer.add(new LANPeerEvent.LANPeerDescriptionEvent(peerId, description)); + } + }); + rtcLANServer.setICECandidateHandler(new EaglercraftLANServer.ICECandidateHandler() { + @Override + public void call(String peerId, String candidate) { + serverLANEventBuffer.add(new LANPeerEvent.LANPeerICECandidateEvent(peerId, candidate)); + } + }); + rtcLANServer.setRemoteClientDataChannelHandler(new EaglercraftLANServer.ClientSignalHandler() { + @Override + public void call(String peerId) { + serverLANEventBuffer.add(new LANPeerEvent.LANPeerDataChannelEvent(peerId)); + } + }); + rtcLANServer.setRemoteClientPacketHandler(new EaglercraftLANServer.PeerPacketHandler() { + @Override + public void call(String peerId, ArrayBuffer buffer) { + serverLANEventBuffer.add(new LANPeerEvent.LANPeerPacketEvent(peerId, TeaVMUtils.wrapByteArrayBuffer(buffer))); + } + }); + rtcLANServer.setRemoteClientDisconnectHandler(new EaglercraftLANServer.ClientSignalHandler() { + @Override + public void call(String peerId) { + serverLANEventBuffer.add(new LANPeerEvent.LANPeerDisconnectEvent(peerId)); + } + }); + } + } + + public static final void serverLANCloseServer() { + rtcLANServer.signalRemoteDisconnect(""); + } + + public static final LANPeerEvent serverLANGetEvent(String clientId) { + if(serverLANEventBuffer.size() > 0) { + Iterator i = serverLANEventBuffer.iterator(); + while(i.hasNext()) { + LANPeerEvent evt = i.next(); + if(evt.getPeerId().equals(clientId)) { + i.remove(); + return evt; + } + } + return null; + }else { + return null; + } + } + + public static final List serverLANGetAllEvent(String clientId) { + if(serverLANEventBuffer.size() > 0) { + List lst = null; + Iterator i = serverLANEventBuffer.iterator(); + while(i.hasNext()) { + LANPeerEvent evt = i.next(); + if(evt.getPeerId().equals(clientId)) { + i.remove(); + if(lst == null) { + lst = new ArrayList<>(); + } + lst.add(evt); + } + } + return lst; + }else { + return null; + } + } + + private static final int fragmentSize = 0xFF00; + + public static final void serverLANWritePacket(String peer, byte[] data) { + if (data.length > fragmentSize) { + for (int i = 0; i < data.length; i += fragmentSize) { + byte[] fragData = new byte[((i + fragmentSize > data.length) ? (data.length % fragmentSize) : fragmentSize) + 1]; + System.arraycopy(data, i, fragData, 1, fragData.length - 1); + fragData[0] = (i + fragmentSize < data.length) ? (byte) 1 : (byte) 0; + rtcLANServer.sendPacketToRemoteClient(peer, TeaVMUtils.unwrapArrayBuffer(fragData)); + } + } else { + byte[] sendData = new byte[data.length + 1]; + sendData[0] = 0; + System.arraycopy(data, 0, sendData, 1, data.length); + rtcLANServer.sendPacketToRemoteClient(peer, TeaVMUtils.unwrapArrayBuffer(sendData)); + } + } + + public static final void serverLANCreatePeer(String peer) { + rtcLANServer.signalRemoteConnect(peer); + } + + public static final void serverLANPeerICECandidates(String peer, String iceCandidates) { + rtcLANServer.signalRemoteICECandidate(peer, iceCandidates); + } + + public static final void serverLANPeerDescription(String peer, String description) { + rtcLANServer.signalRemoteDescription(peer, description); + } + + public static final void serverLANDisconnectPeer(String peer) { + rtcLANServer.signalRemoteDisconnect(peer); + } + + public static final int countPeers() { + return rtcLANServer.countPeers(); + } + + private static final JSObject steadyTimeFunc = getSteadyTimeFunc(); + + @JSBody(params = { }, script = "return ((typeof performance !== \"undefined\") && (typeof performance.now === \"function\"))" + + "? performance.now.bind(performance)" + + ": (function(epochStart){ return function() { return Date.now() - epochStart; }; })(Date.now());") + private static native JSObject getSteadyTimeFunc(); + + @JSBody(params = { "steadyTimeFunc" }, script = "return steadyTimeFunc();") + private static native double steadyTimeMillis0(JSObject steadyTimeFunc); + + public static long steadyTimeMillis() { + return (long)steadyTimeMillis0(steadyTimeFunc); + } + + public static long nanoTime() { + return (long)(steadyTimeMillis0(steadyTimeFunc) * 1000000.0); + } + + @Async + public static native void sleep(int millis); + + private static void sleep(int millis, final AsyncCallback callback) { + Platform.schedule(new DumbSleepHandler(callback), millis); + } + + private static class DumbSleepHandler implements PlatformRunnable { + private final AsyncCallback callback; + private DumbSleepHandler(AsyncCallback callback) { + this.callback = callback; + } + @Override + public void run() { + callback.complete(null); + } + } + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/SimpleStorage.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/SimpleStorage.java new file mode 100644 index 0000000..3974610 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/SimpleStorage.java @@ -0,0 +1,190 @@ +package net.lax1dude.eaglercraft.adapter; + +import org.teavm.interop.Async; +import org.teavm.interop.AsyncCallback; +import org.teavm.jso.core.JSString; +import org.teavm.jso.indexeddb.IDBDatabase; +import org.teavm.jso.indexeddb.IDBFactory; +import org.teavm.jso.indexeddb.IDBGetRequest; +import org.teavm.jso.indexeddb.IDBObjectStore; +import org.teavm.jso.indexeddb.IDBOpenDBRequest; +import org.teavm.jso.indexeddb.IDBRequest; +import org.teavm.jso.typedarrays.ArrayBuffer; + +import net.lax1dude.eaglercraft.adapter.teavm.TeaVMUtils; + +public class SimpleStorage { + private static IDBDatabase database; + private static boolean available; + + public static boolean isAvailable() { + return available; + } + + static { + IDBOpenDBRequest request = IDBFactory.getInstance().open("eagstorage", 1); + request.setOnUpgradeNeeded(evt -> { + database = request.getResult(); + database.createObjectStore("store"); + }); + request.setOnSuccess(() -> { + database = request.getResult(); + available = true; + }); + request.setOnError(() -> { + database = request.getResult(); + available = false; + }); + } + + private static IDBObjectStore getStore() { + return database.transaction(new String[] { "store" }, "readwrite").objectStore("store"); + } + + @Async + public static native byte[] get(String key); + + private static void get(String key, final AsyncCallback cb) { + if (key.equals("__LIST__") || key.contains("\n")) { + cb.complete(null); + return; + } + IDBGetRequest request = getStore().get(JSString.valueOf(key)); + request.setOnSuccess(() -> { + cb.complete(TeaVMUtils.wrapByteArrayBuffer((ArrayBuffer) request.getResult())); + }); + request.setOnError(() -> { + cb.complete(null); + }); + } + + @Async + public static native Boolean set(String key, byte[] value); + + private static void set(String key, byte[] value, final AsyncCallback cb) { + if (key.equals("__LIST__") || key.contains("\n")) { + cb.complete(false); + return; + } + if (value == null) { + IDBGetRequest request3 = getStore().get(JSString.valueOf("__LIST__")); + request3.setOnSuccess(() -> { + String listVal; + if (JSString.isInstance(request3.getResult()) && !(listVal = ((JSString) request3.getResult().cast()).stringValue()).isEmpty()) { + String[] list = listVal.replaceAll("[^a-zA-Z0-9_\n]", "").split("\n"); + String[] newList = new String[list.length - 1]; + int a = 0; + for (int i = 0; i < list.length; ++i) { + if (list[i].equals(key)) { + --a; + } else { + newList[i + a] = list[i]; + } + } + IDBRequest request2 = getStore().put(JSString.valueOf(String.join("\n", newList)), JSString.valueOf("__LIST__")); + request2.setOnSuccess(() -> { + IDBRequest request = getStore().delete(JSString.valueOf(key)); + request.setOnSuccess(() -> { + cb.complete(Boolean.TRUE); + }); + request.setOnError(() -> { + cb.complete(Boolean.FALSE); + }); + }); + request2.setOnError(() -> { + cb.complete(Boolean.FALSE); + }); + } else { + IDBRequest request = getStore().delete(JSString.valueOf(key)); + request.setOnSuccess(() -> { + cb.complete(Boolean.TRUE); + }); + request.setOnError(() -> { + cb.complete(Boolean.FALSE); + }); + } + }); + request3.setOnError(() -> { + IDBRequest request = getStore().delete(JSString.valueOf(key)); + request.setOnSuccess(() -> { + cb.complete(Boolean.TRUE); + }); + request.setOnError(() -> { + cb.complete(Boolean.FALSE); + }); + }); + } else { + ArrayBuffer arr = TeaVMUtils.unwrapArrayBuffer(value); + IDBRequest request2 = getStore().put(arr, JSString.valueOf(key)); + request2.setOnSuccess(() -> { + IDBGetRequest request3 = getStore().get(JSString.valueOf("__LIST__")); + request3.setOnSuccess(() -> { + String listVal; + if (JSString.isInstance(request3.getResult()) && !(listVal = ((JSString) request3.getResult().cast()).stringValue()).isEmpty()) { + String[] list = listVal.replaceAll("[^a-zA-Z0-9_\n]", "").split("\n"); + boolean alrHas = false; + for (String s : list) { + if (s.equals(key)) { + alrHas = true; + break; + } + } + String[] newList; + if (alrHas) { + newList = list; + } else { + newList = new String[list.length + 1]; + System.arraycopy(list, 0, newList, 0, list.length); + newList[list.length] = key; + } + IDBRequest request = getStore().put(JSString.valueOf(String.join("\n", newList).replaceAll("[^a-zA-Z0-9_\n]", "")), JSString.valueOf("__LIST__")); + request.setOnSuccess(() -> { + cb.complete(Boolean.TRUE); + }); + request.setOnError(() -> { + cb.complete(Boolean.FALSE); + }); + } else { + IDBRequest request = getStore().put(JSString.valueOf(key), JSString.valueOf("__LIST__")); + request.setOnSuccess(() -> { + cb.complete(Boolean.TRUE); + }); + request.setOnError(() -> { + cb.complete(Boolean.FALSE); + }); + } + }); + request3.setOnError(() -> { + IDBRequest request = getStore().put(JSString.valueOf(key), JSString.valueOf("__LIST__")); + request.setOnSuccess(() -> { + cb.complete(Boolean.TRUE); + }); + request.setOnError(() -> { + cb.complete(Boolean.FALSE); + }); + }); + }); + request2.setOnError(() -> { + cb.complete(Boolean.FALSE); + }); + } + } + + @Async + public static native String[] list(); + + private static void list(final AsyncCallback cb) { + IDBGetRequest request = getStore().get(JSString.valueOf("__LIST__")); + request.setOnSuccess(() -> { + String listVal; + if (JSString.isInstance(request.getResult()) && !(listVal = ((JSString) request.getResult().cast()).stringValue()).isEmpty()) { + cb.complete(listVal.replaceAll("[^a-zA-Z0-9_\n]", "").split("\n")); + } else { + cb.complete(new String[0]); + } + }); + request.setOnError(() -> { + cb.complete(new String[0]); + }); + } +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/Tessellator.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/Tessellator.java new file mode 100644 index 0000000..88ffd0a --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/Tessellator.java @@ -0,0 +1,386 @@ +package net.lax1dude.eaglercraft.adapter; + +import org.teavm.jso.typedarrays.ArrayBuffer; +import org.teavm.jso.typedarrays.Float32Array; +import org.teavm.jso.typedarrays.Int32Array; + +import net.lax1dude.eaglercraft.EaglerAdapter; + + +public class Tessellator { + + /** The byte buffer used for GL allocation. */ + private Int32Array intBuffer; + private Float32Array floatBuffer; + + /** + * The number of vertices to be drawn in the next draw call. Reset to 0 between + * draw calls. + */ + private int vertexCount = 0; + + /** The first coordinate to be used for the texture. */ + private float textureU; + + /** The second coordinate to be used for the texture. */ + private float textureV; + private int brightness; + + /** The color (RGBA) value to be used for the following draw call. */ + private int color; + + /** + * Whether the current draw object for this tessellator has color values. + */ + private boolean hasColor = false; + + /** + * Whether the current draw object for this tessellator has texture coordinates. + */ + private boolean hasTexture = false; + private boolean hasBrightness = false; + + /** + * Whether the current draw object for this tessellator has normal values. + */ + private boolean hasNormals = false; + + /** The index into the raw buffer to be used for the next data. */ + private int rawBufferIndex = 0; + + /** + * The number of vertices manually added to the given draw call. This differs + * from vertexCount because it adds extra vertices when converting quads to + * triangles. + */ + private int addedVertices = 0; + + /** Disables all color information for the following draw call. */ + private boolean isColorDisabled = false; + + /** The draw mode currently being used by the tessellator. */ + private int drawMode; + + /** + * An offset to be applied along the x-axis for all vertices in this draw call. + */ + private double xOffset; + + /** + * An offset to be applied along the y-axis for all vertices in this draw call. + */ + private double yOffset; + + /** + * An offset to be applied along the z-axis for all vertices in this draw call. + */ + private double zOffset; + + /** The normal to be applied to the face being drawn. */ + private int normal; + + /** The static instance of the Tessellator. */ + public static final Tessellator instance = new Tessellator(525000); + + /** Whether this tessellator is currently in draw mode. */ + private boolean isDrawing = false; + + /** Whether we are currently using VBO or not. */ + private boolean useVBO = false; + + /** The size of the buffers used (in integers). */ + private int bufferSize; + + private Tessellator(int par1) { + this.bufferSize = par1; + ArrayBuffer a = new ArrayBuffer(par1 * 4); + this.intBuffer = new Int32Array(a); + this.floatBuffer = new Float32Array(a); + } + + /** + * Draws the data set up in this tessellator and resets the state to prepare for + * new drawing. + */ + public int draw() { + if (!this.isDrawing) { + return 0; + } else { + this.isDrawing = false; + + if (this.vertexCount > 0) { + + if (this.hasTexture) { + EaglerAdapter.glEnableVertexAttrib(EaglerAdapter.GL_TEXTURE_COORD_ARRAY); + } + + if (this.hasColor) { + EaglerAdapter.glEnableVertexAttrib(EaglerAdapter.GL_COLOR_ARRAY); + } + + if (this.hasNormals) { + EaglerAdapter.glEnableVertexAttrib(EaglerAdapter.GL_NORMAL_ARRAY); + } + + if (this.hasBrightness) { + EaglerAdapter.glClientActiveTexture(EaglerAdapter.GL_TEXTURE1); + EaglerAdapter.glEnableVertexAttrib(EaglerAdapter.GL_TEXTURE_COORD_ARRAY); + EaglerAdapter.glClientActiveTexture(EaglerAdapter.GL_TEXTURE0); + } + + EaglerAdapter.glDrawArrays(this.drawMode, 0, this.vertexCount, new Int32Array(intBuffer.getBuffer(), 0, this.vertexCount * 8)); + + if (this.hasTexture) { + EaglerAdapter.glDisableVertexAttrib(EaglerAdapter.GL_TEXTURE_COORD_ARRAY); + } + + if (this.hasColor) { + EaglerAdapter.glDisableVertexAttrib(EaglerAdapter.GL_COLOR_ARRAY); + } + + if (this.hasNormals) { + EaglerAdapter.glDisableVertexAttrib(EaglerAdapter.GL_NORMAL_ARRAY); + } + + if (this.hasBrightness) { + EaglerAdapter.glClientActiveTexture(EaglerAdapter.GL_TEXTURE1); + EaglerAdapter.glDisableVertexAttrib(EaglerAdapter.GL_TEXTURE_COORD_ARRAY); + EaglerAdapter.glClientActiveTexture(EaglerAdapter.GL_TEXTURE0); + } + } + + int var1 = this.rawBufferIndex * 4; + this.reset(); + return var1; + } + } + + /** + * Clears the tessellator state in preparation for new drawing. + */ + private void reset() { + this.vertexCount = 0; + //this.byteBuffer.clear(); + this.rawBufferIndex = 0; + this.addedVertices = 0; + } + + /** + * Sets draw mode in the tessellator to draw quads. + */ + public void startDrawingQuads() { + this.startDrawing(EaglerAdapter.GL_QUADS); + } + + /** + * Resets tessellator state and prepares for drawing (with the specified draw + * mode). + */ + public void startDrawing(int par1) { + if (this.isDrawing) { + this.draw(); + } + this.isDrawing = true; + this.reset(); + this.drawMode = par1; + this.hasNormals = false; + this.hasColor = false; + this.hasTexture = false; + this.hasBrightness = false; + this.isColorDisabled = false; + } + + /** + * Sets the texture coordinates. + */ + public void setTextureUV(double par1, double par3) { + this.hasTexture = true; + this.textureU = (float) par1; + this.textureV = (float) par3; + } + + public void setBrightness(int par1) { + this.hasBrightness = true; + this.brightness = par1; + } + + /** + * Sets the RGB values as specified, converting from floats between 0 and 1 to + * integers from 0-255. + */ + public void setColorOpaque_F(float par1, float par2, float par3) { + this.setColorOpaque((int) (par1 * 255.0F), (int) (par2 * 255.0F), (int) (par3 * 255.0F)); + } + + /** + * Sets the RGBA values for the color, converting from floats between 0 and 1 to + * integers from 0-255. + */ + public void setColorRGBA_F(float par1, float par2, float par3, float par4) { + this.setColorRGBA((int) (par1 * 255.0F), (int) (par2 * 255.0F), (int) (par3 * 255.0F), (int) (par4 * 255.0F)); + } + + /** + * Sets the RGB values as specified, and sets alpha to opaque. + */ + public void setColorOpaque(int par1, int par2, int par3) { + this.setColorRGBA(par1, par2, par3, 255); + } + + /** + * Sets the RGBA values for the color. Also clamps them to 0-255. + */ + public void setColorRGBA(int par1, int par2, int par3, int par4) { + if (!this.isColorDisabled) { + if (par1 > 255) { + par1 = 255; + } + + if (par2 > 255) { + par2 = 255; + } + + if (par3 > 255) { + par3 = 255; + } + + if (par4 > 255) { + par4 = 255; + } + + if (par1 < 0) { + par1 = 0; + } + + if (par2 < 0) { + par2 = 0; + } + + if (par3 < 0) { + par3 = 0; + } + + if (par4 < 0) { + par4 = 0; + } + + this.hasColor = true; + this.color = par4 << 24 | par3 << 16 | par2 << 8 | par1; + } + } + + /** + * Adds a vertex specifying both x,y,z and the texture u,v for it. + */ + public void addVertexWithUV(double par1, double par3, double par5, double par7, double par9) { + this.setTextureUV(par7, par9); + this.addVertex(par1, par3, par5); + } + + /** + * Adds a vertex with the specified x,y,z to the current draw call. It will + * trigger a draw() if the buffer gets full. + */ + public void addVertex(double par1, double par3, double par5) { + if(this.addedVertices > 65534) return; + ++this.addedVertices; + ++this.vertexCount; + + int bufferIndex = this.rawBufferIndex; + Int32Array intBuffer0 = intBuffer; + Float32Array floatBuffer0 = floatBuffer; + + floatBuffer0.set(bufferIndex + 0, (float) (par1 + this.xOffset)); + floatBuffer0.set(bufferIndex + 1, (float) (par3 + this.yOffset)); + floatBuffer0.set(bufferIndex + 2, (float) (par5 + this.zOffset)); + + if (this.hasTexture) { + floatBuffer0.set(bufferIndex + 3, this.textureU); + floatBuffer0.set(bufferIndex + 4, this.textureV); + } + + if (this.hasColor) { + intBuffer0.set(bufferIndex + 5, this.color); + } + + if (this.hasNormals) { + intBuffer0.set(bufferIndex + 6, this.normal); + } + + if (this.hasBrightness) { + intBuffer0.set(bufferIndex + 7, this.brightness); + } + + this.rawBufferIndex += 8; + } + + /** + * Sets the color to the given opaque value (stored as byte values packed in an + * integer). + */ + public void setColorOpaque_I(int par1) { + int var2 = par1 >>> 16 & 255; + int var3 = par1 >>> 8 & 255; + int var4 = par1 & 255; + this.setColorOpaque(var2, var3, var4); + } + + /** + * Sets the color to the given color (packed as bytes in integer) and alpha + * values. + */ + public void setColorRGBA_I(int par1, int par2) { + int var3 = par1 >>> 16 & 255; + int var4 = par1 >>> 8 & 255; + int var5 = par1 & 255; + this.setColorRGBA(var3, var4, var5, par2); + } + + /** + * Disables colors for the current draw call. + */ + public void disableColor() { + this.isColorDisabled = true; + } + + /** + * Sets the normal for the current draw call. + */ + public void setNormal(float par1, float par2, float par3) { + this.hasNormals = true; + int var4 = (int)(par1 * 127.0F) + 127; + int var5 = (int)(par2 * 127.0F) + 127; + int var6 = (int)(par3 * 127.0F) + 127; + this.normal = var4 & 255 | (var5 & 255) << 8 | (var6 & 255) << 16; + } + + /** + * Sets the normal for the current draw call. + */ + public void setNormalN(float par1, float par2, float par3) { + this.hasNormals = true; + float len = (float) Math.sqrt(par1 * par1 + par2 * par2 + par3 * par3); + int var4 = (int)((par1 / len) * 127.0F) + 127; + int var5 = (int)((par2 / len) * 127.0F) + 127; + int var6 = (int)((par3 / len) * 127.0F) + 127; + this.normal = var4 & 255 | (var5 & 255) << 8 | (var6 & 255) << 16; + } + + /** + * Sets the translation for all vertices in the current draw call. + */ + public void setTranslation(double par1, double par3, double par5) { + this.xOffset = par1; + this.yOffset = par3; + this.zOffset = par5; + } + + /** + * Offsets the translation for all vertices in the current draw call. + */ + public void addTranslation(float par1, float par2, float par3) { + this.xOffset += (float) par1; + this.yOffset += (float) par2; + this.zOffset += (float) par3; + } +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/BufferConverter.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/BufferConverter.java new file mode 100644 index 0000000..879d594 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/BufferConverter.java @@ -0,0 +1,59 @@ +package net.lax1dude.eaglercraft.adapter.teavm; + +import java.nio.ByteBuffer; +import java.nio.IntBuffer; + +import org.teavm.jso.typedarrays.Int8Array; +import org.teavm.jso.typedarrays.Uint8Array; + +public class BufferConverter { + + public static final Int8Array convertByteBuffer(ByteBuffer b) { + if(b.hasArray()) { + int p = b.position(); + int l = b.remaining(); + return new Int8Array(TeaVMUtils.unwrapArrayBuffer(b.array()), p, l); + }else { + byte[] ret = new byte[b.remaining()]; + b.get(ret); + return TeaVMUtils.unwrapByteArray(ret); + } + } + + public static final Uint8Array convertByteBufferUnsigned(ByteBuffer b) { + if(b.hasArray()) { + int p = b.position(); + int l = b.remaining(); + return new Uint8Array(TeaVMUtils.unwrapArrayBuffer(b.array()), p, l); + }else { + byte[] ret = new byte[b.remaining()]; + b.get(ret); + return TeaVMUtils.unwrapUnsignedByteArray(ret); + } + } + + public static final Int8Array convertIntBuffer(IntBuffer b) { + if(b.hasArray()) { + int p = b.position() << 2; + int l = b.remaining() << 2; + return new Int8Array(TeaVMUtils.unwrapArrayBuffer(b.array()), p, l); + }else { + int[] ret = new int[b.remaining()]; + b.get(ret); + return new Int8Array(TeaVMUtils.unwrapArrayBuffer(ret)); + } + } + + public static final Uint8Array convertIntBufferUnsigned(IntBuffer b) { + if(b.hasArray()) { + int p = b.position() << 2; + int l = b.remaining() << 2; + return new Uint8Array(TeaVMUtils.unwrapArrayBuffer(b.array()), p, l); + }else { + int[] ret = new int[b.remaining()]; + b.get(ret); + return new Uint8Array(TeaVMUtils.unwrapArrayBuffer(ret)); + } + } + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/EaglercraftLANClient.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/EaglercraftLANClient.java new file mode 100644 index 0000000..0b2d0e8 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/EaglercraftLANClient.java @@ -0,0 +1,63 @@ +package net.lax1dude.eaglercraft.adapter.teavm; + +import org.teavm.jso.JSFunctor; +import org.teavm.jso.JSObject; +import org.teavm.jso.typedarrays.ArrayBuffer; + +public interface EaglercraftLANClient extends JSObject { + + final int READYSTATE_INIT_FAILED = -2; + final int READYSTATE_FAILED = -1; + final int READYSTATE_DISCONNECTED = 0; + final int READYSTATE_CONNECTING = 1; + final int READYSTATE_CONNECTED = 2; + + boolean LANClientSupported(); + + void initializeClient(); + + void setICEServers(String[] urls); + + void setICECandidateHandler(ICECandidateHandler callback); + + void setDescriptionHandler(DescriptionHandler callback); + + void setRemoteDataChannelHandler(ClientSignalHandler cb); + + void setRemoteDisconnectHandler(ClientSignalHandler cb); + + void setRemotePacketHandler(RemotePacketHandler cb); + + int getReadyState(); + + void sendPacketToServer(ArrayBuffer buffer); + + void signalRemoteConnect(); + + void signalRemoteDescription(String descJSON); + + void signalRemoteICECandidate(String candidate); + + void signalRemoteDisconnect(boolean quiet); + + @JSFunctor + public static interface ICECandidateHandler extends JSObject { + void call(String candidate); + } + + @JSFunctor + public static interface DescriptionHandler extends JSObject { + void call(String description); + } + + @JSFunctor + public static interface ClientSignalHandler extends JSObject { + void call(); + } + + @JSFunctor + public static interface RemotePacketHandler extends JSObject { + void call(ArrayBuffer buffer); + } + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/EaglercraftLANServer.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/EaglercraftLANServer.java new file mode 100644 index 0000000..06ca4fe --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/EaglercraftLANServer.java @@ -0,0 +1,57 @@ +package net.lax1dude.eaglercraft.adapter.teavm; + +import org.teavm.jso.JSFunctor; +import org.teavm.jso.JSObject; +import org.teavm.jso.typedarrays.ArrayBuffer; + +public interface EaglercraftLANServer extends JSObject { + + boolean LANServerSupported(); + + void initializeServer(); + + void setICEServers(String[] urls); + + void setICECandidateHandler(ICECandidateHandler cb); + + void setDescriptionHandler(DescriptionHandler cb); + + void setRemoteClientDataChannelHandler(ClientSignalHandler cb); + + void setRemoteClientDisconnectHandler(ClientSignalHandler cb); + + void setRemoteClientPacketHandler(PeerPacketHandler cb); + + void sendPacketToRemoteClient(String peerId, ArrayBuffer buffer); + + void signalRemoteConnect(String peerId); + + void signalRemoteDescription(String peerId, String descJSON); + + void signalRemoteICECandidate(String peerId, String candidate); + + void signalRemoteDisconnect(String peerId); + + int countPeers(); + + @JSFunctor + public static interface ICECandidateHandler extends JSObject { + void call(String peerId, String candidate); + } + + @JSFunctor + public static interface DescriptionHandler extends JSObject { + void call(String peerId, String candidate); + } + + @JSFunctor + public static interface ClientSignalHandler extends JSObject { + void call(String peerId); + } + + @JSFunctor + public static interface PeerPacketHandler extends JSObject { + void call(String peerId, ArrayBuffer buffer); + } + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/EaglercraftVoiceClient.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/EaglercraftVoiceClient.java new file mode 100644 index 0000000..cb2ba41 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/EaglercraftVoiceClient.java @@ -0,0 +1,63 @@ +package net.lax1dude.eaglercraft.adapter.teavm; + +import org.teavm.jso.JSFunctor; +import org.teavm.jso.JSObject; +import org.teavm.jso.webaudio.MediaStream; + +public interface EaglercraftVoiceClient extends JSObject { + + int READYSTATE_NONE = 0; + int READYSTATE_ABORTED = -1; + int READYSTATE_DEVICE_INITIALIZED = 1; + + boolean voiceClientSupported(); + + void initializeDevices(); + + void setICEServers(String[] urls); + + void setICECandidateHandler(ICECandidateHandler callback); + + void setDescriptionHandler(DescriptionHandler callback); + + void setPeerTrackHandler(PeerTrackHandler callback); + + void setPeerDisconnectHandler(PeerDisconnectHandler callback); + + void activateVoice(boolean active); + + void setMicVolume(float volume); + + void mutePeer(String peerId, boolean muted); + + int getReadyState(); + + int signalConnect(String peerId, boolean offer); + + int signalDescription(String peerId, String description); + + int signalDisconnect(String peerId, boolean quiet); + + int signalICECandidate(String peerId, String candidate); + + @JSFunctor + public static interface ICECandidateHandler extends JSObject { + void call(String peerId, String candidate); + } + + @JSFunctor + public static interface DescriptionHandler extends JSObject { + void call(String peerId, String candidate); + } + + @JSFunctor + public static interface PeerTrackHandler extends JSObject { + void call(String peerId, MediaStream audioNode); + } + + @JSFunctor + public static interface PeerDisconnectHandler extends JSObject { + void call(String peerId, boolean quiet); + } + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/MessageChannel.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/MessageChannel.java new file mode 100644 index 0000000..193c0cb --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/MessageChannel.java @@ -0,0 +1,36 @@ +package net.lax1dude.eaglercraft.adapter.teavm; + +import org.teavm.jso.JSBody; +import org.teavm.jso.JSClass; +import org.teavm.jso.JSObject; +import org.teavm.jso.JSProperty; +import org.teavm.jso.workers.MessagePort; + +/** + * Copyright (c) 2024 lax1dude. All Rights Reserved. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + */ +@JSClass +public class MessageChannel implements JSObject { + + @JSBody(params = { }, script = "return (typeof MessageChannel !== \"undefined\");") + public static native boolean supported(); + + @JSProperty + public native MessagePort getPort1(); + + @JSProperty + public native MessagePort getPort2(); + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/SelfDefence.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/SelfDefence.java new file mode 100644 index 0000000..3a2b146 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/SelfDefence.java @@ -0,0 +1,103 @@ +package net.lax1dude.eaglercraft.adapter.teavm; + +import java.util.ArrayList; +import java.util.List; + +import org.teavm.jso.JSBody; +import org.teavm.jso.JSFunctor; +import org.teavm.jso.JSObject; +import org.teavm.jso.browser.TimerHandler; +import org.teavm.jso.browser.Window; +import org.teavm.jso.core.JSArrayReader; +import org.teavm.jso.dom.html.HTMLCanvasElement; +import org.teavm.jso.dom.html.HTMLDocument; +import org.teavm.jso.dom.html.HTMLIFrameElement; +import org.teavm.jso.dom.xml.Element; +import org.teavm.jso.dom.xml.NodeList; + +public class SelfDefence { + + private static HTMLCanvasElement canvas = null; + private static boolean ignoreNextWindow = false; + + @JSFunctor + private static interface NewWindowCallback extends JSObject { + void call(Window newWindow); + } + + @JSBody(params = { "cb" }, script = "const ccb = cb; const _open = window.open; window.open = (url,name,params) => { var rw = _open(url,name,params); ccb(rw); return rw; }") + private static native void injectWindowCapture(NewWindowCallback callback); + + private static final List capturedChildWindows = new ArrayList<>(); + + public static void init(HTMLCanvasElement legitCanvas) { + canvas = legitCanvas; + for(int i = 0; i < 15; ++i) { + Window.setTimeout(new TimerHandler() { + + @Override + public void onTimer() { + Window.setTimeout(this, (long)(Math.random() * 25000l)); + run(Window.current()); + for(int i = 0, l = capturedChildWindows.size(); i < l; ++i) { + run(capturedChildWindows.get(i)); + } + } + + }, (long)(Math.random() * 25000l)); + } + injectWindowCapture(new NewWindowCallback() { + @Override + public void call(Window newWindow) { + if(!ignoreNextWindow) { + capturedChildWindows.add(newWindow); + } + ignoreNextWindow = false; + } + }); + } + + public static void openWindowIgnore(String url, String name) { + ignoreNextWindow = true; + Window.current().open(url, name); + } + + private static void run(Window win) { + try { + run0(win); + }catch(Throwable t) { + } + } + + private static void run0(Window win) { + run(win.getDocument()); + JSArrayReader frms = win.getFrames(); + for(int i = 0, l = frms.getLength(); i < l; ++i) { + HTMLIFrameElement frm = frms.get(i); + if(checkFrame(frm)) { + run(frm.getContentWindow()); + } + } + } + + @JSBody(params = { "frm" }, script = "try { var g = frm.contentWindow; g[\"fuck_off\"] = \"dick\"; return g[\"fuck_off\"] === \"dick\"; } catch (e) { return false; }") + private static native boolean checkFrame(HTMLIFrameElement frame); + + private static void run(HTMLDocument doc) { + try { + run0(doc); + }catch(Throwable t) { + } + } + + private static void run0(HTMLDocument doc) { + NodeList els = doc.getElementsByTagName("canvas"); + for(int i = 0, l = els.getLength(); i < l; ++i) { + HTMLCanvasElement canv = (HTMLCanvasElement) els.get(i); + if(canvas != canv) { + canv.delete(); + } + } + } + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/TeaVMUtils.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/TeaVMUtils.java new file mode 100644 index 0000000..5fb0005 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/TeaVMUtils.java @@ -0,0 +1,95 @@ +package net.lax1dude.eaglercraft.adapter.teavm; + +import org.teavm.backend.javascript.spi.GeneratedBy; +import org.teavm.backend.javascript.spi.InjectedBy; +import org.teavm.jso.typedarrays.ArrayBuffer; +import org.teavm.jso.typedarrays.ArrayBufferView; +import org.teavm.jso.typedarrays.Float32Array; +import org.teavm.jso.typedarrays.Int16Array; +import org.teavm.jso.typedarrays.Int32Array; +import org.teavm.jso.typedarrays.Int8Array; +import org.teavm.jso.typedarrays.Uint8Array; + +import net.lax1dude.eaglercraft.adapter.teavm.generators.TeaVMUtilsUnwrapGenerator; + +public class TeaVMUtils { + + @InjectedBy(TeaVMUtilsUnwrapGenerator.UnwrapTypedArray.class) + public static native Int8Array unwrapByteArray(byte[] buf); + + @InjectedBy(TeaVMUtilsUnwrapGenerator.UnwrapArrayBuffer.class) + public static native ArrayBuffer unwrapArrayBuffer(byte[] buf); + + @InjectedBy(TeaVMUtilsUnwrapGenerator.UnwrapTypedArray.class) + public static native ArrayBufferView unwrapArrayBufferView(byte[] buf); + + @GeneratedBy(TeaVMUtilsUnwrapGenerator.WrapTypedArray.class) + public static native byte[] wrapByteArray(Int8Array buf); + + @GeneratedBy(TeaVMUtilsUnwrapGenerator.WrapArrayBuffer.class) + public static native byte[] wrapByteArrayBuffer(ArrayBuffer buf); + + @GeneratedBy(TeaVMUtilsUnwrapGenerator.WrapArrayBufferView.class) + public static native byte[] wrapByteArrayBufferView(ArrayBufferView buf); + + @InjectedBy(TeaVMUtilsUnwrapGenerator.UnwrapUnsignedTypedArray.class) + public static native Uint8Array unwrapUnsignedByteArray(byte[] buf); + + @GeneratedBy(TeaVMUtilsUnwrapGenerator.WrapArrayBufferView.class) + public static native byte[] wrapUnsignedByteArray(Uint8Array buf); + + @InjectedBy(TeaVMUtilsUnwrapGenerator.UnwrapTypedArray.class) + public static native Int32Array unwrapIntArray(int[] buf); + + @InjectedBy(TeaVMUtilsUnwrapGenerator.UnwrapArrayBuffer.class) + public static native ArrayBuffer unwrapArrayBuffer(int[] buf); + + @InjectedBy(TeaVMUtilsUnwrapGenerator.UnwrapTypedArray.class) + public static native ArrayBufferView unwrapArrayBufferView(int[] buf); + + @GeneratedBy(TeaVMUtilsUnwrapGenerator.WrapTypedArray.class) + public static native int[] wrapIntArray(Int32Array buf); + + @GeneratedBy(TeaVMUtilsUnwrapGenerator.WrapArrayBuffer.class) + public static native int[] wrapIntArrayBuffer(ArrayBuffer buf); + + @GeneratedBy(TeaVMUtilsUnwrapGenerator.WrapArrayBufferView.class) + public static native int[] wrapIntArrayBufferView(ArrayBufferView buf); + + @InjectedBy(TeaVMUtilsUnwrapGenerator.UnwrapTypedArray.class) + public static native Float32Array unwrapFloatArray(float[] buf); + + @InjectedBy(TeaVMUtilsUnwrapGenerator.UnwrapArrayBuffer.class) + public static native ArrayBuffer unwrapArrayBuffer(float[] buf); + + @InjectedBy(TeaVMUtilsUnwrapGenerator.UnwrapTypedArray.class) + public static native ArrayBufferView unwrapArrayBufferView(float[] buf); + + @GeneratedBy(TeaVMUtilsUnwrapGenerator.WrapTypedArray.class) + public static native float[] wrapFloatArray(Float32Array buf); + + @GeneratedBy(TeaVMUtilsUnwrapGenerator.WrapArrayBuffer.class) + public static native float[] wrapFloatArrayBuffer(ArrayBuffer buf); + + @GeneratedBy(TeaVMUtilsUnwrapGenerator.WrapArrayBufferView.class) + public static native float[] wrapFloatArrayBufferView(ArrayBufferView buf); + + @InjectedBy(TeaVMUtilsUnwrapGenerator.UnwrapTypedArray.class) + public static native Int16Array unwrapShortArray(short[] buf); + + @InjectedBy(TeaVMUtilsUnwrapGenerator.UnwrapArrayBuffer.class) + public static native ArrayBuffer unwrapArrayBuffer(short[] buf); + + @InjectedBy(TeaVMUtilsUnwrapGenerator.UnwrapTypedArray.class) + public static native ArrayBufferView unwrapArrayBufferView(short[] buf); + + @GeneratedBy(TeaVMUtilsUnwrapGenerator.WrapTypedArray.class) + public static native short[] wrapShortArray(Int16Array buf); + + @GeneratedBy(TeaVMUtilsUnwrapGenerator.WrapArrayBuffer.class) + public static native short[] wrapShortArrayBuffer(ArrayBuffer buf); + + @GeneratedBy(TeaVMUtilsUnwrapGenerator.WrapArrayBufferView.class) + public static native short[] wrapShortArrayBuffer(ArrayBufferView buf); + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/WebGL2RenderingContext.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/WebGL2RenderingContext.java new file mode 100644 index 0000000..c185af1 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/WebGL2RenderingContext.java @@ -0,0 +1,46 @@ +package net.lax1dude.eaglercraft.adapter.teavm; + +import org.teavm.jso.webgl.WebGLRenderingContext; + +public interface WebGL2RenderingContext extends WebGLRenderingContext { + + int TEXTURE_MAX_LEVEL = 0x0000813D; + int TEXTURE_MAX_ANISOTROPY_EXT = 0x000084FE; + int UNSIGNED_INT_24_8 = 0x000084FA; + int ANY_SAMPLES_PASSED = 0x00008D6A; + int QUERY_RESULT = 0x00008866; + int QUERY_RESULT_AVAILABLE = 0x00008867; + int DEPTH24_STENCIL8 = 0x000088F0; + int DEPTH_COMPONENT32F = 0x00008CAC; + int READ_FRAMEBUFFER = 0x00008CA8; + int DRAW_FRAMEBUFFER = 0x00008CA9; + int RGB8 = 0x00008051; + int RGBA8 = 0x00008058; + int R8 = 0x00008229; + int RED = 0x00001903; + + WebGLQuery createQuery(); + + void beginQuery(int p1, WebGLQuery obj); + + void endQuery(int p1); + + void deleteQuery(WebGLQuery obj); + + int getQueryParameter(WebGLQuery obj, int p2); + + WebGLVertexArray createVertexArray(); + + void deleteVertexArray(WebGLVertexArray obj); + + void bindVertexArray(WebGLVertexArray obj); + + void renderbufferStorageMultisample(int p1, int p2, int p3, int p4, int p5); + + void blitFramebuffer(int p1, int p2, int p3, int p4, int p5, int p6, int p7, int p8, int p9, int p10); + + void drawBuffers(int[] p1); + + void readBuffer(int p1); + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/WebGLQuery.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/WebGLQuery.java new file mode 100644 index 0000000..5b3acaa --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/WebGLQuery.java @@ -0,0 +1,6 @@ +package net.lax1dude.eaglercraft.adapter.teavm; + +import org.teavm.jso.JSObject; + +public interface WebGLQuery extends JSObject { +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/WebGLVertexArray.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/WebGLVertexArray.java new file mode 100644 index 0000000..467ffc1 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/WebGLVertexArray.java @@ -0,0 +1,6 @@ +package net.lax1dude.eaglercraft.adapter.teavm; + +import org.teavm.jso.JSObject; + +public interface WebGLVertexArray extends JSObject { +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/generators/TeaVMUtilsUnwrapGenerator.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/generators/TeaVMUtilsUnwrapGenerator.java new file mode 100644 index 0000000..c30672f --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/teavm/generators/TeaVMUtilsUnwrapGenerator.java @@ -0,0 +1,158 @@ +package net.lax1dude.eaglercraft.adapter.teavm.generators; + +import org.teavm.backend.javascript.codegen.SourceWriter; +import org.teavm.backend.javascript.spi.Generator; +import org.teavm.backend.javascript.spi.GeneratorContext; +import org.teavm.backend.javascript.spi.Injector; +import org.teavm.backend.javascript.spi.InjectorContext; +import org.teavm.model.MethodReference; + +public class TeaVMUtilsUnwrapGenerator { + + // WARNING: This code uses internal TeaVM APIs that may not have + // been intended for end users of the compiler to program with + + public static class UnwrapArrayBuffer implements Injector { + + @Override + public void generate(InjectorContext context, MethodReference methodRef) { + context.writeExpr(context.getArgument(0)); + context.getWriter().append(".data.buffer"); + } + + } + + public static class UnwrapTypedArray implements Injector { + + @Override + public void generate(InjectorContext context, MethodReference methodRef) { + context.writeExpr(context.getArgument(0)); + context.getWriter().append(".data"); + } + + } + + public static class WrapArrayBuffer implements Generator { + + @Override + public void generate(GeneratorContext context, SourceWriter writer, MethodReference methodRef) { + String parName = context.getParameterName(1); + switch (methodRef.getName()) { + case "wrapByteArrayBuffer": + writer.append("return ").append(parName).ws().append('?').ws(); + writer.appendFunction("$rt_wrapArray").append('(').appendFunction("$rt_bytecls").append(',').ws(); + writer.append("new Int8Array(").append(parName).append("))").ws(); + writer.append(':').ws().append("null;").softNewLine(); + break; + case "wrapIntArrayBuffer": + writer.append("return ").append(parName).ws().append('?').ws(); + writer.appendFunction("$rt_wrapArray").append('(').appendFunction("$rt_intcls").append(',').ws(); + writer.append("new Int32Array(").append(parName).append("))").ws(); + writer.append(':').ws().append("null;").softNewLine(); + break; + case "wrapFloatArrayBuffer": + writer.append("return ").append(parName).ws().append('?').ws(); + writer.appendFunction("$rt_wrapArray").append('(').appendFunction("$rt_floatcls").append(',').ws(); + writer.append("new Float32Array(").append(parName).append("))").ws(); + writer.append(':').ws().append("null;").softNewLine(); + break; + case "wrapShortArrayBuffer": + writer.append("return ").append(parName).ws().append('?').ws(); + writer.appendFunction("$rt_wrapArray").append('(').appendFunction("$rt_shortcls").append(',').ws(); + writer.append("new Int16Array(").append(parName).append("))").ws(); + writer.append(':').ws().append("null;").softNewLine(); + break; + default: + break; + } + } + + } + + public static class WrapArrayBufferView implements Generator { + + @Override + public void generate(GeneratorContext context, SourceWriter writer, MethodReference methodRef) { + String parName = context.getParameterName(1); + switch (methodRef.getName()) { + case "wrapByteArrayBufferView": + case "wrapUnsignedByteArray": + writer.append("return ").append(parName).ws().append('?').ws(); + writer.appendFunction("$rt_wrapArray").append('(').appendFunction("$rt_bytecls").append(',').ws(); + writer.append("new Int8Array(").append(parName).append(".buffer))").ws(); + writer.append(':').ws().append("null;").softNewLine(); + break; + case "wrapIntArrayBufferView": + writer.append("return ").append(parName).ws().append('?').ws(); + writer.appendFunction("$rt_wrapArray").append('(').appendFunction("$rt_intcls").append(',').ws(); + writer.append("new Int32Array(").append(parName).append(".buffer))").ws(); + writer.append(':').ws().append("null;").softNewLine(); + break; + case "wrapFloatArrayBufferView": + writer.append("return ").append(parName).ws().append('?').ws(); + writer.appendFunction("$rt_wrapArray").append('(').appendFunction("$rt_floatcls").append(',').ws(); + writer.append("new Float32Array(").append(parName).append(".buffer))").ws(); + writer.append(':').ws().append("null;").softNewLine(); + break; + case "wrapShortArrayBufferView": + writer.append("return ").append(parName).ws().append('?').ws(); + writer.appendFunction("$rt_wrapArray").append('(').appendFunction("$rt_shortcls").append(',').ws(); + writer.append("new Int16Array(").append(parName).append(".buffer))").ws(); + writer.append(':').ws().append("null;").softNewLine(); + break; + default: + break; + } + } + + } + + public static class WrapTypedArray implements Generator { + + @Override + public void generate(GeneratorContext context, SourceWriter writer, MethodReference methodRef) { + String parName = context.getParameterName(1); + switch (methodRef.getName()) { + case "wrapByteArray": + writer.append("return ").append(parName).ws().append('?').ws(); + writer.appendFunction("$rt_wrapArray").append('(').appendFunction("$rt_shortcls").append(',').ws(); + writer.append(parName).append(")").ws(); + writer.append(':').ws().append("null;").softNewLine(); + break; + case "wrapIntArray": + writer.append("return ").append(parName).ws().append('?').ws(); + writer.appendFunction("$rt_wrapArray").append('(').appendFunction("$rt_intcls").append(',').ws(); + writer.append(parName).append(")").ws(); + writer.append(':').ws().append("null;").softNewLine(); + break; + case "wrapFloatArray": + writer.append("return ").append(parName).ws().append('?').ws(); + writer.appendFunction("$rt_wrapArray").append('(').appendFunction("$rt_floatcls").append(',').ws(); + writer.append(parName).append(")").ws(); + writer.append(':').ws().append("null;").softNewLine(); + break; + case "wrapShortArray": + writer.append("return ").append(parName).ws().append('?').ws(); + writer.appendFunction("$rt_wrapArray").append('(').appendFunction("$rt_shortcls").append(',').ws(); + writer.append(parName).append(")").ws(); + writer.append(':').ws().append("null;").softNewLine(); + break; + default: + break; + } + } + + } + + public static class UnwrapUnsignedTypedArray implements Injector { + + @Override + public void generate(InjectorContext context, MethodReference methodRef) { + context.getWriter().append("new Uint8Array("); + context.writeExpr(context.getArgument(0)); + context.getWriter().append(".data.buffer)"); + } + + } + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/BooleanResult.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/BooleanResult.java new file mode 100644 index 0000000..a956837 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/BooleanResult.java @@ -0,0 +1,18 @@ +package net.lax1dude.eaglercraft.adapter.vfs; + +public class BooleanResult { + + public static final BooleanResult TRUE = new BooleanResult(true); + public static final BooleanResult FALSE = new BooleanResult(false); + + public final boolean bool; + + private BooleanResult(boolean b) { + bool = b; + } + + public static BooleanResult _new(boolean b) { + return b ? TRUE : FALSE; + } + +} \ No newline at end of file diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/SYS.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/SYS.java new file mode 100644 index 0000000..303b084 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/SYS.java @@ -0,0 +1,19 @@ +package net.lax1dude.eaglercraft.adapter.vfs; + +public class SYS { + + public static final VirtualFilesystem VFS; + + static { + + VirtualFilesystem.VFSHandle vh = VirtualFilesystem.openVFS("eagStorage2"); + + if(vh.vfs == null) { + System.err.println("Could not init filesystem!"); + throw new RuntimeException("Could not init filesystem: VFSHandle.vfs was null"); + } + + VFS = vh.vfs; + + } +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VFSIterator.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VFSIterator.java new file mode 100644 index 0000000..34b3d0e --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VFSIterator.java @@ -0,0 +1,17 @@ +package net.lax1dude.eaglercraft.adapter.vfs; + +public interface VFSIterator { + + public static class BreakLoop extends RuntimeException { + public BreakLoop() { + super("iterator loop break request"); + } + } + + public default void end() { + throw new BreakLoop(); + } + + public void next(VIteratorFile entry); + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VFile.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VFile.java new file mode 100644 index 0000000..857a5db --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VFile.java @@ -0,0 +1,227 @@ +package net.lax1dude.eaglercraft.adapter.vfs; + +import java.io.InputStream; +import java.io.OutputStream; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; + +public class VFile { + + public static final String pathSeperator = "/"; + public static final String[] altPathSeperator = new String[] { "\\" }; + + public static String normalizePath(String p) { + for(int i = 0; i < altPathSeperator.length; ++i) { + p = p.replace(altPathSeperator[i], pathSeperator); + } + if(p.startsWith(pathSeperator)) { + p = p.substring(1); + } + if(p.endsWith(pathSeperator)) { + p = p.substring(0, p.length() - pathSeperator.length()); + } + return p; + } + + public static String[] splitPath(String p) { + String[] pth = normalizePath(p).split(pathSeperator); + for(int i = 0; i < pth.length; ++i) { + pth[i] = pth[i].trim(); + } + return pth; + } + + protected String path; + + public static String createPath(Object... p) { + ArrayList r = new ArrayList<>(); + for(int i = 0; i < p.length; ++i) { + if(p[i] == null) { + continue; + } + String gg = p[i].toString(); + if(gg == null) { + continue; + } + String[] parts = splitPath(gg); + for(int j = 0; j < parts.length; ++j) { + if(parts[j] == null || parts[j].equals(".")) { + continue; + }else if(parts[j].equals("..") && r.size() > 0) { + int k = r.size() - 1; + if(!r.get(k).equals("..")) { + r.remove(k); + }else { + r.add(".."); + } + }else { + r.add(parts[j]); + } + } + } + if(r.size() > 0) { + StringBuilder s = new StringBuilder(); + for(int i = 0; i < r.size(); ++i) { + if(i > 0) { + s.append(pathSeperator); + } + s.append(r.get(i)); + } + return s.toString(); + }else { + return null; + } + } + + public VFile(Object... p) { + this.path = createPath(p); + } + + public InputStream getInputStream() { + return isRelative() ? null : SYS.VFS.getFile(path).getInputStream(); + } + + public OutputStream getOutputStream() { + return isRelative() ? null : SYS.VFS.getFile(path).getOutputStream(); + } + + public String toString() { + return path; + } + + public boolean isRelative() { + return path == null || path.contains(".."); + } + + public boolean canRead() { + return !isRelative() && SYS.VFS.fileExists(path); + } + + public String getPath() { + return path.equals("unnamed") ? null : path; + } + + public String getName() { + if(path == null) { + return null; + } + int i = path.indexOf(pathSeperator); + return i == -1 ? path : path.substring(i + 1); + } + + public boolean canWrite() { + return !isRelative(); + } + + public String getParent() { + if(path == null) { + return null; + } + int i = path.indexOf(pathSeperator); + return i == -1 ? ".." : path.substring(0, i); + } + + public int hashCode() { + return path == null ? 0 : path.hashCode(); + } + + public boolean equals(Object o) { + return path != null && o != null && (o instanceof VFile) && path.equals(((VFile)o).path); + } + + public boolean exists() { + return !isRelative() && SYS.VFS.fileExists(path); + } + + public boolean delete() { + return !isRelative() && SYS.VFS.deleteFile(path); + } + + public boolean renameTo(String p, boolean copy) { + if(!isRelative() && SYS.VFS.renameFile(path, p, copy)) { + path = p; + return true; + } + return false; + } + + public int length() { + return isRelative() ? -1 : SYS.VFS.getFile(path).getSize(); + } + + public void getBytes(int fileOffset, byte[] array, int offset, int length) { + if(isRelative()) { + throw new ArrayIndexOutOfBoundsException("File is relative"); + } + SYS.VFS.getFile(path).getBytes(fileOffset, array, offset, length); + } + + public void setCacheEnabled() { + if(isRelative()) { + throw new RuntimeException("File is relative"); + } + SYS.VFS.getFile(path).setCacheEnabled(); + } + + public byte[] getAllBytes() { + if(isRelative()) { + return null; + } + return SYS.VFS.getFile(path).getAllBytes(); + } + + public String getAllChars() { + if(isRelative()) { + return null; + } + return SYS.VFS.getFile(path).getAllChars(); + } + + public String[] getAllLines() { + if(isRelative()) { + return null; + } + return SYS.VFS.getFile(path).getAllLines(); + } + + public byte[] getAllBytes(boolean copy) { + if(isRelative()) { + return null; + } + return SYS.VFS.getFile(path).getAllBytes(copy); + } + + public boolean setAllChars(String bytes) { + if(isRelative()) { + return false; + } + return SYS.VFS.getFile(path).setAllChars(bytes); + } + + public boolean setAllBytes(byte[] bytes) { + if(isRelative()) { + return false; + } + return SYS.VFS.getFile(path).setAllBytes(bytes); + } + + public boolean setAllBytes(byte[] bytes, boolean copy) { + if(isRelative()) { + return false; + } + return SYS.VFS.getFile(path).setAllBytes(bytes, copy); + } + + public List list() { + if(isRelative()) { + return Arrays.asList(path); + } + return SYS.VFS.listFiles(path); + } + + public int deleteAll() { + return isRelative() ? 0 : SYS.VFS.deleteFiles(path); + } + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VIteratorFile.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VIteratorFile.java new file mode 100644 index 0000000..2dfa631 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VIteratorFile.java @@ -0,0 +1,290 @@ +package net.lax1dude.eaglercraft.adapter.vfs; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.List; + +import org.teavm.interop.Async; +import org.teavm.interop.AsyncCallback; +import org.teavm.jso.JSBody; +import org.teavm.jso.JSObject; +import org.teavm.jso.dom.events.Event; +import org.teavm.jso.dom.events.EventListener; +import org.teavm.jso.indexeddb.IDBCursor; +import org.teavm.jso.indexeddb.IDBRequest; +import org.teavm.jso.typedarrays.ArrayBuffer; +import org.teavm.jso.typedarrays.Uint8Array; + +import net.lax1dude.eaglercraft.EaglerInputStream; + +/** + * Do not use an instance of this class outside of the VFSIterator.next() method + */ +public class VIteratorFile extends VFile { + + static final VIteratorFile instance = new VIteratorFile(); + + private VIteratorFile() { + super(""); + this.idx = -1; + this.cur = null; + this.vfs = null; + } + + private static class VirtualIteratorOutputStream extends ByteArrayOutputStream { + + private final VIteratorFile itr; + + protected VirtualIteratorOutputStream(VIteratorFile itr) { + this.itr = itr; + } + + public void close() throws IOException { + if(!itr.setAllBytes(super.toByteArray(), false)) { + throw new IOException("Could not close stream and write to \"" + itr.path + "\" on VFS \"" + itr.vfs.database + "\" (the file was probably deleted)"); + } + } + + } + + private int idx; + private IDBCursor cur; + private VirtualFilesystem vfs; + private boolean wasDeleted; + + @JSBody(params = { "k" }, script = "return ((typeof k) === \"string\") ? k : (((typeof k) === \"undefined\") ? null : (((typeof k[0]) === \"string\") ? k[0] : null));") + private static native String readKey(JSObject k); + + static VIteratorFile create(int idx, VirtualFilesystem vfs, IDBCursor cur) { + String k = readKey(cur.getKey()); + if(k == null) { + return null; + } + instance.update(idx, k, vfs, cur); + return instance; + } + + public VFile makeVFile() { + return new VFile(path); + } + + private void update(int idx, String path, VirtualFilesystem vfs, IDBCursor cur) { + this.idx = idx; + this.path = path; + this.vfs = vfs; + this.cur = cur; + this.wasDeleted = false; + } + + public InputStream getInputStream() { + return !wasDeleted ? new EaglerInputStream(getAllBytes()) : null; + } + + public OutputStream getOutputStream() { + return !wasDeleted ? new VirtualIteratorOutputStream(this) : null; + } + + public String toString() { + return path; + } + + public boolean isRelative() { + return false; + } + + public boolean canRead() { + return !wasDeleted; + } + + public String getPath() { + return path; + } + + public String getName() { + if(path == null) { + return null; + } + int i = path.indexOf(pathSeperator); + return i == -1 ? path : path.substring(i + 1); + } + + public boolean canWrite() { + return !wasDeleted; + } + + public String getParent() { + if(path == null) { + return null; + } + int i = path.indexOf(pathSeperator); + return i == -1 ? ".." : path.substring(0, i); + } + + public int hashCode() { + return path == null ? 0 : path.hashCode(); + } + + public boolean equals(Object o) { + return path != null && o != null && (o instanceof VFile) && path.equals(((VFile)o).path); + } + + public boolean exists() { + return !wasDeleted; + } + + public boolean delete() { + return wasDeleted = AsyncHandlers.awaitRequest(cur.delete()).bool; + } + + public boolean renameTo(String p) { + byte[] data = getAllBytes(); + String op = path; + path = p; + if(!setAllBytes(data)) { + path = op; + return false; + } + path = op; + if(!delete()) { + return false; + } + path = p; + return true; + } + + public int length() { + JSObject obj = cur.getValue(); + + if(obj == null) { + throw new RuntimeException("Value of entry is missing"); + } + + ArrayBuffer arr = readRow(obj); + + if(arr == null) { + throw new RuntimeException("Value of the fucking value of the entry is missing"); + } + + return arr.getByteLength(); + } + + public void getBytes(int fileOffset, byte[] array, int offset, int length) { + JSObject obj = cur.getValue(); + + if(obj == null) { + throw new ArrayIndexOutOfBoundsException("Value of entry is missing"); + } + + ArrayBuffer arr = readRow(obj); + + if(arr == null) { + throw new ArrayIndexOutOfBoundsException("Value of the fucking value of the entry is missing"); + } + + Uint8Array a = new Uint8Array(arr); + + if(a.getLength() < fileOffset + length) { + throw new ArrayIndexOutOfBoundsException("file '" + path + "' size was "+a.getLength()+" but user tried to read index "+(fileOffset + length - 1)); + } + + for(int i = 0; i < length; ++i) { + array[i + offset] = (byte)a.get(i + fileOffset); + } + } + + public void setCacheEnabled() { + // no + } + + @JSBody(params = { "obj" }, script = "return (typeof obj === 'undefined') ? null : ((typeof obj.data === 'undefined') ? null : obj.data);") + private static native ArrayBuffer readRow(JSObject obj); + + public byte[] getAllBytes() { + JSObject obj = cur.getValue(); + + if(obj == null) { + return null; + } + + ArrayBuffer arr = readRow(obj); + + if(arr == null) { + return null; + } + + Uint8Array a = new Uint8Array(arr); + int ii = a.getByteLength(); + + byte[] array = new byte[ii]; + for(int i = 0; i < ii; ++i) { + array[i] = (byte)a.get(i); + } + + return array; + } + + public String getAllChars() { + return VirtualFilesystem.utf8(getAllBytes()); + } + + public String[] getAllLines() { + return VirtualFilesystem.lines(VirtualFilesystem.utf8(getAllBytes())); + } + + public byte[] getAllBytes(boolean copy) { + return getAllBytes(); + } + + public boolean setAllChars(String bytes) { + return setAllBytes(VirtualFilesystem.utf8(bytes)); + } + + public List list() { + throw new RuntimeException("Cannot perform list all in VFS callback"); + } + + public int deleteAll() { + throw new RuntimeException("Cannot perform delete all in VFS callback"); + } + + @JSBody(params = { "pat", "dat" }, script = "return { path: pat, data: dat };") + private static native JSObject writeRow(String name, ArrayBuffer data); + + public boolean setAllBytes(byte[] bytes) { + ArrayBuffer a = new ArrayBuffer(bytes.length); + Uint8Array ar = new Uint8Array(a); + ar.set(bytes); + JSObject obj = writeRow(path, a); + BooleanResult r = AsyncHandlers.awaitRequest(cur.update(obj)); + return r.bool; + } + + public boolean setAllBytes(byte[] bytes, boolean copy) { + return setAllBytes(bytes); + } + + public static class AsyncHandlers { + + @Async + public static native BooleanResult awaitRequest(IDBRequest r); + + private static void awaitRequest(IDBRequest r, final AsyncCallback cb) { + r.addEventListener("success", new EventListener() { + @Override + public void handleEvent(Event evt) { + cb.complete(BooleanResult._new(true)); + } + }); + r.addEventListener("error", new EventListener() { + @Override + public void handleEvent(Event evt) { + cb.complete(BooleanResult._new(false)); + } + }); + } + + } + +} diff --git a/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VirtualFilesystem.java b/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VirtualFilesystem.java new file mode 100644 index 0000000..1195923 --- /dev/null +++ b/src/teavm/java/net/lax1dude/eaglercraft/adapter/vfs/VirtualFilesystem.java @@ -0,0 +1,690 @@ +package net.lax1dude.eaglercraft.adapter.vfs; + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; + +import net.lax1dude.eaglercraft.EaglerAdapter; +import net.lax1dude.eaglercraft.EaglerInputStream; +import net.lax1dude.eaglercraft.adapter.teavm.TeaVMUtils; + +import org.teavm.interop.Async; +import org.teavm.interop.AsyncCallback; +import org.teavm.jso.JSBody; +import org.teavm.jso.JSObject; +import org.teavm.jso.dom.events.EventListener; +import org.teavm.jso.indexeddb.EventHandler; +import org.teavm.jso.indexeddb.IDBCountRequest; +import org.teavm.jso.indexeddb.IDBCursor; +import org.teavm.jso.indexeddb.IDBCursorRequest; +import org.teavm.jso.indexeddb.IDBDatabase; +import org.teavm.jso.indexeddb.IDBFactory; +import org.teavm.jso.indexeddb.IDBGetRequest; +import org.teavm.jso.indexeddb.IDBObjectStoreParameters; +import org.teavm.jso.indexeddb.IDBOpenDBRequest; +import org.teavm.jso.indexeddb.IDBRequest; +import org.teavm.jso.indexeddb.IDBTransaction; +import org.teavm.jso.indexeddb.IDBVersionChangeEvent; +import org.teavm.jso.typedarrays.ArrayBuffer; +import org.teavm.jso.typedarrays.Int8Array; + +public class VirtualFilesystem { + + protected static class VirtualOutputStream extends ByteArrayOutputStream { + private final VFSFile file; + + protected VirtualOutputStream(VFSFile file) { + this.file = file; + } + + public void close() throws IOException { + if(!file.setAllBytes(super.toByteArray(), false)) { + throw new IOException("Could not close stream and write to \"" + file.filePath + "\" on VFS \"" + file.virtualFilesystem.database + "\" (the file was probably deleted)"); + } + } + } + + public static class VFSFile { + + public final VirtualFilesystem virtualFilesystem; + protected boolean cacheEnabled; + protected String filePath; + protected int fileSize = -1; + protected boolean hasBeenDeleted = false; + protected boolean hasBeenAccessed = false; + protected boolean exists = false; + + protected byte[] cache = null; + protected long cacheHit; + + protected VFSFile(VirtualFilesystem vfs, String filePath, boolean cacheEnabled) { + this.virtualFilesystem = vfs; + this.filePath = filePath; + this.cacheHit = EaglerAdapter.steadyTimeMillis(); + if(cacheEnabled) { + setCacheEnabled(); + } + } + + public boolean equals(Object o) { + return (o instanceof VFSFile) && ((VFSFile)o).filePath.equals(filePath); + } + + public int hashCode() { + return filePath.hashCode(); + } + + public String getPath() { + return filePath; + } + + public int getSize() { + cacheHit = EaglerAdapter.steadyTimeMillis(); + if(fileSize < 0) { + if(cacheEnabled) { + byte[] b = getAllBytes(false); + if(b != null) { + fileSize = b.length; + } + }else { + ArrayBuffer dat = AsyncHandlers.readWholeFile(virtualFilesystem.indexeddb, filePath); + if(dat != null) { + fileSize = dat.getByteLength(); + } + } + } + return fileSize; + } + + public InputStream getInputStream() { + byte[] dat = getAllBytes(true); + if(dat == null) { + return null; + } + return new EaglerInputStream(dat); + } + + public OutputStream getOutputStream() { + return new VirtualOutputStream(this); + } + + public void getBytes(int fileOffset, byte[] array, int offset, int length) { + if(hasBeenDeleted) { + throw new ArrayIndexOutOfBoundsException("file '" + filePath + "' has been deleted"); + }else if(hasBeenAccessed && !exists) { + throw new ArrayIndexOutOfBoundsException("file '" + filePath + "' does not exist"); + } + cacheHit = EaglerAdapter.steadyTimeMillis(); + if(cacheEnabled && cache != null) { + System.arraycopy(cache, fileOffset, array, offset, length); + }else { + ArrayBuffer aa = AsyncHandlers.readWholeFile(virtualFilesystem.indexeddb, filePath); + hasBeenAccessed = true; + if(aa != null) { + exists = true; + }else { + exists = false; + throw new ArrayIndexOutOfBoundsException("file '" + filePath + "' does not exist"); + } + this.fileSize = aa.getByteLength(); + if(cacheEnabled) { + cache = TeaVMUtils.wrapByteArrayBuffer(aa); + } + if(fileSize < fileOffset + length) { + throw new ArrayIndexOutOfBoundsException("file '" + filePath + "' size was "+fileSize+" but user tried to read index "+(fileOffset + length - 1)); + } + TeaVMUtils.unwrapByteArray(array).set(new Int8Array(aa, fileOffset, length), offset); + } + } + + public void setCacheEnabled() { + if(!cacheEnabled && !hasBeenDeleted && !(hasBeenAccessed && !exists)) { + cacheHit = EaglerAdapter.steadyTimeMillis(); + cache = getAllBytes(false); + cacheEnabled = true; + } + } + + public byte[] getAllBytes() { + return getAllBytes(false); + } + + public String getAllChars() { + return utf8(getAllBytes(false)); + } + + public String[] getAllLines() { + return lines(getAllChars()); + } + + public byte[] getAllBytes(boolean copy) { + if(hasBeenDeleted || (hasBeenAccessed && !exists)) { + return null; + } + cacheHit = EaglerAdapter.steadyTimeMillis(); + if(cacheEnabled && cache != null) { + byte[] b = cache; + if(copy) { + b = new byte[cache.length]; + System.arraycopy(cache, 0, b, 0, cache.length); + } + return b; + }else { + hasBeenAccessed = true; + ArrayBuffer b = AsyncHandlers.readWholeFile(virtualFilesystem.indexeddb, filePath); + if(b != null) { + exists = true; + }else { + exists = false; + return null; + } + this.fileSize = b.getByteLength(); + if(cacheEnabled) { + if(copy) { + cache = new byte[fileSize]; + TeaVMUtils.unwrapByteArray(cache).set(new Int8Array(b)); + }else { + cache = TeaVMUtils.wrapByteArrayBuffer(b); + } + } + return TeaVMUtils.wrapByteArrayBuffer(b); + } + } + + public boolean setAllChars(String bytes) { + return setAllBytes(utf8(bytes), true); + } + + public boolean setAllBytes(byte[] bytes) { + return setAllBytes(bytes, true); + } + + public boolean setAllBytes(byte[] bytes, boolean copy) { + if(hasBeenDeleted || bytes == null) { + return false; + } + cacheHit = EaglerAdapter.steadyTimeMillis(); + this.fileSize = bytes.length; + if(cacheEnabled) { + byte[] copz = bytes; + if(copy) { + copz = new byte[bytes.length]; + System.arraycopy(bytes, 0, copz, 0, bytes.length); + } + cache = copz; + return sync(); + }else { + boolean s = AsyncHandlers.writeWholeFile(virtualFilesystem.indexeddb, filePath, + TeaVMUtils.unwrapArrayBuffer(bytes)).bool; + hasBeenAccessed = true; + exists = exists || s; + return s; + } + } + + public boolean sync() { + if(cacheEnabled && cache != null && !hasBeenDeleted) { + cacheHit = EaglerAdapter.steadyTimeMillis(); + boolean tryWrite = AsyncHandlers.writeWholeFile(virtualFilesystem.indexeddb, filePath, + TeaVMUtils.unwrapArrayBuffer(cache)).bool; + hasBeenAccessed = true; + exists = exists || tryWrite; + return tryWrite; + } + return false; + } + + public boolean delete() { + if(!hasBeenDeleted && !(hasBeenAccessed && !exists)) { + cacheHit = EaglerAdapter.steadyTimeMillis(); + if(!AsyncHandlers.deleteFile(virtualFilesystem.indexeddb, filePath).bool) { + hasBeenAccessed = true; + return false; + } + virtualFilesystem.fileMap.remove(filePath); + hasBeenDeleted = true; + hasBeenAccessed = true; + exists = false; + return true; + } + return false; + } + + public boolean rename(String newName, boolean copy) { + if(!hasBeenDeleted && !(hasBeenAccessed && !exists)) { + cacheHit = EaglerAdapter.steadyTimeMillis(); + ArrayBuffer arr = AsyncHandlers.readWholeFile(virtualFilesystem.indexeddb, filePath); + hasBeenAccessed = true; + if(arr != null) { + exists = true; + if(!AsyncHandlers.writeWholeFile(virtualFilesystem.indexeddb, newName, arr).bool) { + return false; + } + if(!copy && !AsyncHandlers.deleteFile(virtualFilesystem.indexeddb, filePath).bool) { + return false; + } + }else { + exists = false; + } + if(!copy) { + virtualFilesystem.fileMap.remove(filePath); + filePath = newName; + virtualFilesystem.fileMap.put(newName, this); + } + return true; + } + return false; + } + + public boolean exists() { + if(hasBeenDeleted) { + return false; + } + cacheHit = EaglerAdapter.steadyTimeMillis(); + if(hasBeenAccessed) { + return exists; + } + exists = AsyncHandlers.fileExists(virtualFilesystem.indexeddb, filePath).bool; + hasBeenAccessed = true; + return exists; + } + + } + + private final HashMap fileMap = new HashMap<>(); + + public final String database; + private final IDBDatabase indexeddb; + + public static class VFSHandle { + + public final boolean failedInit; + public final boolean failedLocked; + public final String failedError; + public final VirtualFilesystem vfs; + + public VFSHandle(boolean init, boolean locked, String error, VirtualFilesystem db) { + failedInit = init; + failedLocked = locked; + failedError = error; + vfs = db; + } + + public String toString() { + if(failedInit) { + return "IDBFactory threw an exception, IndexedDB is most likely not supported in this browser." + (failedError == null ? "" : "\n\n" + failedError); + } + if(failedLocked) { + return "The filesystem requested is already in use on a different tab."; + } + if(failedError != null) { + return "The IDBFactory.open() request failed, reason: " + failedError; + } + return "Virtual Filesystem Object: " + vfs.database; + } + + } + + public static VFSHandle openVFS(String db) { + DatabaseOpen evt = AsyncHandlers.openDB(db); + if(evt.failedInit) { + return new VFSHandle(true, false, evt.failedError, null); + } + if(evt.failedLocked) { + return new VFSHandle(false, true, null, null); + } + if(evt.failedError != null) { + return new VFSHandle(false, false, evt.failedError, null); + } + return new VFSHandle(false, false, null, new VirtualFilesystem(db, evt.database)); + } + + private VirtualFilesystem(String db, IDBDatabase idb) { + database = db; + indexeddb = idb; + } + + public void close() { + indexeddb.close(); + } + + public VFSFile getFile(String path) { + return getFile(path, false); + } + + public VFSFile getFile(String path, boolean cache) { + VFSFile f = fileMap.get(path); + if(f == null) { + fileMap.put(path, f = new VFSFile(this, path, cache)); + }else { + if(cache) { + f.setCacheEnabled(); + } + } + return f; + } + + public boolean renameFile(String oldName, String newName, boolean copy) { + return getFile(oldName).rename(newName, copy); + } + + public boolean deleteFile(String path) { + return getFile(path).delete(); + } + + public boolean fileExists(String path) { + return getFile(path).exists(); + } + + public List listFiles(String prefix) { + final ArrayList list = new ArrayList<>(); + AsyncHandlers.iterateFiles(indexeddb, this, prefix, false, (v) -> { + list.add(v.getPath()); + }); + return list; + } + + public List listVFiles(String prefix) { + final ArrayList list = new ArrayList<>(); + AsyncHandlers.iterateFiles(indexeddb, this, prefix, false, (v) -> { + list.add(new VFile(v.getPath())); + }); + return list; + } + + public int deleteFiles(String prefix) { + return AsyncHandlers.deleteFiles(indexeddb, prefix); + } + + public int iterateFiles(String prefix, boolean rw, VFSIterator itr) { + return AsyncHandlers.iterateFiles(indexeddb, this, prefix, rw, itr); + } + + public int renameFiles(String oldPrefix, String newPrefix, boolean copy) { + List filesToCopy = listFiles(oldPrefix); + int i = 0; + for(String str : filesToCopy) { + String f = VFile.createPath(newPrefix, str.substring(oldPrefix.length())); + if(!renameFile(str, f, copy)) { + System.err.println("Could not " + (copy ? "copy" : "rename") + " file \"" + str + "\" to \"" + f + "\" for some reason"); + }else { + ++i; + } + } + return i; + } + + public void flushCache(long age) { + long curr = EaglerAdapter.steadyTimeMillis(); + Iterator files = fileMap.values().iterator(); + while(files.hasNext()) { + if(curr - files.next().cacheHit > age) { + files.remove(); + } + } + } + + protected static class DatabaseOpen { + + protected final boolean failedInit; + protected final boolean failedLocked; + protected final String failedError; + + protected final IDBDatabase database; + + protected DatabaseOpen(boolean init, boolean locked, String error, IDBDatabase db) { + failedInit = init; + failedLocked = locked; + failedError = error; + database = db; + } + + } + + @JSBody(script = "return ((typeof indexedDB) !== 'undefined') ? indexedDB : null;") + protected static native IDBFactory createIDBFactory(); + + protected static class AsyncHandlers { + + @Async + protected static native DatabaseOpen openDB(String name); + + private static void openDB(String name, final AsyncCallback cb) { + IDBFactory i = createIDBFactory(); + if(i == null) { + cb.complete(new DatabaseOpen(false, false, "window.indexedDB was null or undefined", null)); + return; + } + final IDBOpenDBRequest f = i.open(name, 1); + f.setOnBlocked(new EventHandler() { + @Override + public void handleEvent() { + cb.complete(new DatabaseOpen(false, true, null, null)); + } + }); + f.setOnSuccess(new EventHandler() { + @Override + public void handleEvent() { + cb.complete(new DatabaseOpen(false, false, null, f.getResult())); + } + }); + f.setOnError(new EventHandler() { + @Override + public void handleEvent() { + cb.complete(new DatabaseOpen(false, false, "open error", null)); + } + }); + f.setOnUpgradeNeeded(new EventListener() { + @Override + public void handleEvent(IDBVersionChangeEvent evt) { + f.getResult().createObjectStore("filesystem", IDBObjectStoreParameters.create().keyPath("path")); + } + }); + } + + @Async + protected static native BooleanResult deleteFile(IDBDatabase db, String name); + + private static void deleteFile(IDBDatabase db, String name, final AsyncCallback cb) { + IDBTransaction tx = db.transaction("filesystem", "readwrite"); + final IDBRequest r = tx.objectStore("filesystem").delete(makeTheFuckingKeyWork(name)); + + r.setOnSuccess(new EventHandler() { + @Override + public void handleEvent() { + cb.complete(BooleanResult._new(true)); + } + }); + r.setOnError(new EventHandler() { + @Override + public void handleEvent() { + cb.complete(BooleanResult._new(false)); + } + }); + } + + @JSBody(params = { "obj" }, script = "return (typeof obj === 'undefined') ? null : ((typeof obj.data === 'undefined') ? null : obj.data);") + protected static native ArrayBuffer readRow(JSObject obj); + + @JSBody(params = { "obj" }, script = "return [obj];") + private static native JSObject makeTheFuckingKeyWork(String k); + + @Async + protected static native ArrayBuffer readWholeFile(IDBDatabase db, String name); + + private static void readWholeFile(IDBDatabase db, String name, final AsyncCallback cb) { + IDBTransaction tx = db.transaction("filesystem", "readonly"); + final IDBGetRequest r = tx.objectStore("filesystem").get(makeTheFuckingKeyWork(name)); + r.setOnSuccess(new EventHandler() { + @Override + public void handleEvent() { + cb.complete(readRow(r.getResult())); + } + }); + r.setOnError(new EventHandler() { + @Override + public void handleEvent() { + cb.complete(null); + } + }); + + } + + @JSBody(params = { "k" }, script = "return ((typeof k) === \"string\") ? k : (((typeof k) === \"undefined\") ? null : (((typeof k[0]) === \"string\") ? k[0] : null));") + private static native String readKey(JSObject k); + + @JSBody(params = { "k" }, script = "return ((typeof k) === \"undefined\") ? null : (((typeof k.path) === \"undefined\") ? null : (((typeof k.path) === \"string\") ? k[0] : null));") + private static native String readRowKey(JSObject r); + + @Async + protected static native Integer iterateFiles(IDBDatabase db, final VirtualFilesystem vfs, final String prefix, boolean rw, final VFSIterator itr); + + private static void iterateFiles(IDBDatabase db, final VirtualFilesystem vfs, final String prefix, boolean rw, final VFSIterator itr, final AsyncCallback cb) { + IDBTransaction tx = db.transaction("filesystem", rw ? "readwrite" : "readonly"); + final IDBCursorRequest r = tx.objectStore("filesystem").openCursor(); + final int[] res = new int[1]; + r.setOnSuccess(new EventHandler() { + @Override + public void handleEvent() { + IDBCursor c = r.getResult(); + if(c == null || c.getKey() == null || c.getValue() == null) { + cb.complete(res[0]); + return; + } + String k = readKey(c.getKey()); + if(k != null) { + if(k.startsWith(prefix)) { + int ci = res[0]++; + try { + itr.next(VIteratorFile.create(ci, vfs, c)); + }catch(VFSIterator.BreakLoop ex) { + cb.complete(res[0]); + return; + } + } + } + c.doContinue(); + } + }); + r.setOnError(new EventHandler() { + @Override + public void handleEvent() { + cb.complete(res[0] > 0 ? res[0] : -1); + } + }); + } + + @Async + protected static native Integer deleteFiles(IDBDatabase db, final String prefix); + + private static void deleteFiles(IDBDatabase db, final String prefix, final AsyncCallback cb) { + IDBTransaction tx = db.transaction("filesystem", "readwrite"); + final IDBCursorRequest r = tx.objectStore("filesystem").openCursor(); + final int[] res = new int[1]; + r.setOnSuccess(new EventHandler() { + @Override + public void handleEvent() { + IDBCursor c = r.getResult(); + if(c == null || c.getKey() == null || c.getValue() == null) { + cb.complete(res[0]); + return; + } + String k = readKey(c.getKey()); + if(k != null) { + if(k.startsWith(prefix)) { + c.delete(); + ++res[0]; + } + } + c.doContinue(); + } + }); + r.setOnError(new EventHandler() { + @Override + public void handleEvent() { + cb.complete(res[0] > 0 ? res[0] : -1); + } + }); + } + + @Async + protected static native BooleanResult fileExists(IDBDatabase db, String name); + + private static void fileExists(IDBDatabase db, String name, final AsyncCallback cb) { + IDBTransaction tx = db.transaction("filesystem", "readonly"); + final IDBCountRequest r = tx.objectStore("filesystem").count(makeTheFuckingKeyWork(name)); + r.setOnSuccess(new EventHandler() { + @Override + public void handleEvent() { + cb.complete(BooleanResult._new(r.getResult() > 0)); + } + }); + r.setOnError(new EventHandler() { + @Override + public void handleEvent() { + cb.complete(BooleanResult._new(false)); + } + }); + } + + @JSBody(params = { "pat", "dat" }, script = "return { path: pat, data: dat };") + protected static native JSObject writeRow(String name, ArrayBuffer data); + + @Async + protected static native BooleanResult writeWholeFile(IDBDatabase db, String name, ArrayBuffer data); + + private static void writeWholeFile(IDBDatabase db, String name, ArrayBuffer data, final AsyncCallback cb) { + IDBTransaction tx = db.transaction("filesystem", "readwrite"); + final IDBRequest r = tx.objectStore("filesystem").put(writeRow(name, data)); + + r.setOnSuccess(new EventHandler() { + @Override + public void handleEvent() { + cb.complete(BooleanResult._new(true)); + } + }); + r.setOnError(new EventHandler() { + @Override + public void handleEvent() { + cb.complete(BooleanResult._new(false)); + } + }); + } + + } + + public static byte[] utf8(String str) { + if(str == null) return null; + return str.getBytes(Charset.forName("UTF-8")); + } + + public static String utf8(byte[] str) { + if(str == null) return null; + return new String(str, Charset.forName("UTF-8")); + } + + public static String CRLFtoLF(String str) { + if(str == null) return null; + str = str.indexOf('\r') != -1 ? str.replace("\r", "") : str; + str = str.trim(); + if(str.endsWith("\n")) { + str = str.substring(0, str.length() - 1); + } + if(str.startsWith("\n")) { + str = str.substring(1); + } + return str; + } + + public static String[] lines(String str) { + if(str == null) return null; + return CRLFtoLF(str).split("\n"); + } + +} \ No newline at end of file

    K5q0VWzfXX>~m7_+L9+h(s12>T?CDGYXq=j%%fo>FkH>*yRP-!mzoqLQ6%)rnnuBJ_94EZ|RKY+j zRElD~sVj|ksZzFYw)5LSiY5gkijoD`cK=g%keBWtPNGsxh6N@)c2&x9eQHC?XxpsI z*xee-+MdR7ZVTF}D`Nb53TgVmZ&r-njvUfl%}cm5YFC;5Dn?k7@d7)Pf|st5m{arP ztU?(fac^_~I+|c4wnNq#v%jZhFTPYdCat3?pZP}C0)n!IgR=VyjC{2ZJ_en+Z^=#< zfUw1!ae)DT`s965TK1*KW33+k$DC)oYmvCjN#HNEuuGL0MfEq_(FM%+ry3-V(OcGt zJ5&l!m;y7Gj?Ng*{tk86*%lMrGluM=y?boka}`b9mtsd9HMHvT9>FWY6z%(oJKqk> z=-Bid0&uWRMPaUrX|?6|XdhZk3T0>xLH?i!k3<&BA0#W-HeLOEa&CB)th~4Kj8@Hp z)_?RB@GxNvJW6M$=-+?15z4zmRj~g9fa=2utLyc)4niX>>o7{X@oVm|hWK}zM?RDBh z48)$BJ@@v@j0SBBb$lmF2`5XPr1*!(8Pv_+P};LH+bRv43|-fIQ}Nm(mPJ)Pk+wv! zHGdc^oWJl%rkAQOT82K);89`Xhk|0FTxaesJ90uc28PsqLxCi8rnpEoi*8S(OKo8_ zd2pTIszr)Scwe@pKIfvRChT09Ntq-+#moOn?{*Q8X-G^K%Uhv#_D(EfVe8I0s1DI_ z^IO-dGT^L?{i&s_C~e+LTnz^jVto-}n(jh><@AVqfs%ZRU|a3+nGYOXdI#ztES}uL z5sFuQvRd}cM97D|h)w1UMJTDS!X8Ao*}<^PmXZp^n zA{!{;<^Z$fH?E(MyMJ0_unF z8a*QmljY<06}3FJ8X!lGkT3VITY&9<*r%BM8~{Pol-B?P2vQS4gm=UE zhY>o7;m;v)-<4GG|7G|D)4;z%KxGI6JOzX#t&$O57y=EhKf~8TnuOWWEYBS5CGgE0Vel3{{YP-D5F>QccXxO)2%d@aginQxK_3cV^dEV>9)aS$ z_8V{;27tHnnFzt_T5oz$qu@;;({+o3C;Nx7z?rG=brABp^HYo{$~RlOV8A_4=(u3L zN=}$2&oub|lBC)*;qf63)lvz3J%o%orWJns0|X*o8|A%rzojvCVS~5OFmS;+aQLuI znH}&ekR9_Ff`_L5w=%w$@JkS5wXWf(A*{$ux9~>r5EVS{&;D+_p)gp~|5WG~alwK& z^xm9@iC6d|$R@VJA<#oM=nw(H8lp!H2_gJHkeVUy4=jEE?%ml3a7{G+NATD87=R{J zT!ilTNdI{6W`Wb>t#8dZkfm$7{fO{(9Nrdp93R051~NW_cn&_}+v5I#0+SdqLKMI^ z8IT}IK?bTILqLP5iYL4&&(#gXLVP6;`LJG)~GJT`wb4LdolmKy)nSroPkyQvF z2o6SSM)(N@v6E`@^IiAbQAB?a-U^|?1!q%H0>H0r2$TO7c&Z)29txuEY(J2%^=&Vw z;lTE#1jJ3Y-3ZhFDG=~y;5Vdw_wGdjtN?{W1V)Y}0yH`QL~x+}r{U-vp#d^t&K-gv zB1BcybsvJ{+cDw>fNOA&{_j{ILId?7$H)c%Y(x6@S);=SK0=m=8V|Vi-%xHZ*B!xc z8E)kWV8LNrq9z6+U=HMyIza{mLJsRH6EF+?UvDoVAQ1AY4wC>rLU_o7Wr3oQB^r|l zPC^uCD+8?|42;NnK!^X1IHrJC*Y4XifdH@pJ1#Ex@`($+smcg=134#!X264g?>;m| zrvZ;4eA*tlKyQflzePYz$p0%UCBTo6f?X+)9dag%%Yj~y?i5u(J4g+<2B`mEuSVb# zMEI^52!NRKz7I(A-(+bgdU~4P_Rj(Rzh#mi0Ahi>Fb1*yCGy3$>udDL_os0E#9b;V zNnz!X?}pEyZKwM}JLls)YXS-8JT>tG;p?XAK_Nl$I56jHk_IC!`|RcWF{6WA8&b? zdUqX`Mk$Kf8K4YRMZSVG*a~|4r47GGhK}RJeQlk#n$&)-!}Gq%;!`9Zy=t{ce;q20 z`hLWz`fe{1!5n?6t2KFaw?np$X=@&X5G-h}Og)_Ey@~p=_k*>ferC2$ohnCRw55?| zt@(-A=R%y*Mk(zO5155=^=N#F^wjTu`aM0!W<(sdV>gqqXdu@a0 zwuR)SD*Aa~PE@{ki}@{=4=FMm>wYn;X8kFsdP<2^0mfR9YtL|^NNv(6G}^r4ksxdf zywk>7NhwCgx<2ZWVX#`LM?_{Z3JG^{0w`lk$%!!wh7GYJzjaiK+z&^n)(&; zQ%Tp=txe-5C3kQ8*ICLl+Lf-Kz?FtKjO*EI5j7v(&tCmHzo1i-@pZw z0z@X$STL80Ilr`!Tk5+-Br28m4^^0<8o%fBY<_)!ar&kSlZnFix93;UipnYrYx+Fm zaR%mK>LVUjRsV@p%L!}@!uJfhQRKhHgZRqrXtoaJ!e*T*E0RZ3Aj8Dy8PM-Qy&l>m z65poH3WW8d?KACJZ;#1uLk`OY#Q{y;#o?|std=)IO{ON(MHHT6k*7{0nz*h;+C6P5 zs{wcNzR&h6b!lgm0W$M|K%T~n4Zh~CgkjYkEVk^HK>urgS?TE*PQA=OY+;-H?Rq`W zwEW$1o#VwEOWH|@E>)5yWFSi|%}#y!<3H&%tQ8->cZVo@r8F>YY%DD-5evT~-kSYe z;=6~#MEu9A)=BrIQXZa2{_4|XM!JEgs-;Vhqbndgr=Gs_rhEqZOYo=Y>%#r|aMpXa zgUr-}m-skrwGj_u=T<5561b55wS^S5LrKAjZoEe0OuR& z;8o1gf3tE)DUxB(#Xn1OnIFY0qrJQa`1ny_J;kFORFy1#+c^gPWpNboxU?ZVpT7U8 zgwoPh|K#br+;?QVFM4JS{BHIhHmLl4lE>q2@g z3g{vOg*`wkfO4wvrZ9W6Qz*>0nMPY{bSG2Ke;pLg*_dN~v1|nuJF+wNVLm0$zRZc1 zO1AZu6ni>hHL!rf--D`93sDLC$oYu#nsBB)KSnKZR`CD@1%iB%raTT>7%;54VuHrX z#|@?|&}sY34qIYrX>;z;b|km26P0bQBcLL{zTfSdfhmDvDxuXu>*(!v$~+KeeZD?>`^Rv%iKS3uA@-6 zA@p>sy4pCeao0ER7FpCzd}PTMQbMdeTXWp%r7aBm*YOXy{MCFBDeQ0P=?4P7!A z8*_Rq|H<`Z%!_hblICjVYCEE@BEVSs)gn`wa&xS9i-_LP{$x+wz z7D&V^d>04$^jP0I&w9c?Q2 zxv+~17e{g+84p(U;4eEIvjChK)SYiRjy%$&(L(7o9gT_lfkn)n!BuUz+aH(dgz|B^ ztgM*wiX(p)H#LyzviNmWNNKxcCfVRkpLWI2gtfCik13?DB%1A4@GcnYa>26rGvb-7@_b zbwYd&)K?Qxhiedn7S-H-M6eoQb=ZsdH4EgF1sc%HJVn39fAIs6yy*R}m(wIT z0knd!Uso;z|NB{4bq!b#0Y!)#Kv_sZdlP64f!8Bjz;VDoc$a<*^n<`fq6^?L-!RGQ}ROtT$A50N%RA{s?|@;>2qrK|?Hopt2E6#E}2I zj(QbQksojHk{S`rQUxRgS3AFX3(+`;jS!3}Mu_<4;JrawYa+yLi2tBKiFob>(5Llh#J88h-a0X|BT8cbv)o-8F%m)q4kwQ|0uM2-J?@9h zhqvAy;M{ZKkKotwPk=^EL~MuxTzy0*$f(f7t3ld6ag3o>pKr&Ax`;X7TE|F*EuJ z3H`E%?_%Av@ioKqyyZISLid%_moGk=#2*i;f$~_MN&TkUdHr}yv*jD;0?G(wg+@;v zl%3%C)Zw2tUWtJen%DDnRD|qX&v3@soh%RcmpzSxr*(huF`;wqtzX8)Js27|P-|mp zxOiJpzo+#1#w7g}RhQ z(+>nZC7bc44DGE@869a5Pl)OA`hxTF*K&Ppcaqex<&Si28zY!hXBnVP!{PDA==2DT zC=Lv|YQ^gB(`nUktJ=fA<#=AWO8ss3p8Pk@r3lG74|YF$>(mt+st3;@Ox}Jpm8r{+ z&#GXl!FENP_ll#w_+jXS6=Et!BeIa%tVNcls2<%a4o^>_D4j_OYMo>V)wS#Rp2q9H zCtR2BqF8Y&TH`0!irXi4gSTjG$l3@%uWKScBPMM440Ue2&agl2uRd^_z`ZfPxNiN% zTfJert((O02M11jL0Y^f;Fz&ANr%$qBuRQ}*jw9Oq~es_zDw6#q^iVg%{Gr1>LyIn z`4*7&g)Vn0fyWyel)@FtiDqn*iPp6uZ28H3L=xb|Y$r0Qn#HGUoGiDDMMI9OO5>zl zUFn$2u5!K0tSWw$^J%*P>yV66?8;P7xaT&2&;O6gR`JWf_|g~_{EL3rY0nVjm!<*aMrCiJ!N>qFN~5}$4E@~r;A>+fVSRdpHokz zXwfd%ub$nA|Hx{ti?pbtMB+GN^w}(PA1o$L<>HpzE1FKGh+n0I5qHBu@7GUHNxM@H zgqKMiBK=S&?nS}7C&3_Ag=-5Z^T_U=To8AVPkkn%1o>bR=Vm$fYagFho~<-m^L+Wm zFf428`24IF@S@ap;qbL&`HBTYAS~N3WpFrIrQFA)&1d;1)g|js9Y@UIj1K{mF8htV z!}W4$_uN=J?usFtU4g{QG_2>x|Falbiun8PVJDf)%v0us&J8IJJ6wlg2cS zG};hbmO+Gl32str406DENZnXY`GZo_^%zV*V9 zA5NM~Zx=w)#!`}G#E7RQGFN7kiSWMP; z8lPv-9aikCVF^FR3tr|o3kp6e`AiK{I&Gr!8-c7haWsBkK&vMiGHsVq>lR%!4Jiy# z_2gjDoPp1ozXj}uZArTgcUMhTe&z`|d|$PPtE<4UP=#=wM&|_=p&K2<5?;kT)`t?b zTa|u~^h7xmHKd@ayMgXH(P>wvgAVJHZovwk_p@)?6u9F_%%{yG*ltrY*?w${mC8M)2TQ zH3oH>bFhCMzK0LZ@x*+orh=dOc_B36m*^GeY#ucfh!cgr?|e~Wy){-Tyi-(tcmwvu zfJjGNC)@s&YCykP-A)nqB}nE}8*xy*SR0gfS4IElz4hkCK~LvK9TPL18_dC??K9O% z>HG2&8PD*$E*Sj%Xm`sDh8oLUah2cVSA+wM8FQ?#>nT(&qX|a5qpBR?7quc6uI=qF zZ0bY@jTs9s8Eyfj@a3ww~hEd@NUt%A8Imme?;&4-`P3siGSO`FA zY(F#LvII{Q=YK^$1~g85IQCG`7(&D)NPFQhp5k>OLQquRu4m0bvPh-cQRXyuPo5t< zQ2g;URzPSs)97IkcV}+zFnTK%;7>&Cprm>mxX0ZZ3X{}b7$EjHy%*W* z>c@wl&34|b5iyFa<#<`4)5Jw{}v3V0|f6 zIPc0{Rikz`H}w}jE&WcD5pu9%Ud10;K|^eF6H0VC*AkTMoA2LgY(*>*jc(63cb7s@ zD9*qx9Ahlt7036AY{?+7xs#Pyn|XcvbzULn>AE$k z(x|+|zv9$1F&Rz)58xxLF9cfwO1JsyPw9Bjk=}U9HFDnaDEo+(WHo{*uhLfb$CWzB z%;Ld7%VXHl=Al&O!99?113VloF#c0)HE*zl`}h-kQk`-B_Evh%hV!%k#A95Hzdfgp zc^Nn^C2}|&iMvOQlGY2evWnhm z%Ss$P<3sOJrtf#mdjP6N^}YAE@mFWlG&;-o=kc`%B|n09(6D~coVEq`0CWd(w~(sx z_F$2-6%!U%3j80trTMOm@Qds+T&5N(l(+=jB+h1)iA(tkK*KeYaZSZ_?MeIxwK;%T&0l{d33a6*bQ#k<+$! z;4aJez7W7*NW<7#q#5vAYiGC@VM&tiQh^aSc{)7e^G|~%p&0-CslZmwSZ35S&e$?* zZ6UJz8%7hQ%;21WDHhUf5v?XEB`kid=1;~OeGWOvBOu8(dEsk}V=AorogFNB7iDs$ zi2|N1E$NmC7OKsBd%tu7BF2U zpn3AS4G*LhrD~MdklSEDI=8&I%oX?08wqvKyQh62f8A zbV{z0U#e4ZJmeX3N@*f5B=jJ`E-$NnPBtfzemAr}`8&#hrpme}25b$8f9XefXIXrb z_0Yq(O9;H9i4=ICRdp4Jh?$6S+Ll|#|maoM*KqlOMVuPMw#2bn(Ac<-|aW%7yk*Ft!qA&Xu^;K z-EL*Mrw63=5)K~)>&PxAC_P2JuF7egvt>pfMiUCkwIpC_i017jdVFT{o zF@=xuTa%SZ%ZB?5Re2-J`{>5#d*k^t`a>W?1|+v9SY2*sEY9pcfAl#t5c|s>&ZX7W zMmR_XsSE$roBhe)iJkpP@@ZoB66dO_e2ZxZR1w@21yVu+5xBFHgSr-!<_te>q?t*j?bDF8c2#i-N01Lcy!TR8-G*w%=O-=K zNL#u3nAL&j{uORJg?FeXXk)PS55vRj%)@Kb@QTw*cm|fVqWa70|M$fIz2#}J?!Djr zcBy6h=1S82-|b}6b0Xpu!~wlbM(lYHxxn%1|A`9^eE04g7px$NhYQ}!gokNbO+loE z`0;=OL~eNGf0txJcrO@uZ%$MeP4~jbhe@i1*)Z9d+3c zoq;!%`ncel8ZumPwGSt5Q`b+#Nr=k0NyJ@fh{{P-wunfockh15{&y)--TrpJnLUSy z0`i3ON))|*9p%S4m#mGAowR~R1E7ZIQH#dMb{pWekfX}?QMgJXGrC@#e}KlnUDpGK zJ{Z3D6bx;@T|cpMuUPc-Jkxn)ZS!GPc|3E4>i%{T zhKQ=)(nCRlAK=l2Jvq%0|p&F7zC5H4d63{?(4ayhqfABY;~$8Sws4W{#lR| z5eT=9vEsk=RcUsCAR9M=Lnh> z^wVg!R;ednkCB0nqKlQA3iUMVx3fv*M?Gx6$Bs&hohbC+P)Z$dQPA_W zs-_u;ze1<1Cg(%FWe@&Ph&Fd40uM@PF8i*hWyFjct;WF~G^82F3@nydOpmxRM-b(C zV!raO318|#+|8(C`z*}{iPh&I)KDJgWXVS%qguxFW zF&fc8M^=V4P_Pfw3@huzmZDblHfg8F)vcW5Mwh}JI~FU?d*cP0OKL&iF9rQI)-Y+S z`c==Y*DE+2Uh_4vsGPEzb{!3=_4IY5n z(~V-b~shPsupNlldwgP(7p z>D-80L4GOw{Mw@`ykJ&HR;L~BArQv9=69%Gk~$+v0Xf>Sc4BJ_^I=T6C~h*Uf+IL~ z6bP-QnbePxfI1g|9QZPO(j17Kh0N}^PN^r+P^Z{iW~1D&mGr3v_g6DPNAlKboIhsW zcwBy&V_|^jfhYGlkNOyHjb0i%S|p#A$}(jzWsFi|+kVlC9ghrr6Al6!omM8z7JVhn z%&f9lGtvQWg_z!q!#s#bu2&$wAso=O^`REWN)#iwOQKg(H9@Q*4TeMeyQS9r)cm+5 zSfZJ&rSWgz%B5VI$-LnKRd#{v>@$Xj9)spv|&hcAC)SiMU)FC zB-}Wblq2Aqwl<1DfA^#9lvdq#aLC(-(lo;M%#Aso;7AxyZA$*sF4LjwniPM(4nMza zpdM*w+(J4#8B%cjr8PnI2%{{%k$9QxfCE3p%NKGX;il%k0zDql$Xv$r+!=^6yDm30 zi^tX*L+~HdZ4^bfLaw!{#w}pe=IZLHWjj5rbsn8q?VowzKE7iNO_FNU&1e7)behCA&l|7+&Dx)038v>iZgn#*OOa+TuO%Bd}5g1w!zRe>1)siARL+ zewGfFAQ+DKSwrUuO%EVROH$QSMzU!B*?ul6PY@hIY6(O=+(NDW-&;uO?W2tiAf)aQ_mLZxzF1w#P zGC8MwatXLgZbs?*tUyY#sJ87R)x}-gD-w-(!F2VmaAVub>Y4)HR3hV7aGe&9f7mq= zN+Oq*2B)`q;OEJJ z>ovF7pP%W)7k4I{53kE9kAZ_iY|OOl=%JpyVbo5uDK#{B>!qj+x$NpRHQ`ht9s3#Y z`cVbvV9o^_M40AdCAY)S>z`0>rR<}lWw1~ydq6y4z@=}et?ss$ZYLCs0~GZUrG3i8 zqT{FK&Ln}IM!Yn~wO6QTNI>Nb-C494M;v^+QhaZ8{5blx6`DQxK_~`4>V~#noMV78 z$Msg1aEF+Y2P|y$QWOKa7K?-@W73#%J6_(1WS}L%qIE=?ghpU8R1ku-lNSuN`l3LP z0Vp}~%&TA0q#RK@nuN1a60y$WcH1Vp{hoU{W5o3GTv2Dh$u)m-ZY z%>!$yyE2%hc~{$&tbw;BPYYRb0EPBwlA-*jlO=3b?c<%ZmMo?j|Ig6 zDRh5^(r2lu&&X@2sQ(DB>~ThC8u-JDW$>Hlv{dO!WDB8S%yiCs-EeTrRW>^3<{pjp zLPfb6+@Mj}dV3;~Up?IiI*qq4I`k@s9kHIbOD8KQ- z7Jh$nocnZ;7Q`dSCXbOoDyCzHIOO8)lj(v|7_kUSoc&(U(9rCnpY z0{N7Ik)F=Lt^DU3XS$rIj-<1Uusg+EpT9NwYrp@G^Sp@>Q*FSi)lJqNXh@ zxG239x0MhoXn#~*VSJ!(nFyePgL#wQ4=L_lJ2-YUOst+Qo<2+&l8ls$?k(X9IUhX9F2YVNh!Es#0Gq z3WZOBm>O?Y<91H)av3+dYW}0hcCn?CBX410*7ow}GdOTz$GdzK+n%y}1j zS8r9DI438j#Z8b4Cr^c7{v&pm?Q&1Rl$==l`{+`vf*ww&2uDHPe zN!H%}BlqDjLh=jk6(_qx1E}o99Zra7rw5zTe7FFuCPNx|Np3Z%b>iuhV8nP7C&)!cXy|_dvPi5 z?!|(;6f5rTP~6?!9Zo3j?$DR}dVYNK&1909Op=|S$=>T&#|^sYofEoG!QohdKCu4X z(pD?AskybFAiyo+kZIu4<~=Jm-I?#cVGl74RJr@GM?o+r68r=moErD{2t&`7$=p3X zO?8Rl$l(MdB*qyw%-DJ?6+Lh7nw|kEn)~m*U6VRLlrtFbQS qR@@S1$&1#2*Yna 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