From a70f8bcb346a853504c9deea18e14627843952c1 Mon Sep 17 00:00:00 2001 From: Abdessamad Derraz <3028866+Abdess@users.noreply.github.com> Date: Mon, 9 Nov 2026 08:09:47 +0100 Subject: [PATCH] docs: write the site without personal pronouns --- docs_assets/og/setup.png | Bin 38578 -> 37272 bytes emulators/fmsx.yml | 4 +- platforms/_guides.yml | 80 ++++++++--------- scripts/generate_site.py | 112 ++++++++++++------------ scripts/siteagents.py | 14 +-- scripts/sitediagrams.py | 14 +-- scripts/sitestarlight.py | 6 +- scripts/sitesteps.py | 2 +- tests/test_doc_surfaces.py | 6 +- tests/test_release_packs.py | 2 +- tests/test_site_agents.py | 2 +- tests/test_site_components.py | 4 +- tests/test_site_content_data.py | 2 +- tests/test_site_density_cards.py | 2 +- tests/test_site_emulators.py | 6 +- tests/test_site_entry.py | 22 ++--- tests/test_site_funnel.py | 8 +- tests/test_site_integration.py | 2 +- tests/test_site_nav.py | 4 +- tests/test_site_render.py | 2 +- tests/test_site_search.py | 8 +- tests/test_site_systems.py | 2 +- tests/test_site_wiki.py | 30 +++---- website/src/components/FilePicker.astro | 4 +- website/src/components/PageTitle.astro | 2 +- website/src/routeData.ts | 2 +- website/src/scripts/site.ts | 4 +- wiki/adding-a-platform.md | 8 +- wiki/adding-a-scraper.md | 2 +- wiki/advanced-usage.md | 12 +-- wiki/architecture.md | 4 +- wiki/community-tools.md | 6 +- wiki/faq.md | 34 +++---- wiki/first-install.md | 18 ++-- wiki/glossary.md | 14 +-- wiki/index.md | 4 +- wiki/installer.md | 28 +++--- wiki/legal.md | 2 +- wiki/measurements.md | 10 +-- wiki/privacy.md | 18 ++-- wiki/reading-reports.md | 6 +- wiki/reference-terms.md | 2 +- wiki/release-process.md | 2 +- wiki/technical-faq.md | 16 ++-- wiki/tools.md | 4 +- wiki/troubleshooting.md | 10 +-- 46 files changed, 273 insertions(+), 273 deletions(-) diff --git a/docs_assets/og/setup.png b/docs_assets/og/setup.png index c7eace9361b68ab3832f8d88fbaac70f58b3a2c6..4148b13df7eae5b2f1930fca9f0e782b3a886823 100644 GIT binary patch literal 37272 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 literal 38578 zcmeFZS5y>T*DlJ73IdV@MKTybKtLo(Mi7wLB*{S#$vNj%NszzS!f8Gyba@-LCbz4vD}~SYdrnN(iaGG}3(hzOSy~G6apZeh>VX*W4aWVf)UAbtaH-EEe{m!t6R{+5J!5kiY*EA z4}RG0*gAU&77@&aOVIMg0&~$sM#$@9t&!{E#)tpjh~7EpbFtmo&OaX6$sb}YWW(g& zsUZ%RSEu7Jdy5>Qtzvm(H1-tCMF|9|@;v9J# z-vVn+u)?^rpJ@8r6)F%_6n`oi-d~(E$`E;@n7 zmr}hw0)eXIup1j%UrBpomBoJ~XgLewa z&^?G&9^W0gnX;A7W-TaRm3C`={e1w)pa{F~RJV{CxH+>BSbANnTLDH&`1pkE3msGn zwqA_KM?U2#x|#hicvF_wh4??*yy7L>I~upxqL@p@E{IFR+P^pZ3}7MVWY5?#{xwWB z+_yU(vQKX=2cC{)jjhVq)d>r^j3qGtNK6EbDjwcEaT%+m-z$<0}7t^$fW7T)rh%I0Juhk=T?Sfd8@7yq8Y0B3&1CQGr`hzul4{AV=P-C*ud z%Zo1Uf>)RJ{4z55UG;4L8EpM(UNcbbLesk0F}%U>=D*Q?4OV+f_ySk3P^qyPiUIiR z*VM-kR|HyxqH2$%ervIl_bGtU@cPa$EwG~0M>|ygvVQH}J~I~=IMH9b@Ze}X@{}DE zQFnd14FU07tc!Vyy3h)|JX^#y{AZd!3V=k3d@ug{89kx;F0-5$(Xr zXGnz?Swy}x45rl|a6NDMS0EZpDDToA42+l_QjT_G1mhugyBn zy!h5?9sC&8d?xPvQiPvhq4<3y7$OC3SEHj&{9&YYb!kz3yJLZ!O#iyWA3ZVHXm_wt zcqV-dSeX&j`eNp#Iko#w0=Y2_vpS|%bX<3uc}%gY*53x8`uWh*q1QQKubK46`aJFc z<5vu_WM*Fqi_$dN3;wp}cWf9d6yDje0M6i*5&d_bC;t_x+uGYL4&$WGK2#4IvBUiG z?Cr3LZ(RL><@x_!%FP)}>UrK;F8V0!=-s>xrm>rMk*mg7%#(q#(*%cYNAw9#!RD_-qM@D!s{mn$g7o>330-NPGP!Apy2j5Gee2O(tqC>y2w-177l%uK6Y8oR zXvr;?pxL$c%8tlh9A8^A>g15MT?-Eu2r!TLrgo$rE%A2@u%1G9){^B_*++I5O@K*U zPhGXvwbl~Ue$y&B46n{(zQp2Mo-e+4);w(MJv5Fwjeba6+Er5P zVK%`z3^p;cpU@@TOO(ha7)cYcwXT8IwVqLLHePkfasUE&$$@e=ISmE@%k;Y&JX0G< zGY~l2AdLI!KD81`@3=!nNiDeXFiV5S=((DTsD=h>Mu=m}anJV;;7WtXHG*ZCZELEz zaLPv_wiiozew=DOJui&w_}B`+KRGHc_BGUA;&ZFIfGl<`DJT0w57iH+W*L}_<(H(; z$Bh^#N5tUdp|Ap(DYeLT++f#~a+`h=vStD)9>QijnQdjMy0gmCUw4j-W#C=zff{8} zL7#1IkzzM@(Q1i zYCh9&w(|5ZTI|XA=1+Z*)=AXAFZWCaIG9Cx6CCMB@eQ=?W8{ z(^x(e^YZyT_F;c8(=E1uqveBlpsY$GCnhi~U$Tt^V$A4t{^BcWvZS6y_$8@9;=$5) z?+5_^RT_*(VL4(9Qiv}F0ll967cX% zRydPHR@hn8W@G5>ePxT^mPwP4m5msQ`~Wm3NsY>e4=kOmW{ez;P*Imjni!b! znntr-Pn%WuguOdIo6W&Z?nL_u8x8eGJ$`NL?43~jzErvq+e&D1`MPgDHm*3#<}+cm zJQah4{WSIN&{&%;?%mLIP0hS9^LuJGN4?81Zo~Yx%WY_MkzoiA2(#KosLMWYf3Yuk zMt*9!aMwo0u|L@sd&t40mXZpo{j4x@6acf78pOVAu z*H))i+*!ZD%(td1_gHGLfx@7$&|(!{&CJTc0ULrWzz}dpOW(bGsk5<}dEd!~ea-9O z@+2p4r0smiKAcQ$@kusDqRzs&RShT66iWwdb%`c6tc@^tG5jf{a1bL=JQM4O4k#=# z_ACDot@$pY>1SPs-U|_vcXBp9jUOTvW-ADLik~rag05G|W5LW2s~-lFB|kyQJ-xYY zt!I*j;8P z-*s61)r>dcGpW{^i(OJ(0()oVu82eXfse*gt$~-_mI`KTxLH`q%V>9RimM41ytA@m zlFCHKOHQ76$@sv6Zm?5`Nol@i-8nl;uE+j`T7(axxIHeGaGIn?$&@^|c+^Oi*Eh&h&5ay-74J^hQuW=&&m^D}t$>JaYh0GijLXRjLHL}i!-wFUJpPz`4#j8*hkOp} z5LS?SnI2wDU%%@$LHC1aWjw2*I$2^ZqK7eA z>-$sA;w|C_UN6@79!PG+SkXkqd@rzWMB8?!u|4+vyA+%JyT{(B$-*v5jnlH>N`55c z`~aU_;g4IqpR+ejENSD`P|ktir$bmK6O)nHaS~0kQV17dx)-ZQ7Wta6(mwF_^GxqM zg(RO)XDBURPmwDN{}%GPGiCj*|1UNEz7=;Ct=Q%9t_Z8r6Qs1_HM^bgK7*xk4y)&S zFCS*VUhBba)w7FCrm%S184UIKLS5^w#F*hdJiG=bio5h%Yu#1#xJuiL3Q73Fg1C~P z#U|G2v<)`G^rXf(O$edY-Kk6SD#(TnFP^6JMH@>hS;sp`I#V}Gyj#=d>T0+u)?dh)@w)8YJvaa z0s@Q^PHw|AM#Qh?2mf5rR6L+bo_0{*-4nB2%_$!uao>6+Kf<(HZAuJz=`k=7TOKoH z7iVkckms2-l$hb~8={~TgZu8|-JLX{)~Y1uIM|P2SBNfW1}riK(?J}ysT;rUk1Zwf zLO*ABuUPIzpQk|N@65;oc#NX*`fy?N#Nx&_ca05!>~Lfxj{EO-g>xTpz*#%NokkRP z0((^xc62o%C{}cQM0_~*cqyWe{O-N!i>qP(Yj_GaezWjoE#9D$-q#(1+?(KywVlOd z&0JlF1y(z+W=9_nO~b=Gg#Va6E=kk4%g|4z00PUB{LEpPcw2)Pu^(zo^p?{jFR{Jm!1(*}1| zZ`a%*$2nv|OG68~eFV$hwB(m@N7XrW{6@cR8bZ2*1cxRwC*D(`{{6{m*@Nam%pN6S%w?3aDK{$E=EpKh>v=-4ZDVv`w+TarFf6Z%`G)(uvxt8!X zFyDe8;#H4QFw{iKF%Xn5#eQks>?w>2zw2sg^j0y55P9fRT~|=>_GFBV(Wo{$I<+*! zPWtbpb@;j7Z)J&R8qFHkjv2@k6>y;yr{Zjt6x*@8V_9Wuo^tuh_p$Z;_u2D=k`*7E z2iN)XUraTwEkfF^3jb?37 zc;=*KaSlgqn`X+QcCVc}IJ0N4YcV?|)tB2|^-HxUPFP;n+}zgZn}x8@{7xTp2@?a< zY(JtL)wQ>y4q$O3`r94*#@oXgU1_7QCT$bFsVw@Y*e?#dPZgAdzsGlR)841-%|Vw) z-Al5b_?dQbZk1dvsa;Gzcn*z!^tPSfcd_IMGad6h66ADw#_tA-@BiD)D(g2nlq;8y zdJ#~{DIpYglAXRNp0mRF$hEjC%r1HCoV-onc5QH$IVrG;osDl`u|a!vg3J4Ca5q-j zD6SyW8P|Yx;mUA$J--Yd(}ldapPooxeTCs35@z`wruk$}U%hNq+a)OCdyjb#t8Rgm z>+fPcXB0(nYIo1tZwY1Ld+2kO=rjIWU4`Lv8j;hO1U^0l@7yEV7l7^5W&A?%YQ5-S zjO(@Q^^OmJXKwSk%F?Mz$=kcfv@dPHcKr$obuux)PGvRGG(KSOZfSh_^r9SNry!$x zR=OlXmTOYW)!WanH62j(36n*Ye=npPxg4)>QQ)IVBm1yB5II|II8pW@myeg*25Fbi zKLEl0GEtsHwFgz^;kfgrg`!~Og>{Og6X&FgMxP(jAs+SM;~v6D5$@pmKFpqHK5(cwa-%CzE= zM%m(ena9Uf5}L|-)^tBtr{yO0%I>`1xR8c1HilX%JDO8pV=*Aqfhw2%^7q~OtlB&LXytgrJ$ILiD*x@Z!yH^^D3*`w0(2eGv}~H*7palNcfa; zwnrhWs#CQFE8x)qf1VVlq9d@d}HE|vcg$8W+&4yUf~pL<;U znjPFLwc?Vmj@Qe754R$mV#5{~in=@aol%BhGBWH@7O6LS&=cXCSKWFRg6!{>dR?Od6Z|IPFedukg1MQoHe0;1y7+-h{o9* zD|3BxA3_cS^Q_;>vi8<3>_-VjL~qt@75t6HoMFTgLb-i?r)xf-pTsmMEaEQmC2{%} z^H?nlzypnT0I|7{w>o03TE1ADDLxj9T5t*@&v(Qee=ePKa-Za|R`3#DE!vsv>%`s` zUbe2@v<1jAeygaxneyaPNi`DU2&g`00(+}BWST|zI3EhF^HokA;*l_tm^3J?om$on zs1Aw%Wzha$f`=p}KY;xB1ic3c%95_RVwa{)*3i3;#r%mVlXgj^H_o;-f3j6%qX$c^ z5m{$QkNR3A@lFLO#&S1+yiCnLCe>EXN3L?x&knXcP~AHEi_^@HJY*v*zvIoeKu?P- zU!)ZR_uBTT1;pS5;KUjQ= z%+46iQ-w&LEH|^yLfAw(U)atvb2=Dt`!I?iCn96P5AC4cAN@k?`0q3p#}P&ngG3H~ zcD>)_h_i{3>(2GO|IWw7tg@@t&Af~%U9${#F{dl3R@7_{Kw6vgkwA;Qu7YEDP%n3C z6%LpBjOP8jvyzW%tDEat6m;Wb1;q+9eIHCsjMNXj-zbB+yRQWuM|w4KnDk%T7&MfU zkSv8^%}_P6h;p@@SX$s^eSP$^%}jvK6m2v5_<2RzXx^n4v~N{F=~LL@5+-=xG}bKg zkQ`Mhrs$_zUQD@>sw}5inWIw(m+;S(Nw4e(%;ZRpiZnOS5%~1^idc4UZ^i_QC=YXc z#^g>4dG&g>?~jeC&n`#MWI-BJ>IVpcN9OM%cvceUJ>5rYbA{#8W&&Lf#{TD2^%6%@ zP1?Ja(%r>zxsA+s^q1$M-=KZ3-W5-AW^U5R$K^SZn71 zd-iy-{+}P#l{jp`KJc|UJO z!9;MvDK3@6-HRS>3jp#NGPmuW$}BBuzVw=1&wBSFZwlZ7tvR&svhqLBPm{U|bkb-= z`$YwMzL8=!>?F{peivIgOQK%yB;a zK|$qZ%nu0y_v0VlMT?VLv~Du1bF!i_Ny1t|OT@DMARA4ZgW7Y5P(7HOT`0Gh?clJH zHB)mWqv1&|N6uUAcS6dJAGs6%!TW;@17a3-HH*VppDwJxr%#)(au@(^?PlQjVR;yv zt_L0`zuz=4(M|~YpSqZ1g1nG5`G`kFah&q+H}V+!i@^1W&t~Hj!r!$022e7mlU?>j ze+6qtO1!+#CYUf(d|6_nt*_c67CucG4FhunN4MKDki#4T>!*jjyn+I{X?+nTKNB@W zUb|?;q~hi~UNWOoMsv1Hy3bW7lq7znoejm5%s2m#;Xlj*>58BHX~>j}$;rDx$k~V1 zoT?Kh09LAD0jTT>DQNTq3Wc!Q?cUR|(uRlC5s!0+wP3KL^y>(LQ(p*mhacTRDa9ZrenoEA>(jzDE zB(Ym+#3XeObNr(Vld230G?RqiB_~5H)0lUURv1}+5~2L0{w??|X1&)O$8%F2u()DG zfz)79zs$2^L(NxdlFx&Sb@MWc#L;#TA0WFJ1DML9<6W8j&9i_G!;7Sc<2 zNM3I0{X#hXuYKND1Asr`?*>P+$}^&EdevC2ExJjXQ4H0BqLAjQP9OynT)Z{~6~9=o z3woBD{FK?_eZxI^Ix{QJN}1;b#933Ek~PRyCp6B_WGViK=k=l--xW>$bRp_4K*Z_v z#`^M9IWiqZrDMi=zW}UawQpFL-cgz4(i6hqdyG={9nZmL17TiF{iVqa(cLK_a%-oP zjSF6Xv-3gQt*wG>oR;3-;xu3U%4LjEw99nYPOrlaFs?uDDc)<%>0{(on?O^l7VKfKqjmDDSRwga0k--OBEYJ5rInE8`SkrO>PAj+@!xv| zW&J2mf>d6~%F6^y^)fS${`N#nDh8pke!uQOpE*GzW64-TKsG-rm7=iD$K%u1>H}D2 z13z)`A02H(#Dj~#TN6N;ygc#$rb(6p6DclUs_?W?nSAP-x#hh zN46wnC>o~@59yra3^3yDn>ONgsmraj9l7d#om_3I%#>DPcqh`sH>%`s#HA;0DenH8 z?0{Ho=z(js8{;rFL`h|^ z=F-~F6gedE!lvRfx^|DOV_%HPz4M+?ryMaLEMvp)4I40FcomTP_Ha`tl zyH~#cY~oj9IWD-D26Hr#rhG_}0FIfe`7bVD?@7Ku;9MAQnXrIDEVszM3HqqDA?cCt z@2A+D^67j*LqmN)B@}PV{7vCl=Z@wmz9Z{yruLKc(Co#E!`yn)rSDVt(V|?M(5s_DCy*8s5ZrJ_v*paxUSDV99F}!mD^;#m z>4P(c?RsOvOWM{=nFGBp-pxBfF>E3}`D#oc372FYyVm;$J7cCg{wK1E;b(%uJUs9` z7@zrCFssahPF%B3-#JwWg5E$_s6d|gr!e;}X3C~E4gVp;1T)T+Qb>-2A3L*ag;Oa} z&G=uLoRN&knMAgI17yg=58bA9-ilEHmrn41>hVXO4H!}xzAXRo)E_;!R*!<%HgfH7 zR@Jqjt_r*K!G6B(6;?spJfJ1a-T;?j-dEjoRlr(UVQmi>Dk;D8omy19&<` z+>zBD@_2_Hd(ojmG~%dQOy$Q({81{v?#fG_dmzHS>r3i4T+O-$HXj!nt6Ogx7nG-PQKU16MhKl~rytXv*4*(0z~+j)oeY zU~CJS^wSJ&=0is;55CcYaR&;P!LS3P7cWLsj4)&K4-C~_6WjM_iM9D&l`4`CGcpu< zxYqQ?Csd-POzM0C?sLll&hotsOG}vu!#+scK*y0N_|Bae^07!>6Oqvu&l{}4Yu6;N zY$_~O7AjEdhCwt_h&KXPG23~+uVMWY$k^*h4@G9Fw6o3lOxYa#&Ynwb8mZVVKm?`YEMK_iTk|tX)EY)0COl)bx1EasKD#v&P0;x$Y1GS+%m& zw}S-vb(T~7R^4USpo9Jqe_v$OJ(8%Xdqjs*5)EN{{dcl9AFT0j(^ZX+pAj90SGpAD zTR#QrdCJP@eZxkmMkzSo_Y$p#x$kYTUhV)w?s?(7w>vSn05*CoFqb!k_B<4|1*cj; zQnuF}I33bO5+uyVwNUJVD_F(Ihr@N(n3Ya247}2i5iTLIw2tzBdO5mN8GA|Sz6%4Q z8kf7gM$ea9K0!JMZ&H*iblEbqA4~(WuCbqaQ29P^{U)XBtV;3Ul=g@w+We$qe+AmDVo(FJ?Hbk-KsNSuy1bDFJBaT8dFcN;5o@41 z9)6RE70}=K{C!dz(|F+Dr{L7E8d|_wuSdX2?XkZlY`0b5G;=_a{Koa_&z~|c6?zTK z2;m{b{p82$^(9F>Rdcgf0aIl~8teL$~M+*DKHm3_RY0@I9P#13}nW{f_3 zuY;Y>$N2-1FP=1)Lc&;574DBqRd5v z6#IWqq)D^b>*E%vg)Me)j3V)DHLh!h6tHg>p8xKMgIx1);3~d>rd-G|8re*$?~~&Q z=dF=R=Eb2V`I*~J4`!RPo1tF3vym#aR4YO>L7VEUF7zgzH@-hYJj08%V0)J?go=JG;toL2rpv=^4<0Kg%2p{KFv?Al1sjv!wNXHwgPpmfO>9u z=HN9;VmHD7`w0h~hK1!5Muo%fUeG3Rs&)%DaruIT~x$5||G_6QyYo zy&Wn#$1BDsT|U57BjhvJSNorC>;qov!oRv#QEc2yFN`^g(J8LuA4=h$qhgbICNR1c zjhH152EyKXArVG=(HGTXClW+j45EeRKX}17w9V#D& zzACyg;5GMe%UHGU7wEAkp$~s<*~d9=MH#}A3A?K{ntu?E&8z%;`4$)^z5j;AeLAz1 zh>&4wpDA#(@UayNg6%?Z=?67>Ud_@b~*2ri+x~&!pjQ>0xBt46V^FH4nNCsE) zf6+Tj3+%ny9+%>^Jf9mGn?b~5Ty){Q>xDmBv?%2H0pK}r459%!zS*s(`8$CTA{OA( zFox(?yh()24X}0rSYZ9Sy=4qu4d;3<=}qzAXwgj~6GN_}tAn+*!moViy?qwv$@Wvw ztp;=Q!Nq0wl|n`;{tP`(MJAimc~hEI!^wkBCsQs}@7S41>-hv0bPl?5gsb(1b)BqW zPMv5Dt`1IB<>a2pAa1s?Hmsj!Sa5<4?-s15=Uqa~Bd06P}7ykA- z?%H~ou&AE?hs41dVqQ%i7SQ$}-^g+v0)8}AB>Hp11{(Fu;qq8oM<;Xib|zDQUqYB# zin#Wo?12hfTmP4!UN5+0or7P?=r`SCcQ9(VF@c@5mVZd%v?o$njH<*4xlZpCsE@dCP4Y6qP@#@VFtJ42&R71_c%+B_9uAcZF^ZP zwskl#VN%qwP5(4s!77Sz{Xl)C{_K!-`5||DtKIonxsIcR?+at=oX3R0lSIMh)L_>! zW6v_TX6GzDYe(TrAKY#%f1Voc^e_D`!^!W4nf_~KHKuC4T@2Vjj3ba+v%bssWl_TE z`Y&aGn7gyb>&gbpJXJ=X<>8Ehg$h2ML3Z=!57M7xGJ0S2H9zuGHyX)NK;k&IoRJa$ zg2Z;MLuu^BJh$$HD832vae^D{;ljn>8?7i41(>v`O|Iz$a&q&yioojeW`;z<3I5@- zOUJO4nq-r7=qg$`0~9pX6*S{gPkME7noNVW$s3hN!cUu1an$6^x`D@5=+;aDKNjlx z3-W!KtvX#v&J3c7_o9;#NbDj`K{R4gGdKx>_vt47)x*ErQyrW7wpR)BzYU0wg|FTg zq=S88mVBlYr5N;3Hs{F;a6_|~_dX)_8krb&kl${*yqvjab(!#h_Z$BW&i(jU`R9Le z0lG9_D)@kEgMh0!+yO`{KlphPAp+_YkI_$O4mY`%WY^~7fGQc2nGio)`2ms&taRH} zlSy+M;1<@!aVI&Z`=ni7%E_Ew4nUZ_k3;-aX`Ty(MG)ukCxjEdy=P;ts<{XY?zx|= zKgiF^+cq+saF5|p(_yo4C}}i>`lq8`>h1m+M<=nF9&8#jd@o;Zzy>mH$`}a%v#WT! zL;h;5m>ZQgl@bx`wQPVHX>@bcDuzGMTqDmtoJ(VQodx8*amGkn=L+a3!(+nR;Of1p z9ibU1i_bXKq$?Gen_TV$+iH1=+TRc7njq1Ea3sjEdg?_pbVkJaS1S2R$cWf98#~;fVuUb64+!B5s>e3 zXNvzTXb6B0$vQ* zreI=SB_$!6;}awScofF7SMyI1ZRa=Q^~vfhdK-p?r!t-|O1!Dq$B?IUlDAzY6B?Gq z%b3kURjk>bD4cn`9_o(#1UT4?fni=CFdF#TCTX(Nj8=@X zQa5ol!Z<`>tkPZvR`B!s0^!-ku@<|UWu}DRG8C=4)Z}qECi@W@upTYEeAMA~Za?QM z{by>tGH2lyxe9h+A97Qa%^fQ}`_vD`#t;RfeMD<+hhJ%4VSecb7-Dnt$^8+cm@_!K znIj>LSnajT>G&rC_-knm&()ZXeVVBr^hw8d?&x5Mmi zvo8wzMRnTTPf%;Y#J*RE#cJZRfcVMWo`PHvK6toS)ZljY*J~MLV7;#f8J0{-aa)zq zz=o{B0?|Xpb6LMq@UuGk9<`Z54PTKGZ?W!zXCHAbcd@64`s~bB-g4SqTE8i-2g_7a z*h2N~b##_9s!dv~b8a^wdvBr18E}Xq-6jvX{XVT@v%`0bpTXQN=)k~BUM|3z7PnbB z*=KuG4H~0G84kM#iq{z@Lc!2s7cDbDq}UznZbt>a_s!HtcQ$&4E?N@j5~6smcC>;mRhzEtNVV6LvP<5cKJ!LP_H}7Y$YSE>U{K}YUS@0sb9R7dmR&ev|Uh?Q{}Up zBzm!(C3kJ!fF(C7(JTyX&UrBf`4x#)(C&~Xcdg;Ryj z#*&7`{3aTnt33Udp^y{0`1lXe8rhN7pjlXg!+aI&CMWJK`)z`q4A3;XXz5vT?B!~z zaxy2KfbxIfxV!6`vx2O#(}JhE^RT?aT+t3}UWwCq$wvH*ZE(li~{ z7eOO`5Aj4`$l)X5Jmdoo3%RrX=w72I6MRhe$sZyzW$;7uxoIph4U%~8rWK;*CBE6| z%lFF+9$1aApR8bjYT(!M++CY^4`BE=8ZNv4u&3TJxQ-9(34EaJFOo$%N1wKH-EZ^I zFoR_K))QID>+J+s0J`4Ct(Pcz3NTS{an8)&-xjv*SqA&7l0o9)Kk(C6u7{J(PKnS| zXYScnA8rIR8+iBC{@tO4TA?0$8>@p|fc0{?Hcek)Koepf2iziz7~QQt$ZvBr7K4cR znOIXvVh+F^Q?-tmLqA03Xj^MXN_clPdXfJWd+|5JuHM;mapMt5#^Y(0ILGyF+Rl3|fP&AWn? zquY#SaKKI7)_Ug*=pqfiWSd^}noQK`)}>yBEoQg662}7t>#sUI;RgQaV&G`}teuqYq`>Pw`78~p$*5O^ubBm zntR&$?GMSsez)3gngX4IR<}DWQGjPcHPb(M($BkV6&&iU_xz&vOAZTNbRw{|$H(^# zGMk&zMmy4J@3d{U)NiE8fdWT&iunMcKUvy?sy0dVPv1uIvb+u8W~?-#bB)PqXqd#_ zhA&V7REu=v6AB?Ib~KsCa>!S6G?lyUhupu)o4-i+a!*1@v&LQ@9x?{kIWC|si0Y*- zm(ehw^JnqfoP_ufFgV~#Y1VcmZxWI9w|X^F9GWJdZkD;E8)k|NvRKdvyET_Zme^mY z_L*Mw#g-U&71D`;*8Kj5R2_&!>B7v|4gLv}$nh2ypb!99znx9KO{?ooe$mA<)J>lr? z3*KK|LU0<@amt?qWNk*u_{>au?~yst13+O$*MR0G{LmMKAuQ~KQYBk2rG;{33Q!(( z`^wRS_*vbt3uMcWmQV? znHe;gm=&P)d~SE>tPG}{qR>@{<)M*F%Dan8V%IzcX&9SVuZD@EJrW@G30kNtW3M-5 z_wVyRST3zc zd0D=4v6Fv2kJHk02VS@|3GgVgg}UAa$cJl(AmAzKFT1d}&5!$sbI1ntF=*ud^p_qd z>LO>a_M-T$st~P++KlFyd58+vR0j&kZyk(y%piJ+xkpy558#gW8@kb*m9&nHo0ht| zAuHeXIN&qqUNQswjC7-=c2;2ts%fH&t9PP%?~mW~^gNVjv1gnvg*ku)B3C|utqeYR zA`WL}#>|e#KB8X9o5clTEdj*2RGqKmym4OLd$(Y<^OGGM#NyL8R}T|;bnZI(XH+ad zmfGNFXQWzfbgPK~Y|NQ4lS#>HdF9%V?K!n>4tXiPV}n`$Miv=6y|Cvm4AIF6@vhv% z{}`HSR`&dr(N%509Bgi)7wYSEIbB?A&i722sLA!G6A~i z_W3eDYe}N;r<&Yi9SL)9=B!no#KZ-Nbd?U9V+_!~HwQUB?zI$j{}6Ax7WJ|Bt!Vmz zk!Kr*sEg{MOb#{mYbL164Z#AUV46O)&HUVeYf}tB&)Sh)ZBTiMh}+x;|83u91V|-) zio1rnObeDc@-w2+vv^rivUwH!3xYO}KW_S`=wE)_*+#8;sh0g2P_n8^#W& zi5*r-4O7oQmy$w|<1RN)%*o#fF|EFWzh=^jVp31$_tejz#o#J2NFmkydsECaQBfo7 zZ#RM93?b-X{y3|ll|jvadF=1=HOI?gLvRhi+%zY(;5HOxQ*sKfn}0dN{4qtPp{W|O zjy|}hkYNEX2c9*b6abP3px=ham~~I^jY#r?Ug(PY#{(%1pi~F|#V){7fI!E4=Sv?d zZ5fG}*>85jp|l298v+#b)js87Tn%2lU0jsqw>aX?Q6P8DQ#m`%r-y@_S3bDf>^{pK zZ{GwbIL1cYMKt<>I@&KRT#^9Z-9~UPFaXTn6F>SLFRPU5bR^(hjoOJo*716EG5{UF zhQg#nOfBrLH0n`cAjX*m4|n~hia%$TxEeU#&}x;1dt`AO3gJwy&b;ir+5q6{S%&{0 z;k~tWY}}J8GN#Gqj|#$BtX+@mFlCOtvGh+5@os8rbmio)QdYiyK3ux)Vt9_#T~rn; z79)-Dedj8F98K;jV4rh=>Q;GFy?&I{Y2$}taC5UOA1mr~Z1h?A{5_Oy)snTWRT!ps zwDWZrfUZ(*YzyBL*~`-ZWX@A|qD3cID;gFKfOrzvw;FMLGrN;PH)Scz#T|4l8PLo* zfq2Ba92|^r_|bekUSR@60dj&Nn_ph8NV+vY%Ayz=Mq?{y#y1HyHK&kaxs zpn<7)ZtHaZK35+E+;~$a(7@RcT9J6UQH|^Fc}6s(`a)0Qc!Q9Pki3F|eDq(`6UJ{f zLgKu!*8R$*c>!VxILS?%KCh7&(DmTvU1_@hO{~ughPa;^)Bq7Xpg^Xg2Z|xHHpW2b z#AwUi;L;H)P(a1UZOW|6pW`c9IQLl%3)MBg;!es=#{R#r#oSQlhRHoy^RVR$aW1Zr zRSTTKmGSA}BT`KhNBhRm7~J)Cy()9io53k^%<9lXc*!RqrLL;d4J(_YtX{7GR^VI< z=shGpUKwm~u^bT#Zt$Ng{F)iCOKWAdgw(vw`av+1_``jz)Jum*)fsyoA|-wm;~mAs z468^^N;{X*!*urOv9p_;Z4eGfUbTgAdXR;;3ktsHt@)h2HqH*YO#Uen(omlw z#;OQ}48Xt~l%=jrtbYU@bDSOqOucH8vp34d;|K|%F~trL^IeKbMLzPAG^+FLIp`jm zRmkOk0y6ma1zstKprNjLm!@*e&{aLc%N9zcSUES^bEt95>LE?gd2k6C=VR6Z*xB08?Z>%OrdpUK`!y zsRppZD`Q?=nu!fg8-lC00(@fO&lD;d;MXtKEHnH@xCqJFNJuvZB`YxbvelNnjynnE zI5Pwze`dMJOk9qQ%)k*+5LwM>smqrT$;`*T4K#^|vwLArIBVYkb0!@fu-;Ef^1RBG z!YQ;2{giYa|7{(%KFrRR@!I{h2O4#;)#Qo*Fb+{dW)pyiXuXz2e}Q?$jNjy8Tzzra zb%4vie1=iU2#aA-W){f?Fff4Wu4BER51jyFH|o(?JrGBRgdyEuvjlfvp3=lHU_K2@ zW6Vz|Q|*E9H`i(W??0^dF$W9frp^G3oV#aj^^h+yLnJLBKAXxb9)kuu8vUeR-@%Z# zx&SmfKrB3M^FpuFM(Dqb0L9v^dXPqNw~PriMcB4oxkH|Rz}NW{>di*1m4toKTDt=Nszx7!F^UOl~C!wL{v zPA8{2#bSk1oFI@_C7yR>L(PSGp`N>_|I^YjU11TMgP(uD9sQwSNZ}kw2Dcg+8F5-h zeeH-O3a5>>`#CT4jsDs53cFY)x<0%oWd&61{N#*Et;7LkzQ6|$2t47_wQlE!fpDPZ z)?6{ALHS!6hj95z!S@LNef4d?2PxmnHsK`a<@FM-MK=*pqQfZ`Ofjq&Q zf~L3~OWBtTS&lVk0ABqOy!ohz)f{=S`EQ6bI^hO!?Y~LTz_VsTHKzmkxPk2d?pH=U zWD!R`z$}1y1Qz`N<2xr`*wh;e1;4z>`sa_HL^U`a5`^BQ>cg=%^`v zyKw#O8y?$@=O0cc#{0Za^5w{Pg%P>IPx2)3>j!{EXm+w6eyXP37&8+!4jv3T-Fkc3 zIMZgxZoxFs{B~IoT}El}@dTAS;A#0oM@OpYZu<4S-N##9P*<{+Ht$a|SwI2nr`fN< z%yfkhas4Ls7fa>*{lUeGSpb_%bs9wdRhzVhw82Xiftw zBh6yExQ1;bDWU6}gR=%>T4v{@O(c1wnFZDz;C3rPFW;$Mns||=D#`&BZv;CG> zlc44W$lJdCTC(4leB&9r1xae07CV8*L)-%qOM}HYI}e6?(oxUeQ1!kg^d|ng{g-yE zc}_FWBGcz8nKRyIYp}2X9I(AjTrl zP2*08Hs*}u8hyJ^c%O6}>ceA;!>io{1@W{>Z`q7?a|!s)<1rgA))~`w%j~Z{5OvQM zB&Fl`a?q=kRMcI|Cb~;J{wTqtTizq3QfBdEmjV~p>$88#a+M~+#VfYokDmu(FNeKlbCrO%yk}einu&PaD6{0W7A(z*`BN9*JNy*Sx)VtCQqzr3C=JYr)AQ8N392uDk_&3}LJoGzwhfyotdx0KIp;mV>v=#QXw zQkxHY_!m)JQFeo%m`DMX)9A;S)vP4buCE&pm`kGhA@8_{{t8>%EsaRS{p53F^W+Yn z=?3gTjm>Qt1>#q+`_XY(#C*s*!B-sQ50tMty=|VTsKysH*r6}{oP^Vpy@hg33#K*o zIj7jI`Z0v^4=8qd%Vwu_-fDTggY2>kuPt;(@>qFaC1ms6NM=Tv;os$+Y9) zu$EJm+S4q+zp|#r$NP)-Wi;!R?AKw<1GlN$1ciGu+DihITTE|*HJ8e6_1(#Xsw7h@ zJ(Zz(ul~Q-d&{miqwd|eMrolyDNr2R;!-H?P@s5mm!QR6QzX!$EfCz@9fDhs;_eXK zB_u#_x1DGI_cPA>bH;hMKS1trkCl7Pbf^aa_7gul}F-Q~~ZgWyPX+d2Lt620A)(I)Qn_YnggS zF;j18a>A8tRhqu=SBQf{1~y44@eENBIuGsr3d!VrfBiLp-_7E5g$I-qIQ52v%l+Fg zt<7@PTMfw3S>W^3dg=kI&f>TEkN=7ZZZWQJt!7r3fk9Wb7(v&~TXBF?)6MhAE-@{f zb5#+Szm0Yi1TujkFRkmCrKIFC#52nklow|H)VWE~@Fw>wQj)#rp{3Q>D}?>D)s)Z9 zVN}nw|MG)MEP({bm^;3bUEA2xB@+RTz&cm=)&(N`J2(8(_O}}6+@WfA!z`mSjvI60 zAc;D%x=BqR0m*uCNZ8{0#j6f3#mus3np-O#GBIb69TZp2Z)|htk`-sU4TaL zQ$M5zTKv>gPQ2}-fcauUy0iBC0V$D<4nE=}h`j3;!!Y2qnKElQXWcH_pWFRpya+jVP%jdrgKYE0KW%d;cuFIM}1e6z(@V2<^nlapz8-z6>XF6w@hAf}OSA-F_lW%fjk=pBQZIFR~RewL&Obrst$0Q0je5%+X4!Qz!TMQ@tsn9FG zir=ulM{w-E^XPF1RTzkVz=ik{?TO|dVTGrVh-j~S>_WZEU^Zrg{Ila=v=-KT0&U3WQDZvnzp$LnYPW6gEdxQQH zXs2zS=c-_SLw7fWbRCK&!{9=!%1sngCne9k=!dsS)h72WPTn(*+NtJx}e z81$nfi)`7QMPs1?guW^tFGdI@w$yygR=N49myH4*#=7>soVMG@(I}3OCV)ySQINK8 z)Z{PP=hO4C=ZF0)6Irhc*|{us=Ezg|!B~8)NA;UvM-=2}HBy~X3N7TVeM}pFP-j2^ zPDb_ghqPij-8wrl0tB&frmuK5H|W|nV$Hl~g=hCl_9@Zfc0^ zMkiWcTCWrIg6IFpKXPF2h!G;x;mJ$OJ*kCPyt#!D^B28PmUn3feVU~FJJCVvpJudC z&YIURq;QEGx!f_ed@9Q&4y=K`Q?J06($_Oc=arVu5o|6%gZ)7aJ1!ZSPtgXxpb5&~ zTT*D&SI>F-jC7)I>`xWOfKVdaysajNzVcw~EnR%ZGU{mu>&{xp%}CM? zl0P6`J4{GUGh{Cca~u-dsF=qtgjp4QZZr7xldCn&VQ~=H#y>fJ{Dd&&H+DuQad|}@ zNdk@tXUVGN5N~2i^L*X%u2ME-mGMJBod;16bda47-^UVY`V}Y1rhH zUs2u1G=LogkF}-MLd3xa&(7h2(|^4H;~VTqoN@udz-tx}gBCDlmHhxbnQkLY@H)S6 zT*(JnB_NJtZB~4y(bUYyeUC&*<@aFl_*EjC|@$p$D%1 zhQ2mHJn$9E(b_nfcRK>!RSTlQoVmaL0?IiIx9isi5%~H*Qb#bqt}M7;U=tg!Zl4&n z-iE(AwPSci$!6Ktlg`>^aGw-5mL5aTE2Ob38?q+TM$XT} z)C({K0X8>(H9!s>blCyQeYgeYd!l8T-Z#H%_fLi*V1+s9PRD6%@R-7an(Ky=48aPC?KDNjS-QgX5vHQI!Wspq!<0Uq!Drm` zlnO&Y5_3m8xL4EKFe26xd!hJVV~5#br%Dnt#x0>o>Gt|6I<~0*xSBnbRRwAeW7(d~ z$)m)aviTP0vC=A?48*HKwJ^{#K@F^s(i(0NH|;W1q;|_rrgAEozMMPZ}B@NdkpM3h#O^s4@;lfXo^qUANai`sjWLEU5=BIG)ZIiCZI{{pMazq0&UQ#kY%ysuL(M7s zYbsI75loFi6uvm+WCYz7x3QhSGzj%AksUZ5K{Y$nSDn(W7uEQfhj`%cSD&OROAq@#qE?+ZPPa4|0yeC>B@U-WsUJ!Kp-D?SOoH zL+P^eLg@e>-F0)%CXbSg)_eB+o_r#~cEuNvC}?K0Wi70^SkX~Tfad)Bgt<1K`Y{Z! zZ21+qZ9XcLOE*ibP(OQ!+Fz)=(Ack| zr+nL#f-y{Oi9`A35?|XpmKU%kyyLSLT|X$;06kP?!c(~>)27hGsGA$(dh2CPzoEa_ z(TyM@i)Fp>Ux+Z`9AwP5IDDh*-Zq^s}Bo5G2@VVHm&SxB5J2z9lxYtlTVTB*etTMI}477;J{M^54U&i!d(3TLw-Ddt=i4)BLLy;O`m^XY>sf z@1(shwuLZ(^(YG>jQQeXhN-bQfQP%bE=&m;v3z?zv6I)mx5sKUQ(AkA1}Xx2N2u&p zZWYC-5d#cLbC1_wuzKLtqksz(%1mG}wT+97t`$kl{P`o#N4iq4jb6}e1K@wsH`R}B z(&kFRY%;qgJUC1yWZ-e9e5NoZ5-T(?npC979;e&)#pN){GL0SaHi@-(WfyxxdqDi0S9`|R6Qunx(HEn35 zzg;qkMC}`te={&LJESDlm@&GuJS>{s^XsH|5{FV!v?w_A>YTWT=Z7G>3)$m;6Elv(;o^%c zb11v>>erbS3iF&G{%~8A8^4l)a22EQzF$@6M+KOmzt7d)@FndeKj;r(@n)wEaaU6>pS4qYK&_;#RQ zH8lUSmFoGYwDQ)s zPp`52L~8nbUk>RBLWPzRD|wN2~g1M8Ux z9H9*lqPe>u?gGe--Tcmib~wpcALw|#j%LYf+eV1lj)MsxKw2sM=zT@L zw8OW2y;9yoO*({(4b^v@cnf+v!~1Kt*4U?gET+38wqcN*IigbAJaJWXlamX&Lpy~A zfSCGADdq55-nlS9y$eXN4MZ=1wC1XV( z4TG}PHZR0YO~N)72?xErnKvG*tif@|f*?zYhTqXCJFbpU1SifX#f*| z-dzWt^UVUzkOEh|UrR@|K2}LZYn=lRH6h=4x605MYVCvr`6AElABgL4NlZM1 zeR_8P${AXI?-}4~CspqR)E#5M62p!f7D*ako+iJt#pYYyaTHzEz734HTGzXnw;bTT z6f!qH8~(U6uedo4BG9%C)7YU{s5FhuceKnbD!yk`Ji(rdq^O~YDfKT|2!a{XPTeQW zq)}4Chj-x)4+PQ|RfJtEqZPNenACRsYUwXArixiWoo#xnAz&T5LT($&qWlh_`Y`S8 z{%9C|gr|^p*|MQ`0}~I$-5vF+4lw+E-gKx~Rza-pqd`^c!{0Z2BT><+FyE$FF(a)@ z95UA!7^^*QE3%*d*hLyV+)jc?kn91paV{G}V?76RK+Qb{NHu`e+)2CKK zuL4KWlm}yxe_ytnk<>THrwq(zGp)f1hz+ih)vnO2KfhSCgBb56%11tjO%hbwQb#EybB$TaQZzV$5Bs3bxxG zzk8YknCBesl7c!d3N>)JnvLUDmKhxB5sup~~7djqY=o7lHH=%8OT&s?teEH!?>5sA19HXSh{_1g z#HKw=1~yuUX;VJ%L3(yV@ZsEsVC{o&JjG&@sP4v;&9K}&VJ1UuW6l+OH!@-RLd_;O zr_9pdZLy(GE`By#Kn7MetK0TmNCp>awr8g#K6rC5>22+D=ZT=!vgDph{A#=6^JL-G zvuxM!>*g1GW5M*Ywg;4_gTDwQlw8i|M+PN8Iio(`*Qf|lhvxSnwW8+%tRY|MED7H5 z;%UjBG4blfY9(xK>H3Z>#b?x=WC_wvy0A5W;4);m9*)nyaofXqg{*jBF3ubdty$zV zpR>~5#eZvkf54HqmnWp~WrsmOL{kIyW_YA%-L|0jX-)^M#XNan9(H>8@Dv%GN$tP} zUiq`b=A`J?_%a;OX#BlMn_#d;{_q3XoQPy@A@@+#_J;dP$D!y#~)m zmB!g51%oaaR)%W(-k+(~8$Hs9{KYv&a}3R866O-=Ik#>_^_i9I4E@>+a1CpU}}=)`56@sO2Rij3kyBOB~^HCmh`y3oRGXtmD^BUbQ7uZS;ign&<3O`~@a z;YQ#3!W-QAE3i&dwJ*pk(_3+%!F4N6OeSKYr>DZGol9wTjfI>DDfV&!8$~ zj0S_8?mE+dy@1oKPW94y3Quy^7<^jkXK_Tjk?*n+=T!QQwJe5_?nPylzIbO;kh73zHs z7W{kP@-J$6{6Bkm?EmcHH_x(byV>B-CRgHNfRqm%x@^i0IS_|)@|&KdT}h2!8>1QFI>u%T*_ z<8NDG={r@geLSSy`;VV&+`%bitKa*}s8F z`9I~9>KWk42SH17$H0?|&CJZ92NfoAy`2`qax@htdq97kcIKK^NL;d5o%?EHai88E zXfUftT--l^SY1PAaB{e@v4-IJ_g1$+X^bMgbjS@`>ttXZ?e)Kpg*QFU&YGTjVQd)J z0{Ib^)_0~t*&RZXir~2_h|gRYr@{efPJvczf26QBtG{;$+SsgpAD6@%bx`=_y?H2} zts*5&lL8+pk)LSz2q;v|s)Bk|tM&RxE$Iu1LbP_;m6u6LA-Z`H@yXWSdZxmZ}e95>s= zE+2s2WttN<9*6Yy-^_eZf+HV(7OjRu>BGUbX+RY>6xUg_sN~_u_tiR!u7=w*8$gjt zqb^s~gw^40aZYt7qX4u}y(X24H$4W(Ge*O&)q1O`H78b7T2zwHXpq;{sv6EVqV?2a zl0KHAWMZ8qlzn%aEI~t8bs~Jm(ULC|4CpDZvNRfe^IGPNs~LSgfy%y@(3B|yGm8cr5SshsoR`H#@S7rKbYgBo9Ut-KQ`p*Q<`aKSl4&4EeY zucMp(*Dj$EJkoe-G{Gv?R_^(KlnTov-4CsAp&_6A=^4M4Gs1M(?KzR}koBG%S~#K~ zi=KOzE}uylM{S$N`wyEXUw8>weSeyZ&JP+6k`sN$`5xK7x~Jw(&H-0${vq0?Q?+wp z;pf^HclG9DzG;*H6e=nz=pDc1uJ_MA@}JZd!|$Wj3%}{#_yA{LDjHnreA~5z_@r$) zt-U^WtDbl_O(;Qw>-wFvr+B`{jF)(?Iy?WquQcW|reVJXGe3m_U#=!+COYxK6icqylu2U?mQ&(0x6)8BrvgomFrq_LpAT$`_U#-T#7djoF9ihg8 zzMS2vJ`lj+C*uW=M{#^))G$G`Gdmuzi^IE>d=^JS5F0qXnYPS?Hoy-nUCwK zFRl`jR2R550TNZLM`*QnQrdk8QqUxLUuFFHUcj#SFyQ^;aou@yxiNZ00lON#p78>L z=^b~8rGj5`FK|y9aQU5Cn+zu)+_yT_=0~p&$DcUH7ueW60fe^IdMaybC1_ASu|&Ayu*abd%&3J8EC+24^!WK~LepUtG(-zkQ}8!V zrYbnObzN#5GwS8Ft#2#XVnD~F3a90mW*3&k1{$!TvF|clM7Vg_;Zg#y(?_iM!BG_4 zwE5?Zpn|UT5aA0Ot2=sis~g1{+&SZEd%cU{QkL06!I-pczB${swmbV|4xZY)X%g1J zTv?!+8EZAY$1#|@*3rPsL&Bi>8e5K(o3_7Y2QZC)AHWLciLnO?X=s~EiASH)MnfA0 zlmE@2*Dw26NRmL{(u9vl3Njy|<@(%nVfm|r&0be;%w)pD+U)d+SX+Iq{|IJQJQ@i8 zYa%Mz0r7lcNV)X&s}iIqm+r>fJRQq}HHG5W=cjnpXAY*^w3(l+P^;H!k{+5277I_@ zx!l|g6RUI_E6+ZZjK93*xlBeTsB2}7HF$^;zs+lHON2J@nd&NaR+vNDpxuH+!OEHV zzi}~VzPu;g)*1Rk^;9pFl9su(xrB~Af_VV8ZIHZtAs$*t|8L<@<#(%+X$f(utajaP z@xg&_flPUN^iJA{^?a^%Y_9_+vF6u5y@DSQ(VBZx`OFPi`5HUC2^vOn+mvse?8ltr zNXx=+nsQ6_to)9ZZT5#*zk(yw)ODkrXy+HeuI(!EVa2UhdFFQ4IcClX zT$c42dDoM2&=;?30WO&A)O&rkO<*uRXM(|XrLDc+91*etX$x%qS}bl!snV}tYx$f> z!}lp{#Wd_qa8BvGY&H5Tv9}^h#rwJ^@xks@6)Mp|l-K?I4fxe`3Z58OY`*s#`*fks zs9EWq3vcE^@vFxLY4aQlc3s^-AH&TTbfE^Lw}EN zL4*ko%xEu)13x`zPbbXo+vc^|A{XoZ7iP_jh)CuU?EyV{Jd*Jl>0jKJi7X=C9um!T ze$0|Gfpa8R;wm?IWY(0oqC)e6dob4y5kK$bWO2ZR(|7Ih6PY0J z@(-;1#8kRQt*ta3St4#iW_xPzG?HaRNvXkNbDS~N_R8kV`@PBX&s;(>XEi)?e>p#N z8!^8%y#7Q)C~kIh&F2KB7=$6$bWs7~|*!aKhFzpc$}rZem*^WOjPr^8XvGULzO^72d{t)iM6o|y!)VuPb2eEKK)25B^cD; zJb69%#knHe4F1hMVNNmbfoA8;n=g;L(HV_g%gK?FXcytPSwb$G=2bY;x*GUgSb{<6 zPxaRHyJaP~G^JIEv;${u)%3#B(9DoBQg&3xv^P+6l2YS6C4}t7B#+xx_s(OU(Aad7 z!pxfEM^nPYpVU}~qGl3y6p=d&j>@$t=BG69aBHjjL5Ln6S`=jc`s1YVn3H@gt=3w#voj8y#9)s9HOI}ROy<2 zP7yLThjDrsS`^#7+;VpdPX039zO6tceIKnD!n)0Ap6R`_BJ@q)TTb{{-*7YE

Z_ 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 diff --git a/emulators/fmsx.yml b/emulators/fmsx.yml index ea64e6953..ab89b3dd1 100644 --- a/emulators/fmsx.yml +++ b/emulators/fmsx.yml @@ -54,8 +54,8 @@ notes: | Place all ROM files directly in the RetroArch system directory. No subdirectory needed. The core does chdir() to system_dir before loading. - The default model is MSX2+, which needs MSX2P.ROM and MSX2PEXT.ROM. If you only - play cartridge ROMs, these two files are sufficient. For disk games (.dsk), also + The default model is MSX2+, which needs MSX2P.ROM and MSX2PEXT.ROM. For cartridge + ROMs alone, these two files are sufficient. For disk games (.dsk), also add DISK.ROM and enable "Simulate DiskROM" in core options. KANJI.ROM and FMPAC.ROM are loaded automatically when present, no option needed. diff --git a/platforms/_guides.yml b/platforms/_guides.yml index 6f1fdc69e..7e7a2adb4 100644 --- a/platforms/_guides.yml +++ b/platforms/_guides.yml @@ -28,10 +28,10 @@ install_base: https://abdess.github.io/retrobios # (place_save_entries), and retrobios-backup beside the folder written to. trust_items: - It checks each file before saving it. -- It writes in your BIOS folder. For some emulators it also adds files to your save folder. +- It writes in the BIOS folder. For some emulators it also adds files to the save folder. - It never changes or deletes a game or a save. - >- - It keeps any file it replaces in a `retrobios-backup` folder, next to your BIOS folder. + It keeps any file it replaces in a `retrobios-backup` folder, next to the BIOS folder. `--restore` puts it back. # Order of the groups on the picker, in the navigation and on the home page. @@ -57,7 +57,7 @@ device_groups: anchor: game-systems handheld: label: Handhelds and TV boxes (Anbernic, Retroid, Miyoo) - description: The system your handheld or TV box starts. + description: The system a handheld or TV box starts. anchor: handhelds also_runs: - setup: Android (Retroid Pocket, AYN Odin and others) @@ -88,7 +88,7 @@ device_groups: anchor: fpga server: label: Self-hosted game library - description: A RomM server. It plays games in your web browser. + description: A RomM server. It plays games in the web browser. anchor: self-hosted # Ways to run the installer: the tab label, how to open a terminal there, and @@ -132,7 +132,7 @@ terminals: server: label: On the server how: >- - Open a terminal on the machine that holds your RomM library. Put the path of its + Open a terminal on the machine that holds the RomM library. Put the path of its `bios` folder after `--dest`. shell: sh @@ -287,18 +287,18 @@ guides: pack_manual: | Option B: Manual (PC) --------------------- - 1. Find your RetroArch system directory: + 1. Find the RetroArch system directory: - RetroArch > Settings > Directory > System/BIOS - Default: retroarch/system/ - 2. Extract all files from this archive directly into your system directory + 2. Extract all files from this archive directly into the system directory 3. Overwrite if asked Option C: Manual (handheld / SD card) ------------------------------------- - 1. Connect your SD card to your PC + 1. Connect the SD card to a PC 2. Find the BIOS folder in the list below 3. Extract all files from this archive directly into that folder - 4. Eject SD card and reboot your device + 4. Eject the SD card and reboot the device Folders by device: {folders} @@ -318,9 +318,9 @@ guides: root@batocera.local`, password `linux`. Paste the line. Press Enter. folders: - where: On Batocera - - where: From Windows, over your home network + - where: From Windows, over the home network path: '`\\BATOCERA\share\bios\`' - - where: From a Mac or Linux, over your home network + - where: From a Mac or Linux, over the home network path: '`smb://batocera/share/bios/`' run: [device] download_hint: From a computer, use the network folder above. @@ -330,7 +330,7 @@ guides: Option B: Manual (network share) -------------------------------- - 1. On your PC, open the Batocera network share: + 1. On a PC, open the Batocera network share: - Windows: \\BATOCERA\share\bios\ - Mac/Linux: smb://batocera/share/bios/ 2. Extract all files from this archive directly into the share @@ -338,13 +338,13 @@ guides: Option C: Manual (SD card) -------------------------- - 1. Put the SD card in your PC + 1. Put the SD card in a PC 2. Open the bios folder at the root of the SHARE drive (Batocera itself names it /userdata/bios/) 3. Extract all files from this archive directly into that folder NOTE: Dreamcast flash memory is named dc_nvmem.bin - (if your setup asks for dc_flash.bin, same file). + (if the setup asks for dc_flash.bin, same file). logo_owner: Batocera logo_licence: repository licence MIT recalbox: @@ -355,24 +355,24 @@ guides: # a keyboard. SSH user root, password recalboxroot or the one set when flashing 10.0+. terminal: >- With a keyboard, press **Alt+F2**. From a computer, open a terminal over the network - with `ssh root@recalbox`, password `recalboxroot` or the one you set. Paste the line. + with `ssh root@recalbox`, password `recalboxroot` or the one set when flashing. Paste the line. Press Enter. folders: - where: On Recalbox - - where: From Windows, over your home network + - where: From Windows, over the home network path: '`\\RECALBOX\share\bios\`' run: [device] download_hint: From a computer, use the network folder above. pack_manual: | Option B: Manual (network share) -------------------------------- - 1. On your PC, open the Recalbox network share: + 1. On a PC, open the Recalbox network share: - Windows: \\RECALBOX\share\bios\ 2. Extract all files from this archive directly into the share Option C: Manual (SD card) -------------------------- - 1. Put the SD card in your PC + 1. Put the SD card in a PC 2. Open the bios folder at the root of the SHARE drive (Recalbox itself names it /recalbox/share/bios/) 3. Extract all files from this archive directly into that folder @@ -388,7 +388,7 @@ guides: path: '`C:\RetroBat\bios\`' run: [windows] notes: - - The command finds RetroBat wherever you installed it. + - The command finds RetroBat wherever it is installed. reference_notes: - >- RetroBat records its own folder each time it starts, and the installer reads it @@ -396,15 +396,15 @@ guides: pack_manual: | Option B: Manual ---------------- - 1. Open your RetroBat installation folder + 1. Open the RetroBat installation folder 2. Navigate to the bios\ subfolder (default: C:\RetroBat\bios\) - 3. Extract all files from this archive directly into your bios\ folder + 3. Extract all files from this archive directly into the bios\ folder 4. Overwrite if asked logo_owner: RetroBat logo_licence: repository states no licence emudeck: - summary: Installs your emulators and adds your games to Steam. + summary: Installs emulators and adds the games to Steam. folders: - where: Steam Deck and Linux # EmuDeck functions/helperFunctions.sh:89-99 (getSDPath, the card's mount point) @@ -418,7 +418,7 @@ guides: run: [steamdeck, linux, windows, macos] notes: - >- - The `bios` folder is inside the Emulation folder you chose in EmuDeck. + The `bios` folder is inside the Emulation folder chosen in EmuDeck. # emudeck-electron src/renderer/translations/en.json:416-418 (b06bfcf5): the # "Bios files checker". finish: >- @@ -444,7 +444,7 @@ guides: folders: - where: On Lakka # lakka.tv/doc/Accessing-Lakka-filesystem: Samba in Settings > Services, share System. - - where: From Windows, over your home network + - where: From Windows, over the home network path: '`\\LAKKA\System\`' run: [device] notes: @@ -467,7 +467,7 @@ guides: Option B: Via network share -------------------------- 1. On Lakka: Settings > Services > Samba Enable - 2. On your PC, open the System share: \\LAKKA\System\ + 2. On a PC, open the System share: \\LAKKA\System\ 3. Extract all files from this archive directly into that share Option C: Via SSH @@ -501,7 +501,7 @@ guides: logo_licence: repository licence GPL-3.0 romm: summary: >- - A game library on your own server. It plays games in the web browser. + A game library on a self-hosted server. It plays games in the web browser. folders: - where: In the RomM library path: '`bios/`, one subfolder per platform' @@ -510,7 +510,7 @@ guides: path: '`/bios/` for each platform' run: [server] notes: - - 'You can also add BIOS files in RomM''s web page.' + - 'BIOS files can also be added in RomM''s web page.' dest: /path/to/library/bios # RomM 5.4 places firmware by filesystem.structure.firmware in config.yml, # bios/{platform} by default, and suggests {platform}/bios for a library @@ -543,7 +543,7 @@ guides: run: [device] notes: - >- - You can also reach the folder from a computer, over your home network. + The folder is also reachable from a computer, over the home network. # rocknix.org/faqs and rocknix.org/play/add-games: SSH off by default, turned on in # Network Settings, user root, the password shown in System Settings > Security. terminal: >- @@ -565,7 +565,7 @@ guides: # AmberELEC 5a3882cb packages/network/samba/config/smb.conf:59-60 shares # /storage/roms as "roms". smbd runs unless samba.disabled exists # (system.d.opt/smbd.service:5). - - where: From Windows, over your home network + - where: From Windows, over the home network path: '`\\AmberELEC\roms\`' run: [device] # amberelec.org/guides/getting-to-know-amberelec.html: host AmberELEC, root, amberelec. @@ -588,7 +588,7 @@ guides: - where: On EmuELEC # EmuELEC wiki (35b92c78) Backup-and-Recovery-options.md:4 (\\EMUELEC, roms share) # and Bios.md (/storage/roms/bios). - - where: From Windows, over your home network + - where: From Windows, over the home network path: '`\\EMUELEC\roms\`' run: [device] # EmuELEC wiki How-to-SSH-into-EmuELEC.md:38-44: root, password emuelec. @@ -610,7 +610,7 @@ guides: - where: On KNULLI # knulli.org/play/add-games/network-transfer: \\KNULLI, its share folder, Samba # off by default. The share is /userdata, so bios is under it. - - where: From Windows, over your home network + - where: From Windows, over the home network path: '`\\KNULLI\share\bios\`' run: [device] notes: @@ -636,7 +636,7 @@ guides: - where: On the Raspberry Pi # RetroPie-Setup scriptmodules/supplementary/samba.sh:49-52 (46128cd2) shares # $home/RetroPie/BIOS as "bios", and docs/Transferring-Roms.md:29 names \\RETROPIE. - - where: From Windows, over your home network + - where: From Windows, over the home network path: '`\\RETROPIE\bios\`' run: [device] # RetroPie docs/FAQ.md:193 (F4 in EmulationStation, its game menu), 175f5b15. The computer route @@ -657,12 +657,12 @@ guides: pack_manual: | Option B: Via network share -------------------------- - 1. On your PC, open: \\RETROPIE\bios\ + 1. On a PC, open: \\RETROPIE\bios\ 2. Extract all files from this archive directly into that folder Option C: Via SSH ----------------- - 1. SSH into your Pi: ssh pi@retropie + 1. SSH into the Pi: ssh pi@retropie 2. Copy files to ~/RetroPie/BIOS/ NOTE: the BIOS folder is on the card's Linux partition, @@ -684,10 +684,10 @@ guides: pack_manual: | Option B: Manual ---------------- - 1. Open the folder you extracted BizHawk to, the one holding + 1. Open the folder BizHawk was extracted to, the one holding EmuHawk.exe (Windows) or EmuHawkMono.sh (Linux) 2. Navigate to its Firmware subfolder - 3. Extract all files from this archive directly into your Firmware folder + 3. Extract all files from this archive directly into the Firmware folder 4. In BizHawk: Config > Paths > Firmware should point to this folder logo_owner: TASVideos @@ -702,7 +702,7 @@ guides: path: '`/media/fat/games/`, one subfolder per core' # mister-devel.github.io/MkDocs_MiSTer/setup/games: run samba_on from the Scripts # menu, then \\MiSTer\sdcard\. - - where: From Windows, over your home network + - where: From Windows, over the home network path: '`\\MiSTer\sdcard\games\`' run: [device] # mister-devel.github.io/MkDocs_MiSTer/advanced/network: F9 for a Linux terminal, @@ -734,7 +734,7 @@ guides: - >- Each console has its own folder, named after the tag in its Roms folder. `Roms/Sony PlayStation (PS)/` uses `Bios/PS/`. - - The command makes each console's folder for you. + - The command makes each console's folder. on_card: true reference_notes: - >- @@ -759,7 +759,7 @@ guides: - >- Each console has its own folder, named after the tag in its Roms folder. `Roms/Sony PlayStation (PS)/` uses `Bios/PS/`. - - The command makes each console's folder for you. + - The command makes each console's folder. on_card: true reference_notes: - >- @@ -779,7 +779,7 @@ guides: - >- Each console has its own folder, named after the tag in its Roms folder. `Roms/Sony PlayStation (PS)/` uses `Bios/PS/`. - - The command makes each console's folder for you. + - The command makes each console's folder. on_card: true reference_notes: - >- diff --git a/scripts/generate_site.py b/scripts/generate_site.py index ae861b23a..739c9625f 100644 --- a/scripts/generate_site.py +++ b/scripts/generate_site.py @@ -488,13 +488,13 @@ def generate_home( works_with = ", ".join(named) + (f" and {others} more" if others else "") lines = [ - "# BIOS files for your emulators", + "# BIOS files for emulators", "", "Some consoles need a small program to start their games. It is called " - "the **BIOS**. Your emulator needs a copy of it. We put the right copy " + "the **BIOS**. The emulator needs a copy of it. RetroBIOS puts the right copy " "in the right folder.", "", - markup.button("Get your files", "which-pack.md", primary=True) + " " + markup.button("Get the files", "which-pack.md", primary=True) + " " + markup.button("What is a BIOS?", "wiki/what-are-bios-files.md"), "", f"Free. No account. Works with {works_with}.", @@ -503,9 +503,9 @@ def generate_home( "[When a game does not start](wiki/troubleshooting.md)", "- Have a file? [Check it](files/index.md)", "", - "## Do I need it?", + "## Is it needed? { #do-i-need-it }", "", - "- **Yes**, if your emulator says a BIOS is missing.", + "- **Yes**, if the emulator says a BIOS is missing.", "- **Yes** for PlayStation 1 and 2, Saturn and Neo Geo.", "- **Better with it** for Dreamcast: some games need it.", "- **Usually not** for NES, Super Nintendo, Mega Drive and Game Boy.", @@ -515,12 +515,12 @@ def generate_home( "## Three steps", "", *markup.steps([ - "**Pick your device.** Its page shows your BIOS folder.", + "**Pick the device.** Its page shows the BIOS folder.", "**Run one command.** Some setups have a ZIP.", "**Start a game.**", ]), *install_demo(), - "## Pick your device", + "## Pick the device { #pick-your-device }", "", *setup_picker(registry, display), "## Is it safe?", @@ -574,7 +574,7 @@ def generate_explore_index(db: dict, coverages: dict, profiles: dict) -> str: "", "## Help the project", "", - "A file you hold, an emulator profile or a correction fills a gap for " + "A file sent in, an emulator profile or a correction fills a gap for " "every setup at once. For contributors: [How to contribute](contributing.md).", "", ] @@ -752,7 +752,7 @@ def _folder_words(display: str, extract_to: str | None) -> str: """The folder a pack or a copy goes into, in words: the device's path, or a folder of the setup named as the setup's.""" if not extract_to: - return "your BIOS folder" + return "the BIOS folder" if _setup_relative(extract_to): return f"{display}'s `{extract_to.rstrip('/')}` folder" return f"`{extract_to}`" @@ -824,7 +824,7 @@ def generate_get_page(platform_name: str) -> str: "", f"- {_fmt_size(pack['download_size'])} to download, " f"{_fmt_size(pack['extracted_size'])} once unzipped.", - *(["- You need both parts." if parts == 2 else f"- You need all {parts} parts."] + *(["- Both parts are needed." if parts == 2 else f"- All {parts} parts are needed."] if parts > 1 else []), *_unzip_into(platform_name, display, extract_to, parts), *(line for text in release for line in (text, "")), @@ -2349,7 +2349,7 @@ def generate_data_page(exports: list[dict], measurements_sqlite: Path | None = N "per `bios///` folder of the collection, named " "`Manufacturer\\Console` so the tools look in that subfolder, each file a " "rom named by its path below that folder. It audits a copy of the " - "collection's `bios/` tree, or rebuilds that layout from your own dumps.", + "collection's `bios/` tree, or rebuilds that layout from a reader's own dumps.", "", "A setup's DAT, `downloads/dat/.dat`, describes its BIOS folder " "once installed: one game named after the folder (`bios`, `system`), each " @@ -2449,7 +2449,7 @@ def _browser_title(relative: Path, title: str) -> str: # Material appends " - RetroBIOS": the home title says what the site # is, instead of "RetroBIOS - RetroBIOS". "index.md": "BIOS and firmware packs for RetroArch, Batocera and more", - "platforms/index.md": "Your setup", + "platforms/index.md": "Setups", "systems/index.md": "Systems", "emulators/index.md": "Emulators", "wiki/index.md": "Reference", @@ -2510,7 +2510,7 @@ def _shorten(plain: str, limit: int = 157) -> str: def _page_description(markdown: str, relative: Path, title: str) -> str: key = relative.as_posix() specific = { - "index.md": "The BIOS files your emulators need, for RetroArch, Batocera, EmuDeck and more: the folder they go in, one command that installs and checks them, and packs to download.", + "index.md": "The BIOS files emulators need, for RetroArch, Batocera, EmuDeck and more: the folder they go in, one command that installs and checks them, and packs to download.", "data.md": "Versioned RetroBIOS JSON API, CSV exports, SQLite snapshot, schemas, checksums and data interpretation guidance.", "cross-reference.md": "Every emulator core each retrogaming platform runs, the systems it emulates and the upstream project it comes from.", "gaps.md": "Current RetroBIOS verification gaps, platform-to-emulator divergences, missing files and documented source limitations.", @@ -2518,7 +2518,7 @@ def _page_description(markdown: str, relative: Path, title: str) -> str: sitemeasurements.EXPLORER_PAGE: "The records of emulator cores run headless on demand, each with its claim, verdict, the BIOS it ran, method, computer and full record, filterable, and as SQLite.", "provenance.md": "Hash-based comparison of RetroBIOS metadata with No-Intro, Redump and TOSEC catalog snapshots.", "explore.md": "Systems, emulators and installer options to explore, with the figures of the BIOS collection.", - "which-pack.md": "Pick your device or setup and get its BIOS files: the folder they go in, one command that installs and checks them, or a ZIP pack to extract.", + "which-pack.md": "Pick a device or setup and get its BIOS files: the folder they go in, one command that installs and checks them, or a ZIP pack to extract.", "contributing.md": "Add a BIOS file the collection lacks from the browser, checked on arrival, or add a platform or an emulator profile.", } if key in specific: @@ -2571,7 +2571,7 @@ def _lead(markdown: str) -> str: def _emulator_description(markdown: str, key: str, title: str, intro: str) -> str: """An emulator page by its intro sentence ("DuckStation emulates Sony - PlayStation. It picks the BIOS for your game's region: ..."), or by + PlayStation. It picks the BIOS for the game's region: ..."), or by its profile table when the profile names no system.""" notes = re.search(r"

Technical notes\s*\n\n(.+?)(?:\n\n|$)", markdown, re.S) if not intro and notes: @@ -3357,12 +3357,12 @@ def decorate_markdown_pages(docs: Path) -> dict[str, str]: def generate_platform_index(coverages: dict, registry: dict | None = None) -> str: - """The Your setup tab: every platform by the device it runs on, and one + """The Setups tab: every platform by the device it runs on, and one line to the table that sets them side by side (setup_table), which is reference matter and sits with how each setup checks its files.""" registry = registry or {} lines = [ - "# Your setup", + "# Setups", "", "Each setup's page gives the folder and the command.", "", @@ -4241,7 +4241,7 @@ def _share_tabs(name: str, share: str) -> tuple[dict[str, str], dict[str, str]]: how = { "macos": (f"In Finder, Go > Connect to Server: `{url}`. Then paste the line in " "**Terminal**."), - "linux": (f"Open `{url}` in your file manager. Paste the line in a terminal, " + "linux": (f"Open `{url}` in the file manager. Paste the line in a terminal, " f"with the folder it opened for `/path/to/{volume}`."), } return args, how @@ -4282,7 +4282,7 @@ def _card_route(name: str, display: str, guide: Guide) -> list[str]: return [lead, "", *terminal_tabs(tabs, args, steps=False)] # A folder on the card's Linux partition: Windows and macOS show the # small boot partition alone, and no folder there fits --dest. - put = ("Put the device's card in your computer." if "windows" in tabs + put = ("Put the device's card in a computer." if "windows" in tabs else "Only a Linux computer opens the card.") lead = (f"No network? {put} After `--dest`, " f"name the folder the device calls `{extract_to}`.") @@ -4309,14 +4309,14 @@ def _setup_routes(name: str, display: str, page_link: bool = False) -> list[str] card = _card_route(name, display, guide) shared = _get_page_line(name, display) if page_link else [] if share or (card and guide.run == ("device",)): - computer = ["## From your computer { #from-your-computer }", ""] + computer = ["## From a computer { #from-your-computer }", ""] if share: args, how = _share_tabs(name, share) # The setup page stays in its word budget: its Mac and Linux # lines are on the get/ page, the one the command is shared from. tabs = ("windows",) if page_link else ("windows", "macos", "linux") computer += [ - "Needs the device on your network.", + "Needs the device on the same network.", "", *terminal_tabs(tabs, args, how=how), *([f"[Mac or Linux](../{get_page_link(name)}#from-your-computer)", ""] @@ -4330,7 +4330,7 @@ def _setup_routes(name: str, display: str, page_link: bool = False) -> list[str] # Shown in the "On the device" tab of a guide that has no `terminal:` of its own. -DEVICE_TERMINAL_FALLBACK = "Or fill the folder from your computer, with the ZIP." +DEVICE_TERMINAL_FALLBACK = "Or fill the folder from a computer, with the ZIP." def _computer_first(name: str, guide: Guide) -> bool: @@ -4365,11 +4365,11 @@ def _guide_download(name: str, display: str, guide: Guide, extract_to: str | Non f"{_fmt_size(pack['extracted_size'])} once unzipped." ] if parts > 1: - bullets.append("You need both parts." if parts == 2 else f"You need all {parts} parts.") + bullets.append("Both parts are needed." if parts == 2 else f"All {parts} parts are needed.") if _computer_first(name, guide) and network: target = "the network folder above" else: - target = f"`{extract_to}`" if extract_to else "your BIOS folder" + target = f"`{extract_to}`" if extract_to else "the BIOS folder" bullets.append(f"Unzip {'them all' if parts > 1 else 'it'} into {target}." + (" Files like `neogeo.zip` stay zipped." if _ships_neogeo(name) else "")) if guide.download_hint and not _computer_first(name, guide): @@ -4395,7 +4395,7 @@ def _guide_download(name: str, display: str, guide: Guide, extract_to: str | Non def only_some_consoles(name: str, prefix: str = "") -> list[str]: - """The way to a smaller download, in the words Get your files uses.""" + """The way to a smaller download, in the words Get the files uses.""" return [ f"Only some consoles? [Pick them]({prefix}which-pack.md?platform={name}" f"#only-some-consoles), or the command's **{_installer().TUI_SYSTEMS_ROW}**.", @@ -4486,7 +4486,7 @@ def generate_handheld_guide(guide: HandheldGuide) -> str: "", "## Where the files go { #where-the-files-go }", "", - "Put the SD card in a computer. Find your system below.", + "Put the SD card in a computer. Find the system below.", "", "| System | Devices | BIOS folder on the card |", "|--------|---------|-------------------------|", @@ -4542,7 +4542,7 @@ def _platform_guide(name: str, display: str, cov: dict, registry: dict, no_list: if _computer_first(name, guide): lines += [ *_guide_download(name, display, guide, extract_to, - "## From your computer { #download }"), + "## From a computer { #download }"), *_offline_line(name), *_guide_install(name, guide, "## On the device { #install }"), ] @@ -5505,7 +5505,7 @@ def generate_provenance_page( "", *([f'

Catalogs as of: {as_of}.

', ""] if as_of else []), "Provenance says whether a file is, byte for byte, a dump that Redump, " - "No-Intro or TOSEC catalogues. It tells you where a dump is known from, " + "No-Intro or TOSEC catalogues. It says where a dump is known from, " "not whether an emulator accepts it: that is the emulator's code, read " "in its profile. Example: `scph5501.bin` is Redump's `ps-30a.bin`.", "", @@ -5542,7 +5542,7 @@ def generate_provenance_page( "arcade sets tracked by MAME driver source instead.", "", "When the two views disagree, this project follows the code, because " - "that is what decides whether your emulator boots. The reasoning is in " + "that is what decides whether the emulator boots. The reasoning is in " "the [technical questions](wiki/technical-faq.md#are-these-files-verified-against-original-" "hardware-dumps).", "", @@ -6996,7 +6996,7 @@ def _group_lines( lines += [f"- **{key}**: {text.lstrip(': ')}" for key, block in blocks.items() for _lead, text in block] return [*lines, ""] - lines = ["**Start with** the files of your machine:", ""] + lines = ["**Start with** the files of the machine:", ""] for key, block in blocks.items(): for lead, text in block: if lead == "*": @@ -7208,7 +7208,7 @@ def _start_lines(block: list[tuple[str, str]], console: str = "") -> list[str]: below = " They come first below." if _sep else "" return [" ".join(filter(None, [f"**Start with**: {named}.{below}", instead])), ""] bios = f"the {console} BIOS" if console else "the BIOS" - lines = [f"**Start with** {bios} for the region of your games:", ""] + lines = [f"**Start with** {bios} for the region of the games:", ""] for lead, text in block: lines.append(f"- **{lead or 'Some emulators also require'}**: {text}") if instead: @@ -7265,7 +7265,7 @@ def _romset_note(consoles: dict[str, list]) -> list[str]: _NEXT_FROM_SYSTEMS = [ - "[Get your files](../which-pack.md), for the setup you play on", + "[Get the files](../which-pack.md), for the setup in use", "[When a game does not start](../wiki/troubleshooting.md)", "[Every emulator](../emulators/index.md), and the files each one reads", ] @@ -8979,7 +8979,7 @@ def _install_block(name: str, profile: dict) -> list[str]: f"BIOS folder, then downloads only the files {emu} reads there and checks " "each one.") else: - lead = ("The installer finds your setup and its BIOS folder, then downloads " + lead = ("The installer finds the setup and its BIOS folder, then downloads " "only the files this emulator reads there and checks each one.") if profile.get("type") == "standalone + libretro": # The command fills a setup, never the app's own folder. @@ -9245,7 +9245,7 @@ def _install_picker(declared: list[tuple[str, str]]) -> list[str]: "", '