From 4501ce500feb964218d819a92cfa324eb43fc786 Mon Sep 17 00:00:00 2001 From: Nicolas Ho <148333730+NicodeH@users.noreply.github.com> Date: Wed, 3 Sep 2025 11:13:07 +0200 Subject: [PATCH 01/69] Rename README.md to README.adoc --- README.md => README.adoc | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename README.md => README.adoc (100%) diff --git a/README.md b/README.adoc similarity index 100% rename from README.md rename to README.adoc From b901e4774169307368d7d0b7f51f12331362e6b7 Mon Sep 17 00:00:00 2001 From: Nicolas Ho <148333730+NicodeH@users.noreply.github.com> Date: Wed, 3 Sep 2025 11:51:45 +0200 Subject: [PATCH 02/69] Update README.adoc --- README.adoc | 159 +++++++++++++++++++++++++++------------------------- 1 file changed, 84 insertions(+), 75 deletions(-) diff --git a/README.adoc b/README.adoc index 068e210e7c2..f1f9bc55398 100644 --- a/README.adoc +++ b/README.adoc @@ -1,75 +1,84 @@ -![StreetComplete](.github/images/feature_graphic.png) - -StreetComplete is an easy to use editor of OpenStreetMap data available for Android. It can be used without any OpenStreetMap-specific knowledge. It asks simple questions, with answers directly used to edit and improve OpenStreetMap data. The app is aimed at users who do not know anything about OSM tagging schemes but still want to contribute to OpenStreetMap. - -StreetComplete automatically looks for nearby places where a survey is needed and shows them as quest markers on its map. Each of these quests can then be solved on site by answering a simple question. For example, tapping on a marker may show the question "What is the name of this road?", with a text field to answer it. -More examples are shown in the screenshots below. - -The user's answer is automatically processed and uploaded directly into the OSM database. Edits are done in meaningful changesets using the user's OSM account. -Since the app is meant to be used on a survey, it can be used offline and is -economic with data usage. - -To make the app easy to use, quests are limited to those answerable by asking simple questions. - -* See the [latest release notes](https://github.com/streetcomplete/StreetComplete/releases). - -## Screenshots - - -## Download - -[Get it on Google Play](https://play.google.com/store/apps/details?id=de.westnordost.streetcomplete)[Get it on F-Droid](https://f-droid.org/packages/de.westnordost.streetcomplete/)[Download APK from GitHub](https://github.com/streetcomplete/StreetComplete/releases/latest) - -## Quests - -There are quite a few different quest types now and more will be added over time. -You can see a community-managed [list of all quests in the OSM wiki](https://wiki.openstreetmap.org/wiki/StreetComplete/Quests). - -## FAQ - -You can find a list of [frequently asked questions in the wiki](https://wiki.openstreetmap.org/wiki/StreetComplete/FAQ). - -## Contributing - -This is an active open-source project, so you can get involved in it easily! -You can do so **without any programming or OpenStreetMap knowledge**! Just choose a task that you like. - -Here are a few things you can do: -* 🐛 [Test and report issues](CONTRIBUTING.md#testing-and-reporting-issues) -* 📃 [Translate the app into your language](CONTRIBUTING.md#translating-the-app) -* đŸ•”ïž [Solve notes left by StreetComplete users](CONTRIBUTING.md#solving-notes) -* 💡 [Suggest new quests](CONTRIBUTING.md#suggesting-new-quests), or, even better, [implement them](CONTRIBUTING.md#developing-new-quests). -* ➕ [and more
](CONTRIBUTING.md) - -Also, if you like StreetComplete, **spread the word**! ❀ - -## License - -This software is released under the terms of the [GNU General Public License](http://www.gnu.org/licenses/gpl-3.0.html). - -## Sponsors - -nlnet
-The **NLnet foundation** sponsored development on this app in four individual grants with funds from the European Commission:
-- A grant from 2025 will allow Tobias Zwick to finish migrating the app to a multiplatform, so that it runs also on iOS (see ticket) -- In 2021, a grant enabled Tobias Zwick to work about five months on the app - most notably, implement the overlays functionality and measuring with AR. -- In 2019 and 2021, Mateusz Konieczny each got a grant to work on StreetComplete with a focus on improvements on UI and data collection -
- -GitHub Sponsors Liberapay Patreon
-Many users are currently supporting this app through GitHub sponsors, Liberapay and Patreon. If you like the app, you can join them â˜ș to support the continued development and maintenance of the app.
-
- -JawgMaps
-Since mid 2020, **JawgMaps** provides their vector map tiles service to StreetComplete for free, i.e. the background map displayed in the app.
-
- -## Past Sponsors - -German Federal Ministry of Education and ResearchPrototype Fund
-Within the frame of **Prototype Fund** round 15 (March 2024 to August 2024), the German Federal Ministry of Education and Research sponsored Tobias Zwick to work on StreetComplete for iOS (see [progress report](https://github.com/streetcomplete/StreetComplete/issues/5421#issuecomment-2332402123))

-Development on this app was also sponsored in round 8 (September 2020 to February 2021) of the Prototype fund, with focus on collecting more data points and on general improvements of this app.
-
- -OpenStreetMap foundation
-In August 2020, the **OpenStreetMap foundation** funded the development of Map Maintenance with StreetComplete within the frame of the microgrants program.
+= SAÉ 5.01 Dev AvancĂ© G1A-1 +:icons: font +:models: models +:experimental: +:incremental: +:numbered: +:toc: macro +:window: _blank +:correction!: + +// Useful definitions +:asciidoc: http://www.methods.co.nz/asciidoc[AsciiDoc] +:icongit: icon:git[] +:git: http://git-scm.com/[{icongit}] +:plantuml: https://plantuml.com/fr/[plantUML] +:vscode: https://code.visualstudio.com/[VS Code] + +ifndef::env-github[:icons: font] +// Specific to GitHub +ifdef::env-github[] +:correction: +:!toc-title: +:caution-caption: :fire: +:important-caption: :exclamation: +:note-caption: :paperclip: +:tip-caption: :bulb: +:warning-caption: :warning: +:icongit: Git +endif::[] + +// /!\ A MODIFIER !!! +:baseURL: github.com/HugoTHOLLON/StreetCompleteSAE_S5 + +// Tags +image:https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg[License: MPL-2.0, link="https://opensource.org/licenses/MPL-2.0"] +//--------------------------------------------------------------- + +toc::[] + +== Equipe et rĂŽle + +Projet rĂ©alisĂ© par: + +|=== +| Nom | RĂŽle + +| https://github.com/HugoTHOLLON[Hugo Thollon] | Scrum Master +| https://github.com/NariaReynhard[Naria Savary] | Product Owner +| https://github.com/ElPoraz[Pablo Marquet] | DĂ©veloppeur +| https://github.com/RaphaLLamothe[RaphaĂ«l Lamothe] | DĂ©veloppeur +| https://github.com/NicodeH[Nicolas Ho] | DĂ©veloppeur +|=== + + +Tuteur enseignant de l'Ă©quipe: mailto:jean-michel.bruel@univ-tlse2.fr[Jean-Michel Bruel] + +== Besoin du client +Street Complete est une application Android ayant pour but d’amĂ©liorer la qualitĂ© des donnĂ©es d’Open Street Map avec des enquĂȘtes sur le terrain. +L’application fonctionne avec une partie de gamification et invite aux modifications sous forme de quĂȘtes thĂ©matiques. + +== Objectif +Le projet aura pour but de contribuer au projet open-source en dĂ©veloppant une ou plusieurs fonctionnalitĂ©s demandĂ©es sous forme de tickets et d'ĂȘtre intĂ©grer au dĂ©pĂŽt principal. + +== RĂ©alisations + +Cette section regroupe tous les documents liĂ©s Ă  la conception, au dĂ©veloppement et Ă  l’utilisation de l'application, organisĂ©s par catĂ©gories principales. + +== Travail d'Ă©quipe + +=== ODJ/CR + +|=== +| Sprint | Lien | Retour | Note +| N°0 - Semaine 36 | [A remplir] | [A remplir] | [A remplir] +| N°1 - Semaine 37 Ă  38 | [A remplir] | [A remplir] | [A remplir] +| N°2 - Semaine 39 Ă  40 | [A remplir] | [A remplir] | [A remplir] +| N°3 - Semaine 41 Ă  43 | [A remplir] | [A remplir] | [A remplir] +| N°4 - Semaine 44 Ă  48 | [A remplir] | [A remplir] | [A remplir] +| N°5 - Semaine 2 Ă  4 | [A remplir] | [A remplir] | [A remplir] +|=== + +=== Registre de tĂ©lĂ©travail +- Exemple : **06/11/2024** : de 9h30 Ă  12h30 +- etc. From 2ca08555fa0ba83f0230f471d2c2f5fba9d64e07 Mon Sep 17 00:00:00 2001 From: Nicolas Ho <148333730+NicodeH@users.noreply.github.com> Date: Wed, 3 Sep 2025 11:56:00 +0200 Subject: [PATCH 03/69] Update README.adoc --- README.adoc | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index f1f9bc55398..9c70135e80a 100644 --- a/README.adoc +++ b/README.adoc @@ -52,7 +52,8 @@ Projet rĂ©alisĂ© par: |=== -Tuteur enseignant de l'Ă©quipe: mailto:jean-michel.bruel@univ-tlse2.fr[Jean-Michel Bruel] +Tuteur rĂ©fĂ©rent de l'Ă©quipe: mailto:ludo.pradel@protonmail.com[Ludo Pradel] +Tuteur client de l'Ă©quipe: mailto:yahn.formanczak@univ-tlse2.fr[Yahn Formanczak] == Besoin du client Street Complete est une application Android ayant pour but d’amĂ©liorer la qualitĂ© des donnĂ©es d’Open Street Map avec des enquĂȘtes sur le terrain. From 933971a4fc7916c7d5090f81ea9f3d0a53cb7735 Mon Sep 17 00:00:00 2001 From: Nicolas Ho <148333730+NicodeH@users.noreply.github.com> Date: Wed, 3 Sep 2025 11:58:57 +0200 Subject: [PATCH 04/69] Update README.adoc --- README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index 9c70135e80a..2df0d769142 100644 --- a/README.adoc +++ b/README.adoc @@ -52,7 +52,7 @@ Projet rĂ©alisĂ© par: |=== -Tuteur rĂ©fĂ©rent de l'Ă©quipe: mailto:ludo.pradel@protonmail.com[Ludo Pradel] +Tuteur rĂ©fĂ©rent de l'Ă©quipe: mailto:ludo.pradel@protonmail.com[Ludo Pradel] + Tuteur client de l'Ă©quipe: mailto:yahn.formanczak@univ-tlse2.fr[Yahn Formanczak] == Besoin du client From 2c2511ac6dbee507f8b3c8860569e403b0c90c06 Mon Sep 17 00:00:00 2001 From: Nicolas Ho <148333730+NicodeH@users.noreply.github.com> Date: Wed, 3 Sep 2025 15:01:59 +0200 Subject: [PATCH 05/69] Update README.adoc --- README.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 2df0d769142..285f2eb489f 100644 --- a/README.adoc +++ b/README.adoc @@ -81,5 +81,5 @@ Cette section regroupe tous les documents liĂ©s Ă  la conception, au dĂ©veloppem |=== === Registre de tĂ©lĂ©travail -- Exemple : **06/11/2024** : de 9h30 Ă  12h30 -- etc. +- **03/09/2024** : de 14h15 Ă  17h15 +- **04/09/2024** : de 9h30 Ă  12h30 From 523de1d77f12c4b66a5116a1e93c607d9e194c97 Mon Sep 17 00:00:00 2001 From: Nicodeh Date: Thu, 4 Sep 2025 10:46:57 +0200 Subject: [PATCH 06/69] Initialisation des docs --- docs/doc_tech.adoc | 0 docs/doc_user.adoc | 0 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/doc_tech.adoc create mode 100644 docs/doc_user.adoc diff --git a/docs/doc_tech.adoc b/docs/doc_tech.adoc new file mode 100644 index 00000000000..e69de29bb2d diff --git a/docs/doc_user.adoc b/docs/doc_user.adoc new file mode 100644 index 00000000000..e69de29bb2d From 9007f3fd705d23f50b39751c888ce09a6714c75f Mon Sep 17 00:00:00 2001 From: Nicolas Ho <148333730+NicodeH@users.noreply.github.com> Date: Thu, 4 Sep 2025 10:57:02 +0200 Subject: [PATCH 07/69] Update doc_tech.adoc --- docs/doc_tech.adoc | 63 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 63 insertions(+) diff --git a/docs/doc_tech.adoc b/docs/doc_tech.adoc index e69de29bb2d..307cbb8be1e 100644 --- a/docs/doc_tech.adoc +++ b/docs/doc_tech.adoc @@ -0,0 +1,63 @@ += Documentation technique de l'application android +:icons: font +:models: models +:experimental: +:incremental: +:numbered: +:toc: macro +:window: _blank +:correction!: + +toc::[] + +Date : 04/09/2025 + +Equipe : 1A-1 + +Client : Yahn Formanczak + +Projet : Street Complete + + +== Description du projet + +=== Équipe + +L'Ă©quipe Ă©tait composĂ©e de cinq membres avec les rĂŽles suivants : + +- *Hugo Thollon* : Scrum Master +- *Naria Savary* : Product Owner +- *Pablo Marquet* : DĂ©veloppeur +- *RaphaĂ«l Lamothe* : DĂ©veloppeur +- *Nicolas* : DĂ©veloppeur + +=== Contexte du projet +A REMPLIR + +=== Objectifs du projet + +**ProblĂ©matique :** +A REMPLIR + +**Objectif :** +A REMPLIR + +== Fonctionnement du projet + +Pour des informations supplĂ©mentaires : +A REMPLIR + +== Description des Fichiers +A REMPLIR + +== DĂ©pendances + +Le projet utilise les dĂ©pendances suivantes : +A REMPLIR + +== Instructions de DĂ©ploiement +A REMPLIR + +== Maintenance + +Pour maintenir le projet, suivez ces Ă©tapes : +A REMPLIR + +== Conclusion +A REMPLIR From 279d069b494a791e2ecf09cb208c7aacc853a788 Mon Sep 17 00:00:00 2001 From: Nicolas Ho <148333730+NicodeH@users.noreply.github.com> Date: Thu, 4 Sep 2025 11:03:34 +0200 Subject: [PATCH 08/69] Update doc_user.adoc --- docs/doc_user.adoc | 68 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/docs/doc_user.adoc b/docs/doc_user.adoc index e69de29bb2d..5496bfe6519 100644 --- a/docs/doc_user.adoc +++ b/docs/doc_user.adoc @@ -0,0 +1,68 @@ += Documentation utilisateur de l'application android +:icons: font +:models: models +:experimental: +:incremental: +:numbered: +:toc: macro +:window: _blank +:correction!: + +toc::[] + +Date : 04/09/2025 + +Equipe : 1A-1 + +Client : Yahn Formanczak + +Projet : Street Complete + + +== Description du projet + +=== Équipe + +L'Ă©quipe Ă©tait composĂ©e de cinq membres avec les rĂŽles suivants : + +- *Hugo Thollon* : Scrum Master +- *Naria Savary* : Product Owner +- *Pablo Marquet* : DĂ©veloppeur +- *RaphaĂ«l Lamothe* : DĂ©veloppeur +- *Nicolas* : DĂ©veloppeur + +=== Contexte du projet +A REMPLIR + +=== Objectifs du projet + +**ProblĂ©matique :** +A REMPLIR + +**Objectif :** + +Validation technique : +A REMPLIR + +ExpĂ©rience utilisateur : +A REMPLIR + +Affichage et contenu : +A REMPLIR + +FonctionnalitĂ©s clĂ©s : +A REMPLIR + +Robustesse et sĂ©curitĂ© : +A REMPLIR + +Alignement avec les objectifs de la communautĂ© : +A REMPLIR + +== Fonctionnement du projet +A REMPLIR + +== FonctionnalitĂ©s +A REMPLIR + +== Support et Contact +A REMPLIR + +== Conclusion +A REMPLIR From b9a42608c59f495883e617e4f33462e320cde0af Mon Sep 17 00:00:00 2001 From: ElPoraz <150593346+ElPoraz@users.noreply.github.com> Date: Thu, 4 Sep 2025 11:29:28 +0200 Subject: [PATCH 09/69] Changement du badge de licence --- README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index 285f2eb489f..ff1f62c9179 100644 --- a/README.adoc +++ b/README.adoc @@ -32,7 +32,7 @@ endif::[] :baseURL: github.com/HugoTHOLLON/StreetCompleteSAE_S5 // Tags -image:https://img.shields.io/badge/License-MPL%202.0-brightgreen.svg[License: MPL-2.0, link="https://opensource.org/licenses/MPL-2.0"] +image:https://img.shields.io/badge/License-GPLv3-blue.svg[License: GPL-3.0, link="https://www.gnu.org/licenses/gpl-3.0"] //--------------------------------------------------------------- toc::[] From 5ba5e00455aa119ad4e1f530fa09c8ffa6c37683 Mon Sep 17 00:00:00 2001 From: ElPoraz Date: Thu, 4 Sep 2025 12:38:17 +0200 Subject: [PATCH 10/69] Adding cr and odj folder --- docs/ODJ-CR/test.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/ODJ-CR/test.txt diff --git a/docs/ODJ-CR/test.txt b/docs/ODJ-CR/test.txt new file mode 100644 index 00000000000..e69de29bb2d From e877446f26e63b76d1efeaca0c0cf0b13009aa49 Mon Sep 17 00:00:00 2001 From: ElPoraz <150593346+ElPoraz@users.noreply.github.com> Date: Thu, 4 Sep 2025 12:39:38 +0200 Subject: [PATCH 11/69] Ajout du lien vers le CR --- README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index ff1f62c9179..05109a2e627 100644 --- a/README.adoc +++ b/README.adoc @@ -82,4 +82,4 @@ Cette section regroupe tous les documents liĂ©s Ă  la conception, au dĂ©veloppem === Registre de tĂ©lĂ©travail - **03/09/2024** : de 14h15 Ă  17h15 -- **04/09/2024** : de 9h30 Ă  12h30 +- **04/09/2024** : de 9h30 Ă  12h30 https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR.pdf[Lien vers le CR] From 8cb190ac03e5073d30fb2c51a50434f712f8bd0d Mon Sep 17 00:00:00 2001 From: ElPoraz <150593346+ElPoraz@users.noreply.github.com> Date: Thu, 4 Sep 2025 12:45:19 +0200 Subject: [PATCH 12/69] =?UTF-8?q?Correction=20du=20lien=20vers=20cr=20de?= =?UTF-8?q?=20t=C3=A9l=C3=A9travail?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 05109a2e627..33181c49fbc 100644 --- a/README.adoc +++ b/README.adoc @@ -81,5 +81,5 @@ Cette section regroupe tous les documents liĂ©s Ă  la conception, au dĂ©veloppem |=== === Registre de tĂ©lĂ©travail -- **03/09/2024** : de 14h15 Ă  17h15 -- **04/09/2024** : de 9h30 Ă  12h30 https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR.pdf[Lien vers le CR] +- **03/09/2024** : de 14h15 Ă  17h15 ↮ +- **04/09/2024** : de 9h30 Ă  12h30 → https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-TT-04-09-2025.pdf[Lien vers le CR] From 4c9b2c4929ccdf789549690401bba8d2b5696aae Mon Sep 17 00:00:00 2001 From: ElPoraz Date: Thu, 4 Sep 2025 14:49:33 +0200 Subject: [PATCH 13/69] Ajout du cr de tt du 04 septembre --- README.adoc | 2 +- docs/ODJ-CR/CR-TT-04-09-25.pdf | Bin 0 -> 54522 bytes docs/ODJ-CR/test.txt | 0 3 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 docs/ODJ-CR/CR-TT-04-09-25.pdf delete mode 100644 docs/ODJ-CR/test.txt diff --git a/README.adoc b/README.adoc index 33181c49fbc..f2805ad188f 100644 --- a/README.adoc +++ b/README.adoc @@ -82,4 +82,4 @@ Cette section regroupe tous les documents liĂ©s Ă  la conception, au dĂ©veloppem === Registre de tĂ©lĂ©travail - **03/09/2024** : de 14h15 Ă  17h15 ↮ -- **04/09/2024** : de 9h30 Ă  12h30 → https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-TT-04-09-2025.pdf[Lien vers le CR] +- **04/09/2024** : de 9h30 Ă  12h30 → https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-TT-04-09-25.pdf[Lien vers le CR] diff --git a/docs/ODJ-CR/CR-TT-04-09-25.pdf b/docs/ODJ-CR/CR-TT-04-09-25.pdf new file mode 100644 index 0000000000000000000000000000000000000000..11f96156f3730fded90c3587eb5f1fde7a069b94 GIT binary patch literal 54522 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 Date: Fri, 5 Sep 2025 09:24:46 +0200 Subject: [PATCH 14/69] Add the Devis to the docs --- docs/Devis.pdf | Bin 0 -> 33691 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/Devis.pdf diff --git a/docs/Devis.pdf b/docs/Devis.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4dd57914f200d55a40ac03586eb858a808354901 GIT binary patch literal 33691 zcmb@u2O!m7_&-i$j|L*^S|#(k)1~aaGa`H4?7dS_l(M4iQdVSSW>#cGMj6Q{iHeMj z$|ip2-rG`rzaPK<@87uYec$){b)J2m^PK14(@{_o785~G@hyGWcuOS)fkND@9jT5U zr4rQ-aK}PK<*mG}oZalGL{DHny&T+JA)>guMRly~uwD=txLub@RL|Sf$HrUV6N}Y# zbMuD430F0(Je^csPq{%5gwGmQu67XqQ=Y;~x<>$<1J)1gspE+~h4sX`+5j*l{x&Ho zDy*w5js_I?{F4?3Z)YroUjggu-~}F*_rzLxyLm$R<*i(Ot-u8xPd8g18|-ga@V5YZ z6|B5*4@$tGFeDTMMMBXqI1DZbg&qd~z>}J8w*PgDIyS)1&C}Kkz{n~GD7h%Q*tx0- z$;m2e8({UcoL%jNpa4kL$J-u9lD>+z21La`*+5b62-PocaH9Ij4PLT%5mJe&I{;)8 zG>&;Qz?qwmt2adKw+C_3-2UKpaRUU1iTL-&b*z9e@tS~OaF=k3`f)`I>+cO%fgpZI z$LZz=I!<9&TL@4l7U|+6sH1}yz>XJBPOJa{YprAVBS{Q%N%aB;v51f&n7rsd;;e{Uj&cYlZ&-n}7WIIq@) zh~e!WB8InHh#1~hAuzn&ATYe1ATYeNAuvKTfe}z(1QZwn1x7%D5l~J#K@d<71QY}T1wlYT5Ks^V6a)bUK|nzeP!I$ZBmo6U zKtU2vkOUMY9>t96cfH^(_lG={fidET_)T$m8~$;F2G-Ti+a7{Iz+pe4^>>rUxv#Z1 zKFTP$c>!VdOAlt2O$Obqs(c=FdConVEE9fv@pk9jQqa*Y z-@uu|p|k5nGvy{hTb;8Z^o160-&FaOu{WJAe{cG}b1t+_gv)&OC#-F=(d!^eb^l_xDFNHWD zXd7iYeZ!d5@9Q0nP&oElg0>XiT&>aZuC)kH$`mBB-Sp-w?-AN{VL^WU6%!C9JE`m;5yH!F9Kahch3R zM>&mX4|i5@LJvvV($FM15Z4uJ+_%-JuM^sEO14ZWp?4#C<2y$Zm3w18e*`%sjTc^AQ6d)dv!#ii5CT4qjF~XnIs7$`7?%m?1mvm#vt2 z^V*3VEm7xlmDQE2XTClew^>;hdwA}^X6^2vW0(5r(N~Ll%J!S*u$=}iKMaTIb3fiTRBd|?s3gnd{XOXv}c5^C&n$lRpGFLQ^uTxmWYAR zmweA@^i{Fc{(Om5MRmHpj5npWj`z;D+o;UXJh^EU|1|Nqlb9^uicAmLO4iake;`$P zo8IMNy`zuzne9&FK6QOu%Bj^9r9?%(rMPy_^Q*QRUFf`^vT=LpI)r&61FbU`IwRA> z{8r&`Q9R2h>sVr~s&Zp(?=J@G6;b*lv@>$Gx22*U$@to6@@`2u(ssP4?oDye)n2Pj z7n8ZH@~u?J(0W$ENe&ZQMH&0>)inc~YOA&gj|xgX9&dS-Q1{bKL()^LUz_dI=JE?H z?z5|m5j(5Pcsi2noiBDq@qQ zPH8^WulK$zZN{Vrw<73>=9^FE%iWI6)R27g$qx1*ai6Z`?qNL$Y@a3v)&Bj4If2$1 zdg8Bnat1T%W1gye9#f%M*1Hm;9@kqbz+-E=Cc+c<&`P&diYG4nJY!$&VFQ11nV>}U zNxGA!*<g~k@E*6dV%56v9L3`E^#baDO%u|W! zv3g_!OEIv=OJ%E~L#L!k3QSBhkEDgNUGpH*F_V2oF_?Yh2GNv3w~=4{z`|_U`2z^+ zhS9yT=jWXbxJD|4U&{BmJ%(hvAKlG(nfJVVuK~^Mon#VI+dg}_<&+i8xL^aN2U(Q6 z!sBuldOD3^;=4K@AJ7=R@I|9#JP0DhJ(aKyvGy=4RigOddUDYxmp#IlFKYxg8BEcv za9F!&X+VyZB2nU*vUjT2e2)ZmkB|cWsa*`vC=#hvdktoP9?8ilxy~qtde+rr zZnngq{ZBzW!-oYY&BOa7Grbv@9#~n&D|yY?wvllxti&Y~F+Qt3{)w_(VsH4EaEw~d zwOv9A6lOfa)50nPp=*JnBBM@CV+j%J#YWE2@4}_p9qHBi0>URo$$HeRA~DoD`~l&w z&wA}1q+I#@ZJwH0zOiPHqe4}T>f?8NV_sWM3Xs|FcdnAFx*0K&xTrh2Hr6l}MJAYQlzWqH-SVJ95-Eq-Q9tgI!rV}-zM}MHBM%=g_!jXu7K~L3ta@5SUEt=rci!hpB0n#2pBIHXqm#a1H#143kZIPL z(}Gvb@4#F$6%MSN``8OfCU(+oTx;nHrJT+;CJV*x4G+{Wk@#}1$-To!dY7{m+x7h~ zSl$P|#xkZ(<{Kh;E;Kz{L`>8h9+PVu)hDp1{K){ky4oS)D~0OTxTYG3YDQPF)hGT6!*d z8`76cciAma3>i({ybakeuarL)eI%QVZ$H)Qsf*knBu&yORz+S+6r@_nWuA{Hc#dus zv%h86oK}`|1v*jc@cdN;ceaDI9E083Y17J>3sjQ)?>S@IrP3`n7}#Wb+T1N`tM;%N z9V$9`QPDGfosLc+z)XO8d`3WQm@_KQpYe_g#=;zZIdgI`Lv)^o+VZr%sKPAi~M?ktn^?GN{GxgJfx z&J;yrAFZ{}H_(<#n>|TpZ4-$KD?R$mC*8SQD5w3%G|wQba-^+_ks#0DK94IWm3b}F zWG*Fk<;hg27?)|;?qlI39TCb!=Ql8Rr|d!R9ZCol6ny;pmHR}X!Tk$t#a10x-ComS zA00}B(b@&x<+{^viittaOt6`Fd?^ zUZ*KQ3*sp4<+%@ zQ%qi7zejhN4>H|bDa`-k^h$BOtiIZLO4+%XM9Qvw11@c1G^?ZPi&sKEh&x)$j{WBH zzB7s@ovh@+7T&!Jd4Yz(Iicd%n$8b~Zyu;!7!IN@-L=bWV0S2eT{KXUdQXT&Oi&Q&ta74s#K<1X++b?^G&0Q7qrUjG`cKi1nDDH3*le& zmlID-9a}eZ^R~$dpKL!QU@G==g&Ur{sVc`c z8$UAnk@c)m{6sdbY%`CeUhRtY7(}qc9Vy?v^4o9Ibygp)=?H zSFsN#&cq~l%s;e8HStoGJa;#+Pw;sF7*=n1DGN^fUFx?qjl8OI(&^+ti#fSGV~2kV75K9)$u zho6h1JHE&0x=CHPA8f9g!zqpILKf*qc-keQKw92-39G%~5H^XDn^Q81Z?5aVJ0g5I z?QHZZ(vZ-*6iKQYw^Wq!T+zDAGId(sWM$e%jx33(uo9wKwhJZ8>@s+Ldmo zg3~)H%y|w9vXX~0q*6Ei+~RIzEI&_aVR9PK&&t2P+>X5}H?O&ZlKZM`wI`7CefGNm zgVVB>oel$0@DP?&XlXfYc%@WGx`X1hH7)Twox{xNzI$zXY>sqqRf9u_LXJDIiz-al zD9S;;c=kzL8-I2#n{&5;Grd8yt^y=u-)BfsO-|C@<-Ql|n)Cmj-E5x7ZaIG>3LV_X0n?I^MS5{+m_Y1@pdRZboUsWfjx6@3^>+udbn+@IdS_!2tqJ9CtC4@dH1PNyf4EPMaYPQ(KUI)3# zXGl4EMoPGdykS-U4r3^qi-Xp1IVmA8<7tF(RS;L%WX)551~-dUnP)X$SYBd?%?07r znWPlfiW+@ku?G%c8(^7FgbG?45~+qm3@^T63Fav|wyW{VU426h@gw=A3`i0|bbCQB z-y@&VxMG1_TO9*Jm^1nv1?+bno(8{=JPP476iZG@XUsS=`+?s+%egqzr$0&saw&7< zc3YHT2Bc)!{;Faa=A8pw!^!>Bbt1)#nH?%I>=$jzqOZQNGu%WkGbtGzt&7S|(QTv% zAuYYvh~`|rmprew>hOep%)jG!_Dgj3y95FRtSA_%?9tErJa1V1m;PO>kmU1gqM`S9$42Zwmg$}${7 zIHN0XG4feQh-oFzBe*=fZz{=*2XHuW^Qxz%*JKL7m#*=N@=MKeM^fxwAD*P@q){Jj zBxhzHX~mqDvDx?0;c})#Q9-kONrtpd5zX$W-5Y8*HAu2Xa~m8hSAJdttDfgt zY6`W3Bu$F?VOkiC?MQqsDXiS6f%S-S?3P|TdoX&}FcQm1`OUEJYL>8QzbiS;+T7<#8551!XKMQhyb5D}NMI)5z;MSbz| z!9f+hCZ7whDa|_wQ~M__boY~Rhzx;Pb6I6>z|<6|PkN|5%Si;wyVp zJFfFVe$@GX6;1IJ{O|OGayH~B0*!{Dl+Z{t6orIAQ3woF5ramckthTTgAzk2q7k^O z`0wN~Py_~vL?S?CdmFc)5ck`_xN_ou56mwH(Q&r2!9tX=Zl1Vp9yw1dFE6YsZs%ni zxY#yuTyby*;Gi&zhC(57&Q^A=RyL47F=5*4d!QYL9h^v*SgO!Mvm9Ld&fDG2#N5sd~!B^ND?5)5=PI>+*1;n_1Ji2=g{riL>*V0=KtKTHpy00Zw4D1;Ic zhEPC=ArujCq%8O;2kt=POq6g3QWku`Am9kOKgA06Sbmu(zWD#&gz@9|>?FXRp%>QO z8|z~2i3QsSFyx<1!?&3eeoNth1y>ORm2}{FfK@aKg#l&)MJdYRtO0KkFa_{a3^0K6 z&i}e+o2$UL84rF_<9{VY2eC+N_%_g;1PwqdeshCBD*~7c5-kp72fPu)FfkxW7(PzH&@k`~FbXsrT$Km+!SJz6 z9w<*-77D}sX&jhsr0gWb08$7WEO;e}14SZngX2_*2AjViNT5In1)u*M3b$$Tn<4Hb z^nkJOyEp{4;rL(;hbaIbQ3C$~gZ~p-V%tI|egkUO5Lu{KB<9FJ2K=${!7x)bDBM^6Gp??v&E#Bd`?skCteRc;(?S2KIoLKw z#Ba~;0P~k4;%9gS&>!kw6vMW;9)8z%2k1Xtk6+Km)5is(Y2^jBGyjw_Y@5U3w~}{& z{mbG0QX6cW!{IljcL2D};r^*M*fxj5?{e<|_kVXd*fxj5Z<+4^^EZdXC1(G#+P1kH zekcCF(Zzqcn?7iWaQ;hQ+uRJlufGG(UvBnSz5(0jX7~<)9RU7vGx5I?c-S@v!#5l3 z0P&ZDVNlS&LL+>egW)?Dc7XYtgTe6WG7=<1Kxbguh9boOUV6Z{IU0V!^k1Xk(keJ% zu>)qb9|;&?UPTd72rzf!(|g=pj+@1C^X#8FDGDqHw$F|z1w!r$12ZyiAqD1U1>BMW zm&*d2-x2WX$@gUyZe)zY|DGUXT`X=7l#7UncwaJ$qz1h#L~`OirY zzTF3RGCSks1F~_z9Z0ai2>68|OdJ=Q|K=H&_kg(zaE#LyuJH}z?YQM5pbKbB35~`{ z5)J!#2X3wd=^07^m$L(YaP;H8#{hH;fe-LK&FJCw+Fy9A%U+dmjl9M}WSUtuUT z!7_l|5VZZXbb+TCP>O&7+Qd*e>l8!bxdwOQtoFO-178!zJqzx@@dd8qGhnd%|Ka7} zx$g@OnE3A_(X&@|4@afJq) zZUIH$_16;cZ@bzywcuO7b|OVWH2aPXxWm~kF1~>1gBzPLCU_;-9|})DxEo*W0E<+d zJOIr&ANl1&KbNn6+5Wb<1>cwU-!$^;Ie@~Aw+~ox+xkFkoE<=$AgFKrIkm#K&4l%lbdD5ZmS}d{f*HEE_A(EGsIf2@%x-jc!)Xzpdc#-D*GX`_)V*s*C{bonWC1 znq!sG5OG5G^=sjW?`!+Yp`JeHGjQ-`g$0pyGtg>^BJ9U^{{Mo+$ha0!QdhAinG8Ul2GZcLMP}tNs@R zj=-HjeAoQHAaDf!?+^-jaehykb-rutH}k}=vv&eP&;!s2LFvCk;0W9S1feAsXGwoU z{B6O1)YA3wj1bys{|)iqhD?C?p63383jDHoCyad0YXJly3IAoC=>N7(0u?{4^KXd% zwoU@XPwV^};=iqv0P)j0|AzQ)>m)$@w9daFc4(c1mS?I5#8M=`V4L@6b94t>t(s{({({ zbrRar{|&K2>m;z<+4xe}Mx%@;ie2+iG#`?!R@^<7Q7lr<|1+7T*XjDvSRksO^q*)dN$$ zurAil$Jxpg6op+uo4W%z^(3ll3$i2!?*L&i$tqyIY{2HMm8&=Iad1cigAYky-qv?B zaCN|S#zQcK5c8V>{p|_=MV8zjWXZWX+wPnue1O_c6CvRIM$>=07Ra%5z>yjdOTas@ z`AXQ)fS~Zv`}>~3_j>*JQu^;Tc>HYjL$&`-TK*aUFSzeTYzPWZG6aR6g&`9yaw(-jyQn>@xM9v+u;d@hkM1DvZsSP?kFAxPvMT-;^)~Ec~u1* z3Qn^yaP&=8LElYTRYB9r{g=bwFY5(>Vyg@OEFtE*Eg9m@83A(w$Fy*z9>4=Qe1gP? zfHffs)J$=Qy+FSM3>@YX$B2Wd3XUI{zz|3gF)=haZ3KsjiJ;MFP*;bcP~aLI?7+ZL zXb~}SG$;q)&Le>fNc8ucsKCi0lb<(&??L(81i*@5V4%`4tVrh(N*4vKTna14cr^z?ev}A7i3n;v!H`q(J}+LW`g=Fbq&P6%_af z9B_gGD>9@Qcpibfj)8(qdYEFaV3dWlVli3<^EpsY9Sq z;9wjA$K%gyNR*fe6dd|NLEvyO9ttO6B#?zTQVguYe)0lPfl&h!h9O}``iYdGMKAjw}SNMIenIFKkRpzH6l z0}A-AHYD`B6mbd%Eg2>VAQ-%ea2J4ogAxPe7i&Nfpmzj?0Z)sG<0OOxd5Z~B93vu* z03`@BDhxQxW&-=65Zt*gQ3XSA77+^lEn~;W^&j!z`}r+UL)}3Sj@dO$w-6}JrMXo` zOktP+SC=RySNDAtwx#rvO(Hd#2*fU`$@4+dR(|*Hlf-hgJYPR(GVw)Ug0*U8US3aj z%PL*4;-<40sHYJ4pn+NxJVpKH~3Zt$TS8Bb_D z3?vz@iLNvCF1OC8iF!}JFtRIAsJ-fZ0_8X3t8PB@rj~;>h>;7lU)M77?V9_K?lOG3 zx7vY>#HpWH{Z1V0y~A+^#pcJ!LCb-8H5JeNX2c|)`wQH;HYn#2eSdIo>SfQY zR5=Oj>;?(G%ust}Z<%m}ZsCD&dXoZmx`~g48}py zO^GqI%SxKP#)B+QAGx)r!>qASEgfCCcekp&{FKSQHdU^ik<}vN(uW(bvE&>fPOift z)K&cA1z3%~dYi;%E7QD$xdXMF_r(9vTZH*L@BL@E19}A>148SsG~nO!?f*-#6NBRC zNh;BuMY~_#2VBwQXN&{33Nlj@;0PjMOAHORs31r zdr=^;iGdge{}n%>5CjrI7$1Vb0MAC_h5#)iB2e6DRKFfZqClJhp$Mle5IICZ^aT{- zoYn;SgErg+Fu9rh90If9RFb5PuT`=^7#&^vO_XVD=L2BqbryW4%cgY{i* zFkerIz7nz8Dt?xT+Az#k;evN}810?cFjb-#uVW&eU0fRwfXZn_be}7kMOuzo;&L*0Zd04 zU(q=!XC=yK>2c($+3mX`X8{Yp(; zmDTYtkHk%BKQux}0=K6gKsO+X(6Vv?zpdbZOvS;mQ#&u*VnP;|e1jAApd?K&p&tpk zH$)gzeMK-RkOP2hA0!+nfIZ^V2e>#$L#*6Yunu$`Tt(v( zo*(Rkm4yRn>I{JJ%Yt8#fa}}Q_O!)%;+7cvKb9EaqMnaCXaU2W-v(6uN=6AW>j&0< ziSpm!?Ejk_#lcjIpC2{AlitY6|bmBQ^3WatUe_R${cODWSnK zkR&;dLwg`;pm+F*Eb(rxyA=GTH87UTG$-~L>nOPMal@+MQ{vHdbO-mcABfBPlAZTJ z{({8ZR$b8Wjji=t%W{5iW^Q_QVwQy}C4z|_)2I{6Kb!D4S*;$;_m(0UMJ)5Icd*>c z?%DV-aaslOlM>mJ5KTu; zyQY|LPNeVD!P5bBqzvm%9Kc-gy`G!bk55Z^Ow(vWJ0!x>-@fb+Kr}rgvK5X z_Cf~-^!RvX_i=1JyU|EAVMFA+^ywAr$DYAB4x(4Y!F9F1ONcr6x3{Da9^$Td)m{gg zyq||o65UOdkn-ESU;RYeb%+>r{i~2uK;6^G_ZO$8S`w26&xI+uH8bx#fKw z=H4I?{2b-7Wp+DU?^{;mh<#n zu7M{@p_-OlLRLmr%k}xY;WA&IQi)Y_f6%7;a58_xdM?jj*$$>Iah+u-`Dlizh6w%Y zb@q%$;YwBEm#YL=c&J4huG$Wf= z9VYdhi`M+41}dR>77uqhhF; zFm(?rQK>>^6mp?qOUCKNiI#x&kYnndiyk^OA)D&X$4sQ39Nz`EBI^j<4c*Vwh`39_F_p%|BqKZzWgLHO zT17eTR5oQ*FMU7Yz!kI*^)@$BN9nuM;X9ddav?MW7^u9x91Md zT@R{=4!&sohDdUhafNxcJKkP+?Lu1ylir+;^vLNA?ppucYuFDIGk5sbq}CYMcIh<_ zWxY)8P#3ZyFKHiW{ABg~vF3P!mz7Azx4S3I(v-~#1C`zSwO`D=4017Y@UNdQ7ki!L z!sdFW%l}oJWs1$|;f2)dj)!d<8P(5pEt9PRCblwaS?|5w(l!uuTHG++;&hzvUz0Y@ z&nO?=s=D>9eA9R<(ST2UW9o{o&&w5$c$=2UTF>66;d{rhjq-Q+o-|$}izsA<`FA~T zAm07$t5<2+8urwJD(y-j^^w{S;yKS8#ct4?W^aKZ>KQK3m@6Ugz?QyN=-ks0=uN<$ zn!n?*$d}A=NA9lDxKjW|pXYk8&WUUv%5s=RWBYmI3zTJsfP_vzH2+Y3*10aR15eChVy=t?Tg6Yq}V-i^j(XFXp`4r^fr@T>fM9Iciwm z-dg+VK|R(PtBpQ4*|TxE)+`1m)_dR4Ql_UgH^)2`XY>$&}>hEtG5VZ-49bp|=9IP3S zT)krzGiaTB9P{aGuCtLBghCGnKl7!h19bI3?9ZoH;w{5~uq3)JN*wwNUkodIE8M3R}W?SFa~(jl$s{N*6A3 zM;0Z7@SVwJD~M7nxX&kkt7q2+tPuw7i|m5~|ROsnv7 zU+bA?-nFl$uZLWVbmU7vosyN8Y8n4x^V7>X`5tfV8J{QO>DHf`rihQragzv$zY~2# z6R9&36&&kO*RhJJP5EN2dgxrf#`kLkDKgxSY$J$}YBieMT z-61I9#Y&F@Uw44x19BZ>gPeDz%m^iyw!7I?9n;s(#9m95ZEfmQ-rIivwqCL^6Klgc z^F!yfvNxV!jT772#SJD`9j#Izl#379*!1qrYGSW8kMYA1x0JESTIGD!G8o);-XL<$ z@oq<){N(U#M|_ymOyQ|PY~xsoRc-8kfo5dh$2Aa zFUT3rHqo45sdKDjk;DKZ7hskNEj(R}dXQ0i`ifskcsm{AUF(hFjz}h|OXU>yF9#AJ z#z$4M=2XX@ARDt1hQT*eAxC9&rtkEcm+QIAJIY_wKlv!}-Tl?!5ZT~6 zulTzq?l1L{P~4Xi=?k-*A{OYei-J(uU%nty-%G*^+ZXxl5Ok5~z@$muqQjlt`U$%i zy<@1SE-1Ar1enCUDo>>I)aD{$zi>G6Y3M^?_1t%A_tuGwUu96A=7A?%pxe#EP?%Q} zTH|QFxL*m%RkUmdn&H^B{gH7$&s;XeZ|!%{kKLuxnZ^)j62amP9DBV!D+q>CW>l%!)JJkb(*EgpmE6sN&Fb)W)hL_xEw$2fx5! z-AVzXpip{P4U20R7Ov$vqYqb7qA!hW$h2_&}UlNy8 z4qC!i8Ent&JNPuGOC~{vgz=IBY`1Rf$(SQ#9O+5VeGW=9#|#EQ^1po$cBw5WtmlKg z*Mml!Cb`ynazK`!D0|OQUUFSZzsVDyEl$omSCzL&ameIvNzQLbMhH+ZZq?n0wrJma zE=R}pzV5~)i}s?ix_tMp7or)ed$x+2W$9$P>kf_=jrD(VS}or&-rPFU3$fp=_DuN7 zEjki1CR6Qw8hWH&!VZQT{1LxTa_QUOf%;B>X=+`-cZeEY+&D;2jl6q zCU@Dg%yz*4DYaS%lKjR6LQ?q;#({Nrs zj4}L4S-84-MA)V9-fxn`cb5^#;G`lnm%{jr#Meg;i1POnP`$d6B&s(;-^t zv_3n8{#fg_W&b`pdwtgFRY~lc%*k{_hDrAsZ|anyp^O5!jh7P@ zl2^{I?lP=<^Yyp{u0K?KsCaZ^mZj2t zaisgJZ*7TRl;&{bKWbB062_lwD73 zW}SI3GV!wipJ8HcM<+U2`379Xt2#WBXf2p6hc%H=3%K?@2Gl#(b7JL8m6a zR=!;H(AUGTC%f3r&2cv!lYLVlP*XU_ZRq}yZl z&9yHr;jp!IjS>gRHcg>4U$+x&#{}${d@Evw*2JsQ(Q%{~NpIADB(ZcBA3-1NxRS{m zGWe-UOZ(!7$d(~~%Cckjf}ff*lg^S@6t*z#(d8FXLTafHOB^z69`k;1Afx-P^KjR3 zJ?T12gn7{HldD1gUv0)D7gpcA?k~Dgb^Ku2`IImY<*S&!X2H25qBByg1w6TWm{|U-9jodK-`l&sS?WWd*-(nZ-7~bpSZ=&%u*JeF5K>V^F+DwzmKw}_ zEbnER`H0u`#za0fU%Gr(|3Pz2W}mQhCnv>+kBco@ehMvmEM#}?4$UtZ-q0T`={(^& z@Zk9BNSSZkYybBj(Hpay>nRn-{NAb|+*{v7aF_-*O02EuNfy2~F<)GGHu~Z)o!P^$ zZQr~&&x~8Yh!UJLH4WUFA31UKeRGX!B|YnqxWg;jJZC$f3I|jp$vNhO8lPY3E}SN^ zZalB=)x+O9g1B)c2VN-WS;`=(mT@{S^%3+@m}TtCoV?T|CqD`eTV-FdewVAxavd*y z_d+(K*LL&SWZ&NEvlOD}44S?ETzY7EG%DO{rXmn!`l!0blZ37ujp;v>hTx5UFy$7s zLh5lNepzSfJp1y7Z&OcK$DzX8WDs5E zt2ipQ3@a*~7@w`(Eq%6yJuf1CB>VXuui#+MY zVz_QTvxE=yT=(*Tu$MM*cbgj}#bZS~Ued@%YFa0{=!xYt4`f{%s~5>Rbqyh=1&opbDZHH8y_pl-sKa~D&{;GwQKC#1 zav5EecX3bmr5$fu{>YHW@?<7ZM(PVsn?u06)||=tTk`FGPo}Bkm(Be-6FW=-zJ7}K zVdpF`uXD_uI*mmO48JUPrb<{ho94pT}x$7@@yTMm`w00Jx(=H0BLTzZ8s-8 zetLk2V>b%7 zmcndS-2}ayG2wZoLB&FZYh82=7EfWgAYI#aj>^twNJDehKh#(@Y|gL;<$H7Tk}7$1 zJt-NH6`j?iQJBKg}}8G>vz{)begj)^;~bO zY`gI^>>cW!9-Xe5a=LVIUs{cJm%;jBXSSlFIX90F8<_9!@``=*qV-_n6U&EmTq6|e z=TR&eQxOlgdv?%_avT0v)MYiP4TaBMlislZI;bE~U2W#z+N=-f^NUPxWS`ER&h+H9 zL(-fL5n+_jWLXd(3(xdTTyM1=#W2I(XQSC7be#$a-g# z*r6QiNtYzC;sKgSwVP_GIrCrc@zl@gk|24xyR*sqcQx2B2-*!t6QzFWVpS_k){DIF z(|%*-`sDnRy}TRmDIR`|ZInL8J{Gu_olJ0ny2hKPkvn3yQSl&cQn@>G$(!n)>tn~8 zxc8ChpV!QaxaG8Uxy)7i!hTGf#xa%Xx(7wy_}Od4yCOCe{i{x2G7vtx;kBw(oy9Yt zD`M5sd3*HotP$`sfs+*+Gs?&|asUXLJGeq{lSjrz{_j_Fmt6&AhX?;B07<^?2#m z6aGh3-1psP;{M8iu$4N?9CPR9;G0O-?9+bCsI9U1#(QB`K5JX}vfXK9A6}#{dLZf8 z`czedM#)|FWS5)VW!RK+fozeT4}(Xb_aSIKMXPNF)Hhz8nU!CYs?L51>4;Ff+^)t$ zylO+5e(BVGy5v2&o0n%D4LEePZoR4eT4E=a<|x6D(O8tKzlnHcLuXKSZswJbIx%j0 zmNRTP=D@-sOeB#9UCIhcGw&zgz;-@#eGP})g@#*K==QD{Royy3kwwP6_q^kg`%hbE zJRVTq*_e6QbM9jkdisVR{mBQLFI(dEg3iE#wru>I4;EW5Ccn*ORDLTwy!WY5AGEXr zRWE-Nv6Nigj<6^Ttc`zgGarR z$1lg7QsUWkvp;mTE<2$<=RQYC+@cGi-H^S(IC-*3;uDH)zh1RMMj*oj!Hj3QQ-;paqg2F{L%NerDEyV_>4=WX=z{jghSMxT(Z5J48dp(L--$v;ft zYMFjSDN>f)_hfK^d6K(DUDBc?V)yOfU5?Q6q`VSCw>EdHC`^HEFN>kvo4#XQeidI5 zQ`?@cOFi=q{JOV{9#eWYdIP>b&nj=>Ib8e5EUR$_%|86)!~2!&C6h|2pyho3i#2c6 zh;*|Y&YbRQ+2hzzqpJ^%+mD>dy8GsQHJ#wOif_BLjAc)Y7WDsz5lP>BhqCDHXin3*}8^l$6`&y9EnG%&zP{;ZAAhjW(+e;TmSa@xo9Q!`LW(HuEH+m@OuH%P z-oLIo5=_d>pb`BdkcRp7LRDhF4TUNPJv36!Ca#)1v!(@Q?UyiUCURS{L4+&^S|BPa z^JdL&Oi!V1>(wgV{U}4~LAc@pQ|C<{X zTUznP+(amN>quyWWyTA8ZykmRhfkiK)7E(0Pt}G`}nFk)zdV&DIZBo`zVsiZ+QF(r{duWjw(v>cCdGnQEH% zju&IQZ{gxDW~zSjB9*J0Bj`i)>0WG4W%bVLo#tDAzt|Wac=C(zD%TZOglSKX`&r?e z7rmBe)M*pfjMo^ztI?Zpm(*R|;(W}wqubj`2dSxF1l4m^TlW*^z9R1GF<9IsBwZ9F zJJOSrG%Z{5m5bs?q`b?AkCaDfS~0_d@4xY2Cd-sG&bZE%wXL_k9mYKHmVMh`>F~0A zt`?E5U*huctN!%j4f9)m?M-9Uo11SMOjHIt#I1(s!>+oMUr>A@j|3@*64QXPhjDzF6PlJr6g*{`BaR$Ux*QUj_Sy=XBrYOV?;?DCNH%r% zL=5Ti+(Qd8?=G93TQEG9S}s|!;6xVBWO4EwW#+rcy2g_}j1G1726QD`d*us1GiX}g z46bMIC6)`#mU*rD31#}`vf9!2ksYU^ud702`1z}xQIa_%vUUgD-GW3b!SCogob9it zq842#AtX`!;J#%Q|7nMl%!z#AiFfMXgnFtG{2o&yBD3A<@`SBiniw6z$G68$Kz34*B?`2>c!pj z1m5>nn<=HfRFk{*GOu#uTEjx`0c}5*!EZ5Ym;5b<)m!vk0;XJO=ZsY450-f8J>}I* zIeS5iJjuv%|GUN6n5;@`Cwh{hW4=tfyYy=v2S$1@>Q+w~#-_bkrB-QSwdR-chEmhg z)Uq6kCL*Q?LEe)E64W0rnkQC0FCv>wIN-^IB*@NVv3FZytO1man(sB3G*mwzyC|sPvpj zp`D0X&K;Or#%`E7k%^iJn`*);#Zi$kR9kAyUg!xzQh#2w3oJ(nyi`ZBaMlYY?q z;+LTh7Y{9+xK10DJ~fd9+Oy#bu~W~B=U+Zj zqdhWhw4kagbx;v&q3=aYPs9@go7l}FoAdle(g%+lnn_6%iI)8*gS~t@(F!GkA0JOK zisYMPU(MucF^Y5ZuS+T@lp3=KnBLC1t{hjn)REHYafvN(y7mB>IEMS^0~3tm8`MPa z`+n~swYIq2wxsZeZ>zlx(Z~k}mWEXx1$_>#Y0)QYa0t|(d}WkEtdK9Nve(XiukEDA zTt@8#LwV4JwYgx=*YKxdD>?D6yK3ayD97UE_36frA4+Fux0BS$kXNIGq%j<}Qemm; zjnuIt{NkcPUmYCT7Il{Nx&F!<`~L&cvV-*m>30J=?=>Nx&gJ$1sZR zxXu@&)jhg>B}+3-O>?<#O+V1PmfwSN3}&y*n0)4)VmoVE)?Ax5NJ_VOh^IbJ`du?= zcvGmM*MmBWtE)N&VpKKBqbAFu79549(&tt;FI}{0L3HG^^~<1y=;!KOHeP*Rcg?>k z?KZR$@b&*RcGgi*eQO^lRYF1OZs{0?m_cAvxl~Vei`K`O|`#N*idf)TctnYfBv-hce&YZKK&v#TeL=u{~l|bP;e`VwG?Ctb* zc0rCqR;Gg;Yjy;EEX|koP3Wm0Lr9cQ@0f9~f~5k*il4u-t$nu&@oRECP}QnB-Zn`| zqcGmu5sXEJX3k~7X|joN_4#lh#R4JtGqInLiSVVGk+MfZpzn(A0XL@IlQndGjPV&f za<-kk2d%sn4xSn=F!ml9Y78G&m~8VmxjE#f$L9}k=B{S@y}lB5lzpJ?ufIPKEGz$1 zz0P%x_1*RNZ%xUSM7ye-MSpG)^I3;Qv_U=(+cX}Zv+{f_wdG%T`mx+r4yBs+vKyS!4X5pQ{T0GKZ=K#+KBl~e58wWV=l2; z6WYiI!5Q-Pb|xjMIHiM%?wlM%3X?}G)7!#WA5TLYq)K5-krzZ3yu>E|WkMJTm;(Jj zGs6Bo`v#c$4AhbQXZDR4=>IqS#*8G8dGy)2we_%%Dp>BN!lB7a_jRS!is zlC?b3DLXh-)A2OK)+btXpQVr>Q$y$A0d2_w#U~$1f(=Iv57rM7hzQu3I`0p))RmU) zRwjhx67;&`eQ=TDzP!+5{Tpx560c>mng7nid^L=QT zleZ%!Cjs6~Jcx*8o8MOaTtEEbgm{YI*zJg#K~}Rs!rMmpMGW+-I&ix9LHtEoycj~J z28*x-LQ@sIHFkD)(>5n9?+as!WrEW!Jn0C9-Ss>EFe;*-_;^8f-U<=hqWL@c7W}u3 zDBKw*Q_bS)@sNe5?E`0zbj)E0^82MINg{H^aeaQs9lVH!h+{B55s3OW;e1!WMYW0!ZCGVGfT zrST8v)`tO0kBVP32Uj3>6mOi-e+qUz&&&%xxc94i#16)EYVRvg5_LH|5=IKEm`~p2 zMK62H{aj#Vm$X^7KXwjWO@oo{sI=VkV7ztjePY}_Do-ZC^QL+j(c0;}WUJ0?^`BhK zoaD3b+XBfd=P7Te6IM@^sh3U*Q#ITg@AF@&EuOFOxAt87@o_%&@Z*%vup z#??cm4>LEs{9E$T+m~~Ab2OWur|==9znjTEwtndIko@F|PB(JPuD?ZHeX?5^_zOLQ z*tE@Y9aFH}XWTF;CY$o}t!#yWlzWZqvXxbaQpVmH`}6ohbzFu|5H}El9;moWZjMFv zjz!TOx`SV6gQZ1>Q>F+%MWxkwLj)rSn!wshi)NsS1KyAli2{?E$a=s z1*R2a`lL^u&&D(q!!2cd<+{Xus&8*81ivH?(09nVb}082eQGYceY8&+6r3pg0j>^b z74YOhe0dxc@wsE>zy0o-|kags;0@-D#mv`n%O>* zvNy<|u46?e2IB z;x)%k?_K^yUOV#n!_ALRHMERIis zuhh#{mfC&6K9%U0(Qii23vT)~8-MFmv(!ej|6Z>yD62e+wigm+$WG@L36fvFM^#dm z=cvErRa3+DrtjGCc?t5^d^xZhy4X}dD(GVafN)Z1V+cGEGVA9#}F>qVOd-qflI>&tX>t0=n<72fz@ z;`TMZ@k~})pK)hQWAt5<)!q6AKkX@}lX32$qZExamDxwy!J~~g(ZI|bYL3NV3g04d zqRg5mA2q>%v(HYiYOR2D@_rI`&%Mr4!->MA1Sm7tqhD60JvGtVsSCw%?f~=jmc-2H zt=s4^@#NX*iFYf$7O%c!>DJ1oj7+4UW7iFrS|d5N`h`vuTvyYTEnib5gs z;Wym>o}?HoV&^wcY3soA61}gF{{0>@>)ywZ`$JQ7$1qLR$=ujhapf-A$;clWIe&9~ zHmmY}r0CbrMIv%1XOa0yO+3vNnqUWqoU6i{=DZuBCUmPMS!BKF-8D@gbSm#JT4PRb`WqcYrd(Oh+f$fvHFmtGDb3`0z}7-LohH zLWV6h+fSrG3N_Z8;!g4e!L#@^Mk0+is52CLhafZcTfELjmv?I$KbOkN1O6qaHOU5T zC#qEg-Vcf8_)7P_Qt~_aif}(5-w0JLAaTsGt>!RYxtouUW;EBjkr*P9Sn^8u#88VR z8+!XtP3<@|H0#ZE4j)7L|b`$U?dmLM*>YWi|oGv?jLh$;`oEp?Q1 z;gk%O^)=VG4bzTXZv9N0g?8kO-3B!u?1YpX0?IX+eeib=m!2q)+c1VO)m7iE`M~9+ zdCB%>+8YD)0;(+SqIc-e9Lf?)ggv&Os*p>XQBZ5J_WiG)`5D_^dfn9WDZCn^r2rB$ z0iz3{)%;G^T)Mj?+{O#C#4a(`WF{s*0lA>s?LiMgch%zlWd5PVFC&U$;f^Qjj?L=U zelDvW+f!D3+su~U=!Ql}(}xqg;Tb`yIF?>c{JjzXaF7 z(&Vip5Ygr<(a3nfMv>4oo1gVnowJauVvKW|L{{c(D{3V$Q7qMzQ56+nGq``saeP%<*@N&VW)lqMWN4* z?dXWiq1C1h?6ZKsVBeoh(*ucc->rvRItMF*#M=&E&ogQcGNQ7Y|9Cjeoo&|Sb*}t0 zjSOL+IP*C92@Sn=k@xUKfbr9pfNSV(HexceUAt>ZOAP7P%b8v9`vm&)Q?o}#)%5ty z^m5;-s+V)}C)bd{j<@k@{dQ^3SL5O@HCcaYgZMI1fX$EI_C_)HH%z$-^|af1O_G_? z9vs|wqCT{*qZE|XZ^=YMU)i%|+^M-Dz5T~?|Il&@Htr{V?@rm`(PdUifw{23B02v^ zSv5)P`?9EgEhjh>?Oxk%i)^U2_|7XyMQ5kyGCgXjsW-9$KmO>|bGdQzW7xhz$>g7M zuk&*+@6)pYbKlE10U_&H>}$P9j0m2aU};Iuf#IH)ae zE34p~sjNR>AsHkX;k)a#OmN)D>Rb#wv0M)qdJ^Mv8jkL6wvfsTpmmjMk(2IOkMyg) zG|qCZ+R~>=zQw6t(fh4PBdXQGwZ%I^mw#xnc>}eoDCkmB+EF5)$7_$?xGwZlFuHZ7 z(WM7{DZ#2&1T!MnR=oK9IoVo{6#`3(XV?DVJ7?*@T$s;7*uOM>VL;g|CY+VPjhP(;gcDHcD;VFuMgb8nFIooCK^ zJW9JJ`I6@Z?LQ9ecad;d(DA|hT>5?GId+##A3UA$X&!>ZCY-Ll-6GE)ng$O-LrtpLq} z!d2m6KWVS?_Wzlx+=0~uPv{+PyNI-%zD$-uLKQh{RYw9>wr0lWywJ^5KJkuPTlh_9 zQJ1X@df-%_cIsplhnx?f(8g?+p=lAO$Dpt@s0j$sj!ovt|6&FoqY0CBK5_*n^e8k|v|e=awtvyNyGYYcc>Nl6H#gcjW+2@m zV6rvA;Y~L?OWGRTR4?})P5FK>QGFy|YK_a>$BK$Ddwj_b>y!G*dLg-mm0y75$Zqf3xuyuQyK^*#mGUScpME-AA*Ov>7&lIG|To5YT}~5 zgkM^FPvrPKPE_VHvt}y{X-^=`y7qX2;p@yp<(scav_{yw_qYzq$}@ki)+cT- zlUL|?U49{GVJt3@LV4U0F36q}@*7_B*{bVmdyKB8?KC`z+w6y_tj;ZiLW7KA6e>%9 z?ZIFl`G%S9CWYagSDx4I!Q)!z1g09s3wX<3I`Vx}Zd^!gQKDfn$sxORH08S89h>wX zd}?C3TruX{*IbVMdn=MI;dCx8-%RFqSe)4cJSX9+%cOLM!?WUH`9mF&6cUv^D}xWl zAGHOCOtm*`XUH6;Raghje48Az4qXl@O`jVI?^kMZANQAcf(0r*gS|8#Hm5Hp8!JPs z=U2{T{2A-;p`#tlGybsdyzXJ@996zF^}UO@Iy7$8cX@GKQTYZ>-rTZ3BD-EFZW#GC zCKvjyWk}`ywFcBtw)@jJeP)$G!m|>J(-{UTzF^0-FEBA=ych(wY5Bd1OJ;}i>LRiruHn<#^;Z@`H6>0<<0E=3Q`I2 zK0`qUAWM#eU=4G9ZvWPCLofT)C-2pWXOs$TS5mjxV=*1*-6_Z&@Wlz&jE8 z62V4tC`ZR-2E`Z5&Q><2G1K%g7)Y~|J+>5K1D84Et)OJ zP<}<{*s2f{b1r}06r!WTFHK~+)CbQ~ZF`TBw=&h!E^%?Dsbn`%J!ucF$zRtb3lR9} z+t#?Q$fIApA0)u1Nneh4-E)bOofS@6D5hQlK5fwq=UsX(6^9fRKVlDje5;F?nAjA; zySxld^1?HEW>b@s;FtM6j~<>^gld%vo38Cpic%^}ItmRJZ8`Oz6+PN`z~;n#)?V4@ z{a$2k{mJq2ru}aR&jk3sIujg;5C8t(^biE7k@$T+1l7t!$ft+ ziI!zf!(A#;GV;cXtB=s9E_)2Ova|ED^X^gJ#ZPx8rZx80KD;6PfcBkrgX7lN=u&!G z*qfCbNLl}{+3Y@I@EUHVLWIoA287H#`Mq!RhC)_tKMX_F9m=_ji23wO-+o^=tCul* zwEqo0>K3uV+mgT<%i)r6IiEXZCDFWl796e{x{=0QyY!CI>3E>?cV&|G01Mj(Q=oD| zp{-cMhPC=bP_MN?d7A>VGthH!WsicmIzD@H}xe35;DWR-7cpRRdeYu+XtI5QbWZr2&)(Yz-(51$Y~O$AQE! z2s$hcLtwzsaN7W&3Bb$JzjFaz1x_1M7^?`z+tfB09+}KCLxBi|D+``%qFZ{DU1s+mL`qcKWPYtc8C=Rm}+2a5P%YiqhadI zv2q~*(*j2WW5`y2w*isB-S-fH--r_jP%LmY3@8X|eE?-2M}uJM;<4g@`eSSjFhj@5 zg@Q03^S^Tepb5_Q0?-be;{gR@YL&5aB``!8EDfOV<7fao1xJ&{00yvf0oE;+23#^Y z{R4?fVw{ry$^`*n6YO?Dm<2ly1Tb)MGyt4{qXEXtxEcne^LM)-NepKVTf;eSAOP8d zeLMhK4bCwFfgk{i1bclD3>{f0rn_{*!lPR05%HFz7iM5 zFfp;>z&PU&NE~;(0yGR_5-S&A&fsWLIAa)KTZCalVdVnk2^A{ZlvzuS-kVW@Xl znk0rnhowO~S5aWF(u8TbgPEYJRbhXAaC idrrX)|2&ugd Date: Fri, 5 Sep 2025 15:09:42 +0200 Subject: [PATCH 15/69] Update du README.adoc --- README.adoc | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index f2805ad188f..32893073e50 100644 --- a/README.adoc +++ b/README.adoc @@ -60,11 +60,27 @@ Street Complete est une application Android ayant pour but d’amĂ©liorer la qua L’application fonctionne avec une partie de gamification et invite aux modifications sous forme de quĂȘtes thĂ©matiques. == Objectif -Le projet aura pour but de contribuer au projet open-source en dĂ©veloppant une ou plusieurs fonctionnalitĂ©s demandĂ©es sous forme de tickets et d'ĂȘtre intĂ©grer au dĂ©pĂŽt principal. + +Monter en compĂ©tence sur : + +- Le modĂšle de donnĂ©es OSM +- Kotlin et Kotlin Multiplatform +- Android Studio et l’environnement mobile + +RĂ©aliser des contributions au projet open source StreetComplete : + +- Ajout ou amĂ©lioration de quĂȘtes simples +- DĂ©but de migration d’élĂ©ments de l’UI vers *Compose Multiplatform* +- Participation non-code : documentation, traduction, collecte de donnĂ©es == RĂ©alisations -Cette section regroupe tous les documents liĂ©s Ă  la conception, au dĂ©veloppement et Ă  l’utilisation de l'application, organisĂ©s par catĂ©gories principales. +Cette section regroupe tous les documents liĂ©s au projet : + +- link:docs/doc_tech.adoc[Documentation technique] +- link:docs/doc_user.adoc[Guide utilisateur] +- link:docs/Devis.pdf[Chiffrage du projet] +- link:https://github.com/users/HugoTHOLLON/projects/4/views/1[Backlog produit et board GitHub] == Travail d'Ă©quipe From 8a4f68158303d0e03564baa9dae85332f00440f7 Mon Sep 17 00:00:00 2001 From: ElPoraz <150593346+ElPoraz@users.noreply.github.com> Date: Thu, 11 Sep 2025 19:46:52 +0200 Subject: [PATCH 16/69] Adding CR and ODJ Sprint 1 --- docs/ODJ-CR/CR-Sprint-1-09-09-25.pdf | Bin 0 -> 54296 bytes docs/ODJ-CR/ODJ-Sprint-1-09-09-25.pdf | Bin 0 -> 46210 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/ODJ-CR/CR-Sprint-1-09-09-25.pdf create mode 100644 docs/ODJ-CR/ODJ-Sprint-1-09-09-25.pdf diff --git a/docs/ODJ-CR/CR-Sprint-1-09-09-25.pdf b/docs/ODJ-CR/CR-Sprint-1-09-09-25.pdf new file mode 100644 index 0000000000000000000000000000000000000000..d3c760b51ac0b970f5f845b568ad8c3817adf86c GIT binary patch literal 54296 zcmce-1ymi)wlx|gxVt52aM>HT;O_1Y8w)NWxD(vn-8Hzo26uPYgkV9Ew?p#X^PO|< zc;~)1{{J$1jP9eSrOjc>^^QF07(EOwnml+yu1iZDz0`Q z5+-3oCqpY+GXy3zkb|Rztqlp&ui8ushGrl~5@v99B?KmACkJO^Clv<}NXgdLiG<~M zsjQ*HJ4qW;TN2ja_cDeyW+c?64h&*SG+;OjkPFB`!2x6nasb&FgTdIItMTz6fNV^D z^?@CH|6hHvaIylC@UpV7i?NGv0619L*_Z(w%1SVkzkfD>U0|~XTq0M_ka3>TTY)zbvL4PZGt^yvWh@lgRgj$4~ z8Nkd2-~s}GoB$R!038581wOznWo=FVQx$2DtBb9Ji6a$Gam?W*i zHHH41h5wu-!OV$%a1vK``ekh(;P=oq)D*a!b~`?q<2+s%;# z0QO%)BS#V@<-ctCm$M34fj}nz`GqPD7S{i{mav1Z-G8p7Wcy4o;BRvHMZiCs@^}A5 ztw7db6_GH3HQ;Ow9w4~;e@!T0!7@J^L-%h$zxenINXEk2;ulF^M!*coIa@zpYcoHa zjfDBxWF*Yb<|1K!HWdl;vz17gpAAI9{A?Ez=4X;gSe}_BVfifpmft8Wzfo9zqp92M&AR99$bFj~G{_Ft zOebdR0M^3)8RusIJ>*{=DD+#fVBIh?gNMn&1_X;m+`-n_j)eW0SFn>>SUG`L1tu{o z@WdbjGPX5&p2{4Zzzc{qGQx*+x?Sd37Iqd6KqH`00q{bIqB654Brv3)1U?#M3U+8i z6T{-@^v?xm7B(iOFUZGaMzQ@?Yv6DS9FJNF>GE;GCzC{)#l^)X8qQ`;M_&dY3s4cf z)F@L+?Mdw*>^fXK??b*wyCw=p{d^$#N10pMv6 z!2S;&pB4E(;&GY zCwf-9kcy%EP#gxyG~&k#E^Nx9^+pRWVl@j5jE&8THg~s2Uw-PH?CVkJ9-5WOp-!NS zpo{)Iw~&JPLh>i!{C~&gui^X~m%nDuX9@ma7Ui=8{tK5t00)2sykYqVna>XWKO&QP znxz`RTFuI#@|(=buF>hfo}O7Sn_aVAJ$*w%Ju1(1POlEBK!~NLB-24R8>7=p9Zb7$ zs7WyGPrD4$D_7Ul)GFIK*zZFw8Cja=8kkrXD#VW@3}6rK9iNQ8d|_cmMET!Q`OE14 zN+p2ne~HTHN$lUKEhp*{NI`>f6w9nJX3OlcQ))SZ2zT6utc9XH~%vtfgFvj0HE@}I{4z`Q~= z{md(r^FhOdH^7k8g1YbP%Xel(&X=H^uXuyPA=ho(1y#L7eY#hr|;A4apXC} ziqZ=($G0UHwk4C!l53sji#)4io98tGhARz`GtD(>pz49KdYMtqc3F_kS z9t`mYGGg5adKLY=gK9q$;r}o(tx){=G1l5+l>P0g4njPt#c~7>G6E_pfNP)r^*18a zyK%=Km%^Dl5DQ)-^;z#%iY8dAufV-Wm<-A}^2i zkjm=l==e^q7P=3y^Ck%?gn0224+4?g7bw=Rx~kEFJ_2Y+^S9eSHh1*eEJ)UR6^XWv zvtKwQ$+_OJ{J7+rupe;Y+vFksLS)9vLqCZBb=iKPK94MiG@|=BpkI&kT!+_MpVP7z z^`u^VF}+BwX1Sp*YisHA29G~;FQA0jKh|qOCHHmCr)RtMJB zhq3Z{!|pIaCSc35AHXE^{M`!B$dMkHrhXo!lI3TXC?95gM~b3 zHsDh0zF?l@dQD<3VWHTER+;ynu9*GAp3ZC597%1$?HjBUwqt8T!$&;m>&y*eri2b{ zDFIQ9;0aX8f*hm+$>Z2g1A!UP+fBv{z?}eRd$F1Td@o?1@#^Gx?yh-X5U^qOq z82NkR9eNjt%e;YzJq7jn+BbH%;30PG-j}=t ztL=K9`dCHbEw!byJ9YQ^&%KWlBQ7BwwzZAK^E5hZb>^X> zG~wox-^?c+eJzI^fx89Rj|kt_@FwAm==#tEaPe3=j5aNWnnq!r?+vDk8KztuR-O=g zh43F09+~#Vkp{ohlI#qu8>}URwbZN29XQs74}riP`HAq=6xy)3$m~urq<+!lRL)cg z`ql*nwAdXGL7j({+{Ag&iZp-D9I}blv>ildn`pqJM=+xB%8>I1q7Q;0=N%J=4C4mf z#W?_0p!1Am*+&l&>!=A%iXzKUKOBSQXYk}yc1)j6)L|kPeHP0s2=x}jiZJ0D1>U(ZpOqvr-!Nq3>@OL*Wyv&Q1>jWqUy$bW1djBr7_E@q zi!5ga<7%;mUT@D(yGm%R7iZG!@m%2FzbJ$Uba+>H`t03IT;Rh4Fg?_?H10mOOd0POHQEg z&E4?TDP7a}M1GK?Bi5=dS&N6|JC1Bef5_a-R{a5n1mWhTps(l-f*GzQg~0esz9?r+ zzYteUv|0tJMjq;?*%f@xdkijsagfyYOrelU(h8tCTy|Tx!I)788m<-96f0&oQzKhK z3QaM2qHli&{;KVJcyUA#CZT?WO@~V5ccxX>EdU>gLRcfgAB@Ht$S2W}Zmb6zFF=VavFoIw7Tsc-Sc6$=y;1t5c zFZH53$ah(#{1C{OJ-C~{TTTD8a`?6spQW}LrY~=;!|P!D)2^ufYPa)h*ZV+{U%Qe( zkB?yO1B~!#Nb-;eC8L8$z6-hvqF|C5ot!*FYyzXtk^f%kb<_x9oGa&?Mdw>uR>Y=* zC+)Ez(=_{}cd&@|GPk0>m(zm2UviWogL^zW5^aE=e_9!xB$yhXB=FoOP@%>XzC8%7 zYw6hg_I0eN&kjE@3`fT#3c*ak$-*~*F|`hkFt!Px`(ozh=e>?ch+BpQI#z#oX$AA? zfIuPqAKxh3J6C>W6Z(<0($G#2>p>!f9K(kfRt<1;q%MBohPQj0;n$R}$adznY-nO3goIM@U$JxHzzTf`Wmw-8q>FhF$pJc zp|nU^x>dUZF>#33`T32|Ek??TT}my(Q{9h#@ohVrBhGxm4_mb%WZ4@qj%-r z4@U-6wR4wuu9&9At)>xWw;}DQRE_%K4_Q&xUT<5z*PA?9G+p?0_v2ya<%>!)nD+Dz z^*BK!vMZFVk7H|U9+R*oJSeK+;aI-r9>y)@!HsO$LV~2kM#DayI65a6K+jv>vH!V% znWm3O->S1lxv_ab`1lsaJIY?#VD*^I`Z~42U3NuireSilnD1L+7ZDK~eL3y7`S|8{ zoA_-Ss{8f>`SdmTg!6O3*H#Hpc`K*Wl`f?VEy&uv9aJ%L6bB1Qk|&=62AzB@&lsf% zixsR3st+vPP`#aMq-hf_zkA(mx{ck*#m!G>atr5f0|{uq@T1EbMn9lY*IazRyw$PD(x#nhg7NJQb6FZ($*cyxGsFR6;A3iLYt^)`?6 zOtl&QO>U@Z2bKct*Ju{)I67;g4Ti5Q>zo8-2n{S;%2-Kb9j#PrMn)`o1XB z@|PMtE?%bvF7OSH784ttsC}Q$9(ur&l$MZY7zyeNAQ(p@7Z)}cru|e}?@No^rJA$+ z1CjF4Y6{m;MnwCy26gb7L?R}Hk}$yrcffSum{X3zTg=Kcx1XZEtG5vv(#fM|X% z8jye)gv|!oLM%C-^_2kvZC|~N8m4T(Fw?b6_Q*!LMf*T^EHq(2lWOqO%7L3m)U&P|GK=IW z+xjxzGfUgF={4pHnCVpQ$|SB9df)Ygj~)(X_m?@*$s#k$LDjIs5K}3|2)QR{cOQbS z-PX@J%_r}93?}A5JV#oP<%eMak?K~T${^k-iWB)TP8Q-Hq$e4hLgk;*g51kj&Mf6W zF0WKx3aC|5_Dl7a*UFh*uwLBIXMHnA{5(}oAgShj|JG7%$e;i@en<_tB=@G~S`)uXLHqXQqj1iI=P91vCyu|I{8FjamKWl?F;H*?RBL}en;eHhSG4Too(`p4c z6})WBrXHM-WG*t;n3?4CxpHl&%}9rW&OXZdBeKT#Y~-A}eci4g0WB1nmf6y8;O`_O zrtwE=x_GT+f$sQPF;@!YK%08I?d|R3dTp#Sjt|k(*vpBr<$Nitu9`h@`anib;?W@+ z97LS=OO{N8)tB{xgzPjr5sq}hs$=1KS}lvFi~GyOk4|c-Yf8;kQl0C&%N;TLX>ao_ zYKZDIqsTPujrXxr;V}@^qQvJjWzO1YcgDQF49{&DRZo9dTAo9RsFK|)&|n*7To`^; z&w^sLJf8Zg{cxnl@qHK$?zW|czK;d z<&*Cc*^_xbX|Ut=eNm|W`r;5lPZG`v#FKM-=3&Y2ce-M6GGJ$sv3L#DMC+D7?3L?Nd7Sg$0u*kyv>CyEFZJWep?$8{nnV_@^Y|0{J8!}u~!!< zq*f-NZmFNP468BLO1PyUQJvaQn=h@Z9F~BIxM!TmJ?HlEjN<)9r5U}UVm9qut7>Wn z?H*&$$LUlN*}`@;BI-C3=Wv|+;P2Tiyu_z@XW{{xG1}~ygz}(nTdkrbj1f-w0^JZ0 zk;aao)$8VC0a_H^C<1lVhqlu5eaO$lC3kch5Gtkx={H;1vj`IRKb6`T_ z8Xhp`KLMpf`gHPiZ2O~9H%ah}@iqPH`V3S{mP?{-4NJ#No4g~eBxD^qlaK<uoy5dl%ea2C3%Q%bIIlaM)g@&c7^-(3=UGY@0G$I_-UW zYSK4A9$hSFN@USvENa(~^R7vc)RSS*Xr6xy(b3;%^^JZ-X9j2R@M6~Xlk>^hay|Q* zR@w4G`4#)PI|0^ti>7*n$ICQ(wFyqz0%`2Huv;pe&jYwpVio=5AC~a+_-q*PYp_Bi z%DI@Dvg23Zl;_lx&Yr4}ZUF5Q#wyh0c+$S+?E~oWE`Ws-T|u5eD>%D|>HNSO8Fa=- zx4^1zm)Cs0hV{6gj#+G}c^_J?jnD3DY@Rea?aMbffmWI391~|h#%!VdI$@zVdi5dobyFD-xTRSOeeIL>}}?=0Jaui zHC}`>SVz&@L@hS-A$rv~J9f22N?HdRIWAG_(F1XVk?8v^C(S}Leq!QYa*OHyMYlu5E zoPM7#60pyQvKC^e{93n;B(OJc?}orfrrvNG}O-jfA>5?@(HYtWSi;>QSA;g(ZA*`q6|2rtyrg4nn{ zT3HiPo$G;iu^F$p?>@owN?I9LQ(q#cF+?T8PKk@d-WE1OFm{Zuc}-%eH{^IQm<{c2sOMZ zcGrUgqIZfy7=#;lmXiW5&N4xmqj~!cP6a_fW;9Lu zJP|j1rEKWbuf3Q@KYXD#&CRG#Z82mkx~QTzj!S+$M7R}sP`XYJt0tzN%JV#|UfkRL zz*Q8sev@BrlQ#DIH!uYVCJA7qt+6-XOfk7wNLroT6H2WU8Iu{9527}m2cCjwL%XmO zahx-tFx8nbalgr73K_@FQ3);Zm}0}c)Yo_t58)L}6-b~|P;AN7cw@gOxyBM0Czr@R zG!0YRpBUPFP2gFrMoa-CqBYdZ&NmVg-$G=l6JFf8%g0o6VPADJb=>PRKnsc0;TqqU zC4Zt?fT&XPRzRgB9-_H+m{&n^jXAp#9#$HcK25umzf-#cS)qwQfl%Is%u(hPfyo;E zczdvAidkkr+7GQCmzuLjQVJnh5=vTm%X|=K?{pTwNamV^B-*3>CG`)_j;G5(DaG#=$zEj4oI7 zNg0d!+khfizN9Kei0}$AFuRaYLTaD#ZN8*WvR&J&y$brMF`_GjTRinLHv^C7AjQ<= zN;h1a3BQpSwT0L|<3K|F=k3G7MrUL(v7SHv^)31}ffwEJM{lVo0UvIebBJu_0847B zHwnj1P?Ry*7+jz7&r|XlT|+08E8%vd7>(}VhVP5ORC1IcCfD$UpU`iwo3+q^ch1d` z-}d5?)N>0LQ9lnTIz%zo%Ey8GcuhOwrcxs+iicK{D!D!KQ)$J!Q88 zHX}D9CNeIH8YH#z@cmkax_R6XRj2dAz2J_@%%UUA7lvyu1%RQJVr{ZHNn zFIdF(FVKE>H~ufbK$&GX2yAH=-OZQuds}|ZN`9i+A2XiWud&!!tg|;+BN@rJm5)$pmuys@hvDI*~uk9ibt(91y#Vo>Ib^LueIX2U+c}&OXlOmHp58{pt zR_yH~FpzLs>YzH6U3p+|jlgl2U`_i4z(V`H1`F2fUuHw6`;Cch- zi6o87{=_yz$I792a%NLh{7*2*DNpxTe7crd?5f4GN2*lU#Tf1?@E)L0frPoLF)Yhz zh+>XlsmxJ8Hhs;z`&y-&pCR%#?=Py62n!sD5gBuPHbWhZpc#d9k@%G$g;OR9(2X;b zE(PGK%54-~-xV~trR3@Dn@2AJQ_AEEy!L1w2eiM8Kp}KcpDLG@ndvw)i&u;)LNOh@ z&>o(-IX-$bkF`pXQKu@`bH-n-ZOK4bn;5y-PoB7q?ijPE!f8d1hW|}8s7=uG#)lDX zcSaS6+Z;Z@uEV+BTrzQizGJ-=4IQ1;pB>sv$bpve;xCoQX`6QZNvQ_9oF}mgDsKRl zc7CE5<_p92i9-H@|IuUM%d}#fh!IU}GGc!rWDN~5JvyPoMoV zk88N(B?68Kvka|s)c559n5Yw_;BOslnbt{emS{C6J3*Zoa$|a5QOvyD@J+ECN50J^ z`4dz1Qp)n=SvBC%VM>}eet&3Hawq?hf$S0*88xYr=*~Pdv?Uf3es|bWwnz|%583Li zajuYL!Xlevkuz(^Ti7ZwlzJrIUK5@-%=+Lts$eN3=3BM6wZV2M*?S_vZ~$eSdf=uh z{~kt-*o#v=?us-=)d=l#`Ni+Gq2{_@O|d~cHzUI@`wsY!I7GldU3^Lm-+V)!NET9{ zfFy`a2(REDlRZtNkpGY?@+Jyr?reTaJN+w`oIXqz@dd04B4z3O(0n<|3YcvpQ+4of z>tD!y!z53W<&c~ooNNw*n{9YF^Qvs#H=8*5a+C$nW2^J2GdHLJ4Ml@TBuOC{Ah0+duGg@6(wb?Y_^u`_Yya5|*hOV?j(> ztp)=$%BC2Q3e|>w>mag8|5|;tiED;ss^vIw3@2&{ycr)E?4oqX&t(-V5*Z#&=7$#8 zLpnD0C%a5%zv;$Dp7H!763H6_ozRte-&Fmi6~fHOc%|2t)qg5KlrIK-V`Os5Z}YAuU)#IWo6GXZ8U7lMMJ`% z1;8j|kc1KD2a_OXA6AKSV#wk}*}x#~9?g)jhrH8|K^|C)Mn;Q<4<{vTD7EyoT+TP` zk{y-%@jIbl%(-wjTABM9<}luiz}M)veRG=!A+K1lrTC%LW%z}BV-ii!^4{=65g_X( zzaIWl4bM-g7u;QHY)PqZLW4nwK!ZI+gB%mz<3I+9P_bFib3?*LpfZ}A8*=>G{qoio zxp^)YPT^4Rvj~6F{M+t2H40~zDyRS+K7#5s;u~_LN9mBM9ALAr&?RUjQ5qLz@Ou>QFZR@t#K40X+@>_ZYx@mOtT zZ4prNj9&Wi_8kzctRD|G=Y>=gTQaZb_rnBg+b5`qBY#B%zucpeis0x|yBV7GkRv~<-VaXul@7bbbx%1>RAd)y{UZQ7rDVb@= z)rE&5m!<`m^i>{p&ffei0ij*1nBRqYW%rsfKX{1xmx<1-)5?;N)zc1li9?2!088=n zF0*nt$Xlcwvto%=HuWmLHW5d4mx8Qlbdm)IRt(CJ{cyXj&O5-c4g%KYa^Vnx6iK+d{PYeo< z9Hkx3C@7Cl8c9ty53@wb^L-XKVvn!Ki`;NM5y=!Wxqzdo02y)HT%QZ`JUuG~-R$p= z`Nd~8i2U5s#-D`D@~c&R(@EQ6=WR&&#a5LC(DDR@ne*bs#9^~;k8?}c(aPtE;m2;w z)gs7uXdtZ%6+|WA;$sCwaC9Z&6Ula=JqI;Ji?mVwQsoTf*ZSNpSo3-_?ra^EIGk_B zUri`}4JXv)=xO5zQF(B^S*lm+Ba07GbQ2bZk|4(~o_=+cnv|=_CNU7_#)|KQs*^43 z;RXjE7$_nvQWUV;cRFfu2BCt5mB1Rq;@GNrX%Pg~E7U2=>-iwuJK2oWs8e-$zXr0y z2M}q_?#0(3ropRE=S-aq@8amPwX8{<`F3IXtG0ijkExQxoiq{NiIduadL>SltGqo- z?je4W7o9uV^Z86`eJo&4da&d3>s?L5Vcy5Q%K@c+0?*8$CO$O1U72>VNdtbdS}I`& zRv#0?pTv=Vb zp!T19UQ3HEOHi4o2wK5dA!N1k>N%_64;a>-99V180%T1ym%@ydKMAIMl`A#>b!oV6fzv~gTbvmWG;G_ z5w;rPbC4fqAT>_GqJz|7ypRHB7Eb+|O{@W4!4PPO5KpBH3Oa^viPfW#=MA$cm!-@7WSMeZ!S+nBSRZ zRXW+U)6QSF@Hdl`d1kH$QBRebN_c!^N$N>JXEirT_P`U85(&Di`q>0*21sQv?d@V9Z{j_0OlmIT<0 zs4-LGb7x7AiYkD$jP2YC+Es51<*Ow0Anv{Rg@}pEy~I}FPTD!4%)3)*LZABsNrz;; zQF;z`XJE;8EoGz1)Uz}78r8PJK*z33IYx##CzMS10MnN`L?nQkQ~~}~Tw`jGt-51p z@kMBoRMj`ti=U9$lm6UG*NG={uPzk#;ZPRRy(_zhD3Q4p3)oAKWm5+Vx4Ks{94Vm9 zse9Crd=+ytuox%^3i{-Z+9QY4=(~&XZ_;kl%{A|me%N8&n^CJ+K!y;xey!tSKA!u@ z2(&D0Rxaclil+CTVr=ctlog9(Gkw!vDv}yXO&Yj2%XJNkJG^~4)|j@xc@&xB&6ciy z)h$yuvELN{8|YuwoYzO6#y9nYgH7y_SGqRh2r_UdOfo}RQrA|Lk^mhI!yQ4fWdZn| zYu>#v$fYO+*2P3_3u|ABe=LBznzd{qjWz$iE?u27V?>D$G) zB*Ty~Sdv)E==k%7DDNo}H~yCo?t&=K;RqPvYcaG1_QyltXwC;@h z_$-%=uM7D7%8X;pKbkj?Wr$vqqWhB7vD&wKUb%3|c1llq#n%YP>aBl=%~d?G^Fw`A zn~5uXk?(lbA6JRc6s9ZMfMa_!2B-7V_&qdfj9g(Hg|I4>qRYzQ&t-sJUK;~E;g})5 zBDe3^waXK}>J}_-7DLSAX)QrYW9~-kP$G_8Mf`ZVp9Pz%6BQSo$2V5q@G`B=B!1J* z1wO$^lHpZjc_oj@1zV0Nk0rpJ;`<$3{$`}=b5yh-G zB~Z!q3KX~4G7Pw%)#>I|5{`8f*(J2^LT9!6&V&wwW82VIG8$?C#5WYN^I&r`rHTL0 z;U{)7N1M#~ zXF}a_6~8!ES`}^8)ECmYCPz2LbLz9HN*q7(FpB}bf?EOP5LXh)x64#Ej`MbQk-+C{S0J#s#ccmJZej!3omfwf-yz7qQz`e?T|$*5qCpQ#z8J|^``7j5kr zgyT$Jcx*%=>~~K;D_hg%g_HDT421Od+uM>nXsfI@(U2h299w6m@I@kFoD9%OYXJJR zV^&0u6{vBqHZ5~Lh4}U-jTA!r3$oMMh#44i26(6xpPuhL*|*YVY*DRl&!hdmt2>HCeBq&byC+l@s zQx_lQW66O3d+I4AIu-#UedL*!LH>vxZ-`zmKwSNgh44fUq@mJI`I6a2rcW^F~7&wZQ+KX0%R;~-hl%tNx(U1Lg4HwaFqV9bdTqR52asOJKC&V%#6(J%-~nC z00E55KrR6LuNYuPHsEs^GbIwe)TjIiVhRt8S`YUk( z$j%Cmxc`p7T(z%lBhWx*D(g#o*i?EO$Np7Xr|12J_t&di=v%WBqZ5X#V*j^W8(BX;c-)O~$P@ou z%pC-Hsp79# zo_tj5(p+4)mt4C<@_cAXpK4Q9k{lRw4(B)cxUx=D#1IhfBeRz>Wo1>PPQ$pUh@WU+ z+#~xZiJ@j?G&E^>jw86#Cky4nF!N_}AWn?BH$t#v&6zlI zVQE<|1-#JIBUR}$5D(4F`XP^5tsgfeti*sec)N&F=xfe%h5G4L$K8<`m@%?+zMpez zu@}~y3)>O=1@YrR6$xgB$0f9k^LR4*xu)G<8Xp*~a1SYwaKr+P$(0W`F*gG=*ws`i z)7k2I9fa{`a><_D2SnzQO7vzYvS|QJZ7b@A>3}1dlOK!WonGAPwqd|G(U&X~+;zc) znOEXAlY_&a$?1@Nrz=H{ee?%JlH>3(Xf+560-78o8DP;vvAxp5MsE#K6Q=oyTg-ubL z!}qRNh8x40;1LQQl~P_sDQjj~8ITj9OJEmiN^kw{{Tx^J>>@zI*-FY5Hyh;BrV8ei9lDbUYoc#P@1HF@9B7^861KtZO z#+o;2(#b>S2~Lt$C&WcgcQq+FMt%lw1Y87hDu`eVOkP?!W@tn}q*{*P=CL~)IVJ}j zHJrCFobHw-0qbRF>zh2t90JG6n^M%*+W}`(Qf* zmnqphB7m~Q1pabzuiaAZ*-aqE8`#5HM)e{A<2CawORo~DQFj6?6lSvT7We85eLK90 z4SME=mE4N7VoJu6dDtOJs^V&bA_81>iKoN`Qrs3296k>CA`bv8kqT#VUV=gge0MW! zq>YirT)BcaUMp3Gv~rSX``GGmO#M~; zRKDr0d*l4rA7?`JK=cwZJFqg0~izaeOKLu(E5op5l9$IOg+5A*0gv2qQx|2^t zNh3AKbH2F5IV~&!O<@^S^7!-d@0BM8t%$*-?pH=1r97o)3C^xuW+TaZj3b#r@mU*g zBO^Y3QywXOfG!$ce*@<$VZgZ&ly(Xm{qLXnaA0#X<;sfC2mAmuSr;>~$8!>-{@e zZ`ykbyrS&42{U+D-ub@f)?dx=VvnV{o#l-Icg?aDoHj^6+8`=*P6w!B+NrKlUj$sJ#k>{nu zl;0PxNcCmdZp>vUU|$DoLf?L2O+=7AQK2-ZL4zbi_B=+pdBi|@#Cj4$^Smr~h7R%> zUG0TL4o-)8EmVPKk)Qn&#W2zWR&dr{LPZU5oW%WJv2nNg%tS3n4cQYOEBgMRy&+Kk zBQjt-HH4O+Dl%F{9S8tXRTJ?Z*Z=UK3B^pYeSp$=Jm%8;L1J6a zjC*7t<>S$30|SEE89l%BDC}OoG{3Z#S}7{uUUZ)EPYip`YtA2L|Lzkhf*&I33 zGO_Cx<9%|;+i^9H8f9(7!sfIr>x-~)(!6}vrnE%kylhZXhsOvxncsUo$}z~jbr7uD zty_}K>J9~XUhTOw^5{8yD^oWwhqQpP&;Dg>oiHl}wm|0frbcn1v2PIpW!_u*HGFlI z(Q=QDxJF^Bh>WtypGa|WUdDs4N37i!nFd37TPFGSV#w^Kbrk8-&~D6A8_KHNK^8>A zV_Cpso;#qN#9@SyW8eoIh{WN-Z1h{PE}Pt=j28#n8pK%D&M)nKu~B$CyP>$qtTsI{ z>tLl@&Jd8q<9tUyMOXUbWq;h0UaC7gu6V&Wk|6i_Kc`kBP#{+6~Imun? ztrCF8)|&mTI4>+AiNj}38#1Sh^DEt}_fI%|M~UN(7e|GpPABp^UK3Yvwjis*s6Yd| zSJli~WIaeDg|<-cK(^zh6;d-4W0%M|oLP4N_j8ErdFR*$5mb?&W{Y+jJU8U#rMmR8 zifSask8nus-xkAKK=_}^#LI=HYWEogTXzv>`)OLWHQLT!6}_HhI8&AG8u2Na3yC~1 zj6{AJik^~s*sQDKs4u+6dWT}Lz2AygIghITX5ZlzoSMtwIB(%3=Y=QBgEwP0>T&GC z&8wrWC0ikglUVxKmy@1HFB*C zs-eILuycMb4HAR3k4Y70G5o-=nzSP8$q<7ge;^tr@HOATMf>~cwW+Ct`68&3byp+1 z=}iL^d()}x-d3;3d{iqr4^#-bJ!QBw$oJkptU0hiS=H)W(=`8_WP^*E=h+(IQ=_g< zlb;(dK6~>;%t7uCu?bR@mIMwrB5u3O>+p2Vyaz75?2xvsL#;fa(HBt^n7urZUCb*8 zfYI=%vllTjQmd>i-O2$moj&reVIIjw48brQyZXM5Xmh38pED-}VnWbdF6G?L?yV8nv@?haIX1@CTt6%M$^Ctv@twoqkF^E1h(KwVh?ZtzfJucl77&JZO2kTQ z6;APEh+)v?2Ni~rnGH8lD;^6n;numS5u9J>n>c8(1bpv?IvU}T8mfyj{un6XB5z8U z`c0b%nVvxTJZ6HvNqpi$QD>>ct|z}8eqVwo zUbu6Jy}k8~s8QCb5Ji^UKq`#qn*{oLouhS{k}Zp7Z;S#S207i#0#^-P$D7Q23v<+! z+6IaM{FnV}RXd%Zb|}d^7G$qVO8E%17#Au;?{*52BlA82)f0ctFu^meLQw#+fh_?Y*tBUxx``Wm2HTFzj!Y@!y(HnDAyq7ae}DipgDQ_^Cs|;pnEF@21xh zogvsWg`A_L6=b!r5iD^X{P6-`#aT?iAW9V5OxWRewBr>e9D{fK(g@smCK;6tdEu1y zK#Uj8=3rJ&)4(C2NhI9?Gw<$?;Ud@Zp0rmZ0dJ$u$rF65h>taxJv~#3e3*u;P*+hs zE_bZb5%~KSWg5L&pn00ZMvqI}B-Z3cA5}K^WHNhQPmQ~qQ%@?ZWm#D8E%J=j=v3st z!&{WTRuA9Q`IcTZ`_(f5&vlh3l-5h_WB;o_ndt^*43){|~Lv9Qw2LWl`+_&8!n1w~%d z@VGe`%u6qPQC^#5`L%Y(Dn-@BdcG!V><-K~q<}9R^IJzM$Vd*c$H9Y-r{9Se{5T4g zlIvei9Z;Q~|I+W>f&->Ag=wo!HcyI3zFjMO1VGqeVwBxCCmtR@bV>cC=)93^{TlmM z*2SK=B85i0t;#$C{Y?y+)tYp+dz=L$0=DR-srqwhmWy@ku2ECAr1FnF(o7k-f@+$< z*cMHR1sUK>^Dj?hmW5H?=)@%^J=n4KHIqo#`0(&l5U+IdtCjmGg_l_@!bv_wJtaxh zsF5v*#Q*dNBM+u0COoo31Jt13B5>i~r6Wb8N&n7a z<$-}LL$yyg75UbI#y1SE|A9}vk6Gk^U0_kjy6`N^=lV^c#;Ty;0GsAxk;yoon#+W|&?vD)*LDyNE*X8kfRy%t83;>&N-fN0YcJ5<(% z?~;B7Asry@k~L*WrzuDXmZud8`&H#?38#pAzC&)RzFLE!KTY~RD+KS5#s(6ay=3W^ zl6y~KT{S(i^?-XL=2kuu75RaiYXx0kT%J82#XUp6a+nMqW8t+)exll;_@Lf-N;n`K zV;l8C>t)!Ro9sy((^qWpd9N=ltx9fIGVl^Sr+DJg@IUbx*U^OgbxJAsY+8ZTn)_g> zI%*G5$@^EOf)&s4jdeiYGa;HF?;_P3s<-M(8?+DFAn&r%C`pZ9C)8rT5A1b8e3tfpz0LMsRIs26#|L>RUsW{pU_zI|6%Se;Hp}>zi|Yl zM7p~{q&cK?OE*Y&Np~XxBHf+R3ZgX9ji{7@gmg%^g7kl%1KtZ)pL_4`_q^}>`9Gig z;5oBrubEkU&3CO?v(J37hdh7 zYGqVJV>tY*$JOErnG1uwbKeS9pL;Z7-|wqi@5wD-G8<~JewP`2heQ`-tFj-cD720# zJsbzUnnMd`XO#&{Pp!a~MDKyo!AY$k67<3YS4E!hP}N|csFPS4 zjj5B4L95V6HZyuruqdHx#b(ocyHQ0$0ccj3lT4^lKVo;4m91BuAt9+NG ze)x&r&q~`lLGaWeNw7yngOhA%jNTAQo@p2K%=@kAEh(C2_fy%bv;F71wc)H9w|x&( z(Wfc#r3k_u@pE7o@hk1kF<>9hCcB|*;fccp;p^6)wl*3dzde3T<&kttIme)=@(sn9 z12we@mr$*7Zl+{QU(0Y5IyNbi)$RD=AjdQno`qoQC_dV*P=k)6iE@RTe(*s_G3iu+ zb*>=+9)YybUg}ZZa>>3o<+9UoJHCRBs#t?!d{e?>M(mPV6A0cSkMRW*j2_tDGS@3! z87iln;Cxtw5c3@;G{In9>hqbgg~hhWhKk2}CoS*ip4V*~x7hF+sn_6{1!C;(YrP=8 zZ<2z=hV~^)Va3{7q*ZIzeYei0D332T6VZFL9#M*k^;~Ct>TZC9UMAju^AClpa3ymjzPjeD)MIw;!7Qg|VFVV@&r8A8OaLK^CdFSbzE#@1`BSVY zjb{BTaGjxNe~KMCEW511d#X<2-KLbeO?l2K!X=r9T$5S|l^;F7rspLxo=jcVO-F?q z^rLJwL%s3S3pcIr^2JjtQPopDWb=2Z7C4@N#KcQ|hIo5}g%87dqN(x&o1+IzBxNOS zO-OY}5)(pZ&>1qiTZ)3%gC!34CUk74ftmde$|Y~R*2LL|19vFm-seh(o>)#-Xj=y4 zo0tJm-sMdfit=8}pp+xd^$mZx&Rb_p6QxtS5&)a)zr5 zZLkW$wzMPaMm#Zu9ztS&MmTEHvnPQU=)YBM|Ft?*jxk)srXn;HrD`G6gweMigQip2 z`B5xvT4K4s!m)^VA)~6{tuY)e8N3FK^*~iiRhYsM6#F@S>pKJ_M<0yM(aHVgarD!8 zG>t84!io|q?w~lu4mouY3(McY=K+4uSY*$f(K&b*FZWRs=CZ>n@r!ON3%VG&jy9ak zik5acYUC(`nE+`|Qg7lWQAuLy*rSi!A_VWuEHYgg@I*iLz?>sb*t>PO%10F$)-iM-oi-&#UXmfl=A zo&4gOF!3_BUd^#adQ-h;lKzc0wOjFm?e7XVE2TH`oZj(cadvhw_1<|5r+*l4PYUm)5jRKT(s+@K8I`FxYa!QqXeOraNI5NRUo8(r!d zO-A<{H0YeHg^8#ON^sF!ERGW+Ilw`v_MLLm1x zeHu#PzE)*&#M#mly0lTJ(A4TneY6BJ$ZIuO*m!2;0+HGql)?`t{Xxw183?&hp zvm()r?#Ze;bS%l11e%~skuS<(p4}vf`_+jvskEt$FLSvm;x(VpYTaTjURpOt9*Kp4 zd8sDzPT{6P6N0QE>n_5*(N>f4A{&pw*4igDk(^xK@inc#7R0M8llM)L@+BOcB3stXLQVQA zmbTO*iJ~#?_+W9WfiIx!r1`$kpi>?tQgn;+`BH4I+_D+`yFyOYFFkJu8?i?9dYC7O z5r!_4isnnzI}S??sZo|$QK?6Cyok}{z$lh58kQ;{K&<#nk?iQ@w+m^7A?xj1o9oG57n<<8#nMTc{v-zP>WA zujzDjq7iJ_;a8Tnxk*TQ>%{w`<{0)!fnXdLzQR%S+r&m_BrW}uc$Oa_#+3}Y-}QaJ zANZX{H6Io(`Q>fFt$%v;G(7R#k*2Qs=%~jvbH0oMi*G)4C}lPJflp3x z^{eua#vD%+GbyjZMI=#nbv68WZZc9s_*=BgD=op8%Rga(uN zD+SDXwf}v8Q*ECr%#$VKXhmQ>pndL$9J_*0*4g+p|D~FZ7Ds3R)ePr<3y->ustom0RihvBPg27p^7ih>G#N#< zlUU>P^42Tz`5uRJWd-X7tof!Hkmhgs{je*z^LPoR0)&dGWF&E)Tn~f4V@9NMPc%o) zx|V!g#Uc7dW#CahjL&S#Q|LOh_346+`J@}rzMMvi`z?->)O6Mt$tal2#8zxP?9yuPYW+q=GN4#H<7FN)ADuhxhAbMu1xrU(m)!X!?ozCBZ7aw}>Ctz#pP`t7`O-d!`rp;G+h)>*EqXP0^gJ zS_zvg6|un8mz9q%I0`d%-L%UTbvv+sOo+1EDlp+f7_{((B)$E8p-E|TR*cWe*zf^+ zWfXs{;Pib#X#O!#OGaMu)c$1>PVlig)^=whwt)Fg-ta_P8 zSM4Ug6hY1RkS%@%_F)ZvW_aTO(kp9F>lhp($fb89lsbBZRWFS8_RO;WLdV?Hvwid& zhw4+PP)Za2jJ%D+j{I~7@!6xoQFx2no@$0`pNkoeHLE6PKHz(2)nZR^SdYJ2%ErUc z+Rd!ba>!qisf#Q;T4*YRAY!pVvEQMigeBQ|y!86QE8o>z%n69iC%( zKwC!Hw~*|#Ux`61`iyww+nZ56)^=|Z6L#&6bu5_}HUk|=JYp4hr?5@si$JAV`Rd%SY8u zH@jC_=*3C>N?`@zm_{Zb^rJ@2x6X`*`ts6zs$4kv0=%(sX;gA$D#=d+>C+!1bGT3( zgrb*=V!b!vvKhUrt$;(Z&Y+oI96~5$n)+a`e6^W(l9uo2hL5e_Q%GGddnb+Q7#S;e&@6|p| zeryV@^SOtNv^i}{lEUJ}%8ag_H!{fb-HP2>)Z}<)Q(KB8XvUU6t473J3Pl!2FhwFY zyd+9zPCKw~{qCm0E7kapK7kCk*CtvCXzLprm43HeE2~fsSn5k|G-b@*KWNAhZ7eJ1 zLv7_s=x@@u)py9PXdfe);Z{Gc0qpl+Lp~>xiSJxee|4bri;d@)=)Kz3V};`bpLz@@ zN~+!W+9jx{Wxm{>NKg9j44Guc&*<^d9iTQHQ*FVK9&E`)C9YUVo^9ha>p9?7wlkM^ zJt-cUOy~oiIAO&ddv+18Zb}#UMVnBIKS#~7HVm3aGuf{V)z&{<-0#j z%ME?VzxkrF_gh``nOxePK6k}(&L7!r76&(lQDCHk4|XLn8x*)ZE47S+r=xqG==hjV zwO1a7;K~c)5M)*N`Xx7zqtnvvc4~6nwL%pqegKP_)9IEUqjlgh@AI0 zj6fJzo2Q8^Y+B@wA&{86pLU0OKks!MT|$m1v=(71^$+Ta7`hZAO86m8qNIVe68Xso z;-5w|JGV}<`Br{pkmh;u>(e$a*g*B8etd~Cb0~cDWMXH~7RJ5lfK42J`vgzW7SFbn z(%pAvT@AKBt?acKVLOaY$dhkacL+KXZO{}9bH!A)aqfJkqW3VjEs7wwR!OsXU27ZQ zZpG2oSKj%iAW5k~LuZCaVyEDqn>(vb6NB4=MU&F!#oNuReZ}?1OdVU|=e^Lb>x z?c!UHAKmmV-0~D!L*MU?LE>ku{)X~kyexXn+elR4op9fAsotGATI-K~v2W^bH&{2L zH^-Oad_DVe{2X7Ra`vsp=?DxtZ?cv91CmXQwtARhyNd28m-lIkE_Cw;N3q>2=*MY` zbfw#dv?H1PD@FEcMTDuFLWIQY1C%2t2H(7N_e5iO!>5TAzlUmPrsgLvhBZB*;_ZpM z(_Flzo7wKYJw57HQQc^-&o>TST9b)u)?b5WJ-uq!!7zqocm4qOkkAj6~=}o?$A)et6cDWR1cR|L*Ik zY)Lr}Rw8|xs8U`z59haHXOvEc1U7Q-gmt7wSbEfeq~cA6;+3${^j0kb_`3P7fQ2sq z+Mcg(BX02Mm^hgPYesb@)jsJ0v#XwDd9WxXXf#7SDcckh=XKZTn|$aN zs7r9tyq&+;(L$bxxWP`v#e>dQGJH}fyV`NTwJ8&Kz76}X!rLVVHM z?zCUllZbmCVZJ!}5&Ox{tz`CXuK>4jWNkr8zhI#Kav{B0qSd}G|Ax_2g3|82;@Mr_ z&+2r?4_u;(Dh7&sBT)uVKkYt^vYUyR3hrsdH>~lVWNshjO2GN7e_rsxZkVjTOt<+< z?!tUhyJVVUQvjwJtz$NE_z3l|UOwYcSWAEB)&$X1##UknaRCkyH51WP73rBk?-{OL z!ZZ7Cl>BZucBF+A+n?(UfSsecTwFMJ>XPDIUW`pW?AtyASRRz$zX!W(RO_QToLBV_ zDjw5>Zr*e|I9ta%k-d)`!rhExs`E|1ir6*_i8x(CZ12@N;bMKRPv_}j8oG7P zmEd3vN6eEYS~ZaBdOD3j1nA9;`I zg+PUKI}T}3xcA~Xm=qgzKboBv7a(fcI1-u;hI)#qIx~K#XY3h+0?#rqH4y|d*iiT| zlQeZ&U8?5OtK`ZN3A@1MB)zQ%z-BXrs4Xlf)%y+qxyT82I)UAUjwg$bUgYmpUTF-5 zbEs>OK~*Z&H9@yxVrJ_uwcmgnXD$_jlAse@yNkvrGV%C~@UbrQQG?V|nA%C|<-2H5 zUtYF9nJ-n#s4IU1eWP;rWvNhlTJahal6J7KHX{6J<(1IG?mKUgm zG;WL8pv`8E%LaV1^g?CBrOvD-bS}|bsA_Bg_DG$r>pllgh%UYie$vm+8gV=iy1Vh! zUvadTwBik~7IkSS)PMiz`t9WkbhZqvOHPWGlBo7 zd$Q_e{PB4{zvVgZJm)PPAI4CZ@QUG9<32}+RaRH&vRnA8XaiKmFru}&kvOxt=_09% zt1WYj&qs=FYXPCz3n6!d@x`mjHD801qNCI>S`6Y@)+rQoL4q@1-IVWPZk`%RPwJDxgT)69 zP6)P6aS>HWo-z0|@V0Z+)N)DH9qJ&4jr4b&3!W9*ogZ-RV#Lf(zifG^G-d83?cY&4 zV@lJ&ouRE{FHqyX9!S&xWDA06)b-t3>+qudM9Jse)*OfY=-<*!XN>a< z5oQlWqjUY;H||ojS2VI{JbV{LzKjhY!S2r08?AL)K%lxS6SeRu?)@?<_ZO5@n$_+G z?+4FX?u`kww|hHqf3{;99JJfUoN0}YiMMCn58XK>}u5bl7VuW?_zT>cl% z0f0OK!Z&dFin^jX+2xDtVCI2~BlrKGkqB^KoWuWrpG1KBVqll-0o;(^R$M*qA2RU2 zRhty}=y@_a9x@eEduLM{BS%w!l!A=|AU6^JZRs_=0_U6qzumZe{~w~=zi*2b+}8h) z2nIOxU;KY@&$WI6za_cS&#OnB|JIZwEX`dU0csLOvJ1)z;L}xW0{AJeNV|I6_y0y3 z8}Ms}E8?!6di`5*mk&(A(FAx@CN5-F0DB4<@5S@_weVWU0j`8AEnWQ;&~ID%2Q{#9 zT@weMcYpiz6(J_2ASTTSoKJ6Q>&(c?$if5u4`B1)B~x%TH?*~M0)7$#a0NL*Dv+@< z0mHgB0)S2B$_T)}K>6Dy|7ir=SH(dXL;hCWh3ff0Ab_X{#K{T}6^U}O|D-SC6a`pc z09vE#Bu4DQm-hQVz31AnfwSBH95#f~=tp3`8>vr|uA_V(2z=6=!{Ox!y&6I;3VCE18^aFwzDJ#%%381rJLj;WWr(yn! zTGt-pb=&!GF@*gZBtf`${&r}9DJqh2UlNo64ocA)01Y!sV?$>!yBUCn&W?tzhL+ZU z#SPZ$D*SJOgZ&x~K}drBw%eDO4GvK(jVAe^KgnE&RI)O{ZvRWNk+V@QyjSm^%L=@_Hx# z(NkY^Qr^&TdDlEYgsSPE2hGR920$Hnva^bdaEh|AfB_1++K8|Z13PMHpx8u0L-OJx$1K~J3t2j5<@c{u3JKz$*&Jgg&7tRyR z=m=;Q%8wRxdK@Ml2Eh5o_16$P#Ub-@7} z<%To_=iuQpU~+%nL|c?0|-NfapOKkOGwb>^&guvKJB{ zE+DG-RflZXye?#s`cFCpYYzORAWst#OoD@Ip#K-Vp?~NQtOsDk7d-?&=fBt)C)j>2 z$}W2ewk@y)fo+HVBA&b)2|F0+AsYL`S^$aQ7QpRZ*ex(Vz-|C*1EU34AD5VMZC0^e z^VkqBzkeDp5Y1esDS(l4umB4R$PuT(Q#C-pvUsvwE8hia#_^*-F zzZZUW{qkGkzve9dz3{6mh~EnTH6;1>!mq|3zY`8&Li=Cp9Ksy-^WMvYCD?d?ct)NK z`16lvOZY@LO1DE{1vL*nrV9-~AtqwuuC<6OuvE6Uq`(NHnOnqm3(%xOSk)z*2*d`x3O^XkXlLIiE98AA zyPA#OZsR_OTmR-|%+;7iZD&6UtJT8m@&tKjWmYM#2eEq;Ymh~0ELQ>%9~(c2o?vlh zD4H%;rM0D{LrhXwRM-$V!D_<1+|eE82={|-ex}oHR9r=OxyA^@lJxdd)k2`axjo5v$&rj&f`=OF-#H6L(s`^3&^~yBaLi(+u9n88l8%PJ4Eta4zcr@H*%6B4b!TNv`udNrBtRE(Iw*aFi^mNK z?T11bCnDso!M1w;=1p9O>sEvq62|PUWSD0TOjJ^vHz9R-3BiI4jLe^buRZ#R_g@yv=w8#6JciC*5nRO?nEL5 za>4+U1k@topn4EGBj?OJyufG*T@X%g$9tN0-B^P(`7C^TC=oUyUD$)M6gywA9iNcV z?6=H^S=^s>&mcr_usFjaYE;mnLTYi~y$3ZnV1vS%^RxiVziXojE%+bc7Z2w@YX3CH2E5Nz#s@j+=TKJegcV%b8#5E z16I^vY+4J)G;#=?i-j+wJ$zh?lb?l>5^a}^o6@wF2EnTK%+MTE=r^5-%CS=-&8ptg z%UavK`k6^b6rshbEEj`S*RCKF8TEu<(AZ@M#L4F`DMpC)7418@ZCqiGTudV76=7kDs7dft;8TUFf*Ph{=SEokXuoT=u`5MtQ=#Ruqr`M~M!^cA` zp9If8@sQBn8-9r^TF@#*scu=~!5Gx2eSa1?QQ18)Z(G(ov#WwX!c7%vYuv4O8vjMo z$J*oM=63%3vrN45V)x9phU#&~Dy=!WG?gO49#ru3rDu&1^bS`C42@az9V#xSn>j7z zW-}Ondhv!pNI)tBf09k@{Wi-aLvl&li=GCHVILZ~;lzT}n+$&9vO{l~hV&Whybba` zC%sXWtX_#cOU?hHULl*mZMp637L&jXWPZ9VTrn`4upSZIZ1XDXROrC7Aq~b13&q-3c zJBTO@E*@*+ZQeODvj!=kXL#kBCHmQAzv7ZUDdWu=SjKj5DCIwTex&bKwCZS4miy?o~BX0bu46I5Tv82aBqT1xxrpu88{M3)lSV8$OHk)VxEhm zp{|VRYMAlwdL{Bpuar&AU91fq|8>Uz{@PzU2HCH>5*9*E)cSv_F5qyrUwUVdC26ojU>3U$|T^aMQ!0{jDTrM;LIgs?zbveJTDE^}yh_;ZJ!EzvG ze62sfPW%5P=Tc7>f*@vhP0+8akpCNelaD%`ltU$hyjGco_n+u%N0q?+QgIIw40;HeXT%0W6 z8(4uIR6qn9a0A%pfNTl4064^ zv$;F#SmYzi!y^2zF{Lts(Q6wiVx{rQK_AizERlp=PYhA9+ae2R?Y2gBaoIHJKXyvf zz>3Q{!1A(CBNiEs6BcOt8%5tp$d0}vnuy0EqbjBNNTi&pbqSV<4?At&dnaD)0?Y)xm;GiRLU_vScGqQgl$x8V_?y3&uUZsMs1+I zegt0~Lm-s=)RS*5Mv&R5mPhjQp3KZcoh|$FZ{7^=8%mVc4p1L0jN$zzdV|CaKOgi} z&-)8LT=?uO`0zIY%YO$EU_(~^10uLN0XP6#KN}BV@0XK;6EI#Nw+fVkp@AJ-3Pu3P z>q#730H^?0cz`S1+~E1h#Q{t)Fv4kbv4bbu1#qwflkjrNTujFc=(vOkRuFh@{=^Xg zJb<}^1Z0VUd)R=toPbNfJZHaz1aQ}Y0&piU5QLKqI8+q;6@nsMKU)G&=5+6 zfE{3ey8{jD^Jo#EmY!G z$c}F*?DScK3zTumeBAk*zOrDB=zco1#NIhzL8aB|G~G4MK0ZN!31QczCB4JgWvS^l zcVNGkL|0n>^;^R$=d}~l$al(5f57V&9us8FZLsv2dq&OK8RoGZ7P}vpC~PTtdosMY ztBcVO3V$IT?i@0AB-8A@VMk@uv_BZJFk;1XV4_z?p7GiHnwpp@d9rLNsvjdG# z={xx)Vk_xRYGS@8TYL$%u1(0zM=i52F!JM{zu;89O=l?0L1+F>dEkbLkfb8Yir(PNa#Q5+cH@kV&LRS;L6!E>w5E1w_#Rx3QCSuCB zKZz7}3YHHj&oBs^_%k5(X{in{BKTS@ThE$1LJ1d|4Qtt&YrTLDJgZ#rAE)g;$;cg< zFhzJDeaB{dWV>uE;xkK-%-zO&6D@@5rOKKQvBzg;RgZP3wtF2&-_7RsxjjHDk2tAL zedR+yLLRN};pY)ty^+G#sP3JTwDEcW({6h3|D}e{57b#i07|>)_+?2 z{db6U8I@lNY5>c>7KuPG1MsmxIXL71rv7CB@ki94i}atO1jwYm3=OV$ePCw(-sfM; zEHGaE87Tv>@#pJLSF^|eJhKLSL)*#F;J51)SiAQXK?VB$Xv;LW7haQESEEKRQ{A-= z$Mbsoh1qJQjReb=+mA?6i&HH(0p`fid@v_K*wWG=WlNpx8#lci28uG`f#PWA5WdL! z0;`eE*`Z}a8V?j9K?l{aio4cKj++iL%k>Es2_%M2cfT+`+n7uyO;@~UkVhvpCuDIr zo>F5gl1*OykjkoXqOLw+L%(yx3eDXfqaMAYqthAMrcjcK$2c52dc;K+7q;reEpr=h z4Sr|xfxa)(t+)91@`5y6Zu9PDuTihgBy9VrVpj^nXJ`(|sJ^8RPQJGhP)3 z`)-A?Y6E%L8_?by!+zTX_qVym=Tw46OAQ^9T0=}H3du29ksp7Yh_Dl8?XKYtO-1DW z&P2iJ`LF!y<+|k0^u+%)zk0cHxwKMlu=l*QMX*}{cEbRm{=+?iQTx&@0saQ;VVSd8-HKV(_tomtmoLv6~&ZEIbhZS@n(5YJ;mV+oKN)F3g?a%NvxaZpqjK&@W zOl)Huk7Hp*;^d&V-~;!5p7@#(^}DFw+VKaU1uI#u*s~U6BEZN?$1%V^5A;)P=$z0N z@$lNH?wp@k9gKbfot?$~ytDqcE3PHn1m@8u6>mQ6=%hytZKd|h(^mW{c!^a4s>s0I zk*TKd?9dVAqIZ?N7Hirw-25>0)5PCWn)gJoVBmha<=mJVts2g%E;|Dr8Csd z`^fa_ONz&u*2uUXUzQ1D_c3>~`)&QswElUK38W=}jov@kg{-U>i}H&%*{-e+ zAvu8ScKX+a=7q4!9+=06wI7rsc|(8iSPKjs@HtPRbbz#G59 z;0&WP84m}Lro2cuI+HO1(G`$n0v68dz%ls1I@-`)%GA=_!WmdD1N(jVoehEHrLe6z z@b)rr7ufNMh}gN4X*05dz|kfn8?X*$Wd#B{Ru*m`n1s{-u-=pnD1|(@E6(9!RsK^s zK-$sL$=T5ZcpJ*Z&d3ya%?EhR+Z1?%+MJB;XJQm6RB^Glw>Gr_cl_$UGb_tgPxDWz z`5UbJ*V^F#!qfk=`niZ2{&b$Kz_R&IH2-h)a}^Z-Nk9K7T>00^`9Ezs7m?0Y)m%lR z|5i1>X1%UQbXRB9|36LV!kb^!&(#Fnf2kh`ivOIZ7pC)9ur{*3nluG+)h>qCs;2JF zWPIGf`|(%$1p)DYCF?Rk`8!#^qTzq&*JTLucd~ws?SC)pj|A%93Hud`{*$mvXZd%+ zu7bd2G{epfg@qq zcMkE1^rJ`IMB53O+mB4jkV-|&<(_9UaY((agr=cWyxGe0)pIu89%nzB>Q%4^)SDn` zm`wPw!MpmNiDy=~2L$?XMD_)z;~!|wra89;#F55(qA2ilv>u+=uj#qQ-}FfI`~c&R zJj9={^l3!~4NACk3u-%g?Y@2+lGR}XiOvD@8;>`Zqv2%fu4`ZA`fmD{I54eJk5YXm zONw{uSM_(=YoFIOw?lJZazgmVLWZ8pigQTUWipg=gPoPIkQn9QsRbSj)^oftKCHGt zD@~SOj>qZLTNs$EJj1(n{@f&$gc?4Bs6u3q(H=`J$1IanMW(~HW-OyJ(iq>sF}z9A zy7mJrYgQ)RKLDX4?i;l~RbXH&LhSu=De^m%m_4$0I9VT*haa3!Co+z1lww-E9@8z{ zZqahf5G8ss;X)#ew^4d)IaqkJ4%vTs@dai!?jr}5TsRfQh?Te9$g+=baukW7%NB`J zJ~5zLH5A5{Hs}I@a^SufiJ}>yg;ODNak5_N_nDEmX+QT|SNv`z81TL}-8rG2zIj)&KLUMOk(V=r_ORkn9+Ce5hT5oFM z0+;sPbF^D$Ad<5h;reXx;Mc@mB>m@K6a#mb(Kro^qI}W@cQjTU>XC3AAJ$?uZKdRX zQ44&uHgW5A^A`N9p6cl!?}_lTZI!K`+U%C-zCKMcX0JE&N8q3bu8k8_6PYaS=P1LU87PPc^rS0%?+XJ=l>`hk< z+*9-@9$7dUa4sI9QkYuBwiDfPoPu(Goph)^=KM_r>ImjJ{Y$(OcDgwu@y1k@4$Dr1 zDv|sU?C*|7RNfC)6T0CooF|OOdrmiC;OStND|U7?nmCq>DI$DN}FhojBej%R1JdX`S^5%Yz?6E?{z58o-A8#n*_Zato z)JbJnf!juDg}b9I>Ms$5*HNs-=0R4dzGGBW6vfrC;;c1Dwi@@GT)q(do&~cbt1qVShCgEo&bFgUiOO8-5nfv8;z0M5TkXTIzJ3}z%C)jyGwLDdz^karlO~#dxCN2 zY>uiYn#q}pFbJy^juaM3JVbTAf6vzndr>@wj>=yi^Ik)*Op*i!Pmf-6#A)2v1N=dL z7PoVv_u4Wy3CYWe*CYHg49?5qwi+)WNtNM&O;3&SIs#%C8$pVOzv5|-Rjv7)+* zj1&VL)$7Y(;MHIeb%glMrQPxcEw$r(HAa0q16`t> zm)bj0jP+!rCBfq)z9UA>BF$P4Y*Mzq#^G9Ti|e;gIp&BoRHyR|H71J80H`-D{-O~)|C%> z;TPXKF0B~*1rvYibn^lXo^=hshfpodWOHs=X~ zYVB2j9IxpW>BdyAu55hKnVPTiCWEGW@SM$@fUt8-g1fO01$&a`ehF168~?)>Pu^nR zoi4A;&|}#X^E&QUKgKf(YoPUU4$5pu3b$QD1eEFH+tOrej2`k2pK^3`c6S}gsJ~b_q+B1p`>N!@3FCuU zmgs|VzeP3Mjx))$q((C$CF))~xF2}4P@p~r4IO~YbJnp=Yf$zvOnD);y6sC7$=(#D ze2Ljdr*`D{gFM9#*AbnKJ=N{CN+zM{8=WxIwqd#NY^q@AJeJCOxei+CmfzJ&V&2s= z;Xh7!D@@!y#IOq7om9IruO0r=UBXwh+_oTVLtY(gq z3~-s733p<~jg`Ilu)KrVFk+=Eu`nvf_%XG!vo-ho{&;bWKp<*^Cyw(i9*vJv?l{Q0 zUUN;y@|9J@S?p^S5j=|l?eA_m(o?j(SG(0`JL&1$le1TSdnu8KNt?aY-epX;So#(T zW0DD|BI(f5n+!C->&E71sbQZ5^HKhpqTVDC6?rdJ{EsO5bPJ0Kj{LJKo}-T?hN<(| zFAq`*KX=iQfwmc%ChA`Zuglk(%9Txdcg-XY<_*K_8__DPzc$f z3$rGF!m|32K-_=td(ur~zkqM|QR&u=KbXW<(Q1*2TNqO4+_>_LB zm_qt1_TcG$`3J=Ly_LlGxYPAtu;^b7qs}nx>h%#(Yf;b}CrpTQ9>BPg?);dTXV=Ia zf9V_nO5FHb;m+Jc`5ZXpBcPckg&;yqm0o;K^uEDHZBH%|{PB*ox@1QdQ{35l=8u9! z>zeAgrQz0RQ=)JB*B2}2cinDjbll%jUFB}y!r~p2@x+w6{Wu4;gN$zOWG>;zU7WOs zHdKJ%2ZG%&aZq7?zDMam&)16X2ZRr)_uj^DNp0@GhiRf|5<8tl zUDw`kztd9}tKU(H!08T66J%jeau-SY-RMNM_2I*l*R(lZwEFZ;Q43!J8p&_y(Y^Z{m~`|LjnGs?a?~Mig&xW zUPwe0r*Zj>g#@|SP1xDk(e-_xCmlP^p%O3uQDPv9r%3fqeA6>jx(v;%fgrsUMjeL; z$2IcHoDFj=yWeoFn!dp64^5}7d-o_6p2%4-J{ZVkt)ZiMMb_2*BoL0EmO7k5%MC_QE zEzswr$-p@41eNsJG5&Az+N{7%@t;|?%LO*@dmJD^`o{vB2lVe2*tc|4)y~c{owhP= zV3`=0Dax4OW$gGrMQ;DmA+_Vr7f-H)X6T;VfJLn+42_PB#X>2}xX0=zn4F(OT|%*9 zHeRh&KXz7JC1X;pZ#+|{U=^u`F#8Ljx(J4A3@oRvEqHW z%@z5**Vk)71!@eQYzhw_FC{BZ9WfiGB{w9cfGCa-A3+g^?47ELEee!5)CkmQz8O}Y zJtZ?Tluj(v(rTrNO00SB@iV9%sF|$9L~DZAlJp-kZW?H6eGNV7557HtG>Qx3I>J_t zDJSDvka%Mq@ezNL<-7i85AAP|xkB-k%ck^*n#M6g?a>LXI+Z(VY;zRBzD0N@Xzt-C zpPE;W+>&)eN&!t~%+QrxNQeOk87=d5Kz13?XOS#fIc;(f!b{K%nzzxg@a%Q2s{+S=M54=W#WYJ+MBgnMI*Jf@~WV8nUN+U*yPUKz(Lt=k#aX=a2_zGfM&g2!GaqjB}sy` z%{o31`Gq8a0Vie-!M&AGV8HmXjWr8}L7TF}`uEJT1)4)*4{S0TBWQ+~iKq;2UcEh9 zwlMZBdBq!zi9|GK2bDff-E{7hLM8nh83%}mu|shWpLTdNv>0`e-=wA!rLLZ35NJD} zQJHuY^vJ#=6F4%fhlMTOJ>~&b@&|Hss??4+KJPHsm~>)g*s$08=Y%l$+;+v7bPhx6 zh4yU%+8O?&j@B+X1h8LLiQwA1)sqbHj#Gn0B8Ee$OQ@Z@aU`oj9~7_JQOGalV00 zR3D=wOSY8US+XqON}wRUZqOh!q^2^W;+wfe8XiERx7}iGLIF=>GFp`14iiHsgc93{ zuMoN|afI6CL5V*0wnJ)=s|n#0w`|kAy)RgZJ=Fm}X=jBWO&V@8*y9{vFkEj!)%QkC z)W-mAlTv)UL6_fsG$VnEhuXDv1CQD0$VbXVU_Gc4>GOAT76~zX()bGat#)j5n{x(k z)V_eQIi$_@o~_w9uV|@r#M|n9XJP}7}E842KzSoBD{qR=vZhurk?a=0|lxaS+ z96g<;j~eH<;%e*D?_hYO9r#IyIvkZx?%3mM9j*dC2)d^oLG&OuedFub|*6Ueww7uXH+cS5f@?5_uJkx&4 z%pC~^FQ_tW__-j?NX@K9<5G&9rG>-um(dk(Dg1=vx4lPszG0EP+45qbU&gRFXXIfb zUwPJbdNw_~8-@$NGjCAL&fQz{x}NIp0BHaVEJA#-S|&l`2Zh32H5N9(s&^{nad%zl z_3yBvxsDj?_M@m-C2RFBkWW%h=)w=S!-*Ab+%j_tfy(I%aNNVeG`ot1(OkQ{(~QdowzIP zyK(4}q=qsHUJ5@SIy_o4bk`S_mAITL_upk7-|z`le!vRS`Ar&hx+{ zWhfB+4Lb2``qXTpb9ME{+ZsQ}zd4=J3udyrz5o9jJL{;Z-mQ;=0xF1fgM@Sl%rG;g z(%s$NB`|c0AfSLKB`wko(jbU{bV)Y?(lAIj-otOb_pU4BTJN2|Sl_juIQu+jKg^kD zf3}U(u~%~N*4=*g87P?>C{A?L`_;oO?|86Bi~VMTr?ch43Y}ICoj8+PPgqi?B0;oS z)}%|)8=UbfA>`3^7Vh&@FaB!dX)cm2tFy0iyNr=IB zovuUyk04C{g%y`R(!dPi=st9QqcI8E+@i7Zd5Ik<$j98Dk7dtx?Jlg`4u8HKE;j#h zWOce(TKqKez3V4?136jQ*B1<++)FHc?-PrrT}y$0i)<22ywAIgCRndeO0b@3m&w-t z#y@Z*I#dlyI%SQ+{JO|WmbrI0er_{TFr4MkG0&QIW-k!%F1pz&Nv~#ql@C6pH=zEd zDytz9np9X&Gs$f5qn9-B`Nw7Sr^nGTwhoo%TOsp%^LvHKc?11Vv&de*Kp=$9E*P7l zEIr1ZR%#y=?z^{R_j9sw7*1aTrTet`Ct!61zXbc+tA6_Um6wA(kqOijS0~p71$5o8o^;18Wah zw_HprckYjVr{`kOT_J?_duS z1Ev@j2~LeLpp~SG@QxEz9!pOBI$&?vKu*rDQ;kJk@l6V0Z14O$R4+*Wla120CL6D-7MD{)neM`n0VFS*px zM~7Ymp(LGFC2xFo1A~)E5)|l6W7sT1?0eRZo~YsK<=jhwo!u2{Bn}m4&}P>pX zQPDEX75R-}cdnv;=<7=tk_=n~k;JrYi10mQ*QUpyI-0j@TuR~MtXf0c+#&Er%Ad)} zREKZtzFIv|;DuMN)#bu+i52OVUDEj$5IZg;4K+9q-sdg+ZV#wA);x``NO<$5ye#9# zJ#f# zCF?n8^Qx_%;p+QU@hbUm^RQjHX-9px{lPRn3N!~|U4HEjpDE?UTCSP=?bLCzYGhgi-7upP#%~efocM;@#ZwbyxuId%R+{RoA4V&jBJ|~pv z9J%wH*4iiCb>N+^8yfMS5Tx|KFk@fa|oAx2;-o7^{Bc7*CPGMXUS~0$y16Nb zud=#l{MP%8KK@t_B2e~ngVs|GexW?_`$4A|)$gcY?7pW}#yp_RImY^c@vPu@A9ldH zP25bHrK)%KYs8u%sC+iIC0*1}Pibm_ynM3C%I)6O-NwFvWf)ttVa_o7t0YyjPDLerC0wr9@J|<28zwD4+>Z zIL8#MZcfKk+>b>OjeaIW)xXL!v&95Mr>G7N?y7vV*Au=Ab{WLYriycVpf_&+EQIKQ~63J3b|)l|$d#NpI}YQeLM%t*L!&fYH6{)k4|BG1O(y zhGKWHVZooMzrKT2|k=e08v1zVT2$M+(%J{f(UaXEtR=v<1;o6m+A-SfFz${DmCA!jOx9;JHt zxt3M(L>a0l8g{ zvYkDCL*1miT|-2UM*p1@ODpsoBBkVALlX`ir`m&N2KUm|Pql3jtQDgqB0Hzo0(9w` zaY7bzon>AGK`DobZ*|M(hJYumD9eR)d6!aVv{3^{>) zqD`8jDVk^PJN>OX8&PCmZFqD1CO=4wXZSG6ydY_ zJeZwRxlPZpEMFgdhLu|(Y}A>OaTMG;@NIr{Tw+CjG);YFOEhLWoFZUph2$b~akIf) z@VBVn?3JHB*r;D?7jhx_>7BWsSj&SMzvRv^>O^TmUy6XV-$DTdXyquQIsWfEDKuPKiTN=ouK@* zo%UQ9_nD0uTb<<^%2MMNjax2e9l->8En{#Al=-6_J- z?URSgqr-bGnR~hTmLy^?;uX?U$hoqaWnwol8j`_SJKd6T>fdJM^jfAy$i0KUv4)9f zj?Nh`)*{wht*GQ#8$UH=Eu9{YAKAL&^b|!F{_YF1`pA?`PezZwuGs%MnHucSGUTyg z_f)s>M0lk#Y*8oja90CP6qCypOvYqhBHn{t{obx!*@Q~hOpWLH>!YTM*S|i}nxOTZ z95bqr#|GrLoKAdLjVJm-KKo3${YXNCn($|Ue!!3ZGf+=|-6%JG5x>8Pmvtj(rMbIp zbhE1&N6dwKz^fr=CG(@$MZS{bE_TOy&(}h$RZ1R-F~+ga%tb-$foPdxCznE6rE2Dv zb(y!(REVR*7amCmGQZF)RpV0OQ%Q%p`nMX`EI%bV=nM+(H7S{L*9g(&L=?bF^y^ym z9iHvD+u9N2JvFt-8h~3q_a^-QR;qK`w#kUuW3wc4P|u`1_fc)>4>Yt_rK*m$*hGd^ z_g%%i>r)sc+JkHwUe}iP|ElLK*;De>m(dT)S(yFS?ueQ^4*h+vxhEi5k$zD-3>ac_AMArP%Hg}Zjpr$z$Q7=xu#7|*iJ?ArYcNpg zYjHn7p;z=p80sul%X!zMd`1=aPVsDb0M_JwjH&L@f4IoMA0wBFf>q|S!WBrh#Nl>JD0ZoWAMvp)kL%8P zhG>P69#>t?t@T3%^0o)BN<>&+?Q5`{iJo7Y3}PDNw}?Et%StbTLtvRfsFC-az_CcY zVtg}s0d=5L!<352(uAYl>3%>v*WUSVQ=r{MZ(mH}XcymiAIV%$L|m?>;gHN| zN5*+n7UG85wuzw&y^Fq2fd4@>ZRcrO3+kPsrthq=CXkuDU5m<-_hDxP5pv=XeJ8qy zfme7tJx9N9J@i8<^*y8?{z9*LI&oO%d&Rcw<&uVZ?3|Gu!TS@0U#UVLVn&xfi984#YWPV|diw51XfJO^FcodzfnC0rrV=YD&L>v!vXpo_$~ubX(XJdAAKP>k4BKH6cPJ$B zaX!vewt25UJr`HMA;H9436zE^oB%5eZ)-7)c6#dYI}9oTNdow(h9mhZa`dWvQmOiD zk4HlHR;BIRC|^UCv+<_ctP(1#MpihIWm5KPPZ@>>%B=)LPb<-~xi-jZo7N8-rEs>o z)^+^tahM4`Il<(NBczEpoP%I!)*Pq@R_(ZS65&z;;hqq zdL4*ksPB%b(R_MJnjq-?$?VKlw)dXP_ksv7FYKp}*K0oq>=bVsXdMw>3eG-Z8h#K2 z75)?%PW6A?51$aX75*O2&At_5!((K_WMxS~|4n$Kommz1bE+%J;65M^i5m0(gh{{X4p}a~^=Bfux=ib~0$4@$8XdnolOB9%t z@S}e582#}3`*;|M&(As}Sm_K8gDE;X>N4rCrtEGYxYUk4*_aj8{VrW;VnMu(-U1+$I~3Ce&_rgBOy#AJe1Zt_AJ#F zoVMCE{`(>QFSURoH}C|Zv@i5_Eeg&=4<9{yJs^#aZu|e&!?j3N>@^Cqd z+3eXUyz=Z+=b1e`=g^ziKgL=ZZw-<<>4Nhlt3q4P+Je0L&?6m+FfP-5mi&UHPS7TZ z%KT=@uSlBjhwmJ7ay8+h<0$pP?%?l`>@SNj&`T1!( z-p)QogR~=Hb$hyInv$X_0o7!%O8N08?x~VguEB7yXci5HOS-FG4b)X{61_SC`_|(? z#SR9MuYuhhZJvq7gpvABa5x;0-`6rYb;_E0&t=vQnN6@-1g1e zw_Gzi>7@nn`25!G7gIKU^X4=naXV^!V+3}(Mn2Eu^VAb;^yf3I61R=T2;fL6O0kE- z@pVzqSsYn=-h>@mi`c~q1okx+9-um?uC)u6vvfRi+)v##vL6|rjBfZeA)b{qU)9DNBMKaZPx;Kzm3if%B&^S z6P{qj($?XuV{B=pA1`g9r9bwAjxxbwOFptk7vn8e0@2I2Gi+GW7?vHM3TT9>zY>BeH8lBL6)lPK0Vc5WcB?*A*me~OI~^M#-4Z+$aCN-$u zJQk9U6&J9OdDtRcWQ$fYx$fkX!t$=qwq~_<#xb|m9-8>ls&>mgSwltK+uu&dreRm1 zwcxe|ML#=E`poBD?J}#fpPhEPYkIqZCj~#V7tt$TZ01(FBIYI!U3(@Sa9{%tocgt> z;f*vGQ?u41UH#+J2N*FNQYS}We3TV85bt8zUQ0#g!Rr~$UayV$%d!$`S7cE(syzda z10)hk*mD;ABArWI>r#Lp^z5C@?tOPG9cO!uVes*+xHrW|km^sN_H}yqd*KIH4Xke2#pxSMrJG8x&nbQ!$_bj`7y~R$z-(dJ+pJF;dzoNW0 zv;3^Mxg{#6+wZxyI}KG#XdXjF-_@7v=x%at>yr$T)NZ;UJTyp1+#vG*Ljt2Py5KDK$6)GYI2D>kZmpZg{; z`GlKHUA|6;nmzYknc7bp73zCv)$L+1bdn@$GfV!K>~wLju?~8cy28YF4@_uoV9ZuX@95(nPU+7A8){!SoD2v*&iy(6isMjip4MZ+D&vgx zd zme~K%uG5jOKQxa2(E#8svIYY(18&$spujh^8yWyzMbfyhS+F-mru6AkB{(V3ppq1G3+d#sK}3$opr1Ab`Gmvn?3lJ>Jl`!C)jGaD#b) zystm!#|`EKm|f2&^7+%h8+MfLDC@CK%g6T5EzgM zazle6-475Hb`40lVaNNIwtUx2)<5lF+yLO@rUrmtku)#}X$*jMi!?tN!z%nCiP-Ht8(i#GD!LFgZH~Qm6dS<{}yh!m1fN3DbNk9W2 zB{%v5(xU#NT~~AXb6mhx$Qr=azG(-7A^QOImpOxw*EkTakm5MNFhPn#U@-D}2I{#W z`xM|JA^8u$kKbHt*G+G(Q!p5IjlTQS2jFYg%1w6r%eaB(5sUmmXO{OUjZ+|>TE*7!ik{sUZ(+#e58Tm$n#uIrH97#E7P=Kxm^v~boG|zZEF$?M2>sug9Fql>0wsvL+D-iQpX=ZtS6Sy6S6)3KV!K`F&>tJZFYzv1g zA`tcl_3BIMHb`b z#eiEGozVaT?*B!LnY{%ZL@Q@&WD5rwIe^R&4z?gA0TGZA6u=U)h3nfRY(ca_`c{tm zzyo<(gpq?G{I@5_A^`cq`t|^hFc&KeE0l#3%mQYIa6&mBu&~eoAK* zo-?WadgEMU{)=QWn1#*ktS$6igb{|yNI@bo|ILiE)?UOoV+IDZBHRv;^O`WZ2oSYnBHV~8($^->*K!K<1oSZPEOswny zuG)dX7u5fpvvwdBz;g5r>_E&)zqtL&Oav|9aHD@zg|e-gZe-q-FzFZW*xl)N(z%2pUgO~xyIamUX2AcHCya6=>*n?Ele@pUA%YFe# zn^~HjRRpjf;F_$1CGuJm;5_gW2#hp$5ctf>fjgwagTP3|1%Z*u3SvbH4#bL-6NnYb zZ4m2u@4|YH!g`LvdXB<+j>3A5!g`Lvc82}1!gh|rc82}1!gh|rc8{vliBz?aLA87}_3QNPSOzceoF0;aZ zjQ~IG=By7eut#=Pq6k|+E&k6~CluK<4Cag02?jxtj6<5HC<5pMp-2uQ?*-2_9#9-s z2nQ>O4GKO}Ffm(%gEa_-Fs2mYdDbbTZ8D3L0WZJp@4syQ zZ0;n%L}=~sVUdAzKmO~DJl&YuQK~8N9^pz~RNsYDz@A0NccEEP zn7h~pVa*#&f9-SWI@Ew*Q<#GXqXsXM+%Sz-Cd#~Arl(|Rc_hf8h1PbcO^$q=g{)BT z%?}!Ov`Tu7AO=N;#%nL~MVP(ih^{|%K7GHA{*5aF`^V8&x!5N6la0*@rkbV(jr)z? zs8)B@Tt~gEIm1!nch)+WKD;4lToA)0^j9+-=_7S^8UZ6Y+aPhqHzX97eu*&H*2U3ZGKTjx?r3MwWhP zJmt~-k)xs1Ry>lh6ju%-)+JcsU^$h~{|jE6_1?PW=p#$aeu6g^qxU;RkblUi_(qg_=t(|YQv{XHYe zloS2#%?0l7Hzc|8tu;+a+K#7x#_{gV#ZU7F9a2);(BDU%1U8x z)@0LS?5ondYjs#$ zUn7fdf!_1PfNdBxPsWCus{K{zwtGxnz9e02x>uNYCpK@*5lvStems7N2&$lvN7Aa% zCFx0yk#NHJb$wnXa`Ud78?iVgYCd~A@BB6+C5FOEIP;ij@ax9~I{n-gbgg{rENc=G z)G1KGz|1ceLLMXZf%!&OG7a6|a=Xx!i9tx~nvu>1JSci>`v!Jf?0bD^qwitHnr&QxQkw}I+t>V1rWY-g>@T>v>0Mx! z6hhPV{*`(|mJmD|66$rsY(`sljgM*eI`Z-M$?gHT63n=c$|48Bg)H)3;}Mphd2~6M z>9=lEH4&q97~jrasbf@Ya@Ep)URv3o5OexSsSzeX7%5tv6C`aKIH@rr%2d?rKMxfw zaYCKF_ToXQ3J&d^Cvi0?%0llF-%2>L!e(j@%VrlIWnS_8pSOSKzFWa+&7lHP-l zVGb{+-NEKj;)m+y?R*ZDjj!(+$EyxLqOLT}<3dRMXN>H-wcp%Y@fWc^bpQ(ZEw2oo zV3`EJztVZNzsTD0xtx{to}P)OJTd(d-9Zf-)rMgYyY=w{4v)(VKM3zKe{p++sC>!R z9D;3+LZ`P_8T+Usokd-j(8K$hiNneqxy@7BcOYC>*{ex7&m%3Sz;DVt+hc`FJN)x* zl!iDuw3KdP^fh)pezKYW>~Z!jO?(Fxi;_mB8+b`XDd8}>_8I2|4w@x!A@;%X{?pU2 zq?|h15$)0bjTcGAcaLsD`C%1JPpvF!Bmzlg-0aiLt!whypD^wp93|%;Dm>AdN7Lz0 z;}xqgGxR^V+yjhH1|DrYcJ>Q( z=b>YznD_s*T-5i;v)vF)Wj-9AdqUc)XU? z975|{nGG^)1h98eO%_vz7?QJJJd_@ECkUm+3l?}y>KoYR&bX?Dky-M4?G6%;`eTA) z#qZ4`rfnFrK547l@riQC%@&^I@1oW|OLLHOmIX)XmffhHD9={G4hijEz#$P9n$Nz$ z&Uq(Gr}naV)%~SU4Z()rET5WIoeGXqXLV;kBq{AIN~+)EsUeHp6<8H+4Ygdl{!It_ zaN>CTvT0pyudh$NHMf9Cf-eI}18FL@$Mbn_tbKSPr-%n{%h6L*p%I3tsY}7kk827H zyKE>3Qv&V>7b^Mg^?ydA(=3m_%1rWU+h60Q*rUDcj+vUKWy@XyK7qs)xY4Z40j{98 zj#Bq*2Xtszmb>?|lW=rR*prHQBNO^3FNI=$YMz@CSI1gyB+R!!^AF6*g*u{KI(5-c z+&1+R#}!4T^B5Tu^=lE5jrVF9Tvifg2%R9s^GGB&@35XD8cRFA@q+TE(cL^8&+8#? zjdLk27LBg1)QI=de>%~l2xWQt@#}JoPMwUm) zPZ8V2IO|_onrJ7j$y-^f{SrS$Z@Bga ztH&#)`HiUP?Za0VgrJ_F$o}qO)EBn)c|CsAJAxKU8BUt9A`foW`g}GUfg2Y%G5a6G z_J$km#EV(DCU%2zw?68$IN+{E8xz*&TNS8{HMseiT#~G`lzI|p^LgX@4bjt6>;vkd zr#H@A@AE0rFDD%7y()fEOt{w1yt8Q{jA~W*MEHPm9 z{Q#?<@x^AQp=8D))n@$>rWdd>=487rR3;Ggzd|Y~o%fYA+R!z2#s~Pqulu%wT!$C8dtFhXGah{2dZb+q|nW!(KWX zbdL_xt54O>#>brMQ?-*Pt|%V*ODez4)B-&g-MKf7-|ll*3BTRT-Ac*op#iTI>K>!n z+J8)~l7r_ena#^s67p7Ir->m@skduD{zN>0UQ~s=sl~a`rKyD3&$2Y>k9d6M0Q}W>B+r(afW;htRLKBa5&+Tg)=FFaum`5Elpp0^|;d+Y2Eq ztu5g8@bjAgL8%M0KrYa7=I#9@Euv;74z|Ezi#+Juod>RdS1&fexB9n#kMz_3M{sNx z;La5KFX6=5kerfNl#>)uKIg~3t}oDek<2q^@h@@Z&xFbY0mFnvIAKCCPM9b=D-2i+ zJiCI4u(H4)oGk26mJm6;vjzXOZDcGk9LXKSE;$`6hURs5}u{~bRrm@;yG z=^yb!QA|KqLPeyb_~as2F3Rw4Z4{}kwBimX2#~TV!omV!^=HZfzQ~QU zVd5{z|2uA6)aHL^t~?M31Pp~hpsYfyED#}xD1;3H2EI9=z&G%m6L}CHUVl=z^Id7oPtT z?iYhZl$0f81(XFO6wkJk&bk@l|9EtPB^QbQ+s@#hcQc$9xbe5$!a1H(OCg>Ia}l`L;no@Y#MHF3$WhI;!i8ODAa#AX0rhm2_dWuEga4^&;Jzr zqFDbMhWe+77X~2YF4R9@x-!DS{%p==iLf$)pE*8%sNSp>1|j6u)<3{Ts`sBlUKoFn z+hqR$lJ#s@`%}mZV-Rx7?H@n_+me5Ud7;}z?%(|b%)ch{f(at`0{;^7Z!8*e!Pt;{ zihl|Bvu6el1;7DU7Z5tIISdC}(et?`aCSi&Y2p_Q8hnxD-%ZX?A2_VQEGPqFmId|* z^(}sLg^>G>7isy|9z6y#@FK9o{(JG?jo`N}Ofd)ucD`ZCECvO^kc%I`zxMlB^m8+l zlY^b}&o?uXCkQZ@)y#~5eNQk83kI_|+|0xj@Hoz{g%B19TP16KLpX5mKtf1JP~Q$X z69Gdmwg8)sN;3L(k3q2WEmdYgV82@)ZhPjwBdpF`dX9gvPS%%nsHQn_xOwQh^ZENy z(OgAsDY3~eNmby>>^95Wa&N!#5aal}5THw-gRciZ0(lMc+$Rf1O^9m)fxSyg3_FDq zU=8fgt@h_u?j})O@020ddgWx+?P<8({gvl<)-|OJpK!mIM=;G<{V9)+KA9P9+xFGR zCU+fn;Az`;I)wsv>$$RuTkp1gl(py>N}peMOtc}8;|R`4%(~tGUSi_CMC?Xfnf-X~ zRN;&1g6yO|zk8Ldv<+rhn7(VOHy`BO^LSfaH}WRJubHoiYp7Y}XrC~#u z&v{^2KDYPeh2_(?u!rkf7*W_})1llqFtD*%IF}jjf4z%+&~JCTBb5B%@`QU&MT+A) zxw=?>8$AccWb1X4+2?49S!Mn0xA)%IaJvs$Jv8XnzA@eRhD=6FOUr9;Cfl_O#uFGvJw5@>wZgV{_S2ZD^V;$Lvnr=jTYhYx1xk zZK&NTb?X^v>L55(ApWue%rm&bdggM0+hR37U!fYJ1g{Zq(Ydd%Lcb+gz_8=Eh2(h4 zCQBJ(Zn$X<+u3!mvm(K}R6;4ZW4^)pEgDY$Aq4bn3GK>CjUK0J%NFY(=Y5c=xS2v5 zPEm&AgIw5Wn+NWrrdX;2Prjnr#)Ctyql!|D`;k^^glT+fr5@2q zvf_@Uk$P?AzNsD-E6H}?{>^IsI&B`F{F~SED}xh#N{_2ZTwWb9DoUXbp-|qz2)14# zqb1C3#Mh{4o){{_xlB2wD47v(*=wrxO2#6W-x`-iJGSPRR^wiMZ?a~^!Z|BEljp>? zM{0RLUa19L&sKU*ci{BSPmUzpkz|>NU+U(ytT}ia8c2};Nc+pw_t*2gx$`m)zKFfA z6BfuvFZGlNDW|+aI1*-gfZGh`G_AY~i^pEu^?K2rb^N05$crKmuYTi!6blw+L)h)r z(IC?3pixUd%lkwV(voe=b6eyKSmDr5UIRuqoZrk7gFfMU5YmMffgxP-S3dZB7gr+m z?R`3E#A^!KQ0se@y-#cI;7Z#v_hZRlyvHf95m8n}I!>oGTW%U8LKk8>_|Z z4*W3-{{-W3_Rb)>!Gks&e!@F!jRp(mg4J))9FFvcav6u5Y~OvyXcZ(nkw0Nx7Q^a1 zqz8TInA4k$19YiXo6EPandmYG*Yi@6dqX(gV#1>za!DlQKE_-fHBm# zArwXqlNMx|W2RTC>5UuUI7(+c|(gU67{{a`HfjV_jDwcf6N^AS|TxYOF-UasFC8Xm|_q=rHZ9Cu!qFFd1$U zx*3HmwTX^g)`QO!uy3jroE(xH9ZxjnQ~0&3p1h7;7WV9Yt!6UW z3gPB-J5r4IFMT_3O+>F#*&j~P!SoI{?ln&8efiW}EK*9kKyf&jVb@z@&vu+C}t_Oa>PM~@W=KFuOx9bV#D z=W9aifpJ|=shMnzGM#XhF$H2(AIQovzKCY>T=iZG+70U=iFDx@Gi!QC55cTn`L5a5 zW&F}6_Awf!jr6{V*Uqqj*OxSFai1PMbB6Z!m$DQ5c2^zrC4PG*d!3I?0P_7VS$TS9_NlPcH8>PCS5kyGqHM4*U2D z5}kgfZfJUUno9DFypE23fK=xSM&R1@knG|P_Qr%sXRhnk50jo%XDUE9Jh&D;vffQT zUF`Q*?QvV}L0Rf|TkI!%Jo-v9rOSb<_Eh=Gj2n2p0mmyXCXROZc6In|uUe*9f{cm$ z94Veq?JByHV}B8YSgKDx>V3ES4KcOikh)p`zE& z{c1&tn>mx4Imb!2f4%X=Rh@3{;*Tu|WAFL5n{I4X`&9vo>uwb9j&tBn`*js39z{#1 zc8u7nn@*2iZW|lc8HX0^2R2~SROyBsr-WI$Kde2hF#2v*z4ff6{m$)-Oc5zY<2S8c zZ|pC}z~uAh`tctL$$RCVXDIh;@Y;9|wPJV0Dv%A2(y}gUyeL z+b?x78S1oVspl6~NKPJJ^9Zw%(wkX>TJ9!Py2`v09H|_9o6Gw(rupt&C_^Fr*YT*D z#|uRD>MF}N9hnRzL?q*50lOB_VHxk%hl`x@Cu(nKwl>m4$WpFM#7cZF_35W|wgVeUIeeQ)O7WBeuF zW}FhDeCd-PUduW{oA&I=e!@7(lj?&=rQ$Kd*E4f0DEE4A<}}o-5i|I*rRgaYpCRrz zOVMm3szh}23JI;XY)^%MWPWVCa^`VzfE(d$&4J^Xn|yKwKl(aXKkXk$sNkr8-Pg}* zdzzT6I>NWWg)(f*mW6*G$E<-sYc{A-|DJidy?``{o|#htq%L|bNei4zKHMgiwRQL% z+$jv%gEJIom19ngXE42%bLyc|O5#1a;S;%5GP!Rw=?dQT;QhpN$n)xSI`r*l4<_=q zFG}=$`35JGyDxnwc)Q=`k{WzgJseN%I=&+zB`(F-b*cCS)o^Uz%UxMSr7N zC2jf?llsJBh|o@2So6L*ZB*$eguJEWv+s4cvoCwq=P@PS!oO6pt7ZD`2hXd`Rz4%` zrbpWEIxMrN<0Ah7R`AH62DDQ5U`z_qZ2k7`2eSZI8gk5KytZIFtwcka9L zseE;_BqwMer^|T5<$X*gRM&_N^+-WU!tNIluo(bQ{P;SVeJT=^Ue;rNXF1{I6^7d9 z`Z|%4VaUoy4e#%pm>L=Q_>T~uO6^i6Fh`C%Np>LKX#(=x*J&t~S?+f|m1T-Q{Oxj5_E$sHs1Jlus*nEAWTPL%x zk2oj_%;Lfj6$LyS=7^WWv#eX!h7&Z4VmWIWyyl|)pV}52?WBdr36D(sy+-T4JQSac zk^ULyz&XJ3$=oJ~>EIE!-oQAVdsX8~;iq60;n#JZMSeVCl%M5-IoL=~$v!772o{#U z^m8qIw_z^lKmD#~hhMdbx?QrhuuRr?3$nGxkn+_Ovv;VFSVGm|=%Kl4mtNM5s4i9T zlx%M^8$`%rgs*U{uyRq1U#-%R1HHp|Y%81CFL-++HtVDYo433Ai55ha`yPPZ0bp0s z&-Q%{ADgjln0dtAFj_SKo_k>EngNz7K{>A9xcL634cZn-Z%Cyk%SOIZQW|C!#?f2A znYefJw#7T}P{6byR4pJn)>OE&Dmm7^w`jJj-aw1;flZi${|)uS)EjB#%i7I;{2Di< zYe)0H0)CPKbN>nLgD8z@{+6gRQ5VV^zE&01@87>)tI)(NV0R85#-EOPQOFxVYD|X))cOP+GB8#j#h$zO2F`s$=FTZu(B*sY~UgA`D)vf+&CQZ^?16 zb#lP*$(W(tv%O)rIJ1uV!LhO$jFnuKv+q`mpy#V?g+h(!WMki#MoXxL#_J5L24g<2 zB+8~LoR1Kp-fft>vRTGe!kfJ@3(y2_jJ&eGCo_P1!aTS`pWdWFcJ$y#gVxPVo8aV~ zo7em4P=?pWJ0=FvtMjksXWxe9PV()=zQ?vQGG>=Tg>^}yJjydH%a37Fkztx6?IcnD zZ1GMaE8rm`K6%G}&nf7Swd>BDxC; z0ed*z{Xw}@{#;PCfM3mA_vJL2dS4yMqP+O)gvzo^DHWyQ=-Ze}hA~`YPy9D19p{To z81xlV>Bs6+5|ZebnEd>Q6NF{58&vPoMjAPU5F7;@rn2#nu4inB`8&g0yv$baj)^QUVDdMX!I9 z6p*Cit9h22iQ#U*$($uQNbY3+@+7Gi+GSoLv+-DJvG5*m}ajiqeFgZ zrSFHyuPsvcS6BQroxloZR>f2G^9Gk=Z&qq{6JRn1b!eD;3e$KfN|HTFoyT(!>bw+J z;IMz^>6H%}#V!p4r9)weo9f@aF*VcMEw_h@+8Vjvqla*L8}_>9QaiyPH3l#=vhw)$cqv#auuUsN3(+2yumHMaNc70NyiHFfZ#pj=p`YJpTY@?ZoHi=WR79eVajPxm-Q$~e6AzSs9rPv@N#2&mBm+vcUmI^ zou9Tw5v2~FH>N9K8yW@E6NTSk{jS7#o3)SBLZ4oJX`?#8L7yds9~rz)L(tnnC@K1? zox*wQjt;LCBT)%nP-r11b9HLe3{_!TN&e`%GTA)XCc5vHsx0@*?TlrX2Y0r>*#pgf zZeR;^>(Jp$-#uwursq$5i@)yd@_Ol45SFg7A!vDyYj+Jdj!LY)t2fyc&U1h*l19~r6}obaWd`GPP;~mntl0A-td~e z9PQ)b=!U$dg-kY<#mReBTOo{=VGLGbla+0l?j;U(&GpYEEPV~^rf78-z=Q!<4DIHT zhvAJ(l7(cgUST&e+Ul6%*esatRaGo>_APs>_Ue=L2kcjAB21`xntdzdnv$nnz#k{K z#;XsW=wgqmRE?W#r})hceHfc>id1JWz4k3DBSx@<4k50~x$>BWRM8uhp%1bQsAY(; zV%9V&LN(_xhmkgSaRr4iEb~5RS?0Yt8)&U`U%MRSTP@s=vLM`0JW)NKx95z_ESNU9 zU#$DXdMQkv_S?}ewjs=8+_O>Lpofsi7R_NFzRC5${hOe!Pr3Ruf63^W=`~!jQt}UO zWHC3GBM26Sk37Y>6xKYhS##d3)(C5U-J|NNbsPpNC=lCi{XD@3@{(b)gnu)`^bd6r zs$J)mS^Xv%>W;mh^&)bKUdD(_Yqz68bi_UK&@+HRQ6uTw(3jBRTO#7Y>!i8C53{Q- zGd1?VOS7d=6<1YTZhT$jj{ZTCF#oH_QQ~FoYs-tYckUX!t`6GJF_O{fqvB|-hRQGo$*P8Pao^KY@H;%uEkQjr5pb+ zwGStM_{nl`=7TR7;rEVeP4TBhl+7L2uuvZuwGv28`el~OuIAwn#p*ad!nH}8zP8vI z*q5VpYVy7!=QDOwTGKnH=Z|fNQks>F_VPxq_TV+9>&@H`4K}LKG?_#hW)+bvppev< zA#ErM>v36ja2s9Vs6QH8{?ODUq#C<0ExkZD?5dJ?14uew~Ms#H`t z`L(v!x96=LQoLAU*vYi8~0E}rbxyPX{(2MU6>NahdB2ak1IFct*|erz32q{*93H}1l7 z7#h^#r`b~8s8QM&E)HMoHJQO7q^QtXMIpZz`|yc$hz*4&EkQ}iZt*pqunE!zS5-V( zNE?G?iV?;b-NUcw${4y4Z(mAn#t??QE9hE(){x7s8#2-Q@`*vV>SW+zc+RWVNKU!A zK%u%Dol@mGcqI`PG;W*06=EK)D=s2v6$^Z_3-m7zzXB}4Fp36{7W=5a8sFw*1J&8P zM(10`FvT&lu7oW(bbJpO4Qj@ZA#g}Sxvj>0oA9gbZ9&5qV>E&j+{XCVuIj3P7YpPO zN#KvBmRG1vSEsUBl9*-ljg*anbq!xDYmW)4*(G*+tx8IHO<1F=6~@~W7*%^$Un?ZH z=_4<5$(Bv==b^P$rw;lnc#SSmZ7Fh}RkARZ^B(dm=S5wvDeLBumzZTuExL{-Mab|{ zvx%=s^VJRcYGQd3IVW;E>2(ZdOWd{howY-((r;yE4Cr=rzA^B9OY#u9$-i|g3jTpM zf<1*v*-JG|ES?^u_%Oa$JWc(wcK2=0QlFyL`iORn_PLao!VG<~p*I;gCWzx?%iA!R z{AvS6XlS(-$AcxX7_oPfR_0g=9;AzWSHh$H+MxibFPU-<=5_gqYag$m2&$H5T75|z zgznm?-t+TU@6nbf%pJO#o^*$MCEnQRn|6pMGf@=}b}gw*(u%m+kNx9``KIT&q&nV2 zyZgAi#O@E){5>SU^LuhhZ(dGi^)aWVp^9F!N1={Ly~SCYxf!3ywqDUrV_YUzHGl*E$r_ zQjrZ+)GWkB%iEKKeIe13+qjP*_IX@yCt*+LtECTm?D@`b=NKcKtf`x9sT=L78-NdR zVNGpkwDSh+I&~npIw^R)@O_DIy29hdfC@d-fmrpO_LzEoyP~cr3RYumqS9+O;=dn# zYGd&!UJ;5P$ig*Dj@{u$FD|rFaCw|n`6NC=XW2A-3LIY` zm*u`hchaHxr3VG0k#=1vzraMxfmQ6)TLl#6l}no4BYSJBRO5Ivlu6|(vTru{UTc~& zl9a_fUudU@d5>!sF{#X9!GJ^bRm87ez-`Zy36MLJ^5y+BUV-LMW3B1rV*G7uI`7oA zv}S%ZYBJyOHIEXzs?<+k{lS}zrlZ+m5HG7}kEO`^naC}Qfye39Ek#%}8gm?5dC6M2 z@jChOI)zbOS230zIL)yqYgr53eY!oIG?5{%Djr+1DiULVeFG%K8;tK6cH;|?|I>~y z!wU7n26QjtFx#`Ql+ckf;F8$-V{wMxlE=eUqJNUdsOIi8+#xh z@OAK|>jt^l!d3091+*e43>mycZfB&2EQqGr@h(iseKuChr!I^eRRynpiht=r)E-nE z*TlD~Co_dZPD`dJ@?o46)f|tRs3mwcRoIW+lYD01FkMh0dJ<}v;{XYKh*m6mvjU5! z)rgylRTt=^vZewfzP=W-)O#O9?s!)qgoV0Z&3D0=Z|PQv=%sZXu2(PZR6;d3RwAB-9mH1q|SE?%9J&Kb?v=@v07VK*B1(}V2SlOSuBTRd#g_YHCEgl z8O2tPHAePc>;(bi_-edrtd+`OeUX4339`$KmpLDKCZbCsFoWz#DTXB!hRBoHBHQ9? z#vmv9Ox5^D4bFUA%MVOeKRRX{oYtoV1}AGrn30mbR=ox`NTuwM4AMk>Xe+$Ha9{0h zHRlN1Q0-bwA3@j@Fd6UZY^HW4N{0yM2zPhK@uBiBVXYZ@lkX(L_F9N;jJTBwKj(=+ zjc!gps($@lBaoGe>6=b{N-bgP(;h9B)l7u`piLSPj&JZSbu0rT64CCE_t!Q*Pz(*N z#g#b^KTE+-o{lY=L03&Aa#`#WJj~6qM^)|)$O6q)hW4-;pbZtGm+P&e|W(41=tgc z_f3m12xbb{&UIMSDy_b?(b8|`(&(IK-=-CUA3z$v%Oogd-*na(Mergua<>LP%rjY@Uv^tqBg-rH$UsM zxl>m%in)d}Mlap?(0+@;Hy4MT9)}2BQb=EN>icvd@32#9Si1iqi9p1rP%2J=>&ETw zJC}U#`^)R=d?Y#nE%}D#)M`d_ zw@5JP@Q3JbL`1!@CBK64Y9Z^*9tcXT{5CE@Ro#djnG#wSjNm0zO-3gh zUb?wvd(FXK(w-AHDi`Y0%ilsxX1o45LH6U@r&E-tZV5MMo)MF}6vMT&?$!pb2Dgtn zTco~_W-PD4hINVCM>U62Q9wkgJW#H`!krrns7~u|ni9N}ncrTji{K?H@6a2Ak@ekW zS;Ai3@eD^7=ET8W;-F6&&LaY+Q-Wx5-SEsFUZW+?{uq`1qLyFLEqu!P;bSnMS*OP( zo7pr2i_-VUmqVC*s&=7mB3Al*tf&McAp~&GJ9MyH_c-RU@@}&Dj9JVTLzA%7?+q1d z&}6e7g}Qjx&Rq7SMI*lwbp#E6!IdGGbUBuN=d<&m&IStR-%1-g_pBf=+R>0o}kagI5YmRVL$h zo}im!3K!-Zucw#NLv(~C;zebBR)>6~#SrP9Tc#O07V_GuhbNi28&;TnT*HQ?f+m@- zmAw+l>R*gok@1PnDDmTD2nexeM2U)_rR=Yz=g;93j+0*R+cQ-SrT9R1#WGu7L>xWp z1-~$Xws=$w`A1Z@PIZwSP3&h0vU+l}ZBMo!8LdeN2s=e~hrRxL0}9(AB--q6>iOU_ zPdTZkDiqtuqx=+}2#KJGQxN42-`h)wO@9Ox?}&T?A@ao5N)>wg1pT_NudtACj?c%o z^|xjlmzDAGq9GA%c6E<-%=}PV1)F4e+>V7>2Wtqbw2F6*X5rREEO#G`E=84NzPzqB zoHn%4{gFT$T01Mb;nj@ityrGQ!gb-}G*1 z%=P&!Np&{%-v9VWznkYIW2Zy0o!Bk8tC|-_=c9Ck=%5~-Xc>)=EyUAEe|i?9Paw<& z{N%Y3&3&1Lyx}Kr_{k6C>C8(Sc~G|=vI zTNT%r_Svo2bi6%n)LftE-3RoWx+K@;d9%|=7q;@1?>r~$EzE1sFyFKzDl$d*HC<^J z4aHS?YhdQsGwNC&S13&3RJWq!QbwmNKXQQc{Z>tu?D}Ugoi8D$*(^0bs=(~$xD!Jc z6Jl7PzVo#oG|86YxxqZrrKTN8Gi;>E^omWpREmM!p{I;b8Un|{KQf`c#_08XcH5Vh zAZyZA@>7(c{OuHiidm}{dUu|$(RimXUJ(l+7^r6Rs;x}lvUNMo57`wVE;vC~g_3tC zS&3lC$?6As3hksNc)gAxUur|WTBtVdkfU(rRnF02s<>8LcM%oqW8;(}d#eWe@!eX! z8c=~-@|+*-P=T@dQ-8MDH_^BdQ=_=2cLXJc1Jdcp>NyGf(-V{Pe5`s@S*eM*QpCwb z_bZ?fBjx$Re~Qv&8{hTD=1d7_^Zm+ zk1MHz-dt0=F`vioZ7D3H-<(MFC~EGazQLuC1#8lUwEF&5THKuCM7fuMGCG%Yx<=llwe%im zny+_3O-38TOWvVVcBtqHk5pOc>J{G)!4gSI650q6YGPcRTdo)iwG-e&&T-c&Kc}2{ zG$$k3MZ9H6zCItW*N}pNmypb(@VeajiwomVkR-YXjO6^ZZ#_9+5p@Cjd zhevHzhItHup732gF3e+&n6-m8)~$OH)D0?sDu&HJ{IIsM8E@NuP2<3zjn{nIa5szZ zS%KjTQ-9M+@+6TRGF&h6a)?cx+czgpnI@?r_oxzn8J)R9v~-0P>u1>a%906XwleL$ zwMQ0VR0nH|R1zRo`_Q$n8akqqMaX7HQVOZiC^)_A{4vd9ol(ztoup5nNP)|1W7p|B zk;)<(PYPqi$$A-ad{z2{WX(_AYu&I|e4Mc@Q+J*|s70Dd0st?z^PQ5*E@u$`|8+xS3yyooet|7d$$F zuY9UlpTZ7m&ZoA2i6^^#+RNvQlb8^26D3Mg=#{tbM8UvgCIje?Ly^e zkq~-iO_hX8QiMjUd%0t3qX~-arx~|%Sy}}aeJCz}6Ia@wrm?ciWPj|d3k%|X0Pk#X zpQYPm_#7v*dP^|F*ZpPgaktcit!1y9DBo@yW)qU<2p*`d3$OAZk1 zJWU6)C?|;hS1Jx58wooyFz~l?ddNH-ztGNO9+3$=klALGZS}3}tj{tP8Mhb58c8vg+t0Q8UG zem|r6E5!>Z5Lzb-0{;AMt`xWM2Fcb-c)m@e&uD|ZZ{EAh%290^nQf+MZAMNop_-Pb z^deheT~1u-+huz@YljC+jh>$jY0+=KU!Vv`Ez1;840m35)4AB(u+Lv~DLginFW`;n zERLqCW}=4}zaIU&dsmI5Jhx&gkL!2kn4~c8AwFIq<;SZmgrVQl>ytZRFs51Tjg!j& zUD3Z~=RC+FP>llnPUL7jdE*Vok8A7STn*V9UQ!{fCs8$;xg7kkwpSMwGP|#LPT~!* zC`@IDUMIpQ@}(zUS{)6i%}{D-Zf+A66A%*6CyX|qF)6imMmZvUtDTi>cLSSH-dUz0 z^m<`p>vzMotb1sVrgE=%!aqAMekF)uRCjyUo-uF0=8pg4guZm(Qmm!0qtwqc@lr$SAO7YFh z6ar6dbgHRjMAqYzzGqC$PHrC;IT^3uh)D1>outH1C9Sxe3JYB;8&g|Jl1nLy*4apb zWLhMS(q~m9Ma7iv0Jz-h$pgodTpr?PP{KMQskl%~O7wse4DOyHw zwcVwFmRr;9=nG%0jOYk5W@5;(q6e8oFD;P_sruqF!WMe&_=J;dLkKe3dZ~Ll@rJ0g zSa@`9hFS`C;19hZ-+qU0>j$FVYyJ>yDzWICM1pQ(dWv_qK~9SjquGXw`_lVC%bVcz zfNVUkj*Uhf|7Fe@VRX{>=|ggXGPiRAamhZ~r>|@pK=$O`@I%S2xEem}4-_fCUUYd; zhy(VWjvI~#Arll&lM0Xt4tLYJO~Jn)!QjYnJwppckx)>8lDI~eO4Gc-fecSLbp|)D z&YGf;ft+=e1imO(&d_szEd=k4={+M&*I)$&L?(`C!K4yvWKBg${1VIPJQ!4`LV;*$8k-q4<#0vxMYR7jkiYY2&T#{VC?D&p}~*JIQtV* zrilB-D!oUiO#2VzmlBQbRx(l<3`g>7i1~TNlZa+nReHa$%re9kzRd5gHyv}MmKlr5 zPPoe8AtF86#WbqRSo>5jb3C?2UaWHU`DsGdJJmAjtUdEgzqbhc(QwP!oGOCN_XS0J zs2TNh3GO9zoN0CJ+ofU%LA$V}-RR^7@s}O*rk)24=~XqnN#g#-Yk_0}1COov4L3ey z;_%6zM0(wL6VKl58je^&tF*XB{Da$!*#TkAtRhg_M7?^w&Y822Cb7QiJ3|nmC+=)P z*mTBhC4mHcVqc^g+DbfVx5UVb_A|mmKYT}j$S~iz{rbe2 zE!&^Uo?-T6lO=(0W&XVwg|m&I+|bgo=ABKtBV!AQ9Bz_phH;DsBDI)Z@}z_-W$+We zbA8dnqr4+sr`$D<_i1Gy6-8O>$kGja; z5BZa>|fc#!&Kz2!H z2_xXxy_vlWqd1Us5N>A(Xb1NHj2}QwWqx(q z|BNERbBY8^fLV)?neBg*reBc+ztMCaP4L?s<-bO={~ecvE^tW^ZsK5}Z~M;~g`C=5 zWYqZ-@83irXLtWSM*UAjhn!Ykporsqdifhg|1}i;|1O(2kdxYrM4itxeFg6Y* zFb9AIMA$%>SUF)FfJXtKah|~enG0EgRGd%c4p#3o56(Hsb$^kSN3OqX}<*bpM9303TmTa(J1h9bE z*nnnp0!#!N$jJnRrLzHnj{xBu01an+IZFV^EUX5&8NVst8E1Ye%+DDp8!Pl5%=oom z^jdkd;E3#>VlclHF*3X_LFp6qg1qFDP}bq4XK3bmcX~N6Pa6%WC9;^BxePYnMxZH- z=S(LwxBI8mUc0gtI(C0~b&Y$0@J-i!{j?hbnP_)|QsuIB#u^X97^l@-@Wq}3}| zN)HPTH11ma-i?r9H;dDL=Y`m~#1O04^K3;$Mdd0=!4J0qT8GuTt#LyK#V=ZtRKd~Y z63Vw4K<#3gAAO?kg%4wy<)|tiKU8#Sj<4FRJ1+E3kj(qec3;9L32#>g!jQHH4s0`u z4VRN<`+#ykkNnl_Lw`r`lmbtdv*>mdrBeP36}wugX0f^Usv-95nCt7y`_G-4=4wm6 z96)D2j*lLlTp{qvxcdjg9sBQY*zbeOe;V+wc(Q+udVf5|{Etldr~3|=FdJZ!XJND; zAeE3NloN;`JWIW*$pHc4{6Ihiwk8Zn3j*Z91@3?_N=+Ct;}Bq6EN2kFHwO?I`v=N* z)`uz=!Nw9}^H{o`a4KauNsEf(B|joa|mRdE`3!WbKLn~ z+`VN~U0b#_3L&@?+}+*X-Ccvb2Y0vN?(XjH?hb+A5S-xd@OI9rs&lIDse7xnYVXhY zi^kq-FBz+^-uoDH%`v4~a(Erc(WNlpZ?MVR!6fU%RdO7Z_p$c;Xw3_X#o>D$jM)4y>B{}q(}R`dCHYQRPd;AECxU;?xc(qaTKF*_SOfT`B4>%|@K06x|Ej?hmK0AP~|Gq6NJK&rEOb^)C@45xW%J2_T=3t`zHS7Nu z_X8{z>2w?qRr}&HhIRJDFkSRtES~h?} z{W_69Z3sAVHg*O;Lm5V9M!;@a*Z{W%AW?t($Iiw|%l!KuSQu!3Z2&kB8$B)4uOIzs zN386BQ(Gp$H8TAcNq`*EvI4dOv?ZZsWu<3eg<=8hf|2!?q5)0`u+=Z-p~q(i#DW3P zaOF28W(Qmn0|($-0nLqmeZUF`-5=NZ>w{mB2PoJ-F6b{F@?ZG+I}ZP@Ff4!)$N&A1 zEB>Z19nVyr(r}1PARmbXg>%HQpXAMXeN%!6Q34_yw$7=X+*>NAC0pgiGvOavkh zh#+V#x&r@Uptz{O*r!HFbwcHgAIs2fB`4xvr|NuXFs|3$vH9$|4W&Yj6&14lk>oku z^6-%rV{-}Tl7;u-apDl;!~{6)FC7Sl2#H=kLP=zEd;R1imV1{bb_*tJ1G|DL*`e=t z5%ID@>!KNQNP9A&K@V9C__SuihVDwc#66jA;o%MZ8dr1wSB&xRl8ArN9*$o)0n~E; zV2r=A?f(s30G|Bcj_~j3;t%uquVxW2;a=+>Rt*49z%vRkKYwAn@BwY10pI*jclGPy z{!dr+KVkk`uJJE02e{b(1m+5VhxuI!HetHjoFoJVp}_V`h~zc!kWNXV0kt9Ai&v0L z>9+vu$+HPp7Ab&~S?>9Ettv1d<|t`u0;CKIAZ3LT$N|cI)+3t+TfsART`c3fUrLoFsU>UG0|3=BDwwo92LBVP_}Fb%h`7nfP!WXVcYd zj^h>SIxRA>nCI*b&l}DHT4<-6h%s5FISr438VUIq2>mUc`g@T77fs{%TQ&a=g#Q1a zX@EB;|5uRyp=kiI`jZO%0vLey|Dis=hCcpDbpWshBq0Es^@p|qXchq0zbOjfdv<^! z`#bS#L;a%Zf3W#q87%LRn~xT=m-Oc1S863iwB7>W6619xGYP0KNSXThQ~JQa`oBG_6LcTEZH?gEY(U zi#${lIz~^vE!8OU6|!!RMF9nRAJ~xYrK@q9+d*lL==O-*Si)sRTeiZmH96?A!HV1K=0Rzx|9J&aNEU#)sQ z-}jhdCeXm_TppLfIk3EG-1eZexWl#1;gUzQgdW;{Rkm>~xAfw(JBozMMW6y?~bX zrVhV`kOY3!w;b^~7};n6$tDw^*~IT9FGqZuf27=iQW_v>R|Q}SkX8ONDu7g8|I6Px zT(B|F)Bctz(@6jpc`-K>urUQRe*u)+ex1PYUG`}Jj*1qLV6p)A3GgC-6)*tlFarZ1 zbLL=R<6r|c$zWmqJqZV}=C7Xtgx{DEAK<%wJwAWB>OZGGfO?d7z5h;0oI54dj${hp_0=VKpV_o%TD}LR?Gh9#NrR0_@e;w=K%h7;`FZ}WMctb z^dG_d_22JdV_*kF_0ItVaQ?rK6$8L5(J%sTFatASnTp?x$}%8w+U&gkx85csS$B%JOQvo->yI(iyo-- zM`7GOV^K(Wf*5{$0!RXK{2~vT=;c)MS{Hs8E9d8zP$;H-iIi!>ZSNRAI&D!@z7 zdg6=$6DldrN4r6nP=L zrl-4HV>dW=>ha_oLEAI=GpX8~4oBM=K|UJfB&uztaD0zVN8@4g851bs`@#aP%tZYZ zxEZA{qLZcO>iMh395nxx&j&~%Ow44O%4ywnpe0t|FptT(JJLtr-47#BJNy5H`eyhM*2c?8MChZ(eL;MEKDMS<5SLxYj8SP69KcJ84%O7_y zHa{B*zhX|hy(%j_u&holq9R!7)t2U80y_s7k|xPBct@Jf1jvxTh?3cKeYA0g_lye` zZv9~62A&ZH*PQ0Z{DkuPrvP!em?4$KmChY8GXHX6!iNN$%0fPapa)BX} zC`6Mo8}ej@3kL>I6vxxUs_DTc<>JDciI%%!x*eRPX5msE*pfh3A(e0&hgwCE!_9jfK;L!?c6NoDCC2Heke@_1#nV)nv{Gy)_%qe318N zAQz<=((hQN5@Z+}oVqL$;>l0$_sxzyxbq z3uCy|Pt2SH%sYXRvS4s$F>A1GDMXWG2$QpV?X=sUBb*fNrOZvq#e=c<;#EX&&+<#eFurH5j|YQu9N(O zjRlKIXr2Nxm&j!cIbq(2vzTcG8q;Dp#xblISR;BQMjn-B_E$o#0L{q3yd{dTWD!Kf zL6U73KWPRbWMI5T^yG&UP~Ry3qc&@2r>}>LTi#)7C2DZ+%LRksP)?K=k7YlpoHP|n z>OW+PS_ZW#Z?#J&+tZ~hox(qHdS%WhxjfNcFVJXLjklWc6tC#6V!%8&PE=OiAEl^O z9(@Yf@H4TdS63(*H^5l_T*P$PKG96s)I;guH>HRFxr7RI-m5Kvt^MhF;b~E_nzxqm zaDiDj(ff;Yqj$|*IcPvo8>jCq8cJ*EqGC>YKD3jiV^HhDlW=vEo~dcW!S|cW%*+j0 zpD#H+^j+QA^p1MlTfo|5l`C>urs;A`Pb}5w7na^MhYS9RL2Z?KPisHRB&&-+p>G2} z@D!KH%Tdp~ssy!l;xorJJ#rqX;-x@fjNfV1TI<{b?}`tn`|GUpHEZ5mubvO|q%0XL z`tjPWdgE16 zjszwsG7>L0?eUILrU&!y<3?%Y_wNEWLRj8+IFGX}FASBrn+(wH{;yweYk5bBCSy#* zC+7$#2*LL{uXIEdH4~l_h&D496rGAOqfEv{OtNe_0Fx2XG~qSim-PaygHOrcP2RRV zd9$Yvt{*>h_!Zy{ZdQMNx2%vP`+>%i9!~Q<#?6Y6-W^|B?I&`XCzR?7DoMe)TX`5$ zEf6y2FS5V(*rH?;(qbr>6%7Y16mmu7NY1A3XHUR6!P0RUBbOujhMk`v+3;rB9!A;< z6u$>2opfMefqiFHf$?o4&pS}`k@MR)n|_@q2myIj-~PO-BGsZHBN9pGBjX?`FX@GV)aT}xX_^Atel_-_Gjm3`2-bVonTf&p zOo4_W*-$4;RjzRa>BD+5>sN3Ht|wfWzjTdN^U^B+Pe$FCNnH8;x3lQ$I}KB-M(O}{-l^g$yNw=LHvRecR}yQ zyP|s|d9mgweg(UqBX)Z`W0EvwPXpRSw8mtii&v|rGHuQ~tJAD+D1kJwbcYyi2%#5P zaXh1+B~GSLFM_S^&OwFdQdz>oh9ha{Xe8tu%HJ|NXjqbEN;TM>#`?6%QK?JHGWhtA zdiO`r9MyHcau*2mqZSAgDpDvP0uIW6PVHMKKdUeBp-5Pl7`%g^Rkx_f_p~+&^CDQ8 zKrekF@X*Q+!3-!ORxb(_C7#sW$V6fV@6C#XZ=jAm)BHvL0fOZu|HDT9VX;ZQRgnPF zW!+0b9udaTNS|CpgjKdWSAS`}jY3;nehv8+>}<30DR8K+#|LdOo@`fjneVq*nYc|; zBX{!kh?g^Mv>{}x{fka4?p60Sn1;n6X+lu~IhAnH>OfO5*ApeOQ!`&MiT4$g_v7c+ z%1C&4CTX-r3KJ8OBXLr-G<8^6r_ayvWmzRPJY?o!Uv@VilZDG!J0|!z?JJDuslwj+ zek^oPv~T@5)^UrkwR{X-*{WBJ#@2K$tVsur)oGREh=6`7%tpTmMtW|h0PP@<5a*jM zKU~ zH2Uqi3)71Dynpq~fY^g6nak(*A>HqHZ%0p9 zz0xwBg@@w8m_yk@6oT$|0zF$WB(R7kp&4;W`zCcF_K@m=UvV5S@Ii4m#@n;Ij#*zJ zoA?S2qpyVMK0kfndqE$S%fx-&IA)6KfM&FtV6ao(iO{~wr=L_y5zVWBnj{5lqeP;U zGhzv_R!PnzU@a-<6k6;>kZ>?JujM=1xe#c2c8tAIbVW=bVZE^AQ@NRb%tDW|7YTuN zn6`6K z@g+tXVyxljAiG`ku#XWAuRR% z9GfPl1QvAND#~XE(VEzz(#KtPB`md~M02QTUZ4773hxtKXRbmX0i?)_E53GH^Y^3I zo23AFnZ4|q@OwJ#&JarXq}Nbdx5M&{$;xw_a<}{bQZFCiAF{r1sTF)L*j9LjHk<<< zCH%94shB87iCwCW>#%lJ%%Q%!JF81DdcH1F@C?m3DX z)M&J81ZU;An!6X>w<8y*Ru%`S@pWf&xB48^d-Pb)P!7^K3x}8X=hYN@i?c-)T!4O} z#)Ai#`e8NSdVgZ$TJ&WzIz3MbLu(@)DLM~Vg)~u7wleH1P#l#jrJWo^Dv8uAjqgqy zWa}7Mt^Y`O-%0Z=^nUea1+ivQX3$_;P7` z`?SF+NL?+L(Ah)(UgUg3dSMFUW3(59id1x&)MPeKPP|GdErz25Kq9x?c{_4L(1j#pkc37!wy2rYrA$ zi#JG-@w+i()le26rcK?Lz&%hKWRQ*wpcPg%a3`es?kMa=#Nr-tU-Q27dMoongS)RA z@72Fg6Zt|U`r~U}^Sklzv98yKa`RINb?~WeQK4JSgghf)l$=tQr}G&P6i5QtmRthJ zNfZRg)DtMiEG-qm$sJp#8wmS0JE2IyT;iK$UA9-B$I=&r1iOBCGwyeqVbf#Q%FPD~ zDd=qZn|qzsYxtf1Xi}-gq?JT#d}R^$J@ABn^iUMhu@Y!-D|&)0SdyEaNhnt#jSqPV ziTKo$u`$NMUYqurSpq$;`?j~#rsQmJ4@(`0MAu_ON#W>JJTgo)#FLq4u|X%V97I=R z%+0Ebw3W68(>kyBSlwL*8}V${Su~TD)$6U97X<*Vl7FXfiuww#O3 zIX3H3eCiwO4uc6K`KBG$7fQCD@1LUNs*yWDN2b$j)wig)j8WxTWG z_IW(ZUVLAaHw&+nvIAx?j}qHuSUZ+ty2D|2WNqFNF$E)O*&47T9L;I%gcY^z*?b~H zh&sgb{IytvjYar)jy}B+klag7XLlJLz>^EO!v&7U>KsYAk<#|S5P7*S_B`VN+m8Ie z6*REhC)U6b3@C*wmya_1s|15+wbiyGd}Ibw<^C-h(@bI}#)#2zL}se8A@x*&6G1x*tt%EXIu->z2a9@3#3-gJ#<8c8IJgxd^ z4qpA94d&$|XgBf7RP?p@YFQxse9vugA#9Y^??xLb?hivCq8XFg=~Km45SOOIX>w z1nVHEK3b*;-QQcRaFlxKBoT`7EAD6*FtnL3Z2f4ep=j7BUI4b@UaHA0JPqY(EClsZo zn`&#S6Eb)CZ15h;w6zdRifgb0!5r&5n1K%YmA5Y4-Z7W?^_Eqg>N%^PtJl*(N z=Uuu*E#$y>k3qYD7q_%7v9;9dEK7`h89b8pzUmzB-mg{!W;m|WeIs=IUVZ1A8%q~U zmt@-Kr*FonnE#+Sy~QL!6eat_MS4pHADM+*Ze$;>kx8OCjgIu=!QrE}CGPd-eNmBg z9Zf=A&y$%mP49#g$Xj?Gk3c-_P6I9TWx&dYKPlcUm`umARjq&6Ud{j1Za;Qi_?eC)ijZvk81#k|85{&>1ihgM^iE=Y&0ot)thk8s3tBv~AP6(J z2U;ZOUy9VQl8c_a;>LAVf94&)VWTsZlDoXAbZB*+^A^VWEPwJg?NcAuN>v^!x{>$i zS4BHY#IXm>NHHabxvDC9+m30SMwRCP*@#gxLzSR@VxUYw@EN>1*iEHXYXO@qtgTk% zyItZHU8!0fR)Bk7U5PSNV&0Q>MevfW1X3()Pq|b zt(z`qZl3QBQ}_Hp$0-5=k%LrTnv)Ma2&X+%!y!mS+YT5Yc8KD4rbV)@Y4NP&7rrOb z#Ym$xxSM$RC;ar8vLuUZjm#gK{SM}Y4CAA)Jb|xdwp2+yxG%pAIXU2e2iXw{9Ysvz zfbfJV=?~3SK5}sq6BzYG zVFtA?2D#8RhHST#nFHdn#tBMoT@@0v<~N%+R8MM8$xkQ&YDb$s^GPA>cf#D`WaU>* z0YL^=cPQk1JZ^&abWIC4l5AS+yV(n&B9?h*`= zQNVRD`FTGI$96gAj4*au%rV3YR~p<(i^4R2q7(K?Tnk6q`6I^{$Y1^-@lD1D{_qXS z^P{%5s1JH&C_7~t1rP0Np2XE31$GC})iEkT+T?v` zFjh0TVil{Y%z9n*Rr%I>&Cl+`JP9RL%Q$!8k3q#^vP8>eo65|ORIHK{OIN;p=-)hP z)nex@Dlb3-fPLKDmRZXiM~>`6!#^cIKherbW9}F+qd*nrAsVi^o+#3~94&3T5^yiA zu%g4kH#NcqM>h9XZpKz#xv=K=dtmfeaxjZ&h%7V8F0+E{*%a_$pG8ZD46H?HS#es? zR8yUnR34o)h!nSb6y;Ti-FXapPrFvw$ z+DT6rs`i9v_5FN=X3o_sk`^30t=~K=ppaEJ94GDC-4oWK-lq2P>*<$haq7>jxh#)^ zMW9g+mS?&zK0s)eoU?yLQGXuA`x`~Eu(JY&HUClQW@2UhH5U1Qt>k^G<>soSvhtqk za6UO#WF1FJV+|#PnO4_OVBIDz5*X`G#c0(;J|j79Qd>wPZ{!r97zQeGCxU|(2F-@( z*T!YIQeYc*&IR*J9G6$kS@1Dbu~yfd}ja?>iPR6)rVU zdd>qB!wAF?PnL`ta=HiuHZlp+CYPnEeLZFFz=E&<0->d(%A4CVY=3<0dq>2N$ywP_ zB*;x_2Al`1*V*l=S*jrY30MFeK}p0-rO_5s5@;@fr@Dl?($!>pP{`K|bc6;!XU6x* z^XmuT!)r5s7*Rn39-vqt&{H@Rh>yGgE&89y~%c zV!0Ha@zC>@ZFV!;VZIr?y9D!Ayv4xq`OI#=%BNSAe#il}&R&7Wszq=r=>;e6m5=B( zK-OojGvj-~z~v5p1(KFTly>B)@Q3|jfGfStcu0als)Cj>dQD%FhFJQ9PT5t2PfIvX z06fPz3K}EqLxVjid{^5La25n{aV95p*5LpF)?*Q=BmhiW_FX|;fVJM#Ad9#kiYmJ| zNv{#|!@=4|M7dh8Ae3!7YpSQ7Agh}}nHJD~dZfY>|J0Po_y^2Q^&L;%CQET4P9IBr zo1s(mC)p4uYhz=q&CUoX{k3Aby2Z8#YrwJvyu6l4E7jnT5~1#kpr$v za%m!O)xNDx^`W0c==J=F_wJj_;jktmX{T(tLFI^dDg`9iVi;!3LOoS>IUehb918c) z7bjal;oVKC4d!YMU9OCKN2AskWy)3Yv^5@Oufj}kkX7|TJr-Tgqy~d&DFVZ42u4ns zjWro%vyQM9tMo3yR0M=-!#F4!h0U3WiF>c&i>8lT>zd?}Us9}ldIgT^7U^znpZ36g z$&0vJvno0ttqf_Ys^wdP03(HDym^_l`|_L-!2+i`Y8*H`T@9M%afMTJ!Z!_YEi$y^ z5d+5R5VR$!W2j733?ir^b>j%?no$ra8l1_wzP=7-4Wsd|o~dnu$9l)#?m&yKKz~AI zZZK;|c1}`4N9lw5P{*Lb)s29Fp=esMT6V2*SMb~58r7np7LAs{VODy(*;_1>)|IKH zRa{on=kep}#VV+)9h@&)U-h+dN@aG|Ldd>G5CqQWGDX6GDevl0l!cLSxme zo-_%DSALOCtB~om78ZEJ51&*`Aq^=U18y1Z8A-O3TAJgr1C8dgZ&Ktr|h`<$eHP>XSQEF*r)mBVv}#ti=F= zqY)02L>zH&;Y&10Vpx7f*oU}aC*?R~W|5c|CSoXgSWD{WG$VNFs$T}J^6@i^D-3Hl)lORJ82c5H| zO#gYOJ8E3!Q*ymvxq!wzm}W2uX&rZGlVxhb2QLMkj^#}GQgi{{Km8Nz5cSyk>g2T% zJJx-{^SRNJ=3TU^C8>Jvo$|X*Y<8F{rNKQN+t|~L2cG%!>w|QCETDDf)XKJ}a_Duf zN=9_;wr7MTo)+3m7yG-~SsHLkHyoq^7G|N z<&kDvk~*Pf?3<5Ff1@Lfw$!^1(sk+E4i_+A_yW>3Vi0Z|3^1ixt`KsOhogHy?~>Z$ zk#R$f;-C}_9g!wJQ8#~)Yzn3%>^M_$@$gkw;&)x$Mp62CtzVxC9*&l6c~R1E&0S9j+Ki6k#6US^mh(@@mIrP>VTe~LZK%PC zdR{jhW>exdW<6~|BUphR4$sM!#2ge$+iR}PC1Qbwp86g-LMKyP$@@hXnJ%4xQE)Ab z@NHC57YIX zO?htz>lj}9Vdj->&sLHEV(3vbD7*0Wi(XWA7ew(O4q^`7l)2q7!v-SaFogg7HSLJ{ zv`NenE}3N{cxeLBjg1OICgSJITo*3?UF6fPC#>S+Pnx^zom>n?YT6te%kF$c92tm- zoTNimNR{jL+MW*e_1F~7b!JEX<(@3CG8=4B8L3Q-`}%kZp<%Z7Wsl*ws}}=`1o5@?SiduU8EkML*P z2l3|?5CdbYoZEH+L`j^uu_9;2gHcI=m0~`Ab8oejau;=Mn6&z2|2b8(K6E7>o1!Yk zS?5H;;x<<62;;oG^nRhsZ9jYXK9kLgi8}jn>r*;jYG$@T^t>S*r3xD*Up8P$O>`%( ztzXBRoeS$T5*i6__7^`(WtX+n1Hv@`iojdG0uVTBH63{PMKovYhJUN_P@YgIIthEj zO-`B8Bd$L-GqE3?KIJy%WVtFMV|OBB&AF0k5aRVZi#Dy>)ZlTo5%0BPWNdt0sq007 zgU#9SUZx&TeVHF^KRUys?Cz4uA@O@+wL?OC!txy0WqEiak?s2BU{<5t8Hn-bqJ%aH zhDD%$0U7n@VR6{`aRV-kFaTs==!XfuEo~@p(Ac2tC=)5NO6)iinFaJckoPn7%6=Y@ zwer7+a+!|{V0MC*;o9m9@bvJTP{EDe4evMOwhrvEIW(vwCPHEm7w%PYEC7Ku=uISC zJc@#Pl9oZ{Ynf@k704sW6h3BLqCIXIlZ9!T$gt|9S>FE+t3||Ncena8E>$XFek^@A zSmZcyI?*JK*~iH%;3|mt+%~JFwz<;$$6I{EtcUjzh;XNkx5gwh!o*c$7@ov)tS^Du zYy?~c?Dug68ms=u+@A<&bFX_jj5G+Rs_1p~5$oEiUmLlw?}#l}(<89I@YRtQPf>)~ zn}I^EI;S~?uA|-em1&E?yJxvG_+dYmMJmT-Jaxxa93Y=3S6j(gic(?lo_rjkwpng}3m)CKY#piCH<1X=Mq?0& zBgj3lEwQSxDKaHqonQ?JmoChb8o#q%BOiTpQtofPL)pFp53ZO$g<{x68^J6dtb}xQ z1l+=5q33#8J`E0?FFmatbrG<YIq3VXll<_#rRgK zHddP?;#L>K;`tfozf+nQzS83}Y_SEZm%s@KAFl7?-=f@}1tKsrDa>Yl%Pe|e(O^zf zY9Y(rFSD9RY#2|3zLFY?mYW%tc#v8Zf4J(T@o>gQ*|1%CZQ{p@rg&~*j_VRD>JWRo zFvzdF7n1yFpxX6#*~Pkt9D2oQWa8eVOb9dEGXKehv6(2f3TLzh;X|NcQqW6=8IdRZ&mRFO&GXHf4ILYHnE_~No zi@~T6)<=0O-~pk})dmc`L{2}7KF^Iayd&y^pw8ys6IJjc>-V=RGH473a>f7~s8|>@ z#RGLZR@XVi#xWU|G@9cjrBhKbl^$N-1T9!7*}U$$+9ZlJkPNU*JIEJ(izuQtdZYaT= zP5g!MvyinU_^VdwEt(SRpnM<5UxFSudiOr!NX0K(gr2R`tW`hVo=vSOFAu_*q`@<2L>>u zYfaAlmMSM+4|Cx?E*6S62zHN87v{;RSG1k<_OsxHLy)|`gFQp-6?sfK#i@poHIOlEhveeaAoaMvw2Q>oR>8r07lMz_`9#kj4T`Jl1W5m9oP zX>IlugwXsWTpeex59EoJx*?Z9EDwdqq_jfRg4vb}dZS-ylG$tCVquNv;N3<8 zE{yO5Z3X(&byz{6iMbycAKM5^c|w=Hx|dql)lw&m&{ur=Bqv$T_x+yv6jsXkbXs>j zCRt_r6O50)^L%D9IY~l_6O3s&8eZ9{mezRrZt|SfFFm&7RoUl4dDlMdDt+TvOH9w; zbSb5=*FnAXAS+58=p9Xb*plEjSb+VCg*JFdolnKIxW%}XN;`X^?(FIS8xeU~>G7_( z(V(K`eKBpCzDOPS&c0o^!t(8s$&OdJo;I&7$w*uN++ta{OZOQ!-@Bq(<)N4z*~C#K zRjhw+;v;&GoUESbK|VtD540@TgS*bl^P%}#8*PNfT(~^4mG`QmPcf1bBWD-g)-Pu< zSmlHOheWgbBgZ8}Uh}~7YU|mw!})Td&BIcA-ZC+oY7yO>O{Ow*$y?lgWi=;5p~HpS zNpA@cDhev({YH4V?lvNy(753ufF0THFiIq=zzF>Lh8Qfn#h$4p37m5+m$}h}9sj{4 z7{^jhnY!CFFy!+O9+S5i0)g){uaa%{-S*mGpSYeVT3_-KCYxyQuclBkmtAT;uRdIR zFv;rZG9MQXmXD{uUrnB=gg3+DH9B2l{=A6WxMi^>+kDR5t-2yx{1&M#&iLMXeQ08D z^Xh?L0vrTe42DlQ^$D2OV-QE+N zRzM@fhAJ>38ck?)=-Yrvf-el zWfSJNqqe_6uXQ5aoLwMPem$)~-F07BYxe&pI8nZiP=RWIOMZ6O7^bl;FWl?z8BLpO z=^@R)xukRq6GuQ#9=x`_RBLbnT)#X}b$!vV=ke|E%q^S6QxK+Jj>lW@(fJ|)@e<(d2lCAfz)MvV5CXrakKg`tg`;i99)oQ-bX*lewpM1 zs@`#*-=WpSQfct)RhP}$^QN^ODodjwl+&}|AYh)BvqW8pk=ESV=YpMu)${PXUYjO% z7zE7a*H{G{%!%kV6*&{|s-WY5>LFa~7QR3U>^Gu85^O28`>`d48uRuq_s|@WeUi8C zbORl3RD{b%`gfku>hbE zpW)WsYeb!KBMk}$X>uf{=wjNn9pyF`u}Mf# z6;tDfHb)+^)wwU_x4+e0-91AGuQ8XrA1=F8E;&y-h!_?}8hDy}RXR2>1DPOu5E>eA zJ!~g80_k%1pdNl4gwfc=lSMs&41=%tC?#dCFffaagjs~4ttkacx*G8&Gp^`Z0>7c+pER>CC4VwTm@%+jep5U^xKnW&?f`j8)_XB`rwT)K?rC^ zL0YFZjvH{NqXlYBMz$WX_yFe zx_ggO~B+jDUZ|3;?|LU>g@BmD8Sl=jjf% zb^Z8i`1VHg@`_=!yLS%)vD*~fMTc|f>O+YOg0On@YGki-Hs4pYwdtX%9sE}%^gquZ z`CAE{k%*Adl7dL$OZ>QCl+27ODUBmb!wo{Fp2}rSnjU936*IL;oG4mcr(aR5 zO+7EfGRqP*i+Ry|JGG|PCrN>|8s{BMy1sL4x_EE8bUC;P03jPfeGpZ3I*Q!UerEQ~ z0Ie~<{xS_gQ*aM*BL(EnCKplabqC zKpn3_?M>Xz^HE&D_elJT;O-%0^bXja4bBy(Js)v<`7J!U6 ze5t^Lhe?k$gB*O7;bQ!9clWb?-X!7y32tq_Wy9Y~N6jSQgA9Q3uWvA|9r$qCBO|;4 z#XJ&?&el%Qy93w7R7anjV3lT?m4Xk{1GPeZM5djQ1{>URQV$V=Fd)Hh0z(EyZa_qW z__*pnp^AHM2nL)Xl!W%BcQQaCA*d?`NauXT?2wA>s0e{RERudagwKJ(^8O8cg7%y%q^irDC_Gr-gWI&xX-p%^1 zqat{Iq-{OUm16sds!cizV{Ui}J8C%&$nTiVD~#h2Z{Kg4UiZZ@o;mKBHr;mC@}xEW ztf(8s(-}&(VkZ%89f(y=N|y9u|FmOA?Z60FfO>Rvn|j#~^P@vuAinQ{_;$It0gQz3 zOcZhOOnBpAzifm7f`nB_m?*U%NZL%8rBx;1we-xL@_n!3$CCxDm;nf9eKN4wXyAyw zd}e+T@Hp{2JfXvYFsxdf^jZkYs$qoS90R8f%WsQM^cFkm{CMuQ5PBP&!JH`rLdO>$ z&DGU0sQt^&ATh0>%e`qK-O^p}Y1XX?XgNq(E6rN{r4#`k;p9hLeP^L_*Xa+7`SP*w z)?FLOg988R3bXReVUp<}zKv!kFf|S2xHoS{3IB(cdSLPiTlJPZ~tFQbW!ZKDCP zp~>S9M&H&(M!$2+f*4JF9+ZfS7s_~vh=(Cd^s5+Vzehj7-7&G_z+j2r`@A>D$5Bd6 zX1FgZ3ukvlO@<*`wex%fb=DhN6{m2`nHX_(e?8f{$zkAi67V!2&|Y)TbZR@C^?q9L z&Wo+4zxmFT)dGKNfR^O5-BqnG-vM$u&*=p%k&Y+g*MbEC^8;mK9fJ*`mC7!{$i{S* z3Z}WnPAD+8rfdi-Kf)@E9@C^iHJqNHg4R&*wr=54UQnjA6w5>DC!guWCgwDGW|_#^PnmYkgk@%cuDlX%5f)92)(uni@fJiAiIFoXrcx-u!jy>%f|%)& zg$c^!vESt;7NQY9Tc~rc_5}W1Vqjb_ua*vC4#E=D6qh2`B*fG|y9ldtr7knmBH&!UGOB%HuvMU4TmD5LWBq!6~^-S6{bx!fs1+CY~er~Zaw`qR&lch{PGypLYX zeJdr*$&M(n#2%aAN2D3y2XG&vK0)vRAV?cmg$P;tf$fN&VFKgTGD}d7gTD7GffR}( zZ{;##NgVYP#!RXgbw`t!Q1xIx4Mpg_vzet;Kr#|AA~MfOGwbWSLwc1By01QgUUrFs zjuSFxI@er_VNc!Qx{rgV$`-NBz=9uwy=k?wUGs8CRQZDwC|#hAy_MGkt+yGpbbcp= z5ikICvOA?4^9X$kUL2&6iR_*8MJ_8_Zuiz0emdL3S$7#+tcnz|?c#{<&6;@LrKrVX zxiIC=xG-fD{6t)1(Ao84JG;=!_aQ8xHvmXAHERxEZeYhSsJN~es?7jm-k6}x06_<} zn*V{f+QxUcm%i6DAx2~AYsILhA-y^#LZd}xZK0dpjy<3%`uY|{lB}(ElG#zAMPu*7C_0Nwt-B{vvR2;t?=EAyY zzyIvFY(|NU@`=g4!O2O@+wXu<5}OQ#eA1-mW_)&!1Iu1a>t!7mqO zZk}M7PMbE-I|eqlu*7P(k!TeWydE;U;_*(wBUN;GRn;gzKabuZ)t)w;qh4`Qjbs#p z<0yQr847&ut1nJI3{znA(#x$v4|?fA!Xqk1mt{DNcz~JZQ7RD3{*k7{w9hq|?WSZd z-h?MrimV9A@okMb-ZTnN*U`)CcJjDFX^!WfJ#P`bc)prOxPl^S)hoKK^Jax>^3XZ~lQz`PiTFubkMQr{DhFi81_n)*cfZ zpj*xV{Vv0xs-+e3ca*oY%+%Yc&LOUGOn_5~K;!FauQ+9K1`cNroy;%T!c0E7YUmwe zt@0ZMw|gOsSgh0BEqB>8B8LlQA|X~EF*;q5`RQwfhbGB_g`M$ zpQ1H6%^~O0ywy2cbC~KpSUcxFGvfy`%0>IYnM`w^?2P8A3o_yb1dGLq$#o=mWaFC! zKGUVI)vW5seM-;20VLmDTVH7S{2I*W*RTV`u{pQ20Le83;tJ6-JJ;o~QyX9fkIx3I zXl$u89904NX%U1OBB!*mwN_%y@wOev99({5Wo0eJTh<*YMg*v++1c^@!kd;B%t{5w z+#252ETeJd83P~L+wQG0Y6vHjnQ#QC7G#E%&6&AfI2!_j4S4$u#>HuvYvv<@x6bj} z%GzUjBs?w1wze-d7;q2{Gp-n_E3T>mU>F@Yjs$oI2#OPj6#*g%>{4cJ^Ai~G+=?L_ zzs?JPq?Zz{?2{|EswU=7yW4kzgFPpW#O!6VmCDHQcSV!STg=k-XZ}c?`0!J0AfuUr zJ!x!FI>IGCm)XEV_0V;*9;k#_$&8RtuNH_N982HyE;yN)Sc0h_tu^T4fvqN1vgk%j@v&%L7FG&rADcWS>Z*9DdM2jgNH^b9q8Cufey z_ms<^VlbPju(B&(sFT4yKBWQ+A?-CGNa*UIiPS7CF!WBw@^{L{B6PKF-3kOuwM5Js zX8e{9s(&-E(*aMtJ~!OjBWHfvi9sm+8CWmS1>_@dd6I_ zyNqZIWLe8O`iWgWeV1bB$1*Wp!QmjXjvy~7nHv@H0A0%r>akVLfIsFhAc!3Wk6BnMF08-os&c+DsWvYA;K9zb`wnonbwm23kmYFy~$8 zb^96q;AGRXG?OXR!QM;8t!t0OORGQbiXvnDL12DvfMeLh#7KzbfN@?%huLxI`%A(4&STMYN9Z{2?yriy;pwc7%Ut#AO)x;6S@rqg? zq9CFuRS8N2!Pe|%H@k~~1_+{9NNrJsf>sHrC@CSRSfMJkE@VT~=3oOP!t1n7#}(s*T-j;TkOo@v(}G+dLt@Yv@o-ds0TGhlhXm=A{lTK}=Gd z?la4@GEZX8gXRx4GlI&S>`tjBoKzPzo!xbt`%%G)K1ogWrrA?V-R}9VZ!D`5Hda41 zG_H+3y;N!-o@ID7xA?AyTkVm+c1g@St2VeZG6(;Q`GZlrqhYX zIU6n0$~`mmLsdQj#)H1w&Mhe}9rv%L z{^nR4yX?t=CzVP279Z}G`b3A2r;RKGlET;P5_-ZTYxI?xi8+$BCTn7i^v|EIQqYsD z$V4W~$TjQsJUf3P!oY|Wxeu#E`PYnB>FHFXnsupjm)jOGdFj4d)4lC}-zlmC8u#A_ z@*9`ywJz&^Sh%vtUY%`n+(cwkto+2x-M+i(Wy`Y`rgI>Pb8c!*LqX-tGOHiOTN|EL zaM~vZcs9RoDCO$D_t>Je8vU{1dZA`x%S@4H|0(w&->eMokdJH07<*x>?C$=nM;c$$ zP(kXdw)trv=dGR-T9=ErZj@Zs?%h3fuj%KUPSf_>M|&0<+Nw=cpT;({?HV6^Pc$!CFW`4+%r8_qr@2V(|O*HnL$8(r=J=5CB zHN1YwPiZ=pm6JTA|5U=TQpAaAGTA0ANVip%_Lvx??6lVFF`A(L$h@+zVzISQ7jbT^ z*`3Y{)~nP8V;lMN!=-tvNj!gFePCW=P0aK$lYY4J;O3#E%sofjx=Yq&hDAM2ZJO-(1ufysEsnHn!S3 zm62Tt;9dVEYSxwx3!dK9ebMq4RUIvf*7m_BK)Y2mT3%uruf4{k9;%~LX?vpCFW!1I8VS&!F)-P>pJ%0JXzBKK? zL0`(*6xXTtcX)A_n5LSJ$*FPE19zRC9_W_QL8Mo&soNBq_6MCjcdp6U{Qa3n>UyO` zi#B+P7lq$(yf`>^@+7?<|0oUt*Cm&otR#Lp55AFa9{*-~nOTPSj+oMiU1i|!o?9(B z#=4HQh=q5eRnHe_T8HiGQw|(=T96cVvGl@z_m0iTLXced#sO*lkbD59dW&01T-GV9a!wlZPkwoI#5 zZ){E;ZdRWEvm(~A@_E)@eMifyy`B#ChWmX@Oi`B4sCC5464Ra2y*1wsdw2Eqi*A@} zcssb);wSY5t2-^C#^-8fecdO{H9g$jc*epja9oh~fxd0@&Cw-V)fh9%J9tsALHx6o zF@G)4zInLS{8h2}YPD{$gGu4Vt!`5n?&w~ad_%JKJr6nCi zRx>gdj0D_ENFy*7$~v+iKrtY;KteSJfLbA2k`I`Ku!gb6YK-(j;slaEQovGgp?(B= z$_Av7EYKR#gaqn?0w5N+A59?nBN+_Ii;xd!p^&W*BpTHK$_nl$V4=or`?p>I;t`1j zV0TelmQ4uTQUI<6Yk&ZWXbj7VWZS=fDLz_56o%%C!Ud?U0Igk+Qlus+z>7ru3fYrN zpjd<~zndVo+O}kJc%m?;zu#aT2K)T7cFDP2foV(V(E=_yArLnM+#8 zvcpG?gQni2(P$0PG>MECphV$ZVKl>1qDJ@t%qsR&6-dL7abOG%ssiqZ1J)p{0RSkX z5y+l{F*LI0;24I%xxz6Vi4OXCvnskm?A#Fb^xy}oMh176XGm}b;O+GLcj_~ zGy+*OET9}2hY&0p#Fk~*LOv)AfX!hI%rK%6=v-1HvcCubpBb)Qa0fv4N$|c0nR5bg z+Wu2(3i(%n&?e_NI&$VOm&p`d5If8Je9LtQV|#n;#`Sk(+=L7U&LH9Q1p-%GBoL4^ xMhSs}iCsi|7si?U|6KqR?(+@XrR*~Upe02pzLG26K1C1&ACTyHJh8Vs=N~jQGd%zR literal 0 HcmV?d00001 From bd2d066d69d7ff5a62287b40e839f2c2c6ea750d Mon Sep 17 00:00:00 2001 From: ElPoraz <150593346+ElPoraz@users.noreply.github.com> Date: Thu, 11 Sep 2025 19:49:43 +0200 Subject: [PATCH 17/69] Update ODJ/CR section with links and notes --- README.adoc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 32893073e50..f15387e534f 100644 --- a/README.adoc +++ b/README.adoc @@ -88,8 +88,10 @@ Cette section regroupe tous les documents liĂ©s au projet : |=== | Sprint | Lien | Retour | Note -| N°0 - Semaine 36 | [A remplir] | [A remplir] | [A remplir] -| N°1 - Semaine 37 Ă  38 | [A remplir] | [A remplir] | [A remplir] +| N°0 - Semaine 36 | N/A | Pas de rĂ©union | [A remplir] +| N°1 - Semaine 37 Ă  38 | https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/ODJ-Sprint-1-09-09-25.pdf[Lien vers l'ODJ] + + https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-Sprint-1-09-09-25.pdf[Lien vers le CR] | [A remplir] | [A remplir] | N°2 - Semaine 39 Ă  40 | [A remplir] | [A remplir] | [A remplir] | N°3 - Semaine 41 Ă  43 | [A remplir] | [A remplir] | [A remplir] | N°4 - Semaine 44 Ă  48 | [A remplir] | [A remplir] | [A remplir] @@ -99,3 +101,4 @@ Cette section regroupe tous les documents liĂ©s au projet : === Registre de tĂ©lĂ©travail - **03/09/2024** : de 14h15 Ă  17h15 ↮ - **04/09/2024** : de 9h30 Ă  12h30 → https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-TT-04-09-25.pdf[Lien vers le CR] +- **10/09/2024** : de 9h30 Ă  17h15 → Pas de rĂ©union, avancement de chacun de son cĂŽtĂ© From 650926e7ef8e85e9c9b862eced759f0c0e8386ee Mon Sep 17 00:00:00 2001 From: NariaReynhard <84771519+NariaReynhard@users.noreply.github.com> Date: Mon, 15 Sep 2025 10:43:04 +0200 Subject: [PATCH 18/69] Create sprint 1 backlog Added and filled the backlog for first sprint --- docs/backlogs/sprint1.md | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 docs/backlogs/sprint1.md diff --git a/docs/backlogs/sprint1.md b/docs/backlogs/sprint1.md new file mode 100644 index 00000000000..b816e3a8df4 --- /dev/null +++ b/docs/backlogs/sprint1.md @@ -0,0 +1,14 @@ +# Backlog Sprint 1 # + +## FonctionnalitĂ©s prĂ©vues : ## + +- QuĂȘte "Where is the first aid kit located ?" +- QuĂȘte "Can you use this lift both directions ?" +- QuĂȘte "When does this operate ?" +- QuĂȘte "Do you have to pay too park your motorcycle here ?" +- QuĂȘte "How many bikes/trucks/scooters can be charged here at the same time ?" + +## Documentations prĂ©vues ## + +- Documentation de chaque quĂȘte (format adaptĂ© au wiki) +- Document installation de la release From accd9894e488aa4f5801426b89e141a8bd75f20d Mon Sep 17 00:00:00 2001 From: ElPoraz <150593346+ElPoraz@users.noreply.github.com> Date: Mon, 15 Sep 2025 11:08:02 +0200 Subject: [PATCH 19/69] Add links for CR AND ODJ part2 for Sprint 1 in README --- README.adoc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index f15387e534f..53db050b1d7 100644 --- a/README.adoc +++ b/README.adoc @@ -91,7 +91,11 @@ Cette section regroupe tous les documents liĂ©s au projet : | N°0 - Semaine 36 | N/A | Pas de rĂ©union | [A remplir] | N°1 - Semaine 37 Ă  38 | https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/ODJ-Sprint-1-09-09-25.pdf[Lien vers l'ODJ] - https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-Sprint-1-09-09-25.pdf[Lien vers le CR] | [A remplir] | [A remplir] + https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-Sprint-1-09-09-25.pdf[Lien vers le CR] + + https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/ODJ-Sprint-1-15-09-25.pdf[Lien vers l'ODJ 2] + + https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-Sprint-1-15-09-25.pdf[Lien vers le CR 2] | [A remplir] | [A remplir] | N°2 - Semaine 39 Ă  40 | [A remplir] | [A remplir] | [A remplir] | N°3 - Semaine 41 Ă  43 | [A remplir] | [A remplir] | [A remplir] | N°4 - Semaine 44 Ă  48 | [A remplir] | [A remplir] | [A remplir] From 2476c62928f0d7ca447e411543fd41fafa6bfa02 Mon Sep 17 00:00:00 2001 From: ElPoraz <150593346+ElPoraz@users.noreply.github.com> Date: Mon, 15 Sep 2025 11:08:51 +0200 Subject: [PATCH 20/69] Adding the files --- docs/ODJ-CR/CR-Sprint-1-15-09-25.pdf | Bin 0 -> 58808 bytes docs/ODJ-CR/ODJ-Sprint-1-15-09-25.pdf | Bin 0 -> 50385 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/ODJ-CR/CR-Sprint-1-15-09-25.pdf create mode 100644 docs/ODJ-CR/ODJ-Sprint-1-15-09-25.pdf diff --git a/docs/ODJ-CR/CR-Sprint-1-15-09-25.pdf b/docs/ODJ-CR/CR-Sprint-1-15-09-25.pdf new file mode 100644 index 0000000000000000000000000000000000000000..4fc5dc142ff5bafae6cc76cf2593d807bed16815 GIT binary patch literal 58808 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 literal 0 HcmV?d00001 diff --git a/docs/ODJ-CR/ODJ-Sprint-1-15-09-25.pdf b/docs/ODJ-CR/ODJ-Sprint-1-15-09-25.pdf new file mode 100644 index 0000000000000000000000000000000000000000..891f929cb0ef7c430169caac86e8142968122435 GIT binary patch literal 50385 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 literal 0 HcmV?d00001 From f22cb00ee817109f9f4ddb30160c248e71286f22 Mon Sep 17 00:00:00 2001 From: ElPoraz <150593346+ElPoraz@users.noreply.github.com> Date: Wed, 17 Sep 2025 10:10:35 +0200 Subject: [PATCH 21/69] Update telework register with new entry and add last update date on top of the document Added a new entry for telework on 18/09/2024. --- README.adoc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.adoc b/README.adoc index 53db050b1d7..b8496009453 100644 --- a/README.adoc +++ b/README.adoc @@ -31,6 +31,8 @@ endif::[] // /!\ A MODIFIER !!! :baseURL: github.com/HugoTHOLLON/StreetCompleteSAE_S5 +_Last Update: 17/09/2025_ + // Tags image:https://img.shields.io/badge/License-GPLv3-blue.svg[License: GPL-3.0, link="https://www.gnu.org/licenses/gpl-3.0"] //--------------------------------------------------------------- @@ -106,3 +108,5 @@ Cette section regroupe tous les documents liĂ©s au projet : - **03/09/2024** : de 14h15 Ă  17h15 ↮ - **04/09/2024** : de 9h30 Ă  12h30 → https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-TT-04-09-25.pdf[Lien vers le CR] - **10/09/2024** : de 9h30 Ă  17h15 → Pas de rĂ©union, avancement de chacun de son cĂŽtĂ© +- **18/09/2024** : de 9h30 Ă  12h30 → TODO + From 403622467b1840e966de08d69530245901b40212 Mon Sep 17 00:00:00 2001 From: Naria Date: Thu, 18 Sep 2025 10:30:54 +0200 Subject: [PATCH 22/69] copy of oneway to adapt to bothway & updating of the first file --- .../quests/bothway/AddBothway.kt | 53 +++++++++++++++++++ .../quests/bothway/AddBothwayForm.kt | 33 ++++++++++++ .../quests/bothway/BothwayAnswer.kt | 7 +++ .../BothwayAnswerItem.kt} | 18 +++---- .../streetcomplete/quests/oneway/AddOneway.kt | 12 ++--- .../quests/oneway/AddOnewayForm.kt | 6 +-- .../quests/oneway/bothwayAnswerItem.kt | 27 ++++++++++ app/src/androidMain/res/values/strings.xml | 2 + 8 files changed, 140 insertions(+), 18 deletions(-) create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothway.kt create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothwayForm.kt create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswer.kt rename app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/{oneway/OnewayAnswerItem.kt => bothway/BothwayAnswerItem.kt} (51%) create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/bothwayAnswerItem.kt diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothway.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothway.kt new file mode 100644 index 00000000000..1846be9b4fd --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothway.kt @@ -0,0 +1,53 @@ +package de.westnordost.streetcomplete.quests.oneway + +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.data.elementfilter.toElementFilterExpression +import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry +import de.westnordost.streetcomplete.data.osm.mapdata.Element +import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry +import de.westnordost.streetcomplete.data.osm.mapdata.Way +import de.westnordost.streetcomplete.data.osm.osmquests.OsmElementQuestType +import de.westnordost.streetcomplete.data.quest.AndroidQuest +import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement +import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.CAR +import de.westnordost.streetcomplete.osm.ALL_ROADS +import de.westnordost.streetcomplete.osm.Tags +import de.westnordost.streetcomplete.osm.estimateUsableRoadwayWidth +import de.westnordost.streetcomplete.quests.oneway.BothwayAnswer.BACKWARD +import de.westnordost.streetcomplete.quests.oneway.BothwayAnswer.FORWARD +import de.westnordost.streetcomplete.quests.oneway.BothwayAnswer.NO_ONEWAY + +class AddBothway : OsmElementQuestType, AndroidQuest { + + private val elementFilter by lazy { """ + ways with aerialway and aerialway !~ cable_car|zipline and !oneway + """.toElementFilterExpression() } + + override val changesetComment = "Specify whether aerial ways can be used both ways" + override val wikiLink = "Key:bothway" + override val icon = R.drawable.ic_quest_oneway + override val hasMarkersAtEnds = true + override val achievements = listOf(CAR) + + override val hint = R.string.quest_arrow_tutorial + + override fun getTitle(tags: Map) = R.string.quest_bothway_title + + override fun getApplicableElements(mapData: MapDataWithGeometry): Iterable { + return mapData.ways.filter { elementFilter.matches(it) } + } + + override fun isApplicableTo(element: Element): Boolean? { + return elementFilter.matches(element) + } + + override fun createForm() = AddBothwayForm() + + override fun applyAnswerTo(answer: BothwayAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { + tags["oneway"] = when (answer) { + FORWARD -> "yes" + BACKWARD -> "-1" + NO_ONEWAY -> "no" + } + } +} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothwayForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothwayForm.kt new file mode 100644 index 00000000000..eeec8417563 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothwayForm.kt @@ -0,0 +1,33 @@ +package de.westnordost.streetcomplete.quests.oneway + +import android.os.Bundle +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.data.osm.geometry.ElementPolylinesGeometry +import de.westnordost.streetcomplete.quests.AImageListQuestForm +import de.westnordost.streetcomplete.util.math.getOrientationAtCenterLineInDegrees + +class AddBothwayForm : AImageListQuestForm() { + + override val items get() = + BothwayAnswer.entries.map { it.asItem(requireContext(), wayRotation - mapRotation) } + + override val itemsPerRow = 3 + + private var mapRotation: Float = 0f + private var wayRotation: Float = 0f + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + wayRotation = (geometry as ElementPolylinesGeometry).getOrientationAtCenterLineInDegrees() + imageSelector.cellLayoutId = R.layout.cell_icon_select_with_label_below + } + + override fun onMapOrientation(rotation: Double, tilt: Double) { + mapRotation = rotation.toFloat() + imageSelector.items = items + } + + override fun onClickOk(selectedItems: List) { + applyAnswer(selectedItems.first()) + } +} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswer.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswer.kt new file mode 100644 index 00000000000..f7785de4a49 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswer.kt @@ -0,0 +1,7 @@ +package de.westnordost.streetcomplete.quests.oneway + +enum class BothwayAnswer { + FORWARD, + BACKWARD, + NO_ONEWAY +} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/OnewayAnswerItem.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswerItem.kt similarity index 51% rename from app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/OnewayAnswerItem.kt rename to app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswerItem.kt index f6a611be510..b0b7341c314 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/OnewayAnswerItem.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswerItem.kt @@ -8,20 +8,20 @@ import de.westnordost.streetcomplete.view.RotatedCircleDrawable import de.westnordost.streetcomplete.view.image_select.DisplayItem import de.westnordost.streetcomplete.view.image_select.Item2 -fun OnewayAnswer.asItem(context: Context, rotation: Float): DisplayItem { +fun BothwayAnswer.asItem(context: Context, rotation: Float): DisplayItem { val drawable = RotatedCircleDrawable(context.getDrawable(iconResId)!!) drawable.rotation = rotation return Item2(this, DrawableImage(drawable), ResText(titleResId)) } -private val OnewayAnswer.titleResId: Int get() = when (this) { - OnewayAnswer.FORWARD -> R.string.quest_oneway2_dir - OnewayAnswer.BACKWARD -> R.string.quest_oneway2_dir - OnewayAnswer.NO_ONEWAY -> R.string.quest_oneway2_no_oneway +private val BothwayAnswer.titleResId: Int get() = when (this) { + BothwayAnswer.FORWARD -> R.string.quest_oneway2_dir + BothwayAnswer.BACKWARD -> R.string.quest_oneway2_dir + BothwayAnswer.NO_ONEWAY -> R.string.quest_oneway2_no_oneway } -private val OnewayAnswer.iconResId: Int get() = when (this) { - OnewayAnswer.FORWARD -> R.drawable.ic_oneway_yes - OnewayAnswer.BACKWARD -> R.drawable.ic_oneway_yes_reverse - OnewayAnswer.NO_ONEWAY -> R.drawable.ic_oneway_no +private val BothwayAnswer.iconResId: Int get() = when (this) { + BothwayAnswer.FORWARD -> R.drawable.ic_oneway_yes + BothwayAnswer.BACKWARD -> R.drawable.ic_oneway_yes_reverse + BothwayAnswer.NO_ONEWAY -> R.drawable.ic_oneway_no } diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt index 2d981383473..c0d7302c103 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt @@ -12,11 +12,11 @@ import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement. import de.westnordost.streetcomplete.osm.ALL_ROADS import de.westnordost.streetcomplete.osm.Tags import de.westnordost.streetcomplete.osm.estimateUsableRoadwayWidth -import de.westnordost.streetcomplete.quests.oneway.OnewayAnswer.BACKWARD -import de.westnordost.streetcomplete.quests.oneway.OnewayAnswer.FORWARD -import de.westnordost.streetcomplete.quests.oneway.OnewayAnswer.NO_ONEWAY +import de.westnordost.streetcomplete.quests.oneway.BothwayAnswer.BACKWARD +import de.westnordost.streetcomplete.quests.oneway.BothwayAnswer.FORWARD +import de.westnordost.streetcomplete.quests.oneway.BothwayAnswer.NO_ONEWAY -class AddOneway : OsmElementQuestType, AndroidQuest { +class AddOneway : OsmElementQuestType, AndroidQuest { /** find all roads */ private val allRoadsFilter by lazy { """ @@ -82,9 +82,9 @@ class AddOneway : OsmElementQuestType, AndroidQuest { return usableWidth <= 4f } - override fun createForm() = AddOnewayForm() + override fun createForm() = AddBothwayForm() - override fun applyAnswerTo(answer: OnewayAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { + override fun applyAnswerTo(answer: BothwayAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { tags["oneway"] = when (answer) { FORWARD -> "yes" BACKWARD -> "-1" diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOnewayForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOnewayForm.kt index 47e395bacbc..74f9d596b22 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOnewayForm.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOnewayForm.kt @@ -6,10 +6,10 @@ import de.westnordost.streetcomplete.data.osm.geometry.ElementPolylinesGeometry import de.westnordost.streetcomplete.quests.AImageListQuestForm import de.westnordost.streetcomplete.util.math.getOrientationAtCenterLineInDegrees -class AddOnewayForm : AImageListQuestForm() { +class AddOnewayForm : AImageListQuestForm() { override val items get() = - OnewayAnswer.entries.map { it.asItem(requireContext(), wayRotation - mapRotation) } + BothwayAnswer.entries.map { it.asItem(requireContext(), wayRotation - mapRotation) } override val itemsPerRow = 3 @@ -27,7 +27,7 @@ class AddOnewayForm : AImageListQuestForm() { imageSelector.items = items } - override fun onClickOk(selectedItems: List) { + override fun onClickOk(selectedItems: List) { applyAnswer(selectedItems.first()) } } diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/bothwayAnswerItem.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/bothwayAnswerItem.kt new file mode 100644 index 00000000000..b0b7341c314 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/bothwayAnswerItem.kt @@ -0,0 +1,27 @@ +package de.westnordost.streetcomplete.quests.oneway + +import android.content.Context +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.view.DrawableImage +import de.westnordost.streetcomplete.view.ResText +import de.westnordost.streetcomplete.view.RotatedCircleDrawable +import de.westnordost.streetcomplete.view.image_select.DisplayItem +import de.westnordost.streetcomplete.view.image_select.Item2 + +fun BothwayAnswer.asItem(context: Context, rotation: Float): DisplayItem { + val drawable = RotatedCircleDrawable(context.getDrawable(iconResId)!!) + drawable.rotation = rotation + return Item2(this, DrawableImage(drawable), ResText(titleResId)) +} + +private val BothwayAnswer.titleResId: Int get() = when (this) { + BothwayAnswer.FORWARD -> R.string.quest_oneway2_dir + BothwayAnswer.BACKWARD -> R.string.quest_oneway2_dir + BothwayAnswer.NO_ONEWAY -> R.string.quest_oneway2_no_oneway +} + +private val BothwayAnswer.iconResId: Int get() = when (this) { + BothwayAnswer.FORWARD -> R.drawable.ic_oneway_yes + BothwayAnswer.BACKWARD -> R.drawable.ic_oneway_yes_reverse + BothwayAnswer.NO_ONEWAY -> R.drawable.ic_oneway_no +} diff --git a/app/src/androidMain/res/values/strings.xml b/app/src/androidMain/res/values/strings.xml index e252dfeccd8..738a10b7816 100644 --- a/app/src/androidMain/res/values/strings.xml +++ b/app/src/androidMain/res/values/strings.xml @@ -859,6 +859,8 @@ Before uploading your changes, the app checks with a <a href=\"https://www.we Fixed (not removable) Not a bollard, but some other barrier + In what direction can you ride this ? + What’s the structure of this bridge? What kind of building entrance is this? From d09a0c1ffd6dc7173cd806d1efe919f1a7c65e8b Mon Sep 17 00:00:00 2001 From: Naria Date: Thu, 18 Sep 2025 12:14:08 +0200 Subject: [PATCH 23/69] Quest should be done, but testing is not done yet --- .../quests/bothway/AddBothway.kt | 19 ++++++++----------- .../quests/bothway/AddBothwayForm.kt | 2 +- .../quests/bothway/BothwayAnswer.kt | 8 ++++---- .../quests/bothway/BothwayAnswerItem.kt | 15 ++++++++------- app/src/androidMain/res/values/strings.xml | 3 +++ 5 files changed, 24 insertions(+), 23 deletions(-) diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothway.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothway.kt index 1846be9b4fd..33f823ce358 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothway.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothway.kt @@ -1,21 +1,18 @@ -package de.westnordost.streetcomplete.quests.oneway +package de.westnordost.streetcomplete.quests.bothway import de.westnordost.streetcomplete.R import de.westnordost.streetcomplete.data.elementfilter.toElementFilterExpression import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry import de.westnordost.streetcomplete.data.osm.mapdata.Element import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry -import de.westnordost.streetcomplete.data.osm.mapdata.Way import de.westnordost.streetcomplete.data.osm.osmquests.OsmElementQuestType import de.westnordost.streetcomplete.data.quest.AndroidQuest -import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.CAR -import de.westnordost.streetcomplete.osm.ALL_ROADS import de.westnordost.streetcomplete.osm.Tags -import de.westnordost.streetcomplete.osm.estimateUsableRoadwayWidth -import de.westnordost.streetcomplete.quests.oneway.BothwayAnswer.BACKWARD -import de.westnordost.streetcomplete.quests.oneway.BothwayAnswer.FORWARD -import de.westnordost.streetcomplete.quests.oneway.BothwayAnswer.NO_ONEWAY +import de.westnordost.streetcomplete.quests.bothway.BothwayAnswer.BOTHWAY +import de.westnordost.streetcomplete.quests.bothway.BothwayAnswer.UPWARD +import de.westnordost.streetcomplete.quests.bothway.BothwayAnswer.DOWNWARD + class AddBothway : OsmElementQuestType, AndroidQuest { @@ -45,9 +42,9 @@ class AddBothway : OsmElementQuestType, AndroidQuest { override fun applyAnswerTo(answer: BothwayAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { tags["oneway"] = when (answer) { - FORWARD -> "yes" - BACKWARD -> "-1" - NO_ONEWAY -> "no" + UPWARD -> "yes" + DOWNWARD -> "-1" + BOTHWAY -> "no" } } } diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothwayForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothwayForm.kt index eeec8417563..040a94ce03f 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothwayForm.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothwayForm.kt @@ -1,4 +1,4 @@ -package de.westnordost.streetcomplete.quests.oneway +package de.westnordost.streetcomplete.quests.bothway import android.os.Bundle import de.westnordost.streetcomplete.R diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswer.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswer.kt index f7785de4a49..ec7f332c8ae 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswer.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswer.kt @@ -1,7 +1,7 @@ -package de.westnordost.streetcomplete.quests.oneway +package de.westnordost.streetcomplete.quests.bothway enum class BothwayAnswer { - FORWARD, - BACKWARD, - NO_ONEWAY + UPWARD, + DOWNWARD, + BOTHWAY } diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswerItem.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswerItem.kt index b0b7341c314..f140491080b 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswerItem.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswerItem.kt @@ -1,4 +1,4 @@ -package de.westnordost.streetcomplete.quests.oneway +package de.westnordost.streetcomplete.quests.bothway import android.content.Context import de.westnordost.streetcomplete.R @@ -15,13 +15,14 @@ fun BothwayAnswer.asItem(context: Context, rotation: Float): DisplayItem R.string.quest_oneway2_dir - BothwayAnswer.BACKWARD -> R.string.quest_oneway2_dir - BothwayAnswer.NO_ONEWAY -> R.string.quest_oneway2_no_oneway + BothwayAnswer.UPWARD -> R.string.quest_bothway_answer_upwards + BothwayAnswer.DOWNWARD -> R.string.quest_bothway_answer_downwards + BothwayAnswer.BOTHWAY -> R.string.quest_bothway_answer_bothway } +//kept oneway icons, feel free to update it private val BothwayAnswer.iconResId: Int get() = when (this) { - BothwayAnswer.FORWARD -> R.drawable.ic_oneway_yes - BothwayAnswer.BACKWARD -> R.drawable.ic_oneway_yes_reverse - BothwayAnswer.NO_ONEWAY -> R.drawable.ic_oneway_no + BothwayAnswer.UPWARD -> R.drawable.ic_oneway_yes + BothwayAnswer.DOWNWARD -> R.drawable.ic_oneway_yes_reverse + BothwayAnswer.BOTHWAY -> R.drawable.ic_oneway_no } diff --git a/app/src/androidMain/res/values/strings.xml b/app/src/androidMain/res/values/strings.xml index 738a10b7816..d5cb3d9f658 100644 --- a/app/src/androidMain/res/values/strings.xml +++ b/app/src/androidMain/res/values/strings.xml @@ -860,6 +860,9 @@ Before uploading your changes, the app checks with a <a href=\"https://www.we Not a bollard, but some other barrier In what direction can you ride this ? + This can be used bothway. + This can only lead upwards. + This can only lead downwards. What’s the structure of this bridge? From fb196f7f8a691ccc8b23af98f5634c42bb876cba Mon Sep 17 00:00:00 2001 From: ElPoraz Date: Fri, 19 Sep 2025 11:00:33 +0200 Subject: [PATCH 24/69] Adding the motorcycle_parking_fee quest number 180 --- .../streetcomplete/quests/QuestsModule.kt | 2 + .../parking_fee/AddMotorcycleParkingFee.kt | 36 ++++++++++++++ .../ic_quest_motorcycle_parking_fee.xml | 47 +++++++++++++++++++ app/src/androidMain/res/values/strings.xml | 2 + 4 files changed, 87 insertions(+) create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddMotorcycleParkingFee.kt create mode 100644 app/src/androidMain/res/drawable/ic_quest_motorcycle_parking_fee.xml diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt index f15f4b20d18..ebc4bc7f30e 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt @@ -120,6 +120,7 @@ import de.westnordost.streetcomplete.quests.parcel_locker_brand.AddParcelLockerB import de.westnordost.streetcomplete.quests.parking_access.AddBikeParkingAccess import de.westnordost.streetcomplete.quests.parking_access.AddParkingAccess import de.westnordost.streetcomplete.quests.parking_fee.AddBikeParkingFee +import de.westnordost.streetcomplete.quests.parking_fee.AddMotorcycleParkingFee import de.westnordost.streetcomplete.quests.parking_fee.AddParkingFee import de.westnordost.streetcomplete.quests.parking_type.AddParkingType import de.westnordost.streetcomplete.quests.pitch_lit.AddPitchLit @@ -301,6 +302,7 @@ fun questTypeRegistry( // motorcycle parking 30 to AddMotorcycleParkingCover(), 31 to AddMotorcycleParkingCapacity(), // counting + number input required but usually well visible + 180 to AddMotorcycleParkingFee(), // air pump, may require some checking within a garage forecourt 32 to AddAirCompressor(), diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddMotorcycleParkingFee.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddMotorcycleParkingFee.kt new file mode 100644 index 00000000000..09dc29ee8fd --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddMotorcycleParkingFee.kt @@ -0,0 +1,36 @@ +package de.westnordost.streetcomplete.quests.parking_fee + +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry +import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType +import de.westnordost.streetcomplete.data.quest.AndroidQuest +import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.CAR +import de.westnordost.streetcomplete.osm.Tags +import de.westnordost.streetcomplete.osm.fee.applyTo +import de.westnordost.streetcomplete.osm.maxstay.applyTo + +class AddMotorcycleParkingFee : OsmFilterQuestType(), AndroidQuest { + + // element selection logic by @DerDings in #2507 + override val elementFilter = """ + nodes, ways, relations with amenity = motorcycle_parking + and access ~ yes|customers|public + and ( + !fee and !fee:conditional + or fee older today -8 years + ) + """ + override val changesetComment = "Specify motorcycle parking fees" + override val wikiLink = "Tag:amenity=motorcycle_parking" + override val icon = R.drawable.ic_quest_motorcycle_parking_fee + override val achievements = listOf(CAR) + + override fun getTitle(tags: Map) = R.string.quest_motorcycle_parking_fee_title + + override fun createForm() = AddParkingFeeForm() + + override fun applyAnswerTo(answer: ParkingFeeAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { + answer.fee.applyTo(tags) + answer.maxstay?.applyTo(tags) + } +} diff --git a/app/src/androidMain/res/drawable/ic_quest_motorcycle_parking_fee.xml b/app/src/androidMain/res/drawable/ic_quest_motorcycle_parking_fee.xml new file mode 100644 index 00000000000..f50ae4bd288 --- /dev/null +++ b/app/src/androidMain/res/drawable/ic_quest_motorcycle_parking_fee.xml @@ -0,0 +1,47 @@ + + + + + + + + + + diff --git a/app/src/androidMain/res/values/strings.xml b/app/src/androidMain/res/values/strings.xml index c34dde495d1..927d94b4690 100644 --- a/app/src/androidMain/res/values/strings.xml +++ b/app/src/androidMain/res/values/strings.xml @@ -1257,6 +1257,8 @@ If there are no signs along the whole street which apply for the highlighted sec Is this motorcycle parking covered (protected from rain)? + Do you have to pay to park your motorcycle here? + Can you contribute anything to this note? No, hide From 0cd45721255b94a24e3bbe5061c44a2c6c8fe6a8 Mon Sep 17 00:00:00 2001 From: ElPoraz <150593346+ElPoraz@users.noreply.github.com> Date: Fri, 19 Sep 2025 13:29:04 +0200 Subject: [PATCH 25/69] Update README.adoc --- README.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index b8496009453..0266255d523 100644 --- a/README.adoc +++ b/README.adoc @@ -31,7 +31,7 @@ endif::[] // /!\ A MODIFIER !!! :baseURL: github.com/HugoTHOLLON/StreetCompleteSAE_S5 -_Last Update: 17/09/2025_ +_Last Update: 19/09/2025_ // Tags image:https://img.shields.io/badge/License-GPLv3-blue.svg[License: GPL-3.0, link="https://www.gnu.org/licenses/gpl-3.0"] @@ -108,5 +108,5 @@ Cette section regroupe tous les documents liĂ©s au projet : - **03/09/2024** : de 14h15 Ă  17h15 ↮ - **04/09/2024** : de 9h30 Ă  12h30 → https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-TT-04-09-25.pdf[Lien vers le CR] - **10/09/2024** : de 9h30 Ă  17h15 → Pas de rĂ©union, avancement de chacun de son cĂŽtĂ© -- **18/09/2024** : de 9h30 Ă  12h30 → TODO +- **18/09/2024** : de 9h30 Ă  12h30 → Pas de rĂ©union car rĂ©union de sprint Ă  venir trĂšs bientĂŽt From ed0fc84dfdc0b1e3cab4652849a1cb3d97188036 Mon Sep 17 00:00:00 2001 From: RaphaLLamothe Date: Fri, 19 Sep 2025 14:02:24 +0200 Subject: [PATCH 26/69] V1 without SVG pictures --- .../streetcomplete/quests/QuestsModule.kt | 4 ++ .../aerialway/AddAerialwayBicycleAccess.kt | 53 +++++++++++++++++++ .../AddAerialwayBicycleAccessForm.kt | 20 +++++++ .../aerialway/AerialwayBicycleAccessAnswer.kt | 7 +++ .../AerialwayBicycleAccessAnswerItem.kt | 26 +++++++++ app/src/androidMain/res/values/strings.xml | 5 ++ 6 files changed, 115 insertions(+) create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccess.kt create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccessForm.kt create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswer.kt create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswerItem.kt diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt index f15f4b20d18..67f1e0e0180 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt @@ -14,6 +14,7 @@ import de.westnordost.streetcomplete.quests.accepts_cash.AddAcceptsCash import de.westnordost.streetcomplete.quests.access_point_ref.AddAccessPointRef import de.westnordost.streetcomplete.quests.address.AddAddressStreet import de.westnordost.streetcomplete.quests.address.AddHousenumber +import de.westnordost.streetcomplete.quests.aerialway.AddAerialwayBicycleAccess import de.westnordost.streetcomplete.quests.air_conditioning.AddAirConditioning import de.westnordost.streetcomplete.quests.air_pump.AddAirCompressor import de.westnordost.streetcomplete.quests.amenity_cover.AddAmenityCover @@ -437,6 +438,9 @@ fun questTypeRegistry( 101 to AddFerryAccessPedestrian(), 102 to AddFerryAccessMotorVehicle(), + //aerialway: usually visible from looking at the aerialway, but not always... + 181 to AddAerialwayBicycleAccess(), + 103 to AddProhibitedForPedestrians(), // need to understand the pedestrian situation 104 to MarkCompletedHighwayConstruction(), // need to look the whole way diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccess.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccess.kt new file mode 100644 index 00000000000..e1a209b3d47 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccess.kt @@ -0,0 +1,53 @@ +package de.westnordost.streetcomplete.quests.aerialway + +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.data.elementfilter.toElementFilterExpression +import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry +import de.westnordost.streetcomplete.data.osm.mapdata.Element +import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry +import de.westnordost.streetcomplete.data.osm.mapdata.Way +import de.westnordost.streetcomplete.data.osm.mapdata.filter +import de.westnordost.streetcomplete.data.osm.osmquests.OsmElementQuestType +import de.westnordost.streetcomplete.data.quest.AndroidQuest +import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.BICYCLIST +import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.RARE +import de.westnordost.streetcomplete.osm.Tags +import de.westnordost.streetcomplete.quests.aerialway.AerialwayBicycleAccessAnswer.YES +import de.westnordost.streetcomplete.quests.aerialway.AerialwayBicycleAccessAnswer.SUMMER +import de.westnordost.streetcomplete.quests.aerialway.AerialwayBicycleAccessAnswer.NO + +class AddAerialwayBicycleAccess : OsmElementQuestType, AndroidQuest { + + private val filter by lazy { + "ways, relations with aerialway and !bicycle".toElementFilterExpression() + } + override val changesetComment = "Specify aerialway access for bicycles" + override val wikiLink = "Tag:aerialway" + override val icon = R.drawable.ic_quest_ferry_pedestrian + override val hasMarkersAtEnds = true + override val achievements = listOf(RARE, BICYCLIST) + + override fun getTitle(tags: Map) = R.string.quest_aerialway_bicycle_title + + override fun createForm() = AddAerialwayBicycleAccessForm() + + override fun applyAnswerTo(answer: AerialwayBicycleAccessAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { + tags["bicycle"] = when (answer) { + YES -> "yes" + SUMMER -> "-1" + NO -> "no" + } + } + + override fun getApplicableElements(mapData: MapDataWithGeometry): Iterable { + return mapData + .filter(filter) + .asIterable() + } + + override fun isApplicableTo(element: Element): Boolean? { + if (!filter.matches(element)) return false + if (element is Way) return null + return true + } +} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccessForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccessForm.kt new file mode 100644 index 00000000000..8fa6eadca00 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccessForm.kt @@ -0,0 +1,20 @@ +package de.westnordost.streetcomplete.quests.aerialway + +import android.os.Bundle +import de.westnordost.streetcomplete.quests.AImageListQuestForm + +class AddAerialwayBicycleAccessForm : AImageListQuestForm() { + + override val items get() = + AerialwayBicycleAccessAnswer.entries.map { it.asItem(requireContext()) } + + override val itemsPerRow = 3 + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + } + + override fun onClickOk(selectedItems: List) { + applyAnswer(selectedItems.first()) + } +} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswer.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswer.kt new file mode 100644 index 00000000000..e8a6f3ad4a3 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswer.kt @@ -0,0 +1,7 @@ +package de.westnordost.streetcomplete.quests.aerialway + +enum class AerialwayBicycleAccessAnswer { + YES, + SUMMER, + NO +} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswerItem.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswerItem.kt new file mode 100644 index 00000000000..92f2e155f72 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswerItem.kt @@ -0,0 +1,26 @@ +package de.westnordost.streetcomplete.quests.aerialway + +import android.content.Context +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.view.DrawableImage +import de.westnordost.streetcomplete.view.ResText +import de.westnordost.streetcomplete.view.RotatedCircleDrawable +import de.westnordost.streetcomplete.view.image_select.DisplayItem +import de.westnordost.streetcomplete.view.image_select.Item2 + +fun AerialwayBicycleAccessAnswer.asItem(context: Context): DisplayItem { + val drawable = RotatedCircleDrawable(context.getDrawable(iconResId)!!) + return Item2(this, DrawableImage(drawable), ResText(titleResId)) +} + +private val AerialwayBicycleAccessAnswer.titleResId: Int get() = when (this) { + AerialwayBicycleAccessAnswer.YES -> R.string.quest_aerialway_bicycle_yes + AerialwayBicycleAccessAnswer.SUMMER -> R.string.quest_aerialway_bicycle_summer + AerialwayBicycleAccessAnswer.NO -> R.string.quest_aerialway_bicycle_no +} + +private val AerialwayBicycleAccessAnswer.iconResId: Int get() = when (this) { + AerialwayBicycleAccessAnswer.YES -> R.drawable.ic_oneway_yes + AerialwayBicycleAccessAnswer.SUMMER -> R.drawable.ic_oneway_yes_reverse + AerialwayBicycleAccessAnswer.NO -> R.drawable.ic_oneway_no +} diff --git a/app/src/androidMain/res/values/strings.xml b/app/src/androidMain/res/values/strings.xml index c34dde495d1..9656aca4570 100644 --- a/app/src/androidMain/res/values/strings.xml +++ b/app/src/androidMain/res/values/strings.xml @@ -723,6 +723,11 @@ Before uploading your changes, the app checks with a <a href="https://www.wes Street name: Tap street on map to select it + Does this aerialway transport bicycles? + Bicycles are always allowed + Bicycles are allowed only during summer + Bicycles are not allowed + Is this place air-conditioned? Can you deposit cash at this ATM? From fc1b9515fbec4ec922a16e71e12c3f5118bdf5bf Mon Sep 17 00:00:00 2001 From: HugoTHOLLON Date: Sat, 20 Sep 2025 13:04:09 +0200 Subject: [PATCH 27/69] Added AddBikeChargingStationCapacity quest suggested in #6457 --- .../streetcomplete/quests/QuestsModule.kt | 3 ++ .../AddBikeChargingStationCapacity.kt | 42 +++++++++++++++++++ .../AddBikeChargingStationCapacityForm.kt | 10 +++++ app/src/androidMain/res/values/strings.xml | 2 + 4 files changed, 57 insertions(+) create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacity.kt create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacityForm.kt diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt index f15f4b20d18..001fe312dc5 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt @@ -31,6 +31,7 @@ import de.westnordost.streetcomplete.quests.barrier_type.AddStileType import de.westnordost.streetcomplete.quests.bbq_fuel.AddBbqFuel import de.westnordost.streetcomplete.quests.bench_backrest.AddBenchBackrest import de.westnordost.streetcomplete.quests.bicycle_repair_station.AddBicycleRepairStationServices +import de.westnordost.streetcomplete.quests.bike_charging_station_capacity.AddBikeChargingStationCapacity import de.westnordost.streetcomplete.quests.bike_parking_capacity.AddBikeParkingCapacity import de.westnordost.streetcomplete.quests.bike_parking_cover.AddBikeParkingCover import de.westnordost.streetcomplete.quests.bike_parking_type.AddBikeParkingType @@ -408,6 +409,8 @@ fun questTypeRegistry( 86 to AddClothingBinOperator(), + 179 to AddBikeChargingStationCapacity(), + 87 to AddChargingStationCapacity(), 88 to AddChargingStationOperator(), diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacity.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacity.kt new file mode 100644 index 00000000000..dfb960d172a --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacity.kt @@ -0,0 +1,42 @@ +package de.westnordost.streetcomplete.quests.bike_charging_station_capacity + +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry +import de.westnordost.streetcomplete.data.osm.mapdata.Element +import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry +import de.westnordost.streetcomplete.data.osm.mapdata.filter +import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType +import de.westnordost.streetcomplete.data.quest.AndroidQuest +import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.BICYCLIST +import de.westnordost.streetcomplete.osm.Tags +import de.westnordost.streetcomplete.osm.updateWithCheckDate + +class AddBikeChargingStationCapacity : OsmFilterQuestType(), AndroidQuest { + + override val elementFilter = """ + nodes, ways with + amenity = charging_station + and bicycle ~ yes|designated + and access !~ private|no + and ( + !capacity + or capacity older today -8 years + ) + """ + override val changesetComment = "Specify bicycle charging stations capacities" + override val wikiLink = "Tag:amenity=charging_station" + override val icon = R.drawable.ic_quest_car_charger_capacity // using the car charger icon because the logo also works for bikes + override val isDeleteElementEnabled = true + override val achievements = listOf(BICYCLIST) + + override fun getTitle(tags: Map) = R.string.quest_bicycle_charging_station_capacity_title + + override fun getHighlightedElements(element: Element, getMapData: () -> MapDataWithGeometry) = + getMapData().filter("nodes, ways with amenity = charging_station and bicycle ~ yes|designated") + + override fun createForm() = AddBikeChargingStationCapacityForm() + + override fun applyAnswerTo(answer: Int, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { + tags.updateWithCheckDate("capacity", answer.toString()) + } +} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacityForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacityForm.kt new file mode 100644 index 00000000000..b4bcea3b075 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacityForm.kt @@ -0,0 +1,10 @@ +package de.westnordost.streetcomplete.quests.bike_charging_station_capacity + +import de.westnordost.streetcomplete.quests.AAddCountInput +import de.westnordost.streetcomplete.resources.Res +import de.westnordost.streetcomplete.resources.count_bicycle +import de.westnordost.streetcomplete.resources.count_electric_car + +class AddBikeChargingStationCapacityForm : AAddCountInput() { + override val icon = Res.drawable.count_bicycle +} diff --git a/app/src/androidMain/res/values/strings.xml b/app/src/androidMain/res/values/strings.xml index c34dde495d1..4c3ed6edcca 100644 --- a/app/src/androidMain/res/values/strings.xml +++ b/app/src/androidMain/res/values/strings.xml @@ -777,6 +777,8 @@ Before uploading your changes, the app checks with a <a href="https://www.wes Openable Removable + How many bicycle can be charged here at the same time? + Which direction leads upwards here? It’s up and down hops From 0edf053a358de4c2eab8814c86c25acb9d766fc0 Mon Sep 17 00:00:00 2001 From: Nicodeh Date: Sat, 20 Sep 2025 14:47:24 +0200 Subject: [PATCH 28/69] Quest added : Where is this first aid kit located? (Version 1 + new icon) --- .../streetcomplete/quests/QuestsModule.kt | 3 ++ .../first_aid_kit/AddFirstAidKitLocation.kt | 38 +++++++++++++++++++ .../AddFirstAidKitLocationForm.kt | 28 ++++++++++++++ .../res/drawable/ic_quest_first_aid_kit.xml | 26 +++++++++++++ app/src/androidMain/res/values/strings.xml | 3 ++ 5 files changed, 98 insertions(+) create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocation.kt create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocationForm.kt create mode 100644 app/src/androidMain/res/drawable/ic_quest_first_aid_kit.xml diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt index f15f4b20d18..a88c93d394b 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt @@ -87,6 +87,7 @@ import de.westnordost.streetcomplete.quests.fire_hydrant.AddFireHydrantType import de.westnordost.streetcomplete.quests.fire_hydrant_diameter.AddFireHydrantDiameter import de.westnordost.streetcomplete.quests.fire_hydrant_position.AddFireHydrantPosition import de.westnordost.streetcomplete.quests.fire_hydrant_ref.AddFireHydrantRef +import de.westnordost.streetcomplete.quests.first_aid_kit.AddFirstAidKitLocation import de.westnordost.streetcomplete.quests.foot.AddProhibitedForPedestrians import de.westnordost.streetcomplete.quests.fuel_service.AddFuelSelfService import de.westnordost.streetcomplete.quests.general_fee.AddGeneralFee @@ -465,6 +466,8 @@ fun questTypeRegistry( 113 to AddIsAmenityIndoor(getFeature), // need to go inside in case it is inside (or gone) 161 to AddDefibrillatorLocation(), // need to go inside in case it is inside (or gone) + 183 to AddFirstAidKitLocation(), // need to go inside in case it is inside (or gone) + // inside camping sites 114 to AddCampType(), 115 to AddCampDrinkingWater(), diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocation.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocation.kt new file mode 100644 index 00000000000..93af7b22123 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocation.kt @@ -0,0 +1,38 @@ +package de.westnordost.streetcomplete.quests.first_aid_kit + +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry +import de.westnordost.streetcomplete.data.osm.mapdata.Element +import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry +import de.westnordost.streetcomplete.data.osm.mapdata.filter +import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType +import de.westnordost.streetcomplete.data.quest.AndroidQuest +import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.LIFESAVER +import de.westnordost.streetcomplete.osm.Tags + +class AddFirstAidKitLocation : OsmFilterQuestType(), AndroidQuest { + + override val elementFilter = """ + nodes with + emergency = first_aid_kit + and !location and !first_aid_kit:location + and access !~ private|no + """ + override val changesetComment = "Specify first aid kit location" + override val wikiLink = "Tag:emergency=first_aid_kit" + //override val icon = R.drawable.ic_quest_defibrillator // Temporary icon + override val icon = R.drawable.ic_quest_first_aid_kit + override val isDeleteElementEnabled = false + override val achievements = listOf(LIFESAVER) + + override fun getTitle(tags: Map) = R.string.quest_first_aid_kit_location + + override fun getHighlightedElements(element: Element, getMapData: () -> MapDataWithGeometry) = + getMapData().filter("nodes with emergency = first_aid_kit") + + override fun createForm() = AddFirstAidKitLocationForm() + + override fun applyAnswerTo(answer: String, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { + tags["first_aid_kit:location"] = answer + } +} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocationForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocationForm.kt new file mode 100644 index 00000000000..92e9b3b36fc --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocationForm.kt @@ -0,0 +1,28 @@ +package de.westnordost.streetcomplete.quests.first_aid_kit + +import android.os.Bundle +import android.view.View +import androidx.core.widget.doAfterTextChanged +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.databinding.QuestLocationBinding +import de.westnordost.streetcomplete.quests.AbstractOsmQuestForm +import de.westnordost.streetcomplete.util.ktx.nonBlankTextOrNull + +class AddFirstAidKitLocationForm : AbstractOsmQuestForm() { + + override val contentLayoutResId = R.layout.quest_location + private val binding by contentViewBinding(QuestLocationBinding::bind) + + private val location get() = binding.locationInput.nonBlankTextOrNull + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + binding.locationInput.doAfterTextChanged { checkIsFormComplete() } + } + + override fun onClickOk() { + applyAnswer(location!!) + } + + override fun isFormComplete() = location != null +} diff --git a/app/src/androidMain/res/drawable/ic_quest_first_aid_kit.xml b/app/src/androidMain/res/drawable/ic_quest_first_aid_kit.xml new file mode 100644 index 00000000000..5c4d1904353 --- /dev/null +++ b/app/src/androidMain/res/drawable/ic_quest_first_aid_kit.xml @@ -0,0 +1,26 @@ + + + + + + + + + + + + diff --git a/app/src/androidMain/res/values/strings.xml b/app/src/androidMain/res/values/strings.xml index c34dde495d1..fc5d2cda1d2 100644 --- a/app/src/androidMain/res/values/strings.xml +++ b/app/src/androidMain/res/values/strings.xml @@ -1169,6 +1169,9 @@ A level counts as a roof level when its windows are in the roof. Subsequently, r Where is this defibrillator located? Please provide a concise description of its position (e.g. “in the porter’s lounge”). + Where is the first aid kit located? + Please provide a concise description of its position (e.g. “in the porter’s lounge”). + What’s the height of this curb? Same level as road surface A bit higher than road surface From cd6ebd9cece4c4791b9b272789bdbf7f5e76331a Mon Sep 17 00:00:00 2001 From: HugoTHOLLON Date: Sun, 21 Sep 2025 16:13:19 +0200 Subject: [PATCH 29/69] Added AddScooterChargingStationCapacity quest suggested in #6457, the icons of the quest need to be updated --- .../streetcomplete/quests/QuestsModule.kt | 3 ++ .../AddScooterChargingStationCapacity.kt | 42 +++++++++++++++++++ .../AddScooterChargingStationCapacityForm.kt | 9 ++++ app/src/androidMain/res/values/strings.xml | 2 + 4 files changed, 56 insertions(+) create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacity.kt create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacityForm.kt diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt index 001fe312dc5..23ac4389f06 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt @@ -141,6 +141,7 @@ import de.westnordost.streetcomplete.quests.religion.AddReligionToWaysideShrine import de.westnordost.streetcomplete.quests.road_name.AddRoadName import de.westnordost.streetcomplete.quests.roof_shape.AddRoofShape import de.westnordost.streetcomplete.quests.sanitary_dump_station.AddSanitaryDumpStation +import de.westnordost.streetcomplete.quests.scooter_charging_station_capacity.AddScooterChargingStationCapacity import de.westnordost.streetcomplete.quests.seating.AddSeating import de.westnordost.streetcomplete.quests.segregated.AddCyclewaySegregation import de.westnordost.streetcomplete.quests.self_service.AddSelfServiceLaundry @@ -411,6 +412,8 @@ fun questTypeRegistry( 179 to AddBikeChargingStationCapacity(), + 181 to AddScooterChargingStationCapacity(), + 87 to AddChargingStationCapacity(), 88 to AddChargingStationOperator(), diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacity.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacity.kt new file mode 100644 index 00000000000..a8a825fa4f8 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacity.kt @@ -0,0 +1,42 @@ +package de.westnordost.streetcomplete.quests.scooter_charging_station_capacity + +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry +import de.westnordost.streetcomplete.data.osm.mapdata.Element +import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry +import de.westnordost.streetcomplete.data.osm.mapdata.filter +import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType +import de.westnordost.streetcomplete.data.quest.AndroidQuest +import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.BICYCLIST +import de.westnordost.streetcomplete.osm.Tags +import de.westnordost.streetcomplete.osm.updateWithCheckDate + +class AddScooterChargingStationCapacity : OsmFilterQuestType(), AndroidQuest { + + override val elementFilter = """ + nodes, ways with + amenity = charging_station + and scooter ~ yes|designated + and access !~ private|no + and ( + !capacity + or capacity older today -8 years + ) + """ + override val changesetComment = "Specify scooter charging stations capacities" + override val wikiLink = "Tag:amenity=charging_station" + override val icon = R.drawable.ic_quest_car_charger_capacity // using the car charger icon because the logo also works for scooters + override val isDeleteElementEnabled = true + override val achievements = listOf(BICYCLIST) // no scooter achievement + + override fun getTitle(tags: Map) = R.string.quest_scooter_charging_station_capacity_title + + override fun getHighlightedElements(element: Element, getMapData: () -> MapDataWithGeometry) = + getMapData().filter("nodes, ways with amenity = charging_station and scooter ~ yes|designated") + + override fun createForm() = AddScooterChargingStationCapacityForm() + + override fun applyAnswerTo(answer: Int, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { + tags.updateWithCheckDate("capacity", answer.toString()) + } +} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacityForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacityForm.kt new file mode 100644 index 00000000000..0d2c723b18e --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacityForm.kt @@ -0,0 +1,9 @@ +package de.westnordost.streetcomplete.quests.scooter_charging_station_capacity + +import de.westnordost.streetcomplete.quests.AAddCountInput +import de.westnordost.streetcomplete.resources.Res +import de.westnordost.streetcomplete.resources.count_bicycle + +class AddScooterChargingStationCapacityForm : AAddCountInput() { + override val icon = Res.drawable.count_bicycle // TODO add a scooter icon (res/drawable/ic_smoothness_scooter.xml) could work but it needs to be copied in commomMain, right know it can be found in androidMain. +} diff --git a/app/src/androidMain/res/values/strings.xml b/app/src/androidMain/res/values/strings.xml index 4c3ed6edcca..2f1d093807a 100644 --- a/app/src/androidMain/res/values/strings.xml +++ b/app/src/androidMain/res/values/strings.xml @@ -1493,6 +1493,8 @@ If there are no signs along the whole street which apply for the highlighted sec It has several different shapes This quest type is disabled by default because roof shapes are often not easily visible from the street. This quest type is also quite time-consuming; in most cases it is easier and more efficient to map this from aerial imagery at home. + How many scooters can be charged here at the same time? + What kind of seating does this place have? No seating (takeout only) Indoor seating only From 76a1dccea73cede8d63d7ba92cf764da8feaba0e Mon Sep 17 00:00:00 2001 From: Naria Date: Sun, 21 Sep 2025 16:47:54 +0200 Subject: [PATCH 30/69] Saving for pull --- .../kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt index 30e75d9a6a6..2a26d6a34f5 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt @@ -430,6 +430,7 @@ fun questTypeRegistry( 166 to AddMopedAccess(), + 182 to Bothway /* ↓ 3.quests that may need some exploration / walking around --------------------------- */ // ferry: usually visible from looking at the boat, but not always... From c34b39af95dc81cd6207a23252aba6af36895ee4 Mon Sep 17 00:00:00 2001 From: HugoTHOLLON Date: Sun, 21 Sep 2025 16:50:47 +0200 Subject: [PATCH 31/69] Solving QuestModule duplicate id problem. --- .../de/westnordost/streetcomplete/quests/QuestsModule.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt index 3a4ec855d83..8ca578ebb14 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt @@ -447,8 +447,8 @@ fun questTypeRegistry( 101 to AddFerryAccessPedestrian(), 102 to AddFerryAccessMotorVehicle(), - //aerialway: usually visible from looking at the aerialway, but not always... - 181 to AddAerialwayBicycleAccess(), + //aerial way: usually visible from looking at the aerial way, but not always... + 183 to AddAerialwayBicycleAccess(), 103 to AddProhibitedForPedestrians(), // need to understand the pedestrian situation From efb59f9dc11a9eba8c881b39749d2f173fb836bc Mon Sep 17 00:00:00 2001 From: Naria Date: Sun, 21 Sep 2025 16:51:40 +0200 Subject: [PATCH 32/69] Saving for pull --- .../de/westnordost/streetcomplete/quests/QuestsModule.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt index 8d357ebfe85..e0096936829 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt @@ -45,6 +45,7 @@ import de.westnordost.streetcomplete.quests.board_name.AddBoardName import de.westnordost.streetcomplete.quests.board_type.AddBoardType import de.westnordost.streetcomplete.quests.boat_rental.AddBoatRental import de.westnordost.streetcomplete.quests.bollard_type.AddBollardType +import de.westnordost.streetcomplete.quests.bothway.AddBothway import de.westnordost.streetcomplete.quests.bridge_structure.AddBridgeStructure import de.westnordost.streetcomplete.quests.building_entrance.AddEntrance import de.westnordost.streetcomplete.quests.building_entrance_reference.AddEntranceReference @@ -441,7 +442,7 @@ fun questTypeRegistry( 166 to AddMopedAccess(), - 182 to Bothway + 182 to AddBothway(), /* ↓ 3.quests that may need some exploration / walking around --------------------------- */ // ferry: usually visible from looking at the boat, but not always... From 1ab17024a93a8f8797c0b0fc28790f265e29f851 Mon Sep 17 00:00:00 2001 From: Naria Date: Sun, 21 Sep 2025 17:01:48 +0200 Subject: [PATCH 33/69] fixed unexepected refactoring side effect --- .../streetcomplete/quests/oneway/AddOneway.kt | 14 +++++++------- .../quests/oneway/AddOnewayForm.kt | 6 +++--- ...othwayAnswerItem.kt => OnewayAnswerItem.kt} | 18 +++++++++--------- 3 files changed, 19 insertions(+), 19 deletions(-) rename app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/{bothwayAnswerItem.kt => OnewayAnswerItem.kt} (51%) diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt index c0d7302c103..f68e2079460 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt @@ -12,11 +12,11 @@ import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement. import de.westnordost.streetcomplete.osm.ALL_ROADS import de.westnordost.streetcomplete.osm.Tags import de.westnordost.streetcomplete.osm.estimateUsableRoadwayWidth -import de.westnordost.streetcomplete.quests.oneway.BothwayAnswer.BACKWARD -import de.westnordost.streetcomplete.quests.oneway.BothwayAnswer.FORWARD -import de.westnordost.streetcomplete.quests.oneway.BothwayAnswer.NO_ONEWAY +import de.westnordost.streetcomplete.quests.oneway.OnewayAnswer.BACKWARD +import de.westnordost.streetcomplete.quests.oneway.OnewayAnswer.FORWARD +import de.westnordost.streetcomplete.quests.oneway.OnewayAnswer.NO_ONEWAY -class AddOneway : OsmElementQuestType, AndroidQuest { +class AddOneway : OsmElementQuestType, AndroidQuest { /** find all roads */ private val allRoadsFilter by lazy { """ @@ -64,7 +64,7 @@ class AddOneway : OsmElementQuestType, AndroidQuest { */ // check if the way has connections to other roads at both ends (connectionCountByNodeIds[it.nodeIds.first()] ?: 0) > 1 && - (connectionCountByNodeIds[it.nodeIds.last()] ?: 0) > 1 + (connectionCountByNodeIds[it.nodeIds.last()] ?: 0) > 1 } } @@ -82,9 +82,9 @@ class AddOneway : OsmElementQuestType, AndroidQuest { return usableWidth <= 4f } - override fun createForm() = AddBothwayForm() + override fun createForm() = AddOnewayForm() - override fun applyAnswerTo(answer: BothwayAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { + override fun applyAnswerTo(answer: OnewayAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { tags["oneway"] = when (answer) { FORWARD -> "yes" BACKWARD -> "-1" diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOnewayForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOnewayForm.kt index 74f9d596b22..47e395bacbc 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOnewayForm.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOnewayForm.kt @@ -6,10 +6,10 @@ import de.westnordost.streetcomplete.data.osm.geometry.ElementPolylinesGeometry import de.westnordost.streetcomplete.quests.AImageListQuestForm import de.westnordost.streetcomplete.util.math.getOrientationAtCenterLineInDegrees -class AddOnewayForm : AImageListQuestForm() { +class AddOnewayForm : AImageListQuestForm() { override val items get() = - BothwayAnswer.entries.map { it.asItem(requireContext(), wayRotation - mapRotation) } + OnewayAnswer.entries.map { it.asItem(requireContext(), wayRotation - mapRotation) } override val itemsPerRow = 3 @@ -27,7 +27,7 @@ class AddOnewayForm : AImageListQuestForm() { imageSelector.items = items } - override fun onClickOk(selectedItems: List) { + override fun onClickOk(selectedItems: List) { applyAnswer(selectedItems.first()) } } diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/bothwayAnswerItem.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/OnewayAnswerItem.kt similarity index 51% rename from app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/bothwayAnswerItem.kt rename to app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/OnewayAnswerItem.kt index b0b7341c314..f6a611be510 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/bothwayAnswerItem.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/OnewayAnswerItem.kt @@ -8,20 +8,20 @@ import de.westnordost.streetcomplete.view.RotatedCircleDrawable import de.westnordost.streetcomplete.view.image_select.DisplayItem import de.westnordost.streetcomplete.view.image_select.Item2 -fun BothwayAnswer.asItem(context: Context, rotation: Float): DisplayItem { +fun OnewayAnswer.asItem(context: Context, rotation: Float): DisplayItem { val drawable = RotatedCircleDrawable(context.getDrawable(iconResId)!!) drawable.rotation = rotation return Item2(this, DrawableImage(drawable), ResText(titleResId)) } -private val BothwayAnswer.titleResId: Int get() = when (this) { - BothwayAnswer.FORWARD -> R.string.quest_oneway2_dir - BothwayAnswer.BACKWARD -> R.string.quest_oneway2_dir - BothwayAnswer.NO_ONEWAY -> R.string.quest_oneway2_no_oneway +private val OnewayAnswer.titleResId: Int get() = when (this) { + OnewayAnswer.FORWARD -> R.string.quest_oneway2_dir + OnewayAnswer.BACKWARD -> R.string.quest_oneway2_dir + OnewayAnswer.NO_ONEWAY -> R.string.quest_oneway2_no_oneway } -private val BothwayAnswer.iconResId: Int get() = when (this) { - BothwayAnswer.FORWARD -> R.drawable.ic_oneway_yes - BothwayAnswer.BACKWARD -> R.drawable.ic_oneway_yes_reverse - BothwayAnswer.NO_ONEWAY -> R.drawable.ic_oneway_no +private val OnewayAnswer.iconResId: Int get() = when (this) { + OnewayAnswer.FORWARD -> R.drawable.ic_oneway_yes + OnewayAnswer.BACKWARD -> R.drawable.ic_oneway_yes_reverse + OnewayAnswer.NO_ONEWAY -> R.drawable.ic_oneway_no } From 755857c3b86f6862b716ff2e4ad65222a833317e Mon Sep 17 00:00:00 2001 From: HugoTHOLLON Date: Sun, 21 Sep 2025 17:12:39 +0200 Subject: [PATCH 34/69] Solved another duplicate quest id problem --- .../kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt index dc75723b8d7..c25245bf8bc 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt @@ -450,7 +450,7 @@ fun questTypeRegistry( 102 to AddFerryAccessMotorVehicle(), //aerial way: usually visible from looking at the aerial way, but not always... - 183 to AddAerialwayBicycleAccess(), + 184 to AddAerialwayBicycleAccess(), 103 to AddProhibitedForPedestrians(), // need to understand the pedestrian situation From ecaa5be213ffce86a3916e3d023132358c10800a Mon Sep 17 00:00:00 2001 From: Raphael Lamothe Date: Sun, 21 Sep 2025 17:39:47 +0200 Subject: [PATCH 35/69] changing writing on answers picture --- app/src/androidMain/res/values/strings.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/androidMain/res/values/strings.xml b/app/src/androidMain/res/values/strings.xml index d161c7bbfbc..9a9d2964c1a 100644 --- a/app/src/androidMain/res/values/strings.xml +++ b/app/src/androidMain/res/values/strings.xml @@ -724,9 +724,9 @@ Before uploading your changes, the app checks with a <a href="https://www.wes Tap street on map to select it Does this aerialway transport bicycles? - Bicycles are always allowed - Bicycles are allowed only during summer - Bicycles are not allowed + Yes + During summer + No Is this place air-conditioned? From 4df1b04aa9c080d597a268a09ed29609ec56f1ba Mon Sep 17 00:00:00 2001 From: Naria Date: Sun, 21 Sep 2025 17:41:01 +0200 Subject: [PATCH 36/69] Renamed bothway for more intuitivity --- .../streetcomplete/quests/QuestsModule.kt | 4 ++-- .../{AddBothway.kt => AddAerialBothWay.kt} | 12 ++++++------ ...dBothwayForm.kt => AddAerialBothWayForm.kt} | 6 +++--- ...BothwayAnswer.kt => AerialBothWayAnswer.kt} | 2 +- ...nswerItem.kt => AerialBothWayAnswerItem.kt} | 18 +++++++++--------- 5 files changed, 21 insertions(+), 21 deletions(-) rename app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/{AddBothway.kt => AddAerialBothWay.kt} (76%) rename app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/{AddBothwayForm.kt => AddAerialBothWayForm.kt} (78%) rename app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/{BothwayAnswer.kt => AerialBothWayAnswer.kt} (74%) rename app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/{BothwayAnswerItem.kt => AerialBothWayAnswerItem.kt} (50%) diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt index dc75723b8d7..611e1739bca 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt @@ -45,7 +45,7 @@ import de.westnordost.streetcomplete.quests.board_name.AddBoardName import de.westnordost.streetcomplete.quests.board_type.AddBoardType import de.westnordost.streetcomplete.quests.boat_rental.AddBoatRental import de.westnordost.streetcomplete.quests.bollard_type.AddBollardType -import de.westnordost.streetcomplete.quests.bothway.AddBothway +import de.westnordost.streetcomplete.quests.bothway.AddAerialBothWay import de.westnordost.streetcomplete.quests.bridge_structure.AddBridgeStructure import de.westnordost.streetcomplete.quests.building_entrance.AddEntrance import de.westnordost.streetcomplete.quests.building_entrance_reference.AddEntranceReference @@ -442,7 +442,7 @@ fun questTypeRegistry( 166 to AddMopedAccess(), - 182 to AddBothway(), + 182 to AddAerialBothWay(), /* ↓ 3.quests that may need some exploration / walking around --------------------------- */ // ferry: usually visible from looking at the boat, but not always... diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothway.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWay.kt similarity index 76% rename from app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothway.kt rename to app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWay.kt index 33f823ce358..3e80b41fd8a 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothway.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWay.kt @@ -9,12 +9,12 @@ import de.westnordost.streetcomplete.data.osm.osmquests.OsmElementQuestType import de.westnordost.streetcomplete.data.quest.AndroidQuest import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.CAR import de.westnordost.streetcomplete.osm.Tags -import de.westnordost.streetcomplete.quests.bothway.BothwayAnswer.BOTHWAY -import de.westnordost.streetcomplete.quests.bothway.BothwayAnswer.UPWARD -import de.westnordost.streetcomplete.quests.bothway.BothwayAnswer.DOWNWARD +import de.westnordost.streetcomplete.quests.bothway.AerialBothWayAnswer.BOTHWAY +import de.westnordost.streetcomplete.quests.bothway.AerialBothWayAnswer.UPWARD +import de.westnordost.streetcomplete.quests.bothway.AerialBothWayAnswer.DOWNWARD -class AddBothway : OsmElementQuestType, AndroidQuest { +class AddAerialBothWay : OsmElementQuestType, AndroidQuest { private val elementFilter by lazy { """ ways with aerialway and aerialway !~ cable_car|zipline and !oneway @@ -38,9 +38,9 @@ class AddBothway : OsmElementQuestType, AndroidQuest { return elementFilter.matches(element) } - override fun createForm() = AddBothwayForm() + override fun createForm() = AddAerialBothWayForm() - override fun applyAnswerTo(answer: BothwayAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { + override fun applyAnswerTo(answer: AerialBothWayAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { tags["oneway"] = when (answer) { UPWARD -> "yes" DOWNWARD -> "-1" diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothwayForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWayForm.kt similarity index 78% rename from app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothwayForm.kt rename to app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWayForm.kt index 040a94ce03f..d14d037d1a3 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddBothwayForm.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWayForm.kt @@ -6,10 +6,10 @@ import de.westnordost.streetcomplete.data.osm.geometry.ElementPolylinesGeometry import de.westnordost.streetcomplete.quests.AImageListQuestForm import de.westnordost.streetcomplete.util.math.getOrientationAtCenterLineInDegrees -class AddBothwayForm : AImageListQuestForm() { +class AddAerialBothWayForm : AImageListQuestForm() { override val items get() = - BothwayAnswer.entries.map { it.asItem(requireContext(), wayRotation - mapRotation) } + AerialBothWayAnswer.entries.map { it.asItem(requireContext(), wayRotation - mapRotation) } override val itemsPerRow = 3 @@ -27,7 +27,7 @@ class AddBothwayForm : AImageListQuestForm() { imageSelector.items = items } - override fun onClickOk(selectedItems: List) { + override fun onClickOk(selectedItems: List) { applyAnswer(selectedItems.first()) } } diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswer.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswer.kt similarity index 74% rename from app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswer.kt rename to app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswer.kt index ec7f332c8ae..247416a415c 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswer.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswer.kt @@ -1,6 +1,6 @@ package de.westnordost.streetcomplete.quests.bothway -enum class BothwayAnswer { +enum class AerialBothWayAnswer { UPWARD, DOWNWARD, BOTHWAY diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswerItem.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswerItem.kt similarity index 50% rename from app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswerItem.kt rename to app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswerItem.kt index f140491080b..08abf8474dd 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/BothwayAnswerItem.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswerItem.kt @@ -8,21 +8,21 @@ import de.westnordost.streetcomplete.view.RotatedCircleDrawable import de.westnordost.streetcomplete.view.image_select.DisplayItem import de.westnordost.streetcomplete.view.image_select.Item2 -fun BothwayAnswer.asItem(context: Context, rotation: Float): DisplayItem { +fun AerialBothWayAnswer.asItem(context: Context, rotation: Float): DisplayItem { val drawable = RotatedCircleDrawable(context.getDrawable(iconResId)!!) drawable.rotation = rotation return Item2(this, DrawableImage(drawable), ResText(titleResId)) } -private val BothwayAnswer.titleResId: Int get() = when (this) { - BothwayAnswer.UPWARD -> R.string.quest_bothway_answer_upwards - BothwayAnswer.DOWNWARD -> R.string.quest_bothway_answer_downwards - BothwayAnswer.BOTHWAY -> R.string.quest_bothway_answer_bothway +private val AerialBothWayAnswer.titleResId: Int get() = when (this) { + AerialBothWayAnswer.UPWARD -> R.string.quest_bothway_answer_upwards + AerialBothWayAnswer.DOWNWARD -> R.string.quest_bothway_answer_downwards + AerialBothWayAnswer.BOTHWAY -> R.string.quest_bothway_answer_bothway } //kept oneway icons, feel free to update it -private val BothwayAnswer.iconResId: Int get() = when (this) { - BothwayAnswer.UPWARD -> R.drawable.ic_oneway_yes - BothwayAnswer.DOWNWARD -> R.drawable.ic_oneway_yes_reverse - BothwayAnswer.BOTHWAY -> R.drawable.ic_oneway_no +private val AerialBothWayAnswer.iconResId: Int get() = when (this) { + AerialBothWayAnswer.UPWARD -> R.drawable.ic_oneway_yes + AerialBothWayAnswer.DOWNWARD -> R.drawable.ic_oneway_yes_reverse + AerialBothWayAnswer.BOTHWAY -> R.drawable.ic_oneway_no } From bc3cf4418e3ce8f6d9091a14eeb0b90036c265df Mon Sep 17 00:00:00 2001 From: Nicolas Ho <148333730+NicodeH@users.noreply.github.com> Date: Mon, 22 Sep 2025 11:16:45 +0200 Subject: [PATCH 37/69] Update doc_user.adoc --- docs/doc_user.adoc | 67 +++++++++++++++++++++++++++++----------------- 1 file changed, 43 insertions(+), 24 deletions(-) diff --git a/docs/doc_user.adoc b/docs/doc_user.adoc index 5496bfe6519..85a1016dc77 100644 --- a/docs/doc_user.adoc +++ b/docs/doc_user.adoc @@ -10,7 +10,7 @@ toc::[] -Date : 04/09/2025 + +Date : 05/10/2025 + Equipe : 1A-1 + Client : Yahn Formanczak + Projet : Street Complete + @@ -28,41 +28,60 @@ L'Ă©quipe Ă©tait composĂ©e de cinq membres avec les rĂŽles suivants : - *Nicolas* : DĂ©veloppeur === Contexte du projet -A REMPLIR +Street Complete est une application Android ayant pour but d’amĂ©liorer la qualitĂ© des donnĂ©es d’Open Street Map avec des enquĂȘtes sur le terrain. L’application fonctionne avec une partie de gamification et invite aux modifications sous forme de quĂȘtes thĂ©matiques. === Objectifs du projet +Monter en compĂ©tence sur : +- Le modĂšle de donnĂ©es OSM +- Kotlin et Kotlin Multiplatform +- Android Studio et l’environnement mobile -**ProblĂ©matique :** -A REMPLIR +RĂ©aliser des contributions au projet open source StreetComplete : -**Objectif :** +- Ajout ou amĂ©lioration de quĂȘtes simples +- DĂ©but de migration d’élĂ©ments de l’UI vers *Compose Multiplatform* +- Participation non-code : documentation, traduction, collecte de donnĂ©es -Validation technique : -A REMPLIR - -ExpĂ©rience utilisateur : -A REMPLIR - -Affichage et contenu : -A REMPLIR - -FonctionnalitĂ©s clĂ©s : -A REMPLIR +== Fonctionnement du projet -Robustesse et sĂ©curitĂ© : -A REMPLIR +=== Langage et plateforme +- Plateforme principale : Android, iOS (en cours) +- Langage de programmation : Kotlin -Alignement avec les objectifs de la communautĂ© : -A REMPLIR +=== Cartographie +StreetComplete utilise MapLibre, une collection de cartes SDKs open-source pour du dĂ©veloppement web et mobile. -== Fonctionnement du projet -A REMPLIR +=== Communication entre les serveurs OSM (OpenStreetMap) +- TĂ©lĂ©chargement des donnĂ©es OSM via API officielle OpenStreetMap +- Upload des requĂȘtes utilisateurs (ajout, modification et suppression des donnĂ©es OSM Ă  l'aide de tags) dans la base OSM == FonctionnalitĂ©s + +=== QuĂȘtes (« quests ») +- Les quĂȘtes sont des questions ciblĂ©es sur des objets OSM manquants ou incomplets dans votre zone (route, bĂątiment, Ă©quipement). +- Exemples de questions types : « Le trottoir existe-t-il ? », « Quel type de surface a cette route ? », « Ce parking Ă  vĂ©los est-il couvert ? », « Heures d’ouverture ? », etc. + +=== Overlays (couches d’affichage interactives) +Les overlays permettent de visualiser/Ă©diter directement certains tags OSM : +- Éclairage des rues +- Trottoirs +- Parking Ă  vĂ©los, voies cyclables +- Stationnement rue +- Adresses +- Points d’intĂ©rĂȘt / commerces, bĂątiments +- Mobilier urbain +- Type de bĂątiment + +=== Suivi des contributions & gamification +- Lorsqu’une quĂȘte est terminĂ©e, l’utilisateur gagne des points, suivi de son positionnement national et global sur un leaderboard +- Statistiques personnelles et comparatives motivent le contributeur nĂ©ophyte Ă  progresser + +== Interface de l'application A REMPLIR == Support et Contact -A REMPLIR +Pour toute question ou assistance, veuillez contacter notre Product Owner Ă  l'adresse suivante : naria.savary@etu.univ-tlse2.fr == Conclusion -A REMPLIR +Nous espĂ©rons que cette documentation vous guidera dans votre utilisation de l'appli CompleteStreetMap. + From ba7164e7378c1191145812f6d7558d8905f1bb82 Mon Sep 17 00:00:00 2001 From: Nicolas Ho <148333730+NicodeH@users.noreply.github.com> Date: Mon, 22 Sep 2025 11:20:44 +0200 Subject: [PATCH 38/69] Update doc_user.adoc --- docs/doc_user.adoc | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/doc_user.adoc b/docs/doc_user.adoc index 85a1016dc77..25ba33319db 100644 --- a/docs/doc_user.adoc +++ b/docs/doc_user.adoc @@ -58,11 +58,18 @@ StreetComplete utilise MapLibre, une collection de cartes SDKs open-source pour == FonctionnalitĂ©s === QuĂȘtes (« quests ») -- Les quĂȘtes sont des questions ciblĂ©es sur des objets OSM manquants ou incomplets dans votre zone (route, bĂątiment, Ă©quipement). -- Exemples de questions types : « Le trottoir existe-t-il ? », « Quel type de surface a cette route ? », « Ce parking Ă  vĂ©los est-il couvert ? », « Heures d’ouverture ? », etc. +Les quĂȘtes sont des questions ciblĂ©es sur des objets OSM manquants ou incomplets dans votre zone (route, bĂątiment, Ă©quipement). +Exemples de questions types : + +- Le trottoir existe-t-il ? +- Quel type de surface a cette route ? +- Ce parking Ă  vĂ©los est-il couvert ? +- Heures d’ouverture ? +- etc. === Overlays (couches d’affichage interactives) Les overlays permettent de visualiser/Ă©diter directement certains tags OSM : + - Éclairage des rues - Trottoirs - Parking Ă  vĂ©los, voies cyclables @@ -85,3 +92,4 @@ Pour toute question ou assistance, veuillez contacter notre Product Owner Ă  l'a == Conclusion Nous espĂ©rons que cette documentation vous guidera dans votre utilisation de l'appli CompleteStreetMap. + From 34e91d76a3fd394c340511ba0e311287eefdb337 Mon Sep 17 00:00:00 2001 From: NariaReynhard <84771519+NariaReynhard@users.noreply.github.com> Date: Tue, 23 Sep 2025 14:10:09 +0200 Subject: [PATCH 39/69] Initialisation du document install --- docs/doc_install.md | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 docs/doc_install.md diff --git a/docs/doc_install.md b/docs/doc_install.md new file mode 100644 index 00000000000..b04e8f6d2b0 --- /dev/null +++ b/docs/doc_install.md @@ -0,0 +1,7 @@ +# Installer la release # + +## RĂ©cuperer l'apk ## + +## TĂ©lĂ©charger l'apk ## + +## Installer l'apk ## From e0a2912ab93658789888ad2921543310ef4fa73d Mon Sep 17 00:00:00 2001 From: NariaReynhard <84771519+NariaReynhard@users.noreply.github.com> Date: Tue, 23 Sep 2025 14:31:50 +0200 Subject: [PATCH 40/69] Update doc_install.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit nĂ©cessitera des mises Ă  jour Ă  chaque release pour rajouter les liens --- docs/doc_install.md | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/docs/doc_install.md b/docs/doc_install.md index b04e8f6d2b0..3905893f568 100644 --- a/docs/doc_install.md +++ b/docs/doc_install.md @@ -1,7 +1,46 @@ # Installer la release # -## RĂ©cuperer l'apk ## +## Android ## -## TĂ©lĂ©charger l'apk ## +### RĂ©cuperer l'apk ### -## Installer l'apk ## +L'apk se situe sur ce git. Dans la catĂ©gorie Release chaque sprint dispose de son APK correspondant. +Vous pouvez utilisez les liens si dessous pour accĂ©der aux APK de chaque sprint. Si les liens ne fonctionnent pas pour quelque raison que ce soit, n'hĂ©sitez pas Ă  aller chercher les APK aux endroits indiquĂ©s. + +### TĂ©lĂ©charger l'apk ### + +[APK Sprint 1](https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/releases/download/Sprint1/NonOfficial-StreetComplete.apk) + +### Installer l'apk ### + +- Une fois l'apk tĂ©lĂ©chargĂ©e, il faut soit la transferer sur son tĂ©lĂ©phone si il n'a pas directement Ă©tĂ© tĂ©lĂ©charger dessus, pensez Ă  choisir un dossier adaptĂ© pour le retrouver facilement lors de l'Ă©tape suivante. +- Ensuite il faut trouver l'apk dans ses fichiers puis tapper dessus, comme pour l'ouvrir. +- Valider ensuite la fĂȘnetre pop-up qui demande confirmation (sauf si vous pensez qu'on a de mauvaises intentions envers votre tĂ©lĂ©phone) +- Vous avez dĂ©sormais l'application installĂ©e, il faut dĂ©sormais lancer directement cette application de la mĂȘme maniĂšre que n'importe quelle autre application de votre tĂ©lĂ©phone. + +## Autre appareil mobile ## + +Malheureusement StreetComplete n'est pas encore compatible avec d'autres appareils. Si vous ne pouvez pas vous procurez un appareil android voici la marche Ă  suivre pour tester la release sur votre ordinateur. + +- Cloner ce repo github et se placer sur la branche correspondante Ă  la release. Voir Ă  la fin de ce document si besoin d'aide pour cette Ă©tape. +- Ouvrir le projet dans android studio et s'assurer dans l'icĂŽne de branche github en haut Ă  gauche que vous ĂȘtes sur la branche de la release souhaitĂ©e. +- Executer l'application et explorer la release dans l'Ă©mulateur. + +### Cloner le repo ### + +Si vous avez besoin de consulter la release vous savez probablement cloner un repo, mais pour fournir le lien et juste au cas oĂč, voici un petit rappel. + +- Copier [ce lien](https://github.com/HugoTHOLLON/StreetCompleteSAE_S5) +- Ouvrir un terminal git (comme Git Bash par exemple) +- Vous placer dans un dossier appropriĂ© Ă  l'aide de la commande + ```bash + cd [chemin vers le dossier] + ``` +- Cloner le dĂ©pot Ă  l'aide de la commande + ```bash + git clone [le lien du repo] + ``` +- Puis dĂ©placez vous sur la bonne branche (probablement quelque chose comme "Release0") + ```bash + git checkout [branche] + ``` From 722595869384a26c0c62d6cc9c4f8ffc649a45b2 Mon Sep 17 00:00:00 2001 From: NariaReynhard <84771519+NariaReynhard@users.noreply.github.com> Date: Tue, 23 Sep 2025 15:02:58 +0200 Subject: [PATCH 41/69] MAJ doc_install.md sur la partie install sur PC --- docs/doc_install.md | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/docs/doc_install.md b/docs/doc_install.md index 3905893f568..1d05c55634e 100644 --- a/docs/doc_install.md +++ b/docs/doc_install.md @@ -22,10 +22,6 @@ Vous pouvez utilisez les liens si dessous pour accĂ©der aux APK de chaque sprint Malheureusement StreetComplete n'est pas encore compatible avec d'autres appareils. Si vous ne pouvez pas vous procurez un appareil android voici la marche Ă  suivre pour tester la release sur votre ordinateur. -- Cloner ce repo github et se placer sur la branche correspondante Ă  la release. Voir Ă  la fin de ce document si besoin d'aide pour cette Ă©tape. -- Ouvrir le projet dans android studio et s'assurer dans l'icĂŽne de branche github en haut Ă  gauche que vous ĂȘtes sur la branche de la release souhaitĂ©e. -- Executer l'application et explorer la release dans l'Ă©mulateur. - ### Cloner le repo ### Si vous avez besoin de consulter la release vous savez probablement cloner un repo, mais pour fournir le lien et juste au cas oĂč, voici un petit rappel. @@ -40,7 +36,16 @@ Si vous avez besoin de consulter la release vous savez probablement cloner un re ```bash git clone [le lien du repo] ``` -- Puis dĂ©placez vous sur la bonne branche (probablement quelque chose comme "Release0") +- Puis dĂ©placez vous sur la bonne branche (probablement quelque chose comme "Sprint1") ```bash git checkout [branche] ``` + +### Lancez l'Ă©mulateur ### + +- Installer Android Studio (de prĂ©fĂ©rence Narval 3, Ă©tant notre environnement de dev nous pouvons garantir qu'il fonctionne) +- Lancer le projet sous Android Studio. +- Si vous avez placer votre repo local sous la bonne branche, Android Studio doit-y ĂȘtre aussi. Vous pouvez vĂ©rifier en haut Ă  gauche que le bouton Ă  droite inscrive bien le bon Sprint. Si il affiche "master", cliquez dessus pour changer la branche. +- Lancez l'application avec la flĂšche verte en haut Ă  droite ou en appuyant sur Maj + F10. +(Si la flĂšche est grisĂ©e, une banniĂšre bleue doit ĂȘtre visible en haut de l'interface de dev. Cliquez sur synchroniser. AprĂšs quelques minutes la flĂšche devrait devenir verte et permettre de lancer l'application.) +- Le premier dĂ©marrage peut prendre quelques minutes le temps du build. Prenez un cafĂ© en attendant que l'Ă©mulateur lance l'application. From addd052d516ef1c1fdc6eb343c2fce2236742cb1 Mon Sep 17 00:00:00 2001 From: ElPoraz <150593346+ElPoraz@users.noreply.github.com> Date: Wed, 24 Sep 2025 11:18:31 +0200 Subject: [PATCH 42/69] Modify README with installation and links Updated installation guide link and added new meeting links. --- README.adoc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index dc99f8e99ae..fb64a608a5a 100644 --- a/README.adoc +++ b/README.adoc @@ -80,6 +80,7 @@ Cette section regroupe tous les documents liĂ©s au projet : - link:docs/doc_tech.adoc[Documentation technique] - link:docs/doc_user.adoc[Guide utilisateur] +- link:docs/doc_install.md[Guide d'installation] - link:docs/Devis.pdf[Chiffrage du projet] - link:https://github.com/users/HugoTHOLLON/projects/4/views/1[Backlog produit et board GitHub] @@ -97,7 +98,9 @@ Cette section regroupe tous les documents liĂ©s au projet : https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/ODJ-Sprint-1-15-09-25.pdf[Lien vers l'ODJ 2] https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-Sprint-1-15-09-25.pdf[Lien vers le CR 2] | [A remplir] | [A remplir] -| N°2 - Semaine 39 Ă  40 | [A remplir] | [A remplir] | [A remplir] +| N°2 - Semaine 39 Ă  40 | https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/ODJ-Sprint-1-22-09-25.pdf[Lien vers l'ODJ] + + https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-Sprint-1-22-09-25.pdf[Lien vers le CR] | [A remplir] | [A remplir] | N°3 - Semaine 41 Ă  43 | [A remplir] | [A remplir] | [A remplir] | N°4 - Semaine 44 Ă  48 | [A remplir] | [A remplir] | [A remplir] | N°5 - Semaine 2 Ă  4 | [A remplir] | [A remplir] | [A remplir] @@ -108,3 +111,6 @@ Cette section regroupe tous les documents liĂ©s au projet : - **04/09/2024** : de 9h30 Ă  12h30 → https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-TT-04-09-25.pdf[Lien vers le CR] - **10/09/2024** : de 9h30 Ă  17h15 → Pas de rĂ©union, avancement de chacun de son cĂŽtĂ© - **18/09/2024** : de 9h30 Ă  12h30 → Pas de rĂ©union car rĂ©union de sprint Ă  venir trĂšs bientĂŽt +- **23/09/2024** : de 14h15 Ă  17h15 ↮ +- **24/09/2024** : de 9h30 Ă  17h15 ↮ +- **25/09/2024** : de 9h30 Ă  12h30 → https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-TT-25-09-25.pdf[Lien vers le CR - A VENIR] From 13e9cc9426c821c822beb6f33b344e124377f8df Mon Sep 17 00:00:00 2001 From: ElPoraz <150593346+ElPoraz@users.noreply.github.com> Date: Wed, 24 Sep 2025 11:18:50 +0200 Subject: [PATCH 43/69] Update last update date in README --- README.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.adoc b/README.adoc index fb64a608a5a..5a89e91df60 100644 --- a/README.adoc +++ b/README.adoc @@ -31,7 +31,7 @@ endif::[] // /!\ A MODIFIER !!! :baseURL: github.com/HugoTHOLLON/StreetCompleteSAE_S5 -_Last Update: 19/09/2025_ +_Last Update: 24/09/2025_ // Tags image:https://img.shields.io/badge/License-GPLv3-blue.svg[License: GPL-3.0, link="https://www.gnu.org/licenses/gpl-3.0"] From f88a416f71e3daba848c47dd5ab70b487182b83c Mon Sep 17 00:00:00 2001 From: ElPoraz <150593346+ElPoraz@users.noreply.github.com> Date: Wed, 24 Sep 2025 11:20:48 +0200 Subject: [PATCH 44/69] Update links for ODJ and CR in README --- README.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.adoc b/README.adoc index 5a89e91df60..63956b03337 100644 --- a/README.adoc +++ b/README.adoc @@ -98,9 +98,9 @@ Cette section regroupe tous les documents liĂ©s au projet : https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/ODJ-Sprint-1-15-09-25.pdf[Lien vers l'ODJ 2] https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-Sprint-1-15-09-25.pdf[Lien vers le CR 2] | [A remplir] | [A remplir] -| N°2 - Semaine 39 Ă  40 | https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/ODJ-Sprint-1-22-09-25.pdf[Lien vers l'ODJ] +| N°2 - Semaine 39 Ă  40 | https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/ODJ-Sprint-2-22-09-25.pdf[Lien vers l'ODJ] - https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-Sprint-1-22-09-25.pdf[Lien vers le CR] | [A remplir] | [A remplir] + https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-Sprint-2-22-09-25.pdf[Lien vers le CR] | [A remplir] | [A remplir] | N°3 - Semaine 41 Ă  43 | [A remplir] | [A remplir] | [A remplir] | N°4 - Semaine 44 Ă  48 | [A remplir] | [A remplir] | [A remplir] | N°5 - Semaine 2 Ă  4 | [A remplir] | [A remplir] | [A remplir] From c2e78ca83d3a8f754fb0d6ba69ed707119ffc4f5 Mon Sep 17 00:00:00 2001 From: ElPoraz <150593346+ElPoraz@users.noreply.github.com> Date: Wed, 24 Sep 2025 11:21:18 +0200 Subject: [PATCH 45/69] Adding ODJ 22 september --- docs/ODJ-CR/ODJ-Sprint-2-22-09-25.pdf | Bin 0 -> 51669 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/ODJ-CR/ODJ-Sprint-2-22-09-25.pdf diff --git a/docs/ODJ-CR/ODJ-Sprint-2-22-09-25.pdf b/docs/ODJ-CR/ODJ-Sprint-2-22-09-25.pdf new file mode 100644 index 0000000000000000000000000000000000000000..c0644361d228649a7c38adc96bf168496195c9e5 GIT binary patch literal 51669 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𝔥hOm-|uSTR0p|(_!SH6N4T2j%U(V$z5gL|O=eUklhVIY@9Xf|g&(Au(Z0Kf z11}eR6GP3?X>Gu=t;cYie&SHt zi&h^PIeYT=e0AG5@m12>7}U&8%Dr_VaV1G9nt9(dLhn(M8Vr6o_z8fM7GTohI8TdX4ma%-NY2BO>I3&p-l-J>4xA8 zx{(fr{GD&d;BHCi7X*7{el7mgcrND?6_4JV8tKAEmmkD!R81aOPI`m4{e<5OeG@7_ znU3oJ;KxbV@lk_Sq{RGaaz8C-Lb#{Dh{pVb_P6n@SKqJ5Daa~t^agi4xcZuiUPi)3 zg0;G&E`arNn^yMp2|nYI{V=7gqNKqMUFP`e_efQTJNJ*9NDIyfJTK-78ozxCj9po(_#`d(nK9*9_StjE4=jIKk<kRF0?f;dzr()d+O$oqpi)Hokr?Ik_J4eYM*QJB~oDAUnbA2~`f9k>x#S=+Vu? zW58$jb*z%E>a9Qj?2gof1kzw~7)B$F+<4|Ej`KvTI;G6mrCnwjUZqOwjv9>yYeoa% z30-bFv5wsdGyTLZoKImnnh=;%Me>Q=U`yVksTVWvf-~&Zwe(e^><`3sMN%fi zIUadRnlkbmtf^X^&wt#>6_WA7re;dx$AwDjphr8J^$&zoT zgP-8^oF7gp!pr$U^wl%e;qLr4pUu#rpy}W^LU3IlqwIYIx8##1|B7ItXoe3e5qvx} zC$t~Z7sbn}(}KOrX1459LZ)Xbc15)-7(3;XN1B%4R;Np z+Je^s>@EPio^@_uFJ^4krFm9Quz9p%VOel+7~A}kHbpIQ@VM;3`z_`d@`2EL1MaO7 zjr45%e7wVcAegvLKx#h&9uA$hfa!!LB-u!IKg~#T>#LZ1_1xT$fz3JEJ>;_Px2((A zwW~&L!J_&EijAWsdqA9I&h`3;nJr#_TJ%MHjkFiTdF{Ym#;=&$jAXtzI;puCv7|dFn+HeC=qN@eIYS=d5oBd_VS#Etx+V z@tm3-BZ#V0TFKXi^>a@2T(9FHu%CXNT3xsClkH)zbN$gplOkV|mI)m#t#}o%;IHH{^@=TON)kD> zlsM;Ux~Vlk*w4sCp7dVHZ51yYx}6A57Od8VQ+9k*t@(8BJ)W@~t{Xxy`(Vq*PUQaP zjO~XmC)@PNear^dy9qSDsrR;|$3y&HwR{OFbD9Hf1itFc+u-G`_Pdw6IFU)_Z@t?I zY}1)E#rBky0rqgR|AS$r_My0Tsi=;fN!m1y?m!dulB(>J)cTq{1ucz;1XBDJi$sC3 zyCGW)cNQwF+0E3lSjU>QQqx&iIDjAzFp0P-NQfD*O+I_?N?OhG1Dcr~;-NYmv zCo_yvFJbeYyqNq=k!Sad^6-4k`ML7thv+=q(vH#_VXy4!l(ue*HL5qfY^2kjVr8V* zjyC9%=5Q~GstW>_@oKO_SchS*A+j?%brE#Mf=Vy2w!>7bc)B-Gun3&C31&Pq1= zJG{uxspA(4qKw}J4?Q2Yp4x0bK5j5Ez1%-p#+Arp%vsp1tL#_x_@S{PhwiiSTjyIk zpW5%S<X;=zhO5imZ13ur*x=-_kFgo+$eaf9-vhY`alUC(7qSnzQyGA8Wn>d0fN+ z6GdMarMz@`C%xy?6=PvX4yr1$@Tf9=u7<4m*_&nARVAaFnzRdG=Y)ZBZDqlGK1Nt+qH%M z*@5b|aLltWg+|{;5}J!w7V~(xmnN@2-HGIIh-P<;o~-Y{_pNewZF~Mu&LPO$b&A=T z9ZVT|iM`V8X&D1h1!DZ zlUp;Uyuj}!cg7pO-Zdc{)p|N^{V6kee)#R!LTj8ZZ#DMk{M6Kb%&gRhd5@?h{(T{l@)Ubj^Dysa$Z}4-ne|Z+$?u1offSc z9kanEmZ_$Ddyh8pGFL3clH{Sktbp2vAGQ-eL4$sD+ml{xZ^Q4=pwd#A{q_$NBA@^z zP6xziTl|nHFNwxYVWsuY@=?BooB5C8R#=rRX$|+gnx)_P#(nb-Wmnfv|2+ILYJ@~e zHe!>eDB@PZ)AO7yuV=Dd=(T0Fbyi!RRQTe)m8UG(lRA8S-l#xTi`D4GXK$@{dBI=q zS3M@Tx{yCcG0ZQieCI|-V+QT6I$dL9Q4ysep#gax8$&4@raM)I*q&XrXo6tT;KqdI z=Mwn>qp?O1%%s3LYg0VXqS?9f#j7W@Hj9)wBqzIb)^=gR4M%~&5!>A<>6AXVO}%!G z(w{V5(jhTPxs^3QR5EgRH6oAgBVNq)!$uqODJf06I~$j<*eu&A6eff7YL(ZE$%m7S z@8}UbXHR1kO0h`m;36716z3tM2zk7x|taj;+3JZI#eYTAWr~WEt_+D#k!SkOa%-$+5ep z<-)ouaoP&;wRG4WPe>P>+%u!^XmQBdo4;L;+3D%(e7cjUg~j<&6rRr{6L zLeUd6&EDE%%+L;YhfGVnF_v383-nnX^tr`KyqE5!od(BG^Lbc$NtO($c`q zJu6av9#E5;cS4CnB4;uOWG#Bpz3Vu1G`x*Gk-|M4lT?R`lyXm*RNUgx7?b#fpcOgx z1ryz4nJ^)#RM7-RRkg+(-J8xUa&tUEamtDCS0mUpor&Sk_OIT1qD{kqEvf&i9WLA( z7TdOaTAZrfp}xNyKxwz*snBe&a!L#nO)>_x}OAr z=nhFd;w^J5ZziW^fOfV_3M)wcR!XI8w(fbO9#a152NmnjV>|IW=QGnJ*$0%P2-x{1 zt|lwjcHnUaH-^4pVm4eFkC3~>LAaZ~HqTwkmLqknLB_n-r3R=kt!5$qMb%jBcNm!B z+SPfEA0H3F_MNq_2Z!kP8Yxm14PVGfzaqGnVrBW+DAIt7>ZuT6BaL(Vnyk)`gYOdy ztq+T6j036m4~X}#`m$|=_{krO`U@y-pU;9kuw!PrnXuu8$rzhO!e5=Yos!4t6+Wa< zf%`6+)BNyOqa)fbAI-4ZzV2CC#PVNu&+zaB^pwr5(m(@ z&-&)BW|frG6{4zCx#iv;>N9>%B@zYiC-vT9=aA*d;uPQ{y-Z1ttEf$x>OH0L#C);yy6%V2gf9+$^GB@vU%v!i_=stpRWG_^ zQ22GcxYN(>Q)cop)9Qf5o7F1Yx0AKbma}}2vcQqb>l+gU?xi@>WB1CDCU55`-wRQR zD+Q~@O%*DCxL{#2>7Q4mE~|DkMCzu(a{sJt?9m0%)rY$3-fJbJGyVyQPITmkn%(5u zl;rzPQTPt(JXq4UkzR&@{(QWPj~xW92H2AxCiity_I8)Ayfx)5@$8@Hh--CXY;|F5 zabs)-zJL!-jINfuFTvhZU&Yra#V?jER|Vy$-Chcg-5pSq`Mn88Jd)4j38uc$f z!c-jZ>^!+do$o?}&zbXbG2F!*i&Na_l88EnM9N@3u|-DGt|)G0nWLK5?fm+?DY?e0 zHZfD+lv0&^-xZdlE`yJ~n0PJBn;Iph)`sp7neu)$Os=(a20d@SY^>iLC!1wRuhmk1 zxh3+%z>b5uCh_57Cw<~Fv1{z4CZ9b!5!Iel@N=vE7?yvzlS*Q^b118JGM+T4f8@+-b@S2*35BB39=ozw85;?k`C zJl{@nhG9{PaY>4CS-ijnycIT&dEN{|Cy8r5pGMLra#giuld9IG65TFtfh2?@$o-=) zf20cW>H0XL_FU4OyHz#sYI@?uvaZ2Tbl}-s`S@Nhhc>R4! znjckXcx7^{$hxW06cHUWt-93PaR`@xL5)xg-S5f;_F z?>Uk;qbbI=#)l0aeHRzh3GVZ)PS{V)h8=V#;RnT?cLKD~zA>v>4CA?Iu=qM!&8-Am?{)Y3hX z%h=m*>4%3ml50Fi?q}j@PA65&;%Yyp@>+T&{;eqA4NJ2pG#^lp#N-GDr{uu+b49ca zOrk6ySyFyJc?4(Zry}ne#C_}p zY3GOvf)8dqzKr!8GTt#92`iW1c9PHs6%o;~5>esGOPI+|9Z#1Dk9cH7=Y)Kt7K`1M z$RaBB-XiU}axUlw@j=Jf;#$~s9&&jROdUlL@qpMwOQPJHBA8b%8ztZ9`S|3b2(@wO zixLYvMjcBQ5^6ja@?nU-lp zNs)%}TQ6$08Qgg)F&_vDUwtx1^M(G>kwVyTHuzb9_$+(vOTw!hg%bF$ZM3)I-b_iX zipL7mXlLNkj;s)DxL~`x$-D6r#}~mK^ohP;q;=W+kgEKy-)D;9k*w}p7vRf6gg_25yD@|y2ZD}+@yy}-}J-0SWY}Y7TS>gx^+tYTwY0MwFy#~ zs zp0{p;0nIx3UbS7oG`OUAV|+D|^TE@7ScjCOnFs`nLMoC1;eUk%PI8@Z;ZiXH_k%I} z`AS&&CEe@8W%^77ki#giz{c70{>(UZ81aX&m`4J+D(UBwc;8$g&T3P))>W>J48L5G z7FygS_0uGsTd;)Eju@VSe)ep^&bm$sOMsL~o37T=u zgL8!yE@>;}k`{~KyOSw^|1!YmTu!91q+E)$@`Lr^2Z}Pt9RD4gTw{AxqpWX7c|}`} z_#y%$7S-a`c~3M09@9R5H10?%B0Z}iN|Y-m0m+S*mchw9*vKiFCn_7Kxj68}MmviB zEenQ2fvS`&Zu}!rNeUy`_(ZyQSogYhr3wuQ@24u8s?2rV-GSz|r+-Dds`I*kd3}9Q z?NcPR5%0_AA_yiQ{+m;E>K%0P!D@FUq%dXasftFfe@RWs(Syl$#odKc`4bvuN%-8w zy%-cEDIr<-;9bXNzwOp}O)|0sXe^IwlisdvFlM`WtCG;Y?-K1p&nTW6R_-3oA)KhV zuj!4h#Mk1dUDO%L9^UGCM_~kOoRi-QXd?^MYW8H0t(2o2vXpomC;t}nx(r>8#&Qq6 zkIYVPOwQ2DzAgRvfd?xJ-7S4L-sze32p#3_cByw>y_fN-L72$+ono`}kg14t4U>cm z)ZfxAtG6<}lw3VFACBgsOo>l@=UnzH8|ZQz{u< z32y!&>^n8-F@>42iKib*7DiX2qLV!f1Tb1(A88)K63x7GwCh>NVWkX%=`Q=i3#JiP zT7p6@Nu`P_gPjjZwTXk6?~^3ukbN=2Dthp+=PT>B2{rbDa6t~u;!cU?m4}plWyQ_< zcH6F06*kD=R*X*RC}ORCbK5(;qu$Sx%OvSNn$|SDYFIQ?-+U!HCV7^xy!ipl5=6;w zJI5%BB{ugV`N+b{`YJrk%oFKRu;PnOHCkHcmwVq! zBKM`PmLB11!{~a_9i{M8l+D8YC3dq@1D+((t#n{rDASpCFI2-QFFgE~C2QExQ*je= z+bXld&9Rwve7{lT8L0GL#(XgIaH*B7PY6%a%LHPmjb*aW6>)jV&>R+8)$}({XS$Y4 z8%$1^$|&(E&AK!{9d!q7A$GM6%U_73O)3Wos8;ITd#=9gf&AjCa{_#cJm;r;o%1-O z_<>`uHiVH%AXAoBN)^y$a`z_0JDsQD!WGm$H0?VmL{dtDDOkQYZR?bSNR?Sv=ESMF);{J_W>3KW>yPy8@;eMfB-mtf+tUq#z1#>)a~`S6krrPQv1r57{l zt_)Z<%rCVs1*m1GlW{Oy&F@fNZ+_U5#{Qy^>Py;JaDwd$o@o>azlve^8|G~4%ute!gIV3|ERjqNXQmBW8Rg$c#JxYbFz_^Ob#eV+ zwjb=V&gU13wS%i|4{(A4OP}R-u%`(RpYXz@kAxIzqSi5j-bTo!YseWPr5LXg6Onl1 zsWnc3zwwWIKMnRMOu_N6R9+%ml@}R!An*iQI+zB{JFI=I16>intSc$_DY4`IvgP{y zZx#v%lW|FAVFNgzM~pG?+x5|Y!=Sq&7rvJjbH&cN!djX(11Oq?G~ZXk7jC`X*xF8U z>BQFmYThAiH*K+>FLJ-s;*m{=O+8(@)GjS?09`HAx#`|#4}PUqg<;?LDp4il`ENKm zYHLpS39r{=P%7=@xqj}9tH5iBFp{dLK&}tq8eXutgGC#wToA_~p~a-;G1L8Hn%gP& zImbon0W&H!fq<=jk7FvWB^;qlj@YBknyV>Ka~4uxB~mDt$GzHW1hFubjV(JhTk`O`_CND$HE)KCJ2h|H1EejSv3u`QqL(+TCRU78q*m~Rp&j)B`xA^7h8HjfBv(q#=$g` zqiY`T?I06)xG)={yR&nSWt;s&veG(%+b{eb@iBq7ao_~>78P~y!)TERALsW9Axy%TIzCmT);OFvyGdZldAw1m$j{% zjk`Ig1=4}b6SCi!~kJ8e8LpQJDOEj{nxih3J#Ig?*vP+*bH_%dTqx$louxgBL=N41 z_d9bJ%z1pte;lz^51vbMkd&8wrRjSvXh5O)zgR3fE%m1i|6)2A3`NyGqp#Td&r7%d zI2V>n5^=}Y0wLpK259F0QQB*BsuGe~>PmNJ`kZgT^m+nDA>3JQ1UsHGEPU`B?({Wk zzNh4Neb1i7b==vBlEfof!cWG`cIIS|-9Aq*cGuas;ii(*W=i^T?$q4mr|%UWR%=93 zazd>~nJH80YhEXk64*6kI&0}FnH34fTba;2`^TfK`E~hR^RA;vd$@ftZTs%|2^ys4 z;1FzMEQ)D@BdAK6=_`pIH!;;M1xrAp}=2z%@XSqsK9;nu|-?sgj zB`aRE^OVLau=SxJyEL@njv=y1~GnVdmCXR zx8#{ljq7Z4LUyfL#gGB7%~?S3-13kE0XQeLfGnVEtA!|Jm48+emu5LnqKk6u zci1oH8e*zbiiVymP|5hmbkddiN1xM4l+uOSQ4*g@4c}RN%qp_x}|}4 zgqj*Mk4U<7(vVnMqlIta5^U)m|AS%tV+aQA2im}4DD-*@K`72F9tgfNM&5xXVLG*- zPl0$iO3ceG6xJR&tq;G&O;1m>3*w_kG%(`YHJq4PLks;DG6-Rx%H+Y?Z3Ezj){Sva zLkZkA*Q#6+uo1E#;}YS~)nNCLV?4(y?Qq=J z6~2y|!CdcZZn`V+_AGifTHWax%c(pz|AQ?^ZJ|W%3~|nwcIRri#H|D zu8IoFrc=#9wE8}B&#@<$rIqwNw;8*~s5F*Xka~gLPfBt073Zi4N28Bv-gwe8Rhjzr zhbO7|GukzZ`Cshvg8PwfqcIMRg-=4Sq`o2p(@1b-nmwZe#op!UiqUcfy|-z>cEZSBKG#C4wlXf|FhB!brT@4I{v(e5H(c->nAGjAALt4 zml*mVn>x}Q>4xMGN7`Eg6>yHg<$t!o9kpC?mO$RWt(zBzEO2!x!qoz}A;!$n4fQ5) zc_kmZS^+2<&_rrE0yVopxdm{yAj&cNw?BaPrG8G@r}OmhC=x%VNX!~=l`L&t{%_KR zu3b1w)2V0o3r+v&p#6>}i8EYMM_9Yto4NcsqtFiJS)xuI%U_84PtWgnME!3>hjwPq zQgrIm{zB1zx`n@^=zqy3v?qOrDE?DV^B1E2)4%+Gmni=KRC50RspM#X_^grx?l*7| z^uO+lRRkP&pu+U8umSLRful^oQ2wep{nhbB8`W8?(*dHsqfF4n)(LgPGyh-l%0FB3 zzwBN@P7(!xvOow>1|%n`iIkC(R5Ek=w~eD8Yk0Z3Aso<`RrCK92I-(~bOKy-9!?$@ zKl(CQlu#g0eok%(4-}~PLfu_!0D(d|!BB2EP*Mg0ii`~)d=O3uP$mr&FM@#Ta|1Xp zgp&^j28!X}JbavBJ^%~2pcJ?UiXYC$2V7ms&&iL11Hs_Hbx|M~6u5Wzv^5`?6AVNB z1?ZC>3|u9}1Be6$Q5M0#``^eE?+-~c+hv>Tuuh#U-H5a6b7J}5AD7@UU_ zitYgh<>rJzczJ;F1Cb%10l-)}!92h)L4XJifC~jUd4ci6fmeV^Fc=>&To~}|loZq; z`T6+J_w(|=e-gkA;^6^?%?~gU7$83g^5xYF?wj}*^yK5W_w6RLT zjI7&YN?dy!p>n1F+R@9*hj$y>g2Oy2Ur-BvEOec+PqwLeecXl%cj^hhfBXIa#ob#5 z#kFl+!$=4kEV#S7y9IaG;O-FI9TME#-Ccqc+%-W11b27;c8=VW=RW7Y_g3BS{qt5) zMRoV?-FwX*dyX;3>NQsig|61kY-ATie`CXIY-#nzo!YyyTTL9hAe#VgDT!6%`2ZvKOxj3a7o+lUYM2#nbnaq+tm}63WQ!1bt%pn}PAT(bI6|MXHJq zyozpJDNV<%59J}Lk|j^fcoKmbC|4>hG&$FdpL&gwqUEHSH^A{qh$@zOL!22G6nF|; zMbF|%luEyova8iBiFD~)X{kBAW&OT6`}O`249zbO=WjTe<0roU z{62nVynnud|F9PRx`F?m`2MR~__s6R3(xfp()0{G7XtUvu5@ck+{{w##qfhzjn*1*~^ z6BdCCi2WySp`6EfiNbR&wBma9)ULbu7B`>L8 z*hhXHtqN?rIWwZ1>HP~5foLAq;<5hI)3zwNIDw?~<+fu?Za5Y*5&0A#yO7uJ=Qe&l zDiO4J&|VHO8Em{b$HopM^(hrk{h$$$q8yMxxH(&4)l~)p**S;G)GRs=TaNT;{CztH zNYh;s>7tP^oD^N>VCMPRbKZMd3;R3& zK%{ep<|;y^XQ;&AA?bg25%_y5_=8sdLejtB;r|LszuR0tq4c+Gz)lC`WY(Wx0$P}B zF#(yFgPjA&)J#Ce{4Lx64!ECf0NH?i{gXL<=LMiWATtY)$$>80K!*D*QL+I&=6`?p zZ_opd0P^f_%)<_}5d1wsGO;rPx&CK@W%$Vf0H-hjAJ0O-!Ol#_05o&~yt{uK%fZv;M(gY>fX%&z#J3Kl{S`1V0-c8#}-hz?HHw!f3HE02%)0Ie$I|ZV*<00fFWu zK{LSq^qKI+owh#L7tb^FZJO*%|1Vf4=#b6S8sq!N<(N*qMKeH9(kj zY`{@KOAsE7*^mEOl&_n54beosGo>pAYcJv#0a!o0iFeV`m+H<2{Z&CVCDb@ z$;b&@JT2(uYRo(}k96b&<)$q_rNh);t{!pD)*>%>) z9uef$ruF9WwYF`ta@$_R5@N@dyxi!>aGRzH`U?!^3XfX_K}uk!~lA zpi60yo$u=`2HN)dWcV3;?cZ0Eti7op9nm@1tHAU1pjb+JgE7}?>@!x{8ChivR*5Jj znK$ryyJS|+at1Uk2$5*bUI9gsd(Q3^4a@JHp)K?Ee+ zVl+LOO#i?ENpWGS+;P~J;!A;#7UlxG;cks_1+K5$wiA&b@^b|^A#z=ra^J@*#^iA+ z@<O8UJ!oyv!&#yHe$Xl9s z@Vx)ZGJjWp{5L6vk>U5{@BcE#{G~YmSz!V_EVTZi?*OC%w=tr0FG_`3-C`uy1^~n&)3($U@;sOI2L-w1Fo%_0W}X^tyGU)LzuMXXK7 z7js;%2-gXb(b-&QZv?(DR)_+7-2}|BQq2hjRI~`_zr*OiD*FCOQZX|8UYY%Z(f;)&%65{@B}RLe-F=?F^e7s#K05xP+qbSfFb`y=~eanmU@tj2wbuVT&TFHN@ z^66yTW0HkX1FL;uL#<9%Oi{E}P0`_mv`I|%V zXN>=k8T5aZ?EhEL`ESbhKZM$ESp0_!0+0o4Bm-<4^Al^oi!-3(Eg<9m5LrJ{>QChT zscn8DksU_sPr(78`cI+pwj^Y+~QI?=~pF@0i;o=ky3-qxEIiU%KRKMOGNM6_1!? z@J2T5ktZ61Jc2{=dNg$(mlnd`gm-cV$)yg)zB9l^lGV2cHbnb7{s%UXF?IMkA1nCNEOsQ|WMcna zy#MJRI}*_T!zu!NX~1k!1(F)zhWwP#fCZ&*_eZ}Pc18xe-y9x#31Htfb3;KJQ=mZ< z;9dW`fZzACp#}6m9bk;G0_Ox2GO#HXVB;_{0*((SBReNM(DH_r?RWDCAnu=U1G1hm z6Y%u!rS~tx{}Nj(ePIYe=iIE9QS`4 z!(XZB|79fpvDe?PVf>XQ{@XDA>ihja9map|$Ohc`fOPu*3yr^$#UJvVg%wa%^uIq~ z1lWv)py{vmbQh}a`=*aP z?tR1Qy2kbstIX+fwVe^=qreX%TNVpOw%BzvZpR+5K;q}VeWQ~Zts93lqw+;^veaBU zdGeTs6*%_+gC@qpN}{cp&`krGX9ErO7@NK(yYt-y8-(dO5#>rM#cT;k(p4n|YClYuqfbQR=2N5Rx0|fLC?NFG@L^icSw zR6mw`)c5;>BxPcT)Dq`9*CZ$c3kC6D@wgQQ{02d{pxAI~Sl?5aEN4+}fAly|aa4EL zhJAs&Z+0b9qiDI44y7fuU?*{CI<^&VN9}^J6Y|I9L&*kHvg0%{NYqoli?;R5Z!Bxz41e^Huw;Ys zjbbK$Gq|>xGFZ2KN1JE}m%Vi1wAqs_oEYV$%tOV^i#hw~RbHFhl|-aD-IeUQ6dZ)= zJ*BvqC{2$~r)gp1989fHPZKvHW}3oWj_Q{V7h<+B3~NvkSXQJKjz^~X$%}qv^*w|o zADl-nscuM>g@c!9fkM1AZSZkEnqgy{W<*7<*@tQO4P^EPj4%=Vb_y^X3s#d)xe6%U zB4?i|h;j#=#Z1f5nPErI~5AV?L#cJ>f3;BIvFiupbccuH(PMV6vbzm8ymO(Ab zKU$@eKG3Hr9UDEnL1+=%~$~W)-u`@?f1T9fO*`-3wPm>Y19>@626RWMr(!`q*XrFm!Zg zF*xe2{{Ynt!W7C9`M37tU z=Q<*an(+_u#H$(K6rGB&B27j_OfqdbfwkJ`ng|*Q3wi<8!AImTCeJ@S`LZTx?U@@)J4BeV5`3AxX)#S+N^kB^Wa8FS7mp z?z56j$Y(>L%qV!+cOmE0juhD{NS?kazfUK-tdxk!kslpncd5r~LAFK^*pneCViVS(3<_KfWh1R~AiWq2lqwrQ5;3ARl~&kK-UmgQvbP zSq>#_OR?T{sJT8RYBa;vBI#hgyF02!)$I

Pd{=m28G`7b3_nb{Fz)xGuagk{4@= z6i~3=AGF`v7?z|hz3+^i4-Z7cYzOO#Gvu5m7mfV1S=HQC4p=sY}PF-^gXJH#5xUDCe%wC4cxWz zLo@>kkI{=nLyaRdH!_h}#DBKp-?ykoRl zg9QokNfEdyTADg+Y!fFZ1hQy!fL|F$zc1xu7}?B1WfKjx!wgz90+ZG#L4zi4vlXP(qx4s)W1cO4yXb z7*Tu(6ANwb8~rXF6&Y$OLS=0YC9$N`kE!$XN6u2xu?!teMLyZ*#l9CrQ2z0(jsV4% z1D1%fAH1K~U7j~(8y)7ZwUBq0-##)giqH60P4=#4{2Xpfp{=JP;!Nv#2m`g=hq_jb{Q%io8%Za;8jMxt%A#WTe?49AT z}Eq2^5LZ38D;Hdl#lZ z_u=*DZoJdr!*>ybgN;&PqR!a|X4m8k<^AgEGOVJ`Y!%Gu3(jYQ$8ZJx*y`KaHjT{j ztQfkLR1XfK)iH%7cbgna*lL9d<}eR@K6M9_-iLV3+y%UX$PuUK{H?a;FMCgy^8pAl zTUpg%H}u-=Ayn>(PoL=AcFR`ADo$|A+-`bGynH~{WPRaN%K0C0tndqLxOzQ`1*ZB^ zuu%6BI#eAw6pV^1<3UT3nVEv^G}_E#w?CAX@|y~$nBXNdT?0$lZ>}S6IExt7Xtk?_ zrsTMrI%nP2Bfe2D&i2v}=uYMQ=yp)=(qlzO-AUyt7?|IlQB(XnWb!=snu^G&@Ap1U3o?9(8OGRRNFVH0eiwNUxlq#DI$>}G zUR%Tc?)bK6D`KWTEu%&!3qTsTGlK$^;qms#@xvRR9i5htwyy#!9y)~3#osYX12Ji3C&jtM$^;v_yFW@%DY zq^q#qnb3KW z;#Xf$cj${J%`!`5aKqm zTz@ULU}F(}-o3Zagrql;6ImTbI|vkl?(l&_F*%H;u>t68dIQ@ z)S6S~$2{OnvFp06LQ*EtY~lo;M@=P*o2IC_j+BaBa_^vCxyP>U_MAR6klAcYx^>#I z861-3omH>Wz#c)}c@{;(E)8LA^_8;zyL6E5@>3U=yAdu%p{V;7jT_lC1CF(*yJ}-s z#_`vRnhUFSM}&xU=8Ekra^}f|49r2JgYb+LWkZ_rd?&(IRytQ~6bx)i25^W2L}Ln0 z3To^$MIFu9b;+6OK2e@hs;y$Q3L5$-+Nb2s#;qsrNa60fSQnNM@ukuVY@ZIhg0Cx!KQt8ST^-*D5N>&ii}#ZT_pPDWHgPyPBEUcg zAIp5-i*32e7ZAtwRAbr*e11@r#ao_;l85&>8{SJ&gY?0Pr=~ERZgYzxn@A(K(Fa+s zG7vwEal4-Hc`wfTvXiagYVSrCoVOe;BlBY^*bv(FT_VTi6E5@p346&`U-tOL)w9=a zgjIVBw4b)OX3HI=9@|OZMf(-C)%P0O%oH@gGSyHtY>;x8Lem;q;~%&3R(WCNXS&*t zL|zx8N6=x9#804RJD#uG=}YQnPOh@Bw6hRpeDs`WU9OtU8eRE>yW9So2 zyZ!Xdm=yDF6(@c$OAtrO-gA>(kt0N8qLdkZ2-CtV5{t)^Kf!8AtU%TBv%Y30RNn@Y#*@D@0I7`)f&Gvj|U%U0d_1k{3cAc7x zgdF3h(SYx>Oirc~q=^wmdn3sr0q1oGvkanI9I~PiRNxFlC)=*KYyV?HJ zSIz6e+;P22Z;9HiLKLCdw=o$EDbqO#j|sngLS%3f<8S&{R&2#hoR|OEBNK`!W4-sY z&E;lfLKe*snW zy#(A35b4RLByi`Ih0p8J%@b(yoZu_bN@i#hH1~{D@rXWs=R2DzbZVbpj}_EZsq$aV z^NB82E)6Kazbq|Anj+MgcB>#%=(U~PfGJcw@|3Zr9H8ye=y70t6Asen5MT{9^1e*Lh%rlv}6Z{#$3}cVsZ{~j(fBTKzpO(}gHWDKP z=dU&rC&Pc@A|=F20ne!A9@j6_RFP?9KR8MS+|XW2XL@=yJF{1C6Hd z2WRuD%dwm1i^KSh0LVeIpkPEFwU_4DEid9x7xh30GV!_tCb&J4__b-FtZQl<8^x*b zp>z@Q5G~#+KEa^?LxwEr?Dqy1uqMBq>34>4k=UM~=Q2N3$vk+@zVs!amV&QHW*nq1I=ZQSe8sv(kN#NaxvPMTy~-B2vMlYkNljP=)q4gjWVdhS-wmE= zRCk3L)$9y%V5<$;uc$J5#bb=)m0CK=CFsmAS1+mW)$Wt-Q3KTWR()m?LpZL5c}B>~ z&Yc2+49>4nDfoHagg($We!G-p*LpFvjvBz|r``CRHUH8Ju4|7zQQLuBR?7iO`GM1cMF4sR;_`U+_i$?O|EGp%#F|Hm|_Ks^=>7Fp_=;`L|-H>gd^}K7}Wa|G^`Iu zAG9h$O;m}w;4_w%J`@&N5*a9YS9UsJ(w;onq1#t8QQ+{@ObAX7Q*aK)^Xy<;_j~d zD1CWVnV3ko!F)XlzTQ}W0SA>eqHRW|xk=$*W0NUxM_^Y=dSJfK z(OB5{=dz-o)2qOYtg*iJ8yMI0BP};qC6&dO42L8dnWcOg%|(<{mgwC2eCrl*5#a&? zx{oxAxyCVxGSv_;C>p{F6a`S9tB07zKg+-W+{`2t8oBjW9;2^?F|?RrzgT@vP(;$E zgOglF0)~m%$7|w(H~oTVC(|J*&V{@4hWDf$6cjN^1X12=#!gOWtYEwygcCyV@YZ~z z6f%kj3B-)jH>rQ3(*AO>bm>(zIY@Z2Jg@y?x{_fQXg-#28;kw-QH$Les2^}3Grc7a z&W9E!Ol2+?U%ono^52hx^KMkUBe)FlfqWnsL4Zv0g?;(=JaoSbAKvGec(|Jy*%RSwAtQu&eY4=S14pTzK2hc;@9ZTeN$Z(9W;! zUbpdJG!JwE>v{;rd6EWsJ$Wrg-$zCx#A|VeN5$|euNuYB9`@W^x9t@w(D4_fj15io z9s|e!Eu#Tr`8rH8DTHb>tkou^`ldU(aCVvvR^YQ8hoX^L*Q@2%Fpz_2&N4KKC>%e2$W>F$Pr>*(*aUs70Qqhw5C{k9 zo(JM(_vW<$L$JZCVfjx($q}vgaJn1VVv-Dlm%&z>*$9>00`J4H8Q_dDLOy+d>oBo` z{`h!9ZEkRN`*j?vSzt;ZB~OzD1S4W;>ERU_ob`!P@7n%#2co@B_^y;4aYZ{l@tZCN zTX4{JLN7!Lb5r1t|ruxh_hy>gZup0fMR8*u|( z`^yL~kAmt<<>Z7INxOb3seu&Ya0a`>aTVfSDp(jXhYF#GHI1K8GD zozeAB!kh+(l^vq-3?q^RI^n1futO)H?!l+*ZF|_F+B4Z)q zTH)lYq)C~-F_t%nux2VN=B@OmQq7hdjXBT0(um8HG^ru~vs~{7~O-0j2A|uY%R6s18PW z;30aX$hlF%DV(UDMh8OxM&-B+^Z-*nP(gN3U|fgc|>C zE<}{BsJ6IcMdyU-0E1mD$_2@hZ;Jmskm!L378XDuCX3t^BRuOvuJ8>bRnD)&oyEPewWMX! z1MeV`Fao1M;O_)DuYmH0y+D2`19%s#HX#5BI(WtoGz%X6#NbbLl+?hBeH zqZ4lajF{IKM1hEI@NV;Iy?b@RAz1&JDgTqTSv(9w(MC#%+2)*cc8rOk>A)SKS^PwH zOhyu#exni0GP!qH#X2D0~0(bGwYBM^H^ zE%^eA^o~Mg%g3F*9pU0Rt(iVCY|Efoy*sE}Z2X1w4f;smhnmM1N}9s^rklVG8s~WR zaEi-#6sTx@U+A;s%G6ObDIxqmBh|@n&6K9sEB%cEf)XV{yw3PXvsK{;KWZMLC#$4U zDQTd+lqnr2gW%o0Pcdc4Rg`w6Y4|C=9)>Yzj1D<*(aL@i`WOTyt0<5zG$Ekd(j@;N zYe`f%QIc&Q_!=zs!#%VFy1Kwly@r{!9t*Cvm{>qIq)buGr3jR`uMjVv5Q<@y;tu3> zoH1u}uf~u38cp}T-0_8p`U1nm6%c?|` zXK8e<$OR(2ES7o|Ez9t``)+@)Gu{jjVPnPNxav5uU0khaLJWs*gz1#?^s2#Y zrDv1Y4IMa^(r+VX3qpDob&n?A+yY_LvajFHNWdJgUMCls&76qMH_GP{n2x;s-CJo? zQZp>p;JQG}{F|1#x*j~E;vi;>lY|6Y+3v2+kF8^xmT8I_uy4{T#UAo zN9zRj(3;ieW8I_(HlD7{(PBxX1nO*0&GeCv6Bw)`72oS_@Uz-D>N@n#c%9-k^g#*W z6HqXaLJou;v3Q)b2uG`SYaWFA=@~zUYp$P7LG^E<1tkNwwF>>fDeKUQ!RFF?w4^=_ zfwo@rDQGEpJS!OK!Z#0KH?dw4n+FYx7e@0eYXi()yMot3DA@iL295dI)Ko&sh*8U8 z-O6^T)eQope2hYYE$ZDLr`|-NA$18-upEuT~ z_;56DPiuF(1#v?W#k)zpJ7lDR1P4>}+1O>knvl+b$5~f8IZQZeIcd;{l7va0(qAm7 z%j46OuqeGfXR( zt&CFrPK&AcS=hDqUEy)s&dSrEWJ|G8@8gCOLPl~`d%2f(@p9={0$ZqVW+vl$3p)R5 z`|}iU_F+ZNR~5zV03>2%!|+cr7A({T-0lubP|O24JULzj04`JPOVKGk#81u$g#<;t z6W25NIYrKIKk3US}!ej1pHNhE#CqHexP{+!Vq24Qi7m0nJ7pJ2?wK`pnhhr^&{3 zt)sGU+ybBTd1JxAD?5BsRlv7g^*&CQ6N#?j%`m(J#da98eZ|HKD+Si)$fJ#;PC%K~ z@OiQdsCotA$kxmE0)1$Q34>8_f}~(L>alqCZ(b{QY|!=;z2?%^HrF$=()(;hz)XY` z)=DZGKet}*O8S&3AnL&UWQ5?w!yu{%hA@o@7vT(M1RrJEqC+6R=HNDzzHK5Q*t$7Q z0)b4|?7K;{l@PZS06id8D1S8?%A3X}A!&x^hS7Azl>YRk*o~`)8Go18Ig5{n0m!Rw zA#FbLgu~#5LxI-&xzo}~5!uHGhm8o~k&6vYt){-M4-a8gGpNh2U#8=;cc-AuMYT>? zZ|O?x@`J}~?tuF&NGkeTX9pUQgK$ShYkpFND#)MPThE_Fnw%sbc`lRpaz?F}dy!2_ za>?DEh{6O?i!`7f9W6g3uYjWSJK;z5x(PJvXmf?v<^{RbdE8@g71)el5{EX(adkPM zMPl_6oF&~^EO;>)l)@!!5hM04enyKDAj+rdOtP%EEF$Mv2?z17RTa4n{u-GO^u!=qDX{ArzF& zON0Ldw-R;HTHR4Wf#TYoEwfEwIh)^*Zy@c}`c*(^TnOZSz2e zJA9E4>{=!JT~+qG!7+x)NuIQL5FT{D;dDDVuw)L{a$e+=n(= zBiudE_nw{_d>F~;(k5{*-q<*(C%)|Of{p!fXt(^Otqbcd@7dsEK^atCOU@Tn``1xJ zRLVxzht(|<)#6w4UM1lMDIz4HR@Z$Zle@ABm=VWja%mQ-(^~P$b@arccH8eYZj+51 zf}TnS^XSz?U0ggK6HW@79^KPP@U$<++C3U8ee6awKkTG!G|bY^nVG5{x?RZ~JbwL zargl3a3s9CMTK?pC%e%b5EdKW9z+{#8B>C7#CJ?}MCvh(gUJic5U zXKLSR0P==H?3ls|A0b)uGSN&PIHg)VwVi3Lc8_k6CR9r^a+PW}g#n2_rqB{N>NSfKZyrxLp4GzMHsIn67egU5) zpsXvnL!gH;vd0r*N(?J2Cu8*1xZh<2rBv?Tw%q{>Vc2|FOZbm{%ofITh+TM2p&HVs zSG3y&M1OqSTGXc{X!kTrOKdnogt9?sgsE6ZbnLq-ZPs!hxZluf`YL-&KCF5bF48Dh zSId?vK&ESp<78Y-K}OjFe4}d>b1Jf8?L%{EX>B3JL|#*fw8bF_ z(Wxp)|4&jW_{s5a>8qb)N99hpNwwP0(CbJwqer`P2D|4mX6}b|OCOiuR33EiXFF{^ zeYiL^J(yLvvF&xhALEZm<%;!@Y$`KmzO#Sg4!=LwD?635hqBrYEh)_$Nr7evpGfce zIxa=1GSL)Ml8IZD-;p3W;#CM`k=LWm%IH|t@m5|6lVW#XhT~4Qm_maLvvyqLhw}_} zltsk_U&qbzThOFip(k9Yl|84$kZ%XbX6#-W2^>Ddt~}L>+&K_7k3AhZYDpcmIFB1Yq~yqV`FFarscGw$*~ zP&O1I(xo+-&=5zs7&I)bzUp&3?BIy(Rko0`#LQE5$eH^h#OgxP+2daj>-I2M;h!a4 ziKVi0{ScI4*#O}OcHdvVU-NGKmCorw?DhGHaFz1bJO^8om8!VW>&iMA%CF@Z zS}1t~U0zhZA@+YzvFUtIfe>#SLq1ryMS6~PM|mgW z)@fz*91J_4DBKqKSzIY%l|S>l=lj+Ooag9A9<^58{uD+B@t|3Dc?ACm5X>Pj4Ws;% zU6SZ)ai9EE`irX5MDP!^13j85;axox9(*p%h0X>E2<3RK6Igij0J&v|9l2-9#oYSQ z&JSu^qN9P3pu1nh!Y)-1@mrzZ!EI=xDbkE_-Y!&k@0i5FEbtqD>1|0aq}Ofhr$?J( zuk!>GDUikZ#?|>`_CZ)}QNzJOc!ErV{O%&J1ReP?Ck}k%CWN1EJ-pqnO!Xs z(mFe6fe&#T&f9Np%zcfDVwk9mKy9_(S5&AV3-$z9&y0V#;^Mnz{9$Fcb~DembZmxqT;ubHQa;5|s4r_s(Dn}d&Q6Fk+QG`+vAXdvFIa49Zj<4(zj zaj$x?OkNMRe)q623_4ljOqm_>(7~u^F45vPCs>SnhLo-UXe}{epG$ttswyrq&=QD4AAw4E*h#fs$L4q| z6Sq7^KTZmT{2Rs`7B>5kM3f{uCT$P%<1n>57pNv)?PM~ZTn`$M8rLuT9F6Ykmo-{A z-7b{DAGIapr)K~KjU@+Gi0KLz)c!^RZVLAO$Cci~6jal&Sd(j~sA;c`R_+O~+Dp4j zKGJx6xGfe4F71c&p|nWb)hm&ib{FOGWFe~w_?Kay)q|O*>2u7u6T-bYgcI&ulU?xE z=kvigE(!20CIX#W+bb>Z4@Yv5v{`JiXU0&C(^~n@)%xjJN%7ymps%V1-mMRfoe~h~ zj;uU)^&nd#oj}dgY2#;1*Va=&!_CsrIE;R?-Kc5qQ~A*lT>y!IrnB|g%5LZ}=;2!8 zsbPj1e50~uxW2!oFw;guV!qR8-@l?;p$5Ywv8R5gfu2Tb;3ye2%ZZl5^diUGjP{P>l7;UYL@w2YwZJ75?6l!Awna{Q>pZ2wLZht8&662 zDLG*be*lhqpBE+>X?rtPm_Da+bku*dt($0Dpp&~!x3%WHxQxX1ax+}2J_u5xZL*A3 z`$6KPHt~wQThe^mlp+ii{l`8AJ-yzg>T$)$VT_MIgl1E`6gOkz90|uW*i1n^_DqQT z9FJ4T_XfM*34M+hxd@G)41$#t))6kb&G9d*v$55m`PbXAmmUvBLz}mB1<^z9<-4Yd zzn8#?&~DyMDzwl(gi?!M9W9md1`;NdvIJ<(njpT(cpqPjZw664mV_lXHfg%Y{8 zRIB0kirnMP$nsIW^`9Yr? zlblT3W3^P}Mx_l6F8F$gsTi9SWJ(`oW#`2>bdltNjx~LB2*Ur%2 zE|@u)|C1Hp6{;R~%HJ@7iHnn!0pC#PrP}=b~&%Q#6a4f-nBOJJj_IL zgWezuC_=i2kOQ8nw=WYO(88`r?eQY3g+7!0RkpEScGZ9q@i!17PG4%s-~qA&%^(L~ zW%y{noXzdb{mTS=5TPII&shjJ(vg$#1mL|80?RAR-*jZo)B73@OF}{l&KmE6-eb`j3hl!t@IE|(pr2FK!_IxP%}`86cjg3(lz4yTbUf^PkS7$!z!foDX}|$>Q9suiMIlX9ioAV_hlN z_o!Q>Gcl(J=5ZnyVnO^4*u6qI@9?+%CKz-d9phMHAL!C-rz{Vf(~b)}Q9YeuWXm@a z(3e5j^rU3TPPdQRHq>^EKm}=rhSq5o{IFg*)CLmxeiL6W6E}d95T1-A37!mV*zJ)G zH$arI3JDdZ5du%047IeX0M-L!Y?N(#72O?v!;bESa@Hq*JrxBSzLm!!AOaaHo{Rr( zHy{+d1~;t+imGw|F*w`6X~pvE>^+0UMw$S=dkvJ{3Rf^!a__r?(^ux|>X@TJ0WZZnX7F*X|;M{SvW-(JX9M-&P1HF^)UsY~a zmN7s&5yZdJ#Qa(fSGsCIV<5Z#8ZJ?6?4F3pf(aj!mD|f`G=1HuSFC^R0L^U)6(2yH$i^{^=pVN?I z%2sYXT*4fG`BWLJaKV)jetvT?*1XDT;B^>q-z(T!eZzcYJCONul>fqqqo%+5!kqaT z;m80z(PzD*N?*PW{Ah;D3sxcxU&QY-HaOfG>gX~iJ5)2ZeYla0=@d0wQ?>oOz?kaN z{?~coR-p`7Ci$vi420!$hC)}h-_GQPWJ*e~J(TvDoU)6OK7C`;#YMO(KyDeHM8#Le zob6?8WXaj=>k!VR?H0xpt?$W429C6(>r&+wpvoyC9!1j0Vah3F_Et)l5kYNaNtI`j ziKuy-Ved>-Y6f(Rmv9TWXl$^qA7_ZOARbMKm_#*|LJbzCO86#(l_psbuS^j$CpY>n z3hBLtI@eNH;Ql-#(>L=f=^&OMY#~i?DGE&@EdArt&`MXDQZr4WZkXCYHv?UVJp7vZa>zujbh{#3<(OFuc)T`eujLT);uHK3|j6#l0%*Bi35v2 z;1I4wm=S?N`Ve;uK?Z<8+qf!(%QEz?hwq09j#SCa!#MW&-Yf=EDh@uE$%rL#){Po7 ztDe^GjbXvmz1}wzp`T+nOD%_HB4k2hnU-eJ*LR2ZD(!P$x`#OH5QP{aV##o>z7WG1 zzr=GNfk=@pWS@Kkx%>KAtC{_Rk5i)3ACge%6m9sqtPW(k#o%-M92uOT0fdwN5&f{o zr~Ba9K3bWGFVns#rKJn4-Wmh<$6L6|E`76=5hAu7oN-?=M;|sRYp_{QO$E|VO__w= zl2jYCcdV^v6?pmHh6Vt%qMDL9O(561VHi|YTLjZ$05xMw*kXXFgH|PQ%U5ONyZMFT zi)nnc#{9?fAx%RDbu7dNi;9{8H~TTL2p*G+!YuytHQZS#)y4a0SKEa;cJrrzSjYY^ zWV)QU>&-4=uN%Dr{BwC7RO3mXt15BQ#%kSAA4i$+-^%$(+{3jAz-LOS!6mU5xjOZo zekh0k(sxqaWfJT|w^F;{DuwothBd;m3!zvXstV~Z6H)O&rnvN}iu`1cTxB*WHz(_H z-znGns5P%)>w3q`DK(IMxBCKPS&nF@<^);Jv%N4wpeH!j*Q`#qLTsByMa zD0c{VBX(?URNwS*ZK-WEPu4%s? zx|ZINV4%$y>el#5Hd5;pbA^*usedVD^~-vye1g)fQSAutb($D{;cUwIRcohS2GY{? z_ooNbX-4<@R!f2-#HHwicx>1Ls|nk}oMQ$rDL#$Iy)JZ(mvN5Y{xcfq!D zbWP1vECp3GUzmk2T7EaS#gZ1CS7SZ&F^c#N&o)67?4Q_xrcR7C)(05cb}wR-2ko6+ zXYUT&kjcI}-TFO5obcWfBR<0lWi_2SB^xN%cUZ8+a~^S5a5(naotC8N3SY`4|@G|^9P zMzNI`(>O*mp-(B9$7ETR7&g zm3P)Ze(%rS=epi^{@VRs_c`}DXXc)rYj)=QX-P3O{pzxG)M7oEv^^W&sK47ac?>t) z4f!{t1BpK`wPHQ!2A25m_a!CakpGYST(7aS3uuPn_m`ZE!??CS=^+;2QYD5-zN4k` zGt?J98i5)qD*nWhw)efhvkz8l8tTfP;#4UY(z0SymRui_z>CT6Ed zrTYl|NIJ$R-g>RphPqI5!trm~I~(-JRg%(A6GBMxUoo3mFqtgR* zAL1pb;*~V|dVl>EC@Ol{#R%`NE48~*cEkJ`Gbbp}<9AhDA6pKDdjPMNa0~|bg|w*T zk&wXgSH4g@@adNxyF?RcwTqrdpH#$BixRF_1_@ur4`YL{t26qs8{5e9<+DHI#b3oE zlVXF>kfdJT*Fi7QU&f!9x200BI#-AdFc8%}^^-9+W7+XIys+6^_c2Y$o8zCaijBUw z>9Bvu@}lKTA=WA>`m-gT-B|IuHmjN#_iXTk@u$yCPzz2SWXa<ZM9`P%7l0_sT{#McNq$OPdH)b|KlbgBi4u+e{9 zt-U{27giP$&VJRVqpyBO0FqGjST9>h!fCA1#iL@XPKR~(v(V)TzD@_O6|JOgvYZWN5> z^VAhQ+Rzz`Xm}_v_h1$BL5^ zJ;?q?4tC1Co8SfA2$xm#n|Bi-gJhd^NH{@T=5xzodATah z!#>%qJ*X#i+pshbx(z#d{!#?W3+zg_z04?!E{rfgNH;ZT65)S<$bhAIXYC^9-VaJ= z_aOZr3T{huXCF6+QAI$zdqNx+}PVITp6Nu`LLu%Fz8Ts`5AC9C}EePM*%;k1AyS6F8igKzK&DB#i!SkF~%Zv~8 z2l`#EU1?BRGIN@29fnQz?~zgug;w6MCsE}l9V~jasG$<;r*!Rmhtr90r-`ajc?hXL z)KSyDs$p_>+^G877Q1ZmPQg8nq&BToV&`%rOX?Go<}`-sW0UZ-k+OY>h#3LS05d!P znszd7Saw6vOS##2rRCMpgm*GSq1wCByFHO{>KWViMgfk{N(vT9{i>g~;om%b28dDZ zv<3P$G`B-3i0f*4y%7w(&v@1u%J1_i-ZEIsP?N|v2>K$l;FG^f95>l`b~jq zWJ$8g1YPukS&VnTfH*lV(X!xSI2t`PpVD0y2*%h^pD%4I*vQs%v zjg;#z3Bl&v7ZV3FC%+EB?V5YhVo4$;)_l&xMc}!6`dt&zA*V}IEd?ud3q@N|>ZAhA zbP0Q*d|m%r-5WtJg&W;% zp%K(t!n{(<@3VMhl|4o@-z1%vbIE!-9#w?@LMf63PSN<;mn93J8otqx#0T*Ze50V6 zxXRRX*sab3JNK$30)1R*{hJ>fAR>765Rw}8>kmUZ`!!FKA>xkIv*J+4K z6SFdh_wB0{?&_*4czl#;Iw4}9CwRX8$`SZn-zCeXZ&tAO$kUbbg0&Tts`ogsVRNGu zc+vI&2O0JGa*~()$AI!L((QA<1V`eZ70OD7yIcLL-wyjG^ipm5;Mv5Jye7|Nbl@*R z0pnhGl>N$0J4Myl?Q|L56W%NG$rF9?1U|<`-JKu(&bO%25iH*R{`sJ}Ik&8lr06-M z8@VrYfAhVW*k3cKx*y%496evM&kl3j`gQkC_C3t*Ll{wQY(p~O)`(=eWWDw$zw|Z^ zj}*t4+Ib&yj)u`6IyA4a_)`{5xF2p8*G_GQOul5%wIa8hSR)n)_&``cQGN*o*K<(V zCkgv}EAUKu;$rgw)4?ky>*jNHDVnOL2P#+OA8*UYj_KR{+YKiPjOPUQRSx98Z#Y53 zG0s2#=aaHk#^m}IQ_R0d13rri-)Hi@izZ*Tg3)lhFq)*MYcQmYbSK*pu{@B}40`JL zRKag;942;^VTKs>bNN%*iz!{{*CS08uAB|2zS>jT>Zq5fxSYFY()YrrjcxgL>RJxb z>$N;pJ}&Pw&e}&$F3x^k$ZjqX;U@(D`ZV71deK0x=9@1A=O#YHb=&O=Z~q&!AaVky zxjI_~k>3T|v_UfX`2|&tZI3ojN=or2f$tv|(M#l#b$Av8w_U%^FZiY*-KlTS;b~lB z6Ip1PcxBLtkA5X=rS9w%U2{0~62F*S!CoEs_ReFUK*5;6WNcivrsB;%v-lb_c*R8( zj#^&b8kVvh6?tDS{2%LF$h$9xcGK@ zvHzoJ>m`yTJX0b9Du?^~2yn+v4SV;18lj3Z;RHSvnm~i|6D9eIxoPVYNs`+;QKtAq z<>WW^9JIC#W9DiXYwlMMmohbEut=86Nm$#%7;`VOTqRcB6Pmr4lDDp=-t>~kBY$)K zeZ@Y>&ucN3erzHpp@(nCbxb12s>$AShn(%p;617&_5E_EtTo*54)b1DK!Pe+3xt~L zJK=1xN3oW>BG~48SI!!ZiUKQb8{VMS{okPZS?8u9&nz~f>1xa1du3OWX$a@Fudx~? z^v`D2Xcy}juuR!-U1d;wgl?%o@F^xl}P06-d#yYLFUbs&&4w=C3MSn&?`i zp|s*Nu|8BN5OwSL{w#~Y~$g!xpmvoY)x`NVD?3K%|LQDMp) zkMMC)B$ahRg5UjZKHK^ zFBk21Wz{Ch&d2Y9uhNy#3~ECe49b4X=KQ$FJtM98q&P7VxUR^y9b~btJUC?g+pjsZ9Jq|lJgs`;I zD}#6|UhvX<$NG+n=?G&q%+^__Re^Bt4$OY&x= zdnS}G?~zsvO~q|63WBb*if-MbjF1sj4X81A?nH90UaELFvZ`PV3}-O8(n&&3^L17l`5Q-qDo!_O0knn?6atnhoKEKJInY+tAeKu zm7Z5De8`T}=O~^cQx#y*41g1P!#s1(`qCjMbCsABQIY5RigjG$#~v6m1Q(ih^hnv*0wfo=cLv>2tRq zMjcx8WY!cj$9UG|y2;)$E4d4cZKSoi)~fbcWi`6c2>m0aw!JToez%2{BbrtecrQDQ zU&X+iy75P0>_>)$9#@tXSgDFdPJM)JymKyy;( zXoDv(vZef{Tz@IQ%$uwqbcHsR4Ab+Q)J~hgIyw0-*cY;xX=UJUnk6sV)-IHdK|Y+UWu-0Du)J$a^kav#~mFS0qWTG&aRHGU#|8l;gJ;*HKO z3+gS}O5H9diZ3J=*0Z5CSwN|84!E#ST;dgOk2JjjeH&L>Q6J;SCYm)=auS*51fzel zIhfR6l!I>LFC-p7xqR<@U@On-vv9s7CbF)}So=ik+P-F|$j!Av-rx{FP>yzy#t(sq zEJCu0K6ic|(i*Vb$=7CI$gpG3(RI*Cdf^&UGT1CjTBBLg1kBacG*fw1sBJxiN_z91 zn8nt}=+D$!r-EdbCw!Aba4*Lqy)-oJpldFE>GvV><3Aq@*ofI5?|pK6!h8ff+Ayg7 zy=!}M-ko7`Fk<~>PMsrA;fSHuj6Ft=3|UAe4MB&@O$MkkCisB)$+hj5HIy>>c9E~{ z-DUQ8!_x^NWR}Z|A&|2MBlir(P8v>1S8I;izoGNw{7($`=$cYKw9otTeBEDo6iyv| zdadh3lGt|BN}m2K5=~>N$j&KGSJW1;doS1D@!;bUv#oUjBMq4f8R_Ds!11E36-eM} zlK6RHXt)AzcfuLpL_{~0WI^>XT)Gx^SoTGQeixn(ji^_D*C{PZhzt1oPa zE|3kXy+MzCP^NopOEqIP*ocg$z3E$(mu!2`Li<%-{2?kcVUKXBqA6 z0pSB9!-qq!*hGDsc_U=a2S$Bod2a>YDG>Ac;_voouZ@2u7b$hRxk?Oc{OQUY$1&3` z?|T;gvA^fhsnk(o>(rqUC1J3%THe|8t=B}i(1utjTPwr}!wP60XXQQF%xUkwl z{)CzN(f;AO?ZN8+v7AqRMZcfOymPcX7x^Z3GTp}bFPD3Mp7suagS~_Vm`waX8-PZE zNX;6Shfvo{Z0Bj9IV8PKOapwlu)8fn*K&;@* z1B$V@$I1(Z13VUN4T-Ts$87(*KcGm!auiF0iR11g05*Wr76!&(ME~v&2AKNeXb>oF z4gi{f69?RD#?j!o#{moh02#3JA|-G%xH#t4>)+#piz9Jzz`+=ARjfFGzJsG-U<253 z0JQ-}1Asg@8XSYX!ODTaT~jy`cU=(T0E-B#EkXhcxEcQ49|DX!7K9`Ow=Lk#htn1c z!5JR{hT+R%<$&Yva|8lID#eQXgDm=6LyF_pB~k)+Zb-oW6uUp9B*wxJtG|EQA4mWb zffEM>49cbH~>QcwiR|9z~RDK7bpU! zW&qdZB0jw5wTfm(f zCkFy5j!J6;C)EgLyz}!gsYh3{74u%Nu zw+8&?VUHOC6c>&Llmd2t5CC`fU&ora=N-Uc+mlR2hD_|HySq0h5RXBI{K3fq>-^`l z3a7aY7z$GYE2%-DDw0YNMI}|JB2-dEQ4$J6sDV|KRV3s%|L+jM(%azfL;F7$PJiAH XzvJos=UNH^I75TUczIRz)X4q^v Date: Wed, 24 Sep 2025 12:00:19 +0200 Subject: [PATCH 46/69] Add CR 22 september --- docs/ODJ-CR/CR-Sprint-2-22-09-25.pdf | Bin 0 -> 55402 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/ODJ-CR/CR-Sprint-2-22-09-25.pdf diff --git a/docs/ODJ-CR/CR-Sprint-2-22-09-25.pdf b/docs/ODJ-CR/CR-Sprint-2-22-09-25.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2791757bb69ffcd782f4e752fd999b539a88beed GIT binary patch literal 55402 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 literal 0 HcmV?d00001 From 0892c212bab7ed04405302aba8fd397d012c3d83 Mon Sep 17 00:00:00 2001 From: HugoTHOLLON Date: Wed, 24 Sep 2025 16:23:08 +0200 Subject: [PATCH 47/69] Changing 'location' to 'description' in AddFirstAidKitLocation quest to fit first aid kit tags --- .../quests/first_aid_kit/AddFirstAidKitLocation.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocation.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocation.kt index 93af7b22123..541aaad7c83 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocation.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocation.kt @@ -15,7 +15,7 @@ class AddFirstAidKitLocation : OsmFilterQuestType(), AndroidQuest { override val elementFilter = """ nodes with emergency = first_aid_kit - and !location and !first_aid_kit:location + and !description and !first_aid_kit:description and access !~ private|no """ override val changesetComment = "Specify first aid kit location" @@ -33,6 +33,6 @@ class AddFirstAidKitLocation : OsmFilterQuestType(), AndroidQuest { override fun createForm() = AddFirstAidKitLocationForm() override fun applyAnswerTo(answer: String, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { - tags["first_aid_kit:location"] = answer + tags["first_aid_kit:description"] = answer } } From 4c7490c6ed057fce19542f3b2aff8c2509fc45e5 Mon Sep 17 00:00:00 2001 From: HugoTHOLLON Date: Wed, 24 Sep 2025 18:36:28 +0200 Subject: [PATCH 48/69] Changing achievement from AddAerialBothWay quest from Car to Pedestrian. --- .../streetcomplete/quests/bothway/AddAerialBothWay.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWay.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWay.kt index 3e80b41fd8a..0f29c467cc9 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWay.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWay.kt @@ -7,7 +7,7 @@ import de.westnordost.streetcomplete.data.osm.mapdata.Element import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry import de.westnordost.streetcomplete.data.osm.osmquests.OsmElementQuestType import de.westnordost.streetcomplete.data.quest.AndroidQuest -import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.CAR +import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.PEDESTRIAN import de.westnordost.streetcomplete.osm.Tags import de.westnordost.streetcomplete.quests.bothway.AerialBothWayAnswer.BOTHWAY import de.westnordost.streetcomplete.quests.bothway.AerialBothWayAnswer.UPWARD @@ -24,7 +24,7 @@ class AddAerialBothWay : OsmElementQuestType, AndroidQuest override val wikiLink = "Key:bothway" override val icon = R.drawable.ic_quest_oneway override val hasMarkersAtEnds = true - override val achievements = listOf(CAR) + override val achievements = listOf(PEDESTRIAN) override val hint = R.string.quest_arrow_tutorial From 34a919ef387cbdb45a55290e435c7059dd5d65c7 Mon Sep 17 00:00:00 2001 From: NariaReynhard Date: Mon, 29 Sep 2025 10:02:11 +0200 Subject: [PATCH 49/69] set up of an extractable work folder for new polylabel algorithm --- .../streetcomplete/data/osm/geometry/polygons/Point.kt | 5 +++++ .../streetcomplete/data/osm/geometry/polygons/Polygon.kt | 9 +++++++++ .../data/osm/geometry/polygons/PolygonAlgorithms.kt | 2 ++ .../data/osm/geometry/polygons/PolygonUtils.kt | 2 ++ 4 files changed, 18 insertions(+) create mode 100644 app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Point.kt create mode 100644 app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Polygon.kt create mode 100644 app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt create mode 100644 app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonUtils.kt diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Point.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Point.kt new file mode 100644 index 00000000000..eb8d2092b61 --- /dev/null +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Point.kt @@ -0,0 +1,5 @@ +package de.westnordost.streetcomplete.data.osm.geometry.polygons + +/* Simple 2D point for algorithm logic */ +class Point(val x: Double, val y: Double) { +} diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Polygon.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Polygon.kt new file mode 100644 index 00000000000..6fe3cf1db0b --- /dev/null +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Polygon.kt @@ -0,0 +1,9 @@ +package de.westnordost.streetcomplete.data.osm.geometry.polygons + +/** + * Representation of a polygon with + * a list of points that represents the outer shape + * (optional) a list composed of lists of points that each represents a hole in the polygon + */ +class Polygon (val shape: List, val holes: List> = emptyList()) { +} diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt new file mode 100644 index 00000000000..e7e22affcad --- /dev/null +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt @@ -0,0 +1,2 @@ +package de.westnordost.streetcomplete.data.osm.geometry.polygons + diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonUtils.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonUtils.kt new file mode 100644 index 00000000000..e7e22affcad --- /dev/null +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonUtils.kt @@ -0,0 +1,2 @@ +package de.westnordost.streetcomplete.data.osm.geometry.polygons + From 7a01cb20bd06ed9592cb4bc26196370d11331c1f Mon Sep 17 00:00:00 2001 From: NariaReynhard Date: Mon, 29 Sep 2025 10:23:47 +0200 Subject: [PATCH 50/69] completed logic files, mostly patch coordinates <-> latlon logic. in progress : actual polylabel implementation --- .../data/osm/geometry/polygons/Point.kt | 3 +-- .../data/osm/geometry/polygons/Polygon.kt | 3 +-- .../geometry/polygons/PolygonAlgorithms.kt | 20 +++++++++++++++++++ .../osm/geometry/polygons/PolygonUtils.kt | 19 ++++++++++++++++++ 4 files changed, 41 insertions(+), 4 deletions(-) diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Point.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Point.kt index eb8d2092b61..0cbb653a70d 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Point.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Point.kt @@ -1,5 +1,4 @@ package de.westnordost.streetcomplete.data.osm.geometry.polygons /* Simple 2D point for algorithm logic */ -class Point(val x: Double, val y: Double) { -} +class Point(val x: Double, val y: Double) diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Polygon.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Polygon.kt index 6fe3cf1db0b..3154b075d43 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Polygon.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Polygon.kt @@ -5,5 +5,4 @@ package de.westnordost.streetcomplete.data.osm.geometry.polygons * a list of points that represents the outer shape * (optional) a list composed of lists of points that each represents a hole in the polygon */ -class Polygon (val shape: List, val holes: List> = emptyList()) { -} +class Polygon (val shape: List, val holes: List> = emptyList()) diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt index e7e22affcad..1d0e579cb2f 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt @@ -1,2 +1,22 @@ package de.westnordost.streetcomplete.data.osm.geometry.polygons +object PolygonAlgorithms { + + /* Simple centroid algorithm */ + fun centroid(polygon: Polygon): Point { + val points = polygon.shape + var sumX = 0.0 + var sumY = 0.0 + for (p in points) { + sumX += p.x + sumY += p.y + } + return Point(sumX / points.size, sumY / points.size) + } + + /* Core of the problem : visual center (within the polygon) */ + fun polylabel(polygon: Polygon, precision: Double = 1.0): Point { + // TODO: Implement polylabel algorithm + return centroid(polygon) + } +} diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonUtils.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonUtils.kt index e7e22affcad..b6d9f45516f 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonUtils.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonUtils.kt @@ -1,2 +1,21 @@ package de.westnordost.streetcomplete.data.osm.geometry.polygons +import de.westnordost.streetcomplete.data.osm.mapdata.LatLon + +/* patch to bridge generic polygon logic to osm map logic */ + +object PolygonUtils { + + /* convert LatLon polygon to generic polygon */ + fun fromLatLon(shape: List, holes: List> = emptyList()): Polygon { + val outerPts = shape.map { Point(it.longitude, it.latitude) } + val holePts = holes.map { ring -> ring.map { Point (it.longitude, it.latitude) } } + return Polygon(outerPts, holePts) + } + + /* Provide a visual center (within the polygon) with the OSM LatLon logic */ + fun representativeCenter(polygon: Polygon): LatLon { + val center = PolygonAlgorithms.polylabel(polygon) + return LatLon(center.x, center.y) + } +} From c81961b9815fdcf1d4a403a6b9804bfc2da232f4 Mon Sep 17 00:00:00 2001 From: NariaReynhard Date: Mon, 29 Sep 2025 11:24:22 +0200 Subject: [PATCH 51/69] removed modifications made from other branches of the fork to keep this branch as close as possible from original SC repo --- README.adoc | 116 -------------- .../aerialway/AddAerialwayBicycleAccess.kt | 53 ------- .../AddAerialwayBicycleAccessForm.kt | 20 --- .../aerialway/AerialwayBicycleAccessAnswer.kt | 7 - .../AerialwayBicycleAccessAnswerItem.kt | 26 ---- .../AddBikeChargingStationCapacity.kt | 42 ----- .../AddBikeChargingStationCapacityForm.kt | 10 -- .../quests/bothway/AddAerialBothWay.kt | 50 ------ .../quests/bothway/AddAerialBothWayForm.kt | 33 ---- .../quests/bothway/AerialBothWayAnswer.kt | 7 - .../quests/bothway/AerialBothWayAnswerItem.kt | 28 ---- .../first_aid_kit/AddFirstAidKitLocation.kt | 38 ----- .../AddFirstAidKitLocationForm.kt | 28 ---- .../quests/parking_fee/AddBikeParkingFee.kt | 41 ----- .../parking_fee/AddMotorcycleParkingFee.kt | 36 ----- .../quests/parking_fee/AddParkingFee.kt | 35 ----- .../quests/parking_fee/AddParkingFeeForm.kt | 147 ------------------ .../quests/parking_fee/ParkingFeeAnswer.kt | 6 - .../AddScooterChargingStationCapacity.kt | 42 ----- .../AddScooterChargingStationCapacityForm.kt | 9 -- .../data/osm/geometry/polygons/Cell.kt | 20 +++ .../geometry/polygons/PolygonAlgorithms.kt | 12 +- docs/Devis.pdf | Bin 33691 -> 0 bytes docs/ODJ-CR/CR-Sprint-1-09-09-25.pdf | Bin 54296 -> 0 bytes docs/ODJ-CR/CR-Sprint-1-15-09-25.pdf | Bin 58808 -> 0 bytes docs/ODJ-CR/CR-Sprint-2-22-09-25.pdf | Bin 55402 -> 0 bytes docs/ODJ-CR/CR-TT-04-09-25.pdf | Bin 54522 -> 0 bytes docs/ODJ-CR/ODJ-Sprint-1-09-09-25.pdf | Bin 46210 -> 0 bytes docs/ODJ-CR/ODJ-Sprint-1-15-09-25.pdf | Bin 50385 -> 0 bytes docs/ODJ-CR/ODJ-Sprint-2-22-09-25.pdf | Bin 51669 -> 0 bytes docs/backlogs/sprint1.md | 14 -- docs/doc_install.md | 51 ------ docs/doc_tech.adoc | 63 -------- docs/doc_user.adoc | 95 ----------- 34 files changed, 30 insertions(+), 999 deletions(-) delete mode 100644 README.adoc delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccess.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccessForm.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswer.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswerItem.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacity.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacityForm.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWay.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWayForm.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswer.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswerItem.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocation.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocationForm.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddBikeParkingFee.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddMotorcycleParkingFee.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFee.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFeeForm.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/ParkingFeeAnswer.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacity.kt delete mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacityForm.kt create mode 100644 app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Cell.kt delete mode 100644 docs/Devis.pdf delete mode 100644 docs/ODJ-CR/CR-Sprint-1-09-09-25.pdf delete mode 100644 docs/ODJ-CR/CR-Sprint-1-15-09-25.pdf delete mode 100644 docs/ODJ-CR/CR-Sprint-2-22-09-25.pdf delete mode 100644 docs/ODJ-CR/CR-TT-04-09-25.pdf delete mode 100644 docs/ODJ-CR/ODJ-Sprint-1-09-09-25.pdf delete mode 100644 docs/ODJ-CR/ODJ-Sprint-1-15-09-25.pdf delete mode 100644 docs/ODJ-CR/ODJ-Sprint-2-22-09-25.pdf delete mode 100644 docs/backlogs/sprint1.md delete mode 100644 docs/doc_install.md delete mode 100644 docs/doc_tech.adoc delete mode 100644 docs/doc_user.adoc diff --git a/README.adoc b/README.adoc deleted file mode 100644 index 63956b03337..00000000000 --- a/README.adoc +++ /dev/null @@ -1,116 +0,0 @@ -= SAÉ 5.01 Dev AvancĂ© G1A-1 -:icons: font -:models: models -:experimental: -:incremental: -:numbered: -:toc: macro -:window: _blank -:correction!: - -// Useful definitions -:asciidoc: http://www.methods.co.nz/asciidoc[AsciiDoc] -:icongit: icon:git[] -:git: http://git-scm.com/[{icongit}] -:plantuml: https://plantuml.com/fr/[plantUML] -:vscode: https://code.visualstudio.com/[VS Code] - -ifndef::env-github[:icons: font] -// Specific to GitHub -ifdef::env-github[] -:correction: -:!toc-title: -:caution-caption: :fire: -:important-caption: :exclamation: -:note-caption: :paperclip: -:tip-caption: :bulb: -:warning-caption: :warning: -:icongit: Git -endif::[] - -// /!\ A MODIFIER !!! -:baseURL: github.com/HugoTHOLLON/StreetCompleteSAE_S5 - -_Last Update: 24/09/2025_ - -// Tags -image:https://img.shields.io/badge/License-GPLv3-blue.svg[License: GPL-3.0, link="https://www.gnu.org/licenses/gpl-3.0"] - -toc::[] - -== Equipe et rĂŽle - -Projet rĂ©alisĂ© par: - -|=== -| Nom | RĂŽle - -| https://github.com/HugoTHOLLON[Hugo Thollon] | Scrum Master -| https://github.com/NariaReynhard[Naria Savary] | Product Owner -| https://github.com/ElPoraz[Pablo Marquet] | DĂ©veloppeur -| https://github.com/RaphaLLamothe[RaphaĂ«l Lamothe] | DĂ©veloppeur -| https://github.com/NicodeH[Nicolas Ho] | DĂ©veloppeur -|=== - - -Tuteur rĂ©fĂ©rent de l'Ă©quipe: mailto:ludo.pradel@protonmail.com[Ludo Pradel] + -Tuteur client de l'Ă©quipe: mailto:yahn.formanczak@univ-tlse2.fr[Yahn Formanczak] - -== Besoin du client -Street Complete est une application Android ayant pour but d’amĂ©liorer la qualitĂ© des donnĂ©es d’Open Street Map avec des enquĂȘtes sur le terrain. -L’application fonctionne avec une partie de gamification et invite aux modifications sous forme de quĂȘtes thĂ©matiques. - -== Objectif - -Monter en compĂ©tence sur : - -- Le modĂšle de donnĂ©es OSM -- Kotlin et Kotlin Multiplatform -- Android Studio et l’environnement mobile - -RĂ©aliser des contributions au projet open source StreetComplete : - -- Ajout ou amĂ©lioration de quĂȘtes simples -- DĂ©but de migration d’élĂ©ments de l’UI vers *Compose Multiplatform* -- Participation non-code : documentation, traduction, collecte de donnĂ©es - -== RĂ©alisations - -Cette section regroupe tous les documents liĂ©s au projet : - -- link:docs/doc_tech.adoc[Documentation technique] -- link:docs/doc_user.adoc[Guide utilisateur] -- link:docs/doc_install.md[Guide d'installation] -- link:docs/Devis.pdf[Chiffrage du projet] -- link:https://github.com/users/HugoTHOLLON/projects/4/views/1[Backlog produit et board GitHub] - -== Travail d'Ă©quipe - -=== ODJ/CR - -|=== -| Sprint | Lien | Retour | Note -| N°0 - Semaine 36 | N/A | Pas de rĂ©union | [A remplir] -| N°1 - Semaine 37 Ă  38 | https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/ODJ-Sprint-1-09-09-25.pdf[Lien vers l'ODJ] - - https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-Sprint-1-09-09-25.pdf[Lien vers le CR] - - https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/ODJ-Sprint-1-15-09-25.pdf[Lien vers l'ODJ 2] - - https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-Sprint-1-15-09-25.pdf[Lien vers le CR 2] | [A remplir] | [A remplir] -| N°2 - Semaine 39 Ă  40 | https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/ODJ-Sprint-2-22-09-25.pdf[Lien vers l'ODJ] - - https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-Sprint-2-22-09-25.pdf[Lien vers le CR] | [A remplir] | [A remplir] -| N°3 - Semaine 41 Ă  43 | [A remplir] | [A remplir] | [A remplir] -| N°4 - Semaine 44 Ă  48 | [A remplir] | [A remplir] | [A remplir] -| N°5 - Semaine 2 Ă  4 | [A remplir] | [A remplir] | [A remplir] -|=== - -=== Registre de tĂ©lĂ©travail -- **03/09/2024** : de 14h15 Ă  17h15 ↮ -- **04/09/2024** : de 9h30 Ă  12h30 → https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-TT-04-09-25.pdf[Lien vers le CR] -- **10/09/2024** : de 9h30 Ă  17h15 → Pas de rĂ©union, avancement de chacun de son cĂŽtĂ© -- **18/09/2024** : de 9h30 Ă  12h30 → Pas de rĂ©union car rĂ©union de sprint Ă  venir trĂšs bientĂŽt -- **23/09/2024** : de 14h15 Ă  17h15 ↮ -- **24/09/2024** : de 9h30 Ă  17h15 ↮ -- **25/09/2024** : de 9h30 Ă  12h30 → https://github.com/HugoTHOLLON/StreetCompleteSAE_S5/tree/master/docs/ODJ-CR/CR-TT-25-09-25.pdf[Lien vers le CR - A VENIR] diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccess.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccess.kt deleted file mode 100644 index e1a209b3d47..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccess.kt +++ /dev/null @@ -1,53 +0,0 @@ -package de.westnordost.streetcomplete.quests.aerialway - -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.data.elementfilter.toElementFilterExpression -import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry -import de.westnordost.streetcomplete.data.osm.mapdata.Element -import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry -import de.westnordost.streetcomplete.data.osm.mapdata.Way -import de.westnordost.streetcomplete.data.osm.mapdata.filter -import de.westnordost.streetcomplete.data.osm.osmquests.OsmElementQuestType -import de.westnordost.streetcomplete.data.quest.AndroidQuest -import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.BICYCLIST -import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.RARE -import de.westnordost.streetcomplete.osm.Tags -import de.westnordost.streetcomplete.quests.aerialway.AerialwayBicycleAccessAnswer.YES -import de.westnordost.streetcomplete.quests.aerialway.AerialwayBicycleAccessAnswer.SUMMER -import de.westnordost.streetcomplete.quests.aerialway.AerialwayBicycleAccessAnswer.NO - -class AddAerialwayBicycleAccess : OsmElementQuestType, AndroidQuest { - - private val filter by lazy { - "ways, relations with aerialway and !bicycle".toElementFilterExpression() - } - override val changesetComment = "Specify aerialway access for bicycles" - override val wikiLink = "Tag:aerialway" - override val icon = R.drawable.ic_quest_ferry_pedestrian - override val hasMarkersAtEnds = true - override val achievements = listOf(RARE, BICYCLIST) - - override fun getTitle(tags: Map) = R.string.quest_aerialway_bicycle_title - - override fun createForm() = AddAerialwayBicycleAccessForm() - - override fun applyAnswerTo(answer: AerialwayBicycleAccessAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { - tags["bicycle"] = when (answer) { - YES -> "yes" - SUMMER -> "-1" - NO -> "no" - } - } - - override fun getApplicableElements(mapData: MapDataWithGeometry): Iterable { - return mapData - .filter(filter) - .asIterable() - } - - override fun isApplicableTo(element: Element): Boolean? { - if (!filter.matches(element)) return false - if (element is Way) return null - return true - } -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccessForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccessForm.kt deleted file mode 100644 index 8fa6eadca00..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AddAerialwayBicycleAccessForm.kt +++ /dev/null @@ -1,20 +0,0 @@ -package de.westnordost.streetcomplete.quests.aerialway - -import android.os.Bundle -import de.westnordost.streetcomplete.quests.AImageListQuestForm - -class AddAerialwayBicycleAccessForm : AImageListQuestForm() { - - override val items get() = - AerialwayBicycleAccessAnswer.entries.map { it.asItem(requireContext()) } - - override val itemsPerRow = 3 - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - } - - override fun onClickOk(selectedItems: List) { - applyAnswer(selectedItems.first()) - } -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswer.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswer.kt deleted file mode 100644 index e8a6f3ad4a3..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswer.kt +++ /dev/null @@ -1,7 +0,0 @@ -package de.westnordost.streetcomplete.quests.aerialway - -enum class AerialwayBicycleAccessAnswer { - YES, - SUMMER, - NO -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswerItem.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswerItem.kt deleted file mode 100644 index 92f2e155f72..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/aerialway/AerialwayBicycleAccessAnswerItem.kt +++ /dev/null @@ -1,26 +0,0 @@ -package de.westnordost.streetcomplete.quests.aerialway - -import android.content.Context -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.view.DrawableImage -import de.westnordost.streetcomplete.view.ResText -import de.westnordost.streetcomplete.view.RotatedCircleDrawable -import de.westnordost.streetcomplete.view.image_select.DisplayItem -import de.westnordost.streetcomplete.view.image_select.Item2 - -fun AerialwayBicycleAccessAnswer.asItem(context: Context): DisplayItem { - val drawable = RotatedCircleDrawable(context.getDrawable(iconResId)!!) - return Item2(this, DrawableImage(drawable), ResText(titleResId)) -} - -private val AerialwayBicycleAccessAnswer.titleResId: Int get() = when (this) { - AerialwayBicycleAccessAnswer.YES -> R.string.quest_aerialway_bicycle_yes - AerialwayBicycleAccessAnswer.SUMMER -> R.string.quest_aerialway_bicycle_summer - AerialwayBicycleAccessAnswer.NO -> R.string.quest_aerialway_bicycle_no -} - -private val AerialwayBicycleAccessAnswer.iconResId: Int get() = when (this) { - AerialwayBicycleAccessAnswer.YES -> R.drawable.ic_oneway_yes - AerialwayBicycleAccessAnswer.SUMMER -> R.drawable.ic_oneway_yes_reverse - AerialwayBicycleAccessAnswer.NO -> R.drawable.ic_oneway_no -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacity.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacity.kt deleted file mode 100644 index dfb960d172a..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacity.kt +++ /dev/null @@ -1,42 +0,0 @@ -package de.westnordost.streetcomplete.quests.bike_charging_station_capacity - -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry -import de.westnordost.streetcomplete.data.osm.mapdata.Element -import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry -import de.westnordost.streetcomplete.data.osm.mapdata.filter -import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType -import de.westnordost.streetcomplete.data.quest.AndroidQuest -import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.BICYCLIST -import de.westnordost.streetcomplete.osm.Tags -import de.westnordost.streetcomplete.osm.updateWithCheckDate - -class AddBikeChargingStationCapacity : OsmFilterQuestType(), AndroidQuest { - - override val elementFilter = """ - nodes, ways with - amenity = charging_station - and bicycle ~ yes|designated - and access !~ private|no - and ( - !capacity - or capacity older today -8 years - ) - """ - override val changesetComment = "Specify bicycle charging stations capacities" - override val wikiLink = "Tag:amenity=charging_station" - override val icon = R.drawable.ic_quest_car_charger_capacity // using the car charger icon because the logo also works for bikes - override val isDeleteElementEnabled = true - override val achievements = listOf(BICYCLIST) - - override fun getTitle(tags: Map) = R.string.quest_bicycle_charging_station_capacity_title - - override fun getHighlightedElements(element: Element, getMapData: () -> MapDataWithGeometry) = - getMapData().filter("nodes, ways with amenity = charging_station and bicycle ~ yes|designated") - - override fun createForm() = AddBikeChargingStationCapacityForm() - - override fun applyAnswerTo(answer: Int, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { - tags.updateWithCheckDate("capacity", answer.toString()) - } -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacityForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacityForm.kt deleted file mode 100644 index b4bcea3b075..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bike_charging_station_capacity/AddBikeChargingStationCapacityForm.kt +++ /dev/null @@ -1,10 +0,0 @@ -package de.westnordost.streetcomplete.quests.bike_charging_station_capacity - -import de.westnordost.streetcomplete.quests.AAddCountInput -import de.westnordost.streetcomplete.resources.Res -import de.westnordost.streetcomplete.resources.count_bicycle -import de.westnordost.streetcomplete.resources.count_electric_car - -class AddBikeChargingStationCapacityForm : AAddCountInput() { - override val icon = Res.drawable.count_bicycle -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWay.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWay.kt deleted file mode 100644 index 0f29c467cc9..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWay.kt +++ /dev/null @@ -1,50 +0,0 @@ -package de.westnordost.streetcomplete.quests.bothway - -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.data.elementfilter.toElementFilterExpression -import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry -import de.westnordost.streetcomplete.data.osm.mapdata.Element -import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry -import de.westnordost.streetcomplete.data.osm.osmquests.OsmElementQuestType -import de.westnordost.streetcomplete.data.quest.AndroidQuest -import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.PEDESTRIAN -import de.westnordost.streetcomplete.osm.Tags -import de.westnordost.streetcomplete.quests.bothway.AerialBothWayAnswer.BOTHWAY -import de.westnordost.streetcomplete.quests.bothway.AerialBothWayAnswer.UPWARD -import de.westnordost.streetcomplete.quests.bothway.AerialBothWayAnswer.DOWNWARD - - -class AddAerialBothWay : OsmElementQuestType, AndroidQuest { - - private val elementFilter by lazy { """ - ways with aerialway and aerialway !~ cable_car|zipline and !oneway - """.toElementFilterExpression() } - - override val changesetComment = "Specify whether aerial ways can be used both ways" - override val wikiLink = "Key:bothway" - override val icon = R.drawable.ic_quest_oneway - override val hasMarkersAtEnds = true - override val achievements = listOf(PEDESTRIAN) - - override val hint = R.string.quest_arrow_tutorial - - override fun getTitle(tags: Map) = R.string.quest_bothway_title - - override fun getApplicableElements(mapData: MapDataWithGeometry): Iterable { - return mapData.ways.filter { elementFilter.matches(it) } - } - - override fun isApplicableTo(element: Element): Boolean? { - return elementFilter.matches(element) - } - - override fun createForm() = AddAerialBothWayForm() - - override fun applyAnswerTo(answer: AerialBothWayAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { - tags["oneway"] = when (answer) { - UPWARD -> "yes" - DOWNWARD -> "-1" - BOTHWAY -> "no" - } - } -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWayForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWayForm.kt deleted file mode 100644 index d14d037d1a3..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AddAerialBothWayForm.kt +++ /dev/null @@ -1,33 +0,0 @@ -package de.westnordost.streetcomplete.quests.bothway - -import android.os.Bundle -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.data.osm.geometry.ElementPolylinesGeometry -import de.westnordost.streetcomplete.quests.AImageListQuestForm -import de.westnordost.streetcomplete.util.math.getOrientationAtCenterLineInDegrees - -class AddAerialBothWayForm : AImageListQuestForm() { - - override val items get() = - AerialBothWayAnswer.entries.map { it.asItem(requireContext(), wayRotation - mapRotation) } - - override val itemsPerRow = 3 - - private var mapRotation: Float = 0f - private var wayRotation: Float = 0f - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - wayRotation = (geometry as ElementPolylinesGeometry).getOrientationAtCenterLineInDegrees() - imageSelector.cellLayoutId = R.layout.cell_icon_select_with_label_below - } - - override fun onMapOrientation(rotation: Double, tilt: Double) { - mapRotation = rotation.toFloat() - imageSelector.items = items - } - - override fun onClickOk(selectedItems: List) { - applyAnswer(selectedItems.first()) - } -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswer.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswer.kt deleted file mode 100644 index 247416a415c..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswer.kt +++ /dev/null @@ -1,7 +0,0 @@ -package de.westnordost.streetcomplete.quests.bothway - -enum class AerialBothWayAnswer { - UPWARD, - DOWNWARD, - BOTHWAY -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswerItem.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswerItem.kt deleted file mode 100644 index 08abf8474dd..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/bothway/AerialBothWayAnswerItem.kt +++ /dev/null @@ -1,28 +0,0 @@ -package de.westnordost.streetcomplete.quests.bothway - -import android.content.Context -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.view.DrawableImage -import de.westnordost.streetcomplete.view.ResText -import de.westnordost.streetcomplete.view.RotatedCircleDrawable -import de.westnordost.streetcomplete.view.image_select.DisplayItem -import de.westnordost.streetcomplete.view.image_select.Item2 - -fun AerialBothWayAnswer.asItem(context: Context, rotation: Float): DisplayItem { - val drawable = RotatedCircleDrawable(context.getDrawable(iconResId)!!) - drawable.rotation = rotation - return Item2(this, DrawableImage(drawable), ResText(titleResId)) -} - -private val AerialBothWayAnswer.titleResId: Int get() = when (this) { - AerialBothWayAnswer.UPWARD -> R.string.quest_bothway_answer_upwards - AerialBothWayAnswer.DOWNWARD -> R.string.quest_bothway_answer_downwards - AerialBothWayAnswer.BOTHWAY -> R.string.quest_bothway_answer_bothway -} - -//kept oneway icons, feel free to update it -private val AerialBothWayAnswer.iconResId: Int get() = when (this) { - AerialBothWayAnswer.UPWARD -> R.drawable.ic_oneway_yes - AerialBothWayAnswer.DOWNWARD -> R.drawable.ic_oneway_yes_reverse - AerialBothWayAnswer.BOTHWAY -> R.drawable.ic_oneway_no -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocation.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocation.kt deleted file mode 100644 index 541aaad7c83..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocation.kt +++ /dev/null @@ -1,38 +0,0 @@ -package de.westnordost.streetcomplete.quests.first_aid_kit - -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry -import de.westnordost.streetcomplete.data.osm.mapdata.Element -import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry -import de.westnordost.streetcomplete.data.osm.mapdata.filter -import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType -import de.westnordost.streetcomplete.data.quest.AndroidQuest -import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.LIFESAVER -import de.westnordost.streetcomplete.osm.Tags - -class AddFirstAidKitLocation : OsmFilterQuestType(), AndroidQuest { - - override val elementFilter = """ - nodes with - emergency = first_aid_kit - and !description and !first_aid_kit:description - and access !~ private|no - """ - override val changesetComment = "Specify first aid kit location" - override val wikiLink = "Tag:emergency=first_aid_kit" - //override val icon = R.drawable.ic_quest_defibrillator // Temporary icon - override val icon = R.drawable.ic_quest_first_aid_kit - override val isDeleteElementEnabled = false - override val achievements = listOf(LIFESAVER) - - override fun getTitle(tags: Map) = R.string.quest_first_aid_kit_location - - override fun getHighlightedElements(element: Element, getMapData: () -> MapDataWithGeometry) = - getMapData().filter("nodes with emergency = first_aid_kit") - - override fun createForm() = AddFirstAidKitLocationForm() - - override fun applyAnswerTo(answer: String, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { - tags["first_aid_kit:description"] = answer - } -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocationForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocationForm.kt deleted file mode 100644 index 92e9b3b36fc..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/first_aid_kit/AddFirstAidKitLocationForm.kt +++ /dev/null @@ -1,28 +0,0 @@ -package de.westnordost.streetcomplete.quests.first_aid_kit - -import android.os.Bundle -import android.view.View -import androidx.core.widget.doAfterTextChanged -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.databinding.QuestLocationBinding -import de.westnordost.streetcomplete.quests.AbstractOsmQuestForm -import de.westnordost.streetcomplete.util.ktx.nonBlankTextOrNull - -class AddFirstAidKitLocationForm : AbstractOsmQuestForm() { - - override val contentLayoutResId = R.layout.quest_location - private val binding by contentViewBinding(QuestLocationBinding::bind) - - private val location get() = binding.locationInput.nonBlankTextOrNull - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - binding.locationInput.doAfterTextChanged { checkIsFormComplete() } - } - - override fun onClickOk() { - applyAnswer(location!!) - } - - override fun isFormComplete() = location != null -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddBikeParkingFee.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddBikeParkingFee.kt deleted file mode 100644 index 3a58855e684..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddBikeParkingFee.kt +++ /dev/null @@ -1,41 +0,0 @@ -package de.westnordost.streetcomplete.quests.parking_fee - -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry -import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType -import de.westnordost.streetcomplete.data.quest.AndroidQuest -import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.BICYCLIST -import de.westnordost.streetcomplete.osm.Tags -import de.westnordost.streetcomplete.osm.fee.applyTo -import de.westnordost.streetcomplete.osm.maxstay.applyTo - -class AddBikeParkingFee : OsmFilterQuestType(), AndroidQuest { - - // element selection logic by @DerDings in #2507 - override val elementFilter = """ - nodes, ways, relations with amenity = bicycle_parking - and access ~ yes|customers|public - and ( - name - or bicycle_parking ~ building|lockers|shed - or capacity >= 100 - ) - and ( - !fee and !fee:conditional - or fee older today -8 years - ) - """ - override val changesetComment = "Specify bicycle parking fees" - override val wikiLink = "Tag:amenity=bicycle_parking" - override val icon = R.drawable.ic_quest_bicycle_parking_fee - override val achievements = listOf(BICYCLIST) - - override fun getTitle(tags: Map) = R.string.quest_bicycle_parking_fee_title - - override fun createForm() = AddParkingFeeForm() - - override fun applyAnswerTo(answer: ParkingFeeAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { - answer.fee.applyTo(tags) - answer.maxstay?.applyTo(tags) - } -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddMotorcycleParkingFee.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddMotorcycleParkingFee.kt deleted file mode 100644 index 09dc29ee8fd..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddMotorcycleParkingFee.kt +++ /dev/null @@ -1,36 +0,0 @@ -package de.westnordost.streetcomplete.quests.parking_fee - -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry -import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType -import de.westnordost.streetcomplete.data.quest.AndroidQuest -import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.CAR -import de.westnordost.streetcomplete.osm.Tags -import de.westnordost.streetcomplete.osm.fee.applyTo -import de.westnordost.streetcomplete.osm.maxstay.applyTo - -class AddMotorcycleParkingFee : OsmFilterQuestType(), AndroidQuest { - - // element selection logic by @DerDings in #2507 - override val elementFilter = """ - nodes, ways, relations with amenity = motorcycle_parking - and access ~ yes|customers|public - and ( - !fee and !fee:conditional - or fee older today -8 years - ) - """ - override val changesetComment = "Specify motorcycle parking fees" - override val wikiLink = "Tag:amenity=motorcycle_parking" - override val icon = R.drawable.ic_quest_motorcycle_parking_fee - override val achievements = listOf(CAR) - - override fun getTitle(tags: Map) = R.string.quest_motorcycle_parking_fee_title - - override fun createForm() = AddParkingFeeForm() - - override fun applyAnswerTo(answer: ParkingFeeAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { - answer.fee.applyTo(tags) - answer.maxstay?.applyTo(tags) - } -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFee.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFee.kt deleted file mode 100644 index 1bb732669d0..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFee.kt +++ /dev/null @@ -1,35 +0,0 @@ -package de.westnordost.streetcomplete.quests.parking_fee - -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry -import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType -import de.westnordost.streetcomplete.data.quest.AndroidQuest -import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.CAR -import de.westnordost.streetcomplete.osm.Tags -import de.westnordost.streetcomplete.osm.fee.applyTo -import de.westnordost.streetcomplete.osm.maxstay.applyTo - -class AddParkingFee : OsmFilterQuestType(), AndroidQuest { - - override val elementFilter = """ - nodes, ways, relations with amenity = parking - and access ~ yes|customers|public - and ( - !fee and !fee:conditional - or fee older today -8 years - ) - """ - override val changesetComment = "Specify whether parking requires a fee" - override val wikiLink = "Tag:amenity=parking" - override val icon = R.drawable.ic_quest_parking_fee - override val achievements = listOf(CAR) - - override fun getTitle(tags: Map) = R.string.quest_parking_fee_title - - override fun createForm() = AddParkingFeeForm() - - override fun applyAnswerTo(answer: ParkingFeeAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { - answer.fee.applyTo(tags) - answer.maxstay?.applyTo(tags) - } -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFeeForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFeeForm.kt deleted file mode 100644 index 6a30e904700..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFeeForm.kt +++ /dev/null @@ -1,147 +0,0 @@ -package de.westnordost.streetcomplete.quests.parking_fee - -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.databinding.QuestFeeHoursBinding -import de.westnordost.streetcomplete.databinding.QuestMaxstayBinding -import de.westnordost.streetcomplete.osm.fee.Fee -import de.westnordost.streetcomplete.osm.maxstay.MaxStay -import de.westnordost.streetcomplete.osm.opening_hours.parser.toOpeningHours -import de.westnordost.streetcomplete.quests.AbstractOsmQuestForm -import de.westnordost.streetcomplete.quests.AnswerItem -import de.westnordost.streetcomplete.quests.parking_fee.AddParkingFeeForm.Mode.FEE_AT_HOURS -import de.westnordost.streetcomplete.quests.parking_fee.AddParkingFeeForm.Mode.FEE_YES_NO -import de.westnordost.streetcomplete.quests.parking_fee.AddParkingFeeForm.Mode.MAX_STAY -import de.westnordost.streetcomplete.view.controller.DurationInputViewController -import de.westnordost.streetcomplete.view.controller.DurationUnit -import de.westnordost.streetcomplete.view.controller.TimeRestriction.AT_ANY_TIME -import de.westnordost.streetcomplete.view.controller.TimeRestriction.EXCEPT_AT_HOURS -import de.westnordost.streetcomplete.view.controller.TimeRestriction.ONLY_AT_HOURS -import de.westnordost.streetcomplete.view.controller.TimeRestrictionSelectViewController - -class AddParkingFeeForm : AbstractOsmQuestForm() { - - private var feeAtHoursSelect: TimeRestrictionSelectViewController? = null - - private var maxstayDurationInput: DurationInputViewController? = null - private var maxstayAtHoursSelect: TimeRestrictionSelectViewController? = null - - override val buttonPanelAnswers get() = - if (mode == FEE_YES_NO) { - listOf( - AnswerItem(R.string.quest_generic_hasFeature_no) { applyAnswer(ParkingFeeAnswer(Fee.No)) }, - AnswerItem(R.string.quest_generic_hasFeature_yes) { applyAnswer(ParkingFeeAnswer(Fee.Yes)) } - ) - } else { - emptyList() - } - - override val otherAnswers = listOf( - AnswerItem(R.string.quest_fee_answer_hours) { mode = FEE_AT_HOURS }, - AnswerItem(R.string.quest_fee_answer_no_but_maxstay) { mode = MAX_STAY }, - ) - - private var mode: Mode = FEE_YES_NO - set(value) { - if (field == value) return - field = value - updateContentView() - updateButtonPanel() - } - - private fun updateContentView() { - clearViewControllers() - - if (mode == FEE_AT_HOURS) { - val binding = QuestFeeHoursBinding.bind(setContentView(R.layout.quest_fee_hours)) - - feeAtHoursSelect = TimeRestrictionSelectViewController( - binding.timeRestrictionSelect.selectAtHours, - binding.timeRestrictionSelect.openingHoursList, - binding.timeRestrictionSelect.addTimesButton - ).also { - it.firstDayOfWorkweek = countryInfo.firstDayOfWorkweek - it.regularShoppingDays = countryInfo.regularShoppingDays - it.locale = countryInfo.userPreferredLocale - it.onInputChanged = { checkIsFormComplete() } - // user already answered that it depends on the time, so don't show the "at any time" option - it.selectableTimeRestrictions = listOf(ONLY_AT_HOURS, EXCEPT_AT_HOURS) - } - } else if (mode == MAX_STAY) { - val binding = QuestMaxstayBinding.bind(setContentView(R.layout.quest_maxstay)) - - maxstayDurationInput = DurationInputViewController( - binding.durationInput.unitSelect, - binding.durationInput.input - ).also { - it.onInputChanged = { checkIsFormComplete() } - } - maxstayAtHoursSelect = TimeRestrictionSelectViewController( - binding.timeRestrictionSelect.selectAtHours, - binding.timeRestrictionSelect.openingHoursList, - binding.timeRestrictionSelect.addTimesButton - ).also { - it.firstDayOfWorkweek = countryInfo.firstDayOfWorkweek - it.regularShoppingDays = countryInfo.regularShoppingDays - it.locale = countryInfo.userPreferredLocale - it.onInputChanged = { checkIsFormComplete() } - } - } - } - - private fun clearViewControllers() { - feeAtHoursSelect = null - maxstayAtHoursSelect = null - maxstayDurationInput = null - } - - override fun onDestroyView() { - super.onDestroyView() - clearViewControllers() - } - - override fun onClickOk() { - when (mode) { - FEE_AT_HOURS -> { - val hours = feeAtHoursSelect!!.times.toOpeningHours() - val fee = when (feeAtHoursSelect!!.timeRestriction) { - AT_ANY_TIME -> Fee.Yes - ONLY_AT_HOURS -> Fee.During(hours) - EXCEPT_AT_HOURS -> Fee.ExceptDuring(hours) - } - applyAnswer(ParkingFeeAnswer(fee)) - } - MAX_STAY -> { - val duration = MaxStay.Duration( - maxstayDurationInput!!.durationValue, - when (maxstayDurationInput!!.durationUnit) { - DurationUnit.MINUTES -> MaxStay.Unit.MINUTES - DurationUnit.HOURS -> MaxStay.Unit.HOURS - DurationUnit.DAYS -> MaxStay.Unit.DAYS - } - ) - val hours = maxstayAtHoursSelect!!.times.toOpeningHours() - val maxstay = when (maxstayAtHoursSelect!!.timeRestriction) { - AT_ANY_TIME -> duration - ONLY_AT_HOURS -> MaxStay.During(duration, hours) - EXCEPT_AT_HOURS -> MaxStay.ExceptDuring(duration, hours) - } - applyAnswer(ParkingFeeAnswer(Fee.No, maxstay)) - } - else -> {} - } - } - - override fun isRejectingClose() = when (mode) { - FEE_AT_HOURS -> feeAtHoursSelect!!.isComplete - MAX_STAY -> maxstayAtHoursSelect!!.isComplete || maxstayDurationInput!!.durationValue > 0.0 - else -> false - } - - override fun isFormComplete() = when (mode) { - FEE_AT_HOURS -> feeAtHoursSelect!!.isComplete - MAX_STAY -> maxstayAtHoursSelect!!.isComplete && maxstayDurationInput!!.durationValue > 0.0 - else -> false - } - - private enum class Mode { FEE_YES_NO, FEE_AT_HOURS, MAX_STAY } -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/ParkingFeeAnswer.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/ParkingFeeAnswer.kt deleted file mode 100644 index 32ee622a41d..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/ParkingFeeAnswer.kt +++ /dev/null @@ -1,6 +0,0 @@ -package de.westnordost.streetcomplete.quests.parking_fee - -import de.westnordost.streetcomplete.osm.fee.Fee -import de.westnordost.streetcomplete.osm.maxstay.MaxStay - -data class ParkingFeeAnswer(val fee: Fee, val maxstay: MaxStay? = null) diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacity.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacity.kt deleted file mode 100644 index a8a825fa4f8..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacity.kt +++ /dev/null @@ -1,42 +0,0 @@ -package de.westnordost.streetcomplete.quests.scooter_charging_station_capacity - -import de.westnordost.streetcomplete.R -import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry -import de.westnordost.streetcomplete.data.osm.mapdata.Element -import de.westnordost.streetcomplete.data.osm.mapdata.MapDataWithGeometry -import de.westnordost.streetcomplete.data.osm.mapdata.filter -import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType -import de.westnordost.streetcomplete.data.quest.AndroidQuest -import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.BICYCLIST -import de.westnordost.streetcomplete.osm.Tags -import de.westnordost.streetcomplete.osm.updateWithCheckDate - -class AddScooterChargingStationCapacity : OsmFilterQuestType(), AndroidQuest { - - override val elementFilter = """ - nodes, ways with - amenity = charging_station - and scooter ~ yes|designated - and access !~ private|no - and ( - !capacity - or capacity older today -8 years - ) - """ - override val changesetComment = "Specify scooter charging stations capacities" - override val wikiLink = "Tag:amenity=charging_station" - override val icon = R.drawable.ic_quest_car_charger_capacity // using the car charger icon because the logo also works for scooters - override val isDeleteElementEnabled = true - override val achievements = listOf(BICYCLIST) // no scooter achievement - - override fun getTitle(tags: Map) = R.string.quest_scooter_charging_station_capacity_title - - override fun getHighlightedElements(element: Element, getMapData: () -> MapDataWithGeometry) = - getMapData().filter("nodes, ways with amenity = charging_station and scooter ~ yes|designated") - - override fun createForm() = AddScooterChargingStationCapacityForm() - - override fun applyAnswerTo(answer: Int, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { - tags.updateWithCheckDate("capacity", answer.toString()) - } -} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacityForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacityForm.kt deleted file mode 100644 index 0d2c723b18e..00000000000 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/scooter_charging_station_capacity/AddScooterChargingStationCapacityForm.kt +++ /dev/null @@ -1,9 +0,0 @@ -package de.westnordost.streetcomplete.quests.scooter_charging_station_capacity - -import de.westnordost.streetcomplete.quests.AAddCountInput -import de.westnordost.streetcomplete.resources.Res -import de.westnordost.streetcomplete.resources.count_bicycle - -class AddScooterChargingStationCapacityForm : AAddCountInput() { - override val icon = Res.drawable.count_bicycle // TODO add a scooter icon (res/drawable/ic_smoothness_scooter.xml) could work but it needs to be copied in commomMain, right know it can be found in androidMain. -} diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Cell.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Cell.kt new file mode 100644 index 00000000000..900c1a1d7a7 --- /dev/null +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Cell.kt @@ -0,0 +1,20 @@ +package de.westnordost.streetcomplete.data.osm.geometry.polygons + +import kotlin.math.sqrt + +class Cell( + val centerX: Double, + val centerY: Double, + val half: Double, // half of the cell size + val distance: Double, // distance between cell center and polygon. Positive if inside +) : Comparable { + + /* max distance to expect */ + val max: Double = distance + half * SQRT2 + + override fun compareTo(other: Cell): Int = other.max.compareTo(this.max) + + companion object { + private val SQRT2 = sqrt(2.0) + } +} diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt index 1d0e579cb2f..1e09eb83164 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt @@ -16,7 +16,15 @@ object PolygonAlgorithms { /* Core of the problem : visual center (within the polygon) */ fun polylabel(polygon: Polygon, precision: Double = 1.0): Point { - // TODO: Implement polylabel algorithm - return centroid(polygon) + var minX = polygon.shape.first().x + var maxX = polygon.shape.first().x + var minY = polygon.shape.first().y + var maxY = polygon.shape.first().y + for (pts in polygon.shape) { + if (pts.x < minX) minX = pts.x + if (pts.x > maxX) maxX = pts.x + if (pts.y < minY) minY = pts.y + if (pts.y > maxY) maxY = pts.y + } } } diff --git a/docs/Devis.pdf b/docs/Devis.pdf deleted file mode 100644 index 4dd57914f200d55a40ac03586eb858a808354901..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 33691 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 diff --git a/docs/ODJ-CR/CR-Sprint-2-22-09-25.pdf b/docs/ODJ-CR/CR-Sprint-2-22-09-25.pdf deleted file mode 100644 index 2791757bb69ffcd782f4e752fd999b539a88beed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55402 zcmce-1#le8nl)&lWig{|F=LCFnVFd-i@{=MvY0JqW@ct)W+sbmfwgVv-v7b8*qPnf zorsREs#NBw%yZ87WtKXNSXNM&8bHGcO?USrd2kwvp2K0!lV6Dn^soO#K<0x9#~x-npVNV&e6a@(ay+7-rCv$kKwIUO3&_# zn3b_L9^>1!q@I-t9+|NnwXi%n5YEiV$;eLD&dAuv&dACD2*&hUjhh?V$jb0fADDsH z|EDiz4i-juoQw?2!pwp!bS#X_O!Rat^vq1mLd=XTz;oumN`%;0{*j}}*F)=U# z7=eFfVqjq6hNcy;GtzUgw!CbpNO#VdUauZD(i?gy9o$;Zqk=RX1j(;^z~R zQ8H4Hwy-jxq5}f)IXamB>5`(Tj3l0@l8BO!0y*?QNch9>{~_U3kXPoRX(h~n$Qmqv zIMV`-%-Ye)0T1v`4gZMnuMPiIB_INx2J2tVW%Ym>yb6fN_NVBNzJHfU8#y}whl0mQ z_fP15B>fxxkIqJhct8&r0j=O@Z)0TOV2@|4XJK#jPc8na`*({sXZ;rkK+_7E+1ps? zxd>VtD835*iun&R{*3ltG5(MNO)GC?Z|!LJ$3uU73l!Br!N>tmgBIv*JX%Fy|M6(W zEP*xo|2hi%brb_KC*yw{H@B02YB-^ttt=;@W;P@+5t}huR8rJ@^u>nh71-5bkN@R}*_)DNSHQ!{i$D;#=tDe3+9<9RP z()}Hq{1!$=hW|ajqMe!Le_u<$&f4a`uO)B&$|tZ-d{$Q0z&>ke{gV;?4Ee|8 zg^?xDKX|l2^&KsNV+D@n?^FV`D*dZE{|xkph`)g(%`DCS+z40+NS3st3?BU}$#@KJj$n90VR%Dfctc@$Lt%JB zVR%Dfctc@$Lt%JBVSGbjd_!S;Lt%VFVSGbjd_!S;Lt%VFVSGbjd_!S+Lt%PDVR}Ph zdP8A)Lt%PDVR}PhdP8A)Lt%PDVSYpTn}WZ_{#SQj|AzPX!2TN1Ut{>I^M8T8-c}3x zpVfGcp1en%2Y~Sp3@bpX~4&UVpcfG_o>rFa<^;>)+GQU%~h% zvFJOz=09O;JD^YgzX^HfSK?mdkpIosz)sWC1DR)F0sxI9VrT7WgU9^JD=>7;EF6Gy z1+B0JFkJ{58CV;>COCTs;Iv{12krcwa+iLVfti7Yu7R#WmhK%tQF(e*NI*zl(T6A_ zV_=x;8R`{AeILm)F|#r(en&VaIf~}HS_OrkXMfa!Lz#;KJQyaBFD@=Fk+U|j+WSxg z7yxp>2}prVd{2A_de`pOaUb+u>g~sHxIdHR+l~L8E?<+=zY__d|6d~V)h+)`(aOVFLmw#OPU%32}WM3`#|FbDygY4h91kkb2;Q^O1{~+@E!M)>?QHXbDCLc-u6P15L z?BA)RWBcEs63E$~Irz`K`;Yhr(6Isjg-VvcQq}(?zWCsXC|Cdav>6;t= zS0-h#aDM(LCjX?N|H9<|Ql?~i%i;gZBr9;e!_2_+e>};T>8(!{U=xb8;@+PEdMu_d|f<3)2f&mzD`cSJRoXh zW?~9l$I$`L1*|Qs?G$YE42*zFPB8%iem#5Oa+u|HY5`KCAf;#j1&`&gIfNg$Op!IR z6R@_lv9HBzSjoK@X9{q^w8$a*g!zL^N+5j)WWjT|F5~NpOiLoKt*#?=y3MJ{+PC-L^J>QXQ0}^I zIXow=xb%m#;Fia_@uf61HGL*m^W6rSITQJ1Lp*tK2LP~c3qI*W|R+VKwhTIH}WE{9d43wOn7Dv9&a^!Qn^WLsx|B7vs60nEg3x@-a)c6}Odz z3e~)x$4U{B!R1Q1tz)egX6XApFKgyU6Rz?1Q+-aE7rwZelYmUVWDtF3@31zTRge;o ztwuDSQWfhe)OOS@=dsc{y{<4mgZ{@ZoW~2>JVogB>5g>-XSch7x)i@^F@>=HjW*}e z_lV=a81a1f-h&=A>9Q$zUC>Xmea15tHIwT_EYJB$S;%~1OX)dl3adQfdi~x3&AuhR zJ_r;1Hhlw^Hojd$oL5LScmhEzFAMfS>^P=Fmv_d9Ym+98?k6v6TcI-Vha!ww+@Xpa zOXo&X0+3+IATd9Dy=-vRU;F{8Gd@+SZ#bDD?*j+ zu9Q8PTo_aM(tzVq_CPH!0W}3igb5vHvxiTHQP_^A-qg7;Rf7mZv?MQ{6Aa?B)B~Ec z#U6OfZqbLJ@uSChM9&YuQ@(WF3f1Hrw%vnD(My?1=!blTZStQ^D}gdN`CoDNIe8`E zA@kOadf(&m^FC<(SbDD9xGmg}qWmGU-6F_W3{~wd7G6sPhcOdr`4g$rh|RSABXcss z@vTqHP~KzA*n#A-5^xnaWsM{ymwwqZ?V*`paIB=&(~r zyLC+i?mW5XTCHiQ5P7)i$+=6Kri)Zu?LKGVu3)jf2+p%G=(@M zA~?HK2&z*sIh8dPg0yu(1TOp&0IkBoNNDJ|Xn~(QXA0U#Vccd!V4a}Lp^ZH(`$>=W zH;gy59_vq97D<{7%8PTl_q-ivc+1|}pr}WUP~t=xdOG3A3@^cxQ<>4dnvsVIs8ksY zvqlK_$QC&9*F-eaA#nZAt}`HCJfG3$6S(ScXk`n3&t&q>nKM_4eUG@{lQo%YC;TWP zAIeLl?cpnqtkm0JdKk4xmMjEAg^b~07{1plJOiR@v|7S)u2S;!i@@O5DX5|2O~uAJ z4-B*du5$QJFVVLTp`xVx(s2n;OTj9*D3bH(;icSIY67=&WTi;i!4(pn2s)zf7~qUC zn0vzweMW?VeacUj@%w__Bb6#9i#?1SY#tBt$wAel6Ocl>1ByXLg#9!tNJ*85nV)4d z3t@4I$U~s;xr8bBZQf-#${JJ(FZ6hU)4ppajj1chu1gg7Lfcm&L);#ww}FxiXeK7- z>F=*|#)dD4B29tEmgH4;4Ad>tt5B~=Bauybr^&Mrt~={@q*Ag}h&j-L{%tZG>=qKd z5Y085VV5XNE}IZr$BVuG(&4+B!HLWOOM8q(Ymzz#!!LBH_P&t0nXS45WKo>WD?T5g z9cU8_b0XgHnOq^(sy=?U=qTkfeAOI;>e&@6j|XHnI)gy*+nIcR#l#i5rf{ikt$G6* zO>n3d1Y^|b-E`GVQE^1Mq>0}BnGZLuzrqV63Q%x#BCOgK%YV_XDs40~bU2!5H>%mU zOI<#MMbE*Y8u{ZAj)~%6ZE*$efxICngf^$Rxriocse|PE zq3y!5g1p-u9}6WL9)6`A)lRs}DDDeQxa`i}^vh!U#lr4-DK0~KGfYRuQj^op;Kin( z?Pj;*X4mULj7Os!Tbmnu%^6bQG$d)zorK2DFxLr55r!{OnNnJYIwqdR`^axE^fq!B zC)R~^&a8urf)S?i;8|mA&^XmL@ymM{TgiJNpQ~v;pC4HYpuyel?Fm+Zkrxa7lXzo; zlX#B%cv6Ho9Ik`V+UEAX>&vl%UK^}{Fmz4BNN5vY2Q!~|nv_~7oR~&Bt#>mJBYW*n zAotV@l#G6E60)Y#{sH`0zpqK!I#zyX;`kD@kW)=val3dN_HCJ{Ynp}0UoqD7+&CSj1%iE99pZSGl4R#B2E6+z9;B=M}#?I=#d30F$d zFI}WC1e*lMFIq{rZK&)(frB=egSNm)XZ*B1210wtuVS~$+SqSn^xT7?;l3eQ{?vnT z<*~rX>At1z$*X+tw>>q2^10I&7ZhWI7UPJL`;ayS(gvOI$BalzPp;-)b%xJojTgRM zeV8aYxk3`u#@#)G-3}lL%(6x6<7jGX$9PQfk8;YG=;oiwP>!9Y-}FjJaIvKMcPW}t{yX4-lo*MNv-hD)K88Ua$hHO ze*DNpRZ4L^AJ_C{6RTBKY2UU#m#PX2XMQgD)*?PKXXSLd+^Kk>8BU|8oitjS=wKmH z?4;U%z`@7-j79>dP}VZ9^1$2`!ONjaf+GIvm*?H4>)21}*!c-Hc7g0|05-)B9waHf zs7FMys*B6s`7qB%Iex7BoC%on4XP(7MUc|&h7#YCj02Hbkqiv)X0@MF2M{kP8Ihh> z4`baMo(Vx>qdC7Zz+@-jAXba?+D zri7>j@I3uEh>|oP&40&ju5zX4rHP=Gx^*))`I`B#2=$bi|Ft)@Wr)dJx z38s4`@-BWo0|o>c?~JG_@@iq0=5uH&Wt@hI71Fq$;QV8cs}}DK7u^8oUfhSAzc|Z& zFGq}?c+n8_{!pOcDb{~lyiE;Q;2s(+#MM7h{xzRD_=qVcAu2&V9N6oRJ&s5yB48>& zQC(c;Ljl*Rl(qaDhUCd&3d3GfP~)>ISzPs@wXEe=-{%&Td=Q`3BAPU0w0Cv4nx-o+ zoMq=dJce2wYEa*=X4Kl0fM-9uNU^YP1wQt;&XoEEUBJ8GDwL6PZ55Hrj7~+R;1DQd z8Y&g77fqj{i>b6Tmg!A?LDGmYrHrU^jwbzXJ%Hd{D5`7hCFgoh){5+XHy&XJy*q9GuVUyHT6n6YIqbSxVSXK^rA zoZKwy(-}!>g`}bR00Ku=SId!J-II69Gd>u6Gj7B~#=Yu2w?w!1?QeIX(CnIFbIkpe zr!r`jlhziYs%gf9U3I_ba~Sm;G&D8q!)k{vb80`O0CSG41zGC%)7#g!j8DW5&%iaa zr&X13)o?vX(^nz?c$7diCeUVFvH6TkY7oSIl@c<@l778(mlCNXD}`o_1Ff;p_c*1q%)Q6lq;nu zB7RJfqSV*=@->H3#03(EqEj3j+Q{YZOZ=BlKL|il-ebYQkS)H~MCd!2SdMQ;;29IX zcv`D`U?nUuONz9vE8#pdw@#g2qrZThPSGe&WNW7KS&t8Lw<~$L%8E)7oLLU6d_M#- zm0Sp&eS-MYIoQ&5{hZZw@_|ElV%~`3NFB8FFpN&HvcZH9$eg@ zGGIx1q?3VBz+#4{bgs01ON3XY-hdUV-+1mKA3HGY@+>j$sR@C5sL@rEQJLct5W63U zT~Dz#b{#dhYS*@^#?dxgzOl_QF$Jj)tBhWY6gV$>e|SdLCGN*quR(WKtdN!klL!4U z3VfLO1dn2|0+SbQmdL8*J6rB%-v9bPR%1{gnxqRlBd%8OW;+ zFWEd>d<}d~(x)ANBBP8`U*_$Ks}Xh~f(x*!v)SI>KCaV1En#tvnnqhrh$-bxUUgCH zj@1Fsu;PvmTA{7PFa(0su1s3 z-(7Bx)=A~cHLLnqs}@P1YHP5Mmhu4^MmbVsK3(#xm11Yi^T*KKmVV{5^V0Ghd_;xR zUY;t`D9ysqr#c3Bi{bm0w*1H;(eI+_!ZL_bUrYmCZF7=D@%tjST*0tL~maIQ7 zo_?|(8dLRo_qE+t80 zR>Z=84`b$Z@Rv@0NnlRms8(gh==~vEbNTKNT3Zat!H6U4{>tz|VaXx!|QdrLNM|48^bA8oZWJEuAzSowWBEAsA}$r@P{O z;>0{nzJJORXFFAc^qx8bjzX)S>y?l1d!! zG2KCT)GJ)tCaR|*t>IOl{a`e*`z$Y~%X`~7wxPn={R~Fj3W+EOuoJIa>U_O?&pu?g zYf#EIfADA29wC;;c*~G&%z*6(8?bTH(S}uyR)+-(}ZuE+<5S6lL zO@s|F6(0;QC7n$tUtURB_vAL*xR9r@ud`|&?^$qz2vo|ll`>VoV6nbQnTN=a(4GmL zY@IS$I_-IWZq(6*8(l1=O<>TbDQHub_Nw~+O1X0RsXd~CioID4qFdRFbQE!|)RSfrb>Oq~55vj+3+ zcn`kO?Mv&L_~d!JFL1V>Yl6@7r^e~#eCyWR~>{| zrG|Nv%Z$MFshzovj#yQeYRH?soCN+Va%)i?wu3Kpxbl8@IeK`O!Oc_&R2O= z=FGUAgY2QJMXJ*}ZqXH#%qE@x0;J@vl`~=B=8YGlfJFsV3O*z)ygqjYi)R zeDD@!mpk@?v|)p9RFCYe99DMIe2l~^DG|BtIa%Pr^O2&lG`cZ^35swLXg=kZI=T^$ z@I*Mxi;3N%kTS&AyzOrjp7D(R93!Ao73^H zCyo~kZ;Hk9wdR`fm~`^BGf(;b4BBif zx&|xpO*b*Jk$+#UnV5$JHa__UhMf;2r(w8%(RI0aN~>&!RYBHC=E@vHES`4V56h+e z0Uh<}q1hB|Nl4NB>oF`irC|@c#A0A>t@Ke5+Ek+US2ZNttYyfpfsnBRh2JLIbpww*+OcYV9WXRzM zq*MoQ?81Qzgz5Fv3?#22Xw43ORJb7kW}%_4Ab%L$;y{%6ekiWY$9jTHppGYPC_TqU%UK z&co_Nyxb04gx=R}@h?yhhU*IrCgM`pgeHIDf6iVTZCy|wF&Q>M1-4k15 z2#A$VU>=-?tm#V#ZMwzws8q%!f)rFA>|y2}4vB02sHYiT*s;q^TXkVuaWZw>AMh8!aMj4!JBepD#j1z&q z4WI!d2SA zI$a56w$QTzD%o|v9MHb_iUlwqWTPQ>LBaTyt8=Y>e4k{xwN?HU7^FI^C5cfu1(BVG z$#IZuYFJ~7?Un3I>?BgxPjH_amkPs$fRf^d5@QeJ4SA#$Thi~FA z7ZtTAbtVlv4GJ6vyfP@EEns=Jvh%PPe3uRFuvjJJz8k%@@*xtVUPf+7SFHip8LaDK zyzYf_!Sg*#+YfNxpLc!`Kfp{f>v^{{3VzNP^?8|JW+Xk6?vEMF>{prXEY{i@uCmgX z`b}4SI$nTxEP1~?=TT;@v$KYA$ce=-6(}3KR3LouO;z6Qpm=u0J3hgN08LYI08JSK?bap&#!{XET-Yq!Mbpolm1Xn0C5Q1CRpPg# zkpYb1fwH|FU6x|!(RJ$B4jYmVJCb$>k~ZK6cw$3hZ+O)Wa9jGxf3(Q|p>(?{AY1Os zR&bpz_(Y=WRbN7@o_+aX93j0i0#-F7T=Mh74Y!tg2D4J3)R7YDZ6UIo;s8aA9b&yEjAa^ucNPwP1PVK?Ra0 z@{kPD6R&uoDoU;7T)yPhyC&yo@0&&~0g_8(@;vv*pZYa^41+@*+-bLjbtCasK{zTg@|=66xhn= zapz3~)SX5VoT72Z51+KZ({U0t zul$a#+{RZ3nQ-Duc4JpL?5g@Y>qSwzW?`~+ak6%496JQ`9;MSdOS-0wz(@DX>9mC$ zS!L10sw1HUhYx3X0^DI}-jQ%Wu!7wCe@x4@3hI-`B*FCMgI1B_QX%2k1;MgKA8Gs1Z4Q~LOb*H;O3~bSY2U9nSy~V z-UO@n2HE^#@rz9M1&)j%T<Idki^<>2-iPDsL$y`npoYQg=I);Oj@ea5|D! zm4HoSo;~C$;diIn>}9F;N)a08GK;@zLQS57hwYvJ>2-`m8eA$Tq_;)qI>Vh90>DT#OG7bdtDXWi#>@2o4P; z@qqL0!5$m<5nO#|zU#t*oAIa?{Kgp#9^aY%&{+Ab9zst;bEDmw(TtJlKCDT1lxwXw zX`6+G7!Zc63af93BRmwo4SBvpI5l;gRO3ADn*pu3oLIgJrTiVsWowZCS7Dw5xZ+T7 z9?%{MNnu1bNq%wf3h{|ZdC7w^!I%APg!@2+bmT>i?-YaQFe0)wB7B{TZW=STD7ej`6TMiYEl=(wd>-H3eFHE!n8?wsY&s~HY0 zOAjCmf&C@$0E`N&xbN%lLPzcOPbESjD6$kD2CB>BjNt?Iu-rX++a&rJR`%>uN5i(9 zR7G{0>1g)N@!^+`L^cXxz>ZwKCqNwBd;CA|u2?Gid2`CV;pu`3A#Fw6z zOSz|=G9$Bte&O&%p9^Fnmbjgv3}L6SlJGXfd@`(XWoCi!rl84_XI>8VzhnNQp z8%`_f^U#mV4?H;9!Cl1$<|HbHkVi5wX!!2CJ5u`Abb?+9U^BtoXL08Kvpt5mh!2-wsG z0x;vI%4e}NO9K1+(cHMo=}`F7d+^70kd6-G4s1wqg-re*tcBdyP(z~PXOGLjt zQs7s8v2k50j5IYrHisOA_02h3WX4ER*ES(A4~ja(bw&{rG71xWfqf`LTAvGU%o^`l z;(wQ0+*hq*&5c#tuRF(#KlYJs58>#_I|@pW4H0RNl_G7r2n&!+ghz(tfojGDNk)*r z8TS(qL6TO_i#X=F>k!xcD`%f_Rg?CjgCmV2X-i&yh(3No1LUK+5ct zH&KfR0U=Ftgtg=)NN)f-u*9>-;ZXfq|+2PuPV#&hN{zp^(k|NgG-WR4h+7_}} znZKTL3(u@zc-W^6s`*WFD;0gd3MIsmmi= zLn>g$=xwOCyaqkS7ikM{{iZwPA((sH8rH zA*F>G*!IHhxwPoC1eSgZtsaaTLQo^4lC=tafKmDxqxis-py!sYTu(92R6;b7W_QcI zp&Mqb#KCEoSR%PM(dUn%j1)lTi=3E^dZz_m=>Ki#C&jrA4&(-Rem3srMX@60H;j?e zqBeE&b9=0EQ|rJE&_3Y^B&AV(v#-OmZmmhBf`m>j2MR7VoAlT~#hbUE9b}WzsEh~8Vl_{#(J5)|g z|HU|?+`+1iV*a+7rwOmbBYi!PY^uaq)IEqHu{$1#(bO=>9g|;NFgTkWUp8%~VWoe& zq*3QLX(Y{W2yKIG;N2~mmll7gw%5UI@r0h#5OWvq3_UK5tMX;{d)wC&5h?buky}85;%6bJm%tKsg(Zwt*(_c zdm?aCvTkKqAGxeFRB9sZyk6;}wr@kJR9yvFcd7T^P1SxT{12E5TQpo2XjH2?IqG{<%mlBR;GA8aT7EB2x!w=Y-WxF+sJ-mk)Ye?PSJo=X9 z#q?d}rc1JRV!zY>eSlv{Q%)~cD)-cH7AD~*PKla`BhY}IFtIcRF)eE$5^N+yWH)HJ z<^{knwt2UPK&OJ__fCe=Td4cuJY)Xsm5e15sf@V~wck}3_xRyd1vxGgdJne^k9>a_ zNZc>RChCQZy~m3oiHbX~kMx?tbLD|}EG?pqUbAOvZ#nfrZ<$m)tYF^Y+BrTuPqyoW zRR5{p%Wb}FaGS^DTVfDn8f02ekS276kK{v8%V^u;apS}$)gdwE8CS(CrM>>^eYV_z zjW5Ednsf}Qi(LDgzSwf;#xO0RdUWffF(^$4gRkKD(bD;`L;^~ra!xA)FUxc`Ijz(m zaK`ko7~zoz`F{H)L<53?`sUm&J{j`kFDhIFPbYx?eMLhL@;! zB=Q({EO7Hp;tj1D$jG}-E?Bcfx-ZfFl>54a0oNM0PhRLk#l7xzdvwE$aK&)jNfNDy zJuH_&Tm+UxB};UVCP|GkqCz>h5`V0fz$~iqGjvv?_l*BAIHnb8C9S@S4)=~IW*#Uv zZK}v`bsn1%wI`#4!@AQYgwW1n5{Fb&>C4|EJOPN`Q-a~a;=~2Y{B#ydCcY>RC_O|F zwYN&1kKkyPD*DDUQYdODrM#2CFg&^|oKu-ik!SgxgHlM>!?)#62y!E;aKB7yWuMFP zB|wKcl$+9Mps#O@{G93}N$LohKPSL5weWFBg7RYD2OjJO#UPIn)!feVAefpBxm6Pc zzUr3&1g-U~HgiKdgT**{a#-Fu#j=*0o}3wIpTfCCG@FdR#8Gm~0^_Zm_})q4;Nm@4xM=qi19KU)t;Wwgvg^ z1q+t9t;YYlT@k!V#>c%yt-zQ!gbIw)ii zP8u4~(8uYVAJAa<(Y`#tl((eL3nXew>hf#vx3wm^Q&d=PBEo_w+qcY2VF`YNbkIe@ zucFhT7_<2JRE7}yY12HbI>e_haX25`kB^zsN?2Eq)!$vQ@brA=*|zN=y`rQBeMBN& zD;5O#j4Q69*w*1!i>$X@(ZhSv1KDcGuF1p2|W6My`?0G^|D%RR_^v|7(DX==IK#@<$A zI4FT?@SL!POc?V)kOq*>0$b{9NpSIXmii`R>*|}$CuI))dp8j#t2)*0!@FnO9D15L zXXV1j=HKtmz@oGNlOg^P{I?;5f$z+){Jm=#_|gpP+vZ$aVc;%O*0(LVK)wEY`RnyH zm%m&7{aOG$3mb4h`+vJ#^2}qUg0UewqgC{?-RG-T-ggGxx1d+u*q5Fl;2AbcTogB;@3#tthYfL1q~Tm%!5LxEy)m)T6x($olY)+FGP1HByu8T%pW( zbnzu&Debg6`e6*KVC-47CQR{P^WxB0jh9OR7IMf<5|9#ABNGndusT!Jys*SdL9;-# zu3D3MEEJt|2g!p{SesErI89YV5Vijr`cBzr}IOZT+pl2J3OiReBVdqG*wF0V) zZNU{Dp&(kAo++QDJ^L_Cv|>rOZ1Zi3FA+Rre7Sg97rf3i(IF7B2kYUv3f=3)VO*Is zF9z(Opwl4}MTvVT?%U_nkC?Wf-L_%|xwb913$_iSH3D9+ zqGr_mNEl;u(!YaHOT;kX2?#g93Tl0K1kL6eu-q~sEB&Qa%iq`w`r#&XHL9jEibVjBWJg#c~K7zpEETI zVWK*&DGp^dtwaMZ#${^yxgV=dBV|AoLLb7l zMzPpdG?^Dou?mgV32Y}kxDAjLoV1wQ4J~;gK!O9spQ1X)T?qgK;VW0yBT#&|Gj{`h zsD+vJlOw!$ID5lp6HZ0;DHqZzEvm##Z08sz&v%&?iPENClr0J_9BnQ{vxH(5HCr}Y zN|TQi2PX-Pq?v}F>5#;i7(U5@N-g?JejrHBIRPCK1)b8W_wHm9(;UfgORgZMn7M>M zwC?n9yvD#9)b|TSrZBuXsGQ(IqVlW63v5g|!PAsJXwrbsh!o@_!wE*cXgI*mDdWlLS!-9T9JYKR|lS$1CZ;#m`BVL#^&rLZvW;-G0BXf{wPO0H%}i~bKv@|prTO|XqHKB zn+E}(nN&P7(w#m8`Z84t1;Fd zLR=scYgDbcG>tx!aD4*``F$}?dsxzp>outyRkH^vUu=9% zP8rD-=Q-5c%^n{_Ct+Fe#7{=pKmC?d_0Ozss+KREv58j&BcUv;znlD#A7KE{0naX= z%YT?Pg)3=~rX#a{rd|KSOd@8<#DvQD$Vv>Sco*HF){Pf=T> z%d(<|=U@?@m;C}nCW)q_&T=VtJclYV41B2&x8!N+c|S!=!}qIS!hLd`p=!>HlmeeW zMB*68vW&9iDX)EKPX27=i~L?y#M(Q<@6xBt6Hnc)w}_oBMl1`VE6uf72Gyso{t4wk zLZ0>q33H?>I32F@pm?XJ8cs$+H^t>&een2y0j-n0q=)yg9#e{E-=@^jxVPaRixZrphKA-mc7co) zoVe=RHsaIJrtN1h*S<@lIOcOrwiA5cHcl5`$A*w9BjuA-2XFA6}pYXj|^EnC!?^$E2Az^g&3+&b?!n=)??rMu{{&2Cb-}G z##DEITDJg$*eIRHkf}Ng-gHaAiIB{jHVaC)7canG-I1JrvhN=Z`)OO|05di0_OX#< zA;^dNQu|SgU9{-rT|q#p8SRfaEtT3n(S{33Xd~m44ZS)rhKTbv*%t?`*ssAmpD>Ph z6G>rrFZ;?x%i;@5>k7MAf1%yPg8V)&N0v!ij??#dd+cdRT>Av&d|1-JNOrJSt#M}B)7g5d%=@7A zU04ERP39i4{o|ZMf<*#WSZqo8wC2ME4Jns>3Y$Q?Kv?OD-^sA+bB)tgpA{}ghb4a5 zP^A`>x3%v}(4nprED5W-kIB?K^4uldkQCg(K8gD%Ql+4UMNF<++zw%82sbqCwiaCF zP=`?(OU3f*t0b{m)^bed95r1_5lX}4O}&HF@1MIGsFo}6nia9kk#;<3QMF%1>&W4j z5m9p(<4-ROL3mJu=>>I$vDo7yjb)Gpamrr~CO;8uM8!+1NtqRNJWl||j$dK;cWe13r$lQxim ztL&>TAjnZAVz0WWEafyCwfwUYdC-(|W*gN^4hvt8{FqfBi<>nJjTSDxWY2U}gwQWz z^LolJqhsPZv(&OBdkk|wty&1jbQ12?5C&Op`%*A*ZZ{#3m!uXilS_Kq|&;jM9*%hvg5DTtT zy-T7p4e^X+sai#j#5+Y6nNw%|gJEm!PpPxSGPPC%3Z3jVL{+$^@;nD7#bW8=4QmiY z_#BOs2U2>R7N?5(oVWM`)+upCW^&m1KI5$M<0)zs}~L%n6Jfiqtai604}s@%RRze zXtu4Xmcqr`jp9q+lYDnxA~2dCv}#=nF`i8}e(^O-Ei$g^urPx+OtneJ#+T1MHf*Va`;^6)azaGi zP-stf1{a?{e(6J$HO-B}!5Ie-sZ2bV3}mN*l)u;MS%fN8!*;=s_4n{XMsamDn^KvI zYB?&7IBgF;!yFp>kY(_h3z3;nla!o5?Mf%RCZ=H8@eG!70d>gBv8W~+I$(AwN`deL zgPZBJU{UCv<1mXgqF5tFX5c=Yv#||Dd{dA@7ixT*nn8;A*W#J_arGY~Go`~P9~Q29 zDfPEq$^*M|a}9^0uDYujMThH1a%* zO2h~`aR}==j*4o}9cvQQOD&l5EK3-IS+quGqo00iH^+%nuZaxqpw9I&&M@gP^H?6B zrn7FREFT_B3gqr;;#obo_BSocOJtjtm;i>j+zymVV()LXH~=hrPbkp)>AwwkljCz% zsYc!le~U@d+{%8zmq`oWO3#vqmQPR0@kWj3RpUpE$x0#1DkRlpEpW@zw#i|=43c5{ zdd&mCuRF-!=^lTCnse1W7nX&xqR59rKNK>4QtQcdz<)?-rTyLe5i{wTkV*w5y^K%v zr)se|l^*G6FSP)gdHL@WXzyPPb4yo5K}QVr&OO}3M~5r&Gx4A2sPDy8N=y~H*mBog_z z!-Sf21pW>U)HZu`V-mb5Kla<7%cfpZs~baDruhmU)*EjTM#p*yhtZk7_oW)shAzo9 z>hX?XU#PD-9<6z&_Y8}2qbtKQr_TENKmo^zHI5;1udN%nHkX@nDZMBFp}Fx>(&}C~ zD5!QUm)aCAc_MBIlR>h;u}_x&Vh%0G^QAv`={(xjt<*M0feb;NcE7#Id!kzCO~{!Sdu6}pdggtgTmOv{kEz5YqWHE}Yhh=e{vf`?-H3W^yYaGl!>PLx zy6v7;bKk6jac%YKgCHvV_58M?{2ix7{Xz4}3>pH%?vTbqN#0@n)&|GW&G+?cg*5~% zyzzHCg+8+4!~*pX)~nIQ9G~lrW%t^_d@qwQ9xakq*J`Xapg`9yn(AhmO=QxM8*F8A z+K)6Il6xGVhUyH$*?C>tIB9pFn|@bkP1H1|SdRNEe|C(B!|teWG8n(9E1Cdh)-!I& zu`489+3!F9k##`<^3jSR(oof(z$N78T>vv9{@up|Qc9K9< z$~EuQ7@|H<^{iYmOA1mDV1mVd=zMYG^Kc36R1!x=mP>v3`TfTaKKJqm(xM)ub<$b$1M(k~pWYwSC|xjw{&)6fYd6yd#4p)-R>3i$N! zNPC-KC-Zd)Bz*BtrGJ2q#~Cz@vy&L7CQUlU1SfS{iZhhL=5xg^Ck4uqjLL>H!%!Gg z??;W8p)mOgu&!)g4I-sG8XBR{d| z-I<^;(M(h;C*%a9N|{=wa1(p{ywuyut!0)jr;yg8yuGT0wTjaC9BM6B3Io#}G2cp1 za3zq9tfdV6v1<^t?eYOO(j;@?pV0;U0O<;3-BrE30Y++OvV|hD83FVVzw-QP@lC%3 zvD-+X_-4>Cs=&XXfsX^<9W>|2pT-OGbz7VKNb(c9h&bLsF-SS5MqCGyz9eG>rEHR@!*0KE&$%DDu7P^=^bplBM zn^bfqNl$)oxZuxvQrzfJfNrj~dziZg3;@iXlX@i&O_Qz{%w5BuFA)N&#SPzQ>OWt5 z5RV#_JoJ8l4jonFuZP#K`I5hC1DkA5{GZK`)>$v;Z(kQO=+8kVB8k+MMEJ6Zybp&npTUQ> zk$4?ky?HO6wU9yPtR6yzWgjDSwcqI;9@B-y9XW*yffOG(MMLLDh;#~w(g*?~Eh!y>faG^(z(;v} zUVYx*`@cRfIWu!&?X~w_>)vaxbI!gI{Nl};5uC4IV3QQQ)JrpO_$f|XAxQgXbW{eT z+T=x_m&UOpfq7^H>N;O76kHy>V2n)Sr^4F;H>Po@k6kJ5Lhx-aLNK~wHjn_4?I_vBgp$^5XypeYlVlXa^pLSg8V&PnqDHWoG;drREwdR3fmr` zLWra}PV{mrjcFOg`u){+8O-+j{8uRgAoc>;l^^CR#Di`z&)&a9eor~J-0$MSKw-1( z0`Z=8P&$SP=3!Z*a?$n$5!Q|Vv&|C}f89^{KQ>BwXTSDcgVM=LF%LB&;8$TDN~Zj{ z>g*dqqTyfH^8a$QpNe`<&eVklnQm%ufiap*uG(rWScG-2AGT2^&B8q1&c75e{q%X+ z>!P0EP&q!=CV7HXoM(WMCpbEY5I6>G-M_>}>em&2_~pKH0FE6<7TjzuiXUnz+M3#g z8+g0Fj?*jlp4I|K{ndOCFSZ4WdB0409Rh+pNs|n?lEnAy)ND=cdVJ zfd}OQq+|_FNC)>RYd6vJ+%G=c*hb;HTy%Q@&GA-nIlb2tFuj;rJV=yXQ zSF}HCSAVnM+}RZ!@biG97169+>V_~$WRv=T3AEu6oA85Qszx$z4f_IY3Webx#Pf^W zsrq}N>fVj9hqkc|!=@chO@dH2jJ`?FQG&c^YYyLMC@a)K!o(BSQ>ka0MP=gk9FCcG zlrCHRUIHwL0Vi4X6E**RpEot1=;g63X%(IYW25Vi;e_qZSZO&@XVDzpX0m@qw|gz? zmRr2OgU%PygiQv~G8AGG^+kuL{?jBC&pkKOY8 z{^urg?J#!Q)NR&B1O~KTSN2se((oI!v0QQ*dV84_g^Ov=Leqt3W2k|Y3hOo)6?m4q z2<2IwxQBk5%F|{|g04?Zwni=x7Jf*i1ZLTau}w*JOUQ7oOI^4zl;Tz-W0Q!lAYFKq ziM&!o1CsdICJo0$vN|HjO~g(Q8n&;Q@}d25GzBEnB+p8C)i$W)%xQ-=FFxvLs4SP5 z8=DR@mAm71v)!o%!GnVVG@QKCwPZ5gNr2g;5ud1Mk}K;UdYt4=FR9LQz_lkh{R!px z(*r5)F$gcyeh6hGjee|^C{f74D4IS8Dg=5vm@Y&(kaq(^C_2bF5dC=yNpQBDPNGTd z_6iMlQs6fW^TxUXpSor~OhhkA3KvEr4Q0)~4h6}J&<9cE` zSHd>HK+`fVKE?{$%!O6yg$sZ~U>~(5J@60s1{i2g&jv1;e)nVlk8k3@6+eERUbKBC z_GpTF4V!NLrgpKoM-p!cx*Bz$zsU$%zI#Vu-s5)@ir8f_jC+V%cetV)A8(Ktu!h_T z3NQRLv^);x^rC;VYC~$ERvNDBVBw5M%cd|P_u=6+eTBl}rj;~t7R%l$f@dc6x36`B zi)vg#qMCASyU;F_mi1vnw5>jBfV+|~@ZzM6GaVmxxG}c`Vu)80RGMzaP25>PmZ?}F zssPrW8n@}v3TFD;LNjuq^?HWR4b=X$u<4|IwK(S{5)h%Pv!l#oU2|L1Qgw}vt2IHi zW6f&9s0xns^HQ-d?<195oAq8fdS3tV-WU-p*$gFKRC^CCUO|G6N=2BEUQKZ9$I^k; zDLh=fmJ4x>a{?^cA#4cf`YIv5VSP_Jng{8N4X&3CO$@m;SP6|_GR*ph&y4sG=FKnI z&I=R1N6|KC7NjwYBr8Pj^Y5f>nUxtxRWEs=B8T2AMS{yDnfMr=HV0JIC`BL%Jl9L) zZGM?V)|l>Xsy3)=PN8WUMV1cSpO$Nwq<;@DIv@*!`U&-oJ7#h=&$)_2?c~FIdc&I~ z(PReRN=c3JS6&qeNskoQ@9%BPMnE64!k|>_y{|23QD@ruP%&CXje*q%GqUYMj(A3B z=eKwv3T7`%n>JO_&|aEZ$;IA+Q6B*wlUIt8;vjt#Wz9{j0Y>s>*=W^lMB`hO@jlPG zL%hP(h}tF#F(}8o#3fiDEx&9E!ftC@h5y(n>7D)Bcg>^*M$${F5tx@sdT}u?iKVdq z{d(j?!@sWO`{ig06*XD2agQiA^?jlA%f?f0yqY{Q2zM6LnIBs^Q|URsRRY8E}*^QXnDX;aXhnreC&9# zIU3+|EaUaTD*YDv&HINBx!R8A9Mjzf(T~$(^4VW``<&EI9&c~Yoirt|)zKmn+#Ou( zJo&nP9D6L08Djb#!>&`~i;TSAng|<;@wZ(2fssj;jiLI$5?s^PUW~)xSF9+FqztJX zA~P14Co}ocl=qe8-aI9$KgkwhH-il7t1Xdzv#cjZYKXT@9&BJAy6<~beQhk@*nF|j zXf^4AgN7GXrV)*ydX8UA?BnJDn(G{%I?Z9Ep-ouESr_pfS8Q%J?2;s6r^&p=dKPhP zo+*KB>i%IOe$Qw&b{R?giCHS-tIhuQ%#DN&;h;lz?-kYRRNU-tBun4Bv&b^5#YwzR5N@HiL4t%%__%(P;BngM!_g6vHC?icZ`CWgY-kWF zh4UPgsLGE+CQ#pzx7!F8iHj;=T)$QqaMKj^^0b$Ig>;BncGaW#kd0Zi724dQMq1u( zqS>sfoYx=Pur}hSi{!Dth*w~2nS5ZecGtS>FOdx_%HdqucQx{rgZr`>!R>*ji}i1BRea*1y|lI%ey>@Yz@flGYxVI&XHvnA%_y#e_l<*H`zzuG?|D)@e6b$2 zZ7Hm!PGvr9d|OfBOfTQ)Dz06C7J5Pa<5R4Q-rUCH(zka!1V4GwNGO=^R5+>7NOC4L zcChNAZEe0GFZBk;uKExf_XtJNQmRJVcT$!3lH_E$I5Af|jhj$mo%a;E#`PaL?I{ye&g6dW_X& z&}0~E;C$1$w&dfcic5O#Zoqc2@BQE*e;2oV29|{P?*(t^Wj-dgQxFg~8_BqREwB42 zdVbK?)#LXTe($iYOg~QMzL{y|B=;A|mE&1|u4gmx@dG682z|9_I7Oi*DSl0_QsIGp zZD;beJxF>F)WK)cx^ZW60NM6?;2F_+|)IuO76xy zS{eAl=&PBKT9p3PFl-P@A$aJTH<|z+L#lxR&VWM-*=7U#qa;$9@#?)uGd5s=#mN(( zJ_xa_!B6Aan6FhFBJo6JN4V{DU2)UZ_g$div zYMl-5je;57`?nOr1)8;^jpjLq!+0Z1-NnYfximS5^tL8)BX@9ECcYNNY)ZRUCApf& zRii=xNi~HAxxH8_Sg@?a|JW#^K-y|rt#7;0u@GufiD<#vl{1Ii7kYUU`Q3m~!wnU~ zf{anMXTfo{2G!(FJH&SORiD%_d7Cr>Z%n;k2p$D)UD4cAO&n=yv7NofjEMtv3NR8L ze4*05H%_k;`?lL7!B)rs4Fzguw_;^-Q#El$%7~QFc>t=r5Ya*18Kc9(xro6;D>T&* zFi@4ssBxE+yF-IP=K$9YnaM0`rLb=3N#V}7t%O@6+>L{?g+U;)F3n?%T+;~`A`uXA zQj4tS{$21YP5%BcE`Q)b;9l7nFQ8+EdkEHV!aiG&qVWX~0wQ1X>T z)a2oi5|59A=-lyIGh5B7|m>2=^BnpZ0$D&LKU+aiN`MXn>7sI z%?)p!kh^lz_{B&I$cDKGI8Z<3QPaIEJYF*`5bu)ryvl(;;~I~fe|jSkqvxQ|xc3*v z!``k`zfGyp&{v%U{brw6Fy3-|lDa62tQr@83#35_~pn5P^NAqZU@}}kao8pfuwrQolJ0`wbu!`3`;c_sv zQ@Z2%9vg%E`t@(Xk_ZNJSOZf#7Q=M!rYF}e%~y20y64_Xe)S~hS}$l=wQbm)tW}lp zichJAs`fmx-SmNaYU zB3JMwUQ&KCup;u_L%pq{x5d{Q?;8q>JHD>=t36`9nRn3B^ZczsgJU;ZQL6j2O2FpST4^nQ0GMh&$a;R4*`mB`)dqy8~(kPt8FD$Z2Q|B9FJDboR z;IwA1yxS%9CRoj~9(`~DCqeMzVK>FMVYlPY2Nj+xaZ?66Uy&a8u`~ue)ofe)&4}%kOp|+Qv{i(QP;r`jX>+s{Yy{`;=)?;4a6z7R( zPG4_u)FeVEs&xHl6>rYh!yI`}s7G~EF6~O3>?EszgUM%yUogo@YmUB{X@BwQHml}_ z;tiqjHd@gFi728QDVMd>+HYdH1XQKQY}IS=%DkR$Sm#!F>9+4rX}_a;QHCX5OA$Y2 zmtwbzvEhiHd!H*$sRTh}+kGkfTBWb)H_vLXqXzMva<>C&_VM^slUQHf7u9W;JT{Cw zf$nWe8$kp03rLFsQ+GIFe+R&y@87pnS@7GuQ~+(RW+Zaz33aBS$#6`DTcR- zUBu0XUBu$A4ziRcsbe@Fd-dQ27RZNUO1!420#Qm`rpdt*>jc$abPmmuy;}s z3e_3Y@-EiWTy`fdM$vLNzU_5seFvEynHOTSJHwq}8h39Dw-`lz;L}@UB6gCA$f4k2 z*x#^#_>y5AahFmZu}_?#Nx*xWF5KdX_sws+{OcI@;`3}hrpv{Qp-kFBE{89e=Zs4a zHXkj}R}N*S?fYIS9>4cSAa*FLhPb$UrdVgc!z{8spak_OtKQV;q|cS%aG>G7?U=Dh zMutniyyDXW&3cC0U3+o|J5biIt+*1DSQm@^2kE{_2R=!1G)E)Hq^>;@j=vG2q`Li4 zZ)J_*P`G)N!hkAxi~Pi9?u7nxkY)JNhkHA0-{dm{R5weM4;8(JyRX(?*b=OeYoj;B ztDX0`vFBiKNvum&E)>o3@U7mexp9ORXQHu`lDq6!#I;UtrO_&Ukvq?L9tX+3PQRjI z^UVeP)&yJt(X|her%ODl;>?o-zZ43+AC|Oi?(zA{@C)iJ!q}^lcwe3PxXRi~a9mqe z<8ebI3dPJ~UWIz_X%P72yl_x~-U%EN`u37UbJ-M6_C_OKxIY>5lY9dct73|%XjQuS z>kG6YvUS@}CFMdI3n{vzsp;Z7uck$TI*UwdaxgHXpZe@4-QL4{66S~}Og5-Q6+J>O z@_?~fyo%#Wf}L~{MJXND{bWnM2QC<;mZ@!s;v)$ma#p(7f=h&z{l01Y9#-gXpBf4svN^X54hF{A3N-{bJU z^;IbgFSpdkyT{81ez9FGq02LdM@9jg9c>sXD}x42uMfIp8s7UsvQ1vahrH$GT3x5i z6^Z6O+PTIgTOH0@KOO=6Mf3Wl79Zg{?(-YjLS=j_uQ=}OvS4rKd6I1A6+g2R4i28} z^eP=kotRM+@kfyooR7;JiMzVLVNwN_07GF#iYI)&R9R8jYN_ z_J{Qax>TKB{aSr@iZkwC7uZC0wJPqQww?c<0S%E;;S*1ledeacqpCCUhne8 z*r87gy%~P#7VD^KQCHD^k-OfTFlx7ZsBW%jg-V|A7DrA!C7(!zx_6z#CcZr+#_c1I zM+IkQWEsv4tSn`X#NHXp3ysIC9x7v`tK`tP6VaxzVWO?P7bodrgmzG(O@j`{JQ`lu zBfrK+qY+-pI!gVJo$BT~v_Zt_uI66p^5M>%#v^r1sLy7%z$LR+3u`TU2Rg`!pWjws- zp{e!MZ%v_+_i4?Esqvo5NGdDdL)xn@JiKtIFrMI9qgrnGpos#P4fk5FI!QQD&MN3e zoZU*CNciVROum=r+~;>g015FshsAcplEutj}bPqTs_Z+;`3< zCh}RN*6uCwW$$`wUzkznLVVtblT#|Xx{!YpdUkgKyRzRg&By&p^Z4e~lgA6yyZ!^7 z)U1+M*X()g8`57tlpt}?hZ^y<%$5`#@YYn>S5&)f+g|Cv`f)|kxOL{>3fJhhmxULd z-S1t+%i#^xV}4}s%w6eH8jiaA?*Q*Cv?qVF zpL0>C@-u`4Q}qa&dt!V@&qkcY64s_&yOwfD`ZlLIlG71bp)Z8PSJG*I;tkE3DYuz!@8IG1i6GUVx=F6vc-ai5hNNx_D#pt*8rm(=YhBIW0Scd18ig*P!l z3ZjB#-(3yB?%78>NZOIRg(IrG}ZsNuVeb zET2AAWjCDQu!jjj{^9i#IA_TBmq<>R?*ALt2*95L=NUPB5lF=nbjDEtV;ni9&^L`G8oy!%{}0`vtxl?JQt?@Qx^mG)n3gTn~DZ5yjI9R&^ge^aI zgV}(3pQ|Fkt@KkBe|}xikyj^!9zm)Mzs|F_qit2V&d@T1yrnxo(9`KM~1^J_R=(r?AVdlslQ59cY78L7Sln1dqKSC3i=}+oEF3l;f3;Yz>4{2aynSyJbVC!9T+$c z(Aok054Qmrt=-=h;5(&meQ&vi}XpsDSv+$T@%^Ozjj+0Gu?nvj+G%{*D)%=g^nykAMM~ z0wDkF)nq`viX8w-7S^UFZZIxIpcpq76Au$>yI;yV2bS=d;J01$Cl5X6DsV=!--&cqcY>-dX`=j<2G z3-@Pvg4|#LN?~BaDJ9M$0p@@JLk9pT(g2zP0P}Y+;XH2)e{{LihE+0gu{Hsz1J>%| z{fpM;yXuc#cV=E^&UWf)-(!+rcb+pc@OkC`=zxDRvUA7^=i2*IdjtM_Hc5cRnLMy@ zg9pkB{tM>eBM5vPf$fukjVHh`&dJLyC3ZTx0DA$BQeYnsfSh39dYBAOVDy0i`?z=j z2FUMM!DaKnQ5F~;fUDuWrZ9OBX@J{Q5`I3wbPBr?Hi7|H1Cn9CU;`(B)zYxB4h&;L z1mkzLc0c8VnV8fFXkJRay3G4&v0++=N zmioJGfzMe2oV4&?wCCCM>$E+AFbFmT!pnuX9em8;=H)xx1L$|w!oY8MJAT*idm943 zPp^Zq#llCZANs@l0v=QWb%nPVu;&ahQ{M-NvpYZ)w z*YATlEUttN=#o-^!TmLO|GM{__i>(Ym_J5BfAYTby8kh*ISs5J(txc3aR|V)2=fS@ z?{)$7C@eMs+8l1fFdK)3)KcFgz5kQ10%!_IIrXIPz4_g~pg@T*&p5R<`8fOXddm|wzJGR=UUz$oWn?)vMT z>s)LD=PCUcg`bi1!MsZfKp>cB06ql^q9K2^ACQXR;(`Fnya23pr^kRE0!Brc4*~7} z7v}LmpfGkxz?*<$62P%jl!IZ;8G^z+6S(Hr{s5nga^Uo;|3dpy`aD>YYXM#;B>ce4rUD(69-o(7zeniHwL@hsa`)_ z`*Y0rkHUWq0sp=5pJTdz6#i>og0Znts!v1l<6Y&^e5WzjM5x2wK%U&&8<_7^}C|a5#k9CM1bAW0o&nypZ-ux(ssDTrc5}sCX&X zN25PWd3|KMluLo;VWnIo7`N;(wMG1ZRogH4P4?tXE`OqvL*|$75FXk~%FDKC_#=dM zU$6g%I|y*v&hI_?eHkiF2rMuCADDpuHCHIRq`8N+skw}c3E*M>CtA?@M~aSDq%OCn zr;hsvjVvZ!$melZeUEydB;xKngo`8OSNJN4Y&xr}6Iwjhqa`u$r!bR{GM(AzWY-XB z#eAF%tLPP_R+3YXvWLe%ZXP`MwD^oGB`5gmFg`(7+tjbWAP!MEYP{>^UK)&M9AXVCk!IY(w|MAT^+?raN}iqk zJ&}H4`j_#R z;bXof+cGWP#qda93qzmikzpY2jCb18fkTeD0H%EvRc7X3jT4&yanT^gFtk~&W3=qZ zDp!Q?Cj5~%7e8${m|Z2#9(zE8mDtNBjWBnm??xCNE6=Bn%b{^J1`y)xmQIF_R>D4p zTn<4)>}Y%Ow?uvMG@GMDF1JApJB>4uR&rBbsaGyKTOAXU*DLGOVKh4P3m{DQ+GBHO zh363ly-mi2kx!#o0C zpkAg9>4QKh8nDCB#xOuUbAv=J$P&iGle)y_F#~wK9D)(AqegUjgg9tvale50Xw9n_ zF4|Nbn^;2f118gOxHq54bKYp|=B#?P^np!Z;$ov~Nj5&Gfn#187S17ApQ-yMghwz) zM)C^oJZ@kkDpXSfjpK4!OM1^B*OBsTo{K%t{T(!Jv(J{&yDRdxfAXra@Ms^*Dn7co zflR{}ma7%VfEOrfKDkn%7Bv!Kef!SLZEtCVt-&G^iM%FR+8fr-yjjEQ_2j0o9;kUe z$k|Z1mG-t&DB4p4V|~Q4dy=&9;rptCq*t$nOL3QY>6QXJ@dO_7_%@i3-c6l8%ElJ2yDSS(2VTE^M!}8uVjO z9DI=X2!$m;N@1XlZNP}N=9Y2JhlkZFG8Kz4$B%MHZoU~OceCT7XO1oku}rpZ zzBu&a%DY4F#xj1m#_@>c^W?M)t(UX7a^Kv6-sQEc`xbT(WxQ11Y>Nj0jv2+g@`ok- z>Aed?UUkof_MhwgV`{XOhKDt93f0ujA z{{)eLiUr_nF@DF;pB4f95l-;_JmUYiWA3lPfV86na8nm}Y0C|c(J+BPyal6Wh8+R1 zi^2b0Q*pm(XKktu1UjtZj&^214C-L&Xa)fL0Mo9fz@mge3KVv= zD@YFt&lUrVNNPB0Isj7~GjkC1G{O6$M)0)_zt{P+Mt{;u{1>g%%q`vROkDoGV(_%o zdBsjMD?cd)n@0V2iv6$61y75d(+Z%?hTkUrNv%KLyitJ7K)>H!1@6vsa-80t=j4D- ztpNFdB`SUr`)j=Qw+8@z6$_ss0nFa;i3#xey|@2K{LdlTX)pg#Jls+MvGBeEKH(h% ze8O7^#K{S7ng39mKhFIX#2w9mXhH>$cQ#!HT8it;EPiU1pI!E!_5LB~Y~~6R1lRTF z+coe+=y_}UdjtFs1aDXjc0dq3&8l`z(60#ap9R5t1}+GmUpz19S2+03g5X_yDhS?O zKWhX}cKq9_ow`4)YVcIbIgOyddfb232;Nnv8vW91&_DagkH$Xrd$>lw^ct`V?%y%s zKWhZH%TtZc9QlVGLH}(3e`$1T*lR`qi>e;S#om0kDg;lbfRp;2vjY{bw-$ z3;reKBw0qWt{fmB3jsR=xD}_z1LZnB1HuRVfZd(pgvkK1fv3fSxqu%KSQ%h02nY<^ z6yoOL1H^#2fwLfhr}KbeN&&fK3_Wh>_X0RTz;d~#0)Wv-56lN#0y_)18L7tw%V+@g z0o3Dzas#5cp+GhX#0B6oV8KAb5yS=N!_ed505pJW3*q2_U(E$zfF3s($n=1?Ab=nU z7$^?*1IRn;ai0~z1+3-^h&eq1=m!XbKmb7yFdqm=%$-&rKC^;11UIZa2(0;loE}^n zHvqbNKo$?!4DlxQ$O8R~>99dUyF<1p?(Ov> zLO%s;y!scH(W#*<_;++53X}*E!y$yc1>?edtF%j&g73*i_X}2w!wQy`db-7=MUKEb zgtOir3HhTgyR_{D1{REE_xc5Ir|tj_eL9kZl_p2R`f}3bJ0BEho5?91sWeaC z&Fq@eTPJZ3M0HA5x?gU`SrgAvk$<8_Y(H9&3*tSptRyzc-`ca>cwGDZx(*Z3s0*#B z7^k|OC|VvJDuozpfr-4jN~fEsewHYDTOc#;(p+0|hGE#!6AK&Mhs__z#n2a0pR_0I zdhx7-n6CFnLt-VKK#*3UI2q(EI%UFvF&U^DoTLRx)glzHxzs^c?NuVF8M|G<8T>Pp zZWyejyBS;x!V+J}3Cdo~g_pkIPKpnENnEH{e^0g7ny}b+a@n=>-P3}p8|$S(H(q;} z58qMCE}M^qdYGKdOXaO*RdfcVEqm>z>3^CGQFasP8SdM{(S7J1Ig-ZCfiQ0P51}R$ zhKb+1`{$_Y7nnF3Ykt7QZ=$RJ4JpnBqcfxcoQoIshyV!g*Wgpn2k;K?OPJ5V(E`}O z>>lt>KA45`!90o=jxYe8>hbZx{E?R%cKRuPaKXRA(Sr-{LinXX1{3Znr}%LO6r3>p z06ZCX1h_>9Uzy&xDs2gzk8MFX?3?K^#c;p6v90>3U zAO)~6;wgr}v4xZK^amVWIQ~Kx0NHrYe((aV#LWS$B@SyTm}ofMaGh2Y28RHKf`Ja; z1&RQ)2Z{pl5m1u{0(1xP9i}o52kblS2+$gU3<&V>r5+dzYkDvQ&;V$lQ{fOO1df9M z!ku0Lt0VBh5O4|?2MoA?yg6_s*QwU0XvGEZ_EWq9Zc_b>S3ie2-|-3xB!K^zzB9P5 z7?aI`8@8L$+_@%&IU0BgU!2C6j(96O^8f)k1?zna=njj^0p8bVQIJT<{S{`d`p;nJ z{>pki58{*UWyr@=17coZUn462mn(L~k&&ThTj158g@Br9JwjeT0m1d!`mbv*rOn&5 z4?7JX9;~IW6r~N7`o&ID`B(TmYwhd|Vy&wR3RbMf*6UPqQEC!BUZubL*l}jZuTF

Yvw8GvD7VL-cGs_QQm(3(E}c(53y@D+3~JD*KT+i3~AnT-wHU83o6?( z-xu=1AR)R2RhDv(>k=bXeIH1u$}9$z4Z_G`ndO#bUU8R%egR{50BaFp=!k3NWZW;1 z3n%2aEwOaE+mtLF;*=+z_C&1LSSegG{cWI47Pj|1@=~0P4a#s^_4^DJYBVAczxqWh zE$)k72hc-(?%u+~w;}pQqc&@;Mh9kkkA9I1aupw=-b#%QV}-teG9?Zb`5oO7sn>&y z(hP&F;2>SOdRc!-c{U7{@L7ns$qmDVtw&{8CZtO8dM+iXsl6_@`>gSXQSZ=?Wvqo_ zeW>6FYl$Fav#IgTv`!2CpxuJ9h#JXC?97FtSjuE00IdDw zW2ckL@1w-`L^&Vdzj3m@?z^u+xM&--%ABn`Dv(7>5OR$i5_ARa@hVade>=t%+P9Qn zb|Os|n<)wX`2xsg40$w7%g~Oe7>2X%7+#rkN?TK+8FT8rO@Eb%^+=+uv!pcYq2eH0 zX=@4RQOg(dz<}ut%XMPy)Iqn`+%xM+nf(@lgXMNZQI(#y0Zx)LVlT1~!h~k#Y%M2i z@PgFs`k5ex2j;G3A zXI)Xlb5uqtKVIMzq`^9XQhR%1N9R*zJ_+@<3VEkonsDjK3xCA6sk;;ZV3eoR%-sJ&k5Y^1Pt`-p}U`_T&Gj{|5h4&dUN)O-Faz$p5~nD_G4no38$R^ zbo*uUb(#(0_-EbVfCz%mde2LP z&q@DHFZ`?<9QQ!*sqf#U{W{Sw*)bLPnH5Z)!m(drw8m|ivN5sniF7t`MbIQ=cf5hsQ#~8 zhZ_j%{@=C_+=tJ#56me3U$xJ#aPXho=RXbS|GIJhUz-jbkj^#D&v^8|n$Dlm=%(Gd zl&6@fo4bjfhPjs;NRSVBT<%A{ij(utVDw$sSqA8L!v2g!--Vrx3BM8c=U3Gfz6(18 zqu&Yp6^Z_ilHY}$1&hBE_UE+YcVTBC;qQd~3IzX2vr|A~|DCX(J@B80mhYOKdhc(A z{py1MNwZUX|E;i}9pJZ`eNT)2u9`o4!1qZb2M2)gr$0D>=!)atgty~5nA#eHBmP4p zzVDn=jg2jE6FM!7Q3>%-Z;MG0&N1&^m$hPgsH%dB3+a<=g7o!@Uw@;A!JogfN5xg@ z-w$3EF<_zE(x!0CO?-$|9{G*DZ+NTH6163Z@+9W#;k$2!N%a=1_SCB;m zAi-icEY>*eyNl-V5Qb5WL=aM*FtK%)To6( zo~PN9T61!2uaD?~r)WlAL%qcZ~6D6N41x3f735AmT&mTVOOfWF@cQekBc_YAR zVfe_b-ha$ll#hN7O3cTC5QID+oM=w4=*esKoeE^(1xs6k45~nM zj*JWaDls~3&35-Q@QIkD*zT%^@ngNw*2u;;Z@Yt7ULb)|sEQ&IN=s;RG35BUx4#hA zk&nd$DHNZyO%fHKrkzUlS#9tcp}p4)9MX3uhd zQ0lkC{z^}pSB}NXc=VvbaeB;$T6d|x} zY&>X>b(KU^54^R5`o(u2U)5>oGB?Axa`MR&Nh;CBqxtr#>|_5ex_9G_F}sN=J^~wDYE8V0cDese$g+iNStznRRhd$Efm`hQqsb5wY?u$116E9WwfG8?#~Zv&EQI)9XSQ(OJ-y{gYDpvc^19bS z`sdJ-iSD)9qEr``^{o>oy!6BHy6b!dDM5UOACP!H)M@ZZXt=SV<0`3VdvjZY*Yh_G z!a%)x{MG`N_~~hH+UfBVU+K%spP z6*G2i4<~@Y;u1E-{-m)U9?WJH#TD`_v|mqG|12K=){s zwz3!QbsJ^hH+rt|UXKcc%F~XKdi|9Qs;3>1FjUY_Vj|=UGc(WpXUF@mB-PmU=}6hv z@jQ(9*;l+5^H5`BSz^-Fkm({I3n|U8n;4zxh&|L429*dEDCyQNUv~ zp68&ww*{B69XjJL;3a523)s>a9+inCn^#aw21i|<6Pt0lP5wD1$#audye_nJ-hSvI z<>(8~<^9kHi^b2-#Da4Z7R~%x7Rqm6CYI|m%~ssRn-bULp_1%dkV1>X7Lk>Bc{7hK z#YhOuCFvri>ux-yZUpHTY28l*tR-9a+Z^YmOX?outQ)7B5 zQR=SACkY|*I)z+k6G_{eF#N5)>r%yR5o|qoH$g$I-X!+G%1WBj_&iYaFTpaiEe|t} zmP`$)X}ul|<_ZbZS?c$ed@WXRl(QNyaeZw6RhwuTiCy(ZO3R}?pW_(34}F>inkBp+9O;dR7jLiw!9{7RpxS|QIo#NA=osnoqa z@lx^$ksc+1mP5(M9A}0IvWIUzPnU(0Bl_%X?QAQzoM@+;Eh92JF?b<3V>nA`)?73& z(~u0!x2g{|1eO@|pNSs4UK}^SVEkcmW0g0#?@qe4w!f@Mjl!5va2Ul3q6c}_y>N0+ z54$J{>GiLf8YHB->zut@5Bjd>?!5n0{6YJAY`)r|dYg{kiWS7hwo=BE?&_>OzuW?0 zk5qolgPJ#z8eK{J^_vQvQS*3d)+pYB-tE;!Z)BE*q&sD96Dn;#RrEUIp6Uqmp3_;> z5>J3Ue(HMZ_E?H_Zgb27U4t*U${$p@ne~lkDJxh5mI})<5o0Ep6FW&Ja9TPrd6hEn zlYZi9)D)-JKPlSM#c^wq#JSR5t@_I9Rn_JF#g?d*`1qA=InXrv!%LrIM6HWFUarl~ zm{)w#Y9kAOrKM}HWG(Z=sUuGCndmzT&J%jjRTe+ZFz6!(d4;da;T&4QcVCf)M~q@i zcb)K&vJ+erSj25$Kng3?&e!ABW_&4DC6|-&ptPCt3r{7*5j7H)OW&O-GQay(L0;jd z6Jt9z9?0!?FVQkf?@8_-Vy{<{lhc&5tdL(MW6`oE_e6ePu`<~1m8`u)h>z}_zq84? z*1{+#JjVDzXo=bsaxkR#^>qSyl91AKo=AG-m%`KQ8T_QhFNUt`HGIUX)SGxZEPCs< zkbst!=1TS|(-qEqyZcW3g6=OEuIch+D-I%?OO+@+oxVPBbw8(l>5%bS*SGD>j~Wxa zhK^}Ul~`9^Z=v6tU-WRa)xoK)B=Ykf^%UKw9ZslJCQ^Dxe@BS0o4-hnF)SvaLUlIz z;b*F1Zsql!z07CIyJ;V6b)^oP?kLYrmUXp5DV-c&gU-mU zJbT7xD}FgIdgzfd;q$b((!!0V55X&zcO^+LH80z-E+f%ve7L)I^+xMj22L)S&U)_+ zo;cBID4XTo=ML}6mL#^yP@d2xS~Btq*(B*u7&6!OID9}d$wopU zGUt8uV*Z=fBgSVXGBh(?`{C=AKDTDB5>!G+nEBs!+D>PYldwl*KU6=ig9Ln7Z0&;1 zT$ZltQlp{ZpkaT1*iiqWp>^N5p!?dRi_6DW*JaAzrqwf-8(1GqFlBahcs}$^I$$J3 zo>RP%Sml`<@qkiy^R2hfcr_n=5#6=*YV^04-xXHQ$=Pphn^N{JqS+oitxvbQwYPZq zdF1AF)^^itGaD)SW8}fI4-nj_@Gt>#vuaJ#k$1=pEaBvSJiaUEJTNq(`K!uX0?j` zhNpZ@e0qT*2vLe)>r$x5>bhZ#3T6B&&_hZd5(Z@-rbvf+_nFrbZ-QuwgPIL_65a9Z z$v+ok4|y}2J~34G!of+aQkmxRYaVchN{s2?WZvC4sgbG+yOX_?j=NL1Q}V1?q}Q8o ztGYV8VshWZ`FhS}T9gN!D-I4+`w{smd?IaQjR#`Hi7JZifDUe${)*?O=pH7!p#>Cdi@*YJwYCgmg{ zNqW?~MEmXXGrhbh!i&v^6_7=0kJ%j)oHrgsBQh`T$Apm)-1!a6SS&G>t~$Qss>aM$ z*|?hwy~(Cu(J8U%;y!)T3jW8XXy)Zg zRzfFxE?Yf`L!Nj1bFW%=7?nY-{T*a2JgOo~mz{gu6c;X&nF&@@td{NvSG>>NeB0Og zl;CM=73x#^_xLIbFZC^Aoen-ls`$EXeHiDJ@Aus`A189SZ{C8BJE(qPAu9J_x(A*7 z?l-Bq$KZoY%myj-`<;37%cF+$J<89CpF3R9H)y^p3o-9!) zqF?f*6eWOQf{!{W>{VT((|%p%8|5e}u50!dNKEq7)D&HwuL{1QwO^hBZKZBtlR7Ao zOwjj%3K*9cd~66O2j5=hqcCthjv|Xqh<(H4at#lMhG_ zf1mopUL5`xceciL(Dl_@YfdbBQjoJiX!z4=_iz>U5$@q;6 zcm5r90(A1$XxFW+Ze(19kD_=g9JJcJV_Y+1aU_VnYzX0fVKx%3TnX0^GcF;dMPBc> zlupm?MBqRaou>0sVnFza*vO6WLSDZ6`mL|h`s@e?E(mC{O1-VM8v04tfoh120#K;f zq-}oOvH%JKDnmYNn|brT`2}r9gcnP)-QoRu=_FCepgRb_BB*{242CHAh;c*+eEG}$ z_^2GF3J4mG2pXx$_eukc0@V;8NxtdHsd33HOa_Pu0cZ$QoMyTu>Cccv0~Ht+-uML* zIT1%T>2F}lwPRMHJ}1f#p}ZW9_9)+5n~Cz4$&l+8N_E^oj>NAhFN9nDhc}D9u1szs z*tJ%Iwwt<>9S>P+hLVh)F-<|&y2G9=yY9W)Drfx2u4B18d?O42gkZNQAO8OpcGf{r zy?q;B8focn>0WkW=`N8L6%eEZk?xRGx)u>Zq`OOyl#&#ryIYVD6hZnu`x#oMHJ5S8n`}%xkd2nchC=;(hI?t}Vdb7z3J(G1Y(|uF#>NvxhYJ)zwF-1E{ zkHilJnQpy{vc>oYA#wc@+*nA>6&;9M*@~VP90W>}CsJ&u2z!bBLJt30h~lXn*DHBO zli(k#1#V15DNJ67-xR?u?g@B@Uf&{;5_24@sL-`pPIKSnzTF<{C0g7ohuH?4vS znhQLGO2wLehKqMyu&Jo=Kou`8?3ebv#CZ%4M1Y6l$V`fZPYee35c@;i;;eA{6s%itLKqyK22M026mnXNW6QX+zc9Ic z=5@t179Ylp8^(P2a#R~mkJk@J-)UPv^oEhKV2H2~*EE;8gmsYMD7Mo`bzrCj(VBG7 z6e!SIg)r*zFX*+?D6kNVumt}&LMQf8JHtqq?2^aM>mUi(lQusGD|hO%w$Yh>%-Z6v zYNL}0dA=B&alx6rDSUIA{(@oXQokW2vqJMcJmrYGtV`7=ZOx^PY{J=2G`>Gx?v&a} zUra*Yp5OUQ-_}RzXWxF<=M4p~5$S7n%`DClpX0Zx&S$!~YGMRuOixps&MkmMeOH0jx;4R@5uaFjCE>LK2PRxgzjZN^dV7IkNG4p8b?@;V$}Ij(Wc*N)2jKW zQvTZ(jfEGdoIkG6|SB(gg9tsdLG>i=%dMsmAY79yV&@%-h2=is&%pT-s2(5Bat-7{K7WvRIUgMnsPy=EF9o;G$RISqAp~oL z>|8DoRQ^!FO}B_fFlkUynb$)P3Bzp zhF;Ew-pJoQ7!>^5y?(W;@|ZlU<7Cj38KyCYPlZDUIUY)M8gF`mkx5 z4@ZP^Is-&Y{SvE-l;`TTXk}>b=^HFyi>YBRHzJ;?1QBJc=!5C%;$yQ3_doPy;M~s3 zk$zcb|6|MrKFe4hmB6NTPf3r?)9Z4|8RX@R2glmaug&)7eWC`b8wGExY-3@7E={m4 z>XNVIk~piABZPH*edkL*RVf^>wv$$WVr%_LdGYu@%4Ep z?r=aO%~Z!7uY(GH1imb9^GKAwJm-zR-QtCv5TfvL{n(G=;o#yE7ti`bPj&ABDF%i+ z7Qu1?mR#=&>*wyWBtvqi_+=~okD9;kxxA{Sqcetn_%R-~K`iz*P<(hMYM0P@la4P< zYaDwU>l50sYgeo)r)2h6XEaOU^3y=eUvyQyQ`(6h$^pc7#0L*Q8?F*qVmU;}z}sw} zyDu+L3`D)9{ecmJRRDDjlfgDk6I`g)+kACDV~L(O)D^Cfef;yp&__Z-WAotQfkpHk z3svrYB^T18jIOuk>QK)8Z%&b#FYeg6ZxNgreKl{%sdF_m7O?v`)h0S1#yRG9EwKS_ z@-@0yleDehqZ{e@GFttL4}y;K{m zYhTg|t&LKyaI27OUF&kTKQ_;DIKxvxVo`quv{4!IyAZ*=NW5lD3K$(N^52&XzRK z?Q)myXpJz1xm@dUO_(md6ir*kLeE~Ha;tbP>DB! zygiLa8c+FVBHXE-W<2XiBQ;-PGTIaKTO?;?OhCDooGep%utE;$l-8{UxShM~JE}T` zZ2y26G`!{^LV{?>yFrN&>|k^)m->EjJee&gjZ#eqD+zx}_7w}7yDar4{@h80(rjCz zYn&0$a?IqCYhM$vz$VIT9)!tY^(n!{t~#H@4zbtfM!dE_+*g^mOpe zKc1TNNqj(E0@c!@ak`4ScM^PD7x*~MB}4q{g2b?7XY=Obd7B;Ur`KY;l*@DVzlL~( z-Z7`eeq#r|;ZQhP)26l?(>U6(L5a(|2xR5ctKLLwXc$L*sL`jf_iN%m_kJd)RWw)N zlKyZ*BDdYf_!jMBxPgH_i;9KS)fepn3Yk`am!BBJ!|5S~K4ng=@OsY6zGlw0su*ZT z*R6Bsnpz9hp{9eLqg;L(_FsC3j>=bcyld-Ux}3zxnW8KIT)ZCql_Z$1E-Vu+-MgW> zlN_f=W$87TPWDz$rmo7tYyT4@blLH}0f}irbcs+rPse4^(#n2%v=Lg<+Pzc|Fx@3!b<6WER`T7WtxI- zSsuqtw{_y>m*5bPCo%UOMlb$C2V2VY4E-mVgQ0 zk!FKIlYSXefIKo~@Z(IZ422)#rw9v@-_rLe`mv|*xU(W9EI%?Jx^UDcwmIw`os7f1 z+G<(HC=KW6V=-*BtsyC{;3YzGs`A>HG#7Z^q?%daG3M>MWj5B@{Cq6Xdl_ruY^-C) zDm3hN?Li->S4Qjm#K(l}gBMA!RG}kI%@4|U)3wLfImxu$oJ@^HB4h^kyM1A# zKbwX1SVXoRPX2`V#%2GIv6;45wb=_lo+TnIm{m4m8fTc$$_zE#O38X^5Hq98lZ1u3AAXSMI)SGD58SU;T*F`s5>F0P0ylk7U>)b?<37qNL*jE2Q5&S2@+J=W;>ru(Ht zM5TiajY1zYdn?#~DBoJA>)nPh76!rztIMsLVamaqJc$z9km0ee#%{7+ z^2lFKpFaL_RPPwBbh;_t$Zx#(B|^lmx<9NfnKG#Q_+um{38ynAEGSM_z0rHVQFNjD zwfrJwkmaPXy{tyEuup%ak2>dri?76n;J$p@Z(+YT={U$g+;d-HvAGeBD%-^&zShg5 z7gO%hE83Zu#rQVV_SS_x=|hAAtF%P^v&|U(-$Ily^J10ILBn_535>BZ65g#huf1xH zd+%}-hR0bHS(cfYNtr8lkIlu}lZkvOh|%9#aG3SCjI@Yp`;{HHH^D|zneHUsGg4wR+PTpTg$P3c?6Db57BZ8PUx@!8yhf5{xX- z9(qP;tYJEC-LBf8G6~Y*A-4;KW%N-{#^&qYbu>?!tD318^0aG$HrnRgP+=w6o?Kgd zFeMu48oDpMp8X(`L7JbS!bGCYH$Z)H3D5ebdNx~}9_7k9Jvei$C-<;Q3#_%axk6W@ zuT+_VjjN}*-;gjB^yZY7s{cNzj3@VmNszmaFwcvk`z1$xt|>Bh*Ey>m7Yl}UdIK?7 zv`PD<*?pYG;SZ9T#ZKJhs=l}_EM~=sK2q5R`iSA6KKS^a&E6TY4vn!3_HQMq&5UbpLVEl~*8HA|Xy#@>wx>=P`|s~j9L=j3|hDTvA^vbJtZ;|r!wcb&8C;WA4IW>HLCif98X7w)I%wOBJDL=|cE{)RCu)!ypv)(_j~8nS-7afN6ss}q4YhL**0oL+P< zG&nrVCDD+stI2z@ma|f|;1V&XV%}D!Zu$B}FJ%wL7XR{HIyp?}WxskiCxJ+vLC=%% zqs#yadjiRzgR!uriCA$Pt%%qwcY}dD-ak zj7%}AVB$gVo3HQ~;BCYX^WoM#v_)KuC*C$&{R16iLmg{%D{<~iL?%zDq>gzj2Ctsv zFYaE6eIwr|{5~sa`MIn{(DheaMa4y()gx60XJvLgfp{V_GASRzMQYts1wBWs`SXs6 zm}(lP^2$FYhaRFwySuh0w=DZ=yU}+1erG3DyX;~}e$(a(AH-OAzv(? zCTmuD#*`UTC%2LQz7`R(QP^sXiW&&Lm?1M;Hb15Bal+it{<@(VRq7r4fr|lzB}eBK zHmqC9z7y#590SvwgEq9o`k;)WK)2*RDGwib??QUNZ7kVn<_Ao2Og^YU_W}PSxKhQI zTk5l9fyX%&OD)f89UQQjg(j`oBacg^?h_9^H`3UV)7QYkiPVf`7lAPPuw1YnxUgKT zNiw*OwJB;j`DfMV*3TW@NPe`o&i-D;CpR)|5bu@pgSHcn_gm3xV3u)wN0QiHoOdd< z?C8lklu7XHbBjSm`@-PJN=M`X_#4IdpBz)Wic zAri{V9Eqb0^aLa5>%qg7>%||qmR_t)y!%9wDZG0jJu$nyEoeNm8ziq}RK=8Tc@&~@ z=gl(%1%ogmw)N(1Ay)q1z`;Ql(I--y42Ac53rH;7L!WLf{DqCxe{;fpVM*igMDWql zYQDQv;L?4(P1+=Kf4!z>4=#TCSv_(&nk=P{eG{vCA&2ST2#$uyPalp)&bvP*r;XLv zel^-U>LRl=s)&7@zFnfL{hm9gxcGcEF(my_qTN{glK)Hk4E?@v!q4cdW>!->8-Tn5TPm{vp!vC`?2?9oZsQiDOE&GOkItJ4W*F*k$invuZe&+W~P7b~Z zaQ&R2!lu9seic%MuG~}55&HPyV5>JptwMW<-d)XDGD0KnoX>dO5=4Ttat~C)F&x%2 zisniHw?-ditRGmNkQT1SV`c*qHk7!t=oJ|ykv_4S_yPE?;tl3dX;8*d$niF+3x zK!PGMsLQ8EDYEpA@Z_vOwKCz;kejiqL=fc9(ZZAVQuQ|Ps5FdfdM{A}$QKtC58bXCunSz#;_=+MOWiBYddqs)R#8#Oubv2yW$clyGU7ym4gU{Uicfeo0 zp@1@sM<Yn&hhLOS zX%FeUm{*(!vf0MmDol}4m(0oTdBJQ}{LKTqw9{hi9*>dv=r4&Rh5mOwiEpgP3IuO@ z4%mm}evF9?5f^ZDmliM2*o!TBjuv6z$ zIauFNa9BVqT9`APkx6QQNBmQ@y~CH57z%EmO}k$$JxjrN7>51ivn55l-K%V}LIiTO zN*)|WnatUzmg;G+t0WfbS0<|EX~ao1^5{55tqvz_{IT{_J&8^nN*Y}wE1CL<^Nx9Vw-!Xw+LQ7~;$x6v7C9QeKc>wSoMP5taSGEWwvyXiey}0t#wL}`4s1{ zIVnf}uu1aQ&-E+xA~2aXKH4=ot$87a+l1D?9;0%JSIg~vzsu5PM282fGQyyde~%+I zCex|voSt?Z%|@%xt?^LBa7Q86Khk;0z)rJzJ_V*tK1HWd!&C&GkXoWI%l^3W_NRL2 zY{%~j+aA0O!5Ylz=nA~T6hjpZBHt{H4$g=G*EHKA)8mJ?Z=8(pYsBqx^s}2=Z%RC$ zce{6;3{ADWo9r4`x_gmb+MPMcoMthQp=p{?;plT(&w0HR;PlkACaW+d!EFD$d$a@6 z%$U0WCeA{1O4(nepcuRS6R;BQ9C-!xJw1;FG9 z99ss)A#FJF^4qi?>HKo&@XGiHu4%Jnq?@z^hM`M#abmoK6S4w&N5ylQTy4hCKUPEI z;dh5j^L~Ypg>4jl+i>ZYzW?UzevOj1a!c@Jm;g9@c0EFc6u8_-62h+Ax3ZK7W$&X}m-E!pNS#UBw~M zq_mss-lD1BOzu1$U+Vg%s@NwnCysT8(bwPD& z<HqGk+UDj5-1`NsGU zUHud|Sc6u@x1TLf9Xf#AOfF@w(07e>P9}@bw&Y09Em~hpK8afzQxv=&t{W}YIn0kd z4+~DpHKc#HyEZK%@<2+`i)vX5UKkvRmi1%b;$I%N-mcb9@c`=vSO^c;_xqoN847^_ zUbv@(|J8(nEzF36+3~*`0HQ_J#DGoMNO2G-u*n!ngCdMtNSZKU3P#qT2z>hAae(0i z_~jBw6G6ZmkTfWQdxESX$b?854B@x=TLbb1p!5y!C8M-i1cq>P{aqID9V6Ev44@5= z+ae5xAshpLl?600k|u)SbRub@2=5J&h9DrIXo!R@NO4ev ze+x+ygQC^}Lzzne4uPO2{9RTY0RctUL=d2Kq&P4FZi%FcqO2hiafAaKISz_IKOmJA zN0|?RSAjC;BH}RA{=$S%v>7G>7{`(7g#k2C6b(R(qG-U6?x-3JRfGPECWe4P z{oP-fILew70j2|atbi;S2)fZPecgeApEkpvb zqK<*+zqDBt2t+=gD1b*s(V(KJnmFpZ5{0485rAGmnO_KS_e8D(pu`|wZ@|@tI&T1X z0%eXMqEOWHK~U!dg8KXb11@uvF@=bsjwwVOvAgE)v4_9_d<2Sya^Cuf0q># zLLGZCfKH4YCl2JZLD8V7>r@;_34|O66GFY-Uq+0uF5C zaS;Wk5@lS3!3aF!-*o`j2Xgx$Kw5#23F>Kkuvn4@DG$cju0>whG?=0om&ilmGw# diff --git a/docs/ODJ-CR/CR-TT-04-09-25.pdf b/docs/ODJ-CR/CR-TT-04-09-25.pdf deleted file mode 100644 index 11f96156f3730fded90c3587eb5f1fde7a069b94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54522 zcmce-1#le8nl)%KGg*>tp~ciyN>g>$ZndhAE%dGCK&oTl+)BqYr*w1%+&zrCSd^&t4DYdU}@zY>>TwS6zmKQ<*cn8@EP7pC3Wr0 zMXiji@fqLVOXyk|R@4r&&kNZEW|9pLdU|$%tTMeLeI>^EXd5r0=#Dat3;5E zOmu8?i~xE@RsevKj*b-g0=AU2Huz6f#0_1XtnCc!fiS$nF1%`@Dr!coRD8UG(u#)i zQWjRmRCGWfUPlL$KV4D~k(R(0Q504blqZM%2MK=|{x1?<1$kv2mR8&ph^)@?hciv! z$gCZ$9Pk1E)bNi8|Jv|hRRSX5tF!*qTt*kD!K;AyY=4UW==*nxl%cZ&a47hU^#6qZ zN7BF1|LAOJfDiP5Ae z@2@leUuRJubArwe!txG()CSPK4P8ZA&kQ((S1c7qe88WW05YP&gb(=3?<&mrfWJ(x z!h#R@%ik)j_<%PL)2aZm0Dt`ZryZ~m@T$`vHfV*c{|NO;{Ofy3LjzM?K5J)ubvhb4 zd=?rudOA8fW(Is_0R5l$Y;3@iSAne@fD+l`1O5`|P0cr%?D6S<;i{`=k54QAw{(BU zCZC0&p}~K~SFkg+{Li)c?W}G7b1gaRS3ZG#;V`DdU%MEngTVQOjm=Zk=qfMiKITE1SZ)4ytmPyebL zKK-j^`1G%O;nTlrg-`z~6F&W`LiqHr!r;@tl8n#r<_Ly26oxkxhBp+3Hx!096oxkx zhBp+3Hx!096vj6c#y1qkHx$M<6vj6c#y1qkHx$M<6vj6c#y1qEHx#Bf6s9*6rZ*I( zHx#Bf6s9*6rZ*I(Hx#Bf6y`S+<~J1Pzj*nJkiVGttMjil@&6v?U*r30M6b>YrUj3olBa~kCy{Tu@`0}EXvU84-$J3iuyjOvhp zko;npC_^J)(CZrL7Dc6v<{O(@8I-&u8kZQu@Lj8h#>}@rYQ?3@!vdZR63Ca9mX^s` zn_2CBr~wQBS>SXePbRi6whOywck6fn`Y!eMLpZ{pDf8`%|DHTwQ`Nr{384Q!MC7Z5 z{*6dxI$)}#WBvz^uU`6J@i@Z(sG-3618o{L}XXci=x`t*{cqiw2db-w@)>H`C z62&Li`ldv9Cwtbq;ETZf5bXvDRpKV{FRaRJ#^D5FN_7n9-MiT=i2_@B7^W8VM9<)4)MYQg`1P08{Wv45tHf0zNijhU(jm)X8v6;S}o;e_!U2|PMeM3V%3a@m|tPLrE2&E(^ zQGz$?qfm(*&N#6siO?R*I1N+DS5;Tn%G=o49)K?EnVID17?>5v#ErxcU<~aapNv7g zGd2D|@;_1eC;0!JN;*=L zG&ME>uIlK3*ZkHN)^_qXy84E|1*j-LKcB8WaBWdHO4{lc{FZ&f6^({3x#<#eQA*ls@mT1yr*PJ-W zK`xlkqR;@C5LJAiDb7y>QQ#>_efR*s>T3N#{uJhRmTy+~8;2j#iC_jLaWu-EOozSo zFNd!=pVr+nYca6yM>+YjomJd9{dEaU$@(rK%#A-dUKwUzz8~Zdxou<5uk8KMwO#)sn%hkXt^wArL-V@Jn&<~5m~z_JY2xB5+Y^c zN3XHU*4duuz%K6Y!4NM14flJ{WUyPz_>VuGkLL=MrWUM06kf z_iM49Yj9d>vzqlHoz$x@r4=ewuQb$UZZD5+a`@5r(iP+R#dt0%+a1QMKk(Fz`*dNOuK>F-)474<>~=R;pW;^|Djznm+3q|B zg*@@Vi0``(1$x-5!=}`IK|jUz3ExD-RJISfBKIq05%Y;HrRSUpywarWHIxH}eQSI} z(0lOPj7>b+_zrb39zm7hNhHzyZ1_Xb{{$TQuo(KY3W&itCeoW5lbpwW#xIU5}7E*@YD0gY7>U67+t2P zO6G8Caa`WK5!a>sky=h1dK!%QJ#3iGJ^>k4Q3r-vbJyZ@Eiwr4vYc3MFo@4`FKF&I zd*Cs-%mm7QT8G8V7+JP(AzTOYZ`-c zeAJmPqMmlLTYZ7;<->lKd8R!Oh97*Oz~3F%&{C0>FntcljWJREu0aVkGibC z;JjgVS%1>9NYHFjUYyfG@pPWyuXt;Lq8~LuixFq)YKNmT{0^R)&Wi5Si2R;_PL;_p zXNYu!+$%1fHs8}8b;ro3;vmiQ#Yo#pb%B9Z_g!&JspazaNm7C|> zaIo@tO5wYG#NS{-MM(Li;u4^jgO%~nBo;El%eb&r`ETdR%20BGE5*Bzv_;&pz!_uS z?~gS08xjTfD?L}m9|(AlRw)}V^)hm>c|6J`2i1&CLJH~(Dg+r44bZHjBvm12eUiy4 zg2y8!4}m85B1FMw^Dfg-M!!mEvDXWn_FW5UOnqTaeIma(ZGWls=Z-MlO|(2f%V%=# zfq{Bw9K;G}(iB7-2_7}aK%H{kO10W_5}AZ|8r+NFI&*$U%B9Oi?+05kzfFaM-9myF zVYr4f>=9?n<`Cg%d$BiMI;5%UpGXg~bi`P+C8=>RJYY(8^oPvPZr2~8ir{Wt@%jkv z!Wv_l5%WyU<_WS^_w%tuM=6yPsN^Em%&lU3JfgDE=?9A4&KB?~B(BmmhfD5gHt5r6 zfJ3(;8KFn-WvFC{h#|`+P4*qk!rZhygcn5=qTy;sSam2=JkYKwZniLVIvQ&=soHl) zUOt9J&%>b``r{Fei{N5!a|VyN5H=C!*Gr3;S1KXd7B|d7-jEZ)no-TfG8DiwkGn8Iu1rBx%TQc9XSCZ5Lo$ZtRNHgW_v z)`fN6wDSuEBV5zri~9JGQL1gCITW0&#J!-;)eNuCk8F9+;2!sm1S`PkZwtMXcq9Fj zc#ivcQlvQCFNdLZEgk#Um*a(fHrN4Sm>LF=u*N(NratjBDRt1eF->%u?`9!J_dA|J z?x`0k8U5VEWlU!L1Ng9iU6ZtTuKvox^(Aa2ruxh?%=sQYbFos$LG4FvRKfW$-=Q{EMuNf&^14lB%6?;#rg1QJlCFo}_|b zhHy~`4hgPbw4zS?aQUG;2W=h)ZK0F)#A!zigx0WMBRnxd%hzePgiPsRz;O zQ=y^LeQW)*SH=D>duk-5b0>2bG$Z|1qlnV`kai@}M(yyY%t%YmFD(!C1}~;f7rx#7 z@6mGe1jVV1dU}U?96%D7Wr{Z@FjQ5K@tNYEWR>1yntfs)#wy{!`qr`y4@!c8jBz}9 zbWX&BlDn~M`+E^BRU3|~Rb!oGbL$ZI`3t01q^-El+A)*mZAyciocbThK}ji(mJ0VQ>W=JwS=kE z?oM|m463B3d^ywExN4zuP+T$_sge4i*pkF#g}kSXU=J)b^~t9ML~iNQ-{XTv-|rtq z6_FJIo~M7l%{?tcX_kA79c;#qAs^!tvS~Y}#(HRj?nkpa2VMzW9aE=L#@6`bbPYfT z;Y^=+{>8%!U{HYZ&XB4yzYcDBA(y5~+G*sod^*=Nf`9CB_0qk;k{jUMi|ae*184cK zm58wuFB-zWAMzC3C3??Gx2XY(T*G5UczP#F4+~jCPwz#=MZ~E`0{i@NCXk7Q`AzsK zYD(&TC=j|7vsZq>kvv;WW7$gxsDDx+i>vu=Eo1rB_oWrB0K})Qm?j++<6Zr&hRN!0 z&hqnKZUfCuRp_*fU6wjPuiYj+7mg`QLqo_xiP)5`{N0X*m4GDGB)Gmvk7q+MxNtMDvu^eZ0=emX|{G5@)+e(I!KSvU9RMU5x^gi^jw+z^FV!(?Zrg+HBUP zfo?=$Q)bAtTSIoQ&5XAcda>0<}NDZ{?dl;QSRjYSJAZH};iF6n%1Kux!lk_dV zvYOODx3bkUGwGm})ru<~r3#XMvEH&;DWeORls!ciawKaaD1YPz+huWqQhv#`cRvm1~H{=q+<|*%0m`HcHMzyS0IlX zqD0GF$u;mkNso5onT#?{ZH1>hu2#r}7$Lx_-ezZK=eS-Sy_Cf{Y6fE^A*PHgdCf(& zCsrFk!-_XHWQ7Tb`E}Wh7PsoEo)?#yTqDAsGFWjuJXft{$!O_d1@GBGDP>)*xl*ii zV{fG+T08Yio@w=mI@L%*6FAyAL|(qEmkH{YU+<0S?_9D4ixExv`oK>n5>GryEH7xF&kDYTG#CaS+f4T zc>c-y-H58+yTARmGOv}E@<~CNnVwLIZ5*|m&%69mwoENP!zdutU?059=#=V6Z{ELL zw061P`O!MUuMh54D&MG4;CwV;iz&qqwzziObq#oXLOXRuk<+P0@JRWnM&@CviTS+h z;j^<6K~-gRWvmx}v{}BnJ{DQD#C?~zgJfl3#3ByPJR}CDTC87Nl0c&;41M~wRH}QVmH$J6O9%VD_)Di|(%v17G*ezOClNq zc9*WZ#T_6H1J#`Xvb9!~%Wa!_Ac=?#>cg0D)S&}v#@{2=z6jwK%#jpx{)}+mPbzi1 zfA0>ut5)gKK3OvzX^p7z;s>Xm({Fh>Q_&2>?x#QMRzyrWh?98TTJP)Sdj^x! zp-w5&lIAx`+B@M9eXTQOOJ}lqp}mH-0?McEZM}TXY+-YA01qIb~^B2Y2gR?_0JxwtzJ|*ZOb-U0Tvl1ER$!y#;w78 zJE6cgdwgkK6Q4bA5BSdxl8vq<+HDKexD_kX$0{?(+z0JDh??(Z&bgwR?+P`aX5!n6 z_qXyG=(d+WHeQ5NTSih@MJ_e;!Fg6Y+IO{m6SWM`vtK6Dq5@zA!&CK}#XdxJ(1?{0 z^!h|1!uGY&Br#afd~B@W8XQ0HQySI9od~{fRJS%J;p_@%Nb1a3b^+`yT`V;Hbk#hW>q4>@jiIy*W>b_F@x6OW} z4B5@&Es{R7*MfJ4irxqowjGq?z2Q0guICM(wtt<<3QzUiya^(SqzxNllUig~)rgXt##1DIX{qpS@5v%JzKg`@$2#_d46(5z?dgLg2MoLc(L^pA)cR6&ujQ@o*%q zB1*~!9aR;c(7R$-CD($FX&{;fGKv(M-8XKEdwGF(zSU_MMiBY)nA29^Zf zb`Mn%m~3I?p#HjAH#Q3iY+5*JF5aN`qcZ@uk4LI;o>#jOj$Juc|1v*(;FSgCXOE^1qCC>I+Yh zI2PS2tb)o1qsJDX$ioVh*=Tec5RT7V@BZTa$Lff=)%#8f1 zNG)oiw|f+IF+9-Uc#)t8PIJRobiKAcR&ZM)=XMb5QX3FEN@esl`;gtHTm)IPblBks zq-np3i#LnS?cjjmPgy=x+|8e6Q%~C6u-kl-zb~E^vt>+HI&KXMsoIs3R~RyTl!!>q2pt%T%^T*Pa4Q$iGG=QBa|8fnj z0IMB6mMVUpfEB)4I&|vWUc{jtzSx`Us#l=26tW#vSl%1UCcP2D--<9OUZ;g#9bHfA zaUNDL?B#aoA_!H##Vxf(5%X{jqyW|+9*DF({`uMnjg0}n)xj;k#4>>Yd!3>g5PBO*k^R(oTf- z5~r}VmMF(NgDuna5@V8UdgNDHH&om=>0bPZJQt{OhP!0ZESWS4K1$ib$rSi_D zvQ!qZkv7G2Ype7zFi2%YQv$1K8X_nC zJ;!0Pk-?2-xH>I%BPUV|o^AS}i1P3Ir^U_AZ$)@oe%QD7D7QGCl*d6{VlO=2>=Nf7 zS@iy9WTc0Vi2tZb_6vHJ|bA+Ez?Q9sg zPy$!Z&EKx~V-uBg3YL&Y2W0Ic>1(B9fqlHCm~~aC78HDsT%97iGxA$*)vJ*|fx|a( zzG2z3?>I}I8F7NQa;ku6|luBz*MANU>{#`hBCkoz9YwyMWStOjY>WgXQpLelpJbp+>~f*h3534(l6PK_oQUk_Ai>Y#J7a66 z(a#WQ2j5iW+zw0TR=wjBYzQ$l6b3PrurO|IBH%3L7{G;0!(BA|yjfYc(kwZQ#;Fp& zC5;YZjSQCW@9MCWIFD^m$9CF~blQ=0IFPghU%(3+5_^NI9)R2OPrjoiKA5td>VOv88z1Js>H0pvcLi?{3hd~Xh+Fi+pH)~bqz#@g==by|b~vp8W0`3Z`qT|WZSfiA}> z^!$oDx(XX#K~$ni^PHyc3ivg(4c3d|42_~>t&(J|vN(1K*nLW;4VDZI8~zXOmow>$ zxiU&3iPcAf2@Wu4`21X97~YWxKd^(`2Y$@Rwh8Ew$0Wh^7l2li<58jD+6BS0MWM=| zqsUXZ<^`=|5f$^;$Inr>&XYZs`J*9CmH_W{FeF;1*cqaf9Bgf(@Q7waWv2<#8DjgAo97vyb!nO~9^0L{*$*g@z_-Lq836=Lvy3mmf3=pSyCMQ&QXcZ4EbtXS8=-zsL2Wq^qdSG*d8~*W^$1_*;+w{hmZm0T z$4HpKR(ZF1j1o&68p76`T}t*J!2g7j1G1y_!f1joiyXH#YMM~bx+hFsI-Ii|`ZU5} zW#|E9A@C3UkHDy~ic8yg7dmFIcPbtVL6I&0I9O8=XM`B2i|y{&*Dl`Au)1%bIu^F= zq#~lzLPx`=lZYDT3mGqD8&-jMqRZe((m*Zj7DXMukFeX1N)%9pOh|!@4K2p6E4KWy zQpPpologp1^nlA7ea@eSTN^xi>w$4>bhnm<{=S>xUQ(rM2te8y})3~Q8wm-o3bZ5 zm-*i1mGswWTXSL84d~1>6O4bL+ebRO@{WQQU_(aPXQfD=DaHom5aW}fc%Ykpfg~d= z*o(`FY2lIch+203Vh#X0>(^8Dc>(Fm^a7;t*_vFl| zA6YlyixKJk=PfoWnbP4^K2DdZkrvQDM!5L3tburwK@oz+Ju*ebu;)srgCw%dLZD=I z$r-Ci)rE&5l%xh1_f;Hq&fWbkHblNvF!>qgnbm7d|Ku*{S1LHWK_Q7xSWhwBB@7x? z3@E|Qy~@mHA!-q`&y2xS*wQM$Y{HA|E-|#A&@>ssp5hTmIrT&kB)_&3^H2Lu>0F1c zEg=&uM`*&;e{bd%vjjR-)Ooo?=n%*+dBF>-u9m%4aB-wuLhd7|h8p)R`nk_W6ixl3 zuMikC5n?;EUSKYlIJ}Z%E?P04$Jb1DxE>$(cRAr&0;0)6QvOHN{u090Io=m0xmp%7 znpqFec|~VdaNO)O`ZavUc~uHNX#{OC3swZ<mCo$ho}y^to|D!cdv_$2lb%$Yl$7 zFynV7N)bf6wT^ljJdt(KdtTM zSRC&rK2FMBhU03o^t5pslDe~fUaptxBa91_b>$ZX6CuJbn)!H_l9;2)Br*`|%82ca zq>;t%?g|YP5Fo%WQ0TwccRFTz2BLtD9?uxfVBe~GWf}<9%hxH%>G8zhJJpQYs8MYs!FsH&$#H?4vMY zj{MFrk-P9kZdA@x&*+)j#<>5!_+ZEAr#)5OVb15=s{y%w9FL5lCN5;HJ&AUqDIIR1 zT2g*HMsEY%m37#0-bh=3>o6gg<2{a>zahkpuPw7-a!GlABg|Pl{^O zSdyCW1KWRdc`h$GErVs8!m0(MhY;3ED`&3(Z(tOE#wa{8CFr{4C^b+lFqINdrrX_e zZR&&>DROYyC6-F;PxkwxDWL?A`JyJ~pxa;%fzf-w~Enu|LvI6FJ~K6I2?1biNU9(A?L!* zna5&vc5LQ}BH^iI&Dm%reDuHmn4;-RQdBw3%7PP$Z@gYk@qi?w4 zGrhS{W`%=QJH^6n3wJYqsYk{}AlY=Ok%)T`Lt;-n3ZscZlKXo;F@fM5asrw3*~Zm@ zozf=lU!-MNa9Fwn3YX7=0cVC+ijU>p+^I`a0qioBsvd1}S5DS<_R7D2FYY!rtcjeo zjADPQ5hZ#OZ1zkM0zny|moXe$4fm8AL%Aw&-SK)a{ve`Zu`e^_yAgCw%5&~k7*OT> zg4e*`XcV7^+8tQ7UQgbvH1g<7xka*W(9y6dm5-L7&kiNzKSc8(3lZ=qBangl7~7Z< zXsvADS#%MaC{}r`c<~!FYs!y(`8MHX{^N!00W{)bnpZ{F5D5aiY(8_zv1H0X!FKm* zx;-(t30aR4ypL>lIyyBmPJW-%QTw;yRI2Vm?7P(aG!xaIiN9>n9*xNqOhH3FxLnq8 z&>zqLrU950G|Lxo4MkCTP1CgYXGjXgG8ujDFA+!yB_jyfpJTf?n8Oq5(Y8(APjCS!IAHS zzWDu8Y@%++I23*iNmSf^twG$N9(B%X6ux~_e$o?FT2NQ=gD^c zkZM2m`nb$i^l$UIeM|LYOoB`r2-5|x2vB?o>lkfYJ#L)XBs;~YJ>#l*B(*jkpmJmn zZG4eF)@EQyUgX)|^v71fHic;lHegyGjYDfd=zj$#h?XjdCFWNom33Mj{JlbFliNlO zgFCK^Ez9n6cI)(lt+)-vnMob}d|Hc>+?cbOGL(QRRUS7{=4;C2;y}tq>3+?~8D6T^ znaFL_xyZ#kg+IKeFD>UjwP?)}>Ap<&Q}*jF7D8Lx0eO)N71xH>?a>W0(iOvP7fG}N z&WLR0=VGuVDjDK?3<+wiQDw^c)%au01ZENSpP_T=eP?{%gJarIR?{1*>G1A|V-|pN z)20glQscHMRed%*{9b>$j1<~cLgJ8$E_L~9lsf=9EhQKcEKZES+)sP4bkba5Q1LN> zxT8(td=yu+Ou;vnkwQUTG3A{&mch|o(Y*3piX6+YT(ly(UfykgB9I#q`TG@8EBiba z^8jt;P%cWt!T$br@^h+_B*`OGzT5!M)S{WSgZr>SQlQsH1m^Q&t5!~8n*w_4#hv4-2QE69RvOUp)JTPZ(ESx z9=Bk5+iLu;+Z6#!z>VDiM#lfzugLng)Am1az)O#k76$_$_m{KS|G*_XDS} zhlG>++?$MLR|kTl$o%to2t*-e=8xXphAbXD-^-mas=QP{^DIu0vP8L9;*regNVcRh z7fdOJY<1|ZB$ouhCAG{`g9}r<--YA3`1>)Y;Jpp<_-CHDF}%-=2leqw;0?awm<|8XbfnTL8LL}PSD zoyaG8Bo{6Gp`CZ4?_6|0UV4IngEY|Gk=P)+1@!&kr%76xfXrn&ZRa%n?N;JkO!2jL zlI;tF+A95L9(MV4;?mH5z38&ahtgH#A*&i2!SCdKCOeblx`wyvwn_S!WyX`G1 zrE~jEo$im;UJo~oJdMhh?&Ra0S>7F6o!n2dPnWIQ+#Xj%ZV$Jc@vbq5Smo|rW}de< z@;~oij(_ikbv_J^7G`?hE$;_uyL;v^nOKO;X=#^>(>#SWUgAhd9qEOKDP!e!sz9lQ z3JJS%=bPJ!cD#(oR`Y6SlaLnC@^+KTOQpe6nVD{}i-jj%{gRYz5BVR2VE-h6Odgwur^=qNP;wRr!6D0s+ z;o>+T>3_FItbSaEY2gHeN-TbT`JXzcU*9?IpJK zfm!*4iiS-dFExoVZtj+*0|^{?NM7V&_O7T4Em-mm70$^z!4m5F0I1D)1O(F5X zZ=DoTvl_lo_l3i(E1u9JasGD}K{>3(x)V4@F}`NPzzbWWcpmglo4{erj()z{gEvu)Ndv*AZ!yF_-YG*v zK4Su|;Q4jOFXSL_B&s@3wkK6e$S?er@X!TyxAE%EMywEjR2&IB^EX{FB4m2I=3+V(9!a@Ms>-ET!z&Kv$zXH2^Ecu!ou;9LzuNzSdI zOe~_LHLJPh%oLCt2EnjC>t4Jas<&j)@*bs#xr8uxfSZGx!0ux}=9b$iOvXxu@-rB0 z!3Y9;s){+E?`@xm*)gcvX#@%aoNK|?gl@=fT4lF|M@yJ~Nm-cwGZ>tCi2*+bb&5{e zwgul&MZw~D|4vcrWO1S4c>DHMRMv1I29AlUG@u|>Gm13el8zGwrs}`ni>Yg;)XBBd zP1(_ox74%*bG4b4I9O!~S_O#XHkQuf%#N#1%}L>qt%q+g#ZDPjA;%Y4xvRQNQ~!w5 z8sP4Jc2%sN5(nFYX|*vKBT4Ov!Wyu)p_=#gahuu7DuLj?um{^M9Y!`o+d7t@&nFQE zTZ*fC7pQu=r-y`-5@aiMk#GQz^HK5Hpo%y9AV(qtp=bdyvEIc>q-PCJLP&B~Pz5^s z6g3R#8%3g2k7O~%!xL4ilmv~@<;>I$>WU>q_6w1yy5>8}2j^Z4bnapwb<(|Kt(m4r zzT&Jq@jlozYB@v$FnvKs!o?C;mH@Ii6Ex+i;Q`14?~sZx8HAP)oe(e*Tydqnlw#ek zqE=`Le^?0&7JN1bE6MthD;jbXp_moaY|x}SyZr@Q7SKbq93vEeR9$qG1Fn(7ix0h6CI<50jQ1*noL)k^z26Bg?-0Hh*4z?YkXtRY*XWQJ&9jvc1&vH~E@f?+JKx~fTA6#%ODGhcRnO{dd<-q^ySqxaE9!*WAhMZl zt;oRrYXVQq0H_V-W)TZS@p&xs!E0Yo5pTq0G6Mv^%n~@-0%%M|2GVG;n8it*g$9rjJErnER zMlVS+z*&6rKrS@RbW=f^Lotd0{U!J83=Kxiydya2o^r`C2|W$C)%p zWJS4NT-Oi>)R7x4+qc2H7nWu#!Tp5t7)IsTX#2&c8^Pa-j7y82I-!kn(kAD!K-lwV zY}i(Q4@%)+Qo^(PhnjY-;sk6 zv1+MaMLmS1vaFRA{@zsPZ~g8l!5KYC$MU&MWsgEVS#7tS&Xvna#P#!YGU$HkE0qG^ zna$L&h_i}vIU!j5<>u!KuoWTPp0mibHH@rNZTUG*r*)rPO@#->1=27n#8o?1o(*w= zEq?I3FuAbAqKTv58GJfJfAQtO@0G60jv88n!g<+=2ojl~nNGUQVLbDisw6h{WrjNz zZ>bZzjGTHuZulD;O!N}jXkEM%{t4|9%RrV@lC@ZQ3z`GNmo@Ouh*jS<-f=_if~mi# z)a?b!JK7S*^5OY%+$v;}ftp)BkWM7#X>Cbbe5!`l;rcNZLf?!eThKF?p1-7n$B(TN z7LrKa0Z+(L60G1q+ADrS;m+h_JktW&=-tJyeGJ;l-3Q^$@dpx+RGp~3D|SX|0& zV1+Y&9-fgMRd%>v7&9%~HpYHB1wJ=UPPw){&Mfm|+|1(=b@dx`hjH`tkODW=%nRm-tuBX-uN^j!Lq) zWK++edBicsmV3UJSx3ngf^SY5MX}l$bWwv?t%UVTIW-G8kh^=zQ__$>TU*6AbSQcMr;ag`*5^XhOb#?EulkYQ^f9^=e+Sk`N?y$Dz+m;@|#FBikL{XcewKe zc)L5z$$4jA=8VXe@9b^fIlIm_#zL#M&^$8dOMZa>TuJH|J7^bdFO;{}U4Kz@a%Qld zT~ukpPQ#_HXR!^!{(NGN8;->vouR~0mDJl(I$*avrzH7R7FId3Ca%|nb4n}WXgW1Z zx7diKH?_SHBC#S8xj^@5X&}d)foV0K>A)yo_87Bh{wmqby>UJI;6C5u9_&i8-3`sO zcv|4Xng1+mAO)-+M-<2U=nL)2hP))wPehZpF_w+9N2ExxxduG%1X4TUl32sj!;a_$ zFOn_xA~h{+r>!8jW+_3ndIK#00d@WT&#ezg!47VHz)W1mxVqjkU7Hmj@KLB=67N0zy6lwx0g zoctlCff_3X`18DUh+{4jwR(K9>tb^K*{R5VL|+2y?n*Yjyd_8f2h;7CfEB7wN7{B+ zt2or3)MtH9tAlMhN|-WCG@mf9HTpJHYOv$oM=4a1Bv@@X2@My9>;l<~7_2#3)k3I^ zh#QH~1c^XHiaSRI78$q(U^xL8-{(a@ozMoJA)YaW4>VcKjpmY#e)}4v78_M}T9_gl zq}pWQ5Xj{n8?;s%H3=C zEzBx#~8$CWw zRX;`SYsqZGgxZhM*|L!nn8mBUDhcfxT{*SP;^c%PD=mJuks{p^hQO8VnIr;b(|m<{ zOP?IivE4YY{OuR^YdOmV^?VP*Qc)sKT%!8UqvE=A$Jzw7G7IK>%Tk757R}MQ=;xnW zEpcMh>%v33=<|JyvrO8|+?I#v8LT@gE8h>N`1AHO@U0$Q2b!1U#B)qajRC`7+zu5> zWAAS?IRGsC&uFj*8NUqnlH+sNs79fLzQrVIZ0GzYkWLTY&d8R7mCH!V^+u29QRPFA z$xb25E+W-nEp*G*vdLw=43cImc*snOTCtzC)jjm^H~T{4L_`M8f*}tMcSFeVt3+3( z1=&M#1ItSf5q|6!NYGd%Fd)7rU<*Yruo1ilf&gwz$_3U7v+rW(zx0U!5ve=I1 zn&OrmU=Nx7$&gx2o58YP{c8tBSko2Fy52E4gPQ7B4?@^<7js(*a<@;+tLE!xN1;L3 zS3A@%^Kv&MKQ7V@T&1j+i_e2-kd3`<=Xl8SV+hn=Sk6V}KO(6!6xnTpbUTlQc`!?y zpD#C3gZrG{uc?`()?!JAtTq+OZr)J8jBT_3+F1bzeZ+6q%1E>g(C}KGI#ksdXEx@e zjBF7Si_l(O0~kN9%o&5E($%iZvdzU>+Uq<0oOnWQnP2Wds?Z!OJFkFRvpgL8dT*(@ z$VT(YT(ha^_=Tnk;R^%ytdM$XO8)uXE}zpE67mDK!40XAvu0t28fUwqil3?yn55nk z@7sIhwC};XUA#GvkdKb?Y$bdsm1&;Ju!q1Cwk=(7NeD4e!hMFpw|=*0b#Mx9QG5;y zG8PbAg1l)2ahuX1nv&f{1@!!&nV*wR+U9KWhX#22g+SFx%eG4S$=^@K)_+X1O1I^m z=|WX7g%C%>5YhwhH{A;^M#c^bwzJ_dk*ACP+>QK|)EUHhq*}xHBU-Jb#CHx+0f}wq zd~7Ai*$h!j34Ss(BQl{>2#i`x`=R~1kd$tMG)o(oJ?KgHni`ly@N}osiBrqvMMCV) z(Q~rxR;01#T9EX`s&)M@1V3XmNe#BNjC7ZA?iv_*8Jhhkt#gvO9-6%nVqhYp;x1v- zhLWO@ZAiRB;68l)!8$~DhRqqMzdCq{)m3eTtnA|d+uctdS%7P$cdyGphA4xwFUw|J z)F9Y+#E6WH){n?1`-AO@_Y@+pu8dE>5Kh9`Ejr2p#S~3l;GrEs7N#xb#zF(1)jRgR{h-D~Rw%PZrq_Ji~NMYIC?<>jCw^j7A zdTPoT$>xZPCi#+mpXGWIk?ZRDKQ`sVbW6Wap$z&B3wnrP|Ed0?ylIqRce|AdBAR=^ zT#Oid34iIdYCiCni}}g3kZ*bifn1+?1@2?}dZb7anE4-pe=!?d_%CKZ>x2d+*Ghm? z{S1L!)9rug|G-GXw^I!TUR?a{MQ0_9DHa7R*ZT>H7NR?c_X~7ge-)yZEka~tY3j7+ zY#_?=VL2~!wD0#>w~rcN&xR(bU=yIVp~Iau+p$^PWy6D@1VT-P_nzIq9tn-Qf6>6* z4SvQtweJ3f`R5?w5Amd4)%kj8)A5446E>>)b7EO&{&Q;lb69kB{Hr$Rsr2(d%3nWx zJt&*}RrMc5iz!-v!Ey^NX^Sr0ZKV(f;%*4~zRag9rs4_w?iN6a83?6Q#c|)|`%Qhb z`PboPIOn&`?e`jp1Y&SlP!T+j6y7YVPapz?P|)a`o1al+&I&3`!0R`m4sK&C-d_v8IrtITjbbk>jRtN1C5DNc5PyuCbt}~)6!+5Lyd4~7M)*|}*7vnr z?dZicqo|v2geCYTt)c^3b-Tf2e*&#W-_5ujg7oHV*ZWuNsrzLQSBRs3Ov+V z74qEKnP3mM`y;u<3a@Y11X}r~;(yEAENf6eJL#8U-0XuBq=#;zwI*|~c>TRuEF;wt{q(CRQlkQK^i^^YinWBGse^R8_zeDu zX=5s6(~f?2qGJjuUe&Y}ytLUd+bk zh90{=gcp8>!vOyb#0Sr_jv5HVmNXyM=pI@l60{`8ecEU*yuq}AM&FhY$8-}FKBo6Y z5Eny0+O|;3oJR8w(-5uBvU@}@mhb>-a)HFcU?NK#89v=SH;%dx{J@82p6w?j4lX#+ z(He>>n6|~FgD8C|@8@ijsjY<#mTmkstR==dsJWhTM&s;kW3oO|#+4>-W;YS>WTZ@X zpij6uM&Uwoq=?*f`WY9kIZk8ngoVvx3UmKf?RqOs+#q>zQy)Rc!*b#bvYIWF!55R+ z?avXSr2Sw@M!#JvltDsxb>%6+c%Fu{f)KB8rYlk~CVBsD&M~=_d6Lu|49V;6%&xNj zAD+7>={`VZce`qX`JRuO*5tv^dK+5mrj3R{@MCu2#nlI{uIo*FZ-(*bP4!aFH_~|l zu4dQiI{KRU=r3=8AGG3fof5j(j@~dSpzS;-fSz`X5quo*>oCV#CIwdrB@g?*2<8nT zxE?@GmAN063;83!HUCKC{O?bKp8^!PVvtTg*6%MS^5>uvbVQ5hVxJmR@aql7A(nm6 zYPf;BXfTzGKW=)y`EIx+kII^&(@;YV%ik!}hnLwi)%t00aIAbeCc?mw}xcBV%ijn}2G=nqUVQ8Mq73OH!S`Jj5&=3rYD}z1C+IkKFX*^=> z@4Kx-;5H^6@}d}b`vw^pxtI#yxCVADZSx23(Y>P%chgM;Tr~eFNOglifahv3% zqRT;2b!uXoUyC{s?Gp;sB7Z2m=1p1m7pR6TDTYJ16B6_vnHZ<>)T-`jYr_%CdT-vr zz9TbgIu3Z9q%QvWVaUU)0q{ zcnv9Tv|Tg3IqIdIFi1a|VLB2e&OFDlwgYWt3)O%QVZznnLvl?)$~pnBMNJYjM;d8o z5uxwH8Jwa(l`GRhA9$%3zr4k`6JwZ0dcBj3U=$SUT=Uf8n_SWJcJx=VidHK7)33En zs_QH?OsYSLjM%mXyam33H@vud>1+7IR^SZ-WBHiKNE8tr_#@1b0sKJ^-n@BmA9^%! z%2n^b_d|Y!Z19H95B+=Bn;Zft+4Tr4OJ@pKf@U|o(&ic>*+^8_U9`Ts_iPqH@7BCr z)SKaG+nu)%CUUW#(l^L-Xw}_A#Df16PFwq6BPJx>c*DW08n}pIr#g@~cMl&4mabPw zzh)k8!;9ck?7iHgH*Ud~e zCun!Ljjp!#35Vy+RXX`-rOm50f}grASz`m04`O8w&T#u_9#EOz(0k^PByki#1Ss&5gjk#oVt_D**D-w{O>D;hQMtLAUmPe1+Yfy9i9Xpd;uVEt`I z|5ig2`3p5gIR}O_bqSrj{i%8!8y|Kl2K;WI^M!ngE6i`#24C1~G|fx(*yF7K9yD>f zy}gv1dNR9He*~A}3B8v0eYdUaO_j%1Vl&%xeNs;KNXEyG> zoY;6nxEZ7KNomdg9p<|)x>Zf5vAVH^M@uc&Y%-gUkxy~ArYY9!J^XKJuw2=RytTRt zN+b0dj$Seg!io3$(odc`vW;*Zolr`q%6$Hj_!aC`nnb&I@D|;npLyJ8Do#;xG&^qH zF7@|T8V}N7ZoIa}ar*edXOTqHRm=_>Kj{Y(uTQ_7l9eB*A*MGK>XOaY#bb!^4ChKU zKYAcnA+7F4s$a=l+PNZtEA4H%9)H71Ky;TNgONm`oeJUJ*ruPhv%$tlTw*23{l2V% zY+sT5Y||D=6UFcR5s?B#S2_le2pSPKcw(`L{%N@GrV>0 zG=0*3I7gB2efpF25YDnib&Aeo$B54-Vh1#h1u!d-lI@RQJNB~p=N)v>dum5RVhqlK4C_lV?tj}GXXk7K2ungQcx z(XfwvG0aD?)2AGJ2*?&5pxFH~ffT&Q=sjbs$NnLk<+n&T?L}W@x?##4OQlLiFMEUB z+S{sZw38)O_J!%K6B4(2i6S;RY8GXNBFCAy&j?uNHUrDO-6Hb=pCV5jXNlwBlUgLXfQfvm_{v>J|sC+>|k&UE;smVHj?2f>Jeq@M;*^S zP1Z+vWn1gMRaK)e!?E|^)f_*&*&IzulbOsEi={QfMiYqGnWEa(^1fnlX0WU>$SvS$ zZ0;!Xjc_Si12i%A^Aust9R>l#E+$C}3$D8MK;cmm4iApjr4(a>#y4f_imF>a-x106SIVwLqbA=*P$-GtfsggW_m~*v4fx6IUE+$Jk_1{ed2)H&>?()UDPGWsRnDn8PCxj z=9DH_*oyeu)a0SS5HXvXQ*tShipn+y{#ge5lO2{<)K<^lC5)i)_;bpNAe_Cebg%CI zWc{=@g23_v^OQsV{9vyI@vGGEQY`&R?K?G@F1xcSL$4bSld!SG-V&3KQ&(>?q`zk9 z#?W22UZoMO{K`;~zg%i=LH^zT%49~ZodkiIUyePU_K-`Dadjk#$CU@wT7~QpjlhHB z>JqV7a)b{Do07DhGUbBjc+^$A54D6{(=#e$N}d=OIL?)-jB6LanS!&qJ^H-pIcO36 z9a|Ml1J6c|l%Z-i2Q$XH(Q|ZK`vLNIadRpd<^-GWUN4a{Zak7J+;bp(e$BzaASfB< zY5uCpaXVK?W?_$rf-0t_6CY-nw7MbO5(?u=D3913wI`Bg?W)w8$Ebqv@T1~GYOaHM z`TK`E(H_I>4Fj|Jz98ZbweL^b9**1L)sGI{)z7-^8F0rjO67Dw2=6|B9zKhBdtsYu zfr3OnX#}kKAn~3;KKh9MUAZT!?wkXiYo4hLO?+a^EZJJT)Q|A)E*sNu>7n8AMKj-B z`nn!K;qn+cX3K=Q|C4A0Z<8EP$H90@G(Jv?spG`n#x%^;qADHS>u*bvn$skgdc*@+ z)`;0P+rsarW1W?J{(zbjd3|l{04rzju*IF_o-dNF=YYN&Hd;oA%~_+K+RnFmrU&tX z8+`u3KG)swadiBx-wq@=Mivg;E0E}C8+m4V&r-6>qChj#T_5eu=T`x@v^n=ay~Shc zr60NHc}=v9L%wP8x#i5TRH_A$y6?7@;5Wmq=dCp_13jC&sg7|PN!_oLBk|@68#@`k zBHecp37fr+6jnwuH{KTgK=n;T0OMP^ZIEY)Wrp_913dosJwzkaRWCZfa`YhCjwtZ+ z7--+kqe?EZ+&dPYGTR8VoEbv3woqHqU_Ua*LhGA+W+5*3m5s-+F^oxWKJm526WZ0} za&kn(0y*@IoM}ED!yXc=Udy_Jr9nzTn~&~`Q7a7ZZR&EP1Fn=+FOgVRe)WIT-M@3g zt##%A>x-x4iN{m4ni-Ug4Wdb_do0!LrsdgQ;dIjU2E&<%hlGU`c~jwF9(Xy%{kYywND-C|F+v`9-=+q~-{7^VCSpCT6D2Em z8VqT!w;$;Z(mo1mQ<21|G4j{OdtTdEL?dog*sWlVY$^62+iR6>mZ@ZWQDbMZW|KBA zbL7<(O0lmKwFg-8=I38l5sZw{Z>f1|XT|9pd)TaKPz;4c64_gS2+ldrpjI9pNW zNI{i-HA$lDxwm<}89d|A9c&mpzpgeO+ozA~j~DYLR2sSn-Z6jl!oVWIw(IGLFegQ+ z%ePr~&IUQZ_FaZX)3xS8&#!N=j>krW*sZyVR$Og%_BN(+MjZy6YEt-hg2Z?IHRQR=T>8d%MD2H(t48zIf>^pz>wxbL`qPr-wZu zbZ?6Cxw&&P>zGXt;;L7S)wJ^K;knRn$A zKSaGJGYnZS(phqAlDxSqRGeW`?e{3yBo2kD4VV7z;feB-XPnhci}E4#HGp2rSl5RV10v=VW zZT$5-fi?PzqxhCvE}z=i8q3VfR6=fZ(rpW6`NM4bB)U=s63APWR)i(A=npSSGX?f* zvIXvXas`qFjJ-FIO1fewH6dvz^8{*mn6OC-}RH4nHTs}Hm>&i!01Lro@=9{f5=Xw zIbum{-l&wAxEN=ksT3#2wNn&ZhtK*}u_6vrjtPk7QjG3Gq9UBickhTgg!W6<1kM8Q z-XNndOa`9J9GeSaB2`LQvoMh+%$~eUSRCp5+7nv?9V7ilh~GmsnU9ZEYY;SS7~g3I zxh-#4A|D7150uQX(>pIr42Im(joEJ-@o+EX3C_UeTfIiIFRx9`*qHy8+Qe>_|InN`(zk8CX?YQA2`vIKw{4jrz9b6Wj42Tg>p? z4-hGh5cpPf+9BXi(By7reMho5^;rTn*3;J|NNH`?@@}-!TDiLgKA(Qqhn-nD-yr!o z9%!dz$pug6!$*idp58|?8Gh&LGi@wsA~l9Y+bPEx7Ab(Dn6xtCSY#hV($zC-pRz8d zrf+qf7@sw7Qn{nb$|;Vcozd8VlUx3()|`;AlMnLk%8Kn*x@s%VM9Gyo2&`f>g=XZH z=}P<&@<|LTW_F?u)BT1tD0zL0EqR&_(^_|2S7F)1f zdWPTTA-$p&y=aK7fr-XGr2Z`bd9z$s=GC6NR)gs&NA4uaHPqR08CPQ;Tun}DW*UXz zOp=>QHD*gqrtB(`>Y9(NQ@AnVOcr)vB5RNBK|231HC#xcb;Nq8<63&KQj9d(I=swd zR$V$Ay~e3U9_(cuY_Iw9eI~=RE$xb;j4Ic!&J4=QSY4D?Mh}-;G6fbs4kWYnM<*Ig zEZcs=@ZOZK^!N{Zo}kL0t3wzdseNNnYljDkh3sj+&+p zz-UWk)vj4UHp0rR+2gY(G0C;t<)$hof1MN+eq^6{{!NMDHEnupw0@-<8Wim{9P*hRD{XAi@RvCuCqSQreV>^@7gQ+9dwrfo@;WBk zAh*MfmRTlklgG`r>AX)yvtMwxE?~ArhpW8SeJ=xxGM9A7(yzY~vfG_PUuwNS7ZsY= z)~wYy`C0{3bK?rf+yUa6-|U(etm#)D5 zb2(-{yzzS|J)AXEh=+J9J3U%rHWD<})v_HZ;oCxTdVZk+UQ6e%sdJ=-?z8JS ztkqo@-|4T=uK%9E=!5-SsrG=O`<-e6<$_mnFi~BhgNRN|t{h&l^VM&7J1t=jCrfKE z8-6t&MdAl-yLp+6JslBZ6OU%5Mg%yu61_Pe^FJY2rvKRd2y3%Y`KdG!JSuOj>8;S< zHJxxK4p{hSJxf(nWk?d~ee9YPtzowX*XFB{;$RDG`tCM$V|b|-(G3!ogopGtJRS2m zfcaP*myXSCTs%n2>f z!(or#xUg$)RQ_Js$u6w1Owj%tyTY6JOMTrBlafiuT?sffNcU~wacOMfpH&nHXRS3M zQmr>5W?3~O)=XDB6=5cJk@Xu2vfwau3{oZH1b(1Hxq5SaC@%YX)4C?5-QyO|ex^mu zaK2?+&Lv(2{^~H|8{g*pZTlY%e`yw2Rr0?=FhB0xyxrloDX3tz9X~V^I3gJBy6655 zb#B(drCgtX@e8YvkDy-{$MxOr!>sMYTYdLy#ySzgGhQOq!6r}jWD!SEd7+~|&y?`0 z&^vLPGEWLy(beT0HQ+vUoQwHEOy48zZ0w?LC4Fg*n!x3Dtgy*CQceHS zUy*0E4us#~welIUdcsX~+G_=)hifQy`PO1%#iO9+!55NL0n^<2EJ1$RbUoN)6#xogE-V2kJK^?o`hOfxdxpzm|V#itG$ zg!QDY0RgairmG!v(wVB&^cBMLrpsAZxoLMf*78?e%ciKSTI7y8Rl2N17mx%f-1rg$ zcufNB(}&-+eYdbXskU55Mxd$r!ZFzMC_ZBGk@4=1??(EQE?A6l>umeY*K>VktK_&d zQ6KS2)?$F0>l4@Y5CR|cJH6F!pA0eP;HsB$g|P(QALEQ-Qf3Cbwx!3xz@G+e4!(poD=(s%2>q#piuin^{;X7P&!r@;QB4qFF zVx;VR!RJpKhkflip_DZK((Ox3Y2O~x#;PO2LMK)yW~6;o6D;EbgR)ERmGAM^yrW#C zyoY07nr&vrWA9my;muOW=2r$XQ@eD$VB4^>_w}4)ttzU2H#uw6D5-vUW6Xr9o_%@K zZYuLQ-L246YSOW(RyzkXfXA7?pM*gjrmX6=E(-_UIBOVM`9Y<2qrfI!V{!XerydfUjm|q*Rt|y>ZHE`P?jJ~^a@q4XV?ka}{o@kH}9 zpLj4w;K&EY>l-fN=XKmy^%6;`S3f=pA()yjO7jfx39rWEX?)l(z~j6%Nfq5yG~11a zX%MOy_923t7FprJdytX2)`^|ly{*^i$_bHsH}aVe!_a$SGd`&=M#WJgfLvrT1vb^t zjnjoSp85niqK@X5eRuR+HL=^q`P#(5jE^YPa0R_w4H1ps$}fS{Z|%B1)RbpG0KFdPaL z!Q=lkWD_nZM#v>d6A%>A1oeM|Gyy^JLr~8lO}HR$jR&2>mT;ZFH~sJDeIOJ6t=Oc% zkC=gI*+42rHV#IX`gTSjFp3j^wIu$_y_e()Kq_1q3;f{G@5f>WkM(C%FUSYB2KQQ@Q1%j>-9~+?902muYouN~POjHy=uL9uN zfZr~Fv9SuDEBt?Z&ZTJs_!57wFa)6Kw|xF-+Ly_Jo$7DNDMC#am@yQBj#Ze2iIs_! zjYR_3asyiy;FE=wU7QKn&&(jgy;`397K*?a%8749m{R#lZ?}!BBhWW#(XkS|*^PfTjLW&3|#!rG@0a zG`0WP-CSO-Ke`)WxfDTM=Q#loNq~jB5M98F!~yv8J3S{oQwzXTUy>5@C9e!gA$~i~pKSJ$LP5~g zeoO8=oPe__Qv*{QJpe@y8cY7M=Q7Wi+$$u}`RyQo;`x%MKoX|kl7m`e7Q zDuA}yx&FlUB`btr@%@(Kxq2xZIe^m?0}E3yj?a0v^7GD1O2&H003mRCza8oiO2&4X z+@E7OBwe8ub~JFb0@+>UACL)P-@pFh@(eDSHUy*aw=+0T8`#0A0oWspi350-e|g`Z z_g)%|`I6y7%7)(#_9t;&=KYUh_(yj44=)Re$;?3D17-xC4LEdyQE36K73X9Fyf6?F zfxW-10HBc^nil=jd;cGyds%*$oDc*%^0)GX#uw% zPJ+PV1;QFM_W*=&S0@Mt=B+$?gPLzPmg$oQ4%*hP=2Bb~k zPzhctNE!tcX5giSW_aL~3-}#es$CK#%Vpj9V-^AtB>*%BDYc+Q9~ZzIHzyaETc9kE z_`x%fQ30t5G*w~Y0>%bZ3j7;*3(Ok;Kn8dMf;zz0`CjmEY$6Z`32+X;9{3K;A*$0KMJ}(M?(z8n;8PXK_ z?R=m)&lv7vB)U>_l2YGrB%0ISm z3`G7v^yu8yfA$JLTg;^-00Ni$FL;DBtDvD1=vg=bE)wh|4eU&9z!|bVNYBybhs(4v zva>XDfGiGhl(C*E(CPr9us)DT+dG;%nO;bze-_}SI0ymp{TIyrT_>=Cg#)<5a~BE` zB-oVC#U=(Itb@f0I7e{Q0-G&F#9*@qixb!jp#b2pgJavdaG3$4{@cjGJua|&1D5D7 z#|AcOK=c4ruuElP5jh`E9B=~wWnfIGL+7|)Do_^(WPcF%4WBR z`HG;`z~dN*zO^)^l+}jv;p?>?CZ(ZF2^1ncqJZ1Pb4&e^w3#Z64Gk?~lER|GdIT|M zqmN4MT;PugI__tu*kfQ3D7whihM~MlYCbhs&L%~2GEsQV7rEjzwS)hHUc=MxeddHd zs~6tc$?eiEm{?0O8L5w|UN8Zl@7Dg}`U(VN^@pnccrh3=8@OTrA7GpRHLxqAn30pI zfsv%09$;bruP|I|6XdK(#0fv7CXadf4ll*P<#O06^&&ne2zk;4gFJklgsTG2?9;n< z(Jf9JVPdGbQ)qGU>9!11QtPmk!fv(?DsRe(uf`{zW)6*g-8wFGHeSFMm*%TKNsS*$ zUU2;`CW=@#puUi-kXjh?U@es`%Oa`&cJ`ZW#&P?8YYPsGK=S5o*e_((s$Jde%L8FF zU+4o$Bxt_j8pk?UCMelW$uM5;#nZ`8-5!g1hoDbL**?lx5dT=Qtl8XjGfhh5NsAXy$>8u?V*KH4}mT8F&>I5BiR2{s82R_&{t|H?kAkDIVN6LI!X%7?Jh&%iqd2-Xr@D_gN=nD$;m~I9Mm^qT3djUA~ z9Fy&Yk0UAWv*Bm9e4=juaIJ?rn~CoMW|*Z&D_+ktimeemyFd{2e#6XD6X_|JWD;as zlkeBA*DB~xp*Gm^@WM=YTVgV21m|4yZC$Iw4w~m46+3? z&$h47B*ab*=Wf8?86sYeQV2UG%EfVdi`VEH8@Y&7`rTl;r;(lyu2Kq3O4B*fp=9d7 zD-(zaQxU(Dzo~6j>qvf0ENv7guiA#Pj*fz*pTuZNq@1q(#&YPjCKFOaZTF{2O4eD} z5(Qs%a3oafxIUw^Pt9^a?m;_cfg@ib_wQk2Bdx;>MjAy0am)?iwIGN-9GcL=Hwy2^ z;bh_qX$~FM;^1eZq{Q9^aZwsoQX`vHe%E`%mg_x{g2le|N{0Df!)NBo`sG0e9Z}>4 z`;tst=KIz;Dd<=y#61R%TWlPBzLH`j*z?#v4T#)oqDV}HDJ`j;1FWYC%^b*`g37g?LK9x1J5{9(?js2ju1pC^d&V|y!))$_Q(s`&jmt<_ekeNnj(3k&?SV%xB znP`kf?b9aH7+u_}#Qe4zlL1d^xq%ls30LU6#bx_HGW6@xS9v_l8jO9XDEW3N{Ch(7 z$h|Vz?0vJWzz%DN{z%KJ+zR~l>4L(2gv^@p1h0~6?(}NTtx`#A5&MX_y_l3*sl?U^ z6Q6Ij85QpYlBI%-mqW;fyUeYG4Ay3{umu%QqJ1%%;yK&gBdr&Z-dd0npYfV9I$GN> zstK3YQ!k-ZyKujvNvf$hrF%l)gELkTF`T)eE4jm_5lY>j>5B1IFnATFBm{q7a#NPB zrNoGX?i~7|iXvj-4f4InB2EB{9z=hW`{+&)hUYhxX#D5vkA@6v+ ze6EDG6>!O0#Zlh@;-kR?fqV;$p$+~8#3&5;=Z>PIzJ;lQ3Xtf~i&$G20x7qZfwiHj z)gut2v?0)cGj(vKmqG>Hw7miFnn<7m0-tRU(&mOVuYosys#>dA0ewp#_2!25H!jTR zVwwS+(f?(x0NikJW8e~7%uLW`!3Dm4&Tjt1m&i}jQZ{vXE*A z_=GGt@CjLE5Hs@+N&jlNi&@&gn*}rUE(~U7h?D^G5Xk_aklFo*S^e?4j;x5aA&^)o z0&GL*pfUmyV};D<;`JuTm6*%s^H1^oO$Z`pD4}y3xFF|?R{raW|4j%YU_1z_--ICg2_XdOw_KjupY{H4LQvBO%LvjG zxlHK4&}^uMKsh>hF&9=1yrh@)2pusGze0+rv>2EQSj~a^ zgn)0V){@dOwbbU|W`!OAT=)T` z3G4xPblO#5*rhADy+aIU~P65pydc+ z1+JuNv#|h7gTDZ`W@)pZ4*~RO05XtivH}4dpa?yP4R}j48*rBx&<+L<35ZM^=oLfG z2d?OWZ&+iwj|zB1F`#S0#D39fT=YKYbs8(zzp0Dw_ujSgXTnCDtW}sYDhn=7M(}$a zseA+Xseoz%JT@V%vO(kwo!#-1!#>qzxGaVJ&<`mnrMHV#7mYU8bKX)j9``tfGxQC- zp;BNAy=OvMU9#uARnN~^h725JO`x#Qz8@`xd&?h-xb>+s=b^)5&ehjqoAW$&nWVFQ z%mwNcFN=0g=q_tL$D?PkL9YwKUy+?!dUh<=lcrY0XX%-%_Q{jp zpU=7Z<*Tn)#&hL7+4fR872&tX6;>3FlaKZbY-{f4vM8Aq^ojEXanP0dzJ0~?SY~j% z*a>x57_l8>7*c^VLta!|C6~~ zv=KHSU(@DbV}qC!2jB_-O9!F|2PZ%os`Y>YT+n)Ge)mIGKh&NHa7lk`2i=d7GizqT z4mjWmc+o~7Ww%O&XdtylShI-bXb&SvTV1<*gK<%7V~v5q*F7nv zSe&0Q`AEx^Fbj7+OQ#VKz9FYbm$~ar^U7|SUQbQi`O`pie}W#hxbUsx$4a`j+KbCC z=h0rFxI3dJaZuh*F0hi*a4y?NqGn35Q+}b^D5SABJW}BW*WUfs6pygzw3J(YEOpwv zMChs^PTxn(#({lY9cu~Dm4&3(a+8FdTPTEkMT{=x_Yn`rszHLPH|e>$-WsJHJubf+ zDgQxA6BLydWtO$;Q@#-OfFfPNu%|*H%FeeutlfhIB?cwp?B@06ag`9s)(^52U4F8& z)r)c)%U`in0?qleEo}l0(3FB>B7do+Kj#GhA-bF=1b=Jk zZxZVNDZu>5jL#Jn@Zy}{n{yz+h2z}u0)bnbog3_&IRJMG^w)vE!0w&{@_KxBP9P}V zM+LGAZ7wdb)8}Ld9|{dVtbl)q1|LqSr-z!rd7NPe#~&a@KzudO^an_SiGyPiptB%$ z4zN-~?1UZI#m;&jcff%U*a7B}9XJOFA|MX%Wl?9aB$~f0S8tNHXvj}1O?s$OdDW_4a_nN z8+0r-Zgx~{R`$P-0>8M@s^3Ts{F zpd4j_kln_UE`YoZfT}|7eDb}pkga)Vr%B>^;|+it*uv9mAPefQ)VHl zfMR>bd*iBq`Hs=I0VGWI7}{)EwKq{_LMSTA{^%; z9cYym+Z}8`y9HON{o9De-o6~l$Ps?v4r7!?Nr6Tk^by~l$AM{7xI|5v7;V^mJ`Ju# z?YWBUiJSMuJ2irZ+|y?GN!k5kC*8#<#~0mSwt&rVG4} zOEK$R>Wkoh{Ksu<&R>Wp?vc4N?_+#CTW>b^W}z~AnaE*7hLt!bfRT41{e0ZhJS~n! z@fKYvs@>OXM$Ene%~z~bZi8ri#l-`Ix>FlSK9INTU2&*GYxp?w%=*K(s9;56c5ZmZVUVk;`*tqftK$7hPR87`N*+R^woyj`RQSxgWRB!1%UqKo^T+%8aq+}o`Tg1F~@ z@b+(Q;UYC?r-u8ddK_9qUY_aYG81sbK*1=lXKD1G`;QV9dXMbE7lMVs9Y+U120+^q z+J1BZ(X+6y15Hh!oV*9(1aN6Y^=zb!Odpvz07WF==A|9(yYfGp971qkmDt-2UZAhqg`=>Y9MQ+o$HSKwYg zLu-AbTd0h{^AkpP;6^F!k47o5Q^nE7#=^)F%=pFY(9Fy~7xe!>5)H&eE{W!%FZf?Y z^Rp-T&!YKF+W4;(2b@6spH&@*&%7v~OHZWzkMjBRV_LHM7MFUQ!UhhGdKRiiE)F0* zE+&CXjQyOk|I>;8Aa?F}e@E=kzUT+BbN}%>Vt;l;KZu=|yuTv`X8woi{@P3aAa-8Z z{*D-!`F}?Y;C!@v!;3C zJ{ld63N_Gg<(rRdA&N-kiYIjFw;0!ZW}8u{RPB~qMIz>(QfB`dJe57{SO0~Yhjq4-Q_m^vjr%n;^7Cna06t&G-XCzx6ouX{?5OzF1kDpAtV8#WfS z5=datkv36air&3_uO^;6hXgx?J9$;h@{MZXE5Rrjr5m~dyI4}+_1en9 z#42hqofL$#?Pd`DrbMe}9C4BgX3lHcV&wB6974-d3)3MggX$yY`wBATgM1IT^&72x)$G!MzkmfAsFDLL!lHwhyb{iaoxzpgl<1 zj;pcLA163?SLnUUL%S!{I9^us!dD1(Sr32{_Qd0BC>XMWQK&B3RV!B+5hA_Q{U|qa zdwYka7^AUK_{NAwTSX&?L`THarTRKMt*DBQI#SfCvLeNKWU;@E0 zpO#UkOXA&2$5?a0wVv+c3RBp^+oJXrlN6CA458?g;d+PU0XcL(6t7z^*j?6#9LBim32}!wyOyHQVH`Y( znW8U+hGK+q==*DI4S_Px8=g?JWg=p{lw{J!2_tL)P4U!CdUXQ-ne)u=6H?xE0LKs$D z#f4vm9hN}0`c&cyv0{)EjKu61^)TYY4Z$mQHT>9u1g*M3lGY8ayiZgr;PW$<;ES`! z+!q_kd=IQccD^*Az(;ny(Lp-4oPLfTxDx3EZ-z7(at6ElWoq$^WViT+)A|SBM`uV= zT`N6p8zN0<2S>bOC)6D`9K1+)yk&U5$A<`Vx`eLB)uox2ERa}xVV=OhtckhqgdTWi zIpTF&|8CSy^b(KHy%)iuiLXu{rhFC+KRK2Tt@d5y;&U3Q$?IhG?-UFiY@ElFFE8zE z{9>pt=l@|<9>@JKfqwL>_E$U?^Xf_+S)%7f@L__zEsbkL;W(W4%f>y{bax}j-3V?Y zJ~-2J`Ziuwe}Loqy>nzcv+cv4b-jvP*lX4Dhsb_RxKe5>@3H+ggIPl)Flbtq-eZTQ z4JL?XKBK~Z%d)r3C~1l@+IN&675-5vA5=vn@O^pV9)ogK93kP$Bs~5j_nbv^l+!xZ z>=5PFmiwjt?Oh5daO0TSugc}GFZ_1Ol3Xs;zqX+<*&2ng@a?2@PVUtb`Tsb90R+K&!DlG9bS zxSv|F5u)=+~mJ-9}o9xX&xqU%e68bH7WP?0VjqhQ~o`LW11Qn~DAI()*86qibTTvI*+H zsVmkT9YlMM94HR}6p#7&Rfv$!qe9_-$ z%=099#1~e1G?Ryt7?R`a=k*F40>d3^x<*zebjHiyX^qyt$|x0YM-a{~i#?b>pp*|6 zW5XbDEN85mnnDz@{k~7zdjjwN9 z4)!Q1neG1g)v&}L*Y;@ElvSu_dDUp=FtZ!fa#cF}0d|04r{Qj_0_~`$5IJgq^6P9Q zdy<_{uW4J{oCJ-B(k`{R+pi6bUZWM18b?q%E(e!4F@HGB3?I{1R*l?^F*rVyoEWLx zc=w2P*j(2OAAzXzL1FCD?5d+$#<*Gt@tbOFIWN_XaA7_<9mnF%6<#CN#+Lj!EDqU^ z5y~gxn%*{tSILSzHtG5XoH)fgnXJe6Kk-Ym?qaQ$7JeJ7TRS1<&HzYqEG2NN21oY^ zNx~y2bq5{WmU4Q^gv@*;FghN=rN44jjcT=W@li)2XI5Q!%kxJujM{0`naDi#uC%nb zrL(TYhJE;OEl0fOVD;0RHKG-#_2G2^{+vfV2yIo$cv?eG5w;Sp7WVZ$4oOL%a-=HM zH{0i&(k_tl{sCXPWYx{!xU(xV==b`(zJX?yrOi|zP8Tu4E^dYsc>>P`6Hpjrp_p9 zH`n(>M0~i&TFDdLs^4h?-`T&X3-;5|AP(@mZskVxK6O#Q&%m+m`_@7K%~D-mO*VnP zrz`tW6E7;@p6D_qpKuguVzZ|#JEVq7UahQ3_!0|=fp|!9*DoF;lFSAElvxD^|k}?NhClbY@ zYE`V)H9ceByG4u_SN%}pF#PtC;aqu~J8pcJo2c>b?&~{-@$cW0FG)yR>UxD4Rn=kg zO{R@y+j%10IO`b7zT4&Gkfd3vm-i2SXHTUeLtZ3|_G?wTT9;H6HV?lVU>Q}G*V16Z_Zj72GjyPoS` zZR%ucyx%WI$oYUc6$Ni2QPVDts|9!oqi%pwpWWmp?^qD|-ozFjU8nz?7C!pP%=Hbo z+sC9i%^J?CO>%`+7UA{>`p%(nyND4zDe|wMc?dlmX!@t2)<53$fkLd zb@Mv)zO}6!bX+Yb z>yVgW8qt$GFA6ecUf}gmhWDBtjHw8vR@-f19cVQfYEr_iQ|#Cd(DqzaGE%lB$VQro zeSupPQ7d1)(yt`R`O!VwlP>Y_Bh52n{a|(^lW0>BI2^UxQQwp@3X(Nr?s2uI=4H82 zJg5?pkU99k=%zEAE7%Z6P1WJd=RB+=!CQ2)H?_~D>3l_~N~-ikE=LnP0QH&3vuw^; z*#aLw2ipa&ZeGl&YfIS9@;tJwymr|Y(itB0b6QeJ)Bmck4$% z!p_D9?q-=AgOQjK_?A0xWe+r^jPxuqP+gMN)ZG8H7m#G(3vbJEi;Sd&@H?$jxgEs^)a{D*Ws;()X6moN1onE6G`@73kRolwe}mD z*f7yOXo%sx+p1+7!(CW#hMYb|b9nFYk_Enie4fJGc)7>rsmHI^2h$Fx(YI)^0~?HJ zL+q2^Gd9qWV|_}QCIkOtx_g-M`Yn!r>x=WNxJUjg}B!O(P8}baE9*$yT!QlO(O2Oc{CT zhc4nKQ|OF^EwuEa)Th{>H-v=jvD%npphp#-=to{7_v4g;@C0YI_p}jhcMRwkZeWCa z4?9ZnkS{gmtMY>seFBv=-}>A@K(aA&!t(iim6AVLc=`LQ@DbWu^qRq>-Rb;U^nN;n zz80uAh&#jD3x#hzMRU4!-1PWFkNoVd3JwP1?Zrq$Rts85jO8g`tk))32!4m#PxjXF zwsCCRTl_TwyjDNxG6k|ayW1hDnnV_q>2aoVa_$G{!@=^3FbAM&i!#ICSr%bNBi$Bd z4l<1+dV&|+oD~uW6AeQr%%9MWOfWpvfZE>>M%|xrU7jryqbv%EarC9=&E=ja9BhqG zjTa-suVs;A5IN5-Ss5)`8I6x~6WpW~N5R)$Ur;UZL6bA7i*es5BWOS)tLk>UTa6j= zQXJQTi4tR}n4E~`8se#Q69#8e;~0->8k#^q5-X3NtZ?6>{p>XS2QHBa4IZfnh8t%v z2cDRWo;y@!brgdLLuUaVTO@PRcF!dGOn4F*&b%oJL#2X-1jKo%g`X}76%K=z!#Kvx za6S_URuGHT2CAds_q?Jadc5|jw&dmmCYD4DjJ{LpEoQAF-s;oVAvbDi;#5}0{LQ%pOA)VmXQGF@5~U z8q5L2yHTo{`1%Gjgh1xj%Xvfa$lMws9#5@Dds<`Wqa{OS-LYe!#kRFKeYZmP)%@x3 z>5kHpHb3pNlGAvSE^sv)U08%)iRUUcM2I~ zd7WP2-TCATU)mz3j-k4ZWV)|Fmb~etxWLnrxLlKd)POd+6}Ck@)NHM^ApAp_j;Lwd zXV|P=QynfdVq@ALZmg`E(CWO9;ahIGVpJAxFL~M zAlj4Z2Jyj$R^dBe+SQQ#-dl8GQ|1XDyr^XBOoY<5+WT6NGLJP3^OAll2TIA-5}i^5+a?_p`>&p zk|K?ONJxhuT~dNb%sun1dw=&j=UeNZzh<8G?!Djrp7-p%*E#!nc9f-i>9rBR>Nt1mrnMj5(y zLUXa~{KPVfgQw$uk*qj?Q=FEzlxbt^p=*w|4CW(3a@d zxPfSS=g;DR-$IHzuyCz@(fho@8nG%n(#7XP8&y)JcjV~w>Z>#cgY~($HCp+GFDH^O zkM@mujMU=8{~S3bQ)lBiiiiO)g`ZZ*A&KPER+72{H@awuueSeKagaTOJdabV2EtC{8wz z5S=GG+`YP#X2{lh-GPt~&!T#=L~|x6O9nFW@vYJmN7~4O=bYMgPA0mV>hb2AH`gC- zxA{Iw@9~B}qH$4_wXij%D`FL{eYpV-h5IBF zzhcr-&D3c?3i03BKq5Rfr{ID^2Rn&bA6?W)zLoVIo0K2la(Bv(iy$&3F>mdmnvwna z<5DhGd?wf^g}0H)&!%V6j|bz>P4hHR)h^lb{j(p3&^cuRKySsHt3T)a{xM zbUCuYJcOO`+*xmkzrj&PO2eIOviGC+}qv(bwJ! z(AH6LZl*Pz@)Z=9mMAAZceJa_y=tebLzQkuE+M&tTt2UzNiWHc>@t_FxzonY8y_dV zwrg9C|BTg*6I}Wp=E#?P(}s~c-On|ThFS1ZZnAN^Q8;mx8lDBgu7y@v-s7CnCEVAS zL%j0yDsWy1zUaewV7l_!B;w8cb5yG_{A(@h-YkE6-JifvoZd^MaR~{w>kVRMmwS*n z&DDZaXd`v{l-82QC>f8e}f+%K*deaSBpwUA9?h9~;!kzX%~%dtCS`=3~Upo|uK> z_`Sv!JoIKO0uBOkFvX zx}JajRK-~Znfg7@N`CS|yq)*s%!CjwWU&RjM`9rznqZKAWH?0hme;#Ao5K6+jf*S6 zWMZVjO4NZ4A#JQ3Mno%F_)I^D$|kqTg@muQKBk_EOn)IA0-T+t=ot?<{DB(5G3$9RGmzZg3yxTb7o=S{gz zXI5iQHDd<(@8lOzgZ7lJxNT%q`&ZUQnxyT9U;U1EU=5IChOqkQ#&{UrXA!Hx-`p>s z82rS!3iqeF{-B(5reefnp!EgrDx8?%PWm`~151wwx0s!?gAT=8;upwV7P^!kQL?*+ zJj$_w*14aq5$`L8;B+uEq$G#aYw!_1i-|&Uhzsn;5;9#AWey<4AMvU7nOZqLv$$y9 zYbSkaA%2^_-8b0jepO6l6O+?oo)uRiYT40e59l<|;pa9@6JMPk8=FmtF7bm=9q?-x8>8|3uiK?M_TJy>NYj ziAa<+cjlFku;>rFwi7};Rdn4~*B9;$RSc<9_TgC!t)+PQe2r7~Q=#D>L)6GhlJI>5 zZ&qyXwD-f_|4b7>VT1qkc!3(-1q8kEC!~M=KkmJ2B#7b$L-TYmI7s^vJA_%|N;zdmZqsXKvpKQ@ z#|Iy#O}drZc{YBhh#O0G3!FC7HjdmTZlu_YI9pvd+WL5(YJ_l-VVL*R{wwAcg%h9I zy(t4IUjV~y%=iFjE}y@YksFJ2!^Z&DDCXrB$Q$Nu!~HY#M2|4(u~pYd&YHu#54qY< z%C6U1KxmbZmtT5Zo$n2v8)Fl_9Ot?;9Jzj%sbNIj6RV~YYXP=vSA#ffY4tN=5o_>I zT)_wncng=_dfqsGUubB>V6?SQSyEEek+JdVYPwlF{#svD;5zRN?O6}Yexd)l zU3C>hOS2ujd(qjlNH9~$TchnxlI4<^aBt$!ObZ&4ABBefH3xz<2Seu8ghgpRh&tqE z27Z+mNA~R+Mtszf*^yV-C0geD6MeF!B)MApG^+JpYk^{-a-Imu&FM5+62|8B`qUM! z@$p%TF|+%R(w&b?x~A}t#|0I1To>0V+SI?PcEnq0{GMwAR`D|1NVcYX-U4}Cu2XZS zN`%rX2XOLAg@>}1_!C3vlsqpqS;lv16N1MD_+>+FICKrPog=DuNWJSOGaaLrCGFLm z3EE&yiQ@;fdV^MzY^8|J%@m$rznrVNGpeTqhD!vme%Z5)+PlSVm`fwBfUI*1BIADg z)cHgri~U^mw>Wjbrj5*$wV;c7c1ybI!$V>@C5GUV3B2=F-@NgQ z(4u&a@O^*l_qc z*k_;GSt~mCYUyrA_Al&bhi+gi#3`#;lU|^b7 zH=Dlk{z>O7|4!(VH+lT)7E7I_272x9dvUpW4HfJJ^acg!!=4W+jkCA$%oEn_MIZjm zlSbalFddsnn+%(f1nP}bEypG_R|sAiKj1bX$ebVj~gMsP`V3Bnv1@kB4=~@bAL;Q_gAyJ&H}4vT^oW1=o?41s(r1Gq>{GFoUSjG{@HwXva0#B zSKBO@H3*hba$3we6jM8NHadRlI-|j3NdZ)+`}4V&2WLoAp_b0FuWdxZfNuWiwzJcI zaWM;#aby{Z)oUWOw5iyea_08W{C#z*_d?@7SfgD-Z7nR^QeD`83;kTXDl!Q3Rjgva z$cyiuck@ihD?v1bHnqLh%f7Xp5Ytq&kpo#{J&4UTlr_&)E6#ou>C??Koy0_fw6x{c6M!q zrcPz);d*CIdvPnX=tO&&86F?CvAB$3OLJtfq9swTq*zGdQ;pXQ%oqJ4IyC z5jk2##(d`YuOaE#Ot&1Vn$wQ7HkbAfid1^#X^An(v8P={hY9U7?Z(|+vF*A-@o7a3 zhYlGi&fDGP_Hx@7W6}2zciD)O&Wv7tv*FUH%r-bGVr$EUhZ8=b^X#RZ`{YB|$$^LH z8q}Z?vVYO^&aPbE%g5&qJajXkyzOvvY^0bX!6B^nV4U9DQAWq2ra%6A$hEK(N#TLd zJzx3;Wd_JfRq^=h>Y=;j)w!8=+A&QmyQEzTJJu51?UIJT1VlS7al1XkVMltu z(TjX~6~6Ed5lw&l%}4f?~7XJ z_a5Yt<$u~R7;h~&Bt5E4EGXbeyxFIlK4T)LX}9;VK4!c)9W_~5M1R+Ds$kZ1;L|0# zFv7v7+hjFRsEOX6p5TRB&lKgCV)!5*n+me_&pkX=5o($DQh$BP&)x5S#nYeMVllew zXu3YmyYoR)>1dWo@ArG7?Zb1n6T+&vqofta{vTzjo=OVy>rFlvoo7jo;*mkd)~k&(Z8c3A3bU$xX+=*x7r%b~6tz9mN|$3EnS%af z-B(O$d|>oyx1UVJO7rk{!^X?n&6ma<`83DL`U?a3y6UT&!O?rD(Fg3Sd1q9EOoDr# zPp=DqMQGUV2^yp^jdEqk7dz!}wV3%Gud^9iqIq-)8(yt+Tr;8ci>koyU2<`ZQUy*` zs!sTna)PLsyJGL&T0b6swN2q2bc6mxyx2*mL{0GcL>~1^q5h{U-5aVz)kl{7r>1m0 zqvzpnZ%nNytK&yj6fzuLb>gHmydR^A`29L4&a*SA$#-lId3fb?Q0w)zWDY}SBgR~T z<`%h{Nliw$SE{zTYy6=i+?r4OCp;5gH#$o~L_9YCZ8X<+V(BA3xD^0 z@%0{t(j;nqhr=r`w!68~i{Ds;YIv?)o&H&4FONi1DRZiP6lowGM+9+I=_N}v#%{KG z^2?HbTq7Xjh2R#G3O&E|ENbfB>r}bxxVEF2$Om2)CI)r#%`el{dzkrmD@Z31rQ+^| zUXVPQ`HRfL{$FDXG(Qt(3q3C0N>%EcLhA{f$*kHc40dM2wfE0d~4FR2&)8Iz?e?kX7D9lhA7n`eCA$-s<2Sy}0o zDoUH7-$mG7jxDK)tPZnlS)9J=#QQ76Vb#2$k(8b-QEqkBEkSz4I_ETETF`i}(=943J-D_ct4v!t`9) zM*+9{nIZS`Cd;dqb?`hxAuAeg$_a}LZu$v}S<1>ZEcp>J@5QCs!w1V8g-5qvPA>DZ zJMSb`J7_Jxj9ZLGY`4@}7y9(&7KxLqCh*r9E#58fm~|SFNs4{)DB`|%)A#L-4O!x& zt51ZRZ*QUG(9}u~S`5nBT*b70g=Z%%ZqbLfvsIc!K~HFYaosIr-U%1tMlbOQT-6U@ z@toLPQ~Sc@s~^qcIUG1sLjFKu$#%wp@=aM)A!DX2S5>ZDMvILj*<_FS z;k0;rz38e`yj~e(eK|Ld{_gwuB|gKn4dB{x<(TL+;Wany9$sIv7esYj2wg|@duE?c zH?|=X(p5i%pm81g$aMeZm5;llsTmQlUl?GE^8M!mxM*;IlV(Qp9}L5s#azs`|G{9G zt;5(D0{G5@g~2iMQ&<=v76!r~04)e)hmrUHyDUJO2Q~y^Vf>h_e^{6RhBJVTA%OjV ze`EZ77}7r$1_icIV`BmsF{;1q0PYbO10)!+>>xmO*uFrZD2!U(U-bbrD^Ohc5qua; zg}>|oJv7XQLM#l1*+Ywk0Zc_O1~8Pc?GPAMIIOb3*EtY|!sy%nZHI(_`o@ohU`S?I zb^s3wguy_u;zzIV#o(fIk> z7a+_a49VMaVf`M}b1p|*mC_qmFR2I-P24M(rPNI;YaU6<5 zVl<(!d;!m^FklM6ZUdNVL2DWS13kYmKA<#K8vusDzP|vU88oi~d|}WW590%5q_OJ* z#z~NW0HqE)Ct-l(D!42#n1Jd7=MW461C0kT2=EYs%ECco6R^?)|zZEF$?M2>sug9Fql>0wsvL+D-iQpX=ZtS6Sy6S6)3KV!K`F&>tJZFYzv1g zA`tcl_3BIMHb`b z#eiEGozVaT?*B!LnY{%ZL@Q@&WD5rwIe^R&4z?gA0TGZA6u=U)h3nfRY(ca_`c{tm zzyo<(gpq?G{I@5_A^`cq`t|^hFc&KeE0l#3%mQYIa6&mBu&~eoAK* zo-?WadgEMU{)=QWn1#*ktS$6igb{|yNI@bo|ILiE)?UOoV+IDZBHRv;^O`WZ2oSYnBHV~8($^->*K!K<1oSZPEOswny zuG)dX7u5fpvvwdBz;g5r>_E&)zqtL&Oav|9aHD@zg|e-gZe-q-FzFZW*xl)N(z%2pUgO~xyIamUX2AcHCya6=>*n?Ele@pUA%YFe# zn^~HjRRpjf;F_$1CGuJm;5_gW2#hp$5ctf>fjgwagTP3|1%Z*u3SvbH4#bL-6NnYb zZ4m2u@4|YH!g`LvdXB<+j>3A5!g`Lvc82}1!gh|rc82}1!gh|rc8{vliBz?aLA87}_3QNPSOzceoF0;aZ zjQ~IG=By7eut#=Pq6k|+E&k6~CluK<4Cag02?jxtj6<5HC<5pMp-2uQ?*-2_9#9-s z2nQ>O4GKO}Ffm(%gEa_-Fs2mYdDbbTZ8D3L0WZJp@4syQ zZ0;n%L}=~sVUdAzKmO~DJl&YuQK~8N9^pz~RNsYDz@A0NccEEP zn7h~pVa*#&f9-SWI@Ew*Q<#GXqXsXM+%Sz-Cd#~Arl(|Rc_hf8h1PbcO^$q=g{)BT z%?}!Ov`Tu7AO=N;#%nL~MVP(ih^{|%K7GHA{*5aF`^V8&x!5N6la0*@rkbV(jr)z? zs8)B@Tt~gEIm1!nch)+WKD;4lToA)0^j9+-=_7S^8UZ6Y+aPhqHzX97eu*&H*2U3ZGKTjx?r3MwWhP zJmt~-k)xs1Ry>lh6ju%-)+JcsU^$h~{|jE6_1?PW=p#$aeu6g^qxU;RkblUi_(qg_=t(|YQv{XHYe zloS2#%?0l7Hzc|8tu;+a+K#7x#_{gV#ZU7F9a2);(BDU%1U8x z)@0LS?5ondYjs#$ zUn7fdf!_1PfNdBxPsWCus{K{zwtGxnz9e02x>uNYCpK@*5lvStems7N2&$lvN7Aa% zCFx0yk#NHJb$wnXa`Ud78?iVgYCd~A@BB6+C5FOEIP;ij@ax9~I{n-gbgg{rENc=G z)G1KGz|1ceLLMXZf%!&OG7a6|a=Xx!i9tx~nvu>1JSci>`v!Jf?0bD^qwitHnr&QxQkw}I+t>V1rWY-g>@T>v>0Mx! z6hhPV{*`(|mJmD|66$rsY(`sljgM*eI`Z-M$?gHT63n=c$|48Bg)H)3;}Mphd2~6M z>9=lEH4&q97~jrasbf@Ya@Ep)URv3o5OexSsSzeX7%5tv6C`aKIH@rr%2d?rKMxfw zaYCKF_ToXQ3J&d^Cvi0?%0llF-%2>L!e(j@%VrlIWnS_8pSOSKzFWa+&7lHP-l zVGb{+-NEKj;)m+y?R*ZDjj!(+$EyxLqOLT}<3dRMXN>H-wcp%Y@fWc^bpQ(ZEw2oo zV3`EJztVZNzsTD0xtx{to}P)OJTd(d-9Zf-)rMgYyY=w{4v)(VKM3zKe{p++sC>!R z9D;3+LZ`P_8T+Usokd-j(8K$hiNneqxy@7BcOYC>*{ex7&m%3Sz;DVt+hc`FJN)x* zl!iDuw3KdP^fh)pezKYW>~Z!jO?(Fxi;_mB8+b`XDd8}>_8I2|4w@x!A@;%X{?pU2 zq?|h15$)0bjTcGAcaLsD`C%1JPpvF!Bmzlg-0aiLt!whypD^wp93|%;Dm>AdN7Lz0 z;}xqgGxR^V+yjhH1|DrYcJ>Q( z=b>YznD_s*T-5i;v)vF)Wj-9AdqUc)XU? z975|{nGG^)1h98eO%_vz7?QJJJd_@ECkUm+3l?}y>KoYR&bX?Dky-M4?G6%;`eTA) z#qZ4`rfnFrK547l@riQC%@&^I@1oW|OLLHOmIX)XmffhHD9={G4hijEz#$P9n$Nz$ z&Uq(Gr}naV)%~SU4Z()rET5WIoeGXqXLV;kBq{AIN~+)EsUeHp6<8H+4Ygdl{!It_ zaN>CTvT0pyudh$NHMf9Cf-eI}18FL@$Mbn_tbKSPr-%n{%h6L*p%I3tsY}7kk827H zyKE>3Qv&V>7b^Mg^?ydA(=3m_%1rWU+h60Q*rUDcj+vUKWy@XyK7qs)xY4Z40j{98 zj#Bq*2Xtszmb>?|lW=rR*prHQBNO^3FNI=$YMz@CSI1gyB+R!!^AF6*g*u{KI(5-c z+&1+R#}!4T^B5Tu^=lE5jrVF9Tvifg2%R9s^GGB&@35XD8cRFA@q+TE(cL^8&+8#? zjdLk27LBg1)QI=de>%~l2xWQt@#}JoPMwUm) zPZ8V2IO|_onrJ7j$y-^f{SrS$Z@Bga ztH&#)`HiUP?Za0VgrJ_F$o}qO)EBn)c|CsAJAxKU8BUt9A`foW`g}GUfg2Y%G5a6G z_J$km#EV(DCU%2zw?68$IN+{E8xz*&TNS8{HMseiT#~G`lzI|p^LgX@4bjt6>;vkd zr#H@A@AE0rFDD%7y()fEOt{w1yt8Q{jA~W*MEHPm9 z{Q#?<@x^AQp=8D))n@$>rWdd>=487rR3;Ggzd|Y~o%fYA+R!z2#s~Pqulu%wT!$C8dtFhXGah{2dZb+q|nW!(KWX zbdL_xt54O>#>brMQ?-*Pt|%V*ODez4)B-&g-MKf7-|ll*3BTRT-Ac*op#iTI>K>!n z+J8)~l7r_ena#^s67p7Ir->m@skduD{zN>0UQ~s=sl~a`rKyD3&$2Y>k9d6M0Q}W>B+r(afW;htRLKBa5&+Tg)=FFaum`5Elpp0^|;d+Y2Eq ztu5g8@bjAgL8%M0KrYa7=I#9@Euv;74z|Ezi#+Juod>RdS1&fexB9n#kMz_3M{sNx z;La5KFX6=5kerfNl#>)uKIg~3t}oDek<2q^@h@@Z&xFbY0mFnvIAKCCPM9b=D-2i+ zJiCI4u(H4)oGk26mJm6;vjzXOZDcGk9LXKSE;$`6hURs5}u{~bRrm@;yG z=^yb!QA|KqLPeyb_~as2F3Rw4Z4{}kwBimX2#~TV!omV!^=HZfzQ~QU zVd5{z|2uA6)aHL^t~?M31Pp~hpsYfyED#}xD1;3H2EI9=z&G%m6L}CHUVl=z^Id7oPtT z?iYhZl$0f81(XFO6wkJk&bk@l|9EtPB^QbQ+s@#hcQc$9xbe5$!a1H(OCg>Ia}l`L;no@Y#MHF3$WhI;!i8ODAa#AX0rhm2_dWuEga4^&;Jzr zqFDbMhWe+77X~2YF4R9@x-!DS{%p==iLf$)pE*8%sNSp>1|j6u)<3{Ts`sBlUKoFn z+hqR$lJ#s@`%}mZV-Rx7?H@n_+me5Ud7;}z?%(|b%)ch{f(at`0{;^7Z!8*e!Pt;{ zihl|Bvu6el1;7DU7Z5tIISdC}(et?`aCSi&Y2p_Q8hnxD-%ZX?A2_VQEGPqFmId|* z^(}sLg^>G>7isy|9z6y#@FK9o{(JG?jo`N}Ofd)ucD`ZCECvO^kc%I`zxMlB^m8+l zlY^b}&o?uXCkQZ@)y#~5eNQk83kI_|+|0xj@Hoz{g%B19TP16KLpX5mKtf1JP~Q$X z69Gdmwg8)sN;3L(k3q2WEmdYgV82@)ZhPjwBdpF`dX9gvPS%%nsHQn_xOwQh^ZENy z(OgAsDY3~eNmby>>^95Wa&N!#5aal}5THw-gRciZ0(lMc+$Rf1O^9m)fxSyg3_FDq zU=8fgt@h_u?j})O@020ddgWx+?P<8({gvl<)-|OJpK!mIM=;G<{V9)+KA9P9+xFGR zCU+fn;Az`;I)wsv>$$RuTkp1gl(py>N}peMOtc}8;|R`4%(~tGUSi_CMC?Xfnf-X~ zRN;&1g6yO|zk8Ldv<+rhn7(VOHy`BO^LSfaH}WRJubHoiYp7Y}XrC~#u z&v{^2KDYPeh2_(?u!rkf7*W_})1llqFtD*%IF}jjf4z%+&~JCTBb5B%@`QU&MT+A) zxw=?>8$AccWb1X4+2?49S!Mn0xA)%IaJvs$Jv8XnzA@eRhD=6FOUr9;Cfl_O#uFGvJw5@>wZgV{_S2ZD^V;$Lvnr=jTYhYx1xk zZK&NTb?X^v>L55(ApWue%rm&bdggM0+hR37U!fYJ1g{Zq(Ydd%Lcb+gz_8=Eh2(h4 zCQBJ(Zn$X<+u3!mvm(K}R6;4ZW4^)pEgDY$Aq4bn3GK>CjUK0J%NFY(=Y5c=xS2v5 zPEm&AgIw5Wn+NWrrdX;2Prjnr#)Ctyql!|D`;k^^glT+fr5@2q zvf_@Uk$P?AzNsD-E6H}?{>^IsI&B`F{F~SED}xh#N{_2ZTwWb9DoUXbp-|qz2)14# zqb1C3#Mh{4o){{_xlB2wD47v(*=wrxO2#6W-x`-iJGSPRR^wiMZ?a~^!Z|BEljp>? zM{0RLUa19L&sKU*ci{BSPmUzpkz|>NU+U(ytT}ia8c2};Nc+pw_t*2gx$`m)zKFfA z6BfuvFZGlNDW|+aI1*-gfZGh`G_AY~i^pEu^?K2rb^N05$crKmuYTi!6blw+L)h)r z(IC?3pixUd%lkwV(voe=b6eyKSmDr5UIRuqoZrk7gFfMU5YmMffgxP-S3dZB7gr+m z?R`3E#A^!KQ0se@y-#cI;7Z#v_hZRlyvHf95m8n}I!>oGTW%U8LKk8>_|Z z4*W3-{{-W3_Rb)>!Gks&e!@F!jRp(mg4J))9FFvcav6u5Y~OvyXcZ(nkw0Nx7Q^a1 zqz8TInA4k$19YiXo6EPandmYG*Yi@6dqX(gV#1>za!DlQKE_-fHBm# zArwXqlNMx|W2RTC>5UuUI7(+c|(gU67{{a`HfjV_jDwcf6N^AS|TxYOF-UasFC8Xm|_q=rHZ9Cu!qFFd1$U zx*3HmwTX^g)`QO!uy3jroE(xH9ZxjnQ~0&3p1h7;7WV9Yt!6UW z3gPB-J5r4IFMT_3O+>F#*&j~P!SoI{?ln&8efiW}EK*9kKyf&jVb@z@&vu+C}t_Oa>PM~@W=KFuOx9bV#D z=W9aifpJ|=shMnzGM#XhF$H2(AIQovzKCY>T=iZG+70U=iFDx@Gi!QC55cTn`L5a5 zW&F}6_Awf!jr6{V*Uqqj*OxSFai1PMbB6Z!m$DQ5c2^zrC4PG*d!3I?0P_7VS$TS9_NlPcH8>PCS5kyGqHM4*U2D z5}kgfZfJUUno9DFypE23fK=xSM&R1@knG|P_Qr%sXRhnk50jo%XDUE9Jh&D;vffQT zUF`Q*?QvV}L0Rf|TkI!%Jo-v9rOSb<_Eh=Gj2n2p0mmyXCXROZc6In|uUe*9f{cm$ z94Veq?JByHV}B8YSgKDx>V3ES4KcOikh)p`zE& z{c1&tn>mx4Imb!2f4%X=Rh@3{;*Tu|WAFL5n{I4X`&9vo>uwb9j&tBn`*js39z{#1 zc8u7nn@*2iZW|lc8HX0^2R2~SROyBsr-WI$Kde2hF#2v*z4ff6{m$)-Oc5zY<2S8c zZ|pC}z~uAh`tctL$$RCVXDIh;@Y;9|wPJV0Dv%A2(y}gUyeL z+b?x78S1oVspl6~NKPJJ^9Zw%(wkX>TJ9!Py2`v09H|_9o6Gw(rupt&C_^Fr*YT*D z#|uRD>MF}N9hnRzL?q*50lOB_VHxk%hl`x@Cu(nKwl>m4$WpFM#7cZF_35W|wgVeUIeeQ)O7WBeuF zW}FhDeCd-PUduW{oA&I=e!@7(lj?&=rQ$Kd*E4f0DEE4A<}}o-5i|I*rRgaYpCRrz zOVMm3szh}23JI;XY)^%MWPWVCa^`VzfE(d$&4J^Xn|yKwKl(aXKkXk$sNkr8-Pg}* zdzzT6I>NWWg)(f*mW6*G$E<-sYc{A-|DJidy?``{o|#htq%L|bNei4zKHMgiwRQL% z+$jv%gEJIom19ngXE42%bLyc|O5#1a;S;%5GP!Rw=?dQT;QhpN$n)xSI`r*l4<_=q zFG}=$`35JGyDxnwc)Q=`k{WzgJseN%I=&+zB`(F-b*cCS)o^Uz%UxMSr7N zC2jf?llsJBh|o@2So6L*ZB*$eguJEWv+s4cvoCwq=P@PS!oO6pt7ZD`2hXd`Rz4%` zrbpWEIxMrN<0Ah7R`AH62DDQ5U`z_qZ2k7`2eSZI8gk5KytZIFtwcka9L zseE;_BqwMer^|T5<$X*gRM&_N^+-WU!tNIluo(bQ{P;SVeJT=^Ue;rNXF1{I6^7d9 z`Z|%4VaUoy4e#%pm>L=Q_>T~uO6^i6Fh`C%Np>LKX#(=x*J&t~S?+f|m1T-Q{Oxj5_E$sHs1Jlus*nEAWTPL%x zk2oj_%;Lfj6$LyS=7^WWv#eX!h7&Z4VmWIWyyl|)pV}52?WBdr36D(sy+-T4JQSac zk^ULyz&XJ3$=oJ~>EIE!-oQAVdsX8~;iq60;n#JZMSeVCl%M5-IoL=~$v!772o{#U z^m8qIw_z^lKmD#~hhMdbx?QrhuuRr?3$nGxkn+_Ovv;VFSVGm|=%Kl4mtNM5s4i9T zlx%M^8$`%rgs*U{uyRq1U#-%R1HHp|Y%81CFL-++HtVDYo433Ai55ha`yPPZ0bp0s z&-Q%{ADgjln0dtAFj_SKo_k>EngNz7K{>A9xcL634cZn-Z%Cyk%SOIZQW|C!#?f2A znYefJw#7T}P{6byR4pJn)>OE&Dmm7^w`jJj-aw1;flZi${|)uS)EjB#%i7I;{2Di< zYe)0H0)CPKbN>nLgD8z@{+6gRQ5VV^zE&01@87>)tI)(NV0R85#-EOPQOFxVYD|X))cOP+GB8#j#h$zO2F`s$=FTZu(B*sY~UgA`D)vf+&CQZ^?16 zb#lP*$(W(tv%O)rIJ1uV!LhO$jFnuKv+q`mpy#V?g+h(!WMki#MoXxL#_J5L24g<2 zB+8~LoR1Kp-fft>vRTGe!kfJ@3(y2_jJ&eGCo_P1!aTS`pWdWFcJ$y#gVxPVo8aV~ zo7em4P=?pWJ0=FvtMjksXWxe9PV()=zQ?vQGG>=Tg>^}yJjydH%a37Fkztx6?IcnD zZ1GMaE8rm`K6%G}&nf7Swd>BDxC; z0ed*z{Xw}@{#;PCfM3mA_vJL2dS4yMqP+O)gvzo^DHWyQ=-Ze}hA~`YPy9D19p{To z81xlV>Bs6+5|ZebnEd>Q6NF{58&vPoMjAPU5F7;@rn2#nu4inB`8&g0yv$baj)^QUVDdMX!I9 z6p*Cit9h22iQ#U*$($uQNbY3+@+7Gi+GSoLv+-DJvG5*m}ajiqeFgZ zrSFHyuPsvcS6BQroxloZR>f2G^9Gk=Z&qq{6JRn1b!eD;3e$KfN|HTFoyT(!>bw+J z;IMz^>6H%}#V!p4r9)weo9f@aF*VcMEw_h@+8Vjvqla*L8}_>9QaiyPH3l#=vhw)$cqv#auuUsN3(+2yumHMaNc70NyiHFfZ#pj=p`YJpTY@?ZoHi=WR79eVajPxm-Q$~e6AzSs9rPv@N#2&mBm+vcUmI^ zou9Tw5v2~FH>N9K8yW@E6NTSk{jS7#o3)SBLZ4oJX`?#8L7yds9~rz)L(tnnC@K1? zox*wQjt;LCBT)%nP-r11b9HLe3{_!TN&e`%GTA)XCc5vHsx0@*?TlrX2Y0r>*#pgf zZeR;^>(Jp$-#uwursq$5i@)yd@_Ol45SFg7A!vDyYj+Jdj!LY)t2fyc&U1h*l19~r6}obaWd`GPP;~mntl0A-td~e z9PQ)b=!U$dg-kY<#mReBTOo{=VGLGbla+0l?j;U(&GpYEEPV~^rf78-z=Q!<4DIHT zhvAJ(l7(cgUST&e+Ul6%*esatRaGo>_APs>_Ue=L2kcjAB21`xntdzdnv$nnz#k{K z#;XsW=wgqmRE?W#r})hceHfc>id1JWz4k3DBSx@<4k50~x$>BWRM8uhp%1bQsAY(; zV%9V&LN(_xhmkgSaRr4iEb~5RS?0Yt8)&U`U%MRSTP@s=vLM`0JW)NKx95z_ESNU9 zU#$DXdMQkv_S?}ewjs=8+_O>Lpofsi7R_NFzRC5${hOe!Pr3Ruf63^W=`~!jQt}UO zWHC3GBM26Sk37Y>6xKYhS##d3)(C5U-J|NNbsPpNC=lCi{XD@3@{(b)gnu)`^bd6r zs$J)mS^Xv%>W;mh^&)bKUdD(_Yqz68bi_UK&@+HRQ6uTw(3jBRTO#7Y>!i8C53{Q- zGd1?VOS7d=6<1YTZhT$jj{ZTCF#oH_QQ~FoYs-tYckUX!t`6GJF_O{fqvB|-hRQGo$*P8Pao^KY@H;%uEkQjr5pb+ zwGStM_{nl`=7TR7;rEVeP4TBhl+7L2uuvZuwGv28`el~OuIAwn#p*ad!nH}8zP8vI z*q5VpYVy7!=QDOwTGKnH=Z|fNQks>F_VPxq_TV+9>&@H`4K}LKG?_#hW)+bvppev< zA#ErM>v36ja2s9Vs6QH8{?ODUq#C<0ExkZD?5dJ?14uew~Ms#H`t z`L(v!x96=LQoLAU*vYi8~0E}rbxyPX{(2MU6>NahdB2ak1IFct*|erz32q{*93H}1l7 z7#h^#r`b~8s8QM&E)HMoHJQO7q^QtXMIpZz`|yc$hz*4&EkQ}iZt*pqunE!zS5-V( zNE?G?iV?;b-NUcw${4y4Z(mAn#t??QE9hE(){x7s8#2-Q@`*vV>SW+zc+RWVNKU!A zK%u%Dol@mGcqI`PG;W*06=EK)D=s2v6$^Z_3-m7zzXB}4Fp36{7W=5a8sFw*1J&8P zM(10`FvT&lu7oW(bbJpO4Qj@ZA#g}Sxvj>0oA9gbZ9&5qV>E&j+{XCVuIj3P7YpPO zN#KvBmRG1vSEsUBl9*-ljg*anbq!xDYmW)4*(G*+tx8IHO<1F=6~@~W7*%^$Un?ZH z=_4<5$(Bv==b^P$rw;lnc#SSmZ7Fh}RkARZ^B(dm=S5wvDeLBumzZTuExL{-Mab|{ zvx%=s^VJRcYGQd3IVW;E>2(ZdOWd{howY-((r;yE4Cr=rzA^B9OY#u9$-i|g3jTpM zf<1*v*-JG|ES?^u_%Oa$JWc(wcK2=0QlFyL`iORn_PLao!VG<~p*I;gCWzx?%iA!R z{AvS6XlS(-$AcxX7_oPfR_0g=9;AzWSHh$H+MxibFPU-<=5_gqYag$m2&$H5T75|z zgznm?-t+TU@6nbf%pJO#o^*$MCEnQRn|6pMGf@=}b}gw*(u%m+kNx9``KIT&q&nV2 zyZgAi#O@E){5>SU^LuhhZ(dGi^)aWVp^9F!N1={Ly~SCYxf!3ywqDUrV_YUzHGl*E$r_ zQjrZ+)GWkB%iEKKeIe13+qjP*_IX@yCt*+LtECTm?D@`b=NKcKtf`x9sT=L78-NdR zVNGpkwDSh+I&~npIw^R)@O_DIy29hdfC@d-fmrpO_LzEoyP~cr3RYumqS9+O;=dn# zYGd&!UJ;5P$ig*Dj@{u$FD|rFaCw|n`6NC=XW2A-3LIY` zm*u`hchaHxr3VG0k#=1vzraMxfmQ6)TLl#6l}no4BYSJBRO5Ivlu6|(vTru{UTc~& zl9a_fUudU@d5>!sF{#X9!GJ^bRm87ez-`Zy36MLJ^5y+BUV-LMW3B1rV*G7uI`7oA zv}S%ZYBJyOHIEXzs?<+k{lS}zrlZ+m5HG7}kEO`^naC}Qfye39Ek#%}8gm?5dC6M2 z@jChOI)zbOS230zIL)yqYgr53eY!oIG?5{%Djr+1DiULVeFG%K8;tK6cH;|?|I>~y z!wU7n26QjtFx#`Ql+ckf;F8$-V{wMxlE=eUqJNUdsOIi8+#xh z@OAK|>jt^l!d3091+*e43>mycZfB&2EQqGr@h(iseKuChr!I^eRRynpiht=r)E-nE z*TlD~Co_dZPD`dJ@?o46)f|tRs3mwcRoIW+lYD01FkMh0dJ<}v;{XYKh*m6mvjU5! z)rgylRTt=^vZewfzP=W-)O#O9?s!)qgoV0Z&3D0=Z|PQv=%sZXu2(PZR6;d3RwAB-9mH1q|SE?%9J&Kb?v=@v07VK*B1(}V2SlOSuBTRd#g_YHCEgl z8O2tPHAePc>;(bi_-edrtd+`OeUX4339`$KmpLDKCZbCsFoWz#DTXB!hRBoHBHQ9? z#vmv9Ox5^D4bFUA%MVOeKRRX{oYtoV1}AGrn30mbR=ox`NTuwM4AMk>Xe+$Ha9{0h zHRlN1Q0-bwA3@j@Fd6UZY^HW4N{0yM2zPhK@uBiBVXYZ@lkX(L_F9N;jJTBwKj(=+ zjc!gps($@lBaoGe>6=b{N-bgP(;h9B)l7u`piLSPj&JZSbu0rT64CCE_t!Q*Pz(*N z#g#b^KTE+-o{lY=L03&Aa#`#WJj~6qM^)|)$O6q)hW4-;pbZtGm+P&e|W(41=tgc z_f3m12xbb{&UIMSDy_b?(b8|`(&(IK-=-CUA3z$v%Oogd-*na(Mergua<>LP%rjY@Uv^tqBg-rH$UsM zxl>m%in)d}Mlap?(0+@;Hy4MT9)}2BQb=EN>icvd@32#9Si1iqi9p1rP%2J=>&ETw zJC}U#`^)R=d?Y#nE%}D#)M`d_ zw@5JP@Q3JbL`1!@CBK64Y9Z^*9tcXT{5CE@Ro#djnG#wSjNm0zO-3gh zUb?wvd(FXK(w-AHDi`Y0%ilsxX1o45LH6U@r&E-tZV5MMo)MF}6vMT&?$!pb2Dgtn zTco~_W-PD4hINVCM>U62Q9wkgJW#H`!krrns7~u|ni9N}ncrTji{K?H@6a2Ak@ekW zS;Ai3@eD^7=ET8W;-F6&&LaY+Q-Wx5-SEsFUZW+?{uq`1qLyFLEqu!P;bSnMS*OP( zo7pr2i_-VUmqVC*s&=7mB3Al*tf&McAp~&GJ9MyH_c-RU@@}&Dj9JVTLzA%7?+q1d z&}6e7g}Qjx&Rq7SMI*lwbp#E6!IdGGbUBuN=d<&m&IStR-%1-g_pBf=+R>0o}kagI5YmRVL$h zo}im!3K!-Zucw#NLv(~C;zebBR)>6~#SrP9Tc#O07V_GuhbNi28&;TnT*HQ?f+m@- zmAw+l>R*gok@1PnDDmTD2nexeM2U)_rR=Yz=g;93j+0*R+cQ-SrT9R1#WGu7L>xWp z1-~$Xws=$w`A1Z@PIZwSP3&h0vU+l}ZBMo!8LdeN2s=e~hrRxL0}9(AB--q6>iOU_ zPdTZkDiqtuqx=+}2#KJGQxN42-`h)wO@9Ox?}&T?A@ao5N)>wg1pT_NudtACj?c%o z^|xjlmzDAGq9GA%c6E<-%=}PV1)F4e+>V7>2Wtqbw2F6*X5rREEO#G`E=84NzPzqB zoHn%4{gFT$T01Mb;nj@ityrGQ!gb-}G*1 z%=P&!Np&{%-v9VWznkYIW2Zy0o!Bk8tC|-_=c9Ck=%5~-Xc>)=EyUAEe|i?9Paw<& z{N%Y3&3&1Lyx}Kr_{k6C>C8(Sc~G|=vI zTNT%r_Svo2bi6%n)LftE-3RoWx+K@;d9%|=7q;@1?>r~$EzE1sFyFKzDl$d*HC<^J z4aHS?YhdQsGwNC&S13&3RJWq!QbwmNKXQQc{Z>tu?D}Ugoi8D$*(^0bs=(~$xD!Jc z6Jl7PzVo#oG|86YxxqZrrKTN8Gi;>E^omWpREmM!p{I;b8Un|{KQf`c#_08XcH5Vh zAZyZA@>7(c{OuHiidm}{dUu|$(RimXUJ(l+7^r6Rs;x}lvUNMo57`wVE;vC~g_3tC zS&3lC$?6As3hksNc)gAxUur|WTBtVdkfU(rRnF02s<>8LcM%oqW8;(}d#eWe@!eX! z8c=~-@|+*-P=T@dQ-8MDH_^BdQ=_=2cLXJc1Jdcp>NyGf(-V{Pe5`s@S*eM*QpCwb z_bZ?fBjx$Re~Qv&8{hTD=1d7_^Zm+ zk1MHz-dt0=F`vioZ7D3H-<(MFC~EGazQLuC1#8lUwEF&5THKuCM7fuMGCG%Yx<=llwe%im zny+_3O-38TOWvVVcBtqHk5pOc>J{G)!4gSI650q6YGPcRTdo)iwG-e&&T-c&Kc}2{ zG$$k3MZ9H6zCItW*N}pNmypb(@VeajiwomVkR-YXjO6^ZZ#_9+5p@Cjd zhevHzhItHup732gF3e+&n6-m8)~$OH)D0?sDu&HJ{IIsM8E@NuP2<3zjn{nIa5szZ zS%KjTQ-9M+@+6TRGF&h6a)?cx+czgpnI@?r_oxzn8J)R9v~-0P>u1>a%906XwleL$ zwMQ0VR0nH|R1zRo`_Q$n8akqqMaX7HQVOZiC^)_A{4vd9ol(ztoup5nNP)|1W7p|B zk;)<(PYPqi$$A-ad{z2{WX(_AYu&I|e4Mc@Q+J*|s70Dd0st?z^PQ5*E@u$`|8+xS3yyooet|7d$$F zuY9UlpTZ7m&ZoA2i6^^#+RNvQlb8^26D3Mg=#{tbM8UvgCIje?Ly^e zkq~-iO_hX8QiMjUd%0t3qX~-arx~|%Sy}}aeJCz}6Ia@wrm?ciWPj|d3k%|X0Pk#X zpQYPm_#7v*dP^|F*ZpPgaktcit!1y9DBo@yW)qU<2p*`d3$OAZk1 zJWU6)C?|;hS1Jx58wooyFz~l?ddNH-ztGNO9+3$=klALGZS}3}tj{tP8Mhb58c8vg+t0Q8UG zem|r6E5!>Z5Lzb-0{;AMt`xWM2Fcb-c)m@e&uD|ZZ{EAh%290^nQf+MZAMNop_-Pb z^deheT~1u-+huz@YljC+jh>$jY0+=KU!Vv`Ez1;840m35)4AB(u+Lv~DLginFW`;n zERLqCW}=4}zaIU&dsmI5Jhx&gkL!2kn4~c8AwFIq<;SZmgrVQl>ytZRFs51Tjg!j& zUD3Z~=RC+FP>llnPUL7jdE*Vok8A7STn*V9UQ!{fCs8$;xg7kkwpSMwGP|#LPT~!* zC`@IDUMIpQ@}(zUS{)6i%}{D-Zf+A66A%*6CyX|qF)6imMmZvUtDTi>cLSSH-dUz0 z^m<`p>vzMotb1sVrgE=%!aqAMekF)uRCjyUo-uF0=8pg4guZm(Qmm!0qtwqc@lr$SAO7YFh z6ar6dbgHRjMAqYzzGqC$PHrC;IT^3uh)D1>outH1C9Sxe3JYB;8&g|Jl1nLy*4apb zWLhMS(q~m9Ma7iv0Jz-h$pgodTpr?PP{KMQskl%~O7wse4DOyHw zwcVwFmRr;9=nG%0jOYk5W@5;(q6e8oFD;P_sruqF!WMe&_=J;dLkKe3dZ~Ll@rJ0g zSa@`9hFS`C;19hZ-+qU0>j$FVYyJ>yDzWICM1pQ(dWv_qK~9SjquGXw`_lVC%bVcz zfNVUkj*Uhf|7Fe@VRX{>=|ggXGPiRAamhZ~r>|@pK=$O`@I%S2xEem}4-_fCUUYd; zhy(VWjvI~#Arll&lM0Xt4tLYJO~Jn)!QjYnJwppckx)>8lDI~eO4Gc-fecSLbp|)D z&YGf;ft+=e1imO(&d_szEd=k4={+M&*I)$&L?(`C!K4yvWKBg${1VIPJQ!4`LV;*$8k-q4<#0vxMYR7jkiYY2&T#{VC?D&p}~*JIQtV* zrilB-D!oUiO#2VzmlBQbRx(l<3`g>7i1~TNlZa+nReHa$%re9kzRd5gHyv}MmKlr5 zPPoe8AtF86#WbqRSo>5jb3C?2UaWHU`DsGdJJmAjtUdEgzqbhc(QwP!oGOCN_XS0J zs2TNh3GO9zoN0CJ+ofU%LA$V}-RR^7@s}O*rk)24=~XqnN#g#-Yk_0}1COov4L3ey z;_%6zM0(wL6VKl58je^&tF*XB{Da$!*#TkAtRhg_M7?^w&Y822Cb7QiJ3|nmC+=)P z*mTBhC4mHcVqc^g+DbfVx5UVb_A|mmKYT}j$S~iz{rbe2 zE!&^Uo?-T6lO=(0W&XVwg|m&I+|bgo=ABKtBV!AQ9Bz_phH;DsBDI)Z@}z_-W$+We zbA8dnqr4+sr`$D<_i1Gy6-8O>$kGja; z5BZa>|fc#!&Kz2!H z2_xXxy_vlWqd1Us5N>A(Xb1NHj2}QwWqx(q z|BNERbBY8^fLV)?neBg*reBc+ztMCaP4L?s<-bO={~ecvE^tW^ZsK5}Z~M;~g`C=5 zWYqZ-@83irXLtWSM*UAjhn!Ykporsqdifhg|1}i;|1O(2kdxYrM4itxeFg6Y* zFb9AIMA$%>SUF)FfJXtKah|~enG0EgRGd%c4p#3o56(Hsb$^kSN3OqX}<*bpM9303TmTa(J1h9bE z*nnnp0!#!N$jJnRrLzHnj{xBu01an+IZFV^EUX5&8NVst8E1Ye%+DDp8!Pl5%=oom z^jdkd;E3#>VlclHF*3X_LFp6qg1qFDP}bq4XK3bmcX~N6Pa6%WC9;^BxePYnMxZH- z=S(LwxBI8mUc0gtI(C0~b&Y$0@J-i!{j?hbnP_)|QsuIB#u^X97^l@-@Wq}3}| zN)HPTH11ma-i?r9H;dDL=Y`m~#1O04^K3;$Mdd0=!4J0qT8GuTt#LyK#V=ZtRKd~Y z63Vw4K<#3gAAO?kg%4wy<)|tiKU8#Sj<4FRJ1+E3kj(qec3;9L32#>g!jQHH4s0`u z4VRN<`+#ykkNnl_Lw`r`lmbtdv*>mdrBeP36}wugX0f^Usv-95nCt7y`_G-4=4wm6 z96)D2j*lLlTp{qvxcdjg9sBQY*zbeOe;V+wc(Q+udVf5|{Etldr~3|=FdJZ!XJND; zAeE3NloN;`JWIW*$pHc4{6Ihiwk8Zn3j*Z91@3?_N=+Ct;}Bq6EN2kFHwO?I`v=N* z)`uz=!Nw9}^H{o`a4KauNsEf(B|joa|mRdE`3!WbKLn~ z+`VN~U0b#_3L&@?+}+*X-Ccvb2Y0vN?(XjH?hb+A5S-xd@OI9rs&lIDse7xnYVXhY zi^kq-FBz+^-uoDH%`v4~a(Erc(WNlpZ?MVR!6fU%RdO7Z_p$c;Xw3_X#o>D$jM)4y>B{}q(}R`dCHYQRPd;AECxU;?xc(qaTKF*_SOfT`B4>%|@K06x|Ej?hmK0AP~|Gq6NJK&rEOb^)C@45xW%J2_T=3t`zHS7Nu z_X8{z>2w?qRr}&HhIRJDFkSRtES~h?} z{W_69Z3sAVHg*O;Lm5V9M!;@a*Z{W%AW?t($Iiw|%l!KuSQu!3Z2&kB8$B)4uOIzs zN386BQ(Gp$H8TAcNq`*EvI4dOv?ZZsWu<3eg<=8hf|2!?q5)0`u+=Z-p~q(i#DW3P zaOF28W(Qmn0|($-0nLqmeZUF`-5=NZ>w{mB2PoJ-F6b{F@?ZG+I}ZP@Ff4!)$N&A1 zEB>Z19nVyr(r}1PARmbXg>%HQpXAMXeN%!6Q34_yw$7=X+*>NAC0pgiGvOavkh zh#+V#x&r@Uptz{O*r!HFbwcHgAIs2fB`4xvr|NuXFs|3$vH9$|4W&Yj6&14lk>oku z^6-%rV{-}Tl7;u-apDl;!~{6)FC7Sl2#H=kLP=zEd;R1imV1{bb_*tJ1G|DL*`e=t z5%ID@>!KNQNP9A&K@V9C__SuihVDwc#66jA;o%MZ8dr1wSB&xRl8ArN9*$o)0n~E; zV2r=A?f(s30G|Bcj_~j3;t%uquVxW2;a=+>Rt*49z%vRkKYwAn@BwY10pI*jclGPy z{!dr+KVkk`uJJE02e{b(1m+5VhxuI!HetHjoFoJVp}_V`h~zc!kWNXV0kt9Ai&v0L z>9+vu$+HPp7Ab&~S?>9Ettv1d<|t`u0;CKIAZ3LT$N|cI)+3t+TfsART`c3fUrLoFsU>UG0|3=BDwwo92LBVP_}Fb%h`7nfP!WXVcYd zj^h>SIxRA>nCI*b&l}DHT4<-6h%s5FISr438VUIq2>mUc`g@T77fs{%TQ&a=g#Q1a zX@EB;|5uRyp=kiI`jZO%0vLey|Dis=hCcpDbpWshBq0Es^@p|qXchq0zbOjfdv<^! z`#bS#L;a%Zf3W#q87%LRn~xT=m-Oc1S863iwB7>W6619xGYP0KNSXThQ~JQa`oBG_6LcTEZH?gEY(U zi#${lIz~^vE!8OU6|!!RMF9nRAJ~xYrK@q9+d*lL==O-*Si)sRTeiZmH96?A!HV1K=0Rzx|9J&aNEU#)sQ z-}jhdCeXm_TppLfIk3EG-1eZexWl#1;gUzQgdW;{Rkm>~xAfw(JBozMMW6y?~bX zrVhV`kOY3!w;b^~7};n6$tDw^*~IT9FGqZuf27=iQW_v>R|Q}SkX8ONDu7g8|I6Px zT(B|F)Bctz(@6jpc`-K>urUQRe*u)+ex1PYUG`}Jj*1qLV6p)A3GgC-6)*tlFarZ1 zbLL=R<6r|c$zWmqJqZV}=C7Xtgx{DEAK<%wJwAWB>OZGGfO?d7z5h;0oI54dj${hp_0=VKpV_o%TD}LR?Gh9#NrR0_@e;w=K%h7;`FZ}WMctb z^dG_d_22JdV_*kF_0ItVaQ?rK6$8L5(J%sTFatASnTp?x$}%8w+U&gkx85csS$B%JOQvo->yI(iyo-- zM`7GOV^K(Wf*5{$0!RXK{2~vT=;c)MS{Hs8E9d8zP$;H-iIi!>ZSNRAI&D!@z7 zdg6=$6DldrN4r6nP=L zrl-4HV>dW=>ha_oLEAI=GpX8~4oBM=K|UJfB&uztaD0zVN8@4g851bs`@#aP%tZYZ zxEZA{qLZcO>iMh395nxx&j&~%Ow44O%4ywnpe0t|FptT(JJLtr-47#BJNy5H`eyhM*2c?8MChZ(eL;MEKDMS<5SLxYj8SP69KcJ84%O7_y zHa{B*zhX|hy(%j_u&holq9R!7)t2U80y_s7k|xPBct@Jf1jvxTh?3cKeYA0g_lye` zZv9~62A&ZH*PQ0Z{DkuPrvP!em?4$KmChY8GXHX6!iNN$%0fPapa)BX} zC`6Mo8}ej@3kL>I6vxxUs_DTc<>JDciI%%!x*eRPX5msE*pfh3A(e0&hgwCE!_9jfK;L!?c6NoDCC2Heke@_1#nV)nv{Gy)_%qe318N zAQz<=((hQN5@Z+}oVqL$;>l0$_sxzyxbq z3uCy|Pt2SH%sYXRvS4s$F>A1GDMXWG2$QpV?X=sUBb*fNrOZvq#e=c<;#EX&&+<#eFurH5j|YQu9N(O zjRlKIXr2Nxm&j!cIbq(2vzTcG8q;Dp#xblISR;BQMjn-B_E$o#0L{q3yd{dTWD!Kf zL6U73KWPRbWMI5T^yG&UP~Ry3qc&@2r>}>LTi#)7C2DZ+%LRksP)?K=k7YlpoHP|n z>OW+PS_ZW#Z?#J&+tZ~hox(qHdS%WhxjfNcFVJXLjklWc6tC#6V!%8&PE=OiAEl^O z9(@Yf@H4TdS63(*H^5l_T*P$PKG96s)I;guH>HRFxr7RI-m5Kvt^MhF;b~E_nzxqm zaDiDj(ff;Yqj$|*IcPvo8>jCq8cJ*EqGC>YKD3jiV^HhDlW=vEo~dcW!S|cW%*+j0 zpD#H+^j+QA^p1MlTfo|5l`C>urs;A`Pb}5w7na^MhYS9RL2Z?KPisHRB&&-+p>G2} z@D!KH%Tdp~ssy!l;xorJJ#rqX;-x@fjNfV1TI<{b?}`tn`|GUpHEZ5mubvO|q%0XL z`tjPWdgE16 zjszwsG7>L0?eUILrU&!y<3?%Y_wNEWLRj8+IFGX}FASBrn+(wH{;yweYk5bBCSy#* zC+7$#2*LL{uXIEdH4~l_h&D496rGAOqfEv{OtNe_0Fx2XG~qSim-PaygHOrcP2RRV zd9$Yvt{*>h_!Zy{ZdQMNx2%vP`+>%i9!~Q<#?6Y6-W^|B?I&`XCzR?7DoMe)TX`5$ zEf6y2FS5V(*rH?;(qbr>6%7Y16mmu7NY1A3XHUR6!P0RUBbOujhMk`v+3;rB9!A;< z6u$>2opfMefqiFHf$?o4&pS}`k@MR)n|_@q2myIj-~PO-BGsZHBN9pGBjX?`FX@GV)aT}xX_^Atel_-_Gjm3`2-bVonTf&p zOo4_W*-$4;RjzRa>BD+5>sN3Ht|wfWzjTdN^U^B+Pe$FCNnH8;x3lQ$I}KB-M(O}{-l^g$yNw=LHvRecR}yQ zyP|s|d9mgweg(UqBX)Z`W0EvwPXpRSw8mtii&v|rGHuQ~tJAD+D1kJwbcYyi2%#5P zaXh1+B~GSLFM_S^&OwFdQdz>oh9ha{Xe8tu%HJ|NXjqbEN;TM>#`?6%QK?JHGWhtA zdiO`r9MyHcau*2mqZSAgDpDvP0uIW6PVHMKKdUeBp-5Pl7`%g^Rkx_f_p~+&^CDQ8 zKrekF@X*Q+!3-!ORxb(_C7#sW$V6fV@6C#XZ=jAm)BHvL0fOZu|HDT9VX;ZQRgnPF zW!+0b9udaTNS|CpgjKdWSAS`}jY3;nehv8+>}<30DR8K+#|LdOo@`fjneVq*nYc|; zBX{!kh?g^Mv>{}x{fka4?p60Sn1;n6X+lu~IhAnH>OfO5*ApeOQ!`&MiT4$g_v7c+ z%1C&4CTX-r3KJ8OBXLr-G<8^6r_ayvWmzRPJY?o!Uv@VilZDG!J0|!z?JJDuslwj+ zek^oPv~T@5)^UrkwR{X-*{WBJ#@2K$tVsur)oGREh=6`7%tpTmMtW|h0PP@<5a*jM zKU~ zH2Uqi3)71Dynpq~fY^g6nak(*A>HqHZ%0p9 zz0xwBg@@w8m_yk@6oT$|0zF$WB(R7kp&4;W`zCcF_K@m=UvV5S@Ii4m#@n;Ij#*zJ zoA?S2qpyVMK0kfndqE$S%fx-&IA)6KfM&FtV6ao(iO{~wr=L_y5zVWBnj{5lqeP;U zGhzv_R!PnzU@a-<6k6;>kZ>?JujM=1xe#c2c8tAIbVW=bVZE^AQ@NRb%tDW|7YTuN zn6`6K z@g+tXVyxljAiG`ku#XWAuRR% z9GfPl1QvAND#~XE(VEzz(#KtPB`md~M02QTUZ4773hxtKXRbmX0i?)_E53GH^Y^3I zo23AFnZ4|q@OwJ#&JarXq}Nbdx5M&{$;xw_a<}{bQZFCiAF{r1sTF)L*j9LjHk<<< zCH%94shB87iCwCW>#%lJ%%Q%!JF81DdcH1F@C?m3DX z)M&J81ZU;An!6X>w<8y*Ru%`S@pWf&xB48^d-Pb)P!7^K3x}8X=hYN@i?c-)T!4O} z#)Ai#`e8NSdVgZ$TJ&WzIz3MbLu(@)DLM~Vg)~u7wleH1P#l#jrJWo^Dv8uAjqgqy zWa}7Mt^Y`O-%0Z=^nUea1+ivQX3$_;P7` z`?SF+NL?+L(Ah)(UgUg3dSMFUW3(59id1x&)MPeKPP|GdErz25Kq9x?c{_4L(1j#pkc37!wy2rYrA$ zi#JG-@w+i()le26rcK?Lz&%hKWRQ*wpcPg%a3`es?kMa=#Nr-tU-Q27dMoongS)RA z@72Fg6Zt|U`r~U}^Sklzv98yKa`RINb?~WeQK4JSgghf)l$=tQr}G&P6i5QtmRthJ zNfZRg)DtMiEG-qm$sJp#8wmS0JE2IyT;iK$UA9-B$I=&r1iOBCGwyeqVbf#Q%FPD~ zDd=qZn|qzsYxtf1Xi}-gq?JT#d}R^$J@ABn^iUMhu@Y!-D|&)0SdyEaNhnt#jSqPV ziTKo$u`$NMUYqurSpq$;`?j~#rsQmJ4@(`0MAu_ON#W>JJTgo)#FLq4u|X%V97I=R z%+0Ebw3W68(>kyBSlwL*8}V${Su~TD)$6U97X<*Vl7FXfiuww#O3 zIX3H3eCiwO4uc6K`KBG$7fQCD@1LUNs*yWDN2b$j)wig)j8WxTWG z_IW(ZUVLAaHw&+nvIAx?j}qHuSUZ+ty2D|2WNqFNF$E)O*&47T9L;I%gcY^z*?b~H zh&sgb{IytvjYar)jy}B+klag7XLlJLz>^EO!v&7U>KsYAk<#|S5P7*S_B`VN+m8Ie z6*REhC)U6b3@C*wmya_1s|15+wbiyGd}Ibw<^C-h(@bI}#)#2zL}se8A@x*&6G1x*tt%EXIu->z2a9@3#3-gJ#<8c8IJgxd^ z4qpA94d&$|XgBf7RP?p@YFQxse9vugA#9Y^??xLb?hivCq8XFg=~Km45SOOIX>w z1nVHEK3b*;-QQcRaFlxKBoT`7EAD6*FtnL3Z2f4ep=j7BUI4b@UaHA0JPqY(EClsZo zn`&#S6Eb)CZ15h;w6zdRifgb0!5r&5n1K%YmA5Y4-Z7W?^_Eqg>N%^PtJl*(N z=Uuu*E#$y>k3qYD7q_%7v9;9dEK7`h89b8pzUmzB-mg{!W;m|WeIs=IUVZ1A8%q~U zmt@-Kr*FonnE#+Sy~QL!6eat_MS4pHADM+*Ze$;>kx8OCjgIu=!QrE}CGPd-eNmBg z9Zf=A&y$%mP49#g$Xj?Gk3c-_P6I9TWx&dYKPlcUm`umARjq&6Ud{j1Za;Qi_?eC)ijZvk81#k|85{&>1ihgM^iE=Y&0ot)thk8s3tBv~AP6(J z2U;ZOUy9VQl8c_a;>LAVf94&)VWTsZlDoXAbZB*+^A^VWEPwJg?NcAuN>v^!x{>$i zS4BHY#IXm>NHHabxvDC9+m30SMwRCP*@#gxLzSR@VxUYw@EN>1*iEHXYXO@qtgTk% zyItZHU8!0fR)Bk7U5PSNV&0Q>MevfW1X3()Pq|b zt(z`qZl3QBQ}_Hp$0-5=k%LrTnv)Ma2&X+%!y!mS+YT5Yc8KD4rbV)@Y4NP&7rrOb z#Ym$xxSM$RC;ar8vLuUZjm#gK{SM}Y4CAA)Jb|xdwp2+yxG%pAIXU2e2iXw{9Ysvz zfbfJV=?~3SK5}sq6BzYG zVFtA?2D#8RhHST#nFHdn#tBMoT@@0v<~N%+R8MM8$xkQ&YDb$s^GPA>cf#D`WaU>* z0YL^=cPQk1JZ^&abWIC4l5AS+yV(n&B9?h*`= zQNVRD`FTGI$96gAj4*au%rV3YR~p<(i^4R2q7(K?Tnk6q`6I^{$Y1^-@lD1D{_qXS z^P{%5s1JH&C_7~t1rP0Np2XE31$GC})iEkT+T?v` zFjh0TVil{Y%z9n*Rr%I>&Cl+`JP9RL%Q$!8k3q#^vP8>eo65|ORIHK{OIN;p=-)hP z)nex@Dlb3-fPLKDmRZXiM~>`6!#^cIKherbW9}F+qd*nrAsVi^o+#3~94&3T5^yiA zu%g4kH#NcqM>h9XZpKz#xv=K=dtmfeaxjZ&h%7V8F0+E{*%a_$pG8ZD46H?HS#es? zR8yUnR34o)h!nSb6y;Ti-FXapPrFvw$ z+DT6rs`i9v_5FN=X3o_sk`^30t=~K=ppaEJ94GDC-4oWK-lq2P>*<$haq7>jxh#)^ zMW9g+mS?&zK0s)eoU?yLQGXuA`x`~Eu(JY&HUClQW@2UhH5U1Qt>k^G<>soSvhtqk za6UO#WF1FJV+|#PnO4_OVBIDz5*X`G#c0(;J|j79Qd>wPZ{!r97zQeGCxU|(2F-@( z*T!YIQeYc*&IR*J9G6$kS@1Dbu~yfd}ja?>iPR6)rVU zdd>qB!wAF?PnL`ta=HiuHZlp+CYPnEeLZFFz=E&<0->d(%A4CVY=3<0dq>2N$ywP_ zB*;x_2Al`1*V*l=S*jrY30MFeK}p0-rO_5s5@;@fr@Dl?($!>pP{`K|bc6;!XU6x* z^XmuT!)r5s7*Rn39-vqt&{H@Rh>yGgE&89y~%c zV!0Ha@zC>@ZFV!;VZIr?y9D!Ayv4xq`OI#=%BNSAe#il}&R&7Wszq=r=>;e6m5=B( zK-OojGvj-~z~v5p1(KFTly>B)@Q3|jfGfStcu0als)Cj>dQD%FhFJQ9PT5t2PfIvX z06fPz3K}EqLxVjid{^5La25n{aV95p*5LpF)?*Q=BmhiW_FX|;fVJM#Ad9#kiYmJ| zNv{#|!@=4|M7dh8Ae3!7YpSQ7Agh}}nHJD~dZfY>|J0Po_y^2Q^&L;%CQET4P9IBr zo1s(mC)p4uYhz=q&CUoX{k3Aby2Z8#YrwJvyu6l4E7jnT5~1#kpr$v za%m!O)xNDx^`W0c==J=F_wJj_;jktmX{T(tLFI^dDg`9iVi;!3LOoS>IUehb918c) z7bjal;oVKC4d!YMU9OCKN2AskWy)3Yv^5@Oufj}kkX7|TJr-Tgqy~d&DFVZ42u4ns zjWro%vyQM9tMo3yR0M=-!#F4!h0U3WiF>c&i>8lT>zd?}Us9}ldIgT^7U^znpZ36g z$&0vJvno0ttqf_Ys^wdP03(HDym^_l`|_L-!2+i`Y8*H`T@9M%afMTJ!Z!_YEi$y^ z5d+5R5VR$!W2j733?ir^b>j%?no$ra8l1_wzP=7-4Wsd|o~dnu$9l)#?m&yKKz~AI zZZK;|c1}`4N9lw5P{*Lb)s29Fp=esMT6V2*SMb~58r7np7LAs{VODy(*;_1>)|IKH zRa{on=kep}#VV+)9h@&)U-h+dN@aG|Ldd>G5CqQWGDX6GDevl0l!cLSxme zo-_%DSALOCtB~om78ZEJ51&*`Aq^=U18y1Z8A-O3TAJgr1C8dgZ&Ktr|h`<$eHP>XSQEF*r)mBVv}#ti=F= zqY)02L>zH&;Y&10Vpx7f*oU}aC*?R~W|5c|CSoXgSWD{WG$VNFs$T}J^6@i^D-3Hl)lORJ82c5H| zO#gYOJ8E3!Q*ymvxq!wzm}W2uX&rZGlVxhb2QLMkj^#}GQgi{{Km8Nz5cSyk>g2T% zJJx-{^SRNJ=3TU^C8>Jvo$|X*Y<8F{rNKQN+t|~L2cG%!>w|QCETDDf)XKJ}a_Duf zN=9_;wr7MTo)+3m7yG-~SsHLkHyoq^7G|N z<&kDvk~*Pf?3<5Ff1@Lfw$!^1(sk+E4i_+A_yW>3Vi0Z|3^1ixt`KsOhogHy?~>Z$ zk#R$f;-C}_9g!wJQ8#~)Yzn3%>^M_$@$gkw;&)x$Mp62CtzVxC9*&l6c~R1E&0S9j+Ki6k#6US^mh(@@mIrP>VTe~LZK%PC zdR{jhW>exdW<6~|BUphR4$sM!#2ge$+iR}PC1Qbwp86g-LMKyP$@@hXnJ%4xQE)Ab z@NHC57YIX zO?htz>lj}9Vdj->&sLHEV(3vbD7*0Wi(XWA7ew(O4q^`7l)2q7!v-SaFogg7HSLJ{ zv`NenE}3N{cxeLBjg1OICgSJITo*3?UF6fPC#>S+Pnx^zom>n?YT6te%kF$c92tm- zoTNimNR{jL+MW*e_1F~7b!JEX<(@3CG8=4B8L3Q-`}%kZp<%Z7Wsl*ws}}=`1o5@?SiduU8EkML*P z2l3|?5CdbYoZEH+L`j^uu_9;2gHcI=m0~`Ab8oejau;=Mn6&z2|2b8(K6E7>o1!Yk zS?5H;;x<<62;;oG^nRhsZ9jYXK9kLgi8}jn>r*;jYG$@T^t>S*r3xD*Up8P$O>`%( ztzXBRoeS$T5*i6__7^`(WtX+n1Hv@`iojdG0uVTBH63{PMKovYhJUN_P@YgIIthEj zO-`B8Bd$L-GqE3?KIJy%WVtFMV|OBB&AF0k5aRVZi#Dy>)ZlTo5%0BPWNdt0sq007 zgU#9SUZx&TeVHF^KRUys?Cz4uA@O@+wL?OC!txy0WqEiak?s2BU{<5t8Hn-bqJ%aH zhDD%$0U7n@VR6{`aRV-kFaTs==!XfuEo~@p(Ac2tC=)5NO6)iinFaJckoPn7%6=Y@ zwer7+a+!|{V0MC*;o9m9@bvJTP{EDe4evMOwhrvEIW(vwCPHEm7w%PYEC7Ku=uISC zJc@#Pl9oZ{Ynf@k704sW6h3BLqCIXIlZ9!T$gt|9S>FE+t3||Ncena8E>$XFek^@A zSmZcyI?*JK*~iH%;3|mt+%~JFwz<;$$6I{EtcUjzh;XNkx5gwh!o*c$7@ov)tS^Du zYy?~c?Dug68ms=u+@A<&bFX_jj5G+Rs_1p~5$oEiUmLlw?}#l}(<89I@YRtQPf>)~ zn}I^EI;S~?uA|-em1&E?yJxvG_+dYmMJmT-Jaxxa93Y=3S6j(gic(?lo_rjkwpng}3m)CKY#piCH<1X=Mq?0& zBgj3lEwQSxDKaHqonQ?JmoChb8o#q%BOiTpQtofPL)pFp53ZO$g<{x68^J6dtb}xQ z1l+=5q33#8J`E0?FFmatbrG<YIq3VXll<_#rRgK zHddP?;#L>K;`tfozf+nQzS83}Y_SEZm%s@KAFl7?-=f@}1tKsrDa>Yl%Pe|e(O^zf zY9Y(rFSD9RY#2|3zLFY?mYW%tc#v8Zf4J(T@o>gQ*|1%CZQ{p@rg&~*j_VRD>JWRo zFvzdF7n1yFpxX6#*~Pkt9D2oQWa8eVOb9dEGXKehv6(2f3TLzh;X|NcQqW6=8IdRZ&mRFO&GXHf4ILYHnE_~No zi@~T6)<=0O-~pk})dmc`L{2}7KF^Iayd&y^pw8ys6IJjc>-V=RGH473a>f7~s8|>@ z#RGLZR@XVi#xWU|G@9cjrBhKbl^$N-1T9!7*}U$$+9ZlJkPNU*JIEJ(izuQtdZYaT= zP5g!MvyinU_^VdwEt(SRpnM<5UxFSudiOr!NX0K(gr2R`tW`hVo=vSOFAu_*q`@<2L>>u zYfaAlmMSM+4|Cx?E*6S62zHN87v{;RSG1k<_OsxHLy)|`gFQp-6?sfK#i@poHIOlEhveeaAoaMvw2Q>oR>8r07lMz_`9#kj4T`Jl1W5m9oP zX>IlugwXsWTpeex59EoJx*?Z9EDwdqq_jfRg4vb}dZS-ylG$tCVquNv;N3<8 zE{yO5Z3X(&byz{6iMbycAKM5^c|w=Hx|dql)lw&m&{ur=Bqv$T_x+yv6jsXkbXs>j zCRt_r6O50)^L%D9IY~l_6O3s&8eZ9{mezRrZt|SfFFm&7RoUl4dDlMdDt+TvOH9w; zbSb5=*FnAXAS+58=p9Xb*plEjSb+VCg*JFdolnKIxW%}XN;`X^?(FIS8xeU~>G7_( z(V(K`eKBpCzDOPS&c0o^!t(8s$&OdJo;I&7$w*uN++ta{OZOQ!-@Bq(<)N4z*~C#K zRjhw+;v;&GoUESbK|VtD540@TgS*bl^P%}#8*PNfT(~^4mG`QmPcf1bBWD-g)-Pu< zSmlHOheWgbBgZ8}Uh}~7YU|mw!})Td&BIcA-ZC+oY7yO>O{Ow*$y?lgWi=;5p~HpS zNpA@cDhev({YH4V?lvNy(753ufF0THFiIq=zzF>Lh8Qfn#h$4p37m5+m$}h}9sj{4 z7{^jhnY!CFFy!+O9+S5i0)g){uaa%{-S*mGpSYeVT3_-KCYxyQuclBkmtAT;uRdIR zFv;rZG9MQXmXD{uUrnB=gg3+DH9B2l{=A6WxMi^>+kDR5t-2yx{1&M#&iLMXeQ08D z^Xh?L0vrTe42DlQ^$D2OV-QE+N zRzM@fhAJ>38ck?)=-Yrvf-el zWfSJNqqe_6uXQ5aoLwMPem$)~-F07BYxe&pI8nZiP=RWIOMZ6O7^bl;FWl?z8BLpO z=^@R)xukRq6GuQ#9=x`_RBLbnT)#X}b$!vV=ke|E%q^S6QxK+Jj>lW@(fJ|)@e<(d2lCAfz)MvV5CXrakKg`tg`;i99)oQ-bX*lewpM1 zs@`#*-=WpSQfct)RhP}$^QN^ODodjwl+&}|AYh)BvqW8pk=ESV=YpMu)${PXUYjO% z7zE7a*H{G{%!%kV6*&{|s-WY5>LFa~7QR3U>^Gu85^O28`>`d48uRuq_s|@WeUi8C zbORl3RD{b%`gfku>hbE zpW)WsYeb!KBMk}$X>uf{=wjNn9pyF`u}Mf# z6;tDfHb)+^)wwU_x4+e0-91AGuQ8XrA1=F8E;&y-h!_?}8hDy}RXR2>1DPOu5E>eA zJ!~g80_k%1pdNl4gwfc=lSMs&41=%tC?#dCFffaagjs~4ttkacx*G8&Gp^`Z0>7c+pER>CC4VwTm@%+jep5U^xKnW&?f`j8)_XB`rwT)K?rC^ zL0YFZjvH{NqXlYBMz$WX_yFe zx_ggO~B+jDUZ|3;?|LU>g@BmD8Sl=jjf% zb^Z8i`1VHg@`_=!yLS%)vD*~fMTc|f>O+YOg0On@YGki-Hs4pYwdtX%9sE}%^gquZ z`CAE{k%*Adl7dL$OZ>QCl+27ODUBmb!wo{Fp2}rSnjU936*IL;oG4mcr(aR5 zO+7EfGRqP*i+Ry|JGG|PCrN>|8s{BMy1sL4x_EE8bUC;P03jPfeGpZ3I*Q!UerEQ~ z0Ie~<{xS_gQ*aM*BL(EnCKplabqC zKpn3_?M>Xz^HE&D_elJT;O-%0^bXja4bBy(Js)v<`7J!U6 ze5t^Lhe?k$gB*O7;bQ!9clWb?-X!7y32tq_Wy9Y~N6jSQgA9Q3uWvA|9r$qCBO|;4 z#XJ&?&el%Qy93w7R7anjV3lT?m4Xk{1GPeZM5djQ1{>URQV$V=Fd)Hh0z(EyZa_qW z__*pnp^AHM2nL)Xl!W%BcQQaCA*d?`NauXT?2wA>s0e{RERudagwKJ(^8O8cg7%y%q^irDC_Gr-gWI&xX-p%^1 zqat{Iq-{OUm16sds!cizV{Ui}J8C%&$nTiVD~#h2Z{Kg4UiZZ@o;mKBHr;mC@}xEW ztf(8s(-}&(VkZ%89f(y=N|y9u|FmOA?Z60FfO>Rvn|j#~^P@vuAinQ{_;$It0gQz3 zOcZhOOnBpAzifm7f`nB_m?*U%NZL%8rBx;1we-xL@_n!3$CCxDm;nf9eKN4wXyAyw zd}e+T@Hp{2JfXvYFsxdf^jZkYs$qoS90R8f%WsQM^cFkm{CMuQ5PBP&!JH`rLdO>$ z&DGU0sQt^&ATh0>%e`qK-O^p}Y1XX?XgNq(E6rN{r4#`k;p9hLeP^L_*Xa+7`SP*w z)?FLOg988R3bXReVUp<}zKv!kFf|S2xHoS{3IB(cdSLPiTlJPZ~tFQbW!ZKDCP zp~>S9M&H&(M!$2+f*4JF9+ZfS7s_~vh=(Cd^s5+Vzehj7-7&G_z+j2r`@A>D$5Bd6 zX1FgZ3ukvlO@<*`wex%fb=DhN6{m2`nHX_(e?8f{$zkAi67V!2&|Y)TbZR@C^?q9L z&Wo+4zxmFT)dGKNfR^O5-BqnG-vM$u&*=p%k&Y+g*MbEC^8;mK9fJ*`mC7!{$i{S* z3Z}WnPAD+8rfdi-Kf)@E9@C^iHJqNHg4R&*wr=54UQnjA6w5>DC!guWCgwDGW|_#^PnmYkgk@%cuDlX%5f)92)(uni@fJiAiIFoXrcx-u!jy>%f|%)& zg$c^!vESt;7NQY9Tc~rc_5}W1Vqjb_ua*vC4#E=D6qh2`B*fG|y9ldtr7knmBH&!UGOB%HuvMU4TmD5LWBq!6~^-S6{bx!fs1+CY~er~Zaw`qR&lch{PGypLYX zeJdr*$&M(n#2%aAN2D3y2XG&vK0)vRAV?cmg$P;tf$fN&VFKgTGD}d7gTD7GffR}( zZ{;##NgVYP#!RXgbw`t!Q1xIx4Mpg_vzet;Kr#|AA~MfOGwbWSLwc1By01QgUUrFs zjuSFxI@er_VNc!Qx{rgV$`-NBz=9uwy=k?wUGs8CRQZDwC|#hAy_MGkt+yGpbbcp= z5ikICvOA?4^9X$kUL2&6iR_*8MJ_8_Zuiz0emdL3S$7#+tcnz|?c#{<&6;@LrKrVX zxiIC=xG-fD{6t)1(Ao84JG;=!_aQ8xHvmXAHERxEZeYhSsJN~es?7jm-k6}x06_<} zn*V{f+QxUcm%i6DAx2~AYsILhA-y^#LZd}xZK0dpjy<3%`uY|{lB}(ElG#zAMPu*7C_0Nwt-B{vvR2;t?=EAyY zzyIvFY(|NU@`=g4!O2O@+wXu<5}OQ#eA1-mW_)&!1Iu1a>t!7mqO zZk}M7PMbE-I|eqlu*7P(k!TeWydE;U;_*(wBUN;GRn;gzKabuZ)t)w;qh4`Qjbs#p z<0yQr847&ut1nJI3{znA(#x$v4|?fA!Xqk1mt{DNcz~JZQ7RD3{*k7{w9hq|?WSZd z-h?MrimV9A@okMb-ZTnN*U`)CcJjDFX^!WfJ#P`bc)prOxPl^S)hoKK^Jax>^3XZ~lQz`PiTFubkMQr{DhFi81_n)*cfZ zpj*xV{Vv0xs-+e3ca*oY%+%Yc&LOUGOn_5~K;!FauQ+9K1`cNroy;%T!c0E7YUmwe zt@0ZMw|gOsSgh0BEqB>8B8LlQA|X~EF*;q5`RQwfhbGB_g`M$ zpQ1H6%^~O0ywy2cbC~KpSUcxFGvfy`%0>IYnM`w^?2P8A3o_yb1dGLq$#o=mWaFC! zKGUVI)vW5seM-;20VLmDTVH7S{2I*W*RTV`u{pQ20Le83;tJ6-JJ;o~QyX9fkIx3I zXl$u89904NX%U1OBB!*mwN_%y@wOev99({5Wo0eJTh<*YMg*v++1c^@!kd;B%t{5w z+#252ETeJd83P~L+wQG0Y6vHjnQ#QC7G#E%&6&AfI2!_j4S4$u#>HuvYvv<@x6bj} z%GzUjBs?w1wze-d7;q2{Gp-n_E3T>mU>F@Yjs$oI2#OPj6#*g%>{4cJ^Ai~G+=?L_ zzs?JPq?Zz{?2{|EswU=7yW4kzgFPpW#O!6VmCDHQcSV!STg=k-XZ}c?`0!J0AfuUr zJ!x!FI>IGCm)XEV_0V;*9;k#_$&8RtuNH_N982HyE;yN)Sc0h_tu^T4fvqN1vgk%j@v&%L7FG&rADcWS>Z*9DdM2jgNH^b9q8Cufey z_ms<^VlbPju(B&(sFT4yKBWQ+A?-CGNa*UIiPS7CF!WBw@^{L{B6PKF-3kOuwM5Js zX8e{9s(&-E(*aMtJ~!OjBWHfvi9sm+8CWmS1>_@dd6I_ zyNqZIWLe8O`iWgWeV1bB$1*Wp!QmjXjvy~7nHv@H0A0%r>akVLfIsFhAc!3Wk6BnMF08-os&c+DsWvYA;K9zb`wnonbwm23kmYFy~$8 zb^96q;AGRXG?OXR!QM;8t!t0OORGQbiXvnDL12DvfMeLh#7KzbfN@?%huLxI`%A(4&STMYN9Z{2?yriy;pwc7%Ut#AO)x;6S@rqg? zq9CFuRS8N2!Pe|%H@k~~1_+{9NNrJsf>sHrC@CSRSfMJkE@VT~=3oOP!t1n7#}(s*T-j;TkOo@v(}G+dLt@Yv@o-ds0TGhlhXm=A{lTK}=Gd z?la4@GEZX8gXRx4GlI&S>`tjBoKzPzo!xbt`%%G)K1ogWrrA?V-R}9VZ!D`5Hda41 zG_H+3y;N!-o@ID7xA?AyTkVm+c1g@St2VeZG6(;Q`GZlrqhYX zIU6n0$~`mmLsdQj#)H1w&Mhe}9rv%L z{^nR4yX?t=CzVP279Z}G`b3A2r;RKGlET;P5_-ZTYxI?xi8+$BCTn7i^v|EIQqYsD z$V4W~$TjQsJUf3P!oY|Wxeu#E`PYnB>FHFXnsupjm)jOGdFj4d)4lC}-zlmC8u#A_ z@*9`ywJz&^Sh%vtUY%`n+(cwkto+2x-M+i(Wy`Y`rgI>Pb8c!*LqX-tGOHiOTN|EL zaM~vZcs9RoDCO$D_t>Je8vU{1dZA`x%S@4H|0(w&->eMokdJH07<*x>?C$=nM;c$$ zP(kXdw)trv=dGR-T9=ErZj@Zs?%h3fuj%KUPSf_>M|&0<+Nw=cpT;({?HV6^Pc$!CFW`4+%r8_qr@2V(|O*HnL$8(r=J=5CB zHN1YwPiZ=pm6JTA|5U=TQpAaAGTA0ANVip%_Lvx??6lVFF`A(L$h@+zVzISQ7jbT^ z*`3Y{)~nP8V;lMN!=-tvNj!gFePCW=P0aK$lYY4J;O3#E%sofjx=Yq&hDAM2ZJO-(1ufysEsnHn!S3 zm62Tt;9dVEYSxwx3!dK9ebMq4RUIvf*7m_BK)Y2mT3%uruf4{k9;%~LX?vpCFW!1I8VS&!F)-P>pJ%0JXzBKK? zL0`(*6xXTtcX)A_n5LSJ$*FPE19zRC9_W_QL8Mo&soNBq_6MCjcdp6U{Qa3n>UyO` zi#B+P7lq$(yf`>^@+7?<|0oUt*Cm&otR#Lp55AFa9{*-~nOTPSj+oMiU1i|!o?9(B z#=4HQh=q5eRnHe_T8HiGQw|(=T96cVvGl@z_m0iTLXced#sO*lkbD59dW&01T-GV9a!wlZPkwoI#5 zZ){E;ZdRWEvm(~A@_E)@eMifyy`B#ChWmX@Oi`B4sCC5464Ra2y*1wsdw2Eqi*A@} zcssb);wSY5t2-^C#^-8fecdO{H9g$jc*epja9oh~fxd0@&Cw-V)fh9%J9tsALHx6o zF@G)4zInLS{8h2}YPD{$gGu4Vt!`5n?&w~ad_%JKJr6nCi zRx>gdj0D_ENFy*7$~v+iKrtY;KteSJfLbA2k`I`Ku!gb6YK-(j;slaEQovGgp?(B= z$_Av7EYKR#gaqn?0w5N+A59?nBN+_Ii;xd!p^&W*BpTHK$_nl$V4=or`?p>I;t`1j zV0TelmQ4uTQUI<6Yk&ZWXbj7VWZS=fDLz_56o%%C!Ud?U0Igk+Qlus+z>7ru3fYrN zpjd<~zndVo+O}kJc%m?;zu#aT2K)T7cFDP2foV(V(E=_yArLnM+#8 zvcpG?gQni2(P$0PG>MECphV$ZVKl>1qDJ@t%qsR&6-dL7abOG%ssiqZ1J)p{0RSkX z5y+l{F*LI0;24I%xxz6Vi4OXCvnskm?A#Fb^xy}oMh176XGm}b;O+GLcj_~ zGy+*OET9}2hY&0p#Fk~*LOv)AfX!hI%rK%6=v-1HvcCubpBb)Qa0fv4N$|c0nR5bg z+Wu2(3i(%n&?e_NI&$VOm&p`d5If8Je9LtQV|#n;#`Sk(+=L7U&LH9Q1p-%GBoL4^ xMhSs}iCsi|7si?U|6KqR?(+@XrR*~Upe02pzLG26K1C1&ACTyHJh8Vs=N~jQGd%zR diff --git a/docs/ODJ-CR/ODJ-Sprint-1-15-09-25.pdf b/docs/ODJ-CR/ODJ-Sprint-1-15-09-25.pdf deleted file mode 100644 index 891f929cb0ef7c430169caac86e8142968122435..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 50385 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 diff --git a/docs/ODJ-CR/ODJ-Sprint-2-22-09-25.pdf b/docs/ODJ-CR/ODJ-Sprint-2-22-09-25.pdf deleted file mode 100644 index c0644361d228649a7c38adc96bf168496195c9e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51669 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𝔥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

Pd{=m28G`7b3_nb{Fz)xGuagk{4@= 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 XzvJos=UNH^I75TUczIRz)X4q^v Date: Mon, 29 Sep 2025 11:26:15 +0200 Subject: [PATCH 52/69] refreshed readme.md --- README.md | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 00000000000..068e210e7c2 --- /dev/null +++ b/README.md @@ -0,0 +1,75 @@ +![StreetComplete](.github/images/feature_graphic.png) + +StreetComplete is an easy to use editor of OpenStreetMap data available for Android. It can be used without any OpenStreetMap-specific knowledge. It asks simple questions, with answers directly used to edit and improve OpenStreetMap data. The app is aimed at users who do not know anything about OSM tagging schemes but still want to contribute to OpenStreetMap. + +StreetComplete automatically looks for nearby places where a survey is needed and shows them as quest markers on its map. Each of these quests can then be solved on site by answering a simple question. For example, tapping on a marker may show the question "What is the name of this road?", with a text field to answer it. +More examples are shown in the screenshots below. + +The user's answer is automatically processed and uploaded directly into the OSM database. Edits are done in meaningful changesets using the user's OSM account. +Since the app is meant to be used on a survey, it can be used offline and is +economic with data usage. + +To make the app easy to use, quests are limited to those answerable by asking simple questions. + +* See the [latest release notes](https://github.com/streetcomplete/StreetComplete/releases). + +## Screenshots + + +## Download + +[Get it on Google Play](https://play.google.com/store/apps/details?id=de.westnordost.streetcomplete)[Get it on F-Droid](https://f-droid.org/packages/de.westnordost.streetcomplete/)[Download APK from GitHub](https://github.com/streetcomplete/StreetComplete/releases/latest) + +## Quests + +There are quite a few different quest types now and more will be added over time. +You can see a community-managed [list of all quests in the OSM wiki](https://wiki.openstreetmap.org/wiki/StreetComplete/Quests). + +## FAQ + +You can find a list of [frequently asked questions in the wiki](https://wiki.openstreetmap.org/wiki/StreetComplete/FAQ). + +## Contributing + +This is an active open-source project, so you can get involved in it easily! +You can do so **without any programming or OpenStreetMap knowledge**! Just choose a task that you like. + +Here are a few things you can do: +* 🐛 [Test and report issues](CONTRIBUTING.md#testing-and-reporting-issues) +* 📃 [Translate the app into your language](CONTRIBUTING.md#translating-the-app) +* đŸ•”ïž [Solve notes left by StreetComplete users](CONTRIBUTING.md#solving-notes) +* 💡 [Suggest new quests](CONTRIBUTING.md#suggesting-new-quests), or, even better, [implement them](CONTRIBUTING.md#developing-new-quests). +* ➕ [and more
](CONTRIBUTING.md) + +Also, if you like StreetComplete, **spread the word**! ❀ + +## License + +This software is released under the terms of the [GNU General Public License](http://www.gnu.org/licenses/gpl-3.0.html). + +## Sponsors + +nlnet
+The **NLnet foundation** sponsored development on this app in four individual grants with funds from the European Commission:
+- A grant from 2025 will allow Tobias Zwick to finish migrating the app to a multiplatform, so that it runs also on iOS (see ticket) +- In 2021, a grant enabled Tobias Zwick to work about five months on the app - most notably, implement the overlays functionality and measuring with AR. +- In 2019 and 2021, Mateusz Konieczny each got a grant to work on StreetComplete with a focus on improvements on UI and data collection +
+ +GitHub Sponsors Liberapay Patreon
+Many users are currently supporting this app through GitHub sponsors, Liberapay and Patreon. If you like the app, you can join them â˜ș to support the continued development and maintenance of the app.
+
+ +JawgMaps
+Since mid 2020, **JawgMaps** provides their vector map tiles service to StreetComplete for free, i.e. the background map displayed in the app.
+
+ +## Past Sponsors + +German Federal Ministry of Education and ResearchPrototype Fund
+Within the frame of **Prototype Fund** round 15 (March 2024 to August 2024), the German Federal Ministry of Education and Research sponsored Tobias Zwick to work on StreetComplete for iOS (see [progress report](https://github.com/streetcomplete/StreetComplete/issues/5421#issuecomment-2332402123))

+Development on this app was also sponsored in round 8 (September 2020 to February 2021) of the Prototype fund, with focus on collecting more data points and on general improvements of this app.
+
+ +OpenStreetMap foundation
+In August 2020, the **OpenStreetMap foundation** funded the development of Map Maintenance with StreetComplete within the frame of the microgrants program.
From 2d8cb780c158992c2631e903fbee2503d43beff9 Mon Sep 17 00:00:00 2001 From: Naria Date: Sun, 5 Oct 2025 15:06:14 +0200 Subject: [PATCH 53/69] added priorityQueue heap to avoid java dependencies --- .../osm/geometry/polygons/PriorityQueue.kt | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PriorityQueue.kt diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PriorityQueue.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PriorityQueue.kt new file mode 100644 index 00000000000..2c5cf60be98 --- /dev/null +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PriorityQueue.kt @@ -0,0 +1,49 @@ +package de.westnordost.streetcomplete.data.osm.geometry.polygons + +//Basic heap priorityQueue made to avoid java dependencies +class PriorityQueue>() { + private val items = mutableListOf() + + val isEmpty: Boolean get() = items.isEmpty() + val size: Int get() = items.size + + fun add(element: T) { + items.add(element) + siftUp(items.lastIndex) + } + + fun poll(): T { + if(items.isEmpty()) throw NoSuchElementException("empty queue") + val root = items[0] + val last = items.removeAt(items.lastIndex) + if(items.isNotEmpty()) { + items[0] = last + siftDown(0) + } + return root + } + + private fun siftUp(index: Int){ + var i = index + while(i > 0){ + val parent = (i-1)/2 + if (items[i] <= items[parent]) break + items[i] = items[parent].also { items[parent] = items[i] } + i = parent + } + } + + private fun siftDown(index: Int) { + var i = index + while(true){ + val left = 2 * i + 1 + val right = left + 1 + var largest = i + if (left < items.size && items[left] > items[largest]) largest = left + if (right < items.size && items[right] > items[largest]) largest = right + if(largest == i) break + items[i] = items[largest].also { items[largest] = items[i] } + i = largest + } + } +} From aef8921f15aa9b002e2fd0b5b29bb441fd5c6f6f Mon Sep 17 00:00:00 2001 From: Naria Date: Sun, 5 Oct 2025 15:48:50 +0200 Subject: [PATCH 54/69] Algorithm complete but not plug nor tested yet --- .../geometry/polygons/PolygonAlgorithms.kt | 91 +++++++++++++++++++ 1 file changed, 91 insertions(+) diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt index 1e09eb83164..b5ecdf61bc3 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt @@ -1,5 +1,7 @@ package de.westnordost.streetcomplete.data.osm.geometry.polygons +import kotlin.math.min + object PolygonAlgorithms { /* Simple centroid algorithm */ @@ -15,6 +17,7 @@ object PolygonAlgorithms { } /* Core of the problem : visual center (within the polygon) */ + /* Set up of the variables */ fun polylabel(polygon: Polygon, precision: Double = 1.0): Point { var minX = polygon.shape.first().x var maxX = polygon.shape.first().x @@ -26,5 +29,93 @@ object PolygonAlgorithms { if (pts.y < minY) minY = pts.y if (pts.y > maxY) maxY = pts.y } + var width = maxX - minX + var height = maxY - minY + + val cellSize = minOf(width, height) + val halfCellSize = cellSize/2 + val queue = PriorityQueue() + + /* Set up of the initial working grid */ + var x = minX + while (x < maxX){ + var y = minY + while (y < maxY) { + val centerX = x + (halfCellSize) + val centerY = y + (halfCellSize) + val distance = pointToPolygonDist(Point(centerX, centerY), polygon) + queue.add(Cell(centerX, centerY, halfCellSize, distance)) + y += cellSize + } + x += cellSize + } + + /* Heart of the beast : processing where is the visual center */ + var best = queue.poll()!! + val centroid = centroid(polygon) + val centroidCell = Cell(centroid.x, centroid.y, 0.0, pointToPolygonDist(centroid, polygon)) + if(centroidCell.distance > best.distance) best = centroidCell + + while(!queue.isEmpty) { + val cell = queue.poll() + + if(cell.distance > best.distance) { + best = cell + } + + if (cell.max - best.distance <= precision) continue + + val half = cell.half/2 + val children = listOf( + Cell(cell.centerX - half, cell.centerY - half, half, pointToPolygonDist(Point(cell.centerX - half, cell.centerY - half), polygon)), + Cell(cell.centerX + half, cell.centerY - half, half, pointToPolygonDist(Point(cell.centerX + half, cell.centerY - half), polygon)), + Cell(cell.centerX - half, cell.centerY + half, half, pointToPolygonDist(Point(cell.centerX - half, cell.centerY + half), polygon)), + Cell(cell.centerX + half, cell.centerY + half, half, pointToPolygonDist(Point(cell.centerX + half, cell.centerY + half), polygon)) + ) + for (c in children) { + queue.add(c) + } + } + + return Point(best.centerX, best.centerY) + } + + fun pointToPolygonDist(pointToObserve: Point, polygon: Polygon): Double{ + var inside = false + var minDistSq = Double.POSITIVE_INFINITY + + val ring = polygon.shape + for (i in ring.indices) { + val pointA = ring[i] + val pointB = ring[(i + 1) % ring.size] + + val distSq = pointToSegmentDistSq(pointToObserve, pointA, pointB) + if(distSq < minDistSq) minDistSq = distSq + + val interesects = ((pointA.y > pointToObserve.y) != (pointB.y > pointToObserve.y)) && (pointToObserve.x < (pointB.x - pointA.x) * (pointToObserve.y - pointA.y) / (pointB.y - pointA.y) + pointA.x) + if(interesects) inside = !inside + } + + val dist = kotlin.math.sqrt(minDistSq) + return if(inside) dist else -dist + } + + private fun pointToSegmentDistSq(pointToObserve: Point, pointA: Point, pointB: Point): Double{ + var x = pointA.x + var y = pointA.y + var dx = pointB.x - x + var dy = pointB.y - y + + if(dx != 0.0 || dy != 0.0){ + val t = ((pointToObserve.x - x) * dx + (pointToObserve.y - y) * dy) / (dx*dx + dy*dy) + when { + t > 1 -> { x = pointB.x; y = pointB.y} + t > 0 -> { x += dx * t; y += dy * t } + } + } + + dx = pointToObserve.x - x + dy = pointToObserve.y - y + return dx*dx + dy*dy } } From 661a0fcda42e4d8cfc4cbdf291ab2e3683cb6de0 Mon Sep 17 00:00:00 2001 From: NariaReynhard Date: Mon, 6 Oct 2025 15:29:16 +0200 Subject: [PATCH 55/69] mandatory save before pull --- .../de/westnordost/streetcomplete/ApplicationConstants.kt | 2 +- .../streetcomplete/data/osm/geometry/polygons/Cell.kt | 3 ++- .../data/osm/geometry/polygons/PolygonAlgorithms.kt | 6 ++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/ApplicationConstants.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/ApplicationConstants.kt index 7c6fcd91917..7cd42c40f7e 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/ApplicationConstants.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/ApplicationConstants.kt @@ -4,7 +4,7 @@ import de.westnordost.streetcomplete.data.osm.edits.split_way.SplitWayAction import kotlin.time.Duration.Companion.minutes object ApplicationConstants { - const val NAME = "StreetComplete" + const val NAME = "StreetComplete_SAES5" val USER_AGENT = NAME + " " + BuildConfig.VERSION_NAME const val QUESTTYPE_TAG_KEY = NAME + ":quest_type" diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Cell.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Cell.kt index 900c1a1d7a7..1ac97a6ee1e 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Cell.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Cell.kt @@ -9,9 +9,10 @@ class Cell( val distance: Double, // distance between cell center and polygon. Positive if inside ) : Comparable { - /* max distance to expect */ + /* max distance to expect, optimistic bound */ val max: Double = distance + half * SQRT2 + /* Looking for the most promising cell */ override fun compareTo(other: Cell): Int = other.max.compareTo(this.max) companion object { diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt index 1e09eb83164..30a8680df68 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt @@ -26,5 +26,11 @@ object PolygonAlgorithms { if (pts.y < minY) minY = pts.y if (pts.y > maxY) maxY = pts.y } + val length = maxX - minX + val height = maxY - minY + val cellSize = minOf(length, height) + val h = cellSize / 2.0 + + val queue = PriorityQueue() } } From d200db3085069ceb7be399987f8ccfe677b86681 Mon Sep 17 00:00:00 2001 From: Naria Date: Wed, 8 Oct 2025 12:52:15 +0200 Subject: [PATCH 56/69] pushing the slippery file --- .../osm/geometry/ElementGeometryCreator.kt | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/ElementGeometryCreator.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/ElementGeometryCreator.kt index 1b6be1957f1..70467eba624 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/ElementGeometryCreator.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/ElementGeometryCreator.kt @@ -1,5 +1,7 @@ package de.westnordost.streetcomplete.data.osm.geometry +import de.westnordost.streetcomplete.data.osm.geometry.polygons.PolygonAlgorithms +import de.westnordost.streetcomplete.data.osm.geometry.polygons.PolygonUtils import de.westnordost.streetcomplete.data.osm.mapdata.Element import de.westnordost.streetcomplete.data.osm.mapdata.ElementType import de.westnordost.streetcomplete.data.osm.mapdata.LatLon @@ -61,7 +63,13 @@ class ElementGeometryCreator { /* ElementGeometry considers polygons that are defined clockwise holes, so ensure that it is defined CCW here. */ if (polyline.isRingDefinedClockwise()) polyline.reverse() - ElementPolygonsGeometry(arrayListOf(polyline), polyline.centerPointOfPolygon()) + /* Current in progress conversion from centroid to visual center */ + val outer = polyline + val holes = emptyList>() // Way as area has no explicit holes + val poly = PolygonUtils.fromLatLon(outer, holes) + val best = PolygonAlgorithms.polylabel(poly, precision = 0.0001) //Precision will be upgraded later to depend on zoom level + ElementPolygonsGeometry(arrayListOf(polyline), LatLon(best.y, best.x)) + /* Current in progress conversion from centroid to visual center */ } else { ElementPolylinesGeometry(arrayListOf(polyline), polyline.centerPointOfPolyline()) } @@ -97,7 +105,15 @@ class ElementGeometryCreator { /* only use first ring that is not a hole if there are multiple this is the same behavior as Leaflet or Tangram */ - return ElementPolygonsGeometry(rings, outer.first().centerPointOfPolygon()) + val outerRing = outer.first() + + /* Current in progress conversion from centroid to visual center */ + val holes = if (rings.size > 1) rings.drop(1) else emptyList() + val poly = PolygonUtils.fromLatLon(outerRing, holes) + val best = PolygonAlgorithms.polylabel(poly, precision = 0.0001) //Precision will be upgraded later to depend on zoom level + return ElementPolygonsGeometry(rings, LatLon(best.y, best.x)) + /* Current in progress conversion from centroid to visual center */ + } private fun createPolylinesGeometry( From f354b0651f09ddbea783d104489f27153e41bd32 Mon Sep 17 00:00:00 2001 From: Naria Date: Mon, 20 Oct 2025 10:16:36 +0200 Subject: [PATCH 57/69] Handled holed shapes and precision --- .../geometry/polygons/PolygonAlgorithms.kt | 46 +++++++++++++++---- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt index 0baf6242138..bd06bda0df4 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt @@ -31,6 +31,7 @@ object PolygonAlgorithms { } var width = maxX - minX var height = maxY - minY + val precision = (min(width, height) / 100.0).coerceAtLeast(0.5) val cellSize = minOf(width, height) val halfCellSize = cellSize / 2 @@ -81,25 +82,25 @@ object PolygonAlgorithms { } fun pointToPolygonDist(pointToObserve: Point, polygon: Polygon): Double { - var inside = false - var minDistSq = Double.POSITIVE_INFINITY + // Distance and inside state for the outer ring + var inside = isPointInRing(pointToObserve, polygon.shape) + var minDistSq = ringDistanceSq(pointToObserve, polygon.shape) - val ring = polygon.shape - for (i in ring.indices) { - val pointA = ring[i] - val pointB = ring[(i + 1) % ring.size] + // Check holes (inner rings) + for (hole in polygon.holes) { + // If point is inside a hole, it's considered outside overall + if (isPointInRing(pointToObserve, hole)) inside = false - val distSq = pointToSegmentDistSq(pointToObserve, pointA, pointB) + // Still check the distance — holes can affect nearest boundary + val distSq = ringDistanceSq(pointToObserve, hole) if (distSq < minDistSq) minDistSq = distSq - - val interesects = ((pointA.y > pointToObserve.y) != (pointB.y > pointToObserve.y)) && (pointToObserve.x < (pointB.x - pointA.x) * (pointToObserve.y - pointA.y) / (pointB.y - pointA.y) + pointA.x) - if (interesects) inside = !inside } val dist = kotlin.math.sqrt(minDistSq) return if (inside) dist else -dist } + private fun pointToSegmentDistSq(pointToObserve: Point, pointA: Point, pointB: Point): Double { var x = pointA.x var y = pointA.y @@ -118,4 +119,29 @@ object PolygonAlgorithms { dy = pointToObserve.y - y return dx * dx + dy * dy } + + private fun isPointInRing(point: Point, ring: List): Boolean { + var inside = false + for (i in ring.indices) { + val pointA = ring[i] + val pointB = ring[(i + 1) % ring.size] + + val intersects = ((pointA.y > point.y) != (pointB.y > point.y)) && + (point.x < (pointB.x - pointA.x) * (point.y - pointA.y) / (pointB.y - pointA.y) + pointA.x) + + if (intersects) inside = !inside + } + return inside + } + + private fun ringDistanceSq(point: Point, ring: List): Double { + var minDistSq = Double.POSITIVE_INFINITY + for (i in ring.indices) { + val pointA = ring[i] + val pointB = ring[(i + 1) % ring.size] + val distSq = pointToSegmentDistSq(point, pointA, pointB) + if (distSq < minDistSq) minDistSq = distSq + } + return minDistSq + } } From 7883cb22079d2af26e4b849c6cd13bae12878c73 Mon Sep 17 00:00:00 2001 From: NariaReynhard Date: Wed, 22 Oct 2025 07:36:29 +0200 Subject: [PATCH 58/69] Fixed undesired changes --- .../de/westnordost/streetcomplete/quests/QuestsModule.kt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt index 8678731c2fc..6d9bcb082eb 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt @@ -119,6 +119,8 @@ import de.westnordost.streetcomplete.quests.orchard_produce.AddOrchardProduce import de.westnordost.streetcomplete.quests.parcel_locker_brand.AddParcelLockerBrand import de.westnordost.streetcomplete.quests.parking_access.AddBikeParkingAccess import de.westnordost.streetcomplete.quests.parking_access.AddParkingAccess +import de.westnordost.streetcomplete.quests.parking_fee.AddBikeParkingFee +import de.westnordost.streetcomplete.quests.parking_fee.AddParkingFee import de.westnordost.streetcomplete.quests.parking_type.AddParkingType import de.westnordost.streetcomplete.quests.pitch_lit.AddPitchLit import de.westnordost.streetcomplete.quests.place_name.AddPlaceName @@ -274,6 +276,7 @@ fun questTypeRegistry( // parking 17 to AddParkingType(), 18 to AddParkingAccess(), // used by OSM Carto, mapy.cz, OSMand, Sputnik etc + 19 to AddParkingFee(), // used by OsmAnd 20 to AddTrafficCalmingType(), @@ -379,6 +382,7 @@ fun questTypeRegistry( 69 to AddBikeRentalType(), // generally less overlap of possible types/fewer choices/simpler to answer 70 to AddBikeParkingType(), // used by OsmAnd 71 to AddBikeParkingAccess(), + 72 to AddBikeParkingFee(), 73 to AddBikeRentalCapacity(), // less ambiguous than bike parking 74 to AddBikeParkingCapacity(), // used by cycle map layer on osm.org, OsmAnd From add9e59b82a8802306dd809bc960a566c23e6e37 Mon Sep 17 00:00:00 2001 From: NariaReynhard Date: Wed, 22 Oct 2025 07:45:13 +0200 Subject: [PATCH 59/69] Reuploaded missing files from parking_fee --- .../quests/parking_fee/AddBikeParkingFee.kt | 41 +++++ .../parking_fee/AddMotorcycleParkingFee.kt | 35 +++++ .../quests/parking_fee/AddParkingFee.kt | 35 +++++ .../quests/parking_fee/AddParkingFeeForm.kt | 147 ++++++++++++++++++ .../quests/parking_fee/ParkingFeeAnswer.kt | 6 + 5 files changed, 264 insertions(+) create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddBikeParkingFee.kt create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddMotorcycleParkingFee.kt create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFee.kt create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFeeForm.kt create mode 100644 app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/ParkingFeeAnswer.kt diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddBikeParkingFee.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddBikeParkingFee.kt new file mode 100644 index 00000000000..3a58855e684 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddBikeParkingFee.kt @@ -0,0 +1,41 @@ +package de.westnordost.streetcomplete.quests.parking_fee + +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry +import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType +import de.westnordost.streetcomplete.data.quest.AndroidQuest +import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.BICYCLIST +import de.westnordost.streetcomplete.osm.Tags +import de.westnordost.streetcomplete.osm.fee.applyTo +import de.westnordost.streetcomplete.osm.maxstay.applyTo + +class AddBikeParkingFee : OsmFilterQuestType(), AndroidQuest { + + // element selection logic by @DerDings in #2507 + override val elementFilter = """ + nodes, ways, relations with amenity = bicycle_parking + and access ~ yes|customers|public + and ( + name + or bicycle_parking ~ building|lockers|shed + or capacity >= 100 + ) + and ( + !fee and !fee:conditional + or fee older today -8 years + ) + """ + override val changesetComment = "Specify bicycle parking fees" + override val wikiLink = "Tag:amenity=bicycle_parking" + override val icon = R.drawable.ic_quest_bicycle_parking_fee + override val achievements = listOf(BICYCLIST) + + override fun getTitle(tags: Map) = R.string.quest_bicycle_parking_fee_title + + override fun createForm() = AddParkingFeeForm() + + override fun applyAnswerTo(answer: ParkingFeeAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { + answer.fee.applyTo(tags) + answer.maxstay?.applyTo(tags) + } +} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddMotorcycleParkingFee.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddMotorcycleParkingFee.kt new file mode 100644 index 00000000000..558483784a4 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddMotorcycleParkingFee.kt @@ -0,0 +1,35 @@ +package de.westnordost.streetcomplete.quests.parking_fee + +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry +import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType +import de.westnordost.streetcomplete.data.quest.AndroidQuest +import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.CAR +import de.westnordost.streetcomplete.osm.Tags +import de.westnordost.streetcomplete.osm.fee.applyTo +import de.westnordost.streetcomplete.osm.maxstay.applyTo + +class AddMotorcycleParkingFee : OsmFilterQuestType(), AndroidQuest { + + override val elementFilter = """ + nodes, ways, relations with amenity = motorcycle_parking + and access ~ yes|customers|public + and ( + !fee and !fee:conditional + or fee older today -8 years + ) + """ + override val changesetComment = "Specify motorcycle parking fees" + override val wikiLink = "Tag:amenity=motorcycle_parking" + override val icon = R.drawable.ic_quest_motorcycle_parking_fee + override val achievements = listOf(CAR) + + override fun getTitle(tags: Map) = R.string.quest_parking_fee_title + + override fun createForm() = AddParkingFeeForm() + + override fun applyAnswerTo(answer: ParkingFeeAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { + answer.fee.applyTo(tags) + answer.maxstay?.applyTo(tags) + } +} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFee.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFee.kt new file mode 100644 index 00000000000..1bb732669d0 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFee.kt @@ -0,0 +1,35 @@ +package de.westnordost.streetcomplete.quests.parking_fee + +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.data.osm.geometry.ElementGeometry +import de.westnordost.streetcomplete.data.osm.osmquests.OsmFilterQuestType +import de.westnordost.streetcomplete.data.quest.AndroidQuest +import de.westnordost.streetcomplete.data.user.achievements.EditTypeAchievement.CAR +import de.westnordost.streetcomplete.osm.Tags +import de.westnordost.streetcomplete.osm.fee.applyTo +import de.westnordost.streetcomplete.osm.maxstay.applyTo + +class AddParkingFee : OsmFilterQuestType(), AndroidQuest { + + override val elementFilter = """ + nodes, ways, relations with amenity = parking + and access ~ yes|customers|public + and ( + !fee and !fee:conditional + or fee older today -8 years + ) + """ + override val changesetComment = "Specify whether parking requires a fee" + override val wikiLink = "Tag:amenity=parking" + override val icon = R.drawable.ic_quest_parking_fee + override val achievements = listOf(CAR) + + override fun getTitle(tags: Map) = R.string.quest_parking_fee_title + + override fun createForm() = AddParkingFeeForm() + + override fun applyAnswerTo(answer: ParkingFeeAnswer, tags: Tags, geometry: ElementGeometry, timestampEdited: Long) { + answer.fee.applyTo(tags) + answer.maxstay?.applyTo(tags) + } +} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFeeForm.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFeeForm.kt new file mode 100644 index 00000000000..6a30e904700 --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/AddParkingFeeForm.kt @@ -0,0 +1,147 @@ +package de.westnordost.streetcomplete.quests.parking_fee + +import de.westnordost.streetcomplete.R +import de.westnordost.streetcomplete.databinding.QuestFeeHoursBinding +import de.westnordost.streetcomplete.databinding.QuestMaxstayBinding +import de.westnordost.streetcomplete.osm.fee.Fee +import de.westnordost.streetcomplete.osm.maxstay.MaxStay +import de.westnordost.streetcomplete.osm.opening_hours.parser.toOpeningHours +import de.westnordost.streetcomplete.quests.AbstractOsmQuestForm +import de.westnordost.streetcomplete.quests.AnswerItem +import de.westnordost.streetcomplete.quests.parking_fee.AddParkingFeeForm.Mode.FEE_AT_HOURS +import de.westnordost.streetcomplete.quests.parking_fee.AddParkingFeeForm.Mode.FEE_YES_NO +import de.westnordost.streetcomplete.quests.parking_fee.AddParkingFeeForm.Mode.MAX_STAY +import de.westnordost.streetcomplete.view.controller.DurationInputViewController +import de.westnordost.streetcomplete.view.controller.DurationUnit +import de.westnordost.streetcomplete.view.controller.TimeRestriction.AT_ANY_TIME +import de.westnordost.streetcomplete.view.controller.TimeRestriction.EXCEPT_AT_HOURS +import de.westnordost.streetcomplete.view.controller.TimeRestriction.ONLY_AT_HOURS +import de.westnordost.streetcomplete.view.controller.TimeRestrictionSelectViewController + +class AddParkingFeeForm : AbstractOsmQuestForm() { + + private var feeAtHoursSelect: TimeRestrictionSelectViewController? = null + + private var maxstayDurationInput: DurationInputViewController? = null + private var maxstayAtHoursSelect: TimeRestrictionSelectViewController? = null + + override val buttonPanelAnswers get() = + if (mode == FEE_YES_NO) { + listOf( + AnswerItem(R.string.quest_generic_hasFeature_no) { applyAnswer(ParkingFeeAnswer(Fee.No)) }, + AnswerItem(R.string.quest_generic_hasFeature_yes) { applyAnswer(ParkingFeeAnswer(Fee.Yes)) } + ) + } else { + emptyList() + } + + override val otherAnswers = listOf( + AnswerItem(R.string.quest_fee_answer_hours) { mode = FEE_AT_HOURS }, + AnswerItem(R.string.quest_fee_answer_no_but_maxstay) { mode = MAX_STAY }, + ) + + private var mode: Mode = FEE_YES_NO + set(value) { + if (field == value) return + field = value + updateContentView() + updateButtonPanel() + } + + private fun updateContentView() { + clearViewControllers() + + if (mode == FEE_AT_HOURS) { + val binding = QuestFeeHoursBinding.bind(setContentView(R.layout.quest_fee_hours)) + + feeAtHoursSelect = TimeRestrictionSelectViewController( + binding.timeRestrictionSelect.selectAtHours, + binding.timeRestrictionSelect.openingHoursList, + binding.timeRestrictionSelect.addTimesButton + ).also { + it.firstDayOfWorkweek = countryInfo.firstDayOfWorkweek + it.regularShoppingDays = countryInfo.regularShoppingDays + it.locale = countryInfo.userPreferredLocale + it.onInputChanged = { checkIsFormComplete() } + // user already answered that it depends on the time, so don't show the "at any time" option + it.selectableTimeRestrictions = listOf(ONLY_AT_HOURS, EXCEPT_AT_HOURS) + } + } else if (mode == MAX_STAY) { + val binding = QuestMaxstayBinding.bind(setContentView(R.layout.quest_maxstay)) + + maxstayDurationInput = DurationInputViewController( + binding.durationInput.unitSelect, + binding.durationInput.input + ).also { + it.onInputChanged = { checkIsFormComplete() } + } + maxstayAtHoursSelect = TimeRestrictionSelectViewController( + binding.timeRestrictionSelect.selectAtHours, + binding.timeRestrictionSelect.openingHoursList, + binding.timeRestrictionSelect.addTimesButton + ).also { + it.firstDayOfWorkweek = countryInfo.firstDayOfWorkweek + it.regularShoppingDays = countryInfo.regularShoppingDays + it.locale = countryInfo.userPreferredLocale + it.onInputChanged = { checkIsFormComplete() } + } + } + } + + private fun clearViewControllers() { + feeAtHoursSelect = null + maxstayAtHoursSelect = null + maxstayDurationInput = null + } + + override fun onDestroyView() { + super.onDestroyView() + clearViewControllers() + } + + override fun onClickOk() { + when (mode) { + FEE_AT_HOURS -> { + val hours = feeAtHoursSelect!!.times.toOpeningHours() + val fee = when (feeAtHoursSelect!!.timeRestriction) { + AT_ANY_TIME -> Fee.Yes + ONLY_AT_HOURS -> Fee.During(hours) + EXCEPT_AT_HOURS -> Fee.ExceptDuring(hours) + } + applyAnswer(ParkingFeeAnswer(fee)) + } + MAX_STAY -> { + val duration = MaxStay.Duration( + maxstayDurationInput!!.durationValue, + when (maxstayDurationInput!!.durationUnit) { + DurationUnit.MINUTES -> MaxStay.Unit.MINUTES + DurationUnit.HOURS -> MaxStay.Unit.HOURS + DurationUnit.DAYS -> MaxStay.Unit.DAYS + } + ) + val hours = maxstayAtHoursSelect!!.times.toOpeningHours() + val maxstay = when (maxstayAtHoursSelect!!.timeRestriction) { + AT_ANY_TIME -> duration + ONLY_AT_HOURS -> MaxStay.During(duration, hours) + EXCEPT_AT_HOURS -> MaxStay.ExceptDuring(duration, hours) + } + applyAnswer(ParkingFeeAnswer(Fee.No, maxstay)) + } + else -> {} + } + } + + override fun isRejectingClose() = when (mode) { + FEE_AT_HOURS -> feeAtHoursSelect!!.isComplete + MAX_STAY -> maxstayAtHoursSelect!!.isComplete || maxstayDurationInput!!.durationValue > 0.0 + else -> false + } + + override fun isFormComplete() = when (mode) { + FEE_AT_HOURS -> feeAtHoursSelect!!.isComplete + MAX_STAY -> maxstayAtHoursSelect!!.isComplete && maxstayDurationInput!!.durationValue > 0.0 + else -> false + } + + private enum class Mode { FEE_YES_NO, FEE_AT_HOURS, MAX_STAY } +} diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/ParkingFeeAnswer.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/ParkingFeeAnswer.kt new file mode 100644 index 00000000000..32ee622a41d --- /dev/null +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/parking_fee/ParkingFeeAnswer.kt @@ -0,0 +1,6 @@ +package de.westnordost.streetcomplete.quests.parking_fee + +import de.westnordost.streetcomplete.osm.fee.Fee +import de.westnordost.streetcomplete.osm.maxstay.MaxStay + +data class ParkingFeeAnswer(val fee: Fee, val maxstay: MaxStay? = null) From 16b41739054a5a672b0bce4d6bfd43d36c439174 Mon Sep 17 00:00:00 2001 From: NariaReynhard Date: Wed, 22 Oct 2025 07:47:10 +0200 Subject: [PATCH 60/69] Fixed a last issue with application name --- .../de/westnordost/streetcomplete/ApplicationConstants.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/ApplicationConstants.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/ApplicationConstants.kt index 7cd42c40f7e..7c6fcd91917 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/ApplicationConstants.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/ApplicationConstants.kt @@ -4,7 +4,7 @@ import de.westnordost.streetcomplete.data.osm.edits.split_way.SplitWayAction import kotlin.time.Duration.Companion.minutes object ApplicationConstants { - const val NAME = "StreetComplete_SAES5" + const val NAME = "StreetComplete" val USER_AGENT = NAME + " " + BuildConfig.VERSION_NAME const val QUESTTYPE_TAG_KEY = NAME + ":quest_type" From d7272d5ba55f5578a5e202989a600cec885c1872 Mon Sep 17 00:00:00 2001 From: NariaReynhard <84771519+NariaReynhard@users.noreply.github.com> Date: Thu, 23 Oct 2025 00:44:24 +0200 Subject: [PATCH 61/69] Fixed indentation issue --- .../de/westnordost/streetcomplete/quests/oneway/AddOneway.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt index f68e2079460..2d981383473 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/oneway/AddOneway.kt @@ -64,7 +64,7 @@ class AddOneway : OsmElementQuestType, AndroidQuest { */ // check if the way has connections to other roads at both ends (connectionCountByNodeIds[it.nodeIds.first()] ?: 0) > 1 && - (connectionCountByNodeIds[it.nodeIds.last()] ?: 0) > 1 + (connectionCountByNodeIds[it.nodeIds.last()] ?: 0) > 1 } } From 9a8685711a987caf2bbd4dfc1e428caed20b3049 Mon Sep 17 00:00:00 2001 From: Naria Date: Tue, 18 Nov 2025 14:28:39 +0100 Subject: [PATCH 62/69] refixed unexpected file changes --- .../res/drawable/ic_quest_first_aid_kit.xml | 26 ------------------- 1 file changed, 26 deletions(-) delete mode 100644 app/src/androidMain/res/drawable/ic_quest_first_aid_kit.xml diff --git a/app/src/androidMain/res/drawable/ic_quest_first_aid_kit.xml b/app/src/androidMain/res/drawable/ic_quest_first_aid_kit.xml deleted file mode 100644 index 5c4d1904353..00000000000 --- a/app/src/androidMain/res/drawable/ic_quest_first_aid_kit.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - - - - - From 719b83d6bb81a692f5f3fb694f5958cb802bc5e7 Mon Sep 17 00:00:00 2001 From: Naria Date: Tue, 18 Nov 2025 14:41:01 +0100 Subject: [PATCH 63/69] refixed unexpected file changes --- .../res/drawable/ic_quest_motorcycle_parking_fee.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/src/androidMain/res/drawable/ic_quest_motorcycle_parking_fee.xml b/app/src/androidMain/res/drawable/ic_quest_motorcycle_parking_fee.xml index f50ae4bd288..aa805b90522 100644 --- a/app/src/androidMain/res/drawable/ic_quest_motorcycle_parking_fee.xml +++ b/app/src/androidMain/res/drawable/ic_quest_motorcycle_parking_fee.xml @@ -27,21 +27,21 @@ android:pathData="m73.168,66.28a1.218,1.218 0,1 0,0 2.436h4.054l1.33,3.251c-0.611,-0.056 -1.345,0.059 -2.192,0.36 -2.248,1.065 -4.606,2.688 -5.149,4.914h-2.224c-1.412,-1.494 -3.083,-2.387 -4.773,-2.804 -1.921,-0.475 -3.84,-0.457 -5.671,-0.443a1.624,1.624 0,0 0,-1.464 2.336c-0.102,0.039 -0.204,0.077 -0.306,0.12 -2.366,0.987 -4.637,3.214 -5.557,6.892l2.413,0.603c-0.096,0.457 -0.148,0.93 -0.148,1.414 0,3.795 3.106,6.901 6.901,6.901 3.379,0 6.205,-2.465 6.786,-5.683h7.625a1.218,1.218 0,0 0,1.038 -0.58l1.499,-2.439 1.282,0.32c-0.106,0.478 -0.166,0.973 -0.166,1.481 0,3.795 3.106,6.901 6.901,6.901 3.795,0 6.901,-3.106 6.901,-6.901 0,-2.494 -1.346,-4.684 -3.343,-5.897l1.546,-1.842c-1.404,-1.179 -3.339,-1.643 -5.394,-1.469 -0.662,0.056 -1.336,0.18 -2.01,0.366l-0.97,-2.371c1.148,0.608 2.789,0.993 3.614,0.993v-4.871c-1.078,0 -3.551,0.744 -4.491,1.732L79.167,67.036A1.218,1.218 0,0 0,78.039 66.28ZM60.381,81.218c1.878,0 3.446,1.222 3.961,2.922h-4.164a1.218,1.218 0,1 0,0 2.436h4.164c-0.515,1.7 -2.083,2.922 -3.961,2.922 -2.303,0 -4.14,-1.837 -4.14,-4.14 0,-2.303 1.837,-4.14 4.14,-4.14zM85.346,81.218c2.303,0 4.14,1.837 4.14,4.14 0,2.303 -1.837,4.14 -4.14,4.14 -2.303,0 -4.14,-1.837 -4.14,-4.14 0,-1.301 0.586,-2.453 1.511,-3.209l1.502,3.671a1.218,1.218 0,1 0,2.255 -0.923l-1.498,-3.66c0.122,-0.011 0.245,-0.018 0.37,-0.018z" android:fillColor="#fff"/> From 571cf8c0562c491307a271c0e0e94b4afaeb0997 Mon Sep 17 00:00:00 2001 From: NariaReynhard Date: Mon, 1 Dec 2025 14:28:49 +0100 Subject: [PATCH 64/69] Deleted a comment that came from another PR of my group and should not appear yet --- .../kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt | 2 -- 1 file changed, 2 deletions(-) diff --git a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt index 6d9bcb082eb..f15f4b20d18 100644 --- a/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt +++ b/app/src/androidMain/kotlin/de/westnordost/streetcomplete/quests/QuestsModule.kt @@ -437,8 +437,6 @@ fun questTypeRegistry( 101 to AddFerryAccessPedestrian(), 102 to AddFerryAccessMotorVehicle(), - // aerial way: usually visible from looking at the aerial way, but not always... - 103 to AddProhibitedForPedestrians(), // need to understand the pedestrian situation 104 to MarkCompletedHighwayConstruction(), // need to look the whole way From db07680f7b6f645d39d6b2b3d9266ddd562d776d Mon Sep 17 00:00:00 2001 From: NariaReynhard Date: Mon, 1 Dec 2025 14:33:58 +0100 Subject: [PATCH 65/69] similar to previous push, string.xml values changed that appear on this PR because of another of my group's PR --- app/src/androidMain/res/values/strings.xml | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/app/src/androidMain/res/values/strings.xml b/app/src/androidMain/res/values/strings.xml index 9f0bb4039c1..d98d043b183 100644 --- a/app/src/androidMain/res/values/strings.xml +++ b/app/src/androidMain/res/values/strings.xml @@ -723,11 +723,6 @@ Before uploading your changes, the app checks with a <a href="https://www.wes Street name: Tap street on map to select it - Does this aerialway transport bicycles? - Yes - During summer - No - Is this place air-conditioned? Can you deposit cash at this ATM? @@ -782,8 +777,6 @@ Before uploading your changes, the app checks with a <a href="https://www.wes Openable Removable - How many bicycle can be charged here at the same time? - Which direction leads upwards here? It’s up and down hops @@ -870,11 +863,6 @@ Before uploading your changes, the app checks with a <a href="https://www.wes Fixed (not removable) Not a bollard, but some other barrier - In what direction can you ride this ? - This can be used bothway. - This can only lead upwards. - This can only lead downwards. - What’s the structure of this bridge? What kind of building entrance is this? @@ -1181,9 +1169,6 @@ A level counts as a roof level when its windows are in the roof. Subsequently, r Where is this defibrillator located? Please provide a concise description of its position (e.g. “in the porter’s lounge”). - Where is the first aid kit located? - Please provide a concise description of its position (e.g. “in the porter’s lounge”). - What’s the height of this curb? Same level as road surface A bit higher than road surface @@ -1272,8 +1257,6 @@ If there are no signs along the whole street which apply for the highlighted sec Is this motorcycle parking covered (protected from rain)? - Do you have to pay to park your motorcycle here? - Can you contribute anything to this note? No, hide @@ -1508,8 +1491,6 @@ If there are no signs along the whole street which apply for the highlighted sec It has several different shapes This quest type is disabled by default because roof shapes are often not easily visible from the street. This quest type is also quite time-consuming; in most cases it is easier and more efficient to map this from aerial imagery at home. - How many scooters can be charged here at the same time? - What kind of seating does this place have? No seating (takeout only) Indoor seating only From c9a615a7017358927978ad89dde6ddf195ab6986 Mon Sep 17 00:00:00 2001 From: NariaReynhard Date: Mon, 1 Dec 2025 14:45:03 +0100 Subject: [PATCH 66/69] Added reference to mapbox's work on polylabel for proper credits --- .../data/osm/geometry/polygons/PolygonAlgorithms.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt index bd06bda0df4..12c4bbb3ef4 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt @@ -1,7 +1,12 @@ package de.westnordost.streetcomplete.data.osm.geometry.polygons +import PriorityQueue import kotlin.math.min +/* + Implementation of the polylabel algorithm inspired by mapbox's implementation in java. + See here : https://github.com/mapbox/polylabel + */ object PolygonAlgorithms { /* Simple centroid algorithm */ @@ -100,7 +105,6 @@ object PolygonAlgorithms { return if (inside) dist else -dist } - private fun pointToSegmentDistSq(pointToObserve: Point, pointA: Point, pointB: Point): Double { var x = pointA.x var y = pointA.y From e51b6333c63afa46c392aee1ecd891074b50af52 Mon Sep 17 00:00:00 2001 From: NariaReynhard Date: Mon, 1 Dec 2025 14:46:23 +0100 Subject: [PATCH 67/69] Added more documentation at the start of the priorityQueue and fixed an issue in values swapping --- .../osm/geometry/polygons/PriorityQueue.kt | 48 +++++++++++++------ 1 file changed, 33 insertions(+), 15 deletions(-) diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PriorityQueue.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PriorityQueue.kt index 2c5cf60be98..226c0196d76 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PriorityQueue.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PriorityQueue.kt @@ -1,7 +1,12 @@ -package de.westnordost.streetcomplete.data.osm.geometry.polygons - -//Basic heap priorityQueue made to avoid java dependencies -class PriorityQueue>() { +/** + * A simple max-heap priority queue that stores elements implementing Comparable. + * + * poll() returns and removes the largest element. + * add() inserts a new element in O(log n). + * + * Internally this uses a binary heap stored in a MutableList. + */ +class PriorityQueue> { private val items = mutableListOf() val isEmpty: Boolean get() = items.isEmpty() @@ -13,36 +18,49 @@ class PriorityQueue>() { } fun poll(): T { - if(items.isEmpty()) throw NoSuchElementException("empty queue") + if (items.isEmpty()) throw NoSuchElementException("empty queue") val root = items[0] val last = items.removeAt(items.lastIndex) - if(items.isNotEmpty()) { + + if (items.isNotEmpty()) { items[0] = last siftDown(0) } + return root } - private fun siftUp(index: Int){ + private fun siftUp(index: Int) { var i = index - while(i > 0){ - val parent = (i-1)/2 + while (i > 0) { + val parent = (i - 1) / 2 if (items[i] <= items[parent]) break - items[i] = items[parent].also { items[parent] = items[i] } + + val tmp = items[i] + items[i] = items[parent] + items[parent] = tmp + i = parent } } private fun siftDown(index: Int) { var i = index - while(true){ + val size = items.size + + while (true) { val left = 2 * i + 1 val right = left + 1 var largest = i - if (left < items.size && items[left] > items[largest]) largest = left - if (right < items.size && items[right] > items[largest]) largest = right - if(largest == i) break - items[i] = items[largest].also { items[largest] = items[i] } + + if (left < size && items[left] > items[largest]) largest = left + if (right < size && items[right] > items[largest]) largest = right + if (largest == i) break + + val tmp = items[i] + items[i] = items[largest] + items[largest] = tmp + i = largest } } From 551a3a00058a7cf0219a06fcdf06ae203de40a49 Mon Sep 17 00:00:00 2001 From: NariaReynhard Date: Mon, 1 Dec 2025 16:55:22 +0100 Subject: [PATCH 68/69] adding unit tests for polylabel --- .../data/osm/geometry/PolylabelHoleTest.kt | 71 +++++++++++++++++++ .../data/osm/geometry/PolylabelSimpleTest.kt | 28 ++++++++ .../data/osm/geometry/PolylabelTest.kt | 35 +++++++++ .../data/osm/geometry/PriorityQueueTest.kt | 30 ++++++++ 4 files changed, 164 insertions(+) create mode 100644 app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PolylabelHoleTest.kt create mode 100644 app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PolylabelSimpleTest.kt create mode 100644 app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PolylabelTest.kt create mode 100644 app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PriorityQueueTest.kt diff --git a/app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PolylabelHoleTest.kt b/app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PolylabelHoleTest.kt new file mode 100644 index 00000000000..b14eac023d2 --- /dev/null +++ b/app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PolylabelHoleTest.kt @@ -0,0 +1,71 @@ +package de.westnordost.streetcomplete.data.osm.geometry + +import de.westnordost.streetcomplete.data.osm.geometry.polygons.Point +import de.westnordost.streetcomplete.data.osm.geometry.polygons.Polygon +import de.westnordost.streetcomplete.data.osm.geometry.polygons.PolygonAlgorithms +import kotlin.test.Test +import kotlin.test.assertTrue + +class PolylabelHoleTest { + + @Test + fun testSquareDonut() { + val outer = listOf( + Point(0.0, 0.0), + Point(20.0, 0.0), + Point(20.0, 20.0), + Point(0.0, 20.0), + Point(0.0, 0.0) + ) + + val hole = listOf( + Point(8.0, 8.0), + Point(12.0, 8.0), + Point(12.0, 12.0), + Point(8.0, 12.0), + Point(8.0, 8.0) + ) + + val polygon = Polygon(outer, holes = listOf(hole)) + val result = PolygonAlgorithms.polylabel(polygon, precision = 0.5) + + // The result must be inside the outer polygon + assertTrue(isPointInRing(result, outer), "Result should be inside the outer polygon") + + // The result must be outside the hole + assertTrue(!isPointInRing(result, hole), "Result should be outside the hole") + + // Optional: approximate distance to nearest boundary + val dist = PolygonAlgorithms.run { + privatePointToPolygonDist(result, polygon) + } + assertTrue(dist > 3.5, "Result should be reasonably far from edges") + } + + // Helper (copy of existing point-in-ring logic) + private fun isPointInRing(p: Point, ring: List): Boolean { + var inside = false + var j = ring.lastIndex + for (i in ring.indices) { + val xi = ring[i].x + val yi = ring[i].y + val xj = ring[j].x + val yj = ring[j].y + if ((yi > p.y) != (yj > p.y) && + (p.x < (xj - xi) * (p.y - yi) / (yj - yi + 0.0) + xi)) { + inside = !inside + } + j = i + } + return inside + } + + // Expose pointToPolygonDist for distance check (since private in PolygonAlgorithms) + private fun PolygonAlgorithms.privatePointToPolygonDist(p: Point, polygon: Polygon): Double { + val method = PolygonAlgorithms::class.java.getDeclaredMethod( + "pointToPolygonDist", Point::class.java, Polygon::class.java + ) + method.isAccessible = true + return method.invoke(this, p, polygon) as Double + } +} diff --git a/app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PolylabelSimpleTest.kt b/app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PolylabelSimpleTest.kt new file mode 100644 index 00000000000..da37ac5a89e --- /dev/null +++ b/app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PolylabelSimpleTest.kt @@ -0,0 +1,28 @@ +package de.westnordost.streetcomplete.data.osm.geometry + +import de.westnordost.streetcomplete.data.osm.geometry.polygons.Point +import de.westnordost.streetcomplete.data.osm.geometry.polygons.Polygon +import de.westnordost.streetcomplete.data.osm.geometry.polygons.PolygonAlgorithms +import kotlin.test.Test +import kotlin.test.assertEquals + +class PolylabelSimpleTest { + + @Test + fun testSimpleSquare() { + val poly = Polygon( + shape = listOf( + Point(0.0, 0.0), + Point(10.0, 0.0), + Point(10.0, 10.0), + Point(0.0, 10.0), + Point(0.0, 0.0) + ) + ) + + val result = PolygonAlgorithms.polylabel(poly, precision = 1.0) + + assertEquals(5.0, result.x, 1.0) + assertEquals(5.0, result.y, 1.0) + } +} diff --git a/app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PolylabelTest.kt b/app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PolylabelTest.kt new file mode 100644 index 00000000000..22ed2d0aad9 --- /dev/null +++ b/app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PolylabelTest.kt @@ -0,0 +1,35 @@ +package de.westnordost.streetcomplete.data.osm.geometry + +import de.westnordost.streetcomplete.data.osm.geometry.polygons.Point +import de.westnordost.streetcomplete.data.osm.geometry.polygons.Polygon +import de.westnordost.streetcomplete.data.osm.geometry.polygons.PolygonAlgorithms +import kotlin.test.Test +import kotlin.test.assertTrue + +class PolylabelTest { + + @Test + fun testIrregularPolygon() { + val shape = listOf( + Point(100.0, 100.0), + Point(500.0, 120.0), + Point(480.0, 400.0), + Point(200.0, 450.0), + Point(120.0, 300.0), + Point(100.0, 100.0) + ) + + val polygon = Polygon(shape) + + val result = PolygonAlgorithms.polylabel(polygon, precision = 5.0) + + // We don’t hardcode a value — we test geometric properties. + // 1. It must be inside the bounding box: + assertTrue(result.x in 100.0..500.0) + assertTrue(result.y in 100.0..450.0) + + // 2. It must be inside polygon (distance > 0) + val dist = PolygonAlgorithms.pointToPolygonDist(result, polygon) + assertTrue(dist > 0.0) + } +} diff --git a/app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PriorityQueueTest.kt b/app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PriorityQueueTest.kt new file mode 100644 index 00000000000..48cea694ada --- /dev/null +++ b/app/src/androidInstrumentedTest/kotlin/de/westnordost/streetcomplete/data/osm/geometry/PriorityQueueTest.kt @@ -0,0 +1,30 @@ +package de.westnordost.streetcomplete.data.osm.geometry + +import PriorityQueue +import de.westnordost.streetcomplete.data.osm.geometry.polygons.Cell +import kotlin.test.Test +import kotlin.test.assertEquals +import kotlin.test.assertTrue + +class PriorityQueueTest { + + @Test + fun testPriorityQueueSortsByCellMaxDescending() { + val q = PriorityQueue() + + // distance = distance to polygon center; half=half size + val c1 = Cell(0.0, 0.0, 1.0, 1.0) // max = 1 + 1.414 + val c2 = Cell(0.0, 0.0, 1.0, 5.0) // max = 5 + 1.414 + val c3 = Cell(0.0, 0.0, 1.0, 3.0) // max = 3 + 1.414 + + q.add(c1) + q.add(c2) + q.add(c3) + + // Should extract in descending max order (c2 > c3 > c1) + assertEquals(c2, q.poll()) + assertEquals(c3, q.poll()) + assertEquals(c1, q.poll()) + assertTrue(q.isEmpty) + } +} From 6c9b906ef7b3c129f8a36ed4d719455b71665d6d Mon Sep 17 00:00:00 2001 From: NariaReynhard Date: Mon, 1 Dec 2025 16:55:42 +0100 Subject: [PATCH 69/69] fixed a few logic issues --- .../data/osm/geometry/polygons/Cell.kt | 5 +- .../geometry/polygons/PolygonAlgorithms.kt | 98 +++++++++---------- .../osm/geometry/polygons/PriorityQueue.kt | 2 + 3 files changed, 54 insertions(+), 51 deletions(-) diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Cell.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Cell.kt index 1ac97a6ee1e..e9a50ec549e 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Cell.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/Cell.kt @@ -2,7 +2,7 @@ package de.westnordost.streetcomplete.data.osm.geometry.polygons import kotlin.math.sqrt -class Cell( +data class Cell( val centerX: Double, val centerY: Double, val half: Double, // half of the cell size @@ -13,7 +13,8 @@ class Cell( val max: Double = distance + half * SQRT2 /* Looking for the most promising cell */ - override fun compareTo(other: Cell): Int = other.max.compareTo(this.max) + override fun compareTo(other: Cell): Int = + this.max.compareTo(other.max) companion object { private val SQRT2 = sqrt(2.0) diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt index 12c4bbb3ef4..b943fd57c0f 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PolygonAlgorithms.kt @@ -2,6 +2,7 @@ package de.westnordost.streetcomplete.data.osm.geometry.polygons import PriorityQueue import kotlin.math.min +import kotlin.math.sqrt /* Implementation of the polylabel algorithm inspired by mapbox's implementation in java. @@ -24,85 +25,84 @@ object PolygonAlgorithms { /* Core of the problem : visual center (within the polygon) */ /* Set up of the variables */ fun polylabel(polygon: Polygon, precision: Double = 1.0): Point { - var minX = polygon.shape.first().x - var maxX = polygon.shape.first().x - var minY = polygon.shape.first().y - var maxY = polygon.shape.first().y - for (pts in polygon.shape) { - if (pts.x < minX) minX = pts.x - if (pts.x > maxX) maxX = pts.x - if (pts.y < minY) minY = pts.y - if (pts.y > maxY) maxY = pts.y - } - var width = maxX - minX - var height = maxY - minY - val precision = (min(width, height) / 100.0).coerceAtLeast(0.5) + val minX = polygon.shape.minOf { it.x } + val maxX = polygon.shape.maxOf { it.x } + val minY = polygon.shape.minOf { it.y } + val maxY = polygon.shape.maxOf { it.y } + + val width = maxX - minX + val height = maxY - minY + val cellSize = (min(width, height) / 10.0) + val halfCell = cellSize / 2.0 - val cellSize = minOf(width, height) - val halfCellSize = cellSize / 2 val queue = PriorityQueue() - /* Set up of the initial working grid */ + // Initialize grid, skip cells inside holes var x = minX while (x < maxX) { var y = minY while (y < maxY) { - val centerX = x + (halfCellSize) - val centerY = y + (halfCellSize) - val distance = pointToPolygonDist(Point(centerX, centerY), polygon) - queue.add(Cell(centerX, centerY, halfCellSize, distance)) + val center = Point(x + halfCell, y + halfCell) + if (isPointInRing(center, polygon.shape) && + polygon.holes.none { isPointInRing(center, it) }) { + val distance = pointToPolygonDist(center, polygon) + queue.add(Cell(center.x, center.y, halfCell, distance)) + } y += cellSize } x += cellSize } - /* Heart of the beast : processing where is the visual center */ - var best = queue.poll()!! - val centroid = centroid(polygon) - val centroidCell = Cell(centroid.x, centroid.y, 0.0, pointToPolygonDist(centroid, polygon)) - if (centroidCell.distance > best.distance) best = centroidCell + var best: Cell? = null - while (!queue.isEmpty) { + while (queue.isNotEmpty()) { val cell = queue.poll() - if (cell.distance > best.distance) { - best = cell - } + if (best == null || cell.distance > best.distance) best = cell - if (cell.max - best.distance <= precision) continue + if (cell.max - (best?.distance ?: 0.0) <= precision) continue - val half = cell.half / 2 + val h = cell.half / 2.0 val children = listOf( - Cell(cell.centerX - half, cell.centerY - half, half, pointToPolygonDist(Point(cell.centerX - half, cell.centerY - half), polygon)), - Cell(cell.centerX + half, cell.centerY - half, half, pointToPolygonDist(Point(cell.centerX + half, cell.centerY - half), polygon)), - Cell(cell.centerX - half, cell.centerY + half, half, pointToPolygonDist(Point(cell.centerX - half, cell.centerY + half), polygon)), - Cell(cell.centerX + half, cell.centerY + half, half, pointToPolygonDist(Point(cell.centerX + half, cell.centerY + half), polygon)) + Point(cell.centerX - h, cell.centerY - h), + Point(cell.centerX + h, cell.centerY - h), + Point(cell.centerX - h, cell.centerY + h), + Point(cell.centerX + h, cell.centerY + h) ) + for (c in children) { - queue.add(c) + if (isPointInRing(c, polygon.shape) && + polygon.holes.none { isPointInRing(c, it) }) { + queue.add(Cell(c.x, c.y, h, pointToPolygonDist(c, polygon))) + } } } - return Point(best.centerX, best.centerY) + return Point(best!!.centerX, best.centerY) } - fun pointToPolygonDist(pointToObserve: Point, polygon: Polygon): Double { - // Distance and inside state for the outer ring - var inside = isPointInRing(pointToObserve, polygon.shape) - var minDistSq = ringDistanceSq(pointToObserve, polygon.shape) + fun pointToPolygonDist(point: Point, polygon: Polygon): Double { + // Is the point inside the outer shape? + val insideOuter = isPointInRing(point, polygon.shape) - // Check holes (inner rings) + // Distance to outer shape + var minDistSq = ringDistanceSq(point, polygon.shape) + + // Distance to holes for (hole in polygon.holes) { - // If point is inside a hole, it's considered outside overall - if (isPointInRing(pointToObserve, hole)) inside = false + val insideHole = isPointInRing(point, hole) + val distSqHole = ringDistanceSq(point, hole) - // Still check the distance — holes can affect nearest boundary - val distSq = ringDistanceSq(pointToObserve, hole) - if (distSq < minDistSq) minDistSq = distSq + if (insideHole) { + // Inside a hole → consider outside polygon + return -sqrt(distSqHole) + } + + // Outside hole, may be closer than outer + minDistSq = minOf(minDistSq, distSqHole) } - val dist = kotlin.math.sqrt(minDistSq) - return if (inside) dist else -dist + return if (insideOuter) sqrt(minDistSq) else -sqrt(minDistSq) } private fun pointToSegmentDistSq(pointToObserve: Point, pointA: Point, pointB: Point): Double { diff --git a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PriorityQueue.kt b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PriorityQueue.kt index 226c0196d76..57115971c19 100644 --- a/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PriorityQueue.kt +++ b/app/src/commonMain/kotlin/de/westnordost/streetcomplete/data/osm/geometry/polygons/PriorityQueue.kt @@ -30,6 +30,8 @@ class PriorityQueue> { return root } + fun isNotEmpty(): Boolean = items.size != 0 + private fun siftUp(index: Int) { var i = index while (i > 0) {