From daf5db9772c33f5f7e3fb14a986d610f8308fdd0 Mon Sep 17 00:00:00 2001 From: xpl-odoo Date: Thu, 20 Aug 2026 10:23:17 +0000 Subject: [PATCH] [IMP] odoo_sh: refactor and update advanced section X-original-commit: bb896c218246cae8ab0f21c4cc77160c0bb997ab --- content/administration/odoo_sh/advanced.rst | 353 +++++++++++++++++- .../odoo_sh/advanced/containers.rst | 236 ------------ .../odoo_sh/advanced/containers/pdb_sh.png | Bin 73826 -> 0 bytes .../advanced/frequent_technical_questions.rst | 60 --- .../odoo_sh/advanced/pdb-sh.png | Bin 0 -> 18696 bytes .../odoo_sh/advanced/submodule-sh-add.png | Bin 0 -> 17572 bytes .../advanced/submodule-sh-github-ssh.png | Bin 0 -> 10792 bytes .../odoo_sh/advanced/submodules.rst | 111 ------ .../submodules/advanced-submodules-button.png | Bin 6214 -> 0 bytes .../submodules/advanced-submodules-dialog.png | Bin 13187 -> 0 bytes .../advanced-submodules-github-sshurl.png | Bin 8570 -> 0 bytes .../administration/odoo_sh/create_module.rst | 2 + .../odoo_sh/getting_started.rst | 149 ++++++-- .../odoo_sh/getting_started/branches.rst | 4 +- .../odoo_sh/getting_started/create.rst | 4 +- .../odoo_sh/getting_started/online_editor.rst | 14 +- .../general/email_communication/faq.rst | 4 +- redirects/17.0.txt | 3 + 18 files changed, 486 insertions(+), 454 deletions(-) delete mode 100644 content/administration/odoo_sh/advanced/containers.rst delete mode 100644 content/administration/odoo_sh/advanced/containers/pdb_sh.png delete mode 100644 content/administration/odoo_sh/advanced/frequent_technical_questions.rst create mode 100644 content/administration/odoo_sh/advanced/pdb-sh.png create mode 100644 content/administration/odoo_sh/advanced/submodule-sh-add.png create mode 100644 content/administration/odoo_sh/advanced/submodule-sh-github-ssh.png delete mode 100644 content/administration/odoo_sh/advanced/submodules.rst delete mode 100644 content/administration/odoo_sh/advanced/submodules/advanced-submodules-button.png delete mode 100644 content/administration/odoo_sh/advanced/submodules/advanced-submodules-dialog.png delete mode 100644 content/administration/odoo_sh/advanced/submodules/advanced-submodules-github-sshurl.png diff --git a/content/administration/odoo_sh/advanced.rst b/content/administration/odoo_sh/advanced.rst index bd71f0f1f03..9381a61cb95 100644 --- a/content/administration/odoo_sh/advanced.rst +++ b/content/administration/odoo_sh/advanced.rst @@ -1,12 +1,347 @@ -:nosearch: +=============== +Advanced topics +=============== -======== -Advanced -======== +This section covers advanced features of Odoo.sh related to :ref:`containers +`, :ref:`Git submodules `, and +:ref:`scheduled actions `. -.. toctree:: - :titlesonly: +.. _odoo-sh/advanced/containers: - advanced/containers - advanced/submodules - advanced/frequent_technical_questions +Containers +========== + +Each build is isolated in its own container (Linux namespace container). The base is an Ubuntu-based +system on which all of Odoo's required dependencies, as well as common, useful packages, are +installed. + +If your project requires :ref:`additional Python dependencies ` or more +recent releases, you can define a :file:`requirements.txt` file at the root of your branches that +lists them. The platform will ensure these dependencies are installed in your containers. + +.. seealso:: + - For a concrete example, check out the Odoo Community `requirements.txt file + <{GITHUB_PATH}/requirements.txt>`_. + - `PyPA requirements specifiers documentation + `_ + +.. note:: + The :file:`requirements.txt` files of :ref:`submodules ` are also + taken into account. The platform looks for such files in the parent folder of each folder + containing an Odoo module. + +.. _odoo-sh/advanced/containers/directory: + +Directory structure +------------------- + +As the containers are Ubuntu-based, their directory structure follows the `Filesystem Hierarchy +Standard `_. + +.. seealso:: + `Ubuntu main directories documentation `_ + +The directories relevant to Odoo.sh are the following: + +:: + + . + ├── home + │ └── odoo + │ ├── backup.daily + │ ├── data + │ │ ├── filestore Database attachments, as well as the files of binary fields + │ │ └── sessions Visitors and users sessions + │ ├── logs + │ │ ├── install.log Database installation logs + │ │ ├── odoo.log Running server logs + │ │ ├── update.log Database updates logs + │ │ └── pip.log Python packages installation logs + │ └── src + │ ├── odoo Odoo Community source code + │ │ └── odoo-bin Odoo server executable + │ ├── enterprise Odoo Enterprise source code + │ ├── themes Odoo Themes source code + │ └── user Your repository branch source code + └── usr + ├── lib + │ └── pythonX.XX + │ └── dist-packages Python X.XX standard libraries + ├── local + │ └── lib + │ └── pythonX.XX + │ └── dist-packages Python X.XX third-party libraries + └── usr + └── bin + └── pythonX.X Python X.XX executable + +.. _odoo-sh/advanced/containers/database: + +Database shell +-------------- + +While accessing a container with the shell, you can access the database using the `psql` command. + +.. code-block:: bash + + odoo@odoo-master-1.odoo.sh:~$ psql + psql (16.9) + Type "help" for help. + + odoo-master-1=> + +.. warning:: + Always use `transactions `_ (e.g., + `BEGIN` (...) `COMMIT` / `ROLLBACK`) when an SQL statement leads to changes (e.g., `UPDATE`, + `DELETE`, `ALTER`, etc.) , especially for your production database. The transaction mechanism is + your safety net in case of a mistake. You simply have to rollback your changes to revert your + database to its previous state. + + Do not forget to commit or roll back transactions. Open transactions may lock records in your + tables, and a running database may wait for them to be released, causing a server to hang + indefinitely. + + In addition, use your staging databases to test your statements first. It gives you an extra + safety net. + + .. example:: + You forgot to set your `WHERE` condition. In such a case, you can rollback to revert the + unwanted change: + + .. code-block:: sql + + odoo-master-1=> BEGIN; + BEGIN + odoo-master-1=> UPDATE res_users SET password = '***'; + UPDATE 457 + odoo-master-1=> ROLLBACK; + ROLLBACK + + Then, rewrite the statement and commit the change: + + .. code-block:: sql + + odoo-master-1=> BEGIN; + BEGIN + odoo-master-1=> UPDATE res_users SET password = '***' WHERE id = 1; + UPDATE 1 + odoo-master-1=> COMMIT; + COMMIT + +.. _odoo-sh/advanced/containers/server: + +Run an Odoo server +------------------ + +You can start an Odoo server instance from a container shell. You won't be able to access it from +the outside world with a web browser, but you can, for example: + +- Use the Odoo shell: + + .. code-block:: bash + + odoo-bin shell + >>> partner = env['res.partner'].search([('email', '=', 'asusteK@yourcompany.example.com')], limit=1) + >>> partner.name + 'ASUSTeK' + >>> partner.name = 'Odoo' + >>> env['res.partner'].search([('email', '=', 'asusteK@yourcompany.example.com')], limit=1).name + 'Odoo' + +- Install a module: + + .. code-block:: bash + + odoo-bin -i sale --without-demo=all --stop-after-init + + .. tip:: + - The argument `--without-demo=all` prevents demo data from being loaded for all modules. + - The argument `--stop-after-init` immediately shutdowns the server instance after the + operation is completed. + +- Update a module: + + .. code-block:: bash + + odoo-bin -u sale --stop-after-init + +- Run the tests for a module: + + .. code-block:: bash + + odoo-bin -i sale --test-enable --log-level=test --stop-after-init + +.. seealso:: + :doc:`CLI documentation ` + +To find the addons path used by Odoo.sh to run your server, look for "*odoo: addons paths*" in the +logs (:file:`~/logs/odoo.log`). + +:: + + 2025-02-19 10:51:39,267 4 INFO ? odoo: Odoo version 18.0 + 2025-02-19 10:51:39,268 4 INFO ? odoo: Using configuration file at /home/odoo/.config/odoo/odoo.conf + 2025-02-19 10:51:39,268 4 INFO ? odoo: addons paths: ['/home/odoo/data/addons/18.0', '/home/odoo/src/user', '/home/odoo/src/enterprise', '/home/odoo/src/themes', '/home/odoo/src/odoo/addons', '/home/odoo/src/odoo/odoo/addons'] + +.. warning:: + Operations you perform on an Odoo server instance are not isolated; changes will be reflected in + the database. Remember to always carry out tests in your staging databases. + +.. _odoo-sh/advanced/containers/debugging: + +Debugging in Odoo.sh +-------------------- + +.. note:: + Debugging an Odoo.sh build is not really different from debugging another Python app. As such, + the goal of this section is to cover the specificities and limitations of the Odoo.sh platform, + and assumes that you already know how to use a debugger. + +You can use `pdb`, `pudb`, or `ipdb` to debug code on Odoo.sh. Since the server runs outside a +shell, you cannot launch the debugger directly from your Odoo backend, as it requires a shell to +operate. + +`pdb `_ is installed by default in every container. + +.. tip:: + To use `pudb `_ or `ipdb `_, it + is necessary to install them either: + + - permanently by adding `pudb` or `ipdb` to your project's :file:`requirements.txt` file, or + - temporarily (only in the current build) by running the relevant command: + + .. code-block:: bash + + pip install pudb --user + + .. code-block:: bash + + pip install ipdb --user + +#. To trigger the debugger, add this to the code you want to debug: + + .. code-block:: python + + import sys + if sys.__stdin__.isatty(): + import pdb; pdb.set_trace() + + .. note:: + The condition `sys.__stdin__.isatty()` is a workaround for detecting whether you are running + Odoo from a shell. + +#. Next, save the file and run the Odoo shell: + + .. code-block:: bash + + odoo-bin shell + +#. Use the Odoo shell to trigger the code you want to debug. + + .. image:: advanced/pdb-sh.png + :alt: pdb running in an Odoo.sh shell + +.. _odoo-sh/advanced/submodules: + +Submodules +========== + +`Git submodules `_ let you link external +repositories directly into your project without copy-pasting code, streamlining deployment by +cloning dependencies alongside your main codebase. You maintain precise version control by choosing +exact branches and pinning specific commit revisions to update whenever you choose. + +On Odoo.sh, the platform automatically detects submodules and adds them to your addons path for +database installation, provided you :ref:`configure a deploy key in your project and repository +settings ` when integrating private repositories. + +.. _odoo-sh/advanced/submodules/add: + +Adding a submodule +------------------ + +.. tabs:: + + .. tab:: With Odoo.sh + + .. note:: + Currently, it is not possible to add **private** repositories with Odoo.sh. You can + nevertheless do so with Git. + + #. From the :doc:`Branches ` view of your Odoo.sh project, choose + the branch in which you want to add a submodule. + #. In the upper right corner, click :guilabel:`Submodule`, then :guilabel:`Run on Odoo.sh`. + #. In the dialog box, fill in the following: + + - :guilabel:`Repository URL`: the SSH URL of the repository + + .. tip:: + On GitHub, click :guilabel:`Clone`, select :guilabel:`SSH`, and copy the URL. + + .. image:: advanced/submodule-sh-github-ssh.png + :alt: + + - :guilabel:`Branch`: the specific branch that should be used + - :guilabel:`Path`: the folder in which the submodule should be added to in your branch + + .. image:: advanced/submodule-sh-add.png + :alt: + + .. tab:: With Git (advanced) + + #. In a terminal, in the folder where your Git repository is cloned, checkout the branch in + which you want to add a submodule: + + .. code-block:: bash + + git checkout + + #. Add the submodule: + + .. code-block:: bash + + git submodule add -b : + + - *:*: the SSH URL of the repository you + want to add as a submodule + - **: the branch you want to use in the above repository + - **: the folder in which you want to add this submodule + + #. Commit and push the changes: + + .. code-block:: bash + + git commit -a && git push -u + + - **: the repository on which you want to push your changes. On a standard Git + setup, this is *origin*. + - **: the branch on which you want to push your changes. Most likely, the branch + you checked out in the first step. + +.. tip:: + When adding a repository that contains many modules, you may want to ignore some of them if any + are installed automatically. To do so, prefix your submodule folder with a :code:`.` (e.g. + `.folder`). The platform will ignore this folder, and you can hand-pick the modules by creating + `symbolic links `_ to them from another folder. + +.. _odoo-sh/advanced/scheduled: + +Scheduled actions +================= + +On the Odoo.sh platform, scheduled actions are implemented slightly differently from a regular Odoo +server and are run on a best-effort basis. This is because there might be multiple customers on the +same server, and each customer is guaranteed a fair share of the server's resources. Therefore, an +exact running time for scheduled actions cannot be guaranteed. + +.. important:: + Do not expect any scheduled action to be run more often than every five minutes. + +As the execution time of scheduled actions is limited, it is advised to ensure your scheduled +actions: + +- Work on small batches of records. +- Commit their work after processing each batch so that if they are interrupted by the time limit, + they do not need to start over. +- Are idempotent, i.e, they must not cause side effects if they are started more often than + expected. diff --git a/content/administration/odoo_sh/advanced/containers.rst b/content/administration/odoo_sh/advanced/containers.rst deleted file mode 100644 index 5b700ee8c65..00000000000 --- a/content/administration/odoo_sh/advanced/containers.rst +++ /dev/null @@ -1,236 +0,0 @@ - -========== -Containers -========== - -Overview -======== - -Each build is isolated within its own container (Linux namespaced container). - -The base is an Ubuntu system, where all of Odoo's required dependencies, -as well as common useful packages, are installed. - -If your project requires additional Python dependencies, or more recent releases, -you can define a :file:`requirements.txt` file in the root of your branches listing them. -The platform will take care to install these dependencies in your containers. -`The pip requirements specifiers `_ -documentation can help you write a :file:`requirements.txt` file. -To have a concrete example, -check out the `requirements.txt file of Odoo <{GITHUB_PATH}/requirements.txt>`_. - -The :file:`requirements.txt` files of submodules are taken into account as well. The platform -looks for :file:`requirements.txt` files in each folder containing Odoo modules: Not in the module folder itself, -but in their parent folder. - -Directory structure -=================== - -As the containers are Ubuntu based, their directory structure follows the linux Filesystem Hierarchy Standard. -`Ubuntu's filesystem tree overview `_ -explains the main directories. - -Here are the Odoo.sh pertinent directories: - -:: - - . - ├── home - │ └── odoo - │ ├── src - │ │ ├── odoo Odoo Community source code - │ │ │ └── odoo-bin Odoo server executable - │ │ ├── enterprise Odoo Enterprise source code - │ │ ├── themes Odoo Themes source code - │ │ └── user Your repository branch source code - │ ├── data - │ │ ├── filestore database attachments, as well as the files of binary fields - │ │ └── sessions visitors and users sessions - │ └── logs - │ ├── install.log Database installation logs - │ ├── odoo.log Running server logs - │ ├── update.log Database updates logs - │ └── pip.log Python packages installation logs - └── usr - ├── lib - │ ├── python2.7 - │ └── dist-packages Python 2.7 standard libraries - │ ├── python3 - │ └── dist-packages Python 3 standard libraries - │ └── python3.5 - │ └── dist-packages Python 3.5 standard libraries - ├── local - │ └── lib - │ ├── python2.7 - │ │ └── dist-packages Python 2.7 third-party libraries - │ └── python3.5 - │ └── dist-packages Python 3.5 third-party libraries - └── usr - └── bin - ├── python2.7 Python 2.7 executable - └── python3.5 Python 3.5 executable - -Both Python 2.7 and 3.5 are installed in the containers. However: - -* If your project is configured to use Odoo 10.0, the Odoo server runs with Python 2.7. -* If your project is configured to use Odoo 11.0 or above, the Odoo server runs with Python 3.5. - -Database shell -============== - -While accessing a container with the shell, you can access the database using *psql*. - -.. code-block:: bash - - odoo@odoo-addons-master-1.odoo.sh:~$ psql - psql (9.5.2, server 9.5.11) - SSL connection (protocol: TLSv1.2, cipher: ECDHE-RSA-AES256-GCM-SHA384, bits: 256, compression: off) - Type "help" for help. - - odoo-addons-master-1=> - -**Be careful !** -`Use transactions `_ (*BEGIN...COMMIT/ROLLBACK*) -for every *sql* statements leading to changes -(*UPDATE*, *DELETE*, *ALTER*, ...), especially for your production database. - -The transaction mechanism is your safety net in case of mistake. -You simply have to rollback your changes to revert your database to its previous state. - -For example, it may happen that you forget to set your *WHERE* condition. - -.. code-block:: sql - - odoo-addons-master-1=> BEGIN; - BEGIN - odoo-addons-master-1=> UPDATE res_users SET password = '***'; - UPDATE 457 - odoo-addons-master-1=> ROLLBACK; - ROLLBACK - -In such a case, you can rollback to revert the unwanted changes that you just mistakenly did, and rewrite the statement: - -.. code-block:: sql - - odoo-addons-master-1=> BEGIN; - BEGIN - odoo-addons-master-1=> UPDATE res_users SET password = '***' WHERE id = 1; - UPDATE 1 - odoo-addons-master-1=> COMMIT; - COMMIT - -However, do not forget to either commit or rollback your transaction after having done it. -Open transactions may lock records in your tables -and your running database may wait for them to be released. It can cause a server to hang indefinitely. - -In addition, when possible, use your staging databases to test your statements first. It gives you an extra safety net. - -Run an Odoo server -================== - -You can start an Odoo server instance from a container shell. You won't be able to access it from the outside world -with a browser, but you can for instance: - -* use the Odoo shell, - -.. code-block:: bash - - $ odoo-bin shell - >>> partner = env['res.partner'].search([('email', '=', 'asusteK@yourcompany.example.com')], limit=1) - >>> partner.name - 'ASUSTeK' - >>> partner.name = 'Odoo' - >>> env['res.partner'].search([('email', '=', 'asusteK@yourcompany.example.com')], limit=1).name - 'Odoo' - -* install a module, - -.. code-block:: bash - - $ odoo-bin -i sale --stop-after-init - -* update a module, - -.. code-block:: bash - - $ odoo-bin -u sale --stop-after-init - -* run the tests for a module, - -.. code-block:: bash - - $ odoo-bin -i sale --test-enable --log-level=test --stop-after-init - -In the above commands, the argument: - -* ``--stop-after-init`` will immediately shutdown the server instance after it completed the operations you asked. - -More options are available and detailed in the -:doc:`CLI documentation `. - -You can find in the logs (*~/logs/odoo.log*) the addons path used by Odoo.sh to run your server. -Look for "*odoo: addons paths*": - -:: - - 2018-02-19 10:51:39,267 4 INFO ? odoo: Odoo version {BRANCH} - 2018-02-19 10:51:39,268 4 INFO ? odoo: Using configuration file at /home/odoo/.config/odoo/odoo.conf - 2018-02-19 10:51:39,268 4 INFO ? odoo: addons paths: ['/home/odoo/data/addons/{BRANCH}', '/home/odoo/src/user', '/home/odoo/src/enterprise', '/home/odoo/src/themes', '/home/odoo/src/odoo/addons', '/home/odoo/src/odoo/odoo/addons'] - -**Be careful**, especially with your production database. -Operations that you perform running this Odoo server instance are not isolated: -Changes will be effective in the database. Always, make your tests in your staging databases. - -Debugging in Odoo.sh -==================== - -Debugging an Odoo.sh build is not really different than another Python app. This article only explains the specificities and limitations of the Odoo.sh platform, and assumes that you already know how to use a debugger. - -.. note:: If you don't know how to debug a Python application yet, there are multiple introductory courses that can be easily found on the Internet. - -You can use ``pdb``, ``pudb`` or ``ipdb`` to debug your code on Odoo.sh. -As the server is run outside a shell, you cannot launch the debugger directly from your Odoo instance backend as the debugger needs a shell to operate. - -- `pdb `_ is installed by default in every container. - -- If you want to use `pudb `_ or `ipdb `_ you have to install it before. - - To do so, you have two options: - - - temporary (only in the current build): - - .. code-block:: bash - - $ pip install pudb --user - - or - - .. code-block:: bash - - $ pip install ipdb --user - - - permanent: add ``pudb`` or ``ipdb`` to your project ``requirements.txt`` file. - - -Then edit the code where you want to trigger the debugger and add this: - -.. code-block:: python - - import sys - if sys.__stdin__.isatty(): - import pdb; pdb.set_trace() - -The condition :code:`sys.__stdin__.isatty()` is a hack that detects if you run Odoo from a shell. - -Save the file and then run the Odoo Shell: - -.. code-block:: bash - - $ odoo-bin shell - -Finally, *via* the Odoo Shell, you can trigger the piece of code/function/method -you want to debug. - -.. image:: containers/pdb_sh.png - :align: center - :alt: Console screenshot showing ``pdb`` running in an Odoo.sh shell. diff --git a/content/administration/odoo_sh/advanced/containers/pdb_sh.png b/content/administration/odoo_sh/advanced/containers/pdb_sh.png deleted file mode 100644 index aecb6c4aff925efe59236e38b7b8253c563925e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73826 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

Y>ct0={*6r=5UXN5X+05Ck6T7oESF>Es z9l8rV?sh4U?8dz-n&j$%w6}3qH4%%pUVhLf6=n9 zAc4jVE#YI02D`>*nz$x~?Weis_kl0+7+E~5os3w;hY&~r5;p{))7?7t5wgcnj zh^$o~fY{NRiY==ovC7_pzG9dQe=8!l{|HIZ&)8IISq{!uI{Fb^<$J9Bek6{T3yl^| zQSIuA#nk*v^U+z{=xe9+Q-B6;dSMA5*RsJRxp;y1sWHvM1@Ca~KO z7zJ$$usHVKZrpa}DGSsk<}PIfLwlFd3r6vKC#i=kxY)afmXuO*b}lhGU0X42Gx>ho z|AgnFsb8S-+GvH)`C{=X(($sCP(gde(0<=MgnOn!%ZJ(1RhwaKpXgmgRIvA=mBYoa zv$(-!x!J{k=Zs$}g)Xa{KQlv)hGpMVOt;DD5Ju6psadTFm7#FVPL@Q;ikY!a6LAg9 zGohifSed_9lK2568}M-|Ip3YNr_@&Cs4Eersf&C0j~>h)Bh5Q^;cMT*&+OsRReY41 z_QU~!Y_95wg_7v`zw*q*G&_Qo*E;EX1FFS+S~>y4+AYArsN!StYr}B49X7m&^Egf+ ze)riaqZDafkB~vG8rGy#M*DfoJSK)zg$!@u9>dE^9|qm2#x9)%|42_|MHYDyIopFX zRUbdt8U2Yh%Kf%GyNenU<)GmcQX)tZicai))Pm>!V2e|WravhIFz!RLkNFK;?I5>+ zUC-mM{hlWk0euUY;Eg)D5iZ-ZQN;Q24O=rdjq^cbg0c=UwI9tF-ZFNgcnyA2!j%v)W=LU!zPLcPgc4Oz=T~|`pwS~8fUC(1xp$x2^)`Qa_R7+v zk$Y;_?mzWvC1(1A+QDji)Am^CMvMk);f*70QVJ1672(OiWG*Dg`D(Itxa zGfn-3=%cBX*VP!m3Lf)xn&$rXW}Gf5(2lM$zRuug-aO2z!yMaGFW#{jR4FIF;h~pS z5|t&$yECSB%EXcjC`wzuk!!|x$f4>x%9n%^sbMoTaYc@WRk=^;B-f#P; zsJAvhqa=L(>VFqO_>DHTqA9wI4eYukKm8eiK?QgnPoKroh`86hgo>oI?*!>?Wk$TI*81-zDC~Y>G#z46V)R?6`WH|o7UL`HSu1O;xZ2fV_#ag@Pf7CFpdNz}(TToS?>A+${ zi4T4vov4MUkV7k`%=>10wH^FFBT5Ti>U4U(EPDC*0##bcajcE?ev)0FgRijbtf9wA9?7J(5N%Z2 zd`|x$y5X08M&cUV6WUCxUiv-<=0XO?yqh2n-m6u{ueQfqywTV_2sk^uta;BCIKU0M zFBjWa6{v@?yFf^{i+8N!yX{w2rI+OBvZUasY^2yGBegFQ2!ij+wz<;MNwiDFuSf;r z>O5JZmbbjC5k2f+Nm7{a;cIj@xANAg(}?7?O}mSn?ycfoc5Q`*ba7v{`^|L{E6R{l zL)MAK?N@AFYAHEIEQ=F(Sr#ovt$$kHoKL%f9(NrH`)w#hsCIVSS_1(sr1=2a#}0*2 z85!Vl{&*@`N&}pt#AW`7Sh?BgWIK2Y9}1EI>WQA2D}X6nRYIQa9EtI&S&wmFrG(9# z2U`Gs_DGQd-y19s8tFcpjWoHjQ*ZRf7KZFy9Nyu2vxy#>@RLHb8#xla&kp4-F2;ro zvYf&a%-H+g`s&{^Ur*_wm|AYmVtRpI*H0=f2eXR4czI0kB<%hkb#3ffig$WmrO4zl zWc$Ta2KQhQpm2B?bXOmhx_!2C+yLy3oZQ|s{w1*`-ebexBI2k7oQhW!y|$rOq%}j| zz(!+|#djdaXE|tj@JAGr8t$Lv!5(FG*>_b?BX#q$Jt}CGQd5AT>_FsSSDKTHycs?iHsYj9aw( z3V|g=)<;9--rSd_vln_6-9EHpnq3U5^lELalAK-?PRpL9;~|9T2m2%cm5+WfNvy>n zaI<&NVX;a0#}acqwOXg5!E;~s?joAAYt!PmIk)crJ{`~_8TK;zYwvwC=Q!{?PeUl|s9TfTwAE3FJ zu9rr$-K6A?GG>htkXZ46*2Qqu6j$i466V^XnjBDkZ-s8Hj}}^8mvoC z!igd7m_D+LO zz#LgNxcRfONodUGYWp#KI>cNC3s6H~99&-TdT2~SXg4&tc$c!$h}E*zqpvL*wj{5) zSM_lwacap^LANV`!cKI*q0xUPgU9@(w4f(7h9uAV-RPL?Z$*we59>~4qRjXH9vno( zan$Zq@=cOx$3%!BhS|@^ya`k7&n66deB|ST2lFF@>hB%9zzVZzf8=W6(Mr5+^2TZt zQn_P+*d9RYTFH52VS|(vBI^UwT~TYw)7C!_zIyO|d(zjCHyh`2Y@8xOl%^yEAdH9O zwlZlH6Gc>WmbK%H7Cb>wzEY-uNcf8kO`%(}Rc{7i5kZl0WyhQHLK8}MiGQ_m9z@SIntKcz^?mx+ zIg}If!CF{;X*bNp_Wfe}A)(C=C7WI{rthoiWdsTMm;?+mv0u0~+A-6)M3X-1hVH(p@Lja^Y;rBuNz`dZ?q3oHt4ys!eRP zu(>B3bdxSMpt+j1p5E}YGcM9P6=n86HkZ?QR(`h6btEdv{x#xkIpoEjSC!4w70UFr z$_64CHo|6rf0HWValP?aYMmEc%C^BI~0nE685-i717f)Tn9L zagM2jT3;I7?hc>l$!a%)FdwM6p)n?_`Ue5jl%rt%It?0lE~LlpyqVIF`bQTJ$CP3y z#`^V17*onMUm$H)=GW#1*^G^u)fUyVfu9SKQ@#LU@`lGhEU4&rC!F1*noM1^G{R!fgk!}S`x7NMe17t zhfBIVX(`EF0(lX-KAUtnc@cih2=;%>_SxUdync|5pwzz(c4z}0{u^#lw{EQbizGo? zYVO|{YBmQCLS!~r{(w_Zb8EpiCf+q;zItM8cqT| zE`j##L&u!Ut1rK0avt988Qc6Cw%lj;q(n|E=}9{bPL)d)0p=tgxio0Ccm%d}P#O~C zW(~JHG1$2!LXxyMay|Qjn_BsM;r~?@9d}#T)AKmE`?I-(ijP+#=37t|uc{HZ(cl+M z!Yh@=>cGk^TDjtF(TomX_htfysUMlo5z_4j$VWhZDk2%Lo%j?q%?z#9C2oZt_T|Mw zUW1KreBZ}U`t)uy7x3;eZ|z8Ly4TV)h)Od~hk&W7qbuJ*YUMme1jI(Ci71kGh}}*P z)P7kTvtjzST;t;Q&Ez=4Gnzg~y;#Ev+CuW$=0B>~Ybr*@&tQbi=81QeE@drZ0**6h z`ZzThAqAfDk;QK^YJ#T@$ z?V~5|N(n~m|6N<3K||_Pp9hT-_kgQhemPCc=}Xe-vLu^CQypg78c>a61Z&L}$ZO}E zVDB>&k|~KASQYg%6qdkqUpxmlqq|Sd9fqHoBhgISC*H z9@edF5NAN_iUgNpZ3>DPdj;_Aq}BT@vKX+&Oh`(Cvx4_hDJ z!Dn`ScwK<6Eq!6j>~KR z+jUm=+@^L1TSY!hro;$N5<%(pkkqkE9{bq=Rbla3XSQEGrANH1D0+6?tDW0!+;tu0QckR+{e5|FFut5Um(>hK?^3T^t7oCU5kD zXWwhbWuT>WfE_B8i0(@aKeF(!s7;AdS!|cf;B*pe#GtyLfmAERG?G4!@x+mwtuN?F zJcyGlaWExzex&lvGZXANUxw{@bWP*=-r&r;U9fI3eMZLsOioo~SXVV04y*&7V?1H? z(Y<)>BTVn|UQ7orx4YGcz9F1N4tc!PuTz%hQpK@hvD9Es=$iWm1&1yke|7y%Xqel< zi+$#{@bY>FkpJW72dmdi+;V8pgF} za`9(8wy8OIbfX-2s7%TiY|lQ5GLrXn^OPgG%p>PxTYeR@T%1LT zV=Ekwh$8PXEH>kV(ra)bT6sSEqgGa`VycKE&iLK*6US5;0(YR?FS}idE5W$m;b7{p z1E807R{VPBl7Z1jucLO(ElATM{`#)EcFlIw4_02cx}OVTj&cRqbKrz*$A^*)2?4VM zo81<3WrN_PARBflk@Nke0aXEXra_j4A^&1|>ua&u!&vz6<2>x1J-z662RFYt6N6ux zxztvr`!C<6J}Si541Q)>i)`mJi*zhM!+cF0-kDqBMZxhqs?*Ik#@oIn+%I%=#k2|t zv1N#=omL`VwwBs>jVu5w+42pF=t{No;L%t1{F532obxAL1XoXrc(#5tc0|US8fjL2 zWe&h*nut>Qc?=??%{n0~bhl(q-Us^KfbIRTiz%9|fH9o1lPK1>%Up-RZwxtbBcR7F zw~M=R2+*%{OmcmL$k)XAblbvWE~McD(B1xToxVi7^2GvFrsusVu@#8nVHVwL_Rd2y zrgN^4O649d*SYY=&y`m~#1AO!9`l4ilR}!d;OpJSiIiFB4yMWo^&;+XLZTB=oObi? z4X-GTjLi%7cIDL}m>VwkxB}Cuh<`+RF#rUzj90NH@l2Pt)bH*d%Q8R`c!y@uA zZ--h8HDQsZ>2GbR^y_PO-g}2TX$8PPD;ae?=0&-*`pt02D@qk>rsvbN8QntJv#HDv8XVtkoNPt6n>~> zHWzhOo;{rFOe*woeFrBnGI)H1`G0BTJWu>_tRuoXp-hTnZUslP+PeIAdoDnkL(=Ej z{TZm+Yo6}HWZnzsaz9(9+N0{24g$+z-e4h(lESH=LPh-8NZIYG#X+QQ&Lb|ccpbXz ze<{sv_ze${t*wo9i6?=7nFS((6O=2g6*tgp%5U(e>OHaF!*~{^_(s)bPISA$8>&SA zLRa7*dAucCeq7CfsNQF#hpU)c!4{R+%7`~&0Cu)7cpOJ%ITRx89vGkiZQ(Rs^Ov)D zvX~kCi*hnbPXOKDf;;}4G?XC@kG{DSs}Cd!r&&z5Ds421zzZDzmw7IWe9+6y&6!ye zJ`=;`xAB4EWVG7R@${`Oj19Ynf8{U(qVWLOuJ%8?bir+N&mR#M1{9=ybQZ@ljKxE> zwPoKUzqu?p3F3op`)a8!h;DZPEU$&EwuKBF9ZO8m(VU(+_Pm_+$Fy0?Rv1m5NXfoC zSG%@nJT+fF>0kunnuRY@(saex3*615thJ!Z6nY4%a^kogUh~-r)~i8H>u%L7Q7E$S zwISptkln14;oPCxP=F3%KbFPG`*I)}xu>RQVCI|(3yt&H3%^mDNrh4Mnho8jqav{@ zB9(8iUSc<|<>bwv8qI5Vi(K9U{3B|@Xr9al^FTzwTigY^+sRhVyUSa>OsBmk>CMEo zvM_N(h^ns$2$do7HaBB59glaD@M zBSg2(S^%x0wQBR@p_Ok-N?}hnxRa(AnV&!#*5Iq0^pZIDOQ#MN0uWd%DE&}GP{*CXO z-LbNbb^IDbV0v0Q@&*t(qy_yzh2!Q}H=^sZN+jS(ecyFA^OMP;0GeDZ+iS5#uI+!O zNkplnPE?C?zK=WfD|qkm4~qomLs=xlwR%>*ryF*AntKd<2a`ZUK%PDz$~<-6uRfzO zakr+-p;CUwKZHvc~5Ttn^TJJk-L%Imb7o= ztB;Mq{hG>?eP#QOOaB(&-+rg={WY1rRT9`h!*HdfZh=w* zz6&>f<6@eVFf7Xrg&{=lU4;?>itTGVnyiHH)pF$X2pxKa<~?Gv9e@L&eQz#%W8Uo? z^$ThBL{u$&=jN8jEqB8Dk~%-Jx$`jlZZN5<^D1?*h!3L(4_qvnc4N`ZQ0>zX`$j$3 zk|g#q!}p$HM8U>EU=`Sky*ScjZ9)rBqc%TvnmdVQo$=`4?0hHwdrUk!70`}aeGLvv$C`nSX`17%5TJ~p*VTqX=}Tt^=@tzH{@sC=@YdWHj*6S?>jHvHK|#XZZUr@P!+h(9PS|N?V5N$`N{A@ zE*w0|v(YDO?eu*9)uSv)Y4~(;f3_*Dams0Pkwi(TH4UQZjXO^JLv=}%oJ|%pH6TY~ zLm~A8oZXFKsTigGu(kMYS(#lo{BRvQ+atGz2rlKEko{*t2c-BBiT5awuFeX zcp})czed42iuD(n)c(YU#n$G@!zSlvLvoVf;@|5vHC!P+SgP+W;kimoHl)-!{a*aF zN53!Az!>q9Hy1MJbw2BLw3yOGU*jqu4k(fEOZtqcrD+0yB_jA6e>KA*$*~rQ!OH0D4l@nKY(lbZ~3Ecj9TO`&HOLuFeyxKrF3BtCIsm^;i75w2%gd< z>&ZelGU1Q!{~EVPFov$mSD(C8anH0k!~C}S9~WTi6Zo=U_HTE?#9ejcP!jN$c9 zo=?#@?DT+15pWteeNW#-XG}5MuZoY~v9rwigpE`{G4h|m`*ldx)-^{g!@ai5?P`FK z4F17e0YpQG!k^YE3y5M89Woaqm56zGwDOB%l%tnB=IQs#uWoRg+J!Ksh`>uKoC~eZDr!BlgR+bm`|8-mSZ!&yd@waGA4I6raHu`l0 z?CUlSwL>&|B1SWU0|D($UhofFh3@0%WzkzJE?5SersDQIdesrtW(!!}?zeX!sW1}ncN3uy`ZQ~+wgKfWqQr_V zlJTT0UIlLjAcbs_@D$jG1UJZ6{)I7Vg{=CKlf;&LSzz@0TI$!E9~}y(y26Ew3UAQjD{?F8%!(sDwUq3%wH`EN`O|(g*}ypVfGd0hj#VEP5ViMf z`-Bx^kaVj2EONVDXb;i(G;w{!QVxG!Gi1ql3-y|H!@N3I73~HC?An&Nrvv3es%ex0 z3)quJBW1)i1)6aeN8XL_5}IFSrM#UhZ9^K8o7V?kixIKWgHd*h-!6RNmg!Kssr=f{ zh#sX*wctDhEH7DoZG+Rr;+Z7tu=qvqbiJ}XcheYdOQBA=GK+vTCF`iY;fdNs0RGVy zbxFbFbabAGx{U~|_Amcp7^ThGkr}cNq?G1M!d~OB!^k3D!BBK-Y(LyCzY>S2 zo__ECm;6FaTWBsEA;O{$fw{)+Y zAG7m44J8Q6L?Tr=NN$N92gqXVamg#5{5xF|(1^)V@BBmv>1EILlLUsEflv{Lk>++b zztnmvUWQ8J@IZ5AuJ^M6?cxKOGdX>ir{w>~-dhF4wQO6%NeFHsxF^Aa1qkl$9^Bm; zcZU$%0|aZlad+1c+}+*X9UA^-XJ?;t?mhSAfBqi3yK1efT2-sY7<0^O7wSqquDo9B zq{zb{ydugU@QCUl56NC^IR6@5ed@>Eh8@MSxZ9K}8+nT#Ge`EJA~z?|zG$1YGf3}%q@LlRklF8zTyKgpydkFLD7w7M(Gra1plEFEkHVmb*WS+A1982E{oGGsINIe? zb8NTca7#FEA8h>okIfUe$d$?(SxIZ!?}bkT^_P0dvLCi3CL!zD z>g?RWLlWIK>PhF*%bT`)=gLbmh!K(?=Ytxgnv-a+%FCrmvZI^>YII*Co{| ziW74H_~eczY4wOwNK;-hYX)|5$sU8iEFG%-OGWYU@e~LB1#A?bU0CM4-QEA-fQv#P zwEKef&@v)LM&{p%?uiPJG~bN@ah^uHjy?XIV6B7DkDu@b<8aMo{MwK?AK!N$CIb6R zr%W?c20xO0uQaqpZV3wTI;A^?kS;u-*ckF6`JoB6+xu@gNw*tPgGHzShcY5A;xXf{ zq2T@;>8i$u`Rp5-2zA{XsGOMm`o&zLq4HIW^9qw9AI(Nq?z>=UyD7S750m*x=QljU zG_mRNT#N~bTg2Sy@HReO72F6LaBHSbqv0ZX=fZ_t-IbU&4hbixl=&|8&(Eboj3^#F z!lDU~^iQpU=(Vvn(@6;lSuZJ}_e__khfw2i0Edlabgk0MR}C0?nBGolALyYVN6l2! z$1F2RAmK|TFB5pGQHN%xrL2-8Ox3{&4IJ#8o`cOXC8VYQdpv6+*Y7PZi8{Udb4F`R zu3=7tU`c*{w<7T>NOcRtH}^+<1QC;U<+J z$N01-YjN(}W&87im0}>?A$(yfpZUKtMS0hLir&kALS2k}r1`$p70CIWVJUi3RgK_x z5;pZ$1BcZjg)jt^h5#lT_@uleQ=`#*yX4%BLoTRg?u~6<0@nJ9tF+}ZCjv=R$Ia&Xk2h1A-#2gX-gp$4 zFNQ(?HS;9pv425zy2NjfJFH$moNlS?a;takq~4CYb#Is}uL1FzFXsZ`0Ap%RL}3ii zBx;uJ?Lns9gujs^I)6Pm`CVsiRjYrG9p_fE#g^vjm)7j9t8v-T?e-bz5?FVeX_mas znqBR31(-ALO>`NbzalH)T{67&5Q^1&`?s?le~%?GCs`td(#H!j1HQTO5ZFY~VI%kF zre(pc+Pv=i#)MtGvD4(+&TB`S>Nfkj+%4cAA2rZ;t-dX`{+HBTq;L@}uB4$SB3jLs@}a?C z&up5(*Y)2hpG_c`mp`j8rccS(C4jr>#)zury-+Q1&9pPxMjf`p$f`DSL4WdWp>?i_VH zMepsmC->*XDs!Hv`fK<3Nar!d7bGgb{Dzq9KaURv501#EM4n#^cGy>XHO=B13xjMe#UdH*qb z47_+XjtI!ok3e#z?3T4xVwVQ*p~-DZ;L!|xyGpbMDp=>@%xcK!t-N{O5cw2v?$ej$?Z2iDdZwQ}Q(=gBFeFPx$qj zka_y>K~A~pD{{|!H}~mt!BuCxivCheKPQPcONSTa_@UIxwGx>_Qzrq5yGE_h%w(i9 zxsSxH5n5*q2Z+*KW{&yY|M;XOt{o{TCkx|qm25-Z98eemeHuM_612ADlB$XIW{@KQ+ z^~2$dnuGd{WqzOMMcHUbW^t%sj#H7iP6XbMi*cJ4TpzYyLXNV;8XM#`u7*3J2sWi5-pv;HuIv-8`qQOtQ!GM14Jyw;E()UM9WS&zsG64X=nPOYJT-~rA-A3#; zr`c{^)y8O-qbsZBDV`n;++U6AWsE;U#CODzE4?|Q3sY%=I06|H7Y{+(QOK{0!|RQpWa#x{#((9D3om1}J}sQ-Nx8$Xut_|$+)3K# zv{xnrV$|8z@W}D|F^j91T;)o1Be`e%HpcavBrsZ=lQC!Lr?c{+_?YC&`Efy?<33N| z&b(#zM*s|2OQ3h_F67#H!b9KLxrv>SjT%KwvCgiG^d4HLsFsqHq?_W-3nr7c^u-m3 z%CE8IoV${ssIPl8i_Dbno`y(@Xi9CPcO}TI&PAk&g{3RW|gmB=~vhxI;;kr?~d z-pj{LGksU%Mb}WrG&xr9<*deK8X^|iJ1U1UNopu`VZ**Lg93lK|Hd}r|HAvar+w&7u#$Pb_7Sh zlN)rsC#gM$i4x%qx-5$Eq1PR|R;2F6i2qIO!d@yse%iOvs7bubA=}@kE10 zV^+C57j~wB37#AClyT>_HxJdjR(ZNSmTmQY!!yM7;Q4gIeQO#(mo=Wq0?hGl2X=+3iJHxnc`&_b<=IzOw5_kA z&b9z0bnd9=#~QLmw&+>0HNO&Jvj#gI-a|4)Jn^L-frI;GntYv}6=s&D{dW!mHJYee z^oFjO-rAew1{+8cA{b+36v4ob(X44x{S4sg{_(pbwbHipT3=R!x}okgF2wM}n9E)mEL5s(4Z&U))|gz9fMv8Z zLfxWhs>Zt#fdQ0{QKlIJuRtAEf`O2)QaOow2S67R~bKJEX|46 z*09!}H;CNCBpI|mj6i|9eiB&v#9!&!v5wX?`X$p?w~$qxoLk{{8W_vH)e`%K&#)1h zD7Y&=C}JRw&XlpFpo|Bw!07H!IM7IUTC{*ovtUMJuA?{P!4Uk6w&Y!d+R98cAETuq zIi7w05CweC?om$_c@xQcR_U8h@QILb=sU)`SU6=w^?jcz!QrLQEa6Es^PRMFy89E_ zrdRTw^a+lhf#sqXQ9(*@XUt9|e(-wLf@t-uP>Kco8y<40qt72i<96b9v6=bj!CtTi z#I#xOXd`fzK^Hw}3=>96{A)GxcSbO~bl7q@v+RY5;QKWjRSJ0rsm9F0e3}bk>3GI6 z{29nw?DD4a8)|Uw3}eXyaSTu8U2IC1{QajfLV2jvkA3^fAw{QL*3LGD&A}G?1QMb< z*YJ_3Zm8Z*0;?@29t<8gJ4N}U?p`%FUq(zpUZKtm<)2H#6!sT|hU|7Dcm=0cn^-YiY#!HsAbrfP&`iBiQQkl1$Wx^1h&N?R@+I=B!?jt^P+rj)SMBmHmN2e(?}8^n|;#c zP`i)T6zPpRHYZ}?Q_jA;+a{`vc~_x8U3mLTDF(NzENCGIX8Ld8rjT`4a3e<$(U&E z#O;*{H?eT|x3s}!=NqYZSS&dPT8c|nd)fQfw_B|wXU&aiFl6QB6@IHp6zJDd*dK(j z=g;O^vvRM_m%f1qaM8=^>?b6W9dV@^DD&N;fN<1m*6eC_G_f<;n@k4puds!=rW&HM zsvYRQWP)SnVuB3XT@X+TJgk4(D_Y59xW=*wvrnW;Y00V0vgd$63z}ZX z_lL>(hhO`P)(&PYwDSi{`cf5X&L!#erNiYnB(1qRcIFZv9B8e$<=1buBNNr)L!DVe zBWP3eDUU@ph@Ed9D`Yepxc9fBWh%XeklfKd6u!fFwyz7;3QNT zuETgl%{ff>C6GNBZoSG1l$hg9$$aL)TYk_56=OFe5dI0HxI$#h#~Y_$X`sDAd1 zWAW20sRnb@G3CW@3lc|*$knuz2l7}L8V;>?)UKK4j51o>^)u|Gr>o>5$m%1blB&ohZeMijEN5< zgrKrT8rHnLpRN7OJ@(ofzs7%oy3k#x_S2xwZIp8iCLhM9kc4mUn__z2-!7#zxE-c1 zjvw-jN~hc5>jeQrvo_RvwFiF`uZu0LY28p0zkm1Ik1z7g&i-(`?&D=!A~kpWqdJ|? zT!zZkSIDxHde9B_?OPznn*W@4l=0oDl$25g{^fg{MEHx#?a&DCv(L=~V5wXVv%sZM z6vCo92T<3Ko&YykMB6WQ4)39vwb-t+RX}eu{l320VSasgci!2<>za5KVfFEFgmZ4S zA{eN>TY^LO8uI&_R|0%+7fP?$7a!ab0Xv|t<gj5Oka|`~uryCihVsnLB$H(Ue{B?`;!q-9*4zUTEbbo&VX{-dKqMK1=ko=!| zetatML3z7W4E5UoYD6rg;zge^+Vdd%)k!#?lDBW<$CdQ$n*Y@Z>gS5FgCCxU_wRdZ zkwN-h*s;!mFJ4oNy1@o|7mN31f<_8!M&INYD6jNo76nDtTwU3v9H6&tv;-D zW4Xa?Mf)p72+J=zsU8MZj5{u+7F@B#*VSEFHzOacB9HH*+PKnaS*cDASZy9Y9M%cd zdOyKaJWVy=+>ay2=LHm2&S=DQ-g<M7rEEy2@Sm2m=xmWw4RAq69w?Q{z#jd_7n7i}qD^QpBv11zobgGJbejdZ=czn`LZbR<} z07n?5^h9z(E8_mdE6w5*Sj~0^f7~>|uE+lCwN}kvUTYW$;QIFUc=-vOGbXaiO3F0Z z7@-Nx5}tRLkVkB@3#XY337U8EQlI!BkYLo|vZ4Mcu;D<;^bH1%*2dg+IR`(kA%%Ct z>Nel+mjvUrN)PgI3MA@PRA#h%(<{YTZ()r{_=z=OQqb#e%8)IZ{?y@6W7$K_5x28CI5@9UM+n$DH&nO%;$Ut`QI-CQF@j6z1i*MGBir z<#v~8B3Y<49ax*Aa=NXF4M`c#XIp19wcxookI4%rl)loAl>-^CMe03nBdEd73k`;o ztlX|5L=r2yZUiDsy+rURihd~RyTxCL3P!jRv-YH=(EW8!)!hnX^))*Nvuk++e0X3s zv!$5-)b}FpRpdhH8&9Mmlz@3yK0|7Y`{uqS`;lcN+!&0bdbB%gn+rIMLlv`^VFyyl zC1vyy8BfzTSLW6ZXR)kGPF}0UbY~=OuSQwhEp>iP0b-q7FYeN})81pJh5mHWKG7DE zmW{-tl!b%yp%zZMp#AnCTZHrI6!8 zeKn9^A1Q?S6#D>OZ?d|xLEw@eaqm~b{OqjifMen>F}L1Ai(`%Hwnit|ntW&`w~ln% zEaN6Zq6ewfV3L=ItT7R5C4G0AaeM1R;w6MNN@Z3!5Sm(A-<1^HrfHfIuUAB z1@$9=r=-!j$yc8g^>AP@FS|^xSh%vzTKtJiwMv+DsIRNH!p$ttqFLG(#QV|G`(@g3gWZ97D;KoykRk>b5wMZR}r6_!@naTgL{R?x-? z2k&O4a>8;ogep*L4&cP_JNn@=(pH(u!!B26PA`hA#nG)U3E%+~@}%)Z_V5X(NpOOJ zfUeS3-#Qa0?K_eXdLy7MOU@TYM<(j(o%rE6bhYq~S-U)Zb44AMWR&%}jM;`7p}9V; zfp3ruEniq2o6{!tNcrpd5eo@J$xPo>^CQxuS#sIV3?XE2`V*@SPZ{FkD|};00yhmy zx{i{-$#V=I4?&}Coo25~VuayHd6x&|SbU1Mf_coEW0ia`hI-YGG!C(};R1M@@@h*7Oq3;hY|Ed(0=yivy%Lx)72u!|!rNQab*ttG#sz^u0-C6CUa*A~0`Q zL6tuB1E75e`uEV`KM$P})r8I>XzQEY%O9>r$?C`CpQ&QYBeA}G#}W;5W(oSkm*U24 zta*^#4=^BX=*F-+hZT!Cb9zB!jm5fdwS^hEiL(H1d=Cc?P#MfI`<6b%uzlkbiEz?T zeScmH(UBX_nxjT2g61>`sLPXZOtmx8*?zW zn9C3SLX@|h+Ze=GRXCMoyivatAqak0Ii^|w1Vla-N>9A5W<-)l*UCLBZGro8!F>{@ z_Wt(kUhwPPJLgK2c$-ED;BO}*n||IOFyFk9Uyq!yAPn~`X8mHIuH3m>BmzTPXEXIL zZlmU{FnGdDC?u`O)!BmWq>$xd#oQ-LQKt+TyJHptxAmn98{SO_hyX5x2BrM_p5$CPZEVZ2@)HYB zR?Vq6!R9U(FiV%;>CvzX5F$;@ZINK|D8AUk5k1AQ+KutTNF2+%c+~chpi(6-WuAqR z^Hp84qJBiWHTaqbZ*1Z$9FCRGa3+iH2y^N00TY}DA1w9>0tHs~-jCc14PH(&uKD2C zQ3~jtBxgt^ogfE>@a7C%GJDUCw^J8xQlJ(ZM)X z-4}^YE9qQBmLESX!GXM^$joR1qVOz7&%S%xp6QL5T}1}zSqscN0F7lML+~t9`k4H2 zb=uaC3zMO}(uIu`U2@QJq0%{&Ch`>_ZErlc{GyPc%*ch*sIJw!?fY>QFAP`_H$g2E6mluF8>KSu0v(b;Tz#d_si zS)4wJ&Gh9wBE;#hcM#(2;|GAihiF6yrmAy;^Mj~6L;0gv2-h1I<173$u5i`MZ;2Hav9r;%&A?Remqy2xqjjO$=r{cW#Y{ z9YjXiERjZ5j+A9)E5kV-f}(Qa!y2pWsyw|HSu>b9%P=}-=C(4wu9}xRJ6OH&E;YRB9xcPEYZD=O*DK6s$`xWu=sH9%=ns(^PJC)A|@c8OYl&wedoP$l+hgG?;INL{dHB*?e3vVp%;?q=*9c z|55{>L8?|jRwW5&tHPnGO`-%#o>5AJ!k#8f%OgHT7ghNqCjrF##bo9_4F5s#546^- zgn(wvN@==?KhS+g;~7R5Utw7Pfzki3%>Njlc68=Y44ix|ypvln>&cdIdji}*1Ikdr z39?*K`|{V(D6TRNy!l0PD^u=aouwzl*85F(6hbJGSLYrz3wdpo%WbEjRhdb()QAMh zs%b%H>4`6yLm4RIR*sC-xE<%OvADXa_qX1lztoxBVz_$L2f7#7P>TLxX>{Ze(s9a} z9-JgQ5sJ_9Qhq;2~!LtO#`+N!xG+B5&`DslHEC<{^R*kmkDiV6#62$1Sz3GZ;@=^`Y_= zaUQ*ZPm<3$Up_+aFM5`QJX{ZS+d>%I{qo^ir3>h7t0w=nmTS+h6fj~Z@16DIeIY~& zvyQ<^9XWtI#XVES^d53#=x#^|VQdNQ-l}Y62?oxLJ|r{!PbgofK97Jx1rQ;tG?L^w z9bMXA2+!W28O&V!A`<(-qNunKBC;KSzgUaU(2QUH!$~hFUtv=Km@t5Ox366Ip$~H8{KZT?l=S$Wj4x(tlxkkr;X=mRkN09M_Pl`Qi7{^Ni#h z4gzvhJ^X|<;jn3Z1<`si0zf&$zf{6jGM+pcmpQI*=}3v!<#c~!cITu?aov0ig$U+h z4Xu903LiA^2$6K`DQt&Xe)2IItDBC3*np;arN$Qx^I{8QSn%-V0I#NeAC<$&jnYpU z9?rC%yfJp7FW;jtr=|`+(S~Q*O}Qu^A^Sd&RSF|u{mpP~Zs9M&^76lAw7?2W3weuR zM|@!K721D9Z>l>$k6?2AI&J`hx$CsrIQgGiu!dBaXVv#_Rc!iFOLruq9dhxmu)!L0 zThrfUc#*5hb%jwvO*$FOUe`Hs_Vo8KpM2@V z_`5B-Lg^|Yz`SnJs38T>W_kdSYEj%0%7t$!o)m!vTz5Jmvp_&U9F~P@!OJbW_ zoRo5ZM!JKoq!TZ6uW9*7}J?wlGPsmA#X~%g2Be;FZ&6 zqF0iCT7CWRyLG#%G9WbVcraH__Co~xIwe~k$TGfUAz9$OK(B*)9E)QQBR{w-TDc)= zloKnuMX+&bz;i#j2{UDQjc=>x7+9*9Uc$^f4 zOj?Yi-rd}p_gs(GSXTQ%<(G&~k0-KCrNNkonG}GAy8B%L=F#1U5?hjSlnvc*+Os38 zkg^I>b6n{15r-z|=_3Jcf`s83=r`=G< zqb3@2d{W)S-Z+Yj0s-k zwL9drwWXO6RxTlNPVBjLg9Gl@RP#`?E*RKgBXg-Ytl zu>=1+zYA%|H+RO3Au9h-<`vMx3e-NJa3V%0#xSC#!LgXzw%&_y1qa;{5Z7A3hOb!T z`Fb158}Z=ITgmmoF%}m4o>?Say*@2ggcFE=Ynu_-MVsNhz_Y;+9e z_`-?nK-eSS*<}TKYJ_gtJc~j|!J1mI21jc>)B#h4@ckjashRxk;yo4T6NuM1Fx=PC zpvuyYkcVobl_cPS-xK|_57cbCv7ZjpfzD;o`dGuS7n^|Op{U!O^6Y~TXaXr1)hKI_xKO-Hz z+%-1QT2nGCc3};=+6s=T9}1*4QFQ`|(8hBpxm@0UM!A`*$@KOS{`j3o<)_^nW!8e^ zW7zSWw&9lS@8ueo8xoT|DSZdoo|H_4^#acu)(9)y1-Jb8;;-wk!Mp*tY1D><7Vf9q zcC7*%qFwZTKf{ zI@%9;zlLXGo@pz&o;;nxr^*Qk^eebwTM&T0pGNfAam!aq8ZBx1%PuR=SA^)G8dwDg z>a?MsJ9u%ztF4CMg?G}*F-fj2+Qm+{vvJi+g0|dLxn);nt@GF(_n^GFA9PxX!-}_TZm!>&tj-1Y) zO|6s<7HJ_ARCWk)PyCw?d^eL&2%^hhW}QfW$SBUpmDsIEVq$qgOD-$8dXxwp%3ykB zovbXcoHkR@f>(UlAb8&=jJIYIe*jAsHKgp^&=Oh_51a8~wL%7zGw%8G!&~DSdW8&- z=H?MB1h#--`6PmzLIPRP;2W&s_Z`Zzwig9W$A`T;l z2ll-J9E*S1v52jfHl6if(tM53O19UJ-bw-o&Rtfe8(x@H#^ zTzyIMl1^ND0*Mn&)@uW7H=}wpt$`7}d@3XPTKl;EO7JGO;EP+XfQY}uK&0-Yne~Oq zEth|!x#H2Is6Xnm-0W`XtBZf6fpxEW-lF0@$At(dOOp}Gw9?0Kv+BI|M+v;1UHonit_Mu&E60!h?r`?>h_VNnbsdv=*& zf!O(@+GD&pFV&o>Eg-A%CoUlt0;>PmDMI0Op5cRUd!Z3k?Dk66OZpRKRWLeqw^b}g z^Ro7r@<2w+9N{h^Ih?vyY14pTg@sW-CnGOJFD5J^`~o?}k_wf6L@bF3KZ75dB)|K> z{j6&{3lH+dQW#VJ#j0!8g?&UJmpJQw1IiKEgndefaC1w}K({JkPAn{;i3KbF@a1cn z#ew}k4lL-nCtif6+_&s%tET>a=ebRoz*ba^B7{hl0@7i5w)-@yVUGjGEtZ?Zr!O`K zinsF7L)NPyKx6vIulh;t0n>_CkK9~tT4>B*Yo88{RZHxfn0Ce&Ud*DakkfXPMlTdx zlzWwazt2ZvUY9iG-6pE{~QLgD1^w#h$AT~BW7)R_yFN`j2(EhhZ7iDCzz))()1 zAkOsLYs{(G+QXW+^5`Pov66pniSbd-3{8YH_EV?z;tO*ouwfcpXiMgZ2MiDR^-{Q8 zFJ8W!qY#68xzWnL|Hr0?X zRZ=8QvcfsDg*Q0qYTvS|Qtz?g>>i40*c%CK?H?A55M!mZQ`$bdPSskhbQ^=kK3c;k z`_+{Jp%!$qD;~Sdn%8s%zjQeI(~I+^ninTj%E|oaOfZw$leN2lcOxbhicVEtKS-ps zWx7T0_?@a-?Kj8t>*Q30Tt)50+%LFt@j*ZuH&&%1#QJiMlwygfW&4Cv3E4d-JX z3fa}n3!CrbYUiA8?saDz51r|?Y|dybIMc_*YMZeB5YfP|L3q1(f3|i%zO;9cu#GHJ zCfobp6B+VLP+k$R!j$;O|MOvh}>Cl{q5@N{%kQ3--z? z{VN>x*F$IqLfV5kXt0$_$9lHU7>e6qsQF@i3kxBCS@5T5 z6%EIQgZ54#*1n~rlPzhj|Akuq4Z26LN1Sgihj~)jJiVNUY4?WmbS>5ZE<1jBz7n0`AYg z8BEVNk{)E{MCq{o9sk;adR3yiF0dANskhom| zdk4<%DsNtCL1KqnujmmYTb6nX4D8E|m3!lkJ~@%rYyQn!+hWPzfym!Uf4g_Voju1= zaNCez4W0N`knjIR8vjAI|25M1|2s76b0ReO0a^qQ598tWgxoYcxyPZ&in5?vl zpRVfP%HIm_>teG>7>4V~&06KvNl{HPTfO&MGy;mm$CXFJN^xb@n(w{^+pFctFUH$k zD-66Fpl!OC&Abcps3k4;lzl&443s*Pl*Ts7gZwXO@MUlU3=mhY631R2{-{iX=`@B} zM!SMjELmGf%Z1fnsX~+V_kxWN;Bx_W>C}>2@yOF@58U*R3k`B3JSbb9A8jQiC@_W) zFWE#i#LJv^j?5=84f<7dcaBq1Fb}SSHDQb7R$Qy&L-5dfJ?n$L3z9sLLx7>Divzyd z;ST{wB4qKSV}f9aIRnqd+d>{&2wAtHvZm%6C7n*F<&5A;_Fwb1&4|>-79@g>^;Fab zOBE)!V!Xm7SJ1vo-vmbv2v`zp$S)ag4aPsT5 z`LiaX9~q^bSSD2H4`THfuDj3}XTIG^F}tGD=3KyCq$Ld1AkTJ)qPBIgqa60UhY&9n z>V<};5cKmxaaCgBp9+*SG{!&r{1dj0O@zZ^D9C{f^%|z95B=7L3hjo|<*KKAfejwmW;KSva`^)dcO=ncdXhTupE$G_JAyn0}I4<$an| z@ZUDT$XCm0%jI+Bdo4Dc4997{pTad29mrh+F;_x#CC%&CbP_Et^5vJs&1o-a!>^@5MZL)?`XGF#zP28Qnd6LHTP}2 zas+j|h_Wkl;R5@!_%eLa*Ws-5Mx%%th*ZCGU!s$EbR z_alrT<46SWlUY{6IxU|=JvamsdB%tNtiwklL6VkL>mhUtt+@^gpbLWNgadS}sG%a` zrvK}+MN3kv+qXxwSs5(;b6I*>Ew&|s z#Uh}b-(Jz#uhdn&Wtk#q7E0+y>jr|sF*W!ZLVz_KVlW10bLjLv zK34D+a%MLVKW3BMC^gxGyn)p&mBtkDl< z2^-zq`vF<>y^at~v{Pl7Q>nr)eGg zy{G$RXGET^dRfi^a=*OYy(0>pEMrY+v?F+N)yzyBn*shSLEIlimH$NnlzX<+MXEqf z-f;Lp;k#|QF?gA;I=EtG_S;OjSV9dLxQ<`BI!5`=xSL&`SU5%W#$9>x4V{2)A^%Z-N#+XRIGJ%;Ak~p=&6EYS2YOb;v8Wb z&6yU7s_e6Uw$U9;Pb~`7nT^(fs{d1jOfL?yYozMY0j|zoI<00FFWa)$(H2@pof#3N z{hl^_a1K5Y0Fi?T?X>$P)4x3fVQ+Oex2;D!uVC|9QtVw%+>xZJMi0nZb!8>f5%TGK z*2b%6yxJB^@eb70D#xa~dK7CNXFmJtc-4KlD#yURuBjVkc^^wYCWXSBI^oKW>nfL1 zHqfz9s$Tr}2KNcqhnf!XElZsKq9%8oG$^m$Fr{!FT9l%^Imcv-)L|ax!R&3HSaL~< z&ICAmL*_R;uH$+})b(6E610D?yk8qLAD_@5^GMGc==XaK!i0RDnNUV-r|2J4J^jL` zp9;{@Xn}o9TR_s+QaE0-)jv3AEeYa|Y(Rw17Ese$>)ywA8H^4z@-mA|`83b1AuwC; zo{55?kUUR~~f*)yZ|>Z(`{`+R2oSxQFym!=}x_@Y#v3jdM5hneC zIVY+@1&_{(qA#7a=9qe;R8llXoAIhI1jwi1&_1SNpahARHvEv_*3ul_n&zi zpO+hZ+t0W^8OJ)yRIai6IShLd&9S1p8)MQ!S#s4k0{!nHNWd{fXM#g*EJIaxmPaHKEkGo@!l+-uSY7jA zPF?CW&TfxmlO4e*C^)TXdAL>M441R@hw+n-v-QU4XYLen!OWE)-vj7SZrC(eC3_-! zQ8)BY%!lKO_Ajf?oopSn5huZi9clo|1&;{!P-FUmSlI(`CliXaesNAs@zOmLS!$}X zlvbmVKcNMGYs+4YjlzM%qo+Mg%m6{!|_?Hf8uC` zf8uCt{~LZvEc3g2EmH{Th1iTM?%(IyF4XamaMINtH}}RpqL0tkyidB>d6~f0ok7S> zY7*;?^1!$@*2)Rq3`;?F+*~L(AUUFBEEDN`vsprJ&5uA9*p?@|bCr!~K$8}?n=gfj z2OsDWC_(g+YwyasP)0+f5w zkSYd{Cs)2=0dDINCuz&hV4?G>frS2jcc({n9_?)z#rD#SzErSGv^Sb)f6a$sd*yo< zug2Ph4BO5dg{{T1^svaO`uQ|9qmzY0EALTDji%gRu$H{EFYWTmao3Q_(jWcZs;}FZ zA#ujE(b|P1h$kB+6rHAyO7i2ZqSP*I%3C66XWIjbBl~eH&XDFm5h08 zX6HnkI;=4X1L#D;&5%r_tL#QoB2$w6OMqQuwtl|!<^moo?i7L5(r6nUZ~qExBDn;< zLQtfX(SNncK~+#YS9BJx_)gVMY>Jn$RemOFRPG8=beiJo9+>k_h`z>On9jSOm-D`R z6|N|%LH~b*IPavrBYx3!ukxr$KSm=RQ~p9z=T|O04pa!1r0&MlBPrCB^#8s-2spHk zT{>tyPE#y34GhBhKk~-pVLU+@N#N|@>N)WdY1fV=9lpgxoVe!dv;`9TVDWppUp%&Y zZP0`UGM^VZ2gG~QL7gJX!p!x9q2*jnI?JsRO06yNQj7Qol1{i0^GA>jh%R>%c>}I4 z2UmfeQ|yh|%sb;<@9njIua2 z_pZ&`(W6x@QQnEum6bect)K9u0okn4N8(YRy|H5spqXmgJ@=cwk;*yfh8PHfKdmM0 z(}$O#838hEuSM)WSC5Z3KcqV4qSsat#AAi$JJ1Vr`T{KZI;h$^M)LD9tOnNum`_Q0 z@K5I3NNb2ctp+SWSb_`Wn2h>S`|C=%;eB1Ok#Nka<}j-)kK?V;{n@Oz&p7 zGCzYaGoUR2Jzoo&9$Lf2&ppKXF}L+vgA82itEA^`1P9a}YwZ+&=apHr7^9w`2`5z0 zuBz;O}c|v4~C%MlZyKjOhNScc{D#BGb?9p?)S}5VCX96U(s(O1_^bKUz ztV<&|0ZPfe9pN_{&26DY68}()8gG0em(;A-7NG=Kk6`-2-;CknX>xb7<+{M>BwH!n zA1mBjm;AcV=+5&4b%8tB$S~N1!|CCUGsykQ;r`U7^;ey&OUV?m0mS6!tq1&>mgm@& zfK)&-kl=e;yNM6Jd+3#Ku9w#fbB2(4r0xVF*+chVr`Qj(=^Z^c&*;fJxQTV!7^40HNp%} zm2(V}WwL(v@rDxFa!CMpr*m0*HNa8JPH`kYw7aaan9|VDlsc7P__`F;57nqw@!D&g z<9ZkQJveR>FjGW7Mf;LT^8d>)6U5^?_0amz4LT<(! zq3B0h^*P@UvV~KHl||Ca-u4?Q* z%x{ApT!8@{3IuH7m>q!;mSg*#$4ZB~`Ujc*7+IZY>nXjYc0x#wiO%0ulZuxql$U3l zA3xWPun{N7r}5?Lz~UP8HGP&Tc1FjIEjV6|8^7}$NnUPd$O*=4w&g4YxvyIfro6Wt zoul2kP;ho}6AF*xnv}8aKF#&CzBmY`#~F7+9p-!A+{qdH*6DtC7B?Ud9%$<97*_7> zylVq5I1#4pj2}$+AQ>#4q5p%W*)Y>(0Fq0EXy!r^@W5dIaWd6?j!7XUrdPwaC}meJ z_w(@2eCaprS$@^`1X8Xf{ul13=Z_^w4LlhnWsIHg4u4{6 zLY57L&mlSIZCkP4Ng7H8oX$+3GiTiCnzIc^Rh;BwNXTo~mKgqh{s zb%t9kC`wpr(2Y3DXn0hWCa>;yMO6*rN5Ma+ym5G8^iSg3qabb>hse{aDYaRsGQou~ z^()%(N(e#o@>I}bLxp`5JpD9whpe7OF7d=8n?+uS%20;5F@&A$cmT^(7Z6Bxz(jncAfYLE^r!+`+cZW1c zcOx})NGl-SUD7awbV)ZzNS%dyZ};=Q&wD(F;uJy0$S{}P53Hp3{YxTKp zU?Am7R^=4$n>`S*r}qJWml+2Hb)To44bRe7XhRZmkAFNzm=m3^gA0vO^H8#pO>O0} z$7Zh8#Mu`m7TsFlwV_~q7%LA;cq~9F!hnUEZk|)To7%y_L-x+fAW}`N=$A+s__emA zvHpHELd~bOi+K|=7EUye&uF0d+J2}ikztKXXAK3&!j?%ECa7c znOC@S5PhI&W;B~@6ro>||LWjy?Brgb%Y()d*Rg8ZW4uyKE+G-yD}zs^Jx*ff&p=GP zy6RWjq`i+phpTHD|J_EX%LB<#XlVMb-*QjCgY;@JTq%3pUV8-`mFO{tSp&lVorV2W zS7_Ec(ji!F=cAQgA~xsYq`-|tI92s)7K`ATQzbIs zSypgaBQ?P=3y}sh_@MPcuuPAXRWLQG&TO}Jb|b4aC@& z_j!t2XZW*1Z{qc^?;<)5$>QGTig5(XtA@GBoz-Px=eHV4!p=cS;^}TxmL>=sD+DC= z#KeW>B7APqS+kyeiLPVgr0H3LG@ggJ##|h=KhuQMYB4irS1%HM-%<}SO_UtWr;Ox! zYz)q*mBINU7iI(0`Pvox2b=oPdBLIY-+g%1KfC81Gnv6j4AnqGWS^MGKDRulT3j~J zNt}k|qs@5Wi}+3-$(xrvJB8yDn`I86x)1(BY)?FI@iUnO(UsBUI%hPV8|HC8q?1F< z8yl}TX^zmfiC7(nrDPv0L(KaF*Sf#8pXr|K8ml$OXVg3|rHtA?&mJ2e9Hm?Js;Cn8 zDz;_FC&K~9)UVF#4n#tqf3JHcJ=J&qVUh0rZO_QkE|WPs6owAOVq?v$RbY+7LYtvU zMZL4~n^7t_2*eWs)lXEwG>~)W4*#g7zIWBx;fr&G$MzC5-*7Kzj^jQGziUO>Qh8gl z;ZB+wTFpva#_3?0@|oFT%@YG3%Ln3$bY5b>!aUAekbk0Bu-BI4D?Hw;zPE z((;=v`tFieT*xQBkD|TVBjB^AwEv>eYX$2jg9$1tjITL#-LS~@|IkPAt(n*}uQPKEfXIxoWx(f^a<-5C8uk-qb!?6cO~__ZtleqUd&{&Gyk)6c zE9VE_ixSdI@K;|yxESN#SaN5f;BxkxRa?sOut|s;cF9fovm%lVwhpS@ z5P`&`Oj}stva@>nATx%SCtqw2o`Bb+KDXrf<$@EW63yx%M2D7WxSg@}!mGd6P*(6K zs%S6bZ?yp=no~hDkJ2wV7BgT~XhSTyp6vGnNx=WRrOefMQuy|~-;dtKphbO@ToW8TMn@DPqH z-USiMBLiV$A^2Tx{65j&U3WlqIqvO_Rf4Zlx$BGd~y;>ZjOsycg@gF->Gi{0kMqW|oGKJ0Gg})8-Lcx*$BqBBS55(NZ zWIPhfZ4)-6jkQwusW_zWp0`?-tWE4-6SPm&4OX#`e7v9>c-S~b5sx0uO z7A3tTzI&fb5!klCw$sh{s^Ej?EBwp-)rVjrItjJ?vx~7^z?UL%u<@CL*%bM$x}*S^ zS8$b7K_C0OOKIbJ_3RbaZ==`#BV2+GwU`)M&#MKQYz^dXV6pp|#=gdAt=_|cw@qef(UdkOu7kQFaUXC{}_>->`mNmM@=KMreJJyUO`wZ#_qo1l-i$WLp^ zN0CejVT&4c*8Jc=Ew-$O$62tBYD!8zgc@iT)h7eYDKnKf+I8h7g}uFBKKEkTzb;~A zriq8jJ${tIKHiM!E_ij!6W7iBpBvXt*#N>LB)0zNNX^@$xrzH^;Pz@ z#WC7Z-#e$|Esv?eQ0XBOdWGTMxjc3KGFMtHZnuNEFt2aOk(Va1VILohV&oSPD1b(YZru1n5XC% zNiQtlT&Xu}OWDPG0!STws@+@B>_a6Vo$=BT3lV6cdecs`2Q#Swg=ibjH zsGa^$rUhHum9T?lRo#qmN_gV^RLI_#glksq$0HuS-Iq43F| zI#uZnt`WGs-HT83V!t9~KWfD968?>qNKDl#-+iyAe4Os~kvHnw%I<|AmadURZ>k>{92MaiROa#%ziuQ(*E@1-ZZl?`$(@f`-&#n;3jmP zIbTQ%))rSGTPKX68u3tL=eu=8c*Pj`#;Zh5@fKk%*Ad#*581kPz1ax@7FHffwe!2+ zzZo&UeN5sLAJ%-&%S#y9$XI>YBR%#y&Q-Dq6SN?FG3y4*U8!->(W;wwVvrL-HB*=m zzo#$Bj$BG{rTAMd(3~%@js(dW&$Y5&p-*w1JGdmV_BFLwKbdIZqGCfR&F_* z$H4mDXu=8(uq(}{ig=sUh5r1DXxrxE0Gb?eyWL2~nM0r*A&Rcb=*{k!k-77H~XITVXJ0NgwqEhbm`q{S3v)tBV z(_88ckB7EO?hO6T!@rCYiUq29iNyg2?;bmAQ0W*i@z=jt5bd{S>wDuG8FFug|{#= zdO$bUIWYR@t|^Jans01@m`Kx}Vu2_0U4F-G573PW%usrRO{OcYJ*;4LLDV^m&^fu zayFA10RQ<~MKxPx6q^{jhl{bVty~Q_^sl0k!lihzyONJSH9lVEo8I~MS~?v>dibc2 zA0MZRX^QZ@fU7CN%w$#gWumS4c<|IPGEaCqr_Ocb2@t53_^}$EV=%b9K7*b+S-O0S z7su#>QjhUxLMh*-nd&+#&DzLCAiTsdFFquMgrkf!lJ%>l-PD&E-`Z~WywQdKUH<2i zzj%xt-O!tiyR%KB6=0Z$t%+_EQoT~$iXtCMh;gih74ol^dg88|RLx5@%*Ifj0}iAa zny%OKU!Hoqz?2S3d4&r#5`f~9#b?jTX?vA8C>L3WU05666*P!Nq=@jd14Zqs-uy@P zVTnl}3e4fpU02n(cJ}V-=FP67B9{1Z&zPxb>`n76MIL6f-%)-c+cv>2`^ZGTTjYpX zLz~FuQRF4aSzTOS$c~HeY(u;yoKs~V&Ke?Cp4y`nao(!NRwF#Rzca0>%U;{WUk^tdf@ zyHbwhm@Fhl5toC{(go6w4mFdA6%BzBPeBPk3-w6PxMb6VuBo11jX*MQ(zO5q1leFeoi=wiFy?w`x@Q*VkE8Vk^)6X~2zU*}PYzp`U6-WD@Z zK--OJV$+vj}NyJhB|TeBEH zPP_IQ_B>zig0HYWZup2ca@xrBg3(~C*pfmBM(rgO28eDz)4HiFLWGEaAt>T=*IDk^ zcjS9v!o@1vnK+4*((V`LL97VjFl_^Q)bW7HRwrVL(WKarDA;Yjmi<ojRx3j*;IuIHahTY;6s0q zq=8+YL?jCB-)$)?%W+|s~XEk_nj9DGpxPN!Z;m;jLu*MKyZy;u7nR1f+ zRtUnrVgE@)4s1`$K3@NR?O+&5)m{v!UWkQJ0( zp|Q47A}O!M>fp0S_BGBj_M^+%SW!dj=;yhUZ_gg44tfRJl9h|MAk=grIy_wGUr&@( zHgv3s&y;8VJE3*jZA2_>uWAAhDI&nb?`rC`<4McCdOdgyOTXrDDmsD%{<*AS9Zuvg ztBb?k&#YjS&fm9@8CM|g#)2InBYDM4qy%h8jH0nunfCbus;Gq*)bgm+%uXB!bj*3P z6%w`;&|6gzCG?79m<8Rzgv9PW8K_G)ib>|^F8wUw0iSBs5$07q7A_C@5{Aj81olt0VE!24L@74B1hitnr?MZ`V>7fC?fw_icjm)`+1eA)%CXtJDf)I zsoZ;ReR|ew1Y4|R$JOh5whXka2h>z6!Zi*1-f>ligHj^)mGz2jo_T>uiM3F@gRUhU zRMT&)7xEF{M%6k?J?3#})^8wuXvD^P%#BfpScoxm8+7rVh%^P9Yda;3CC2 zfh4GihP#gi5>l-Q*v+*AgU?#-T{W!acDDAVCPM!`HVzmJGOI!kM1|@%wWtRu{27L6 zU{d|FHHIKltI+~cOf0GWH^3a_gJ9Qu^eNi%a1;Od zSFRpTMXV~>;ioT^vnAVK@2L3PyUXYwikm}okze_0zts7KsKU({klQms&;P~`o#rHL+M=o)KwZo)>RGQEIQEyd@CM6r=?;m&)n|GELop`Nou z5RlD8cdZR)(O0e;r9*K`5w&#dHZYe4d-zape&U?iI}-QIMw$B(_y+W1-|o91ElVD6 zr3&`l$*oa~E1w>3?G0zC!aJ1fq-}Or9X8>lS^AbGD&@7+?~LqQP;Cpo?zia<0)r9G zuY`amxk?|{;_HwbA5K8s~g7x5Up58j9@t&^=Cy185bmJ(BWGFK(&wUgFt1-u;J60fxs zJv@|{CeNykcLMDF-N`M<+=_c7e-|ELo9r-KWLD1#_8dC#)u;_Se+>)KCXNSpW!`0_ zzwmkql6@+=zYm}s)jKMozZ(AoN)I?&a&Lq*S)+M*dmS44*@A&9jeue)&y&5YB#)4s0f)68SMF= zl?cy@l5E~~RL{J_WW|orBNqPQfIg|WhrsJaD*%s{H0N0K>7{G}(S8PY9Ik86ve}}K z;YmK5o_DcTfRz_p^4IxUwu-9jUa?-jH#2P4hC}cI?=*5~kD^8yRYMbxIdVnvk%^o; zqQ5I$y1ZzDzFojc7$UmG*XNqh1hj?uq z4;iNsn9xM~-!G;!6XvOejo9HV@Vb`^+^ZcTEi1sh`K7v_5xew+~Nnw)a+$h4dtEi;0?#owk3gO1iid zwj;+6EG~gkj)3yO`%e88;+gJBP4{p3svQO#ySHh>zUJ4(0TtN-`N;qTPXFuHsFD1x0l%Qb+ z-D}~tvyOWGN|E(>6JmMHi(i_wJYt@TDnfKB_QVY%2{?W-x?sT%DMS@whGtS0<1+>{ zc|Ow@SnwOuk#LWg%2n_oMU!`6E|tCB`hni^pfBNFA0k{-gnTpTN#y#q_;fFqe-4Ey zU&1FF8cwG<$CFa-9mLybd!fNm3h4+5t~^P?MQ{5Vz8`|n#RtV)UkCW4?%Ujwy-tk; zg4%YM4sV&*n!u%N`*03u6_YM}{-mrlQ%bSa7t-%4i!U_e>Wk2iZl#HSnZR#N+$+v3 z%5t&QawiW*Dn`}xwR)7o@BMn$a$L1$4N|5NgOe|vnd`JkIk6@EkX(Hdt|E0GEYB1Z znq_6!yAfZtH`p%S6*JoiODyid3z!73XL=cP+9gW&1(Rz5$I$VP%d6D2+q(MK*m zu7LIBlG011W>R_)ZAc0l%5eoU|FTLmHZ>C3ajs};PiHGqXBU4RL$m0)W!Mi)Adjp@6a^={3hjk~16*)Fvhr!Sf%~@za z3Df+`#~wbrR%V^7gFBj1yc~*V0!>CH7yqH2hm?tDt_{fYaySHE5ZViGwwL(VyBSqq5RFOK;456b;5Mn}dvTZ^Fozr# z9A!3e<>I$7BuEvPre+(!o7^gQ=S(B={Y9I4XX(CEWTk!tQ{Y>0 zZ=J&7S_IG5C1NVfW?O2~R;XKQHSEqw?I2!6#gE|i5sUbOw@);3)Eb>8o=?3d8k+q%|4sgVZ zw)JcJ?n-PKNIwT|^f4o@2bDSnOT_mmh*zLF06xT9Ao>sCpBpQWmWv~#3ws4J% zYV_#UhCnF~viasc_nbG=zv8fVqrw~?^65ZyyBfo`FOY}oNS-gIYnA$FTRv)aHf_Y< zat?E}JW5|6qKO*kdtAkKW?!^^>3I3KeqI7z32i(`$z|@;SlCrH|3~bok0oo?t|dzE z>_vL*7@Sz2*|!rXYhgBFDrQ^P6^EaDyc6IlOo&Nw7aOToL)M+{`tnWKIVXz%S`U~r zu>AZc{5U)&G|qkl8>AU;bb|8f8kn6*J+FWPI+cZWK||MAfJv?`wrprakgT{gI*&%* zq$PgKxYmK1&a9RcIeE_6`QkE*>m(CXNi4bvx;%6&!zAB-#hvIOzLcG0pbzH7TWJBC z+)b4o->Szagf*iu22r_OwQI#~R*~Qm$)kRke%g}{!8QBLcRIYjYrI3^tGW3mk~p)G zD<8ijzUp3470nNc8S~VZT?un0+rGfc(4u-{APB*d=eA|YLktUa%Ewe1OSS%rL@7}V z?oz_t_1&D!9S(Bb>{%K?{OQXYhFlim&V7%EPaot{cA^HUmsyrrNn?#7mI|GDtaC4em07NcEuWEc1aoEqEcQ0U@# z>nVLeX9q!FJ1G+j>{J^q+YyPtgW}3Nc3dTBA@}s&h7TaGr9i9dSyOY4BQUCZY|rgE2UXVFmX=WJ#-3q6%KF+zMFnPm zK(Po27OzH1;nZ?G(s<2519kU>W^@6`Ite}Vlu^(WvNk1*^z{a1?T&3oz0c+1)x)awx=br=qhtCx>UrI?iOFkaR`UV~X^5WO!pJOsiad6M_AZ>A6|(3VQain3ws! zqefD?>111(2)UHiWsF{lIdEYX34AgHt*4>)RW72WUmw3iAFYW3zWh_Lyu!cx#!w(L zQ^G9%)iM~u{uw2)j2m4{F2}&||DzmGk{7~aXb{AqkB^c}9kxr|6!tHxD1kA;0wEH) zx-0$k5Ku95{WkM|a{9_TG`yDa-ELmiZj(Z@h34;xGBU%tP>W?h4Q3@Mi4wgmHn}ds z(YE$)6sIezW(lPkdIpDx=N|RtXnkI5fDJx*hW(QJvs`+_03g?`uI5@jz@Lt4tKrx= z7~RE+N~GT&dfqv;0;OzANwohNucKsBcS}8jc%XD*s)5QuhpUg#wD0mN`ck4@$<_Y*&Z?O?iV({peAHRjj z)ph9=DgN6(Cjo=dLv5AQK^}?=%H9?+B>@NETIM_Kw0D;Fh~JBkLy%X8`!N zm-`ZH4h{-98je*Xei>A#%WI4}c+*`iZRlr{=@##=C|bv0ZDxg&zya^;512pVO%Q98 zBKoF^)Oa1bw{Q?QMY7mop|<%F z{%+w<1?h-*#SEteO{N-(G+N1ufMmu2ohvJXi|BUdWruSh3}ODa{7AzO%R$O9@&}Rs zIU+HGpXh)F`O8}x=Z^-N_{4gp>Juma*@YVElLk3fWP<(=>jg>qiH(3=c=7*PVE_Nw zOkO0o03Zw1#`+k~Mq{fc$S-O%4Lqk_JR*u-4qMavvM51~oW^r`jjo0=P+q?^^v`R+ z)XDfvzp{W~lPwa86exE+AFuOK??MjD|3Q$-FGn^ou^ZJS)14@I`$3=xmh?^4hP(`U zDi!w(Hys(%fyRl32A&zRuS;JfnyQ?lt$m1_JQjuS@ai8)mu<1k-fuYlB?wq$9bFh< zO275m-Em&h?sG2&uJ@(Li&Z)nA4n>=G&J%l>PJ`mQ@pRkc~iuqX&=NQ2)OljE>;=v z;x*^7sr@k5LScHw_{8LPc2@*B0#@v;^zf9rX><8=Is+p!9hUUD%wkQg;xgG`FP-gO z4C|!eS|THv9`13Jv%q<5d@^E(+ifIL=GBLM47$K$2n#V{ahDe?#DzM=F@ zREq%K6MHE*0`sulJP)O;N=dZw>@SLbGlRv(H7VocT`JZAB&QunEqzXL(iNId77hvhTY=5+eXPyQK#*~3)KjW z*BQ{s39K$rrHaQUr}O7d%o(H)9ZYZ0<^fo6a-%LJQJKxQ(1OMXp7pyL#fztGhO0>F z?P$PB3L{shG`qE3&1R)!b8elZv}!(+&ZSD3V1UiA{w(Ud$HVOIx1SGGs^grHipQZYv-_OIYu$Zy!5g?ILl$(O|``xOF(?JkQLJyU4as2+T7($40v2MH!Hifs!~ZrVDQ! z(aZ~(czeYLYqK&y8`Re47txvyrH;vwaw*;SMT4IENapHCnmXJ`ng<)61nLb4bF!Na zWK@-2AnD}=9f75Hkx|<@vy8$CShwCJuXnq$6&#t1zl{@TjiQ_wDsk(eHja|$iuHCx zGLkHtp`5Ddmtmlh*Mii4Udv&fsg;W8gvrG0aAN_FAY~)V9CeqS9CEcTI0_?yWM?y%Bc~>Oj%ZSd5!lk$&W?~DPj%JLl4TrT?R1F{3DxG0K-QtSs zXsbi!gePf3@CuGR7x(F6jkMNB5%c|6ZfpPW`|fjPgJT53vrswatk^ci)5Q|>JI_QE zOD)2_!f0-E!E&bF+itbHLj#-(p8)selQ)rqI9Ftv8}M@{5i8H-^e7iIo(r~Z_O&bE z<+@vnK|WY5n;UKL(^|bba?7!)KyTgH^K&nD!4=kYrYYnw4+jgS$KP`EYlEtlky+gc z4Y&&WAEJroB01*f4;&T|f9mnM_V#Bp6}Fv3*&pnJ0X7h}G|W#7r7uwT2`j{k@(m)^ z$>sZ;{E?8+v2KV=0xGVZ%PP7vkIVM496sIDYH=BEQWj!CD?~gmq%9J71ij_*zZR1- zgAQ4|t@JR)om*q&0%=+_T&m_c@9Q0PE>Q}U51sq{Jb4_-x+C30q&4x4x|v?j+kz%; zu)?wWAKHQYBNO$(iWS`cM0X><%s?efw%e0@@LoM<)UJ!!4+6n4$uX@0c}9u7-%?-<8*qdodO z%l(w3eCHca8s=nJ`XldhFtYiyyAIv^Ux(t%w*NwDwX!?1bnHBrwVLhdx;DB%#$G%u05mpTRV;#`-f~O!n)S<7bB!_H|>iIp3LCT@e_NQ(tf(Pm(&>{OGP7WAoE7$l|%I_dHRT1@#UdW>AwUuQ~k)f>)DAI*WySUs-pg*Z#2p}LTOfftYeaj zPVmHh<7yqB2<3izSP21-k1*Z5^)cBKf~CE(;i(bKo+qPUq@cEXX0x7B4ym+V432?N zN9ibaH93;<+;{$v)+?w*O7|r7tU_|r=At^jjQCX{tLm>;r4p@z+?E?vBFCbXh@G1a z*g>alCdqlVBLF+R?aZprEg3A1L~fm9fzMyPOeyyGRZD(X1@V91>|+r6bBYZFK+K`X zfKjA}0Mwy%gH}YqkpIGj#nxu=qUyxaiW2X&QvOluH$QK36DuQh>4ZFL5PcbIwcNu8 z&Mr35u8@)XmokNBJSkEO$4`qjHwu_T!}C8R5XQeG5V=}Dv)i`#(%{^Y7)ng)g585j z`?g*>D>8cgHb{14w%s-MvZ0rskaxtoZfqg6|Rc{D(?D(xW=OK<(Q z=^A;)q);wTZbDWr$XD9bN@U6VK$G}l`d5c9fn6nZUGh}rqnRw_7y;$GMlq%_FIW)b+t%6uv!`nH$eMG_2@_R=PnzGB6t!Q+yWz`Qx^ zxs`W-(zvIEv-nG-2Guq9EJR5QQg9%8NJIa|emB0q9^u8A?@W|BwY;bsMjk$bFyw!W z6l*D6AC(s9_m~0-&7SGom3G7VsM!!gWS9hBaP~;lv_cq0hgFHQi`UpR0)s2VPCsE?94*5wq`DsfI!bdV zKWNe?yrxLPX7NEE*O}QpOjw~Ar4DWJB$DA!*yJYsKNO&vBI+#s^dsQ$y2u2VQCV+WI5DXPJfZ*Au~6%hXcB zH9Y97xuu|3t#3JaS6%yrT^)x+L{ioMjr47I7wt%2$5&VAT9kV0xlf;6@wHaYq>gjH zX;YAV3F^RP%IfQ9@GRcEi|74Y1KGOp4XO9Y>`r{4reniKMiU{gDLc)%{nRn_thnLP`XUyvVTC90Crr&xhw;8WaDRtR5 z0)bRl46vZ?U;t2my->(I%j*BO!ll0}aLftiY=}BtX^vzuHqnpG)X3war9xBwUZ<;# z@10S9wu0d$-O@R%EDC^fgTum^WS?KplVn?M)azZJFfihOwNd#XBuVXvtjRy{<%$V?;`sXk zL#BkuOV^a}ujbJABs>{!E6)D@!V|Icp979MJQG`2>R;+<{3JY8ITu?$ec|cM!h{Zh zANGt!e4+Zol9O2gHaIlL4FUZjkz}sVmBdG8FWaIg+=k*MSFk}$yD)dEtAWB=W|3b0)i2EmERg&Nwt zSJYZY;0=sK2rGy|P&_k#_c`$EEg`bf;xtihm%q*K--n$X^(-9xN>l;uUv7^9FjhGV z%Xiv;Hr|o&#C%P5cK<|Q05J}@CQ?*#R{xQBV12qK$o%}Ne=g?RClfflK+5(X#!U8H zMgri&3AsgZn7^;u(^Ed2>ZLA(Drwy(oA@@tjL#Jkau+SZg~gL$Q=Lbl@FL{A>t2`= zd79Wkq4;{6Xsu=o@~en z-1TJ29ZrI+J5C3V%ZA%(2K2W+3J!#XrC zN4_Tnr=%21VX{j9&{pmk;JVf!W>(c4_wq93vU=@#W1$DV%xf$bb3oFfhXcK#rDAkw zV#T3f)zLoXmr;Xd0EuZzKy-;=45mq5VWX6b8EfJ38yimVWOf>;NQ)!MDjB2~_iDzz zDG6Z6C{o7zVEhKctJ!kdLWH~>Dj4_tBIh$1E=u-?+B;<2-3f?>$FuBN|1T^IdUBp9 zXZ)9V!AlV=@6{yR-@89^iy)@8kP_agVlBpY;)AHi6lKDlW}7ixmb@AF5_H#I#Sf)@5GADnO=%6V$6oEx5ZU?EnVP%sv-St+>tmAto_KH z<;ea;c;A6(Qn1p0Ausq0;l<_^aV1fzfVnt9J({3>N8=37X3-buK)43q??IFEcCr9; zAT3*>RY_k({IsQvat%=q6~vbH*=DLA$OLfEju7s{a-UH4SES6&oO{n@%f+3gs0+!T zL%{noSf%N$>~?ZLABCtFO4!yzOLAedUbz_9GMI_EjN41 zyz@}y)v&L473*fhmL1=(M%GX2!l?f2D1A(bcy(9cdur>R)EmvOYdEBU42TQs*X}^E z;1dK)qDt})b1)kozW&nT-GP*}MZ)r+j7QLdnHF zoHuDMyqqP`a7^d8lSrN_c_pgp%vsp@UVdXIkK&|7{SL?Cj9_gG>-zK+=YvmI*zhFd zbs(O3w00WC|LI(}H{l+mX`j{yYK~taNFlW;e4sxPjxoFW#U!C*+%G`Q*TAL2n}#%^ zFTcJ_XiU4H7;+Ssuwc>~R`znmtH$Og3|zxgnFSE7?-mU>ckjv6g~-p1ZM;>FQNuq- zy#4$aBf2bKWioq+91L|c2?13XQ8zOX&#SFKOn_|CO;(!M+jYs7gyW2|;v2&ScmW8P zflog4(mkWQX!|1cOSOh#%^~Apx0Ph-sD^K=lOv0H9e=@MJ9J+@)?kaPxzkL{mB33m zL!Hk%3Mzmj>N=!6-iA-T!wT+H88QZIQ-%{vIAR?P0okz}ZeKRP_e(?k4cf=OjK0U# zC)SMX4RQ&hsDPK8iu~PW&k?Kc5&G``U|65K*pfGBB$O~c6h=f}>0aOB!}fjD-3dzt zCUq-abFxiNMhgFUk`ksXU!NQ1*T~xRWY-$)l;XImqJr&D>zVzZJzCt)Yx*Lt&=N`0 zB^IN1ncL;T3MCM{`bn*FFhfBDeR8>ASOUuBt<0$J5+Bhbp@UK~?j6X1twXt~j8@3j zd!BatzfDrMk33_+|{jv|Ae;Q>v;UAVDm{?snSbYVujr*$O1x^n7k?+|yoSYUYE?)f; zQX}wX+t$|LO(Vbntvhm<0~RNQ^Ia`-&38wWt|0bI;)f(gs{rHPT7IPW{ysuoecK=w zwJvcvz*A-GMQmqx`;QRY!*q2JuM7lU@J>M976wzp7yJPGW79X?%0t%KT1<(OHD-T!D1sBr&F<$_OR_5~CqX=Ch}l=_q~!TP%@wkezR}?(4ziG-;LiRc9e2 zV8A71d7}cz&{lgvHS-h}LD*Met9}gs8}L`8{h+}BAz*-5eOodmW_~!~F`f^h{sHkX z`m&#g66vMdABO%iK)aJdq)o-HVIPjgu7?&MUDf#hE)?wx(Cv>Q2MM|~+&MC&6%Aj( z2}-V3UyQ=b?G_2C+OraX)Y3Qn47MOX5cz?UUsH^Lm}TL-53ov>7$6|Kngy2FJgn*H z{mUiTz_Kkx1YV+U3qd@f5*)aShK7sM>`>=u7m!8^$AMKsIz^Y&S<9dEL zzHqi;Kz`0GnP&yGfiJ7DW$2N#5ub8J5}w1t#Zr)PyL0sX;!Gc{>$d{x%sj%M#LU_RI}a<=!f#_tAuqMUADx-!vq?o z(ZUe2X+M1rdEMCxQ96$1UHf9{=hKUsTCEq?If(1$?IZ~_9lClKc! z1f-`E6*C|jF3*vut?<0-Cu0Pv(Xg#3iKdpdqLx2@Y6uV;d8b%pjsZx~5dgB&>>bt3 zDr5*MHbk7@v61A~U{_7bpLpE@Zd()tKwfib@rOU?P)PO(_y&bDQv3^id7psqk|;#* z4{9Z&2GHSkBCgCq!_+%?YN?p_qY+_Ap~iWQrA!fy*&QO~hm0Jv9&?rR#!}zfrtNOK zg2@9(Gf&q=Rh2bb>DMgBTKd*;F|p~Ysb{*Nw6Pfy?Q#2}sjRvhz65_gI1NPya&nd0 zhgDRjD^~SBjE*n&YyXko&rdK%gA>DngxxD8Ou7MVXW|>zTpetnXwu2G<)JD`BayV# zgI)lx`Pej+a?*>|`l9hk6F&Z7k`e0;FY~B@_@%(vAtM8wNNE@}EF@yHVhqF(_skJy zm4(%bev3_c-G`C}gsTNL+-rLc?wxD!uLM?-eF{z;q2Y;Gj8 z|H5Kxm0T|wh}HQX7>8TC%EE@rb*0@v&B1w%g*%tlpY&2kTy5y`A=bLn2)Ef28z`Rk+rC#jjnz^BTIsNUoI zuUj$2hgMmM8uTybO-}!}whUM`wd>OF0s6+Lb~a4^kd-UBZQxK2V|^w@*NEOYIwnnf zF}V7VsQo`eYs;pO)65m95)2lDe{d2K=;LsH?z}o(XZ?9zwF##rF35XUOePVjy)NaR zMsfTrkn_4!5teCuj`;oJ7b~zj`O>sP73_CTn=1p7nOuII#0)=cv z_`Fe>^7_35TPi_g@u5~N!qF=FNwv{yE+{)MP9*R~*Xbi)b@R_<%NN_p_Zksva2;Sm z$#=%D6cZ)+lrb?n=`Ix2K%folAeY)LkxavqOEb=vm0rdS0O#l&d?b=k)hVy=^+;u?!dt{Fh4e z3E=W&#fW*m!crmo6K!c(h)Jd=QSf0`tpCfDC&=LwY4M|lL_7`5?ETKzbUKpYL9*h% zAWyn}sqRQNo>;VdNQ~HsNU(&95@s#?jmUcj|3g?-kS8GIE2n{fzOi`6-B2NCI}FS- zP{thg_92Il8&sgBbfhK*8zjyCWxN}?7D~L7CN1I!C|PF% z!QPQGsQ@DY*+B8sRKH_Wb0i_c?8?r+K|>++$If{`7MI+i@p|6vOP)@l#O77rP-mWd z1Y;-;5~U?1vz5YNM0H^l5p_%^@8FLzerMS z13d=-!S6mu{09U7nR}KZ*|GVEyXiW+3k~@J@$Y2)F|pE`B2(lnw3k(ggS!Kas``2E z7t_wqOk(>6xNq$7I!_Y)7W|3T&vHx5PX*KWPCBvaTpLpC6y(H|@{Pr9nfQ+)3>D-k z&s?=u5gqX>gtRQxHTtZ{;Y8NwfrB|YsEx*gK=OOyTy=`+~aMOXhc^-YhnMb8|gN+DMFvrpmnsX7wJ1+l7L zOm5P3UXK&f5hg;n{%n-*R#}3VEOpm(jWolx@&A-kd*ku7BO=lkc9Y8S1l4V=s~BhN zXSCwZ!D^R>JYNUD0#iAN+GY7&{`6Ahg#cltE}W_r;>^<5Zbc)pD~8qZCAsV3PskCD zOf7BX$cv+$@$7_H!Nl(FZkWr~6UJ=bz&1C!Qc?S{Mr7)WBrepGQxBzZe#iP9)~<2~ zpTLOP6BwyPv=4q#?=silxpmOCDAi&JX!rC>pV`$HA6gp{@i$FHppD^Ga)$@n&&43s zzh`FaN)L#Q=;3P@+<$^Grru7HsN9$lxWAKH?uT@Ir|Xv9i+Q2as1ClQ8IrC-vy3Lc zl83ejm(>17IPHWn=a*etwE^p%BxJo?Y-VF`A+0J;wM(elq+S9SBr^l@Jej9vt_=-+ zG}16EW2@HXjD^0RaV07j+c)N$vU~-W@S%P_lmTc&rbjuokk;e&zV(e35-c2!uFL}Q zeFL<*phIEJ33@=}u(%red=7}_eUV?NpNCTd4*^H|l211nidgGA->Fq>> z9>_lAtauaZ!Coa6Yr@KFlrsWwgMRXYh=MusSvWxi!XLn=U{$rl|~qd?~07X5YG z#M1kt(CwDghsMRWIp45{mTT{ezw!ve(-kQ)2A?~9-}W19HpB>!%#aP>Q;%swg60!> zqV}s~QNAYjb@&Rr_dIqIQwTkl@_2Q&)gN@j(HC74d6*ycy`Bi#m&8ZQMv%(Y7hV4D z{wX^!!e``Xmx<=T!$J$XqQAUOkNp(sV=tSxwYH7&|CINZQE@a~7ie$@?iw@8Mj!#;Q})F<)^VsG29KqD4>aQ`Pr6ZYU56J*?57o-5IDP{89)CdEOuhL z0By29QLl~I6S!%Hy5u#_#XL7;*TYEk7oR-9?k|xdUn?W52vzwcff=6PQhh=4#C{D2 za7CSMsxcWgrpryw*iehoKgO)GKU1j!s`0|MOurFR7>9D@|J=Zw7GUzKuDztc?BETb z(-nJzO>?%4GI@|gyNXJ1^lrPLSyFD}us`5vtXgmW(q{;G7<^4zq`D1T&WA5rrM%H< z4_hVTBk&a6$P6wOFNd7G(W5$8)U#KwUylrS*m;93C?JVz0Ct*8X_d5f#0u~5=p~9& zl*?EO7;#N+&v#HVe^arf(UYYwTy4L|IIPi7jR&@1GgB)b-u}k^-2$H8WPc(+)(H>W zp-+B;x;&nR_1t9bRLwx~BJuIgzs$$HUMg(@#oKtlyHq)6#YW+MIk_+@s`DMWLN03V zO{<(gLaGN3+6Vg=&H9R9fePZefbU>dtI3NOcI~x@9{^Ws@_%tK?O8+wAn0T#q=8B9 z9dl*C&mNTulbq9c^R-@ioi?P!RVHP){AJg)_3WBLE*)|M zJMupe5nw1>Eua@^jasJQSUPkQ$$ZvqMdVa9bC{+tVBGi3uq4C?=iPtW0luX1{x2T_ z#l9iey$-!TDRDqpC6hj1TyJ=aS2(RfdwpEv0`>;JzJ$?$yhEdI-_w&@$YGdjG;sz?{1=<*-)>v*_+crgp(5_R2Ca_l)F!3su407Zx&o6vp<)4LEXZ1LZaF{z-;=H{ zX*Si3PaD|C|N2;S;g{7Os%#FLE6WdK?Nb2)MLBDOnf1M2vD%!mR9L3p{h^NYiox)`BqVEeBEX+@zKW=rl+0%ubzs4y>! zZ;%hCOFGm2uGIls(N7!x1!TGRBVG1>3<;zZlo8WWlKa7v{;y>}yj!*gFQdrosCSKC z(3CxNuAWh=k)J#{z>{pEpKpu8Dt{~XhXJ+2=BM$#n+#->@1z;G&+J>H$v|SVaiK?v zX@dz!A}hvKS3F}Tlpg?4iVJW5j2~8dvKu#%C6oa6kI+o^I(i+6a)CoJr&2GaVGHQ* zn$#aE=ObK3-6g^Dsi->C448h?rD17Io7=xMZd}1fjr-F$^)RIpyc*Peu;)zgn#0%l z#j{fE-#Rx@u@82mwQ#o|)s7%STh?I4+2H9a642QJCG5?at(VRa%BjgO3e&Iy4CY_=8H}(N%g%;;wGdwwCx^u}GHB5?zas0zL!3=M z7EAb1@m6?Gd=tN|c*Q65zm4`#PIb9HIYX&~G9-r%oZNe`EK|D{Bh6LaV(o{#bB>d1 zW>t8>v*7cV?EwaaAuFt0y)VbZF1Ypa4)R~AkBltJ6dQTaPck^Fs4wNBAbk1u`pO1bWV@ciR~brf6*igVMTJHuOvzYLZ|9V)tJ#GYPXQ}m~CqpdX}pU zz<=gnf|aI{02u3={D!Tm7y(+7Y)_|p?6ODm(s^M12d`>y6~*=_Y@6q1MoFAiwR+}b z5Hm8-*g)oISO1P@qE>vcela;oR^6cbwoT%X=DY;=S96|jlT90x!R6?H(3uqUI_$3# z{(O3z5NYA@+e#mS`683IXEi~MZk?)?>T4+nL*?P>J9|WSm?%33TB04ZqiZb~AR7;3 ziJ4Yact{cugApr>BmxrNz&YyJXiyYwPxwe3d(*-Sc{_XSXD8Jsl8zXksF`| z-`S=LCi?L4N@@Dj@)T~aQzha%uE_CR z31ddh#3o!v#*`>2w7xj&P+(H^k(ybpB7XUiD^b|lQLSe=1m#(O2R`Ro@r=jblJQ;t z{{1JbG_rXi1IQ~^(+K}ym4>Ts7coJnf~fIaKg8$vO276#u#Lq6ou8w31VGVz&+-Xo zb*|1hE9}~i+*z1(`pYRSpQUc7g_F}xZ4;5LVwG{&E(3zVjUw#Z!TkY9I>tKu*o5v5 z-i08SBhA=Iao&S}5>fx0ku*zl8cQR0%P;)pGoZwm^ z9y1IE8j3j_fak!9g??lNK4zgacv zT&fnIL*0)I^|~lna&&WaQ8mr9rCv)jcy7X6c?MAS?)-f?PoEnJ)9$D6Z4DyxXKz_o@ zsjrc`_#UsCh)S6LI#GkL>7wd={w+}zp2-r=HvOcTN#G{aEvknJM4KcI^J8N&`RdBp zX7MxHy-p}+K}+?_h)#N(h(^fIma8fk#F4>Tg|M^ICWeApJgIK2QU&3-U+ec97X@8z z0uz!SlSpB6&0n0Em9KBR-`DJP_l=9x&}@9{@h0vW)}}&BD0aJagZf%KMJDL<43Dq< zY!H+<<=n*!;VGLdcH1>i0M>6te<6*!e0I9pX^9eDFdJyFoLXRMTTd>iZU^xv*Aj6Z zBkb*2CxkK%FrcX4Z2U5(>N1@#Z$@}?6Hf_!w9DBZg4*M4K-|`+OVoTS{*YYX7d*y5 zK4eNz)6{%4xiPU^x9?9Y9)|T5LRK1|ryT0PGcf5pX<8$OcPNBC7vNU2s_LZjYM-$z&|n1_etud(U7biWGt;hGX^lNnmyjL@w3;av4dO3p#A z^I8O19s>wFrZPm%(b?t=@H;yYo>$gT0uJ~qGzuZDhY+o;CpHTW`7jqjP*XA#JXfj; zSE_+Iy~?-|cjeoCdxs5H(A9m>xICY^1@uvzkPU+M{614z_mgmTxGtu?C%Dc%aZH&l!gCp*BHJb9$4&S{6&>F?d-!k{;0k?%= z4%e+p?~_b@u`LsApbES4K$3m=RlNC7BhKujcl%NkQkEw_lS#-vdj67QX#%$ zl6%*qMDA+?$M4_T9(ilc38lg}4Nsjc_h8mz4)mSa#p&C)3Ptm*Y_%ocT$1 zxLA+w4diBQ&%^Ey6?v=2n6I@=&9}VKxMc*JH)t%Eus&ocYPgjrt^KM(kpvzT=-&g9 zFOOFbdd!lvspgV}rl@}u&7MgIVjBH}n!9RP5$u?mJ%5A4-WL?GGj&vYl^abMWfzKF zmKfRL1D$z6vdbXyj473tw9sK`IJnN~K4e84ha>KeYLXTswOcgk668fU<6SiM2%;|v zf9akDqCRF4&eGPmXC!H~%PtH+5xH_-5u6VuiOWot*$?DBZ(QFO2H|xMw#rwzDRmwW z5HcwD)&xGRrY1n4VG?1+;vK4tB&_BhJROP~+YFb0Mxa2`1P2FI%P;ofZ`J^H2!BQ)AqNIy-9Bq#RAPNwKgFdBA-B(P+K_@mYyH zUSn>c)0%)|^oXE;x7cvT$HU{bZuO8vdmpVhd03?BAXar4cTx2wuJta?vL%c5|&7g)kIgd>`SUppOQ~Xp05bvCHwdjv-2- z3}5(I9>(}baDcKIgNwm#0`ki5eHn5QFDHUM#Z0iWu`}U#K42Ca2$4Xm>0snumLD-z4mfGStMa2g~lfSgAOiXio zm>0VA>>@3y^=)ZOPDrqA!pbbKUEoK|q*c=KcmvOBFLX1$&+}+yfcG!^4_)`3H@aec_^>1{b9Zwds>z4b z@Bc!;Uw5qW?#D^<^(@S-F2{G8)4}=?#OW)5-H{Nt*O9x>62;W2l}5STTbKx2Ki*rS z(S2o~itb#Hfp3<}G9af3zx*@*QCM1{SMJawOcs~-mG#5Mok!}IUR{26&>5u6FtkgU zGdhd=el~&JD=r=T(s9(^+FO+S;T*FI@GtJLtq7|MGtO}l^)v$PaRxNFS(MwBsZ?FU z5jHuCllR};kcMJK3r`oxB1dff+E(DLECt@%Mk6BV>|dl8!0e5`zH&e8Ol^v z2FJlX(ho;(SHf@=*Vb_O)!zD^+${5bf@(TXSG5(i!LpM0{u8KUa8Ap5(#S-&tw287 z(K2iuBy>-FBF-r@g(Y&$4|0RsC_E2RS1zdXh62#3SUE#BT6RW>&Yx}HTM-}rQfWlI$uy{w7m*g|=o_M@tle)A$~f7`1Ys zaf~yytg$|J1oxOHWp6Q*7E3EpmEiw@&wyAg_DBg6kX;J`SMW$4Mo-0iHRph{g~ckRmq==9C81>WBIZ0jFUFSdQ-`@<40ci z{-#twwth|zBKO%AOezs}9><#*xx&;JC4s$_?hv%!3J)b9J@!J_wI)I?Q&xt8nRHu% z;zMbmNFon~qWsPpAar_E=^j@GJ1=exu+;8d&iFbw)y1=(Jx?DL_}`Al`|Wl>O(e|< zOT}kQIChem{hLRR5DjIi+VEjQ#GYw<<{@KrF*-k z*P#3mR*sH|C<70Dl;D#9!DORJ=x*eo>&55KrU{~Cr8X$gwY!}J&Pn-i+u3> z86(mhxXh%Hny(KRUmdVby=i7#GbOrp z*WwD@e!M`GrSyRy)v$T*eYXKoViI&WVpVqs`@WP(Pn;Uzy=DqV^9#R_EUxAMs87b# zg2~3p@fJDy+{vVE-nYf-9_z5%J6az*YxkaFTb){eM`jPIq&5Y!oC9U?Qs2AP7>;y~3>jUtP@XKVWU@8UE4HeF2>%Mk_gXHE^B>npmeEM&x$!Em zt`)N!7Ec7Sw!D^3_(yIsFRr)-ZlrIh?Y-nWef-YJ&-N|_?U_|Mo9#^Pu+Avvb3Wj= zPmhrFY}N5_>kkCAKBT8^Q+;Pf(Qk~NrqaoNF^asU=II^f`0b-6=y_ig6xVT%0L@d^ zdz>`DpDQ7kqtDE*j=_kqBBJT3aB)IegY+D;1zQS4ogkXI>8Aq%?P0}itXVE=UB8|_ z0;eEu`&n1PJo}jAHrVzc%{x$E(O8zx6<>6Sx<#lmbt zH6i7G0temm-Q$TtLi>{|=UX8zKLttD^Jx6o`U$^03UeY2D=*uu71v(9kry0++zN%o zseU+y=yigVgSP`5MK@5S=Xr3*D3)rlGeyw1rwuS!*6)2)%Y8o=!q?t)@CU^kOfCm; zM$XY1PHc)iRHYC-2P1+e-mPOuqiK<*BJ1yXqkASc2;j`Z4gj2wJu7D361bh>%_sc5 ztk%fIhXY)W*UjLpzB6tzE~E4*Xi5KbaUB;=t+%B&`dy{YXnmtyva1w8JwJqfUApu0 zWup*W?C__jl*Jw07SY}6OtnUiN-znz(1o)s{mgx>weyjJ`dG2GALMziOsgTgxHy>U z5XZa~TWl}c(M~{CtECnTP_riz(l@3SoB|ze{nk#%;K~8NadUh|V%WXcSe1MG0SD$V zGOT%9@@blFBa%i~9Ezc7cBtAb4UlIRB4)}7(U!~<33wqD>yW|9E3!4yQl6!GEB zlSZY8myHnlntFX*AS(9VT|-$|WlT?BERt|I zI9Rp%M3&_4A~qH!a>+T2#a>k5z5W_sK8S)EY)fr_mj($#;bG@JaaifI z@YL)DI3t(NinYIyeG%qGGEmoCnc_Uekp1+d5c??$+(6ZCF1Cf~=So^Su$&~qmqh~P zj5v{8b7y0NDiZN^jE|(?Hg>Q0?>n;a^r_#x5W)!tEF_gChk|Cc?TOgi_4J^>Z#09$ zcUvUrFON#_l}|is@jpy2aPwPsKiJUvpTG4l^y|hI46FKD$w<16YZ|*MFMa|&x%7ZktzQ74#n5dm(;s?lKgv=aZu&mZ0+0Q(}`XDqr)_5JAknw8mUcd+6x zCUY^}k+MEvYlC)Z<~T;pB1Vx_?nTHII|Z4Uc>gEjun5iZb9y3t0`aq9jADXPa5;U~ zY!0zn)HeoUWr`KSm=qh{&T0x2pnC5-GmjeVNg-s7_ZhOc+C9qkh-SMNJ#LzTJm0yr zi$o(n#k03~^@;6{yb$`h^&YW!yK2>SV5#=+FY}=RP~CgcBTDl2M!p@eam~JzYO|2A zaeLYU3YT(Q2TRT2{et(%S zidujKcGtz@J9n^zbCGO0sHrE~-`dn4aSeDiA~QoZowo9DO{1%)=6bTpte=G>$I^d# z*?xt>Y49Dz4LT05{!+&A#3Ub7C>1s0ljCK*gAO9{VxA%#jnYO!+OfY8LbtLF-L<^k zeJ!wL)HA4q)C!$%bkh|C{n>~rcUX!)yT?P?9vv4`bnaZ8cMfbM3A4VYz^&JX*I*E8 z@&eR9*t8sn1s&H{>e}aT+2476c#KLe$h&IfEa?}3>oKa0)NtUj+%gtCh%cc_3&&c` z`E{;HB3KVM#9n$f>eFfxP$Lgbun_3(w;w8~`Vf8C`#>v4KXO3`QO5724Hx0z2{N8- zcc8{Rpv?^~c-k&Dd?Ljlg}{({0ui1DEo2ratsr#Eit?s`AJSWGF|6ZcBu7?n9ns}P z67snaqV)CsMx9zg|h~z#%C2i8Z2se;`Gw0g1&?6~F5C*!0hrY?_dxa`kdn4M_9)GV69c zye;cP;!xe^{LgKpK#`~^vlqV5IGUcd_rB818v+?3tcw;7ZIqjHDdO_uMKL2|tEVq0&TYQ<$8H7>$aK0l zB`;53tH&oiU&#iqZ%_0@nKHn(NT6>? z{$3P&hV<&VEG2r7-mjyPmLoQ!&=_z{Az?p4#ihYF@0g#zws)z3OFAshiJKpFzDL&= zXh3dMpje+X0!D}E0S9IalV!FRWr+2-f70E%AFT;bpfHs4ZDp^Y*OQ^^KH+mPeS)fA zm0d%DSVl#g9Y0u^>qBCyeKJ%SSbY5k;4bBBL#k$}k*;a2T$;~9Y7#mN90adKp! zjM*9!WSR#MKGoE(@G;iAU*Ozq4ogyVGZk9EgUqoJ!9~@VEv@9tQ?>2YwSc$$W&1NW zg2B5xJ@?4STivUHU8u{JR}|3ps?$2K>%j-Q8AV+|h!TmWH^@gkO+{Ju4(tpiiZRNQ zT5*%xYZHmwtd`<;Da2`M`rH$0mOrp3p5u{DXpix+M}COoSArXV&hBX{Ji*Vu{*7^o zb4k4%2kX!}$V;Yt_Y^mUS-HcnTWF=BCeq* zczUT7Az9Q?tV#gJ)s#HyefZF2@D1^YGjxKRw*AZmq*GPO8?k83ikYKbV6(YxcZ?)Q zTYX8YtbOS>T`iEQG<)+pOC2-V$Snph4NE_W);H)>HsolkPEg0ruhqAr9A*7f_v|5lsL7>`mtl(^z1xLTd}xp z@1lCCtZ1p4m8zOiyw+%!WbNL0@sdZ!2|S4Vl=G!}OSYH4p;CxG4EUh$$vIGUlZZe` z0XwPZ48rNgpyLN}S%g)JVlF6aO53xWo=DolIzP7@G zJ3f7d$&BMz8oXH+>t|-uEchUU6lEKB#e2R3o#6XsAS;?LOqZCQJGNveY=}}67M~9s zYMUaAZYL4xcw2kOGf;;$({=Z=XW40?_Q-6DstEDcQXSAarfa}cS~)89YZVm@V1qZw zLQZ_BB)1Yd?-? zgIBBGUN{_dzlLw*S8SuX0|7FeZdSOJnDTFVuV;s7*09XH)>o7nu*rZ+`mK*~XwO|< z88d`r%Wj})t*hb6lh->tU8pDz&Z7^he}21t44n;yuJ)egSeKFA;w~)PE0_IpFZ4&- zrC1am*>%|*0)I^YBu#b5gNmn5|)UxTU9nh$^=HQTUi^tXKEe!)PAqdn?nDI zI~imkdw)dPD!1^EaABW(njwheI6w#sghy-P??(##Jj!{rTB3X_Q1Pr&fsM0eDtL+j z8SDNfooTsxyM7yiS@Ln_@|BiOJO&5)jtW`u7A6h+Cao2UcJ_jCrw^9+uoSvl(Fu65 zji8E2_OMt}w&gYcJ=&z-I>m*-Wa z*kS43DOq?JrB8P9U7ix8{O)pEq&v@(bnDq`=~rQouHRjL2^G#MNKo zK|=KQw2}ZkHk35Vm?exSljzSQ!f35-9e!k)){CG~a43rnZ$?}xWdVD&2Z}26*UPlq^5&}`h2vxhyvjmfwY-=-#5HGYH z-pbjIBp3i?y`(b*1cuu#KUm43Iyo^d_+xNPJi}U+D)VGdZuxURTE}vZt6{{n&VrGnnTp9*)mbS8!VvKPd{yO!&I4_E# zlZXew__K518AH^J*_IZ(A#<&K#rs3h0OEp$1u1>aAb|xyy(JChVqv0Q8Z9g3Vqg6- zw?ma0I5!|%FLIe_{y3eS~s26F?kx*s?^uvh0NA8a;d@AlMnx1@K zg&YP+oywupL~=F%W}QXMlj4D74gsk`eYq_ew$R_}BL0U-+p(fkXd6t}q}UHs8YZjm zec}uWYe!zAIc0yg^r6cwOsi7obW*yyUanu`RGD5iEf<&o|U$d zJzSeNtMLd=+eSGVrq$~?qx4gsGE4;!JgR3F?HMs>%OI6Fxp z$9-*B%9VW+Ez{IxRmSaF1y|PNyW0x)mC&Xk!>GI9Evafw@*7#YsLJzc5gHN9t@Mc& zaA;Pd{L8W2MOansbe4}x`BtIol}3Pl|4smKak#@iOsd4V}!D@S~Ci3Qg0= z?Y$SX2G!UltKvSZd%k(*n{Hz%QW}JR!c4XZ<}K?%)qNe7t!Bzif3-?77E>)+gxGcr zG9l$^F`^DDdNRn>WP7`=eROc%u>w-24~pIn`I4jdLYo>Ibcvzp0?K+201yX+d~-qg zE!{kf)P6O_6s8vyKc-H6wtn;l*}*WZfSh=xQXe0K)XL z3O%#T9c$ARvVItBL*UHxHtkd#aQ#L(K&IFKftVcclkP^29W4c?{rPuq2f}r^dQ8eH z<-!S3&yCN%DY$ak2C&Nd(O1AQY+(Or!n6o?T`~_=F_W0xV`{+995+zhGUT;-EmuiJ zYo9uK$6DiR+aGA5fR(cs-!PU<)Vx@`y8mvUdhu1~123!ZNIIto8dqqOna~?%70j90 zt7N7DQdfSoizz4~ZcT0W_v{YRwW%=k@0?0rGANT6e2EZP*Jtav@rMmpf7=gYu$(mr zJGeoQW(Zhd8zI7P574Bi-tQOL4SNdg3SatT32xCzsNPv^CAN&?IROI}sWc-yRbV3qC%hJhM$SKMoS zG}ILFRuF(=#NST`Cd=-QZYk&FjQE3GD32Za!QHW*uj6b^_uJh}N5ijK_}Mu=+ZC3K zj?xuMGYb{g=DJzpsZ)4lqvT6lUiSMJdbsz0)N8f5`>4x6y*T^yCLc0H;F-k4dm)r0 zJZqn~yswoT0-02mABsYG&#tZQc5+_KAQol&r+hVPvmpckW6{k5cSeB!(DQ@jx>`&F zUA6WaC&GJWvtC>(-y{a?AFYC_S~K~tS(tTB&oNXWB&p?E*MC$Hvph_J*XUMkl<9t}c+D-Nc z5^zD$jMtaIcyy>8#t?<*zOT36=rCQ^?m4LmOVQS!_O~!L@Ut51WYphFtPu{<{RNml zABb<9sdq>&vm`N0cH5-u3fdj4b21^S^0ZVeda14GXKvp>Oj1dDz4PHiH#m*Vjd)YV zlw$@1`wfQMovzX^t)W9Z4em{93XuX|lAss;UG1)`>rl|C5a*76^taI#N^`~c?*s&b z;T&B7Y}&wj7my)_QR9wZioy?D4}IMB1a0>!y8{3!PdxhPhg-lXAc%J@S-x4s^~(um zn08+P$_y)~ZfS)2GOsulSCRg`2qbFd@ZlzaBeR}%PiuCsSIGDrPuum?l~n{#cFfY_ zJo_hpObubp6*%pRfssz&+J3c%Ig!&26@&K*B>_VJbUOn`!|^jseK?57zSXetJ95Q! zx1Cw``~rXR|AHc0@0IKnhTOJB`p#BUm2bUmcmpj>u3*FJu$<)dPxULG(>^ko!#*{} zwy4BFb1n_AxAV!DO$B1|Gkax#HzBz+kIl?R2?QUI>Nw84vYZ=6P%8LOZ@+gU%gLX&Eh6Z`QX0{}b zTy#qDvv@CZ%<`+w+*piC2nuIyXp&gm2DnnXHJQzotFJs6C;gBrx7DYQDhCjTuX$$T zg(so0-~1PHq?n^>^(sGU^O8a38H4#g5k~NEyGJ!!hGx|*B~Lnc%07SAH&^&cG*`#y zkgBgdLL(#Ytn))@JKHl#YL7vZ0mOTN>j--Pd<%wx1NS6HU_WLOIS%`|R~otjN8NEBUsrdwaUXjdq7{##hRiHuT9d z(F9I%3i0;OJHAB%Pr&xBEigMO_QZPs!g0h)3;En3Gyg$1F69Iik)ms5YjYHaG&SMA z5tf@^EH8N#sB0m45{rE!d7i^vStz0VQDtKWPCQWV6idG<^Qn{r{ zEtr2;#cWlSRpg=qfV5o4$TtDuNIuke9W5p8$*TL38;98so-hl2Z*ve@_#zn072*i8 zP@jL{qZ5^Pp*pTO5Zza|=aCA=9nm^^RfqlpsMkYf#p-z3{;FG|9<%TnC3p2eq>n&O zuT?$5C*#-MXL0C#Z%gVD3w38KgyNlN9|_D_h5sfnp}+I!kS( zZM1&RJXzDZ3VUlHh+k##zOC*L#*94Xz+m3OI!b+=-xa?qbiVa}5P}G`Mt^9=+XxKI zql6|BD;DPBzI`b1;?HE|c}Eo$SDqo*sUCWl*2OR|tK`y0yHp*BF_)5b-MnP_>gK{H4>mj0jPFN{Okhb{-G3s*>8m!0@U7&+&UCJjqia*cYrVogxUVji zS3A!Ad7sfF2?i-@3brc>ySHXU_@Gu-KJ`xns&|AgP>cgw$}kKqwB`c#Vnd5u!I(qJ z&+tllX8w;L&g=W=Ne$yKe%?gjtnvbd> zqA>+yyX+koO<5^}sOp$TP$Ws;FL(y557!eJ2dUJIf>#CDK7#59X9Hs|zEK?yAWkQ3 zR*ln#|Lkf*1hi0~;%kXeVP9nO^mGUL#F|STCstWawzKx+6Q9%~3E^PEDW>-m

q| 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 aF9@a4-FP`y5cdT5CoQfZRxV=b|Nj7*_i9W4 diff --git a/content/administration/odoo_sh/advanced/frequent_technical_questions.rst b/content/administration/odoo_sh/advanced/frequent_technical_questions.rst deleted file mode 100644 index eac88f1a81d..00000000000 --- a/content/administration/odoo_sh/advanced/frequent_technical_questions.rst +++ /dev/null @@ -1,60 +0,0 @@ - -.. _odoosh-advanced-frequent_technical_questions: - -============================ -Frequent Technical Questions -============================ - -"Scheduled actions do not run at the exact time they were expected" -------------------------------------------------------------------- - -On the Odoo.sh platform, we cannot guarantee an exact running time for scheduled actions. - -This is due to the fact that there might be multiple customers on the same server, and we must guarantee a fair share of the server for every customer. Scheduled actions are therefore implemented slightly differently than on a regular Odoo server, and are run on a *best effort* policy. - -.. warning:: - Do not expect any scheduled action to be run more often than every 5 min. - -Are there "best practices" regarding scheduled actions? -------------------------------------------------------- - -**Odoo.sh always limits the execution time of scheduled actions (*aka* crons).** -Therefore, you must keep this fact in mind when developing your own crons. - -We advise that: - -- Your scheduled actions should work on small batches of records. -- Your scheduled actions should commit their work after processing each batch; - this way, if they get interrupted by the time-limit, there is no need to start over. -- Your scheduled actions should be - `idempotent `_: they must not - cause side-effects if they are started more often than expected. - -.. _ip-address-change: - -How can I automate tasks when an IP address change occurs? ----------------------------------------------------------- - -**Odoo.sh notifies project administrators of IP address changes.** -Additionally, when the IP address of a production instance changes, an HTTP `GET` request is made -to the path `/_odoo.sh/ip-change` with the new IP address included as a query string parameter -(`new`), along with the previous IP address as an additional parameter (`old`). - -This mechanism allows custom actions to be applied in response to the IP address change -(e.g., sending an email, contacting a firewall API, configuring database objects, etc.) - -For security reasons, the `/_odoo.sh/ip-change` route is accessible only internally by the platform -itself and returns a `403` response if accessed through any other means. - -Here is a pseudo-implementation example: - -.. code-block:: python - - class IPChangeController(http.Controller): - - @http.route('/_odoo.sh/ip-change', auth='public') - def ip_change(self, old=None, new=None): - _logger.info("IP address changed from %s to %s", old, new) - # Then perform whatever action required for your use case, e.g., update an - # ir.config_parameter, send an email, contact an external firewall service's API, ... - return 'ok' diff --git a/content/administration/odoo_sh/advanced/pdb-sh.png b/content/administration/odoo_sh/advanced/pdb-sh.png new file mode 100644 index 0000000000000000000000000000000000000000..802e9b130c39ff3fd9323393bdb791fd20e1262d GIT binary patch literal 18696 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 E03eDJYybcN literal 0 HcmV?d00001 diff --git a/content/administration/odoo_sh/advanced/submodule-sh-github-ssh.png b/content/administration/odoo_sh/advanced/submodule-sh-github-ssh.png new file mode 100644 index 0000000000000000000000000000000000000000..78daf15b8f841bace0f2fd09af51048c6ef199e5 GIT binary patch literal 10792 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 R|0Y0Dl;t(#s$|T9{~s-Vc)kDt literal 0 HcmV?d00001 diff --git a/content/administration/odoo_sh/advanced/submodules.rst b/content/administration/odoo_sh/advanced/submodules.rst deleted file mode 100644 index 954cf3343ce..00000000000 --- a/content/administration/odoo_sh/advanced/submodules.rst +++ /dev/null @@ -1,111 +0,0 @@ - -.. _odoosh-advanced-submodules: - -========== -Submodules -========== - -Overview -======== - -A `Git submodule `_ allows you to integrate other Git projects -into your code, without the need to copy-paste all their code. - -Indeed, your custom modules can depend on modules from other repositories. -Regarding Odoo, this feature allows you to add modules from other Git repositories into the branches of your repository. -Adding these dependencies in your branch through submodules makes the deployment of your code and servers easier, -as you can clone the repositories added as submodules at the same time you clone your own repository. - -Besides, you can choose the branch of the repository added as submodule -and you have the control of the revision you want. -It's up to you to decide whether you want to pin the submodule to a specific revision and when you want to update -to a newer revision. - -In Odoo.sh, the submodules give you the possibility to use and depend on modules available in other repositories. -The platform will detect that you added modules through submodules in your branches -and add them to your addons path automatically so you can install them in your databases. - -If you add private repositories as submodules in your branches, -you need to configure a deploy key in your Odoo.sh project settings and in your repository settings. -Otherwise Odoo.sh won't be allowed to download them. -The procedure is detailed in the chapter :ref:`Settings > Submodules `. - -Adding a submodule -================== - -With Odoo.sh (simple) ---------------------- - -.. warning:: - For now it is not possible to add **private** repositories with this method. You can nevertheless - do so :ref:`with Git `. - -On Odoo.sh, in the branches view of your project, choose the branch in which you want to add a submodule. - -In the upper right corner, click on the *Submodule* button, and then on *Run*. - -.. image:: submodules/advanced-submodules-button.png - :align: center - -A dialog with a form is shown. Fill the inputs as follows: - -* Repository URL: The SSH URL of the repository. -* Branch: The branch you want to use. -* Path: The folder in which you want to add this submodule in your branch. - -.. image:: submodules/advanced-submodules-dialog.png - :align: center - -On Github, you can get the repository URL with the *Clone or download* button of the repository. Make sure to *use SSH*. - -.. image:: submodules/advanced-submodules-github-sshurl.png - :align: center - -.. _odoosh-advanced-submodules-withgit: - -With Git (advanced) -------------------- - -In a terminal, in the folder where your Git repository is cloned, -checkout the branch in which you want to add a submodule: - -.. code-block:: bash - - $ git checkout - -Then, add the submodule using the command below: - -.. code-block:: bash - - $ git submodule add -b : - -Replace - -* *:* by the SSH URL of the repository you want to add as submodule, -* ** by the branch you want to use in the above repository, -* ** by the folder in which you want to add this submodule. - -Commit and push your changes: - -.. code-block:: bash - - $ git commit -a && git push -u - -Replace - -* by the repository on which you want to push your changes. For a standard Git setup, this is *origin*. -* by the branch on which you want to push your changes. - Most likely the branch you used :code:`git checkout` on in the first step. - -You can read the `git-scm.com documentation `_ -for more details about the Git submodules. -For instance, if you would like to update your submodules to have their latest revision, -you can follow the chapter -`Pulling in Upstream changes `_. - -Ignore modules -============== - -If you're adding a repository that contains a lot of modules, you may want to ignore some of them in case there are any -that are installed automatically. To do so, you can prefix your submodule folder with a :code:`.`. The platform will -ignore this folder and you can hand pick your modules by creating symlinks to them from another folder. diff --git a/content/administration/odoo_sh/advanced/submodules/advanced-submodules-button.png b/content/administration/odoo_sh/advanced/submodules/advanced-submodules-button.png deleted file mode 100644 index d884b0346b8566b81ec4a6cae379b7ad9294c6ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6214 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 diff --git a/content/administration/odoo_sh/advanced/submodules/advanced-submodules-dialog.png b/content/administration/odoo_sh/advanced/submodules/advanced-submodules-dialog.png deleted file mode 100644 index 3a15d90981f1a3a8054578726137d531c823a123..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13187 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 E7yLdR!~g&Q diff --git a/content/administration/odoo_sh/advanced/submodules/advanced-submodules-github-sshurl.png b/content/administration/odoo_sh/advanced/submodules/advanced-submodules-github-sshurl.png deleted file mode 100644 index 9fd3bdc231a3f4165e5522cafb7d675aefc50418..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8570 zcmY**1ymHkw?5q^xs)^_xpa3)NJuRqEFe-#O9{e)(kmt1jr7teBD-`+cS%ThE$#mO zz4!j_oOjPX^L=;j#62_T-kBH!Jxx*~1|kd$3{tHZYOgRbFya4rKLPf?Rv&?y`3E?T z$}g2MFzOSCA8c{|*_b}BG*vKaN1668Ft9NUbdA-~X!Q8>!tLGNgwk9=H`YeLyIX#XYb(nxqvWJo-R{@Ces(KzO}zi zE$!HECei5IT{QX_^|*6#js82sXHzpgI*vx4-~J2kacByS4pb1{zr5oWQsEaAf7^Ib zd5RV=El^g`Y=lUi)w^7vde^S+notkuv(}A+bIiAkXK3_u5eVwryWd6D=$(?HwtuVb zt)kK5(h5l*CxZs=Bz=(sp&ICi-%>!)u7L^7m}!W2kce~r-9~eqzWl>n0wi-Ndll^# z(TKi2o%w8#YatDAoz@d~?t4TF8YY0O9lh2c21dp-Wn>D%!iP&|L)9!K6b!pB|6a}( z|J~eH4jJ^RT(*}GKEJp?uM~h@DDwi11KwpVEU%G6H%$aZK52=0b>0c6e=d@XK$*AEp|bJ5Z>mu|a39^Cm@8EU+UQ8e(rL~RNCtWI6u91Y}^lvI^$ zJ-!eU`JNKNR1_i&nVdX%=dlbKn+(rLh-;lR2 z{Aw-5(b@_s*=+yhP`Z3!=i&veHHv;~zBk$QXFd=fWb+xZ7ZsiOxn*VTth1)wz&m6b zHvd;VPZtuAKUWU1c>b|nE$uxEZ*_63`hlX?{9B-Sf7VaQ?2j`GZAGY1X-_sh#G`+FJRqP8EFhrYG< zE-$9$=gXJGsKQ-0hDJFRKNn$OJOyZ}DH{hY9_A1mP-!vrW5*4+lYO$ZGLuhNWuC<+ z!l8Hzjnz7Zt;O|ML*eYSV~t8Ho?7Y@PvYAQJ`q$9G(1xX$axC#C)mL5HCn!M@96dI zC^axtwneHKH%ZB}_^yaj5pXIea?%amTBc_1)!pliU1!&IYLtP2P7_7yakMotd{Ycx zo}aYqy66sqAC}*J$V%FMKQ)#WHWU5D5ujlNoAqjFizLyQx*GeeF_$fdoo&Zstw93O zIHwi?%qiwO@?-UgVcY*I2*ad%11$TMExGhU%wttd0HGj~0@66lD8-QoicfNqAccq_ z-i~>}fke_HnKh*IbtGJAPh`u&UV^~18tg}i5Lcdh*!&p|7Oh8dk-W52R?vjT$F85( zP4u59hfl|~#h{z(UCi!w6#-PAu>6&aIHsG+jwK`@3gk~w#Ofaqdas=mW9{Sdu{iJC zog9ZAU-%f|n_jUl2{hEN7A;>*g0N~%QJvLpnQ=aKrXDjJp~i@YKSjl%G)19P6e+AM z3typbS_^M|9Fz+M!)VTkOVDmD^jyHfDzmzC;xTcbnXu1dlHy>pE%&`v_Z9y-2^sJ# zc5;I{=IpGkw2haXORxLZR!yqsk=@;BVTu3QVI@ZKZby z@AHvRUOoNzL-(3kzP(NDAf;okqjt+d{uJr5>n5H6+f1A?8S_7%Inl!=k5+Sici(5^ z$^7Z%$!LyW%Ax-b=Da6>G1wZWAEm9@7w)!hAF_w}CW^L+(}I~20QA1$?oPEm%xsh&82yMB{KSwNuyfJuj zUPidHNeeI0}a-{C8OTtN0*4tCF@G%Qdrv(cO^={Y* zMIzuC_J&0qtUIQ8{cP|jJ7sv)?!KyVBG}ZKqhl=9WSvYq^N(VLf0i#b^@|BzZ_kh8 zN7fvPtp60>(Pq3J9lKw75Hf31c%NlF+2d;PhC9lP`8xEM4 z5B4AQNZCDe<2EX`Z-_+Z$?d*>zD*0^4#L2!Ep-VA8)*wV89k zd@M89FKuSldmBz&g+&T4?pkU!AvAwNdIKHyp39R$&vmp0+guQ|vrn~($9rOG8h1GR zekG`lGNT#ds#i^&+l6B4O~(+MF+_j?eLE&Z!Z;jIhxG!?1!-`CGc^J)T|+r&dayvL zB?01O@Pg0G$VwR}6@i6Ng@4{9%MtJl zU`*Z9uMX?7nK{$zi0SPzfo=-|@GzqiCf1p6U8JqTsOQ4~X&MK?M3KAJ#|C%hfwc!; zu{M6k%anG-HMye?{OveLCY(SQ9FQ12Y|Zi11s>_U+yGz%g1Qk?Hp^t2Uq-f1DC2r< zvC_L}0I9Z1O5F|0;EtX;-f?rnQS!Z?Of0P$GbedM!dN6YyCsU|W_7f? zUk#ANy&3~baY4T~>OB40D||KBJ~5F3rb*L|i8x>=LI)5%xTYhYmqo^Aiirkx=v zhLR4#b$rP^qWDB?WX!5CiZ!5`1*Pma^tubN_3kppvuX0ri;6q(+tmOp-24DXa=-GM z;N*|ZXnfja`gXjqK_#xX^a~mvj^w^2c1?d0+`iK4tc@(DPk*cjkXZ7MiA^m$ zGYqrYL-<_%JKT&ZBGUB(l^7i5(-{``z4FKwLo96Z>N*k@JlzlO`%8D{Tb}8=R{GQM zwH;&9aD)=+fz;!!h)Fk*l6n#Jc>u3CNp<)HEV5E6GPH^a=%V(`5}U_bzET|0gn-l- znGYjOpB_^p zzZIbsn9O~HXSm>E5=~z*jN%7!R_Bv?ocHrb_gKh*9lX}6jIc^;ri7W^p4)t~Zp_9R zIw13M_|YdU6#bRHBExB|4|vFY$)e+el%y>~2@zt?v%pZl8G~~usya9u&8*J}W?|57 z`S&E@X<$z+opf(cA{25M>w^iOe{&o}4yla^SW};rCetXCwy@z8r|Dn% zd14pyY`ki*$!X#}KG#@@J+MAtqKDfegg$nj(_%AiOE)>|+@h{pp+MZ)eAIZGex`uM z1&7b)KQ4rYleEc#hQXAyppU4ik;Udrb;U=+<{WMDtjx>7@1@-%GQlNY1@~0`idg0)MMd2k>X=4=~?L$VKez@F)wFgUWS+nSRd}~ zy*bBZHkIE7HFi{F)437FnY3i&exd5>1rL=jm2RT z2&ey6uo%$o`yJ_x=c9ysK>Ow*(djpFp}q15gQe`4?ymOi^&KG{K)l(t`yx&}9=6{x z1gl~DR9!OChquKZa=n}1b&6Tub#znHo6&>Vv;^k+fd%$Y7k9|k|M_Q*&Krp>jcr}uudd2M! zp*{NaC035=N+hObug3U1h)GMwE+v4q2*eioN$?fE-=Xdcg}77}@9hj>hxwAKz`#IU zSj|yjpynzb?Cj)7N21#cWu=OFLC4y>z{=q{;ct(x!DCg6cS!!cNT|?tBrYio(*;J; z_Em{=zJ5NqAt;1@I9i0nAoH>~{h*b`oio1`bLsoFP3bVHS@#2&0UDFH2+YSZJ;y%t zX9mQp4-5|BTzX2p$mk^S(!!ChAmJP*?a3L#Hn#hYOm2IkOz{pM!><@HyrM4itLqjY zu|D`=mnHe#2N82OttMIQ009E&i=p_W(7w?C5&rXMLiB@uUPrI7=DS`hbxt*KhA%yY zoOIbFli-Y`l42&ZLvP=+CR4D%yq`44UKL-2a&08qN+H}uYMfNq0223fij$OKtBuT~qBzlE zE{zjSyP{Q=*0G(yyfoSzu2pkHu%gzwbEjh7&ix1ZlauR<$Me9UR}o=jXA&onA7^JQ z>Y12$A8a&|!xnJ#q~Em_J%NUyriYZoe=vq6fVe0ZP+iPfi^xT8JJW5rUX&h!EGE_q zT9L6?$#8`5sDhD($vCEZ0yGA<2?I8vq)06n&I z;#Fq%23%!xO5hi#qL?Jqs4IH7UI=A2yefA3idYdW%e5}f^&_F zOf8i+Fqk3&A_5{e^G1Yg_eOMAAP_Ug?;lDtxTe_*)WGY9)geWeW0;mS?vGguI@K9o z#MB?tH!O{wMXn5;)&@6VzyR*Isd=ECF4nBLdBiX{EEmor-y63Lf4iJ;p2M)=_tVq0 z@{64FdQQiC+R=9xk{#=_)AY+(?~z!RHp?q_GflTTVH2HEhG1%dI1!8iS0n6yC{{6o z2k1f#_}5c|1^&HmY2v>6<5qUDA`=e&Gy3Q~H^+ z!DSRu?ByB#SX}-DUE=HuHrCGl_!(~IK_hS>LW0V1*cMAK9W$C>KE7ADyWJQk#vhTG zARNa!r@TLsEm?5q1<@dy^lq;w$F_6CajV~?*)Eb{lSd*?AwPVINv4F@x95Y!ya^Q( z|A-^UDqBk$gh_Cv?y|XvMBinqJ$nlW%<}EowOh)Km{#~5d#U?rM-=}Z*urb^m>vx@ zE78z?{|GC`qXGm(_2MT)3#1F(6edbb9Fp0D=X6t@r$D+A9!TiupL+8xDl`Ufcu=bn zEB!Ta6+6EQZgP|PMl&u){vfmJ_UTpdDC@FqR+?4E<~nX@^$WB8ZyjmSh&6?y6|M$p zS*{lEl-Tv)Oyj9s)e%e~!b;HDSNZmz<_UjBf;my_;A;rgEna(FL61UAzH{IFyiqpq z@5CLB#XISN{3?%3jzTgr&?7;GYsEB1NLBIcsYyLvGUKIS+~g_ojY#jL9!PRlx2j66 zc1c7|#e&MZGo_1tF=jJw()_DDp(dnGIq&4G8KouLkNJXu0KS5kztXgR%@YvfRo>=! zfup!%ste~mL)@N^FnmiRcYz~J4$MhPw288^IN!1?_tq?b_3>J*1IWRYi$vYk4+-l1 z026KHJ=2wzRNh4%gT39FD6K=S2P*=Y?-s6Y#a)o&7;w z&XEaVB}_8uijyHI9Q8WKtCcy;O;Ut}%Dum2)roV%-L5=I3JBkRj-RbvOCq~v+JE`) zcbjlQWRwyv7RJ^M$UQH(&<|X`prR2?ie`Z-KXd8h^&QuFV2WIEf!m1ZL{bH6yy*QQ zYsDcROf9~V2!fSV-hQ!PNP#Gh86kWbd?*nNG1ZK*(67QmdgXG!S{ev@Q(ErZP3bRT zxi)-==|h;CJtI3k>2fRQ(H1V4r(wb^akfnvu{bss|yNrj_{Y+Mw+1 z;V^#ng{hqfFPNqe)3O9O9w{NG=2?v;@YDmT-1My~$0)-n4~JjeGFh?E;iV$0A4Yiy(V0osTk*r!H^<&ex&tA&fG7U!;f~o)0WqP9g z`UFSF%haT4es6wG#1Ss3WlPE4B^cS>TYtjGZ>cT^mjM^O&gcf463J{O8~S^#6wpn2 zjD)Ke^7TuTa4R@d!c!nVg)IshLqD_-r?pgz#zn^9GgHJNZ%a3mgkDq4YQU(H_ymn0 zM)n_%K@(DvbmQ2TPAx6b8*jICf)oCYck;bze(@rkTB;i{wvyG|tiCqW1P5>qojKd@ z&{nKvxfkq(udJ(!bvaRE7WrA&+)Tbfc4=+tyVnIayI!vki1dHk0meqLF8A^75jwCU z*UW#XlKsht_Dk4$scO=Hf{Auq$qQ+tL+bo^GWPswyw#0JA+U%~01bC=pTQ1tH=Wym z`DODtvE*ugfh=<-wyDUn8V|e~oBvPzmJ#^fMLJgTf7do#jnDswBJ!{fxAOlUa=GmB z^VQ@ANvk4`^MW{nIGW3sg3PlgK`5jTJr-(`&vLgj?xo{`bC}zEAwDBS%XnyA#_Vh< ze#>)v#H``dy)d_XFN>xB+GJi7`(Df9Uj>CbV0D9>R6ZG{-jux=+Nw+v9ZA&z=gA2uzz*`hzg{?#dRl;B5J?E#vlHkQtgT_*r z(|6YfO<{%AvOmSLO~Ml*VUOvLF1|I-RT0)Y!uF=L7mMt}ZC%=tnMg}+J1LK9kA7A_ z>4a1A>=jEVaBW}c>n^G%vQCAZ(a`qJ;>8FiIR8dowse5hy6eZVA$LV*Q2WA7Un~z5 z{WB!e2_hj9ZdiJl?w4Lau@1n21muuElkHWPh;`hKu8A?q`jeKANn^3Joq76Mt>z)( z({gFFwq+&oJ+CM+KRX2hdyEYqfo@H5z7w#%%UOTmS-=sbxdvUme8>lXI;6FH>RVIY z)pD<9+8>VtbS$4wHpu+xkcDHpWv4@0;d5DG!V*t&Ff`xh_Jfh(EGEv15nZ}u+V7ZF z6+j_IL(v=qu@YL!u5!C#IM0fnd96B4m`X@RS9IZpD^d*iw|SYNl-SGsh7hNYd!aoO z?`>pWlK`H?6+C~}1-0BtO(l3KhdaM2J(7kINprJtRXI!?4P*od)|V`Dt}fNaKZ|8# zSeW+{MTfanMUx&oj?rfYOs`ETem!>SvTx(~af49#@n%EClwv--h6i3-6@32%s`XYe zpVLSZwTv&;Ra=VSHG(SRepkak*UVsfHLY;Ax{M2c5PkWhtA|yns+gP&5%l;`NRRo( zZo~TNH3f+&E2C>dx~|oW$S}7T8EY|7j1tvE5p2NjhezxLehz(O5HIlb65=pO^krFK zje0hN2$tQQ2No1vE%c0=R?m3x{gj$oTvIE^k~HcLbXGWaY`q- zH?8&7;$v6L?JRAcsGe~>1q;doAi9W zTc!2(9oQTBwxbPciY%H1)V=L09}KlqbW;S3GCqwjYSBzJkq50_2e)*C*?L1$cWx79 z?>l5OuhVxv4UqJ`;)XTroB&w6&EU*xzjgOMTo3^{WKy! z(|Ud^P4{Vl>+TgQ0pn6Wq)R=|m4&O_MuIA^)bQ`e0dTv2^W;`|>Hz$&_Q$=D&_Dj^ zAu6bMzRH9IkAIP4?Sd^w^&ximK_v;ajwdVuv2v=6zX9yI`43G8blQP0P&o=2Ax5>7 zzspTFL?P=AyEA^@hX9p5t(2VjeU)l{EE?p^KM1dFSE^r0qc-w8?+WE4PFz;*7YQeC zr7dmGm+KThT#>%7Yq@SN-{O6u5PiHL_?28JYatY=VDXnkCwz{mMjM*6T<4~|tAI-S z@>{&_N};O6FpRuNrb(DiAD;iX(7=HXSwMpE_8v}$a-Wfe1Ou@;e+LO>gg1u4H6y?*^GE6S zdtBM)f!0GuL`j34Y@j_v%b$&y_G9;j2Hp&=TNYehA#>TZUPJ8gR1%1*pxzG4yPQ=E zimGsjye1wntv(Bzo+aZy-(ix;rouLyDPsyR;<~_*0O^7=;!&!vXMYkR0F-=BjSX2U z6bV~-m}-6U2Z?NPld>*jt3T%c%ZA#ocb<{5ZpDKuf7=CyG6P{7{VNCw%J#**JtL28 zx?pW{eTwS$NULDu0^u>u*XN&oDru0FfNH0NG9U#B@}K?#?Em2Zg1sA9-EurCj6M=f z5D5k}~Y19)hTh7liek^(z zkdzyhAv0KE%sqMniW%1DD;FfWFFI#e6!m}c=M6`G+2GluHDW&dx2 zCA|G5>4ah;)(@$(%rQ%|JvU4b`;@%?h7u2{JBd#(F{bHQ;wf_`g?ph1HyS48R?tUA ze-PzNp7DeU+GN7BGN_pa_PPjGO0<5Hhl~RM6lnobp+seZA}5k4&UxE4 zVBx;q7#X@6$?1ieFJ0cH5;L`%&oKGA_3H^p&YR+C5EFHz;C?ilbZUWq66k!Fa`ORF z@&?>A86_43!lknKyc~6Q52HI?EcopxXJQY|D_*hN$krQ!e_(TVOGV<@C$ZhKXqPt} zhlnaFo4svlSakrvN?UH^yUDBg^VU5~^1?p`+&fQw3|qjy6v??R?Ovw$&N%uFsMLeo zcIgw$T2iTSrpB13Zj5KWp4Jrg=r5^gWYKsL!WOj2L>JLSUa3}IUdMp=(Qz*=IDZEQ zf9dGxz#Mf=L;g7IoyZCln|c1LuFb1QYMZ_kLc`UPDj+L_+yP$C3wyD|18pcdY zm*Wkn%K(5{a;NpDYGO_~#>MhjD32OF6G{B=tUq^ix#EmG9TL(ZH@9@ffa&^RUnK%! zyxb9Dc5)8+z5z?`v5?YHXMG9SeZG>Quzhkh;7DGiA9sD^0O0>)nC|X2Foup%WFa|AbN{PBLky+)7+N5ykv;W%(mfq=7G=5-UW+! zuo9Sd6>ZWu3@j1Kgn=KUB`G)~z~B7d_u0CGdlQ|0rwa&s`+#T^_rCf9c@CI?Ar5h| ztjySj*E>=?3`EEjRKI2$quFo2fZqcAGG)@6Av}jc{_G%g_neMr;Gc#=eqfQ~PbJu~ zDsZcyG5#IqNUtYD@B57wq#@dQEik(ONo*Ga61q#X6+m)xnA1x}KCYZb>t77p`2Dz2JHSXh( zP>6gKClixSzRl6s(Chrr!%2_Px}(V@aZ<)*fy(buu>`Y+rjp{$&7=ns4_%7l#Pyjo zWW)=!j72S)bKVX$EfrcFh2Jv3z!>EPOgp6(YmSgB(HfKw-@~|IoK5ulfXQ z>wK-V>Ru@)P!oCT_Urge)?wY734 zE3JqoMmtvgJN<$TnVVc%!P1t_`1PxvIWb#HE83dYbS~E@n~XgW?d!{$GAB;oAhyHd zo>xmEcCoq7kx9ul98}q1v`cn!Is4K5RtpD}GshY)&nRJ~fN12`UA)FCMmDx&J6T7r zbPIXggM!~Q>YakxN7t9P9PrN;Gi(9b61mh=zZ1B;cO=|C7Ehks>`fRh$zBrp0Z4ae hx6?K&zsph`cK+EZ+-3RtFNOYzmb#u=tqM5&{{c3B#?$}+ diff --git a/content/administration/odoo_sh/create_module.rst b/content/administration/odoo_sh/create_module.rst index 70252de8f07..2c465ee3bcd 100644 --- a/content/administration/odoo_sh/create_module.rst +++ b/content/administration/odoo_sh/create_module.rst @@ -339,6 +339,8 @@ deploying it. Otherwise, you can manually :ref:`update the module ` within the apps list. +.. _odoo-sh/module/library: + Use an external Python library ============================== diff --git a/content/administration/odoo_sh/getting_started.rst b/content/administration/odoo_sh/getting_started.rst index ad40b5602b2..4e2b70ad305 100644 --- a/content/administration/odoo_sh/getting_started.rst +++ b/content/administration/odoo_sh/getting_started.rst @@ -4,49 +4,150 @@ Getting started =============== +.. _odoo-sh/getting-started/components: + Main components ---------------- +=============== + +When working with Odoo.sh, it is important to understand the main components involved: + +- :ref:`GitHub repository ` +- :ref:`Odoo.sh project ` +- :ref:`Odoo database ` + +While they are all interconnected, each one plays a distinct role in the development and deployment +of Odoo applications. Together, they form a cohesive pipeline from code development to a live +business use. + +.. _odoo-sh/getting-started/components/github: + +GitHub repository +----------------- + +A GitHub repository is like a folder on your computer that contains all the files and folders for a +specific project. The difference is that it's stored on GitHub and can be accessed and edited by +multiple people on different computers. -When working with Odoo.sh, it is important to understand the main components involved. While they -are all interconnected, each one plays a distinct role in the development and deployment of Odoo -applications: +In other words, a GitHub repository is a place where you can store your project's files and share +them with others, so they can collaborate with you, make changes, and contribute to your project. It +also tracks all changes to your project over time, so you can easily roll back to a previous version +if needed. -- **GitHub repository**: a version-controlled space where the Odoo applications' source code is - stored. It tracks every change, supports collaboration, and can be either public or private. +Additionally, GitHub offers many features to help you manage your project, such as issue tracking, +pull requests, and code reviews. It's a powerful tool for managing and collaborating on software +projects, and is widely used by developers around the world. a version-controlled space where the +Odoo applications' source code is stored. It tracks every change, supports collaboration, and can +be either public or private. - .. image:: getting_started/github-repository.png - :alt: Example of a GitHub repository +.. image:: getting_started/github-repository.png + :alt: Example of a GitHub repository -- **Odoo.sh project**: a Platform as a Service (PaaS) that integrates with GitHub and enables - streamlined development, testing, and deployment of Odoo applications. It includes tools such as - automated backups, staging environments, and continuous integration pipelines. +.. _odoo-sh/getting-started/components/project: - .. image:: getting_started/odoo-sh-project.png - :alt: Example of an Odoo.sh project +Odoo.sh project +--------------- + +An Odoo.sh project is a *Platform as a Service* (PaaS) that integrates with GitHub and enables +streamlined development, testing, and deployment of Odoo applications. It includes tools such as +automated backups, staging environments, and continuous integration pipelines. + +.. image:: getting_started/odoo-sh-project.png + :alt: Example of an Odoo.sh project + +.. _odoo-sh/getting-started/components/database: + +Odoo database +------------- -- **Odoo database**: a database stores all the operational data used and generated by Odoo - applications, such as business records, configurations, and user data. +An Odoo database stores all the operational data used and generated by Odoo applications, such as +business records, configurations, and user data. - .. image:: getting_started/odoo-database.png - :alt: Example of an Odoo database +.. image:: getting_started/odoo-database.png + :alt: Example of an Odoo database -Together, they form a cohesive pipeline from code development to a live business use. +.. _odoo-sh/getting-started/users: User types ----------- +========== Odoo.sh involves different types of users, each with a specific role in the project lifecycle: -- GitHub users: developers with access to the GitHub repository linked to the Odoo.sh project. +- **GitHub users**: developers with access to the GitHub repository linked to the Odoo.sh project. Access to the repository does not automatically make someone a collaborator on the Odoo.sh project. - -- Odoo.sh collaborators: individuals managing the Odoo.sh project. Each collaborator must be +- **Odoo.sh collaborators**: individuals managing the Odoo.sh project. Each collaborator must be linked to a GitHub user. However, collaborators are not the same as database users. - -- Database users: end-users of the deployed Odoo database. They interact with the live system but +- **Database users**: end-users of the deployed Odoo database. They interact with the live system but are not involved in development or project management. +.. _odoo-sh/getting-started/concepts: + +Technical concepts +================== + +When working with Odoo.sh, it is also important to understand several technical concepts: + +- :ref:`Forking a repository ` +- :ref:`Pushing a commit ` +- :ref:`Merging a branch ` + +.. _odoo-sh/getting-started/concepts/fork: + +Forking a repository +-------------------- + +Forking a repository on GitHub is when you create a copy of someone else's repository on your own +account. This allows you to make changes to the repository without affecting the original version. + +When you fork a repository, you create your own copy of the repository, complete with all the files +and folders in the original repository. You can then make changes to the files in your copy of the +repository and commit them, just like you would with any other repository. + +The benefit of forking a repository is that you can make changes to the code without affecting the +original version, which is useful when you want to experiment with new features or fix bugs in +someone else's code. You can also use the forked repository as a starting point for your project, +making changes as needed. + +Once you have made changes to the forked repository, you can submit a pull request to the original +repository owner, asking them to merge your changes back into their repository. This is a common +approach for open-source projects to accept contributions from other developers, and it can be a +great way to get involved in the community and improve your coding skills. + +.. _odoo-sh/getting-started/concepts/commit: + +Pushing a commit +---------------- + +When you make changes to a file or multiple files in a Git repository on your local computer, those +changes are considered *uncommitted*. In other words, Git knows that changes have been made, but +they haven't been officially saved or recorded yet. + +To save those changes and add them to the Git repository, you need to create a *commit*. A commit is +a snapshot of the changes you made to the files at a specific point in time. It records what changes +were made, who made them, and when. + +Once you've created a commit, you can then *push* it to a remote repository, such as one hosted on +GitHub. Pushing a commit means sending the changes you've made in the commit from your local +repository to the remote repository so that others can see and use them. + +To summarize, pushing a commit means sending the changes you have made to the files in your Git +repository from your local computer to a remote repository. It is a way to share your changes with +others and collaborate on a project. + +.. _odoo-sh/getting-started/concepts/merge: + +Merging a branch +---------------- + +Merging a branch into another is the process of combining the changes made in one branch into the +other. For example, let's say you created a new branch called `feature-branch` to work on a new +feature for your project. Once you've finished making changes to this branch, you can merge those +changes back into the main branch (often called the `master` or `main` branch). + +When you merge a branch, Git examines the changes in both branches and attempts to combine them. If +there are any conflicts between the changes made in the two branches, Git will prompt you to resolve +them before completing the merge (code-wise). + .. toctree:: :titlesonly: diff --git a/content/administration/odoo_sh/getting_started/branches.rst b/content/administration/odoo_sh/getting_started/branches.rst index c90394a70c4..20ea552b837 100644 --- a/content/administration/odoo_sh/getting_started/branches.rst +++ b/content/administration/odoo_sh/getting_started/branches.rst @@ -595,7 +595,7 @@ To change the default behavior, untick the :guilabel:`Use Default` option under :guilabel:`Module Installation`: - :guilabel:`Install only my modules (does not include submodules)`: only installs the branch's - modules, excluding :doc:`submodules <../advanced/submodules>`. This is the default option. + modules, excluding :ref:`submodules `. This is the default option. - :guilabel:`Full installation (no test suite)`: installs the branch's modules, submodules, and all standard Odoo modules. When running the full installation, the test suite is disabled. - :guilabel:`Install a list of modules`: installs the specified modules. To do so, enter their @@ -797,7 +797,7 @@ The submodule command is used to add a branch from another repository to your cu submodule. .. seealso:: - :doc:`Submodules documentation <../advanced/submodules>` + :ref:`Submodules documentation ` .. example:: .. code-block:: shell diff --git a/content/administration/odoo_sh/getting_started/create.rst b/content/administration/odoo_sh/getting_started/create.rst index 993f0628019..2efc29b9c15 100644 --- a/content/administration/odoo_sh/getting_started/create.rst +++ b/content/administration/odoo_sh/getting_started/create.rst @@ -90,8 +90,8 @@ Odoo.sh automatically detects folders containing Odoo modules. You can organize prefer. For example, you can place them directly in the root directory of your repository or group them by category (e.g., `accounting`, `project`, etc.). -For publicly available community modules, you may also consider using :doc:`submodules -<../advanced/submodules>`. +For publicly available community modules, you may also consider using :ref:`submodules +` Download a backup ----------------- diff --git a/content/administration/odoo_sh/getting_started/online_editor.rst b/content/administration/odoo_sh/getting_started/online_editor.rst index bc7ed4bc567..92bfe9b8c57 100644 --- a/content/administration/odoo_sh/getting_started/online_editor.rst +++ b/content/administration/odoo_sh/getting_started/online_editor.rst @@ -85,39 +85,37 @@ Committing and pushing changes To commit and push changes to your GitHub repository: -- Open a terminal by going to :menuselection:`File --> New --> Terminal`. -- Change the directory to `~/src/user`. +#. Open a terminal by going to :menuselection:`File --> New --> Terminal`. +#. Change the directory to `~/src/user`. .. code-block:: bash cd ~/src/user -- State your identity. +#. State your identity. .. code-block:: bash git config --global user.email "you@example.com" && git config --global user.name "Your Name" -- Stage your changes. +#. Stage your changes. .. code-block:: bash git add -- Commit your changes. +#. Commit your changes. .. code-block:: bash git commit -- Push your changes. +#. Push your changes. .. code-block:: bash git push https HEAD: - In this command: - - `https` is the name of your *HTTPS* GitHub remote repository (e.g., `https://github.com/username/repository.git`). - `HEAD` is the reference to the latest revision you committed. diff --git a/content/applications/general/email_communication/faq.rst b/content/applications/general/email_communication/faq.rst index 4190512fe94..650534ab8a5 100644 --- a/content/applications/general/email_communication/faq.rst +++ b/content/applications/general/email_communication/faq.rst @@ -250,8 +250,8 @@ create errors. :menuselection:`Settings --> Technical --> Automation: Scheduled Actions`. .. seealso:: - For more information about crons when using Odoo.sh, check out :doc:`Odoo.sh frequent technical - questions <../../../administration/odoo_sh/advanced/frequent_technical_questions>`. + For more information about crons when using Odoo.sh, check out the :ref:`Odoo.sh and scheduled + actions documentation `. .. _email-issues-outgoing-execution-time-campaigns: diff --git a/redirects/17.0.txt b/redirects/17.0.txt index 0a8f67909af..03ce654e581 100644 --- a/redirects/17.0.txt +++ b/redirects/17.0.txt @@ -4,6 +4,9 @@ administration/supported_versions.rst administration/standard_extended_support.r # administration/odoo_sh +administration/odoo_sh/advanced/containers.rst administration/odoo_sh/advanced.rst +administration/odoo_sh/advanced/submodules.rst administration/odoo_sh/advanced.rst +administration/odoo_sh/advanced/frequent_technical_questions.rst administration/odoo_sh/advanced.rst administration/odoo_sh/first_module.rst administration/odoo_sh/create_module.rst administration/odoo_sh/getting_started/first_module.rst administration/odoo_sh/create_module.rst administration/odoo_sh/getting_started/online-editor.rst administration/odoo_sh/getting_started/online_editor.rst