From 9ee97d0c63a1adb3605793d483ca55fa27a0e3d7 Mon Sep 17 00:00:00 2001 From: Michael McGuinness Date: Wed, 21 May 2025 18:19:19 +0000 Subject: [PATCH] Merged in feature/inlinetable (pull request #148) Table Aligned Example * tablealigned --- assets/original/table_aligned.pdf | Bin 0 -> 24681 bytes assets/text/table_aligned.txt | 15 + assets/textract/table_aligned.gen | 14571 ++++++++++++++++++ internal/document/text/documentText_test.go | 19 + 4 files changed, 14605 insertions(+) create mode 100644 assets/original/table_aligned.pdf create mode 100644 assets/text/table_aligned.txt create mode 100644 assets/textract/table_aligned.gen diff --git a/assets/original/table_aligned.pdf b/assets/original/table_aligned.pdf new file mode 100644 index 0000000000000000000000000000000000000000..417ea4ea9cabb0402d6fcd7ed3f11a7aa9cdf291 GIT binary patch literal 24681 zcmd42WmH_twt!1Q1W6#cOVdDbf;%LQdvJ#Ujk^a=aHnw^4H5_rje8QTad&qJ?hdcn z=k9aQzVF{1_l@!R!JrpaHLF(DoHgZZnvY@<%xo+?Xf!LUgQI91l7JkEHSQk;gupwby*^w5o)(%;YalB&jI3v zg1rXXz#D8XrP+ALX6wlDhCI0*Q* z3XiR?k$O1|^=ttM3F+{uPf@Fuj5KDsS2Og+x$?fnyP6h-XgK9cBs1)f8LIjO^ZdJ^ zx9rC|T?A9#y@vDppClp;=Pg#zY%G+FjOe_^DD}y#`tB~tJ~`=q+*lucHTWVRB5j2A zk19Q;nXIU>#8Hx-z>?cZ6kQmn-Q2w#3K0^LIfRS~^|b)&8#4jbN_-||c^ojnSfL{I z{!K~!_#9zJ(g(h!qbrX%g20c;q0mODx;{AAFdIaxduzsjGQ#;@`(Z6V za918RQRHUrfGPUnE9+znnp5eWYOnrH?wRzp;c)CSNTv7*n7c<`{h@RHCYDv6%c^B6 z**upC+(#dM&rXko#7PnXNx(~Q?5WgJCW_Ujz`TMo3gR2u{K{8lTTG<&9X2vevG3`_ zN9PLYRzOV5+cuK%x__el?b6XNepz2jz|H(m3f^7?@yjYr=QKuU>8fk$#3LA?dsyW+ zWxfY&5mHSuJEl2+a;bZQad_svnE9=0`}^wZ(|G*BniWk)UApD( z^0twE#kemZ^^*l5_uz%^>|OhvvMiyPK<1^RkIRP7bjUFmoYX9G>A;h5!L`ZtTD&Hv z=x-BwpCJ7teFr+9^=?RW5i$`g%BQG(rP~|1Ep7RFs_pIEP14G>FRW&ac5@bZ0-sy4 z5KidLr~8OLeI(B8wZfv*VKH@bcJPAMLVdr!2oD~bzS3|lD{lgFRU zx2eD?OjfLoeXBK7W1+WxJ@XY`sW8Ll$n(sDQb-(9U*rjko{k66)|lG8*UFAwFrsu? zz3|P+Poj0g^mh{&FaDBw6?`=N{n971xY0H)aQCoju@Y01_c;<$A0`mog+EGt*^%M| zmM~ogg9_-Wk#%rnlR=K9ypwf3gTlKh8mQA1SJ65?tmeqwHLW+gD&4z@_#JqH?nLsq z?6Y^*GLGAsqB_;YS!rz2k(_f>c*oeSZ#Lyq5R(m@vuh18KE5k3{kTj2`t@t>?+~`4 zCP4u7xeLgyQqfU zwSpFh2WI4TgPJ$Jn0Fm-5pPL9kO}-+9BTsq;evEMT=7~4G$FDQe5JemP@N1_pZ!U2 ze3eMMshHueAXeStCK!=%I(ERUIK*JsWwTE2pSeZhDV;&jxeLAZEJ^1g2-ux6T3#6x zWHV9pmjJHQ1254YF5N%@If>R`Bz{GDg}YHccgz~*Uj=jQ2v;wterVx0#&JX4rtS!=SKgpHPs*o> z2y`v7Sz%k?jx3_v|KQE<8CDn|1hzwR(z+wD+X#O0e`eahNX8$J4VNU5`x0s}%yW9| z<{bw+&>)77W?wH@mB>$&eh?xbrp>13SFP!sF;kNs?H}0?Yu{2;YLvk)5e_xMC=w8J zS*<$amTz=Jbld;NG~AU!$Ec_tLPOnaZ~T@@pA<$_yYJ&fnD^o8T9G2vP3%%pB~Z>~ zm3wx+Fr1)hpSwdC(b4w30lY_9vKH&j<_G5%{EGNQv9zTJ#^0=Ov6<_9c3M_+*NcON zOwy*dM!2zLfw+5gWdoB;iez^y9MM|ZRoJBpfxC_64u6VB4H(jC<;vipIY|-`rlmhz zR_E}p&`w3g0&tj-k&r$=qrAGUNMya2&K+0rgT$OJI(BwaMdcDPxBakJf_gH5d6=nG zl5mzwUNG^stMOJ{R&FgpZcPfUq>uk%uL|)A|u57Y})8o9u0Df)T*;Zwrnn`c z?56Knvp1;@jkVfqx8fkGCvu^+{I?87VCF}Iy~&%j__UBu3INbX>kWom9av37Ul%_9 z9euu)aCEca;|y*LwQPCaq4ZkbVpw>Z%mP9mSy>H4-W%f7Vo2BS8L`YTyYb_)Z)(3l z+>$8YYOAEU7^O#e42?SWzZKw?OI0+V?vz;NnqOS_UXK!Xj2LPCA!K;IctCYh?2`zw z-k16H`{i^p%mq2Qgnt{I+7b|V4u^?eI%=yVqdLwtwGn7fPTA%0{kMd-V6fxq*u@_r zJVx-vg}m?X2{@S1+N~&-mfqBIy*pDxV)8}N{?N`J^yxAJ4Y&rYBKh@H#NFJ0jxk7r z_G9#Gwb?NyP~J2<64Dn*Bq2bf@6K5Elfi1dP{Ax-nR+Luwg@wwaJ)_!M;XpCXxmBg z>cD7&<-*S9%s0%=d2JITK+fT8Vo+i6r{b4=1I^)J0iomEnz@guc^urKo?w2&CRVbB z*193g+NkwkTlDizXR;^xz<91+i>@@~&ZDUKqaQ0c3hg1`6Nw?_kBOyRpoz)kE{REm zVHry`0Dt7^vDWqRi_w6Qyc^vd6O-EA2dXc+vhJSB{tC6P{?AnTuYo>eC_J<%$(?4p68Y`w1)088L zf8ewGXm{lZ)%T)R1i&{x0#Yfm8Um^o=tzE&Wpi+4RESc75u!CqZHWI=79VDm_-qCw z=8Oi)GiI|ZzS4DPiZ16FyPg|~t2$I|cM?WFAAvRXkCJPkYe_G63ubWPRK0a`1)2Jy zTBOiYFc-AA0ll4jQLXA~+*m7xp8ybcfYQlv+i7Awur*fkOn_F9&3TloG=58pqR=+L z;6i?rYo{~l>%)rG%#S|>fx8Q3r$g1JsI0ZN7DRRTDR;NN%Uf0$SE2^Q{yT~G*?_Tr-_SPBI^oFS|wc>QfiJ& zR;1a1mFAX_cO%)?h|%KQhNf^TBoT`DWqE8R(RfwrW>gt!aG^jD6?=kT zt%^!Sf3@kC=~SlrAmftn9=PiW%1r!yKVK~`T2Y09g!KN)zR(?qwkC7#(0IotP;vW* zocFy~=B9viE|WgrL#7O%(c82|jdx4nqvzRRIpj_|T{z2xq;&5nw6`VTaR-;Ks;|*_ z0%Pm-GE#N)?JDPsTByi=unsb}GLLW4mzB0q;fBq{Vdw)?7b{!mYzhEbEq64zpmREd z59W;x4Z4*Me;vmE)vx{K+C`s6--mm<$L=p#(e~Bf67V{0^zBYpCOsuUMMVt_39+xm z%aAlT--@M?owEttWb?iEa!Xx`fqc>_|Ma!7E?q(SFVElc^^6lLnWa$F3D7y@^~_6Lqs_gZ|G*Q2E?+mfedrD^|9Ka~=iL(bJ=1 zV!9#3brq=OOBp#J{(4EY@jXAk5zzz4$Y?d1C;vDk<*yAbj&R9mv2#*kPPKR}NC1u( z0eysT*p1)ABcA;ALH1n&L~r(bJiY`Eb6vTg4va@+;GJ+}U+gNvf;zp8SJt&LgsHzy zB~OgUzLGtuk>+E5{uwO~i~ZWmfS>`H<}H47s<+3xODdT+lpeXS2nN606-q`*YW$ZG98?U`jah-FfR3-lwjlPn_(>WmD;iz{mLRz zYt-&Mil!d%lr0qKF3(E#1vZO_b0hh)QgBe`yGY3J=1tkfJ+A`k53^uRze@5_i)c;{ zki;FgTNi2utYM=;R}VTiQ}J98W9Cy*V-+viY=z5EAr5xKMjhfN$M#+?vWWRTRAf;2_iCkxOL2EU1$$4x*K#ym48T z0pG;ef-7{n;zOy{(nlHjyGq}LYoyUWtjFXb;St4kIMJGM#ud$nBLh_OFcKOW*z?{H zplqi!1g4s?-N!`5;usripx9F5)j29pWhJb4Pn4kyxUEg4m8(Cb#aZP)85xbCcmo6z zOC}_8VtE59CGrL;V(nM=LHIB$qB!U~V`N1~E)9jQ>@itJqqmIyac3o;L~J;?UBk9& z(_W3!hvlD}Gl_AsfG2Zr(gaP*wc*qR?j(^YT6)t*;R#I<1%8`VTLayHs;uQ6Dqy#J0_^3tk zS2ymff3}q^Y=|J%B?nYE1$)wFB)lsBy5_fH6@??rj0&=xS3@MPry44p)2$t!A$*O!=bso z-zp@68%l&8TnylRppMS-R24sMx_}6mnA+hGNQJoLA$5e!ut#4C5af&NQ6x10oA~OL z2^4a$e)_s2EJC`(UtMNi7e$bdF*e1QG|oZ3_9IY?MymMULDQ&4A-Gx^ss$xV+2wIU z)q?KnoAe~B8;6`w0~+0;Pq2xQnr0e0;?SdpA0YW0t^$*?`*);ZqQ=OBcWd##NPf(A z$4`zFB4^HZ|M<#!YER0-jJEBnb8hk4ZQO=r)=xHhawOPp1$!IwZD$F!;HoUg+`8E8Y}hPsZ&jRW$xi4pTjM9pTbGiKqnORv)c1cX z9UK`^n~BeSv*+svMZQV+WR$QIo5n^AGF1Tw(He6DfCB;@%$L;C9PB>Cq&1NdLihBi z1bllR&4N&-<31-}a9_QXNam4hvrz1Ue(z{#;AeJ=5je>+LF7}Ge^V>?3-zAv&OTW565@~U=v?g)v+*7E~5$=6b zep9JrjynIU%Qk+4FlnC;j#NaS%19ZXQOCVZRtb51OMi+r6jK7vp?n&N3Z>$x^aL{? z)Qbg`2nTgV37esCsWtgfAKfQ@6aY5C+H;)bex>ZHc0UW0Q;#PZV;VzILhZP(p27iu zT{#)RH9C{SsI$g=!J8sG z=c+O;Ka#U~0TRH?rpL@7{s&KDYXwxOao5O^4oRyVy??rJx@d1ke4@-2t@bTV>KtoT zw6H1waZd`8u86kD(}2-tOEp3~!AT6^*nTsYCc2y2!*5`th9wK=(;g9~r1X>|STIk| zrXcW*)kB&Q1=>#p$f>6>Dem~)817>`o`v3FR~HA8_-_Bk7lWqrRmw&# z#G)ZwqD8StT^Q^6>sw!^>Z@;cEP$%NhUPTxY0~$57RH@5U z#}j&1G50yX|M($A2NeJPVO+8Tb!3JubVTyg_q^^c#38femUlzF|MaKge)upKrj;eW z{}9Pr^I^3d{Kf{Ps$Ad_`ImA=K^!h7Det3S^GtJZ=+_&=6wSRo8hT{C(2p(FP;pV+ zzlDU#aZ3?x&ffe=-$Ef;<+;*IQdh^9z9@B!sm%g{dp^g7?-xXKzx(jZfj>`F%8!s3 z6=9L(N{8g)s)>s z*nb~ZD2sX^e38WS?EZKz*`_w7!r?Xf%Hn6(dwA0`6et@dxbq8yC}%owSKnk=Dd=TO z)7VEX&8;B2t`Gm&0GahQH^TLhMYKf*nZEkFqdV$<`XUI&g!RdP{1?%5gXZ6!%D>!} z{}9^t1+w1m8ZNS`n&nVxrhwXKeVoa>+3pr@cYL5^jtn@#{@3Il1?C49Q*o5f#@nds zBq!Oy&GEShpqI8O+N+mkZ6SRwsj<_SR+=d%2?7k1VEw26_K}vWAoE3a_Lrc*KV+fo zF9LTb#@m9+EN{E3i~&|l))u#1OmEnU{$9;rOCtjm!C(Dh!4cEAa$IRR2@h7S{JkJjMdplC_WBFPjQ9i8*Ms(J_d#LMLP!w-V@`P!;*P|`~_8Z>htU(ZCq3%rj29ZR<= zqtwsz6(-8qZwM$TwOB|-g+8U8KYja;msl0J+jm@}VvM0=B%veGg*yaI=G>&B$iN&} zi?T&Mw`jbLur*ZB?Hcs2MF|w`bSV7LzJB$llqx+`x;3xXJwWY;7D9aPZNcCw=AoJP zEQ?Bsu#5_GeYI#sP9{a!jQS|QhtO!N9;L5cuo3cAV()}zCNXwqzuql5)={?&vhfu$ z+tQn%sn8lba-r&S;FWL7EwslhD*@ zXWN@Gl{w5J$cv6JZY}u!da#ake;sN4EyeQY70-(YQu7Psx?)IZ30}vAa+!oBnGpGP z{Q6bYt#i@p$*m1GU_Z45r=_8BbLC76qtyert=%2p(}wKAmOJ z4m1fBZuT3+khV`X?D1x_U@gwd{xSyF?O|e`d0@|b#t1gDBA&I>mXx*v8iP~oy7P`} zzyG+Uw=}ou{O3AV;0)Z+pDn?1++D0IyP>qCiB@gZr?6E=zKw@)QM{^xy8eIofn{SY%Gd!DXJ5 z-zgd92e?OnltB;K_K2o*+y6I5(?T4JH-@0ZbTW>xOw0Le8lCw36CMVi zZgqtzPW1XX>VZY`PpQl1bq*~{okHS5`#&^oD+NTg+DVNSl{8dHn>8GSb=9b5eP z5>(a4%m1mYDIiz+mPz!oTlu8~0tu6ehK?FZgrfZC8d;eac#}H53B5hC6;yy9A0IzO zMxJ~^0OfO{y*2%Uh-`k_y+A=hp)5s&E*URTxmWlfEP4%M87|27 zF>S$^WxDkv^Xi|;1zdNf6ck(^W2y`x&xtaFgU9yR*3@f{V||F74aIpoSE9i3MTp(_ zQ*{EdkOde^{FOwRw}d>5sn4b2NXNrIIE?2e`)=)s^UOF_V{M?=|Q9~7wnDyfn!K<>RFTx!MJOnv4_Mm*HtK*a?= zu_sdWQgC!==rVc>`V0}Ug|1isie038IhZhnoB~q!T>tr%ap6p|_!>m(CXE6W;s>cG zZk-IkvD6oxO<|cN_bVYWz?eneK5B5ncFV+}(>f8*Al`sY+Ef0sAFnz7q*t;BV@5YPbbPL2P*@c80Mfn&v{pwVF zSwgUW%R0vsl=3uCf#;n4Pw)cd4B*8MM6xA&#_e8e_1-H>&@K*Yvk|rFfCRbVb;HTm zeQ7&#k8{Z>kv$={t|n?>jat+nAc)mJQI_iTkvZm>z|bX(w|i)48{4`QTwwp`Dg(D3 zbH63|Fi73R{n?aZGkeS~2-}xCK2!c~Lob}wVQ$*73<}vsnGOx~{mfIE>{B==ylT_) z>O*CS$iq9%eWU}POboVqP}Uu1{~RwX*bKYjDk%T>!*hTWB{(z?oOTskKBt7f4}`hOBowe^Z>0h&u`q330MN{^rf`xun6De;C~5~L35g0fx>14g0iWO=k$W%OzE zrVT4~ZWbn`1g)Z7=cH?MA`uEaMX^xCk!AAkKCXhe8+Z;=3A4LK%b~nr)9@rvK${MI z?)&*|OR_=S1Fd`OGaiRP2rB0qv-hTj!mQ2f*Ur1to9~EGpCo;Yi2hlFqckn zZ!@pkwyf`FQd@rrA3{630+JS93wUZUd{ZoMJJ!Aaws=QtYoRDpi=mQJHk3bT1}H5y z`-#um&59AQyWQ%%nLb>p0*860g@?RkWld#BxJc_{t`~)aEm;n9@aLpY6)!LpZ*12m zTqwbU+MvY7Fm!e{)bRUyot8`~EyY5UH!y@BP7x(eXN1Lk5+QNw88EVELl}ED4`G_r!)>rH6mvtOgF>8N8`s1 zvq2P=!{N(eM_jg2pm3~FnCjAe2fhcYHi%YY%mmP*`EZC4FVlpNxUi@~D1I!i$ELqC zf6I~}krBI-++)qk?Shgb3V)xogs0Z|ld&-3tA;8OvfcT+pf1$u1V)YDzkmB6vpBA_ zhf?_74nJB}k%wC+ZS9oD1Q-S>FC;B(_kUQ{?zp$}2+ImdPZvUjL+d}qpFVxM#Do0o z#S6p*K5Y5J-R3)Vx%VYW+W z=i@0Dn1`aZK0w6b>d{RRRpcNIchqP;5hcG{>L*`ykcaoU^(9+ekiYK-RgQXrHuQ)F z7z*<^vTpHB?l7ui#T#j;d? zsmGe*E$CTTc)q`pWwE_-O&shC+s2o|EL)hnzh z`*gBjRSX2rEI$Lp*;9fObR@L$6)6_@K?CqN>{u^BdCNSKpEWu;!Xaw5L?@?*XOm;T z4H>oCY1YpoVkxZl|8#CpZnSkLy_i*Xs?v8}_^=bu**}!=Cnc>jFoNQ(Q%ef3Dl>SF z;g_WyD*Fp>08nqdf%;-5k#$CFEz|@-4s`Zo-`4RfwhrxXp+gfFr%dQtj4jOsPmJ*a z0u_hQ42QtN-#uh;Gq0l8Hi&nUG&8Ztt@aBiU!prfB1eN2PGe2Lk_XziJ34Zu@W>mh z_s=%dLs*&GfKFxe>wjKF&UShBZI(GK#3+9z#)Hk_`BtMXSFtP+1ww|^{FYGWLrV*W z@nFZyIbMlti{HycZ8)S!ak2V6OzlZqncmPRTH&XV=>bMhbrvk$iNZ=hSeOag{bT|m z5RM98%eVM7q&0zxRBk6pO~5;e=yhn4XOryqkz=pfrNQbuA&eyaI9CK1vY}sTO$3X< zxhVeB3t5xNQqXMq!&B1~fY8tYl|h>NTbcL$iL77%kZl6!Jil+mipv(3fw1LG*6YRv zroH8fIW@;^QrTJuLrgX}J@pC&TIQ~&0dk{u3EiUYQQbMvqo${oC|VA40_U;0N53XZvR zmCtf)DrTZ@OVi)&8@4w2tEV=~vRg!*J^xK(G|%!bIg!g)Ig0*j$Mmy+zEaH|Y-`?O z>oz84e1qOdl+W&e6b>{S)e#Q2dyKD#nRYB^NCe?|-&DzOhHOrO9GAMq{t<-e8BpFT z4?7E7|p-vF|(%DO= zn0Hk6IHD5ddNHHj8F}E~i~k%@$(R`2I4e7`@2XL>qSxQq7qov6qu1MQ$RV~6t>@P!z8QeI+UaIZwjxkA zb3Tj(3$ik6hu3>DOWJE3Ra@~jIf0{xQBD&Hjfb(>SE}^FKCOCCoe>@Z92SU7lE(f^ zJkLIa(0lwe#I=({#1xx-3CV16SBY>|B?IDeH9EvRj=6wvm>*;C&*BMehhYqelzr1P zM7|}%;9Z*_>x+LIszY9Yfbab+q7c#hHQai>fs2W$@6q_}OqNAQM?V$`Bpn?c<>VqB z4KOw~wiLYnv8+H{yKAjD(=^!MfA^=TY~m>al+F0XttpbPukU3)Qrug`pv713ZzVtj zk7Kpl3ApV$*YelDcW^lJdyX#iB^*LD4KwNet5{(>-+(au4UeSmmcP1CPyJgE zP%^4cCtdg3Gf!~P&x8NAw~yvGdKT#a&y>L5LH}|SL~TEV%c^#=nN0%oUm^Cp7{oKQ z`?qbydJ7l)&tICO5p_2|sQRfEgJj{VF|^M}eEcKCCE>WGvVCs;hS9wIAk)p-W4%hq z3ZWbjoY3g655=z0qheZ0uvobMt5XP zs$maNhy5A_NuarIBCC_w${}dJi^k;|!eSR_od@V8NsukEAq=W%gcToW`ZnSCwrD0< zx`V%0kL<06(Mt5gO3cfzJg)utJ@;I*=y?Ey8G$C5Zoa+W(J@4VNT!_wA6|^~=q(RI@QHlD$)tFPS4@dOTG*EC-S}4XOt4F;=AF zIp%t?Wt@tl*r`?BE`odb^QGv#qc~!3fXY>5UbWzYr**k>V78?DB$T`oWxD$y(_7&D zsg5Jt`2lmQh{Y<*xe?-Qh%#@>{xHPoChti@DVNsNobqWV3b0ZPVMG4%qXxg1U=A~O z9!|K2^SL+$99t^-bP`pcWW+X>;1!ZCHZ0MgeLt&3i(u&-KA`f!Q2u!9s^vXKs8cn1g&lgUy;#8D zNU4rpl^OZJ1kf$YY$H17tZW`)1HsLm1Qk$c+Dr4y@}|G!b7v} z=DeEPX(@G)Kq1D=hTQd~Q-=Gc^d@m%JA#haNT&hTKQt$c5lvJt<@YO%f@$WR(-K@2 zSCqMXTBNwW-&R8<;kj2y0i2S?u&P@XZ`Juk>o{ID%ky#5{6M*nKfI{)E8N{>i*uvX zbf+A9_8Ze=p~Fw5S5;i0_j@y?%!sVSROIy}U|dOZoz=cXS6%gNX@A{trG3OmO^qvm z6^3ciuraB28qjwt0$6Jwp*ka(H46l+M@Fy-&p|>1)<4nqC?ut{#Le^p!EPssP4l+L zwidfF55~2w{*(5{x%6PM%Ycf^q@^Z^Ls9smBy(;~VB>wB8Y{!o*EWO?JrNcY>NS(=~ad8 z{eo=S1$UbsY(oic7rLK4o+j59Djpy>DH;)3r_RIN00YxaB@4~xE(*S63Ai<9ziCfe zY^=4KQeK_DQ~qhLs)BHDbwBJ|PP8b%ShxM5^`j#tUp!Pxvtz94q8#c#4Q?lbnQeXi zle>kz^8QzrHGH}%Cn|C_&eWkW3Np_uKu4nZP-deav`~#$blf?4uo4 zQc^-EU~zs-QiS0#w%qIs{AYF}`pcIu%sMrXwsz@vAo_<7A9TKkx3{wbwz{%GWXrVF@*g@u(qA-GykGC(9t)(|dqG^0kT zZj0CSV;>qCnh+l3zmqD_etv!_Da39?IRC5C`u|y{{@(i66t=vZs>}Y_mW#JnH-&u; zc&llPhsz#GdZpefc%GZV`_+sHaxXf^(%^?$_pLYH`8W*31kh5zo6-C9;8ky9f-PLD zf8!XY@;UWfBcY^1dosSDC}Z(cH9ziXnD2aJ9CxcKL(} zplF8R6!wY6ET3_+Axay*b%(P;+kCZ=%e$Ww#Pf)!lzr)j>;{;(xwk}EP8^>Vx(7ev zwSTq;)2{`NX*8DwT5s1CRm#$IKc$=JgSoG=mAz9U3GV20X;pRUfjBJp9O>>B#P2tl zZmGpHnnHMJG#ARO7<+pU4%cTi4Bra>NoW=jpw$WbUbz3hsKq+#)6e=dWtyx2LJr@% z7mY=|l^a(d+TuZ-ypr(@d0M~l!ct@NtRo<7`GQT=MhM*4ln`LN`H@xfBs9{zrx#G5 zyNo7cHAyju8kjbux{JQguaz9%mpbQ?;L0LMa0go-9h2E;Mect1Vtf2*yu zPqU2fcDiS_kp7Gor3M%?g{E>cEqy49dW!TD*$<1|2Scse_m|{>YgNRQs(5b*>8m$l zAyR{jK{kcu-NX)-M^1@R&B7}XMI}e!f=QItDK8}u!@0aS)b3DW;P*aR4p+4zGkBh0 z!@janK%fN{0CxIr#N8rl>N#?X2xow9MseT-78D*g%p{odrQ%$($8oJ6p=gv5<@D5q8}H->Gnlj z)7yya`y)N6`5QOZNhCd$+OSp0S$I3gO>~2O9sHEWfRg855%>Gq~oO zae8f}pjYJD{HtRpHP`R%{>1jBXki&;1tc|)sT-bS>-=3}?}eMXlVTKM`COSmGgiqp zUTP5i1&$)CN7QsJm4w2AQki#j7#YhMIkefS@SHhUUoRsCcV{xata#pUi=V;Crvg@g z6;(ru(6eFj0mx=ztK5k_cMO>_9lBQ6y4QW#l<>WKii=4ko#wEfPUz+J4SthApB-Q7 zeNl~~m+coO?+PDZ91@MCFvyW=M*2;GWoPcKgv?#StJeKO<`P6mCl{4b`5+PI%&Hb^ z8w=fDRL8ZP$RE|*Cf}xaHl?<~$S_!l$@t+N?dGbGXqgedKNSKQ&KK45tWj=ZJ^pHw zCD4q^0X3OT>3GzVEUf#GIl=pG_alniqI6eb8S=3Et#E*=wDRvC*>4 zwe+Pk$nxdc@rw(iUrmogZ*cQUszuPkcvnueZab_C`ddC75oOkrA)nXg4RJ0T_sV+=lBdl6WVdA4=UI_v!g#cb%ce^lOgE2^@L26$*T!PeAtt$(8c2< zVm1dx5st)8q+*&e-NsFX-6sFAKK=R%=JYiXZmOsYKQx~Efc$sRIy#eZOe zD|uue%884Fm#S#P06QNZp8wy`$bVf>qe?FJ!(SqwW3I|1yu@eb`*`-QbWNCi-IGa* zXbH~k$h-ce<4I_R_{+1h;;x)sIi&Y-Klll2E zs%PlTIR?}v=t6xUmOwIBz0i`g5>nAJf)A6RSOo4M7N;^yz#dyX#(~anAS<0mLr-w| z5Ox@c5-WF3u&9()ly+909}pTzizz3qpj4I9#BWgfXK4j<(c{;#w%zg{PFChCdO7a| zKkzoEp_hV!Zdw{FxjuU$(n({DaR`&1UZH9(L?kqD{%V?@V-T+_yM>ILy=3byWxb2`-hO}=Vh-#q zi|j~7Y26E5LZ5dlq=RBDu!tfEs4vLbSYnIb@J+Z8rzRD;U26r3dWPF^XcRTsf3b^A zTUo7*6QE(78lmS6Y=sP3c?s-}OZStD=#`HX97K{%jvpT}-T&e2Zsj#{XV5TCtL}#W6jDc=hox^vCG|)9)$F@C_;<{gUy$t>ev%Tnt zUGQcn(F(Gxn@3jjnyS1kLxN%uqv~9a`tz7;m6Jx-F#4s;Ve~|T#I(Hc&)L$wR=UqP z=Sok$Sj&VrM(GtgmXR`uu#j1;uXe>4wsYi<1WZwCgeno1oF;fxM#N}G+u1pE|FS5% zI@E|rv-5redhvxXOV*GRU7Al!s-90)zsmU!uz;l1RSXuV7zS}EQt@VHJuP>{D;Cnn zRi;wBJ91Zdq?@)~acs=!b$OnetRj_hD!oC{T;3$W%Ch!nByep`mOYt9Q@1SpB;7rq zH=%fOc`!*MKeD`uZu<0TE1`Jp-bQ9&ZGk-S87;jbca`w z396naVjle>P~mi@mV)s@&#}Uv!YQR`a%)UAQDmEKd^MCCTnn=^wv!(3nb!6>(L3^N zGgBth!zqG;P%A!cs5myU*_wED%vs;L`pQbxj8sI7ZsCdG7k}fy03iQN+hS%O5#yBo z3o^I$`hg39sv{`>QGMlj(vxYk9z5!lJQOy1Fw?xA)CX!sw0bG_Ja(67m2FhsU&WZg z%KB8@nT+{dfzWT(ap#F)#sH_%b%|T|M&A8Zf?HR09%=Y4Qx=7=X~ruaOy$R|BVu4o zH)45nbiAma2HF&EpS{KY5jD$24tXjBFcu9gTAC_HPc=91laVyoXteP`t!)jxs;otSZH~4oW?pJj6Sr1(dwR>ZpF(V_gK3^G<}|It<9BoPw+!*@4nW4D9wmuIm5HykJ<7Ff zr=xE-B<&GNXOW2>0-xF`1MMZ{xv2I?aAwk0;1&%hbG=>~zpEI_}-Mp7+cA8etxX(nB<`ZJK@eqj-n2=%GnN24cWuMKBeVW>@ZfB zIk-}~xo^)x^G&;iQ?5(|+wQniJ9j%sJJW07ZK-^WdIx{sca4Mfs7Zo@`6AtR?6U7o zLIoc*wDp@6$E&inwj0h?=6Cz~fII^WQR(4Z_56urm5&NPpX2@f`J78&#gjX@pa65N zl?dg8(E zNCcq~5ov73L64n4qN4u({(n_%%!jk5E6pBb(|-fc5hOe;Kw#Troo90}GgH{xgWf)- zM5mTTziH|*3bmRnjSLNaWS=FKm6e^Hs~(4xDvyCY;sRZ_S0@+y^E;2Mb!=?x;i3Iw zq@2d@V%eX<^%rejYiHo$(eT&@27__i%sd9U|55KJk#;~dd;Z@9(ch4dJ8B*_EOi=7 zX?px$!1Q=96%~dMY0-SNEJ!_>+u8|mx1`20lB)y&vJfY#Uk>da;Ubccr&ky_4anc^ zImmg!GayGkIOf99F=Ny<>giAfX8B+^lP(Ef4JralFFyVU-DnxP>%CEYgt%7M$ zEvY^6Y1095i?3|-TlkT5a8W5wwT7>McN4}+JAhXNI_NDB)=w%l<>muLC?(*WQ4Gu$ zRM#NWbR3S68OHclbS-$YiQ+VOsn{bREuW(=GfSHFN@1eb@2;x9KQ%|J70F=27#pa`|kJ#pj zqjt?B8{MIaH_`Jq8jXufd!_AJl0Og^uxt8jK{G?VMfl#cy=s((H#9Nu+I9cdNAQA; zd#jDbA#Kr)Tzkq&nbKEzC|BRAe<+g_MQcYNImjuOV7jrW<=sZxMBIgajC!*fY}{?q zCD0cn9z2UkP3VDm6=MsMlVeIVBVOMQjZE`!a=U66Hj8$t+nra-&E%0=;eT%x8F5o8 zzWie9)U1ll-v1XthzyVw)ToP*B61^uK`dq@_VxNk5C?S;6Jt$2XMlpJS?SQV>`YvD zRFbDt#;yG&wMAv59jBY*SBk2AE&(M$@sQ2mRTtipEZ7+{aA+|3*DQ@3ka}HBl3Ka@ zRW3Igz*uk1hLZ|x9YZSkm7->w%c)-?O9ZW1E!VtxYEw$__8lb1h-)wSgE9}nQ^kR> zTvIbZ80TNuVY{W-gBX2IA%C%aPhU^p5V#d83-7UZ3G5ZwVvplh#D+C^49EsP#`)2ZW?eIQ$QC{|`yLkqZpLTbhnxcb4yzY6niD z(EleIJx;*9=~>$hp|{4dgG3O$VA5hSG5_P0r67bV))IKlul+u@ewS)wgCuR!rp9k; zV1>T@g>XjEsDyU=a0uzz{&zM2klQW8Dc)@mF(EKOr5-+OFAZ;(q6_g6ePp8p(hYZ{ zEh5j+edrGmI#}R8Mv*xQB>?g|1rac~kY`h+^pBZ&9wK%#y+tJ>qa?h)N z*#Glq{{C-3Iyc-UO4v;0v$7(bl)uL3hWduB4N6l2O;8*e%e8TFY#kE*i?PRNUrB2Q zTGV}?{+o|RIVHRD$*ubfknaA?d5wf0`^0r981$aq{R>~<)Xz*1#S^mWFhMk`p=1a> zJ4d5r9s)>Rj)kzrP?FPRWux6Y4X4i@=A>PS`nlrAVmNa2YfP&NI4zPJ!m{VSnPy3Z z$k3gab!4CbDsvD9G!7Oi*0bR4??xcqTJk_Zh$EWR*dDc*42h9kq*-{i6Z%SFKL)`O zN4;)YC||Z>6!}vm!Y_G_3C*iMs!YPP0XXeyQYG7XFbg6guHV0@6vSHblVrjW{Hp(s zqY+}A*B=A>)D?gC=WCR)SRz1p*GlasE!Oevlgwc z+VCm_ZmWPAh-W7rjJFvY=wSCAZasiP)X&^2Qm*;gZFo>`f#QSK)wIXFZ+>g_k49--u&ZCqiOI zi^uc=mSWP=vDs(OaHvmYeZoC(slN>ivGem|TSrBo?-k#|f_D*yayl?#dlE_c*K zzG-zVzInS-6|#hJx*`A!g)OCxoVqD-?eG}hBb4GXP9hTl;)((f{dq1AOv}mScZ2?$-{;>7yLV6G$Nlc(aojF_9;R$+PKEd`)Dode^Ykjf z?-7M5`@t?z*_vHQ*>FPgfVXM<;JxaoWUQ49PM~ieiIfShTTcym%3@4g$g+2cVUaf$x)xW$BOmdj{ecKO< zFg09#Q!qS6++|SsmR%BoI+snRp2$D{Cu94_N4Jy%J!S)EYc}v;R&TR&6m=_E5$u!; zK@FA;@xzV_3iQ>#aq36L5#iQcP0|tBCX~^6k0pkm5{?&NGVcPKLHw(+#L}$TvNhJy z`3OEbH8|(0XU+d3>vj2|Cyt?XFBJQERScDh704g$2ZUydtb~tBU&b05FP3i?n#hzC zNrdMu=J^%pA8VQcxw35wwbBpA(?3+++Vx=Y-sZg^+wen2GyeV; zd>K99w^Ai0daL^wS3r@JnbAsLk?Ej@dKN9uIMuo@F;R1d$msO~|M;IA&hc2CaEwcX zNjtSiNZ5{C{}gk1AshMj@{y08jR?!b+fJV#)j!QJKr%26TNH`qbesOi#v@3HX+WZq zMH(G=*nmLgo{sP8aPjr6M@RpwFbWh_@&yN19iF@QZad-fFIKt?GqqN3 zg?Aixy(OWFKwYCea%>9n&cpdMCY3v#0ypjxA{3N2){)<#v)H?%hsn>P+ZOr8`u9+% zh}L=I{R8SB!iA*>#m$CH-`DYa8U+@o9_|=%i6~mE*51`9EbrO)*w7v*?XhkDKb@R+ zSQA^f#`WNlW(5I3fdJA(NhP6%k1hnH9ZIMIp`$^1M-c=SAy}v)0s=~tDpjHg7^PRG zOGh9gEp)gusNd1=+~?l=-2B7LuqS(GXEJNn+Q0W@;A|}&(;u1=x^na)B|_C(ODB*0 zY*;R&(!K1!idPcX?<6r(FO|7*r{BOhNWkS`%@`j;@9f)HK?dfVLHa%!o#(2(TyCcn zlt`MyJAGlmx3i~q(3@A(zor)^c>XyX9{phc@|^;;28Ld0i050?Adz7?8m0Pgs9#B+ za{Fb#$wkixuRrciWSM-7Qn|JG0I%a}Ch4acU*O2zA!_(QS*T1^O(Uvtxa@@(Wk8i< z^}-ncfNr6g!&v;xsSP~=P3Jk$8K>LnWy}cM^zvABbs>KzZqu>y21|N?>p1u`x!?pk zYk_VC59Zn&$Q_J_+V9){`zM8-FG8}slDg$Rc2&`9q&5s#@?(Cj0^rK>_ARHu6sNAC zK^$LH2PR0sirv=E<~*2RDTLe&eYBS!xyiVGzE;)!{?EmwCAGU;rQGEdAXQR}=AnX% ze2$%&096eFA~usv39Lezpr#c-uUXvo`eYGI_ixJ6){dcr_&>p9$aG&L$RxUguztA|hgND#sZi-CF{Xtw% z(@g;FHt&cb`QAP=1RhT3C$%hyVE$vaBhoU!LZjUE*M z6uDM}9E*e6hYQ@uiDO!3#}OhdHbohY=Gdq}8V zKte*ydkY4vb`pD+h=7?W_4Sh&MzHOahbZFH7Y5uo#Y(qZVc2-}g+a|`DAG@+M#`m8USY?`=4ksnl86wJ6iX3{bW4D{I5)z4 zpv~X<#6n_if_0`0dCs%O=$^&EttjfcP|qsyRDqEm;{JLM3J7~6TDYpAfXVIhDwP1j z98bcrL)Q5(iGb9y@vw9Mt&0-ViCd)487u>JY>Gmzo35@|UO4xP=z-g5bDTXXdL}nX zg=!}%J`M+4r&uM_kHQ%el=#w}y1vf7GT<=snliw-ztzokX*BPP`tlfvWw#PKoXXz^ zIJ5H!Xvb<*?+lE+T)^E~BvcR9HJO^R&(!D{i|1#@2=^Z=8f}WMS~8UMMo}iS=5=(gwkc4D&quMsc})}>R*Dw%SlGAS zXSe!*hi)G2(#Y+ev^Yr(6&uBdyKm1Y-*n+Ho7SP6c(pdxuGF)LE4N$DlM0=qt)I6t zZ7m!I*nrdQUgeS4_jyw-F|DW7KE$WX*5ZNt!O0`eE>C==f!m6?uzP5QdylYbOS?iX z)!j6MYq>bGW8JRy4X<*eZe4lQnttB`AKRKALEhpIkTaFne%l&I-`${UY1} z6nP_86%CDzC2bla$6l)#=9@`5_ng~9QFJ>27XvT^9A{%&p_UDURG`gQvkiO8?*W7g zR0#L#fvv5(U_FqI17GesQg@3Lj8bra+MK9<=AP}rvv@L@3`VS)oek%o;itJc$hi2~ zGZ9J2^3&xPfFfi^2JR>H9U6K79KqA4PXXlRH|GS>cx-a=V0n-%;y)q}xXV+fcJSY- zsP9_Cn;*eTDs;`pp!rJFyS5X2IZ`~l!2`L$3j++|jQ9mKnOeVm1LGh0PJ%B-nmxr; zlM4Nn`Bv?Sh^%C$1XJ_re7}yPI;8J|r)b4YilC6kDCo=Lgou}ED-U%3EN7uxY*GqV38lb z$baRT++Ak;!|@kuQZ`+RhShf;xHsM%8WCsQ1IMLj+j>0%hfO@y&!s1_)i`E+en*X4 zW^NubSP9c?Br0BmbL#_i@ZLBUYx~LUo`wd-{sBX#+d^*ccN2G$}E_xAj6==st zs6Vv{l=GQV+AR189uFb$Yl{V_c8OP2XFS4koh+}l<_eU#WXx{7lF$YrawmD|88z%& zom;bFp>MI50mzZ}XHXXrC(LhjwD`zQM#&X3B-mYI^_;DW(&jIVYMQAtdZxu|v+hpT z-FcuJ*uN{a6*;D=8A8YB@7b0+FV$nq;ePRCvW3b~+doZJiO<<)4)BiHRe5rUr~xz?asgJ^~ zHg}*?Wo5Nr=(r5!nj2_SP}_!8wk4n7z5wHWt-_}DoT8U_HmjJrEEhTZeV~tL8)g^> z+XPT>ZuC?vI}V5Q)uydvAa)(Ug`%z$8ZKq2Kkd{Ska4-ooM2rXIVb=OJ5<32t0k$M zBiTF$jNy3Er~y&^Ek)bkc;|FM+)}i)jON_S#IVKS=3WEOP|bd#FK#z?fTOL+XLMJK z+aHkcR0_O#K|5KHZoCyt%@{RFyzkF2`<`Geu37T_k>VWINwZ(ZrDZ-wS8XNvwR5#( z(lt^q8x9|GSUB-=d`7*yJw`je4H|;4LX)e`0J_(XY@X!0b$KhrVR`zmtVYM{dpYx1 zJum*40#k~|mSLr#2P8GyPvY-%muviFc00@u5imn z**9ZcvAQ3pprPjHMNR60L9I^sMO8!Yk6lvH4S2pPPcP9i)!?uGOh7{ENN@g#x@zBO zTCx#^^U_KRQC+2IAnEa8t|n{}(*_f9avDdq;@dvP-GR@$#)Za`x_NfvUl^Y2|X z%~vkokrRW5ER9}kzY#Rf{s#)Y?n^^8hlv?72iKR`+;%PN-ioU#@=4VX3A%C$lKHF(~S7R-mbrBUQp`EW3m<=b!#=m zZC7=CxFp^<^1N+zxoc_*W>t;{(DUsVxT#O={i~hczBO|(h$N@_s;+zah_|`}BPZ2% zk5l*jbHR#+FFcBfDutr_jk;M7f#kv=N{vRegPkliLJrBu>3Xf0NTWpit>o>uWIQyz zFkfoKTYWhi@e@=Bl|k1?zKktQ39{r%H+?PsE&u>=!;3c83oP~Q9x^+_&u{&8paKjG z#w8Bz09OtM4uvf=Xq>aB+T8q+zQBn?)vx?lD*>_*g27-!L>!K~#uOC55c~G>6ZLb1 zeW1)Ix~;8^L^}5UTmia$;Knzy>da5W9jx1_a>|<<^kbu=U{5hIF~AeFAJ_^gNZI^Y z7=pa{0llB8;Fj@f0+*jat!L0Lnol5U@fqOZ{I#qB5S%~N>r-L5wDD{MVJ+HJMZ@*) za62m_o_ed>5}7Nld-=&aPUcI6O!I2le4?VN+x$n3$V}_b4Xy74d(zj|Xs$8Dlx}n& z^NlEys9D*P8!Obh_E{%Log1VWPq^JirdFK+R+LJG<5qa(uhi6)FKnk@ERTNxr6w-E z?R&ESg@}c=6ALOVS6n{K+mIK>JLE08esJi)B|EYsBi=kHd-~;2TEA100YzLtx&^|s z@+oc%NR07mtzvW`q1eRkr}BCz`>rnx3CY7w>K`+7r%;m~aiRFoT(4lAO{_eedu*l; z%boc(OMrdxfH$>ID$G6(#gL0#xS@ldpts_3leklN0dW3_Z0#HA;9u%+xukH_sb=2*hL>}W~p8TE6=3>}`4!m=0@1UE=GduPn63_C^A$L#Mu8{5it z6J3~olf$zeYXp$(v{U183kr+e^G|t@505 z(Mz4yz1m}U(OW%Ug|b*HQ_b?QHTKaRzq~-7{JV`Ea!NrgH{0Ymz8!rU$f^r_3NP^&8w%$DTr7y7{?uNN%cdmL#;2gj4JZa_KtS zg+U%%Th<<1f?dUh!_7oF<(*XqC(KjsvIR)nygu2JA;eZh+kOYjHV?G!-Au!U95k+f zOxdD@JbJ5c)%v-#WK!WO#i{aHCkG;9xDIO?$1CJzY)Y+pZrGuPkBd4rEFXr~KqXh5 z0d8J2`PqN*$PIH)Qn9tC=$6tgjt7lIFr;KmL9j6FtRv@r@jP_WGG0cEp#0viET!^A zk6|)4bM@MOY)N$65yYlzavnNxP7GOGUq-*%l@-_)Bt=c^A_68)VqG}&M!)!2y{zWI zVqeqSkR()EzE|T(T=j4o1;3o8_f{xTqF1!%!IR?f=r-lH(@ zGRyy)hHnTGj=3i+=W-wGoD~+S|ICqIoXT9H$|H?x$(^1{dE=_&@!UXlc~WilCK! z6Un?IEgZ}KeE1W#(fd>14Bd6?@agP{+9C|AZPKFVu=-`7z)-1FZ1JVyUlwr{CGI+{ zLpVv_juQy}068P)Ajc0+Tl;+Z(z(Z=BROyLh6x|LZG&x+U(QvPtzZAvo#Iy(7xZqv z)}-*5 zq8(YS;R?OWW|uJRykML3?6L0LEs@@gvzk-ljKvI`+kXswT9}V!K6VmC>-9!&1y9^pp3K>d zj_`)QkWB0)HlHP!=z2@sxobMoe(DzTf8H0!E&; zyJOPbT7kg5ue{|1d-r8vbFeR9uO_)P)>3z?8-x=NK3com>N`=jwbaG zqeACq6liv{i}&uU#2uq&dMkn+cS+REiZD$L%VCP#P^H8Exoh-W={riWjv%t(R3Xg`^g zE(i%IunzGvDRTi%1OGoj!{^yn@I$=IKu92TVfz#Xn3?71Sm^}l^pQ#e1sB}J6KyURQuIk^nVGz)Eeb4P2Fgyp`(yw>`#_8@5@FVLnL3OO$ zKp%C)&o)0M1l$KF=5MQZa8T|{P@E&d9byWOSr6z}iRcNO3(P;T<$r6Z<3=QS+5nyY--f2|VC&-Y>i``*JY1!r(EoOve@~u|o2?xa z3^28a{rd$$OGqFkAa;kpA48yE62KILFUXaj$BNE-sPe1=w}Q1@aqwYz@-3Q7)((0D|SQ(_|1ab$`Dgo zNwfqKse+JHf~zPaR238?Q5XyYrh-5s&`L-NNf;I)tBh7vkWfV;U~q)06by-0R6xNc m6c8#Z3Mx{P7zIhJ`S;(Rm7B-jJRwj>v?P