From 5ed3fa00cf1121a1b231c4952d4da63cfb67fdc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Sun, 28 Aug 2022 11:57:59 +0200 Subject: [PATCH] remove sysadmin-doc (#68475) --- Makefile | 3 +- debian/control | 12 +- debian/publik-sysadmin-doc.docs | 1 - debian/rules | 4 - sysadmin-doc/Makefile | 225 -- sysadmin-doc/architecture-1.md | 32 - sysadmin-doc/architecture-2.md | 92 - sysadmin-doc/architecture-4.md | 31 - sysadmin-doc/architecture-6.md | 237 -- sysadmin-doc/conf.py | 355 --- sysadmin-doc/exploitation-1.md | 6 - sysadmin-doc/exploitation-2.md | 48 - sysadmin-doc/exploitation-3.md | 45 - sysadmin-doc/exploitation-4.md | 58 - sysadmin-doc/exploitation-5.md | 33 - sysadmin-doc/images/architecture.png | Bin 45528 -> 0 bytes sysadmin-doc/images/architecture.svg | 372 --- sysadmin-doc/images/dialogue.png | Bin 43846 -> 0 bytes sysadmin-doc/images/dialogue.svg | 336 --- sysadmin-doc/images/flux_si_tiers.png | Bin 32835 -> 0 bytes sysadmin-doc/images/flux_si_tiers.svg | 308 --- sysadmin-doc/images/logo-petit.png | Bin 64412 -> 0 bytes sysadmin-doc/images/logo-petit.svg | 91 - sysadmin-doc/images/logo.png | Bin 17264 -> 0 bytes sysadmin-doc/images/logo.svg | 164 -- sysadmin-doc/images/passerelle_locale.png | Bin 53322 -> 0 bytes sysadmin-doc/images/passerelle_locale.svg | 313 --- sysadmin-doc/images/reverse_proxy.png | Bin 43102 -> 0 bytes sysadmin-doc/images/saas.png | Bin 51778 -> 0 bytes sysadmin-doc/images/saas.svg | 2645 --------------------- sysadmin-doc/images/schema.png | Bin 77390 -> 0 bytes sysadmin-doc/images/schema.svg | 1729 -------------- sysadmin-doc/index.rst | 33 - sysadmin-doc/installation-1.md | 5 - sysadmin-doc/installation-2.md | 115 - sysadmin-doc/installation-3.md | 51 - sysadmin-doc/installation-4.md | 71 - sysadmin-doc/installation-5.md | 520 ---- sysadmin-doc/installation-6.md | 272 --- sysadmin-doc/installation-7.md | 255 -- sysadmin-doc/tools/despan.py | 18 - sysadmin-doc/tools/headers.py | 17 - sysadmin-doc/tools/import-odt.sh | 2 - 43 files changed, 2 insertions(+), 8497 deletions(-) delete mode 100644 debian/publik-sysadmin-doc.docs delete mode 100644 sysadmin-doc/Makefile delete mode 100644 sysadmin-doc/architecture-1.md delete mode 100644 sysadmin-doc/architecture-2.md delete mode 100644 sysadmin-doc/architecture-4.md delete mode 100644 sysadmin-doc/architecture-6.md delete mode 100644 sysadmin-doc/conf.py delete mode 100644 sysadmin-doc/exploitation-1.md delete mode 100644 sysadmin-doc/exploitation-2.md delete mode 100644 sysadmin-doc/exploitation-3.md delete mode 100644 sysadmin-doc/exploitation-4.md delete mode 100644 sysadmin-doc/exploitation-5.md delete mode 100644 sysadmin-doc/images/architecture.png delete mode 100644 sysadmin-doc/images/architecture.svg delete mode 100644 sysadmin-doc/images/dialogue.png delete mode 100644 sysadmin-doc/images/dialogue.svg delete mode 100644 sysadmin-doc/images/flux_si_tiers.png delete mode 100644 sysadmin-doc/images/flux_si_tiers.svg delete mode 100644 sysadmin-doc/images/logo-petit.png delete mode 100644 sysadmin-doc/images/logo-petit.svg delete mode 100644 sysadmin-doc/images/logo.png delete mode 100644 sysadmin-doc/images/logo.svg delete mode 100644 sysadmin-doc/images/passerelle_locale.png delete mode 100644 sysadmin-doc/images/passerelle_locale.svg delete mode 100644 sysadmin-doc/images/reverse_proxy.png delete mode 100644 sysadmin-doc/images/saas.png delete mode 100644 sysadmin-doc/images/saas.svg delete mode 100644 sysadmin-doc/images/schema.png delete mode 100644 sysadmin-doc/images/schema.svg delete mode 100644 sysadmin-doc/index.rst delete mode 100644 sysadmin-doc/installation-1.md delete mode 100644 sysadmin-doc/installation-2.md delete mode 100644 sysadmin-doc/installation-3.md delete mode 100644 sysadmin-doc/installation-4.md delete mode 100644 sysadmin-doc/installation-5.md delete mode 100644 sysadmin-doc/installation-6.md delete mode 100644 sysadmin-doc/installation-7.md delete mode 100644 sysadmin-doc/tools/despan.py delete mode 100644 sysadmin-doc/tools/headers.py delete mode 100755 sysadmin-doc/tools/import-odt.sh diff --git a/Makefile b/Makefile index 1baa974..e24c2d2 100644 --- a/Makefile +++ b/Makefile @@ -5,8 +5,7 @@ NAME = publik-infra all: DIST_FILES = \ - prometheus-entrouvert-exporter \ - sysadmin-doc + prometheus-entrouvert-exporter clean: rm -rf sdist diff --git a/debian/control b/debian/control index a4ac3b3..43bfe00 100644 --- a/debian/control +++ b/debian/control @@ -2,19 +2,9 @@ Source: publik-infra Section: unknown Priority: optional Maintainer: Christophe Siraut -Build-Depends: debhelper-compat (= 12), - python3-all, - python3-recommonmark, - python3-sphinx, - python3-stemmer, +Build-Depends: debhelper-compat (= 12), python3-all Standards-Version: 4.1.3 Homepage: https://git.entrouvert.org -X-Python3-Version: >= 3.2 - -Package: publik-sysadmin-doc -Architecture: all -Depends: ${misc:Depends} -Description: Documentation for doc-publik.entrouvert.com/guide-de-l-administrateur-systeme/ Package: prometheus-entrouvert-exporter Architecture: all diff --git a/debian/publik-sysadmin-doc.docs b/debian/publik-sysadmin-doc.docs deleted file mode 100644 index b9d6d20..0000000 --- a/debian/publik-sysadmin-doc.docs +++ /dev/null @@ -1 +0,0 @@ -sysadmin-doc/_build/* diff --git a/debian/rules b/debian/rules index d8f1f4d..31906df 100755 --- a/debian/rules +++ b/debian/rules @@ -3,10 +3,6 @@ %: dh $@ -override_dh_auto_build: - dh_auto_build - cd sysadmin-doc; make html - override_dh_installsystemd: dh_installsystemd --name=prometheus-system-exporter dh_installsystemd --name=prometheus-uwsgi-exporter diff --git a/sysadmin-doc/Makefile b/sysadmin-doc/Makefile deleted file mode 100644 index e13c075..0000000 --- a/sysadmin-doc/Makefile +++ /dev/null @@ -1,225 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = _build - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " epub3 to make an epub3" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - @echo " dummy to check syntax errors of document sources" - -.PHONY: clean -clean: - rm -rf $(BUILDDIR)/* - -.PHONY: html -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -.PHONY: dirhtml -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -.PHONY: singlehtml -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -.PHONY: pickle -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -.PHONY: json -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -.PHONY: htmlhelp -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -.PHONY: qthelp -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/InfrastructuredePublik.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/InfrastructuredePublik.qhc" - -.PHONY: applehelp -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -.PHONY: devhelp -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/InfrastructuredePublik" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/InfrastructuredePublik" - @echo "# devhelp" - -.PHONY: epub -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -.PHONY: epub3 -epub3: - $(SPHINXBUILD) -b epub3 $(ALLSPHINXOPTS) $(BUILDDIR)/epub3 - @echo - @echo "Build finished. The epub3 file is in $(BUILDDIR)/epub3." - -.PHONY: latex -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -.PHONY: latexpdf -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: latexpdfja -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -.PHONY: text -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -.PHONY: man -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -.PHONY: texinfo -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -.PHONY: info -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -.PHONY: gettext -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -.PHONY: changes -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -.PHONY: linkcheck -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -.PHONY: doctest -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -.PHONY: coverage -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -.PHONY: xml -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -.PHONY: pseudoxml -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." - -.PHONY: dummy -dummy: - $(SPHINXBUILD) -b dummy $(ALLSPHINXOPTS) $(BUILDDIR)/dummy - @echo - @echo "Build finished. Dummy builder generates no files." diff --git a/sysadmin-doc/architecture-1.md b/sysadmin-doc/architecture-1.md deleted file mode 100644 index 92d5a85..0000000 --- a/sysadmin-doc/architecture-1.md +++ /dev/null @@ -1,32 +0,0 @@ -# Présentation générale - -Publik est un ensemble de composants : on parle des *briques* de la -solution. Elles sont représentées ci-dessous sous la forme de carrés. Elles -sont accessibles par les humains via le web au travers d’interfaces -*frontoffice* ou *backoffice*. - -Le composant *passerelle* assure la connexion avec des systèmes tiers en -traduisant les webservices de Publik au format des protocoles des logiciels -cibles. - -![Logo Publik](images/architecture.png) - -Liste des briques disponibles : - -- Authentic : gestion des identités, *identity provider* -- Combo : portails usager et agent -- w.c.s. : formulaires et workflows -- Passerelle : connecteurs vers systèmes tiers -- Fargo : porte-documents -- Chrono : prise de rendez-vous -- Hobo : système de déploiement - -Un système Publik installé ne comporte pas obligatoirement toutes les -briques. - -## Haute disponibilité - -Lors d'installations critiques nous recommandons de doubler chacun des -services, et la mise-en-place d'une interface de stockage distribuée. Un -serveur proxy est en charge de la terminaison SSL, de la répartition de la -charge et la tolérance aux pannes. diff --git a/sysadmin-doc/architecture-2.md b/sysadmin-doc/architecture-2.md deleted file mode 100644 index 29f8dbb..0000000 --- a/sysadmin-doc/architecture-2.md +++ /dev/null @@ -1,92 +0,0 @@ -# Présentation d'une brique - -Une brique Entrouvert est un paquet Debian standard issu d’un module -Python standard. C’est un logiciel libre dont vous pouvez obtenir et -modifier les sources selon vos besoins. Les fichiers d’installation sont -posés dans /var/lib/mabrique, et les fichiers de configuration sont -placés dans /etc/mabrique. Les services et les journaux des briques sont -pilotés par systemd. - -Note: lors d'installations critiques, nous créons un lien symbolique depuis -/var/lib/mabrique/documents vers un montage NFS. - -## Utilisation de cadriciels (*frameworks*) - -Chaque brique logicielle est une application Python/Django – à -l’exception de la brique w.c.s. qui utilise le cadriciel Quixote. - -L’utilisation d’un *framework* permet de disposer d’un ensemble de -composants afin de développer plus rapidement, mais aussi de manière -plus homogène, et surtout en assurant à tout moment une excellente -sécurité de l’application. C’est en effet le framework qui : - -- reçoit les données, les interprète et les valide avant de les - envoyer à l’application ; -- permet de contrôler l’envoi des données aux bases de données par - l’application (pas de requêtes SQL directes) ; -- sécurise les sorties de l’application (HTML) en imposant un contrôle - fort sur les données affichable. - -Dans Publik, en plus de l’utilisation de toutes les possibilités de -Django d’autres protections sont mises en place : - -- isolation des composants (chaque composant est une brique logicielle - indépendante) ; -- chaque brique dispose de sa propre base de données, complètement - isolée des autres (chaque base peut même être hébergée sur un - serveur propre) ; -- chaque brique peut gérer plusieurs sites (mode multi-tenants), dans - ce cas chaque site dispose d’un « tenant » dans la base de données - sous forme d’un schéma PostgreSQL : chaque site est donc indépendant - et isolé ; -- utilisation du front-end nginx pour diffuser tous les éléments - statiques des applications ; -- connexion de l’application via le protocole wsgi pour un premier - filtrage des requêtes (les requêtes invalides sont - rapidement éliminées). - -D’une façon générale, Publik utilise au maximum des composants -éprouvés : le code des applications se concentre uniquement sur la -logique de celles-ci. Il s’agit de suivre les principes DRY (Don’t -Repeat Yourself) et KISS (Keep It Simple Stupid) afin de mieux sécuriser -l’application : la sobriété recherchée par Publik est aussi présente -dans le code du logiciel. - -## Dialogue entre les composants - -![Logo Publik](images/schema.png) - -Le schéma ci-dessus montre que l’application n’est pas en contact -« direct » avec l’extérieur. Elle utilise toujours des composants -logiciels soit éprouvés (celery, requests, tenant-schemas), soit communs -à toutes les briques (hobo, mellon). - -Dialogues entre briques ------------------------ - -Les briques de Publik dialoguent via deux canaux : - -- webservices (HTTPS JSON) pour ce qui concerne l’échange de données -- messages (AMQP) pour ce qui concerne la gestion des utilisateurs et - des rôles, *i.e.* le provisioning au travers des différents - composants - -Par ailleurs SAML est utilisé pour ce qui concerne le WebSSO (le -dialogue se déroule via le navigateur de l’usager). - -![Logo Publik](images/dialogue.png) - -## Chemin d'une requête - -Une requête Publik chemine typiquement par les services suivants : - -service web (nginx) : - -- dispose d'un certificat SSL -- dispose des composants Publik -- interroge la base de donnée et répond aux requêtes des utilisateurs - -service de base de données (postgresql) : - -- enregistre et restitue les données des applications, - diff --git a/sysadmin-doc/architecture-4.md b/sysadmin-doc/architecture-4.md deleted file mode 100644 index a301e0b..0000000 --- a/sysadmin-doc/architecture-4.md +++ /dev/null @@ -1,31 +0,0 @@ -# Dépendances logicielles - -## Service de base de données - -Chaque brique utilise une ou plusieurs bases de données PostgreSQL. - -## Composants logiciels sous-jacents - -Publik est un logiciel développé en Python, sur le framework Django. -Il est développé et testé pour fonctionner sur un système -d’exploitation Debian GNU/Linux. - -Le frontal web recommandé est nginx, bien que Publik puisse fonctionner -avec Apache et d’autres serveurs HTTP. La liaison entre les applicatifs -Python et le frontal web est assurée par uWSGI. - -Les différents composants (briques) de Publik échangent des messages -AMQP via RabbitMQ. - -Publik nécessite PostgreSQL (version 9.6 ou supérieure) sur -lequel chaque brique disposera de sa base de données propre. - -Un système de cache compatible Django est nécessaire, memcached étant -conseillé. - -## Certificats X509 - -La diffusion HTTPS étant obligatoire, il est nécessaire de disposer de -certificats valides pour chaque brique déployée ; chacune des briques -utilisant un nom de serveur distinct. En général un certificat étoile -(*wildcard* *.example.net) couvre toutes les briques. diff --git a/sysadmin-doc/architecture-6.md b/sysadmin-doc/architecture-6.md deleted file mode 100644 index 70cf553..0000000 --- a/sysadmin-doc/architecture-6.md +++ /dev/null @@ -1,237 +0,0 @@ -Autres infrastructures possibles --------------------------------- - -### Infrastructure PoC / test - -Dans le cadre d’une installation de test ou PoC (preuve de concept) il -est habituel d’installer Publik sur une seule machine. Dans ce cas, -toutes les briques partagent : - -- un seul frontal ngnix -- un seul serveur de base de donnée -- des espaces disques locaux (*/var/lib/brique*) -- un système de log (en général le *syslog* système) - -Dans ce cadre, Publik peut être installé sur une machine aujourd’hui -habituelle : - -- processeur x86-64 double cœur -- mémoire vive 2Go -- espace disque 10Go, voire moins - -Cependant et pour rappel, Publik nécessitant un fonctionnement HTTPS, il -reste nécessaire de disposer : - -- d’un enregistrement DNS par brique instanciée ; -- d’un certificat x509 valable pour chaque brique, généralement un - wildcard sur le domaine choisi. - -### Infrastructure légère et « élastique » - -Entre une infrastructure SaaS telle que celle gérée par Entr’ouvert -capable de répondre à des dizaines d’installations, et une -infrastructure minimale telle que celle décrite pour un PoC, toutes les -combinaisons sont possibles. - -La partie la plus délicate à gérer est souvent la partie x509, et -parfois la partie DNS quand il est question de pouvoir créer de -nouvelles instances automatiquement dans le cadre d’un ensemble de -communes (syndicat, organisme, métropole ou agglomération désirant -diffuser la solution Publik à ses « membres »). - -Pour rendre l’installation « élastique », c’est-à-dire capable de -s’adapter au futur, il est conseillé : - -- de virtualiser toutes les machines ; -- d’utiliser une technique de virtualisation permettant des - modifications CPU, RAM et disque faciles, idéalement à chaud ; -- de disposer d’un serveur PostgreSQL central ; -- d’avoir accès à un SAN pour le stockage des données ; -- d’avoir toute liberté sur la partie DNS, éventuellement via des - CNAME ou une délégation de zone ; -- de disposer d’un certificat x509 wildcard pour chaque domaine - à gérer. - -Une fois l’installation effectuée, il est souvent assez simple de -permettre le déplacement d’une brique vers une autre machine : copie des -configurations et des données, modification DNS, l’opération -correctement préparée est sans risque et ne provoque pas de coupure de -plus de 10 minutes. - -### Infrastructure pour hébergement sur site - -Un hébergement sur site est de type « élastique » (cf *supra*), voici -les recommandations d’usage pour l’initialisation : - -- machine « IdP » pour authentic (utilisable par d'autres systèmes - que Publik) -- machine « applications » : hobo + combo + w.c.s. + fargo + - passerelle -- machine PostgreSQL -- autres briques sur une autre machine ou sur la machine - « applications » -- backups et redondance (*fail-over*) assurés par ailleurs - -Pour une collectivité avec plusieurs déploiements prévus à -l’initialisation, la machine « applications » peut être scindée : - -- machine hobo + combo + passerelle -- machine w.c.s. + fargo (porte-documents) -- autres briques sur une machine tierce - -Toutes les machines sont virtuelles et modifiables rapidement (CPU et -RAM) avec une marge importante. Les répertoires de données proviennent -d'un SAN et sont extensibles, principalement pour w.c.s. et fargo -(porte-documents). - -Caractéristiques d’une machine virtuelle à l’initialisation : - -- processeur x86-64 4 cœurs -- mémoire vive 4Go -- espace disque 16Go ; et plus (via SAN) sur les applications stockant - des documents w.c.s. et fargo. - -Le serveur PostgreSQL est sécurisé, c’est-à-dire qu’il dispose au moins -d'un réplicat pour *fail-over*. Si besoin il peut être installé par -Entr’ouvert. - -Accès à un S.I. tiers ---------------------- - -Lorsque Publik doit accéder à un système d’information tiers, il doit y -avoir ouverture des flux nécessaires : - -- accès webservices : passerelle consomme ou fourni des webservices - au S.I. tiers ; -- accès LDAP pour les annuaires : accès par l’IdP pour - authentification et synchonisation. - -Pour les webservices, la connexion sera effectuée par Passerelle, via un -connecteur. - -Si le connecteur n’existe pas encore et doit donc être programmé, les -webservices tiers doivent utiliser des protocoles ouverts et reconnus, -tels que REST/JSON ou SOAP. Ils doivent être documentés et validés. - -### Protection des accès webservices - -![Logo Publik](images/flux_si_tiers.png) - -Les webservices, en entrée comme en sortie, doivent utiliser HTTPS. -L’authentification peut être : - -- en login/mot de passe (*HTTP Basic authentication*) -- par certificat X509 client et serveur -- … tout autre mode d’authentification peut être étudié - par Entr’ouvert. - -Note : les API internes à Publik utilisent un système d’authentification -spécifique similaire à JWT, décrit dans - - -Note 2 : En cas de proxy sur la chaîne, il faut vérifier l’absence de -cache. - -### Protection de l’accès LDAP : X509 - -La connexion LDAP doit se faire en TLS, avec des certificats X509 -clients et serveurs validés de chaque côté. Entr’ouvert peut fournir des -certificats depuis son AC privée. - -S’il s’agit d’un accès LDAP à un système Active Directory, voici deux -documentation concernant la mise en place de TLS sur ce système : - -- [http://social.technet.microsoft.com/wiki/contents/articles/2980.ldap-over-ssl-ldaps-](http://social.technet.microsoft.com/wiki/contents/articles/2980.ldap-over-ssl-ldaps-certificate.aspx)[certificate.aspx](http://social.technet.microsoft.com/wiki/contents/articles/2980.ldap-over-ssl-ldaps-certificate.aspx) -- - -### Ajout de protections sur webservices existants - -Au cas où les logiciels tiers ne mettent pas en place de protection -suffisante sur leurs webservices, plusieurs solutions de sécurisation -peuvent être envisagées, dont les plus classiques sont : ajout d’un -reverse-proxy, ajout d’une instance « locale » de Passerelle, mise en -place d’un VPN. - -#### Ajout d’un *reverse-proxy* - -Un reverse-proxy est placé en frontal devant les webservices, ajoutant -la couche HTTPS et/ou une authentification (par HTTP Basic ou X509). -C’est généralement la solution la plus efficace, simple à mettre en -place et ne nécessitant qu’une maintenance classique, qui peut être -intégrée à la maintenance générale du SI. C’est donc la solution -conseillée. - -![Logo Publik](images/reverse_proxy.png) - -Le reverse-proxy est une solution de type Apache ou Nginx. Il est -connecté d’une part au webservice à diffuser, et d’autre part à un -réseau accessible par Publik. Il ajoute : - -- le chiffrage du flux (HTTPS) ; -- une authentification : soit basique, soit basée sur un certificat - X509 client ; -- un filtrage des URLs accessibles ou non depuis telle ou telle IP - (typiquement pour l’IP de la passerelle Publik). - -Un filtrage IP général peut également être ajouté au niveau d’un -firewall placé en amont du reverse-proxy, par exemple le firewall -d’arrivée générale du site client. Ce filtrage n’autorisera que l’IP de -Passerelle à accéder aux webservices. - -#### Ajout d’une instance Passerelle « locale » - -Dans cette configuration, une instance de Passerelle est ajoutée, au -même niveau qu’un reverse-proxy (*cf* supra). Les connecteurs de -Passerelle assurent alors localement la traduction des webservices tiers -en webservices Publik, ces derniers ajoutant la sécurisation de l’accès -entre le SI et Publik. - -Cette solution présente l’avantage d’assurer un contrôle de sécurité -fort des webservices diffusés à destination de Publik, contrôle assuré -par Publik. Cependant, la maintenance est plus complexe que -l’installation d’un reverse-proxy. Aussi ne doit-elle être mise en place -que si les webservices de l’application sont très difficiles à -sécuriser. - -![Logo Publik](images/passerelle_locale.png) - - - -### MCO par Entr'ouvert - -Pour qu'ils puissent assurer le maintien en conditions opérationnelles -(MCO) de la partie logicielle Publik, les travailleurs d'Entr'ouvert -doivent : - -- avoir un accès SSH aux machines le plus direct possible (sans - nécessité de passer par un VPN, qui plus est s'il est propriétaire - ou exotique). Entr’ouvert peut indiquer une liste d’adresses IPv4 - source ; -- disposer d'un accès administrateur (root) sur les machines, via *su* - ou *sudo*. - -Cet accès n’est pas demandé sur les machines d’infrastructure « non -logicielle » telle que le serveur de base de données PostgreSQL, le -serveur de log, les backups, etc. La maintenance de ces systèmes est -laissée aux opérateurs habituels du site ; sauf contrat spécifique avec -Entr’ouvert. - -Si l'accès web à la solution est fermé, par exemple dans le cas d'un PoC -ou d'une utilisation interne, alors cet accès doit être possible pour -Entr'ouvert (là encore, accès direct sans VPN si possible). - -Si les permissions *root* sont impossibles, il est au moins nécessaire, -pour des raisons de support, qu'Entr'ouvert accéde facilement aux logs -des machines voire à son système de supervision, et ce en temps réel. Il -doit par ailleurs exister une procédure de passage root en cas -d'urgence. Enfin, si Entr'ouvert n'a pas d'accès *root* à la machine, -cela signifie que la supervision et les mises à jour régulières (au -moins quotidiennes) sont opérées par l'hébergeur ; condition sans -laquelle Entr'ouvert ne peut pas garantir une sécurité maximale du -système. - -Enfin, Entr’ouvert ne peut assurer un MCO efficace que sur des machines -Debian GNU/Linux maintenues à jour – cette maintenance peut même être -assurée par Entr’ouvert. Pour tout autre système d’exploitation, un -contrat spécifique doit être prévu. - diff --git a/sysadmin-doc/conf.py b/sysadmin-doc/conf.py deleted file mode 100644 index a85cfd5..0000000 --- a/sysadmin-doc/conf.py +++ /dev/null @@ -1,355 +0,0 @@ -# -# Infrastructure de Publik documentation build configuration file, created by -# sphinx-quickstart on Mon Oct 30 17:41:53 2017. -# -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# -# import os -# import sys -# sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -# -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -source_parsers = { - '.md': 'recommonmark.parser.CommonMarkParser', -} - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# -source_suffix = ['.rst', '.md'] -# source_suffix = '.rst' - -# The encoding of source files. -# -# source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = 'Infrastructure de Publik' -copyright = '2017, Entrouvert' -author = 'Entrouvert' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '1.0' -# The full version, including alpha/beta/rc tags. -release = '1.0' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = 'fr' - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# -# today = '' -# -# Else, today_fmt is used as the format for a strftime call. -# -# today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -# This patterns also effect to html_static_path and html_extra_path -exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# -# default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -# -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -# -# add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# -# show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -# keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -# -html_theme = 'alabaster' - -html_sidebars = {'**': ['navigation.html', 'searchbox.html']} -html_theme_options = { - 'extra_nav_links': { - "Guide de déploiement": "https://doc.entrouvert.org/publik-infra/", - "Guide de l'administrateur technique": "https://doc-publik.entrouvert.com/tech/", - "☜ Accueil": "https://doc-publik.entrouvert.com/", - } -} - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# -# html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] - -# The name for this set of Sphinx documents. -# " v documentation" by default. -# -# html_title = u'Infrastructure de Publik v1.0' - -# A shorter title for the navigation bar. Default is the same as html_title. -# -# html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -# -# html_logo = None - -# The name of an image file (relative to this directory) to use as a favicon of -# the docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -# -# html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -# -# html_extra_path = [] - -# If not None, a 'Last updated on:' timestamp is inserted at every page -# bottom, using the given strftime format. -# The empty string is equivalent to '%b %d, %Y'. -# -# html_last_updated_fmt = None - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -# -# html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -# -# html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -# -# html_additional_pages = {} - -# If false, no module index is generated. -# -# html_domain_indices = True - -# If false, no index is generated. -# -# html_use_index = True - -# If true, the index is split into individual pages for each letter. -# -# html_split_index = False - -# If true, links to the reST sources are added to the pages. -# -# html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# -# html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -# -# html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -# -# html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'hu', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'ru', 'sv', 'tr', 'zh' -# -# html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# 'ja' uses this config value. -# 'zh' user can custom change `jieba` dictionary path. -# -# html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -# -# html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = 'InfrastructuredePublikdoc' - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # - # 'papersize': 'letterpaper', - # The font size ('10pt', '11pt' or '12pt'). - # - # 'pointsize': '10pt', - # Additional stuff for the LaTeX preamble. - # - # 'preamble': '', - # Latex figure (float) alignment - # - # 'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - ( - master_doc, - 'InfrastructuredePublik.tex', - 'Infrastructure de Publik Documentation', - 'Entrouvert', - 'manual', - ), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# -# latex_use_parts = False - -# If true, show page references after internal links. -# -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# -# latex_appendices = [] - -# It false, will not define \strong, \code, itleref, \crossref ... but only -# \sphinxstrong, ..., \sphinxtitleref, ... To help avoid clash with user added -# packages. -# -# latex_keep_old_macro_names = True - -# If false, no module index is generated. -# -# latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [(master_doc, 'infrastructuredepublik', 'Infrastructure de Publik Documentation', [author], 1)] - -# If true, show URL addresses after external links. -# -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - ( - master_doc, - 'InfrastructuredePublik', - 'Infrastructure de Publik Documentation', - author, - 'InfrastructuredePublik', - 'One line description of project.', - 'Miscellaneous', - ), -] - -# Documents to append as an appendix to all manuals. -# -# texinfo_appendices = [] - -# If false, no module index is generated. -# -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# -# texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -# -# texinfo_no_detailmenu = False diff --git a/sysadmin-doc/exploitation-1.md b/sysadmin-doc/exploitation-1.md deleted file mode 100644 index 6c95eaa..0000000 --- a/sysadmin-doc/exploitation-1.md +++ /dev/null @@ -1,6 +0,0 @@ -Notice d’exploitation -===================== - -Ce document constitue la notice l’exploitation d’un système Publik -standard. Des adaptations sont naturellement à envisager en fonction des -besoins particuliers. diff --git a/sysadmin-doc/exploitation-2.md b/sysadmin-doc/exploitation-2.md deleted file mode 100644 index 7abc41c..0000000 --- a/sysadmin-doc/exploitation-2.md +++ /dev/null @@ -1,48 +0,0 @@ -# Pilotage - -## Pilotage du frontal HTTP - -C'est le service Nginx qui gère les requêtes HTTP, son pilotage se fait -de façon classique : - - # service nginx stop - - # service nginx start - - # service nginx restart - -À noter que lorsqu'un service Publik est coupé, Nginx renvoie des -erreurs *502 Bad Gateway*. HAProxy réagit alors en tentant la requête -sur l'autre machine. Si l'autre répond aussi 502, HAProxy peut afficher -un message de maintenance. - -### Pilotage des services de Publik - -Tous les services sont pilotables avec le système *service* fourni par -Debian. - -Liste des services Publik en place : - -- *hobo* : système de déploiement et de provisionning -- *authentic2-multitenant* : gestion d'identité et websso -- *combo* : CMS des portails usager et agent -- *wcs* : moteur de démarches (formulaires et workflows) -- *passerelle* : hub de webservices -- *fargo* : porte-document -- *supervisor* (cas particulier pour le pilotage de hobo-agent, - sous-service hobo qui sera bientôt piloté directement par systemd) - -Pour exemple, pilotage du service combo (portails) : - - # service combo stop - - # service combo start - - # service combo restart - -S'agissant d'une installation dual, ces actions doivent être effectuées -sur les deux machines. - -Attention : si un service de Publik est démarré ou redémarré alors que -PostgreSQL n'est pas disponible, ce démarrage ne fonctionnera pas. Il -faudra redemander le démarrage explicitement. diff --git a/sysadmin-doc/exploitation-3.md b/sysadmin-doc/exploitation-3.md deleted file mode 100644 index 5bd97df..0000000 --- a/sysadmin-doc/exploitation-3.md +++ /dev/null @@ -1,45 +0,0 @@ -# Journal des événements (logs) - -L’historique des événements applicatifs est accessible via l'outil -*journalctl*. Par exemple pour suivre les événements de combo : - - # journalctl -fu combo - -Pour suivre l'ensemble des composants : - - # journalctl -f -u combo -u authentic2-multitenant -u wcs -u fargo -u hobo -u supervisor - -Les logs HTTP sont ceux de nginx, fichiers textes rangés par service -dans */var/log/nginx :* - - /var/log/nginx/authentic2-multitenant-access.log - - /var/log/nginx/authentic2-multitenant-error.log - - /var/log/nginx/bijoe-access.log - - /var/log/nginx/bijoe-error.log - - /var/log/nginx/combo-access.log - - /var/log/nginx/combo-error.log - - /var/log/nginx/fargo-access.log - - /var/log/nginx/fargo-error.log - - /var/log/nginx/hobo-access.log - - /var/log/nginx/hobo-error.log - - /var/log/nginx/passerelle-access.log - - /var/log/nginx/passerelle-error.log - - /var/log/nginx/wcs-access.log - - /var/log/nginx/wcs-error.log - -Exemple pour suivre ce qui concerne combo : - - # tail -f /var/log/nginx/combo-\*.log diff --git a/sysadmin-doc/exploitation-4.md b/sysadmin-doc/exploitation-4.md deleted file mode 100644 index a9c16a4..0000000 --- a/sysadmin-doc/exploitation-4.md +++ /dev/null @@ -1,58 +0,0 @@ -# Mises à jour des composants - -## Fréquence des mises à jour - -Entr'ouvert livre une nouvelle version de Publik les soirs des 2ème et -4ème jeudi de chaque mois. L'installation peut être faite aussitôt, mais -nous conseillons à des hébergeurs tiers non infogérés par Entr'ouvert de -faire la mise à jour le mardi suivant. - -La mise à jour provoque une courte indisponibilité du système : elle -doit être faite sur des heures de faible affluence. Pour information, -Entr'ouvert effectue ces mises à jour autour de 22 ou 23h le jeudi soir, -en attendant une baisse de la fréquentation visible dans les logs nginx. - -## Déroulé en installation double (load-balancing) - -S'agissant d'une installation double (load-balancing entre web1 et -web2), la procédure générale à suivre est : - -1. arrêt du frontal nginx sur web2 ⇒ HAProxy envoie tout sur web1, -2. vérifier que PostgreSQL est bien fonctionnel, -3. mise à jour de web1 (procédure ci-dessous), -4. vérification du fonctionnement du site (parcours de 3 ou 4 URLs), -5. mise à jour de web2, -6. relance du frontal nginx sur web2, -7. vérification du fonctionnement du site (parcours de 3 ou 4 URLs). - -Attention : si un service de Publik est redémarré alors que PostgreSQL -n'est pas disponible, ce démarrage ne fonctionnera pas. Il faudra -redemander le démarrage explicitement. Ceci signifie qu'il est très -fortement conseillé de faire la mise à jour de Publik indépendamment de -celle de PostgreSQL. Entr'ouvert conseille de faire la mise à jour de -PostgreSQL **avant** les composants de Publik. - -Les composants de Publik sont livrés sous forme de paquet Debian, leur -mise à jour suit la procédure classique : - - # apt update - # apt upgrade - -Il est cependant possible qu'une nouvelle version demande l'installation -d'une nouvelle dépendance, dans ce cas « *apt upgrade* » refusera la -mise à jour et il faudra la forcer par : - - # apt full-upgrade - -## Mise à jour PostgreSQL - -La mise à jour de PostgreSQL peut être faite à chaud selon les -procédures Debian normales. Durant la mise à jour, les services ne -fonctionneront pas (réponses 5xx) et HAProxy délivrera une erreur « -maintenance ». Dès le redémarrage de PostgreSQL, les services Publik -rétabliront les connexions vers le serveur SQL et le système sera à -nouveau utilisable. - -Attention : si un service de Publik est démarré ou redémarré alors que -PostgreSQL n'est pas disponible, ce démarrage ne fonctionnera pas. Il -faudra redemander le démarrage explicitement. diff --git a/sysadmin-doc/exploitation-5.md b/sysadmin-doc/exploitation-5.md deleted file mode 100644 index 6f17125..0000000 --- a/sysadmin-doc/exploitation-5.md +++ /dev/null @@ -1,33 +0,0 @@ -# Support - -Les moyens de contact pour le support sont : - -- L'extranet projet avec le gestionnaire de demandes (accès privé) -- La liste de discussion projet (abonnement sur demande) -- Le courriel spécifique support pour macollectivite (lequel génère automatiquement une demande dans le gestionnaire) -- Le courriel support générique d'Entr'ouvert : . - -# Infogérance - -## Périmètre de la maintenance - -Lors d'une installation auto-hébergée (ou *on-premise*) voici le périmètre habituel de la maintenance : - - * Maintien de la sécurité des données (protection, intégrité, et disponibilité) - * Mises à jours des logiciels Publik (correctifs de sécurité et évolution des fonctionnalités) - * Intégration continue des évolutions liées aux demandes du client - * Le système d'exploitation des serveurs applicatifs Publik peut être infogéré intégralement par Entr'ouvert - -Sont exclus du cadre de la maintenance : - - * Le gestion du matériel est maintenu par le client - * La supervision est effectuée par le client - * Les sauvegardes et les restaurations sont effectuées par le client - * Le maintien des conditions opérationnelles des systèmes tiers (bases-de-données, serveur de fichier, proxys) - -## Pré-requis - -Le maintien en conditions opérationnelles à distance par Entr'ouvert requiert : - - * Les permissions root/sudo sur le système - * Un accès à distance direct via le protocole SSH avec authentification par clé, depuis l'adresse IP du serveur de maintenance d'Entr'ouvert. diff --git a/sysadmin-doc/images/architecture.png b/sysadmin-doc/images/architecture.png deleted file mode 100644 index 1fc91cb2dd4b522fa56c9635bec9b4a0309ea91d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 45528 zcmb@uWmHvb`!Bp$gbE5GsiZ|CqI9c-64D{9NJ~j~STri3(jeX4?S^I1EEWxlNO$*p zP4@Gg_na?hjQ<$t!yb+elNtBC@9X;2J%dyp%AF&=M2teA&ONvaZ^V3A| z6K6BrYxw7k{ryLdC=}Uc_>T#XdU)3xg(?nyAbm%}Eq-B?@T11mFlP0hV9zKUcRm~Q z=_@@9SFXz|ykIu<>*?VpN>B51dh?Qb)Y#9-b-K23(sPGweqrh7(n8{=gyrd)ze5S1 zZks1QG8>#uoNicV-RsR%K8Jc;Y~GpZ6(?ZB;WFQ!zjN`n*}?Q;<+$OeYY*OYCVGY2 z3|G|GIM4TA*BTu!-0ya!{VqWTN)li#jz~a&+I>9xH+fY zJP&qO?Yvi8X_B1h`YbJUk|qa=O+L}_S=_W)|JyFZV5cp`=e4s!dX7#Y{!;%mYNe1> zIZ+zBJd&>P;r(^Rk1MYw=mV)Z`@L&1gs9UDXzHDEYh1x~jz=Yb_U^qQojU84q@^q3 zx^%FK&DEyZUL3A;wMd%m%T}KarsAxaT^KCQ#vgZ``W}6aIA&?2nxaxBgqq^+K0WH_ z(EE~*y>Vr>dZvKWfp;&5+2$N}dUI*Cb~%KnVJ9=egaB0);YaAR7^y6Aae_<7p|8-W zk&)l3Z>L(yA6b1pjpZ!ICSH{m1W(xzw`I@~K3@6bj zH&Q&3gBbK#XHvD0UvI?MAAK-6l*PCW?LXSsW@)Z`hm5O*Hb^ zH7(p)9FF+<>GpIAn`)|<^L6{;M0~$_YAziWe!htPsSidu=ZjE&cFe~9<7&gdhsv!x z69sH^U%U<19II8UC<}Q0tK}7CGehpu6OL3#w-w`p)k#dH*L;4ZR-tZrj-q`;5Tp3s zRbqdNn)zl$CEN z^Mup{uPh!XKRJZwe^&2vxJPn_VSms($@`tS=hoGwaHbVkGDfk$i?NvMk`iLn3Mq`I zHB2>$S~&K7xfM3H6s9pceA^OxkMsKB{`T@%fkEv%`Q7K+2T7;0v9Z_7$;Xo2`}1v zwZpkA*KJ3tT+4dvi2sbcPbW;(=wPx{j$p{UHGD4&l~Jg^P4$y$-6mFXDqd384HhV) z6L_YB8Lf4l#@XC9@5s~3e3sO%rgndkSkk5&wq;?wQ8GeHtIT0^ zwl}kP?tr7mRjk2oyrKS#4hnbe{@aNR^wHktyt3;iul#D?vWHtZ32H(Z-jisD?u8$) zq@U0Ic8e1U8m)7`eMcv887hNAS>zm;%H4SfM6tkr>Ye&zR?OJ(F_0 z(7P152*$&^R+kIN@QKJ64;-Y!&Y{k`AZNWycs86;=$b;zf|^buk7}wk?#Vxat1I85 zIUnc?8&cfB_GLA&aCMUGP^7<_>P+%=h4Rs;rLfwxZGBstzgdOjW6$kH+N&sLCuGz| zX1B^+m&fV|NvKCI#!Pc+WOb2xm-lq(r#KZCiLp*ZzZgT<^$pK@Guka&lN3C~y>@=R8Rww7o;I@A6;9r?4u7mEC$kg5C>|_<)c+crnXZ(C z)4Hf8LGq%eLN*I~R{JiipKmYUtMS^M`cO~Jt*h~X^G1P$mNTb%=0lq->;>n`j;`@b z^kmX5x+xmP2d~f3$;XR(3Y7Z@!ktfF(rtDUTgpuG$-xyp{*rC=z;@J(kb92huUj7R zCbnGJCOnc=*++FY4%!-nW{uMM5+rh7X&fzw!v(VDbOe<76Gm(%k0|CgP+f_dk#i*82GHD?s+?i*-9axzuAiz?p1 zHGaa>Rh%l{;slq+)~0^&I4d5{E7Hm>AF1Ml*v{;pIJ??R_FH@!OZf z&sB}#JIwuY(zzoE?>#SFn4z!wITVn(ElQ$u>*-hfyOu`%oBsHxTxxxfeYni0#e9#v zz9)#fQfsU>uo~i{n4iG{`_MP0;lAW=r!60(CR=vv!j8nEPGL;8?xDq4-L7=Gil*P= z(ZU*v#ixaSX21UlYEM|KO`W*k+QdP;gex>6i)g&b{9ZNTfr|gDnS1!Ur zGX$&g;4@`Pwe21K{B+xrMJcwAuWI^mGD6buiZLE)S*i&w)RkG#5kMuE^SE0k_X89_>}WYgos$e z>FsdK)e`Zi=hxAwD@1rCE60>hp_lk`@^dk{McUb>HC6li@`UO&I-QB)jnB7>{Up!W zI=7~3Qe!_@V%6#DbEtpHx0dPPg>0$s{f)DWb^q;-ha!LBN4Vn)%f|K@HcFZR`^9O# z-^O@jrkhEo&k^157itBszVO3xE@GVvEQ)UT@`EGjh2M|XD0A`g{nogP01#)(NGmTz`S z;lqvV>fWDNlW0)qk522LCdW4ll;Q-aLT0878hyMUpsAZ~Yy5y7^J;tUyZNYX`ipFa z>e8*RDAclS6PlpQkn_%B?uEoY5&qO9ioiSpyD@zy1a43k35^xZ%WwBFD!L%W+Jk`0 zZ`H2p31&T~^dmzjiL_RZX}5&j+;8(mw?e9z%lBS8RlBd7p=&XxPRi){i9g>WXBXWJ z7kM9J*3s{<0K>*Ka7E7sOBlqRW>g+hjhO%ZxSGUk(&qJadjN$>xd*pX#95e7&xq=r zAFi~s%gMm2=^5uRR|Xnyh0MT{q39j{XlDuEuqb$@*BGF8#Z z5n*sday{LG+n99F1%uK_cmJ;sxx+U#U+usI^le^Rg+&PX_2v<7i!ZgihxRm+*4w*9 zaO#sE+IZ$nTyEkd->u`;tDt9k*Lezsny@~t!rE|7N;!g0B9-0=ql=~%r1*oC_TP(GK@kZ_d)z100#t`X+77Zc<3sVk8?tCQoz zb>vT_??-cBs{?%=qWm0Td|zzL_9h+7W+u%c2)KjE_h1!p&4>4ZbFbyFb}$Iqj)>0o zq>DzwXj3E#F-?%I{cW#x-QQY#wa9o1)g%Gupm6y8Pjzn4`_V~YA1kf|K%r2mI%+%; zCN%uhWKCX#{O^kH|Mb@Z_M32zY=?jlc+Gx(jJRP~_ff2=6@W@wv8O)y^(-7y z-=gE+pV^wVE{lUFTnV1_(*mR90p?(LJy)~P&^uAEar=r#=)n=%&z0HuPSqaLDVDLh zxDR_02*8TG_TYKz60b~JvSDN6u|CSEX_*J*b_z}XG8e#%CJqOE=SJ5yKm~WJ?T-OH zjlRcA;vO3_u4{k3Z6L!l734^?x%Z-`9_AV+faUGyKR@y^x&7Y7d&$_?h?-zHt#iJh zBS|tz&1l?XJ|86KgYKl}jw zPTXf>Ms*{}_o!O7J(hnuhU?MuL!e^cT^0r$27r!P&r^JtJU&>LnRj4)82|OA+sZ_Q zbEsPRhGj-id6dWMDu#)yv7fQw;AYf$6sJE(&PpA zKFA2WlEVnkM65t}d{X$RG-CrHxHN1k#@aBZNBvALqjpnnoPk}}o*+ES*}yk6-|^W% zQOZjeQ9-*g#katjtby!~dI5nH0)o-`IjAp+UHuZbK}}hmZ6%|L_wVd=tCn=*Yf7_cQgwrIQ>MB0Ldmng=9@fCim9H^Ox%=umvhsk{j@73yD5wpM3ZaKvU4-<&PRdhb{cS1huL%T695 zbWwR3dIEw4MsHh`h#E+fbvkv*a>M@8StU28 zT68eNtosNi>$k`D;n{=QCtE{Y^|nvCGMYU9>rAhqQZS{lP~tWsJZxZmhsrF^ixX-oD^8zafcGu2QNn!8^WfAZ&h+P1r^&~)I5KA1h8S9h?+Ca8p zf{3%(;%KcP&n)-(dd!Alx0Pu$ho(=r4H=U}Xv%n`UBhn1CoTLrT%n}FXt7h$Slr%u zspZxi1~q59gERR3aaNX4RdDp8E?lJn$>djM%PJFD`Icvsy$&~V3780`aka)TC$dge z>=!6iI}&K>ftJ`Vwoz%{mFQc)-5Sy7y!Wz{pYlHlrW0IZn3wP_9OmOyjeS$IVR0pO zKaY<`yh1riB1t5p&_Ywr{~en8uo>qlT98U`z073wT6!iM!!@X>7}>B(*#5oU*-fh} z+1Sfrcao}fDH4$;AucYP)L^Cdr^+K;*}C!gXrE;sSICq7AXdVlf+cgsZf~?}E_ibP zPUPcsPxff_NL!_qXszu1vfrs#5~VzpwTA4|+on(_T(;^XeAdDSj`clqiC718`WL|MrN*nxD)G4uSmhV%PY4OK1AKb}M{1h(g8LuWm zS;QvuGkW!vGgqQ945*H1t&y{czn!{IL&F?}*;F+gq)F=qSne4k9hX-uOUq!1sp#B- z#Qb3O%r3uzoXJAQ@(2wR1~juJbKh%IOZOo=?@KtjA!V3=BFT zi){I-v48$Xc7C+-()~y#Z%zMaDiK)L&*2ymHPu`R=gog;zlcyPS3RGSzu>L(mbqC; zo9T0^vG)lU?zvuN5=}%|L4Kt~!} zsYs}{1g-ikf^|RWb3!s$5@Q`D*h) zKIeNDC67muBHqLdj3#&gP>y77T50ALhWq;mf8Ep^%{k!#D<)AsvkUqu?#g<6pR{qj zR2wv0I`)}r)qL67dm0la|9!B+G%rW*=QRkSd?C{IeUb@Pt+H+<|Q9GIi8 z@2(C)%i7lF4d&pxxE&h#$uO^l3Ubd;gXX4H&us% zQWk=tXuWcYA?e$mTMKe6CJQU#L(IkA`&(D(?bJmgHzjxs>vm-4U9cguxtdRx@3(IE z=O|31?juW9m2RR_Vt*mTu-?NvyZ%9$N!?_@=6~m$wwkqSx|f9=flX{ie*#R`9<{Q; zIF|c+lxj&iuQzw2h*OhgsuuvYaZCsa2hJ1=ede`LOAS}pBY5Qb&En^!!nV)n{y4?A znTyLtUQ~LiQIs3D&SzOFfa!B{mMG7{{&^tN`-|6hhcq|*UcPT5B32G<8i@AKSDYx< zh7V##<_}ZPoy*5q@?3S!?qR$VMkko~Z1HBHcX$*_#`u|fqs>Hh^FkD>voF%2RGW|A zUsvFGHda@iHTS4b^G6OHGN-&ip{aW>L72dAt;GPXT7zuSB>Bv%BNZkgd*;d-a?4B` z1`7RmMY(0!X)NZT-g#<9;!~~9r7BBb_2BBTxRCwro9J>~ss8@$taCX%&!Z-77g;|m ze`1i_?N3vTU`N<>{S6!4Ok7q_d|Q5#@pwWJiWl+{2-IPgkGx5+EgXjYIs@=6wDdj6RJ%haOx;4F?R~ zYdPYk-=o+|@7u|o99BZB>OmzAHubNyNu8+O9|FR#zd4*(7* zmVXqBX!z+LEnnTqmFiL@=BUXpTjt!<%wL z@^{XJ_sHelkS?&Fs=KpjUl^c=VW@*TcxG<%lyj|1IjQZz_jV>pA1?*hwzr_Ggy0jM z-I1noWjuA9s=;B9H_zm?((GDOwWdROszaAXuk6X^kkb7TcV+AMj3di(_9lOknM3pc zhy$TtHX{mQf~2oRdP4*Vt&1o9%u^9{G>rfqMg-oBXUa#<>5o)7EDwmYp!__68s5~Y zc=o7Tx7@0|dmCv~rGRx01jx?#y?8$Lomz4(L0570|kEPE2|3Cddj-43p$yD}L<4i9w z1cdtjpCw*=zeeP)ns|-Ra9j^PLq1U-%V)V(@3XwIZ+%EQ-smgY5BeJM!f@sC6sVJm zC!KlTXI`fka}IU%64*ID=2A?umd?lXcw@N;>>+X<2lGphN!){Pc;(j@QR#`dD3m`u z-{T2+d0L7qO@jQkBW@*H_jeBoP@c%`p6|az%_8l$y@x17HUFv(c&MXrIQfgB3VyS@ z1OvIi&hTN%(6{GY?zP!tzFYnjloDGOTLTcI3JP~UFon>s1+mRg;ZVm z_gsi<97Zo(lAtA)uc>lqs5hP)X9R>flLlb5Cn5+AiW{O<>Wfs%`qRrrI ztF<66_Bv=K<_x{J@G~t%3>o1yEF#oYXO{rAfAV5!i-ZbJhD$qFE5B_v*Jm18HICql zas$$J&jRg+uIz#b2q*-g1o7mFzlZMI-MO@i_G<*4tc5u%>gLG|*yvT>*BSTS=$13_ z*jm`td_&6c`jmt%NC9Em`MR2~$tX}whR9G8P$Adz`hsw6CJ8U0H>LX^*4|cVY$S&T zig-4DH|@{r1Q3fL_dkEazZgWKN_C2##G%J4L4y_pRsQ$#HPk@paiIUr(>bqO$&vAa z)oSAd43(w~@e9GBbhW;UgW1D|m4hl=4Q1HrG{_~!wfMo9@-Guk~pRX?93dy^| ztfE0A#jA*HvMFk{y@Nu*vwp1l&$QZOFhp!h&>3!Y#PZJ@)hr@fq=qY^)=}^P*>wK* zu1;Q@)yayqo@nwPjRIlwpP;ifK8RD8Be;(!+!`cnKs?jsv(?i3hr}PER?JT(@cRpG zCli?a2t08g3j?NGPw#&abzS;r6u?vQ)Q=C1pS|CoXqSj{>!7no#frdPWfMDS_+Ljze76P!Wo8#mU#a&{hFfxoqi`U zcnK+WND3g9Q@h{=;yhW7y23DyJcwkee>VN!ck=HgY!LzhkZpK(l;A|zhT&j;3`GD+ zF*sN-2lj7auOW z=^^6tb@1~3f}|ALU9$*^X|-8rqQUTL6{3p%h!!+SweYuErf1dBFX<9r~3i1YxkB<)BMO+qyxY8y;1zat- z;csUIs+1lu_;^Am)HcoHqWCjXk`=L4K(dlEdRqP2Z+4>y-2Dxi(7o3sWy zONzA-P8jW}FoOW0&CuJZpKi=5)<$q*j5ZM>$}nB5U%KsR&FwEHVyGilxLq<15SqS@ zYEq}am~|DcYXcYcEU4s!dz2MO(-?JEEP49vM)pU+x;BCd-@B32vLdvo9U|nAxs7P( z(4%;3wR;~g@mn3xBU<1uAuiN051-}Zv=?}Y?T)9P)<^D&rtWF>3!JporJXfKO^8B| zrkU*>Kx7-|sR4~_wFFKitFgjJ;dku7%DsTBguDN}jtm3~B;O;mX^8n&nhC!{Fg5qk zWFRe#pKtYlZif_Z=bZdyhwH|d8O{c}6=b|(XHeufBj>+?k{WK!Q&s^OI%q5VDZ!?xJ?xumv|!@K9?`?6G%r2kZ*4t_+J-Rx;b zAwdk3Z4P31;^7l{UFbW6r`tNi&K>G>6SX1^LUUXcHMK@l>Y*+%&5b(oR1Az&fC9-? zhO;OyGCYzA7Q$=9is+}LUgNdP4WjpwCWeq#Onl>ioj{6>jr$qmZlcE@iqIN2Cik@5 zKZTDPmxc)z(9?oG#l_L4t=eFK+<3?T{yP>4DQeET3={NGdUvJu6^fm$;#8e7EMIM%e_u8Dx_Eclp~6H&QwzZK z`>XgG1#-!&?43kpj0_04$QQt4=LI;VH3|I$RB)1(0+`3$0O&n9?gS9<0}40awnq`D zfgq6ytxJUbd|lt9E8iND?J0((dPomYPR=EQP-^F@agZ^fhd37q7=w1q%h22v_P!k7{AUQy}oz+px^@Gfs~go%EZQ zj$j21sX(A6qSN#t3%MfI3Z`f2 zGU_x@9Z?M@uj~ejvYc&JhDwry3+D(Y^n-KFk z_~=KtqW(Yi8~*2Rh0g>Gs>6v01`U(V^Y713d?%=Q`(w+M2k)GV34-E3Sovri)}X~1_Q@mDF*HJ zDUW)_&m0ij8jZJgTE67#RsI$P@n08dK(9}U2N9jybX({OAW|ANczu~#kt|9Lm7ZKHTxbNu-?svZ zM`nTXp7am^&3OW@cd*!?UtDtrN|DxKtNiKK)GklsL5Vh^amlT`ZCUu+9(Sez>0yXP zz_a3gr`~W!;NO#RWc9aBcP1$h!W?}EVirRmEF2%ik~`mRLJ|h|ptaPM@@0jB_2E-{ zm&U?MtJmOD!PEQ9oa8>#cwzC(O=2SKc9A?xv8Upl?gn09M@%V~sA@3*fzT~rT41)8 zM&l|GB-MAxZD-{dL)qoeqb4PYLq3=GATrivw#PJ3t$BfwYytdF_=D*vd49xg8wzwl z@CcMzK5&E<$Ld9WL#Vk~o`HI;S&Km^byzM4-gT{`1io<~^K9a(!#qt}q?|OnWDOD3VgMl0h>$f+Oda z!vNVa`Ojx4SjyZ^$U@;NlEZMWv>hel;O4HHMA8k9fg$EoT96m*ko|kUD9BFaLRYac zLTVRcLKafdm}4Hv?1JW@F~Y!H+Gl|? zD}&o<)T3_Vw~g4!s1*}pSqMvMO7U|d7-y|NUvCwk>2uQ)M7A#{`|gK_FR?1E+92Sg zp?V0v3?Xn14WMx5p%Zbk$b_*mAf9(@fd~pb^29N7~wb}w8VK~QOE>uJ7 z5pPoI8z-;j*B`_zlsMezm8kjiJ$gPFO_Ods>sgEWs|ePCvbCdZep;DjubGpI=ywpp zs*rG-0(*2W1T>9Wf#9TYP8*e3s9sOl2BYm8Z67b<$P6P+?1^}X-tTIlmS#M;6!`># ziTa!sXza)g0if5ZaMFRyw#cC2`8Ypnru=7;WMgdb8sf$9XRTN3Y5*i^ZM8xh%ZZx0 z0qcgPc=|6%vqGKQs%@^})TrxtLQ3jEvXzoXh#G=pJA&5?xO0>fL^dBOW80Y5fHR{| zMeiz4@$9ZokJlrqEb!>8yNXRPkF^W*A6(d>HJ8~fpv20BUD|x$=EQXG&)uc~W^Ti} zfsewD84l}zm1^JocD``!zA?c8FE2otjgdvX;~+Yi-Mpks63@iE_xdur-820pjKENRPNVlaeklE>sd=L4T`C0R}bwAuN=&RVQ-bb^j zw*fnHFBDGM)`eLT3YnB)amvQOv~@58rk4F0Z--DeQSumieNLEEGfrVngZN7>Wm(qD z*r0=!>JdWXmj{YJtJuqILgg4M&?pHYBw0G!`0na02qUV4ws;GD^rf4X#f7ZZn)^}7 zKRVUV(^ZqD{LL%NEqmKQ9{CjZdCe9|pe9}pulL@DdF5>V7I^>bh9s}Ytbr-^WX5;e z?$3OV2!$>;Ajrm(xjh6lD)b~m$Zfp#v;lW|B_LyaD3;$kw9b8fNSu;j2mH^{P=t`* z7`sph<>v2CsH^iFGI_wKvWi{j9<%HOiR2r*m1biYwhOky}AdaKI!-a|4c@|UoMDj)ZwvNgqulkuUS(Rtz1DCMI4ceX_1QbX7YpAZ@l_7sWiG;dE2g zdt9#2KgRA7dT;TKB$*0mfV0q!7;6C_+`7Y%%d9Zkh!iirE11Bq{(givx>;+XBb9j4 zR>a+W9I!k4ITwBOHY?LxDE#X_IA-5xhARtyU_fi{0)tZqekvGBC)hDi?^*c+O#$o=F{22m}8#05qo{ijq@U{br9{mZu)-DlH396=+H zc~s7|)RX?>Z3qnyOXX7U5tlpzv{556XNFS8cmzAyKY-4?`-M@8AAgB}3xNE_Twict za?o2*Jd)*dU$ATY^8Ju{BbzAZ-eM;uA+@Oj2Rc$+H>@w7fJr^RyE~m^{c?(aY(SW+$j|ppCdYT&5x1^$x0O8Nb6aNajZ`}_6?uBC z*dWEC$vlfhKkU+R$1w>d+loQcrlp+Tv4o>hLSQ#(Y z<9r&b;G|ldHYZ@0n)y%7JqfXHF`gK~gW}Xp+W+}Envi&*#Ph6Q;YpcCO_ZNp6XnKz z(oRr@Aj&|^_QN4LDrl_#*Ix&wA<@gO!9`$xg)RtdBNwBO5Jo&C^U7139>0eFMLyX` zOvTA%|HRe4o{FIuJK<_eyoibdSGkf6sg=SY2GOm0RPiFCf;1SkEf;Drs7|=aD+BFu zf?-hhtc1seympEp$Zc>{Ge<)f_(&)?KC~dEl-fLl-1uz)+YyVA8s{GsyeO0yD-sPI zf@W-m(D`BUm=>7a9v;nlU?7MgGeHG%+Gdy;Cl+V#nQf+%EHf47D~%ex3G@MbuZ zr0v1MdS@FTqbGg2+MOT8+)LK%7a4D$m@mLgx3f$4%{OXnNE5b` z(pg$jmuK^kOP9@2{s&1AOBHe=u>yn%AadTFD58w$XvjVvvg*9^lVocHX~Pa0X15#g zj>K9!Xc286jC?E)0A;j62?_&V9oO6m)crA%m>qP0^wCYoSy*xD6gBDBLm(-RT-?KH zeGBr%ba=i+p%CEsE+%Vf0e>sV6P_v?W(79(PmAG-{8e~_OL)Emp%B%kg)Ia8#FT93 za~$wc3+W;;AQQRHAc-811AOLBL~U`8Kc(wU2r)RfBkEG%w)&f{^y#;?%F)R?J8Of2 z923@MITyHf`94Ecy~7BAk=_KLTjywnS^K5Q1lKX%7leci#C-5ZOgENBhX;xtzgUIJ zJWuw{{TV2iVMtE`xWk7ZsbBs4Q$%;M?%Uk_>(V|0dCy?7Byq#$ACPwn zgZM1wek4nn`#x)u*OQ;|!o51sB^~iXh?gK#ZbfuEhQ`pXd1vAUStz@D1}zj(Vr&&G zhr7t-Q4vg%0=52@zn8;dOfSKd6IB12m)w*}b)Jw2I^LnO@x({9jNjh*!4~CTh_$3= z^_~N)Jr=Wr^CZ?9f_1Q-tM;?y)(tqLD=dC;scd7I;nvELyUJ4MFJPky zoa5%y#2(0O-#K%jPc96Xnn(f`d|C~>9ut_;W~zsQ14eAoF_AS)9}RHD0(>wbV?hG)v!7XDk(vlbQ9T z>Sx(ct=q6j-IsjI3Hu*zTTwm3zRmh8V^F6-Tj+EPQ&v#zI2~(*&Hm8~{Kp*0S$7s# z-%|j-o|O+fFHlF2#FbF8aV4SR*jU&Dyn;ZAkDf2GJh70gZP#iXlWOh-au5a$BTi

g7aS6FSRV-O;eGV1R@pWYm?8MQQ>K?}j9+fZQ5fvC4VyS^~+M2BxzTj4i&zdyYU zz{=x=YHUozKeR4w^HN;KM3rLzl6URv){zS7*_LN@vCkKtQ@=YIf{=@Zb-@yYOv2C8 z9OnAiOK%!v8>bBN8tezM8Fv$h2oiFo)+>}iB2bH^~1Isi8dg-?PkP#mEI6_YWKE>K=*{dHtYoh6vkgRluSjW zbOH7d*i;N-Z8}(nFBe;B12doarP@N5B_W$@u1l^q`aUa>1vs2p(LRRB_aj~yc*lby z_;T599c=fzUw;5;`6eC1O#N-xU$gFpT>}bu{i{P?z8-D|g5vFz|HKPB#>TmDu;qX* zBFxCI0_)^4gi;H6!ScB(6HIC5@0zDm{BxK?E6?KLwbAr%sW1N)ulVG|sTwB>bZe;; zSz$SDtEe~<<<~((c#K3|nZ&AGy8R+>EEC4eJqFdc??JM;?aY(qC)3;m5cMaO7>0;g z#4y__?H@eU#Ki-db8SdWmR`ck?G2O&&opcw1WG=`UW@hWVLsJ0S@QbXq~IwaQatMv z)|@)zddz7a=flrtQUrp|B6PBeqE z3$t7Br=N^7f9m!NkyzpWaUCdzrUy`5Az#FwNXVHw{sUUwDN!PRN0m79^cU<@%FX2h zqkS^Y;(pVkQ|LYzy;Q0e~3HYRK?4Im}F=ucSrE!9dtUUlEV`PcIi1%h{S(4K$R zTTvDT_LLMDHQH8u*YdPTw+IUO0L=*DTFxGf^~)NV$pvqk3pPdB1$LYBIKdq4Lfee@ zR6K?w`iH8?dAw+pU(r=#hu;WI$7f+)Kdn{wLPDG@SQlme-lBU>u|MxoyRBy62qmr8 zCRW?bDn?7S>^Quq3bIWV-Jq!5(z})WDvq@7<8asHY8!4Sz zA!pF=aijSYEU`HMpt0M~t!_yitlV37Av_QA;>~#-4H_y9*PE)4!~a1!lEqyd?US{g z&{5ca6W_-?K|-rCSM_C2ds&Wow^`gJ93;EMcC7GDY)?`jD6HEcOAZg!7$Te_kyz_| z33z>UutAQO^&?P>TdZMt$BbsvHevPnB^D>4 zMjXKTBF>43=j#)U_?gV|^IgORXO1~4#BjOWIn!4esmDH zr^Du)reg&8B3q$yPrTGBU0_ zPrpB_?#q883$n)5=oAsOO=y-Tfpepp_$w=7$SgjV=7}4LkU;(x=i#INda|PbAQ88t%%Z8;7rTkyBNNG(A zV~x+!-fTMSm3PIyd{*-mSALq#-;M-pkTDIySbr9#3e@ZRtNt)rG<`Bkit@`dsIAcW zDtBlNJLw3cu@@!`-NMhjiyZHe(kjs3bpd#>uZIhPZNluv=z;DIUOfLWTHcnQMy_YI zr1vAT28K&aFr@3bHF?4n-zv7sXNSt?9V2jyL-=1)z2(bp^?sHkbJT3D=`1#8K%wLy z$M$V{t{61+puOoN-v-(hK^xzb3mOq|LE-qJkA%XJh=3CAHdubY;h=&PdWBjHkxtZF zI`$mlWq()%i`Db;=hS=ARIZ{!jlPZ5=+B2fTyy_q>``OOb^2_zZM>k^TM<35S{+V% zK=B!9hGBIvJ9z(yxb_^daoLjCUr3h-L-zlY4^7bsvV9SH0F5r;6GSBhwRj|!T`jH3 z81|yb)e1rcSqm0y#5iBaaX5I0;Z^*mSt&`OnGeDk*n6ZPjZ&^mO)_Y3>Iq zCWv6O^ePKhK?uCqc(4}ohz=hWc<`USkZ;3#t%7Q&C6Jx8+Tp$W+!M<^SKGT0;q##n zRgs0TTHGB*B)?W57j$9DvgzdlK2^Y=xB&A_>*ZjWn3Arwa}Ub)-t&w%a;_3fIE_9s zP9-$~Jma?H!s-2!*SI+A_D5{Z7Wnjny&Zo$la5Ccub}+CPQ&zKN5peeFb9^|NKB!F zaf5_te>-auQo_qzOA?rOSLI6HIE7k;AVRl%bFj!;DsEk;(%Q}!UonN~7$p4P38&%I z!)bn5TdG|q8ciiEdZ$(`O}H7(&o!h}2c4Y5g>SpGn z)aYOh_$&!=cCBuZkV;e}!{v*ufNdg+7w#^FSi*!k#}tmyE`aPM@)T zHHBCV=%b3T9b~K3tVh#$x*M{?nit7PL9Ff3)RN=n=c{pkGW;CKhLpz!zDOuwd$xC4 zT@*t=zzWCxB^`iwb_S)OueC&^P zAG-qwqcp7&8e?1$WChvR*$nm^vSmB->Qc`f9xJ)Un;O!dB3pxD6`V^tawZpXO~ z(zsIdPM@c3p%<5BL#V?d!hd0-!qZ8OhBj0^^DP|j+Ylhej5&sYrig8#2u;y#6{PjF zZ)qU4{Yr1z1CyoE)M?c_jRI+XIS*m>hr+g%*Xy|isDa0@hIcpd3W#SCMhpE?pz8Mu z*bHeXCTLJu96%deW>4^eG=J-;w*(e*qU}P;?;%#;0@z~W`Ht*_ToZQs`sNYc-$Mj; z`s$GNj}sLy%kxm{BPySWd!xL;-uctrI{oi%(63!)2*XnjiMSd-^l~`pV|X z?kjf-sXz_sLM)jlY%$M?I&~DEiGdVW*f2 z0ufEU)2!MpSJ4-QCpr|O%!}JkG}$8YkaFZ>3zx|HV4Z%)*$;DMgRw#ArwiZ50SLS=3sp#S2ymy6EU6zJIo$qpaVNc#_NIQg)Guj zKpQfkWYYk@Zw!R!9+2l;*%xz=7zyn8uf!n$i9*1UN^j%3&fA2hPFVu zX;_6~Mhm25Pz2c*5#AiFRjMJGPox5D{s9F71FWpN5a+{RJ6zw}Cp|4Y@qX9^jiY1- zN)8PR3=+}HTGyK>o?FeCH3Um44)SOE%UstL{nHXX0UZ_2dmsS;2$FnG()x4vwydk6 ztI8Fdrd!A-7fvj;8bc7|g^}$C#<1E@DC0~h)0)rCO}`9Vw1~nU^$KX|bI_A@@5D-Y zdmJJ_fz)2PG9NMp`CzCSX%uY%j;%}clda?&RVu$V7nL!O__mxUd+c)D84>LaNlK_Q zbZQ%UW7RPnr`6s*5&vM7R*o_HZ{n&BeLB6qezRXM7hA^+>hA}qc&$LEr4tJj5uMrZ ztN5j1te(LxkG~?WNs`Dm1I?{2B(e&v`iPA9kCOq0T}may3X>FK<$ue(!z&L-pT!@J zP^PiHRZTugBZVU|PvkoZeVt~YabvLr&7-_Edo?d8*zu_ki!^_l8gwF2Uc#IHweaB* z)DDGrNxpK`3y$a8gss6;!<0Rs3U{UH$itQ9>QOUZ5;I5EQvM#tw6rGkxn+XDOR%xb&_YM3fW2Fd{&1t zD@XD7I_ge)kmT;4NW39@xlWt>_ZFdGT#6LDLU9^9IEOCPElo(*_{q3`%F*jyODtf8 zk71MqFKqs>L^f@rK)I>e5^?Cy8KBAfdzbU#Wrl6U5!DdXNta+ZhUkw&8PK{98kMEU zP9%+{o;r8O($8TmqgKE2nD1>{rc33bV~ea?Y!cK>31dS!7dh=Qx6-jKhf)6Gs z5dgTc2o6IWBd1G5D??7YO6+@1Ob%V%+>Mo83kVvng^5UR6d+p55P4R%0kRuxpYf-EUjerfq~4kW&xPrx4iW6qE+ zc3S&3kTdWNIMrVcXqcwF0N=H^Ksq!H^#AohaR zHO}u2eUhPo4&j~!ko|bcK{YOAP?rl-RO_tRHY^)+Bf8Uc_^I}!^m5r^vpCD)8vz_| zak9}lf~u!Vnp($oTU9-xO4o@JpNjUE68!z>kzVr_{}kyTt=SeN^k4{UUsQgwhnBwq zq=%(*i|ePx^i=r85P+1-EQ1%K6&3X=jY#887}kS9H;j0WR<0ntI|0WKb)TZ>?8RGY zA=tq?Wlv{xFmQ{0zS-vu*w^RS(hoHk7?th$W{+WtNID6c$m0EgFA)sMIdjF*T06^B z=Bj@TUe?r0`R$qiP$$xiD&Kmo@X7%W#3w=RL^;#bb1$hTf}P{EIKg68@i$TcV@hy7 zHHt0&Ad5wAoRgWPeO>hP(0OcO7PFzulI|JRy%>`@9pkyR^wmSaMi*i4Pq@h?b?CRp zXWD7+d5m6eVAM|hXP8|V3ETTZoDjA5r>X5S$Z~Gw@EGwxZkfik>tCpO!HuhISl0Cf zjd<%LF+$Fp-K={#)jKO+$QrSWv0}LjFmOVBJMjB29g|W%=xkG2+izquL>4~Puhe+myY=*LUb?=y1B#mFp z&x5(1THlts%C6JB`$EKUlSTe>uOsK;4|!{K&S!^QnluHtUmdgt-lLaScl~4}*`}UY z2`l3^e`G43-MClj`3x55m|~=SI{FpAarYmsSM!Kbnk)QK;+^*Q=&d;w18JR(#j5AO zNC{au8gO%=ETjFzA#B`=NlUo}>F^y5Zw98!GZpAd(Nq@4?@j`PFx#e8v^mSkU7ls< zCB2k0B z?!HhjGHy=LRq8Qh*Tqw7zkfgC#0p((S3|nokSk#ep7xI=!gTYwSHkcWLNrv38-M5%P(g;rR0Jnxp?zIZWzii+-q4 zdG%L#BdDIGw%>g{ zjM8cJyImhy*HSS|y75%y3C-zbt)d~e&dBM0)^9^!?hfCuuoF^F6y@r>%$apV`Eqxf zBeIRMtnh(7#wB(yl``#IiRRcd*mx7*zq$yrV{ zS7GK|s3iPCR6wudnOylN)BDp-)4Q-Yb;&1xV+P`VLvbuCHgmtz#|f3gkd;iCbWTS@ znjheVZojikgum-L^!U@kHJ7s;-}R{TIcUpANVIM{HKhvF?ENvIan4qA2@If7IxD^_ zR?xFWHso*6{E0Yo)Vt2=V&4s&NFUh8*5V>A>r83oIKSjLH!e-_2iee~G}L&!`pr+K zJKm%tPPg*WVJVD5Kx+6yB)pZ&EYtc`-qfK^GK-<@%Grc5#LMT$ZD7;ho{~lWOq@WWaf11 z{_c;aadv_7h`Xa4Z$#MVPxAeXyyuuObzvT_V`|NEyXGDi}mN6$j8z#pjm3 zhaiU__hQ1YAjjEFw_C>Kc4G=ek0)>ADF7{dWBGz^1N{(6*;3`PcxLXb#bpQTI*avZREeIy4=#8A9Z3}V zur;gl|55fAP*tws_b9qRF))!(33Z!1pz7PKJ#7s_Z$Cv#=Ya7arPK{?4cXhTHm+6_lfz;IUlQ6S(&&0F>!ILh;_V! zej?h!KwGhdFcLQhVAhp~SM`ic*U~G<1yv+Vn8jfNJ+MxI=@x&51qUU%;iV^#B9 zl1Rbx{^e|AHt=VM&2(~lR7Js%dD_UO`Fedl%XdE8M=!)@Io4Ro#Vnm$vvJ4R+4FU~ z!|Y4qF!}t9p|?&)Fy+`-j_$Y`2PxsV6}e_U=xL$xaXj6UwAM;Cd1!DU<5pGu@<}Au z?q~bYZtEqDKLipN^-G;|rtzewCOc#mD5dYcEg4rn-ERHL(my`(O}>PwoHTqEv>9Fh z-XeI};KvEN(`?e*I;xN3l{c;>zD(EX=IO2InYr`c{zv||x}QO@BjAC>k=^Y}#&0G% zUL+Wwt=YQwuSDnfd>Wr(R}IJ?%0?~k-&E^vw(fau^tY*@T}#}UKpFA#`Ot44(zfO>QLh!E%+$^p z8dO~d%#fLDcgFn}8CL@~!607nt@D`Yrpv3Ec7Fn5yLf1md3}uRd_r5L@$|;(&zEZ> zzAo;RXspXdi(LtsjdPX+!`Rx^b)gYE@Hn}ROnb@{p8{diC5ujWG#}hoGhp{2UlO7Ip4to--nWRPu1;JJ@OZJj+}dxFL)7M{XN&~x8^U&2-EnOK90@Q zMaeHc`q8dPF^z&T%5EH7%LA_&`|Z571SSpZ*M6t*uubH0uqHsy?F~A&V~tO*JkzBc zzj6NipN{tPlYlC3jidEUVGq!>aRTIXI_00>-bEdQ8~LvSMivMQ{k-zC>C&Bq_eZ!T z^n*pKlI}{x3BMETa_(&-HGs;Jf65xJKUwV}hHTltcUR3DzDm|TmTND)e6UC6>@VH0 z?S+6==}ggeIBt2H^t&wa)(wN6V$ZW1M@7Wwl;r%#@OHbLq5td8=xgq{h# za$l+1{_pC@I!4p!$)YL4Cf8ROux=1`YQ04y!e#lX_GoRd z5ZNYE*aQe1N0x{xR2p-cB+MAJ`1amm9&h)2-$2~$?suA^kSdqwC}+PDLcDo2`c-W> z2R;U6WjF5Ejn=m=S>v$ux7qLzcZ61&xk`j$P-Zt~nksj=b(~tD(tIQ_qBgo7o!sAJ z=1(m|R6~hSGMLGtG4mT!AttS^CtmwX)x}YCjPB@Vtm9RQ&>MKHn_{PbKqL1q>GPz@ zW~3Yjg_}F=t$H2HLM9jDyE$5Dyd7`7_{B)24(V9@o1nSDAZYsUXV6oD+B8P6%QW~W zGqccfSw*Lh|8Bab;?(nm$noms)KjGAZy1CS?&tx7bMR*SN0^P5`*Ml`%%9CdO+$46^#^QW)H7AKX{m>rBU)JTbG4+jGyHEGH=?O8o(Y=w#QS1@<5z{NLg zUb~ZK9+#08TxsdyN-+BU9PI`TT?Ye@VggT{s}CZjj8dpmI+$i z@2fNOfXD_{LUJ*N;pUQmxaqLZcbH>XmpF;(EWr|mC7RY-O zZ?l)FxzN5G-V3MIQ^TxwbSNh^Cav5YrjO`wiLjs>oS=LvK1;k#w09@9>{$x8YIFmu z=Thr1>wT@8iRU8Q$KnExu`3Z8amdDEbTy0HNdb0m)X5j+s-X9%SYQbP43HcXX zXamhOv?J1fz%8xkw4U!qcJb_RDH$gfD%;Bav!Ju;pwHilqf6`x<7zec4%WQRZ}dB( z#al%k&~^Ip!W(n>#KUa|L@lmoFo|mKiqoafuf-(CwyWN^fY4Th`3!FQNd>5m7cCzZ z8LtiD@7`rzl|0*Zp(3_l{dI|hflL-2?d4w&YlPlTbi8iiEn@SvcDPIczLwh;UdP@x zOz84<@Fjc>Kro@MrTTUbv?H6DQ_?<%B-OELS)GqLuFR3t;g(*U(*gse;=z+apW@GH z4ra5=iYG+-aY(()*OEM;Cl*9}i?no~N-_Cz4%-keTksl|*=6GPv5M}AuI#$(_v6QG zG%{}#*ZYd?ABoVT`GDEWvXIf14w35E=p0(xDoxfQ9jB(E<{x@~>n9gkbF~s~bo$4H z69!s^ilw(aqig=FO*OrQnXI-wL&LIHmd-rvcWUq$F^Sg&pmP2PJE6%$lOEp-)5GVWULW*Sz=y19)` z$e&}R*-Ct3!OLol5o{BaaWB} z+s2#e6`dCdsMvHbOg5i?vl6effkY+`SXO|x!2dBtJ!GXc3{lS zE7~5}@j&|M$@cz(*X-BRdB5)Dr>8(Brr+F>$h`OsP*0^CUqD@ zHrbU_-FZMYn(8@?@w~e3zzN5Iw+4gm2{H0K>$(3FxJo|||Br@$;{ABor1kqZBRO{~ z3F~|kIjw*Xau)`$bI4N@A?d&!St1qX8jdkHbGGZo2Ri@#=3Wex7FxPQkFP4J+Qw@2 zZOCWf$~w0HuK6#KB06JK+gz@3gMTn|3NqpH5Pb47^2$_3WJN%-u^YZ8vF13$I-?tgE^A6m)s#rAYHKed;FmEzbE!F?V5aXszu(g@vhlrQ0_VjCTcwl{ZL|Oi$lZJ ze&V9kUpv9oBSGZj8P9YIxQrXSxXEaEiTE0Bn-x@8rJmgk+cu9Xn z+|yjc6bzf4(6hc>=34h3m9|jX;c(`f z!}Qm1wg1_sT?-eDLal9PpzZHQgo!Gl0^j{0=-Ug18;)LK1{pmQVc8fN8{LsQ=b91( z+b=gczYYJ1b|@!)5&t6dnH^i_sC3@{pN4GF4nN+lj{^?AQe+_YFW}eaGr0SKk`7jJ zkhGnGk)y_Be;{!M^J+*@KQys`G`a(KpiD6Ut^V`zhSR&BcW>v>swQU3h0=gc_8j@g zST=s*=SRj~e6qgF2pyH^bNuigJ2Al*fS~Wn%ovW|U{GnUzr^@?Zw%xBosPSJz)j-wrVZf^HO$}?pN7$Wkz0)5XZ%@^?1%L z0qs*DiE3;GcaiHItdn%`eb^V^aMy$$b$v;gRzeTpBbfNyqy+<*@KZa5tM+_iTg8nV zT7tK2gtR5FA^n0-FIvq?GI;MY%P?^cM^XPgO;%yOy44Q+Bv?GR&(tX}Gt#Z@;soG- z3f=7RE?l{18@ciV1U~cbH2cuYkbs@S)z^%oMz@|Ef;nVWK17o`c@}|lW%S=86P|RI zyL}6lbV$v)^l@7+R3(BaSFPgD1ityRs}-ePe-yvCe`f`l^|qh@OTMe(tjPdFk+8U` zhkz}MLT`HU9eg?y`qA)@(XBrGKqE+NYV7+-wDfG1NPN}CCQ!N8jqpP@dpeqoL;Kzb zO1dv$OlPKCL#QIi|2HQkcyU&5vZMpzuiRL%P7CnFrIWZySsH~iUa!-#%B@P5roZj- zxSFrTr;+@4r!e99>XbNU6wSYAd4~36CuBoov-YX-6L`Jq(UxmHFbxpVcEs)4i?}Iw z6Q@8xEI^~gSjA?SC4k-sgo3ya_ZxHWp`Xuq^}@O_sc+wCf)UA|oc`w2nh$~dYDTAS z0!}q0G)2>X5U9ou;u4wC-E@S#R37i~3M8Bt1d>yLYWWPuJs zVSawqtjK9J>U1sUc|92*3Kr02`8q$*GK_HB%~DGn4V61-!$iP_8V)38>|>&E9M*$i z#C>`RP1wMNOoj0?GyUyAIL=E?>w^JE_FC*%Ra7s`z4WuFk% zY!dH->Hg7q@^|3eEldSOSM9_z`QaWsVHIusH6yZ~eL$8H2KUjJWx#ssr1xKX;}iel zL*=e|uK6Xa%98P{k7#tW{eu>!<072ElaJu^m_SeR>DTdnD8ws)dRAweL;p%h$hgk1 znW=%MDk_=$=yvkRpcHwLA+0ig#ZR z2E+AR40>40mxr`;L)v$Nh|Q~Esy!AvA50E;TYezn!_<@^2~hTKfcteifchQ81244p z#R=z(+v1sb#oKWsFlRm={q7=7~HX$I5y)YVHa&2xO$n${&8 zFNbTN+1vF7dEYIN?`n#9-D;j3@NsE?Y{40ykTQ0i{&;ipMR1|P924#s7<+|F zbAA9s{@K2YGx_5)-tckEtwU`JK!8@JtfFKyqrP(f#~~dlI-eXwQ-Cn%#JDzXp|^s% z%ft||$82O_0+0pkCRSmA@Z-NFDHMi>xSY~z^fT2gUv$srd;?lv^Rl~`(?KbtwB@fJ z4?dCHYVwJ;5lO>L%LOEe&XaZuT$j-J3TnHd>$%ig0c(LSq{4~~7>QSOB;P=@;kf01 zT&in|M#_`t|3X%?x8(jr1SAi$i(PW8orchAc-L)3WVFk2P{0*^ zn;z}9ZL)v|&R)0@!jZn%g=Xs!o4>!UZ(Xh){FeoNS^rhVC;J~N$I(y+q)2pepjP0^vXLR_kje8;(4CvWBAV}D($py z`hc_X^(a#aB=K(vrR&eGdx{o}8!6?mmZg-w!zlVP33nahV_=p$ZmHtR(17D_4IGB#I#U=@5dFsRt|w=`6!0MUfq1%e=aEa_;PiB3ecm1Br{!UsHC$+m~Y4ll5x(2=N2$uo--#2{+)0Sj|;*yhME94)acG4#g;# zr0ttmHj-(wOea6G2YD8EV45#t==|M#PXKYa_5hKz*M+ z;XW=#FCd>;v-Ay_G(7rDsD6g1>CB*aZQXcsQ_lqE-Zef}r!+iQYNbYZ;MIx) zg)JM`aopEBkIK;`T{r(z$LF6QIx);Iz8J@Rk_`qtFY%omvF(zML+Oo&l~M}JXo_i>1FKcbKKN5h6TdS@_dsuvd0M{xSVwZr`KI zA#2mkN@>~@&lMu_;@=8=rtzpY$0t$>`0PvYP5^E9Or&H!7;c(7The~Vx~Vb!{@nrZ znIi$O9EZc~hFW=rh{^ZAb|W1U)RF`|ss3?6S09|-#Y6e$QfvSV!!ny=szB`*9zyj^-v<{aAj)^Eg$z!j|CmR)I*Ko4r>u7C_ z*>s>R4!!`C*L{b#t`Lx+*ZMG_N2g)N^nBr3BB9Z>R~t+mJsCOnqX)u&(k z&~DGTt0VhJt@MPVrR4^e!vd!uZUE`E3JNQ^xAZ=?+=653>TN%d=nKq-yqMXOiS4sNDXraMc3b>+JEHIka$0pOSMN0-Yomj zFq=tgI~Tey6&G!<#xvswVje461VP(XlnNri?)gRR8(2DrOwOXixM2I_pOb6$L56z@ z1IHQ-!C}AHEG@CD)$6x~iU=xfd5VESsE7dlgUKlz-%29GC1Oxy;t(Pxkuuy%p~zCh z>f?jTtOfp{#Fx6{JiWc&HrKxYTrV|t?o-MWOv)15OrfaYCzrdCSAB7(!?*;9{%>gQ zml7I=go|(QQ45>RM&-xTM1cxnYO~UiptxNqvL+91!?5iOlzHhk&uCYMK^r9NIav8p>9~Jk?%gUtb_FtRPC|x{9B(Y+Jzb zWkoSm;L6Dtj)|{_uG}l=UPS%YPu1q2h+y8SJ3}gk_`P# zV=R4r9R?V_n7r&DBDesWHz!frRR=!x>^B#5R8@=(_p&)+kT%UlBr( z_b8yDlq2iA%QBXu@7Rf#6N4UbK6*htLE$n;#BWHU{FP73RoQp9OxF$(tDvvSXY=N| z5b0_Z!DOoWs0Yh{ufeR}V?k*pIvw-!6{bAS`YyCzck_3&t~Rm>!ev^o8Jy>!0c{TD zeKVhaq46zPX;zA%Fg`qXEuQ@r-L6!&?DmRB2hFMRyCO}cg!wl+xM^RPK>QL>e|JL( zMixZl^?dk}SG}55tky_#;+McKZ88nv*ZoJMqRef0*={-V)3xA|NiUQ;TUy}e-@}a_MuDC)XnG3SN=9+`Uz8Coi|=$w z9)>`4^JRiGn};#7XO&@hw*}z|Fyyh3mMnS#4LD!@A z)#^J2?j@D!<^2@`;Wu}Q4DcYFE>_PQ|N}&tSw8~X)~v+LJiTpH_KJzZ^XvSuO+NiL z_A;4#g;+)B^O8Stq-wTMCU zHfz^L5BnxTz;Hk~_2NKRS&2lBhSeA3$>`2kw%y0dl51GgQWzGNO_#jM$XW#2s|x-_BClDP`j}@L=~LNv zRe^QyD+IX08y!$Q_+m2ne7iYQo<*EGov4=0quV>mcIVS3hp|MSROY;KbZ;elAmOn7 zZ^0G4Rn6_u!E?H2k-eVUu(eyNS+o=-|29f7!D<$fk*+f9F584TfXkoL6=Q1Y{DHZc zJLYcSq1#(4`NMmy-%fZmqHfDdRJn~on6=}6wPFQo?^ME_a*DW%i~80}3^&F0q+*0+ zruPffZEEi{+H|N>E7C{z1Gj-vwXvY*O6yu3((@2?MJ4vcRJX-yZWsMM zVPxbs6}MPX&!rpLmF#~iJ~Sv_-cFJ$HSokXHeIR7g(J?2*YJl6w-`btMuYkaD*YFN;8?1L-KPqfmw2d&~G-%f#K$5U{nv$#cx@iQg_ z;~AD2N zdwG@z{`)c*Mlk*~OZAyPUjzlX$H+|ZJd;YpepLs)_T0<3{7QltIPT0%{^~iXe-G*g zY+CEy_#>}>&7vYAdv*6FgGoc!tRqEKFGe=DVKG|hEA?W7G)LXQh8f-W8VVt_9wJWl z@@WS!=M-YozJzggDd%xoO2s$1<*$26PhFehYX72|&ldK8i|+mIfu~ohB)2=TG#Lub zUowFG`K8Pc7V@d2-hg7Px@Oh)S4?*;RCZ5K(NN^f(8g)Ef3d?W_eJeTN3l}3q~)f7 z=eDM^c$`12R^H%U5O<$W|6h>1`v>)#TZ=H`?>jVxHZ2fKd)|0!M#mn1pTqYyw%8Xy z3oG)v2)8ecTGN=3Yix7U!V9 zzcDqp7#X{ou})k~FiXt&1JRlFz6jd13!5Um z_N`q76^fuwe~ZmIE-!f92R8W|wpYoIu1zpQ6Wv^z`C|bR-Ec;C^WD3W&!r;t_oW(w z7O{8mz_HUbbI7u$rC>N$VzZnvnA26nxC_21GjI^bC>W-r{uR4W-;>wPTKg|%6d_rkMU>VvP(fnxHCU0BZ1_!=!m9$_| zbP;r6%?|7x6jtYIVZH*8r!R_kzW%sDAN$N7)dC5JZ&LPszD32DxC`Z8RT_RwBzZ44 zY74}*_#pg$o26e-3{QC^nx-+vORs;c6G>@!7cFHLi^>X>qkpUrTr(#2;d$fKlKMjn zVeG0Z49gl@;w85$>x#^2EcC)TK)R$m)n4_R?o#;q{vWQ*7e=v-&5ZY{djb1Ew?@is zg-G38Gryv}{|s_#C!OQ4mzSR@1NK>WbcE1gNc6&(wtnMkyz};pS%>xy-Y$S4@`P*I zF@qqp)ILUku8Xy#(%vC#@pxwim!}Fe{a?M#^OX8eT?dO$#OM`m0dyH*uNVOs9nnkG zlS#u=FO26OurZFTI(iyoF(HrsNn3Sf!jRe|X5J;XhgyZrzm%(rg|04z51yo_d#>=j z>At+xN@jok=rVAxnjlq?KLobl88o2!OB-nJr8Mu$|t&&E&ly1 z>bKQDXgWdP!(ehCZF!hDR+_tZC*KJl)E7F=FWAegGUojOUX(0)_#7M~1|dd@Ks#%`P0A|3_N1m| zT>`Y+a^aSQ&}-I{*}~@2IKp)J0$Xe9^tk}_p6@%dE#AwApaTf=x|`PDbTG2DkjX+P ztD(hCFHa&_>ni*jtqj}NGSgp$?&eY=jjoq99-iu8p$shyddSzm?#VJ|YT>u9%UtuT z&s%a9a}HCw&eF~3GN6Y^wQo3-L$4#}Jr7e1)W*zBZq0?xhZ0=ez(+QVe4=$hBP9Og zpmkQ6nIUb#nzrTB3T$e7QuE?^u({)lK0}Lw4}a5wZrV15LrroA$zUJeJ>-^m4v;UAHl!%9<0FZtcE}Ikoc9**v`R zPqm#7wVby2n?9d|a1t7w?4u>YTyJ3#A!chhAAExZ-dd{d8_*l+w^aRgL3WiR-N_hpNf^dd&+!eeRCoR=a}clUNTXaMQ_$pM0eI zd;Unm#gxpG??(_FZN7N%MO*4|W##?NOXt#*Pkl&&uEt5VQG?f`zitfD|7z8nyF6?er&%~AA8PS;iOtaf!69gz0!kK?a{r+!e(MT z87#@28ItcL(v-2jDcI$TahRO-DmB|U<8zV4d2JtwAE>pUS&>}+_Jx;f)zY7$#-KgaHaCu6r4>o?DYyPNM z!$52A&>_1Np3K4}K&R&AagWmDL(rnN$=+9idvv--O#i6wz0q)JrafB#U3MS6;`wyg zEXfRR#WQ)tzW*lW_&ah-WnKg`I4r0uG$O%94+m}TM|)+>(rg_NjA7ezjxS$4=qY=5 zq3N9s1aBsMYFp~Z^IlG%U{;5P!n36PsBl&;TE;m1bYGnrXn1D4TPb^fATWCFR;}^T z(#cy}2NCeq%wh{hRoZ7OYH_O!D3odHTgOFy(<}uD%}@2u`hW1V`v3R8WeeFLHAl~1 zwbDUI75iWvc?w8~A8A+~Z0C>K6qjp+{O?OZGU(&3--MXCA{t%%8!7^g#iF@GaC8^I zc=;j~s7C~;IeQb7Q5*JuP~?`P$lXiKlP^OWK2-FL&~t@tyE=%N)fX@V8+@R0EN|c^ z$KdCmZ2+sM8c%ti!~Qg%F(>s!SIkCmddxbnV8O&|?7od^$hX$s2cW;szvTL_M-53T zyG_Xqjv)A$cd-)5n~T0TJ#)vgbB@rkV|CT`I<;J46@!Mq>i5^&BnBADn^$qU4PkOF zj3jy}4uwJ`ZUR-P3rNI%jy-eiXAwTtt@Sh;u9&xEVg}Un)rMXRkJ+UlPSrQWIZJ}e zsQ5<8I3^Noa1RxOH}=9GvIK&a1jXmN&xFj+^`bDQqDj~k^p()3$8p`o4iWw?aJKSA z`4wLGlv|VAlsH_Gi3;&*A>(QW5i5;}FK~!^PNRS`?*}eNH@23QxkO9#uX}iix@Qmj z_>86KHmFgZ136GYN5t2`jfvD(E_#@$`Js5P2}S13_56h=u#z~f1V6{0rCo2Ks`f>< zwG*ZTPDA1YaGW3`YI}XsA=$!`IX-ZYENvY42-FG)e(5-ug+QWl(bya&r zebn2X|GnLI^7si`w^k1flj#hZ)~(s|41)?*B622@e|C(>b&-o?^O$QGaiZ9w?9gn43GK2 z&$#;$-kU|S3{L>fguj0D=zIP^{Jw->i8#&88O^_AnfRGg37uup9q=XJ?xa{3y4||p zU0|_#VoLI;o&T6P^@Xr>w=JjGTO#qoM~tGX{dHnRtNyiaWY`>L}DE)GT9G-jUzfE z){v800&t=D>&0}K`}9qrLAyW8D*eAVDGPVIa6_uR-8Evzl&)7$JK%;o&|~B#W@02r z-FH5x9l+S~O}w>ywLI^Ww>LM_nY=b|>L<5?bn*Dl|L4&4%O5ltj$8gY)1J<-+>5@a z5@x4V;!TD9I-M(y3)40w_qWF5ExsLHEw{%(d7^J-9|E8Xtg<ID=%S%z4ZxD<*1FbY$D%A>?jX*;H{OS*Bm(e z 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 Mba8VQIt6n63v~8L^Z)<= diff --git a/sysadmin-doc/images/architecture.svg b/sysadmin-doc/images/architecture.svg deleted file mode 100644 index 8ec838a..0000000 --- a/sysadmin-doc/images/architecture.svg +++ /dev/null @@ -1,372 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - frontoffice - - - - - - - - backoffice - - - - - - - - - - - - - - - - - IdP - - - - - - - - Combocms - - - - - - - - w.c.s. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - https - - - - - - https - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ldap - - - - - - - - - - - - - - webservicesAPI Publik - - - - - - - - - - - - - - SQL - - - - - - - - - - - - - - - Passerelle - - - - - - - - - - - - - - API tierces - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - filesystem - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Publik - - - - - - - S.I. tiers - - - - - - - \ No newline at end of file diff --git a/sysadmin-doc/images/dialogue.png b/sysadmin-doc/images/dialogue.png deleted file mode 100644 index b4a0f4e0339194b65f4874d6e863b4527d455d16..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43846 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

  • 9qYsd+L^0A(RT_ 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IdP - - - - - - - - Combocms - - - - - - - - w.c.s. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Passerelle - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - API webservices Publik (HTTPS) - - - - - - - - - - - - - - - - - - - - - - - - - - - - LOGsyslog / GELF - - - - - - - AMQP - - - - - - - - - - - - - Provisionning - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - SQLPostgreSQL - - - - - - - - \ No newline at end of file diff --git a/sysadmin-doc/images/flux_si_tiers.png b/sysadmin-doc/images/flux_si_tiers.png deleted file mode 100644 index 5e4f2c5ddd8e467e27206b9cc2179454640261f8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32835 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 v+b%;0@{KfDd)*k9_wuo86@pZ54X&{qJkZ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - webserviceslogiciel tiers - - - - - - - - - - - - - - - - Publik - - - - - - - - - - - - - - Passerelle - - - - - - - - - - - - - - - - - - - - - - - - - - Internet - - - - - - - - - - - - - - - - - - - - - - - - - - Hébergement Publik - - - - - - Hébergement client - - - - - - flux sécurisé - - - - - - chiffrage (HTTPS),authentification,filtrages … - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ReverseProxyApache - - - - - - - \ No newline at end of file diff --git a/sysadmin-doc/images/logo-petit.png b/sysadmin-doc/images/logo-petit.png deleted file mode 100644 index 189722352adb53a78d1847be5ff50a3c732a8660..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 64412 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 diff --git a/sysadmin-doc/images/logo-petit.svg b/sysadmin-doc/images/logo-petit.svg deleted file mode 100644 index e21042c..0000000 --- a/sysadmin-doc/images/logo-petit.svg +++ /dev/null @@ -1,91 +0,0 @@ - - - -image/svg+xml \ No newline at end of file diff --git a/sysadmin-doc/images/logo.png b/sysadmin-doc/images/logo.png deleted file mode 100644 index 399ae6973f2d98d5acc64783d4b9d89cbc1fa93c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 17264 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/sysadmin-doc/images/passerelle_locale.png b/sysadmin-doc/images/passerelle_locale.png deleted file mode 100644 index bb8b43b123e0680abeb2a7697fde7b2871019484..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53322 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

    DtUA2}Odp}| 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 bsef3@`CQ}r#fX>DziXb=Q+ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - webserviceslogiciel tiers - - - - - - - - - - - - - - - - Publik - - - - - - - - - - - - - - Passerelle - - - - - - - - - - - - - - - - - - - - - - - - - - Internet - - - - - - - - - - - - - - - - - - - - - - - - - - Hébergement Publik - - - - - - Hébergement client - - - - - - flux sécuriséAPI Publik - - - - - - chiffrage (HTTPS),authentification,filtrages … - - - - - - - - - - - - - - Passerellerp applicatif - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - vers autres API - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sysadmin-doc/images/reverse_proxy.png b/sysadmin-doc/images/reverse_proxy.png deleted file mode 100644 index 9989f4762df161bcee97405ba10c41eb474ac731..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 43102 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%0DZZ&)@ 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 diff --git a/sysadmin-doc/images/saas.png b/sysadmin-doc/images/saas.png deleted file mode 100644 index e15f86a4853321b6514e52173518c945faa95029..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51778 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�OyVP>{zPCZH?DQ~c+_TmdDK)m};y$e#ELSh`q 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 d -image/svg+xml - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - hobo - - - - - - - fargo - - - - - - - - - - - - - - chrono - - - - - - - etc. - - - - - - - PostgreSQLmaster - - - - - - - PostgreSQLstandby - - - - - - - - - - - - - - SAN ZFS NFSv3 [via vRack] - - - - - - - authentic - - - - - - - combo - - - - - - - w.c.s. - - - - - - - passerelle - - - - - - - - AMQP - - - - - - - BackupsBackuppc - - - - - - - LogsGraylog - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Containers - - - - - - - diff --git a/sysadmin-doc/images/schema.png b/sysadmin-doc/images/schema.png deleted file mode 100644 index 63da7a8ab5e130e5dd53adcd880e8adb84838ba0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 77390 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

    63ka)RyCIf>lG88Ky$&9ycYcqKj8Qi0 zru&oYmEbjj$sMp=bNQD1I#j|7a-0QCt5Pkwl{IYVUJ*ToHBZ z4AR92D*g}A)2X-D;BuFHr|5k@eCmcgFj4Wp5b#XFgqGT&uu6uc3+vZom`YQoQ68XH zd9e$DZl1g3fb+j5wT{%XWY697%#Hcg%$sMx4jJU89=uPx`}Izo3uu6n(9D(1%s2ChD!k!`Hz^-Dt@m#GPbocTPlvOEb|%Z zJJ{tft4wli>9NvB9iae{EJe_yF}NFoWSTzP#k0^dVDuR_9?gbH$kr%H(S0HD+Uu7t zR{e&O+-C4bgF5b^l8EX9D33Og-_`(+xJ_+z2U`ALfxaI~#-{#PK}YG!?NkslV=6O0U~3o27LlMFGU@iy+9l(`Ud55sE?HbMfyHe zVbczvDy#sojR-RZ%ewnq1pj2%bOcC5Hj3I!H&t1PYQ)Pp_q_zILmzaNk;R!{+O+nU zkVy|0>T1QZNy7%5_=W~#`e@fPJz1W}A*e9Pt);f;oFRos3snH!`H|d+a%EJ~!E3Gs z>AZs>$S9yLBMjt{;2g!|VP9NjphM6+3CsaRwXV;qxc-3NnxRzKdU1CpC%s_{kQ$$Z zamPL{9_aoj76VUhPzV(Cb%+DyC`vB3NwQbJ{l=;xO%|~@9Ki+QRhmwm!8;Yp@ z5$&s-ksQxx_Wi7QgOdRJ6awf!mcwd$RFVP~+@E~is*O-koVeyZ|AIgq&v3W*tfvtz za?4?<*Xt+3`hd?mi(wU}O-pPa(aObh)~Bvdlo(5x_XY#^gzGuTwUG?B9{&PUU^`-1 z9>430s{;(@Re35vGJ0Hc+oXK2g_7BccmhKt5{PQncW5hJwrATT1PnOhca1?6%7RIt z=-tSNb~YdZvF!;G5I$KGDBU93(Ik*k#7kj*O|oNh+danBa-p_i3X7&mn*cpK0gz9gpU%?sM}V$FjrePjE>=t zC@9pXDMW_>{yKF+8)bD4`xz_v5M)JjrWfc{wDCpcoku&YB8zAk&w4&q2GlA!@YyF7 z7ac!dd7E~XS7On>I`8ZD-}iy~N!5k)uU#IrThy%Sg%9|iz8xO)C21V4EYPp5OxhRa zVjV^UK+tJ)ZmZ9a0mch0gF-ZDJ$%7vZCkW7$gcbkxbJ_4cmE4;`2Wi{J(+V^~!8 zw>xMXQ(!y~#?L?0pDBh3UepNqTXjmMX)l|0&z40xIm4dIfhJJ!@lWR z3-KFPO@xyv)E{rPcmOs_X0PT7S_|_{O5S-g?^8=`PK<_8O&|$Tuf@Y|-wmt05A@tY zIX{hFsE4p07B}WHX9a-DRSsTa>L-Ylt)#38WuF2KX4B(zy$TyJjDu|$MWxn109P5= zg;u{1lo{K%jRifl8lo3~BVJ{muUWY0x&K>B8MI-K0E;oeY4-kImUbIje5!|f#LK1s z)s5qMvA5hW+z6sC9UwAM&ktEoCB*7vr9n-C9tW=%As66-p$RB-N36i6@d=0|YDD*J z>$bmpIGw`m6;S}WABvGsS!4Y)}~WyfGa#1l@QvU?{bVe?hZP9edu6R``2;S^_B zad@&}a>{YOb6cnpB%(d9bTc#(r69`Ey-)IPYHHjUHX)_=N5Q_uh4k804C4nF5 zRkB=esQ`NJZHfia3@hLSDVChj*CDNdm~tlSxTrwB$Va{il_Ryb4VXVT1N+RNLl8_0 z%1z{Abk%Ii_})2a zsPXVt)mzKX36(m{$hBhXC||s{UfMx7C^@&hzyb?zCd|G#ptd3RbPQh`oQDBug?QVh znsMkIR;xR0PM+(&nZct+{%2~|EIx@(in?wS|6Wf4-+@F95!Q^@$6IjkOs?M@@j zO>D#XKoU@FbEzKSjq-R{R(W)rTpxkaO6F%is~cul@x1%LX06!2t6Fm8X#V7`@i#5I zDM{E+h`G48`p33}^4-D%rfz&D?ZEZcaIC?2MqbiiJ-t;E)V}f8&!o4hZ+>^T>zhsh zvE5>ZD&aLgs!e z*zyy%wNOR{{+2qD=V*36kilFI)-v?kzgzIvX_F+JJp2u)?3d~F5`U}+&vf71S3 zFRS_td6*Zz>2r*nPU#bX*?pQGz(XG80GSS;s&i}lw-Xu5g#9Q|B$uSIY{-v1i4&Et zkeb+o(?abynz#?Fe7OkcInvje*wT#=(_pPQGpv(8Qu&?56;J}ty&!}TY#iArZU=v4 zn@mm{cY&oZXC%TwE(5v4rk-0uxh=iNk8$&=LOkE`1D&Z$z8A11nI_FFDEiC!==S$= zr$44V-~D8WPr2O-6g=~>Xa?Nae{ zkwk`kd537EA>iS$x#GuULUCRJb( z&shopD-c94QjRKuNRUg%)xh!y_`j{}{cjK6P}*(4bS9|>nTSo#gOQiO8YTyp4+v+; zdO~5)rb+^J1oQl*C?I~XUH~{S{}{Ly539zIlAhBbE7!0IY|Fd}n_$9iEKvANh@j7W z4E0}Vpr~KI@2wRl$lx>ow>SO21A~dUSfK|5fC;)701EX*G(1%3v_AUgY_>g&N(JKt z>VE*nRSpX(R*#WR{pT@Dro055Cl-k5Rc9c}&)QQ0GcP+JZgyC8jQ(H4%|9al;{`y@ z<@Z|aW%g_s4S;ONHBV7!gU|vuQ@?Kj*w*h4f7CK?Gw+1Q z3xEo=xC6g!6&#NAegu+sRX@uw6;^--8!7?6{BWsr!ZR`8zBWr>Xw$?K#^vsT5I#*K z34_d*GN7sCT+hpMODo3eKv;rZ3#669EH3HbCUkr9L1?V+py&-pK8!h{sfCw-Bpio(9Y~JYs~NBTO!66N;WJf7ZeyV{@_tDLU(t z7vSe^+a(Mf1WH7q1QgLKEq`0~0)={;W?~Z_q?+%SrcFha02h5}`4X;)1LpAG!L_wj zDq(l0J^=DJN-smUa9vtM)~g8ZjZ-IhPNpA-soy{j>KDP!%XkyjgIB+FK`NNF5eg}Y zCNM^kQ3(3VuQt1bX(g2iy5W}fe*!;wW^0EUFW)t;IDhja=zcV9f!;swu>_!0rZqSh z#YH{jf9q081A65nkn(Zegwbcf0LJ68b3>FZAuZ zY4>SqcGv%yvMteOKVnu=h;)L$45vSa@Xec6)cY|7a_c{c>Y>;Th^RWC47v|s_QJbq zZSGM==!b#>9PV4d132%z{SolET1r5|VGQY`*CccwXHTJ5pIXHAYkjw>kuViZb$x)* z)Au0LU@qKBlW`%^*eBv>tEv~G znL#alxRMRe%rPc}&}D)&IsU^zqeu8oUY|xqFmkul7XBkwT(25q2tbMacm8ySE@)s!U#`rti}Q;RPq7aoHs9K@t7dk3 zBNt?I+T6PA0+4ZHenH{YttYQ)%0J^hzn0H@^=Sc@PMH}$rIH=d6J>2090!vGeQs}9 z`FE|Y{To5-*-MGestNX6VD!$b9VI2rU|P~E;JkCFDR@S-8o+9c%+v-%hb!&A(3T<5 zv{U#j!H@!H0P6hcOB%77r^Z{H;WAU9?RwsbEpp5&QTbn?I_I&s%oAh`9@T245BdVB z*ZM-xlb7ek%xTC+E8uCKEf+*Ose-g)Vwcy0jUrWs1 z^*U=K#b$S7>W(L=+{WVZU|YXo`ca^qE|Tui9s-VYxqE6Thp;xVHKBY+;9T1J-fGK` z!DR?ne|#$2*v4J{Hu2r0hJgT&iAL@-V@Ibz3*ZpF1ZSLAjWO9+<7JKm+WRe^FftC| zflM~5--qqGpZyKCjpvm@U7LW{p9*hWQ5pqxGvzIze!cq}#SdE~D?ZR2LcI#bGn$tN z==JyVTC~xug>h(}J2>gxBLd332*bxWyuyRqGavT>X~xvIAO1%uj{55#Eyon4p*(|z zN6NRh=n%eWb;p^jM)k+L+|%F3;h~+nAx&`5_g*~@xTO*ipWk{nl-ODYEYhiKu-#Bw zNSh#Im6fSR^eIP}?fo-IV{d9 zr5W^kDmBuQM|EkSA*s4Ln+UySN$e5T-V&2DZ~S=DdVWI zk#D`9afG-rO0mNqTmH(6S1Ep_W|9x@#bJD5+IrR`>W`ghuRt#DO2r(jfXq+x3yig* zj(T+_LFB98kM#>7`knrjY$~W-KR5F+!lNxYZ#e#EAaoDx^;`TXo9zvHEkreGHc~NF zOQvr50BPefN}2h$!LnbbODIb3>`y{AOwyHPBUM3Yp^DE{S`$II~JWA3xpr) zW?Fx$k}jM@QsnDziKg34vvi{B^d{IBY>7vH6sljo8VO70>U=gJ3PkAgdff71+hA5o zxky!av{$8M`gNf5ygDr~YHs5_g@?$b6Odxt zidh~sSCw5Fh_Y|I982gkte_aD{Mk@a6zLVA(lpfo{Bfh{Q0{ii5Pu)_t{2;<8LQM& zrO$rb3PUYFW0A1qC}Wg54aCH$JXN-__xXAmeq7JV`oJ-r9nlm!-{q!BKgC| z8D9?k(m4kc9_S1^&n@YG6!UHMtyDwMW3-cqWH%{BQdt7Z2hK_?ID3FTgzd3UTJw2j zm}xZimG^*PqJ3r}vgP92Qrao<{hM218I6{lVA~QZkVYR6WlB*9CCVf8#NYF#*aj>> zQ@zB1Blm`j>Uv2Ux2M6hsiHj`IDVJtYE_3E>N zLBTuutdueZ6Guw<^}j?oTFqqW%}IT8w7qeX9A@vcOX>w##fzmajA-(xIZ5VBBKRg*8*X^) z-}Qr#BP<)<>YvZ(g3-{AA*pVErj1=iJ#KXC9bfuiQoro&`WJVkI6D~?N@>boJ-djf z6LEjFQvZ>E&KH~J$p3g7uOl_k#%A?|HMhAY4J65I?Mmqds3@r2Wp4H1(Q(c+dIU$dL=B_D^n}}m-&+I#%Tv`AZWhBbm;f$lOUba9={b+AsIlWDv10-C=R`C?Qs=X zpGk)?kZ4A4*#r}>Cx)dc@!`w?vG*&=DCZ_Wyev4Q8) z{P2j@=>nNn7M7boy0or19XJc5My}GbvkxKI_H8 z?rf-FS9LBa>|QR_y#UnUvwxKIZ?OV{39uBabBxXDbAQ4I8ff1)qxV2ltx5TI7`2Un zy4vT^+pR=en3zc`B?d^FJWknCoFEk=Ki);mI{@QW-cDrST2Fgu{T#d3YqxHJQm*f6 zpZZy8V%*GPVg$jXKJDE#EXg~oJc&Yt$-{0ed~2D)FFdLj!?VZ;-yvoofM&Wi_@5gm zSY?eRi%PE^?+>F zm^F!ECm^YZKQs)xVOT^KuU{=l^Gt4`QOfyRHL>D}DTWkZ$B02^e!Sm}_mDWd|7~=b z9umGu| zJ-4c!0f25t!I7QG_I2szLqF1)PX3m#4aa<*SMbm+4^0%Zt3i(=#xt3CDcdD#!!v-j zC1S(+hBT8YR;$Cpk2iOG)Gy|kLpS**j`yC=K7adra1_rn727m+@SsGvyp{7zX6k#{ zmOQ?hpvPG1PifnG!gUR7gY>f@I|LeBp_<0S?ih=2`Jk=9-mpn=mfd zkcFAIv{VF-tH$Oqi#OGXPQ}EcDE^A1Oo}%svKj@%Pk6ms;+|?~Bf2dfm zhEIn5vf?cS0Gb-5sq0@S@3Crx*M2=OAJI!3a-^(o5Um!QNusE*_9&ZC_ZL}t}kwQ+hhf85C42(4+}=^&X$Ri2AP@Xdb{x(JO*H;) zBE&07f=u^QKAPg{zL)!fP?o$q`~yn<(q<0p#z&=9?FHB5S$7Ft&9gsQQL(dkZ}CMA z9&k_oIrtm@@*u2nB||9PKE31xyIA~t!BAU6-?8QvGGoj2xC7j$9D-Mg!sxQvXpvEz z?$PKQqBkw|<_fI&9Pd-JQWQMFl584KjNB?8&aMP#J{~9YLsLAXABh0-SIz-#Ngu1g zEt(^1wW}d-F)%3!XeMV@c<8cl2klZFHj>|BPWPlH7s{R}Vcz>Q2m*|b+gE0inw68A zBH=P?Cmy}H6!ZshWs#dSeGD);?%zblCj9V~nZ`KHom!dIQ%!(_xQxH#sU+KHz z`uEr>jEgXPI5?in=kzVxe-ap&+;a+I*uwWEX_DP;efJ8*#wTze?UJAkyGfvOHXq?r z8*Tcz$dgDR{Fxk##`uM?H24w)?~?XQ?p41Lto;;Zl~9+O>0m+`&U`zyfbZ7(pZmri zg=j^e)r`Ak>*6aMys@Lc^cFdyGJRV1Z{{<5=P}7miGbOatQ3Axz2X#E8vo#d2XKcH`DmCTldH0DTQvk07ho?<=N6!f#pmyI=WC&wFZvDOLY9_N=ux@rQP_L zp|tY)r~!T54FcLWGGV-@dc;|`m-i!nUsXB2OeX#zZ3*Y(9q1u^vT8*$&__2~z5Rh9 z+2h(1Tm)auaT<_kie2f=ygf&jHzdx8%EeUO<9t1Op&7>TFE0275Vb7u{_tl#{kCy! zDh$0V3glK@8`ZHU=rh}IKJiR4&Mf$J57UJBy|1W{zDMThjQ4kM5S;E354dvp-H4is zKBc9iqq`R#gt5O+nWAQA=;kS}tIY?0(s=%wlG0ZucV^Ejs5)IA zMt_c`c~(TfDlqKZotEeQeczXzrq9)&?N-N${h#~anNJ@pjggETaHouCFg;^`zf!Pn zCrI1K(?B%dez7D)p3kX&jBxdM;cGM-%FP&=vyX-csNN|%#Ywejsd)$zy2|{GCrRDE z=J%oVi3r1|#TR|oLQx)*ysjw9m(~Sr4RKFqjRq7(f*pD7=uI@F5*$qCT*wn?^9f6d z3c{RT(jyeJ@f;94J1-(T-(V0>?!KLV{=`g5^C<~C69H+F*4$>#z6VfSW5xqYZH#2i z>sBTu>UMa4;Bk^;NwOYZwK-xMadsNTK*_azDjmL#dx)3e-xaG+j88x`_plA`zV(uK zYds<#8zVZHf!v4$Q~Uw%Sm@S`gHoav90X$<0hhQ+?7+h4!kpEe(YF*5%uia-Cq4o? z*nfm(dB5BuFkE*SNb9WZ5P4iP_$ZYC;aL{{n#qflYw6%`5}c8J@r)N|f(2-=dh25h zJRE(8xQ(Eg5{>@7$Uu-_VS!vF?Eb^>eizJL*B9X4{%|#8YriW9Ry+ zCsRC+HGfoo0}^%30`FHuWS_fJVU)H9VUiOG^6|Hq?^%*nKWi&SaGOs#7|weC^a}O3 zp=reN)M+X4l!(m0&+T=<7WPDYite5|_&>EB;bu_rGrGU+;dak;%lqEL9JA^So|42; z5K5ydV&C*$R@e{0pIW@0hFc{cb>CrA65OfXr&z^Xv_-C!wCqf0guM@zGP5wW!=9#> zIec6Ee^7On0abO~7M2d_M!G{JrMsmO5DzLHN(u-_Bi)UJCM)}Cw5F`iLRw9#ePh12=>P#?$2C-gu99qY(Z_F5~eQ||CvG|9}r z-Uy|pAAYf_YlkDk&*+?H?UM9@%duDFW>Fi^&j-IQla*FsYt5rFsRpbT<=J9+K(&??7wCX2&_X zs(WdOaE`Swj<>g^7h6|S#bLHD^SZVBnVY#!rS6J4(ac@#)4)R^wr7Fil8&tDf$f^8 zTsX58m=7xnogXYI@{<;4Zxwe)4{TQwGb7UFXmRxaw7X-K1^!@qDan_cm(-bb%Wlzi z`Y2t*e##;6aVHtdvw!hDf(hq`)y(;5qR&e|AgDbNjOdN$s{z(c|F%3hqJ%%P&Y;sD zn8^+QB`J{OrU)r6=f-QTnEF*4R9zQRd~mDxb(rAGJcU(JJ~sqmq@d`ec`d8m4+%bb z5-|Oo2u(XEsa89boSk-^o@?qulW5q4Lf-{*;f_@#fZ1N zXi6N0_^H;+J1#=)eJS*`rS#}Z0&gkpHa4v@uOsf0T&zyVWuiG@;Qe{&5Q0sC_z8w? zac6jclzg|&LwpuK;pjUBDXoV4w4526Csq*H11&_eTv~7~nNWS(HdGmYTfD2ZpQQQy zQq^EKl+(1H|6G$W7m5RUudF} zD8$p_Hx+MTs-~N>wWmd;DRvrWf1#-uDS8@5VxIk6(P~L zvxZ4h%PLI%JNv2)ct*dx@~Q-F9f+1oGwCV4!-=Z3<6|L9ZW^>k55<-rC)bCeeSX$8 zsFva&Hpdup_S`wRLm{$A!75P!!{y#sTn1*Ma)@N>0ygW>%ZW@mf{ygkOkRf&Dg{z| zM%1_;MEmz+L>C^RTON=^)+XK+7}we+qehp>xQt0$wqh952u`kno`_NT~_6h7II7X4iN{=fdsk>MBoZ;M)D=}VH<%#Qf;4q7KzOd&pIWp808 z+rE}%-lCty?#i;VW@Gg(VzTZ#8ckr4o6JVr0GmU5{89C&j89g4c^z^7bJH+7(;fE- zirWQQ9tL7FSaQ>!{ccUj9aa+lnRW-i@cW-)qMQ(H7t~^xwCX{HBvX7XSXu9SJ(5>%^_r(f680GxW8Q}3xV$~(?3pQoJP8Oq&lj| zcuZUx^QodREn4gSK>u){X$uX?vroACs8|Qdg0>n8IK~fvI>y0*PNkmqehH*+cFMX@ zzK~@+O1^84z%0gAeV;ey82xMOJ9c>>e?CVS{cvRrKB7~@5M=f-P_or$ri6BlZ}1oV^cGgHeDW@{E(E=iAFG4igo0eQ_U7jJbgoZ*1f z;88In?t@D9gRxRdbGzD9W=|{v+A|U3ORK7OlIU^~`M?4xZeDb%c};KC!oAKxjnAIv zEZKsAuMxgRGV)Wq!BEzvG5_M;^T?sZlYIUJ_xGU(I(w;PqB;dwE`(#p%ot&of>!i>lE4^ zbenqnX(!B~O<85`e*X@^ftZfJrapVMgaeK0KgCjmL;r^IqTN_;gcWu9!50Y*#On7M*~HE4Q>u{NQaw$CET@(Fwx()?e|Hc+1LH4XC4A zNS2izR#!eFDG3tG^I3G;vovafCK#UBwQXgdqY<%?vdTA|8hkCkah$mG0u^KQs%TN{ zQ?EBNpSK1V<*!$*>uM+$p4kzRq+{ARXUvBx*0#e#)?#UtIfKp> z*{<=s5n2-+Oa^GiSQ#QQ!jwb>2xYD&dF`h>V~B?{qxaYK3D~lT3gq%Q3tsr(Uu-F4 z$fI+rRhM%^?)47NQ`Vi+(*RwE`kqAAs)pPd#L2gZ>hm3ojRRaO` zpZQC3EGwSex{nLAas!>B)PlLy1bUrD^&Ke&BGUaf67@=4o+{}R`8q$Ov^&96$~tX?zOE^*nr83_3H6CdIf=9C6pSCAH7){&TCaQhtO$3+vv6+GHUNzHJd}cJ?=|zV+ zyj9XsZMKn$xPd>1FR|VHOJl|Gk5$ad?MLKUxf!Bu4<6C_ij6xTomM?~2yc3}Gv}kd zk`R&HkrWb<#(?4p6>CA$A;BrxZt8EtyQ_zzYjeZ#{KAHhs(tkxI&pKqNW`sYx?@c6 zcE4ZXcHl{C4Wn_Po^<~{=TKm|m^3#tebgCP7{cZJY9KybsC@FC-w$r*?`(rV-kKSD zk|LmuOYS(a5v9`&Hadu>4Ub#E{Yh-fI2Q4|)N5*4sc4mN2Fjc-Mb~|{ZDY8V$r3lH znte~wdExwD`Xdk8ZBFCk0_MERuw0?tkk0RU=o@jmI`NpU+54#SS+{vYtR{u z!dZx1cB)Ua-q?cqv=o=b4*$ilTqbo~KpAzIuKVX(1)JbV8H)ts<2jk{e6)2T>m}@Y z7)rjR^=jY6K9r=qGg7BMrj2_(YjH~v+>+sIO9__h_Att5qC_p zjc_x9Fy95HsS&+wYn zbd93st(@NEp#^@5hJLs;(QTfH6d@Tt@N_8o2L9GWXs9KpfX;L5$8TP- zqO&9(Q@Nk%kVzhs1KeiHHm2{TQ4_+iT8Q3 zMJh~oj$+&KYK&V$iWgjMDbqU;;qImoZYREoNZ4*+UmC*yw`OFH+Z+nO0&C=YlDhc= zDU8Qhk_@K$+Pk{-0_h0*$E)CVj6n{4lf;X1DI}#aY@|$TO9c5cULqFjH7fndb16^R z#K$ZD3fwtn6d5Ph?2v>zN8OAfkI32=a(e{s) zi~5L1mrp>Ukp}%;F*oy!hx-I0K8hYQrMp-kSTDy6ND!5rt}{t#jgco_{x%qe;=E5O z*hh@CgRc&2_=OYjQoj=I@@V7vU%VmsrqlUYkHaj9@TH_>l(DB}7)RT!+LsG<04fc9 z!fUH}oymS;(#2EPdD;r;hmj6O5&YdeuVcqZ617x?Ie|n>DtMrHkfZ7x8&QXKN76Q} z{5)c;a7ZR)=Ro*vmQ9G0)esJ4r9wKYWQ-`SOnNm}yebCT@N{~n%g-K^nLUqQ^w0b~ zMw!n(Kh5&8X?W~N0+&0XE%c^_Z7=uFcRFP&Rni}IG>>q6tWW!n8R@b|{_zIG3_zy% zmE~Q)i@(GO-nLE~8)RQ1Uw7W+wa7i(>neUO2}R`GIZ%3l9*1+3$RA60FWoz&2=#LW zX7_`RH6Bv%vmrtN#32|M58mTn68KNB@8js_;uJsn23reVGwjg#6yeNl{*$=0IM+Au zo56qj0vBo=eL^{-3OF^0vAY$8uZw>>$bH!k`NB~WOXNSffza?<=c!ht2m&OV8eGNX zP6D-*zF3;+Sc#rX4r=}k+Y-VTlPD z&2=_e*!%NntHYTa|vmJue+GB6ZJ^16+1qi!* zYu{}TpB2qI&2~s&hjf`nZJ&*K6g-{rJsWZTE+drXk^W{B?~gEH*Y42W^H(E+BT{&x zLv9lUsl;1S+OzcE1cSew%AMx;Wfjd5fAc5&CKF?q_1*KbYuv+M7N~PS92{@HVedFc zHdr2<7k%wJ(FvvdS&^LnZr##>(Ug7iF#Aa|q*NkBP*1v^?8H2!-{+W5=EN9qMS6rh zgzj*mWu&<~Uz^c~x%@JdNve1XY%EecmYM0-fC^$%q}wg{$)x4Y;BeO|zf@J-3qC7Z zrEeayS{KzoeI0h<9G`oq=3S>qt7}};b?^(VO6Dtg&aZfFoUqxKc|~tI#Vp%BZg_7f zusDA?qwVw_f(C~~gJNiyF9K;8MO~aC=H(h~U4z$`JD&Hx2)3q_PUj#rnc-+QqdDY;XGuHBe}|C&3r*@sT{XUD zUsu!~|3&COO`m5pbN${kgl}I;4L=hl-U0@ke|i)O#Jx%js7x(kV`sk*s%*<4AuEYuTGxeSRu=G5q$k@9`pSz=i)G_e>Z zrKy4HDOg!ihSd6#1sSX^zg57l(o}y~9sleY!ul&{2i>Y77gT*&Kc%r% zW;N!BQy`RDJD*{nWta44ZZ$nO=J*tpZGE7FFo^cLF^`R$yo?{b4asK$9nuEEF4`_9~ZY_fr1ZILGQ8w z&)_7lWdmT0?&{K$97a5Q@%fI4HITkN2V$Puw{v?3f>NW`;z;-b!WtX}P*w(ML&%YlI6n(k$tRb3qHBEV8-T9x{Uzcu zb|-Sq@d$8C=rMMf7KB-UKoSN;{T!*?*6eDK`)4{6tdb@kQH79rC@ao;ys+otN&ST5 zZMRzYLnQfvkX{NAvDjcuHBGh*LIMc&0Rw0Kwqa=z4MPZ5tGajeZ^GIvsQxs8w1b}> zk3%8|ftWT&@DGRY(*>vKhaDu(g66vesvxofoLk?)%crJl=_-KF5MFHBb|rX;1EkmA z;^&<-iaJJ9UjZr8vOC!cw~{ANBB^yjv!2S^rUi=fBtX(J#Yu4mha4 z8d*D5^=s0j!HMd1ds^bZ%T78Dik)9qYoMs{@$(kph~x~`VQ}~c2{#^#ie5uqUT9Eu z2sXoD$TEX#3-{Uf;*!o^2+&kyLN#5r7B~T5+CHWke;`t+*N;lkOMyR3bQ$uY0e*LQ zZYQCiVa-D_B!bWET#tUTsAELFL+2W^s{;wBuR0_t04rcD22uM7@(bTD z6>a5B3^ngKFeyFD=`NgeJdjAa|A78yz%Q%-BR5vfe=O#=Za#yK2PA6JEp4o9&BI3_ zusD0qL$aBG;KXf})L{vEOC->?KsnX1!j{M5W_90UT`KYhLEVK&?y&n>9Oge6Z~_rG za$}bY`C89b8X=8X7~G?{_agJ93a&CFUpi^jgKi0tAvQtuF9B5G4H_?j7S-+N5*V`Q zs-1UJ4<u29oX~~2k!jV zqsC$yMWh7 zI0djW4GNYS^+Cori@yD$uOTUsfZX4How$?c-+qB zyChic{8yHZkapn6q6tpi^yL|&#d>${U&|E|K|05jIQ|5% zXujhiwBH8s$RC9O&9wvU%+s;9aNXvFBs}6`!)eCZflH{y2EUT1*nn}(YgHqiB!PNy zQW<6Z%x&RVFi?4R@3h`=AwRdj*PDXf7RZLYPLIyH4z{G)a0H zSz&~9guO>P!gkl)p%st$7-x*>WD+c~QAjI#GDf>x9p%Km`@{M0MQM4Lk>hqF0(Q5j zeQVLoX|t<7(n@>ZC7i*-{@YppHI1(#0+^3ouzfW_rofZHyUfieSGQ3~4*M_{8BlS) zzW&89(erz6?q&L=W+*lxh~${6st`-++zzEQIZIJGkC2(K?B`Q2AlDNfKemqlLfCsm z^csNxF#{8kDfhw6M^5ggRVM!sQuySCQHK~U7#<2-KB%N+aq_EWX3LT!Bgq!uYx6ztX&ymJB_~gYX!yw`n`yc3;U>Y3iyNr3!m&bXeYC*cP~>ez z=+Deo?AHWLHRZogTphD11_%$Nqvn5#mq0-o%DZ8St{HahyGc9;OZ#M?R~)l9%3^MtX=H&m(t z6otk?$N15xUH6`c_GBHid~_FEs5g;fH|d}SM1xhO5PssxhQCWbPA`ACc>Ashof-Cq zs@sFr){huP5{S%IhlOMEN$t6(rqX#bKl-^;_T97`fUsXz0^P{yx0TRX_~~s~PLIBV z96BX$7Uc52za2i|2^x{xHx2fe*h7?Gi(Zn zDTc;Nv-k$^_9pt~DHa=5Z`fU&flp0SNts|Zij&wB?IZ;4#uQLE?- zLQQ~?(95l}vrXvET2<&4U$~6msSDlrnK*V??4@HYK&kG={{EsuBCrl-c+mS-g2~I} zQ^*scP4+-Xi(&1yH)HEle*_Dz2yc^p)_YySA+}Plq9c=BeK}3T;_r2I9iCvlIu9bK;mT5B+R3jl+CNGV3-t*$bdY;EI5?PVw;;n5X#dM2-{ zGN{;yjL&i@0O-g}Gc|V9hp`e5j0dfD(i1cBjobO*Oyi5EY7?PLWTVRcb9O)~oVtqHj(%}lWVa{ZTe!?g!GTRp%gms(X3hFc!thV0E2mkQi$_e*3^HWM<9*pGg zF<K!O#^bmExX08@h{`9E z%1Ty+lP5sT@-jZddp@v6s9@>$sDJ)@H2_P8_XI58jsAEL^8lknI*_b6 zV(gzzhT_HFx7wRG1Nu^rLw=z0Fx$}6%cT%o$=Hj_)2Bj|wNkOl6-&EU#j%++gR^#K z_l6DqCl=;>aqZ?CD`;YnSMaU|KLU00?;461bQ!;uJiE9bmnxVJ=G1hvkwi z5h}|_iQW6wO~bMs;mNPhmr-v-G zq0q5!5ldiD(HXq)<1Jq2>*1VZg8jplka0=`YsifSL#Z{-SAu*B!FF7Tgu{+?rh69^ z>`aUxcSN{PjmC3~Wh;ZeO}!51`p#_N=mV(H&a6wqrXkkKtk5P>({Lvzd6cZ&vF)KR zIJU-%$06nB*&)|n8DILq9Ppke5@r`{d<}-=Q-pjcEVDJj0gqYI8LAo+1A)`{rTSg)zlvtpLdI zI3^3N_qa;=fMk=FPkm7SC$MMtTz3WsIr+(4ZkoS(5MHmwgQ?_tq`Ry|5~%)=sq>pJ zGiiaLr{a1}I61innL^k6ZU%!XZ{glLewwIhca4z>AWo}N*{=ZSluWAmW#4S@0e@%8 zFIYb!K}IYI#5d=QD%Qlv3#8<{7+C~k%6W%!O30YZ=?h{$L}$`eNA9xikrMhk%?4uY zACXJE6G>;xy{Fn6jkoaJ(0ouaoTjBMsR1!sQOBH6%H`RA_toohZ0*9y^Ui@vx4kuRIOE=A|%;qh8&%SwmFO(mSDNn;#0~#<>F*p0!F%rAca^27T&`+-#V} z&1oEqIQvlBevZiZ-9b^hZY#G)sn7gb_`RGjaC2WY#cF@CjbrgI1Mp?zKJl)*U@~bE z@{Kal?j+g6`%WXuoMs(q{S*UDdxe?b_%iJVZ7v5!Nn5h@S#`Rr%wcDkY{@x@e&i+P zD?@h%s0VJE7W~Ui2`2p;D4D+fe+H{#Ux@RfSM|69W0_6^@pRFBOMC_)yl8eq^&b-F zDr85Dg)~@9J8mIl3XQcB3*Xbl(H5>0)<@Fw5~(QR6B^aAg#e zT&X-hBJ>$)amnTR9P=a32>tV}TXMZ3X5?M25zZoPKO@5Gre{^wGCjmY_YHi1Tt>F* z29Bw^9Wb^F_O|BUOnuvUwV}Lrn9zx9N2mSgQ*HF@wwuRW`o|%ZUD#{6nd$e|A$7Lz zjZOlZp_&pYpAfB%r9l4Ej#lktovEysNt7+%87srBag5L|)sgzzD59C`9>T>CaPgf% z8Sl#Nig9&-2o6i}xYRR0QJ$LxScY?(iNXxNv^C_eAh^zJs z(>_PE>=C)Nj+6dIGo?b~kfV-TbOs-9QBV1G+O@3qe?$y+{wz|Bn|sGEvL_QI|=t*l3T-XfM zq@>o4yJM)EWOYn~Vpp1Z#=)YA)6~&c1AMwdBhA=k^N%$d6AtT7Pe?5P*LJm@nfuUf=&o~t~$&e`Z4QfWF`4W7-jjS2S=DFo$VPmii(f~^sU z`|M%BdT5ZJ(im-rmW??2(UMc3@~t#toRU{M zin3MMzn$G*8!2-vJRCQUBev+Bwd}#W8EQ>xpAU+&GP9AciGIa5;Ydr4SjH&g`@zj> zg3TOd$}E>5XNh<3 zm<_@gJB7dXt1n9)(H!E;E5o9}>)9*@32}?>#ft&w**b8$KIk5OZKik{m=R`=WB#+| zWhX%gCpwY&`3Hl_a$Ae0SP!BsgpGI{x@g8S!msim;~L(d@)665@kNUBOzMDfLUV0q z(k?E#ttFT8#*x{bVvl1f%pCh+>kK{WzGed3b?gn%DNByYqonv7BDVi3YFM&}|FO4+ zGYYkew>5n7tX#E@S&Y!@t#nuw3_R;0q`p5Gu)m4@pqsC?Zdij4r|Y|6b<30F#Qcjc z476+unTD{6a-xM@n&dEOCHlYheHMt`=w&#q??44v2r9@}gJ+2B?E(?QN4|*dT(%1oFZ|fh>>`tHwysKgCZ5W4 zbFLL89ZK;j71C0&g*ulzOav7v7LEDRXYYd4a6iy%Voqhp(HNFLkv0n^7&;<~);};wfdwL3l7G3}Tz#dPc@~5%q5* z8gHPklKF^+I7%3Ri+9mo9e|qi2ChbeyBOi4QiTE@};PQvGxO8h!Nt#UC9z39OG$hM|5cl)z3RP8Em%TH8=rMUaAZ|x`LNnM^H!p$3xYs>e# zc0XYu#Lab3_`wK_K7j%hAI&{a3z4npN zJr32oQ(9l}FYh0kuS*F}e=cvYmBYzH&5D=NhjSIKMAy+5NKh#2euq!Aji1%hSUmE9RTFp9C;lwwi6G$BH_bP!uSjET%E z5%=!HN_}UabbxAB_4R5DAR$xMW!@LYi+7OW**e3ozTW;(`1su`2_^Q#QwNrPg$7gS z;fg3`1tUWLy0hde+4R)aLBW|`vj}}A@Z$DFZED$F&;Yf1^h}v=9P_?hjqsG#k@g#0 z{hS*wZzz#047)A9h)wPzuSY>QDVn0ubpFimrFkgHPBl2~7Q^x_$xm#`&|U|%bL=mJ zsn%pHU4Ko3JJGt6F{Kkx-jCJ#mOrTV<8r?u>Ov7Iz?l8<@Cs>cuZH`>>;Cks0ms$ zmzNcbhCcgM`PVX{j{m;@S!ZJ3-8#jGt#gjRQflt235FPH9oC8hsLTj>>0Yt4GzDEM z9+0YS7IUs5r%qB=XRDShL;tw1Vw;YXq3bd0mD1AH#M_8~O~MDFtwhVguG#EoT;GS- z-@JQLIDh?ijZrwEfngeTKD(L7P3b4!WjOdP5j61g<-QTMxLl|%L@9(&R^j%y-L>O< zy>q*~l4u;Pz~K4}{_fpl&}-(5F9sjWOfa9#*+cWuJpqlJl5S$dJcrF5MJ5xDn3SCi zE`L?VBwc1X;Mzd;;J(1eoaGNXCi+Lot_&xlrWHB$8eW>p6@WmK^@;}Mrld^*@KCvB zc^+#B_8kMyTxLVgf11dIJg_-qtB`u5bZR}AG83jF?u4FFo!?0oxqrw9^pDr&!>Vcq zAH|kQ+K0Fs4L~+Q8&B0aWZ6iO?G=ugICBxXfK;<(oP%=QJXTxZ(6`BX<&|kK$P_{_ zU0cJv=~6^`6x18dleYc?evn`5ce70{^(xjD0N$QxVG~)GraOB<*M#~w`tjnlZw^U8 zgynptLZt)o^;je;kiRIQ2F0VIfWE5?(MNaPyIq&PM-grR0AW~YuB;}7p6y`ZQuWoN zK0un`sZTx+(gI;JU$~4@uqj9iI!T`Zx?T?qiUUa#<&&@h|9bdQ#DRR7=aE~OPfNrX zfW5J_Z#!Zp4O71f? z^qcUM0T-;%PcUlu0?A=+z|lqsjuJ#?oVkT_$J-i=wZx~hHqmG6l_nucj{s4CcmY!# zVV61fnln%f!a|X`PUzByK@2m#Id-?52&&#hnE~L56bhGi3h$sSf}QM)Rq5;uKm<#| z2mQhHBLEI8FIB|m`cy?si`uzMq`v<5I3xfli^fmfqfyAu z1D(4q##Sq2GRF<$bs%m!pFeYrx>iw^RYE=%OQ6B0SqO%$IQiKi)mbSV=IcC&Py6pm z^jrMI^X)GpQmk_L5A6ggL^FFLp6`OO2r2aF^@(}hm~nKRArva5_62;hm1chSQZoCd zfV`_hnhu>xoXa290^}VE;86(zI2?|~|2N=-SVg3kA@u$S6=~1`_^}B7nATBbMz})4 z+=P6*C$F_L1Ugu{Vo!cUz~i2uI0oHYp;3WqOoxUb(Nmg$8P zz=bm>g8&%RRxVZWzq13`ncQkWvysnVX@R;ii<0LV&<|ubEnt=(gHYv-hX={n6cULc z9PgtdU6;={0c3gRun$Nk6uK$l%;W@Oe&qCg>gQG-RIr!i)%@?SZFFU;%{}_3sHO*I z)=Iv)=3QYL5ZnpGYMvP|kKYuHwL7~9cfqv#p{5ALhNz4S|jDKn-&2Y2MAw2=<=){eq zn{c=RiIu$(cLy`F#9y%AJYL%DJ^=mWtUlbK$G#vT=F>GeXM`2B%-3pbqcy`_-Y!gx z56B4_ENj^!rT5I52S!z`lYxkobtChn!pXIqBz7<$wW~@CgDga3H6z?bv&*wC(2IJs z#zAz?N~-H@#BI1MAXUeV>KGt=IQZ6KM|gJBqiWBA)G_b#A-qfbM2{(lT>p@$sIG}0=lU>pi`OyG@cW(f;|VCNr9HyJ@mOs9q^yB zjs7t0SuDN*{Kaaz)4FQ<%iU7PLg|{Jns+WWp{vgpIA|#+Q$bX)V|87Rx70|jrF2&B z=BT%nZM1u~v(!1_56;CK+p@l7Yk~OkRW%ya1&-2S_j8G?`|qL)=uTG$nzZKLWkt81 zGOdbG`KHnmVMU zbI7KxN;aNBHY@sq;3Br}Fw>ltVYbsF?9hd2MGP+I&eg2z{Sbh&4Ob+Wu2q|nk;6n) z`V1++)1a4Hf~*W1NbZ74dsjFmY&4(z*6ZoiJg@7;Sp%E_y^wRhoHGOUl>^sm4{3Ln z!xo@&8G4$55)m094x=WYO3=&L_;+)QS{@%PVLG`VZDNkbzQtlAG@uWvNv4rG))jko z&-+S9nvjiNo1IBm)UTIDU`Wuj=wN9D#jKlukAEd_ZzJ##Od^!R+y3!XcHD&i3Dng` ziuu5h2ea%t+esUCe^=-WHON z22}}Ai?)QMv_lI$#JB;0#K%XapCRo1_`tgDaLEVYWMwy)q+Hkf3y(HOuXmuNtfGx* z5+bz{Ru9G$3IB~j(F!z%0xR#AB#8R;frB8B3*t1Q=mlOjqZRQ`trGLEv-0T~%&_!E#}V6tTp-$~6D|UT#`Vn&0AYt!ULB9bTzgDjf!gAF_;hRvitcSB;pjQo zaoJNE((Yy$088*X)!Ie-#S^hsIOXqHssFr-{hKfmBPZm z^_#-D7fx#x-+tcx14B}lp8N#T8LHH25U+%RT>uGR8@HBP<>r7|bv*8P8_@iG@dLjD z3(GH<9T~MP&QJ%^!2bfcv}c^v!U+=G8w_Vm zW~Tu!db`FQ@Xk)e46*G`@$aopxndD|Du@ygkLkf>JIr}0kdwu6Kzsr15KIPg3 zyqJ;Q5|}FG3(<5|ei4I^iHBeJ?v&ZCanVKERjUH;OFhKh4b~2xx-70p**u0+#MBFt zO_5{%m3cAXTvM#dY2;(|3aQk?SEx!CQojX)s*kgAbX4(3xfHdLKsGX5ZY znGXEa0Snc6ELBy!YWw$al$D5Ia3(D0SU# z`dan@I*;1DRV2G`gx@4}_<0E9V)Lu-o6GtAc#57geHV5<5I4tkcHRP1s<@|z*a4=F zn?2FbyYu}n6POfD1iDJ6iTRS?%+vACjg_Ij{@K@#b&+XPMH>QqrLS((*Nw}>H?qeH zf5)|$0!P~}Lr-k$pLvmcg2-@J6(Qtf@qJvL4Dt-!0+UONc2+0;U@89?>KFi&gszoHKHas|pgK7 zQ(5=sc^ZiN7dAZ}D-Gw|&Zd12O1+&TRfpe5?zeVUTK&f)qvrJN`AS<@S2sJ zxj7-=VFrILCWHR#6bfXyiAwV5_St}}(t5IfA~)}UCGdlI&ImbmR#>`43_iR8HXJB8 z`r1<5F}fMyP7f~^iu4q4#0T3meln$Wf4HQxbp+ur$Kv8k0F-sYzgi?Azb(UEr)!9> zLH$6G^JbrCK|TpS+rM37G&gg-H{*})^x&?OaEYr*dis1&qJ3?r*^?qyCm%vt`l<^3 zZ}LeRj-)w&^@<1wLOW6WKpL_n$XpS~p zMx>F4MEVLM9T{rY!G)}hrj|j7$3Oa;g?`>V z3E(CA$eK=tvdOOrNteuYBlSHV1E}H?ho-B;#{%c8L~pSln6|pRb+C9>7CicV-KhIU z#PRPch{-(o3vu9!fU_Qe1&+lRR2rK_dR1rPl%HX3y#1egR^UN?Z4pv+i37Ggv^VuN zPkdJ;|1#Wc0AU2a`Q_#k7m-n8muty7CY_XI3=^=P7F{ikn{?Zp#E*YXropjri9On% z6wUJH{7WKB->*{_gyK0!u{99k`4s37jLndDm2})3ur>IQUZ1Hm+*k7-5}*NoQ}X5f z^y9>Ga~1SQ9o}j`?vw6XmF9Q^G{Q^+q&5)v-`wQEmDrOf#k2|mE}n{1 z%qH-ih+da}^1U7gxcz+QBk%w#t*_doLe?xuzbrAkf!xM{-}K`C>Xq({M9d_ouktDZ;Nad;MiLhZ$$ z-5GsfP(A64k1RjG0vjKO_WENWA@Y8+Jz%cB_75ofl9Ko#Q1?Ma5t2{3@Dp8`SX$>6 z=Y&?`;@ywyq)Q=e#gJyH7BNteb?ib2vG{Ma=nM z15z)R(q?F8^VJF%SeikHssfuco@?qJPqteb%U`1Cvu5*=-;@msqEcKr$b>lJga%A0 zkXe!JMGET3=bzh-25&1y#BoS0zFk6S5tpnnpKPM3U+M7_@WeX>6o9m@-yUH|T`jsL zO%RF#RrU<*MleknnUfQoNLZqs(U9I)hg$8{nX_gfdAAD(`E$%N?S8Y}ir9-wf`u3L zU}=1JZ;iXFslQL+ZG@D)!3D%TUc6x-Za}`wmSNP!oA~mR<>yhaCuP1oJmEkudJxiU zMH7TUdD~GrW`*I|NiiE0&-b0^GOz<*;<#Q4%Ka(~1g1?#ulw%W-7^O=Xt)4Rf(4^B zqJs5xa-|tFXN9W;2EI+#)<%I3eU2@+Dn_ug16te?v>rrL^;pnkTz@Pd#yBJw6yiKn z0}){U0IXb)(g|}sx+y_$pIe*GJBeDBKy^1i(mY^;v?)8PS=&G`2sn z>SZ~dn(<5%eRO0TxQ2nBqz=mB4>+!pND8izU^CG7U{L?*>c}|&T7`itya+95A?k%1 z>HUR4%UizpKAZu~u1qw6VB_N9W|;x7fvW4L@tOKZXL!Jf?IYj!n|}aG4}ycRwo7PV%un=ct5F8R*R5lX>I9@0pM+Lc+Ps{1cbbPT=-GjS#%-s zoQb~#Y$H(a|3T{h<;WC94Z?6KI_5Dil@H0m8NNyL%)kO{848W9Wb8nQ>BN?kPy3g_GoQal=XexKUo(sT>Jpba zGJd#0o=*ULCY%z*f?#_(7IXQj*;ZHX6`}U2@1%PQ9H3hXwvUPwIG#u}zbd-DD2q%O z1P>b>#V(}?Q^@lz^B2(30khmzn|e~Dw${uy6)6~SuMRqc-1*5cyotiMZpOHKBqD=5 zV0@n9bG~if5$7t^gj>n&PNtnHn)k3Zy+4dpz~q)?%c~b)q(7x5=WVrTNoy-n*5wVf zKnhTkf1^$!DdDUt~NOAu9JTj*kkVXIdDrJZ@>omk|_(&F4Mcb2;5ND6#>9f=Dg zzJh!qhOUo8QoaX6F}KHan|q4E;Un0YZ{GzbVi}~X049SrCF=3l5lxrno4L2l!CWXA zt8*qQWQaCVaqKPON3^9`x_40)4NLM-y3kYa>$@(NIzlU&mU_KZO?Y6N{p6c zv%kT?Oks%n@vJw#d(CIv>e*E3OwjkAKK&T%9qZYfSw8z9O-b(whz~w|4Y`2UdUMnP zx5Mt|?88*_B^YvocWs)Mxz%{u?QzeA^LnDFLylzn!x2j~4pVCgC8dm1z&J{TV$&t? zLHV&Y?c9D`x69}I;wqL(AXl^}uyj?cN8|Pu{u44B+P-@#AGL%CDm?-Go5#l2ZEl^= zwR$o*hA0(SET6nbe{jfDPb0$>@fFtuP)9VCv2}AgY+e-2Ig%XS>{fn4X)M4d zvnJqv)LbwfzbVb2r*Gk?nwRwWoyn-&RCrN$zw$@Hrk#Ppq2m@<0afPyb!CtvN?L7# zWy+M z&p-!S>Y+gF;O0mOY4#{mvr38aTuo_?m|C^*;g26d)xtR#eXj277vaZPX$19i#01Vy znH~_fH7>h;@Pi3EAk114M4-)vr)Ybu_C%4rJj*dUmiRoA)zA;chn=@59?lmipzPbY z7&Tj>Gr!PeJZ78##s|Y}LjU3jeQ$%vk1qvfdvBq0{gK+~`;+`b)3yeNocg58qYwJ4Z%6&L;uMN%izkUn=^#`cfG=ev8qV+2RQ z;)E`$#92thSU-imH#~EPgDenJAn>$d-BQ&~+DEiHb1yO)R;Aw-oD?e<2Qy!EHTR?M z_(wQLYu~8I94pfzI0pTh4f%GaBL27oc{iiBVhZYaPF|=P+bv2ddb%7EqxUveyRO&> zLZ9B~P-`F~#?cXN^P^|pyExeqP50qc;r4c#!Tjim*>u&dJ<^9dDluA+PRiu@d?*tQkFwKkwG zup&Atdp|Fv>MG)jwjQR?wLahEHKzSa~HIb~u;SmEH`k_15ePf-{DKGeGxq=k% zJ6Xw6-AaSUi3`xL-lXF(Hz_{APjp>vHbaVWo!mjxY!RTUDJPn6%H(NP*$gb#pX)S- zFN{u7x|x$E#!<1kN+VRzvx=!2&Xzv)NmQ&6LZf-^Vc8@}b;pY!6ZQ};)Yq<4t(STq zZWiZ!e_7!8o72p!GnA=dh~OhX+r99+D73y4stLnc@4|&-B%^9@v55+*+r)`Rl%rUG ztXK<GAqXk2FM*VEr*cTEA4kD%y_N|u?4 z=RqWB0!)&HaEU$w3-rF>C;O(PEw1)jYhYc%2l<~#Z=CqNiMM{#JtFxa6wjB7E0RmI z4RTwyu)&-WaWx*&cq?2t;AQSPLF?ss20}@ZD4|1}|O)2RY&*paL(QUr1HoK@y>cL!$aBKp7^GA^C*OD|F@n>z^z$yL<%zP!+lou{gw69;Nc1PB z0y7y6I5XGD{#ci(3=z7fL4`LWu!5zF(=TjGlznG?1|{3(R#iWPbeAQO9*UK`YVInW zE^Sv=em1HHbqga15gIw$Rn5m9dhN{bJJLAsHd-DC$mcRDYIOAXwb9^m(2I%dXhvqA z)oUyl+{oaTtt46|hwi`5xp(A7iefF^<{WMX_#3D{+DOtX@@9thbP`VZ#NOdsFFFn@ z`qK=XKW~bzF-0t+md#C(RXV)M+>acBE(W})rHejm(opQTq>OyChXHzVS8 zC9C{zAB!yX_!c;ueDuj;`n7G*n=6H2=RK*`fqyqkl`2z)W9%E8A*Dx;zUzldghpLWLsz z9=;fC_l=~nb5W#?If`K_?qRPv`I=*cT>crT1cjx-EBw7bOw zq^13}GbP%&a!ntPg^Vt$+&)kj<7>wF6St41a*F^(fWo(kagU(DFS|$hgaU(d}L5#^)8LetQ9D_C^IvLYP{-Petn0KARG^)$?^(Ww+!% zkmm8pFLn&2%Idq<|0Ra)wR<=HlUF00Cqy1vR$JZTUCrU{(Q98ojo7AYhT>%?yY^%6Y@sba z;w;>TiM~u#-qH17eO=c)y6+ORHGeu6M=T}%>L+N33fVlq6O6JC1^fyY|q znJ}$&OG<(J+oWJTA?0~tu%m!*xf)+n^H&db?5Wn)AF9rqgAbiqAH$zA678;NMsjXC9_Z`ajwL@2+Zuntjqe{O*HDMIXM7GMroxtUaC5DI&Na&;mvh&|=Npoy2uSpCvQ2wSZpTiDpCL7yQ5P**a zq-Kf;TX1U=e=}BVvNLyB{Aay@?YEJRLh5}6vnxS!=lycE@rgGjoYPz}>eO~ex~G>&T;%i>hyf6UM5 z)Sq>h$BV?h!;|}}y58s;sZW)wQsFloQ(i*RjOiPXrLBw85VJml$rd2*_NclzV1jc~ z96|xbE|x1Ly+Vc0ZY3xBV}{;g5am~G3G~!s)Vw^SIM9FP3}-OW*$-Y??~gzdP-!_8 z>Ls=_g6G-w&Z)bXktDqkz1;6{t1Nw!blOcE-gd|LS3gL3qW{Xa4N#z{LNlyq84Sj< zkqpv;hWrArRMXJV2*ucx+2M{Nw6QQa4L$vFt+2;Ai*|z!`in4fdN<=YtEOM@cz2sw zu{idG1u#lb{T}Xa4|-m|ya#hJU7OxdT3sVu0%(^n-LZ!Dg%)w5!KQ*BRrQDrmYz~# zEOAM0uyiS;{hTU?w`v(z#o6O@o+h%TxuvOQ9bT;D_q$KficLl{uF(>H5$wjbpBxaa z8X;0%o%L$O5AH~#cpOJje{wL0>TDDwaUo<5sD`=AuHY))&dGAhq{}x=!y-_-#okP2 zd}Msy1al*(F_~kp|0P&>`WelAWL4a7LbV$Ud}?|-P4D*G7H1DmcsPKXCFHdDZUgMD1JghKicGiVM!ls_F-u@Q;s)7z~7@Br$zAE z_m*X}vi9q((9ARWS#!bUHJGmHN&}Kv`{2o!#1->Bo^Aq*=yS}Lk7JHc9B$c*%qC)T zkNOg8)mx5QcE!egao|A1En}arS*Pzm>gNusi7f>CFUBe&F z=EOb)@Iqn`A$~NT!3cl$XPg zvIbY+CVr<0{gpF>{Mv8REYDq8a6Iz#LXuE9*bS8j?2UKi^v~;i*M+V&TXw&>;u!N* z6-o`sz385^+%Q3{*i#=%bi^zilZDza%$nv>I*~WbNmZAde>eAKFNAft2GmE5v-_b5 ziZ6cF{?Z|z(Jqo@KSoXLd_Czd8ASBQLr=PEvt&^z35)QTq0)hU2U>{yTb@vJV|fqL zgIhJ{8mG?^JdId*2k*DVP^nUgI+tA3p$1kv)`k{l*4P6&Y06~A?w+UeD+V7i^MW8e zpOu2Xp`N&v9a&m{4tMoXP}4ghPU~MTAs>aVw8!G@k{lnbn12gK&K)$W+;ek3(-4$K;#AmBzIDgjivlzgz7qp$e9-9`P> zj209Mq$M6_Ko9;$MPI}a6FW!%rfHv`*?8pJw)}l0r|E|&Z_*kiQOR4rwx}p|!>t_Y z$;Z5}v^$5gqX>qtPVc-vtL})LHKNEw^ozlG(9zI^`n6Q85@t@nMoJ}qFtKaG3?;nQ z3;H|~n0|0?F*GFju7bqmQgXEV#QgSvnxrJSRskNEe0l!dlU$54S2@KrW-|nPT|(@K zy?ZB0U2L;d*=&>eUr|bA*LMPyznyFLt-#AR;$9f|SS@-*v}5V16@H-F9r#Db?^AvE z5st6Z%7b|IHDB##fu3yGBHX53PGA7>?VZ?3IBlbVV+S?1iF0Y#n*IIKAsP826=C-) zrTj_+8a}RGdEk6?UI=Q8_UQf?y2#{~er?FGU&@*U$nUu}%rF??7k3}yo*iY%$YcCDaNIeBlY4wt^Sti4PK8?wOH6J2 zR(roJ;3NzoHcF#l8c)H-lV!(9HFI1nW_`jQ^zir=Re4F1#8|UAIe!R0^3^pL8hWWQ z2Jryv?_~4G!5SDa3SoW>>1iSzV^%}QmBvbg_hzjJ9r7pANG8eo!MVcuUQ6m(6FZj( zL|OX-_KoQ8oO)|3Z=dC?^c*Z@88RGuFj!oE_I{ev6yMS)3YPJ5Rb;M&uFlopSOw$c z`TatAh0W+tWoqp(eEIJ)rhjq`=GxUr%=-t(E6|P)PW28QDgH69XA6oyX%KVUIo_N= zxeJRh_V+6FA90rKbfyf5r0lxysu{yi%~sGlv|uQ)5hGJJ*06|HX&_M2U>3n+2rbd} zE7di4OH!Q*hBa!Y4J)I7*W$#1KMXu;XiafKi3^i4cMPXu3l}Zv684OY|IXswo3ryd zitiJyN^5|iM6kr#7aFT`#o?|sd$jCr^`Q_SrV=jEu6SDcH1GtF>OXqudht6?60jMN zlTT7MH^8u^FRk|?!X1;z@nYHaNjp4g!Rn3R1Pedt2S3JY?`X0SFDCQmXq^73hOt65 zkmaj^Tpp01{1KMtK=`(*xI%QN`i>pr(XEgYSjqch*A<>q4%) z?Yd7_ZHf54aHr5)qFVw#Y1L|Et7J`%)wxtg%{bp2y_sE6Ay*77yx(HS#JJJ^K&MTz z{TVC#%4LdSeMu=nr1&C!?KaYZ--!RWOP$IEg8>(g+Wtd_;36hl2EFkyzVO9IRYBv; z@n&w!w}_s=9tP-t>PTC{C^Ngw>PgTpU2n~ZRrUCcyNDvs_aellBr58ztRWL|iDAt~ z4e}EG37dU7n=M&3USFhND7RUg_+T>159*XwitP^d>{Mvl4kFe z$;7F>U&K=Arz!V_8DEfUutn6j_uKs4qPUK{Bz<^7<)(ia{gT>L;N%b4zZ%4B>6%J5 z>UCfvq6y(88~*@UiKrW z#4pefh`+#3((!YgmV0NEzC!=9)Rgdh&ZN%aX&}cy^bQefam_!Kg3)XYBQa*N8e&k$ z>|ovpR8sXgOUO8DS=zOzPHt`Aty(YB2FxIt_Wd2=_OM%FE|a-%vdX5>(VaMJ0pl~A z2*jS*SwdO1U??X4eUiQQu$rp5@s6XjZ06Lou%JK1oL>|f-vNQo(LTHC3_awNu+g7b z=BpjC&kRcUd_A$BKU%0HG#-W_L4vu~vul=r^Fg9BvmibWbhH;VAV^rbCiBfaD=c49nO5s{@N$sh0=7Zj?dq1MHkAc2f>7ch3JXK2Y=HT(st zl-;`J*aKpiGU6x}p4$vB|GXm2zje*`F$&_2JLCIq`t}f(h;^2!dLK#wQ7&cuu%Gz+ z&%;_vh}3EY=}5Ml7Dz+la!+DoEqrwAhEJWH&wpq^xF<%07^~`O74JplGvrsi}|4qzHe026{60YO*2;c}w2%=0G;ayVsL7Lk4ry zazO!8ki4Ezyx%DQC)a6Z5EM3!0`ZdJp5i}Be)*#E#5&g|UaCN^3O5xO00y`dIhB2w zPNTz@A;6R|zhi!$W`Xe*Ac>t;paiG{rwgdKFR}vJ#v2W%aMG8F^aqnGYc8E@WAK=C*L@&^}((QNr#M<=?PdEJ%dBwRuE|x&%K}Z!dC?d0?nlG7H-yB4Cw5~G% zIm;fnapZq3% zb47M-V2ksel2k}a&|nLO1)*%+Ax6L$W(P_Ob^RuDKz_mg=;ef5())K>In6Zrx?_6REw|!C z3pN7}lNl)A^stfh9<8`bp$nuX9?X~d_GQ*Fy7I;xAhh5jOo0En=#3qdA_$%J=04?m zNdm>yD}-WPLzdzQoCG5Pc#|488vz(-Dy}op18Ubs->;$xq7*f2d*zK2a5$r-q8`pA zOH@5%N@Qyqu7?ra2wd>hArA`fCxyYk0a34wdJlMiGm=L}v9BQlHBHcy0xcbqj$`w1 z%^yy>Px5Qd6FMELsfT|EwER&050L7K1l^4mXwQp#J`T{JwDQ@y7`y5v{b;(I`SRdhZ|;MH*YisXU-P7wLXYU*&L<%OhUfP|1>&^~E`JUE=LSg7L{Xrs@Z7h3XIr?*(gc%41lO)6l7tO!1Li!6ZZPkh@4#vR7JjKIiC{dTc*$^RU$prG21R-UUa*N+=j zh|j&aZ(T9kUaNw|h7F^~Z85 z04rwK#iGqLWQeytN$yc@TgNOa5Mx2J1C$sW6JxzC@Smp{>zdQo_AS6d$iCqPj61kI z(6OtL6CN08^xXOw`Aw!HFbH52HLwYAPt(t!h|Y6}Q=x`>x6FUJY|s07D)Bb~Es0n` zCZa%mY{75Ap&Ku20pS2FIQ`rnL@dTHN@R5Yfz^YeZ2~gb7c$ZTZ_bgdfh*Hb7bssi zHD~`O{`L^;5e-}*qb}&*3(V;>azuCD0mw#HN5-698)|%Jd)>rk&HH_))`9ZbQz$+= zps^kUa3Z{>4zf^^flOGHhe?ON0cFR`4WC*`eN}W5N9^as5zA?INSH2}}o-3Oj+dZ9!gIwBavTYq|m%I-Tt>JZX( zbCZDnmr%%`b&bPhH6WL<8GKih`#b_uj)-}19W5x4>2;qMAito`P(=FAioaV^Pk^W7 zgNxJsdp3Esd6sTq)G3G9TBILHNUO87G_xf^u(Ji%arowO(pZ1l6GzoIs5xU{I@XlyCqg zbt;32`pG`gy730&0bH9`PC^!4xC6ziYW$K9n314hhpbsB4j|>hO1&&tTrPk?{H;0A zE;#E|_yTfx-cAbD0eO?%*t8=n0l0%LY&#r~@zN9=n+EyMP+$u+V+V*aW06lQ9SuE_5)UL254K8o5@r8w zC=cr;$f1N#{0kSh;wz}3oT*Uv%(JY5wW=maEL6Nx9`zSAAFjp-XF7fR8nmQ7kU9-N zuM0EJ{bn4deLiiO7>GO&L-C)7S?9QCde$re^_6$Hd*-Fa?6lan^Dz3%pv=;Zg_7u~ zY{D8;-3@>Y9#N40{EX4A2$bo)mFu009k&wHbuYp?*^%`d)(PJ+=}sZZ5}=u7lI%lQ zdM+@e+=doa1tGdSl928nGm3Gx?MsL2-IF`R90>v_J``3%(OH#Fq>#*c)(Y~k0tn@F z!F!+C-G+(X*fn_y}6r`EfsH~IfRi1L5Z{414?;0`~xdY zNFQaK(DCxvzl?%JB5|np&L;NLkcGDn7PN2`W&Yw=UqdXo3cYq5>b5e5%u2(i2)bX)jIJjj?Pj6Rl31;)d(mcpNRV5gNx5 z$W&jVs#-ep?#^7tRob;_L3;BT7nS!J0Q14?EEnJ^Pjxm)$cj9GvCa(p5i{Vg(5kAt z{2CLTL^gztnl}-@%tenwNiSJP@1Vpwr&|%^anR}6GSn~(%C6D^EE1IqMudmMa*VwHp4@#(kGLNqlecpmfK$ z6ard0rJLR#SXd;;okwhC9OWGtv+yQbR|Q2@3pDf$9oRCsJpiA@Z0D88giCX_KVE3U z(QE(61_rA3UY}j5ZM?~7A4^FSUGY{*=Uug?KUw~`$kf30n!$TWubed?tl;6A?H0}2 znjRbwTC$EjN)Z*LL$Rak8*GK;R)z%YvMKy$+6O4lM{*O_uX^txPXQ$6yqII2>tCL; z6@J-Xt#1(Ig5WzBN^5tz5ra&0j`t1a!#k@|vJTdlVy8Q5+MIclZKUD1TB^CT%-4JH z5Vu>ZowCi>Z%3+h;m<;LKu0uXcni||gH@1&;pzPxA`T4s>?LWdQ+C0Ae32Dm2^+{E@!#tO>9|uU*}AoMBurf1 z_<$z1CNKapAFG3}DA?8ElqCi>{iLtDgR@wF6#sWt7T(d1-^pwplw%opuTK^}sW@?b z1J0lOgr`^5Mp-OagA084&AO8N}LjYK$pU(n%Tq?BJnDmeI zG?E1u!0eecEug6IBXN7>KCVI`cK5~lyGZBqjALIPy{><~&gIF+2Zjv}PlEYBs*B|3{yXH3Mx3)f<4K*h^Zv|H0 z7_~Y!GaR_Ji#_%b8T6AAMkP0lgjSvt7tddaqLQDAW(8t3F&d6MAP%%pO3L#+!2fZ` z1}*pg6{Wl#M({a*SM0(h3Wu8MJxvJ2wQAqrFl>QI!<}YhKWcQ1+|OC#m}Ue)HS0p} zq!fL%R~VW?BA7S$DqNxX<04LZ;G8}N2=6fLiib@w^Z64Cc`E)#UGCv-bbbTG`SNTU zdF}C@}+xG7rVjmHJH2L+5qRsiofHKk$LK8=KMd2S8v@O|dDcESpNiipvb7(upX zY%aCI;4)IajL*6ro4*~0XQ3k@h#o(I)Wfg<=21(f+S+H}f5O-+U=Q7BQ>eSA#N9qb zKr61^7k$VbFJKf;p0boml2EJf1W4PPAN}1=k^hP!U3Xn2mM5uHZ?hOU{2HP|8+?Gl z|0i56{20>+WQ5L2oJU9;rYq9MeT|pS_bmjjNS|u`pO(3T@$e_41yp(k8diYlecM|^ z{Tf;-LtO30eA=6ZCqiZP)BAu*z*}k#0BP#?T-iX$vK!bmTJU}v=h*YD;NOYQw(R{e z{rd#`zp0!S7AJ#045{`ke~Xeb2Y5ib8((dR9DNF103;l%6<$D?5tEo}>S%&rFFeBO z2F&$*Z$E629;l&aihz=|D6)nZS`S018amM=Y+m2Mj^7;+v}BC}(a`VCywymJFc?4- zx^QMN;8txMj^6NPkOB8Mp92ekX)Sqz^om?n_${Umq&-%CDb6n;HbL zextC1Y

    MT3xU;$GAa>;q4Foque(CfF|JD$&k+f+z)Jn_Jyr*^&TX^?)bIgJdoENN#}W@5AJZKk`doo7A~=@ zkNHi)Be;py1}O#@q$4;JKoLCH1a!B>8^flMb6>kdA`A|$TkHSc(sU@2-XA=n%(an% z>nG5L&P7N+$eNf}nnU|w4U`U;FK#rnS6q-q?wK2KGfe=BKOSHUI(4JQ|HuoWy!oUh z%t1B5*H_H_mcJSFYkD)a5c_&90cU)Wgbr9{5B-4NqYdk)7^IMvdc5>O@Ys%M7gp6T z&g3sdODv`>0cr?I@HUtLTim;u=}3eBMAz>d$raq7*TU&nQ?_>d1MqeQtGp^phVBMf zFAi2XFfki$D3jzbg6A*<#J*R3sT?DEo;lz|0ZMd4S`9aVc>vFKHp`wk)c^FzXt*q# z;9-C&!8a}jfZZc+Dlb7LP}wI*M~h$eKcUM0`CcnZ7iH_44Fw&BOnrVq^WFQFtOF`5M64DT8S;Mz2A zsYI?R(sq^F?jbMb9!Mj6BXiGFXYQE;GyjVeRt+a)*GY1eNdPPeGUj^+sSXmI(#y7g zelEbTv$g?_C~No^uPl_wk?!h72W_XjG^6fq3lV5WL|F z3`-V`ti0;6JKvoUZEncLvO`^CDiKt-fb(du|; zi!KILKFd+jsh3pRkdBJCF+-Z;e6mmWC?fSNU|tK9BXY7$@P^^vOyy2?w6lftW~*gz1mAtj!#08f5Y$8o-~kxi&#!bMZZN&o+25A9r$wF{qvq71S%FdY zLMxEL|F;Ho)ZeiEZSU;5)58#LU#2xD&%_uvhqIWp0*53X6Qc) z+QTz3O(6SyFYctX-0f$j=Yu+o=QBY9G9DYc?HmOGZe&wAKV)pdJG!>E!hh@W_EzN@Mb>} zo{YT*`Bq154!Ze>lSAr!u>exe?szIZj_1R3aT-rUBQUG)L9%xnlW_9odSIpg41Hdf zV@t)r-BJx>f6LPzvbrhDg)?wu#wnW<&Uz)=@S3O9$d|Iy0*BjX}&yS zxW1d=7@xmh47J2TVJ&eWd=L_GQyMh5Z@nE|5_DU58A{!$YO<15|3rw=L}`h zaF|)Kx{=H@+k2rhe9**fI*A1qX+h|^jsv%jH@Sxaw9D^e={ zTmbG{UOl%>e5(hoPwCYIs{y!&tTBBkdAjrQ*Hp>Hb;{459-IFj7>_Y493aw4ka@lE zYD3<^Tw$p@d<|MFk_Q#*%mhIOx2oR_tLq39BBi2I*Fq*N9git2x)JK=87$>3>(@}- zXS9X>;jeKg8Mhi~sa*K+TGdEi?h|7khdqe-PyT_MXq}emnGLgG(G0O1yb=>&3)z)2 z#wkaR80X}QP5u>@Zafz;91Zfr-FA${n8bimQN3>NS@|kr=)gZfhf1H35j%4$FBB;G(iq9lkxz)vo+7%IbZ$Opi3-E zwzb;>O2o-3Vil=%?g7^jWGz3rc*+F~v@9m+44 zA=@KnA)H_T;Y+pmwGem|sCa`LM&{C&CGC62Vk}^_)J6~r%waA=97;oWRt?RcBIhl- z5X8;ZG1xV6V3?k=qMr*sU7Q{8_L!?w-d61}P{ws`2k6J?QqzOXJ7NMDTyQqpwQ9e8 z1v~wW;RRukIz7bN*6laJJ`FRsxKhiQAS;lvKdB_gNFjdO;`aMsF~*4`ICyJ~rVQgu zf>;|UX)GUJ?AM=7d=drL9h1p?QjJI5WKO4stLh4?&S23860;+?GQ{n>geR%P;c#*L zyDfC2_^RHr9b_Rf0zAa$Ix`8nRgJz?*FJ?xt7NT&mEL0n6r0K zh-&43Qk8LR0$HK_S?9wPMZXGKBNA+ z)-_(S8`z1F@55&x`)pa59tOsI>?wxDP{&AoPHpoy+nL%IbaClzgrOlDMi&GPO#f== zmy;MC(LdaZ&#;LExt=wK?Ze7Iz(cpjQ2AjqI)lhm_8o$BP9GO#4Td%vnw8z&X=|S z@@|14ul`^LZCZUQv_)=8+XO3raenh{B(%D+A!<>lv!U&(GnkeF-99oxzHQtwaMSjT zod@sap|K{>2g-ZQ&#?G8w4LdCt~wM4t5KaII17(LQT50p;-N0WkySJ>ucoYy;Lgk9e5s#dL(geDv`yJBGxSxoVc=a{;}&8&7)EyIZm=s#;QU zY?;S~-BlB3_;VLwujJ^n*;9h14YIzw5M z4g_FfZQ-61dnZsj>BvtfMod`lc$}4B-{MK}6#p`H=9OZCG|ge@?DOqDOB81lM?vkP zp?Z@nJIC@eG832a3bQ>a({PJm$=hS=JSZmv@%gV~KW*D*rkcc;aoaqH0+T4Z<$)O_ zny~PKcO1=Q9&YCJI?^h;yx}P=A~Xu7VI;qis{nIbBAkj=ypp&Y;aR>(so;|_mP0YW zL$b?gPMx?IPg>L#g>SEG?$W z!6XqQLj^C0oXT@(L?^||ZyEAc-7$Bp<%e(4i)pXhN?MZFK0C`T&*Zmj)T-8&Ip6+l zx;&yeiY2Cn(TXFx$bSDfT^CJ9-q!$*BdU!VTpJC2r&DDS7Lpfu%cEBOZGmCfF!&?- zs+J4~+xJd*hNb!^_YeR`@Xz!FjTHP+vRvHiK%{^eg(of&Yc z5)J`EuY2rYj0-o5eU_G~ED8EqCSc71utkWRieIeId(%U`>%4umVfBP)2?Q+>hP`TM zh^67NNUKP^u5A8#E2nt({P-FR7sk!VL^96(d>p~~PG2)7hLMx6s90aDh;uwX?L7=l zA1ej=0cIwGP<7b*a8ADk0n~L+5K?NS>GQYGQ#}p=!z)>qm3eum!-FPL1!t3q3?gp- ze2Q5sMU2mvxyYH+haU=dDpISn!P4IJ!=)9Y?ua8E9A@lm>b?pi5*|2^m}S1`sb*j)x^|+PfB0|Nw9cI#NKYIkJ=UldUS`)EW=UUH^{AE=BU1cG z_GwgcV8{=v34e+Ia4{;+W^FafEf=A??*4hXB+3wejGgD+O^{f3cg`okm+yV9TGqe* z^jOwo`;cDub2@i)_zT1p)DUIGkMm)qi*$4!3_wvz@MOJoc`{QQ-s^QKw z!llaZY>s5u9i=RY5_#9KsxwLwyHIDQ7VPHk^w4j(!?WVxHS_w}HJ-{Kwv>VJ32fU5 z>^7|;IRJ6sHk&plwoUYN>6`gDzl+b}{Wbs2JxY25`a7IxwG=ba(+VATZx5FmRYe7v^5E{OR}##B^l>Da$}FHCOl{j*udcPPU4ZI7XcezKj> ztzOSVU>;8GLlW-P(OhYJA3~TFgB~abx-90Wj(;Z`XAQld?t({*rB9Z1DzjYV1oVja zeX3TNB2C)Cp6N`Kq7Wm0##ma)*_B^@GYs(>FxR*O*H-3`S!4Og}AcDR_Z4?o6^2&EJbX9A*qz;nAtgP3Dvv6BA3L`q8{%1=C;f} zYdxBhTkzeEIYq>EsIJCa_B{_Q#;>WNLWc(Tu~T#zGez{D6EowyFkPJz#^?Fqyjqa* zSYGdOlY}=34$g#lxU3VIpx&q;fK*xx(vTAqA4xB&R3y{((n`sli5|zD*z+k%D~#bs zShjm{As*QgfL@b?LGN0e!KLC|`N9-uO@8h?BhIXM{9$OKm5y4f;NoG27Vq6u&6w0* zB++WKS@Dv-PyBEyV1PuHJuyc3gjN^QKJI7!cG4lEIk)m3#_zF)I3)`XH46SM%0wktGk#;2 zp+v!8sh%vu!fef18d-PQymuxV=ek$A@XbTeW#whJBkQ9 z1z8*EsKdNMbljbHl!c+vmWQsSA7K0$AivJsYkOKRJPD2EiLOevorylrst)@&srTE$ zlaGMQP=@=pzwBbX79`^wqpjS5iM{O?Di?U}yg@ZU^lO#I-|!a0N$3e|lZx^xpg|2!S6lTWRi)|GVhL|Y%;u2k)lhKtl z^XARaPQfqHyj{(zV)c}kz_x3iO7jS?fAs~Lo|QY%cOc6!KIvpXN44_Lpr(59`vlxj zako`#P}Ir|(E5M@Fcnk=40xsbJv1ebH4 z-?%<0q0e3l#BKNg*_?Q$_b$(&wXZ!1IL5u{OS0$^8U_^AQ&1YNBN{3P4ed;m*)#-r zFtFM%YDtd`ygp9N5Z#u4Sy+)Db;&`NmCQ!m@)v??LZ)5ilPqeYr8xY*pw`{`8C2H% z$AJ$?A2tsuYRuyJ`C5U?yJ~q$OHHUJu5s4pvG7Gw%%({vsUuZ(wMy4qz*DHi9y=RhmO;M95HA9Jclz09Wnuv3n_9r z%t#Mxz@Q@N`z9L&*ogWxddS{@sK~!l5M1~hbTj>+%3|}>F)J>}pp;Mj!;$Z^9Ozff zCAQW&%Ciq@v{cP?ER$zI8S9*eG(c=9xDG6~hnaFctyz5x-D#-FB1sj&<*_yC*aZNX z=5MB8tCk*1OAk^=UunwX=8;kVYbC z4emYXihKY77t=08yygHNoTNlAlJx*`^lSw>TQ`$g5-nZhBw*0RV=_y;1-_HbxEU4j zu%M_uVX=9S2^Hu_L04y}+0;*`eVV{ZuS5`#30wCrWutV)gOZzyK^mHKN~(U9S$i{d zI50>_IepuyGbQV%VD?+>Pv26DDWC_9st3@0)+ms@JhQrb{?X{m@0ZL^A?qST@N!pz zuksfdFqnNbAU0_RLVGv9@Ks~6$O-+bneytAT+L#)=g%ZEXRr^gBXd~b`&(wa{1_j7JSyOdg%r{@UHgs=5XKX#uiZC08 z*b(AG(8$l?l6S!=;$q78{W?yHJjXZH;^_r-u1fG0`lxo?)rE9QzuU{-5Q!=L2Ju15u5}! zWMcOm`gIzo`Xzyz_bx690u=RMjtRaZ2(ppFV{fl;xf`G8h8ON+@A;puX-4>#;u;c>ud(g)niM?*MYx$D#wF>1m_YXGh zhdSfI$;<>RybEpve63Jl>@&Cm;V447{?DL#rVp8BUO_eOL3QTZL}m{_82%nuEwJfJ zStEP!=1GOIhRT~WQVt!fmARU$%GN7Cp8NkauowGeo;P|>s23IPaqwkO3MaN^BW-y* zYw($DV=AWa%v#NEhXpQiExBiO(vw_#nzi}nu;7qmd^baAwue8c+zANZ7e39ZhNlW> z-s8c%F9z%t3usx8L!2Ur2Terfoj!w2VsA!3Khic@f}@gZ-DIA0=2r%<7xiculZ`n4>}#27NxVsTtn=UlGBdO`2jt`y!Orc zlkUT^;+46k4r;mAz>q`C&{1rPbXEc@7&T|iVJU?|xOYo*dQC1Fzjhx+P1`%5#0R~T zbE-ioc8|+YHJ$${f0e-YYJh9G(}=`?Yc6eN>b%av^K%LBnpwZ$1|8bZt?o|O`Ia=O zJF`2extHHA{f7^Zt{qyw9=kg^e9d>i5*R$`zG}X=;CXcIEQfNszJ8jy)g$!O5%tfl z<v~NRS?C`$_eMZ%X5pM#N1(t<9)iiVAH|9_YZ4yd z=V%e4LEBvNy?Ih6#7@i?RSz-!0E8HD;d0nH0=EIU@rj5Phg{MHV%#WteY%94{Lz;| zB@Y)Cv!~o#XSb19b={&rMbFJl9im2_5?0<4!wAX(`FtrkJJpU(Iu}C(ace_$IJax~ z#kifQ@f~~X8hrQP3?H}{(=v#aLIxD8^$pQ3EQ>vL&{W;zW>T-`@}?c@{BZ6q(ckG2 z0t5}Fn2f`swA<&U_1-ISj=92mi4>F2=OwPKm(p%4%k|>238^b<&ItuaulRB)jytcW z16SW%C}yh(Xc`pUNs(SAzTgSa zifnzR8^%P1@3<36e1+*b)lRodh}9iQ99xJTyVFiPwZzhLoD0>l$XDgL_j-ry&4Ljp zzwA-jr2g^dajvBpvJZOrx$axu6wgliT}-OS`kam~EuOZR(uz#+W$pPEx(^FkNKN6+ z4xQv)+qNWvH)p~9{90}*WhZB^vC@5a@4Db9Zm7KTOzip%Ee)zWz;qe~81PtfE`2NP z0hVbWnBam+@U@!5te?r?J!@Zglh8A{nrnWGH-Enp(hOd6&f3t|S%{#zH*<6L@KEWN z_ZBG5uisyubo&ht?cse&X=?EAx&w%*^BMrGpf^Nb$hrj8*98bbQ~#v>`7$t+f_2Cp z0WU9_a?{q9P%tz|-er4iX_1U@v1AZ5lV4cwjtvGevZd7~vn(LEReE30iVv=%`sz?j zu^@`rUP0iEtY%iDQpep;!G6*QANn7VF#A5OGE-2J<^VLIBQIFlF26!Hf`<0zgQQux z&)(TwAYD6ht!B|4bC3Fs3(%TD5E(yMeNQ4A-1K>~1A$`M3D zNX9!0IciZh;8;Z*n%f4PIloigwbOO3bR<^vK{pTJ_BhL#YXSJA9CzghqG)s#9cV2S zJ!fJ%kaSdrt$zak5(4x~GTFKEbX%tCU`$Qz;Ri$h5l0c~y!9i%!PakPW9-ehQ=<~l zWuSTU;$ag=ZDz8ga7`ySnPm#!CnW6=ES7^wF zDVPrm>Bvq3{$(1W9yXW)FX>MvKgkopv2S&Fg4WPX=LU_*EOYoimjC~b9T=mr@T?`k zmtgAxnBzLywxLyS$Ebntz75QFWy1f$rT|aV)Xo*>tSfGc=vsx+ga`Pw$$Q}R;4G>@ z+p-4Cv$;!O=oDej`{e(3ZD0)&zXpLRZt40q`Qb12!703g%!2+*Nh-pUr%!SJJ6$2D ze^dp{aCi6Ew8OwYa}Y}1M1kgLGCQCWu)!P%BM!WXI3U19;U#C?b)5Or2`u#RrG56z zem!$)So;dB2Y3I@l=y(xW^mMy;mOsPDUFAL(H3%)?FCrhIAVc)$e7@^Xm!QLEFXDg#z&_CZJ z`4>Yr0H7XiF3_GiX_-_@(;q#9Vy^Fko)qB{Z|I?NR`IX^w7P${6%1%Xl{^eaj#IEC zx?To%3v4E4n_ZR^CB+7oHs6V5%T#CU28kc?+?+e}?dOWnzG#?VbL;zu&sKnFpqme0 z-IU%3s(}_HnbWy+Wj{Ov>>>+J*3!FpLbN2_b$sW8je_xZPdk%;9+UeY*rQCE`p$#i z-~7#*3_Qq=LCX&Mo{{*sGKz?4RbXhrhz@$rX8@D_<=rD^LGvrcFOF^~nVeTV$F318guK!-)eLwnqQ`3|yY zeVw4S5KeReP!*!;KFES}bvW-FhB*r8Holw9?XflFJO@i;?j8e?q9c1{$n{Z4E09gTC^!z(wdz7>`AG0Q`uN9F z5UFXey|qWQi2&!CBWZ;&*mJzb5Ga0H>~sSTEdKr$L;Ds+O;11O0d+n~H_w z6gi9}mI9Rx^o7=)1No_kOg4v9-ch1a6uq3B1>(V{?!}5BO=I$6G#_Ua=M$kfpScrw zv>QR8>cJuhC(!&O&WF4u4H%oj0l~al-I`z>JT_&n+3MiqK8^zE&^t_(shl6ju<+0O zuHGk=b~FQ|XJC74d1w&m>2R(}jz$4caA=N#R)pj#+D`U{8-`u7*F6S<3I3`OIrH&iFo_!F@@@}}^F?Zr_=4ZoCyKM#7T#Yf|9naMJV{Ev zrwVpSV2)0n`55Nhvlo>Da6@S(kRnZ(G{r~CCyBoN{{I?#?|7=;|9{*n$I3aVi0lz% zD|?-ek!*@oLNbyO(GkixW=2NYWJMtjs~5@2%2t_?5lJ#Llkem5dVfE+_xJm|-G0Ac z|GDLy^E^+_>$)C~`+7KVW_cC7ex+D6AyJ~(6oB<@a9*B@{Ft2#*&ZFfO{5JGV0qCY$Ys8NsaCjQHzO{N;s ztVfr!tnkNqI(XiBr9gK$q23g_F!t`A>YW_4QhGG*ANr(aKA4!N$3IyIENnS*r<79) zXGS*^DJO;eT)|^0exct7a2HEWtQ1w1i53rsIZ|ZxVRSzW^s=|O7}Fvf%KohThd;HR zb)q&X`K>%l*2K&%mZp^Fh0Q1GFY)$`_BkdeF+G78bUTCmrp@t?1b^79cEb%rzv7n^ z-|V=emK-JlRdOdd)A2Cvp%=;kzVz-l_znUfh0I&;kT`}%_ZPn|&Yv{t_>|;-jn!a< zjUx7x?zG3;9gKw1Q>Z>H=RO=ryTszc7x4vS!aW~5#zJ_>ZhifB_M6t<^!sJAKl;mQ zOx*)IkdgUv`8`hQ`ckk~rE=c;v&5MFQas`@xET9YO=VAA&#Y$N?tazbTT&Z`+-K`m5tQ>D=Y+Dd4*UE=7eSS#%&uOa=n9iGeV5;OrXyFLEv5@3 zRiX^GjKRb3vx^s~-sl4~jcok0;Z96jRu{XJg$P$l4aA7E1mg1c7s?4-`Mhv?ed72spr9o3`0D;@8sUxljQX;(PE z=La3#0v2ziX^g1VYMp1XyRkGmIR9|>Pt$!=E|&l%~* zVM^V9GyK*DE9O@ghk89^y8l`8iw5L_J$^^p-F%5Pb$zP$^YhEwD{8}$Y}T}^*sHh5 zo(;P#DTtnClHBAvZ*-k|jQQqV0vAQ)ug&ELj7(ywxF?kR>AyRT7Jfg2vDShU$%c9> zXL5Yf_1U-dM;E}Ibj~M?%>|&D%r^^@=g=U`GjkraQOq5AFaDoXfAz}TO77&@B&IFK{A2qv>?$8rj(IE8#!%EBaKMczHbh=wP zOkP?oLna4X4}Oz&7jGC8V~!DiCyxSKzq-EB4l`C`zA!e)(B$*e?n@HO6G7{NaJ9|+ zzbtRw&4*B2aZ`FDa)${o2NGKNuy2a{<75v=dvz;{pl$3mp1uUBbPZkxW_0MRr1H z={mRl!5GI6k3{Vad%DVnQ>LYR54Tq3u3dxm8O4?@qolQYWie^F>hxjW{4PELoq$Vb zbK6!CeOL99dTlc~bAZ>Hr@paRO03@9`oQIJTkIV zX>jVn*IjuhAx35(U>egi>L2oE{6#8Z%8EHE7~2{I2yEkiuevEJVQ*BI+l=--Y8_1p zhkVst$1A%tt8(utKa7F@@lLeLk4UxILcu1-OyPZR8_a)4y1n1lzN3R1S$j?<$MMB< zlHEo#X=3^t0eTY8T`G%1w>Q8;wb1lh=h{)f3d2cEBdE!OkZI6u%khnO?@h|#6K2mx zn%r)jMP*kw-KfRZ?YM>?XOlwM`|J;<9~3sCEva5^v+_Aip;TY@ajY>?qHOIScS`xA z$ZU%(-l5?k=BDF=j>LehQnoE;F(w>NL{N+sRf@%JYozgV@ST(rc*@8T z@5z~Cvaj$Hy3ozsbdzH?eWLWtnggo6+c-Q1RA6{>^&sq;z1w30mCY&KR*a@a5}u#% z^y%M|2)czSEK*+?TBVEA&ZaSfBQ<(-nT zRH`S16b=|e;S<1i$$xqy(q<6CSA+FM<=8Oc5qBe69SgsiE^5T@0^S;>7k*T7{j@wJ z>qke9w{4Vh`~<7@Gvx0D8lTtZ6gr6p0{#-ard{u`(GWL~Ib#<~@;!!wxjHQ)gP zl?z#owxEaWpH{Xs6yzP)N6Rvh2%=>=vop=yT9GxgXSJ5F`W58v4kp*nw$sQondMp3 zz$c$|DE4=k&FtBAf|7e4f{tan`nO7n1s7gVzk)ef&*c{OP>KkNxciO~+t68$a79hR z4jzQxM5NW1YX|er16CX#-rC{y3u=Z2de*N_$IL1k(W2(oXpyx2qv#SWboRdXOl{s8!DUARw_b0D$6rv zsH}I8oR=cYH{(XP_Tj{;wq>54Gp{CEw5y^Ts$& z=SsZTnVvgx+u2R&5?>%~^{%^tment;UBcR_J|wGBHLoGFn<`lVlowKg)Y*TF&ObiN$2jNS=uCVh70q!MMkAmQw=zpA5Ow%WAdOSw~GL6@-UMV*= z(t0<50GV17Lqs@yhUwp%$T+qPNAX_|o#-o=ajugChw+%(#5F2#)&4#=B|$8^r^vs1 zzSzRk^Tk|G+%o{hr6b)MbIul0{X=V5``+!+iBP&ffRKx~*%w`X*6;9C&4OYj=tA^M z7p^kNw|(yYv#&!pD%>;==;-P3puvaoc8nDUpTYf*>`N9`t@D~GRYeh@B`F7 z6_8%U`_0}EZcy-YFt+|^28{`Uqc|1oZaHZ64PiC+UtSNo9OHGKpMLV>N$-*=OKxpP z*J~tUPUbuJc#bXIkcts02L*GbSfD!y%uAAb4vm}$efu+Xy4=Ls41k(5XcWvHtr?Bb#Vtm=STo|io-sMXYHbJ)^$4Xiim`S~K zbKBSbgEw)CJfZwVY=zVo%1f?5O+X)1SwB+8x)38|=j$9j{Iuma*s|ZS1*I0md2fJy zY8_{ss_p$stEPQ3Z~xclRll})ESd#L+H8_W0uiAPfYCChPz_<>O12R)QM-0H_$&V( z)|&xl_zjmt>B-&+XTge3tzyes>C@7@l%f@j=cPZ33R566^d#x;VTg3^{$fPO6Id73 zoN&o?#ZYITsv{m6XQz(cpWyobVVKM6QuW=YzCrjjLx|6CKrK(eB7blJBo)LjK%?#| zrv+N#V^V9R&InI!}v$hP}t{7HY5FO=jr3Lwqv<%q=Ed3T~phwm0-M#{=R z{o^Jb#UcOd_)~h*ZyqOz#z9{)u=T1gBw@axLFGH>AX6J+wtT0J=>y{EALGi3*++mR zt2DU6V5$$-hhm~Qi0(7TH@AR*g%a?=j;WdXq{nV>NG+!qosaqoe7= zK6Vu;S?lhBd0rVapYHPU(i{As$RHn`+|2!E0y)QbOYg{0iiT=EOg;E%1Hr$o3RD9y zJMxNJCG;TPkzXv!&tPt#J-y}R$ra&I@DXtwe8kL0+PIP{(<}o^n7R=4bUY!4Kjj{c zja!*cbzLL)FKw&E3RwT#Lp$g8UuS6ERnB~Q;+-&>qta$Rn9Cij7*nwZ88>W;*OyZ@ zjlRLUOuFy)>Oh8WZ$Jjj=Uaz#0jZQ*lnQ~1$*JePNK4+Lh*I9Z8J};^jCG<@{Ml3$ z5#?n>n?|XS3dNuBN$AEz|VKOfR`Vmv1#4sWaPSnxrj;pS_v_ZZcJDCgvh(7Bx34T|Be0dkPK= zW>zluH;4+j9Ce9`hE8(zqhW)v+LT%r64;Ef>a7Y>*^nLKd+1H_pU)4T*dCn?&S)dJ z@26+&P8`GDtw>rZf0!;@nLF1)qG28yzJGG_?W>xZ^(f9BmcT6qvoL3ZsC*$4RBS>_ zPk8+8<9r40ngi+Evl-Tad^ePLKSIdKXv8CZ(nH-q6`o^+NeJGMp(>%YJlmLmk^!Df zWJ${>9vJ9<4He`m`GTpkiEn#AlaLQC8?d0~09}reE8kgVT|zOnmH#7+}8 zqBaauMi#BU@+4|gGu8+OQ%goPV|zk{9(jkUg&ZIdd3C>(hD?qpkDVY$J5QVMU($Up zD6A}P*Y40-Jyhm&uai=Ww+!asq((VoY^X#xfBXqa+H|=%$dijh+L0UTl^NF-54;ww zF8Cbk8BL9gG?VR?Z)gJkRkmUHEct~OGnX*qqVV1E8*NX&d_o{bc&h?q47KV%BMyI@ z`{vzAMHJuCod;fIRsU9&rFLQc`x%EPWFi3Ryi(eq4%b?k4YK_8Ek7f3K&vl)mPKR9 z%8?+d&5?e z(dcnDg5pD5IYEJGa~osNnVsxf{m);CeFa4@@0#!jS`HEx*A&(KF-+??MsBDl`52}? z*32h~T~|dA|7h)uup@(g#EA=|3S77|HHCiOk6ycc7&xqZT#@P|^Gs+dIh9DT5z!Ji zPTGv()~Hr=?xPj`L-gdc3C6w*g&G7;V3n;;kl`?)YF#G&ZFyQc?Rf;qSMYp6jpZ7L4laSPZ`OGd`3Ae*oE72ke`t#0zKSALl(5ezHt`T0Op;-}NbW zDIC3NBNMgDEj?Ow??{I`1iuo^96;=S*Hf_H)!QiTZETQpv zZeQ>LwyV&DL#l%?XUMXZIbW@}GzKp>fy+A&`3Ip9iT#nC%}NpK!U?>^0Tg0B*U5$HeVe*JoM8X? z21>O3uv9QO>v{p*01Bah{DIW4?Ue3Pl78rI+P%Bjz<3*sZuv9|U&=%H#1G!o<~*K# zXhC2iy3O}<&ig(jtKf5^d0AB^Zg^a=m%+j8{TeV6e~<2%wJHiYlXsmET|U62;w!{y z+!sYwBD^pw<)7pS7}A(z4jzU@mGLX<;sz1FcjNFs{sm<-ofLd)JsRA3{m=kgLXZ!Z zmzH!kDUL6qIYDQqDT=*IV>QKvom6$9$=OLxWF8kq+Q4~ZOd9##JPA8ZC7!P3Fh}5d zm}*%BPh#w8of3P3ByWnfw)~-=xn{zfFV=364K4BT;@*}1$dRB;EttqpKbT?MXYeU{ z_J&ocGZeizMgD4uZ=q2*lM()oW{SvHc%nX!AHZr?&Mo>|EeoXh29TZP{dm~LqG4S5 zB%eInqQwNywO5__He*Lrg!=pXy}p#bqO8sZopaotG(@B3A;k|e%X_*f{${apx$GLerlB2#rs5)hnze@Umbk6-n6linOyooe>CQQhz zZS*b`;}lGxdG^5ReF49WrQl%3C6T_+m?vGxSwtwC0oSVZ%B1eG2pjUg%At9c)=#_! z5lg?${1wsy{=(z}YhlV~q0gx-mMpXfSveo1N#q-<$XkuDvbsMQ^<|M+%;>os`0~TN zBrOl5PcFO^Gu}*p--+YXyyXOTyU<7pjXA-P3s2PAoVI^1R)xNuDp=@fW zkm?!F7NH^StYuR0}R>OL;tPUR~x~#X_b5Qa=G?mbl42Dw0jkN5ky#U^=Fk1KaugBerTvT?iu$B##$vDS`a+5 zL0r~J6no1iE~5G!a{<3enp%3od#RWq8+YB*q4)7%DS^k zVbcSmjWDn~`K~(7=>lT2VD9S;|HE-3{A=nF>fnO6W5#P?Q^)^~{EBxTQ0BW)0xhu# z>jyT;FtdmAytV1&T49-HOn>~+-&y^ny%hdQxK|Wb=GMa&?BjHPaVD3r_34VtfKj zu2{K6Fnz_tTaoFF+yQE@PXy=sKxD)(?OR`_(5 zFSL4Ex|lwwiY`Ak;5@g1k$l#f+(qodG$Yq{0g@bA@FjbG_q2dinfENqhQ~CPu*yH- z!07KO^{1%5U+TnL5y#7WCxmwbWo5;cpCx@r)^cDM=jF6myRUVyuIaDd^?+f&t)Sny z7-(O7`=-3NE@p80<&sJKl}V>P7RH;HP<^RyUv1Q7ml$|J?}7*tn%+hd0A0Gm{t!#n zqcrDR{iHNr%G#F_KM&M=iQaY&3ay%lSb<#pNBz`O#bsr?qp0>a86gY{Xr9XsJQ~BZ zqwDkg$L}K_xO-c!rwqdMtJBUiK7)J3nS821Z(g zI(BRO;{K&0qCSAiSt491OoI7XT8Tsr7B2^tBovXgSLC>2u9wc^@L@zXbj`f}@7!wY zHvl|}+^Yo1>NkO{+sUwgP`pAjnRw!Yd!ZRfJP0TLeLY22!Q~{8NO2Oj27wu2m>!U5 z?Lp{P>G|k$Ho%Vv?@Chs_hUC8OC9fncmm&TXm($v$=&1~M!Ly4&_8&6 z0FhE(>MRg}?~*++D}Rv?G0FMQ&iYvYm2a+dUedNLZqfZv%>9W4#moxO)m61hf9={} z^PdGxA6HkLz=x;6-=$ZA9QdA{B~p73*6A^dBoIxj!(RnPwDK6&qJtj5!M6iwC*zWH zu6 zI}NYxKVM?$cMf*Vnwnq#%>7;J)rU)Jg=xK5GZ>lV`U|O6f*{eWe;5pu)+O^xw2eO? z--FBQ2k^Y_hC%L}2;J*OAN0xM&n{Q3%}iC?an8Zw!x~|$;Mt}Aga)kW4#-9 zL-5a0_=fF2@aFeiVXoUx#BlJfE|fXL5@BMbF^RopSSjPs{dm;miLPVLA(db1dt=JG zq;S*s;I7@lt*sAi72Y3OvF2l=$_W0*8(|=zA(zysy==n3I z$$dXZoh~xr@PEQkj7tR?j{H&$tbgd(ozk<(ROqF-L9YW_S(GABAMa8 z+HgL2a#i5TrRf0i{n_KbTt{2R-#h7aKJ72(=bh3(lQV;w0S3-OgenBbZ5%9dcBczc zL{kn2ArD{~Gv8cYE@V2fX@SAbq0h4$tMS`cUCxs{@Y>#hM|^D?%CFJ3?n3$q!%~Ny zg|{zw%mZI;g3QB@HAZF*yU(ihxx*maf$|%J#t~+khgXIk8HTSr@eoj_$#f)SYIP{Y zb^?vF?!3RF5BekJ{uG|`ZwKz_xH(A&sT!Jx*#CNT(PeWUp{9j|aHipGTRU^Lq-nrN z$S6+{ozEWQuP=k;*`s$6gX>43GE-<#F0RAE+m+?{j4`xg*Ic1PJ$;7piCX65I5 zz5`$mPS|svqI!*dUPs4J@(>zDca8Pqli?6S}KvVOxfU$=d0oWKj%12fjd z%L|*+TBcUik>AxP{c1ZrS2c7>VE0o-?Mr2_p@{c=nJul_uXSz7(lbU>K$CbrLK(s> zNKbYLd0`|z-hd3M`0JSBC;cH4OfUgKvu2g(G(s45hA08 zD|j?SE>^mYr?(eEfb$WhFk&Cd@rfK!lV%Z3r&{byp6BJq8EQpyv|cVS%u zq2(-*zQesJ#(x_`N4;N_J*t$2QYi!GF=c4&Da(GCR9=;Rm5dvyd8{=L#N=E9s`P6TAqoBJwohU zH%65}m2rHUJwU6{6VmA}Bjsyiw=|E#YZoLYUx`ShkG=XCYMBMHIhFPnt0~;F&UZAr zQuJpzcO_PVsP4Vs<>Qt5Ma`P6dBW?c=Cpg2vyhx>SsIzK4Cm!AkOt>W7E6^@QG(2;;meQFZj80$n5~8cO zr_WJJ+|M#Bz7k3Rei<~Q{@q*Hr)q=Po;vRx_wH;o)T)p+ew+r!ZXJPS>2i6^9?5Cih;P;4N1!L0QYs20>ad>*f}0PI z-%Wbg=bQ9dVTa>ODdrT?Zuj!HQw9vrv4%NZq2r08fs?3vExE%glg{3 zEnj4^i0&+#?bpvfo|hl|xxYMMQ7GY;-KOFF%tbL|b7RZ$bw4Y=um^GyMg{j7ooK$f z@tV@QP5zZ?=^~jm>2g7TJ4Pda(~hg|QnMPBk0=TI3mqs7?`fyDFXugmgG6DZ0JID_p0$8;12@}>R{ ziXBo}z}ZA{l!HD{0d&BBf$2(&!M?)DxKzy8zGgQMoybP|%G$nhf8QSt_L|X>(f@KU`PqVJVNLY}>XfVcV|g)beMFs3;$m`cUrBVmL57fNRzh_o-I`U z(X^dUK|aQGuFjI2MvfUa^|np!5rgj;*Df?gZrC37d&1q;&e(kNwa?>uMp~B= zzER8VP0a8Ae5p7J0{PB?Sr6@aS0w?kSYp2V*--JhY-PF7)oHSGiTuJThb5|Q-Y3p~ zzxIZ>G;t@4no}i76;xSG21XYOzWP*eBkymEqW$ zG6=K}Y~K?i@{DT(-c(-as{HkWvdU)USq6@rNka zuDg&&7QGW48C7BjHNqC~y_BE!o_N}Uk=PXVrNfxRGu5vmUDx9`c;_{}DusbRc( zxY{RI{bR|MdpHfz0Q{UwU4sT4Z+%W==&!;`(4Z6Cq0NlrOmS6(VcsUm4wZVbl<(P5 zv|KfE!N!Sl!5^VWs1-*zCdGND(x+}eptw+*zJaE(zFrSpkFhwHB%*=QzR9~LpA2}Y zi*J4p{$7?o9ypoj5G3-Q_Mk|Stlt&Bmn8`-vVi<(i}CAf;8&1p7Qav8wD7;Wzbci@ zXwwx7cG8}l!BUm*108(Q*BO|L3y>d}z21i^>$F^kjli?`o9&Te#iU1y@y+~RJ}6&`E1 z93ceVnlp@r=7=N?ukFRdS%TBTPV`(gZ$xAmXJo&$5f4{Fwz!3Zq-3@2;{*Gk^Eh5> zKJz~x7+l%5r;o^4O2T;;=!%;>X|GsSxK^K&5;yUb2>LUNtCHXSld+EkJ8DHEALr~n zfx-ysqF(#;<>G^Iqb#C9Qsz>PV_{>VXLfgslg}5t{_)K$;;9Z2x4=)%=zx9C&KLh< zkqs?BK?hEy`hBLE3xluou^@zuh;^vD)qM2!A6t>}&EaZrUM!s${cKo8zCl^%_-yAX zNr)@Kg>3ra0diE8>22Y2Z}_7+Bz$TO^qTyqU<6H8cvBd@G=O(EPPqG3mz}`|2BUWLDY5H#@WnrRzg4#XK*Qns?V$SgM=M97zM_X4Ww zTd;0w8~tn4=7#^gyVsTN)pUMmOO^}JIhuQ-)T!Sk8+m(3VOQYQ_0pa{KH8&}B|p`$ zN}CO#1!`JBV93r`9Xho1ZgXwe^}{MCpSem{DtoLau9&@nf~{tG=#(rPlB@|?{)s)O z*T+M-{(f}w!Sjs5&eQ`i48PKpQ*X>`$itaLlxv%l4^tHKq}!YKA}DBa=uv{&^?iO$ zo6#(y7OOrb^EZPorka&lUM|y&I`YBs-WtFl?{0qa?B9XHA*r(+EVs_zpfy=fbr?!# zYKOTu?%z&<8TjAc>MqA-O$edUKC!essoim}SAR@)L6YjM&1M$2mkA_ci~9 zDeHq^t97|~RXT|0fkgloMQzGU*AF0r%o#`kIe@~Yhv6QiXm$Na2$0B|(>M_maVU)N z1}0QdLiuEhs4{&}mmJnjk(rfu*^iKnxiY<_{a+|q+scqn&N1{`nR1rekGlWr6&vzv z&?d2m*wAySR4a0N^{Qbt;2x%aK_&)GQXif^pa;&L@i!hbD)sB(*EW3+#JZS-YW$A0&>jO;N;thL4v- z+6yb_2q*N?r0w(%6ecuj|m- z9og=X9UD1YRe?0iu6kT<9!JwL-~Q*+uuL8C#mq~8oJNkGpMdzxz1R7WXCCZZ33J)> zU3#+Lw-eVM99gu9tuTi?TLw%LH0Mjj$TFny6=){=RsdHbP)u)0B1n=xATn~&anI>f zBi(<=qvIZo#YmveS_Z_e|60NeG_&9(QgIn@-o^exO=CoUhM(m3TI5>fp2l5J!oE}` zb??DHY_h|XZ=phIZeCBTSKa;t!3Z_S{9MtDh|&Hx*5((e9+z}^bIU{O-hnHbeA*zH zkvq^6>2MXb&g=YRT>Eni%t}UWhBD6q0CjMNti)%u+MBTxvKDc>iI^G`QjmS{h!^tZ zw}U#U>XkA*(4|z!%z;$e?l? zuQ`P0XNMic(OO0*LL})s+dtPoJ^R73$Zb5!_@m6vvSCv_lF5a@@!q6hm;rNe>-mHR z8l8~%{5h%nYfIyX)%xISVMXT zL)1`W7)c!{y|ezR!=tNyR2&)-xf+#w#i)A1P5Q9Yy%N5nq3hTxKR*|$3i0oO>RR;G zBs8=n|WecbTA!-D26bDOuljh{c=AfK)KTYnqh#)zc8LB1r z_LGy+&!z9h7v5jgV1c-YZI@B@i`Y_n;{Zd{gjtey>*fKH8HBTaVt3n>nDT;~S(e_# zo#nV;Lhaa-H-5Yg9hvweEqvcqWSgZ2r|paxQr0R zvh4BQcI+(POaI+s)?gS`+PG<}nVzM~d)U!c>0!i32P_Q>MFYz1D+Wa)$wCHB=kipx zucZ}$IpiO!a_7*MhM-YE;1s_Koa77SX(Vcx$Llwojwy49Uf`ZdG#lm9^%i(o7iKKc z!_Z4(?B1cBDDh!&SO3^i#!_fKG1se8aKj_0eee(^X`ezndxKv3c}-&T$nyq<{jMy` z3$2V-Pk6h;jc6wkxw@j3akNCWB`e9BeS$Jl3r5 zYt4h7;-;!+j>OM}H9u%|6EB_Ho~w6!8>jReV#r1=b(X^a~nMqFR{z)QgW3$+fS4f zCcAfrsjzDB6SL5qr(>)E*K660QAMo#d2@t_Qzu?6VqR%Id%8PhK|7FIGN_y9c9+8V zIT6Ulu5pWYG6`)p zp32#tW4_2{S&%d>xYK=_(eF^_JT;#h4c+?B!4*9r@*i{rE)D7Fw>ULoEtae1^Q40D zrk>nq1+Jw!Uz6{FSiT!os6#Flk^V3)%tyLG6*Y`ndb)^sPRP1^=-ZDeOvU)K<3;aE zVRf`xj7A7|FeMlhzB}_1DNY^hY>Yzvhsm9atEr=@hg--%SYn{K*pjcBNC% zfZf%kfMDUTpl(E$p$tk-WQOp}^N=7)y(1W{Hv#f-R`n;KTe9kK%^pFMrg~UCO zD_yO7xt6q;!yWeGW!3BDD|q3%^(Jj6d9KyB=N!YhDzB}KPTe(@gMuutWHWU^4T&75 zc%nkjL?0!eyQMD|YIpZVe|v^V-P%CNZ}rX^#)|%)aKr!IcquHJGg;c=e`0^+NoBJ0 zkIR?L-`8lFg~fD1&*I?tQk`N-+&qy-&Ci;2SUzZKbLmB(S$f7JQ{VWKHlOHpnSDQ{ z-dkx(D1>uZ>X|1|NGY|EoaGNG&5$ahggCN74tLD2rQPsi3ZL?dv%}w=L0sa49gmuY z&v-7yEEd(J9U?+N9@}K>3U~6ITO+;Dd#Ez3)qXQ$Q{PPmv(EgF{e?%8d@6$)nZjXG zD-Ab0esVf&2L%q#g;n(5Rlx)Pws(3w9Rw#X`Os$xqvXBJgkUUDtLR~ED^-?ONEIPc z>b$)7>$)PYvlJf>qbB)`{)zHs|9ao*y8r5rjrj^r2r)EHedD!j$(dp;8n#uz_ptPH zb2y4O{-;9@)nT)jMBf4fU}t7B07fxJGOz? zF(u$G{~TKuXA2O_+mQ{vx2W5fZyc--y&fLD@jm2GQX3Z9VvsT|KzT~5nT_l_i0;xY zJ!JvEl^uh?4c6uzBzbQJDnE8nC0GXv`Ywr~PQ;C5zZ(a^1U}3PN`N!_PVbj$>y8Ic z3MXHm1pNdePOJL8-qXpn=NqXsoJf)EM8E5X5QI2HfdZWg&F~+30XejFgAa!I;4g5J zhnysa3=tE7;s#C|^PrhqLr$sS)8i>WcuTdxfrU(TdFnC@5Y<(RObfeNEdodrtQ4}`< z)Ml183w7Nl;&vqeJkr|lPFR_0^(fGe47qZ_a_U3sm0T3^g&p6SVT}>0%+;jCSd+D9H_M)Y=Y6Oz{ey zkUnJ31)P602x!*lT*m*1HoeRbSBm#knfz!nAEW*4q2v$Y0-MM!@Qz#?cO^J~*P7%a z*aMubAFKM|c;C_6BTLNqJ@s@l(V){oZvE`-Ah2kA9RWaOeXr-UWqNXH8_~@h&;px@ zAQwJ_k?pTIwL<0v`{2EsNN3rLnil$nZ8+LhG{(7iu0y_;%JCGhd=m1^Oq8Km4oItF zVH&rkd`#ov1*3EKulxvD`v`HBih^W-Cxx75+G1YVK5r!uOW#z~zA zkf!4|Vz$LfoNwO0m^zGfrlDvM?X+dhmG-N)C8!CS0aH#{G_@p2q9aj!jGQXHznp~U zy+p?|0_!bqzouV`;%%3!;O&)4SI4sfY1wLVHfRGtSjdkwP@sksJ)kaaXrj=lf? z#Zt1>`coHzm|F5MBOXTkns+L#__^=lo-y-ifJ&;2qg3cF10TshlzTb0n9;;*BYM&Q z+nfg{1}PId$KHI~K6!JZ(Q7XNOR1VijIFL1(V6X1O7uH(B6NpNIBXzCt)?xRs}16s zldfT(5SPG5+-F!Whfk{s(ui-Jfii^QC z{a>9Y+HoUtrx10qxGIU8n4Y$Iq9)s6OA(;X8hhSCmnHBfGw|;v>JQ@oyXO>Lz9laU z7|8{^%L-yD6)acN6>lGc=>q*u(@JqVH=#dQ!aUrw(gfSl&*+Hkry!-N_o@*eSYO$5 zlOQ!(H-I1kVJCVu2DtDJpiN+W5t%x_G}>yHKPk=IuaZeo3v2wF#J)iN1ksCL%oN@I zGr93E7*KmT8-L$Hvs4lhl0L6swZ|_V`CMq`Dj6G!V#y{rszEX0x~Qsz3`EF&8uPUw zNPCK0k%&1e?`~^W9(ruLvUo;rz^SRs0hCJBAhvll`9JL?TP5ZA*^4LF>W+EX5oBch zB}e)}M?-);T6u&!Qu~`=eN-8M&Q~U~tp0&ojM2yWYH96uU}AVUMSLQ5;J>^97j0bm1Y*RD}-q9=qr@#%xiMIY_BIAY8{uxcTZ5!YQ zW8&ykkg5XpnmfGLy>}r}pgNMsADV_&ndZSRP4q1@Shv|Lsc~xxvr19m)I)cs)41;f zdg0sTIqmB1iK_{-F}_H2y`kP6=NgSV%!dD6JG@Z)byQYZP&&qqjpCpItt`be>*U3D zqQiCVuLAf7CbJ(H4)U~hM0;nEW@xT5WzgprzodG~h4f4x#)uz?Cn**Xgr^B(DTBLc zl$irh&B4ThGiS3QXYtoN-gKid$~m+9<#WdYAEB&wA!Mwy7|o; zq*92Z7-KBSeRtjl`I2VrhHJk5DY7Vgw)Jnbnb$9|f(x(aEfUg8Ssg(TRyZ!tpX}S8 zl#!bx;gVb_RwG&tx)OpWw46nwXO#+a#l8ld%4X4Jv|V8zUsKrP6Zp@cJdEtY2hCwN z!8zaMZfpVZDMoL@Tcrsw=4&BtX2-~c~ZdzDnta)r}MN1aTA z&%Xb7Q9nyo;D3{z#a*Wll$0LfW5m^6-Qf`D{=b{e{)3W1a;Fn61H`d=zz)b;%DUTB zjDkn=59X zIIbSq^FdeA2#AwiXD554+!Jsm1~Ca0-Y^W08f zeRapI_-m_#bE@tqrTE{j^|u8}!;3#p?5E69RFeMV{A_LM=b}zhx>@z9Y31?L?u)#h zBY(d>(M$St-%pF3z?o&`v4j0vZ7cvh>FotCi{`N7pZ_)Ipq`SRf=XO@V&6;6h;W+s z@i`9j6ytV2`lqM^7lbm-{1vp1^ZWW{RVV~Hs`@H9pl<9)%dMg)Jx`jRt)0XGDGVIV z<6T}P;hC0E&Zz%KLm86*=feaJ@wr6#1i>uX>W6=6m6;fnvT^d$ zz8e-X)EJR>^P+c&1y(h}cIsiVCYApO9ZG$W&jG0CRy(1^CwoZ`ec3HrR-uol>Vlrr z=T@6HOrHO*#?Mly1S5qSzas{@PfdmFnfLlW&Vd(E9EPKaX6*Qhdz?n?G$;D{1~>!l zmPhA3Z}ENvRgThL`Pk$m^if|dZ;#rYdaATG6z$+|cBJd^xd*HTgIzG3(&}1 zdqQ%Fk^v#d^Dn49Utg@CBi(b1wY}WA*B(*S5m?jxmab3p-Rdv8U=l1tb`O6nVM0hL zFH9`HnT|+%=3(94(bN$G+R%;NY1hUJsK?`v^Vdqas#Oa_Tl9x^#oIypk?J<5+YLq55EWWn(f)UNk7uj3f6IrPHsjO;`Fh|oG+~BdRYn< zGki4x*u1Z+Lp{e@_nqIJc+z?tRUw5ibolqDJV}V@#Z9b<@@0g*rGg>A5<Z&tj6~;@KC^Z&!P<5bby9f5=YKgH0F7%x;m>V^W0UfkA=% zA|G(`PyXSMJk2Rk-~5l>G#`uJO@{i|HT(^_mm$aSBZe)cib%`kpJVfDzJoVHA4u+; z8kBvLD3dS5btFr>(;kAxK5I>+Q8epp3uxv~C`r9yYd(n_){z5EQp9PR`|(%KkYm@3 z-9o>fYS_o8mflH|-E&8uJIP7&Tg`=-TU6j{tbR2Rm6*5==n%>*9_k8B?1xAwROFLe z^3~gzt}}`0PUG&^)A(^Y&Y>w8pCF!8537Yavh6!W$)lF!TYSI8#$7sd|4-euYq&?# zu2fN}^P8^*Y4CkST+SE1`0U4ZLDcW+r(ER;N8g_I^HV`?N8Pne{TaEu{zzKC{IS>s zORXzJPw>yt!qSrI9-W0KB4RZR7jD2j-DG#x*a%IP3KrgrQgZGA0UVwb2nDeMW?NE( z?v1T!yVL};_eIO$gN#_b?bMNHDSAmJ&{JU!Be*t8=TSzg%+iyazmZo|9EqMgAShMz zJolfoWm5PA9Y+%!C?N0z(8k8D8WyN&r-ZlpRX@digh3f*UtV6-!X2@OQ&^@oLwWn= zvwO3)YUBGC-hwd^C{oCPChfZ;$lIiQ)n#j+agRaaArZgX^cFWrmSYnuSj;=j>+H_@ z4^DkAGQo0K09rtK#A-3p4fUwfd>dgdIPdpr()H>Ch%7NRDCBFJ!kE zz((h{D%h~#u5-OIg0F;b5KkbfX#m9o#sORTKy}pgNxYDO-8I&FRPI|(9Uhf79S41A z-(>K$3D*!&y{8Ph+(|U#deUx!_=W0T - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - HTTPS - - - - - - SSL / SNIopenssl - - - - - - frontal http : nginx - - - - - - - Interface wsgiuWSGI - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Application - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - requests - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - log - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - celery - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - email - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ORM + tenant-schema - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Middlewares Django - - - - - - SAML - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - mellon - - - - - - graylogsyslog - - - - - - - - - - - - - - - - - - - - - - appelswebservices - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - AMQP - - - - - - - - - - - - - - SMTP - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - managecommandeshobo - - - - - - notificationsprovisionningdéploiement - - - - - - - - - - - - - - - - - - - - - tenant 1 = schema 1 - - - - - - tenant 2 = schema 2 - - - - - - tenant 3 = schema 3 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - PostgreSQL - - - - - - - diff --git a/sysadmin-doc/index.rst b/sysadmin-doc/index.rst deleted file mode 100644 index 92cda17..0000000 --- a/sysadmin-doc/index.rst +++ /dev/null @@ -1,33 +0,0 @@ -.. Infrastructure de Publik documentation master file, created by - sphinx-quickstart on Mon Oct 30 17:41:53 2017. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -Guide de déploiement -==================== - -Architecture ------------- - -.. toctree:: - :maxdepth: 1 - -Installation ------------- - -.. toctree:: - :maxdepth: 1 - - -Exploitation ------------- - -.. toctree:: - :maxdepth: 1 - - - -.. image:: images/logo.png - :alt: logo Publik - -Le dépot des sources de ce document : https://repos.entrouvert.org/publik-infra.git/ diff --git a/sysadmin-doc/installation-1.md b/sysadmin-doc/installation-1.md deleted file mode 100644 index c64cf59..0000000 --- a/sysadmin-doc/installation-1.md +++ /dev/null @@ -1,5 +0,0 @@ -# Procédure d’installation - -Ce document présente l’installation d’un système Publik standard. Des -adaptations sont naturellement à envisager en fonction des besoins -particuliers. diff --git a/sysadmin-doc/installation-2.md b/sysadmin-doc/installation-2.md deleted file mode 100644 index 80c8f7e..0000000 --- a/sysadmin-doc/installation-2.md +++ /dev/null @@ -1,115 +0,0 @@ -# Prérequis d'infrastructure - -## Machine hôte - -Les ressources nécessaires varient en fonction de la quantité de données à -traiter. Une installation de développement peut aisément tenir sur une machine -virtuelle. - -Par exemple, voici les ressources d'une machine applicative standard: - - * CPU 4 cœurs - * 16 Go de mémoire vive - * 200 Go d'espace disque - * Debian 10 installé en architecture amd64 (installation minimale) - -Les briques w.c.s. (formulaires) et fargo (porte-documents) doivent disposer -d’un volume plus important pour gérer les documents des usagers. Ceux-ci sont -stockés sur le système de fichier, son volume est donc à évaluer en fonction de -l’usage prévu. - -## Réseau - -Les ports réseaux suivants doivent être ouverts, sans filtre (très important!) et sans proxy: - - * en entrée: - * SSH (22/tcp) - * HTTPS (443/tcp) - * AMQP (5671/tcp) (au cas où les applicatifs sont répartis sur plusieurs machines) - - * en sortie: - * SMTP (25/tcp) - * DNS (53/udp et 53/tcp) - * HTTP et HTTPS (80/tcp et 443/tcp) - * PostgreSQL (5432/tcp) - * LDAP (389/tcp et 636/TCP) - * AMQP (5671/tcp) (au cas où les applicatifs sont répartis sur plusieurs machines) - -## Certificat X509 - -Publik utilise le protocole de transport chiffré HTTPS. - -Un ou plusieurs certificats x509 valides et reconnus sont requis; ceux-ci -doivent couvrir tous les noms des briques qui seront installées. Pratiquement -un certificat *wildcard* suffit générallement. (un certificat wildcard couvrant -\*.demarches.macollectivite.fr et demarches.collectivite.fr) L’utilisation de -certificats Letsencrypt est possible et encouragée. - -Dans la suite de la documentation nous considérons qu'un certificat est -disponible via les fichiers suivants: - - * clé publique certifiée : /etc/ssl/certs/cert-example.pem - * clé privée : /etc/ssl/private/cert-example.key - -## Résolution de noms - -Avant l'installation de Publik il faut vérifier que les enregistrements -DNS sont fonctionnels; Publik nécessite autant de domaines que de -composants. - -Typiquement : - -- portail usager (composant combo) : - moncompte.macollectivite.fr, -- portail agents (composant combo) : - agents-moncompte.macollectivite.fr, -- démarches (composant wcs/wcs-au-quotidien) : - demarches-moncompte.macollectivite.fr, -- fournisseur d'identités (composant authentic) : - connexion-moncompte.macollectivite.fr, -- hub de webservice (composant passerelle) : - passerelle-moncompte.macollectivite.fr, -- porte document (composant fargo) : - portedoc-moncompte.macollectivite.fr, - -Par exemple voici à quoi pourraient ressembler les entrées d'un serveur Bind: - - publik A a.b.c.d ; addresse IP de «publik» - portail CNAME publik ; portail usage (brique: combo) - backoffice CNAME publik ; portail agent (brique: combo) - connexion CNAME publik ; fournisseur d'identités (brique: authentic) - demarches CNAME publik ; téléservices (brique: wcs) - passerelle CNAME publik ; hub de webservices (brique: passerelle) - hobo CNAME publik ; système de déploiement (brique: hobo) - -Toutes ces entrées DNS doivent pointer vers le proxy de répartition de charge -(dans le cas d'une installation avec répartition de charge). - -Par ailleurs, les serveurs applicatifs doivent impérativement avoir un -fichier */etc/hosts* consistant. - -D'avantage de détails sur les sous-domaines à configurer peuvent être consultés sur https://dev.entrouvert.org/projects/publik/wiki/URL/ . - - -## Horloges synchronisées - -Il est indispensable que les machines soient exactement à la même -heure. Les systèmes récent utilisent *systemd-timesyncd *par défaut. -*Ntp* est également possible. - -## Envois des emails - -Les serveurs applicatifs doivent disposer d'un MTA local (par exemple -*exim4-daemon-light*) avec le port SMTP ouvert et capable d'expédier des mails -vers tout Internet, en passant éventuellement par un relais. Les mails seront -envoyés avec le domaine « @macollectivite.fr ». Nous recommandons -vivement de les relayer via un smarthost officiel de votre réseau. - -Pour d'avantage de détails sur l'envoi de courriel se référrer à https://dev.entrouvert.org/projects/publik/wiki/Envois_de_courriels . - -## Configuration de la localisation - -Sur toutes les machines il est nécessaire de reconfigurer la locale utilisée -par défault pour utiliser *fr_FR.UTF-8*: - - dpkg-reconfigure locales diff --git a/sysadmin-doc/installation-3.md b/sysadmin-doc/installation-3.md deleted file mode 100644 index 2b2d5bd..0000000 --- a/sysadmin-doc/installation-3.md +++ /dev/null @@ -1,51 +0,0 @@ -# Configuration des dépôts logiciels - -## Vue générale - -Les différents composants logiciels utilisés par Publik proviennent, par -ordre de préférence : - -- de la distribution Debian GNU/Linux 10 (« buster ») -- des *backports* officiels Debian, disposant du suivi de sécurité par - l’équipe Debian, -- des paquets Debian fournis et maintenus par les projets *upstream,* -- de paquets Debian maintenus par Entr’ouvert qui en assure le suivi - de sécurité. - -## Configuration des dépôts logiciels - -Configurons le dépôt **buster-backports** : - - echo 'deb http://deb.debian.org/debian/ buster-backports main' > /etc/apt/sources.list.d/backports.list - -Ajoutons aussi les dépôts Entr'ouvert: - - echo 'deb http://deb.entrouvert.org/ buster main' > /etc/apt/sources.list.d/entrouvert.list - -Ajoutons la clé associée : - - curl https://deb.entrouvert.org/entrouvert.gpg | sudo tee -a /etc/apt/trusted.gpg.d/entrouvert.gpg - apt update - -Nous installons ensuite les configuration particulières de apt : - - apt install -o Dpkg::Options::="--force-confnew" entrouvert-repository - apt install entrouvert-repository-hotfix - apt update - -## Installation des paquets de base - -Outillage utile pour l'installation et plus tard pour le support et la maintenance : - - apt install postgresql-client # pour création utilisateurs et bases de données dans postgresql - apt install bsd-mailx # pour test de l'envoi de mails - apt install zip # pour la création du squelette de site w.c.s. - apt install curl wget # pour les tests/debug locaux - apt install ltrace strace psmisc tcpdump tshark # pour des debug applicatifs - apt install ca-certificates-entrouvert # connexion au LDAP EO - -Composants additionnels nécessaires pour les applications : - - apt install libreoffice # pour génération de documents dans wcs - apt install publik-base-theme # système de thème - apt install publik-common # outils de gestion diff --git a/sysadmin-doc/installation-4.md b/sysadmin-doc/installation-4.md deleted file mode 100644 index f9b9d15..0000000 --- a/sysadmin-doc/installation-4.md +++ /dev/null @@ -1,71 +0,0 @@ -# Création des bases de données - -## Vue générale - -Chaque brique utilise une ou plusieurs bases de données PostgreSQL. Il -est courant d’utiliser une installation à deux machines identiques en -master/slave. Publik peut utiliser un système PostgreSQL existant, le -cas échéant. Publik nécessite PostgreSQL version 9.6 ou supérieure. - -## Installation de PostgreSQL - -Vérifier que les extensions PostgreSQL est installé : - - apt install postgresql - -## Création automatisée des bases de données - -Nous proposons un script pour la création des bases de données (distribué via le -paquet publik-common), l'utilisation standard s'adresse à un cluster postgresql -local : - - publik-create-databases - -## Création manuelle des bases - -Chaque composant Publik doit disposer : - -- d'une base de données dédiée, -- d'un accès spécifique à cette base via un usager postgreSQL dédié - (avec un mot de passe SQL à créer pour chaque composant). - -Principe pour le composant *combo :* - - CREATE USER combo PASSWORD 'indiquer-ici-le-mot-de-passe-pour-combo'; - - CREATE DATABASE combo WITH OWNER = combo TEMPLATE = template0 LC_COLLATE = 'fr_FR.UTF-8' LC_CTYPE = 'fr_FR.UTF-8'; - -Remarques : - -- *template0* et *LC_COLLATE* et *LC_CTYPE* nécessaires parce que template1 est en en_US.UTF-8. -- pour le module authentic2-multitenant, le nom du rôle est *authentic-multitenant* et le nom de la base est *authentic2_multitenant* (adaptez les commandes précitées comme suit : ``CREATE USER "authentic-multitenant"...``) - -La même opération doit être répétée pour chaque brique logicielle (bien sûr à -chaque fois il faut **noter le mot de passe** choisi, il sera nécessaire par la -suite) : - -- Combo -- Hobo -- Authentic -- Passerelle -- Fargo -- Bijoe -- Chrono - -Pour étendre les possibilités de recherche plein texte, il est également utile -d'activer l'extension « unaccent » dans la base de données Combo : - - CREATE EXTENSION unaccent; - -Sur la base de données authentic, activer les extensions suivantes : - - CREATE EXTENSION unaccent; - CREATE EXTENSION pg_trgm; - -Une brique est spécifique : w.c.s.. Pour w.c.s., il n'y a pas besoin de -création d'une base, elle sera effectuée lors de l'instanciation. En -revanche, l'utilisateur w.c.s. sur PostgreSQL doit avoir le droit -CREATEDB, donc : - -*CREATE USER wcs PASSWORD 'indiquer-ici-le-mot-de-passe-pour-wcs' -CREATEDB;* diff --git a/sysadmin-doc/installation-5.md b/sysadmin-doc/installation-5.md deleted file mode 100644 index c02571d..0000000 --- a/sysadmin-doc/installation-5.md +++ /dev/null @@ -1,520 +0,0 @@ -# Installation des composants - -Publik est la somme de plusieurs composants qui communiquent entre eux -via messages et webservices. Chaque composant est un paquet Debian qui -s'installe depuis de dépôt Entr'ouvert. - - -## Installation PostgreSQL - -Lors de leur installation les briques s’attendent à trouver un service -PostgreSQL fonctionnel, la configuration par défaut utilise un serveur -local, dont l’installation a été vue dans la section précédente. - - -Vérifier que le service tourne : - - # systemctl status postgresql@11-main.service - ● postgresql@11-main.service - PostgreSQL Cluster 11-main - Loaded: loaded (/lib/systemd/system/postgresql@.service; enabled-runtime; vendor preset: enabled) - Active: active (running) since Tue 2021-01-12 16:01:30 CET; 7min ago - Main PID: 22215 (postgres) - Tasks: 7 (limit: 19660) - Memory: 100.2M - CGroup: /system.slice/system-postgresql.slice/postgresql@11-main.service - ├─22215 /usr/lib/postgresql/11/bin/postgres -D […] - ├─… - - -## Installation RabbitMQ - -RabbitMQ sera utilisé uniquement en local (127.0.0.1) et n’a besoin -d’aucune configuration particulière. - - # apt install rabbitmq-server - -Il est utile ensuite de vérifier que le service tourne : - - # systemctl status rabbitmq-server - ● rabbitmq-server.service - RabbitMQ broker - Loaded: loaded (/lib/systemd/system/rabbitmq-server.service; enabled) - Active: active (running) since lun. 2017-07-17 10:09:57 CEST; 4 days ago - Main PID: 580 (beam.smp) - Status: "Initialized" - - CGroup: /system.slice/rabbitmq-server.service - ├─ 580 /usr/lib/erlang/erts-6.2/bin/beam.smp [...] - ├─ 897 /usr/lib/erlang/erts-6.2/bin/epmd -daemon - ├─1780 inet_gethost 4 - └─1781 inet_gethost 4 - -Et que les journaux ne contiennent pas d’erreurs, ils doivent ressembler à : - - # journalctl -u rabbitmq-server.service - - -- Logs begin at lun. 2017-07-17 10:09:46 CEST, end at ven. 2017-07-21 19:55:37 CEST. -- - - juil. 17 10:09:50 web1-preprod systemd[1]: Starting RabbitMQ broker... - juil. 17 10:09:54 web1-preprod rabbitmq-server[580]: RabbitMQ 3.6.10. Copyright (C) 2007-2017 Pivotal Software, Inc. - juil. 17 10:09:54 web1-preprod rabbitmq-server[580]: ## ## Licensed under the MPL. See http://www.rabbitmq.com/ - juil. 17 10:09:54 web1-preprod rabbitmq-server[580]: ## ## - juil. 17 10:09:54 web1-preprod rabbitmq-server[580]: ########## Logs: /var/log/rabbitmq/rabbit@web1-preprod.log - juil. 17 10:09:54 web1-preprod rabbitmq-server[580]: ###### ## /var/log/rabbitmq/rabbit@web1-preprod-sasl.log - juil. 17 10:09:54 web1-preprod rabbitmq-server[580]: ########## - juil. 17 10:09:54 web1-preprod rabbitmq-server[580]: Starting broker... - juil. 17 10:09:57 web1-preprod rabbitmq-server[580]: systemd unit for activation check: "rabbitmq-server.service" - juil. 17 10:09:57 web1-preprod systemd[1]: Started RabbitMQ broker. - juil. 17 10:09:57 web1-preprod rabbitmq-server[580]: completed with 0 plugins. - - -## Installation Combo - -Dans */etc/combo/settings.d/database.py* nous renseignons éventuellement les -paramètres de connexion particuliers, par exemple le mot de passe ajouté à -l'étape de création manuelle des bases : - - DATABASES['default']['PASSWORD'] = "foobar" - -Dans */etc/combo/settings.d/macollectivite.py*, -nous configurons l'envoi des traces d'erreur par l'ajout de ces lignes -en fin de fichier : - - ADMINS = (('Admin EO', 'admin+prod.macollectivite.combo@entrouvert.com'),) - EMAIL_SUBJECT_PREFIX = '[prod macollectivite combo] ' - SERVER_EMAIL = 'admin+prod.macollectivite.passerelle@entrouvert.com' - -On installe ensuite le logiciel *combo* : - - # apt install combo - -Vérification avec *systemctl status combo* : - - # systemctl status combo - ● combo.service - Combo - Loaded: loaded (/lib/systemd/system/combo.service; enabled) - Active: active (running) since jeu. 2019-07-20 13:33:44 CEST; 19h ago - Process: 16317 ExecStartPre=/usr/bin/combo-manage collectstatic --noinput (code=exited, status=0/SUCCESS) - Process: 16319 ExecStartPre=/usr/bin/combo-manage migrate_schemas --noinput (code=exited, status=0/SUCCESS) - Main PID: 16324 (uwsgi) - Status: "uWSGI is ready" - CGroup: /system.slice/combo.service - ├─16429 combo uWSGI worker 1 - ├─16434 combo uWSGI worker 5 - ├─16436 combo uWSGI worker 3 - ├─16483 combo uWSGI worker 2 - ├─16421 combo uWSGI worker 4 - └─16324 combo uWSGI master - -## Installation Passerelle - -La procédure est la même que pour Combo. - -Dans */etc/combo/settings.d/database.py* nous renseignons éventuellement les -paramètres de connexion particuliers. - -Dans */etc/passerelle/settings.d/macollectivite.py*, -configuration pour l'envoi des traces d'erreur par l'ajout de ces lignes -en fin de fichier : - - ADMINS = (('Admin EO', 'admin+prod.macollectivite.passerelle@entrouvert.com'),) - EMAIL_SUBJECT_PREFIX = '[prod macollectivite passerelle] ' - SERVER_EMAIL = 'admin+prod.macollectivite.passerelle@entrouvert.com' - -Nous pouvons ensuite installer le composant : - - # apt install passerelle - -Et vérification avec *systemctl is-active passerelle* qui doit montrer -«active» - -## Installation Fargo - -Reprendre la même procédure que pour les autres composants, en adaptant -le nom de la brique, c'est-à-dire : - -1. Éventuelle configuration des accès base de données -2. Configuration du mail dans */etc/fargo/settings.d/macollectivite.py* -3. Installation du composant : - - # apt install fargo - -4. Vérification avec *systemctl is-active fargo* qui doit retourner « active » - -## Installation Hobo serveur - -Reprendre la même procédure que pour les autres composants, en adaptant -le nom de la brique, c'est-à-dire : - -1. Éventuelle configuration des accès base de données -2. Configuration du mail dans */etc/hobo/settings.d/macollectivite.py* -3. Installation du composant : - - # apt install hobo - -4. Vérification avec *systemctl is-active hobo* qui doit retourner « active » - -## Installation Hobo agent - -Il s'agit d'un composant qui va écouter les ordres de déploiement (ou -provisionning) envoyés par le serveur Hobo et les exécuter sur les -autres composants. - -Installation : - - # apt install hobo-agent - -Ce démon est piloté par supervisor, ce dernier a parfois du mal à se -lancer dès la première installation. On remet donc tout à plat avec : - - systemctl stop supervisor - systemctl start supervisor - -Et on vérifie que hobo-agent est bien lancé par supervisor : - - # systemctl status supervisor - ● supervisor.service - LSB: Start/stop supervisor - Loaded: loaded (/etc/init.d/supervisor) - Active: active (running) since lun. 2017-07-17 10:09:52 CEST; 4 days ago - CGroup: /system.slice/supervisor.service - ├─1065 /usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.conf - ├─1208 python2.7 /usr/bin/celery worker --hostname=agent.%h --app=hobo.agent.worker --loglevel=INFO --concurrency=1 - └─1494 python2.7 /usr/bin/celery worker --hostname=agent.%h --app=hobo.agent.worker --loglevel=INFO --concurrency=1 - -## Installation Authentic - -Le système Authentic, un peu plus ancien que les autres composants, ne -suit pas exactement les mêmes principes et les mêmes nommages. - -Le nom du paquet à installer est *authentic2-multitenant* : - - # apt install authentic2-multitenant - -En cas d’installation qui ne suivrait pas le schéma standard de -*publik-create-databases* il faut préciser le nom de la base de données, par -exemple dans */etc/authentic2-multitenant/settings.d/database.py* : - - DATABASES = { - 'default': { - 'ENGINE': 'django.db.backends.postgresql_psycopg2', - 'NAME': 'authentic2_multitenant', - } - } - -Dans */etc/authentic2-multitenant/settings.d/macollectivite.py*, la -configuration mail : - - ADMINS = (('Admin EO', 'admin+prod.macollectivite.authentic@entrouvert.com'),) - EMAIL_SUBJECT_PREFIX = '[prod macollectivite authentic] ' - SERVER_EMAIL = 'admin+prod.macollectivite.authentic@entrouvert.com' - -Vérification avec *service authentic2-multitenant status* : - - # systemctl status authentic2-multitenant - ● authentic2-multitenant.service - Authentic 2 (multitenants) - Loaded: loaded (/lib/systemd/system/authentic2-multitenant.service; enabled; vendor preset: enabled) - Active: active (running) since Fri 2021-02-19 08:49:27 CET; 2 days ago - Main PID: 11591 (uwsgi) - Status: "uWSGI is ready" - CGroup: /system.slice/authentic2-multitenant.service - ├─ 9944 authentic2-multitenant uWSGI worker 6 - ├─ 9946 authentic2-multitenant uWSGI worker 7 - ├─ 9949 authentic2-multitenant uWSGI worker 8 - ├─ 9950 authentic2-multitenant uWSGI worker 9 - ├─11083 authentic2-multitenant uWSGI worker 10 - └─11591 authentic2-multitenant uWSGI master - -## Installation w.c.s. - -Comme noté précédemment le module w.c.s. est spécifique et n'a pas besoin de -configuration initiale pour configurer ses mails, il y a donc -simplement deux étapes : - -1. Installation du composant : - - # apt install wcs wcs-au-quotidien - -2. Vérification avec *systemctl is-active wcs* qui doit retourner « active » - - - -## Installation de Nginx - - # apt install nginx - -... rien de plus. Nous installons la version de Debian 10. - -## Configuration de base - -L’installation de publik-commonn aura mis en place la configuration pour un -format de log nginx avancé (qui affiche le tenant) dans -*/etc/nginx/conf.d/log_formats.conf* : - - # /etc/nginx/conf.d/log_formats.conf - - log_format combined_full '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$host" [$request_time ms]'; - - log_format with_request_time '$remote_addr - $remote_user [$time_local] [$request_time ms] ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent"'; - -Ainsi qu'un fichier */etc/nginx/conf.d/client-max-body-size.conf* pour -contrôler la taille maximale des fichiers téléversables : - - client_max_body_size 200M; - -Dans les installations où un serveur HAProxy serait posé en amont, il faudra -adapter la configuration de celui-ci pour correspondre. - - -## Mise en place des virtualhost (frontaux HTTP des tenants des composants Publik) - -Le soin est laissé à l'installateur de décider comment poser les -virtualhost ci-dessous dans nginx. - -Au niveau de la preprod, le modèle classique a été adopté : - -- un fichier par virtualhost dans */etc/nginx/sites-available/* -- des liens symboliques dans */etc/nginx/sites-enabled/* avec un - préfixe *10_* permettant un éventuel classement d'autres services - avant ou après. -- la terminaison SSL est assurée en amont et le traffic parvient - non-chiffré à nginx. - -A noter que **ces fichiers **N**ginx de la **plate-forme de -**pré-prod**uction** peuvent être copiés** pour la plate-forme de -production, il faudra cependant veiller à la modification du -server_name du portail usagers dans le virtualhost "combo". - -Des fichiers type sont distribués dans le paquet *publik-common*, dans -le répertoire */usr/share/doc/publik-common/nginx/sites-available/*. Ils -peuvent être directement copiés dans */etc/nginx/sites-available/*. - -### Combo - - server { - listen 80; - server_name ~^moncompte.*; # portail usagers ; selon le nom du site - # (attention, différent de la pré-prod) - ~^agents-.*; # portail agents ; selon le nom du site - - access_log /var/log/nginx/combo-access.log combined_full; - error_log /var/log/nginx/combo-error.log; - - location ~ ^/static/(.+)$ { - root /; - try_files /var/lib/combo/tenants/$host/static/$1 - /var/lib/combo/tenants/$host/theme/static/$1 - /var/lib/combo/collectstatic/$1 - =404; - add_header Access-Control-Allow-Origin *; - } - - location ~ ^/media/(.+)$ { - alias /var/lib/combo/tenants/$host/media/$1; - } - - location / { - proxy_pass http://unix:/run/combo/combo.sock; - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-SSL on; - proxy_set_header X-Forwarded-Protocol ssl; - proxy_set_header X-Forwarded-Proto https; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - } - -### Hobo - -Même modèle que Combo : - - server { - listen 80; - - server_name ~^hobo-.*; - - access_log /var/log/nginx/hobo-access.log combined_full; - error_log /var/log/nginx/hobo-error.log; - - location ~ ^/static/(.+)$ { - root /; - try_files /var/lib/hobo/tenants/$host/static/$1 - /var/lib/hobo/tenants/$host/theme/static/$1 - /var/lib/hobo/collectstatic/$1 - =404; - add_header Access-Control-Allow-Origin *; - } - - location ~ ^/media/(.+)$ { - alias /var/lib/hobo/tenants/$host/media/$1; - } - - location / { - proxy_pass http://unix:/run/hobo/hobo.sock; - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-SSL on; - proxy_set_header X-Forwarded-Protocol ssl; - proxy_set_header X-Forwarded-Proto https; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - } - -### Passerelle - -Même modèle que Combo, mais aucune diffusion de /media (il s'agit de -données privées dans Passerelle). - - server { - listen 80; - - server_name ~^passerelle-.*; - - access_log /var/log/nginx/passerelle-access.log combined_full; - error_log /var/log/nginx/passerelle-error.log; - - location ~ ^/static/(.+)$ { - root /; - try_files /var/lib/passerelle/tenants/$host/static/$1 - /var/lib/passerelle/tenants/$host/theme/static/$1 - /var/lib/passerelle/collectstatic/$1 - =404; - add_header Access-Control-Allow-Origin *; - } - - location / { - proxy_pass http://unix:/run/passerelle/passerelle.sock; - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-SSL on; - proxy_set_header X-Forwarded-Protocol ssl; - proxy_set_header X-Forwarded-Proto https; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - } - -### Fargo - -Même modèle que Combo, mais aucune diffusion de /media (il s'agit des -fichiers usagers privés dans Fargo). - - server { - listen 80; - - server_name ~^portedoc-.*; - - access_log /var/log/nginx/fargo-access.log combined_full; - error_log /var/log/nginx/fargo-error.log; - - location ~ ^/static/(.+)$ { - root /; - try_files /var/lib/fargo/tenants/$host/static/$1 - /var/lib/fargo/tenants/$host/theme/static/$1 - /var/lib/fargo/collectstatic/$1 - =404; - add_header Access-Control-Allow-Origin *; - } - - location / { - proxy_pass http://unix:/run/fargo/fargo.sock; - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-SSL on; - proxy_set_header X-Forwarded-Protocol ssl; - proxy_set_header X-Forwarded-Proto https; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - - } - -### Authentic - -Comme Combo, sans diffusion des /media, et en utilisant le nom du -service *authentic2-multitenant.* - - server { - listen 80; - - server_name ~^connexion-.*; - - access_log /var/log/nginx/authentic2-multitenant-access.log combined_full; - error_log /var/log/nginx/authentic2-multitenant-error.log; - - location ~ ^/static/(.+)$ { - root /; - try_files /var/lib/authentic2-multitenant/tenants/$host/static/$1 - /var/lib/authentic2-multitenant/tenants/$host/theme/static/$1 - /var/lib/authentic2-multitenant/collectstatic/$1 - =404; - add_header Access-Control-Allow-Origin *; - } - - location / { - proxy_pass http://unix:/run/authentic2-multitenant/authentic2-multitenant.sock; - proxy_set_header Host $http_host; - proxy_set_header X-Forwarded-SSL on; - proxy_set_header X-Forwarded-Protocol ssl; - proxy_set_header X-Forwarded-Proto https; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - } - } - -### w.c.s. - - server { - - listen 80; - - server_name ~^demarches-.*; - - access_log /var/log/nginx/wcs-access.log combined_full; - error_log /var/log/nginx/wcs-error.log; - - location ~ ^/static/(.+)$ { - root /; - try_files /var/lib/wcs/tenants/$host/static/$1 - /var/lib/wcs/tenants/$host/theme/static/$1 - /var/lib/wcs/$host/static/$1 - /var/lib/wcs/$host/theme/static/$1 - /var/lib/wcs/collectstatic/$1 - =404; - } - - location /qo { alias /usr/share/wcs/qommon/; } - location /apache-errors { alias /usr/share/auquotidien/apache-errors/; } - - location /themes { - root /; - try_files /var/lib/wcs/tenants/$host$uri - /var/lib/wcs/$host$uri - /usr/share/wcs/$uri - =404; - } - - location / { - proxy_pass http://unix:/var/run/wcs/wcs.sock; - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-SSL on; - proxy_set_header X-Forwarded-Protocol ssl; - proxy_set_header X-Forwarded-Proto https; - } - } - -## Vérification des réponses de Nginx - -Une fois les virtualhost en place, les sites doivent répondre par des -erreurs 404 : ce sont les applications de Publik qui répondent qu'elles -n'ont pas encore d'instance liés aux noms prévus. - -C'est tout de même déjà le temps de vérifier : - -- que les certificats HTTPS sont ok, -- que haproxy envoie bien sur web1 (si vous l'avez déjà installé), -- que les requêtes arrivent sur les bons virtualhost, par exemple pour - fargo on vérifiera que l'accès à - [https://portedoc-moncompte.macollectivite.fr](https://portedoc-moncompte.macollectivite.fr/) - provoque une 404 dans */var/log/nginx/fargo-access.log* et aucun - message dans */var/log/nginx/fargo-error.log* ; opération à répéter - avec tous les autres sites installés. diff --git a/sysadmin-doc/installation-6.md b/sysadmin-doc/installation-6.md deleted file mode 100644 index e2bcdc4..0000000 --- a/sysadmin-doc/installation-6.md +++ /dev/null @@ -1,272 +0,0 @@ -# Déploiement des instances - -Attention le déploiement ne doit être lancé que si TOUS les services -ont été testés et répondent des 404 aux adresses prévues. - -Cela signifie notamment, niveau infrastructure, que les entrées DNS, le/les -certificats et les frontaux HTTP (haproxy et/ou nginx) sont déjà en place. - -## Préparation, création du fichier «recipe» - -Création d'un fichier de déploiement -*recipe-macollectivite-prod.json* -(note : fichier déjà disponible sur l'infra de pré-prod); la ligne -"password" est à compléter. - - { - "variables": { - "hobo": "hobo-moncompte.macollectivite.fr", - "authentic": "connexion-moncompte.macollectivite.fr", - "combo": "moncompte.macollectivite.fr", - "combo_agent": "agents-moncompte.macollectivite.fr", - "passerelle": "passerelle-moncompte.macollectivite.fr", - "wcs": "demarches-moncompte.macollectivite.fr", - "fargo": "portedoc-moncompte.macollectivite.fr" - }, - "steps": [ - {"create-hobo": { - "url": "https://${hobo}/" - }}, - {"create-superuser": { - "email": "admin+macollectivite@entrouvert.com", - "password": "..." - }}, - {"create-authentic": { - "url": "https://${authentic}/", - "title": "Connexion" - }}, - {"set-idp": { }}, - {"create-combo": { - "url": "https://${combo}/", - "title": "Compte citoyen", - "template_name": "portal-user" - }}, - {"create-combo": { - "url": "https://${combo_agent}/", - "slug": "portal-agent", - "title": "Portail agent", - "template_name": "portal-agent" - }}, - {"create-wcs": { - "url": "https://${wcs}/", - "title": "Démarches", - "template_name": "modele.zip" - }}, - {"create-fargo": { - "url": "https://${fargo}/", - "title": "Porte-documents" - }}, - {"create-passerelle": { - "url": "https://${passerelle}/", - "title": "Passerelle" - }}, - {"set-theme": { - "theme": "publik" - }} - ] - } - -Le fichier de déploiement ci-dessus mentionne un fichier template, **modele.zip**, nécessaire au paramétrage de W.C.S lors du déploiement. Ce fichier zip doit être placé dans /var/lib/wcs/skeletons. -Il peut être obtenu à partir d‘un export de site (dans l‘IHM : *Paramètres >> Export*). -Alternativement il peut-être créé manuellement : le zip doit contenir un fichier *site-options.cfg* et un fichier *config.json*, voir les exemples ci-dessous. - -Pour *config.json* : - - { - "branding": { - "theme": "clapotis-les-canards" - }, - "debug": { - "error_email": "admin@yourdomain.com" - }, - "emails": { - "from": "noreply@yourdomain.com" - }, - "language": { - "language": "fr" - }, - "misc": { - "charset": "utf-8", - "homepage-redirect-url": "[portal_url]" - }, - "postgresql": { - "createdb-connection-params": { - "database": "postgres", - "host": "your.postgres.db.host", - "port": "5432", - "user": "yourdbuser", - "password": "yourdbpassword" - }, - "database-template-name": "wcs_%s", - "host": "your.postgres.db.host", - "port": "5432", - "user": "yourdbuser", - "password": "yourdbpassword" } - } - -L‘utilisateur postgres mentionné doit avoir le droit de créer une base de donnée. - -Pour *site-options.cfg* : - - [options] - postgresql = true - default-to-global-view = true - workflow-global-actions = true - workflow-criticality-levels = true - workflow-resubmit-action = false - workflow-functions-only = true - formdef-captcha-option = false - default_position = 48.8336428;2.3233045 - -## Lancement du déploiement - -On utilise la commande «cook» proposée par le logiciel «hobo». Cette -commande doit impérativement être exécutée par l'utilisateur «hobo», on -utilise donc *sudo -u hobo … :* - - # sudo -u hobo hobo-manage cook /chemin/vers/recipe-macollectivite-prod.json -v 2 - -## Vérification du déploiement - -A la fin du déploiement, les logiciels Publik Django packagés doivent -avoir déployé les instances dans PostgreSQL (schémas visibles dans -chaque base) mais surtout crée le répertoire contenant la configuration -du site cible : - -Ce qui est visible dans la plateforme de pré-production doit l'être sur -la plate-forme de production, donc on doit voir ceci (en retirant les -*preprod-*) : - - # ls -ld /var/lib/*/tenants/* - drwxr-xr-x 3 authentic-multitenant authentic-multitenant 120 Jul 12 15:19 /var/lib/authentic2-multitenant/tenants/connexion-preprod-moncompte.macollectivite.fr - drwxr-xr-x 5 combo combo 156 Jul 21 00:25 /var/lib/combo/tenants/agents-preprod-moncompte.macollectivite.fr - drwxr-xr-x 5 combo combo 4096 Jul 20 10:38 /var/lib/combo/tenants/preprod-moncompte.macollectivite.fr - drwxr-xr-x 3 fargo fargo 107 Jul 10 18:19 /var/lib/fargo/tenants/portedoc-preprod-moncompte.macollectivite.fr - drwxr-xr-x 3 hobo hobo 81 Apr 18 10:42 /var/lib/hobo/tenants/hobo-preprod-moncompte.macollectivite.fr - drwxr-xr-x 3 passerelle passerelle 107 Jul 10 18:19 /var/lib/passerelle/tenants/passerelle-preprod-moncompte.macollectivite.fr - -w.c.s. créé directement une base de données -*wcs_demarches_moncompte_macollectivite_fr* -accompagnée de son dossier dans */var/lib/wcs* - - # ls -ld /var/lib/wcs/* - drwxr-xr-x 7 root root 66 Apr 13 15:55 /var/lib/wcs/collectstatic - -rw------- 1 root root 50 Apr 13 15:55 /var/lib/wcs/config.pck - drwxr-xr-x 22 wcs wcs 4096 Jul 10 18:19 /var/lib/wcs/demarches-preprod-moncompte.macollectivite.fr - drwxr-xr-x 2 root root 47 Apr 13 15:59 /var/lib/wcs/skeleton.invalid - drwxr-xr-x 2 root root 23 Apr 13 16:00 /var/lib/wcs/skeletons - -Si les répertoires sont présents, alors : - -- https://moncompte.macollectivite.fr : doit afficher une page "Votre installation de Combo - fonctionne (...) Le site est actuellement vide (…)", -- https://agents-moncompte.macollectivite.fr même chose, -- https://connexion-moncompte.macollectivite.fr : doit proposer une - page de connexion avec un design proche de la pré-prod, -- https://passerelle-moncompte.macollectivite.fr : doit re-diriger - vers le site connexion-moncompte précédent, -- https://hobo-moncompte.macollectivite.fr : même chose, redirection vers connexion-moncompte, -- https://portedoc-moncompte.macollectivite.fr : même chose, redirection vers connexion-moncompte, -- https://demarches-moncompte.macollectivite.fr : doit rediriger vers - https://moncompte.macollectivite.fr/. - -## Configuration de la gestion des identités - -### Configuration de l'authentification LDAP - -Création d'un fichier -*/var/lib/authentic2-multitenant/tenants/connexion-moncompte.macollectivite.fr/settings.json.* - - { - "ACCOUNT_ACTIVATION_DAYS": 1, - "PASSWORD_RESET_TIMEOUT_DAYS": 1, - "A2_REGISTRATION_EMAIL_IS_UNIQUE": true, - "A2_EMAIL_IS_UNIQUE": true, - "LDAP_AUTH_SETTINGS": [ - { - "realm": "mairie-macollectivite.fr", - "url": ["ldap://v-dc1.vnan.intra/", "ldap://v-dc2.vnan.intra/"], - "basedn": "OU=macollectivite,DC=vnan,DC=intra", - "binddn": "xxxxx@vnan.intra", - "bindpw": "xxxxx", - "user_filter": "(&(objectClass=user)(sAMAccountType=805306368)(|(mail=%s)(samaccountname=%s))(|(memberOf=CN=.LD_Agents_BO,OU=macollectivite,DC=vnan,DC=intra)(memberOf=CN=.LD_Agents_Publik,OU=macollectivite,DC=vnan,DC=intra)))", - "username_template": "{samaccountname[0]}@{realm}", - "update_username": true, - "active_directory": true, - "attributes": [ - "mail", - "sAMAccountName", - "cn", - "sn", - "givenName", - "userPrincipalName" - ], - "external_id_tuples": [["samaccountname"],["dn:noquote"]], - "shuffle_replicas": false, - "require_cert": "never", - "use_tls": false, - "set_mandatory_roles": ["Agent"], - "user_can_change_password": false - } - ] - } - -Lancer un import manuel des comptes (pour ne pas attendre le cron) -avec : - - # sudo -u authentic-multitenant authentic2-multitenant-manage tenant_command sync-ldap-users -d connexion-moncompte.macollectivite.fr - -Cette commande ne doit rien afficher (ce qui signifie que tout s'est -bien déroulé), les comptes doivent être visibles dans -[https://connexion-moncompte.macollectivite.fr/manage/users/](https://connexion-moncompte.macollectivite.fr/manage/users/) - -### Configuration de la synchronisation automatique des rôles des comptes LDAP - -Dans le fichier */var/lib/authentic2-multitenant/tenants/connexion-moncompte.macollectivite.fr/settings.json*, pour l'annuaire des agents, rajouter les paramètres *group_filter* et *group_to_role_mapping*. - -Le paramètre *group_filter* liste recursivement les groupes LDAP dont le compte est membre: - - group_filter": "(&(objectClass=group)(member:1.2.840.113556.1.4.1941:={user_dn})(sAMAccountName=*))" - - -Le paramètre *group_to_role_mapping* contient une liste de paramètres au format suivant: - - ["cn=Group1,ou=Groups,dc=maville,dc=fr", ["slug-du-rôle1", "slug-du-rôle2"]] - -où le pemier paramètre est le DN du groupe dans l'annuaire et le deuxième paramètre est la liste des slugs des rôles à attribuer. - -Ainsi, le fichier de configuration aurait la forme suivante: - - { - "LDAP_AUTH_SETTINGS": [ - { - "realm": "mairie-macollectivite.fr", - "url": ["ldap://v-dc1.vnan.intra/", "ldap://v-dc2.vnan.intra/"], - "basedn": "OU=macollectivite,DC=vnan,DC=intra", - "binddn": "xxxxx@vnan.intra", - "bindpw": "xxxxx", - "user_filter": "(&(objectClass=user)(sAMAccountType=805306368)(|(mail=%s)(samaccountname=%s))(|(memberOf=CN=.LD_Agents_BO,OU=macollectivite,DC=vnan,DC=intra)(memberOf=CN=.LD_Agents_Publik,OU=macollectivite,DC=vnan,DC=intra)))", - "username_template": "{samaccountname[0]}@{realm}", - "update_username": true, - "active_directory": true, - "attributes": [ - "mail", - "sAMAccountName", - "cn", - "sn", - "givenName", - "userPrincipalName" - ], - "external_id_tuples": [["samaccountname"],["dn:noquote"]], - "shuffle_replicas": false, - "require_cert": "never", - "use_tls": false, - "set_mandatory_roles": ["Agent"], - "user_can_change_password": false, - "group_filter": "(&(objectClass=group)(member:1.2.840.113556.1.4.1941:={user_dn})(sAMAccountName=*))", - "group_to_role_mapping": [ - ["cn=Group1,ou=Groups,dc=maville,dc=fr", ["slug-du-rôle1", "slug-du-rôle2"]], - ] - } - ] - } diff --git a/sysadmin-doc/installation-7.md b/sysadmin-doc/installation-7.md deleted file mode 100644 index b1524c2..0000000 --- a/sysadmin-doc/installation-7.md +++ /dev/null @@ -1,255 +0,0 @@ -# Haute disponiblité - -Ce chapitre présente des moyens permettant d'ajouter de la redondance en vue de -garantir la disponibilité d'une installation de Publik. La charge des -opérations est dès lors répartie sur plusieurs machines; et le service est -maintenu en cas de panne d'un des composants. - -## Pré-requis - -Se référer aux pré-requis généraux, avec les -différences suivantes: - - * 2 machines hôtes identiques (ici nommées *web1* et *web2*) disposant des - ressources suivantes: - - * CPU 8 cœurs - * 32Go de mémoire vive - * 100Go d'espace disque - * Debian 10 installé en architecture amd64 (installation minimale) - - * un service frontal HAProxy (géré par le client) - * un service de base de données PostgreSQL disposant de 200Go d'espace (cluster - géré par le client) - * un service de partage de fichiers NFS disposant de 200Go d'espace (cluster - géré par le client) - -## Installation des composants - -### Création des utilisateurs avec UID identiques sur web1 et web2 - -Lors de partage de fichiers sur un réseau (NFS par exemple), il faut que les -UID des utilisateurs Unix concernés soient les mêmes sur les deux machines web1 -et web2. - -Nous fournissons un script pour faire cela : - - publik-create-users - -Alternativement vous pouvez utiliser : - - #!/bin/sh - - uid=2102 - - for user in hobo authentic-multitenant wcs passerelle combo fargo chrono bijoe - do - echo "create group $user ($uid)" - addgroup --system --gid $uid $user - echo "create user $user ($uid)" - adduser --disabled-password --system --uid $uid --gecos "$user daemon" --ingroup $user --no-create-home --home /var/lib/$user $user - uid=$(($uid+1)) - done - -Résultat dans /etc/passwd: - - hobo:x:2102:2102:hobo daemon,,,:/var/lib/hobo:/bin/false - authentic-multitenant:x:2103:2103:authentic2-multitenant daemon,,,:/var/lib/authentic2-multitenant:/bin/false - wcs:x:2104:2104:wcs daemon,,,:/var/lib/wcs:/bin/false - passerelle:x:2105:2105:passerelle daemon,,,:/var/lib/passerelle:/bin/false - combo:x:2106:2106:combo daemon,,,:/var/lib/combo:/bin/false - fargo:x:2107:2107:fargo daemon,,,:/var/lib/fargo:/bin/false - chrono:x:2109:2109:chrono daemon,,,:/var/lib/chrono:/bin/false - bijoe:x:2110:2110:bijoe daemon,,,:/var/lib/bijoe:/bin/false - - -### Vue générale - -Avant l'installation des modules, il faut pour chacun d'eux (sauf w.c.s.) -configurer l'accès au PostgreSQL; par exemple, dans -*/etc/combo/settings.d/macollectivite.py* : - - DATABASES['default']['NAME'] = 'combo' - DATABASES['default']['USER'] = 'combo' - DATABASES['default']['PASSWORD'] = 'indiquer-ici-le-mot-de-passe-pour-combo' - DATABASES['default']['HOST'] = 'sql-prod' - DATABASES['default']['PORT'] = '5432' - -Suivre ensuite les instructions pour une installation mono-machine. Ensuite -déplacer les éléments de configuration vers le partage de fichiers : - - * les répertoires de configuration `/etc/xxx` des composants Publik, - copiés vers `/srv/nfs/publik/etc/xxx,` - * les données `/var/lib/xxx` de ces mêmes composants, copiés vers - `/srv/nfs/publik/var/lib/xxx,` - * la configuration nginx ; copiés vers `/srv/nfs/publik/etc/nginx/xxx` - et `/srv/nfs/publik/var/www/html`. - -Sur *web1* et *web2* nous pointons les fichiers partagés à l'aide de liens -symboliques : - - * Configuration : `/etc/xxx` → `/srv/nfs/publik/etc/xxx,` - * Données : `/var/lib/xxx` → `/srv/nfs/publik/var/lib/xxx,` - * Configuration nginx. - -### Détail des opérations - -Création des répertoires partagés : - - * Configuration: `/srv/nfs/publik/etc`, - * Données des tenants: `/srv/nfs/publik/var/lib/` - * Données statiques: `/srv/nfs/publik/var/www/` - -Déplacement des configurations et données des services Publik: - -1. Service *wcs* - - service wcs stop - mv /etc/wcs /srv/nfs/publik/etc/ - ln -sf /srv/nfs/publik/etc/wcs /etc/wcs - mv /var/lib/wcs /srv/nfs/publik/var/lib/ - ln -sf /srv/nfs/publik/var/lib/wcs /var/lib/wcs - service wcs start - -2. Service *combo* - - service combo stop - mv /etc/combo /srv/nfs/publik/etc/ - ln -sf /srv/nfs/publik/etc/combo /etc/combo - mv /var/lib/combo /srv/nfs/publik/var/lib/ - ln -sf /srv/nfs/publik/var/lib/combo /var/lib/combo - service combo start - -3. Même procédure avec *fargo* -4. Même procédure avec *passerelle* -5. Même procédure avec *hobo* -6. Même procédure avec *authentic2-multitenant* -7. Configuration hobo-agent - - service supervisor stop - mv /etc/hobo-agent /srv/nfs/publik/etc/ - ln -sf /srv/nfs/publik/etc/hobo-agent /etc - service supervisor start - -Autres partages via NFS : - -1. Configurations nginx - - service nginx stop - mkdir /srv/nfs/publik/etc/nginx - cd /etc/nginx - mv conf.d includes sites-available sites-enabled /srv/nfs/publik/etc/nginx/ - ln -sf /srv/nfs/publik/etc/nginx/* . - service nginx start - -2. Éléments web statiques - - cd /var/www - mv html /srv/nfs/publik/var/www/ - ln -sf /srv/nfs/publik/var/www/html . - -3. APT : dépôts et préférences backports - - mkdir /srv/nfs/publik/etc/apt - cd /etc/apt - mv sources.list.d preferences.d /srv/nfs/publik/etc/apt/ - ln -sf /srv/nfs/publik/etc/apt/* . - -### Opérations sur web2 - -**Attention** : l'UID et le GUID de l'utilisateur *www-data* doit être -identique. - -Préparer les répertoires de configuration et de données des composants -Publik **avant** leur installation : - -1. Service wcs - - ln -sf /srv/nfs/publik/etc/wcs /etc/wcs - ln -sf /srv/nfs/publik/var/lib/wcs /var/lib/wcs - -2. Service *combo* - - ln -sf /srv/nfs/publik/etc/combo /etc/combo - ln -sf /srv/nfs/publik/var/lib/combo /var/lib/combo - -3. Même procédure avec *fargo* -4. Même procédure avec *passerelle* -5. Même procédure avec *hobo* -6. Même procédure avec *authentic2-multitenant* -7. Configuration hobo-agent - - ln -sf /srv/nfs/publik/etc/hobo-agent /etc/hobo-agent - -Préparer la configuration des autres composants: - -1. Configurations nginx - - service nginx stop - cd /etc/nginx - rm -rf conf.d includes sites-available sites-enabled - ln -sf /srv/nfs/publik/etc/nginx/* . - service nginx start - -2. Éléments web statiques - - cd /var/www - rm -rf html - ln -sf /srv/nfs/publik/var/www/html . - -3. APT : dépôts et préférences backports - - cd /etc/apt - rm -rf sources.list.d preferences.d - ln -sf /srv/nfs/publik/etc/apt/* . - -Lancer l'installation des composants packagés. Attention, lors de cette étape, -toujours refuser les éventuelles demandes de modification des fichiers de -configuration (on utilise ceux partagés par NFS) : - - apt install wcs wcs-au-quotidien - apt install combo - apt install fargo - apt install passerelle - apt install hobo - apt install authentic2-multitenant - apt install hobo-agent - -Nous comparons la liste des paquets installés entre web1 et web2 -(obtenue avec *dpkg -l*), et installons les paquets suivants : - -- python-combo-plugin-macollectivite, -- publik-base-theme, -- gettext - -## Désactivation des *crons* Publik sur web2 - -Il est **très important** de désactiver les crons de Publik sur web2, -pour ne pas avoir de compétition/conflit avec ceux déjà en place sur -web1, puisqu'ils agissent sur les mêmes données. - -Il faut donc poser des # devant les lignes des crons suivants : - -- */etc/cron.d/wcs,* -- */etc/cron.d/authentic2-multitenant,* -- */etc/cron.d/passerelle,* -- */etc/cron.hourly/python-combo,* -- */etc/cron.hourly/fargo.* - -## Paramétrage du partage de fichiers - -Démarrer les services uniquement après le montage de /srv/nfs - -Ajouter pour les services liés à Publik un supplément -*RequiresMountsFor=* à la description du service - -Exemple pour Combo : - - cat /etc/systemd/system/combo.service.d/wait-for-mnt-data.conf - - [Unit] - - RequiresMountsFor=/srv/nfs - -Faire de même avec les services qui ont besoin de */srv/nfs* : Combo, - Fargo, Passerelle, authentic2-multitenant, hobo, hobo-agent, wcs. diff --git a/sysadmin-doc/tools/despan.py b/sysadmin-doc/tools/despan.py deleted file mode 100644 index dbe2079..0000000 --- a/sysadmin-doc/tools/despan.py +++ /dev/null @@ -1,18 +0,0 @@ -#!/usr/bin/env python - -""" -despan.py -Pandoc filter to convert all regular text to uppercase. -Code, link URLs, etc. are not affected. -""" - -from pandocfilters import Str, toJSONFilter - - -def despan(key, value, format, meta): - if key == 'Span': - return [] - - -if __name__ == "__main__": - toJSONFilter(despan) diff --git a/sysadmin-doc/tools/headers.py b/sysadmin-doc/tools/headers.py deleted file mode 100644 index 59c343f..0000000 --- a/sysadmin-doc/tools/headers.py +++ /dev/null @@ -1,17 +0,0 @@ -from panflute import * - - -def increase_header_level(elem, doc): - if type(elem) == Header: - if elem.level < 6: - elem.level += 1 - else: - return [] # Delete headers already in level 6 - - -def main(doc=None): - return run_filter(increase_header_level, doc=doc) - - -if __name__ == "__main__": - main() diff --git a/sysadmin-doc/tools/import-odt.sh b/sysadmin-doc/tools/import-odt.sh deleted file mode 100755 index debbc76..0000000 --- a/sysadmin-doc/tools/import-odt.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -pandoc --filter despan.py --filter headers.py $1 -o $1.md