From cbec09946f36f7bfc0f4facffc80aa7eb9ec1ce5 Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 06:19:03 +0300 Subject: [PATCH 01/17] move all extra files to spec folder --- unit_circle.html => .extra/GeoGebra/unit_circle.html | 6 ++++-- doxyfile => .extra/doxygen/doxyfile | 0 install_doxygen.sh => .extra/doxygen/install_doxygen.sh | 0 .github/workflows/doxygen.yml | 6 +++--- .gitignore | 6 +++--- 5 files changed, 10 insertions(+), 8 deletions(-) rename unit_circle.html => .extra/GeoGebra/unit_circle.html (74%) rename doxyfile => .extra/doxygen/doxyfile (100%) rename install_doxygen.sh => .extra/doxygen/install_doxygen.sh (100%) diff --git a/unit_circle.html b/.extra/GeoGebra/unit_circle.html similarity index 74% rename from unit_circle.html rename to .extra/GeoGebra/unit_circle.html index bb3f7e9..2e5e3c7 100644 --- a/unit_circle.html +++ b/.extra/GeoGebra/unit_circle.html @@ -1,5 +1,7 @@ - \ No newline at end of file diff --git a/doxyfile b/.extra/doxygen/doxyfile similarity index 100% rename from doxyfile rename to .extra/doxygen/doxyfile diff --git a/install_doxygen.sh b/.extra/doxygen/install_doxygen.sh similarity index 100% rename from install_doxygen.sh rename to .extra/doxygen/install_doxygen.sh diff --git a/.github/workflows/doxygen.yml b/.github/workflows/doxygen.yml index 9b30b9f..94c6724 100644 --- a/.github/workflows/doxygen.yml +++ b/.github/workflows/doxygen.yml @@ -25,14 +25,14 @@ jobs: - name: Install Doxygen run: | - chmod +x install_doxygen.sh - ./install_doxygen.sh + chmod +x .extra/doxygen/install_doxygen.sh + ./.extra/doxygen/install_doxygen.sh - name: Install Graphviz run: sudo apt install graphviz - name: Run Doxygen - run: doxygen doxyfile + run: doxygen .extra/doxygen/doxyfile - name: Upload Docs uses: actions/upload-pages-artifact@v3 diff --git a/.gitignore b/.gitignore index 7f73806..955c1ea 100644 --- a/.gitignore +++ b/.gitignore @@ -76,6 +76,6 @@ compile_commands.json *creator.user* # Folders -build -.vscode -doxygen +build/* +.vscode/* +doxygen/* From 2c729d17575556bc55aa28c91bc85b33a7051ec2 Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 13:43:59 +0300 Subject: [PATCH 02/17] update window title --- main/mainwindow.ui | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/main/mainwindow.ui b/main/mainwindow.ui index afe989c..244fbc8 100644 --- a/main/mainwindow.ui +++ b/main/mainwindow.ui @@ -11,7 +11,7 @@ - Trajectory Calculation + Locus No Pilotus: Trajectory Calculator From f217870e228a43f421b281343844f3b096a86b6f Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 13:55:14 +0300 Subject: [PATCH 03/17] add file for test trajectory --- .extra/file.json | 145 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 .extra/file.json diff --git a/.extra/file.json b/.extra/file.json new file mode 100644 index 0000000..aa8c278 --- /dev/null +++ b/.extra/file.json @@ -0,0 +1,145 @@ +{ + "Hills": [ + { + "Id": 40000, + "Vertices": [ + { + "X": 6.4, + "Y": 6.4 + }, + { + "X": 2.2, + "Y": -0.6 + }, + { + "X": 9.7, + "Y": -1.5 + }, + { + "X": 13.5, + "Y": 4.2 + } + ] + }, + { + "Id": 40001, + "Vertices": [ + { + "X": 23.8, + "Y": 9 + }, + { + "X": 10, + "Y": 16 + }, + { + "X": 12.4, + "Y": 8.8 + } + ] + } + ], + "Targets": [ + { + "Id": 10000, + "X": 5.5, + "Y": 7.7 + }, + { + "Id": 10001, + "X": 10.2, + "Y": -2.7 + }, + { + "Id": 10002, + "X": 1.6, + "Y": -1.2 + }, + { + "Id": 10003, + "X": 13.8, + "Y": 5.6 + }, + { + "Id": 10004, + "X": 22.5, + "Y": 6.5 + }, + { + "Id": 10005, + "X": 27, + "Y": 3 + }, + { + "Id": 10006, + "X": 31, + "Y": 0 + }, + { + "Id": 10007, + "X": 35, + "Y": -1 + }, + { + "Id": 10008, + "X": 42, + "Y": 4 + }, + { + "Id": 10009, + "X": 37.5, + "Y": 10 + }, + { + "Id": 10010, + "X": 26, + "Y": 14.5 + }, + { + "Id": 10011, + "X": 19, + "Y": -1.8 + }, + { + "Id": 10012, + "X": 22, + "Y": 2.4 + } + ], + "Trappy_Circles": [ + { + "Id": 20001, + "Radius": 3, + "X": 30.2, + "Y": 14.3 + }, + { + "Id": 20000, + "Radius": 1.5, + "X": 29.5, + "Y": 6.7 + } + ], + "Trappy_Lines": [ + { + "Id": 30001, + "Id_P1": 10004, + "Id_P2": 10005 + }, + { + "Id": 30000, + "Id_P1": 10000, + "Id_P2": 10003 + }, + { + "Id": 30003, + "Id_P1": 10007, + "Id_P2": 10009 + }, + { + "Id": 30002, + "Id_P1": 10006, + "Id_P2": 10008 + } + ] +} From c5ef0f4ed1df467d598c7cb6c89a8cb93ce51ff0 Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 14:03:52 +0300 Subject: [PATCH 04/17] add doxygen theme submodule --- .extra/doxygen/theme | 1 + .gitmodules | 3 +++ 2 files changed, 4 insertions(+) create mode 160000 .extra/doxygen/theme diff --git a/.extra/doxygen/theme b/.extra/doxygen/theme new file mode 160000 index 0000000..9f97817 --- /dev/null +++ b/.extra/doxygen/theme @@ -0,0 +1 @@ +Subproject commit 9f97817e703aa2c15503067b2a72c97f9d37f46e diff --git a/.gitmodules b/.gitmodules index fc7d4c0..09a42d6 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,3 +4,6 @@ [submodule "qcustomplot"] path = qcustomplot url = https://github.com/legerch/QCustomPlot-library +[submodule ".extra/doxygen/theme"] + path = .extra/doxygen/theme + url = https://github.com/jothepro/doxygen-awesome-css.git From 4b5f2de70c93cdf481ee883bdf7cf1f7d1947d58 Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 14:06:17 +0300 Subject: [PATCH 05/17] try to add new style to our documentation --- .extra/doxygen/doxyfile | 4 ++-- images/images_source.html | 6 ++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.extra/doxygen/doxyfile b/.extra/doxygen/doxyfile index 9ffb286..89d46b4 100644 --- a/.extra/doxygen/doxyfile +++ b/.extra/doxygen/doxyfile @@ -1411,7 +1411,7 @@ HTML_STYLESHEET = # documentation. # This tag requires that the tag GENERATE_HTML is set to YES. -HTML_EXTRA_STYLESHEET = +HTML_EXTRA_STYLESHEET = .extra/doxygen/theme/doxygen-awesome.css # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or # other source files which should be copied to the HTML output directory. Note @@ -1762,7 +1762,7 @@ DISABLE_INDEX = NO # The default value is: NO. # This tag requires that the tag GENERATE_HTML is set to YES. -GENERATE_TREEVIEW = NO +GENERATE_TREEVIEW = YES # When both GENERATE_TREEVIEW and DISABLE_INDEX are set to YES, then the # FULL_SIDEBAR option determines if the side bar is limited to only the treeview diff --git a/images/images_source.html b/images/images_source.html index 3197f4e..e0e64ed 100644 --- a/images/images_source.html +++ b/images/images_source.html @@ -1,10 +1,8 @@ -Document icons created by Freepik - - Flaticon +Document icons created by Freepik - Flaticon

Save icons created by Freepik - Flaticon

-Contract icons created by Freepik - - Flaticon +Contract icons created by Freepik - Flaticon

Folder icons created by Freepik - Flaticon

From d6712a5fb2ff77b020e834614d6d82a7a2e2babe Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 14:39:29 +0300 Subject: [PATCH 06/17] update README.md --- README.md | 39 +++++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 57d0126..4f1ccf0 100644 --- a/README.md +++ b/README.md @@ -2,10 +2,28 @@ **Project of four first grade MIPT DAFE/RSE students (for engineering practical work in the second semester) in Qt C++** -## **Contents** - * [Documentation](https://umbrellaleaf5.github.io/locus_no_pilotus/index.html "documentation generated with doxygen") - * [Installation and configuring](#installation-and-configuring "with using MSYS") - * [Authors](#authors "the best guys") +## [Documentation](https://umbrellaleaf5.github.io/locus_no_pilotus/index.html) +Project's [documentation](https://umbrellaleaf5.github.io/locus_no_pilotus/index.html) generated with Doxygen with [convenient CSS theme](#used-libs-and-packages). + +## Contents + * [Description](#description) + * [Installation and configuring](#installation-and-configuring "with using MSYS") + * [Used libs and packages](#used-libs-and-packages "we are using GitHub submodules feature 😎") + * [Authors](#authors "the best guys") + +### Description +\ + +In this project, we are developing an application that calculates the trajectory of a flying delivery robot that collects valuable cargo from control points: **Targets**. +On its way, it may encounter high mountains that it cannot fly over: **Hills**; or elliptical territories that are impossible to visit due to climate conditions: **TrappyCircles**. +Also, through some control points, the robot is simply unable to move, as the cargo may not be ready for transportation at that time, these are **TrappyLines**. + +The robot's trajectory is calculated using several mathematical algorithms: [...]. +The graphical interface for constructing the trajectory was created using [Qt](#used-libs-and-packages) and [QCustomPlot](#used-libs-and-packages). + +In the application, you can add objects using window forms, interact with the trajectory calculation plot using the mouse cursor, create and open files in ```.json``` format with a specific style for this application. Editing objects can also be done with cursors or using a special dynamic input field with tables, opened in a separate window mode or embedded in the main one. + +*We strongly recommend that you install our application using the instructions below and try it out!* ### Installation and configuring @@ -80,9 +98,22 @@ > Much respect and help for this installation method to [George Sukhanov](https://github.com/TheFueRr "our colleague with an equally interesting project on processing experimental data")! +### Used libs and packages +* [CMake](https://cmake.org/): main project build system +* [Qt](https://www.qt.io/): main project library for full-working program +* [QCustomPlot](https://www.qcustomplot.com/): library for drawing all objects on same place with autoscaling ([submodule](https://github.com/legerch/QCustomPlot-library "reference for submodule with lib in GitHub")) +* [IceCream-Cpp](https://github.com/renatoGarcia/icecream-cpp): library for simple code debugging (we really recommend to use it in C++ projects) +* [Doxygen](https://www.doxygen.nl/): full documentation generation +* [Doxygen Awesome](https://github.com/jothepro/doxygen-awesome-css): convenient CSS theme for Doxygen HTML documentation (it is really awesome) +* [Flaticon](https://www.flaticon.com/): perfect icons source +* [GeoGebra](https://www.geogebra.org/): best platform for geometry calculations + ### Authors **[Romanov Fedor](https://github.com/Romanov-Fedor "math greatest gigachad (Desmos proger)")** + **[Rybalkin Ilya](https://github.com/Stargazer2005 "traveling salesman problem and Dijkstra algos enjoyer")** + **[Akramov Nikita](https://github.com/MrWh1teF0x "jsons, gui forms and cursors hero")** + **[Krivoruchko Dmitry](https://github.com/UmbrellaLeaf5 "repo manager and gui guy")** From 385640c15c7226ab335ef08e80e7a3cc7a0d41fa Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 15:15:08 +0300 Subject: [PATCH 07/17] README.md beautify --- README.md | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 4f1ccf0..34c5154 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,17 @@ -# Locus No Pilotus +# Locus No Pilotus: Trajectory Calculator **Project of four first grade MIPT DAFE/RSE students (for engineering practical work in the second semester) in Qt C++** ## [Documentation](https://umbrellaleaf5.github.io/locus_no_pilotus/index.html) Project's [documentation](https://umbrellaleaf5.github.io/locus_no_pilotus/index.html) generated with Doxygen with [convenient CSS theme](#used-libs-and-packages). -## Contents +# Contents * [Description](#description) * [Installation and configuring](#installation-and-configuring "with using MSYS") * [Used libs and packages](#used-libs-and-packages "we are using GitHub submodules feature 😎") * [Authors](#authors "the best guys") -### Description -\ +## Description In this project, we are developing an application that calculates the trajectory of a flying delivery robot that collects valuable cargo from control points: **Targets**. On its way, it may encounter high mountains that it cannot fly over: **Hills**; or elliptical territories that are impossible to visit due to climate conditions: **TrappyCircles**. @@ -25,7 +24,7 @@ In the application, you can add objects using window forms, interact with the tr *We strongly recommend that you install our application using the instructions below and try it out!* -### Installation and configuring +## Installation and configuring #### On Windows 64 bit system 1) Install **[MSYS2](https://www.msys2.org/)** to any convenient folder as compiler setup @@ -98,7 +97,7 @@ In the application, you can add objects using window forms, interact with the tr > Much respect and help for this installation method to [George Sukhanov](https://github.com/TheFueRr "our colleague with an equally interesting project on processing experimental data")! -### Used libs and packages +## Used libs and packages * [CMake](https://cmake.org/): main project build system * [Qt](https://www.qt.io/): main project library for full-working program * [QCustomPlot](https://www.qcustomplot.com/): library for drawing all objects on same place with autoscaling ([submodule](https://github.com/legerch/QCustomPlot-library "reference for submodule with lib in GitHub")) @@ -108,8 +107,7 @@ In the application, you can add objects using window forms, interact with the tr * [Flaticon](https://www.flaticon.com/): perfect icons source * [GeoGebra](https://www.geogebra.org/): best platform for geometry calculations - -### Authors +## Authors **[Romanov Fedor](https://github.com/Romanov-Fedor "math greatest gigachad (Desmos proger)")** **[Rybalkin Ilya](https://github.com/Stargazer2005 "traveling salesman problem and Dijkstra algos enjoyer")** From 399288d8c5a4c42433bf27ed54c63c6948310e8a Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 15:46:06 +0300 Subject: [PATCH 08/17] fix bug in doxygen --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 34c5154..cf1618a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ **Project of four first grade MIPT DAFE/RSE students (for engineering practical work in the second semester) in Qt C++** -## [Documentation](https://umbrellaleaf5.github.io/locus_no_pilotus/index.html) +## Documentation Project's [documentation](https://umbrellaleaf5.github.io/locus_no_pilotus/index.html) generated with Doxygen with [convenient CSS theme](#used-libs-and-packages). # Contents From ca178d78d2186f4f01be6ee142f1d429b32cd6e5 Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 15:52:06 +0300 Subject: [PATCH 09/17] update GeoGebra files --- .extra/GeoGebra/math_test_1.ggb | Bin 0 -> 76139 bytes .extra/GeoGebra/unit_circle.ggb | Bin 0 -> 70361 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 .extra/GeoGebra/math_test_1.ggb create mode 100644 .extra/GeoGebra/unit_circle.ggb diff --git a/.extra/GeoGebra/math_test_1.ggb b/.extra/GeoGebra/math_test_1.ggb new file mode 100644 index 0000000000000000000000000000000000000000..762d221ff4e72dc53f2f8d7bdfe375af61358457 GIT binary patch literal 76139 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 |-~$%qd6f z>J$D+PFNY)ouHk-7BI;1a)tY-`eYzV4g^X#00Kd!2Y$1J1V@Af2Sx_?1qGiEh$cmm zje-nf!bpD=!KB_ay|e`c@`C(TBoL7Po5+#>E5bEtX;uSDm)2tUH?;sO{7HlmKnWn@ zBSSAn84$>StB3{nocwkWh~o+ZDSe~i_9u;RPXV;q4sN%@v~ds_ko5Cy>B+$A|4t$5 iLUdSQct9x0;9_`)6ISj!X(4hzvX=pY6b=Gkp#K1LlL8q4 literal 0 HcmV?d00001 diff --git a/.extra/GeoGebra/unit_circle.ggb b/.extra/GeoGebra/unit_circle.ggb new file mode 100644 index 0000000000000000000000000000000000000000..d941787ca50aceeecedfbc3f7f52378e216f2c0b GIT binary patch literal 70361 zcmZ^}bySsM*Y&&Ua?>R#jieym(jW~|(jd9%mXz+;v~);!cPJ9l-QC??=jM6dZ=CNv zW1K%64ng*2-`BdYIEsHFSnJIkKCuxLHGvw3i&#xp3Q$g#x8CjwCv{csdo*NL|eMhUB+3d~m-flj*@97@-xxh6bT+QXQOlu8fVvZq_JnaX24Kv(TGSoNKcR4v!SUA}aSULM^RJAQ?9@Ar2o-rp7g0%w$_#UK1b>-T@IxJCwG`@_-0<7;z9aB$ z{yEO-W8~cK{mJrr<*8n!uncT&{iowrq8NRI?g9KoFaK4`);AHNPr>x-6HGK)7e<*X z)2nVpfkdu84Loqa*_H5~VVv-C+5#qgy=Q)u*K(frqeR-g#lq}GP^Y;%MT#^G9FMd| z#w~&uXwzG%6?y*lIZt^tLNuiaJ^_2-)BVe55cqpvc~kq%pBKonfVdmsu=pbuXw z=V7Vb4UNdF>}Ev{@p;?uHkJoM6kHwOSlVlc>y@~6OFAL#pCJZyFjS!kEsJ&G2{+OD z1=mF)ht0v%i|+|kZC~C5>Ur7j zH0+!S2Yo7!y^pc`$B$+oGqB7!EbCb%i(?PlJz}J6Xi?;mKSsSx3n^Jh7K3G8VU$_& ziO)#fiRoPMND!$nNB_Q6>lBpVGm1-cPrH|#X9dmreL}Zry1HB{eIHDd)3T7b@9Z8Y z#vh`COv3#TygF_nq#rJc?|k1q@u|C>i+J z!lB}zYyq@1QLJJMQJl6`o`)lR5k_TS%L1=AClo%D~n`94IUGu9Ddw#YLm_q{=11GMn-lO&&dbXICisXH9 zGq!H*tk<~~6Q1z*M64uE44xN-yyk%-H(JT1>cle#&i+xtr*O6(c7MY~JdQqetsF#{ z+B!zih5md=$We5WPChTh92#qgwG8Nd=ZYE??Q#$i4$a5ixtPkhjxgpDW0IMJf5WX^ zDP+X++t;p!0pv0M=IFQdbTF)B3L66MTTeq+I+SLde?l9(T>b7{3={Q|c7#(Uzjg>+ zHK~SGVO!P$wKEB-oq5};k8NQKwL2P+;=I7IvY=e_h=)-eOrh;i8>v&$r z;8Y%s!mgfrl-3>dtTGooGWq?p2Q#He5?pU05i3eLtDR_ym>TrV+tlTpindJPIw`NAk2u|lNIWcS2x42=5Hd4UxkPUDJL#4&O^J>c}!~8Qr zts$yvKfPX%dpms9CnFV$>c}PeOZw6IqN6#dCED_p+|D^wM!VUf4O!e3Xv$3T9h#Xj zE3IChp2?3{dtB&FG>6gGa=MBUe=fA8Putx%NxZILj%F$7ZM1TIw0_8$m;`Rzj_u$0 z0ItWY>rHU*S6&*X$H@aEr z@U=JY(ChmiX}AWa%$_}trLRuMshh4w{Hj}F71^-$Xau=0Zgzr8mz`a8>njEiRlPq4 ztAyS(37L-HQ$jt;H$IViuj}B=9OxGJQ>moij~^Co&wBW&AtYZodsiMA>JB~6Otp+X zE?56M`u*ETIQ=SE%`5DNyMfPI=lgV}|Fg)L zhkY2OTg$7;5)X%E|!vDWjkfouEp`)>bg`E?NrQ>JDq0cP+ zgCnZaii+nW7lQ*#W20(?rYCe&^<`znWPka?%s6R!VR&i5MaKQ|BGPwX`YPa7#U6b7q1o*`}=x3xK3c|=)XJPUWU za$V^3<*3WVic!I z0RfCMsU?99N-?EH?n`?~-!IkYG2)V^rM`E1Oq zJUCiRgRqbLj{)hbn*QBAe~#;i@aVhtZ}(XDt%MWG!Q>9xMl_8W)aP#epcFuyhc)`~nRBvJiLH?;sn^EHI}t9H@vOVysNQ zGiywCmTSzfhnrm~#wI(@CL$sqJ@P>Z{Pk(k@iN@y(w{^NoroQkgC*B_1NNYx$I1rI zv1Di{Xf9cgk{k>{!M~FG2I|3yhk;)z?U5KssZEDEhN(uUJI;I<$#5(&6%R^`2%g@( zXZ2}+{J<_^Y%g@+_@;AUc{CzDldP zDxr!(H>_o`(;+a9^ioqp^>TO)2{RM7Z*Mw8^)Ht zzPxW*-?&qW@_$diVB;-c8@22-2{<(EG+mAu5nptpq-7BFctiMq5I2({mQDmf7VRJP z`ly6MbVqK|I(u@5_RRDa<(Q9c0#rsjO#8JvmB7mrvKsMAR|HqzQgRDExhVe=)ulnJ zD|NDtp8AqEQJB0fN>wBy*_FB+HE(~+as?qbH60}7{9R_98~$M8OLgv}p`S5L1Yl($)h z%u5z}>*1^DHgL=4H+51U%_J3Z!=qf8j zjU_H&6nU)HnU-9%E752x{rez3Bq?$INp7wB1Sjk#DjHkP*C+Paf4q7Sk^)0c3jSMu zj*m+z$?7=>-K9OFqfBvA;j+|Pf;g}?V=;zlMvVC_NKYkmTFR|V#j8uu%$jn+cwa)`S%)6!y6t!d&*a>b97Cuurn; z7A)vWQeTo!S>R7Vna>X$k3Jaw7{oCaNagNphOjP|OW!~PNQAeDk4}kagr^-Da+cZ1 zerTvkpf$?LlpP_5dJ6d=Oo2*AsZxhn0wYghlt9l;vode(;)_!;s|m-`H3} zUZrqtjSlW}xeZq#Z}OP}l2T)*=$!#alEZWEU4u3rIz}i`)X@IS&b%{Ya=i z6P5!m0ao>4f$r%6YOK9BzKl26N?>(oym5VxhsQmcmi@RaiL_?YhK4L>@4cSe;HU$$ zV~SeppUa!`W4h^Z9ntL=Hiu*u+KjA|xi{7d>>Psr*?YFB6mhj7bVH-Dbb@`O1PEU= zIuCtGNE}xbho^XzkM}JON8MR>vk@PaE`GxcR*1W)bT(rg_KQ{RFYy|5JS6<^Qfzj6 zGy7f94Rm>OXJz`*l_g(CgbJHpbpv`iYYE1hNsT~Pl6K{fHvZC0@?l*4QLI5;aQ<@D zd#)X!=A6emG23=m{FACo2A-S}2E;#fc&5JTp1=D z*-sSAO8Avz@!{niu^`h~S*hiBJeX<~3mfte1_?i|ELI9vyWS=fUsx+FUl*wvwM9nl z#i1S(6ycmMSpB*b$_cfy-*o#Fpg$EOW+yUjlE8Cm+<7=>L%2SQ-qD$X>eMT;mS%uN zPeOVK^lK>x!da`HZHb#=iJ&ns;H zvHba(?*9lb(0{PgmT1S~;4=vH`saTME+=zmYa<&&3kZvyjajIYf)p5)2o(@fU>Rv~ z6%Yt^76gJxK}H0=QX?#>4EzP-s3Ii_Djz1<1A*RwWW+zIx#=CYAv-JN zw)ilT%qBMUaYTUTX3g<%_zEuqEq`PLcE8ZM0g?o}5rE*w6o1gCw zreKgrvQGY7Ejo@A(Pg-arn}5r>_6SCXb5^-tKrbf(bpQ!RvKDndR>o=9IkY9@a^Tr zP0BKs<(&+fErts%SeBGIb)?h37gh^YOlESxF#72|9wUp3(QwWo}q>m`9l-FbMl$cOoXm z_I~N%@p3}(zJ;Z8+wr6F(9_Gq%1iOf&C7G9wrR>Y+2vRa9VJsP!sBgUZ~K!W{);G^ zj#Gi-4ZrX0171rW7t0_?SJe$Gj3;@YCQ#hp_y?BiK1zwBO+oYAB@IuCNiy0t58Di+ zPM3#$puCh`E`(oHs}28+2MIl0sxDR7WEPBNjLz1unb_C%Mn0bog>pbr&MaiOxM)o)f|3-kKnZ{8);YuGWfaa&|6# z@4H{uXH)k#dCxIBtHI~h6ca3uqu8IBlr?cG89UEDA(7_6aEV+Omz1k`JzP)0z;tpG zH%D?WH;!^rbXY!QFW9umGq)U8-`{{{xR>2>`EC{+IZydFB0gST+%_FxG;wzf%+KXY zVOZa^u7uKMXlklf-N3*hn)|j6^Bv$$t9eJGb%JNNZV)lZbj%Nco16V7|6=H$uMvd2l$Cx65u#)?)I+YEP%$ATvAlgl1r+g*>F{i)CC-}j65(;SD#RuDAd zjDQ+C`u$*C*@cJ@VK5K-!RMf?Ve)kC52u@{*S1*%xWje<(|W7T?U=}_RQZw&Lh1G# zLm_r~Z*e?U_LaMhmiW=I#}BMD_><^2vS$={PD7ipD|o<7VcF`fcZiwG{$vq6|Gk|Y zjd$PQlDbo|Rk`V;UrBm=As-P87=L|=vqyAMMCru$Wd=Po;N)^}Te$mDrLEkaZPejx zp43fie?~&OUGRm#%uXSYSXNa|VH@E5MObx!nU{l)mxs25@dj=p>qrH(U#l+>lvE7>Bt{>^8c4h;NlU!Tk5VUrCl( z2Oh#)#M{r}oxG$Ulr7-==03#3&6+xXB5pcv+99h0&Uw!#)uXiI`CbC_P(8phK?e&l zhc}=@^F-}@X11dMeFfF$|CWYtiJzy&Iy_YPbPk$TDg;f7W1V!oc!PO(uGSiHF=MBL zvh@@`QTvst;TOEiMy|gTIFcv2X}Mhwccvy`@E^ednxDo#(Cbu!NgSk=om%Hr*91Ca zJs5Pt<+Yo3b3+Xlh|_0P4MPn+!>58%K){29t=u8`HgA~T8a?G!uO$9hTVzR3=?jVS zeF1KE$&%}euA}jhXH0FEGPAWb$i)!^f%N&dkh(6iX%zni9lquBlOOGeIGmEhR>rBi zUQ}iWWrqwVvl+XX&y27PMnV!l>z&zG^8TaL>e~7m)M!pveac$g zcyrro@;6384aJ7W*KA5`xG1A9;>+F-*6C$BWnt10Re?lgDp;W@0>0l@{6qHy|Gh4+azCKmna{Lq7fV&ucwmi!m5Bq?6 z7tQfVaRKw652=Y4O9*^OQE&Rs#J@3MqM)Ed$$APd3&zq)QPl-ZLKseL?98ReY(+4b zKUzywjF3Xog2_}NUKOj~gZa;OO+5v9=kUVo=Y+^IriX-uQ1hZ9J5`AlV^# zidbyMKrNM5$0&(Y_p=pICYDedK}zNz^i~KVl4}MF2S1d=11Q&3OK|Y8tP<5Ik*L_c z{_^coPG~UbzGwIHo>${7>J@;J93iNHT#5$Gh@LC)Q7j{@1p6*gI-l#*1ENiFa|gem z5z9h1>4Anp780w7k6vFGf-Avjoc3eaARN73(Wid?&@0ryEH#T3xMVJMoTSu#O9EWf zApVx0=&+Rt256lb6L8si^6xpQ0!@va^o=bfvAbAURug*OhZKgGw8-E9-H6}fj4O5z zCq-yzE?VB<4NXM=wyCs3z)f;PSO}|FqmGJV;k=OwUaSL(r3}uJXfZtnp09&U6x-Vo z3Op>a$p%*{3u@k;c_lfhF%61tdlem9KzEtI7jbPUSh<-O4KH?-BwEG+qDH*l2J^!P zYTW0Ow}v4m6QxxW0?d{A>}2X*;BY)MQ#WTJT=CSOhValsv{b!dkRCng``N$|m@2QQ zvLRSqpPdK%)O|KJ*W|yx%O(-*4L`m$2JUXtlVFqk@jmt)Qm=o66e;Z-)!SkWlv~u( zq70NaD?#(Biom~2?yIY_2~*l@t8e=KB=biiHGxZ{UB3v0&{J1!r{Y-LzJ6D-E?c1b zChp(m7j`=6z1X7(Z%TV9gkCbgBGwvNi#zP&oCXbXP@XRbbyeaoaDpn)fUE@k3mJ6p zGaS{Ze)%S?aq^9J&{2aEF*Y97fCnVqQ zsY$DnzcdR`vKm9Tp_{X_k6OxDS~=$B@e}Ead~~98Zv^O1ax8v#0Vi))8R%c;k)_ue zOU-LKkeNW;yS+Ao3XGGXeo8Ed2h^#HQ|oc+{;DeLLPOv^(d%~&dT9&03S94M%)6Q; z$p_wJd^royXx@Z=PQ-OHr+w0T?T^M(?YrCyxU@13gVRC4PrGwjyw;6blZ>(8j7-#j zYba6lV>lBfE*1_r{L6Gvk}BrwPfpC{$z-Rf(~Q~wr??mxIQ+x*8gU>yiSD{l`wc+1bbz&_e}oF&;2pEYrt;J=ccy*~ubRXZQgP20;ry8OS;6 z+(QJ-+eewG9V6NBV5pMt%cG-i4v$RHXQAGp!|;)6wbzOp5F6?%pj3(GnzWoQ)vBoxSoYb7 z-2HgmpRuAJRm`_BXi(v*3f{RN7yue-%d%m~ zh4Bn!NcMGrm6p3Nw&y290*TM`4-)P%p&(T~TcFAp zV(cn+N+B5)$HS;)}@bYfLS4KhuaB+ZPEi%Nyi>+Etdt;-(0_UibE%9fLolzX+w1 zSafAC2VR?nO}EM(YsX{teXsCyc9ih5TOj%kps>n#@W^=VvWNuS?D~sN=gcz8g!PRh zIVTI1bJYN&go~hX`$TNhn0?C25eQh068nuFykqC)?$R(wbq0 z@4}ba(LC$O&JRZoCFQy;#jnZ|DKabRJnGe4H1`g1uau(mtor8M__J6v^a@O*Ip}+y z{k0rmZkRmj!IO2!J3#~!sa<-vj;MTQ{sl;#8te{iKA1S!D3yL?D9Mf+!fQn%7;tlS zdOzRoa1zd%rdo5%%x|Bw5B=x4i2Hi|dtXrabiJUM37cu(^S0RaWcg=140880*r2;7 z)BE1y>UJagAhQj4UiDuQ^PX4T_n$yFl_bagPJ z7+W*i?0oS1<9h*PddkHOK#xpa943CX87nCSx5Kn3RfDcJwRBwOzF7jFTtkhFjNhdc zap3sj)84C#`VOcsC*mmnV;=B7nDLUb`k#nfpv?qzZ5d^b{aIsxMPkii0@|1NetAaM zHQmU+%Of@Xu{t-3PxdAd=7qv{sD>QS(_V_GzmlJ+*1d-~X9{0U!4B+P66kOR(svoY zYw(qC7HBv9UEY9HcIvm#FS@k6Guq;rJ)EC&R`ViCDXA6vc3M#Rzx@Q-MA;m)!gI)29@_ z2c*+ZE=`@g)Q4(Ko0g+`BJ&RgFkhLvhfKt_pyAbVu!e1 zF^BA13SR=3ZiH0?knmYIPT&YS?-r&YaMC#m ze9vnq6c``Lv%UjoeX#QZ2^0e|hTIetWQ==t3Jyu+CA3oca=3tFXs`uM2MNJWihO(2 zb@%%v2gq#imOv27>7#`P4PxusSjxNTopjIh{_ozPC=9_%rMgj3v^`h4bE{>4clc9; zNr#mBSA)L)mq33~Bn7!?uOOC6%ChMTrA!7ukndm8a}z&|vYek=;PZG5{3(ri%U$P5(P*|yn4hU@;(g!OyWi;(0-x3S{n!r|sL0lf9l z?#grn0FfQ{#TC2`#azK`mmoFnadXAO3Q^$TH*l=Pc;4wFa*xRI2~`=BtJH?1;IJ7- z>xO|7hQ01nBdO6&;@_)Y!rF>_1i>t1tyE&<7?khOTYvV{F;Baw&yG1)J@gDeBd4f~V0voN>h}DHrgcvN8SrKCr4)%P zWSB%0p?`N3D@8U&E0vcJLjP{Q-RKch4O8R^xF>}K=Pf7gU!`iQYK8l zAXp5cTLZ8VYwM{fDNOr8dCR1>RoSol1snb{c1OTl?cHo4r#?iH32LtpeBF66r^`xl zcLlK1o=eJ^Cm_hLNPH=cL|%aFUK;pDZsG0@@W6##+?{DdN6iQ2CEW0r3qP&OwQhBD zR(^ zF2d*1s~e5`0_W+4&wQmEX#6;o5FaAyUGh!p80#52z|swGDj3Q45f5@%Tg0+ z-~*Tw1fe=D)?1;hF`dP5=?{}AZvQm&z3QUEYES|;1|KV71nS>7|F$dRUbGXFuUUNo zT4%){Pi_btF8n5m~1#`q>& zxJYLyveG+=upAv>+V6NTz)ZgwQZ)K5PNl%3o09I(CJ+dJ1}CY6@&GDu*6XX&#ginwQ;U-UqL3oaH%BmoEAJC#_ zJJ3!JBvQHT0&5=_v(=<&dWDmeFlzEbK$UB>`gUCiL4llugE z4lEnD?ZpKF9KL_FsgN9tcbmqiK3oKBGEu<90Q%-pFNvevSR=qd(7B$M+QaB6f$_`0 z+avA?^Okagj@_$X3?-ciRJfK5TL?qvtI8sRIY#%48EOE7Ab|50Q98Bng9|=v9>vm( z(k1T^wG;^BXbq!x-q+^&)F*1EDQg)E0lu&E$Cf!sC%7P;yqy`a#tayfJF;*wOV8N`uT^%A}$AWx~ z{8K;)o3-8j=3S&;aP0SQEMf!i!mJx&@2&?wj_k_klX3>9Le#_|buol^ScO!ye%ALG zc8cP}dR$3QO=Xlu85SiWv(`5-koz~skAP#7ecp!Gs}vCf5m%xllL>pbQg+QzN2Hw8#B9XyAnE}y$0=_{Jhdi5C?8xoAVChp zA>JzO?cXDDxnO5|C+LaXyX0$4nN?C+9ro;A7h3(;4qy+FHk};EIJK0>$KD4PdD;PS ztz1gK$YjO?)tJ)gn}Z*wPFo2YmUd4w9nW>t_aVa7jzxs}Q2A(qb7^I)6x;Tk=jsIW zL5x!|tp%k&O5&!&X(>fv$oy_RD(=N0n7pv3i3?isU*8Rl7`YVKZQ8ACot1d@KAe8Z z26ujRT-ZoV*x9jQf*0Q<{M<0;TvHU1h3~u6{A;{M4a-8D*k}=E!j2avfy){8ok$)& zIt}PYAM*tq@w!`*@O1)BC#{N9_rEQf0ya8P0dHfm$FvRS=gK{Uvnm+wa0IXJeB-C9 z8P;F^z)OIs7a&J7o#d&Ab4& zm2c#d3xGe1tdS#pJFebGHi1&9)fJG6r@FS?2hGF?K9Z)XXQ+qxr{8EJb`H-6d4l+D zh1G_G2)~y3TMt~~4HfeC``B1aDs5Av3V+|z*|wNl9U~jaij#Qr zP1)s2p7&=@vNZ}>JF&_Va*^8YG3mca44KnWvit5YEm?xE78U1T48ow@3eeUY&3DbC z$rjbiWI+)N8nwZ$PPshU5oQs|RRQD&EVsvPcTE-PRb1U;BxtD%`q^ip7K-MFGL3K? z)NdPVAx+AVklo?WtZjL}N9i7+L=c60uYeJ8eRv7Bv3j*i(f2jGKs){=<)? z7c33MZYg+P$}>v>!FSu@G+t3Fu2X-s{lGu4P8)=Z6ES+b%Zof$>dZ2F=S_AZ4F)U> z;WKj(ZbksU5?$v+oU@{JBmQbqa@4p3`~}-gew0yb??{rT#9S$SgvF$sxT^4Z`g{>? z|4zIaG-=1TMz}C0n47$6lVg<)ilvk2_Fc%Edti$2h4^7T$_vB&hMA_%j4=uFu4qF+ zCmlkS$ZMjfl(FuEj~UN;`^~FW9|JcQP^B@5-yzm0MVs^qB)^~=X$eXUys|V>MVq@7 zn<4lt|6r)^FgZi^E#zSB$2W-bfK(U0f=Okgsw{!{-pgCXbLN4H@XI3Hu zNC-!sd@4_w7r3)#32Ehtx$-o>-lBA7lzD}C5XDJWO7qOB(?}^}Vc}r`SE(XkKK|yn zx*`@NN)cu%9zUO&oj^xI6=mob9CBwydG4JSWIP609POY8l$2Ny?o8Sqj4doL+^`Vb zpH+_H49c!nz}3n0d3JX}u6qc%r+AvfbPX+ahmw?h!8)_g5}lirspda|VM+RXK$abl z<6QOjcQ*B}nbUHiD(kvS9i9qiT1HH;Nu2~V=u)~tH5w6%o*(VC?V7~uah5**J;T;Tj z1!f4cuz0mI6u?cD6q)4fZDO(|r3q{wZ2*8XA)m8QS#Q4acX)GqQ z{gsID$IfP3;+CNp3tr(eq!6*UN9s(`6GKPwPuPz8@7TSbH%?~_l$lNLe<~Xd z5p)fIH3CP7)J^As_@~M5p(Ms|^lVOnG0ZhR+_~T>e>r_#V(hSxxY5{7MFCfaewyn6NuAOe&o3Nx3%4KFZMshj)fPy zi(C&ngmfxTgHm@FUe}XotgTtSX$*c#Ev_>}`{J7NMJ907#ss)9vvoUXsnk+YS-k0l zfXNjK%{qNE_8`x_RBMhy19~7RThkj!AVDzbO@9N>w3D!Ho)-&AVoO5wdTL%-s4)`{ zRAnzxm4Wnm34r(6cg;%0N|_+d)PElF=lH%)!8sD|6S?sCU`qb}Hl^du5n%^xojlw+ zPuxUU+x7fsIO`mz*FpSH`~%=-;*|%2%Icu&G@1iIsLw=sbs-RxGN8~V`h&myNx=DR z{K@bPO!`te%F?t64aFujy8F^jwXFSv3TE~SqjGI&$$3V%d7KhNqy(f&o6Pm=swuEZ zmRcj2I3o_4M&E2;rQ#B*nj>aCb;4onLKjXIiu4+GGCV9(JGmA`McCqb+tCV^>q=zj z<2df=abtTDHA|3w#`axu)`L0UbaMR~_Znu7JoGA#gK;X6cZm3ch4Kyg0XTa046(5? zrIdrwwuwGWNeLj8rNKaou7!_^nT`E-D4$ZaNFyHWTn$U+PZ0gr*If#u8ZAfxmv+wU zW~nanHtLVnH!)m=epLzTe6{b|sF>~xm?vPxS>^;A?5tBSwe{AMcC4K3nE#Unc)*n@ zkB10t#)wS>)tj2i9M~u6AL_cA=;t-`+$lSN2AwfTR_9Vvs z1ZVivzowxy)nkp95|stO-sF>0#^W6D7Vl`JI-0{hh-6Z;%}J$>#J8%|eJj)X3s@57 zF*~Hr*8!%H8~x%sYlxKI8q&_GAuW@m&J~~{lYw*G!a&GQfoNwf{r7g=XvnTQc{GZ|=CQ=Mt3%{XwXpuROE%Xkkj??W3K2kwT{L zC#2NS_vJGHVe!m_Q>{Yt6R?9auWyUmjD#Qs?6W(dk$T7mXcC*f*qxJ1B#@er;2yGf zVCT(OwiH@%TEly^y3+nHUg+I>+*qf{l>N|NRuagX0UA=v7efp+1@!MWKNi(rOZzj_ z_z3SE1I#Q$AP7vH?>=qbPVT-LYnkvxUAeuw9JcbMyvrDPBCXsO36fE(=K8?WU)wNf z_h)uwq?^T-mHwP?Mn6T9%K4ON2D2eM7%hGtN>eKX6<6`ARa4$K<<@=Ym-|z45 z=0>wHv@wDf^yzbGN`e*R?K!29zdJ;zJiKaK76>f&{sw) zN$~TNL_owmpxQ<98IN%PwR-`{2B+%mfjNYD5F&J$PF;dJo+7Ow4EgD|=oVQ+kI7Il zHeo)H3OPwH2t!V3rY4B(vemBwrX1Jh-A<+z<{qDG#-86&E$+K4eGxk8VoH@V=82?i zCPzq!Nq4qbFoOx}UbsIxACN@z<&)vv4jW>xNB|oO&&GNMZi`C~(f0&}3?2iXmL_xr zpk9|qp>E|SdNin*g#$`>4(r{aKk7_ zHSzOnu`P%+;~cC=G6`=X**fAplyZHorVSaK6pX{pFu zo~4*&jM35d-77n!-ET(Fqr~PO%uiKtbTzg7%1;> ze^L;+1K8v}r5UiSuigg;rh+Ml#%IJ?$eTHiMmhse1>6-uHtaCzq8Dj~uVLv+0Gs;B z1uK0rQ<14&vQ~`1v)%-`ykJomr&fZJ5YY2E%UX(UC+!ECQonAPUkj}nX`lI?9>nkA zEB`6xprS)B^TQ#4d;+O^sB6LR`w6+s8~|hLueqD$!Oe7Fz1C9I6|3ejn6DmG5ku(s>urKLQ9d-c?=n;_ zv+r^$T8_L`#CILQ-M^Z?7o<7JX6NJ)Cs@D7g8bOPQrPsdLjV_71f~sHh>Qb=@?H!&*Wx~)-__ax;P~C&5nv@&G0eZlUzAL2t0wu! zx}MoJh@r?X#1FzpaQj+z zOXV1|2bd6#TY&#A&)RIgP|xh}y_G77ap-rO*RQ``Prr>|-#I@7=E)v!d^X5ZT&&(| zZwJ@W#WzY(hkB%1dgWKKdEr@NZ2TEnY)7TxHMI~UL5iE*xpp7C4VcFv@`&<(pO9g) zI9|Q=8ejsyWfzY%sP7@NdX3ww z^}?2u^tvDvK5%~o$yVxy)wTqEe^m-3i%rD2egJZowZ@$e=v=Qs6sQ)S8eh#5DWQkcvBTRkZP46{v{K1iF-{cD~|3!^O zrvP_d)`;5I{6?r1ZNv$t{)9B;O>IB(Uy|=q8T}W~#nkHyuS{>slXV8F?nVCkk$$7C zwk4{DWV4-M&sHW;I1mdN*IrbiA+G4?mnmfck=4VR#-P1?ev1SddPb zH0PdC9r4CJ)s_4fZE_7(u5O+Dp<`Gw{@%EG;%{>mP1{6m6ann8qg-BE{b|z8h-~@5 zrjuCqk47!LaC`%pEpe83V-GQ`x;9(e5Pp82!Hy=~wkPTDEPF@XjW#XUB{6=YY?LFm zGc*wqpA<6IrJ#zGx{KgoK1x1|sS;`b2h7bBhFDEl*#z0c#rpTXqIO)CPt*h0y_iRC zBM|5)c>(J#?e>@#xO;li=w>@1Qmyz?g*LCR&@JpHJ_9Q|#%|Z1`E>RRsI;a?#FxWa_DdLp? z`&?l6Dr~7Vq%Lj)c1cz(E>k)nvZ;T@GVm=`IFtYJ!w`MF&`IMzK;Yoj^nv*GeZg%o zzc8`6l~F$7`F{poD=vps3;F7n^HF3iY+ays4wD%W+i);YLEdFwq`7aWNbpj^RzBfH zSh+(@Z6#^^0OL3tN2gE(2(loU*^fZ*2khMGwKfYK$i~in4cTpPH=zV4*j+CE*d+BL z5yWngmaYnSSbb!id*9S@go%{8vqrr}KChA3`w%~}t=TG{$|W%pAvg>qG4#Ez5)wZ- z#_`tFX3NCU?oo3mJ)|LS(bQIUZ3P}2B+B0WXv?dQXoKQj_fbU`Mv?Lt18FV1E93vB zB4x2-72yo@?f>FwlP@suEtzwf+z)8Dp{>9Z%tK}eU2F0~M4W&3F3bQJd=kjrIQ`yR z?egc;$Y5mljr{M}gM=+{X3s&8S9VlN0VW~yR4hmb9gpZlrjM)xGEjXsVm!1i@>j~@ zrzf5^8ls$zl#wKis$BO z2FijHOsD9ZUJq_c#nRv0jZ+jFdvtmz#^W)fLNOy#lBJ~X6a~5Hz_;LYsj;Tk0`6f2 zMN=DqkRzUbl*k0IvqR=$V7N-and8PLBXh}^sPwayL#faZK>ibHEV|9RsBS#SNpwuO zSlJ=n)Cl(=t}uqQs7;j0fiDi80L;GX!M3OdK=;=HYE-0_c4*m!&@utK3s=FSN`IAi z7#<$we-@r-ox@T7L(0@ro8nkN(X&p~m?_FzIdsL^RVEx0tYFy^;bN^B?ELBC>RgTz zatP~3jI&zp{86l0ps>sbD-(Uw6#btOSb;C0LJXCSicF_p`0)P%iOSH!uA2OPoeu9O zCpL5zpkBpm0X_>$6D%^+hzaAJcy-Y|#xQBq$6aI`t}_9n;w>4!G3HCG)%NFnx7 zcdC>?YMGC#Ed}CP*J)aEFv!@ta?o(r-)rZwqEaC;aU^r;4vX!B>;v)CACgDgp8S<^ zzS6tX5Q9v&^-xQHFc*Dt+N)Zyz-MF+l6d~qrYwFK z_%kgwPJvHG!&{uuV?v&r`6rG{ZZvk6&EanDtLib@sF3ZZd!4wMLb^$^Bm3spM-3~} zBHSg^QY&ZnO>fo+edRkE(F}R@#rYZO^{$7OwO~tfq0ZaVnCU)zE5Gj?7MeNC2cWs%dNCUAe=%!``m&xHT9hEFr zzo)%|%>58Ed=iMhzM)mxXiT4tKJXU*xH3JCo5D;6m)kt7+8~a_aZcd%hdL!J3l3qm zBJj5q`qUusU)p~?Mgc&~Ml&Kt5^DVB8#-~JDRYSiv4fXHDfz$opf|%1PRH#*xi8|h za>-d+!_}~}?Nr?kkHv((q&QtR@3E~$$#|AsX{M{=_j1Q6&VwW0O-NBvd8*zAQ`xIA zdg^>4M{1#&!vygwh9LtTE~K$Qdx*A59Ss4wlSN1frPI{Vc*7l7$`+k%^p*gkJU1o@ z6Q>K{P1XQKj8_uRKWT_9r@r3}H|U*L0mQ2Do`M{Jtox6t<)I{2Nt@RG0T6nBn%7rZ&t8G(Sh2*tLLrRE-cvBN>;p=Q!(B)7QT$z1_-1!Xlju`=DatC7$ z`QLLhV~ad3WpSSD&83>+YbL(g9Dm(p`UEu#Y`j>6FcKi|;F-IXimzo7n=@iuqJYv_ zPGX>%an-mHHK7J1R)cWAOvNMDcUbB&b3_DEs`%hy5liRdVf@`sHjWzmo7@P5EaO3k zJbSX)A-J}Z$x^S)MhxqdgvorZh2AqUsEc`olyU-Y+>^f}6o+oVo09uI3%URj~kT0^_yw z#oLHyiOBADP&_rkS#LX#%CeZngt}gqScU%&zg9Nxv{_QwbMYX&z)|4&#O70|GSlw$ zARe1IidYB~ma_K@T>yapxSXcGXcXzX%>Bw!`(9?eiPtufdzCTPAD* zQNps1lQLfLKc8^lNiSITdGTVlZTf$hddsjV*Z2E-XcQ5KQb`$xE=5{OxJ z`f?njV6Rvi$CHR(M^WH*!$A%t^02-jjRcIdgxQx*caOgZ!z`F2P>iFD@J$*8t~0a; zkKz9!6lwG{y+ZKH2YghH`4_)jsaw2QT({@h9;HAL^#8zs=ffz!Q@2C-2gd zMVy&SqeMc`meFcq)2pH*&%KxcCS|I;d!<_PtgAY3-0d&Eh1Hrje1xH!M=XKOF0*LZx@OYU%?dzEOc}d==F-(LnYPwagS#~uOAkKs zzv(3r{+3>w0>Bh{oeuPJDIfw-S#8`^&3kxD3dvi>tiJU!igI-CMrim;&D14D?4_R^ z0sp;6ERc!mnd)yU4m%%F;M7nNK8g{%*!?l?JZ+uVr44hYWS4+Lsr3tI7Es@(Uj0|WOeU8c;__2HsN&A0BDjffEXAm z+ZHq|8i-ux{YuLxS5MY;KG2@#2{4>-=Dg(0I+ShY)<7U^bCcHsWepH0@~EyfZgYBn zQ}T0??AHir%IfCsiA1N&XI<835mv|MiTk^>U6X-+8vaq|dBWfC3OOo?+;Z_uKcDz) z#l=hIolLzg(||CJ$m*}eW3>hf-!fFAo`+T{uaRJuyosWmrF+dBTPh#p(`!fLIV?jW ztcR5%&zmA*d$?IOxPf~N2!nzH>VAfRcKI|KkO|n8$baysr`4vD>zC`aDpL>maXW8K z{gH;ZHY*eyIx0T{c9w!D$y*7m|4ICDL~nt)7{@`S&)yOqyZ+-#ypCl-RL>Fy>T#4f zZEOgtCprLg5CV8zL#(I1GFzGzXRC%LlRUU$vvTb{gqU57P4IceAX2JsPg;? zZDV}=(pfA7nWEpR2Otj0)4+dG`h8zszr7s`^|JSHlGlWRX~aQfvXvW*aEIWS&L`E> z&On}h$!RCYqY!CIR5BCzh}#XMo}zIG;kYZf_VDulg(?IuqZ_U=k80sj{7zsktu=Zv z8S&J#`w;G@aJ$_2mwK8l>?&pOAZGs!VbXAb2bbr|bFlTWz^tIJKJa30(d=ZI+P1@G z);f|U1xncpckK*r{?(%4xk3&ke?h4E2nD3(YN<=+;z?oZ#CZlQ&U4Z~uQ*g;&$oOz z8cH63K>VjYh_*=MBpF+TTL|PboULcEwoB9GsJk8Ij08^*#X8~9?g^+F#S^fzAl4}d zCRm<@2}pOShfIl`yr#BC|D76YDhH25c6HX!QiS5+0GaS5%djlwbfWd+G@k?Z>wS?mY|6w5dFP6Lv=RV}BRFb(-cT1QVEIn>GgB%oR-a4_O^! zDC$-EpAtnfOiB6uXsYFlclS_y>iX_v)-`wfgIHXd0f-0XelDKvwjtljC_7!U|H;3S zIf(Y4RBc$=UFe@{zVP=f_no2Bi2H5Y^|t~6xb*ZGpgt+vS}trO=AYkfu4{#7xvqd% zkw*FK5UQ)D>z7uj3beFz9o?d(Xp6h2@2KVkcHDgM&emk)#K;%W@S?begun$UB6yQ2 za7{*n{g7M2u~RHCY3V(hph+VhbNh*bSC2- zjYBje6m)^2S#L#ZJb9vN3V~4g4H-MFRW+$95W4W=G0L?+Q3o${A*++82*2)qHQ5KI zTR*Lieh`RC76m<;)GL?3sMAZA7O)_b)N(?o|6xZ~k!B&#Ra@6zB)4OwHn}KDNcpYW z(Rg|N-F<1OubLJRg4+`9-arwI3SEr|2`Ve&&&3*QNdI6nEaQ?zY%C#b56mtNxE$9p zKeN~o$gGe`y@>-~!nUIL7hVfyP57{%Qz^u>q>+H|E7ASNv3Dy&z`LY;@>!q<5YdKe zU@f^r1T_T0m@EY2*Qy@0NtBNUgbej+`NL4)lvarG2RVW$RK(-^CbPSq$1{T?0c(sg z9C|(93F%pvtBfyb=dmK{LX=`pU5JEcAAaUs_2xmhRYKnf)6Q4nFRUgKB7exv=qCs& zBJ(w+vgfRE8^Dn8=F>z4P@W#4A6K;#bx0ZX4&1t^rSQZ1M_}-Z7`z><-FdvrxF7ip z#?^gfzgY$W|36JYUy-2+pnJLSsO3}Ls3ow~=XlR3Ki$fvZ`HF!%7u%@b&~{SvyQUF z+O!N~5D2Af>R8Y>o)Qn_E)c|C!D2x^t$brN?{ntRZAxpeTF+Zj*#b-mQ^iRb`1U6x zaySA*iDab!De#j;Ez0o9kEk9shDulCM?E=Y;IvRhW@m8%ID%ahNx3PIs>+XQYqcS{ zd;E0gdzLZ)5eFK!CrXmSU*WZITEw-5^j3=vhgTT8YWp2eD_)&Ox1$l(aA@$|W|qyD#f{<8x+l7VN##!L zbs0T3^r!JA8lZb3R<|^f{YGCPm5zMvIWqk%3^q%bM~FqsZaWsrf}lJ}SM{nA!@l#X z47T}CAzX5_GQ*O7;?B{JfhUGP;r;bH6VXyW@~Y+R(Y=M&dP_3`>$F zi}GZ1whE2(I$)0wvD7NY55DVsfQo=p5zZWfD3BjbQ>yV4aAk8BC1KeW^NUT%O6tck zU%cO$SGq{|2jjSq{(?A6a;r__jx3!wZA`X0$FndIJ333iDji01!XxSIwzm}Q#~Si9 zn>D1KbmejA`yLOi+F%Kg(R^63A7(lfYqR8$3kMvA-J_l?Ibgp{|G4!7(tq1G1a}S;%Zjw{inL;c%m`Y`2V6P4~`||+PQVWtoqhDPD*_4 z{SyAxuAFpb88_yDol(UF3vvCodHNFZCyFe5tO5!kj`IR$m`VaC5k|57d1;P4B-UJ? zj7hW-Q9)$8 zborh{_pdtt=ZOOW<2Otb&m3WD`CYE4ydOR&ksP>BtZ+~X6>yU9wdf7`bL~9N4uB*D~TxVe-hx&Yb*U}{W(fx$_G|Gd}zHCPL4ZWE%HCs7za`It^e4ZugsoyHSQ5Q}9~ zG($rnMptb@{CwFdH}&|zipMS&&i=S3QeUuxMV9S5kYf~1ThPnteYWhcB`AStUok}0#3Aggig}~LLHayO?Ht`j1wf~Hee{w%p>~4=df^VAsF~msL zYkEVTED_3xL~xQs&YQJ)_9J{Q!TGz9Wg>RGlJxFXRB{p@KX4Ul0Lf@ueo#Y;hH8$> z3uHkL{1Q^E_kWh3b((5?)_3FpmK<_4Fa&opLQX@{sIN~snO_YUli}Blj}@ z;$mb4MHWJwE2+qf=mmDH-z{wGiViZ?O!DkV9-2(`bVS?ZF7P|nJM3pu$axWvSWzr3 zg`5Z&%FZ>2&JRNNICt@$9d8vCwWQehGP}*pR^W_*h;D41DNHvCKQdi2EJU^#U*Bn5 z!!lmqSuPt9)gGW{rcVIUAJIXp($Q5M4q=&r6#e<_&5Z1^%JWNs;=G4|h_~?E1o_f6 zBT3pnc~A-@!!*XM;PCq;A#eMWS#hNSQ;AqZKTCz2rTJD2RD@@aKU_R#1ezXM5U%GS zb%cZ#@e)SQktN%xPvnh5{UF_0nCf}_G6mJWg4wl>zWE)}jDGTh6>M{5)$mCmZU|uz znqF0801Ns!O227--nFKd~w|D*GE&=jO)b`Hj#-%Ds(r|0&ScgzBd0~$({bS->$n>kC_Uxvw)qdJR-hc0qmH{EZp z1t*ytr4@Q;%}(^@|9vh{-Q?9Rx(}hba$`dGod#o?N9D#$UDb9eY|#4uSO8trY5upbcRzEsTAFPy7_1v zsLxR!_G05rQ+8wfItdo%qmcr+8Z3=uyqIC(n6~GZycFnk5soMjXvuUA=oATizJBU5 zp_4`^PJW+OokicuT(jqvLS6ev_J{mr{MYKILz?+P_vgr!JM=8xylMtxw&0H$_D_0p zaju~uvgZ3=0;a19^{SI<11_3BV|lF)^!mW@W9PF`J}vu4JDOpX4c zI>=l}oi{Fo-l5sj2#?NNhldz%&9V=(=V1Bxe)I3+(lR$W>CzeC`FjJ>I8X;(+KSc9mQ zfhhb+7|wlLG4kF2v&(Cu@rFq}87+bpa-hM)bSHXQ7Ckg+NF98q0Lo&4eB?(oCjOvJ zF4~Pn4IXUqne##5-lAWN@@=jjsV1V1ms6_X1f{$M>L7HXRQ*PNR``AmV>UwE2)7rv zCPdci_q#g9H^1W6r|p9)*;@m|gPWUx3N0D~RA_VMu}}E^QIxFUS=taaZ{V!UC%R4@ zqlr5JK*Ab$vpxs!_5=zI=zzG4|hNEXV?;&yGQU>NP6tau^!d+Gh z3Bt)SOi8);^h);qBLwtvG3+29%BgqjOUomDF|w%jB4nQsw&A(SnYdmWx4LAnT=AO% zL|fzZSBn=U79md98CEVBzKz4TDG?Flo3q(U_#8n5u*+bX!N4_}r)7WqR83F1g0tqh9*wd5yUi!+poF)<; z;d(R|N>Q)+z|W+bO*&V_YRzoxss0fg&BGFZe1DKty`lp?722jfm#2lHUqp!P+}oGb zAG&eMJ?%3<=GC6psha9_zUk{72mLM)dI|I zt*H(8!e?t)A)|LZ+64a=XFaQ7&0%CgOfuxx$rV+nKahi%SHQrQ)E1X*#N7P4{M$6& z-xl)PBSUkGV4DVxG_~J`sWett&Er+!z19mIIJTrk!p~ZBc713bJ(sGdT@@@u0}L)odVoIR%Yj zw24gJIZ#>+{wBU?>BSx)d1Yig-stW!4#5~xG0=BC*Ze-OJ#b@gDjvo)b(IjPgZ>v^ zSOILihN&ID(ThD0&qpVSs+Nl(g+h&^!m8neYfEhBl^Oz_Bwmdsa>2hN95DQ5?fclt z^(5eMugfA(V>PL&h&hcE2&dpvW(OS`iN-?q%d*t~8(O#gAZ?HT^Af1B1!qTp8DY~? zulzcjh%P7Hf zzRafRt>MP)?4Q?cplhB3lCa31OecTYT<}=L3nNow`{{liryNfDhGxhTRo%>z@ph|w z!_H3=hn<1FsxpK3)F-sAeNEz*M5EMaA)?#bgav<6W~ByQ-pw)R3TN#7TMVQ*)INLv z>E$Hh204uR+hx=7?j$(M%Dhp)DSAbcu&0J2ZhQ?gg%%A?8j>Slh%=xv5WmY)lU)yo zWPw@`KPdu|=bF5S0(*5#?zQ9Al*TmXu?iOtMJf0xDQ*E2>1_Tm4``j2Tkk%;fT)qg zG>iUVaK3LQS*F{JINV_27Ekf;!9h@YxFdukN@6Ur{oQjdBXA4^A&YX(1)Vp)bek;& z@;|WqowLY}T^gx$VQfk}wxlgNVD4Rd=i#lHabIHZVU{>s6gOoeer%BvFi< z%kyYEP@L#37(8i%tJyRpE01@8gaWd9LRR1$jQU2yVkU74-~HcnUl2s;(EnIRg*^OC z6qbRy4UAaa8Y~fUwSLr{ z*V|Q4P<``4+~*v<{1c;HoqyN|Cpy*bQ^IjfL$%ui>ygy})D`uyhSdmH*t+RCD+l}& zfRpg0i9?5?^Cb?&=d8~nIxo&ko3Gr^Q1a_~X#^sKKySRk4kxReGJTSkWk&FOL^!(T z>E2S~_(?dY@C*X=<2(wfPQ%aAwR&Jj6U;q;Z-`MFVMF&|8$^-!8HPaSePy^cyc%ps z=;fZUBuN?Gm3Te-;EkaS-&Zeyq43}TKpl2`xIStoF;QC6&(lNUMW>aql;ScsOzX&( zQ4mGG2b^m)Deu6)EZDo@dfUsv%=mX&j$@w<2zs~1FY`NXsL#&ZV1Fc+3l|~~+c+i- z#zYF#Ck$C2djqU+En&gdr5k=J>BnFox6s!;{ia{<$gC!CtD2Gf*vn1JEaA#FI;T7j z^#7cHg&IQiI#PhWrI;3I74!msOsY`MzSsqngk)q^&e->nreyl_(pj8JbOsnn*)(f{ z_RA>BJqh5@c}D^Z&QdB7Sj&Guu&xHG{<8IUQ_L(z4XMyy0^J>*&g1&>gr4zdM#X1+ z(4pZy__7a#=SK*|aRKfQkomfg((H9pex_} zxKygexgX7=zuf5v$yPs`QOKEY>9i91DSV=*{~dQ8ZRnO%Ihu*>`E0sG6$FN64~4S+ z=);zXqP$l9`dB{O7i`p@e$MTnnljk;IXTc zM?AXPb`Ktf4sY0FLr#lVK);E9zW$tLHnD>8N1gqnKb24YeT6^DWonV*p*e=Ry@0!d zX&Mi28Nks1PmPWry2ApvoR5Fe(nMo$o!`K%+{UejRD|{)YY4`6^P1T1v`l=o z&a&C83bAZ#`L5I0Ie>9n?H0u%i6r#56h1i?q&Po9A44NTNVO?2OH?%-hwM7TK$#`m z1&I94QRhwK2sVsoxB|614O3tqR3J)A!l#7ztGQl3*wc94Sm_ZL_RP<<*1TsHsXq5Z z9^CrOaNF|5v!9fg6;sB(9pfwtmujozXtm$;9pKe}3auS88!4#nc?s*ku$W0^oA&@= zA30221gcK5-0Wxa1C1VdSF6z$^)3G>42T@SlQ`{-JD2_U2lpC$!R4kT(;}jJk2N?7 zaLg9u-8=Y|QvDc+Gr-7;bx^%1JW=^kN^rH;0}XWVyR2?+Ep zY9sRDO(LJGGk_^14kd6wqM`(|+O3@SYBD#xvhIdz56OINmRbvsxl&xZmrLLsC-L2{~hf~fR zraZO|RFkm|8J3qQ55Yf=|GXJ3f3sPk$$~gCl6YAdlns87CK}=$MF@LrY8+7UCGF@P z5ZH!+7pghD?QSmMT(%T_@_u&#y@gk;l=$6sc@Sb`MdhHV0jIcB^JQVRQHIm!F^X}5 zj<`A-b&A`ubw7y=m*(GQAb^b6{^aH7=%F)~ii~WaP9K6HJs(z1-=ntP?J%;$mJu{| zPih%z9dNk+fVWgyIPuRcea{|anVva$&je7@Nh0g$b>}?}1}qQPhNt4w8+M*cI?o&0 zRc}y+bQ8b(n0K{zrtb9m^If;gU8!=4$U+7{53dcx-W1(TQbIx3nBF|uDB}Z00Z4F4 zaU7AWSLgjx0lKvYo}G{y5dBw?a(P|}ukMLvETRkN7k2_kB^39ihfS{-Vw8(soXI$K z$0>k(R`k#t7aPSPd4AM7Q`ocyKn1(}bcad&cP9o5@KdwJCnD#eJyG zV)R-Aqna+Ogc!U6%{i1so~f0T2RjCCl~90cp9eikz|cXd@US2%cyCgox;<6uZgafq zMVLH9clY*e#9zd*AWk#btZ=6$A!{5@)B5{fr<8RYK_q4ZP}g)&5h}r*_qOsJSmab4 z&IxFezk$vbDdbRsR}Gf96X< zj(S_x2*Lsa!i2is)tX6P*;*oB?q&qlo;83sDzjR>xw>sTzZq8fdUQ$6l>DV@MRWcD z->j^4#hzQpZw;VdCUpe>9AToiE9XKzvwpF#!GBqNbS4|*X~-Z}-H3_wNF46{5xg^9 z{)#$FNZw+hcVhOXY=wtQOTu=@q?gN3hmYjWZfkpP?nD}hZSK(bM%?k8g0#yix zB|tj-rR&*)u$+(wNV>Y8?4~~+Qf|I;{OS@ZMaH}#bJh{2xa$w3>M4!W&3k5GI>l=# z#WV!3@NB`??UF}*1~pd$*`@>PTMVC7vp7Uw%A8{wa;h#fju74@gnaJDUSqta_O+qu ziNalf2f*KgE*&$>UAjjNE|UWaAB@a|CCe8(e>4L!KSg6_t`W=dTcW#o07Uf}R56J? zTC754Z#nG3cx-gccy`i4iuSH9_J}P}@VEI;WgYAo9ld-Di;=|kAktxmkc4RtWI~D8v%J5f;4kjtg8LoVE4!MqW@3$ zC^g3k==(IY$&NFN3R+FwIGrNiC{k^!Cr}(i*vF8zY=78&yfJJ+5r@91lB)XS3}Ceh zP0Mc!VVeX{c}>WLDpU819%k7eFe?DDzlx%Z?$w{^WtKy-<5T|DQUWv+=NyPRk4Y39 zCfU@>sUcFD_31;T+0{ZBdjI+yCW(Ust8 zXU^Bfac97Db})4C@%-wlhz7mKt0yt?d7gATwJ%aU&fPcSk3XJUOK`spu;jDwt3Qfb zQvW+qGM@Q~Be5t%_DNjbaX}C;U!JoFPa|cRW3T=uj#;ksC#Z3GW^}7DZ9IP6hFQH? z**DRsnARvpu|rNbdID9G_8r#Ux|6Y{iK}=TWhb6)2lgJp5UH5{ChbF`DPp>}Cx7A% zHh@;2%Q+DMX{zVrlH}({fAhSLTD&n7$Qpp|R8}T(wnpc<{~JA~n5*nTvuQPL%I0gS zNejkL#VPOG2GN|H)yZtlR)y{_oI`b?T{Iu{(hN}xM3+X$g3}q8#D_rFJ7(A5*dCo1 zJsgt2oAJE;Y4;x}WXynC5VJUD%z*ScIxl?C|7092x~10x!l2UCv#~;=HNb>#`x=l= zq@JAz{hkfZTZKC~T`4=ytlaN|yu2JJ?ZCJu#)^o>n{>N9}lk)k= z8Q=31(8l7HYAbxcS*7Flv+3LAhZX9JE2z6@ItkM-Yt1`5$5SIyI)Zzl1q8rOy)3h- z^+nrfwx1ZLyB&{eZis%=e#R(JbGfeMWc8V2!|RnW35bXd6`P!Gv=R(6o;Cs4oFvSw zyDaWSrd&Pt@D2cT*wrO>-M@}A{`vb9?NbMCzrcw}=(B!MJ@o@J9l&exumKx&v#C9n z^R8YoB>uAnHZW`!pi8;SNjHOhU3^H89k*1`5oNihug%Ho%5~{xI+{0ZepLBs32X*m z)=6|#WQgH(TVOT$MNEHBBkBS}5UmulsG){eJi~+_dYIEE_L?CWN(jSH!H(|3_Ic>} z{#?w=2hc1tMyw)~!4%?`y$scTKD&UrpK5086{<(%S=aH=b~-Ol@48}@0ivg;fyx>6 zdIKzknot|))`9?R8Z5gn^+D3`>;VjCbOMTouo}Qn0tJue>pV_j=_ng-{#!>^Ghf!{#;AO6cpmXco^j<>A(oJO9vKB z-UWC>{jBr!dfE%7_7ye^?vqI~8Y%(aNWHJ46?Do*K{nHaOHUaRZN%8-alFt?l`tvJ zLHI{+*z7w+FYot0;E$FyU0=Chrgl-g7uyhskv)alrkp5Fo6!a?IIgk%2&e?VF3-L% z11z)x<0;(fn|G64Y%b>)8qgN^>1>JSI=|UWrhMQW?eJd{+OpLnrYT2Ill)hyxB<D$=#Ec$87k3Km~k; zRL;K%*oNTk@1lNvbvX`z3hqZK({Ho}A&lJV@E&0pKI{(KJi~@UHu;cz`|wYN_n_I! zF@~%#5H0;8Y3&fST@}vv<+^_9F3Cu~AA(!caRNmQnGq}QUwf`X&(TWs4oZ@c&!WzRj5(VQ;`UI+r4W?P0AO5#!yUG(adwQ!}EaTAN-UKFe9rP%I5hFlt zOp(2jQ3Ri1OGyf$m4p8*F7NO|<+7mS?do5zEH6&?u)OdY zr*;$ZwfRVJD85%cFfK+@_R?#Cii{1?b!)kaD3D3#NG#M0UIGKVT zzPfD438I$0Y=mCI5)DN7<%~dgOajaOGBI8@s|IOQ^!}U7141&KHB1}&6#Ghbo8yL; z{83GGcZs@o7=HWD4aeKPOI@#-XTqvYI{@{=`(%ByPc7WVJv)|xlATR~VKqbdip;>k zy|$SZgKUG9KlOh2(^T5Ya&D_NP{T76X}K+RNNk91D+}76_Pqaw&DMi1$gSW9?wci( zRzXc~r)x@}N~7wOD1I5tQ}AR@aNjl;h3G2mNE?HstA*822k>$pTN}>e*`fZx)k35b zBrL-458e`dxvzM&^3@kl74Ko*Z6-rv4lXU=E%0d5?|-_WBOyk#TH)T8fQjsQ4^%x{ zI0;Vuv9w$T_2GT&bdYQE?tG2t3z)`N!XU(J;elI;JuSHZ>1+(69;2wQ%v0+-!L8m{r(?E^U{lhTRnF* z|IWLf2we~c#~eQXngFT>SeF7l_QS@{#@+TLLLW4}12y55CwXqv|2m(9@l*qYPulR6 zL`G$q{gxf62Pm7KnU|R_a#r^140QSL-LAK(UdB7N0Tzyg6#9>GOL|0h`xC7U#xCHM z%aJG)y9QE>xFR1kWYG{MT=^pSBft)b(>N8MJO}Xsvoz0K4aw6aI{WacUw}|kq(gxc zwG2&o1s^r7vMYJw_I=AIQ-q(099r_q zPV2or+b;Pw$0Av?s4p=MlXdtl}hK9o)gag1Fip)6+FMP<``jV$K>S?M`tPbKcf0U z40%NI811#yiXVvRfDlf z5Oc%*dUd(;oJC(g=eh~W^7qr(B;0BrCnyx68Gx(eAfKe@;N_R@9s?)6;1rBRmhMJSEcso>dL?x z>GHm9XC&w4T^SkUs~_IE$Uq1x-g-3_jeq@RfOo1}+-AposcC;FOocp_vQNYHV3Ke~ zAYa1g|5yN-d_E?&UA|kUdKvObAe#=X`A(5`-GiGx@?)S!7S`N0D8_%r?xWBE<#s6T z&Q{*jO{wPl=mn^Hc{FeMj1B( zO_6d_^=mWyroBh0w>7*ZeDf(OhZZEcw4nY0%l@Xa1C$Nk=#T0_P;keS_vJ#yGU7x# z@~3fT9mWHeSP{@r+L&JlAGH6;Zemq>_YJP$C^diluHzPKSY;`wNIdxB$8qwc@A*2C z6>VlVbVu8a5Y$YRyy_eoXbPXq?wA?^nXyvVUt7)BS31JWUKn?Suu&+A6)43p;>|65{gFG(Pq%ML&LH307|(g6!??OE_2i?L zb`%P4YbG|nd+Nf#x^Un18-Pglw0ej`y361f*}Zt6>{o}rw-Q+PXl*sLkdD#LXeP*a zmv=wZYAsS)&tZUvr<*LK``r^({5PdK$X@vZN9I_LoRJdJ=knln7Ez5ZQ@vpLqfQdz zOLi8}+w@__lp&#@VUkp8%Fj2Yxt(05%4SUHZ9>y`e$;)aqCca$N38(v)hO2EaiAt? zw4VrM*kWII8!t{?F9hYL$7KXkK+vO)+j$y9q(E&*;fNZp34qM}>3D%`gX_%H6S<_# zot2?xmq8ci>=t;JihDNbZB`hsWufGxj>Ubxr!Bd)q-t-uZ^}JuT<%xo%>)2|f0dTO z3*xz*TT5AjZEM{=4PkpEHgB@Y+B>>>1EqmYVD64xuS5^OWVj`~mHLTkXyyXW_(eZG zG>YJtGowrV?D8cL$!C^Y`Mk&wP4oKwJS9P!e|E?+s1wa?t*J9wm1NS<`m}keLvqW) z*~@d$|K0{dnq(IYY~Uk~-w7`mlPzaRjy_^RKnVhMsbv5IkHu2z1AeO)?~l49Fyot+ ziodE$dT1oVjv&9wIS=@jB~30M2p$r?Wkk$nL_$2|=P&w~A-@ADz|b@IjlxfeOwJOP z0Of){kVL1GB{g1y`xPwSU}{mbz6Ao0kp${<(kW&1viUTj*BR7R+2h>Lce__rBw3Oj z#{H51pH~A2t%G|cDt;5Z`6ZXiFd1x*0(VJdaTpRmVFbqYJ5cRxF&e^Js=Z85sR{oN ziveHW=;iJwqhD#yXY~`|vAm#c&_+p(Zm%v8+2wX3!QK&|>a`G4q~G8i%w$^e)>2l= zZ_ra5_doah$r&vmdFK9S0Nw^^6-b=8!uAM@QBTu55AokL1Xi9@eWm?c7P+EpT|GVq{80mVOZdRtHK>~9Ht*I2 zR{pf=ofcDN)y!o1aM;_H31Cf?)H|+c5?kww(81h+1jqhTwZbf!N3bjR`FsF{O+E;> zQ2ZHD*_aL3@18s9IUEi=eSdCAMhc%g1fRNbyHZtZ!re$SeqvoX2U`vKWSDB}Ak*#nwMGE1|maQbr1+eXrIV%+PUcFxI%3F$7mnhr7JN z>2EHu`$01U(7%!}e|)K5(kqgjwA7Gfx@x6S?u1QzJfEI-Ec4?XhOSwNd+$i6d7K+< zehiiRP)+K%{)rt2BX$H63o9shsQY|JK2C8dUQ^XVkB!EgwKWn^c1`_@OnpNC3TDm%pV6ICCV7#w5XO)8F3R0%J7BIgW^z z_3}i}1!2Z-gp04Aj#aq0hSjFxa})DXW>`ZV+A&x-(?JX&qXuP!=Y)EFWBv*M;=%p+ zJN0-$7c{6-)v2PP929q<${ix*UBs3`6eR^Hz~4c3x$iV;%{q=M3HAh;=hT6cYCG%v z5nSGdM87KVc<3qQ{k#2&9u0-E1sVuX3Z@r+P+Mv(|L+S>XO|;ejMYx#GGj+>0(fbq zs8XrJ$2+*ZgITwk_R|?t9HSu0z(L;^)9_=uAaLFM{)t!LXA!`IK3JBy?fvYC+xChB?w-h$y#NlW$ zRf`{wFKNc`KYz@y;Wv3RZaFcS7%lhv>ta&ds1R_Q@FJ}~bZK2Ryt0xtIcw{PFJymT z4IUB8Q~?dDoT2`AwFN}B%f|-nycRdX^X2E}47@#$W4;sVp!j>GI5^*t!VLm!>yTX$ zLk;fzFG|(jn4YnR-B|>)qNZGUMiXFW9s{Pbnc>qlxRimF#T*{}^}*9)q(yo9N&&)W zpoWA3S}E`6AohW7UjX^YGBE_8J(tQU91Z0hMYr&w3F|65y!lchjO2LxyWdpyQW~ko z`P#>)8Gpfhd_2-hT^gp{zS$wS{wsY4)zr`4QW&^zRZG2`2cg>-s_>ZyT%ICF@!5Dzp^|hlD>p*q@4qug|1Yn$GP7eFkVa zI)4tSz$TIE+n~chP;JE1v=K$<=`*`h0$Ysk0vG_}QDCTwK!V7;XQ6%{088?$w}DWi zj9G4cX(>EOSZPx_W;_8P(`i+KoC@&sySZTmDzbkhe#181nSQsBvvInKu?Spc z`#Ly_N!%XjA6m)aGx<-EO8%pxZvTBP^Aq<8Sz-_s{XMVQ3m8T4SFjGNlmKy9CwEvc z7Tt>I-POC53(FG)#(aV+7oEiqtD9As8?!kj*eJ&VdY8W1LX+YlH+`t{<<~_st@Qn4+M` zQtSjRiK7&a*O8Eqa}j6@zvzG6R7Vd>Q;@!r0Y3q7wM3q|Du`x5DPm9n0dE0iULEa> z4_4_mx~K=xLqWh*0a%8!xAHpJ^|zu8oC3yt!LZ10IQgA;Yo?vZoSf5c}L<-a9qAGB%)ffHy5 zI9mnUP@2{Y9tIy_E7T)>e}WKPSnvmI*#k2Ge2w3Rhw>;#yLJrfdtCzQ!m_>>(znKu z{iOReAk%QU2ed*`=B?fEm#ku{g{gH$1|YoSzFBv#=efxB&p~lZX^(lAG|OL=Z%gZ> z)6&DJg$32X1rl=JBJ@R|uXC`ya~8kk9e&7B5iNZpsMjJ2jQ}AfM&nb8^ANcJf`QflikV(ulq zdaG2eA^=t7<|Hephi}Fax0)LBfW1oJkg32P53flD3pPCodTDy&ctldi(V8W9!1VnLNSNMp zkLp?x^D8`I=w7a<2=Kcx76&~hX4a@0yHTDnkMC)GEz*f$qj+4Wzr^6M?VLblAed$8Rj}1U76MF|2r%lJ^y$6#9f`)Dnc_d>)s557tR8 z7;pNiAF;A(l66gj=5{`bAwjcK4Eeu>QOn+b|FP@-lW3i9qfr}vbjQEGzpWaU^1bIz zE?-WZv4U`7n(!9~ z(ueAvCy3BXmM01L;Ip5B<#Y6}Y!O7DS4n_axC~>=BjVqNzRMsjDxXuO>r5PsTM}s5 z-r%!B3%ggiZ2p&c3WHKG1UL3KcpM|xIy~dFGwXYZHyp@Z_(J$V23kqj0$fK2C&b;V zk=P0zZZ&=UhHVzJn#~&5t8pdqZ6PS5uqf?1&v<^EkzF)|k|1ueIrv>NTn_A5m=)jN zWDTv!1362`4dD3vN)Gcp{R(4z8gDye#iCJmuXA(VVZ3d0Zuq4A)xwzgC9K;awunfM z2>F%obSAgZ1RPJ+v~Am(i+F!*!CfpCPj3aH zuyLT)7hRqGYUV8g`1YA1hop zTC`-%AAtmEVHYt;$=xlF3iP%g{R|PcVKx$s?Ym6wcZVh5WlPKxc>Zj#efRBxFMP(+ zh3u~243@XWOj3;l%{PET?#QCYc<$-XO#-@qe&4<6*e_LX+3&nwo*dLt)w|@EJ!0t` z`J?b}?kPJ3q7FCK2fBp}nYkA333^67kJ7F$WTvg7>=gRqKz!u2XsJs1Dke!JuppH0 zeR)l3bV(>;c(_znWWdWTax~OcUp8O3;<}?;Hpt3V&UKBZnuzNR{=#ZhGAQ{ngh~V! zla{_xk+Qf{srMw?cJVJ0{G$}*=A)<#1eN@uCb}W|)^&g4=z}XCi#&D4?*;M}tI(*@ zvK22yo9O-2;)Yk}wu(6m%88O z#S(`y)J~w2f`@}CJ7JV-8iA_}Eb4t5{Jx1+DM}RiB2msH~`DPU3 zzGi+FVUbi|=01S#u~_4ALs^||f`LFBZuiVBUlTh`%e|NCIXN+Dq(^}zEtQoAA}?81 z{if*R1lHhwvYlA!Z7)&9VFhTtSf@KJ*xj1Ftsj6>FqTfySy*;&R(jxkm419PVRZbv zflx_($>TCX*Ou2)G2&kf>~%IUaPE$2(E9t%+Or6d-#sSP(#xoe9oPs&LickN<!T=`7VP6y^M3NB-hN+Bq1mk zND$d>b(n3!r!vcdTP*T_>C0(5O-;Z)i8O-}{%76x-4V2P>{gUTcAHzzQ$1t`Vt18h zJ-r>PY>tt@$ZD-CZ8+u0xCet?_a=dg0V>W(L2hc zAh(mzvaz<3)fevD<^F>2uebf}!mv=uToIejfcqpV6bLv?c=>m*UZ`Ca^Jz>xVP9)_ zuwkIRQ|}+tDL)FFh3i=!m7YkUKt2`D7f9OYmcr&-eSW`!J_5Q8Q@Dr=hx!0 z_io!lj}50`4grdb{B|6oy+^-hfc{qnsGM5Xu^-D&;uzbo8B`F}6Or{0gPRXWzrUW3 zl(ve>dTTXv0Q}MMPy0rn*fn>3O`M)14FSZe0WeoxxL7fnVPIsseWjvSj*qkEEX&z8|(=v-*Aw1k~KR zA@vu=zuT;R@De%$TB**#WeGCVJaAAt{Dw2_!Ma6S-*@X;6AZNU(1eFr8K z&P6SZkc5+DKa>_*%LhcSP=-w|L`VOx$T>k-X@93KqSJC(bYP@n+Y9jScoAjOZdhu4)sh$d^ ze?$<6vi+9hTS^6N8tGVf5anlxj)(ai)_97eTtAd=`g5udTqH%iB4Ta4^?SLkG&L!X zhKtJ zq520d_gLx-8;wc_es%RX8>wn8PoW*?+J`nVY=Ug8a#!s525Pzh7&|>4MO)wk@fQjt z_0l}Q9kOBsshbD&>J;+M0p7|jmCmPyvS)OzE+3RWiOlxZrRD_=#GVXGg4PsKalQ z>BMp{StDOBJ!P$ho~fF_m1CsFlamv)r2|gMlgZt_|YBY zi2e?YLIr3oyk5D_n=PkluYw;N`F7Iq+MZIkM547EpCts~4}bgK@bXE92wM371G_av zX5$Po1<&7Kc3o6?)_y0jUDMYRq0#4xOW*b?APnG@t~4m6zQm@`_+?WBR1|`R!6OVS zjh()?}$`mqB@#+uV~YyZX=si8e1YUoJY0ZDq)tw^`zopbo`B2>JD`IguT$!2 zUEtG#nYB1q2G5q}x^I_?WVVzfX~bwItvLrTF@g2?uCZmWN$(zCBSZB@u(|TZ6g<+J*E@6x>izHf;*YmJ?7|H$;zW?M;=D80>ew1#$+vvaV@G||~kyjxCX3WymZsQQ-*q1OBVA6f4mPxb%5 zkDp_2PG+{F>=CkOj+Ky2IdUQ^hwPDcA{?7i%9fE4*;(nxjEqEP_Rdzed>^OR=l#d; z_WP$l!a3*mJdbg|U)OcNuFE&?-vMaJipuvRl8s0mfwvnPxaJ3URE59j8oN-1_Ko281gQHWw@=LEg9-b zrxZ}$7Mqf?&GtXNj(Kqk-LOPL1Vxl0;RM}R_r84N1kU}lvSX<5&!<=8QC&*UBO;4> z!Pi$xnn{*=Ge#06OTI$q*u~|wtElnF9S7lkhNB`)Zy`p~9Yd(hbz!e3rS6!z_KVr! znjpW&n^{1R)wg#8kysY5z1DsPNJKDHy>#S{?`FzR@q}cVYaze+2j=F-^-$~*G|$MM z&*gR*Y6Qt>Oj_1|xr{TovpSYyZ;z;n;`PG_+qKW@&M{0pe?k2suyB{SoEqj6#ut{S zGLPkr0px^ECHeH}qtH_;CiF|RI3ejF z5j2i6Q+RE9>)|oRJC1r6x%DJ_65Q<+Dv1YkV|S)<(D$1(mRPLL-rep`3A`$5q?e!8 zpi_bAMSq3lT=_Goiq`;9a@y5_B;OPwU7=`{R13xc9^$ajd$fm~?sAf;=A={hdSVE& za+l`rf!vzM^j(Utj-5MI7SR<@W9>gBroQ&KsF-1rF&V^fwUw$hBP9PAb za@s0$SsX+03mhj842(7%S+nilB);n-dYAKMaK>4yB0lq4mn+o+8Fy#RioWQqCQi1J zyWm#|B7XB~zS^PAXeX#UzQZKb9^86^=oYyFN669Kxf&>d`~p4l5>FcYb8sXu%ITdUrKNH(w+mY&N&@Nx0lL!0m_2 zB$ElDnNgz)cl1bG0ycOA=#z+mn}HhvPGa<;FqGtP(=5;&N1&b~ZWJx%8HH-NS-BRSnr7r7jj4nZv{AvvfOOg{;tp-*Zm$8{>UY)P}Cv zO{mO38(B8(#>$m0Z}{>Hr~yQ7t)=_a%;pfDFZh8ovMTGjqbt@GK#-P9U9 zc|E$nbsX`VIglL;HH072#y(daeN9auJ|f-^vrX};9*lBJUnq%U`aWL1mHtLeRq~!j z+T7Bdcl6_`+*!w+o+A!IkvM8em7BNi;@YIrVdzVw#Mg4R1&Zwar@{Cij*_&am=Kln zoh$2g0rmL674pkTB--^E)XZ3HyS77gPso` z*u?S6w06eI?9zPo+aR`a%m);A_{ti=fF+>548lw zSZVi|92jSrquuYT^6o!MzrILC1+6xuj&ixTDayS-8h6_)21_FdO~+u5>~@@!$=E8MaTC9BhxnvAqazqQ&0%K zA&`kDOS{QHWTcivqRHUo%Bn&1)SQav#&>mvD_lhCLu8^!&^_f(l0M^(nI+GyS4>A# z+9n2`lX`CTsRV-X^AW4k=|gKV-H1iqiHOQY^j<@0gT4UH*I6#;u%D%IPXpVX>@`_7 z?kVEw_P4!z+f2agpebO6#Y(ChQ2EH(Yn{qoQHifHNW)@E+YnsEHfn=V7Cs) zYAt#1m8b;PZ@e??m6%I^Fag#6@vJl>h*U5V%e8j68OUEWJgy&-vLbxhs`U!){Iv8*qx~YSl)V?|%9b0_c+JtxNB_bZQ%pG zZC8>@s7t_4UqB%OP~X*uiuv=DgAkUR?(LR0_YYZK@DeaKN&FowtViGD%7bs0vbPpT zObS8k7{8`G@esfrm?e-XM+U`S?_}RPA8k31MmXPZ%DO_Mw%2g^ONS(cE&k~eS>4@y z*oT)bB-v@A=11#;w8+>Rx9D7R`gGyY_U@=DMMygP%$g$1xbZjy z*PGj0X@5*O;gQ|J_7nxy`F~8Pp1|m8Er`c*y@W8gJFT3cSG}W#%-m1`+};XX9? zGx+3tw(rEmonQJ59g{SgM7hG1QI;@S?wRrgTGUDck0-r4V$!J)8LUU10BKrU*4Z?z zK;Vd027Z2l{iKNve9W;(H0A?7GG%sRA&Z^C()kw-gpar9l~3WM#*A}8kR~p>qKEul zzU~eq5h0~4#u#h$dO@tH8kMLN#D#nr|K3`=Z(1AHC*?>=$j`)@Cx8p_*)zqQ z+nOlV2z?gBx&3%nOOK$au=p5$xAopK`r}0Jtbi=8^AHeQbZZ5srBitqe*dy zRTx?=vDUbTyPh87I@yqSA|CESJho*};bY3>Wl{01aaQa`#<#W`&^m&R5yk){0}T9a zA1ebYwdA9j#rZ+D0L~oqll(AQ?v0T4E&mc7%at;*h6uxZjrM`rfvow~Nxs5k2jdHV z@iW4+q_kEd?^i>{$u)_@UFAjx{Z>64*lfqQO=EPtYTf7{GVwW}LKOLa^HR1K@fi60 zvZR8zzwb#tGAuAYcNmsp+!!=pQwbEwKJf(+%v$%wY@K&X03r7ev)LloJArSIcsF$1KX8Xqq{gVL9ops$u^4= z7G%W*;VtHC?NahFFDJ2CgNC#BY2R9&q@7NaXZOSXsCEsE0>n=@C!_mT>W7?F7N>VV zzI>eOyB9c8H;9xP5Y?hG`+@-KM=KAY^JL0CYUlr|F7`H7heM*>Z`t<^SWNZUot9hQ zymXn9hmU_U_BIQjvmnHnligx?(k-F@1+|nf27mV#s@0&GAmHozR++MUVm!wESY)(P zVUsD@jzbLYU;Ld4qXoAtEGvIZmlvi#!k+ZvyXKWYOt!Kebd=ZEM25==i9BxD6#(v| zi!A<&G=wNC+h^>?I~^$k^mU_=$>^vRD%8B!(Rt111JO4K;jsogfvCqe%ZN_4UM1iy zt|KTmAJ~nMuqz7My!3!4$sQIJ3!{wAVBAo!Eu!HJ1?tnK>&rrWPgzNit`St4jr7Q- zXsy%BAJ|bf2#x(@K(s-utTp~ls6B~EtvR5mTw}}MJfC7mmw0;5H-l0r7SQ$g>-Wmo zH(D1#B2yK__2>jkd2E-iwR37(TXO-Pz0`66}cc2;Z-DWU2z1# z#x&6wdiy)mbnVDil@3L&{`fj?*_P|18|DxYeD{y4O+P?&UYak(@OW~~B8T*Xto4qq zAx#_bI#eq`HL-Ps!*I`NdXUKbh||U9B?E7ythdnk@2lRevw6++3i5kRn4ckaYp31X zDz+19`!>X5F4s3q+s7Eo!@J(g1PklmH(H+c_07s(5;^Ak121!w8@t>3gTj}r;0+BI z8X_|j`@9<%5XhrP-a?vWp>?HwQq{gdh&L*fPEL>`?3XvDk`i>Q>&0V0UK1alOn@dH zTk@0jPPG#L_udC3vI4)CzG+Fle*~eg^t}NY%ZN1};X0corA$+C7r<@lW6r@aDns_! zB7gjcW00wBf&`|iS{_>uQ~SI~-hH7E+l8#0WNrt&jgAlxJ?_}&#Tr-PUiSnY&Oj1|bjI3(cqxAh*?p6^yl{2|jzAWkJQl)Xiza~9|?WEg`-%L>$SaQHz^I-X`Nu*g;`gqo4 z+rsGHq&6m#$+m4u46YJU@o{(W)=4`uG z<(aKInitO4vdFE{ArEl8W#iDMnX_eC{cu=$qSrU0;TZm7zbV3%z{$yJhw=q5k|;q* zLizN=#6#il(4=jW3PRHc^Ukcm701w{Hmcyv*bZ0chWpqE!XWjS$5=`y~_uD63-Giv~hA5FMnxMwtk!j zlb3}qSKf%Kh;wZ=)ANYIm2P_`c}sbU4*AP$F6W+ZfBFRG2q|L*f|jKUb!pA6fMat@ z$uyOon)-dd;Ef&@f_*jK=b5P{O<4C3+oGU$PuBeg>~C=9AT=5VL2*%MtdRmAqGW(w z;xSVudTFRBR}=O#oe_=6Bo1Xl5pws=>X>7TckTg|5DArMiXgoG331uklzAx_37rY^ zUCBs~_zOH&+=P1BF$f$#uGhR`GvFxW7lBCXlRRbdQHM>r;^k?;VerYwL(cKa3Fz3F z>L`StwSuN%DTrzD<&A6fDkG>6(lY2pLg1Ymr)210%|p_sghKe|DPvl(`M~vkBC%S) zCC6syYs;_Jz-c$qP19$}d^h;8d&NKe)0+OHheaq}7JHAHHX211M`}zD2-Qo6$PDOg z(OjDr(Opc?_z=SmGqVAbzYbtO(HEvC2*)2Jb>f8CfJrRjpCv{)eC&hTI9Rzl74a}xheEIIk#fhKXBF64Ch0L= z&PEHhXIy~52FbF4UT+vi!1fm90i+*r_}69`bTuxc=)Jg(aHNrf@PjlFEQz7l&n2O1 z;@z|I0yNH|E``PFMx+7(uJCc658)Vogo+So@Q_}YuiuIxTk*5zx_IfbJln*Q2r@Go zUMU4s-GPkt$e_mkXjDkYz=ZZv8$B5|Kv~#Z; zFQJ4#C4M|g#_SY@BWOMc(_V$>e!p{@J{^FOzIl{Qubtw$i=*2M*~^qWQ^f>d$Rh_Tw@_8!#wff_qQ^^nZ_eR zMjH1(EW(Ri0%@B`YYWo+@oGo5oL`sZBi(;Lt~Glse0#j)4QFSQ+mp1+DZ5%-+Grk) z1XHm!9ZkkfAX}`5Df&L|uKaH45EKmW3W?^~BV=8qi{ltChW&)g}xi zdH(GK=Zhn|ayO}eo)w)FhlEZVqz62h39{esut^X6!Th$Ye5$2d3~F$%apmi4I{}z! zCX{d^!;%?RGK9S(f5e_V3-b6LP2YAhCzD%}zL}cfX^(8ga)my{zmjgghJOCCA+an?bVsUqkKbsV#(8O-KAJ9-^2_d0A)+5q z^?XG17ZEN#g_hvuP2D=%I{NTt-~PUK5o-=)$j26sxl_4B)7sO{tBWB))M7f9kk#+V z>iheSo=zohACHl6?ge;mnM!C(26n!vd_c+R{sbio#y_)^M|9NU(Tj5~YD3N<`#~ql zk^Z-fH$H!?V<75`U%~#O9eC~cd<^c0N+$W(%6Ue!EwlOcb<*ZBdOGZ6_vd!V2mkHB z85h=`v1YZe@UMA5rf&sN7)-OQl=S_Cyu z)U!uDGra-F8QXKsGTZJn}SR2M5xW$8XP{F$f=hh-2RUGPC(-SKgx? zD%~5xpABBX!P*3TH=mXFf|mjxd_6MYW6L7GsNF0$4i2>BXX<c=*C{djDc<-U& zwkV}^dog}u)8obcW>=Av?b_@;I*A)w!jtNr@5|CecJ~dIhe7SjsO3KQip5K4o7+Qx zqu%yD(J1=^zaO6c_VTtmw()MUJf{X!#j)5%?C+RZG90FdQ~Z01ph*gR&lp%?6rD}z zz9$y;0(r}`MaCt}PB`EaNhogFH0CMx1tGWqVOTbLScTF(mtW&n-K6-sjUzqD$ zLyCY%g2uF@my}*^JI=)jEiAe;LkkN&tnNpn&le zhobAYU+VNgcg}mdPVRjPfmG65M6q3lk}1Fci~5>mg~@0=Rp5(GyFL`Gd^# zN^m0Z#g`Sg_Hn;h^5)qH**!#CWM-(BCe1>PFh5mi1xRrYMp0s@MCF5PX|y!NW9Rtp zmk}ildQ(@eoJkxEX(D)+*dL0ynmA*&`zKl^*t+J`m^*Cl45O`aSMKKExDoUKMX)gl zn)Lr(uk+r^2&I=XWF?HKL*_mmeESQ0OON-Kv=(1cu=i!ie;3#+m`$R%fo+t^52N;@ zzY((`_OdFh?-0tjdsCFFY@(uR;(L@S*SOHz6Q@a;$!+~R!9cRWPYon%{V5Vp%~<1a zzRQ+zql=>#jWdC6XmbS*lkIvMYk+nW%hjN>-*CCZGQV|P^=LLceL|wEs2jKwHP~T; zV!l&MPs_`Xk&T0$oR@iaPnv5_c`-Ldf{1t%4Btw=xpOqizR0txBf0Y1iVF6@lK#L8 zfG#-~=&CP#)Q4-rdjM_{6Smn?%$7$e*v$woWP)bpVymD{pc(ET*hCfB#?ArIf zyh=QV=Y*XZmB=89OT7!11m`MnLg+z=Oj+#fvstZ)mm@OwJLXY@rVwhN>d$F6)OBC1 zqRdqADRDL+RBZ~%C(;HVd8{ineOcz5D!~(iJ{qkrpKW@Sr~vWhkho43Thj=Uf!yoA zQyJr~g87*!F)RhK(o7KY+_;*|`<&x%m;axkg8<-ri3V*4zO_qDW2~msP5H5Ngp_d%)>xy;P=f)ih%IT1 zYrvRyiQ-a<3D7iBQzt&TeKhH+6tc?WX(3D^x97SmMA{UJgSBRPCTmIYrX8zk297pO z7eJaKXaq<$t7uBK@vE2-m6~HhMhc3jA#<)@4Du66N5gMb?9;-LKt+K6F>M!y0R5+R zt0pWM1lL}sVCB#fy-0(6r|`WH8Nz=Ob4(dzGEVJ-8CMe&#jEm}{`Jiy1FuSXP`TV} z()mtt@QaNpauZAN0{+Z_`Kh%8g~E@E2^9hSo0l3dBjMWb!jF|+z`_#4GXurKOFI1$ zxKveMGqrcLh5&c#7!Y3KlVMRBQ)VSP6seg2G8U}YCeyC6JUD!BxWy|PvzxbNy0~h* zTg9<8|HI74?`3w_05Qg+vY)Y(&^?#peoOVkfj};t)*_bdJ=L`agY0?v#gJD!mu}@O$!Wjzw@M&=PZRQ zJyp~1CqHLG2u4)>yo5jz`KoEhv3%Q!Ls)C5XDJ^mYb>(Fz|=JpikGW~ZC#ju6!Fs5 z#^m0|e6$7LVPf!_>z!NgOfVd}FrHThc4|~DEUgRGvzLj|Rm`ISz;%KeNS7UWchXCr zzI6X~hFs+hECaY%CnvDXo`&cXEDyxjfJR0pxE{NRevzdZxn8wKxbbX35jxgF+}K-} zvVD^galHy}UJ`pdXr8|9@905GH$vq1Na6MfKZl)x{q$E3geh0$n%AA3S z>38LZpnCVq0Yxp$C}YDH~&;X7p}U>)NB5^dF2+TMy^l}#4V zgD_%BD&?m%!T4;D=s@Bz;dr%MZgzg@hUWO~nPSyv)}eXU#L&cD?KmLTFSig!kn|DE zs|ex5l(}vGVl`oFd{6EQ#b9IDZN!k&`xDW*SulAaJXlx?NiXEzxw=+y@Nql%J+}n@ zKR463N5HNtNh}6!_I;2m6X*f_2H4^;<`p)YV8OTf{vOuUu-4Ek^+syURyLN9N(`Tx zg1Gh6H}$@z%T?7#5$0s`GTl;8guR+oGMmilG$a$h*E~i>n;%Oy+PcX7p*kqWF^iZY zM9|o?0V{&6AJkJhD>i--14EdWT()SiA2^=^*heJX^T!=W#z}N_Jamlba3SyjO-lcv z%IvYwlC+(?jzkTJj*?z_YQVwGg5V-eXOUmc2~T@EATb^77R_VJ#gkQ2@^IkezV8C~kLe(V=bx8@l3#J#+HCuZXe?C!`o- z%evi%E<@0ztY)kW-A$f3&R{9oYw5s|1>N3i5YeW(*?d= zN~JyxSj{Du8`gZf$@2R5O5kdN~IUt?Oly)DkJ}uJrng7RD$8;XC4L&l>!hVx(u$p}oqxJW87wiUZK}S_l0p zwGr)C+W%?`^nqRk8wzp&{HB`$>Q*Zmj9MA$(2W=X-a3Nt(t86lKpIU_1Yl{`f|y6* zJC04{D5*Ic?{AtNAWq3Ht>2KCGPl_~R!tx3dlyp%qGPb#Kf68cxo)3pa|X08(lH5@ zQ}}W~nrL#-4@t3Zmif;7+MA0-ne4ZcOohk#=of)|hpW)LAp@b|YAK>5xY)W32Jc|c z1YjFq4{*ye<0a%^V|DTUeTT0)R4{!8EWeWgp!i-61W$at&inr>64<#LsZni=j$!%f zQvhMg`?n`HRD3a5eOLp?fTTQokN4I`#P94L{VOffRchC&i))|hXM0wRXy%U!j}a-w z^ElDr;oLNez_*;84FN9TEWZUaqVZL5PiYFj3n=!r+o6rQ_swLX8&d&AV&Z?MB(Cc) zZiK|~Fq1Z=+jhrvftT7LL}#~QZu4XeX|^wM9e2&(wAWP4t*oyhFyYRs#^WMd*sz+D9oJ9^0&JDto0+p z?3WpHGH4K(L164%4-k075XJ6^CBJGz6#+`ohoD}_(@r#idv3gBq40r4OS~?jui-jp9-LaYSgpfn3NZS7Z1tsJ~9nqtNb^MOh54))O2JY11nLS6V( zf>|5c;{mvVknm9G-t%mhm~M-fy%)A%9>A>#=N*_1=!yFfwrS<<2sDYh=SmXtCip4| z6KtVq&(BdRzj^F<1A%)L^-8SU8|-ghIb-JJc-G}YOP1CplYZtuc2t7@F5bWbtKzAW z-G~9sQVN^{WdgYuC>{myi7Lcnj8ENsF01@f{ zo^6(Km!%5lj`6p+sI>;(l6?M_&B-%o5k!AQ6v0M~^%4Gxe_5l_dq*sED{tD!^1ox& z*8$UqS#VTz`SEW4bmk%i;in4-mE%Vri7M`>L30v;Us6~n_f9zVd=7(c8M> zH_5nqx~S#fZU_<1Fj&N|rFxP+9bFaunyQy{gs(23G%E@t{qbj1By0adqp!If@OBNV zoQq_WF_Sn}3*je!@$2PePq~*@-&qSgb4%iYXyQPK#KPx*rG^Hs0Ghw?zZ5S&>MTW; zRi_Y?vyDC`gRfZRXbYI=n5`Of&L#WC^7d9geBMV8e&OU`^2c*p|-flu`9wek0x{>b}nP0a&Q zu2iNX&_aH*?az?!$O_zY&XUM9h2Cl>8*$a}tMd|8{RBo*;{2I$P=Quc{xeUB^@d9ORp~Jz+(v6zpO)B={z~hBeqj=zWHokX=c9XpZmo+++{Io zbc?XH-0QSHJBVu~88s>^R$jR@ft*>h8s;8GDP1unzg%jLG#}m1jp?pVd9K&Pa<}S1 z^ks|D&pMspL)VFqM!zo${?X#UuN=tdK5yRX73cT)Fz8<^@tS^PY)^0POySYA65;g5 zF7Vm9tlt(my`M!;VNEh-d41>sR!HVI9n+sPm0jEutSgwYaV7}k+4ld?MR%w>)$=(_ z98dBpNlinj@6rnkrcY-};&?BfPtMIj^65%MwKtd9 z<8%A*tuR>}r28Hi_e^7o6l15iGr0PR-m2a37#jgY?$=t!EobzSTm?lNPpnkbzdQb< zL-T2lgKd-wr2a3!=#i*Re!t2V~Ay&=OzMuqUJALbwk$p(qsle?CCO-nIw;j2opCCXd&saJ$P=uQSC z?M)%86KyorxI2ZpDj7bDaZNTJRsa0)#mLQGa+xgEf4V-#Fxe3EGY~SVVqrDD989WX zQV?O_wNcr{L^e`n{s;tnFORPEXcMO=1T7)(#TR7-KAdnK#IMNsX5p2M1RJBx4o7BR z?pGH6cNOUnNE46sQt96qGDbSAwGf9-{5Gpzs|KL;AG~KH5`VqERrynF3phm+%(>?y z0`xRFQ~5K4&(+J0&m@;mk@)wq#r~wph@Ad=@PQdfmK(>bMk(;`eiRg;&M0p#9<*$k z|0k~72wzsN$;MzAU$KLS9Vsp!eBv#YOwe88hFChFx!PL&OH!bTdvoIVc=Wa5btC*M z^Vv^Dj1lKPj-NGy`Yx2a)41m|qRUXUdc=WvRfly;SWA!5YWu-X8!ek=6~jg4W_k=< z{lz?(40QFR(zywnJI&$Kd19m+Lq>2-Kx(MrigzssL50x}VZz_7?Z4&sDOK#Ll)>%o zfV5{ckx3J@sDP=R&oh4#XgThC#FTyf)iDO7JcyB@R1e1NI>3{huGpUi?MJ)hsEUq+ z#+goK;vq9pcs4qM#k z)c4E1b)oMj{A0IyXd^o5E@&vbWIrAEb*!jf1Q3=ZATj}~)Q|iT^jAH60(25?b*q0$ zV3}7019+1=N~fYg;^Cx_lX|maWxaz=;ccT+{-WQsysZFn{P3t#A(vgZS!;i0)ZGrc zfzkSDQJWSeL0p!+SK-Z;a7aY}`P}aU{{SRAy1vNpHprn?n8#32Ca_3})U#xV{#^;B zAsE9ht?rl?9xOt}!Y?6mXLZEN)my&-7)j4AEd!$HM+G|#ha^l8kJV^=0+EUOVz?fO z>yhh_e}$X8+msyfSOE-6Tw%iWe`*Cs$UkD_l5ts^Z{?(B!qVxDuTKYeL8zqI^xn%4 z0-6uvrCIs<8=qF`!UBT37;OYkNKhA`qf$i;;)7sLH%DR$>CKR8I*zq%>ISH)lExkShVn))MvlmnWZ>a~6zVnnz?2$up>UD>Vs85B?y{tEi zj5Yp#;&V;BB@ionQUjba!~vVx0RZLqkiZeLBU=HVKSp@kRcxSj6I&KYf)clG9LBO+ zPd=33tGiR}@H$ewSR8c$r8irOlgF@u8~$7RK%s!JMm$ zxk3`{Q(D@ifLy6oTNUcM+OBy;i*r4KMR!f(yQl<_R?hw}ER2`c7G4v^5d*`~WHw@- z&PuwK{~!2NhHu?@I)BzJWBi;f!rm`C|5avk7&P{jS zC^&`5MbPzRxi8(ZT{BlEc*!xYdo7RayePU282-`{I&$G6dt=;%`Eh&>q*o&?bG~T$ z^=PsVurtHPe@YjqiTY7ND}K3SaFVoLnGBH0k>XUa$IYU1d&NIB*RK_($5i(#^j=S0 zBSJlo63AI(kpBTg`0Rjsn(k+opi@p?^2o3$ylYtIoeGVwYG+bu*iU_l>r|i>0DY>u z(AY`2Vofi^6AOt!A4m z=WFKaDy(`&-&U-n;FsF^bX-qZT~#LM288f0M%ebRtq)9s$OL`E6KVckiql3JV8DT* zBKu#%e*rlF$_AsL^ItZyTRiUD2>((Q&hit~VIn;>1B@&FI-@30s=#VNaoV?HeVco# zf6XQG8Ip%C^;mRJ&7o+Yb=-YF{(HBmcmBpBdGI=67nl>}=@#BCW zjWNKxb<)bl6~I+#-nwk9I`@=5&Va~67;_Wq>%*TmJb8*|Cl7F@6&|n~)N6pwtL<3H zBtvipEW&tYQr^ft}-H?isgm`+W#-BvXHNIyY^P zc$yTA+MVxkc!zKPp-%7C;h(FM23p_xz9opOCnF9$-XR~hZ65>}N8H}s&Nth~@3ul% z?Brf6ZBvTXA*PgEV(eBdKt zdNp)0foD%pU1{8`l5uqG>WSOZPjP3aGqI4fXT1~sibm30o_&ivHdJ!~7mqFu9u?a0 z_KCd$ml9n7nfPXjo7P8GgbF`v_JXc>CmjoPPLcX+36>qPVmexW4JZPmbA^t1Nwj7I z*SitLb~^JT3VVj7EJJt>w~y?aAnhehqF?L@0Js>nJm7e|n%e2k)6KckQ4=NjK} z+SR)~t!tpU<9$+hSo=-y0=-RN)WVV`jN$9UOB2j0>E>G|cVezP1n!lhNRJef712f9*XOLvD`e6wPDr#m`#BC zUbF(D%7wvrSNeRc&6zDBpa=mXW&BJ%{pn&t?hVp0yhus{__5gaeE<*>&8Go8zItmK zu-g_2KIFN>V#H%*r)B@qDO7OH_Wl-c|7L)I#S8>*dEvV?IVHgr678T$07mKlFfs>S zs6OloZ2&08(zLEI+XQ*E^~e6Vp|l-c(mK^`1mUk0MHzr+*^SG3%(u@2sg0~^mZG0q zC3x`mez40aET5t33X}!ju-0;F)dzwPAC5*B_7J^RjO^Ag9yt|bhOsL@pgaKrHf$_e zKzApdLJSB$868wt*?B@M_w%)FJvJ%IT?(K_#@bZ7nRcCV&aV_r6u*J*(A>aIjK&v0 zbW;X)K40w@bB84sJz;BwEVfhM)&(^4HJboZ?#AT($FtPCE+&{jTEoa)&VzdlgeQ)W z1{Ql(ya+#^AW0gD&tw-&3p!iik|k#M74+}2?s&suaDBpw&ze~ALuw=b_cp7-X~v}o zwWQMB?iPoY#XG!|HH!*Pi3uSdBcd>cT~Zz~@V%my*xzMkLgQ<6^eml{9hzTMGIw}S zr6_AhYR#pbed8}wTj|jr-R3|sk}zm(LWfcLO5||iZP$~3|McvGt9`V&@CE?Rc`K_h z+gCn_2LE?TLm!L<;;raAz&%H0_5j3medVJv!dO$IzSpmx{CY3TAxEonG&{#ZUKa#= zR}~-nRif*E8L*v&VU~fz^;v0TINHEpJS!Ak=Z3rRpC5_?gYe>iiki0lTKs0HQmlGUcDPZ! z9xl4FY`FOpe1guxZ6G|mL%w^ju7}UAvMMRVtPXX|`@vz{jkm(yj-q=@?=gDiOBr%B zz#o@^$cl2AQ|uL|UGcJ3q|FqnL*ML?_UzuY>+f^iQ?y=jIDPGsvhexPgHuor?W4NK z-g0_Bqu%%U6hc#eC#FNav&T=hrObDtdSAqz5pGXqbjJa?bRMO|HFI8{bq(Pv(dV!_HJCer3ko{ zp%qK;J_B1NM_X34c#{NWtl#t(LK-;~3u+q}T`X5qiZ>6+>7Yn;rPD7~f|wvk5T)D! z+@dWmqx@JANGSv6`k54{Zx74-R1iPITcHjrE;))XQD*X3W2}h22+7fmG{s0P^ECp>9e}mI=LrcKQ1LeKxz7)1 z$|jN6QYJ=(g!-pt5Xsaiiq~(+qyaHv_>@y;*Qd9}kAVZtWi=9iJBdXXOPHNiJhL%d z-*uU^`|7spb)}oIMAZV3q?i;;lNdB9HMdGzmU{=zQ z9n63^Xsb_r`ag=r*;49(U;B`jRBs=lVS0<1M-iU1(Vd{nEGo(}ZY|sk_)N|(fGd9z z-Y48c&?)9lCue*!2>3bcue1O!Eu2W0Doo8;fH1NU-etyH@Q)>WhG&WD%oK*hvd=dhJHT#qzFXWR zvS6!+zS~OUg+Vn#MxK!@fnMMD5h0q$87LOtx{*Evc6 zu;43Bh`t2!0?_hj)rh7Hvlm9+W~u~*#ksSM?A`%g*cnJwwOvF^b6LdB`)+9`MEBjS5G@}*K1a{*ew zslJ0OFl+1_l$7$*A?3j3-r~+yh(xkH2@)o5RbgL{40DoxdvcAyU#&5{1E7Yf%;l9z zsm`1yzsPDnziv@txP)MGq$#tkw7pt-tpUDM=B_TRjZFrwc(Hut$T(M@@^7_i2=)ln z*O7u~w!_-qmpLjAd?<2A$@1@JO5WRRZPQ#zE4ZWpa1yv@dkE=t9+9@7-74@kly#$$ z#M${vp8DUbXQ2Ba!-uuQN#~pbiJNX)Z9CR}-ZRM-tC@!Me#=m#|5~!()pciMll|fh zi3e-K#ZFof=M73chEZ{J)v;+$TalU*IeCh)o{ru7)~`5M@+0`LX-3qoag8r8{0OL+ zCC?cDdmgsA;$1m2w%93Ix2gJ;XdW&t?ipQ0_33C+Msy49Y#;Jvb(rW%6?=ey4_^K) zxNqo0btgj}5Vh;@O9U0CwRmBZfK|cwsYT%EBVGsUKEk@qPtK%z6>L1EitF&9Rrt_D zIGOdTux9?D030;#E}$?Rwgqg4kji1hfb`BLU_!5xn~8QEw19E|ZhQ|_Q$4tSIR^V* zeP=VOadU6?$LbaAz#iUpH3$rW$UJW$*s%EeGJWd)edL(^Ges>Q4B&@85?5>kubX+B zze_fHS6^tB<(G`W5Jy$jh}YF&KNHXH;QKO0RB5+_B@XvPJaf_*eNkWMKSyGs`Qm4h zF;H?egth=<${^2fU&5s$qWz>z@A$BA!>im8)f_3t0+fKs$v;^AQS8;uIhHwZoSiF9FKe%%MMFer5^b8mFVyd^+? zXtRjRyk3CKUqB(Crp(E50f0G>5rfyeU7PEr(Gk0fE{X-|r%JZ%k%CB#pajmT#M?aR zk<6-|4P&LIDaxQ3=SjIJfv1ShsTDW@BxQ3vIK~lN%oBa5NDae4UiTC+I9TvAmH;&y z5$ZHErn8+&8~_w0YU9#><94glmnUCG;zzq%JZVdMe)$dZ6;N*vIv z#uCyhRopy6I#PWR@_K7W+1Zv-fUK?f_sa(Snnr)}Xb zH1jL?)i@j9haHg4mPq`ihXS?VkUd zYjH2&YH@5gAa?XVcd6E!yl8lLa*WjY3y`Z(ImtzD*ky(%X}3RS4`~t&LJlR~#*)3b z&iC4UI=6l#BjjYwp@~&RrWxJf4ip|zfEflU=o_D-qU05+K~RWuo0RSv#OP||Mn`*z zN}>67(^2(pVBbq$MEjA;mVk#hht!?AuOoHla#2;YN68jK0tcK^56jiuUU+apP|P3ENZk;dQzAHCSZ?ekD-o1KyD<0ZyI@RU#bJ;!-d%@yzi5a z@cU_X`7xDDkQ~#`UWwBw-Zvb8pnt*Vb=|~>{e*q$g|9gdWVvF>7dKAQ44>8r{c-*9 zc?}^FPVuqFoam7Jw(-f>-e+BI{T%=?y1UEMmU%Dv5mYTU1eddw%k;EZhj+v>vq3(9 zzE#F78d)yTa_S+Ua+F28sRJvzNlIqp84E*DGKpMU5VF<)due;T?Uc{$YUmFi)uqZe zeXU;k@8K-~1;gYPT*f?U5@C_LVf_aT6@m@tjPY7XC=muzR!S1vRDAWwSlt80*N z4@bYnc;w4{c&M@%jQfUQlDfO(=S{h>x3leJgLgOkMD`^LSt?Fj5XZAe=ceUpu=;@o zeh6Lf)&9_tw4LcLuU5Z2Y|hf^V^!UigSHoSZOpQ_B2AO8Y) zWcOPf=27cl2_<06+2qHJS@2e)uPJ0=n-haK>^cCmH+k(&!&9EK&)l0~6|?(!N-5s>fDly$4Nz!>DD{m6#?D+MSgnr{w@NmEk6NxrO#Yo}py(a6sN#^G_ z@s*zp@1U;Q9iQ5GTzjpuwjD_w!zgePjC`1MTZ1{z1&_zd`m4nSg0hvFR%u7A5|rX> z1L%!2fZt!dD0v0o^#!8*auV8~TCn49i6N#);18fRrb!$K%z*b5ewp?~;cvu$M~Hn_ zu3O$^>R5IU7}Vcq9b6HMkyoS8U~aDiKhe7gAL=2-y)8OV|8$&AVmQ>JNd)WTOGgh~ zd*T((UPYMFh<$hM=c^vlfvDXVb`g)c{%+iLDKjHykEq82ggi193mTt+kgcf(KDW|( ztZB4;r|0@`G4Y7f#J)O5@|O7dGJHrV5@~Qdcv ziWiSB(r3;Jqy6@F@DoKK&{M(Tu+XH7sFSB4R;N^H7@V)-?Q{)^)+F*=?wg)jI+qb< zdnG~q3Sbsc`ShMIELu4gjPMoP6#BDb3z6nz?0-nd>eAEkPh+mH>^JnzTc+o+?seuA4b_PX=W*OySY zUrTmae!i*LKo?sJ6iEb~q!k_&mlb`{=I&2({6IVm*Iy7c$B~X7q4}q4nE8|DQtlkW z$;;)*xo5b=0;k<=@wNRvN(l&WHV{`+CefbyAsnU-!koxfgcu@$cGQ~wICDS6E99Nu zXIb+M)e+tfiyW7&gk+3Wh=*UwW_>&SzY&)5$wf65#r zP10LpB&*K;rv*sOP;?fHAyXvK6Y`9TAik#hT+z9wwZHA3VH_1B5kJK|>nI%s?*W#_ zZ~$^9 z4oc!m@XZrVRrj|p#teBchg~pQ_ED|RfG~wNcooqpn;z{8rkC6%l6R#47WG(d%5a7@ z&5~8F0{iJlLU}c#b+go{LomG7H8@P8dbU%jTT8I<8*-|8v9B8YK6ulm1N6v-%>dyS zrcwSqSZK`;^m1PbDw&#HATC~f*Lt33-t)e%`JmZNq4OvRmzNzC|EN zp4zFahQZk2%Mu0;47hAKmY2MmKA)MQn}?-{tLz%r?QZvd;eMg5_x1sux%PCvTyX!} z)<5g5X^y?HAihJSkTSB3VVv^1yACcrb)dc8uy+&$>Td zR$#LohF>Ga<_(97v>(&xsBwM|pY};13Ua3-dQ)(q(8ym0SualyuWTj?OM_Xhi6yo* zFZwBH`&=>DT~yX9kPWc(xemi|UE&QalQ2ob^NnjlS6$0Tcpu+yv3Jy z@~0mKL^5ScS%zTVJ;d<`fTVm{HzF6v0(3NI?yCqN``N>tWMLU15k3QX3zpQ+rr1k}y zWQ=+icl|N<54qyFy6_iQQdL_sE`;s)FH)<1ziM8*6VAsLrx&`kJ=Mg>ixxbH#(Y_^ z0}Q;w*psim-lUS(=_LwXcx|rDLnmaXlN1%M=0d^pBtn^U*TrDmt(!SsZ(Zm6F@LDR z?;5)l0!_=|#jl&P!!7f%5|I!|C}J#|J=Y461hS5=`>lWdKP6_W5)CQaA8jAPBq9gV z$zjDyi@e}EWfnR7e9S*-^6Lhy0M2B8|7`tr>Y@}M04Z)9)dL1#=$I{Jk95X2zc6s8 z^1;Clf6m;EM2Pu3X&GG{IT<)CaiV3U6ErMalytM*iwIfjOcX2@y|a2Mpp6c0(|k(i zSPlh((?|svD9sQ%=rEdJpvvpt2AY{}eH=)G)j6RIdwT#^=KLcTTs6)U zL>9FD8a#M)9?Ksi9xI$zUt289t$g04e4I=a%)K#D*y>3dQoA}VpRM@QaA`TtY`2i4 zxOrwO2Un{UYO*05w%?q(A8&EhQ>@@=<&!@87$>YdfQ1Ih<+woZ09ISgmO(OeZ-R0d zQ*^IVLdJ^t6}gFALCY<5xB||7zmtoUkV&_tEp}ReyF8563Hd%deemo4inp(AnzT^i z8q0H2!;9=;^r5We;XZWZfKCRt8@K++UA&+BWdXazp#*4(OGrQQ>t0PQ{@)~7tg&nz zu#IfqbkKCoznSIag$wLpf0nxnLp`^;JMs~O#%ZWb>Q*}tC3BK;;u;s$7gmgW!(3h% zRbR(`-t;rZ*iSkKuV2e@(wn3lIDPtuL`|u(DbK*;)Erm4WOqW(^5ndZ zJ|6M>wd3)@NB}u^;WU=#Au(sIp*Q2BheMqtWjQo9#gx}a9uHE;L)%n^t=lOsTaVU( z;+nhXVf?ReP6$u#Y0+-u%!!kHKL_qR2h7RNEKglKFyC+rMO z<(H^dBQK)IQo8F)xYHVm*6R2{5KEv~lwuvg_zSBtgdc2eTqJdZcy?eJM;g?%Cv=_VS#@*Y(EajGUC^j!f zw=H*QUWlH3YxR%4xE|#t(i#7u82W$JA6D01l1*TFYBv1fP+Zuh!)?fAAz*tgC-8QF zu;CoD06867mY-Y22jNM)+i`=2uk;mTD`**$nYDn&$-^8)?AK|iF#jI;Ur~K&06cu7 zrC2oQ6MD>T*#7+q<*-I(nS8aH?`f3ASyki%jd7zzn2& z)|N0smjkM?Itw^s3ZQeQdgh^TI3uoA6)5Ta8VWI<$c92u5qtTWNpAH-nrVhQ!?kWT z+I{M|FeRyu&%oA^plzH+k4+Aqo}5*Y5VK=bHf*m=j@(`@sd7b*tLenyi>`$w!^f3L zmSWjDh32Ubvv}-H=mLJF&pdUse@;grI*Y2rU$wh8q|T4=p&*5@ruk-xIiG;wWmS83 zo?-CU#7S^=|Bx=1wS^orhI^Xx^eY1D#f4d>xJ%>2uKaP3)+G{zJu^^R% z(Pjo<7*arAnBRkGo=TTkigo#)QyA5U*O9(0QIKj;qEGxfJOAaUe<`nepnl?`g_n=v zKt@1>;vB#il0kn{gr21N^TKpuf%Nr9M&Ugl*#ftv7{qB_e%*pl#nHxUco?&x)7C35 zVq1~WaDkfrhtPMU@lJp`W)qA1 zRqr0fZ`mctQ`$#B6rPhE{2L0mD`L3o-6R^K?H(K^)1~QZ3o06n-KlX%Pq8Oq3&Ii$ zOkD+V1-_0U%Qz{$XgY}+E4*=r(64bf7oJLl62-8HE7Wn#KWTk+MGnOh|H@PehyM!t zR;ysvteM-Om5K5irCS7TBY$Y93-Nh0AhkbP>%d7mXu7x;hTzYrdi! zWs>`O^3yHYG0el3n7Z!5JaRg;4OqoS3in+x+TFJFTaQu_;hyhG73?ivW|G|V9-DRH}2^}9ExCmJ$7 z!`%zEO?gP|Dfe}yni9OzU-PL7dtjDr3Gzvheq2ozxQR-KdlQOiKFEPo!CM*s(jqt= zNC4k$SrswI_=L~PJs7trnVP-R6;0I%2k6^BZU+iYQ)KsUK$pMEYjD&?32o0!Ksu2% zFzbqr5C`Mlczr0hxWA=Y7zzGN??CEQfugEoKI ze~_y9DHqxht^-p^hJ)#46pxX>GTATtPOXX82@MOA0jC ztb-ZCBlsiAnd=BK#6-5|VW5&xdZqEBfb6WII1CP*>M10HaG~6)dj`5F=Gb1cxl8TV zZ)VrZH`m=~jkvd^>Z26RbHR-PO2c_FvCyJ@Vli|N_r~xL&Jg5~aM>+7o5-tK62d{! zp7-$*EN$>QiQvnoi9_3rK{`nk2)&Orq%^yPu4hxPA@l$aBqBj7_9Lup$?;$2Ammr% z12zFl=5D8GCZn7g82Q-=F%QSc3p%fftF#737HNqnzKW8s(9YVY5VQ@Ps*^e(GG0ZTRN2re)7)(t%;(GNdrm`G zy;^*6jOzSYjazM}@|#UAPM?9fMVlg28$}QIa%?_-Yas#G}`teG7C<`!f3sZ;bb5BFIv@pZDs<9k~5RO~omkQ|R7NIw`F&zftlq)uz*ngUscoVjB8}Zdvxk z4w$^6BOH;MIE~R#N4rt>#XalSPNaS4uRq?>9QlKgS&*ScSSDNL?+EhW;NMPX=}5c* z(H!%#CS3H!dAr=Re`_=cE>SQSm5_$2t9ST#bQ9wp=C>h zzT`afHULOOYe!5JPBgJ`Sn&=X4fDUC^JFuTgx>Qf;|$y^&ub{f-)w ztirjBM+OQ_I4O4_zanfQAv*QuPS{`sYp$-Z4Lx$!`+2hDdv~hgtE;~8p#i^wZrb$ZT_iarX z(?K^fX#Xp`6a)T+zT(a3`sdmaOl~tUR`pmsbfO(cH-^aQ4#rn&3l%*VOLL4C{WXq* z%qe%nSY*S54Th6na0gOlukRL{mf}3UV)^3>(ZZEm$x>cEEBqmM)`CrMrrSfB)s$gF zkGb1zn6PjRHC$-(DU+_vCWGhxHJ_~+FbGq&eRyd5$rM}h?)E}&epL2O*PyJx%fLtJ z7s>4Y;NsNaihR9He#zPQQ~LWL#2w?{^7s7oS2(hpOn(QEH?;JD+F{}n#%<%%`WgH9 zvb<`ay1?4A3*g1oU7+mC(gg*f5wFXt6DzX@GYRD++8O9bz&W-4x-z!#O)QPb0Ltu7 zxjb6Imd=Z=>K~?y8Q3i%*oqj8F)1`D8sDGIp<8g0Gw!{R!;cTu#xJi4yr$GHi+C;d z2==J)aX;%Rif-^O#)866c2A^a(&slI$Ud+mzYUP6UN8!K;Hj5&+}+ z*<};FX6I?Lcg4vYkU&vFNa5C~i#hq{efRmt%n&1daY6IV!-79=7LBCud)w@)cN(KR z2i)W0adBJy(lZ0jkE&QS;Vqt0UX;yo*!uimw4QBh*mXJ&-whJqeT%02yx;pr>2?^W04~~} znE(xwpMT#Rb6QxSc0fqJ$GKkT7fs3kR@3ajNmUJ?X$#sIuioHh4a%~TW2Y~7Hfl*v z6!tW($Vvxp_RDklm-otZ?=3tZy6F>6$?TNvoDv6>WMi8(6L&j3uZq@Fx|gaycl&;L zuEjt;h1u(S$*DWp1WfBb1-eMHTJYhY-zhGv&uIHfs?o|MuTa@Y$L8p^_p6@ol$}Mu(#>8RM5wOFjsb)En!$SI zan1~Wk7>f?)Y-OuNwiB2i#^L!+kSGEJ-&SX_HnM)T9)NK$$qe!+CwKj-ukAA9bR=n zH_wLe?#O0lflxw~&NknI6T2ODqR7 z)7u#*TfJOFd-ZDIdM!P+7Cep156*nu%B)CQ2;C^YP^vp1ozmf|PMWt*_o9-!U(8Sa z;YYNELzwr4@_K@zOK!`L?ZFqr26~?R1BQmsov#||#1X{u+3KHk7Qlm3e_SH$Z}(~0 z?Il%yc!7G>#Li=#^`~Q1K_x(-;~Mj;C8Yf+5Lo*h#}ZDAx{WO4{XCl53=Xw4s?nJQ zr_G8svt|~(SW_b8d4f1TH(GE*xWjWe!qCtXbJgjgFbck;#z8(4%&-p=@{z3S&fC2f z*jf1He!$8(XazfN`f9q|dm>(Dj+9YYoc%y};wrhmZ-ttl*SyLL%{>nIWC}S&8v%3< zrf;fXrf-^aj%mpN3AJ2VzWH{wqH7PRDE>~1LO&_{6>}*pdKMLuu7>8{c&2p&plpRn zmeJlXjV<697H9G@F+wQ>6eJ{-c(-=?!K<-l$5CHS`zO>Dwxvt<@!W} zE5X3!!E>S(G)kFaXdU%(;u&>8_@gK@dhY7G!^>O4F+s-*0`({JzCN=74PBUdyjhI>bC;wlzf~r3HLd>BYTsrBi_j! z{&LErjHtdtIJfZ5BjbtLXaZ6Z2B0NJ#P9m58*tMVb&Kj1Epw>Q{0G|z;A*yB$+8FYvzpqOw|gktkt(~ zEs+~r;;J!$I8vNx6y0?}n&eOx9o${fgRqxnJh@hkG!XGbSg6ew9R!meWS60g9gln; zb(ewT3p6PZ4EVY_@{v1Sztkzj=rxizp<^NBK;S6oR7U>)mPOxMA8R-uw{!Q?u``R; z$r?@@owwswvHETCw1kPB-9hG(k-dN-z10o3cVzbxScSA#s&c<`R}DUD2w&KpFH;~k ztZ{fY3iEtd+@w@)C&j}guCZ`hE3RqH7D`$g1uQKOs7ilwgqRj@>IvI`9XM4DbB5w2 z5dpE-5xG!RwzZ_qU+&vuMK9H}0uz^m4P+xVv;4MIS=_*We~~2=1b^q`QC(095K|V8 zKatpzq|BSM)GSYY0#5z)q|#wfUQirqztRxmWlrQWTRVwBcA(884g$U| zB@@xUG{{}UIPIy|U=h{xM}w!LWGdQkj9-wjULm&r7r5%*>hH(wVj%;AeUu=Xhk{@$J{RC3Ly7 zK(shsC65xqEw9hiA&aHdi{tNlPKi$2`#gRke+x3|PUvI&-(MjQvwD{OYpqGk`faAI z>&W>Hopy1-d_TR@sJ26sD>}X?h|WkRLbv^UH>I0vx%R~4nka$OaLH*(G7?Jb)@+N# z3H~_>3)HYUXm7#O*CvnGnCEKv@TOINeT*j31I41HFlf{0MfVkg6=Cdf9VCIxN7Hzx zo@5&ELr9!4xZq_Lp&1Y}dG2+NZ=|cG@!`B>0aOBM^GS%jh z>i+y-z&yLf=v3LG>QoeCGos8*MuH(tIPv3sb*|*YN0QM< z_vr~fKDecK+j&zafL0psC$Zc9r!`c93)7B642~JcgAt(zy}j*vkt)wi#+}LypuW;l z@FVllS6<_MtR3IasHfNPZ6-9IweLBpVv)a*D!9abtBFO z&R9xjACNI$iXta&ypeCrK{V$Ea1glb_lrywH%!3)iVUZuYYZw~|%y&SwH5IO}XKcypGyS=a-o%Nw~0INV3RDI`gRx&+?;Uca1Xl=sSmST$qD z^f2Bh55fKx?<6DV1^mW;!%X+yKfQ(YgF9iQ@N`0qHn^+SuJ12K*^VRvKqzB){*7_X z{<;hCGZE)Z*Dvu=8I(a1GnLlG{*XvjM@n5Tgjw@8W0?gEUQw7$WnI^N$Zy=^5 zypRpeCRPL5b6qhssk$#ht?0#CNYYz~xZ&l#dv6k#yWWs z8#djqpo#;%u%MZ^AbYm#s%%#{Vkmt|-g%Y$S+eP1*jS=jIV7#m-$3o+%pFZD=9WTA zJ)DI@*h@^cBRqTc(<=&a{F-YQ@4)-gMl2_3sIIZe9F!_9W(MSh3{N@aU4bl}WK}yB zjo{+*fT(Qo=QfBu|Lt%&%lV~8z88S0AR#?lNvUCZDmxewh_Iwasem{iNvlQ-357-V z*=k)1=|%JIGHFi5Ty}tDrMj!F@P1)7fi{f(*GT7?Zyk`9O@AOeVpMrr;!#85X=)4R_)aB0J z{xbWQyR!WppLpE^SxU^EKmVY$Ao~W3)ni(R>Q(J@X;D#`ekT-){;H~itd4o&%xltw zzgOvgUc#2}%%SomHq5aSX+=ge)~yv4M@EpaQELdz21YDGnp@!EZGa0z6_>R%h=STm z!x?jSq66wzLdhxNYgz-WBOf_U6=Pi$ zu9RL-1|o8W^J6ESmz#5;>-X#vLsTAEc5r*JA?fl9oKAbzP3DM&(-kUt>Og$mkZZJ_ zRoBbpO?1L~_`TEZGhgu$rdSqmhsH4_>n6U-9l+uL9>!lQ^V09yrSo0EMW%-?F=W>W z>ltR;m3;7V63LtgGB`tR9t_r9|D%6;(gLU>X-A1iNyJZ$gUrDf-SKo37P!{5HjIM+ zcyX~IIXB-O$A=P!PCtj&w5R?jv&_0#!=H_*w*!1!!RY?f@7>@Antw>qJ`(8sngTbv z8;NV`+Al$Pk zL{rr8BQA0P=5c&YK_m&uOBG6BFzb9K|IeypHd?jP$HS{dfH*5LFOg(R8BkV|?5*U) zQI~!7hjC2z+tn41p&!pJjlgryziuL0p5gkpON%U9;^@**mVum6C|h?mdc6co%l-G) zrD3}{^F#0yXJ!{24pA0O*o5{5=HC9=jJjbQ=nv!Gsp58wo$5Pv$k9gcUu|8M+OmCm z>EAW(6q=;;VkD@2gak_|gmjs+?Tg+j{$!2AtzO2DdaG*q_mirapi?9is5_i*(W$8$ zxLI69G}ckt)DjxVccS?3@_6cPxMf-lj1}k%m+}I&uB;OgVCP zE!VluABjU`{vpV=Q7}|7_dH83`q+Z^50twhv?+g`o`i(bU@t=w^Qm;R+5chGxga4n ze2g}Y!)^Aq0o-ylXx}`S9xEhq5$V))auGy4;?SuvMDzMiiEciaAyG?-6a&FIvgi~UJJ(@ zGa|+GKN^W8QFl7yE1WhB{}EEFk+OFf2Xgw)vR&B~7e-#-lt?3dt$zq#m}7=$d&7BZ z`bTxo9jtqvjAfHdzBa6kHqCS}rZ2kc?fCKF;F<2{3@eOvcQkX8yIOm?>vEWOer$qh zw%G5MOC#DYYvu?EzKE(B-VQLK?_%12x6j}5hNpZ`@sbtZ$E!4p)zO`l$oXFSPWXC8 zIB~yZD^zi*Jsa zD8zEW<_O@orDfO}ljX+2$9Cl{Sb+6G=XuHG1YQw#W~RZ+-}KCGc%3*1)U2MndTipc z5M*RaENsRU?{-F#L4KUxcZJE)`wL7W)V%CmokA$wenYu-n^-*ifSrstVC03t>u)~& zdjT2=^G!a#@SN2(9QfJ!rY$O9mWv){K#(^=EEgvj+i`Y^YlnYHuckm zN&tN=_#|d7UY?*Ah;fz{U{h~UOw%hrwnkzFDP0%!hI!?yNqE4Ic*XgS`p;we7*&BsMlX)cL%c>)GCd(4n$495S%IlngIFa+Q8+>8 z2ehm4?eHG|nCpyEA5xW2&Urc=O8uL9=2Kq;K) zp?A8!QK(0Z(Ar>Rf^1|q9PEoZ*bw4@u%nSHjFcBTpJmyE;DBy8;QVB_NsiMSxaq|l zpJY4Y*V7DjUli5m!akg{&)gJ_(f$%613Ov#bN-$hr{cb6u!+>2FWU7pZkN&|Xo}C%SKAdiZRFCvVT=hHk(Y)N# zjT{AYV(y7MUVMq1?mVdF``W)}QBq$DGz}wHfP00V`4p}E&xd`xk0Qz1UwOd6yw7-g z_360T0vaz_NTLbH-Tnvie|=w#b^;#=Ykg#APEqqur<&tnIr5E8N}_eJCB>V{m6p)LHZl^=&WlH(^N9JWXdLry_~p=w(%{1 zY4BX?_*f<$zK|c^WaY3ax;`msBa2eBO@oqjJk~CN_1CAWte2@5>m4)8n=p?m-*eIOkQwEVN z6=c|U$b=wBzN_Oh!g8*^cXk^k%q;qSa^~-d&GvY?T1$z}67LL1ulehutQZfg-r~%n zsdh(!)?62z-Y=Ev`Zt(fUbu_^wiK?hX)`E;;q(Gj;07$lS^FO^XdN5{Kdthr*gZ-^ zKCPv3Z*zxj^*`w*-GwoGX62$wI_8T6lqtdl^}paxESh^asDN4EPeiut%W!sViD+N_ zk!f|~Jp1CE(4x^Oz7~U?HQ547^vT@d+29Nb4luZjW2ajSfY5CLU1Mj|utNeu!v7EV zjA@U|91y=nQNhrTd1wJqL1$d6>Y!#j-%n7sLG6fw@*wr2y+o9tc;iLo#hmLo&;I)a z?^&ExjIiB;c=g3y9Y_3)b0j#de&|@K zHUdgCpW*mRnUJ%QNHy_gWOR7+a-iH$NS#U~EqFjkZc5$>ValkvzJI>KWbhAU>G+gl zX$|Xj#gj2p!Q92|?g;PDqIZyYC~eyT8qwjyOp+}jew@+!0Fa|3r~Nw!Xm;08Q*SD! z4LxH=T?gPAELrc>0g@~dQnhW8+UM6Ud%mEP)fed?8daBY{@(0&z}*B0jAq#G5mlQL)dw-#(CcEFh^;OZUUzGLQAg=CvXE9>dE2cKNv=PsnGiU zgVNvMUYh0)Y=M&5d?wfz>-xf2gv+6!}~M+2g)caK8cddi@Zgg^%+YRrLfOx!vgS zWrOX0%pUJVh!CyHK=5S%o9)E8QQ|fMRN&)dr^d~DGJ^Gsz%b@yz4262von+)eb!QL z{+X+ZYbRN!^zp{01#Z&$jFl&pb7m37=c)Y;gZFbk!OERPaw#lp3(u!pej9uAwNFpU zwQ&BWU?K=yvnLHd>KC~k2Cj8~9B{1*r1oN#<4Qb6V%ITSV6j>3k-u2>1yRPq_Xf@I zKI%cep1wz0^W56_384bfc9gUMa4b)| z0ITh79x`~E&6Ew>5~gBenCM@L&U0=f$U}mfiJcVOXPY*#yq8hSBF6`QrN!_JG@s0X zw6Xi9RY9iH@1FjAsm1J#cJQ3%x@z1hP{eY92^mE*L<1Ai&MG4_D(ew=n9;nVBS8GK zPp>*BeTO5fU-i9yrvf+D?n_vs0 zsyNW)P3OTd$2iYCy#3A1#I}p9rAxG~cSWm5gjf;ZuUZ5o9I&@tG8%WC+)5AO}y!A2N7n zQt~O#3*<*+4pS@`&{V@yhu8SMk-=qs*Z0$jC@M7xgyCKykp~Wv(hpapU@##?rZQ#n zVd2U5r}EvrP;Nc&+%|EG5#%P|@Couwn z6x*_oHyX(tpgA?TC(SQIUo@v+DR#(jqXZbYEXw~4z=mRgm$|P!wiQ<^>>LIG*Rbqm zA;l0Z?i{5UyMp^Ql`DAJ;p}Z1l|zG|-y*F$xOoy0nHSUxCSI+CoJiV!Rk7q?s5Ibs zV29aQTO9Xq9Zl!JTo!ZBY{oo}T#dc|%PD#lLPKg)Q=;6k!MR zeUR`)Kza<=)Iz|6-ZR1bIsxTKB)C5XpY?q7j42^~t2fPIDq_O=_lCurqcwM8*@XAi z9-wj4xMxM-Fe{H={L0qz1MpUg7t!;Sx~<+N%(ILMp$&Dl-eUND|IxSecH0eb&DD%sbDo<7If=Hq%*w8XO;{ zCGioOrjLkMev5-WIJ6GmllXimPB;U&u+FzzO_}@;nisJe^D^_b{&oZFTo}D?PhI%y z=Di6zHgm&@pW{2aKiOWRmp2yT+tt>Ex78|`T;lnnHL>#n7}Rx@3stK*7jeo2+1m0y z-ssb70G*e6D7R9xPjOUFB^sy2gsG9!J6u?$30)vPM zGx>Q2?K0ITR*rhHrCvH#z;I(bM>{G)ek?-ONFS(h4MuVsx>LIuyY}ZSBJmj%c<(1 zKaS>pX#VPJ_Kq%4wFKbSjbq3PDO#G~31d#2{7`T~8?mpS)~QJ4FjMR@FA8V0PK!q!2dEhWxR3Op6-{H@Ej|+F= zz$g42Dky^J@s<5xo1~F9QgV))h}}o;^RQybx;ZAV{$$JXH$xX5t=x`Xl}MaewD2g+ zAE|^{GBCi6$Dq88z08WctBzr&vO5Ot{~sB3X#v^4UT(({-4yn>O{pxQd^HU_*fj`8 zsn7p|iz+z_(@&TO<8wAr?b_iT0vs9@J9h&iL?Ifn$X?mvyJhB!KopGBTkw`<3oUAL z1|RH9(gR-m#e1Y&fbu`1sU2%ThkoeHJ6UpO_CGFTnLTF+o%m~#0buCa1WvuYzK`j{`bk+WDwZFVYiyc4j)Ssog-xfjp< zMRosj(%N?Wy$1}`(f|8W>Ub)B1?U^8X}`C)T*1Nl&#O2sNs*iBO#5n9N)jH>tt!GO z*YUruTd-C@4k@8{*;!iLJizhb>#T$M5key3Z=P zaO-kRK}co%YqT`{sXicZQ_y#DOQ_2DnZrtc=H zr;)zR;LP-=ulHlnNh)&Gv}6y-@>!y)Y|i?mc=y}e$6Y6~;xf4&#LobkM>Psv0r%wr z9++-cxxvc}$VE{Zm9$$>YubLwC&Q-m(9{EuAb+xaGhcdjIb+91`I;BbaF#>3NT)qY z5f(8lj_K&NaHbY_h>GC5TidavK~lZX_I+o2>>@lTw$Wi@@PMAOkzfhYI?^QA+h+aI zhq3x*^^-=dEvItGJmb#;v{AQ@o5s061H2|4-;@x`FE+Q&c}9_b@T__2HG8$p>Dk`H zHfDv>ujZ{4oNDYa9>N?on%iHdNQv7bUl$!nN}RUh=vUyc5k@Q)Z#CJoeZVX?{9S>Q zEWL@M31H0vMgZnm2JbL<*5Qcncr>h~pv8AOxByb5MG@*{;xf>~TBoVGDPQ{zEpZsk zdtRP_>f84k1E6SNaLVs^vZbqUY9)Pb>8WK}S_!1T8C*IV-)b0rM@WqSjOci^fmL+Y zp1_&z(?N=z1#)Kz{?ELk4RF@Si_a8weYyJHrZMHuEcP{aI8`-T%?>0hTY z)u+|-XOpw^IaNu;vY$KOXDC^TvF@Is^6m=1FO&D@yLank69w(4iF?eU7}-Wnob-g~ zdK09G-ia*_tMT#d%{=@I(QQ!9wyrwiX-#eRGXR}*(4jZ+GV7Ul9@GnHgX>YqyIm|h z`g*iyTaQni()ddzN19m9Z{`Y5qSNHY-B z_?tha>X)y^Wb6NnA`g=c1bIh-g^3h2Q(O&VzB^-Ab7nC1R_ak%Ek=#qE07mw?n z#HT9rQu^)Br@sapxY#*VUJmyDImW^_l;0#&Io;Y9&gI_7msCqlmnour8yoLha-m!v zsjyu++Uj%h%H?MwGy|nn_%TEiqXZ=)em;+|tyysGtH923tRB(BQW$(D0E6x~LJq3S z{7Ybxn6!Bny-wxf!vSlwHmg)qy$u)_kOCZ=E~1~RQ?VcsUL4zflmpg)t(V?R-QXiC zhS?Hf$WU1=K#wua^^b(S!z>pHO~bV+6|0T~J-8Be+qrp{dhQE$Ie_<4r9(j7;gvEP zd1=88{%J(s*^cj^hMW%2T5NNuPL-Fck2f^Q6goz>lg=3ur$4C||@d1>#JZJt~QpC;Zg#2=FqC9IAg;!tY9fjvrAY z5!(c~J4CqU&W)SG+9~;VZV=q1(QJlnCpk8)i_E#Fz_veA_0mao7RDwe1E5bv)@%2v z_Wh91rL9S8Rr29pVhzUS5BRaCZh=d5j2;PJN_%bvlr8l9a&N22RX#(PBJ1!*YiwYd z>TNvb*R+j{$cmg!494w&^pLhrMHhB974dklHJfk0Wb_#}@mt=XsU)36tc~a^hPd z&O1|el5xc`S4UUuw4?5SLmv!! zs)GjgMtN$)fm>73A29~QvU)4zuC!O?s=FS#NQD`ks(~yoi-uvI7UaX}_tQU!%ru=h zZ}Ar~nA&ZjqPW5%?<&5~PT0ZNaVrMoYmwdRGsin=c zXA%qO(?U0)Q(=y=T|$a+>=NCN^K#_*+B=YNR-MRkA(3cS*EQun{^Ha<1kVtX2G>eS zyzD(gE@!j2k{w3Ri5&a$YkK%=nCp}%^3YvL`}Raye#YRFsP}2aqI?4btBS81wkwSc z$SH7U*T?FND04r25w7Brd^HpqYd61=09^g}*g77*9WAF~;sU5exrY~CO5`S4f}t4d z2!7k)-2CsQ{G8h@rtwq!81Vr>IgG5Z>=s^->WcK^f_D$j8|StFkIyv1o+=51UAy%XX# zw-nrvcuL1FAw`YT17-5H;#0OZTln*sdmH<}tOv@>xv{`$kdm!1$2^CkVS|QgP>9L( z>DdS>unBk)_wpoff~ODIzS$?RPLKQnnKsf)JIdiV^(cr&9NmU)mB9w$03L zzaPF2xq6K4%i)KDU#f~43Z-)9L7Hl4=%gr8_zVt8J)jW!(ENY7Fj1&LRuqZ?`NIGD zWo_kbZDrwh=k{Hzdv`n?JlwC|<-PCd@P99&8XYd?dJcs$CjP${F^5b4zb+#1|9O!w zBF*(w@ZFJDLH=K_0_*($x`^E!uRHFRZniESyms#Y_l0bfFQ6acpilygC=}j*T|@hS zUE{xh1k~x@!=ha4)cZdu6!PzXe|PVT|LePZ*mycxINh;z;B|4bhDHPy@=Y+|pBrc> Kls7SaK>a_z*69lX literal 0 HcmV?d00001 From c67bd315553ad7695e945d3a855aeee259a4070c Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 16:05:02 +0300 Subject: [PATCH 10/17] update project json files --- .extra/{file.json => json/PRESENTATION.json} | 0 .extra/json/file.json | 57 + .extra/json/lot_of_points.json | 1201 ++++++++++++++++++ .extra/json/math_test_1.json | 32 + 4 files changed, 1290 insertions(+) rename .extra/{file.json => json/PRESENTATION.json} (100%) create mode 100644 .extra/json/file.json create mode 100644 .extra/json/lot_of_points.json create mode 100644 .extra/json/math_test_1.json diff --git a/.extra/file.json b/.extra/json/PRESENTATION.json similarity index 100% rename from .extra/file.json rename to .extra/json/PRESENTATION.json diff --git a/.extra/json/file.json b/.extra/json/file.json new file mode 100644 index 0000000..c3a00a9 --- /dev/null +++ b/.extra/json/file.json @@ -0,0 +1,57 @@ +{ + "Hills": [ + { + "Id": 40000, + "Vertices": [ + { + "X": 34.3546, + "Y": 22.4904 + }, + { + "X": 38.8959, + "Y": 8.39375 + }, + { + "X": 26.3129, + "Y": 8.20453 + }, + { + "X": 23.9477, + "Y": 15.8678 + } + ] + } + ], + "Targets": [ + { + "Id": 10000, + "X": 3.13373, + "Y": 5.85528 + }, + { + "Id": 10001, + "X": 7.16666, + "Y": 11.2553 + }, + { + "Id": 10002, + "X": 12.7717, + "Y": 22.3971 + } + ], + "Trappy_Circles": [ + { + "Id": 20000, + "Radius": 6.47097, + "X": 21.5039, + "Y": 32.5937 + } + ], + "Trappy_Lines": [ + { + "Id": 30000, + "Id_P1": 10000, + "Id_P2": 10001 + } + ] +} diff --git a/.extra/json/lot_of_points.json b/.extra/json/lot_of_points.json new file mode 100644 index 0000000..523b625 --- /dev/null +++ b/.extra/json/lot_of_points.json @@ -0,0 +1,1201 @@ +{ + "Hills": [ + { + "Id": 40000, + "Vertices": [ + { + "X": -21.9547, + "Y": 12.0331 + }, + { + "X": -25.1369, + "Y": 5.28401 + }, + { + "X": -13.7517, + "Y": 4.58098 + }, + { + "X": -14.3881, + "Y": 10.9082 + } + ] + }, + { + "Id": 40001, + "Vertices": [ + { + "X": 23.426576955006283, + "Y": 77.79346124390177 + }, + { + "X": 38.245488935037955, + "Y": 60.2493893479525 + }, + { + "X": 28.936172434761644, + "Y": 43.479320623883325 + }, + { + "X": 12.977344148573707, + "Y": 51.9933555145646 + }, + { + "X": 7.087776566766259, + "Y": 72.89144115532771 + } + ] + } + ], + "Targets": [ + { + "Id": 10000, + "X": 0.830454, + "Y": 3.85086 + }, + { + "Id": 10001, + "X": -0.0339748, + "Y": 4.52135 + }, + { + "Id": 10002, + "X": 0.0915068, + "Y": 2.72061 + }, + { + "Id": 10003, + "X": 1.63911, + "Y": 2.50988 + }, + { + "Id": 10004, + "X": 2.5872, + "Y": 4.11906 + }, + { + "Id": 10005, + "X": 1.42998, + "Y": 4.78955 + }, + { + "Id": 10006, + "X": 1.52757, + "Y": 1.97349 + }, + { + "Id": 10007, + "X": 1.54152, + "Y": 3.44857 + }, + { + "Id": 10008, + "X": 0.244873, + "Y": 3.56351 + }, + { + "Id": 10009, + "X": 1.33238, + "Y": 2.66314 + }, + { + "Id": 10010, + "X": 0.579491, + "Y": 3.1229 + }, + { + "Id": 10011, + "X": 0.704972, + "Y": 2.03096 + }, + { + "Id": 10012, + "X": 0.788627, + "Y": 4.78955 + }, + { + "Id": 10013, + "X": -1.02389, + "Y": 3.90833 + }, + { + "Id": 10014, + "X": -0.0897444, + "Y": 3.44857 + }, + { + "Id": 10015, + "X": -0.521959, + "Y": 3.48688 + }, + { + "Id": 10016, + "X": -0.117629, + "Y": 2.08843 + }, + { + "Id": 10017, + "X": 2.9497, + "Y": 1.18806 + }, + { + "Id": 10018, + "X": 4.38577, + "Y": 2.43325 + }, + { + "Id": 10019, + "X": 2.32229, + "Y": 3.18037 + }, + { + "Id": 10020, + "X": 1.48575, + "Y": 1.5712 + }, + { + "Id": 10021, + "X": -1.13542, + "Y": 2.93133 + }, + { + "Id": 10022, + "X": -0.661383, + "Y": 2.83555 + }, + { + "Id": 10023, + "X": 0.928051, + "Y": 1.09227 + }, + { + "Id": 10024, + "X": -0.201284, + "Y": 1.76276 + }, + { + "Id": 10025, + "X": -0.622799, + "Y": 5.57783 + }, + { + "Id": 10026, + "X": 2.06, + "Y": 5.31268 + }, + { + "Id": 10027, + "X": -0.191984, + "Y": 6.55887 + }, + { + "Id": 10028, + "X": 1.17879, + "Y": 5.10057 + }, + { + "Id": 10029, + "X": 0.86547, + "Y": 5.25965 + }, + { + "Id": 10030, + "X": 1.45294, + "Y": 5.63086 + }, + { + "Id": 10031, + "X": -0.113654, + "Y": 5.7104 + }, + { + "Id": 10032, + "X": 0.963382, + "Y": 6.00206 + }, + { + "Id": 10033, + "X": -1.81733, + "Y": 5.04754 + }, + { + "Id": 10034, + "X": -1.68025, + "Y": 5.1536 + }, + { + "Id": 10035, + "X": 0.121335, + "Y": 4.91496 + }, + { + "Id": 10036, + "X": -0.564052, + "Y": 4.94148 + }, + { + "Id": 10037, + "X": -1.78647, + "Y": 7.02159 + }, + { + "Id": 10038, + "X": 2.52488, + "Y": 11.2046 + }, + { + "Id": 10039, + "X": 4.8282, + "Y": 10.3082 + }, + { + "Id": 10040, + "X": 2.28864, + "Y": 6.12522 + }, + { + "Id": 10041, + "X": 2.22958, + "Y": 10.0095 + }, + { + "Id": 10042, + "X": 1.04839, + "Y": 7.9777 + }, + { + "Id": 10043, + "X": 5.71409, + "Y": 4.81056 + }, + { + "Id": 10044, + "X": 8.37177, + "Y": 6.3045 + }, + { + "Id": 10045, + "X": 3.82419, + "Y": 8.39601 + }, + { + "Id": 10046, + "X": -0.664338, + "Y": 8.21673 + }, + { + "Id": 10047, + "X": 0.0196014, + "Y": 4.46492 + }, + { + "Id": 10048, + "X": 0.975308, + "Y": 4.2684 + }, + { + "Id": 10049, + "X": 0.774427, + "Y": 4.33595 + }, + { + "Id": 10050, + "X": 0.171784, + "Y": 4.33595 + }, + { + "Id": 10051, + "X": 0.433538, + "Y": 4.53861 + }, + { + "Id": 10052, + "X": -0.461295, + "Y": 4.26225 + }, + { + "Id": 10053, + "X": 0.031776, + "Y": 4.0166 + }, + { + "Id": 10054, + "X": -0.394335, + "Y": 4.60616 + }, + { + "Id": 10055, + "X": -4.83463, + "Y": 6.85009 + }, + { + "Id": 10056, + "X": -3.6542, + "Y": 8.06976 + }, + { + "Id": 10057, + "X": -3.86882, + "Y": 8.38794 + }, + { + "Id": 10058, + "X": -5.82726, + "Y": 7.27432 + }, + { + "Id": 10059, + "X": -2.90301, + "Y": 5.47133 + }, + { + "Id": 10060, + "X": -6.47114, + "Y": 5.63041 + }, + { + "Id": 10061, + "X": -3.57371, + "Y": 5.6039 + }, + { + "Id": 10062, + "X": -6.79307, + "Y": 8.60006 + }, + { + "Id": 10063, + "X": -3.49323, + "Y": 6.42585 + }, + { + "Id": 10064, + "X": -2.66156, + "Y": 7.11524 + }, + { + "Id": 10065, + "X": -1.72258, + "Y": 8.28188 + }, + { + "Id": 10066, + "X": 0.396833, + "Y": 10.7477 + }, + { + "Id": 10067, + "X": 9.10878, + "Y": 13.7706 + }, + { + "Id": 10068, + "X": 5.61424, + "Y": 13.4151 + }, + { + "Id": 10069, + "X": 2.42358, + "Y": 14.9389 + }, + { + "Id": 10070, + "X": 1.51196, + "Y": 13.7198 + }, + { + "Id": 10072, + "X": 2.93003, + "Y": 9.14839 + }, + { + "Id": 10073, + "X": -0.969672, + "Y": 9.40236 + }, + { + "Id": 10074, + "X": 10.3243, + "Y": 5.69441 + }, + { + "Id": 10075, + "X": 8.55168, + "Y": 8.79283 + }, + { + "Id": 10076, + "X": 7.18425, + "Y": 7.21823 + }, + { + "Id": 10077, + "X": 3.53778, + "Y": 6.65949 + }, + { + "Id": 10078, + "X": 9.71653, + "Y": 11.2309 + }, + { + "Id": 10079, + "X": 5.33354, + "Y": 24.7109 + }, + { + "Id": 10080, + "X": -10.5738, + "Y": 26.5597 + }, + { + "Id": 10081, + "X": -17.5027, + "Y": 22.8621 + }, + { + "Id": 10082, + "X": -12.2328, + "Y": 15.8561 + }, + { + "Id": 10083, + "X": -3.83999, + "Y": 21.6944 + }, + { + "Id": 10084, + "X": -8.62194, + "Y": 22.1809 + }, + { + "Id": 10085, + "X": -1.98577, + "Y": 23.9324 + }, + { + "Id": 10086, + "X": -6.8653, + "Y": 25.8785 + }, + { + "Id": 10087, + "X": -14.2822, + "Y": 24.7109 + }, + { + "Id": 10088, + "X": -12.5256, + "Y": 21.1106 + }, + { + "Id": 10089, + "X": -20.2352, + "Y": 19.3591 + }, + { + "Id": 10071, + "X": -10.1452, + "Y": 34.5237 + }, + { + "Id": 10090, + "X": -24.489, + "Y": 35.9497 + }, + { + "Id": 10091, + "X": -21.3015, + "Y": 28.9781 + }, + { + "Id": 10092, + "X": -18.5921, + "Y": 33.573 + }, + { + "Id": 10093, + "X": -14.9265, + "Y": 30.8794 + }, + { + "Id": 10094, + "X": -22.7359, + "Y": 25.3339 + }, + { + "Id": 10095, + "X": 2.76418, + "Y": 26.2845 + }, + { + "Id": 10096, + "X": -7.43585, + "Y": 32.147 + }, + { + "Id": 10097, + "X": -5.20459, + "Y": 34.3652 + }, + { + "Id": 10098, + "X": -2.01708, + "Y": 29.4534 + }, + { + "Id": 10099, + "X": 5.9517, + "Y": 22.165 + }, + { + "Id": 10100, + "X": -11.0734, + "Y": 13.4815 + }, + { + "Id": 10101, + "X": -32.3854, + "Y": 30.0551 + }, + { + "Id": 10102, + "X": -12.453612629976512, + "Y": -6.421246449977282 + }, + { + "Id": 10103, + "X": -1.1828937250372746, + "Y": 59.21738511877902 + }, + { + "Id": 10104, + "X": -43.993641851543885, + "Y": 75.98745384284818 + }, + { + "Id": 10105, + "X": -39.257939625160404, + "Y": 83.2114834470626 + }, + { + "Id": 10106, + "X": -37.742514912717695, + "Y": 63.60340309276634 + }, + { + "Id": 10107, + "X": -25.429689124120664, + "Y": 72.89144115532773 + }, + { + "Id": 10108, + "X": -34.71166548783227, + "Y": 71.08543375427413 + }, + { + "Id": 10109, + "X": -43.04650140626719, + "Y": 60.765391462539256 + }, + { + "Id": 10110, + "X": -43.23592949532252, + "Y": 70.05342952510064 + }, + { + "Id": 10111, + "X": 25.853617144055363, + "Y": -17.114675428722478 + }, + { + "Id": 10112, + "X": -79.81228326150998, + "Y": 39.723957420477575 + }, + { + "Id": 10113, + "X": -52.5110458361486, + "Y": 32.8044716823141 + }, + { + "Id": 10114, + "X": -74.75649855310972, + "Y": 64.93065546664457 + }, + { + "Id": 10115, + "X": 10.724910340247533, + "Y": 16.708487233751605 + }, + { + "Id": 10116, + "X": -11.39651520408512, + "Y": 52.27090223552065 + }, + { + "Id": 10117, + "X": -53.25387583982288, + "Y": 52.893883747811955 + }, + { + "Id": 10118, + "X": -40.75591449454518, + "Y": 49.702914893698505 + }, + { + "Id": 10119, + "X": -31.581879038969, + "Y": 46.77786011076117 + }, + { + "Id": 10120, + "X": -55.24823137364379, + "Y": 43.71984829223578 + }, + { + "Id": 10121, + "X": -29.055695362795845, + "Y": 32.55145730283869 + }, + { + "Id": 10122, + "X": -38.09677378278397, + "Y": 32.817371374014805 + }, + { + "Id": 10123, + "X": -21.0782732275122, + "Y": 34.67876987224766 + }, + { + "Id": 10124, + "X": 9.634801993329802, + "Y": 39.86409426018202 + }, + { + "Id": 10125, + "X": -53.78570398217512, + "Y": 17.394355245799773 + }, + { + "Id": 10126, + "X": -54.31753212452737, + "Y": 18.325054494916202 + }, + { + "Id": 10127, + "X": -32.645535323673485, + "Y": 44.65054754135221 + }, + { + "Id": 10128, + "X": 9.235930886565612, + "Y": 24.97290627431923 + }, + { + "Id": 10129, + "X": -51.65839141276616, + "Y": 23.51037888285056 + }, + { + "Id": 10130, + "X": -65.35296607833641, + "Y": 39.997051295770085 + }, + { + "Id": 10131, + "X": -51.25952030600198, + "Y": 1.9713391175847406 + }, + { + "Id": 10132, + "X": -42.48435595718998, + "Y": -2.4162430568212585 + }, + { + "Id": 10133, + "X": -26.39655465103465, + "Y": -5.341297839758592 + }, + { + "Id": 10134, + "X": -6.320042277237491, + "Y": 0.37585469052801557 + }, + { + "Id": 10135, + "X": -29.58752350514809, + "Y": 14.735214534038562 + }, + { + "Id": 10136, + "X": -71.69253502533964, + "Y": 22.01344103836241 + }, + { + "Id": 10137, + "X": -75.18898302004295, + "Y": 30.846572814455023 + }, + { + "Id": 10138, + "X": -81.07773753743803, + "Y": 49.064907102646025 + }, + { + "Id": 10139, + "X": -79.97359606542645, + "Y": 59.3702275080874 + }, + { + "Id": 10140, + "X": -70.03632281732227, + "Y": 72.8039487508949 + }, + { + "Id": 10141, + "X": -58.25881378253213, + "Y": 80.16489189763877 + }, + { + "Id": 10142, + "X": -8.388423963342632, + "Y": 80.53293905497594 + }, + { + "Id": 10143, + "X": -22.7422630994931, + "Y": 81.45305694831893 + }, + { + "Id": 10144, + "X": 0.6287313914186257, + "Y": 79.98086831897012 + }, + { + "Id": 10145, + "X": 16.0867119995807, + "Y": 81.82110410565608 + }, + { + "Id": 10146, + "X": 36.69735281046344, + "Y": 79.06075042562715 + }, + { + "Id": 10147, + "X": 47.00267321590482, + "Y": 69.12347717752296 + }, + { + "Id": 10148, + "X": 49.39497973859659, + "Y": 57.52999172140143 + }, + { + "Id": 10149, + "X": 47.186696794573436, + "Y": 47.04064773729145 + }, + { + "Id": 10150, + "X": 51.235215525282555, + "Y": 38.57556311853604 + }, + { + "Id": 10151, + "X": 32.83285765842295, + "Y": -12.767015330002241 + }, + { + "Id": 10152, + "X": 38.905635754486624, + "Y": -1.7256006098864844 + }, + { + "Id": 10153, + "X": 9.645886746179855, + "Y": -13.871156802013818 + }, + { + "Id": 10154, + "X": -1.763575131273086, + "Y": -11.294826700653477 + }, + { + "Id": 10155, + "X": 42.40208374918997, + "Y": 8.579719795554887 + }, + { + "Id": 10156, + "X": 46.08255532256187, + "Y": 19.621134515670647 + }, + { + "Id": 10157, + "X": 50.49912121060818, + "Y": 29.926454921112025 + }, + { + "Id": 10158, + "X": -62.97807680663138, + "Y": 13.023180106675738 + }, + { + "Id": 10159, + "X": -16.715333630563062, + "Y": 27.003821655540527 + }, + { + "Id": 10160, + "X": -14.337150112644473, + "Y": 26.833329738199218 + }, + { + "Id": 10161, + "X": -15.611176997243717, + "Y": 26.705460800193237 + }, + { + "Id": 10162, + "X": -16.035852625443464, + "Y": 25.51201737880408 + }, + { + "Id": 10163, + "X": -18.668841520281905, + "Y": 29.816938291672102 + }, + { + "Id": 10164, + "X": -15.950917499803516, + "Y": 27.04644463487585 + }, + { + "Id": 10165, + "X": -16.235068349529357, + "Y": 26.615123497346264 + }, + { + "Id": 10166, + "X": -15.80210585532067, + "Y": 26.507582899380836 + }, + { + "Id": 10167, + "X": -16.404417989926984, + "Y": 26.24038157983734 + }, + { + "Id": 10168, + "X": -15.775727221688275, + "Y": 26.24038157983734 + }, + { + "Id": 10169, + "X": -16.136235214664318, + "Y": 26.196578084830207 + }, + { + "Id": 10170, + "X": -16.32088565009107, + "Y": 26.494441850878694 + }, + { + "Id": 10171, + "X": -15.26574030479534, + "Y": 26.73536107341791 + }, + { + "Id": 10172, + "X": -16.39122867311079, + "Y": 26.92371610194857 + }, + { + "Id": 10173, + "X": -16.483553890824165, + "Y": 27.261003013503473 + }, + { + "Id": 10174, + "X": -16.065892191644604, + "Y": 27.002562392961405 + }, + { + "Id": 10175, + "X": -15.885638195156583, + "Y": 26.74850212192005 + }, + { + "Id": 10176, + "X": -15.094279186184783, + "Y": 26.21409948283306 + }, + { + "Id": 10177, + "X": -15.977963412869958, + "Y": 25.924996415786 + }, + { + "Id": 10178, + "X": -16.127442336786853, + "Y": 26.468159753874417 + }, + { + "Id": 10179, + "X": -15.551508835812934, + "Y": 25.96879991079313 + }, + { + "Id": 10180, + "X": -16.78174320742097, + "Y": 26.259138817397123 + }, + { + "Id": 10181, + "X": -16.948958730100657, + "Y": 26.695490248126312 + }, + { + "Id": 10182, + "X": -17.132895805048314, + "Y": 27.375191515223698 + }, + { + "Id": 10183, + "X": -17.14961735731628, + "Y": 26.913665963490903 + }, + { + "Id": 10184, + "X": -16.57272380407136, + "Y": 25.915092497014495 + }, + { + "Id": 10185, + "X": -16.405508281391672, + "Y": 25.6969167816499 + }, + { + "Id": 10186, + "X": -15.4272974737155, + "Y": 25.36965320860301 + }, + { + "Id": 10187, + "X": -15.193195741963937, + "Y": 25.62139441863908 + }, + { + "Id": 10188, + "X": -15.627956100931126, + "Y": 25.688525407982034 + }, + { + "Id": 10189, + "X": -15.9787682149292, + "Y": 27.83270559228022 + }, + { + "Id": 10190, + "X": -15.946499651182979, + "Y": 28.540015976755953 + }, + { + "Id": 10191, + "X": -15.268859812512321, + "Y": 28.36318838063702 + }, + { + "Id": 10192, + "X": -8.980562715366815, + "Y": 40.5738580860919 + }, + { + "Id": 10193, + "X": -7.885622422288705, + "Y": 41.199538253565095 + }, + { + "Id": 10194, + "X": -6.47784204547402, + "Y": 38.696817583672306 + }, + { + "Id": 10195, + "X": -4.9136416267910334, + "Y": 40.8866981698285 + }, + { + "Id": 10196, + "X": -6.790682129210623, + "Y": 40.2610180023553 + }, + { + "Id": 10197, + "X": -7.701638166949451, + "Y": 39.50241758538075 + }, + { + "Id": 10198, + "X": -6.185546174276418, + "Y": 41.42258280443713 + }, + { + "Id": 10199, + "X": -5.463597606336879, + "Y": 39.68356524755588 + }, + { + "Id": 10200, + "X": -7.051884455803865, + "Y": 41.85733719365744 + } + ], + "Trappy_Circles": [ + ], + "Trappy_Lines": [ + { + "Id": 30001, + "Id_P1": 10083, + "Id_P2": 10088 + }, + { + "Id": 30000, + "Id_P1": 10026, + "Id_P2": 10030 + }, + { + "Id": 30002, + "Id_P1": 10062, + "Id_P2": 10070 + }, + { + "Id": 30003, + "Id_P1": 10068, + "Id_P2": 10039 + }, + { + "Id": 30004, + "Id_P1": 10042, + "Id_P2": 10076 + }, + { + "Id": 30005, + "Id_P1": 10001, + "Id_P2": 10047 + }, + { + "Id": 30006, + "Id_P1": 10021, + "Id_P2": 10022 + }, + { + "Id": 30007, + "Id_P1": 10024, + "Id_P2": 10016 + }, + { + "Id": 30008, + "Id_P1": 10102, + "Id_P2": 10060 + }, + { + "Id": 30009, + "Id_P1": 10134, + "Id_P2": 10017 + }, + { + "Id": 30010, + "Id_P1": 10133, + "Id_P2": 10135 + }, + { + "Id": 30011, + "Id_P1": 10097, + "Id_P2": 10092 + }, + { + "Id": 30012, + "Id_P1": 10106, + "Id_P2": 10109 + }, + { + "Id": 30013, + "Id_P1": 10110, + "Id_P2": 10118 + }, + { + "Id": 30014, + "Id_P1": 10119, + "Id_P2": 10127 + }, + { + "Id": 30015, + "Id_P1": 10116, + "Id_P2": 10107 + }, + { + "Id": 30016, + "Id_P1": 10114, + "Id_P2": 10117 + }, + { + "Id": 30017, + "Id_P1": 10112, + "Id_P2": 10130 + }, + { + "Id": 30018, + "Id_P1": 10113, + "Id_P2": 10129 + }, + { + "Id": 30019, + "Id_P1": 10126, + "Id_P2": 10125 + }, + { + "Id": 30020, + "Id_P1": 10101, + "Id_P2": 10091 + }, + { + "Id": 30021, + "Id_P1": 10121, + "Id_P2": 10094 + }, + { + "Id": 30022, + "Id_P1": 10128, + "Id_P2": 10079 + }, + { + "Id": 30023, + "Id_P1": 10006, + "Id_P2": 10010 + }, + { + "Id": 30024, + "Id_P1": 10146, + "Id_P2": 10149 + }, + { + "Id": 30025, + "Id_P1": 10103, + "Id_P2": 10124 + }, + { + "Id": 30026, + "Id_P1": 10143, + "Id_P2": 10142 + }, + { + "Id": 30027, + "Id_P1": 10172, + "Id_P2": 10178 + } + ] +} diff --git a/.extra/json/math_test_1.json b/.extra/json/math_test_1.json new file mode 100644 index 0000000..52a8a23 --- /dev/null +++ b/.extra/json/math_test_1.json @@ -0,0 +1,32 @@ +{ + "Hills": [ + ], + "Targets": [ + { + "Id": 10000, + "X": -7.98, + "Y": 1.23 + }, + { + "Id": 10001, + "X": 8.16, + "Y": 2.27 + } + ], + "Trappy_Circles": [ + { + "Id": 20000, + "Radius": 2.41867, + "X": -6.44, + "Y": 3.95 + }, + { + "Id": 20001, + "Radius": 4.178085, + "X": 0.32, + "Y": 1.17 + } + ], + "Trappy_Lines": [ + ] +} From f57bfb94a9651fdb110e4ee12064aeb1be199ac7 Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 17:05:08 +0300 Subject: [PATCH 11/17] code beautify --- .../interaction_buttons.cpp | 27 +++++++++---------- .../other_connections.cpp | 11 +++++--- 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/main/mainwindow_connections/interaction_buttons.cpp b/main/mainwindow_connections/interaction_buttons.cpp index 266fe3c..2dad0ce 100644 --- a/main/mainwindow_connections/interaction_buttons.cpp +++ b/main/mainwindow_connections/interaction_buttons.cpp @@ -205,26 +205,25 @@ void MainWindow::mousePressSelectSecondTarget(QMouseEvent* mouse_event) { if (ui->plot->selectedGraphs().empty()) return; for (const auto& t_ptr : manager_->GetTargetsPtrs()) { - if (t_ptr->GetGraphPtr() == ui->plot->selectedGraphs()[0]) { - size_t last = manager_->GetTrappyLines().size() - 1; + if (t_ptr->GetGraphPtr() != ui->plot->selectedGraphs()[0]) continue; - // если это та же точка - пропускаем - if (manager_->GetTrappyLinesPtrs()[last]->GetTargetsPtrs().second == - t_ptr) - continue; + size_t last = manager_->GetTrappyLines().size() - 1; - manager_->GetTrappyLinesPtrs()[last]->SetSecondTarget(t_ptr); + // если это та же точка - пропускаем + if (manager_->GetTrappyLinesPtrs()[last]->GetTargetsPtrs().second == t_ptr) + continue; - DisconnectObject(gui::ObjectType::TrappyLines); - what_obj_addition_ = WhatObjectAddition::Nothing; + manager_->GetTrappyLinesPtrs()[last]->SetSecondTarget(t_ptr); - area_->Redraw(); + DisconnectObject(gui::ObjectType::TrappyLines); + what_obj_addition_ = WhatObjectAddition::Nothing; - // после финального добавления обновляем таблицу - t_connection_->UpdateTable(gui::ObjectType::TrappyLines); + area_->Redraw(); - return; - } + // после финального добавления обновляем таблицу + t_connection_->UpdateTable(gui::ObjectType::TrappyLines); + + return; } } diff --git a/main/mainwindow_connections/other_connections.cpp b/main/mainwindow_connections/other_connections.cpp index 85affe0..4145994 100644 --- a/main/mainwindow_connections/other_connections.cpp +++ b/main/mainwindow_connections/other_connections.cpp @@ -55,15 +55,16 @@ void MainWindow::on_pushButtonAddHill_clicked() { } void MainWindow::on_pushButtonEditObjects_clicked() { - DeleteLastAddedObject(); + manager_->RemoveAllDuplicates(); + t_connection_->UpdateTables(); ui->plotSettingsDockWidget->setVisible(true); on_actionBeautify_triggered(); } void MainWindow::on_actionBeautify_triggered() { - ui->plot->xAxis->setScaleRatio(ui->plot->yAxis, 1.0); - ui->plot->replot(); + ui->plot->xAxis->setScaleRatio(ui->plot->yAxis); + area_->Redraw(); } void MainWindow::on_targetAddFromTablePushButton_clicked() { @@ -87,10 +88,12 @@ void MainWindow::on_xAxis_rangeChanged(QCPRange range) { range.upper = max_scale; range.lower = max_scale - (range.upper - range.lower); } + if (range.lower < -max_scale) { range.lower = -max_scale; range.upper = -max_scale + (range.upper - range.lower); } + if (range.upper - range.lower < min_scale) { double mid = (range.upper + range.lower) / 2; range.lower = mid - min_scale / 2; @@ -105,10 +108,12 @@ void MainWindow::on_yAxis_rangeChanged(QCPRange range) { range.upper = max_scale; range.lower = max_scale - (range.upper - range.lower); } + if (range.lower < -max_scale) { range.lower = -max_scale; range.upper = -max_scale + (range.upper - range.lower); } + if (range.upper - range.lower < min_scale) { double mid = (range.upper + range.lower) / 2; range.lower = mid - min_scale / 2; From 21724f20135ce6ea763a7c36886a2c3c9f038bf5 Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 17:36:01 +0300 Subject: [PATCH 12/17] simplify installation in README.md --- README.md | 45 +++++++-------------------------------------- 1 file changed, 7 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index cf1618a..52b52a8 100644 --- a/README.md +++ b/README.md @@ -32,43 +32,12 @@ In the application, you can add objects using window forms, interact with the tr 2) Open ```MSYS2 MSYS``` console, copy the command below and paste it with ```Shift+Ins``` or ```RBM and 'Paste'``` to download all the packages used in our project ``` - pacman -S mingw-w64-x86_64-gcc - pacman -S mingw-w64-x86_64-gdb - pacman -S mingw-w64-x86_64-gdb-multiarch - pacman -S mingw-w64-x86_64-libgccjit - pacman -S mingw-w64-x86_64-libmangle-git - pacman -S mingw-w64-x86_64-make - pacman -S mingw-w64-x86_64-ninja - pacman -S mingw-w64-x86_64-pkgconf - pacman -S mingw-w64-x86_64-boost - pacman -S mingw-w64-x86_64-qt-creator - pacman -S mingw-w64-x86_64-qt6-3d - pacman -S mingw-w64-x86_64-qt6-activeqt - pacman -S mingw-w64-x86_64-qt6-charts - pacman -S mingw-w64-x86_64-qt6-connectivity - pacman -S mingw-w64-x86_64-qt6-datavis3d - pacman -S mingw-w64-x86_64-qt6-doc - pacman -S mingw-w64-x86_64-qt6-grpc - pacman -S mingw-w64-x86_64-qt6-httpserver - pacman -S mingw-w64-x86_64-qt6-imageformats - pacman -S mingw-w64-x86_64-qt6-languageserver - pacman -S mingw-w64-x86_64-qt6-location - pacman -S mingw-w64-x86_64-qt6-lottie - pacman -S mingw-w64-x86_64-qt6-multimedia - pacman -S mingw-w64-x86_64-qt6-networkauth - pacman -S mingw-w64-x86_64-qt6-quick3dphysics - pacman -S mingw-w64-x86_64-qt6-quickeffectmaker - pacman -S mingw-w64-x86_64-qt6-quicktimeline - pacman -S mingw-w64-x86_64-qt6-remoteobjects - pacman -S mingw-w64-x86_64-qt6-scxml - pacman -S mingw-w64-x86_64-qt6-sensors - pacman -S mingw-w64-x86_64-qt6-serialbus - pacman -S mingw-w64-x86_64-qt6-speech - pacman -S mingw-w64-x86_64-qt6-virtual keyboard - pacman -S mingw-w64-x86_64-qt6-webchannel - pacman -S mingw-w64-x86_64-qt6-webview - pacman -S mingw-w64-x86_64-tools-git - pacman -S mingw-w64-x86_64-cmake +pacman -S mingw-w64-x86_64-gcc +pacman -S mingw-w64-x86_64-gdb +pacman -S mingw-w64-x86_64-ninja +pacman -S mingw-w64-x86_64-cmake +pacman -S mingw-w64-x86_64-qt-creator +pacman -S mingw-w64-x86_64-boost ``` 3) Install **[Git Bash](https://gitforwindows.org/)** to any convenient folder (if you haven't get it yet) @@ -77,7 +46,7 @@ In the application, you can add objects using window forms, interact with the tr 5) Clone our repo with including submodules to such folder: ``` - git clone --recurse-submodules https://github.com/UmbrellaLeaf5/locus_no_pilotus +git clone --recurse-submodules https://github.com/UmbrellaLeaf5/locus_no_pilotus ``` 6) Open the MSYS bin folder in path like ```C:\YourPathToMsys\msys64\mingw64\bin``` than find and start ```qtcreator.exe``` From 6b7cfa28f89e2b55591ffb6f4fb2d83f603bcbcc Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 17:57:26 +0300 Subject: [PATCH 13/17] make using cmake_script for copying libqcustomplot.dll --- CMakeLists.txt | 8 ++---- cmake_scripts/scripts_for_qcustomplot.cmake | 32 ++++++++++++++++++++- cmake_scripts/scripts_for_vscode.cmake | 24 ---------------- tests/lib/segment_test.cpp | 2 -- 4 files changed, 34 insertions(+), 32 deletions(-) delete mode 100644 cmake_scripts/scripts_for_vscode.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index d8c5551..a46bdc0 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -51,6 +51,9 @@ include(${CMAKESCRIPTS_DIR}/scripts_for_qcustomplot.cmake) replace_include_qcustomplot_in_autogen(${CMAKE_BINARY_DIR}) add_subdirectory(${QCUSTOMPLOT_DIR}) # here adding qcustomplot subfolder +# copy one dll file: the command QCUSTOMPLOT_USE_LIBRARY does not work for an unknown reason +load_qcustomplot_dll(${CMAKE_CURRENT_SOURCE_DIR}) + # --------------------------------- Our code subdirs --------------------------------- add_subdirectory(lib) add_subdirectory(tests) @@ -58,10 +61,5 @@ add_subdirectory(main) # ------------------------------------------------------------------------------------------ -# the programmer in VS Code is tired of constantly copying one dll file, -# and the command QCUSTOMPLOT_USE_LIBRARY does not work for an unknown reason -include(${CMAKESCRIPTS_DIR}/scripts_for_vscode.cmake) -load_qcustomplot_dll(${CMAKE_CURRENT_SOURCE_DIR}) - # add images to build directory file(COPY ${IMAGES_DIR} DESTINATION ${CMAKE_BINARY_DIR}) diff --git a/cmake_scripts/scripts_for_qcustomplot.cmake b/cmake_scripts/scripts_for_qcustomplot.cmake index 19db195..494b6c2 100644 --- a/cmake_scripts/scripts_for_qcustomplot.cmake +++ b/cmake_scripts/scripts_for_qcustomplot.cmake @@ -2,7 +2,7 @@ function(replace_include_qcustomplot_in_autogen BUILD_DIR) if(EXISTS "${BUILD_DIR}/main/main_autogen/include/ui_mainwindow.h") - message(STATUS "Found ${BUILD_DIR}/main/main_autogen/include/ui_mainwindow.h, replacing qcustomplot include") + message(STATUS "Found ${BUILD_DIR}/main/main_autogen/include/ui_mainwindow.h , replacing qcustomplot include") # open the file where you need to replace the line in FILE_CONTENT file(READ "${BUILD_DIR}/main/main_autogen/include/ui_mainwindow.h" FILE_CONTENT) @@ -17,3 +17,33 @@ function(replace_include_qcustomplot_in_autogen BUILD_DIR) message(STATUS "warning: ${BUILD_DIR}/main/main_autogen/include does not exist, please build and reconfigure the project") endif() endfunction() + +function(load_qcustomplot_dll START_DIR) + if(EXISTS "${START_DIR}/qcustomplot") + # add needed files to QCUSTOMPLOTDLLFILES + file(GLOB_RECURSE QCUSTOMPLOTDLLFILES "${CMAKE_BINARY_DIR}/libqcustomplot.dll") + + if(QCUSTOMPLOTDLLFILES) + message(STATUS "Found libqcustomplot.dll, copying to build") + else() + file(GLOB_RECURSE QCUSTOMPLOTDLLFILES "${START_DIR}/libqcustomplot.dll") + + if(QCUSTOMPLOTDLLFILES) + message(STATUS "Found ${QCUSTOMPLOTDLLFILES} , copying libqcustomplot.dll to build") + else() + message(STATUS "warning: libqcustomplot.dll not found in build folder, please build and reconfigure the project") + endif() + endif() + + # copy from QCUSTOMPLOTDLLFILES to dir in binary + foreach(file ${QCUSTOMPLOTDLLFILES}) + if(QCUSTOMPLOTDLLFILES) + # copy to main, where qcustomplot is used + file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/main) + endif() + endforeach() + return() + else() + message(STATUS "warning: ${START_DIR}/qcustomplot does not exist, please install submodule 'https://github.com/legerch/QCustomPlot-library'") + endif() +endfunction() diff --git a/cmake_scripts/scripts_for_vscode.cmake b/cmake_scripts/scripts_for_vscode.cmake deleted file mode 100644 index df787db..0000000 --- a/cmake_scripts/scripts_for_vscode.cmake +++ /dev/null @@ -1,24 +0,0 @@ -# language: CMake - -function(load_qcustomplot_dll START_DIR) - if(EXISTS "${START_DIR}/.vscode") - # add needed files to QCUSTOMPLOTDLLFILES - file(GLOB_RECURSE QCUSTOMPLOTDLLFILES "${CMAKE_BINARY_DIR}/libqcustomplot.dll") - - if(QCUSTOMPLOTDLLFILES) - message(STATUS "Found ${START_DIR}/.vscode, copying libqcustomplot.dll to build") - else() - message(STATUS "warning: libqcustomplot.dll not found in build folder, please build and reconfigure the project") - endif() - - # copy from QCUSTOMPLOTDLLFILES to dir in binary - foreach(file ${QCUSTOMPLOTDLLFILES}) - if(QCUSTOMPLOTDLLFILES) - # copy to main and tests, where qcustomplot is used - file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/main) - file(COPY ${file} DESTINATION ${CMAKE_BINARY_DIR}/tests) - endif() - endforeach() - return() - endif() -endfunction() diff --git a/tests/lib/segment_test.cpp b/tests/lib/segment_test.cpp index 1a74a8b..f0843aa 100644 --- a/tests/lib/segment_test.cpp +++ b/tests/lib/segment_test.cpp @@ -3,8 +3,6 @@ #include #include -#include "gui/segment.h" - #if !defined(WIN32) #define BOOST_TEST_DYN_LINK #endif From ccdd72a7fda3a1d3d7bbc2dc917d356e5dd490dc Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 19:38:24 +0300 Subject: [PATCH 14/17] add mainpage to doxygen --- main/main.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/main/main.cpp b/main/main.cpp index 38ce805..42d1fa9 100644 --- a/main/main.cpp +++ b/main/main.cpp @@ -1,3 +1,31 @@ +/** + * @mainpage + * + * @section intro About + * Locus No Pilotus is a project of four first grade MIPT DAFE/RSE students (for + * engineering practical work in the second semester) in Qt C++. + * + * @section description Description + * In this project, we are developing an application that calculates the + * trajectory of a flying delivery robot that collects valuable cargo from + * control points: Targets. On its way, it may encounter high mountains that + * it cannot fly over: Hills; or elliptical territories that are impossible + * to visit due to climate conditions: TrappyCircles. Also, through some + * control points, the robot is simply unable to move, as the cargo may not be + * ready for transportation at that time, these are TrappyLines. + * + * The robot's trajectory is calculated using several mathematical algorithms: + * [...]. The graphical interface for constructing the trajectory was created + * using Qt and QCustomPlot. + * + * In the application, you can add objects using window forms, interact with the + * trajectory calculation plot using the mouse cursor, create and open files in + * .json format with a specific style for this application. Editing objects can + * also be done with cursors or using a special dynamic input field with tables, + * opened in a separate window mode or embedded in the main one. + * + */ + // Qt libs: #include From 2985d55fbb891e5e80f5b5519051a629a0b2cc6f Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 20:29:48 +0300 Subject: [PATCH 15/17] move images to .extra --- {images => .extra/images}/AA.png | Bin {images => .extra/images}/better_cross_cursor.png | Bin {images => .extra/images}/choose_cursor.png | Bin {images => .extra/images}/flying_robot.png | Bin {images => .extra/images}/high_hills.png | Bin {images => .extra/images}/icon.png | Bin {images => .extra/images}/images_source.html | 0 {images => .extra/images}/move_cursor.png | Bin {images => .extra/images}/new_file.png | Bin {images => .extra/images}/open_file.png | Bin {images => .extra/images}/play_triangle.png | Bin {images => .extra/images}/save_file.png | Bin {images => .extra/images}/save_file_as.png | Bin {images => .extra/images}/sliders.png | Bin {images => .extra/images}/target.png | Bin {images => .extra/images}/warning_file.png | Bin cmake_paths.cmake | 2 +- 17 files changed, 1 insertion(+), 1 deletion(-) rename {images => .extra/images}/AA.png (100%) rename {images => .extra/images}/better_cross_cursor.png (100%) rename {images => .extra/images}/choose_cursor.png (100%) rename {images => .extra/images}/flying_robot.png (100%) rename {images => .extra/images}/high_hills.png (100%) rename {images => .extra/images}/icon.png (100%) rename {images => .extra/images}/images_source.html (100%) rename {images => .extra/images}/move_cursor.png (100%) rename {images => .extra/images}/new_file.png (100%) rename {images => .extra/images}/open_file.png (100%) rename {images => .extra/images}/play_triangle.png (100%) rename {images => .extra/images}/save_file.png (100%) rename {images => .extra/images}/save_file_as.png (100%) rename {images => .extra/images}/sliders.png (100%) rename {images => .extra/images}/target.png (100%) rename {images => .extra/images}/warning_file.png (100%) diff --git a/images/AA.png b/.extra/images/AA.png similarity index 100% rename from images/AA.png rename to .extra/images/AA.png diff --git a/images/better_cross_cursor.png b/.extra/images/better_cross_cursor.png similarity index 100% rename from images/better_cross_cursor.png rename to .extra/images/better_cross_cursor.png diff --git a/images/choose_cursor.png b/.extra/images/choose_cursor.png similarity index 100% rename from images/choose_cursor.png rename to .extra/images/choose_cursor.png diff --git a/images/flying_robot.png b/.extra/images/flying_robot.png similarity index 100% rename from images/flying_robot.png rename to .extra/images/flying_robot.png diff --git a/images/high_hills.png b/.extra/images/high_hills.png similarity index 100% rename from images/high_hills.png rename to .extra/images/high_hills.png diff --git a/images/icon.png b/.extra/images/icon.png similarity index 100% rename from images/icon.png rename to .extra/images/icon.png diff --git a/images/images_source.html b/.extra/images/images_source.html similarity index 100% rename from images/images_source.html rename to .extra/images/images_source.html diff --git a/images/move_cursor.png b/.extra/images/move_cursor.png similarity index 100% rename from images/move_cursor.png rename to .extra/images/move_cursor.png diff --git a/images/new_file.png b/.extra/images/new_file.png similarity index 100% rename from images/new_file.png rename to .extra/images/new_file.png diff --git a/images/open_file.png b/.extra/images/open_file.png similarity index 100% rename from images/open_file.png rename to .extra/images/open_file.png diff --git a/images/play_triangle.png b/.extra/images/play_triangle.png similarity index 100% rename from images/play_triangle.png rename to .extra/images/play_triangle.png diff --git a/images/save_file.png b/.extra/images/save_file.png similarity index 100% rename from images/save_file.png rename to .extra/images/save_file.png diff --git a/images/save_file_as.png b/.extra/images/save_file_as.png similarity index 100% rename from images/save_file_as.png rename to .extra/images/save_file_as.png diff --git a/images/sliders.png b/.extra/images/sliders.png similarity index 100% rename from images/sliders.png rename to .extra/images/sliders.png diff --git a/images/target.png b/.extra/images/target.png similarity index 100% rename from images/target.png rename to .extra/images/target.png diff --git a/images/warning_file.png b/.extra/images/warning_file.png similarity index 100% rename from images/warning_file.png rename to .extra/images/warning_file.png diff --git a/cmake_paths.cmake b/cmake_paths.cmake index 7b06151..b6b8019 100644 --- a/cmake_paths.cmake +++ b/cmake_paths.cmake @@ -3,7 +3,7 @@ cmake_path(SET QCUSTOMPLOT_DIR "${CMAKE_SOURCE_DIR}/qcustomplot") cmake_path(SET ICECREAM-CPP_DIR "${CMAKE_SOURCE_DIR}/icecream-cpp") cmake_path(SET CMAKESCRIPTS_DIR "${CMAKE_SOURCE_DIR}/cmake_scripts") -cmake_path(SET IMAGES_DIR "${CMAKE_SOURCE_DIR}/images") +cmake_path(SET IMAGES_DIR "${CMAKE_SOURCE_DIR}/.extra/images") cmake_path(SET PROJECT_DIR "${CMAKE_SOURCE_DIR}") From be8fac18ed5ea4309ed68fe71b12586de24598c2 Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 20:41:06 +0300 Subject: [PATCH 16/17] small fix in tables --- data_tools/tables_connection/tables_connection.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/data_tools/tables_connection/tables_connection.cpp b/data_tools/tables_connection/tables_connection.cpp index dd66e0c..ba3db36 100644 --- a/data_tools/tables_connection/tables_connection.cpp +++ b/data_tools/tables_connection/tables_connection.cpp @@ -253,6 +253,8 @@ void TablesConnection::UpdateTables() { UpdateTable(manager_->GetHills()); UpdateTable(manager_->GetTrappyLines()); UpdateTable(manager_->GetTrappyCircles()); + + UpdateTablesConnections(); } // TODO: переписать так, чтобы оно меняло конкретное поле, а не целую точку From 1e3d876a352cd8fedfaca486f300f71fa164bb21 Mon Sep 17 00:00:00 2001 From: Dmitry Krivoruchko <144147209+UmbrellaLeaf5@users.noreply.github.com> Date: Thu, 9 May 2024 21:38:04 +0300 Subject: [PATCH 17/17] small rename in .gitmodules --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 09a42d6..fb170f7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -4,6 +4,6 @@ [submodule "qcustomplot"] path = qcustomplot url = https://github.com/legerch/QCustomPlot-library -[submodule ".extra/doxygen/theme"] +[submodule "doxygen_awesome"] path = .extra/doxygen/theme url = https://github.com/jothepro/doxygen-awesome-css.git