From 4523137420afcbcfb96466f7281e6397f701e358 Mon Sep 17 00:00:00 2001 From: TurtleP Date: Tue, 26 Mar 2024 20:55:51 -0400 Subject: [PATCH] add romfs assets --- platform/cafe/content/nogame/cartridge.png | Bin 0 -> 29626 bytes platform/cafe/content/nogame/nogame.png | Bin 0 -> 22263 bytes platform/cafe/content/shaders/color.gsh | Bin 0 -> 1576 bytes platform/cafe/content/shaders/texture.gsh | Bin 0 -> 2012 bytes platform/ctr/CMakeLists.txt | 29 +++++++++++++ platform/ctr/assets/nogame/cartridge.png | Bin 0 -> 7427 bytes platform/ctr/assets/nogame/nogame.png | Bin 0 -> 5805 bytes platform/ctr/assets/shaders/main.v.pica | 47 +++++++++++++++++++++ platform/ctr/source/boot.cpp | 4 ++ platform/hac/romfs/nogame/cartridge.png | Bin 0 -> 29626 bytes platform/hac/romfs/nogame/nogame.png | Bin 0 -> 22263 bytes platform/hac/shaders/color_fsh.glsl | 9 ++++ platform/hac/shaders/texture_fsh.glsl | 13 ++++++ platform/hac/shaders/transform_vsh.glsl | 23 ++++++++++ platform/hac/shaders/video_fsh.glsl | 32 ++++++++++++++ 15 files changed, 157 insertions(+) create mode 100644 platform/cafe/content/nogame/cartridge.png create mode 100644 platform/cafe/content/nogame/nogame.png create mode 100644 platform/cafe/content/shaders/color.gsh create mode 100644 platform/cafe/content/shaders/texture.gsh create mode 100644 platform/ctr/assets/nogame/cartridge.png create mode 100644 platform/ctr/assets/nogame/nogame.png create mode 100644 platform/ctr/assets/shaders/main.v.pica create mode 100644 platform/hac/romfs/nogame/cartridge.png create mode 100644 platform/hac/romfs/nogame/nogame.png create mode 100644 platform/hac/shaders/color_fsh.glsl create mode 100644 platform/hac/shaders/texture_fsh.glsl create mode 100644 platform/hac/shaders/transform_vsh.glsl create mode 100644 platform/hac/shaders/video_fsh.glsl diff --git a/platform/cafe/content/nogame/cartridge.png b/platform/cafe/content/nogame/cartridge.png new file mode 100644 index 0000000000000000000000000000000000000000..cf0529bd987f5a2cd1662c31272078636c764ba5 GIT binary patch literal 29626 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 X=FwAQBX3YafFNxR_?;4UwUlV{li&{y9?{H84Z^ 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 aS;dUfWWl-ef4=N9YZvo#v4D5)9ex77b?z+y literal 0 HcmV?d00001 diff --git a/platform/cafe/content/shaders/texture.gsh b/platform/cafe/content/shaders/texture.gsh new file mode 100644 index 0000000000000000000000000000000000000000..88f915a67ac0ae22902153c9b81e34243ac2f9b1 GIT binary patch literal 2012 zcmd^AKWh_V7=PZ&883P@2fB*ykikJ35l4rR3Icb?_ENzDRfamA9(Kf{D1#G?>*VlNdwcnCCr1>i-Lf`98G=Xv{KQ@nwV>-&)30dFTdfC#qtfVmBG(zX%cI?Et|n2*3~ zTEhqW7?4SHqtaS$>~5;o&U(A98bqDdosI2R&)Z!DbXJ=!^)i<0jWxBcT2ybmP`mKe z8;b_L6vpG6!=enwKEK-3N&NkPLj9ngq?{!KB0ZpvFp;6Dc`xpP6`K>T;;EYT_-Lms{Dz^UF zZx+Mx__}8y2FdW3nG@ccpZkn+51aH2p!3_cZoAW}-A`)%0?7Zgtj4(>q@)LJAlGKf zpa*Hmp5vdeSOdiak9?_9?2uuYmIqq>A3l=M1)!YIDDkTC<`n3jj~<~ayM8A*xCX*m UImK_o`TF_G%98Wa_hdeYA0`zE00000 literal 0 HcmV?d00001 diff --git a/platform/ctr/CMakeLists.txt b/platform/ctr/CMakeLists.txt index f405a0975..772362154 100644 --- a/platform/ctr/CMakeLists.txt +++ b/platform/ctr/CMakeLists.txt @@ -4,6 +4,35 @@ target_include_directories(${PROJECT_NAME} PRIVATE include ) +ctr_add_graphics_target(cartridge + IMAGE + OPTIONS -f rgba8888 -z auto + INPUTS "assets/nogame/cartridge.png" +) + +ctr_add_graphics_target(nogame + IMAGE + OPTIONS -f rgba8888 -z auto + INPUTS "assets/nogame/nogame.png" +) + +dkp_install_assets(${PROJECT_NAME}_ctr_romfs + DESTINATION "nogame" + TARGETS + cartridge + nogame +) + +ctr_add_shader_library(main_v_pica + "assets/shaders/main.v.pica" +) + +dkp_install_assets(${PROJECT_NAME}_ctr_romfs + DESTINATION "shaders" + TARGETS + main_v_pica +) + target_sources(${PROJECT_NAME} PRIVATE source/boot.cpp source/driver/EventQueue.cpp diff --git a/platform/ctr/assets/nogame/cartridge.png b/platform/ctr/assets/nogame/cartridge.png new file mode 100644 index 0000000000000000000000000000000000000000..891ab70a90f2eabc917aeb745b91bf36b92d99b8 GIT binary patch literal 7427 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 literal 0 HcmV?d00001 diff --git a/platform/ctr/assets/shaders/main.v.pica b/platform/ctr/assets/shaders/main.v.pica new file mode 100644 index 000000000..898152510 --- /dev/null +++ b/platform/ctr/assets/shaders/main.v.pica @@ -0,0 +1,47 @@ +; Uniforms +.fvec projMtx[4] +.fvec mdlvMtx[4] + +; Constants +.constf consts(1.0, 0.0, 0.0, 0.0) + +.alias ones consts.xxxx +.alias zeros consts.yyyy + +; Inputs +.in inPosition v0 +.in inColor v1 +.in inTexCoord v2 + +; Outputs +.out outPosition position +.out outColor color +.out outTexCoord0 texcoord0 + +; void main() +.proc main + ; r0 = vec4(inPosition, 1.0) + mov r0.xyz, inPosition + mov r0.w, ones + + ; pos = mdlvMtx * inPosition; + dp4 r1.x, mdlvMtx[0], r0 + dp4 r1.y, mdlvMtx[1], r0 + dp4 r1.z, mdlvMtx[2], r0 + dp4 r1.w, mdlvMtx[3], r0 + + ; outPosition = projMtx * pos + dp4 outPosition.x, projMtx[0], r1 + dp4 outPosition.y, projMtx[1], r1 + dp4 outPosition.z, projMtx[2], r1 + dp4 outPosition.w, projMtx[3], r1 + + ; outTexCoord = inTexCoord + mov outTexCoord0, inTexCoord + + ; outColor = inColor + mov outColor, inColor + + ; We're finished + end +.end diff --git a/platform/ctr/source/boot.cpp b/platform/ctr/source/boot.cpp index 99d3394b1..a57021207 100644 --- a/platform/ctr/source/boot.cpp +++ b/platform/ctr/source/boot.cpp @@ -21,6 +21,8 @@ namespace love { osSetSpeedupEnable(true); + romfsInit(); + socBuffer = (uint32_t*)aligned_alloc(SOC_BUFFER_ALIGN, SOC_BUFFER_SIZE); socInit(socBuffer, SOC_BUFFER_SIZE); @@ -40,5 +42,7 @@ namespace love if (socBuffer) free(socBuffer); + + romfsExit(); } } // namespace love diff --git a/platform/hac/romfs/nogame/cartridge.png b/platform/hac/romfs/nogame/cartridge.png new file mode 100644 index 0000000000000000000000000000000000000000..cf0529bd987f5a2cd1662c31272078636c764ba5 GIT binary patch literal 29626 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 X=FwAQBX3YafFNxR_?;4UwUlV{li&{y9?{H84Z^ zIwR##Kow=WGd>Cg2RO6`0^ozgy5JRjlz>0{DiF^1ne0QUVN>|H%Qlz_nfKz|;;j|=DaXCN2+@9YQ^C4CTXl3)ptOFXcrGW!4CY7c5Y6t9 zKZeG8XnGM4{EqY=E%9bo+|ZIHXuPYZI})wwMHtG7e;U09#^JBY`43O~nt#1^v=8QA z%=R@u&3-I}pEGoZFjfV1cQnGo)!oe16|4Mnl^Okk5C9>}4&bx}#s%f-jTb&6N!Y3|4@E6d*F9`>PW4i<6%{iG1k0qA(6u{>cYaK}zmd zAHVb@_CZJ<6v6}XUwQep?=OB(NCgL1cO1e)8G}POq9qB1;Ed#7jlcB#b4e+vyJB74 z373UdmO3N(PtCtr{a9uSIxct*gbNa_qoGV_kicM23Q|xI!d?ml5l73(fyM1n($eDc zax${wvi4xKlmiG2MI&T>K-Aa&)%8^3{j;i|T#*F#e_fUX;XumD+l$M{ z*~^HdQPN;>IR{w>aRdZ~l7S+@Qb;iJk3hdT`&%GGcMPHEA+W#n*&hpv5KK;1-oai@ z8X^vIkdhU*he#vD?d73Raj+aj79t~M?;t1jb3qWs@(*tQ77C8R6PD_gUzRXoA^#|A zrs&K6+4_e9i}_KW+z{?~^nUUw0sqLpKkM0_HO~y{Ph2e`M<~Tc0#)xlwLnw{pj`YPVlY{9^MFdw5lUvh5TRB{-?|T zv?2C=MsoiyfW`bjm<2q->wh)}|6NM`59i?5^7Q{{4*pudNGF7gBO0YF`Nz`zqv5}s zwx5&vpE>nMDfoL1p4q=A?dLCHEg^p74fu@Y-`f6){IkF1ejZ{yfAp7yfCz^qc>ncx z(_huZrd9`={;DQ6{mb&43&ukk@_RI*=3lJ#Z=631yD8xr53LN9k&zt%1ms}x z5ZA$ch_r{eh=3d{9^yKf50Ul|7ZH$y#Y0>N^C8k6;vxcauy}~;U_M0JLtI2a4i*n_ z9n6PFdx(n&$id>#MFiwv@etR+ ze2BD%xQKupEFR)Im=BTm5El`UgT+H!2lFA)9^xVbatH@a+CyAKKn@lUaUINu zNPCEj2*|h&lSL_s#H@pNqkfI+&|Ys@|l>^e^Yq-22UjQepT8vFndzc*D#L-mLY zbr1}|OhXYYJRzA(76fx6!ILC!t<-Gc`3*_TA?MO#NG(Y=dQzN89+6^uh6_ot=-(*F zRD5KE7`pVhQ}nnK%EhW-U#SN>{}}*XQK=!=wQO8zO2b5nl_(&?_(vWDW^4?dm0k)#)1JO<+4ybXnh23O9($_ueol6NNw{97sNG=*`m`}&7 zme{3mhfAJ{!XGswkw9I#ZBIImkYp}>W!}DINnR-*=x84;qDfU5q0+2X;CM+H&X#WY zx%0~H#ka!~ngw&?B{BYyzGAWCN`Z51d$nY4Cn~H!EbLAd7e5`Zy+C8+ zt%%YMb^&!@heVkiubBXkh;8b0Q**e*i9=i0d0f|AjadNZu}H*BCn$GHf>}qTgUvLv zGJH-LS#pk|f-^wo_59148~E8^R{gWKU#q{T4^qvBbaGjUPnuBnLc?!S4BX+rwGzJI z(o2`-K)zQYq&_wdmTF|pqSnf8IfkR*wzel4T{z{-g@>gepBpzLzG$w{7j) zYolZviucyK8XY;a^LyN^9gsj6cl1%#(hez9=#2p?-2#9@*fy|tT+e!(0Gv(Ou`jT-CzTmOJ`3y*N9anKmZY8nNFCGk6CI=`RVtO2F&9`M zTP+;2-DU!7D0T7bf6J9TdwqmT^s8fa61$NI-{b*fT!!ihkJ)?xW^eS&#PrsB&9VeBd?{Oza>vWU+ z_=SxtAC&le{GP3%FK8ZDM0Xjm0FLIhR=fxsrb9+shB{1yvA6XJv-b5rdKRbFKY^Yq zzOUMC6RHcxS=jdX6!&WsKm|{~ibDv!eH1}D7a7V>mR!#xUhM?*4LHKxfc)DrkQX)Wr>3PTd zI$PmolQrqA%JFwEf+raJ&lYT&wA?QBwDT;d-|VjPLxU6I?e2^vCQRA$@A+`|}ojA6vg@jJi}RuKJE7$Ci((j9s=ozF8x1 zQ65}tOQ=-k%_MsG12dysrQ-Yix--*j^0H(Gk-yMJb%u~In{i(eOq;~Uo2=7xue%7 z@AHl80mRF9K=tCa`40l~=cAY5sFREE>rvmQ^N}K7X5qdyLT_CKDwDso;L-%L*Eet# z&qc~TJxTXG&sEiLrlr;Gnk^|&NSH2Sf3tQy*5dE|z2diI8MiBQviMibiWOX+x=`Ls zL9x@rahZtEkhv2>ZbD--)t4O*;8VxYi;v+b&27aYpd-?-Or2upj^+4Tgufb_+OX)` z4EVc?Sm^jQEJEiRRQ!WfncJmT%3&jzxH%05_xaOyeSk%>$tp<^DDd@6{#;zFrybe2 z!dEG!IqGMVy*HYnbpoUDs!ssHi|I;+N-pc+`6{kr^$9)8s~dfGOh0LkAMBvSL+6O z%}vLkbHN9C9J;GirXG0F6ITa@j@P~ zqV34yvxVgmG*@qy2RqZJdb{zh({^dw-%H|0ItQs`3y$JvXDj)2R3*i^T%7X7?uFGV zMdw^+u&yv`xg9Vy4oPbJ79~2_$sA}|3d5`A*u+G~T>vz4E%FuKpj{+q`4*20)9>9L z)d!pOX&D7iO*gfj{a*em%!b z6`48-q|qv%Z;idbcEw@-0j}oZ@v+jEU{L4OvY;iC%h3~e0YlP7vJZIKn`yeD0D>yw zRBP!zhAm=U-X`JJT4(g6Gl82J`VWro7mEZy@)AOmPlD6FEi*bCb3X=i9XOv<6#iJT z`c3hZfy5WVG?$iNQt@AiT;qZG*kiS2Soy>o7S8y~YXx$B!?2+X;n@t7S{Q4W5T%$% zpSw>1=2KEnm2(uJAgcUOe^;R(f1yCD$n1(*rh%x}-BOKef!K72u3AzE7t}&CK04%x z#Wyztip3$8!RV7uMYT%=Xku#R+6A%M@U8@-vf*x5Fw2w!#Z+_Xt+}Ca$}mQO`$voU zt@y~36mBwxj%*E5$5D!aM#*WQH>QusWzd!gsL0IIhl#2!+Kh_|OCihn+ET=rSh9{V zwcgeeQ}T|Uh+uB1RcqC-RZrukZDNMrMcMO#uLPHAUg>1yJ5N@tO6KhMYewhPPl=*8r10Fc%45Qw}u57Zc8YN}&2?n>No~hEx)z}F$MgoJG)y4vp2uQ(MB}+_^|Pl@jE+7J5HmM z)%qWKob@JqW`ge)Nrllnnw)(%9SJkm(R_Yt?rV*Z+B)Mqg%^H(rcSveO&dDz)ay>y zujS+j{Re0Aawad;le!)0jE~!gyO8si+pc2vmUDq)Gik@`3_V>zp{j*VkviB6L zi5QzDYEmBi4_utzWwILNZrn~7s|0+qzZu=85iAMDp~z>l$341U28$Qcda;%D$^o*lEt1a^NhY%=qK%i(ZalG zK7fdEe(tOz8Ujruq}Wib`n-uVfT*9B~x z{;tA_w$Rx>zX7V7cFh15K>xwN4riMg+qC|w8=%`bz!pB6-eB)wmu)I(FVkwG+7vpO{~a#%g-(G}d+pt&^dFky=K|>5F4)R^yHxd^ z4%A;Bl!tz8#Dtl*$!LN+9KR@3_(({z4Zx*l5C-sgc2h5TDDSqvcJJ0a`KZKT0pBsB zxZ%5SDe}tT%|?r$3768Ny9rl3Bd&gZwG)7~&7|Z4neHviAV{USxAJ6*rIhwg(U>$^ zbKldJ=1#ZJv@D!}KDKzY=yfGH;#rLR`|UXUH)P54PA7j8Tsdo(gJpE4W*UVv2a}xB zcu-6O60)F}sX6Uaw3$Ey<|8*deP`w7C$-kAZr;hyZtfiC^)obJE@Q>?*@DYq>IJFw zw=$C^#TAIUwIVb6+3PrSMR)~lPmein z6TaIcbQL&%UgM0<6Y+10Wl^68RlPDUNuSzbW+SyXDY4ah8mJb?vvbNchCRE^f~D{A z*5a9aOC#%UJlsoS98Iz1=n|Oe43jvVjUF9>g;y;ZJS~MCF@0%Gf9KL!b1uICVA30Q z%EXD2qZJi}EbHiU8)qt{(x!~*N|9l!l3Y?iD;cc`V|_+<&vyStFOUAGX~9l8`VBk1 z^YX87PfR0Mfy;U!VKiNP=@o`&?33n)%(-(JQx>|m zT2`i=qPtUR436GwLMhZTijgY}rt?{CYfJaZuO_d%%B638vi=j!LV}i zFYK5h#&iuDPrw?Rnd3#V4t*DuqB1O;6uQkna}Qk8 zI``(ZGF#}orux)N40AytMW$1^`m0-m>N%2Kxcd4PTQGS#PCMi42K~c0|BMN(R@qyn z^+$F!45DBl$|T-YL-IsLzfe~Fcg6VUBhSjrC?4ucY4^p>k$uYVjyYAwNwL{IlS(OV zqkTUjp?~DEfR=lF_5kHurI%IF#;#Wiuqs?BBzLc?>Mcn3=S^>(_T30*IJ!go&R+?? zF+?>NckYqd>e`V}mtlzs3H;nvaviI}a~`L5dg%)n+N3@gysWjOtF8-I@D0H*Rx^{D z`p<^JGi+RoKbt=6Q`&9dYw^wGqGfJz66B9?d&6QHO`>0Z!AsMDUTxQFh$Ybpq8M;r z9#_2l)MX{Z*U{Oqm+RADESXn3uT47qF=F(?Yk^#_Iz?+OSyGI1@BW*Ea&qvXaog(&u%?mZ&r|-GxL}!xXUt_}W zFCIylYObmkAgvbV68hR(>*%z1e{RtF+mXk28LQkT;;hJ|SDw4&P%n+JIcXXA*{ZUW zp@h=b8mDuB9u0}Scb!TU-e1faSJS*8OM}0I>c)2ro(^AJ77sb{*+L^5kb(=jZP^6iQVc1+T7-P_&!5CB1#mwWld~T`lmf`b-F^v!>7J zL_tO_ogBaX#Pxyi=P6m{H^i=GWas%mIjQn6cWIb1L8jqJ!@G}x$Y-AMWln7T)4o}> zMl<5npBnt2GZ2>N1?mE6hSoY#A@*1yWtFyyxABEyPft!qHJr?zu5Af*fwX?!Q0=}@L`cyqDS5VIxme%D+z3&O%f@;p zTPFXfq-C>0v6cpz4&sM58v9b1M+ z)YztO4&{jNSM>$4;pM!*t2_3>Ar?N0*2YI<5RL^A^y%ex?A=GNrpsIFje9^vANmT} z8t)1(pQehb4)UW~IR_C&s#4LP-1N7NkoU&<(0^6BrWTXw)#FcxXQ=e7<5*j~VJY!k zrujT+=wUqVW^SoE5_Z4NSPd*3phE$%@=&KQi zd{9bdQgd>*HYGgWoUcAbGssj7_Mx1K8Jpw_s@+}b+IM4Uo>nXB< z%=%_+S(k2H;j>FKN!fYpR+fcJ=O|W`bIb)zspH^JLwoL@=L@+lOg{zTd&3)4r0BQ! zF0eD^teLC3TJV^0?8+S^?;4EzDek^_$`)yYQM>PFkrtT^1b3QEwxei3n5BAjV{>qA zZ3UHusZ`Va*(-!m?m7u$3wzj?kUQ(_ zy`~^^sSB8q%EbhdBfe*598%<2Tw^aFwEPlEn{VeWejPL9umG#z7wcOAnp|| zt>+wec}=#25(r@dgiArxqe- zU-YVPEzEt6Wcb#19^1u!y=m}sHkAc~IGkM9q}K)9?T`qin3)Wmw1cj56T` zLh!Dn$nK=cwl-ecd7kSJHG;8Cmxcsy4SfHsrsdw>w;fM&^=;&hyyGHltnq0hT+ZWD z@gz8!27XpORIlvS7hEm1RFQcWT+ZM@asgRyW>EhpJII?b2eyv-1>>uFLbKdP{%NV<~?;Dve$G z#C5a#(>Tw{i0YT!&-af)qt7`?s=1VZ_5}@1ez2*G)>{x4i3F>h@3?T|X=FP0TMS)4 z>X?{#ze{!}2Q821d+Ccnwgy8-lkY@0_CI{L zeJ3-@r|>3ds{;9@ zi|HCOEDz+NeHqzKFO@DCrC(sz4I_uMwHF)KCyK#Iw`a_+nym|}=w+Etx>ZygAuHOq zoN`T~+l+fd*IS^LgMyDLcG7x}3~hh8BLL&zo(%&n3%#v}a-c>hS1$f`J{Hi|2xR}# z(3g-8$gTCu(lEupMGt9upWEvOs@nj!t^F%*2YI|d4LWgc+VZ;M9BBP0*Qq>PHfITV zB8BIB8NTry6NSmomqh$^HcV=s<8Ki@t8&>}^a|}97SP*mx+5r=JJ>e&LV~TMdx6aC z0<_)1$HP}ChhBa9(oTL%LQH|=Sl2q{nY*3>y_=ZS4(aZB(;)WytN<7DVr`c7nR$jI(R|0Ndv9Fe(=O~w>47bW*A_Tg}*XU&qH!&#Wkx9jmv zOzTz+YPZ^Tvo3pSJk!?#Hzq_uMjxMvwnmfH6 zDpnM-i5ySaX`@m4eD>Oxp5b1$nET=a>UiTyW4i)Y>N%R`Z?F1}@&jRpjnm68HsjzT z(@U8jEQ58I&XJ~t3eiCG_MD$D)NMgw$tiWVd_W2Tl?fwJcNS!h{Sc5fucu=sCE{b_ zR7;t%lySK+%V_6}IUrrIBRYnJP0f6-6s6j?-H#Gelb>T9@eO1D%)z^13ZXy z{_eontJ7k5CN_OR^PVz#L^ifx;d^0EONwq%A$$uU0#z`J9f(q;WmXSXJ0A47!PT@~ z4BjB})!sF}>l~l5V)GDfnuT;SkN+D#tv2IAn$8-a>B8sl5==;}c5riG3AzUw6i{~@ zmS`Q@EbQR#*Y*&AOEsqCZI-pQ-RX<13wSY$ld!4bJ1cMQbbdsVSL6yqKZw`B^SjU8M4&;lQK2X9Mc8Y?T<;^8Kj2i;JB@tg^Ph={=lRJ^8`jy7Fi; zu$Vi;zoxS4fqL_JIh+4UD$bI*JPEHa7s%gL&gDzaZX+1j0QrsptQy<2$; z$TUViXGXfMbx+NYX|f-Tu{rwjLvAV^wmr*@CvmyC$D>inRG)sq%mo(`)eQ^^pLlO(YxmZBSEW$%)i#&#&yH z_9-W7BJDnG$7IE`7vci#VR%3b%q?a{7G>~N#+`XC-=VxGlQMZtSj+E*Nec6>Y}uW&P1^fkuiZZhtDnU^ zk=U-QjeXn#R9Rl!vVRYj`>MwxFh+?{7}=%BTVkQ1AZyT|>B_S&NLs|Uew}9dN;j$R z?dT&4PhA((@O2*7WI3J}N$^J2Fh#@s)$7g5b4|gi2O2vqOTC38B%_n-xKbWh{SN8b zJOLRc!k2jfW-`J3?m;k+a#}0