From fadf4aa787ce174b6169af05239426a17acb12b3 Mon Sep 17 00:00:00 2001 From: Seongmin Choi Date: Tue, 11 Jun 2024 14:48:32 -0400 Subject: [PATCH] docs: test :class:ClassName --- docs/_build/doctrees/environment.pickle | Bin 470403 -> 470466 bytes docs/_build/doctrees/ontmont.doctree | Bin 274739 -> 274784 bytes docs/_build/html/ontmont.html | 2 +- docs/_build/html/searchindex.js | 2 +- docs/conf.py | 2 ++ ontmont/collect.py | 2 +- requirements.txt | 1 + 7 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docs/_build/doctrees/environment.pickle b/docs/_build/doctrees/environment.pickle index 9197c255307bb6f13e42f7867576b0a5eff71733..6c8183e6e6e99ad8e798199a97bc1144c7aa945d 100644 GIT binary patch delta 53730 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 delta 54472 zcma%E34Be*_wUSI5L@C&>_n^~BC*91OJa#FgxW%o*aab$QfsK%_lMKg7S&BlOIy`d zDXngbmeN*>E_83wqO`RCbI#0r@4lDk-=ELN&AGFjIp;fP&YYP$_rABjsQSPcRrmF) zA6a8`z3$nDanC&|NuNDZr^cA)pU<|ucki!S;htW9n!8bh;$_2PV;fJ-nLY{sHy$~0 zygMnnn)|oKeghx*eUmKTvgstWyFk}Q4>eI;~G>J zU9m{KdtG!TcVTqJ7q&H+d{&qTN{dT#L>$Z?C#pi&T=Ct81EJ7vo@ghYgg*C+DsZZ^ zXnXMNJaJZtPgP3ZL$a;-1oqAm9iUU5aEo6#-JQR!t@sJz7m6HF0Qn0=1M_N?d+u>B z{HUt9N+qhg3#M66YLSS=``r0rkocBL$GbCEhRIK=KvoZt=#Cp|LGJ}39^Nb?Vq~4F z?mh!j-I0SrL=>EQKn#}6tGbVzs{$#DMSam4rYuG-3Gm)x(MTp#h5cn@Us(5!Ko$>* zFwqpU9u&zksw%Ngf-4V-LTOZWU;d+Rgi-aLd$Q{m!^M06N_Y@Bu+`ClN6tHB4 zaJdg($PkO5-E#4n+=TFyG$utXqVlt_r?O{Qc)6dbja8w~Te2$LULnfC>m`j)Mg6=& zw3E+Z>(z~+@aam?5jqT#Az~Ma6%YBn%_?`{=3cm}s+@=R zx?Qp{yOj+!``Q)U{d2-x8!3Gb3e!Vmk0Y5DpiH~XdJwr<%$BE7_%^a3b!;*BuMa24 z&lp&kveqsM!`FzWRD#jFG(uYN(;6{HepJ=H?wbeYO>Y;JyiRQ>g`v+naTt2Lu~V_z zWr=EVI$2f`C7|XOw3&h~vVpt9_IB85`?rav?)-UmWQ}UDaG;o2u68wK@))YJEcFv@b~X3@j3jxTJC6HoY(8nycF;}4%a$7;3t;9;N#`ab;|M#kH@kb8?mY_~`#~lob zSU^0ASQGYtZJAJwEj5AUXG?vaD7Mt+5pJ^7lMjnN0xoY=mMV`|gV4h=1tQmqMzG^4 z5dm-hW4R!9tLP*?C!LzP3;u2$ah&)BwE0;zWx=j(VjGTL?6qOyX9(Rcddlys!Ttg> z0;X>l9cA(AY|X-i+?}F@jHnJfZ<<4;SsfOpV42DFtU97Lba+(Ez#=stSJlH#ijlId zuGvb}?4fJ6s_xF37!G--M3hKZ6Pl%?j&nVS7ppGF#IH275IpyHPC&V~;pgIkz z3G$8V?4(Y;8zK&n0P&CsA`}vz5)0(>)p-z|S4Gf|l{!mpustH?g>B_{2z^@2fWM#C zL+Q8bJd`B;4UwJPm-f~b#UW`wIywuEJR>HR3#ow|93$wt>O6vet4<>b>$#JzHdB8h zVaItblHSh(+5@i?@3L5tG8h8oq~A@?QG znFsVpB}pdqc^-XRwHofiPa2gQ9bBO9HQZT?6T}>@B9U3mk|IN_QXH21aaeO#4&)TN zgLqZcbWhn;UXw8N1 zbZHM(;gLZ*54n)0r+u0-nS&`_Ej}u$MVr^eTX6DCtwoneWjgd1O$REc$hva4k|d*u zBw4{F=@Lo3CTA*rkQM4PR46777GbjDZcHGzl&FH$$QF@h($z?)cUW{)bQS8fP}q7{ z#L7L9G53Hv{8h~kE{FKzr4sS zDQYNnf#l=ScDg!^wkojusBp{QA~A{>Dz8OC?qV@e6vFjmB2gBSoGe?iuwnh%Xi$al zo1@?3r2MvKLy1XVkA76Amobwu9kTL84>=jdLhmeldBkIf+^we1A&(?w z*&%;R)JW+3vFPl|B--had!S+-hy3Zs;v*ckC`B)xpgD}W^NCm|uht|FEdEt_WD~cE z5!*y&O@{|Q@u?a{2*rLR@lWm-qKo^(^g0+;AXx?SO3Ah|CW_;ju=ptC;_$-XLfCmx zSw=+hK<3I--D%HMQhX@()hw%SIFKg#DUK9es{-t(q$`TuacGos$6Y@c&%>mPS}qJ$ zNUmI}Izg;($h0)do%L*6*(r+LaoDQhlI3Ed#o_LWvucY+9d&b~XoSbYi(iUxc=Aip zSiIoK-RH;oz+E|$^J2l2&YGlnKk=f7S6NEM9DfyCT@nvN*UMVPD@w&HBtd65HBHvW zj`LxE+fN!%D`*c~Aw3ghg<9;8udsRK@WHF1f`Ga|;Hju4>1Or`SNSmW*60hl7?ZaxIaZLIB`uh z5}jb-pBSjthTQ8Is22Azu;KITB2x@?a7kBOCMYiH#3fDKuNb8JGZ=gm+u7i#yGGT` z=eiQ_$UnBbElR@4TcV+OR&iP5&*jWt$mO_$%TdMUtm1-qnoA4ujbd=rpFyuX7;W8l zFu180gh0|i$oeMa|0BAJigec$^3g+Mk{=Ln{VVQ;iFIWOjA*$K&Kg#UP0{y=d*~m; zPZxD%qdJUkduEDvu=5{L9TJ6%7O6hgltIoPBUx-B8RDvn5MRgg1n_k&?*tHbo9u=s zfSfu=-L3^C3>ojbMaj+?;9Il_&kV4{kh8^f5T-mUbL+6rUru+uC=MvOg!u4Sy9Gxq z`2oCNT&ksOejOF$=99FJrRyuIa)-eo;w8u`At{P01*gu5xUkoVnZxzxKv*eRS?1Sa z*RL7z5?0Z;ge?XgCdkS{-&0JwjhH5jM<6azHil11$R%(xM9cJxmgyItOz=jitS#-j zaZ`Y&ebHc<>0ij;u2GYOZ;8AkU!MYuwsg)wK+tW z$Ea#+8R^mmIO6`%PrEr~QM;L;TDuW-RhUYDL*zI)M~O45h&c0ti!-7wE9F*7As1Ha zF~wzP5iU>Ml?y5*kr{=k{3nuhiA7pPp2LZiw})zl%lS|t0(W^b2jK3Q*5RDip+L3% zOOe)p58nDYr9<(0JV_xJ)}fNRji|?ylZtMr>Y{=sX_LO`&E(nJgbcM~-oh02<(G&9elPJh9FLb$qdoc!Pvt|6A%+5`q2i zqB?3FR-%#YEl<>^b(r{A6{Ib=lMogw+u$F9#(il;+j5J@+p^a$r(%^4ND|fbtMyf^ zQl!iSbvRbZRSuM572IsraRkRIIJhWQ`G}ZvtYSqY#j%PNtz(sVIbOhntyHWcDj&Si zMA||&idGxJm8n9&@+~G>1t||Slj~*2Xx=N6?Xd!_v)aIs=CYq0qLT+YlOy1K3prj+ zQ+c=~+nFF+$c52rdu?(w97)Hu$J%H}dQ?ou?5rL#9;VF1C3YJ{^KNo*k$8FykM>Tl zp^Zs$o?iD6)fg(amhD|JL_25K3aE@{cHPxlPQ-aIw2ho74@G0*8;66WzqD=f%V^n2l!n}n z5_iiRs9oc-4Y0Oj%H4SJ{T!U590~@dxj%vVrTp7UyNNT`yK67ZU7}bQh4YC5# zsDN4`v}@oe!z-QT<1mI=q$eh;l?sXF)yYv}3vPpRvxf}JYw$FMsuRZbDnRBn*0+YnCX$+|eN;;q_yZ=*QS zzG_`)*&7AYndlW^uAqpjuisqk-<_(w^*e=utOaJk47*9Lr2g?Z}48$mpAf;oNLk*S0+c}t&H8BFxGGqE~dBN#0$d5e_!VJ~p%~6dn{e$a+9llk*$;T-ZYdFT1b@Vvu?W#%0QG zu1%EcbYXdjxW|Rv$&?R><*+adJ=uDafOo<%C1r%{tTL*&3m$0;-;IzP<&qd)LhPf0 zgG%kCM%Z~_AL2IRI5;s%j)L}MwF^5Qqh|Eu#GXBg@?w`%JGh9DU&g3?qpyjT!;|3? zrfgh19FJi~q8ZS>ks={32|X0k%9$LCVP|qAMme{&MLfwgS zAAB`Mi;$^BpugTt==+rn_Z5+0PH-7A8*zxaz7br09d}_HsSxu~#brkkE|1-n3u%JP zNE7}Oxj9#+AgL4?>Ziy-*HkG4oSdmOIjc3Hzag?Sti3F1$zPQWKNXRoAh--?l_qv9 z2l~j0gXIe9wtOs2F`oXY6dSZZkOOIfe@F}d6A6hkr5kCb#>akYz?NBZ3+%aHYtcPc znFRgyYB3Uz4G^$??T-%Les?T{;r<*YGO}R}R;k=!&61*vzW25vmVAwp_ zgOYfbPKosxHE*IFieX>A7kz^#uzWhkH@C>sSbP8<3n=vwHOV7$cZ>=w>G`g_91HOe z%g*vjtlHuK20qG@_2f6P>XF?|#eklKeG}{dRChOxPxc{tYwThy3-eK|npleDKOMuN z<`NqEYFjKkFPQTuCss#ZkKu{sI<>+ROTETO@x)TEv6@&i7R%uR&sHQYmCc~wLD^a) z9&EToh6`LDU|LQ@B2@{PTY5Eyq)PZ0_M4?LON@qvtF%kU2Lk(-%bvKGRk%!Mig_w0 ze}aXpe@vG{8}n}bU3hZnn9$hccWacTmf7uYBdQO4xk7ew^&;Boc3U;}x!p-CmH`ZFZKAWZpumCW#DklS6mTCSD(joIzKPleRV;W#np4n`H(^>PeXW`nlx%ZM5+ zrY>_6zM}_!DHgPU^Czk5+rKGyn^-zr@HSKsgUQQ{*#&DxydKi@sZO$*Zh+T9U%}1| z=m5WHtbDM`Ehoa{O?1p$+lAb3`lRQDg*g=K)qg6c4Zh z?3tb->0szKSw`T41?m)cXydl>b{t%;WLJev+vQ`pWs2$5+=p-Whdn#cMESldCNQ|D0M)^#**dU+5L65Xkeu2Z53mxuj+#4Q4 znSqi++Ai4}hbR|Iv(0-Wf)5pkm)$^s4=d;!=2F;MYnt~iD}sX zyL7pFQHIkyM57*_pzQuAqrG^SWWjy4GDf2OI3DtTz&QF0%Lj*lz!meUc-VOnXN#}m zVPRRLSt)Mn30t*sq^waBDn*&i;kgn<%;r5Z1SUT!i)-6@H{Q?q$`u3(^ENDaMxGXL zQ*&FvdO^B2@0A&{c$3Y4SSidB@(;?A&}+0^tfW?B#)$0rgTL;TdjvfCJPA&{U!@7m z|4lZ>SS5ZRM&DIn-9Fg@SLb-w6b@H38j30h>+Y9x1!iFy?QO)kJM;;Q^qEWXCa6+? zZB%Z;KGMXt7c02BK;xI>YUul_!c62Hj5#PH zh1jBW=4Z^%MA@brncT1@Xfm6Cp6NwH zqI<+2UJlp19Ij~&=vU%jF~`DZZ^$uzeq_lZd_EEn`wq#`vUF2Os)*0S!<%AI(}Ych z(gIvb2`GD5UXl%(Lg6#!Bs>f!&f;!kbW`ZF3oUTn5t%4kHdPPIR30v@)83N1WG`fe z=MQCf%%xqZE|7l|;{k6WaSZ1+6HdP`yQ?AHx+&_)Lpp~jy7dg{)=iaxMN@_oZyV+C z4C!Bv;ZD`GrW9>9fB|pIhUPph?mnF!DHk+__=_?}&S|O!^zx=Wpeu4iJfOL8%e?2F zRp!L;(_sIP(gov>ItO>;`_c;C=-2wRrhbFmwIxuzDNP~o8C)mbJ}&bl-XtB8{h?rz zZNcz&WpTLlF793Jd{3M43-IWB@-`YNA&i#J06j|p^+0!D?E~3Jeu^v>%JPu;f$Zvf zJFvBVP2tEQYm~D-7S+t|NKaH6`~S|^PUBJcr#wG*HcNnU=MG`n}wpePNRiCrt#yqFgX2%)Q{i( zQ38fS%`<2Lw^+fFjDHJst*dIljDBgNkijy=N1 zQ8CtbJW;IecvyHw#-W0qk%i}M80Kh(nP4gn9WKkr@cX>AXL@VTRJA>$s`RIF6iwau z1bHd^^{Kp9k0|)`bF`Yg;znycT7Xaulj~W1=ghns_MVp)@zE>hH*sIOkQlz2nh6-< zdm;35T<^Zlr66*zOpFLx4AH4%R)Z2>$Z@!r?d=`$5y9P4zTZqu%*`&~#^#SIKkYh3 z;GSHbc7t-}&XG%-dAz@#b`O!TJVryBBSp8KF?y((8l!uuh;xjtXhvhSzB}%RP~d5| zEbRXZBk@YG;0IX;XC=I=!V|8j0QnbD?mErYe9LX{@I>Y~-$uH!mj`k$3t5+Ba`qru?IKvC9X8<3kLW^`*mP2eV$(@!&eKrI+uo3LIqbVEUvl`>czE$^ z+<8@g6~4Rbv4U|*HJYYHCdnC36K^Ts#GBC^{>{ZG9V3WFkpHb5f$JoN28L`A84eXt z8V-l&Hdl^!*LV1oWTh%hfm?Xc!qDf6+#>MNBqB^97d&)Ts>9&&;pVXOsO)in!~9?5 z1`&TS>{nR|pSKk1hzbpJ-f#F2q+tu57q9*%8_G&8VEsPXT((ka99C6=-39UjW#Lvr zmw=GUZh<%iSX#vv46A72fwfXGMifJ;Vbko2#T2vyVb$-lmKX&4ewXE46^V}%Posqj zsf?fvI6|s%R6w~wqLdrN!zdV1NyLV|evfNDY!2U%tswL|PEcpA>ltZ29QsEtg8XaJ zhM_m`4TAWC<8H|Q0&@QHV6|RhwabCkdX3e72UhD3cDsdRU1DAku;vHRWt{@+ejix) zSRn0hJd1F$1>~DXd06o`uBJ{YnAQ;oCrooROml*=cEEIr3NTEUiDH;82f)wVd$W|M1l&+t3XnS(FCsiCSx%2IU}58p#l0MXbTR2 z22o80D4i$&-9+p=U{KMHYEd$#A202qWTRzOl#=~FSZfGyj5Z(?mGGLL*;595h zEn8pCD2%8})dN6p*^-f{+0uhVC9xMoc_T`6gWBbd6j#f@Hfyz1{;pO~ZpyxRMKy#9 zu$^WQ#dey}QrYP@30^zBp8ySz3QfUhr{leRvb}t=H6Kp|_;rLa%Fj+$SHOdSdj4Np zS=*^x+0wVNdZ1y1^6$MI2KW_4qjJdEXW9VTDLzjW+6vYJs2%2qQv;G;Y)aNbvd z-@9p69p5KQ+-`&?HybNwv^dkOVMLyAK}7drc*1V=+-l4_O(>LZU+@{j+wb^L+TA0ia}(z zR%(^VvSl5R>Jha8S5RvO-^ZInTl{(~o% zq;m?<1)HJ4v$l@0O5zQ#v_{l59)N-M^}tzvuzx)R9|bLkq{fCzZfV63EN|a%IK~(Y-!}3X_T^SS!~P6A6?Y#U4*0B-!R%OLpuB+{j<$+#POxIv zQA~2Dm#P@y@cs%sRf|-*CKt#AuxKLt|XL5hr5c;do=D>v|v> zA2S+i;gQnBn1aD0HqaENyd&yVI~`cMNozz!4>-?)0T)#sf!RT@qv=Tn8OT(k7|7Jt z3}l%u#FYbe;_nt&og?N3AILt3GuX>-h?n0G#gA5*+%eOd8^in@PQ?~RWsk#2Xycg} z=PCs`Je>~f+Zllijw!7n?H^O`FAl4K#=G*QECE$p8h!EEG@`?6(ugS}NPzQMhg;6H zA4=oFs9~m3TJmbfQrQkJYp4^IH^CQ{~qvAWfA8t(6PlCfNmG zTjT=VPYqD}zCa+Bb~gGs;hyZ0Z32Wj*IJGL9_`T*&nZE8@_c-WT@gMHGg9E~B<%<) z!|4vjweZTsBcK~%AS~6WCd1o!@Tr9ByH3fdL|e#CHd0+Nfelw^!%iW*!dhmNQ{Ob=A0Wzus4ZFE_^!rWxfKto z(H`VOSb^rgjriB|q(Z)^Gxzy2d8*18D$By_-Hq1rLtWzCfD*KsEWg#6msFW^( zJ;Q^_r1~t!+h@wALzj{KY|~~UQp;d{s?pT-Af-AjYKrc_DZ$ib){wc$iVJrU6YjwB zL~#d}hyA^bIP@dff00K0>`GwwHvYgD5ia+^1qVHYicD0`pr)i54~a-h$93`;V*t$Q zV~kb_M`6HV)iW|J5xNb-xnSWj7gjQjAN1#Xfa9L-2n z-I0rbsXI!JO1H&4?!z)faUYgx%Y%^mVx}<;wr6zfG=x}3&?AcZgkFHpOw&*)S;S>X( zm1G$ya+J=?^v~-s0t>{AFuKUOy1=X=1xn$Y#YURks0*x91!SkT3gO^l5yJQa$B|J+ z&(M}6ID`8lQ7xg`XdD;KiFV={iMkM;k-_z3JdaWy<9UoI#`Bmzo*!;EO2XwaMy4|M zF0gE@@fuj!+TuTJ3z>Ux%3L?hr~{GXjr-)!s1QZop9N|6Cyj4Hwy|GGD4d7^%|9BU zzZASaYp<;GBibqWbv_$<6O|R~pS3QJX8JrFDBV?l7yo>3?}!m9e^`-x)j49e%D>N< zKL%eOVu9DRkT=9M5;Br)Pk$-6$2@WmW$QflLzY_S$ceY3BS6F?Y(Zcl;r8;foQ*9%k z2Jb7j5f?E~ev>HWH`_bL+y@@Z_+yrF8al6H%NQ!!tIb=FVOX0h6$^oVvyCAl5su{H z76EVEM-$J0QP`%v8ijl27$1nfRCt)^1vMApA`;&oUw}i*XC&DwdyFHy227f7gurXB z#3hyV04tiz9BT^*PWzH>xL zY-X6`J@koB@|GDhq^pA;mtISaG||(+rK{pH*ukZ12ZynaQ*1EJDGb}`LI<09ip^RF z8%**V>o&z@p5h|Aw`X4#9<*~|{c4QRYPa{!7NPCP2H02+bwH{eoLOZwakZgTr?J*W zvp|OyUN@M@5ZBa*6I7pV^&_I#RzK?Cu+?#}Y7H*gcp~otiEEALV9{3X%D(9Uk?TFK z?9>_~3_e?Dj1V_SH*Kxo5Z3@}z1~4t>xK2kE?lH7bkia&N%<^%fcr3-D;rO3l@;lq zwdN-@9GrNmR!jdZpF8WP^3(kDCvV18;Y5`+&OeLIV6n=|OJY0PKzGWHL>`=e$VkN3 z-c%A228aUv=>H z{7u4>d;UfeQa2%No6+2Lol>1We+eO`p1%|fe&U)MVI^Z7?s=Oi?s+@eujg?lo8amB z`8$l`Q0!6N^Hq}lCov1scjAuIr+17>&}*mB9glToJ?*i9D#Sm)1{x(R8))^Y@dm~T zSa=wo6x_KRJr)K|j~f+W&jgIWGE~kWM^0rp_83lB(^bwCN6ujUCI>TG=1A1G^q9)Y z_sj9w%j+upWxs6S>~}_Gp9;*@li$xO`+L7^vM6bGR1wiV9m%9*xsK{Rn0q?<9EyzW zs9uJ-2Npi(Q9lC6p~zOcdh?EOxx3W@zahb2scGKP>qumOT^k>AVQrb1tb(H8m~+?} zk?b?4IO-ZUr~5i06$iWb87;~+qEx3jRfNKQ#;Ayj!8?*Cy$7j2o6{1a*qoMh^fRZ? z&l@v5=2Y_q;~2bjK%3K+j_QLyIQ2!s8!uug`D{lO6Kx@80k*TZqq3dv4;TmJF%8jS ztiaom_?OlIz8uj$MJUnbYgdBqqmOQB8DO0Re)?zqaG6!LgW^GT%3 ztRd@nQvFsO_P>S5zpfkR+3n(M#=SC0^JuGh^wvD^mUy&(!>A#LGLIQWIFx}dhm1b* zKFwjO;;>kAz+2?t9`4)?&!0iebhm0LEm>mY9D-d)M(?{OQ}u^dIfa%oO z{GM?b-v-1|!(@}r%4A~kum7^KmnzUbpa9QGV^rRVfIMGNGhY>$-I-^RRj}{``nK6{ z=>$Hk!x-v4np0>3ncbNu5b0^2yr8BV1YHoi~a(>EQ5O00-)I@x9{kt>SP) zalkuopPOCSZsoVW+PqQ?idSdu@Zz0)9Ueuna);OHf>ac&KV!5jSA$ZW9UcOg&!Ec) z3DyanX?Le*L^G<-{oR}>?(gPZ{9H!=PmO7w4ljGozyo*Zwae(~q z-k2zdc45DPVek6SaLYTRi*gljeP%o^r*%2npkbmk6U zCfD?Kx_nKSIM{{##d}?pzc|>1!&rGvV~+Q{JK$-W`dk+1x<9MB|LD4S>*;k_Dn<3# z&jIy$oYzTVz3}@uS-;|#ZknRnu9@QN^CVrrCKjdL32dMG+y@hPbLTF;ZXQlu!reR~ z1*zfC?mMHkD}z#<-JF5|%RWKaTP^X*a;T2_YXKVU2svK|jtAyrF0lES?$mm=%_c*re9^>)i24Y%B< zQP~4YKjXCe6cql3bt!t3@9L~$epxuW+am{Z`}hdUS?Td#j0|~`vxX^*?XC*rYbmOK z%Xd}%gZI2D;MQ_wqpr&0qOo{svxU&LqPzNfrkk#bMYw04O5vXIsl+|AD8<(^TM1F_ zne47eZH1117|mP{Q>wFP79$wgGZO!5Y`ACcr#jp-vx(xKncdZ|XYO1xW_o(&tKRrD zrQM@;X*ho!_weLR-A8Lt><=y8#fXGgDi^B`wf{6G%SXGa;fKqfzi{~N?5a9s%1sOo z`N0fRnK#i)Usl*a@-3s|rb~870tXKe;Rl;^RaSgOSD)gKk-)6@d7>VJ>VFxDuAM|X z6<>vol1Z-eFjC&;DwSi!zbA?n|K4BmOMhe6>y^&p+s1fkB24vtmpfe{cZFK%L_($8 z_#l(b@wYp;CrUfxTBgZ+fAwc;XlSmQ5Um^$*6A1=TyhP9-kxHQI=@EX`R_$ zVg`>$FAG-xrbGR5-B4^+e;85a@c4(>*j1Kjr}}?s_5bq9!u>vp%CY)6M6vog-TeCf zKEw2m$l9ifyR?>8|AB745&5QN&JdfuI!8P}>;k6QO&Wl+w)wKy!vH*`01%HsS_!kr zhQl!~bJ$r1UkT;J^BTFwG;&^_E3R>VK{uXfB_x$L^=hpEPM5^d7OInIvMuPQhL?lO za5_3u8vCYBcjl1b<3LFs-;3v06=!54@T&k}W=~WiuB${2(?Zo8w?h2FNgUQ)L`IpgD zi7^>N6k{@`2V;WIMD*j5w(w>(^9TG)CJNmYA{*K@HgvJ&)E?@QNsSujBVsCq4K?*6 zlbA?zyh`W-7b4A9!HUu&^3fi&03Q!iqHr`G@Ie{zC^a4c<%>O(KUz}Dd|G^<06VS$ zJ*ohW6IK%LpfZ*homms{G&HCF=}g5<{d#7KaKYt<*g0i;s?O28D%UrY@DLAY)pKT5 zfEv*_dT=pIwc7XOVb_Q5^uWapz6NF@z7(O7XyCT*sb4A;IdnBc{bUM6z@5>>{eXlQEgwr zVP^ZKS^FdV+21$DT+Xgi7%^-d?0sr)}-P&Y|(PBY4O0c)LXm*tY&6if!vJ z+_a?ES*Aka8FL(b(!`wLF_j0Kn%_%TDj)ojWmD-9JzI(ip;e2yU|4fAOGc%t1$Nm~ zWEfyCHB*(nWVSG`$d;)phG~WsC~A(wzchn2Y-yH*p9}Fg4^pu*O&9AKP^?`mEEe0! zY$wO*5~KV|;M1ShW)GRCGR0ij+1_j+*Q9cMg}1qF%+_)%eu4|X7b53kDGFabG8D8! zH?Ta>OqB<8{r#%`QC)vO)sKMG4rU1a+}3O$Pis#5i*o8Cf7DE_C?+>G6Z~kNX3`9g z`PWP#YbDdX;^VO)4LUD!u&md8(s1 z1V5?h zGR-F8K@9>fcQvcYkW^*awaI4Kvft^2RBg!UW;S=#q*SM6mqIf_%MLFU%*2=@KWC0O zOHA0hKP8H-`_o>2)?J~8InQI=U-U3%!jYcZ5&qQ6{lQ-;n=4yUPK^Ek zX0~(Pp%$G$e2>l15dS{7C_KbF5(5UI6HyF8r`~=blkYUvmX~dani{y*H$v zu@nl!`kJ-X*9RB$Ge^mZs1-e2Oed}ZFigM~I_Ye~;{IliT%=)`uVI*te`%a|SZ=kG zkLb+JewicX^E&<6-el?WFhWP4(Z*Xc)I9tcw)_aIOtxkSEJ;Hb*>cblTpmWZAF7S$ zR?Q)i8QtHAqFa4LXH^|Y>Sxx1x&|I;pFo*TxCfwGWOoB7BT!|?A7Z9P{6krc_P<0i z+W-2ay(I%@R-TMshZb2H=<;d2>|t|za+tYP)=Oh}!^@`?Z41w>j=?wCPYpLG$+l^1 zWbi{KZVA)Z^JViiWoAKZrZEs@)0CM-6LSV)C{fYyPL|o)RhMX|-eGCV%))}ng00b> z%S6g!#U~NPici9395cz1k!G&P%-W4Ir$hKSt^J}j81|Ue6(akYHKEr_b|rXxv^h?0 z(ikiX((XpWV5NLUtN-p;kNUf``avrx_2+5zf%vle9}orb_&BqrYa`K4^%rRM7X%YS ztN%IWvHD*S#p-|Iul~qvbGS$S5);hTU`^EO7o@=}l`Nb|Cz@lV(MOG|f*`HQK5AUe zoMdj4mHH_65{?yU{tUyvG_F3%G1Fzd&TJHr`Qv09k==A=XI~}{o#0Kf#r&ipv-+TR z4B2?1EV!JDYeh-46S7}4WWNMgf-PniRbt5QCyF7vzmK2A{CUX=gSD^VCc&Ci{9e+( zP0V6&a+=vr!I%R5r<*gN$t(@ynm+VOG7lj{vIGo!6+f4Hcm^uG6BQ+2wT2oB7`XWw z)06j^+43OXoWvu5S7w^YYBW99M~$Z7RT-P*C^Wj2io1wAV{?uux>ZMQ=DcD@LFh^u z=E|oGCr~S~LGs`$DWj-l4Ad3MW1y}Q#Xw#42kL>@=1h-mCCxEkfaCKtD7XDUvEbxv zvjY4$7eOi8SAlXnNYiEdDnq+9&)h2O^kqZCZNRWRv!|?v^}Kf0R_EclS!Z62TUIg1 z&oj%=iR)1C+%}T^b$RR%XZdvt&4F@~%9G>!vd^D`ubh(4ACKn_(q#msUo-2;<$YDa zhKcO;J;Gdnz#J?e)eN>P2KzLF?R_EsPh8+-JZQF(hcp9B^e|xC4~_!&@1LrFL&N$a z`rN-4i3)?}OU*W}GDJJO^p@_@TfuSVF8!4%ahLu^6nE)wef@0z#xe}qc$(+}4=p#x z;ks6=Fmv!tgkB_W#uQKZ3 zHCgF@Q5uRwDiL#5I+dtO@X>0skt>2|r_uu3BRdwsWnrZ=D36sMN)#(S^j<%u7p}#f zBCT}eb!Hw+1!c#WSYy3;0pm=s+EarxwOFgYbpr-#TUc!g_bUJB#=m5@pSaCV`0_GA zBA*M$Yrn(nhYMNGJAN?3bY)8SRLP)DY?rJl& z>Qa)L@hsjCDZ2H<9^nwT&MXfPe1hMESWLy708iEcPY$j%16+YPGQbsyVt_05^8@&` zhwhj-Hp`kxJbiyH^PW&EOT_JY-cI_nj4}nm*~7j{dn|m?59TmqJHYj zj*s?J10U}h?_T{B-a%#R$0l4KRVNcpCb1dvqeLac*hkG4<=PYNM7RN@?KVe6Gzg|7 z3PVB8$CSqae?k-k{E0unwI1_X@af0QY`F1+2Kf7abf{$#OgUzULi7`8eSa%lBfbyP zN0M2~UETwk1IbIIyuW&BiUm10Y{%Rx#XTdOhqhJWTL#;3j@%@py(+^7RHk*|D zi;|rIa=$P_?L!q=yT?92|Cm5%jA(5oGU}p2W2J8 zm_Q9PBnOF_05|vHPRclqFG)Q?}d-(29;WhJ!96CT5MR#HlU=$exlu_LOy17VB(+W>k3Qxd#b#}iJT{5oJQJ9$g1 zeqE_v$gqUN>UYcmGHjss9s}9O))=UKZ0Ui#s{ZY`86z7FWIv1N9&$fMGxAiw{;t_u zcG1<7RrP+ldh$TnAB~@`>GQr>OODX>ll|-W`T+gi99@5=s=r*<$6H#|zx*NY&w;K! z)4%$=CvY0tr>pN#)eq_FcuUn=p2SJyLtT9jSH~ZxNjqiElHciymsQ0-bj8a9)nO_6 zO)iP=vGbRMFMAtiiwO=lTg(UAV!opuVT*|xgw%KN$R}ni*VmNlw3rjxVon6_Kz1VW z#DFcP2~lh@O$Isq>N$_Kl>OA)0=eh4wWJJ!9a(zrMr*NP`8o4`Ie3s7Nh!oDU?imv zQX^^Cd2@}NGDx|OiTJD?x6#MJ`ir=?dF?Z^lU$~=7W-xW{kfSU^L5r%5MN=>J&R}Q zC|ut(n>G+}$VcKs4pr)PCl{0S$j`i-u7dJy)cI(}5BYoB)3o+v}ol>yu7 zY`_)MRhxFY>dBDHW*u2KT}29*$dSUhK^!TB2ZaIFe}nsv$%rw{2N{GEcV$XCQWPN~kW?1bRq;1BN<3|Qir8Zm(Cb59N=ihFWkx}zuY`0KZ3mZv+LeP>RA0atZ* zPE6+m+c@}Z!GbHe5waj%_2fk270{FO(^XF{yK0V=n>0S_u>$Q0ti~qkt5Pp~Z+4S= zb>?ngCfj&$u59CDu|5H_kQ!!SP7t*a9{kaabIm8(3Cwtug}mbU;BvB!U!Xij=1Za& znJ@j3xfEg9cuvAh_rP=cXY&cT@r#D%_jKAW$$`9&@wXXo%&{uN%3pEs*@A`FJbSah z2NA%;XQZ?#Iqo-;eu5DT>)rGUgBdJ*=(Mi@AMfKQm%Lexy;+9~&8eb?BP&H^Nf-X5 zScI0aVx*(M@WEuG_{%=bj!%sbAM9Jo;&0br#teyRY^EMQgRh%?#X}B08x@}?9DFc| zJ?0JEuYXao*%-j)^*_y2al*moJ;mk=2OCVH$G{P{@L}=~ip_gIHf$Tgfn?kGMcYQP z!Pt##8zDoGDh6l&!Yv__Qk}N(o3@SLf_Dwin3aeD+eT%g*f#LplfQl8!;0I!r%{P_ z%w5p0gvBQ*@F%Ex|6_hFlZWt7!P}kxnl70%M0NVd|C$@*pdsWv5;r|+HNXYRX<_x0 zX;_?kj~-LXDV#qPPjdU^ZSRV&87>^>So@T>)Se(dB15{T@XAaWu}VY!O8)0%nV5LkZw22kTd{P6*j!sG3ewum(;SbPT)&&K9Z9 z;ggw>I&Zjt-YeCuk#dgCn>mzmTaKTJrm27CP{&3a3{?TuOh~GQU}@GEhL(hsnpO|F zPxIKLcpTC^@RqRO9%aSI4>b!sY3E?^SS_@h?{w|Us`ekc_T`}zidF=xj#U%CRNW`q zQjb*W+q7O56=3WsoO&y(Y6cnrQiB@L4i!+e1uo&)i5iNJ^WK3y8O#!cp# z^{tL*30#I*^-!!3XJmyl#=dB)HGX{7$E1gYNdAh! z@*Pa_984nMhskIYuQ-_Co9v{|amD0-)@OSx{`l-!2bTkWT(&i~`q58S6KJf;kBZA} z#pOpO%AGhXN`%1v*7)cRKcw%#<5oOMQ421&K?rLM=gBXg%IPy0HDG6RD-mBtVrjFaqbQ{Z!R4j;gr*LRF`$s`%A>Z`J$oV@q6XxvI6rQENHXihx1a%=-8~ zF1NbeQ8hwM*>9=(hgAJjj{1ij^}kZ}5Bb$!(Z(8p-%jTC|KR%4%H*LS{!n#GXIqid zm8nL;AAXguw6$i+m`pVQ>u2&nYOQL^`k7>aZDdznvp(b|`@rI9AxqaBs%lQwHSw0F zg?YN-P``?2lC5cSv#z*7ReVfW+>oh8&VWuf}{j^SEEl*Hf%q{PCcL-O(~`bGxDp-RXT*Orki1e?g(DPRG4feDB_=cGK=w zDt;M*nZ#$YdEwhGUM84Cj$>61D@OG3F_H0EYW>lXJb-=$A-HGcsj?b+TZ(uS$a%6K zpPEG!3`(^cyP8p|(~sA{aZV9$jo`kPo%%vzz)pP;QS8(gW%)Vv(!DM3A)7aQTXW%H zKRs^(eskv^GY96>ELIL;`dC@`ZD~|mok0i(Vi@4!cSBfTYnwQ%ka|5!tpr}qQa@6S z4~;`1V?K_i^QyoZM*)l+(8UE|nZ?*_K%ohnJye9Txk=O>Na>GZ#BQRU*lf&F*lY~S zQSGP}8-bM=o8m+yL63BwGp(Vs$+^*YZeQIO6k^688<@3 z6xCp72F4VPN2r)0wy#wRY7Mrg%Pu3-s7uCzH0`y6!fbRD1!M3v)k|Z{L^(_s7_17& zb|ZKRDZCsRj*2KJ!O?^yXE^2))dcXTUYeF`OtcdYoNs1Xqj1{sNX5pnnu;+1Ylvb1 z)_4I}ILz`a`48?GZiNW>B)%|>-?x>!MtGL|^v~z^QJTIZm22rRlD$Kj zY^#RM9I0Gs2Pn)%hsf;b$oqB08LHw^U2(=p<&!q)N;4dlB7l67d{)JQQN@s=E6yZbPD9j~i*Q`O}$ZOFSk z_Q8g{T^sVtWPxnRD@GypG8CU>C6qf5Xvi3ckRj)Lc&L&5FjZkgeuOACw6K5lVG>hCQQ{qudirPwZ8C^wf_S zFueVVVtD(H_Q1&+J9EUTaG{k+(EAL=a8@Me!z=W9CrYSx8y-`Xb3iz*fdPcN~? z%6X%ex6FoxOVL}-9j(0O^GmG{q+7$Y7RwO2EAcNa!T3?sGdlChfJ|OJ9Mzd``ejDI zn3cFVLtj!3#;&wt)!`$Pwa0M8;ADeI#HQ;y+z#lZ*wh~5WfNZ(%_wy}vKi`NldjlI zP)WS0gGt2Z#SIvE;J0H)nsgr5)Er7g@R!i4hN_ASt zSnLs6DvtGb5F5m9s>25HG*N62Pml34h<2MXT+jw_WwW&bu7Wm*H^->VQUM%1<3utn0`A(nZ+giOJ;H55$x9wAFIF%pc%jc06Tqwr!Rn(ZUJVSCbmT6;=Is+eUx8hu< zDb!=EaYp(}alYt#h3>erVyC7Vdq}!g6um^%^B^9 zO8|a-Ks;xykmJTFr#}jdl2^;bzXV{febx|}r!(h{;~8PiI5i{SEuqJg>eg{;LYRw1 z$>(5wLM}Xbllu=_)nw~&{>WAAN8&MZZxBVd>a5t-AMhhr!329&9^kt&!I? zpkD`R^%?lj=nzG`*CJpsX_hpZcq)SvL;G*t>i$T%gKG;F^xexM*;y%b9ul&cvvD$wuhjB-& zKXAme^q%*1_Ka8l5}_1^G7x?u)uilfj-V^XIIRiYh zXhZ#zR#|uJ4Sax+?_%*&_P#nxeRbI0f;V;KJUW2R**>g>lSGWwGeixCOQ&$&&mh`~ zRZ6xR?kPbPK(46~uTmC6^%_wO)oTGzZU5MM&=0EYPptVc@Qfbxrw$G}V-*+piWZ}F zDoA5r6I#_kd}?LWuV8o}g9_&?edN3_n~fzrcx?vY0|x-#Q6mgMr3pxV2iMP8Nv^Lc z)d|1}4Zw+@GBE)4sXhY`O%wwVJ;C2rUjNK;`vI`|b88_i`9hDKb`v0GiAr1#6k?GlA!kh<3y`zl8|;B2Nm1_Ov& zc=>DV5Ba86eov6r4r%3kerwH_XSMRDwelzMFO8nn-&u?0FDersE#_Xq_59xm3_T_I zVS+l*R|4N_rFXCJo~Kc)%K=F6Mj5y#9l#wS*%-J66OlRsSH8DeyADyR6S&!)0_AN zSWVVMWi?xVu|~*Q6WMBD_phEYG-aY1LqV%TQUN-V?h}1>Gm2VZ^&cW?6fFG>_b0Q6 zcBP(c;cFFT8Spoub z(~owQP0!hF<9cnNj2?x(6P7%<<=xU!~P0(2(#1u6ucB>kA@e^X$8;bsBdbpf`6OE zN*)j%!r z%j~4($KF=iz#CB&)-skT)-rao#}nv9!h4Wg!TwIRos1u`Pj&CT9wJ*$rUgO`I91VJ zO*i-(H4X4%$pa6rs$@4Y>@mb^Bpj=1M=iJ&hx84)R7=E5Wx7o6ftQJN8Ba^`F?88Y zq4*OVzEkaHbQwmMA$XaQecHU|o_QPVXA|q?+4&Y-e+#2)L^--rGt0S&<;;FLvtFKE zmG~~tPT*?9Z~2Vu35Mc@`{UK@CHVb{;??b=Vh-%Dfs4&Qs@w6HRKJ$p4o23n+l8|1 zm9UZQ7IfiagRn$MqB|I80mFY6SAzt{$ z(-Rsal}Hx`g?}%rQas)&Ni3qX+^1VqgKhQfve@GNHSL)TxR}?2;xAm*qbmGUphgp< z__rzN5XHaHXf{Qv1YMq`%L{b5MVEi*va}gq`1i~PHb;to6HBx}ihqvjexmrdh6;(g zL6^*#^m`!uqb)UCBE>&iGMgy=QHsT_kXlZclXN*tmkIO%bpGglcpIenBkegv@u$Dp z3?j)Y+R{bqPPCuy*dG%Xa51OuJ*WzQfx3EIr1(q8XNcnO;nt?lg7OzfzoO4XenXdt zWW4al12@x`+V~@I#XBR#UkB^l1*z_IS(Jj8rF2=*6)$V)5_^-bcjz*|8(#RkBn91( z;;(VA8BZmvUP~9P3DJIQ{Op#cyf%>x~q@QCv0+ zDSoAP9#Q;u=}$!QOOwm{AjPi;{z(+SO!jYIr1%Z1N%tbfF9t2BPj6N5J1gH1#jkDj zp#$~&w!%50_{4ta0Z8$2^$&>RW5~&L+>}qTj!j33k8S=!6d%%SK&QAG)1`X`UV77| z+EBdk!|n}PNI@0>UXh;XRHMswy6mFM)AZzlA83rG?dNQ|yh?kdy!Fc7VInz;<#bU1 z)LT@K(?a|qvq|oj1yg;^1P$idK^-`L-r+6yfwqVW)J#_?Dy!RJC10-j@w($ zp1gpIIa!~hD!e<b z`F#Yr@Ue6`MVGU52_7r#N+9zwt*_1`Us1ZD6;Tc!rE`+BCFNWEp+)T0^^9_%-5TAdhS@1uqs+W#E^F_NOvt3hcLw zb%BzN?8+q@P%i(7ay>ZG)NWa-jyEA{3dGN`t3zTFI~6WAvX6^oDw61)^1Lmhrtt5- ztUDQkpOiTLon2jK*M%cJ?27nh75W2tiM9=k8{0MHMBUy`jqO-Rd*ivilD_uv%Y`U_ z8(GR4Q|NcJ+rX7LyAA%nl9O*{L;N|>UmDoq@*&OlK)jzGn*#ON;M3zD@vKjU4L%jt zQtHg2Ek(&o+{i$v+Q=^95dO=+Mm|T0v+b5eSy=A*JWWnP1zdJDU}gV$~5 zW+O$N;YE-b84tB-l|R3U;=$&~jV!6b|u zggv~vrCk%hBZa(@sgDypEQd|8L)^R9mUWjL7y>!1@Ryl==F(o3%WrR2cZiN(0>@Ul z4_oCze59-%AUn6WsS!&wtsU)9=;5GEZ2q5`Skw*``cO6To}&p=sGg&VcY-!?^nYq%P6uq_mTKaL ze-jbzbzcU-?2n+W;aAKZn9;A*%c{BFvCQ@sd@P?lj6dP~W3pXAHpZ{H+QkOJkdAiM zQocTlnM%JS$Bn7wO{3U3^nVsxfvaja$WhXn*!L4^7x1Lk)YQK*Z+V$m( zspJcj(5^aku~#}cO~#B?b}xru6O~}NH{HXo5zIipPO)R;qnhCkVweukbhTSJxNa@N z_2K{Gdb69|NS@SOKU7@b>TV}ExV~3}>pTC&HMFPQMBdh1Zz--9d)kQ(t~ZKs{o}v5 zHtA*8l+n`|QdxHzBz3U|K|wFOp@VHL%=QO1avJye-GObAW>=O26kB{Wvo6h^=U|vt zgkkD`F{HsQAJB5}g&R-n0LUcT_(#&wZNr-f1A-vPZzrnCKAs=^|{O z{4ch32iVQ!mzwS8TI8Dp?Dh_}=ZdgB^Z&E$fQM;w2ieK8*mT`jdl7>Q>2{QZD}F2` zpu@!U|LCx^!FFSjpjbE4tg8;OTRFJK7vUQFUtA|<*sXBI&H`s?uE|5~jt;KFif|qB zUtG5ivzv+ait8H9b<%LVorCMjB3zd-S2-TN3;DvHQ~iBm;M~jMM_iU&7f(f__x4zpF!>HVXY( zd5E8c6M7gN8SRm?@o2k|V?HXQvI6Gtl9ZY(i{n=S?=pW+8-oF9l49S^!M@#CyS0OT zo1pCRM+G%|2K@4LFW_In>3KziowK-6F}#h8&?wDT&EhAvyjq#(5i6pnY03 z^^v2g6O-&Vj;1~c+SI$=rWm-~8UDZ(nYCHD?e~j_;;P+{`_u$k460TE*w% z?eb9YskDlQTqYIk?J#0N3Gwc{=3%&-9;BzZz5HCeyiCw7HB&83Nx+SnK2z-|hl=sc z-7zP}-gj4P&YFgEQI_V3UpPkTH_yV~g6J7utaMSi@f9Y2x$)gkEw}7{-(78b{7kzn z{T{RpvuD_)b`M8`zXmq=6U5CavY_EUet8b| zNA;P?nySFg`4}CcXDJV>iW$WrGt3AQj8>##O<>PL3dk_=(|>98 zeyG=~2WmO+<&OFG0}h4oi%Xss9cI>R=3ULKTpk8e3pKm>R68AT`oKsc&u->mJjch_ zp~@^uWmV*inRm6a7K`l0@>$)+GpY?7{N?EvaU+YG*Hb~8dfeL-eyMfgGHnXIi2VOd z;fuv~C3#i1{jF*n7bqdHB9A)8*J~cik+0R34i}x6p=u zL9u*MC_4qVo8)a*euXnBP5wuGb5YQRH}7fiI%wZYTnFXN@~(rzpdigKi?%w?(?~G~ zl(T2u)dtJ2MxAzPo$zS17s@lM{T8d+0=0R>(@>a%S$8$R@@tX(Db4 zKmI?luL}4ob&d6Q6?sRu@t102-+KFAhYkE0$o|^@z`h1lapN{c1IXHfW?l~#Zo={T zncJ@KV2nS>w5h0h7bT3+QrA>BifuDFF?)|97Vh3Y<6(|T}9CH6ZV|JH_ zN?m+6j~Oqd8tG6#!TAs1HzUpu+QgjyY9jL$yB7R#)TrziW9(PWJqzm}wpTdxcqV8g zPyJUTtVfeA81;Rn7~}ijq{p2texC7sQ11A%QvU-=1%KkcUg|cxjx0HwJ&7!iUnZwj zCwh@MM<9%^?gT7i|9w6inGnvVKPDmsMB9ai~P!K@^d-y2` zNLEEMuAr_68;}qY5OhJ8qtsObilV4of)SAfgbx=*5!V$&MOawG57datBJ$x@Rd-1B zOq1b{RA>5i|LUF9@2KB0d%JvmYgWA>h`Om3NR+lrP@DP*HII#z$UuOr@avKYVgG8x=WPt9OzxIt1iYb7AQ_)QgpYT!+b8^V4Ek!nM()wrf~4p8*v&icbZv@S>S3w_&#r_ zA`$U)x*O6BMX$sLs|(^-fRxwV66e)pOZ)eH`!22J_( z#taMnK@diR7dCk(Z>VlqbLd8l)6)VE1 zc$~)S%eSax_|TMDXl(Ohcuq zW{jz(ISuV;OFvnOZVA?Ka~KV1%lfhR7v6eA}K&v%-M0z2T4a z@p`O7jqj?CuFa;dH-#>4&Tnpra2U*N3|6`RQdF+prMz@#7?t{eO+|g*Q-efO{u7M* z)urIpy|40(MC^2t&5wg0K5d>O<3Y>B-L^qXv>6^WQPz>}Uc}~ecD?$6$}{>~I{FA5 z_k3tu3N3epFAWF3aSwj}CR*_5M0p_zJgS@ak?ng}<)~v^I2~*EV$bOrOUF|}2b#SE z+B+#ul*AH89Sd90!9DL)|5Dk;E=$Kwp#!_g(eVB`WY7hDgSR^>+S-aDG)=vX)0U1O z&DZ;Ws%{XmZ*m0vwiQq=WXvH2FYm*#br$Z$gtf^?uQ5BWm_>31HwA<3%O&0#o_%*T z7o0QCeugAF@n3I7G#Dt*GGWFaI3-J`Y+dsx1}VHAcG{3HN-V ze4^hrIYhzz;S|JALHfy-FY%MJ%F?pZ(t@oZ8ZaRWrXEyDLd%K}Ez84cdF3l?YWpk& zpGXDM52-YPy*C8=!*JLe4l6%?akhPfjok%%k2PBg>{~>`qeoSH;=#s*md5!IRlkN) z)p!Iaz>7^)U4<%c(X)@*T6BRK9%PjKbk|ye#~v@Q?@n#KFWtNr+YY{6h79|@$I!Ij zNpY}NH*jS(7V3|wXwg`Znv811q(3dR*5jll(t+=kA@R5_#dV&bKzp6^5^!|+PU*0tX5gAxxhKL$+p0G6$aa_R!J>etzxMCU&v60O$sl^3{Tlc@wbP-R)&Lp@kdo`fCanAg2lDS4lw;ERV1?Di4g4h;jnl7ta=(dOl;RS z=zCf{B>)>j05^vN#GX z=&*&@dDdnjkSKjVbhMKQwJzNst<1&B@9eMGH5y{U>qkNvu0QK<(wBKL0vnJe6v z`*5$TFI{LhOaF);gejJeNrX0Az~AQxkDhNAjd;^<=$rk5h4&o2UcR_N%XV1ji1|z_ zm~6aC44q+oYys~fj1j<}$8(03!;amK@Vi=vPlfIg+GqS`!Q)Ov1b-qzXNk-}nzchI zo@QjD7+W{l_=H-!@d%kRN9&=W)T5f$QLluxO5ZCgdAFHChNEaEPph3~U%Yv$fIwhJ1h9khAXu68Yredz8fQ$**@miGk$J zyPL!{Cvvn_to6+g?j!BaqGXj6% zIxrW?JLwE`@g37i_rS~IPI`)KJw!$6QoIa`(!KEVu=%UOyqt;Bd3ZBDTBqWrPqe<4 z9*Ne2@bW>lz8){`7+ryvaWT3#URK2D9wA-0SJ^9&|KYJx74x0!VC4OAuQ-ZCc4K&ZkNX2m4-T_c6O z2$WAmm&pm&VGA@L^58~q%9F52#+6wMcU}cs-P#8+iCV#sL>(O`K$y)?)k8cn?6hHf zf>{oSn z&z7^y`@r+NGkiJ`wrpr?9?5O1_e=<>hUdMyM5<(V$Z z0n8@37N#ZZa`_fhOMb&|3BR>>R78R8E#{lt4V_Z#m4nGApTn>e?UxBTK_8*N!Urij zndY3`HYg^id`*ERGEK}>!9$0dC{0CkBcg02!|WA2ou@7XL&v7-M5&GmEgqPis*5Bd zlUwjS6nX&mf0}xLccWKU1k?kW9U!`&aQ?{ z5kA{n%$L~=o6_t}jL9?I;9Q!%LPnICG`Jo6vP|u!9oA!IAd_owNAlq*nDY7QI##Bf z`8Hlyn{ICxOui|D@6&azgkmNR?%&H$6ZWeZTNX1r2RDMmO6BAI9i<{B?6iZW8M;s+ zGIOU$_uL4hGwpSWsXnWqE>q`A&CL553!k9|*(l~N z$+DLSb9-pB9xjpMS0i(5CC!8%+J(j}=|Y%aA89j4%mZ2m?`P>Gsb?27W$6-WMwsbC zdx4lpxlnmZ**gKu0NM;wvUM+6XP6E|8$)mmT?Zn|Y`Mi8Apm!d-Lf!Ys0>Es*t3P% zLodOS9J}dbD$xUQAV(L;Ok`fsQSj#KGWqFZk`WPi&7?qWN0lX$%G4v`y_(@k@NI%g#lqBMenosD76Yjqo|7_nIW+;^?>zPS`7qOE?J^M9y4XlNPJnhfkLH{3r_(Jb1 zI<8Hd@gv8NWY|D&ABDo$JngAz3VM?0ku6UaB80>t0%1$&h@em+<+X&q9u!LKvX;(g+!}4{}6_NNvfW-Kb$li{kU(wCK=i-${UH#3^$NQf9-19x>*=O9r_KW`KFZ$c2S9lS&+9sX0 zH+t-m;)wX1VWWy4eKg0h`AD#1>FJf#N`vN9a?viFsp}YWw3Qm{IPOew9P3hP`?fR9 zlzM?ri#k_QvmM<}H*oZDPE~7>mI-Tu9BOHMN4Il<>UGDkbM;|GkfVHUh+5%TbFMj^ z>~EU}OM@I+UrRu2`Pt5nRWC%VGp_ckoC|3W== z(@}gOQ(bc`z7Pl3f*k21(;U|?RD&O-wNuzyjHA=V`LHv{(XBKhXeTyho=|wGAB=}D zq@*tds1c3{m##tcU>$H?F&t$yF5{Me)@f=bBE21Hq2S znaPgs36)?UGTW?{qwq(6$Ae*!j)#_K!6~|$0bd29)e38zCKkJ)o}M$ileV71{>B9o zZh!NdjGGoGzg2S6`TX;?QLsChtO;)f>*H}M7S;zly1mmD0z-r|{}ASE9dg!9MLQN; zZ3OWl%#!~{l~j!5?$t;VEwyKc3Fy-b4l zL-hU(l>kQ&-^*yC-gl(`9;o*31#*KR*wLBa2SGw@_Q{yq(orJ;0G@A}VWdJEf#A7g>+gxw&GD%!(e5h;I;@)L zICeYB?jZS`W=U;Sk;75r&p7*hqKLar4)M6F`R5QARofAHttUKIn{79$w%G1i9h+nF zUlX9LHhby3+UyHe=3tZPrSnk{b=6z20kM{AzE+!Ev;9Bhnz^u-u4KTj+T@l2`-u}T zw=8j#->C@*A+IC|c_saxyA#a6sn^=TW#&k|<|x0L4zHjF!qEh)YCFoeMLE>H#ZaM+ ztMe#T=Ya>t55=?x5%G&=EGl0#Wl{W#)gHhIz<=m^s*Xd2rE+=tyNF(d$)qW}itLveLTy;=X-t`e#2iw$Km_xlwE_kjEDO|6$DMh)xrwBW9^k2%-uZ5LnmSKp}PiWuO;ts#+pJ1F3&UBxoUL&3w@L z_d|C%|$HOU$2hICf%T zR&CCoi|b0vIIwq&nddMR<_760)zvI`tu76Ty7~as1U8C7D3`9&a~@RLu&%Bi?59H6 zJJfFBV4ZH^uR7x;8Z_=;;B<<~P|Z z^Xd5ksy3WNW=kV#oumlm#Cn62#Y63l9p?kocBQK5$Y2%b@NXEdD(GW@>W&Iwir%tE zh1)BHA}^9mgF`8q>V#TqvT8t8G9fXPM%l`-SP27ki%tttQ93n9wNh=RLQAdyv7wwf z)nK9a59LItM(Ofk9N_V^_#g!8W5Fs!O(I&j&dbJ_=^x4o5z(9weRz3sfvu)Oj&5fL z)gd08=2HAIsr>As((`lT^w^pzCL}&#(fHD&(kIbG!BkDMB!s%Nq#jaReWX?sW8n)o z2kJg`)NHjvU#O#os&|;`Sd|h~c{_oz4L!ZCdRrZr3&#cq!4Z@Y12rp@12tEDCzrN7 z90Zp_dDOl_e0inErJ+1(BalLjftVnrfEiK>lp?Ezanh!WZPV1JdR4eeghQc}BK5U! z^$H}1xuY#UjMxDDQDJG0)Ip(;PZu*(t}c$iH1{_)@_b^AR$=$$B|dE7;1uY`2x{X( zWQ;D0R87H@Mn?KHGU~q?A%O@!E-p&N>xEG&kIsns7;2!NV@q;1bx5a0t4*-l!~1gK z9e*f|Q>J@Iy4~*6?YsBy7GYawC&5u+9?vM%os$O6_%v|gKN}#v5lMV6*9T%%Upgbc zm$>;R#ZxvofIf+H^^ zC7=Pb!zsx9-V|@Fib38`rzWaLRS&%?Nu|3kQ1my{=M&XlRm2zU7NR;`2uEI`9P>w3 zg2-@JYVc|i*`f*8icp?#0d?hyVVQ8DJJ5vdZ*on}3$u`Q$qTc>dBU}$e~Nli!J2TH zajgi~3%*pjj#Y=_^@`>yn5SKOMJlGat>H57T0zoFH(QWDOcfbv>L?rv=gH59;gl-W zUOg;b4Tp0=JRL4GqN~^hPQ3un<1$q}{d7ZBAN~&KnG_N!3m`H!1CcfB@jT97@5?}C zM%9zKm%qM{r2=)6OqC94^#tc%&%&+BRyFmVOw}Gb2)K=a3oURP0_VX93)jXAHxQ-@ zWRgJUSdd8s3D@s5Qcf%!`n*t~sJH32wpKPpPi@^<32h21K}WkSf$S z^KrocGuN84&;sURx}2d#>kBPZ-x`ll_g<+mCW2F8VFaf_22v`df?k)W>PlPnIz62a(juX|7?I{VGc+ZDv&G< zghW%nph%wjDKm@6{;)WKVZ*M)^weOOq3e-`G740{EFXC%WhIXmLh zz={8CfMj3}NCqnCTitQmb*D3ym`;K`?<>gME@~`PigJ6jp$qz`ATV%A5|%2C6-rk# zpmvnEDZ-=fYYN2C(3B|Q4baepNF18*NB^%o&X@3%c4;1n@-f1y z0yP?*q{ev#p(Y6L6TEm|AYIS(>DqDst`SGPuNMfO5$`+YY==(+yZ*BQ;vJDRtWMCs z_QJ6O&xrN$QU7M$rnmK0WpI-^5dN<+|GI7;FDHVE(X4$V+FSdTqwlNzt0Fp9a$ZvjK7<=75}t3fkz6E4ie8SYkRk(T^ex6ky_bI{_0T$9TkuYS27_2IpAF ziQqNEW6_dF$64ewL~ zX8=z{^E70fE*OT1@%-`1cCU-r9S#4Oy=lK?srR_d!@ruLj}KIlK{F_s@$kQkG{DP( zU6^Ze2X4pcK`L9pm(e`@f?&kx7nG=Q$Mjl3xFjA|tdj7;@?teoCAu#_Y<*b}G$vA*qo`Myiq)%zs)o3Z zV9J(8nOKR(^Iu5hB)cyQG}0YLPH?3Aj(BsLBkQ9?-|2J1REGT$kz}Mh8tobBS`Amj zV03-jAW`F~AKpR5u_}FpYD*VzGf%G@p=N+tpT}PS%6KW`7WU{>Y}wnN2(I_ zrr>ECZ)1I)if^p1i=S4eIv`i}wW*}`ll=7-=cy(&4ibA_BjHHw4Y%?TOF@G_6!6%@ z&Sz8%Q`@HD0g7!oWiDY2n>w5 zZ^sCuj`4@0^|s#g5V|c9vESc(`W-P!Eyh(eHZ22IYn?tC2duwGah%FBUk#G3`}=e~ zTp_yMmh2m`fwQ)E!oQ~lrO@2gmQs<>6Mk(OF_PwhS z^h2)ni(J6Xcy(6ydlZ-ac!AdSFOc7accLl(DU=!a6h4k|P2Rn(Atw~Q=yMdkN4-N$ zChurTn!KMP7vkuRiNz8}Z%nL2Z^!X!jKZ~Fz+_q4SI)sI6tTKRxtgnIKcODOtsJ^4 z%Y4^ml(%y%2Xy}lYASA!a05kI!7wD2gL;6@nW$Q*$%1|Oh!LXr0t|@ND~d4?93IHL zSc&S@L<-kwO>qAQX{(2-bc`3I6{vYSUue`8G3s?vV>at)D zxUkKqsLr^F<7V|w!9uk-SykYB@0!78KoQP&S~bv zQRL{s(^PYNXCg^PX%x#DMem!Yo`t+P-fnFl$9Dzt^zrGatUMi1j?1{_`gpk-3M1oq z5U4yHn6}H$VYM1)0BdY5q(Vg|_`S8|pc=8tTTo6Q0q8rDnY34@-kX=cr#`KD8~owR4zt-RlLEd&>)|8LX9l*ZB1N`hEKa1QX-C z1%hY9_)$6g%%_24_iaGUVaB<4+G-azI?l&XB!+lPb5^`J|Bk$NmGp=OY6kB39bbYO zA}=8rR064A|G2>N0^EnenGRpx(k2*!6TEE@ns8qmU>hh3Emx>jf+2;{c`FYk&!?d_ z|Je|E6f;92Q9++yq&f+SQuCZ{u-8%J=ayFSG6!jFPsNdo6`{GnX_reODVp$pWi-1jP?*bVPQTQQ4KWX$9< z_$uwtdR;>XXot4B-ujYCw>Ppkz^`XAyHrW2DdtfFH`MsrGs^3+J$$}mSK{usqM>EdzIb`X{pP zhEhkFs=xkfB?b}_X*xA%m6{EOi9DSurwSrA-GBV5bRX$R3ky?sJuLjqEI1xcvco~_3-jayN%!Rh z8zN4qA?Acz9P%1+!lWTbYw}x=s&Y~yPg};XQ~6MwL{1JRNu01~T`^48UylM0Lkiv?ZUcJlUUuD~5HOaPs+sZm}8XwKtP!BoEVR@8P`S z2W0a1n5yRYBz;};Qj#OBVXi*^H@3fLx2mdpzKJ((D<<=5#_tkUvSLPm_oiwNHIrpw z<9#KW=Rwo9sKJn!%nO^?WS#>>=@wg63ur0CTo>{DR#gc7h1iFQ5S1*E<=ZSpmNQA; zJfyN41SKOYPID6em{g{F7hG`NwWvT9B+$+$$xI_60$RefWSr;M)niZNF7&KqefJ`6 zdOgqbh3Wclq2^{LYjsA&=_lV(!LT@452+5B)wrJmoIjXB`s7<`F*f6|`36r{PbTZt zmsP$#|F#+dc*4pb_l{}}2SroxL9!lW*gPt(rqkY0mG#3rR7G`V#}hl$5(THQ6_^lgXT(cB8xo zG^Cr1yHqId|K{vc;UP6s@NSfK&*!8^q`ms#T`I@E*Si(H;78Ros6GP3Ib*0K6X_Ik z&Ipv?qj#&RZaoC=QIjDzg*`^)=+F14ThKd&J)|IoJOsL==$qrA9gG%gnVZU+ zv^m&|B}nHK79=ahB}mu(DnY%VC+t_f?VYKfHOWjN(>Jj<@`h@4R5cD-Nj!6Ct)dch zze>1QPwIIes1*BoFMm(gk+IMyXpIuRIaYs!v3MCp#;1GyKE&=VWn9vk z2UR=xMKo*ozLLVR`1L`Y5La%%Hvnw9`~*(i&u7}y15`}=AFCMENZ3hdK7y_gNysr*c@Miw7cO@h`SL0sw;DzQtw(tra3bMV7Q)d4qC zMW16V>=LHn-3B^52u#ViXzF17>M=DRzF>>N=O_m~XLA8-)6E_{r==iV$6tKN2G4na z=QFY9yB?-K70I@rAl1%O!bP3PN_a| z(Jqy4rcKtbeuVd=N>e2e+F>Ua2P1XQZ*WiW@l>|8pU;)^-{2Z@PAX@c=Ta%#RDK4L zeEWUhDV*f(J%#D?RjIIwE5I|UG7Nb)l*)-GKUIdI3DmjMJV1g{nL~sMt`HeX6-3Xi zQ^{>=JLZk8szXoX_Qofvo}uWAR2hoCWT`wca(wX_mGJ+g<6Npl2Y1ZTL7ifBOh2Q7 z?X5hWeu5%cv+qDJ@*YFCU6*0&q={jp(!2~?C(XyOL20_E6Y!vzqKkgPTzB9c zZWT4s{^wOwzaZ@0vT(L8JdgXjZPH}g;e92IQ{9#GxHmZJkA%`)NENS7wEtofD|XeWz+QbD9C^ znBFV)EFS&vs1b|i_>CGnX5^4Z`Rvg}GimBp11q?ceZnK>ZdP^^zujIv>G?mZX0@Ua zAh|Z0N|K!Pg&$QUOhKdI+#~lFoL6=GNfnElra-fF83P*YhkjPi;%w`epYe$s=$7tr zOk60ByN0u^K^Bd*(g`~dtvuvYbw~5-s-DtW*DSRJS`)6uSl?1hN4@$6E~PTkWuDSb z|9C@%t693rO%)L`8|%4b?noGMuq>T_69@RLf3*_mc=$v$z4=EKUTX>S!S8;j1%1SXmVTC3xS3nWqd#&QN|`w#-@KY<55OX z4FrlZ0;$Bx2y7^$)RZ(Cr2;+flbt5XEy4|pbi*PACZp71cQ$kUrE0peSx!UFW~!yW z@DFY!9IFLkkkgQoSrykBDqFAqTkXNS`dFi$zOh7w`ekDmmPho_um7W(s1bCvsoncR zLr!2_E*rE>%&pTlvEF(IbJ&(URu1z8P!3CPC^>8-^?^@wku+5197Y9~i}j%jqScIs zUO8-4Lw62?4Gno1Qg09go+P%8xcILm_KrS&Pemua_<;3f>8v@Ga31$W@grjv&64M> znJ3O~#E+HVUd)DZunM=lT$@85d-z-4Q08%A3Wfuo@H}plf{wU{O?rd#4c)7#OkJj+ znttUlZZDswCL|&K(vYWhr?tNU8I@T%XXgayVg-RVr)gy1Q>FMU{4bt9&$3RM*w1>m zAxni?87>zKq7u7UP=>e|a>o;)3=gbNLvgWaH>|!JR$pMQiBQK1Fxc&9Co4b)m!CDy zkWsTuh9@~e^9-L+vq=U`hfIAw5UT6>m7o*!&yYD$6YS5@Lq8o|8QMT;hRlh4u576c zD`08{&xs~w@EZMby`>5iz+xdTbP> zXYe%2&!_LzeozxKGsJgI;@4^3B{fl*eU}O@-|a^g#CNkZynNTl^!TnlQ>IW4X8J5M zpjsv^=;QzY=v!M4t`1rL+$(!0_2?RXcUFfdz{vEtXHuq{g$HmikXHGxKM2nPp0IoN z^GAPfmnlO`D_to74%=H1M*OjNCJ&Ig$Q&)bO&wnYQdEiVQv(Lsdwbf>%Ovrd*z>%h z;)WBDB$;j^mDmj@W{Mj=fQrB|@4Y~niR-$sAb3F^tqDERouX>N0B~fAJ1s@dT{{a% z^vPTE2zDH{hzRz19tPgb2>YOm>$KGRa-^#bA)Rm2YjzOS9aP&I^G=e7+&0dcbk9oB0 zv9hsa9&Ipk#A8E7l|A|xE$IKym+M2m-*=u)kCVtb_T%17ifdKLcDYtnDzR%-&6bcu z?kMy7#d%;Ibwn&Q4hnXoLfohjLAku?i&%Kb?M-GJOoH@m_6LQl=y>=H^0LJVQm_R} z&KBA11nm=`82V(h6ZFVtC+M23^R}v77?Z8{4>U3rQ}GdtHxe-!KPy$Aa#!UowiQBM z;->Nzn{RLALh;$`LiU!#htu3c0=3lhlOfLDf=J>tiP@6161}$sSvlPQH3>)c=MQcq`(e1o9*7t{#H+E08goJ7pKDO@GS~P``BNkqS~rA5=~Xr z^%}zv{cRc)L0BVESJg&tb%i!!buCWE{Fl*))s@N1p(zX# z>JX;l-0Q^*+%}#p#3vfbUd$})j`m{koL@!KjVSiJ<2ih!DRB@N+e+8ZBqh(N5-kEz5O{kRc3rTSKH zoeHh>>1-I{R$56TcoHsHN;^wR+Y2`=eVz66a9#A3(*(xiow9-)$OLFi`oeoQ)pDQ> zK8nD^IxgavruaTUL;+ONb6Y_pd`_D$H}tyPAAOLC9hnGsExma6Dth_G(#tQzkJB8} z7zO)9zts%&a-B$`mv1e-eCx%vM=w(d#Cn-ZCDzN-#y)zv)Eq{*_3~IQtXG;CV>rpU-%JmTM>-`{8sA+C$mm!!f zI}5da6Y6H;N$y z@Aoor3IhRI+J7UGc*prB;vMI` z%_rV5lMw73&rylJv!6yRnG+bWs%4x=) zfXqy33;orj0vu}r@d*I};;Gv@cn92r9_vQ4g}g;>%5$lgP#I*QZKMpRxuqFud7BOx z1_|~zi6jQmwcw3z!DI^zv+3a7r zxIqaF!5KGIkTm=ywrknx`(_-~Ka{{49ILQOrus|t`n$e55?bPo&iqlR*BZ@vIQv~M zC`DoeAtrheYwE#eIGlAagE)MGmN6~)GW_0*t&VTvF}1&&N-?h<7wRK!s&D4TCkGid z+xvPy98{RP#!aR0ME_vw&gS9+hjqbdG$o$04}43f;sa`@-Z~Z?5?Ny(xFx{r77*Xl zeGHX}&jbUKJbv(?(DBJ&b=}X8p)8vmY1;sz(0 zi5r~owurbv3qr6P`7!U37DHyK0!9`s1 zI1Ew;h4?|PSl}d`iXxH3NjYsh1mOcFOs7YzKgi{1#I7i<>%J2pU;Qnu{2{GCl@^j_ z@tm9JFcE?vxP|1}KfLi_`k#ro3QTLk!&9;zhqp2z*McXvV7Q}Na1eC1(8(=0Q$Mb! zPlkRlLU6@`d(^@ex6sAQvDI=5Q_L7Zj@k6Snncs9?t1zZNVl7$VyC&L1zHbpP)>nV z`$!^*<$L6c<$HJ=LM*?P5N!EvRAS3-YvE=2_uNKbJPlrf&rmS>YQ>=z`uZP|oilXz zX<*mCO~>`lwdS9*=akJP!LSI`3&{ z1`$FGbrGk}fKVQY8}kKx&THH=sPMLVVy{em3e`Oh_sSD{W#+NQuV@4hg3$sj6X0YE zSjNBvm}Ozg7z4;#`DENlSRiUc>ngtE*r-&qWI?zJwbiiACVyA0_U^`u>65Hu|o|m0k>m{>cwA)x2&%?JKZs)n}I4QQ}?%5!C^`wFMn zC7vsb`HC8<4==&~ws|gWZYf!HACatw+mYsuF?EzK6u{<|oKmq<3K#Xgr-e&a3%_|< zP?vPka>xUtmBi;IH<-i5S41*NGi;Vj(uah1n)O?uTKnkrD9#;eP^w*%N zy#uyo*>f_&3T62Wbu{_3W(&3v06*|u4-9j3;eW=Lz~@37vq4x;U!5J_Zv z%aZLaZx%$hI6|;&@l;~j;#>RJ?3?voVKia`Y=!*RVzcJ0T`?4)gEl~r{&*uUv%9yJ z%-0+nv<%m+H5+c+8@S{sY0Ux;ZLL=?fh7I#CUoqnLYpKsd|vEAS6pB&7V1Jb)t&b? z%askSCGYLR9x3l_(Brnc^4_P2qTQzrtvO}}V-;E+UJ~Rv3whH*o+D%;+_OOE7=#ns zI@_QGzhP0n4d+fZ+enn+Ycbn!_KBySc@N%k*k(;Z@q(+zrH{ivd^LvA9W3+!LF1_h zUFL=E;6}5_eU(TiZ;UKcnD!v`I?dT_&}=>Q&9^a3yAerDp3_>~Img=wV)B;>!6siq zB{umId~e+=b4Kof4sM@byaRgT7A;C4U-o!Y$G!_IaOp=B$(L_pLzb!cV@velc;tIH zZ~sPQKiNhf53nWaWAEV-`BLvGCK_!+mqAklwvRRv~f9T)ehfR>$*1gG^tiRd?&p>ipd1m;P z-7pNF{4Ho;By{-74IL|mX~9Be?pX=uoqX>W7~@355(>)ZH#Hlj^Ah>%!3(i z+40NU^2}?Bj^B@S&*egV*+u+hKlFmPg}Bv4oc00Utvn*cPncMF3iiRzY2|;28zOlh zLJa&*DqL`(4t0e2O0Q5sbu# z5b#1KG-xN#JU0|qiA4t?8TT<=NUX#@Kc%g<4>pFXkpdlNLGgVGSFcE7zpppM2vSdb z8W_e6VAsfj%o%*ONS@bnYkU`D2JA9?`F@ctk&MD~RWB zCj@)MTU26?c&nXwL~>icSvclX7~!(^y-(pQbwqf?g_rFU1n~_kHuR5^^ndx0lDgVfj#7c-8q4Mu5c0})jq+la$(n= z#O?4?g8dSCn_^hZ^1FIOp(O*`{WpPr>4K(yg=@6x9XLFycF?P*8i}fdEH&`-!fqo_ zH~tzTAQ7)oPOsX5y$#j0>>1-RXeG!N9av5%u%LL(_aTN@s1|M%XB=;Hwd0I)pdI^H zkdqAQG^ck!AE7ec8JrWm_%jF!_Iv^8G*uFhJJ?P;R%<={eBv^f7W-9g~VF@(iyl2@1i)g%3F&KSnjo>180@5&f+}is0jaQ z2XZIf!wGWl*|#=D&#Dd*Jv*r#r+JO|*{Q3Z!&T7^B8e<(I*2T5yn7Q_?ht}yxl1LM z<*vx0k{6$ck6cpRJP#8fxT9prz>a$PRU=n(%v8Dv^C7mQ2o%`SEl^BH7UH~8fNv5qM&%<%W1C1A2VJL{|*}2V~8XQ^6$tB^7HrNo*HNx^ezEd zKkreA_48gwA6vijJ?_?6V@d86e2(XYXbC6y=dQq4aKTc|QBULNMKuXO;%%3DKjJv> zhX{R3RB@etc;@Tp4YEY~#1iQewdXX0J0V|}biq%!$~sRZ5$Q8aq|dy1Wsz#d5`aaD zqY{f0rz3xcNSF7{{23l{Nfdq+hT;pVN)0b2(>rEW-X`g+KGK2r<+k-|8Wg-$q1^3drVous#st64d;sEu3O&i3nTAt)Jcq2 zKn*(08N_aZPPhTdeqD(qlHzTf8yHGWynAKmuC<5&Ea{6>Vo6{0k#x{a=;xC3;!T*0 z`(z|3PCA$Tg8Q_)Jwk2pG`~xP+IR~l;uE88c|K=()MxtHUvb;}C(niNT^CyX2BW~} zOrfCeF%drNBvU2d=1KUqmhgM2W2YJ2870`OU-})Q{dN&agnwOxf8CoqiR^|1VBs^U z#KLEE_VL^g|A28W>5Fco=XUNaS*pEOf5Isk&{=}IJvLw&w0~zdXhN*f4aTt~FuF4b zbs7E0a?Q6s3Dc^xWZ^;7lG9v398sCGaF{N>4WW+Fd#c*|({+)oO=n43ZHOe#KlI1@ z1hnVAir_5TYAUg4t9?aV|Bpwsws&wRXQw6FJ0x0(o_!Y{g-;s1m|{KdGp@h!5`BKp^z^~_(P5Bwntx#gxF`vJ%DG-ded2xVlc z2X%fGBNM81VTB>8xZLQ4Z(uPsx{HkH_*85aLv~@2gfBn@>al~2aC}3S>9h+Q-G$Pg z`darhjJ~*}W<0(YxgX!2!2JvtUiH;oY({JRw2B+qmyv*7^Kj`aI2mfI7|Q+`sl;i% z+y(XfnO<7KNVR`VB(cqQ%QoA+6(_b?M+mmfdMdGP)_3u7yAu`h8!1-8ym!Z_p!-%b z3UKMcT>9f?_?|BM$XeVsz~LoUKUm4Aru$UJheeNb4OyJ*!Nx7GIM#(-vT_x}uJ2Yh zTH+Q8E98=>`5gU-U;2Vb-1oXjhWUb;bDEX963aTJsu5{FMkEpU{VwE+In})S)T^o* zO@o4{J_{SnNQI}t_<0wZ3Fz`bTWeid%_wq7d#Rc+2GY99Ae!8jZqE(ZFIO`Hw9RgG zf)-sR-jcB~OSs&wEZj!B(GPle5is$@7&1(Fm;j_Fe51(DSiZ}RnOX`X1Dq)*X3^~mYNJuJk*w)hNcAUg@4=}3P zbE$$TE1|2zZ32-bZga6eireFaXLX&R68pvpx4L-ZG^~a((xt86YZ#BiPoga}>iR(A zQ~1kL(f6L#{}dH{Ueg$i&tzYyg%Rf0ja5`x&#Q%=6)(j4OoYnabhQVOid(-_wOKa_ z8)T!F6?RDCPf!dL5-p4qZyqeq1piS|E< zB{o9yMZ#na zHe?y$t#0f|XX|1leMVI>;Sg&?7laxzzx1t5GA-{W@v(#2ahg97UpsV_FeA?X7Li1z zmEFYTE4_OYnf@XK%k(#uSf;<-GO@`Uha2v-_@Qv44EGt*>lsbKzq@NG9;=@WH)`n1 z^^7hmnl8#b!@s**xTx+d+zSy#PlXRpM4)h4-Ps4yb<0R&5Ppb^iCtVo6=fv(c{iW~ z;*6S5t-Ht@Lrpu)ark4#=s8hFygiCYBCowW%j;(+lDK#j;pM5N=>%et%c;a7mv?uW zkwxAWZMdh5h4oSVB_i_T?zCT8r2EDgDWrtrJOU0LCvKvQY1{P_To3WY*|i zUj$oV3AT}1!rLdr*+xAg&S+p?MModvSp?A zpai2BA38angkgp5>1Qi&H9DtAZ@mD0bge|A4ZZ_NHN;&#Rm`9Qw&**Fm=98@N+u)} zutj6^v?PpQ++!kQJ`*9PKysLG3*^H0EXiwA_fB&J{@_iC-N{C{J%~smIXZ~klyEbN z9Eb})MhF&rJe64N@#s$hp5@-96l1iA{WsnMcS(#dO3g|&zMyYMxFwwJX@8kW_->l< zDLpJn!n`RGZq%34abob95DyhdhB_q;(|v9vskuf?{X;_|5;G%rNE3rY1w1j>sApwh zs63!oXHrVTI~)I4ZB!?cbu$8KxYrPMt!x*EW*A8*aV z1w7t%aO2Z^&>f;cos?}Pqxu-1-owIwm5n<_cx%OC0H6P6`~(jkNhcd&%6?XmB`)OF z#+cz&dXP&6xygfsr9EVq>wSSPWhiX4T)WRHeoCWq|e_xerJc^HhGL#G#+mn1AqI&9m6>a(WyfB032jPd1`3i0_ z)y~5x>hFQ{=_&qFN+iqHNaLLvddLbN3BU^l(5EMl{@C=mfku$tnQ!FbvoqX&(IjeL znpy7E%=6L=-IP}wrIqKo6=b7DD|FcdjAxhIXW>tH@VLE{+S*9NFJmzS``irhWYkv~ zWVe5Mh~0unO-@twLfr@HvNkyU1`6jeD`xPP8{VL$_W$J?qqq zvs61hy@SynMhbBl6QNx%&QgBfE$HHoMokr|xAZm|+M80-PID%4+f={Z(Wq~4OeB#s zx|fVQ(OwJ?T*jTn1Y%(|l~`EqE9`|%hI_eN(%D!9TP$JU=%ttbf&))zXPk@HU1<30 z_qrGvu-B6K4Nr%AMB?^cjp^{E2zOkBJJL(rUp6|zRiXYMdN`uL?q>AIXvptphX`(ANk*UUb&|O{VlRb@2YNiMMw1s}rgML~VINHkyR7-gIxY$bNmjw-IgMLnJZidNk;5Tv&Li*JIBw2*dU~NhP-D$=*KBTc^-) zZ)|TYG#03<#G$;4XZrzByt9oS9H)y4aRxPaFZgTK4`+b?P{pQps$;qG-@VzDm-REA zfEs;tdMRY$Q-MYjRPCb^_Cqct_Ti0-Sf*C4+Q+(AQJw&`^z;OL46~(F$mI&SCBAzA zW|{s%?BgOnJP>yd9wA~TZgBJRWO^T2o{Z_^S?0`bN5Cxd}twGVI;B7>BU!6N-vjtOM1CWN^qK&Q6lrMZc$_;*#9Py*yy|7l3u>^ zR+XfeTZCW>{YoXa(64=bEc9@(XRUj)827d9g_2&X6v`TxjkCGfsH$rWGg?4sq2!n< zg>J*tEo8%N8iweGg`8s=6jBIPOvFm#hw6Fzpb>PGD{c7-jv$dEQ29fJIM_uzIRfKz zk`Ny+6zxBUJ<{S3&v{e+Xo(R4iwjx%I8@}1G?K76{E<62zKo$7@gZR~4^vk-aqKjA z;Ex%uZ;!+!bX_8e7AqEt7Aq1-M!dS%2dxSZ5`wjOh)S%*L&!{kXMPn~=E_@%JJyyN zTNRwQ)Oe;)64$^oOk5R48Li;DXwdJBr>AQ>=8rNyQc$5UYftrM?cKo&sJ#VUjYbeA zS8DSW{8V7?u|_du2{FB|D5_OoQ52qcwP8mEeZ@o5`?81L(Y3}Iy}%Sui3OTqf$*GX zY;_(nBH>vJS>i(Oe8lJuD+RgKLT<8v8NY2HzaR7{ugV@FaS{9lhWQ z0ITo_Bg~W574lbBrBtw4-nd3q>n`jJzM+G_7LY7-dJWp$l8)cm)8FgTug&gZb zUY>*-8tVl4s)c;VLgG2!6!>m3a(lo+zUo3wc@q0PE67t8@+S+4=X9eK{!bknTm|hAn5xo0OTHX7WJHb~kn2Je(6; zBa&pwQ&y%t<(0pzOxctWoGF`8i8Ez0+@448Nu=S#*5HGYS32z_E9?levsNXY@Sf3X9N_Q*gzb}Ocgg+iU{rt;Lsr-^Zk za1*8TKp9s{sBx#cjd(55A1%Uhbr_LE&aMMxGTYUg1;oo_c0Ykw)DNh{qJH2ORd!bY zc+s;L_Vi+-6i$o4@by62SuN5lmK&Aye2oJAXvzDvr?VeO-if$KR?B5#igO|o7r$-n z_c9ti#B%{Rq*kFGZV!~no=+nz@d-=fpQ(AL*?17L{IhPo1h>h4Ad*OY(vtY3Hxq7& z+YyK*Zcinaxcwj><3767v&O8v%(#uW(2)72_%Y??%Z(%IVLFqou|e2`W!JHTc=}MX z!nlcRZMU#bu}lg-1-lZr%vX3WEOA{Jw8|*Jzi{J5Y;#@kUybTH>bdZ#>%#8Um^;7o zT);0AqTaBN;cJXSd||=e)L;7M8Y2<>Fz#vU@z)@U--lkoSAgmamSOd;L7Y{mE`Al~ zeHnv!v`QT;qgB2D6@Ei#17_qK1rQ9~EL`ef!Rd8tjj>QFz~L6~aSJ$HfODQj;4>C* zI0IoSYICA75S9z_Wed5{LcT1>_LGb-c+Wz!yjsg5;Zn%ZYC8&hcq8ulL<^agLdFo1m)PcMuCL{3 zn%j4fgySRR6Hc@B5cIA`^dE2FDtauD#5wy9k_lRWZ_kklT2Df-XZE5JduFd8KAxGl z+2fgeHycmjH_}lQS%^T{5ZeA2p-;VudwEaNg{Jm0Y{_!a$wOq}u?5G4g_gLu^D%b_ zucK${F@oU7a50B{V6lXKOtIt(Jjcm&pkBV$h=Pn_$rpje90zTR#H8MuDdH!A>fx?4 zJ!#g2bcP?REk?66(Vy%ylKrxYBqoj2YQK?VkMvS(kyvyX0XPhXQ;97)93Nuv8h!8V z_iQFT^8xOVOey9e7{5W3|Do|N%s~O@)w_we7Pi0n85i^2f&8kTBH!0A{Q{ z{E0CeVu#8Dm@7XuM$ier?4I@+rp^9CWntV0mt^>dr1Yv3Tbyov7Az6 zROTD);d<*SBUBGOhd0_cQw34z%ea`NAbr_OHcO%X2+s=bPbF4p|KTo$x`MQoZgt++ z0cFG8L0Y0yE*Q^3$#4nMe=Zm!>4bxH-bI`gEy0Nsy}Y(~IQb*K*ip?^U$?ku1k=lF z{(9Rb+`?LqYM^Hu7h~6!&esj+aHUUv!Cq0?`@<<*_5RD&y=ULr6m<&_bURcR*=<4g zjno$2wj^mb>Pi2@rNlZSi6$JwMH3G19>uk;5rQ>wol2~U>y{=;hI7%w?L?jU(hj+Pm z>BY?m5&tnlu=wMt#Nv;~PqI;DS>m_<*_h@Q|JKiVhia}ze7uFZ?5c4UZ(*{$vpqd5 zBYB76jZ3$vZ;C`4=|`To@vbgH%^2afY0ye)%xQi>j8U0=JzC$pYDDVkzoD-$qY5J8 zOiRR>M3OjOW{G%_@GRmbDzS){d_^2`(|ExxV#qIe@BJT-h;Vy^uD%op9QI}Gy^?Nl z%XkT@m53YP_H)zbH-#(SYQ6S{@eNG0L@J>k zMT-+eq^Lh}&FGEzr02Fvn)+{NuQWWun?61vJrcVBf!vfW?5 zXSBl?D6mFwl^5%$KfwPSH#5SZ!ASOkMEVgg@I{jXY}kk^orP1|PO}I8nBgz}&lc@h zmnb4^MSY>NEyrHbyMK|jnCi2vL#f2F4jt*^1O8wei{_pVwk`N^MUqlIp+_6GFENtc zqCMehdX|W`!e$#sBdTGOw6%-{qJ75-wwCH$&xN;K7iv|swZ|Q1H{!7C0wQYa6)kAz zrG*iPUovo4xy)7IrIDJSi=0@=mJbhxu3zjDqViWXoR3kszU>JjU-RZ+rrR)$T^dk=81K`f_T7#auxp7ITG&iJtLrb=!V-FbsOo_7LnS z)eF|*GtZ?wiQ+6+>TjC~2U*mnex4paLXPpTwss1zb%QfvxNk(zlO930`_w1fZT1Li z|Cp{i&3}lqkM(mkY?=0th$K>Nv83AK-G)e2t;{8rAC*`tKYYgyM>6vFK-*f9O4Y&T za*vv}eh^b8GnL3P`Mw5CR65nN4T8)vwxC}mHe+cnL*J-nD};_^?2B#7*mf=HM{MU^ zwTx{STIRN$J)0VGnkKQ8t+Rq{vGxoiiAdr2wmi+!!o9jH6Okqof(+&^S{Eeo;P^~Ktl($-kg&GU4(TBLhdqLqbtnV3m zRTSA~d&%}HU3Hq@5Pz@g4Rvkx?5l|+vdyt%o8#Sv$o4%UShg!vV%e^^Wpm9ypVn(b zZR_EWGWQJhS6v=vn*_fiD{VvYb7=uPLc(o(K(*cRb%gD*Q8B{A*247u`nJ$%TavK6 zi4I?9^u!ojAN)r4 zu^8J%{Cf>5(Nfd5*4gHz<&#(vc3LUI!J>qOpmFFNErD1ahIJUk& zKz|))>((bT7^^g)!^99gOr^sEp?IJ_dv3lQjtBbdzUJX*JkVc1G_zvyK!3H&yq16m z`tv=aCHknjd5jLyrH#sZYm6-%+1nX!8#9eRdyaVpKdSAddh`cM%-zX&pue(VW~JbP z{!E3rhYs|Y7|hZJc%Z*GU~Z=aeV^aVPsIa$Ro)Cp!vlSo+TA-^hG=K8#>T8+|0T7dAZwzXoK|Cxy&o&G0~9l`*^H2SQBx$cXtt3p~(wEX;d(c%ZK(n9W+^fnL%# zTerdkz1D7Sqr;APIyP>N2YNZ!+|ULO^!luLa56b`2Rc~nQ<>R!`3XMCZ~=NxTVzEh z0W4_>2}bW-ng`n9f!>faS9QPxy-kMiN8y3qn=(J41HEo!HtK{2dK<@FO9y&2#cb6X z5Ao#i?veQ`9cZ(})Wh&VYko;PC6tApri0Z7m3{gs z#DLGFwMewvm;|!ASU^x(Dx3G{K&wV`1|4XrW!|C#tv}4-5}ukk`P)bA@mkVXpx=-LOBbd6vaYErAT?miVA`h zr3u)OB2w%Ef{G|;XjZU*sfpzo}Lc(%vc|(p7wlvrVWmHU#F1{_w3lv5Wv_|ak@?e6aSXLZj#=W5f>;W}HRvWuQW=j!8__jO}W>hPFS5_ zR-Vb{m(uIup59~XgufnMs+9eS!l6zC4xh@I&fBaSd3s%L=~;i_7it-ytF)j@)zowB zn|;(ZLLb7K&xXVYx(JR0Yz@IwkM zh+w^{*`9lTNM?H4=*FJIKTM_>5uWXD71HJiqw4Z6G7HnL8F$q36f~&lIn(Mv&&Z!b z^;@G=J=z=LS<yMYK7F0VD z_G(7)k;YaO8|g{Tslz{cN25H`VwzL4NF!#fXUEmry4_Q%oO_)pr3{o39cjEGgl~Gz z9uK;=KEgBo-9%PL>?f)2bOw1%q}65>Nf#s7?A0%_n8xhIXr7q8_?6hpvlTrOX{=3C zBX!<=)Yh~5a0Acb%hf%@e(OOCBaQ7trm{@Jc!B52Z_8;d+TN!LJr}7}p-NQGcz*o7 zJ?$|>wbN7hMTyG>5sxK=QDUmTpS@_)*abWuGin3jSZpQ?Rm~3fJe9%1~iil~s-C z7`V+(tQuMKwoL+j$Gjw!Vj#@(cw%>zB@9{zG06T;1}qbhEYr;z`eRb<`S(g?)k%$D zPRZqOhC+k2Y)}_jDuWBNfY<#3?$B?P4HRy6O`}}=sOZL?=Ni^hE2T|O2es+B+qVfY z7V0$-3Rf)DyTag55QF#slK~3_B!p74^{%pN2w!olXE1}>p6!h)I=0cv%c)oN;~|0V zzb5U+kBUy!IghI-s#?o4jP{%&pVADywE{oxWTdA$M0$ z6V~awLRC*%R|}&=s(Uu~xtJay@S4@NOx=rgY!y{M@Wvc;AVkk%bUj4RDFHzaaf+iS zT%QNcW851}^!$mnWd_ZkYWW7uo%dB$IZBn*2f|bPeH$E0?8LS)nuV>Z=S*Q><(5Es#}szi6Mav)5jaBFw4GC z%S6HOaBg#nt?^^?`P^k=&Mv60&(>7+bZ!k*(H+JGBq;t<%LGL|y@ooDZU(6uc|zZH z>6tave0n;HM{4yllQYV1V^p*aH5~Z+RsCZ$Tz)!~VB*mSQKrk{2k}syXF#%Nf2Xo^ z29#&=t9-+435bbWXV+8J2<6#R@x$>0KZuFy16?IX^`o-U9Ft8E4BYQVdCvXQkPbz8 zX1rWi*Q%}7>I!wx0+S=eN1NL5gAV6uJT!{hM4SGW8EyL8U#Mn&VwJ4u+cqLTdg-ua z>TeJ#UXPDeg)~a=BZBZ_{tIt}K<(V!;`Li~RXf5JIupf02!FGu$EkVxaDunlE2P=@ zapD}kEY)rcs`k~}R|^=2i4O&WD-IK<(E z70|C!^pHe#pX#NLC8{*<4eszM+MT4{QbWuQw}Ys}H)1@;U#sg`Ji07J$8ba9D@WS_ z9Jj!G5D?(A2nZqna7c3cEq9L^1SjBZ>M!<06A$K~*%A-t?2JuT=M}92UrwH%*6kXr zw`psPWY15te8OuB8i5#4kgAT-p%|0BycHvP)E>P!O^u|}LOlrua8C1MjLB)#Nxe8- zb)>&g7)cc2_7X%9WkBJ2Y!lUsLTej-A+;qW#OTYJDwA-zBwf|k_hqPfYE)YisSv%U znMwjWyeY<}P6Et!fPD>6W$Q}K;E06|B-;x)(hQKP0-5YU9uvr9hQ#O#%~f4m?%*bS zakE>fL9|V9n;qPng4?Wj3gM-FbY7uPfsxNih^*1`QIxU-CFtxD+`?GgMC zeCRtfGcOp>Ukp>-$K(;u}~6I6Y! zLL%GUZPfh~U&lnY)=WqF z)8?v?>Mn+6sImIWKnxY*lR`YxA5E@u54R^E&c*7&-iUL+a#zC-ceTFy-FC2jUwx&W zN>jPaA!=#($Zjf>X&m*c#+qpDm|Y&Qk-?nlBl3Tw= zAh_bzAC{{Rf*2gVEdvZ3ru9Iw=I7~KJyk2_%I$tMsNH*V(C(jd(QY$1-jX)oGHs^F zx@KUkUN=zVHS6A1<3REVlPVBg@d%SGS8anBbhs@8bxYa|B)9n%w>e3-&V#~1;)dS{ zYWR^nb+^9J&)e{cbxnuEkJsmEp;SIEsPaX(t(<`4)~^=`uDJED%hfAE4Bq%p2JGuV za_cAR*#4LjCk3obHc?R~YDR_>aIY*hBwrApm|K<)_><~Jw|uco%?MfwX7qfd$T%bbXViK zMv0AgqaMV@rieZm;Li+FooITTH^0YZz!VI9r>vT(Hw{)zX=a>B%b9L(s=|2PUmNETr$J=8!Ws@=ii9)r}Iw_ z#S{ZU?)WgI^GCFMxVnTv1y?4W4>`h;$WVSpw<}QdFx^4xV>n4yzb!Asp!$n$RH#~0 zrFb(MSBRI<{TKaVp&CsILaiGwqk9G#jfD~<{6~sZx@y0Cgvuk_PDZiw+?*17L_9<}uR}(vChjv#l2Po#IR7X%exw>fV^O=aVlg4!tXPcI!-_GP z!VRph=@Z3j4vmU8%WI3{B{^FN-mu-7IAra;bhpuJl>U3PK}aD`UzO>n-lynP`H22^i!q< zF`E6KjJS^i&3&|;t}-4AX}DqqwyEb;ASd6e;>`?rp$ zoMkhXJ-n;|IxfocjQnx-qL?0>xu1Xvu!Q<{J#SYIxHm7}}+uS8U*8V z4t|2Y%5>t`1e}>p9J{m1B=wo1%mkBzhcv?->8T6mcy{a=q7TnNy0CMKnn>LeBro?D zvAZUiy!_Go)gv@K!Svk038v?k%LgN#n0pSK4%59ZP(7L=1@4mql%JqKDpaFrk&x#n zNZ($WAboqjKJXBh)6N#D+O!!EUIU%4k3WJ?k+1hYsK(OU0^IKaKXHKj8JI|C9n5|& z#(o$p9oGc&r(jfBT{u(b|LRYv@1Ad|22vJ7=FIp{FB~=3_iX>rzp(9tA>^YWGR<+juOjlWalS9ir zGt?q#iHflvfFLjv>j4E|55I%zIb*&wQ}x#iW}(03&O$7hTHo|F{O}makwtlgH&zAI zVtwvOf7V>}Np5IBlxc=Kv5*fi_YwSXADODZn~l!SM66OxVGfctPpoeO&B8fqfci*h z&%!wSo~d2Er&H&uV#I$V6j%JUw_-QF2u4^MJ%9VU!GY_>59-E`ey^Qs$d_FC+yAOO zHmeZGx2F46Ied#Yu`uvMY z{(mxIDS&1ThUquvs{wq)LWDAtL~^vZXo31oS6Jc|;4u*ZKWx6b1A8 z8c=TkE@}T`4fKpM2u8x>y?-$|{GUv?{ouvze@u^Ate)p9ZvULX_IuiODXSliQ+0Io zlPXQGa;Xgcdv)*66u+)oh*t~lmr z$yMth2HF3~fF%Kv{pn@{eQTK-$d@e2b)P7lk4<3jN~D7Nl8+6oFA;w>*CzSc4Ag<1 zHw2vv5#KzfTGo&sQ(+ay6yjjNyrBv9`0)n&&2p1F_i`Qk6xLIRa2Jm0!OJU48=7He z2H%LQa?`N)-5grq#C7z4UTkgR3(e^KlAS?&oSnVMoyi3DQ>+FP*iSX|XJ^M(s76Zt z&h3cygr>)+Uv=g)>N-)PMD$--FiFo;qKW8>pH*EcGSNizYKfAIh3d?epr#77kx(f# zQPvECd2m>~*ihC*U5VgcV&~$==5wblhRSEBL!gTNyY-nf00fN+)g;VRE@m3SbyL4`5NdDM$FqvIRV zmAEWgQsQd~=P&aUO};QSQQUb-qPTMoL&TlCCmA(OM&sbl&%da$X=svh=OQV@Q;Xp` zZzFoe@FcGpFe5XS4o}j@zrym*WHDYj`10T+Q)TxgZ;BFdZ%U$ZWmt++l%E0|Zuw?p zC{PAxC?#*x>eapK5pb?#<$4Xfd(wo#cel~K_){m>Tm1Z_*wDUGR%?zmQuA5+E!vu#*fYC z+?~wHq%lcj9%8@e0@9tnN;2I^7r3cCJqSro<2m7+Mmp&NRvpQAmEOAt+AG+uD(UIJsAxLgNMHFL8ogjNps)R@qA`6uy9*0+SA@jH z${k0AoFVVrwi6jeK!SX{5q!RZ9)Cua3vdIg=W{LG=do2_hKxqtVi!v zF*QPy!PHUKF~3B6(4i{Lb8OvvqJtuRJtpoWzYIg_y^qa_o zy}IbQ4-c#|_5OX(MKgV4pZcBhl1)I(NtS@xP3P@LKpiX8VxdyEWC^IvP>Ul@*JSg! zJuTTM&VvV_yT|qV1FC;WS1#z}n0m(hs>br8D%Ra35RMK>(YnrOs#f?j+<4Q)p5-$m z#wZY?$$lX*Li~DtPgbDp1>WyAmv&Z2br( z@A$R~SKsKtZ)4m&lx(^seUz-vRi~DG9oR450xN8%kdC?i7|eC_9Zb*8q7)tvguI11 z9fh3Hh3~2^m`1U7gKu1ZS4|^V3M*P4dk>ip@3Fa&EPHGMS%^+|8=W>wzRb)^?D!Pu zgwIW{;uEiZUj=g7@ou%LUKs60D)tU~+Rod&c>qE7WD=@t-54@eK z6H=ttmHh}42wa$62R#p^yG^~BSQ+nfSiS2W%NXel52hIJ83}Ia4CRe@W4>MxrJ>?# z`r#ugL@m(sj;K8MgZ_#}rI^m(9u>$Zz>QXcE^hQ3pBXoLE=77nLW*&Pb4S&5UmF*G ztRAE{q>c1yiXK;uY;M2~`qp@WK9k(9 z`rGxc$hS@8Bm1&W`4nL!L=XH_<-6bIf?~HFj!ZiOu>ms0H1^6=o6n3)wHq6mTnWH% z*KqG;KM=*9fn##N+ImgZ3~%HEC;Pz30>;>66f*3D8fM0+#uyR2qfZ5${<-Sv?IB$n z%fQuJpF6FhB~*eI*h@Mz*4e=femtpqtC5U|(Wwn6I-~D7tL-g@oBm~{-tV<=M26(&&nN|-dJK(FfSy1s*OHyN;OZJ z$So+b_p>Va+;k^C@ph*XTtLjyt}(k>4V`sbwNvlt>8Di(`na)-QOCLN+DiHo9f3Y8 zQG>95b)(ab_5Kf3MyRRJ^dqhd{peUF3U}LC{>t9b$G%ea!vZJ=`6dkNIi6M9v;Wu9 z?sg6VL+J>p-e=((%+f^8n|x;6*?@MH72u@RqmZIsRh#731<0}_dc&@Lnr zYOYSafKl}^Q@Pc^iFh-^O}ppSf` zHq!&C9PrZg=5H~l-S1Nf?M>B-f5!xF=(nm;Su}W3k^PO{{hhk5KIKB0>SKNRdxV5@ zd=;aw|B0MgPN2lY9q|4J+NaxyHE~*&i)>#)- zof?(W{HizNzh3%K}S8HQ!lBlKCwf8!f4nc&CJ;_ z(O&esdZ5zid&f;0zl^QKLhr2oGd95J$1h{x{k1wJsV;iQpGe;arg2b>7RkG$8Odoh zelZHGE<5dC(Z{Gunoss>j(cXHNsjEDaTk-i#u(2`O4UI}T!HL!bh9gveJ%=m-KH~x z#BI`0FH$OZS|A_kQm3K0@a3S3@S4wz@H$ZVp8CGuurI`Gcxa%UuKYU!#CAswTUZTq zk!6Pep@u8{#$R5^-xA4>2TJ~yBl#Ie^0#(A{6A!8^wz&6-{NoaK9T$dk-V(wD`URa zw|-L*t`hrZnjUpk)voam0A3C3W3XsoqoaY1f&2nAP$}K3fy#VlG*CHR#+(P>F(w_W z?021Xc0nf{i}GQkeb{KhdWW3$*Hs^HI=25h9w9iHShIA=#M-7yCWh<4F(y6Tqr%J> zm7%Ykf!FoLedJ*7bX4RxM4xntPCwkhx?^FwtRw{8H-k&>Kdda8l5P^;`_d&gjZ2r< z6j)kk|AW|+oG!6x1lNPTR4f;to7luBUKRJ@0;1x^=>f6nS+t5LIUCZ=075UChWXMl zS_l2yb_jVn-2|r^rb-i>xH@NxCt6{~k_gXdHJkF#o$=&hDo3cyBxrB@8?z!^6147$ zMiMR%uNvvE6m_Muq9QyPC?whw@)ctwto$OfpER-~tc=hTEQ+FA>Dajmo&VzJ{-qJM zWyqKR4;-f39aRa{t2FUCQ&m1Q&Qw)bDNV7i6+jqYYV3z%J@X&Om#WwHLF@RScrpp7 z*OjJ}reR)JQe~){*Ogi}5m(A?BCdq%Kv!zo#Fwrl>+NOf4jO<0oX)dkG ziAFXNFABWV#CXw_ax{;oHeoNq=DZ!{5!&w6UzevmS}MdRyu`&7s0VEl;s!6VO-1TO z2ZgxLOZ>Sata3_-pBp0G+eGr3;0AEqOKl>KIf@%yVqa$^@wstKKJhwce=Z=7ncgJ8 zF>hgvXU8m`A&yxwBY2)rR_9ithW}1&s%OZcX=*fn$+d|)K0)AWJg|O-uhtt)!~;L8 zOmhhrW{NO3lqOIIQ)OmI78f?Iw_qlo@no<=C+pQ!sKD*NW#?sZz{d`{N2ADkxma>~a7+Z3P_YU)*r#b-t-R#T&tayQtMqU}fZftuKp zmCjcZFZ!bc`LfbbABQSF4poGMx94uEMR$06Zb}qIcoWk^y*i3A6oPULW-+|pf+d{L zXsYjBC`)Lnk1w&DxysjdsiJOImrCp1(bO541yHTr38>U*R_CTNAPk8?@9fXFWiM|~ z5#N}g?ljf%ghS7&O)^g((Nv5Q3}H9KwxQb8JSCs2E3xOZsC;g^AD?);UuP~LhKg$% z(ES#paoqi$ZYmRtXZ4jjruA* zyr2CMBUnrKkw9pGQDAGn$iTus0{cb)JP zb<}tuZhIX{*QcqJ+{}b@YS@euaa-?dKn2vgnTh5h4Z+8eu$3-sNRy~fGZV;rX}l_t zMBSU|yLYIzWD9kap<;W?mx+kaGllqwuV~C<>OxNob-9mfwk-x$)XZe7@y$%scDLmw zl-RpjqPF_YMpQqf6_dnK67=Op7-tg#+6j3kP-gfC3@}r^5Bbb!@beBVEG*~s}64jG>)i+3H$#zs<^IOWFph3 zDb(;5qRs32OePJYbfKmMQls?vj?|XA%dO6Gi>^DG39ghi^O>WWU${9Xw%r2K{i4sc zhGs4?Ni_4hqnXbG8!ei7fDuMBQ~AtjW@?Kd&4jk4VxMN#w55&YX(1hOQ48~E?gBZ(GM;3l1waR z_{j%)Q!bTiX;gf}Pd=MT11VC-)mqAc3*I2t5_P7^y+(3RZP%flkfC)IYR8tc6gZ%z zECu3v4ZjapsWYm+f1p%67maVFP zz$_$+@R>vry`~$*dR@J2cN*$5=;H457F}p520hbK&p3nSLSxaK?o>hF>OtM;x0VuH z&w!z0)+>5(PkI~k<0^eIsJryJUWl!wGL1p;fZkA}eAK*`C{iEWN@ew%TPY0|HTN?D z@8@EVw4wGiRO}bu-<$IA&Ws^qz0s+_M4ahDeaKt1N*)bWPZ=UD%ank#K~Lz56b_dM zrofz`+bLYV$}}un=2H{CVU~DHX`rKY!4k^GUP7*oK5$r^78bZXx4~+NO_qK%XvVY< zxk@L>A!;QZUyu~qN}TDR%m8PKX(i4CqEquP{gHDv7ig1K;)k6aD6a8}P!jcZP`Gwb zi}NYT9cYV|X81Y9UWX|82V1Gcp4bZ3|3lZjgA&|Vm?Vz#6D z9W=7yY2CS@5N&rWGl0-3p?+?tYPTLV6vM)ALPRukikjYEp|#O-8N9j3@3rpM`-f3J z)fH-tP?@hWN@i=l<1;G*yPV8of7jN!$_XnIm;Meu0B;AJu<}4N<^AFb&Kcmhh=!V0z!qeHY=p2>Wuddhn=U&@r~`adHYcXl27ix_%CQ_9-wkzcAXP%SdR}g=^4(%X!wn4J^)}M= z-{(tt(GDb^u@V0aonN#A-B|9o*2dsim^By z8XacuKurIRwOe90Y75Kpxf9dz1Un+4p)aUk;8NlUN8x60gpi{FW?`0Lp7EbF2yexF zj4!n2Gvf=b@vt9{guRjd-3iD+yxp_#UV54Ox0UXhr*rS4lQgoe7(Ndi9K(-jYYabY zB0Wu0+j8&1n#Yw%X3b;TBx+4dh4_S*7(E%8@+Ki}@Dksfj4|b)A=19K(%+7?HN6JC zeg70nq!LjeE(;$fdAa=Fw)&+x7^Uajk2K&fLI3WcOJ@oCcScv!lOLdP3d=G!z%1qe zv53|Ur&1O*$}-WRL6$TiQ&RoBFiGs(3yR?m-z(4x z(&4u~)UI&?l&(hpBV zT=@8c6{^!`Af|o}MewI04uQ90{u5co{AXq$I{zd}_yNKqxY9RS((zsT_+0Kz*lAJ< zTQ8wC+%cUx%G}YR9WlJ~4b1ho&cR?>dmG{f7AgSKt5>Q>-EJ;cH`+5nrT~=ME?`*B zm(Zxo2L+8KO1_hvyv*ulhNFWD=}{elSR0F!xV&TEHhA z@Q;2lNZdu$Uw$x1Ua$$#fy&Xxmmx&|-A+Pubyi!69oZg6;d2wBqjceXsud8Tt8ytZ z@y&K(;+rs|(}SuqO9|2SnU67Z13oimZqPoU_jb~Qmt(QQ+k3xXP75fzy@cpCdb_5B zl-pkVXd7^FYUthGSoG*qbU%%1Z$exVMp?G#u=aZJP|S)R5%N?&86C8>66#W+s$u%t z)0n)xB-BmqB}(pXFUbwAy>^V?L3{)f9MFs=QH=?c7X*67fnE`)I-?h^q;_=6LE*L+ zWzwQxQ8-SvXs^$`Mrk1|V~Jg-1C-TAf4+(uxO+26be#$A940dZH6dZLF(ZtkQ~As& zI<-T9qC4u#e_`>k;%d6fr|q??sZe1X)CQBy*Q#K-&aXql>vf>w^^~u6`b45vI_P6XG6KZw+UpVg$8Mkw_%a3y zZA5&^et93-{ z-`A&Jq&W9GOcKerJCbh?Y=l@ejuA%kcs?_d$9D{{=z5>fOE=LDZ2c(Q=Gd{Np1zq5 zs-A{oglq{Gjvae+G(xW0LMv4fm&iajn6MS&%pjfn5;lVPr=?Tn_T+%udDx_AFi#jF z4eBTfiwTLF%q`l`Q9|My`oJ~}!npKyqi`r5G-twz8>UwXk0IzZ%$ZI*@Sg>aOA`zK z4nTs&NVK@i%QT9rbuu9!6#mP5nCflZ`nZAoh(`$A+c^0aCe=-fBZi4LO zAoCq0t_`x-L3Rp48jA;Ol)G>SR%Y4Pd$F!d?75v_wO%^rb@bsLOcIMX>nOh7EYKoi z@h2H!EWVu2jK!CC3b1%b-D@XSAH2SPXeafhZJkW84A~5bSa`t@^Hd2-7IpN?Zy;CO z2WdFT@fWe*>|~rEXBU=zJ~KMNg81=WaDv17<}U13{Yi*Fc!|(l(*I+?GH+l7LFWBj zdx;&=8SUP$llD-Q`%NZ^%r8Q%9JgNdwGj;vnQJk^$Q;FIM&_u_MrPONSoD=8-rsfH zUfPN|*73bqEoq>wH)%FC=q&q>kG)AFKvN%K`|Z_#i(```lHF+%P@txm_Vb?$yzi;vylrg=4z9`0{# z%55xi{qF$vQ#<^3w)*aDIY^!GZ4V#IcYJsH9>N%X&VT1?-<>}WQ4f5;#)tW{v-ow{ zF5=g?Hd8qBfvW0w5;Ot>6NsiuJfP>jgQsFCUChKK5!>}J(`fA=6T8S)R@S_W?^AVm zkRY0F_&{f!Im{}e5ds}9&|%OA(GmKHelZf$MM%Y?*>`%; zQS^&4T}@P>u3l=^$DqatwWg2y>&Micnh7<%t5~XISFseX8^2;DQy-LOBjMT@={r61 zIQ6DG1vT11Js>DGTHpN%*1R8eK)CII5 zSma;dO`K^>H+?1!Tcb@J`S3IXYv-@2kY4R3ZnXvs9k+S~B+imtCDfTd6#3tUjGUSt z>?V&_gNmD8@+|5>FA0C08I{-PHPcTur z=`+_DZ$!P$XGYZP!J_d1Hh;vb*@vWW0sXyNz+}`}z~j28KHe zh{h$r(zrx$19RY?`fP@QFs1;T}4MlQR+h-@*{mtUpwmg(9iuVQBT{8P|xp1VEx-gl1J>9 zx{D747iVGKafCU;j7sdV9%#@R{m3Osaeu`m5#~KdnD+v!6JhEy!Uz+`XGWN~9znvq z`V*dkHjtsR$Inzmt$T>oTlA3mv~lnrzhKdt9uV)_HHYzO1kGoEV4HK z73p1J590tsdx!%J>|q293B>6M|HBls3F=~NZ$M-RA6jojUtBmy?=VXPI> zG@xF_%Y1S%gN%$z_{_+-Bv{6ISFjM^$XNL|dXP3bGH!rGcVa|XbdAdEqgSY$ZuvWP zpk0oj8~hc%A%cGKJ3T-ji+CT2czC(?l|L}u_+F?NeAK)C#JuX3Q2%yR@m>$(xFLa@ zMHOotRqWw9OYGV`ApAiwdEQfx#ag0Yj*@I$JzsW8f$l7i4C^nuOlVAyC)l3 zhyCria&b>_ZP z8QE6;OSUrls~diQzV9Zjq1PP&UuFTnq<0*#UiMeD9Rlj-fJQkWT;r=) zVfqP|l}ZyGWIu!CcA6*|EGk=Lt7DD#SP3QelR41nd;0y-R%7?uOcHBsbF8r~P*q}$ zb&N39SkGt18tZd{JndE)tH0ONrkAw_(7qfAEW2}f{#~G3l(j1BS>>=9^+=Am+HUZ2 zTqMvcpcsfU%EVwj_^%`nmC;OQBl-O1;H0@(OsDc&iKFlN$YbR94 z!GC99Z6a1xMi{Ze_{@kE)+Dsj8I>=t$`|!@5rvx8Shbx91=d52ok@bgRd8wQoOzhk{K|;z_>ziV_0W#y+mhixS1vPK9(En234&3 z?o1|$&g%6Noz)8zMs#+B5k_Z6`ON6-Xt2%}SG7iabru(9O;+D?3mu(ZfKt9O*+qhG zRn02KhiGuKmHUFfsy{_z2~@DkCEnvUMe^%lLk^xo=FPQ3q49p9aC;Z`3!Uh`pE z^cJ;scSukhNJedUIHZ|P@u3!@H5Y#I962PYC9Jd(M`>62PKo_MZwP)>uZXk~-G4Gk zly=rp+Sx$7DD5#u7^OYVXGUp{_YQKjk81cG?T(t(9eAt;Rf58BoaN- zTioE8z#2uO|1rWy^cSBQiT( zBkR&!?f#Jp^qhLuBwFvtxzu0BI+4>qyzUWUcRFIdk}K8=hOk%*MXc}_m>C|uaMSqQ zS*mXwZ`F)!;D4ODj*E$?iyToGF-fKj>%fes*%z6M5%m(E8Bs38tGCyz9U5AN zlc5WV)@W*&XN*}dPmCF>wWJ8FE+Ab+*O$*65ezqyy=&)Dq6`Bj%S3CZ~~th2`A(Q z88bA+y4x$^#uV!q%@YY}F3Rz%u_ir^NVV>z6^^iTxo%PAQ!H!=Z4-$$J956DtE3|h zcu%N@@+1v7ktY-AL--QD)r>BnFi&}Kn`03^G4*;AD~E0f=&A#%&__U585E{p&ai4x zWFJAIjDzgi)EYu*eT=e`@s0tnh-Nv+WUX2Nncoa+5;+bMWgMi{9IHR01X<)DCpyR? zMh>Hy4hXkR(0n0J&zOjg{EVQqgWBkzwA8m~5@z~49Vp6pp=Oi{)S#Gp2DFZT8~zOI zw#5FT56s2q#=&dpDk)Yi{}!;PxR4ls7L>|8c~*c;9OHk_JdE*w;4@?VANm9tzguf- ztk?J@t*yuLS>)_23_kc^2i@$W*K9);v!JzAL&vnW`eH4aZ<@9Bo8aiUK;^zBcpYhL z-G|Q+phO1M?Q8sz>f-;AMwMT{8-Q(>|GtKeppp8*u8>1 zD%ib!Wr1;gM=J^sLi}LdFt&p*#&*G?b8x!aM`CW(zQ%Sp@q^d@mv^#~+?AOmmbwoA zU`t&ORGoCwkbYiEx%tdk%H1!>QXh1-274`)+XY^kfE<{|m%9CAx1Q;yJ-b@@)U=<( zq`Khc*eF96_Cid$)z#`rJ^FDs!8YC*-H?2D&|AA%U1@|6hkJ=j`ddjMK@64*u zi82n-7%E6~G1OYeP;atU@K$txX!}haHNc8B>`Rp?^9FyE@GV+LY=bG5&uJl}$q$B(m69Cxbgtez74 zEEHg0*LM|I4MYB7lGy6JUQ=LYy3YsdP{PNr3^2C3%xA_{mj?uekClb~xoS)imZ{6< zOCD2Ne_Uj3qsV-*Q0aW1g(C8eg-(q?>6Cmkv?k_D9+RNAkF;7-=X|{;9DB2U)LzBN zZiY$OK|ZP)g2i;;XMgI8aEhC*Yfq{kFoyNaWa;HN)I$n#T$+|Uke*3KB07# zDOL)_4iuljZKvXWQxIM=2g+_<2h??-+0Dz4F#YEJNbv>?l)bz@*w_a!e;Oxs-RZy{ zcIvuQfRm;oSDWuth%!!vRUWkZ&^ke`c91VS$kl?Z`jAzF_B%+FagduHLY-d<@`Qu@ z-a(!aq{$EebdV_HAp1Om%m@K-I$Ws2An}MOy=FQ*0+)X6Ch8qC5$f=6&kT&>*Yx>m zSUTt+xGV>U6&T>~@w!K5TIqN}#~`u{f-S*Ib?SbBOmrY~1u{_}%LFpfTS?^{b#9%Wl zhw0cy5jE-!HXcG@gZ;6VnhX{{0nt%m>SNXf>M6*sf*j-^yAEdePNp#q2-gf^ZKSNj zL|}%X9v0Lh2lcR1ALpdB(t(2Lg?_%?x`$pD=*t3q+kw73*lgsWPaG7komO^Uh#~)y zfW8;dH34DqDESFYkjf4b$-ej3WTIkV%#o=0sS_1{=4e!6HyDDj_Orfw5eEBU0 z!ikC}0%DdwDmG`3iHa@w%tXZ&LxQ5>Q;Yp0e#0e}O?g9P5W#xq66-xG7$Sp64j4GY z{O}=W5cz$nRZNqInErk*#NsD|_YBd`?!d_KgplX?$tKMXX2Qc{SJcK+q#|ZtV!y=A zE=f-a`-Uz&p&y2wPf(4FS?q8wW zzT6r^Cq-cTbOOYpf*tV~9*Jf?2TSM@4e?56ry8&KQdJ{-7s3jkT+9nIy6vb7Vah*aVTa10#&A z9r?`2+Hq)*aaTX%p9(g8*1AeVhe|p(a463Mi}kUUSkSm@sF-*l*f{#UbEq+~XO(q@ zW{N~y~KH|ktMt=#FxCpHfx}d4~6)ymw0iF)rrmvvBXPU@;v4^ z*A0>WH&h~IIeldvA|x*TK`5MQGI`|xbhHj(a;i>Vhb#_X5?Y7wnlwznZ3K)<12!{H zJcaUtxt!^~IM>#d`HN>j>RHTs*QEc*i5B441jZc56I6A>z-2nEV7{u6||*9BqS8pBF049nNV< zH`*uU-NPj#IV`%u9`Te{kdd5nRE68du0WYc6w$YM{xFxJ z@M9hnGVYnJBi}@7ULw#_4)iBK^ptk*!`$z>ABsW_bpJlg^ur2Gf2dq2HjafHJQJy` zUw;c@ZsS7f4!CV>3~7yxgLT6;u2mp5ZpvE2r)CRb6FxUKuBp>rw`v4z9#7{|V&dom zF>!RDy2Zr9nThEQ1$<^qTu>Nf;>3ggb)X#wt?BeYp@iv4g#qh8#=dtRwA`{za^(=7 z)jn1z9c2<&J7#{g(3pAV+u*ZG^zt+mz#V0|9{G;di(VJ%%R;5)g}QXEHIR-9`9ojf zWA9?U_q#%!_B@pDFKl!dTp{ajJlf2&xOv=^61z+hgq^3Wyl=&aJjx_d)V(_UeN1@o z4Q#LIsX7CUp2GRe=qbF&=*iUp+v#KjC3ahWV7;d5>FlFc%+i-Co7d#)>T4fZ^Qdl- z?4vyVAqHn$n9n5){RnXuQ~RS%m+1pKfA;Q3va7zX{1MWNxreQ8c+G@Mm@d-?)jPTz zS!8sXbOb5#gIpqmreFb?b$OpYcf=ZwH{A_&5xBCyuhDCcB0FECzd~7j+MvqE7#4BU z_}zW@<$sG5TmkDYr-(msTu+bx+^Xyz&Gnbq$5;!ab@VYS!99{mqQKro;%U7DTPYem z!w93nvwUVWcvdtBb(k-s^f-{u;}UFnW3ZQ_Q7eMwq@=bA;$6To3pR&eTk(=_8~^b{ru+GF|sL0VVc9VO|@+ zZKIiR{IX_(t64Z;>@T^|yILu35S`X1?My6aeQxJcVvhXZtm!rDi#<1!7-eD{8?)!6_50N$f8IOI%mzr3dXr} z);9bsId45m%SVcWmyTq=YpYX#x8n6(=dB2SudO$&A1Qvf6g4?&UN_SCo%t5n9-}1M zIZ}qOSMaQX|NU`rY3M;M)asJe#Qg%Z!Ba+V_Y3-kZ>@&zbxabO7eUD^^P<4YMCOZ( zFfw1_Gb8gQkr|St{e+FXUwnt>ZAL15+2nicZgLfiXr+qz;i)6qBR^Qm=;QpFbY?wsm6Ub3J&> zh#x#=%)Vqba#v-Nh<(!$`=(#)s%W}-%*Y5M_5?mNVoxZRam$E($SZN3pRK!So+I(x zVzccMwoK9={bWVy-oIdqvBHshE?4b5WfZ9!{)z#u_OIw6+l*xT;IEeKFnpm{EEr{AQ7&vZKV1fB4y#8Rd7+=uyUyHAaact7A!z-7~l}3-hZZ zO!-kpm^S#a%j<{!v|78%FiC{D;s|pkur?8$r%-3sE&I7|1bzT{yFq7 zYX*%PW&9JgT34+vXp$pK5mzYYndr!J4Fkq}k>yd51t0mYcHNpuYlZsUC<*a9M#&@u z*XDz}Z=p2DcwC!6H4DG&slj!y28NCjb57yfu~g1dOwr?RSSjv_OcD(Y2Y>FN!votW z8u*nFMgy1m%xK`UPXmQFt>+-9`p253%IkBbUGn9Z()z$Z)=s>^$`l^>LrRbKNgtv2 z-$G7?f2~~Fl@XeV8`xL(WT~`L=FfAkT0Ke_Efx(#jW$pCON|zJYBIkPyBB`2o?TVB z;zA;rB=V5XR<2ApF-24!FzI}&^F{6=QZdTO7O_9vzNV#o{NokCSG_LHbD?+{(>grDi9U-^*Ydj!A z-e1Mlo4zpe(Pv{MtQ~X23ogy#Z8GA8zs+n)?5o^FJ~w$sU413gRY#Xpbyaj9-~uA- z7Dw1EOp-2f01f8BsO(s;u;uv72wQG!kV&tExeC3)K2ps!h+@ZzNu$S_&00p-`>VT# zQtDW-V>DPf^)wy}J66+sYP!nn?KNF3sWbL7@?)^EB4^vNV#Z(yJ8R@v>Fnvuti&G0 z%}dus5v~MxVTt}eQ%&f%zj2pFDpRDDo?Ow?w5$G{T zpvMBM6oD=5{IdLxKRrS{=eb&lQB5( zKi9>7BE*6JL!q6PfCK+eG5cae9Qfbph+6pja`s_9NR@OrNzbV7s^hJ7xcAeYNjj&Y ztK2m633Bv4dM_TTMr;4c)|E!yM2@5mGI|K1k#7V*8RLSFG1`{q?yptG}+?2xjA=jvRd%z;7_x`@7)4Z=l)FcEf?+ z*Rm^g$AMo#vftqYzrSNQ>45{k=wh$o1Hb2CXZ6H^Ux~1{@`1PG+pp!|z&qIOxL!E$ zzHGaM4;QBKaRu+8y!*vI+aCwsT49&U$ANba*q`!&pO)EO@kqqxCrb9wA*Hf#hfn)qHQMF}8Fm3y zTWwy(wQFHf&aT6U@mO}UdFe`G0?%0OEIv5CkyRAbHSnA-3|~>jdPqu3F6-zwhY`Gp zV_)V2FIw215jgN1Tw)BzIeQu(9K%i1c`1Iw<(oc-5h-q(`Q|!4^~eZ^|3b#`Jl6i3 z4?MNAXYhe%LiVqG;Awi(xO;$H{jZl|&x>8+3)c*ll@@EtP diff --git a/docs/_build/html/ontmont.html b/docs/_build/html/ontmont.html index 3dcd890..d01d5a8 100644 --- a/docs/_build/html/ontmont.html +++ b/docs/_build/html/ontmont.html @@ -515,7 +515,7 @@

SubmodulesBreakpointPair

Parameters:
-

tra (BreakpointPair) – Paired breakpoint object

+

tra (:class:BreakpointPair) – Paired breakpoint object

Raises:

ValueError – If no SV type has been assigned

diff --git a/docs/_build/html/searchindex.js b/docs/_build/html/searchindex.js index 504a760..577499b 100644 --- a/docs/_build/html/searchindex.js +++ b/docs/_build/html/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["index", "modules", "ontmont"], "filenames": ["index.rst", "modules.rst", "ontmont.rst"], "titles": ["Welcome to ontmont\u2019s documentation!", "ontmont", "ontmont package"], "terms": {"packag": [0, 1], "submodul": [0, 1], "bundl": [0, 1], "modul": [0, 1], "cli": [0, 1], "collect": [0, 1], "datatyp": [0, 1], "ir": [0, 1], "plot": [0, 1], "process": [0, 1], "util": [0, 1], "index": 0, "search": 0, "page": 0, "make_brk_support": [1, 2], "make_brk_t": [1, 2], "make_brks_bundl": [1, 2], "make_seg_t": [1, 2], "make_tra_t": [1, 2], "extract_split_align": [1, 2], "find_presence_of_matching_sv": [1, 2], "fix_lower_support_coordin": [1, 2], "get_breakpoint_support_from_bundl": [1, 2], "get_normalized_sv": [1, 2], "get_svtyp": [1, 2], "make_tumor_sv_t": [1, 2], "map_similar_coordinate_to_higher_rank": [1, 2], "normalize_sv_t": [1, 2], "pull_breakpoints_from_bam_fil": [1, 2], "pull_breakpoints_from_reads_in_sv_region": [1, 2], "pull_sv_supporting_reads_from_bundl": [1, 2], "breakpoint": [1, 2], "chrom": [1, 2], "get_breakpoint_seq": [1, 2], "breakpointchain": [1, 2], "get_seg": [1, 2], "get_transit": [1, 2], "breakpointpair": [1, 2], "sampl": [1, 2], "long_sampl": [1, 2], "sample2group": [1, 2], "sample2short": [1, 2], "segment": [1, 2], "get_list": [1, 2], "splitalign": [1, 2], "extract_cigar_field": [1, 2], "get_cigar_tupl": [1, 2], "transit": [1, 2], "align_two_sequ": [1, 2], "calc_distance_scor": [1, 2], "calc_pval_bilateral_ir": [1, 2], "calc_pval_hollidai": [1, 2], "calc_pval_onesided_ir": [1, 2], "calc_pval_segmental_ir": [1, 2], "get_best_holliday_junct": [1, 2], "get_best_ir_within_breakpoint": [1, 2], "get_best_ir_within_seg": [1, 2], "get_best_onesided_ir": [1, 2], "get_breakpoint_pair_seq_data": [1, 2], "get_onesided_ir": [1, 2], "is_holliday_junct": [1, 2], "overlap": [1, 2], "add_gene_annot": [1, 2], "add_sv_legend_to_ax": [1, 2], "convert_tupleproxy_to_pyrang": [1, 2], "extract_vaf_from_annotated_sv_t": [1, 2], "fix_coordinate_xticklabel": [1, 2], "fix_yticks_with_integ": [1, 2], "get_chrom_xlim": [1, 2], "get_chromosomes_from_bundl": [1, 2], "get_cn_blocks_for_read_xlim": [1, 2], "get_edgecolor": [1, 2], "get_gene_repr_exon": [1, 2], "get_repr_transcript_id": [1, 2], "get_sv_table_chrom": [1, 2], "get_transcript_exon": [1, 2], "get_unique_sv_with_support": [1, 2], "is_overlap": [1, 2], "make_axes_for_breakpoint": [1, 2], "make_spline_coordin": [1, 2], "parse_gtf_region": [1, 2], "plot_cn_on_ax": [1, 2], "plot_gene_annot": [1, 2], "plot_jabba_cn": [1, 2], "plot_quasijabba": [1, 2], "plot_segments_on_ax": [1, 2], "plot_sv_lines_on_cn": [1, 2], "plot_svs_to_cn_seg": [1, 2], "plot_transition_on_ax": [1, 2], "plot_vaf_cn_sv_for_read": [1, 2], "plot_vaf_on_ax": [1, 2], "filter_sv_by_clon": [1, 2], "merge_cn_seg": [1, 2], "update_blocks_and_reset_prev": [1, 2], "enumerate_breakpoint": [1, 2], "filter_breakpoints_at_contig_end": [1, 2], "filter_sv_with_breakpoint_at_contig_end": [1, 2], "get_chromosomes_to_process": [1, 2], "get_secondari": [1, 2], "is_breakpoints_not_sort": [1, 2], "make_split_read_t": [1, 2], "remove_duplicates_from_tra_t": [1, 2], "reverse_compl": [1, 2], "shuffle_seq": [1, 2], "content": 1, "count": 2, "support": 2, "uniqu": 2, "coordin": 2, "paramet": 2, "list": 2, "return": 2, "panda": 2, "seri": 2, "take": 2, "po": 2, "ori": 2, "account": 2, "brk_support": 2, "unilateral_score_cutoff": 2, "5": 2, "bilateral_score_cutoff": 2, "8": 2, "creat": 2, "datafram": 2, "variabl": 2, "dict": 2, "number": 2, "each": 2, "int": 2, "option": 2, "align": 2, "score": 2, "cutoff": 2, "unilater": 2, "default": 2, "bilater": 2, "tabl": 2, "statist": 2, "reads_df": 2, "genom": 2, "sw_palindrom": 2, "sw_hollidai": 2, "margin": 2, "15": 2, "30": 2, "60": 2, "make": 2, "breapointchain": 2, "base": 2, "read": 2, "pyfaidx": 2, "fasta": 2, "swalign": 2, "localalign": 2, "detect": 2, "homologi": 2, "slice": 2, "from": 2, "seg_support": 2, "segment_score_cutoff": 2, "found": 2, "tra_support": 2, "sv": 2, "duplic": 2, "remov": 2, "locat": 2, "contig": 2, "termini": 2, "max_read": 2, "500": 2, "extract": 2, "object": 2, "iteratorrow": 2, "pysam": 2, "fetch": 2, "alignmentfil": 2, "maximum": 2, "sv1": 2, "sv2": 2, "50": 2, "check": 2, "label": 2, "match": 2, "refer": 2, "presenc": 2, "bp": 2, "differ": 2, "pd": 2, "true": 2, "fals": 2, "length": 2, "equal": 2, "row": 2, "size": 2, "complex": 2, "coord_map": 2, "map": 2, "lower": 2, "close": 2, "higher": 2, "str": 2, "fix": 2, "get": 2, "counter": 2, "tra": 2, "sort": 2, "normal": 2, "pair": 2, "flatten": 2, "type": 2, "string": 2, "given": 2, "rais": 2, "valueerror": 2, "If": 2, "ha": 2, "been": 2, "assign": 2, "none": 2, "10": 2, "get_support": 2, "sourc": 2, "in_sourc": 2, "flag": 2, "merg": 2, "cluster": 2, "bool": 2, "same": 2, "add": 2, "collaps": 2, "breakpoint_support": 2, "prioriti": 2, "tupl": 2, "contain": 2, "src": 2, "dst": 2, "coord_map_log": 2, "max_coord": 2, "src_count": 2, "max_count": 2, "onli": 2, "debug": 2, "chrom1_col": 2, "chromosome_1": 2, "chrom2_col": 2, "chromosome_2": 2, "pos1_col": 2, "position_1": 2, "pos2_col": 2, "position_2": 2, "ori1_col": 2, "strand_1": 2, "ori2_col": 2, "strand_2": 2, "breakpoint1": 2, "breakpoint2": 2, "bam_path": 2, "get_read_t": 2, "bam": 2, "file": 2, "accord": 2, "an": 2, "input": 2, "well": 2, "stat": 2, "min_n_breakpoint": 2, "3": 2, "append": 2, "minimum": 2, "requir": 2, "save": 2, "us": 2, "select": 2, "rearrang": 2, "i": 2, "high": 2, "filter": 2, "includ": 2, "have": 2, "class": 2, "orient": 2, "1": 2, "2": 2, "4": 2, "6": 2, "7": 2, "9": 2, "11": 2, "12": 2, "13": 2, "14": 2, "16": 2, "17": 2, "18": 2, "19": 2, "20": 2, "21": 2, "22": 2, "x": 2, "y": 2, "m": 2, "chr1": 2, "chr2": 2, "chr3": 2, "chr4": 2, "chr5": 2, "chr6": 2, "chr7": 2, "chr8": 2, "chr9": 2, "chr10": 2, "chr11": 2, "chr12": 2, "chr13": 2, "chr14": 2, "chr15": 2, "chr16": 2, "chr17": 2, "chr18": 2, "chr19": 2, "chr20": 2, "chr21": 2, "chr22": 2, "chrx": 2, "chry": 2, "chrm": 2, "brks_iter": 2, "sort_transit": 2, "brk1": 2, "brk2": 2, "14472b_201": 2, "14472b_202": 2, "14472b_500": 2, "14472b_501": 2, "14472c_203": 2, "14472c_204": 2, "14472c_502": 2, "14472d_101": 2, "14472d_102": 2, "14472d_103": 2, "14472d_104": 2, "14472d_205": 2, "14472_100": 2, "14472_300": 2, "201": 2, "202": 2, "501": 2, "203": 2, "204": 2, "502": 2, "101": 2, "102": 2, "103": 2, "104": 2, "205": 2, "100": 2, "300": 2, "df": 2, "cigarstr": 2, "read_nam": 2, "refnam": 2, "read_po": 2, "strand": 2, "static": 2, "cigar": 2, "seq1": 2, "seq2": 2, "sw": 2, "rc": 2, "dist1": 2, "dist2": 2, "dist_cutoff1": 2, "dist_cutoff2": 2, "src_score": 2, "n_iter": 2, "1000": 2, "random_se": 2, "42": 2, "negative1": 2, "negative2": 2, "seq": 2, "direct": 2, "dist_cutoff": 2, "ori1": 2, "ori2": 2, "score_cutoff": 2, "aln": 2, "dist_sum_cutoff": 2, "seg1": 2, "seg2": 2, "ax": 2, "gtf": 2, "chromosom": 2, "start": 2, "end": 2, "gene": 2, "already_plot": 2, "gene_font_s": 2, "sv_ax": 2, "svcolor": 2, "alpha": 2, "0": 2, "loc1": 2, "82": 2, "loc2": 2, "left": 2, "show_support_legend": 2, "exon": 2, "cn_ax": 2, "read_sv": 2, "read_chrom": 2, "sv_x_length_margin": 2, "cn": 2, "chrom_xlim": 2, "bin_siz": 2, "50000": 2, "clone": 2, "pseudobulk": 2, "svtype": 2, "lenient": 2, "gene_nam": 2, "transcript_id": 2, "interval1": 2, "interval2": 2, "brk_chrom": 2, "figsiz": 2, "hspace": 2, "rowsiz": 2, "mode": 2, "vaf": 2, "width_ratio": 2, "pos1": 2, "pos2": 2, "sv_y": 2, "margin_div": 2, "y_offset": 2, "05": 2, "region": 2, "clone_color": 2, "metric": 2, "copi": 2, "max_cn": 2, "input_sv": 2, "chrom_cn": 2, "cn_color": 2, "ylim": 2, "cn_clone": 2, "svlineh": 2, "83": 2, "75": 2, "default_rad": 2, "25": 2, "suptitl": 2, "read_length": 2, "gene_margin": 2, "linewidth": 2, "intra_y_offset": 2, "linetick_divfactor": 2, "plot_data": 2, "_linewidth": 2, "sv_x_offset": 2, "100000": 2, "clone_id": 2, "fig_row_s": 2, "40": 2, "cn_window": 2, "200000": 2, "cn_metric": 2, "state": 2, "vaf_ax": 2, "flt_ont_sv": 2, "vaf_col_str": 2, "vaf_": 2, "merge_gap": 2, "block": 2, "prev": 2, "featur": 2, "chr": 2, "chroms_proc": 2, "brk_df": 2, "drop_expression_vector": 2, "chrom1": 2, "chrom2": 2, "chrom_ord": 2, "tra_df": 2}, "objects": {"": [[2, 0, 0, "-", "ontmont"]], "ontmont": [[2, 0, 0, "-", "bundle"], [2, 0, 0, "-", "cli"], [2, 0, 0, "-", "collect"], [2, 0, 0, "-", "datatypes"], [2, 0, 0, "-", "irs"], [2, 0, 0, "-", "plot"], [2, 0, 0, "-", "process"], [2, 0, 0, "-", "utils"]], "ontmont.bundle": [[2, 1, 1, "", "make_brk_supports"], [2, 1, 1, "", "make_brk_table"], [2, 1, 1, "", "make_brks_bundle"], [2, 1, 1, "", "make_seg_table"], [2, 1, 1, "", "make_tra_table"]], "ontmont.collect": [[2, 1, 1, "", "extract_split_alignments"], [2, 1, 1, "", "find_presence_of_matching_sv"], [2, 1, 1, "", "fix_lower_support_coordinates"], [2, 1, 1, "", "get_breakpoint_support_from_bundle"], [2, 1, 1, "", "get_normalized_sv"], [2, 1, 1, "", "get_svtype"], [2, 1, 1, "", "make_brks_bundle"], [2, 1, 1, "", "make_tumor_sv_table"], [2, 1, 1, "", "map_similar_coordinate_to_higher_rank"], [2, 1, 1, "", "normalize_sv_table"], [2, 1, 1, "", "pull_breakpoints_from_bam_files"], [2, 1, 1, "", "pull_breakpoints_from_reads_in_sv_regions"], [2, 1, 1, "", "pull_sv_supporting_reads_from_bundle"]], "ontmont.datatypes": [[2, 2, 1, "", "Breakpoint"], [2, 2, 1, "", "BreakpointChain"], [2, 2, 1, "", "BreakpointPair"], [2, 2, 1, "", "Sample"], [2, 2, 1, "", "Segments"], [2, 2, 1, "", "SplitAlignment"], [2, 2, 1, "", "Transitions"], [2, 1, 1, "", "get_breakpoint_seqs"]], "ontmont.datatypes.Breakpoint": [[2, 3, 1, "", "chroms"], [2, 4, 1, "", "get_breakpoint_seqs"]], "ontmont.datatypes.BreakpointChain": [[2, 4, 1, "", "get_segments"], [2, 4, 1, "", "get_transitions"]], "ontmont.datatypes.Sample": [[2, 3, 1, "", "long_samples"], [2, 3, 1, "", "sample2group"], [2, 3, 1, "", "sample2short"]], "ontmont.datatypes.Segments": [[2, 4, 1, "", "get_list"]], "ontmont.datatypes.SplitAlignment": [[2, 4, 1, "", "extract_cigar_field"], [2, 4, 1, "", "get_cigar_tuples"]], "ontmont.datatypes.Transitions": [[2, 4, 1, "", "get_list"]], "ontmont.irs": [[2, 1, 1, "", "align_two_sequences"], [2, 1, 1, "", "calc_distance_score"], [2, 1, 1, "", "calc_pval_bilateral_ir"], [2, 1, 1, "", "calc_pval_holliday"], [2, 1, 1, "", "calc_pval_onesided_ir"], [2, 1, 1, "", "calc_pval_segmental_ir"], [2, 1, 1, "", "get_best_holliday_junctions"], [2, 1, 1, "", "get_best_ir_within_breakpoints"], [2, 1, 1, "", "get_best_ir_within_segment"], [2, 1, 1, "", "get_best_onesided_ir"], [2, 1, 1, "", "get_breakpoint_pair_seq_data"], [2, 1, 1, "", "get_onesided_ir"], [2, 1, 1, "", "is_holliday_junction"], [2, 1, 1, "", "overlaps"]], "ontmont.plot": [[2, 1, 1, "", "add_gene_annotations"], [2, 1, 1, "", "add_sv_legend_to_axes"], [2, 1, 1, "", "convert_tupleproxy_to_pyranges"], [2, 1, 1, "", "extract_vaf_from_annotated_sv_table"], [2, 1, 1, "", "fix_coordinate_xticklabels"], [2, 1, 1, "", "fix_yticks_with_integers"], [2, 1, 1, "", "get_chrom_xlims"], [2, 1, 1, "", "get_chromosomes_from_bundle"], [2, 1, 1, "", "get_cn_blocks_for_read_xlim"], [2, 1, 1, "", "get_edgecolor"], [2, 1, 1, "", "get_gene_repr_exons"], [2, 1, 1, "", "get_repr_transcript_id"], [2, 1, 1, "", "get_sv_table_chroms"], [2, 1, 1, "", "get_transcript_exons"], [2, 1, 1, "", "get_unique_sv_with_support"], [2, 1, 1, "", "is_overlap"], [2, 1, 1, "", "make_axes_for_breakpoints"], [2, 1, 1, "", "make_spline_coordinates"], [2, 1, 1, "", "parse_gtf_region"], [2, 1, 1, "", "plot_cn_on_axes"], [2, 1, 1, "", "plot_gene_annotations"], [2, 1, 1, "", "plot_jabba_cn"], [2, 1, 1, "", "plot_quasijabba"], [2, 1, 1, "", "plot_segments_on_axes"], [2, 1, 1, "", "plot_sv_lines_on_cn"], [2, 1, 1, "", "plot_svs_to_cn_segments"], [2, 1, 1, "", "plot_transition_on_axes"], [2, 1, 1, "", "plot_vaf_cn_sv_for_reads"], [2, 1, 1, "", "plot_vaf_on_axes"]], "ontmont.process": [[2, 1, 1, "", "filter_sv_by_clone"], [2, 1, 1, "", "merge_cn_segments"], [2, 1, 1, "", "update_blocks_and_reset_prev"]], "ontmont.utils": [[2, 1, 1, "", "enumerate_breakpoints"], [2, 1, 1, "", "extract_split_alignments"], [2, 1, 1, "", "filter_breakpoints_at_contig_ends"], [2, 1, 1, "", "filter_sv_with_breakpoint_at_contig_ends"], [2, 1, 1, "", "get_chromosomes_to_process"], [2, 1, 1, "", "get_secondaries"], [2, 1, 1, "", "is_breakpoints_not_sorted"], [2, 1, 1, "", "make_split_read_table"], [2, 1, 1, "", "remove_duplicates_from_tra_table"], [2, 1, 1, "", "reverse_complement"], [2, 1, 1, "", "shuffle_seq"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"]}, "titleterms": {"welcom": 0, "ontmont": [0, 1, 2], "": 0, "document": 0, "content": [0, 2], "indic": 0, "tabl": 0, "packag": 2, "submodul": 2, "bundl": 2, "modul": 2, "cli": 2, "collect": 2, "datatyp": 2, "ir": 2, "plot": 2, "process": 2, "util": 2}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Welcome to ontmont\u2019s documentation!": [[0, "welcome-to-ontmont-s-documentation"]], "Contents:": [[0, null]], "Indices and tables": [[0, "indices-and-tables"]], "ontmont": [[1, "ontmont"]], "ontmont package": [[2, "ontmont-package"]], "Submodules": [[2, "submodules"]], "ontmont.bundle module": [[2, "module-ontmont.bundle"]], "ontmont.cli module": [[2, "module-ontmont.cli"]], "ontmont.collect module": [[2, "module-ontmont.collect"]], "ontmont.datatypes module": [[2, "module-ontmont.datatypes"]], "ontmont.irs module": [[2, "module-ontmont.irs"]], "ontmont.plot module": [[2, "module-ontmont.plot"]], "ontmont.process module": [[2, "module-ontmont.process"]], "ontmont.utils module": [[2, "module-ontmont.utils"]], "Module contents": [[2, "module-ontmont"]]}, "indexentries": {"breakpoint (class in ontmont.datatypes)": [[2, "ontmont.datatypes.Breakpoint"]], "breakpointchain (class in ontmont.datatypes)": [[2, "ontmont.datatypes.BreakpointChain"]], "breakpointpair (class in ontmont.datatypes)": [[2, "ontmont.datatypes.BreakpointPair"]], "sample (class in ontmont.datatypes)": [[2, "ontmont.datatypes.Sample"]], "segments (class in ontmont.datatypes)": [[2, "ontmont.datatypes.Segments"]], "splitalignment (class in ontmont.datatypes)": [[2, "ontmont.datatypes.SplitAlignment"]], "transitions (class in ontmont.datatypes)": [[2, "ontmont.datatypes.Transitions"]], "add_gene_annotations() (in module ontmont.plot)": [[2, "ontmont.plot.add_gene_annotations"]], "add_sv_legend_to_axes() (in module ontmont.plot)": [[2, "ontmont.plot.add_sv_legend_to_axes"]], "align_two_sequences() (in module ontmont.irs)": [[2, "ontmont.irs.align_two_sequences"]], "calc_distance_score() (in module ontmont.irs)": [[2, "ontmont.irs.calc_distance_score"]], "calc_pval_bilateral_ir() (in module ontmont.irs)": [[2, "ontmont.irs.calc_pval_bilateral_ir"]], "calc_pval_holliday() (in module ontmont.irs)": [[2, "ontmont.irs.calc_pval_holliday"]], "calc_pval_onesided_ir() (in module ontmont.irs)": [[2, "ontmont.irs.calc_pval_onesided_ir"]], "calc_pval_segmental_ir() (in module ontmont.irs)": [[2, "ontmont.irs.calc_pval_segmental_ir"]], "chroms (ontmont.datatypes.breakpoint attribute)": [[2, "ontmont.datatypes.Breakpoint.chroms"]], "convert_tupleproxy_to_pyranges() (in module ontmont.plot)": [[2, "ontmont.plot.convert_tupleproxy_to_pyranges"]], "enumerate_breakpoints() (in module ontmont.utils)": [[2, "ontmont.utils.enumerate_breakpoints"]], "extract_cigar_field() (ontmont.datatypes.splitalignment method)": [[2, "ontmont.datatypes.SplitAlignment.extract_cigar_field"]], "extract_split_alignments() (in module ontmont.collect)": [[2, "ontmont.collect.extract_split_alignments"]], "extract_split_alignments() (in module ontmont.utils)": [[2, "ontmont.utils.extract_split_alignments"]], "extract_vaf_from_annotated_sv_table() (in module ontmont.plot)": [[2, "ontmont.plot.extract_vaf_from_annotated_sv_table"]], "filter_breakpoints_at_contig_ends() (in module ontmont.utils)": [[2, "ontmont.utils.filter_breakpoints_at_contig_ends"]], "filter_sv_by_clone() (in module ontmont.process)": [[2, "ontmont.process.filter_sv_by_clone"]], "filter_sv_with_breakpoint_at_contig_ends() (in module ontmont.utils)": [[2, "ontmont.utils.filter_sv_with_breakpoint_at_contig_ends"]], "find_presence_of_matching_sv() (in module ontmont.collect)": [[2, "ontmont.collect.find_presence_of_matching_sv"]], "fix_coordinate_xticklabels() (in module ontmont.plot)": [[2, "ontmont.plot.fix_coordinate_xticklabels"]], "fix_lower_support_coordinates() (in module ontmont.collect)": [[2, "ontmont.collect.fix_lower_support_coordinates"]], "fix_yticks_with_integers() (in module ontmont.plot)": [[2, "ontmont.plot.fix_yticks_with_integers"]], "get_best_holliday_junctions() (in module ontmont.irs)": [[2, "ontmont.irs.get_best_holliday_junctions"]], "get_best_ir_within_breakpoints() (in module ontmont.irs)": [[2, "ontmont.irs.get_best_ir_within_breakpoints"]], "get_best_ir_within_segment() (in module ontmont.irs)": [[2, "ontmont.irs.get_best_ir_within_segment"]], "get_best_onesided_ir() (in module ontmont.irs)": [[2, "ontmont.irs.get_best_onesided_ir"]], "get_breakpoint_pair_seq_data() (in module ontmont.irs)": [[2, "ontmont.irs.get_breakpoint_pair_seq_data"]], "get_breakpoint_seqs() (in module ontmont.datatypes)": [[2, "ontmont.datatypes.get_breakpoint_seqs"]], "get_breakpoint_seqs() (ontmont.datatypes.breakpoint method)": [[2, "ontmont.datatypes.Breakpoint.get_breakpoint_seqs"]], "get_breakpoint_support_from_bundle() (in module ontmont.collect)": [[2, "ontmont.collect.get_breakpoint_support_from_bundle"]], "get_chrom_xlims() (in module ontmont.plot)": [[2, "ontmont.plot.get_chrom_xlims"]], "get_chromosomes_from_bundle() (in module ontmont.plot)": [[2, "ontmont.plot.get_chromosomes_from_bundle"]], "get_chromosomes_to_process() (in module ontmont.utils)": [[2, "ontmont.utils.get_chromosomes_to_process"]], "get_cigar_tuples() (ontmont.datatypes.splitalignment static method)": [[2, "ontmont.datatypes.SplitAlignment.get_cigar_tuples"]], "get_cn_blocks_for_read_xlim() (in module ontmont.plot)": [[2, "ontmont.plot.get_cn_blocks_for_read_xlim"]], "get_edgecolor() (in module ontmont.plot)": [[2, "ontmont.plot.get_edgecolor"]], "get_gene_repr_exons() (in module ontmont.plot)": [[2, "ontmont.plot.get_gene_repr_exons"]], "get_list() (ontmont.datatypes.segments method)": [[2, "ontmont.datatypes.Segments.get_list"]], "get_list() (ontmont.datatypes.transitions method)": [[2, "ontmont.datatypes.Transitions.get_list"]], "get_normalized_sv() (in module ontmont.collect)": [[2, "ontmont.collect.get_normalized_sv"]], "get_onesided_ir() (in module ontmont.irs)": [[2, "ontmont.irs.get_onesided_ir"]], "get_repr_transcript_id() (in module ontmont.plot)": [[2, "ontmont.plot.get_repr_transcript_id"]], "get_secondaries() (in module ontmont.utils)": [[2, "ontmont.utils.get_secondaries"]], "get_segments() (ontmont.datatypes.breakpointchain method)": [[2, "ontmont.datatypes.BreakpointChain.get_segments"]], "get_sv_table_chroms() (in module ontmont.plot)": [[2, "ontmont.plot.get_sv_table_chroms"]], "get_svtype() (in module ontmont.collect)": [[2, "ontmont.collect.get_svtype"]], "get_transcript_exons() (in module ontmont.plot)": [[2, "ontmont.plot.get_transcript_exons"]], "get_transitions() (ontmont.datatypes.breakpointchain method)": [[2, "ontmont.datatypes.BreakpointChain.get_transitions"]], "get_unique_sv_with_support() (in module ontmont.plot)": [[2, "ontmont.plot.get_unique_sv_with_support"]], "is_breakpoints_not_sorted() (in module ontmont.utils)": [[2, "ontmont.utils.is_breakpoints_not_sorted"]], "is_holliday_junction() (in module ontmont.irs)": [[2, "ontmont.irs.is_holliday_junction"]], "is_overlap() (in module ontmont.plot)": [[2, "ontmont.plot.is_overlap"]], "long_samples (ontmont.datatypes.sample attribute)": [[2, "ontmont.datatypes.Sample.long_samples"]], "make_axes_for_breakpoints() (in module ontmont.plot)": [[2, "ontmont.plot.make_axes_for_breakpoints"]], "make_brk_supports() (in module ontmont.bundle)": [[2, "ontmont.bundle.make_brk_supports"]], "make_brk_table() (in module ontmont.bundle)": [[2, "ontmont.bundle.make_brk_table"]], "make_brks_bundle() (in module ontmont.bundle)": [[2, "ontmont.bundle.make_brks_bundle"]], "make_brks_bundle() (in module ontmont.collect)": [[2, "ontmont.collect.make_brks_bundle"]], "make_seg_table() (in module ontmont.bundle)": [[2, "ontmont.bundle.make_seg_table"]], "make_spline_coordinates() (in module ontmont.plot)": [[2, "ontmont.plot.make_spline_coordinates"]], "make_split_read_table() (in module ontmont.utils)": [[2, "ontmont.utils.make_split_read_table"]], "make_tra_table() (in module ontmont.bundle)": [[2, "ontmont.bundle.make_tra_table"]], "make_tumor_sv_table() (in module ontmont.collect)": [[2, "ontmont.collect.make_tumor_sv_table"]], "map_similar_coordinate_to_higher_rank() (in module ontmont.collect)": [[2, "ontmont.collect.map_similar_coordinate_to_higher_rank"]], "merge_cn_segments() (in module ontmont.process)": [[2, "ontmont.process.merge_cn_segments"]], "module": [[2, "module-ontmont"], [2, "module-ontmont.bundle"], [2, "module-ontmont.cli"], [2, "module-ontmont.collect"], [2, "module-ontmont.datatypes"], [2, "module-ontmont.irs"], [2, "module-ontmont.plot"], [2, "module-ontmont.process"], [2, "module-ontmont.utils"]], "normalize_sv_table() (in module ontmont.collect)": [[2, "ontmont.collect.normalize_sv_table"]], "ontmont": [[2, "module-ontmont"]], "ontmont.bundle": [[2, "module-ontmont.bundle"]], "ontmont.cli": [[2, "module-ontmont.cli"]], "ontmont.collect": [[2, "module-ontmont.collect"]], "ontmont.datatypes": [[2, "module-ontmont.datatypes"]], "ontmont.irs": [[2, "module-ontmont.irs"]], "ontmont.plot": [[2, "module-ontmont.plot"]], "ontmont.process": [[2, "module-ontmont.process"]], "ontmont.utils": [[2, "module-ontmont.utils"]], "overlaps() (in module ontmont.irs)": [[2, "ontmont.irs.overlaps"]], "parse_gtf_region() (in module ontmont.plot)": [[2, "ontmont.plot.parse_gtf_region"]], "plot_cn_on_axes() (in module ontmont.plot)": [[2, "ontmont.plot.plot_cn_on_axes"]], "plot_gene_annotations() (in module ontmont.plot)": [[2, "ontmont.plot.plot_gene_annotations"]], "plot_jabba_cn() (in module ontmont.plot)": [[2, "ontmont.plot.plot_jabba_cn"]], "plot_quasijabba() (in module ontmont.plot)": [[2, "ontmont.plot.plot_quasijabba"]], "plot_segments_on_axes() (in module ontmont.plot)": [[2, "ontmont.plot.plot_segments_on_axes"]], "plot_sv_lines_on_cn() (in module ontmont.plot)": [[2, "ontmont.plot.plot_sv_lines_on_cn"]], "plot_svs_to_cn_segments() (in module ontmont.plot)": [[2, "ontmont.plot.plot_svs_to_cn_segments"]], "plot_transition_on_axes() (in module ontmont.plot)": [[2, "ontmont.plot.plot_transition_on_axes"]], "plot_vaf_cn_sv_for_reads() (in module ontmont.plot)": [[2, "ontmont.plot.plot_vaf_cn_sv_for_reads"]], "plot_vaf_on_axes() (in module ontmont.plot)": [[2, "ontmont.plot.plot_vaf_on_axes"]], "pull_breakpoints_from_bam_files() (in module ontmont.collect)": [[2, "ontmont.collect.pull_breakpoints_from_bam_files"]], "pull_breakpoints_from_reads_in_sv_regions() (in module ontmont.collect)": [[2, "ontmont.collect.pull_breakpoints_from_reads_in_sv_regions"]], "pull_sv_supporting_reads_from_bundle() (in module ontmont.collect)": [[2, "ontmont.collect.pull_sv_supporting_reads_from_bundle"]], "remove_duplicates_from_tra_table() (in module ontmont.utils)": [[2, "ontmont.utils.remove_duplicates_from_tra_table"]], "reverse_complement() (in module ontmont.utils)": [[2, "ontmont.utils.reverse_complement"]], "sample2group (ontmont.datatypes.sample attribute)": [[2, "ontmont.datatypes.Sample.sample2group"]], "sample2short (ontmont.datatypes.sample attribute)": [[2, "ontmont.datatypes.Sample.sample2short"]], "shuffle_seq() (in module ontmont.utils)": [[2, "ontmont.utils.shuffle_seq"]], "update_blocks_and_reset_prev() (in module ontmont.process)": [[2, "ontmont.process.update_blocks_and_reset_prev"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["index", "modules", "ontmont"], "filenames": ["index.rst", "modules.rst", "ontmont.rst"], "titles": ["Welcome to ontmont\u2019s documentation!", "ontmont", "ontmont package"], "terms": {"packag": [0, 1], "submodul": [0, 1], "bundl": [0, 1], "modul": [0, 1], "cli": [0, 1], "collect": [0, 1], "datatyp": [0, 1], "ir": [0, 1], "plot": [0, 1], "process": [0, 1], "util": [0, 1], "index": 0, "search": 0, "page": 0, "make_brk_support": [1, 2], "make_brk_t": [1, 2], "make_brks_bundl": [1, 2], "make_seg_t": [1, 2], "make_tra_t": [1, 2], "extract_split_align": [1, 2], "find_presence_of_matching_sv": [1, 2], "fix_lower_support_coordin": [1, 2], "get_breakpoint_support_from_bundl": [1, 2], "get_normalized_sv": [1, 2], "get_svtyp": [1, 2], "make_tumor_sv_t": [1, 2], "map_similar_coordinate_to_higher_rank": [1, 2], "normalize_sv_t": [1, 2], "pull_breakpoints_from_bam_fil": [1, 2], "pull_breakpoints_from_reads_in_sv_region": [1, 2], "pull_sv_supporting_reads_from_bundl": [1, 2], "breakpoint": [1, 2], "chrom": [1, 2], "get_breakpoint_seq": [1, 2], "breakpointchain": [1, 2], "get_seg": [1, 2], "get_transit": [1, 2], "breakpointpair": [1, 2], "sampl": [1, 2], "long_sampl": [1, 2], "sample2group": [1, 2], "sample2short": [1, 2], "segment": [1, 2], "get_list": [1, 2], "splitalign": [1, 2], "extract_cigar_field": [1, 2], "get_cigar_tupl": [1, 2], "transit": [1, 2], "align_two_sequ": [1, 2], "calc_distance_scor": [1, 2], "calc_pval_bilateral_ir": [1, 2], "calc_pval_hollidai": [1, 2], "calc_pval_onesided_ir": [1, 2], "calc_pval_segmental_ir": [1, 2], "get_best_holliday_junct": [1, 2], "get_best_ir_within_breakpoint": [1, 2], "get_best_ir_within_seg": [1, 2], "get_best_onesided_ir": [1, 2], "get_breakpoint_pair_seq_data": [1, 2], "get_onesided_ir": [1, 2], "is_holliday_junct": [1, 2], "overlap": [1, 2], "add_gene_annot": [1, 2], "add_sv_legend_to_ax": [1, 2], "convert_tupleproxy_to_pyrang": [1, 2], "extract_vaf_from_annotated_sv_t": [1, 2], "fix_coordinate_xticklabel": [1, 2], "fix_yticks_with_integ": [1, 2], "get_chrom_xlim": [1, 2], "get_chromosomes_from_bundl": [1, 2], "get_cn_blocks_for_read_xlim": [1, 2], "get_edgecolor": [1, 2], "get_gene_repr_exon": [1, 2], "get_repr_transcript_id": [1, 2], "get_sv_table_chrom": [1, 2], "get_transcript_exon": [1, 2], "get_unique_sv_with_support": [1, 2], "is_overlap": [1, 2], "make_axes_for_breakpoint": [1, 2], "make_spline_coordin": [1, 2], "parse_gtf_region": [1, 2], "plot_cn_on_ax": [1, 2], "plot_gene_annot": [1, 2], "plot_jabba_cn": [1, 2], "plot_quasijabba": [1, 2], "plot_segments_on_ax": [1, 2], "plot_sv_lines_on_cn": [1, 2], "plot_svs_to_cn_seg": [1, 2], "plot_transition_on_ax": [1, 2], "plot_vaf_cn_sv_for_read": [1, 2], "plot_vaf_on_ax": [1, 2], "filter_sv_by_clon": [1, 2], "merge_cn_seg": [1, 2], "update_blocks_and_reset_prev": [1, 2], "enumerate_breakpoint": [1, 2], "filter_breakpoints_at_contig_end": [1, 2], "filter_sv_with_breakpoint_at_contig_end": [1, 2], "get_chromosomes_to_process": [1, 2], "get_secondari": [1, 2], "is_breakpoints_not_sort": [1, 2], "make_split_read_t": [1, 2], "remove_duplicates_from_tra_t": [1, 2], "reverse_compl": [1, 2], "shuffle_seq": [1, 2], "content": 1, "count": 2, "support": 2, "uniqu": 2, "coordin": 2, "paramet": 2, "list": 2, "return": 2, "panda": 2, "seri": 2, "take": 2, "po": 2, "ori": 2, "account": 2, "brk_support": 2, "unilateral_score_cutoff": 2, "5": 2, "bilateral_score_cutoff": 2, "8": 2, "creat": 2, "datafram": 2, "variabl": 2, "dict": 2, "number": 2, "each": 2, "int": 2, "option": 2, "align": 2, "score": 2, "cutoff": 2, "unilater": 2, "default": 2, "bilater": 2, "tabl": 2, "statist": 2, "reads_df": 2, "genom": 2, "sw_palindrom": 2, "sw_hollidai": 2, "margin": 2, "15": 2, "30": 2, "60": 2, "make": 2, "breapointchain": 2, "base": 2, "read": 2, "pyfaidx": 2, "fasta": 2, "swalign": 2, "localalign": 2, "detect": 2, "homologi": 2, "slice": 2, "from": 2, "seg_support": 2, "segment_score_cutoff": 2, "found": 2, "tra_support": 2, "sv": 2, "duplic": 2, "remov": 2, "locat": 2, "contig": 2, "termini": 2, "max_read": 2, "500": 2, "extract": 2, "object": 2, "iteratorrow": 2, "pysam": 2, "fetch": 2, "alignmentfil": 2, "maximum": 2, "sv1": 2, "sv2": 2, "50": 2, "check": 2, "label": 2, "match": 2, "refer": 2, "presenc": 2, "bp": 2, "differ": 2, "pd": 2, "true": 2, "fals": 2, "length": 2, "equal": 2, "row": 2, "size": 2, "complex": 2, "coord_map": 2, "map": 2, "lower": 2, "close": 2, "higher": 2, "str": 2, "fix": 2, "get": 2, "counter": 2, "tra": 2, "sort": 2, "normal": 2, "pair": 2, "flatten": 2, "type": 2, "string": 2, "given": 2, "class": 2, "rais": 2, "valueerror": 2, "If": 2, "ha": 2, "been": 2, "assign": 2, "none": 2, "10": 2, "get_support": 2, "sourc": 2, "in_sourc": 2, "flag": 2, "merg": 2, "cluster": 2, "bool": 2, "same": 2, "add": 2, "collaps": 2, "breakpoint_support": 2, "prioriti": 2, "tupl": 2, "contain": 2, "src": 2, "dst": 2, "coord_map_log": 2, "max_coord": 2, "src_count": 2, "max_count": 2, "onli": 2, "debug": 2, "chrom1_col": 2, "chromosome_1": 2, "chrom2_col": 2, "chromosome_2": 2, "pos1_col": 2, "position_1": 2, "pos2_col": 2, "position_2": 2, "ori1_col": 2, "strand_1": 2, "ori2_col": 2, "strand_2": 2, "breakpoint1": 2, "breakpoint2": 2, "bam_path": 2, "get_read_t": 2, "bam": 2, "file": 2, "accord": 2, "an": 2, "input": 2, "well": 2, "stat": 2, "min_n_breakpoint": 2, "3": 2, "append": 2, "minimum": 2, "requir": 2, "save": 2, "us": 2, "select": 2, "rearrang": 2, "i": 2, "high": 2, "filter": 2, "includ": 2, "have": 2, "orient": 2, "1": 2, "2": 2, "4": 2, "6": 2, "7": 2, "9": 2, "11": 2, "12": 2, "13": 2, "14": 2, "16": 2, "17": 2, "18": 2, "19": 2, "20": 2, "21": 2, "22": 2, "x": 2, "y": 2, "m": 2, "chr1": 2, "chr2": 2, "chr3": 2, "chr4": 2, "chr5": 2, "chr6": 2, "chr7": 2, "chr8": 2, "chr9": 2, "chr10": 2, "chr11": 2, "chr12": 2, "chr13": 2, "chr14": 2, "chr15": 2, "chr16": 2, "chr17": 2, "chr18": 2, "chr19": 2, "chr20": 2, "chr21": 2, "chr22": 2, "chrx": 2, "chry": 2, "chrm": 2, "brks_iter": 2, "sort_transit": 2, "brk1": 2, "brk2": 2, "14472b_201": 2, "14472b_202": 2, "14472b_500": 2, "14472b_501": 2, "14472c_203": 2, "14472c_204": 2, "14472c_502": 2, "14472d_101": 2, "14472d_102": 2, "14472d_103": 2, "14472d_104": 2, "14472d_205": 2, "14472_100": 2, "14472_300": 2, "201": 2, "202": 2, "501": 2, "203": 2, "204": 2, "502": 2, "101": 2, "102": 2, "103": 2, "104": 2, "205": 2, "100": 2, "300": 2, "df": 2, "cigarstr": 2, "read_nam": 2, "refnam": 2, "read_po": 2, "strand": 2, "static": 2, "cigar": 2, "seq1": 2, "seq2": 2, "sw": 2, "rc": 2, "dist1": 2, "dist2": 2, "dist_cutoff1": 2, "dist_cutoff2": 2, "src_score": 2, "n_iter": 2, "1000": 2, "random_se": 2, "42": 2, "negative1": 2, "negative2": 2, "seq": 2, "direct": 2, "dist_cutoff": 2, "ori1": 2, "ori2": 2, "score_cutoff": 2, "aln": 2, "dist_sum_cutoff": 2, "seg1": 2, "seg2": 2, "ax": 2, "gtf": 2, "chromosom": 2, "start": 2, "end": 2, "gene": 2, "already_plot": 2, "gene_font_s": 2, "sv_ax": 2, "svcolor": 2, "alpha": 2, "0": 2, "loc1": 2, "82": 2, "loc2": 2, "left": 2, "show_support_legend": 2, "exon": 2, "cn_ax": 2, "read_sv": 2, "read_chrom": 2, "sv_x_length_margin": 2, "cn": 2, "chrom_xlim": 2, "bin_siz": 2, "50000": 2, "clone": 2, "pseudobulk": 2, "svtype": 2, "lenient": 2, "gene_nam": 2, "transcript_id": 2, "interval1": 2, "interval2": 2, "brk_chrom": 2, "figsiz": 2, "hspace": 2, "rowsiz": 2, "mode": 2, "vaf": 2, "width_ratio": 2, "pos1": 2, "pos2": 2, "sv_y": 2, "margin_div": 2, "y_offset": 2, "05": 2, "region": 2, "clone_color": 2, "metric": 2, "copi": 2, "max_cn": 2, "input_sv": 2, "chrom_cn": 2, "cn_color": 2, "ylim": 2, "cn_clone": 2, "svlineh": 2, "83": 2, "75": 2, "default_rad": 2, "25": 2, "suptitl": 2, "read_length": 2, "gene_margin": 2, "linewidth": 2, "intra_y_offset": 2, "linetick_divfactor": 2, "plot_data": 2, "_linewidth": 2, "sv_x_offset": 2, "100000": 2, "clone_id": 2, "fig_row_s": 2, "40": 2, "cn_window": 2, "200000": 2, "cn_metric": 2, "state": 2, "vaf_ax": 2, "flt_ont_sv": 2, "vaf_col_str": 2, "vaf_": 2, "merge_gap": 2, "block": 2, "prev": 2, "featur": 2, "chr": 2, "chroms_proc": 2, "brk_df": 2, "drop_expression_vector": 2, "chrom1": 2, "chrom2": 2, "chrom_ord": 2, "tra_df": 2}, "objects": {"": [[2, 0, 0, "-", "ontmont"]], "ontmont": [[2, 0, 0, "-", "bundle"], [2, 0, 0, "-", "cli"], [2, 0, 0, "-", "collect"], [2, 0, 0, "-", "datatypes"], [2, 0, 0, "-", "irs"], [2, 0, 0, "-", "plot"], [2, 0, 0, "-", "process"], [2, 0, 0, "-", "utils"]], "ontmont.bundle": [[2, 1, 1, "", "make_brk_supports"], [2, 1, 1, "", "make_brk_table"], [2, 1, 1, "", "make_brks_bundle"], [2, 1, 1, "", "make_seg_table"], [2, 1, 1, "", "make_tra_table"]], "ontmont.collect": [[2, 1, 1, "", "extract_split_alignments"], [2, 1, 1, "", "find_presence_of_matching_sv"], [2, 1, 1, "", "fix_lower_support_coordinates"], [2, 1, 1, "", "get_breakpoint_support_from_bundle"], [2, 1, 1, "", "get_normalized_sv"], [2, 1, 1, "", "get_svtype"], [2, 1, 1, "", "make_brks_bundle"], [2, 1, 1, "", "make_tumor_sv_table"], [2, 1, 1, "", "map_similar_coordinate_to_higher_rank"], [2, 1, 1, "", "normalize_sv_table"], [2, 1, 1, "", "pull_breakpoints_from_bam_files"], [2, 1, 1, "", "pull_breakpoints_from_reads_in_sv_regions"], [2, 1, 1, "", "pull_sv_supporting_reads_from_bundle"]], "ontmont.datatypes": [[2, 2, 1, "", "Breakpoint"], [2, 2, 1, "", "BreakpointChain"], [2, 2, 1, "", "BreakpointPair"], [2, 2, 1, "", "Sample"], [2, 2, 1, "", "Segments"], [2, 2, 1, "", "SplitAlignment"], [2, 2, 1, "", "Transitions"], [2, 1, 1, "", "get_breakpoint_seqs"]], "ontmont.datatypes.Breakpoint": [[2, 3, 1, "", "chroms"], [2, 4, 1, "", "get_breakpoint_seqs"]], "ontmont.datatypes.BreakpointChain": [[2, 4, 1, "", "get_segments"], [2, 4, 1, "", "get_transitions"]], "ontmont.datatypes.Sample": [[2, 3, 1, "", "long_samples"], [2, 3, 1, "", "sample2group"], [2, 3, 1, "", "sample2short"]], "ontmont.datatypes.Segments": [[2, 4, 1, "", "get_list"]], "ontmont.datatypes.SplitAlignment": [[2, 4, 1, "", "extract_cigar_field"], [2, 4, 1, "", "get_cigar_tuples"]], "ontmont.datatypes.Transitions": [[2, 4, 1, "", "get_list"]], "ontmont.irs": [[2, 1, 1, "", "align_two_sequences"], [2, 1, 1, "", "calc_distance_score"], [2, 1, 1, "", "calc_pval_bilateral_ir"], [2, 1, 1, "", "calc_pval_holliday"], [2, 1, 1, "", "calc_pval_onesided_ir"], [2, 1, 1, "", "calc_pval_segmental_ir"], [2, 1, 1, "", "get_best_holliday_junctions"], [2, 1, 1, "", "get_best_ir_within_breakpoints"], [2, 1, 1, "", "get_best_ir_within_segment"], [2, 1, 1, "", "get_best_onesided_ir"], [2, 1, 1, "", "get_breakpoint_pair_seq_data"], [2, 1, 1, "", "get_onesided_ir"], [2, 1, 1, "", "is_holliday_junction"], [2, 1, 1, "", "overlaps"]], "ontmont.plot": [[2, 1, 1, "", "add_gene_annotations"], [2, 1, 1, "", "add_sv_legend_to_axes"], [2, 1, 1, "", "convert_tupleproxy_to_pyranges"], [2, 1, 1, "", "extract_vaf_from_annotated_sv_table"], [2, 1, 1, "", "fix_coordinate_xticklabels"], [2, 1, 1, "", "fix_yticks_with_integers"], [2, 1, 1, "", "get_chrom_xlims"], [2, 1, 1, "", "get_chromosomes_from_bundle"], [2, 1, 1, "", "get_cn_blocks_for_read_xlim"], [2, 1, 1, "", "get_edgecolor"], [2, 1, 1, "", "get_gene_repr_exons"], [2, 1, 1, "", "get_repr_transcript_id"], [2, 1, 1, "", "get_sv_table_chroms"], [2, 1, 1, "", "get_transcript_exons"], [2, 1, 1, "", "get_unique_sv_with_support"], [2, 1, 1, "", "is_overlap"], [2, 1, 1, "", "make_axes_for_breakpoints"], [2, 1, 1, "", "make_spline_coordinates"], [2, 1, 1, "", "parse_gtf_region"], [2, 1, 1, "", "plot_cn_on_axes"], [2, 1, 1, "", "plot_gene_annotations"], [2, 1, 1, "", "plot_jabba_cn"], [2, 1, 1, "", "plot_quasijabba"], [2, 1, 1, "", "plot_segments_on_axes"], [2, 1, 1, "", "plot_sv_lines_on_cn"], [2, 1, 1, "", "plot_svs_to_cn_segments"], [2, 1, 1, "", "plot_transition_on_axes"], [2, 1, 1, "", "plot_vaf_cn_sv_for_reads"], [2, 1, 1, "", "plot_vaf_on_axes"]], "ontmont.process": [[2, 1, 1, "", "filter_sv_by_clone"], [2, 1, 1, "", "merge_cn_segments"], [2, 1, 1, "", "update_blocks_and_reset_prev"]], "ontmont.utils": [[2, 1, 1, "", "enumerate_breakpoints"], [2, 1, 1, "", "extract_split_alignments"], [2, 1, 1, "", "filter_breakpoints_at_contig_ends"], [2, 1, 1, "", "filter_sv_with_breakpoint_at_contig_ends"], [2, 1, 1, "", "get_chromosomes_to_process"], [2, 1, 1, "", "get_secondaries"], [2, 1, 1, "", "is_breakpoints_not_sorted"], [2, 1, 1, "", "make_split_read_table"], [2, 1, 1, "", "remove_duplicates_from_tra_table"], [2, 1, 1, "", "reverse_complement"], [2, 1, 1, "", "shuffle_seq"]]}, "objtypes": {"0": "py:module", "1": "py:function", "2": "py:class", "3": "py:attribute", "4": "py:method"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"]}, "titleterms": {"welcom": 0, "ontmont": [0, 1, 2], "": 0, "document": 0, "content": [0, 2], "indic": 0, "tabl": 0, "packag": 2, "submodul": 2, "bundl": 2, "modul": 2, "cli": 2, "collect": 2, "datatyp": 2, "ir": 2, "plot": 2, "process": 2, "util": 2}, "envversion": {"sphinx.domains.c": 2, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 8, "sphinx.domains.index": 1, "sphinx.domains.javascript": 2, "sphinx.domains.math": 2, "sphinx.domains.python": 3, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx": 57}, "alltitles": {"Welcome to ontmont\u2019s documentation!": [[0, "welcome-to-ontmont-s-documentation"]], "Contents:": [[0, null]], "Indices and tables": [[0, "indices-and-tables"]], "ontmont": [[1, "ontmont"]], "ontmont package": [[2, "ontmont-package"]], "Submodules": [[2, "submodules"]], "ontmont.bundle module": [[2, "module-ontmont.bundle"]], "ontmont.cli module": [[2, "module-ontmont.cli"]], "ontmont.collect module": [[2, "module-ontmont.collect"]], "ontmont.datatypes module": [[2, "module-ontmont.datatypes"]], "ontmont.irs module": [[2, "module-ontmont.irs"]], "ontmont.plot module": [[2, "module-ontmont.plot"]], "ontmont.process module": [[2, "module-ontmont.process"]], "ontmont.utils module": [[2, "module-ontmont.utils"]], "Module contents": [[2, "module-ontmont"]]}, "indexentries": {"breakpoint (class in ontmont.datatypes)": [[2, "ontmont.datatypes.Breakpoint"]], "breakpointchain (class in ontmont.datatypes)": [[2, "ontmont.datatypes.BreakpointChain"]], "breakpointpair (class in ontmont.datatypes)": [[2, "ontmont.datatypes.BreakpointPair"]], "sample (class in ontmont.datatypes)": [[2, "ontmont.datatypes.Sample"]], "segments (class in ontmont.datatypes)": [[2, "ontmont.datatypes.Segments"]], "splitalignment (class in ontmont.datatypes)": [[2, "ontmont.datatypes.SplitAlignment"]], "transitions (class in ontmont.datatypes)": [[2, "ontmont.datatypes.Transitions"]], "add_gene_annotations() (in module ontmont.plot)": [[2, "ontmont.plot.add_gene_annotations"]], "add_sv_legend_to_axes() (in module ontmont.plot)": [[2, "ontmont.plot.add_sv_legend_to_axes"]], "align_two_sequences() (in module ontmont.irs)": [[2, "ontmont.irs.align_two_sequences"]], "calc_distance_score() (in module ontmont.irs)": [[2, "ontmont.irs.calc_distance_score"]], "calc_pval_bilateral_ir() (in module ontmont.irs)": [[2, "ontmont.irs.calc_pval_bilateral_ir"]], "calc_pval_holliday() (in module ontmont.irs)": [[2, "ontmont.irs.calc_pval_holliday"]], "calc_pval_onesided_ir() (in module ontmont.irs)": [[2, "ontmont.irs.calc_pval_onesided_ir"]], "calc_pval_segmental_ir() (in module ontmont.irs)": [[2, "ontmont.irs.calc_pval_segmental_ir"]], "chroms (ontmont.datatypes.breakpoint attribute)": [[2, "ontmont.datatypes.Breakpoint.chroms"]], "convert_tupleproxy_to_pyranges() (in module ontmont.plot)": [[2, "ontmont.plot.convert_tupleproxy_to_pyranges"]], "enumerate_breakpoints() (in module ontmont.utils)": [[2, "ontmont.utils.enumerate_breakpoints"]], "extract_cigar_field() (ontmont.datatypes.splitalignment method)": [[2, "ontmont.datatypes.SplitAlignment.extract_cigar_field"]], "extract_split_alignments() (in module ontmont.collect)": [[2, "ontmont.collect.extract_split_alignments"]], "extract_split_alignments() (in module ontmont.utils)": [[2, "ontmont.utils.extract_split_alignments"]], "extract_vaf_from_annotated_sv_table() (in module ontmont.plot)": [[2, "ontmont.plot.extract_vaf_from_annotated_sv_table"]], "filter_breakpoints_at_contig_ends() (in module ontmont.utils)": [[2, "ontmont.utils.filter_breakpoints_at_contig_ends"]], "filter_sv_by_clone() (in module ontmont.process)": [[2, "ontmont.process.filter_sv_by_clone"]], "filter_sv_with_breakpoint_at_contig_ends() (in module ontmont.utils)": [[2, "ontmont.utils.filter_sv_with_breakpoint_at_contig_ends"]], "find_presence_of_matching_sv() (in module ontmont.collect)": [[2, "ontmont.collect.find_presence_of_matching_sv"]], "fix_coordinate_xticklabels() (in module ontmont.plot)": [[2, "ontmont.plot.fix_coordinate_xticklabels"]], "fix_lower_support_coordinates() (in module ontmont.collect)": [[2, "ontmont.collect.fix_lower_support_coordinates"]], "fix_yticks_with_integers() (in module ontmont.plot)": [[2, "ontmont.plot.fix_yticks_with_integers"]], "get_best_holliday_junctions() (in module ontmont.irs)": [[2, "ontmont.irs.get_best_holliday_junctions"]], "get_best_ir_within_breakpoints() (in module ontmont.irs)": [[2, "ontmont.irs.get_best_ir_within_breakpoints"]], "get_best_ir_within_segment() (in module ontmont.irs)": [[2, "ontmont.irs.get_best_ir_within_segment"]], "get_best_onesided_ir() (in module ontmont.irs)": [[2, "ontmont.irs.get_best_onesided_ir"]], "get_breakpoint_pair_seq_data() (in module ontmont.irs)": [[2, "ontmont.irs.get_breakpoint_pair_seq_data"]], "get_breakpoint_seqs() (in module ontmont.datatypes)": [[2, "ontmont.datatypes.get_breakpoint_seqs"]], "get_breakpoint_seqs() (ontmont.datatypes.breakpoint method)": [[2, "ontmont.datatypes.Breakpoint.get_breakpoint_seqs"]], "get_breakpoint_support_from_bundle() (in module ontmont.collect)": [[2, "ontmont.collect.get_breakpoint_support_from_bundle"]], "get_chrom_xlims() (in module ontmont.plot)": [[2, "ontmont.plot.get_chrom_xlims"]], "get_chromosomes_from_bundle() (in module ontmont.plot)": [[2, "ontmont.plot.get_chromosomes_from_bundle"]], "get_chromosomes_to_process() (in module ontmont.utils)": [[2, "ontmont.utils.get_chromosomes_to_process"]], "get_cigar_tuples() (ontmont.datatypes.splitalignment static method)": [[2, "ontmont.datatypes.SplitAlignment.get_cigar_tuples"]], "get_cn_blocks_for_read_xlim() (in module ontmont.plot)": [[2, "ontmont.plot.get_cn_blocks_for_read_xlim"]], "get_edgecolor() (in module ontmont.plot)": [[2, "ontmont.plot.get_edgecolor"]], "get_gene_repr_exons() (in module ontmont.plot)": [[2, "ontmont.plot.get_gene_repr_exons"]], "get_list() (ontmont.datatypes.segments method)": [[2, "ontmont.datatypes.Segments.get_list"]], "get_list() (ontmont.datatypes.transitions method)": [[2, "ontmont.datatypes.Transitions.get_list"]], "get_normalized_sv() (in module ontmont.collect)": [[2, "ontmont.collect.get_normalized_sv"]], "get_onesided_ir() (in module ontmont.irs)": [[2, "ontmont.irs.get_onesided_ir"]], "get_repr_transcript_id() (in module ontmont.plot)": [[2, "ontmont.plot.get_repr_transcript_id"]], "get_secondaries() (in module ontmont.utils)": [[2, "ontmont.utils.get_secondaries"]], "get_segments() (ontmont.datatypes.breakpointchain method)": [[2, "ontmont.datatypes.BreakpointChain.get_segments"]], "get_sv_table_chroms() (in module ontmont.plot)": [[2, "ontmont.plot.get_sv_table_chroms"]], "get_svtype() (in module ontmont.collect)": [[2, "ontmont.collect.get_svtype"]], "get_transcript_exons() (in module ontmont.plot)": [[2, "ontmont.plot.get_transcript_exons"]], "get_transitions() (ontmont.datatypes.breakpointchain method)": [[2, "ontmont.datatypes.BreakpointChain.get_transitions"]], "get_unique_sv_with_support() (in module ontmont.plot)": [[2, "ontmont.plot.get_unique_sv_with_support"]], "is_breakpoints_not_sorted() (in module ontmont.utils)": [[2, "ontmont.utils.is_breakpoints_not_sorted"]], "is_holliday_junction() (in module ontmont.irs)": [[2, "ontmont.irs.is_holliday_junction"]], "is_overlap() (in module ontmont.plot)": [[2, "ontmont.plot.is_overlap"]], "long_samples (ontmont.datatypes.sample attribute)": [[2, "ontmont.datatypes.Sample.long_samples"]], "make_axes_for_breakpoints() (in module ontmont.plot)": [[2, "ontmont.plot.make_axes_for_breakpoints"]], "make_brk_supports() (in module ontmont.bundle)": [[2, "ontmont.bundle.make_brk_supports"]], "make_brk_table() (in module ontmont.bundle)": [[2, "ontmont.bundle.make_brk_table"]], "make_brks_bundle() (in module ontmont.bundle)": [[2, "ontmont.bundle.make_brks_bundle"]], "make_brks_bundle() (in module ontmont.collect)": [[2, "ontmont.collect.make_brks_bundle"]], "make_seg_table() (in module ontmont.bundle)": [[2, "ontmont.bundle.make_seg_table"]], "make_spline_coordinates() (in module ontmont.plot)": [[2, "ontmont.plot.make_spline_coordinates"]], "make_split_read_table() (in module ontmont.utils)": [[2, "ontmont.utils.make_split_read_table"]], "make_tra_table() (in module ontmont.bundle)": [[2, "ontmont.bundle.make_tra_table"]], "make_tumor_sv_table() (in module ontmont.collect)": [[2, "ontmont.collect.make_tumor_sv_table"]], "map_similar_coordinate_to_higher_rank() (in module ontmont.collect)": [[2, "ontmont.collect.map_similar_coordinate_to_higher_rank"]], "merge_cn_segments() (in module ontmont.process)": [[2, "ontmont.process.merge_cn_segments"]], "module": [[2, "module-ontmont"], [2, "module-ontmont.bundle"], [2, "module-ontmont.cli"], [2, "module-ontmont.collect"], [2, "module-ontmont.datatypes"], [2, "module-ontmont.irs"], [2, "module-ontmont.plot"], [2, "module-ontmont.process"], [2, "module-ontmont.utils"]], "normalize_sv_table() (in module ontmont.collect)": [[2, "ontmont.collect.normalize_sv_table"]], "ontmont": [[2, "module-ontmont"]], "ontmont.bundle": [[2, "module-ontmont.bundle"]], "ontmont.cli": [[2, "module-ontmont.cli"]], "ontmont.collect": [[2, "module-ontmont.collect"]], "ontmont.datatypes": [[2, "module-ontmont.datatypes"]], "ontmont.irs": [[2, "module-ontmont.irs"]], "ontmont.plot": [[2, "module-ontmont.plot"]], "ontmont.process": [[2, "module-ontmont.process"]], "ontmont.utils": [[2, "module-ontmont.utils"]], "overlaps() (in module ontmont.irs)": [[2, "ontmont.irs.overlaps"]], "parse_gtf_region() (in module ontmont.plot)": [[2, "ontmont.plot.parse_gtf_region"]], "plot_cn_on_axes() (in module ontmont.plot)": [[2, "ontmont.plot.plot_cn_on_axes"]], "plot_gene_annotations() (in module ontmont.plot)": [[2, "ontmont.plot.plot_gene_annotations"]], "plot_jabba_cn() (in module ontmont.plot)": [[2, "ontmont.plot.plot_jabba_cn"]], "plot_quasijabba() (in module ontmont.plot)": [[2, "ontmont.plot.plot_quasijabba"]], "plot_segments_on_axes() (in module ontmont.plot)": [[2, "ontmont.plot.plot_segments_on_axes"]], "plot_sv_lines_on_cn() (in module ontmont.plot)": [[2, "ontmont.plot.plot_sv_lines_on_cn"]], "plot_svs_to_cn_segments() (in module ontmont.plot)": [[2, "ontmont.plot.plot_svs_to_cn_segments"]], "plot_transition_on_axes() (in module ontmont.plot)": [[2, "ontmont.plot.plot_transition_on_axes"]], "plot_vaf_cn_sv_for_reads() (in module ontmont.plot)": [[2, "ontmont.plot.plot_vaf_cn_sv_for_reads"]], "plot_vaf_on_axes() (in module ontmont.plot)": [[2, "ontmont.plot.plot_vaf_on_axes"]], "pull_breakpoints_from_bam_files() (in module ontmont.collect)": [[2, "ontmont.collect.pull_breakpoints_from_bam_files"]], "pull_breakpoints_from_reads_in_sv_regions() (in module ontmont.collect)": [[2, "ontmont.collect.pull_breakpoints_from_reads_in_sv_regions"]], "pull_sv_supporting_reads_from_bundle() (in module ontmont.collect)": [[2, "ontmont.collect.pull_sv_supporting_reads_from_bundle"]], "remove_duplicates_from_tra_table() (in module ontmont.utils)": [[2, "ontmont.utils.remove_duplicates_from_tra_table"]], "reverse_complement() (in module ontmont.utils)": [[2, "ontmont.utils.reverse_complement"]], "sample2group (ontmont.datatypes.sample attribute)": [[2, "ontmont.datatypes.Sample.sample2group"]], "sample2short (ontmont.datatypes.sample attribute)": [[2, "ontmont.datatypes.Sample.sample2short"]], "shuffle_seq() (in module ontmont.utils)": [[2, "ontmont.utils.shuffle_seq"]], "update_blocks_and_reset_prev() (in module ontmont.process)": [[2, "ontmont.process.update_blocks_and_reset_prev"]]}}) \ No newline at end of file diff --git a/docs/conf.py b/docs/conf.py index 0845340..e82d96b 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -22,6 +22,8 @@ 'myst_parser', 'sphinx.ext.autodoc', 'sphinx.ext.napoleon', + 'sphinx_autodoc_typehints', + 'sphinx.ext.viewcode', ] # Napoleon settings diff --git a/ontmont/collect.py b/ontmont/collect.py index 238fc85..ecf0b7a 100644 --- a/ontmont/collect.py +++ b/ontmont/collect.py @@ -203,7 +203,7 @@ def get_svtype(tra:BreakpointPair): """Get SV type string for a given ``BreakpointPair`` Args: - tra (``BreakpointPair``): Paired breakpoint object + tra (:class:``BreakpointPair``): Paired breakpoint object Raises: ValueError: If no SV type has been assigned diff --git a/requirements.txt b/requirements.txt index 28dd6bf..7a8301c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -11,5 +11,6 @@ PyYAML scipy setuptools sphinxcontrib-napoleon +sphinx-autodoc-typehints swalign tqdm