From 0d3397bac222911c268d539631e303252f4d8bd3 Mon Sep 17 00:00:00 2001 From: Tomas Petricek Date: Tue, 31 Jul 2018 15:17:54 +0100 Subject: [PATCH 1/2] Add template --- server/data-store/src/config.fs.template | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 server/data-store/src/config.fs.template diff --git a/server/data-store/src/config.fs.template b/server/data-store/src/config.fs.template new file mode 100644 index 00000000..d71dabab --- /dev/null +++ b/server/data-store/src/config.fs.template @@ -0,0 +1,2 @@ +module Config +let WrattlerDataStore = "DefaultEndpointsProtocol=https;AccountName=(...);AccountKey=(...);EndpointSuffix=core.windows.net" \ No newline at end of file From eddf0240163ee0a5258d5789942e08d3e2e7c187 Mon Sep 17 00:00:00 2001 From: Tomas Petricek Date: Tue, 31 Jul 2018 16:39:14 +0100 Subject: [PATCH 2/2] Start data store properly (fixes #21) --- docker-compose.yml | 6 +- .../data-store/.paket/Paket.Restore.targets | 86 +++++++++++++++--- .../data-store/.paket/paket.bootstrapper.exe | Bin 13360 -> 64296 bytes server/data-store/Dockerfile | 3 +- server/data-store/build.fsx | 10 +- 5 files changed, 83 insertions(+), 22 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 1c70aa88..dcdab38a 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -5,7 +5,7 @@ services: context: client dockerfile: Dockerfile ports: - - "8080:8080" + - "8080" depends_on: - wrattler_python_service - wrattler_data_store @@ -17,7 +17,7 @@ services: context: server/python dockerfile: Dockerfile ports: - - "7101:7101" + - "7101" environment: - FLASK_CONFIGURATION=default - DATASTORE_URI=http://wrattler_wrattler_data_store_1:7102 @@ -29,7 +29,7 @@ services: context: server/data-store dockerfile: Dockerfile ports: - - "7102:7102" + - "7102" networks: - wrattler_nw diff --git a/server/data-store/.paket/Paket.Restore.targets b/server/data-store/.paket/Paket.Restore.targets index fb84d00c..6be03acb 100644 --- a/server/data-store/.paket/Paket.Restore.targets +++ b/server/data-store/.paket/Paket.Restore.targets @@ -18,6 +18,14 @@ $(PaketToolsPath)paket.exe "$(PaketExePath)" $(MonoPath) --runtime=v4.0.30319 "$(PaketExePath)" + + + <_PaketExeExtension>$([System.IO.Path]::GetExtension("$(PaketExePath)")) + dotnet "$(PaketExePath)" + + + "$(PaketExePath)" + $(PaketRootPath)paket.bootstrapper.exe $(PaketToolsPath)paket.bootstrapper.exe "$(PaketBootStrapperExePath)" @@ -30,27 +38,56 @@ true - + true - $(NoWarn);NU1603 + $(NoWarn);NU1603;NU1604;NU1605;NU1608 + + + + + /usr/bin/shasum "$(PaketRestoreCacheFile)" | /usr/bin/awk '{ print $1 }' + /usr/bin/shasum "$(PaketLockFilePath)" | /usr/bin/awk '{ print $1 }' + + + + + + + + + + + - $([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)')) - $([System.IO.File]::ReadAllText('$(PaketLockFilePath)')) + + $([System.IO.File]::ReadAllText('$(PaketRestoreCacheFile)')) + $([System.IO.File]::ReadAllText('$(PaketLockFilePath)')) true false true + + true + + + + + + + + + $(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).paket.references.cached @@ -59,7 +96,9 @@ $(MSBuildProjectDirectory)\$(MSBuildProjectName).paket.references $(MSBuildProjectDirectory)\paket.references - $(MSBuildProjectDirectory)\obj\$(MSBuildProjectFile).$(TargetFramework).paket.resolved + + false + true true references-file-or-cache-not-found @@ -78,30 +117,39 @@ - + true - target-framework '$(TargetFramework)' + target-framework '$(TargetFramework)' or '$(TargetFrameworks)' files @(PaketResolvedFilePaths) - + + - + + false + true + + - + - + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0]) $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4]) %(PaketReferencesFileLinesInfo.PackageVersion) + All + runtime + true @@ -123,9 +171,10 @@ + @@ -136,15 +185,21 @@ + + <_NuspecFilesNewLocation Include="$(BaseIntermediateOutputPath)$(Configuration)\*.nuspec"/> + + $(MSBuildProjectDirectory)/$(MSBuildProjectFile) true false true + $(BaseIntermediateOutputPath)$(Configuration) + $(BaseIntermediateOutputPath) - <_NuspecFiles Include="$(BaseIntermediateOutputPath)*.nuspec"/> + <_NuspecFiles Include="$(AdjustedNuspecOutputPath)\*.nuspec"/> @@ -153,6 +208,7 @@ + Qgvn%)MGzE`071eIVH3qLBm;~ldGSrcB7&i= zb!oL$TesGwU#)Gab!pXFck5ES*i~&Um1?zUty)`cYsLTPoO|EQWTEZ%`}+rT=ALuU zJ@?#m&pr3t``*N58?PXXhf)8c)^OcaJSPLZ_3LHPSm1Twh%2fELwcodmFvp zUZDw;V@xLcH7G$v-TDuFhPiCucdja%N^hpx4ESd*>Or4)gfOnn7Z4T7f9X$+DsC!) z+!azbXiQ272(J@GM&mPVP%b`R{*b6b`2I@}Cd$fS%>uqC18?e!@9G2I^%4N;WUSCT z^CwKSxyens9Uv;*Fg6zYaweBpV{Vfh?{dJ%y0Xq}1A1*3-@L&T=)`u#59?-up~I zGi>LW0cQ?A&492wvr&!~Pxeu@8cI85XqPh$Zes`ShFnvWvYiD|b$g0kSCoo6miv&`CMV#v2{@Q`i2LQxHX#ST zWk;bG>sOCY%t?{uzRiqzsH$nqt+m{2L!(30;BooIr!a45mzwaPJ-X=_42|c_wCvCZ z%b5U+*r#AhK~s}x*&fxI2pW9KqDPKF#tkx8mK)Dtl(J&9+%r=>vPPI;m{e#YRZWi-35Z2`EXTsn z;Z(58?sQ9ys3sw29!uG`0l~7SF;u&6JqkzcLWAriyee2Tz%>#0YCTLp-m=vIOxwK( z5+ikBaWH#9J-@eSb|Z+_4NtSR@07va6s5c28tDd3Gc({GVCis&V903z%+2~tV$8HL zS)uE&j2c0JV`ZmTj}_2%l{pSgooAIgP2h6xVllE3N=(l^nWosIrsh)~?IEIa^mJ1N zsAE_ToU(Up1e;DUIu>^2J;8=uBU3;L+L5XFFr8_D&anXduvukVa}*DAIx1=gxQ4?{ zedIXcIR{}>+ja_2emM{&1KW`a$tTWNI~%VF%)P`*rB2X&8tU7TY$yHf@dbPeRLIZ+#6eWwHQP8&bBA)xqhFa5^1yS}9yTqFi4uka#d8WOG zS)3D49W9ad0e|6brYJdD%Q#JBOg1?z2RVk-Ls02pL8Bmu`8bRRos*Qbd1j+6VLxiJ z`vjvj7Hj!F$j9i4%t$k6jpgpE7;xxv!~&zH)Vw9KiAM&%?u}9sx&(uk=^zv#;M>l8 z;0J?Q4R)3?sf4Ovqy^;X5$ue}LX=9KlL0x(*7H)S&j~bExGmc}>EJB*sM$_OWFx z0d$rET!s~5M3$i>Qwgu)@xwbJ%kgPPZ!;aZUC@0AD!A_eI4gl746Nc0D^d)Voz*Bu zpE4tD`0T?5X4ELwHNa~^&RYI373(@KmpNGPD(-=W6)rN9Sn+V`QAPyP?1rL%?O=$| z2fiC@FayyDTq2mG$uN5aGmDCnXjT%F6Re4x4(MQq;Vw7h18c^lv5?O{mL8WS<2q>7 z9wcZVV>a=B<|!;B3-Q!of5^vNWA2Kq#$0!_h2;$Cb|`8&5q$0gqE;GuM%*f6x7)%! z4{!}<0`>c#NhVJ@^K=Lg*X-LoxO!~5nrnEa)yw)HMNS;88gtxksFB=?^4X@}`8L$Z zkwB1}6>zqJ8rcru-U+6C36z{O0P@^>fO~FiYd8KaXr4P|-%=CuE4rPnVokB{U`g7U z0}V(zBvKUlu%MNn-AZddRDNdCjnruvm_ni^x7bI$1MqHN^kFk{CKNEoL@)!knS{gH zkuolFZdD&aeDR8tP>hZ@_h87r=mgW+D+Lh1s0dO30TZGKQUC!df+9!(1guv@kOByZ zNQxi@5HJ))kOBw@eu^Lk5Q;p46pq&ev3S?9qZ`eB#L=-eje%N~_$8xE-eHcp91e_F zQJHsRO{g+>quN1uGm$)FEb>My56*>)EQ#DmD$OC5I?~7 zQo19?5qc~NVJ^=_l`{a4+z+s?1Wb`np%gq=k>jpMb5DtYa~{YlmLDX$(X^tW%du_1 zjoe4TcZ9fapB;4RkDu53u6gH_t6>%coYvLnG>I%(upDYRI-ir;OPc z+E8ySj$bL#WV%F~?7Sz;ix0g-y@JDew5l!aJ|wNzx9&Sy|-Iao=-4bEqo(~?b9 zB};jx`!{s%T)`F5Qi!yQeWk_z`sqc!BENGb$i=o@WLJid7@LD!$mT)-g$XF+aN#sA z6!}9Niv2}?cma1c^-;Sa$E=*7bgRz|G-kv7bT7H3dG#x;EG0cq6sSCHnw=fmkXL^k z$`huIH?u>L8L(<;dUR${K#M9ivrD~NkC+wOkej8(IQ4cj+m?E}Av>jj>`TjGPk2vJ z_!AV8pM#c|D;ON>zcS#!T3G&Kt%hujS9ND+ar%aEjEO)7e=wMi&9=&Jl%Me0uRl@w zE}vJigUXK&W6Ltl#i0#rLQ!*Z>14As>cbePn2X13YAmoSPeb8U=PF3At)C<)W>^y} zpHjjsMPsQ`jKE9bBs|YNlwzLeMmza=2#E^BxOfs|j5(z+cd1P3%x{3(OigQ6V?Ix8 zQx?x^lNrj*nguVWQ9ev+WEMud(<;?YFUPYWiu zIgQScF2r%Bg-UZ_$&;X&b2UJ~xdyPdzF4~Oh4SjNQ|&x=QhlCu@+Y5slGPA`r@+6& zSeb%kD?<*X_7o{#Pr)Xr2vPt6>6#))0R$u-iXa6L#(M-QfKcfXqyR$LBS-;+Dvuxq zS+@vl1h+z7dnU$bhBz0sP00`3q>c(U+f)4@wMkKf=oAJQN26 zb&U}yl~5S9L*CBXpf}ZhNVQaI6+_{OJ)U!?Yq^5~uHmCdJ)hz^aB?3fqmR+Bf#qBe zrj)qjZye*?07B5_Q{F_o^g40W(kW#=lp{By$_}Z|(~IP6f)hs zeCoB-7!iDfdI*S;b_g5ymqBW1bF07yRTkcqTm{wvu8fxNo5&yI%>ntG8d-y?vLn9IBSv%{ww^oC zpfWeaxwIXPnyF%{E`Lm_&MPk0?IK@8V_iMN%*5tsj`3xxajof<7H77NV8ZR_RMk`= z3q?WSF$T`rigLOLwjy6gXJ!O(Cn!bupG{K@Bw?7xWF?#^7=9Ofc;o;$_SIm}&Nopi zIbz4rN%Br^_bq@VOoYq9$X!gh8z7)kS`%cszKb9kz|nXLVB~m!Tx7aw<}AK%u=jRA zzP*Q`69(Rpvyb!U$YzwInvURMi!6=TGM*2=Ziu*RF^OIp;eMNERLK$^7fPwDLQ|13 z*t&>l;uR5k?8r8NJoiCJ$aY?5!o57K(^1OKXdJ-d8aKFh^4nay6}50cJ|{t6f^_6; za2C5^y}Au@PGm{V;B9CbWWVo#l)+;11(+Q;I7*yi3&o-f~CxPlKi7_flP_V0!9e6Y*}w#_el62xQ&-im3xBcoBagw;kXyWa1<4Z3O>Dux%P`sbuc?G06|=Vtd~Fp4uo9s&W` z*B-G$dX&!N=m^bh=V36oD~i%bOQhJis<53$xMg5eAo3^*mnATHs%zu{x@$O!-B95^ zh{k-X*S#P&coN9WGq6Op@>$uDb3m&1bJA}YXBA~RXQ9wgq6M`u67VYh!d#qPlvR|? zClIIB6?DBeyF&>9_Ew?z;@#fZEkpj-H^yY ziVNK@qet&%Lf1fhoBgPehYWXT&5H_^oxC2na|ucwK^$7v0e6X=s<@!2pdl+zl+XSe zJeXTt6eucEWr{W<{_xK+_zhs)&%p1^DC1BC*Gto103Epn$2-IyADxZzSdI~wp%aNJ z$={-6@=c%3*D*MXrK(K6%|zWvfXR=gm}1NEHRJ?x10~L3(Cb5%V79`tv3&%jm}T;n zAVl!MB3MUubfMK?no(2r{bQ!=D=_4NPeX~K`hdfYf=M4@RMf=Ijx`k=sDZ`!&ZU+= z`OZZOAWZTIQUD?15u^Y@okx%Y2#A@k_Xtt|p}`|aLGqTnVc81U&gw@XHiLF! zp=*!E72^hgB$gL0xo`z>CWd4SY#ObwT-@mjA%f)^j0T);VPVKD{3$G4@K_vSVaP1} zDJ)#@Sau2v!^qQ++i+rlFFR~~?Qbi@C(i&lMz%KuM_IUW&^n}BJI^SsI4ao^o2H@5 ze!&>3gD%cp0jX@PP)rRaipkxK;cK2yRMjzRa^p>dh>hcQXcspo6j3NylUV9S(D zYc}~x3mC&`(@eh6@(hHl;j{tO;76H}bjL!9O5SbK)##UhRA1rC;YJ%(PcaYSE>Z~h z(`c2}BVXg9^DKs$s!XOUxj49z70@lYIJlA()|FgTmGFP~woTbk3TakR`cANs?*!{_ zbbf%|gE(BI&LB;SmJ|3)A{WPy(3CMaaty5neR4piy?*ov)uHS1)Q*Qcu&mO_7;IJm z=a=Wum(vC1Kn*D>PBTL7QPeStI!04_h00n?4oDI(VsDUqK93kVCQB~!G_wL_*YVvT zh}nE)h)VipJziN~*B1_~)kQVtdK=MLpTw^-t@`vWVe~>t5 zKUc}k9ba5>9tw>pENcNt>QQ6a0NU9OLlt7MSkojgZhQ*W2u_ioK$pf*wv&lBm?13Z zL6jjJjV1?#Opc*48YT329M7W{ydjY8h6$0M0z@C)HyQI#(^y-}uAola*wJv>#WH2UqE^2qfGrQvxu_G)&18QBgpqTFLDRvk(c;m zym~Ygt+jmq$geeJx&HhOe@?JWIWC~!iZUELFad3Jf%vN6PI+TXIO8LSF?vP#N41{v#5V$ZNoIaI4&KpGv{^A)WC> z{s3y@|G1CyN_rjTv-#O!Av(s>)lelhac)yz+te<8>BLj1wI<(|?6FgXthdmg%-55p_c(a}3)`rrl zb3mn~f#5-&5Pep~^MC@X$Ef6aBD{nqLhim}p{b<~rtd&4gffH=1ctA(_)7P&46&9H z3lFgUyeg5uX=bG7SS;MoZ`u4x7&kS>q%}g*QdmU} zr23S%3L@{KiyVH|)eM1hN2{MBi5FOScS?>%O0#^QXM(Zra~RK1=SjZDv+vF?8)TiK z!_3v@lriUJj+q}VWyz?Ee5GfUI)8zr;4dL;kmocYiBi+VuHk-R@L+kaXWjs5 znkj8{_waB|&-K5LRypqca(x5fo`;fmFxK}DUZ?CRxq&RF5ucfFLIm;-9-j_Z)5f^B zdeXd>tZqG44Ianq0o)6UdTff&r2Xl3%KnzJ3(=|6@i6hFvw<5!jtZ7s6M&cRWw9mE zB-ku@3}O$zYjPIWn-VQc&tYG)C12W$6lPG>eW=21)iIc0xlWdgWL)oH8?uw{gUY)= zeFV|6Ufvz#WIei2ujmXRO9~*& z^axTYch5nSXfPCAr(zi<{Y9vUP=zfDj>Kc-y#|pU{(+sr4&p3`2w_HE0b)n6zvEHQTO?lF^4_ws`6)50B08U#()k5Y-Agb^=Mt3gv^Ro%&E9wR;0~sz zwc;9%b$qQ4S$Jp6&b#ZF4O<%T{9Y0@?D~USj}-t5IjUZi=raIC|RS zc-2bueiU+fk8v+Sy*#rG2HoOugI1S>=T^|z-8cxdxo{D1DLzb2ToCyKD)P6wYngAO z)Eu2H*L}ictB<;i$EUl~S5deR8iA@h3;06LH&R^(9EoNe&%cSW)L|^?qy}+`)l*lH zmh&+zflc?D=uhtUqOPyf8+DF*JIY>6(YvVoF=#UCTz6bp7ZH(pWUy@70C+v(TPc;Y zZ9&`PhVuP66ywEH*nq9;TA zHqrozyr5^nJ0&HNg7`YB2wfE=XTXX14tWoF5R%Tphl#jy9Q*bW*vCD;3R;)4YxBB3 z9_{M6-AvsM3z*yO;}73noK5)dc|c2<#Ztb_Qf^}@e_?&pTI2rlTa-Lr%h|8wd`h=G zA=UD!R7>uk+aZz{C1>k)=c#r$_le#oa=TBs$CtTX$kTf|+BI>zInvJBdjT3m) zI=qJw=P|U3^4L#e89a8MjJp;p%kzY%@reLjq?!dR2P-8Qb&sGUFHte&IYl~KQR%PZ z%(2yN>6i)BTkgFvm*%e-qjF(BVm*q^)opZ5S>Q6nm9Z-M!Jc(8Zl;x-^Z$2p@IV;0 z!n2o6;%BMcdI~MuM<=tN!Ba53%2T8O!U-Nh3Lwn(2vPt6QByUM!sk+30=5+15)goG z(;xXKf8fFFzwj9?cRzsc(V*O$_~{}9oXI>l3-sJv4v{5@D<5*B$VY(A{QwPTB^QDt zFWWV%sdw*Zz?I447J^#JhZlR_6{wT_c*B2|iM~$<1oC*mnS-ST__m- zJZv+q*u~4ldaOl(B<|IMXXBBNFkHb5Qhe&=4tXqiq+Dx^to<&w zkNX!iOCQ3D{kqGnWqVCNMLl=T^^_x3|wVBHImlXD^8N3;CX|1zyTO>Dz(Z zpp?2D@T-?ja@^(`kA&-m`B=b+sC(z~r*AI~9X`{)w;3Paesw+M!4-*V2U z@L;xFo#CxNbeMxVZ4A3lLAaOhn0r{Nya}R=ZAaZxYmZXT`-!=S)lpXxc)L!n#T&xz z6B%u=?1a-4JtDd2Rlna4HL0Y8vd2N)jarh=ua41(hhU7(@H%)Bo#7^C`Xu&OEUY0n zF+%ZfVpt{57N?*OoNr(Y9vNOQ3q@&=UG9e9pt}=tJtNqc&45BmYq={Mg%;epi%k|} z#c+w`uMOcQi_>SFx8>5p)#T@~@LHS+I{&D?Eax6{bFi+~eJG?qzK&c zG-kxR1r@4&em+&OOvdt~l!qMvXH0E%J`LmPSpm#3u$~7!)sioxNP-)kVYvxNEO+vt zaCAn2;eMJsz+2?NEK|PDAQL7S`t>QSDLIA(V$yuk#a3z`(!Xc(C6bt$NHd_w=ADayxY8<9~2(FHp1cV^zI}F?pXk z50`z}d(Y&`kko~O2ag$vFT3#trJ7kHvd|lJoy5ATJp<#Ri!M^S_IP?oM|d4obyxsJ z`1HWtMaz@;B24gXiB(uvgr%X!Re5CE7;_JsOAI$H$1GK92kVPV<(d`83mLjxwxaBS zcP|f^4=0gED8=t78=M2uagb}tyAgP&>@4s!;4KY&@=L0FT;Mqe^KIO$*LoP1o;ok# z4s#-2*uuJKN>1e|-U;q#RBh$_LRiq^b-`akaPUPPegv>*4_M4S=Kwl?Mjz3$%{?$b zNPL_z_wZ@P+%v${?{GC*>=zQBQk-`+={zBw&!qR5w9rhSC*1qs&iwTg7!hAd*?S@L zA~P+kmA9_si-8Wl8Kl1O`52h@UIZ4kCUCyj?;nD0?%@h^4@;2cfIF33+ik4Fnz|Rl z@qL)n-A%xTF-Etzdxy}iNQf=4+LUy*0k77viA!LlQ1ou~ez3WR^J{tQa7qYKB8ABd ztr3KVAf9_J9#n(%!tduTX6tj}&3Ewl{s~N-4j&U#S{$8YNwz5oB+m}UIs{ z%!E^{=!2o~*^~YUzwlFj=UmRiERPpGnoD~>KH-N_Muv@_)d(s4W7DsSt{Z1ld=$gG z1)f$E8&^!ta?nTO{ZAL`-9XuW`=Fk zv2_hqHr)=2P0KB=z1jC?e5b2fdaUy?<*Cu7sQsb9`DJ79eT}M`^QwdNg<6K$QHH-Q zVa|V!Vb1r*mikYo7U&kFmPv1iZTfn7DS8Z-aCs8SHhoFp*F)Uugi?kNmA_qU)3u_> zWFKqjAI*|0ARqjrnCH3*?!C1n20MhpOqn@`;W?uDsgM(-7sfDuRxZ;|7W#4dOt%V| z{*NH{etQ+e8${cmpw^~~WV~T%_45k0Nl7llhhb-%HrUMb9pQhdq|~2JqjS$Fw<$+P zJ*$Rm+o~8oFFo#um2CQaF^{OSlfj)HTGJ(Z#+Zlo|(X$<-l0VB8}k^1K0~uuA4y1h;`{0 z&Dca*Bkg`ISPj0*&+Yb?b6qXoC}Hf}0>&C?pR{WdDU<0Ux*1YG6P-PtPt2DH=Y7DY z1G`N6iwicDJ|~>Bh4WbYnqZGl3ZUJw_>MJ8xh|rxr={InsN0UZXGG>N1Ursip#9Kg zDLALoEdH|#z)l9X9kB>!9bn@Hn@c|9QyAY5D>(~UfNu>lHnWQeoW(Vvv8lAzpi9#7zj4Fh)Q#d=QQm`il>!hj-&h1n!b>FjC z<{4Bg*bdC$bUKTU5j{&MFqWh#8SQp52F+r^xrb&5_OM`kX{KO6&~85+FW6MU&ZF6a zA=5zJ1vJO-!%An3W$Z%y0SuP;P2s$p76|qOYz@=tGqf$R(KgVY_ng@_;8Zj0 zE@OCWh+($C8GxnqkJ{(VRRf17K8L%S8?qk8IpM+Uwd)36DPXu{5<{nu;nW(2l~Uf5!{rGAzl0ea-1ht+Q`#_(o*cz*inK1k z8T67bl2=NX8I6FW@%K4ODMZuru*0BMLFPFT^!dg-zz@wOfJdw)u*OTiH7M_Dqd>Q*qfULtgko*#{=C7Fh0d0(hWnP++pvqUn4mSM+R>e+| z_t_MWqG$4)G$xK2xld;53fOSfz>ToRs)4;y{sjH58aO2IF+fkx&Dx$O#a|&b{NG&dZ^% zXzcO{Kgr9ZcLlqO?f_Om-$M*!&aMf+hTr~cqQYJY{sFHXm((cCEm?x^Ch@zd%=wk- zxAI2QT^g$@eh-@dP-FK^`a4eJg|&+FzDb|tmDA}O%gI@SH%WU1yNdo+YUhumm6MqB zDtae(3EmvLOk?FWdHG@bj>ayiEy3(Fr&~wbXaZy|jJSo_PV^-o=9;Lr3EURfk6YBn@u>}*R0rPX(O&4Z8Q#UKWp7J#I ztGYSB_-#tA`&D%Xp1O?J*dMA(%m$jIu}@IfNXKZbU}A~cNHaCoQeJ^4E^{@uy1c|} zqE?N4uB-xk_$rNES5{&kLmM^rR^@{H$+SgdA66~}cBaN|LERMMuQjt~520=foujdn zYuDyarSk>bpVd~o3E1VT4wl%IKaFk>>>6sX+?szZ-J`K1#l88{=@*KV?jQY-F@sjt za}Q5ZcF6(bIO-Ja8nVJW@{gl?JuGi;{!IF-#y%{6EAM!^p@G|}c{qW-r7&u#xiJ3( zn#e~7x`w_~_WAr1=^Vin=Sg&h!syv?U&=p;eyFhz{I}=NqgR?#yX=zFjRmyy7{;!o z7suV1-$M5ab`7-@K9IkN9^nHt?DF&S14b)7t+9jUh15#VYwR=C2aLt^qQ=FkCS8Rck?iB87=xucC8O z*w6D<(GLZ?lHMP+gifJ93bvoVSDQ38(o#+XkP~!;U(Mf0H)*UU`gZo$LV!48^; z3m(R5>?s91X+W@R=*i+)1-t1h$8+5^cwcB?!Cs1TQVq^W{3{9uXtu_D_WFWP(P;{k zxO4$+7wp2U(<|;o7S^k=?G=7tyES$%>Mo@H8haRZ7t$pft1Y<`+4ko&Hn{{(4(WQ0 zbrp0LTuirWY)?S~*f%sbe)Iw3({!)K>PHvSr|BV$eVBc~xP-p1u^jmPCG=yBy^6X^ z=~o(iJG+oBrB?)d-MFL7DY%SoI+4fz6g?R3E4ZA-%u(14!8?&VeowG#Xm8=}g3r)T zPvSZilRrx@DJ*Mu=>g-jbVy_8mlo1z=}nDw=N&MvpucErM_wWB6F<_}#pUM~TuIhk zk(qT>`9;8T1-pjk6<$&BIr@fRO3$kX_5OJ}znR-zlT|(Gnu5>My&7wpbThE;X>9DI z<$1p9Fi|U@6y9 z);yMZA>B6m{(|dhsbH@gEc1HWrm;)w4j4C5kH+4daH)MG?aV_!fIU!hwxwyQ4Ryp6uDvCjPO7kriO*H~LgA>Ba- zHFgK~fUnV;8oNlazY2CGb(a3H;A=E6pGWk%F}3*qf&+Ak#(v`GQ^mC!+fY|XchW5y zYaIV#!MEsZ8v7f@cNg8QvF&w-3ht%{HFn$hHwx~h?`!PaXm=mItg$Qo_ZQqhXl@^% z*QHLytOr;v{5<7nd!{kAXBuOB;!&dfJmqJ5K9s`Po)4!mw&x=$jP3bo3S)adp2FCk zeDdR;r~GWs?<)itkKw5l#$$Log|U^MNnvcIXHytk=?5u{?ebg-W1Iarh4G9%pTc;? z(iqQC8sj1TXSj( z50UR=#-5~i^K%RTK>Tfa#!3qcanCSQu>JJ2oKFhgpaX(kNDt;*V*HUF5lngAVLGHZ zv%VZ{Dm+YwHFi&Q8nC};jJ1A~{;4t6`c1N0xj$uzw1Q=`f0o^T}uV=Hrd_dpT82ify^rXTJ_LmRoUm9b7`8zFG z#)4iq*k3-Pb2P^O@-N-PlYXADk5d@yc_fALtnj@T|2*kuJx$|Yk%HTg^2LRg@%I$A zy3lW^9Y|$50psQ6+-|?jQNVajV?0Lz<86)c9Az1Q(-_ZDmT^R5oMUDi_6jA1bIfd` zKx3Ro291!$IFAe(VZnI*HW%g?ErO|;E-;pAjO|%qtQ1VmZGrLHO720;QK50uYK8IG zi;b0Q6vksOG1dsiJ)BWE+W4xjV+)oUo7bkLlp8xW#!|)^7YL?w8E@R6G1g_gafe`P z{f#&76>L9+khhLE8rHGQ{d6C4=<&v7f~l2LXChV$^4>Dy3`4z#Gl^Ot9DplMLMV~po?UD7;Y z95bZupsw2l>kh5^Sl3mLP*=E-$9EpRXWU#kv|Y8XyF~h%E*RT7-#o_HuIru)e^M~T zxItr$IR}iX#=Tx0@`9;@^qgk=NY`bVw-rtsRClcLdtG;??^63%qu^Af*@eDKjOoS% z!IV8`3~D#SXwsY~gL8&4Lt}RXJ1%A2Z@{`UjaFUvigjBdKfN<(;{<-*_fC+XsFsv6 zE)OeTF{G?z2sxg|`$8PE{TO?oPq$8t}I$1+1kp=ADV zVY_JlxQth|{kio1opSE$6^zKFlCfUdpx>j`6nhRXKL>u34v%B4rWY~4qEv{^bHhyG zTD)NaX%=npGeyz=w>n>qQNscSEQfXTi6#BiUC7T>ufV(q=%O6{CRw%2owDtr5)-ZN z6ip_>+9v%##;)i*QiGHxi_zAk8{icNaaqCt|0uUt6c$?a8vMbNe0v3#l{MHK4Vo$T zY!YoZMOdHLFcwR^#fMvC=3$CSl@po%SNM`acMB(v-7B*NEU}L_y8p)7e~?*IkbP{V zwwo}UcxE7+N+zx`L1Di&=^q)b()7W#72@+#u|iF{rHu8g7tc}jO!yOcyGbts8uW&g zmHbSe$Ds*k7-P5SZm|zj@B~8Obg{64X}U@LO%cUo61IA@y<-ehG9|0Brzg){rk)>( zR*L7p(KAzWS`$xCrVQ3ZQPO&PoXY0B3h*3ARs_crOCp1!crbIum4~R9^Y7Z4;xiUK zgLUc~L8fXu+&7+4Qk{=8g<7R9xa{g83^S()d>naTSkuI=MP&RGIa4yHGy2`VwP59aDWZCCEyRva)A=8*|k z&|Q#b&;xW&*+a%%^yx`Y7-yL``=2phGPdMCkMc9)UxI{dCca^uLgR3+UuIrZ^1iX( z{CU-ffE)chqPFUfA#GxjWj;$+RArgF=|O)!%2$U=06(cKGp{uF7FL=+rQb{}q$^FP zUuiP^r}WcMt$7GK6yhG_0=(9Hh`w8QB5I4HEhv8zSwDyZ9^J)`lyWQ8z#Pk^2^0bXcgq-V@A#{w0wu?m$e6sL$ni~&%T%MJH}f0Uu8rdPJ9ws;$%z;H&N6fAt^)iM{F7x~ z>+6!S)R{AaSI}9;s7XJE{C2G6vy3wPCEt}s-?-oT_8V{Fwe2o?Gv|7&>%*fap_c8l z3OeMQ&E_3tm%~2a#Tu_e`JcW7@jX77wiK57c~0SDR!d=nzYjfLPkj<4`b63( z)*WSY{O5=!=b)EK^eoB-Am4k#!wc8=W7ch>H~OC?zU@v}m)5Tvem!a z+Eus7+z)*U>99FBzuSM&Q(slkTjTNOg z`EQn14-m)0gtejWYyO1QIQ}j`UiArUV$ppl-!}ds@V_zs2Yw!Pp+v%${MqJO`)&Un zTEgLy_xzyjSmXe_#ZI7ia*MB zEv#J@c)(Z>&%DccdHnRiUB=wf*#VZnFz}L?bezro;1EW{@%-`drS@*b!%HM`b_X6aS5E8?l$l>HT|)WDWG)Nj<6LkTU@mjb6aH#zlY&j2i$K8TSA#HGT-V z(l`XT#`rtn2BSEbMb8?yK>iPnreHojZ(IcU3**m#FB&^?(67l7CYrgq=+|rkY%q5K zPByR3HR(O`d$~>cyYe??HDOOLD{8{u51Rm3jW?(;Ks@1d_$& zu)w(jn+0wb7!x=kaKFHt1l}z0QGt&Md_~|Pf#hSEhCoYTSYVaFYJqbF&KI~@V28i~ zf%^rXC-5eLw+ehz;9~-x5crC~LjqqFNPg*Epd~OYuu5RHz-EClfgJ+(3p`KY%>r)~ z_?W;a1RfIjszA#Y8w#8+utVT^0&f=hn7~5;DErJ1U@S86@gU1{ErHJMIaT51c7q}ZWeeG zydInimL%zfQFF_fvRUAOz?%fVQqFW5D{=(R6-eWRBJig1Tz*vGD*~xfY6Z>}xLM$U zz(*(E1O8V8&aL6{W`P3&ZxZ;Zz=imW#<$bg=?92I-Nt7TRU6F?^Prh$HCgkm9oDC; zFIo3k&suLZTM>ZEr8Pn`4-;KUjOCofg|+lYFH2d`Gb!_4%#raeyY~DI4WVKoj$ogK`z1NfR)ic*7LX#QgDF+ckhD-jgmuc@iM* zP%y{XdjU=C7o$<04QSGdm~(^X0Gf0X`o|3ypox>;Sd`}hnlvB%8+c=R9Lg=|-=Kwn zCjM4-70QbMO}x=mjq+kZ6PbGr%4-2lc=#m1Gto2WdUYswQ$5N(fF?QcF@t&mO@7lD zWf#!o_l!~Q1H|1czfVp(08QG7w}1`W1!&@}@8eKD7to{u_$TslK$AX&@fma;po#ZU zPDJ@)KojqnoCJ6|MrPn`kY?oS)XB{A)myeuKBRO?nv*F-$zEJr(c`+64GVY6s6@ zKoh6%7|I_2n)IQ(-~M+%+{#fL^nU{49)z}`{4YS0j^OXrnE1Q-X98v!-GJGK0~j>U z0*o3-zy_lqGriob1YBuW0j|MU^CPs*tO49$P6FI$)&ZVo*29M;)7khdi9f^J+1=(I z^MLuW`BQ7G?>S$sf4)D*-e6y2-)aBUe#w5{_6_hier|?;dOwfLt*(a=ogHYzZ3y2) zrGL&2sP7&OroDzc#ld{%1^9nHG?;dF;C5gTktd=yge6Q zmJd(Q7e9|6rqy9BMd8Es_-&9VR*v@`%i&k$7;iazYApVG$5{B&SiH-RLEz^NliMeQI;*{X$`mf0 z9Pe8cOKzXD#Ul)BAZ*fr`M1UU+RRRCJ?CEl1ohy3#5>8KYq3d)vyW9G^<2`*z z)=0G&Vp$==`f3R4;%*XcTYKimI=0I&prj|4l|(-td1#~gj_Xym#k;ny?d5@SzYx*Z z7jyeo#?FlQ&2yZ-WS<-B?Zp@EbnUWOqDL3KzO*8mIWAy}?Vj&+_r~CN8SVQV#&~JqWA>cx_V$H|o>*7c zZeXk9vCihMuBC~dcydlBtTdHcd-|qLRl~#hQ5tIO44Y}bnanoa3?RCYA9v?Whh#Ov zsk9&=O2^#Yn{{(^Gwt7YGmVv+aqQ7~{!P_%YFpGib^46dh*0`BBbq_m5PjCJSvZp$ zV9K4&et0-7Xj$2^d_l|d`KPomY+c$yi&nR^tzEjNy=C?46|39P#p>4OC%3O_U9q%z zP3wx~)V4d>7w>LrT|qlyUH$R)c7pfEs5{x=xLt`Y5Z>YO%y+uF;$o9z)5-CkxSQyp zt?&lXq_tB%=J&fUmhG}wPi$MfbIo?PE2?JC>1uCJ^d$Ncv91(xMQ^-^=am$NmLdeu zik`Oqj*fUTxwStP7pS?jlbVyVv^%MTS9m9_k0tsRIxeqkxJe?(G&V_Va*Z47h`02x zKcZPLdg*LQcEoxaORkA`_d0IOO?2&U-PVJZuUfTq#d?z{&yV$V#JjK}5fhV4(Dun3 zds}b31LH`Xjq2s`ohSDvFu-~JiLTB$XSTP`i*=ld2(d5`?*bWOR;$o@6o%#fP`b_O zcRS+4TPqD!NE;@4d8~VcCg~23CN3k|50kmT$%uf%YFEbkI<^lNyTVOu25e>i(YL#J26u&PDOA-r+UN`@6Sb?G96Sq0_}{dKi6K>pwb#U4xXSRpu?RZi z;zq;kFxOk-?ole|cO|e?hc}w<^z@Bb(Xw?bum2r!eA^sbQ0r| zeTB3Yg>J4}<1BS{#@)8qRvzFAUM6d{$9j-9Xjf;2bZ&^rL?{=nmchZf+^s)XL)wn` z>R1nGXrKzLU`E^$OJw2+iMkTgXgk#vKOQ2SjdZ=1P_& za$ll5zGinXvf!RhP|%7o&R;df8xWh7M+-4hT!1}67ni|=LSw^W`|+B1118BnQ`mN$ z%hFc#BJKJd`Pi7~mCv*FCo6-!PO<3ErA`MlSPgHj8D3qz7<9hFup_Yzj&kQI_i z#gbzOObKHZ1i=8|ah=Kv9wk-F3M|CRm5P{TEgsK;go`ldxVwcgd(O1>b{SF;cwg&SoRZC;ZKDGRr!pmnK|lR@!0F_Sny*4x()fow2j{Jj5rt30Ww=>RK+%0Lr69bNsMaZvQJQ>3Wo8AP_- zFro?{8C)stGHAVnC9jTSVfR2Sj-|4PXdG=*b!uNqnJ^<7G^xOVu<7nz8FTgUGE*fP z;2=V0Mk2-S)Y?~zpk-IwGxJ)vix(+}7gaZZdmNi*fA>fX&{k5udaT1MTYE6D?ie3SV_iq(S`bfmxCyzINQ=N3FYcmMa$O>s zz>wEC={jX25sSP(wo6LMbiJn=R&i&4M_;-EjupeLha20Srs*9<_N%_cmIR-h)3v-j z)+Vw1<6T{FsScipdAk9&p#q28es2fF&ZkhWz(%4FI3*lLm3Ig?pPbML!Lc8gDLcFk zt7R8ftKe)<-mZ`w@y1WGH#B7iucr7eY_Ql|cCFaz1tWF3!;y&OW?~N%-m?uwu|{%z0!5^)gzbTxEoWe- zh@UCitGhDxB%FZxUf@FhS*QOzy|8Y-4@sq?^s-g=EYUQ`COTbH>;*xSqRPBbYs= zVT9YTdhl2F)F+z=VW!*jz}6K_yoUHhk4bEj-sIYYw(|a|iacY@UE3Ulz3try*@Aq#SyDEp#SXYIa8`_S5}r|~ zzb_TqQogL01@n44!QhxKeX*DfPMP>jn&(rQG%?u-Au*NKjTA4{lzLsUh(YPNjCL>u ziVr4qVG~Ft7OBoWkvr6_?#S~f;+y;X9FF203*sH=DOQVwlU>X=A!a}~$$c61hOaxx z7?{@&+<0qZTR*lb;g{r*R1WE}td4KhcVT><@b1NkXHPF>?Jk$^0c+r|u9 zTRi4=Y*+W+7*__;x&rYxE;|qcD*|<*lY?BE2ytm-xzpFy--`<_?9OSb_?3g(vVPoz z4V4BzRRc}eAO)54K$^l1E*|Nr5>JWYY3IGXKbf&vri`3P!=gn*likcsBry}*6cJx0 zl0Ub?ao0E!LXpx+sdqO%Sbv@-6$+%pB(-o;XvTc<0?9_})fB zsSr}91HsOYyWDN8m)g4G@m^8cyNMFLQwZ-0By;Wg2(tLIXg;2+xHKO*I#zr)loAo@ z%1Q+2qKas%#W842d>5i1-$-LOmJek+xxD~!3tu*BQECGbQM#z_Cp89Bq#s?V;{{)v z%H0@kRUcdWakB$0GyPs&;j-55jzmX%C1RAm))huR^Qp_ymK``C#~ z#gsZx?Lw74#a-jf%k)1K3%gG%a>zR6=l zt~y&MTFP#7aF5@ouRx9>BctsQ<|aNvQ&We0B>PetEJ(y~#gjx#PKvLuar$CiNEMu( z&Lj>B8DV-^9Qz!ILy|v^5Ln)>_B?LHrwhamzQs!N(*V9?PvQ~ocAzrXnFPLnOjqLi zBJ)y1&F>(eYw`|TFbcM#ZMYVZIoH<&j1G6yCgs9B|IE;+$VLZm%6{!F6v$O zrRm)x@V2LkE4GRqkesHQKpQ@EV1%gzTTMIeQ`_QweVDajqtC30Ww5cjBj2Qp#z(1w zLwOhO)Y*jyp!&y#B4u81UYV60a@FGHtQoOPn#DP)NeOc$pD~s^d(N@#?S0!5No@P6 z%gdywmx-(3kV)aO=_ry()`z$eYC1B+OUj*ORr`=oiVNUj=-|{(s5*M4mK1L!O{?SE z`nzIo%Pubi)@uf%QrCXX9Go&zo>cRUU@|CtYfskEx2+ckQ;&qsaQIUX@{uER2Bqdh zwnkOt-B6WOB826`r(fKNg3LR+x-FA@Ko{A3`oSPM-XlV_6y$*;)*)}>6zlBdOVo^K zc-TStusW0qMm`V7^y3P@Pt9Sh~AYe7xK}K5YzMAA=d-l}D{x z?(`h3dOaRbI6ISi#A%T+Z#u<I}3tx;y;s1i7pUp05_jO|v_gXf@# zEvXeMC`*9zNf};)9GkG8AqS@wTh73}DiQ|Hj8hpP^yHfko+~fV;}EKL2B?f88&%!= zFjMLYh9=1wTbJ3ay4c>Q8nZg+Uq1m8SsCcobPY4&iqLx;CY+f#7DuX1Z%7&LpV~vQ z=V3uXWjr`pfajhV6uZBi{1zp)ZC{$`))>^_XEW4>5ZD!8;p#O`d_kPX7AD+Gl(k$0 z`FK`DYrIcqEgoVcdELQ}FnUm-Qk678M-jJq8-kYFtTN*qr@pF+#jD4DDrCtMK%AfB zSb%Xjgs$sQ^foL-$jf+$g2^2kK_!I9bYdfB_7RMy-xkO;;?P7yzc?^bYcB<1)BhW` z|DqEazIsF9KXsJJI(yF4_I6x~$?&8?Jt0*#)Mey1{M1w|F(3IJ3;`Ea_(~ke@M=L4 zbCWW)evp~Ila}Y2Jhxc5B02r47_W;AY)k4LGU;s*k}W)m?CtL(zMWf+nD32_<3Dkx zA_dvK^%j9iRSMz_29bid*yIykagkk07uzvpCgJfQ@)3l0mD#J877%}U6(x45+dy3& z($h*j@ZIHI|6z!7&xudo2vk|l3R+?+-XsxZcNT+BFhh+U>?7}3k~^;4s!`R?xCKE597-7YpAcEd<=q)4vl>Do=rJ-e|n_OiuOFF|3t zGLX(R9qA0R=F~=mY@MHNrty|tNUJ;gxVe7r#&fC{a+=oClk9hKr0k7#;F_DS*CgxF z<<=fN_s8W2YS;#FV)YV%3_gu@CwkI|_vpT*yBE#a^w^7bVNl*Nj`dJ>N>OmOP)xXF zk;i_z31=mWRS{$&hS0c&p?q71@Sw-E5}EHZ$grTsAR0>?O4~Vv2MbwA?3KacJy(N@ zd+~nrnRu7E5AWc{@#c1%D5nwcd%JkAyN8VIJ}H4ZWhLIpUV^u<*Wm5wd3e)$1xjuB zT@Ct5{A)p}UE}kCQD`OF#%U{lam0tbZ7B5-jb4cN%3Zum9nYketxRdMPFf`KKD7fK zXta{Uvbyja!`tW3CzO`h2EKkRkwUHLr$>6ga|v*F(01k@o2mag(Y6imk*|ObnRQJx zq;4Erqc>wDjgan*#Td)ATT|m1ROfGmrUu{+GV+*@_2_~uh4Co5(AKEry0lDgl^ze? zkB0qL9Jpz<6}<)DORR(M3+v<3a`24$!umcl;O zi8_|*NuX70fyJa9>)9vrl&^%*x2OMbc`i7+Q*x9}Q~3XoI=UYt;BhoUE=$7IE*Ujx z4{L%4JNUr#xWkY-WH6R=K-e!8QnI} zl;?F|eKip^r+W{>6PR;k={zUgme&Zc!d~4AS@sAW5nmYF)K z{?a2E8Zc)gq_4#nh16EnhWT2Ht%77Eic`CN8IA*h7DeHKN(g~tz7c3OR+_K)o$HLlh&HwcuZ;_mo zsF;Tb<}#z)GtVn;>zsn5BSRC)yf>)yfai{r$Mhb-zQx@AuxYPA)^G=C|JQ#i^7DSf zy|QM!U2`M|BjsTIxc`xpBc-?6!tuxw+&os#r&MCiv4__KM|t+-7~nSWrdQ!`&Apc1 z${ac`?74%z$y={%F>a++F3&edYxaL05s!k?6{SNz#;0b6lh-_~1j_cbqngZUz^jng z3$JyC9gxJkJ^wY`k!#YiidP_~Kq~FzxR6c{kt_{d&;o-fM_^Xo6jc_>hUbipyV~(@ zRA+%+e)!)gomMTK+tT#Y@pmhd__pHUM1X1a$eK>VBzmTqg9(lzgTfz@+cqC&?T5ZR z9bVXD6Y+xQobl+1%+NH69e){GaaO4kqYUjPsk4U~W#dsphmki8x=qFRDf#bFkbeTc zok>N@u`RYE6YHN+Dp=)$3l6DOWa_P2EM;Ehrxt&DMK zm$96=6k4fGoyRg*mrNO%!7i<#+D_Qo_`gd*XZ}kv)zF-`9@dC^>_pVz^}u#>;pv_> z=|m+nxu6pkpjBq_>hXK$Po)WOK%Sk#-e{IA!f1HY8=e5L{rMnvChFL_|54ljue~dQ zi>mtm@4ZQBV*O7f5koQ8SkiMkPTM5XB{Da5pqfE45U#%q30B za!JiKOUrCCGjlihy+tjT|M$E%kC{Oz`~QFa`~N<_|0r*{%em*Cd+xdCocG?jjcUT< zkyaC{mi)_YwIB#IDt3DQIfmfGSUca^=cmLwvI^dW#%fY1fBG)Ybt>VedK(mw1fzcf%ZnQ6cz zCa1|wJ&>>?#|n{~9En-LDGzX{x6TuQ@<<#Hz?piZLXHyi&#YLJ`Yxon4WB|2OlV1&Ae)vPXhiGQP(5;NDg|51F^6%HVKG@5z=WVmy05dUL>d<9 zeKI#l7CKSiuI$L8FI$t;TUr<^7lS(T6bM5tqLd^Ga~QTLsq(Jsq)kVwXG(Jh896A#uOq9<@LmIowj?Lr74sPcE)sr#!!HXVqd$e?;WwItiL@D{(Of;6HiOi0q2`jrR?PiZ8XlP11`%-D}2LgMdUUi~E5;{^#q(!8FQSH63_m@eR zCxJZ4YVHl;VCRoQQ7FrFlUEqxD5kr8EbR4*FhjD%E|6OU&G1$}0S%6f@_m&4D(_t8x`c-SmGqi&^=OH@kJZ-Zs=^3b`M#+whM{{KBO)~i- z|J3A{Bm}7=lJKI}Gh~a7tgk59`WpVPY|D{F>~1|HlvIZn#noAII5D*x#W3UWA_X~f z!+|le_7F%7XV15z^USGKpd&m*H1CDiem}=ig$ES||q!6-$G8|B()kn5tq^0_= zz@imJ>IW_3jtT;#`tX|CsX85`cFEW$evuzs%ZiO7lRrv_Q0QY48$;Del&(lcqP{-L zmqa%^XF9KrqVKkSO*q>}LV6_X=xnR{-W8Kec63$ehVx1+_m0*_auU%flM`wfuE?~J zmje4J%42O8K=sk%|7lB%_=a1}FC?(4UNE5;ML#^9>I1>cs7U-W3Oq}*J(Y5LN6DoG zJtuDh6I*pj9|?_Rq)l*3(<5BuoFF9hG)ka<-piYB&+0jELkg>P_h4DN4M4S692GiN4@k&I zt6ERS1r1V;Cj%fHvZxXvga#N65EUAh{$Si* zlhbpQ<>$+Lu$O8R~W4RYHGxT01;G1fffzcV3mgBQ_(Gk zPgUVyZG?P(6;a1u<*yRkQR!=Ya6kv05<5U`Q7ZwgQpc(ET98B}m`D~sl?G&;NNwv4 zKuoG9}W`WVmJa-b95#W<%<=Di-0pl2C`-XKESzXRC>NID9LHWq4C$N zbR0%Xyz|%VgFF-paMLm_fDLdW36WGJCa2aZP>^b%m|l;*VZc2+S#c=%zABK}UxodJ zfIo`4U>^>N&vZbz)Y~u)Sm=yO&zHN0h|j`-bRo#cUWWfXdF1Pvu-l0(0E?3zQ{OU|?wbeTDL{cb@rl(e`(HCDQ!7`p`-D!{wN+Vs%dufS>PFD+Dhpm zATVYe#tx@i(%2lqB}htBC|H~cM<8IeSdBO>-%aX51?mwkM4I`D5|>kGH;(SpqfWDv z)3oan`j0mp(zR^Z4XT6eM6Ah~qO%vWyqO5ii}VNQSEop=Ck=@n?UCj}8n3Luhr@+M zFS9zDwB$XZ*A+=OmbGH4V|P7EZ&TQH8|l%T^o&4qFH6Qb!Jv0($TXDRt0L`CAB}^F zX^ua7ZK$E6$@VDr(u-e8QdX2K9XL8rEPBi+jm6FJ1!+IJaeOP;@#BZO(mPFr3Hdi2 zv%IQ%=_P>5lieX{dsSZr78{mdj!;rA4kdIL$cR;IR!VgQS$gHpM^g2we#qk0L8KVr zNmQ3G@UdT}BU}C~#n;XO&MpA2>eNUdN88r^0HLn^6PBu=HwqEz!1D;-|q)LNvGJ%Pf43#}|rA^CjD+>E3)Qm#(S z5tnf!nw4rSC%EW^zYP2(Q*nz1waK=S&ML8$a+|>+TOL@Psq8FUSv@LyQNm6-yoS4O zbTJzjadfeo+LcyHBn`%&FC~8=LB%QsYlP*Sa(sptqavFMedOc$L_R~jga*#?UVOam zoTwA;MG}aYO~p&-3;=+mp3i{J#_{obQr+ZJqIjq0yCIR~&7@-R(0Fmohd!%BRo)jS z7{2i%ou(;PQDB5iLqobWG}Mqa2)wkoldz%$THwV5T(|(1ub4$pebFANuamTdL}Dh8N@_UPRjqU-cHXj3%ZdH7ECe70=b;tVU^B7*SF}iR!YM~pEvM3p! zF!NxgctFz?*K`aNkpKz#SY*%#hWdcsK}*Au@9&2;py62FN5?1uS5yR63y!=OrNOS+ z=7!Y?T4z(je<$#Sg4vWKJW10e&5X_>VtS%l8llu#J`aNwXcLm`rp*U8B1D7lRu zFG|ZwCAR)SMXWIdLLti$$~DuW7acO_kc?V>S{C~f z(l3BzSZuB1L-Du}Afqxo86r#~AO?$aq@ZB$8kX^`CSp$pBF(`=UYlk3M{^nM=)`)Fb)+59+zQq>nAv!Z5yAD`o-W zR5C5cSTr@VlP1eqfGk)@~Fk3!lb zmJ#q+Q2N&luQ1_NQ)UNXv-paDUKS#MKYd;WF@_gS{~at&2GsWi{&IiYp$A2<0?8(& zZ=mgTvfEOB@Ete$EnqdU!*jN~h~Ca7F11g4?a_$QlO1|sP0x$E;7HVDfQ8-Eula$g z?Xe}wW5ENw&Zs*`ghV4lZ$46wq?gYaaq9OF+wE#gr%|VNWjfH^f3N+faQ3m{a|-&v zj$XJacIXYwKe;~)9xxNF$QZSktxB<~^oqmBVJx_dUg2^4^8b(Pg^Roz3O~UmX`0ed zFxR(ik4qSppJyzQBDux~nZku2BlaE;!#>9cVFRPEm>^>jLU83|~i-Hnb z*V5I}#bw#{6fgqB(4zRD5rsoriedS)io)`9vkMD~3I-O3Apl&pT@)VTxg z5oM+J0L*Bt1ePLhIZ<5dgj2Xccn!t!8XuHeijY@%xrl6q;AP( z9v$O@vWle5Fbac=BXXr!YVkn>5xd-M>y!v2q8e;u)FYg5kBg`z0t&=M$RmVz1ONZ` zA4Gv0&}Grx!Lk2Aeg6NhR#G68_6X%TMkw?4Q@b>toILquC9s^I;(X})U1*%Yr(O~iq=A$P}?EJU2svbOoehOXJLf;4)v5?rCy#(uYMi8 zsl)vyn?iEyeOz)pW<*7qhe;??&KJrQ)(QoOr?>7tQ*Xou_sgD{>lLdx7v(C{szi!a zp?T{|B07pprP`CrOqXx8xXCcp7QEHS(Rk|9v+|0Kone_6lMrai6d?FfhR)MFW3btn znchAvBP}yM!)S}4Z>lc@QogIF?_lgJ(lR1qu)>KcZL*TTY zye%TXF%_{c5d;^JGff_Xo-#F_8uSB(YL2O{;7chwPeW4I)UNHi8j})@Vthh#j;XN_ zDq&XNmWQnY!%RjB^le1oIz-?dI>?xg-B!$nLKz$6NKrg}RFtvq7<^X8m9f}a_hS5s z!!5M?0%G1xOK+PWbn~4(YUPkc_sfdAC5_u#u_ds}U2gaj?_5v%ZbEtTz4Pv`j9zg0 zwc~HTu5abn&UeJjQOj!QK1lI>Vba3 zhe6x3eVV?0EVSO*__r>-^3~1lN{{pL$?fk44mR%`|J3~49YH3y0YjJfF|+m8W$y{{ z4Y_vi-d9X~$M6-KCim#8{K2z!@KC=K?cBW&Y&^QGXGz-vW^md3ug>f|e&hMMJv(2~ z&I+pkc~FyiZf(!Coilgdoa^`1M-sL^{c1*>@tteWe%o>MM{ij!3JZ?kd?O(yTdJV&rTJ`(BGY9vD>(UQ|}PmsJJKH zb1(~h=q{M<+ytFki#esjlUl9NmeK>2tpu=7MRY~fWRs00vkUW_Su&zJMhr(WAzFsV zvdTt6h!8B_3+&`NHgE;mMZ=uoIWh*O8W@9RK8R}ArcL?SqrDcde`emhzw9tQxEwgN z+poHlXU|#JJTYbIiTmrn|GDTV=J!VRrq%OqeRN3LoF;o#$661^4eGfdw)x3W?SeD0 zU0vCY78$I2_U*c@Z!8U2v0?Y7DYt!;$%*lOzPqwG)o4;4F)z7#AXk&_ z6Mw8Zr<;1Y&5vrqb(2r0AFglBba}Y9H6LEG{)f-oUcXz?^VCM2s?EG!3;GWCnKQiH zY`s+Q)3n>a7p-~k{PrU=3s$*y4gP7%K*Khl}qX zdF4*mT?=#v`n_8D>f)Eo0u@oH}9Sb4!lLLP3+MDzuPbv*=DxsN4h&H*SKO~gg)ahBH z3Wk z-jDO@_~7AyGuhn1$-$zekEawId)FFYo>MXP zL+$K!^a6r4kQhq(W12Pg>^TReqNuXOZafeD@PY!9WijR zySDtzjjdX59Dn-et-7N-j&5McNsI6QQmJR;?e1QS23)zh;k8B`K6sdQqrD}kLD#Jb zu?R&hZ{rYPLy8O23OxuscyMKsLoxwZ)kD-{rZ>kidx^D)AFpd)YDk1NIg$*h<~t?$WsUgwaYV;liA64+CpAI zRw_M&4ph#lOc3IQR%$m<;ds}?a;$n#tAKjn2P2V%_c`WNK>h7b{18Nkfs%86-_EyEitE(5=C)ZEVl>r1`7j) z*7Ci;IlwEnwf$%CiiL)i_1Vd?!Xb)dM}!0;p>9xO!dbnuuZ;EAcFf*UPX}Je%bwJCeMz_W>pC8PwaLqyw@2(AI;3n^%EsxN zZXKWgZo>N0JDGP^kNkeGux;K(bMC{V&5|=;9^OH>;gtw;qtU;I9X%Mb{p@?2noTeU zj-O(@wo!L=bZY-0x5sEk<-gph#m}AH?zilHsG@1NVP6mZD*5+knta{h`h*MWaV7kk zv%`7?zCJ)>Oj@+T{C!x6YfJw|vwJu7@8X{D!mkDA_r8>VcZ0{)rN1mGesAFCt9fht z3-_ZgxpnXg8)OVNw-|N#<)7X)y$yMN63XN!HhCRBcFJe^IZviNn0w!E&l;Ljc?AIl|6EHv+>ivJa%!A$#D6zfcqx@^_vIuOqjFv=`)K18b%sIhHULVd-=gd zi-Onpx32JY_YW`%`rot0Om$UPPSlH-3F)o#~j_O?b~tvgv1-+Obf5g{HoFy(+*5=AM@RSMsGYPY^(Qv zdEtA>x6WLsf45)f0j1A#>c!&^xyll>J0xhTlLXze_Bk&8w>NLbO`N&rTFksFMWpvcS{5s5fc_H55jUWrP~!C<+>tIsxU>N?ek)hNM7cdm%|ktVpPc zpWN!t<)0&uRa{$au@ z%FuZ(fs5UJ?auyI(~i64r@nKu%Zpvt?uu!u{OqG_!&@%dYu{RWm`nJqpw902Z|iF3 zJ`DbD<<#X(JnEi&^&L%6-R^!Zzd3c$W&62?#cKn`_?U(^xSr8HER8!oLaXY0b7S{Y z-I={pe$Bh)(XOQDvo}xl8d85%$~R+MblLWB!-$MFzRi0MG92j2oqh1r_xDEBK6+*2 zZL>>*l)$8(6D~bx9GUe=>a8v2)D^cUwb!g2of~4F)u_$$C&skw9$UU5a9HV@{I7a) zRkG;}fUpjE`g`fkQuFsp4`m!O;W%?K6w}ys#{{HO#j2SQXIk3w- zPrc~#xrqC$`gaQ<)Nmta2#FvVwK? zKdf_ekJV6Uh&!RTDs z?uCWjv$lrR8PcO+TFI$Nrx#d_jtd-&du18RWS-tMZnZXZ*r5pX%n;8GI`=`_$6jqx ztZx-JujIkd^qXVHo*Q$$U*^*Mi+h7U_+&@OuJaFTUHI}fL%UTo_C?JJjZ3)oK~dWG zlh>ccwUKA&4qQvA!Ul3jh%CtaMfx>uv(%`0E- zSCC#1J8V&Qi`(JZ!(Q2O|C~1Z=?2p}Jv)$Q{_!PP9-WDG7cNa} zwC~u~DKRTrhPSO9{mHO3dkuwSqvs|}Y}fc#b*;JkVgm=XD*bp{Ew|41M;UV-w7T}` z?_Zbjma&`jUTk}$S-;zR?>)C=+3wz zE_Gk(+PYP3ZQX6Ft+lOMwQB3GsI9y2%uND8?f>_C?|a|>{{MRy?wL7f&YU@OX6DS9 zxykH56$ubRLU>=kMCemU@e|L(e+(+2SQ@lbinh8OZ}BOSalA!dvCc#pIkt#XmrxqD z!N8iS0*2x&21;k3lCxD*39Drk?(UM7HqkjL2xSlgG{dqc&)(VvL=vuqD?;8tkyxpN zq9CQ5%eqmU4%UO|Ay3tVqSPWL2gf+iARVQ;f(E} z0LSeQLC6h~GfIR4ApP49g^<{RSqyl02V7xh%FTdlxy;8HbBkcb$H?tN_0T^Y&^CrJXkjpIiUq12*pYfB6u7* zS_HHG(??E|s2gxWeOVZcokYSx)@Xv!l(>qVSUhcuk@ZYwrHV-k0lFb_yr z7%Pd3A1lL2ThxpeqQ1}%_?Lxw;c_sRBn(DHA`x++AU4bg@~&KG$h!HtlT&nl?G>c& zJnk)A23C@UOMTtBUKsNOtX(rGbmMjbE)Mg@1POP|UdT(43!TH7;CeyMVND^GJIS2b zW|-h&%gBZ21+C7bFzA&?E)w&#_@+9qf^M5&j!5LrGG{grGF(pr896lo7KTD1bM|9{ z_*5ohDO^4tisWLMvrNpk09@|kE0?tEE_2~7LV--e1_Lq3wXa+Pq{j^;xvR`YCXuh+zFEA+g95(`s3KVq-7g;Uhpj^b-^KLTdaI6^EO>$Ny6tk@$(`6?p%@HIvNNd35 zZrmh5WNy59APEDa89GJC-DU26Y#Tsj?x22KKGTG4$ER#KW`n*Fa;Z$pMgS)FpzzXr zANobeJ$>ae=P(5(d$n_udC5F|WimDr*Y$ur&&kq&hRS6T7eG}nP}R$-DqtRfdDt+2 znG`Uo7320{Wre)5=cD9u>)=I*{K83J_P6z zsBD)5DBq?SXf5HzOA)u*oD7Qr&bEoF9*G3M60LPgqZPCwijGpkd`GZW^#C(K*^trT zw;_#ng1pMi=?q0C%<%wx#WRo_lCMH{VFAK$ppdlu^kiHJO2p!_L_J%8ad-eF`UH~5 z1tU*Fqp+U=wXsgTO>iFD2B)APpF$J$G^h`c#HO(b6`?+WRUiYnkwaif5xS2q0+bLK zhVU?+hy8dsktiivqlF+|gpLvG2obsoP=W$U1IXz@VreQqKahudfFkq>iKX2nFOeWw z&$Th^2KAVtP6cD|k2!pa?AyVre^pM}+qB z`S1DsZ61a=_2GMp?SQR-Q%}?awSh6gSS8_!VxjLC6CzdR64V6cP?&cb8Vl_aXn_rz zg**V85rWHV{O2Pder^$HHPo07@>=k)4G)z(?99Ui9;O3Spnd?Oks6>6(xEWu^KiaY zhPslSA)iLZ!x+p54_}2U$SlZDB~<`x$$p^EK2itpd$8nObdTf!l7cd{1Zs`KS_sDS za01$d!UR*$4%AIB9bgt%azEeVe)NuDF8UVj5-bABUO_*AKMIxu{8g|9Ia z22d#6g?>a$gg%gO0r@2;T(}Q(juL(a5ZBf5buXep!efwsS9lWLL#u>8K$ZnoVX-Z8S2Rf+=TEjx|C;Iec-VLorG)nV6CSeMN7EGwE1Ex}lKe zO4Me^B2|US%#@%KlZNH=x&oA4FqF}lZDd6jV@BzHm;#VpUV+jWb23w?w&>0Eq)fHW zfD{@t%ORU^q~^d;Sj8%GEe5l$gi+Yaz=xnbC}+&65X&)TEH^B{46dcXVrJ^AFok;1 z0PAK~J5OiUGYyP(GAO0BXw0t{Br_%rr!!(1uNT@>dA%T2r)OR(wDludr!F$ECbLds zLdi^lrKm_<;HZ+72Hk@(VqWWg5?f*f;hc)$N_842w-WdP$Yu2Eaz1BjP|0RC%mzgT zI=#+Z(NOyO_#+sPTxPh1F`4loS(UCIqkK+>sn#)Mje}E$Thv%0u4N@Aag3IMky7iE z)S6-jr8f{v2u5qLZP*>jCLq6xCsr8MCKE3++mOL()cX1{#2TcOGa8E-tYjZSUN+`) zn2L(@Y?#94Vt%&iIG747SCIv?1zW8^XMl;qZ$^L`Ost+keK?(&$-o781W`)4&SW<6 zdE02>>5ip2qPSBI1CC9Rq}PEBaIQO})-qfYtG7=?%xxvsk8MM#Nue?_8nB&i1fxY* z)81;mg=t_w30f_}=E^rQe_=@LFeI~O20g3R+B%qS&@$!Og-B&7fQ63N4s_WJ3(kbn zlXWH|Yr>NdS+m$IYR+uxqXW~W^2-~+@Tg&7bvK)h&@1}{NoF)KuQ@Y2Mke%7UBvLd zGo%=q;m?S=ph);DLM;3hL9D}oKi5FM1R=Q*_Pb#~F$0Z3L_Aw$3a`?sEYGlH6 zUCtY*6i*wDEWlv`DGbtrBnoBltqp^{#{g|os1R@tQawn+T$q;v-Cl18V%vz`z`+5J z4r&>IZzQ78C`d8)t8F257I0Ch^p!d$kj_9qbPfwv4~>LFDF&8}Z#y|8v_ zRA93e^0Dw1;7|lmi$InE%8Ae%!0fh51bHk_aZL{BM!t0pp?>yJFx8KP4tR>eVg>c% z5D7YBeL0XZl-C+dibM@9MDl%a7!3$Z{Txeis|@_XNk9+`Zv-ML$Nz6N9SMeOY{p32 z5Jf^K8jNC_P%$d#uo@IJ*PHv*`gnri&X?2=HtO8aJ^R#bmKWch%~%hAeWpQi@Yxj1L`s~6UM{%UD-IW>gJ7u; z5mKoWBBeZp1PCA*?qj3@kR>5Yc)cwZQpk&OqJYY`>g56gah4QI#Q>#ZF%U2_NC?1H zVt7881y`(a0#I2c0&?XKO zaH-dDuTdZZ_(6nMMf>&&ILe9%{$Rjo z@QDkqcJM(XkM!*WVPzI;sQ0IN#T;8^B6uGAof?F%C;&(gK+*#_Lb z%U&N9`%&a?oe5k++hw2zJo-SslLO)2$(mC*2B-tsf}sN;5@OUQX5j1Ljl!rc;M@Lp z1)cCA-1cPQJY~lkr}ld@ga#+E9E3}Jc+JP=45QHM@!1@1R6`LJ&*%O<0LkAGP;iS1 zw_~Uiq>c5qo^^Bnf?oUvI0y*6>Lv@GD6p_#XO}}0GBqXH&UU& z08>ydl@H&X)Y0wnVdh<>`6`VZYr_y1U z#JfIzTJp8>z{RV9YO+NE*4>?FKpzY7IIK>{XD8Mo) zC=V!QpcUS?DUgge9wW4dx3mV{ETE@>OlxH0*ec$vaL=`nrtxyR^ZUOwqQR1Itb;c) z+;iThz%KtqOc@9Vn(n(?sXB^)(kup zynXq0vu$)d8!)%s4jB9IwI2?*Pz3Y}hZP%edw&qz1Yuh>=6%&-ui7gX zZcPZ7b#S(TK9=wiB%WRWsGfqK!3f>iwKuj~d5NAXwO&}n1uGSFFa?_-tA%q=TyTC~ zYDA}C%4CL}POWDROk8jUV+!up)m;(`Cs6*fg8~5tQ(UlxGjuV*skTIIiYU=(IM&1# znj_#0)J1J7QIsl!@&2kSgtN1KXXjf3Q501#ES*0en=2Y=1Q(~El>ttCalx4t2}Yw{ zXFbX);8rF$(kj8sSxjbp1pS-(v=8R%LE9!cEyLNi!iEEdv!3x8Z4Rd^g#%R)WBQv? zqwG>CcpBu`PUNg1gDGY7lpe#lV6`dTP|6NtxM0enOVGfL1(>l=tv4~YPVqt_-=K|M z^~grL$41s00T^NgyNI0HNd;t6Cq!q6B<)0mkf`oR62jW9bS&-XK=Ghm z1O%!TE+s1w-NK=s&^uc)+9`BP`tI%e+3M0OLnNl$%{yzWJ>H_Lh12P3!N^(xNsy#x z+N3E@`&~TK&Fy01$))3+Kcn62wIZCL{i>O~K7xFqNKWRf?1&hUJf$D)BZ3lVxm2ar zo2d-AUZ;}4Ei0ST0k}XS_sJ_}sC-pQZeDJ_DvyFob9}R{Y(WR%a#y*3G2Fm)iHs~O zD^plZ499yz1?)h|K)M-b5y-vs^Rgnah*TYCGDlc%;pygn?n;`DftP>!0~&+T_E9mN zV>mUzmbPU1&p zv693K_l;+l{cz-AhU?cagBM6f7oT=n+IHN?6$`hn-XC@8PLN;sBVCTCUj1@S*`8m^ z<~>PM#fSAvntpG2)%81-+p<@RPwX`8K2qv7TidUu<*vBusjKogeR!&NrPI2_s!*|K z+T7!F&KFQs2v^hSBQ|URo5C{c&2vA-84ett%~)cZsGk9#iK(*!gYM zp@BnhdS455*&E{fU}kE3e2ZOUXFab88ga=&zN3W@MCSl$Z%c>sGRrmP05Evr#r+q8Ef4ZeLdoS>g zU3+fs>OBL(GT)0me1;ALg9l25zCv$B#K)549;e3dBb`so9+gu-J@**Pk6xe$LA(?S z1*B*n?S|Rq7$@Nf;ES(N9cssEqNa&W9IG)I8_RQ?7_i1*Vi4%iQ_Uk+izU3vy*l~I zi0#XoE?7@EpNgJRcHwiw2J-Fh*~?G1*xuoJ+nA(xhW%1G-qq)BX?wKw#I~a4k&#rh z1$m3cb_*KpJ+q+NBRC;A$hhVHpNZ%7y^i;M)MDNIwI3U-ZfNsEVuc>OJNHDExP~u+3nWUVNKh#83;-Tid2@SH(4wx;7W-208KD@io4`Q^&`qs6$!(0* zC^J1h9c%Z`oX6r`vj+BjN0FW;j_KxlD?PC7&_R8RGsQo2E1%6Nlh3MWJe+au)bWLZ z>+fBD>^$x9i{&m0o*rDJ{I!|j?6Zeo_6%OVe&@=IGa1dgc9$xjt4oW1Kd?OZh57f= z^5*Fuc~_h@uUNd@Ytjbye$V<>hR)g7eZkL1J<5KodARxD>8xGjb3|FC4?me4HfHdp zpRUsrFDKXB&i`{}#T~Z^N5;Gy9O`wa&GIjPIn-;>d!94cI`G+)W25PW4rsv`~@S2`G4O3pw)R)6MC>zG3^1Cv@UliS^(?Z!CeRs|1|Gx zkMy#Qv_M#>IC!G&k>4mf7xRY*d(!Dk5|_vSPp48fI5MiS3nD~xIBp|I7)poGEoy^m z18bT&I2R2+4HZUxq(;rVkz%{s05>v_?oWr=ad0C6wu&Z80dQky5@D+kyCkis=Ok-_ zZJhP@niY!1Ey1?b1?xo#qi7`^DH1{!IeIOU@a4Uh$+jamR8PuLy|M&(ueIP}v-Q!# zns#*Vmsq%d-&is=@>=^+?V5-&Ynps^?(~(S<54Hvzq>dfb>K>Gue*Kb6}`7(#e)2O z&Ck1jUvM;ccE?k@GZQAJX21A(QQL@|y1Y#f6jQHk@|-ts%O?t-txNZ{^N#nolv5i5 zTL&(A=%F5%c0bts*`MdeeB$4uz{6j$+U@DNO&M9=XBlc+MdVA$N3Hr*BP8Q~D}vqW;B>$e)e?ZGoO2d^KVQaz+ouwwSG$`-Cm6ITlNT;8F% zbmQamD@J#1wcqXFTOo0yPd<<=I^26)7PaYvJm*>Li%_2lU+@1>f>PfNmfk8`mhtTR z*z4bSc<_*}cDfFp>!i(VjaGS_SyOYmcIuw2ltF_g#J^&)f1yXg;ZigNOP!QTS{Y6A z;gSPNS50(qcF8IB08QfN&tFbc$qiTT5IEs0cV#3U0h386aBGzf*YT8!wQw2+7~!1E z!VfRPsRTV!4wn#cJD%3*mD^5!8L{HjrQ-RTvu!*=XL0QI7jehaCWfbQ zTaPDyFlfz32;aU%zl>s-f_bYxx|{Ln_{h2rKH-|J zpEXau;65bpgC$F@RF>bboN>`}qxq|#x0lV38`-(to$l#={Kg&{TFWsl^$Mmuj zU*wFutXqB0Cz?z;{v7-M zSZ zkTT<+USqphw|9mD6#o`MW7b!|2PpoxLX4JzPy{A8l>{fC{7fpTo*#Z-K;>|1_%#nK z8aO<_FOA?!KNSX!whjDt8-8*GU$B6xr3xzGOI0Dm!4)4v!CGP9m)-a)79?15gSV&D zW(p75>)yM8M?uT6`9d4T!U9?*av4(7ov3+~2r~hKXrbpTu8a5fgL_Z-{$ch2@5P_~ zQb!Hw{uHH7-S5=jsh!}lY_nQ6W;qdg;P${r_YY53J#XVWk~*`b>(xCuO?%JTHem9L zYezPqA+vXMN7Z+zvDxV|JKkBXbdU9pffx=;F{hjCrkp^@u;?qOQIQS#3H!w+VTn0ESl?^(R(P-}#6x8csfO^MGyO&T1pK2Yp)6Y}CP#u9*j}R{Wmu zaqIcB&#&8WM7It+o;d%J>WhGjF?-(cadGqB))$hyKU__=S~#Iu_`JLK`fZt9e6*=N zAYlEhMG4=v@yeGC+gW{M+x2hGjlb|=TY5=Fz?sFXS1juJIhA#C`tV^#$LIapW3P7) zbX9ro#F&>|msFF<;GN?etS3@dlS&{(knm-yYR&)EdzCj_2suoxx8YjEerM$(P`cJ5 z&IHV(`VuFl2Y(%-gbNuZ4mJC~HjjL>c6{l7RcM|T!+twv=CK!-*LzHU!#w(Mz^6AC zS57_sxN7UD=tI-W7c7{(;k{k!P96C+-ly)=<+O<bmo{p091QACTr zO82PA9qaCH=(%NMHafAnq`BAOFZUI+-{nNiiXtDcJGE+yu5eZV30du;uDptU|qrI0-X?ddKrT5BbRP~FPK74QUcMF0RKCMcgG$BTOXIgaJ-NRYC`_B2|t$B}* Q#kv&zaUk#V@-T${3tjxGR{#J2 diff --git a/server/data-store/Dockerfile b/server/data-store/Dockerfile index e508a8c0..df57240f 100644 --- a/server/data-store/Dockerfile +++ b/server/data-store/Dockerfile @@ -15,7 +15,6 @@ RUN mkdir /app ADD . /app #RUN cd /app; yarn; WORKDIR /app -RUN rm -f paket.lock EXPOSE 7102 RUN chmod u+x build.sh -CMD ["./build.sh"] \ No newline at end of file +CMD ["./build.sh", "sleep"] \ No newline at end of file diff --git a/server/data-store/build.fsx b/server/data-store/build.fsx index 1e644483..c4ff8b25 100644 --- a/server/data-store/build.fsx +++ b/server/data-store/build.fsx @@ -69,7 +69,7 @@ let startServers () = info.Arguments <- sprintf "--load:src/local.fsx -- local-port=%d" port info.WorkingDirectory <- __SOURCE_DIRECTORY__) TimeSpan.MaxValue false ignore ignore - + Target "start" (fun _ -> async { return startServers() } |> Async.Ignore @@ -84,7 +84,8 @@ Target "start" (fun _ -> System.Threading.Thread.Sleep(1000) printfn "Waiting for servers to start...." traceImportant "Servers started...." - System.Diagnostics.Process.Start(sprintf "http://localhost:%d/" port) |> ignore + try System.Diagnostics.Process.Start(sprintf "http://localhost:%d/" port) |> ignore + with _ -> traceImportant "Failed to open web browser" ) Target "run" (fun _ -> @@ -92,6 +93,11 @@ Target "run" (fun _ -> Console.ReadLine() |> ignore ) +Target "sleep" (fun _ -> + System.Threading.Thread.Sleep(System.Threading.Timeout.Infinite); +) + "start" ==> "run" +"start" ==> "sleep" RunTargetOrDefault "run"