From 8eb14f355273ae05a27b1b52f5c54f71c69e863a Mon Sep 17 00:00:00 2001
From: Dorchies David <david.dorchies@irstea.fr>
Date: Fri, 25 Jan 2019 16:28:46 +0100
Subject: [PATCH] #22 Validation des tests scilab / code matlab

---
 doc/matlab_macro_rugo/data_precalcul_nat.mat  |  Bin 0 -> 805 bytes
 doc/matlab_macro_rugo/find_Q_nat.m            |  115 ++
 doc/matlab_macro_rugo/resolve_alpha.m         |   47 +
 doc/matlab_macro_rugo/warning_4a1_1.fig       |  Bin 0 -> 1825 bytes
 doc/matlab_macro_rugo/warning_4a1_1.m         |   81 ++
 doc/matlab_macro_rugo/window_4a1.fig          |  Bin 0 -> 37512 bytes
 doc/matlab_macro_rugo/window_4a1.m            | 1028 +++++++++++++++++
 doc/scilab_tests/macrorugo_find_Q_nat.sci     |  116 ++
 doc/scilab_tests/macrorugo_find_Q_nat2.sci    |  118 --
 doc/scilab_tests/macrorugo_resolve_alpha.sci  |    7 +-
 .../macrorugo_resultats_complementaires.sci   |   23 +-
 doc/scilab_tests/macrorugo_searchQ.sci        |   26 +
 doc/scilab_tests/main_macrorugo.sce           |   55 +-
 doc/scilab_tests/print_r.sci                  |    2 +-
 14 files changed, 1452 insertions(+), 166 deletions(-)
 create mode 100644 doc/matlab_macro_rugo/data_precalcul_nat.mat
 create mode 100644 doc/matlab_macro_rugo/find_Q_nat.m
 create mode 100644 doc/matlab_macro_rugo/resolve_alpha.m
 create mode 100644 doc/matlab_macro_rugo/warning_4a1_1.fig
 create mode 100644 doc/matlab_macro_rugo/warning_4a1_1.m
 create mode 100644 doc/matlab_macro_rugo/window_4a1.fig
 create mode 100644 doc/matlab_macro_rugo/window_4a1.m
 create mode 100644 doc/scilab_tests/macrorugo_find_Q_nat.sci
 delete mode 100644 doc/scilab_tests/macrorugo_find_Q_nat2.sci
 create mode 100644 doc/scilab_tests/macrorugo_searchQ.sci

diff --git a/doc/matlab_macro_rugo/data_precalcul_nat.mat b/doc/matlab_macro_rugo/data_precalcul_nat.mat
new file mode 100644
index 0000000000000000000000000000000000000000..1ef3449b26ff6916bb0d7644387664902b40cb79
GIT binary patch
literal 805
zcmeZu4DoSvQZUssQ1EpO(M`+DN!3vZ$Vn_o%P-2cQV4Jk_w+L}(NS<NN=+<DO;O0t
zvr=#?%2e=5%u_HjRWLNOGBU6-wNNlJFtk)45-`93qo*%FkgW~G6>}aZCnOXwB$+8Z
zYq+Fvfa|HTQev6Hx-S1SXU}UVK4>}R+^~$9Ay$L=4M>YBT#Es+mP3Zz&VF@qR>Bil
zgP0jqqL>s=&EJ5kSlGGDkeOLMWKUGe+~0>+iB&ULI<ovjH6Kljax?dYXDwaM2bilF
z<Qo|ufE2629fPjenGK|PdE-IjY6ksgmOPMZ6}W0Nrwcb1b1_d~*(f2wAbF2b5TsTe
zt`@^&1CYt*XK^xVzhyLGVD$$nSB5J`Gg`Tse?l75W}wNUZy2_Klxo10qM0o0>?j2a
zlRFYTa<`co42_sqfYfW@Qm@=>404IS=7y)c_WfwEWzchCnS$Rj&I&-sd<Hs3Ood?w
zNT~tb@B-ur0wn-F4;`;FXU`-96F_+Pn&SG1t4aI}+4=0EMCjA;&`E>qGd(KDklo9!
a3eu-Tz&_tK2|#_)%?DGf8Is?#?gRi0>;a_!

literal 0
HcmV?d00001

diff --git a/doc/matlab_macro_rugo/find_Q_nat.m b/doc/matlab_macro_rugo/find_Q_nat.m
new file mode 100644
index 00000000..57eb3f73
--- /dev/null
+++ b/doc/matlab_macro_rugo/find_Q_nat.m
@@ -0,0 +1,115 @@
+function [res]=find_Q_nat(cote_bas,ks,D,h,Cd0,S,L,pf,C,Q,sigma)
+fprintf('*************************************\n')
+fprintf('find_Q_nat Q=%f\n',Q)
+
+maxfun=5000;
+maxiter=5000;
+tolfun=1e-16;
+tolx=1e-16;
+g=9.81;
+kappa=0.41;
+U0=Q./L./pf;
+
+Fr=U0./(9.81*pf).^0.5;
+Frg=Fr/(1-C^0.5);
+
+
+if ks==0;ks=1e-34;end
+
+
+coeff_contraction=0.4*Cd0+0.7;
+
+%if Cd0==2
+ %   fFr=(min(2.5,Frg^(-4/3)));%
+%else
+    fFr=(min(coeff_contraction./(1-(Frg.^2)/4),Frg.^(-2/3))).^2;
+%end
+
+if Frg>1.5
+    fFr=(Frg.^(-2/3)).^2;
+end
+
+
+
+alpha=1-(1.*C).^0.5-1/2*sigma.*C;
+Cd=Cd0.*(1+1./(pf./D).^2).*fFr;
+
+%Cd=Cd0.*(0.8-2*C).*(1+0.4./(pf./D).^2).*fFr;
+R=(1-sigma*C);%.*(1-C.^0.5).^2;
+
+
+if pf/h>1.1; %fFr=1;
+    
+    choixturb=1;
+    htilde=h./D;
+    hstar=pf./h;
+    Rh=h.*(hstar-1);
+    ustar=(g.*S.*Rh).^0.5;
+    fprintf('ustar=%f\n',ustar)
+    
+    Cd1=Cd0.*(1+0.4./(pf./D).^2).*fFr;
+    CdCh=Cd1.*C.*htilde;
+    fprintf('CdCh=%f\n',CdCh)
+    
+    Cf=2./(5.1.*log10(h./ks)+6).^2;
+    
+    U0b=(2*g.*S.*R./(Cd1.*C.*h./D+Cf.*R).*h).^0.5;
+    fprintf('U0b=%f\n',U0b)
+    
+    % U0=(2*g.*S.*D.*R./(Cd1.*C)).^0.5;
+    
+    [P]=fminbnd(@(alphai) resolve_alpha(alphai,CdCh,R,U0b,hstar,h,C,D,Cd1,ustar,choixturb),1e-5*h,h,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx));
+    
+    alpha=P(1);
+    fprintf('alpha=%f\n',alpha)
+    
+    beta2=h.*CdCh./alpha./R;
+    beta=(beta2).^0.5;
+    a1=beta*(hstar-1)/(cosh(beta));
+    c=1;
+    
+    UhU0=(a1*sinh(beta)+c)^0.5;
+    Uh=UhU0*U0b;
+    fprintf('Uh=%f\n',Uh)
+    
+    dhp=1-1/kappa*alpha./h.*Uh./ustar;
+    z0hp=(1-dhp).*exp(-1*(kappa*Uh./ustar));
+    
+    qsup=ustar./kappa.*h.*((hstar-dhp).*(log((hstar-dhp)./z0hp) - 1)-((1-dhp).*(log((1-dhp)./z0hp) - 1)));
+    fprintf('qsup=%f\n',qsup)
+        %calcul intégrale dans la canopée----
+        dzinf=0.01;
+    Zinf=(0:dzinf:1);
+    Uinf=U0b    .*(beta.*Rh./h.*sinh(beta*Zinf)./cosh(beta)+1).^0.5;
+    Ub=zeros(size(Uinf));
+    Ub(1:end-1)=Uinf(2:end);    
+    qinf=sum((Uinf(1:end-1)+Ub(1:end-1))/2*dzinf.*h);
+    fprintf('qinf=%f\n',qinf)
+    qtot=qinf+qsup;
+    
+    PI=0;
+    delta=1;
+    
+    Umoy=qtot./pf;
+    res=abs(U0-Umoy);
+    
+else
+    
+    hstar=pf/D;
+    Re=U0.*pf/1e-6;
+    
+    if ks==0
+        Cf=0.3164/4.*Re.^(-0.25);    
+    else
+        Cf=2/(5.1*log10(pf/ks-1)+6)^2;        
+    end    
+    
+    N= (alpha.*Cf)./(pf./D.*Cd.*C);
+
+    res=abs(U0-(2*g.*S.*D.*(R)./(Cd.*C.*(1+N))).^0.5);
+    
+    
+    
+end
+
+fprintf('res=%f\n',res)
diff --git a/doc/matlab_macro_rugo/resolve_alpha.m b/doc/matlab_macro_rugo/resolve_alpha.m
new file mode 100644
index 00000000..d78606a9
--- /dev/null
+++ b/doc/matlab_macro_rugo/resolve_alpha.m
@@ -0,0 +1,47 @@
+function [res]= resolve_alpha(alpha,CdCh,R,U0,hstar,hp,C,D,Cd,ustar,choixturb)
+    if 1==1
+       fprintf('resolve_alpha(alpha=%f,CdCh=%f,R=%f,U0=%f,hstar=%f,hp=%f,C=%f,D=%f,Cd=%f,ustar=%f)\n',alpha,CdCh,R,U0,hstar,hp,C,D,Cd,ustar)
+    end
+
+g=9.81;
+kappa=0.41;
+
+L=D*(1/C^0.5-1);
+beta2=hp.*CdCh./alpha./R;
+
+beta=(beta2).^0.5;
+a1=beta*(hstar-1)/(cosh(beta));
+
+c=1;
+UhU0=(a1*sinh(beta)+c)^0.5;
+Uh=UhU0*U0;
+
+%choix du modele de turbulence
+
+switch choixturb
+    
+   case 1       
+
+    L1=min(L,0.15*hp);
+    %L1=L;%0.15*hp;  
+   
+%     case 2
+%         
+%         L1=L.*hp./(1/0.41*L+hp);
+%         
+%     case 3
+%         L1=0.15*min(hp,D./C./Cd);%;
+%     case 4
+%         if  L/hp<1
+%             L1=(1-L/hp).*L;
+%             if L1<0.05*hp && L/hp>0.8;L1=0.05*hp;end
+%         else
+%             L1=0.41*((1-hp./L))*hp;
+%             if L1<0.05*hp && L/hp<1.2;L1=0.05*hp;end
+%         end
+end
+
+
+res=abs(alpha*Uh-L1*ustar);
+fprintf('resolve_alpha res=%f\n',res)
+end
\ No newline at end of file
diff --git a/doc/matlab_macro_rugo/warning_4a1_1.fig b/doc/matlab_macro_rugo/warning_4a1_1.fig
new file mode 100644
index 0000000000000000000000000000000000000000..379e63bc1434dd009798f5a9050ef0ae5656d5ad
GIT binary patch
literal 1825
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
P<nX5?zkvV%mJcU|TJ3(^

literal 0
HcmV?d00001

diff --git a/doc/matlab_macro_rugo/warning_4a1_1.m b/doc/matlab_macro_rugo/warning_4a1_1.m
new file mode 100644
index 00000000..8058dc88
--- /dev/null
+++ b/doc/matlab_macro_rugo/warning_4a1_1.m
@@ -0,0 +1,81 @@
+function varargout = warning_4a1_1(varargin)
+% WARNING_4A1_1 MATLAB code for warning_4a1_1.fig
+%      WARNING_4A1_1, by itself, creates a new WARNING_4A1_1 or raises the existing
+%      singleton*.
+%
+%      H = WARNING_4A1_1 returns the handle to a new WARNING_4A1_1 or the handle to
+%      the existing singleton*.
+%
+%      WARNING_4A1_1('CALLBACK',hObject,eventData,handles,...) calls the local
+%      function named CALLBACK in WARNING_4A1_1.M with the given input arguments.
+%
+%      WARNING_4A1_1('Property','Value',...) creates a new WARNING_4A1_1 or raises the
+%      existing singleton*.  Starting from the left, property value pairs are
+%      applied to the GUI before warning_4a1_1_OpeningFcn gets called.  An
+%      unrecognized property name or invalid value makes property application
+%      stop.  All inputs are passed to warning_4a1_1_OpeningFcn via varargin.
+%
+%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
+%      instance to run (singleton)".
+%
+% See also: GUIDE, GUIDATA, GUIHANDLES
+
+% Edit the above text to modify the response to help warning_4a1_1
+
+% Last Modified by GUIDE v2.5 08-Oct-2014 13:48:09
+
+% Begin initialization code - DO NOT EDIT
+gui_Singleton = 1;
+gui_State = struct('gui_Name',       mfilename, ...
+                   'gui_Singleton',  gui_Singleton, ...
+                   'gui_OpeningFcn', @warning_4a1_1_OpeningFcn, ...
+                   'gui_OutputFcn',  @warning_4a1_1_OutputFcn, ...
+                   'gui_LayoutFcn',  [] , ...
+                   'gui_Callback',   []);
+if nargin && ischar(varargin{1})
+    gui_State.gui_Callback = str2func(varargin{1});
+end
+
+if nargout
+    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
+else
+    gui_mainfcn(gui_State, varargin{:});
+end
+% End initialization code - DO NOT EDIT
+
+
+% --- Executes just before warning_4a1_1 is made visible.
+function warning_4a1_1_OpeningFcn(hObject, eventdata, handles, varargin)
+% This function has no output args, see OutputFcn.
+% hObject    handle to figure
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+% varargin   command line arguments to warning_4a1_1 (see VARARGIN)
+
+% Choose default command line output for warning_4a1_1
+handles.output = hObject;
+
+% Update handles structure
+guidata(hObject, handles);
+
+% UIWAIT makes warning_4a1_1 wait for user response (see UIRESUME)
+% uiwait(handles.figure1);
+
+
+% --- Outputs from this function are returned to the command line.
+function varargout = warning_4a1_1_OutputFcn(hObject, eventdata, handles) 
+% varargout  cell array for returning output args (see VARARGOUT);
+% hObject    handle to figure
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Get default command line output from handles structure
+varargout{1} = handles.output;
+
+
+% --- Executes on button press in pushbutton1.
+function pushbutton1_Callback(hObject, eventdata, handles)
+% hObject    handle to pushbutton1 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+close
diff --git a/doc/matlab_macro_rugo/window_4a1.fig b/doc/matlab_macro_rugo/window_4a1.fig
new file mode 100644
index 0000000000000000000000000000000000000000..b60b5f6315d11fe6de64ed54fda307ee070f53d2
GIT binary patch
literal 37512
zcma&Nbyyo;&<0wd6f01mxH}Yghf<(Gv0}vuPH}fgiWDu@;_gx?T09|8+$j{7;10nd
zNVxfZ-}l_-{(1LFCcE#MGw03hp3IrqjfT9Qy8Jr^5ng@<4S78tI|pZ5ZibJ}mfm)5
zo-UFM9~BH#HARKF85BHiExm1R7~EVX8T5Q?88qE|83aU7FG&FjNkJh7L4E;IhX0>i
zu+X#r-OyAu2vK{cg3q4$=NuW0IW50`4MHyV6Npkff9BvRDNRawy~(FSt;+=ZNB@ys
z?GX(vT&5~_g|<31qQvJYC-{xT_5ANA1qY5x=MMysrYJhkJw_f@mhOyqUVCG?lw(JZ
z_Dxl(zMH*C_L1dcQt*99{(CKWeAF`wcn7bFHZUQ<^|VrJ&@5Eot#W-`yNIvLx9_HN
zc)NY@xxLeC7jE^}$(cgI-M-w^Qgq$CdrDSYG|p2-bN!O?F8~6H1MJ=^a)AmDDmddD
zJX_M7DYT}w`HsX`#Xy0H&(u>?(@$;`#((7dL$n7S+Qq{^e>r43Gp#60;?$%ZVWq2A
z_W_2tvN)}^UwNfjN-+A8MTfc->E!-t*k4EYP5U{)U{N07?DL2#I?`ByB(Q8o1h=L1
zjZ>Yy20(jx+o+4W&v0<ECTeG^P7zH9c0c=@)WoKUJw4lP;Rd?~K3LX53fFb(c6E);
z2YsYmQI?v{V!Y1>u_B8#UT)}fkIgsBd-sBKl<9s}0~EgUQ&_C@X^y><cb0RQ43-<Y
ziPSb8loXZG`9tTsoOb+@!#AUvJURR_meQ3SV+@vPUJ)Y4`&U3jbsx60ICvSpzK^v_
z2!&|vHy5r*2KrxomhFLM*JD4mJ3Sn}XhzFe)rpXkiIqDFp+*4DCOVi0#Pr6GT$FDG
zey;UyAr7;-gq#4Qqpk;oJ~$e>hUR}qV#cI;M~(cN%O-C*G(<XK+Gp4QmdmlKgIDL&
zL=p_}Vp<yZMyCnIf`J^jd|^*)x9~7I;s?TRdOT$M8VC=mcv>DNNB*F4YTf-5Fm_wN
zvFpW}!2Tge@Wgi?AK3)#>jP{scqEIfF0&*M8^kpBLd*igp%Va7WNm^mV)Z$6$>B|A
zTFj4G{292};f>oZM6DvdMDtAbB;0&#H~l%ZqS8NN0e_bB5&cKKa`A+wX4!85><JM*
zL@%eN2Om{$inK14<WvRdy|c?~`cz&B()?@RknoZ@?vl0)#7bIQOZEC(%A31}Zvq4y
zvAb%;d*KPew@ET>qO!k+U-dQ0v25k<6^IBf^qD9<84!|2XSVbj$2C(CB!`5D<9{<<
zP!tylA(-+x`eYoVllQ!xDJB9C-O<ZUF;60s)B!)JX51`gwZT_|6+-U=x##tN$9Yxv
zZ4!6zE6J6eu=~iVefLl^6*o6KJH@@eX@J>TtjlOs|B+zg8|i(|wxa<t^Nm|**c}R4
z9tB)=u3Y}?_$uCWxvExi<NFTM84)OhbHz}&Y7uRo16S<`V5otb;cQBC1u|SVGrK<;
zcBc*r+|BA#-R$duXqvQEbxwM0<Z8e9Dasv4ydCrUGVH|xoVleDzJ2+Kn3lSE8D~(o
z;5#lOLa~0OUeCUI!@#qJAxXwPjhE-~b2s+@r!erjxc#f8n&69r3D`d`F<<DKhvn2=
ze{=K@&G8mu5rQpcfZ@wKSua1pFdB}@_89bn!qj+VC$uZCwe#J8wIt1(^sX1-$eoW1
zVcbyOXXuF^6sx=bC1BCZXYYpm=*a>Ghy?}sX>aa^<ez+=TR4NADym(%6}QVqYvo8L
zc{E+B-N_Kc$NbqZH+SwC*Kfq8<308Wy9;##-p557teW&MO>EBWQ|}r^X1KA#F6p?>
zAH9<JVZr!+5q2|P=nD};_hT1Yq`aE;5>GZvM=vpt>K-n58!`Ak_jg^cC<}uOr9pLI
z-3=oaBgi0CcnKnEH~XGk7<8@BP5%4kJ*cNg&kPwebJMlIlP_Bl;;L>puMU3x_zBiS
zqG=$JAV@IOgbgwe1b$&XnVSx^L9D-$%%`_=fa|zdH)LKsVMwvxQ6hr$kQrY5=ci%3
z<X~6C76|pz`}A~VFs4N!|2qHO(p&s8D#C;A%Ywpq8eG=D85CHK*uYbwv+xYIF>k-c
z1ZTgj6{A;LH0wKm!+Sw}7)V0@(;6K6TFFK!-L%s7QnH8!zL!#N_N#~4H>(fV5aDMG
zeNms3$)+fpo!6$6WY2?H5EL8CCy*C7Lj%DIAG0RTX@~m=2m8=waY#JlWZP__m-*=_
zW!dn;^1Apgf}}2j#0p!CztH=&H2bv>^MBTof`rRLFmmGhtWG3Ev2M1f7<b9<(?jmD
z-d(fbI!t{he=qh*=wn||O2DD0>-iUcN3_1|ZyEDR+!c~#{n#QSJ~jt0UdTT+UEIfG
z0B>$LAX7z3PGpWYcG027Q_KG@%5|qp?MV=4Lm&JCKBBJ-$#bUDiD%L4exJB|K!0Z9
zX0^`+<acX+|BJLEMtA~{&3FyLy;VE)z4}CFcZioNW@v5gpBkm4{BnCXx^lYdoP}y4
zAvTzfk388@FR58j()aU?;TYpa<>i)VjSPQp-uf4rFl9E8IqHAObE5y?u@8YM%UJo#
zrCpsAbHWCuhQtpd?i^3U_jxOGVu#aW#C6P+(Zy@EfzxgnYZf`yF5{%&fo`u#FiwBl
zk6@}~us_wH9bdBi<!(jU<q9S!QI}~A(A^<XcogHlZMr$^*#!ubL$5KU5Rfj;q(xJU
z;5znD8VmBse>^`vz=O*4oImoVyLMc~NTvt=c@?zSH^N9IlBtBBpXYi+{2G?=RX#@&
z_XNCa9cgm$hedrm5ybmB#;CU%f$;IkG&L>}Jv+%(?voVo#%sB)w3}w2A~vBrkH8|%
zGhqROV!%$7M=axS{GOMx!b*ByNBR+`>%B#4`CNHM=W)r(Y;<Bj)PKQn{DMyXs;i68
z{QltC#gjgAeCy&RZ01>8&4F7a%-0Mw_cN?!<W7p9^kzNG!tZ<GRZG$I-3nPJCrx-T
zVC}j8*5Z}S46SDH3&=o>gSp2X_d!NrG8K4OTffzquqSzTPQNCf)l@?5@y_6Ho*SXO
zThlW+rN_HMSmMFKkHb0kA|Qm_r>Q;L{;>nT6Vbr_C)F#S>uIW1OYt#K%Ux-P7}7cs
zVi4u#@8d6YFqc?bLon^dSfG5W?<nHVX7UfdYaFQAz;|<SH0RzVIQ#^ZO)@{J>U<a%
z7`(xx`!Ya8_htGkmd_UdkzuCu=F>)~-xHt0zU?jb|4c>0|DB3yVefkN&YqnyLpWU4
zp1qc1ilMAve2*)<f%X2o<O=Wcpl|uY3a<YKN1pi4<X%wdEusHf;#z?p0S!2CDqw|{
zBCX#=jAyEhFH;>Pb+OtRa<L<JA?a5q<yW`#m5(Xnz5n6HF?c%MThdUaYd>6*Fc8iP
zDNy5M5V;S)zLKN}jL(?$D*Ah*`<>+aMD_X|>5<Qe>puj||3nToF)mj;+(B9`7Y|xS
zk;5LZVT^%C>sl=%^j)k!`Bwxp*cQ$<$yGjYdMwliE4v)N_B|zYn_kYgmuynEH$~z%
zSWxOs4EdYsmY%&9s#MD4b!XCQsxGA47_!nX#tr2pj8RJZK@f!w2Nb{wG(I(so9+3V
zqLEY1be}oSmJXB>8V-?!bEG+D%-m~p!UU;w)s;cL3Uc1+a(d(XlWK*a-SBEG#4Doi
zxK|Iq+^ovotgxm2_6?D3gr2?FYk5vskl6rma-sW-O(=a{=e1yq<^FxY?Yprc(+kem
zGb+DdNj3N#fWNq|V@bVzX;2?ueo9&plbcYs@%6(Yem!N}901DdZ`rf+6(EE3UzhqR
z$EQwY%W7ZuJx_x_o{~den5QQ{#)EHFh2l;9KL;iC&unyOi#MUxzUbQs;O)CH9awO(
z$&1Wx`sN$amYWxKxqKcEm}_?B?0_#2f+5$W;<pSI7hk<)zshvd@9^D8Pw=~8S~;*-
z^V=<KmKks1S)F|&F>I-*iFJugQ)@?8O&ceX84;SNg?{jWh9=ZXt@S>ZrgVGeTrp4U
z>5i2y43!TJRhF__GZ$}Cf&%Iy9`-Gj`Dm(n5}5Lfbxg%|YshoWn$-Kq0Ji<HMl7*`
z8`2e9up%z=FJs%;%;H)36JTvpC&Q4Dbk>oZ0O!;Lqvk9+_Ts<tgS&q_9OOyEd)Uhe
zcR#!iwB#VW7=bF<-vx%IJ|76^GmCas-U~^&<Zau*Y%N{reL!DB^JaRQQcjj>V23FL
zngOv1NUqUtmgGP$N(DT`T(7-g<2WXus`usrD?6#}ryrg;&xX^YKzwFr=%#qJ(OgRU
zy&K^2F}_rU(rDE{XU$EB>E(P+?R(e=a|P6_w)n}Q7Lat*)fp;1&J>INrXa+I5u-9V
zzKEtz6Jk!E=p_JH5A_U@4bT0&sfYKN=+}XE_v>S=@?=v3;Ql!9QT<d!=-*+!oCo69
z8vVySfR<H|a00aX@QMWPmKJnnR5=G|-N0;J4DtatdqP6;->1T-caxxjk9_|dL=Cn6
z3!)&NCwY~4atMW$aEgk0C~-WUDF<V3^eg$lC8|OzytXzSjVGG&(jF;p1#B$An9xwH
z#K2vv4I+}xFYF<WQg}T&3pxk%gPQ&;h_TV25Vz~GY=CMQ?C#@g!S7=4B9?9c>|PwD
zhqF(6sfN-T8|US{C8d};1V<~{M@_SJb7k{ts?I4K^!N`B5|dg=x6HG0P7;|<oG~IP
zxa(}3lHWW)t0K-Duf}Px>-s8fGl>7_%uGqxezMFoWSu_k1o1MhRu%eVj<1YONK_vs
zeRz5;f-fc~)OqS2%=F~XB9y~(=V8lq#73~7@s^Hidb-5?O+Z7)QJVO#BfMvT7W_5?
ziVT>E^?0lk$%^=Qx2A_6vPHhol~QU-9*DF_u;pIxpkd#f4pYv{8ttmySzIH*9J*7_
ziX^X>f8se;s3;^Gf-6i*Hz+BnXpVjaxaY{3F@m16ku}b8RUZtWRfG^`IkHa%RqdI*
z{H0b<nz?)g?lM?YL6Q>qUU#kjwyG7|QV!aa!3|!312x`w$sdi0Py7T1;fKuR^GYD6
zoy3}CS!>oRm2PzpL-Z@hxlj0Y>!+guonyd>+Le?3gK^~)&dZ$`rGO+kN5JoZlaE!^
z8&_-m0WJw`|K!|&*$j6d7A*CvQmolN)zS!zF(qJLwAnhQ(O82XTV1mC*#Gph&|%NZ
ziFlf)T|BZq<d)aom{qXzg_&O5j1Gtvr(yrjyP2n*A~yu|pI3YJco05_J3vPMRn7&f
z)Xt3TyF+SI#eU`uW&=}h;B}9aO+oa$>oAP5eA*eos=m+}t0=PT^0XDQK38IGrsQb&
z$Zcmt-y{&n6dsbv^E|bv=CEP?E@%}#!mv}}MU%ianEezJWzV>??qMcDOE}Rl4d(P=
z^>0BrWj8Sj5EmexV@4-yTE3dUwmxwqE3=rLGyAZh?Gj|~<z(N;v$H;YGjOvF+g!I6
zAaolJS-{whib|9p?b&Sil%$g-yErZTmx|{eNGJPA0ZJ(?J)EDAB!_NLsnIJSOZ(J$
zf@u6}0a^I+83}ods1KI1*ID{R5tyNs&x!=oTJAPmDd*tT<3RXvUIvi`V_}$XwZcAn
zGgxfclgi<{yR*d0puaX~^|YZ-y6npW)_KgzS9bBbA5n^bl6US_GiA)9c~P1le|o}~
zucYSS0DoG!X*%L)Mv#sbub8wXoSqn;Re`0xM)UAI{<v=^A%JRyZU;~~L<0Z82}SZ)
zZlN*}VB?2J*~^GaAlm<T5zLc<jr~qKT7c2?r3=d<dYCpb)`w^uK>TfJWQ4k3IV$q{
zHA-#wkSMnW=#fa@(%;hiuT}W*u8MTab;U_Gt`ts}dK9MBw)2H#cIE~^bN?su78Owb
z#(4I+tXO?N@~gb+`QYT`cguycuPz_zF#bvZ6``g+s<gIDWmuv8JM>!6#WFC|p%IJt
z$~ggc&}7;!-Jzm4UC>+^G$Aogi&I{To4~aGJ8&ZOejI1;aV~opnf&aD<Kp1_XimL+
z-kFX%Led=ikUxUn6qEep7@t<{(P5e~B_py<ciX*9(A7v%n}}X8h66n@>G=)>6bfFB
zx*RArHZ^%`Yue_L*}Fy}H`@Li@zC~bCplg()}>rJ5erS+AXt3auBytax$A`drjOXV
zvc7k0$%CAa=*ygG=-f*V^YUdrd}JPd1N}szY#Dr2FyNY|#`exY=rMOPPBaI$l)1Fz
z5Q;?HdVIw;O*UADlZqR6`uK~w`D{(HtFULKV>i`^C2DxqA(2rlAgEc}dcSsX)Mv}C
z;DlUqQ3Z2x4f9rxb#I|#%b%fe1`O;1XTScpXfH!ey3oo8@ZkTG9{`tcitu--V#vQ=
z-MC?!KjZW>hb=m8e$^^Kg84)LrRKPh;q%xYl;P{B%n2Q3?h$Upr^FNW>Hef}&+}*b
z4C5jdkCo~q>+GVc%;f6~wi6V>*9XQM#&-c+frNit(&dUmgS*eNSeCIHUn_B*p@Osz
zX0RMR)NnK4MJCy+8SQ>i4dVm9x;|7I^o^uhJ|?tJ6l0;N@SMfu`X@T*;b$L&T(3r|
zMb|HVsyVY!yU;CmZ{8@279=brTYu@!pG-6UFAYnrKvZrI;iHs5rkp$>z{%^mox*Ar
zSDSeqYt2YXFHZP#3|`4+zU<pDN5Y?m3eR0{XuGPMjf9&gHl2DWN1L`SQ@&kY1k;(3
zssEL8x43*;qvFryzHyd?Ag3&=*XEB4+YH;_RqQ7My0JiAVd7sI$I5odTSG``2BF)Y
zHY5J$G9^7?gx!|t`AagTPyn+|zIgb=bQ}FuU;2`(W;7xKd=9u6E<$mTMX!yf?kkLD
z-AX+GPjNOqwdYfx&~+NMN10fL0J(1t7;=2+30mxva(k3I_&!C$H*;*v@<u%Ozh<BG
z-R%O+@?1;WrL{p%k!u+Il(XAwN2db;6(dnmt?E4^H?j>d5yJ!8F#1334_)^?_ZLGm
z+su|`=IQqrtdrtCi0F(7%C%Iv|2O*nd;2<nJHG&pJYJhGGR`uF#`i156Ag_a3!P$2
zg?zY?{Zi;JZ~H7?+>N2)W$~Xe{k2_Urv+jf(t&5x{+BgE$KHMvR2?Q{|7-!iQ^@9!
z+FCdy;Nq~A;WZ(N9g(vdc3OxPf82K+Orq(2i|8k@31xcv$KcDs`#{$5Qx8qLuQsf_
z=4M%b`>}C9nH$sMA*F4VK`muv=_lr+<ZL4hb=g{V*$b9p7-?@MWjL-H%zPj<&mrcn
zh>BhbR^DfI_*f%`XXJPjvy~kO5`);ASAyM8B_4D1ppo4ReuFk$U@X39!koXcdhg_X
zyOMgld6weWWe!mu-%34i0W1GmhT_c*S9-u1kH@!{@$onyi!eEiEID-McSG+}@A4kx
zI8Tx*e3>8yv8#2yfJl=pu2rK~x2UoZs5H>#@Y?mw^$QWXyWi5d!EDlxtEHwR!^L%e
z5{$Bt#ULD-EvENSzW0DD`?ts^t|UBnm4MnkY?6nVk#sl86#n$Z*j!;C&VGOZ$*umr
zt81sCz{-YoT98-1A@@)EE7L)AFP?^?jrh-kn1Wg|Tsdxques7(+FK*bX$G2Kvbbih
zV-lV)_GJVk!>+(~4aw5VP0TD@^$I*pG;S<>$|515@wlGJ-F1f|C(5P}iQq`<NyDeZ
zg+dqx1+f28md=3iXI@1Vkt`c~gm;hbT(g$>k}STh_xdqCJ))NI0J-PO9CP&Er{ren
z{eja*E05pF19S{ag0>se{rbH-!?JrVO7zdf(4p@WN)9pL@)sc%b719Wv-kau`0SUV
ziw7LFExLfcxg%_6hNV-Nqq1BWK-LRU{}L9m6nyXE^(xYUar9TJ^4#!1_=6kg;ak!E
znk<mV(~p$HNPmA)0qRt<4@UkgJp_cWi+Q6@*Vn7;38HIVS#NI)<I=n0PxS|G-q_{~
ze84UJOedyjEPscbI|2Jp{0nee^f4Io<C-<YM&^`T8wX>4axC64Sd?x$K)AF3q1bb7
z{@iAANL=HI&GG<3Lyt<WQKqH<11)3NE)kY<Le|u0sb4o^HF$^@SKdgzPW_u+LT3yh
zF80&J;ra~D5P2X80$MlsYyNnH<Hu0M160+#etw-aH-x{9@YA4}GN)uPQ=V4Nv!GoP
zhdT#SBKif8Jw3yCeq9-h+(9s$<^Y}>Wek4qTE-{RB+r*Wy{~olxX)5?Qw|wFY~H-F
z5IsFq7)D;u9X-j05QCobZv(&QGL9v5C8(uy3e>|BwtiY;K|xPDBI!|y1p;qGFURF6
zx6_VbEj{ggRwfzF5F~UJ0L1v;ym-QmTIn^=_b93Pji<>XI+h+wLBb#-<EN#rP>pzX
z!U$uH0tv;~{=<5iu|WGKDOakJ4>Dz9319S(SjZ?(j2LTi_i|$86Mi?p{=DiIGkfc+
zsCMQ=JJ@LFu9(|u@WpWonuX?Un09^6$4A2tgjBQH4G>>ki%(bNGlmGxJ6jHUr6JJZ
z;#$pZzb(_p%^jgMpLL-Yr{N$1k^XFHi!cv^k+~Si^cAAZWv;C!q=IC?VMtcS94=6P
zJiUIe!Gu}gzcjq}b5~-N?ejSv6ZXH556@lZjV;3|#yOtm7W@>_|M+)t(3M8`k5Zjg
za4c+&_Qe!;rWSz&%Mu$_m}ToRufmh*<2ZeBqmEwxxncjyMLWfX<{}gtsG;B{szi9P
z_q`hW#1?05lK<$biCk?d`fGc5Hup3L7>d3BVdK|dXOf~*_z`=zUQTGLs$`TN2Fn>r
z8`$&C$Bz0PJgy{6_fd;CI*GEv)_^}<@<YUUSCha{b5O6#$hU+6KF$+(_qvaA8*=~C
z^sZU{C7(!!Lin$ynfTgIwQehSHXfC;!)aJ1Ng5M6fvFpRH!3dL9D6a}9tAiW_++e}
zcPztjq^*?C7PZdczTD;<Sh<AczZ~IqhXhT1=n$^-Ql1;c1FzRouwTdfw4dn$`L!-i
zTdiRJ>+5%ZU3D|QJG<<QE$mjv0(H}qlPknqYjfjeAA#e~5c-!8q52!#sVU>f9m!#M
zmm$(6kqMQ-_tg1G?nL$TyU=g96c0dS`{zx5YAg+$1?+=|V#`A|2%<5p0|ZrN^F9eS
z6X5i=^jf-LKK!`VO+bWuX6Sy98z`NlP8YR4dxyYoEukDz>`K|x5#-H{BI2d>lgqwS
zePD@^dm>LuQ~(z5mYQ(&<(FJh@tX*0=SxNAas%aW^8q_x+1)GMt*hPY&)y4nh_&_N
z@Tl#aIqIkU{QQZ;x!Nr-@XhWn=3oG12aPM~;*KUgVc^if(_D_!v>kh3_lgVWZhGyi
zUE|^~J_Eo(n4#=0MISY1uvR=-OHJvqi&k=RhtHNbw0THyAsvnw2tZWz_5^YIu8JJ3
zAuG^!u6X>>(O!0;p()P3J-4M6zwG`IqGhAjjXywfdoDqN1d!1orxOjw4M9xDz{{K6
zCR?L0+QYe1AVjpk=f{ra`Dtv5fBD6`ahQZSn3tm}q+S~T@i&~vOI9hmQ>l(_85BtK
zhMz7<_d_S{P9?^HP5%aBxwz9pI4MT#p$=c#QHYp!pRY%zn?@1Qm`|kD8MO~1>4l@2
z+XgSF*L%&@h2Nf|Erx<veLuF{m=MdqG6`N_YPJCA%Z?Eq(_hKHoeau^W3<z9+yAO)
z`MDT5qeu}bogGMDpf=^#d(mH5ay2l|ZI;=IjBD3=p#R?m{Qo83U!UQ`vdc5CTYXVU
zA$xr({82&umRdfnUN!UNzrtC|LT>EU7Ll~aWtg&D6xN0+-1OlYOU5nEzkns$cJ6pQ
zTm8@1B0m;dgy6^7V(`a1^GwdNZXVsJH)cfE@4kr&EUr*i&TL!fh5lRb#Io<y`iNAv
z*N~-SfZ^io`69He)bX71D8DV8wBJxV#F&f@1|ec=0%plIvOVmmzULPWzh4y`iOdr9
znGO@4xytcppPR-kt4j0z4QkMv%6zBYXFbeW!V~Z5Vw_B!R=K-b15rB~OU3~{u^!|=
z$GniP>3o@^UExL2I7#r!A?DiG6-uNvM!sVS$<Ji!tplybk<){$2}7)Jbt#qGly1G2
z{kQpD@A@dHm9iM=uUq_XTCh}nd{V@ZT&2#IbhX^#l-*3->kUUG20p22)JUy8w1S#S
z>sytI<5CWV?K9bGYnF^vO|i*|*aO0a6n;3oIJ8yhW*8x>D2&CvzOT)L-LKt3nDc=t
zM!!eFN^y_V>T^e<%UkD1TY5VVjw}*sPTT~7lNmG~+wGh77scOp<r4wV{7bj&W+Z=b
zb~+eS`^LP{2f1L*w;WuMpI_e{6A2m`4nqFDmaT>m&lSZ=(=XaYI=b2oeD-vIwkeT0
z`k{h?Lbg6c9AGD|rlg=yKD0!TFEgmyBm73Gkz0Uw5dIw;Sh5_HxGVze%$O8TH#dCO
zNv_!oXx>@K>SU)2F_V>IiBx?YywRhF_Q^QOoY15UAiaiK&tMl08<iv59<!BW1{LFa
z<gL_wyN>F5+kWHGTuwwa5n)_1PuK>&=tn^(D5mz^q((Y9xQ5Gc#akVEKwx1c-|pDq
z`-4>g!HUPh>i}MfAJ2jgRtzNm1wNpiZO#~-VqGvC1xi<}cB)@p8Gp$;q?5_u^XoH2
zdqE>y*QZ57T8E33<h82JpOXp<HBf40pN%T056p3@rLGycI8+JQqD_O{w?qfw*_^q%
zA>C_v>gdwFwVww5iVdBeZf9fg^%o;)c?mjABax4X<noO|Hr?G(vggw=@Ye|GL_T8e
zrxOIywz4t12&AR-7({V(h5xw-DMNY%*M0(y|IdyNfa2DZ<lP=jcg#3ZOWYR{e|H1b
z0bs2k=qJ*RlK0NoR=geBpCWvVMlxK0SHtnb7yeWUc)AS>9ykx`jMCe*&Kecdg~}3j
z279gbD0t@GJwIC)``;D1(f>@(e4ek^M7mq(F`z681!~oZclcp!7$P%@Na3*OKiF*B
zSDKlZR_y%VtPK_WZ|uoG5ZvKNyZ`$^&I`n_dU$>?dP0!vn$2xS^<DJ-d-{HM<_)Sq
zb_2XXcQ9k-6H!;U_;H*4S5lzv6Y+M4KGCdDdkoI32ygkYArHlHCfM-TPs8`lBP5Ei
z=HG@1d~mpX^m(`*-4Yr0O2Og)6w>(a+|wF)&a&9cZVc+vI*odi5z1Ufnck_VjSRjO
z)PC7`GLRCL`!PKCl?wIlG@jVrS2XQw?CBBgKn%LT@RZ^ddy2>9Ncsd#f&|TzE(s^A
z7j~M723m<&1xxfTW}3^c*#9P;%qQ{ME?Gj45&RUsHljZVS+Z67Fn9kvu5!hVUG|J0
zw#3%@=gHe6^ObI@#m~J?i2`qh_Rgb*M7XEFiFxbSZ4U5R#9yQVf<lg0bbFHtL(M?)
zk1aJ%_H@4QO?@-KF)>zIAAW~j7u64k2=V3|3VIak*?7|;?fB~gNhSYAR>?%*#VGDx
z1!0hraYK<W5j|hs3NBjfBDQkB7tZ~D_rbsiqa^9)&OQy`=1+V|AwyA#ZD(P&dvDcA
z=?kgvO)x@p4$LEJK45V9?*|$nt=X+$J3so9F(UU%zLAN?Bs_+E)I8rpOp#UfyEFLJ
zYI*bkVgbpM52q|Kl~+^>P(Uq{T;J#iGDg_Zq>F@!d`+k1m=(@sHLCgc8-2{e@4>k5
zk?b?rkF9*Cky3$=vVvH{T3?`%D~@_3PHllargDD)43!>42L(?4jf+@}W1iT}ctswY
za<5<hGd3grw#M}+L!X6911`_?)NFcY)nEjc!nEFQdT>%=`!P%%$b)ITduCQmdbzU9
zot2<b7n}!7+WaUWu<$#iL9fSoD{{jFdK)Kfwp6<(lHg(PvCFc!9!QS~A)1qoF*a8H
z^-Cy#MtB=gL$}Z_Q%^|gi|7{kwq$>v@pxgNV%V|%Z3TI<Bw=|--yFlWgjVDI+@PNq
z$ACcQA!s|6{Krx^>8ef+o?#CB`Rx=Hz%@*=)AV;uP%S;^_2p(k(4EIK<GB^v>rFEG
z1w_ZH`0p)0t@ZK(dbc}Z3piWmZz6j*5KIDRomj}*8~7nFM|ZhNe)QkY_^}T<z%`uU
za&yT1c!1sns2~269s2ZtGjGgw`t2+8atDUg*swrOnvb`-BqBQ5Y%0+oyr&DI6+leJ
zxGF@Jo6g@$6KIb#K;j-HIf2~7+qAFvx(b)qR@GnyDqysu{?&dT=FC>K#X;s@qK&JW
zqY3u1pfqYK?Mk#R)@RRbn0xz`M8mpL<kiyWDH`l}iPX}aRFnn#+AV8>u72bj#`Nc@
z|I<Bd&Q~Ru>$V1lec8YtK0X)iNQyJdi0629P6MRNL<$Sa5I{XLN4na2AYXeRue|#=
zFS!(N@xNS4tS%m*6G#n-j$ScPG<(Z(4Hj^zFmBuGks?ppw^+9Z`Q`##%f3Te;3<In
zfIqW$wQ1j4&N;>z?e>VZ=7|XBvK43bemcdDC8oE&b?Su09`1hhyWzCj2h0!Ff2OO7
zFm`!%1a0Hi&aKez=&ZC@LZzawJ_zgYHL95ZIxyDdu@_OAmM7!<5c4bMaDhsDSW<Q|
z-$D2_6Z6RiS`oI5&o_?oA**nGS>->QW=yq-?@o=$<Dp;ZT|@Y2FPNLIgSzod*~)wH
zIC|)5=*WmCO;x&kjUAkSd3TfYwL;OdVb7*nR0Yqh3S7uNB;;UE-d!du=LLt+Zz@Wh
zs6=Y1Tf1GcZAsa^Q;A9AL@`p!-dr$o%_bS!ksgf#%E17P0l3s$;|*?rS=B)W-53!j
z^;g8`xv5?A>1Rj5Ox}R1aP(6<ES?UPf)44}z=VbKKS`dAmOlDlqsahsm-@w_Ho+SK
zlboI93BevK70Y=M^@~>ftZ5GDwe?Fnb|G{Cc1I%<zA|k=(f&h;%s03d6lyv1c@?5K
z`Cp6um${Hk`nqC=#<~_cCaYiPAF(@VvsY{fWMcxdCU|*09&yFBL4Ce<OGvuK2YjiG
zR}^dyULpS;0$$ab#Tj1&fKIYSEEnDUVz~H%P4{tXz9E@S7kp#jnaluF_zQ#QrMJu$
z^~iyN^zmCy+TUl}ze83)!NL8zn_at`E2n3UUsW|D0TQ%wU`)SNFV$|sdy|fPlW<x3
zmdB@n0M~0wdae6lF!{s?bwT2-|KjeZEWI4-f0*g*A!g_DbD6cxedN}r{4)~|7yn-R
zRV>KPrfcxM^qG^GDdga^=PFflG5VZsKs$Cj>w~$7hw!I-e&qB`Bm5VkUGb@PoE!b9
zp-~jv7xAuDt}}mSKOV9a6#XcTX3-g*qiX7p@p$9y?(5z=5_ISGf7L2^w`IlGz}4@<
zIKqoRWnNdl3o5W7XA*JvROeDUJCs(TquRm5`G!d+qlvvk0o?4ANd1R%AWb(Bv+^P8
z98dhx@C3r(Q9`WZuG~c(1eQ8<-ZZlhEm=(N&l3}ZBT%=Fc5ecxp6%2nSm$=#Q7PK0
z4`&@s+kog;9R+3MkF$!z@`}V_n!YrF8HVv6?{(AjbJ`yUW<Gn%qt*!F0~7S$_NQ?`
zfeSKa^J9f24pi8X`vJ*71YKZO5&I5IduLZ?CvkmgtF+qMg~&CzeOFwX>ZVdn`VTFk
z)xyqbS=wt$p*s9=nxJA;=jo!PZ-ClX=nUzNN{zX3ZGdJE^RGXGjTO+&hSux98&h`!
z<U2bfS9_4DS>3~is%}Y}>FH8)SusPJ@)A?M4fHNQ(>K;%`N*1@Y28NrVu<<<fw3Sz
z;xpm~Xn?CGpQzgmwBSX4>5aRQ`X5z??1i#Mh&J0rA7y?1E}yGjjO|QJy@*hU{hc$j
z#ReVqo7A#x+4+h5p$NHmY|Ym2-#K0Bj}9J*agOY>K_z>+>Z8+>Qy;Eoe<r~qWbWOH
zNfr_yhp`Y69JzjyLyj#W?Thjp!RuyldG6*`P~SaU+xX*AIf)LLU)=2jiIsp?ys%Xe
z={zX6zfh|4UBb0u$&>qAQ$%nCmqK@{&=XOOwE7u*S`i!}ja}oP;@<8&AA%MaJdO<r
z+#HeETN{y|X!;4`n)vvbneqsV+J^9J#lW~a4>^&S#<gE46UJl)bdGG!@c!8I9;kw;
zo`ZTN4BxxCE`1xgS9XbO7?!aU(+gmi)w8UWkc}HR)BCAmmr3U`5?A9S5FX7r=MD>x
z*!Lxx0N4VWH0;dm=PaAu!TCO!ANKGTJ~JIr<pcr;676Dh8)I{SOu3Pmzon&c9|cms
zvKV<D>yluA!LvB;MSiaYATq9dw%Z-018B`09g%nx^fE_o3URvympxry?$m0zAp@>z
z-Sa^ephrWNogb9}0j30pH>SNi?*hc{93B)y@@W*8w?1z4xkivfwQPIh=q+yj>mzXd
zd%Vz>swK(nWIS}}63f?B@2$B85{WxsX0eZ5Rf+{8T~&}Z`+xVMq4e9*_o-{}R3Z@l
zd*CAh_}v3Ua0AYa1inR@Q=Z+-ukxSTzKHCCaXk@$65$R&TCH2wtuJkgG>73^n*kh=
zz+=1Kd^44afjJ78*i#LWdJQ7hdRSFCvsUgyePh8q(XO@bJQ_NgIR==lOKGTQ@g3Pj
z{T2HCb1f+OwGh}7EIGJ=H+UG%8xMGg-+gGpvBWq+?nl7753tKa9{mOym%y}E=b(=-
zM*4VUvh*h#`=LrlUkslnZi3L;ABh^IwYDwy2#4n`&hAVD0%#I?R#8dzHsRYx$Iyp{
zxQ)OBHJR~>MCxV@n~-#>Z;G7VmbZLKQGPuk-XToX1dlJnpUCGgVEkWiU<FbliFd%!
z%V~Em1YnJ-sp1VEX3nOb{ZhhR0`a)51pSNpZ(T*J|5qh9`roHZT=3AI_wJ#gs^o==
zR>R6EgWaLTRz+`_E%+-#_kBMbGz*QLq!6MW^XmT_hr~aZThky(GzAC#>6PnJwD+}N
z+Sgg0nvG2Cw2{1D%Dvec%g%(U-vy#Q!!chB*iULo5{(ftXKEmu8X9@V2Y_N5Mad=Z
zXeI1`<b0s-C|1<*UCUhmm?seYVeJSZJ#vgS`wP@?pvV0T>xUftpg8}oFsjHIr?UfW
z@t`w`*2eSC;19RZeOG7BASuLQG{*E@w0;^&6{YeO3FmygQKbQWS2q;4E?n-awzQIx
z5No=$a+E}P3X2Nnc@B``)m5b~%)BN3SB6z;4%!R$IQlOBvlsJO^N#_+Pr()^(_~Ge
zN77R({<P0;Z~DpkLXWTR1t`XNOIEFN@i#SOc^rBtC)4Doyq$b#;uWzjFr~8J@V_70
zbEL_%!`-J2?<x0=6v9;am)BItC;_BcGbo?n3nePFVOPd$4yJz%($bU4TMbfzr`6{6
z^NjV8lVNt^Y5wY&(TPyI&f~le3<mzb-_czI-kb%gAjndiK&HsY6Z-TP;6cnluiT}u
z?aREpE(t~4!RO_(Mk0r8%2wLhgLbt^4khUy`!BFw+<NuwCUy;HRZG#0%{u+_p9!e;
z)~vXg<b*wWY=wH!`TPF7s+yAJp^#)9Eh@7rCxe=1_ap$Ij?#XzXM!UTBeoY8{t6*v
z4TId_HhSRA<Vt27M`~VJJMjdS-QpjmoVPS}5?N^<bP-^OJ(Y@4_Y({cJmyGyA1!&_
ziz4hNvUtBfUZ<7B0LNDXb&fl~M#}l>^0o)+$Lnm<AFw51e{6mKFxV&kykxQsB<ea9
zy~u~pta=F^ngU0=5(n<-6K<B)ZZncRI9w&dvl$Hu^Jhomf(q)vhH-LC&BcjXAlaN5
zw@D=7S-JVgaRqaHjECE&;LAxPt&Zfy+db-5|6t*8jp_}DUG>aDlim=&QUtDxSZ*y1
zr6Je3es!OLEm9nOcI&wUqmmdO8BL^RnB5rQ>P-x=5zD2|efrg&zHWckGNW4JpFeH#
zV7L(<<Mbzyv_GH?;n8aZeOzfeE53CQmeXVoVYdE@t~yYu%Cq*EzZ-IMvFio?QCH^@
z^lg4)y7Bn4t*>x-2v2bA^!t#Tu@wn_`}5Q5ElY}azW&&o3CHX7K;8)PDPh0F<6I$7
z-PAC>FbimMuH+#!a8>`@tq*nGRSnTcUrAF*0S*dM#VT^dD866Wj#8UO+^2Mq+0qrK
z5<+GXlXIQ^IKgzX7d4VIJMYl2I};x;|0{hR8_2s&^S}08bhV1sP%<6HJPvEF4_kD_
zdY<l`%f>SQsXkP+Qpba&R>bT0jYq{W-<PEX(^t^Yr#j~4wo}42u`jv3Rq2sUP6H(x
z^&67;$M9{LdqmsBvuC5xj$aCF6kc)`Lqso@>p+_S!YZbVR$qybTx)$bBsELe2$}M4
zVZM0D=+M{zVLmg{CX{yc82t>vtkn1j8Oc#-!Qd$w3Mw1Qj^7iY9sYFAI*wT@r@J^G
zUYFZj;}MWJu|}DNAImP#AiziZ0x>NRyn@WEdrAbPjY((_&SWWE##|5*ntbz&N(Rk~
z{50=!Q|mNuGYJ7YVuL<>&eAu0aK?5q*B(uU9>5!p+_9$15`vyPZ0he=?fc=@${*J4
z^CvEnzR$pTlav&>r@NU-#?~CJxg)0x`5A8N*Mr;s^W)2N4ZA3MPCv=#CLe)Tw4T^+
z2*PM87oJr!hk1i{Jb23*c=7Li3(KUjk5;<jTIv*YwURG&+ddZGc8_5Ltg0|+KYMJo
zhRBRdlK%}Ejcxf84Ibq*@0TO_Zh&cjpF92oC<bbXz2BLx_3Qm1iUGC)BG0s?b?x->
z#oHV-Tt6`M@CQrDmfVA#Uuv}g#$jrSyEi)fqFc{JY5M*7Pl^)eU-3$RvK$srI>>mx
z$rW7#SZ;@5l;4<b4F52mvDCn7-WB7QcXeq5-xq;D1sT10Z9u(=kjMWvAf#X}>eK0?
zhXhyr!g~gu!_k^S`@~oT!b99kDMBHGfvQJz%X}GezmEG&Y|f+u*_->wJS-~XD#zNd
z^bJi-PpyONYu=5$16l-j?prRrkylgO?1vu$p?u-D_cDPA#lD=-wxfFpekB$T#c8ef
zgTH8R1MB2=En~N@zoq&msF>n3ah!5umF4W{-G<T0_l<?WuO6?N4_VIwHZt$3gmm8G
zL4Wi%-L|G-8SuMtn$Ll4S%*x%gST}q(%>+~A+b@|fC)6AMbM7F-3q9Bo)!uRqy{04
zw|Gif+}fh=9~o87(^M~Uf(8ETW%~zQnzF_7VO6QONqG%-ho|)EN6X$ZK&QZr{J;O0
zB%$8^Ih)oN7HbwZ78V$P-;VY^L#zHM%S^n3zVXc)=8xfp!SDt3AjYdN!{MKAih9Go
zjc!>zl~n)R`fl|?wqPFjMFb-3;|1lqFkX0VBZxnmP*6~;o`qdNm5<i(o4K92s-w2K
zRf4&(U7)d@=1;mTOoj`Yq|sd^FFES(_ml;}IM^4wB;RvnUxkmNKV#CNum6wNbHIPR
zQVbD4mU}6W&FC${$wythD8G%#Fy^#jujY;gVj041>|NN=8fHHS+EY2PFka1@d%Bab
zzhWS7BiZdF@zneJ^ELEz?jwThTt-#qLStfAqv*{{`OW2i<;=m2aEH)`N<TtZ?WIa{
zm3snx*QGboO7}*Ra{6b}q@Q%-S=T5R<;3~hfyS+?$E?sMaWVZX?wNEG&0U)51+yzH
z{KMHIa)0t;JhrKUMg|R^=H^dkpfEGJc0delNmQ2L5_;b$3HQnm0f9m78y{gMkF@P;
z%bFXX`Q45U4)Q>$yDMb9)Q%yqqGnmnjQOIalFg-ZZP+h_v73xl8h{q?Y(nRPELGRZ
zrWEhr2Uuqe(f|I=&x09^MTf#_d^NT+n<8<8<jEpF*|!=0J;XDboKu2g{F}lR`n5@#
z%l_BGA0xk{v;Bvpt7Nl*cf2mxUOU@$B0(&b#)mY#3d>Tf>R-;^zn`7)C9T5-rK_a+
ze7@FbrAg-Gx`~Q=H-212_hXLS8GSF`A<8d8GX2>q3+gzVh7}Q|>o>YpMw>dVr&Ywl
zl~}|w$90z(I)404<>K#~*;yj7LW0Rn5tUB0L=*7X#ui1mLzuIiit-J^+lTK7SYGl0
zJqH={;xSEBs}=1-$@0)&jr!JACj9F5*{WyXewim7NTw0?j|}zoHc$12m8GjUe)@$=
zvk~Yx)c?t}`?sle=qE89!oR7FH|g%bh1qu@vtst@rcQQ>&xL22>X-ESz7AQ?9?oZV
z@{%<$7(zCwOpLO<RjXWn_`3PHOi6T}_LkoP>@lYIYXk&_wjIOVddt1-$iu5i*!Evs
zxHP)!>)PYDHwYHSNM<HL#E99vwMY)DKhe`Qd4H0A)4#!6Z1T7ApmY3Vao=uQE{k+l
z$%~GGR-KWl9=|Gv9!9GnSG|KiB7t`6>MXoJKUTOYdvlY;WC&j16;)_BBaTSBtmtJw
zW;U%xH?sVkVODVZm3OJzVCMW-C|f3$l{xM;{KfJ3M;2{6_#3Hcc%uVVCVv+(hZR`U
z4Hw+ul`g9(L$XsGAZaRa#WFp{UFhc;Kkihede<sj%FJFPHF8|;^ZCh*QMUa&cTb4S
zp?Dc{ELv6;!g8=TYGB}%Wj+B;7>rHn&m^e!)fG_8*lXy^&7w9`BT33hplzh`HY>ep
zdRt7v`eKsbaomZ*``2E^3!~Pu)(XM*u_Ys<<)R+HZVM57k3V1qo^Kp5HEKA&QkJC>
zJ3ZN~zqo785H5Alzo7P*6tg5cBY53*&{fYs_39nQm^+;v8&9XvMOF#Z%KEaUi+xX0
z+M8d>e!{i7qlV57wEb=Pdlt>PCc*hLj%2+Ovz^Amv<IPGo>FrQl~$1E{z+%4A#Uvh
z?9yD5sW^Gr+PQFfn-%{m+m=F(_WEls-O6({!(ayu8|O?j*_ip-YAL(QV&T|7YOau}
zfflL3c`3R)PM+`iFy_Ou4o#Bs5|=Dmcxgyt6#exnBm9m`3K)CM4gvPK=U+#!r(8#@
z8+-;W9D-)1LGkOg(@4plTb{eftmOyTif;DNG~MdP`Y*cGo%Lh7&aNIL3{6TJJl#Vc
zaBD>fKR^8z#dmgEO1FBvJ|Z357FBzCno8F>++z@QOGOAjJ2fW+9IhWq2ScLVPEX_M
zR(IF4rGp!zZh~&f2<cBx<q2U2>r2wX9Z~Sp(_FgF5!6L>;imiNEM-8eaTvi<?Fr<n
z%7OL2*=<1`;u&r~d__T6C}`--E}vEE1vv^fLqU=H<A6UX$Tsz&!)W`#w%QZv`AGtV
zS(O9*j%w<Avs-JIdNEfwjF3TT^P%806g+@}?NcwrP%t&Bmn^CW392bme;kg2TTn0t
z$`AtzO4T3#kA)iw_Cvu^C~efRNY_si0BfK3@oszfEmQ#mE`#3*|J}ObIio&tq#L&A
zM22Zv7}aE}-)C-$+6+M)Q*c}r(xln;nAJ{5{7penD%*smBvwM4$HDJd|2R69Be?@U
zPIiNX)hD~9fr^vzX~B9ZA<ezVpeD=vpI}4@0vyS~?^?Jhq5PcIM%4_ZG5X(;ggll}
z0|QE72b0!jsQkY+1ymainRgOv9C{*mfSyK8Rmg9U(xh^lH1Fx)cUH@s!S7|0iQE!Q
z-%wru8^t(`pkZqoC2W-9J5y0)t8woJzi)=gHf&WCpcL8uBf<WkVBTY(mgV|JvTzzv
zkm!61MhSnNN#z&Pta}U?=<-<R021%DE0Qn*!D8mUu0t0TLO8Q^!6fv%fUx%Fd5C|A
z*`%_aHzuwBV@Ux<Ew%jat79!Z$<sh?ly-7K_-Gf*8+q~PFb1V=A0{ivOnSL~WsmA7
zLw=b|S^hl4<_qcNnF}TM-QbsLRQsBdJiWOb^Ip#(HEPUFwJ-uO5)(D(QxU(WO@BIO
zh)ow>m@F8XgR&>bx5pr4PKM$~{@?ij`Qe*E1kk3d>YW@I_(@|&6pZw<lpg$6iz^LA
ziijXg+4T_67f|}lvn+m1|3@E`U69(Oyd4;IJ}_2aqYSy>NS@w_p?uyiHnRopK7^5>
z=)zIX`v%9pJH1=_j}C@BR_2+EJQn3?h-J>{9U*3j|06q!`lj-K{0IJHr;GX$Pi+N>
zqvGs)%osp6lrNyfDDwbp$-!>`+|7tN5D)4rLP=0QfD&CMqd`egt#Y`M6Vu3`|IB0k
zXE`6`rbk+N6kU6HddgGs|AavyJ@hY<?UI=q$@mRLK}$66fA0$9WMX-f+P?Z~PahF6
z`L2-$GYF24Nt$Aw!WJ85rKogd1-F88R7B%<hY`Pf+ZV>6q=;P*#$cuJvHoV&=VWLU
z!R~Q=jQHW@D(H3&?U3q#xvs9h(hphb4b0M4nSr|6$@IMW`4{^2N}9`{7{qlbF<}4N
zsch4W`cP?L*LRkCz+U(ebHM(kQ_ZFqmQ(Yl7rPTdRqOjF-dX8Sk5rHK)mk)99Y%Z-
zj~>;Cao}oCV4o3)@6gs>4sOlk9(-c2FDXk{M<yw|X%x5jbRj!vd~~a20XewUvf=S~
zpts`jd7!t0?A*%zF+RDK8xCAK%kMQt9rg$IoPlz#$~NUPoBo{fS^x5WD6jh@f!wZc
zp?#{XZlQU?opl_rr#h4wu$Mff9oWU0?HC8j4h6!_K(S4;XZhX6o41>Er=gqSL0!rT
z6OGkA34|wT^pf{6L0tpmfy-*MQimRdxBvE0N^JqTbq9kJnV5<lrxWexQb5%!bu*5`
z#X8aCb_^%o#<J8(laZ`&!|Y7t&Xin6)7O1B&c}r6U+N&IeLpJ~>${~75L&08X_)-1
zpWX52J1JEto|AoLhtAAsMMu4_$f4g4px^9C88oW$M)=BH2R^nqaJdvcQCNMgbCZnl
z(NNa)6ZEk+0`&9Mh&@u5bS8@=p#zkM?>NDG9Q&JB3<#s~$8H_1?ZD`Nq^9(44_Zmc
z-(f$Y9u?(YX76S)KdySf_(UIHoYT=vM3%u+t}9b!<}b4c18FXZr`_I!&^*~qxs5wA
zhUCPh>1>)hGl-1$Me1w@JF_(9rO!)T$LCl>QzRD4M*ohF)<ZKlp9u|w+9h0XXmj7c
zZy00J4f47i6jC<1SoLk_EI%SVFmI5nAQYf;nESFqesy9Y9XKMe$5h+xYOpz@aktjm
z@lT=hE}-$|4dm15G4}LLO(M%#ZK5f0O`@b~tLy<A@=Ci4rYZbrSthGG`<nd>d{rvG
zdY3$50y+<n`iAa?!Ex#<j=AdoGPNaigGg$iU{K;k`KX8YFwH=QL}Z3Uf{0g2mP7&x
z;e*S8W%INyFwtvy<TBN3xr4_EqOqd9ipO@B1(e$lPekevj(9!17|ar?JdobY;!c}j
z%HJk>Z77?KKC(M_rahsvpYN1Fc&DIoTo0nNZ3NX{TD5iGTenhb%8Ie;uDw{&an&sB
z8moNWDiMz^R<66Y^YV;CGt=6Cm}Yl3v-np)?W!AJfjbnE^apazWR%^1%&HgU%Ey|&
zG{WH?6fnG;W)dtLvrd+8DeZce`M#~so^YFN;vZd$e_6sh*~FsJaze5>cZ<PCnil4v
z-RlqMZID>>76aY2YbxAjbG6W=!(QgJCGCKn(^e(A!eyrLkFLrii^8tSLjTfCY>4Pu
z2ANWp>N&kkT+g`adyb!<x8<sYnn=%awfLvqwDvUyzijdEpV(+t53FBiN{m_er9mt+
zm7ldLX%;UtWox@84{)>$TBIzUZ4iwdmq>g0FEe4G&=8K6AGSQ#1Dj-s$N?UtrlD(U
z&v}XjchumkhIxg&wfZP&`2~f@f+I$;x}(0+NN2{l7Ky32ZTtYOmu{q67m+lBoA?q*
z=aEOs0Sc?dV8%`DRl8_qZnwts(e<;)2h`nVU=?^Qt;qpAhC25<rK6T8B(slNP%Tl+
zCT*DdTyq;g)7IsGz@-oSedm$Y5|J$kl;!G$O&2uG)g)amx51QDv8};jlT!cQ^JeY|
z8alVZSQG*oUcxnsd%W~lctO*%^b<wfZBV(<-$YH;?U3U%GFUG_q1iFuqV=6?R$r=J
zQN1Z+W5T*4DvB_Y+_b(+`(?@q{Zx|_!eua6n_4A;a?H#f$}y(vAjx4;PrK~{A)^if
zglUNU4B|`{8loEd|FHGlaZLox-}GLjgESEVX(EEs6RId3rB@N9cchchK|qSqL?EGx
zNEeabr3;~VNT{KP009Cd@bdhg=g;>(nY-KBWIuP=y`9;)neUWWzuKy?!s~cL;b1;!
zt*!9mGfvVzaOnbk@;cw`?7Acn)&5-;)y@ZP@f<{=6sVR!`VlR>553O$Nl{?N6f@NI
zKdHF>Wn1RPs~n<$n<<~G(=Uw&Y=U-I8ZYO-_+ppJ5vd#@Fl7EdWspPp10@(2pR0us
z-=fvmlWd#xlkBR0q~F<)M3dS+fNE{u`PN6U-jjuUFz>TK_pjL2XIeO}8gIrx_b((i
z+Fv?dCm)~}bVg10xy0Wm|5wEP%k)b(HfD~4D@8y4FhWDD6(GZuZuXBx_=WJNFCv8#
zc_MED5|_i5muab<`3D57wkM9r1819oTe&CKUMLGk7)0s3{bV%naM88&Rhbc~`Sd#u
zbAew!OZ{!U+hQwTn0$}^W>8&nDn?mfZ=-2qUFoR(qcjLanf(p<Vql^*BHC?)^SJ_$
zUvuW(T&cm$$_rJ7sl=zeV&#fcamoNAsJoaQ`&683TYNObH<=6r22@#b(0g<KQ;0v~
z^SzLSYDo)E3A>7!b$I^{jE=F-b;YooWJKZRSBj7fr?$H2mj=*^(?^Wol|dpKlNbo(
z@_OxtK|zyjs(jmb<bhF4urrsm5Z7-4y0tcc?=ePMCsMB8WONGz<nE_j92;DdgL2KN
zEv_cC8)OBptJ=P`EWqrvqIRCr5ylwTMiD3V`exIM&9sfX@vd^?LXOwdJB<tEjSE@m
zIw&zvBLcS(e4M6<9TdVb697Ts(DqJ!Afhzv9`GvU*p~n;MS&Hb!mro;o3N;jp8rOl
z`B?LWk8#TdVAQQR68G|J^@SHDwKOlEUBMQ)mRb6*e`2wrlpET7wwb@g#N#fh2254k
zsZh4Gr`Wfk;CFXH!OT08<SI~}1H@~}qaA~_Njt=ChdV#nnSA}x@in)i!jrK&NeCoK
z0FuNHNg{{Qk-_K)VS?d~OvFk#TRZa~(EDEK{g1CMF*Gm$D4p2!gu?WM(v&*9Jf?H{
zemCqbIoO2cSZXp2T0{x#zXMJt1v?M|>ms0Xov<ZkaAx3f9W&OP3@4_)Jt<nCUmXc(
zyL*Z89xF|W1AvGyJ5R?-XEVnEZI6-wp!++MLMl+ed{?ROM|~tCbd(r6N)CN=4|J)z
zHm^Ykv1Z+#7luIcv=kMR0{!I!{mBCT1q1zA1O5H;9oa&H{V4<g@F=zzojY>bK*-`u
z@6c6~&{g{&y!cnWm{!q(2($wN&Dy<M8QrtUCEKcy+EcD1*Ba{;D87o8N1%fdXfg!)
zIl@crUR*<nPawHhppaK!77Df%6G9Q^X45zuQQl8sn!;2CA*h0oR6*|J6c0LK)DgHP
z<RA<m4JD@l(h~vc34!#)z!U;t3fb|=Cm|q=2nZtt!uGCZCESwtTWbV<opdLD&SSGl
zxGg-rE&Lf6rIyh2w+R#w$vNpRcgF0@zJP+cFEN~S0FZL%WhxfKfW=5+F_b%#P(~QQ
z7rnoy3|qlq+!T)X#n<K+5%UU&`4+@{2x9&!0s=zq%(Efpvk>#9&A@eZj<hT;(+kV(
zg>55_3%f&i^MLD`l<S(7>sn2ANk#S(uu+;$bUW*K6HTs97j|2zE{o%k#gWS5SY&au
zvN)yGo&l`4)2Gdv+*+>8+4F&|n1nu0o4KC!QDfb-f5zgs<Zj>e(_YNfPxlG%lnXmZ
zxluadu@b@v%(!K62xdb?`i@^un}L6F4D0*ZUz8Of(VIfIBSs7%#EC7dzFKb`>zoTJ
zD5yQ@hV+e6hj1uJNI&tnadO*l9s7G*QFalAB;C@K(g%K1z>Y^?$3J7oDRJ90;17J@
z4}Rz((|lfWMZD8XoRbF5i5C2u5V#P@d(fG376JZnf+@QF4KZ#z8=>im=4ZnV5Cf09
zQi#w+^w@DW+_vd+{Py8aKLI(ADxO#4Z^~O?9QA)p^Z&m3d6{T3_wvF44@t5p3dG%o
z{Q`<hV%Ql4)cGjYYn3BgrY(Prv0Ch+P^g>w$9@3;0WF?BQXvETn~Tf1&tNG9IbV4D
zVO!fpUR_Q)xyo4lbAK@k5i?|J6`chj&w0vADQmahpqkhk=1XNSUJsCN?mVrkXc>PI
z9vsl_DZM;PysPA_ZfmSj#5NUjf|IPxbo@PY<)f6ei$|CfH$wDI)n_=0)65*d=sDzR
z$j6+T*=R=AB$L^32Pv5KKW+?=g~3V_`OVl;c?N^;1A!LWQnP}F?mT<<Cr-@S(rh}L
zqcN&8CB<yDkNDfZ`pNAGR0yTn3>~tAG9zs0f=RbCDvGX5RX|U-pXSeY<NOR#0A+^N
z1-9#fE6m@dd3Kr1949FXAjI-nhn4vuC;1TAsn$=nnyQ4sP}bwz9qCf`m4@g&sUHSZ
zt|IGDsWOAnU{<X2vmLEK6P8&{Qs_u6dOlPis_TcDm+o?$j)b{%I@TlV<k99z*ov-6
zM_+Ex3<<!M3_7xo)I9WD^NQ%Sv#(K#tF#jTjd026oOX#Qf7&^1fpE#|gvGPsa<>Ly
z_cg(+)HpE)tT`1<j2N6r3=|EAW<YSc8w0SxPMB~ftSmMc!0mHMGq5AYS30Yv=NX<0
zp!T_R8`$x^E|mj$DEI^yrA{JM^q`)rrP`!GYeDRe4|<XXQ7Rgf+pdM4pJoNL++H1<
z?4?^8qHZJ-_J{;(O#)aX0<^G)`p1{Ts=P7txA(Ev={VazxWmcqdnrg=g<@@N)<o>u
zAa((WU2p`HTnrmDl?Kh>zG%`wAWb5mi{a442&h6hR3QS|qIeNB_8A%%4vmX|YSPHz
z**7rjsgwH3dO%7!Jo5%-GIbJmTUhLpJ6M1txvs7hF#)2OfSiI33FR=`=<9Y8Jc#4+
ziVAaXynX082A@@E?7%x0pVZTDtCC?JrS0*)Qc65Eb@w5w`w@=})%Be)6S_5}zN8w-
zPUG7B_ma|Yi-zX*{B9pCx2qszrFHeIj3-sl3G0UL)ZR>M5a;n0_drenpXW+cYY<#Y
z2Iyne-`_0{V3;`)u2`2c>qpikOT6K>J(edU-2xrv_~&-Cvy9rpyDs)Z5<$oG-(HjW
z>fo-0_p`&gAQv+G**6r9wP7)B(gsIOsEVZ^Y}e;FUQ!+~<JmYgBF;8E&Nd<r9)7Ej
zoR8}bi6iZ`kgc!ek!sUVOxJ1?kCEO&@3(5pClvi(9|i4~uAR);W(RTQOQ*zZoqR3+
zrzj{Yl_Jclh+6Bi@1_H%2=cVtGL+Kgpur*|_7WvQ`<2oup!BU;i4(-oy0RwE>xh1p
z&h=3oZaYs`5ha3th_`+`7g-Gw!!DR2T!9GJFvK1~L=myLto*;IqGc|*1#5&8{rk~+
zzRqz-=ePmFNdn>Ish>>ev$6dKv3&=zZ2$&9Z0Suealz3O$XWgjKnG6==Hk?;1XkVu
z5CrD_j=At_+?_iqPhaF;_`Jv;vjkxExss)}eQ$vk(MC_3p{Hfh(}8>qLKNWPKWNL_
zf8)8_<w0PV=PiSi7R*Tu)+X*KiGn{-#AmK=H&~%9d9dO@Jr8}OMPJ9Y@;lgX@48H5
zo=6!BKQ<=S(Ix%<z20u<uVFo@CM^#ai=2;<n3vIgFC!|h3_{J#&hd8$rvxF*r^#H?
zM4En`hHZQerD`6q@FfUklM=O0$g>T9{*5!PfrBRQ+{K9-r5rAp%!qsFG4Jh5k=vOw
zE5OTGgSn5lwe60oL_$>eJuSo9f_!GulB{S}8Vx?JYO0;K@eutIk~=J-`H{5yv~HNU
zMRT0~h6_PyY4iG9JS)p1ynIpt$KF1+sO8P`D+i`E(d(b;rX<#z+gfK=p`S5riZ^ce
zV6UA3ACVDZ^jn8z(!AYrNyi4GJLz#JhhE!vyH04nr9@vm94NYgIA5=s(>9BA!qgBT
zH9MPZAe%0<oap2yuHEp1aa53BJFw3d_vuTJE~I~=l~u8v4z}(DrbGq~W%=mkTV?s)
z-yD_|I+9n7@%zLu^EoKO?{_Th&+1j(_Vu6KI^l+O#SAE~*)TIix71u3$&qd^3oGUt
z4r1Mu9jz1Y_l2m*MVwd-#pfao^^Tn#zVMYQ>&4`5O^TKDC=&Y!ZiqDkIkzIJgFpDi
z;di^vM@r9kDNk&2d$wOarjJ|70k(t#7Rk3jLG7tqcv*?#;m}NMx&+qf9@dBgP)Pta
zdBsBpOIW)Q>8hLNQ4E=zsOyb|h%+c!iUj_lQM9CkY=%2FA<Q8qjvBF$N<!F7q~jj;
zBH}z?-K(v0^#S}wPHc6Tf!<1q->cpb;lkuq&(Rocf<VgA<64~tVMVbxML~3(3Igek
zKvE)*FA+##1kza>43XJzq(;}VV1v3!N^K({V2<ERmhBz)vB|}PQrj2^m^S$GH1T&S
z{Go<^hcE_XIX3ATg5KfpDor7U0tli05&A7LkQM&GKeJJeabij#{bO|jq_7nx#SmV_
zMMB5{2@F601N_FgK?@wOy6T7#^Ii9pKyx*vz|+oYQzBDaYAX=273g*^gg$8_2ZL)j
zkWy-302}r~6@k=7ASuwk%vd=x99P2zl3Wc8CIN$qz+nHK9j39#4psddG9|nM2E#ix
z8FpJBRl)~wod4eF2gZVPF$m3|O;nt1(^WzGS&!jD3f0hZN`gouuQ7I07muACOSvHd
z>QRDo$$+EbypCNdoqbtY!{k}JUCobAPKv%vfTKkYG~a^(mxjj9z@Negntmnt9|ga8
zpJtpDWln&nOcqk)f4boxFT;mv&(Epm;FmQWv{q*geEWwPH62NB!m1<jZFkQaB=<d;
z=HTDow{}d()n@+!3fUAb!Qy8{mQ82N5Fo$uF;nrFb{A5RA17w|U<jW(XR%%Tj3>CF
z?S0DA4g#o$l7E}eVJ&Ams&)aeY%e2nOTxD#x@<3=-|tboU;8H(Qcny+5x`IzNNq0v
zhoo@<lw2#cT>h9&JBf&%#}PeVh#DEMIZZ@Ob*CMWp6j`V&)i^Y&nQuxH3?k{QQUHP
z5319S9#K;&5QnFg`$RxTP7rravg-9lSeEO7mn^$1*IGmm15q45DV-)^Tv0@iBvG6_
zDP4aM0<EG=cldMz4T$I|Ad2e=?|FzogAr&#gjb_L+^w}Bmw-!;gih$_q@;tIhfy~D
z`q9_@i1G&!<?kZOnGqr^jap3Dm*<@@BW>_^_G2b-G!s9Xi5mBp5O~z7PlQf$8q|;F
z17>&Xv!c@ud_3~VkTW}89(jbwne5vGDRO51_CSoBX?h>(L5t({+k%Q01?&)o%w`~m
zomY}hex4{Qn+l#Nl{?SH`zEiW)T?d@Qj|9k@SBM=xrHf4&r2wQ%a?bH<MOdB+Aado
zql&g;z}B#bnh^oS>M`>DUffOH^2gDB8$I$=Z@6P>l38k!GgL;&HEs#{e{<!2ma!MJ
z%AHslFJivN2aPQ)EtcUV`b1rPvLqBJ)F|hx|FHhEjeOP{(Vu=cZ~iJn@m={JRL9Ev
z;$GR|Ub7TU&z<86XA<5~D{aW5<J`T+G!j2TUV|VNv)>hMx14JFGJI%)W=fulZhRv<
zeoAHS`r<U>7fQ_!8Dbl3EwBepHyz&B4@&x{i!j$MYd4v(RBjWPo*fJp{m~G+6g%VQ
zPcpm45z6afkn-|eJoUUcGT3dm=OS-SS?N)w?KTDY`3oh$G}~Y>QJ~5FpAwmV0YlpF
z&hlH0w*IDP4dzB4`|S24?eK^1*yDkh52?;si%vN=F4xj!hO8ow1%um9u1sTK<<Dmu
z2KJ^4P%oR(6uAxPS6#|UtIi~?4jdch39PtDs^}zfTz@)YlsP!J$qh$^9vEFL^j7P8
zgm9EW*O6oAUDKfa-*8-{;ABEz|IWpz4N;l@tC?m)fPinnQ0aS=%EhODD(SGHrL<$Y
z><~kMgs<li+dGu~Lx)RM6nPVHgE023^Svo@6&{)(iV9vTKV;X1x8Y=pHY=`i1nV7l
zwEhTt3;NLr!ya`;^6I-^dYezCh<@TV<p5Si@XmIna3cD3(d(JIKpvONBMMv~4Omg~
zXq^Ll#Dxna1h<j^Z6bK9yHaEj{fiX4{R+Ck6-)Fw`Fg*8Uy3av?nF%u=f$uER%a-<
zVz4He{eZ{j@APZ-rRaa+g?6P#Ao@+w>zvr5<?p<PF%Vw50^A+d3x=dK2D}%`Pzt;1
z#j0RBuVl<If2INWFY8c>>}{>7x(;xSQVF=0IEH^A_z(Z$(Jk?%^9pyR7=7X`6UTn;
z`p!#v-IbBeOBvI|8z0@oi@I&-_8alH4aFOPACv$-;9nH&Xj-88xv`&D{-%6FXbPhF
zrLdn#aRXG~cf`P7QM_{9^C|CQn|S3ofG+G|S9WJW*{sJmyt$SSp~q(EvWM%hCHqR(
zZjBG<vf^95Rl-rlZ&H}Z97e4AyW<5r>{trILI9(Rbd2e&>qeL}<UlgUF%@EgCUlCT
z`Y`0y2aORq>p>#ZdiJW;+fPLKLZ>lzEVP*wdsI89|6UjT^D)loJ+_PtXG9KGjDX(l
z)Yr|yO-*i;0??BLSZAjvr64=KtFBxR65nRYf6ifFCw1TG$;8Mli$#v^Y~4tfT0Zt|
z7WlVg!Wz2!7dw@GR7Q=RVhN>sxAj4$uMWkkxaU4uH}efrZ>LE8M$wh}KNIFclp}X%
zUGg)fy@DO{JApGyihC?Wxu_z!(yQC$2z$@8S8O>$=kyDN3v&<5i5jO<GpG;L1z$?x
zXx?BsC~!1HU@~H$S~#@e*#$?@Aj}Nm$c2_#d8elzEvH1eg?aaN^7R`%{TMkV+AYk7
zuai>UL3(?rL!A+P9_f_==UG7V;Pq$>K9BrLf%hzcaQ{$s4z5wtk!Tl|6@7C3Hq14@
zqkar7zwN1nX&}5@q`<pJUO$WT4g0LQ!N8CL>}YXcLGt#&`R{!KN<2>AQ$b(<FV<^R
zoUZ#ZbLWx29W|M><|;)lWgNfN8@h-dK8mg)1`3i$5={iNtC~j8m^3IG*HJuw*?uXt
zrBI>Z`<e&rQIKmXcr4o6{w2V2b4mU+{NcGrhHr}w2s*&ae3%g%hMby&_<jcuPE}`L
z>h1(TL_*?m+Dq`T%f9jRZN2r;$C#@hJ#AESoTsqD>(ASs>Kz^WfR2Es;aJe5ldZs+
zx#a7dt`u@07>7Mt?@!_V|DNEn3jdv2zm8}VsW5l;r>IB$_25amC;t+Bhf&>L-R~j#
z&Ibl99W{zs%p1+>>0WuigzM;J9wmRwSb>^~`imDI<F3OU0#-KmYaDhaL`I_eJy)LG
z0y-_0N-0XHK72l<F{L||{6i<)eLWozu<Ir<ei!M<ggc1rkPl1C0Sf#Jpgb{N)Q{6&
zvv_8v-zTx2bu^59kDK`mMc}N-uJt_H<D3XizqnQufa7}`Kh12eqdR>+y2#!PRcv*1
zUMSGw4sttE%(Ng|_EtEuYmdgroi}Y&1^y}r-5k%#0cv*|DkMa1eztEFw2N^1CDHz<
z{@dhy%JO{qa;>9i{2F`no_B7Cza(AQA=&r_54cw8vaO%Z{IYnISBZ6bk|&bkqs5nI
z$Nz*zXt)U%@oFXUyK0vk3hfBLUFxL}3(t$4`kr3XnW0bac}&a=A5gvL4kULYIE<k0
z)I><3NwHLJMDTENghCDN{wMZD)m(8qUR^t=8@wmsUk9KHz6ITk*o@hX-%Q&4yqU3?
zy$Le=d{O#a<Yp#5*y9ZbA0!ozL4I=yfK{U8iJ_LL6=Wv8QGf@?x~8H^=H>rwgB`_z
zo|3x?Xgt;F3PMc>vqux`DOqW2EZ3WEtbM5wby!3g^kD*PNU$wa8OEd{eY15&?s#uh
zZgTBY_f=ei6dAr|l(J;ZGXwO`5YH`UPb;G_lp-Rq@U*g>)vzHYXxcH1!K2N&(7X`(
z-@)=<B+alf`Yw_Qb^2T#CVMBfr{bv}!@X0Z0}UR;{`e~Ru6en8$iKm(H1q+FY=RJu
z_+wa<ObU-|;Ftm%>Wfo%S4;bHc7~n#(jPZvJ0Z~3)(GnGv<<#LI{Z33l8#Cm{Vn#c
z1*;azS@^0O{p>_)#Cu2U9?_n1O0ud<27dl_ISQ89pH7@;s>8)^Dy#&-h7JZ_9$Kp|
z^7HM}r8kb9Z9jjRDEFy?N%OGU2Y<vpTi@{aOo0(G%QEYkwZ|5$A8XrzLYy!HP*I2J
zXyM;FQ71<oh=mmycK%$U#J$EjnZQ-_ney@C`cY1FPwS#TFBIjkb?%Yam@}w<mep-;
zgV>P89VZ4I?_H(Aua&C*;HTe`Ut8tw=_hlCuALntk`xA|7VEvOCvHBFAs9buQ|9Cw
z2~Ro?KGE$voSnW~|4>TY%RS0D_Ge4B$=%p)>B+CQ#m~)6Q(D=;p|%QtWg3Ju6Qwen
z-i*5hYfVlEAC3Rr?}@+a6^gp(_9|-wiCv=SXp$+GN|R>-TgCQ2{iP<bEH8@`)%gT7
z(Qz%aDWXE|=_-f9ltSlk)mnc2Cy6QA62>u`Q}35DpS+iDDdc$X`yTw2^$Fg^+&(Jm
zB+Y16+sJ$u#vP>CFgE6PAV1^~(i?(q2y9k5ntS$C$G+0#+3s7Vj{yM#U@I$j_>FEs
z6iy%%XPtqIz_fDOULjXxy{EQZtHL~dXkmrHepHSAX9s(1TuqD@wMuwUh`b(lneQ0v
zXz%LC&tTEkOiX^N1)%>X7Z4on?wU6<|N5uvrg<|#Hxy@sJ<1@-mhd>KE0Sxsk3&m7
z7R?xIR|tUWG4}5YPcIu81*ny^K=sQ|9%O%IkgLOgEX!IlwX)?)*mYTKj)2IL>y^l;
z%aDnaQhad8KQpLoS}>afPe-og9Sb~%MiYr)2Xo#cTdS>z)jzN^K_R%zIdn>bbbpbH
z<I0OPOtSlc?-z?thcw;In+~IomnA=J6D|d^sxvQ3x_ePsK6h0AkGuYS4nJXiTfMym
z=)h0>FXYKw_ZA+H9lSU}^_(J}OOb=oe!+#lURwF@Hi6b-h6iL%1)s{c<Yi_YxZT2Q
z@gH>>df*80^f+=|#qB(5Q+=+sJvs&LQf=pkgS(>pIXVvT0|0CkaEQr1m=akYEu6aa
z-BdC(k9A`lO8B~p$$XyJH)FvA*A{qbXy3HIpg7}4TFyE6FMC*O^IKm?*26p=LV|Y<
z(aU59&j|GXYVg!9rfvs)O5l1Og);i|O<>d);zrFQ^NxqD;o)kmQe$*yqbvmOMVC@I
z;pjZxu%0Nh%9(~$ZeHPrC;ZKFDujjq?XTwmz7Go5YsS;--MGScR-dl5PPzwfdecQz
ztiSNYE?fSvZj*gP<<nO9X6(!lC1f@0w`i?uFGW7<NcVO?PBH?(ivr0nB^Kpx?eR-`
zjGh~=B?e<#{XQ)g@vzDr`nlDbn$0GZH_}AvL)b<zTHzI0X$mW=`iEx30J7(0%yZ|X
zm9Hh%=aQ$r8R+$@RO+q*`wymptDiPLu0OZWn|3$a81P{E_o3ozY*#K!{8g`@LoB6-
zUiR~N)b6XFh8fOe)|UOhf22vBv}6Nh3Tj6cp&hnnl1abfMc1jn=~Z-3?C;jiH+3gk
zo!QtNm4*~Y$PmQ{%3pTzMO?A&==7K0*MHeeP?IOZU@=d>#pTYi6>Hr4vuGBabJTXU
z-RoN(<v07_>u1u8ON+o>(4(Qt5c1tU&+6;R+p(y(KYE>Z`e*=&1u+H?TZW}BS1AVo
zEPG9`kWF&lcE>!+2446<;~C>^^#1j)P{r_LCdK0yx*j5fBTjElLg_B|loCI?XXdoC
zADXuT!Vmy@`kN4Fz<s7U95fCEYL9GCgPupxgWCO;``~%k;87~5Dbd-5&{!M*=r;%g
zi(oEh7;<3}%JhKh@i8PGp#}vucx-;*2J%8LL$4(+aQ86<Fnt>zD3s>55fbEyegW#_
zVD~9S(&<`Lf?xf2CaEQ%YB+F7=+F&{tJIW$T+Itr&s6x8^nF$F&BMQ>Wpjio3S8=e
zZvNx*dkeb!-+1^iQeh(%$-sMk>`X<>0=3Fa<?P(*M;(l~>Ibs!4F^O10S9`7O!R?F
zdRRiV!uDVhIXw?%G=^Tekdi#*dER{X`_f?-?Rle4z2nQR0}TE)96sp8rqqsLj@;kU
zg`nXnWqZy9Makn5)~-Bn!MKM9cXI0~O4Q09I;M_n*?L`rAij+$>>h<QRcdq|!y+hD
z(hiL4&#C>FYdT&$*~^YRt=Lg~tuf}Od4mMhd^q2e*At8nJn5GMBp7^nGXFGt$^Po#
zSM=gm7i|b`bVF~&+9kEGin4`cr8RmM(RET~&s5*6JMhVM?*4hr_wR=YF$zVaKHC;8
zT<`ljr_C=Ksx)o%T)94APq8j%68^LZpKIsiqZC`5++IC{Lgca9>CsKxGv7_<U)$6Z
z?E8lGh~6GQt&z@y&||h%6W-RZ(X(QGbMvywJ7Og&T5J!k3qKemYR+3D->mBaQt&e+
zq*~{kX^B7M{WKCi;{q4Aal|Q7fxkD`KQ)-W@%ATPk}Y2t{Y&%fVn`Z!XzS}SI=%Pp
z?zVA9haTT(iua1}3~hGALA51f=4sQDlSPTugA(QjxB}Ji8x;oWd*Q<7Q`gMwspM$@
z%kNf%%RH|Ol&>-?ZQ-z1yzSM+gEibkq+zWGTC4`INQ44cJ(I|sq|Vrm**^?9I6q0m
zwSRO4x{D%Pb62yI9ziT;8&6Z*;$}UnZ(9B1F8*bHwMoQ4w03{`^YLp1=}6~_v6HQ?
zXTDt{5`0d`WiBKl&Yqj?kPw{kBNhPZ3AT7Wvo8b;;}tuS$%@lUNn-xwMu?=RE&uj5
zX_>v%7lg*mIoVdoKq}nuZF{m?>-}1o)Um5O7Es;*Dmjr0(r`r?mQ_)C$(5WZR7{!i
zuZO<L&%xTsdBP;;hq&SkoKPmmWnb<q4Lz{Vloo6Z(VCv@n+oJQf8LV*TPv7pUCnIr
zi|o_!>AI~wrTN04M&hYu>%qf6ANzR(?U%=($fQC6NY+Wq<U1}+iI2YPKM*R@$gU+#
zfz%Nb8z0o*&8cF;#j#Z@w4OP5RucWk{$4cJ2^d@_+fpOD$ZQ7TB$a^;B2~n}Y;h`Q
zY*`ocwMwXh@2=?qi+e#bsjXLK&x1_c&rj<P3;Jz!Z1h*eAAWt<BivT_S9GP$`q-1L
z@gkrIsgFMIh_bx45!t?iFW$zrZw~!C43F+d(av3dx8wMdPgG#ySnwjm*}w@p24mKk
z+DUW7$c3=RC}MgjYw}xcpvHx^)v)VEkF%SY$`sQZ37m6(uZDC(C)Mv4Z;rg#o|%H4
zr#nxu!7oqe|0nj?|0DK3EW9cflzwn`GVpPd>ciUj&?%Bl#JvS4<_EENB%jJI>kSY2
z`!DBFEujS=nD6meUJP5{*x#s?+t?gggv40hvbln_NrRgy^HSEW;PZ#?U41)WX_Y2;
zvt+frwJT}LR>L=V#C{{*2S4}DT{D)qAh_oafKg$Vc`(*Qpdl-B1o<rAy23ucX{$z+
ztU<iEzCknkbigur=??a+87u$C5Bo&X9_Y~@1K%3)qnYzbz_nr&NG<Ta=$z=cdG|K&
zRu#soI{F#sJhuor)B26pCQzRdlb7^Z<M~i%^D?dOBkyk>x{o+6xyT7pIT?$hih)<M
z7%(`oeyqRZaM}Mn!FL=kHYx?ItO@CDlLA{54p#3RI#@O09}OJ<=slWR+(-U!SnIzH
zJDTbDcB+yuq!QWtsdWISt>EJ}G$yCh`=L{_=49c1Cw@r8+)A~$5TSI@HN4`eT;9PB
z@N0V4=cKE7>SkzCWB3h{+oBXy{~_Q*V6g$+R{xhc?!|(rT$Gwyn7`uaQSKYII-&~a
zuZu%Q|G*Z8r|;F&zPMLA0*;q`=Mz_-`@Lb`%0#8}+Qn}jF-?lIsE>~&=!onNy(LWA
zAoJGv&Y#6vnp&9t`M2U%_(@RvOzJ%9@!h*xC$iW)Md2((8clTpSHF5Y^m*P!;^SRq
zARLbsP{QUhV+mJ7G}~|8MY${%QLjT_t-k|)s02Vx)<lQ0i3+(V^Tw;8SE8W5cH5Rz
z_B0+{=R$%jd0(-8Cl~CYE%mic^`B`fJ<Sn5Ehj1pL8V#iZl<X!$j|ppw+v{*5vP-*
z++CME^%k@TOLE{{_2g;dpDiH6W!e%H7?9t5)vei1n$^bM4s9;CSNAr&@6KX#4b&{T
zrVDq#A4uOsgW*<CMa=ouA!{yu<@FNzNJyP6j~wlPdjCS+V&qqTpLs%wz<r<x!mSG2
zg^1ujwKL?M8I;3b#;C-eTQ9cKi*_S(_BBL)`x+44nD9D`&`a<n0V-bOi!OGm@3mg+
z5Z@WmFS@vmqf0`0kK?AAqnNK@7dz%-tsNSmkf{dpQ_D&hRl`WAgFj$&AJb!6&GD&A
zh7YFC8wp%&_^&U~zL~8yr^+3uI@3+~eX|680gVI(V!^)1sW=av&#Y5g42!Bxb1iO|
z-Az=Z8}7sbemMtDpO8S@%KU9pG^ZJw^LIm&(l7I(0KwVcyR>3;X-l4-4*vfBTVDts
z?|)M967JgkD)l8->Ko!onUiz_#beaJI$T3Jn%Esn__%yp5LFV+ndU{AeB`y?M2^CU
z(TQvMtR(Wp5sO>tboUA<ZJZAT_bbn|lnrw9=u#ZUUm+OjJR*k&IG*bGRm^>VxqP$t
zxBJ=m@3as%gOPj9$Sjv0gEEJ^o7QedA10<kCi{UY`5<VvRjA3r?-6d!*;nP?^ma>5
zyJsxyN-z$5IhIC|7fLgKJZQAIaqJ{<vM9}c2Qb&Bj|G~VK<O97d4~O01%<~4ZOt*p
zv$nROm=KAJ#KF_uG%>Bib`t<&hQmO6oj8lm(SC%3(Z8tU`=cd}OLeawEs(ta_4BS&
zwl>Vs|L)!O6|K5DoRW^jM$zoYVz#teyStiC>kQdunnrJU;`ag@_eLwTMF09KZ0f=O
z)=7`ZS$Yok^K{_&`}}?pgAF>RY>PYNlBplQ2n{}K4DOB4FqUY1e1KgpmSdg)+d0yx
z1R$SLXRUuv1HA?FIPa{E_4;PlomK!g4^|&~#(infzf5lcUTvT29kZnoBM(BGKKfaA
z?b_u32ALlFQCVEbe`*%z+nxojSgPv!9}RB4wzW<cdjJ>Bn_)TSA{<XyZ(B_%y&1%N
zyP`yk3vEj|k)@m*8`r6t*`W6hwj5Lk?XQ|vd;k<*0{R;NH74(U;M}u#Pkl&$F{|Dv
z0t@eE6@mv(W|J;UaClS}j~WI3)wSoTcJB|{FK6XMm0-$?IT@;htKN-~ivy#}gHUl8
zvE0v=!shbx#+&eV{YPOrRuDBHM<vVHf}H5zF9p4z+gviuiC@&3Q(HLwOsmi0py#HA
ztrERJY7>dW#67=XhkU;e+0tw|(&xx#Y*R%%wx`MjD*fF2*ktBpo0(-)MhmPu&L`<o
z<fjdn*P7*IOw`7oKILkKw_BGqY@ct3lnKG1?FYsBpqxPcxa&5|4jyN-+dJo8w)nrt
z#`M3aORp@tC<rCVm~NycV;NtH(LPhBqkHr7x$;|z|HCEM8}9y(0MZKS$qAfj!E$4m
z0ucz6Ln|!VUo_=Z-e{FhL*nuy(fcTE!Mf^2_@Ycl(8*RCn4q&*Zf$G3)<IBGJB1?Z
zW%a2-7I-d<8P|781`t5BSfj0pz@1Y@Z^0M5-Qs^%OBcKJyKnu?(5Ew_TQj2q0~gKo
za7jO@8N@-vn+BMj3<{CA(}VMF&<<>Hxft1RW8C*^!U``WX4{;b%jdAX8+%_o&?{g>
zmZ>E9XbGD@{8^%Ey-=s$Gh|(1Av%Sq-iYWRFun=xqk<r%=vdrC?`et$hbPK<t?@L1
z`ga=AZe-8jWv!AG<{d1Cm#Fy~-7z*$F*P27bDF8i7yhJk%QMJ+)4Nq-B*2(q{KZzK
z_y-~r>%Wc^aawWw4qF)%-*qw9%uqKmsrj4(wfU9<8B}^%+9yP{5||=ApA?=;onqrP
z)(uL&1+6jH)~9MEP~N-yr|}6}A9ThTG%}X@_ab<*ufvh9{i{d1NAVk<O>a9E?GH2^
zj~hxpKD=w4_0rH9rk{VbK><{_Fz4n^sAJ^daJ{%OYZ9rO|06B$0*bpJUBpiBp%ZsL
z{wTIFERTJI48SekU#Rs~*{E}!;Znao%4?ucOWNu1fs-~R^U^kP%;D=ClBGJ~O}Y^?
zjoy~fuh0;B+~fB*RlW{qzwL(>mF!mN9(abye{U6^(e$`h@<aE2fCVX}K{XOyDNlSW
z{SC4>K7H?%S{?Oc@oi+-^~uTuH=Qeq3q@Qe%s|1SgXv5=Y`^{TvNyd+6TLn*6<1KE
zf^GBGFIl|`zbc`UjljPW+|TL;3-4#Swaf2jJ-G?!_&`cBCh@)-yz`i{+4hMwZdxM#
zY-vV@;@f%R&hV4o*a#*TBkc#G4K$LFo=ee+4jjs|>F<Uj?oV4yLz@@fafA85@3w=$
zH%HYGX~toORz*9QogW>^&DV&N8=bE=+($QDfv_7kl@qWep0B`6=tWbU_K%+ib>FA9
zK5t2Q+$n4Lo0R3dU9q0x%l)Tu`Zd@aJep)8{_qzwP5Y!QY<CsJyK>HT&h)=^n(KdX
z{hhzfQ6;gcN4<T>>>R0)^XCm_?RQ5098g8ekmh&VyR@q1{YN?R?#i_*Q)%FE8$1_J
zLf}|hmdzz070V^%RQ9sD)O@k-H?i88JoMMrd62{*eDvzz0SSSymWmcA)PcV<i1!xu
zq;6c_`Qro$C){+br82L<QlaOe-6Ng+sp~V`wf~)%ZKZS4He$Lqm8!{^VQkH*UxQ}j
z^M{g<oe=)*J?A&2KO~eZc@T;@ELQim%|81kHWFCbs*cSrD%%>2$qWSDcTdH-YlAD|
zTRWbw&|3iLN7fjf?qpG`S}B_~;GJfZ_3)mh9?4uelRsF(_AhJpcL{af#p&V(n|Aso
ze60d1uZPn|38toX`EMSny0^36C<}Zkc)JNn?|&atOrs0!2@dg#n%1&j{(a1q5ZZvR
ziTeTjQ)J!b58-UfHQcCBI4%=BMv`2dq~A|xEg+JA@!S9W9`)Ty(HI{Mt)ET(&Gizb
z(X#b7RsyMV+^v7M(B!Vq<$e09KiiCtg72Jg?COAhvDN$fH{D>ffytvI;mfXtn^1Q1
zr=QhN9<4{v%0>j<JA$r9M8}cSaeAyrPz45d_7K+}j~s86e?HGXS6E;9G1?niCr^J9
z-`!=6{D;}O{@L!*UhcR0uf?h1B*<%l`?uoadmqsC`t;&GBtyx4L8?*qZ_g|C1YY)&
z34SAdR?TRh!Mr#bYCghf{yNLF_S@^?OtdM9%SkUbTfy0)h?JNu?#r+H856#*6YE}2
z?r5&t9}Vh+1nJ0pv={aHI1D=GmPmG#<7HV>RZ!N*3at2HKhxkhVkWvHD>{9;^ZZQ7
z|8L?^39ep}+1h$QG40noqhP(sFFhpvGw+|4R!Zov1%6N;8hij~SBzp2h^lktFY;?h
zVI6vs<E~L__Hnk$@C>7{Z>MPTwEor9kU;y&Ab9mTZ{t5l`i79kHm0TH15xfe`tiv4
zN&fB9c+<XdN2bQ}=2%Oc&cW`3nH6t&udC--m#F;N0PCF=+vceNxJ>O~JipB+pdS3`
z1D)b`ChlcN$8b4u{5h4;m1pTy%HH9~<IOf1h2vAkpNAu&y114H+xEy(nTO&LG$aom
zj?*h>jCAq5`}fohlK-pzA@izW8xJvkR#4-=n3Ji{=$npU7IV|Is+*2WDm~UmQZOdZ
zJUXkHvYTaDeLU^|J%a4Rw*Y2dlf?xZE-WI-tC1pvE+RfoPBHf%x$*u~HhB0$RYP4%
zCOPe!{2%XU#SDy8o<o#?{7_=eWUgQYQ}7NiW{fys?zC#K@99X7$z`W#QlEW@;K{Kf
zBjG-ViT&Q4`(yo*N|LHOcL{nnf+LmFJJ@!@Jq;0w&1emhb`_!`1RUAmSEVX)o_Q}|
zfKO)V{eq7$w_}z9sJl)+;&u3r@Q`oaVQ3oYQ+uV|{8XyE5SxKUZ{l|kv3o^IVKF%y
zF@zH?thN@2J>ONPgI%F78qKr*bDHUnd*kA^mjvy1oc_*i75z3GEKAs+4=Zns`G!@S
zxzg)s*=%C>{DwU0u$gPw`D+AW@ECCY+wz%hv@tPQp@Y11#n54%Zj+NDAk$M)PmM?*
z+BjXxkGl@}eqLFyyP49>q9;MH{7*?tf}owo?62|{!{x{Amx!&y#C$oMbV%E0J~<0%
zL+1}RhMPVPcELL+jLz0-ef*SBRg0{H6>g4>cOw+2ns;#|UCI<`OVIgLZL9r$Y;E~Z
zkE#sX2a;hRw*vUD9^3RsY*jj)e|Paqug$w(UdT~u^Vmt-82@gy8PO{+daE-kDw{Dh
zdf#}2&)Hq9>G1SjZJ~i1^<7@xtst*dKolM5VUo0Uc?L!+8-D&u0=G@<ooqR{7w|d2
zB$Yh++#TP180PF$&}K^0-|?7+cDusY!$(7jJYu`w&J%a4JvOZ9Wrb~yUz~cN6o8mL
zNE$gvk{p2OsU|LQq1`=#dQSakqWpJ9@01Fg7;*qre}1u5)gWj-gjV=}kU8IuiS&f$
zaSKTVSDgPi?2ByQ(}v^ci`uW6V!$cf*M%R1K(px#nMi@k%D&++WHAO#oj)GdHp2@%
z*Y)3`D}i%wwq1xj?T-wL?{hM2<neiBhm(K_Y2Fq3(%mx<oO{qnLbGQRX;n)@zg7E&
z=j2$4nHuv+*<YsXNYQF(xw)Z*<@6vVkUn`vF?Q20w;B9oOS1axYK4ARN(Jb(aYKFw
zmvR@EvhYu0M#a%4kNE1uCEnU1=>4HQJr*QyugI4wpgcpPO#UH;z}o8r(TC(p#y}N>
zK*TJ`3MJrHTNXp5Na~p~6MwFEI}ZCXT)BT9rWfYFzxPDpC4BdojAGZvAS>shWpwrf
zw?&|5-s)lKjU<5dN}nF9cvuN{q0tOnGD$%H&tl1TYs)b7qGB$iq$R`2W()R>J*Uf8
z|H-qIz{exasP<QlDRkN6)|6qpyqvHk8#(?lcm~VX8ni)vYr&_~Y&)X=u+rYJv)9~Q
z(qb45+S&it3X)RbZIQ|oBUn;lS7%pcCu^UGbi5KKyodG8T{=iZwW+@eWnC>Q_UtT8
z$;<nU$y0s2j9ej0NT-CW5Oey}#N`ta5?712y1ZG{;}Is3ht%|rG7}ZeXLCs(RmF^j
zdm`?YtlAI<F+tWSW4RwvC?EwC$cgv4QuqJe+aRIs_3Q1ug2`RuV%N8*V|K)2w=>qW
z8LmR#7Y$b1dTk1+t-*x`Q|@W%@}%5oR3TftjC(aKUAa=?TMxuryc5?I0!a@J@BQnz
zrn|X}m~pWlERo-Mg$nAxt9XBgW;rjWxZZr{l>&`i{{iTaP6}Po5ME!dBO5|eL;ehJ
z#1<nlF#{!r9_nZ+)hJoAGP87fTzloycnvO>i2j^p50_Y^bLIP=$$BFt@86ox9%P*h
zKU_g7tc_gE?`;Mp&WKM8jO@fZWF2O(qB1=)c&#A0->N=jg@y496MFAI*JJQmEQ{(r
zDn^{VvLeW>|1S78CfVC1!$Q<Q?T4ZbC*PU)<yvoGi@*1)K?!)Z;<%BcYDlbe8Dku?
ziC>+TY1a2aBd}HZ?r439`CE3D!m3aDIG^Ccl?jeB3^P@glGaBh4ye*6q1)tjcYnW6
z#Md;2XwR$<_8Q8JQgD5j;Li8dnINACg0-*gZGKuS<k}2Wo*M2yEr#Jqn{1BHPN^TM
z8GD4@?S=p7KD03e?7OwY=XLsLkTz;9u))*(oMtJpz*yS13iR;>rfe^`qX8Ff6bYtx
zHv+v^D!K1e9`+qA2L&a()tm@OYacF)I$hRm50tzn0L@N(EE*|uFikrDfmyB_L$w(0
z=^cX3WL(=Y`j=L@V4T-%$=u~AYd7WgL5S{Faj^~W_h9b#dLlfNa?Uhg<jPzx-sxTX
zu58IL>!r)B*f56*{{f$}(!q0$qTlIhU80T-S`4>}*Cg}O^wcnNgXIdfu$QU-ULuBP
z6`Wu%wLXTKZ~x1(v=p}}axiu^Zwf6+#lhu&-ZX%T{;N-p=>I2E#rt`xyI%N@tLiU4
z%?tR<88arakv~>vG<^Hfu#T*BdA{VyZ(W7W^*%$7;4zZ>*Wx_VNBIGdaO7NyfwQ;o
zyz&lA{w%s1yb#j)?zwm#czA9D*ZfI9KsJXWUm2p5@9~GqUJOYMNfWR;%u>6FuE_~R
zSKF>}z6<$uu+04jq7-Lgrz>8Oq<V-F3k}3(<Aqa)+aw0LsRoRrb!;D%YPJqX0d`gt
z3S_d*ExydM6_$!g^#A5zlm=4zY%{52cJKcr<~#iJK!QesbRaNDx|j2};?7Z)JlfF`
zTi01Jtt@2a!`En)=|wnk*v{>Jx;=d@>+QR-@GaJG|H6{1e^YxR**3{fsTLasJL4c&
zSQGr$E}B1Wn+uV8_=i><wR+cw(z-_1mB;*Ojf^A5-J5AsDSc=CPmk>{Mcb6dQ12Da
zVdMBJfgbpvXEy7#&ichYl%4mZtDOFeTPG3l5-r3ElHoq&dfCFkrqVGSOb(CBUrBJB
zCq!}%__KKisi^%iWe|8#ubUQp&h5s>X*fv+a5q@){M+z*>+aoYU3+H^4&%thV>R}b
zqW`<Brq_0o77gROa}|0uud|^Rp^u+h2Za_HL5$WfY8fN#nE?;6fcMQkM-};rjE^da
z+$_xA^wOME&FF^o)~3cT?tb_R)+Y}1UMRB`?OHqLKV_NOCb6;iD7&A~H|tmAQYE2V
z=u;bBE-#*y>2QZnWWt1s$vs7X$~q6)o_};?$3U*RBgH-zH#zV)X~cNa@9$yTM&g6r
zP7QCtY2d~K{Mu}XWsUcz?3MYO83o%JyT`DY!HiQbk|)VMZAYHgcp=c=m)n-@VfKkm
zXze1y8{y*%U95Llh-a8WmKppP@pX0k@-TO4ktbaCdvlKdp2vN^^F7JwWf^Wv2y18J
z<noj?Cx3$DQ~p=0EH}vCQ*iBk^RSQ+;2><|_0FxNoqgmqI+BMIK#sTOKUJ5`dZRGX
z;M|^+<7rERUi*+9>e@8=YxkAQ-Az<1w^#7-0cq-}!sm<0AmnxsvPN(#hi`j1re*+W
z`2)#RF2k$ryYl%&mGOjbKYX@{wN=q#h_5rtcLE71_IlBN^G*Azy7Q`reBzLGCm<1p
z^(6%BSytTo^&Suxo)LEZH=Wb}bVfxdW$}!mBF0xNlm&u?ap@+^+Y!2n_wR@s{UD<I
zJR~?@{C#x6=UMcUPq8K-pYh%ut1EIY>_?kRa;`?7Nb3;YXPjy_tR-FLpZ=>dj_&Ia
z5lqm$rRn2P53ehXq?2T4`dTggoP#8Mkm+xO@KLWK_CBL+u1aLr#C==4K=9_9;7!E+
z4-kjdsA}6e39_c8mM=?`8Xh_WA2xl0`<fK*ra{^mf_;Ok9|YO+1P>h->g-Xf_*N8&
zfIfYwY>XLF9%vcwwH<#JCMVr1v7<Yd)6wIOvwM@Sm7im~bd!FY?BSR?71iQT^RvI^
zjQ)#EnAM1J;H%@CfW5f3s>{q9PmWxoe16Z?{T70S_1>M3=(maY@N|y~zUj$`_be%I
zy$OnXQN-^Vd_njA(sOb3kvXKiKR<N2J?Cq8zjIyYY<(mUx4g#cvQ9sLSPniP@|9ar
zggJtPRu|n_e1jYs1*%yNO>BO6XPugKkQ*O<wV!7|a?+n?dA^Q}r4jkK`_Pkv%nxE(
z8!x6#OWi14aJQ@3)w%3Bm66oI8Qpyi?tp!In`;Q^!O<FKp^|HO{8x-fe8u;57Z3ir
zdWiXmQgfz_*$_Qze{LLa$ZAyNq3;hM5W@Q5)iHHB0WA}?tz=Jbd9&StiLOy6x8H(x
zhfqR?thKoH%btzV9-OaL{t1?pTARTz{ikcO(^Ny&n5qvQ+tXlB2<=WV4~su?OJM~f
zF)N*HEmxLaNxxsHZ#5n_`H{WYP}0TNJM1gIJ4N2h<W0wA+>c`TtpT57;h~+Z?D0Yu
zY{+04*}5?l+!wLmKe&p`$x10nk);GBPBy^fCjH@HN_l;@)s~(%d{5gCPtb4(+Vk|_
zY=!W7kthAGhe1GI`SmX9b+7HMyC2Ge-7r@?6+(6RW6D~l6h9Y$14=kXp8R60rqB1Y
ziM8HWApTF+`Mt~V9?^OrDtrYV^CZR3JPxvbbo7)u=c={q^3f>Fym99w7sD^x4jy*3
z=|V<R-$G?J#MZ;lLA({DSM6VJpvsShXt#>Ha;0UflSYHwzsl_#hsg{1g>c;7-v1n!
zZZohm8Qy_D(AAlar7Bc<sr-PFO!sZc{TL5R%7jYsSLy-=w$E}t_|>(z+1w4;Gn7#6
zisJo2-W3J?5qOR;JhY**Atk*b+6xJ4IX!T2o%m2YgG#mYKbB7m>X1>ma%ChFlq{T7
z=T|TKUc&ecPcY6i`D#btF1dDW^!Iqze`jKnAtm?6T7?!i>ZgV{tw%T)&2Vd74xzD$
zhu-n@K1cY!lSZ-qCh>b)O90S=C*CG^m`-~Ch8kd-R0V_-v7u?L-MUM9zCl-9LHu+}
zWx&oySy4+1Qgt5R4#~14wqFTBC3JqGq(Ck#Mm=n)_p=-fNdJX~+BUAT{8{Y{Eqk!e
zw@q`HDh?pAXrejrss*I=zn6%k_Byn@+WteQgi&~e__z-1Jn+r+Q#eYg(aLnTlK$Q9
zyC(yRaAL6|WuevWacdLY8BjKp>O3|UEC2F#^;K2*{miF+{&Zym8ZJAYGNE+g_}nre
z_}621Cl+Gk^&s=lE-{1S+41AG-4|AZ3TFE>=i%a>1XPb?{TYS6dLI(+^>~-=2+3Iy
z+@@{LHv61ZTOR9RRlf5g-2x@maQR3cT?noWeaQa+`8~l@fT6S`$VW^d+VCe|xj?0)
z!pC2O>L)AN+%gZMOIm*jPKbv=s;1t%RH~O5{o9WMPEYRrh`W3-Jr(oQq&oYsp=X&9
zkivrO<x2GSFY+zDLhj%FCEF|vlan|f55-k*o$WWB<ZjbBDTOuQ54MgEBu_FBqRc8}
zIzRPPS(3X9f2a)AUGP4ugtdHiV_We%eDqm6D<)1CateyB+=}sq15!=@)?J5D=JdDR
z?_BQ<6|?T2-@oZ<dDa|uh`jj<yy3>*P{~7Yt~$XsQ^2CPg9e{{v_y)UBPp|{gg&oW
z!|(YOlz7TF(dXgto~Ry18Njr=mCSjPjfBXrZQW1>+?m2!nS{&F7X#uKSuv@Hfls6q
z0l9KMOGrWhJvx?LIsrrd^=qfeNq2g`B7zndrFgGlBuIG_N$46stB4TCDt00X&jPt;
zP@;P++U?aO{`33g)>{kWh1%+#Ol@iyz__M5FB3==BRtNgZkrP%V}Jd;E1CFo?^m+X
z%R%?Ji$#wc2n;UaYYD!7@-pOE7(4<PhQDx4u{}H#GI#1-u7q8jd<Ow)61r0uN>9Up
z_SX{sa|p4$H8kFVYJdA}XnA?-fKq&Kg5)H1fuf5|hL)L^Igxo!?Vj5g-QY7HHq^5u
z5cS8mpp!)-=0P@LEW;)3hr_eXTZf=wXxfYeTWr(dfv1OugJ&%7I01r(i56>delV1_
z+wNZPzBIoyNxNobn@$hO3MjAUVfmBj7yk55Y3GBHcQJ!sQuHtW2vVMxtFSoq@bSt_
zJ#SPedDN>2KRyskGl97oEI%RKcFsa8iJ!g2{q&sg*JG3Uc%G}zaKue^yt$yar$YEX
z#byTng={2^>FtEzciGw5k?+&hEJyzSiPC<TjV4{OhW$zFmAE-nXiI5}1$J<=HPAp^
zF<V)&DoJ-(@xV-}|3*pV@a-U&1eG0aNsE|>Xl*$o>u7!P;@sm(e#lnjFWh>N_r;Y)
z=+&2w4==!(55hb=p2eh15CmNwbI&4e8&TlrRq$8QwsNC113^|f^uWdx!3#acd$Xd1
zsQ(w54`uM_{-1C&*A32)m#g7><e9@mt_Nil*Lgkn;|}(NN&3#JZ@b#S4t<Rcy?KD!
z;QN!$MOeO4Am@wQUhja(@}2wxp9HJbitW1-b($xRZgPav0ywz_Vb2N19n624M{?of
zR+7`zZQZvKlMbc^uG^MH`F)3Uv5l!^gRo7io5T=#5%Z;Xgw3Ww#?E(Ge$?EZZtlJb
z<jb|En7cN?l<YOki3aaYnY(vjG<WCiJG1xezpdRXnR9Wz$1iU^jBW0GWwH#jeXj)=
zKR03TC->#dC=RwRp9Zz+*Q#G%1y3q2C{GeGDxRcxQXD+VQ>71F3!Vg(*yhzYxPCmT
z2#P1Exx2V?cOITpTu`1QY7s}@iJvD`6i*7&>pLi(r26&E=-2b`q@4xjNz0&k(!_Yh
zlOpET8S>7;&yUD6|H1!BKj8ZDq#dSz0{{U3|Lj@KPZL2De=W3vkp>fE@M1`e(gqH#
zU_?B)P(n0HB!&=8n$&5#Eo-;Co9$G}4P#<}6W-<j@a9LN;ZNW~!clJ=yz9))Y`UFp
z*nVtEg-$bh^Sb+c^XAQ)d9SY#0Em+wCVhzXL0~P!`2gtyoYFQ*I6a?-2pK<i;6?;o
zh+}LVeeW6@9tEM+!kk7r(8Cz0;Q|6KDCi;1BkCOhQEy9=BZ?bx%oFs$g$Qnx^AhPL
zgjJL=bse+kW!XR`!nz4IuVF=#RogE4ik8KSuBF$JmQ!U*?-dXG+^n+?<CAl#6;m&m
zs5HK$sB$^AJiq#Eej)YZZaguQY0mC}I=KNzx!AE8oWyZo1FhNdGUuZXy8z%#L*}+3
z3uB`V-7J<3lx6nX_R#O8U@yv-^S9$tbp3hejhw|(@>{YkIfPMcL(y{jMtTM%q7!mX
z!PDuaDI+W|WwnW^hS#SG6@^k;P%IYVesG#T!-77PN1Co}mh?)QfA3{?yE*09xYN#S
z7#h#(7#kir&ycMvl{f3Lo)FaQL3zt|9Pjk!unT_Bfv2_@2d}muHRG4|dYE28px)F8
z&d+uHwc4cQ*M5B={Sq|pzuWq*IOJXB@^YX6f)e}!3?|4#_bB0FzTN*JPCK&W?3QHF
zlPaU1KQe0UN}`{-$#v>E49;^D=?uSh>rDLdzw!V0JIR`7`-8;nRpfNRH~;^}^%mnn
zGjV5x^OUNnjMtE=<W^Aup#A#~%T;_2I?H!@CGYBV{r=zo$^QK>`2Tlk{{FuX_4`Hn
zCmNPb4XKNA9#vFKa!F$u8SVKE(l#6XrkQgn=I`BHhuz%rsdjN*=O!%RC~s6Us*?2w
z-;c8wEY8A1$s*DBjQ-hU^tkBTJ@W(H<E-2ICLQu<p1Eety9hdH<nx<knPsATo@Aa?
zK8})pOgha#OJIOXo|%N#A!CgTBuB-BQ}`P)k%LK=+V}Tf@Z0YD`vb`$W8B{d`M$j_
z`R4CGq2}-H=1;BGPvX!R|J>~2oNu_MKWQhAMB1;P)#mTl&$?GXOWaQ<k*a1;ws@iH
zXZCNRo~oa~oW$rIMuq&KALn{6&K2^sJ(YI%4|nztZ%E81rln7m-3j>?=MLcP>L+f$
zW7yqsKI$jcF2&u^e%$pX?jCe0?(TW$_e!uA<y(onE&XxD=Q%I&*M85B`^WeC<<@-H
z<J~_100960;$vW72moR>Am)J5AixUcGXgOSlm-D#AXZ?&4gQ0HwgVrK?SW)2FPgb*
zP%~lXg7^{;=3OQvxsyQ54#eo@v0!nh5R!QUP`*!oUV3S2X^}!vVs1gIf<~?;M4piQ
zSh2WI1j&62Na|tckspp$4iH)mLVuY6p&w*}!_k6(xybJ1go;C5MVbBvWw3q&2K?d9
z#DE;`Obq#Xknk8P`pAzrH3z$m!qyvwr5zxACkGL0kN`8)(*J3wyFuo4AeqO6W*&Mx
zvI1Sr3+038oW$aiu*96ql#s-92B>++=>l7Lu`!_LClJ3RwW7qxn7Hs}M$ymAke`-D
zwR{JQCraEwssE{2Zh}FB!+_+s!Cd~IVIaQz7h^z;FA(1|uOzi7FEPg@H7&6;rzD^#
zzrZ)KfV^~*m{*CBZivZ;$b5SH0|t=IgSmrTedOeug3_d%%w+oLXGPNw;wR<gCl@n}
z*88LNJ{8J6g+zzVplaV*+W{ir=HT<@h~JwdY*Z`v&NB>Ly^k&bfa*OHhLKV46Y@Xx
z>wTxudLJ$QUtk!m_ebk}RQ(PF^mC)>2k|o!OG`lAe^|$VwEiEh|0yZ|OpHMw%E2F8
z-wQcFWZfM6s9gVFW*B_+zZt{GuK!{FAFcl}0k!M@D-5Ic|7iVBdHtW3UzD4wpy8Zi
zJ6it}t$(!sCs_ZNC8-0^H+zVz8?-$@z54$;!{Dp`%^5~^{SWj1X#I}~s9pcxU>L3c
z=~4d!00030|Lj=JPZTi}fBPwzKrkW3crYY>z(x+haxh%%f*~5^BZer4O-OgQvy9Ak
zCNo`EZXD(2A0Y8x@qqsWMp5I<go6j~+HPmq?l5GAWg>{vq_l6^-{bYYzK?AdWXtj1
z2c4F3$02td<ozD+d3RsdhfBF@Do)T=vtsDgc<>V;_*54@)!r{~4;5TK0GCm4{k&g0
z)WXmE{!#F=G97*%&f}N%$>EoKAVluGJlVd$^(p@+9fHeo+>lEn-W!-1xMG_olj{z#
zu#K5%gGW=QQ(|~0)ta=*bd#>FV_GvvTkho$ecym?dkK1Oro3#MbsINE=5>QO<%QD9
zlhSPY>D0vJbfq^tmIL${1&3VR`_#$wc-f`L6ukhjO^dj?;s=wnmT7M|7OqNty$+G@
zxldn$cC_0QXl#9{@`6;^IC;s<Qo{@vS~{(nt+i=9IW|gaI-6RX!-i48)s4~dBfH1z
zO<jy0pF*K64+@c|-zSftF*WIC!)!Y4_b|PCEht{7e&@gUp09WA{h{COt3KrUW*EO*
z0KZ{{A1M1h`PBOz6c@4zKcSnELoPE&j(6nv>x~@0Z6JS~3*xKF*$=872TzCJx{0Fr
zNg7mpr9s^8e+k!%-KLA8Jw_k5clNe-`jA{LqIY}ZLk`7tUq88W`{O~BxHI6=Vl=SB
zo?%0;t>8L9wEUR^RbP^B#}0_5?@Sjy1E!|M=69Z*P9sN>cayv;XD7?Mt3G`R`UH8`
zCYX`=DvgwQFG}9^VrU$3r}sR2Oxr4*NuG=I9KYM`ZftqyGw+u`%DEbHzF~#m6_EaB
zLlf#?f&)4*_`zkb0pWi&{*Cha2;bF!LQ;oC!6$Xtv39F#qFqNH77un853)$E&Z8wk
z?&f3jhc9rx>M%xLu_9cII_$LPk3S#GCi%d3|Gz>fAE^9-&UY2M?Iq|(lo6X^;{nld
z(_p-|v=*?{+r7bb^T@r4;)niv{%@YcYeDr@uejv>G<iQwe#f27`|0F=`hM#5q;5~@
z_Bh^8W!-)Y$<-oy8}s|=cQ{{ldpmZ(#i-kpyqn}*IqT%zKL7v#|Nrb*&2Jnv6n{yZ
zO-gA<r3xX$p%NcWV71CtL9HqflO}{lB5l+U;1DVG&U$xEX6@CCCnY`gScwZ9;jiEX
z5)u-JNJtzwaNvN11mZ(I^uVF_@;tU1?_}AT?5tWvT}waNZ^pmp_w46q&rAcrT|@~n
zg*XbjOc;3#@sX)jnK5$Icy->JZC$B-Onq6V+my>Xk!0=`<8^UsbAeQ6&(J!P)y<`l
z5=mElex|&yd$}1iRa-@KbJM8X%dqEI${r;XF8EGc#F2Tf^vw6sV~eZD@-8{N6DeNF
za4b*BFX-lP<IX$VR{G9o_%o5RL&?e98UDJ%FZJLbb@*y7PD4hyv*=~bkL!cBYa9g6
zp4Wc7VfyhfDQ|egTCYD5ld#{;Uj9ux`c5KVLiq3iBv7=OKpO;blupAew&#+5S$5hO
zaP2(h*a=R5t8ei6yx{5jHC;dWOxM3}dFgoVrPsCd7`Xdsx)}e?%TFXO55qqA@(Wc?
zdiv=rre5*Z@9$o|zgrsGKKR?%t@OF)!gxwwdL1Xw>Jvs*bwDEd0SQ?BI%xt7o(CoU
zM4p9w^L?a?e*{FMF|>VW*QtmdMg1TCIdE}w4y5A$AJ{twTz$R#dmg&iOUbKT(vXv2
znKnoq$n{Wk)<|ctxFLLJU)<!`hpzm%{jjCiy=qWi*1jpFcuMZXwSf7<;kV%b<I3Iz
z+_*Zgn@L>RyXp^!9}zzxen$L)_*Hd6{DJt((f7FX?i6(UujH6@2&X~yX~?@-{tuq7
z7Cc>7b^X@oy1v;y^m$j8^3d|`Js9QPQQpm;cWusd<7z=Slen^DyotDs_!RLC;#<Ub
zi0=`*h~tjGcT0oi-4_w>-B?|I_ew`H!J~ai*yz7EaWMV%Z21~Ne95-yW=p@7q{(<g
zn7(40h9Rp{Erm3oBr*a@5xZ>#)Z)`9Vl@^pxdZJ63m&}!p9DdT_*?o9O2l|Gpi-p{
zCGAAM2t?Rm%AZ;w{4IR1dCJ*qWSiDklr|-)1}AN5{dVIoop)?;^N!_xHFmK1I&S21
z2(&Z~wR7qUZF;G{DyC@?ylQshs8x%lw0Uyy?_VhR{rq-8{<(tuQw8}`1^Gqi|Mgtw
zs(a4Opu`2IgWePDt|?~szwbQVe7){Bq5u4sp?m(7ynJC}ZSng1ix)S1f|*TpD77tY
zp555{A6;qZ9jB5Sr*g1yk|dcYo+eY{C|T#NYN31HVYzo_`Cr5j`}|qQkI}tybgvxN
z_sYECCil8$_VkUV^gWl-muLL}`mg_p|AhII2iw0@BhO$$xWSo>)`Y#RXP1Pqxtg~-
zz*X8<3Gw!wdk{;=J;*gbq?BK!kqBb-!IL>snvgltQj3K6#Y4jnSzWerc+ySC;mISy
zCCZvDnLR{`kUd13$bi%;F{?0>dn;-!*F}`n(Gu}nG$+9>(JIOeKP+$4dVhklHkpbp
zMi0V&00030{|n8_ED6Xj)^pBCEb>UrOwTCs1d3!P=44i-rZD6tmgFQR>6K>cW#*Nn
z7Ud=8=!HTxxCD42tAqkP8h{w6JU`DlF*zd@rk;Thhz)?44Tw2_m<1}%3gt6G#TcRD
z0zh73X-Pgvp92AXTqyb={Ji|4Tx2IxVt)XVJ~jgSIDuG!0T=jS52Gn@53)WUEczIc
z^sz!sro=uA0{%y~j}t0R4S!N<uLA*lsg-V+QOsdx$WKcfQu=6>zLDdP35&T545;Z8
zIX*}A54`>kB>kLN^hY46XM*w>7(IPq`aKBPk6uo(Lir%t*V#W9W)27d0IrwX+Oykv
AjsO4v

literal 0
HcmV?d00001

diff --git a/doc/matlab_macro_rugo/window_4a1.m b/doc/matlab_macro_rugo/window_4a1.m
new file mode 100644
index 00000000..4cb4c6d0
--- /dev/null
+++ b/doc/matlab_macro_rugo/window_4a1.m
@@ -0,0 +1,1028 @@
+function varargout = window_4a1(varargin)
+% WINDOW_4A1 MATLAB code for window_4a1.fig
+%      WINDOW_4A1, by itself, creates a new WINDOW_4A1 or raises the existing
+%      singleton*.
+%
+%      H = WINDOW_4A1 returns the handle to a new WINDOW_4A1 or the handle to
+%      the existing singleton*.
+%
+%      WINDOW_4A1('CALLBACK',hObject,eventData,handles,...) calls the local
+%      function named CALLBACK in WINDOW_4A1.M with the given input arguments.
+%
+%      WINDOW_4A1('Property','Value',...) creates a new WINDOW_4A1 or raises the
+%      existing singleton*.  Starting from the left, property value pairs are
+%      applied to the GUI before window_4a1_OpeningFcn gets called.  An
+%      unrecognized property name or invalid value makes property application
+%      stop.  All inputs are passed to window_4a1_OpeningFcn via varargin.
+%
+%      *See GUI Options on GUIDE's Tools menu.  Choose "GUI allows only one
+%      instance to run (singleton)".
+%
+% See also: GUIDE, GUIDATA, GUIHANDLES
+
+% Edit the above text to modify the response to help window_4a1
+
+% Last Modified by GUIDE v2.5 04-Nov-2016 14:59:17
+
+% Begin initialization code - DO NOT EDIT
+gui_Singleton = 1;
+gui_State = struct('gui_Name',       mfilename, ...
+    'gui_Singleton',  gui_Singleton, ...
+    'gui_OpeningFcn', @window_4a1_OpeningFcn, ...
+    'gui_OutputFcn',  @window_4a1_OutputFcn, ...
+    'gui_LayoutFcn',  [] , ...
+    'gui_Callback',   []);
+if nargin && ischar(varargin{1})
+    gui_State.gui_Callback = str2func(varargin{1});
+end
+
+if nargout
+    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
+else
+    gui_mainfcn(gui_State, varargin{:});
+end
+% End initialization code - DO NOT EDIT
+
+
+% --- Executes just before window_4a1 is made visible.
+function window_4a1_OpeningFcn(hObject, eventdata, handles, varargin)
+% This function has no output args, see OutputFcn.
+% hObject    handle to figure
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+% varargin   command line arguments to window_4a1 (see VARARGIN)
+
+% Choose default command line output for window_4a1
+handles.output = hObject;
+
+% Update handles structure
+guidata(hObject, handles);
+
+%cd('E:\lcassan\Mes documents\macro_rugosite\cassiopee\gui_matlab')
+%cd('D:\macrorugosite\cassiopee\gui_matlab')
+load data_precalcul_nat
+
+
+
+set(handles.edit1,'string',z_amont);
+set(handles.edit17,'string',long);
+set(handles.edit2,'string',ks);
+set(handles.edit3,'string',D);
+set(handles.edit4,'string',h);
+set(handles.edit5,'string',Cd);
+set(handles.edit6,'string',S);
+set(handles.edit7,'string',L);
+set(handles.edit8,'string',pf);
+set(handles.edit9,'string',C);
+set(handles.edit10,'string',Q);
+set(handles.edit20,'string',paramin);
+set(handles.edit21,'string',parapas);
+set(handles.edit22,'string',paramax);
+
+
+% UIWAIT makes window_4a1 wait for user response (see UIRESUME)
+% uiwait(handles.figure1);
+
+
+% --- Outputs from this function are returned to the command line.
+function varargout = window_4a1_OutputFcn(hObject, eventdata, handles)
+% varargout  cell array for returning output args (see VARARGOUT);
+% hObject    handle to figure
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Get default command line output from handles structure
+varargout{1} = handles.output;
+
+
+
+function edit1_Callback(hObject, eventdata, handles)
+% hObject    handle to edit3 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit3 as text
+%        str2double(get(hObject,'String')) returns contents of edit3 as a double
+
+
+
+% --- Executes during object creation, after setting all properties.
+function edit1_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit3 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit2_Callback(hObject, eventdata, handles)
+% hObject    handle to edit2 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit3 as text
+%        str2double(get(hObject,'String')) returns contents of edit3 as a double
+
+
+
+% --- Executes during object creation, after setting all properties.
+function edit2_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit2 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+
+function edit3_Callback(hObject, eventdata, handles)
+% hObject    handle to edit3 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit3 as text
+%        str2double(get(hObject,'String')) returns contents of edit3 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit3_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit3 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit4_Callback(hObject, eventdata, handles)
+% hObject    handle to edit4 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit4 as text
+%        str2double(get(hObject,'String')) returns contents of edit4 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit4_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit4 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit5_Callback(hObject, eventdata, handles)
+% hObject    handle to edit5 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit5 as text
+%        str2double(get(hObject,'String')) returns contents of edit5 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit5_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit5 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+function edit6_Callback(hObject, eventdata, handles)
+% hObject    handle to edit6 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit6 as text
+%        str2double(get(hObject,'String')) returns contents of edit6 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit6_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit6 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+function edit7_Callback(hObject, eventdata, handles)
+% hObject    handle to edit7 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit7 as text
+%        str2double(get(hObject,'String')) returns contents of edit7 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit7_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit7 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+function edit8_Callback(hObject, eventdata, handles)
+% hObject    handle to edit8 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit8 as text
+%        str2double(get(hObject,'String')) returns contents of edit8 as a double
+
+
+
+% --- Executes during object creation, after setting all properties.
+function edit8_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit8 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit9_Callback(hObject, eventdata, handles)
+% hObject    handle to edit9 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit9 as text
+%        str2double(get(hObject,'String')) returns contents of edit9 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit9_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit9 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit10_Callback(hObject, eventdata, handles)
+% hObject    handle to edit10 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit10 as text
+%        str2double(get(hObject,'String')) returns contents of edit10 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit10_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit10 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit13_Callback(hObject, eventdata, handles)
+% hObject    handle to edit13 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit13 as text
+%        str2double(get(hObject,'String')) returns contents of edit13 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit13_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit13 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit14_Callback(hObject, eventdata, handles)
+% hObject    handle to edit14 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit14 as text
+%        str2double(get(hObject,'String')) returns contents of edit14 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit14_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit14 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit15_Callback(hObject, eventdata, handles)
+% hObject    handle to edit15 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit15 as text
+%        str2double(get(hObject,'String')) returns contents of edit15 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit15_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit15 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit11_Callback(hObject, eventdata, handles)
+% hObject    handle to edit11 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit11 as text
+%        str2double(get(hObject,'String')) returns contents of edit11 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit11_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit11 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit12_Callback(hObject, eventdata, handles)
+% hObject    handle to edit12 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit12 as text
+%        str2double(get(hObject,'String')) returns contents of edit12 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit12_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit12 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit16_Callback(hObject, eventdata, handles)
+% hObject    handle to edit16 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit16 as text
+%        str2double(get(hObject,'String')) returns contents of edit16 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit16_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit16 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+
+
+
+
+
+% --- Executes on button press in pushbutton1.
+function pushbutton1_Callback(hObject, eventdata, handles)
+% hObject    handle to pushbutton1 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+
+maxfun=5000;
+maxiter=5000;
+tolfun=1e-24;
+tolx=1e-24;
+
+% DEBUG
+%maxiter=2;
+
+z_amont=get(handles.edit1,'string');
+z_amont=str2num(z_amont);
+
+long=get(handles.edit17,'string');
+long=str2num(long);
+
+%setappdata(gcf,'z_amont',z_amont);
+ks=get(handles.edit2,'string');
+ks=str2num(ks);
+setappdata(gcf,'ks',ks);
+D=get(handles.edit3,'string');
+D=str2num(D);
+%setappdata(gcf,'D',D);
+h=get(handles.edit4,'string');
+h=str2num(h);
+%setappdata(gcf,'h',h);
+Cd=get(handles.edit5,'string');
+Cd=str2num(Cd);
+%setappdata(gcf,'Cd',Cd);
+S=get(handles.edit6,'string');
+S=str2num(S);
+%setappdata(gcf,'S',S);
+L=get(handles.edit7,'string');
+L=str2num(L);
+%setappdata(gcf,'L',L);
+pf=get(handles.edit8,'string');
+pf=str2num(pf);
+%setappdata(gcf,'pf',pf);
+C=get(handles.edit9,'string');
+C=str2num(C);
+%setappdata(gcf,'C',C);
+Q=get(handles.edit10,'string');
+Q=str2num(Q);
+%setappdata(gcf,'Q',Q);
+
+
+paramin=str2num(get(handles.edit20,'string'));
+parapas=str2num(get(handles.edit21,'string'));
+paramax=str2num(get(handles.edit22,'string'));
+para=(paramin:parapas:paramax);
+
+save data_precalcul_nat z_amont long ks D h Cd S L pf C Q paramin parapas paramax
+
+%
+% z_amont=getappdata(gcf,'z_amont');
+% ks=getappdata(gcf,'ks');
+% D=getappdata(gcf,'D');
+% h=getappdata(gcf,'h');
+% Cd=getappdata(gcf,'Cd');
+% S=getappdata(gcf,'S');
+% L=getappdata(gcf,'L');
+% pf=getappdata(gcf,'pf');
+% C=getappdata(gcf,'C');
+% Q=getappdata(gcf,'Q');
+
+f=1;
+
+
+
+if Cd==2 ;sigma=1;else sigma=pi/4; end
+alpha=1-(f.*C).^0.5-1/2*sigma.*C;
+g=9.81;
+
+if Q~=0  & pf~=0 & L~=0 & S~=0 & C~=0
+    warning_4a1_1
+end
+
+
+if Q==0
+    N=0;
+    q0=(2*g.*S.*D.*(1-(sigma*C))./(Cd.*C.*(1+N))).^0.5*pf*L;
+  
+    [Q res]=fminsearch(@(Qi) find_Q_nat(z_amont,ks,D,h,Cd,S,L,pf,C,Qi,sigma),q0,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx))
+    set(handles.edit10,'string',num2str(Q))
+    
+elseif pf==0
+    [pf res]=fminsearch(@(pfi) find_Q_nat(z_amont,ks,D,h,Cd,S,L,pfi,C,Q,sigma),h*1.1,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx))
+    set(handles.edit8,'string',num2str(pf))
+    
+elseif L==0
+    [L res]=fminsearch(@(Li) find_Q_nat(z_amont,ks,D,h,Cd,S,Li,pf,C,Q,sigma),10,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx))
+    set(handles.edit7,'string',num2str(L))
+    
+elseif S==0
+    S0=0.1;
+    [S res]=fminsearch(@(Si) find_Q_nat(z_amont,ks,D,h,Cd,Si,L,pf,C,Q,sigma),S0,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx))
+    set(handles.edit6,'string',num2str(S))
+    
+elseif C==0
+    C0=0.1;
+    [C res]=fminsearch(@(Ci) find_Q_nat(z_amont,ks,D,h,Cd,S,L,pf,Ci,Q,sigma),C0,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx))
+    set(handles.edit9,'string',num2str(C))
+    
+end
+
+
+
+
+cote_bas=z_amont-S*long;
+set(handles.edit11,'string',num2str(cote_bas))
+
+Vdeb=Q/L/pf;
+set(handles.edit12,'string',num2str(Vdeb))
+coeff_contraction=0.4*Cd+0.7;
+Vg=Q/L/pf/(1-C^0.5);
+Fr=Vg./(g.*pf).^0.5;
+if Cd==2
+    Vmax=Vg.*(min(coeff_contraction./(1-(Fr.^2)/4),Fr.^(-2/3)));%
+else
+    Vmax=Vg.*(min(coeff_contraction./(1-(Fr.^2)/4),Fr.^(-2/3)));
+end
+
+set(handles.edit16,'string',num2str(Vmax))
+
+P=1000*g*Q/L*S;
+set(handles.edit13,'string',num2str(P))
+
+
+set(handles.edit14,'string',num2str(Fr))
+
+if pf/h<1
+    set(handles.edit15,'string','emergent')
+elseif pf/h<1.1 && pf/h>=1
+    set(handles.edit15,'string','quasi emergent')
+else
+    set(handles.edit15,'string','immerge')
+end
+
+
+
+if pf/h>1.1
+    
+    q_technique=0.955*(pf/h)^2.282*S^0.466*C^(-0.23)*(9.81*h)^0.5.*h*L;
+       set(handles.edit19,'string','NC') 
+       set(handles.edit16,'string','NC')
+else
+    if Cd==2
+        
+        q_technique= 0.648*(pf/D)^1.084*S^0.56*C^(-0.456)*(9.81*D)^0.5.*D*L;
+        V_technique=3.35*(pf/D)^0.27*S^0.53*(9.81*D)^0.5;
+    else
+        q_technique=0.815*(pf/D)^1.45*S^0.557*C^(-0.456)*(9.81*D)^0.5.*D*L;
+        V_technique=4.54*(pf/D)^0.32*S^0.56*(9.81*D)^0.5;
+        
+    end
+    
+ set(handles.edit19,'string',num2str(V_technique)) ;
+end
+set(handles.edit18,'string',num2str(q_technique)) ;
+
+
+
+function edit17_Callback(hObject, eventdata, handles)
+% hObject    handle to edit17 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit17 as text
+%        str2double(get(hObject,'String')) returns contents of edit17 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit17_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit17 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit19_Callback(hObject, eventdata, handles)
+% hObject    handle to edit19 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit19 as text
+%        str2double(get(hObject,'String')) returns contents of edit19 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit19_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit19 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit18_Callback(hObject, eventdata, handles)
+% hObject    handle to edit18 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit18 as text
+%        str2double(get(hObject,'String')) returns contents of edit18 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit18_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit18 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edi5_Callback(hObject, eventdata, handles)
+% hObject    handle to edi5 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edi5 as text
+%        str2double(get(hObject,'String')) returns contents of edi5 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edi5_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edi5 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+% --- Executes on button press in pushbutton2.
+function pushbutton2_Callback(hObject, eventdata, handles)
+% hObject    handle to pushbutton2 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+
+
+maxfun=5000;
+maxiter=5000;
+tolfun=1e-24;
+tolx=1e-24;
+
+
+z_amont=get(handles.edit1,'string');
+z_amont=str2num(z_amont);
+
+long=get(handles.edit17,'string');
+long=str2num(long);
+
+%setappdata(gcf,'z_amont',z_amont);
+ks=get(handles.edit2,'string');
+ks=str2num(ks);
+%setappdata(gcf,'ks',ks);
+D=get(handles.edit3,'string');
+D=str2num(D);
+%setappdata(gcf,'D',D);
+h=get(handles.edit4,'string');
+h=str2num(h);
+%setappdata(gcf,'h',h);
+Cd=get(handles.edit5,'string');
+Cd=str2num(Cd);
+%setappdata(gcf,'Cd',Cd);
+S=get(handles.edit6,'string');
+S=str2num(S);
+%setappdata(gcf,'S',S);
+L=get(handles.edit7,'string');
+L=str2num(L);
+%setappdata(gcf,'L',L);
+pf=get(handles.edit8,'string');
+pf=str2num(pf);
+%setappdata(gcf,'pf',pf);
+C=get(handles.edit9,'string');
+C=str2num(C);
+%setappdata(gcf,'C',C);
+Q=get(handles.edit10,'string');
+Q=str2num(Q);
+%setappdata(gcf,'Q',Q);
+
+
+paramin=str2num(get(handles.edit20,'string'));
+parapas=str2num(get(handles.edit21,'string'));
+paramax=str2num(get(handles.edit22,'string'));
+para=(paramin:parapas:paramax);
+
+save data_precalcul_nat z_amont long ks D h Cd S L pf C Q paramin parapas paramax
+
+
+%
+% z_amont=getappdata(gcf,'z_amont');
+% ks=getappdata(gcf,'ks');
+% D=getappdata(gcf,'D');
+% h=getappdata(gcf,'h');
+% Cd=getappdata(gcf,'Cd');
+% S=getappdata(gcf,'S');
+% L=getappdata(gcf,'L');
+% pf=getappdata(gcf,'pf');
+% C=getappdata(gcf,'C');
+% Q=getappdata(gcf,'Q');
+
+f=1;
+
+
+
+if Cd==2 ;sigma=1;else sigma=pi/4; end
+alpha=1-(f.*C).^0.5-1/2*sigma.*C;
+g=9.81;
+
+if Q~=0  & pf~=0 & L~=0 & S~=0 & C~=0
+    warning_4a1_1
+end
+
+for tt=1:length(para)
+    
+    if D==0
+        
+        N=0;
+        q0=(2*g.*S.*para(tt).*(1-(sigma*C))./(Cd.*C.*(1+N))).^0.5*pf*L;
+        [Qr(tt) res]=fminsearch(@(Qi) find_Q_nat(z_amont,ks,para(tt),h,Cd,S,L,pf,C,Qi,sigma),q0,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx)) ;       
+        
+        Vdeb(tt)=Qr(tt)/L/pf;
+        Vg(tt)=Qr(tt)/L/pf/(1-C^0.5);
+        Fr(tt)=Vg(tt)./(g.*pf).^0.5;
+     
+             
+    elseif Q==0
+          
+        N=0;
+      
+      
+        [pf2(tt) res]=fminsearch(@(pfi) find_Q_nat(z_amont,ks,D,h,Cd,S,L,pfi,C,para(tt),sigma),pf,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx));
+        
+        Vdeb(tt)=para(tt)/L/pf2(tt);
+        Vg(tt)=para(tt)/L/pf2(tt)/(1-C^0.5);
+        Fr(tt)=Vg(tt)./(g.*pf2(tt)).^0.5;
+        
+        
+    elseif pf==0
+          
+        N=0;
+        q0=(2*g.*S.*D.*(1-(sigma*C))./(Cd.*C.*(1+N))).^0.5*para(tt)*L;
+      
+        [Qr(tt) res]=fminsearch(@(Qi) find_Q_nat(z_amont,ks,D,h,Cd,S,L,para(tt),C,Qi,sigma),q0,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx));
+        
+        Vdeb(tt)=Qr(tt)/L/para(tt);
+        Vg(tt)=Qr(tt)/L/para(tt)/(1-C^0.5);
+        Fr(tt)=Vg(tt)./(g.*para(tt)).^0.5;
+       
+        
+    elseif L==0
+          
+        N=0;
+        q0=(2*g.*S.*D.*(1-(sigma*C))./(Cd.*C.*(1+N))).^0.5*pf*para(tt);
+        [Qr(tt) res]=fminsearch(@(Qi) find_Q_nat(z_amont,ks,D,h,Cd,S,para(tt),pf,C,Qi,sigma),q0,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx));
+        
+        Vdeb(tt)=Qr(tt)/para(tt)/pf;
+        Vg(tt)=Qr(tt)/para(tt)/pf/(1-C^0.5);
+        Fr(tt)=Vg(tt)./(g.*pf).^0.5;
+        
+        
+    elseif S==0
+        S0=0.1;
+         
+        N=0;
+        q0=(2*g.*para(tt).*D.*(1-(sigma*C))./(Cd.*C.*(1+N))).^0.5*pf*L;
+        [Qr(tt) res]=fminsearch(@(Qi) find_Q_nat(z_amont,ks,D,h,Cd,para(tt),L,pf,C,Qi,sigma),q0,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx));
+        
+        Vdeb(tt)=Qr(tt)/L/pf;
+        Vg(tt)=Qr(tt)/L/pf/(1-C^0.5);
+        Fr(tt)=Vg(tt)./(g.*pf).^0.5;
+       
+        
+        
+    elseif C==0
+          
+        N=0;
+        q0=(2*g.*S.*D.*(1-(sigma*para(tt)))./(Cd.*para(tt).*(1+N))).^0.5*pf*L;
+        [Qr(tt) res]=fminsearch(@(Qi) find_Q_nat(z_amont,ks,D,h,Cd,S,L,pf,para(tt),Qi,sigma),q0,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx)) ;     
+        
+        Vdeb(tt)=Qr(tt)/L/pf;
+        Vg(tt)=Qr(tt)/L/pf/(1-para(tt)^0.5);
+        Fr(tt)=Vg(tt)./(g.*pf).^0.5;
+       
+        
+    end
+    
+    
+    if Cd==2
+            Vmax(tt)=Vg(tt).*(min(1.6./(1-(Fr(tt).^2)/4),Fr(tt).^(-2/3)));%
+        else
+            Vmax(tt)=Vg(tt).*(min(1.2./(1-(Fr(tt).^2)/4),Fr(tt).^(-2/3)));
+        end
+        
+    
+end
+
+
+
+figure(1)
+subplot(2,1,1)
+hold on
+plot(para,Vg,'k','LineWidth',2)   
+plot(para,Vmax,'k:','LineWidth',2)   
+plot(para,Vdeb,'k-.','LineWidth',2)   
+
+    if D==0        
+     xlabel('Diametre (m)','Interpreter','Latex','FontSize',24) 
+     elseif Q==0
+     xlabel('Débit (m2/s)','Interpreter','Latex','FontSize',24)   
+    elseif pf==0
+    xlabel('Profondeur','Interpreter','Latex','FontSize',24)        
+    elseif L==0
+    xlabel('Largeur','Interpreter','Latex','FontSize',24)
+    elseif S==0
+    xlabel('Pente','Interpreter','Latex','FontSize',24)
+       
+    elseif C==0
+    xlabel('Concentration','Interpreter','Latex','FontSize',24)
+    end
+    
+ ylabel('Vitesse (m/s)','Interpreter','Latex','FontSize',24)
+hleng=legend('Vg','V_{max}','V_{debitant}');
+set(hleng, 'FontName','Times New Roman','FontSize',20)
+set(gca, 'FontSize', 20, 'fontName','Times');
+
+% 
+figure(1)
+subplot(2,1,2)
+hold on
+if Q==0
+ plot(para,pf2,'k','LineWidth',2)   
+else
+plot(para,Qr,'k','LineWidth',2)   
+end
+    if D==0        
+     xlabel('Diametre (m)','Interpreter','Latex','FontSize',24) 
+     elseif Q==0
+     xlabel('Débit (m3/s)','Interpreter','Latex','FontSize',24)   
+    elseif pf==0
+     xlabel('profondeur','Interpreter','Latex','FontSize',24)        
+    elseif L==0
+    xlabel('Largeur','Interpreter','Latex','FontSize',24)
+    elseif S==0
+     xlabel('Pente','Interpreter','Latex','FontSize',24)
+        
+    elseif C==0
+            xlabel('Concentration','Interpreter','Latex','FontSize',24)
+    end
+    
+    
+  if Q==0
+ylabel('Profondeur (m)','Interpreter','Latex','FontSize',24)
+else            
+ylabel('Débit (m3/s)','Interpreter','Latex','FontSize',24)
+  end
+
+%hleng=legend('Débit (m^2/s)');
+%set(hleng, 'FontName','Times New Roman','FontSize',20)
+set(gca, 'FontSize', 20, 'fontName','Times');
+
+
+
+function edit20_Callback(hObject, eventdata, handles)
+% hObject    handle to edit20 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit20 as text
+%        str2double(get(hObject,'String')) returns contents of edit20 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit20_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit20 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit21_Callback(hObject, eventdata, handles)
+% hObject    handle to edit21 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit21 as text
+%        str2double(get(hObject,'String')) returns contents of edit21 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit21_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit21 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
+
+
+
+function edit22_Callback(hObject, eventdata, handles)
+% hObject    handle to edit22 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    structure with handles and user data (see GUIDATA)
+
+% Hints: get(hObject,'String') returns contents of edit22 as text
+%        str2double(get(hObject,'String')) returns contents of edit22 as a double
+
+
+% --- Executes during object creation, after setting all properties.
+function edit22_CreateFcn(hObject, eventdata, handles)
+% hObject    handle to edit22 (see GCBO)
+% eventdata  reserved - to be defined in a future version of MATLAB
+% handles    empty - handles not created until after all CreateFcns called
+
+% Hint: edit controls usually have a white background on Windows.
+%       See ISPC and COMPUTER.
+if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
+    set(hObject,'BackgroundColor','white');
+end
diff --git a/doc/scilab_tests/macrorugo_find_Q_nat.sci b/doc/scilab_tests/macrorugo_find_Q_nat.sci
new file mode 100644
index 00000000..b5492633
--- /dev/null
+++ b/doc/scilab_tests/macrorugo_find_Q_nat.sci
@@ -0,0 +1,116 @@
+function [res]=find_Q_nat(Q,ks,D,h,Cd0,S,L,pf,C,sigma,bDbg)
+    if bDbg then
+        printf('*************************************\n')
+        print_r('Q')
+    end
+    //fonction pour ax=ay
+
+    maxfun=5000;
+    maxiter=5000;
+    tolfun=1e-16;
+    tolx=1e-16;
+    opt = optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'TolFun',tolfun,'TolX',tolx)
+    g=9.81;
+    kappa=0.41;
+    U0=Q./L./pf;
+    if(bDbg) then print_r("U0"); end;
+
+    Fr=U0./(9.81*pf).^0.5;
+    Frg=Fr/(1-C^0.5);
+
+    if ks==0;ks=1e-34;end
+
+    coeff_contraction=0.4*Cd0+0.7;
+
+    //if Cd0==2
+    //   fFr=(min(2.5,Frg^(-4/3)));//
+    //else
+    fFr=(min(coeff_contraction./(1-(Frg.^2)/4),Frg.^(-2/3))).^2;
+    //end
+
+    if Frg>1.5
+        fFr=(Frg.^(-2/3)).^2;
+    end
+
+    if(bDbg) then print_r("fFr"); end;
+
+    alpha=1-(1.*C).^0.5-1/2*sigma.*C;
+    Cd=Cd0.*(1+1./(pf./D).^2).*fFr;
+
+    //Cd=Cd0.*(0.8-2*C).*(1+0.4./(pf./D).^2).*fFr;
+    R=(1-sigma*C);//%.*(1-C.^0.5).^2;
+
+
+    if pf/h>1.1; //fFr=1;
+
+        choixturb=1;
+        htilde=h./D;
+        hstar=pf./h;
+        Rh=h.*(hstar-1);
+        ustar=(g.*S.*Rh).^0.5;
+        if bDbg then print_r('ustar'); end;
+
+        Cd1=Cd0.*(1+0.4./(pf./D).^2).*fFr;
+        CdCh=Cd1.*C.*htilde;
+        if bDbg then print_r('CdCh'); end;
+
+        Cf=2./(5.1.*log10(h./ks)+6).^2;
+        U0b=(2*g.*S.*R./(Cd1.*C.*h./D+Cf.*R).*h).^0.5;
+        if bDbg then print_r('U0b'); end;
+        
+        // U0=(2*g.*S.*D.*R./(Cd1.*C)).^0.5;
+
+        //[P]=fminbnd(@(alphai) resolve_alpha(alphai,CdCh,R,U0b,hstar,h,C,D,Cd1,ustar,choixturb),1e-5*h,h,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx));
+        //alpha=P(1);
+        [alpha fval] = fminsearch(list(resolve_alpha, CdCh,R,U0b,hstar,h,C,D,Cd1,ustar), h/10, opt)
+        if bDbg then print_r('alpha'); end;
+        beta2=h.*CdCh./alpha./R;
+        beta=(beta2).^0.5;
+        a1=beta*(hstar-1)/(cosh(beta));
+        c=1;
+
+        UhU0=(a1*sinh(beta)+c)^0.5;
+        Uh=UhU0*U0b;
+        if bDbg then print_r('Uh'); end;
+
+        dhp=1-1/kappa*alpha./h.*Uh./ustar;
+        z0hp=(1-dhp).*exp(-1*(kappa*Uh./ustar));
+
+        qsup=ustar./kappa.*h.*((hstar-dhp).*(log((hstar-dhp)./z0hp) - 1)-((1-dhp).*(log((1-dhp)./z0hp) - 1)));
+        if bDbg then print_r('qsup'); end;
+        //calcul intégrale dans la canopée----
+        dzinf=0.01;
+        Zinf=(0:dzinf:1);
+        Uinf = U0b.*(beta.*Rh./h.*sinh(beta*Zinf)./cosh(beta)+1).^0.5;
+        Ub=zeros(Uinf);
+        Ub(1:$-1)=Uinf(2:$);
+        qinf=sum((Uinf(1:$-1)+Ub(1:$-1))/2*dzinf.*h);
+        if bDbg then print_r('qinf'); end;
+        qtot=qinf+qsup;
+
+        PI=0;
+        delta=1;
+
+        Umoy=qtot./pf;
+        res=abs(U0-Umoy);
+
+    else
+
+        hstar=pf/D;
+        Re=U0.*pf/1e-6;
+
+        if ks==0
+            Cf=0.3164/4.*Re.^(-0.25);
+        else
+            Cf=2/(5.1*log10(pf/ks-1)+6)^2;
+        end
+
+        N= (alpha.*Cf)./(pf./D.*Cd.*C);
+
+        res=abs(U0-(2*g.*S.*D.*(R)./(Cd.*C.*(1+N))).^0.5);
+
+
+
+    end
+
+endfunction
diff --git a/doc/scilab_tests/macrorugo_find_Q_nat2.sci b/doc/scilab_tests/macrorugo_find_Q_nat2.sci
deleted file mode 100644
index 04275b15..00000000
--- a/doc/scilab_tests/macrorugo_find_Q_nat2.sci
+++ /dev/null
@@ -1,118 +0,0 @@
-function [res]=find_Q_nat2(Q,ks,D,h,Cd0,S,L,pf,C,sigma,bDbg)
-
-//fonctin pour ax=ay
-
-
-maxfun=5000;
-maxiter=5000;
-tolfun=1e-16;
-tolx=1e-16;
-g=9.81;
-kappa=0.41;
-U0=Q./L./pf;
-if(bDbg) then print_r("U0"); end;
-
-Fr=U0./(9.81*pf).^0.5;
-Frg=Fr/(1-C^0.5);
-
-
-coeff_contraction=0.4*Cd0+0.7;
-
-//if Cd0==2
- //   fFr=(min(2.5,Frg^(-4/3)));//
-//else
-    fFr=(min(coeff_contraction./(1-(Frg.^2)/4),Frg.^(-2/3))).^2;
-//end
-
-if Frg>1.5
-    fFr=(Frg.^(-2/3)).^2;
-end
-
-if(bDbg) then print_r("fFr"); end;
-
-alpha=1-(1.*C).^0.5-1/2*sigma.*C;
-//Cd=Cd0.*(1+1./(pf./D).^2).*fFr;
-
-Cd=Cd0.*(0.8-2*C).*(1+0.4./(pf./D).^2).*fFr;
-R=(1-sigma*C).*(1-C.^0.5).^2;
-
-
-if pf/h>1.1; fFr=1;
-    
-    choixturb=1;
-    htilde=h./D;
-    hstar=pf./h;
-    Rh=h.*(hstar-1);
-    ustar=(g.*S.*Rh).^0.5;
-    CdCh=Cd0.*(1+0.4./(pf./D).^2).*C.*htilde;
-    u0=(2*g.*S.*D.*R./(Cd0.*C)).^0.5;
-   // [P]=fminbnd(@(alphai) resolve_alpha(alphai,CdCh,R,u0,hstar,h,C,D,Cd0,ustar,choixturb),1e-5*h,h,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx));
-    
-    
-    //[P]=fminbnd(@(alphai) resolve_alpha(alphai,CdCh,R,u0,hstar,h,C,D,Cd0,ustar,choixturb),1e-5*h,h);
-    [alpha fval] = fminsearch(list(resolve_alpha, CdCh,R,u0,hstar,h,C,D,Cd0,ustar), 1e-5*h)    
-    
-    beta2=h.*CdCh./alpha./R;
-    beta2=(beta2).^0.5;
-    a1=beta2*(hstar-1)/(cosh(beta2));
-    c=1;
-    UhU0=(a1*sinh(beta2)+c)^0.5;
-    Uh=UhU0*u0;
-    dhp=1-1/kappa*alpha./h.*Uh./ustar;
-    z0hp=(1-dhp).*exp(-1*(kappa*Uh./ustar));
-    qsup=ustar./kappa.*h.*((hstar-dhp).*(log((hstar-dhp)./z0hp) - 1)-((1-dhp).*(log((1-dhp)./z0hp) - 1)));
-    
-    //calcul intégrale dans la canopée----
-    
-    U(1)=u0;
-    U(2)=u0.*(beta2.*Rh./h.*sinh(beta2*0.1)./cosh(beta2)+c).^0.5;
-    U(3)=u0.*(beta2.*Rh./h.*sinh(beta2*0.2)./cosh(beta2)+c).^0.5;
-    U(4)=u0.*(beta2.*Rh./h.*sinh(beta2*0.3)./cosh(beta2)+c).^0.5;
-    U(5)=u0.*(beta2.*Rh./h.*sinh(beta2*0.4)./cosh(beta2)+c).^0.5;
-    U(6)=u0.*(beta2.*Rh./h.*sinh(beta2*0.5)./cosh(beta2)+c).^0.5;
-    U(7)=u0.*(beta2.*Rh./h.*sinh(beta2*0.6)./cosh(beta2)+c).^0.5;
-    U(8)=u0.*(beta2.*Rh./h.*sinh(beta2*0.7)./cosh(beta2)+c).^0.5;
-    U(9)=u0.*(beta2.*Rh./h.*sinh(beta2*0.8)./cosh(beta2)+c).^0.5;
-    U(10)=u0.*(beta2.*Rh./h.*sinh(beta2*0.9)./cosh(beta2)+c).^0.5;
-    U(11)=Uh;
-    
-    Ub=zeros(U);
-    Ub(1:$-1)=U(2:$);
-    qinf=sum((U(1:$-1)+Ub(1:$-1))/2*0.1.*h);
-    qtot=qinf+qsup;
-    PI=0.2;
-    delta=1;
-    Umax=ustar./kappa*(log((delta*(h-h)-dhp*h)/(z0hp*h))+2*PI);
-    Umoy=qtot./pf;
-    res=abs(U0-Umoy);
-    
-else
-    
-    hstar=pf/D;
-    Re=U0.*pf/1e-6;
-    
-    if ks==0
-        Cf=0.3164/4.*Re.^(-0.25);    
-    else
-        Cf=2/(5.1*log10(pf/ks-1)+6)^2;        
-    end    
-    
-   if(bDbg) then print_r("Cf"); end;
-   
-   
-//[u res]=fminsearch(@(U0i) find_U0_complet(U0i,pf,C,D,sigma,Cd0,Cf,coeff_contraction,S),U0,optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'Tolfun',tolfun,'TolX',tolx));
-[u res] = fminsearch ( list(find_U0_R0,pf,C,D,sigma,Cd0,Cf,coeff_contraction,S) , U0 )
-
-
-   // N= (alpha.*Cf)./(pf./D.*Cd.*C);
-
-   // res=abs(U0-(2*g.*S.*D.*(R)./(Cd.*C.*(1+N))).^0.5);
-    
-    
-    res=abs(U0-u);
-    
-    
-    
-end
-
-endfunction
diff --git a/doc/scilab_tests/macrorugo_resolve_alpha.sci b/doc/scilab_tests/macrorugo_resolve_alpha.sci
index 3c68729b..877ee789 100644
--- a/doc/scilab_tests/macrorugo_resolve_alpha.sci
+++ b/doc/scilab_tests/macrorugo_resolve_alpha.sci
@@ -1,6 +1,8 @@
 function [res]= resolve_alpha(alpha,CdCh,R,U0,hstar,hp,C,D,Cd,ustar)
 
-
+if bDbg then
+    printf('resolve_alpha(alpha=%f,CdCh=%f,R=%f,U0=%f,hstar=%f,hp=%f,C=%f,D=%f,Cd=%f,ustar=%f)\n',alpha,CdCh,R,U0,hstar,hp,C,D,Cd,ustar)
+end
 g=9.81;
 kappa=0.41;
 
@@ -41,5 +43,8 @@ Uh=UhU0*U0;
 
 
 res=abs(alpha*Uh-L1*ustar);
+if bDbg then
+    printf('resolve_alpha res=%f\n',res)
+end
 
 endfunction
diff --git a/doc/scilab_tests/macrorugo_resultats_complementaires.sci b/doc/scilab_tests/macrorugo_resultats_complementaires.sci
index 6a9f5c25..b9b27753 100644
--- a/doc/scilab_tests/macrorugo_resultats_complementaires.sci
+++ b/doc/scilab_tests/macrorugo_resultats_complementaires.sci
@@ -11,40 +11,33 @@ function macrorugo_resultComp(z_amont, S, long, Q, L, pf, C, Cd, h, D)
     Vg=Q/L/pf/(1-C^0.5);
     Fr=Vg./(g.*pf).^0.5;
     print_r("Fr");
-    if Cd==2
-        Vmax=Vg.*(min(1.6./(1-(Fr.^2)/4),Fr.^(-2/3)));%
-    else
-        Vmax=Vg.*(min(1.2./(1-(Fr.^2)/4),Fr.^(-2/3)));
-    end
-
-    print_r("Vmax");
 
     P=1000*g*Q/L*S;
     print_r("P");
 
     if pf/h<1
         flowcond = 'emergent'
-    elseif pf/h<1.1 & pf/h>=1
+    elseif pf/h<1.1 && pf/h>=1
         flowcond = 'quasi emergent'
-    elseif pf/h>1.2
+    else
         flowcond = 'immerge'
     end
     print_r("flowcond");
-
+    
     if pf/h>1.1
-
-        q_technique=0.955*(pf/h)^2.282*S^0.466*C^(-0.23)*(9.81*D)^0.5.*h*L;
+        q_technique=0.955*(pf/h)^2.282*S^0.466*C^(-0.23)*(9.81*h)^0.5.*h*L;
     else
+        coeff_contraction=0.4*Cd+0.7;
         if Cd==2
-
             q_technique= 0.648*(pf/D)^1.084*S^0.56*C^(-0.456)*(9.81*D)^0.5.*D*L;
             V_technique=3.35*(pf/D)^0.27*S^0.53*(9.81*D)^0.5;
+            Vmax=Vg.*(min(coeff_contraction/(1-(Fr.^2)/4),Fr.^(-2/3)));
         else
             q_technique=0.815*(pf/D)^1.45*S^0.557*C^(-0.456)*(9.81*D)^0.5.*D*L;
             V_technique=4.54*(pf/D)^0.32*S^0.56*(9.81*D)^0.5;
-
+            Vmax=Vg.*(min(coeff_contraction/(1-(Fr.^2)/4),Fr.^(-2/3)));
         end
-
+        print_r("Vmax");
         print_r("V_technique");
     end
     print_r("q_technique");
diff --git a/doc/scilab_tests/macrorugo_searchQ.sci b/doc/scilab_tests/macrorugo_searchQ.sci
new file mode 100644
index 00000000..e9c3656c
--- /dev/null
+++ b/doc/scilab_tests/macrorugo_searchQ.sci
@@ -0,0 +1,26 @@
+function macrorugo_searchQ(ks, D, k, Cd0, S, B, h, C, z_amont, long, bDbg)
+    printf("ks=%f\n", ks)
+    printf("D=%f\n", D)
+    printf("k=%f\n", k)
+    printf("Cd0=%f\n", Cd0)
+    printf("S=%f\n", S)
+    printf("B=%f\n", B)
+    printf("h=%f\n", h)
+    printf("C=%f\n", C)
+
+    maxfun=5000;
+    maxiter=5000;
+    tolfun=1e-24;
+    tolx=1e-24;
+    if bDbg then
+        maxiter=1
+    end
+    opt = optimset('MaxIter',maxiter,'MaxFunEvals',maxfun,'TolFun',tolfun,'TolX',tolx)
+    if Cd0==2; sigma=1; else sigma=%pi/4; end
+    g=9.81
+    N=0;
+    q0=(2*g.*S.*D.*(1-(sigma*C))/(Cd0.*C.*(1+N))).^0.5*h*B;
+    [Q fVal, exitflag, outputs] = fminsearch(list(find_Q_nat, ks,D,k,Cd0,S,B,h,C,sigma,bDbg), q0, opt);
+    printf("Q=%f  fVal=%f\n",Q, fVal);
+    macrorugo_resultComp(z_amont, S, long, Q, B, h, C, Cd0, k, D)
+endfunction
diff --git a/doc/scilab_tests/main_macrorugo.sce b/doc/scilab_tests/main_macrorugo.sce
index 29ca61fb..b14271cd 100644
--- a/doc/scilab_tests/main_macrorugo.sce
+++ b/doc/scilab_tests/main_macrorugo.sce
@@ -3,46 +3,39 @@ clear
 sCurrentPath = get_absolute_file_path("main_macrorugo.sce");
 getd(sCurrentPath);
 
+bDbg = %f;
+
 // Tests parameters
-ks = 0.01
-Cd0=1.5
-S = 0.05
-C = 0.05;
-D = 0.5;
-sigma = 1;
-B = 1
-z_amont = 12.5;
-long = 6;
+ks = 0.01 // Rugosité de fond (m)
+Cd0=1.5 // Forme
+S = 0.05 // Pente
+C = 0.13; // Concentration
+D = 0.5; // Diamètre
+B = 1 // Largeur
+z_amont = 12.5; // Cote amont (m)
+long = 6; // Longueur rampe (m)
 
 // *****************************************************************************
-printf("\n*** Emergent conditions ***\n")
+printf("\n*** Emergent conditions Cd=1.5***\n")
 // *****************************************************************************
 h = 0.6
-k = 0.8
-
-// Test de find_U0_R0
-Cf=2/(5.1*log10(h/ks-1)+6)^2
-coeff_contraction=0.4*Cd0+0.7
-res = find_U0_R0(2.58, h, C, D, sigma, Cd0, Cf, coeff_contraction, S)
-printf("find_U0_R0=%f\n",res);
-
-// Test de find_Q_nat2
-[Q fVal] = fminsearch(list(find_Q_nat2, ks,D,k,Cd0,S,B,h,C,sigma,%f), 0.1);
-printf("Qemerg=%f  fVal=%f\n",Q, fVal);
-res = find_Q_nat2(Q,ks,D,k,Cd0,S,B,h,C,sigma,%t)
-printf("find_Q_nat2=%f\n",res);
-macrorugo_resultComp(z_amont, S, long, Q, B, h, C, Cd0, k, D)
+k = 0.7
+Cd0 = 1.5
+macrorugo_searchQ(ks, D, k, Cd0, S, B, h, C, z_amont, long, bDbg)
 
+// *****************************************************************************
+printf("\n*** Emergent conditions Cd=2***\n")
+// *****************************************************************************
+h = 0.6
+k = 0.7
+Cd0 = 2
+macrorugo_searchQ(ks, D, k, Cd0, S, B, h, C, z_amont, long, bDbg)
 
 // *****************************************************************************
 printf("\n*** Submerged conditions ***\n")
 // *****************************************************************************
-k = 0.6
+k = 0.7
 h = 0.8
-
-[Q fVal] = fminsearch(list(find_Q_nat2, ks,D,k,Cd0,S,B,h,C,sigma,%f), 0.1);
-printf("Qsubmerg=%f  fVal=%f\n",Q, fVal);
-res = find_Q_nat2(Q,ks,D,k,Cd0,S,B,h,C,sigma,%t)
-printf("find_Q_nat2=%f\n",res);
-macrorugo_resultComp(z_amont, S, long, Q, B, h, C, Cd0, k, D)
+Cd0 = 1.5
+macrorugo_searchQ(ks, D, k, Cd0, S, B, h, C, z_amont, long, bDbg)
 
diff --git a/doc/scilab_tests/print_r.sci b/doc/scilab_tests/print_r.sci
index 918fceb2..0c333643 100644
--- a/doc/scilab_tests/print_r.sci
+++ b/doc/scilab_tests/print_r.sci
@@ -1,5 +1,5 @@
 function print_r(s)
-    e = eval(s)
+    e = evstr(s)
     if typeof(e) == "string" then
         pat = "s"
     else
-- 
GitLab