From 7dce58b7f649290da17432bacedde135c8c9b963 Mon Sep 17 00:00:00 2001 From: Geoff Bourne Date: Sun, 14 Apr 2024 13:54:12 -0500 Subject: [PATCH] docs: add a link to class file version table (#2779) --- .github/workflows/build-multiarch.yml | 1 + .github/workflows/verify-pr.yml | 1 + docs/versions/java.md | 4 ++++ ...tanding class file version errors.drawio.png | Bin 0 -> 19238 bytes 4 files changed, 6 insertions(+) create mode 100644 notes/Understanding class file version errors.drawio.png diff --git a/.github/workflows/build-multiarch.yml b/.github/workflows/build-multiarch.yml index e5c893c..fd84482 100644 --- a/.github/workflows/build-multiarch.yml +++ b/.github/workflows/build-multiarch.yml @@ -10,6 +10,7 @@ on: - "*.md" - "docs/**" - "examples/**" + - "notes/**" jobs: build: diff --git a/.github/workflows/verify-pr.yml b/.github/workflows/verify-pr.yml index 1c424ee..4b28897 100644 --- a/.github/workflows/verify-pr.yml +++ b/.github/workflows/verify-pr.yml @@ -7,6 +7,7 @@ on: - "*.md" - "docs/**" - "examples/**" + - "notes/**" - "docker-compose*.yml" - "mkdocs.yml" diff --git a/docs/versions/java.md b/docs/versions/java.md index 3fc66a2..a052c54 100644 --- a/docs/versions/java.md +++ b/docs/versions/java.md @@ -49,6 +49,10 @@ where `` refers to the first column of this table: The "latest" tag shifts to include not only the latest features and bug fixes, but also the latest Java version that Mojang requires for the latest Minecraft version. +!!! tip "Class File Version" + + If the Minecraft startup is logging an error about a "class file version", then refer [to this table](https://javaalmanac.io/bytecode/versions/) to identify the JDK/Java version corresponding to each class file version. + ### Release versions Since the tags referenced above will shift as the newest image build brings in new features and bug fixes, released variants of those can also be used to pin a specific build of the image. diff --git a/notes/Understanding class file version errors.drawio.png b/notes/Understanding class file version errors.drawio.png new file mode 100644 index 0000000000000000000000000000000000000000..ea40623014add85eb2ce527e5fc6565afe556a3a GIT binary patch literal 19238 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�k)x69$$p+#8jkB9{Tdlg6dyQmESDxzyWPa_mDXF7A zzV*}a7AM7T`)uT;Lo8mDuM;I;zcRCyg64{PTE>)qEjB2&GmgrG{{DWpf?xt`+}E=Z zqeQ3-{u&x9lJ=ORa@{IeTYhxu?-?g;ET_f0=8oO2(C4vQ`fXR9UD zyzZsj3MHz6D`zPsg_?9h$wt1qn_wQM@jo?7V~Z}%6;2heUrCe}OV^P8xqyv237L9+ z5&gR_S`boVA5ys~~wyLOwzWq@v@%;4<%!gC?x4V~|}olv&f z;{4~tuZA(BX01PeRRap9RL^gi5~ZHwaZRwtKCA==(vdJtY#Zayo^9yq$KvbwO?7JQ z5kt1WsPt-rJ}N?eChjD-j8t-IQubNe+%m|2z9!E#n6gS!Am#P#2L`%Xep%aCZ9V+; zkA$))2=ZX!?HFy1&)lhmW^rz?ZpyQYs_7k<`3XZuS$x5zCKRk@TKLn4uw5E`Dg1)l zZRy9P6bpTYYC60;VQzYCxEYwP@~;6bUS;X^{^-yvm)ghWG^oPj_l5D4$d~8JxU_8x zehIjLdF!En8&x>c<`JT^6QK9C_^rKQOz}^}~ zQknKe>fTSG4Q_f5*MKUYe$TmE`3gO~cSruaj^_I@zDk6vP;=s_Z`Y7(nCiCfWNOkW&+lPF@=J0#!$-}r zFfYeW;qdk-A#S<>2bS2NA20OrSXLVC^xGELpa*UmsIMj}9y(Vs2-H*OYRymP5S|$w zo$|J=bCnOBf)PnMHgj3-Vofo_RDI9`@a zV|#hr-SiNfd%K5gRrytMduI;Mv*-cw*^A-J9g6)S84>Uqd)qXf*}EY(qn3JJF;lCn zkHVPJu=wX+!t%N4LiC~ME0DIG@brXlyoptK_%lg+ymuBn$;Dk{^GPyo*%kyD*ucqI z47A1mdKaRk92wp5`xysVeSCD=VSJty*WO0G`TgOL*iZ+j%7tYPb<(jZ+8O=qpBvN8 z%Tzkn20XoDn%KCSTGH-F2DbWR_0 zxC+k~xJw%pWWuBfys^vm2_MovRQ7jfd+ZwumjGAgUEB}l<-iYZ^IdEKhn)sc47I6_ zOd1x(J-u@ldTMrdtDA8`C}3deQ~f69)vB4!D>Rqe*VjZpJ`6KSq7O6zFbYL(whhUf zcEMAYn-HW#nH|3sz4yM9^`~gb<{=tCTcgC46#=f`l%ksscOZqM+$($rpbS z)1R;Lo&Si8A@Su<>)?n`phaT5!Z#MJ3>j}l1mo~pnD^X-50=(&nSvOYmvK=Jrt(sG z0XZcL7UoUzzfYOHFC8slf8p%^zRrkH_oV(^bONQ>&Wt(CsiB?%KefH8;Q$9zWLR`6~9rE9VJ_O2Z7^x zK9dd1gU5PaZzbZVh+Bry6W6^xOqlF0bBAxR;7Hsfh2J?0^?Is5fZs|tU3qm;8JZcp zyYDP%NwsOjSG$wCB6RRIO6sKV;vC2gyWa>~l~UJMTU6;`{4gRNugfA*t5~enOTe<` z`>&LEI8BmxzOxBLFkabXWJDYKbCJH%>GX-?CEK(E5p|2!rLR?Q;wF~5QsC|Fit#sb z6-#busXqpKKJqj^v=t-CUlFL4`rdq*J}}wGqqUTW?_m`Y<~mCE{86OoMHDoH^>zqL zGz=#=T$QajJkEYoAOO4nA~bt=Smijorb(qIo%miyz3axSg^ieI_;aQFccm{PpSz>< zrNDA-q!$%#%V<&z^i#XsNas;{V4X^d%=E2NLnhrz?b5JXmYMUMncG;1X6(;q3jD<> zZm)HU)?||MCLc_D_09NE-mBWnp2{8Zo1~t#+>GeqA3X!-qbPXZX}(E#pefn-Drx06 zU5;5trIYK?;UN7Ng*RTCH)9)ry=CCeZ=07At_v(uhwdLFb_{0AW<_}yC#>Mz&~r&Q z+ik8y+A~&gk!~h?c5yy>+cYjTF1@s$KJ|FgZ&@byZZ%KlM=`KW{H4 zU<`!nAN7p5SV`|nE;wzie{sTZj=BXaO}}<|!RhlTW#XY=YaJ}oJ`6{VtZ8!E5it?u z>Dpw$JSVe<*4l_oY%ZT;dct}|8a^yN-VD;!;nRUV#f;2-BYTU4=ZZDY{Qb_mIqvpI zeQaL#G&9M{*o}03Q^qAMoqe}>!g)P+c!P#H4F?-3YVp`r=?~EzE?FJlQMi!elE0-e z)5xCU+)=o@ROKRTw@UqN7e09Q%?|9&bJTV-TnELL`*iZ<-LxjXr7LVANpu<#POY^C z#PUp@8)0<49GaOL1&XE{Q| zKFKXIt6BX)%}K@gkwR)J##lINYg@Db0j|i*1CKs2iCt)=?s2KGdV+}#l~J9B>~!u7 zrX-HzEeh!@1uHi{n>HhvdxIF*V_=Zq!A#8dN|PhaFNyUi?)=TmGW}H8lczIdU87b` z4|gSp4%?_5Ue)j|nk!KuC3jY7)$M-Yc;EXKEzn)uWEygPRp*f=wACj;tR(AXV?FWr zU=PA8FnBoUYF4@6a{bQdiR@nvMW5b$^}?{;fB8&b;Gnb_eQ)rM^1oPs@_d(?(L8mJ z6R-2$o3Zz~is4=9@bo=g_RY;Uoz2DUVXt6TWbo_yk%IbW%dBJC4q?$>7X@gLUv)R> z%fSc4k)wZ&V-ylpyBr$RbUZ|v$LcVqSsb$XhpV)z)9Iiq8j>0gUVt7l@0dO8p7TKy8a zkfdgAFP{c5vH6%YGZV4_Qrqi~teZzMp)tJ{*JcjhneBEzzEON70rr{uC1x65A-S9k zyZu$urDjh;q>5*Ip9(XWWSjk)uetm{V#4z_ZtKA$72O66()dm$eHh22me`?$7s@s? zD#^^N%Z+Ixeth;5qX8nRr#3|Laea}$GrrZQAdBM7Nl1_a$lj8rDAY0OZjzn?MVxPv zm69Y_I?we~{JgE2#A>pSX+pJazl=8N*Z2|qHuSgZEOIxt&@4LyZ=5AI^6q3f5*82d zCu!Z`niy#Y(-TBh`1EP+PJHDE4NdtFJqONo`ghmibWZ5&ZDjtuY`?(x7e!Dl|Cwuk z=<{a51@aosWYc4ri%Ert<8d$RU{N(v-#6Zda`*V}ofo&ZoK|{VpQo-Ii5y9p3&<^E z7U*D0a-gq`#6mH|srpc54*ud_YN#}Cub!s*^LLh}gx<3Zm`g1+=j@Nv z&5quIAu+D}23rc#ca(+M)fMXw9=R2^Zhw1?#NAr?;(?dD_u@+N#0FgkE+BxXX8~ zP`PSuxr1(?am{FYvGNWg>Dp6P#WU0jdJvE*UNGQ)ylj;<7%^+bvJY<<7;Eo@6_-$< zbUSkJqP{iJaVu^c4}a7B3U)QkUnGIhFvt!be~KepjCT1Np7q&xQ`S*|xJt`*f|kqN zJgYk?Fc^u_o~F%9L*Tqa73ycktK?%Pv*VSw>kvs}8V2UfBb@cZbH{h;1)6%I3Z+b3 zP^oNpl79{4XZPtdt}B;*QS{Cb3sN3<%pH+*v$*7|62yz|@a$>4*G-q>^wXlld@+qh zY~FrmTSABD+vNNVqL&3c;`?K@tP9JhN(j}si!P`qRY@>f^C(f$eClg4t!Y8CPF^kZ zdPt}T*sE|?$JEQUN)0%?9XJLurc&XC(CejQr-X6hE^@(P_qF!rhvL_rIImI>$1y#cpl%{s=Q7 zZ=1kkkf@xnt>snVf3y@vYPWG~Gfm2e8X=!97uj2w)S)?j76+vQms9uKvwiKG6N3g4 zdbYQljb8Rh8n$iGjijfACF>_8JpbZw&?)pO*Zx3lZ#<9FqtB4J&pwDYOE~+uW%#BE zlv4wm8F}kvGrPj8>Jm;73$P>o`URqIeW^=`*rFT`5qa*2hg;qt9{?-b+LW!<$Ytoz zcU?;OrHI0BGS8mypQ(wQAIFxws~IM513SVu0!VAZWm?E8f(E+;U?1VW57+gx z|CT&_AY+4t9XH@z7^4M0I(n==X?#(ELeXZgD$6muk?%!!EvpaWB}-U^BI@kOwXfJI7nsol*Z?Xv(Kq?yEx@Xi^p za|?NJRt{=MUfF=8k%eO9lw(iy((OZ4d2sN4Cb+|y#X$dF2LV&&Q$g$LXn3h&B9~(> z6?eexvoK?uwwIqCb#upPED5}teZcm(H?gEJM*=d7A!TPEiw^$SNZ7f?0 zMoIy$t*?HFI96NW#=|mr@-t?Ec1Ue!ouK^M{`+}mC4?q5O1iqL&YZ+-?JXYFTJfXn z^tJi!dBmW82ztUm!MP^w-E&-p(&FExJ#o$z&tFp88371kVeZFT1Wcg}MaOoT!>N2VN1XMIw_kb#xPF-)0< z^=(rQJYooMnB21#FhlvA@Dy$t94B>S3>)w|P}i5{G^ z=6I;W61DHqDI0UfVs!G|l0>J*YYP)320ur0rVM}?-e2Hm*P=MyfE z>}tknIn^uuSVk5rI9zYDZVHS%f;F5T=ICI8OidWho4ln-TTOhq;MRXNlI^sP>G_dg z{cv@2$*ApS;@nz8`nK3y9vFzKf#$9IQYKF9k_N#CvJAC#Jry)a{@!(emYBxC-zgC) zXWi*uG^-$@OC+xEOPh4h|E`!@=M#GZoZ=CbCGo`5cKDJGC#3=1lt#50NOB9QuK4xESQbE9c4a+lq z7udWO@4n9)^PJ{8MB*d^s^H>oo!d`kHJQkB@75GN6G@2Q(NU#B^0%x91ZQL;4is?7 zJ5oO?rcW(}Rw}%*OPKa^nIju6*PM2IF7==|JArGoCtCq|2a3w3)A8R$DwM+&%9jzc zOs+4@hC-4nx}smxJ`wg{Aw4mYZ(=;Jw=ca(DLrx4Yr>a9zA4BV<7K&1?<8-+W&Flx z#gM91dv`RpJHaq(dr3T{$kc^iEc?(k)8)}=F->Q~+TQHY!lqdg%xlwVvoRuiCuZ`i zUhF-Uan_mxwfz0PFAmev2KkMfOrh5rC^)lwt_Ac}f1K}_HpFhGi;wXdt*UPBxAc&5 zv1LvkH;2S^)A?Q~Gu^&%nbG6SSYCvOuifkOchlX1ULMWW3Q!-))<tUb_=pBZ&36mEG6m+uV5HbtIgA#tzU3jJZ6#crr!4G#SHbLGsaM*-b zI3c2$}3`%k|rmGNoPJsW54JI2D8PYcI_O;(v-o8(!|RjTaPvZ1(7G{*f$e_eek zWkvmQu71O=BhGd`{jBRiwa66H;ZJsqsLFvv5Q;5|ex!4H>d={%W=`e{Y4*yu2*W?w z+3`VxOJLk`c?^v4T|b0b=dsU(bF&mjy!(2Y;ys0|3YVi`WD+@(PI)=DeC5F%pQjm* zZe`Acl$I0Oq@?(uP;%pbOmVw+v%C6-rx{a&q+$j=BKfpX3<6@&Gu`d~E+dvx49$SrkIZpcjEHiDfiIihdyKrcg}a>U>lw<3T1zL!J=&&dNC=xUw9#lG-4Kdp9L(r;n}Y42M>6Gc1-4`zF(n{ zp@vfXof6_DyG>h*58|ILhO3XC{tW2h0T=qz!O+pF(bI#9OK!*F3X*sd^=!hf;#8 zcqPSDBnG-KVbJNInp~n9_~`fi5Ckbc{=PcnA_eZ6M@Y6N2qo84q%Mp=M6TH<>FCD5 zOYJmJ40p3dUmtU|NlQtp=G&MAwQU*Prg_p&$n-E)m~7A6AAAk))t9U*=Nq*yjCgKY z_s#r#DnS*{3)Y$Q-SXqO!8(}hfm(EWM~G5k8|OxVKRbJNR!j<5bJ~1zP2}N(r>nP! zdVBnO8)tvWr_On*CrNsRtqxong~FTj!Af~X#t}9fnpspoHeJ96v9#L6Ifn6Q4axly zE>DN8Dh%z)vov`BonY3wmx`|fP8SYa6eYltXDE}Is3-Zc_mUY3DuFQ;iOqqHc-?Q_ zV&9Icl24Ut7RO_q9=>Z6dipcaq@9pX*(HN?3clAwqaOpGX-Hmz1l`J&sw|^mGxZky z46v`5M$yx~S!m{S&+I0?kk)*!dWJt4-!HWY7f-vssvmQlh6Z80tJfw--!ZuFQFRY| zk7Bm0WD3jExEAb>$?7tI?l(O_fzFA${cgclzbDx~k2et;aB!9%&pDHxp^S5_o4SJw za?%X$j(H*FMxJGLd_VS)cDlw&c4NqAF(gQvotyg9W~QW4HtV|h^{jTH*b?UUF$X55 z`0B4Vrc#?@9$$w0E?!|k`n#OSEloP*b2Yqh`Te3wGWc!J)eJTdOPoUXsOD0N6lrk( zams9d;iABZu0__O04BO;!og#}f$F?Sed^(v-aEyC_|`8eqJNN8mr$uURZ`FSOWkIj zf5KP}A-f&{U?QykbS`8OE$7*OCX%^^z6f~Ps+2cDHX-}CgaBMxGOD^rM#5ofGOIOg zeEzF952R3YqpiBlE8FTWIrKhgkCKS-{SOtOOMs@sg6ppRxAhMv^fIGd^*>K|5?2&iIZ_fqRPy@e9Eq}j;8oB@AxFvOUFA! zDNS#`w8^e_n}d3cLGNhS_2 zNbk^ea4=D2u=}#l@o8{t6G!7c|F22*>?4I~0x5yA##S?xB&B8Dg_3EwnhY~4zhD5) z&|)O1wYdB6V8_woR!#xZAu(6)4+d@aq0A%#vUZ#O@NJIJ>;&o_d)En%@_>Ue<$ChA z-{dYwgUz_!V7*Szno@!j#w$Jixh~Y>G>LIIE_iMQ)acm`xcZi?@Sn+1za|U)UIS1~zj_UJ}+=n7x!c~pepZ274-Z42z6n&+QVtZ3T!7TKo?QCX-)bo**h(OuL z8Dt88A`J1#o6A`5Mnq{W%uADXdh%n+cpBLGMi#c-4BwjW%q{GoK`K>gYzRx8`}?U7 zu|!>x1)o{?jQ`Yu8SPEM>$h&DU||WkMyaqHxgv81gY{CT=Gs)=v|>opM9!tN4C5S* zDO{(V%Fr0CAD-&6_YF3lPmiGhtp5+>^<4DAd@OOpEol-UN^ zeZsez42w4j0n1TnP{tJYqjKw8L9Cnz<4%MOC7=-LP8vr*aseo9Ig7Yo>&X_6qR)rY zp)nRD=Vik9ipYsC0ss`jE5uXFmmv7h>mtTke<8GZ=zl`y01#k%J*kz{e|Vk0@K>z% zUopYmQ=`QM3Q#Lq!meL4Hs{_46B@&>5Nnjq8LWB$wd-nFX1mlpamWjJV7S)W<2&J^ zc(iM8;VO;|lREq*u=KTFpv<_sbi)`$@`sAdCo=z`rKq5q4>NHzDFEPD9wReR0PrlI|=NmC z4*7#11^7UPa4+1+NK&KYw#s$s{jtt=q%2D>mTYI#hN1yb$9_s;Gpd9;_TiB_sE^}V zR^%OAk!HTeRf}N0kfZf4@vWC!&Jv9NnB2XJ9D;vrN@C-w6po~H%Knikoo7hCek#_M zbtYL4x(>bGoNx-X*Beeuik@l=5OWq*BQ*VI+!c}Sj5#nj0DZ@7MjKvgqtMLtc-g0K z;w@HJ|M|QO%P!eoeC6@(v~)YOwd}_vSOQgA@{4St!(#Z% z@DitB0<8yex<#m1nMp18E^jZ?id21`D7iI zz`$kP94dKyG%sD;mck)_O~_nYE*4OAR3dt=KSC*7>UfRhPWT?p(GB?r2pwB0_L&?Q zBRj6B8{lzM4Wa849Hy1LGw{A#zbWM(pW~gbVbO4crwt~DH(L1)Y>h0uQ@lD<;W&7P zd?QFLivbM8AEvB1;uc$`~Dpjs@(PW0=E_* zTIiPwROQPT7^3gnSy`I9{l79Q|?ITNh}&G4{-i|Kuth` zX|a;b2{V~;>6g8P1ncU+Nf^#suMa$tKX+Z+8_wu6i0W&QhhYuL)+u6P5X4a?E#fu4 z6{;YS_8E^2+uJp;2uWiKJ6cEQR{?NdAAnuLlK!4GlWEBhSId1ZGei1Z|FH5yX1sbh z^0MOn2HzEx&j>;AyWGSp6?Imz%$UN&YBHo!C}wFwlpE);lmI&U zot)}4{yrtoLF;^*Q1;a}S7)~;+kYaVvSoJ9BdzB?6ax=v5BoSKwl^Cu6a)A)qK{GI z;S~7dg5|+%Zm>yHp>DD3- z*H~y}?%?*K!{(V2SnA18csP|6D})88F?@?6mhI#XB9_fs_c9Tj`rn*_h)j@}7P)bj zE|%#e32@E2A0r&BhhnEk&TnN(8NsAr{s^+gu%CLN5G^e9$-sYLJ>A%FE^W2}2Uxj4|YB=*J$qjib#s$xAs;y>3-Vu%<&*G+(|RKE$qvjv)i z&34K@RFP67i^}_W!mM#UvxS4Xt9WI62W?A+zDurqKb%ge9|q^cByQjL$!H0f`9IenA%FaP?&F`} z^BW+M@6S^k{s(&0ItLp4b7tf3#PgmNz?bthEg@i%)Hwg!Y4>@0cad=JIm^rVoC8XG z5n-_8_<2X#m;&&4gV;O~YtcMEvT}D@{OWtSd=2~pnIo8>OK4M30G%)M{rn4a{@6!v zJ-t$VttIjA-!NXja}9J5DF*EVXvz|bh%=Q6V1hn)tXRhKkPf`*)WWj>;S@MpVgc-t z@eD_4|<#JRyRSG00ZkGGR z=9cKZT0<@So_pW|e?b}%P5_?&V#qj4G6ehmIc@+wEgxoBHgnNpwP9$j|FfnPUf5!h zPR(RGW7B4QZ|rK7L$e2^!aM&n4`$6P$KDMF1;ZCzXww-n;@cA|`n;US>jXA#2izIY_?{*?Q1Z=;j8v8-2y{OtQ05oofhT`oGBqW896%7~s^&Wl%GQTKoCmz5oVSz-4QJpP z5JAxJ@g(UFnaARQ)6x&sc~1|pfMQ@Exz9Xd#4t6I(aW;fkN_CU|2>pi)zR(J$d&Cr z$yGJal)D(Gb1ujtul{LNGu|VM~1c>u<8_ z%Fv;KG42T6%cv^!)MVAk4?i8DbdjXVpk5w=&1E0A0&Z}>%&IPvF_2YIB0~;?30xgBh;q@eTP`WAEKg=Vfc&Qk~m^i!1Bb+}*--U^_$k zCI}ovEs{L}XH1Jbxal;EGdjbZlC}eDLcqz|0{)`oc~b8KPDMq#xPvLoR#)h`RJfzb zUSjZxRrFTEIP12l|LVimljmRZ<>$?gYyuZv7ZVP(s;*RcJU3AMxzOJfC9+P)-DJp6 z_soe%E-O9OMtP5q{aCom!32r9LMxRhy|2x7&#-C~0m+}wlCt4@_f!4t_hhB;i~+ME zxcJtBl_23jYzt{%>b>4i^Z9hg-O;0b8|Oxl*6|dXt2QXxH&eq`#57~^yV8d0|C|@4 zOY3M}t27X~F6pVnM()rZngEtF;LE9Wn)x1gzks8NZ1{{XU_D)hq=IRZ5?{hJh;ks9 zL2l=YGik&vND26)v7L7qNsPhE-+?Na1v8q7xst87SR}yve}av3TIvC}V^nGnTM`_C zq^j-{&cwr44+J!&rKs$wgpyBV>9?l+CZBS><=wp;81$V=eD^ds-Swb(w+}*k<>tv7 zEU!SZQtd!osb1UA>rZmfp(ydCON5g*ty2*$EL!X&0ArAg&b|MaTJ{1JiVb!Xd@#Lq zKzV&GKgGfu~KY?{ndd~4jV*3&K}h@#z|QkGOKHBxH83sBn(1iRc5@9`^%6w;9D<+_4q zWv~+=US{?t51ay(GcXg6q~!_dq2ugdxd(4wo+Nz}OE^*0I)$8&X^{m+E%dTc>x0!x zNW_2ayPD8gNP|qaVGEG|8dsO|R0WyjrU99_5rBLyZBES|RY{p6;d4NHeq7{N3R;MA>*H&<{ zG=X-l^=QA!;&2I!{kZrO1E@rQAu@x7>8ct~P41ze8o;fHpq?#pdM2oJ{U|Nm`>A;A z+lQadZom6u>!0cIm8(6kKAWArb;Iftr4AyZH+N@5TLQ!I)WWuG2ZiS>PQtE}p1cvV z{VI@YS-x@lPXX7s83jSi!2Nw$3h9eiDk!jA0&am(-Q&1Qrph^N@3j8DZzrOhYk1e2 zADO-R(=Yd56Sg*1lvmq*yR*1>OXRAzGS_E0e#rU>vLU@)yBk;sub5Hiy4pcunuAo} z5pA>Axwc=puJQlLQv>dGzm!qvR?Kf=`*)eRb&2FM)~R;tEmP-r-#WI4mo7$xMP-F2pw*Zt4$lNYy1zrI%Qv{-Ln-#QudrgyauCSLk7{hpEYt>A&l((b zIc~U26jO-0@e;;c`Ty*rj~u{b!( z_595LRWUEm8veZP+;8i8oadGQa~}KFG@DN@o*p+1W-)R6bh-LI2e_9ly+`U3sQDQG zuW75o1kT1Ka~An%IVv6m4n%O>b2Zp-3>b`AJTg}s9XNn2rw>klbAkI5_wy$>MgaMT zKC!Q1Y@7v5^Q$