From d86212be9d12763c051335f67be49f665a249765 Mon Sep 17 00:00:00 2001 From: Jay Date: Tue, 18 Aug 2026 11:54:14 -0400 Subject: [PATCH] preserve BLE reconnect validation evidence --- tests/fixtures/README.md | 9 ++++++++ tests/fixtures/ble_reconnect_483ace3.trk | Bin 0 -> 63872 bytes tests/test_trikke_protocol.py | 25 +++++++++++++++++++++++ 3 files changed, 34 insertions(+) create mode 100644 tests/fixtures/ble_reconnect_483ace3.trk diff --git a/tests/fixtures/README.md b/tests/fixtures/README.md index d288015..81c9e90 100644 --- a/tests/fixtures/README.md +++ b/tests/fixtures/README.md @@ -54,6 +54,15 @@ removed before production firmware was built and flashed. validated file above. Its 3,589 skipped startup bytes and one candidate-header rejection are deterministic, and extracting its 151 valid frames reproduces `direct_usb_73e5680.trk` byte-for-byte. +- `ble_reconnect_483ace3.trk` — SHA-256 + `c4a0d795cdf9d490acaca0144c3ad33f85bbfb2214d3f7abdfe515c4e5f25398`. + This is the resumed half of a real macOS receiver interruption against exact + firmware commit `483ace3`. It contains 2,576 contiguous samples, sequences + 1,992 through 4,567, with zero packet/sample gaps, resets, CRC failures, + reported drops, loop overruns, trailing bytes, or timestamp saturation. The + final status records one disconnect and one deliberate frame replay, with + zero notification failures or invalid ACKs. It validates that the 10.24-second + queue covered the measured resubscription interval without permanent loss. `tests/test_trikke_protocol.py` verifies the hashes, parses the captures in fragmented chunks, and asserts these signatures so the hardware evidence remains diff --git a/tests/fixtures/ble_reconnect_483ace3.trk b/tests/fixtures/ble_reconnect_483ace3.trk new file mode 100644 index 0000000000000000000000000000000000000000..882251ca81017951bffb762dac63b5acde8e3cff GIT binary patch literal 63872 zcmbrHRe)W^(zf^PnPeogV-v?+Cdl9xLXfz-Lxczcg1fux!3pkz4estv@Bj$`f=eI} z-~anmb+4>7TznV*TyPFAUEN(>+O@iS4;j>ZtCIZsZ7Om%nJH_~W77WS3qyF~3ObE9lcJ~3Kv zSCJcA{8_YV9!fR)+DCWJ@UZgC*&BQ+x?B#rl9KY=Fk83Jge@#>lw%%^#luhP>vQYh z<&e+yw02(vY^ml}p>>0=xd{gURj*QTwz}e zyE@3Bjd*2E(ma%D_I1DSlHuXZ?mHbhPjv9We4FJa6~7bR{M49@a$}0$3i~F(@+GCY z{iWZKufz~v1jo; z=~tSEMw)%i#=B*BSb1c}B|nG`9-u4HT7E0KACocj(#s*mKh*zEsWA(h2Xg*7X;)g( zPV}y}ceofI43(@_V8ncz`oG}-L{#{;s6_*S9D;cw-q>*&)A7Ot7TGpgO`T$>x zQ~k9Ruh_^xss5^^bIAYS(2g+*vJvz!%|khIxN7$d563S!^0pQq$ai#d*S3CGGNRH@3JySTTd` zTl`I!@ldk9=D209LbHE+!c7?-7SC<8Y*MZw_qVt{`iO_0?KJ1S=PGCH(yio>le=I4 z5KcK7uiUR?6RyytSc^SW7|rS!RWu2Q{K^}adN=lTa%zF(sM7XO~q z|A`Ia|EAZrN?_gl-Qs^TvZL?(;{;7he{S>5Ws~@52{!TX1^JcFgymCMbH#zrWDBJU zmeZQ`v)E8(7`9s`Y((*M(KZV0(EDb>h#`#=T6AHk#hUU!OS=}rpiT48M6<7{>Ym}D z|KLq#SBNf`!#9?eR7ofCWtFME8cW8+qpD;~eB%Venj~0>eEBGoXVZW&k799z=~lB8 z)>L+cZ)|Ru`>FQ1zQ#i#=`SxII@t6m%|lb*0WMF$UznUnnyvpa;o=)ajT?4_e&o>Nq6Er}_e zQe!sKT7Dv|a|&xBY_4=}jRb?Q5oVKX8s@RFSR86Gf2~xzVzH0OFwH}A&9JV1?+g!@ z9b4FHZPCF4vTv^Sz#i5KeJz!K;mh!s>!$i|BAj#^@YzM25ucNc&L^SA|BPI z+O^V{={qg>_9Z{M=yk8)+U|A&1L*XLwjR>G(Bv7hU9`nRvk8bPHqB zf3@U*?(Y#W^rn^iN58r!W8!az7!P|IMsAZY=`0&jUQpaC>93?@L&*!@x_3fbqI}P3 z_er&@)Lh^z%|mPC@J^o$58J$b#R)w`2M?@yBjs4+06jxrtYulqyLtr-{VmN+G&%G( z%zavUZkl0z5?bB6o0okJ zHQP_~&=xryIUvKs*maM3VuI+RE|rEo%)UuqB_*qhV=U(HmyDSgHq3nR!~{bRM_Nui zDPXK`bHxX2X>#b#ZE3RE`IH3nxQFfUA866xl91b`d1!|m?jM-pVNRP>8%-4*a)7Rx zd?xX1TIdVCX{)}-7p5l|?VN`hDXg*OQ2D|EhPiza3!t4Du$V)UPal|SSE99({mwop zg;nQzm~EzcXpbCz7?k1R;$Oy{b+G7M4#c?KjfYv*m+yzmrPJhmhXjoEMfTJx4mGTi z`JiTD4|7Zo2LF}jp#ySQXGn&JFMj#4 z*HNNF4y;j5Hq9RC=u}_inZ*2K41+KBk~4}$VaEmx+BVV~V)t=@ex-Tns2SFc9Gc-_(s5tDev;^-Jyb}hs~pY=rrqYna!O z*ze$j&P%ncR(^*bo}ctrB7L1?e)NK*9Wl9|>HdW&>|e!h;(l5Vosq*E!!tZId40^X zi$oWFEB*$bd9n57d%H^6CD3@d# z-lLi92HGo9v{lkMY%a~i8pxq^WQK?Pre6Eam7+rq$i9W_ff#yKGG>YNe1NU*)u}Nn zwC2p?nt(B1YK`drwFxc$abJsj*QIEiNDj#6`hYQR%g}Ci1{+cQs6o!RCUV$$RECF% z&9Aue2GK=bqW(5V{ok03iLQ>f_;6E#Q9~SW`gL;(E6Cq|B-&dHb05)BItQ<}1`IuH zlj~zS`faIp70N4EyW3Ok$Z=Scv>et#4u_4-@NoWz&rH8VbS{TdLC zCH0nI(`#$wx_icCcsTEw1zX=Qx+sUr+%6XLA4v7JQn@$2>cM18sffnJM(Pc7zfYWo z*M|benwKfRMGg-q7`%?OocEEWzr14n1fzX4g*6rb4S85cBiDR4Hp9bnRc{{mnCRT5 zy>5$4A5Z!s4?IA=J70LhFwcV;3Bw0H8QKx|*e8?oJ(Xa{b%@2Ar&F{`mAkMPeFQ%{x={_;;rG&Or`;0;6Z(cUc<5{KjmD<582`zPvk*fKgQg~I^Z&u4D z-VC+5r0ronGN4@qu{xy7ljVuRQquHG(3&3QP!`lg#*Y}gDCa-rATK0;=ZQOT5JM5vcYPSt*0_&^Cx(oKr@NiY{nZw@` z9rgfSPO*mA^?qv1m0EN3{DTCezUwyqVG3)j82^KGZjNED4;{oSxywhP-BRr{TFD22 zeH_}6ljJ4qm6G)*Nq^YV6yqx`hYd8tnpgMB@UVQ*TIYN!x+n*98XNp98MD;(B8>UD zVNo`t%ol!R&P4)exVVvGj zv#%>o%KLW+A}&mKj|OYj5pbQV;DI)-yZs#Z&?s9WXPDzEilwibZ_SpI^ z5-{f5RJ`&{TCZ7TIAXy$SW;}O_0N#`)7D~ z=ih_7EfHOmLo?->jJY)Q#oWqsvrG=l4D)?a^W1d9mWOuCx3zR18LmiSRnl{GdS#$x zZY9E~ovcdrS1OFyQcP(1jyK{z_OK~(m_IecL!aqCZJn!h9{8@eqBwx>PS48ltagp; z8!5kG-SUQc9z<;d-7gK8^Dxe0d|AM-RrWE=tx?jBxHsN-Xl$7Kh{lp3KD|7&b2$u` zZ_Q`yVKd~=ae9V_uRqvoiwei3GT8J+C z))wM{9HnKduU5*97_(KtkWEL~13J<=!O;CF#zPy!Jcn9U>~8v1Z5X;wY}wKF(`^H- zulZg!Zo5Fs7}e5Ea`ZG0HOS%I12Q~JJAePf+lwyBp|$3VKkE?s!X8?A&7sgSj7k6a zLTs>83Tvr&#+aQG3|;DLcC$u;VP6Aneb+P$U4pMs#@AY@cGVgeeNFSw1v$JpGsDBe zIYW0?TXb&IIpw=vOIauBA0NN3?G@HdVSF3l+sJx`kq6}z<9e9htZ!J{1NOIkVS^Ob zO!FlMZJ1!_>ln+cHZsg}hJxn89yraz7RX`6ff*j&o;z*3jYSvzQmJf4grMm+cYGtI+R$YJKJ3=hM8y8rYYL>FzkLVgc9 z@0c31N_z#?Xr}~Yk3G%&=+3DztEF?qyV;E~f&g1p>zDYasyW!^h`UMO z-}W~QA3;7o)XsUNb!i*q(Dv{Q4`(l!_`(3uVbiQfJJnXn?*>|5o>#1^xl!vF6vm`~ zzTs2D7@TSsYOuv2hWR|&Xl~?CLsRWqDmQ#r*s!D>HRv98?qGNdtCXFyA4&7DEpq68 zM23flKj=Pbgy@_Hc=t6LnT*LEYpm(Ws1#Nb_8FrM^V$^oIQBaxVAwCU4s>L!VXm*` z(sOiwT<8zEHj*uoYm84}$hF}PP5WFNP0sxQul@r`Cb z!{U5Lnw%#l82io<7HcON#(c@q2N_?JLpw0O7oo3HQnallSK{OThPnLP3&YQ)<*>a* zsd?_G3=hX{xL3_o(K!$3>J)UfI4#vzmHZz0==205{!TV*hGCw!k!!&J0Rh7=BUf^s znMpf%?Qi;eVCWAyG?C7+P6s9J$iF5P%T$+6^RR=c>y{jy;bGRjea<*obWsjP?H?M6 zZdT}@b<0W4e@HJ62^e#06274v8piY-wV&z8VF4p{<8R>M@Kk>V=?HQ-BB3QW8enU3 zWI~&lZ4UcSosW~AHCr8<;i2=Hr_Me~bnw7>6tr&Cy^juK;xn3Q--TTs6Z)rJ$DlXI zhIZIFdCDraJ1(Kk$(DTIeY|0A=Q+i0@l`w_^v9XBrm6|x`%X;tSEX15mX-r2J?o|& zm*HXLYhB(uNpw*T7V?@&)1xqwBsAnc=NZXg?8}D{vVw_ zJ)y-%jI=m{MTT zS3n=m2^e$B%NJsU=cce#I@^dZJTHZ@=GfBthPnSPk)ESV7bFgXjxD9^JyM-MGmb`%J9%_!EH}m zDLUt&RPytE{Z-bN`*VCZXVR`t^-o@fkH5w+ua8rM#4lYN+F>KuKG=1Jc^+65eD(FA z9X^8i$i8KEXvaD=5w8t>E2mZKdY_!(VS{E1FSzB#mG9*yLK$vIepbGHSI`Lx-01)IghZp-JM|6@0|a85)3_`ZhBLf z>TgwXfAbOdCKz>{p;m*wFVMnQwQ3RAd76jak;7A`W_UQ^@{8;47hTk)Hj*>4e<1XQ zuJV1BwR|uc6FGP-r9Np_TC!Z{(Aj%DWEg&wHSt*ZaG*tAErc<~BPm+WT{GWD6AV2x zIb?X~h8z~3mf>NWL51rc6J7MJ)rv{v#gB(E(VKS4QQ1E{k?Nm%BeHoi!Ag}^crfMU*)TuT)K+Vb99{{u ze1B;Z_8G4l=6mth@{#zBG!Na8!;~{KJbd)W1-rf`I+p|Wl>tWgdaAE7`4;^28(~aj z!#6r=IBzEH@GWDEueS{IoR2dB=-1l;L(g+s6XNeXNq>Bc_wTsxCjGIe`0u$&PPW!v ze^!Qv_1ZN5;62erd-z@7Kw0zmQ~fU~&NLoA2>mmUa``24k`IOXT@dyF``W&1jxg?Y zkVD}g(Zi1tTKMm0=MO(NtSq-e{jJn_f_K#JlYo)qRBFH5uqMFC)|yYw&hXIb(MubB zDmr{Cbe(dCTMhlQFebXxN$a~v`t^AVYhve6@`W!_Sc&FF?4D~FK8+l8u<6&ANjv<3 zpBenhFqc=k;tl%sbwZ2nPy7!LoNTQtoSWg{mUTw;nkTyGTU*LjsY}gI^~HBKeD^no zksETR$?GNy0tT-o(l7Qq-==6A31d(EU8>!(VmI~_#qTry^)=tOFv0wcV?*D{$<~@4 z=Vf?U}$SNPHT@-?c^`f}#vr-0!f`F@5@|7@7=iyF&T@m0U1FwT(` zh5Z^Zcx8-I<@dj(uqwp|?CW>KJcq87Z8oft^*|0MouA?1=$9Aw{X=w~dt=i>Y|Z~n z`X{FzWie?{=pUOV){@KqWtit0RpNnp{GGxYtHwW1dbl|058pS@a+iOS{)lI8`~L=v zb!x5pM8jNz)44T|Uy$Kp_laY!Un06(uCeqtCp!PGzclHK`ijS-Wrn$b$RglNM*?yMS z%7KUPBCMI`@Oi`H+Db?6Vi z+G(ALd2Iv6cd@3DHMw}Z6fOHY)-IhtaN@T1noBc0y#8{Zv)YR;`kJEldDNOZ2=n+! zZa&S{tz+olB`@X8IRKex8%q8!S!zhFJqNycPuQ%zUbHO%{`w!l7jy?`N`w$f?l zvA(b$Z5|$bwXb`217Qop`H*GBDJGi@jn;Fv#@ag(^EOH_`WtPzOj-_{xUFgWzYGtz zJy9}bW6?z(+G;&GyR(V)#eB)nCMc)K7d90Z*Nt2sId3M+*Nrm>UiaGEXnk(nXTr{F z0)}60raYNFa+iQnZ)qWWV9mEM%-5-0JT%lLPTbb-c}0eYua25@-j<^CT$FX2V71Jx zgvE6$Qyd^3ZJp}Bv3v&kS*>BrmwJHjO}0reYFFc|zik68@+wH@u&?ce#Wh)_I}*r$ zdtr9Yp7HKvxHvt?n4cL=Kg*U*)H>cQVXvIq z0YiWJMvf2KMHsq--Lw-%oqbnfQP0lE7T=(!* z86IxAW%y&ei!RzUH4gN$Tj@JY)8mJwz9Is8G&= z-t-iPOyQwXZl>|j%ldaenwLJ1WA--8_jTps0si|0jJfeGo%QW&n4fj8Qaf_ze!|>W zlY8|y{pxS+d<<$e>`&4*&8gwK4X@4c@K?!AM-332+XH)ve#XN+TAlwmx>K3v#hjf;L!gZsDv z51bmV8Gl`dhq`6cI*$;Y%fV}M=-@~j)8)YV7|vjf6859s0>HPF=)B1aVWUGka>sba zXG}s%Ug7s%#tLI@*bVoYIL|Xq*cSoIN&cMc9&fZBTiIhY+?$Qi?CY<%KEuQPi=X>t zg6N_gN+k#U*}m47k69LEv!AflzG{Z~jETY)2m3A4Jdn*KVR3HF?js&#_BO-D^g1OqN%%iNSk$Fu+P~w2XIeY=H-9UiLB9?Z7Guk*;vqKf zLBgWE%4LVprtN`~&vg|yW_Xxb_Qjb*(9Nt4F9d(rG+#aa$_&LL)Ltj1*zt?+=FxMr{vHJPBW0Q8J%6SLbe(ksf^S3PUkH;GZ zuU>1$SDhe?HCdwha$by>abiNtdDqeZ`A#@Sv#&e)<_r&0uQ+SsNurDPP_0;tKAfD4 z$=x&GubqD*F1PjhKD1UZ*}TfqH`XI1^b%4oo!>fK5#}J+d4-WbHi@hhzEStxz^5o zCN&<;JD!)Ktx|0X-8^5I>p8J&g4zBB!sZ5DYAzYl?!ttYz4Snf`)OSor`a$6>DCMn zPv3aYR~Lyc=6sdn0XbhRY+hK8MzUYtmAEA7pZvqm=v^x8Z)-<=d#uHz%Y?`kyd#$@3Ji^IT!=@Za$8-+YPF+coRmp5fvB)?3WFQgm()A^MZ3J{cZY8k_D_%(F$g)_ChYSdYtH+kOSdQeA?wMuo@rg$SF^9Z?9L1i z$8B8G^$yYbw;lY0pDDXD)mIzoC2{I5VbKOVhFbRB!s5Dd{)qhM9$_)YafXWT)pgb% zYr;48fwt!N3M1~LOVl%w^?lY3pHAHG^Pk*%KjiS%T^SzU{Po5s?-!lF)xftHzZ>>| zuz$?nIEy>g*7reSaos9Ie5kiE-S#V#SCR8QB+Pv#{?_j(K5Xq=uDr{D&OIW`*Mv7B z_B1P5SezU8Lx?qR2t$|1TRZEVEP30THm38+n;Ba3*>4H^CDFtF#kbV% zZDHRA`)w+nQ=OpjPN1bf&c~oP?+T0lko_ZPeA05@1p2-A-k0H_$=vY|yeGPtFIC6} z?Yl_mpY8GNLa^S57=srvO!as~RpYeGL zz7U3AA|~;D6`P(b%>5EIfl(%}FOAl1m3lmD{*|z}CghOBjIWb+++!Y#E@kR` zoItNz>%j~UFLu3U@;uQ+o9-Yw_9yd&Ayd|f_=_CA5%z`Y18<{vELdP;x_;q<@bTXY z^Ed+SFsnm-7uq44a^<5s`%w7aFt62;L&5(-VbNFf-L0Wtnx@&;jHu7>FyWWKe*Zyq zZqwwWds@!(V`|LiT3_tpCt<#Br89_;(VL(*3!k+pW6**xbap02=l$I*MG=w z|Fw28ublKB9ymo`^ZLUX9^U!8(*a9F7ww_F`~x|}Qeo~NsD15jHQr^yqAoSo_vHoB zx#h{2_!h5^uMp<);=AJzo9{|%=l0uLwD_e}!lJymmw_KG3X6UTonxKSHq9yex{^mT zJdC~d`02SOtL4y6`aoX_{`M{uvPW;It>%SAUBVZl)1{%E@0CVaJS!6x<%RvSKWik+ zZJ*lIDC4WKurGpswNhLnc9*C6Yp0me&>lENKX#|bGCY*MQGa=b=%PKWD*C%@mBJR7 z{g&u_(?0ZHQf2+SepLm3+eFynP`mFS9f8-T!k8O=xr645PB$}JmqS~{AbeVLVbL#D zYwtyzE`)ZhNz1UOOv`~&^mT_kp5bBFqnB^kLUhqDvA+1YmcsrCb8Dk{kbkri=D7iP z8uqm~(mITZyqXI`r`rgNb891?N&Kx2?U-9z@%po{w!)&kurKn1cET8!T;N~bxo1z6 z=HVdCzUJ;HGCZ{UB=>E5(M29s=!_csf(|w&YfinCt3VG|g!pN7rM&|bh))N-@1;luK{QAN?zoky^_oX%n{h?pHqd`31 zP*{}La(#yf+sN7xDz)gUf&QE7}xaP65CT%RbC$c8bFn*g=v zKbzrUvm@5;wS(wld>~h39y?lJ$dr2@erIGSVR8SQWZ zMP15CA6Sn)gt-l3zr9Uwx@X4R-F(ZQ!hRJG_@LHmM~vS~7{1!~9)4bZ??CJJr8k=7+{Gjv(?e1?a%Q%<_Jhv=eBcQ*Ou3q7rWp9lVt^J2Y(v2LDM*qzlv z@6e99@fH<&-bYyUORWOdS6IxwJIPm(L-rFE<<(Jg0PCOhhyV84T$%@NGt_VQVupu# zJ)Wov&A#sTmoq%9Go!;#6GRvN5_kXEWA1BXG7t75{{4GDVLmtR z_xbnqiAlShbbqXBF8RVFVR3GpC&0H(7KVMX=HyW1d{cz6Cio5BR{+~T^hX@2lr52e zrg=D8v#*`^N`{BGYwEY0DmwfUI?eu!wVY;sdCo&VikznlbDzoGCBHK>Ls;A^wbecY z+5?1n?p-QgyPA#6wEkSbT4@Y)?m%HNj&QyW+Jmf}+dgL*!O}b&gB;qwmf_)+OQ*eh zu;}1{HK)FU?#~hy{Zc3SLdA#TA;R1*aqhIQ#fL*}OrKi|@kN|IOqkm~HCVqdc6exq z9Ej({mLr5kd2yzc`r?toyoQ6k`dWW!9=MTFGw}5c4^x}d*4jA_+>K&x#|evbOD>pU9@T98Ts?c!WLNm$hvu*;FQom^5Q!tIpwLs zeE-Yd+3PE(31hE>O|y@~-=1!?o>#EG)K1P27UMp91?f%kOl!xQpx1qD?b19Pj~rfj zGsDB#8ZfobUtBv#lzkiP~k0b1-yP40d6BhNn zjcAEy_X=Z8uo1qYz{7pkpX(;)4v>GEhf_5B`nm6Cc-a5Q0W?D9cjQI}fiY#Hae>xH?zXy@Nr9ugLHsiXFj@bz%gAMfCJF8_!yw|##L6diul z+IfuQ-H3)foQfQ(Kg{s3$Cr~&dQ5ca(o#Ej>-D9_g~hz3sdNN?^Mo+3FA=-^-Tx0 z_MMaA;nzE+9r&E+qCJo+qa)8-|2~iEP``UYSk!aA#Zs$#F|@g|RQd@AKZi>L0~dgn6x!dl|#+yUMGfKiZL}HO!Yz*X(Q0_$b4}gHv*+ye7J+ zOVx_g%;RIo0&W+P?cOVZO)ANpCn$kT1M#{h_bK z7Pp&sgvB^gCH{$p?}m2VbEuFEiTi0ea5JXvnU6C(e0=zW^WGDk%c0EfHj;b4FU)O_ z_ny5b{eiI0t>#1=@o$eGhB0GIX3ROlm>aTbE`Pw9d=%P|S9TCz*zd=}JdW^9rnk-a z6Jc>&ev_hMjN@iZ&A*>yc=+P9gCF`-bjSh!5Z^lcER4zA3gKJf=fZq$+F z;oS-|~a#&?V0K z6qL*1Gkz52dzPHu!r0IB{3l_b2fOSnzr@{&pKVOnbKZaF8`Uquew5C!mdlFN$8|5m z+Og*BJNuih{wB=ri<O+cJ9wPBZHm)EzJEAy5#4f77Oz@QYzi|wKXLB<=yuHyU+b`Wi6{TCTqFO z`uDZu`#-k7To`c#zS_xW;%`?7TkSLbO~aLe7Qe(9KVsJ^VXTSg#=}hai=mzKFv!-# zuHrR><_lzqO}R$5wLtS|QBwc%C?#yz<)#zSji ze8(VG7GzhmZG}aY0JjbNoGC?^@zR=0W^gNb5C$i}*EanCLZb`ZP z>KfM0?VfYDjfJf#%wq`O+(+A*uO-a=G%}xmwHp4@=Bd#C2vFJRHBYyb(=uNCI_hr<= z(2-4r`F9L-$=^WPOjw*-wd?_%-dtGJr7C?7=NxB^_2)UtGJT6=zt%+<^1>ffN?+#) z+rrwpE)~RA!(8+-vx>P0|M1DPm{cAk% zR-1nl>?Q0oVd!s##zZ!~ZA|BDmEs6<>m$raO=_7moQsZ_a!zvVG8jENlhy$EuHNy1``%gMLccM)sny2SfD z$ZLwQs7rZ$7bC~nUzq!9_HfQunulvN`R0kt1G)6CAuhw##%Sx`_aOpo^zMYzKaNRU1G1(%j9ruYD{7aKK?jizncHz z9=X4Nbi6P>A4F}`&-0v+qHV0T!*84@tciU)RW2_-2bPw@^_u;?SN)mc;r@eGHa$sn zZV$ZkZNE`carF&ePZO=Tk#FY?b=sU(&hLgt=ehEx;+7N4{{n zuzxMDpayk-<+5i8`^@&zWs1{YLp?L;&;3Tj`r~ZPzV?Gf86F;gcv+j8d#^IQ&J<-aj{zV+w!#r_gMdVw(Z zBjoov$rW9?Fto!)xLbt$({i{$XkFFc86NI_ZNkipMCUP%x|+q`!o|Xv+j9HuLciO3 zi7=lVwb7xrmY0Sx(O=#yrUrAFu&C!b`Czcit)1I%u{eX6T>PIf?2Gww{~7zbLRj=m z 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 mNnRQF`bt>5wPLLVUte2Ymmzo1IFI{A7%>h#