diff --git a/records/track_10min_16mb/2026-04-08_SP8192_ParallelResid_ScoreFirstTTT/README.md b/records/track_10min_16mb/2026-04-08_SP8192_ParallelResid_ScoreFirstTTT/README.md new file mode 100644 index 0000000000..efb9f60e89 --- /dev/null +++ b/records/track_10min_16mb/2026-04-08_SP8192_ParallelResid_ScoreFirstTTT/README.md @@ -0,0 +1,47 @@ +# Record: SP8192 + Parallel Residuals + Score-First TTT — val_bpb 1.0822 (3-seed mean) + +**val_bpb = 1.0822** (3-seed mean, std 0.0005) | **~15.99 MB** | 8xH100 SXM + +## 3-Seed Results + +| Seed | Sliding BPB | **TTT BPB** | Artifact | +|------|-------------|-------------|----------| +| 42 | 1.0857 | **1.0826** | 15,991,486 | +| 314 | 1.0854 | **1.0822** | 15,991,486 | +| 999 | 1.0849 | **1.0817** | 15,991,486 | +| **Mean** | | **1.0822** | | + +Merged SOTA (PR #1019): **1.1147 BPB**. Delta: **-0.0325 BPB**. + +## Novel Contribution: Parallel Residuals + Score-First TTT on SP8192 + +This submission adds **parallel residuals** (from layer 7) to the SP8192 + score-first TTT stack. Prior work had these separately: +- PR #1413 (@dexhunter): SP8192 + TTT, no parallel residuals → 1.0828 +- PR #1412 (@Robby955): SP8192 + parallel residuals, no TTT → 1.0835 + +Combining both gives **1.0822** — better than either alone. + +From layer 7, attention and MLP operate on separate residual lanes. A learned `lane_merge` scalar (init 0.5) blends the lanes after the final layer. This lets attention specialize on context mixing while MLP specializes on token transformations. + +## Full Stack + +SP8192, MLP 4x, depth recurrence (loop 4-5), parallel residuals (layer 7+), MuonEq-R, QK-Gain 5.0, SDClip, GPTQ embeddings, skip gates, score-first TTT (3 epochs, lr=0.005), brotli compression. + +## Compliance (Track B — Score-First TTT) + +- Score-first TTT: every token scored BEFORE weight update (PR #461 framework) +- No SLOT, no n-gram cache, no pre-quant TTT +- Model frozen after TTT; standard sliding-window eval +- All four conditions from Issue #1017 satisfied + +## Reproduction + +```bash +pip install brotli +MATCHED_FINEWEB_REPO_ID=kevclark/parameter-golf python3 data/cached_challenge_fineweb.py --variant sp8192 --skip-manifest +SEED=42 TTT_ENABLED=1 PARALLEL_START_LAYER=7 torchrun --standalone --nproc_per_node=8 train_gpt.py +``` + +## Credits + +PR #1394 @clarkkev (SP8192 base), PR #1413 @dexhunter (score-first TTT on SP8192), PR #1412 @Robby955 (parallel residuals on SP8192), PR #1204 @msisovic (parallel residuals concept), PR #1260 @dexhunter (MuonEq-R + depth recurrence) diff --git a/records/track_10min_16mb/2026-04-08_SP8192_ParallelResid_ScoreFirstTTT/submission.json b/records/track_10min_16mb/2026-04-08_SP8192_ParallelResid_ScoreFirstTTT/submission.json new file mode 100644 index 0000000000..2fccaa013b --- /dev/null +++ b/records/track_10min_16mb/2026-04-08_SP8192_ParallelResid_ScoreFirstTTT/submission.json @@ -0,0 +1 @@ +{"author":"aryanbhosale","github_id":"aryanbhosale","name":"SP8192 + Parallel Residuals + Score-First TTT","date":"2026-04-08","track":"10min_16mb","val_bpb":1.08217956,"val_bpb_std":0.00045881,"seeds":[42,314,999],"seed_results":{"42":{"val_bpb":1.08261339,"artifact_bytes":15991486},"314":{"val_bpb":1.08222600,"artifact_bytes":15991486},"999":{"val_bpb":1.08169930,"artifact_bytes":15991486}},"hardware":"8xH100 80GB SXM","pytorch_version":"2.9.1+cu128","technique_summary":"SP8192 + MLP 4x + Parallel Residuals (layer 7+) + Score-First TTT + Depth Recurrence + MuonEq-R + QK-Gain 5.0 + SDClip + GPTQ Embeddings + Brotli"} diff --git a/records/track_10min_16mb/2026-04-08_SP8192_ParallelResid_ScoreFirstTTT/train_gpt.py b/records/track_10min_16mb/2026-04-08_SP8192_ParallelResid_ScoreFirstTTT/train_gpt.py new file mode 100644 index 0000000000..f08c398414 --- /dev/null +++ b/records/track_10min_16mb/2026-04-08_SP8192_ParallelResid_ScoreFirstTTT/train_gpt.py @@ -0,0 +1,2 @@ +import lzma as L,base64 as B +exec(L.decompress(B.b85decode("{Wp48S^xk9=GL@E0stWa8~^|S5YJf5;KRK%vt0l*n@VT6Qap3bt~@<3h>ok~)Km^%c^ys%R{D_%yAk9-_tV7^coUOo3$w>`(`ci)t`2F7>r>Ltx>>S2CRw|7ov>Wn1e~_!RLQ=%V9g?"")G3yPsu%SBy!lj1PaC-x%dDmCDOZ^r^!)+WWz}ejKXTJ#^U6Ra!};QocHHXQC+4UM!QQ!-N5Xd|%~a(9)bTYIO+>B~8~@lqmri%^""qEkQUy074Rh6w7V_#^s9J-3BNA`G;qyR$LYcI?e+loZVWi~B$n=TKFp{%SeHYp{oNWh;U@Ahk8M2$OU%K8B$lb*dRQXd-GR_@*KA""ZdRdwSd#X_bO(lvJ3fp9Otblkh?o!zlDF02+sRjLV6IqG{ieQx44UY(f20c)^AD5kE{7_@f9?Q-ePHMY$wCTcn5ij2k?>T>CFcZ<|5Bh`%hA!j2d4G(X-Bbwu""<(#drck2`tR2eo$wi$p$UEHkQdFiFmlJR#zIG@3*sm""dlqZ?s>Cn@I!i44iGk>T1KUmKDUWEJXYFF3Mh*&Tbca$esa+z^`enxeV%UmK_#Ex_)>$lBJA(Wj|4yV%J<~unPL@@@KfP=""NTcv-SVPiG3BDdu=*>C1izrS~RvqEe6Re7Xf)zp2fR3F%Ntl(>3N{Nxb8vzZkhK?{sdJ*Sy2p=iolv46?tI""C=EiU8Pg_OBclNXueT8CfKN>_gcMZT{nNc@rq}9ytq&fPOKt-x5!M>DdwApa""2KdFhwJ_Fz=+)LIFNqPpJ)|apqqa*X9=9uufcW""!~NxGUTALr_QIU$|NWf7JrxPK;nPQMIZ0fa8-Q&{)|Z)^m6VtU4cDZqwuWA`^Xm7L&I`o~I&Qe`9|tCCP$3G>sq~W(pn7GotUAaw""-n!PV6QqT83$FAczS~pAV>lTn1({N(YY!s&4d8?FyQVbuHM1KZ""d_rC{;yM=1|2#JGx$F_)1Plk9NO5SN`>=>nD#*p+;^(+$30Ht4RcfLVU=xdqv-?Qa>QOfzUZi}Ezjp$IXw-CH&H$cy4_-ST^l@js""oxX)ZJS5N=yR&pEzETnWvVXD7a?63JK7}kY(JDo%F=ea!qu=H=vjd#qG1iu=;@""lPbEUaia^$+U-M>)81R3UMNdZ(9bd8_TNKDAl0a>*Hr(LVog~-0hf4X@4WmW6}3xW<4?+sl84oo%#ir@ABXOdR;&~98kf*0N8-Z9""uKrDR5S5qm6psaqp~CFo79+XaY?Y^xdSGSP0fgl-HycBoc|Hecal1~F;*j-x1&MN~b{2||Vto3iph+m!&1M{3-r&vt)FMe*mvJRH""3Fb^Fq2InUdS-V7Ss!o$veeLDle8CNv+_l{Avc""#AyptT%;{S4*iU*++=k*nj|MmFH9eM2p)4}$LyzKQDZ-tZS$Xyu4JfY6W_FJ{9itB^`e>V^3A9#aADf&-E|!@?y*JJyh$|64IN-;""^N8t{JFLyeSW$7cfagBcr723liY(dGAX6Fq;9`e*S(50egK<|&=#MX""LgW`M7Pf+%ady!#!iDuIKqoh8aVeQFExT9GstMwYm=6u-`i}mj$v4EVAM-%0eVln#-`g7-aLMo8fq1LIv#+nU21`9ux+4nEQp^sz""zS>q@J&qQ_LaUPR<~^UY53;p2bTFsTuEXu0a1w;HL1bQ{K0W8<-$@iLgS9AKQo|Hn_#ch1$imEH52KAm!|Vy_jc+32=jPSMc4F>Z""W>?|1CF""CBgpe>ROYcph+DQ4_;U5Moh{Du6NF0{}fM2BvCN>h#4Ed^H6w5e@EZuE5?W*#~q~u^;TC_@dZxw8C5^jN{5NcV;)&VP&q`=)I?`6""tQjrh5f4d7EN#blBog(kl8l0i7>;+oVPKnFo_Lzlq?069Rh$k5uB7~f9aAb+?RY3;i-??HUze8UAy@f~6%m)-;am56do1JTs89~L""mU_S0vS)ozD2M!cfeMk+fZ!SWK0=88kJsu_(aiPCKFnN$xSs3-c2T3>xFzLx1)N`~Hi{QFbCltjYGG+|<<G|u?_k91My7vpDYpo2(^yfE{K(fa6m1?+btlyMJjKRXgX&UFZthQ__VPw$zR3cgE3%R0WxBKS3?W#3kPY@rTC(uq""*~#Iik|hyPI9gS`E}a-BW`I|UiqM7`NJz8v==|t@UG}pK^T$g{5^}kLFo>}!^YRnV@@>jMj0(qh6pZ}8GFZbr5Txt9P_{@#HrDTZ""P6P1>E4K?(qmaND)K_jOanSa5{~UT4+94l?wePT}eO=^JGG8h^D=&-4+m&)S)8dq39F^hy8*CcY8(OJgd)nX*C7iR>?Q=ho&orQ3""$2np?DX#a+!V5pueiTv}wFEIn>Hn?N0pVq#8wmi3vIIYOH2@QT*HDgJwK?d6L&Nc1D?4tC9&m(0;}-Iu^GoAcK+C&&ThG6pey4wN""xs@!eCAf?r*lQXP=5@u}9fbo`=-l>ZazH2X2b1%gZ$H;~Ze}RZP?6HPV+e`WB~Uo<-Ag*LahsLRGm(J`#Ehw>Wak*1h*T%?AvVA0Y3Yvz9MPOkck%UFTVMANm|3Y=J$H!tqwA{O""?aQhwm0nZG$cfHZi5nrcs*!ef5=?`58RNklyFo3w#tCf62C1*B>6E?QSd=ZATnc6+PDjs2T`nv}o9%GM4{1svstns*;EDk#4A|Ej""2a_>L=kvIbjR{-I6Rs6Z`qFe>-NcbJTC+0K0FYb5`^A_N3_nhwhFZSwTA%h&-MJ5w)Lo0%AX>o*KqmoT*ky9D$~hZ}EhUW(x$%""QNx%tV`}6>7qL}>y(mOUce>Kj?|3LOVqNAGLMz7t1KQiXgtuk$aSGxg8?gwdPp|Te2pE<*)+9baIgJAKE7_Lz;AlMcxRAu3MQh%{""E{w#E!1T&w+OrKv(!m7RvciFQO`TpgGq~#Gnh(DA$%$#BfPuabpxx;Z`p1NB!+NT8oF2SlN`a?U8GZD2S-Ev)b#Q8>DV9J@E+Q`)"">(Y7RF>WZ9807R_lc8<7Y&P8+w)krHdS9%7f${gDes~VG1H<69omEREvMY#Grp1j;^wa4eS}W+@?wcJ&T{z{-0#-JilR~g>O+n^Y""$c?S3^e<`Lo82(YD^_PoSvZF#^ZmLijD@~;0TX>ouHGq(&I}t@o-x?p{~e_44tV5Df|0H8hf?WDW`F|sA5Y186ctRGNi77;&&^O%""6?i7;Rh>iGZ=c`;@*Kr`deN6OoymRmH=+bS$sa0Lc?iifo}sZGGIS2hswcn&f9R5xwZ<$sLp3%k$e9Lu;$ek*LzJ_g%dy?+a}bt~""Dl9IFILeGwCyW81AchHv+#LFd0$DO^5y_24E~r!8O2&)9~b46""j~t+@&zaVfsn!(Ueb4x=?+d>$9li4h^CW>P9QkEmUz_m~e=x_6)U5wPoXtsGvHvGQlHSkmt{tt7QzgB_L~W|NoJweR^>fo{`7$rx""-+-I%BAtV0fFIGJcTaR#wlW@ZGPwtYMlcry7xY)WiBJx226e|`TK8M%v-4w$I+PK8NQy(V5KnT>jjK5;z<aa""7oaiN*^%uLKhly#(lL3=jg6~6@^aLm-a>T!EbnW1pCk6rVRn}n#vC7`r$fR=*VJz9at$x>nZr}INf6#zz-i7s23!))bfB(%e9%nt""j~Mx*EYhED3jO-P%b=A-gS!EmVmY8$lJs6w)SU4O$UNwI!*jamf2p_!AxRU=H"";>zGuWolR}y);3lr5u}`70#C#zqlLnp!WHedCB$w?}*_M@aC+K2~Q%~3YNc9BWf_)vfIIKBu-dMNnA*nMGQDrS!{(g%-Z|P>qD{&""`JeGgmvA!)-O(liEb__uOCH_85q0vlNNb8;7t2*~hjQAoM5q9k_BA!S9Mvm%@?2IqH*(7Elo~HhO8#%NmjWj08N*;DwI1{*K@@pd"">C<8c#H~C%VphDpci^0Tgm1mBScEdHpVc8-RQ~IVMZ@m4=3L""d25vUaGaoXI=qqbTI$X&Xu9d{?Fh7SygpwJv&!hQREo2f;+k*mRCK-7ABRQq`K}r}o8IF^RbZa_SX|#hL%BV^hwn0LF7PKx;kB-N83G""{nHiw{uS1IS`ogjXUL-Az_r@(<9`fZ{Qwt~}N-OUr+*1efP=PrFC9Y4IjMqK=_EaRM&&ipO)qF)dv"")3ZKuSHIt9AAC((ilqT*Pfk@|W6#Q4P$^rvN}W;R|NfsossrySuL2Qsbt}CF(lQ-c(Y7K>&B3AF*jll6s3tQ_p%VJFmJ?Xr!aHWU""BUR~bWEt4&2@rnuRdAhh7-$AOq+HRse^V*j`DVhOh5OZazY3hj)w|DZ<1>!Dg7LmOqkWG<4O)7jzmpmhtq^VWB7rji!(wO2u?0)Jha5d0?0*42;~FZNwE+gQ_xteVU^OEsRS7n22#ruhu7D*8UEsw}DMk2Gic`E)84%U%!VI""azw3DHI^c0ZY9WKd2{7F4EhEE54{)sTGVC$A!u$Q>PXD&vQ>=gdLP@$rH^xi(46Y~l0B}(BkZiwgJGJ4Vb0Yo&<>m4aODx}D@3VQSkw>*HiSkUgK`e&~w5oE!m#k$R=?zV?Hipk2N9FsY@mc~q%Zh@-9feaq()2ib6R7wOO%7MnFr+(D""g$dYSKt_^?f!=B}V?SIYkFvjrLrm{<4sODWZmCE|iaV~ryf>bHR#Jsd8T)nlEu@!ZxNkN@-Vt`{wERYNC+u#QfVgRb!ZDVnsARk@bSH1pdP&QD1iRNa~ko3g@a-lV`b_JkUae;Ktg?dZ!l{wA-@4XcL7?pz?HtS!7TW9reOq4gCJ_~f7""TbX6P{adpsCMp}3BJ;9DpG5tr4;MG`fpwM(20)hWvWB~_|`pv%zR_uA=xInLzf""Y?6J7#l=bA0TLb`jUEmTmm)su;+D8~m#FQQfuf5}{cK_w5iVM5!08ohy{m""*QQ@ehEhPYw;H<_+a^7ZiuHy7ga&%*Z2mLE5l7+lB~J-Jm@PZdy3&""7W=^RV;nd4z~DBzKqDL@X_8T^14M>f<20l`OHR#oE93|bj4R@-VGf#p!$>m}W$IjRi;EDfmcxQu(}y<}126{en1j~WwX?^kJZMyk""5HL0oy=E#nL&8nlt3w{Q4B0M=&3#k>Bel{gh~&_M^INv+X;!qmRkjQ$UPmgGx*Js96iZC-s|^;>v9%jU%?L%>`0Zs|&1yP#*#~sI""Fol4TYZI-!c)B!%`6R1&+!3vXy`*^pY4&(}9)dc&_|Znd&nq>CRW~VDvU5Y)0%T#N1gkFXKq(Tuo@cyKt$+w|{Dkj9a)@et`}~Tb""+mU}vt&pcTr)DDBq3BHtnznF_zZ!W!{AlF3@k84;+&;4sdMMC|!BdnNIb&^W=|a%5CPo#peY>e**x!J!Wh>nClChz?Fh^Tvm>whD""d*hH`v;!91!WF*^r!2y6E--V`f7q^TkvP-s9;*0-^!Hay=83}$8RDEHv;K+ixLgPBrJdXifpbUJbK!KWTxXe1t6${T*H""zZ*j-#7W$aPIG=WO+*6ojuE@{4k?jn!P$kjYK3yAUt=^~>ga`aLqd<$yukJ7pO-lP?7XN1K8hWl>!v@z8H!aD{Rvl*+u1vco;vGe""nr9K`?B|Ge*bQJ8tXaN-?P3p+&P^^c4d05I-na8b$)t~R7Nr@$0nP|Ld(QlJ(GK6E#B`KaG@?>%2xq^P%WPUWdxYgseTo>yg!OpL""MK_7w$Bt1e&CuhL""RV9MCpKgc3r=JLqPW=ak{P!P=KFHHp;l>OsAUq@$b7~*Sy?#IQ`maEizHWxn;`FPOSM-J1^nzuu>|1#w-Gr(aQp""$}z@{?FGHA)tBJKpi?Y69d9h1f-dw8^ZMI~th)6zg8Duyma=Q%+#?jS%9{yJBV6BcT@yak6VPg-3+os;s-3JCWqL*x^gNSFX>BG7""t+j*EZ;=!Ar|6w(O%3k>g0~kWlCR_k^`27oXUM0FEgQjrX=KEiXfih$$`RK4JWpuc!D3Y*(l%P(N)F={sUP--mJcRD#)nbl@Xl|2""ocVVCYg#b_Sg**ETL+KH)ar}&X7GO%!GKo)oLgbD*;|q_FiO1=$9w>9t8hibk8YsZd4~@sNbT03Uj4^Pmb+>_Q>a-CBX2T{ek6i)""5ciK?t^K1PuiC1nRP+%olX5!%F$?Vu4Bn~>9v8)u_~)rGB?NQGfuh6YBG`V;oNSfi@e-*EhtEpz#xP%7J$A7?0oUPF<7KQ4#KLUm""{=b$K$*kcXQ@6a56%|yXm6EGg(Gc{N3z^?JsEe!fGHMs""{7R^Sf&3AMgOH`5d{ESGCR*38MTRyNC~+{3j6=DJsz%x+v1_XH)MJI""T+6xy4HpHvq3!;s_@DAHLPYk{*Q1k{nP};kYwS_h+%3hPZ;4!BiA!xP)nbPDmX+y5TrktVI%9*OrXRo5zCrP-B)rLVZlAGD)S7H7""Yu3h|G!H_$zwRQ1Vz&WaP?ylB!svjMi@R-u8h>*$9}Lh^P;6X7>NNn>-i+>NK-n7XP~oiE;DUN!fmUx&z8-KtvxGak=1}PQ&H!~x""zC`FLhyDnBtk5G(J}I){QcA99T&Qz%aF&QrtE(rzEGa@b{K<}C`u1H@!_fd~0S;~+=Frrot!Jml7w4)Fo>)>88vZR&H@chj@d<6M""r5WMXRRV#3p%=_1C;cU_?FSB^&zT@@CLD+|BcR8FrQcCFy;#`*wCU`|wng!g=`&FV2RExFYf6AQa=vqYLvw$KScxq*7H9G}5EGsG""!ea7&pS<@%PC4}!gl|{M_b$t87hd2O#~!6;Af@gyrS1UfjVbO!!`fEDPVNU#l2nz+0TEmH{&-hNFT6+p(EW-gPcs=-41y3+(m3u^q{0fk#!mrS!5;J)i!QHCW(ecms#SxWT5Qj7;AL_|KFI)jy{Vm""Vm(sAW$0FQe1qk3=jkgfE-35O?SH!&vq<(61Ui|h@;H8W2&tLUxh;{JHxmCto+|+xrSX<@VWiRvPHy%U)tOWE)+^(kIBT4m1#mw5OX^MkZrd$H0*#GnT*URL4Xe4XNBw1F@8ElB1""hxD?q&2+L$X5d*g(3TK4u<(?kN1>8$GOj3K|GaGI#HhYwF0{CPagqADf_gDYJ_3G&Vl01$^jYOG%=m7HXIm`vPTca51^jd9RJNfz"">5nvRT*1uw(;Sbfq8!{&_N3o1xP$f7oFzA6#-~V0$kn>6gAPx?#!Ys0Y0+(D5-P4GWmk+6>$A7Mw4shf0Lk4jRvTK@q1W-4jSeyzf{Ukgki$-<&s}4""Ft2OwE+_IePj>)mxq$pzOg{6;fk7}Dma&HwtwBJoW#{5cgC2%(LEg8ogm;y3$zWZ)gL6bwlobMiURrb8qmi|+*~raooeJEcicDoa""n>V>6A%4+x)=g0*e}%Xg{wPhDsv+cPdTtoW=G3jg1|9Q)9){Z(JwSaCj3uUEt-(~RPKwOnE!E*?=x<$UEz*vAGwf|G9hY}?qKSrkp)eT&>ik^=6E6Y+P-Qdr2?wY3_05zIKezCs|)N-H$eXhOe_3tPsox+Q^TX8;287>byb%""Jz&p1C5+Ah?1S8hD4dQ{_`mVUH7yB2_igMZeEv{lvZ!C}KSlIq(Zc#*""E5lL0tiPv!0+a|ar9WS%NpN41hp-QeZ#$9TCVGB=k);6vIkS^HuZl{Q0x4gWmVKEQ1jmLy;NbT=b;z(M~Rxbgire14U""jhrctxXA2Q@W8r=H^>~<=sMO;bhdIwqKwU*UD1iN=bv(tpM1y3?CeugP7Wg7VNKCSD_o5)g!)t;`Aa9t^CU28xG_Drk9c5KfXTX=omM+q3~rANUF&)>J}Q#bYkc?rndA~8Is{g013p&x1V%U!V2AsVM-""YQYdRs7KlGNlz39BU}+V""A4?)vz(_BT<|~pZdrgt(n7JZCBzYSyY%CJl39eb{$*x9%q+6Wwc}beCA9_=Wr>@d#@F_z)`d(-WboMpeq7n3Yu;t""reSL!{HM&Kh%*tW7i9%GkttEbBA%f`EWduc@<~d0)8%&B(8iCcRn0`S;7m+#S(~dz-""%S?veVTAvnqbXp&c0FI%H0kIW4_JF`R1LV&4!kvzM@okxrRS(H1HS8Bd?;Y5Yg!vk""$J#t}`!J3rlO}RZsgqnxn@GkbBDvjfi&E(&yFZ(%(oTXCeTzfQw7+0Fbl7@0hBL+z2Omrm4rKhZ&+reE;0wDlTaL;3bQ6(CfA)B1""w1YK?Ts^Hyf^_GXe6vyR0XFh!+BXa}bk<2Y=G+L9Oi4&IE5ygmJ-8b5cYy!h%)mUVsoSOHnkG5?NYJn0r;9QLO7Mm5zGVB6ODvlG""{NvlQ)6g3J7&x+5jAspjy>CM&Qw*UYTqD)T%tq&Ko$$$l8h%tj--RZ<-z=mKa$pdM!4YSU7^G#>{Y;~YjdK2hDM$w1xkOn*XCwZ+""tm&jWAz0E<$kF&I(&qSX{i?YWY5DaPl18Z1z@MCpu{l05Nu%G|1e5Mf90uELQ7W^bUop5W;2Bv9W!)A?5-B_IGcrLE64LqgiFvtC""g}2LljhN8+ZC(It(+|p_@D~w>4dw&lV(fbI^f-FjOlsH>%*?zaRfhNRxUdlT5JkqFK7MMpT5I=|xWQNJv%)F32YZQU3YW@tg-!1U""##okRJ{s!I&<{!(w?8dy`NpN}rv??I>wL!8_OPynvVa(nDr&&^SbV;""$FO_FpUJ$s>aTzTm44uv+6=vtCAbe%HBhhn8aXAGB={zY1zX6l{^mzw;BGsp0pC9A)A{gOZZ}S|jU13BWWet%U!uSIMfRCgI|W;}""W`!k{{C&T%jbZun5!}+PcdhZj0s;9r^t=a9u@E4))Bn>#;bVBx7EprlV+1{K;GI?@@!`;bF3_yk3&o*ZINL&m&zAs5@&F<99Z+Xg""eLU(%En)?*cUXy%u(QLBc2)3gO?%#KaT3x2L{&;Pg66<QCJabxXGCwl5if^uNia""R3PvUMc$}""CoSq*0?!>AR1!5o""3ycfmP+M2ez>JJ^;_+P{C0M*5N?c8u_>jZb`hJBPV3P(jI~#JxQxeNEKbBXR8wi(=y~6Ng4#1cES!-d}QayM|6!nxJyf&?r{KDfy""RPXq-IfgjvF|JK)fd$!ILO6n1d)i3#=Q$!|G6q+A8rwYJ;3vhe$?vo!p%?KDylHOpUxZ+r6r0=(g31e1""oE&-ir`D6CElWV=-U}MOYQil9k@NI%N)3}ze)j8Y3gV%oU8x|1Se|x!PDc!s*CE{pks?jSw};u5hO~tqVNB5{V$bQ>S1?J=eOj|D""U~DlX(ABLiTgiaGR+`L9fA6TPX2|5ZBE3UK$sf+I0J-h4#Y*+P*#0lK`Q}4LS7xUGuMt%J%bEFQi{~<9Po&jOwbQN|BXDF5yze%h""Nh-@4C9y<&YHf_+3IPL3U1bGtnwt;zQ^h6TiSImAY!vYdy!6Vu!2)89FReq1nBPPf""^&}k+zMUK*{y{`h^LvmlPBIGTxQO5jNL5y~(Sb!HYVpg?$>Drj6EbE6uz>-Z6ideAMBM)3jZ;zmSIEr~cZXOlZ*nb2r2$~^6GxgM""XgDZo5uzp0s}~4V&WKZB+qk%U8x9ry0Kg)RaTmrS4lztnkk$N7)}LQ|aPI4$7uHhqX6hh~@J%(;;1g6^P$@RB>aHkN3kxuD$1rHeeIur)n^N1iz5PLJk#mdk""sY=5Kz77*K-BC=fXR6iUVD~x`!D;""dm_=j@NljG!V<|izaOJH!gqYjQd(ljf`@0v%It3mIVPY_iJclM`r^FQi?ZyuypN1U)>JNQ=>0UH43{$?""$m(=9%fPuoc+ONbJ+bn*ZCfxpUK16g*tkVa+i;H#05Uh8Ev|*oSyE*~t?6GSI%}PPn(=VL;wWID}My>Ou=rol&Vq|bdSJ?vm""0by(QtbgdStk7l76EgpaK+g-myv!I0n5rG(*^iYQY{LkI<%?m>qTlip5DrW~%Nx_eiLjJh""6MI7WxE^F|ikF_%UI`A>zwFzu6${0K3Q*MK*Th5DvU~Jr6LH=d<6iQKYIU2}Axl^!#Wc*8%""yyh0sfT~xRCstVtQ=5@!-rF9_V6?i$E_rtp|4Utt5?8(hRUnLr28V!mF$rT4@*tSRx&5E~^d6V?%f;Ka;%DODtP7x45yCHGSnqz7""@QX0aj`5?G$Id=2w(kD!girxrB{I=;i7W7;>k^A3tom}8`d^!q#>t$p&0_Dk&;{bH4C^H#Hj(APIIjP?VY!up(*vwF#6*OY}m+TiR5Ox""Nn!p!By~Iq)N{mZS!rU2Xd8gEbby4=sl_+g0p>Vct~Pj)z4Pz6a4bJx_`d#q!;C+o@Keiz1*59Ea0Av=7VI#TEd)wUPRh3-_$uHA""m8bv!v{aY|mz4W(00GZwzJ~(