From 5e65b939699a36ef60efaa7a3449a1a3c7848927 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saulo=20Ver=C3=ADssimo?= Date: Fri, 8 May 2026 22:43:08 -0300 Subject: [PATCH 01/10] docs(readme,logo): replace zero-allocation claim with honest tagline - Tagline: zero-allocation -> static-by-default - What-you-get: "no malloc, no new" -> hot path is allocation-free, init-time new only inside m2bridge slot tables - First mention of midi2 now linked to its repo - Install snippets: drop nonexistent v0.1.0 tag, point at main with a note about pinning by hash until releases ship - Architecture: ASCII layer diagram replaced by architecture.png - Logo regenerated to reflect the same tagline shift and reference "Built on c99 core" --- README.md | 26 ++++++++------------------ architecture.png | Bin 0 -> 186567 bytes logo_midi2_cpp.png | Bin 335380 -> 332833 bytes 3 files changed, 8 insertions(+), 18 deletions(-) create mode 100644 architecture.png diff --git a/README.md b/README.md index 5c52553..485fac3 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ ![midi2_cpp](logo_midi2_cpp.png) -*C++17, callback-first, zero-allocation, zero external dependencies, MIT.* From DIY to professional products. +*C++17, callback-first, static-by-default, zero external dependencies, MIT.* From DIY to professional products. [![C++17](https://img.shields.io/badge/C%2B%2B-17-00599C.svg)](https://en.cppreference.com/cpp/compiler_support) [![MIDI 2.0](https://img.shields.io/badge/MIDI-2.0-blueviolet.svg)](https://midi.org/specifications/midi-2-0-specifications) @@ -22,7 +22,7 @@ midi2_cpp is the layer where a sketch meets the protocol. Plug a board into the laptop, write five lines of C++, flash, and the device appears on the bus as a USB MIDI 2.0 endpoint with full Capability Inquiry, Property Exchange, and 32-bit resolution. -Underneath, midi2 (the portable C99 core) handles parsing, dispatch, and reassembly. midi2_cpp adds the C++ ergonomics: callbacks, board glue, ready-made USB descriptors. The board does the talking; the sketch tells it what to say. +Underneath, [midi2](https://github.com/sauloverissimo/midi2) (the portable C99 core) handles parsing, dispatch, and reassembly. midi2_cpp adds the C++ ergonomics: callbacks, board glue, ready-made USB descriptors. The board does the talking; the sketch tells it what to say. ## Contents @@ -132,7 +132,7 @@ The four hooks (`setWriteFn`, `feedRx`, `setNowFn`, `setMounted` + `setAltSettin - USB MIDI 2.0 device, host, or both, depending on the board. - 49 typed UMP callbacks: notes, CCs, RPN/NRPN, per-note expression, Flex Data, Stream messages. - MIDI-CI out of the box: Discovery, Profile negotiation, Property Exchange (with Subscribe/Notify), Process Inquiry. -- Static configuration. No `malloc`, no `new`. Sized at compile time, fits a Cortex-M0+. +- Static-by-default. The hot path is allocation-free; init-time `new` only inside `m2bridge` for the per-slot tables. Fits a Cortex-M0+. - Pay-as-you-go: only the modules called by the sketch end up in the binary. ## Three shapes @@ -198,10 +198,10 @@ Library Manager: search `midi2_cpp`, click Install. The dependency on `midi2` is ```ini lib_deps = - https://github.com/sauloverissimo/midi2_cpp.git#v0.1.0 + https://github.com/sauloverissimo/midi2_cpp.git#main ``` -Pin by tag for reproducibility. Pin by commit hash when a specific point in `main` is needed. +Pin by tag for reproducibility once releases ship; until then, pin by commit hash when a specific point in `main` is needed. ### ESP-IDF component @@ -214,7 +214,7 @@ include(FetchContent) FetchContent_Declare( midi2_cpp GIT_REPOSITORY https://github.com/sauloverissimo/midi2_cpp.git - GIT_TAG v0.1.0 + GIT_TAG main ) FetchContent_MakeAvailable(midi2_cpp) ``` @@ -257,19 +257,9 @@ Async, callback-first, copy-paste-ready. Same shape as MIDI 1.0 Arduino librarie ## Architecture -midi2_cpp is the platform layer of a 4-layer MIDI 2.0 stack: +midi2_cpp: platform layer of a 4-layer MIDI 2.0 stack: -``` -┌──────────────────────────────────────┐ -│ Sketch │ user code -├──────────────────────────────────────┤ -│ midi2_cpp │ ***this library*** -├──────────────────────────────────────┤ -│ midi2 │ portable C99 core (vendored) -├──────────────────────────────────────┤ -│ TinyUSB / Native USB / PIO-USB / BLE │ transport (caller-wired) -└──────────────────────────────────────┘ -``` +![midi2_cpp](architecture.png) The sketch touches the top. The rest is invisible until needed. diff --git a/architecture.png b/architecture.png new file mode 100644 index 0000000000000000000000000000000000000000..36ec377cdf63b23e194050110a90e53761425d70 GIT binary patch literal 186567 zcmeFZXH*ki^fww66h%-(id4mdN>_Rn6%Y}y5PClR;m^m|#{vcdv2*YL9ROv(`GLj*u!nj#LFHJX zMc{(PS=&$>1gc76-*sRGt~q^m%zYnuJ@pN6@Oc8#b#;a~WLKp+fewz{)W5B55_n*R zz)|`5$$Rmw^Vj4ro|cafxd*Obe<=O!VU*yZmz(jT=9jx`Z}?$2C-~1wm(>37_^^De z{G^)f`BUYmlK zEnZO15taAU9`*N1>r+ITnZw^(wxPe^G#w!Z7Pmj({UfwFaPh!@7l)3T z9r)XPjqU%O{T~{DK>t6Yfsi?Q=|s zL#mqAhhAy-;`1l{RC=BipXx>W;a{N7C+&T1$_}7B^Z7zFt5D5XUhE{rB^#@MTwh;` ziSK~EhW_>@D`@U6IAx9Q1d@q3DSopxRVS;?W$S>6iK3t^Lt2mGhG3>4t=B^RRb9|Z zPf)9aREpfSmG#=PvJI6YIngdTQ&`=a%2~{XQSxU68$FUGA4JrEm%eT|{s9N7G9tm+ ziU-LN^>u6S1Ld->)3zScl;eUzmI^#Wq(_36l#`$;IU7UHKeqZrnVub`5c=dCWO;04 zWWB$=D)(jhCq1@%l-+xD(T-a&MBRxbv%Kam3iq z=th?6APIf6)DSUcLZ_)ww~e6veoB0h7{4v6lEl?8sCvu#q_b}-^Rto5SbdyKQ)95$ zryS*=s<|l{zGPmzd9Nl$Iku6|Ogx&Z?HKH(Of9A0B*z*d!8AY5R;pKHh1zIsGd7?8 z*y?aXe*$81iqYfOqr-Q4G~_n}tqf_U9zmy=5#EH-wJYShu;{eVQWq%s#^S7;v$kJVtz%g?+#BJAQ*bQuJ z<#aQGN69uEJdmoW8BK2Gn+jw^ON@f?R946W;)E1H_7AJyOgs=$SvZ}l6DzL#-d#H} zbI4!6;&dmRF&ipwCTm%ZS8p`WH{$$J*N^||K1Ab%bQ6@8Qk7ikp^Bez){szti>q`V z&=3V}04_gRnbT0LV3ch;dGvDEMUikhi4T{als}uUq8LZXoih^ZJQ@YfD$U`&Vv>-f zam!X;MEo*I+~{zpYUaorg?eg2&K@dS^`pSkIX`Tya%<-^Au_92rYEW?owbUZx5h(v zEKOF9(OS~)%PVi5dTY@zc0N(Z!4v64M6{g0ZE@_&kIzye%+{8=llE1e%Pu=%LfS6z z1z{gIYcG3M2x>9Vl%Ab98P)Jox`$wn-%Ux_ZYMdye2U*mc2(?Kyqww!nRpVDu0{>2 z7L@OTUOE__W1O1yG6(5Nq}hzq&Vll?RLl+(zKd*wBGX~ zR;bTf%1ow6CUMPD%tJ`;iI1h-kWc#)X*P!AKs_EHc5wUGn7rwP^@IQ9 zox1BUkyp{E{f2m7W%sqp+*2J@*VUN>|Go*GV@)*mQ3zfo9%@^9?Pw9lTD}qg#H+FJ z@`j}y3Z2=onRi;cf$fzmH<3%G;pf+?u(Zs299@zVqYaSJn^YVFh z`lz`Q5>M9}(|0DXwX=#hk*yT5jmG}%-yR$qK{EDYW5DZOTLLul)oz~Q3FsQ}f@Wq{ zYyHP{TLl9?IXRIb<+N)cmg%dYy4;5jLU!5UGE;-$*cyR+wEi2mL*g6OaY5B`tv`$% zvHfi3Sti0$%Jl;e;WDbyr(8;M-BmKs$zh9PJmO{ee@4jiM@lpGjvsQaQ}C`}GmmBn zsUotp6xV1G%DQyPHpe&`66))|C@#J7Iusks10%MCn6lb80{%xKkDZH``?f*f!{e7G zP7nLnJUb}W`dg7uFJUI~5K!yBG?bwZn&8N?QFL+PbLX<}H3wxm&52fXhaxN=VIKax zcVOjk=|mFZNyecO^L(lE^>=eNM%tc?S_iD($22uWcvNY2=(ZL6#Gy}NlF$O-O-+yn zub;N)-2g)pC}I(6e*hHPnYJh)gDQ0Cg>V;cX8LjE>%{$V*W7vTXxhm~nB+xreYW)( z*harvpBg!8nlw(MD-R&ITT!m32mLD?TQ|Ntz7>minJK+ayl?G2Wr6MyZ*8PgYsrD;L`bEcYe}tthtbX)WEF!5cjP;?F8CFctv0nf+M+cGyxI7;OO7@=fj(=1 z3jLIkCpVZsW_)6~c~fy@`g0$c)y8IWVSS?_Z{|*d6#K zh!EnT`wzbYLyCrybgMuuRWCX^U)$BAAfL)n6|SZJcw=(%fi4uG?7WY6p?v@3abNb3t~<%+YZ~g5UM8zYokYloQW)n0(AnRLJyfDcV%5 z%6>JjiR_hM37&9x^m9CP(5Guf7V~Ay^hK9;IeMxBWG(|j%m0_j`lf>`6rb7+r21)M|gFKHHdEZCX{-kj6qb<&cS?`x5TQ8XD^>nEDBXP_`?IDCXw>*_o5 z9yPRm4?5h2=YR>_BXb)G$nj^@QLlsUi33u5sLoH!`AXe812CK4AaUli z0#0O7R`N!TtVq7T)vzg7gNH~}+5CmPIG!0lGM1}BXkOl`WogWl$B;qn#ZYqB00I`r zKA!t}i!N#qi$tO8TOVr*CDHJg#3e`@=$M~#-ZKr0J3{j}UpCyhx`|4*ERQ{-o5@3y zD;HaV*V8_-dC$y5NC@`DG&VKagun5t`kG>9V>cV?xBd~UD&YI^Zv2Zju%+k5>pp966>_~K$_uo@r|x0)O?Ip=S`yDq4`!#G)8b8+{esd5*3dG zYpvH*VfYcxQ{|j_3GBC@Za?-niJldK`LmlzpjF{&u5i9equ#(6H=2YD^F=9M)s9C0=>`0>46QGC+91pTw2(;a!?`efg@rs3vXaS_M|&Cr}Gu<^4JiY?&)>K*lJm)ZBH0t({RozhgNv#F0 ztl_t&cUz z6XYOxCW^Aqss$Z<%#Q>+l2Wa<`Negjk48B$W=%Jxql4ry4)54+rw)b;Fm6}684>py zVPj7ZE5!+yrs!OT*Ff-vzic_ndyXHN8LLWPzD`@eb&Lp`iXODi8(OK{#$8m|f#gg& zF(;iHX{RCG43G4oLH<|6kIU!thr+(U&y4o_iDrc!|78)l_%+K|l{{k$;#UG>fBaRM zi-q);+m8TIzXD%LyqlJeuOJ%tNvOud?}wc_;6V|BserXUO^qHMp6={vaF}C7ut8YBAYByxGyA5ys9XhWBU~KXz}yrhqHvEd2Y~1FIqNv zryS+NG3l%I)q<#khse#Dez9akls!+IoPRd1f$Wc4+L;>r~Myy|_WlT_5_BsUjE zX}M67e5-tN32dX7D!m$ZApIgBRh!$hfIU&P4tzqy-&P)&J;s0+$GDgUu01j1>wQ3( zw1mEOLcT0PKL1v^j#RWs75W6fk>l|bR%K0v$%VI8Qv@9x;7bKhMQK0Q$ zqFSZd4+Dq&8VXncsYqgDORZKGA;Uuw*A%6e73!f_^gZbx-N{#v7i>hPPX^@&W1M$` zzl|BKe=&x!<3QE5?aqv*3 zadFq8_`H1?#&$?Zy0R$!uA$t9Oh%KjyhnoFp-8Z_YbQ z_gz}IpYP)%JXPziM_28{mXzb3^$U9K-PUfMRGbla?%%e)*1ujpZ&dKDf-!r3e0piNK^hg}phKPB89oJ=;66XA6a z>l-V;!(aR^?c?57@tLUWf?i34LHZ^5aRFqFWOidQS$<#Z1d_f`0czZ04<0eywOrx0 zabZ|K>7V+}){IAW%8=DnBRB5@m_kfC+XmikTXgv45WnMGZOD`c3TITU;oGb?TS_mc zeVZI<>$t}wcLfP+-xMSvbDE5@r;){gR>~cAs`Jk#$t}{pPgZG3Nl`6SeK0{g#}#Ae zep>KEtZ@TT-VLM7rpX|7YO}Ke5mli0uD9iwj8PxQF|)KG)!5Nzb6}<8%{K8l`X(In zuMRQ4BW>o)9ke@fyRdi<8pd$vBWpX=O@e5(SlK0$-NE7|!PYTCk7n^jP^MY43B=xC(@) z#PXmx5>xN$#vznrNNUfxv~EXhy6^qgM#4UWpMLM5bsx_;=j0FTrAO}_Jp@uQ*$<@C z5#HZ=id<-;)XyQ_+aA`6U$<7+E8@0MJDkP-npWhHNRXq9u$vu7Keewg zhPs+xs(?#c-z9e*9V|5Oe@}KTPg#s+FTB3QDyFiogPTF0VGr3&6+Eb~B z_RnN$8#0AvXn6>Cv!u&FS{0>6^-UZuNfZv;h0j_y%3hJ%gz+=)-3_5IcKb)Akkoci zpXPo%>@zRbyq?|9-aZVsZ@0d}J{KiwP!?P0S}7p4%PaA_hvUpdL!?$fsN{U$YqID1 z!I;8Cfi!Kt*SFEWR93MU(wr*Woo0OEeqp=@84?O+zWfbqL*a0RdLY6}zqYgmgm>3s zl@t3jqD4a`m;E8|HuVzpF{%aCT((FKjz6VLyP2mvGP$)V!`V!jTsNXRH}OY{E`@A* z{8AAMSn1+VuaCRzQx{sANXyhXh!`>4(NG9bUmk03Ktq+KV_i$|H^zOoOOLe$0#JWp zie>voiRIX}aIuT6ySI68ACQQdwOT>z%jCzj((HzkQx&wC-g2zw0lqIw%B?2kufi1& z7Ad4uF5mjsRsJ|7TjsPQ@2vINQ{hD4W$T8F>vq3O!T!2!JQ%_lS>(*OFty_Qjv^!b zKx4dPYFBrqV>nLbRTdCOqUC!ujOI+GH@NA<4?!BvHl7A_ed{+|IVhj@#FQ+Yzu`p0 zi6zj0@T~Q!@wuK_Xe{ zi0{@!$IK!9xa7PS6BopX1m50Do;neP& zJ9}tw?%A|HbAunYa*D7-m88d}Po&MND&|=%pbxs_g_~fvK3J4uZI44IyX9hN)h@2B zW2@$m0*Uj>S()4wJ8LsEu7!E)t=hHJihUsZkPbK0;kJ>%Y%#J)&ks;uk5?;_)V;k9 zkWS_(z@)`uos2W5-9koMx2lsknr&DDAa;FnWfK{rDhM^KgH+VWfI|UMPA-w4LM-|E zC;-r5svkfR2OOtrwd*Ho9nTRK(sq%sxjriY3=2^bp%W|9Wf(c^Vy6l*yFxb2NjP

v-A(i>T-vlGQ^@MuO>ymED1&He}SKMpOB8~Zb{cm>9$9L+Z;}j z>|tHbmHK1Xrsuk|WT^Fcsz|Y4IHmO@CaQimvCOqN)_Jj~rTY??ul{1I;GFp}k{0c{ zh1D``y3bQTxsVO3;g8U01^o%T4&PnpO%$VeO}$H7Su}k(o3+py_^M=XMq$1cd%D!f zDKK3vXX5hkEu=UGT&|b~d*1y6lfGIEp5Xd|fxPF58~T1&E3rd`Z~dNC-D>Suo1EmW z749+-grpDPb13n<8bswFsWFE67w`Dcrjb`m{SQXq^9#i?=1O{kwXI;vN=TO{SDKCI zT9s;{*8PmIYenBwZG$P!>u}z7P^CEl7Ck;wx8!R%kA?H*?EV&Y&PwOl2O!<8k9~3L zZULOgv(fKq(ngo(vV{U})*&CroQ&ahHTVd2^E6N{M#uEHm^FyIOLscuKebEvAx<+d z?dY_xl7>m}h_8)1TSgAcjmk73iIiS+JR&_0g)jv4nF6}*#|hV!X7 zsDly38o$Ud=h2oy$#Ke%p0Zzz{n|c>(*y{{r{|WW0pTmVcQctf0$uBpE$hGK=^{L0 z{PSk}CCq3bN1R55GROol{cl#^p2Iu3IjM@5tGE7Wm#8)t>FlYoC=rX5X%&=it{!lQ zKduz$<&&b#T+rF=WRkN>yCHTwNdcq+WsPAaJ!K4;e>Xiektw}L>@6opPTvT2t{~De5wSt zKR15o4Y%ZoD~VjtQWt^9z9qDvB*d`2;v`k6!`5DTe@1sH?(fxftqEIWgP-H>r~eMv zoFpw%wsDRiS;#)$2>MU8&pkWkVvNw3+N7jS3=y}q6jY(S(u<{3i(@K-Jzp*zxD7AO z`tBY-662*oYsvbt9=HB{KA@2)>fmkERHWSVF8I_eAYNG2_iH~tCHYls;yyln;@c7R zd7vJWO5Thm-G^H@$-&?+=QOc1%EH3|RoFqfPx|Q2gi$;2JxfXA`79?dct|{V2@rJFCyP;HJ{Gmnb}0 zgPjjO5Ra^t&i?3z%m?$GyIJzU@^uPYd6|z*=k*zU=~s&9)^D`q6Wu@oaX+6lm8{*@ z^xu?2MFO6@#+T8GBKg-o=A;k#o+4=&ol>;fbj6<_i9LsZeK}^t#fcvC%1zjQQV z+^tE)1K%>c9}R4HKU)tCf8?Qo2sc;w>QkUnf#=11y_Cb}(>W%z;TWyG4Es)_>icJP zLyk_G3ib!W;h}1g41K%L|Iqi~^Hg^q^_XNPbOmxP+sR@^Tora(87zW;#>a!6r87*2 zmwwfxQ;XJY$X&}?lN{PGbVFhs`;2(vp|v0_uy|M1#`HGsl3`Mf!CHId_mSqFs*B*A z)KSQ8=T3apDJrz1Ia+F@>Y`>QF_jD6MXO6dgyaEWu;}Fp*hzdk8L zTAW?7M&qp81jMs4vQ1*SWrloiUP(o*CUaGJUV>iBT?CQI7^-NntGN|`s&zSx z=`nGR`$(-0zH2*-TXR?is+kz~VWKfGUosW;-P;eoe0?)3K`Go(j4wsO6`)!PW)c&F zJ-KG9(t|9{Y}Ud+X4YMk=i(x+SneqbtF48JY5|D>(hLWWt5E0|zKMa^ue%$E+BfsM z^gmAPY;+ftGw;Z`=e}IqxzZG2Z;GxGi(Jz0Kd0G~+9snhQZ&9!QYg#t>QE+A4RUb2 z%Npkrd!ieQ=cxc(6(b5;;_^xKIz|XTkLOP=wpHG<8sXCXi3- zlJ038L}uNMnG-XD_d8aqu4b^jS2^cl?a;C~l6lELQlU6KA!bt^d1LnNlhg7>)ia(& zG2GZ>^-Hx5l-z`pRF8ldeFHE!`FOE7;nY?hrnkvOI$(Q3p0Z6BQ?`qb@T06x8?s8~ z3sx|@b6HAzr^P-f8|iHYNpipF+uuadnd%%5&leZ%S9j9d8 zIK%LKc+S4j&_m+SS@6)D`MToWz_ltloqOfqe=VR6DAPj?PWR7u1+0&!LnENns5u-MFLuhn7RAv>6faxLZ4>fhJyp=;yv#rl|_ z=i1MbY&>%e9SNSz+Y?oG&0KsNQz|-N+};K|)GvWS`7eQ${CIrl*C(-j)al}`9+i(> zTXP{6NhRpa>?k8~bA0LXyWpz%R-v5zfQxnA!l0Qo>q8mR+?i|QvlFef6oEtvFh6Wj zTEb@<1|yaIt%t?~97Cl|ou8{w$KifW&`{o9FOJ+ZTf}vyEbVp{Acc{?0p`Gh? zS};DZ%I40hCqjJulJhzeLt>iYUCX%D)5Ev7bEjOte}1-+vFs@gvab?02eqAiICm4= zi`cqWnzDEkIwLh=VWPWdOOA@V8r2hf<1sFq91AFxx?j`*f3LBt14!B5`4s(Gmq&m% z?4E-BF~5t&9VR&)6!S)HRhLLGd11j)Xvj&-#~SQz79}Q_&u>;ALs1^*TlVDb(vfsx zDX!{+^?F(*iIw4$r8`w^RyM~^Xze7={DU=4g!YFLHMYa)ghO6@y=QW`#aoD-tn$!! zoXU3g)eo--#$u0Sa|#C&a0jd?bO*V3b3N2(XlYHVp~17KR*h|EH|zN6&;d+k&U2DE z4}HMG;P<-Oqbg6WsiQYY^xnc{#S!wEERt1JUCqy+4@B~M^@8e2m~#^wYXtgtHNjZp zr{jUPxAjfjS0Ozv{Ug6Sp>WwaO!?rf8)TQq=aV?d1267zh_m z4q>>H!xjUTtkL;Sr~pDnnBqGr?m%T8NxS z&V*hH%Se3TP#d%oPx|3NSk;(v%TXkXXA1mQ`B1j;elrtrRPuc=JIciMTa?D~iKj?R z(_%>z2&j{3A+ak7q3l#@T~q5j4%^2%e~dEPl!8fl!fBYC44*YOt0N; zyd{{^f!{IuW-%gsH+;{gRBqG+ z+bAV!H3PG=zQ>38rU;;?iBd?q4nf)0ZNI2w32pGQ1O#%r7Vyi7GV8W&5O&O~)@i?% zFTz61`rn$q?w>PxM^67O>H{6W@ITFG|F=E!wm)zj0tjGSv?xRWZ@J?Tr7|V@w0PFm z(n0=gZyw!~UzYZ(lKxOF!WBWOtwZNqd0mZ|c4a^Qmy~a`8}_S5f#d&j_61%d8<`?; z;)-d7YU7`q5v~DaUvIJ7%gf*y-w(;~{%Hh(ey`2s0k-q+)#H=p2mjC6{}wb*t^^5e zqbVBb&1ey+57>#(Y;&Qot*?KV-`p~)0J zt=#oE1L?*O5l|q_aC|Z15a(r1b#G?J0@lX(FKgYyW^3U1WRJFk`M>nqZdT7w87(NY zO7)iAIT@M1965KZ;n?}t_8Tb`Ay58tf7@WdjlXB0wi`fd#{lL43iN8$Lt6PW+EZPRUzXYh@y zU$D5%P-g3FE_*B>Wkt=a^YpO$>c19@HyQM=y)qLtrl1!xl*r5pnJJ0eaBlrr7>->< zr(&Hn)S2ede%aK|*ic1yfN9mUVL2VFPijt6kI%oN*I_k3y|l^tWnmv06fD<0`;4rS zNn z$;0GA^HmPhTYXi}fGQZ|8}1r{dHLG>XDLZfKtUR5R)R!Uu`Y_4J|9Gn+t%2WafA8C?vYBBn7n_V`)%z1s2v2;gU0cTQy|8^C=t@6 zwB<-j3D;9y{M0O9tiDeH@RU~}hemG_^jAzpd9z{dPC`yUjq#x&9KSg;ttYy?7xsj# z67D`+MNlzawmd+ScGhB~0=pUZ5B{ltcLBUvt=M~J1*N>|ZDfXj(>}se5i%#ie#c08 z?%Pc4^5|d3As)k5PI$1gwFU#2Psa`U(oMFRPiB~Re@6sxoPFW_FL(TZdgk{JV_`2k z78ShW{2$vAqDtacB zjy^#RFZ?@f&@Z53{6>BYj@cOaaeWBKr6+1~oHSk#2A22xc}_;g)Hm$u8uC?Wb9ETr zX>9eRt=x7$6_u-AzAcKkP|#O_4T-!9L99hW)tCs*3LaoH44qVwS>_*%o- zj?;FM&^dL|E29KwM%VAztND zH)kHy-x_X+Ut|1(gO7c6dKnPD049X~S^Cts07WU2+rDe$EZMd0^PCcUGiu?FcGHaR z2r!xV#6xxm82F~}xNo&Wn!15!o-g&r=K4r~XS>9tY9VXzmI3H5r~!^kq&2aI(B8~F zhc!C6j7Zg7Q(vr_**$}zKV~Z*? z3VV$6CuF39sjp@brot^=7H`=?NaSuTfI!|zj1H3zET3m1i?L+BWBcH*{@a=+e)A(+ zMiNb<7{ zj;hL`qxNW&RVVClfNyF|b18^%+iz;hj+2vEAK-~Ff9@1z_&~d1eXYgm#Pkd@_pMUo zNa43k^k%`DKx@bliLjwi%C;#&UxT5Ks6C&&d|;WzTpc>(HN=5X!`02#Me`cydqm4v zBb@Bf-dbFJU7D&({(+^}vq@D?8M%MNoImYQ?31%s?-AF_!>eV?ImoRH(EzJ?EZB=e z{3;WPnX*?X);)hG!M`2K{2j=Zz9$1XMxG64cs@T+$oTwq+^13i8#3gIo*1ovbmndG zgYy@pW!9IC?W~$f5N2WE8k(<3>g@sDDveLovbU9M0{URKoTsM0HCT0A;&RdHR&{^) zLFsO#WmqXLWOm@As01ZVP*U@q3a7J<;1@T163=iAMDoP`(n;#{idk!X;=X1Y)Ego( znch)5>ORu!h9aWjMFe_FQR7R`UCqd0-=@GxHmCDHC6AQ!6cse*^AAt8$oO_lD`b6W zSW*$|WRRJdIXWvEWO&{s9QrY5H0dK!hMz79j^eozgd zBbnv4Hlg%JjOz@!Y2Ij_-S{~)cB${uga?PvYN)XV;-|96v~kp(Dr-i2ePNsXHKrQ@ zmggPx4c32GVpuyR<_KzL4&8_lv4H=axD_{ysaV*P_7vsG=MvMR`)-7i6xYTKt*$AZ zv3p^82(wA=ltK|`at}ckbAw63D5}D!YYD3_*8jB}PcOHYt7O+s?A>2s_-TWz55ez{ zkLr%>Z`X@(11OsHjz@yi_9ykb$QF+Vs-j7wt+v?xsL(WyooBsLSC;z#?lMg464zs} zhEbHEJ5IS-a4%$fLO5mpOV>5|_n&Gg$o7m!oKo1yo(k#K26-~;!dF@VG=jq3Es%BdYI=KqT~LfaYG2Fc6SRo z^DPZ=&GX0^Uxzk9HPQ||V<57U^nVZ!LZsgrcmoYj-zaf}M0{{o^6=6d2! z+{-Q%=j}(o6>hdo7lq)b7*uzoEo!Wg`@9#eW1GHl7gm<53c03ps((VFmW_lzBEaeZny& zc%?j+Z%!$aYmPsVvZ7h5g*PJ7pH@jzsN7E#UCH<|qcV#Vc)_SXKa#}A`W0sr#72_6 z-^8e&R#9%_UDSQ#U5^?t25gp^zcl>ELLnmmxG3p0lI_EQ2f-xpeZIsMxCb~CjVU<= z*}pPMF+mL10^b*X;j}bn80zkTC?vR$9>~>}k2LwTN-e4gHKc7bo4LJH(Tw2mw9hAL zQ`FtzR-z6X@cO16?*2-nn@zXQB^3C*82+_76za*`$)VEJi>giQB;JtrsHV|Sao@<{ z!r7IqPx7wk$9je#U&?fFEFYV0A@yI<6j={Kk|#8HraT6&Jk)l-7vF_mwTd zdJ$@0cZ=ilq<_Ybwv^|eYR(Cx+pnOU`93v~U|JHIzut2@`-JY}DmOAybs7X9&pt)| zCQi2G2}ZtRQ^AGOwI)W}m12sq@=2~K*NyD(N6(+2zRKe=@}~|R)xa&VWKb8>ZB;tq z!Obt?!Z)L-6w@T#%L3Z&lY3HLJJDHy)+Jy9(XlUKtzAyLHCiEN&Os=vl?9gS2W0~5 z2wl)l3u>~S_zMjSS?QpzN)FliiOPVByH>G_l0)yaD(l_exBl7)CZ{@+y-uTFvbKdC zu46G0dt6f76-VTF6r&WMm1JgCC^GOt;QHuwW2T!UZaClBJyi{SPKjro(1oj9>M{%R z(7`Wyg*q{jw*bzF*!X=tGy0#nGSAY)YU$<8FE&X^C6kE^h4~k&9B!nWap@g(`pYi+ z%Eml)pC-98*Tce8v}6_~=B-GZJB;K1E<}~ikhF`cTf4rXkpHCkSx7{+Hc$Y{)=(UoWwNbGSsE^6 zDJ`C0*Ap4`{Bh=sxs3$gwZf&0VsdJEPB;NuM2^u$qg)`bpX|2#skupUtZlP{?$juLwvJ*;1rjIHtE7%Sx zV@8$L@y@$K>Nn?LsAH>*iX)6>`mKuMW_z(Nrj6Z%#eN5EK6M`ZnY4Sgpt6TbTFz09 zU~MxN`%krp6XzB}C%-TG-em zItuS>ppPhJk5OraZGW|16#p=yLpj$N#B7&|CUOSTCj-Wi5u<*Q6t;F!fm!VlTgH2C zoBMxeT3z!Qe-P9BNe)xAt#=?}QOVfNW*N^0IMArvUtYhCxz{7uFFLZXAG%6%qYP5& z+dwO1Irv1Qgo{gsY{{h-6 z;XvBZ+}>Kslmx{Aj!M@7^Qd&c0}o6<OX65oUV-4iGr>o2d zMj1{r3C^)it=7WjjNb4Te-uRc3+3_wN8*#k_zDXkO}KiW=M|^bwD7bKft9Ny$=$iR zt5xtzppBpE{wyW=0Pg4IH{0U*@}O24A|RwQY#o)IEZal2JYE2Y2157+cwQTJ3^#5L z$muzQU)!45jKA7nB#xh`2MmN)C?m$Pf5ScY(o((aYsl2Au+`^(m{COqsFw<2T>UX| zG9^(myRcc~O)v3>D!2SQdI8pU*R5}Qb51({G7*>TX)!%APWHX0_E+>k+;jid* z6P`*?zKi@pAX2ZVlz>)h>WmG31cWYt(f{bp)e#fC3q6f`EHVUPS7JBI{f49E3Z8mo zHW+Ggm2Q@#mNtg7>{T!kDX|(L*JP<7kg=0w>p- zE_GB%qSXK)+;(C2Hv8;Y(hej#aK+C{7#FtLT9PEAxjwBYf%s$aCHF_sxKjtV0n*@I zLuwz5Y@RroV2+uQ+iNbZ+TCJ-KupeeO}@`T`RlE%3=QL(T;qORh#YI2TOK{tpbu0J zhUla~D)>9ND(lCO1;8EEezRY3QVUrHENMpU>d7PxX|8NkOHCGa&u3lk4+>R-g_m#x zaAb}YDE|SV$qhTc75bKDKJpnQ1vl{oN@lZRa(BGZ5)nJwi!eYBNVH{zMjc)c{H_`>1Ovaz-gA8lOErus62@v8wq2JOPUSE>8a$=WCGKF@Nt zMVzpAcdOL6ViUMuf?4nwkBf-#7tyb#a=wt47 zgX%f80FCi7OODK_lD2o_Qw7zPc6TO>Q6p^wjbQg5izg3Qn4ArpNhM-AX}KF79{3Zs zsC+N9+v`dgnG`I+RJ>>K<1?{(v*cZtX@_UDd9(`N!5YwNvcs7DVat}-*3*lQ*h=y@ z6g(>R$O&cv?xBd0tTW%wj+J;vdLMk{J#LJN6Y7jfio`z7NB)l2(niqijS zS#FCQfe`9j#*oWJU9|BU^0p(ed-7Pij-F8HeL2qH9J=3HyG*#v-xo+KPA~CK2H^r? z9VY$hHt3WzJCn9jm6^g9vF={mtByjgK(!bTjYzxqcZ!u`wXB}w00QsdKHQI%RRpv~ zx{ldoEXRRRvS+tM>mk!9h z?UTdsu=#)fzykligs*)#bw4j6ZcVVRbx8J3xx%*^fg9ocquxR0Pk|wh14GP}0)|Lj zB5C8r%r$;3y!e}ejhLHli!{AGytD+?8{KOOkRAy`7$yNp+ehr_iU3-9e>LI{B_f{a zH%z<*YSDq>GVvD5Br9{uhnjO*Hg1aX(d=LL>HVj^?M6Mq{m9=mucT8u_-rqip0Ejg z=)X_nq)JR*eKQv;IPz~&z4yI05C1{}D)^m$+n?#QRf}7*?!@}Hc~SmjhF-#R)*GVE zc7dhE;O<)5wjCdlSyK>4rv~Q-&KKGFg(K$Q-HJ2N@(-z+d6O2v6b=tw`ACi(ntJxQ zY9Ids8T4Z@G~V!W72fP`DtlP~`SvN>_7F((yP=N`_<8v~^hLgw{mDMMy0FK*;w)rq z?Y+1ZGZ|2HXZh^Q;-2uJUuNu)!xftMCCEN}!A( zCelHtQlNtQ`jfMhaOZMj&f}5#egD4gY&-bFAOH|wUXA$poKBXg6}yL=d8LqoP+^qm z@v4RGS}U1^4r!^}tvqJ%9q^yWIe0!vQ8FHlobJ^R@eibHY1B6`gK+>hpBP zo^Hdj74i0uN~rZh$J5Yu#v9>+*$2KLd?(MIk zq)t27Uds<0U^rQ|=8TSGmDHNQ|A&{&8vz}E&>vCAz2NV{Cp1R?7h`W857pbo zkEip312(ao+MXmZ^!7e?kkk-tDS zBwvgYKq_FDKcOdfM%!rXzTZQvXLkb=aJ$~qI#W)B2g#sHn?z=KIeF@z5_UO~>9V&1 zzenqOZ6oQcF-j3|KkzRi+!%VBor|JdF5-%Jtm=)?K3$NbGhV|tEh>_Sz2Ry0E+||# zSW8*Q2+-W$>vM}qPLe5V4(4Y_V+*#+YnHGOums2^_u-TH6JOt?j<=`u9 zEo>8W8jLSyxoMpyi~M@7NkL2%ADamnwyd->{4e%VEE?dHI<((9qEID94_= zt!b<^2*7A}T&&QasX@aZr^Tz#sSMHj^)A_eEBY!(h(u6KZw+7c;9K{h!Q_vMVJkgO^fe#`SjzXzL%*LS zf40jWPUfXZu>B=i=L}a%CS)Jo1m4giKQ;A!Tj9yUGCbXcyMq(iZr!c24405cwAgxY z2wZkUTuMAsCaD-&&YSebK}mDFzPia%UaoPmu)zj^VOdZ#6UveQj|-vDSwu)24|NfZ}_cUh?d)hn|-*SYLW2S zR6U${+Bw*GA63JPxL@e6K4(|yYKUa~a4}lN`6z#nDVflw*`fp9ba3ux+6cWv{F&Eg z&Tlb?8O-bzoY1C~lWjMEF~>QVooo*X7{^r(;)Ah2QN&38z@aK?P%CGdT}aIhS;oXB zZ9Kd@x^V_cc=NH*R*1WoSb>|T3HmZczqx{3n-|b0rG{1zMtzq(G0I61avWuw!L!qQ z6342oH7+w|axSTf6u3X@YhKGmQ6C2i>T_m|gGtIs4wAwx`HLQr#)}J%nl73ab!v%B zibtx(!{zL2TPjA>=}p%=ZpU3J7gndCeCleafn86F;Hy>);Gn0Tk77=P8L24>}WzVqU zXGY|a6AqKaCUN?thl=ZBgu^sw#_ z4*STK(Mud z^1t^rbJL`fp0IPv)pLjJ8ISG_tC9-~KM1L}_bdqG7xcSFImADy%lA@1Q76z7ZT9WL zLSdk7;mX!V5dfXE&}$y2l$%Q@zx9&0y>)*6N;GGFaz@o_yZ+&-*8UpOj&=HC0CA+D z#bTY3c!?f~<-#xL2hy;%ivOgkjr-EaK%K1a?&Hjtd}&R0?tqef7EhT;%IxDaKKAR-`LF>GeUGr@nFyz@A{O$D*D z@>i4iBu=eW*vSfx<+su^k8)Tua>c(m>$I7**%S+{n7=iB^Mx{^;ukiLDv0u_5jiT1 zTG%PBZn3{4ge%9tJz67Iczbn#B-F~CYj=VM$AVxsW47nsby-?!eQxM*Q=_dJKeXwB zt^pa2@vQ%(VlThcDR+=C@#fq7HW_-B7yikVleb)AboN@_IQdiP1>o)+o<^2cCltcg z_4s`2?f`&iVTAa1OooBnz-ERRhYycaYd)DbHJlNar0MR6!%B`?)nq1s_w-=>US$&& zt%{;fla!}7_?~Y3l8e+TbTm1OQ(71OY?1;tLScm#BomW4M~^0!@v8&0`ZtcRM|`^N znl8dE)qLOg5RH*UY;S$*keS4>uWF$9#m!$W+pVWcMG(Ygn~F(a0-~YR~!+u13vcqGPcU;!`QJ z3OY=u$VU>EaVZR*TwTyp+n9fPEZGk~*}>|bcr0McE?G0Pa(8qT@AIb}H?y;tL!06# zu9kdT{lpn7*AYkSChH0aP(`r{OK+dvzPJX;>d)KjA00@Sc$@h1Ta|#!ZP9Zv>n*kf zRpvx;{Ci2~J}SU`R^7^Y)BM@?gehFqqx&($UWu!ruP&t_ zJ7f-aXjw64jUQJjl$lnhW4dGGi54Re3KAj|IZBfUELtgLwecsF=Nq5$vFiz3NES>T z#^-(m8`tqA-S&WsXD3|>9!pzIDQ}ncPM#*%ZpQtT!TZ!@yxORq$=IIIDGfn1Cw+p4ej@XIe z*~#v>Q$ZE^nXvD?$*$8;g=gI zo3c*K{EqP|QMX^t90OJMtfc_$lG9)!8yl7|Iy+0vb|v`a&j}IIPclxwk=BkX^lSg%GO))#q$FrJ+Pe! zm_?rOWgA1#+M-$pYdXL9d5ELBT-Se6E$5~GxtV|tdn{K_>BDc&Vp52PhsPDuU#L39 zL`de+vIB)%NPB%1FYfK>G6(aNPlmZ!oM;nMOoV&@rZ(JaI^f>Mo_piOi_-5qk$aM3 zl5YKl?ih6lXyE>jlr$*%)KRUPJgyVxz_x`u!QVZixsxqYDc|a3XcG9MK(&gI!BDMF0M|;7a1C8b+H#K?WwOeBNvKPStgE!N?`SUn>X^u_qaF3q1rq=q6 zjgm6H2?KW)kgd7?y{zZLl2fF8bp5H0;54six5@0qxGqx48M++4dy%1_`_|J-Nka@z zha2|%&E2ugb0L4&Y0#{e_BvDNF@bEK9)rvMNCRAcU<gOPRnNLl${_dn=oxOkC za=C-;C-!IdHx%!#JW;m*+6o5fh&yQVM6R0_Dd@*03%|(#q?wj_^N~v>5V?h}@_-Hl zY}PEyOy$yP=xc^SUT~{-HP5#Pkr_WHl|UoVd~L~``9I+^3*98sw^k&24s;$R^m<3* za(FnQ38)cl>=_n1Qmz)B>1GeJ5!e+(s%ff++Qv%YsYf_XFMEE=`_<%%^91Weg}l3+ zjclL1LVC7B=9-0PB-c2{d)GkxrU^UEas3ngzc$q=r9fX-$dgK@>@hUPyVKP#`_3ru zj|&^Oo+}ER4Gad55`h~QHsfnUO}1xy9U(K_I?(Kk+q0<}=jR*Kd;D745%Gt9k@ByR zRp0Dx-J}YhT=c&H{=8x-?0bj=X8`!uh4CI@62svG%&!lplMBcY&^N2Jz`OCRz`{25 zd=O-LeZ{CqnNJ+_toh2BAb{t->S&f`4O>zmVaoX&Z-FIAVPb?mJQ zlv#4c@DM1WdrVn5SNw39kCF|>GV#o1#Ls!yLL{91+9Eo3{OhLbB3ohNBM2q1cR5;) z6FNR_rmL6g(R4T%07CW$sY0L%KwGD}+pjNTTOBIaKdm5Ij@~SKb-{EsbV@g7yNekN>EjoEdD*l^;=e`7j~_sW=XTeFWP=80+6*HDaoQm@Ewd z3`RpA$HWT-BcH6ksmc8X{fws>NgJyVez^@elJ=n^8>{o}K`$cx6&mIzOlG4L#^(=e zMCMW6tD1w!8hv*B0cq&F)9r!M+m%>O0ivD#l>RRTIgp3m8BJI1(d$kh@ffwiP?+{= z<;9b3^rFz~<1Uymfj<8*mloaXi&x$yL3mNgv?As9&E^&ouULpk44CW!7{>wyavS%Tly>GN}v(!5ZoTKkgsVu<&3N9^|Jb@%mwLU(h|Xk&9V#NRIRI2CUZo(EKeGpFrV zx*n1RGyuNIv_M=hO5Oi5i-JOtIDr^-r_hXC7g^KOETdD)uOdhy8+r zO%^97N$L%PM++&1Ae;(^2G5oHYdv0(s`%Whm>fY81_U@<;y5L7XNby4Ydk(X)=LvQ zIK+Oui8SaH1$Ru$vJL3F)RQ!z*|8?_lDc9JW!49l6bm8s#z!}MbV&+j(%-Qe-gNYl zDaKOLTY+eXoxRPev#B$sK1v{m9%%W%OQo)cP;6?|6n`Ao#glK6Fq@f9Ej_h?gl-vI z-4qJyiH>m>LucYyI8-wnAgWYZFNN{1v*sm>V=jH9G|u_lOiHIr!~Am~{E$4DyT}%h z)f24`Q#)zh4=Dl`{veaKK^WGiLsWbiPPm(hj_bJmI{yv?%tRV(SR-xJ`uubWRDI1* z6DkVwC|RY%_C>QTNNS|fJ7qDBjo2Mj&XfCfCE$(SJ;b>L6HgOMzbWe^>2>C;jq5+R z2riLu{;)kFBex|H?1po)4*7FS zJfO3B>);)wl=C$WaPF#k-?io>*tK6WmAz(8apMS3`7?;}+6zoZp%XJaN%c)};5@l4X&=Nf7a7 zn%Y4cBH>spu4hx{E@q;=rr(WgvE*qoQ*>M1hw{xbt!`kx2|=OWAsuH8XZ)OVOJ4Br z?$NV0N1oBCvNB~|Fj zOh7jP-96EDkT>vcZP?5#e$sU9`2)V#f(J6U7NGObL%kYJ>uoNt>#W>Vu>B?Q5Eqc4 zaI+k6N50j&E0oU7oINtb)SIyO3Kb?wj!#}qZyE@dug~-X+Z!zuon8cEs{1fYTYqjO zuhDdx91kLv-(R7tNrE<%|SJV?O`>UbOzdZ8`^w_tdB*(ajXVU~g zo!7I3fPVkDwA>pPs;&hc=f&nSpr{?c;m1-=E+ABs{~xv=tvq zN(xm!edmdg37dg=zq2xsltbN)L=?&xJ=IN*Gdn)2k>?eYB5uDwwm_TOLEpFWu#*CK z_6~|I>faI_`~$kFk-J<9>u0pv%Q(&Xv6Xx8_)MBk7>whrU4Qb38@sr*o3c5mx}b;? zP6T6WK$UuO%6R}8M87s~b2GwUeT`9;oj=SL0p$0u4h`MZw`e1iXNIRP z8a19UFcGwf4P_eV0VsgOiEbO^JJsE)+2l%aiw-V)JKhOvOkJl*pRu@Br5<*_CSYc+ z(&Q-HClEYb?Lf`;0;+o=3GfU$7I&JE14_UF;05X61K>MT7XPmo4Gw@q&I7`HKNQ}( ziE148&@y}-E_KA*66n}hcXfg85ogt>Qtv^pU~Kr=M%@M^mKvYa$8(`U)MIQJ!hq$H z8B0QP#2X3d7S5@J?Zi|F#lm#>ifY{4;s{bQnFd=mu&UjXw2mAA5EuwQ}!Tg+lk|o3H8p2)Qzqh&b zs~tG9bL!&1^$FX;RhzdL8d%7Pa_e%AKHsQ2(ANtLKMDh|k^dqq9hU!ZMc)5kfzki_ zxVeu1T>Og()-(l-#WlK@iz{S|v^O!`j#At*=9QXXXvmzF+|>h3`d{NXz-;mp%MM*Z z)=kYweRFqkXxith+Xazjx+j1@67a@+3-U6=!w#iq|D$@7PZ{?=+{LmPCgV*#yuSi- zYbLL8;2OW}@M(UPSsyqQ5F^Dul+)iMvEavbpE|x;qrT>Uu{-%r7Q0+wfCV{NhSK8z z4DMncuojPaQ~OQdc(X>bA&{lQ2S=aMY2 zer6)JGn3m;h#h@yr;VqcOgtGuOI3auQI0E6++DI5NuHkKi-1^zXb%7Nc8 zyU$LQ=4?4V>n9wIn~(U;?R3S)a!hCFf^Yp3x=y9A%{!m0l0H##<{DJ5PI^{rti*aH@0$+vbm>QE zWqr1-`A2^PvZLYCU1$ig;TRRi#iI7stOKywLc{+MM}TU=zMArq6`cOXwNL&R)XcDg zus>A$<_=g)6D*=02@b-o6&`Lj0}*S55vKCcpXhY4oD^A>!kMWu`*fARQUun2r+X3r zffI1Ij2Z4vIsp;bUeZfG$^S|KJIvx9jg-s_-A{2)((QiX?aI&0HN&`{t!mMvx(gEX zOA-Eus;B?=rch+w6cvp`j5yKIGvhaw327_#bCl# zwqLg^h752W^%P=ZhKF9n{%@2OJ*8%!yvCeadueI_@U{Sp@Kw5WREoj3r7yU%;*0)= zBK~`%gpw!b4vDw(%1s5_tgXDzkX|W{{8JJLwD@~ zAd@R@DCez8gCn1@lIk1JCTiaiZ(ksD`r(=?H6Rf2vHh2LTn~9kb7|jKZtZ~juMInS zgi4}?Vkpl}co8Gv7ItAz6eM_@(g^B?sQ6Iuj9c;fl&5?F4K=cv{okzW|G(Rl<^_D` ze=(L_faJ?R-7XZ#MazgzJrGIODZO3qIZWg{neMx>Miv1ctLUv~ld#q6$UM*!wF|HC zU+jp0xo6Q972tie@irS@w@E~>R?J`+%G<;C&(U&!AQ`BQ{zp$2QCbflBGc}opz*!K z&5s63=CjS>r#XGf(h3IrN2>0>G+U-v1JMPb9k9kcqV)W?7wkz3=Ya4V>Yrm7!H1efsQi zjJxP3y4As(&Z2@rEhR#UFuw)L!UkY~Q8Nc!VXwNORr>?;;Wlv3&E|Ua`L8R*I<%_p946&`C{uecJjfY3xUbZ$80(y{ z!~79WA3Av#^Co*exOEyEx4G?*B)kf9gxiCuT-HwU z7Lm*iT4`Fv6=NCSPcrQTZBxeL!9_Bye@{n> zMV4FjY(XgP@>+bKYi7j+h^G^J!^1z3FD{55Ugxa6@-j!+SaZ*2^QHLiqk}u*8y5qA zj~k;9J%yH=8Hk)L_1)h`S{7F18dfK$EfZKU4z#AfiQFQ0L3-M9z@DLNS=^ZR_FXu= z>+SIr&fr6A5#0(ZqRTcVs_u;!WP%npS)92M#{8ZN;8q-XLAL$xYbP@v1i;B(&o5QR zc6TNpJTGB|ULa22wqQ>QpFIxpnHnmJt9SDN34UIns=qSchXq8v{%TnqzFi2Z|K?s5 zR599k`g?frN)rceZjQN|ck;zOGelZhenDov&2kQXE#!y2@;U-Pp%0`f+DwBZ2Y^<| zTj%%QLg+_B5(UX=J&XblQnjN~9p}Mw!huE7@O9NRFr$eiENN+2Lp5-fZt}#x>F^b}LeEv?sTLrd-Ab)4{^WAAXIr6&`1>9@xQ4^wJjcbIH zUSvX6pmePH5Fiw&=Tt0E@-nk#1q@_8gpNF*82caoLGtVDs=$dzPt^i7zF#XH5)Hx%1$_HMtZ7#l&8$-z@SxP>rq zH`-W5=a)e1H0+%{=oLRw=%62dw#LNE)HQwxl+TZgeHX|rNdUjX8F=>2EGn%>o}f6k%*aRo@7X(swNCBxGDb;wy1tIhOJ>=@ z#t!Z6Ii4h4>!GW;VqW}L>ST_++@vAY92UGu2Mp8m*}BQUixD~Nw&b&UX`Ok z6+9OcHQ0!!&0EN&<7NdtTVEc1zxsVr#qWD{ZIEHj!Ih9Th;a7z>aB*y^OVI6N?Xpm z(EBbLJ?iU_nv2PsX-`Ye&plQPF?MPxc90g4yIVamzNi3H=`f)#aQeL#{eyL#!1OA2 z>ttW+LReImrgz=l_OdY}6@WJUYSDasW-1cYKAC?JRCJL~AMURJM3j z?xRm8;g)xRNgl&Cdb9sy+9I3fBOs&ub$+eo{COq21aWw3_;_S+_wh~DnzpKccHTBg zmMjDxeihC1a$J07<}w}|L2Az(FStBFy(m6{Lp+T`OIcK1Fi+OspC=qkf$<($_q+Rtzjm89rw$-l}1j=W&8Bd-)vfWN?H_8*x6|xuYH0m)B8Q_ zeK0-NtnyZ@#)#P9X4PIIuk9OVhYg~m{+2#Bgv2txDMSb0vU^Z{GElKEWr!fV4NWqx z7N?E$rM2Y{5*tQ0>1~IMn`~d6fIn?Kk4&!FN;;2lgTKK9onDk2*rFpPBCE3CiUY?l zfVW}>!xwghH?v@5HvRZHu_Y?Xk^a+yX8+LI%Ni$T=WAQIWUc3V4A^bpc#R>vbHFEl zRX_*LprR(*Tnj2Q13o~k{10`gN%+LI=m$}mz6Z!?`Fo z?E#&m9>~(LD)|)BPct92e>2Fb5ASYf*e&B3hZ7Lzy9+AGy#%$T;a>Cr zOsn)nv(RD8z=iBGDr}UpT5KQVZ}aBFz!&5r1;h;+Xe;raCR2=W4t`=P>RIlrG7i{l zh1z5p{X|$8(^_NWKj(;WP1=yJ&#t&g0O9IFUftW%ZX5FT>9+LrZO7ZW*`$MHnBhdV zsIE{%j~z8*>TBy}%U1gsP1V^SypP~+Z{JcipDmt;iBwI9v{7ls##$B{%7}4RTdw0O zpc9%fKJn~cHd}Ja{1YV$?YZ2g0%>G+0xhI!O!?;P*mIR>_u?F17d;!c_TT5e`8thH z3y=hnmGtCm9Avu&x6DBLluBCItMxAprnY=8qK)w?es*f#(dPYNzMDNX$T^U02ExF*_G3zAeewsz7GiTlbob7DmV zxl+^DCyLI_b|wXSUUYeP8o0^fWWWosJ-=5WET6;GEPH3LEc12ru(j_lrh@~-OlzM?+93LDdIw*;I@f@PxMn!|#4l2n^-Qb3tjUWnIU_w8)~5N$#J z)!x(EX?xbVSBI!c9qtJ8E$L~E0*Mcbtu9wMteqCg|3~I+soP-d?0BlU%t$~|sk0le zTji7woABiTnB9oo69r4IHm9U+v(q+}!v?A4$GA(9g#B}|&=uQ;X12YzY4@s9ZFE}6`NSIB)mEVwI?KXjg&{9@DvmY*4UxbrOUfoo zQMiwQ?FiTTgSTfwSP;O7Lb z#m%c~vc;2UX(vu$QgB;H=Wd}BhJ3(WWx%T;&Y|LTE|sjl_K0ck6OL%VBl?f;#Qmrj? z-Vb@z^_;i$TU3Q0g~OyH@Sw+PXlm#pJV627TA@U+$uq_v+9)=FMY!ycfNupsBW!3? zQ4XRmzEt79Tb4Q(A$BUhLubm}KNnMCm$OX?Y}0$YQZrQ@l&C(}IFjVHGu>QOBr`kX zm@#KlKa&R8d%r(itFGhM+TevkgHv2nFhsL*7u$D2b2O!JM#UDfN+%TiYhmxe!wOZm zF2!fUYPp^QOtx-A8q=etM&^X?=+^&JF*PZA#dAQ)RE)Dd{>n$2dzi*DFamCRM{tax0BAz(h8!)Fgz9mBe&toF2`NUr=yQbphF8T-ded zgqe%ZM?kXZ_SoAJ-0!bM#3H^;9B^up0V7W@!Kbh@HQAiW|8Ty^zo{U(;bd=)hyS{~ z^QbhJT9ZeH#Dlk1X4`)f?2{IFAyr-()6fURcX`~5!Q_`OoO7Joya(^LHR|cI3D`p` z&63?_)8^Ix8B!C>m(i;hqJ1fySL7!+iU<_RBbzG>Rjzg=3P3w`tMdp$~Mg3nfW30YuoLz{n?tZl!{*N9 zF{^`Kcy2srvUp$m^(#D4tIGbJ8ULBb&9!plGU|WIh&ocfPDK$r&Ptu^;ymiQuA9;6 zxih=jbW5(5geUjeO!BS?)@JkOXO4$lyb>jrYniCMx9+ z+|KXm=HGjjKTmTD&DqpVHY_~Rma8Wrb8X=%=o@Io!I2{Jb;2e|PBkwuzFRq48f-y?w`aGJ4LuTS~{?${Yf>_fjy_z zn%q?HN78%ea-#hb;|euhW1W$wb#T|rf)>Kn3xxJ>##R?fB2F)OSj+v5CG_~_|8uh< z&~I8_e%Lsj@c8a(aY;jb)rvxl{6b{Xt9$Bcdp@iXQW6)}^;Pm-hk5r#iM3JKGotT& z=zLH&?LfNWbD;DucyS(gb27MXUP>4@A;*|l6Zl;=0GaEU_(N7Q zCs4Da_ip^#k+;MF7n3l6JUEE%?o{%1@1aK{l2``=%3R_JHi0)8DpeAep!$FHVI7(P z4&Gs@>%2l@tbYVrVAAa6(L%NDstmkHn>*R)aCwwP%SV=c(V=pA^QeO-K#Fke8|B2sh{U|@xkceHMiRcICCHuhm19(9X(r^S+K~N-WRI&j>7a{Qu)B^Fl{?sjx5SH6UB#v5x=fYN z5n7iX@Rhv-01V(%9SJcn=fL6c7l+7yIjogG*biTix|F*u-^B(w^*=Yr;aC6ZR0ARI z$p7S+w~qmBpZ{D6*MA`fHa20PZvD@f>i^dg)$jlM)cys!ZU6b}@VEWLY{9v~`yb~^ zi*qHo)Sibze|#fqXsP(Yw7&w|RT`%h0SZwC=PNZaKRE%E@?`$`7?$$wwhl zd;SX>1kqo6E^o>WP|ny3OAOX|EnBvuj+pFkjg$DPA=J6~4|ejDalF>oO&E_;$bR^& z>4D(qE>XMSfN%81Wo9EPXybEEcbUEaBd8b2BLh3jOit!Qi?%d*8jz)PZgsAf!QNFK zL6Jp`qy~e3ZiePD2T)AMO-z-RrJc$w5NE6@U+d&Ly>plz-F?SS5k{LMbxZ|HQMF<`ycw5_e|pCi4-tDq3{Xc2;Nuo7Y}e?w6zV(|A(wU$1vgNMS%bmr2@z7rk1!S;8lz{wpi-XFd|9IxMk zy_0XSQV^WaJbwr>?RSPG%sd!}q0IaL;fyTa399|=(iWinlgQF6RQmv%bq!kpaj!nn zAvMgY9rR7IV1LP0XLY+ZC;k=Y#=O<}PW9s3N|LQEHNh-ABO>)Pl{cc@Yk!{MeBUDS zg*QFfMe%5v0(L2-&18N%9PYO_&8Zdk3vPQt@=6f#Y2x{zWZ2nJlf0U8%NH}W9=PuP zVV<@;jEqK9Un?n3#5$PS?A+DBcurgIaW+GWN!~KPa78y^ZF1b&JUDM9pa|W~e|;#;Tn`Uw9Ho6(!@c~m?>zJ~`A%lmt?_W2(~a?f5E>*{f#0nliI%(lwCHzIkZ*ta8bBpjN`PybX5M+kaMw?o!oZw*Lf`K0GWu$DN zG#6ADEg|_;pC=Xjq&_pLTYk-Tc)?Q3<*8sCBo@678ZN@>!yl{OdPPY|7q|D*$y(q~rq#@B5Zn8hve~{&zBa>d;)S1AK-ftEODtj%SXG}ecnBj5%5;k1LF0uc`ey} z?qbYf;77#YLC@p;Q{$!U^-nl5badK{naKp@x5uE;PWZ7lW7{2{srI0dXMksC+OmKy z=jI;MpA<$EMXQW6FiPlRNQ>Ah16=kjc-Tbxd-B-PmAVRx_5{^jOn@Nm$`sr>;w*01 zOy_~y)Ge38wzoi{qG z?anCoYt})9NUj+}jmxS<3p^x2>_7C(Gs!zAEs)MwY(z29i;+6-8jj9A|HJh3)x}+K7YSMuV~C_;umv z<_KkGfBZt8{k=h()=jbR;~}|3SLCt)h^hfB2zfyuJ}OGy%j-^B|J&$w(%cun(suoB z^4|?3Vf4sHQQ@JH*cr3;snNW99%8GFE(!vGG0j||iyX)8Vrs6hZ_Tiyt%@-iv3}Bj z?pd&HNq|rBC$U+n?^$M-FA#Z%=X98z$Xu>{JBj<~=n%lodYv1^afpiKi-l=SLOfVcnaR`fIkLBK=<5r8t#6 z!>fCgA`c(fjE&~8tR#aI!1jx$OJ!0aU#aai36^;wf<<#7tTOi~K`xlheNlK7<$qA6 zWd3wKcJMDJ&lXm95pWXKCxoz{9{HIQ*sqWFojqiC8Z^(8aOeYe;qz5juN&P+!En*s zyI=U1jBJzLZ~Ic6&X`yfUcjAw^~~>szQ6`96w!xpvMxBH%`IN=U3!*ORfQ@$#j%nm zNGo>BaSHDm8imG3Tw-WeSxI+d>^5F{MY9#Ht9I4?g2sfZxMDyj(CKSKcEe}-68z&C zb`TE;P8fX!LY047Z)K|FC6qVzBCA1(0%~0sW;(+r&e3GQukXSlt1$AC4N553=jItV z)R#{+vSt^}5MEqvdEKt|Wr<8%%%7K2?=JYNRWTIG+?}W;eCZu`k4TAHO2Cf4 z6;>D{;^4x2Z;qBd?6W!QBp4St@m?1A_c$1opU+#kEuw`41%CtbX*`e&}I zAM^=tyR=oo>o`H$p}34{Yu(BcYcOnWuZ)wM($};L ze4O@uU{;|@!#;nlkn$4!Zf;XrQi`_k8Hm{8>J*_N&KVU6DmU-D2beyvWy9~N9vG4K z8_r%16sfl8Za^Ed)yVo|8}8Mr-Nh|6Rsh<={eS?*j*Je0sO>#36ib9y*VD_GGZOU$ zQh$K#abV2!o)X_97-?q*gGOCMSaBy0h&$4}!b>X7zLeC?D+i*JBlUstxx8 zS36LR@t;G+zEh1FO4zC7dZj5_(9b(D7L_T&{5cO@M-HK%v69FE;2UCP!N!Z1 zujtLG$^D?b6V&JC$>58R=q?)YJKMa*sSs6fwEq;PGb+kM9}$z7^}wlQy%AQ_>Lu6k zChV8X?G$>{J4H|Eemfn8@(qI8tv0x`j7J>SfRemA@2~4%^xXum#f)3EZhuFgXth~> z9KTj)K(en0iA&n$yoYoK?A+LD`p-=iRbTh7EJhTL9;_Yk8E-aE%qrsTB0VKs9Kt1}x@2&iL8AFnO)S7~NXx z6JS>eOIv6iJThdarP`m!We9jF6B<81A6^;p6Vj+pxuBK=t=JpK%k|%~u~4!(nqtgt zS3heUveZQ{UbeA8SdrFnreV%=!8pHGnyu&-@r4yNL~y^Y-2fo@0JUlW%U8Zc%~?20YcqZ z?;>FDxsQkt+?(B;fR6AX!fP(5w(<8?A@oF2<1B$ZnFeZ#7Oqu17i`1rJs6cFnyyL! zn3QLfX2rZ-#0tWy1nec*W||Jr+FsQ;3<&MJlmLd{o4l z-J^xFvEv)_zJVKCwm+>%zH~h|W$F3Ao6(X-H1`^L#f@h!LMXEf81IRnLAG`y=lhKA zk$T?!gb8R#xWQ?lHc+%duD_e${^|SsyJs*FHFBoa`zv;zOjU$D(5zyey zZ!={AqrOo&3xU6yxl*V6)*E6SgT)>vdKgER!4~%v`+e1n(F$GlGUK-@3)AVvx6D07 zCTudvN&~cuMBaNG#h2fVzT0W4Bsf@w9e4+aTDMGpJiWl`_g7c4MQG<|%7IRX!W7Je ziZzGZ;859abvGl734ctHB&OtX1>Ek0gV?EN?;3X{5kbYs1j$LjKx4+FHsxJZXKS%D zGqR3p^z5z4^RrJIQ$%U%%RyXMxF2UOO|JeL7u$9#^EBZ51=BD(hY2U@ zH!7lF2X{|E^WU^qF6e;NyUF>t+Jpvc&t~hf3F6M&<1A)kV|&L~z1=xt#VEbuG9r@ry36&J?UD97Gc%4&(8rmxI(Zs5tLhR0QW~T{ zL*oy1%4XT$MeF*nU8am$Sf{mkGNLupjqNo9ooEXoZsb5~>i=Qy&7;|DzrRr(X-(Bu zsj;e~*3{NKwN*SFP$eirQB^~bM$DljYJS?HtszBgN>Eb}L$rppsF)&}AVoHqxf;9fct+=_f|_s8<_u7yxN4I5Nmkv*J7g8J`&!Y z7&~?VUo?B_MSTmfg@!ly@JYSW$w1=9>iD&IwnM?7k?5eVl|=nD8vMM$S4vZXfj&_= z`+5$|^2-f9hX;0rYWDU-`12zC0PKBfbu_#C1*=T>@A30Db5@JWZlAQB=Q*ecgwAt( zKOCXIS#ustD>?fnJ_ztK8mcui@0B{;gea4*Jl9-a1!9K4yOu^h2P#XNujx999=FYE zrW<=f{aF(^ZhhZpg)eS9>tOWDq4sO0#=8af$KMJVk zB3%vQbu;gnMV?pgP2YU*d?a>A4cAZ~m@g_WqgKe|Zb_8>IPEhur7O0)H5)bqald_5 zBNYK|c0X4Bj<_J3seGh@3vB@r3P$2)nWuhmoFqwjM;s27gg!tmf~Sz|&sn>T3p+Ej zVoNDUzRYDx1%K&#}qFViN`Ks zlv3J05K(78r(B*%=?FKP(zS4=G{BVBBm#c(xtVwnyM2FQ&Jmo|2#C<}rQcR+LUfyvB9TSguqh2)2jn#8I zek+-INpvA%_;63{`|gUwHaR>rUOSUuE$cQh7uw|eAz^idv@E%xhdE8Q!_J=E^9Cx{ zXm2LI(lYCElV+nYHJGeXDPM`CV@@k10#UWAerh#W(Il0SiRCKlh<;+8DPLV4Z4)=S zKPz(}7ShaaCg)5OQwT_Ut`n*Q8ZHr}PO!qGj&IgJ_755Xlq~Wv z_Y6!@CyhKKnf>A(4VKD>MIz=W5nWkl2fpn{)N${bOk3ca$P6RK%LUeE)xAk817>aa zRt(R`P35hn8)pOD;in$q%;sJZl(&;Z{OuCi*X1A9e>5x6B!XHYnFLT^`jzMo%}hOU zMxoa~1ApG6_OdlB+dh`Z3Pl-j%{F#1c$=jTQf=|vqfhSd<`v8nni9fBNLHpwf{VgHDg5>8cBC0_AN!;IOv&L(Z0|N8M;Vc}E!|7n*>Y5(@ zTB*a8Y(D+IG3~r6Euc|bc=qkP&a^W~Z|JyL{6XdwZAf5gliaj!N0s%%k|etC8~EEe zjYoMAm5zfmC+%FzJoV;kA!W#Cz>T-w2Wat+OEPBGn|a6-wYa@yv5IU%bkX0V+A_e$ z0{0FB$mzY(4woFS`i<1obeNL)V;SZ@8L-Z^E#%C#dU?+Q9fx9je(K7ejODu?!0U0#|2mrc|2RDS zzsG=%hoZ4uTF2|iTvb4Di6~t$nX`T zK}udZCI)Za9RykhNcVjwwgTdDijy<91Rm?tg#|iikc=^K)UO4e!;V{-hl@LL(3F6Y z;LCtHyPduj5}&q;#MLzl+|zFe&m{uQ;G{2_3VsPr1c36Lz~%o=F(L&%0LK^1m%81y zs@B;AZho`9d{FC-X{qhU`&nDa!F@Mwy+b_#uMmm82hsoAXWGq2dI80RI67?q0n941 z3nbmgM8-T^E_KKTUl!Td6wTdg+sVtM#@PO}dQ4m`P&B#Y!p-$_Lc+$h7;0h$!M4B@ z(O_rB`h(@4gt38jCagF5I+RVJ+6ickxdu%__n?73;v#=edS^RD&CUS*u5Q(#sLaY1 zLIdwfO#gL20sUNXIQc~&C*u{@Y!xYROd256zcsL_jTkI*<`^@ok&O)_wSLz83t8%n zML07UaSI4!=osDvm^i;lxke~9B+9T~*xqDN*byLC*Ot(!Vo>IT(e`};{5-_W4N@ub z8ei^cOEAj*5D_JCnV+eEdG(2j1OEto))w8Udj_NY+FchvFjdSe6JClyj{gk0sfL!6LGG6|DU(rNB(meG-UgOB=VQM?NMTFcpX?&6I)r$Rb309A(-!9^>ZE5|_3 z&@lK>Kt8V?;Z|WZFt3l|M#(e^*=kT%7XxIjS(+6v=EMmjO_SvDrz*>ekQ*pOrZc$c zO3GmI-k-VAcPPaM(a`d2*jh!XlNFfKO#$0d&Ynp@33> zWs}&{m~v@zv~%XKiI=W|ylF;Q%mU%~G4A|n6PMuSFR9TUcb6m>G0bEVe7`K}$&{Yk zhN5yDYI|KuyV!E76<1Ttq^gfyBKkRz^QHoB#QcJD{d?%5j{O#w}_su$M`T7Irq zkElc3FK3PDkPw@J3B;;eseG-Y+Vit(E!6Y9kqgdoVoMJ!pI?!Xp2?qV?5@OZ81W!D zyjl#0k#hLFS!3cc)s!zaImk+52{EgiocJ!nT%~YbUA933mibWW@}hmMp_oL1nDf!b zJNZVP5g`p3oyN&){dRD10RbjZ`%*yQ;+d}*fAI_nFqDa1isd%9{INcCy3=GspT@l<`xskq{ZRx&T=Z=d88<*`HH3CF?Uf z&3SS=wWTP$FRbS3wN-d}7C5f^N86~->6rDYI6ne`6Or1XLFL9iR-oxga_X_7l?rer z-+6`*_5E7^F>(qBsQXV$04fu9gj4OG$dKBxeioT*r^ZDFwv?S#V?sS$G8HqzO5$ED7brnR6YGTu zKgmAh#L_`4gv|ooLy>Fq>CT0#rNuj4N-+J_yRTZ}l~Q1KcV>0~&?X?4HkBE))dx_7x&76<Tr6l&RE#kZPOd-A`mdHOv2Eiji}oRCeL~Ms*pT;$8p#h zBaW&%IWRkh9sX~umm;eLC?eqF0Wf6*-YWG&!BPjJilvOTUbqL&8bz-*M#tdrbs@!X zvd!U2zmdcKZeY;NJw|n{t=6pW5NOK$ljH7(++3XmA@A`!g8}Aaq1DH)VzCPqsM}?c z=<+eq<9qPLgl|IiMebq5hl+~lD^vqV7~Uu&o-g?J2!L*3^^zN7r(Pexv*%)MgzUSy z;{FsyW!T>jD1d$B`5&Ph*P#^s$XfHledy7pMR3}&G1vtNmT zI$8yLtG5eveBJRS+lL;f()=Mr?Hg1O37;51_&pqN7ZO8(LP}QjN>EME|Lz1OWCjzN@TZ zI=3^kE?BNbt91VOKi_cn$93h33J+ANeUPz8r`-T$5CN$?lxs`3-v!jM&>Xx_H|P5j zW2o3n{nP}_(8{lS~LaW zl#LGK9^CMT7T|ZV`5cqSN0-~n$2c#J#;xjCHugwKAAg>tWX!B6ugE!KsdT>>b-bzh zfpnj?aGQ&o;!gNLx|b!f9!M+XL3g)Ip{3ENzXtxvFO;DHA4A@J?CL3gT#j;*_deqg zDpCmP?Mg4sR~T~kjXf8juTxm!ySh@xTdd+)4=%OBIVZ|(fHGla!m#!XTATma8z6Z$ zh2axZ9$Xze&{BOcrG*V~fJcmTSy3g+-Vmkx8^$VyE8N2%e+O}0^#^t*%n!U4bhWvA zWMbh&>FC_o4~E|oJ{Rb>L!Wm}$wXAE>E^bFbV6TxO5-2Ol*GS$OzG}^;?e6!G~8OF%?gdeb!3tZGa_~m0ewxhO2O*fT(8+)V!)5)A4kEu7JkihxF(^j9eCx|neY)J&YdRa%8Em(dYN%*E~v zkl6@6AaR-7VPRrpptGPmbMS|m5X(S{XTzYcRP8Lk`2jO<{DeMZG*dMa9Uw-idjqRU zIW3nWK>rcQdF{c2hkv)*+eZvpZ&xAw9KGZQS=}toa*L>CL3jTp&iw{T5UgYU#>aFt zl2?=bEL^0fvK8=hBw&u`wso;h3~V~#3#K99XGqw~_xkdlNM&&7=Pnoqfr%b)g>Qg> z0SDdu=;PmRI5uO;ty_imDvSYj$XD(8S>JRpEZbBzwHw(&7k8p1x=3qB)OURakd`mL zW0r^5mb+?Dekh`>=3Ice;{swd_z<4&6I7B1u!toDV}v2&e7f9IqN)?iaGGufib2~y z<O6h)lLN^o?UVhE%=Wq)1a*B*hky1FbLch|)Q)n29 z@+*SpP5LG-#N50Yrr#CRO5{=xU+sv>9@Ovgh36ExyN=XL)~P_HZw*FI1Ai~gFV7E<*;T4<2|E?C z`Ytx1|An3=<&z5G3e}{vu4_V5y~X2aRlYvGT~qY5lS8uXjt+#lzw_G2p~etW(;DW& zydSDY?i$b!uT1-8-W|_(M2x=Zgnf=sV}3JHRN3Hr-^G+ENlk_yzH7vWP;zC=p`k%3 zN&kF!4HeqsCX4^%^g^CyG2boZL?@4bSlC=s=cc}V{@q4Zp8l3Y(9G}yHn51G}{~QKBjxMwRA+v=83#J)pabJc0BVk@0lW(0Z@VI9#I|P2X(T}yHu~e zWV!(JZZ!mY9}BdK=vAD$7QggsE|hzPO6trGqO6zAqNffO40yLWQUu zUyF?|#10uvpFA>%qQDv0nM?ne z?gHr1yQ3OqW=`c|N@sOVCiSbyPkddbO7U#fzz9=zgYD_w*LL#RDEo0>i*M4T0TE$O z8dgI&)*UT;Aj8C)Hz7-(IiF*Wls6T6S85n1nVvZ%wufE{6?E&=k)bVSn^zw|SK(eX z#AdpgOp-NK(@}Z)_hH#gINhixt@WJJ%m#R&Pp6mgLiYMf#ah;lQ&43f{J3SXZBR_} zub$KYg_0lFyyR(DF$^4Q`r->Vvm-UgJ2-=bV zsnNtw5=W--#y?I+j=!-xaKY`)NzXAo-IwmKENpZx1%ct~HKO~n6SH(n+jdoa#Oir@ zDt1o6ky4epK){DvV6D#<1)TjqH_y%?c&mv`$fFpv$kjV$zJ{3EyeiFTSE+V;Gq_i# zQn)(cz+z%^DqVqKa4jF%CN?%C{4yqHmM5_|^dgPB^Hp&%YOks=C>LiEyn5d*qhm`N z4{Q#^dI_;r;TVDe%WW-^CuH&*G*Sv}$Yfnb(2A<)zQYF0S2P`bL771x)lN7HW#RPhoVipE$ofXB8eNi5vRB?J1Z^s+k1avMvfe~Fa)wDzNmfXD2-+1 zbewr#3T^Chdv|rpWq-2!K>k&3MR~ZjX4%G%yZYxO)1k>n|B{W>IL69*V|ex7AGmx0 zpv+qr`LxWQ;zuc8tfT8~N2G~P5=o;`Q}Bz2(PD~MW3k*<;PW#J_mWH_JETv(A_|zw|r|M6CI}NL3~BKS_m4 zUs&82!0tE-Z!<$Lo(J9OOnax%7SB)F55 zU$SH|b90~lt=de*$LgsYA_qnARr%OZAWrR8h{*>!7OLlWsqonD@-ud~Dp0+t5svr? zbLG#)doOcmoXT2S7MkZ$ri!0Lz{A0;!H-0UA8D!C5-h85U$HY;1lU@Zc0^^a&Xz`? z^UL6R1kdRHOEFB{U3s4U0b?9oOvHfT; zeb_6tBdD|>cnMh6%p!7(lt;0@j)Z^!XLF_Oe@}qqzX9Pm0_iNE%8(a#=oC=-0t z9th+W_<{Vz!0a3u{eJ-aX59R%eX8p*oSd;opa-bcD4@aY)#H%569)S;nXeuJl%m!s z8Pbn80bRTQ3vhb@4G#Eo3;+z-+9?UPAQX_`-NtG)d{;|LL4eB3nm3mWSibuo?`z&T z9VZ49^#|TBG33+K|AQ9#|JS#jW1AcJ-`)lb&$R`IY>!>*^>)7fxLbgu;l5i?A?zOXZ@VgS-EcxFw$W60Yi0goGa-RiUs zY_1G@fM45b4>T&jmoy9+wKL>_DuBHVc)d*mQ`ZxM(m|g5n3ex}{NG@t|2LHXe@=1# z{|DqhivRm#0%#!N5c_v@+^FL zlo@J!Ys;lRn#CV+i))@6wR+-2iERD_W~giDhL~&m;KKYPmwzEQuh3yBO-rvPi*;N^ zH?r}#wR8_oQHAQM*>A$?i)Hwehaw50MY%RjOI@tc=;+<026fSuE~(xj{((`hHOY=^ zOtTnP3~V$=ry?`;LvZYPzi3tZaGtNhmsWG{UoziBS)Z-pXynfurTa{#JJM zXSz7~D`?!8e<06X1Hj&|(+W?PqYxw-~b^@tD{-5B^&=HKbhi#_ zJ4ML%s8w}LCMm2Xz!INDP|}7klFjTIjoGa%88<1=M_FqGw9+SD&yhm*#IX=HQtP;- zt}iT`f7-5zUtrCB^=on9PfdUcSgXr!Sym(SDg7v%r|;TUvfW4}S@nEApIRFBtzyx!$oqQTO6arFFrL z8Z{x&f*w!u%#v#>Irx0rv9_xYpMo%ncB|WsuzJLShwmw|!|!$Rk(?uqjF#%PWuZ9n z$Z0>{7|apVs*&-+guyn~@PNCOWT0BoX;&y{iVzyWy{fq{E2bd4egbo2QVqNJE6~Vw zD!Xlax=R4!kYq+_${ReWVfKwuqZZdPspWNG#Lnxe>8^^CmXa-bs{d3Rf=u-}WIJ=J zukRs27M2^DBNJ_cMW2USeNfr9{*GW^9d&v*&DcQ(?V!?mzVA_&N-xmc`&z+q&vFE< zjhC9qc%2-$m8Zbi47(!2a*AM&tqLFOOwK_%>mUO%FY89T>eMmLXK$BgzRdT8J^QtX z=CGn!i9UUYeBJ2C z2DXsxo7(Vu;6E!I45VYFpJ8sa>`FB*bc8@)@ttX{*PlPOd3TpJDyoGKH`<0NLdXN&tD4X8stv)2EFIleXGr2Y)d-2GQhK}B{Zd9(V zm+#n88?@j{d0^D1H3VJ79muo+r#gU!IQQ;LoT>$_SehRDc^EToy7RQ=r6udYv6#pZ zD#9DuGj3#SRO2@mQTK9zs_p_QxoZ69?L^y`7ZcA};tt5jM^SC67B7}l#*K@GbzYlV zDV#r+B7l`Ck9`|gr{)5|_J8pC=EHw{_xNN<>Fc|%i^t57J4^d6G#P}i`{JRq7fu8n zboT@QbM(vDVk2%$`1^aBc#a?h)-86C>ig)j=^5_)W7y9C-sWnv*MdploVr3}4a22a zB1lXo1^;75zf~!y4zR3wx|2`2aiZmo{l|KrJ=Eb21KEuKvYH#E!qvHBjdj^s%y$_| z_uBwHc0pq>N>6lhRtLBWH<{0dUnBt*C#6B$;q<4oLs0>(L2zsJUkc{Cvn`q@UU^6Z z7n$%yhl)rd*7sDnMW9Q{h%eUpZ2aH zKWK$f4}aOzLMUe_h}ij{9aI*efBB!rj=bC#bQ41ltUR@mKZpBb9B79Hr2W+r(F((cX{;F zalGJc5EZcH-2z%yS%q-^&;m1nuk^SwerfL4Ypb*TjnQMu$NTW$@uwB1gh6o~t&?!3 z;iVvoMzgia-+MMqRnm@j@XoX@_};QJW5L6E9Xo!u#9%_tuZ<$S+c?Jhn5n}%e9?Yz zgWUB_hpw!B9>(LPBbhUQ_%eFT1{C*0Me#Lo9n^Dy;88y)l$KA1lD~EeU8cwS$jA98 z$b{KJ<)-R~MW?c!wqHqw?;fz!&ek5e-HC5muHwf25k8uw1>-^2j|L6DWJOP;PwjI^{UgtmmZ{et3bq9Wpto(2 zhRLv`fJPC2p=qA=dH5@wsQqT4x6G}$Y{38E#DhVm4iavqDQ5F7;?KD`ns%}$@si@) zhvOoPPRTO#ONlxsx8?o=I5DS@neX(-+H~6Yxo2EUKE?2@#QtGWP;9t@jBad13fE3& zC_rW}>xDxLE--8z*pchRei-(4^*RpcMlPa7o2R7BU(D;qmZ!`SjpUzlinq2EafYvm z4MW;^Z#ypx=)uhKVwCJ&?H*2FD;~Uo?=X$o>Lo)`mm(rxZo zHel@QJ6!ycr=*&fh69ORT)4%yx+-pT_)F6>G*-dMci zcBkn-eikOm>IcUC9*O`tl%A5+Ygjb0nryJfxx2ewLZO%5S0Qmg0Y1^;wd(VFgy7?b zj}BY>Zj=*yQ!Udd_Cs~4kJZqDwxf#BFZ9kk&DdEq%&Co7ZYl@_DF8>W1E`kTlT&;L zE!(Rta#4JS=|*&Uvc67QJTr6GZbl*8z3#xJr!(bWd_~S0rleJ?WE>@;;2vZ75pcQV z?GR@kR4jCR-naN$9IOcO&#y1EFG))GvYyspSns7I4u^<3a;|@wJApz_o)U^(A+n|Q zD9319_?*TLWBv@b4`}t|KmqLR{BEDsio_sz*={r*9MSPlo_kMa#0nDOKl#NIINJ$q z5{^l25~9onu|vQ9GkgB&W|yNZU}NZMB;RLnspp2Dwz;z3dvseEYu^6$Ud7PUb<}e_ zZ1!60&hkU&7XU4av54TD1HNI%`0B9+(1hSW4jbc@ae9ymLh{_a_$MOt+KA z{iFrutJSX=e2^N~Qstz%{k$VW@1utKOcBIJhFW6C!)M)C<@p;S*_^=J5(=FpTXD!a z(=H_Mp7T-P(-IoySucUQQSi5y;c^Sh?dQr>ayLkjS`*H+dM1ze_NJOD&{kU=S{N0a3qtz@kD9qgDvCK+@BW>FxzVvaN+leuP-REwpsR~q@Ic07>o`jgIm%)E@#M5D0)fYD~^%0HVz78PzAg3 z{H+(rQvl^S9jhjWq@=QXBYY|wSj3b6lpRVhi~IX@B%f8w)^WxDT_5K#RCCui93tH5 zEW7$`H$mXy_4@sOF3Uys)cVw8>dnYlDK#{f#*0f(Ji3xN>g$60K+;440|B zljoaL{4lwq_yKpeOh@SM_VpjX1Ilx2Jf+EpAQR@yFhPY5_X-R z8>>&0F_cMe&j0l*;dGP+KHmdA3{*@THW*gie*2yi5Y=1BhfkdBn2>5}dFxfV#h1p; z$3Iy;DGMF2NY-J2f_T60x)rA@&jY`Ze(wInT@0eT+RW)h0QU@|JCRzh zB4!+ZbB9K;V$}NBG~;HyI-LiikEWY(!@eNgRtqYbor6yk{zfeCNJINPdG;UfM z>3C%0(`AkM1`eeeDR1jk zw?AhAuFB(OpiX=C%l)m_9m+f8w+KcJMe`q%moBQzoMPwphaVx<_h0FbDi)jeF7D%+ z#kppC=J|P#1A;%Ip_;Ga?d&)JhZzpE%CjX)@SHyf0(NSLV+5h$U?qsXdKl3u7BQiv- zQU{uaU6~ot&MwtopZ-Z@hp*vQZN;`OvJsRmz2yW{f`tjMWQ9|_66;e*%MHxrb$Sm9 zS8QJ1p-~!K03Q9UIZ9`Mv9q3X1;M~&KWlGa*HOz#B7bpoqhr#$4v}Z;pE#K0xcdaysXZK$7W(5lqf@pNIjPU&kKM z%oGs=L#G@7CAy*KPyXCiyEwn6$|ijsPy-W;%5ZVe;qsk58M``zUyFXmOcxZjC!6tS z;`AJ)aaubE-aB%&hacDJIgA&3w0x893U%4xXLr^xq-}N2ppw3BC~N26OX?5p&MI!m zsxL&Lr)n#cgj}^(OD?~p8F8OMIsl^qjyOMKo;dM>)9eOxv5P@o8iLP#OqM+~r{XwS zYi(3h#$dkx2)C+8MI5G&)g(C*?9!P%DHfRkJYH9RU8M3o&N#+0TbWzhfubDlmW7{T z)I<~Es2lhuDz-B^5?hx-qyf0NeufF}%U5QB4A#fFl#)9$PbXbRV${jb5drYKV2USM zklj*>!Mmqk7lAj>4X6rXoVnhAYY;xT5PAKJCY|2_XFm9@Y%j|bw2D25%?*Wfv@xEn z(8cq)k&jrDeXDKaR}{LfI9`45?ha@I{i_DW5sY+afry_M!m|g$kuileVD;Bn!YgRD zE!TKzt~cv`8vW7WYI(Q*i<;EEN6&twZj~5hk~6eYnE8o+4KAZeUv~ATzAwMRZb6NI z&SdavDon{bvz0}P5uck1+s~+4lB%$TtSe;Ls(yyLAFM*&o?5pNIq(7ZdYWSRO>YDq zz21~lmy^hDxafzJWYb(Ssd#=Qb;!wWfU$x6lQFgSv(;CqgXJV72qJJg-;;A3$ z9dl%jYBmPP9*v*EReDITCQde75%Us-3pdj$SP?J|5emHZ6WB| z<0b<+PhJ3wVdK!3OcQneF^_;jj97QrSOF5(GJgwwh<=b$j2-L8Od(J!c#o9&CZ>k| zow}Ha2^yUW_xIcriN1-pg=ej)vb35J;mfz(yACD7E?8JhCYE!vI%(YBSaDTE%&+tx zIcu76{&RoFqZV2aZy3mtVec3$0=J)I>bCrzi^+47oeRA+7-?>h7_#!PA_sqg{?{)R zD&k=<0QGNt_ldqVXSq=OryfCseGK4WV^OnBz0;4eWi+9kiyW=adyd+Q*>yzX_4JwYMhi%D@++M-~&WRNGn4SU>>T{IHJVjc?%7w(xDAQ13S(7`8uhtCkjS8p{Ok8C5 z&uVEI`%jRYoJ-~M>PaHfMCSjJ1TRmLB3vKku&a6%l399Sw^XH61f`_TJY&Y|DWNPcaFrZ3IType&tq_9-D)*=sEN{V*ZH(cJeYut#hs6^0)Jo1s*v zrlC{txRL&ou0F@b`kj<3=Om?Ze=aA4ymIiAiyAn4^NXc3eyyH*Zl1prShUFc$)er`&=lMn`F18Gbt+5$!=P~wNwXHOwzB3(8V1S?y{&HXpA0!nL;zsH!v;Y1Cv)&CcLaT<< z$mFPvoKNM5X&tfoW?cAO%4T5}1~|}$TplONT4a^SptyG>fCA+9Q|4L#(6Lnln1b6O z*d(Q3Iqwc%A`s9?-}G*KVj*w)IU;{bLviQYNS$jX+EZ1(HeX*;e|D1gI=aFlaNVv# zd9k+&rm4T>AvAZ&=EVv>COIdYikSM;tv`7Oe?Ry$_fLT^)gs;86?%wxwBKFIB$1U! zvp;v~&K~=N-SKmAg(BDt5 z5d53wDpvt0FUG!YVNt%wktVHXqVm!FU8*5YtOIL?XRm0uQ?co!=5cR3_*g0J9@;ia zVFs^ck^yZhB_-dFw3kq%!+K6;s&Y0{;mO>0Yaqj-l2_-+ZiW>L?+@hXm-!&fZJL)$ z%ekEqAJ=3lEweqD7!1|XRgUFJ4f|OI6ebFt;yio}=bWt21y;dq7{1Eh6?Od$KX46Y47B%h=Ujv`5-*LoS){cEn8yVa_^)YwOf3#`Mq8 zETgM$CF$QDn`x3aU%gMESw@++SC%O-i|3ON&h|lT8B)kHI8vG2aERb1vqvdV3ci4% zY5`?fY8f-7iGCO_HVxs@HpwQge&6*MJNJ8THBiR*+=}e0-Tb5;rWjB0L3~`L7?1rPLrmO4k;8=^Bl%Gm0psg5Rg@60Jyi{GjJDM94&ZQ+{0=j zLL$HU)4jEZj-{IG@9V0tR( zo+0Jc1Q4e?c+4r+x&UaB*hqclrtvWS?fgv2iIi|0{pMIp>A0ih6&sPj+?ugV=>f-m zu&3lU5?*A`1$oogTcY~R~fUEeh9oz`6hP#U*TQ}A?Dwx!vzrwcCV zNU&@fr)giMBK>M}*!diX{_%|k8kTN0+H)A^cA_!~D;u{0J3W-s7T)*}sQedFS%D4b z`E|Mf)CN{}Fbq^fG(1t>MPT?6=PpIt|1Pj@PmX-b&m21gZlvI_Y6v+czkBJvG7c|& z^$^6I2wp?2&( zbV3TLI7M%kU_7kv?>_Es@*SqG?`>Or6!ZZisekrKAK@Env^d{cc+I1K`( z`Rl;Z_5p zwL`6UJhHo2`_gLTdTa?OJYG6I*m6an#O)tBI&afK%fTo#-OZXjtZK3dzjEJ2$10kk zo&WqS!pzxDHW3%524uO2E@adm}3OWS4FtB!940wvULMZh1#X!=S=f!`|CDEIt zhg#V7aX5Dm$K_nEN+6TK!w?F8;3^r+nG)lLhFQQ#G-(Okzn2LsTC9e6hqSp+YR>{| zH!rBgaurEWY|}%s2R`MY=>gKdjSaqJ<8!57e7AlA;51qk=ytVBFey)Yvn0;`m<#xc zK<4-B^3MIhnR@BwKk;&(s!qV$%}(FNv7Cg=t?x#GBd6V+y{=-fD^;M25w3BMan!UI zg6P{}>7kFzX>M6B=6c27xLJs3MtM5Ze2tMFb_JK<<>s`&xf+PJ8tyP;_%6@8H;Jh9fA_3l#u+0sgtI7~Q#mUR{i|uXn|9lixb_EFbG~R2B{k|`=C(z zRh^1>9}|Ma5cYooNDBvmG$!nrzTCj3O`B86#KK!}NgIZ)G1PywfiBxtiyD$3RWMCn z_F{*YkI07$R@}QhWTq$Xt=<=b5y2>Ae>;!`A28lmAd*TpgOArXJu`;q7mCdVH%%^2 zB}5?@U`*5X_|-@NaqLdPACix|#vrfh)Z&KWWva`*zBo4eA7tCq7Wx1hfS`c0Ju{c* zo@a*ufS8*3$=$9-KGY&Mb>k?ez#y<2Z2Ek&nf$aM{a{YGW|H4#<9kU8VF6sMEqgLp z`r2HN|D20u`upWTz*>~1sGH{>Ts7&}QV!qmAK41ia=+Q-^|@oce$h;0go5H|~H3O5^w}F+J9& zu#CMqv*Pwe(@Y%Fn>BBskm?cx(Tv9u`qwv8fkI#nuFVZ9;*6<_dPWrsGo|jv=de*? z;&T8-Q$H^kFPjAfg8Tz@=(pwa8IT7`*B(sEe}?Mo*XP?VPq?1;8Vvf}-%z()BPE5~ z1S$t8{SLOPNU{x%H?MymT0YZ8DoiLS>?Ib(Ed82%gcbiXa;jXa-^azF;Z>|q@{|P6 zJV;XwyfZ0XraKsbIvRqOz8AfrT^SAjoMA|&j7Oy`xRBMMuPvX; z_<`n;^34ks!l#*tzx;eZMf9O1smQQce&|faSm?9fF7bV%AUUL>8!NB##`nK$MV^&u zq{4LAkltS%S0{ho->d&POTC|I`-O)l5k_AiReM&+AuwW1l>JBCl>vr2G@w(|Bu-p2 z9Z(Go&T~|2!cmKkCtXD1>)0p+#&h-iXOK!aO_@TO)ne;gmcA-WTtMQY&pIY^C7Ex{ zib8`A&kzgx^XdUAGB&xuAyGWP9Hu4e=A1)8lNk z0P|T^NZdS?R;U-zh*>zr4u8ZCwnaRg0?famqOqmvWa&9YG_+x9aV<2D)fK3FMUpb2stoA zp!^iyrO~i4?{8oGTGiF!HY+$TggBtWGSP6blj)@IIh zWIMZIqUK_!whO?q)G*-7QW~#;6eb2y&pFBquIYo2L#)Xa&i8?VPh!6!Gr!66iDZ<_OX?yz^xDk0Lfat;EK7JNXLgGn5z znCHE(p_11YbkB>k6y$v#F67iLpc1yyS<(K*p6Lvf&wifya&-syf+(rmG46>;sJ^TC z21p2#{O#XT_Sf&tn2Wa_+sbR>kWq`>rE@>5&uRYN9Pc2cLB*v^tSSjB1m0`jyr-?3 zS4^KKCk0%?fy#AXLPl)31Y#Rhe(1Rx7qLd0z>v}st6mD%7jS!Y4qyAW@tSUI7Y(Rw z8w2Pb-`eHmAb@`SCrz5T7@KE*_oz?t@Skh`GHYsg!+MvltbYL@yR9q-qnhimh_VMX zzi}UV$#ak#e=sV>B3$+@Khi?*&A3^uOllq=+Zlr_F;_oi+kGre@^he_y0GthO_N5REt z&|Ci*MmFP4nydZawSD$k!+L?;%XfbQ?NVziqV7g6-hD^?KJf5>psE7W=M96iz8NUY zEcA*<+`L#Xavpz7aYHBCJ8)w&fd$s50)2`Het?z@T*iKYW@q9afgP5skBfisbRMK? zFGurn4rt zuYm_??lb^=>Ge3!7OSjzD{w9?Nu?h%eeLu^kpfw_k^-1?IL)^wRA#Q!hS^J$?!5qi z8=&C6PCUg`!M~3kL=RRh(3rlRwH0(2eSUP~#V1dDu)PB2H^J|qsZ?jwV`$4Q+mR!t zUt$mM#(bxBI9c=pavP(cMMcCo%u{$J-Zt!W)-;y zj8m#|n45V5WMRJ#u(nADw2sQf(8U>dD3)Dhm7NOynjcN`$5B%UEY*Fa2Ty@9syR~2 zqlN58%;{AF^^NOFKW}6+r}`LClyJ)W3`?P-itr1dPYjCgfu4^Eac0si-&-Rl*rAuk zU22y`zAh)F8RsZNaBY@T-exWr2lVmbn}1}oF3JLgQGK8TpG`kI28c){3nDI{{5|2< z;^yvj+^F!x`SgC)wdd-4b6)m-{`9Mu^e<`XiEPeYwo7a{ZT&{~xpU;N*tg!FZ?0$a zEmWl(=#r9tL%~!)@3;cs_-3^rtz&ZaqtYD3&I=`$1Zq|@b^gF$WAvo<4+PTa6{ z99)gi6JvY3V1ItZrVdU)+srB9Zvx#0!xbo!q~B}Pa<*HXM0tuc#R_-(H2KlSt>m=% ze{XQEgH|dbnmu6@{f??TkB{h>Xzc;dVuylVga1{JbU})~PIHiCaW)mb?#DxK;x4Xo zM6TofI+o+Z^C$t1xAH0pYXAdTc0@=t)whl9%cUzJ^w;0ac%VLTdZCrLOd}-}AIE25T{PF+e#{h>lA9r0z9*Sf&`m z(N$#dE+my*X~}1}Au=R$e&GC#QeP>{l0$-JifEl176vb;XXuiq7iT6`Gy(qKt=A(n zx}mm9xP>m0Gj%8*YNw}W-PnzImj3bzDx=&~yqT3VjWsifUoAI?nS@oyoM`vUmoF4h z&WTYnF`r%6DOp6-7+Z2mqqhDJ>i+w$sU>V5g+UZV5mZD)niWKvfPi!n6-5CRX+i*{ z_YyjUB74hL6qMdV*$Aj0p@tGjuz?T=B|u051Ze?6h!8@AkmRhmpXc*Ef53Uq`@Zvo zA2n;OnYHGgnS1WJuIs)u9Xw(+`TIzjV-1rB17L66CFF$3!v305WzSW-QJmJ_3eokN zdv4)Tnw17FGCTOSSQ}=iXL|-iZxyZhrHvs*rC+_Jt{jTBI3BY5kd>NX%{sVXKq9q) zmo;?^$LIh04wt4$QI5KV6OV&|lzHP#HBkfWcrqC2Y(c*16q_P!hP`-TOc&6%U(I}v zc}2fUuwc-QYuA^(K*m9~*W;YO#Z=Pk)^?;!1<5Es2217)cgo|Z;Y!f2+cve^wChq< z0fFbRI}Q)xEuHFV;In~OCxRbypL76_Y&^hq>{iu#_%GeV$wn|*LbO^*FZJKXON%)# z-5RPy_T`9KNy=CpQGTsw^@P#+&@0#mz_3w*(J4orRfdnqLaDq*p-wFCjPnxOX2rJoFM{Tf-=$sLES8JItH2*}ns5_)4v7K#t? zPgu8S#RL?5DbvEX6+U}k36WwM6E@7BD~HH-#~STyQygKYX9y$eL6gQEX>%ufKv_7(>`EdJ$PU!q-ohmYvH*%(P3r5jf#;4TllT93}M;}<&Rl;8;*>rTew zR^5wxGLI=Ql<2S*lhVmqresw?i-TnHmIqCuXK5X#Ww&Vi6}I1}dPK{}NQwAmY%{+8 z6+9qyi{RlslY~h<6SQJqfZCb2e(4h#M~mUWIxib-nE`&$t~1!3rU@sJx#s3NuA7L; zzkW|4NwodL+9MXhWdT4!w0lx8!^qu8?S{o?HTA`~8)2~d8m0Z#% zOe^WtM`nYuhOL{8j}&8oPyobFh+xtqP4w~ZSEX1R!En7&rdpM4eWCT13QWDl@RK4Ej1ZStDB>cahOP z*awG;6OT|%p;sFM>We}Gh(MG}+hc5gcIP#{@{Ng+nV_!S)54axd2x^Lfu|(Sa2;@i z+*({ckU?OO!bIG{YFz-8&z=l3%vr~`GdX`3<`bO7OSYF!%GF=(hZrld9fq4b-$}WQ zSU3%fRz}YQQ@U%|VC++tAxb%~6^n_ZHgHJ^gSiJhu{dPB-8vx^P}WZvG7*w6lY@k* zr>Cu6{pK5XJ+6e|2bHngA7f{1KQe%~ECPcSK@~V?jb=>BsPCf1u)FOE-@=&=`N;d?Q zmog_)xgFy`PLbP&d9;dC{v7_*WM#KTw1BE!8d0=sBk~rXA5v@I3i7NC7 zaIQ@N62B<0K{gYeW3DZFcpwPfPcuy!Ne>KF#am?UgE@jWzpD9f2ou&+ES`Ix{Dci?c(fbo_vD? zc#-eltzth1FSP_5IaLz8ZByMI;1{wK1GLyP1wiA33@5cPIkD)=;moPXQ=Aig_TfCp zi^t*ZAB+S%OUB~~X7D$3Azubva>8^>7VsiGpWdE1|Ix-RkHkB_AqD7j8jOoy4Dr$< z*#hV}`v*tf8SQ>RDW?!MchxQ*wA}us(3jAoZs2ihr9#bpYV(wEG|MAArbf-{ac%?S6QV%T~{VK?)^Z<1hI?cU+bM z+A#X^4TBf3e~NV=|Id@E0npIB=Db`6Z%Zj^%nkqVL0!HYsQ{qodn=Ho`%fF|9{%axXuA@8edoy(fpopfKmX5X zuLxZH-HcH zzy?rH0sw28{!`r+-*eLA{yjOy|OJo%ze~0jQX3bYB)c? z-a%@7e&Rpl2_`U0p}BQ#qr*b>Y@OLJ0@yozip4?tPwkT-T!~?Kf${{ zR<5<>WUja>>LWmrsQ-Rmnnz;+z+3N5RsjLB|H-q?`&_`o;$~w1V7}%K^DiBQ#c?MD z#_uRId!64K)KdRz`O+LzytY*@UWJvNz^$PMERfQ@!8*@ z9CTd-pjX|_r(hE@ zWaf2zl>b8>)bAxg5CZ5*ykeUHgj&C~R@;Fe^v28#!xWVq>>T%Y)_?l%XQhE605SBC zvC=_oW2AoM2~h)9ZgU1W3EcR>z^O{rMo#naV&5@DlmcGXd(jM1&sZ? z{eL!YJGHYX@2-AeTiGrXpgyU3X1@duqJZKGjF=~BH@kL#J=RO$Sk7|oLd5=YZL$}77@YBmQ*>8t0OOTCc&E*^7g5}3;EdbUln=Bzu4FdJdK)4nPy>T ze*vIJX#m_?34f{e(MFEF%lMA%y!_v&awPzD9>PZxPxP6O=cO>}?2wgt$B%qm1A26W zhr$Csk-ebu3K%}d+E`CwRr*|?(z5g9e^iS^}#H>I-5is zbeJ3fY;LW72bj?Ty3fm!DPS4_AfEq?+e8Ndklt7JY>x7Fmhco9He1o`=pAAh!z0hJoOzbW@v9fJotb&J^XnWzC2*Gl-fKhC=d@f;-SAfPscg( zW6xe%6oLxuyZ~TyiFc%$0=m7(yoG|VJXLDvse87`w{5ScV~gMUrF62fts-YR@ppB) zzSMw4yH*~*Q2fT{`4*r(z9z7tL25P^zh1ezHlp;B2Qp4_rUQm`{IX9neBflK3GuJ> ze_R=V+ld~pUF)D8>`Y_OBrc213MQK*SNx&F;dIt6y2@S^at;5KfU92^sN_>_sr|3r ze5GpH)qKZNWZOSnWskb3xK>OtyHLjv5wE?Ly0I|SXxy(lxpN4+4$!WoRZlGn_+1YxQz>D+y0U!Hbg+6U3FoY#TQjXu8 zGkXc}auwzDJ8{C17(B`det5GzojbT;_(j(X<^F!b7Dorj*AjrXL+f;dv$LxB&Wm3w zX2#RgJ4IM4$OD*o%w0VE^oztap%i>8 z9>&vha@gTsCA#e*Hy2w#Hmi?!r&Ku!Jjuvw|7-;VqK~Oh?qS2h8RWx_7iz;35K-lX z+G*N_W!iVrDtr0}ZmT`w0UPRif4M+!nIvAl!cn!<84mN|*288eUo6bCF0ny|OS;EU zh|0l&c#7;tBGIEWh21Y3HpQ1`$zwT~@2X2Ay!$4X&El@g^%>uoO)vUg9y02ivTKN; z{WkMN{!z}*dj53I$!d`ZqzQ8-PE&3;zSPzVkO>>3&+wS*m!pS69I2x(EZ-ARo5nj4 zLpOSGW3)C;RF4{9vlTd7{jFJU&hr=G#gELmnh=)?>Zy79Y-1+`WuV+yYSr4l8`Ka_rb4t> zI^SaB0lA)w-EDz<_Y}YYS4C?!eUK+Fw*!O?61pHYOrd3kmrqnCk05C2Ehc-Cf1kTF z-ssZ&N!Iqs}P242<;$xXUI1tkgn*#YDV?6Stv!x#O=)Zs`m#Ef|ny%@q<#izYWzdU12Tn zu-BxtW zVx&&bRKwRtFKkl2TvPaX{?@kX{f=7RdT!~A)VTeUY z?OVs+kaq6U30C_4QWbT>vmG_l$HW8lUuQK1Taa}0Ztrr{jCNk|W=Qe~n1V?Td3{VA zB>-oGPL-H}%*I|6c5k2{Zd2U3rxKpwd9>dNyJ-b>CEc;?n+wmEcbRo7hkNTgTJb@r zFw9CwR$!PxP}kdfzC1&oZC_`ke_T5M;%C@~anZx~S=^-N%l$($Uzg_5OL{oxjsz{f zTF1dW(jp+-0C-egAe^S$*^8WC(u-m}EBEuBOBSdA!Ym{bt<{COj#4D=xBQolxof6B zhl4?GBw`t9JJG&wA)U3;S#_7Wb0w>hot#w#sAEkHku~}2Fnw_Vy?v7WbT@F1O^B(L zhyy`Beh|4dtCVAS9Q^ES)9-s8NG6)ZL3F~nPSKbFG^h3+s_;9>KLkv4^!+mUez#ws zbH7{4w$su^?99d4*Ky6Zmh0uI9WKTQ)W!S*!6VmRL=Px^4heB+wPBwe* z_Uo_fY~KV~+ZIE(E_bS(^g8W7;&Zj?+S(^h$WiF|u}dF*bHi~Rh+P2{8~S%>*_gg7 z>%;VGA|t)g_xs9qGd713&67*g|K;}2yG^rk?!YvvhY&Fq`7ime!!DPN$f2J@UPX^u zoDF&P=$$~sg|;N(7mrNif3D7CvXPW0p*7+2e_(jU_(OtIsRbUz;8|#oVdw>{*`x59;EaV4dUBEc%Ox zU-($VMYn$3@7JUtcU?{MiQQ`Dvoad`GH22c9r&SspAe|$g?!}EDu0cL>BfX)V76zq z>`-weQ?4nZ2Wy$~*>d@(yQGJEoHH>HmGAOFi3Q7AHCI?BDxkl7mOAk5l?p?H`{{zo^Jk>@KLDQ$Ku`X!YRCsrjFjZer02N6v4 z%IHk@qhmBH){k}DwUq8PVn-F`#!8G8PWns5rxxO42-F*97VWa#5lwuuhA=X67~k2+ zqfy$6L$1C%M8>tmt!PyMUn5SxSdg(BliQoio|+?-a4Iz0c2;NzFxJf%6d zv=pW>N^RWR>dS;XW7kBKFTjYBuU-6*>W7LeGGi3VY4!a365^TMaoq-XJuSNFiRQ>M zcC2?y*2mc0w(v#Mi(1RphuuxeW}x`Bvhj{OA1i9jU+r`i^lo)fJF+F9Qd}4Jx5#z- zcjDF6;Pw8%6ni5SXL>J$NO~K-O0Wbi%&zE$cx5{vH%`E&uu1l?ptP^G3m8&^idR5& zi`97f__RWsY6O+o;8Mk(rYoqWu1sviI2pF-_pDnIV`}C))v!xt5U`4Idk~Pv=amC1 zV!Q!P?Bn3#AS898rW!~>q3B1)Qkk_!dfUNd^*mHKXz;3Z#IwTK#z}%?(oKRjCItjO zo~u1NCfZK$&KGZ>Xs$tv9Es#n)ejj%;g*A53KI^`e1&g}B^3g$$2z13q6m8&yY|6_ z)aY~*sVQ;4+nMFiS)V7Zwy~Vgd zc^hC?yC7&QAT5?2#OL~zAg0i`C~uK70xj7|ZZrnv-!NSf?KkLu9sSSUo*OI^@c7q} zup6PxMZGi6ZbBs;y2FoD%!kKf-bL7&Dh>=pd`y=1QKLR!Jm3ZvZ&xBV_u2Y+RYHj< z&8v}id(?GW%$E$eT7p&!2dnQkDA`SEYvxr=`Alfp1;ln?{Ep`db*K>CE^403cccbn z_&LHq=LImPZ5282qj4*lsMpZ+*LVW4!Tp~WflHC_21nL>d_@pE33H%MHmgW# zF(753NWB`e*0F}Wm3!NZPN3T_p4v)FDqVzi(i2uhYR0>plBKOsy1|%!-SF||;H9Es z$~?@LyoojgMQ*`q2AP|OR8Kk1W{>%Z>Gis%H+{D#aTMDzQYQ!?YYiaLe);jCJN_>5 z?Zs%K2VLwEqQy#|4@xaqK+ZOlOwrqGsRz4;&jLCSuYDu06cq`Ec?#+0_Fj390{h>Y ziKs&7`QySuMLZrfn~}_9u2EJ*dIfx9^C`;H(7_3PJw51>g1pJI$BIX~e-2@MUy^I< z+{&Qr`(FHu2<)<*1`J#FhHKe#OLF2(qUDsWrdUYYgMd}nY_O^DR)r~Cwk8AO5P5}c z0QXMuGpe4-FN&bQoH9{ZzFmt_`ph!ko|Douu2v4psj4v*URAjLP-#IDiyUd&EgUON z1kz)Jr1;A{_HrG%G^TG_D>m=#b_>tur(WWlj55Z89-hA4Cp+L|ZSm z=10Df6@oPl5bp2GmsVo9{xu>RYLG>-^SOKBV3V2@O4_PoH4uYpYpEsT2Qrynt`;Q7 zU=28?_dQ0v1h+7u((@!gzD)MlxY4bY1|fQzLv4pV@eHm%;K#0hUxOS4@<`0Ge^Y&7 zvWRQ=BX%LV)v9LjbL1q$E4H{SMPq;!HWj4$Sht*#A4Q9VbV`=XTv6$9S*x}zidscB z0peuQ`)8Jp0@4QM1QT?bP_d17w;h}2lK527sTzVaKzV7 zP{}&YK?Vy0N4Z~Z(%cL+DpF`Ipm}?Rj65!gjo5RszOE&6^={M@7_ zpbbk_Hmyh^c1v3itG>`X1dr%H(V@uLMf;@a_Kbl8$9qf!bDNW4jGgScm5p4^2p&ad zfEJK=Rq6pj;Z`vy#hCE%`B0z`)o*k_;4`3|Yo)7-P3zOhR_;Qs=+ld_;8(Z=baNGF zb*JbptD!9ROPm+P$cx>_>HOL4$YiTjl+rU3NM3Iv}yargS z8FNZx)=s;YU)sVM(BQY!rE2ZBFBKecI}eDI9scr>tk>~-G@ZH~*{usv;*aAb>_0Kt|5hZqfEn4W_*_x; zR%A01j10nFIFYKs^#24cvupXv7WjLsW$tKQ?Wd1lp^T-zTe1anS4_5ccE`ss<)WMK zWDY^ai9OcOE>bDexsRzqG?t4IPPY?+tWDOUnjCH1V+)}S#w;M^v0p@{PRz$&5a8D+ zT_`mdY@w;G_(1(HMhO@lp7gTpf?9D=BW58DAfwjS%l|Ii;`cFpg z5LCGp(i1h8Slpul`zC=+03O0|OUfSE6 zJ1lxTVxL=t`Sk1FkyVUmfRK5+`4cY)R-R(H-b6yq4Ao%J?l+o9L?ffncxvCqN&OV& zNqW2`t6;R*A`(8f&kH~*ZLk_%l!OfbeMqPrbhK6GqL0g*=8UH;;{~!|mAXZWEPAIR zwy!|6uVd^U;qx4lKkP({Mk?GR&0&jjN%*mOEz`$E|LA1v?iz7(XyQh%Pj)idM)G+&$nW_j`LG8_2-rL)EWUwcZtI1p0k_dCBk1kTH1S4*>JF=W z%R2^xv`M!(w*m=gqZX0L)k67yFM_>VlJn4kC0jEUaQz5ceo9l7kB?k}KJHgf10-8e z@G4=i9sk7pt>o_eUbIV-j^Q03bu*uT$!nBr+ub8#=Cq}g;R)M!xeRK*-3iywjUJjr1PDXhaNUX0L zp5tQiE%y@Rt&{#i(y6_+RgC<7g3Is3^{MUE;_aYQQB`iN6^KJap)zZHZS;h+p>(_X zo~qpzUZvI&s+7-e0+`xqC~*@T+b7s^ceBnl0iw_lT!BvO8<6$w8~DS7nFQh zJh_%RSL<$-UFwVQUvD6WOX@p3NDn9xIlr=U?NMJOLiw@kWqfUFSXWE>6w;OQBtW6s z$g9o)g+KKxeA~lV|KoXYgv|V;!D4X*O&a+j;tC}2{TjdZQG=dfnO*#RcuF9(e{|BZ zr9>AUwqNlA$m_a%HU0FnYAWlSfy*eFZ3C~ap)7nla2j%<2`6a}`di=39Ujr!>>MmH zkNuGOe;XxXB%%#(`qa=th!(-D4Y-8=2geQmwRhgIhaKHs2jG*rx9e@iL- zC|GDCCr57uADu{8Ds#z4G`6vKA|$6~r;ACE%PZc~kAmS)_3$9t&VZ^e#?zzJ4iY!N zyOWj_ZR-ajH+y`H-?XXr$rYj^wv<0sU-^Z}I-4G%28V>QKb6>EBM1VB9qIYDMyMo6 zDz+pq`Vl2Io$1W2#E_@d`Fowxfq9ip0MeZq>8`=>1sUy;uZrj$7Cx?t<&^b9eE#-} zAvJQ^n0x3%HUVkb10AkG!PRbGfxG?07}7ss>M=N5} zZ+3Q$<>$HjAu|6pObKLZ>E=A|bMh#?miB4aX*)G&lHMY%M77LGacBE?76rBIh1g2$ z^%q(rBs&91LR;5K#VU%>l4$*GLIn|vpB6pV0u!hAR~V*C3x%h!EuS;pWL~=Iui?U1 zn_z0d>Po*6D+e+%^NF*C`MF*b^q<=PV7#>Zfk?{tS=`)pfKg*h9zJi_8uq16~AOV~qb3~tpY;oI`oot-ERE|{c+FuX`BmugqtQ|GJ!%xtY;&)zu&?#Z|* z+n=G5o8c-c>?}(lEau04ShII{XB}Pj7j`VxJS=tNSE(ZMS7D8rjgZ}@ zyBSC}l#6Zpszy>vY?M@}awv#xq`KLFw<;l{{2e~p^mhZDPnnbSbsxpq9>TY?CQ}jk zc8y>1WNZy7p@Ws+NZbkU^}!QmEU3LtxtkHn)y^ zGVm_xvxzOK73`826%}j>m6X;emT{5Qeo~_=bSXZfDIoLn=}k)GUh|;V^>IT~g7@jm zS-AB4SjENV{c;(W2zS{5M3I~RHIh-oJpK*9t6TDpJX)El2K|1)K3nLwms1$J81o~d z)VO3Ar;g|BM(E-m+X+48fV^C(?l0m(2qx!R+jXgyFdNUI$V1w96bQK=6HW*_DaTm$ zu~xQQ`nn2L=|z4g9_Y0ZYx86i*hzC?8f#FyIPyeaSFTM&*3@Od{m?Y_45+rqQTI$R zqt=L0x7LfmYiB(Kt&1B#Wu-=Bn#gh1I!3p}t;%#en#FPUl0O6r8do7fJrr^8p!|0n za@fGu#n3(W9SHKFYVWQxL;AgN%z3&BT|Ae`go@3{2zWSxYcU~jBgS&oiz8anPD9p~ zS!q3wI8XGOX`r(LR?h`XI^5isXKWsC8HH4}4@{Gp$fWL@=0Z58oa7ANW4vo9*%ou* zd(G!VRNYLlNR{E{zQ4SnbNv#cb*+l7IVrz?|T zO1GN=WX|xW%YItFkw%W6>2*5h#tMZdjR;j*}A9@E$k(@#K}X zP-D&+qP|C-$0u2kqGG|;)$=T4$tR}d^+)8q@cx>{fk+$4i}^|ZRiQMEMP&7)Lcr6@ zvzOMy$q-d%ufN}hFZW$R?lzRj#91K>qLo7jJdL?jb?umD}h!q}>tM zAIVSRHJ-7JEzIyV5XK-lU+9H;hQouFUL>YrZ~aPW@B=TE?6e~2whF41g*aGA4Xe6> zbD=Jm`sG3~`&UcyoA4qxZX;CjL2iUFy~87SIyJ=>NLO4sxfCo((WTiLk7O88^;#;X zvP5cY*|@-jaLIMFqhvm)qEFnl^XcQARW)W)VTT%;36rP7AV^C@O>V5MPza}(avis= zO&Mj#EYKLtntyM^Ao_{Dwvt=O1#V`4g{}jqLkBNJwQSjC4y{X4*;9;yy_kkip~`FS zcjD$&H8!c~P?XDMdLyphFunRwm$#gN+nx);qd1#AeX)yEI=Y^X>9jm}FI04{i0q=S zEBEfug}g^jd3U4|9X@-{kG-;WC2Thxlqa10vha^luQTZb;^u z@$;j<6`2$tid*diP=p|?BdA~@ck7Wx2inkt>RX-QjJfvzyaXeVuc+taEC-L0$YMP z+hm>l2Fs(yLB&9BXK&HuSBtFi0DYaD=#zc_V9PH-(fMLEd0N+@$(cuUD%_Z6F0Agw z`GedAgP&mjv( zo6yoP>VI^O*^#(_HLoMN%YR&1=^$8$}|M$rY)JIS_hwDPN)vyQAC7>BzE9R?zrGyk9s?s%x4Tu9_U zsRTBQ*k_xm^)6W|G5ogArYfy<&CdPPo~HBVn;)tYLI!C^Z+HI6CAE@CR(_rG8YRBe z4{9WCK~-^lMMl>(g?t`*L`F7dNq=A=m%X}~ph=thUKJl#@M#BTiMk=NH}Tvho1k_M zt8~@LuNYSp?XB>2#Y-LswJSo#>A42OU%j4{+fk!S zb}$}~Bh$GdJG4x-om}j_F+%hpH-A~WhQ!&VViSy`H)sLHLB}VQKLbdYMA6>EJ5(`L zBmYd)k7zE&iv6VV4y_@_@rZ*(@eVopyNlnOjrcAOOWlt zqNCAt(be^NLE9(U0oZMcMS4Xqr1v8rpN=Y#9wd3sTz2p%WYZDc&`=rQnfoCkU7pbB zCH+HuUx8Q63wz38Yzm1srdvL%u6w=L?g@A;Z?7F)pl7Uv#Qwf4CT*7n*4U zP25U1j^rqcVLE@8=%mLw379=|aM1tTj;a4!JN|#6PyWAX4*yS9ef2nJ`Lj@goWTYZ=w{b{$b!Hh zGne>+l?^t%xOeH??M-ecFf2}Pj4`?Gd`f&ncY&{ebt9vBhs$0C4Ybf&K?=e^;!sLI znUlK+%-TUB{d@Uh49oakJvR7qj?{KV+_}bJk>Xr;NV>P=64o*SENmj&0B0uX$(e(2 z+xT7e*}1UY0D;1@tq1C^3(rLTenz#`y9*fIP83pzZ)bn)m!q{Sqog4?5MF}EGA7L! zvP>@kw!OoAbyKQFjJZS7Ku6?Z>74Bki`H_e5B#o(fde(&rect)=z%eqH}8JG@y4$} z-uFV@gD(F0&BK4(w=5GtW2aTAJ5>Ljl+SnV z43J4dTG6f1_8{~;A78M+>w(8Aygs?k>o|=?;9p@G0Nig~!)o03iK{%{;b%bV+PCUK z|NEfaXy8@>O@2OL!kf8mf5oqPh?k?a=j+-3DoEs+$9d&~=Ewgv=*e)+*q5$*d{?J= zEiw(l*Nk1~nS^uz+WpgULC-y1>+-xN#h^Vu9oM@9yr;LLwqG;v9n#czb=-Hf`QN%L zZT|Nb#$SSbGj9+Zn|EWl5j`L-vWANIsd;?5v=Jyd`E*EVM3lj-{bN)U-wAMLpMM01R$SX=4nkH+M ztF`U`CkXBWeD^ON{39m{psJn$Z}_Kl?FYWif92eMAbHWB^6E73Hh;?h|6XWN28`*M z+p$Y!v@0$MuGB#88jG@w0>ZuN+6q<%ZEZkgUq@OF_$g^|`i|69`p{QwLY0g`UgFd*dnpt0Cz}s-$Iuu-#c@mtEH|D(nI7NWo^qL_ zGyPy~F*};Ka9h24Q*l@TQNUJcfy8VSi0PyjG`o;OreIfK$Q=nyV=r4r1TREga~%O1 zZBXIWt3YI_>2r%c`rv5zU_#J!7exDZC8RdgM=4?bHI_Yn!v1yB>mo3Tm6R?LKW$m}+r`S6sjr!ii;LXCb|NJ6 z+}_D-9(o1bZ!G1Mf?W8au_}@!85y4+DW|4H*(}VYI_J~}$UjJNh!jTh=S!VpnW?*0m9B{~qY+N#dd&1{)F2ut0^(By9l^v6T=QB#NM| z?NR)a|K=Vpg#0SB0|TB`qe&7M!JuWZ=i_I;VFl5s*l9XC$Z}7QkYvX_{o=^P?z61p zz%+g5zaBVx^`!M|7=9Izb=ANj`!pspa-ZFZNpVea76sHj5n9U7@Tf)XH6>OgiSy;z zoN7|K{U#%=u}>G?f^KM76)s3u6r1$&CN>MGn4*Chtu2<*nOV_leBXLdtu-@b`#S`d zFK7>#o1>N?4 zlJsDYfr&U3q3VJ9i5*TdZ0?2N9(A8hp!X>W`=PX1GjH#9EIz>n1N9?(mpc{au zy3R}_59{LCx%;6 z4)jOLz&yBz_U-9$Pb49vL}VMOh&@$4c8UYeB?s@GZfEcK+*#=L^Mc?ca@mt#z@Hiu(f9HZ zN^~37Hb4DuwHx>4kPe^VK1)jr41kq03egyYnF(dsSL<8Ec@J!xvD*dKRbRqc% zl5)U1@X{MwbAgsa`(hECoN$7>FmbiT{e3`cihR=F@Uo2F-q~2z`KuYLLmS{XbX=Oc zl68pG;_cOgaZ?>{XI40K=N(#1sizZSEzJ0k(BYQAMmVlgF!>lY>6k*Kz#7E4vryfI zJ6bZVb$PB$Ape)JE8I9}i6MLi4pWMT;5u-P@Bq?w$Z|@Njb`9GnK$N@}J@8TUY^D!xT;i4fMNmajrurz(fs|d= z+*>ntmOk$Zf|tFTe{rX@G@z=VhK^0X2E%6@?YfDeie;xxg~_|Auuz7%zYORqut)Vu6f?2JXBRiv{n*5o_;dFNF{= zNJq1wU;TmtA3*I5mMn7tg}RaAbZz|Y+@RB~1*JD)+cZ&&+F3$teR>v%SOz6Npv7tR zvmpBT+y3^gm`x8zOLCHrHC5xC&gnIZQD6kMQqTs8`MNs zJ2>9*INrChsl6djRraEy?%f7w@kd1$pua#SRsJP=PY_IAK<}YD@mZ0Z?yj%1!{su6 zMgi{OfXGRMxqlByBItvd!s8K7nIpxAzt&5=;XeA)czmn_Vt7~9b!aW;{566 z#sWkG5}_f9#fZif4-vl0;D4rOO=HwAS9a#G?ZfuX!9Vqb9iKtMV+Z1CeH#8kpiHf{ zAG#VPhKn8HfVYpJNoUgful)^IHj5uIid>w9Oyln@o&n)859DCm9Xuc<9+zh5OqZmB z9dmiw@|w1eZG#$#miztdL6n$d%(JpaL6ng-4U zaH$mjtb^sXT_%WCkI1blUjgUk8?*yAl*Oa)iZ65nMZX~%^7TL0;VY65i}BLdD^0f- z$8vAED_4}q_rtA90kBF8zNNw-c+Wxor0lhA4SLINR$_RL4l%Tt>VVe1%`*2SE@UQ- z8hG4gWp!Eg<|sLk!s{q$X#hbfJ2}1o&dv(1^OH_q zvH$#TR``^|b3FK5WOIpLYIN~P7bu`L2+~mFwzwigkgwN_db$*1xiW|Gsr!C-(_p+-w2H>a%c^6h0td&K{8b0;a3Dj=&pY3 zv+K;YoKj^OnnOvzMPWit>1}h1adh#$>U8e$C?^v&#(9%HwsZ>y z_*|Yjc~iaKB*}>lq8x{T5$S!HrkhXGuSoQggTdmbTrA;(Xd%r7@zNka7spUh8Eaiv zS-d=?0?JfH-yM%B?vL+-%Ya3d^S?v~ET&9#`^N*bYU-b~k^=<1)pCa_e_MoWIKK3W zM#zYXQ~c4ar2{pU*80#Ng*m4m$3g~IJtZVSXw;z!%SPBV;QOv_gFqNC_GriLp~X%d z%BSFgo}cPS({~pLmN8(^t|4S+gV}kRwt=ru3CkXs8sBK~nG^9FL^*loMr5~4g*|_g z#uoYahwc@V83zv!^y$CKT>YOV>5w*&jXji_E;o$@7Dfvq@Q{GUhxdnNyBgQ@>0V|j z26#@!?=*kPGnV2@q{@RO06~_T>Tf>1qQ1F?2LG%gjsl1UeT576Nz(^ZBk~!ByzY`fQR?CisVpO~qJF6uR3 zPBA;H57@2`nel>H08KRb4Th53k3=&syxA_OhB@8Q?G^_VT<$d1>{Tbo>_$#AyfPEG zeNFFHE}8E!W{z6bxH}-;iF5i~IwA&<_io|yRRHsdxJdkW?-7E@c&%;_YaX0oVyCgu zAZI6;<(->4;QALY*6LC?k<)hcuERVb?=*-AJ`rU_Vy(%j<9=x`6_&Ic-hYDUzvxp= zxq4zA+$idC*zDOC8oP_O8f}rUAF;~!S7?X4zIKnFo#L#2PAs6594A@y#phBuoP@=ZUP*_?J#UNDJ$cr_);68Yd z{E}U5NbfmLwB=}_OA?><-8o)(pk_@?6Jio{T90}L4cWe%;N!ALFnA~%t{|}b)5p~# zoBu^^4Gs5*s0)9>nVMZp;~O!7<7%mI62ta*G;ZC+m`R?mW73Ot@_gFNLHT{c@^H=@BZva7 zeaxm@9hhHBGc2O0$1eNl^f>0$z_xDo!JT)~bj#D+`iNZmy>Z&?J|SHoFtZ7uZ}@_1 z-etBLU6O5KUtI2I7ZlZ)?+j z0f!OippqGHNmT-EDix>5;oH|rpB6UIw9inc*LE%MBc|>k2Z)L$$Z!w0*JGjv6>NC& zcr$c$rj!43rlaivux(-xHosqtimAYd7oT)=j?QiulzSHj#%)M!JKE{D?ItEyJ8YGm zo{$%^4a@G9Ayfj_ewwny91+ff51yzv7Ftp}(oP**BBbL3b&VP9Fd0*-M}mc!BW6SX z+N93abL0{~(x#LQy0Q2ubvRrUGxN;Ip*vQ;FIp}1wGa?9dIMw(@2byO{StN`2mRc; zYVI={b}iSEv}*{Ro*WA)8qBvteDeu#Y@jV_!T<8t>+tdb+~fPNZfY(^nA@j0 zj^9iU2Q4ItJ=UkI9o@a{Xc_!2tL@%3tJF7hubKxNO3s4#JNpOYh8+I=zqotTsHU>6 zT{H+n@rs~WiYSdGf+C%QbfMF-2Wf0*LT^EcNGl;gfPhGqRFw!y--Vz^BVfP;f^-2& zr3)kok{AL61ri_$Q38n&n!96t_uO&*+;Q(1XN>cWvwrS=@3q!kbI<2_<^%@n`x;p{ zZV7{J7cuw7;@+27VeYV#?p)wbyXGP*a7BEqERU=HW)EW6P+X&4HngVIdzWxt9EUa? zh8=f#(|j#bciU!`!cUqa3f#tBPymr38p_TmYIMx?TqW-Z05{4^u)N+lLfDKfKFZbF^jd)qJ>jQe7PhTlR0wLI%m$^J7LIm*G~0^ zJLDKH{H0M)3|RonL&(sQpU^&lTl%it-*^e@+fwSYZECn^)>rdXs@0# zzk~zdavH{~PnWO-QM~HZ7@t(s(N4~x@56bN8oBl8Cdz4A-VIBCYDo=U&Qg)jD`2m7 zXpOtJ&$RlfuD0fwYj}P64uD3V>AZ3CgEI{nX(`Yr!vUbeY$W$Zsx^AzQJ*+Z9vltz z4Uf|34jXYj^d>JX`rhSWa#(iRcx9f6RM}zM4bHCoIrRjJ$DhuuHXrZhJWmQy-gw1;xT}77 zExo7Jm!{|vgd8b$xyY)Hnq7x`E?? zC>6UBu2bpl53b_i{#@WXJ#+$BZI8`1;U7SG{!{=wtP>#mOI}IuM4_2@TO$%JY3Ml} z91!TGe`xw(oA<(WM1F~WPmndbAbP9bm=wlMdd16e?T82WLO0tkcH&Fj@1-kyUx83Y z2sc~dg~AR)Ud&iCRzBw=iP@Y9L-|tS)O(|d(55-K@|^*ZO>C@H#_Q1}jY&aUcF4F8 zN*ro@pEEwBR=bKctKYR6>Abpch(K_N}k$kxoK2DcpX}dB@k}@6U%QU!S9CTpHGPcP`=V2 zH6saL@=Q2C3j~}UY0jy20h9Ltz;!Dc*>llud?Il)Lb9-T?ahYWKOEi;#fmmqa<(Jl zW&k>pKr_8ha9zOpG0X3eLm}9ti};h0NYf#I0CCR9bNAa^&Q*NgE-b43AJ|2QDwgz6~a?f-0F&vQ6Vmb~I z?OzGp=PY1tEN-xP$DRU*fO;uMrA?r~Lhvu@B#6oC^V|u9KZB=I3W3w^OOW)8lGp!r zjqgRUAJ-`RpEt)Hw)*jaE&wdST7JKs=qE@PqrDD&f2O(qjFnc}uze;$kp03RgKfFrtEm=AzOd_ z-WeSJ#IsiLsNkuAcy+ zrrUhhP3O??c*Y;Qe{AG@TNfpFw1}tpW)1Sd{vR7b|J_Ij|9vO&e;ZE5se9Y0%!qLD z#9MT7+q(Ag;(hET^-Q>^gBi9& z;>!|mEhP;3V3J=HUd}VcJjL7ul&O%4XQ-Reyz+}s#*`?x-|YLN%SD~rEKwDsyl;Ij z!O(K`9c$zf#^SDz3cXY?5alg=0HU`x}KnuGQvbL z{ur`ex79oM7kPRSQ(7py>835!5EI!H;g$Y0Ecfi#VV!eD7a!aXlRq&zzVB8|CqBe$ zNUOUxk>c_de6HzAgCQ;nLIM9oC2)mmT4B-7k%%&z%v?&_U7TaDjAsI4HjpuR*qi6I z6k~<1P;*ypKlQz}pNVI(gPUtV5%I_FGZnGey9|Ylm}JAhtck} zN2A|LCYwjP?*Wk8Nh!2fkj#$ER+*HnG10Dw&AWnbyLC5w9cAOamL78G3Ab6F|2Vsh zYz^s_ClEOzjgqZ8ei%_W6aP8{EgMkpg?X7y}d{pUu|KR5OMA2sN)Gt2$jy3`8fh3)W*;=6^b6ESqBh%IxaGYtKdF_{$i{nO+wkQ8c5%}z8bZ>aC{7$WwyV<1dOJ>_(XnF|GW_;_jK7ApQA>!%^(N}Hy~bV9%H zPzg>@$1Vs{1Rk|3egPnpgk`P9EQCic9XSSCDW#P%>qZ?T+8P8R`4@p1^UsE=Pf^HbAF%`Hu%JBEw$H?(iY-O-!^%bSG{n;3p7e)|K!SC#q$| zGx5|mmYE!hv%|EoQEMg6sOiEXeWQ-0TC^0k);B6juX(0j*@I_wJdiQ9Tm>ug;?I*^ zhF-^$N_Y#Eer*lSJju|AJSE{GznV&XD}6aigG`Vqb?TgNXT=^*$spn&8%l)-VZU5wjmrFCjrGg(z8snVLX%N+ro@11>)dHuO$9wF~J*ROvx}77) zT*(XW2*nxfJJ`{r<>Cfe6TYLQaf7r(bAsG zT9qFcHPs^Ro$xfc4*PfF*~N3}^^&)#d#GUyQoO(lvsRo-3D_@HO&n>JpV0YaqmQ!R$xgVNaQd-u^QW$9 z+|PA5@=X1T!CVS+xu(i&P*_Nbm2)?u8yFRZm4r@X>)vmKU+ej8M`Lp`Rve+ZQ66Ec zBi|Oha-bGxwnO}M$A6JePhQ@na5suUpTA^~x|D&N+@CpXqzckA zMb|G!$NC%5pTsf~R@evC2GrDVZkh1;yLvtfN`ynmqO-yRUWrI)=b&*uTaSrK7O)O$ z+zBt132hF;en1@h4>tVflW!y&@rytUqoaJz`d)9JiQ$qad*G)PFg=FxaF9n!ZSvOa z83C>~FnB;ZnLDZSO4}v-Mr$lnJocg9xvM&YJbY361kGG7NMWegb7CyJ$#X!8h8fG% zR-+5?0|Hiu{O`$M1DJ~_M_VgKQ;x17=@k0B=;OZ3K(~;7+!FrErTNxGo@OgMd9so_ zK4Td6GGc4iffeddpUk8cBR7{AhCg>n_>>;M*cgE7-X|ojZ3I&T+>z6nwDQZq@Z<$q za{-d12U8+QF6}P{eD(&n(a@d@f1d|-x=M*^#~O;J=k(>xM7eu-#cX_z?2_>rQAoZ_ zWIcvk@08&eQ<{uS-dz>UyE(;6;NpD;6D%n#!#<&Ah7E3?&k_aLl(Dw zMeYX#(3OzhHj>6*x2;p-O} zHwmWnV1bO8*nY=l_sIBknF}iNSgNvrUFs|O#wlS-T7pS{pgDNY{KQ+$k5}6!saodD;AAR%tS9&2Mcl6)oJK4Q2gZIB)X1AF-GREa9+PP*>;k; zb~Rb_N@b~V+f00_n}bE#A~c{vYT zi{XRq-Nj#rOQ26QJ+ISe1E2dc2S$iIypp+Q3y&f0gyWpEUSi;pzmoD?y`h!}AHGlD< z-SY1!dUC&uKwjTee5f) z)z*rXqtGUF_Va&5x_(0Jb*yZ{J=|34HKh9s(elhbf6Vb=>yL`9M6KSBqX~IdOq+;d zV#N0GgKt8S3s9))`nb2>UyFuxP0@sCa*FTqNApVHBleqO_Cbl&`!NS1%d(^_a>8N{ zYEQ#moe8iVmcTKw)Ov_J>+Ug!CiQ9FuA{lvXs4Hm_1lOvgRez%yj>fa@_+8$sli-L zP%;a6fnEs{KkNE3Z2gwMzA1NEE*76566Kus9c%9+En39}s`ttoM5rD7+E4?($-2a2 z1oa2`vA_N6uK@r5k<+#-J-ae)Q3Di)NQHyF&$wgHEMX>g^X%m9PW4rj90Qu6d9i*U zaSkQetu(0bT3w^W5oW7L`jGqC$KH%0M$z3L zDO~GMY`h$Hb{Ej^U6m5sx7U4pqd(X`qPmfLJ6qu&qW;*1ZOXHlCnr5Sk#G3DlqUQn=(wGCGPafeW%phZ1(9V(mMuzb=08&1S+5gD83ZHJz3X_Kd)kiQMnRlFuXgSqk9KnHd+rEHN0*729pdMI z2-(qFRCilMt5LIQgQq?teBW7ej3>AB-tmQLehAP&ZCN16e z-FGOQBJv?Gj(w$zoQPJ;QEeu&Rck&!Y`tH}8eRk`9vn>2*=DGGe;iuQw&s*9cw^Su zU1eOwg!e}=HW3NoB-=sns#wI}Rq=eeBb))#)X=9D^9n7kP5go%!01@NtpU+`ek=~q zW6|?!3l5v`LbzMry+r->j4@YKZ#&N{>?o(OdzT=T-Ckd7^Vlb|F;zdn-Nly9DXecv zq~h2=SnpKM{}27uv3-k`S}q6nA5AG!K0-`3_bB#vTf1#rJXOl$+trA1bud72Bkz{C zYHbg<2Fz#IJ)y+GV6J%4eBppRgv$BgH)8T1P_+G#yZa$I+)pb)YeVtPHi8z2w~4g*Z=Aa5%osq=H(05Mq- z;{i1oHlu`}S;EOsl6m`v?ru^G5GAUTS`6I5TwXBQ4QfzB903&oS=s8+>a5c%ejk1b zLzm~cq@~wogkng(k>U7s*Q5gteqgThkpZLu+Og^X4jBcmGpqdKN(DY?es7j)M|t^S zg4eNr$BJhUuJz5X-@;yxK#tuMsoO<ravXsB#(&!aZ%3V2C2w0F z)Xp6|V>FhuFkz_vKwkOSo{np2I%%ZiwqlRz6RH;<)T+h!h`MO{1=_KkV^_T7?!q;j zjoyGQlS?;={i5iduB?{h&i(-Mb(;OTq|+UND$YB&xhYpg8$mHm)+Xh)=eFzVrxC>=79joid$d6ZvgAm9aU6G%^>BE$^%L0I z^61!J>8_-?_O+C&y*`-W%8#Ql;MviZ0>yYYJw_+@QJ9zA8@q( z6IORr_vCa1WK7D0DgH`i=kkfk&Skn%4IAD!&{_kDg{1gRF)>M)WXsIu&#z;V4@N?p zy|$uZPkxmJrSG;j^jsv6kE-jj|HP*3448Ox!Rl2id5$S4sb3TmC>wvk0zn=RZ+{1I zv#$&L?Ri;ged$pK=fn`wR=Zrrt8ZWEJ4-aM~aErmX5nQ@_4Xf0;Fl22?t+PIP zn^p`I0{tVz&Im}_wp7nt9;h+{mhCBS^8)UgZ}!}Pv2WD3eJa?%MI1SzBj9ye=!3O5m5Q#d>Q; z{?agTJw^;;*AHf8J(H_Y2=B8&%C@~wyL;@!Dl1uV7VjhvaLb}f<;GLS3dp^irM;{f z-@t@R)T%%&mI)rq<2bFM*04%RT(8|}Ug*8+ILimij{>uG-V|Ui=1k98=c)gGeFwgf z_I;tv^#W_?>?>*NNo%RDFMxc;qtCQHZh$U_PuIy;2RI1VPYo>=XZ&NE zPUuJEfK_f*D)b!+>|+me$xjp(M|@IE!8m2Nnc7ISl3`FAL!axqbNT_)dh1&>Qb}0b z9eDyG$$bjLE7^39$j^y)=%o+G^d~q}T^$&nYl2kfygiA@-DKomcb)RevsrF+h-LG} zA1btuB=rsmw}+clR<=6S^nAo2)w`*^KJ;eZ3_y3NT^TnP$NHjx3DNhhbwFsxH`d1y zd7G}bAzVu>e*fzya3`_J!@R1JDq$Th5Ou>B2jrK;%-mGoB4sOXK*AbA3VR4|$5Hdx$t{ICs9^9dM<7i|3>}{H8&T1Kr0(4PKx~-BDBC%eOI6P*i{HHE$ zVuU)k`U|WqgGKm^Lh!-$VY{s| zbBpmRnWV}w<)FrjoQnnwo8FJc^wmci?A6o0WE&rL$;G8ncZ6me7m1wromp9GZxbxB z2>_rFKr$8LqiprXb)js?0N!sFT)4U>-V3RqUn)$HSdwdu!(!B&ZG3#hX3N@+SF7!B zk;%68wthqV{v>ae68QD{c}=?{7-7Tj);ar87+( zGbI06*lItlV#TYi@m9wmq{?-$qv>z{K!~6SyZ1}QF?X=)i0b!;rHb9+?a!~B{z~*^ zeJUE$bpeOB;SLVq*a@TZgaymi)^Yw5Vwlgs4nnhIN9V(Ff7C<;K7o4Aebxihlsqbx zJA+a^FK$e9CmZ;cZt!tT)4;)X#U}Rih~!+#Np|`(vm!-Y;w4&39Cdj%f)`c@t&!g3 zQ5^l78q1%po)k=vjq@V!bPV9;5Gag0)rjFw7cABUVi1TTs`%)fH76j{`^?_~@mth~+(`yT2QizY3Kp9*ak*2z%pAM%Dn ztyTT8iPLF(Cbx}5|?xT zY=@(nf!LtCM)`hg&=D_Oj5A`WeLlE&A*esfx9PCIeprhG+wIE_A!&NQcl%fCFO!4Z?&mq5d+tCuhwhmMJr{MS-Ps({OSsfa? z7Abd&t9s0ajwuF5NOj$2Ey{QOGm>)Z#nKu5if;R}X6UFwO&ujTvSILiGF`& zvsMRw)R=T|u-#c3$l`y2EIkjG1v41v;x%sjai$3mMCbVz%bwLy|D>59x|pgSri6l3 z&79^t9`^!+N1o;Ia>=|paU=Y+h}IKSs@=BvD}6TE8`+^8;%XQl$mj^DMvxt0XCzm2%={qY4V}>!x9dAw zY6c;fMXhK*H?*^Z?7J0@m*8Nwjq}i`Vy{NRXqe?%`#OG^&xj?>KDN1B@1@>%vf?Bh zJzzX1st9}W)<(S-+942)JVSE=EXf?FCE-1l`b64hc}7~+>Me|y$|m_V!+-vJAJM3= zlE?SDKs4eMob?^QJlS)!kQ%JHMiicQ!;W(Sh1u_YLUd-8{gIuK z=tkvWCle}g;n2f*0pR+>|2g(CMFe5j6f_xC7Q&@zQyUR^CY*cw-%>Iq8`)+EHSFUukrWaF#JALv8=AG%roC(3G33pp zgUO_O?y~o;Q9ifPlT`0K1%+VRE4^=$@E0NVKt980e*1v<6O=;op{H zvn%RGk2ALigZ8d=VUbHV_6PXZ^cT?W*#ulNOCIY)VYE^H4rb%Y`$lOz-)uuj*@Np$ z>&6y$y>lZ-*;^l(n1D+F{ei`njM|6BUdvBn0#>`m$NCF0x~$(hkv{XtN~S-{Tm=$< zNo65NMQ1%VLOB_|*3m-5r(81iM8!^qQpLgvk~I5rxL8QP(V0qW5l@%wos}07^7%cP z$qDNaxlUaa*5+~9%>}?0&E%S^0LIz`@#kssJ)F%xdhEiu0 zw!A*_dEz)GUvZg(jlUbg?w5$SA)%YSRMA> zgt7Ja=U{j= zJN!}n<$~#+BlWscozFI1 z$1lRczX_E=;Y7W9gNU655(?<1RxVF@GhsfvU_Q*zE%@#>Ae_Nxm{p*1c%Q;WYkY3` zaw{>tqOm@z-i$SF734R&b(h*?E}>G7XsnNqp83h_a?qD^{p*x{XLR8w@<8{f$eW8O zbIKWMjtd5JK=tf(_fl1>zH(cdf+J*v-Ba_o<5E3C^lX&dGby-Om>+wh0J4M`Cp``L zf;P9Y2(vm*IZ)f0=`-6tVQ88tS~{Cfg!U8e+8G%{8DQo3?0Nb_@J{f44L&~6eF*Z2(-Q-Mtbi=EW8fx>D-}$gJVouFn zK%|`90c*}#7`8Q1Re!y-)+7wPx4X_A{2S@DyIj`#i);c%Eho%dY2Kq!Z5Fo}=H+L8 z7oY%>nWVf|b8#6>!DZj^nL9Vv?dAAw z!ld6?LLzde11C%(t*JByASLlW3}#aol^Yq#M+_@&b+&i6{LE=NqB3MZb@N8tEa)Xz z9R5^1g&TS(`+Y9)sql2A0&1yg-PeSpdM8)(`cX+f19Q_Iv*4AtVau^r--DYzjW(Wr z-!47lbemkYUu@XD!8d52Em=9~{j0=oz>zuzVRJ;Jx zTs;l|Toa4jmid#1UBN|8&6jMN$F$`gdahs`R8BlQa|!HhocwV(H9QZWC@Qc#4SRea ztJ&kw^VS188>QQ88e@4t{t&hNg&2I}ZyEWK!mP4$2I$?ZeP5rUJYr8$icB~)s^y%t9PZU%O5E z_Vu%>bY{=sQ{sPk*UFwj?b{q9kA}scXuFgCOur2Gn3S0Av)nwAL=-BCMPBGa3)Y0E zLQ}blQXO3VNNeDcT`#AIz>B*L$oC!&8a(VNcNeyEAIv9#QGa;7y)}?)TuAC)(yPF@ zLn)~7u9o1^gvY5-%l*YXR&aji&}m}bKDl1qUnue46YwHdgyA{S-JS5xjx>lc4@)7<5VMmGbT>eTi zH-57x(P^{jnL-;x`^zFX^)y-sYSFJIQ}o zmUepc*bsP-(M;*&wa>46eS^(Mm$A~l%(}C)CP{%UAr~^33yCkYw_mYemRz3H$*RB^ z6n;f8yh0+I#)AR|;#lB3vkq?ilYnu$vHB*oqo-tM#EBHUdva9&ut(-IT*m4ud0-EMMsf_7g3JKd-ul2@iy+Uo@;L=Q%z zRw0?%JA_6Wr|-NV9>0q*azkiZ@lkOtv^)If^%B$Fr4hk|nPHUsX?_Ri$?4SJIo;8Z z0$1`9#v4X;Zc!jh&x5$qtE2F!h zsvQ5RC#|FYg$j)$c_Y}Yzswxutqn#XA2r_F@fwjxyfSYj{yg*o1uICMp&|$Gr$D6s zvVlK;eCIeM%{YJZt%L0MN@-9Ou}J^?xV`G02J+xwD=HnrTsP&d8Zed?oV_Lukd|ps z%TXaIF-LAp-ZMh{y1N|gksWnk#U{)o^8^nxd{k;a%k-wbwazCKv^xUuE*0J_bQQr2 zG;eWkXevRs>&0<*^nf|%u+s37a&KWeiDup__q7%0uQX7J?YO9Wv2>;;#OV|GQ^Pe@ zl=>A3 zErCaLPUT}7=ZsbEk(mKA_DU^yC$Zkw?7Lk^1`CQ0><#R2s&C0ASPoGq(eRkV!kr*B1VG|S&r53* z0Kosk`9KXtvBo9#ZrckxvKFi@suia_i2~~6V3%v+_Blk5qt#yi;q7%OHEh4qe1Khm zD_RPQsuDQALjEj@p8DLMWM@U0{TmE%2<{lUn$_Z*#wsxAQG7BV&u_QyiYz5RFS(3! zdL*kc^0@$sc9@<&Vt^z1s8_8<)gS#S*Q|7;;ygXCLJ)yIP^eXJD0*{+^}S}c)eU^M zivG(k*>g7yjaC1EPR%b^&UdF#f*P+mketAN?zszj6z86>1s7h_9Ip;rVxG;#q=Aj76T z0Z~Z&QkMBPn6mmGAmaXM?5}v~lM+EoW6a!pEewMsyhP zaw;^-{TJRZ?9>~7zpgZigbXC1-Fo^c73pyTS9yi7d8g({{jB9d{Duz8O88qy&`p{57EIy%BT>#S zsP69M^YjwP4w;m+W#809p2B%8NQ}7{MTV^gym%fMjH(m`jYCiO5!;VAW7cJN>PN3j_+a4~np zKtA!kPF}6Xbhf~k99(N5V0& zz(V4M$#>Ugh+1KG2do{>nle}>ZGwHrhm)oP#eVp+Ut6XkNcwPhvtZl$z)98wz9!_B zYC$mtOIkLx`bq2D#&3frQR5?xH_l#`4P%rh7-|15<^Kz|3}Bo35NeZ7aBqTdk z%w4zdpL@1^KBC?K>o3uv$NO!xQo-6~8zq+Z&Qz&J1jX6wf!(*lz2eu-5Y~+Yk$K<~ zgljDym!}e_KL>hMshJ}#&wUz+hXVN@mcGPmK3da|m=DTB`VF7;mp zSbk~CBQK8E0NHT#5+~qf%2?K`4|7Kb{>iJO3vs(&`o-R2EpW3C4rQjQ*R}6FnYsO8 z1_9Rm-Z%5PYyd_{NK})Bmd<;;_kJM{M?vV`O2H$3={|RxX2eVTtRpb$>l5@=pPmw< z#f9DD;t*HS>s59}hasglv^eLMq5U4X?`o1CtAt^=Qw@=u=?YW#^Fed$+dN_#&Lf>3 z7f;397QF1=d^=15C{oj04!`L2CZ{DXbGbtWR3}Mlp%=UG@;G^aPAy5jm$h( zR*??L10U(UM!kp*J4FasE8DT>{J_Rv*I5vC&igh7I1DieW;Q=Kd#)pMF`&hH^23>k zo*Ooz&)O!&xzzoiURs6b`!F3?cglk?bKh%duWSur&| z<=k9NOf&KdSbgkT(+qu}Ln1$WqX^9qemOEQ#)>;3($j8eT|5i#-=N$x*Ymg~M?NrV zq|J$#x2R{V409wOe>zmGaU1yff~jT&bUw^R>EpRg=+aA4D@{6*J+?a7SkqG4cFhDG z+i65!A}Rh;&41Qo7%^!E<8hYh6l7l4NszuhKv>Nso%fMnp8X~9&aGGtH4;-W{HCTQ zVsRwvJQ~DPeuxTJ_ee8b2wfDn-|)m1G{5s-ICVGKDc{C6a>LmRMO#!jY-mD#v?H7}x8l{OoBn)q*vs1_?$NU^_pI07jU3G2Mno(xB z&*r177Gph^-`a`X3fYeNdJwIRz60H^)C#XgLz(%TZC84!pO9~so4vN9zab9YXl6q= zUiP;y(bid?>KXIHU}$m>X0FPX*c0?3P?NIHzinIdfYEz*OfRhIZL3M5>s*|#^^5)bLaWaD0>MgW@xz!8+H6iFkijT} z>@Q8P{6btsRtU0gMO#r(ugu_lB3Xi(E^=oE8z1MAHasir#f zHR50!5z*^OTd#baw`po)-oDL2_eN!WQ$83hXSOK^0GJdIFjah7{()L$KM1IucezTKd+wb)bU5j;DEbBLhpCIeO zPsI3$_r>)C)fvled*F@$P4lJ90oNt*K+A1#uXv`YP^9O>&Wd%)s3_SL#r;Sdd``?S zmhIEwFo^kjjAtIv~mi;Ja@|B!C z8IJMwa~ALTj2K2R>N`OVLxg~+J%C{B2KfwHy<(q@Qrz6s;K ztvh98;R$owE<8?1r$H}l@Bp#O_(C@ML9`oGRWNOXX5Nd9jt8FvWLfv%`#VCFfz)Zs zld4jF`KvWnKP@*TPd-rh=NHP{wTF4;S=m9B>ikqqeKTw7+0%vYtmlpo0~Q8J&P;HH zRz-*%Yc&Ence6_U4TKPVt;!}Rqb{EOa$(&O+~f8^7qv>kOe}mQ@)$6ycZ26d0gqN{tdo^01!th>QCSDZpIC%%j2Bygr`QL*2a6)Wj~(3n z*Gh3ombN6McHxbH0j9xkxtxTd7jI1fowv9arO!4QS8uQ+L`}?XF7)ZKOWFy62D8Zy zpb)p>ffzk>vt>j+$b)sgxC(xX*O0SeKr(IgeI&zZzAl6fe1@U%>SEz#h1^Xt@{Bql zYBi7YsjWX8tQ53EjB+pL(hmPGw_9qY_6hRr=$_q5=& z9;V9{`_?yhl+2J!BdJ7>v8Lt_%Ym4aSl=VrA=y!hfs8Q*2Pgg09%sC6y?C*jMxZEh zvO*$l{L2+X75kC%MO4!|Vm%pYg7IRGURau|EPUBU>z^P&#rbAq#45;{Vhc?E3;`9! z2UlGph=%bb*EY&Qc@NfB_)}OJ5G$dIJ_k@pVJ+JyDF{eai8Kk<*z8z(5669UQk9R) z8|auY=7FWP7K2YwRj<|Mw|N{3L98oy?k1ER-}Od8wurp2m5bgSPfE5?e|!7Q){ZVh z)c&3RVIzM%QCw4&;huE91r|{E4xd!|vML=eFPo>B5zH1c4As1QtmBg6MqU(Bt$k+epAro3+PXjs5xm}7Y(d?q z-a1Vetq)nsLerPLJ;#;_&_Z0|=vrnxu{lsqe{^r7BQ|-`Np9^`YzbWjWV9@bZhW=) z$pNH;u^gITq?6YYGDOgU6G2G)1WJtOl5TEuOPY4N2jp_RgzjMH@{r_;eRioQTfv`} zxAr+FZP4L9;_v#}hkIo>c;8WDTr+R?yNc}asTpJT&|$kRUiYef)n~67d%4T!$V2DZ zq!a8`qSKJD>E#_taWNs+=_^ri*HR;DV(>p$A&PypBCNNBFA(XAPf|pjTi8EZmhu9^ zd}x!d1E!})QNX_=VM3H+7I)BUg;dsoQ?xuD@fN8!>NWeF7@uN);t^PY9vgDTKs%d? zG+wBC7>v{UV_XofqI)f}Ed0Za{L`ZLIfQD?b@EFe5jh|a2{;M?WRm>fEZ_3_=f7@x z(^j`UgsN42r`=@xgBS+!{5XW^Co?Mgo^PJjfuXEda$dx^6!D6KVbT}6WgMLEt`yX7 zYvr~3;#Gf;$H4!)_H%NjlVZs(VQmO9FIDcWeM){Var)o~$D|74FRaweKC@6lu3B3o zzt@>8Qk%Tj$br*2Puoyh_wngSA78&q?_jE=w~4A_Xl5(|oa2-oZ%KmX$*s3X4E{8W zr5y6?Y$v8W88WjKvs@`V-3W7~9~QJ|FY~fq&ONgmXT;Bo9S#?b#jw_>(gwsJ@MhO$E>ipW!Oz0#)L0GP-FradVo08Kq*hmJwh8jx`u;e=*_k{3qYTEaG z>uCi6VMX#ALukQm+>u4z8BU@_5D*13UkojRkgO@j>c2-3>r4)*SeoYx_e&CqJS4-d z(=990fZBF50UrdL`T>ldPchfAZKTEpNp(i#%dL&mjPGT__c+>AwL`v69NrPyMQibE zCGZMn?orDgMq$AGRiw5!s=MWPG1XK6kaRNb4k8@yXeNx#AfhJ5pn>jl*vXSJt4%0s z>}r#sZssVh3k&spkK*Fkb69by@)hs7q&~u+XjWr3)~fWi(mJ?dk#m(Pn6ehx`aC3` z)_so>hf}{v06W>~hGHkx;a2k&Kp9kRgfx4`=nTL-frYs z{mUwMZX<_zpN#?dYwMd#qs&UH@y?Hl_U6$lM|1N`8jZrh$aPSo`AqcIl*3 zeKc!V-Hw1`1)eN@wCi{&J$z#Fp`{YAt!vqOOu`fld0KX*uvY{HucTN8+Rn$5T@K{8 zL<;b`1sA2euK$}6wr;R^dq{c|d4|&>ovm9@cl;FK&(_|y+R=5l1t%e3>peB@ibZWb zwdrh=@T(;R2|yA2KTf~Kx_XUz*SNwkVXI{bYGl!zQoi&qTf_xbJQRDoyVHnF@mQI;$%aTgj-iNS11Ltn6QoJ z?HmG>nxmoiOSsM8hOfc$G_cYuLsVJPGN`QR0QQ>_d$%OaFUe#i6#>$$)v6oBqdOB-d%L3)s8*Ma*#-0}fziK@ZOR~**#P}jeIsIDM)f0d@~`m8+R|~g zo$`D90B-NUV*D;0dF(%Xb3-ZRvo@WH|22dft`6*YyEj^*-j=*$5K!M>R&Hn$7-DcH z6BR+>XX_>`LfB`HlYJ-!j}wyy)R^lMKCh&8=>Q$RcjaNeT?M2<=2irt4j+QqZeNke z!qpRbK$n>8eo&bnvEzAd^iW_2K>CxMb>9&fR9dX8{c@)KbwKj1wDqC6l3o*VtbEm{ zQ#8HOxlh3dT4oM;Ek8a5(3OENA~`8Fi0o?dn?yAl;IVsI`VfKbnE9iZGo3#~pauQ=VX}F^Vw}op_CZ0*%d=zdg>9_o z`X4P^3jwlHdt-8P@7rphJfrzlYJ=MsG!HOM*E{6$V4eTdUcmsUS2__?q?Pk$--8HL;5N z^+DzGo&`ZpX;9gkQ-v5gi%zc_KL7mQ=LoRt|Ek~p$Tw7j>ej~|F5Ib`v4_ZQ7XxwZ z-nhRE)bYv=?Y(T8+>^6O|IRBAs8f?2Dp4@|0Hw2&-^5+{_u4wZILRywICRUnv}o>0 z-~nR$@E6&9bQimAq)*{}^=PhTZguvqe|lKmK$`El(143gXyx z`~1H?q?LSQo}BbZPm;4Yx-B7nd*Jzl@bhqC0^h5Y;l*KNTEqod)6Ig3RPeh# zBTUPLxQXl87hAY@Q>|#=o=Ck)UMo^;f3~;Xuwqe55KkPL?h!uhj+wyQy)TX$8_+t_O<7!p$0jhUApVt@Y^h?|f~Pv0^GkW< zsTF5CpcL_VY80U5*B{r|xV{{tb=w5V(w!hxCDV=my zX*Z-n&`LpCmT z|5Fsd-VzC_xK(RquboS*f4AmOs5O}%GK%bkGf<8QN6Eru3yH6hBPPZtF{i}Q>_hw$ z30lawr6z7+_@vRU=Q=gSLCAknK2BF@*_ER>v7Su*0J{A5<8a9Ily$QPqPQ|NKsN3D znINg9S%V?JF!ySW%G#EHg~r)nxT28H&>j;*T}47CApuz0C;GQ};7G4U1!~ z`k9wZ&E?&lT%A5Q`wMQLSy+KMk18MB-K9%9{fO8RK6YsIB&c=g#r5$or1r-d6HFp6 z^WYa&2qwbG$_J&#TNyBw1{w4fl(%Nz_CXz8tGFdu4yfNa>%dq8xmhu{6goX#m%lKo zre9c)M&3GUh#E36pGQVc0*r4|Hyy%Y!T{AHnDH!qLkA zc82Xbi5lIh0}?eT`AAIk$AUL3eK~r?&+BqJMga?Kk*c?duumvcm!g*vc zylR$=|GrpjDDNW;8VNhk3qUByuqVeSHAjQr)XLm!779V{W02>y(iCtGE@ zIkH)nK49SG44y1IYN?Gp%{=mN9x3!MH4@hzetV z2DQ@nrnGn{XXkp90A}{3(n_+tnlf`~7P@~#x>NHVggCG=oQ>fAG@#B!4I^vbw()3` zrFqYZi(n>TR*cwaSF{OMu|Y#7dmWKFe0FNRT(7UUNSzQ2Y{=7D#!Lxh5NCL;x0F39 zeMmf8Jb~!(mIM9ru)H;?0$dZj%1Y3uxgK@hKcb37S^}or0sf#TbIydGnd9ki*AHd( zbnM$lsLId-m(%`8Avv931~C-=Dpco$w5V8sd;->cFD29+sPYFt5%5`!3+F+ga^c^y zK9=RO6}NPq)izQSMkQ)YbaNb8kF!#$W;WeBZl1Tx@n<6bK(IV&!X@~F|Sar0_nt?$1q7h1E8Tu*VAZZVKL3CAMZs0L?2 zHGrT0;D)TR;4#}QeprumwkDRZLDne#Au$LLo;V3*$7J3Ea_ehbs5KviOBty`wed;z{I7$pL9L&9Q7-EJ5`QT(0A4k2+%zvzO`LCHP>|aP831n zi=|>Ci@v=@^RKFI=&qm6q3^e=RzpPT#&QKiDoJUy|5o^Rn4Xosi&1^KFhZZQ94*ITJx}zxSuUN84&jyy1PiF-) z(E)`L1KNPZ;b-7{^$0Lovy?0cxxWdki-F{|*h?a@I8!CX=J-!(F6-JY*&zc?y^l~U zH+58GwwTrFHz`movh#EQ-TSDHEyvC=1Z4YluVa0EuC=E8vfbgRzetM_ANmh|rP7En zk_^ZvYk&l2>0@U?$mQU!JENbeXgA&PsNY-Nm?W%&!5akRjq&oL1eU_Bmuk%gxZp2? zE=iVav~0Tob1GfWI%a)6#CftZy1kOm+upbZw)EeB27VyE&~kH@*A;Gy<}`ueV0`F; z5eYl9u!^17=x*TVTZeSOYuQSNeh~i%bO+S(|XAuzV zdqRC!^X4pLtS8QC&FTrP0Wz9f_wxa1(SB34*lBAvEXP|8i6yhfqY>Y(kM zO~sO-h^5ux>}YLHwN7*)*M|UG@kceWcM9bIpPz-eOXAqoT^XdqTLwtfdAjI1>!F;$ zraz50)*17gxHj<&D~~j@Na864?0W+IMeFQK;JxG&sKrN!s=VXr+57&-BwS9b=tt8A zPvg#RSS34pMSYtl&-$MXJ$Ko~YE`JUYon#O=ZBw&G9ZdG69w14kD}nY@@u!Y0(JvX zTQl_~6%i1;t0rbAJ|=RFT`0{(2W`1;-sZ7 zH+6D1#6=wb6UFuf=mDV+_Sc(1#9y_|ZB)P|0renPo~;rB{-dOa__$}`E?Ft$AaZjK z7{5W}!+>gbfV^9=A=bfeUaN_nEGriezGw{wEUEaj2n^a}$Fo?5%F4Drp+}4Rj%32s z=P3EJAKje0q$ak%P8{d85gK8zi9M(6k#LtyW`DtK9kb-PO175wsGcAFQki*nXI%=< z1AvmjigXgC8QhgsOk#f_O`l*leK&xhfz)d4u~L2JJ5Dey{BNLV`~;_Elz^ zZNx__EwsL~&EUBke1BPXiV5PN_g~g))%6ZS&Nlo;K(Gpm0i|OfO;8WeHVrWC7h9Jy zWJ{qqyYAb|@Z810$X5sFf9-@PX+|0PQ_o#CfiG1%DaOVnxeAq!nS%#No7X@f3`19H z;M~!B+Q-)$Pw@(!wBdTr!~PS`EJtUa%gI*cNP!Ll`%65scNjIEX}MqHUShGcr9&~? z{mcL!>t0x&XaWed3(FFAJR>fe|)Nsc>IYy`(RkqGGoLxGFzSgXUYEg>}^0rRQQ-sxbY@@&vgB- zKWT~nU1l)`u%-Wuy>|dJ=DgpTzdO;QRr4>Px_Ak|=2X!%IkN`Lt~*|@5RS^)=>;A? zd$|SM{6F)u_pAD^svv`7eADM&h{fm6z5iJkd2g=oZRJtKpQ%8=Kh??$UDimABmd8z zX#<@w+nc@)sLfST7iAhNBih~ZgS=zA{DkEM^uKdr0S!Y(%(b_3OT&Wx&(AgkZq#JD zCE=|f;P?R}u@Y!y`0wSH_qyf%Gg?6ahxFee^}itPga5mi-2df5`vs7XTnrH6R${)V z=>P_|at~wJLr}oS7rv-h1MjWd9*D36oT@_-;yo%7rmHg}q2FY4#03K2Nt!$>(5t@U zRBVZqaIgKEFcXORw$Hb2R?322sl&5iD$P@~z&}xwt%G2nU3oyZ!`_HrzyZFh=En;g z0M>j5^ZWluJGA~s*X1|44MY5vv*>?6Djxx`@^UeY+zF+Ge=)V1*gdK2f5!j)UH!kl z{r}%wcrcRVDT*``Aa~89=F%BxAck&}C3OSOl}P#ao{Zw`{H@OZ+MN)yWddMM#z3r0 zr`i>6Jx$qIqKZc95rx8j9=`#;EFMT{1kj<+dqC@Zi#{MmdrU+Uz09G1=ZrG=v z3P3{*)ke{i^X$<8lX6I8zkO7)PIJ9G5x92X-P#OxDxs7Bq~XVhv74e@0h52^ex*ta zUy7~E#5R5FxYT$l)r0;ap~-isA!=*Kz7o5;XP$5v+S=z`nqXyK#uTy>1uluG^oZhd zA;&QPY_90_4Xu>%@b2$n`$3D+dl=lxtLD@(@d`>}c#RgbQ*T>;6v4uwL+biU5Go3( z%;jzpVh=)~r$8l9&|5)}Udpa_R2u@`LO~9_1&b>JQd8EJ0;9r&xxbSs{*hh_NFjjE zsbM|8Nc`h2fkp(YAnJJse*aSW)GG&Ya7v2gU2>|V!~FTti!!%9j+F_*bTew$7Nb9k z?JU3Ja;IGRYXZp{JG;7Z;U8g zki4xt)mr$ER6qsudtEv8>{PqtQo;CO#qdI-Ckqjca!wzIx0`&ftd(&A)jDVP*tGXUgr%Iyj8EF34(>m~01gm^R_yx}@jyxYy`hJ5Vzp zJ0IBdp&MSiRn)G-dda)g-3N|(U*|DhWWYYJypX}7;oeCMJQfU&aZOma+^?uCF} zxyBxBbZyh1=<6mmA0JR9g0XC7uo*Lmre^&*lg55h46Eur%ScZg zVs6ZY3p+F)RS@8*utxf=10A{^Rl;^D{MjIOi$m0s@PPvMrnT@zGVhs3wZ(U}3f00? z_O1*YWjIC>VjmI^K|lp)>9ku~%45I^>jH0)s(h2yz{dT(INyBc>yF|0TG5ISSFq3% zBMekAjAG5xdVnBiq2vv-erPdpf@Syok_9f7;VDiUpYb!RtpHGkpYsz%`Yviv#wqkC zr?6bNzBYVA*jTtLcxrVMTpt_v%U@g1`-Q@+|8~Q>WBn1nvwGH-*QOh3l>w;}jO>T3 zi_l$G=yyT?PTYGq*|%T+OCcd7iqf~SU4gs;_jX9HQ5M}kcZ1q@1ztTE(|!@38b@7# z9nG*Qc-jt~D1{(O&FlpcvYxBfdZH^TU88-}S0PLAxYgi!a`(1Ycdl%@?Znf;V{!kWb0CB>?=@zzNxY`ZtAvWv zL|$gWsZ~Fj8X~&te3SO+u&_1|P4NhcyujdG8VK$6s1KqX6X=;&dU^@Z@Rptjvk;@% zP()tc*MR+B2TAd)Kqw;r1E9{(_)b(=H`o=sS(v=Z+$0E#Oap*A(6uT`X;%P4?6Gdb zxG7wT)}Q$`WgATtON@vC9}%>uh_L9fgPjvvDv~1)*5Qt47}br_l@7DCVXD#HCp4DB=T+D9!CKroci~<WPT{tn{Vo`@-*dVP{?Nhgv4)}N>s*-Mjnt>Z*`(F8Rxzj@=ZOK z!pxW2U?+Xb$9%=i$frwv=B$%xh(%VaW&Ua>M*ZwevyoniCvjyepq!0?%nZyt>b|DC8%I!AUC6b z8dXZucWH^8*DZ2aSCQhiVZna#TfMh=_r4)YGdF^*=j%y>+A8LVWY>J$WyMnoqu=3; zO$--|6rKnPh$IQJdaco`d*H~JkyEt>E|hmARO<6+^-AE@Q!ib?_`V$y_!Zp?55sh= z*wNQ-K?tkV#xqyDyJOC`2gO3h4avT`xx}=oL59Sz!Vh5($Qm_$us zjg569H@xLN(ua6Ys}`+=I4#zFpIbroF@V(INX0&LI7jRF!E0sr!@HR-wbpRP)d#gj zqOZ=<8tN~c$amol?Ic8F-OpSxG6)Xa=KUh~lzFmD7bulz3>3Q*RU_{1HieSw5EUeq z9CQfVKQEKp{K~x~VliMphqX4$Af*)Wb@dVaiktgE(etD?{OEc6>y#qcg z|IBWbe!JZ|Ukgl&zJ{{V!#l8`k$aZhU8H2u{hrgJg;OGsc++Kq(l;)`Gu^4lc?bU{ zWx9FNw7Y3@Tfmm}L8NEW1jqxAirI2yN zudLkl?qb>ASnmO7c12RhPU%{h^X#v*n_cg-jGl{Y^9Z<^Yi3sqr9_eKPM8$gR8pmO zeh$*n>SpPq`sy*XH?-N{yQg>cmCndqzhpnmY_El(*Lc}#LRtzXBCbn3xYE2Jdk55E z(sJl>=-UA+Ca8NXSp$)DMvuhPp})O&o|jL0?#8@6qZ(7udAtYX&{co?es!pnR`8=Y zSV#La_t}S9OovUaFt4=2nyi9$r_0$(Ar2IFP!t22Wn>_LlQiI~2OJQ2!nm1&wwN#;!-%LLMy6iuuDJuQ}psIp;Y>u@(Gn)u->)ZDpn|u2xXFhV+F`1Cz{MG z5(@Pe?#INE-Oqj>^4BCGZ>0g)YvZN3H3SvF7I8ts{ZDRF6J zWjv`3=^SJZ8hPgAa;sxIBv-urTFjz^VZ=kNAI8F17(bIwH|RO290B9OaG*?4Z~n#C zb*T%&J7TONh^SNth_VjUxqHfA8_2F?UBz5a!hwUW@Ane-v}*@`CE@gEB*1d?jjj%%Un^p`Ls-PLdjnN3lhrStNYF(fYv}yoo>@5}jo@n1piHCdVsO;CnO^NVoDw|E10vWd=~?-3 zw>==G*Zw&@YYH{q3V&TaRc*qVAL-ff^w#B%PGNib)U6Sh#`asgCI-H;6|g!S49j}C zZC$!_7%QbnLsX$a*9Jp`rg6)TMw8A<6oE;EbK+G*Zbibq;cxE63A>~BxcFhy#`+-6 z!JukHj&lA$ypEKhi-bT~PIgA%ht~+k0qf+Tq&myNsxhsS2b}$Htb-;8`w~kp&143= zKFxTM-U_M!xDufIpDq18aj4^n3oKn72XP~h?(cn$K%a4LU?foJ{BU=@V2wkOL8v*Oy*r} zViqc2me+aCR`ArAL3EL#asAU;w!{dnItjoWJncqt?_u#3vystS@b4Cu_TDwc~53;q7d6%3#w}VMS_Bv3~X0iCT4HcR>aA zhA^btIkQzNQ4h*;hEPvZ^mut=ZQSbL`?1%MG&y2g>tZx*bES#Hl`0RS@C5fN4!ofw zsw0${Q{e!B90@^OVzoomc|G9oUXqpV?+1nzo8FoH*y_C35o}SBb4b&>F+;WRioK)z zTll+Ye@rX}ejinQJZPqqo0S_?r)^=Jdxk4uKP_)4J$IvNxW_%$W+o12tl#Ghwp*Qu zrBxsAdjtj_I{;=tPr*XzPA_{bFx~g~M%V6B3B9V-5d~Hab7rQf0_HQipQOfNmIfn0 z9Fv=gS!y{J(Zii6IYR82K>6@ujp&G5`5$z-gnMD_A041I?o zFN1xb#S}F#vVHDi)a)+nBmJ|*_m{*7Oi(uTQ8m-Z&YI#czrOu_h<`8qEFw+*I*p&4 z&GsglG`jmGSpS)MFOM|NF~%<@rPm?E*ES1*o7M}%!s(!1UYB-g>6K1Fc0f9~UJHH{ z06PF0%ZOfzpvMIY_F+D2qG~=MJqkR^+{jWr(f212U=tHch76{b3Uwng8XQW=WswI> zhW3%=-&tGyrqbi~Y3_UE_vuS2FG>c_w(EVQ08)Bwjfp|co?UVXOtl0(QAG{5_?wy!%~<-LmW z@|`}=pCRpga4+wl=vksQbjZJdMimVNlRPZX@6M2Cuh`o_Fn(I}6|jxsW!)Q9x&eXZ zhiKVo+lTj2;vn7aR`^@V$K7?+{=`%!x}!nqrIqg`B1aGUw;+7X7Mg*0LFSJJUB zeCj&XYR9hYa6;e`mur)R&Ws(O2o>!`1S@^k*O#L0@5djtQvCW_nZJ1=Fjb@rWWKZ< z+Jmrn;-Y8K(&vY8^)OYUo9DOcUf00Xm0EmR#+2shd}2ryg*5HnYzyTGdIP+(B|#J? zrXwPE1j65(oAcUXu3!nFtl4od^3QAIu%)(cyR@`}qnoB4|edC5X05M@NR%x1&exzl`(awMYept0RB7asJ!DnV){^Gh4qZNxUG<4 zEm~$6;k85K(SA#q&=wvZ?f#pt!fX-BOlKz8T9JX%J@CvFj>vbL?|7dI+umF)OgHk7 zOe&x2d6@}{7YqSKEHL(!Uk>DXCGeEqdgaR#dFa_~gyM9k@q5E4_X{{E7Pi>6LKB9q zpXflbwJFM_I}Km_WmK(8XF6BnK4F1Oiako6ge!=#fA|W>0xi992#=p#%raT)fo-Fb zkzRvdKfz?jH$74wwYjewNhdm4UO$gWEqe4o_L((*qDlLwFu=GYo)#U|TzJN$UO2ic zwlTWHH_v~NkM?0cD#2wN`6RmysoLiMK0a1go{0$JgyM${o?P%omoBfQ)Ei!MG>_Q5{V z>KXu(#gm;v8&}kD3n9_Y1X~WC`4*=%Y&t(lfw4&?4i{K)o=565tNA~@s)|jBP|Ya0 z0*|k(eLh-9Iuas(wYh}+sG`YG<+dp9yHLw)XAOK8*#j&CkL~ZLwpmqun(=*)Z6iWn zY1UGBMlSKROR?9rWQqD>x2K~xshoKCvmd{PU@$2Qnroe0FXTmE4pfh{y|ofP($#kb zRAI%GZZPDG8^G_l1#z~Puxg81VPL*#L92gu%d>-y+@F4-1y9Tfc$1~I>;vCCW2WyL z4pj(YY&uJOG`sEsjhE~ECT!tpQ@k@Jnrzuh=EuA%Al#Jbj3{I>vP3$;@X$YF3%~xy z(g#Fh97_=6G$0ecrI+#5c6zWX0dMW&Rv#>-x4Asu-JaF}F#B0O{OFAp0GcnM zOjWWVR>)%Q24OclVe_+yPBk-)_3`%iGQBpK^^9yB9Tw$7$P8pXMp@{d;6`|5Ow!Mm zla+HK@4T4~_P$e_{qxp_Re*zJw0nb@pz-%n!AyOQXqL}@vCaBXeJY|>rMyMD%c$qW z#cn(?CG&8VwKN@iWrkyP%Um)W8g@ZK^sUgY>Qqv^K^O6k@Cu83gd>l(5|3hc-3tdj zqn8{SajSdur|o8PTntZadD34jd8$TXi1)~q^t@&fTb~K4V(gLfDp=X4L?f%4N2W-E zS(a-z$%1?@C`^-?O~PW&ZK(h<-8|HlFte_hi9?(VGtapjzDKq^(f1`515k_KDgsQ) z#AJS4XwewSmS%~Cu$zSxNF4!3U~ zbPnx)U&Vs~s2zK;F}Vr}L_eTb=g| zm5+Y6?+VEh_t$>Kt*CSYo_@&>po+bc zO<=Uj1HiT`zfVte-kn=yLA~mv+H%{VGNKg}lC1G>g5+RC#RYSv1B=aK5;-badviXe za#+FDWG}g3!LJ`30zi+Sa)CsMxTgpJ2Noiu=}b|VKhK-tvAwX=-!5B;tp?<#g~^sl z6Zyb?01$DNHc#UpU!8lAvtfD$@s53Ycg`Pof$`~*4tDg~OShDS!T|K3M>A*s1kyL+y(Gdo-V8`6)E$rj3ClEq#0-%Bk5NH|L7 zmUnrC7_)RD;nP=Zoh85!^{PD8Ldpg-2h53+s0rf+M8;iw5vw*09?`LxGn&M!8^+%N z(TvTP;1pi`%ABt^F9k?GES(X>$7$8)@hCAv!oBo^J@G)FDR-1@0vs?1F>9OsT*U1K zAL+aB^bq0^9o;5qP762$WSaJDBg3j4U^IDAgjjHO%7o}aZnYVZSdIMG2Tcan={#uj zZK#u#hT9lGqh0DclY;`dE=?&L|M(?1)qj|*{D!5ZDAXQ5*TIZ3yKrWz`sR`<>JK{O zMjgYBV%yFaPr6z3;G)=isH%XN{y!C-JzCtzEAgbiz(&ud={zU#E7_+A!?~Dt-rJjdG-CEq3$H68YNN`)PET{ip^>x8jt~EAU)pUeV{pW^ zY~GG4kQfWk|4k=|HAZ-YO`l3PAYA7z8P*;0U>#zJZWZc-0E+}TDaYTb?#Ic#X3KwJ z>ZGKAI3UAey0-_VfOK8<%AD9- zq1n&aiuJ=5FH0BJUT%|SI{zYA&x`CvkBJ@%s&|l}rT>PE=+q6x+)ep3UtJvu+`aDo zxwq~UEM8`Eo_J%A;^?vcx+*cP?37jhGMn7YPNeKVhd6rUzeR6ZdJhLcHA;KI+T}Z7 zS`VR-aIZ=eiR-Nmxj;C@9B9b^Ej@Bj-^S zk3vb~Ew*!Bk1xiazv35VWyHx`DC7Y9I|@{zw%1Kl{2$4CsLKmYNWg6yP-pRh-P#1? zM$MFVx5kk1kz+T8avr>xbi%2)N>5skTr)>fZeu? zHc_ex6z|FG?oqqALV)F&6fjztX-xA7AkYbO%}@?H^Y8A)j8n|0IAltyR!0c?ug9)r^lB z&%Pchty+n}r=4Q<-N;R?^bDiHXefF(ZOn0zrz(eE-9!VW-z27F~L4}cgFFCn_{*!FS{Y<*M@+C zz>7CB@tkd#3a?pH^x^rK0y0%wG@`j%aW_A>!-T{pkI;m!T!42lP&gQ3z0`|>=!@M` zeq*L@P|vqtZWj*9#f8QhM-;L^7;MiuZeGg-FV;#-F%iaSACFjMk~Uu(tXBv)TUovi z%!LLzQ)u&W8-aPNVsi~{#}Xn5i>St)tLN2Ud94%qOorcvi*O%nZM3V2YK~9#FY8-AZ%%(4LJVkW*DskNnM;U`G-FX8c|q%1&#Xk z?6qv!3i$XsoI5)lE1E;?Wl>OatrqsE$)oBo^c5fP_Lnh)`vZWNTuevZx7pok=4Kz6 zKi=7PpU$9a$k7DxGy3zlUyd`(;c|oXJ{__Cz3K*Vle8JHsJ809XufA@?X~eb?Z1e@ z^O&xw5Hw`*l7gnTvdQJ=p^hq4)Vhwh))FS{_g@EX&ZW#RQfTMz9lc)GeacEnD` zCDoqoopZ>e2kwxC3DJ!U*x%#NXL-Vp>Y&?9GEW&SsfklW?{qi{qmv&11p&gf z0*0vYCa;a!qQoP(l2%f0aS^H5X%xXU-^d{57F_0KW*<^)sDZB(^4n?=fgpo+p#5Mg z6>trnNB;iCnEl1*s*V@qajoggEZG;EH^{s{tP?}W+u|CF}j+3P~Zm<)MV*8z1kLDU}MZL1y!OmETn_p4@F`5$mgL$6*mqNBOA2| zVW5z4-I<$6otMMs6eDyjN5A6os<*y>SJi8=)o*C8nxLK%JI_9xID|xLBkc%%1g4gG z3UoXlBYM3Z`sg>}zJvhwE@9^;LQscW=;_(v#ohl6;+JMn?<(VFzZ<;4epU%tK&BjU#PFp+Z1X; zvWAq*rp#4YTy->r`2}PH6y^YaVrHI|jO~T~%(UUko47MKm3-h*Wf?GR+=BR-f%fVv z_bAXC!YL?H5sOE_2^VKkC$eUguQ^G+r@cZzRyR3nTaDJ1BhqF#Na>W z$7ok5;^1NSdx_{2^yxd#&~2gl9iXb1LXwajGn)UPofMsHBqjPZH60}LxL zsTk8^f*dzCvVNK^R6Z@rCgB`O)y)hdOMxe9uz#zPgK=d!GebaOM^&+lmmDVKj7nub ztNZkMLyj5whruQPGo{JsUkOfydSi;Sd|#q6e^f>gbEzcTsHfafuzxoPm0f+?zQt3`f9XU4su!M@*1*af@vcCgg)>>;lT>uUiNRzQ!3H}51} zXmn|TtH;kJ(@2L@jL-z;7Yms>wuGw<)Cc6_-6e$rzghTs5OK?0wNTvECj?qO&NQPm zK5x>J=WTjkYt3YzT>R>AX2nvn;=ql2Zp>D`>5^v8NoJ0OnEmK9XAX!YSz-k>Q=yYWcl zEcqB1t!3as{uIjR@iQfmfi@!FVDfTU=-*I>pT|b`{lXR7vfe%!YwH^O6R53s?r@z+ ztTad*8kZwzWpo{pt71|2iI^A93oshUf}Ky%DYQ{xs6-T#&HYgcd{X*y{Xrt$6iw zfc>G+ZliL12D8Dn*wo@KzF7Cm>Jvp+3Nloe_iK>&Ee`X2)!R#q9rrE_d$KC>kK4*0 zXl{7BfJ{fPzvh;2nIh*%Sy=h++MHsQlP44}U*T_t5b=b%BJNr<^$<2>_JfqqwLPEQ zJMWn!erc$q4Zc0uX!Al7w@-jsd*uN>R9moF)S!J}%=C`NWhOd!=Bu&X?o3gf*L{?3 z`p%)|mTpr9&LQS-OKo2F!loj>TbDcOR<2?c|NB#`#gdFyk*BlLmW>P$$vs7g^B5BD zGY)4sW*{K=d6CUymSXXVLn+|?qmGs@8hN{X3cc13IgM>)9Hd|(o%rE?eg+dz`JwHhgBZC;- zWm3nnh~`zp7FjEz)Hl+A`A;Mr`Sm#^(6B$&-y5k`PByub1sj%n6`=}5AsG#QZm-9bzjhN$>-ZDkT3dPD71>MnKne9&Y;4p42G2E5JW zx?v3la+gZFvGV*xK!dZ?{)pa8Y-ssh$l034yBQ6Sy*~&&03eC*nDwz7!6NXLXO!*9 zCIM!p#L>4<=k12n0*1T?ZeNEt{g6H%s?qm{fS5y?i7sR;tfi5#;T4@=)d(zUf%D4p z^Wypj&0w0~baBvcf?+BU}nJVOP}AI zIj3~L{0*TSEL{kVA`C(fYTrbh`nFM-BJ0q5p6I{Iwoqo2xX>@TSn)=FEk)sxnwAPt%AY^Zr2w>N;7+hm2$T_-v0B*tF|nRq7l( z*Hwy}G#>1p+N+pp=Ho?C8g?mqiE7FT(yI-(4@b)XrEEG$;`8k&CIW(aJ`udWsmW}? zn6tjjY)bn~?Lj5ZZ)CmbGYz`2RD?R_Ip|Dl}SVg=Ee^T~gw zL!oDDP)pIKZw7ImPj$`7y4PMNulAT_zVf@3K}JR$#hdD@L37Ik)7c_Y8AJ72R=;cQ zSzSXXRzLaZ!fLnCL|BLwP1|7rest4HQ9I8*1d3hroAD^b&{9)U+O07VyTKJEdZ(oL zB1<@SHvlPFfXKcc)9Y;QLnxFfw>Jq`G*;>~&{=yl1GYMb_C9t!*ITQ7yucAuKFpwZ zZkIXAjRaHF-(6n!atWxlofS91#)P-stN3238*IO&j*XHfYoo1!_~zH8)4ao2aXKvE zVxnV`tCRj;&^}4`aJvAf(+$xIwr2fy*69z@jpR@){|n$I67i`< zzoBHI^S!|2r*)z=)22B_Y+UZgH@Cg;wKfI)#e=!ZVviT7w__Wx-e;my?VJ5INcs<(f^Oq7Sz^ zlZzy-@gA#yTD9pkNJa&jDzjw#j*JV0T)9VyKdkdH@3dSCLdJr1;YFf9-grpkMGk1L zw#3U{R!3uCngL%bQzkgL94qden@`I8GuGgNji z0jr9bZMEGXl6>#eH>|QPG0ObK0|hxo<6R8R22z!AM6{=dJvfoo8jZD`i6Yd#M{Z~L zeQX*)U|S&Q;KMgIlrv?Sak387r6suuQ$eiyAc&@X;9easgM_G8IjS*R#v)=__u{>l zQ0h|pR;1vDPP}bN=MrJVH){69@>Qe$ zYg?;nFYFOJsR~((iLtbvj49c4N+Zv)ONWe;bk{fY2O}4J{J?rG#tRi84E(ckc6#R> zOtkU9_BwhdHqWr#U06g7wT>B!94kETof>7YlIoF4sCDjcx|{KA(ZyzeF>AF|Fy;ZZ zw^Et_3TGHq{UHur*K?){@c>6wimjPp$L)-tb}Q_;Asj73+>ZGOenjFGn1m@o#w11x zs4=R@>I=h45&XutxpqDj)>8z9G*0cn0tw}KY_L*yvo?qlp}V&}Y{0pX=&Y+t zID`_P=1<&qZ?;!F34J>i$nxN2DhfWlRPa;%UH(P>Zr*Coz3Gu5Mi|Z8%OU3j?IgwA z>98K4i@wtvKi#0t@2y4hT8bNm8hmK)t1k5Q|Ky*_Llo+NM;(=YUf$9ab`b($V3@rd z`OeZ#JsAc7rW2VGfc4t>F4{%Ow9f98B~aW{NqgnmQ?;*&F><-{k=J6|d)ap9a}%&< z3Ig_z-z%&u9K0&mzR@KWZskP0(eym~MLGGB-1vceId)_N*O!c(l(MGkrFWeqJMfKj zD)(3>t48hD+H05oW_C3M4;HO`c_!~E*v#msDAnQq&d}`ddkzUzQ{{InaHwV~S9!*v z^Iw7?#3$TxpjF!Z$#SV-M9gI5>0zKJK@ajdZBtp9y8dNI1e7)mHvF=Ic`-HMWoTre zrpSYv%48f|oVSrse;`5A;Znn-n%0;L`HIU77t_Xr zFBZ$M4rWVN&8*cZHrOe^5Ol<{{Qtq;o5!=c{r{rTQq?MZ>!@njy8}gOY0Xo&mbR#> znupjWVpd|-gtGV6!B|s`(JE?IBx*>|ffB@+kRVz$CIlftNX`?x-`_cR`0L!)>)vx; z_pW~s$+PmT=d;#le!mYYEnd{#PW(2YeYe4`&VPe`v_JRwaF2@3HMuvslVg-F)j%Hm^^o8es(}00|gD8IfvlH=Mj;UbBleU%G60(v2ovNDnP2G#H zGh~P%P@#sitD$9Q{QGX-$>T+jorZ3wFo+1}z(g2!jnYM*3*FvuQh?Xe4RIHxXj$57 z?Y&|j@O0RjlW>vW*~F7Q`6zJk!sn2?A6}v+LOh_7%~y_!M~}HrnAkT$TbsLSq`N>} zrCn&_NfhgKOR-ejRc}h5sQ3QzrAT}b{Q4KYI+7sj!Rahw$bz?brX~d1YX1(##d5~=7da}CO8a`fS2CD37&3DZN5i6j7 zg)ha06Gx0lF?Pf-ZF&>5OcyrQW*G^l5d9`@Z6w_Eozk1x?o<8PUMBg9i=I2%*&uZz znfk%+Q;B3IEX&nVAC@-L8$pm*WBoZvd9A44imV77WL8u^tBU;C!x9NU;Z5#@6K%&> zw9qU;X2n3QvnKY$3DK!>ABoe^GrHeC6ZIHjof+CJS*5IP&NuuxF~EKMv#j*IlIG)) zO^P{UEwve{$H zJY-R8EOBF7_)+ogh0je7zOgB5xyv76$ibzwJ?sEFW(LP=Dp%)|8NC$3rfg~5`;bT1 zO+7L}zyGn}RJMTj=MdCLoR4vL8$rc}?l+3=9W=`EptB9P{m*D;Sad4&Ma-r)MX~$l zLZC533`1dJzi3qGB2?V1K5LD3xo5gM9jMZ%G4ZvDdm88W&uA&tO`AYf1saZ)n5~SQ zG3;)HDESB*Gt`a~bHOsIB8w5u_}GYIGL;xwRz4m?Wp`%vgAp`^i5IDoa5A|BNTY{K z+M2m9_j_r8d?W$06ByB|H@dL^K7&JKRHjNpuK0cHts&8!IF#7ei&lAxKiq6&4e|@T zi~HZDFI)wU@>(W%1NyW%C)y#UammJt`D!V}bR=!}Qr6e52bCsvL={mQkZyXt-(^ns z{a#<#RD3eX@e<@AuR*48YSCM(PjN1fv9p{HSUl=-`C_d?xlldW41zC2ke46^vd#Ih znG{@cjP=D&O()NN%`olk8Owr;J<_f#;$Pvl?H)7GRT0T0wliS(@JS8O;kM}*t@qWz(p&TNL@t~; z7FEdpVj_A3K@Y{Uqe3a1KCUi@WyFG{cRo}F_@8@ySY_3nR-0dqlR}ZZ<0qRK_^9>_ zDRqzw765AUV!e*qc)!{T<{Z`^a$5N)O?62R8LIp0S1UoD2jw>M96ia@sR{ZnTd;`& zaQ_fu!cr2W8OD-kneke=`Kz%}@EN+(k0j1!`?7XPM)(gwu-?2bWe3kiHFH_qx9s(K z%m!13RRImw=Qb$QoF9KX-29p|{{$Z_%??H8ZjUJ_v$ZD#^s$fU9GEi<@D2m`HY+>Q zQtSEns8#(CX?C7@6{h-D^41sqjgNn`fxn!IIVS~Dm7`h z**t##i!T+fn$$C#epSwPSWexNc7Se&I(7@(OxeujdVSMd-=fXw=}%T~VxqXRh2Cpp z5_*D>BW(RJ7AgAq$(E_OW}+kFwjjviw*(jL zIj$}1MJ6XN(bKbYa-(|LfsJs^DaCU2U56*xNY1zN4z3^BX_XPhmTg9I8xJ=_2oqKM zOVfhJOSN{`s9`@HHVq2YI@prvLX!1MGnj8M-$T|6Fz5A5(6}g10idCMoA@ zvZ}+`Ds5S^9`-4JCn+f85$T0X%lXg zVr*pFU>+YE)@dcb+s?L~jkskzG0ZYM@Tv8kmZm+cZ>ymfu6 ze5>KtG4xCEl*E>sKJ83e_1T1)0NJUBOL^wU!b-?!#xI3hUyFZi_ zQoN4A>c$CGu$+>ly=s4bgUMiEgRprN{%F_)f}vkMJFaxLbMfnpGTr&=p#fCxr<;uj+>DTDfhnqbNg6gpnmv z&9^0LRXNK0(|$GlRZZ!vyKns{B?MZ*>hex)9Ca5vp{Z0(OWWFcKv?{4u-aLcm=*N( z?I(I8R6lYDz7QtI*T-)RbELw%I3tp$gnp#EB4O5o&2jOZYWUWJF0}0fu}uIpa4Mmu4RksOZaR-1t zs;RqweC8zhbuK+i&UZ$d9k=Vd81CC^hnS8E$B|kYySMZJw4@D167IW zhdDOSv5?@rJn|sft|)DHcaGTlntX>rX6dW4!jFRf0Wf+%=m~Y~Dwtqo8O3GkL*!2# z51&#NZJs9Dh;}R;Tt@eJWu&t*WF~DR?@nQGQ~n1g#z(8NMY zpe=rvv(etZI$khBMR4X2fs3bnZeWz>xSKl$0WrlJ0ew2}&)1w@IA~gOZ+VxYjLIOYw5e6Z%(c&Nyr7EJBW?c+;*`caLY8&+Bo4$Iq-ScY*I~@Lf@z zt683xZ(mz&%`wFvcHUGk!A7mh6>O1NoaKM2I&XICR72RR#x{DQzFTv-Gh2qJJ@3o3PpL{fO8#Yjz#k27>4okl z1b1q)8Dsjpf3W5Y!IDwP)?cTC<5iz=x5weQrnS1q867hv+-1CJaN5i^4h=z|f@nuB z#X45e6}9QT9Dx4#glZD0g6}AR=+xLcy!7{Wewv#5^6f_GFpGj^yEL|%7nf}=Z|c1Y z`PR=gA4~j=HSll}?l%@~iPn$Bb?=4@)RLw%n8sPMjKknp^$>L}(Sj|ZtIURo{BOjmX)NT=ie|%Z-{A(otaKf zb*cBIxy3gF8%<>}s|E?=YJBX(dF31tVIs0*o8@~gg9*#Ho}U9J>~o3YrC`w$=c8EA zPHp8WwX`GYA!XX4&X-*fgIYN%V#$i#dcwV@c1By-pY3H0 zn5>zSn9n&Dcnf>MJM8+-a{tNK=(-CyWy#}99=lrePKjS`7EZ$kD3i8?*^?PxKbn=8 z=Us1-OP!jF3K{-0Tz)h6?rZBvT>>O==$YyU$(>UdawM1MRm;m<-+Qgpxt#4 zh7oMdYTQB0!>dBsCl$+e{W9Z8j~ZI2v6iff!H%xTxCgFdcaT~m1Yo~gUqk&tdLB#; zCbac^_5rCgo32>D7@3<=@2Gdv_=QrB*kbL&N2}*h zkJ}k11aH59)Sab*?n@Dlu6G@z2dTBpAUQzKQ3G~2N;30Po;uN8JP-W#?Dx`~p1;af zEnvdPW|?=y5QBR01c){{_?Ryfsd|s$%zo^}M>S_xE09wggUF3d zi_uD;8+Tfiysg{h1C`l*p-|C--3Az~8d6`gX1+FJ_(CPUaEk>uvm3**9VxktN^G

UYrm7F?xYsZd~=Uz6=#Q6ddA(6e}pDwD#zv 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%0Dn$ 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

N=pN(py; zE3@ZHb$n((&Fm(2B4)ssa9RE(N;=5?VOrOih>3`GDB3#eq#ORctC@_HVMd0O7NrV^ zD-wX}Al=sA13&$NxCEs?-lrwsxu495r_I&gJLi z8L+czUeuA4iB<0RF(B{NRL2zQmGiPR$j#&2g}xl7Lo_g8Ymn~AvQ;y7)ALz(IA|7L zMfxi41=N$sNCJ=UmUxoR|A6r@Gx`BOUqJrq?OWwUpjBd)#}f0r(XXQiJ03Y%vDAjb z<>xhP{V*n{s;FA~MK#$F3q+mte>FfJG~M$5arklpxW{L7bslZfmhcu~4m(pPDsb*M z^uYHSPt}YdNwApWr+~n@yYXo~8mS_zYY{TIHYvP8%ID}Frt7+U7B7egs*HEJh<*tI z0o~Aas;<)8+7Nd(avpg=VK5!CssN&1B>P><2?YfL{{%^LqC@c8a}468t=U8!onJ#C zq7;`kyLlP3SZQO(Z;B4YQv@wCkBL%|4~|d<46QP?OjkKVGt$56{OO|xNY5(uuXU#| z^U}uGg%_3Y=xMgik1p0bQb)+7Q_xs{lb7|%A_Pl;oan7v#5M=bT44UX2|oxs*W2Dw zDI`Wv-gL~|OuHQT$l1V162I7qFhi`l%-!SKKkJ?Z$zyn=J(}eI*bmzN`IN5Ay#DTN zaE}$w4B@d)8hykH`7fN1@=>T~f-*BIM*;R3n$&cg@}bG*=#lQ1P#G7?RmdfL+3;KE66TGINNK2SWpVJLv1W-2Jew70md zWL21<_G{~j@^$u!T?AR3b}DD=A-cRz`eLjeqE_NJS&GOHcyM4l*WXq@aBu0_+YE*C=)hIblS--+IdavXInAGR3JMfJ{`sN?ybla!gL#>F&j*bYwy$a zp}(FgUuSyX>ZqPrjr+fbHsljg#*Y5?&ZA=7Tp@Z;PInta?PSg-_je9Mkc3mxThs2U z(+<(y_Y(v7cKa_&6Vc%i{h9RRyfZQsCRaCo?Vd>&xWH^5B_+(`?*W;90MEzlSvKwC z+4Ym%S3!LiD{eIC{HsLkdbrI65oN86LnklWZOn#h2w++>TT7T!&9N>{H$Kb;%?j@% z-QYXPFe$a4X$+FDzFFdAEFxL8{$VnqeqHOXBHe@TDFVo?Q6Mh5Q#!A$7I(_CPO5Dt zk$WytG9Y9_% zZ76OJBpP`?LjBwVug8E0{-nw8S3G{Q{h!~)?myfCy3MSjLaefT#~G~O?adwh&<@>u zc3$r;O;IXp;92NU)K2*GuO7zx9)9byh>7x)-xWE38G>RaWX)AfnN~=zEYnS19hk5X zXD~47E;&#@S6PiO!bmQ5Xu9G&VpGg1;Wf_H)q`ns{^cUSjiRj@T+~@V1ans~0nchl zB)UjTx~g=j8=5ZLC+iurN%(u;-^q<-6@MU)yxQ=5aQla|T~P38C2wGQKvDsSE_CcRo)`1i_P!L=le1 z>|~XVrOm(;q`sx75pJY4GLv~eqvH)}{vgl42|zMO?M$SMDi24A8=D-R>)Z`;Qwi~H z{EF??Fo`A$q*Nd^Rx;+2`8X-AYO2LJKvhKiNlhxDNPc0-*Qg@bn)xaOMZq~~9l_Mp zoRU}pFO4=*SSLW^r>K>bANLH&l$@LnVX8#R7&sJ6v4fS8X%>a`-P}7%Fwc0b$r1MV zP00KQsz#Qba?dW^454$k)aCiFQ_^RcF9l;;N={j3%!G5*fy4?DyBkeGx+zI`=ljZq@`3CQ#A`_ z9c+gyh5gR0ft-%Jv~<#%gN4r)XJnp`ia(rqZ8B+)|U9*AM)CZldNkRx8(B|IFi^GxjlBTXw%UuquX~eEnSu> zC*X2^U@D2X(b*%9YsK;QtZ0beM3Kri@)Z zB`VxQU0;+KWLk(n5({aH?cwWoIqb7OD_*LyE5bo!Vyb^{CDhChzCIqi8gW82)7lzc z%ql!iFu|Qi)M8j$l)&5&fm~Nh?PXWfh-PjtJ{J zkB^PtRrs{nh{h=Oc7=(}Tr%_R|4S0AF!@7S$z1d4_PfYymxk=8Ou}PWe6;rvmib*n z;IBp(Kf6H~KVyFQB6)cptbRaL{t@*otagaNh*vR7j=a4WoU-6Za970jsdrR_Hn!XS zgAUv)G&iI@MNF*blk9h6qBM5r2I&fBGBEUr^*2U}E@Uw4cf%3j`emm2H>N zV95JozI@rmMrc53b%hZ7=ETrLk5|mnUp` z4!cOE?)3-BIAcl`VYF})Lc!*QFXm4!G_&%MtuS~NcKEB^9T&ZD>GFpQcOzw&7!%fB zlXjRK`f{c|yZ#z3bCV5H15OB{Rv8qY8(DQCU<*}=igsInwUhEJ96${toRYR6ZU6b% z2~L$7m+)%zM0CS$%kf=L2tS&lL4{?%=mC6=(dyd#ECPtb$A7G+fPoJ<3O3qT!AfDm zq|q?>kFWk0d?)KCyY#!}a!c|N0T})J9K<>vGE|?K+16a`=luDLD&jtkj*7(URI93l zAC&+?jk&Q*zMa|BwDI=r%XoJ>?NuTCSxJH%O6uqDP~*b^eJ0AhcZ#OOh_6Wk!a4cL zGq}vj(^ls$Xgg-7qcMZ1zrnvqNLWaKWr9PmZ#&a2Tc4cm@C>R;CM(F66+-Z>2+f#` zG~eTeRje46H-2vFdubmwWUPg_-LdnEjvSU4I~(ogM3EU^3Rp!T`hsk} z-(4P|^0*W=oO{S@;nSQf8Zj=bN*-;P(QfX>R?_STCQ(FXOQYfs(zah-35JQo=(NY6 z-W4e*vf!1Lqr4vaBWm+Dn~r{jmM|A}yg|BAAbHH&EEOfByvxNJ|4oa_$du9G`#S}j zsPW%2w^&+yQE20qeXr8P8%dPBo#v{Q!XBmWU(cQY`d9b*?44FJ-0uCUtYm}4A0G|O zLwn%3q1gsV+}Zz<0vm+q)#KceIq;CwkvpRJ&4H$3$qLA#d*dkb2fr^6(myJar}Mhk zJzf0uWbm31TP#s38?Vr7!uOlxM%kyu?G=L0BRHGPjFRnzskKv|n+HZq#%KBt!@@9U z*+~?2a#4fyy;ZoL(?rM~K-)MT0nzdon zOWD%`2rfRMe*^_#lFG9l`DzjAImtmwQtVN@Ys1Bc=Y;iPHSH0owf5b+1$XcsNxcOq zXZUr5bV2a%E}ktUd)=#uRVor{Av958F_~Fvi@yRW8x`dte1)CXhu^(+{ev)2>6Lw1 zitb2hP5^sXV@E7W=M`p4CCs-o`^~DQtC}>?LL)qc(hHDQQOD1adJ$^D&5V})36Wp- zYlIyJ(n90Q1JZH_)vd8MUwu?r*xmh#b(ulvwq=~*Iz8J=GO)Q^=>H?F{+Ftr^wwV? z`_IdR*hWBxP}MS)@qZ$!2-CvHg%7_%MJ5%+i9M2_MRmeRea6uPJxO*~Uy)+fWV(Qe z_*pe7z%(pMd&Zo60QPRN$-=BE`xSK-Wp?J!3@hy_d;)w;--|b;7}K3eK~fB`&mBx1 zNpiKUphp`77q&SKC=3!HZwb!^k%d_=X`1G8?dE&=p@v%5eJ1y%(|ci;x7IZk$8sFc z!CAwsslLOD@f+t29Ai>A8X|vyhxk5ISh<05=tZhqi{61_*2gY;bN^6#eSX>-d_DtD zGoJv9m*M~d4Fd=qr)m`smI)t1RbI)$)u&(5w+u4cCa`x&?S^Cx)tL0Z(}||2DV*K2 z*rP*M#`f_ey}NJm({V=tCuACs%6{3^~Ud`Ghej*68xRC0Lq>T0~i&oiKCY1MTC7 z8^=B6((dLJC~&&re;?v6_`%TTbcr*T6@ogFmWK z@pGQ}vL@kX5#oFD1jfI2i7_vGlJw22$vz_cWPei^Paw$IoQ6Od2L3eDkV$0kzuEJ# zxWx0Y`z5j9;hL!T4Z&60G3f?pU_~ zRfS|6L+KTq`aydh;>Y}ieLVXSBeT0&HBEt4-D(Czk`qWFK{ zbZ&B(n`PvssS44@9>3f`HyD2YQl{3FyFktSH(&L4CiMEsApRX#&Gt)NPhS&MzbV#O zpIA;s&Nt^pl(`^TFpLwfaw5_|;qf|}5aat7IB8dcvLrwniFUx^&Z!8T^C(C-Z#Q*$ zmU{O!oPF~=Wuj0RlW({dCzlD!CZ{#-qs6@cM*43+^mxM>ABxc5a_%U@W0Db~-Tbc! z@wl@=g!mx#H7>K}MWzzQLHbTGr8QG+v-3axAiA=m3OKr-#~gCUzI00ZA~;da(n7_Z zEJ*lLY74&)3F-NBvbB*t_nm zFV@ZoGO!A6WpaqttX(f1zWAu%Z#JtTL^G0OO4CjHOkM6=jTh2PbdRTAp<^ z%CuZkJRH8^);EAGUy-~xQb0w(yJA8=!PoKE!sXElpvIPvju{q%X9LqrTp2Q(9dXeF zsUdhBKagdN@YGCVWxG7dimc5AMx1Apdc55-?qHt9&GYW9$NF%1u-8gYF+T-4rrsdjjBpFIXqgvY61@#B2HJ z_-pxDXdI5+|4p*Wpu0-RTB@fSOF=*r1>0EKUeD|8$1EaC65GN^lF4suXG{fbH(^HA z_)3Wmd8PD(+r25ro}4ifi1{pkZ1oAy6x-<}f%$0$B*~*GygM#Km8T}kI@Id7p4k;E zHz-X-j&?HjG6~N$jl%@n%J4-%RZed`I)GqahAG&KPe7KLVy!H19f>qpIZkLrS3!n1G42xr3p=6o|z}!b=gwLQCYgtuFu4_ zuoXaRxcbP!NwFKdC%QVk+K#$ssI zieG`$RPh9>o%)n!O88C%jMDg2tg=0OA|982f+paT_WU=x{M%6DTAT#24ut3%jhoV# z%4Xv~hhH=0UUV_INE*R|2}JC3BcCwI7AQ1z(iZ{Cu$swe;QOKlyNlL}y~8)g%+bsuXbEG=%)}AtopZI~PCGcG+z!!j*NP-F z|AebZ9nT<{$X(!8zQnrCG-Jl2BmL(MKq~ZkS#P2iFctNc;LL^S4fS3&t77|@BO^7L z4oBrOkz07VbqfaH+?mGGHgZg`Drmxx-^fZoI1y*^QL123!K=sO_gHYI#??H6*IxFoXyc?iWKgxDzkr)Lbt`^4zHfZ~b>@91sBW=?m(|j59v)xzh>$8- zZzdU28BNW|1~%xGu@y!)FqyLmix+7@A%7-%v+CO(O$R=#v5Zk_{bw2iHcPdDWexh| zVDL8+yPx!Ms3aCMbv^U_pxr@PSfbKx* zm4)QEQcFS`Quk6|yAjYE5{`KuIBa^5Y4w>^oXce+Ayc~Ew`wRr_tqWtTe+#xL&o$f z9y-1U1O_^9X(o_1SG@jm(ddJBl|Oi3;9o+TPkwq3dT|&uzW@FL^0Pr9}mFn}90f(p&JSyZD-{4z*aoex3guiB{f{8tCVpNGNUC8LI>(mbB!ZF2S zmrv4OR8;v(%9e8a{rLiU~Faja?VeMc1=zuw}X zl}Z;2Gkb*5oUXZuSgZHDV4B3~=1^!DUS>S63k5E9m&FpIVBFlauc!8;k9ZRq*LJSM z59XhnoT-{=?H3j;(h|L>N`mhd=!l@HJiB*+{Ns(lzTM=bRPdeFycH%Du<@ zf*#`L%D^zxht!Ie$X!&T zwST^Rsjr~uP*s>J4emzr*ZNTjV(u5OvXmsLe74RtQ>994xK}GGim|{Cc?9WX6OoI^ zS`G7qnqKI`>&Mh&!ykKe<_f%}axU6|jmiYst%&j5ZuPer?=b+13BcY_e|rr=%~n}4 zk?-|7Y<2h5?K>-h>cj;5-rHRC zM+1ZIt8%~eRC|;kF#IPYgVp~?W0#Hw|J-@}49SNw6^^%a3-hi*A1jY<3G6FWQ{sEqutJZR&G4)Chy)**GVtdpy}g!9ws3tl9y|_COvFG^_E@O+_jL|k{874H?Vv8j1ji4wu<^Z~ zJulvxv;FqsvJd^Xme}P_mNw=}F);z{PnvU@7k`l3?S+)5Oix0)eNrvm=w9}Lm7zVF z4v!b56=n#S?Vq58NfB*xr2uoNJt6vfv>qFJ+ZO*(TiS8MqI}*-#79mtQ;nQAZTa9y z#(JgRPE#h0og$f3iqDQM(w%0t7>pF(7oJ3a`s$s-wc4GHijLxd^19hEq}YMGJx zO4O@=okX^7ZSX8;TG+(wy`O5qT^#w=CxoT1{lYAnY$fEB-53iYNPfNZVqdjgtq9)n z!SgQYBbHPNY!M*Lh;R$6YH|?LckUX0`BW`_%ecs)!06wASz&idSP-BSBAbp9%|K6c z@s-zacCjrWZ9WPpve7x(f2&)#mH+F-$aE$!TC?$ej-XKNd3qsYy-1jr0d$=&y(r*S zbxd99+5QjtgyP8S<$Tk-PB2V%41rja$4D{cRQa zL0zAsw!OJy)PRZ}g?V+~XpE{{tssrA_YC-l(`*$qp+Sf-*D(!xg^asI9X^eTij$1* z#g86=l0F{DFk@?7_Z#lKCSf|m!CYBomEBTr=8OJyhQMbJn9R3Ew)DZr{u(;J1r+7Z zFA3?@A|P|=Y_due@{H?$CiZAwi_=ufoq4_Yed|bIV4Z38R#6j1#F3>zER}ab!Jsxo zRWz?|pF)yr=J}ku5{)(Yd#Z>ShWeRKfFe>Y?m5SqQ`UL}(Dq=v*YDV)LT|i)vvpD zTHQmcoWHO(NQqZ{rWXm2rkv2iO;^pAzTS(QfXo=1uWC0|eDeG9$F!TRVmyWv)~G0n zH>~d2VN?95#)n>+51|QHRxoTMZ-gi(_Ud`fZm2;YXTuwmqI%~Y5i1AGobmsiVdWV;mvId#r^%&579gy0kUVh>;+-r<$iVk%qQOh z!sgKk-lcFF=n>M8&`d4M^=hw(xlh#b;wbaT$qnShax_Hl-L&CQB+8e%OyG7kyhMNS zF#UTS-6xg~xJ&X$S>E-<{#OGHwKFk2dY2|(b4BQpl_Z;4{+6X7nSDN02G@nXh$043 z4*dL^;jB@KC~A%h23RZUV%3YxBLcy`M7_!+q}uK8hDwFH>sV^swxOr}k+C>mD) zPcho)^~l3>&3&BQEE5jf&S?;2xZ-OgwAz{RrWRVu5W_T{Rh|MiZppt1g4fJ z8w|)kSi$Lil^sYbA6XU8J60jAvC`bIyqc3D=zw^b9qFb3*M@|EyT z59a@xO&>Hd!Vai$^tI1^r%-WX&N))eGH|#rKLM|4YOJ(~u6<4MO5KKf-SF92^$rYH zoGPcasd3`7?;gx2N)|B^J6WKFG%GFI1< zFn}XLlJ5e*b^PHqB?2L9aAUzCBi^jOV11V*R29aIQZDGdNT`QD7pIK}+m&EuIgkm{ zs!7%vP!=Z!kYm#ai24Lk+x({y|3&r@;1%${O&$O8PqL4Eq;(QR|5r`+UEP{HffhDn zmc(tvMXajNZe*|9Q5;MzKzj>~8cyE2P;BAN+Ss4@xIHgaO>RgPgAx&}5o&D1(#tdt zt$>Gt85T4@&@_zudZ(3j>4HDTYGZyu2ko_wEW1t!#78*MuONuy8*1IA)-f$PWcFZ0 z`y;}*=d7eL6}1+jo42|yAIi(AYQp`vZ1?x53T^mpS`F^mV zEI`x)54y$fRE?6*MvqC2H^GXsF0n^kXn0MFg{t89UJuStB42q9HpcRp@iN+f#mez)=vO_BYq-*Ld9b^m|A$I&Joi=c|Q~9t#U?y2A+o|8+XK!=Cd_8fKu&27y~{ zS*a#gYa+Q`?~rLMAcZGFLJZumvIlpU{aBlH>5C z`pWl(CwE%By=YG*D$~MMD*;tEpvJ3NTDl9=a9knhv>++IO){`gdlwnz|`II<2%!@$56eM}LLVkB_3@kR2zEar}J zBsB`2o+62)eoR&Ems?-y7fxNacGIGq3#pm3KQx&Z{@Zwdw7*UIA8yVb zf7?xCmZ5Ebp?MjP->9Yg@XYb;Bc`HXhy~-m+mcH$Z#6+0*IxA6ghw1t0A}KJOt`c%Xafhe-?CP6mRO z8I8xl?;m>`p>c*R&tGFwEGY56eoP-hgI|?GBxrJ=-4t30gRcAJ3#Bc69v$%o&LEFX z;!lKLww`AT3oDbb>XCCoZSN;4(QB?apWkU`K4c*ne~3?l{)igP((xm%g;O)|>!PYI z&>E_Q-I+d9aPlW&Z7rX>R-4KqnvEJ)(>GTbMr zJ&D%e#3Rw(KhGuHY6ub#m_(>0fDPZu1he15I4RPrk1;AE1bm5m^OYz=R;HE0Z_ZQ4 z2VjM0tTngVJ(h=NDzE+qlSiQZ9llabb-s6X9eYz4N^a<%iCBACFG9-G7$?_{90lY% ztzek7V89Zgj(bUS4Sfq4;o5MTKer;NGql8900a3C`a$4%r`{N{leos1?QZu047Y+^ zI15q9G*-0xIoB0E)nVw@%s>e-jo zsKVA2?zvt^Cu<~_Z*aids%B!6D?HnR!S2E{iylB;HNzB(msEH98DACYh-X>2i|<}U z&n|&F&2fOIA#XJml_}D|%(_D9qT6+aJHUMM3Ck2PCZfw7S)nYeQ}$s7WGJR8%QFEi zx1tC)KN~~MyU#3O9drIlxrSlpYB*W6Z7=FOQ;)LS%&;ArMeKZT}033o{CpxEN(`)CGX4f zrKY5HdK^9K9ib%;=X??FGicLu+2H9w;1z7MNtR7js7-)Q3&7BnvbOE{1_rfFJikbp zGt8GH7IV=sJFJf}AyU`9yQE^d*p}vbUST@eT+|gTK_&P;`b#y>-_R>gtjYMS;2HU= z$=-x_y|Tx8kxlC1d%s7}XQ8P&m$owtZPdVM6iIkO{r}GevO)ySi*=5og|aEezVj;6 z7K>#10vsgWI4^4}39tUdBLhp>r$@WhPN3+nPjDL++;0lq85d>;0&`gd5?=-+=Mj}k zO5~Ahl&7}iHj)|V+Wg@95&g2lm8lDOf@DC3@#pH&XFaTiBxxEJsM_#}a;5m)vXf3k zY()xCdX5BEooZj!X>0*$mR;QTO71Rcuf0t7IA*xMazQLJ?&EF3)Ixt+ot^$=%8Xk` z`uJgT*I;j~u|l#Lfs@X{Oxrubj~A|L9z8TxF=GfDBPn-h)@d8F-0w5?C4TEtN3d=j znjaCHgD@NEz9|vJD!YKR2yW)I@y|aE*T(mTe|CBl!=tyqTpnkmr)sRvx4)T--qS~; zO+9&F<^%nE0VwN`Kg~?vaUef^)X?~pcQFCaI>V_%IA}6k$}0IhwpkrzezZ*YImL_s zizfyp-djXrvZsdw7;rOaYFt?hSn9?THKJJgud&?1!iSs~5a49OR_r2=EkrYEBGuJ~ zYBEO$;`oa)rtJs&23T3KcQilU=MneS?@P=v$9~J3mynO9Cp~Xxu2y0o7kdvj(f}N} zOvp96Pp-*g=*8BM`P6sJt@ON%e&~`00$j0M(olLFF2Pc0@ zWfH-X?Ydcc=Rj{!zM78$9B*c@`XIN<0m7wD${&~0Z@DPjH;cc zQq2X}w~W_Ni5;-YCi8n~CU9mVBz9>=9Jv1%1r&7qC(!jECuHk_&?HR{?1q0no~OiBz- z86C*##>lNp%`0*oTEHtJ*={-D~+vE|HSZU1kI>WC;D>b%Wy2yHe|CuV|zY_xjpS^;Y z`b;Y(ni5V|RgTwyb|pdZ(gIN_GDu-CaWBi_Fxu3B0HyweKewUL>mvQC=c$-Hk`vTC zO?*7*MCLoSfOyz?l{Gd7zWjIcrlS&XS!qD!6Xd5>aD4E-^jZk4KixG zHnuj+*%0@b-RnZDTeb*5Wx}Dr`h~wDB)ULGKRBG%t>C8v#iA1Y^H$CEsUZC@kK7$@ z{NEYmF}Qfh#BM)ExX{RT?!&DWv>8?BqF*G3fR2RfKE`K>qGCV*o5mUXu z`yD>1Jm*ie+EpIo=T;gjiL5__mHgRC8ZG0A37^v`MS>Xzi~WXDKUg|(na8X+oc-A^ zI{$7y9zuvo_sUAq`x8UO4}O&w^Ee>67lE~u=gC{`b;2cU2J3#iwuCNvE^)o!<=9_& z^~O~91>2F;Aj7u;w(eyqBmLSR3;Lr6`Q)uD4oVGUfxh=LV47ZUJoFHC=nii8+;Y3= z4tZT7D(BZ-a=#nBi{d7`z`^>WvTaIFizi<(f-cQXVdwy$vt~7L zyUPT7#&Y0QSC5&CJi3vkql&0rYYExg=HLsGrR^+i?CkA)Qns9kH*jU=GRt#^7UzHV)mkb-=4&b4{(A- zavnI&4`JbFwLA2_r^C_Kei(5?EBx`t2=19Pqh0mqZQ;jy@c8h^b`uH z+Z4{de*d4vKsMYg{`Pzr)VOT>eun=bVVP@uZb~pEA(b0ll~G`Bu91Y6OTJgJP?%%x zuD01zR`Fev+D(A)iWMB3x;TR825oqh=$WFak^Y=jcF}KPil8GnFOuovq)Mg+#M9$p z(nxF|-rn0Ccb{*vN+t~a7z+BPeb+LYC!&e~yz%LYm?I+O70T0|^uVB6BO_E;$bo+! zG$6JfxT`xJUH7t@a(Y}eW-4_cp)ML@1ozDI{Yh4PO?+RdlX2eSTt_4VIh>beLzz}@ zd~9S-`AFuOZ|-b*p;P{jD5#*}!)_-O3n-~LoIbgXn&W@I^MFQd)6^3||4)NU`#Wg% z__Fq{-mPAwG+M*6yaCw|!bC##RVk8vt58G?zI-!2*#1kH9La7{cu37#jOl=tB4fla z{SMNt_k?Q8%qn>wPc#)tP!A+_>Mf>Yz+;}$9S(zkMkkwgo`(-gtbg>fdi_a#7&d_u zhBoymc*B6u>BytThJ0c@2w1o`M~ggmAtjnpoTo&A(KkB1@1|49$d(*D@FsxtBcwcU zT;5O83zxyy%GfR7X5=e9};egwm>tK&FNBums_ zo8``H)~?eFH+yFtqB+SMcSqgH%$fD|D6eYyQv>q+xo=)vJ)58(j@}n)YqwR+>P=2( z757P=$Xn+XI&!wN)2vO3kZDQPjXOBaenoKB=0oQID8N^-nAro z>T2s)>6UMaW{Tn=T!Q_?%5D2AxwR0E1*+9I>?S~GtDEn%4;*ya3kU637`2BDPqm1C z0uB1^NrDU76g_q@?5qC>%$>R-24pn}5@$1Vg8z907)CIw4AK^+MN6jvBx;KPyy`N0UTWXbV?zLGcP ze)r=-4-e@tk3u_^7ER{cgtQ>M$!`HQA>jl z01)QZP?Ah3b*J^-4O;>sKCbJ}JvJ;n!Qk@Fozcq%8?8$s&R!fIA(MoWL+ks|p>TQ0 zvJJhESGHQs*92}S$B7^b3mK+x+x?7+#&TSD2v%%6eU!&$L%r?JLd{*wa%y;YrP2cp`u{aG5`k<(ILCaD!I|^iY-oQ+k!l1r zFi2dM&%>AdZP2SJE-;FbyJGpAoq&Y8CIdhxG zh`qYKRuN2$;5hw7Y{sE&vuwNAXj4Afk{deBTh3J{YqB0&1#aA2=Z>>8NdL97adeld zQ+cIhGi!QmqV@A)P1*KGBFA*(0#efcyTw~p7sf5<(!?6Q3KGqm?)_Ce?KB<-;EW3M ze6#We?wVH_hh|^PXr{w~GJUO6Q}_3p9>ZmcQM&WKJb9eLIbB;4pp?VMaGY``Z}+J_ zW{--pVxx$4jr7(j)5?0eP%OfUi=6@Ue12v>C^$Z6Oxt?Y)!7f%m22o|+si}#zF$-8 z97v+?y-@Jzc6$W$b^G*4po49#zdiiQcknmplQM>45Ix~LCZ9d7`wP7)hC3uL%o#c_ z#@$g1%zLfAohTd1OF8pw^g|p6o=m=B>#cfr?xhhXYEn`A#B0lqr8K1x_uG`(cPBHA z@yURV#GI}Ai3^Ga4Th1>cQ-1VJNFobG&Cw+0vX!Ass>7@4j;mqP4&D!z^I`y77(qM zV1-qbHh7Lu`w^7>*>?&mR8AUFe{Vwo zH`18;IQpG5YD^Ku^9)v>bxu@nWfo}w7d2X^?lBz58PSaexK@A~GEAbi^>_=R&VnWv zO6_sHj>ilq&NRE;cNvOYcg7Rv?=x+EvTF)0aafBHz_weDo&kS{43>8uf3UU4`x|X2 zq)-oPheGP(Kyt_T%kTcC@h^u#ZwrAT8oNHTknPL+^&g)Jp+ z&8EIcYO7$NH>Dibb5pWu`{8r~Hg~@{-?-mfw$VLGgz&o0p?eei`N)PXvE0mGti2B0 z@{+=;VYtzB*R-vFwX+o0s9nOe$80MET)ZYz838|K;2$Ghgz|5M&|72MDwdq>iuTr* z)hgd!rhEx`n_O*ahk9;H!CslMZ5a#ZzN|k=oDkEo8508ILVbwz?xP;l=|{WRF?wHK|sx6e(Nzk{UIM>pQ47E z_Pg6PTg?S%)f#P>pRMu;bcsu6jF)oR=fZQ6!hcjL#EpXG6I#vFuEQTZveh%%*gbjW zzgOQT=kQaeOVy*Wv8n>#&TwRziJOAu9GkhnSI6ijo0>-Bv%ZFY&N15Wy}5xjNWgxUB|R7XGqh116tqK_DI%?iYTst3 zypMUQiI7#-Tg^<1&9qQ%WQ%6GM7iMtQ)XtRPC2EyF-mFfDJm{3Pgz=-T3Kpt zRGMa{h`S>2lna?6uHbHpf{IFtfPlb@);#k(@9+EmKHq=zbKkfAai7<59_Mi`*L5pe z;s@!FXlPRSi4R}{ZquL4(b zqh6jfij@BF8XckT1H1NV5#-~x?^svRqQ)1_UAI<6^k1=k-7nHd6Y4ie=mpAWNRxG2 z?NkDU81r0VvSC@F)1w55(o`ESW^Y3bt9t*4%afkxEagnPxt_XDLTwy&@VQxn=aH@h~^$^O+tN~;~)gynGQ4)X4cIvgQt#f-QS&36`?C&PGZRuV?J#6g( zK}5~u#B0CCg_K|77N(G*y+3WEn}Tof)gCdUujqxk(uSIxnLt7Df**M(gpTBD4EKN{ zzfl`3JmdpUzo+P`v8LJn)WTu)FaI{SJvGsBG_6!|jvfwvQtFE)bNsVguF6_5=kfc` zfDZxGWOo{H!Yt>jF;l-4d1wwT-$-`?Zj#`^HebW9q4G5o*SVxi8L5;YSyMtqkS}+> z1mI2u-BA%)fqa_#^IgXuCsVzi-_ zNVD0O+ytvloDTW0_`1%(bZ9`@w`>;e2U-dZz#4uo_BO5G^n#64S4ncw=%_IPfJP<8 zJZo+uZVVPxp^}<7_-s)|FaXki2!CADyKyjaNEsLx`%Aq3#1H~vZ<`&I9ajvDgi zU2*dV##_uUy_l^-U{c`G*BY;c&RYFq`$B;bDwjK? zx(f?Pe~wjAzH9|%oi)}0GL4;3Qp#F<`t7S}um-1TTKq5;t?h$bXjXO-;JE+mL*TWqagC`V+fv4j4Ze3N|=BYR4(g z!7rwVPU-%F)SJrNnTcU+veo^~DI>g#hA}cJ9$`vQ#~mrqqC z_pu**>bY~U{wU4&K^x~^c*B8;!A<0w9wW{Mu+)gH9+-1U0dgNhv!uHtKVSe7+ivBX zR_HIol%nODQiKIO$EI&x#f)t-tBzY`jeKgiMRN+{nB#$nhJXY+{DT$aT)p=|( zORfTSb6>VGiBeG9hS{Z!@4FiLQwFjqO>CsGZ*huBZd;LKg|S|+U+$RlDN=LK5e0!iT=oR{>V>KSwc`>V3hy1ZGOnUmQ%dA=uUOCr3 z*9rU%g0$_((IdzgIVlUu{u(U`FFAjVbf z_^Qh(tYf0NGnFUc3KAJm4;_csaL4kqX@l+=(1C(Bq~HkqnnvvN$*?Q_fXw?$s)e>0?Gu^i`9?>dXcvt zq}R9T22oeS=dDwn6N3oZMSVqYbrS0kzjA9nkaCx5r%xKxeTcrCWkEwYr3@ZtWElVp zXSw@?2~3v(&y`jG(LV~`Jn}Lbb$Xqhnys@v1l3y_hOM+s0sH5J0{6fXc{xrQhK>7@uA~V>k$|Bihf=Iw86;zJ zy6a{G1{pd(q}d`3biC%g&kT93n%|B#*GL_Miz>?1o8O;`opo&Q8_j{aYBIHwr_8fA z9o8kpBe<9D&gT=v>IQH!08?VKY}WrsOH!D!t=C2Q(a+S(gzF&}WL2APdTu)naI1ek zle(!f>`?T1lXT@tVE~+AP~YC_xwbz6Jx>BS6md@M>5pI!=uomiU=>j=FA8AuZQYoR zpN4kff)hM{ck?H$I7tF81o>NCc1?uOP*={KHwRACOFElcmnPt@X{*_9`L{?@FDKC? zS8XXs5wlnhGoMYLGAg}n{5#y>+X%q}z~eV5{m`Pww7gkqOqFW7t;acTHc)DIcJ+tc zO0YKU!KIJ39eb4a-S=;MuZM!ajQ@XKD7hSmWBQL+}BU zw|>f@!+i>v7Lh&evLMes6{cHdQ zb7Yd%(*(5KVzG}Nh}Ey#5R^2D=+8*>3Z6f1{H))chn&wF#&S?IR0r0aK3)(tQ-OBQ zDI&w4|b%_aNaOLA`>DuO{3cz_-fZyI4fO5&{Y1JX-GlA4&4E z#tl^r%2NoVzL%L2o+}p2lo)DWliokb9RE`3Fsd?-;h~iz3RC*LDB-VYL|=)MZ>pKb zilGV#9&J;PKSFJV2evmK%}t&On95u(3rf6Ak3yZ_+CK~$a=};KW&H_I@r|u>FVs;# zT@mdX5AI6Fh+HPkc1i1lgefJka)#(ZLjE<_t~gSS8-2mJ>p0iH@GT&-e=!So zDkf}XE-{mpy&@{!-7vfgNqVw$j8RKnX^Qha)O#;jBXK_JdJI9h*w1Jdy^|lRuwqef zTjmH0#e)M!^iQg7psZRF_rB2#TmT6wYO|9|RH*qtPDtOsimVDLR7^XsYNUzYtVnEeNR{^h|6!wh-Ch>D`ilx3PPW3KjyNC$y6TQ&JLce$UJ z`@Ah~+(ok68Y*E6{djI?OR%UK`U1wbUnC-7Xdg_IN$ zHvH#lpVg|2hPa8u5JGjShI_6w8|dwE|DG!@qp@L3460Z_Ss_LO^j@Wmtd?JXcH|=B zseku!G7k{SXWA#7$}BAh*}Ll&&cbO|oO`PG6!W@wN0OD_%el1KUL}^&_P$gzby#VY zHNC5YQ(6YeQlbyAJT|#grqfCJQ9>supTYpAzJ?eWBK}K(;-atezT$YdqD=aZCmS*e z&P(mK$c?}{J9~zdzwWUpHVy9b$R09Ub@VyW);{0`Jh=pjLr{e+RGZ6}lRMW=Xs770F^hNgzjJG$iEZA_I1fomJUv4>J{aAWqr~6QGPD z?r72F7cQIRSOPw$&aLt(45`A;UeIdbkQ>bjqaVtM~t=TV$K(Nb>vlAO@z4^wihXP zo5MTk^>V+ZCP)51?o%etPb7-3CzlW*Z4tjP6YQ-X8w3W1h0Mq9gNj4_W3{OMrqHoj!^6{4nqho=t(HH;JmyOJr8FWWFLbp`tute#597ki!7yGV1abb?B=hZa}E&zIh$LUTU3 z5DWJSCCeu~D=eeSLuQ}OFAG{p4^ucXJFo%OZewT%ciG%esmBa1=}~)2SZKf8j56i9 zmq~?sphf3QO%dc{_876(Ix7O{)oulof<>OP9|&Q94A}t#N-ordn~*g&d6;{kk2!Rt zrJe4zF1XhWVL)FG-L?9E;f(TCs`qSN1K+wnS@UqkKBXc-FJom9d#XV$cE%Ajw=J_y z-_0Z|v^@^!;k6zTwm-_hl{Ax#AWO3;{`22I3p+p?jIkWKV93oE1X!ue1Y;|S4zTfR zLA;q^itbh1+3t!l0~0rCr}mp2TH9ha-e!>&x+H>mr`FK77~`j?_D z8Hi7CA)vQ>q{NMV#Ur(9gxq?i)S<%zL0FP61F$>_9ii$LdrI5Nbf$RN0W$FiuB7s~|PFL-5tjQu(`It47+nsgK!D zB2pb`!{Ngl+4CIb`7=(*BILk9pW!4LgbKJ;$k(+U%{9CZPGd$mK3Op?5Sl(l)bmd5 z^<8=@)3o7}UPqr3qDK8o{2?eS6bWhEJ>#?!oV>bxtHwk1sI)whkglV<9Q84$X+^mM z8h(S{8^_MzgE_k7n7zRC@T%9w?S!TXlNs-0xP;7_$J1e`Ct0EUx#Cr1(`bm)h|aHS zHEAHDXeK!$=&tO?3?#`3by#*|xBupq;h>vu4 z7*@Q1A%fKt7yakJ9Z{B&HztuCwm?OTxN-)i2On{+k}b+n%8)q7gKu?OXv_Xp)UIlf zGBuMu8JkqmhL&3o?_$RM@g0$zD|u$0QsTIMHRM5SU3K!*=k}Or)LUCCHs6BgA)vI= z-_Ha*4A7mo-eIqpz1gc%XAm8}K(`Fu??Gq7!DA z9t|4%@G&`PZrFP|g`Sktk<>hpZ_$zUWHBmuXLDv?Izrx>7`9r!=#|`XdUdeDKrf{_g>Q1iWheNMP$e8bW7IGQKBU z?!=1tk(n{|_0F(@#nbvB_p8~|$=s95#>6aVSiE5k9bc*foYi^GONAJ9&Noqi(KF}ut5uJ zTSuTtn5Aa-VRNBNOB1e2W8gt!?T(z|Tm60EyaLU`+wrB!*4j&B1(#c8|w0a0XQSk&}-4=`W~`QY}Uq+x-@- zzLXuf2h}qSOgHApotOmv3zNveXHsqD>C8t0H|hs=*BuSi2*jn$?E8h!;yd#X{cYs` z5F`InmP&C^3J|Dd1lDzj>*1p-A|ku7_=eG&qqk2DGBbT!+PCwN)WWmf&hG`&+GJQv zO(IXikd^1)-u6$685KeUq0dCfmEyU377Mt+s8%!4nR9AaOl>KnWY644;w;Z+`+Zd* z62Vdn2>nF^2zPW0417QQE3!Th){<`)Q6j@!hb5JPuuYx;pI(*^3mvWV3!Ub;VlD_; zvae|CJaZC(?v0la?IIp&r`caQ(%dc9>t=?r$_WTLM~i(QWDrsF(U1dU5_oP z>4Ci4-|RrV#Ul*|EEc8A=JE4-eR`U!HM2a`lM`2NJGPf7Kf-NIH0Z!su)z?!?q+=_ zeK&*1#O3^L5~zi;8>#U5K?!D=rX)leJ+NDq9qpU)EI|(R|90+m!=kfgYjv59(FgK` ztndnCs=OwvsE^&gh$!XkuhL?3`kd-!*qkN-E92fju!nJcW-lFPuo>+v9M#M@^YY>2 ztmzub(VGTN6o)ef(>aul=TY( zCPgpX^u;-(e@d!G40k zI(82Afd8J;DtpBG#4X))I!NDiyd(Crp#PxpP$ixeP%$qkUYaQ$NT@F*esF1=?w<Zq4HDYr-)EV0E&UD`~j)L!E3>m>U~L`txGM;NZ4liH9rc&Kf2#L&b&p4CIR zc<2Y$1pE1)&{fU*?gpnnHa<1f$LZZqt=<(qe+}u$&5ez%C?ZYpH92?O<6T`x&fQM~ z(e1dGaJQ5N0;QSP%6(XkwI5tl<-)8%QSrpXsbD`+Lk`8?W3`;WnBwTT^xV@aUDpCb#%8H~Hf|PS4k)(d9C1GqOclEQtYf!6@OdVZO*Dh!dQhfH^j z*8*#_x=deecO1W5DZk)H3ee!W8#ca_P}6K)8ZN46hnSwbV9QF~xcKO1V<@OJ%^NpF z^KOr{tZzB2QSn9;@EZ*hdN}jRNc)ogymM1Na z?a2u;0m1y;=o)b<#gi$JU!IdE2VX;pIi(Rsl-_vZeR^Y($2*g>fE;95A#iIo<4|Fl z@bpB3eXElw)}t~K|r{g12pRM-jOY12Ju1LijxNlpapL^HSB3j*@jk@AW9QX z18$imWM%DLF8dAaDgQ0J;YNSfOo_qjSa`C6oBf6YoNUN@tprt2a9cPiC#-l<~*bWbqL z^jp<~G?QE#{qd~{?aRLbtZ~k;9+T=4tKW90;JoLK2}baQr$uAUD#etxygy<`aS(YB zE98FjQ0Bejx9NMlQ-VeoyD3FuXB9iFhR-}pRrYU6=w6;R{&0xgZs8o+@fB3!5`(q* z3*pkW%57WBp1+Bqi$Xv0pXgt=nSxWSm{P1{DVn)MugJ$^cV9kdynA6+0)3@>CRG;d zZB+_gJi^)tUYLk&tI0|{DmMyDpBb6SV!h@}M3LZ{$%dl5QDz!zFd67PP8Mm+CCt|@ ze9VnB8=U|AdF+JR`AX{P5l?+nFBxf|+_6jNR5)!q1)_DsT|1^Rnlo@q@N>_$9C2ppu^rPv?2 zgVIVzkY^6@60OO-dH8mnxoyxD&08wqQrgkd%c_mtOKL!GJIHh_CkVA$jUAGn4qxPF z%pM@bg8-mHA4HJ=s4t8Pye77s-TwV}e|7I%_iAP40Yy#Q!vlK`iflVBRF@FO^2v82 z-axL)l4snPt?xutHgHxoR3zV@|A3nd^2GRxO`3D~q>C1VI+=J7gJ0WgsTY{baAEc0 zvi^_`CsM7=bG`fUO~t=Wa2eL<#~X~Obt&!6OkP)E?P<+oez^XXK2?_xkK0vo|Ee@i zDTqSr!7Cw8S94{5Y~+%(dNIH7)e)q-(WI^ni=ix+^ll4P?0shh3b7qtRV%ZQr6vsm z2R8hFmi2#s{CYPA~<{UI|H~#BV-~p=x$Uoggq8msB`dgar16P+2SFw z6SMsG5O}^VPi}lY;QOj7k2~~jamK%2*Yjvxt-Hss9!jDm0dB5bT5Q1XCw89kYG8l* z9Z@!t`x2eh6ZR{sGb%h#*mK{#!{*U-49!vY9n)LNZi_6o>8RVn4QAEHczq1WNC`WJ zyWH0K{rIidgdpb_Q!K!y5ZjO1qxeuU*d`_nYYH!XFo7_P8T;}r2f7xIv=Je05AW2M z)whsc&OQK%>>3`vUU~V?(`_{jdYHOouW(6M7{8zgC&ABqJ&-SfUq{|bx&i8mE}l%3 zqzAdROWO86ApYb$9aP&6JV>oCbD!K4NiKV)aZg!aKG?FS`PYEoW9Z7QIlfho230Of zT@hF1lky+Qw~vTJ>yD7fAJHC5nhc7a)j`QQxapuN&&i{Nj##DkV_mI@+eUg_2W$eL zV)vAs#RfUMwb{vEd5OvQ>U(p?X2~;HTjXKQO_A9ZQC*;~_8Qp=1UyKPKkobomx_&Zg+Or9(xA@w_0$OWae$=`C^5Kl1Zon7SL$)q{`vN%;LB?p~ zjD;&Z5=UuF9mmKx30!6SbaTk7EjdlWVo%pCffiFH5U*|g+VbMi2X+0aJ7E3Q8)`N^ z@^p`1Idv~T@lFnrFwD*#LIuTm^q_tpiW~U2SXt%h`0%=hUV@kV%G95%iw^oUKl|%y61yqpYS5w!59q`j$zP-@8^$ihTpL^N^XN*;Ce(neUaZq=sf-CDs9yn|d&Tc6gyl0#kQJ&4+?p$0Vc9mRGDbh~GRwp+<>39Vj zjk$T5GWXMw|8+>a)2q0#);i3}%rDuwZ!)$M2`NO{7qW!G*JHK9QJ~5sjcyB)MIZ(O z=|u*OnYju3I5!pw8qQdHZd)202#&@^#OPLw4yGL8i6Y@k!@`lNK8FZl0oX_RhgpnV zjdQ$z(4}qwDed<$Y)I(}GNF)wfz3OP8hU!JdLROMo5mQflLuR9ehoLcX$|3^vO{W(TgOtbSX`gZ{Ifm7+rUnUV0=jC65Acd~KMvQA6G+PDq zJDG~Jax@ler{ie>Z?xHw1jT3#?oHIf-nTHQhNZwhXb1A*H>rU%VALO^UZlhln2u)K z7EfjpoE>=B`q$>`HXk5WTtR5>PGrYr2=*5Su@q9bI&BWPs6Sh4;>@Xrd*)NaI@zxz z7dS?QaPY5gRO$>W(%p>MEe^BVlZDV^4>zqkRC_p{M|jK&2~?hLRGl3nVdGP!Cb>zVu=U7JS6|E%0)k`oK+Nkj+3Q$))CnKYW|8+grQ z^Gv#{B`@O9Gj{NVQ^f`e53x2lyfz4+`z1#Ot_=W8QzXgCnUrA@NeKPRD5SEb$p6}P zQ05d0sFf@si$swD3LW}>vjP~D-H45T(zdsg8(q^v<+{J@fLU%Ir9R#$F!XrX z(pdB$62r-UTAQUlSy!A2-BstHfEjT(wVgWPc)g6_Z6N%-D>L#!H|0QK%lcUImP_*WFBP*P}|tL6Y%TYG4$_}}v>Jlo>{8GY&>GG%TB zqkhSJvBClAV2brxaz$UcD<=~EO8BMyD2D<>7o}Z2Jv#+xGNw0-J{khGIaFX|n!Fi0>H#nkRGs4h+= zAD2GIu2?kd&S;DPSmwi4Or%e-ieTmAQrVNlrHyszt@7#?6ZMTp(%cK(r}zIut0OKs z(SGNcXD-T4-rDT<2P|ysGU6J?+ViB=!6_5Yn@O#v2(!5f;5SIf3~{b6#nsdYo z0k`W=-6L1)3Os(hV|AF-WdIk%FlX)+oGeR4gJMk#*dF}adKVXWa6*ES<5_gE3bQrA z9a}u$e}>QMQ3V@D$ojK3CW&?|?O^l>s#=5#!Z;(AKhBmyDzSbOEu_nTVbswTs=ANQ1QmB+hXqw{CWgw7i3|5pKXVg_3)8RyAl zFA#~necT0Fq9h|Z4eAk&u68`DKa83|5eoNZTF%(`94|t?b@V7+F(ecaLUJ6_TSqTp zK3)YaTMaiIuO)vzAoCz1r+rB~Eb1|{n}BfsAKR4Hx+VX2=Fm3hvdpXbE00(&CX9(a zCw}k5uGJsDwo#U0t1ElB*r>(0G4VCu9^>mq`MiITH*Y9C*_qz)joO%T1vo*u}LC=y!^LW)*m{;|0+f(_Hm)ZbFz7C;|7oKb$TqwhK8%(b6g-HLRpWh z>+lL@9<{LK?X=*M@N+)A5H$KGCBUNq+;w5+?`FUbI}CHhMlo!=Jbo;t?lTox?Xyf6 zyw5#z1r~t-9}k%=#-L+Be-IZ(X6%TBt$-foh+ODs>%dNclZOSThhi-|%vpMwNPGrd zZE%QofY`cqIkeWen^8&=fv-aJZH-$pt#uLJ9p%7@jw+0xYEkx>8}rmZHDDoDXNWXA zYK)Brp@Z|-HN5odf`e28$fIYFCGdIlglrLXb~dEKc}c&5iohUvz4EcT!76T)thWwu zFwHMyPIX=!g|JLosHa1CN(*J_D{YpQt)y1N1$8CXx`6*-!!LxZZ1Juax0L2n&@U+# zeRxrukvv1zgdfo?d!gS}IukIY;XE!3JzjXg@BnuTT}Ej5$z0e-Jg}w0;?V=5PriTGE`WV+vf4$Ae%R=YH#IH zk{M<6xvd%|p&sez>l*3+FAMnS@PUD>#4Z!}WHqUQW1T`zr9Ov04oAwDO?(ju1Eh!k z+IEB!3R2Mec*U33UK1u2ASI@N@UQXcgwhkGi%QKx!5>#XoL2b0QFyHaD5Ac8Bhwe1 zL!B-Q6+65vW}{_#o358R*L~~UoqZ%J>iDF%YjIg1T0Q*FQmAa@h*VYlKt`T+HoTQ% z@pudtbg!GxOmR1|Kjng)o;b55o5_V6Z?`6&(?nP1rv#4;RP5$6ixX3f8J3h4Mtk3i zAuIKumcgEd<_P2J;vMzPM|oVMghhAMx1Yj&<|;7+z^Y9_o1N!=&O5;^Z03u00{#5ksjyhs)u-m4b~{YxEF4%4Pms=mw(Om!bY@S6UKC zk`Mt>%WE+7mief+53}2DhClIfkf&ju_<6u{c^`t5XEO(uwp49BUiVaQ+QL5AXyM&b zX;rNL9OaO40EeNT%eCjF;NTX=Gh2WD9i6P@-1sSo30YUXHQ;rPvJR#!{xmE`Z5mpV zB7a4Hdh^R*j@3Fr8G@BIgLPt|6su&p6kHuA&(T=s$=onfih?K-7Lz_;p2*%EGvo?v z%<48n6Hbh2kUTwZvn@AE(U6+Qf>~`;OOO>(M}3SZ8ei3Yps}GUf^+NvENQ#}6CC$k zrO~z8N7~#s+Hr4wqgv#`zPD8m0`7>-ZAE>Qh@THjY7dh~FG#(PoZ8l+M@y4vFh{Z| z{vo8~fYG|)OcMIDT`y(Z7zQ}+lO@R`jMnuMMUvy2Rf{E2z7cw?AX!^pb8#p>!mpJ( zV&`e&215FuWA=ia<2o+6WflUQ`#ddo&9}sy0#@kPxj##C!9A>qczdFwu1bW-UeOWO z-s}Lo&KuRZQUO|IbjMVmOV}=%>MP8KvCCc6&D&=y#&`#%8PZc!UR8Bbp*K(+KF9UC zON*wrxSlsJSnlf%^iktZ_(Cw7hmfZX(+HSBsKvbip3_KmbM;hkl?iNOxZjy!E$vq! zq#GWjzNC5si#(FJlm4hjExr~O_c#U@u>mEFB4miWL-?q9^N!WwAKbDYGC5vYgl;J5 z^^vMV^8Mj0nM1~c{=)iF<|UQ7mJ7#0r}2Fx#&DSCY{c&t7ZSbUFUfxeYvV#FDlK%*MWQ3S-X3jy9fx| z_|&cEC;ue{Y~)WhCw?M68#zUJk5Mn=H)hy>2IutD8k5670~+mQ+3-&+T=Df=8@Wab z$&SqHJr7`b7Am0sQ(SWqqR%%er2lq-#$!Y3391{U5i~-N?pC*fTIV9I32JCY3!YmV zM+1!G2I*CsQuVFZH|TDy`w44h=8aG43R-PsPHAvnh;Z>>TtqS8^W z1**V}8c2>q?a_tEw2)%!e(VcC8Rx~I*NFX_gg)KgE6hs%U>qHeL5xjib36}6{2V%& z8@0G5cj}Cjl-?e2vu|SW`MpRw{*zfdz^TI>DWzcc)Br%*6>&JpGn3it55f9<^ao8tZw5`Ql=?2Jr>F8{1pc|}B4v-smawH5`A z0U5%8A$f`olquW$TU~(ffeyELv29iewVTPt5%Cws1SY9DSNA0$;7f#~(+eYv%Y+=% z2l+0b=l8&c0^=UDBtp|TqqlBXN^pR>S7~WFU5wAo(%_w2(w979l%smH#WINLX;GhW zl-ZEn{A@LqxX7JtOkAl#so`2$qL$A6;(p%myk~`a#YJ|;5o8XQ-oxF9!W?KmJOJYa zKzPx)Y&s?htF1zln<-T9XS=lpl-dZP)TkOpr}Xo1vy;S(NpuS+T`-Xcn~ri!#ZR(c z_V%W1*CqK1V&pFeX_4-m8DrfX+$Ozk^6T~1UY4D&~xwHD-u4%>Ea2&zwa})xyQZIPj+MS z0S_{lKaMzjssOZRXH}kVJ;4bHWK8;W;EW#`eTyBPlGn8fMhx2T;Yq(Y_ce*Fin82n zCsA865#;ItWQ}JkYlknqCQD}|Q)bSY2#L`-*vlCRtX+Mo8X<0l2q=F_s_3%vSvNXP zBz|bHVW!eFomznL$hqcVfv}nu#ZtZ?S-y`Xqi7#7^yOyx}eqa8vb0K-9Ms794cXIxacT9AStO4Vmm43r#_3ho+IdcPcY>^5AYgF~H zKg&FNw8jroSm$^IN8^*8)Y&fme@^Pu%fB+7E+*QMu%eic{BrKSjiHJ7mv zz?U~4ldR$4x#Bp8)X;(PgswIB6jR|`Na zOB)~ogvbC3VW6lztQ!2$ZmdTm=zd8F0;!A7s*DeYw$)XKavvWjAWRqgM{GV{1JDOz zOy|W*`_pi~jiDc^+N0Y8M$T26&ba5|_`#5PfgV!_9U|*s+btcJ5DoZks)cz;0yJN5 zs7)eV-hd0~f$;-<s@S%^Je|hm-a#&Tk*aI z$`69S;vJmvsu+3-rgw{D!HkD(9v?4h@ZVmyDCPG~{rGPv{{OL^a`mvk2%whAlS72B zq+zgS==`(7aohsb?KZKgunoj>Jj0s899rm^`n^RzE$$xdWr3;-cLj z9Nd!Yf!M=X4bP^L8aers9|yR6OPr$2YIIK)osFrZc-`XQl?L-^ z!-VqFclmyAusHfCwVUq{8|3L;Vv%E-shp>R6@*q6zfhpI{=28YmVTZ)GYyqqVa%h} zR2^z{eFg&`@E_CclzVD2Qw+*eDT5Oz(s+%{6C^CfUMMMj2WBB6N$cGLNVcDT;c|?!Eza%vLkBJAQc1z%(sndsMmLY9>Cr zQ5`vk9DqoawxJ|4rFZ37yOnd-YX?(czK*}fDwI^YHq`$0xPdOk_sdWgKoTmU$XB;>Rq|=z19^_tC!+t@o1`! z?uScOoVhnSAa%Ucgm~6j6ZbRZ?Vwq{o>pV0XG43i!zpt>qAD{Md^ zxoGMh9@ndRNIMl+m+Uo{+G`CVvn7*!kn=-#n5}TUh?mpb1~M2c22u9~!TQWCf+Tl7 zf)kM8w{>EHuFf>sA=6L_-z=yPv3lOQ1I&8Bfa+>=m+;sXgF>es$X6_sW+vo=F zi{7$_R?vaIq3CXbL`(GE{xbhjU{|ejOW%T=LKTn(-!TMHj}tfQ@Xv`3uIwFO6>7U| z;*Q;>&-ZDy>|lpP$Tlw4ez4Qbj%3lwc2{eC=XgM~2j?T#J)qZL1+R}Rdw~ce)MRm3 zNjZ-9ko>CvS)Xj97mUeRsRp;$m&uFpWD`DH7bO=vw+1YX( zvuyV)ON*Ri!PajApQZq_U(z4@zpmD!i%E;sqfh%B=L0Owg%vm6mMQ`}KPRSS@LR(Yv_Y0@1s|qF&ThgWr|5%pd}d9Y{rsw?U4<-dlm!fiAe9Q}b?~ zRc9FI)LN}_f`Sc&1>X%h3PUc=*Q80!sH+v2v!MlY=Bk@Mut^oYi#^>uzE7QKm*W#% z7L%_UkLK$1jAA~d-+5EKJ2ttvG`1!?eGWgXH}&)XnynX?p(qJmA!3I81OM9TCOy{@ z=-HLjgINtEXnw47j63c{*~1Kh{)Bu1R6jjp7#T6{{Hl}A4~PvMK7zl!snfU1p+AiP znff$;#uGp141LKP@89>}Cs1oKzIxLuLbHQw;mWR6Mc@nYPt>+rb1Ea_UKd*%R}KW% z;HIJ=;>9MMwgD{VS@u&zE633~DZaqRYxQLnGY{d3o<9e|LKch^J)e1f&FO=B2f83tin(il48k!ALI&2z&XM*4A8L^O9^Nh>_gU%Kn- zX4!P@{}_`cX6xWOvFU(i*wSrf0qj8V7e7l^_GMIXtK&%4MZ9(w*YoUjA+98TFm-(R zi0HJ1@MER;fO@*~aD(&KDJ%AyJRb*D>5MNuzQt$PXJ5bE12@T!ldq{oyN{+##+JW2 zZk+7c^8=?3<0(HYD!dpjDk7R+IhhTdKsn=r&hwl`g@iky_M4mI+g>E6Y`vO(fU}SK z2lHt;^d0BG0ImA02Ex5{VS;ul1ufuajX9z7^0 zaHlX^tmL7CSbMgv*nyjt@!y#bMMKF&V_&Np%0q`LTGyK5zT7)<4*&0htYSvl|E9

`vWl&o$i^vQ%bbUY2NjW?*(7~8T1BJuE00uwHv+t}2kL*WZmex{ey=g} zDK(c_Wf*5)SDVZojM1qhCl4JP?FY)q_4SqT*|EO9)4gdDMJ8qn{C20}M%eCvXQX74 z<>3sdsaA_=JCl2q83?=0@*=Kic*o55CAqsd{K|$gGx+_Ww-r`RmOr@7@|zhUx6s2lnXB?4gWL#FqR3YBc`7#2b9Zgyx&XhYOr#nv)Yx)v~a!z$jzP zB`bU^p)UriFRlS;ZS}B4ctv;hKZXGSYFw?hl7ah8*%XZyD|_X_zi@D+Uff?~wf)wk zTDiTGTMps{*E9Y|Z>`aocgIUQV-s$3S|Rf!wwE8vx6)J*|4hBA#;V3`EBt_Hd%^2* zytrUco$#3DSnBsl~p-y?w@mi3J!BkNq@1TC0$ZB{Gr*zGk{I9vsLC$vJZ7?qVL8+^lm_)E26MP z-EdO*rh!|k7Gr9OK`cj6OA54(5bu=Lwa~g+hq4!0d-YKlpLr-Jvs@0)k3(;z%ntQE z9mMo)=x+e1)|l9Qp0d&V*EN>|l3mp`N(r0T0xq=`ILbPW^#F`-lm)iCzQgxRL+j8- zTj*+uUL{Erq!%vsSIXZ{5Dm{o=7 zDT+*uklM2;&EG#p{7J&go|Cd90=RS5oU+hAFx+AcjRZBXXu7OEmUb-FCG$K~&|X9A zfaTV(S`T7W>4AW0_7XcL-C*snB1<-D)9cz|gln&Z~|0 zjK0=O6fUh?2fNP z07|cN-1J5LV#EHf5r~XWDJ$!Lxm;m{|GZpJ09~E79V3Yf{?JUohTOLZ8?^BSWWB3y z^woshMUy;#RGxtES6U-wIpP7)@@Th|#(w9I!`?kZh#{{^qs7%j53pQ&aq7|5JB2Bn z2S4y=LE_JtK{EgX$_Nw8Hn%b-E*stoiays}JKa;)V7XA;t}^u&A4FERvLGK*-k;9k z`#2Rp^F*LcvX1l4)xefs^4}9o=_@^NIn@8t-j%;Kb#Ci>k8P>f0b8tCL83*(p-iHJ zLXx&>sRhXqdV~TJB`Put0U;sDzEvw)gtQEXIme<<3Lzjv03lH*iKq}{3J^#N0m2kQ z2$_d{cd$P9+@4?VAJF`?pJ(UElW%?N+iR_Nz3bgy7uKC7UBRbhQJmUV`j~ky(b=34 zD<#gfi8WDoOjW6*J)y+s?OLk6byf zfvf$_I3E2b9D^2+t{rP^n-z4^sdhR2A=H==37H2ug=g>cDefhEe|1h+_iFj98s{;r z+c%sVOxnL_kkORU1Xi&jU+zubPwhvuGMgGg*&#)+cWvWP8wa*`gU-@YXQ?Duf3-)m zUAVas(E>-4GBr&sAZr@+MYUi%j81j*?GiJ>hjh>LQ#|f5aN(1KwdwhoIN@XX-R{|y z{?6rQHa@mXI#y&IAfX*yx;@n&k`abPVPY^pG;*~|L+)aEb91dKjP#gYpoel=v?qMp zK)GSGH)ST|Qt*AP)C(#fshl--NN_JWwnI$#654w7+inYJ%2winz1}f|_ktT|!AJiD zNmG_y;7d@;1M3t-cvIje)xh%f)e#R*4#;>U(aSrQv$;ZDg0o?j zIab%4Y{#$RilUzVRNg(7dRZqqY<~|PBXZY#T>#_cp<8H&5v}l@mU{4Nd~Vo(HIgf3 zp^WQyHEPep;!}6g9Hdpr>2VZOAd8yja!)d?C-Ex-VVbMkf8HYZ?B-<8^Rt)bhs6i0 z;y5Ql5kX70Q&FUZsMwdaTa1Q~^sU)Fz`}A^t2p6TS=;&f?PTGGsPPRLMIN_5_=!jP zRc}#?1zWIQ2^`Xn39z*bxb^aS+0r9-X|6jl)3=cpPZ;5>=Kh^;pB(LARoU!5q*%%w z7FJ^tNq0u{??-{oRYc)TCt)ETjg|1xUmJq7K1&pmV{-%Zn~yw`h_i%EMD^Gr(?#IT z45T7i2admvM|H3)=TW&!cG zpFV2gf_USPe-3^B-VFdx4S*{=z<~S~uAX=5YD?Yy43auGMsCrT^Xq3h=W29Azqb%; zsIbkI6UI4jjHl9jj-bVDnIS5OHDKI;XUI(7-K1p*NjTd?O}B=$)-~F9HPCfO@rb;^l)ou-kI;`ni?SXDV|PPjvHw zxTN|~V~J;t1h(19FNA~dSq$YQb!f~{WUp=tdwWcpBplh;;E;S^o_^AWwnjW28$&e=wT=Z?p|UbA z29P^D2zUu4K-u-grbmS3+-M99RxwH0j%NJWn!I_`t{ z@?(Eb)qc$Gv|-tFr}ZLTSYWGiG<@#HRyMGm4IH`WpIRVyvZo?8ieR()UNkgrI611g zwsiNGx-6v7ym_z6A5GX-u{rHaFV#&}7I7n|)ZzTX7I_{gh`{-o$E^qc|E(WCutS|D zZ2K{7_Xn_B)HE0Sm5J*=o@nwYCZ~H)RJs4yVIS-BSU!+A_Q*3 zR5tv02g`X>?OIFW>}+>eNTb{^79FqDY|0j0TG_sz*l8CQZgzlfh!8`t-OMbvE&KWO zF4(Q_@Jmr{gREFe66mK+hHRC=otMq>s%nk8-etU48FQ zJb1Mb_EG9X>Fd3SpH631*^J~#Gmas-5+E?jvoiZ|dDS#V{WPP(cfB@Q{3c+TkZ=g) z;mV>+iY2ZtMCUpO=;^*eE9F^02Pj?E7BhTSoB=>cB|8wVG` zF;Y#7wT(^nmm0jgnxyWc=3fhK*O;G!Z8C>3&lkFd?6E=UgNDKIB!O9cRg4wz?P4pk zBt|ExVVmtJXNZS}YUA6WH;7@lyh>;m0$hl+f2BBD(1i7DnK0Dj@X&eLrOD$|^_}u# zSRB2ayEuD%2dD$1hZy@WE}Fp#y3Iee43Km_74H#06MyCBgA?e+@gpE}Xl_h5ks^bW z=N69jTQ(pkLxOENQh5*}u$*M+MRkp%)4yFQuiDLR=e9iKrGtfC0DdnlWsZd5N*6U^aGfzj&;-%$B5fq0*Y0|SbGk>&)0V4$ z7OnpG=quSYk;dxOM(gn}z>Z4`7X_QKRaaUdItPUZq2D=HR+Uf-N3RG(28%Qze+w2n zTfU9pimv-i=v|8-BZ8xwhmRR^vi)G`)6|^ft>~Wel(^9X_$!j#cwok-Li_`iAwTuF zDw~~0IG%%kxW7zXf%cC{Um_rskUo+S>Z*!`BZHWZs82hpom%Zg5E;Yb-~3Dxg+j6(`Hfsoppygjv$JX zrD$KPPXdW(q!91W^IFpahSpdPk(|^tmpp0#3QmuT$V}9`weJ8{Z>IS2cw_oORy0P? z-%H#mG)GbiVaYNFw-I}}=tzZ8BgwYiT4jHz*1L9{1lVN8dRp&vk zo!OGva(0;IPh>Xl1aUe5up5{$duA+r#)hUKevJu|Cl%|4C=TcqeUxYcP{dX}S*mPq z&19FmM3f{h1=9zclK7GG+qBEg4a1=uj-=WuDJ5VBm`pgR@L41m72dqsUFDV7-Rrti zxjW#2%}hY1(=vYf>}|JC&&lE9FS(b|{^T6e>!j6?yPdRRA}?f0-b_w3Tyj$7e4zEJ zKl=rVb|nH%%TRoSn9+F@`Rj(V=UPXAgPKBK%0X4+^Ur$=sxKFG9eGRD`(J$IEeQ3e z)B*AcbCG&H_qm~FwqK?bg5@1<(}kZ12|Iqch9sTR6xNzg>pmo_2)xNZxVZm#>XL+?Iv$VNev3(;B0R#K7ci;%D6G5dQ8AlWHZZHRs}7_4%o8HtLnJMf zVY=?W8rg6(!J!a;Q0Prn_2c`*`xSmcwy-*_CGaHZp>=Kp0Zr^5QBpr151`sSvi^$a z*4bz!C3g>=dsu;*d)b-^Lr3P}kMez#QLr+N%HL@#5CXjDKh3fPJcWcHZOD$|X6}2` zxK;GLy-80QwPL?k`f$UcaN=a**}Q43zNtr@B0_tPKoP^ls!{wQp$S$&$fxRwFcgko zbt@j>?5=T3>wDVb6vu7{Q0sifxnAUUrRqJ8GRz{OVYN*<_ai4hzAiroX~VKaz~EW< z2Pp&eY~DHMBeS%MxQI=2>|{*jMge!;`>s8Ij;IwJ(~-yDbrSzZo8u_3FH)p@hM$ix zz4-&`LaVP>TROY|f)D6A^4 zXHA{YpNh%~psur{9UNRL^rQ4w-4aB6oPSGn)-;`!sgRqTjHu)T!#Lk<!nxLjb77g%oO@kf>G7c zmze~R>#U+kmN;qaHlkx7z1O-Jn^f)42^PjMd;!~q~n}Op5o?1 zXkOnO3q$tEX7hw}X#>C@+fUo?OkJHV9(J{3CqKcFeH&sCbl}J6N3|nYszm!kXU~7S zt#XC-deV4qMH=4^mXCt?zRrs-8m;H?kAw-u3FyF`q)tU}Uk_u&$cU8Qx52s5D5;v@ zPGKO`uijtAoy_sKI?;DRHhp%U7ij@mcJ_eDBiA1P;C55Q{yzsFo%Q{jQXbk1mKvcx zH3T}7bo>oCadC~NcvMa~fys_1XOSI2-T4>@rOFb?MJjT^N zE_M=jGP6`UroL2{N8~g+IaYiAqes1u@jE6vme3RM;yZ_|nQzdYy0eo!j4;1|a+mC9 zHsFpe_S@7RzJA%mQ6XLRWf&Xp`X0fBmz6o1XP6(moje)hQ544Icg040@7OE7RV!_^ z6|k7xhiq+egmDiI$q=qKt`hxvItSWZ`xl5(l1GtF=`5Le`h<1pIb-#2qA2O&ldanV z1Tw2b`EFhD73t<*UC~D;EJ}{OAx6A5gOuy#kVxk&>*YEv4D!3=x1@nTWTIcQa!ezW zufg8YKS*_&kp;k7v`H9mZN_ip>Mbm5V&eG|_Oa=O{^I!?k|M#9`zyK|yO5im#15n9 zA51dTVGEKjU6&N~wcK{s^<)Yu*A0<%Gj$EPy#fLEQeDR9k_N1<)fZFZ;phZMtImgd zfTvlC>5AE2>f|fyDg|rI9@;j!zMf#)GRuE0=1)Jae;4H9+-(a9t?$#n1YfVuoPfLB@ zK$YXxh#}O9HL5(&cn%qENVn{?Cf#_!MD>oT`8_BOiy*=3#6xw4_~;&IVmh;ERUxx`$5e zz4Pl2y7OlpH#j&a9KH|uRG!0zR5|#)l5P02i%%l?0Yx~zRh|6|L@zY+mpv40I+b#X;q62uueq{gCkVv}! zeUSg}8~fjXT!dOyZ~IgTb`$( z8=^;%YaQ(lTrl5Gd&DIRwP`Dca}v&_Mzi2=5qgH1j?ct418+8-)~M7QtJm(^;)u%} zD&#V@O!8i!mFVgMpQ23d2162LJ8I^tmjWc?{rt=XUl0#n9@fsGX#Ov_1Qq7$ksb!< z!(3kHg}0TuYA26kAU!jip(~jhuG7P@2#edtSFfMC&O08LS}12aYL&U5$N5d+K86&Tm;h1~=8%#jj5S@M_b zy68dS7UDQVa@_FjSapu66NS=f^wDLxCcYW432A=fvdrf@v!cIs$hjyp&t|{NJA-V} zg8%Ow3#Gw&1hz>2h=AQpE($#tdp5pKJ(?+xuD_TGywnm0w%^-v`hdY;y%KlT|ot++$%T#3;QM#}CR4Dq3K|;0`{otm5BGkn! zQcS-&H4^a`UPIZztk8=sBV&@|4K;aSKE;$&18yCA^8?&Wa0uf&A~Nt=?Gw}CZEvH- zak=|yUB|@LlPozkcPozelGQ~k*MFqs@et%Sel7((Z#Y?FM0yEMiRqoJ9)+TxlON;x zL4!6v;GN&Zz8cYhUA<#6x;+z0SA6H43>$;gX zxxm0T9Lei!?)eEZCC(t$qkFgGijWx*(fm6=DU5 z-D7O-nQ(s25A2#>r0&FIQg?RCb5d7HRe@OqNB$mI2Hv;)v_MXrAS#7+FKkic|(UjJ-#nHjH z-(hR+L1NJOe@~7>@qgihdJ}ZO(nU^_G&iFdM|4le>Y#OR$nP*cNXi!`nb&6 z`#ImwW(D&$1$%9fbh)KI%n*O~I%u&u*4WH`jMP46&{Oa=%7Axs3|3bYqJWg{=bJDD z1Zys33@5v^yq%vg))}m`rRsugF4+Qyg8cq*F82{}7csebgqd-;igqW4aS=Bqy4>qO zuH*_}csDqS4Ds4Gm*BT;c|p(e2i&&$jDKPXf1s?-ecKn{D!8c^`26`QfYt-`7e`o> z%LWApOnp-nv3`F{?03=L6k5q>ALi>+fOGfZH)ePmXvLbuu&R*NbOv-;jd~05v89NZ3bmH_{-QcR7NZD zC-JaUA26(;qO~mF(61?hx5lxULFr@M*S7;Lf`>gZHeFHANgYbR1Bf7b9LDPegw}I^ zwrH3P$Ym1~*S(~It~dB}-;>vY04x;7K~Hy(zt`U7St*Lj>)m=_i&Mlyi6Dxnx+1jU z(R7)h^G8rzA!fG_+x9J4Bc^q~)#Dn`*xv^9{&MKUMfOBP&k=+QXcss+z=b?Y)Wm&W z)=fHnqVfyv1EzH(eEqZ(Sha!8kvGO5ce0~j)W6iNiG^Cf!5HA9viEX(-i?x z!H0eN4}raw)wQU|x*meSY5fOp1ECED>7AO%>1{Y96C_zZ@`rt^T=8wQp(;t+8c;E- zlnNi{(hS3T(dHdE(dZmc(jM2~acj?dEQ$&|#8r4+O`83#dQn!xq9Y*>7j^Nf#wh5- zW)t;Uh3a}$4%9m5vqdQn>bj^s=QTu%pM)Kf+S;5I`_*pAh~(B+RLfY9al^oGPL3B3 zJnO=GkHxc;y15y|FVv;R>gE)4QmGM)?jvlPOdTGF!$%M0_pYRf(<17Y*+vSYo3?0E zZatak0(h~my~#Nc0&Q^EcE46#DF2v)pIq|hK$w0zN%4azn%I4}yvla+jEeGc2_AY% z%EigiaN!{^En@(4#(k`1PaS)noO@Z85-|u_>QsK&kb!R0{e)a#0H8rTW5p%8F0DY+ zjoVn|icaP_v3dPgqs^(0xF1Tu?ld9{X*8^D)Qb5U;`uMLeeR%_^OUEgFKTWTCdy|z zRh|ulzGf8O=WFH`_trc4l{Uk}2G^igqhIf5Y|8G=c85>tr))?boi7B}M-KwIksqG} zU%I8lh;)+Lp6PE~wrWOBTODQGP1#Q_sDorbh@6`A1U{&iRj~_sNo3lObr4n4-4Mn; zIbSRdkC-_hFe`$evnOx;VS@o=Pgh+*0jp|$H@t3D`A<2Y$X9dFHa|t!qa(R1H zEZad5>KeYp=jO;X(Iw-FvTUeIb5Cx~nr&U-Qb^=E>l3$UDDmOble*wXA)Bz!?#qK2 zZi`5hUyrqA6jcG3twqgaxrst4)BIQCoDX*cp1y~mp-+*gGcAf#*JQut!LU;(cv`QP zcXrt1VLV&R6Ex@F^ed5Ae?`0#3Q^PZJ7X4ebSDoupVimx{vEZtx}MIZInHO9lGx(7 zrR+cza>_p;^Ii9qI#q7q@q4oMP~!(Lx(DJkK_lO!%uX33 zJzG0d+?q%NGZO%+M7N_?BGy9__eDB_=<349z^&$Av71j?Kk=rys(A^C%f{l;5v~X% zPPG3RqFqBbR9L&q*x!!CZ`%kWu;EqtD}Al~p#P48KQj2{iBD6F9>{mf=^7eLlheb= zTSGywUDC^V7|VnyMw}8*Jkv70H;JeGQ?0VLjyo(tu>EtM7l_>R=Y&h&bGR3jIA z$5fROqoADP?0r6?>vN87`6o6WJlT_F0TVS`lE6i;Z*CE6c^*l2OVY?zoZ7MjPc^vC z0{bh6M&XSpG+Sp+mijRRXu7F#Y00tl<)806bMua9R9fytF@%6vOLIfIFD-iPtL=MR zxwGFbjXeCD{WrXi3w38+FdU}e&a{fSI;!?QOH*)20A)*|2QNZ-S*N}>_eCf!XBjtW z_;)o%=Osn6O?6Kba*j30WJP_$gby*kLG@>2y8y;|5sb0fl94#ks)Y+w=-+2^4*u?o z9+UJvuK^R3sW;hMx9r2m8K}UyB5b_0bMDw~=>s~Q1`uw2t7esxrDc|PWJSTz^D)V| zMg<}#vKVU<7;upEY5PhPL$2_V-Yfe}bjADjT~F-Zhw&b7Le{|XdrFP%%%ZQt>=J{` zH`h`yX)&?J#rG`}+Iuse` zb-t&3S?S2%MNXd!ssg%dkJn=)&c&T*2+M{ zedUsdP!OmPzcyj`qRATXF33sJK=AFeczQB^w|dO}UW$tfD5FK;)ZgHw<`4@XX08#5 zwvE6O*qPSXz4{@>aWH6zZ!Eb8D)n0J$7mY~4=(sFZeyTm%Bfxi-&ckDLi+w=BJ{?G0lCtq zd1qS7*UkYwVYi`p(V{fHpvJ@0+1+6~g9xr#;9<~7;I^AUz!T&yWJ&!jKTY;4`Lbs< zPOWlQ8ng6-{YR1_L+7412p>k1dSiT6U69pz8Gl~%xM*#2GEi#m9Qr)+_EXtj@{R2;2A{v4)%~5W~;$3@-s8XvP zJk~;?oz+4|&A7pCpgyrS+_%zt{RW7afgyOY%#@G{gwV_MZXQkW@!YW}UDg_``R=jQ zOZQ+uRf~9N5mzD~J9BCGhV8p8T;6p0w|9o|Hpj%3+v)G*rJznG&HwyrH$^b$zTTvwO+tKIEf+dN1eI6@u4i`DKp zl9U2VBca;2wr1-gU)U)H%09Ywk)8#Icx6{*_evH!JR6<+| zuLUjUtQW6H^;A$+fJXs-EDl@C9~$-E#5=;`&-Jj?jps2+W$}7dx164AL4AM2X%S%; z{W(e<3-+viLPSd`zor(3y;zfq=p$B|vatGX{l#&}J3PAZxQaeaP8bKgCobe8UA}MO z24j30*1nfIwk)A;V7|(+BT>xMw zmFQ69cVwK*^<`r{EMUG$Mhl-em_!|lKo8BQamV^nPKgii#9s*6Sa(_u)V$70Uj%z3 z(>|l~;n7k%)5xp$5C=4!RBxh?&BxwuJ{nq6=?c(_bD@a67u7yYTKPCeljLVaYffwA zomB6)|5pYKVXlYXT(y^hRtX?CH|*r^SZ8KR`q+X@P#yFiwav4^=5Eg`?M;qS><&-v zVh2Yyrq?r@tAQWxHhpWyJj9nCk3^tr{|1+b!6BF|oN?b@Otc#10B`G1q&HXpJ%{rR=}+qgQS=myh01JY{@4=bpe5bAuJCBgUf}VsXwtAr8=!T^FetGUF$ekL zQMr68e543bFy~x5&%(`3W_HlaZ6NvNMBhk$1!z=aj{mr<-syMQnD_MFL zbzF2Yj_mFC$+HL`evtFJr3hJ*56>^|s~vt|8wp$&5jJl9idL(vKgWHH;>T=am1JT4xHdhSfal zQpeX^&Sa?CfR_y{z=L96e*r1b70r_WQ8{q9`5V(s6dprUFWB#_U56}+Kry3 zx(6^gXw8V=`5&=kxsfpIa-iuvdN;i_?hAJDCW!3Cl@0WZLfHak+Ptpk7(Lcea7>{j zMc!+2$Nd7SI;n+nH;U6N|(5ZD&y$u6~8jXXj#1 z(vDH-B#VES&ep^i58uGcp=tM#@m~dl+8D|$8>r@m0#8%l`r^obx1{z@u2PO?;CvVv zpFN`3e?I$8k62`DilgD=HHj9roY;EJ*tTVf= zT2iqsEUOgjB_;_40bW|w7Dcg9A81LdP~_gQ_b(fVT~n09cWQtI___&}qGnl z27gewk))_9)g+3#Nq4UY;z?IOoX>6=xmB##ncG9%8MV%Gd8U9%raefpKHdfZlusA# zGh*ou6w|*xN9&ICtzj%T>i7MX931e}a1c0jCci8I z*+1|6(=tgk?3gr=#LufzY5~4exEI2)Im0|q;#O-y46`{;5c9mm3hzU#iwfM?4A{-A zR1w_^sTd|4xf!gm#~FO-pXEMTUX--sgUsAp9jfHv>E#Dj=vgi+iN4Kc;}?>9)~_GB zUk{(g3?aU$T{G8~%=flutoCPmZ0|bw`2@b9&;wR``5lM4xmJ{`6sK=5J4C(@HMp6bp-}Kl0ia*R2y5lrf0Ev zdpqr0?CVy-M%o?Bq6i&v-}I9q%`WBtF7|pk$a@lk=6oZQZjJ@urDMj-nTvFJa~)Vt zu@m(h1DgI|qK2BtQ$tb7Tb(el+Q6RBSU6pp>NoI23yiI+R&_x*HGF9bb%2ByNpwIf z_wzXsZrzBcW`HODQoCjClXsk92gatDp?JU^a}cND#ZlIINLr{ob#3~J#;||)GM-;1 zUYu{+j0MCO9(G-0bWspq5b^ltu0^p5vg(^Nl_~J$H#U`YNgw`+@Gk!$Z6QV4iZ5w> zw7}&RZVrRIu)xR2L z$15xZ6Jpq?;m}Z>rk7Fj5okq@D3vU&^9|%`qi2I|XB#fM4^#FA_aNAwWCyr2UJ}kztd#EL zBm8}8kjG3%yrlis1>ogR*v>y}Y;Wi*8+#R;t%9Bmjqrn_AQ6N%qVC(Zh`;5;XKS-% zIUxDyO*)mcUdl8Q6LFd}%iFZ2}>Od40GHt|kSifZP6W;Y|?nt|F zDbJ=R!a=Giyd`ndDV^S_H0*$iv)#zANmJ?fmyV11#pHN8*(@@(4{eH%OU%krwW=bmEJh z-T=ZIZ>o}Tm`FmiqUwCP2JL`yGt*1}LQ0vqWj*cSEg^vhp`5QtS5C7kG^I8GrGaQCwetonHQnc>@ zp%9bbcnH}5nz9C8x>3uc(#!;b$)}so!t4(h5YBhD*+@5c=YG;#UokUk7YY-Rt@1hp z?<;Qk77wBcFs(OYG>7jGgm+;k6;Cs;WY+X#sx<~_1;54mJ>sZu=<4`)EYZb$)O0~SEoUrSQB zWTb2$-=8`DZ(?CwrJv_D5us&fN^ja%<@nDAo=l2pPNVRev5RQS zJF#9{Rnn@E>YrkeQGB!;unj{~5Vvnx8uma8d5823a~zIDG^{6e!K8}e0zXMAx8|ms zC+%BE%x{H`%ik^u&FyjL2V0RushOO0zIUIl7WRG<_G!+uXnMqMi1+?>HT4vSL~9t% z9~9i=tT2lPE)o?V&tn3XK1f^s)QcCS+`6T<#kAd@+Ld>ASlWqqBw@ zW0`?DwF!`(G^$lgFn&_|iMa%JGEQ2(Ow02oa#3v<%$uXq(C*EyYsaG!Q|Z*l5;gYn zf-3!DY)IT@-O?0XP>`5hjyCC%h+SS)EoGbjGH?~vQeF`Y+iN&FIcT|CbYdLwz_OeL z3k$w@buti9Cts_oMDy5fcw3O8HkF^l3PHEZR}abM03Q>F&v+(#S(>L_(Pd=@ z!e5b2yH+Tag<6tu2>Llrv?KQT@rB9Q5yWXS8MbhReg`KIO8iZlNy2{&3}sEFD=C^>9dDOudRQo}yD91> z4UM`A6gwg6d6qU9ETHAYOcI$TcY{>>&10Vi$Bllc{|rP%s>N?IY%KZyCIo-mim+ZV z!*si^%11W06K2A?O0`x09qtnfsr}Y69oHx#IcZ_MrjqNl0^SGOQ6#IkCU}^eH>-z2 zfe@SVQ>ztjIey?>2Ibo->3O*@yMu9t^gRRaRUfF|C8 z1iOY{wZ6HaEr!!TdU>*zYIcz}eW!x`2WP!rOBZv;Sh8dq@zDCgz|C4}e-? z0-nAWWx@8Z5*kPs))1gHi?s!B!@3`SVyv{vqLcBrROwK**GBH0 zwd4oxK8Utt3u>iAxV8CJ{0^X*iYJ_cTPA@htT@v$kf)7*oFmWIX>HI*Gts%c{WL4< z_uvxIBq7X)%#J%nq@~Z7r%Ukwe9n$s%zCO3Bb*CrxhOlR9Kij^@9K*}6(G&X>em_d z+&IC{NJm(^1`H~dEWK>r8cWxl))R{dwP^&Xb<6#y;*0v~U?K>2lXk?p;Wl=RqWWHBx#v3;BuE;XFd=uLPuxdo_{RB0- zh}Kg`$|BOQ43{O}lm}Xe*7E)6;2Agdi9?2h}eOP;04ef1# ztCd%3e*qK_NumhZ8aS@a<6l=;CzN?7h)6{*4n!~DQLX@erqSwLtzQ%!?4|>ry5MRY{@y`}P8G&Zm($F=@F)L4M$)*yBO=l-b4Gb9Fs} zkCz6%ioeb<2lBKqCUzgS8%tJPXsY#A=wYs92H%t%SYgM_awof_Z-K*`OSi60P5OE$ zl1Guw@nQ5onz*!c*RXHiFsEWJ%+Kp{GN)R)IDK&?Qr`e*1*E)F6N9Fz4 zmOmbMIfCa{hOCz5+^gQOFAmSgfyc(R#?;aX6Xw6DY4hyzW;^+XYVSE==zZ4Cru*Qj zJb3TeQ=h@f#oh7vs4r+Ek?Vghx5ZZA^s?LopncqQ*V9{s6}vY{!rLQGC_-BzdevHy(~DxGXXKroTMB zfC)jrE~-V3Kq$nRHe9jEr?I-l;L=NczWatGf0P#8Hpz!bg3c1L%tQY{0g;Fw$$QJc zCGU6ZA)`7_!}x{PkN!KC8eNa*Xc)*kZGkT^>o$k+4>7t)GP1@8gOoms(w+<# zE0tlKlx0*}@1^TwqHmq|;7zy7f3vKl_lr}2XW(kuoo}NL{OXmWVxKp?={Re2-uMKz zl~rN5G7B8pne89t_ju(4l|59)rOSDZYx^mM85X5*vSM!ngW-LDmLARW&M>L-e5==2 zDE`PLg`{rIRC#6#4*PU@b;tGfI3(M1=A%oTc#~{)vPMnsrv`9)WRgR~o;~DMV(gnu zgR3XG4T=3aH|TQ8W-Tc$`+>mxORayqL<@mtKd0R)(vuUVnCQ%hJ7XV$+n5C*iKg2d zBbG9I7X?5MxB7dz>NO_N^4kGD{Ji1G66JIP@1iCs*tfP z*U!GoA?hQKG82YO2^m=uKbb65RJ&!_duANK@*ZY7>oWf~uVx@({)@7YR5eob!uF<{ zjvSA{tR`EN5G5*?9NKB**sf+a9ey-lQ)*a2u=5D* zW$?-nH?a?vdyfY7J8FF^VlhYaU|Kaa7-q}5(yL(kCbCiyXxZa{zQC4VLr3JRs9vRu zDahC63Em#a&Z#fXL^PaNJO})maE*~Alo{H(-y&n0I{G{3YV%5gsjE;v0O?UH-+mIo zZq_34H^aIge8LW>HfH)c@hQe(yF$n_YW^Z38VUZBc9(1rF18wk(uZM3L-g-$G~(Jailz!d&l1LEGau9zal*G+jckfyYbKL-KeVi^u~`U`*2CLfWSwv1 z>D%yrcLU91j(%WJ`$;zI*oF>(3t+?w90-512#Ul+Nn6jzsnIL1j_+ey4jg%F1mJJ^ z@t(#W`15D()}z2B`As7Y;YbId&SmrZ3$P>Lc%0JrG}kcm-tR!B-TmQ%063n8clP_R z#f*m*$;cCQe9T~evxcQB-YwVf?BA5Wn{nT(VHwF-H#8DmS4!M}*OOs@q%U3(Cv;iW zEjF$rn;z}*GT#m%6bWsY4zaLhXk`_%w&z~KU{Kfex9rB^EfweV{@ZK+V<9u_SkCzq z!m+0#kk@R}-ZfRkjl1*d zQwAzu^M$&TMEyG#)bv6dBW4oa8ZRNC9bO$5Did2lE}ikbXQ#h*W3Y;;>TPnbg^eg8 zknd3CvyTV4#>_wb&=x0lT>kNKKWGTUOLUAkdy>i71HgGkf&8k}q5(DulI(Tqv!YKo0!^-pe9c}bO^&a1>ZNqqeYGW^uIY_)3GcVtypo*V|u0|O4AB@{JEzdtJBurXofX?eiJVYWPZ1HVifF% zC3bt|H`Wdt1t`}h{L;$|ljG5{#l7%fU%9o61hMKA48yNwtws(hwSAEuo5)1&FW8+W z1%9szr%y#DXaO;*-IK{^WL~`$ zGj@sd->L@Z^3@&L%CQ3`UrX{_zATF%rZ+^Xks_^x4q+|70xl&M1}U@rl*m{Ex+NCp z;|Fh`cVl7mn$VFi@N~WdC%jof=q%sA#Ps$$8~!C34zP=!_MTritq0ATXTE9T%8PSF z3}Qtce$JlA96bM>kTqIIoM_Xl6W7HIVP5U92mJ8*ItHK>1$8mn*xol*@8+WW*jdFss)HR{}oQ+iN6dtZxOK{9*fWF`1M0Wi6c6 ze+@8n9}kaG+daeTP)O5R8TWkU+*!Sk@adn768s+-g-8xtXbJe6MW+~D@|A+?dF;^u zE7Lvy?!^lHc*^T%eDO*dm@BTgad9Axyzky!{ir2miBz4}?WQbQt!aWD?{G8u!!k1! zZjA@oejSfx?WCUVN+o2Qb9c()lO+ld%o)PYB!n>mB+&un z15*Pg9P)@FKT`f5v&)S?Mb3Jp#ad0|% zH0|yl630X0Txc4#KJwv&V>`8e;Y*3<{lqTB6z_UHyMGG@Rmb9$-1D(@QJp{2>l}p?p)V5>2giOlZYK`xjTIcGzFAG z)Jh-}g0(jQxXh}$goCvIWnWQBHHr9o|M@NC5YCz1cVIAB+y^ zt>4YqbLQjxQj>koM6!v8D*-5VyW3NTqh!rLuF4$w&3`fMXMKB2RnbR`* z01p~;(mRhKiO&8^VPZAA2Jtq91K6;oq3Pzl=pt+kD-zqWtc^P=KZqso58RZG6j^0S ztc~o38)oq5tD(CRL~d%vRS7iQuD@Os5}Dl$bjrQ)a6AMnd>D6Jp$>dWAWLOr&7`|T zXoj)rCK0HBpp)4##|J?k^01?;R2%h1uV6-{&*@L}Xnp?Kmj5sv|H3qka6Qv@xc1w9 zG|hvWJ&V>8kY*!=B%ax8%sHDs^4K*J@P6VbIy56Af53g$;vr_Q1>^@xhP8hAIxP6K zphw>*7)f{Cg^{#Ip zvV8xZU55S^IQf|LK6{@ZSp#YEhl@T^Kcw38hejjcPB?{}G2vjz=Nw;?_O{4hbDWvC zgrY*2N7RRNdjgu=%oyi+nN>G4{MyT`#yUW%746$@2PPV%)pQz+@w@d$$845Qg%|Q; z^yVhJfdMnnj}`J@faA+CQ_T$>qT92~0r=9$mZee)%e>>|!Qe|J&-0x_=U&5n^G_Bb zTeuLB<$lfF8p9^lPT}xd9!^u}7%zJOFQm#6T<@poXNJ7)c4+jC?sQ!gJbaRL{>I)Y zVE$F+&1AR+P8yvRyj0!h-ICd#R#v6w)}0NC1g{Rr<$sf|WvRmc;O2S-9sbM7jQAvY ze#c+;a=)M3`3o6rA@;jOBR1Q*xf;STnd#kI&~w~~fzXg(@O?UWpm*u`)e-qGuHZ19 z(HC~GoEvsV7-Ln~SWBuHOH&(b>!+NRCC?O8ADSkrMKV)LCJub+PiHQ#s7a)5qB7F> z*?7Pu(RH+={9G%8RvSX$d>{mHb=`~1C;HZnSEww^&SK{cgZG90E8KYYgmS>Mz_$NtKfsZBDcZ(a7ez8o1_ z`Sy7Y&+e18a}sQ8;PQI^#X^%EbMpcfR#VWUYDJQxHLbL$zL5BP<%~lN?v8AgdEIFM zOKgoFL+x7LVaO#*b2a$x5moEPZLqqcONFvVgxsOlMF>feN|`i(pSNhfE^y80l*#?D)~ z#^PQ~VU#jM@YB~(qR`#ZbaDblFaj1_$TWo_vCspim4SdRPL4alNtndbX|7&;$0TIW zVl5J9H76MB7SKF7yq)s>xF)j`$^wSiU+otu37+5REN($XXO)I0#|vgn=Wlr?oy>_} z9+VxxD}RsYS8L{`963;SDn_Z6HT~EA-?XEKG%u_R(HG%ags2_^u>>LWZyx&7JHRrU2F0DH8?)&6#1aD0UDh1^&uaQQooo;BReOx)5_iC8-BfYSp~l%M^dGA z?zf!5MgyR2E|zMqg(Z_kw4BkIYilWvLnxgijXR`~oWmqkSjh{=5~wSvowj#Kxt7H? zS_&-bXShw9nb0iu?Cn#RTP958NT$0m$87E~q7&5i32k%p>qdMF%>G#1EH6tk8BMrM0p_WS}l~=>!4DQU0555L%J+m z;T9<&?LIGj&~_^DJG#MQM@Q#HSNdqiVv=n#1_sG3Ooh&QX4@=xMvKfB!XJXO$=;f)ux8(#2; z85^AWQ(BPl6TPpCG802#y z3HQb6&s)Q*pJeo*^aj~m4(XbpKv4kZ^0$fEsek+O6_7b96F;9Egioo0MwSR*fRl*+zf ziN)qeOP=F0Hd*HhH+exCHM?E@Y7TQi!@=19kO z2*JY*Zp#co>(Vq>C!zr1(xh_QfBB)`KjkX44WW z;?O`{>D5Gln?aMwR+A}l(qz)Nw4OhN@?DNehBiR;2NELdx1qL;8Dq3>;7Tc=5xzRAING4{G`NmwX& z9eEvQt(4Lcc8Nb7st6^b+T@X#Pp{M(4gxmWMya{qrN@kM9;dLU&g`|GrPZ$FQo3)@ zjm<{tK?;g>s z-qk5foxUndpEjylp?29c;5|KhwYwf)Y@H>M^>|x~Gj^_*?F#o7An-XGhBK!ZpcJ=n zzI&nyrUNZf(Mfyp2MRwdkq?KodY|9>4H&5{ve=}N9se~yErT8R1Z^tV@d@HCJDyG- zcP{aajc+;kmbTL-O4>fJ3cM;F8-Zr%2Dd*gAB+Jm*r66TJ*^K@9_Ejx4Ft1V|8$eT zy5at8685r&wMuk}W@Z%jAJH|as;999&gJEWGh(b;f<^t|PKse=-6JR!ID! z`My`<>dNb20P3oyza_dnn>B4^*MvT7pSC#Cv=LJo%4d&v)=9Q_Oq}ktLLrJ&4O>*W zL)!u%-mUszL4aekZ{M=24QFTTgv?+n@$@c01om*8=GVUjdh&(^egXyKMeqoS1bUHa zBtT}qW1f^(i%2?<-Z*qC|EEBO{3=kH4LnbuzN>1!*;|(0lz)wW>`Gmmfs@M+Nu;Bs ziqH;oDG6uZXacm4R06Hh38L*8j(`h-rTfVaQ|?qP%b6#>GqCy^|4cd7iFAOMommf7 z0ll?niZ=8YJ=}dr>=SP{Y^_H`8|5VLzO&J~#-5M?m-F*keeij`V}#pbjGE;;1jmS9 zHiO;+PU$2xnBAhXi*ovqoK`G)c5BU(noiELsvoy03NIXMXVXpF3pQ*v(K&wz5BQjD zW3|aVsExdA<#gO!&sK^hT0@7)QIq5ZCoMz?hSFcGge@#=+=r*c;t$Qf1xpS@7U6Od z8jHLp>9YDwUfwFlU$0^^xr*JgGk9qonmHV6=p1j%PRsRhbEGl-%JJFEWoi1Vtsl*E z8Xr9!&}hsK1l6P!(LR*CwoXMopUPYOtJe4x@BFrYN#1CYS({kji&1H!ShY03Ya`E4 z*L`a@;Q6remacZ~kB&|)v}gDW%%b&~espx&^avE%GShvD;AoUumM0bdy|uA{*o_*;Xl7ZDbFajn}to?+e}4wu0-u(hYkwII1)Qml7b zYu4gb;q37Y!wf`fQguC&-z`rcJnh;I|4@!cu}IeKUv<#2#^ZmNj`>OJZBSpmNgU8Z zW!p;+Nl&!L0IY52Um^xEDvlNZoMiK8UiCnfJPHe1mU;CIe}wf->^f->Bi;HWACM>g z*;tmF+61KI2y#b3&SP>G{0@|dV!P!Ds(nOU6}LYdQ_+=vojfjGX));lBP;S^bM^nV(YS(g?j~sjwVkS8K z0xJlAGqCo&wpT1V0#nsEw1NP^mP%sBg zHmT@N*`|A(owev9f2yFCrkozj9J-QA_6grszLcY}0^bazO1 zcX#(Vq;%KNaJJv`zUMmsz+Cggv-iHAb+7eVrOod9EW$AiBXA_cpVedQy7W_{;R>X) zAHg&i`83PYY|PJI$s1kHKN3cIsd)X!o{hO^h`ndl4_i23I=!s4c@y+87bkl$d%64W zr$54>>ZixoCMNIU?9V`5S~bbx)rzL0zKdqZWM6! zA2u!%(+Xxq{7Kfi;LbZ!3m^9*{AI*dKE9Q(C9vXnnitPV@$UgqO5NUtt5O?oG8}udyd!h5 z<%Gg$s=GxTLA#UDfA5PFr?np&*!!ib6tqKYHOzm`ud{i0!XPt#Vznx*SrZ{TZ?N=; zB2~}+{5=AfkKCxjMpD;2K1_aA2W4tfo=d)WW*4kx$y0$11W=0>qcVaK>JD(3Pf7c% zx)I_v3L0E;CbEN$1ZLul7xt(BHr9Eajw7K4SpBW{E!XY4%}IxtYA&U;VcXvZoESDP z^qe;}_jb8h$2?za21`7z4x%O?mqt6Mg`CaB_dWPPl8jB+xN)r!DEMkNU^jc-3!Q z-wQIYqp6WT(#O+zGrT!i9-^1EitprjDMfN&B;Ep)YXxsl4Vq@RZu|V52Y1v3JlL9N zyKkyADK9fQ&*B#hD0iba2f$iZMrX-g6IQr?^$TeBnQYSVJ^KR2J`s?silTqcoi?C~ zsG7ZbqlP9RV|n6QT^R&NO;5&CouqWx@ls`R3aCOiPHF+AyqbzUZyy!1+B#c-8gD;v0M2PC77d4j=Vf!6i+$!>#zr@UrZvcOS>rqCS zLeF8CBB(5*=V5ACiE2fm33EcdRr~y8{|E1iD7@`jc3eVl_!+5=)X$|0_h$muy<`^q z0&Fl+#o7rRj3Qu3ANBNZFTkLEPbW^?E)m%55mws|wtlQ^)D;7;#dbAv0&R|-U_z3(y?K*s>DTN2(+)W#U*w^Qj=_nimqWCwH^1fz+kMZI_rvHK;vpv zAR|@RpoChy%V;t<(dydFrRQ_`J34st2YgmAgT?Fh$b6@KlaWBDF79#lt1+U7@dv#L zAw?>&Z2)>NPxwG5nQ++b+p#)l)bGX1mjr@D)myhWi-*bc``|$!=AD>aHETtgOHGKd zG5?*N?q`udun;y3P9NbHN9+GRj6Vm2Kz?AaNiPZ` zQ$Jh%J?Hfua4(qsrSANgqCPnRQpx&yCW2*`LvBm*HieWR@VeS@m9qPgj_T+l`8E@F8+N#HpK>4rH1Pr z7G&o<^V@8F+*kO{vsNx@oWp{ZP=rqdxvRa&&GSgcC;;%mZdU309q}qjnc^$(3u-`~ zppuVi+VLrZJ0vRvtbP@oKcuBSB zd*LnIAHYYtuh|w)Uyfk`jgEfQas9TXZ-AAsvUKU0iL%v$_3D2z@PXL3`+OphF{?3T$G;20;l*1GnS1_92LRM3nT?60?1t zMBGTpWrDLwu@qIH6eqiT{<~aB7?AU<@6-DY5a8Sd#t21O_(ayfw1<}5DErmV_Y{^G zDb;zf#Qo;Tj;~bLyjJt; zR?^OB5%9}m2uDI#nBM^(>lOdPvb9OVCx*X0J4>g8H{>~1ex|C7BD)?PX*oO`QB3i8 zL~WLmL}^2g=IbDrTNkUWa2Pv5KJkCrEkVHmPLh13_FqfY%V0 ztZF*?;aAh4r6_?WSzx@6ry6r`-f^=jOswK!DrEn9=p=HXkF9$B2S{yZWcCHh8=3^~ z+=s6jY1!Z`q=k}%9TkYU$JL$>MNebD>2A(=HK@>uVAd7f!bfX6FT?T2nF-v528kw?itkt!q6n-(XqwE7XgIp#^Js91Klz-2rPxVBu-60LG6QF*-^oP}+6<_Ui`uvAy?wGL>8EdMQqG=O$6Fj6 zkCds8K2)Ly^NhXv%_ZrN*IgqlsaEJ4`A-B@uMOn&O{f}^#r4~zoNHoEb2j?>*=gG% z7Q1Zed!`~5U;OkZi$Wd>_b%Fe2SQu$F-M`vf4i8hTBA8P&5R8A>*j`+^Z}w(+TuNg zA?D__Zp8P4iBi7OH$Hl~sqT|j1h3sK?O{*lC!C^>KTlJmwW}|odL7S#ROm%n^l?LU zqS3;CU`A64zdre%zr?fndS^}q`Tea9)LIzp(|SE?*s!^K%a4?gL_jLv_qApedTdTF zg}_^FlDRs?+mIj#`aK)Ugl}RT@3rnHkM6EN`RBpjcR}idOFxH4Rtq&LnI$wuoSJsK zkKAIN>(j;d7eDGz3bvVh82#J?jMSWeZ&yo_B44zmZ6}`&J9!Fl00(4n-!IfwrK~25 zlS%Kk+n>GJ@Pmi!2`!Mcm4WpD#jJip8ew(3{l(#hP`uhG3lc$!O`q8*P%ooU*hSBwWfX&ys?PO5Ta#RH5z+?APj_2GKQ1 zHKqQ6%$1V4mkHcR%AZb@}squtC;F zqXas6ce|bt)tdYy02&jgWN*wInI)KFE&Zv~Okgy9xK|Xas{AmICT@}DhWJ-b$?VFk z@Bd!ALITIebUDG7lM%{B{^*ApdWz-W;!;@@}bOP!&C zRJmQ2B^ElfxKW*uVO(K-y75`LfP#&e;(GaeO}s+I7Xk21^w+JJJV}AnP=`Mq*bmN= zzj&u4Kps%bTAcmdL{GfIk~6dB+Pueqt8dMfRvL9E+D*c=b})hl|Ha@X$3Cgm7u{`t zZWvg1F`fzB(`Dcf_zb3~%ub&)LO`2zHe-PUiM;gys!$+_yJxmLXh@N-h-x8#nJ&9tNp>2{IR`0cz2x+K_@@GIoGiPjF~@7a{LH=XF*lHCto zBvj|^XJ>xe*FWB}5o*cOKz6Gj3YB70ha5Cp&(rv|pUbZgpp}q$o}3u)E`sk<)1Keq zI*0a6brQIRloyuN%>`N^J)L?$PnIy<7874lOaEdE$AMhwIYf7H$ITmK`n$QmD{7XT zV~EYr9z`#~Fy~nJdry^k+-Ly2GnR8c;ulXljTYXpl?~GKUg&gdRwfs`oc@mK(e0hp zjCx`1N92otnMANRH|FkTd0cW2@ARUu)i z4K4Bf^Vo16nlc&nppEHp{w=ZF&6J_i87VO-Zan{iK>ceI5=E7cWk=je$l4K^_N5Uu z8h+_6N;yA#T?W>Inso|OPzusLRE3J+m-Oz~Qjb=oz^|8mlOpob2id4JTueS(suv0z zwyrqYeyq{6zcR5nto>@utvxh?7&|4#W~|DVn5_Qx32PB-cWI?)l=Nt~<9aailLWM+dN-CK5LJ?gn5JGk;sn#J!ds$ZW21EW~&iNMTLFP+}SB+*VsXp_&xSSAX|%i zU#w6!9k`UCs@#ytYot+4x1jQ=lU=-L8SQ6M7E$!{#Gi&`<&@xhNu9ZQt~6cJQ7_$j zwN<2od4~&gr$Z6zese`KKvX#CXKM4$DGB_=BJ@@65(cziu$N2-`t@u_EqqO8(kg~} zpgyS`;YppyWrH|!Bvbwx%c6j0RXuuXSd2Xhh#rpp2?H6TNw8Z_8m)z{q*1cHgvCLar2J@405$>4bQ{^Li zU53%S)gcy4KkrHTqjj>ZM=#fcb1O1Lr?<3VI-LyEcKiNs153)--KAcWM?T-i-)z3H zxVjuItlK@m9L@Ez$Tpqbgf71VsKoM z+txbd;um8cL8gZ~y#g=i@MC)+RX-;1irYMf)SNw2R2$W-@=c{t+)_b>K&dbOwUIj+ z^rE)lNi|sTvmoVDb!dRe$NfMRPwDWe#!A~JiU7H$4BMRpFbaLz=(NP&I9SwNuFY9w zpVT=t`3%mSV;TY$n+LS5-yQMj&)gARBa}Bt%a7OWq4_Oidyk?9(O*ugGA&?z7Ukq~ z{Bs*c8c~bK8N9l6kwzR&8=^mntsg@@jhdNY_XN(|ctn1?Bw$6L90TBw0gyinW5ouQ1>iE-TYBB`{uQz4xjokULuXxE%)d zsReCL*9_#bM$SYxeV$3~E;)0|&|-hVULv5@YD7lw?F6t*Nip@9BUSA2u~fHN_THJY z{kG2YSAXMqO4O8thV3sj4(HR9i^z2g^F_W#2W#`LXSf@}pMqxH}o9I0d-*DmVu41riOFU>SI&Zv^mo4t8O6?=nwA5DQwQ)S3=f7=ZG_R4K^v= zc0!C{JcU!$+RPVUOBL21n^EUIQLB7I3b?U+HDyBtLcaTC<6VT}W-n)Caa_Co!M&wn z@8W$QP}UJlX^;3{itOW(l846$X#7}9GbTAoaX_}+n6~xTb2hL9qbz+#dk(0V)^>Vr zsS_`|*C_X*XxW2&rQ=yS)QIe#YV~iupM${@`%%!D{jgW5yzVL)w=V{C1M8z+15L^eX6u3+Hp?&P} z8&x&7&vJ7Zy3fGzJ()bzYFA36sXn(GqxlOvD#w4L87%~Bb1&cp3XqXSLEJ7Q>8(10 zO6@a7%_>Rio~yzd$2Ac^E@NSZQQP)uqG(xdZqFUWq`Vm6zF|?k7b<*g&u{?O3o8~D zD4I9eWmJ}3EHpYaM&bDGhN7j;%n_%NQ;KJfY1X26G8cK^;cb5M_U=K>zidM7md9){ zree<`pj4>rld72wM&wHQDu-L98LRr|GiSI`gy;)a^pI{y>Pi-YCpKtC|?EiG&;K8C?cwCB+|E~ zzp)p=Z=glMR4Fu}{Ce{{sK4d=Q>9zna#U{~bd-!IbVCCOZ4N3#omNmW@yc?q-IVK( z(cK6xy8~MUmBBKWmeM%8Wmdw*T60Yr9JZJ96T2a&VLx#deDh(0JT(}ta;cS=i|kqno>y%DDEN$JcpZU!aK+MdKNx?@v+IL8xCeXyG4+Q#)8TlVv^cZ*|bV8F;9%sdCQ>`%Zmef@8wAWv~xw($sLA8vZ!@L zgGr{6)l3L+X=%huVo{@NRDj@qSSpw5;em& ziOGTt>J_X5QSa%uDPHYoOn0Vo7;>X1##F}=yOUlk)1Tx` zNHfT~w_3n|if=s32-|Z@(_uVLBriTFnkDir{W#2R<_C2XCm~bcR0I3Cgz)=k0Z%{O zW%>i}Mx-3)baNBwPp3^Q#ApfuS%#TNry?|O_deSYaMgKCPNoDr4d8s7ky!-6KH1Mv z_LMwTZU(1Ykq2!rHC~zbrP~p6CoL0mnoije=%8u9Oyc6X%7tI~_bfpnzyFRmqrO-& zPbzHvTDjV#frhPiyer3n5ZgPoiurjI%lHKqU35zQ8<=iNtfT&rNA4f0~=c%#lh$D`WgC@p{qzKGUilk5U&<=db-azG z%5e~h;(SQJ)2QNI^45OlT|o^P5&1Qb361@;|7m3^XeO8Iwble+EnQNo3-Ot(_#BqO zB@Tv9+t?n#Dc(k3BA!XNYe~PM5NZvM@e|LZ6<32A5lU3$eVjt+UGv7p_i zWFnyuV7_B2whKIkP-uT*I>DS-VfI^h?`O8Ek2&%;|587J5Q{*RD|biK%g69jstFYV zJeH3Vev-yP#O*BIgLNt%3eR}=RR>iRstM7ct^Lt*p+)}FC#95Yp{Kac25V~qz{8@6 z@a=@kkxH!cD;y;giqN&If|M3s8`jtQ@uE;Bsv{>U^3TK-6JK&GiW_lbns~Vwl8ehu zB8S$5jZ_e6K4U<(hI#jM*%I@xN)NM;M3&Q5PN^Ovz{fCSSGrl{h2fG{beCybq6_Aha3P*!oo#ITLlY$A}Zt4Dl)#BIxDB-RG!D) zgo7{^&;0dEq409eCJyG8X$NZ3Afz*nolF710PF?u$zpBsK+vl_00eO`Wj0!@6p#*I zo1(7NrK^1cpPL5xwY1i(ZWnSUA!Y2b75L0Gd4h`%9vAM-xK?@zYefIM7}>;gPbw(5gkgGQ9qrRfY~GH! zT!K>*kx;h?U|8#7FR$y+NDkl@Zly^0Kq-c)aQ|{ND?bZfl7t8bhmHmnoa&q(X$oLq zh;7l6-4wTt0Q=c@n?zGu=}={RSykxR0HmbO*z)es%yjtM0mzffIP(3d0ECcel)LK| z^zLS5!^#Ao<;RBqvl*g-K-Jf!%Wp;({r+n-{?0AUmAR6)shVl=^=r%wbPY=8Y(Vj1ORjF4yiQj(#&N$GB2Qf>z|yn_1X?vBF(yVf5INiK zj~s7SnA(}*t$^hwA3epZQ9J-JEi{3O=aGQxtT@rr-^{-JsJ+q|^Q~qQY5Nv*vVbl^ zo5Nj6Bp9_Pd402S_f;WN3p1ivHryW&Oyz&HqKf(T2o6vHvo~Fo@B`h~%^$3h>7$6) zfC^x7btAa;V#x!rG)fhy;lMkJOvSd{Ygku$K*oJ+VoCf&1}9SJdLv{i)^Dw*?3<$9 z-@gxk{TfyI`4fH({v#bn@1V#O!so4-w%zI@8@%)3q`G@&Jj_f>`zBh7_fiNXNC=k4 zIK6;rh4Ng0FD}=z%Y_<6EkaV!mg`2~4T+=u#m8XMVey>ZIq$;qw6BZ=ntPTx<$ZXo^At0VZz8jHdmYz7 zCo2CN$oSy5fCS>&t;_BFvLAo8I*T1T5#u|6Qunn{)9gc@MpX>vi1I5nDG}%p;%gGQ znXV7la2F#%qf6BuU9Ce^`_N`5cZ&894X``nU8dQFDfxr^ga>q6{@$d%WUr-@t>#pv zXC{2DZEm5GxY?255H+25adJsf4$I+E#r0U#h#>w@W-}Ip>bm1@?Ef%g?_33m_szlP zOZi2ia$L?BSE=Fp_F!!qoslz%<)~!>fw&|rE-S#**o2n0H*?p}DsYOkSi$FbTA{nT zrNL_S@nQc<@5mzuS7;&?C~9?VkcwnaVT*sNvoto8ap!5gxgD+05kTDi`x%;#sKa%F zt#0W&?RaTcsmU&BzQ}lJ#y#XhpddE@_!Q@d0F*Arp1R#DD0Xzr8oVo5KTUm_>M#Ng9VdmFItKAL#S7kgvTC^*xH-)2MwlHZ=hYXoLi(?@367?eK z7+|j^nXwAn2E0G6&m%Se&Yg}dJ69O)HG4MNuTM z)I0o?dFXaHJZ8({4E;v*Fw}2b=U@lanM7G3zfUD0yCB5V)wd<_DSCy7Z*BtGAnzq7 zpQR|XZn~Bfi`O&5`O!H-*t3_NtJ*Y`3*A@oP2ptmbN3-x<@qmgKt!(ny#cS>_xY@W zb(%NH0R9b&HP?C3IuEqTTWiaDVLh0?^0-FMXdnMl9^jS^D+-4AUO>TCXFd?eJQ^n$GF%KWA2GxBLTMJhSo>`8%EMNkYo!+SDDXfGRLz!${?1fzh77N$( z01abw-uZX4PKvmjqbIHIRj_Q^`J*mnZw5v(x11w?+6ZbUr;ZTcaFUDPbj|1YnE^OI zBv!=x?3!sK<>lp?9b=j-)L&}VB&`Brw>9ORMaoz=#n!AqHkm2HAW;spyIKD%eKGy# zJxvC}a>l-rY39Pqg!;qXFe`c@dHm%rU?Eu0cC=pju2b)e`lR(oVShcT+!YechNey{ zgmSi`{HLahO5WT$H490~yBK=;qV=j-UJt>1wgqK>=^{r8+}>Y)VnpDFYb9MNik4gx z(q0UzK#CtF8tet;(V-(>gztm*~LE07oO8O?-Zef zsqmn=tO{CYfrgl`nLA$c!J>|@1mV_FFWGdDl1*;>c_9LK-|-3Uy2Cn(i9jmoj2CIa z4h8RjxTRyd>ibgPv_dy}Hv6ry_)DYIdHVa?QYvJpih+a=3wB~B@&VhssrS53`lRK* zcOW4x&AXIA6fE2z>k6vsd8c4yqqC^nTa~{dP~|=6n7;l_7rpPWjB6R`Pa-YzG$C2y zfAlPoXDt}I_9ZEi>jwddW;|eX4zXNGxsNUl_3czSu;ongJ#NgIQBWeqH|iY4^jz?= zyfkj)yvuY-_j2j-F=#^MF^~cMsmY0yofl%Nt||`8?lN{4RbVj@>wsvMu9$wHv0yju zB{&UkqsP`nK{f)M&{zRhKiwwpN!{iKO^IA?=m!BhR$gxgAiK-b)<$MRw7Y_#VbYMs zq?rEvp7^4RQM1@IX<%YtHJME zd1mqCCtT=0AIh`6ku@j4Uo#Kvi7a>JYE5emW(Eo^J;jkM9PscBzI51|H(R51!lJ#; z(BiY4a}+fqwNf`7hKgon)?K<=QvG@=mGM)`cwy~*AheuNy5X1LFz{G1QA8@FL@ekX zJBlIov73;z`o6i8$Pq9C|0DpCbok5c-7Cj%R=s_$gQo(OWz9~kcv0kr%K00jH!nZq z)-4N6#TQV`LEb=4e{5pbM7k8GrKG?F4nbTRTZSGUA)}PPs%`vJL0oXO9*cqR+pC=Y zb*S-pnBjLr7pIoEqgQg}lk2e8ny5M_WACbeqqU=5%FN!~ng!pZ{T`cfVmoGa_Xa+D zDtpk9fQ3QN=kB!)WitP_bD62(mn9`gdl%x=y$^TiRp|BRT(w@NjEpaH0&uMjKJ#rz zK>l$LTFRRb*(W4gADjE{U8WM@pw*#*iP!guG1mC^V3etTo1uheyhcQod-%D($)n4| z+C3hF_!^aMfs_Engm|>C<=(`PceS!Ny7ZEkjO6p~uP^ot?SyF)jF0T7JAkWz8dbB0 z8zExkc*Cw>XOE`jwWnst*Z@{+U@(rvh_Mbcc=f`qeB%CQj5+RB)0SUBUQ2CD{Tu)S zX?34Jx5$}o_q?9&xSn$2(m``R-Yy_=ZHDElF%qSJdK$1zG3YGf`tEOKc1LvqvNzKl zvnkEBjitp%h29?0Hhyx6x;7gF2!K0v%2ytsmbPz-Zpp%`+4SWYQOW^(lhblko3w~+j(H>9DV&{^f<(cy#H@p!0Adr?xv#-m zbTk*s4GqiD=F-H{dnIM=L>^lX<9~i+NXV&@3wb%m>|4K58|k4MIOgZGC+z8S%D(=% z{;aF<_lcdn8jH0#ZZZwT(cUEG<}b$gGukGnd?m`b#OOP%uA2g0rS7_Tc}fe4L9&IC zM6ex>qN-H5%Yg8ODz!|x1AF~O0iRgmH+NN=U7jU_ZYzETJl~eFFRSXs_XEE@)#$Tp z)w|E?He9nBD1{@6eA`cjQ{{)EWebk0n18zZfCtt;>Yo(a=KRCF#Xz@WdYOV);rWOz zZsYzbaaPHvhlLxyGoQ!rY~FdYkd>RkA6;g*x>Zihpdm`?`b>-K09Qw_K`p^`g}r_A zkDWu{`rw)$BO-KfAd5TlckqX6Sm(9){5lcN@~tW15E{O>458vuUCfiTw0ed{P$gnP z?-yR}YcCGGB=gU+obd-{F{PRytBRs#)R^Q@;kBAie2qNHJ4~6n8D?HjR%{go$kwP~ zwa4oDjS@3br}=@nc;G^c7X6gIyz-HP)oG?+o*$|0H1aQ7njv~M2VI?o zmE(=n76eo8a^j@lm*HD6E)SY)RpStYgd+G@zjDc=iBVpppCcf&`P}Gj8nC0P|Hga? zK04KH61lmROViZx|eLTo&wIoqj9I58L0*in%eUE{JP$*j52-pOm5^=kndCTfP!& zB5Zd>`UbIb{&$aJdHE8@f_aP8GEqdDg)LH!F&UoqBfVkw^DbyFPyJ?Ni6lSrqS)zw zgZ8_kR`US6)dk6BTbts&^`3y>iA+)v;XTH6gRbjY8LSXJDCN5e*JGHj`QORsa<@Qu z2TTXIO7!sX?)R=WB2lM1nOkbX!MLk0QRq7}xX{ls+=_j6#%GnE0G3%=tqwmRVylCmJDi8LdxQc(a?3eWkLk4%KA2w#y)(RzYT z({_9OJB^CU8X}!N{QDHJ$2I{}icT&VeQdK?g!Jd`qaK z=U{kzasf&x_*#nigH&ZdB};v_l&56yh}#w>WGVf4Y|2LnhkxdmMy0DGfvXXw5lLpA zzLu7LjB3V*8~H@${pT4w-MPs zN>V-{>P^>$i1lg#xlQ>F&2&Hqiqq{PUQE zkMl#T^`=>Cl1QB>cP9~=Im=T8^CfbD%fggyDpuJxwr{7jJ;d z8`3(nV(~>>m*{m6>)36Pk?g|=zI9@3GP_Pd2uJ9%R?L{thb3y||4Ta)L~ z`esx~>^rKYuKpMZpjWvKV!3fWiyB6EFt3whd3al6(Ko>3MeIT&3 zbOUGN2g>06!IwQ}v~g4`y?V~~eBe{7*ZJkRn%*VS2+AW;0 z@p03k6J*Ll{GuXdPDyIi;Ye)X_}{331hzxKNTw`8NX2)O(^|#SA1$wW;+kiuUybYa z%@?Fo{qn=l_s!g*Wq#4_kDBwK5+JEc;ZnaZRuquZ(^DaxQp$M|Uy zv$w?O(V$g-LbAu`Us+^LTaq@hxcy_2_>VNMZb`U`Ig3%8TU@ljcd)aFc+nNX_g3HY z5a{Zhj-^*Sb63vbJDr)=Tbyk*66t|+tQb%?k*c;?70|jDo`>?e973`>Dt7`}3 z#vq8a!$FUrGk&77u4`Pu%G2u{e!5#`bGmVfK7S;TQcQ}aDjhvp(omM!G$_#FQA;`` z(tW#Sokh&>xQFVz-|VWnRuB|SsdMt3y%YF7>gE^<&-ciK+PlA zrWw$qB^3Ig>2TF*IwxDB9+|EiOO%H>2aKpm*QKIM@y^JWWBXT@!Q*c0UA4i+dpD`$9aQAh17;q^6&F$pJ&?-IHsnFf}L+*FH3v|nFO`4Mw>I`-r zoqgT%a8R&*KMSB;q&*F`T61eSuc-MSlL)^ay2;CwC0K)ZzPW2Trw`N3v!%jDIaGCb zFSIY_OE$l}pSxapJHbLL$uWX6)c57M&~7rX@N<0<(0JJ^B#+J|F(~9li`= zTn}q%n1R(k<{GO~#_KE< zx(pkj88UDHzYjuMUxYyzrfmV1r72jCLryEAtE}q0XxsJQ$@tsz?_{8BMS3t18J&L( zn9v(SlYnUyDHnO(KMKzYGI;9q^)`i)y@Zr2I3a(`w)120Nj@}}sxbq)%DgTEeFO8W z)7(ldyPyo`agM|`KCdREL7RVPk3<({OgVe$&dMItW1+sq3U{vmJ$Pr+WV$MD^9rDG z=csv>SN7&6P)*3C2qeES5h1~TUaGWk^cC@;nEY3@?L6hIDJroU57Rma7WKa zO6B!xGWg3C1tC;M#ha40|0WGe1Aqo%i##X9D#x~{viDCc?x-YB=bsOn)Cfy78*Q*7M6yqnb{r1ki|A0!h;$WDs zzy4_&AjAwneZfd>^ziEn4-H60yY#GJZ!G}pE&H+LWP8;{VM_spN_T?WG#vbpedK@n z;&%vI9V|X;lt0$hm9#p7;U!m^WBH^bTQJ3-tzcn0$i5R0a(T1aH*8#9O{66vQLOmw z7sN$RfP*oL$MZ+gj~N{NOcEK=IcLj^o=6 zXpfn$)qrt{;PPfIYC zWQ0G`lK)a96+Zy0l4zGSQz#WY3+jLM{=fBW+Y+Xi!rcWD+FXdijO*hVOoh(0e=*ud ztP%STff=v}>e0woD2BkFJTXB+pslTxjyl*aGN;tN9oy9_&!I4AImo-j^>#>JdU=g7iW*}#|00x@8JP@g^`HBu*UfqZO5%k*lVfYMN zhcGUg5F72E5N}drg+AsHJa6qwae5jNcRqW$2doH~sSzt=|CDCfK=V1Z?`Ft*BDXL3 zNC1xjViEip*5#;0rt9chz=bNtaVI3;`0rCtdtoTSBXsYWVU2&jtBPzHi0OeiUbe~r zA#TRhpnOJvZQnN-H~&b1WUN*CLc&mEEsf8@?x4(}88IPS;rpe*KF?zR=3Dsz|E2D~ zdv|0gj-2cP4O{OoV%Lb;b<75~!C!n6tnx?wM)rh2!MAwIOU@p)s$|)KE|Tb{Ebp0QJ^* z#2};w0Yw~6FcYrnUkIfuv)Rq_+)6pd@4_ce}@t{%z6+jj#QEk?(O)Q8q z88t`4PT(j(LU628nrGN@Sg?8puCGk0Qn7fKLTyE1hI4FCKI9IUS$N zi*@MhYMoc(%1W!+!th1Tm}-zRY)^I~9f_*cXVmMzyTyuV66&j;7?>_nIYgYxhJp<~ zVg0rP;BaB8k=SRMvy8P~1_t5OJ=E}?99PTbe>X3YWKbSxXlDp4EafY5>E1ap6HdKE z^@?WAV>bLOdZ;crD$qlCZ!+_S)GWeL&$+4}8w%L4@(Yyci!}(&P%vLZt=zSD3OW7h z;XYb5xz2_$=o|*a@g?{0A<&o#;xxo$X47=oNZeTJ`{!qSkv_`L-hgKIwc9H~%9^G3 z3wJlxISXI#7$m$XvioQP|8&*_7bDf)MeM`g9j79bzd+W+ANSrk=a-aXu7B$ekm`9B zB&b)s^HC>dklZZq&Q_}KTvhOvS6=lBExZ_}`xl{rgDu|!WSWE2!Kc z`~kIqljU1+)DS4-c!IuTV5#$pB)MY5Mj7SqB^KBqF3hGV@D~(v|CmszQ=}O^VNhbT zjWgg*@kE&KVy%Btm1%L86-G)sXla5faWm*uHem?N7JEGa?uIoncI;;#Q=NBbkn$P8 zK5l%~gM5bt(ygf%+TDww_JdXbduvv%v*QAw2oP%{fh9zrg|p7r8OhGAt@Mix151ieFq*fN_zelgyR()ADdRm$D0im?7BxgP(xkaJpxO|Gzww<9w>jjJ zLRqj2R4}}F#vHqjr;-knV95Z}*PZ2@v78!2ZkMmr3e@~!AQttlx9uwzt12b&o)v1% zoUm7m1wY}JIc1fvVM0X%Wh4j8f5v|eI+{W9?TCL&NZp;q968ry4dJ5iE*;{s*C7hy z;6cgJ{_6`Aa$e4c)jOd9-A*ZAEyC=}N!_rXZ>GK{WTmBjaA--bEr8cn8S&P;$Zd*H zb+%lW!fUXTvi>Ymkk1|klqyGacg@od^bSBcK8OuLG2Vm@xA|L}py8q-X7aK-`z#rV zp*rYXG_t8N46KK}s+~TzE|XPWs|Bx4J;~|(4QR_EcUNxJvNI~ZE9o?{cTh#1?2YCn zPww2z?2X=sy=l)ULgIhRcS@6LH;Z6PC75Dd)Bz9b7yN)tQ=e+Xyn@yFbe`u%$%R^` z_C+vvdbdfa@0YAE-uMt7TZ~p$n~Z#3bv0-~#=oU9W=-IQ^gUqAJ6)d%#C~`nc8%;8 zUA*85oB3sEFzs&lZ?C{!W7TD)C9w8%(EopEItTW+ z+HecEabq=XY}>Y)q_Le$Y};m=ra@ygwrz8g#j&P#c05bTCgKBqu4y>L}Ns>o#4ySRHrP%k7i?G-))*MruOiG$Bp$=ZVl;px7+7R?O$K3%@VMNY_~f7r!W&6wDgMXLP+uHM}b)8@xySz?@} zpr?AB#zLvW3z=!EZ9R2nsukA$5X^+?|*phzAVO<5cVU=>kx>{?p@^^dt$U$#k0e8Kl3Dp#s-r zpg)Yl1Jz@?$ce=W;QN8$#Db>iG9%L`S}^uGPkp#i$|ev{Hu3=6bLp4`d2D2U1BZc2 zG9Tiw8_QN8t2-QMtE{aXJF!w?YsH!WI2m&aI5{H$&Fu|rcD6@({qZ~qe^BXv2@>^E zyWx9?$L|@fR(RuaR^(iFHQZ-)u9HX81(CJH4>5z*WJat#RtJ=WkF=OnG+ zp?!8{VSSDC8aUZ^?llWE?Pv$ueavm}N0F>0^07NFlqNfFFQSwdX?)@P7)(iq9ZXunMo(3^-e&4aj?eJjEkeO2QyBY~Ef!mu zF8XF|D4gE+nFDbnTfPU|>PuikuSpTC^Vu2MgY-`mpX34c)HbqrWDYkgmBbGPE0kp& zQb)Vby&l|_Y?bfu?Em@u@w$GaYbk||zExBjRlj91|AMfz#P6hntJp0nN^d=V(}kAm z++rEfR*x4ij#}b;v;Z4xR8j%QQjWO6ETN5o>BriGQRZHN&eQwhX^*XgKZ9T zuiv_S-LU6VquqJ`qh3s)fx`@>F*FgqbA^4Iomn)d&PvEye(r<6xC#-N5DFhod(sd! zAT((!zqq;1%P|o(JF3XW1~lDQg=D>Cp{j=U?)I2fzgJdNbZ{VD`jDwi6fWp)e&qO2 zceM+%)HFcSwV&ge_NSo1%Q%A{GYIr*ZZ-D_Hkgq$G~$9fB$ykPN_w-KsJng&t_htY3(KYkygrP7Q`S};>MTf(xN zeruZ++~_7OZFs9b{)>WhCyEFW?*jY^k|!a`zjmlF^l`lOBVX_KD@p8(%LjU1z;fYr z)PE6-Rr%`marNGUuY489m*&r;f;DIOT}bLk>eZ32yVyR=bZZ2?J`6 zZIxPW25hJ>;z#W3H)BvLrhRXqnbG6OPg0UQ^_g<~-!yNiV%dm;z?@|%=G|IWi{OZ^ zRjyy7rGjKu?6duoMmar+bIkJ0j69>pqt~d>{O(7wHMTF&Vr{s31m|WebM^l}7vFej ze$RET;w2TNB*HB(66z3llnQuNb18%DO&I16Z-e$&RNUS(e@M{3YPDkmW$92q8*zMR zVZL2}ur$-t{2>Vdd&7S~cN{OazKlwZ>(?e3XZ-`#wyj0wrAn_@V)$T>rzB=vhO|_q z4dvv8lG0xzQ2CL36(JAmTN+T1Xu$oG557HeL?O%F5xSo9q%fHZHOn7)-Zfk98Y8!Me;kdm@FY~Nqv&^c_Q!cTOdN^;8oJozSBEt+0 zna7V6?uz~c+)H;CY){XO!eVKamFemIZ)zqpMP7=ggXONGP3`B^$V)odo@=|Mt%s%9 z`{1Q4u0)Nv^h}xcHvV`JL6Qit+aB1rNqVE9=(3~DoVmCiSGTeES5zi zJ!GS_MwdiYRG2^^m%PUMJ&BNr!53l?eHw(<$?%j%L|x44O0pqI_TQYn?3_dMujc)^ z2p-ZnMjHbvFqA&EcgbYSht=2oMqQchRyy^Fprj{NPJ6bSl6u7C*I zD9I+*QvjPlE!9>1>N3?lp}>g@>>8y*zi{DGqRm?Orxffe)tJ18~2@bknBY^0BchL6nd@ z!>)A>C=TcR6eog#EK&ZL0Rh$Jp$Q<9XKk+i6l3=U34gY7LoN7x=NPYkJG#;RrU~S| z|MiQwJmVIyTlq--y^S7JoB;A$w@WnN|WBU(X#$UQ(pHMp_!B3g7Vw zy>V`pYUZvcWncp_#k%pP^J)d{W=bdjvtkK7mvfV~_-L|1v#EKe@d99NGsES#@b$bx zW&OLXq9kw(j2S|HylWH<5V*NiJdi3q77NjjXsgW9l91~QX=&3B(dWasnz5A9$+{&d z8ZWI0b+5Z0MqD$=T%_4sWLkzeHop}NnY0M}7hz)n_p@9SvE6x|5zi_i6d}+}%KgNQ zz-ab4wBFkCu|&-!54F|=&FhpJjLi`QZjkPh#OrBZYWNVuv~+zMFBoOLiW4S7n7#;j z`*CjTN%4Ql3;YRq?~*=yJw+Z3tFTf=&bTjUneI@SwHolbW-87unB*AhlIQ{a>~e@i z4L^TeWS=opLS-8kKK2N#vALjTM=$SbYd{3u$NxK)l2zf5{hY9=s+1&={OnHgP7L_) z)UFDrG%nB@GeXC9_==x|~u`3!5{$R07Z9pE^PI*Tnbkn&L) zhkZpCHpIF+tYX!zZKBz1C}a(wb4xdY`MDa#I`Dxus5Mz%MdtUqb>4hdQDF!=rR}KS zD_d~HS)=E!ypS@>^-|CmWuTYfVC!6CdM#u1W{RkkhQcs(o=x@yUpj#~&O3F!W$a4u zKV#W|-ggFHNM)>W^@~}E6DmaFp-jI+YM!FA$Yr2u(qPHZwaG&44tN&YnsQ}wv=lNp>yQOvoYRq+h zaI^{$b(borNYV28IiTF7MiVSombrM#(BI98t?|JI%CBiKC(HAqdea;tTFP=%gaZbx;a|IzC)4pod~ zf>h@od^nT$$bXXfz5GNqo(qlId!MhQ^l&$ojST+8YFSiOgCk7s57SBQ<)cF>Pzegl zn!b1(l(_21%IacLV3c(otj~RH&ZTVGuKcl7-#%pD1x|>s(FNu&ereiIdBMv*es90X zTRfYEl19ASBlKm3TZH})EQxPWB1?1?_=+l^9WcWE*)2UcuBf7#^dD*nft0p9DTbwd zC&c^3&hs3A(OtvI@-0=dLY}iWzYTTO4aw{w7Y5DZBsT?|ZlD~v<)Ag9pmli}5O4_8 zJ4ee9hnhWn)2drms(<!0rj1Ag&AnKgu0M+6Oqlv-8QEi~G zqv9#pzcyGyFgVPf0MWWk&{4@!vWv>Wj^BS$-^<_9SyhzD<9e~BN|Z@Bt4;q#Aggn5 zY^REkh1-@*1v1WEr$P@bYW?e9a8fvdp0Gh|k1Moqb^qq0u(}>T-lJ0Dp68D;H_RPN zb~jb+zgc__A@p9)=Vo;qF8+61vbt5#0>D8Lh{9@azq%kUCDf`CRb{8uR-dexYw$%2 zuXYN-aGXDfxFwyH;s#h~T$jPq1*AWVE`nzE2C;Ic>YhtTam>sE*rhp+a2AbFwqiC zu@c0DxJ^=As6}IA;QaP#f`=HU%pNs@13b%p@`d*KX{;J90&U>9~1?I=D1)Kal zs+DZWzkk*mXsRLEm64bI9P3f%Nykt>emMpj44S)7!a<95y`iOF z-0!C_8c*Z2hk~SChdGj1w63Ir;x*2*OIa~BW?V(-`?|`HPS=8b#F*BeJ}W;N7AvWx z?p!~VPqen8-#}gJ*MJANqdJy=uRX3j4|$8VIf*_)SD#c$~L*O9S z9`kC%vQogD5huFR>ki^^39JL3beqnY@7D6 z)7yVM>B9J+D6w#@j32pg*aqi(~6v~Dh@S|CCAnx z551wTrTjnRp#dLd$ z{J!c>jlae6CZz4Vg;QQra2kg$nM}1HJp-S29k7 zV!gJSKj^4B6u3B2xZK-|-tRkJN6}Dm#p-*HwPoo*`i3ctqwv2%5@>yk##Uh$o*H=`$wB3RHSjm(6GnIrv zv9IIqG6}FZ0s$!X@kSe~++|MAaJW)ovq@gFi!+PkJZ!hRnL^tqu@Ehq5%@rytlxZ` z$+^&3{g@1>a3tCKjlhUcm1K62Y6PWW`Yfs%%8h`qo6&%1=z|4u8A(B*H2bT+#!x9{ zSHvUi;)tAmog8Wn=?}HfVHlE22CDfaEnQx24C1jji>HK^@H*UOU8!7Ddv#PtHz`xY zOryLb?{{(F7*YYpBahh-Yw| zPcE%k0;)-z=P&6^RCDjWQp0!p z-VV*+f0-KLOE0M2ZbDIF^{F}9q?5Gw>DfLW?d4dsd2%Xwv7=Z8{_$?x6v%bE9K`Ss z3OZP;2m!I@?WLWZF6lG&Eb<=i8u8vV3i%swYjvcL-H@JD>l>^=Yoh0yBDwYulUPK> zsCkk&$FBQ4*7SSM_lG@~vbVX9xxV$&2Z1LiF1c_%YLk|K53cn{;(ng`rA~4e=04_W6pkjB1yK-`^#{R^N6V) z{*_rmfv?o6gu}@K)ar+)+^2hraXcQSY+r=8FWv*SbRYrw&uu6KCfR+hJ3H;RaWhW3 zWaF+~vH=1VKrlJDKEu;H-W1}?m;4E{=gZ4*0#%I}F{upQulD=|9!yU7F(DoE$^Pt_ zM|U?+T5X5f|;I-Cod}h;aDFGUt#}(~9IR z34b!j43Sm_RixoD)ze|%Am28Y*Xl+oA#gLjfD}Cy)6qWgBOpEe-OZRdjIJlkv5c_mn%de2xX6}0j>_~<DQ&QqUQZPO}C5>8QQ&s z1vasz;evU1lzl>^ac$Vz0Hrf39Tj60N*}Hg<$O_$tL5)tzd4H@AdzDFkwi>TQ^TdA z7&COd+X{S$gnDyA6igp-?HK0Buo6B;pA#?%qBvsvn|K8x z_V!~7QUy-_ec;{_N`UknAO3$Q{W(t z_O*hW3C)!7(!vz_lw+_lNj9s*Jl?K0>u{EY4aq3dwjQTNM;5vdhV(fHUza(cBHtb?;SIC}3g;S_cn$CqrgKny)EZKyQ_ zKLGU`M3GPX&7TX47#`MNeerAW5|8eS!7Ss~p@Sr2dyQmFhk_=$B`a*-OFT;Y)`Cuh zif}z*102a4bz$nv4y&Xw?KpA^spy)j26M7f+lgGJUh;5YH(I`Umaewg#595T8!d&E zEWV-aJR35!;_h$br7Y%axa%9FgY}FbFR*@Pe{lA^xyZ621wmB!R4XZLYSu1fImYb* zJywiSeL(Sn`z1)TXvL6kh?S9ECfW5bv1lWQXO)-?>0HMYO^KI(OGSu-fT2ur z%<&pKL!${&1F)|_uMxG?+$4pKl``|hbqi!~v+5!^_@`2%$LbwfwzK$i#Xjw{v1<;W z^R{LDC>0mcLxl|$6~<+MjB}wO-1K(upD7Jgp-9RB{_6D;!B6^_*UZTlq3Tb@fF(o!{_$FXa5b z(M*0?&_Pka*IQ#fFRqJCTj?kunZmEo` z$suL|WU)gHpFWdZ0snr!z%gA4Ofge6QKk;a#d;#n8*K=ChgkhF|KkD52T!=#NI<7t z@|%DXGd)=Y!R1sDgavp43<0B@FG%_!YlasDfO&0E8fy|9^w>K@8J0jGa}s(`5~2jx zfoiYjO}uA}TP2-I38noUORo=CvH$`u!ezE$lNkrynYg3D2Wb{L^T;;o!2mQrmuZek zNqriTZJKAJe+?%2u^EZ*_~=*ML_Pp;9)>;RsPryPhReC1CQ_fauXs*DHvPenfPItY6>sJuYqA=Q>rO^Cu`v>FaxcNQs`!@5Dew=Ze~0X!$%;C45ZG!Wko}{m~D| ze*j24(BXluLq+e!zKof1V5&KFq~vc$JvBta2Y&n0KIL>|6lE2M`^&U(cF)3V#PBSt zsv+D9UWdf`yY;Q*h;}+ICh=9lHIHD=WpWBJY~fGCZ_zGA7mLqp4^^?k=!qY6@Sk>e z2Hq2p0JP{3sN#i1Y)A)c*P}+J&5BdiRk+neb%JDf2O_Gg>GwaenC(AW0HL7~y03Zf z6jK25dec|lx@$OXXlVI*e!pyKn;>xe%}@(N3g?2u(u%QM2e*BeJ>49cuSD1`o;AXl(<^b_2x_onu5$gA+WDvcdOrEQKEya; zY#1VlBIIkOR$C;DRz(rZZwv6dO0`>qa+T13L>}Y!loy}xu}s@A?7HPzXZ`L0G4$&z zaH|~AbrXwhqZ%Ntso*Lv`R@2d9%OgXlJm#D>BI_%Rqq2ghF0E38p4St8_eCEr-P)> zH7Rwnyn7T4+XB<+S(c{M2H2XaW62B1i{(o8;o(oFrEL#id$Zx&@48IcacM}9e|v4f z3VC(PE6@bbwk?QKX_IqML&H_^y7kb8^5lc%Gz=Td#W@OXV9M4%nBV;Qa_5w!FdrYV z;0J%+=`i1cDPV@IX^IOaI4i}UW*Prwl)E&Q>a!LpHcUE2?VpwkSaN;V%_+!p++dl9 z1w>kUg=E}HSH0K$@0k^TX|0BJ^uMn*h}<9IKigW^YqcaTo)P_oEu$GtrCvk9) z!jJ38ksKM=LV%u(^t!P~$2e9nQf+xtK6-s%|7KIzAy~@~yNnCy5cyw-I9+CdnoUZitqXSBxbSdPQh{`n8m%wL4c%*@kAKV4 z@g^8GK;M7k&e1~^Ag5IvHGH>LkMS=HxyLwfdZ1uGywJrhtB?WNy0c|hgx6>P)fxh# zF9WPO%r+l$AE?z-LE1s~>I!%n01ZiZVSwW_lIWXxGo*#h_LooNom8t=Sd-5q7PR#8 zg}W^JPtme$2Sd#gH+!{#>g$yP+KK=NGR(Al?({6ln5+Y%LKc5Me?V9w&nFb*JSnsL zJK^aA0Z)YD%u6sAI-)GYtsBa>+XhA!XhNoi%25IMwJYUq#c3ih8|=g&{@98)OEh^Q z`iwJgdR##Lbsl!dI|SP^mB{ zv(;S?Y@@i_PQb=f-t4R2VoVLam)9Eipc^s%LuiIA;Ea)!`U%p(?cV(68bO5Ka~*d_ z!U($wgn7OP;uUw$hv;ZZi}^6f-cvRTv#W8=+Hu%qu=*O!#&D8&W9OEa>_^{0L=-6F z=r=07#@-PlVE>xbU*2no8){Qu4?fxQ=xQl$>9r7=W77KHpLU~PpQ{b@JV1KG+DlZ4 z(uw0L2w(*mygNvW7pdY7{_s>=lqrgt)3s2!kzwT&ye4++1{X@H)y|_pX#Hu)$c5_b zUj-3ISp@PsS~0#a7SuZho933&Rv~9{B0nyYI7)7H+?-ZBX%(R)Qv?4L*~G%#2gT5U z477xG+IiQmV!w>fwl|ZdTfQxeYb2HC*fG8o>32FY!6NS*YL%-?)&&ZOEau_x@+B$G zmQ-4N>o?XeSdk(_feokwek6E*>b$R37 zHlk*q^Xw|=wmKlXwHfaBjn@p|9Tz`EECZ(S&6Mu+5`JS)CU0asUkLZ7kE&Xfo&3&! z_RF;3dSy@g_o;SvhRz*&WNx7UMI!1`bV0xspavPu`hYx}ZJhZ@&u>AX>YBN@L5L-! zR7ZMBD)7BB*sl#c){MP3MpZH(w)Q%fY%ONpl+{y`&{l6Wv8YpC!L>Buy-r-H-2+@T90oL6T>1vfocB?#M!ZT&-c~L59AB&7kHVabg z-*PSNx_oFl;%Z!tFi>3;KjNAKaY>GYZv0Wf$!1XH2y$ej7LG2MA*l5jU3ZX?Ps65B zS!WfOEqHhq>09G$HU3mN_FwZd*6NW={N)g36z@Mx*Uh_?Gs$V@2~TbW3j1$?LA-Cc zl4zrw0Vm_*BBYFu8daVd6yoc_e{e+m{|zr*Mz?F1=r1dya9GIMR@#8qg(>aS-M0Gb zzgCycg&kyaWj^g^qPE(*3gIvL0u1Agb_(D`8T|^}m@`JqY&q$GH0MqE-^Ry;31XInNu(L5srybFkeKriWMh{{A?C(^PsvT8$7LEj2` zIS^VN0TCxRN{X1y1P^uA1P`|X{6zO@_kI-HOc|nnTjy@BSpGtE%*LmO99Q37GiDUn z6;=hKPM_I-mrg<1c(FxZ?;ZyBcY&ci-K6}m6w0I@k!_g^&G_Wgc?TWaFOs@UGx)(s zOwV9PbYFW+A(mz{AvVNqbIr(hdw||Bnpv6*0hFr|dRu++-5ky9@uTDpZnSZM;Sm2` z{yQ;C(p;A}>X+a;vjx^Lsb=u*7T0$jt8^GI=d1`m4BP0wnD|`&Hoid zWxHxvHd;RKC)(NZ_HATXE>BhJp1k5=h${1^lo|-=n7!?7v1^=@Colya1+g9-&jNsf z*RRlKS_I=>FejZxrn@K9EyLKV#52Bnf?k!eR^q~Cu2pQ(i+@PwV*KIKX|G_}M>I zG1=+x&Q`eT27c#ucR8eb0IfUFL){{^6aEuFOvjG@khAQs|8Za5d0#SqNw0m#IAHMJ z*Ha~dHm3NZH4h`GOSaW`!|`a0uiiKv7tdD!M}+Wso7F4}WmJp?lYYNm%8CXHBHfj} zGcRn}qrAK8ag7?~t?+Dt;fefvQQA+kMgrE~CK8RanCi>paqR}Y3mXsc`-cPW+G6yX zpNCG$mov0+SHb$X>K!w5h2oA+FFDo0iSd*9Oj%iSsknkI+plgV_6Jm1G#iC`-^77| z5)#GqQn0QdG!q-5^0yir{jYb8isLH$wq03RO{)r3on*oIwb{g(MjIJR^rRbjztO3{ z@3PMS4zhQ)?n60iw5yQHULiBDz3$Eo{U8mJ~^h@^)*Le3*iuMe^f5{t>pp5I# zIDAde%##jUr*#SE&=x0CG;hps+{0oQ=t5=SD(Zb*PEQjpUrN;9srnBQPLfdF8Xv!3 z`}dpMzg$vfTFHpGtdc^_7fjC27+#I^EaeMok(EBYUqdyUZ#8_Qu56C()MT52XqKb(tzHGFm5PGn1wt+i4sf=KI& zFR!cnor;}^_P6{ALSbaZ0I_l*j&9=#9y3)I&ct8*TG-B2tltkdZQ@*20&Y-SYzSye zHw=B*|DEQz%tZ?u#48-8iZ*->s#I)H`P3#DexrY_SyS+8mF6!THm%f_FpHh-Zv;~sKhATm5J6J#TBhZ@&MjgFrdfha61)c5?3{S z#?BEZXco-l&KTSjL|FGcGYRnbesEd?6cK+J`LEjOt7-6^$gH4#0^ZJ7}=o> z00a6!su9_p=n4Zth6uo9k_Cmj!GkYcF1_nv!RjA#F1a+G2WOXfQh+f{xvph*NfCyj z6g$7B-{tV&>!W`scf{H2s)FJ*pBdG>c=e<*(!y-FHsT`EdpmO=W0|6T{I%E%z>opA zBt_Pz-{xrv<@##gM-zD|6W$=mO`DxAU<>@U|4p{nYlsZh#O(F<{kL`5J;17i(Y%x} z(I7}z+`kYEimBSnbata@|0is-NFFI#p4>`ZAP4^TLP*z?IU8Zyws+g79d}HttYB)^ z95%+5kQPKDEyp!+T89|X-f&H8AxJkl&)eifa=mzbW8C5A$a8*;sHjVH(Jl}1^7CSq z>`uFBFO1b^Atm=a@_1v~z1qnqV?6@B7RNkHm+#}hrHQFq%}~6dQ-_k%jw3m9K`cio zrAz&hL+oJ((ZhBIw%EQ*(Z)}#V}WB;Xx{kuw_2o|JGjlt;(hBwbFna$qD%p<*TV+% z7!c0TfZB`15{Bfqn{UJGDS|6-9Y4f55sUn5(aue`H~=2RBXB>#UmOvap+O&v;41*h z+6omIDfOmKb~+G51B@?;AqjBSt0AUzA?%zx$pbR-c4~X-mI%yX3W!M9NUkW%kU(=%0cFX3WNp#IKieRp{mJ!6 zzPTzZGD*IoxvgB;pN1ldPfs2>T+PrK@C$SI`NtZE3AxeP>nWBiJ&W!6IDSa5;Cr?e z^%)F#tu1LjmN@BcJBTMc#&~kRis9#d+%cxX6#J)=oRibwC<*y9I&S7yZ??24S02&Q za{0{C=kYqA@?typy)btcnA9N2J_Eg;;gT9=!)A>su5tUo@Q}J_c{6b=zgAPhk@vRk z7R|n7Katjl#A9hiIIDIqx$?H4Ub~k(v=5C4xB&(vo5S9CI-I?Qb(jfsWn?yKLv+Wiwj^&5C@=0{B%1m|AJto)kRRnzVuc$il zo^IiFs;>i1WO=OMpz|zqwW0H%_xa8BiVwx5bkD;AEr_a5DdDI!fZZ%fwQj1`YDRVpeH}OkC^uyPolpxBASOoQ&gLtV<6Bcu zxA7v%TeBp5ddx@GVwQ34j;_Q7d|kH1(|Xmenso>fM+msaB8q53#6Bw?h*ioBUTEqP zN|1{8_3I8?J4huq{N?}>|KsGHOhlxIp1IAa7h0F{?REMTeYJcvkItCqB8fv8iFJ^{ulrqx0-99YUa`Wdph)2jIFjYU%wDqGpP9_%*1zF&1Erk#M#DVVWSO zOB5#pOi(%Sa``%f6?3G`EmcTk6NUh&}0=t~vI(ODcD+d5l6<(|X!O>xUI zNF-Sw##ne~P*?)4J-Z$(n60U2ALi7FpV1kxKMZxfG)?F=T6Vd-cKE{A;pr(zz{M8) z>QU&phNHFWlLgQ=WS}-rqSUa?gFbn(vT>oWYj!9yLiSu_nL~rL&n&Lj?+uG%%tp_d zZPQ8m@J6NMHliOpN(L&?vq==Ty-`d{_cQ~5-)d%l;ZR8?TJ&J zm@#;ZJhB?L-!SjF3f0^m)0p8~>J-?o5V!{sa6q}V)^kF+hv8Zx;#Xr6%eg$Bh~f$_ zwFo+DS#B;=l_W7f86}mmwB9ts;2jEokW%NUDa{)%QAhkk;l_@0iSx`w{3bQ72~Dqm ze1A7>g~or0_cP5^+foyaP2WY?uNpvgjyOaJFbatq>M*t~3Lq?uEU7G|O?q!=9&V)l zD#_UsCT(C7$yKXi{ayA8`jB7!iyqMus;(yc_JZgOpFx^I-Sn55{ovzoFz4uP=WNgh z$On%~kXVP*cF%5>GUkBOK=1>N>l2#bEYvU2A>GhH;3MY4OiG5`#()^cC& zD}(lko;PnY1s0boRG{U`zx#!a;j<^sJb$#Ek1-JtfK0s8}cMx4GDga9*hQ z^Qdl_Srb$`Gm3ix%Hyn=0a$}XSuGw4knnmh^`Jqfb#yts!s4Ncu}tf&3kpQ z7?V1$A03{sOjeKBk7ZwK$?08+JD}?ITN$k#tl7uk+5cwuCl}zvKQj8~fL;Ao+onnb zaVI9xaXuuk#5TKyHac-dpSd?Qar&xR6n#2zC$AI$N3?AKMXZPT$$QG6KayFgKhc=| zRFO1ySR8@T9ZYh(aAuKwH>}{+k7_;1!yV6=fUGvx4F=%8X&9Rtoe;Yi$d6CdBj4 z5X(0et-lK0yPK7yDHl{ps@@GosDh!xPoiPdq*9!u7}!YdJV$%#qH1`l;`1TR)p3n+ zA-Q|xQ>jw){--#bnH(&PaFVIPq+nyK%9jR;X^ubqs8<_VM8g zy3Wtc&=zim!~t#2okqaTZnlO0X=o=48h9{;%nUsp7j&|+d8~8wi@5} zN&h#^4)hfMMiI3SfaYZry^O!8UiVH?v#0NB;b7B2pwpFzwu_}S=_b=&VH9A3XJJf@ zqroZTv?*({Eg)zk)C2&se}L_q!rVouKs6pS-Z<~JCv>7YyNO{kOE&9`z_jw+9Z|q+ z=a-&DO*W}%ywqKG)31W$83R9`=%e=qo?^O3&nr%I_6<&R5hjPf4;Dt`a+!YAyUC@}5M25J0xYir;lSOT{b2ZM^Jo9N38=2PlCR4Ks|xmqXD$sBnJ&bi-h{ER zw0@wWgV-ZrAgCjtJ`xyWewOU^7nX8_`O=m8F=aRj7=9TYm*_t}t|b_dQ=0L9$<4 zJb^MLrNM_^(`&-D_VwgY``jom<)LsaM>VHM6@8KFqfL3(DVuU;`&G{}jeGN7I*+Go zQg~ffSHkvERLZza+$_kTcv1ZIC09N(sTc9a$Lk%o_-0@a+WKZWJwDIFf|<@VrIbQ1 z>I>6XgVR8tiCf}avP(=j8_UK>1Z5#^NL86&;+w>3C=FiE>_s7~E((a{4a`l|aBVjibMVB37zk)7Q7S)^mq%O6?}uF_T>lIwSnxQ6 zo^`pB*{!Q@&LH&i5u(Vc^e+yBT<5CbtVlhl7Z5e~^J>*o&=*#I|3qaIQy~@k)O1P!N5+9`>QTjy9FDagj zXPlX!FrfWIMnJv>quxj$xu^i7IORuyk1CsX(Bl0qgR^s2J}tfIZiu}S2nk;JkY(%R zAB#R_tTT^>@=}|=8ifS!k)$t%oYEYWx|9{W7@h~fBium{>wAtGT0QE0wxxBL7!O5T zRdHwob+4saRAKY{lB`L-52Xoi519MV{^2wy`LZM)qNO_V$6C&Q|7^NvK0MvpCSiTD zGCXA39+%&;N1g;sMhoVf7F}SQD(N7$lZ6>aA#pK@5f|^^WZFtJR@KDx9BH$mchU0LWN@v(OQI4o%TZ-zHDj~ zj7;#@5Ta?)vQaiguhA^nXlz69)RoSnfKthzl|jN}1l2(Iy!?6wag|2Y)f(COYXjf# z7uGzjLZo;G51IUs?qHIt<~2|9!ngD0hoxGLo7V6@(| zuuq|}{2f`Db6NVHUVQyY(lgn|uakECjdX86{mn?7Wb`UoU+rSk`#&s2D5K9`GRY;M z1!r7lH#;w*X}4~|5tvoBg`*t1WHY$`o}aV0DfTbQ^*veex?L3e`ST7iQr`R%e8U|J zhi|k08Dy;^BO_B>3pMnxGlJ!1Y)0qa*#bS}wVk5>Woi%7(@cQ3SV%sz9lZG$Y1$R> zFDcY@i?0;Vfv=76TbU=QVtG*HRzA;rde(+etJiwea^fdR=CP!pev`+xu>N0!56v3w z1jpL;VSvq9m?nGM2F7SLX!*09uJCA~$0DV zA!H<>rzDY_d2p-0gw=Kbh^XCG=rTGSIJIiSVJ~hC?gEeL8e$sZ^K@*+&pPFUe~El= zCT?XKE+jfXr?kTjHe%c~%_#>Hx$nwXn@}yZfYbf&MUPI4n9&&yC zOj09aPQQKK)D@QwMGE#5Pe~#Yx3M>F=H_vT)p~U==}o;tE)z2R}4d1##KPwcYQT!wUR)zuZzDexcMJ zvb%jP({k(LvX#)Z)pC!}_wZn|G$UoN9)QK$Zs&;U85`YSB+{LK69L!RcPh-U|L|$a zI$y;w{?-tIp3CSh3w*S+Yp#jq->Q-V*V?rbFc{ZLC2zB%@vKckttKcw8f2L+XH5t@ zGaf8E*>PpH!7cH{Dw7&Nws8|2+(M`yM>(ZQGX772-?H&y>~Q zZE*a>-)R29AanrN^#BK%{^7Ti;5zjc#8BuIPrDbm<`V|DxWt0#4i(IY0rv!l*DFul z6^V%5s*MK{b=ZJ8IH6dxP2~xyWJksWZ_ef9d}j(e8rNU4Fn5{Wjzok@I1k3532bgd zmzxTb0c(l|i(N)$nnt)~L`*paA0nf3x(798o9Y~EO!8!`5e6Ed+wZ&T9( zs?wJ!k%+jSKC>|9uhVG8VjK*p0eQWc_bJBQRhu||hnMB#cVJqLExy?^hI%rUTwuJRLn(feW#6|CttVCfjo%H6RkPBv03Afz( z33|D8vNeQ{e!1K}NK;o_Vf%P(s^DVl& zGGM1yoH_9I6Q^*tXPeL8=g@DAy9 zouzm5^z%EfzDg&|BWyK%vEo`8w&B~xvFNb(frLG1q^B1l%U}TVWPEz8>XW0DPZMiB*U$!Q0+2dyAaTdJKD0~;9nMH*fuab@H@SV^LHF{Wf$yG5X z&inPW&e=2KI3qkSvyZk~_l7m@J3MgsUzb_uR%aQ#U9-~|6w9V;pbAr6D6jFk^ z^@keLC3L=q_`_68BbqB|?;;-_vA{|UCx>kxU$%06W1$#14{KI;`5%hTGOo!s3ga6{ zNTVPiEg}fQK)M?Qq>*lVB8I~Q;hG*rVL#C7ZCVjXS!|KjzFqn_R(^Mk~{Vy(tGopn5DJT8Lqbo z!ON=JQatZ3g(p>P^8(6SRVQn|{PFsqi3!oaz;pS%HK>tV1cnb<56)An&#dc2;o2vB ziz1iChJa450#3F%YyH+lGZWt!8@lcj>DBqQWB3A3L_Hi;GF5JWF3wIkVjdOSesmj6 z5UsUeGg_$TrzCDyp1v2F^6Z$*;>d9*-DqT|!Qr`*x0_qjv6>sDGJqZdMlu87@3 zMo6^B>^e-0<^B8j?mU}=a*?VdLHUkkAW13)c-g@t#&xL`(ad3QPc@+Dh-eVS!Lu7< zVYGxJjqB5Zs~_zs0ll$GR2}rru;+zp1XlqYX|Y%1KOO|e9xm@KQ|m?>X-!4U3>$lv zTC-DT8WKlWi$;Ip`NMh7uF9S4*5k-7n9)sufk26N8cw7`B*klr*ZSIhOybM)LLOrb zlzgWS1C?a-skD|WQq1~9MDE+qFpHvd^tH=3EINF?ONyA^X}kh$iR*|j7zhL-(B5W_ zy!$Cf9*-?2(lg9dnq8s(r}(Q0=$Xk~1z~hlEuIOR(F75iU~y`IcF1wz^XD;(`%bj7 zVz;*}EVZgh$(171Ie$Rd>YCR+8$l%p_5~DkKi7`(LbD@-{wdwr~>9g zF@UA-*eteh9EPIq>zC$BES@s)!5FI-Vcn{75H6<{vil3P`fA*j=RYwvMs&OdH#rW` z9`|3+)kujKKIxTczLkelG>L;kI)!6b>O`L^Yl-t&7l`%VAU!$vaN&!%MvF?wQHM47 zg#31lo1&en)q2zATs%#YPlOLW>LV>2zz2cr%Nu%mV) zCJVGCU26zc?Ml>~-FaTu9f3YG#t4^FK3vCSqOLR?t>bMrdg$RR3733-yn|}p3bR^S zZSrcNrY42R)qfdv9_>y=TabfD$o3D>7r{4ikWix6yr=UtNDv5$h0BNM&e=8a7y&g z<6bkr4PqwYTlvsYaL|RJ+4IZ`2b%?#Lx(*LkOL?+ru`T)Yt{DM*K1)S-|r646!ceO zU*_7nF&oM2`ZDq(y`Q_Lc;rLRvn$RnpQ!G1|KAEqj2OP_Ma}QlDFU9; zr?&iBZG1RGdUzd`WW_PCe0YXLR0!{fHuyS_5%_NJ)hxH{V`p_?o3`s+QEgJc0>IYc z`#sv%Tj>Ztw@2@!EA!)q-z_8?#J5J&oM1Rw!qerpel@kXx>LYG8z1f)K@2+oe-!S1 zS;0%>bFtqQ+&-jcYX?EbaIF|yKNo(e$=E_i@MF(xHfb;lP*ozUiUb}96v2U}Qb?v9 z=Gl?C!-1~{JXo3`$%F(2FemrXPudBf+?1*Dk`)!c3^6@0^WJE@V{I~=4*g@hvSP1k zOM3I#yYn=rKC6b06rjTLr{=>zp4gR5yVA_MsFRGXrdBkVf~2#Pb`K^@mihXALYK;J z;_s(sz#2t$wQsM`uMmi`U`b>?V_8O6hU$nZvax1w=RB~e(D(^1i&OIX-Ai(LgGTE$5Byt%qBU--obbcs z0k>=_iA#^&Ski-Z9@#ksz=ThuV7w{mJU@{dB5;7u8dA~goan}Uv`xEgkN3=Nm(CX+ zuv#Bm-PV3|Dcii$sO58HahI{1MQ$Q;H>}`u2V*#2H7~10io1}d`rirdK#h-bwIBb9 z0J0N-%PN66siOil-%-~|qqY3qLQq$of880Vut!Ay`t?iw{d;Cju8za0H6FKVR8T@c zF5+ZVnLrCF$3&1_qEd90PB?_i#FouTXt(4OB6@Xe>9haKG$F5&ZQ}-(P)51Pzux11 zzD5=^w1Cy<1Y(PMtw?g&Bvp=IMSIw%uo_FgIn%)Rvj83)3Ap@4YY{V}JD0=^ z+#edM>7s-X)3LbhxfC^-qQe@TXd$Izv*fKXakL?#)qVbY>Wwi{fF5S4OWRsw*X^?% z|F>U@_C(4ry9IlzJz&wD^F{2&pF(mIp%p<#IJYdnQ=5ek4vSyJSm=V^Ff6%~)6ed$ zt{0mLWLC6#V~e;OUn@tcCk!CWo@Z!D$!eWcmSQ{kU1vMGb5LZ+z4m;ssRb?jPRlXo zUGwiyD>rwGDJ?zsk|!;*=Y0v-$=hAz^WBU|+o1qFgpie578P|GVjcA>OLMYzE}9-f zfB2dH-e^^HpV#^%Pm93H>DI^6jmx|E*r+96*IRO+=9-`OmY@hbqwu74=x##DHGT+Q zp!;O&opD#K?r2$`=WFR#*ZvV*zi?(=Q8ZhYU#09D$@`ys+NjC&YwXiN8xfk0DGn~0 zt4;q2D*vM8gO=cPA?h$eF4uwZRj9te-(c=!5p@_^BU5*K>=xZwBNDCN7$Iiwr5G5+fNECzn7 zHXk{L5q}#pPoWkJPkR)A`)h^5 zj`-0gftL1#vdF_D9=f?M!Z{H(!oFGlY_XoC_BFI6Er)3YYW_%9WBZLXx!SrxLPA0e21Y1LSfr<|IU8Zk0fFIThGnD@ExrzyViWSfZvk4qeruP{87YtOf~#i9<;M)Hxh8uiul zwKSy|Emw7;O*sN3rJRF6d8j@?dyEs;7pSPH8xXTud3Qmx-`_zZhh2zY=%k%EUq`G6 zKIV1e?BYUCZWhwcX*OL+uYq{lc5E&#S$d|*%a(kq?hN0;1>=wk9!|OXjLFlMv*{EkE_iZy4SaMv@Ydc1$b7|4f%h(b(F zk)S76spY1B)%j$lF=vKsqYpSU15M_N)dKsC8bm9PZs^H!)n)g)^|&C| zNzALmtB_K#I`y656hwqe>!VH^f|K@*BwcGI*#X9e$kfac#UKS-k$(lin-MIVAFH=5 zC=yIpF&19M<2JLAIW@S~_!~J1^f`c>NVc2Dt>s1DPE@LWskPk&qK>jfcb~?OmTq>4 zCH1C%ktT2v1METc@B0RY(cu9wr1E@4}8nYv_4q@K82VaQE--iTrEhqBU4@} zthZl-{<26y#>&Rz>1&r&ud-)zbrc#KA(&s#r~Rb#QjiKpFL+#VqeK4y2|XXuftf7( zNq%PCDbXCe^-}LcY z)iTffoCP#wCE@+*?jl{e3GD_5RE>>?lli+9f5_Zku{o)7^_^JBT8UhCT#yR9>poIl zJjP*S;#~Yh&Fym3Yv#GvdSBwe?InFpX~yG{tXuic$f~qgYRtni7BlGK2kluP2XV_z z!awYX6M_ux`kgSbPdoM=}JSmp=q<}g$aGfcp1TS9k*Q>5? zc*WGr%m>lAd;#r|sDvVPf#YtHFJOq{qDhB$cyW z=s47s>|3pE)I((4iisGX-~8CLlU>^H%QvR}J83=aXU_`%fmdcG?ss44b7Fp2SJ=P> zMn09^%w%01%L9x+WBS(k2gb66(QMmCYyMR(=ysjE+Nc7SprG0$Ng7Gj^3t5&4*!!~ zfFqCS+41mQE0PS=Q8GbbfUYZ0jbV6zw_7~X<cOFE&3nNy07rjt|KUPrc+YQpLfN-i->>fWt^dVzP!Gx!)nDZa-Ye$*__K6P(on(#0f zmsd>D+IDnlisAaf_fSfE$QN&*e75qtD{yUG+RD6pb=BwQ+REpIDspJq&BHO8T%)_w zS*OSSQZMrPqo#CRcelEn^U9~2H@RWDZi10rk==Lk%^ISTeN31U{gTYERn<{}Ad^8M zvr_H=QF`}a4~G*uYF-k2gB#OE5~h1XN|s0KZef45)D>h?yG@Z|wBJ`2O{7+OOq?EpKlma=Y86GlZSXO*v2hLebM|t!J2Qq_Lj=%Shh1aW8M&RJ^uwKNPZgp2X}9xNg2_IQ*MTpFkX; zy94BUTTQzYO0+#nK>OBS?m*0-Cm@@QVEs@#HhXkxzZ73O+%EtA832bl z^0>DeVAI}ghJl~K7wdC>0~a24B>^TrK2B-aNa<4=W4TZTMwcP2@O(xsSD2prgaVX+ zUx3<9`gIXbFYhpd?#}0`2(GG<0MMVY0`g<5xQkdJvaoO$v}-iw+;W6NcHUIV-l?`u zh_Xe)V<}QDrevV$pz*m#kxDyGrn%ehJs32bK}zHE(pUH4%I=XixGmI1y~0PDdAFRU zo8(owIXc7PjpCC8XS04Gr`62K_zgK}Obo36;ndTkNrpfcLLSht5ITFF`=xa9g}^8v zAdQc9FlACXcGu%~l5z{TQX}p$MV~>VIwgJjh=0_WeCT~MnV$_{Nm;4m`j8L#lw z{ZF>1x_hr-i&K(!m-Vh!Qxs2glOO6G8?hcDQgY0dk^S4LWqF!7ALT}^|M?gvpAlZo zLm5i0T@x2EC=^o9YS3spU8HxwUuGg2^ygh2`MUqGi7bxB0(_vTETeEiLBXB;z6Q&0 z+~Q5NE7iRx)R;f;x6t?9M6EyXB)IN*HySSq{nV3rHG>P`h)HXz@sP#z@Z+HMwOnZ| z7&(a|uqp>{zmk-a`*L>m;|oRvcm7?YZj6wM#pGN-Cp+WI2Myzgb|9 zq>p5&?dcvF&Fv-)wh~@2pK8?8yIF4g9&Eg^Cc||gWMZtcqU#gVc0YnRzroFwLN^R8 z*H%~Gdm~w77Bs87UyY3IH;-&>){ZVFq%KC?>VAfPj5FqIIH^V87~HX!f!BfhLis`V z)G+EZzy$ledpNu8aEAG`qM8)Xtac(NHlj&2Ldff-k4R9i`*NlTt+CCPr-1!L?Zz(oy>1=t@3wb*Uz(6uU6W z50(R~a^lCV3=G)pZsvHJYZh!fs!VP0<-;#2A9Xp*F_LaG5Al#q`C14XbWtYWQ;>iE z$&lvqpT!fQiUWMmNr>gyK~LoUjq!n;3Zmhsf&})60X33>zOYpi`5Mq@H;C=<`iODv z@RKxo-9#wL-2H?SlQo(KJ1v@{WDK=(`k#q}4>;AAjpfIfwJ46>m@3 zAHua&U7Y*sUh4^0U=N+U_dTh&^sH7)#=`g2kIW)c)?Go1?nT$4@{GnSPm&hVulu zwL?4Eh!_E_geY)xNq|;9`+J6SJ17=!lxS|^yY!VbV=@|;Ic%LzSc;xxe{b_HIKn3I z^Oa7q=BEHmS8cLPHUEkcc3?t%vVb`HU3nvQ0j2#V$N+KBU_hC%f3X0D4-NOQgtSUjT?=&O!3sMx5E|XFdcMKOTdddxCnm zlpx;Z7wXeJvy`KT6@ong1U(J1sf#VfgUrVJ7_ssg7x?H50-gr!p7FTdAAfAV!J2PM z)h-uMc)FRic0>~VkAs($}Pe|jow9Kz#-2J)-j3HTV8#`7d z{radF3ug$j_=}$;>_ZwyCztUd4e!dqmL)-WAty7%yL<2w(Kwha*MZ#xAgFL;(4pC3 zD6SDSg|aivf~-V;0vmf;n?fpQgQ|6SqX6E()SnC#I5^WEq*f^KSa5fI>nZm1B#iS% z)srAF>=M6yDTbRO^9=;X`2#n4V{k0oUu~}L5c^?vR$J|LPq&Qk#v69ce(R1CSI|*+ zC&SW^6!|?q`mmx>DuaFH8J`=C8P59Dv*QPZ`J(kk@@ty!Jla+-kj!Z|o(ZraarzF> zp7-CKqh)#=9-&kF1V2SHjs~8HtbeRUlk72L&`|esqj#I@dDqo0FXaq0R7W>CA|_4- zNOKBxXS+vcDJBNWtt-scDkTk73e)aazj;(E5y*Ev_jc0weCc;ea>g?LwfjPlu8_G#!a6G%Uu86!qqQ(8ih^W=0s_dR)f1wb>j=$d3h-|tWkj%2Y0RBG%a#WrtMah z9=qq~l-@YOoefUs<&*6XrhNF+DGzOY0WKh0a&>tXM9a^@_1*E7sE4!_p>C9{{inV~ z*6G7w%)9@YimB%IV8)U{X=uf;>e)swDXPQgDsSOhm=|X*kmI6rs^v?lJcdZ7o%ngWOwd_ z=fw>Rig$vu0A#4z4N*}__5>z+>77<@p#l@v;`dzK{@ zWV`#@Z9hF}+YY%CMR=IA@!7a3pK~#B*w!wsQ_dC}#Cxap2ifHowRn58ke(4XHU~99 zbU~8GX}X2hjhWkDoU?R9!S3N05w&ALWrAW{1BpWXuN&{*ssPUs7kGgR)>VTmnP}d= z-tw2|%^sUqq2mlsS1bOdiLXZIN5p%8EMfQQus_?hsUkrg)c*`?jf>xq;#ik=F|oLt zu8|{mIApI$eEfcq*>}794N&?rY(|haEs&n$Ck~?|(l!-=-@k2YZ*o^vgM*rq{LP8# z4vqsbX+Bm*yz?t2b1)HqGT)xj2rH{;=9MBdoXyHaJ)YmtKX4X-_mZ%VJ4>Wb1cg=t zOT4I4B;|vR=tn+>nk-3)Y@8Wr?`4xMR8BncKYMnG)=3`ayC=;c$G&`Kxb(T-2 zImwfSRBrd_z4Jy^-~pc8)mjriwtZY<lSwD9p=Ca6zdam>)6(TYI@Qxf0XrJj6y& z8Nv1?SN?Xk4EmQLG*w;9=(hy4Uyk}W(-hh8CTzE=PkrJP$?vZI4!$BVw;%&gsg7jO z*LLRt5s^5)q4$#fu_a}jV`{Hl%F+I^AsS+vQwx$S$-^e2|~C8}6)l=Q0ShE+ipW z<)e#h4TgU^ubZ`fQtdBw%|G-UeMNvsPe&0{)ZG$&`R`Wr=`!86EFtCGW}R`HFKWNn zj_Wzt0U0?P)ua=rZk%0+O7kK5zRCk${ z7=6h%7uVYcJTu_yHWG3_3kkZ__Y)Du6%bEQ!*z)BznF&i*>pkqavrZ;@m^0T{TeCF^lW~o_1ul0Zf zc3Kz=-BwY@IYzl}`MNhDwy%zKy#@GfRE`X7DxSbXkYenfsP_uwn?-k=cK)pBP#!-7 zGge1=QYFYN@VmjV4T-^sqDKK!9lFbO*U0lYK8q7GAD;sq0)Af(Fg9R;bhFMls5Q9~ z35c0Aa5U=pBrYGM+-Thm_#!6qmk#MU{1H$q>%6j6!iuUq0NOY*_5}{*Wp}_oRxK|{ zqXg= z)SIZ&@C|4t8EC79Aa1QpL_{f@pf{A4BUuHRFkJu4lb{QccJA-$*Oa_lMu)*EGlXf?& z-x&i(KvByx?hyX3N`q?_{6o{K1@`;0{QVnFyyaS zZ<5?N8MmLSs_#{QJPS*2&gzhlX#QS~S< zfnf7xF$LOAhOlq$T1**hVOsB$Z*xG|%@s9NXk~tY`VV&QJ#5lv@(}M06JujUh26ra zSnd+`B-PtB*-<`C*Q($3)o2sI(H~3Y4Ile4=L8l*JPp+X2&_Kw`>&ahR#x@6odx*s zsNNC>=bBS2NoUYseej%=efEoTj(61nLzMv6M}}an%H5r+yq9#4a4wQ}lyrtNj;tvN zX#Wt>i8dFTv^}!EFHLUy0aCdpX_^gs*2nV>U<~l)AKLU#Rc8qyIlvzybD|kG4y0+k z$o(`Fou=CNZSNgsm&Zr&(Aj<%kvOuj!v1(zW%E_`X>tDYKK2WEgRdVc=w+9_lU}Y# zMMJIhEe`;id0i2Gezkq|4>Ut5xk$s(ca4REKzFeUi~9M8p4v`Jg=Gi zLU>M?N)Ale6l##rm!+x1&^twxlh=0Lu78S~&nyXvKSJ|1q%0W@faNf$w^tEw?zHGl~1`M(Qk3bwD3K znAOYLAZW_qCm3)K;HbEnrPrJmk-{R}IQklbTVs{w5)kOHOhVYp?pqUD(Wl678B2@E z*cx4sH=W|B{3X^$qQI=UB0+jS@p4f(u;FN5eF0r=Qjf4O)caCeTah{>_A?`$NK!>^WtVfm3n&65y9^pB!^%?V^(fJNRB zhJNWzXyx=i#Fm{A=s3s$f4Hh*LCNfIx92fRVcAf6b$n zg7`i%6N)%8??~6@s;}Iib>2i$^_#5*>6=19dm2-GgKM({3JUU{I*n-YMcY!_9|7TL zaa};lR|{_lr&8j5)xRi(wRhwMi$+zJtyGWRNftN1WAJC^YS5QZ2;)yyxP~=&PtvE} z=m2RxoF3TMkXtjM8HX%NZIes#`6_s9=^ZT{Z%(@d=_e5>^a~PK`{1o6QN}b2Vp72= zD0`QZRTA8`nFKdx0X0XgdwU%&B_f<5_dy8s9A4`gPD(@CCpV{5Z~*A`f2I%odu)~X z%Xw1;!D`=GasHjnDA&jje%~7b$;VNnZ}t4yMPj+2gpnP@pTmv0F33UJA zPUI*)3po@!j;hZmL|r+Kapk7d)&A$5i=hLQ4VE`R(HnWZunDE@^1Evlvq}<7&()w4 z90WcYcTS)1#k$frbiw0HFbYY+w*pPty!4$Qy3Bk;E2k$Oec&d{DN-M* z#V#Ta618o(`rnuuS=9GSl5;frEap>Lhr*KeF2>cGFZElBW)9FRGt;?$Y_k4OzI;a+ z2gpOgzfXyzB*pWJfC2z44$nty08mLL?eAt5*nInpVWm8s;p&@3%gbOG(WUt~V>kZ} z>1J?9dWmG(M;eoPwtM=A1K|wF}j-mEdm1Ddpf{S41aO z>QflVlp6zd`Q1+Z)fdUULxA4FOK``5v#^1ablls)yWka|7m9dgNgz467%$*)SQ?Kc z@PKlxC1da#^7j!Sr(28#LdT1*xe87RKl&I- z51lQ@-QArZLa^s-zVUcMpf_1>B_U)Aw6MUS0FOJtR5vvz!JG99;q=D}B!c8t@W(gq zQxUXT>-!O`FK#=vR&v)^L%;3Qq~x>&>Z4g?3o3NLw}U>9U0r95}%j>%L(Bu#;$$lunxXN&fcx(?Xw6rnjZa zitIYY#vr3GgjRG;xg<#di0@LKd4EEaFhI^Ac>MY9o?#qIfo5q%BK8q1azUZmIkWk} zihc9-!FmhT(aX9UTHH|bJONvSBV{GF{a_8R@(e$3F`vM3BRyg?6BkISj9xY}kC>+7{Ykjkrp$#<`b1B^JZF469l zQx}p%&4w5~jHBrG=SK=94za~)2tDZC1_ds-Pr8=x6S0^MCh_(L?|yuv@+uhET%rv$ zawJ`6Zrx|(HQTH^apylb0rqTB{%aWu-8XwF9cycfSM&dGzzBRy&IoIrELESfc0Glw-<&yTD+ zUach;a>ea!Cx*t?Z-RvuFX=He^vjUA7X`g%m^C)f7iV{A>-C_iRTY5FP`3+Zhl5f2 z`VZpPAyr`|0{D`PDpaaUw1-nJT|6OF1n8@R`awn5Py5?AhxVOyIG$yIgk&7X5Kh?u zlUnNf;5fJ>AY(F-ZC(7_P73l4&1YS5*^hK)7nkYd>05Ie)U^655p_NmjoZPTS_12e zB4&BC-+^+9K0&3=lyb3<4EKPJU1mTn`ayEy)}}A9+b={=(2+L`TP}>FRHOVz&Z(_F zZP`!6hus8X#&1;f>#s+SpF~C6Z*3NuojUEGW*u*+!bw_Vk7CX=-vdgYC)q6^qDqnu z3lSr7)=Mk1lMqEb$j|VDIK@U|lj>TLHdpJrUa9jmEMB2D^i@PMcmFRH|G2S%(v@xM@InKCf%_Lrv51piKSsz)v>i}hF*?c0QQGF6Ik z%fDCGe6Q_!bJe`4)`J=xgZ3H4=|CvKPRLdNx;PkfcrA6^bKZ#f)GjnTKrw^K?1j?_sOdeZ*o{2Ezfk(V9p(7;PD^C?L=yq8d=WFwo0Hja* z1*QA>A6M4hE!x^+)e*`5@w@-`5y*@j*G=<-6Mkt9qr{lLxK>G0hNaUH+|--Ro#p5L zQlYk&lT*Edm&OcY>|LA;gvc*UQ#Yf8{C-2<52(tuQyf?FHpz-91bnixgyYIHTB0GT z%6dicp)LNE_MdPs)Ea`D!=#o^b=~g?Iy^MMeK}H#f}eJ&5MYBs1Pf~S|5TX^d{%1d z0u25??TnFBz7ntJ{Ay&RmyC0MeE&rSS!Oxj@{iPY{h_@h1O(1p2{=a z&^Qsno-_Rm$02qp1ia7q9!UF9_c<)u8ek)|u;I*G9LpoH`$nwh#UT#4^}jp)er(LE zC)3YGH`l981Td4}0T%(_$$h9B3uMvFXMR{a0=fFJw46295y8FCRQ8LY#uu?b7&EeD zEvrX1LNlDFF^bL7g|)|n4u{^YE0Jg=)51qtUs1q2OOj|-M zuIC76U$S^txEvF-WbaJc?Bpl4qdFpiHYGi`{r@2JggK0Hjt}#*2n*nJ7SEwimnqs~(yG7x zZjf-Mj%mL3F@~k%6h$VCBweuu%k69>N*!|VrNq8z@>vs?U0#zMqPVWS1TYNyn(~Sv(!NuhfYDC%z$!*mA5IiN>?4Q$s?ctD>uXBizn&e zuE$D_ICM{J5&Up2(xMHzMWI^Y9CUmn7Hv8Qv--71!!pD4F z+7O^+;p8OFz4}pD9wFj(wO_gm*MsLqX2^luKq4u?oz4)f^i;YMr!g7^<8j;jn@M%+ z^Zd;Fn~|G>-(`tRW1ONtZ_f_x(~>sUc#XMuAV6+oFQ$ z+@XsUwS)_QkR8^+vfSf_dD~%aSVHs)k|fY|O0ehdcP)ZuahaZG3kCp6F9do1IqwTc)(#5rF|1on9~=cRNwS`@^m&cMPAGzZ$tcI4X-uNHj5$ zXuhuqzR7cY@hRvG*&w!P`_1SC5tU`1(|2T`@^lyMetzGrAEP^l>wgv)Q;57D4!~O7 zRxS7CXDsPCyW9#%A`7qqc(&a>zcCPdx{%04GRb28#l}Q*(zWk4`x+Y&q3kjyP3(^M^}Ddu~R3NMrRdagoi1;fos9% zb#$(;Ybj_Qo`H%&8G$lVGj|vPa*tmtJj>KkgEziaIoVEVW?&O4Ztjw1VIkfB5pX@2 z?P=2f(P!r<^WK>LL^;1&0Y$HnDg>o_a_sn^p-0S)AhrOopyHtF#R{5EM815G5fsUF ze6y4HC@k%)V`|hGA=Y}|_+f1E?;yhI*0#CaM*l4b3sP*UyNRj=(B{aDd&LH@i!(|V z4u?QvSnOE`AL;JTr*m=Ey$DL)a)2#4F^eyQucw{jvFpa+)Nxx&RZu8T`6vs{)}^0@yR zFx8*YOGc*(tmW|g5+2wUGM-&|D1`6T4pk`TdQY1AJX$@H%`0H~#o6I8EE2OHt3KnS z6D(!FR}W z+*W9PXzQOi$!+qbmkhF=+cDu|gT!0f8~)wx8EeJP``6=$o13QV=v8nW_U?U0nVm~H z@^%q2*@-T$F~?{Bg zZgv_mhg-W>+rLL-)dz!C=E<}QO5_Lfzbq|2Fz%;mgs_Ngw+Zq%3i~GAv@i2uq6eC6 z8g<(3Sp#LuWC}DF^aIAhx&)GbwLNaW_Stbpzi05{lH}f2H;k4oyK`N+BYJgv3z`|D zzM_EU@o?$=N+vl+l}ZH#>@Rp%+okUF=qZ3NKyTP8`zmt~lS@Ai#LnD7;G&dyJ)1KE zz{qK87*yI1!EKy(>2GY{opE39xY=0#vP7{@K*>hOyd{+a%mexRb14N{g8XAUziyxr zECg1ljyONNV!K>NO;JA0u2A^Myg}R;+!0DZZ24Le<|doDqK*woR}AuMC^s1BG=9&V z#QJ44a_HM}ks5Rcmu%mj7r3>01y-EOEr5z^2QoKmPhA4~9}1le zP_+BYc$Zt2o}b@g#3a2uxI4G=6?oZV!qdau-%vc`1J1v6j49aZ7X8$D3w14cl*WkH zzQpsH71DA>H^}14&bEDz_x8heq3@aU+bHf86s;C;lQrG}zdrLhiFpwv*@t}r3bZ0G z^YX1A#d)1!nAMy^D{>F3yLTFwFn61={&_aPSL#Wn!D(ONYIT&?_<~Mzw3E_Q{@r>f z{|JFcXU?%oZv(YEi=QH~r{rHXti>OW0051DSTi*i2Whd{_H6h#57q5xfSJA#{bOah z=hhL_!YK^illWR*>l3_SmrBFPYxh!jE$n4#Lb$4mKBzz;A*uAUl@sK3L$CXE1EiYr zhqB6}_NhR`f-d!$kWKGX*D5%QbWI0~zxh1uoAB>m6nTjLK6G+uvO(an_a^v^Iex&a zi&ixI9fM1(MyK21RoF>jpg&TU;4CheqFhG|c*<_vI8RJ7uj0jbhv%zZjLh)+%Sit- zl6);PIQyXAna6G50)5vha84%h0Y+{10(=+YL;zJf5Rr6bI9Q1(lk;L<$jj43e_ofJ z5(V@xhfHcPU9O^=#z+@8Sk=|H2-qEjj&F{l#En4PkJ>D<2`mL8P<63b(o;7f%;YfyN@2Wx_mTpfZS zFBG+ENKK!01jdZyG;Lx=Et&}XGJwut>y-TV|1WyAMk#t&tSrhDZKdFWnSkD97auz! zU9P_wG0TtPGM!B4?s@e)fRb73F#ys2O16vE8jbOhz_K%9m+1)AUS|x5tySpDQ8~2R zE=Jrj9C6(34{dhb8BNZByrfBwXfm@a9N z!FEGwI!Xc~^pJsoEyN&D3_2Eof&*AQrxFv;*7*eSt9FHb@8J|B2dRmfT(ZSuqu`1D z!#_=uH%YcuAkUwv5>%SxR_4d@O0gdUs6DpZK1&|T30}Jf_d>IcuiZG4qn>0!+kF0~ zB;<~QhKT4s;GGL;O$SSiR#{Dt8$VSJtv5K{Q=L+}S<38$gJpVJh^UGqw>LeQaSkou z6Yj8~JYiTTeT-|9JoUaMe7?O&%+F|z|GQ9K4of^K&(~pHk)3;1%AJ(EXdrYB-u@WC z6bw`5W4XKo>kA3R)T~HkHS^s7sZP<;w_)OqVnS}SX0KJ;)vO&By~0%_Bs1upoX9D> z(;~S(Vw)yAvk6;##(-6Ec+p~>4~6v?u#O9 zPf6Nep~R`*;Q)dEAqbkUaoPa+4ulV;mCBKZ#do78@Zc3_QEA1<1VF?eU_pn6jaLYI z#1IeFAb)94gFQ`!aVtwY_^`C`O?U-V&vt2=V;9(ZDP}`z3p4t6F(}TS-ZIPMaFs#m z5OlNJ;UTs5r`v9)U>vsd9J4*^o@0q?Av)LBr6XWI-3{^w1Ki>;%`zyLkL_bYZwz|3 zvs-1pyN_qx3}szv3#tP&MH6?wV?bpiiG>hNM3*jGbdplZq7CO#SqlNwH?T9SEFv)! z;=@oko&lhlXdhr>FK0ZG4#w{Wi~}A~s?d%?;wuzEe+hMtGwW10kQHUAPfy2M%tLdpUmg zC@9QznsoodYjSoeFodnfvgr}eRc+8F>=jks{DGBHew3*H%QCx1D4<6!KS93WqPzk+ zWyDzO`p$$XxvnxP=dD zn-~zwpF>7-iu3O7dmiKd%mn!KC z5amZN!rL3dnayDaYOSEsNk?o?mHTNfEau_>u9|2SQ@8H2@-rjX`&^VUL?Vy<1%*5W z__*YAwQ{6GW0hZvN7psAr2K@x;vn^L`v<^u+NWyoR*IBwbOE9xzYYQD-e7S&65te4 z1sE^P-PWHTcJ#2i5#Qatp_K#wf~HQsZOn!ij5J;09vOq!=ADx*%Mo&}e2|JXMT!lP zCY9S=%nB@qB| z_aJTiCybIx}KDw~(>6-Z+*?sR9KJPYyq*j%hzvubh&>A6J7AFgDuGw6AlM#@g~Y0 zvS;wbszO&UG0NAB5b_vAb79v|NK7qt|JNDmq_I^oL8ncd{fL|7-XISd;c;w zw-54j!jAe}CvrW@8S~c5F-C3)inHa( zE}Fu(W4LDS5L=HZRdAP4Qg#@Ujt9J^5&`tFFGQ1u2ylq-U=7dRX3Kwdr27Ck^ z&iN%Pr|8h)`MS@4Aqt>%hmmxRy?zll2!3Nl>ldaGF~Nn?$!KJjHICJcU1fX8Tp*Bs zSykL|yrW)Ipi)n1bSB`W`LX%m^I%NrQMeg3XDHRD@4(NWexI+&lKW=IL6}(E}^rTHlw$)Y=LE}D#qf4Hd zxzLGIlBZAx^(d|1@z+&_&AQHU3@h~2KYNC?lrbW1`wK0uhXJ?4k_1?Q)`&KT7NWen zIQzZ9>zr8iwLk*rN`mLg<{5w)656JN7^BG9WiB`ivnsXcBzzd4ASGEx`vLNMtx{#Cn}p$^pGo+N|8 zsqIx+H+p$$Vc-kU0nHvzBYPMTm0F|y(mP{GuQ}_(j54Y+3csGbkmQG31$m-&A}0Ih?SZ0`{hGNUMJ1^1~tFV;ofW6DhF76_tQ<-K7X3dDB)FnX7n({RVkbK~gGw~` zB$a&B4zZWbT;{9l} zp@wS7&9#h-7#Tsp+n5xwEXYU9;e%b53$$=FH?;6&E|<4h2~BU)Yt(pRzFF~m0qq11 z3|r@J@mC&}(G}p!RlzDjZF2>*=Q1e(owcnVQGfTI2-P@k?ERb3!QaBqJk(vJj0ME1 zzPI%i{NGeBQ3a+n#d|n#8BGv(HL;41i#`m^`&!@|p8o#E9Rj;|G?(v~Oz{mtz`y7Isr>rGh6Q{VQt*d?o_>y2$sZ<|Y#fn`ki)?6E+#iHMQELRyq6Ag-)<9YJv?$hC+IJMb0gH zLq4M{G~>5BYFBt$i;hkxS{|G`4%1x6f-F!Ue{Tyx$u6~wuWGlx!>+ySdsqgrL}k)b z?yaZw)5RYpF#pA@$Ig#ffX?)r)`Xh_5*!jC7co5HuK0Azv+c*XZ#zK;5?!`P-TNq1 zqW=Ux_Mi4CoQW~z{UgzniJa#{WbUxUsXac(Sl`WYj;s7f^2zGRE+0=1ug#RlH#i5Y zY0>uZ2*S+=bQeT?M1bljuN#kH8zL={L$=IBenqbHp~lwo-Wa1mX}7)lq`B1 z9uvh*q7W+IPp|x=Ofhh@GKLhw1oez(!bYN)Lw6IwdOYp2IgYp=~PtJh_-ymt3s~3CZ#4MJA~h!hUB|nATZ%k zX??mj;m&OK?98zhz*h9l*2Q)C$ZTH7IK~ty4aby>5#23z<|IGn5B&|>a>GFKZtW-# zx~A{ru6{_+U>S2a^cKFw4o%N?Ma!zK_hS?;-+hX!>NPN%XuQdJHTpz#W=U!#ehkjM zk4K~X(>h=Zkft)Mp~i}Esy9+xT*&qvDU;9nc_bQ{j8kR9P%anNDMhV+sm-d=)e%tQ zgYL`ufv)JiWN9p9Q`(bDCD7xh>~%Kh;C!v-IM?cBUB_QD^V;dQ4$0?gMpJS;wbyj^y5x4J>i&RcDV~>) zH}QAphu{3t((XCh3b?>YX$nVNRf_n2*$4ms#540hsJrXw zzIUj^0L6)t4F+lH31Gc`92M8X~a7XVZCV7QWs>|7{Jc4TkP(P$3yxTSb8;Ri| z-N`tng2*}a5~%=MPwZHa!F9Xwr|29F-zO_`A+_&OypfPw9wFT#0d4Vs+9Vg{=F0Fq z>%8jWy8~X|+AaSke48^ov;on+8q1TuY^2+wq<$a6vc1oBM!L`#;{S z=#}Lfknef?u-0GhbBw^X9_w3TH8uAemnpiCLAMg#{>Y6>hD*%9CW4%g8EyP=$w@Zt zpXRR!FECBkdaiYAFa_uO?t0t$(#@uwwjzP}BQus3uvv2Bu*1J$wweS1GBxUW7=*ng zZU1gCx;gAD?QI6&QkO&5T6?yp3A*m#DznW%Ov1#>DpyPV%gd87-*s(ez%@*KXUEfb z?CKfU!`dp)Cy|h@(Dknp!8bXuQ*-OJ#4=3gxr@h~!q-dR|KUjxb;=dbVSn73lWqbs zRLj5m{HP?=fFxy388%r`bvQ`-oc+hJ3+XXw%HOXf+wXO-Y0`;=V||39G@n|0u}*SH z`5#cwq|1h+k?HUd7#T1JFKB9rBqym!7_+s1Uy#;shM>P@$j*oJoDYpLR^Wl1bd3aY z$@jQ=7RLC``yH&DIdm?ITm=jOSKcMJ#Vbo4X2?>J77J(BT{(su4UL7;5TSYM=K2Sr z)@B^{&5GoZ*fCJ&M#}N$UF9xMY2NA}uRFnG>uH-gzUQp%!WIN6gPguOEReusqNdR3 z@#jUXmZmN#-0xBYwT(qt8gI_rkdWpbCb0(Dr6i6afu){yMQEw=q`A*uaGNVc+3EpZ zlirr=X4TRt);b7DYrQYIr?+c?Q|UB^(G0=S)Y?W=q|97G$X-+yHJv!2z)qo##e`@cFoY2Oy!{9Q@yt{D@=A=rs)s!loN`1k zI=eZxh{BsY`dKT|y<^OV=vsRIp1)SmTt6gM*d6`{*Re-T;-88OXC3zG6Og-un*c8Y z?b)Y3y35YvKWt4RdA-*i9Y3YXga%QuD|hn@wuDZVFay;A+BuKIQgH0%8ur7$i1Yi* z&NdyNTT-Qh$Hw1Ecuy*r6IqkbfC-N35Vvz&i-Yg4bV;jGId3BgMf~+;SyD=KHa}Aj zuN7yMCB8$oywA>mPniRK$@g`;&sBXLGCkLN6-j)#TA^wf?IY_nv!KudPE3{;wPwkG zlfpwS`=;Kb+#SAu)lVBd!*o|TkvS2d0|jlw}A_xqRv{bAux-Z=(Fmiv-+9 zVCQRcVZi*@g~UsxLh5KZ0l;Dpb1u@b72Z0V2<$+_l{`Xhs6!q?VF}jcQ*ipPSI-Lz zDIAZjUYZKTNy|9Q<8112y<2Q7Nlb2$W!}AWyZaC1DgtnOxu%Fyk z01f#YRA)G84Nr@lH6#akfxUJu<=X#)1ABn|VR_MS2bnQPu; zW*rXWL_D+fjbB2hv?LuwbQuYOw=6ph#n<-&s6Pn8MIt-kR2Wx{$!1%np7poC@$t2T z^HHr0xvZLZL>WuAyNnrDd5oW?JTLq}viqFfD`YLyLi${Lm=q+5q7(jP2p*YO(GmsG zO^za?u6PHmpk6_fl>{mIN{)bHmMlWcpZd1^?@t?fiV_?`@S$JP7syvRVEX~%@-7_m z&B3A{AuOsCY@P)|1uDu$wuSjv|&hm&C{5j3!{+^iGXjGeS8^bS&*k4ye~DVZ!7mQU;q(i_NbfhS{rj%a`>U zFY_%r3Hvo;-I`pO51jsU{E*)2KoeH(e051*afQb?83sf6zO{?e5OO^OszhrsAmK0o zNw>&Z97Z^SmEEcK^YTJ!*sgZyW7sHr)$t2M05myIH6eYQ31cp!Y2Sk7;XK%NqH!{d ze>Dz%d;4o_owd1O5mayz)VmX-r4!kMGjkmNceZOJ&;tvMrYv%J+N zbl}l;Mv@ICE>7zmbX25qz4v4Hc{qRPq}UR38kkx-%=arZ(~ z$MCsM0Z%91bBMRoBOFn&?2KJ5vk=?`g6| zzMU==PXslS$&5`3FAFHPkUOY7WG>vEgS&J0qsI4FC+kx1o=AlC>z;%PHgWGX;XuJluMfS$0 zYA7NKE(>rH3rDysyqq)=d~N&|wyx~PE%aBiQszwnCB8Pat{QKffVC!@j^Xzes*6(3 z@toi=cw*bc5PB{mQ}35%Xso4Y2H=rFWU#6*Sv2LYA-sTGo6rnZ(@aP-w3;puV6%zO zYR8eB&K1T5(+|tfi;3MT`gy`Cq6-EcoBeNvY#NURzZMo+>9+D>3K zfcdb*fMV{&Q@lN99VNa2nj=Nsw?0x0nC=u+JMKdQ>LPSd`w`uGqgIoy&O@iRv%+lP zhX<^!W(_e@o&qU7XSF?EdbKm)+ITEF2(H=_ow5faf2OnyY>^3x3|$qram9d_ISc@Q zx%PU+1br?LHlisWUWiV}MH07We9Ol0V0xd8 z16qeSp;ME)T2qKSeh3w-i4;VuikG0_Rh|$P3r8P6CeHlhe7H&fE~sW#WsZFE!^^%t z*bummyDCeRs|}RC!nKiiDYwgVaTkvgDiiG#^ED{x(O~T^GLcONFwA+*79<@?0$U-jb%XYuCFEGFGWIq&(u0z_ zI24!K`rvG-t^EQCuc94Pyyx>)ai`UN`>64>MToSmiX2tvB6boTi&E~%(+^(m@CV{~ zk3-QaK>pPdok6HErEJ!p#DN=fSaz!LYlOI?Np#=&&E`BV=F%H!P_An>21%7@c`~Qn z9^rc9)3J9itg|#<+@KJ@c&W>GNWK}_n)Y!3z4XE%m-J8ubl>%?iHv1A@S{Bpu z=Mi_;nxBwh)E7Zhx+a`MtieNbLNwi~Z_VvODG3XyC7GOIl#sr~1 z_uHPcIrhyz(dW46B5Za8|8l*M*{5Me_w__6mi^p@dE5T5UaqtF`uV?(24lK%1hE3d zZ$t11Glvl!SQV^b#~dD^6&x+Ml%kRv>-y3%NfK?4h;i|DB#ht=BNqy_^UqnX3t2by z_wHE_6R^vLD8K?y&{OExmytCy)u%8Y+>PEZ{x018jn3I^H@^YTb_1yuvMM6I(GUoQ?*ruf8|DlDhhT?!==ZBYoS=e&VR9PFQB{Tz;=@nV0X1+p z4ED?xggFnFhZs+I7A^-0s6YCxxTp^3ORsL8<* zZ|jY~xa-ULmzy3v_%#}ms3TzvUR%Rn^^K8UfhXE1Fe`=;@ssno!0f&35aCtT4dcnr z-Kn!V62jgL8%({AGPXrdJ?OQO8=E{pR-JomJwV4|^AYwgy&&YBD_N~wY=qwXX8dJx zTB=EC*r(Ak3VDz%C5Xdk^8 zM*oXFNk)7llM00!j0|BK#FHcdVtazO)8s2st?K87h?^lu_a}CKEiqdID7l|tt7f^- znr=tk+CWhcI!X%jljDjFl*0Z84r}WnQRW)>tG^oN-G}#{AM~qHA#O`5|6y*8%jIav z`#%Of=Qf`A35blEa(?kcIzMxMA}@M=&aN*e&H7wd#%WFCpAm?=)50anUVdzB83=?> zamn}{&-;BSQm{^l+&?>;D|#O_y?2sZf79#35>~GLq2`^ABX`k3+mMGdnb}7{Co2PP zP_FneeakdIE19(m8uA_FLOM%!vWiViQ^F65Dgvi|lKc1&c{~tz*zqB7Mv?3*ed)Tm_9{Tr2CHfg#a)>X1lpeY%*|}LuDkr6Jfs`Y)%*wY9 z#ZK6(LdDEzurKhd&eZ8so3tJ|^3c5&>Pdbw`{(tQ7P?FXWQ6nYi&&-q@$3&zdG}8j zp;TLO9%6Al-2RHynNRGx)YQ%%1F z1@E=w$XVoFkC@Q<9t7ak2imWJzm1>33p|XBirVsF#Xzrv%Uw=Bu3yF6i?;sIJCoB4 z|AFA3!`#2 z>e?559U3NF>*1td>W;v(p8hK1wFa9ylX-)!PUZ4RvlgxL;>?0iRPvF#LPlt=qwoOG z8Q8f}VpPW-)RCDqHz;SzOdTpJr5%OZ`t%1$YbdNd3LBj5CdZ!T;fZv%=#uJg$6<(^ z2Hp6vhYOuynwuG1bX)%8RbT3^2W@OHfMV_j5yRZrd0pFKne^=DhUWO^^FN6RRfpi* zuFPiQzf`QKG+XQC$~#oM)^GLV3kp*GFP;_y>#z>fxkniI;}_KmXC_e^=gx*cd`tL7 z_A&NoUZr5*RntDZTEfBpWJ?rYA1QN)we{F3Z~9neG!KCHy4QKiE2ir<_Eu9k#{A^) zfyk+98dUlb!_n?t)JB+|RhROm+(FSA_EB(l((l}8+}ccEY|AL+=~JGiTTV$y+pjBG ziz2+#3q~h6gOtH$i2*bv>D(Z^K@;z=&fz+q{BX=DIqHS6@pjesz8#tx8kmgD2}GtI zh7ct$kZ+hKg{tnBmkQ>M45-ox4QajYx`)2v8g2rxnf~Izu;S_!Y9GN%;g~K_fqRkF z*Eb{!*J53o6t=KBX^!t(-~1dG=pJ$|aqKe4s2%k8V%gcZ7CX}e{0Xi^BR~FH=febJ zH?NmE&5lfAfy3VaN7*ShTm5_7s|KiMu1>U=#R=;aK9DBmxtI z-;Mwbvk7}|Sph7_&5l?>jZQoJ%hao_rPp3}0My9{7(o-Plk(iU8h@HnNI9?0wKcgm zMkw2|#&a92hvKVj^6%NCI1PkM-~@f}y#GGM{S}*zSvU6teCa|RXQ@C%VRJy+hJsN5 z6x4G-QSz4$J+%HKN!DFg+?_Xc$a53QA%a0$;FUB@U$C(*bdSg&RD8FXFns2!o74;2 zNcv8t_UX5)_gA%L&bWT!Yy+9A6LBw>iDNQ*Ghl* zw~v5IW1>j)#!y}yUiiNQ3zW%3J~PQ@>0K*uDp0-ICAwI>w=+f~yXmhDaDVN6<&M5B zI2(9ahIPLYO&;D#+Awx-Wq`KwnNA0ux7kY8*qi$So*bTp`1hr|?b`KlpNzj$ebFKU z)M5PBxC@Sf<2RjAhA>!|M7apONH!)cX3psP=p%p#bvR)w$(0NhRn&7qj_^7KSX;`3 zK%&hG9v1J}NuBVb9$)6yuDnQIbng(}LoX~Gf6y_N!mQIAL`NZWIbbO)CQG93M@@-P$J7Je7r46;VQbD{T=(1zFP5(;2v)=A0fO|{d&_=t2y+}VaA&`aV zjK6&*w?WiDH$Pc{RMTeM`XMIrfOrdr2vB zc_WgY(aa+3>8iB&}-F)F`YH(3#qjK{&z%ns-jjLYj7G`;|Fm$1?O{Qk=F&7k{pK&u%U*cr=YNbGG(w z<;qrGm5Z*ynovSVuHLXvKWyJybMOU#8SWduHYB}ZC%zRbuWKg^aq8*?6Q4@y$%P&d zbR$Nt)MzyyPmyK@y3-f1a|bmMS5HdF&S}+f)`sV#nKALo6N7tEJV?Gvh z#fVivdf>Y2zRN(+8$d*$x8ho@(&DwX%FfDQ3yVax;#}$GF<*B<^+xa+(S1xw`cE1U zp4#~;b2U83IvXK94v`0S#17SCA>1GqA~qTO%EYLTAmN+)1#hDGpny=p;;kNx;v)Y^ zgY+Ti`v#<=A+99C9wdJ5q$-wsx(i;xuMx2mtele3DYoneDJ`EdNO)!V`%t_f_kLo0 zH_N{AN0IO+swch-`N+itB{kl*s@ZOS5(?M(3rD1SGhoI!SqpQ%&3CEwoPeGrS_8xi zSfz=Avv4pb#u0oF^0`djI4pj{+{DgRZ?Q&LHg<40e`}h>^mmfPEDeDIL9BZSa9neI ztRU?9r38=?q7jj1OG4`|fOI>;^m%j8b~dw(g+YeT92|&#hC{;Bg|}?d@?UMF6UR;f z{vHD0g#&5dc@M=GV)i<|SQjF@5pA^cex{w~eUbdX=PPX356SOHXT^HC8TC3^(+#

RQ2GY=h0zZ#6;D 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

hrvZMzH+po}QY8!YIR!%Re% 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 aAAo3lE6Y Date: Fri, 8 May 2026 22:56:41 -0300 Subject: [PATCH 02/10] test(bridge): host-side suite covering heap balance + group rewrite m2bridge is the only midi2_cpp class that allocates state on the heap (BridgeState plus one ByteStreamConverter per slot). 11 sub-tests exercise: - construct/begin/destruct heap balance (50x cycle stress) - topology setters honour bounds and lock after begin() - begin() no-ops without downstream/upstream write fns - group rewrite formula base + (in_group % groupsPerSlot) on slots 0/1/3 - feedHostRx ignores out-of-range slot indices - feedHostMidi1Bytes uplifts USB-MIDI 1.0 packets to MT 0x2 UMPs in the slot's first group All seven test executables (the new bridge suite plus device, scaling, flex, conversion, ci, host) compile and run clean under -fsanitize=address,undefined -fno-sanitize-recover=all. --- tests/CMakeLists.txt | 1 + tests/test_midi2_bridge.cpp | 320 ++++++++++++++++++++++++++++++++++++ 2 files changed, 321 insertions(+) create mode 100644 tests/test_midi2_bridge.cpp diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index b6e944d..9415b33 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -19,3 +19,4 @@ add_midi2_cpp_test(test_midi2_flex) add_midi2_cpp_test(test_midi2_conversion) add_midi2_cpp_test(test_midi2_ci) add_midi2_cpp_test(test_midi2_host) +add_midi2_cpp_test(test_midi2_bridge) diff --git a/tests/test_midi2_bridge.cpp b/tests/test_midi2_bridge.cpp new file mode 100644 index 0000000..e264128 --- /dev/null +++ b/tests/test_midi2_bridge.cpp @@ -0,0 +1,320 @@ +// tests/test_midi2_bridge.cpp -- m2bridge smoke + group rewrite + heap balance. +// +// Bridge is the only midi2_cpp class that allocates state on the heap +// (BridgeState in begin's predecessor; ByteStreamConverter slots inside +// begin). Running this suite under ASan + UBSan is what catches the +// allocate-without-free regressions m2bridge could otherwise hide. +#include "test_common.h" +#include "midi2_cpp.h" + +#include +#include + +uint32_t g_captured_tx[CAPTURE_MAX] = {0}; +size_t g_captured_tx_len = 0; +uint32_t g_test_now_ms = 0; + +using namespace midi2; + +// Bridge has its own write-fn signatures (size_t return; upstream is +// slot-aware). Local capture wrappers feed test_common's TX buffer. +static size_t bridge_capture_downstream(const uint32_t* w, size_t n) { + capture_write(w, n); + return n; +} + +static uint8_t g_last_upstream_idx = 0xFF; +static uint32_t g_upstream_tx[CAPTURE_MAX] = {0}; +static size_t g_upstream_tx_len = 0; + +static size_t bridge_capture_upstream(uint8_t idx, const uint32_t* w, size_t n) { + g_last_upstream_idx = idx; + for (size_t i = 0; i < n && g_upstream_tx_len < CAPTURE_MAX; ++i) + g_upstream_tx[g_upstream_tx_len++] = w[i]; + return n; +} + +static void upstream_reset() { + g_last_upstream_idx = 0xFF; + g_upstream_tx_len = 0; + std::memset(g_upstream_tx, 0, sizeof(g_upstream_tx)); +} + +// Helper: build an MT 0x4 NoteOn UMP into a 2-word buffer. +// word0 = 0x4|G|0x9|CH | NN | 0 +// word1 = VEL16 << 16 +static void make_note_on(uint32_t* w, uint8_t group, uint8_t ch, + uint8_t note, uint16_t vel16) { + w[0] = (uint32_t)(0x4u << 28) + | ((uint32_t)(group & 0x0F) << 24) + | (uint32_t)(0x9u << 20) + | ((uint32_t)(ch & 0x0F) << 16) + | ((uint32_t)note << 8); + w[1] = (uint32_t)vel16 << 16; +} + +// --------------------------------------------------------------------- +// Lifecycle +// --------------------------------------------------------------------- + +static void test_bridge_constructs_clean(void) { + TEST("Bridge default-constructs with sane topology defaults"); + m2bridge br; + CHECK_EQ(br.numSlots(), m2bridge::MAX_SLOTS, "numSlots starts at MAX_SLOTS"); + CHECK_EQ(br.groupsPerSlot(), 4u, "groupsPerSlot defaults to 4"); + PASS(); +} + +static void test_bridge_destruct_balanced(void) { + TEST("Bridge construct + begin + destruct is heap-balanced"); + { + m2bridge br; + br.setNumSlots(4); + br.setGroupsPerSlot(4); + br.setDownstreamWriteFn(bridge_capture_downstream); + br.setUpstreamWriteFn(bridge_capture_upstream); + br.setNowFn(test_now_fn); + br.setRngFn([] { return 0xDEADBEEFu; }); + br.begin(); + br.task(); + } // dtor must release BridgeState + 4 ByteStreamConverters. + PASS(); +} + +static void test_bridge_topology_setters_respect_bounds(void) { + TEST("setNumSlots / setGroupsPerSlot reject out-of-range"); + m2bridge br; + uint8_t before_slots = br.numSlots(); + uint8_t before_gps = br.groupsPerSlot(); + + br.setNumSlots(0); // rejected + CHECK_EQ(br.numSlots(), before_slots, "numSlots(0) ignored"); + br.setNumSlots(m2bridge::MAX_SLOTS + 1); // rejected + CHECK_EQ(br.numSlots(), before_slots, "numSlots(>MAX) ignored"); + br.setNumSlots(2); + CHECK_EQ(br.numSlots(), 2u, "numSlots(2) accepted"); + + br.setGroupsPerSlot(0); // rejected + CHECK_EQ(br.groupsPerSlot(), before_gps, "groupsPerSlot(0) ignored"); + br.setGroupsPerSlot(17); // rejected + CHECK_EQ(br.groupsPerSlot(), before_gps, "groupsPerSlot(17) ignored"); + br.setGroupsPerSlot(8); + CHECK_EQ(br.groupsPerSlot(), 8u, "groupsPerSlot(8) accepted"); + PASS(); +} + +static void test_bridge_begin_requires_write_fns(void) { + TEST("Bridge::begin is a no-op when write fns are missing"); + m2bridge br; + // Intentionally do NOT call setDownstreamWriteFn / setUpstreamWriteFn. + br.begin(); + // Topology must remain mutable post-no-op begin (begun stayed false). + br.setNumSlots(3); + CHECK_EQ(br.numSlots(), 3u, "numSlots still mutable after no-op begin"); + PASS(); +} + +static void test_bridge_topology_locks_after_begin(void) { + TEST("Topology setters are locked once begin() succeeds"); + m2bridge br; + br.setNumSlots(4); + br.setGroupsPerSlot(4); + br.setDownstreamWriteFn(bridge_capture_downstream); + br.setUpstreamWriteFn(bridge_capture_upstream); + br.setNowFn(test_now_fn); + br.begin(); + br.setNumSlots(2); // ignored + CHECK_EQ(br.numSlots(), 4u, "numSlots locked at 4 after begin"); + br.setGroupsPerSlot(8); // ignored + CHECK_EQ(br.groupsPerSlot(), 4u, "groupsPerSlot locked at 4 after begin"); + PASS(); +} + +// --------------------------------------------------------------------- +// Group rewrite +// --------------------------------------------------------------------- +// +// Implementation rule (forward_ump_to_pc): +// base = idx * groupsPerSlot +// out_group = base + (in_group % groupsPerSlot) +// +// MT 0x0 / 0xE / 0xF are skipped (utility, reserved, stream). + +static void make_bridge(m2bridge& br) { + br.setNumSlots(4); + br.setGroupsPerSlot(4); + br.setDownstreamWriteFn(bridge_capture_downstream); + br.setUpstreamWriteFn(bridge_capture_upstream); + br.setNowFn(test_now_fn); + br.setRngFn([] { return 0xCAFEBABEu; }); + br.begin(); + br.setDeviceMounted(true); + br.setDeviceAltSetting(1); +} + +// Find a NoteOn (MT 0x4, status 0x9X) in the captured TX. Stream/JR +// traffic from begin/slotSetActive can also land in the buffer, so the +// test scans rather than peeking [0]. +static bool find_first_note_on(uint8_t* out_group) { + for (size_t i = 0; i < g_captured_tx_len; ++i) { + uint8_t mt = (uint8_t)((g_captured_tx[i] >> 28) & 0x0F); + uint8_t status = (uint8_t)((g_captured_tx[i] >> 20) & 0x0F); + if (mt == 0x4 && status == 0x9) { + *out_group = (uint8_t)((g_captured_tx[i] >> 24) & 0x0F); + return true; + } + } + return false; +} + +static void test_bridge_group_rewrite_slot0(void) { + TEST("Group rewrite slot 0 (base=0): in_group 7 -> out_group 3"); + capture_reset(); + upstream_reset(); + m2bridge br; + make_bridge(br); + br.slotSetActive(0, true, 1); + capture_reset(); // discard FB Info / FB Name from slotSetActive + + uint32_t note_on[2]; + make_note_on(note_on, /*group*/ 7, /*ch*/ 0, /*note*/ 60, /*vel16*/ 0xFFFF); + br.feedHostRx(0, note_on, 2); + + uint8_t fwd_group = 0xFF; + CHECK(find_first_note_on(&fwd_group), "NoteOn appears on downstream"); + CHECK_EQ(fwd_group, 3u, "group 7 % 4 = 3, base 0 -> 3"); + PASS(); +} + +static void test_bridge_group_rewrite_slot1(void) { + TEST("Group rewrite slot 1 (base=4): in_group 0 -> out_group 4"); + capture_reset(); + upstream_reset(); + m2bridge br; + make_bridge(br); + br.slotSetActive(1, true, 1); + capture_reset(); + + uint32_t note_on[2]; + make_note_on(note_on, /*group*/ 0, /*ch*/ 5, /*note*/ 64, /*vel16*/ 0x8000); + br.feedHostRx(1, note_on, 2); + + uint8_t fwd_group = 0xFF; + CHECK(find_first_note_on(&fwd_group), "NoteOn appears on downstream"); + CHECK_EQ(fwd_group, 4u, "base 4 + (0 % 4) = 4"); + PASS(); +} + +static void test_bridge_group_rewrite_slot3_max(void) { + TEST("Group rewrite slot 3 (base=12): in_group 11 -> out_group 15"); + capture_reset(); + upstream_reset(); + m2bridge br; + make_bridge(br); + br.slotSetActive(3, true, 1); + capture_reset(); + + uint32_t note_on[2]; + make_note_on(note_on, /*group*/ 11, /*ch*/ 0, /*note*/ 36, /*vel16*/ 0xC000); + br.feedHostRx(3, note_on, 2); + + uint8_t fwd_group = 0xFF; + CHECK(find_first_note_on(&fwd_group), "NoteOn appears on downstream"); + CHECK_EQ(fwd_group, 15u, "base 12 + (11 % 4) = 15"); + PASS(); +} + +static void test_bridge_drops_out_of_range_slot(void) { + TEST("feedHostRx with idx >= numSlots is a no-op"); + capture_reset(); + upstream_reset(); + m2bridge br; + make_bridge(br); + capture_reset(); + + uint32_t note_on[2]; + make_note_on(note_on, 0, 0, 60, 0xFFFF); + br.feedHostRx(/*idx*/ 99, note_on, 2); + + uint8_t fwd_group = 0xFF; + CHECK(!find_first_note_on(&fwd_group), "no NoteOn forwarded for idx 99"); + PASS(); +} + +// --------------------------------------------------------------------- +// MIDI 1.0 byte-stream uplift (alt 0) +// --------------------------------------------------------------------- + +static void test_bridge_midi1_bytes_become_mt2_in_slot_window(void) { + TEST("feedHostMidi1Bytes uplifts USB-MIDI 1.0 packets to MT 0x2 UMPs"); + capture_reset(); + upstream_reset(); + m2bridge br; + make_bridge(br); + br.slotSetActive(2, true, /*alt*/ 0); // legacy upstream + capture_reset(); + + // USB-MIDI 1.0 packet: CIN 0x9 (NoteOn), CN 0, status/data triple. + // base for slot 2 with groupsPerSlot=4 is 8, so the resulting MT 0x2 + // UMP must land in group 8. + const uint8_t pkt[4] = {0x09, 0x90, 0x3C, 0x40}; // ch=0 note=60 vel=64 + br.feedHostMidi1Bytes(2, pkt, sizeof(pkt)); + + bool found = false; + uint8_t group = 0xFF; + for (size_t i = 0; i < g_captured_tx_len; ++i) { + uint8_t mt = (uint8_t)((g_captured_tx[i] >> 28) & 0x0F); + uint8_t status = (uint8_t)((g_captured_tx[i] >> 20) & 0x0F); + if (mt == 0x2 && status == 0x9) { + group = (uint8_t)((g_captured_tx[i] >> 24) & 0x0F); + found = true; + break; + } + } + CHECK(found, "MT 0x2 NoteOn emitted by ByteStreamConverter"); + CHECK_EQ(group, 8u, "MT 0x2 lands in slot 2's first group (= 8)"); + PASS(); +} + +// --------------------------------------------------------------------- +// Stress: heap balance under repeated lifecycles +// --------------------------------------------------------------------- + +static void test_bridge_repeated_construct_destroy(void) { + TEST("50x construct/begin/destroy cycles are heap-balanced"); + for (int i = 0; i < 50; ++i) { + m2bridge br; + br.setNumSlots(4); + br.setGroupsPerSlot(4); + br.setDownstreamWriteFn(bridge_capture_downstream); + br.setUpstreamWriteFn(bridge_capture_upstream); + br.setNowFn(test_now_fn); + br.setRngFn([] { return 0xAAAAAAAAu; }); + br.begin(); + br.task(); + } + PASS(); +} + +// --------------------------------------------------------------------- + +int main(void) { + std::printf("\n[m2bridge]\n"); + + test_bridge_constructs_clean(); + test_bridge_destruct_balanced(); + test_bridge_topology_setters_respect_bounds(); + test_bridge_begin_requires_write_fns(); + test_bridge_topology_locks_after_begin(); + + test_bridge_group_rewrite_slot0(); + test_bridge_group_rewrite_slot1(); + test_bridge_group_rewrite_slot3_max(); + test_bridge_drops_out_of_range_slot(); + + test_bridge_midi1_bytes_become_mt2_in_slot_window(); + + test_bridge_repeated_construct_destroy(); + + REPORT_AND_EXIT(); +} From c52b007535150312096f1f7766b7197fee45b18b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saulo=20Ver=C3=ADssimo?= Date: Fri, 8 May 2026 23:51:02 -0300 Subject: [PATCH 03/10] build(library): declare midi2 as Arduino + PlatformIO dependency library.properties gains depends=midi2 (>=0.3.2) so the Arduino Library Manager auto-installs the midi2 C99 core when a sketch includes midi2_cpp. library.json mirrors the contract for PlatformIO via dependencies."sauloverissimo/midi2": "^0.3.2". paragraph reworded to drop comparisons with other libraries and focus on what midi2_cpp itself ships, plus the embedded board families that have been validated. This is the manifest-side declaration. The follow-up commits will remove the vendored src/midi2.{h,c} and migrate the recipes to pull midi2 externally so the Arduino IDE no longer compiles two copies of the C99 core. --- library.json | 5 ++++- library.properties | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/library.json b/library.json index 6496fad..27eb706 100644 --- a/library.json +++ b/library.json @@ -1,7 +1,7 @@ { "name": "midi2_cpp", "version": "0.1.0", - "description": "C++17 Arduino-style wrapper for MIDI 2.0 on embedded devices. Thin wrapper over the portable midi2 C99 library. Covers UMP, MIDI-CI with Appendix E, Profile, PE Subscribe/Notify, Process Inquiry, Flex Data, Bit Scaling.", + "description": "C++17 Arduino-style wrapper for MIDI 2.0 on embedded devices. Thin wrapper over the portable midi2 C99 library. Covers UMP, MIDI-CI with Appendix E, Profile, PE Subscribe/Notify, Process Inquiry, Flex Data, and Bit Scaling. Targets RP2040, RP2350, Teensy, ESP32 family, nRF52, and SAMD21.", "keywords": "midi, midi2, usb, ump, capability-inquiry, property-exchange, profile", "authors": [ { @@ -18,6 +18,9 @@ "type": "git", "url": "https://github.com/sauloverissimo/midi2_cpp.git" }, + "dependencies": { + "sauloverissimo/midi2": "^0.3.2" + }, "headers": "midi2_cpp.h", "export": { "exclude": ["tests/build/*", "build/*", ".github/*"] diff --git a/library.properties b/library.properties index 1000139..f803703 100644 --- a/library.properties +++ b/library.properties @@ -3,9 +3,9 @@ version=0.1.0 author=Saulo Verissimo maintainer=Saulo Verissimo sentence=C++17 Arduino-style wrapper for MIDI 2.0 on embedded devices. -paragraph=Thin C++ wrapper over the portable midi2 C99 library. Covers UMP transport (M2-104), MIDI-CI with Appendix E (M2-101), Property Exchange Subscribe/Notify, Profile Configuration, Process Inquiry, Flex Data, Bit Scaling (M2-115). For embedded (RP2040, Teensy, ESP32, nRF52). For desktop, see ni-midi2. Complementary to AM_MIDI2.0Lib (different design philosophy). +paragraph=Thin C++ wrapper over the portable midi2 C99 library. Covers UMP transport (M2-104), MIDI-CI with Appendix E (M2-101), Property Exchange Subscribe/Notify, Profile Configuration, Process Inquiry, Flex Data, and Bit Scaling (M2-115). Targets embedded boards (RP2040, RP2350, Teensy, ESP32 family, nRF52, SAMD21). category=Communication url=https://github.com/sauloverissimo/midi2_cpp architectures=* includes=midi2_cpp.h -depends= +depends=midi2 (>=0.3.2) From 945f04172e68a1e334e53aa6d0f5a96e57617f7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saulo=20Ver=C3=ADssimo?= Date: Fri, 8 May 2026 23:54:26 -0300 Subject: [PATCH 04/10] build(cmake): expose midi2 as an external dependency at the root Adds a three-layer fallback at the top of CMakeLists.txt: 1. parent project's target (when midi2_cpp is consumed via add_subdirectory or FetchContent of a parent that already pulled midi2) 2. find_package(midi2 0.3.2 CONFIG) -- system / vcpkg / conan 3. FetchContent_Declare(midi2 GIT_TAG v0.3.2) -- the default src/midi2.c is still part of the midi2_cpp library target for now so the host tests, arduino-cli compile job, and standalone CMake build all keep their single-translation-unit guarantee. The follow-up commits migrate each build system under examples/ to depend on midi2::midi2 directly; the final commit removes the vendored src/midi2.{h,c} and links midi2_cpp against the external target. Verified: cmake configure pulls midi2 v0.3.2, the host suite (7 executables) builds and runs clean. --- CMakeLists.txt | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4a0b587..21587ce 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,7 +6,32 @@ set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) -# Library target +# midi2 C99 core, resolved as an external dependency. +# +# Three-layer fallback: parent project's target -> system install +# (vcpkg / conan / system package) -> FetchContent from GitHub. +# This is the same pattern the midi2 README documents for downstream +# consumers, applied to midi2_cpp itself. +if(NOT TARGET midi2) + find_package(midi2 0.3.2 QUIET CONFIG) + if(NOT midi2_FOUND) + include(FetchContent) + FetchContent_Declare(midi2 + GIT_REPOSITORY https://github.com/sauloverissimo/midi2.git + GIT_TAG v0.3.2 + ) + FetchContent_MakeAvailable(midi2) + endif() +endif() + +# Library target. +# +# src/midi2.c is still compiled here so the host test suite, the +# arduino-cli compile job, and the standalone CMake build all see a +# single coherent translation unit. The recipes under examples/ are +# being migrated to depend on midi2::midi2 directly; once every recipe +# has migrated, src/midi2.{h,c} will be removed and midi2_cpp will +# link against the external midi2 target unconditionally. add_library(midi2_cpp src/midi2.c src/midi2_device.cpp From 572a01f8b25ca70890e8b947ac5fe31dcfad34dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saulo=20Ver=C3=ADssimo?= Date: Fri, 8 May 2026 23:59:46 -0300 Subject: [PATCH 05/10] build(pico-sdk): 8 recipes pull midi2 via FetchContent Drop the local midi2_cpp / midi2_c99 helper libraries that re-listed ${MIDI2_CPP_ROOT}/src/midi2.c as a source. Each Pico SDK recipe now declares the same FetchContent block (NOT TARGET midi2 -> v0.3.2 from GitHub by default; -DMIDI2_LOCAL_PATH overrides for offline builds) and links midi2::midi2 directly. Recipes touched: - rp2040-midi2 - waveshare-rp2040-midi2 - sparkfun-promicro-rp2350-midi2 - waveshare-rp2350-usb-a-midi2 - rp2040-promicro-ump-test-bench - adafruit-feather-rp2040-host-midi2 (keeps midi2_host.cpp local) - adafruit-feather-rp2040-bridge-midi2 (was midi2_c99-only) - waveshare-rp2350-usb-a-bridge-midi2 (was midi2_c99-only) The vendored src/midi2.{h,c} stays in the tree until the remaining build systems (TinyUSB native CMake, ESP-IDF, PlatformIO) follow. --- .../CMakeLists.txt | 23 +++++++++++++++---- .../CMakeLists.txt | 20 +++++++++++++++- examples/rp2040-midi2/CMakeLists.txt | 20 +++++++++++++++- .../CMakeLists.txt | 20 +++++++++++++++- .../CMakeLists.txt | 20 +++++++++++++++- .../waveshare-rp2040-midi2/CMakeLists.txt | 20 +++++++++++++++- .../CMakeLists.txt | 23 +++++++++++++++---- .../CMakeLists.txt | 20 +++++++++++++++- 8 files changed, 150 insertions(+), 16 deletions(-) diff --git a/examples/adafruit-feather-rp2040-bridge-midi2/CMakeLists.txt b/examples/adafruit-feather-rp2040-bridge-midi2/CMakeLists.txt index 3efff2c..47c444d 100644 --- a/examples/adafruit-feather-rp2040-bridge-midi2/CMakeLists.txt +++ b/examples/adafruit-feather-rp2040-bridge-midi2/CMakeLists.txt @@ -71,10 +71,23 @@ pico_sdk_init() # the single .c from the parent library tree to keep the binary lean. # --------------------------------------------------------------------------- set(MIDI2_CPP_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../..") -add_library(midi2_c99 STATIC - ${MIDI2_CPP_ROOT}/src/midi2.c -) -target_include_directories(midi2_c99 PUBLIC ${MIDI2_CPP_ROOT}/src) + +# midi2 C99 core, pulled externally so the recipe shares one source +# of truth with the rest of the ecosystem. Override with +# -DMIDI2_LOCAL_PATH=/path/to/midi2 for offline builds. +include(FetchContent) +if(NOT TARGET midi2) + if(DEFINED MIDI2_LOCAL_PATH) + FetchContent_Declare(midi2 SOURCE_DIR ${MIDI2_LOCAL_PATH}) + else() + FetchContent_Declare(midi2 + GIT_REPOSITORY https://github.com/sauloverissimo/midi2.git + GIT_TAG v0.3.2 + GIT_SHALLOW TRUE + ) + endif() + FetchContent_MakeAvailable(midi2) +endif() # --------------------------------------------------------------------------- # Showcase executable. @@ -90,7 +103,7 @@ target_include_directories(adafruit-feather-rp2040-bridge-midi2-showcase PRIVATE target_link_libraries(adafruit-feather-rp2040-bridge-midi2-showcase PRIVATE - midi2_c99 + midi2::midi2 pico_stdlib hardware_i2c # SSD1306 over I2C1 tinyusb_device diff --git a/examples/adafruit-feather-rp2040-host-midi2/CMakeLists.txt b/examples/adafruit-feather-rp2040-host-midi2/CMakeLists.txt index c8d863e..726db77 100644 --- a/examples/adafruit-feather-rp2040-host-midi2/CMakeLists.txt +++ b/examples/adafruit-feather-rp2040-host-midi2/CMakeLists.txt @@ -78,13 +78,31 @@ pico_sdk_init() # copy needed. # --------------------------------------------------------------------------- set(MIDI2_CPP_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../..") + +# midi2 C99 core, pulled externally so the recipe shares one source +# of truth with the rest of the ecosystem. Override with +# -DMIDI2_LOCAL_PATH=/path/to/midi2 for offline builds. +include(FetchContent) +if(NOT TARGET midi2) + if(DEFINED MIDI2_LOCAL_PATH) + FetchContent_Declare(midi2 SOURCE_DIR ${MIDI2_LOCAL_PATH}) + else() + FetchContent_Declare(midi2 + GIT_REPOSITORY https://github.com/sauloverissimo/midi2.git + GIT_TAG v0.3.2 + GIT_SHALLOW TRUE + ) + endif() + FetchContent_MakeAvailable(midi2) +endif() + add_library(midi2_cpp STATIC - ${MIDI2_CPP_ROOT}/src/midi2.c ${MIDI2_CPP_ROOT}/src/midi2_device.cpp ${MIDI2_CPP_ROOT}/src/midi2_ci.cpp ${MIDI2_CPP_ROOT}/src/midi2_host.cpp ) target_include_directories(midi2_cpp PUBLIC ${MIDI2_CPP_ROOT}/src) +target_link_libraries(midi2_cpp PUBLIC midi2::midi2) # --------------------------------------------------------------------------- # Pico-PIO-USB sources compiled into our target. The library doesn't diff --git a/examples/rp2040-midi2/CMakeLists.txt b/examples/rp2040-midi2/CMakeLists.txt index 9d8d87d..2d627dd 100644 --- a/examples/rp2040-midi2/CMakeLists.txt +++ b/examples/rp2040-midi2/CMakeLists.txt @@ -54,12 +54,30 @@ pico_sdk_init() # root). No vendored copy needed. # --------------------------------------------------------------------------- set(MIDI2_CPP_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../..") + +# midi2 C99 core, pulled externally so the recipe shares one source +# of truth with the rest of the ecosystem. Override with +# -DMIDI2_LOCAL_PATH=/path/to/midi2 for offline builds. +include(FetchContent) +if(NOT TARGET midi2) + if(DEFINED MIDI2_LOCAL_PATH) + FetchContent_Declare(midi2 SOURCE_DIR ${MIDI2_LOCAL_PATH}) + else() + FetchContent_Declare(midi2 + GIT_REPOSITORY https://github.com/sauloverissimo/midi2.git + GIT_TAG v0.3.2 + GIT_SHALLOW TRUE + ) + endif() + FetchContent_MakeAvailable(midi2) +endif() + add_library(midi2_cpp STATIC - ${MIDI2_CPP_ROOT}/src/midi2.c ${MIDI2_CPP_ROOT}/src/midi2_device.cpp ${MIDI2_CPP_ROOT}/src/midi2_ci.cpp ) target_include_directories(midi2_cpp PUBLIC ${MIDI2_CPP_ROOT}/src) +target_link_libraries(midi2_cpp PUBLIC midi2::midi2) # --------------------------------------------------------------------------- # rp2040-midi2 — board core (Pico SDK + TinyUSB glue + 5 hooks wired) diff --git a/examples/rp2040-promicro-ump-test-bench/CMakeLists.txt b/examples/rp2040-promicro-ump-test-bench/CMakeLists.txt index c09e61e..23d16f7 100644 --- a/examples/rp2040-promicro-ump-test-bench/CMakeLists.txt +++ b/examples/rp2040-promicro-ump-test-bench/CMakeLists.txt @@ -58,12 +58,30 @@ pico_sdk_init() # library root). No vendored copy needed. # --------------------------------------------------------------------------- set(MIDI2_CPP_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../..") + +# midi2 C99 core, pulled externally so the recipe shares one source +# of truth with the rest of the ecosystem. Override with +# -DMIDI2_LOCAL_PATH=/path/to/midi2 for offline builds. +include(FetchContent) +if(NOT TARGET midi2) + if(DEFINED MIDI2_LOCAL_PATH) + FetchContent_Declare(midi2 SOURCE_DIR ${MIDI2_LOCAL_PATH}) + else() + FetchContent_Declare(midi2 + GIT_REPOSITORY https://github.com/sauloverissimo/midi2.git + GIT_TAG v0.3.2 + GIT_SHALLOW TRUE + ) + endif() + FetchContent_MakeAvailable(midi2) +endif() + add_library(midi2_cpp STATIC - ${MIDI2_CPP_ROOT}/src/midi2.c ${MIDI2_CPP_ROOT}/src/midi2_device.cpp ${MIDI2_CPP_ROOT}/src/midi2_ci.cpp ) target_include_directories(midi2_cpp PUBLIC ${MIDI2_CPP_ROOT}/src) +target_link_libraries(midi2_cpp PUBLIC midi2::midi2) # --------------------------------------------------------------------------- # rp2040-promicro-ump-test-bench, board core (Pico SDK + TinyUSB glue + 5 hooks diff --git a/examples/sparkfun-promicro-rp2350-midi2/CMakeLists.txt b/examples/sparkfun-promicro-rp2350-midi2/CMakeLists.txt index 8c92b8a..b6204ab 100644 --- a/examples/sparkfun-promicro-rp2350-midi2/CMakeLists.txt +++ b/examples/sparkfun-promicro-rp2350-midi2/CMakeLists.txt @@ -50,12 +50,30 @@ pico_sdk_init() # midi2_cpp, built from the parent library tree. # --------------------------------------------------------------------------- set(MIDI2_CPP_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../..") + +# midi2 C99 core, pulled externally so the recipe shares one source +# of truth with the rest of the ecosystem. Override with +# -DMIDI2_LOCAL_PATH=/path/to/midi2 for offline builds. +include(FetchContent) +if(NOT TARGET midi2) + if(DEFINED MIDI2_LOCAL_PATH) + FetchContent_Declare(midi2 SOURCE_DIR ${MIDI2_LOCAL_PATH}) + else() + FetchContent_Declare(midi2 + GIT_REPOSITORY https://github.com/sauloverissimo/midi2.git + GIT_TAG v0.3.2 + GIT_SHALLOW TRUE + ) + endif() + FetchContent_MakeAvailable(midi2) +endif() + add_library(midi2_cpp STATIC - ${MIDI2_CPP_ROOT}/src/midi2.c ${MIDI2_CPP_ROOT}/src/midi2_device.cpp ${MIDI2_CPP_ROOT}/src/midi2_ci.cpp ) target_include_directories(midi2_cpp PUBLIC ${MIDI2_CPP_ROOT}/src) +target_link_libraries(midi2_cpp PUBLIC midi2::midi2) # --------------------------------------------------------------------------- # sparkfun-promicro-rp2350-midi2, board core (Pico SDK + TinyUSB glue + diff --git a/examples/waveshare-rp2040-midi2/CMakeLists.txt b/examples/waveshare-rp2040-midi2/CMakeLists.txt index ac892c0..c26bd38 100644 --- a/examples/waveshare-rp2040-midi2/CMakeLists.txt +++ b/examples/waveshare-rp2040-midi2/CMakeLists.txt @@ -48,12 +48,30 @@ pico_sdk_init() # midi2_cpp, built from the parent library tree. # --------------------------------------------------------------------------- set(MIDI2_CPP_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../..") + +# midi2 C99 core, pulled externally so the recipe shares one source +# of truth with the rest of the ecosystem. Override with +# -DMIDI2_LOCAL_PATH=/path/to/midi2 for offline builds. +include(FetchContent) +if(NOT TARGET midi2) + if(DEFINED MIDI2_LOCAL_PATH) + FetchContent_Declare(midi2 SOURCE_DIR ${MIDI2_LOCAL_PATH}) + else() + FetchContent_Declare(midi2 + GIT_REPOSITORY https://github.com/sauloverissimo/midi2.git + GIT_TAG v0.3.2 + GIT_SHALLOW TRUE + ) + endif() + FetchContent_MakeAvailable(midi2) +endif() + add_library(midi2_cpp STATIC - ${MIDI2_CPP_ROOT}/src/midi2.c ${MIDI2_CPP_ROOT}/src/midi2_device.cpp ${MIDI2_CPP_ROOT}/src/midi2_ci.cpp ) target_include_directories(midi2_cpp PUBLIC ${MIDI2_CPP_ROOT}/src) +target_link_libraries(midi2_cpp PUBLIC midi2::midi2) # --------------------------------------------------------------------------- # waveshare-rp2040-midi2, board core (Pico SDK + TinyUSB glue + diff --git a/examples/waveshare-rp2350-usb-a-bridge-midi2/CMakeLists.txt b/examples/waveshare-rp2350-usb-a-bridge-midi2/CMakeLists.txt index e9e21b4..4f12c06 100644 --- a/examples/waveshare-rp2350-usb-a-bridge-midi2/CMakeLists.txt +++ b/examples/waveshare-rp2350-usb-a-bridge-midi2/CMakeLists.txt @@ -68,10 +68,23 @@ pico_sdk_init() # midi2 (C99), only midi2_msg_word_count is used by the router. # --------------------------------------------------------------------------- set(MIDI2_CPP_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../..") -add_library(midi2_c99 STATIC - ${MIDI2_CPP_ROOT}/src/midi2.c -) -target_include_directories(midi2_c99 PUBLIC ${MIDI2_CPP_ROOT}/src) + +# midi2 C99 core, pulled externally so the recipe shares one source +# of truth with the rest of the ecosystem. Override with +# -DMIDI2_LOCAL_PATH=/path/to/midi2 for offline builds. +include(FetchContent) +if(NOT TARGET midi2) + if(DEFINED MIDI2_LOCAL_PATH) + FetchContent_Declare(midi2 SOURCE_DIR ${MIDI2_LOCAL_PATH}) + else() + FetchContent_Declare(midi2 + GIT_REPOSITORY https://github.com/sauloverissimo/midi2.git + GIT_TAG v0.3.2 + GIT_SHALLOW TRUE + ) + endif() + FetchContent_MakeAvailable(midi2) +endif() # --------------------------------------------------------------------------- # Showcase executable. @@ -87,7 +100,7 @@ target_include_directories(waveshare-rp2350-usb-a-bridge-midi2-showcase PRIVATE target_link_libraries(waveshare-rp2350-usb-a-bridge-midi2-showcase PRIVATE - midi2_c99 + midi2::midi2 pico_stdlib hardware_i2c # optional SSD1306 over I2C1 tinyusb_device diff --git a/examples/waveshare-rp2350-usb-a-midi2/CMakeLists.txt b/examples/waveshare-rp2350-usb-a-midi2/CMakeLists.txt index c3fb91f..9e573e6 100644 --- a/examples/waveshare-rp2350-usb-a-midi2/CMakeLists.txt +++ b/examples/waveshare-rp2350-usb-a-midi2/CMakeLists.txt @@ -52,12 +52,30 @@ pico_sdk_init() # midi2_cpp, built from the parent library tree. # --------------------------------------------------------------------------- set(MIDI2_CPP_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../..") + +# midi2 C99 core, pulled externally so the recipe shares one source +# of truth with the rest of the ecosystem. Override with +# -DMIDI2_LOCAL_PATH=/path/to/midi2 for offline builds. +include(FetchContent) +if(NOT TARGET midi2) + if(DEFINED MIDI2_LOCAL_PATH) + FetchContent_Declare(midi2 SOURCE_DIR ${MIDI2_LOCAL_PATH}) + else() + FetchContent_Declare(midi2 + GIT_REPOSITORY https://github.com/sauloverissimo/midi2.git + GIT_TAG v0.3.2 + GIT_SHALLOW TRUE + ) + endif() + FetchContent_MakeAvailable(midi2) +endif() + add_library(midi2_cpp STATIC - ${MIDI2_CPP_ROOT}/src/midi2.c ${MIDI2_CPP_ROOT}/src/midi2_device.cpp ${MIDI2_CPP_ROOT}/src/midi2_ci.cpp ) target_include_directories(midi2_cpp PUBLIC ${MIDI2_CPP_ROOT}/src) +target_link_libraries(midi2_cpp PUBLIC midi2::midi2) # --------------------------------------------------------------------------- # waveshare-rp2350-usb-a-midi2, board core (Pico SDK + TinyUSB glue + From 4d01c0a907bad2ebbfb2c08033531d0b322b1faf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saulo=20Ver=C3=ADssimo?= Date: Sat, 9 May 2026 00:00:28 -0300 Subject: [PATCH 06/10] build(tinyusb-cmake): xiao-samd21 and nrf52840 recipes pull midi2 via FetchContent Mirror of the Pico SDK migration for the two TinyUSB native CMake recipes. Drop ${MIDI2_CPP_ROOT}/src/midi2.c from the local midi2_cpp helper library and link midi2::midi2 instead. The FetchContent block is identical so all CMake recipes share the same MIDI2_LOCAL_PATH override semantics. --- .../nrf52840-promicro-midi2/CMakeLists.txt | 20 ++++++++++++++++++- examples/xiao-samd21-midi2/CMakeLists.txt | 20 ++++++++++++++++++- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/examples/nrf52840-promicro-midi2/CMakeLists.txt b/examples/nrf52840-promicro-midi2/CMakeLists.txt index 6c7c450..7863c5c 100644 --- a/examples/nrf52840-promicro-midi2/CMakeLists.txt +++ b/examples/nrf52840-promicro-midi2/CMakeLists.txt @@ -73,12 +73,30 @@ family_initialize_project(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}) # midi2_cpp parent library (consumed via ../../src, not vendored) # ---------------------------------------------------------------------- set(MIDI2_CPP_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../..") + +# midi2 C99 core, pulled externally so the recipe shares one source +# of truth with the rest of the ecosystem. Override with +# -DMIDI2_LOCAL_PATH=/path/to/midi2 for offline builds. +include(FetchContent) +if(NOT TARGET midi2) + if(DEFINED MIDI2_LOCAL_PATH) + FetchContent_Declare(midi2 SOURCE_DIR ${MIDI2_LOCAL_PATH}) + else() + FetchContent_Declare(midi2 + GIT_REPOSITORY https://github.com/sauloverissimo/midi2.git + GIT_TAG v0.3.2 + GIT_SHALLOW TRUE + ) + endif() + FetchContent_MakeAvailable(midi2) +endif() + add_library(midi2_cpp STATIC - ${MIDI2_CPP_ROOT}/src/midi2.c ${MIDI2_CPP_ROOT}/src/midi2_device.cpp ${MIDI2_CPP_ROOT}/src/midi2_ci.cpp ) target_include_directories(midi2_cpp PUBLIC ${MIDI2_CPP_ROOT}/src) +target_link_libraries(midi2_cpp PUBLIC midi2::midi2) target_compile_features(midi2_cpp PUBLIC cxx_std_17) target_compile_options(midi2_cpp PRIVATE -fno-rtti -fno-exceptions -fno-use-cxa-atexit) diff --git a/examples/xiao-samd21-midi2/CMakeLists.txt b/examples/xiao-samd21-midi2/CMakeLists.txt index 2ee858b..087ce81 100644 --- a/examples/xiao-samd21-midi2/CMakeLists.txt +++ b/examples/xiao-samd21-midi2/CMakeLists.txt @@ -63,12 +63,30 @@ family_initialize_project(${PROJECT_NAME} ${CMAKE_CURRENT_LIST_DIR}) # midi2_cpp parent library (consumed via ../../src, not vendored) # ---------------------------------------------------------------------- set(MIDI2_CPP_ROOT "${CMAKE_CURRENT_SOURCE_DIR}/../..") + +# midi2 C99 core, pulled externally so the recipe shares one source +# of truth with the rest of the ecosystem. Override with +# -DMIDI2_LOCAL_PATH=/path/to/midi2 for offline builds. +include(FetchContent) +if(NOT TARGET midi2) + if(DEFINED MIDI2_LOCAL_PATH) + FetchContent_Declare(midi2 SOURCE_DIR ${MIDI2_LOCAL_PATH}) + else() + FetchContent_Declare(midi2 + GIT_REPOSITORY https://github.com/sauloverissimo/midi2.git + GIT_TAG v0.3.2 + GIT_SHALLOW TRUE + ) + endif() + FetchContent_MakeAvailable(midi2) +endif() + add_library(midi2_cpp STATIC - ${MIDI2_CPP_ROOT}/src/midi2.c ${MIDI2_CPP_ROOT}/src/midi2_device.cpp ${MIDI2_CPP_ROOT}/src/midi2_ci.cpp ) target_include_directories(midi2_cpp PUBLIC ${MIDI2_CPP_ROOT}/src) +target_link_libraries(midi2_cpp PUBLIC midi2::midi2) target_compile_features(midi2_cpp PUBLIC cxx_std_17) # midi2_cpp uses std::function / std::array; exceptions stay off (default # in arm-none-eabi-gcc with -fno-exceptions which TinyUSB build sets). From b33e017dfbd3e0f522a62001f809d07cd80dbc7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saulo=20Ver=C3=ADssimo?= Date: Sat, 9 May 2026 00:24:47 -0300 Subject: [PATCH 07/10] build(esp-idf): 7 recipes pull midi2 via Component Manager Drop the dist/midi2.c entry that every recipe re-listed in SRCS under ${MIDI2_CPP_ROOT}. Each recipe now declares midi2 as a managed dependency and lists midi2 in REQUIRES so resolves through the imported component: # idf/main/idf_component.yml dependencies: idf: ">=5.4" midi2: git: https://github.com/sauloverissimo/midi2.git version: ">=0.3.3" The Component Manager clones midi2 into managed_components/midi2; ESP-IDF processes it as a regular component because midi2's top-level CMakeLists detects ESP_PLATFORM and routes to idf_component_register (see midi2 v0.3.3). Recipes touched: - arduino-nano-esp32-midi2 - esp32-s3-devkitc-usb-midi2 - esp32-p4-devkit-usb-midi2 - esp32-p4-devkit-host-midi2 - esp32-p4-devkit-bridge-midi2 - esp32-p4-devkit-bridge2-midi2 - t-display-s3-midi2 The other midi2_cpp source files (midi2_device.cpp, midi2_ci.cpp, midi2_host.cpp, midi2_bridge.cpp) keep being compiled inline from the parent tree until the host helper library shape is finalised. --- examples/arduino-nano-esp32-midi2/idf/main/CMakeLists.txt | 2 +- examples/arduino-nano-esp32-midi2/idf/main/idf_component.yml | 3 +++ examples/esp32-p4-devkit-bridge-midi2/idf/main/CMakeLists.txt | 2 +- .../esp32-p4-devkit-bridge-midi2/idf/main/idf_component.yml | 3 +++ examples/esp32-p4-devkit-bridge2-midi2/idf/main/CMakeLists.txt | 2 +- .../esp32-p4-devkit-bridge2-midi2/idf/main/idf_component.yml | 3 +++ examples/esp32-p4-devkit-host-midi2/idf/main/CMakeLists.txt | 2 +- examples/esp32-p4-devkit-host-midi2/idf/main/idf_component.yml | 3 +++ examples/esp32-p4-devkit-usb-midi2/idf/main/CMakeLists.txt | 2 +- examples/esp32-p4-devkit-usb-midi2/idf/main/idf_component.yml | 3 +++ examples/esp32-s3-devkitc-usb-midi2/idf/main/CMakeLists.txt | 2 +- examples/esp32-s3-devkitc-usb-midi2/idf/main/idf_component.yml | 3 +++ examples/t-display-s3-midi2/idf/main/CMakeLists.txt | 2 +- examples/t-display-s3-midi2/idf/main/idf_component.yml | 3 +++ 14 files changed, 28 insertions(+), 7 deletions(-) diff --git a/examples/arduino-nano-esp32-midi2/idf/main/CMakeLists.txt b/examples/arduino-nano-esp32-midi2/idf/main/CMakeLists.txt index b2e2171..f266e25 100644 --- a/examples/arduino-nano-esp32-midi2/idf/main/CMakeLists.txt +++ b/examples/arduino-nano-esp32-midi2/idf/main/CMakeLists.txt @@ -11,13 +11,13 @@ idf_component_register( SRCS "main.cpp" "arduino_nano_esp32_midi2.cpp" - "${MIDI2_CPP_ROOT}/midi2.c" "${MIDI2_CPP_ROOT}/midi2_device.cpp" "${MIDI2_CPP_ROOT}/midi2_ci.cpp" INCLUDE_DIRS "." "${MIDI2_CPP_ROOT}" REQUIRES + midi2 tinyusb driver esp_timer diff --git a/examples/arduino-nano-esp32-midi2/idf/main/idf_component.yml b/examples/arduino-nano-esp32-midi2/idf/main/idf_component.yml index f98d7cc..ed7cd23 100644 --- a/examples/arduino-nano-esp32-midi2/idf/main/idf_component.yml +++ b/examples/arduino-nano-esp32-midi2/idf/main/idf_component.yml @@ -5,3 +5,6 @@ ## ./scripts/fetch_tinyusb.sh once to clone the fork at the pinned SHA. dependencies: idf: ">=5.4" + midi2: + git: https://github.com/sauloverissimo/midi2.git + version: ">=0.3.3" diff --git a/examples/esp32-p4-devkit-bridge-midi2/idf/main/CMakeLists.txt b/examples/esp32-p4-devkit-bridge-midi2/idf/main/CMakeLists.txt index df1c4ad..f945133 100644 --- a/examples/esp32-p4-devkit-bridge-midi2/idf/main/CMakeLists.txt +++ b/examples/esp32-p4-devkit-bridge-midi2/idf/main/CMakeLists.txt @@ -14,7 +14,6 @@ idf_component_register( SRCS "main.cpp" "esp32_p4_devkit_bridge.cpp" - "${MIDI2_CPP_ROOT}/midi2.c" "${MIDI2_CPP_ROOT}/midi2_device.cpp" "${MIDI2_CPP_ROOT}/midi2_ci.cpp" "${MIDI2_CPP_ROOT}/midi2_host.cpp" @@ -22,6 +21,7 @@ idf_component_register( "." "${MIDI2_CPP_ROOT}" REQUIRES + midi2 tinyusb driver esp_timer diff --git a/examples/esp32-p4-devkit-bridge-midi2/idf/main/idf_component.yml b/examples/esp32-p4-devkit-bridge-midi2/idf/main/idf_component.yml index d6c8ea4..33c624c 100644 --- a/examples/esp32-p4-devkit-bridge-midi2/idf/main/idf_component.yml +++ b/examples/esp32-p4-devkit-bridge-midi2/idf/main/idf_component.yml @@ -5,3 +5,6 @@ ## ./scripts/fetch_tinyusb.sh once to clone the fork at the pinned SHA. dependencies: idf: ">=5.4" + midi2: + git: https://github.com/sauloverissimo/midi2.git + version: ">=0.3.3" diff --git a/examples/esp32-p4-devkit-bridge2-midi2/idf/main/CMakeLists.txt b/examples/esp32-p4-devkit-bridge2-midi2/idf/main/CMakeLists.txt index 366c797..2e9c476 100644 --- a/examples/esp32-p4-devkit-bridge2-midi2/idf/main/CMakeLists.txt +++ b/examples/esp32-p4-devkit-bridge2-midi2/idf/main/CMakeLists.txt @@ -16,7 +16,6 @@ idf_component_register( SRCS "main.cpp" "esp32_p4_devkit_bridge2.cpp" - "${MIDI2_CPP_ROOT}/midi2.c" "${MIDI2_CPP_ROOT}/midi2_device.cpp" "${MIDI2_CPP_ROOT}/midi2_ci.cpp" "${MIDI2_CPP_ROOT}/midi2_host.cpp" @@ -25,6 +24,7 @@ idf_component_register( "." "${MIDI2_CPP_ROOT}" REQUIRES + midi2 tinyusb driver esp_timer diff --git a/examples/esp32-p4-devkit-bridge2-midi2/idf/main/idf_component.yml b/examples/esp32-p4-devkit-bridge2-midi2/idf/main/idf_component.yml index d6c8ea4..33c624c 100644 --- a/examples/esp32-p4-devkit-bridge2-midi2/idf/main/idf_component.yml +++ b/examples/esp32-p4-devkit-bridge2-midi2/idf/main/idf_component.yml @@ -5,3 +5,6 @@ ## ./scripts/fetch_tinyusb.sh once to clone the fork at the pinned SHA. dependencies: idf: ">=5.4" + midi2: + git: https://github.com/sauloverissimo/midi2.git + version: ">=0.3.3" diff --git a/examples/esp32-p4-devkit-host-midi2/idf/main/CMakeLists.txt b/examples/esp32-p4-devkit-host-midi2/idf/main/CMakeLists.txt index e0d86ce..eb04800 100644 --- a/examples/esp32-p4-devkit-host-midi2/idf/main/CMakeLists.txt +++ b/examples/esp32-p4-devkit-host-midi2/idf/main/CMakeLists.txt @@ -11,12 +11,12 @@ idf_component_register( SRCS "main.cpp" "esp32_p4_devkit_host.cpp" - "${MIDI2_CPP_ROOT}/midi2.c" "${MIDI2_CPP_ROOT}/midi2_host.cpp" INCLUDE_DIRS "." "${MIDI2_CPP_ROOT}" REQUIRES + midi2 tinyusb driver esp_timer diff --git a/examples/esp32-p4-devkit-host-midi2/idf/main/idf_component.yml b/examples/esp32-p4-devkit-host-midi2/idf/main/idf_component.yml index 6f44419..8c9186c 100644 --- a/examples/esp32-p4-devkit-host-midi2/idf/main/idf_component.yml +++ b/examples/esp32-p4-devkit-host-midi2/idf/main/idf_component.yml @@ -5,3 +5,6 @@ ## ./scripts/fetch_tinyusb.sh once to clone the fork at the pinned SHA. dependencies: idf: ">=5.4" + midi2: + git: https://github.com/sauloverissimo/midi2.git + version: ">=0.3.3" diff --git a/examples/esp32-p4-devkit-usb-midi2/idf/main/CMakeLists.txt b/examples/esp32-p4-devkit-usb-midi2/idf/main/CMakeLists.txt index 34222e2..ecfe576 100644 --- a/examples/esp32-p4-devkit-usb-midi2/idf/main/CMakeLists.txt +++ b/examples/esp32-p4-devkit-usb-midi2/idf/main/CMakeLists.txt @@ -11,13 +11,13 @@ idf_component_register( SRCS "main.cpp" "esp32_p4_devkit_midi2.cpp" - "${MIDI2_CPP_ROOT}/midi2.c" "${MIDI2_CPP_ROOT}/midi2_device.cpp" "${MIDI2_CPP_ROOT}/midi2_ci.cpp" INCLUDE_DIRS "." "${MIDI2_CPP_ROOT}" REQUIRES + midi2 tinyusb driver esp_timer diff --git a/examples/esp32-p4-devkit-usb-midi2/idf/main/idf_component.yml b/examples/esp32-p4-devkit-usb-midi2/idf/main/idf_component.yml index b34e0e8..bc0d27d 100644 --- a/examples/esp32-p4-devkit-usb-midi2/idf/main/idf_component.yml +++ b/examples/esp32-p4-devkit-usb-midi2/idf/main/idf_component.yml @@ -9,3 +9,6 @@ ## indicator is a no-op (see esp32_p4_devkit_midi2.cpp). dependencies: idf: ">=5.4" + midi2: + git: https://github.com/sauloverissimo/midi2.git + version: ">=0.3.3" diff --git a/examples/esp32-s3-devkitc-usb-midi2/idf/main/CMakeLists.txt b/examples/esp32-s3-devkitc-usb-midi2/idf/main/CMakeLists.txt index e45dc64..ec1c7a8 100644 --- a/examples/esp32-s3-devkitc-usb-midi2/idf/main/CMakeLists.txt +++ b/examples/esp32-s3-devkitc-usb-midi2/idf/main/CMakeLists.txt @@ -11,13 +11,13 @@ idf_component_register( SRCS "main.cpp" "esp32_s3_devkitc_midi2.cpp" - "${MIDI2_CPP_ROOT}/midi2.c" "${MIDI2_CPP_ROOT}/midi2_device.cpp" "${MIDI2_CPP_ROOT}/midi2_ci.cpp" INCLUDE_DIRS "." "${MIDI2_CPP_ROOT}" REQUIRES + midi2 tinyusb led_strip driver diff --git a/examples/esp32-s3-devkitc-usb-midi2/idf/main/idf_component.yml b/examples/esp32-s3-devkitc-usb-midi2/idf/main/idf_component.yml index 6b91e31..1837099 100644 --- a/examples/esp32-s3-devkitc-usb-midi2/idf/main/idf_component.yml +++ b/examples/esp32-s3-devkitc-usb-midi2/idf/main/idf_component.yml @@ -8,3 +8,6 @@ dependencies: idf: ">=5.4" espressif/led_strip: "^2.5" + midi2: + git: https://github.com/sauloverissimo/midi2.git + version: ">=0.3.3" diff --git a/examples/t-display-s3-midi2/idf/main/CMakeLists.txt b/examples/t-display-s3-midi2/idf/main/CMakeLists.txt index 235ebb1..24fbfe0 100644 --- a/examples/t-display-s3-midi2/idf/main/CMakeLists.txt +++ b/examples/t-display-s3-midi2/idf/main/CMakeLists.txt @@ -14,13 +14,13 @@ idf_component_register( SRCS "main.cpp" "t_display_s3_midi2.cpp" - "${MIDI2_CPP_ROOT}/midi2.c" "${MIDI2_CPP_ROOT}/midi2_device.cpp" "${MIDI2_CPP_ROOT}/midi2_ci.cpp" INCLUDE_DIRS "." "${MIDI2_CPP_ROOT}" REQUIRES + midi2 tinyusb piano_display driver diff --git a/examples/t-display-s3-midi2/idf/main/idf_component.yml b/examples/t-display-s3-midi2/idf/main/idf_component.yml index ad5a422..58761af 100644 --- a/examples/t-display-s3-midi2/idf/main/idf_component.yml +++ b/examples/t-display-s3-midi2/idf/main/idf_component.yml @@ -8,3 +8,6 @@ ## see ../components/piano_display/idf_component.yml. dependencies: idf: ">=5.4" + midi2: + git: https://github.com/sauloverissimo/midi2.git + version: ">=0.3.3" From 05b97ddcbab8577174eba23915618c000767537c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saulo=20Ver=C3=ADssimo?= Date: Sat, 9 May 2026 00:26:30 -0300 Subject: [PATCH 08/10] build(platformio): 3 recipes declare midi2 in lib_deps Each PlatformIO recipe (ESP32_Host_MIDI-based, no Pico SDK) now pulls midi2 from the PlatformIO Registry through lib_deps: lib_deps = sauloverissimo/midi2 @ ^0.3.3 ...other deps... Recipes touched: - esp32-c6-devkitc-multi-midi2 (BLE + ESP-NOW, ESP32_Host_MIDI v6.0.1) - esp32-s3-devkitc-host-midi2 (USB Host, ESP32_Host_MIDI v6.0.0) - t-display-s3-shield-host-midi2 (USB Host + ST7789 piano, ESP32_Host_MIDI local) These recipes already pulled midi2_cpp via lib_extra_dirs from the parent tree; nothing about that path changes. midi2_cpp's own src/midi2.{h,c} keeps the recipes building today and will go away in the final cleanup commit, at which point lib_extra_dirs gives them midi2_cpp source files only and lib_deps gives them midi2. --- examples/esp32-c6-devkitc-multi-midi2/pio/platformio.ini | 1 + examples/esp32-s3-devkitc-host-midi2/pio/platformio.ini | 1 + examples/t-display-s3-shield-host-midi2/pio/platformio.ini | 1 + 3 files changed, 3 insertions(+) diff --git a/examples/esp32-c6-devkitc-multi-midi2/pio/platformio.ini b/examples/esp32-c6-devkitc-multi-midi2/pio/platformio.ini index 9308f0d..b64822d 100644 --- a/examples/esp32-c6-devkitc-multi-midi2/pio/platformio.ini +++ b/examples/esp32-c6-devkitc-multi-midi2/pio/platformio.ini @@ -53,6 +53,7 @@ build_flags = lib_extra_dirs = ../../.. lib_deps = + sauloverissimo/midi2 @ ^0.3.3 https://github.com/sauloverissimo/ESP32_Host_MIDI.git#v6.0.1 ; Pre-build patch: ESP32_Host_MIDI v6.0.0 ships USB Host transport sources diff --git a/examples/esp32-s3-devkitc-host-midi2/pio/platformio.ini b/examples/esp32-s3-devkitc-host-midi2/pio/platformio.ini index 80e4da7..8f973c4 100644 --- a/examples/esp32-s3-devkitc-host-midi2/pio/platformio.ini +++ b/examples/esp32-s3-devkitc-host-midi2/pio/platformio.ini @@ -36,4 +36,5 @@ build_flags = lib_extra_dirs = ../../.. lib_deps = + sauloverissimo/midi2 @ ^0.3.3 https://github.com/sauloverissimo/ESP32_Host_MIDI.git#v6.0.0 diff --git a/examples/t-display-s3-shield-host-midi2/pio/platformio.ini b/examples/t-display-s3-shield-host-midi2/pio/platformio.ini index 6739427..fef5fda 100644 --- a/examples/t-display-s3-shield-host-midi2/pio/platformio.ini +++ b/examples/t-display-s3-shield-host-midi2/pio/platformio.ini @@ -54,5 +54,6 @@ build_flags = lib_extra_dirs = ../../.., /home/shared/workspaces/github lib_deps = + sauloverissimo/midi2 @ ^0.3.3 ESP32_Host_MIDI lovyan03/LovyanGFX@^1.2.0 From d13a62a72db3072daefbf7568db39fef2f038653 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saulo=20Ver=C3=ADssimo?= Date: Sat, 9 May 2026 00:27:59 -0300 Subject: [PATCH 09/10] build: drop vendored midi2.{h,c} and link midi2_cpp PUBLIC midi2::midi2 This is the final step of the depends=midi2 migration. Every recipe under examples/ has been migrated to pull midi2 externally (Pico SDK + TinyUSB CMake via FetchContent, ESP-IDF via Component Manager, PlatformIO via lib_deps), so the duplicated copy of dist/midi2.{h,c} that lived under src/ no longer has any consumer. Removes: - src/midi2.h - src/midi2.c Updates the root CMakeLists.txt: - find_package + FetchContent now ask for midi2 0.3.3 (matches the ESP-IDF idiom and the Library Manager constraint). - midi2_cpp library target drops src/midi2.c from its source list. - target_link_libraries(midi2_cpp PUBLIC midi2::midi2) exposes the C99 core to downstream link consumers transitively. Bumps the manifest declarations in lockstep: - library.properties: depends=midi2 (>=0.3.3) - library.json: sauloverissimo/midi2: ^0.3.3 Verified locally: cmake configure pulls midi2 v0.3.3 via FetchContent, the host suite (7 executables, including the m2bridge ASan + UBSan smoke) builds and runs clean. --- CMakeLists.txt | 17 +- library.json | 2 +- library.properties | 2 +- src/midi2.c | 36 - src/midi2.h | 5108 -------------------------------------------- 5 files changed, 10 insertions(+), 5155 deletions(-) delete mode 100644 src/midi2.c delete mode 100644 src/midi2.h diff --git a/CMakeLists.txt b/CMakeLists.txt index 21587ce..cef9dff 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,12 +13,12 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON) # This is the same pattern the midi2 README documents for downstream # consumers, applied to midi2_cpp itself. if(NOT TARGET midi2) - find_package(midi2 0.3.2 QUIET CONFIG) + find_package(midi2 0.3.3 QUIET CONFIG) if(NOT midi2_FOUND) include(FetchContent) FetchContent_Declare(midi2 GIT_REPOSITORY https://github.com/sauloverissimo/midi2.git - GIT_TAG v0.3.2 + GIT_TAG v0.3.3 ) FetchContent_MakeAvailable(midi2) endif() @@ -26,20 +26,19 @@ endif() # Library target. # -# src/midi2.c is still compiled here so the host test suite, the -# arduino-cli compile job, and the standalone CMake build all see a -# single coherent translation unit. The recipes under examples/ are -# being migrated to depend on midi2::midi2 directly; once every recipe -# has migrated, src/midi2.{h,c} will be removed and midi2_cpp will -# link against the external midi2 target unconditionally. +# midi2_cpp ships the C++ wrapper sources only; the C99 core lives in +# the external midi2 target this CMakeLists pulls above. Consumers +# linking midi2_cpp transitively see midi2::midi2 because of the +# PUBLIC link below. add_library(midi2_cpp - src/midi2.c src/midi2_device.cpp src/midi2_ci.cpp src/midi2_host.cpp src/midi2_bridge.cpp ) +target_link_libraries(midi2_cpp PUBLIC midi2::midi2) + target_include_directories(midi2_cpp PUBLIC $ diff --git a/library.json b/library.json index 27eb706..958cf41 100644 --- a/library.json +++ b/library.json @@ -19,7 +19,7 @@ "url": "https://github.com/sauloverissimo/midi2_cpp.git" }, "dependencies": { - "sauloverissimo/midi2": "^0.3.2" + "sauloverissimo/midi2": "^0.3.3" }, "headers": "midi2_cpp.h", "export": { diff --git a/library.properties b/library.properties index f803703..ae70aaf 100644 --- a/library.properties +++ b/library.properties @@ -8,4 +8,4 @@ category=Communication url=https://github.com/sauloverissimo/midi2_cpp architectures=* includes=midi2_cpp.h -depends=midi2 (>=0.3.2) +depends=midi2 (>=0.3.3) diff --git a/src/midi2.c b/src/midi2.c deleted file mode 100644 index 70ddb6d..0000000 --- a/src/midi2.c +++ /dev/null @@ -1,36 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2026 Saulo Verissimo - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/* Auto-generated from midi2 v0.3.0 -- 2026-04-25 - * https://github.com/sauloverissimo/midi2 - * - * Portable MIDI 2.0 library (C99, zero dependencies) - * Specs: MIDI 2.0 UMP (M2-104-UM v1.1.2), MIDI-CI (M2-101-UM v1.2) - * - * Compile this file to get all midi2 symbols. - * Include midi2.h in your headers for declarations. - */ - -#define MIDI2_IMPLEMENTATION -#include "midi2.h" diff --git a/src/midi2.h b/src/midi2.h deleted file mode 100644 index 4814a32..0000000 --- a/src/midi2.h +++ /dev/null @@ -1,5108 +0,0 @@ -/* - * The MIT License (MIT) - * - * Copyright (c) 2026 Saulo Verissimo - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in - * all copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - * THE SOFTWARE. - */ - -/* Auto-generated from midi2 v0.3.0 -- 2026-04-25 - * https://github.com/sauloverissimo/midi2 - * - * Portable MIDI 2.0 library (C99, zero dependencies) - * Specs: MIDI 2.0 UMP (M2-104-UM v1.1.2), MIDI-CI (M2-101-UM v1.2) - * - * Usage: - * #include "midi2.h" - * // In exactly ONE .c file: - * #define MIDI2_IMPLEMENTATION - * #include "midi2.h" - */ - -#ifndef MIDI2_H -#define MIDI2_H - -#include -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* == midi2_msg =========================================================== */ - - -/* - * midi2_msg.h - UMP message construction and parsing - * - * Part of midi2 - Portable MIDI 2.0 library (C99) - * https://github.com/sauloverissimo/midi2 - * - * Spec: MIDI 2.0 UMP (M2-104-UM v1.1.2, Nov 2024) - * Version: 0.3.0 - */ - - - - -/*--------------------------------------------------------------------+ - * UMP Message Types (bits [31:28] of word 0) - *--------------------------------------------------------------------*/ -enum { - MIDI2_MT_UTILITY = 0x00, /* 1 word */ - MIDI2_MT_SYSTEM = 0x01, /* 1 word */ - MIDI2_MT_MIDI1_CV = 0x02, /* 1 word */ - MIDI2_MT_SYSEX7 = 0x03, /* 2 words */ - MIDI2_MT_MIDI2_CV = 0x04, /* 2 words */ - MIDI2_MT_DATA128 = 0x05, /* 4 words */ - MIDI2_MT_FLEX_DATA = 0x0D, /* 4 words */ - MIDI2_MT_STREAM = 0x0F, /* 4 words */ -}; - -/*--------------------------------------------------------------------+ - * MIDI 2.0 Channel Voice Status (upper nibble, MT 0x4) - *--------------------------------------------------------------------*/ -enum { - MIDI2_STATUS_NOTE_OFF = 0x80, - MIDI2_STATUS_NOTE_ON = 0x90, - MIDI2_STATUS_POLY_PRESSURE = 0xA0, - MIDI2_STATUS_CC = 0xB0, - MIDI2_STATUS_PROGRAM = 0xC0, - MIDI2_STATUS_CHAN_PRESSURE = 0xD0, - MIDI2_STATUS_PITCH_BEND = 0xE0, - MIDI2_STATUS_PER_NOTE_MGMT = 0xF0, - MIDI2_STATUS_REG_PER_NOTE = 0x00, /* Registered Per-Note Controller */ - MIDI2_STATUS_ASN_PER_NOTE = 0x10, /* Assignable Per-Note Controller */ - MIDI2_STATUS_RPN = 0x20, /* Registered Controller (RPN) */ - MIDI2_STATUS_NRPN = 0x30, /* Assignable Controller (NRPN) */ - MIDI2_STATUS_REL_RPN = 0x40, /* Relative Registered Controller */ - MIDI2_STATUS_REL_NRPN = 0x50, /* Relative Assignable Controller */ - MIDI2_STATUS_PER_NOTE_PB = 0x60, - /* Note: Per-Note CC uses the same opcode as ASN_PER_NOTE (0x10). - * Use MIDI2_STATUS_ASN_PER_NOTE for new code. */ -}; - -/*--------------------------------------------------------------------+ - * SysEx7 Status - *--------------------------------------------------------------------*/ -enum { - MIDI2_SYSEX7_COMPLETE = 0x00, - MIDI2_SYSEX7_START = 0x10, - MIDI2_SYSEX7_CONTINUE = 0x20, - MIDI2_SYSEX7_END = 0x30, -}; - -/*--------------------------------------------------------------------+ - * Flex Data Status - *--------------------------------------------------------------------*/ -enum { - MIDI2_FLEX_TEMPO = 0x00, - MIDI2_FLEX_TIME_SIG = 0x01, - MIDI2_FLEX_METRONOME = 0x02, - MIDI2_FLEX_KEY_SIG = 0x05, - MIDI2_FLEX_CHORD_NAME = 0x06, -}; - -/* Flex Data Status Banks */ -enum { - MIDI2_FLEX_BANK_SETUP = 0x00, /* Setup & Performance Events */ - MIDI2_FLEX_BANK_METADATA = 0x01, /* Metadata Text */ - MIDI2_FLEX_BANK_PERF_TEXT = 0x02, /* Performance Text Events (lyrics) */ -}; - -/* Flex Data Metadata Text status values (bank 0x01) */ -enum { - MIDI2_FLEX_TEXT_UNKNOWN = 0x00, - MIDI2_FLEX_TEXT_PROJECT_NAME = 0x01, - MIDI2_FLEX_TEXT_COMPOSITION_NAME = 0x02, - MIDI2_FLEX_TEXT_CLIP_NAME = 0x03, - MIDI2_FLEX_TEXT_COPYRIGHT = 0x04, - MIDI2_FLEX_TEXT_COMPOSER_NAME = 0x05, - MIDI2_FLEX_TEXT_LYRICIST_NAME = 0x06, - MIDI2_FLEX_TEXT_ARRANGER_NAME = 0x07, - MIDI2_FLEX_TEXT_PUBLISHER_NAME = 0x08, - MIDI2_FLEX_TEXT_PERFORMER_NAME = 0x09, - MIDI2_FLEX_TEXT_ACCOMPANY_NAME = 0x0A, - MIDI2_FLEX_TEXT_RECORDING_DATE = 0x0B, - MIDI2_FLEX_TEXT_RECORDING_LOC = 0x0C, -}; - -/* Flex Data Performance Text status values (bank 0x02) */ -enum { - MIDI2_FLEX_PERF_UNKNOWN = 0x00, - MIDI2_FLEX_PERF_LYRICS = 0x01, - MIDI2_FLEX_PERF_LYRICS_LANG = 0x02, - MIDI2_FLEX_PERF_RUBY = 0x03, - MIDI2_FLEX_PERF_RUBY_LANG = 0x04, -}; - -/*--------------------------------------------------------------------+ - * Word Count - *--------------------------------------------------------------------*/ -static inline uint8_t midi2_msg_word_count(uint8_t mt) { - switch (mt) { - case MIDI2_MT_UTILITY: - case MIDI2_MT_SYSTEM: - case MIDI2_MT_MIDI1_CV: - return 1; - case MIDI2_MT_SYSEX7: - case MIDI2_MT_MIDI2_CV: - return 2; - case MIDI2_MT_DATA128: - case MIDI2_MT_FLEX_DATA: - case MIDI2_MT_STREAM: - return 4; - default: - return 1; - } -} - -/*--------------------------------------------------------------------+ - * Parsing (field extraction from word 0) - *--------------------------------------------------------------------*/ - -/** @brief Extract message type (bits [31:28] of word 0). */ -static inline uint8_t midi2_msg_get_mt(const uint32_t *w) { return (uint8_t)((w[0] >> 28) & 0x0F); } -/** @brief Extract group number (bits [27:24] of word 0). Range: 0-15. */ -static inline uint8_t midi2_msg_get_group(const uint32_t *w) { return (uint8_t)((w[0] >> 24) & 0x0F); } -/** @brief Extract full status byte (bits [23:16] of word 0). Includes status nibble + channel. */ -static inline uint8_t midi2_msg_get_status(const uint32_t *w) { return (uint8_t)((w[0] >> 16) & 0xFF); } -/** @brief Extract channel number (bits [19:16] of word 0). Range: 0-15. */ -static inline uint8_t midi2_msg_get_channel(const uint32_t *w) { return (uint8_t)((w[0] >> 16) & 0x0F); } -/** @brief Extract note/index field (bits [15:8] of word 0). Full 8-bit field. */ -static inline uint8_t midi2_msg_get_note(const uint32_t *w) { return (uint8_t)((w[0] >> 8) & 0xFF); } -/** @brief Extract velocity (bits [31:16] of word 1). 16-bit MIDI 2.0 velocity. */ -static inline uint16_t midi2_msg_get_velocity(const uint32_t *w) { return (uint16_t)(w[1] >> 16); } -/** @brief Extract full word 1 (32-bit data payload). */ -static inline uint32_t midi2_msg_get_data(const uint32_t *w) { return w[1]; } - -/** @brief Rewrite the Group field of a UMP word in-place. - * - * Only MT 0x2 (MIDI 1.0 CV), 0x3 (SysEx7), 0x4 (MIDI 2.0 CV) and - * 0x5 (Data128/SysEx8) carry a Group field in word 0 bits [27:24]. - * Utility, System Real-Time, Flex Data and UMP Stream words have - * no Group field and are left untouched. - * - * Useful for routing pipelines that need to re-stamp the group of - * forwarded messages without rebuilding the word from scratch. - * (v0.3.0+) */ -static inline void midi2_msg_set_group(uint32_t *word0, uint8_t group) { - uint8_t mt = (uint8_t)((*word0 >> 28) & 0x0Fu); - if (mt >= 0x2u && mt <= 0x5u) { - *word0 = (*word0 & 0xF0FFFFFFu) | ((uint32_t)(group & 0x0Fu) << 24); - } -} - -/*--------------------------------------------------------------------+ - * Value Scaling (MIDI 2.0 spec section 4.2.1) - * - * Bit-replication for symmetric round-trip: scaleDown(scaleUp(x)) == x - *--------------------------------------------------------------------*/ - -/** @brief Scale 7-bit (0-127) to 16-bit (0-65535) with bit-replication. */ -static inline uint16_t midi2_msg_scale_up_7to16(uint8_t v) { - uint16_t x = (uint16_t)(v & 0x7F); - return (uint16_t)((x << 9) | (x << 2) | (x >> 5)); -} - -/** @brief Scale 7-bit (0-127) to 32-bit (0-0xFFFFFFFF) with bit-replication. */ -static inline uint32_t midi2_msg_scale_up_7to32(uint8_t v) { - uint32_t x = (uint32_t)(v & 0x7F); - return (x << 25) | (x << 18) | (x << 11) | (x << 4) | (x >> 3); -} - -/** @brief Scale 14-bit (0-16383) to 32-bit (0-0xFFFFFFFF) with bit-replication. */ -static inline uint32_t midi2_msg_scale_up_14to32(uint16_t v) { - uint32_t x = (uint32_t)(v & 0x3FFF); - return (x << 18) | (x << 4) | (x >> 10); -} - -/** @brief Scale 16-bit to 7-bit. */ -static inline uint8_t midi2_msg_scale_down_16to7(uint16_t v) { return (uint8_t)(v >> 9); } -/** @brief Scale 32-bit to 7-bit. */ -static inline uint8_t midi2_msg_scale_down_32to7(uint32_t v) { return (uint8_t)(v >> 25); } -/** @brief Scale 32-bit to 14-bit. */ -static inline uint16_t midi2_msg_scale_down_32to14(uint32_t v) { return (uint16_t)(v >> 18); } - -/*--------------------------------------------------------------------+ - * MIDI 2.0 Channel Voice Construction (MT 0x4, 2 words) - * - * All write into a uint32_t w[2] provided by caller. - *--------------------------------------------------------------------*/ - -/* Internal: build word 0 for MT 0x4 */ -static inline uint32_t midi2_msg_build_cv2_w0(uint8_t group, uint8_t status, - uint8_t channel, uint8_t b3, uint8_t b4) { - return ((uint32_t)MIDI2_MT_MIDI2_CV << 28) - | ((uint32_t)(group & 0x0F) << 24) - | ((uint32_t)(status & 0xF0) << 16) - | ((uint32_t)(channel & 0x0F) << 16) - | ((uint32_t)b3 << 8) - | (uint32_t)b4; -} - -/** - * @brief Build a MIDI 2.0 Note On message (MT 0x4, 2 words). - * @param w Output: uint32_t[2] provided by caller. - * @param group UMP group (0-15). - * @param channel MIDI channel (0-15). - * @param note Note number (0-127). - * @param velocity 16-bit velocity (0x0000-0xFFFF). Use midi2_msg_scale_up_7to16() for legacy values. - * @param attribute Note attribute (0 = none, or type<<8 | value). */ -static inline void midi2_msg_note_on(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t note, uint16_t velocity, uint16_t attribute) { - uint8_t attr_type = (attribute != 0) ? (uint8_t)(attribute >> 8) : 0; - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_NOTE_ON, channel, note & 0x7F, attr_type); - w[1] = ((uint32_t)velocity << 16) | (attribute & 0xFFFF); -} - -/** @brief Build a MIDI 2.0 Note Off message (MT 0x4, 2 words). See midi2_msg_note_on() for params. */ -static inline void midi2_msg_note_off(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t note, uint16_t velocity, uint16_t attribute) { - uint8_t attr_type = (attribute != 0) ? (uint8_t)(attribute >> 8) : 0; - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_NOTE_OFF, channel, note & 0x7F, attr_type); - w[1] = ((uint32_t)velocity << 16) | (attribute & 0xFFFF); -} - -/** @brief Build a MIDI 2.0 Control Change (MT 0x4). @param value 32-bit CC value. */ -static inline void midi2_msg_cc(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t index, uint32_t value) { - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_CC, channel, index & 0x7F, 0); - w[1] = value; -} - -/** @brief Build a MIDI 2.0 Program Change (MT 0x4). @param bank_valid true to include bank select. */ -static inline void midi2_msg_program(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t program, bool bank_valid, - uint8_t bank_msb, uint8_t bank_lsb) { - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_PROGRAM, channel, 0, 0); - w[1] = (bank_valid ? (UINT32_C(1) << 31) : 0) - | ((uint32_t)(program & 0x7F) << 24) - | (bank_valid ? (((uint32_t)(bank_msb & 0x7F) << 8) | (bank_lsb & 0x7F)) : 0); -} - -/** @brief Build a MIDI 2.0 Pitch Bend (MT 0x4). @param value 32-bit, 0x80000000 = center. */ -static inline void midi2_msg_pitch_bend(uint32_t *w, uint8_t group, uint8_t channel, - uint32_t value) { - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_PITCH_BEND, channel, 0, 0); - w[1] = value; -} - -/** @brief Build a MIDI 2.0 Channel Pressure (MT 0x4). @param pressure 32-bit pressure value. */ -static inline void midi2_msg_chan_pressure(uint32_t *w, uint8_t group, uint8_t channel, - uint32_t pressure) { - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_CHAN_PRESSURE, channel, 0, 0); - w[1] = pressure; -} - -/** @brief Build a MIDI 2.0 Polyphonic Key Pressure (MT 0x4). */ -static inline void midi2_msg_poly_pressure(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t note, uint32_t pressure) { - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_POLY_PRESSURE, channel, note & 0x7F, 0); - w[1] = pressure; -} - -/** @brief Build a MIDI 2.0 RPN message (MT 0x4). @param msb RPN bank. @param lsb RPN index. */ -static inline void midi2_msg_rpn(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t msb, uint8_t lsb, uint32_t value) { - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_RPN, channel, msb & 0x7F, lsb & 0x7F); - w[1] = value; -} - -/** @brief Build a MIDI 2.0 NRPN message (MT 0x4). Non-registered parameter. */ -static inline void midi2_msg_nrpn(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t msb, uint8_t lsb, uint32_t value) { - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_NRPN, channel, msb & 0x7F, lsb & 0x7F); - w[1] = value; -} - -/*--------------------------------------------------------------------+ - * Per-Note Expression (MT 0x4, 2 words) - *--------------------------------------------------------------------*/ -/** @brief Build a per-note Pitch Bend (MT 0x4). Independent pitch per note. */ -static inline void midi2_msg_per_note_pb(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t note, uint32_t value) { - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_PER_NOTE_PB, channel, note & 0x7F, 0); - w[1] = value; -} - -/** @brief Build a per-note CC (MT 0x4). Independent controller per note. */ -static inline void midi2_msg_per_note_cc(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t note, uint8_t index, uint32_t value) { - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_ASN_PER_NOTE, channel, note & 0x7F, index); - w[1] = value; -} - -/** @brief Build a per-note Management message (MT 0x4). @param detach release from voice. @param reset reset controllers. */ -static inline void midi2_msg_per_note_mgmt(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t note, bool detach, bool reset) { - uint8_t flags = (detach ? 0x02 : 0) | (reset ? 0x01 : 0); - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_PER_NOTE_MGMT, channel, note & 0x7F, flags); - w[1] = 0; -} - -/*--------------------------------------------------------------------+ - * Registered Per-Note Controller (MT 0x4, status 0x0) - * 256 controllers per note, defined by MMA/AMEI. - *--------------------------------------------------------------------*/ -/** @brief Build a Registered Per-Note Controller message (MT 0x4). - * @param index Controller index (0-255). */ -static inline void midi2_msg_reg_per_note_ctrl(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t note, uint8_t index, uint32_t value) { - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_REG_PER_NOTE, channel, note & 0x7F, index); - w[1] = value; -} - -/** @brief Build an Assignable Per-Note Controller message (MT 0x4). - * @param index Controller index (0-255). Application-specific. */ -static inline void midi2_msg_asn_per_note_ctrl(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t note, uint8_t index, uint32_t value) { - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_ASN_PER_NOTE, channel, note & 0x7F, index); - w[1] = value; -} - -/*--------------------------------------------------------------------+ - * Relative RPN/NRPN (MT 0x4, status 0x4/0x5) - * Two's complement relative value (positive = increase, negative = decrease). - * Cannot be translated to MIDI 1.0. - *--------------------------------------------------------------------*/ -/** @brief Build a Relative Registered Controller (RPN) message. */ -static inline void midi2_msg_rel_rpn(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t msb, uint8_t lsb, uint32_t value) { - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_REL_RPN, channel, msb & 0x7F, lsb & 0x7F); - w[1] = value; -} - -/** @brief Build a Relative Assignable Controller (NRPN) message. */ -static inline void midi2_msg_rel_nrpn(uint32_t *w, uint8_t group, uint8_t channel, - uint8_t msb, uint8_t lsb, uint32_t value) { - w[0] = midi2_msg_build_cv2_w0(group, MIDI2_STATUS_REL_NRPN, channel, msb & 0x7F, lsb & 0x7F); - w[1] = value; -} - -/*--------------------------------------------------------------------+ - * System Messages (MT 0x1, 1 word) - *--------------------------------------------------------------------*/ -static inline uint32_t midi2_msg_system(uint8_t group, uint8_t status) { - return ((uint32_t)MIDI2_MT_SYSTEM << 28) - | ((uint32_t)(group & 0x0F) << 24) - | ((uint32_t)status << 16); -} - -static inline uint32_t midi2_msg_system_2byte(uint8_t group, uint8_t status, uint8_t data1) { - return midi2_msg_system(group, status) | ((uint32_t)data1 << 8); -} - -static inline uint32_t midi2_msg_system_3byte(uint8_t group, uint8_t status, - uint8_t data1, uint8_t data2) { - return midi2_msg_system(group, status) | ((uint32_t)data1 << 8) | (uint32_t)data2; -} - -/*--------------------------------------------------------------------+ - * System Real-Time + System Common named wrappers (M2-104-UM section 4.3, - * v0.3.0+). Each calls the corresponding generic builder above with the - * canonical status byte. Useful for pattern-matching senders and for - * call sites that prefer the named shortcut over the magic-number form. - * All inline; zero ROM cost when not called. - *--------------------------------------------------------------------*/ - -/** @brief Tune Request (status 0xF6, 1-byte System Common). */ -static inline uint32_t midi2_msg_system_tune_request(uint8_t group) { - return midi2_msg_system(group, 0xF6); -} - -/** @brief Timing Clock (status 0xF8, 1-byte System Real-Time). */ -static inline uint32_t midi2_msg_system_timing_clock(uint8_t group) { - return midi2_msg_system(group, 0xF8); -} - -/** @brief Start (status 0xFA, 1-byte System Real-Time, sequencer start). */ -static inline uint32_t midi2_msg_system_start(uint8_t group) { - return midi2_msg_system(group, 0xFA); -} - -/** @brief Continue (status 0xFB, 1-byte System Real-Time). */ -static inline uint32_t midi2_msg_system_continue(uint8_t group) { - return midi2_msg_system(group, 0xFB); -} - -/** @brief Stop (status 0xFC, 1-byte System Real-Time). */ -static inline uint32_t midi2_msg_system_stop(uint8_t group) { - return midi2_msg_system(group, 0xFC); -} - -/** @brief Active Sensing (status 0xFE, 1-byte System Real-Time). */ -static inline uint32_t midi2_msg_system_active_sensing(uint8_t group) { - return midi2_msg_system(group, 0xFE); -} - -/** @brief System Reset (status 0xFF, 1-byte System Real-Time). */ -static inline uint32_t midi2_msg_system_reset(uint8_t group) { - return midi2_msg_system(group, 0xFF); -} - -/** @brief MIDI Time Code Quarter Frame (status 0xF1, 2-byte System Common). */ -static inline uint32_t midi2_msg_system_mtc(uint8_t group, uint8_t time_code) { - return midi2_msg_system_2byte(group, 0xF1, time_code & 0x7F); -} - -/** @brief Song Select (status 0xF3, 2-byte System Common). */ -static inline uint32_t midi2_msg_system_song_select(uint8_t group, uint8_t song) { - return midi2_msg_system_2byte(group, 0xF3, song & 0x7F); -} - -/** @brief Song Position Pointer (status 0xF2, 3-byte System Common). - * @param position 14-bit position; LSB stored at data1, MSB at data2. */ -static inline uint32_t midi2_msg_system_song_position(uint8_t group, uint16_t position) { - return midi2_msg_system_3byte(group, 0xF2, - (uint8_t)(position & 0x7F), - (uint8_t)((position >> 7) & 0x7F)); -} - -/*--------------------------------------------------------------------+ - * Flex Data (MT 0xD, 4 words) - * - * Word 0: [MT:4][group:4][format:2][address:2][channel:4][statusBank:8][status:8] - * Tempo, TimeSignature, KeySignature are group-level (address=0b01). - *--------------------------------------------------------------------*/ - -/* Internal: flex data word 0 builder with bank, address, channel, and format */ -static inline uint32_t midi2_msg_build_flex_w0_full(uint8_t group, uint8_t format, - uint8_t address, uint8_t channel, - uint8_t bank, uint8_t status) { - return ((uint32_t)MIDI2_MT_FLEX_DATA << 28) - | ((uint32_t)(group & 0x0F) << 24) - | ((uint32_t)(format & 0x03) << 22) - | ((uint32_t)(address & 0x03) << 20) - | ((uint32_t)(channel & 0x0F) << 16) - | ((uint32_t)(bank & 0xFF) << 8) - | (uint32_t)(status & 0xFF); -} - -/* Internal: flex data word 0 builder (group-level shorthand) */ -static inline uint32_t midi2_msg_build_flex_w0(uint8_t group, uint8_t status) { - return midi2_msg_build_flex_w0_full(group, 0, 0x01, 0, - MIDI2_FLEX_BANK_SETUP, status); -} - -/* Tempo: word1 = 10ns per quarter note */ -static inline void midi2_msg_tempo(uint32_t *w, uint8_t group, uint32_t ten_ns_per_qn) { - memset(w, 0, 16); - w[0] = midi2_msg_build_flex_w0(group, MIDI2_FLEX_TEMPO); - w[1] = ten_ns_per_qn; -} - -/* Time Signature: word1 = [numerator:8][denominator:8][0:16] */ -static inline void midi2_msg_time_sig(uint32_t *w, uint8_t group, - uint8_t numerator, uint8_t denominator) { - memset(w, 0, 16); - w[0] = midi2_msg_build_flex_w0(group, MIDI2_FLEX_TIME_SIG); - w[1] = ((uint32_t)numerator << 24) | ((uint32_t)denominator << 16); -} - -/* Key Signature: word1 = [sharpsFlats:4][tonicNote:4][keyType:2][0:22] - * sharpsFlats: -7 to +7 (4-bit signed). keyType: 0=major, 1=minor. - * address: 0x0a = channel, 0x01 = group. tonic: 0=unknown, 1=A..7=G. */ -static inline void midi2_msg_key_sig(uint32_t *w, uint8_t group, - int8_t sharps_flats, bool minor) { - memset(w, 0, 16); - w[0] = midi2_msg_build_flex_w0(group, MIDI2_FLEX_KEY_SIG); - uint8_t sf4 = (uint8_t)(sharps_flats & 0x0F); - uint8_t key_type = minor ? 1 : 0; - w[1] = ((uint32_t)sf4 << 28) | ((uint32_t)key_type << 22); -} - -/** @brief Build a Key Signature with tonic note and channel addressing. - * @param address 0=channel, 1=group. - * @param tonic 0=unknown, 1=A, 2=B, 3=C, 4=D, 5=E, 6=F, 7=G. - * @param key_type 0=major, 1=minor, 2=none/atonal, 3=reserved. */ -static inline void midi2_msg_key_sig_full(uint32_t *w, uint8_t group, uint8_t address, - uint8_t channel, int8_t sharps_flats, - uint8_t tonic, uint8_t key_type) { - memset(w, 0, 16); - w[0] = midi2_msg_build_flex_w0_full(group, 0, address, channel, - MIDI2_FLEX_BANK_SETUP, MIDI2_FLEX_KEY_SIG); - w[1] = ((uint32_t)(sharps_flats & 0x0F) << 28) - | ((uint32_t)(tonic & 0x0F) << 24) - | ((uint32_t)(key_type & 0x03) << 22); -} - -/* Set Metronome: group-level (address=1), format=0 (complete). - * primary_clicks: MIDI clocks per primary click - * accent_1/2/3: bar accent parts (sum = beats in bar) - * subdiv_1/2: subdivision clicks per primary click period */ -static inline void midi2_msg_metronome(uint32_t *w, uint8_t group, - uint8_t primary_clicks, - uint8_t accent_1, uint8_t accent_2, uint8_t accent_3, - uint8_t subdiv_1, uint8_t subdiv_2) { - memset(w, 0, 16); - w[0] = midi2_msg_build_flex_w0_full(group, 0, 0x01, 0, - MIDI2_FLEX_BANK_SETUP, MIDI2_FLEX_METRONOME); - w[1] = ((uint32_t)primary_clicks << 24) - | ((uint32_t)accent_1 << 16) - | ((uint32_t)accent_2 << 8) - | (uint32_t)accent_3; - w[2] = ((uint32_t)subdiv_1 << 24) - | ((uint32_t)subdiv_2 << 16); -} - -/* Set Chord Name: channel-addressable, format=0. - * Tonic: sharps_flats (4-bit signed), tonic_note (0=unknown..7=G). - * chord_type: 0x00=clear, 0x01=major, 0x07=minor, etc. (see spec Table 14) - * Alterations: up to 4 for chord, up to 2 for bass. type: 0=none, 1=add, 2=sub, 3=raise, 4=lower. - * Bass: bass_sharps_flats, bass_note, bass_chord_type. */ -static inline void midi2_msg_chord_name(uint32_t *w, uint8_t group, uint8_t address, - uint8_t channel, - int8_t tonic_sf, uint8_t tonic_note, uint8_t chord_type, - uint8_t alt1_type, uint8_t alt1_deg, - uint8_t alt2_type, uint8_t alt2_deg, - uint8_t alt3_type, uint8_t alt3_deg, - uint8_t alt4_type, uint8_t alt4_deg, - int8_t bass_sf, uint8_t bass_note, uint8_t bass_type, - uint8_t bass_alt1_type, uint8_t bass_alt1_deg, - uint8_t bass_alt2_type, uint8_t bass_alt2_deg) { - w[0] = midi2_msg_build_flex_w0_full(group, 0, address, channel, - MIDI2_FLEX_BANK_SETUP, MIDI2_FLEX_CHORD_NAME); - w[1] = ((uint32_t)(tonic_sf & 0x0F) << 28) - | ((uint32_t)(tonic_note & 0x0F) << 24) - | ((uint32_t)(chord_type & 0xFF) << 16) - | ((uint32_t)(alt1_type & 0x0F) << 12) - | ((uint32_t)(alt1_deg & 0x0F) << 8) - | ((uint32_t)(alt2_type & 0x0F) << 4) - | (uint32_t)(alt2_deg & 0x0F); - w[2] = ((uint32_t)(alt3_type & 0x0F) << 28) - | ((uint32_t)(alt3_deg & 0x0F) << 24) - | ((uint32_t)(alt4_type & 0x0F) << 20) - | ((uint32_t)(alt4_deg & 0x0F) << 16); - w[3] = ((uint32_t)(bass_sf & 0x0F) << 28) - | ((uint32_t)(bass_note & 0x0F) << 24) - | ((uint32_t)(bass_type & 0xFF) << 16) - | ((uint32_t)(bass_alt1_type & 0x0F) << 12) - | ((uint32_t)(bass_alt1_deg & 0x0F) << 8) - | ((uint32_t)(bass_alt2_type & 0x0F) << 4) - | (uint32_t)(bass_alt2_deg & 0x0F); -} - -/*--------------------------------------------------------------------+ - * Flex Data Text Messages (MT 0xD, 4 words) - * - * Bank 0x01: Metadata Text (project name, composer, copyright, etc.) - * Bank 0x02: Performance Text (lyrics, ruby, language) - * UTF-8 text, no BOM. Up to 12 bytes per UMP in words 1-3. - * Multi-UMP: format 0=complete, 1=start, 2=continue, 3=end. - *--------------------------------------------------------------------*/ - -/** @brief Build a Flex Data text message (metadata or performance text). - * @param format 0=complete, 1=start, 2=continue, 3=end. - * @param address 0=channel, 1=group. - * @param bank 0x01=metadata, 0x02=performance text. - * @param status Text subtype (see MIDI2_FLEX_TEXT_* / MIDI2_FLEX_PERF_*). - * @param text UTF-8 text data (up to 12 bytes per UMP). - * @param len Bytes of text in this UMP (0-12). */ -static inline void midi2_msg_flex_text(uint32_t *w, uint8_t group, uint8_t format, - uint8_t address, uint8_t channel, - uint8_t bank, uint8_t status, - const uint8_t *text, uint8_t len) { - if (len > 12) len = 12; - w[0] = midi2_msg_build_flex_w0_full(group, format, address, channel, bank, status); - w[1] = 0; w[2] = 0; w[3] = 0; - uint8_t i; - for (i = 0; i < len; i++) { - uint8_t wi = (uint8_t)(1 + i / 4); - uint8_t sh = (uint8_t)(24 - (i % 4) * 8); - w[wi] |= ((uint32_t)text[i] << sh); - } -} - -/*--------------------------------------------------------------------+ - * SysEx7 Single Packet (MT 0x3, 2 words) - * - * Word 0: [MT:4][group:4][status:4][numBytes:4][data0:8][data1:8] - * Word 1: [data2:8][data3:8][data4:8][data5:8] - *--------------------------------------------------------------------*/ -static inline void midi2_msg_sysex7_packet(uint32_t *w, uint8_t group, - uint8_t status, const uint8_t *data, uint8_t len) { - if (len > 6) len = 6; - w[0] = ((uint32_t)MIDI2_MT_SYSEX7 << 28) - | ((uint32_t)(group & 0x0F) << 24) - | ((uint32_t)(status | (len & 0x0F)) << 16); - w[1] = 0; - uint8_t i; - for (i = 0; i < len; i++) { - uint8_t wi = (i < 2) ? 0 : 1; - uint8_t sh = (i < 2) ? (uint8_t)(8 - i * 8) : (uint8_t)(24 - (i - 2) * 8); - w[wi] |= ((uint32_t)data[i] << sh); - } -} - -/*--------------------------------------------------------------------+ - * Utility Messages -- JR Timestamps (MT 0x0, 1 word) - * - * Word: [MT:4][group:4][status:4][0:4][timestamp:16] - * JR Clock status = 0x0010, JR Timestamp status = 0x0020 - * Timestamp unit: 1/31250 of a second (~32us) - *--------------------------------------------------------------------*/ -enum { - MIDI2_UTILITY_NOOP = 0x00, - MIDI2_UTILITY_JR_CLOCK = 0x01, - MIDI2_UTILITY_JR_TIMESTAMP = 0x02, - MIDI2_UTILITY_DCTPQ = 0x03, /* Delta Clockstamp Ticks Per Quarter Note */ - MIDI2_UTILITY_DC = 0x04, /* Delta Clockstamp (ticks since last event) */ -}; - -static inline uint32_t midi2_msg_jr_clock(uint8_t group, uint16_t timestamp) { - return ((uint32_t)MIDI2_MT_UTILITY << 28) - | ((uint32_t)(group & 0x0F) << 24) - | ((uint32_t)MIDI2_UTILITY_JR_CLOCK << 20) - | (uint32_t)timestamp; -} - -static inline uint32_t midi2_msg_jr_timestamp(uint8_t group, uint16_t timestamp) { - return ((uint32_t)MIDI2_MT_UTILITY << 28) - | ((uint32_t)(group & 0x0F) << 24) - | ((uint32_t)MIDI2_UTILITY_JR_TIMESTAMP << 20) - | (uint32_t)timestamp; -} - -/** @brief Build a Delta Clockstamp Ticks Per Quarter Note (DCTPQ) message. - * Declares the tick resolution for Delta Clockstamp messages in a MIDI Clip File. - * Word: [MT:4][reserved:4][0011:4][reserved:4][tpq:16] - * @param tpq Ticks per quarter note (1-65535, 0 = reserved). */ -static inline uint32_t midi2_msg_dctpq(uint16_t tpq) { - return ((uint32_t)MIDI2_MT_UTILITY << 28) - | ((uint32_t)MIDI2_UTILITY_DCTPQ << 20) - | (uint32_t)tpq; -} - -/** @brief Build a Delta Clockstamp (DC) message. - * Declares ticks since last event in a MIDI Clip File. - * Word: [MT:4][reserved:4][0100:4][20-bit ticks] - * @param ticks Ticks since last event (20-bit, 0-1048575). */ -static inline uint32_t midi2_msg_delta_clockstamp(uint32_t ticks) { - return ((uint32_t)MIDI2_MT_UTILITY << 28) - | ((uint32_t)MIDI2_UTILITY_DC << 20) - | (ticks & 0x000FFFFF); -} - -/*--------------------------------------------------------------------+ - * Stream Messages (MT 0xF, 4 words) - * - * Word 0: [MT:4][format:2][status:10][data:16] - * Words 1-3: payload (depends on status) - * - * format: 0b00 = complete, 0b01 = start, 0b10 = continue, 0b11 = end - *--------------------------------------------------------------------*/ -enum { - MIDI2_STREAM_ENDPOINT_DISCOVERY = 0x000, - MIDI2_STREAM_ENDPOINT_INFO = 0x001, - MIDI2_STREAM_DEVICE_IDENTITY = 0x002, - MIDI2_STREAM_ENDPOINT_NAME = 0x003, - MIDI2_STREAM_PRODUCT_INSTANCE_ID = 0x004, - MIDI2_STREAM_CONFIG_REQUEST = 0x005, - MIDI2_STREAM_CONFIG_NOTIFY = 0x006, - MIDI2_STREAM_FB_DISCOVERY = 0x010, - MIDI2_STREAM_FB_INFO = 0x011, - MIDI2_STREAM_FB_NAME = 0x012, - MIDI2_STREAM_START_OF_CLIP = 0x020, - MIDI2_STREAM_END_OF_CLIP = 0x021, -}; - -/* Internal: build stream word 0 */ -static inline uint32_t midi2_msg_build_stream_w0(uint8_t format, uint16_t status) { - return ((uint32_t)MIDI2_MT_STREAM << 28) - | ((uint32_t)(format & 0x03) << 26) - | ((uint32_t)(status & 0x3FF) << 16); -} - -/* Endpoint Discovery: request endpoint info from a device - * ump_ver_major/minor: UMP version we support - * filter: bitmask of what to request (bit 0=endpoint info, 1=device identity, - * 2=endpoint name, 3=product instance ID, 4=stream config) */ -static inline void midi2_msg_stream_endpoint_discovery(uint32_t *w, - uint8_t ump_ver_major, - uint8_t ump_ver_minor, - uint8_t filter) { - memset(w, 0, 16); - w[0] = midi2_msg_build_stream_w0(0, MIDI2_STREAM_ENDPOINT_DISCOVERY) - | ((uint32_t)ump_ver_major << 8) - | (uint32_t)ump_ver_minor; - w[1] = (uint32_t)filter; -} - -/* Endpoint Info Reply - * static_fb: true if function blocks are static - * num_fb: number of function blocks (0-31) - * midi1_proto: supports MIDI 1.0 protocol - * midi2_proto: supports MIDI 2.0 protocol - * rx_jr/tx_jr: supports JR timestamps */ -static inline void midi2_msg_stream_endpoint_info(uint32_t *w, - uint8_t ump_ver_major, - uint8_t ump_ver_minor, - bool static_fb, uint8_t num_fb, - bool midi2_proto, bool midi1_proto, - bool rx_jr, bool tx_jr) { - memset(w, 0, 16); - w[0] = midi2_msg_build_stream_w0(0, MIDI2_STREAM_ENDPOINT_INFO) - | ((uint32_t)ump_ver_major << 8) - | (uint32_t)ump_ver_minor; - w[1] = (static_fb ? (UINT32_C(1) << 31) : 0) - | ((uint32_t)(num_fb & 0x7F) << 24) - | (midi2_proto ? (UINT32_C(1) << 9) : 0) - | (midi1_proto ? (UINT32_C(1) << 8) : 0) - | (rx_jr ? (UINT32_C(1) << 1) : 0) - | (tx_jr ? UINT32_C(1) : 0); -} - -/* Device Identity Notification */ -static inline void midi2_msg_stream_device_identity(uint32_t *w, - uint32_t manufacturer_id, - uint16_t family_id, - uint16_t model_id, - uint32_t version_id) { - memset(w, 0, 16); - w[0] = midi2_msg_build_stream_w0(0, MIDI2_STREAM_DEVICE_IDENTITY); - w[1] = (manufacturer_id & 0x00FFFFFF) << 8; - w[2] = ((uint32_t)family_id << 16) | (uint32_t)model_id; - w[3] = version_id; -} - -/* Stream Configuration Request/Notify - * protocol: 0x01 = MIDI 1.0, 0x02 = MIDI 2.0 */ -static inline void midi2_msg_stream_config_request(uint32_t *w, uint8_t protocol) { - memset(w, 0, 16); - w[0] = midi2_msg_build_stream_w0(0, MIDI2_STREAM_CONFIG_REQUEST) - | ((uint32_t)protocol << 8); -} - -static inline void midi2_msg_stream_config_notify(uint32_t *w, uint8_t protocol) { - memset(w, 0, 16); - w[0] = midi2_msg_build_stream_w0(0, MIDI2_STREAM_CONFIG_NOTIFY) - | ((uint32_t)protocol << 8); -} - -/* Function Block Discovery - * fb_num: function block number to query (0xFF = all) - * filter: bitmask (bit 0 = FB info, bit 1 = FB name) */ -static inline void midi2_msg_stream_fb_discovery(uint32_t *w, uint8_t fb_num, uint8_t filter) { - memset(w, 0, 16); - w[0] = midi2_msg_build_stream_w0(0, MIDI2_STREAM_FB_DISCOVERY) - | ((uint32_t)fb_num << 8) - | (uint32_t)filter; -} - -/* Function Block Info - * active: FB is active - * fb_num: function block number - * direction: 0x00=input, 0x01=output, 0x02=bidirectional - * first_group: first group in this FB - * num_groups: number of groups - * midi_ci_ver: MIDI-CI version support (0=none, 1=1.1, 2=1.2) - * sysex8: supports SysEx8 - * protocol: 0x00=unknown, 0x01=MIDI1, 0x02=MIDI2, 0x03=both */ -static inline void midi2_msg_stream_fb_info(uint32_t *w, - bool active, uint8_t fb_num, - uint8_t direction, - uint8_t first_group, uint8_t num_groups, - uint8_t midi_ci_ver, bool sysex8, - uint8_t protocol) { - memset(w, 0, 16); - w[0] = midi2_msg_build_stream_w0(0, MIDI2_STREAM_FB_INFO) - | (active ? (UINT32_C(1) << 15) : 0) - | ((uint32_t)(fb_num & 0x7F) << 8) - | (uint32_t)(direction & 0x03); - w[1] = ((uint32_t)(first_group & 0x0F) << 24) - | ((uint32_t)(num_groups & 0x0F) << 16) - | ((uint32_t)(midi_ci_ver & 0x03) << 8) - | (sysex8 ? (UINT32_C(1) << 2) : 0) - | (uint32_t)(protocol & 0x03); -} - -/* Endpoint Name Notification (multi-packet text, up to 14 bytes per UMP). - * format: 0=complete, 1=start, 2=continue, 3=end. - * name: UTF-8 text, up to 14 bytes per UMP. */ -static inline void midi2_msg_stream_endpoint_name(uint32_t *w, uint8_t format, - const uint8_t *name, uint8_t len) { - if (len > 14) len = 14; - memset(w, 0, 16); - w[0] = midi2_msg_build_stream_w0(format, MIDI2_STREAM_ENDPOINT_NAME); - uint8_t i; - for (i = 0; i < len; i++) { - if (i < 2) { - w[0] |= ((uint32_t)name[i] << (8 - i * 8)); - } else { - uint8_t offset = (uint8_t)(i - 2); - uint8_t dwi = (uint8_t)(1 + offset / 4); - uint8_t dsh = (uint8_t)(24 - (offset % 4) * 8); - w[dwi] |= ((uint32_t)name[i] << dsh); - } - } -} - -/* Product Instance Id Notification (multi-packet text, up to 14 bytes per UMP). */ -static inline void midi2_msg_stream_product_id(uint32_t *w, uint8_t format, - const uint8_t *id, uint8_t len) { - if (len > 14) len = 14; - memset(w, 0, 16); - w[0] = midi2_msg_build_stream_w0(format, MIDI2_STREAM_PRODUCT_INSTANCE_ID); - uint8_t i; - for (i = 0; i < len; i++) { - if (i < 2) { - w[0] |= ((uint32_t)id[i] << (8 - i * 8)); - } else { - uint8_t offset = (uint8_t)(i - 2); - uint8_t dwi = (uint8_t)(1 + offset / 4); - uint8_t dsh = (uint8_t)(24 - (offset % 4) * 8); - w[dwi] |= ((uint32_t)id[i] << dsh); - } - } -} - -/* Function Block Name Notification (multi-packet text, up to 13 bytes per UMP). - * fb_num goes in w[0] bits [15:8], leaving 13 bytes for name. */ -static inline void midi2_msg_stream_fb_name(uint32_t *w, uint8_t format, - uint8_t fb_num, - const uint8_t *name, uint8_t len) { - if (len > 13) len = 13; - memset(w, 0, 16); - w[0] = midi2_msg_build_stream_w0(format, MIDI2_STREAM_FB_NAME) - | ((uint32_t)fb_num << 8); - uint8_t i; - for (i = 0; i < len; i++) { - if (i == 0) { - w[0] |= (uint32_t)name[0]; - } else { - uint8_t offset = (uint8_t)(i - 1); - uint8_t dwi = (uint8_t)(1 + offset / 4); - uint8_t dsh = (uint8_t)(24 - (offset % 4) * 8); - w[dwi] |= ((uint32_t)name[i] << dsh); - } - } -} - -/* Start/End of Clip */ -static inline void midi2_msg_stream_start_of_clip(uint32_t *w) { - memset(w, 0, 16); - w[0] = midi2_msg_build_stream_w0(0, MIDI2_STREAM_START_OF_CLIP); -} - -static inline void midi2_msg_stream_end_of_clip(uint32_t *w) { - memset(w, 0, 16); - w[0] = midi2_msg_build_stream_w0(0, MIDI2_STREAM_END_OF_CLIP); -} - -/*--------------------------------------------------------------------+ - * SysEx8 (MT 0x5, 4 words) - * - * Word 0: [MT:4][group:4][status:4][numBytes:4][streamID:8][data0:8] - * Word 1: [data1:8][data2:8][data3:8][data4:8] - * Word 2: [data5:8][data6:8][data7:8][data8:8] - * Word 3: [data9:8][data10:8][data11:8][data12:8] - * - * Max 13 data bytes per packet. 8-bit data (no 7-bit restriction). - * SysEx8 and SysEx7 coexist in the same UMP stream as different MT values. - *--------------------------------------------------------------------*/ -enum { - MIDI2_SYSEX8_COMPLETE = 0x00, - MIDI2_SYSEX8_START = 0x10, - MIDI2_SYSEX8_CONTINUE = 0x20, - MIDI2_SYSEX8_END = 0x30, -}; - -static inline void midi2_msg_sysex8_packet(uint32_t *w, uint8_t group, - uint8_t status, uint8_t stream_id, - const uint8_t *data, uint8_t len) { - if (len > 13) len = 13; - memset(w, 0, 16); - /* numBytes includes stream_id + data bytes */ - uint8_t num_bytes = (uint8_t)(len + 1); - w[0] = ((uint32_t)MIDI2_MT_DATA128 << 28) - | ((uint32_t)(group & 0x0F) << 24) - | ((uint32_t)(status | (num_bytes & 0x0F)) << 16) - | ((uint32_t)stream_id << 8); - - /* Pack data bytes: data[0] goes to w[0] bits [7:0], - * data[1..4] into w[1], data[5..8] into w[2], data[9..12] into w[3] */ - uint8_t i; - if (len >= 1) w[0] |= (uint32_t)data[0]; - for (i = 1; i < len; i++) { - uint8_t wi = (uint8_t)(1 + (i - 1) / 4); - uint8_t sh = (uint8_t)(24 - ((i - 1) % 4) * 8); - w[wi] |= ((uint32_t)data[i] << sh); - } -} - -/*--------------------------------------------------------------------+ - * Mixed Data Set (MT 0x5, status 0x8/0x9, 4 words) - * - * MDS carries non-MIDI payloads (firmware, XML, etc.) in chunks. - * Each chunk: 1 Header UMP + N Payload UMPs, all sharing mds_id. - * Cannot be translated to MIDI 1.0. - *--------------------------------------------------------------------*/ -enum { - MIDI2_MDS_HEADER = 0x80, - MIDI2_MDS_PAYLOAD = 0x90, -}; - -/** @brief Build a Mixed Data Set Header UMP. - * @param mds_id MDS ID (0-15), ties chunks together. - * @param num_bytes Number of valid bytes in this chunk (including header). - * @param num_chunks Total chunks in data set (0 = unknown). - * @param this_chunk This chunk number (starting from 1). - * @param mfr_id 16-bit Manufacturer ID (see spec 7.10). - * @param device_id Device ID (0xFFFF = all call). - * @param sub_id1 Sub ID #1. - * @param sub_id2 Sub ID #2. */ -static inline void midi2_msg_mds_header(uint32_t *w, uint8_t group, uint8_t mds_id, - uint16_t num_bytes, uint16_t num_chunks, - uint16_t this_chunk, uint16_t mfr_id, - uint16_t device_id, uint16_t sub_id1, - uint16_t sub_id2) { - w[0] = ((uint32_t)MIDI2_MT_DATA128 << 28) - | ((uint32_t)(group & 0x0F) << 24) - | ((uint32_t)(MIDI2_MDS_HEADER | (mds_id & 0x0F)) << 16) - | (uint32_t)num_bytes; - w[1] = ((uint32_t)num_chunks << 16) | (uint32_t)this_chunk; - w[2] = ((uint32_t)mfr_id << 16) | (uint32_t)device_id; - w[3] = ((uint32_t)sub_id1 << 16) | (uint32_t)sub_id2; -} - -/** @brief Build a Mixed Data Set Payload UMP. - * @param mds_id MDS ID (0-15). - * @param data Payload bytes (up to 14). - * @param len Number of payload bytes (0-14). */ -static inline void midi2_msg_mds_payload(uint32_t *w, uint8_t group, uint8_t mds_id, - const uint8_t *data, uint8_t len) { - if (len > 14) len = 14; - memset(w, 0, 16); - w[0] = ((uint32_t)MIDI2_MT_DATA128 << 28) - | ((uint32_t)(group & 0x0F) << 24) - | ((uint32_t)(MIDI2_MDS_PAYLOAD | (mds_id & 0x0F)) << 16); - /* Pack 14 data bytes into w[0] bits [15:0] + w[1..3] */ - uint8_t i; - for (i = 0; i < len; i++) { - uint8_t wi = (uint8_t)((i + 2) / 4); - uint8_t sh = (uint8_t)(24 - ((i + 2) % 4) * 8); - w[wi] |= ((uint32_t)data[i] << sh); - } -} - -/*--------------------------------------------------------------------+ - * MIDI 1.0 Byte Stream to UMP Conversion (stateless, single message) - * - * Converts a complete MIDI 1.0 message (1-3 bytes) to a UMP word (MT 0x2). - * Does NOT handle Running Status or SysEx -- that requires state (see midi2_conv). - * Useful when the platform already parsed the byte stream. - *--------------------------------------------------------------------*/ -static inline uint32_t midi2_msg_from_midi1(uint8_t group, - uint8_t status, uint8_t data1, uint8_t data2) { - return ((uint32_t)MIDI2_MT_MIDI1_CV << 28) - | ((uint32_t)(group & 0x0F) << 24) - | ((uint32_t)status << 16) - | ((uint32_t)(data1 & 0x7F) << 8) - | (uint32_t)(data2 & 0x7F); -} - -/*--------------------------------------------------------------------+ - * Protocol Translation: MT 0x2 (MIDI 1.0 CV) -> MT 0x4 (MIDI 2.0 CV) - * - * Translates a 1-word MT 0x2 message to a 2-word MT 0x4 message with - * proper value scaling per M2-104-UM v1.1.2, Section 7. - * - * Special cases: - * - Note On with velocity 0 becomes Note Off (velocity 0x8000) - * - Program Change: bank_valid = false (no bank info in MT 0x2) - * - Pitch Bend: combines data1 (LSB) + data2 (MSB) before scaling - * - * Returns true if the message was translated, false if mt2_word is not - * a Channel Voice message (wrong MT or unrecognized status). - *--------------------------------------------------------------------*/ -static inline bool midi2_msg_mt2_to_mt4(uint32_t mt2_word, uint32_t out[2]) { - if (midi2_msg_get_mt(&mt2_word) != MIDI2_MT_MIDI1_CV) return false; - - uint8_t group = (mt2_word >> 24) & 0x0F; - uint8_t status = (mt2_word >> 16) & 0xF0; - uint8_t channel = (mt2_word >> 16) & 0x0F; - uint8_t data1 = (mt2_word >> 8) & 0x7F; - uint8_t data2 = (mt2_word ) & 0x7F; - - switch (status) { - case 0x90: /* Note On */ - if (data2 == 0) { - /* velocity 0 means Note Off per MIDI 1.0 convention */ - midi2_msg_note_off(out, group, channel, data1, - midi2_msg_scale_up_7to16(64), 0); - } else { - midi2_msg_note_on(out, group, channel, data1, - midi2_msg_scale_up_7to16(data2), 0); - } - return true; - - case 0x80: /* Note Off */ - midi2_msg_note_off(out, group, channel, data1, - midi2_msg_scale_up_7to16(data2), 0); - return true; - - case 0xB0: /* Control Change */ - midi2_msg_cc(out, group, channel, data1, - midi2_msg_scale_up_7to32(data2)); - return true; - - case 0xC0: /* Program Change */ - midi2_msg_program(out, group, channel, data1, false, 0, 0); - return true; - - case 0xD0: /* Channel Pressure */ - midi2_msg_chan_pressure(out, group, channel, - midi2_msg_scale_up_7to32(data1)); - return true; - - case 0xE0: /* Pitch Bend */ - { - uint16_t bend14 = ((uint16_t)data2 << 7) | data1; - midi2_msg_pitch_bend(out, group, channel, - midi2_msg_scale_up_14to32(bend14)); - } - return true; - - case 0xA0: /* Poly Pressure */ - midi2_msg_poly_pressure(out, group, channel, data1, - midi2_msg_scale_up_7to32(data2)); - return true; - - default: - return false; - } -} - -/*--------------------------------------------------------------------+ - * Protocol Translation: MT 0x4 (MIDI 2.0 CV) -> MT 0x2 (MIDI 1.0 CV) - * - * Inverse of midi2_msg_mt2_to_mt4. Lossy by spec: MIDI 1.0 CV cannot - * carry RPN/NRPN/Rel/Per-Note in a single word (would require a 4-CC - * sequence). Those statuses are skipped (returns 0 words emitted). - * Caller detects skips by comparing emitted word count against the - * expected count (1 word per MT 0x4 message that is supported). - * - * Mapping per M2-115 section 4.2 / 4.3: - * Note On/Off : velocity 16-bit -> 7-bit - * CC : value 32-bit -> 7-bit - * Pitch Bend : 32-bit -> 14-bit (LSB / MSB split) - * Channel Pressure : 32-bit -> 7-bit - * Poly Pressure : 32-bit -> 7-bit - * Program Change : program byte preserved; bank dropped - * Per-Note CC/PB/Mgmt, RPN/NRPN/Rel: dropped (no MIDI 1.0 form) - * - * @return number of MT 0x2 words written (0 or 1). - * (v0.3.0+) */ -static inline uint32_t midi2_msg_mt4_to_mt2(const uint32_t mt4_words[2], - uint32_t *out_word) { - if (out_word == NULL) return 0; - uint8_t mt = (uint8_t)((mt4_words[0] >> 28) & 0x0Fu); - if (mt != MIDI2_MT_MIDI2_CV) return 0; - uint8_t grp = (uint8_t)((mt4_words[0] >> 24) & 0x0Fu); - uint8_t stat = (uint8_t)((mt4_words[0] >> 16) & 0xFFu); - uint8_t hi = (uint8_t)(stat & 0xF0u); - uint8_t ch = (uint8_t)(stat & 0x0Fu); - - switch (hi) { - case MIDI2_STATUS_NOTE_OFF: - case MIDI2_STATUS_NOTE_ON: { - uint8_t note = (uint8_t)((mt4_words[0] >> 8) & 0x7Fu); - uint16_t vel16 = (uint16_t)((mt4_words[1] >> 16) & 0xFFFFu); - uint8_t vel7 = midi2_msg_scale_down_16to7(vel16); - *out_word = ((uint32_t)MIDI2_MT_MIDI1_CV << 28) - | ((uint32_t)grp << 24) - | ((uint32_t)hi << 16) - | ((uint32_t)ch << 16) - | ((uint32_t)note << 8) - | (uint32_t)vel7; - return 1; - } - case MIDI2_STATUS_POLY_PRESSURE: { - uint8_t note = (uint8_t)((mt4_words[0] >> 8) & 0x7Fu); - uint8_t v7 = midi2_msg_scale_down_32to7(mt4_words[1]); - *out_word = ((uint32_t)MIDI2_MT_MIDI1_CV << 28) - | ((uint32_t)grp << 24) - | ((uint32_t)MIDI2_STATUS_POLY_PRESSURE << 16) - | ((uint32_t)ch << 16) - | ((uint32_t)note << 8) - | (uint32_t)v7; - return 1; - } - case MIDI2_STATUS_CC: { - uint8_t cc = (uint8_t)((mt4_words[0] >> 8) & 0x7Fu); - uint8_t v7 = midi2_msg_scale_down_32to7(mt4_words[1]); - *out_word = ((uint32_t)MIDI2_MT_MIDI1_CV << 28) - | ((uint32_t)grp << 24) - | ((uint32_t)MIDI2_STATUS_CC << 16) - | ((uint32_t)ch << 16) - | ((uint32_t)cc << 8) - | (uint32_t)v7; - return 1; - } - case MIDI2_STATUS_PROGRAM: { - uint8_t prog = (uint8_t)((mt4_words[1] >> 24) & 0x7Fu); - *out_word = ((uint32_t)MIDI2_MT_MIDI1_CV << 28) - | ((uint32_t)grp << 24) - | ((uint32_t)MIDI2_STATUS_PROGRAM << 16) - | ((uint32_t)ch << 16) - | ((uint32_t)prog << 8); - return 1; - } - case MIDI2_STATUS_CHAN_PRESSURE: { - uint8_t v7 = midi2_msg_scale_down_32to7(mt4_words[1]); - *out_word = ((uint32_t)MIDI2_MT_MIDI1_CV << 28) - | ((uint32_t)grp << 24) - | ((uint32_t)MIDI2_STATUS_CHAN_PRESSURE << 16) - | ((uint32_t)ch << 16) - | ((uint32_t)v7 << 8); - return 1; - } - case MIDI2_STATUS_PITCH_BEND: { - uint16_t pb14 = midi2_msg_scale_down_32to14(mt4_words[1]); - *out_word = ((uint32_t)MIDI2_MT_MIDI1_CV << 28) - | ((uint32_t)grp << 24) - | ((uint32_t)MIDI2_STATUS_PITCH_BEND << 16) - | ((uint32_t)ch << 16) - | ((uint32_t)(pb14 & 0x7Fu) << 8) - | (uint32_t)((pb14 >> 7) & 0x7Fu); - return 1; - } - default: - /* RPN/NRPN/Rel/Per-Note dropped; caller detects via count. */ - return 0; - } -} - -/*--------------------------------------------------------------------+ - * USB MIDI 1.0 cable event -> UMP MT 0x2 - * - * USB MIDI v1.0 class delivers Channel Voice and System Common - * messages as 4-byte cable events: - * byte 0 = (cable_number << 4) | CIN - * byte 1 = MIDI status byte - * byte 2 = data 1 - * byte 3 = data 2 - * Packed LSB-first into the uint32_t argument. - * - * Supported CINs: 0x2, 0x3 (System Common), 0x8-0xE (Channel Voice). - * Reserved CINs (0x0, 0x1) and SysEx fragments (0x4-0x7, 0xF) return - * false; the latter need stateful reassembly handled by midi2_conv. - * - * @return true on success, false on unsupported CIN or NULL output. - * (v0.3.0+) */ -static inline bool midi2_msg_cable_event_to_ump(uint32_t cable_event, - uint8_t group, - uint32_t *ump_out) { - if (ump_out == NULL) return false; - uint8_t b0 = (uint8_t)(cable_event & 0xFFu); - uint8_t status = (uint8_t)((cable_event >> 8) & 0xFFu); - uint8_t data1 = (uint8_t)((cable_event >> 16) & 0xFFu); - uint8_t data2 = (uint8_t)((cable_event >> 24) & 0xFFu); - uint8_t cin = (uint8_t)(b0 & 0x0Fu); - - switch (cin) { - case 0x2: case 0x3: - case 0x8: case 0x9: case 0xA: case 0xB: - case 0xC: case 0xD: case 0xE: - *ump_out = ((uint32_t)MIDI2_MT_MIDI1_CV << 28) - | ((uint32_t)(group & 0x0Fu) << 24) - | ((uint32_t)status << 16) - | ((uint32_t)(data1 & 0x7Fu) << 8) - | ((uint32_t)(data2 & 0x7Fu)); - return true; - default: - /* Reserved (0x0, 0x1) or SysEx fragment (0x4-0x7, 0xF). - * SysEx fragments are handled by midi2_conv (stateful). */ - return false; - } -} - -/* == midi2_ci_msg ======================================================== */ - - -/* - * midi2_ci_msg.h - MIDI-CI message construction and parsing - * - * Part of midi2 - Portable MIDI 2.0 library (C99) - * https://github.com/sauloverissimo/midi2 - * - * Spec: MIDI-CI (M2-101-UM v1.2, Jun 2023) - * Version: 0.3.0 - */ - - - - -/*====================================================================+ - * midi2_ci_msg -- MIDI-CI message construction and parsing - * - * Header-only, stateless. Builds and reads MIDI-CI SysEx payloads - * per M2-101-UM MIDI-CI Specification v1.2. - * - * All build functions write into a caller-provided buffer and return - * the number of bytes written. The buffer does NOT include F0/F7 - * delimiters (those are added by the SysEx transport layer). - * - * All parse functions extract fields from a received SysEx payload - * (also without F0/F7). - *====================================================================*/ - -/*--------------------------------------------------------------------+ - * Constants - *--------------------------------------------------------------------*/ - -#define MIDI2_CI_BROADCAST_MUID UINT32_C(0x0FFFFFFF) -#define MIDI2_CI_VERSION_1 0x01 -#define MIDI2_CI_VERSION_2 0x02 /* current: MIDI-CI v1.2 */ - -/*--------------------------------------------------------------------+ - * Sub-ID#2 values (Appendix D, M2-101-UM) - *--------------------------------------------------------------------*/ -enum { - /* Category 7: Management (0x70-0x7F) */ - MIDI2_CI_DISCOVERY = 0x70, - MIDI2_CI_DISCOVERY_REPLY = 0x71, - MIDI2_CI_ENDPOINT_INFO = 0x72, - MIDI2_CI_ENDPOINT_INFO_REPLY = 0x73, - MIDI2_CI_ACK = 0x7D, - MIDI2_CI_INVALIDATE_MUID = 0x7E, - MIDI2_CI_NAK = 0x7F, - - /* Category 2: Profile Configuration (0x20-0x2F) */ - MIDI2_CI_PROFILE_INQUIRY = 0x20, - MIDI2_CI_PROFILE_INQUIRY_REPLY = 0x21, - MIDI2_CI_SET_PROFILE_ON = 0x22, - MIDI2_CI_SET_PROFILE_OFF = 0x23, - MIDI2_CI_PROFILE_ENABLED = 0x24, - MIDI2_CI_PROFILE_DISABLED = 0x25, - MIDI2_CI_PROFILE_ADDED = 0x26, - MIDI2_CI_PROFILE_REMOVED = 0x27, - MIDI2_CI_PROFILE_DETAILS = 0x28, - MIDI2_CI_PROFILE_DETAILS_REPLY = 0x29, - MIDI2_CI_PROFILE_SPECIFIC_DATA = 0x2F, - - /* Category 3: Property Exchange (0x30-0x3F) */ - MIDI2_CI_PE_CAPABILITY = 0x30, - MIDI2_CI_PE_CAPABILITY_REPLY = 0x31, - MIDI2_CI_PE_GET = 0x34, - MIDI2_CI_PE_GET_REPLY = 0x35, - MIDI2_CI_PE_SET = 0x36, - MIDI2_CI_PE_SET_REPLY = 0x37, - MIDI2_CI_PE_SUBSCRIBE = 0x38, - MIDI2_CI_PE_SUBSCRIBE_REPLY = 0x39, - MIDI2_CI_PE_NOTIFY = 0x3F, - - /* Category 4: Process Inquiry (0x40-0x4F) */ - MIDI2_CI_PI_CAPABILITY = 0x40, - MIDI2_CI_PI_CAPABILITY_REPLY = 0x41, - MIDI2_CI_PI_MIDI_REPORT = 0x42, - MIDI2_CI_PI_MIDI_REPORT_REPLY = 0x43, - MIDI2_CI_PI_MIDI_REPORT_END = 0x44, -}; - -/*--------------------------------------------------------------------+ - * Capability Inquiry Category Supported bitmap (Table 7) - *--------------------------------------------------------------------*/ -enum { - MIDI2_CI_CAT_PROFILE_CONFIG = 0x04, /* bit 2 */ - MIDI2_CI_CAT_PROPERTY_EXCHANGE = 0x08, /* bit 3 */ - MIDI2_CI_CAT_PROCESS_INQUIRY = 0x10, /* bit 4 */ -}; - -/*--------------------------------------------------------------------+ - * NAK Status Codes (Table 16) - *--------------------------------------------------------------------*/ -enum { - MIDI2_CI_NAK_OK = 0x00, - MIDI2_CI_NAK_NOT_SUPPORTED = 0x01, - MIDI2_CI_NAK_VERSION_ERR = 0x02, - MIDI2_CI_NAK_CH_NOT_IN_USE = 0x03, - MIDI2_CI_NAK_PROFILE_NOT_SUPP = 0x04, - MIDI2_CI_NAK_TERMINATE_PE = 0x20, - MIDI2_CI_NAK_PE_OUT_OF_SEQ = 0x21, - MIDI2_CI_NAK_ERROR_RETRY = 0x40, - MIDI2_CI_NAK_MALFORMED = 0x41, - MIDI2_CI_NAK_TIMEOUT = 0x42, - MIDI2_CI_NAK_BUSY = 0x43, -}; - -/*--------------------------------------------------------------------+ - * ACK Status Codes (Table 14) - *--------------------------------------------------------------------*/ -enum { - MIDI2_CI_ACK_OK = 0x00, - MIDI2_CI_ACK_TIMEOUT_WAIT = 0x10, -}; - -/*--------------------------------------------------------------------+ - * MUID utilities - *--------------------------------------------------------------------*/ - -/** Read 28-bit MUID from 4 bytes (LSB first, 7-bit encoding). */ -static inline uint32_t midi2_ci_read_muid(const uint8_t *p) { - return (uint32_t)(p[0] & 0x7F) - | ((uint32_t)(p[1] & 0x7F) << 7) - | ((uint32_t)(p[2] & 0x7F) << 14) - | ((uint32_t)(p[3] & 0x7F) << 21); -} - -/** Write 28-bit MUID as 4 bytes (LSB first, 7-bit encoding). */ -static inline void midi2_ci_write_muid(uint8_t *p, uint32_t muid) { - p[0] = (uint8_t)((muid >> 0) & 0x7F); - p[1] = (uint8_t)((muid >> 7) & 0x7F); - p[2] = (uint8_t)((muid >> 14) & 0x7F); - p[3] = (uint8_t)((muid >> 21) & 0x7F); -} - -/*--------------------------------------------------------------------+ - * Common header: parse - * - * Standard CI SysEx layout (without F0/F7): - * [0] 0x7E Universal System Exclusive - * [1] Device ID (0x00-0x0F = channel, 0x7E = group, 0x7F = function block) - * [2] 0x0D MIDI-CI Sub-ID#1 - * [3] Sub-ID#2 (message type) - * [4] MIDI-CI Message Version/Format - * [5..8] Source MUID (4 bytes, LSB first) - * [9..12] Destination MUID (4 bytes, LSB first) - * [13..] Message-specific data - *--------------------------------------------------------------------*/ - -static inline uint8_t midi2_ci_get_device_id(const uint8_t *d) { return d[1]; } -static inline uint8_t midi2_ci_get_sub_id(const uint8_t *d) { return d[3]; } -static inline uint8_t midi2_ci_get_version(const uint8_t *d) { return d[4]; } -static inline uint32_t midi2_ci_get_src_muid(const uint8_t *d) { return midi2_ci_read_muid(&d[5]); } -static inline uint32_t midi2_ci_get_dst_muid(const uint8_t *d) { return midi2_ci_read_muid(&d[9]); } - -/** Check if SysEx payload is a MIDI-CI message (7E xx 0D ...). */ -static inline bool midi2_ci_is_ci(const uint8_t *d, uint16_t len) { - return len >= 13 && d[0] == 0x7E && d[2] == 0x0D; -} - -/*--------------------------------------------------------------------+ - * Common header: build - * - * Returns offset after header (13 bytes). Caller continues writing - * message-specific data at the returned offset. - *--------------------------------------------------------------------*/ - -static inline uint16_t midi2_ci_build_header(uint8_t *buf, uint8_t device_id, - uint8_t sub_id, uint8_t version, - uint32_t src_muid, uint32_t dst_muid) { - buf[0] = 0x7E; - buf[1] = device_id; - buf[2] = 0x0D; - buf[3] = sub_id; - buf[4] = version; - midi2_ci_write_muid(&buf[5], src_muid); - midi2_ci_write_muid(&buf[9], dst_muid); - return 13; -} - -/*--------------------------------------------------------------------+ - * 14-bit value read/write (2 bytes, LSB first, 7-bit per byte) - * - * All multi-byte fields inside SysEx use 7-bit encoding (bit 7 = 0). - * Range: 0 to 16383 (0x3FFF). Used for profile counts, data lengths, - * chunk numbers, and channel counts in MIDI-CI messages. - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_read_14(const uint8_t *p) { - return (uint16_t)(p[0] & 0x7F) | ((uint16_t)(p[1] & 0x7F) << 7); -} -static inline void midi2_ci_write_14(uint8_t *p, uint16_t v) { - p[0] = (uint8_t)(v & 0x7F); - p[1] = (uint8_t)((v >> 7) & 0x7F); -} - -/*--------------------------------------------------------------------+ - * 28-bit value read/write (4 bytes, LSB first, 7-bit each) - *--------------------------------------------------------------------*/ -static inline uint32_t midi2_ci_read_28(const uint8_t *p) { - return midi2_ci_read_muid(p); /* same encoding */ -} -static inline void midi2_ci_write_28(uint8_t *p, uint32_t v) { - midi2_ci_write_muid(p, v); -} - -/*--------------------------------------------------------------------+ - * Parse helpers for common message fields - * - * All offsets assume standard header (13 bytes). Message-specific data - * starts at byte 13. These extract fields without the caller needing - * to know byte offsets. - *--------------------------------------------------------------------*/ - -/* Discovery / Discovery Reply: device identification fields at offset 13. - * Manufacturer ID: 3 bytes, literal SysEx ID bytes (all <= 0x7F). - * Family/Model: 2 bytes each, 7-bit LSB-first (14-bit value). - * SW Revision: 4 bytes, 7-bit LSB-first (28-bit value). - * These match the "Device Inquiry" Universal SysEx format (section 5.5.1). */ -static inline uint32_t midi2_ci_get_mfr_id(const uint8_t *d) { - return (uint32_t)d[13] | ((uint32_t)d[14] << 8) | ((uint32_t)d[15] << 16); -} -static inline uint16_t midi2_ci_get_family(const uint8_t *d) { - return midi2_ci_read_14(&d[16]); -} -static inline uint16_t midi2_ci_get_model(const uint8_t *d) { - return midi2_ci_read_14(&d[18]); -} -static inline uint32_t midi2_ci_get_sw_rev(const uint8_t *d) { - return midi2_ci_read_28(&d[20]); -} -static inline uint8_t midi2_ci_get_ci_category(const uint8_t *d) { - return d[24]; -} -static inline uint32_t midi2_ci_get_max_sysex(const uint8_t *d) { - return midi2_ci_read_28(&d[25]); -} - -/* Invalidate MUID: target MUID at offset 13 */ -static inline uint32_t midi2_ci_get_target_muid(const uint8_t *d) { - return midi2_ci_read_muid(&d[13]); -} - -/* ACK/NAK (v2+): fields after header */ -static inline uint8_t midi2_ci_get_orig_sub_id(const uint8_t *d) { return d[13]; } -static inline uint8_t midi2_ci_get_nak_status_code(const uint8_t *d) { return d[14]; } -static inline uint8_t midi2_ci_get_nak_status_data(const uint8_t *d) { return d[15]; } - -/* Profile messages: profile ID at offset 13 (after header) */ -static inline const uint8_t *midi2_ci_get_profile_id(const uint8_t *d) { return &d[13]; } - -/* Profile Inquiry Reply: counts */ -static inline uint16_t midi2_ci_get_enabled_count(const uint8_t *d) { - return midi2_ci_read_14(&d[13]); -} - -/* PE data messages: request_id at offset 13 */ -static inline uint8_t midi2_ci_get_pe_request_id(const uint8_t *d) { return d[13]; } -static inline uint16_t midi2_ci_get_pe_header_len(const uint8_t *d) { - return midi2_ci_read_14(&d[14]); -} - -/* Process Inquiry MIDI Report: bitmaps */ -static inline uint8_t midi2_ci_get_pi_msg_data_control(const uint8_t *d) { return d[13]; } -static inline uint8_t midi2_ci_get_pi_system_bitmap(const uint8_t *d) { return d[14]; } -static inline uint8_t midi2_ci_get_pi_channel_ctrl_bitmap(const uint8_t *d) { return d[16]; } -static inline uint8_t midi2_ci_get_pi_note_data_bitmap(const uint8_t *d) { return d[17]; } - -/*====================================================================+ - * CATEGORY 7: MANAGEMENT MESSAGES - *====================================================================*/ - -/*--------------------------------------------------------------------+ - * Discovery (0x70) -- Table 6 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_discovery( - uint8_t *buf, uint8_t version, uint32_t src_muid, - uint32_t mfr_id, uint16_t family, uint16_t model, uint32_t sw_rev, - uint8_t ci_category, uint32_t max_sysex, uint8_t output_path_id) { - uint16_t p = midi2_ci_build_header(buf, 0x7F, MIDI2_CI_DISCOVERY, version, - src_muid, MIDI2_CI_BROADCAST_MUID); - /* Device Manufacturer (3 bytes SysEx ID) */ - buf[p++] = (uint8_t)((mfr_id >> 0) & 0x7F); - buf[p++] = (uint8_t)((mfr_id >> 8) & 0x7F); - buf[p++] = (uint8_t)((mfr_id >> 16) & 0x7F); - /* Device Family (2 bytes LSB first) */ - buf[p++] = (uint8_t)(family & 0x7F); - buf[p++] = (uint8_t)((family >> 7) & 0x7F); - /* Model Number (2 bytes LSB first) */ - buf[p++] = (uint8_t)(model & 0x7F); - buf[p++] = (uint8_t)((model >> 7) & 0x7F); - /* Software Revision (4 bytes) */ - midi2_ci_write_28(&buf[p], sw_rev); p += 4; - /* Capability Inquiry Category Supported */ - buf[p++] = ci_category; - /* Receivable Maximum SysEx Size (4 bytes LSB first) */ - midi2_ci_write_28(&buf[p], max_sysex); p += 4; - /* Output Path Id (v2+) */ - if (version >= MIDI2_CI_VERSION_2) { - buf[p++] = output_path_id; - } - return p; -} - -/*--------------------------------------------------------------------+ - * Reply to Discovery (0x71) -- Table 8 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_discovery_reply( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint32_t mfr_id, uint16_t family, uint16_t model, uint32_t sw_rev, - uint8_t ci_category, uint32_t max_sysex, - uint8_t output_path_id, uint8_t function_block) { - uint16_t p = midi2_ci_build_header(buf, 0x7F, MIDI2_CI_DISCOVERY_REPLY, version, - src_muid, dst_muid); - buf[p++] = (uint8_t)((mfr_id >> 0) & 0x7F); - buf[p++] = (uint8_t)((mfr_id >> 8) & 0x7F); - buf[p++] = (uint8_t)((mfr_id >> 16) & 0x7F); - buf[p++] = (uint8_t)(family & 0x7F); - buf[p++] = (uint8_t)((family >> 7) & 0x7F); - buf[p++] = (uint8_t)(model & 0x7F); - buf[p++] = (uint8_t)((model >> 7) & 0x7F); - midi2_ci_write_28(&buf[p], sw_rev); p += 4; - buf[p++] = ci_category; - midi2_ci_write_28(&buf[p], max_sysex); p += 4; - if (version >= MIDI2_CI_VERSION_2) { - buf[p++] = output_path_id; - buf[p++] = function_block; - } - return p; -} - -/*--------------------------------------------------------------------+ - * Inquiry: Endpoint Information (0x72) -- Table 9 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_endpoint_info( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t status) { - uint16_t p = midi2_ci_build_header(buf, 0x7F, MIDI2_CI_ENDPOINT_INFO, version, - src_muid, dst_muid); - buf[p++] = status; - return p; -} - -/*--------------------------------------------------------------------+ - * Reply to Endpoint Information (0x73) -- Table 11 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_endpoint_info_reply( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t status, const uint8_t *info_data, uint16_t info_len) { - uint16_t p = midi2_ci_build_header(buf, 0x7F, MIDI2_CI_ENDPOINT_INFO_REPLY, version, - src_muid, dst_muid); - buf[p++] = status; - midi2_ci_write_14(&buf[p], info_len); p += 2; - if (info_data && info_len > 0) { - memcpy(&buf[p], info_data, info_len); - p += info_len; - } - return p; -} - -/*--------------------------------------------------------------------+ - * Invalidate MUID (0x7E) -- Table 12 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_invalidate_muid( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t target_muid) { - uint16_t p = midi2_ci_build_header(buf, 0x7F, MIDI2_CI_INVALIDATE_MUID, version, - src_muid, MIDI2_CI_BROADCAST_MUID); - midi2_ci_write_muid(&buf[p], target_muid); p += 4; - return p; -} - -/*--------------------------------------------------------------------+ - * ACK (0x7D) -- Table 13 (v2+) - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_ack( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t device_id, uint8_t orig_sub_id, - uint8_t status_code, uint8_t status_data, - const uint8_t *details, uint16_t msg_len, const uint8_t *msg_text) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_ACK, version, - src_muid, dst_muid); - buf[p++] = orig_sub_id; - buf[p++] = status_code; - buf[p++] = status_data; - /* 5 bytes details */ - if (details) { memcpy(&buf[p], details, 5); } else { memset(&buf[p], 0, 5); } - p += 5; - /* Message text */ - midi2_ci_write_14(&buf[p], msg_len); p += 2; - if (msg_text && msg_len > 0) { - memcpy(&buf[p], msg_text, msg_len); - p += msg_len; - } - return p; -} - -/*--------------------------------------------------------------------+ - * NAK (0x7F) -- Table 15 (v2+) - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_nak( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t device_id, uint8_t orig_sub_id, - uint8_t status_code, uint8_t status_data, - const uint8_t *details, uint16_t msg_len, const uint8_t *msg_text) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_NAK, version, - src_muid, dst_muid); - if (version >= MIDI2_CI_VERSION_2) { - buf[p++] = orig_sub_id; - buf[p++] = status_code; - buf[p++] = status_data; - if (details) { memcpy(&buf[p], details, 5); } else { memset(&buf[p], 0, 5); } - p += 5; - midi2_ci_write_14(&buf[p], msg_len); p += 2; - if (msg_text && msg_len > 0) { - memcpy(&buf[p], msg_text, msg_len); - p += msg_len; - } - } - return p; -} - -/*====================================================================+ - * CATEGORY 2: PROFILE CONFIGURATION MESSAGES - *====================================================================*/ - -/*--------------------------------------------------------------------+ - * Profile Inquiry (0x20) -- Table 17 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_profile_inquiry( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t device_id) { - return midi2_ci_build_header(buf, device_id, MIDI2_CI_PROFILE_INQUIRY, version, - src_muid, dst_muid); -} - -/*--------------------------------------------------------------------+ - * Reply to Profile Inquiry (0x21) -- Table 18 - * enabled/disabled: arrays of 5-byte profile IDs - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_profile_inquiry_reply( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t device_id, - const uint8_t (*enabled)[5], uint16_t enabled_count, - const uint8_t (*disabled)[5], uint16_t disabled_count) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_PROFILE_INQUIRY_REPLY, - version, src_muid, dst_muid); - midi2_ci_write_14(&buf[p], enabled_count); p += 2; - { uint16_t i; for (i = 0; i < enabled_count; i++) { memcpy(&buf[p], enabled[i], 5); p += 5; } } - midi2_ci_write_14(&buf[p], disabled_count); p += 2; - { uint16_t i; for (i = 0; i < disabled_count; i++) { memcpy(&buf[p], disabled[i], 5); p += 5; } } - return p; -} - -/*--------------------------------------------------------------------+ - * Set Profile On (0x22) -- Table 24 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_set_profile_on( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t device_id, const uint8_t profile_id[5], uint16_t num_channels) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_SET_PROFILE_ON, - version, src_muid, dst_muid); - memcpy(&buf[p], profile_id, 5); p += 5; - if (version >= MIDI2_CI_VERSION_2) { - midi2_ci_write_14(&buf[p], num_channels); p += 2; - } - return p; -} - -/*--------------------------------------------------------------------+ - * Set Profile Off (0x23) -- Table 25 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_set_profile_off( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t device_id, const uint8_t profile_id[5]) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_SET_PROFILE_OFF, - version, src_muid, dst_muid); - memcpy(&buf[p], profile_id, 5); p += 5; - if (version >= MIDI2_CI_VERSION_2) { - buf[p++] = 0x00; buf[p++] = 0x00; /* reserved */ - } - return p; -} - -/*--------------------------------------------------------------------+ - * Profile Enabled Report (0x24) -- Table 26 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_profile_enabled( - uint8_t *buf, uint8_t version, uint32_t src_muid, - uint8_t device_id, const uint8_t profile_id[5], uint16_t num_channels) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_PROFILE_ENABLED, - version, src_muid, MIDI2_CI_BROADCAST_MUID); - memcpy(&buf[p], profile_id, 5); p += 5; - if (version >= MIDI2_CI_VERSION_2) { - midi2_ci_write_14(&buf[p], num_channels); p += 2; - } - return p; -} - -/*--------------------------------------------------------------------+ - * Profile Disabled Report (0x25) -- Table 27 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_profile_disabled( - uint8_t *buf, uint8_t version, uint32_t src_muid, - uint8_t device_id, const uint8_t profile_id[5], uint16_t num_channels) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_PROFILE_DISABLED, - version, src_muid, MIDI2_CI_BROADCAST_MUID); - memcpy(&buf[p], profile_id, 5); p += 5; - if (version >= MIDI2_CI_VERSION_2) { - midi2_ci_write_14(&buf[p], num_channels); p += 2; - } - return p; -} - -/*--------------------------------------------------------------------+ - * Profile Added Report (0x26) -- Table 20 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_profile_added( - uint8_t *buf, uint8_t version, uint32_t src_muid, - uint8_t device_id, const uint8_t profile_id[5]) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_PROFILE_ADDED, - version, src_muid, MIDI2_CI_BROADCAST_MUID); - memcpy(&buf[p], profile_id, 5); p += 5; - return p; -} - -/*--------------------------------------------------------------------+ - * Profile Removed Report (0x27) -- Table 21 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_profile_removed( - uint8_t *buf, uint8_t version, uint32_t src_muid, - uint8_t device_id, const uint8_t profile_id[5]) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_PROFILE_REMOVED, - version, src_muid, MIDI2_CI_BROADCAST_MUID); - memcpy(&buf[p], profile_id, 5); p += 5; - return p; -} - -/*--------------------------------------------------------------------+ - * Profile Details Inquiry (0x28) -- Table 22 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_profile_details( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t device_id, const uint8_t profile_id[5], uint8_t inquiry_target) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_PROFILE_DETAILS, - version, src_muid, dst_muid); - memcpy(&buf[p], profile_id, 5); p += 5; - buf[p++] = inquiry_target; - return p; -} - -/*--------------------------------------------------------------------+ - * Reply to Profile Details (0x29) -- Table 23 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_profile_details_reply( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t device_id, const uint8_t profile_id[5], - uint8_t inquiry_target, const uint8_t *data, uint16_t data_len) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_PROFILE_DETAILS_REPLY, - version, src_muid, dst_muid); - memcpy(&buf[p], profile_id, 5); p += 5; - buf[p++] = inquiry_target; - midi2_ci_write_14(&buf[p], data_len); p += 2; - if (data && data_len > 0) { memcpy(&buf[p], data, data_len); p += data_len; } - return p; -} - -/*--------------------------------------------------------------------+ - * Profile Specific Data (0x2F) -- Table 28 - * - * Note: When dst_muid is Broadcast, data_len shall not exceed 512 bytes - * and the message shall use chunking if needed (per spec 7.12). - * This function does not enforce the limit -- the caller is responsible. - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_profile_specific_data( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t device_id, const uint8_t profile_id[5], - const uint8_t *data, uint32_t data_len) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_PROFILE_SPECIFIC_DATA, - version, src_muid, dst_muid); - memcpy(&buf[p], profile_id, 5); p += 5; - midi2_ci_write_28(&buf[p], data_len); p += 4; - if (data && data_len > 0) { - memcpy(&buf[p], data, data_len); - p += (uint16_t)data_len; - } - return p; -} - -/*====================================================================+ - * CATEGORY 3: PROPERTY EXCHANGE MESSAGES - *====================================================================*/ - -/*--------------------------------------------------------------------+ - * PE Capabilities Inquiry (0x30) -- Table 30 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_pe_capability( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t max_simultaneous, uint8_t pe_ver_major, uint8_t pe_ver_minor) { - uint16_t p = midi2_ci_build_header(buf, 0x7F, MIDI2_CI_PE_CAPABILITY, version, - src_muid, dst_muid); - buf[p++] = max_simultaneous; - if (version >= MIDI2_CI_VERSION_2) { - buf[p++] = pe_ver_major; - buf[p++] = pe_ver_minor; - } - return p; -} - -/*--------------------------------------------------------------------+ - * Reply to PE Capabilities (0x31) -- Table 32 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_pe_capability_reply( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t max_simultaneous, uint8_t pe_ver_major, uint8_t pe_ver_minor) { - uint16_t p = midi2_ci_build_header(buf, 0x7F, MIDI2_CI_PE_CAPABILITY_REPLY, version, - src_muid, dst_muid); - buf[p++] = max_simultaneous; - if (version >= MIDI2_CI_VERSION_2) { - buf[p++] = pe_ver_major; - buf[p++] = pe_ver_minor; - } - return p; -} - -/*--------------------------------------------------------------------+ - * PE Data Message (generic builder for Get/Set/Subscribe/Notify) - * - * Used by: 0x34 Get, 0x35 Get Reply, 0x36 Set, 0x37 Set Reply, - * 0x38 Subscribe, 0x39 Subscribe Reply, 0x3F Notify - * - * All PE data messages share the same structure: - * header + request_id + header_len + header_data + - * num_chunks + this_chunk + body_len + body_data - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_pe_data( - uint8_t *buf, uint8_t version, uint8_t sub_id, - uint32_t src_muid, uint32_t dst_muid, - uint8_t request_id, - const uint8_t *header_data, uint16_t header_len, - uint16_t num_chunks, uint16_t this_chunk, - const uint8_t *body_data, uint16_t body_len) { - uint16_t p = midi2_ci_build_header(buf, 0x7F, sub_id, version, - src_muid, dst_muid); - buf[p++] = request_id; - /* Header data */ - midi2_ci_write_14(&buf[p], header_len); p += 2; - if (header_data && header_len > 0) { memcpy(&buf[p], header_data, header_len); p += header_len; } - /* Chunk info */ - midi2_ci_write_14(&buf[p], num_chunks); p += 2; - midi2_ci_write_14(&buf[p], this_chunk); p += 2; - /* Body data */ - midi2_ci_write_14(&buf[p], body_len); p += 2; - if (body_data && body_len > 0) { memcpy(&buf[p], body_data, body_len); p += body_len; } - return p; -} - -/* Convenience wrappers */ -static inline uint16_t midi2_ci_build_pe_get( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t request_id, const uint8_t *header, uint16_t header_len) { - return midi2_ci_build_pe_data(buf, version, MIDI2_CI_PE_GET, src_muid, dst_muid, - request_id, header, header_len, 1, 1, NULL, 0); -} - -static inline uint16_t midi2_ci_build_pe_get_reply( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t request_id, const uint8_t *header, uint16_t header_len, - uint16_t num_chunks, uint16_t this_chunk, - const uint8_t *body, uint16_t body_len) { - return midi2_ci_build_pe_data(buf, version, MIDI2_CI_PE_GET_REPLY, src_muid, dst_muid, - request_id, header, header_len, num_chunks, this_chunk, - body, body_len); -} - -static inline uint16_t midi2_ci_build_pe_set( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t request_id, const uint8_t *header, uint16_t header_len, - uint16_t num_chunks, uint16_t this_chunk, - const uint8_t *body, uint16_t body_len) { - return midi2_ci_build_pe_data(buf, version, MIDI2_CI_PE_SET, src_muid, dst_muid, - request_id, header, header_len, num_chunks, this_chunk, - body, body_len); -} - -static inline uint16_t midi2_ci_build_pe_set_reply( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t request_id, const uint8_t *header, uint16_t header_len) { - return midi2_ci_build_pe_data(buf, version, MIDI2_CI_PE_SET_REPLY, src_muid, dst_muid, - request_id, header, header_len, 1, 1, NULL, 0); -} - -static inline uint16_t midi2_ci_build_pe_subscribe( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t request_id, const uint8_t *header, uint16_t header_len, - uint16_t num_chunks, uint16_t this_chunk, - const uint8_t *body, uint16_t body_len) { - return midi2_ci_build_pe_data(buf, version, MIDI2_CI_PE_SUBSCRIBE, src_muid, dst_muid, - request_id, header, header_len, num_chunks, this_chunk, - body, body_len); -} - -static inline uint16_t midi2_ci_build_pe_subscribe_reply( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t request_id, const uint8_t *header, uint16_t header_len, - uint16_t num_chunks, uint16_t this_chunk, - const uint8_t *body, uint16_t body_len) { - return midi2_ci_build_pe_data(buf, version, MIDI2_CI_PE_SUBSCRIBE_REPLY, src_muid, dst_muid, - request_id, header, header_len, num_chunks, this_chunk, - body, body_len); -} - -static inline uint16_t midi2_ci_build_pe_notify( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t request_id, const uint8_t *header, uint16_t header_len, - uint16_t num_chunks, uint16_t this_chunk, - const uint8_t *body, uint16_t body_len) { - return midi2_ci_build_pe_data(buf, version, MIDI2_CI_PE_NOTIFY, src_muid, dst_muid, - request_id, header, header_len, num_chunks, this_chunk, - body, body_len); -} - -/*====================================================================+ - * CATEGORY 4: PROCESS INQUIRY MESSAGES - *====================================================================*/ - -/*--------------------------------------------------------------------+ - * PI Capabilities Inquiry (0x40) -- Table 40 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_pi_capability( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid) { - return midi2_ci_build_header(buf, 0x7F, MIDI2_CI_PI_CAPABILITY, version, - src_muid, dst_muid); -} - -/*--------------------------------------------------------------------+ - * Reply to PI Capabilities (0x41) -- Table 41 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_pi_capability_reply( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t supported_features) { - uint16_t p = midi2_ci_build_header(buf, 0x7F, MIDI2_CI_PI_CAPABILITY_REPLY, version, - src_muid, dst_muid); - buf[p++] = supported_features; - return p; -} - -/*--------------------------------------------------------------------+ - * MIDI Message Report Inquiry (0x42) -- Table 43 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_pi_midi_report( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t device_id, uint8_t msg_data_control, - uint8_t system_bitmap, uint8_t reserved, - uint8_t channel_ctrl_bitmap, uint8_t note_data_bitmap) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_PI_MIDI_REPORT, version, - src_muid, dst_muid); - buf[p++] = msg_data_control; - buf[p++] = system_bitmap; - buf[p++] = reserved; - buf[p++] = channel_ctrl_bitmap; - buf[p++] = note_data_bitmap; - return p; -} - -/*--------------------------------------------------------------------+ - * Reply to MIDI Message Report (0x43) -- Table 45 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_pi_midi_report_reply( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t device_id, - uint8_t system_bitmap, uint8_t reserved, - uint8_t channel_ctrl_bitmap, uint8_t note_data_bitmap) { - uint16_t p = midi2_ci_build_header(buf, device_id, MIDI2_CI_PI_MIDI_REPORT_REPLY, - version, src_muid, dst_muid); - buf[p++] = system_bitmap; - buf[p++] = reserved; - buf[p++] = channel_ctrl_bitmap; - buf[p++] = note_data_bitmap; - return p; -} - -/*--------------------------------------------------------------------+ - * End of MIDI Message Report (0x44) -- Table 46 - *--------------------------------------------------------------------*/ -static inline uint16_t midi2_ci_build_pi_midi_report_end( - uint8_t *buf, uint8_t version, uint32_t src_muid, uint32_t dst_muid, - uint8_t device_id) { - return midi2_ci_build_header(buf, device_id, MIDI2_CI_PI_MIDI_REPORT_END, version, - src_muid, dst_muid); -} - -/* == midi2_dispatch ====================================================== */ - - -/* - * midi2_dispatch.h - UMP typed dispatch (42 callbacks) - * - * Part of midi2 - Portable MIDI 2.0 library (C99) - * https://github.com/sauloverissimo/midi2 - * - * Spec: MIDI 2.0 UMP (M2-104-UM v1.1.2, Nov 2024) - * Version: 0.3.0 - */ - - - - -/*--------------------------------------------------------------------+ - * midi2_dispatch -- Typed UMP message dispatch - * - * Parses raw UMP words and calls granular, semantically-named callbacks - * for every message type defined in M2-104-UM v1.1.2. - * - * Usage: - * midi2_dispatch dp; - * midi2_dispatch_init(&dp); - * dp.on_note_on = my_note_on_handler; - * dp.context = my_app; - * - * // In your receive loop (or as midi2_proc on_ump callback): - * midi2_dispatch_feed(&dp, words, word_count); - * - * Any callback left NULL is silently skipped (zero overhead beyond - * the NULL check). The dispatch struct is caller-allocated. - *--------------------------------------------------------------------*/ - -/*--------------------------------------------------------------------+ - * MT 0x0: Utility - *--------------------------------------------------------------------*/ -typedef void (*midi2_dp_noop_cb)(void *context); -typedef void (*midi2_dp_jr_clock_cb)(uint8_t group, uint16_t timestamp, void *context); -typedef void (*midi2_dp_jr_timestamp_cb)(uint8_t group, uint16_t timestamp, void *context); -typedef void (*midi2_dp_dctpq_cb)(uint16_t tpq, void *context); -typedef void (*midi2_dp_dc_cb)(uint32_t ticks, void *context); - -/*--------------------------------------------------------------------+ - * MT 0x1: System Common & System Real Time - *--------------------------------------------------------------------*/ -typedef void (*midi2_dp_system_cb)(uint8_t group, uint8_t status, - uint8_t data1, uint8_t data2, void *context); - -/*--------------------------------------------------------------------+ - * MT 0x2: MIDI 1.0 Channel Voice - *--------------------------------------------------------------------*/ -typedef void (*midi2_dp_cv1_note_cb)(uint8_t group, uint8_t channel, - uint8_t note, uint8_t velocity, void *context); -typedef void (*midi2_dp_cv1_cc_cb)(uint8_t group, uint8_t channel, - uint8_t index, uint8_t value, void *context); -typedef void (*midi2_dp_cv1_program_cb)(uint8_t group, uint8_t channel, - uint8_t program, void *context); -typedef void (*midi2_dp_cv1_pressure_cb)(uint8_t group, uint8_t channel, - uint8_t value, void *context); -typedef void (*midi2_dp_cv1_pitch_bend_cb)(uint8_t group, uint8_t channel, - uint16_t value, void *context); -typedef void (*midi2_dp_cv1_poly_pressure_cb)(uint8_t group, uint8_t channel, - uint8_t note, uint8_t value, void *context); - -/*--------------------------------------------------------------------+ - * MT 0x4: MIDI 2.0 Channel Voice - *--------------------------------------------------------------------*/ -typedef void (*midi2_dp_note_on_cb)(uint8_t group, uint8_t channel, - uint8_t note, uint16_t velocity, - uint8_t attr_type, uint16_t attr_data, void *context); -typedef void (*midi2_dp_note_off_cb)(uint8_t group, uint8_t channel, - uint8_t note, uint16_t velocity, - uint8_t attr_type, uint16_t attr_data, void *context); -typedef void (*midi2_dp_poly_pressure_cb)(uint8_t group, uint8_t channel, - uint8_t note, uint32_t value, void *context); -typedef void (*midi2_dp_cc_cb)(uint8_t group, uint8_t channel, - uint8_t index, uint32_t value, void *context); -typedef void (*midi2_dp_program_cb)(uint8_t group, uint8_t channel, - uint8_t program, bool bank_valid, - uint8_t bank_msb, uint8_t bank_lsb, void *context); -typedef void (*midi2_dp_chan_pressure_cb)(uint8_t group, uint8_t channel, - uint32_t value, void *context); -typedef void (*midi2_dp_pitch_bend_cb)(uint8_t group, uint8_t channel, - uint32_t value, void *context); -typedef void (*midi2_dp_per_note_pb_cb)(uint8_t group, uint8_t channel, - uint8_t note, uint32_t value, void *context); -typedef void (*midi2_dp_per_note_ctrl_cb)(uint8_t group, uint8_t channel, - uint8_t note, uint8_t index, - uint32_t value, void *context); -typedef void (*midi2_dp_rpn_cb)(uint8_t group, uint8_t channel, - uint8_t bank, uint8_t index, - uint32_t value, void *context); -typedef void (*midi2_dp_per_note_mgmt_cb)(uint8_t group, uint8_t channel, - uint8_t note, bool detach, bool reset, - void *context); - -/*--------------------------------------------------------------------+ - * MT 0x3: SysEx7 (raw packet -- reassembly is in midi2_proc) - * MT 0x5: SysEx8 / Mixed Data Set - *--------------------------------------------------------------------*/ -typedef void (*midi2_dp_sysex7_cb)(uint8_t group, uint8_t status, - const uint8_t *data, uint8_t len, void *context); -typedef void (*midi2_dp_sysex8_cb)(uint8_t group, uint8_t status, - uint8_t stream_id, - const uint8_t *data, uint8_t len, void *context); -typedef void (*midi2_dp_mds_header_cb)(uint8_t group, uint8_t mds_id, - uint16_t num_bytes, uint16_t num_chunks, - uint16_t this_chunk, uint16_t mfr_id, - uint16_t device_id, uint16_t sub_id1, - uint16_t sub_id2, void *context); -/** MDS Payload callback. Always delivers 14 bytes per UMP packet. - * The actual valid byte count for the chunk is in the MDS Header's num_bytes field; - * the caller must track header state to know when payload ends. */ -typedef void (*midi2_dp_mds_payload_cb)(uint8_t group, uint8_t mds_id, - const uint8_t *data, uint8_t len, void *context); - -/*--------------------------------------------------------------------+ - * MT 0xD: Flex Data - *--------------------------------------------------------------------*/ -typedef void (*midi2_dp_tempo_cb)(uint8_t group, uint32_t ten_ns_per_qn, void *context); -typedef void (*midi2_dp_time_sig_cb)(uint8_t group, uint8_t numerator, - uint8_t denominator, uint8_t num_32nd_notes, - void *context); -typedef void (*midi2_dp_metronome_cb)(uint8_t group, uint8_t primary_clicks, - uint8_t accent_1, uint8_t accent_2, uint8_t accent_3, - uint8_t subdiv_1, uint8_t subdiv_2, void *context); -typedef void (*midi2_dp_key_sig_cb)(uint8_t group, uint8_t address, uint8_t channel, - int8_t sharps_flats, uint8_t tonic, uint8_t key_type, - void *context); -typedef void (*midi2_dp_chord_cb)(uint8_t group, uint8_t address, uint8_t channel, - int8_t tonic_sf, uint8_t tonic_note, uint8_t chord_type, - uint8_t alt1_type, uint8_t alt1_deg, - uint8_t alt2_type, uint8_t alt2_deg, - uint8_t alt3_type, uint8_t alt3_deg, - uint8_t alt4_type, uint8_t alt4_deg, - int8_t bass_sf, uint8_t bass_note, uint8_t bass_type, - uint8_t bass_alt1_type, uint8_t bass_alt1_deg, - uint8_t bass_alt2_type, uint8_t bass_alt2_deg, - void *context); -typedef void (*midi2_dp_flex_text_cb)(uint8_t group, uint8_t format, - uint8_t address, uint8_t channel, - uint8_t bank, uint8_t status, - const uint8_t *text, uint8_t len, void *context); - -/*--------------------------------------------------------------------+ - * MT 0xF: UMP Stream - *--------------------------------------------------------------------*/ -typedef void (*midi2_dp_endpoint_discovery_cb)(uint8_t ump_ver_major, uint8_t ump_ver_minor, - uint8_t filter, void *context); -typedef void (*midi2_dp_endpoint_info_cb)(uint8_t ump_ver_major, uint8_t ump_ver_minor, - bool static_fb, uint8_t num_fb, - bool midi2_proto, bool midi1_proto, - bool rx_jr, bool tx_jr, void *context); -typedef void (*midi2_dp_device_identity_cb)(uint32_t manufacturer_id, - uint16_t family_id, uint16_t model_id, - uint32_t version_id, void *context); -typedef void (*midi2_dp_stream_text_cb)(uint16_t status, uint8_t format, - const uint8_t *data, uint8_t len, void *context); -typedef void (*midi2_dp_fb_name_cb)(uint8_t format, uint8_t fb_num, - const uint8_t *name, uint8_t len, void *context); -typedef void (*midi2_dp_config_cb)(uint8_t protocol, bool rx_jr, bool tx_jr, void *context); -typedef void (*midi2_dp_fb_discovery_cb)(uint8_t fb_num, uint8_t filter, void *context); -typedef void (*midi2_dp_fb_info_cb)(bool active, uint8_t fb_num, uint8_t direction, - uint8_t first_group, uint8_t num_groups, - uint8_t midi_ci_ver, uint8_t max_sysex8_streams, - uint8_t protocol, void *context); -typedef void (*midi2_dp_clip_cb)(bool start, void *context); - -/*--------------------------------------------------------------------+ - * Fallback - *--------------------------------------------------------------------*/ -typedef void (*midi2_dp_unknown_cb)(const uint32_t *words, uint8_t word_count, void *context); - -/*--------------------------------------------------------------------+ - * Dispatch State - *--------------------------------------------------------------------*/ -typedef struct { - void *context; /**< User pointer passed to all callbacks */ - - /** When true, incoming MT 0x2 (MIDI 1.0 CV) messages are translated - * to MT 0x4 (MIDI 2.0 CV) with proper value scaling and dispatched - * through the on_note_on/on_cc/etc. callbacks. The on_cv1_* callbacks - * are NOT called when upscale is active. - * When false (default), MT 0x2 goes to on_cv1_* as before. */ - bool upscale_mt2; - - /* MT 0x0: Utility */ - midi2_dp_noop_cb on_noop; - midi2_dp_jr_clock_cb on_jr_clock; - midi2_dp_jr_timestamp_cb on_jr_timestamp; - midi2_dp_dctpq_cb on_dctpq; - midi2_dp_dc_cb on_dc; - - /* MT 0x1: System */ - midi2_dp_system_cb on_system; - - /* MT 0x2: MIDI 1.0 Channel Voice */ - midi2_dp_cv1_note_cb on_cv1_note_on; - midi2_dp_cv1_note_cb on_cv1_note_off; - midi2_dp_cv1_poly_pressure_cb on_cv1_poly_pressure; - midi2_dp_cv1_cc_cb on_cv1_cc; - midi2_dp_cv1_program_cb on_cv1_program; - midi2_dp_cv1_pressure_cb on_cv1_chan_pressure; - midi2_dp_cv1_pitch_bend_cb on_cv1_pitch_bend; - - /* MT 0x3: SysEx7 (per-packet; use midi2_proc for reassembly) */ - midi2_dp_sysex7_cb on_sysex7; - - /* MT 0x4: MIDI 2.0 Channel Voice */ - midi2_dp_note_on_cb on_note_on; - midi2_dp_note_off_cb on_note_off; - midi2_dp_poly_pressure_cb on_poly_pressure; - midi2_dp_cc_cb on_cc; - midi2_dp_program_cb on_program; - midi2_dp_chan_pressure_cb on_chan_pressure; - midi2_dp_pitch_bend_cb on_pitch_bend; - midi2_dp_per_note_pb_cb on_per_note_pb; - midi2_dp_per_note_ctrl_cb on_reg_per_note; - midi2_dp_per_note_ctrl_cb on_asn_per_note; - midi2_dp_rpn_cb on_rpn; - midi2_dp_rpn_cb on_nrpn; - midi2_dp_rpn_cb on_rel_rpn; - midi2_dp_rpn_cb on_rel_nrpn; - midi2_dp_per_note_mgmt_cb on_per_note_mgmt; - - /* MT 0x5: SysEx8 / Mixed Data Set */ - midi2_dp_sysex8_cb on_sysex8; - midi2_dp_mds_header_cb on_mds_header; - midi2_dp_mds_payload_cb on_mds_payload; - - /* MT 0xD: Flex Data */ - midi2_dp_tempo_cb on_tempo; - midi2_dp_time_sig_cb on_time_sig; - midi2_dp_metronome_cb on_metronome; - midi2_dp_key_sig_cb on_key_sig; - midi2_dp_chord_cb on_chord; - midi2_dp_flex_text_cb on_flex_text; - - /* MT 0xF: UMP Stream */ - midi2_dp_endpoint_discovery_cb on_endpoint_discovery; - midi2_dp_endpoint_info_cb on_endpoint_info; - midi2_dp_device_identity_cb on_device_identity; - midi2_dp_stream_text_cb on_stream_text; /* endpoint name, product instance id */ - midi2_dp_fb_name_cb on_fb_name; /* function block name (separate: has fb_num) */ - midi2_dp_config_cb on_config_request; - midi2_dp_config_cb on_config_notify; - midi2_dp_fb_discovery_cb on_fb_discovery; - midi2_dp_fb_info_cb on_fb_info; - midi2_dp_clip_cb on_clip; - - /* Fallback for unknown/future MTs */ - midi2_dp_unknown_cb on_unknown; -} midi2_dispatch; - -/*--------------------------------------------------------------------+ - * Functions - *--------------------------------------------------------------------*/ - -/** Initialize dispatch, zeroing all callbacks. */ -void midi2_dispatch_init(midi2_dispatch *dp); - -/** Feed one UMP message. Parses and dispatches to the appropriate callback. - * word_count must match the message size (1, 2, or 4 words). - * Can be used directly as midi2_proc on_ump callback. */ -void midi2_dispatch_feed(const uint32_t *words, uint8_t word_count, void *context); - -/* == midi2_proc ========================================================== */ - - -/* - * midi2_proc.h - UMP stream processing, group filtering, value scaling - * - * Part of midi2 - Portable MIDI 2.0 library (C99) - * https://github.com/sauloverissimo/midi2 - * - * Spec: MIDI 2.0 UMP (M2-104-UM v1.1.2, Nov 2024) - * Version: 0.3.0 - */ - - - - -/*--------------------------------------------------------------------+ - * Callback types - *--------------------------------------------------------------------*/ - -/* Called for each UMP message that passes the group filter */ -typedef void (*midi2_proc_ump_cb)(const uint32_t *words, uint8_t word_count, void *context); - -/* Called when a complete SysEx7 message has been reassembled */ -typedef void (*midi2_proc_sysex7_cb)(uint8_t group, const uint8_t *data, - uint16_t length, void *context); - -/* Called when a complete SysEx8 message has been reassembled */ -typedef void (*midi2_proc_sysex8_cb)(uint8_t group, uint8_t stream_id, - const uint8_t *data, uint16_t length, void *context); - -/* Called when midi2_proc needs to send UMP words (e.g. SysEx7 fragmented send) */ -typedef uint32_t (*midi2_proc_write_fn)(const uint32_t *words, uint32_t count, void *context); - -/*--------------------------------------------------------------------+ - * State struct (user-allocated) - * - * The caller provides the SysEx reassembly buffer. This allows any - * buffer size without compile-time limits. Example: - * - * uint8_t sysex_buf[256]; - * midi2_proc_state proc; - * midi2_proc_init(&proc, sysex_buf, sizeof(sysex_buf)); - *--------------------------------------------------------------------*/ - -typedef struct { - /** Group filtering: bitmask of which groups to deliver (default 0xFFFF = all) */ - uint16_t group_mask; - - /** Group remap table for outgoing messages (default identity) */ - uint8_t group_map[16]; - - /** SysEx7 reassembly: caller-provided buffer */ - uint8_t *sysex_buf; /**< pointer to caller's buffer, or NULL to disable */ - uint16_t sysex_buf_size; /**< capacity of sysex_buf */ - uint16_t sysex_len; /**< current accumulated length */ - uint8_t sysex_group; /**< 0xFF = no active SysEx */ - - /** SysEx8 reassembly: caller-provided buffer (separate from SysEx7) */ - uint8_t *sysex8_buf; - uint16_t sysex8_buf_size; - uint16_t sysex8_len; - uint8_t sysex8_group; /**< 0xFF = no active SysEx8 */ - uint8_t sysex8_stream_id; /**< stream ID of active SysEx8 */ - - /** Callbacks */ - midi2_proc_ump_cb on_ump; - midi2_proc_sysex7_cb on_sysex7; - midi2_proc_sysex8_cb on_sysex8; - void *context; -} midi2_proc_state; - -/*--------------------------------------------------------------------+ - * Functions - *--------------------------------------------------------------------*/ - -/** Initialize state with caller-provided SysEx buffers. - * @param state State struct (caller-allocated) - * @param sysex7_buf Buffer for SysEx7 reassembly, or NULL to disable - * @param sysex7_buf_size Size of sysex7_buf in bytes - * @param sysex8_buf Buffer for SysEx8 reassembly, or NULL to disable - * @param sysex8_buf_size Size of sysex8_buf in bytes */ -void midi2_proc_init(midi2_proc_state *state, - uint8_t *sysex7_buf, uint16_t sysex7_buf_size, - uint8_t *sysex8_buf, uint16_t sysex8_buf_size); - -/* Feed UMP words from transport. Processes, filters, dispatches to callbacks. - * word_count must match the message size (1, 2, or 4 words). */ -void midi2_proc_feed(midi2_proc_state *state, const uint32_t *words, uint8_t word_count); - -/* Apply group remap to outgoing words (modifies word 0 in-place). - * Only remaps message types that have a group field (not Utility or Stream). */ -void midi2_proc_remap_group(midi2_proc_state *state, uint32_t *words); - -/* Multi-packet SysEx7 send helper. Fragments data into UMP packets (max 6 bytes each), - * calls write_fn for each 2-word packet. data does NOT include F0/F7 delimiters. */ -void midi2_proc_send_sysex7(uint8_t group, const uint8_t *data, uint16_t length, - midi2_proc_write_fn write_fn, void *context); - -/* M2-104-UM §7.1.9 Function Block Name Notification sender. - * UMP Stream MT 0xF, status 0x12. Fragments the UTF-8 name across - * Complete / Start / Continue / End 4-word packets (13 name bytes per - * UMP; total name limited to 91 bytes per spec). Remaining bytes of - * the final packet are zero-padded per spec. (v0.2.4+) */ -void midi2_proc_send_fb_name(uint8_t fb_idx, const char *name, - midi2_proc_write_fn write_fn, void *context); - -/* M2-104-UM §7.1.7 Endpoint Name Notification sender. - * UMP Stream MT 0xF, status 0x003. Fragments UTF-8 name across - * Complete / Start / Continue / End 4-word packets (14 name bytes - * per UMP). Empty name sends nothing. (v0.3.0+) */ -void midi2_proc_send_endpoint_name(const char *name, - midi2_proc_write_fn write_fn, void *context); - -/* M2-104-UM §7.1.8 Product Instance ID Notification sender. - * UMP Stream MT 0xF, status 0x004. Fragmentation identical to - * Endpoint Name (14 bytes per UMP). Empty id sends nothing. - * (v0.3.0+) */ -void midi2_proc_send_product_id(const char *id, - midi2_proc_write_fn write_fn, void *context); - -/* M2-104-UM §7.1.6 Device Identity Notification sender. - * UMP Stream MT 0xF, status 0x002. Always emits a single 4-word UMP - * (no fragmentation). Kept for callsite symmetry with the other - * Stream senders. manufacturer_id uses lower 24 bits only. - * (v0.3.0+) */ -void midi2_proc_send_device_identity(uint32_t manufacturer_id, - uint16_t family_id, uint16_t model_id, - uint32_t version_id, - midi2_proc_write_fn write_fn, void *context); - -/* M2-104-UM §7.8 SysEx8 sender. MT 0x5. Fragments raw 8-bit data - * into 4-word packets (13 data bytes per UMP; stream_id rides in - * word 0 bits [15:8]). status nibble encodes Complete / Start / - * Continue / End per M2-104-UM Table 14. Zero-length sends nothing. - * (v0.3.0+) */ -void midi2_proc_send_sysex8(uint8_t group, uint8_t stream_id, - const uint8_t *data, uint16_t length, - midi2_proc_write_fn write_fn, void *context); - -/* == midi2_conv ========================================================== */ - - -/* - * midi2_conv.h - MIDI 1.0 byte stream to UMP, protocol translation - * - * Part of midi2 - Portable MIDI 2.0 library (C99) - * https://github.com/sauloverissimo/midi2 - * - * Spec: MIDI 2.0 UMP (M2-104-UM v1.1.2, Nov 2024) - * Version: 0.3.0 - */ - - - - -/*--------------------------------------------------------------------+ - * MIDI 1.0 Byte Stream to UMP Converter - * - * Converts serial MIDI 1.0 bytes (DIN-5, TRS, UART) into UMP words. - * Handles Running Status, multi-byte messages, and SysEx (F0..F7). - * - * SysEx is emitted as streaming UMP SysEx7 packets: - * - Every 6 bytes: emits START or CONTINUE (2 UMP words) - * - On F7: emits END or COMPLETE with remaining bytes - * - No caller-provided buffer needed (6-byte internal buffer) - * - * Usage: - * midi2_conv_state conv; - * midi2_conv_init(&conv, 0); // group 0 - * - * // For each incoming byte: - * if (midi2_conv_feed(&conv, byte)) { - * // conv.ump[] contains the completed UMP message - * // conv.ump_words tells how many words (1 or 2) - * process(conv.ump, conv.ump_words); - * } - *--------------------------------------------------------------------*/ - -typedef struct { - /** Configuration */ - uint8_t group; - - /** Running Status state */ - uint8_t running_status; - uint8_t data_byte_count; - uint8_t data_pos; - uint8_t data[2]; - - /** SysEx state: 6-byte internal buffer for streaming */ - uint8_t sysex_buf[6]; /**< internal buffer (one UMP packet worth) */ - uint8_t sysex_len; /**< bytes accumulated in sysex_buf (0-6) */ - bool in_sysex; /**< currently inside F0..F7 */ - bool sysex_started; /**< true after START emitted */ - - /** Output: completed UMP message */ - uint32_t ump[4]; - uint8_t ump_words; -} midi2_conv_state; - -/** Initialize converter state. - * @param state State struct (caller-allocated) - * @param group UMP group to assign to converted messages */ -void midi2_conv_init(midi2_conv_state *state, uint8_t group); - -/* Feed one MIDI 1.0 byte. Returns true when a complete UMP message is ready - * in state->ump[]. Returns false if more bytes are needed. - * - * SysEx of any length is fully supported via streaming UMP SysEx7 packets. - * Each call produces at most one UMP message (1 or 2 words). */ -bool midi2_conv_feed(midi2_conv_state *state, uint8_t byte); - -/* == midi2_ci_dispatch =================================================== */ - - -/* - * midi2_ci_dispatch.h - MIDI-CI typed dispatch (33 callbacks) - * - * Part of midi2 - Portable MIDI 2.0 library (C99) - * https://github.com/sauloverissimo/midi2 - * - * Spec: MIDI-CI (M2-101-UM v1.2, Jun 2023) - * Version: 0.3.0 - */ - - - - -/*====================================================================+ - * midi2_ci_dispatch -- Typed MIDI-CI message dispatch - * - * Parses reassembled SysEx payloads and calls granular, semantically- - * named callbacks for every MIDI-CI message type in M2-101-UM v1.2. - * - * Usage: - * midi2_ci_dispatch dp; - * midi2_ci_dispatch_init(&dp); - * dp.on_discovery = my_discovery_handler; - * dp.context = my_app; - * - * // When a complete CI SysEx arrives (from midi2_proc on_sysex7): - * midi2_ci_dispatch_feed(&dp, group, sysex_data, sysex_len); - * - * All callbacks receive the common CI header fields (version, src_muid, - * dst_muid, device_id) plus message-specific fields pre-parsed. - * NULL callbacks are silently skipped. - *====================================================================*/ - -/*--------------------------------------------------------------------+ - * Common header passed to all callbacks - *--------------------------------------------------------------------*/ -typedef struct { - uint8_t device_id; - uint8_t version; - uint32_t src_muid; - uint32_t dst_muid; - uint8_t group; /**< UMP group the SysEx arrived on */ -} midi2_ci_header; - -/*--------------------------------------------------------------------+ - * Callback types: Management (0x70-0x7F) - *--------------------------------------------------------------------*/ -typedef void (*midi2_ci_dp_discovery_cb)( - midi2_ci_header hdr, uint32_t mfr_id, uint16_t family, uint16_t model, - uint32_t sw_rev, uint8_t ci_category, uint32_t max_sysex, - uint8_t output_path_id, void *context); - -typedef void (*midi2_ci_dp_discovery_reply_cb)( - midi2_ci_header hdr, uint32_t mfr_id, uint16_t family, uint16_t model, - uint32_t sw_rev, uint8_t ci_category, uint32_t max_sysex, - uint8_t output_path_id, uint8_t function_block, void *context); - -typedef void (*midi2_ci_dp_endpoint_info_cb)( - midi2_ci_header hdr, uint8_t status, void *context); - -typedef void (*midi2_ci_dp_endpoint_info_reply_cb)( - midi2_ci_header hdr, uint8_t status, - const uint8_t *info_data, uint16_t info_len, void *context); - -typedef void (*midi2_ci_dp_invalidate_muid_cb)( - midi2_ci_header hdr, uint32_t target_muid, void *context); - -typedef void (*midi2_ci_dp_ack_cb)( - midi2_ci_header hdr, uint8_t orig_sub_id, - uint8_t status_code, uint8_t status_data, - const uint8_t *details, uint16_t msg_len, const uint8_t *msg_text, - void *context); - -typedef void (*midi2_ci_dp_nak_cb)( - midi2_ci_header hdr, uint8_t orig_sub_id, - uint8_t status_code, uint8_t status_data, - const uint8_t *details, uint16_t msg_len, const uint8_t *msg_text, - void *context); - -/*--------------------------------------------------------------------+ - * Callback types: Profile Configuration (0x20-0x2F) - *--------------------------------------------------------------------*/ -typedef void (*midi2_ci_dp_profile_inquiry_cb)( - midi2_ci_header hdr, void *context); - -typedef void (*midi2_ci_dp_profile_inquiry_reply_cb)( - midi2_ci_header hdr, - uint16_t enabled_count, const uint8_t *enabled_data, - uint16_t disabled_count, const uint8_t *disabled_data, - void *context); - -typedef void (*midi2_ci_dp_set_profile_cb)( - midi2_ci_header hdr, const uint8_t *profile_id, - uint16_t num_channels, void *context); - -typedef void (*midi2_ci_dp_profile_report_cb)( - midi2_ci_header hdr, const uint8_t *profile_id, - uint16_t num_channels, void *context); - -typedef void (*midi2_ci_dp_profile_added_removed_cb)( - midi2_ci_header hdr, const uint8_t *profile_id, void *context); - -typedef void (*midi2_ci_dp_profile_details_cb)( - midi2_ci_header hdr, const uint8_t *profile_id, - uint8_t inquiry_target, void *context); - -typedef void (*midi2_ci_dp_profile_details_reply_cb)( - midi2_ci_header hdr, const uint8_t *profile_id, - uint8_t inquiry_target, const uint8_t *data, uint16_t data_len, - void *context); - -typedef void (*midi2_ci_dp_profile_specific_cb)( - midi2_ci_header hdr, const uint8_t *profile_id, - const uint8_t *data, uint32_t data_len, void *context); - -/*--------------------------------------------------------------------+ - * Callback types: Property Exchange (0x30-0x3F) - *--------------------------------------------------------------------*/ -typedef void (*midi2_ci_dp_pe_caps_cb)( - midi2_ci_header hdr, uint8_t max_simultaneous, - uint8_t pe_ver_major, uint8_t pe_ver_minor, void *context); - -typedef void (*midi2_ci_dp_pe_data_cb)( - midi2_ci_header hdr, uint8_t request_id, - const uint8_t *header_data, uint16_t header_len, - uint16_t num_chunks, uint16_t this_chunk, - const uint8_t *body_data, uint16_t body_len, void *context); - -/*--------------------------------------------------------------------+ - * Callback types: Process Inquiry (0x40-0x4F) - *--------------------------------------------------------------------*/ -typedef void (*midi2_ci_dp_pi_caps_cb)( - midi2_ci_header hdr, void *context); - -typedef void (*midi2_ci_dp_pi_caps_reply_cb)( - midi2_ci_header hdr, uint8_t supported_features, void *context); - -typedef void (*midi2_ci_dp_pi_midi_report_cb)( - midi2_ci_header hdr, uint8_t msg_data_control, - uint8_t system_bitmap, uint8_t channel_ctrl_bitmap, - uint8_t note_data_bitmap, void *context); - -typedef void (*midi2_ci_dp_pi_midi_report_reply_cb)( - midi2_ci_header hdr, uint8_t system_bitmap, - uint8_t channel_ctrl_bitmap, uint8_t note_data_bitmap, - void *context); - -typedef void (*midi2_ci_dp_pi_end_cb)( - midi2_ci_header hdr, void *context); - -/*--------------------------------------------------------------------+ - * Fallback - *--------------------------------------------------------------------*/ -typedef void (*midi2_ci_dp_unknown_cb)( - midi2_ci_header hdr, uint8_t sub_id, - const uint8_t *data, uint16_t length, void *context); - -/*--------------------------------------------------------------------+ - * Dispatch state - *--------------------------------------------------------------------*/ -typedef struct { - void *context; - - /* Management */ - midi2_ci_dp_discovery_cb on_discovery; - midi2_ci_dp_discovery_reply_cb on_discovery_reply; - midi2_ci_dp_endpoint_info_cb on_endpoint_info; - midi2_ci_dp_endpoint_info_reply_cb on_endpoint_info_reply; - midi2_ci_dp_invalidate_muid_cb on_invalidate_muid; - midi2_ci_dp_ack_cb on_ack; - midi2_ci_dp_nak_cb on_nak; - - /* Profile Configuration */ - midi2_ci_dp_profile_inquiry_cb on_profile_inquiry; - midi2_ci_dp_profile_inquiry_reply_cb on_profile_inquiry_reply; - midi2_ci_dp_set_profile_cb on_set_profile_on; - midi2_ci_dp_set_profile_cb on_set_profile_off; - midi2_ci_dp_profile_report_cb on_profile_enabled; - midi2_ci_dp_profile_report_cb on_profile_disabled; - midi2_ci_dp_profile_added_removed_cb on_profile_added; - midi2_ci_dp_profile_added_removed_cb on_profile_removed; - midi2_ci_dp_profile_details_cb on_profile_details; - midi2_ci_dp_profile_details_reply_cb on_profile_details_reply; - midi2_ci_dp_profile_specific_cb on_profile_specific_data; - - /* Property Exchange */ - midi2_ci_dp_pe_caps_cb on_pe_capability; - midi2_ci_dp_pe_caps_cb on_pe_capability_reply; - midi2_ci_dp_pe_data_cb on_pe_get; - midi2_ci_dp_pe_data_cb on_pe_get_reply; - midi2_ci_dp_pe_data_cb on_pe_set; - midi2_ci_dp_pe_data_cb on_pe_set_reply; - midi2_ci_dp_pe_data_cb on_pe_subscribe; - midi2_ci_dp_pe_data_cb on_pe_subscribe_reply; - midi2_ci_dp_pe_data_cb on_pe_notify; - - /* Process Inquiry */ - midi2_ci_dp_pi_caps_cb on_pi_capability; - midi2_ci_dp_pi_caps_reply_cb on_pi_capability_reply; - midi2_ci_dp_pi_midi_report_cb on_pi_midi_report; - midi2_ci_dp_pi_midi_report_reply_cb on_pi_midi_report_reply; - midi2_ci_dp_pi_end_cb on_pi_midi_report_end; - - /* Fallback */ - midi2_ci_dp_unknown_cb on_unknown; -} midi2_ci_dispatch; - -/*--------------------------------------------------------------------+ - * Functions - *--------------------------------------------------------------------*/ - -/** Initialize dispatch, zeroing all callbacks. */ -void midi2_ci_dispatch_init(midi2_ci_dispatch *dp); - -/** Feed a reassembled SysEx payload (without F0/F7). - * Parses the CI header, dispatches to the appropriate callback. - * Returns true if the message was recognized as MIDI-CI, false otherwise. - * @param group UMP group the SysEx arrived on */ -bool midi2_ci_dispatch_feed(midi2_ci_dispatch *dp, uint8_t group, - const uint8_t *data, uint16_t length); - -/* == midi2_ci ============================================================ */ - - -/* - * midi2_ci.h - MIDI-CI convenience responder - * - * Part of midi2 - Portable MIDI 2.0 library (C99) - * https://github.com/sauloverissimo/midi2 - * - * Spec: MIDI-CI (M2-101-UM v1.2, Jun 2023) - * Version: 0.3.0 - */ - - - - -/*--------------------------------------------------------------------+ - * Error codes - *--------------------------------------------------------------------*/ -enum { - MIDI2_CI_OK = 0, - MIDI2_CI_ERR_FULL = -1, /**< Storage is full (profiles or properties) */ - MIDI2_CI_ERR_NOT_FOUND = -2, /**< Item not found */ - MIDI2_CI_ERR_NULL = -3, /**< NULL pointer argument */ -}; - -/* Sub-IDs and constants are now in midi2_ci_msg.h. - * Legacy alias for backward compatibility: */ -#define MIDI2_CI_DISCOVERY_REQUEST MIDI2_CI_DISCOVERY - -/*--------------------------------------------------------------------+ - * Callback types - *--------------------------------------------------------------------*/ - -/* Property Exchange getter: returns value string for given property name */ -typedef const char* (*midi2_ci_pe_getter)(const char *name, void *context); - -/* Property Exchange setter: sets value, returns true on success */ -typedef bool (*midi2_ci_pe_setter)(const char *name, const char *value, void *context); - -/*--------------------------------------------------------------------+ - * Property descriptor (used in caller-provided array) - *--------------------------------------------------------------------*/ -typedef struct { - const char *name; - const char *static_value; /**< used if getter is NULL */ - midi2_ci_pe_getter getter; - midi2_ci_pe_setter setter; - bool subscribable; /**< v0.3.0+: eligible for PE Subscribe */ -} midi2_ci_property; - -/*--------------------------------------------------------------------+ - * Subscriber registry entry (caller-provided array, v0.3.0+) - * - * name_copy holds up to 36 chars per M2-105 PE resource name limit - * plus NUL terminator, so the responder keeps a stable reference even - * if the app frees the resource name string passed to subscribe_add. - *--------------------------------------------------------------------*/ -typedef struct { - uint32_t caller_muid; - char name_copy[37]; - uint8_t in_use; /**< 0 = free slot; non-zero = active */ -} midi2_ci_subscriber; - -/*--------------------------------------------------------------------+ - * State struct (user-allocated) - * - * The caller provides storage for profiles and properties by pointing - * to pre-allocated arrays. This allows any capacity without compile-time - * limits. Example: - * - * uint8_t my_profiles[4][5]; - * midi2_ci_property my_props[2]; - * midi2_ci_state ci; - * midi2_ci_init(&ci, seed, my_profiles, 4, my_props, 2); - *--------------------------------------------------------------------*/ -/*--------------------------------------------------------------------+ - * RNG callback (v0.2.4+) - * - * Platform-specific randomness source. When set via midi2_ci_set_rng(), - * the convenience responder automatically handles MUID regeneration on - * Invalidate MUID and peer MUID collisions. Only the lower 28 bits of - * the returned value are used. Reserved values 0x00000000 and - * 0x0FFFFFFF (broadcast) are automatically avoided by midi2_ci_new_muid. - *--------------------------------------------------------------------*/ -typedef uint32_t (*midi2_ci_rng_fn)(void *context); - -typedef struct { - /* Device identity (configured by user) */ - uint32_t manufacturer_id; /**< 3-byte SysEx Manufacturer ID in lower 24 bits */ - uint16_t family_id; - uint16_t model_id; - uint32_t version_id; - - /* MUID (set at init) */ - uint32_t muid; - - /* Profiles: caller-provided storage */ - uint8_t (*profiles)[5]; /**< pointer to caller's profile array (each 5 bytes) */ - uint8_t profile_capacity; /**< max profiles (size of caller's array) */ - uint8_t profile_count; /**< current count */ - - /* Properties: caller-provided storage */ - midi2_ci_property *properties; /**< pointer to caller's property array */ - uint8_t property_capacity; - uint8_t property_count; - - /* Write function (how to send SysEx responses back) */ - midi2_proc_write_fn write_fn; - void *write_context; - - /* User context for PE callbacks */ - void *context; - - /* RNG for MUID regeneration (v0.2.4+). NULL = no auto-regen. */ - midi2_ci_rng_fn rng; - void *rng_context; - - /* When true, process_sysex replies with a NAK (Sub-ID#2 0x7F) for any - * CI sub-id not handled by the convenience responder (v0.2.4+). - * Default false to preserve v0.2.3 behavior. */ - bool nak_on_unknown; - - /* When true, the convenience responder broadcasts an Invalidate MUID - * frame for the old MUID whenever it regenerates because an inbound - * src_muid collided with ours. M2-101-UM Appendix E 2. Default: true - * (v0.3.0+). Implementation was already present in v0.2.4 but always - * on; this flag gates it. */ - bool auto_invalidate_on_collision; - - /* Subscribers: caller-provided storage (v0.3.0+). NULL when the state - * was built with the legacy midi2_ci_init (no subscribe/notify). */ - midi2_ci_subscriber *subscribers; - uint8_t subscriber_capacity; - uint8_t subscriber_count; -} midi2_ci_state; - -/*--------------------------------------------------------------------+ - * Functions - *--------------------------------------------------------------------*/ - -/** Initialize state with caller-provided storage. - * Delegates to midi2_ci_init_ex(..., NULL, 0), so the subscriber - * registry is absent and subscribe/notify APIs return ERR_FULL. - * @param state State struct (caller-allocated) - * @param muid_seed Random or unique value for MUID generation (28-bit) - * @param profiles Caller's profile array, or NULL if no profiles needed - * @param max_profiles Capacity of profiles array - * @param properties Caller's property array, or NULL if no properties needed - * @param max_properties Capacity of properties array */ -void midi2_ci_init(midi2_ci_state *state, uint32_t muid_seed, - uint8_t (*profiles)[5], uint8_t max_profiles, - midi2_ci_property *properties, uint8_t max_properties); - -/** Extended initializer that also wires a subscriber-registry array - * for PE Subscribe / Notify. Pass NULL / 0 for the subscribers - * argument to match midi2_ci_init semantics. - * (v0.3.0+) */ -void midi2_ci_init_ex(midi2_ci_state *state, uint32_t muid_seed, - uint8_t (*profiles)[5], uint8_t max_profiles, - midi2_ci_property *properties, uint8_t max_properties, - midi2_ci_subscriber *subscribers, uint8_t max_subscribers); - -/** Configure device identity */ -void midi2_ci_set_identity(midi2_ci_state *state, - uint32_t manufacturer_id, uint16_t family_id, - uint16_t model_id, uint32_t version_id); - -/** Set the write function (how CI sends SysEx responses) */ -void midi2_ci_set_write_fn(midi2_ci_state *state, - midi2_proc_write_fn write_fn, void *context); - -/** Install a platform RNG so the convenience responder can regenerate the - * MUID on Invalidate MUID messages and on peer MUID collisions. Without - * this, both situations are silently ignored (v0.2.3 behavior). - * The callback is invoked from within process_sysex; it must be re-entrant - * and should return quickly. Only the lower 28 bits matter. (v0.2.4+) */ -void midi2_ci_set_rng(midi2_ci_state *state, - midi2_ci_rng_fn rng, void *context); - -/** Enable/disable automatic NAK (Sub-ID#2 0x7F, status 0x01 NOT_SUPPORTED) - * replies for CI sub-ids the convenience responder does not handle. - * M2-101-UM Appendix E requires a device to "Be able to send a NAK message - * when appropriate". Default: false (v0.2.3 compatible). (v0.2.4+) */ -void midi2_ci_set_nak_on_unknown(midi2_ci_state *state, bool enabled); - -/** Enable/disable automatic broadcast of an Invalidate MUID frame for the - * old MUID whenever the convenience responder regenerates due to an - * inbound collision. Default: true (v0.3.0+). */ -void midi2_ci_set_auto_invalidate_on_collision(midi2_ci_state *state, bool enabled); - -/** Generate a fresh 28-bit MUID using the configured RNG, avoiding the - * reserved values 0x00000000 and 0x0FFFFFFF (broadcast). If no RNG is - * set, falls back to perturbing the current MUID. Returns the new MUID - * and also stores it into state->muid. (v0.2.4+) */ -uint32_t midi2_ci_new_muid(midi2_ci_state *state); - -/** Add a profile. Returns MIDI2_CI_OK or MIDI2_CI_ERR_FULL. */ -int midi2_ci_add_profile(midi2_ci_state *state, const uint8_t profile_id[5]); - -/** Remove a profile. Returns MIDI2_CI_OK or MIDI2_CI_ERR_NOT_FOUND. */ -int midi2_ci_remove_profile(midi2_ci_state *state, const uint8_t profile_id[5]); - -/** Add a static property. Returns MIDI2_CI_OK or MIDI2_CI_ERR_FULL. */ -int midi2_ci_add_property_static(midi2_ci_state *state, - const char *name, const char *value); - -/** Add a dynamic property with getter/setter. Returns MIDI2_CI_OK or MIDI2_CI_ERR_FULL. */ -int midi2_ci_add_property_dynamic(midi2_ci_state *state, - const char *name, - midi2_ci_pe_getter getter, - midi2_ci_pe_setter setter); - -/** Remove a property by name. Remaining properties are shifted left to - * preserve contiguous storage. Returns MIDI2_CI_OK or - * MIDI2_CI_ERR_NOT_FOUND. Symmetric with midi2_ci_remove_profile. - * (v0.3.0+) */ -int midi2_ci_remove_property(midi2_ci_state *state, const char *name); - -/** Clear all registered profiles (count-only reset; storage contents are - * left intact for caller inspection or reuse). (v0.3.0+) */ -void midi2_ci_reset_profiles(midi2_ci_state *state); - -/** Clear all registered properties (count-only reset; storage contents - * are left intact for caller inspection or reuse). (v0.3.0+) */ -void midi2_ci_reset_properties(midi2_ci_state *state); - -/** Toggle the subscribable flag on a registered property at runtime. - * Returns MIDI2_CI_OK or MIDI2_CI_ERR_NOT_FOUND. (v0.3.0+) */ -int midi2_ci_pe_set_subscribable(midi2_ci_state *state, - const char *name, bool subscribable); - -/** Register a subscriber (caller_muid) for the named PE resource. The - * property must be registered and marked subscribable. Duplicate - * (muid, name) pairs are idempotent and return OK. - * @return MIDI2_CI_OK, MIDI2_CI_ERR_NOT_FOUND (property unknown or - * not subscribable), or MIDI2_CI_ERR_FULL (no subscriber - * capacity, including the case of midi2_ci_init without a - * subscribers array). (v0.3.0+) */ -int midi2_ci_subscribe_add(midi2_ci_state *state, uint32_t caller_muid, - const char *resource_name); - -/** Remove a subscriber from the named resource. - * @return MIDI2_CI_OK or MIDI2_CI_ERR_NOT_FOUND. (v0.3.0+) */ -int midi2_ci_subscribe_remove(midi2_ci_state *state, uint32_t caller_muid, - const char *resource_name); - -/** Fan out a PE Notify frame to every subscriber of the named resource. - * Returns MIDI2_CI_OK even when the subscriber list is empty, or - * MIDI2_CI_ERR_NOT_FOUND when the property is unknown. Emission uses - * the state's write_fn (same path as Discovery / PE Reply). - * (v0.3.0+) */ -int midi2_ci_notify_property_changed(midi2_ci_state *state, - const char *resource_name); - -/** Return the current number of active subscribers across all - * resources. (v0.3.0+) */ -uint8_t midi2_ci_get_subscriber_count(const midi2_ci_state *state); - -/** Process incoming SysEx that might be MIDI-CI. - * Returns true if the message was handled (CI), false if not. - * Automatically sends Discovery Reply, Profile Inquiry Reply, PE responses. - * - * LIMITATIONS (simplified convenience responder): - * - PE Get always returns the first property with a non-NULL value, - * regardless of which property was requested (no JSON header parsing). - * - PE Set calls the first setter with an empty value string. - * - All replies use MIDI-CI Message Version 1 (no v2 extended fields). - * - For full PE/Profile control, use midi2_ci_dispatch directly. - * - * @param group UMP group the SysEx arrived on (responses go to same group) - * @param data Reassembled SysEx content (no F0/F7) - * @param length Length of data */ -bool midi2_ci_process_sysex(midi2_ci_state *state, - uint8_t group, const uint8_t *data, uint16_t length); - -#ifdef MIDI2_IMPLEMENTATION - -/* == midi2_dispatch (impl) =============================================== */ - - -/* - * midi2_dispatch.c - UMP typed dispatch implementation - * - * Part of midi2 - Portable MIDI 2.0 library (C99) - * https://github.com/sauloverissimo/midi2 - * - * Spec: MIDI 2.0 UMP (M2-104-UM v1.1.2, Nov 2024) - * Version: 0.3.0 - */ - - -/*--------------------------------------------------------------------+ - * Init - *--------------------------------------------------------------------*/ -void midi2_dispatch_init(midi2_dispatch *dp) { - memset(dp, 0, sizeof(*dp)); -} - -/*--------------------------------------------------------------------+ - * Internal: dispatch MT 0x0 Utility (1 word) - *--------------------------------------------------------------------*/ -static void dispatch_utility(midi2_dispatch *dp, uint32_t w) { - uint8_t group = (uint8_t)((w >> 24) & 0x0F); - uint8_t status = (uint8_t)((w >> 20) & 0x0F); - - switch (status) { - case MIDI2_UTILITY_NOOP: - if (dp->on_noop) dp->on_noop(dp->context); - break; - case MIDI2_UTILITY_JR_CLOCK: - if (dp->on_jr_clock) dp->on_jr_clock(group, (uint16_t)(w & 0xFFFF), dp->context); - break; - case MIDI2_UTILITY_JR_TIMESTAMP: - if (dp->on_jr_timestamp) dp->on_jr_timestamp(group, (uint16_t)(w & 0xFFFF), dp->context); - break; - case MIDI2_UTILITY_DCTPQ: - if (dp->on_dctpq) dp->on_dctpq((uint16_t)(w & 0xFFFF), dp->context); - break; - case MIDI2_UTILITY_DC: - if (dp->on_dc) dp->on_dc(w & 0x000FFFFF, dp->context); - break; - default: - if (dp->on_unknown) dp->on_unknown(&w, 1, dp->context); - break; - } -} - -/*--------------------------------------------------------------------+ - * Internal: dispatch MT 0x1 System (1 word) - *--------------------------------------------------------------------*/ -static void dispatch_system(midi2_dispatch *dp, uint32_t w) { - if (!dp->on_system) return; - uint8_t group = (uint8_t)((w >> 24) & 0x0F); - uint8_t status = (uint8_t)((w >> 16) & 0xFF); - uint8_t data1 = (uint8_t)((w >> 8) & 0xFF); - uint8_t data2 = (uint8_t)(w & 0xFF); - dp->on_system(group, status, data1, data2, dp->context); -} - -/*--------------------------------------------------------------------+ - * Internal: dispatch MT 0x2 MIDI 1.0 Channel Voice (1 word) - *--------------------------------------------------------------------*/ -static void dispatch_cv1(midi2_dispatch *dp, uint32_t w) { - uint8_t group = (uint8_t)((w >> 24) & 0x0F); - uint8_t status = (uint8_t)((w >> 16) & 0xF0); - uint8_t channel = (uint8_t)((w >> 16) & 0x0F); - uint8_t data1 = (uint8_t)((w >> 8) & 0x7F); - uint8_t data2 = (uint8_t)(w & 0x7F); - - switch (status) { - case 0x80: - if (dp->on_cv1_note_off) dp->on_cv1_note_off(group, channel, data1, data2, dp->context); - break; - case 0x90: - if (dp->on_cv1_note_on) dp->on_cv1_note_on(group, channel, data1, data2, dp->context); - break; - case 0xA0: - if (dp->on_cv1_poly_pressure) dp->on_cv1_poly_pressure(group, channel, data1, data2, dp->context); - break; - case 0xB0: - if (dp->on_cv1_cc) dp->on_cv1_cc(group, channel, data1, data2, dp->context); - break; - case 0xC0: - if (dp->on_cv1_program) dp->on_cv1_program(group, channel, data1, dp->context); - break; - case 0xD0: - if (dp->on_cv1_chan_pressure) dp->on_cv1_chan_pressure(group, channel, data1, dp->context); - break; - case 0xE0: - if (dp->on_cv1_pitch_bend) { - uint16_t pb = (uint16_t)((data2 << 7) | data1); - dp->on_cv1_pitch_bend(group, channel, pb, dp->context); - } - break; - default: - if (dp->on_unknown) dp->on_unknown(&w, 1, dp->context); - break; - } -} - -/*--------------------------------------------------------------------+ - * Internal: dispatch MT 0x3 SysEx7 (2 words) - *--------------------------------------------------------------------*/ -static void dispatch_sysex7(midi2_dispatch *dp, const uint32_t *w) { - if (!dp->on_sysex7) return; - uint8_t group = (uint8_t)((w[0] >> 24) & 0x0F); - uint8_t status = (uint8_t)((w[0] >> 16) & 0xF0); /* matches MIDI2_SYSEX7_* enums */ - uint8_t num = (uint8_t)((w[0] >> 16) & 0x0F); - if (num > 6) num = 6; - - uint8_t data[6]; - /* bytes packed: w[0][15:8], w[0][7:0], w[1][31:24]..w[1][7:0] */ - data[0] = (uint8_t)((w[0] >> 8) & 0xFF); - data[1] = (uint8_t)(w[0] & 0xFF); - data[2] = (uint8_t)((w[1] >> 24) & 0xFF); - data[3] = (uint8_t)((w[1] >> 16) & 0xFF); - data[4] = (uint8_t)((w[1] >> 8) & 0xFF); - data[5] = (uint8_t)(w[1] & 0xFF); - - dp->on_sysex7(group, status, data, num, dp->context); -} - -/*--------------------------------------------------------------------+ - * Internal: dispatch MT 0x4 MIDI 2.0 Channel Voice (2 words) - *--------------------------------------------------------------------*/ -static void dispatch_cv2(midi2_dispatch *dp, const uint32_t *w) { - uint8_t group = (uint8_t)((w[0] >> 24) & 0x0F); - uint8_t status = (uint8_t)((w[0] >> 16) & 0xF0); - uint8_t channel = (uint8_t)((w[0] >> 16) & 0x0F); - uint8_t byte3 = (uint8_t)((w[0] >> 8) & 0xFF); /* note/bank/index */ - uint8_t byte4 = (uint8_t)(w[0] & 0xFF); /* attr_type/index/lsb */ - - switch (status) { - case MIDI2_STATUS_NOTE_ON: - if (dp->on_note_on) { - uint16_t velocity = (uint16_t)(w[1] >> 16); - uint16_t attr_data = (uint16_t)(w[1] & 0xFFFF); - dp->on_note_on(group, channel, byte3 & 0x7F, velocity, byte4, attr_data, dp->context); - } - break; - - case MIDI2_STATUS_NOTE_OFF: - if (dp->on_note_off) { - uint16_t velocity = (uint16_t)(w[1] >> 16); - uint16_t attr_data = (uint16_t)(w[1] & 0xFFFF); - dp->on_note_off(group, channel, byte3 & 0x7F, velocity, byte4, attr_data, dp->context); - } - break; - - case MIDI2_STATUS_POLY_PRESSURE: - if (dp->on_poly_pressure) dp->on_poly_pressure(group, channel, byte3 & 0x7F, w[1], dp->context); - break; - - case MIDI2_STATUS_CC: - if (dp->on_cc) dp->on_cc(group, channel, byte3 & 0x7F, w[1], dp->context); - break; - - case MIDI2_STATUS_PROGRAM: { - if (dp->on_program) { - uint8_t program = (uint8_t)((w[1] >> 24) & 0x7F); - bool bank_valid = (w[1] & (UINT32_C(1) << 31)) != 0; - uint8_t bank_msb = (uint8_t)((w[1] >> 8) & 0x7F); - uint8_t bank_lsb = (uint8_t)(w[1] & 0x7F); - dp->on_program(group, channel, program, bank_valid, bank_msb, bank_lsb, dp->context); - } - break; - } - - case MIDI2_STATUS_CHAN_PRESSURE: - if (dp->on_chan_pressure) dp->on_chan_pressure(group, channel, w[1], dp->context); - break; - - case MIDI2_STATUS_PITCH_BEND: - if (dp->on_pitch_bend) dp->on_pitch_bend(group, channel, w[1], dp->context); - break; - - case MIDI2_STATUS_PER_NOTE_PB: - if (dp->on_per_note_pb) dp->on_per_note_pb(group, channel, byte3 & 0x7F, w[1], dp->context); - break; - - case MIDI2_STATUS_REG_PER_NOTE: - if (dp->on_reg_per_note) dp->on_reg_per_note(group, channel, byte3 & 0x7F, byte4, w[1], dp->context); - break; - - case MIDI2_STATUS_ASN_PER_NOTE: - if (dp->on_asn_per_note) dp->on_asn_per_note(group, channel, byte3 & 0x7F, byte4, w[1], dp->context); - break; - - case MIDI2_STATUS_RPN: - if (dp->on_rpn) dp->on_rpn(group, channel, byte3 & 0x7F, byte4 & 0x7F, w[1], dp->context); - break; - - case MIDI2_STATUS_NRPN: - if (dp->on_nrpn) dp->on_nrpn(group, channel, byte3 & 0x7F, byte4 & 0x7F, w[1], dp->context); - break; - - case MIDI2_STATUS_REL_RPN: - if (dp->on_rel_rpn) dp->on_rel_rpn(group, channel, byte3 & 0x7F, byte4 & 0x7F, w[1], dp->context); - break; - - case MIDI2_STATUS_REL_NRPN: - if (dp->on_rel_nrpn) dp->on_rel_nrpn(group, channel, byte3 & 0x7F, byte4 & 0x7F, w[1], dp->context); - break; - - case MIDI2_STATUS_PER_NOTE_MGMT: - if (dp->on_per_note_mgmt) { - bool detach = (byte4 & 0x02) != 0; - bool reset = (byte4 & 0x01) != 0; - dp->on_per_note_mgmt(group, channel, byte3 & 0x7F, detach, reset, dp->context); - } - break; - - default: - if (dp->on_unknown) dp->on_unknown(w, 2, dp->context); - break; - } -} - -/*--------------------------------------------------------------------+ - * Internal: dispatch MT 0x5 Data 128-bit (4 words) - *--------------------------------------------------------------------*/ -static void dispatch_data128(midi2_dispatch *dp, const uint32_t *w) { - uint8_t group = (uint8_t)((w[0] >> 24) & 0x0F); - uint8_t status_byte = (uint8_t)((w[0] >> 16) & 0xFF); - uint8_t status_hi = status_byte & 0xF0; - uint8_t id_lo = status_byte & 0x0F; - - if (status_hi == MIDI2_MDS_HEADER) { - /* Mixed Data Set Header */ - if (dp->on_mds_header) { - uint16_t num_bytes = (uint16_t)(w[0] & 0xFFFF); - uint16_t num_chunks = (uint16_t)(w[1] >> 16); - uint16_t this_chunk = (uint16_t)(w[1] & 0xFFFF); - uint16_t mfr_id = (uint16_t)(w[2] >> 16); - uint16_t device_id = (uint16_t)(w[2] & 0xFFFF); - uint16_t sub_id1 = (uint16_t)(w[3] >> 16); - uint16_t sub_id2 = (uint16_t)(w[3] & 0xFFFF); - dp->on_mds_header(group, id_lo, num_bytes, num_chunks, this_chunk, - mfr_id, device_id, sub_id1, sub_id2, dp->context); - } - } else if (status_hi == MIDI2_MDS_PAYLOAD) { - /* Mixed Data Set Payload */ - if (dp->on_mds_payload) { - uint8_t data[14]; - uint8_t i; - for (i = 0; i < 14; i++) { - uint8_t wi = (uint8_t)((i + 2) / 4); - uint8_t sh = (uint8_t)(24 - ((i + 2) % 4) * 8); - data[i] = (uint8_t)((w[wi] >> sh) & 0xFF); - } - dp->on_mds_payload(group, id_lo, data, 14, dp->context); - } - } else { - /* SysEx8 (status 0x00..0x30) */ - uint8_t sysex_status = status_byte & 0xF0; /* matches MIDI2_SYSEX8_* enums */ - uint8_t num_bytes = status_byte & 0x0F; - - if (dp->on_sysex8) { - uint8_t stream_id = (uint8_t)((w[0] >> 8) & 0xFF); - /* data bytes: w[0][7:0], w[1][31:0], w[2][31:0], w[3][31:0] = up to 13 */ - uint8_t data[13]; - uint8_t data_len = (num_bytes > 1) ? (uint8_t)(num_bytes - 1) : 0; /* subtract stream_id */ - if (data_len > 13) data_len = 13; - uint8_t i; - if (data_len >= 1) data[0] = (uint8_t)(w[0] & 0xFF); - for (i = 1; i < data_len; i++) { - uint8_t wi = (uint8_t)(1 + (i - 1) / 4); - uint8_t sh = (uint8_t)(24 - ((i - 1) % 4) * 8); - data[i] = (uint8_t)((w[wi] >> sh) & 0xFF); - } - dp->on_sysex8(group, sysex_status, stream_id, data, data_len, dp->context); - } else if (dp->on_unknown) { - dp->on_unknown(w, 4, dp->context); - } - } -} - -/*--------------------------------------------------------------------+ - * Internal: dispatch MT 0xD Flex Data (4 words) - *--------------------------------------------------------------------*/ -static void dispatch_flex(midi2_dispatch *dp, const uint32_t *w) { - uint8_t group = (uint8_t)((w[0] >> 24) & 0x0F); - uint8_t format = (uint8_t)((w[0] >> 22) & 0x03); - uint8_t address = (uint8_t)((w[0] >> 20) & 0x03); - uint8_t channel = (uint8_t)((w[0] >> 16) & 0x0F); - uint8_t bank = (uint8_t)((w[0] >> 8) & 0xFF); - uint8_t status = (uint8_t)(w[0] & 0xFF); - - if (bank == MIDI2_FLEX_BANK_SETUP) { - switch (status) { - case MIDI2_FLEX_TEMPO: - if (dp->on_tempo) dp->on_tempo(group, w[1], dp->context); - break; - - case MIDI2_FLEX_TIME_SIG: - if (dp->on_time_sig) { - uint8_t num = (uint8_t)((w[1] >> 24) & 0xFF); - uint8_t den = (uint8_t)((w[1] >> 16) & 0xFF); - uint8_t n32 = (uint8_t)((w[1] >> 8) & 0xFF); - dp->on_time_sig(group, num, den, n32, dp->context); - } - break; - - case MIDI2_FLEX_METRONOME: - if (dp->on_metronome) { - uint8_t clicks = (uint8_t)((w[1] >> 24) & 0xFF); - uint8_t a1 = (uint8_t)((w[1] >> 16) & 0xFF); - uint8_t a2 = (uint8_t)((w[1] >> 8) & 0xFF); - uint8_t a3 = (uint8_t)(w[1] & 0xFF); - uint8_t s1 = (uint8_t)((w[2] >> 24) & 0xFF); - uint8_t s2 = (uint8_t)((w[2] >> 16) & 0xFF); - dp->on_metronome(group, clicks, a1, a2, a3, s1, s2, dp->context); - } - break; - - case MIDI2_FLEX_KEY_SIG: - if (dp->on_key_sig) { - uint8_t sf_raw = (uint8_t)((w[1] >> 28) & 0x0F); - int8_t sf = (sf_raw & 0x08) ? (int8_t)(sf_raw | 0xF0) : (int8_t)sf_raw; - uint8_t tonic = (uint8_t)((w[1] >> 24) & 0x0F); - uint8_t keytype = (uint8_t)((w[1] >> 22) & 0x03); - dp->on_key_sig(group, address, channel, sf, tonic, keytype, dp->context); - } - break; - - case MIDI2_FLEX_CHORD_NAME: - if (dp->on_chord) { - uint8_t tsf_raw = (uint8_t)((w[1] >> 28) & 0x0F); - int8_t tsf = (tsf_raw & 0x08) ? (int8_t)(tsf_raw | 0xF0) : (int8_t)tsf_raw; - uint8_t tn = (uint8_t)((w[1] >> 24) & 0x0F); - uint8_t ct = (uint8_t)((w[1] >> 16) & 0xFF); - uint8_t a1t = (uint8_t)((w[1] >> 12) & 0x0F); - uint8_t a1d = (uint8_t)((w[1] >> 8) & 0x0F); - uint8_t a2t = (uint8_t)((w[1] >> 4) & 0x0F); - uint8_t a2d = (uint8_t)(w[1] & 0x0F); - uint8_t a3t = (uint8_t)((w[2] >> 28) & 0x0F); - uint8_t a3d = (uint8_t)((w[2] >> 24) & 0x0F); - uint8_t a4t = (uint8_t)((w[2] >> 20) & 0x0F); - uint8_t a4d = (uint8_t)((w[2] >> 16) & 0x0F); - uint8_t bsf_raw = (uint8_t)((w[3] >> 28) & 0x0F); - int8_t bsf = (bsf_raw & 0x08) ? (int8_t)(bsf_raw | 0xF0) : (int8_t)bsf_raw; - uint8_t bn = (uint8_t)((w[3] >> 24) & 0x0F); - uint8_t bt = (uint8_t)((w[3] >> 16) & 0xFF); - uint8_t b1t = (uint8_t)((w[3] >> 12) & 0x0F); - uint8_t b1d = (uint8_t)((w[3] >> 8) & 0x0F); - uint8_t b2t = (uint8_t)((w[3] >> 4) & 0x0F); - uint8_t b2d = (uint8_t)(w[3] & 0x0F); - dp->on_chord(group, address, channel, - tsf, tn, ct, - a1t, a1d, a2t, a2d, a3t, a3d, a4t, a4d, - bsf, bn, bt, b1t, b1d, b2t, b2d, - dp->context); - } - break; - - default: - if (dp->on_unknown) dp->on_unknown(w, 4, dp->context); - break; - } - } else if (bank == MIDI2_FLEX_BANK_METADATA || bank == MIDI2_FLEX_BANK_PERF_TEXT) { - /* Text messages: extract 12 bytes from words 1-3 */ - if (dp->on_flex_text) { - uint8_t text[12]; - uint8_t i; - for (i = 0; i < 12; i++) { - uint8_t wi = (uint8_t)(1 + i / 4); - uint8_t sh = (uint8_t)(24 - (i % 4) * 8); - text[i] = (uint8_t)((w[wi] >> sh) & 0xFF); - } - /* find actual length (trim trailing zeros in complete/end packets) */ - uint8_t len = 12; - if (format == 0 || format == 3) { - while (len > 0 && text[len - 1] == 0) len--; - } - dp->on_flex_text(group, format, address, channel, bank, status, text, len, dp->context); - } - } else { - if (dp->on_unknown) dp->on_unknown(w, 4, dp->context); - } -} - -/*--------------------------------------------------------------------+ - * Internal: dispatch MT 0xF UMP Stream (4 words) - *--------------------------------------------------------------------*/ -static void dispatch_stream(midi2_dispatch *dp, const uint32_t *w) { - uint8_t format = (uint8_t)((w[0] >> 26) & 0x03); - uint16_t status = (uint16_t)((w[0] >> 16) & 0x3FF); - - switch (status) { - case MIDI2_STREAM_ENDPOINT_DISCOVERY: - if (dp->on_endpoint_discovery) { - uint8_t maj = (uint8_t)((w[0] >> 8) & 0xFF); - uint8_t min = (uint8_t)(w[0] & 0xFF); - uint8_t filter = (uint8_t)(w[1] & 0xFF); - dp->on_endpoint_discovery(maj, min, filter, dp->context); - } - break; - - case MIDI2_STREAM_ENDPOINT_INFO: - if (dp->on_endpoint_info) { - uint8_t maj = (uint8_t)((w[0] >> 8) & 0xFF); - uint8_t min = (uint8_t)(w[0] & 0xFF); - bool static_fb = (w[1] & (UINT32_C(1) << 31)) != 0; - uint8_t num_fb = (uint8_t)((w[1] >> 24) & 0x7F); - bool m2 = (w[1] & (UINT32_C(1) << 9)) != 0; - bool m1 = (w[1] & (UINT32_C(1) << 8)) != 0; - bool rxjr = (w[1] & (UINT32_C(1) << 1)) != 0; - bool txjr = (w[1] & UINT32_C(1)) != 0; - dp->on_endpoint_info(maj, min, static_fb, num_fb, m2, m1, rxjr, txjr, dp->context); - } - break; - - case MIDI2_STREAM_DEVICE_IDENTITY: - if (dp->on_device_identity) { - uint32_t mfr = (w[1] >> 8) & 0x00FFFFFF; - uint16_t family = (uint16_t)(w[2] >> 16); - uint16_t model = (uint16_t)(w[2] & 0xFFFF); - uint32_t ver = w[3]; - dp->on_device_identity(mfr, family, model, ver, dp->context); - } - break; - - case MIDI2_STREAM_ENDPOINT_NAME: - case MIDI2_STREAM_PRODUCT_INSTANCE_ID: { - if (dp->on_stream_text) { - /* 2 bytes in w[0][15:0], 12 bytes in w[1..3] = 14 max */ - uint8_t data[14]; - data[0] = (uint8_t)((w[0] >> 8) & 0xFF); - data[1] = (uint8_t)(w[0] & 0xFF); - uint8_t i; - for (i = 0; i < 12; i++) { - uint8_t wi = (uint8_t)(1 + i / 4); - uint8_t sh = (uint8_t)(24 - (i % 4) * 8); - data[2 + i] = (uint8_t)((w[wi] >> sh) & 0xFF); - } - uint8_t len = 14; - if (format == 0 || format == 3) { - while (len > 0 && data[len - 1] == 0) len--; - } - dp->on_stream_text(status, format, data, len, dp->context); - } - break; - } - - case MIDI2_STREAM_FB_NAME: { - if (dp->on_fb_name) { - uint8_t fb_num = (uint8_t)((w[0] >> 8) & 0xFF); - /* 1 byte in w[0][7:0] + 12 in w[1..3] = 13 name bytes max */ - uint8_t name[13]; - name[0] = (uint8_t)(w[0] & 0xFF); - uint8_t i; - for (i = 0; i < 12; i++) { - uint8_t wi = (uint8_t)(1 + i / 4); - uint8_t sh = (uint8_t)(24 - (i % 4) * 8); - name[1 + i] = (uint8_t)((w[wi] >> sh) & 0xFF); - } - uint8_t len = 13; - if (format == 0 || format == 3) { - while (len > 0 && name[len - 1] == 0) len--; - } - dp->on_fb_name(format, fb_num, name, len, dp->context); - } - break; - } - - case MIDI2_STREAM_CONFIG_REQUEST: - if (dp->on_config_request) { - uint8_t proto = (uint8_t)((w[0] >> 8) & 0xFF); - bool rxjr = (w[0] & 0x02) != 0; - bool txjr = (w[0] & 0x01) != 0; - dp->on_config_request(proto, rxjr, txjr, dp->context); - } - break; - - case MIDI2_STREAM_CONFIG_NOTIFY: - if (dp->on_config_notify) { - uint8_t proto = (uint8_t)((w[0] >> 8) & 0xFF); - bool rxjr = (w[0] & 0x02) != 0; - bool txjr = (w[0] & 0x01) != 0; - dp->on_config_notify(proto, rxjr, txjr, dp->context); - } - break; - - case MIDI2_STREAM_FB_DISCOVERY: - if (dp->on_fb_discovery) { - uint8_t fb = (uint8_t)((w[0] >> 8) & 0xFF); - uint8_t filter = (uint8_t)(w[0] & 0xFF); - dp->on_fb_discovery(fb, filter, dp->context); - } - break; - - case MIDI2_STREAM_FB_INFO: - if (dp->on_fb_info) { - bool active = (w[0] & (UINT32_C(1) << 15)) != 0; - uint8_t fb_num = (uint8_t)((w[0] >> 8) & 0x7F); - uint8_t dir = (uint8_t)(w[0] & 0x03); - uint8_t first = (uint8_t)((w[1] >> 24) & 0x0F); - uint8_t ngrp = (uint8_t)((w[1] >> 16) & 0x0F); - uint8_t ci_ver = (uint8_t)((w[1] >> 8) & 0xFF); - uint8_t s8str = (uint8_t)((w[1] >> 2) & 0x3F); - uint8_t proto = (uint8_t)(w[1] & 0x03); - dp->on_fb_info(active, fb_num, dir, first, ngrp, ci_ver, s8str, proto, dp->context); - } - break; - - case MIDI2_STREAM_START_OF_CLIP: - if (dp->on_clip) dp->on_clip(true, dp->context); - break; - - case MIDI2_STREAM_END_OF_CLIP: - if (dp->on_clip) dp->on_clip(false, dp->context); - break; - - default: - if (dp->on_unknown) dp->on_unknown(w, 4, dp->context); - break; - } -} - -/*--------------------------------------------------------------------+ - * Public: feed one UMP message - * - * Signature matches midi2_proc_ump_cb so it can be used directly: - * proc.on_ump = midi2_dispatch_feed; - * proc.context = &dispatch; - *--------------------------------------------------------------------*/ -void midi2_dispatch_feed(const uint32_t *words, uint8_t word_count, void *context) { - midi2_dispatch *dp = (midi2_dispatch *)context; - if (!dp || !words || word_count == 0) return; - - uint8_t mt = (uint8_t)((words[0] >> 28) & 0x0F); - - switch (mt) { - case MIDI2_MT_UTILITY: - dispatch_utility(dp, words[0]); - break; - case MIDI2_MT_SYSTEM: - dispatch_system(dp, words[0]); - break; - case MIDI2_MT_MIDI1_CV: - if (dp->upscale_mt2) { - uint32_t mt4[2]; - if (midi2_msg_mt2_to_mt4(words[0], mt4)) { - dispatch_cv2(dp, mt4); - } - } else { - dispatch_cv1(dp, words[0]); - } - break; - case MIDI2_MT_SYSEX7: - dispatch_sysex7(dp, words); - break; - case MIDI2_MT_MIDI2_CV: - dispatch_cv2(dp, words); - break; - case MIDI2_MT_DATA128: - dispatch_data128(dp, words); - break; - case MIDI2_MT_FLEX_DATA: - dispatch_flex(dp, words); - break; - case MIDI2_MT_STREAM: - dispatch_stream(dp, words); - break; - default: - if (dp->on_unknown) dp->on_unknown(words, word_count, dp->context); - break; - } -} - -/* == midi2_proc (impl) =================================================== */ - - -/* - * midi2_proc.c - UMP stream processing implementation - * - * Part of midi2 - Portable MIDI 2.0 library (C99) - * https://github.com/sauloverissimo/midi2 - * - * Spec: MIDI 2.0 UMP (M2-104-UM v1.1.2, Nov 2024) - * Version: 0.3.0 - */ - - -/*--------------------------------------------------------------------+ - * Init - *--------------------------------------------------------------------*/ -void midi2_proc_init(midi2_proc_state *state, - uint8_t *sysex7_buf, uint16_t sysex7_buf_size, - uint8_t *sysex8_buf, uint16_t sysex8_buf_size) { - uint8_t i; - memset(state, 0, sizeof(midi2_proc_state)); - state->group_mask = 0xFFFF; - state->sysex_group = 0xFF; - state->sysex_buf = sysex7_buf; - state->sysex_buf_size = sysex7_buf_size; - state->sysex8_buf = sysex8_buf; - state->sysex8_buf_size = sysex8_buf_size; - state->sysex8_group = 0xFF; - for (i = 0; i < 16; i++) { - state->group_map[i] = i; - } -} - -/*--------------------------------------------------------------------+ - * SysEx7 reassembly (internal) - *--------------------------------------------------------------------*/ -static void sysex7_process(midi2_proc_state *state, uint8_t group, const uint32_t *words) { - if (state->sysex_buf == NULL) { - /* No buffer provided: deliver raw SysEx packets without reassembly */ - return; - } - uint8_t status_nib = (words[0] >> 16) & 0xF0; /* matches MIDI2_SYSEX7_* enums */ - uint8_t num_bytes = (words[0] >> 16) & 0x0F; - - /* Extract data bytes from SysEx7 UMP packet */ - uint8_t data[6]; - uint8_t n = 0; - if (num_bytes >= 1) data[n++] = (words[0] >> 8) & 0x7F; - if (num_bytes >= 2) data[n++] = (words[0] >> 0) & 0x7F; - if (num_bytes >= 3) data[n++] = (words[1] >> 24) & 0x7F; - if (num_bytes >= 4) data[n++] = (words[1] >> 16) & 0x7F; - if (num_bytes >= 5) data[n++] = (words[1] >> 8) & 0x7F; - if (num_bytes >= 6) data[n++] = (words[1] >> 0) & 0x7F; - - if (status_nib == MIDI2_SYSEX7_COMPLETE) { - /* Complete: single-packet SysEx */ - if (state->on_sysex7) { - state->on_sysex7(group, data, n, state->context); - } - return; - } - - if (status_nib == MIDI2_SYSEX7_START) { - /* Start */ - state->sysex_group = group; - state->sysex_len = 0; - } else if (group != state->sysex_group) { - /* Different group mid-stream: discard in-progress, restart */ - state->sysex_group = group; - state->sysex_len = 0; - if (status_nib == MIDI2_SYSEX7_CONTINUE) return; /* Continue without start: drop */ - } - - /* Append data */ - { - uint8_t i; - for (i = 0; i < n && state->sysex_len < state->sysex_buf_size; i++) { - state->sysex_buf[state->sysex_len++] = data[i]; - } - } - - if (status_nib == MIDI2_SYSEX7_END) { - /* End: deliver complete message */ - if (state->on_sysex7) { - state->on_sysex7(group, state->sysex_buf, state->sysex_len, state->context); - } - state->sysex_group = 0xFF; - state->sysex_len = 0; - } -} - -/*--------------------------------------------------------------------+ - * SysEx8 reassembly (internal) - *--------------------------------------------------------------------*/ -static void sysex8_process(midi2_proc_state *state, uint8_t group, const uint32_t *words) { - if (state->sysex8_buf == NULL) return; - - uint8_t status_nib = (words[0] >> 16) & 0xF0; /* matches MIDI2_SYSEX8_* enums */ - uint8_t num_bytes = (words[0] >> 16) & 0x0F; /* includes stream_id */ - uint8_t stream_id = (words[0] >> 8) & 0xFF; - - /* Extract data bytes (num_bytes - 1, since stream_id is counted) */ - uint8_t data[13]; - uint8_t n = 0; - uint8_t total_data = (num_bytes > 1) ? (uint8_t)(num_bytes - 1) : 0; - - if (total_data >= 1) data[n++] = words[0] & 0xFF; - if (total_data >= 2) data[n++] = (words[1] >> 24) & 0xFF; - if (total_data >= 3) data[n++] = (words[1] >> 16) & 0xFF; - if (total_data >= 4) data[n++] = (words[1] >> 8) & 0xFF; - if (total_data >= 5) data[n++] = words[1] & 0xFF; - if (total_data >= 6) data[n++] = (words[2] >> 24) & 0xFF; - if (total_data >= 7) data[n++] = (words[2] >> 16) & 0xFF; - if (total_data >= 8) data[n++] = (words[2] >> 8) & 0xFF; - if (total_data >= 9) data[n++] = words[2] & 0xFF; - if (total_data >= 10) data[n++] = (words[3] >> 24) & 0xFF; - if (total_data >= 11) data[n++] = (words[3] >> 16) & 0xFF; - if (total_data >= 12) data[n++] = (words[3] >> 8) & 0xFF; - if (total_data >= 13) data[n++] = words[3] & 0xFF; - - if (status_nib == MIDI2_SYSEX8_COMPLETE) { - /* Complete single-packet SysEx8 */ - if (state->on_sysex8) { - state->on_sysex8(group, stream_id, data, n, state->context); - } - return; - } - - if (status_nib == MIDI2_SYSEX8_START) { - /* Start */ - state->sysex8_group = group; - state->sysex8_stream_id = stream_id; - state->sysex8_len = 0; - } else if (group != state->sysex8_group || stream_id != state->sysex8_stream_id) { - /* Different group or stream mid-stream: discard */ - state->sysex8_group = group; - state->sysex8_stream_id = stream_id; - state->sysex8_len = 0; - if (status_nib == MIDI2_SYSEX8_CONTINUE) return; - } - - /* Append data */ - { - uint8_t i; - for (i = 0; i < n && state->sysex8_len < state->sysex8_buf_size; i++) { - state->sysex8_buf[state->sysex8_len++] = data[i]; - } - } - - if (status_nib == MIDI2_SYSEX8_END) { - /* End */ - if (state->on_sysex8) { - state->on_sysex8(group, state->sysex8_stream_id, - state->sysex8_buf, state->sysex8_len, state->context); - } - state->sysex8_group = 0xFF; - state->sysex8_len = 0; - } -} - -/*--------------------------------------------------------------------+ - * Feed - *--------------------------------------------------------------------*/ -void midi2_proc_feed(midi2_proc_state *state, const uint32_t *words, uint8_t word_count) { - uint8_t mt = midi2_msg_get_mt(words); - uint8_t group = midi2_msg_get_group(words); - - (void)word_count; /* caller provides for API clarity; MT determines actual size */ - - /* SysEx8: reassemble before group filtering (same rationale as SysEx7) */ - if (mt == MIDI2_MT_DATA128) { - sysex8_process(state, group, words); - } - - /* SysEx7 is processed before group filtering by design: MIDI-CI responses - * (delivered via on_sysex7) must work regardless of group filter settings. - * SysEx7 messages from filtered-out groups will still be reassembled and - * delivered via on_sysex7. This is intentional: MIDI-CI must work - * regardless of group filter settings. */ - if (mt == MIDI2_MT_SYSEX7) { - sysex7_process(state, group, words); - } - - /* Group filtering: bypass for Utility (MT 0x0) and Stream (MT 0xF) */ - if (mt != MIDI2_MT_UTILITY && mt != MIDI2_MT_STREAM) { - if (!(state->group_mask & (1u << group))) return; - } - - /* Dispatch to UMP callback (SysEx7/8 already handled above via callbacks) */ - if (mt != MIDI2_MT_SYSEX7 && mt != MIDI2_MT_DATA128 && state->on_ump) { - state->on_ump(words, midi2_msg_word_count(mt), state->context); - } -} - -/*--------------------------------------------------------------------+ - * Group remap - *--------------------------------------------------------------------*/ -void midi2_proc_remap_group(midi2_proc_state *state, uint32_t *words) { - uint8_t mt = midi2_msg_get_mt(words); - if (mt != MIDI2_MT_UTILITY && mt != MIDI2_MT_STREAM) { - uint8_t group = midi2_msg_get_group(words); - uint8_t new_group = state->group_map[group & 0x0F]; - words[0] = (words[0] & 0xF0FFFFFF) | ((uint32_t)(new_group & 0x0F) << 24); - } -} - -/*--------------------------------------------------------------------+ - * SysEx7 send (fragmentation) - *--------------------------------------------------------------------*/ -void midi2_proc_send_sysex7(uint8_t group, const uint8_t *data, uint16_t length, - midi2_proc_write_fn write_fn, void *context) { - uint32_t w[2]; - uint16_t offset = 0; - - if (length == 0) return; - - if (length <= 6) { - midi2_msg_sysex7_packet(w, group, MIDI2_SYSEX7_COMPLETE, data, (uint8_t)length); - write_fn(w, 2, context); - return; - } - - /* Start */ - midi2_msg_sysex7_packet(w, group, MIDI2_SYSEX7_START, data, 6); - write_fn(w, 2, context); - offset = 6; - - /* Continue */ - while (offset + 6 < length) { - midi2_msg_sysex7_packet(w, group, MIDI2_SYSEX7_CONTINUE, data + offset, 6); - write_fn(w, 2, context); - offset += 6; - } - - /* End */ - { - uint8_t remaining = (uint8_t)(length - offset); - midi2_msg_sysex7_packet(w, group, MIDI2_SYSEX7_END, data + offset, remaining); - write_fn(w, 2, context); - } -} - -/*--------------------------------------------------------------------+ - * Function Block Name Notification (UMP Stream MT 0xF status 0x12) - * - * M2-104-UM §7.1.9. 4-word packet; 1 name byte at byte 3 of word 0 plus - * 12 more bytes across words 1-3, so 13 bytes of name per UMP. Uses - * Form = Complete (0) for <=13 bytes, Start/Continue/End otherwise. - * Spec mandates max 91 bytes total; we silently truncate at 91. - *--------------------------------------------------------------------*/ -#define MIDI2_FB_NAME_BYTES_PER_UMP 13u -#define MIDI2_FB_NAME_MAX_BYTES 91u - -void midi2_proc_send_fb_name(uint8_t fb_idx, const char *name, - midi2_proc_write_fn write_fn, void *context) { - if (!write_fn || !name) return; - - uint16_t total = 0; - while (name[total] && total < MIDI2_FB_NAME_MAX_BYTES) total++; - if (total == 0) return; - - uint16_t offset = 0; - while (offset < total) { - uint16_t remaining = (uint16_t)(total - offset); - uint8_t n = (remaining > MIDI2_FB_NAME_BYTES_PER_UMP) - ? (uint8_t)MIDI2_FB_NAME_BYTES_PER_UMP - : (uint8_t)remaining; - uint8_t is_first = (offset == 0); - uint8_t is_last = (remaining <= MIDI2_FB_NAME_BYTES_PER_UMP); - uint8_t form = (is_first && is_last) ? 0u /* Complete */ - : is_first ? 1u /* Start */ - : is_last ? 3u /* End */ - : 2u; /* Continue */ - - uint32_t msg[4] = {0}; - msg[0] = ((uint32_t)0xFu << 28) - | ((uint32_t)form << 26) - | ((uint32_t)0x12u << 16) - | ((uint32_t)fb_idx << 8); - const uint8_t *p = (const uint8_t *)(name + offset); - if (n > 0) msg[0] |= (uint32_t)p[0]; - uint8_t i; - for (i = 1; i < n; i++) { - uint8_t widx = (uint8_t)(1u + (i - 1u) / 4u); - uint8_t shift = (uint8_t)(24u - ((i - 1u) % 4u) * 8u); - msg[widx] |= ((uint32_t)p[i] << shift); - } - write_fn(msg, 4, context); - offset += n; - } -} - -/*--------------------------------------------------------------------+ - * UMP Stream text senders: Endpoint Name (status 0x003), - * Product Instance ID (status 0x004). M2-104-UM §7.1.7 / §7.1.8. - * - * 14 payload bytes per UMP (bytes 0-1 live in word 0 bits [15:0], - * bytes 2-13 in words 1-3). Fragments into Complete / Start / - * Continue / End packets. Reuses midi2_msg_stream_endpoint_name / - * midi2_msg_stream_product_id inline builders so the word layout - * stays canonical. - *--------------------------------------------------------------------*/ -#define MIDI2_STREAM_TEXT_BYTES_PER_UMP 14u -#define MIDI2_STREAM_TEXT_MAX_BYTES 98u /* 7 UMPs cap per spec */ - -typedef void (*stream_text_builder_fn)(uint32_t *w, uint8_t format, - const uint8_t *data, uint8_t len); - -static void stream_text_emit(stream_text_builder_fn builder, - const char *text, - midi2_proc_write_fn write_fn, void *context) { - if (!write_fn || !text) return; - uint16_t total = 0; - while (text[total] && total < MIDI2_STREAM_TEXT_MAX_BYTES) total++; - if (total == 0) return; - - uint16_t offset = 0; - while (offset < total) { - uint16_t remaining = (uint16_t)(total - offset); - uint8_t n = (remaining > MIDI2_STREAM_TEXT_BYTES_PER_UMP) - ? (uint8_t)MIDI2_STREAM_TEXT_BYTES_PER_UMP - : (uint8_t)remaining; - uint8_t is_first = (offset == 0); - uint8_t is_last = (remaining <= MIDI2_STREAM_TEXT_BYTES_PER_UMP); - uint8_t form = (is_first && is_last) ? 0u /* Complete */ - : is_first ? 1u /* Start */ - : is_last ? 3u /* End */ - : 2u; /* Continue */ - uint32_t msg[4]; - builder(msg, form, (const uint8_t *)(text + offset), n); - write_fn(msg, 4, context); - offset += n; - } -} - -void midi2_proc_send_endpoint_name(const char *name, - midi2_proc_write_fn write_fn, void *context) { - stream_text_emit(midi2_msg_stream_endpoint_name, name, write_fn, context); -} - -void midi2_proc_send_product_id(const char *id, - midi2_proc_write_fn write_fn, void *context) { - stream_text_emit(midi2_msg_stream_product_id, id, write_fn, context); -} - -/*--------------------------------------------------------------------+ - * Device Identity Notification sender (M2-104-UM §7.1.6). - * Single 4-word UMP, no fragmentation. Delegates to the inline - * builder for byte layout. - *--------------------------------------------------------------------*/ -void midi2_proc_send_device_identity(uint32_t manufacturer_id, - uint16_t family_id, uint16_t model_id, - uint32_t version_id, - midi2_proc_write_fn write_fn, void *context) { - if (!write_fn) return; - uint32_t msg[4]; - midi2_msg_stream_device_identity(msg, manufacturer_id, family_id, - model_id, version_id); - write_fn(msg, 4, context); -} - -/*--------------------------------------------------------------------+ - * SysEx8 sender (M2-104-UM §7.8). - * - * 13 data bytes per UMP (word 0 low byte carries data[0], words 1-3 - * carry the remaining 12). stream_id rides word 0 bits [15:8]. The - * status nibble in bits [23:20] encodes Complete/Start/Continue/End - * per Table 14. Delegates to midi2_msg_sysex8_packet per packet so - * the status/num_bytes field stays aligned with the canonical - * builder. - *--------------------------------------------------------------------*/ -#define MIDI2_SYSEX8_BYTES_PER_UMP 13u - -void midi2_proc_send_sysex8(uint8_t group, uint8_t stream_id, - const uint8_t *data, uint16_t length, - midi2_proc_write_fn write_fn, void *context) { - if (!write_fn) return; - if (length == 0) return; - if (!data) return; - - uint16_t offset = 0; - while (offset < length) { - uint16_t remaining = (uint16_t)(length - offset); - uint8_t n = (remaining > MIDI2_SYSEX8_BYTES_PER_UMP) - ? (uint8_t)MIDI2_SYSEX8_BYTES_PER_UMP - : (uint8_t)remaining; - uint8_t is_first = (offset == 0); - uint8_t is_last = (remaining <= MIDI2_SYSEX8_BYTES_PER_UMP); - uint8_t status = (is_first && is_last) ? MIDI2_SYSEX8_COMPLETE - : is_first ? MIDI2_SYSEX8_START - : is_last ? MIDI2_SYSEX8_END - : MIDI2_SYSEX8_CONTINUE; - uint32_t msg[4]; - midi2_msg_sysex8_packet(msg, group, status, stream_id, - data + offset, n); - write_fn(msg, 4, context); - offset += n; - } -} - -/* == midi2_conv (impl) =================================================== */ - - -/* - * midi2_conv.c - MIDI 1.0 byte stream to UMP implementation - * - * Part of midi2 - Portable MIDI 2.0 library (C99) - * https://github.com/sauloverissimo/midi2 - * - * Spec: MIDI 2.0 UMP (M2-104-UM v1.1.2, Nov 2024) - * Version: 0.3.0 - */ - - -void midi2_conv_init(midi2_conv_state *state, uint8_t group) { - memset(state, 0, sizeof(midi2_conv_state)); - state->group = group & 0x0F; -} - -/* How many data bytes a status byte expects */ -static uint8_t expected_data_bytes(uint8_t status) { - switch (status & 0xF0) { - case 0x80: return 2; /* Note Off */ - case 0x90: return 2; /* Note On */ - case 0xA0: return 2; /* Poly Pressure */ - case 0xB0: return 2; /* CC */ - case 0xC0: return 1; /* Program Change */ - case 0xD0: return 1; /* Channel Pressure */ - case 0xE0: return 2; /* Pitch Bend */ - default: break; - } - /* System Common */ - switch (status) { - case 0xF1: return 1; /* MTC Quarter Frame */ - case 0xF2: return 2; /* Song Position Pointer */ - case 0xF3: return 1; /* Song Select */ - default: return 0; /* System Real-Time, F0, F7, etc */ - } -} - -/* Emit a completed channel voice or system common message as UMP */ -static void emit_channel_msg(midi2_conv_state *state) { - uint8_t status = state->running_status; - - if ((status & 0xF0) >= 0x80 && (status & 0xF0) <= 0xE0) { - /* Channel Voice: MT 0x2 */ - state->ump[0] = midi2_msg_from_midi1(state->group, status, - state->data[0], state->data[1]); - state->ump_words = 1; - } else if (status >= 0xF1 && status <= 0xF3) { - /* System Common: MT 0x1 */ - if (state->data_byte_count == 0) { - state->ump[0] = midi2_msg_system(state->group, status); - } else if (state->data_byte_count == 1) { - state->ump[0] = midi2_msg_system_2byte(state->group, status, state->data[0]); - } else { - state->ump[0] = midi2_msg_system_3byte(state->group, status, - state->data[0], state->data[1]); - } - state->ump_words = 1; - } -} - -/* Emit a SysEx7 UMP packet from the internal 6-byte buffer. - * Called when the buffer is full (6 bytes) or when F7 arrives. */ -static bool emit_sysex_packet(midi2_conv_state *state, bool is_end) { - uint8_t status; - - if (!state->sysex_started && is_end) { - /* Never emitted START: entire SysEx fits in one COMPLETE packet */ - status = MIDI2_SYSEX7_COMPLETE; - } else if (!state->sysex_started) { - /* First packet of a multi-packet SysEx */ - status = MIDI2_SYSEX7_START; - state->sysex_started = true; - } else if (is_end) { - /* Final packet */ - status = MIDI2_SYSEX7_END; - } else { - /* Middle packet */ - status = MIDI2_SYSEX7_CONTINUE; - } - - midi2_msg_sysex7_packet(state->ump, state->group, status, - state->sysex_buf, state->sysex_len); - state->ump_words = 2; - state->sysex_len = 0; - - if (is_end) { - state->in_sysex = false; - state->sysex_started = false; - } - - return true; -} - -bool midi2_conv_feed(midi2_conv_state *state, uint8_t byte) { - state->ump_words = 0; - - /* Real-Time messages (F8-FF) can appear anywhere, even mid-message */ - if (byte >= 0xF8) { - state->ump[0] = midi2_msg_system(state->group, byte); - state->ump_words = 1; - return true; - } - - /* SysEx handling */ - if (byte == 0xF0) { - /* SysEx Start */ - state->in_sysex = true; - state->sysex_started = false; - state->sysex_len = 0; - state->running_status = 0; /* SysEx cancels Running Status */ - return false; - } - - if (byte == 0xF7) { - /* SysEx End */ - if (state->in_sysex) { - return emit_sysex_packet(state, true); - } - return false; /* F7 without F0: ignore */ - } - - if (state->in_sysex) { - /* A non-Real-Time status byte during SysEx terminates it implicitly */ - if (byte >= 0x80) { - state->in_sysex = false; - state->sysex_started = false; - state->sysex_len = 0; - /* Fall through to process as new status byte */ - } else { - /* Accumulate SysEx data byte */ - state->sysex_buf[state->sysex_len++] = byte; - if (state->sysex_len == 6) { - /* Buffer full: emit START or CONTINUE packet */ - return emit_sysex_packet(state, false); - } - return false; - } - } - - /* Status byte */ - if (byte >= 0x80) { - /* System Common (F1-F6) cancel Running Status */ - if (byte >= 0xF1 && byte <= 0xF6) { - state->running_status = byte; - state->data_byte_count = expected_data_bytes(byte); - state->data_pos = 0; - if (state->data_byte_count == 0) { - /* Tune Request (F6) -- no data bytes */ - state->ump[0] = midi2_msg_system(state->group, byte); - state->ump_words = 1; - state->running_status = 0; - return true; - } - return false; - } - - /* Channel Voice status */ - state->running_status = byte; - state->data_byte_count = expected_data_bytes(byte); - state->data_pos = 0; - state->data[0] = 0; - state->data[1] = 0; - return false; - } - - /* Data byte (Running Status applies) */ - if (state->running_status == 0) { - return false; /* No status set: orphan data byte, ignore */ - } - - state->data[state->data_pos++] = byte; - - if (state->data_pos >= state->data_byte_count) { - emit_channel_msg(state); - state->data_pos = 0; /* Reset for Running Status (next data bytes reuse status) */ - state->data[0] = 0; - state->data[1] = 0; - return true; - } - - return false; -} - -/* == midi2_ci_dispatch (impl) ============================================ */ - - -/* - * midi2_ci_dispatch.c - MIDI-CI typed dispatch implementation - * - * Part of midi2 - Portable MIDI 2.0 library (C99) - * https://github.com/sauloverissimo/midi2 - * - * Spec: MIDI-CI (M2-101-UM v1.2, Jun 2023) - * Version: 0.3.0 - */ - - -void midi2_ci_dispatch_init(midi2_ci_dispatch *dp) { - memset(dp, 0, sizeof(*dp)); -} - -/*--------------------------------------------------------------------+ - * Internal: build common header struct from raw data - *--------------------------------------------------------------------*/ -static midi2_ci_header make_hdr(const uint8_t *d, uint8_t group) { - midi2_ci_header h; - h.device_id = midi2_ci_get_device_id(d); - h.version = midi2_ci_get_version(d); - h.src_muid = midi2_ci_get_src_muid(d); - h.dst_muid = midi2_ci_get_dst_muid(d); - h.group = group; - return h; -} - -/*--------------------------------------------------------------------+ - * Internal: parse PE data message (shared by Get/Set/Subscribe/Notify) - *--------------------------------------------------------------------*/ -static void dispatch_pe_data(midi2_ci_dp_pe_data_cb cb, midi2_ci_header hdr, - const uint8_t *d, uint16_t len, void *ctx) { - if (!cb) return; - if (len < 14) return; /* header(13) + request_id(1) minimum */ - uint8_t request_id = d[13]; - uint16_t p = 14; - - /* Header data */ - uint16_t hdr_len = 0; - if (p + 2 <= len) { hdr_len = midi2_ci_read_14(&d[p]); p += 2; } - const uint8_t *hdr_data = (hdr_len > 0 && p + hdr_len <= len) ? &d[p] : NULL; - if (hdr_len > 0) p += hdr_len; - - /* Chunk info */ - uint16_t num_chunks = 0, this_chunk = 0; - if (p + 2 <= len) { num_chunks = midi2_ci_read_14(&d[p]); p += 2; } - if (p + 2 <= len) { this_chunk = midi2_ci_read_14(&d[p]); p += 2; } - - /* Body data */ - uint16_t body_len = 0; - if (p + 2 <= len) { body_len = midi2_ci_read_14(&d[p]); p += 2; } - const uint8_t *body_data = (body_len > 0 && p + body_len <= len) ? &d[p] : NULL; - - cb(hdr, request_id, hdr_data, hdr_len, num_chunks, this_chunk, - body_data, body_len, ctx); -} - -/*--------------------------------------------------------------------+ - * Feed - *--------------------------------------------------------------------*/ -bool midi2_ci_dispatch_feed(midi2_ci_dispatch *dp, uint8_t group, - const uint8_t *data, uint16_t length) { - if (!dp || !data) return false; - if (!midi2_ci_is_ci(data, length)) return false; - - midi2_ci_header hdr = make_hdr(data, group); - uint8_t sub_id = midi2_ci_get_sub_id(data); - - switch (sub_id) { - - /*--- Management ---*/ - - case MIDI2_CI_DISCOVERY: { - if (!dp->on_discovery || length < 29) break; - uint8_t out_path = (hdr.version >= MIDI2_CI_VERSION_2 && length >= 30) ? data[29] : 0; - dp->on_discovery(hdr, midi2_ci_get_mfr_id(data), midi2_ci_get_family(data), - midi2_ci_get_model(data), midi2_ci_get_sw_rev(data), - midi2_ci_get_ci_category(data), midi2_ci_get_max_sysex(data), - out_path, dp->context); - return true; - } - - case MIDI2_CI_DISCOVERY_REPLY: { - if (!dp->on_discovery_reply || length < 29) break; - uint8_t out_path = 0, fb = 0x7F; - if (hdr.version >= MIDI2_CI_VERSION_2 && length >= 31) { - out_path = data[29]; - fb = data[30]; - } - dp->on_discovery_reply(hdr, midi2_ci_get_mfr_id(data), midi2_ci_get_family(data), - midi2_ci_get_model(data), midi2_ci_get_sw_rev(data), - midi2_ci_get_ci_category(data), midi2_ci_get_max_sysex(data), - out_path, fb, dp->context); - return true; - } - - case MIDI2_CI_ENDPOINT_INFO: { - if (!dp->on_endpoint_info || length < 14) break; - dp->on_endpoint_info(hdr, data[13], dp->context); - return true; - } - - case MIDI2_CI_ENDPOINT_INFO_REPLY: { - if (!dp->on_endpoint_info_reply || length < 16) break; - uint8_t status = data[13]; - uint16_t info_len = midi2_ci_read_14(&data[14]); - const uint8_t *info = (info_len > 0 && length >= 16 + info_len) ? &data[16] : NULL; - dp->on_endpoint_info_reply(hdr, status, info, info_len, dp->context); - return true; - } - - case MIDI2_CI_INVALIDATE_MUID: { - if (!dp->on_invalidate_muid || length < 17) break; - dp->on_invalidate_muid(hdr, midi2_ci_get_target_muid(data), dp->context); - return true; - } - - case MIDI2_CI_ACK: { - if (!dp->on_ack || length < 13) break; - uint8_t orig = 0, sc = 0, sd = 0; - const uint8_t *det = NULL; - uint16_t ml = 0; - const uint8_t *mt = NULL; - if (length >= 23) { - orig = data[13]; sc = data[14]; sd = data[15]; - det = &data[16]; /* 5 bytes */ - ml = midi2_ci_read_14(&data[21]); - mt = (ml > 0 && length >= 23 + ml) ? &data[23] : NULL; - } - dp->on_ack(hdr, orig, sc, sd, det, ml, mt, dp->context); - return true; - } - - case MIDI2_CI_NAK: { - if (!dp->on_nak || length < 13) break; - uint8_t orig = 0, sc = 0, sd = 0; - const uint8_t *det = NULL; - uint16_t ml = 0; - const uint8_t *mt = NULL; - if (hdr.version >= MIDI2_CI_VERSION_2 && length >= 23) { - orig = data[13]; sc = data[14]; sd = data[15]; - det = &data[16]; - ml = midi2_ci_read_14(&data[21]); - mt = (ml > 0 && length >= 23 + ml) ? &data[23] : NULL; - } - dp->on_nak(hdr, orig, sc, sd, det, ml, mt, dp->context); - return true; - } - - /*--- Profile Configuration ---*/ - - case MIDI2_CI_PROFILE_INQUIRY: { - if (!dp->on_profile_inquiry) break; - dp->on_profile_inquiry(hdr, dp->context); - return true; - } - - case MIDI2_CI_PROFILE_INQUIRY_REPLY: { - if (!dp->on_profile_inquiry_reply || length < 15) break; - uint16_t en_count = midi2_ci_read_14(&data[13]); - uint16_t en_bytes = (uint16_t)(en_count * 5); - if (15 + en_bytes + 2 > length) break; /* bounds check */ - const uint8_t *en_data = &data[15]; - uint16_t dis_off = (uint16_t)(15 + en_bytes); - uint16_t dis_count = 0; - const uint8_t *dis_data = NULL; - if (dis_off + 2 <= length) { - dis_count = midi2_ci_read_14(&data[dis_off]); - dis_data = &data[dis_off + 2]; - } - dp->on_profile_inquiry_reply(hdr, en_count, en_data, dis_count, dis_data, dp->context); - return true; - } - - case MIDI2_CI_SET_PROFILE_ON: { - if (!dp->on_set_profile_on || length < 18) break; - uint16_t nch = 0; - if (hdr.version >= MIDI2_CI_VERSION_2 && length >= 20) { - nch = midi2_ci_read_14(&data[18]); - } - dp->on_set_profile_on(hdr, &data[13], nch, dp->context); - return true; - } - - case MIDI2_CI_SET_PROFILE_OFF: { - if (!dp->on_set_profile_off || length < 18) break; - dp->on_set_profile_off(hdr, &data[13], 0, dp->context); - return true; - } - - case MIDI2_CI_PROFILE_ENABLED: { - if (!dp->on_profile_enabled || length < 18) break; - uint16_t nch = 0; - if (hdr.version >= MIDI2_CI_VERSION_2 && length >= 20) { - nch = midi2_ci_read_14(&data[18]); - } - dp->on_profile_enabled(hdr, &data[13], nch, dp->context); - return true; - } - - case MIDI2_CI_PROFILE_DISABLED: { - if (!dp->on_profile_disabled || length < 18) break; - uint16_t nch = 0; - if (hdr.version >= MIDI2_CI_VERSION_2 && length >= 20) { - nch = midi2_ci_read_14(&data[18]); - } - dp->on_profile_disabled(hdr, &data[13], nch, dp->context); - return true; - } - - case MIDI2_CI_PROFILE_ADDED: { - if (!dp->on_profile_added || length < 18) break; - dp->on_profile_added(hdr, &data[13], dp->context); - return true; - } - - case MIDI2_CI_PROFILE_REMOVED: { - if (!dp->on_profile_removed || length < 18) break; - dp->on_profile_removed(hdr, &data[13], dp->context); - return true; - } - - case MIDI2_CI_PROFILE_DETAILS: { - if (!dp->on_profile_details || length < 19) break; - dp->on_profile_details(hdr, &data[13], data[18], dp->context); - return true; - } - - case MIDI2_CI_PROFILE_DETAILS_REPLY: { - if (!dp->on_profile_details_reply || length < 21) break; - uint8_t target = data[18]; - uint16_t dl = midi2_ci_read_14(&data[19]); - const uint8_t *dd = (dl > 0 && length >= 21 + dl) ? &data[21] : NULL; - dp->on_profile_details_reply(hdr, &data[13], target, dd, dl, dp->context); - return true; - } - - case MIDI2_CI_PROFILE_SPECIFIC_DATA: { - if (!dp->on_profile_specific_data || length < 22) break; - uint32_t dl = midi2_ci_read_28(&data[18]); - const uint8_t *dd = (dl > 0 && dl <= (uint32_t)(length - 22)) ? &data[22] : NULL; - dp->on_profile_specific_data(hdr, &data[13], dd, dl, dp->context); - return true; - } - - /*--- Property Exchange ---*/ - - case MIDI2_CI_PE_CAPABILITY: { - if (!dp->on_pe_capability || length < 14) break; - uint8_t max_sim = data[13]; - uint8_t maj = 0, min = 0; - if (hdr.version >= MIDI2_CI_VERSION_2 && length >= 16) { - maj = data[14]; min = data[15]; - } - dp->on_pe_capability(hdr, max_sim, maj, min, dp->context); - return true; - } - - case MIDI2_CI_PE_CAPABILITY_REPLY: { - if (!dp->on_pe_capability_reply || length < 14) break; - uint8_t max_sim = data[13]; - uint8_t maj = 0, min = 0; - if (hdr.version >= MIDI2_CI_VERSION_2 && length >= 16) { - maj = data[14]; min = data[15]; - } - dp->on_pe_capability_reply(hdr, max_sim, maj, min, dp->context); - return true; - } - - case MIDI2_CI_PE_GET: - dispatch_pe_data(dp->on_pe_get, hdr, data, length, dp->context); - return dp->on_pe_get != NULL; - - case MIDI2_CI_PE_GET_REPLY: - dispatch_pe_data(dp->on_pe_get_reply, hdr, data, length, dp->context); - return dp->on_pe_get_reply != NULL; - - case MIDI2_CI_PE_SET: - dispatch_pe_data(dp->on_pe_set, hdr, data, length, dp->context); - return dp->on_pe_set != NULL; - - case MIDI2_CI_PE_SET_REPLY: - dispatch_pe_data(dp->on_pe_set_reply, hdr, data, length, dp->context); - return dp->on_pe_set_reply != NULL; - - case MIDI2_CI_PE_SUBSCRIBE: - dispatch_pe_data(dp->on_pe_subscribe, hdr, data, length, dp->context); - return dp->on_pe_subscribe != NULL; - - case MIDI2_CI_PE_SUBSCRIBE_REPLY: - dispatch_pe_data(dp->on_pe_subscribe_reply, hdr, data, length, dp->context); - return dp->on_pe_subscribe_reply != NULL; - - case MIDI2_CI_PE_NOTIFY: - dispatch_pe_data(dp->on_pe_notify, hdr, data, length, dp->context); - return dp->on_pe_notify != NULL; - - /*--- Process Inquiry ---*/ - - case MIDI2_CI_PI_CAPABILITY: { - if (!dp->on_pi_capability) break; - dp->on_pi_capability(hdr, dp->context); - return true; - } - - case MIDI2_CI_PI_CAPABILITY_REPLY: { - if (!dp->on_pi_capability_reply || length < 14) break; - dp->on_pi_capability_reply(hdr, data[13], dp->context); - return true; - } - - case MIDI2_CI_PI_MIDI_REPORT: { - if (!dp->on_pi_midi_report || length < 18) break; - dp->on_pi_midi_report(hdr, data[13], data[14], - data[16], data[17], dp->context); - return true; - } - - case MIDI2_CI_PI_MIDI_REPORT_REPLY: { - if (!dp->on_pi_midi_report_reply || length < 17) break; - dp->on_pi_midi_report_reply(hdr, data[13], data[15], data[16], dp->context); - return true; - } - - case MIDI2_CI_PI_MIDI_REPORT_END: { - if (!dp->on_pi_midi_report_end) break; - dp->on_pi_midi_report_end(hdr, dp->context); - return true; - } - - default: - break; - } - - /* Unknown or no callback registered */ - if (dp->on_unknown) { - dp->on_unknown(hdr, sub_id, data, length, dp->context); - } - return false; -} - -/* == midi2_ci (impl) ===================================================== */ - - -/* - * midi2_ci.c - MIDI-CI convenience responder implementation - * - * Part of midi2 - Portable MIDI 2.0 library (C99) - * https://github.com/sauloverissimo/midi2 - * - * Spec: MIDI-CI (M2-101-UM v1.2, Jun 2023) - * Version: 0.3.0 - */ - - -/*--------------------------------------------------------------------+ - * Init - *--------------------------------------------------------------------*/ -void midi2_ci_init_ex(midi2_ci_state *state, uint32_t muid_seed, - uint8_t (*profiles)[5], uint8_t max_profiles, - midi2_ci_property *properties, uint8_t max_properties, - midi2_ci_subscriber *subscribers, uint8_t max_subscribers) { - memset(state, 0, sizeof(midi2_ci_state)); - state->muid = muid_seed & 0x0FFFFFFF; - state->profiles = profiles; - state->profile_capacity = max_profiles; - state->properties = properties; - state->property_capacity = max_properties; - state->subscribers = subscribers; - state->subscriber_capacity = max_subscribers; - /* Clear caller-provided subscriber slots so the `in_use` sentinel starts - * zero. That field is a midi2 implementation detail, not part of the - * caller contract, so init owns it. */ - if (subscribers != NULL && max_subscribers > 0) { - memset(subscribers, 0, sizeof(midi2_ci_subscriber) * max_subscribers); - } - state->auto_invalidate_on_collision = true; /* v0.3.0+ default on */ -} - -void midi2_ci_init(midi2_ci_state *state, uint32_t muid_seed, - uint8_t (*profiles)[5], uint8_t max_profiles, - midi2_ci_property *properties, uint8_t max_properties) { - midi2_ci_init_ex(state, muid_seed, - profiles, max_profiles, - properties, max_properties, - NULL, 0); -} - -void midi2_ci_set_identity(midi2_ci_state *state, - uint32_t manufacturer_id, uint16_t family_id, - uint16_t model_id, uint32_t version_id) { - state->manufacturer_id = manufacturer_id; - state->family_id = family_id; - state->model_id = model_id; - state->version_id = version_id; -} - -void midi2_ci_set_write_fn(midi2_ci_state *state, - midi2_proc_write_fn write_fn, void *context) { - state->write_fn = write_fn; - state->write_context = context; -} - -void midi2_ci_set_rng(midi2_ci_state *state, - midi2_ci_rng_fn rng, void *context) { - state->rng = rng; - state->rng_context = context; -} - -void midi2_ci_set_nak_on_unknown(midi2_ci_state *state, bool enabled) { - state->nak_on_unknown = enabled; -} - -void midi2_ci_set_auto_invalidate_on_collision(midi2_ci_state *state, bool enabled) { - if (state == NULL) return; - state->auto_invalidate_on_collision = enabled; -} - -uint32_t midi2_ci_new_muid(midi2_ci_state *state) { - uint32_t m; - uint8_t tries = 0; - do { - if (state->rng) { - m = state->rng(state->rng_context) & 0x0FFFFFFFu; - } else { - /* Fallback: perturb current MUID. Better than returning a reserved - * value. Real devices should always install an RNG. */ - m = (state->muid * 1103515245u + 12345u) & 0x0FFFFFFFu; - } - if (++tries > 8) break; /* avoid pathological loop */ - } while (m == 0u || m == 0x0FFFFFFFu); - if (m == 0u || m == 0x0FFFFFFFu) m = 0x12345678u; /* hard fallback */ - state->muid = m; - return m; -} - -/*--------------------------------------------------------------------+ - * Profiles - *--------------------------------------------------------------------*/ -int midi2_ci_add_profile(midi2_ci_state *state, const uint8_t profile_id[5]) { - if (state->profiles == NULL) return MIDI2_CI_ERR_NULL; - if (state->profile_count >= state->profile_capacity) return MIDI2_CI_ERR_FULL; - memcpy(state->profiles[state->profile_count], profile_id, 5); - state->profile_count++; - return MIDI2_CI_OK; -} - -int midi2_ci_remove_profile(midi2_ci_state *state, const uint8_t profile_id[5]) { - uint8_t i; - for (i = 0; i < state->profile_count; i++) { - if (memcmp(state->profiles[i], profile_id, 5) == 0) { - uint8_t j; - for (j = i; j < state->profile_count - 1; j++) { - memcpy(state->profiles[j], state->profiles[j + 1], 5); - } - state->profile_count--; - return MIDI2_CI_OK; - } - } - return MIDI2_CI_ERR_NOT_FOUND; -} - -/*--------------------------------------------------------------------+ - * Properties - *--------------------------------------------------------------------*/ -int midi2_ci_add_property_static(midi2_ci_state *state, - const char *name, const char *value) { - if (state->properties == NULL) return MIDI2_CI_ERR_NULL; - if (state->property_count >= state->property_capacity) return MIDI2_CI_ERR_FULL; - state->properties[state->property_count].name = name; - state->properties[state->property_count].static_value = value; - state->properties[state->property_count].getter = NULL; - state->properties[state->property_count].setter = NULL; - state->properties[state->property_count].subscribable = false; /* v0.3.0+ */ - state->property_count++; - return MIDI2_CI_OK; -} - -int midi2_ci_add_property_dynamic(midi2_ci_state *state, - const char *name, - midi2_ci_pe_getter getter, - midi2_ci_pe_setter setter) { - if (state->properties == NULL) return MIDI2_CI_ERR_NULL; - if (state->property_count >= state->property_capacity) return MIDI2_CI_ERR_FULL; - state->properties[state->property_count].name = name; - state->properties[state->property_count].static_value = NULL; - state->properties[state->property_count].getter = getter; - state->properties[state->property_count].setter = setter; - state->properties[state->property_count].subscribable = false; /* v0.3.0+ */ - state->property_count++; - return MIDI2_CI_OK; -} - -int midi2_ci_remove_property(midi2_ci_state *state, const char *name) { - uint8_t i; - if (state == NULL || name == NULL) return MIDI2_CI_ERR_NOT_FOUND; - for (i = 0; i < state->property_count; i++) { - if (state->properties[i].name != NULL - && strcmp(state->properties[i].name, name) == 0) { - uint8_t j; - for (j = i; j + 1 < state->property_count; j++) { - state->properties[j] = state->properties[j + 1]; - } - state->property_count--; - return MIDI2_CI_OK; - } - } - return MIDI2_CI_ERR_NOT_FOUND; -} - -void midi2_ci_reset_profiles(midi2_ci_state *state) { - if (state == NULL) return; - state->profile_count = 0; -} - -void midi2_ci_reset_properties(midi2_ci_state *state) { - if (state == NULL) return; - state->property_count = 0; -} - -/*--------------------------------------------------------------------+ - * Subscribe / Notify (v0.3.0) - * - * Registry is caller-provided (state->subscribers). Each slot carries - * a stable 36-char copy of the resource name so the responder does - * not depend on app-owned string lifetimes. - *--------------------------------------------------------------------*/ -static int find_property_idx(const midi2_ci_state *state, const char *name) { - uint8_t i; - if (state == NULL || name == NULL) return -1; - for (i = 0; i < state->property_count; i++) { - if (state->properties[i].name != NULL - && strcmp(state->properties[i].name, name) == 0) { - return (int)i; - } - } - return -1; -} - -static int find_subscriber_idx(const midi2_ci_state *state, uint32_t muid, - const char *name) { - uint8_t i; - if (state == NULL || state->subscribers == NULL || name == NULL) return -1; - for (i = 0; i < state->subscriber_capacity; i++) { - if (!state->subscribers[i].in_use) continue; - if (state->subscribers[i].caller_muid != muid) continue; - if (strncmp(state->subscribers[i].name_copy, name, 36) != 0) continue; - return (int)i; - } - return -1; -} - -int midi2_ci_pe_set_subscribable(midi2_ci_state *state, const char *name, - bool subscribable) { - int idx = find_property_idx(state, name); - if (idx < 0) return MIDI2_CI_ERR_NOT_FOUND; - state->properties[idx].subscribable = subscribable; - return MIDI2_CI_OK; -} - -int midi2_ci_subscribe_add(midi2_ci_state *state, uint32_t caller_muid, - const char *resource_name) { - uint8_t i; - int pi; - size_t n; - if (state == NULL || resource_name == NULL) return MIDI2_CI_ERR_NOT_FOUND; - if (state->subscribers == NULL) return MIDI2_CI_ERR_FULL; - pi = find_property_idx(state, resource_name); - if (pi < 0) return MIDI2_CI_ERR_NOT_FOUND; - if (!state->properties[pi].subscribable) return MIDI2_CI_ERR_NOT_FOUND; - if (find_subscriber_idx(state, caller_muid, resource_name) >= 0) { - return MIDI2_CI_OK; /* idempotent duplicate */ - } - for (i = 0; i < state->subscriber_capacity; i++) { - if (state->subscribers[i].in_use) continue; - state->subscribers[i].caller_muid = caller_muid; - n = strlen(resource_name); - if (n > 36) n = 36; - memcpy(state->subscribers[i].name_copy, resource_name, n); - state->subscribers[i].name_copy[n] = '\0'; - state->subscribers[i].in_use = 1; - state->subscriber_count++; - return MIDI2_CI_OK; - } - return MIDI2_CI_ERR_FULL; -} - -int midi2_ci_subscribe_remove(midi2_ci_state *state, uint32_t caller_muid, - const char *resource_name) { - int idx = find_subscriber_idx(state, caller_muid, resource_name); - if (idx < 0) return MIDI2_CI_ERR_NOT_FOUND; - state->subscribers[idx].in_use = 0; - state->subscribers[idx].caller_muid = 0; - state->subscribers[idx].name_copy[0] = '\0'; - state->subscriber_count--; - return MIDI2_CI_OK; -} - -uint8_t midi2_ci_get_subscriber_count(const midi2_ci_state *state) { - return (state == NULL) ? 0u : state->subscriber_count; -} - -/*--------------------------------------------------------------------+ - * Internal: send SysEx via write function - *--------------------------------------------------------------------*/ -static void ci_send(midi2_ci_state *state, uint8_t group, - const uint8_t *data, uint16_t length) { - if (state->write_fn) { - midi2_proc_send_sysex7(group, data, length, state->write_fn, state->write_context); - } -} - -/*--------------------------------------------------------------------+ - * PE Notify fan-out (v0.3.0) - * - * Walks the subscriber registry and, for every slot matching the - * resource name, emits a PE Notify frame carrying a minimal JSON - * header `{"resource":""}`. The actual property value is not - * embedded; consumers issue a PE Get to fetch the new value. Matches - * the common M2-103 pattern for PE where Notify signals invalidation. - *--------------------------------------------------------------------*/ -int midi2_ci_notify_property_changed(midi2_ci_state *state, - const char *resource_name) { - /* JSON header template `{"resource":""}`. is bounded by - * MIDI2_CI_RESOURCE_NAME_MAX (36 per M2-105) and stored in the - * subscriber's name_copy slot, so the worst-case header is - * 13 (prefix) + 36 (name) + 2 (suffix) = 51 bytes. Buffer of 64 is - * comfortable. No dependency. */ - static const char HDR_PREFIX[] = "{\"resource\":\""; - static const char HDR_SUFFIX[] = "\"}"; - uint8_t i; - int pi; - if (state == NULL || resource_name == NULL) return MIDI2_CI_ERR_NOT_FOUND; - pi = find_property_idx(state, resource_name); - if (pi < 0) return MIDI2_CI_ERR_NOT_FOUND; - if (state->write_fn == NULL || state->subscribers == NULL) return MIDI2_CI_OK; - - for (i = 0; i < state->subscriber_capacity; i++) { - if (!state->subscribers[i].in_use) continue; - if (strncmp(state->subscribers[i].name_copy, resource_name, 36) != 0) continue; - - uint8_t frame[128]; - uint8_t hdr[64]; - uint16_t hdr_n = 0; - size_t name_len = strlen(state->subscribers[i].name_copy); - if (name_len > 36u) name_len = 36u; - - memcpy(hdr + hdr_n, HDR_PREFIX, sizeof HDR_PREFIX - 1u); - hdr_n = (uint16_t)(hdr_n + (sizeof HDR_PREFIX - 1u)); - memcpy(hdr + hdr_n, state->subscribers[i].name_copy, name_len); - hdr_n = (uint16_t)(hdr_n + name_len); - memcpy(hdr + hdr_n, HDR_SUFFIX, sizeof HDR_SUFFIX - 1u); - hdr_n = (uint16_t)(hdr_n + (sizeof HDR_SUFFIX - 1u)); - - uint16_t frame_n = midi2_ci_build_pe_notify( - frame, MIDI2_CI_VERSION_1, - state->muid, - state->subscribers[i].caller_muid, - 0 /* request_id */, - hdr, hdr_n, - 1, 1, - NULL, 0); - if (frame_n == 0) continue; - ci_send(state, 0 /* group */, frame, frame_n); - } - return MIDI2_CI_OK; -} - -/*--------------------------------------------------------------------+ - * Discovery Reply -- uses midi2_ci_build_discovery_reply - *--------------------------------------------------------------------*/ -static bool ci_handle_discovery(midi2_ci_state *state, uint8_t group, - const uint8_t *data, uint16_t length) { - if (length < 13 || state->manufacturer_id == 0) return false; - - uint32_t src_muid = midi2_ci_get_src_muid(data); - /* Declare every CI Category the convenience responder actually handles. - * The handlers for Profile Inquiry, PE, and PI Capability all live here; - * Discovery must advertise them so Initiators know to send the related - * inquiries. Bug present through v0.2.3: Process Inquiry was handled but - * not announced. */ - uint8_t ci_cat = MIDI2_CI_CAT_PROFILE_CONFIG - | MIDI2_CI_CAT_PROPERTY_EXCHANGE - | MIDI2_CI_CAT_PROCESS_INQUIRY; - - uint8_t reply[32]; - uint16_t reply_len = midi2_ci_build_discovery_reply( - reply, MIDI2_CI_VERSION_1, state->muid, src_muid, - state->manufacturer_id, state->family_id, state->model_id, - state->version_id, ci_cat, 512, 0, 0x7F); - - ci_send(state, group, reply, reply_len); - return true; -} - -/*--------------------------------------------------------------------+ - * Profile Inquiry Reply -- uses midi2_ci_build_profile_inquiry_reply - *--------------------------------------------------------------------*/ -static void ci_handle_profile_inquiry(midi2_ci_state *state, uint8_t group, - const uint8_t *data, uint16_t length) { - if (length < 13) return; - - uint32_t src_muid = midi2_ci_get_src_muid(data); - - uint8_t reply[256]; - uint16_t reply_len = midi2_ci_build_profile_inquiry_reply( - reply, MIDI2_CI_VERSION_1, state->muid, src_muid, - midi2_ci_get_device_id(data), - (const uint8_t (*)[5])state->profiles, state->profile_count, - NULL, 0); - - ci_send(state, group, reply, reply_len); -} - -/*--------------------------------------------------------------------+ - * PE Capability Reply -- uses midi2_ci_build_pe_capability_reply - * - * Parallels Profile Inquiry and PI Capability: without this, an - * Initiator asking "do you do PE?" gets no answer and never tries - * PE GET/SET. Advertises max_simultaneous=1 and PE v1.0 (basic). - *--------------------------------------------------------------------*/ -static void ci_handle_pe_capability(midi2_ci_state *state, uint8_t group, - const uint8_t *data, uint16_t length) { - if (length < 13) return; - - uint32_t src_muid = midi2_ci_get_src_muid(data); - - uint8_t reply[24]; - uint16_t reply_len = midi2_ci_build_pe_capability_reply( - reply, MIDI2_CI_VERSION_2, state->muid, src_muid, - /*max_simultaneous*/ 1, - /*pe_ver_major*/ 1, - /*pe_ver_minor*/ 0); - - ci_send(state, group, reply, reply_len); -} - -/*--------------------------------------------------------------------+ - * PE Get handler -- uses midi2_ci_build_pe_get_reply - *--------------------------------------------------------------------*/ -static void ci_handle_pe_get(midi2_ci_state *state, uint8_t group, - const uint8_t *data, uint16_t length) { - if (length < 14 || state->property_count == 0) return; - - uint32_t src_muid = midi2_ci_get_src_muid(data); - uint8_t request_id = midi2_ci_get_pe_request_id(data); - - uint8_t i; - for (i = 0; i < state->property_count; i++) { - const char *value = NULL; - if (state->properties[i].getter) { - value = state->properties[i].getter(state->properties[i].name, state->context); - } else { - value = state->properties[i].static_value; - } - - if (value != NULL) { - uint16_t val_len = 0; - while (value[val_len] && val_len < 30) val_len++; - - uint8_t reply[64]; - uint16_t reply_len = midi2_ci_build_pe_get_reply( - reply, MIDI2_CI_VERSION_1, state->muid, src_muid, - request_id, NULL, 0, 1, 1, - (const uint8_t *)value, val_len); - - ci_send(state, group, reply, reply_len); - return; - } - } -} - -/*--------------------------------------------------------------------+ - * PE Set handler -- uses midi2_ci_build_pe_set_reply - *--------------------------------------------------------------------*/ -static void ci_handle_pe_set(midi2_ci_state *state, uint8_t group, - const uint8_t *data, uint16_t length) { - if (length < 14 || state->property_count == 0) return; - - uint32_t src_muid = midi2_ci_get_src_muid(data); - uint8_t request_id = midi2_ci_get_pe_request_id(data); - uint8_t i; - - for (i = 0; i < state->property_count; i++) { - if (state->properties[i].setter) { - bool ok = state->properties[i].setter(state->properties[i].name, "", state->context); - - uint8_t reply[32]; - uint16_t reply_len = midi2_ci_build_pe_set_reply( - reply, MIDI2_CI_VERSION_1, state->muid, src_muid, - request_id, NULL, 0); - (void)ok; /* simplified: always send reply */ - - ci_send(state, group, reply, reply_len); - return; - } - } -} - -/*--------------------------------------------------------------------+ - * Invalidate MUID handler (M2-101-UM §3.5 + Appendix E) - * - * If the message's target MUID matches ours, regenerate it via the - * installed RNG. Without an RNG the request is silently ignored (v0.2.3 - * behavior preserved). - *--------------------------------------------------------------------*/ -static void ci_handle_invalidate_muid(midi2_ci_state *state, uint8_t group, - const uint8_t *data, uint16_t length) { - (void)group; - if (length < 17) return; - if (!state->rng) return; - uint32_t target = midi2_ci_get_target_muid(data); - if (target != state->muid) return; - midi2_ci_new_muid(state); -} - -/*--------------------------------------------------------------------+ - * MUID collision detection (M2-101-UM Appendix E §2) - * - * Any inbound CI message whose src_muid matches ours means a peer is - * using our MUID. Resolution: pick a new MUID and broadcast Invalidate - * for the old value. No-op without an RNG. - *--------------------------------------------------------------------*/ -static void ci_check_muid_collision(midi2_ci_state *state, uint8_t group, - uint32_t peer_src_muid) { - if (!state->rng) return; - if (peer_src_muid != state->muid) return; - uint32_t old = state->muid; - midi2_ci_new_muid(state); - if (!state->write_fn) return; - if (!state->auto_invalidate_on_collision) return; - uint8_t buf[24]; - uint16_t len = midi2_ci_build_invalidate_muid( - buf, MIDI2_CI_VERSION_1, state->muid, old); - ci_send(state, group, buf, len); -} - -/*--------------------------------------------------------------------+ - * NAK builder (M2-101-UM Appendix E) - * - * Build a Sub-ID#2 0x7F NAK with status NOT_SUPPORTED for a given - * original sub-id. Used when nak_on_unknown is enabled. - *--------------------------------------------------------------------*/ -static void ci_send_nak_not_supported(midi2_ci_state *state, uint8_t group, - const uint8_t *data, - uint8_t orig_sub_id) { - if (!state->write_fn) return; - uint32_t src_muid = midi2_ci_get_src_muid(data); - uint8_t device_id = midi2_ci_get_device_id(data); - uint8_t buf[32]; - uint16_t len = midi2_ci_build_nak( - buf, MIDI2_CI_VERSION_2, state->muid, src_muid, device_id, - orig_sub_id, MIDI2_CI_NAK_NOT_SUPPORTED, 0, - NULL, 0, NULL); - ci_send(state, group, buf, len); -} - -/*--------------------------------------------------------------------+ - * Process Inquiry handler -- uses midi2_ci_build_pi_capability_reply - *--------------------------------------------------------------------*/ -static void ci_handle_process_inquiry(midi2_ci_state *state, uint8_t group, - const uint8_t *data, uint16_t length) { - if (length < 13) return; - - uint32_t src_muid = midi2_ci_get_src_muid(data); - - uint8_t reply[16]; - uint16_t reply_len = midi2_ci_build_pi_capability_reply( - reply, MIDI2_CI_VERSION_1, state->muid, src_muid, 0x01); - - ci_send(state, group, reply, reply_len); -} - -/*--------------------------------------------------------------------+ - * Process incoming SysEx - *--------------------------------------------------------------------*/ -bool midi2_ci_process_sysex(midi2_ci_state *state, - uint8_t group, const uint8_t *data, uint16_t length) { - if (!midi2_ci_is_ci(data, length)) return false; - - /* Every inbound CI message is an opportunity to detect MUID collisions. - * Do this before dispatching so a reply (if any) carries the new MUID. */ - ci_check_muid_collision(state, group, midi2_ci_get_src_muid(data)); - - uint8_t sub_id = midi2_ci_get_sub_id(data); - switch (sub_id) { - case MIDI2_CI_DISCOVERY: - return ci_handle_discovery(state, group, data, length); - - case MIDI2_CI_INVALIDATE_MUID: - ci_handle_invalidate_muid(state, group, data, length); - return true; - - case MIDI2_CI_PROFILE_INQUIRY: - ci_handle_profile_inquiry(state, group, data, length); - return true; - - case MIDI2_CI_PE_CAPABILITY: - ci_handle_pe_capability(state, group, data, length); - return true; - - case MIDI2_CI_PE_GET: - ci_handle_pe_get(state, group, data, length); - return true; - - case MIDI2_CI_PE_SET: - ci_handle_pe_set(state, group, data, length); - return true; - - case MIDI2_CI_PI_CAPABILITY: - ci_handle_process_inquiry(state, group, data, length); - return true; - - default: - /* Appendix E: "Be able to send a NAK message when appropriate." - * When nak_on_unknown is set, reply with Sub-ID#2 0x7F - * status NOT_SUPPORTED. Otherwise the v0.2.3 behavior (silent - * fall-through to return false) is preserved. */ - if (state->nak_on_unknown) { - ci_send_nak_not_supported(state, group, data, sub_id); - return true; - } - return false; - } -} - -#endif /* MIDI2_IMPLEMENTATION */ - -#ifdef __cplusplus -} -#endif - -#endif /* MIDI2_H */ From aabd99d8e9b3487ee869ab45cdcc7b5950f82f76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Saulo=20Ver=C3=ADssimo?= Date: Sat, 9 May 2026 00:35:19 -0300 Subject: [PATCH 10/10] release: v0.2.0 Bumps library.properties / library.json / CMakeLists.txt to 0.2.0 and publishes the CHANGELOG entry that consolidates the depends=midi2 migration: vendored src/midi2.{h,c} removed, every example/ recipe migrated to pull midi2 externally (Pico SDK + TinyUSB CMake via FetchContent, ESP-IDF via Component Manager, PlatformIO via lib_deps), m2bridge class extracted with a host-side ASan + UBSan suite, and the honest tagline shift from "zero-allocation" to "static-by-default". This is a breaking release. Pre-v0.2 consumers that vendored midi2_cpp/src/midi2.{h,c} will break; the README "Manual vendor" section now explains the new two-repo layout, and the in-tree recipes demonstrate the four supported package-manager paths. Touches: - library.properties / library.json / CMakeLists.txt: VERSION 0.2.0 - README.md "Manual vendor": rewritten to point at midi2/dist/ - esp32-c6 platformio.ini comment: midi2_cpp/src/midi2.h reference replaced with the lib_deps midi2 entry it now relies on - CHANGELOG.md: [Unreleased] promoted to [0.2.0] with the full Breaking / Added / Changed / Examples sections --- CHANGELOG.md | 137 ++++++++++++++---- CMakeLists.txt | 2 +- README.md | 2 +- .../pio/platformio.ini | 8 +- library.json | 2 +- library.properties | 2 +- 6 files changed, 113 insertions(+), 40 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2411f0e..1cad143 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,42 +5,115 @@ All notable changes to `midi2_cpp` are recorded here. Format follows adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), mirrored from the upstream midi2 C99 policy. -## [Unreleased] +## [0.2.0] -### Examples / Recipes (added) +Single source of truth for the MIDI 2.0 stack: midi2_cpp no longer +vendors the C99 core and is published as a regular Arduino / +PlatformIO library that depends on midi2 explicitly. Every recipe +under `examples/` was migrated to pull midi2 externally through the +build system that fits its host (FetchContent for Pico SDK + TinyUSB +native CMake, IDF Component Manager for ESP-IDF, lib_deps for +PlatformIO). -- `arduino-nano-esp32-midi2`, Arduino Nano ESP32 (ESP32-S3-MINI-1, PID - 0x4093). Full Showcase mirroring `esp32-s3-devkitc-usb-midi2`, single - GPIO LED on D13 / GPIO48 instead of WS2812 (Arduino Nano ESP32 has no - RMT-driven addressable LED in this recipe; the on-board RGB LED on - D14 / D15 / D16 is left untouched). +This is a breaking release. Consumers that previously vendored +`midi2_cpp/src/midi2.{h,c}` directly will break; the migration path +is documented in the manifest below and in the per-build-system +patterns shipped under `examples/`. + +### Breaking + +- **Vendored `src/midi2.{h,c}` removed.** midi2_cpp now declares + midi2 as an external dependency: + - `library.properties` carries `depends=midi2 (>=0.3.3)`. Arduino + Library Manager auto-installs midi2 when a sketch includes + midi2_cpp. + - `library.json` carries `dependencies."sauloverissimo/midi2": + "^0.3.3"`. PlatformIO resolves midi2 from its registry. + - The root `CMakeLists.txt` exposes a three-layer fallback at the + top (`if(NOT TARGET midi2)` -> `find_package(midi2 0.3.3 CONFIG)` + -> `FetchContent_Declare(midi2 GIT_TAG v0.3.3)`), then links + midi2_cpp `PUBLIC midi2::midi2` so downstream targets see the + C99 core transitively. + +### Added + +- **`midi2::Bridge` (alias `m2bridge`)**: composes Device + CI + Host + with a multi-Function-Block topology, a per-slot group rewrite + window, dynamic FB names sourced from upstream Endpoint Names, and + a USB-MIDI 1.0 byte-stream uplift path (`feedHostMidi1Bytes`) for + legacy upstream devices that arrive on alt 0. Slot lifecycle via + `slotSetActive(idx, active, alt)`. Reusable across bridge recipes; + the multi-FB Stream Discovery responder lives inside the class so + each new bridge recipe gets it for free. +- **`tests/test_midi2_bridge.cpp`**: 11 host-side sub-tests covering + m2bridge construct/destruct heap balance (50x cycle stress), topology + setter bounds and post-`begin()` lock, group rewrite formula on + slots 0/1/3, out-of-range slot rejection, and the USB-MIDI 1.0 + byte-stream uplift path. Compiles and runs clean under + `-fsanitize=address,undefined`. +- `architecture.png` referenced from the README, replacing the + previous inline ASCII layer diagram. +- **CMake entry surface for downstream consumers**: the root + `CMakeLists.txt` follows the same `find_package` -> `FetchContent` + fallback pattern that midi2 itself ships. Subprojects pulling + midi2_cpp via `add_subdirectory` or `FetchContent` skip the + `find_package` step (`if(NOT TARGET midi2)` guard). + +### Changed + +- **README tagline** drops the `zero-allocation` claim. midi2_cpp + allocates in two narrow places (`m2bridge::begin()` slot tables and + `std::function` callback storage), so the wrapper is now described + as `static-by-default`. The C99 core (midi2) remains strictly + zero-allocation. Same shift applied to the logo and to the + `.intern/decisoes.md` design heritage notes. +- **README "Manual vendor" path** rewritten: pre-v0.2 builds vendored + a single `midi2_cpp/src/midi2.{h,c}` copy; today the consumer + downloads both repositories side by side and adds `midi2/dist/` + plus `midi2_cpp/src/` to its include path. +- **`paragraph` in `library.properties`** rewritten: drops + comparisons with other libraries, focuses on what midi2_cpp itself + ships and the embedded targets validated. + +### Examples / Recipes + +#### Migrated to depend on midi2 externally (all 20 recipes) + +| Build system | Mechanism | Recipes | +|---|---|---| +| Pico SDK | `FetchContent_Declare(midi2 GIT_TAG v0.3.3)` plus `target_link_libraries(midi2_cpp PUBLIC midi2::midi2)` | `rp2040-midi2`, `waveshare-rp2040-midi2`, `sparkfun-promicro-rp2350-midi2`, `waveshare-rp2350-usb-a-midi2`, `waveshare-rp2350-usb-a-bridge-midi2`, `adafruit-feather-rp2040-host-midi2`, `adafruit-feather-rp2040-bridge-midi2`, `rp2040-promicro-ump-test-bench` | +| TinyUSB native CMake | same FetchContent pattern as Pico SDK | `xiao-samd21-midi2`, `nrf52840-promicro-midi2` | +| ESP-IDF | `idf_component.yml` declares `midi2: { git: ..., version: ">=0.3.3" }` and `idf_component_register` lists `midi2` in `REQUIRES` | `arduino-nano-esp32-midi2`, `esp32-s3-devkitc-usb-midi2`, `esp32-p4-devkit-usb-midi2`, `esp32-p4-devkit-host-midi2`, `esp32-p4-devkit-bridge-midi2`, `esp32-p4-devkit-bridge2-midi2`, `t-display-s3-midi2` | +| PlatformIO + ESP32_Host_MIDI | `lib_deps += sauloverissimo/midi2 @ ^0.3.3` | `esp32-c6-devkitc-multi-midi2`, `esp32-s3-devkitc-host-midi2`, `t-display-s3-shield-host-midi2` | + +Each recipe drops the `${MIDI2_CPP_ROOT}/src/midi2.c` (or `midi2_c99` +helper library) from its source list. Other midi2_cpp sources +(`midi2_device.cpp`, `midi2_ci.cpp`, `midi2_host.cpp`, +`midi2_bridge.cpp`) keep being compiled inline from the parent tree +via `${MIDI2_CPP_ROOT}/src` until the host helper-library shape is +finalised in a future cycle. + +#### New recipes since v0.1.0 + +- `arduino-nano-esp32-midi2`, Arduino Nano ESP32 (ESP32-S3-MINI-1, + PID 0x4093). Full Showcase mirroring `esp32-s3-devkitc-usb-midi2`; + single GPIO LED on D13 / GPIO48 instead of WS2812. - `xiao-samd21-midi2`, Seeed Studio XIAO SAMD21 (ATSAMD21G18A, PID - 0x40F0). Tier C minimal core: NoteOn/Off + CC + UMP Stream Discovery - + MIDI-CI Discovery + JR Timestamp heartbeat. Build via TinyUSB - native CMake (`hw/bsp/family_support.cmake` + FetchContent of the - PR #3571 fork at the project's pinned SHA) on top of the upstream - TinyUSB BSP `seeeduino_xiao`. ARM GNU toolchain, no Arduino IDE - involved. First recipe in the project portfolio to use this build - system path; pattern documented in `.intern/decisions.md` D-033. - Hardware validated 2026-04-30: device enumerates `cafe:40F0`, - ALSA shows `Group 1 (Main)`, chromatic walk + 32-bit CC #74 sweep - streaming live. Final size: text 34884 / 256K flash (13%), bss - 9832 / 32K SRAM (30%). + 0x40F0). Tier C minimal core; first recipe to use the TinyUSB + native CMake build system path. Hardware validated: ALSA `Group 1 + (Main)`, chromatic walk + 32-bit CC #74 sweep streaming. Final + size: text 34884 / 256K flash (13%), bss 9832 / 32K SRAM (30%). - `nrf52840-promicro-midi2`, nRF52840 Pro Micro / Nice!Nano class - boards (PID 0x40F1). Tier B standard subset: Per-Note Pitch Bend - vibrato + chromatic walk + RPN / NRPN / RelRPN / RelNRPN burst + - UMP Stream Discovery + MIDI-CI Discovery + JR Timestamp heartbeat. - Build via the same TinyUSB native CMake path used by - `xiao-samd21-midi2` (BSP `feather_nrf52840_express` upstream, Nice!Nano - shares the same nRF52840 + Adafruit UF2 bootloader region layout + - S140 v6 SoftDevice RAM reservation). Drops the earlier - Adafruit_TinyUSB_Arduino-based attempt that did not work on Seeed / - Nice!Nano cores. Hardware validated 2026-04-30 on Nice!Nano: device - enumerates `cafe:40F1`, ALSA shows `Group 1 (Main)`, full Tier B - cycle streaming live in `aseqdump`. Final size: text 38832 / 1 MB - flash (3.7%), bss 2526 / 256 KB SRAM (1%) — the chip is wildly - oversized for the recipe, leaving room for BLE-MIDI 2.0 + - application code on top. + (PID 0x40F1). Tier B subset: Per-Note Pitch Bend vibrato + + chromatic walk + RPN / NRPN / RelRPN / RelNRPN burst. Same TinyUSB + native CMake build path as the SAMD21 recipe. Hardware validated on + Nice!Nano. Final size: text 38832 / 1 MB flash (3.7%), bss 2526 / + 256 KB SRAM (1%). +- `esp32-p4-devkit-bridge2-midi2`, ESP32-P4 dual-stack bridge (PID + 0x4095) built on top of `m2bridge`. Carries the same multi-FB + topology as `esp32-p4-devkit-bridge-midi2` but consumes the + reusable Bridge class instead of an inline slot table + Stream + Discovery responder. ## [0.1.0] diff --git a/CMakeLists.txt b/CMakeLists.txt index cef9dff..f5e0621 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.14) -project(midi2_cpp VERSION 0.1.0 LANGUAGES C CXX) +project(midi2_cpp VERSION 0.2.0 LANGUAGES C CXX) set(CMAKE_C_STANDARD 99) set(CMAKE_C_STANDARD_REQUIRED ON) diff --git a/README.md b/README.md index 485fac3..8d6bcf3 100644 --- a/README.md +++ b/README.md @@ -227,7 +227,7 @@ git submodule add https://github.com/sauloverissimo/midi2_cpp.git external/midi2 ### Manual vendor -Download the repo. Add `src/` to includes. Compile `src/midi2.c`, `src/midi2_device.cpp`, and `src/midi2_ci.cpp` alongside the project. No external links required. +Download the [midi2_cpp](https://github.com/sauloverissimo/midi2_cpp) and [midi2](https://github.com/sauloverissimo/midi2) repositories side by side. Add `midi2/dist/` and `midi2_cpp/src/` to includes. Compile `midi2/dist/midi2.c`, `midi2_cpp/src/midi2_device.cpp`, `midi2_cpp/src/midi2_ci.cpp`, and the host/bridge `.cpp` files you need alongside the project. No package manager required at build time, but the two repos must travel together. ## API at a glance diff --git a/examples/esp32-c6-devkitc-multi-midi2/pio/platformio.ini b/examples/esp32-c6-devkitc-multi-midi2/pio/platformio.ini index b64822d..97cc8bb 100644 --- a/examples/esp32-c6-devkitc-multi-midi2/pio/platformio.ini +++ b/examples/esp32-c6-devkitc-multi-midi2/pio/platformio.ini @@ -13,10 +13,10 @@ ; ; Both transports carry MIDI 1.0 byte streams on the wire (that is what ; the BLE-MIDI spec and the ESP-NOW recipe support natively). Bytes are -; uplifted to UMP MT 0x2 in firmware via midi2_conv (vendored in -; midi2_cpp/src/midi2.h) before being handed to the typed midi2::Device -; dispatch path. Outgoing UMP from the showcase loop is downgraded back -; to MIDI 1.0 bytes for the wire side. +; uplifted to UMP MT 0x2 in firmware via midi2_conv (from the midi2 C99 +; core pulled through lib_deps) before being handed to the typed +; midi2::Device dispatch path. Outgoing UMP from the showcase loop is +; downgraded back to MIDI 1.0 bytes for the wire side. ; ; No USB device interface is presented; therefore no PID is consumed ; from the project pool. Identity surface is per-transport (BLE service diff --git a/library.json b/library.json index 958cf41..c4fc133 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "midi2_cpp", - "version": "0.1.0", + "version": "0.2.0", "description": "C++17 Arduino-style wrapper for MIDI 2.0 on embedded devices. Thin wrapper over the portable midi2 C99 library. Covers UMP, MIDI-CI with Appendix E, Profile, PE Subscribe/Notify, Process Inquiry, Flex Data, and Bit Scaling. Targets RP2040, RP2350, Teensy, ESP32 family, nRF52, and SAMD21.", "keywords": "midi, midi2, usb, ump, capability-inquiry, property-exchange, profile", "authors": [ diff --git a/library.properties b/library.properties index ae70aaf..564db81 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=midi2_cpp -version=0.1.0 +version=0.2.0 author=Saulo Verissimo maintainer=Saulo Verissimo sentence=C++17 Arduino-style wrapper for MIDI 2.0 on embedded devices.