From 2e7974f29d435aad027924ebb283fdad9e2d37a0 Mon Sep 17 00:00:00 2001 From: mzjeeawody Date: Mon, 24 Oct 2022 14:08:53 +0200 Subject: [PATCH 1/5] doxygen --- Documentation/doc-images/CodeFirst.png | Bin 0 -> 77471 bytes Documentation/doxygen/Doxyfile | 2704 ++++++++++++++++++++ Documentation/doxygen/footer.html | 8 + Documentation/doxygen/images/CodeFirst.png | Bin 0 -> 4677 bytes 4 files changed, 2712 insertions(+) create mode 100644 Documentation/doc-images/CodeFirst.png create mode 100644 Documentation/doxygen/Doxyfile create mode 100644 Documentation/doxygen/footer.html create mode 100644 Documentation/doxygen/images/CodeFirst.png diff --git a/Documentation/doc-images/CodeFirst.png b/Documentation/doc-images/CodeFirst.png new file mode 100644 index 0000000000000000000000000000000000000000..50c0a21465d2fe0a04718e4fa43e8d4086c0e162 GIT binary patch literal 77471 zcmeGEcRbhs_dkx`AIKw$2O^c7$_l0I^{Adj$p|IcrG@N0AIc~)Dk__73JuvKqfiLh zTlV&_=i_(o=>7Tr|NHmV<|;RxVj8>MHxPsqx%}TbO~=T|Zap)-p|H`p943dP zWQXWz_B_8|3J<+yjwfDV7~pzWd6*{TJJ)e;YU^W1nc^vg!s*(n{pepD_1ST4zV8iaYp0nM>-9;+u8v><<)vPj#h;kp-WU=bUf=HTYJ`*Uj<90 zjGxS8;_I0x=^a_^;E8dyK9*>!M+U1z|D1R2eza%jN5ahknVp{yiUT8hO5k?? z@mqz{?oWG9)RFJ}h(Be;zWa}lpUv<7M0Yh3yYnN#@PCi|pDmI9IT3>VFM5#w!3Od_ zyhM=yB?{z!84~#)H9-DHvw#)9LS8G`!O~-sc2_s z$1bLH{$KgT-%dXR4EjEgn3a3)WWuza5;uckf=~(o|=$ZRSSU!oq@c z=}F0d=HV?Y)Y^LCwytjAL3%7?huX))gh}Ku@5LvBNUJ{mX&sz=| z`6jD}Nt?&t=)N2uAAg*&AD*#qu5rb&bh7M4j9o5F>^53wF0D)iZeM`$H09TAqCGSL4#5Z<&kqj85+$!rjLgoWiz-xc&` zjUEBg@1CNE#Gw?}xsH!5 z{Qdl+siGo1THkZf&1YUkw%KF#?wjO%e_^4``#j>{HO0IhwC==GPt+%vT^+XO;(V_p zPsj112Szx4N?vU1Z;;%TnZk9IF|y$&E?Xn#RVmdZj~qGD7?fF3Y+E$XMPlh)xs<=q z`11;>uFVZWVh{eB37whlvFYKSR1K9kRaRA9m$?|X?Ll|NJUZOm6E=KFGvx~{Iu@Z@ zF^9P7SHn57NwpU4XY}TZ1g?+-=HnNm%AgqMZ~s_b{bv!crJYlu0B5LOKL`Q$}c+s8en9ionx8Bi-LFNF$m$}8-=#z<;Bpu;9@dM zqw#VhYKkhTb|7lHMX}*BQxwrd%3M~$Y^_YreF|)Na>dFdw`AkfPmS(MW@#%B9zwby zfZLa9VlL}biHV6#f4ioLx}e%3k#9xj@m7>W@2VL^QTL3c`LILx$hFnpEskE5H~P+D zO-l$;`ndMjuY{@29B&VEnG@CE#+cbQ^gVUcA+kd)J_pVu|8xTJOa$(vs|Tun@BoQ0^B(a@%z`qMN^5?i#e zFT3Df!*i4PaD7I9uDg-XMfevO+?fU^|4K?qsvNdmU9{ZwYH6~2LY2vTTXgY$;ZQz8 zM_TH%NY3eT7TBB))jGKNL?$cuR_h0)-qkvXMyB3^qk4AD)_3MGNNgEk1a7Lk;F!QL z{80ytl0VPbagiNNo5eV+T2ZppVVX#1aZ>hA^qHcppLgco7-Y+Aj#{`6dVv`B&rO zE9HFD1DXs-*;XsC%qsmO9I85B&Gm@Fy|^9Mm2u~PjLK5F!5f0BVd6cC+d-vSIJZ!$ zUiEjjRX68^+p^zG630d#fARzd;Z%gUUn#|N$&p4h=9`+Dir*_$qHsdkQ|&U?vr^8{ z*lAG`704!S|2?V!Q4%ak(CO_6&sgbU8cR!m-KhufV&*NuIqpWccU~xILA69>qP16@ zAmC}kjk@%GQI5YJr1f5wYdFm>tJhW}TMVqLkE^tTAEH5iwY%HpwX4@=Dskcc$B%Pm zy12-FC|*j`ZWOPOR+dSM<=oufYkf3oDjz0V5<>;Fk~p?zeV1Cuk~WVToJ@Xe`~{AI~mXN+x>tY{KG)4`T`*^YLGt?QGIAGadF}kQDy%^7@3pz`8QkKQ<=O zS5QyIGlloEkcdjc%=Q#)_~WML`cW-#E+4c%e=l|hKuN`_n@;7`7MJ;2ag957 z?qD(~4yvFl5nswiL zF~dknxs?3%tMZ;)1_=)oix_XRpI#nMKVbiZT=SWRLvyBXcFmnVh~c%t?aIG~P$M{_I<`TArJr)h&mNGa?%JX67Pv`gb+tAWJ^#2pv$%@#*{j_~5* zvep8Py-BnQ7iv)qxWU;B_So;WK_v!7`R(k=2qL7YAKXh~Zyx zAjs0(yly5_^EkT8x^wKz4ue%M8pWH^t%6vP=1jZpeA}NsI*sGawfeSXh-Pqq|9y1@ zh5NOIK`TFe*{=Y436_T9SJ4bIdz_e(%N*??C%e{m2hQXAU6frtdZe75Q6$#f-0YN# zAbZZ9IrHkPMemJfmm&GgxHv8}@w0`d9S6IW@~K42gz3B49hIG{I3T*%&rIkDU3SXQ z{(RyCcwP({LLjS}IgxKam9|zyyf1PpOFldM5r2>OxiFMB{3$HVc|;s-I4dHe{))pD z!|CRH<>AC@LDU~ki;9Wm^B{=-$&wg}9pH9Q?pXug`Owi3wQD%o6<=HPw?EorTGC|@ z(`Pfh+?1)e?w}t?hMau-=KBvNmlo62&5FkxyJ^@_4#k=WDN_3s5shk%ozT<{r!8!>1`}5&o-k$|ZI`U)xT64^X*; zL9S1=4H}O-$Ntn`%?$RCkBpA~O8YDvO=M~hRzo&+4{Pv=AfoA6sI@R0VWA?R^?@jX zA*8+NHL#uP7{Y&(JaVWlrlUjbdPVkmNz}I)8v)dvxAI0N?~)Vvo4X37Hi>Uau9~)P zMIF!p?o{J46eHz$sypY7udicZWO(xH?Ypk9>&Z(|9h>rwU?8Lqtq z&cSroaV6|eL&L+&4YFN)N=-5Ku}0nMruBUML_xvw3Vt6VdQxFcdOEkf$_0u2P5e>< ztWUedft|RJ0Lj*`z?_#Ewe0aTfCTRA5xs{XrAMA9`O>|V{s>JFM;xdT#!GU#vsJ}z zsHrjl0Whq?4S+Sw- zEUkngSQF*Azjt*-ieCIvIC<0o$c;6z)*3N9Jt!)<8dLbD`15D(M{Tq7np#>TVAzqn z?wN(v9z$@?-?t!79hly#Y zX0|-X$q-n5>Eoem7TeJ8I6!rc9pQb?I%ZKgmh|V(pFu7R5>q`Ry0*SH8H#(YTC1w6 zsv}F0jFL5p`%9S^B=iB`Wqx{*UIG?r{QWz2`G`M2)5=lwcr%aHkR#3b1T3LLbO%B2 zk@X#Y2-E|TqUpeWZ*TNDE9yL|(N~3wS02MgHA7j)baZr@Xaoh>Pa>Lm8|Lw*twJtC z%)mbP(N#GAjM&x!F1#OVS3#gmkY_0x| z3ttQC*F{a^dMN~pn7mNLACx3HE+H3Xr%T_F$)=(sPR*I1d?AG!5{iK&u9c8>IA9O7T)S3H2qCP3FyGcqz-EcUn_-@fV3 z#^u#Q2W5B@ZwxBVs5I8s)#ZOi=uVdWePC{WaCl$Z=g$}3`q~T*!rDSV+Rz||R^5>H z^KItu#p_~Xf9*PR;a}dYo#ggkq_52}*uEwe$4w0K`Zb)`&s+Bc65=%DN zVE*%suvFEA&Ypd6)NoIM$B2p%d)=#7aMhmI z3I&gPiv^Xh7LK3BAet{W)Yqe3X14R403ynr>D>OwF8v9X$=uvrsJXSZb?p&hegHip zOl@7=YnAImP1n&4Ejn2)Pd6GTxLVU8X?k+5v;LjtO547ZX}P-32Yg2!bpz^SLG}|f z69Pr=_aL!iXT>vB^a}DDYp$ouSRrXw^oNMMNdDvl84V51LucoXL5^Gm^>N1kHxCXV4_RlRY-rjE(wEMu2-ZFBHf!Z+?9DC1`7~`qlJd#2duNk!990SG$Rh z=IawVNX;ccjGGirUpj@&3k18}*V)jRGnWJs^iqLBSm*0|#&blfi^$C@KThy8bz}>s z7Hyi(NTziqef|2yx;gDu35}W<>ie-91GcIT4r5=Mszy_EXn=iH(;IKDwWu><2$f>e z(mLV8#J@2c31_>##~rj>3X=EVMFWc>jKj#{3k!k_h1^jLJbI~{JnJU0|H%(_x3hXq zL!pTeh5q=sniRvPn|wsp{!fsLfB<86^4h%MvMj|1#(8%L7>AhIic?y8x=lHTx4?BJ zHa@;-W$nmWaq&0f6BDMJVt8#y)Y(s5Y9j}Y<9R-o^SqpE@N!KrY`V;qCV$&y$+iQ6 zviKq`f~Oyx`>cnP>ANe1j0k34bu#WP{?pn!bD|~1$H(XF>C^qoRD1itPfPcJvMD&V zwjgMYAby-P82zti+ECdq$RIa^W#~_lHeZm~>4!~q?%(%4g*%60v;=OId}3DwvRp?H z-UPs#)Z}DwQBhGRJQCSVx<500dqS#Sx}ikK`g-N7bW3aXy>z3lqI43^f+gb)S+TYq zbaT8XmBc&tMd9_iE3Y*)vZ`*KsKu$#QPC$n;QxA&`dw3%2-UiA_{aZFE8l9?yq$Z& zTRrJnINhc2t8C{9mLfKeZ}Nv1zZIC~Z~e|$>M{LLsm?ud}Kt# zKGn(2ebmhSf!YOxdPYKD#_A~R zkt5cJ3VBqzou;xSv1G>+Y}k>$6Tf~%(gK@D-y*_if8l#ZRnenI-grua>#c49j$W(1 z!>d_!$x=~NA#W|=da2j1UsDU8a+r3la0KO5#KOc`>b*`*2Hh_tSlBAlRkx|Nz}G$ ztjKWsCKKX|8qA^6x8;pW^nM5uX&C>qPAqoUIK(17P$`4=e%gfi`YJrn97!r%9ga9L zh7TJBCvnWtk(<^#051tvn4cfH@aWM8A!ow#f~>6Bp0oIGGU9*n9wmnCHHxsNVAHwE zzbg&#-g*%rM(#Cj&7jc`E@BjGX_llRJin>0PfL!)9WkgEEO1@5PDx9%wp2SIHG&~@ z`Q=oLo3(L5(j+WDi+a5*KZ_ro8f&7T?64-0yKtU*Fr^78V|m!H$=)aOyYR*|t@yQ}c} zWh8@J|DKeH*l-l(U8_~%klOX@Ls>hE`XwbU&I~9iTS124YbLu^727&nZX9abUy7~F z41mCiL`I`1hh~3`rWmrTpGTcQa*oUXpA*1qDqAx2Sd#Re`OMy@Yn&iBv=Z9|R3$5C zD&Gj{QJc2Bx0((nL$`lbTUU2Ki`aJP;3+F+$F{KSytYrr-(iU-i|ZX{zfrmj@f8#o z>wl9;cnTq1_599(194x!wp=)gAjZGq;^JU0iCG4RIaOc3d9%+{ZeacS>gv3Ss&;d$ z1$F1wM-HRGN6Vo4SsZvWiDFQ4K>^b~fC7FWb*mC<*0KF+V*_7;+l;fouU&>NUmeki z${*&s>ot$y)1m+OnHpYzSaU@i(K(= zKN#W4+(kVQQyo)Ms}H$=%Vbn}d($_g0V^1v|=KMJzRorGsw_Fpkp>X8O*DqcHc6KHhKHJusni>`^ zFBc{(qWB~%tjTDkPT>#m2y0^{4GqWX)sYL=uZMmj52H`sijrD1G19{(R9E^lUr<&K z2**>S{-bVW_k7!Th&=Y;Ev>E0OJ~WA&uus}C2vs;UycY|vIkqg1&HFbvf}B4#^2N( zP_4^6x3+%wG|;!a*ZzBo@aNggDgC#R`!$-H{4Vh86}z?{JEC|R=m!2>QgSl2bUOw3 zKHe6@5ZAvSf0Q*gzMMzYxu-)p4zmjtmec)ubz|;vgduyQGU_@{CB7G@e{LcN5zz8F zic~*NoG2Uip~O-g;}<&!-v8hvXY;^vtAgo18G7|99U__<3cF1>_6)5^7yllSO32RAuPj!jR`&IYnA{U*QoF*o;Sn*ayTCPdCb zJGtgm^I$IU#n{o|67E^%>PKrM06&d7-CPiyPGVR+%Er|~H+F3!*Mu;#oOJ^mWv6!V&o+eC%m z`c5_gvNP5$EQDZn0RZTA!o$lTJk|8{J|Lyo3Z_HxzBtokvF~(?T_rWIU+3dDehxm? z7g$Lf+Ln40@(uEm;X)47-(_co3A583MJvTer$d>4XkFLeR_~FCUS$rQC zGlD4kS6BayOH8~j%b9#*xdw*|@)FR>Sb2o6Y!Jn@FP_dON6fV*6(4qI|9m2ZAi?}r zX|0)C{aSIPQqQb=wMQyFS)aKK1-Z^EzKxO3oYYKk#3-M_wI_mmcd^uFRADpV14CZ(pcwgp<`QUWvX92%n{;e@ZoRVq${n z*M;v?aK;e_mw$SoQ2Nhw|G z!uNJCWmkvmg)7=z5tHuR5ReHS=+Y2c=D~AS9O~Q)5ZEbO)JTFhO z(mTYzX#-L-z-p+UuF0c^RKSb;a7^bxzH$9;lJlW?kNPMtye35xCkkZB%5wole4JdH z+S}p#wd_tU?ahf>YUj|GV0CZa+#3)OV4nlm=g}2dfum73l@kUli->c*)g2wTW=>QU zk#BCs<>yPy{6Lt7GD1T`#n10u<`+Qd6e`<=fh-I*z*c9w=Ieda()bsBDJu4f{PS#g z$JU{rZ`=$XQ^%taa_BJoLEutI9#g9`l$p#eu9zV^bMp-J0CA-8u!d{jWHdPe(}Hd0 z?yZTlyZmwo8xtJdEbPUAs#>zD-3DGe+F#ytxzzW)UV)fyzAfK-Xj?Vlz0p{ZJScr0 zg%5;d0nq7fbhI_U+EFwK^f52jxbR>&;H3g@eW@2ud+#B*`h9bS&Q`AVkY6wC9^qj4 zVMEny@*mb}Zdx2pC~u5WzGhvzPJfqt0o^*zpKbYAToZqzVVQ zx!#7ueG46(e!Yr~4JV$xt@H)M;^Jo|j;0toe0cx9kp6tG)(cE5vC_@_<2)FRp!3;& zs>5<=vK<0^YOwDFREd8Tf}C-foW33S`2OPDo+i``bR19r3fkc+U{^Ujf&J!YW+$Hy zQ)UROOm$`%Jz1u++;>ao7R7upIq-qlvPwg_K*Q(phrkHAHoXy1qV|U}Zd+NMwzac6 zVt~sz*D5pk1aKq8&?-}>FjWY}4c_QnY3U3a@~ujMK%?6Rz>5vp%`Ygp6d1BwqvS+0 z<LGwsL&zetV!ewl*de+tbZGCAZp^pFiu<;wL!gOp}h7t9?5Uu@u02ccuDr42b z&x>Sby^DyCop=L*^Q2$nygvzNOilk}RYIK}tZrOETlM*Vz0df#2~+Itifo!)-{$9M zytWZ-HP(2%UuF=+)vDZ;;KG~_0BC@GS%8aPXi3r%aPIiik~e?#p$cK_{rHUPo6KM^ zuqu(0l=HoglOIos%6@nbTjir~4WJsW{*E7)!YW2 zufA7`YahxKW{$kCebR{H2Ft{Fq{!f(AB^nCr{k3KfCJxazzK{?O@6m`wkGQ)G$#^`Q5dyEfb9i72lzkWTC#kvk2swnvlx+!=u zlzT?0+EEW({=iYRl|O(#jN*e#{{5hMO4J_rP=?dg-E9Iv7<~HGs~_bM(Nk}EvY}pm zU-v|0Y+|BW6vueT6o>GMipZQqy}ase;L?&M@buq}jr?zUn%(DHbf_ur(iIHsS zQ$Zsi<-D(tk0xBq$ql8e_jGhLAWyupaha;enuhmdkwb?M+iUN041yz9zqD;GwvXH* zl)|;OI@bfPIzfA#X@89&Fv|0LgIotW7=`WJ1`fpJ_N(@#XB!mt2dyrUmd0i+Hc!B zLoW?(*xz8|cJ6v_ms>f<@{q7aEl2f~&<$8283c>cOPvEH<@+7~_UV!ra%{9Z?Cw?i+R+G(bJnlP-Tat)-Rc5| z>za@Jv`x&W?#=nRAcN%}t{Z9>>2l-g`LbKdpr+Lx9{phB}a9Ch#Sr&aYFK+B6z^R&>Bd?Mx1X%ZrQm zmd-?gOVs?g?Gh?%Q&aubo9k#HL4B?BI4lp z)%kfp8vL+k<9*chA#b1>We;MHjmuEx2%5ih z4TpOcwiq#-1>4DTjQDHxL0h&<4m`GThO{*!AcKURf|~d6|} zE9{W*#r6)Juxsn(@h(eVz%`l)bWrE0qZvFN;k>>Z0(H$bTvt@fB~vfy+cMieyjU8`p9|vLgbn}k*Qs*2E{1Ou*Kl2MwyjrN(-r5R-K(}lRC}1UB zafg0!fVPIh{M|ndJ?zn4CB6Dixft##jAA1cd9$O@vT~n`l)!HswhvlO-->m-t&QGg zsQ<*_hd4X~(7hj>9j^D*>Coq$_=ZB>YK2t_6hmlfqv0E2oFIz~9TZl#muo&O1}tJd zovx0&^bx9$AtCi=;^U24r@NPG$_3Y^4K}>F$z#n<@C5lj>ioL?%bx8Y-w@B1zkn!) z?bf&<@bO`61$b0lMg~ebQu@VQx8`GT00dUHNQkC_i;JT*$=zkh;xVMZ+&uvL+x~R? z;Ey<3R@S|cURXuDlAt(*V7_7k#q#L%*hj6cgTROTPE;Ch#U-8i0q@wRXa)u_1pCmg z!qRt(C`@XkCsSjXJJSjI5+48L;}T+dVEfsLc0eUiRJTe|qxc7OW4svN{QH*_$}_qP zrb0`Ufz|X;0bw9~Hnd$o&2N zjoh~imULs#Of7~2k{ z>$T&HPoL8Tpl>W)%5b`c9qCa(JyT8Qd)#@aqNR>r2`j{0yHHWm(vlNoAsffzCtxSb zhox*4x38nHVl{D5@SR&!yVSeZlEW&Fhzsf`OioPDfR3{q_Tj46JTjZ{qQ4)lv8`a^ zU6{XWT!%qkDFc8?#+52RW9H-N{>%gArDT=}LmfGOZ$E^P#M!fhyl}bsE31^?_iqf` zwf8{T+xyO&>ZtW*lSpYGbU zm@Xdf?fVDt%tKFmohLZTVJgtAwqz^aW99lv_l*0pCrNP2A>9rNP=SQrkNI45emfC2>xyLdfx=n+F zR?K`FDEH0F27M8&q_8!AHTv ztBwN-Xn&DXm$NVQ=*N}J>c3h40V_qT|D?OK`g<3PPo*U$E|Qb_9D1C1HipGZoHAKR zQy$LJ8!-8C_7+FVUf94|q2qv88ZwI!QcrpVVQkG)e2Vn_PLPu%EuJ4GRm+;a^F1l6 zZHq##nJ3fxH%*o|$Mau**&Ow`oM`cW4}eoroEAIvDGTRabWp9L?-x{ zw{0zX7F2`{S*FY8U|1E@u#KHf2T+D0h1{LrqLZ`#*129c<+nbqRWRkfgqN&%D0JtJ z0)%i#qbLq<`9j17J#ZH2iJ$;<&yHh5%d{lzK=eyTkDSf%==EiX4$_)d2`vEHX?Bj> zJFpos*i2Q9;|uG)K789vtvAc@RgAzP2FpOQo>kL$b(>s`aSr2H{zlwOc%z@0x_frH z%O>cfRYDCUqLo@53vUC`T5JECl8wYt_S}b%tS&%&&6oyT=MQ6u0^70WHq$894u}#v zpa<1A$o+)#ZNbau{@7)hk-+aJPmDRVSz4`9=KI8u)X&s^K zo`+a}zgRPQppIOvVL)jV)o-3^A-RW9`R988OF0bkug=aCFC3TdOnG1xwAoAAOq@mI z`mX1sOfy6OU`1pByXUo02G?6NT z*HCy@38rV)OK=8jjc>Xod|95xq#pE`^PdGKcv3gl^4ooZ6uMpRqwMRs-%rB=w6sv# z*s?rD?Y!*=!Wq7s~o~r9)Is^=AW*U@8W#b&vU=a>^C2@Q$U5`zX_5NWKkjY z8@!MqnMMGE9P`KrZ) z;Scc-S>=Qyd51RK0Ek?ibh3d~Z~tBZK7M>)g>P#Bi?|QTa;Avgkjp4tdcweCbMchT z@Kuz3yu_F7k`FOjCJ`a`pbwdu%SBAFWO<5V!ayteeTqzxRXUDaIy$$?w2FzLYRlP~ zR4km8kfZ=eJ@(mT)*kl6-91>MMZ2FC*aTDAnjE3#tfW(y{%RyW95nrafA9D2m&B_u z{F;-27LHjU50bF)<6Q9rdpEo}ND>Z&^3 zJ9G3dEl}&K!j*T+EJ3nKEc;^1DzMFfeZm_B!fw^&{FhLpiHj2V{9yOR@~xxO(ZyR@I!WW%qPK~L!@}pfl|xnx3M{qSz?|e)P*nn1De&43$G^c-$@LA`7WCgQdfr~OE%hDRTj4Kj2{BQ;HXXuyg1(>)dLts2mMV@#xg(qkij(0>a z>ig=Pc(D)q31$x;UO$&{8NE#gnnV(3q|+@CzGK1I8f7)r#LmV)jNrWIp*3*p0&T@* zPpG+%Fd!nscn^;UGoz=vpRzy>4dw&L>W6{bcbEjl!o%##DQ=q+2I8M+6#szSBH`gK z7b$1gaaTn|*xiF|ha)o`us*6Uu@1n!%1#-~HRo0Zq*qAYx(R~F_&an4vusAVsVRdQ ztO}>ymb;mOBJxrNOPx+3W%h2GuWaFpIkt=Zuz$5coj}!L8Y-lno(Bt*ax7|Z4%Gel z6KLZQRKZFz#ha`j3hX*tvL0#_Mdje{Rn))qSbW0al{)tD&g0A3ZBC-6Bt~6M4hH*B z5X^3N3zR(Sv}fka6NG3`7q*uLA3~9*^5WGQkhi*T<5RlAiBBasBp4 zbLltCgb`=*zw&Dpqb{UE=L&Qa9>R@2WTu}@x=?11B7Xm1j#>Nd|5(&s-1yO>$|^m~ z!23*ls?Y=uf}$!lF){IXTid7$J>IX9?{T-REYyFD=>4_Dq6DH}l#9ng%ogv4fyc%V z^T*_QR_5kHg-l=v4WOYo zfP|s~D6bsqi|2Aa^6Bd?!C6u`6!b3gJ;1{UuhLjL4Q&nq<%^ll!x z1oO76b2$w7XBB!6KYaL52BJ4z!I*)J)jPVzb=R7yMyEaR8Gex`XaM;Wv#+q_zM=x> zH$M5uv?-24jm#=%ii1=g;{~eLkA0T@x8Hu6{mbFY-7CWYZXhjZer1>3M`__b4cR%} z1~k9z)|Ga=`v756t)ZZl>F)l(i(F)|aGz=Wcp--!PcI1WK_W)Yc*Xzy8yK4Ir(pu# zZmW-(dG_jN^u}j-DE1N*&2EFM&lY=qLS6j`$|W~(GO?VaR!4 zez0)+S+&mUa?kecWJi(C2-7U)BYm7*tI&)zs2nQHth;&y_8H)6umns)OkbUB^v@{< z8v8>l{|xV3$F?_|zTjBEdnwj#|<@B+y({IKEyFyb@6sEd$m z_{d5HpBmvoONg5`H8@a1p3pU}@BHSPfNz~ZpYy=b`-}_~Qx$~aU^0s=6f#pBsVI=0 zMg_i)9~*i^2@zk8)Idwr(il0+oshX-DwAOPteYqtC384>dfNUHLPebR`hp_uUYB8v zd30wF63XpPD`z*}d`d=U;H8PrivE7xAaii=w~;dDiyWyu@O=8EU*uhHIgwavsp zfmzU{h?}R*Ts*{SG{;s`+7}Cpjz$-qo0Ua3?a_zvrQr<0_8r_irld5& zWGQRq<))=|ANo@>kqE=>eEQH!;B(cL4Hn>Y`X|WpauQSdY?l`tV=4MxfACp&^vH!x zpT5H1I!aFuZIaBF9E@Fg4hz(eG=~lzssdbp;)k-mLH3@H<a$ipF7>J1diE-pg%*F2V- zNfq9s%^-adLKp3_Gil}Q3IGs>;h>zC0koeWBTzU6k&(uiBljSc3>I?K!=6_T77)=U z1{}4l8d>n+)46hTl81}MrFBMcrcunb&eaGAGcQf<8}>}k1D|7e&5Fw!xNr&=ynp6e zAKGJ8WBkYh-z~Kmkug>416#a!d@^4CcP~eWv{Yf=o(%rLEDj0BtfR@^h_UzBCCf)p z{pH@7+hd@mmHdQ)zs^Lfhcq8G10ETBv;r?}FH}jJ)bjfE)y|R%2W8{0h*{Z{lMvb$%BJIeJN7#j4%Xw)Zy5)WdXF|S&yon zhCtx7Xp|b4v)704@jILa2ta%lib%zyrKKwQ-q$Db}B z0D+JpcPud91DaN!rYr)5oqz;*0k^z@(Y;n`P45!Y`Ijkhh#bEP>!fR1lPx#zQE=p(1V-T@ zq=qZ-=PoIX5=XjxZrf$v5+LuYLJQc6Vz(1Zm}ACvnT2DQ)LhZs-eSF9;=bvOr8Ew# zlYzb-Xn%1zIWw;>oM9d!u<-rhr$I7=r$ar!>@#Yy{{aSdo&7uM`JNuelpa}U?Knm zf>y|H=rH}xH*FOy82!5tz9Te#*bmL`Wt#GGZkQ82c1%o+HR5fS7JJQqaIQ3m@8gUw zyQV}sk0oY(%uwk@V)yqrjYOTY9sP~XAN{Mp>iLAcn1j5PQFwX(ep)XWOroXYR-_6C)bYCVMktmKJsO%?PIx;K8&-Fm%jLj_Tr|3VZJMw1zJ%Z0yrx46!p;S zW8r$FQBb8FP;R?%c?EOqn2Puj7U|oWGRG8QVWQ~5JR!9r!R9dZa>2qPricj6txU5k z2r}TyY+xkbf!@p(43kNf#&Y$HqxI)a#bog3Z|maDb( zCspeL4BI7Q6cxJ!Vu*P~+8* z2NQC)U|2!x0(n9toFMLPm?T?LQZgHLF#j$)-h2R?7O`5>FC3iFBg0!4ihE9i=?LK;RiwZyo48H>;=zX-p?v?C*fB&nG3{h;cFAR=gjKG#KapMov;AbQY>a$RiJ3V>NF0^>8&*?}*zZ`Lp` zn|2j?uX9xra1KVJzq#T^2^E#6m+mM8=B~mx1|Plfe2Fd57*!Z9BMhH*7{LQ$0=3mY zRg;O4GiE?BA4;WWEW_RB@Zo5JlCB4H@?_pGT<~)Vz1g-3uOgzF5upFz%|Z-^LnY=| zB|5;S_{Q;>$HHts+C#gGF#IdW#vZGALhMP}kN-(W#pYfz{L$whVPbUQsml8DWbtZY8nz8yxV5Fv4Lq_bP2@9eyYSSK!KIE zKjdncu)MsyF!UM;BL1(4mwbFLY>#4aa-pgkap)&HtaS?46GL;z_0$|qnIoGyGQnU53EW1)-7t7@+*UxU2eF^ zOcQN0Qavtx1W2rzf({oykd7T4n3{zNiw<;_=q`goTM&or5tyoxv?h3=Q<$FLzQLSq zB1I|Ns_YM}n$tmM=5mC+t7w4geigrb@Fi?D)F=k|!tlIs8@NpTE zF35jBPksf|B(-z;QcfbedDa&%d%j!gnKXlLW8Wzlb@l=oi%F=$IT}W){~t*BeY9v9IQNxf`WYT`70)amJgB0FC3|d5S+M+tQM=WdCK6F5+!lC5MlnFip&)e_MJ%^$M zUGAe@ihxUjtN)vGa@!ca<}!p~VC;25>&_w~J`JiHk;%kYJX5LU=AEd{*g5hTj)}1e z#v#$no3>Lowh7=88vk!zf}LQd4TJa-Egv*Q`@ZglNtD=J@TUvFq?>KFPfB4I=n!=! zaGguC%afn4V7p$U-9@NaB%$%j``FRR9cH_C)?)`ELuZE^=OQ4vv07n(fsRhPZK>e; z?#cE6@1zBEv+C}G;gdiHPA+sx)X?&`z7yve^p@ZIUcIWJ>=O9~PiFi9B(3Z$KRo#* zJ&afG^iVaCD#m^p{PzlG~gbMI*cTD0hRs@BU(+b5-|5X!o z&>>HP^a1FA!ah(<>lKA!)vhQDMt_JJ9VV;T&`>{Y*@PaB<@)~vwWy=`^YDMWw2T5j z3?3qKw3u#mYDz<>FR9|R1wh#LO%VgP@+6Atjyu7;6kxfkopTOG6J7SDiikB-I2G#i zxqZrGX;NDpMvVHz;3DCxDn6hV{=fzknv00gZxk{YR zNAr!*2GnJ#$c`oKXb&Fn1%*0U>``<@eLyy$T_ldqTo5|Xz}E=5j5F;loM=Y`#wE5r z78Cof``=XVT}s8|HqjDjt2JXXlu&!-Ov4=ip+l@dGa*B`ec$dodv?LtSg`d+Q}({? zp=3)_G@SxpLQj5Mn}>oJ&M={Ex7&EM4?ea53(kYh{(Wa6`VYjwUp#f;Q;gu-uyKBz zrQTzhaLJYY|8T`!r2{;6Fx--zGx2t7;hb~nqN|1d4Rnp-bTOF)`BGD%0Hl#?|A)T8 zE?_dW;iap(e|vrqSYNIWv<+vwKG*x8I^14PF2Hafy#j|$0o<$*918VVI5uOuQ`~xR zxh4jN)*qO5PK2PJHqJd`Yb{vxl{R0hGKK6&_z7cn}<(tLMc`VE5V&zh0Sp=9$v6BeSF9W7aR-( zcc-fyPl1S|&VMw2*c0df&DFvn#s=o69V-2&=2qK>?EkrD_$=0v#cLkni!)_kIfc5| zMmosEmd0i$QAq??)KwLB+>S%`iGhQupKq0!bq8lcPj_~D@A_Q40(uN;J0j^83ZMI7 zbOYW^2Jc?>-$^ue6bPX!0)9OcN+jmkE^ZI*Am}WCB1Uh%G_BdN#}UX0(QIedGQWy8 zI5^w1)dxPe0NTnJ24*#a$6cTMwwyN-!wiQItn>5dPor(@@zhZ_DBw374#Q z&y#fYg9Ny*rAgBD3e>xf&pmZ;aKzQQ{ zZrr%hvzM!DA{bL6Y+ox6)AEC!mU9Ca*E?a5E^()<1maWmF?Zn6=GtQayupeq7eV;m zivCHf?n?{H9v*y!o2nMR23y28{R){S`t$|`1B0HxPkWS*5Kl11IT&F!Opv7mWyRDN zh9L6}JjrM%_YHXK!|G?`TKWjtVKBX&~!m zMabT}vI%9EY|$cQWR{&Bl1)#0@4bHKpOUAPv!A zM_){nNEPerX;|z|`+v1H-uX9GH*Of~$`pI}s%VI)@?bru+K-r4-I-$gPtpc_MshQl z(+SYP*AV_5s;C%90@2O($x@ZSAmFZTLl7tlmy!-wy~#io6SX%O#GYGyuz0XL>=!R$ zN=YBYDyZz>4T^owFFdm?CMb*T2 zKEot|vxO=Hc0Ye2S_M>)x{su?((42Z1m0mW;lV6 zCm$*YB?#Cu{~QGFgCJ4Y{G+lC{S-iCdc)1NRz+>Htu3H4Qx(O&zxGW_g>WMD;A4b? zNB1B#%zSCAE8J^KLGT>xZfLMEvl@EWbt35UzM$8^>e9|^j`u%% zo*!DknZE}?8RV}p*GeYXE1?|AL=egovXpEUSHPXOl}6y9aif4*ym;l^Fa%%H%z8uYjw!dHl}$a-|iklN+*lgBYEhvSmNwjB`)e|^NA zgz0Hs_i=W@IRQc+EI54(fh~DgiQ_Dj*w_syr4tgduT#1NotCa8ps4&|j?|svEh)*r zk-0g-a~eW(lO=2r73ggr%=Z--*sb8Bj*5m|PXf3=Ko9WET7|G$P`7qg3_%M*eJDF& zsB3Ag2bcgH1c?Vt@V`Oo`IIWaAV5tC#N)}G01Z1&?%~ehqJ&{XJj530K_qPbV8Q{8 z^?VJMvpN7jg~aKA5sqR&uA|c?pIiM8w&%Pe$t6lj($GWjBTe8(VDD9f({c1Af>nfw1VO0dfgqtw+JOHS5 z!V|P*w5&f)xF7a+S1*1cTH3(4!m>nnKN=To9z{shSnS z%64YnAAJJ1OsPz+b<(6pmJRq%ISD|B*T;az5Wn9L1fS`&hJ!@#LW~B8%fQ_2{_o@` zu$z!+bhwW}q;{m?@?)9;x*ClIND(MMt$$KPOLynypEiR0et1X*^tgP$Btyi#%6mr~FbtbJc&)1r8*}=Ss#!L< z94SRPYVkP8f%nFOSYzYLjguRZdfPwE`n@@iDbn&{0;}sko83$H&1IyCoHl+L8Od*S z?>Bp7R9XaGgo2QqgWR#3cwTpeN&R<3TVoq|U*CRO6(NAnG%vqRSCw1Upmev?Gzum~6JD9Wzj!s(k{ zvu?gR(ORIvA`Gwv8M|!Dl6);jD)$NxyHU8{ed=o$E~=bI5aqzmey_E)&fh8YBAmyB zAD}0xedbkVUs;XFr=gIz%t(NgVT$O4-c>A^A6k zu~nNOpUt2}eEdUbt7)Y-G&L&?o*K*5aTR^`bzPm*eouhV@AOP}W)}IMw0fcAlNhwS zPe4M)<`(fb=~2%=9&B)N1x=;1*Wq{W>JF18PF&#&ZfjYeT$U-(^)dqDU!X(HdxeVK z_lC5TX&CfmKu7`I=V+~Zm^~_2qhvF(HSDkQBd+p2L6t#|2xp3u+kkZB#kiXE8Q+MM zVpFfiuD9yMh@3(hB<_oWrJsuqXqK)pyHz~90NP1HpBI<}!s6pFk-Z_54P6}JGBe}H z5yTOuFX}0TRT$OaRfN{yJC%wrx$xRtew*)`H(YO_&4U#q$T%`Sd zNl8i7i`tOtnGL7M{-Nl`PCx@V^1Yp3m6R76nyc+6cmP4QzsDZmHBpHLb~he;9kL|^ z-y^*=VBdCv(U`MBJYLxGT@*aeqOV^A(DKo5#93=yeTYAM_FvdV*hO;FzAeZih?~M5 z*(K`(sbLOwds_zWvbFirGsw~{Fb9Elkv1s~m9m$m44zjs?jm35C*7PwX`2m!YF+ON{34YR;e<3py zQ<%UAtv?s~LuTr`I4mNpMyt_o;iHta(K7~5o`|$ULk{8}qsQK*BTKO9ax zWyLIc?@aSjFU&4=6Vc7*`X^B&1U0a^2c)@tgLDI8+y8UZ&wwuc))>;Bria$=;0fy zH*=DOrx=Vw9fF?`j#`S1rWgUzaH*XvxyyBR;f%BoniHlaPb2N9X|nzfkljmJl6zch zyWu?OSwxMCET#Ol%@B^cr27>E=%atbm&#mWGBvAYqwX*JvN}h03>m?DG+cPD`IT(j zrc8s5c0W|-;`kWDhVuy2Kfuz;16zv;1oXY**2Dvn?>L zr4j`5h4F_9g7Zs$1&*1_w!9ZxtAeiXi*#}FC7iwH1zERHpfw#3bt_MFR6Inw*Tzvj;l@8Tmy=)U{`m2w(h?aRxqfcuW*Y7J@lW z7|n>4@I6L!)=353@=+R~4NS{SA|r2!`>lp^!MNCj2)>_y86uZA9QExx?B zGk1mv5$cy%sju{2>rMJZgw&V;5trGXTy?@Dh5O!Sl7}$AZsCnScBAFpq0iHu3b$`Z zisB)DoBvr^ zst9mA;iE?eurF`GHW;6EUnsx0Hs7xS+kl_mf_$k}v!+R~Qimt`pG41%cp-zTD-ZFI zhC2g%mFDA(OATq^*UzI{^6;941>FV9IQR@LIDt>f_iU^*RU!CPo8)I<>c`%?=j=Vf zCq`2*uwI=N(&q*woIb#>Gm^#8U+0;G2+4ip*DJfy2pE)lvr*91PmRk`Wfu+WUAm}qGd4A1S%8|N2JB5WeMy1EA6v9%}?z;1rAmflK+ zb4rdE+*n4D?Wkk)ehO3gD1=rp7mlqF1@z}MihVi5pT4mo zJb|wElgc#Et_jxpLi0CcYxmrT0-Uh z|Li=z257_$D-#v-d;`NYZ1yPn9DGsW?M66sEMVFM^imTqc)FRHo4+uJRmy-$>vz{IJ^iVi6+IPOQ1v;T7V5KnEuk|U|ddz+!G$DpQ2ZEM; z)TsIfHog&<_*`$kyh@YtLjq)qz1B53D)e)Jp^HmvLVJ<5elISfgj(JdsOY$!HrFmb zxcx>IFdZ^-`oHx!!HGF#o4)UZgEz)VNn0u`At3=f7onuC)bRWZrqT(~?c<$R@bley z=(G#C=l zg$6hTz5g@LFNK9P=nF(4bW9dSy|}Rg7B$cDlZYH1)c*RN386(H(5rzC%88aFH2#o# zike-nNz(o&ea0MCgeJ zQ6zE#u*P)*VC^YMPrTZgf7k&)t_fOwv;1q9fOGz5mo?}hN5-krRer&c7lSP-{ss3} z7=%w%YPbC7L4B@(3HSCFSi~|1M|^@Fl?u>B%d+SQ2*W$qi6Nw2KY!lkty+}*R4IJ_0P~A| z)@O)fbE_`I_-OzM*;4{tW&$#%ES2XF?&%JDuYCXH&?_ADIP@9oMSBvp=_1y!eA8L_bugVn?kh9EP73Ea= zB_%gsOR>((e5gaOmcv(JYv{bMKfLzqw?CuR@s^82S)b%@)-+v^HM3ZCW)!B?c!%O1 z=QD^;GmtuY)cP2{W(7AaF}L6=L_lvdZU-p7sZh0sFN5oYuh$O`-n*{X0grXI3a^nIOn4R!3V@t*wr)Z z-B&O)+#Cr{a#y{N2z=dm)L#Wik#F<^&GZVTx1ef*==o3vvHK~B&b5`Rs}pSyoe6I) zC0sIqh_yQjq(Tu`sfgD-5AA?wQQ_yDFlD^pt6d)!eadGQ6Cudz=Z3wX{nulKSX8{Z znZyEJT+Y1i9di;9-IWM!J0arAr zyaQuTfTeNLbDtMe_Ny7Nt!GxpwF&Ft-F>frAdH3{7pq=6zy6ZxH50`f&Abk)W431N z|1UOoABU7H&HejaDq=v}Nx%>Wocc8di`m(i{qC5WW~SnPmDJ6HIQ!BEz4DzwT>b>L zJzWMxcJJvX{R>2w@Bn*Uf}>`0z&(eT2SE~mk7&3)C&wt^kd-bkk5zfAm2awY0%Kn4 zG*48yS1TBrJ&{`bqv5C&<57`kYi-e!OaCYAbcvr~{P@wJ=aYdtGzQ$IvmiGfU;pKN zorjalDFlgnF5v2>Fjp9MIQ2#_Y%706QB9Va<>mRbxfGudwMk8C=k!_7ASo3(v|_xu zMCDZV_LFiNxj8vck%rnHYvgjOuZvx+4j?D@zG#(DB~^ZUfj2yo4%?NrdtbYn_|=6I z4o_gQwYRmBg~(kkEVOTFjb}hk>+AN>K-v!X+Rji@=55!~RyRyM;KjNAZOV^he#O2F%5OHhZ7fHoH!Bm+8wzRVpL;Y`p9zJ zE?J(5H;7|VTYHfhj!#$3;(sn@{BvUwTx@^8MgR^T!ImpR9}=5{!s4aT$;8_b#3d_& ziCJ1gKLlZRisg*EOmB%J(iT!Z2Dq(_#omTkoHG2T`MhGYCg}tS*~?DijLj}z4LR#R zjs`|e2(lIjmhIQ`HqWb?;JfdY8&(g`U!!dZOO?9%MoHh@HltQ!p*U?tgk6;nS)s1% zXOi&{KLYrpa?!wg_!5C3qYu!vE@OWl5h3Wg-PD0&tZ*wafu}>ijIKya#Pr_1`^9V| z+YHifcY09LZPY`iD)LBC-k-fh6m9ZpUs{!x6r1zU^Q^WrHR~O*V8G@DJZbBJ?CW= z7W>Pi0@8bcuZ_P|xGL2{156Vo`qgF*(w*ON~o`#+Q%e&6#somwyY- zQzAoZwk$lKw+sh~9hIul#llq@iWj7P_RfDb2VF^8YyaS^%x1zC`5xfx!e-e)0sWdDS$Jw58FcC9*?%;WWD@_VV5*ZL^;H-b|G7H zq^f4Qz&3Oq0%}u{85tQxra@VUDNL**o6&OVbwEe3v4}xk9BG~<4`|oLcHZ#K_c*5$ z$RbcQ)Gry~v%jA^cTFDm`;5TX+A6T6VsVJ>Z+#id^XxB_R}@xl4}9$dE_4V2D8Rlz z4PB=#(Kzs!dkxjk0MvaMQ(p9OZdM1B|c z*P$$7NNfN(s|*k$ciy_McY*~7y5#I_$GM$AOwkANdD*t_6Fj>JG;MoV7blgRI(E`m zQ#=&^3cmOh^YXZ7*`B(uzz#57%cf5jPe$Zy4T9)K|3^0vZg+SgH?Fte#hCPJbH1OO z2C*Rk3;EGnV*`PeMDfPXy_#;+Jp#_K_t`}nM_?YV_)!9E5iWa=h>1A{NF#LvJJQ;(j0%vtl~ zAEx?;MN*=wWzv{N@QM3DaR z=bDhukRF}nOB;9B24eyj4!DaxWLOpu*qx2WaNttF%*uFZWd-XC)Si_U7n-)QOyl}E z17!63Y;T%bbNOlQ`4`AD%2IEvlB%D$lEz$fNZPn*OG2-O(Sm-@XAtf4JTBI#NK4~D zX(OvF`Mq*R(C;uyhz7Ma$>ihx`Cd1ZdOjH8Mv?y36KaH%Leki1GhDX=L!uIU?tN&- z$MLvbh!^>s2Ph7#2E=8FVKc}>X@VrI3p6F;`w8o^0*>H4e8g%{WhoBoPLc!s$FxC&$t8Ru+{L-pX-GjD5VXcHK)QUZameu}^dalEg z$r84CU5|>MJ?eqyoyVs_4#q~Y2=&c#l2$&6+gREP9y@s8@L}$!OodaydKOP8sx)*58w6 z_$5tBCzO1WitE=${iLtFNb)jRPL=Drcg5LxutM@rS9$ka7Vh z+}c!~xli~j)cPIuZ|No%Qo=`FM{AiNVzq|nP^PS-td{ra)|BKXA39eZFDB zB1RuVfFcuIZr8T4n3zwgAJ0XP>YQ92ds<_a3{4RRk6ZA>i^psRaVL>@!}Uq&EW)Q` zEm|N>*mBEK-)mh1Dpa6rYbQLBI!Su);!pmPQp=F<`g+X?ej`#Tv&!*S3COonE=q@d>#1c|qM`Gz|{X_`U= zYxE&rgwK84enCiW`NajKD-xm)1K={0Pl;lB75fxspm?Hy|!35eWwM=M+a9tH#ap*5S_nUdimqS0R*}K&* z&H8iO1Se9o*#Uy|DFdhvnGlwpwP}ug*yqlkkokySS+#-eSv19giFZ9B=L(?LFV}t3 z>iZLd^Bpq2vP_aOuud1oIu+E>32s|~go2O9jn~3wP?n9RH~D%lPx)U~DMrHBR^m+( zBN7!2d=i}=R$-LxA!`+^I+b{BZ}yj+mr-H%muvD9urd( z34e)P&r@ELyCV(I=tUJ5S>H4@B%{8}w23e3|9r!H1;`3@@j5L6GKQ%3hXSE4G2y_g zQ4hoYM)dzf%K>MBQla7sCI9$wbDMuJjJlE>SFRkiszkp>zTr{glM367DW!xPZI+Oo zu?fzn+3xUli3vG+&}hghztV*Y;5M_=Ek(C4Yinx`4ha}f_CT8fb!f5ZrVdXr7#{M3 zr>w9ZY*_or__qI8R>#eBL3hfXunrEa77NiTg0Wn-?%8DNH7d7U)nwRE7{fE}~E_)hnaW2&}= zm!D>*fLiCYzTHDG?&BgM)>+ITDnuB71jIFn#D(AA?oJc+A*6=ZuAD z=A0<$V@OmK?1>fixlg{rfy^QtuU?Hy_wK``n@cUH)nSNL6X&#v+?|kOI@qo&8}ozQ%IyeMT{!KAbNWUHn_j{c#BI3T z)AY;DvFPHdfTm==zq9J2QGFxRo$q?veSyo67A-D^n#M4QUdkZfp+YJ8HSWBTue5Jt z(~~Z}k^!BOfk4wCpahfYu;Vo#Ve^Bd##x!-9rZ5(hyq%mx4eYIQZiNw$uOFfijWfA zPC5V5y6o1N!g2Isv=M64-MPTFKVP(czxbcW!@Y1R1j;=zGczCg9~-abC$=y&!9jC+1IuJObNKyWnrQ+z$TZQ=V5s6I zqNKeSDr+>+jBgV-(*dpg2mO4*O%haPWu!c@Kl2PYZVtXNyc|6jos&a1DW3AR zjR!i8p^xH|)O*gBmEWV4rn#NitF;w}-HLp2T*${BtWDiA02-P|7n9LbQ2wB0HKkx(hTS6KDIxh*Jigppz;@q* z^&`sG0(MG)T)VQ*8~_)J!F)2TOtb%4VHWJ-q_yYjD=$UU)2Dt1kTEl47h{8MT1LK= zcTW$Q<=TrLtX>xM8cmw+$)zFQgwvE1T*tl7ghbq`l`sFM-CZ#m#i_iiPgcGZ=E5$~ zn5ZXA_5}!ITpOD%x4)0lXSclTVP$W^yGs^Ie*b+pi|5$$v2H5NYh@~K|66I-{MZ%z zec$JNsUwPXu4y`+YsPx`W!^r?eN#4kaD$MX>3B}Xj(NsEm2e*fK@#=IQ&5K-@zAeZ zU;r$paGGr2cy&CM1L0u=pQ0t{>~x*1OKYI=k>I$yUhnetvx=@7PzOkP>AN3Q8`i>F zpBYm9_cny6ugwLs_DbdD5e{Xw6aN}~H0&|@Ec$Rk_JfX=Ydq^_KUDs6NG*>=*1EB= zN!l|1guJG1;ghqqAI_wi0zLDelQ0y!;oiG{m~W)?vRNW1P_Lo3eAEO^E? z#wu6xT~)W#Ye37!HD&mrv z$9kx40Qe-xWx}DMPXhL`rgh4vV@u>MfjUk7eVp}--3jRcvW#Ejo&cS=jy5+on3fMK zpe-ocNg+9wbU3XB8Rw;dCCKPT3s?z?FbYnvEqn-PUe8p0O>_tsS!oEUAzku&x&uFc zPylxbY%UGf;T1}v4L@U?w70~W0}gzS9U9|9+C({+*-g%K`m{_xaL?)zs#g#BcK%=r z?EONAhaf#t=&g?MU2I8Wt+1PX?L1SN9D%K_Y|7r^PB#pbTV*7%`SM==p6;7x z>|?Bef`46i*-cI=qs_-^N!bRsyms~~ zm@_bo(~L@zdE}O{`qIO}xwHOOX;bVuVz>$Ih3<&wA9kIV?MS@w0#Lw*kk%er8*|w$YcXa?1m7ab51^Awdtq;Y=lKEk0bJCmQubT|-^$z$w>9F+A_4>Cwc40O7npn;DKZ$V1&aSn$pUi(Y zqT<`MRF9zA)BCFy-FF1cYGkRPC06-Lo6PQwo?_cb-h1E*G`v7dx6x?Y5UheU%7gn= z4Q7sskldYUi@~Zqw#csFI>N@M6!(}>Xdfj_;z(5=4=$Wzz;jc&j`sF)rsvwB{uXqW z)R$wkM{_h1l9JWFC*C}e6DzdtKV=0hDu8oArb~8LnuU#P&mbm{2IHKJJAV)3EaBLS zzD8|rHufv8+cl|>QSITqH?glBPfDigdrfCFirbHdT+%4ZIuG{pA+#iXmJFb=qdNFi zvit{aPUnf=o!pG5FJHMhY!_0X5-(|sz0#|I$SI?Hz4uH0ZS~}^xmVtmU_~MY94LG{ zrust!t3_gaC96QVe6gQgMsqsUs$#irfHgXVTCla&5sHS{$surpZ60ngmx=i9D8v*fEbcgL( ztjb_2Wt(B3yY;kmB$q0QVA+zPNs{>5mATY#Dq1*-S(cyT236`yN=Tqta@zc4qUBP^ zB6?50)?c^E`rmUchw`o-&4Fw`E2Rg0`(g0GiG)Mx+qg-REyRa#de zcXpJJ#D8~k7-xTKITvxeCp$(FlG@Y@_GNja(dn&Jq)g&M zN9OpZMSORNYO{&aNXSGp4sFG59=}-#&3sKYV{?N-HD&CYR?SAZ- z&m72DIM38B*GJ?-0#47X?RlU1v!2Iy$70K{@dBfB?uxfNGtb77(o9T0vb`(M-wvII z>2m!EUP8K?><{4wypBv`ioi`tWDJ;5rR%|?;q0b(grqNqMbeA!k4~JgJy#NFT7uPU zgM569G>I53@oKK7d8O1k<>80@InzTruA2!w6BtwQFz@F6CH>gF4id!d-;}R-aC%=r z&z#Nk5hO@mt|X-${9Y^@nl~QVE-3KrCui=wJMZVpaK>pS+sZm;&s#s= z>7$gKV90G3NZ6m`x?#gh@Qy-oF8i+xv@GkohDK~#7h;U!#zsi?roeNCscmqRu8!iO7W|0L8kYyO&tLbnt2>a%;%H5 z_AUHeUr-(1s8iv93%o;crPnYJ8@O+L5Q0R%#CQr3G;dOI-za6~AC;9T?= zZWBRuuZZmI?6FpdpLaF>!1}f3SCU0tZTc4P?|mdG@?5ZYm8R|u#NVMg+$1{T#{zKp z?`HOM&60<=7*x6VxtdR4Vkel96(ILHN2eA$`)`tbfe!2iNh=s$qrxfYh#mjQEa?QyCUD9cT_aLJw*Y_uRzy-lk5a(A zE{PklGet+AX3g8GP)@=ktoflW_wefh>^NQfb+JEoaSl?jeDnFg`qG1_s`nN>1#<#U zYcErNPdqH(M)BSY64ujUpS;btS8PDzCV%X1;QJT%KI+h;GSuIxziN~%yA^RF_yF+3xA)rE@Qc1J*2*Y`MUeL z;3Fs&-gW)ac@7P?&#JzbIMaX_tH5rkn>eROCtuEEQ>H)J+S(O%XX^PoY`p&#r6YKc z4EKd0N@thZk+*ttA9g3^7!n+K9&&{_Q`I%5wLCFOGUl|$k*=TLBf0UJd@T3lyKs2} z^|yR>=)jPal8it&ul$<3EdTIxR*eX0uEnJ==5Z{jOE;RmKWj#L?@Zr?Eb$?q$HHpT zVszEs7i`>yre($03zaI4;a$D)HYrwtg{1IELg=_P>0_GYiB6F+o9CXUw z4PME`3_Oz=n^s>6IF`1(A%O$DnEw$Mt zIfL%j8MiBLUELO`6{#V{EmC`Fe6}-Sip84TZf)zg4r{Akwq>3JzsSEpcKKrEmZ9d4?t5P%a6LY6N$yv4ciXI~Gc)cBL40kWz*gYC&qsehhIZ;x%N?C*_1&dC}Q@V$Jp08L_kOJR>CWX1>lA)Kh`I|F^>na$E4l@s_S+<8ZJ7mpX z*YZl(n&6FLA(sS&8j7gwJQL&RINN=1qw&?rD~;$jltqk{VH-ZtRmZS`L%WjRW((mv zcmz+U8dEB8%7Lav@S4|)EgJ388qNk4W)+goR+>AT-ulJ%n-}ou?Svpw`D9cdCSwa~K#^SIAhT*p&aiL(mVy`b)?28CX5+b$G}6q4D9-soJYqGGQ?~ zF9Wbz0XACcgVMRUSpwUbEUx?MWP`gbxpP>-ulsu=U+pLvlU7n*Gliu{2w@3l6cUnFLP&y<5P=IuXtTherC+HaA`8Mi%Rws}G z5M+w#1am~NYt(sG3@;3p-j-Ac2__n|a3nrUv#7WLmBIqe`TMcE3w+IC+pF}lUOE|= zZ%Lp@zhSUY3&ioHv%OtmvBIUlOb=(` zvwYxZGF)1R-dG%1E-$V@?dhwI=jK?*V0`vIASsztzPmTKgVvfr3)byk63G3TJ!nbL z>g7x7^V6C-;T?w40IW6=bp--omGw(N)5mqWrm`ooyf^|7j2uoaf|{R%b|*g&!k4^S zZdc%C&U~}5E4WE-?d{(qP0s7;@gucSZ~FulS0izP;+|*sP(?|eh8Ls;s_>BraUlPH z14|MNlceK3Xk#FA#Mu1nTTspOwU}<7?Ct#8)|G_1-Xy-TBK>W+kGwmDfyb%M+xlRy zLq>Kw&?3%haftbk>NSN36tH(7bph29HqSGP-{2s2Y0v=v%#R#>*|#!^!Ld(+6S$Wx zL(i!3e?Op~1u2X2wybfqA)($Jf7{^2%Jq+p$NxDPn;qWrS85mf6Ty)1_4T2mjVoVW z9TuYxLGPr~0kT{=bo^wF%rA~*Jq4)%(ds4j-EAu8_optYVYR#g01^W;VzM8)ZnN5A zRP`unSLcBIen!&X*x^TqnAmUR-b+u_rA)=JZB62rac6iBvaSAeAalQ^z?3Y}T{nps zE84P{iC@K^@`R{@YTUl2wY|&hU_k1@4cyErdiWO8L|3j|(+>flwB$Gp_@KU5x~G3Q z>wT_9%K~-!Gl{a*y3T{q%~}n^sHi?HEUXrqKn2+uUmR!p1+E8l*WnCEXwLlNs z`mX}&TeNueaW49zZA4yQzG?UXUIa6w3wRzMBsG^R^-?JgOS~M2Cm=16I08rA!z-DI zjXT>jCZGr(cWFOs>ApSw$#pemtgV;PYdIuoauXwM{Nh+SVCqF6{!y(JcRS%jD zbsxW}jEgjcW2M?LC~bqAOeXUqCrK!Yqn2^&>cVNNww>V7o6p3`U2Hv^nMPZZ(0e*R zKX+O9G70FI0m~UAehb$eZT)zZlJ!WE@vNafa!*hecJ>a)_scR8Xcci9`s>GO&C=5< z)p9y1?L=)xzUq0u+d9p=a5;VQV6W{^XU&`^+9grOvt;716?#qo+8frorr*WBm)(=G zSre(oW%qI?gbEKkhQx{;jKR@(Zas-mUO;@q^8xi)L8w|$*d;h5-*t83G;8IXYtL9-|LDZ1!S?u@y-gP)zYDE^ z&=UiMGN|16I?y0yS!m)Cr@aX)ev6G&cK^GYaXtZ7X%`rTDp|#kdo@Y#Kb3eo;%0(U zyUX;mH0{j)^b$@sENBCBlOxtZx5Rg~2lT`zaUy77VH*ZaVs*J{Bc3N6VkbMa@UHb$ za;q9?<~uz)TmLXFJA3%IP{JU{*93y-ULG=vpgbdK!q5Et{=B*LIg5p zf}WUx>{Pa_Z=Yut7^LsJhko`B|FN-nzAteVx+wew5f3O&++p_$E1fUQMQLyM&%bfY zz{T4fjVU<=O-sS2f|j`Qqykr=)!^A^v47I{dm*>h%MUjSnh>BEA5X!(AJ3LQ>hHT4{H)=5-P9Z`a4gNof`P zogE#crHIg>*+a??GA=0@CV3PaV4lu%ApAMf(vc8C!H|pqwOm?_;5)g+S&;W=xfpbE zabPUQM3S~|oNBv8jOufjSySr@t@c^D_{v60epg3|6F$56m#{=LFTFlz!FG=dA51T1 zJ&yF2;tfTNuTDy}3juFW>G8+yi5UOW6mzaalLI~TYwf$L-se=@-wVjfo$oI+U6-Qe z@bZrnwKcS5^$GcZILf)cg7${8wDbJJG1t#Q6Ue8_X0q_I(kq_Z=%Oyi|qh8NmX#+1&im9 z92P%Biwg0}&G!9CtBB?9LBRx@5o%#>>|m(Bt^q#+hskX+KrZf^^DQI1ZUN=1rlr7u zs!NcGf!0WNcTU7$wC<*W(N}!C=lD=t2MP#;zI3faC4-j83W8L1O%6B;+OU_*uj1@f zKiXz}b2s6k@oIwunZivpMFE=zN?q_zx$)@PK&uXONO6eR!r@SqY?V+M?!yR-w#&5s-TGOKC_97b{&1r|0l(ZvtZN zObueJ09*TSc#u#JrJ?NaD0U}?sfgQhk(K~Sml2<-vg)i=55Qlq^gVL(G=^S6qZOYW z5O%?`Fo|Q_Qof>T0tiOZKV73v9ZFmB@N!y7Y8l!#3^6MDKik8EoUp6QRMF#}91fDz zSMNt;2G<6(?}qaF8SefR^yYmkmio!%g5Tt7|7zt%x>rpJg!N`Yi5K8XjZC<#`FQ<@5b%|hQYOo=*8$5ymK{NYP}FzY2@kh?7Q`$x20Wio3B-pFqg(HfqA;TKNH5Ug z3|Qc1alzO-DvR#~rhF|tc<_GhXW$cTFPL^rhwTegHv{PkQ@G>AOg@tx)x3h0fz8K8 zAPwEHlAN?YmcSRwy%8wCW6KhJ*6D(?Lm8*HSZcCM;r{Lhh)mL7?~Q)X3mD%k`Qjoq$YzM*;DPKyPm78^sWeoSpRkR|^2X@a^TNa~l4sZlmkJ#3BSS$oK)rJ&GS66u9xwP+1^0CZAbs0dIP^6>0V zSXhjFeSAr}_3El!zMDmN_PNGevlA1q90R(wp#%Yh*1!kROt9aK)pd$*mJ_@WW$H_~ z5u{L19KkDSof0?qD(B;yH)?*c3}b6bwDZmZ-Wp5X$_9nRk|nes$uGGf@pmzhRX{t|_)c5^E}CcUASg#S!YM-}4~?&UtMCwyPe149Pv2HhAn3u0Y9uAK!$S?nDB%D##S*dT0F$Z7+ghi9pw(lMV_B z;@_9*_FCfFe-@m5D>9C4c+T;AYk3sSz{ANy9bB0Yb_P}PNW@3#(un$S#y?pYcYXdw zj3ne8sBb3Qpc8We-0}OFSWdS*4-_as`Vu-Gy*PRd z_2v&6*RBkg4H=_Qc3r?CFJ6m?iittaR0o3YJE%n=5uoxx8ZfZ<*OR&dhCU3QIea4f2+DP$xR$v0k#{{KDp)noLDn zlfMbnG5;%5c3qjLw^WP{9)!AVq=KI@-nB&9sd!cG@q7}&3C}Dx#heT zY`Q4vvLtt*O}@l~VD`%}tMvV@wA+~X{rynsim)jFP?U2*1vCrKp$`V0w|>aqta!-*E}?{l zL-J6a-3#}Gwy-VBqZo9~)0z*u?c$&w30Xlo1Y;90i|^8{VjB99N71nRFu;I(Hx|U) z2(aGi6JT`o=(ritzy*pQlCrgJYd*lSf0()#T{M$408by(vN`S!4tkpdixQ14pM_xUfsZ z$dMVqz+tr|(bc|y?%07e5?IT>FH+FGcIq}Ouo<)udE!9lqePGRo<#LVP@4`mi{yQR zif2w%BiI;!Jm|iILs`_I2o8pkTP=}V873I55=6ANpqTNybREQ>Xp$(98-1zVBXm4k zXq}*4ILeJ4Wl5;eKP4B!%=_@edC2{xo(_(}fB)ojN5^$M+79Q)clq!`ZuZQV`r?Th zi@%Q*9r`ZY2N%=+Xfdh_{5wdZMR3@^!EwU?zFvNMv?6Ugy#=#}ri*%MYiHkIxs|gp zpOam)mLy;}m0DnTMzU1CI8Hm-n46PM?t=}5grZvXlV=7BSp0M9>*hJHKA zOg5uyf9mZ{x5s3Hr=L3)V$NNsd;vZ<6sozA2zSMBmS-yzaL*Zsc=54G`-9>e@3m`E=ypNO)zF16_iURFS)h2M`kLX-pTag{;W#;s zZrKDO)G{|A1b#Ff^|Dvv4x#Fm?JXy}cdkWj*Vr z|DQi4|3h|{Ec$E)D7&7GP}je*n~91G6XC~#6;@x|T4_opK)&|Fmh^ctJwJHsU6f48 zBkg0E;zQ{{k%khjpHRag8GbxT9>{U0O^{AV(JQi5%1h!BjaiZCRw96!R4+-WPbgn@!wE#7nwN3=VP<8slK?+jhoI^H=K!s1j6z}1hs~dJtn+n`OiOWjU&&PB`+K;--9M!pBq2 z#}M4J53ZZtuSh@DS#)u2fX{m^A@*jJBn1Ag$~P#(wOjPj?ypDVuKyod?;TI&A2yEP zhipP-WXniq+dRk?Cn{wtQc*^PtfQ=uEt%OR87bK#E28YZrR=@;@4D;rJm2T_`u%cZM zHetMnAihv73TGc4W@}^HPWyQ0ACkV*hj5t0S`r2Pf@NXZ*4?*aG8zEJkthwli1~Dv zT)OjWn97fh^>sK=j}@@vys9F1VxQH$djdZ`Wjr)BO){j`971nTw0Z9Qqkj4>mwAp}p?S-d0 z=y3qxoOB?!=$#Q~pYrPU>YOGnc3L|U_s*LX6B}7C=qgq zU?AiVmVQU4Gul@hkL{rCF|-_klvAdB4}Zmd3k1!J#eio9!w_nr@dyWXvIi7c%=~R&8pueK$R2WZyi17kPBcUICeTfC%J%1T@ zo?#(|lUTH3D@D4qZ^|iHWNj6sHrg@}`r_3qMlU}}sg-J4F5eR$RX)lRlaK(>r@brQ zmZ{!n88~n>xHc)6a{P>zs4FSwg}ofix@8I_qJ(lLQP;?bXhA3sh_?3YBwz-g8a$KW zFMg+fVsq(u%;Csn^h)uFdiqL}GqoNKr1pgWe_udonVnWH-hcNz+T>}bZHohU#(|!Z zO8jf}bna(@_pGf?@0|fjiWcxA^w;2WoeIIsW`-QQ8;e5YcjWIHdu&^L%{^nK#c6Vs z-3^^Q#4G{GIAbh{sd|GxD7v@E6acrm2XeN0|CF}O`s%%(I@h}6u@zeQVHfz7Z{ z82x&0RTX|sLCc%Ao?N2934*jKGVNrSR+~TByX{!_+C43c_IOKr-6rC#rpN}N!q*cn zWBxEuOw1gWou(k+ql_EEh*l>x^j@Nj>GPDmp&vriLL`po&8lnv;>Odn62%R?fxYWM zqOecZPeD;E@wi))EbAliXXEIoX>#HVhbuACO0_0+KG8eCVS+n61XX!AF~ry~5ce_1 z0a#xFTT6Qwz*fvzyKslDui$@^Z))>W&FW%6LLcrsC_pC=)dh~m%W*4nfcY*icJsT5=~nz31lY*g~RED%{y zAxlPtnBIi+N;5h}WC=5Rj5yi{^3R8u{2OUT&?SZE^a;akg!I#|1rSB;$Ed2N1K+Qzs zK%POxIf8IY+^L^#ze*CNo^IQ6R)_y^y>VOmV$49%{RrO9u%Fn5H{htMbpw$wqC`@n zz{yrJ$Z4|Y_90|QTh6HV8%tQkH^HCOU2~T{t=hHHZ@H%&fGwlHrs7@Qw>c=Q<|BFL z79~CfwVv?}r|;WDhqHVV+SMLD_sHZ+!Z8`;t1B&kI2+Dk=+V zLZs|x(DAnv_?>Xr*{9}mX8sK zI}`DV(lR1qdySR*1C@35k<}97L@Se3t0d-BI;|jL|9u0A#4@W;Of>EOlr^Y-&^){? zhjJxc_Oq7EdMCutLLjJ>3tD{l50_tXneF9%IQx0@?4YN^5!J6~$Io&5jP!J+?=w~K zIrDY z)+6+28%*ZafYs0dl=_mm{C+;oZTnSlS9FEn?@| zed1xfEK;S4a{UT7dHXUTP>IF{s*UnCUdTx@_CvOman`2<4W9l;qKJ*1+?ET zpI=L__X72Vwu#9bz{Cd+Op-s?T1iL1DA@JEAI|s4RN)=uu@o z)uaDh3NScV=gU@G;I#*jeq~%~tg6C(O?+TJm*82RXHx;wi@)5lNXaVA^43mBWN3=s zHGUr74~(1noc=6Wl<3z188Bl|_1kEZ=pQDu~~@bYz;8DGHNx4@DvG%GsyO4HR|@wy=xzpChzw`PqHm zr)>iS-o21>)@ErNma_ZP@d+g!BE?(dV32-%7jnVej4dE+W8ET6W+Hk7-2aQTpn(3| zZN6x9jFZTPrM$>#aTqoEr9&8)TK3NLSIBy-)o?H_fAoDgR_$|1%5L8fx`mY7Kb!Tn z4OpeQC&1?V?e(}+6$@$|a00mis%TIw@-krSiKCMW7^?}1zXC5qdA9OE&+v{^57T^@ zGH=iqn@1knN41Sz16!nWp&y(Z!tNlxR_jz<8*-(y!JX%nMNbAss3=)zctu6Ul%kB7 z7!3-%@0q%{rP@RNE$x^enz$yPai07Y!ZiQUS2(D9VQ#9qFVku<5W26$f938C7VRdw za$i)lLy!6Dt)p3}rS4m;C^>{2>XRDcnRG)FrGreRS*DNkUx}yx>%;`s+}qvhEpvHH z%VE`fkW1}((UL!>occ>4dhiKPC?`9rogfNh&MM}IKN%2n5v7h?(tnK+-~}N=u2Dwm zbM3_Tde{_UIe&Y!5&ugz)_-5Mm~KzEpqBsP{ySJIB|$7K!*=@@m~8?rgq6z98?bZW z-OosdS@xN%%*;lBK`}6v4yhpXW{zDoC6)_pzpKn=?gm}Pl7kL5Uo(?kQHW*&WCazZNt_f3pqJjNI-snIH3Gf1l%; z3#E&}zXg2G*$kKE`yux8APY~@=t$hKW5+)O37I0cV4nJ(lWKo|zb(XOxV?k!t6*^S zBn2Q}TI1DeLEuvn2XeWsh&S|enaX#6zrXGxy+OA9EzaiW^0XDd!}CXjpECtQ=+c4f z%s1jMf#RCb|DcH94&$=XV{fR+KLuxi<>6`RU}Elh;tw+y3=JY4z|aZH6n9tM~<54Ng_LTx-&4b&d5x~@D~RqTlb79~^smMOsT+IxzdwC+OsP7uYJpG5aR$ zzSQRaqBi@}rLWa8dd?X@)TCO+pc-qPNp`Y1@yy$)5Hg=a&qEJ2-^d`>Xb=;1kV?L+ z_?5W*@f6NYX<#BMknm&7C9As*mMo{1Pk*`ec#>uFCP}jELB(!`Nzo)rW(vbp%_ncm zacYMjZ||TS<*X@CR_?l~E|E6DJ1dG2fVdJT3(De@s*Q=HDg%B5@*8Z9A^CX(ctNZ*6WK zykw1lVqqyJqcsY~=G-THo-paTeAN9V#G+=rNoN-Gn?#u`1n>}_Q0GZASA$8tgt&V^ z^k-R=Uxrhvs`V)8&u+@_)W^V|OG<3jXp(B3=2fL8#&KBcX_o%?ubN^glA z`w-*Ey&;HRo7bP0AE>3d$4(R;Mi5L@U-NJ-F$;_VpYaQXxvwQOG8#~`U%Bx%3OJRow zUoXOHuM|_33osRs9)5BgGrP@shDWaNmZ)^Fl8S*J!flJk{LKdPlk)OYO;S-YGZse9V zHu9mM`W7&qTq^5gVJS21x|Qq~^hsN-=rn`K6-*t?>|!_W8aVP%1_=2NFw{={(qiZ5 z3QZC7xJayGeDRo3e@)ut_bXvRql8i3OfnjDsi|k zm`L~iHn7tKi%w^6ufX7cu!E*pHPW=H7|V^zvyt^pt``+>xhL=DId(+Z897|lGb(pnkWBA6CWa6YHa6jM0n>#S1Jvgk` zzj{PEs5j(C^Q|+fQXM#G`1g4hy0E=NR`&xpL0PBO5SV8v`{6Dp+gNy{nmFzRAtB*a zV>h1^mNRz`1EXM+;lH^6L4yQ1XJDXfv2k%HkLY~f|2QAxCsno-&{pL1`|%H7m>D5J zI-QuC`|qRA9Zhy)WmW}Ylw#d#pk-p%b=5G9Ay|1bE=`k=7tO4y0{&FOVg74>GkWZ5V>0fw=izvrPBgdCDoztL|A%IU zfDfhrI@YF`&4{L94*A(V2@EU!zXJ4b`@-WtJz1fGmh&Nob0CMX%aMr!5_JzX(PwoiHkS zdnJzXZzNmIcsj9i;Y`m9C2|F)d;*z|(4Ox@(V_;@^SfF=wZ*$Yk&>dbEff}Qn}H?` z=h6f;lkM85@Dh;cNjU?XYwmkCO`|e&7$1@6$|>y#5m-0BLScNi*;3%oapx{8>4n;1sb~yjp##rYh}{ zjT1wodC`&H1pBd~9v|sj)TI^7WZf18n=OBR8F(c6>yF}B-v#Pv)_pB25sUx{d`n&V zmV8P64Ed#%S)Miv$rjgz+K3A)FD#mBPb#6}y^Fy8)vSU*h>hoN;sdipYi}6RCoG&o zO=LbIoz_x&?r(RefB4lKfcA}_a>cWaQxXZ2P4eT7tYki^ta`bOar8a}?gIUSt-7LP zuCpaAZhXb#0YY^b6?=?4-S59)3-}2$+tB=j5*uCz1?<^{3A6S&_vhx>`3 zj{hcSCVm*&{f@d(pJoldmYPPBrv@zWRbLtgppFe+~5Sl*0 zeKoYAzFzt2KcEX-f$-05PK*0ae%?8iXskKiWw3O`N)`nGZF|Sb!4S} zOJ=P0K#2jq%qcaN-?73VWR8%3hr^l_Ig|cvH@$ox#1|Y@qf~05HF>L~?D;YsALIna z=(LA_!uWvL&jkemy2RB}%ONH%77}7&xDv~^=YwBn#1hD z#`@hw(ci0Q?Eh+~Q4-O!^|Hqx)E0q~?wlE3VW7gj^oZhjKJA#(6G)^laChBIxE zlX(y01)mdm9SG{BWMomdZ+577=x^p0LrQ5% zB5v~P)A2@CZw*_MiuD^G1Dmq~*UT1+64vVI>{&!iy-)aQxhQQH`Mj}wb6Cv;-FgB( zVs*Tl#|YccEf{qtV{jsH$WE;b$ByeTJ&EoqW&Vsh0w>S6q^{LQgzZdyll{YOn5GaW zJI6*XHQnR39GLmxL~@0~(H{4CtFCxo3g-Hr$r|Cp!T7W1&qF6Fj$GW>*++s|&g_{q z;omexXGXlF(lbs%_sT6Lqsl4ho=VlQN>rJC!Oz2x!OCpIQJ5ET!11UgvxINFT|*@E zNe4A0Wu(mMVp@9!dq#UE`z=&M$Lg+d1%0ZVN(r=}P`^D}W01}wfkxowkVuH)(G;MH zna11{#+5nlrx-kan)2U&@K-zU?)4Vk*DZ)UNQ=&W^cj%IT=i5=At!H9C*}tFM zyL2?o24ejwN3qkuCs!#%YZZFbA@Y7%K0v`sgx-Bt+<4&vN-5u4W#U!F)r3#5+Q?aT zpI&ZG)?=D^E|gou9V27;#2x~&*Htq8_H?9@OIM&eq)}IUU)tsNBwgds<{(cA(Vcji z$QIZ>Y|bVj=JMU#j3mhc)ic77-9rPn0;+vyTIMn}><+-^OVP0Si;;q3BG;^YZT0f4 z`?_w&K2E;5H}lMH>I3yQ#4&Xv)FSvxrO#*r$u~lmWW;2mYtGK53UsNT{O(B+4{qKTpabO3JOPiZ^)L(I&W^o0Rvn_o!QdbKCM36)8)B*c5e|;?b zNe*MPmDFs69{Gmn>IKgT&HY^62-KFmGqRpjV%YFKLQMS6RIX>j+(4yh-|nJo1iCK+ z=P#O^v*`BiGnqgP|C5EY+0+upGNdusK2!v;LZBl2$Z^uTVzH9KZqawt*N-Yi|Ag4r ze}4_0_(s7*CiM7*my8a7m?|^N=i?}Z%W1aK);c$3T%J$CL3`cZm(#ixFdHC3V%%DvKGS(x%Iyd)cKG(8 zyT|(Cx1i&?^JQ{;b48v7PZ`%j82U|w=kRiT4i%MKtN+VGgDZinW_mV33K+qV+K8uQhr@nH z+s|3`1c-klQ(92}%`Tset4`crnoL-b5qOi=&RgGc2KQ%l{SylgLY#ianmhw6Wd;*mCvJlD+q1YT=qV{zLquG#TV1 zL@_3wv4w^vi1k0=Q{V1?w}fSkpU9!U^)Hu{vtlRuNsWxd$J37 zQ?V|ngNMiygS$PJGF!4f>rR1Hz6)j4NwvVggRg;|%;l9m)~Z6ZwkQ@MG*q(oyO{2# zw3-3){@&Hw)wE1_4S+OUY=B(3@*h(n^uZNX>=vYmn3UqGYSw?f0f+EGi_xs)vG zG2z40mcIDE9BIxKgg=ni4(TNoo+XgQZlcWi5x#?s`s64w+4>iBikF8a;-t4;{~*#Tt7ToG{xVftG^MYzU{puwryu#>Dq& za=FkLy5kQ$Q+SqVEuew3c+dBk_H7zvMOHPk3Hh7flEtV`+)0x$pZ(l%7it6kz7-JG z7@8dx{N?aRTWXtyNKhda-K7;(=@;_MRQo?{+_Pd`@i!lW*mGnf!QM`jx%}1V67qe4 z%>ss`iz@ReeyP5I@BNCg>K7#DA1rnpV2tG&N<=ZzF8OKl zzSYLlAT%QhMjaKr4w?#wPl;jqAh#2q3k{;=t5vN1pY0;5u)eTMem{sfX$`F+2+4T! zB(_Yx{)^3s2vHSl$)A3!2-K!O!FfGd>=4M04{%FBUG@_aANh6O91WdipC+NgEj=0} zvJ1U&k=OWJ-Y448m!MtMz1UTMe5`hR{PIZi(2tF}n$<_}Py^DC z)nOSg;uM-J*6#tNtbtj|pr7(O3+r_h?H0>71L(}>0MV+L|Ng+S+qETJs-YM3UK--8 zLB58S5rjvtW?l;ig1=34oLuhHei<=d4%`a+#)k$C!@yu!rL36Y00J2tHC!4u1o6T^ z26OALd)qn)lKb~Tjf?&@!EEIcm@;9ar%A8q|9Fi}%`7mAHuQpRmJVr8DD|4SVX5Lb zAzy#~;UF(jRj5EKVF3)=qx?oE<-`Zk=i9``0W0oXNoG^B81&i06}q8B?enU9NU5mY}!IL`J2!XC2; z4dfz90{{Dv5dBo8+idnYF(t}g)zV_t)N*^FN%BWDD~{lQLCB@}&xWwM=$x&a`Rt7t z#P@fsRqhp!)()O~RR;R)!->|zWlC_4FE(z!Sf3Hoiftc5f}y@`B6gsV#t&pb;}J1y z@MU$9NQSQoG<$-`QfFadIYP$#NYtb*U`;k*IZ46hjBv&(xKiY&V;mJ>dhh|G=W*@2wV%EY-v96l__U#!>!&;oN7Ep&6z_J_T|f_ z8VOPcDgPvp#f!JX$!Low7fRC!-v#FRd93~sZVdR{M8wR^#AhT8@p3*;B-z(6j^Ypj z`f#iChAr2zF-y-acQ(ZN4v1K@_$U38jo$v=3)@R6lu7IgoAbgZJK^G+G#~S909+Tq z#11}-ar|WWYyTMqt#}{IC7de!O}EUs3`j3CFpe45&?_1l!#SdYCb!f~pwmfi7=BQ+Oy|_klGO}raEh>A7#8Kh-VJtav+1>s=B*<2 zS-<+E2^3(o$0BTC{Egv${ImLT+7ZMTf{_Agfv--7-SlsU5tiI1u^9^DA5&A$Y`i#U_SzBwO#Rc17HQkq5I)CG|N#feZ1|O4=!$%zE>Q?=Q3NBijm?bGkP;#G< zDjHA#K4kVu{iuqlh6w zd{qHrA2t)*zf352mz0!diFPBm=_P#>zu8WmfB;YwkNQ}BS5{UBPc{7uu`2|e%7>rL zp2I&^tGZUoAyuuY^kOj1@%tE$bt}6`c$-PmkHf>+YNdS9y=Re*{)Tf5d%z0Fc36Jr zuU|CCDzZ(me93a`Qa%Avg92LLd5pA{zwBn#wNny=mlr`E=LByb{Z+v*Ef}yQWq)(b zw#Sz$U1?_m?&=UuC@^;%uXh(}k8sKr z`R*sEi@1o1iG`wqA%|1JjOrR7rW2_WLlJY{a>0Hyd&4=SRhmLn-S{G= zuTgrHf_sHihPBI3PxO7{-mjsyLG^B`s`gowolp{t8U#He_#ITVglMghW>_ppAWBS? z7z)Ln{(inj8gbD!rE$L*S6v6wY%@BA(uAREPG9Ox z(iDQ)jq4^vc-AZ{5BC=f`PJ;dAOuPmTvjHaWZfi@ODEZsfgJwh0?2ady(PuQjF)lY zkSSaFVL+ZmTdmczDq4gUXBY6Xy}voM=uv2{SX*uJ)fU5mFhjgQ>FlH8?YnoDIql6< z9y1eB;TS+?yec=>!0w-TC(9 zPxG&rCRHz9*4&iF-9^J6Aso(}V2PZcf1CE|b0I&IiM^fuLh+(rD2cinKwosP0@a&B zx`>zp;2@LvA@%ZOLXJ`DXmV(t%E6fsd?R1U&VJ}|fJuJ~fU^WIGaj9lam}sOZ)-Y{ zZ^lyEED@8 z_SVAQ+$f!CMC+5yhx=B;VHCkh;f}Ygx2Tth4Kw_~2Z%)YqZt-3QUyim@1Eg#ZQ0qcUZ5ZAo>Gd89f zavNxD_q`>_#jCItox@Fw1WyN6X5>#EgF-$IYny0ie?tNL!2+}AXE8yoSyHpG%E5}# zgUTl?=WWYHBTH#46{@aac*`+$|M;*C1jh~n`mk+4 z>FpKhmoVC|hH~uuoi{EEk0_0npoChFVmTR+TQK?+4uOR0-XsnFu=JjUXC9OE1m!-7 ze)g3b4FrGDCwLd;?icqvdQSAHythQd^S~IDJDX51eft#K);G!F5Xd(F;W(5HN~WeC z!HoZEm!9xL0RtUN*!#x;FsMaqK9-^+K^*#c?AZiVd^ptLMN~^qTz-A` zEldJUj}$75yT#JUhdOA#)c4T=tj22U{QlR{lb5xMCn$f4qvp-M% z3#SUo>)_t%5F_Ux7!f%Tj3C=MrOd~;8a5& zflzUngOigQD}r2p1bkP#FI1>OH=zk8UL*#~26~5A&HjLhiIi{xHBNNg+W;uFR=?_Z zv!boM_Qc>4Gce_CkN0PLlaL?Foczcq9Xrgt# zaEK3mCI(8|%!hW?+X*gxy1l)U1}5VFJPM5khC`V|6B-b-LEVIWVg#Z63jjjp@NNhlOr}mB~*R21Bo%Vu&F` z@RaWB!BX#|ExqN9D*;@a0}>_LdwQb5^)lY#@`Hdz1auW- z65=JnMs|J)H9a?+tTEdikWm5`SnUtcj|JGFjq5!o{BxnY8qp$Al87qg#jC8&o;}<9 zk?7JF``_Q{(SVBn=`gqgT9*48{n_Lru&UEz)(u;7;$J7g%-kg5|3~ zap?(Ar78!K2FBp1aBnfuw$tvz!bWZc>AVR&Z~3ru(9GwAm6g>Ma4phk5FHfxjF7*& zHdIbDq1WqK?6S&t{0OW)CHpm(TX`Tk<{e);^F9lG6nJRqJaEUJL9zXH2{AFw2LDEpnKLmxv5B7}@nf*^^S9sJ85 zV!8#i8T84I;2zurjlM=9p&0mEF0}fl9U5`2g+4Yb+lO7fX|z!Bo~e_`+w{sv*cykR zw4sbN_ycXw0B!I>sgeQ_5$s~znRt;Pl@93iMXh8X3i8{_#1MzT3D$dz_@fX6 z;P%Pyb}3RS(V!PoM;c&7T$R}WT#T5Awtm19 zW|gNwAER+9cnsTfR2N7o=o`lCCe`5M0DRNeBBguwT+a!_hoR#kn5n+c#B<*ljf|!ZD#b<66dbs!1AU^Hg-LYueMF+!40N>@wgX~Hgtht{`!b0?)*Q9b) z3w`G^%78yZJUTBR^v%%se=;4RfoKArwqzsL%KIq!A5@-zU7;of(aJTTF?EneCppOf z3_cza{hw!dS}mf<*yvk9Fho-xJ*qAY&*rl5Y&UdZ1DCk?D^(?Kp_}1P39!yG4KY8EEia|jjDN0E1x|BaW+t8hB5RI0)+!06u zSiun*;0WkiCG|~(4dNpC>GBibx9!YRr*v;Z_ z#*dS+T}FWx13@B%0u4?9GKjH720H#Rx-6c z@+F1I1u{@Mcnk4|T5~KFTA@)*O2jA`pkN8SLofgOs6~r3y&lY*1R+@S?}IF)9L~VQ zB9S;;a;ks>BWR0ZpG=&YBt6b>(!|zljsTkm%BY+7gS3q80e-F)^-H;Wc3zY340gDij&3?iS*AD`OTDC|>)-vcB3w9x)gm8SvQ9{~C#VM@* zmpQtwU|#5yY6LI;eMcgGoZ<>MSSAuw$R+TcaU^38(F zDA~~nyg(hM_ZUuo0O`yGUDGQv;mFIN(A$TGP7Wc6xrnBtewp*f%UCt*&!s92ff#4VA&axlSwBO{MymFQF=J6Z zcMAqizgB!#){Yjp(g!w!#%SnOHl7InH&Mx-rfO<-K|ysoIq47<*`@=1n&l_ z@ZBd+>U_}lS50}c9b}^0{!gj&69~QpwJJnlE3ubvIMn%NMiOF=qWHR{sHm9#piAA% zHyjmd*Hi-G1m)h2>Th-?__JoC@GGQOIHL{6b&etv(CddKuO{IeTE)qleZB{B3!0H; zZiCqBDp1E3d-H|1g2tbK-d!xYLyMw|uyI+DK^OdRRlm@q{IvoZEZ@fOfi_lIyX~~M797ZX5qOLyP|J)2PY*XcwGv42|D$*M%N}i zH!K@lJT}gR`G)twXn>W&{WpgZ@sEFA(t(~FGBT?OaML%*xFb8|4p-%1N&_|+_VlW@ zp~N(Z(=nTv6235UdLMdcZr+Th@8-k&rZ4%!%F1fNf!Ko#=TsUaytc(j6xjimV-^pj zS4@klW7G0P1V3CM_^#GLf=s-D+kJNneP+LF>go!%l^!gALBuqBOq`7J)8DG}CZ)m7 zXRJ5~p)_!tZKuFYF$@x`BWxYSAVe_MB9x0G56?MAv%izz6aYQlXj4zV^YZu%3vbdOddp?F zrMW8HvKbYICA#zoeud@42~FAcM(tD0gx6ywktAo}HHkmZ8ErLt1>a+-5u6s}%bYk4 zodH_koRB0d=(be{$lrlTjUENjPTn2(iv6w9yDzJymsDaeAxRKN!f=lgGA%tY`}U4N z2KI9O9O~sY} zCHdo+V7dcCQcqc^uGl}E8!`zR`t8EM6m8uV*Z8O_?o(e*h64Znu9qJoOsDD-x9E>- zgkrew)~BTrI}np7)aQSDK>ktYcot`fb$wAOg>oWZ*MjeS_g(QsJMsim*2`ytWga$Q zRTu}X&Acb#<^~I16dRXUTIdkeC(2DWZ|`rrJ$kAu*tUAJEoNlXJyFFBd<#C}RW>%Z zF-QjMlepDxLKtfzjs^*};hV(hOj%J&CkaXGGO)8MNQzH$Z3~Rbxok~v^S>gMJ&3|%X_-o1s@sU z`Ffs%rJa5B4%rk2Y1a^=HoRhGl{H2QLs!S7u>nJsE{|9ISgO9!qVI;7vfuPSI50v# zYwEp<2r@3dtdr|RaxMcUhO$3%G36Q;t2c6TSIS2IJ-~E`J0nAF_!1B3-#)ThrBG)U zbTJb6CD4|g^Y=K%gWV0XL3|b+eElr?^>+^(6Eb0*r~v#qv4fM1=7B9?5er5JsrpXW zOc=PlWFl?-03~r?C)#D|3wR$Ic=f}HuhMzUc3ZaK;CC+$9|-1_#E`1H-ak)W+gwk*Beqi8c|wk?8aaK0vaHA5n|CBJfo1Q9qN z0pDLMAYmuX&d$~+IjtU_bhz`J+7}FI!4pUocY>_rsSo-E>Tsd{gXCn~sVMrR2n|S% zt9#FLDm|lzF@fjL%ZdOE+)QI`9_j1Lw60328w=RIU~}UlOgD=sX?Rz{+{Qk-c3ttq?r!Bb8W9?Vfr~q0rk!BZM^L86(VGGMOj4!KoEXCYgQqR-#?jWEuO@|#&%T|Ny3f4c*EQr@-oCqI`1^Vdkp0=f27I+ zu4g}MHyHAQy~OeLMD(aH7F?W1|(wGaYMG>zZX(o&{9a zklOK9%g3NQm#LZ1aTSH#Yov++J;+_4Rekc#D~5~xLqky?T#1l|z#_*vE$TQg$(hWq z>i#e1PZA+Hs=yRyKnl*WGq>JIdc?=y!Z&MddG{_o1Jdxhi1r>}X3Rk9$vs}29<|(x z|1$za?`I@$LA0bSuy*PgGBd&`cxk&?jtkv~E zCRyL;Z8>d-e1w;s=5&-8hI$oD=vjt({(n_v7_tEYY6~ak1e)o-VdAV83 zXp#p)^~v*|KxC5z5%GU-r0WQ-Z7#OoO)|TU<#^jZo~?x7?*_2CgP&jBF!fFrp`!ES zTo@_4<%Pj3!FlMh+1+&SyBzhY&UO|)nInbkI{2|8(2q3v^CYV~;N$_)id!~=`BH)0 zgh(I|rhq?x;>DycY>muzr|#G+wd~YU86+ck&=2`UOXc>D z2@w`-YF%c*#d5~Cy$FEd(aZ~0*YQ8>_^7;pmo6YiUTK2a&k2{F8z|Ik@?xNS+dG&{ zg3LTTsBjzXCCocEo>#LUcOmN>l85S#XVVMA%q5ai1#CCP7eElNPgF>^Qlfhnp!Vdd zD`I*JxP$2Pok^{SBsV(u*mi)z1*MTZUOT!L;OEWXUJO0DSw001ACgler{iqdlkiY8 zZO>0-da`c%iZKG>^SD*Y}YTED%Ck|gvf5ZP9a1bL7WM^bLJO5 z@FL4=uPC^qQe@eYA$H-y+YO}ZdcwtJg_{KruD_0#&bnC@FuORy08TSZO8no~hBXN9 z`4;`D(9iY-1ZB!0wzuqF?&l;()s$}zzr|v89UPzd>SwDgWAG)kfZdyA(Ts~3n6rw8 zk3E}q*1HD@5f0j(UeEonBsCG*GU*qw9do_Ky6EG;=JbYTad*pQS~dSZ=djb6+1l0? zX5Eju_iA5JF2-2)x^;&-ts0cuJ%D-}C6crNQ0LvCJbLO#C^`H! z_GA420mLe{6kR~!oK(f2u4BTP_XkBe*L(GaK0I5*#)K;8+Kjn zFymyQz(N3qK3!RQeqn7_ zjfiyaKwV{bA0a{oQf9PgoFhqF+72s^zxJZg@)uQqOw93@7<^D5^#VvvvB7)~_Z1py zPGMm0)}ivNatPiRAh^T|^w2AJHcbHgzLxc~Rrd!nSW?YGh#WsBCB<3+qW-T$;|e`x zm$082B9kGAU~7QnxBNlfeHms~O&=Z>9!tCu7ap<;L;U^+4$Q0^J?A(b$0c`lGSkHW zdxdm%-s@~2$2#n_2@lyruq8i!{P6i7AP90sefUIz+z5y3HwDbjJ5f^#91T@pR(`nG zz#+HsE#v^f?!<#?zLwP`CL#G=3j082uYo5Pj1w@V5RNRH-HnL_7OZ|<$o_Kb;r8Rn zHBv-pyggmRtmkLK7$AE>o(-!{Ma@C}+y0g(f@k0Xpxvok-vDk(B*0`c%I%B*jE)i1 zf`fD~am(}($ht8Qk?lmBUBH5hpqJHzWnQ3&Emnr;sX|>l^#snn|T%U1BwMDT3_*+FLc+s z9-IR-J*&r5N&JU^jNe|Gl26zC(Szv%a&P8cblj<>BcZ2kh-YRWbX{~;drhMV14x#~ z6$`gUADTN{TgNv~XLbRvD8D2`V!>LhN~!H?-SzXOr)o%J<}-AiFEDd(xJ-yK^}1_m z8A0-BIXUjW3uoYXW`zoetL7qt&j4YbcW={X*t%RM^gb8>)iQDCeNdu3f)BBS{@e-q zf%n(5G@A%xpono8%&@bx$URBGbs(^OD9N2)zs!Ebo*M&8Dq;zPY+YE!7=Q#@NuuIx zLMf^JG8`(rc73C!#*d!5q0DB!m-a@kF`L#K$@Cb6ei#xYy#N8X^Sy6p(W>Uq724gwrX`P?u$o1&G=<$_z29BUoBg=)Jp<^_Mg}Ihm9zHp|U- zIS{Nq`qnF%=g-MWCzQ+H0t9;aHXXA|NRkA`$#-4PKO~1zBa;G za5{nnI&A==s#P~jkT+Cl`R4+v%d!?MEiKP6;SFC1&FSSDKcr&})c~PTCFzQAM!_qc zb-=@nAZ-}v8WM_TJi6XrM*#?j{wF-|i6NotJ!NRko)68VPIly# zP>yG?ZU*AQz`<1)>H*FGJ7K8cu6hZbblw6JHzpvhVKlfSAt`wbcA4pal@7I9=E~M(L$Liog732a zquHxohM08nX_M^E+iv*!;r|gW}rAyO==aA4#p!aUnqWlMhR!2;(tx8>`L;4$Y z@S|~g88rsMC~MyKeueq}+WYdq8n?giwIxxqJBkdc&7pz5rQyif-rq80XgH)oRD?vM zp;3G1s8EO;nlzk)qNF2fP@+Lmh-Mlzh>B{bxn14wwViW6-@o9w@8@~xr(V~-u63>T znLnTR=UOXyI=r5u`g_JXwXv>79HucBXVym4icjJ#2@4CGl2-pt9_LHTl!#=FS8oU4 zY>Qx)H{(~eYaxC8M8MU!VU_K9+*Qj0;|CO&_-uA^vPd~_-bDVxN&YMEhW@WF7{vB! zYClPgU#>DoM1_nQ)~dd3$XSBTSIzYh(Y+ut7E?dwXswo8zkb8078&FXMtJPqyTC($ z{CGQEg=yrpQDk$OY^L*UJx^ZK^cNzQVXLqos616q7wkC@3kPSJ<^C(5p{8%ZG?CNu z;3WjQwYv2UB*>6p4-69C)O&jyT!vABSo*oa`8|KrZ!4q4K(J=Drsm#1Wu9!$U-j*^ zyzZAbi%GBqedgJy2hUIXtw@Xh)Q?O-h40c89%dUDNx9dtW1kaLPy77HHxekTKa3-N zw<{cA$4#5d5VAS-_WN(T`Nt`uGDCl;xiFfEO(ws2$y#5k z4HF|h$V5108Ej_qG5(~3#>N-VF5t<8MMOw&N9(%$5gf#>elk5>3p*ZC`kOj)<*hvs zGdIQt$cv}d4=+;CV1(NqIG~u-+Z5K&Huq(}5;d-)b#UP90X~xo4(7fy|?!m4Ttv- zRuu?+<1Hdz1zpA*JE;0#ieW@zmRS0!^vtnA{wHkQT9}w5W*39KYI8O-czRGO1R45v zZf@5u#t=!fyGasEoa&d}SE(LmI>Ei6q-2YGTY+pIJo+MrT{6BbI^EfM{>4-xa|)C# z55In05)~y!j|qvvRMYxbbuLYvD6`dDZn&qIE&h7-w;-`U$dZL)W3?3x_i72p22yB{ zO7l4b}s+QYR*v_2p?oB^m|DYWf|C*+i6Z+dlWV^!WSB8)g3D{q_vZo zBtt_-NA^|Jb?rsW(uK&UZ6N%xe!#cHk$`a&Yf}zwqrsOdPw{M7uhrw`;zr}H$E&Vv zTI4`9+XNX$8w1z^8~2{uaoSQbXZNf)`mEWQ!~}zEwt88NOwT_10o1}+NvyAJZBrbq z1b_T;gVX-<)hqv;lWjMhyW8SMuTC`ZZEVz!HS2gI{`ZsX1<9HA6^kWB41PM?<*R-F zp*-t4b#W&zvXfR}&ERFxm4DVO$=cskS4w5;y<<+@SCbf(rdv0UvWGU#nmbnlMl&2h zvdhTZlmO=Ytcm!XA7n1^82<3I8|GPi8tZ0jSD8e+@A?R4i`B`#?QSiMt*W{$k)fg8 z@1=LG3D6q*6E zYs4UaN|9o$kftl95QDjYkl733#jfhJn8AkV37S$@H}^P`C}**7PcecS{S6xeE~b## zGQSP???PNPtW+5>;o2`b_s4)X$`*;(mUsI4CMV=rji5MA2QF)xSOMpJcmc;h<5yaGA_X6;kR2)5&jIyLUvj=p~Pb~7StgM8G_lt1MR6z}= zY^yRaBO}AP|BJ1AP7T zY?DsF>yu;OI?MGhl$4a9SXS5Im*c^A%57=caaXkH(yS8WEnBM3OeD^;>GREq=(p@* zv{+c4&%{X?-AX$3vp^~{egFKnL9X|=m$th{&;F$`(9CfC(lY2?U0R=1K*%*Di!7a{ z^KUyl)ym9?sFc$E%tx79D)i62G%k#0bL&Mm@lMT>*OjqPmH#@449=pjqOKM_)uGQO zD2Lh~-#yqf&uUtg758MkcjwX02tDci1{-YGzJ9QcEhs;>n#1@iKWp-%;gM8%@ z!fMZM<9B6^o*1lo?K899v*TYEXEQ7wgdhS&43^6vs?-?O1}a1+RNQG(Cs!94Ro&Z} zy13RkPxAS(?7q9U>%0>OU#;pojdN|LaoK$XjlY{)^*x%*+h4=hmU-y-{uZ$5z=imB zP3ms}XTBlj+p~6$sE-mFZ(XVMB{W$Z-P~r zzgW!eiP)R87#bGij3{I-A`^R9y34_>*nmYvv$U1dNqM{foM&cDInbYw7M2Q|Q%@qvXES;=yxk<^ zd8(^c=*lm9kk&DuaOTkosbWGNvgWM;14{Kxy(hKVz6v{{xyQeCwEj7Cc0k!EdxP0) zk>G=;JWwk~dTL_F|II6P=PxfOaT;G5Hw7^LhTaHF$HexlRF7Lf(RK34JX!BuEgyDF zj3?F4l=Qp%{^4yL&M^;WS~<&oJoV2%^ES8>i(5mhhRmfE7=kz4p+7~(14etSxU(UA zcN50OGa9CmzQ4SzSzp?_%nb=|C6c)(BaBfbY}m_`@bm%?x=fQ~%4Vb8PLe-mzbH@Y z#Yb1y&1mo<=N3n0cr-m>jEWIElrKq^6NDJ$Sv+;_sQ`9A08sWgZk&S*jwncp3?m)c zgi$#**k8tfe2hI7U=7URDYUde$ShEtR7$I7dtPP1tdpr~00)y%4fshYBK5_(ImriCaQTPc%w#W19S(tv>~*Qw~m4>B={G~$z$*ZPZkvLa5`tS z`7#W%^v@=q%7*z3L05)Nk9Q)&l9h9cYm9hx$3Vm$4gPoJCaHvfhq1^uN zMr^bF$G-_tfq~}j|NfF?!k0i?o@i2NiWo>dU5(TiB#4 z^n&uFUZujqRJ@vJ)zMDV8qyL>e*iA?U1G7i=r!IJbfWs0r~yOx)^AU}fl4(VW{}_w z^y(CPmE$r6XUX*#L#9<0P~lRRe+mj{fC8-jLJAbj$8waXVQx1}rhbmQbxRLOVL#s9 zQjS^^z1f%Ed=nMB(9lpJ7h6iHXm#-mMPUj>7l6AmORg1D^6?_iJ{2U5`8bFQkw$VO zk}j9Uo`@R@P%q?7J;NAnX|es>{-sh;MwwOIlW=Lk)|ZUK&ByLeWq{;Lb>mmO^RaDnHEnhB?{|L&L+TgKWXcl{k_F z^!(-~J^(vCAM|*UZ|(CvdcBK7foxoHgX*MSMJgO`*MXu>KGM}T0~Y9#h4zXJNvvs9Pe|FL1=eHm93k6m(Q#)3iWi-oRcdT#xTr%KgIVn0w}fJ4yd}tt zITz^eLrJle7}g*2t#za1s7^UAqECgnS2?@7YVL?bA0}ttyfvN+Da$_C`)u|jEG{T= z-$-N5(Lg*JGarUQN$D8|nGg7vV^nbboJP#Wjv07ge6;(fBRGAP&hrmo#yq(|#;Cxv z0F|Mgl7u90(FlzW4K*-2#~@Gk(%&b56B|3e;?b)&Q9IdUY%GD-QXqoJthG#=B{IDH zBYu3+)LU-z4IUWRF zSk_?g+RNK)aHAzwstoIKC2?QS;n^5>Fh1QyHEL1^iXtn~E?VHE@-vayW?49^O7j`h z2pHlhI_-$Nm0*=h)WpDuLacrdUGvj|z91LFpYhxL6^xn2zLZw+I+%2D;vw&kC1JKJ z(QFnI-_&-`eS&J#1hoHpLjB2E6uzFnTTdBhvKEuRTxP|eI1BoZ7={d{rayG?^jx{4 z87wf7f%b)jSb_HjnDhsoe3eV-&oqqA0MT7Asn^Bc7S)_4 z+>s%p<6ls=2W{rRftWwh0rmkXYy4g7AVpk=>&-Z`&CBR5Aj(#lohLKyIvn17YaL+X#AFZjV%4;j&jXObui!xkZDJB8oFrW+sMo$fsUh@Df_azet_V*u3`N%$b~9q7W6KuI~TxA(zF50-u%OSgEi z++lj0QB&^}2;a_vmsT`VeGG2iMpQ+vE;PEH-xjhQtvMuknM<>ItpIa81ba@dsv1S- ztH`)Pad;1$tsv+RVAV-+D^M;HJgKu7>URLkk5OywDm72&kO5w6;Uc_zf?jrPI`-nM z^uE|Qvu&o3=XLqN^b3C!r9UP$U3n4P*a!g2zy{;{pNn{;sHj+bO^mRlK{Jj%s#E{U za&6tBS%8_DH~}fV{BpPO`5E+io63i&e$Ssjr&w$e7FIVE1^5wpZtY3O<*wxkjta8nszr*LbSD3)ke!H80$WRY!slv15D|A znS)o3^hq96z5M<%DC9yZ6yP6l_bcfL{l7;I%E|vL6ryc!^e!xnI=KT7Ypfu%#isN&j5VL7%a<$i> zGjgDJ(17`rcqM1jl#L^2ZFbxSVW=s6_ihd<42lqumvhhoD31CpvE3xVcWT?BC@FeC zinfaHtW17**YFzVLNoZ_jlg2_;GBB?0-Fr34F>n4I^I~?oqPyV;~otH7bU`id4HKJ zuY2PxqXj;ZuY})c9P!=npQB9{J9p zTd?fbKhaT=sP)mE^Xy^(-rbWQaF5UU^0-hz=U*TJP0fg_x{r2{0@Lsf+R)#=G%hX_ zOQueN&N7z*P$Up25*i%!L1me9Du@9rmY2c0n6Rn*1p|LVa037effTit;>9vh4DTzH zq;^w54HNfo+j?P;&+P#z#6b$-aC1I~BSG#;mC8MTZYq(=r3JB;O99}{jtZFfr8I#6 z6gcw*#7-m(;|}sR-JEU&A<#8KYi51Hp`qKiZ`0`aDQuZ`D0uflziGqsL6@FfKZ)3c z6uLuv(M?p8p68Vha%NyMR0N(BLarLYuge#&g1@qShQ0Thoe6!RS0TPLC^=A>ebZCt z)*!hiHGC@~tsS(x1Y+`BqLAtJaV1?voff&*?XyH@8?U@>!7H25@FdDI=%9LXEn@bpL*sM#ZOWqB=H7HjfjL+ zLfTE;pdczbXtQqr0<06K`F+wygThVpgvU}3gQlR6kj)UdOv;=16!$8vq)hHWof{w@ zL@}-A)oegDh>nORjVMZ4W_2Q@bg~)j7H8Rx!%SpLiMZ1`BQY6-Kca=L62(@%l%vm7VSm5^fQPn31=Ct z&KC6CcE(z5r$gFw%N)c2MX~?QHG4I}S@|DatN4i^ z@Y;0+ttB;z{A~>9_DP`dRy+ZKvHDPU`IVQ=D*`(O;E|1faY2 zuYISWu^-M+8E?V2A(n$3T|UAB*OG1IC*g zDM*%r+1{eFOd7r`!T zJJp`@0@{hkZ+6@Ixvp0Ib8G4pVJMMAp^EFNa6WM0JBri9^6~4 zwLHEWy-bwJ`q)LpF}rVbERMODkA+h_ktFZM&YZd9!%vyHPvfFbTtm2;>~8!Rr*k5_ zHAmFON}gn3$$DLzK#;{RQfoN|=8O+C&H%U6yoR zglfvII#Ke%izxFD*fqXh=5Rj~_N-_P+z1fpk84OvNCgy(^AmlyLH5w^0~$ASzy*H> zXFaW)L`BIbbYP`=ly||iT|SQf174Zci*WqW?Ke5C!6iUAMl2np=mx;f?ze&J{>bU( zOeQL({|OsiM(`=FPT5|xvaFW`t05-Njdplvy9u-Upik-4;(y4K*j-q@DCbbwt`-05W=!x7Yv=PhYxpY3VZE zq&AXFyIB##OSp0S5>U-tG7suEoz6lzl2$I$)U#!#>5d+w;>Sgrtg)BXP*E}C-Q&S^ z+n`mXnEKS1Qd+$A!Ph7LO3|KoKHns~wU)d7W0L1+kgr4;hLTZ>>o!oB1 zu@cjxkDC-#xV&>;>G7DsV3{m9U}ZqmC-$th1VXCn*K3SL7AVwXG=Ggi{3h1r{C zFf69~Li#ulg>Myo*$~g|t1uUKu=OJENX=C99=f0&KoKxWJj)BB)`b(|y)>S!v1}%_ z+B3-Mq*t$!Pkh}e9OxD0Bx}(>2$pSMc8q+C#a>npKk2+pU8X%1AUYLVg(3#A|8V?O zG+W`>v%=KLtbo;8=4&w?6ZAV8Ba|d?Pw!f1^r4p8`Z*FD4Ywp-eAVQFSDzs$w z%&LZ*q1L&LAjQWCyR87D`&3W8BNuARa;EFX}tOCgw z_I<*^hgkvX` zW8KWLQd8m0)N7J(d#aVA{cMRZu^)8h@(XwIv1jw={a`a|162f0`{Xb48zxek$y}l| zD>^-^db|M}R0ss0*v5|4IX&$O^plHlvGIG^Bjy+GOcPlunEPI;&HDUxiG??cw%B!R zc8hnvZPB~&RBw)^zP>+O#X9KlO8@FrkD6^JENCy1Sm+Ve8d+!mdd2(fk&`1~5o165 zbPQKk*JW!QNC}g|@}FcZq?C)ReDmgwh3d?GPF+u{xewS;Y_8)AdEHBg=JsFvcko#JN>YPA>7*7X`M5>bpF#6PmeB-q{*SmKiHszYSUJ+I2Jm zEB&x0AH4if>%Qt;j`xtO!1>b!b&{3mI&V}Ekue$XCkkgM7b3mNJOy#a(Lw0FIzPg0 zu=4XN>yJEMCL`!cpW0oOv}f*NSv89d^Z^F;VZyleGdizrsXe-Li*)w{N_6j?bW%^o zySp3n_#=G2{r0iT?yn1%6%3%S|H9plUHh=FN$M$|WfAA$YCSLp=?;^E3KP9z_Z)4* zdWA99<$JQ+Z5(vRUpzSB)7F}%V_tZuXSX+a$tzn&Svr`Hvyh(g`TV)kgWK}0hWVX! zRi7dy8*q|X_%Q{gKSs3qkF}#;7h;>-I20_&LE+k*&us}A-0bDW+!Ni!erILatRD7a zJl)7BP2IuC>0+OHmHDT+Rt`ZRaC_~IRd_7YNw}2R_;5jcW?(@_pupj;Sphlnk6qp< zHIKE_JWX-wsy9A3-0IC8>9?w1HM>gb(IcID_w1CEZyLIEWzPO*AYeprux#-dwnNqVR|uDl{|Kw!Z!QWW!oPn}x(fgH($@?B@+tR(e`n6p0qLKVG$k7S zV<}S6p?{n$lsxp07fRVF{L}cqH{d&KTTD;#|lHhd<=-er?*)$PQ3Q literal 0 HcmV?d00001 diff --git a/Documentation/doxygen/Doxyfile b/Documentation/doxygen/Doxyfile new file mode 100644 index 0000000..2010a09 --- /dev/null +++ b/Documentation/doxygen/Doxyfile @@ -0,0 +1,2704 @@ +# Doxyfile 1.9.3 + +# This file describes the settings to be used by the documentation system +# doxygen (www.doxygen.org) for a project. +# +# All text after a double hash (##) is considered a comment and is placed in +# front of the TAG it is preceding. +# +# All text after a single hash (#) is considered a comment and will be ignored. +# The format is: +# TAG = value [value, ...] +# For lists, items can also be appended using: +# TAG += value [value, ...] +# Values that contain spaces should be placed between quotes (\" \"). + +#--------------------------------------------------------------------------- +# Project related configuration options +#--------------------------------------------------------------------------- + +# This tag specifies the encoding used for all characters in the configuration +# file that follow. The default is UTF-8 which is also the encoding used for all +# text before the first occurrence of this tag. Doxygen uses libiconv (or the +# iconv built into libc) for the transcoding. See +# https://www.gnu.org/software/libiconv/ for the list of possible encodings. +# The default value is: UTF-8. + +DOXYFILE_ENCODING = UTF-8 + +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by +# double-quotes, unless you are using Doxywizard) that should identify the +# project for which the documentation is generated. This name is used in the +# title of most generated pages and in a few other places. +# The default value is: My Project. + +PROJECT_NAME = "test_template" + +# The PROJECT_NUMBER tag can be used to enter a project or revision number. This +# could be handy for archiving the generated documentation or if some version +# control system is used. + +PROJECT_NUMBER = 1.0.0 + +# Using the PROJECT_BRIEF tag one can provide an optional one line description +# for a project that appears at the top of each page and should give viewer a +# quick idea about the purpose of the project. Keep the description short. + +PROJECT_BRIEF = "" + +# With the PROJECT_LOGO tag one can specify a logo or an icon that is included +# in the documentation. The maximum height of the logo should not exceed 55 +# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy +# the logo to the output directory. + +PROJECT_LOGO = images/CodeFirst.png + +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path +# into which the generated documentation will be written. If a relative path is +# entered, it will be relative to the location where doxygen was started. If +# left blank the current directory will be used. + +OUTPUT_DIRECTORY = /docs + +# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- +# directories (in 2 levels) under the output directory of each output format and +# will distribute the generated files over these directories. Enabling this +# option can be useful when feeding doxygen a huge amount of source files, where +# putting all generated files in the same directory would otherwise causes +# performance problems for the file system. +# The default value is: NO. + +CREATE_SUBDIRS = NO + +# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII +# characters to appear in the names of generated files. If set to NO, non-ASCII +# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode +# U+3044. +# The default value is: NO. + +ALLOW_UNICODE_NAMES = NO + +# The OUTPUT_LANGUAGE tag is used to specify the language in which all +# documentation generated by doxygen is written. Doxygen will use this +# information to generate all constant output in the proper language. +# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, +# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), +# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, +# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), +# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, +# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, +# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, +# Ukrainian and Vietnamese. +# The default value is: English. + +OUTPUT_LANGUAGE = English + +# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member +# descriptions after the members that are listed in the file and class +# documentation (similar to Javadoc). Set to NO to disable this. +# The default value is: YES. + +BRIEF_MEMBER_DESC = YES + +# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief +# description of a member or function before the detailed description +# +# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the +# brief descriptions will be completely suppressed. +# The default value is: YES. + +REPEAT_BRIEF = YES + +# This tag implements a quasi-intelligent brief description abbreviator that is +# used to form the text in various listings. Each string in this list, if found +# as the leading text of the brief description, will be stripped from the text +# and the result, after processing the whole list, is used as the annotated +# text. Otherwise, the brief description is used as-is. If left blank, the +# following values are used (name is automatically replaced with the name of +# the entity):The name class, The name widget, The name file, is, provides, +# specifies, contains, represents, a, an and the. + +ABBREVIATE_BRIEF = "The name class" \ + "The name widget" \ + "The name file" \ + is \ + provides \ + specifies \ + contains \ + represents \ + a \ + an \ + the + +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then +# doxygen will generate a detailed section even if there is only a brief +# description. +# The default value is: NO. + +ALWAYS_DETAILED_SEC = NO + +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all +# inherited members of a class in the documentation of that class as if those +# members were ordinary class members. Constructors, destructors and assignment +# operators of the base classes will not be shown. +# The default value is: NO. + +INLINE_INHERITED_MEMB = NO + +# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path +# before files name in the file list and in the header files. If set to NO the +# shortest path that makes the file name unique will be used +# The default value is: YES. + +FULL_PATH_NAMES = YES + +# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. +# Stripping is only done if one of the specified strings matches the left-hand +# part of the path. The tag can be used to show relative paths in the file list. +# If left blank the directory from which doxygen is run is used as the path to +# strip. +# +# Note that you can specify absolute paths here, but also relative paths, which +# will be relative from the directory where doxygen is started. +# This tag requires that the tag FULL_PATH_NAMES is set to YES. + +STRIP_FROM_PATH = + +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the +# path mentioned in the documentation of a class, which tells the reader which +# header file to include in order to use a class. If left blank only the name of +# the header file containing the class definition is used. Otherwise one should +# specify the list of include paths that are normally passed to the compiler +# using the -I flag. + +STRIP_FROM_INC_PATH = + +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but +# less readable) file names. This can be useful is your file systems doesn't +# support long names like on DOS, Mac, or CD-ROM. +# The default value is: NO. + +SHORT_NAMES = NO + +# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the +# first line (until the first dot) of a Javadoc-style comment as the brief +# description. If set to NO, the Javadoc-style will behave just like regular Qt- +# style comments (thus requiring an explicit @brief command for a brief +# description.) +# The default value is: NO. + +JAVADOC_AUTOBRIEF = NO + +# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line +# such as +# /*************** +# as being the beginning of a Javadoc-style comment "banner". If set to NO, the +# Javadoc-style will behave just like regular comments and it will not be +# interpreted by doxygen. +# The default value is: NO. + +JAVADOC_BANNER = NO + +# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first +# line (until the first dot) of a Qt-style comment as the brief description. If +# set to NO, the Qt-style will behave just like regular Qt-style comments (thus +# requiring an explicit \brief command for a brief description.) +# The default value is: NO. + +QT_AUTOBRIEF = NO + +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a +# multi-line C++ special comment block (i.e. a block of //! or /// comments) as +# a brief description. This used to be the default behavior. The new default is +# to treat a multi-line C++ comment block as a detailed description. Set this +# tag to YES if you prefer the old behavior instead. +# +# Note that setting this tag to YES also means that rational rose comments are +# not recognized any more. +# The default value is: NO. + +MULTILINE_CPP_IS_BRIEF = NO + +# By default Python docstrings are displayed as preformatted text and doxygen's +# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the +# doxygen's special commands can be used and the contents of the docstring +# documentation blocks is shown as doxygen documentation. +# The default value is: YES. + +PYTHON_DOCSTRING = YES + +# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the +# documentation from any documented member that it re-implements. +# The default value is: YES. + +INHERIT_DOCS = YES + +# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new +# page for each member. If set to NO, the documentation of a member will be part +# of the file/class/namespace that contains it. +# The default value is: NO. + +SEPARATE_MEMBER_PAGES = NO + +# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen +# uses this value to replace tabs by spaces in code fragments. +# Minimum value: 1, maximum value: 16, default value: 4. + +TAB_SIZE = 4 + +# This tag can be used to specify a number of aliases that act as commands in +# the documentation. An alias has the form: +# name=value +# For example adding +# "sideeffect=@par Side Effects:^^" +# will allow you to put the command \sideeffect (or @sideeffect) in the +# documentation, which will result in a user-defined paragraph with heading +# "Side Effects:". Note that you cannot put \n's in the value part of an alias +# to insert newlines (in the resulting output). You can put ^^ in the value part +# of an alias to insert a newline as if a physical newline was in the original +# file. When you need a literal { or } or , in the value part of an alias you +# have to escape them by means of a backslash (\), this can lead to conflicts +# with the commands \{ and \} for these it is advised to use the version @{ and +# @} or use a double escape (\\{ and \\}) + +ALIASES = + +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources +# only. Doxygen will then generate output that is more tailored for C. For +# instance, some of the names that are used will be different. The list of all +# members will be omitted, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_FOR_C = NO + +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or +# Python sources only. Doxygen will then generate output that is more tailored +# for that language. For instance, namespaces will be presented as packages, +# qualified scopes will look different, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_JAVA = YES + +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran +# sources. Doxygen will then generate output that is tailored for Fortran. +# The default value is: NO. + +OPTIMIZE_FOR_FORTRAN = NO + +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL +# sources. Doxygen will then generate output that is tailored for VHDL. +# The default value is: NO. + +OPTIMIZE_OUTPUT_VHDL = NO + +# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice +# sources only. Doxygen will then generate output that is more tailored for that +# language. For instance, namespaces will be presented as modules, types will be +# separated into more groups, etc. +# The default value is: NO. + +OPTIMIZE_OUTPUT_SLICE = NO + +# Doxygen selects the parser to use depending on the extension of the files it +# parses. With this tag you can assign which parser to use for a given +# extension. Doxygen has a built-in mapping, but you can override or extend it +# using this tag. The format is ext=language, where ext is a file extension, and +# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, +# Csharp (C#), C, C++, Lex, D, PHP, md (Markdown), Objective-C, Python, Slice, +# VHDL, Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: +# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser +# tries to guess whether the code is fixed or free formatted code, this is the +# default for Fortran type files). For instance to make doxygen treat .inc files +# as Fortran files (default is PHP), and .f files as C (default is Fortran), +# use: inc=Fortran f=C. +# +# Note: For files without extension you can use no_extension as a placeholder. +# +# Note that for custom extensions you also need to set FILE_PATTERNS otherwise +# the files are not read by doxygen. When specifying no_extension you should add +# * to the FILE_PATTERNS. +# +# Note see also the list of default file extension mappings. + +EXTENSION_MAPPING = + +# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments +# according to the Markdown format, which allows for more readable +# documentation. See https://daringfireball.net/projects/markdown/ for details. +# The output of markdown processing is further processed by doxygen, so you can +# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in +# case of backward compatibilities issues. +# The default value is: YES. + +MARKDOWN_SUPPORT = YES + +# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up +# to that level are automatically included in the table of contents, even if +# they do not have an id attribute. +# Note: This feature currently applies only to Markdown headings. +# Minimum value: 0, maximum value: 99, default value: 5. +# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. + +TOC_INCLUDE_HEADINGS = 5 + +# When enabled doxygen tries to link words that correspond to documented +# classes, or namespaces to their corresponding documentation. Such a link can +# be prevented in individual cases by putting a % sign in front of the word or +# globally by setting AUTOLINK_SUPPORT to NO. +# The default value is: YES. + +AUTOLINK_SUPPORT = YES + +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want +# to include (a tag file for) the STL sources as input, then you should set this +# tag to YES in order to let doxygen match functions declarations and +# definitions whose arguments contain STL classes (e.g. func(std::string); +# versus func(std::string) {}). This also make the inheritance and collaboration +# diagrams that involve STL classes more complete and accurate. +# The default value is: NO. + +BUILTIN_STL_SUPPORT = NO + +# If you use Microsoft's C++/CLI language, you should set this option to YES to +# enable parsing support. +# The default value is: NO. + +CPP_CLI_SUPPORT = NO + +# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: +# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen +# will parse them like normal C++ but will assume all classes use public instead +# of private inheritance when no explicit protection keyword is present. +# The default value is: NO. + +SIP_SUPPORT = NO + +# For Microsoft's IDL there are propget and propput attributes to indicate +# getter and setter methods for a property. Setting this option to YES will make +# doxygen to replace the get and set methods by a property in the documentation. +# This will only work if the methods are indeed getting or setting a simple +# type. If this is not the case, or you want to show the methods anyway, you +# should set this option to NO. +# The default value is: YES. + +IDL_PROPERTY_SUPPORT = YES + +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC +# tag is set to YES then doxygen will reuse the documentation of the first +# member in the group (if any) for the other members of the group. By default +# all members of a group must be documented explicitly. +# The default value is: NO. + +DISTRIBUTE_GROUP_DOC = NO + +# If one adds a struct or class to a group and this option is enabled, then also +# any nested class or struct is added to the same group. By default this option +# is disabled and one has to add nested compounds explicitly via \ingroup. +# The default value is: NO. + +GROUP_NESTED_COMPOUNDS = NO + +# Set the SUBGROUPING tag to YES to allow class member groups of the same type +# (for instance a group of public functions) to be put as a subgroup of that +# type (e.g. under the Public Functions section). Set it to NO to prevent +# subgrouping. Alternatively, this can be done per class using the +# \nosubgrouping command. +# The default value is: YES. + +SUBGROUPING = YES + +# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions +# are shown inside the group in which they are included (e.g. using \ingroup) +# instead of on a separate page (for HTML and Man pages) or section (for LaTeX +# and RTF). +# +# Note that this feature does not work in combination with +# SEPARATE_MEMBER_PAGES. +# The default value is: NO. + +INLINE_GROUPED_CLASSES = NO + +# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions +# with only public data fields or simple typedef fields will be shown inline in +# the documentation of the scope in which they are defined (i.e. file, +# namespace, or group documentation), provided this scope is documented. If set +# to NO, structs, classes, and unions are shown on a separate page (for HTML and +# Man pages) or section (for LaTeX and RTF). +# The default value is: NO. + +INLINE_SIMPLE_STRUCTS = NO + +# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or +# enum is documented as struct, union, or enum with the name of the typedef. So +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct +# with name TypeT. When disabled the typedef will appear as a member of a file, +# namespace, or class. And the struct will be named TypeS. This can typically be +# useful for C code in case the coding convention dictates that all compound +# types are typedef'ed and only the typedef is referenced, never the tag name. +# The default value is: NO. + +TYPEDEF_HIDES_STRUCT = NO + +# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This +# cache is used to resolve symbols given their name and scope. Since this can be +# an expensive process and often the same symbol appears multiple times in the +# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small +# doxygen will become slower. If the cache is too large, memory is wasted. The +# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range +# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 +# symbols. At the end of a run doxygen will report the cache usage and suggest +# the optimal cache size from a speed point of view. +# Minimum value: 0, maximum value: 9, default value: 0. + +LOOKUP_CACHE_SIZE = 0 + +# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use +# during processing. When set to 0 doxygen will based this on the number of +# cores available in the system. You can set it explicitly to a value larger +# than 0 to get more control over the balance between CPU load and processing +# speed. At this moment only the input processing can be done using multiple +# threads. Since this is still an experimental feature the default is set to 1, +# which effectively disables parallel processing. Please report any issues you +# encounter. Generating dot graphs in parallel is controlled by the +# DOT_NUM_THREADS setting. +# Minimum value: 0, maximum value: 32, default value: 1. + +NUM_PROC_THREADS = 1 + +#--------------------------------------------------------------------------- +# Build related configuration options +#--------------------------------------------------------------------------- + +# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in +# documentation are documented, even if no documentation was available. Private +# class members and static file members will be hidden unless the +# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. +# Note: This will also disable the warnings about undocumented members that are +# normally produced when WARNINGS is set to YES. +# The default value is: NO. + +EXTRACT_ALL = YES + +# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will +# be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIVATE = NO + +# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual +# methods of a class will be included in the documentation. +# The default value is: NO. + +EXTRACT_PRIV_VIRTUAL = NO + +# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal +# scope will be included in the documentation. +# The default value is: NO. + +EXTRACT_PACKAGE = NO + +# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be +# included in the documentation. +# The default value is: NO. + +EXTRACT_STATIC = YES + +# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined +# locally in source files will be included in the documentation. If set to NO, +# only classes defined in header files are included. Does not have any effect +# for Java sources. +# The default value is: YES. + +EXTRACT_LOCAL_CLASSES = YES + +# This flag is only useful for Objective-C code. If set to YES, local methods, +# which are defined in the implementation section but not in the interface are +# included in the documentation. If set to NO, only methods in the interface are +# included. +# The default value is: NO. + +EXTRACT_LOCAL_METHODS = NO + +# If this flag is set to YES, the members of anonymous namespaces will be +# extracted and appear in the documentation as a namespace called +# 'anonymous_namespace{file}', where file will be replaced with the base name of +# the file that contains the anonymous namespace. By default anonymous namespace +# are hidden. +# The default value is: NO. + +EXTRACT_ANON_NSPACES = NO + +# If this flag is set to YES, the name of an unnamed parameter in a declaration +# will be determined by the corresponding definition. By default unnamed +# parameters remain unnamed in the output. +# The default value is: YES. + +RESOLVE_UNNAMED_PARAMS = YES + +# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all +# undocumented members inside documented classes or files. If set to NO these +# members will be included in the various overviews, but no documentation +# section is generated. This option has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_MEMBERS = NO + +# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all +# undocumented classes that are normally visible in the class hierarchy. If set +# to NO, these classes will be included in the various overviews. This option +# has no effect if EXTRACT_ALL is enabled. +# The default value is: NO. + +HIDE_UNDOC_CLASSES = NO + +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend +# declarations. If set to NO, these declarations will be included in the +# documentation. +# The default value is: NO. + +HIDE_FRIEND_COMPOUNDS = NO + +# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any +# documentation blocks found inside the body of a function. If set to NO, these +# blocks will be appended to the function's detailed documentation block. +# The default value is: NO. + +HIDE_IN_BODY_DOCS = NO + +# The INTERNAL_DOCS tag determines if documentation that is typed after a +# \internal command is included. If the tag is set to NO then the documentation +# will be excluded. Set it to YES to include the internal documentation. +# The default value is: NO. + +INTERNAL_DOCS = NO + +# With the correct setting of option CASE_SENSE_NAMES doxygen will better be +# able to match the capabilities of the underlying filesystem. In case the +# filesystem is case sensitive (i.e. it supports files in the same directory +# whose names only differ in casing), the option must be set to YES to properly +# deal with such files in case they appear in the input. For filesystems that +# are not case sensitive the option should be be set to NO to properly deal with +# output files written for symbols that only differ in casing, such as for two +# classes, one named CLASS and the other named Class, and to also support +# references to files without having to specify the exact matching casing. On +# Windows (including Cygwin) and MacOS, users should typically set this option +# to NO, whereas on Linux or other Unix flavors it should typically be set to +# YES. +# The default value is: system dependent. + +CASE_SENSE_NAMES = NO + +# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with +# their full class and namespace scopes in the documentation. If set to YES, the +# scope will be hidden. +# The default value is: NO. + +HIDE_SCOPE_NAMES = NO + +# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will +# append additional text to a page's title, such as Class Reference. If set to +# YES the compound reference will be hidden. +# The default value is: NO. + +HIDE_COMPOUND_REFERENCE= NO + +# If the SHOW_HEADERFILE tag is set to YES then the documentation for a class +# will show which file needs to be included to use the class. +# The default value is: YES. + +SHOW_HEADERFILE = YES + +# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of +# the files that are included by a file in the documentation of that file. +# The default value is: YES. + +SHOW_INCLUDE_FILES = YES + +# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each +# grouped member an include statement to the documentation, telling the reader +# which file to include in order to use the member. +# The default value is: NO. + +SHOW_GROUPED_MEMB_INC = NO + +# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include +# files with double quotes in the documentation rather than with sharp brackets. +# The default value is: NO. + +FORCE_LOCAL_INCLUDES = NO + +# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the +# documentation for inline members. +# The default value is: YES. + +INLINE_INFO = YES + +# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the +# (detailed) documentation of file and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. +# The default value is: YES. + +SORT_MEMBER_DOCS = YES + +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief +# descriptions of file, namespace and class members alphabetically by member +# name. If set to NO, the members will appear in declaration order. Note that +# this will also influence the order of the classes in the class list. +# The default value is: NO. + +SORT_BRIEF_DOCS = NO + +# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the +# (brief and detailed) documentation of class members so that constructors and +# destructors are listed first. If set to NO the constructors will appear in the +# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. +# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief +# member documentation. +# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting +# detailed member documentation. +# The default value is: NO. + +SORT_MEMBERS_CTORS_1ST = NO + +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy +# of group names into alphabetical order. If set to NO the group names will +# appear in their defined order. +# The default value is: NO. + +SORT_GROUP_NAMES = NO + +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by +# fully-qualified names, including namespaces. If set to NO, the class list will +# be sorted only by class name, not including the namespace part. +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. +# Note: This option applies only to the class list, not to the alphabetical +# list. +# The default value is: NO. + +SORT_BY_SCOPE_NAME = NO + +# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper +# type resolution of all parameters of a function it will reject a match between +# the prototype and the implementation of a member function even if there is +# only one candidate or it is obvious which candidate to choose by doing a +# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still +# accept a match between prototype and implementation in such cases. +# The default value is: NO. + +STRICT_PROTO_MATCHING = NO + +# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo +# list. This list is created by putting \todo commands in the documentation. +# The default value is: YES. + +GENERATE_TODOLIST = YES + +# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test +# list. This list is created by putting \test commands in the documentation. +# The default value is: YES. + +GENERATE_TESTLIST = YES + +# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug +# list. This list is created by putting \bug commands in the documentation. +# The default value is: YES. + +GENERATE_BUGLIST = YES + +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) +# the deprecated list. This list is created by putting \deprecated commands in +# the documentation. +# The default value is: YES. + +GENERATE_DEPRECATEDLIST= YES + +# The ENABLED_SECTIONS tag can be used to enable conditional documentation +# sections, marked by \if ... \endif and \cond +# ... \endcond blocks. + +ENABLED_SECTIONS = + +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the +# initial value of a variable or macro / define can have for it to appear in the +# documentation. If the initializer consists of more lines than specified here +# it will be hidden. Use a value of 0 to hide initializers completely. The +# appearance of the value of individual variables and macros / defines can be +# controlled using \showinitializer or \hideinitializer command in the +# documentation regardless of this setting. +# Minimum value: 0, maximum value: 10000, default value: 30. + +MAX_INITIALIZER_LINES = 30 + +# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at +# the bottom of the documentation of classes and structs. If set to YES, the +# list will mention the files that were used to generate the documentation. +# The default value is: YES. + +SHOW_USED_FILES = YES + +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This +# will remove the Files entry from the Quick Index and from the Folder Tree View +# (if specified). +# The default value is: YES. + +SHOW_FILES = YES + +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces +# page. This will remove the Namespaces entry from the Quick Index and from the +# Folder Tree View (if specified). +# The default value is: YES. + +SHOW_NAMESPACES = YES + +# The FILE_VERSION_FILTER tag can be used to specify a program or script that +# doxygen should invoke to get the current version for each file (typically from +# the version control system). Doxygen will invoke the program by executing (via +# popen()) the command command input-file, where command is the value of the +# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided +# by doxygen. Whatever the program writes to standard output is used as the file +# version. For an example see the documentation. + +FILE_VERSION_FILTER = + +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed +# by doxygen. The layout file controls the global structure of the generated +# output files in an output format independent way. To create the layout file +# that represents doxygen's defaults, run doxygen with the -l option. You can +# optionally specify a file name after the option, if omitted DoxygenLayout.xml +# will be used as the name of the layout file. See also section "Changing the +# layout of pages" for information. +# +# Note that if you run doxygen from a directory containing a file called +# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE +# tag is left empty. + +LAYOUT_FILE = + +# The CITE_BIB_FILES tag can be used to specify one or more bib files containing +# the reference definitions. This must be a list of .bib files. The .bib +# extension is automatically appended if omitted. This requires the bibtex tool +# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. +# For LaTeX the style of the bibliography can be controlled using +# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the +# search path. See also \cite for info how to create references. + +CITE_BIB_FILES = + +#--------------------------------------------------------------------------- +# Configuration options related to warning and progress messages +#--------------------------------------------------------------------------- + +# The QUIET tag can be used to turn on/off the messages that are generated to +# standard output by doxygen. If QUIET is set to YES this implies that the +# messages are off. +# The default value is: NO. + +QUIET = NO + +# The WARNINGS tag can be used to turn on/off the warning messages that are +# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES +# this implies that the warnings are on. +# +# Tip: Turn warnings on while writing the documentation. +# The default value is: YES. + +WARNINGS = YES + +# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate +# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag +# will automatically be disabled. +# The default value is: YES. + +WARN_IF_UNDOCUMENTED = YES + +# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for +# potential errors in the documentation, such as documenting some parameters in +# a documented function twice, or documenting parameters that don't exist or +# using markup commands wrongly. +# The default value is: YES. + +WARN_IF_DOC_ERROR = YES + +# If WARN_IF_INCOMPLETE_DOC is set to YES, doxygen will warn about incomplete +# function parameter documentation. If set to NO, doxygen will accept that some +# parameters have no documentation without warning. +# The default value is: YES. + +WARN_IF_INCOMPLETE_DOC = YES + +# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that +# are documented, but have no documentation for their parameters or return +# value. If set to NO, doxygen will only warn about wrong parameter +# documentation, but not about the absence of documentation. If EXTRACT_ALL is +# set to YES then this flag will automatically be disabled. See also +# WARN_IF_INCOMPLETE_DOC +# The default value is: NO. + +WARN_NO_PARAMDOC = NO + +# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when +# a warning is encountered. If the WARN_AS_ERROR tag is set to FAIL_ON_WARNINGS +# then doxygen will continue running as if WARN_AS_ERROR tag is set to NO, but +# at the end of the doxygen process doxygen will return with a non-zero status. +# Possible values are: NO, YES and FAIL_ON_WARNINGS. +# The default value is: NO. + +WARN_AS_ERROR = NO + +# The WARN_FORMAT tag determines the format of the warning messages that doxygen +# can produce. The string should contain the file, line, and text tags, which +# will be replaced by the file and line number from which the warning originated +# and the warning text. Optionally the format may contain version, which will +# be replaced by the version of the file (if it could be obtained via +# FILE_VERSION_FILTER) +# The default value is: file:line: text. + +WARN_FORMAT = "file:line: text" + +# The WARN_LOGFILE tag can be used to specify a file to which warning and error +# messages should be written. If left blank the output is written to standard +# error (stderr). In case the file specified cannot be opened for writing the +# warning and error messages are written to standard error. When as file - is +# specified the warning and error messages are written to standard output +# (stdout). + +WARN_LOGFILE = + +#--------------------------------------------------------------------------- +# Configuration options related to the input files +#--------------------------------------------------------------------------- + +# The INPUT tag is used to specify the files and/or directories that contain +# documented source files. You may enter file names like myfile.cpp or +# directories like /usr/src/myproject. Separate the files or directories with +# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING +# Note: If this tag is empty the current directory is searched. + +INPUT = ../../Sources + +# This tag can be used to specify the character encoding of the source files +# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses +# libiconv (or the iconv built into libc) for the transcoding. See the libiconv +# documentation (see: +# https://www.gnu.org/software/libiconv/) for the list of possible encodings. +# The default value is: UTF-8. + +INPUT_ENCODING = UTF-8 + +# If the value of the INPUT tag contains directories, you can use the +# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and +# *.h) to filter out the source-files in the directories. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# read by doxygen. +# +# Note the list of default checked file patterns might differ from the list of +# default file extension mappings. +# +# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, +# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, +# *.hh, *.hxx, *.hpp, *.h++, *.l, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, +# *.inc, *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C +# comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, +# *.vhdl, *.ucf, *.qsf and *.ice. + +FILE_PATTERNS = *.c \ + *.cc \ + *.cxx \ + *.cpp \ + *.c++ \ + *.java \ + *.ii \ + *.ixx \ + *.ipp \ + *.i++ \ + *.inl \ + *.idl \ + *.ddl \ + *.odl \ + *.h \ + *.hh \ + *.hxx \ + *.hpp \ + *.h++ \ + *.l \ + *.cs \ + *.d \ + *.php \ + *.php4 \ + *.php5 \ + *.phtml \ + *.inc \ + *.m \ + *.markdown \ + *.md \ + *.mm \ + *.dox \ + *.py \ + *.pyw \ + *.f90 \ + *.f95 \ + *.f03 \ + *.f08 \ + *.f18 \ + *.f \ + *.for \ + *.vhd \ + *.vhdl \ + *.ucf \ + *.qsf \ + *.ice + +# The RECURSIVE tag can be used to specify whether or not subdirectories should +# be searched for input files as well. +# The default value is: NO. + +RECURSIVE = YES + +# The EXCLUDE tag can be used to specify files and/or directories that should be +# excluded from the INPUT source files. This way you can easily exclude a +# subdirectory from a directory tree whose root is specified with the INPUT tag. +# +# Note that relative paths are relative to the directory from which doxygen is +# run. + +EXCLUDE = + +# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or +# directories that are symbolic links (a Unix file system feature) are excluded +# from the input. +# The default value is: NO. + +EXCLUDE_SYMLINKS = NO + +# If the value of the INPUT tag contains directories, you can use the +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude +# certain files from those directories. +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories for example use the pattern */test/* + +EXCLUDE_PATTERNS = */Tests/* +EXCLUDE_PATTERNS += */bin/* +EXCLUDE_PATTERNS += */obj/* + +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names +# (namespaces, classes, functions, etc.) that should be excluded from the +# output. The symbol name can be a fully qualified name, a word, or if the +# wildcard * is used, a substring. Examples: ANamespace, AClass, +# ANamespace::AClass, ANamespace::*Test +# +# Note that the wildcards are matched against the file with absolute path, so to +# exclude all test directories use the pattern */test/* + +EXCLUDE_SYMBOLS = + +# The EXAMPLE_PATH tag can be used to specify one or more files or directories +# that contain example code fragments that are included (see the \include +# command). + +EXAMPLE_PATH = + +# If the value of the EXAMPLE_PATH tag contains directories, you can use the +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and +# *.h) to filter out the source-files in the directories. If left blank all +# files are included. + +EXAMPLE_PATTERNS = * + +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be +# searched for input files to be used with the \include or \dontinclude commands +# irrespective of the value of the RECURSIVE tag. +# The default value is: NO. + +EXAMPLE_RECURSIVE = NO + +# The IMAGE_PATH tag can be used to specify one or more files or directories +# that contain images that are to be included in the documentation (see the +# \image command). + +IMAGE_PATH = + +# The INPUT_FILTER tag can be used to specify a program that doxygen should +# invoke to filter for each input file. Doxygen will invoke the filter program +# by executing (via popen()) the command: +# +# +# +# where is the value of the INPUT_FILTER tag, and is the +# name of an input file. Doxygen will then use the output that the filter +# program writes to standard output. If FILTER_PATTERNS is specified, this tag +# will be ignored. +# +# Note that the filter must not add or remove lines; it is applied before the +# code is scanned, but not when the output code is generated. If lines are added +# or removed, the anchors will not be placed correctly. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +INPUT_FILTER = + +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern +# basis. Doxygen will compare the file name with each pattern and apply the +# filter if there is a match. The filters are a list of the form: pattern=filter +# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how +# filters are used. If the FILTER_PATTERNS tag is empty or if none of the +# patterns match the file name, INPUT_FILTER is applied. +# +# Note that for custom extensions or not directly supported extensions you also +# need to set EXTENSION_MAPPING for the extension otherwise the files are not +# properly processed by doxygen. + +FILTER_PATTERNS = + +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using +# INPUT_FILTER) will also be used to filter the input files that are used for +# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). +# The default value is: NO. + +FILTER_SOURCE_FILES = NO + +# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file +# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and +# it is also possible to disable source filtering for a specific pattern using +# *.ext= (so without naming a filter). +# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. + +FILTER_SOURCE_PATTERNS = + +# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that +# is part of the input, its contents will be placed on the main page +# (index.html). This can be useful if you have a project on for instance GitHub +# and want to reuse the introduction page also for the doxygen output. + +USE_MDFILE_AS_MAINPAGE = + +#--------------------------------------------------------------------------- +# Configuration options related to source browsing +#--------------------------------------------------------------------------- + +# If the SOURCE_BROWSER tag is set to YES then a list of source files will be +# generated. Documented entities will be cross-referenced with these sources. +# +# Note: To get rid of all source code in the generated output, make sure that +# also VERBATIM_HEADERS is set to NO. +# The default value is: NO. + +SOURCE_BROWSER = NO + +# Setting the INLINE_SOURCES tag to YES will include the body of functions, +# classes and enums directly into the documentation. +# The default value is: NO. + +INLINE_SOURCES = NO + +# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any +# special comment blocks from generated source code fragments. Normal C, C++ and +# Fortran comments will always remain visible. +# The default value is: YES. + +STRIP_CODE_COMMENTS = YES + +# If the REFERENCED_BY_RELATION tag is set to YES then for each documented +# entity all documented functions referencing it will be listed. +# The default value is: NO. + +REFERENCED_BY_RELATION = NO + +# If the REFERENCES_RELATION tag is set to YES then for each documented function +# all documented entities called/used by that function will be listed. +# The default value is: NO. + +REFERENCES_RELATION = NO + +# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set +# to YES then the hyperlinks from functions in REFERENCES_RELATION and +# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will +# link to the documentation. +# The default value is: YES. + +REFERENCES_LINK_SOURCE = YES + +# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the +# source code will show a tooltip with additional information such as prototype, +# brief description and links to the definition and documentation. Since this +# will make the HTML file larger and loading of large files a bit slower, you +# can opt to disable this feature. +# The default value is: YES. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +SOURCE_TOOLTIPS = YES + +# If the USE_HTAGS tag is set to YES then the references to source code will +# point to the HTML generated by the htags(1) tool instead of doxygen built-in +# source browser. The htags tool is part of GNU's global source tagging system +# (see https://www.gnu.org/software/global/global.html). You will need version +# 4.8.6 or higher. +# +# To use it do the following: +# - Install the latest version of global +# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file +# - Make sure the INPUT points to the root of the source tree +# - Run doxygen as normal +# +# Doxygen will invoke htags (and that will in turn invoke gtags), so these +# tools must be available from the command line (i.e. in the search path). +# +# The result: instead of the source browser generated by doxygen, the links to +# source code will now point to the output of htags. +# The default value is: NO. +# This tag requires that the tag SOURCE_BROWSER is set to YES. + +USE_HTAGS = NO + +# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a +# verbatim copy of the header file for each class for which an include is +# specified. Set to NO to disable this. +# See also: Section \class. +# The default value is: YES. + +VERBATIM_HEADERS = YES + +# If the CLANG_ASSISTED_PARSING tag is set to YES then doxygen will use the +# clang parser (see: +# http://clang.llvm.org/) for more accurate parsing at the cost of reduced +# performance. This can be particularly helpful with template rich C++ code for +# which doxygen's built-in parser lacks the necessary type information. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. +# The default value is: NO. + +CLANG_ASSISTED_PARSING = NO + +# If the CLANG_ASSISTED_PARSING tag is set to YES and the CLANG_ADD_INC_PATHS +# tag is set to YES then doxygen will add the directory of each input to the +# include path. +# The default value is: YES. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_ADD_INC_PATHS = YES + +# If clang assisted parsing is enabled you can provide the compiler with command +# line options that you would normally use when invoking the compiler. Note that +# the include paths will already be set by doxygen for the files and directories +# specified with INPUT and INCLUDE_PATH. +# This tag requires that the tag CLANG_ASSISTED_PARSING is set to YES. + +CLANG_OPTIONS = + +# If clang assisted parsing is enabled you can provide the clang parser with the +# path to the directory containing a file called compile_commands.json. This +# file is the compilation database (see: +# http://clang.llvm.org/docs/HowToSetupToolingForLLVM.html) containing the +# options used when the source files were built. This is equivalent to +# specifying the -p option to a clang tool, such as clang-check. These options +# will then be passed to the parser. Any options specified with CLANG_OPTIONS +# will be added as well. +# Note: The availability of this option depends on whether or not doxygen was +# generated with the -Duse_libclang=ON option for CMake. + +CLANG_DATABASE_PATH = + +#--------------------------------------------------------------------------- +# Configuration options related to the alphabetical class index +#--------------------------------------------------------------------------- + +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all +# compounds will be generated. Enable this if the project contains a lot of +# classes, structs, unions or interfaces. +# The default value is: YES. + +ALPHABETICAL_INDEX = YES + +# In case all classes in a project start with a common prefix, all classes will +# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag +# can be used to specify a prefix (or a list of prefixes) that should be ignored +# while generating the index headers. +# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. + +IGNORE_PREFIX = + +#--------------------------------------------------------------------------- +# Configuration options related to the HTML output +#--------------------------------------------------------------------------- + +# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output +# The default value is: YES. + +GENERATE_HTML = YES + +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a +# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of +# it. +# The default directory is: html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_OUTPUT = html + +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each +# generated HTML page (for example: .htm, .php, .asp). +# The default value is: .html. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FILE_EXTENSION = .html + +# The HTML_HEADER tag can be used to specify a user-defined HTML header file for +# each generated HTML page. If the tag is left blank doxygen will generate a +# standard header. +# +# To get valid HTML the header file that includes any scripts and style sheets +# that doxygen needs, which is dependent on the configuration options used (e.g. +# the setting GENERATE_TREEVIEW). It is highly recommended to start with a +# default header using +# doxygen -w html new_header.html new_footer.html new_stylesheet.css +# YourConfigFile +# and then modify the file new_header.html. See also section "Doxygen usage" +# for information on how to generate the default header that doxygen normally +# uses. +# Note: The header is subject to change so you typically have to regenerate the +# default header when upgrading to a newer version of doxygen. For a description +# of the possible markers and block names see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_HEADER = + +# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each +# generated HTML page. If the tag is left blank doxygen will generate a standard +# footer. See HTML_HEADER for more information on how to generate a default +# footer and what special commands can be used inside the footer. See also +# section "Doxygen usage" for information on how to generate the default footer +# that doxygen normally uses. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FOOTER = footer.html + +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style +# sheet that is used by each HTML page. It can be used to fine-tune the look of +# the HTML output. If left blank doxygen will generate a default style sheet. +# See also section "Doxygen usage" for information on how to generate the style +# sheet that doxygen normally uses. +# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as +# it is more robust and this tag (HTML_STYLESHEET) will in the future become +# obsolete. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_STYLESHEET = + +# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined +# cascading style sheets that are included after the standard style sheets +# created by doxygen. Using this option one can overrule certain style aspects. +# This is preferred over using HTML_STYLESHEET since it does not replace the +# standard style sheet and is therefore more robust against future updates. +# Doxygen will copy the style sheet files to the output directory. +# Note: The order of the extra style sheet files is of importance (e.g. the last +# style sheet in the list overrules the setting of the previous ones in the +# list). For an example see the documentation. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_STYLESHEET = + +# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or +# other source files which should be copied to the HTML output directory. Note +# that these files will be copied to the base HTML output directory. Use the +# relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these +# files. In the HTML_STYLESHEET file, use the file name only. Also note that the +# files will be copied as-is; there are no commands or markers available. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_EXTRA_FILES = images/CodeFirst.png + +# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen +# will adjust the colors in the style sheet and background images according to +# this color. Hue is specified as an angle on a color-wheel, see +# https://en.wikipedia.org/wiki/Hue for more information. For instance the value +# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 +# purple, and 360 is red again. +# Minimum value: 0, maximum value: 359, default value: 220. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_HUE = 215 + +# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors +# in the HTML output. For a value of 0 the output will use gray-scales only. A +# value of 255 will produce the most vivid colors. +# Minimum value: 0, maximum value: 255, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_SAT = 45 + +# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the +# luminance component of the colors in the HTML output. Values below 100 +# gradually make the output lighter, whereas values above 100 make the output +# darker. The value divided by 100 is the actual gamma applied, so 80 represents +# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not +# change the gamma. +# Minimum value: 40, maximum value: 240, default value: 80. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_COLORSTYLE_GAMMA = 240 + +# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML +# page will contain the date and time when the page was generated. Setting this +# to YES can help to show when doxygen was last run and thus if the +# documentation is up to date. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_TIMESTAMP = NO + +# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML +# documentation will contain a main index with vertical navigation menus that +# are dynamically created via JavaScript. If disabled, the navigation index will +# consists of multiple levels of tabs that are statically embedded in every HTML +# page. Disable this option to support browsers that do not have JavaScript, +# like the Qt help browser. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_MENUS = YES + +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML +# documentation will contain sections that can be hidden and shown after the +# page has loaded. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_DYNAMIC_SECTIONS = NO + +# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries +# shown in the various tree structured indices initially; the user can expand +# and collapse entries dynamically later on. Doxygen will expand the tree to +# such a level that at most the specified number of entries are visible (unless +# a fully collapsed tree already exceeds this amount). So setting the number of +# entries 1 will produce a full collapsed tree by default. 0 is a special value +# representing an infinite number of entries and will result in a full expanded +# tree by default. +# Minimum value: 0, maximum value: 9999, default value: 100. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_INDEX_NUM_ENTRIES = 100 + +# If the GENERATE_DOCSET tag is set to YES, additional index files will be +# generated that can be used as input for Apple's Xcode 3 integrated development +# environment (see: +# https://developer.apple.com/xcode/), introduced with OSX 10.5 (Leopard). To +# create a documentation set, doxygen will generate a Makefile in the HTML +# output directory. Running make will produce the docset in that directory and +# running make install will install the docset in +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at +# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy +# genXcode/_index.html for more information. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_DOCSET = NO + +# This tag determines the name of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# The default value is: Doxygen generated docs. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDNAME = "Doxygen generated docs" + +# This tag determines the URL of the docset feed. A documentation feed provides +# an umbrella under which multiple documentation sets from a single provider +# (such as a company or product suite) can be grouped. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_FEEDURL = + +# This tag specifies a string that should uniquely identify the documentation +# set bundle. This should be a reverse domain-name style string, e.g. +# com.mycompany.MyDocSet. Doxygen will append .docset to the name. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_BUNDLE_ID = org.doxygen.Project + +# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify +# the documentation publisher. This should be a reverse domain-name style +# string, e.g. com.mycompany.MyDocSet.documentation. +# The default value is: org.doxygen.Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_ID = org.doxygen.Publisher + +# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. +# The default value is: Publisher. +# This tag requires that the tag GENERATE_DOCSET is set to YES. + +DOCSET_PUBLISHER_NAME = Publisher + +# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three +# additional HTML index files: index.hhp, index.hhc, and index.hhk. The +# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop +# on Windows. In the beginning of 2021 Microsoft took the original page, with +# a.o. the download links, offline the HTML help workshop was already many years +# in maintenance mode). You can download the HTML help workshop from the web +# archives at Installation executable (see: +# http://web.archive.org/web/20160201063255/http://download.microsoft.com/downlo +# ad/0/A/9/0A939EF6-E31C-430F-A3DF-DFAE7960D564/htmlhelp.exe). +# +# The HTML Help Workshop contains a compiler that can convert all HTML output +# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML +# files are now used as the Windows 98 help format, and will replace the old +# Windows help format (.hlp) on all Windows platforms in the future. Compressed +# HTML files also contain an index, a table of contents, and you can search for +# words in the documentation. The HTML workshop also contains a viewer for +# compressed HTML files. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_HTMLHELP = NO + +# The CHM_FILE tag can be used to specify the file name of the resulting .chm +# file. You can add a path in front of the file if the result should not be +# written to the html output directory. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_FILE = + +# The HHC_LOCATION tag can be used to specify the location (absolute path +# including file name) of the HTML help compiler (hhc.exe). If non-empty, +# doxygen will try to run the HTML help compiler on the generated index.hhp. +# The file has to be specified with full path. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +HHC_LOCATION = + +# The GENERATE_CHI flag controls if a separate .chi index file is generated +# (YES) or that it should be included in the main .chm file (NO). +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +GENERATE_CHI = NO + +# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) +# and project file content. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +CHM_INDEX_ENCODING = + +# The BINARY_TOC flag controls whether a binary table of contents is generated +# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it +# enables the Previous and Next buttons. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +BINARY_TOC = NO + +# The TOC_EXPAND flag can be set to YES to add extra items for group members to +# the table of contents of the HTML help documentation and to the tree view. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTMLHELP is set to YES. + +TOC_EXPAND = NO + +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and +# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that +# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help +# (.qch) of the generated HTML documentation. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_QHP = NO + +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify +# the file name of the resulting .qch file. The path specified is relative to +# the HTML output folder. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QCH_FILE = + +# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help +# Project output. For more information please see Qt Help Project / Namespace +# (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_NAMESPACE = org.doxygen.Project + +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt +# Help Project output. For more information please see Qt Help Project / Virtual +# Folders (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders). +# The default value is: doc. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_VIRTUAL_FOLDER = doc + +# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom +# filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_NAME = + +# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the +# custom filter to add. For more information please see Qt Help Project / Custom +# Filters (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_CUST_FILTER_ATTRS = + +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this +# project's filter section matches. Qt Help Project / Filter Attributes (see: +# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHP_SECT_FILTER_ATTRS = + +# The QHG_LOCATION tag can be used to specify the location (absolute path +# including file name) of Qt's qhelpgenerator. If non-empty doxygen will try to +# run qhelpgenerator on the generated .qhp file. +# This tag requires that the tag GENERATE_QHP is set to YES. + +QHG_LOCATION = + +# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be +# generated, together with the HTML files, they form an Eclipse help plugin. To +# install this plugin and make it available under the help contents menu in +# Eclipse, the contents of the directory containing the HTML and XML files needs +# to be copied into the plugins directory of eclipse. The name of the directory +# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. +# After copying Eclipse needs to be restarted before the help appears. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_ECLIPSEHELP = NO + +# A unique identifier for the Eclipse help plugin. When installing the plugin +# the directory name containing the HTML and XML files should also have this +# name. Each documentation set should have its own identifier. +# The default value is: org.doxygen.Project. +# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. + +ECLIPSE_DOC_ID = org.doxygen.Project + +# If you want full control over the layout of the generated HTML pages it might +# be necessary to disable the index and replace it with your own. The +# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top +# of each HTML page. A value of NO enables the index and the value YES disables +# it. Since the tabs in the index contain the same information as the navigation +# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +DISABLE_INDEX = NO + +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index +# structure should be generated to display hierarchical information. If the tag +# value is set to YES, a side panel will be generated containing a tree-like +# index structure (just like the one that is generated for HTML Help). For this +# to work a browser that supports JavaScript, DHTML, CSS and frames is required +# (i.e. any modern browser). Windows users are probably better off using the +# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can +# further fine tune the look of the index (see "Fine-tuning the output"). As an +# example, the default style sheet generated by doxygen has an example that +# shows how to put an image at the root of the tree instead of the PROJECT_NAME. +# Since the tree basically has the same information as the tab index, you could +# consider setting DISABLE_INDEX to YES when enabling this option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +GENERATE_TREEVIEW = NO + +# When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the +# FULL_SIDEBAR option determines if the side bar is limited to only the treeview +# area (value NO) or if it should extend to the full height of the window (value +# YES). Setting this to YES gives a layout similar to +# https://docs.readthedocs.io with more room for contents, but less room for the +# project logo, title, and description. If either GENERATE_TREEVIEW or +# DISABLE_INDEX is set to NO, this option has no effect. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FULL_SIDEBAR = NO + +# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that +# doxygen will group on one line in the generated HTML documentation. +# +# Note that a value of 0 will completely suppress the enum values from appearing +# in the overview section. +# Minimum value: 0, maximum value: 20, default value: 4. +# This tag requires that the tag GENERATE_HTML is set to YES. + +ENUM_VALUES_PER_LINE = 4 + +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used +# to set the initial width (in pixels) of the frame in which the tree is shown. +# Minimum value: 0, maximum value: 1500, default value: 250. +# This tag requires that the tag GENERATE_HTML is set to YES. + +TREEVIEW_WIDTH = 250 + +# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to +# external symbols imported via tag files in a separate window. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +EXT_LINKS_IN_WINDOW = NO + +# If the OBFUSCATE_EMAILS tag is set to YES, doxygen will obfuscate email +# addresses. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +OBFUSCATE_EMAILS = YES + +# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg +# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see +# https://inkscape.org) to generate formulas as SVG images instead of PNGs for +# the HTML output. These images will generally look nicer at scaled resolutions. +# Possible values are: png (the default) and svg (looks nicer but requires the +# pdf2svg or inkscape tool). +# The default value is: png. +# This tag requires that the tag GENERATE_HTML is set to YES. + +HTML_FORMULA_FORMAT = png + +# Use this tag to change the font size of LaTeX formulas included as images in +# the HTML documentation. When you change the font size after a successful +# doxygen run you need to manually remove any form_*.png images from the HTML +# output directory to force them to be regenerated. +# Minimum value: 8, maximum value: 50, default value: 10. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_FONTSIZE = 10 + +# Use the FORMULA_TRANSPARENT tag to determine whether or not the images +# generated for formulas are transparent PNGs. Transparent PNGs are not +# supported properly for IE 6.0, but are supported on all modern browsers. +# +# Note that when changing this option you need to delete any form_*.png files in +# the HTML output directory before the changes have effect. +# The default value is: YES. +# This tag requires that the tag GENERATE_HTML is set to YES. + +FORMULA_TRANSPARENT = YES + +# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands +# to create new LaTeX commands to be used in formulas as building blocks. See +# the section "Including formulas" for details. + +FORMULA_MACROFILE = + +# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see +# https://www.mathjax.org) which uses client side JavaScript for the rendering +# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX +# installed or if you want to formulas look prettier in the HTML output. When +# enabled you may also need to install MathJax separately and configure the path +# to it using the MATHJAX_RELPATH option. +# The default value is: NO. +# This tag requires that the tag GENERATE_HTML is set to YES. + +USE_MATHJAX = NO + +# With MATHJAX_VERSION it is possible to specify the MathJax version to be used. +# Note that the different versions of MathJax have different requirements with +# regards to the different settings, so it is possible that also other MathJax +# settings have to be changed when switching between the different MathJax +# versions. +# Possible values are: MathJax_2 and MathJax_3. +# The default value is: MathJax_2. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_VERSION = MathJax_2 + +# When MathJax is enabled you can set the default output format to be used for +# the MathJax output. For more details about the output format see MathJax +# version 2 (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) and MathJax version 3 +# (see: +# http://docs.mathjax.org/en/latest/web/components/output.html). +# Possible values are: HTML-CSS (which is slower, but has the best +# compatibility. This is the name for Mathjax version 2, for MathJax version 3 +# this will be translated into chtml), NativeMML (i.e. MathML. Only supported +# for NathJax 2. For MathJax version 3 chtml will be used instead.), chtml (This +# is the name for Mathjax version 3, for MathJax version 2 this will be +# translated into HTML-CSS) and SVG. +# The default value is: HTML-CSS. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_FORMAT = HTML-CSS + +# When MathJax is enabled you need to specify the location relative to the HTML +# output directory using the MATHJAX_RELPATH option. The destination directory +# should contain the MathJax.js script. For instance, if the mathjax directory +# is located at the same level as the HTML output directory, then +# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax +# Content Delivery Network so you can quickly see the result without installing +# MathJax. However, it is strongly recommended to install a local copy of +# MathJax from https://www.mathjax.org before deployment. The default value is: +# - in case of MathJax version 2: https://cdn.jsdelivr.net/npm/mathjax@2 +# - in case of MathJax version 3: https://cdn.jsdelivr.net/npm/mathjax@3 +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_RELPATH = + +# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax +# extension names that should be enabled during MathJax rendering. For example +# for MathJax version 2 (see https://docs.mathjax.org/en/v2.7-latest/tex.html +# #tex-and-latex-extensions): +# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols +# For example for MathJax version 3 (see +# http://docs.mathjax.org/en/latest/input/tex/extensions/index.html): +# MATHJAX_EXTENSIONS = ams +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_EXTENSIONS = + +# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces +# of code that will be used on startup of the MathJax code. See the MathJax site +# (see: +# http://docs.mathjax.org/en/v2.7-latest/output.html) for more details. For an +# example see the documentation. +# This tag requires that the tag USE_MATHJAX is set to YES. + +MATHJAX_CODEFILE = + +# When the SEARCHENGINE tag is enabled doxygen will generate a search box for +# the HTML output. The underlying search engine uses javascript and DHTML and +# should work on any modern browser. Note that when using HTML help +# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) +# there is already a search function so this one should typically be disabled. +# For large projects the javascript based search engine can be slow, then +# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to +# search using the keyboard; to jump to the search box use + S +# (what the is depends on the OS and browser, but it is typically +# , /