public/css/screen.css0000644000175000056700000000454715226251677013371 0ustar0000000000000000body { margin: 0; padding: 0; font-family: Georgia, sans-serif; line-height: 1.5em; font-size: 12pt; } h1, h2, h3 { padding: 0; margin: 0; } h1, h2 { line-height: 1.25em; } header { margin: 0; margin-bottom: 8pt; padding-top: 12pt; padding-bottom: 26pt; border: 1px solid black; color: #fff; background: #000; font-size: 19pt; text-align: center; box-shadow: 0px 2px 12px #888; } header h1 a { background: url(/images/symbol.png) top center no-repeat; color: #FFFFFF; display: block; margin-top: 0.25em; padding-top: 100px; text-decoration: none; } section { padding-top: 16pt; text-align: center; } section h1 { font-size: 19pt; } article { padding-top: 8pt; } article, nav { margin: 0 auto; text-align: justify; } article p a, article li a { text-decoration: none; border-bottom: 1px dashed #444; color: #000; } article p a:hover, article li a:hover { color: #337; } section.concrete { background: #ccc; margin-top: 24pt; padding-top: 24pt; padding-bottom: 32pt; border-top: 8pt solid #aaa; } section.concrete h1 { font-size: 28pt; margin-bottom: 32pt; text-align: center; } section.concrete h2 { margin-top: 12pt; } section.concrete h2 a { text-decoration: none; color: #000; } section.concrete h2 a:hover { border-bottom: 2px dashed #444; color: #337; } section.concrete h3 { color: #333; font-weight: normal; } section#factor h2 { font-size: 28pt; margin-bottom: 12pt; } section#factor h3 { font-size: 17pt; font-weight: normal; color: #555; margin-bottom: 16pt; } nav { margin-top: 16pt; margin-bottom: 48pt; } nav #locales { text-align: center; } nav #locales a { color: #000; } nav #locales span { font-weight: bold; } nav #next { float: right; } nav #prev { float: left; } nav #next a, nav #prev a { display: block; font-size: 19pt; text-decoration: none; color: #000; } code { border: 1px solid #999; background: #eee; padding: 1pt 3pt; } table { padding-left: 32pt; } td, th { padding-right: 12pt; padding-bottom: 4pt; } footer { color: #999; font-size: 10pt; background: #000; padding-top: 24pt; padding-bottom: 16pt; text-align: center; padding-right: 64pt; min-height: 56pt; } footer a { color: #999; } article img { float: right; margin-left: 32pt; } article img.full { float: none; margin-left: 0; } content/fr/port-binding.md0000644000175000056700000000444515226251677014326 0ustar0000000000000000## VII. Associations de ports ### Exportez les services via des associations de ports Les applications web sont parfois exécutées à l'intérieur d'un container de serveur web. Par exemple, les applications PHP peuvent fonctionner comme un module à l'intérieur de [HTTPD, d'Apache](http://httpd.apache.org/), ou bien les applications Java peuvent fonctionner à l'intérieur de [Tomcat](http://tomcat.apache.org/). **Les applications 12 facteurs sont complètement auto-contenues** et ne se basent pas sur l'injection au moment de l'exécution d'un serveur web dans l'environnement d'exécution pour créer les services exposés au web. L'application web **expose HTTP comme un service en l'associant à un port** et écoute les requêtes qui arrivent sur ce port. Dans un environnement de développement local, le développeur visite l'URL d'un service tel que `http://localhost:5000/` pour accéder au service exporté par leur application. Durant le déploiement, une couche de routage gère le routage des requêtes depuis un nom d'hôte qui s'expose au public, vers les processus sur lequel est associé le port. Ceci est typiquement implémenté en utilisant [la déclaration de dépendances](./dependencies) pour ajouter une bibliothèque de serveur web, tel que [Tornado](http://www.tornadoweb.org/) pour Python, [Thin](http://code.macournoyer.com/thin/) pour Ruby, ou [Jetty](http://www.eclipse.org/jetty/) pour Java et autres langages basés sur la JVM. Cela se déroule entièrement dans l'espace utilisateur, c'est-à-dire, dans le code de l'application. Le contrat avec l'environnement d'exécution, c'est l'association de port pour servir les requêtes. HTTP n'est pas le seul service qui peut être exporté à l'aide d'association de ports. Presque tout type de serveur peut fonctionner à travers l'association à un port et l'écoute des requêtes entrantes. Il y a par exemple [ejabberd](http://www.ejabberd.im/) (qui parle [XMPP](http://xmpp.org/)), et [Redis](http://redis.io/) (qui parle le [protocole Redis](http://redis.io/topics/protocol)). Notez également que l'approche par association de port signifie qu'une application peut devenir le [service externe](./backing-services) d'une autre application, en fournissant l'URL de l'application externe dans la configuration de l'application qui la consomme. content/pl/dependencies.md0000644000175000056700000000616515226251677014365 0ustar0000000000000000## II. Dependencies ### Jawnie zadeklaruj i wydziel zależności Większość języków programowania oferuje narzędzia do dystrybucji dodatkowych bibliotek, takie jak [CPAN](http://www.cpan.org/) dla Perla lub [Rubygems](http://rubygems.org/) dla języka Ruby. Biblioteki zainstalowane w ten sposób mogą być dostępne dla całego systemu (określane jako "site packages") lub zakres ich działania może być ograniczony dla pojedynczego projektu lub aplikacji (określane jako "vendoring" lub "bundling"). **Aplikacja 12factor nigdy nie jest zależna od bibliotek zainstalowanych dla całego systemu.** Wszystkie zależności są dokładnie określone przez dokument zawierający ich kompletną listę (*dependency declaration manifest*). Ponadto taka aplikacja korzysta z narzędzia służącego do izolacji tych zależności podczas działania aplikacji. W ten sposób ma się pewność, że np. jakaś biblioteka nie jest przypadkiem jedną z tych zainstalowanych w zewnętrznym środowisku, w którym działa aplikacja. Inaczej podobna sytuacja mogłaby uniemożliwiać poprawne działanie aplikacji w innym środowisku, gdzie takiej biblioteki by brakowało. Pełna i dokładna specyfikacja bibliotek używanych przez aplikację jest identyczna dla zarówno środowiska developerskiego jak i produkcyjnego. Np. [Bundler](https://bundler.io/) dla Ruby'ego używa pliku `Gemfile` dla deklaracji bibliotek z których korzysta aplikacja oraz komendę `bundle exec` do izolacji tych zależności. W Pythonie istnieją dwa oddzielne narzędzia dla tych zadań -- [Pip](http://www.pip-installer.org/en/latest/) jest używany do deklaracji oraz [Virtualenv](http://www.virtualenv.org/en/latest/) do izolacji. Nawet język C posiada narzędzie [Autoconf](http://www.gnu.org/s/autoconf/) do deklaracji zależności, a statyczne wiązania mogą zapewnić izolację zależności. Bez względu na użyte narzędzia, deklaracja i izolacja zależności muszą być zawsze stosowane razem. Użycie tylko jednej z nich nie jest wystarczające by spełnić wymogi 12factor. Jedną z niewątpliwych korzyści deklaracji zależności jest uproszczenie początkowej konfiguracji aplikacji dla developera. Nowy programista może pobrać kod źródłowy z repozytorium. Następnie, posiadając wcześniej skonfigurowane środowisko danego języka i narzędzie do zarządzania jego bibliotekami, jest w stanie zainstalować wszystkie moduły i biblioteki potrzebne dla działania aplikacji przy pomocy jednej komendy. Taką komendą np. dla Ruby'ego/Bundlera jest `bundle install`, a dla Clojure/[Leiningen](https://github.com/technomancy/leiningen#readme) jest to `lein deps`. Aplikacje zgodne z 12factor również nie są zależne od systemowych narzędzi. Wśród przykładów można wymienić ImageMagick czy też `curl`. Pomimo, że narzędzia te mogą być dostępne na wielu lub nawet większości systemów, nie ma gwarancji, że będą istniały na wszystkich środowiskach, w których będzie uruchamiana aplikacja w przyszłości lub że ich wersja będzie kompatybilna. Jeśli aplikacja korzysta z jakiegokolwiek systemowego narzędzia, powinno być ono osobno do niej dołączone. content/tr/who.md0000644000175000056700000000024215226251677012534 0ustar0000000000000000Bu belgeyi kim okumalı? ======================= Herhangi bir çalışan uygulama geliştirenler. Bu tür uygulamaları dağıtan ve yöneten Ops mühendisleri. content/fr/intro.md0000644000175000056700000000242415226251677013060 0ustar0000000000000000Introduction ============ À l'époque actuelle, les logiciels sont régulièrement délivrés en tant que services : on les appelle des *applications web* (web apps), ou *logiciels en tant que service* (*software-as-a-service*). L'application 12 facteurs est une méthodologie pour concevoir des logiciels en tant que service qui : * Utilisent des formats déclaratifs pour mettre en oeuvre l'automatisation, pour minimiser le temps et les coûts pour que de nouveaux développeurs rejoignent le projet; * Ont un **contrat propre** avec le système d'exploitation sous-jacent, offrant une **portabilité maximum** entre les environnements d'exécution; * Sont adaptés à des **déploiements** sur des **plateformes cloud** modernes, rendant inutile le besoin de serveurs et de l'administration de systèmes; * **Minimisent la divergence** entre le développement et la production, ce qui permet le *déploiement continu* pour une agilité maximum; * et peuvent **grossir verticalement** sans changement significatif dans les outils, l'architecture ou les pratiques de développement; La méthodologie 12 facteurs peut être appliquée à des applications écrites dans tout langage de programmation, et qui utilisent tout type de services externes (base de données, file, cache mémoire, etc.) content/pt_br/port-binding.md0000644000175000056700000000413615226251677015022 0ustar0000000000000000## VII. Vínculo de Portas ### Exporte serviços via vínculo de portas Apps web as vezes são executadas dentro de container de servidor web. Por exemplo, apps PHP podem rodar como um módulo dentro do [Apache HTTPD](http://httpd.apache.org/), ou apps Java podem rodar dentro do [Tomcat](http://tomcat.apache.org/). **O aplicativo doze-fatores é completamente auto-contido** e não depende de injeções de tempo de execução de um servidor web em um ambiente de execução para criar um serviço que defronte a web. O app web **exporta o HTTP como um serviço através da vínculação a uma porta**, e escuta as requisições que chegam na mesma. Num ambiente de desenvolvimento local, o desenvolvedor visita a URL de um serviço como `http://localhost:5000/` para acessar o serviço exportado pelo seu app. Num deploy, uma camada de roteamento manipula as requisições de rotas vindas de um hostname público para os processos web atrelados às portas. Isso é tipicamente implementado usando [declaração de dependências](./dependencies) para adicionar uma biblioteca de servidor ao app, tal como [Tornado](http://www.tornadoweb.org/) para Python, [Thin](http://code.macournoyer.com/thin/) para Ruby, ou [Jetty](http://www.eclipse.org/jetty/) para Java e outra linguagens baseadas na JVM. Isso acontece completamente no *espaço do usuário*, isso é, dentro do código do app. O contrato com o ambiente de execução é vincular a uma porta para servir requisições. HTTP não é o único serviço que pode ser exportado via vínculo de portas. Quase todos os tipos de software servidores podem rodar via um processo vinculado a uma porta e aguardar as requisições chegar. Exemplos incluem [ejabberd](http://www.ejabberd.im/) (comunicando via [XMPP](http://xmpp.org/)), e [Redis](http://redis.io/) (comunicando via [protocolo Redis](http://redis.io/topics/protocol)). Note que a abordagem de vincular portas significa que um app pode se tornar o [serviço de apoio](./backing-services) para um outro app, provendo a URL do app de apoio como um identificador de recurso na [configuração](./config) para o app consumidor. content/th/config.md0000644000175000056700000001450015226251677013174 0ustar0000000000000000## III. Config ### จัดเ�็บ�ารตั้งค่า (config) ไว้ในสิ่ง�วดล้อมของระบบ *�ารตั้งค่า (config)* ของ app เป็นสิ่งที่เปลี่ยน�ปลงระหว่าง [deploys](./codebase) (staging, production, developer environments เป็นต้น) รวมทั้ง: * ทรัพยา�รที่จัด�าร�ับ�านข้อมูล, Memcached, �ละ [backing services](./backing-services) อื่นๆ * ข้อมูลประจำตัว (credentials) สำหรับบริ�ารภายนอ� อย่างเช่น Amazon S3 หรือ Twitter * ค่า Pre-deploy อย่างเช่น canonical hostname สำหรับ deploy บางครั้ง app เ�็บ�ารตั้งค่าเป็นค่าคงทีใน code เป็น�ารละเมิด twelve-factor ซึ่งต้อง�ารให้ **�ย��ารตั้งค่าออ�จา� code อย่างสมบูรณ์** �ารตั้งค่าสามารถเปลี่ยน�ปลงได้ตาม deploy ที่ไม่อยู่ใน code �ารทดสอบ litmus เพื่อดูว่า app มี�ารเอา�ารตั้งค่าทั้งหมดออ�จา� code ถู�ต้องหรือไม่ ทำให้ codebase สามารถ open source ได้ตลอดเวลา โดยไม่�ระทบ�ับ credential ใดๆ โปรดทราบว่า�ารนิยามนี้ของ "�ารตั้งค่า" **ไม่**รวม�ารตั้งค่า internal application อย่างเช่น `config/routes.rb` ใน Rails หรือ [code modules เชื่อมต่อ�ันอย่างไร](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html) ใน [Spring](http://spring.io/) ชนิดของ�ารตั้งค่าเหล่านี้ไม่เปลี่ยน�ปลงตาม deploy �ละควรจะอยู่ใน code อี�วิธี�ารหนึ่งของ�ารตั้งค่าคือ�ารใช้ไฟล์�ารตั้งค่าซึ่งไม่รวมไว้ใน revision control อย่างเช่น `config/database.yml` ใน Reals ซึ่งเป็น�ารพัฒนาสำหรับ�ารใช้ค่าคงที่ซึ่งถู�รวมเข้าไปใน code repo �ต่�็ยังมีจุดอ่อนคือมันจะเ�ิดความผิดพลาดจา��ารที่รวมค่า�ารตั้งค่านี้เข้าไปใน repo จะทำให้มี�นวโน้มที่�ารไฟล์�ารตั้งค่าจะ�ระจายอยู่ในที่�ต�ต่าง�ัน�ละ�ต�ต่างรูป�บบ ทำให้มันยา�ที่จะดู�ล�ละจัด�าร�ารตั้งค่าทั้งหมดในหนึ่งที่ นอ�จา�นี้รูป�บบเหล่านี้ยังขึ้นอยู่�ับภาษาคอมพิวเตอร์ หรือ เฉพาะ framework. **Twelve-factor app เ�็บ�ารตั้งค่าไว้ใน *environment variable*** (เรีย�สั้นๆ ว่า *env vars* หรือ *env*) Env vars จะทำให้ง่ายที่จะเปลี่ยน�ปลงระหว่าง deloy โดยปราศจา��ารเปลี่ยน�ปลงของ code ใดๆ ไม่เหมือน�ับไฟล์�ารตั้งค่าที่จะมีโอ�ารผิดพลาดที่จะรวมเข้าไปใน code repo ได้ �ละไม่เหมือน�ับไฟล์�ารตั้งค่าที่�ำหนดเองหรือ�ลไ��ารตั้งค่าอื่นๆ อย่างเช่น Java System Properties ที่เป็ของภาษาคอมพิวเตอร์ �ละมาตร�านของระบบป�ิบัติ�าร (OS-agnostic) อี��ง่มุมของ�ารจัด�าร�ารตั้งค่าคือ�ารจัด�ลุ่ม (Grouping) บางครั้ง�ารตั้งค่า app �บบ�ลุ่ม (batch) ในชื่อของ�ลุ่ม (เรีย�ว่า "environment") หลังจา� deploy เฉพาะ อย่างเช่น `development`, `test` �ละ `production` environment ใน Rails วิธี�ารนี้ทำให้�ารขยายไม่เรียบร้อยทำให้มี deploy ของ app ถู�สร้างมา�ขึ้น, จำเป็นต้องตั้งชื่อของ environment ใหม่ อย่างเช่น `staging` หรือ `qa` เป็นตั้น เมื่อ project โตขึ้น developer อาจจะเพิ่ม environments เฉพาะของตัวเองขึ้นมา เช่น `joes-staging` ผม�็คือมี�ารตั้งค่าจำนวนมา�เ�ินไปซึ่งทำให้จัด�าร deploy ของ app ทำได้ยา�มา� ใน twelve-factor app, env vars เป็นรา��าน�ารควบควมของ�ต่ล่ะ evn vars อื่นๆ ไม่เคยมี�ารจัด�ลุ่มเป็น "environments" �ต่จะจัด�าร�บบอิสระสำหรับ�ต่ล่ะ deploy �ทน นี่เป็นรูป�บบที่�ารขยายทำได้อย่างราบรื่นของ app เป็น�ารขยายโดยธรรมชาติของ deploy มา�ขึ้นตลอดอายุ�ารทำงานของ app. content/fr/dependencies.md0000644000175000056700000000612315226251677014353 0ustar0000000000000000## II. Dépendances ### Déclarez explicitement et isolez les dépendances La plupart des langages de programmation offrent des systèmes pour créer des paquets à partir de bibliothèques afin de les distribuer, tel que [CPAN](http://www.cpan.org/) pour Perl ou [Rubygems](http://rubygems.org/) pour Ruby. Les bibliothèques installées à travers un système de packaging peuvent être installées à travers tout le système, ou bien limitées au répertoire contenant l'application (que l'on appelle les "vendor" ou "bundles"). **Une application 12 facteurs ne dépend jamais de l'existence implicite de packages au niveau du système**. Elle déclare toutes ses dépendances, complètement et exactement, à travers un manifeste de *déclaration de dépendances*. De plus, elle utilise un outil d'isolation des dépendances durant l'exécution afin d'assurer qu'aucune dépendance implicite ne s'introduise depuis le système environnant. Les spécifications complètes et explicites sont appliquées uniformément en développement comme en production. Par exemple, [Bundler](https://bundler.io/) pour Ruby fournit le format de manifeste `Gemfile` pour la déclaration des dépendances, ainsi que la commande `bundle exec` pour l'isolation des dépendances. En python, il y a deux outils séparés pour ces étapes -- [Pip](http://www.pip-installer.org/en/latest/) est utilisé pour la déclaration et [Virtualenv](http://www.virtualenv.org/en/latest/) pour l'isolation. Même le C dispose d'[Autoconf](http://www.gnu.org/s/autoconf/) pour les déclarations de dépendances, et la liaison statique peut fournir l'isolation des dépendances. Peu importe la chaîne d'outils, la déclaration et l'isolation des dépendances doivent toujours être utilisées ensemble -- seulement l'un ou l'autre ne suffit pas à satisfaire les 12 facteurs. Un des bénéfices de la déclaration explicite des dépendances est que cela simplifie la mise en place pour les développeurs qui découvrent l'application. Les nouveaux développeurs peuvent jeter un œil à la base de code de l'application sur leur machine de développement, en ayant besoin uniquement d'avoir de quoi exécuter le langage ainsi que le gestionnaire de dépendances installé en pré-requis. Ils pourront mettre en place tout ce qui est nécessaire pour faire fonctionner le code de l'application de manière déterministe grâce à une *commande d'assemblage* (commande de build). Par exemple, la commande d'assemblage pour Ruby/Bundler est `bundle install`, alors que pour Clojure/[Leiningen](https://github.com/technomancy/leiningen#readme) c'est `lein deps`. Les applications 12 facteurs ne s'appuient pas sur l'existence implicite d'outils système, par exemple ImageMagick ou `curl`. Bien que ces outils puissent exister sur beaucoup voire la plupart des systèmes d'exploitation, il n'y a pas de garantie qu'ils existeront sur tous les systèmes où l'application sera exécutée à l'avenir, ou si la version disponible sur un système futur sera compatible avec l'application. Si l'application dépend d'un outil système, cet outil doit être distribué avec l'application. content/pl/port-binding.md0000644000175000056700000000443015226251677014324 0ustar0000000000000000## VII. Przydzielanie portów ### Udostępniaj usługi przez przydzielanie portów Zdarza się, że aplikacje internetowe uruchamiane są w ramach serwera web. Napisane w PHP np. działają jako moduł [Apache HTTPD](http://httpd.apache.org/), natomiast aplikacje w Javie mogą być uruchomiane wewnątrz serwera aplikacji, np. [Tomcat](http://tomcat.apache.org/). **Aplikacja 12factor nie posiada zewnętrznych zależności** co czyni ją niezależną wobec innych modułów znajdujących się na serwerze. Aplikacja internetowa **udostępniać będzie np. HTTP w formie usługi przez przydzielenie portu**. Umożliwia jej to obsługę zapytań przychodzących do wybranego portu. Aby skorzystać z usługi udostępnionej przez aplikację, developer może otworzyć adres URL jak np. `http://localhost:5000/`. W przypadku aplikacji wdrożonej w środowisku produkcyjnym zapytania do udostępnionej publicznie nazwy hosta są obsługiwane przez warstwę nawigacji. Kierowane są one później do procesu sieciowego udostępnionego na danym porcie. Kwestię obsługi takich zapytań można rozwiązać dodając bibliotekę webservera jako kolejną [zewnętrzną zależność](./dependencies), jak np. [Tornado](http://www.tornadoweb.org/) w Pythonie, [Thin](http://code.macournoyer.com/thin/) w Ruby, lub [Jetty](http://www.eclipse.org/jetty/) dla Javy i innych języków opierających się na JVM. Obsługa zapytania jest całkowicie oprogramowana przez kod aplikacji, natomiast kontraktem ze środowiskiem wykonawczym jest przydzielenie portu w celu obsłużenia tego zapytania. HTTP nie jest jedyną usługą, którą możną eksportować przez przydzielenie portu. Niemal każdy rodzaj oprogramowania serwerowego może być uruchomiony przez przydzielenie portu na którym jest uruchomiony proces i oczekiwać na przychodzące zapytania. Do przykładów należą [ejabberd](http://www.ejabberd.im/) (komunikujący się przez [XMPP](http://xmpp.org/)), oraz [Redis](http://redis.io/) (komunikujący się przez [Redis protocol](http://redis.io/topics/protocol)). Warto również zauważyć, że przez przydzielnie portu aplikacja może pełnić funkcję [usługi wspierającej](./backing-services) dla innej aplikacji przez udostępnienie swojego adresu URL jako adres zasobu w [konfiguracji](./config) tejże aplikacji. content/en/admin-processes.md0000644000175000056700000000406715226251677015021 0ustar0000000000000000## XII. Admin processes ### Run admin/management tasks as one-off processes The [process formation](./concurrency) is the array of processes that are used to do the app's regular business (such as handling web requests) as it runs. Separately, developers will often wish to do one-off administrative or maintenance tasks for the app, such as: * Running database migrations (e.g. `manage.py migrate` in Django, `rake db:migrate` in Rails). * Running a console (also known as a [REPL](http://en.wikipedia.org/wiki/Read-eval-print_loop) shell) to run arbitrary code or inspect the app's models against the live database. Most languages provide a REPL by running the interpreter without any arguments (e.g. `python` or `perl`) or in some cases have a separate command (e.g. `irb` for Ruby, `rails console` for Rails). * Running one-time scripts committed into the app's repo (e.g. `php scripts/fix_bad_records.php`). One-off admin processes should be run in an identical environment as the regular [long-running processes](./processes) of the app. They run against a [release](./build-release-run), using the same [codebase](./codebase) and [config](./config) as any process run against that release. Admin code must ship with application code to avoid synchronization issues. The same [dependency isolation](./dependencies) techniques should be used on all process types. For example, if the Ruby web process uses the command `bundle exec thin start`, then a database migration should use `bundle exec rake db:migrate`. Likewise, a Python program using Virtualenv should use the vendored `bin/python` for running both the Tornado webserver and any `manage.py` admin processes. Twelve-factor strongly favors languages which provide a REPL shell out of the box, and which make it easy to run one-off scripts. In a local deploy, developers invoke one-off admin processes by a direct shell command inside the app's checkout directory. In a production deploy, developers can use ssh or other remote command execution mechanism provided by that deploy's execution environment to run such a process. content/en/dependencies.md0000644000175000056700000000477615226251677014362 0ustar0000000000000000## II. Dependencies ### Explicitly declare and isolate dependencies Most programming languages offer a packaging system for distributing support libraries, such as [CPAN](http://www.cpan.org/) for Perl or [Rubygems](http://rubygems.org/) for Ruby. Libraries installed through a packaging system can be installed system-wide (known as "site packages") or scoped into the directory containing the app (known as "vendoring" or "bundling"). **A twelve-factor app never relies on implicit existence of system-wide packages.** It declares all dependencies, completely and exactly, via a *dependency declaration* manifest. Furthermore, it uses a *dependency isolation* tool during execution to ensure that no implicit dependencies "leak in" from the surrounding system. The full and explicit dependency specification is applied uniformly to both production and development. For example, [Bundler](https://bundler.io/) for Ruby offers the `Gemfile` manifest format for dependency declaration and `bundle exec` for dependency isolation. In Python there are two separate tools for these steps -- [Pip](http://www.pip-installer.org/en/latest/) is used for declaration and [Virtualenv](http://www.virtualenv.org/en/latest/) for isolation. Even C has [Autoconf](http://www.gnu.org/s/autoconf/) for dependency declaration, and static linking can provide dependency isolation. No matter what the toolchain, dependency declaration and isolation must always be used together -- only one or the other is not sufficient to satisfy twelve-factor. One benefit of explicit dependency declaration is that it simplifies setup for developers new to the app. The new developer can check out the app's codebase onto their development machine, requiring only the language runtime and dependency manager installed as prerequisites. They will be able to set up everything needed to run the app's code with a deterministic *build command*. For example, the build command for Ruby/Bundler is `bundle install`, while for Clojure/[Leiningen](https://github.com/technomancy/leiningen#readme) it is `lein deps`. Twelve-factor apps also do not rely on the implicit existence of any system tools. Examples include shelling out to ImageMagick or `curl`. While these tools may exist on many or even most systems, there is no guarantee that they will exist on all systems where the app may run in the future, or whether the version found on a future system will be compatible with the app. If the app needs to shell out to a system tool, that tool should be vendored into the app. content/en/disposability.md0000644000175000056700000000525615226251677014605 0ustar0000000000000000## IX. Disposability ### Maximize robustness with fast startup and graceful shutdown **The twelve-factor app's [processes](./processes) are *disposable*, meaning they can be started or stopped at a moment's notice.** This facilitates fast elastic scaling, rapid deployment of [code](./codebase) or [config](./config) changes, and robustness of production deploys. Processes should strive to **minimize startup time**. Ideally, a process takes a few seconds from the time the launch command is executed until the process is up and ready to receive requests or jobs. Short startup time provides more agility for the [release](./build-release-run) process and scaling up; and it aids robustness, because the process manager can more easily move processes to new physical machines when warranted. Processes **shut down gracefully when they receive a [SIGTERM](http://en.wikipedia.org/wiki/SIGTERM)** signal from the process manager. For a web process, graceful shutdown is achieved by ceasing to listen on the service port (thereby refusing any new requests), allowing any current requests to finish, and then exiting. Implicit in this model is that HTTP requests are short (no more than a few seconds), or in the case of long polling, the client should seamlessly attempt to reconnect when the connection is lost. For a worker process, graceful shutdown is achieved by returning the current job to the work queue. For example, on [RabbitMQ](http://www.rabbitmq.com/) the worker can send a [`NACK`](http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.nack); on [Beanstalkd](https://beanstalkd.github.io), the job is returned to the queue automatically whenever a worker disconnects. Lock-based systems such as [Delayed Job](https://github.com/collectiveidea/delayed_job#readme) need to be sure to release their lock on the job record. Implicit in this model is that all jobs are [reentrant](http://en.wikipedia.org/wiki/Reentrant_%28subroutine%29), which typically is achieved by wrapping the results in a transaction, or making the operation [idempotent](http://en.wikipedia.org/wiki/Idempotence). Processes should also be **robust against sudden death**, in the case of a failure in the underlying hardware. While this is a much less common occurrence than a graceful shutdown with `SIGTERM`, it can still happen. A recommended approach is use of a robust queueing backend, such as Beanstalkd, that returns jobs to the queue when clients disconnect or time out. Either way, a twelve-factor app is architected to handle unexpected, non-graceful terminations. [Crash-only design](http://lwn.net/Articles/191059/) takes this concept to its [logical conclusion](http://docs.couchdb.org/en/latest/intro/overview.html). content/it/logs.md0000644000175000056700000000477015226251677012704 0ustar0000000000000000## XI. Log ### Tratta i log come stream di eventi I *log* offrono una maggiore chiarezza riguardo un comportamento di un'app in esecuzione. In ambienti basati su server, questi sono tendenzialmente scritti su un file su disco (logfile). A ogni modo, è solo un formato. Un log può essere definito infatti come uno [stream](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/) di eventi aggregati e ordinati cronologicamente. Tali eventi vengono presi da tutti i vari output stream presenti di tutti i processi attivi, oltre che dai vari backing service. Nella loro forma grezza, i log si presentano come un file di testo con un evento per ogni linea (con le dovute eccezioni). Non hanno un inizio o una fine ben definiti, ma un continuo di informazioni fin quando l'applicazione è al lavoro. **Un'applicazione twelve-factor non dovrebbe preoccuparsi di lavorare con il proprio output stream.** Non dovrebbe lavorare o comunque gestire i vari logfile. Dovrebbe, invece, fare in modo che ogni processo si occupi di scrivere il proprio stream di eventi su "`stdout`". Durante lo sviluppo in locale, quindi, lo sviluppatore potrà visionare lo stream in modo completo direttamente dal terminale, per capire meglio il comportamento della sua applicazione. In staging o in produzione, invece, ogni stream viene "preso" dall'ambiente di esecuzione ed elaborato insieme a tutti gli altri stream dell'applicazione, quindi indirizzato verso una o più "destinazioni" finali per la visualizzazione e archiviazione a lungo termine. Queste "destinazioni" non sono visibili o configurabili, ma vengono gestite totalmente dall'ambiente di esecuzione. Per questi scopi esistono strumenti come [Logplex](https://github.com/heroku/logplex) e [Fluentd](https://github.com/fluent/fluentd)). Uno stream di eventi di un'applicazione può essere quindi indirizzato verso un file, o visionato in tempo reale su un terminale. Ancora, lo stream può essere inviato a un sistema di analisi e indicizzazione di log, come [Splunk](http://www.splunk.com/), oppure a un sistema di memorizzazione general-purpose come [Hadoop/Hive](http://hive.apache.org/). Questi sistemi hanno ottimi tool per effettuare un lavoro di analisi del comportamento dell'applicazione, come per esempio: * Ricerca di specifici eventi nel passato; * Grafici per rappresentare dei trend (es. richieste per minuto); * Attivazione di alert specifici in base a regole definite dall'utente (es. alert avverte l'amministratore se il rate di eventi al minuto sale oltre una certa soglia); content/ru/config.md0000644000175000056700000001463415226251677013217 0ustar0000000000000000## III. Конфигураци� ### Сохран�йте конфигурацию в �реде выполнени� *Конфигураци�* приложени� -- �то в�ё, что может мен�ть�� между [развёртывани�ми](./codebase) (�реда разработки, промежуточное и рабочее развёртывание). Это включает в �еб�: * Идентификаторы подключени� к ре�ур�ам типа базы данных, к�ш-пам�ти и другим [�торонним �лужбам](./backing-services) * Реги�трационные данные дл� подключени� к внешним �ерви�ам, например, к Amazon S3 или Twitter * Значени� зави�имые от �реды развёртывани� такие, как канониче�кое им� хо�та Иногда приложени� хран�т конфигурации как кон�танты в коде. Это нарушение методологии двенадцати факторов, котора� требует **�трогого разделени� конфигурации и кода**. Конфигураци� может �уще�твенно различать�� между развёртывани�ми, код не должен различать��. Лакму�овой бумажкой того, правильно ли разделены конфигураци� и код приложени�, �вл�ет�� факт того, что кодова� база приложени� может быть в любой момент открыта в �вободный до�туп без компрометации каких-либо приватных данных. Обратите внимание, что �то определение "конфигурации" **не** включает внутренние конфигурации приложени�, например такие как 'config/routes.rb' в Rails, или того как [о�новные модули будут �в�заны](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html) в [Spring](http://spring.io/). Этот тип конфигурации не мен�ет�� между развёртывани�ми и по�тому лучше в�его держать его в коде. Другим подходом к конфигурации �вл�ет�� и�пользование конфигурационных файлов, которые не �охран�ют�� в �и�тему контрол� вер�и�, например 'config/database.yml' в Rails. Это огромное улучшение перед и�пользованием кон�тант, которые �охран�ют�� в коде, но по-прежнему и у �того метода е�ть недо�татки: легко по ошибке �охранить конфигурационный файл в репозиторий; �уще�твует тенденци� когда конфигурационные файлы разбро�аны в разных ме�тах и в разных форматах, из за �того �тановит�� трудно про�матривать и управл�ть в�еми на�тройками в одном ме�те. Кроме того форматы �тих файлов, как правило, �пецифичны дл� конкретного �зыка или фреймворка. **Приложение двенадцати факторов хранит конфигурацию в *переменных окружени�*** (ча�то �окращает�� до *env vars* или *env*). Переменные окружени� легко изменить между развёртывани�ми, не измен�� код; в отличие от файлов конфигурации, менее веро�тно �лучайно �охранить их в репозиторий кода; и в отличие от пользователь�ких конфигурационных файлов или других механизмов конфигурации, таких как Java System Properties, они �вл�ют�� незави�имым от �зыка и операционной �и�темы �тандартом. Другим подходом к управлению конфигураци�ми �вл�ет�� группировка. Иногда приложени� группируют конфигурации в именованные группы (ча�то называемые "окружени�ми") названые по названию конкретного развёртывани�, например как `development`, `test` и `production` окружени� в Rails. Этот метод не �вл�ет�� до�таточно ма�штабируемым: чем больше различных развёртываний приложени� �оздаёт��, тем больше новых имён окружений необходимо, например `staging` и `qa`. При дальнейшем ро�те проекта, разработчики могут добавл�ть �вои �об�твенные �пециальные окружени�, такие как `joes-staging`, в результате прои�ходит комбинаторный взрыв конфигураций, который делает управление развёртывани�ми приложени� очень хрупким. В приложении двенадцати факторов переменные окружени� �вл�ют�� не �в�занными между �обой �ред�твами управлени�, где кажда� переменна� окружени� полно�тью незави�има от других. Они никогда не группируют�� вме�те в "окружени�", а вме�то �того управл�ют�� незави�имо дл� каждого развёртывани�. Эта модель котора� ма�штабирует�� по�тепенно вме�те � е�те�твенным по�влением большего количе�тва развёртываний приложени� за врем� его жизни. views/layout.erb0000644000175000056700000000361015226251677012464 0ustar0000000000000000 The Twelve-Factor App <%= I18n.t(:translation) %> <% if ENV['GOOGLE_TAG_MANAGER_ACCOUNT'] %> <% end %>

The Twelve-Factor App

<%= yield %> web.rb0000644000175000056700000000377115226251677010432 0ustar0000000000000000require 'sinatra' require 'maruku' require 'i18n' require 'rack/ssl-enforcer' configure do # For Development use only! set :host_authorization, { permitted_hosts: [] } use Rack::SslEnforcer if ENV['FORCE_SSL'] I18n.enforce_available_locales = true I18n.load_path += Dir[File.join(settings.root, 'locales', '*.yml')] # I18n.available_locales = Dir[File.join(settings.root, 'locales', '*.yml')].map { |f| File.basename(f, '.yml').to_sym } # I18n.available_locales = [:en, :pt] I18n.backend.load_translations I18n.default_locale = :en end before do I18n.locale = I18n.default_locale end before '/:locale/*' do locale = params[:locale].to_sym if locale != I18n.default_locale && I18n.available_locales.include?(locale) I18n.locale = locale request.path_info = '/' + params[:splat][0] end end get '/' do erb :home end TOC = %w(codebase dependencies config backing-services build-release-run processes port-binding concurrency disposability dev-prod-parity logs admin-processes) get '/:factor' do |factor| halt 404 unless TOC.include?(factor) @factor = factor erb :factor end helpers do def render_markdown(file) markdown = File.read("content/#{I18n.locale}/#{file}.md", :encoding => 'utf-8') Maruku.new(markdown).to_html rescue Errno::ENOENT puts "No content for #{I18n.locale}/#{file}, skipping" end def render_prev(factor) idx = TOC.index(factor) return if idx == 0 "« Previous" end def render_next(factor) idx = TOC.index(factor) return if idx == TOC.size-1 "Next »" end def render_locales(factor) I18n.available_locales.map {|locale| if locale == I18n.locale "#{I18n.t(:language)}" else path_prefix = locale == I18n.default_locale ? "" : "/#{locale}" "#{I18n.t(:language, :locale => locale)}" end }.join(" | ") end end not_found do "Page not found" end content/en/who.md0000644000175000056700000000026215226251677012513 0ustar0000000000000000Who should read this document? ============================== Any developer building applications which run as a service. Ops engineers who deploy or manage such applications. content/it/dev-prod-parity.md0000644000175000056700000001121515226251677014756 0ustar0000000000000000## X. Parità tra Sviluppo e Produzione ### Mantieni lo sviluppo, staging e produzione simili il più possibile Storicamente, ci sono sempre state differenze sostanziali tra gli ambienti di sviluppo (lo sviluppatore che effettua delle modifiche live a un [deployment](./codebase) in locale) e quello di produzione (un deployment in esecuzione raggiungibile dagli utenti finali). Differenze (o gap) che si possono raggruppare in tre categorie: * **Tempo:** uno sviluppatore può lavorare sul codice per giorni, settimane o mesi prima di poter andare in produzione; * **Personale**: gli sviluppatori scrivono il codice, gli ops effettuano il deployment; * **Strumenti**: gli sviluppatori potrebbero usare uno stack quale Nginx, SQLite e OS X, mentre in produzione per il deployment verrebbero installati Apache, MySQL e Linux. **Un'applicazione twelve-factor è progettata per il [rilascio continuo](http://avc.com/2011/02/continuous-deployment/), tenendo così queste differenze al minimo possibile.** A proposito di queste tre tipologie di differenze appena viste: * Rendi la differenze temporali minime: cerca di scrivere (o far scrivere) del codice da rilasciare nel giro di poche ore, se non minuti; * Rendi le differenze a livello di personale minime: fai in modo che gli sviluppatori siano coinvolti anche nella fase di deploy, per permettere loro di osservare il comportamento di ciò che hanno scritto anche in produzione; * Rendi le differenze a livello di strumenti minime: mantieni gli ambienti di lavoro il più simile possibile; Riassumendo tutto in una tabella:
App Tradizionale App Twelve-factor
Tempo tra i Deployment Settimane Ore
Sviluppatori e Ops Sono diversi Sono gli stessi
Sviluppo e Produzione Divergenti Il più simili possibile
I [backing service](./backing-services), come il database dell'applicazione o la cache, sono una delle aree in cui la parità degli ambienti è molto importante. Molti linguaggi offrono delle librerie che facilitano l'accesso a questi servizi, tra cui anche degli adattatori per questi tipi di servizi. Eccone alcuni:
Tipologia Linguaggio Libreria Adattatore
Database Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
Code Python/Django Celery RabbitMQ, Beanstalkd, Redis
Cache Ruby/Rails ActiveSupport::Cache Memory, filesystem, Memcached
Gli sviluppatori, inoltre, trovano utile usare dei servizi "leggeri" in fase di sviluppo, passando quindi a qualcosa di più serio e robusto in produzione. Per esempio, usando SQLite localmente e PostgreSQL in produzione. Ancora, un sistema di cache in locale in fase di sviluppo e Memcached in produzione. **Lo sviluppatore twelve-factor "resiste" a questa necessità**, anche se gli adapter ci sono e funzionano in modo tale da astrarre in modo sufficiente tutte le differenze nella gestione. Nulla impedisce, infatti, a qualche altra incompatibilità di uscire allo scoperto quando meno ce lo si aspetta, soprattutto se in ambiente di sviluppo funziona tutto e poi, magari, in produzione i test non vengono superati. Il costo di questa differenza può risultare abbastanza alto, soprattutto in situazioni in cui si effettua il rilascio continuo. Rispetto al passato, usare dei sistemi "light" in locale è una prassi poco convincente. Si pensi al fatto che alcuni servizi moderni come Memcached o PostgreSQL si possono installare e usare senza difficoltà tramite alcuni sistemi di packaging come [Homebrew](http://mxcl.github.com/homebrew/) e [apt-get](https://help.ubuntu.com/community/AptGet/Howto). In alternativa, esistono anche alcuni tool di provisioning come [Chef](http://www.opscode.com/chef/) e [Puppet](http://docs.puppetlabs.com/), che combinati con sistemi di ambienti virtuali come [Vagrant](http://vagrantup.com/) permettono agli sviluppatori di riprodurre in locale delle macchine molto simili, se non identiche, a quelle in produzione. Ne risente quindi positivamente il costo di deployment. Tutto questo, sia chiaro, non rende gli adapter meno utili: grazie ad essi infatti il porting verso nuovi servizi, in un secondo momento, rimane un processo indolore. Nonostante questo, comunque, rimane scontato che sarebbe buona norma usare uno stesso backing service su tutti i deployment di un'applicazione. content/zh_cn/concurrency.md0000644000175000056700000000440515226251677014752 0ustar0000000000000000## VIII. 并� ### 通过进程模型进行扩展 任何计算机程�,一旦�动,就会生�一个或多个进程。互�网应用采用多�进程�行方�。例如,PHP 进程作为 Apache 的�进程存在,�请求按需�动。Java 进程则采�了相�的方�,在程��动之� JVM 就�供了一个超级进程储备了大�的系统资�(CPU 和内存),并通过多线程实现内部的并�管�。上述 2 个例�中,进程是开�人员�以�作的最���。 ![扩展表现为�行中的进程,工作多样性表现为进程类型。](/images/process-types.png) **在 12-factor 应用中,进程是一等公民。**12-Factor 应用的进程主�借鉴于 [unix 守护进程模型](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/) 。开�人员�以�用这个模型去设计应用架构,将��的工作分�给��的 *进程类型* 。例如,HTTP 请求�以交给 web 进程�处�,而常驻的��工作则交由 worker 进程负责。 这并�包括个别较为特殊的进程,例如通过虚拟机的线程处�并�的内部�算,或是使用诸如 [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http://twistedmatrix.com/trac/), [Node.js](http://nodejs.org/) 的异步/事件触�模型。但一�独立的虚拟机的扩展有瓶颈(垂直扩展),所以应用程�必须�以在多�物�机器间跨进程工作。 上述进程模型会在系统急需扩展时大放异彩。 [12-Factor 应用的进程所具备的无共享,水平分区的特性](./processes) �味�添加并�会�得简�而稳妥。这些进程的类型以��个类型中进程的数�就被称作 *进程构�* 。 12-Factor 应用的进程 [�需�守护进程](http://dustin.github.com/2010/02/28/running-processes.html) 或是写入 PID 文件。相�的,应该借助�作系统的进程管�器(例如 [systemd](https://www.freedesktop.org/wiki/Software/systemd/) ,分布�的进程管�云平�,或是类似 [Foreman](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html) 的工具),�管� [输出�](./logs) ,�应崩溃的进程,以�处�用户触�的��和关闭超级进程的请求。 content/de/dev-prod-parity.md0000644000175000056700000001115415226251677014734 0ustar0000000000000000##X. Dev-Prod-Vergleichbarkeit ### Entwicklung, Staging und Produktion so ähnlich wie möglich halten Historisch gibt es große Lücken zwischen Entwicklung (wo ein Entwickler live an einem lokalen [Deploy](./codebase) der App Änderungen macht) und Produktion (ein laufender Deploy der App, auf den Endbenutzer zugreifen). Diese Lücken zeigen sich auf drei Gebieten: * **Die Zeit-Lücke** Ein Entwickler arbeitet an Code der Tage, Wochen oder sogar Monate braucht um in Produktion zu gehen. * **Die Personal-Lücke**: Entwickler schreiben Code, Operatoren deployen ihn. * **Die Werkzeug-Lücke**: Entwickler nutzen vielleicht einen Stack wie Nginx, SQLite und OS X - die Produktion nutzt Apache, MySQL und Linux. **Die Zwölf-Faktor-App ist ausgelegt auf [Continuous Deployment](http://avc.com/2011/02/continuous-deployment/) indem sie die Lücke zwischen Entwicklung und Produktion klein hält.** Mit Blick auf die oben beschriebenen drei Lücken: * Die Zeit-Lücke klein halten: Ein Entwickler kann Code schreiben, der Stunden oder sogar Minuten später deployed wird. * Die Personal-Lücke klein halten: Entwickler die Code schreiben sind intensiv am Deployment und der Überwachung des Verhaltens auf Produktion beteiligt. * Die Werkzeug-Lücke klein halten: Entwicklung und Produktion so ähnlich wie möglich halten. Das Gesagte in einer Tabelle:
Traditionelle App Zwölf-Faktor-App
Zeit zwischen Deployments Wochen Stunden
Code-Autoren und Code-Deployer Andere Menschen Dieselben Menschen
Entwicklungs- und Produktions-Umgebung Unterschiedlich So ähnlich wie möglich
Im Bereich der [unterstützenden Dienste](./backing-services) wie der Datenbank der App, dem Queue-System oder dem Cache ist die Dev-Prod-Vergleichbarkeit wichtig. Viele Sprachen bieten Bibliotheken, die den Zugriff auf die unterstützenden Dienste vereinfachen und ebenso *Adapter* für unterschiedliche Arten von Diensten.
Art Sprache Bibliothek Adapter
Datenbank Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
Queue Python/Django Celery RabbitMQ, Beanstalkd, Redis
Cache Ruby/Rails ActiveSupport::Cache Speicher, Dateisystem, Memcached
Für Entwickler ist es sehr elegant, einen leichtgewichtigen unterstützenden Dienst in der lokalen Umgebung zu benutzen, während ein ernst zu nehmender und robuster unterstützender Dienst in Produktion verwendet wird. So kann man SQLite lokal und PostgreSQL in Produktion benutzen; oder zum Cachen den lokalen Speicher in Entwicklung und Memcached in Produktion. **Der Zwölf-Faktor-Entwickler widersteht dem Drang, verschiedene unterstützende Dienste in Entwicklung und Produktion zu verwenden**, selbst wenn Adapter über alle Unterschiede hinweg abstrahieren. Unterschiede zwischen den unterstützenden Diensten verursachen kleinste Inkompatiblitäten, und Code, der in Entwicklung oder Staging funktioniert und Tests besteht, scheitert in Produktion. Diese Reibungskosten und die dann notwendige Dämpfung des Continuous Deployment sind sehr hoch, wenn man sie über die Lebensdauer einer App aggregiert. Leichtgewichtige lokale Dienste überzeugen weniger als früher. Moderne unterstützende Dienste wie Memcached, PostgreSQL und RabbitMQ sind dank moderner Paketierungs-Systeme wie [Homebrew](http://mxcl.github.com/homebrew/) und [apt-get](https://help.ubuntu.com/community/AptGet/Howto) nicht schwierig zu installieren und zu starten. Auch deklarative Installationssysteme wie [Chef](http://www.opscode.com/chef/) oder [Puppet](http://docs.puppetlabs.com/) in Kombination mit leichtgewichtigen virtuellen Umgebungen wie [Vagrant](http://vagrantup.com/) setzen Entwickler in den Stand, lokale Umgebungen ans Laufen zu bringen, die nahe an Produktionsumgebungen herankommen. Die Installations- und Betriebskosten dieser Systeme sind gering verglichen mit dem Nutzen der Dev-Prod-Vergleichbarkeit und einem Continuous Deployment. Adapter für unterschiedliche unterstützende Dienste sind weiterhin von Nutzen, weil sie das Portieren auf andere unterstützende Dienste schmerzlos machen. Aber alle Deploys der App (Entwicklungsumgebungen, Staging, Produktion) sollten denselben Typ und dieselbe Version eines jeden unterstützenden Dienstes benutzen. content/ru/logs.md0000644000175000056700000001074615226251677012716 0ustar0000000000000000## XI. Журналирование (Logs) ### Ра��матривайте журнал как поток �обытий *Журналирование* обе�печивает нагл�дное пред�тавление поведени� работающего приложени�. Обычно в �ерверной �реде журнал запи�ывает�� в файл на ди�ке ("logfile"), но �то только один из форматов вывода. Журнал -- �то [поток](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/) агрегированных, упор�доченных по времени �обытий, �обранных из потоков вывода в�ех запущенных проце��ов и в�помогательных �ерви�ов. Журнал в �воём �ыром виде обычно пред�тавлен тек�товым форматом � одним �обытием на �трочку (хот� тра��ировки и�ключений могут занимать не�колько �трок). Журнал не имеет фик�ированного начала и конца, поток �ообщений непрерывен, пока работает приложение. **Приложение двенадцати факторов никогда не занимает�� маршрутизацией и хранением �воего потока вывода.** Приложение не должно запи�ывать журнал в файл и управл�ть файлами журналов. Вме�то �того каждый выполн�ющий�� проце�� запи�ывает �вой поток �обытий без буферизации в �тандартный вывод `stdout`. Во врем� локальной разработки разработчик имеет возможно�ть про�матривать �тот поток в терминале, чтобы наблюдать за поведением приложени�. При промежуточном и рабочем развёртывании поток вывода каждого проце��а будет захвачен �редой выполнени�, �обран вме�те �о в�еми другими потоками вывода приложени� и перенаправлен к одному или не�кольким конечным пунктам назначени� дл� про�мотра и долго�рочной архивации. Эти конечные пункты архивации не �вл�ют�� видимыми дл� приложени� и на�траиваемыми приложением, вме�то �того они полно�тью управл�ют�� �редой выполнени�. Маршрутизаторы журналов � открытым и�ходным кодом (например, [Logplex](https://github.com/heroku/logplex) и [Fluentd](https://github.com/fluent/fluentd)) могут быть и�пользованы дл� �той цели. Поток �обытий приложени� может быть перенаправлен в файл или про�матривать�� в терминале в режиме реального времени. �аиболее значимым �вл�ет�� то, что поток �обытий может быть направлен в �и�тему индек�ировани� и анализа журналов, такую как [Splunk](http://www.splunk.com/), или �и�тему хранени� данных общего назначени�, такую как [Hadoop/Hive](http://hive.apache.org/). Эти �и�темы обладают большими возможно�т�ми и гибко�тью дл� до�конального анализа поведени� приложение в течении времени, что включает в �еб�: * Пои�к конкретных �обытий в прошлом. * Крупнома�штабные графики трендов (например, запро�ов в минуту). * �ктивные оповещени� �огла�но �ври�тиче�ким правилам, определ�емых пользователем (например, оповещение, когда количе�тво ошибок в минуту превышает определённый порог). content/zh_cn/intro.md0000644000175000056700000000152215226251677013550 0ustar0000000000000000简介 ============ 如今,软件通常会作为一��务�交付,它们被称为网络应用程�,或软件��务(SaaS)。12-Factor 为构建如下的 SaaS 应用�供了方法论: * 使用**标准化**�程自动�置,从而使新的开�者花费最少的学习�本加入这个项目。 * 和�作系统之间尽�能的**划清界�**,在�个系统中�供**最大的�移�性**。 * 适�**部署**在现代的**云计算平�**,从而在�务器和系统管�方�节�资�。 * 将开�环境和生产环境的**差异�至最低**,并使用**�续交付**实施��开�。 * �以在工具�架构和开��程��生明显�化的��下实现**扩展**。 这套�论适用于任�语言和�端�务(数�库�消�队列�缓存等)开�的应用程�。 content/ja/port-binding.md0000644000175000056700000000541115226251677014303 0ustar0000000000000000## VII. �ート�インディング ### �ート�インディングを通��サービスを公開�る Webアプリケーション�Webサー�ーコンテナ�内部�実行�れる����る。例���PHPアプリケーション�[Apache HTTPD](http://httpd.apache.org/)内部�モジュール���実行�れる�も�れ����Javaアプリケーション�[Tomcat](http://tomcat.apache.org/)�内部�実行�れる�も�れ��。 **Twelve-Factor App�完全�自己完�** ��Web�公開�れるサービスを作��る����コンテナ�実行環境�Webサー�ーランタイムを注入�る��を頼り����。Webアプリケーション� **�ート��インド�る���HTTPをサービス���公開��** ���ート�リクエスト��る�を待�。 ローカル�開発環境���開発者�アプリケーション�よ��公開�れ�サービス�アクセス�る����`http://localhost:5000/`�よ��サービス�URL�アクセス�る。本番環境��ルーティング層��外���ホスト��ら�ート��インド�れ�Webプロセス��リクエストをルーティング�る。 �れ�一般��[�存関係宣言](./dependencies)を使��Webサー�ーライブラリをアプリケーション�追加�る���実装�れる。Webサー�ーライブラリ�例����Python���る[Tornado](http://www.tornadoweb.org/)�Ruby���る[Thin](http://code.macournoyer.com/thin/)�Javaや��他�JVMベース�言語���る[Jetty](http://www.eclipse.org/jetty/)����る。�れ� *ユーザー空間* ����アプリケーション�コード内�完��る。リクエストを処��る���実行環境��契約���ートを�インド�る����る。 �ート�インディング�よ��公開�れるサービス�HTTP������。������サー�ーソフトウェア���ートを�インド�るプロセスを用��動作��リクエスト��る�を待�。例����[ejabberd](http://www.ejabberd.im/)([XMPP](http://xmpp.org/)を話�)や [Redis](http://redis.io/)([Redisプロトコル](http://redis.io/topics/protocol)を話�)����る。 ���注目������ート�インディング�方法�よ����るアプリケーション�他�アプリケーション�����[�ックエンドサービス](./backing-services)��れる点��る。�ックエンドアプリケーション��URLを�供��利用�るアプリケーション�[設定](./config)�リソース�ンドル���格��れ�よ�。 content/th/background.md0000644000175000056700000000566215226251677014057 0ustar0000000000000000ประวัติ ========== ผู้มีส่วนร่วมของเอ�สารนี้ได้มีส่วนเ�ี่ยวข้องโดยตรง�ับ�ารพัฒนา�ละ�ารใช้งาน�อพพลิเคชันจำนวนมา� �ละเ�ี่ยวข้องทางอ้อมสำหรับ�ารพัฒนา �ารดำเนินงาน �ละ�ารขยายขนาดของ�อพพลิเคชันจำนวมมหาศาลผ่านงานของเราที่�พลตฟอร์ม Heroku เอ�สารนี้สังเคราะห์จา�ประสบ�ารณ์�ละ�ารสังเ�ตทั้งหมดของพว�เราบน�อพพลิเคชัน software-as-a-service ที่หลา�หลายจำนวนมา� เป็นสามเหลียมของ�นวทางป�ิบัตในอุดมคติสำหรับ�ารพัฒนา�อพพลิเคชัน ให้ความสนใจเป็นพิเศษ�ับพลวัตของ�ารเจริ�เติบโตของ�อพพลิเคชันในช่วงเวลาหนึ่ง พลวัตของ�ารมีส่วนร่วมระหว่างนั�พัฒนาที่ทำงาน�ับ codebase ของ�อพพลิเคชัน �ละหลี�เลี่ยง�ารใช้จ่ายของซอฟต์�วร์. �รงจูงใจของเราเพื่อสร้างความตระหนั�ของปั�หาระบบบางอย่างที่เราเห็นใน�ารพัฒนา�อพพลิเคชันสมัยใหม่ เพื่อให้คำศัพย์ที่ใช้ร่วม�ันสำหรับ�ารพูดคุยเ�ี่ยว�ับปั�หาเหล่านี้ �ละนำเสนอ�นวทาง��้ไข�นว�ว้างสำหรับปั�หาเหล่านี้พร้อม�ับคำศัพท์ที่ใช้ประ�อบ�ัน รูป�บบนี้ได้รับ�รงบันดาลใจจา�หนังสือของ Martin Fowler *Patterns of Enterprise Application Architecture* �ละ *Refactoring*. content/zh_cn/dev-prod-parity.md0000644000175000056700000000761215226251677015451 0ustar0000000000000000## X. 开�环境与线上环境等价 ### 尽�能的��开�,预�布,线上环境相� 从以往�验�看,开�环境(�开�人员的本地 [部署](./codebase))和线上环境(外部用户访问的真实部署)之间存在�很多差异。这些差异表现在以下三个方�: * **时间差异:** 开�人员正在编写的代��能需�几天,几周,甚至几个月�会上线。 * **人员差异:** 开�人员编写代�,�维人员部署代�。 * **工具差异:** 开�人员或许使用 Nginx,SQLite,OS X,而线上环境使用 Apache,MySQL 以� Linux。 **12-Factor 应用想��到 [�续部署](http://avc.com/2011/02/continuous-deployment/) 就必须缩�本地与线上差异。** �回头看上�所�述的三个差异: * 缩�时间差异:开�人员�以几�时,甚至几分钟就部署代�。 * 缩�人员差异:开�人员���编写代�,更应该密切�与部署过程以�代�在线上的表现。 * 缩�工具差异:尽���开�环境以�线上环境的一致性。 将上述总结�为一个表格如下:
传统应用 12-Factor 应用
�次部署间隔 数周 几�时
开�人员 vs �维人员 ��的人 相�的人
开�环境 vs 线上环境 �� 尽�接近
[�端�务](./backing-services) 是��开�与线上等价的��部分,例如数�库,队列系统,以�缓存。许多语言都�供了简化获��端�务的类库,例如��类型�务的 *适�器* 。下列表格�供了一些例�。
类型 语言 类库 适�器
数�库 Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
队列 Python/Django Celery RabbitMQ, Beanstalkd, Redis
缓存 Ruby/Rails ActiveSupport::Cache Memory, filesystem, Memcached
å¼€å�‘人员有时会觉得在本地环境中使用轻é‡�çš„å�Žç«¯æœ�务具有很强的å�¸å¼•力,而那些更é‡�é‡�级的å�¥å£®çš„å�Žç«¯æœ�务应该使用在生产环境。例如,本地使用 SQLite 线上使用 PostgreSQLï¼›å�ˆå¦‚本地缓存在进程内存中而线上存入 Memcached。 **12-Factor 应用的开å�‘人员应该å��对在ä¸�å�ŒçŽ¯å¢ƒé—´ä½¿ç”¨ä¸�å�Œçš„å�Žç«¯æœ�务** ,å�³ä½¿é€‚é…�器已ç»�å�¯ä»¥å‡ ä¹Žæ¶ˆé™¤ä½¿ç”¨ä¸Šçš„差异。这是因为,ä¸�å�Œçš„å�Žç«¯æœ�务æ„�味ç�€ä¼šçª�然出现的ä¸�兼容,从而导致测试ã€�预å�‘布都正常的代ç �在线上出现问题。这些错误会给æŒ�续部署带æ�¥é˜»åŠ›ã€‚ä»Žåº”ç”¨ç¨‹åº�的生命周期æ�¥çœ‹ï¼Œæ¶ˆé™¤è¿™ç§�阻力需è¦�花费很大的代价。 与此å�Œæ—¶ï¼Œè½»é‡�的本地æœ�务也ä¸�åƒ�以å‰�那样引人注目。借助于[Homebrew](http://mxcl.github.com/homebrew/),[apt-get](https://help.ubuntu.com/community/AptGet/Howto)等现代的打包系统,诸如Memcachedã€�PostgreSQLã€�RabbitMQ ç­‰å�Žç«¯æœ�务的安装与è¿�行也并ä¸�å¤�æ�‚。此外,使用类似 [Chef](http://www.opscode.com/chef/) å’Œ [Puppet](http://docs.puppetlabs.com/) 的声明å¼�é…�置工具,结å�ˆåƒ� [Vagrant](http://vagrantup.com/) 这样轻é‡�的虚拟环境就å�¯ä»¥ä½¿å¾—å¼€å�‘人员的本地环境与线上环境无é™�接近。与å�Œæ­¥çŽ¯å¢ƒå’ŒæŒ�续部署所带æ�¥çš„益处相比,安装这些系统显然是值得的。 ä¸�å�Œå�Žç«¯æœ�务的适é…�器ä»�然是有用的,因为它们å�¯ä»¥ä½¿ç§»æ¤�å�Žç«¯æœ�务å�˜å¾—简å�•。但应用的所有部署,这其中包括开å�‘ã€�预å�‘布以å�Šçº¿ä¸ŠçŽ¯å¢ƒï¼Œéƒ½åº”è¯¥ä½¿ç”¨å�Œä¸€ä¸ªå�Žç«¯æœ�务的相å�Œç‰ˆæœ¬ã€‚ public/images/symbol.png0000644000175000056700000000370515226251677014063 0ustar0000000000000000‰PNG  IHDR(JÉÂ< pHYs  šœwIDAThµ™[¨”e†ó”™¦�É2#J(5Ð’Š¢¬A¨²ˆHè¢ëF*ˆn‚.‰ «Ë,©ˆB+ˆ$" Œ0£zQí–Aif¦»÷™ý­Ÿ5k¾ÿ03/¬½¾µÖ»ÞõÍ?3ß?3{Üèèè -b‚´fÈöËŽµ¡;¾ §1Që·eøVÐögkWWËð­ í ®K»2?ü&y ¶d7Is£ÄCk�C¤L–Æ—²‹eÇe<3_ËæËŽÈF[OñƒÚ›öˆ‰É…6®à,í`—ljÚÉQùIi}HþÙî÷íÚ¸‚OhªmŽ øó�<õÁ1ä y±ú#Æ„âŲ�Þ0Ã<ÅÜ5vÈ. —ç€âé!÷…â…2u%óß'ɸ9¦lÊŒ‚¿ xéÏRß^YÄGJŒ—á#àÓ××SÝÙ‰?§+þG6?qðÄôõ5³/r_$,NV¼6ÕM“8‚>ú�Sëk AŒ7Õ6YÄ·JL‘y=bòôwÞœòžŸ]g“�wÇi)^ZÒC>tÍnDJbÓåÉLÛX3Œz:èÕί%8‘§âÅûd3'§G^z9~W®+¨h˜«ÚÑ8Añý=^^zèz^Ϻ'QÒ°%ª+þXÆ™×Düt+û+‹©ùÖ¨ªø_Ù‚To¢>}è—j”RÓùâ'S½®?Öé‹@Ÿ9‘Û‰³IG~,ª)FpªãÔiø:}¹ÌÏ+ÖÅ"C¸P¹Ã²ˆ[”¨ê««ÑÁæõôö$é�¨¢˜\UOÓZcí2Á%™ÍPnVKD½æví©+HÅIò»b§âÕ©žë$‡^s™_è —|(v)Þ.›à8¹¾~sè¡ÁüB«X¤$·¥xéûþˆäÔ¬sݘ_Ü>ã_R1â%"¯ÍýöÑ™á]«¤ýla »µ8ÅÈÿ“GŸ9ìƒýèg€±�r¯üTQyÙú½¿§$ï9q�»�²ŸñF\w¦xóƒ®QÏ_2¼i7õÌ‹XiÍ;Cå â dVoâÏŸ§êï䉛ôçñ™ë±ÓŠ+|Vkî—“eV¯óïËÀ‘1׉û9š˜Ç\�~ð{¾¢õ#2_¯Z¯u½þë&ùª>_cžû)Þ$/’ñú1ü©Å92/’[/Ç¿û½yê¹>Ÿcó h°Ÿ® Òð°1’R…ÍQm_ââ8d—'O ¨Ã«ÒaŽûèðcÓD>sLî"—9ø“.3ðiy© M¼ÿô ~œGŒ>s Ìgn®áJ}ÇFþeÅñ Tü¢?7}s™_ðŠ…Ojý´Ìƒ§ÍsWù¢ÖëBݸä=è³]æúzÏkЊÓDüÁuŽh}’ŒúU2;J´Ý$ãNd½Þ“§n �~8è�È Ìc®ï/Ý ¤›­3yŽ�3e~ã܎꾟P÷·QúÑ‰Ç óº6GÜ“¤×86Z Ï]ã`s»wìâ5Zñ�2{d§j½G¨õú­Ž®Õ˜gù‹Lq’rv‹âöä…oWlتE•u}ÆEÏn›ÌažÕ _,rEåæÊËÀ+2Ï«“ûs[¨�¼¾åñèô™ãkźX””_-3Ü¡…õÌÖÚ^ø#ZÇcÇ+ðà[/:ô-ßã{ò8å¶$µ?äùéÌúüæã±ã�¿ úÑè¢oz=¾'QBF”ÿV/:^ñ'�l÷±ã�êð˜å,zèVšïTlðWd�’GSáy4ñ€oõR_Z�PUíY¦ Çd×ËŒû:Io9êð}–oä‘2¢ Resources can be attached to and detached from deploys at will. For example, if the app's database is misbehaving due to a hardware issue, the app's administrator might spin up a new database server restored from a recent backup. The current production database could be detached, and the new database attached -- all without any code changes. content/en/codebase.md0000644000175000056700000000340415226251677013464 0ustar0000000000000000## I. Codebase ### One codebase tracked in revision control, many deploys A twelve-factor app is always tracked in a version control system, such as [Git](http://git-scm.com/), [Mercurial](https://www.mercurial-scm.org/), or [Subversion](http://subversion.apache.org/). A copy of the revision tracking database is known as a *code repository*, often shortened to *code repo* or just *repo*. A *codebase* is any single repo (in a centralized revision control system like Subversion), or any set of repos who share a root commit (in a decentralized revision control system like Git). ![One codebase maps to many deploys](/images/codebase-deploys.png) There is always a one-to-one correlation between the codebase and the app: * If there are multiple codebases, it's not an app -- it's a distributed system. Each component in a distributed system is an app, and each can individually comply with twelve-factor. * Multiple apps sharing the same code is a violation of twelve-factor. The solution here is to factor shared code into libraries which can be included through the [dependency manager](./dependencies). There is only one codebase per app, but there will be many deploys of the app. A *deploy* is a running instance of the app. This is typically a production site, and one or more staging sites. Additionally, every developer has a copy of the app running in their local development environment, each of which also qualifies as a deploy. The codebase is the same across all deploys, although different versions may be active in each deploy. For example, a developer has some commits not yet deployed to staging; staging has some commits not yet deployed to production. But they all share the same codebase, thus making them identifiable as different deploys of the same app. content/pt_br/dev-prod-parity.md0000644000175000056700000001141615226251677015453 0ustar0000000000000000## X. Paridade entre desenvolvimento e produção ### Mantenha o desenvolvimento, homologação e produção o mais similares possível Historicamente, houveram lacunas substanciais entre desenvolvimento (um desenvolvedor editando código num [deploy](./codebase) local do app) e produção (um deploy acessado pelos usuários finais). Essas lacunas se manifestam em três áreas: * **A lacuna do tempo:** Um desenvolvedor pode trabalhar em código que demora dias, semanas ou até meses para ir para produção. * **A lacuna de pessoal:** Desenvolvedores escrevem código, engenheiros de operação fazem o deploy dele. * **A lacuna de ferramentas:** Desenvolvedores podem estar usando um conjunto como Nginx, SQLite, e OS X, enquanto o app em produção usa Apache, MySQL, e Linux. **O App doze-fatores é projetado para [implantação contínua](http://avc.com/2011/02/continuous-deployment/) deixando a lacuna entre desenvolvimento e produção pequena.** Olhando às três lacunas descritas acima: * Diminua a lacuna de tempo: um desenvolvedor pode escrever código e ter o deploy feito em horas ou até mesmo minutos depois. * Diminua a lacuna de pessoal: desenvolvedores que escrevem código estão proximamente envolvidos em realizar o deploy e acompanhar seu comportamento em produção. * Diminua a lacuna de ferramentas: mantenha desenvolvimento e produção o mais similares possível. Resumindo o acima em uma tabela:
App tradicional App doze-fatores
Tempo entre deploys Semanas Horas
Autores de código vs deployers Pessoas diferentes Mesmas pessoas
Ambientes de desenvolvimento vs produção Divergente O mais similar possível
[Serviços de apoio](./backing-services), como o banco de dados do app, sistema de filas, ou cache, são uma área onde paridade entre desenvolvimento e produção é importante. Muitas linguagens oferecem diferentes bibliotecas que simplificam o acesso ao serviço de apoio, incluindo *adaptadores* para os diferentes tipos de serviços. Alguns exemplos na tabela abaixo.
Tipo Linguagem Biblioteca Adaptadores
Banco de dados Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
Fila Python/Django Celery RabbitMQ, Beanstalkd, Redis
Cache Ruby/Rails ActiveSupport::Cache Memory, sistema de arquivos, Memcached
Desenvolvedores as vezes vem uma grande vantagem em usar um serviço de apoio leve em seus ambientes, enquanto um serviço de apoio mais sério e robusto seria usado em produção. Por exemplo, usando SQLite localmente e PostgreSQL em produção; ou memória de processo local para caching em desenvolvimento e Memcached em produção. **O desenvolvedor doze-fatores resiste a tentação de usar diferentes serviços de apoio entre desenvolvimento e produção**, mesmo quando adaptadores teoricamente abstraem as diferenças dos serviços de apoio. Diferenças entre serviços de apoio significam que pequenas incompatibilidades aparecerão, fazendo com que código que funcionava e passava em desenvolvimento ou homologação, falhe em produção. Tais tipos de erros criam fricção que desincentivam deploy contínuo. O custo dessa fricção e do subsequente decaimento de deploy contínuo é extremamente alto quando considerado que vai acumular no tempo de vida da aplicação. Serviços locais leves são menos tentadores que já foram um dia. Serviços de apoio modernos tais como Memcached, PostgreSQL, e RabbitMQ não são difíceis de instalar e rodam graças a sistemas modernos de empacotamento tais como [Homebrew](http://mxcl.github.com/homebrew/) e [apt-get](https://help.ubuntu.com/community/AptGet/Howto). Alternativamente, ferramentas de provisionamento declarativo tais como [Chef](http://www.opscode.com/chef/) e [Puppet](http://docs.puppetlabs.com/) combinado com ambientes virtuais leves como [Vagrant](http://vagrantup.com/) permitem desenvolvedores rodar ambientes locais que são bem próximos dos ambientes de produção. O custo de instalar e usar esses sistemas é baixo comparado ao benefício de ter a paridade entre desenvolvimento, produção e deploy contínuo. Adaptadores para diferentes serviços de apoio ainda são úteis, pois eles fazem a portabilidade para novos serviços de apoio relativamente tranquilas. Mas todos os deploys do app (ambientes de desenvolvimento, homologação, produção) devem usar o mesmo tipo e versão de cada serviço de apoio. content/ru/port-binding.md0000644000175000056700000000666015226251677014346 0ustar0000000000000000## VII. ПривÑ�зка портов (Port binding) ### ЭкÑ�портируйте Ñ�ервиÑ�Ñ‹ через привÑ�зку портов Иногда веб-приложениÑ� запуÑ�кают внутри контейнера веб-Ñ�ервера. Ð�апример, PHP-приложение может быть запущено как модуль внутри [Apache HTTPD](http://httpd.apache.org/), или Java-приложение может быть запущено внутри [Tomcat](http://tomcat.apache.org/). **Приложение двенадцати факторов Ñ�влÑ�етÑ�Ñ� полноÑ�тью Ñ�амодоÑ�таточным** и не полагаетÑ�Ñ� на инъекцию веб-Ñ�ервера во времÑ� выполнениÑ� длÑ� того, чтобы Ñ�оздать веб-Ñ�ервиÑ�. Веб-приложение **Ñ�кÑ�портирует HTTP-Ñ�ервиÑ� путём привÑ�зки к порту** и проÑ�лушивает запроÑ�Ñ‹, поÑ�тупающих на Ñ�тот порт. Во времÑ� локальной разработки разработчик переходит по URL-адреÑ�у вида `http://localhost:5000/`, чтобы получить доÑ�туп к Ñ�ервиÑ�у, предоÑ�тавлÑ�емым его приложением. При развёртывании Ñ�лой маршрутизации обрабатывает запроÑ�Ñ‹ к общедоÑ�тупному хоÑ�ту и перенаправлÑ�ет их к привÑ�занному к порту веб приложению. Это обычно реализуетÑ�Ñ� Ñ� помощью [объÑ�влениÑ� завиÑ�имоÑ�ти](./dependencies) длÑ� добавлениÑ� библиотеки веб-Ñ�ервера к приложению такой, как [Tornado](http://www.tornadoweb.org/) в Python, [Thin](http://code.macournoyer.com/thin/) в Ruby, и [Jetty](http://www.eclipse.org/jetty/) в Java и других Ñ�зыках на оÑ�нове JVM. Это проиÑ�ходит полноÑ�тью в *проÑ�транÑ�тве пользователÑ�*, то еÑ�ть в коде приложениÑ�. Контрактом Ñ�о Ñ�редой иÑ�полнениÑ� Ñ�влÑ�етÑ�Ñ� привÑ�зка приложениÑ� к порту длÑ� обработки запроÑ�ов. HTTP -- Ñ�то не единÑ�твенный Ñ�ервиÑ�, который может быть Ñ�кÑ�портирован поÑ�редÑ�твом привÑ�зки порта. Почти любой тип Ñ�ерверного ПО может быть запущен как процеÑ�Ñ�, привÑ�занный к порту и ожидающий входÑ�щих запроÑ�ов. Примеры Ñ�того включают [ejabberd](http://www.ejabberd.im/) (предоÑ�тавлÑ�ет [XMPP протокол](http://xmpp.org/)) и [Redis](http://redis.io/) (предоÑ�тавлÑ�ет [Redis протокол](http://redis.io/topics/protocol)). Также обратите внимание, что подход привÑ�зки к порту означает, что одно приложение может выÑ�тупать [Ñ�торонней Ñ�лужбой](./backing-services) длÑ� другого приложениÑ� путём предоÑ�тавлениÑ� URL-адреÑ�а Ñ�тороннего приложениÑ� как идентификатор реÑ�урÑ�а в конфигурации потреблÑ�ющего приложениÑ�. content/th/toc.md0000644000175000056700000000415515226251677012521 0ustar0000000000000000The Twelve Factors ================== ## [I. Codebase](./codebase) ### มีเพียง codebase เดียวที่ติดตามด้วย version control, มีหลาย deploy ## [II. Dependencies](./dependencies) ### มีà¸�ารประà¸�าศà¹�ละà¹�ยà¸�à¸�ารอ้างอิง (dependency) ทั้งหมดอย่างชัดเจน ## [III. Config](./config) ### จัดเà¸�็บà¸�ารตั้งค่า (config) ไว้ในสิ่งà¹�วดล้อมของระบบ ## [IV. Backing services](./backing-services) ### จัดà¸�ารà¸�ับบริà¸�ารสนับสนุน (backing service) ให้เป็นทรัพยาà¸�รที่à¹�นบมา ## [V. Build, release, run](./build-release-run) ### à¹�ยà¸�ขั้นตอนของà¸�าร build à¹�ละ run อย่างเคร่งครัด ## [VI. Processes](./processes) ### รันà¹�อพพลิเคชันเป็นหนึ่งหรือมาà¸�à¸�ว่าให้เป็น stateless processes ## [VII. Port binding](./port-binding) ### นำออà¸�บริà¸�ารด้วยà¸�ารเชื่อมโยง port ## [VIII. Concurrency](./concurrency) ### ขยายออà¸�ของà¹�อพพลิเคชันด้วยรูปà¹�บบ process ## [IX. Disposability](./disposability) ### เพิ่มความà¹�ข็งà¹�à¸�ร่งด้วยà¸�ารเริ่มต้นระบบอย่างรวดเร็วà¹�ละปิดระบบอย่างนุ่มนวล ## [X. Dev/prod parity](./dev-prod-parity) ### รัà¸�ษา development, staging à¹�ละ production ให้มีความใà¸�ล้เคียงà¸�ันที่สุด ## [XI. Logs](./logs) ### จัดà¸�าร logs ให้เป็นà¹�บบ event stream ## [XII. Admin processes](./admin-processes) ### รันงานของผู้ดูà¹�ลระบบ/à¸�ารจัดà¸�ารให้เป็นà¸�ระบวนà¸�ารà¹�บบครั้งเดียว content/zh_cn/codebase.md0000644000175000056700000000354515226251677014171 0ustar0000000000000000## I. 基准代ç � ### 一份基准代ç �(*Codebase*),多份部署(*deploy*) 12-Factor应用(译者注:应该是说一个使用本文概念æ�¥è®¾è®¡çš„应用,下å�Œ)通常会使用版本控制系统加以管ç�†ï¼Œå¦‚[Git](http://git-scm.com/), [Mercurial](https://www.mercurial-scm.org/), [Subversion](http://subversion.apache.org/)。一份用æ�¥è·Ÿè¸ªä»£ç �所有修订版本的数æ�®åº“被称作 *代ç �库*(code repository, code repo, repo)。 在类似 SVN 这样的集中å¼�版本控制系统中,*基准代ç �* 就是指控制系统中的这一份代ç �库;而在 Git 那样的分布å¼�版本控制系统中,*基准代ç �* 则是指最上游的那份代ç �库。 ![一份代ç �库对应多份部署](/images/codebase-deploys.png) 基准代ç �和应用之间总是ä¿�æŒ�一一对应的关系: * 一旦有多个基准代ç �,就ä¸�能称为一个应用,而是一个分布å¼�系统。分布å¼�系统中的æ¯�一个组件都是一个应用,æ¯�一个应用å�¯ä»¥åˆ†åˆ«ä½¿ç”¨ 12-Factor 进行开å�‘。 * 多个应用共享一份基准代ç �是有悖于 12-Factor 原则的。解决方案是将共享的代ç �拆分为独立的类库,然å�Žä½¿ç”¨ [ä¾�赖管ç�†](./dependencies) 策略去加载它们。 尽管æ¯�个应用å�ªå¯¹åº”一份基准代ç �,但å�¯ä»¥å�Œæ—¶å­˜åœ¨å¤šä»½éƒ¨ç½²ã€‚æ¯�份 *部署* 相当于è¿�行了一个应用的实例。通常会有一个生产环境,一个或多个预å�‘布环境。此外,æ¯�个开å�‘人员都会在自己本地环境è¿�行一个应用实例,这些都相当于一份部署。 所有部署的基准代ç �相å�Œï¼Œä½†æ¯�份部署å�¯ä»¥ä½¿ç”¨å…¶ä¸�å�Œçš„版本。比如,开å�‘人员å�¯èƒ½æœ‰ä¸€äº›æ��交还没有å�Œæ­¥è‡³é¢„å�‘布环境;预å�‘布环境也有一些æ��交没有å�Œæ­¥è‡³ç”Ÿäº§çŽ¯å¢ƒã€‚ä½†å®ƒä»¬éƒ½å…±äº«ä¸€ä»½åŸºå‡†ä»£ç �,我们就认为它们å�ªæ˜¯ç›¸å�Œåº”用的ä¸�å�Œéƒ¨ç½²è€Œå·²ã€‚ locales/zh_cn.yml0000644000175000056700000000034415226251677012567 0ustar0000000000000000zh_cn: # Name of language listed in locales menu language: 简体中文 (zh_cn) # A text to make known that the article is a translation not an original. # Empty for English, original. translation: (简体中文) content/pt_br/backing-services.md0000644000175000056700000000544315226251677015647 0ustar0000000000000000## IV. Serviços de Apoio ### Trate serviços de apoio como recursos anexados Um *serviço de apoio* é qualquer serviço que o app consuma via rede como parte de sua operação normal. Exemplos incluem armazenamentos de dados (como [MySQL](http://dev.mysql.com/) ou [CouchDB](http://couchdb.apache.org/)), sistemas de mensagens/filas (tais como [RabbitMQ](http://www.rabbitmq.com/) ou [Beanstalkd](https://beanstalkd.github.io)), serviços SMTP para emails externos (tais como [Postfix](http://www.postfix.org/)), e sistemas de cache (tais como [Memcached](http://memcached.org/)). Serviços de apoio como o banco de dados são tradicionalmente gerenciados pelos mesmos administradores de sistema do servidor de deploy de tempo de execução do app. Adicionalmente à esses serviços localmente gerenciados, o app pode ter serviços providos e gerenciados por terceiros. Exemplos incluem serviços SMTP (tais como [Postmark](http://postmarkapp.com/)), serviços de colheita de métricas (tais como [New Relic](http://newrelic.com/) ou [Loggly](http://www.loggly.com/)), serviços de ativos binários (tais como [Amazon S3](http://aws.amazon.com/s3/)), e até serviços de consumidores acessíveis via API (tais como [Twitter](http://dev.twitter.com/), [Google Maps](https://developers.google.com/maps/), ou [Last.fm](http://www.last.fm/api)). **O código para um app doze-fatores não faz distinção entre serviços locais e de terceiros.** Para o app, ambos são recursos anexados, acessíveis via uma URL ou outro localizador/credenciais na [config](./config). Um [deploy](./codebase) do app doze-fatores deve ser capaz de trocar um banco de dados MySQL por um gerenciado por terceiros (tais como [Amazon RDS](http://aws.amazon.com/rds/)) sem realizar quaisquer mudanças no código do app. Da mesma forma, um servidor local SMTP poderia ser trocado por um serviço de terceiros (tais como Postmark) sem as mudanças em código. Em ambos os casos, apenas o identificador de recurso precisa mudar. Cada serviço de apoio distinto é um *recurso*. Por exemplo, um banco MySQL é um recurso; dois bancos MySQL (usados para sharding na camada da aplicação) qualificam como dois recursos distintos. O app doze-fatores trata tais bancos como *recursos anexados*, o que indica seu baixo acoplamento ao deploy que ele está anexado. Um deploy de produção anexado a quatro serviços de apoio. Recursos podem ser anexados e desanexados a deploys à vontade. Por exemplo, se o banco de dados do app não está funcionando corretamente devido a um problema de hardware, o administrador do app pode subir um novo servidor de banco de dados restaurado de um backup recente. O atual banco de produção pode ser desanexado, e o novo banco anexado -- tudo sem nenhuma mudança no código. content/uk/port-binding.md0000644000175000056700000000646615226251677014343 0ustar0000000000000000## VII. Прив'Ñ�зка портів ### ЕкÑ�портуйте Ñ�ервіÑ�и за допомогою прив'Ñ�зки портів (port binding) Веб-заÑ�тоÑ�унки іноді запуÑ�каютьÑ�Ñ� вÑ�ередині контейнера веб-Ñ�ервера. Ð�априклад, PHP-заÑ�тоÑ�унок може бути запущений Ñ�к модуль вÑ�ередині [Apache HTTPD](http://httpd.apache.org/) або Java-заÑ�тоÑ�унок може бути запущений вÑ�ередині [Tomcat](http://tomcat.apache.org/). **ЗаÑ�тоÑ�унок дванадцÑ�ти факторів Ñ” повніÑ�тю автономним** Ñ– в процеÑ�Ñ– виконаннÑ�, щоб Ñ�творити веб-Ñ�ервіÑ�, доÑ�тупний через web, не покладаєтьÑ�Ñ� на ін'єкцію веб-Ñ�ервера в Ñ�ередовище виконаннÑ�. Веб-заÑ�тоÑ�унок **екÑ�портує HTTP-Ñ�ервіÑ� шлÑ�хом прив'Ñ�зки до порту** Ñ– проÑ�луховує запити, що надходÑ�ть на цей порт. У локальному development Ñ�ередовищі розробник відвідує URL-адреÑ�у виглÑ�ду `http://localhost:5000/` длÑ� доÑ�тупу до Ñ�ервіÑ�у, що екÑ�портуєтьÑ�Ñ� заÑ�тоÑ�унком. При розгортанні рівень маршрутизації оброблÑ�Ñ” запити до загальнодоÑ�тупного хоÑ�ту Ñ– перенаправлÑ�Ñ” Ñ—Ñ… до порту, до Ñ�кого прив'Ñ�зано веб-процеÑ�. Як правило, це реалізуєтьÑ�Ñ� за допомогою [оголошеннÑ� залежноÑ�тей] (./dependencies) шлÑ�хом додаваннÑ� бібліотеки веб-Ñ�ервера до заÑ�тоÑ�унку, наприклад, [Tornado](http://www.tornadoweb.org/) длÑ� Python, [Thin](http://code.macournoyer.com/thin/) длÑ� Ruby або [Jetty](http://www.eclipse.org/jetty/) длÑ� Java та інших мов на оÑ�нові JVM. Це відбуваєтьÑ�Ñ� повніÑ�тю в *проÑ�торі кориÑ�тувача*, тобто в коді заÑ�тоÑ�унку. Прив'Ñ�зка до порту длÑ� обробки запитів Ñ” "угодою" із Ñ�ередовищем виконаннÑ�. HTTP — не єдиний Ñ�ервіÑ�, Ñ�кий може бути екÑ�портований шлÑ�хом прив'Ñ�зки до порту. Майже будь-Ñ�кий вид Ñ�ерверного програмного забезпеченнÑ� може бути запущений, прив'Ñ�заний до порту Ñ– може очікувати вхідні запити. Прикладами Ñ” [ejabberd](http://www.ejabberd.im/) (викориÑ�товує [XMPP](http://xmpp.org/)) Ñ– [Redis](http://redis.io/) (викориÑ�товує [протокол Redis](http://redis.io/topics/protocol)). Також зверніть увагу, що підхід прив'Ñ�зки до портів означає, що заÑ�тоÑ�унок може виÑ�тупати Ñ�к [Ñ�тороннÑ� Ñ�лужба](./backing-services) длÑ� іншого заÑ�тоÑ�унку, надаючи Ñ�вою URL-адреÑ�у Ñ�к реÑ�урÑ� в [конфігурації](./config) заÑ�тоÑ�унку-Ñ�поживача.content/fr/config.md0000644000175000056700000001002415226251677013165 0ustar0000000000000000## III. Configuration ### Stockez la configuration dans l'environnement La *configuration* d'une application est tout ce qui est susceptible de varier entre des [déploiements](./codebase) (validation, production, environnement de développement, etc.). Cela inclut : * Les ressources gérées par la base de données, Memcached, ou tout autre [service de stockage](./backing-services) * Les identifiants pour des services externes, tel qu'Amazon S3 ou Twitter * Les valeurs spécifiques au déploiement, tel que son nom d'hôte canonique Les applications stockent parfois la configuration avec des constantes dans le code. C'est une violation des 12 facteurs, qui requiert une **stricte séparation de la configuration et du code**. La configuration peut varier substantiellement à travers les déploiements, alors que ce n'est pas le cas du code. Un bon moyen de tester si une application a correctement séparé son code, c'est de se demander si l'application pourrait être rendue open-source à tout instant, sans compromettre d'identifiants. Notez que cette définition de "configuration" n'inclut **pas** la configuration interne de l'application, tel que `config/routes.rb` avec Rails, ou comment [les modules du noyau sont connectés (en)](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html) dans [Spring](http://spring.io/). Ce type de configuration ne varie pas à travers les déploiements, et est ainsi mieux réalisé dans le code. Une autre approche de la configuration, c'est d'utiliser des fichiers de configuration qui ne sont pas inclus dans le système de contrôle de version, par exemple `config/database.yml` de Rails. C'est une amélioration considérable par rapport à l'utilisation de constantes qui sont versionnées dans le dépôt de code, mais a toujours des faiblesses : il est facile d'ajouter par inadvertance un fichier de configuration dans le dépôt. Il y a une tendance à ce que les fichiers de configuration soient dispersés à différents endroits et dans différents formats, rendant ainsi difficile de voir et gérer la configuration à un unique endroit. De plus, ces formats ont tendance à être spécifiques à un langage ou un framework. **Les applications 12 facteurs stockent la configuration dans des *variables d'environnement*** (souvent raccourcies en *variables d'env*, ou *env*). Les variables d'environnement sont faciles à changer entre des déploiements sans changer le moindre code ; contrairement aux fichiers de configuration, il y a peu de chance pour qu'elles soient ajoutées au dépôt de code accidentellement ; et contrairement aux fichiers de configuration personnalisés, ou tout autre mécanisme de configuration comme les propriétés système Java, ce sont des standards agnostiques du langage ou du système d'exploitation. Un autre aspect de la gestion de configuration est le groupage. Parfois, les applications regroupent la configuration dans des groupes nommés (souvent appelés les "environnements"), nommés ainsi d'après des déploiements spécifiques, comme les environnements `development`, `test`, et `production` de Rails. Cette méthode ne permet pas de grossir proprement : lorsque l'on ajoute de nouveaux déploiement à l'application, de nouveaux noms d'environnement sont nécessaires, comme `validation` ou `qa`. Quand le projet grossit encore plus, les développeurs vont avoir tendance à ajouter leurs propres environnements particuliers, comme `joes-validation`, ce qui entraîne une explosion combinatoire de la configuration qui rend la gestion des déploiements de l'application très fragile. Dans une application 12 facteurs, les variables d'environnement permettent un contrôle granulaire, chacune complètement orthogonale aux autres variables d'environnement. Elles ne sont jamais groupées ensemble en "environnements", mais sont plutôt gérées indépendamment pour chaque déploiement. C'est un modèle qui permet de grossir verticalement en souplesse, lorsque l'application grossit naturellement en un plus grand nombre de déploiements au cours de sa vie. content/ko/background.md0000644000175000056700000000253715226251677014053 0ustar0000000000000000ë°°ê²½ ========== ì�´ 문서ì—� 기여한 사람들ì�€ 수백개 앱ì�˜ 개발과 ë°°í�¬ì—� ì§�ì ‘ 참여했으며, [Heroku](http://www.heroku.com/) 플랫í�¼ì�„ 통해서 방대한 앱ì�˜ 개발, ìš´ì˜�, 확장ì�„ ê°„ì ‘ì �으로 관찰했다. ì�´ 문서는 실제로 ì“°ì�´ëŠ” 다양한 SaaS 앱ì—� 대한 경험과 관찰ì�„ 종합한 결과물ì�´ë‹¤. 특히 시간ì�´ 지나면서 앱ì�´ 유기ì �으로 성장하는 부분, 앱 코드베ì�´ìФì—�서 작업하는 개발ìž�들 ê°„ì�˜ 협업, [시간ì�´ 지나면서 ë§�가지는 소프트웨어 유지비용ì�„ 줄ì�´ëŠ” 법](http://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts/)ì—� 집중하여 ì�´ìƒ�ì �ì�¸ 앱 개발 방법ì�„ 찾고ìž� 했다. ì�´ 문서는 우리가 최신 애플리케ì�´ì…˜ 개발ì—�서 만났ë�˜ 몇가지 시스템ì �ì�¸ 문제ì—� 대한 ì�¸ì§€ë�„를 높ì�´ê³ , ì�´ 문제들ì�„ 가지고 ë…¼ì�˜ 하는ë�° 필요한 공통ì�˜ 어휘를 제공하며, ì�´ 문제들ì—� 대한 ë„“ì�€ ê°œë…�ì�˜ í•´ê²°ì±…ê³¼ 용어를 제공하기 위해 작성 했다. 형ì‹�ì�€ Martin Fowlerì�˜ ì±…, *[Patterns of Enterprise Application Architecture](http://books.google.com/books/about/Patterns_of_enterprise_application_archi.html?id=FyWZt5DdvFkC)*ê³¼ *[Refactoring](http://books.google.com/books/about/Refactoring.html?id=1MsETFPD3I0C)*ì—�서 ì˜�ê°�ì�„ 받았다.content/ko/toc.md0000644000175000056700000000246115226251677012515 0ustar0000000000000000The Twelve Factors ================== ## [I. 코드베ì�´ìФ](./codebase) ### 버전 관리ë�˜ëŠ” 하나ì�˜ 코드베ì�´ìŠ¤ì™€ 다양한 ë°°í�¬ ## [II. 종ì†�성](./dependencies) ### 명시ì �으로 ì„ ì–¸ë�˜ê³  분리ë�œ 종ì†�성 ## [III. 설정](./config) ### 환경(environment)ì—� 저장ë�œ 설정 ## [IV. 백엔드 서비스](./backing-services) ### 백엔드 서비스를 ì—°ê²°ë�œ 리소스로 취급 ## [V. 빌드, 릴리즈, 실행](./build-release-run) ### 철저하게 분리ë�œ 빌드와 실행 단계 ## [VI. 프로세스](./processes) ### 애플리케ì�´ì…˜ì�„ 하나 혹ì�€ 여러개ì�˜ 무ìƒ�태(stateless) 프로세스로 실행 ## [VII. í�¬íЏ ë°”ì�¸ë”©](./port-binding) ### í�¬íЏ ë°”ì�¸ë”©ì�„ 사용해서 서비스를 공개함 ## [VIII. ë�™ì‹œì„±(Concurrency)](./concurrency) ### 프로세스 모ë�¸ì�„ 사용한 확장 ## [IX. í��기 가능(Disposability)](./disposability) ### 빠른 시작과 그레ì�´ìŠ¤í’€ 셧다운(graceful shutdown)ì�„ 통한 안정성 극대화 ## [X. 개발/프로ë�•션환경 ì�¼ì¹˜](./dev-prod-parity) ### 개발, 스테ì�´ì§•, 프로ë�•ì…˜ 환경ì�„ 최대한 비슷하게 유지 ## [XI. 로그](./logs) ### 로그를 ì�´ë²¤íЏ 스트림으로 취급 ## [XII. Admin 프로세스](./admin-processes) ### admin/maintenance 작업ì�„ ì�¼íšŒì„± 프로세스로 실행 content/pt_br/build-release-run.md0000644000175000056700000000552715226251677015752 0ustar0000000000000000## V. Construa, lance, execute ### Separe estritamente os estágios de construção e execução Uma [base de código](./codebase) é transformada num deploy (de não-desenvolvimento) através de três estágios: * O *estágio de construção* é uma transformação que converte um repositório de código em um pacote executável conhecido como *construção*. Usando uma versão do código de um commit especificado pelo processo de desenvolvimento, o estágio de construção obtém e fornece [dependências](./dependencies) e compila binários e ativos. * O *estágio de lançamento* pega a construção produzida pelo estágio de construção e a combina com a atual [configuração](./config) do deploy. O *lançamento* resultante contém tanto a construção quanto a configuração e está pronta para execução imediata no ambiente de execução. * O *estágio de execução* roda o app no ambiente de execução, através do início de alguns dos [processos](./processes) do app com um determinado lançamento. ![Código vira uma construção, que é combinada com a configuração para se criar um lançamento.](/images/release.png) **O app doze-fatores usa separação estrita entre os estágios de construção, lançamento e execução.** Por exemplo, é impossível alterar código em tempo de execução, já que não há meios de se propagar tais mudanças de volta ao estágio de construção. Ferramentas para deploy tipicamente oferecem ferramentas de gestão de lançamento, mais notadamente a habilidade de se reverter à um lançamento prévio. Por exemplo, a ferramenta de deploy [Capistrano](https://github.com/capistrano/capistrano/wiki) armazena lançamentos em um subdiretório chamado `releases`, onde o lançamento atual é um link simbólico para o diretório de lançamento atual. Seu comando `rollback` torna fácil reverter para um lançamento prévio. Cada lançamento deve sempre ter um identificador de lançamento único, tal qual o timestamp do lançamento (como `2011-04-06-20:32:17`) ou um número incremental (como `v100`). Lançamentos são livro-razões onde apenas se acrescenta informações, ou seja, uma vez criado o lançamento não pode ser alterado. Qualquer mudança deve gerar um novo lançamento. Construções são iniciadas pelos desenvolvedores do app sempre que novos códigos entram no deploy. A execução de um executável, todavia, pode acontecer automaticamente em casos como o reinício do servidor, ou um processo travado sendo reiniciado pelo gerenciador de processos. Assim, no estágio de execução deve haver quanto menos partes móveis quanto possível, já que problemas que previnem um app de rodar pode causá-lo a travar no meio da noite quando não há desenvolvedores por perto. O estágio de construção pode ser mais complexo, já que os erros estão sempre à vista do desenvolvedor que está cuidando do deploy. content/pt_br/disposability.md0000644000175000056700000000575015226251677015310 0ustar0000000000000000## IX. Descartabilidade ### Maximize robustez com inicialização rápida e desligamento gracioso **Os [processos](./processos) de um app doze-fatores são *descartáveis*, significando que podem ser iniciados ou parados a qualquer momento.** Isso facilita o escalonamento elástico, rápido deploy de [código](./codebase) ou mudanças de [configuração](./config), e robustez de deploys de produção. Processos devem empenhar-se em **minimizar o tempo de inicialização**. Idealmente, um processo leva alguns segundos do tempo que o comando de inicialização é executado até o ponto que ele estará pronto para receber requisições ou tarefas. Períodos curtos de inicialização provém mais agilidade para o processo de [release](./build-release-run) e de escalonamento; e ele adiciona robustez, pois o gestor de processos pode mais facilmente mover processos para outras máquinas físicas quando necessário. Processos **desligam-se graciosamente quando recebem um sinal [SIGTERM](http://en.wikipedia.org/wiki/SIGTERM)** do seu gestor de processos. Para um processo web, desligamento gracioso é alcançado quando cessa de escutar à porta de serviço (consequentemente recusando quaisquer requisições novas), permitindo qualquer requisição em andamento terminar, e então desligando. Implícito neste modelo é que as requisições HTTP são curtas (não mais que alguns poucos segundos), ou no caso de um longo _polling_, o cliente deve ser capaz de transparentemente tentar se reconectar quando a conexão for perdida. Para um processo de trabalho (worker), desligamento gracioso é alcançado retornando a tarefa atual para fila de trabalho. Por exemplo, no [RabbitMQ](http://www.rabbitmq.com/) o trabalhador pode enviar um [`NACK`](http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.nack); no [Beanstalkd](https://beanstalkd.github.io), a tarefa é retornada para a fila automaticamente sempre que um trabalhador se desconecta. Sistemas baseados em trava como o [Delayed Job](https://github.com/collectiveidea/delayed_job#readme) precisam se certificar de soltar a trava no registro da tarefa. Implícito neste modelo é que todas as tarefas são [reentrantes](http://en.wikipedia.org/wiki/Reentrant_%28subroutine%29), o que tipicamente é atingindo envolvendo os resultados numa transação, ou tornando a operação [idempotente](http://en.wikipedia.org/wiki/Idempotence). Processos também devem ser **robustos contra morte súbida**, no caso de uma falha de hardware. Ao passo que isso é muito menos comum que um desligamento via `SIGTERM`, isso ainda pode acontecer. Uma abordagem recomendada é usar um backend de filas robusto, como o Beanstalkd, que retorna tarefas à fila quando clientes desconectam ou esgotam o tempo de resposta. De qualquer forma, um app doze-fatores é arquitetado para lidar com terminações não esperadas e não graciosas. [Crash-only design](http://lwn.net/Articles/191059/) leva este conceito à sua [conclusão lógica](http://docs.couchdb.org/en/latest/intro/overview.html). content/pt_br/who.md0000644000175000056700000000033215226251677013215 0ustar0000000000000000Quem deve ler este documento? ============================= Qualquer desenvolvedor que esta construindo aplicações que rodam como serviço. Engenheiros de Operações que implantam ou administram tais aplicações. content/th/logs.md0000644000175000056700000001041315226251677012672 0ustar0000000000000000## XI. Logs ### จัดà¸�าร logs ให้เป็นà¹�บบ event stream *Logs* จะทำให้เห็นได้ว่า app ทำงานอย่างไร ในสภาพà¹�วดล้อม server-based โดยทั่วไปจะเขียนเป็นไฟล์บนดิสà¸�์ (ใน "logfile") à¹�ต่นี่เป็นเพียง output format เท่านั้น Logs เป็น [stream](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/) ของà¸�ารรวบรวม, time-ordered events ที่รวมรวมจาà¸� output stream ของ process ทั้งหมดที่ทำงานอยู่à¹�ละ backing service, Log ในรูปà¹�บบเดิมโดยปรà¸�ติเป็นรูปà¹�บบข้อความด้วยหนึ่ง event ต่อบรรทัด (à¹�ม้à¸�ระทั้ง backtrace จาà¸� exception ที่มีหลายบรรทัด) Log ไม่มีจุดเริ่มต้นหรือสิ้นสุดที่à¹�น่นอน à¹�ต่มีà¸�ารไหลอย่างต่อเนื่องตราบใดที่ app ทำงานอยู่ **Twelve-factor app ไม่เคยà¸�ังวลà¸�ับà¸�ารà¸�ำหนดเส้นทางหรือà¸�ารจัดเà¸�็บสตรีมข้อมูลขาออà¸�** ไม่ควรพยายามเขียนหรือจัดà¸�าร logfile à¹�ทนที่, à¹�ต่ล่ะ process ที่ทำงานจะเขียน event stream ไม่มีà¸�ารบัฟเฟอร์ ด้วย `stdout` ในระหว่าง local development, developer จะดูสตรีมนี้ในเบื้องหลังของ terminal เพื่อสังเà¸�ตุพฤติà¸�รรมของ app ใน staging หรือ production deploy à¹�ต่ละสตรีมของ process จะตรวจจับโดยสภาพà¹�วดล้อมà¸�ารดำเนินงาน รวบรวมเข้าด้วยà¸�ันà¸�ับสตรีมอื่นๆ จาà¸� app à¹�ละเชื่อมเส้นทางไปที่จุดหมายปลายทางสุดท้ายที่ใช้ดูà¹�ละเà¸�็บถาวรในระยะยาว จุดหมายที่เà¸�็บถาวรเหล่านี้ไม่สามารถมองเห็นหรือà¸�ำหนดค่าโดย app à¹�ละà¹�ทนจะได้รับà¸�ารจัดà¸�ารอย่างสมบูรณ์โดยสภาพà¹�วดล้อมà¸�ารดำเนินงาน, Open-source log routers (เช่น [Logplex](https://github.com/heroku/logplex) à¹�ละ [Fluentd](https://github.com/fluent/fluentd)) มีไว้เพื่อà¸�ารนี้ สตรีมเหตุà¸�ารณ์สำหรับ app สามารถà¸�ำหนดเส้นทางไปที่ไฟล์ หรือดูได้ผ่านเรียลไทม์ใน terminal สตรีมสามารถส่งไป log indexing à¹�ละระบบวิเคราะห์ เช่น [Splunk](http://www.splunk.com/) หรือ ระบบคลังข้อมูลทั่วไป เช่น [Hadoop/Hive](http://hive.apache.org/) ระบบเหล่านี้มีพลังมาà¸�à¹�ละยืดหยุ่นในà¸�ารตรวจสอบพฤติà¸�รรมของ app ในช่วงเวลาหนึ่ง, รวมทั้ง: * ค้นหาเหตุà¸�ารณ์เฉพาะที่ผ่านมา * à¸�ราฟขนาดใหà¸�่สำหรับà¹�สดงà¹�นวโน้ม (เช่น จำนวน request ต่อนาที) * à¸�ารà¹�จ้งเตือนà¹�บบà¹�อคทีฟตามà¸�ารวิเคราะห์พฤติà¸�รรมที่ผู้ใช้ระบุ (เช่น à¸�ารà¹�จ้งเตือนเมื่อจำนวน error ต่อนาทีเà¸�ินเà¸�ณฑ์ที่à¸�ำหนด) content/zh_cn/disposability.md0000644000175000056700000000470015226251677015275 0ustar0000000000000000## IX. 易处ç�† ### 快速å�¯åŠ¨å’Œä¼˜é›…ç»ˆæ­¢å�¯æœ€å¤§åŒ–å�¥å£®æ€§ **12-Factor 应用的 [进程](./processes) 是 *易处ç�†ï¼ˆdisposable)*的,æ„�æ€�是说它们å�¯ä»¥çž¬é—´å¼€å�¯æˆ–å�œæ­¢ã€‚** 这有利于快速ã€�弹性的伸缩应用,迅速部署å�˜åŒ–çš„ [代ç �](./codebase) 或 [é…�ç½®](./config) ,稳å�¥çš„部署应用。 进程应当追求 **最å°�å�¯åŠ¨æ—¶é—´** 。 ç�†æƒ³çжæ€�下,进程从敲下命令到真正å�¯åŠ¨å¹¶ç­‰å¾…è¯·æ±‚çš„æ—¶é—´åº”è¯¥å�ªéœ€å¾ˆçŸ­çš„æ—¶é—´ã€‚æ›´å°‘çš„å�¯åŠ¨æ—¶é—´æ��供了更æ•�æ�·çš„ [å�‘布](./build-release-run) 以å�Šæ‰©å±•过程,此外还增加了å�¥å£®æ€§ï¼Œå› ä¸ºè¿›ç¨‹ç®¡ç�†å™¨å�¯ä»¥åœ¨æŽˆæ�ƒæƒ…形下容易的将进程æ�¬åˆ°æ–°çš„物ç�†æœºå™¨ä¸Šã€‚ 进程 **一旦接收 [终止信å�·ï¼ˆ`SIGTERM`)](http://en.wikipedia.org/wiki/SIGTERM) 就会优雅的终止** 。就网络进程而言,优雅终止是指å�œæ­¢ç›‘å�¬æœ�务的端å�£ï¼Œå�³æ‹’ç»�所有新的请求,并继续执行当å‰�已接收的请求,然å�Žé€€å‡ºã€‚此类型的进程所éš�å�«çš„è¦�求是HTTP请求大多都很短(ä¸�会超过几秒钟),而在长时间轮询中,客户端在丢失连接å�Žåº”该马上å°�试é‡�连。 对于 worker 进程æ�¥è¯´ï¼Œä¼˜é›…终止是指将当å‰�任务退回队列。例如,[RabbitMQ](http://www.rabbitmq.com/) 中,worker å�¯ä»¥å�‘é€�一个[`NACK`](http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.nack)ä¿¡å�·ã€‚ [Beanstalkd](https://beanstalkd.github.io) 中,任务终止并退回队列会在worker断开时自动触å�‘。有é”�机制的系统诸如 [Delayed Job](https://github.com/collectiveidea/delayed_job#readme) 则需è¦�确定释放了系统资æº�。此类型的进程所éš�å�«çš„è¦�求是,任务都应该 [å�¯é‡�å¤�执行](http://en.wikipedia.org/wiki/Reentrant_%28subroutine%29) , 这主è¦�由将结果包装进事务或是使é‡�å¤�æ“�作 [幂等](http://en.wikipedia.org/wiki/Idempotence) æ�¥å®žçŽ°ã€‚ 进程还应当**在é�¢å¯¹çª�然死亡时ä¿�æŒ�å�¥å£®**,例如底层硬件故障。虽然这ç§�情况比起优雅终止æ�¥è¯´å°‘之å�ˆå°‘,但终究有å�¯èƒ½å�‘生。一ç§�推è��的方å¼�是使用一个å�¥å£®çš„å�Žç«¯é˜Ÿåˆ—,例如 [Beanstalkd](https://beanstalkd.github.io) ,它å�¯ä»¥åœ¨å®¢æˆ·ç«¯æ–­å¼€æˆ–è¶…æ—¶å�Žè‡ªåŠ¨é€€å›žä»»åŠ¡ã€‚æ— è®ºå¦‚ä½•ï¼Œ12-Factor 应用都应该å�¯ä»¥è®¾è®¡èƒ½å¤Ÿåº”对æ„�外的ã€�ä¸�优雅的终结。[Crash-only design](http://lwn.net/Articles/191059/) 将这ç§�概念转化为 [å�ˆä¹Žé€»è¾‘çš„ç�†è®º](http://couchdb.apache.org/docs/overview.html)。 content/it/who.md0000644000175000056700000000032715226251677012527 0ustar0000000000000000A chi è destinato questo documento? ============================== A ogni sviluppatore che costruisca applicazioni SaaS (Software As a Service), e a ogni ops che effettui il deploy e gestisca queste applicazioni. content/ko/config.md0000644000175000056700000000716315226251677013201 0ustar0000000000000000## III. 설정 ### 환경(environment)ì—� 저장ë�œ 설정 애플리케ì�´ì…˜ì�˜ *설정*ì�€ [ë°°í�¬](./codebase) (스테ì�´ì§•, 프로ë�•ì…˜, 개발 환경 등) 마다 달ë�¼ì§ˆ 수 있는 모든 것들입니다. 설정ì—�는 다ì�Œì�´ í�¬í•¨ë�©ë‹ˆë‹¤. * ë�°ì�´í„°ë² ì�´ìФ, memcached 등 [백엔드 서비스](./backing-services)들ì�˜ 리소스 핸들 * Amazon S3 ì�´ë‚˜ 트위터 등ì�˜ 외부 서비스 ì�¸ì¦� ì •ë³´ * ë°°í�¬ë�œ 호스트ì�˜ 정규화ë�œ 호스트 ì�´ë¦„(canonical hostname)처럼 ê°� ë°°í�¬ë§ˆë‹¤ 달ë�¼ì§€ëŠ” ê°’ 애플리케ì�´ì…˜ì�€ 종종 설정ì�„ ìƒ�수로 코드ì—� 저장합니다. ì�´ê²ƒì�€ Twelve-Factor를 위반하며, Twelve-Factor는 **설정ì�„ 코드ì—�서 엄격하게 분리하는 것**ì�„ 요구합니다. 설정ì�€ 배치마다 í�¬ê²Œ 다르지만, 코드는 그렇지 않습니다. 애플리케ì�´ì…˜ì�˜ 모든 설정ì�´ ì •ìƒ�ì �으로 코드 바깥으로 분리ë�˜ì–´ 있는지 확ì�¸í•  수 있는 간단한 테스트는 어떠한 ì�¸ì¦�ì •ë³´ë�„ 유출시키지 않고 코드베ì�´ìŠ¤ê°€ 지금 당장 오픈 소스가 ë�  수 있는지 확ì�¸í•˜ëŠ” 것입니다. ì�´ "설정"ì�˜ ì •ì�˜ëŠ” 애플리케ì�´ì…˜ ë‚´ë¶€ 설정ì�„ *í�¬í•¨í•˜ì§€ 않는다는 ì �*ì—� 유ì�˜í•´ì•¼ 합니다. Railsì�˜ `config/routes.rb`ì�´ë‚˜ [Spring](http://spring.io/)ì�˜ ["어떻게 코드 모듈ì�´ ì—°ê²°ë�˜ëŠ” ê°€](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html)ê³¼ ê°™ì�€ 설정들ì�€ 배치 사ì�´ì—�서 변하지 않기 때문ì—� 코드ì�˜ ë‚´ë¶€ì—� 있는 것ì�´ 가장 좋습니다. 설정ì—� 대한 ë˜� 다른 접근방ì‹�ì�€ Railsì�˜ `config/database.yaml`처럼 버전 관리 시스템ì—� 등ë¡�ë�˜ì§€ 않ì�€ 설정 파ì�¼ì�„ ì�´ìš©í•˜ëŠ” 것입니다. ì�´ 방법ì�€ 코드 저장소ì—� 등ë¡�ë�œ ìƒ�수를 사용하는 것ì—� 비하면 매우 í�° 발전ì�´ì§€ë§Œ, 설정 파ì�¼ì�´ 여러 위치ì—� 여러 í�¬ë§·ìœ¼ë¡œ í��어지고 모든 설정ì�„ 한 ê³³ì—�서 확ì�¸í•˜ê³  관리하기 어렵게 만드는 경향ì�´ 있습니다. 게다가, ì�´ëŸ¬í•œ 형ì‹�들ì�€ 언어와 프레임워í�¬ì�„ ë”°ë�¼ê°€ëŠ” 경향ì�´ 있습니다. **Twelve-Factor Appì�€ 설정ì�„ *환경 변수*** (envvars나 envë�¼ê³ ë�„ 불림)ì—� 저장합니다. 환경 변수는 코드 변경 ì—†ì�´ 쉽게 ë°°í�¬ 때마다 쉽게 변경할 수 있습니다. 설정 파ì�¼ê³¼ 달리, 잘못해서 코드 저장소ì—� 올ë�¼ê°ˆ 가능성ë�„ 낮습니다. ë˜�한, 커스텀 설정 파ì�¼ì�´ë‚˜ Java System Property와 ê°™ì�€ 다른 설정 매커니즘과 달리 언어나 OSì—� ì�˜ì¡´í•˜ì§€ 않는 표준입니다. 설정 관리ì�˜ 다른 측면ì�€ 그룹핑입니다. 종종 애플리케ì�´ì…˜ì�€ 설정ì�„ 명명ë�œ 그룹("environments"ë�¼ê³ ë�„ 함)으로 구성하기ë�„ 합니다. 해당 그룹ì�€ Railsì�˜ 'development', 'test', 'production' environments처럼, ë°°í�¬ì�˜ ì�´ë¦„ì�„ 따서 명명ë�©ë‹ˆë‹¤. ì�´ 방법ì�€ ê¹”ë�”하게 확장하기 어렵습니다. ì�‘ìš© 프로그램ì�˜ ë°°í�¬ê°€ ì¦�가함ì—� ë”°ë�¼, 'staging'ì�´ë�¼ë�˜ê°€ 'qa'ê°™ì�€ 새로운 그룹ì�˜ ì�´ë¦„ì�´ 필요하게 ë�©ë‹ˆë‹¤. 프로ì �트가 성장함ì—� ë”°ë�¼, 개발ìž�ì�€ ìž�기 ìž�ì‹ ì�˜ 그룹를 추가하게 ë�©ë‹ˆë‹¤. ê²°ê³¼ì �으로 설정ì�´ ê°� 그룹ì�˜ 조합으로 í�­ë°œí•˜ê²Œ ë�˜ê³ , 애플리케ì�´ì…˜ì�˜ ë°°í�¬ë¥¼ 불안정하게 만듭니다. Twelve-Factor Appì—�서 환경 변수는 매우 ì •êµ�한 관리ì�´ë©°, ê°�ê°�ì�˜ 환경변수는 서로 ì§�êµ�합니다. 환경 변수는 "environments"로 절대 그룹으로 묶ì�´ì§€ 않지만, 대신 ê°� ë°°í�¬ë§ˆë‹¤ ë�…립ì �으로 관리ë�©ë‹ˆë‹¤. ì�´ 모ë�¸ì�€ 애플리케ì�´ì…˜ì�˜ 수명주기를 거치는 ë�™ì•ˆ ë�” ë§Žì�€ ë°°í�¬ë¡œ ì›�활하게 확장해 나갈 수 있습니다. content/ja/background.md0000644000175000056700000000321615226251677014027 0ustar0000000000000000背景 ========== ã�“ã�®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã�¸ã�®å¯„稿者ã�¯ã€�何百もã�®ã‚¢ãƒ—リケーションã�®é–‹ç™ºã�¨ãƒ‡ãƒ—ロイã�«ç›´æŽ¥é–¢ã‚�りã€�[Heroku](http://www.heroku.com/)プラットフォーム上ã�§ã�®ä»•事を通ã�—ã�¦ã€�何百何å�ƒã‚‚ã�®ã‚¢ãƒ—リケーションã�®é–‹ç™ºãƒ»é�‹ç”¨ãƒ»ã‚¹ã‚±ãƒ¼ãƒ«ã�«é–“接的ã�«ç«‹ã�¡ä¼šã�£ã�Ÿã€‚ ã�“ã�®ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆã�¯ã€�多種多様ã�ªSaaSアプリケーション開発ç�¾å ´ã�§ã�®ç§�ã�Ÿã�¡ã�®çµŒé¨“ã�¨è¦³å¯Ÿã‚’ã�™ã�¹ã�¦ã�¾ã�¨ã‚�ã�Ÿã‚‚ã�®ã�§ã�‚る。ã�“れã�¯ã€�アプリケーション開発ã�«ã�Šã�‘ã‚‹ç�†æƒ³çš„ã�ªãƒ—ラクティスを見出ã�™ã�Ÿã‚�ã�®ä¸‰è§’測é‡�ã�§ã�‚る。特ã�«ã€�アプリケーションã�Œæ™‚é–“ã�¨å…±ã�«æœ‰æ©Ÿçš„ã�«æˆ�é•·ã�™ã‚‹åЛ学ã€�アプリケーションã�®ã‚³ãƒ¼ãƒ‰ãƒ™ãƒ¼ã‚¹ã�«å�–り組む開発者間ã�®ã‚³ãƒ©ãƒœãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã�®åЛ学ã€�ã��ã�—ã�¦[ソフトウェアè…�æ•—ã�«ã‚ˆã‚‹ã‚³ã‚¹ãƒˆã�®å›žé�¿](http://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts/)ã�«æ³¨ç›®ã�—ã�¦ã�„る。 ç§�ã�Ÿã�¡ã�®å‹•機ã�¯ã€�ç§�ã�Ÿã�¡ã�Œãƒ¢ãƒ€ãƒ³ã�ªã‚¢ãƒ—リケーション開発ã�§è¦‹ã�¦ã��ã�Ÿã�‚る種ã�®ã‚·ã‚¹ãƒ†ãƒ çš„ã�ªå•�題ã�¸ã�®é–¢å¿ƒã‚’高ã‚�ã‚‹ã�“ã�¨ã€�ã�“ã�®å•�題を議論ã�™ã‚‹ã�Ÿã‚�ã�®å…±é€šã�®èªžå½™ã‚’æ��ä¾›ã�™ã‚‹ã�“ã�¨ã€�ã��ã�—ã�¦ã�“ã�®å•�題ã�«å¯¾ã�™ã‚‹åºƒã�„概念的ã�ªè§£æ±ºç­–ã�¨å°‚門用語をæ��ä¾›ã�™ã‚‹ã�“ã�¨ã�§ã�‚る。フォーマットã�¯Martin Fowlerã�®æ›¸ç±�ã€�*[Patterns of Enterprise Application Architecture](http://books.google.com/books/about/Patterns_of_enterprise_application_archi.html?id=FyWZt5DdvFkC)* ã�Šã‚ˆã�³ *[Refactoring](http://books.google.com/books/about/Refactoring.html?id=1MsETFPD3I0C)* ã�«ç�€æƒ³ã‚’å¾—ã�¦ã�„る。 content/ru/who.md0000644000175000056700000000047615226251677012546 0ustar0000000000000000Кому Ñ�ледует читать Ñ�тот документ? ============================== Разработчикам, которые Ñ�оздают SaaS-приложениÑ�. Ops инженерам, выполнÑ�ющим развёртывание и управление такими приложениÑ�ми. content/uk/processes.md0000644000175000056700000001071315226251677013743 0ustar0000000000000000## VI. ПроцеÑ�и ### ЗапуÑ�кайте заÑ�тоÑ�унок Ñ�к один або декілька процеÑ�ів без збереженнÑ� внутрішньго Ñ�тану (stateless) ЗаÑ�тоÑ�унок запуÑ�каєтьÑ�Ñ� в Ñ�ередовищі виконаннÑ� у виглÑ�ді одного або декількох *процеÑ�ів*. У найпроÑ�тішому випадку код Ñ” окремим Ñ�криптом, Ñ�ередовище виконаннÑ� — ноутбук розробника зі вÑ�тановленим Ñ�ередовищем виконаннÑ� мови програмуваннÑ�, а процеÑ� запуÑ�каєтьÑ�Ñ� за допомогою командного Ñ€Ñ�дка (наприклад, `python my_script.py`). Ð’ іншому випадку, це може бути production-розгортаннÑ� Ñ�кладного заÑ�тоÑ�унку, Ñ�ке може викориÑ�товувати багато [типів процеÑ�ів, кожен з Ñ�ких запущений у необхідній кількоÑ�ті екземплÑ�рів](./concurrency). **ПроцеÑ�и заÑ�тоÑ�унку дванадцÑ�ти факторів не зберігають внутрішній Ñ�тан (stateless) Ñ– [не розділÑ�ють реÑ�урÑ�и](http://en.wikipedia.org/wiki/Shared_nothing_architecture).** Будь-Ñ�кі дані, що підлÑ�гають збереженню, мають зберігатиÑ�Ñ� в [Ñ�торонній Ñ�лужбі](./backing-services) зі збереженнÑ�м внутрішнього Ñ�тану (stateful) (Ñ�к правило, в базі даних). Пам'Ñ�ть та файлова Ñ�иÑ�тема процеÑ�у можуть бути викориÑ�тані Ñ�к короткоÑ�троковий кеш. Ð�априклад, завантаженнÑ�, обробка Ñ– збереженнÑ� великого файлу в базі даних. ЗаÑ�тоÑ�унок дванадцÑ�ти факторів ніколи не припуÑ�кає, що щоÑ�ÑŒ, закешоване в пам'Ñ�ті або на диÑ�ку, буде доÑ�тупне при наÑ�тупному запиті — за наÑ�вноÑ�ті багатьох запущених процеÑ�ів різних типів Ñ” велика ймовірніÑ�ть, що наÑ�тупний запит буде оброблений іншим процеÑ�ом. Ð�авіть при роботі тільки одного процеÑ�у перезапуÑ�к (викликаний розгортаннÑ�м, змінами конфігурації або переміщеннÑ�м процеÑ�у в інше фізичне міÑ�це розташуваннÑ� Ñ�ередовищем виконаннÑ�), Ñ�к правило, призведе до знищеннÑ� вÑ�Ñ–Ñ… локальних (у пам'Ñ�ті Ñ– файловій Ñ�иÑ�темі) Ñ�танів. Пакувальники реÑ�урÑ�ів (наприклад, [Jammit](http://documentcloud.github.com/jammit/) або [django-compressor](http://django-compressor.readthedocs.org/)) викориÑ�товують файлову Ñ�иÑ�тему Ñ�к кеш длÑ� Ñ�компільованих реÑ�урÑ�ів. ЗаÑ�тоÑ�унок дванадцÑ�ти факторів надає перевагу здійÑ�ненню такої компілÑ�ції під чаÑ� [етапу збірки](./build-release-run), наприклад, Ñ�к в [Rails asset pipeline](http://guides.rubyonrails.org/asset_pipeline.html), а не під чаÑ� виконаннÑ�. ДеÑ�кі веб-Ñ�иÑ�теми покладаютьÑ�Ñ� на ["липкі Ñ�еÑ�Ñ–Ñ—"](http://en.wikipedia.org/wiki/Load_balancing_%28computing%29#Persistence) — тобто кешують дані Ñ�еÑ�Ñ–Ñ— кориÑ�тувача в пам'Ñ�ті процеÑ�у заÑ�тоÑ�унку Ñ– очікують, що наÑ�тупні запити від того ж Ñ�амого кориÑ�тувача будуть Ñ�прÑ�мовані до того ж Ñ�амого процеÑ�у. Липкі Ñ�еÑ�Ñ–Ñ— Ñ” порушеннÑ�м дванадцÑ�ти факторів Ñ– Ñ—Ñ… ніколи не Ñ�лід викориÑ�товувати та покладатиÑ�Ñ� на них. Дані Ñ�еÑ�Ñ–Ñ— кориÑ�тувача Ñ” хорошим кандидатом длÑ� Ñ�ховища даних, Ñ�ке надає функцію обмеженнÑ� терміну зберіганнÑ�, наприклад, [Memcached](http://memcached.org/) або [Redis](http://redis.io/).locales/tr.yml0000644000175000056700000000033115226251677012107 0ustar0000000000000000tr: # Name of language listed in locales menu language: Turkish (tr) # A text to make known that the article is a translation not an original. # Empty for English, original. translation: "Türkçe çeviri" content/ja/admin-processes.md0000644000175000056700000000576115226251677015013 0ustar0000000000000000## XII. 管ç�†ãƒ—ロセス ### 管ç�†ã‚¿ã‚¹ã‚¯ã‚’1回é™�りã�®ãƒ—ロセスã�¨ã�—ã�¦å®Ÿè¡Œã�™ã‚‹ [プロセスフォーメーション](./concurrency)ã�¯ã€�アプリケーションã�Œå®Ÿè¡Œã�•れã�Ÿã�¨ã��ã�«ã‚¢ãƒ—リケーションã�®é€šå¸¸ã�®å½¹å‰²ï¼ˆWebリクエストã�®å‡¦ç�†ã�ªã�©ï¼‰ã�«ä½¿ã‚�れるプロセス群ã�§ã�‚る。ã��れã�¨ã�¯åˆ¥ã�«ã€�開発者ã�¯ã�—ã�°ã�—ã�°ã‚¢ãƒ—リケーションã�®ã�Ÿã‚�ã�«1回é™�りã�®ç®¡ç�†ãƒ»ãƒ¡ãƒ³ãƒ†ãƒŠãƒ³ã‚¹ç”¨ã�®ã‚¿ã‚¹ã‚¯ã‚’実行ã�—ã�Ÿã��ã�ªã‚‹ã€‚例ã�ˆã�°ï¼š * データベースã�®ãƒžã‚¤ã‚°ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã‚’実行ã�™ã‚‹ã€‚(例:Djangoã�«ã�Šã�‘ã‚‹ `manage.py migrate` ã‚„Railsã�«ã�Šã�‘ã‚‹ `rake db:migrate`) * ä»»æ„�ã�®ã‚³ãƒ¼ãƒ‰ã‚’実行ã�—ã�Ÿã‚Šã€�生ã�®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã�«å¯¾ã�—ã�¦ã‚¢ãƒ—リケーションã�®ãƒ¢ãƒ‡ãƒ«ã‚’調査ã�—ã�Ÿã‚Šã�™ã‚‹ã�Ÿã‚�ã�«ã€�コンソール([REPL](http://en.wikipedia.org/wiki/Read-eval-print_loop)シェルã�¨ã‚‚言ã‚�れる)を実行ã�™ã‚‹ã€‚多ã��ã�®è¨€èªžã�§ã�¯ã‚¤ãƒ³ã‚¿ãƒ—リタを引数ã�ªã�—ã�§å®Ÿè¡Œã�™ã‚‹ï¼ˆä¾‹ï¼š`python` ã‚„ `perl`)ã�“ã�¨ã�§REPLを利用ã�§ã��ã‚‹ã�Œã€�別ã�®ã‚³ãƒžãƒ³ãƒ‰ã‚’用æ„�ã�—ã�¦ã�„ã‚‹å ´å�ˆã‚‚ã�‚る(例:Rubyã�§ã�® `irb` ã‚„ Railsã�§ã�® `rails console`)。 * アプリケーションã�®ãƒªãƒ�ジトリã�«ã‚³ãƒŸãƒƒãƒˆã�•れã�Ÿ1回é™�りã�®ã‚¹ã‚¯ãƒªãƒ—トを実行ã�™ã‚‹ï¼ˆä¾‹ï¼š`php scripts/fix_bad_records.php`)。 1回é™�りã�®ç®¡ç�†ãƒ—ロセスã�¯ã€�アプリケーションã�®é€šå¸¸ã�®[長時間実行ã�•れるプロセス](./processes)ã�¨å…¨ã��å�Œã�˜ç’°å¢ƒã�§å®Ÿè¡Œã�•れるã�¹ã��ã�§ã�‚る。ã�“れらã�®ãƒ—ロセスã�¯ã€�ã�‚ã‚‹[リリース](./build-release-run)ã�«å¯¾ã�—ã�¦å®Ÿè¡Œã�•れã€�ã��ã�®ãƒªãƒªãƒ¼ã‚¹ã�«å¯¾ã�—ã�¦å®Ÿè¡Œã�•れるã�™ã�¹ã�¦ã�®ãƒ—ロセスã�¨å�Œã�˜[コードベース](./codebase)ã�¨[設定](./config)を使ã�†ã€‚管ç�†ç”¨ã�®ã‚³ãƒ¼ãƒ‰ã�¯ã€�å�ŒæœŸã�®å•�題をé�¿ã�‘ã‚‹ã�Ÿã‚�ã�«ã‚¢ãƒ—リケーションコードã�¨ä¸€ç·’ã�«ãƒ‡ãƒ—ロイã�•れるã�¹ã��ã�§ã�‚る。 å�Œã�˜[ä¾�存関係分離](./dependencies)技術をã�™ã�¹ã�¦ã�®ãƒ—ロセスタイプã�«åˆ©ç”¨ã�™ã‚‹ã�¹ã��ã�§ã�‚る。例ã�ˆã�°ã€�ã‚‚ã�—Rubyã�®Webプロセスã�Œã‚³ãƒžãƒ³ãƒ‰ `bundle exec thin start` を使ã�†ã�®ã�§ã�‚れã�°ã€�データベースã�®ãƒžã‚¤ã‚°ãƒ¬ãƒ¼ã‚·ãƒ§ãƒ³ã�«ã�¯ `bundle exec rake db:migrate` を使ã�†ã�¹ã��ã�§ã�‚る。å�Œæ§˜ã�«ã€�Virtualenvを使ã�£ã�¦ã�„ã‚‹Pythonプログラムã�¯ã€�仮想環境内ã�® `bin/python` ã‚’Tornado Webサーãƒ�ーã�¨ã�™ã�¹ã�¦ã�® `manage.py` 管ç�†ãƒ—ロセスã�®ä¸¡æ–¹ã�§åˆ©ç”¨ã�™ã‚‹ã�¹ã��ã�§ã�‚る。 Twelve-Factorã�¯ç´°ã�‹ã�„設定ã�ªã�—ã�§ã�™ã��ã�«ä½¿ã�ˆã‚‹REPLシェルをæ��ä¾›ã�™ã‚‹è¨€èªžã‚’å¼·ã��好む。1回é™�りã�®ã‚¹ã‚¯ãƒªãƒ—トを実行ã�™ã‚‹ã�®ã�Œç°¡å�˜ã�«ã�ªã‚‹ã�‹ã‚‰ã�§ã�‚る。ローカルデプロイã�§ã�¯ã€�開発者ã�¯1回é™�りã�®ç®¡ç�†ãƒ—ロセスをã€�アプリケーションをãƒ�ェックアウトã�—ã�Ÿãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã�®ä¸­ã�§ã‚·ã‚§ãƒ«ã‚³ãƒžãƒ³ãƒ‰ã�§ç›´æŽ¥èµ·å‹•ã�™ã‚‹ã€‚本番デプロイã�§ã�¯ã€�開発者ã�¯SSHやデプロイã�®å®Ÿè¡Œç’°å¢ƒã�Œæ��ä¾›ã�™ã‚‹ä»–ã�®ãƒªãƒ¢ãƒ¼ãƒˆã‚³ãƒžãƒ³ãƒ‰å®Ÿè¡Œæ–¹æ³•を使ã�£ã�¦ã��ã�®ã‚ˆã�†ã�ªãƒ—ロセスを実行ã�™ã‚‹ã€‚ content/ja/logs.md0000644000175000056700000000625215226251677012657 0ustar0000000000000000## XI. ログ ### ログをイベントストリームã�¨ã�—ã�¦æ‰±ã�† *ログ* ã�¯å®Ÿè¡Œä¸­ã�®ã‚¢ãƒ—リケーションã�®æŒ™å‹•ã‚’å�¯è¦–化ã�™ã‚‹ã€‚サーãƒ�ーベースã�®ç’°å¢ƒã�§ã�¯ã€�ログã�¯ä¸€èˆ¬çš„ã�«ãƒ‡ã‚£ã‚¹ã‚¯ä¸Šã�®ãƒ•ァイル(“ログファイルâ€�)ã�«æ›¸ã��è¾¼ã�¾ã‚Œã‚‹ã€‚ã�—ã�‹ã�—ã�“れã�¯å‡ºåŠ›ãƒ•ã‚©ãƒ¼ãƒžãƒƒãƒˆã�®ä¸€ã�¤ã�«é�Žã�Žã�ªã�„。 ログã�¯ã€�ã�™ã�¹ã�¦ã�®å®Ÿè¡Œä¸­ã�®ãƒ—ロセスã�¨ãƒ�ックエンドサービスã�®å‡ºåŠ›ã‚¹ãƒˆãƒªãƒ¼ãƒ ã�‹ã‚‰å�Žé›†ã�•れã�Ÿã‚¤ãƒ™ãƒ³ãƒˆã�Œã€�集約ã�•れã�¦æ™‚刻順ã�«ä¸¦ã�¹ã‚‰ã‚Œã�Ÿ[ストリーム](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/)ã�§ã�‚る。生ã�®çŠ¶æ…‹ã�®ãƒ­ã‚°ã�¯ã€�通常1行ã�Œ1ã�¤ã�®ã‚¤ãƒ™ãƒ³ãƒˆã‚’表ã�™ãƒ†ã‚­ã‚¹ãƒˆãƒ•ォーマットã�§ã�‚る(例外ã�®ãƒ�ックトレースã�¯è¤‡æ•°è¡Œã�«æ¸¡ã‚‹å ´å�ˆã‚‚ã�‚ã‚‹ã�Œï¼‰ã€‚ログã�«ã�¯å›ºå®šã�®å§‹ã�¾ã‚Šã�¨çµ‚ã‚�りã�¯ã�ªã��ã€�アプリケーションã�Œç¨¼å‹•ã�—ã�¦ã�„ã‚‹é™�りæµ�れ続ã�‘る。 **Twelve-Factor Appã�¯ã‚¢ãƒ—リケーションã�®å‡ºåŠ›ã‚¹ãƒˆãƒªãƒ¼ãƒ ã�®é€�り先やストレージã�«ã�¤ã�„ã�¦ä¸€åˆ‡é–¢çŸ¥ã�—ã�ªã�„。** アプリケーションã�¯ãƒ­ã‚°ãƒ•ァイルã�«æ›¸ã��込んã� ã‚Šç®¡ç�†ã�—よã�†ã�¨ã�™ã‚‹ã�¹ã��ã�§ã�¯ã�ªã�„。代ã‚�りã�«ã€�ã��れã�žã‚Œã�®å®Ÿè¡Œä¸­ã�®ãƒ—ロセスã�¯ã‚¤ãƒ™ãƒ³ãƒˆã‚¹ãƒˆãƒªãƒ¼ãƒ ã‚’`stdout`(標準出力)ã�«ãƒ�ッファリングã�›ã�šã�«æ›¸ã��ã� ã�™ã€‚ローカルã�§ã�®é–‹ç™ºä¸­ã€�開発者ã�¯ã�“ã�®ã‚¹ãƒˆãƒªãƒ¼ãƒ ã‚’ターミナルã�®ãƒ•ォアグラウンドã�§è¦‹ã‚‹ã�“ã�¨ã�§ã€�アプリケーションã�®æŒ™å‹•を観察ã�™ã‚‹ã€‚ ステージングや本番ã�®ãƒ‡ãƒ—ロイã�§ã�¯ã€�ã��れã�žã‚Œã�®ãƒ—ロセスã�®ã‚¹ãƒˆãƒªãƒ¼ãƒ ã�¯å®Ÿè¡Œç’°å¢ƒã�«æ�•らã�ˆã‚‰ã‚Œã€�アプリケーションã�‹ã‚‰ã�®ä»–ã�®ã�™ã�¹ã�¦ã�®ã‚¹ãƒˆãƒªãƒ¼ãƒ ã�¨ä¸€ç·’ã�«ä¸¦ã�¹ã‚‰ã‚Œã€�表示や長期アーカイブã�®ã�Ÿã‚�ã�«1ã�¤ã‚‚ã�—ã��ã�¯è¤‡æ•°ã�®æœ€çµ‚目的地ã�«é€�られる。ã�“れらã�®ä¿�å­˜ã�®ã�Ÿã‚�ã�®ç›®çš„地ã�¯ã€�アプリケーションã�‹ã‚‰ã�¯è¦‹ã‚‹ã�“ã�¨ã‚‚設定ã�™ã‚‹ã�“ã�¨ã‚‚ã�§ã��ã�šã€�代ã‚�りã�«å®Ÿè¡Œç’°å¢ƒã�«ã‚ˆã�£ã�¦å®Œå…¨ã�«ç®¡ç�†ã�•れる。[Logplex](https://github.com/heroku/logplex) ã‚„ [Fluentd](https://github.com/fluent/fluentd) ã�ªã�©ã�®ã‚ªãƒ¼ãƒ—ンソースã�®ãƒ­ã‚°ãƒ«ãƒ¼ã‚¿ãƒ¼ã�Œã�“ã�®ç›®çš„ã�«åˆ©ç”¨ã�§ã��る。 アプリケーションã�®ã‚¤ãƒ™ãƒ³ãƒˆã‚¹ãƒˆãƒªãƒ¼ãƒ ã�¯ã€�ファイルã�«é€�られã�Ÿã‚Šã€�ターミナルã�§tailを使ã�£ã�¦ãƒªã‚¢ãƒ«ã‚¿ã‚¤ãƒ ã�«è¦‹ã‚‰ã‚Œã�Ÿã‚Šã�™ã‚‹ã€‚最もé‡�è¦�ã�ªç”¨é€”ã�¨ã�—ã�¦ã€�ストリームã�¯ã€�[Splunk](http://www.splunk.com/)ã�ªã�©ã�®ãƒ­ã‚°ã‚¤ãƒ³ãƒ‡ãƒƒã‚¯ã‚¹ãƒ»è§£æž�システムやã€�[Hadoop/Hive](http://hive.apache.org/)ã�ªã�©ã�®æ±Žç”¨ãƒ‡ãƒ¼ã‚¿ã‚¦ã‚§ã‚¢ãƒ�ウスシステムã�«é€�られるã�“ã�¨ã‚‚ã�‚る。ã�“れらã�®ã‚·ã‚¹ãƒ†ãƒ ã�¯ã€�長期ã�«æ¸¡ã�£ã�¦ã‚¢ãƒ—リケーションã�®æŒ™å‹•を確èª�ã�™ã‚‹ã�Ÿã‚�ã�®å¤§ã��ã�ªåŠ›ã�¨æŸ”軟性をもã�Ÿã‚‰ã�—ã€�次ã�®ã‚ˆã�†ã�ªã�“ã�¨ã�Œã�§ã��るよã�†ã�«ã�ªã‚‹ã€‚ * é�ŽåŽ»ã�®ç‰¹å®šã�®ã‚¤ãƒ™ãƒ³ãƒˆã‚’見ã�¤ã�‘る。 * 大ã��ã�ªã‚¹ã‚±ãƒ¼ãƒ«ã�®å‚¾å�‘をグラフ化ã�™ã‚‹ã€‚(1分ã�‚ã�Ÿã‚Šã�®ãƒªã‚¯ã‚¨ã‚¹ãƒˆæ•°ã�ªã�©ï¼‰ * ユーザー定義ã�®ãƒ’ューリスティクスã�«åŸºã�¥ã�„ã�¦ç´ æ—©ã��アラートを出ã�™ã€‚(1分ã�‚ã�Ÿã‚Šã�®ã‚¨ãƒ©ãƒ¼æ•°ã�Œã�‚る閾値を超ã�ˆã�Ÿå ´å�ˆã�«ã‚¢ãƒ©ãƒ¼ãƒˆã‚’出ã�™ã�ªã�©ï¼‰ content/ko/who.md0000644000175000056700000000032315226251677012520 0ustar0000000000000000ì�´ 문서ì�˜ 대ìƒ� ============================== 서비스로 ë�™ìž‘하는 애플리케ì�´ì…˜ì�„ 개발하는 모든 개발ìž�. 그런 애플리케ì�´ì…˜ì�„ ë°°í�¬í•˜ê³  관리하는 ì�¸í”„ë�¼ 엔지니어. content/zh_cn/config.md0000644000175000056700000000541715226251677013671 0ustar0000000000000000## III. é…�ç½® ### 在环境中存储é…�ç½® 通常,应用的 *é…�ç½®* 在ä¸�å�Œ [部署](./codebase) (预å�‘布ã€�生产环境ã€�å¼€å�‘环境等等)间会有很大差异。这其中包括: * æ•°æ�®åº“,Memcached,以å�Šå…¶ä»– [å�Žç«¯æœ�务](./backing-services) çš„é…�ç½® * 第三方æœ�务的è¯�书,如 Amazon S3ã€�Twitter ç­‰ * æ¯�份部署特有的é…�置,如域å��ç­‰ 有些应用在代ç �中使用常é‡�ä¿�å­˜é…�置,这与 12-Factor 所è¦�求的**代ç �å’Œé…�置严格分离**显然大相径庭。é…�置文件在å�„部署间存在大幅差异,代ç �å�´å®Œå…¨ä¸€è‡´ã€‚ 判断一个应用是å�¦æ­£ç¡®åœ°å°†é…�置排除在代ç �之外,一个简å�•的方法是看该应用的基准代ç �是å�¦å�¯ä»¥ç«‹åˆ»å¼€æº�,而ä¸�用担心会暴露任何æ•�感的信æ�¯ã€‚ 需è¦�指出的是,这里定义的"é…�ç½®"å¹¶**ä¸�**包括应用的内部é…�置,比如 Rails çš„ `config/routes.rb`,或是使用 [Spring](http://spring.io/) æ—¶ [代ç �模å�—é—´çš„ä¾�赖注入关系](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html) 。这类é…�置在ä¸�å�Œéƒ¨ç½²é—´ä¸�存在差异,所以应该写入代ç �。 å�¦å¤–一个解决方法是使用é…�置文件,但ä¸�把它们纳入版本控制系统,就åƒ� Rails çš„ `config/database.yml` 。这相对于在代ç �中使用常é‡�å·²ç»�是长足进步,但ä»�然有缺点:总是会ä¸�å°�心将é…�置文件签入了代ç �库;é…�置文件的å�¯èƒ½ä¼šåˆ†æ•£åœ¨ä¸�å�Œçš„目录,并有ç�€ä¸�å�Œçš„æ ¼å¼�,这让找出一个地方æ�¥ç»Ÿä¸€ç®¡ç�†æ‰€æœ‰é…�ç½®å�˜çš„ä¸�太现实。更糟的是,这些格å¼�通常是语言或框架特定的。 **12-Factor推è��将应用的é…�置存储于 *环境å�˜é‡�* 中**( *env vars*, *env* )。环境å�˜é‡�å�¯ä»¥é�žå¸¸æ–¹ä¾¿åœ°åœ¨ä¸�å�Œçš„部署间å�šä¿®æ”¹ï¼Œå�´ä¸�动一行代ç �;与é…�置文件ä¸�å�Œï¼Œä¸�å°�心把它们签入代ç �库的概率微乎其微;与一些传统的解决é…�置问题的机制(比如 Java 的属性é…�置文件)相比,环境å�˜é‡�与语言和系统无关。 é…�置管ç�†çš„å�¦ä¸€ä¸ªæ–¹é�¢æ˜¯åˆ†ç»„。有时应用会将é…�置按照特定部署进行分组(或å�«å�šâ€œçŽ¯å¢ƒâ€�),例如Rails中的 `development`,`test`, å’Œ `production` 环境。这ç§�方法无法轻易扩展:更多部署æ„�味ç�€æ›´å¤šæ–°çš„环境,例如 `staging` 或 `qa` 。 éš�ç�€é¡¹ç›®çš„ä¸�断深入,开å�‘人员å�¯èƒ½è¿˜ä¼šæ·»åŠ ä»–ä»¬è‡ªå·±çš„çŽ¯å¢ƒï¼Œæ¯”å¦‚ `joes-staging` ,这将导致å�„ç§�é…�置组å�ˆçš„æ¿€å¢žï¼Œä»Žè€Œç»™ç®¡ç�†éƒ¨ç½²å¢žåŠ äº†å¾ˆå¤šä¸�确定因素。 12-Factor 应用中,环境å�˜é‡�的粒度è¦�足够å°�,且相对独立。它们永远也ä¸�会组å�ˆæˆ�一个所谓的“环境â€�,而是独立存在于æ¯�个部署之中。当应用程åº�ä¸�断扩展,需è¦�更多ç§�类的部署时,这ç§�é…�置管ç�†æ–¹å¼�能够å�šåˆ°å¹³æ»‘过渡。 locales/ko.yml0000644000175000056700000000032415226251677012075 0ustar0000000000000000ko: # Name of language listed in locales menu language: 한국어 (ko) # A text to make known that the article is a translation not an original. # Empty for English, original. translation: (한국어) content/de/config.md0000644000175000056700000000662315226251677013160 0ustar0000000000000000## III. Konfiguration ### Die Konfiguration in Umgebungsvariablen ablegen Die *Konfiguration* einer App ist alles, was sich wahrscheinlich zwischen den [Deploys](./codebase) ändern wird (Staging, Produktion, Entwicklungsumgebungen, usw.). Dies umfasst: * Resource-Handles für Datenbanken, Memcached und andere [unterstützende Dienste](./backing-services) * Credentials für externe Dienste wie Amazon S3 oder Twitter * Direkt vom Deploy abhängige Werte wie der kanonische Hostname für den Deploy Manchmal speichern Apps die Konfiguration als Konstanten im Code. Dies ist eine Verletzung der zwölf Faktoren. Sie fordern **strikte Trennung der Konfiguration vom Code**. Die Konfiguration ändert sich deutlich von Deploy zu Deploy, ganz im Gegensatz zu Code. Ein Lackmustest, ob eine App die Konfiguration vollständig ausgelagert hat, ist, wenn die Codebase jederzeit als Open Source veröffentlicht werden könnte, ohne Credentials preiszugeben. Es sei darauf hingewiesen, dass diese Definition von "Konfiguration" die interne Anwendungskonfiguration **nicht einschließt**, wie `config/routes.rb` in Rails oder wie Code-Module [mit Spring verdrahtet sind](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html). Diese Art von Konfiguration ändert sich nicht von Deploy zu Deploy und gehört daher zum Code. Als Konfiguration könnte man auch Dateien verwenden, die nicht ins Versionsmanagement eingecheckt sind wie `config/database.yml` in Rails. Dies ist eine deutliche Verbesserung gegenüber der Verwendung von Konstanten, die ins Versionsmanagement eingecheckt sind, hat aber Schwächen. Es ist relativ einfach, versehentlich eine Konfigurationsdatei ins Repo einzuchecken. Zusätzlich gibt es Tendenzen, Konfigurationsdateien an verschiedenen Orten und in verschiedenen Formaten zu streuen. Das macht es schwer die Konfiguration von einem Punkt aus zu managen. Desweiteren sind diese Formate oft sprach- oder plattformspezifisch. **Die Zwölf-Faktor-App speichert die Konfiguration in *Umgebungsvariablen*** (kurz auch *env vars* oder *env*). Umgebungsvariablen von Deploy zu Deploy zu ändern ist einfach; im Gegensatz zu Konfigurationsdateien ist es unwahrscheinlich, dass sie versehentlich ins Code Repository eingecheckt werden und im Gegensatz zu speziellen Konfigurationsdateien oder anderen Konfigurationsmechanismen wie den Java Properties sind sie Sprach- und Betriebssystemunabhängig. Ein anderer Aspekt des Konfigurationsmanagements ist die Gruppierung. Manchmal sammeln Apps die Konfiguration in benamten Gruppen (oft "Umgebungen" genannt), benannt nach bestimmten Deploys wie zum Beispiel die Umgebungen `development`, `test` und `production` in Rails. Diese Methode skaliert nicht sauber: Je mehr Deploys einer App es gibt, desto mehr Umgebungsnamen werden benötigt, wie zum Beispiel `staging` oder `qa`. Wenn das Projekt noch weiter wächst, könnten Entwickler ihre eigenen speziellen Umgebungen wie `joes-staging` hinzufügen. Am Ende explodiert die Konfiguration kombinatorisch und die Verwaltung der Deploys wird fehleranfällig. In einer Zwölf-Faktor-App sind Umgebungsvariablen granulare Stellschrauben und vollständig orthogonal zueinander. Sie werden nie als "Umgebungen" zusammengefasst, sondern können für jeden Deploy unabhängig verwaltet werden. Dieses Modell skaliert reibungslos aufwärts, wenn die App sich natürlicherweise über ihre Lebenszeit hinweg auf mehr Deploys ausdehnt. content/es/codebase.md0000644000175000056700000000432715226251677013476 0ustar0000000000000000## I. Código base (Codebase) ### Un código base sobre el que hacer el control de versiones y multiples despliegues Una aplicación "twelve-factor" se gestiona siempre con un sistema de control de versiones, como [Git](http://git-scm.com/), [Mercurial](https://www.mercurial-scm.org/), o [Subversion](http://subversion.apache.org/). A la copia de la base de datos de seguimiento de versiones se le conoce como un *repositorio de código*, a menudo abreviado como *repo de código* o simplemente *repo*. El *código base* es cualquier repositorio (en un sistema de control de versiones centralizado como Subversion), o cualquier conjunto de repositorios que comparten un commit raíz (en un sistema de control de versiones descentralizado como Git). ![El código base se usa en muchos despliegues](/images/codebase-deploys.png) Siempre hay una relación uno a uno entre el código base y la aplicación: * Si hay multiples códigos base, no es una aplicación -- es un sistema distribuido. Cada componente en un sistema distribuido es una aplicación, y cada uno, individualmente, puede cumplir los requisitos de una aplicación "twelve-factor". * Compartir código en varias aplicaciones se considera una violación de la metodología "twelve factor". La solución en este caso es separar el código compartido en librerías que pueden estar enlazadas mediante un [gestor de dependencias](./dependencies). El código base de la aplicación es único, sin embargo, puede haber tantos despliegues de la aplicación como sean necesarios. Un *despliegue* es una instancia de la aplicación que está en ejecución. Normalmente, se ejecuta en un entorno de producción, y uno o varios entornos de pruebas. Además, cada desarrollador tiene una instancia en su propio entorno de desarrollo, los cuales se consideran también como despliegues. El código base es el mismo en todos los despliegues, aunque pueden ser diferentes versiones en cada despliegue. Por ejemplo, un desarrollador tiene algunos commits sin desplegar en preproducción; preproducción tiene algunos commits que no están desplegados en producción. Pero todos ellos comparten el mismo código base, de este modo todos son identificables como diferentes despliegues de la misma aplicación. content/it/codebase.md0000644000175000056700000000371015226251677013476 0ustar0000000000000000## I. Codebase ### Una sola codebase sotto controllo di versione, tanti deploy Un'app conforme alla metodologia twelve-factor è sempre sotto un sistema di controllo di versione, sia essa [Git](http://git-scm.com/), [Mercurial](https://www.mercurial-scm.org/), o [Subversion](http://subversion.apache.org/). Una copia della codebase è detta *code repository*, oppure più in breve *code repo* o *repo*. Una *codebase* è quindi un singolo repository (in un sistema centralizzato come Subversion), oppure un set di repo che condividono una root commit (in un sistema di controllo decentralizzato come Git). ![Una codebase, N deployment](/images/codebase-deploys.png) C'è sempre una relazione uno-ad-uno tra codebase e applicazione: * Se ci sono più codebase, non si parla più di applicazione ma di sistema distribuito. Ogni componente in un sistema distribuito è un'applicazione, e ognuna di queste applicazioni può individualmente aderire alla metodologia twelve-factor. * Se più applicazioni condividono lo stesso codice si ha una violazione del twelve-factor. La soluzione è, ovviamente, quella di sistemare il codice in modo adeguato, in modo tale da essere incluso eventualmente dove necessario tramite un [dependency manager](./dependencies). Quindi: una sola codebase per applicazione, ma ci saranno comunque tanti deployment della stessa app. Per *deploy* si intende un'istanza dell'applicazione. Può essere il software in produzione, oppure una delle varie istanze in staging. Ancora, un deploy può essere la copia posseduta dal singolo sviluppatore nel suo ambiente locale. La codebase rimane comunque sempre la stessa su tutti i deployment, anche se potrebbero essere attive diverse versioni nello stesso istante. Si pensi per esempio a uno sviluppatore che possiede dei commit in più che non ha ancora mandato in staging. Nonostante questo, comunque, rimane la condivisione della stessa codebase, nonostante la possibilità di avere più deploy della stessa app. content/it/port-binding.md0000644000175000056700000000416515226251677014332 0ustar0000000000000000## VII. Binding delle Porte ### Esporta i servizi tramite binding delle porte Normalmente, le applicazioni web sono qualcosa di eseguito all'interno di un server web, che fa da contenitore. Per esempio, le applicazioni PHP possono venire eseguite come modulo all'interno di [Apache HTTPD](http://httpd.apache.org/), così come un'applicazione Java viene eseguita in [Tomcat](http://tomcat.apache.org/). **L'applicazione twelve-factor** è completamente self-contained (contenuta in se stessa) e non si affida a un altro servizio (come appunto un webserver) nell'ambiente di esecuzione. La web app **esporta HTTP come un servizio effettuando un binding specifico a una porta**, rimanendo in ascolto su tale porta per le richieste in entrata. In un ambiente di sviluppo locale, lo sviluppatore accede al servizio tramite un URL come `http://localhost:5000/`. In fase di deployment, invece, un layer di routing gestisce le richieste da un hostname pubblico alla specifica porta desiderata. Tale funzionalità viene, frequentemente, implementata tramite [dichiarazione delle opportune dipendenze](./dependencies), aggiungendo una libreria webserver all'applicazionecome [Tornado](http://www.tornadoweb.org/) per Python, [Thin](http://code.macournoyer.com/thin/) per Ruby, o [Jetty](http://www.eclipse.org/jetty/) per Java e altri linguaggi basati su JVM. L'evento, nella sua interezza, "ha luogo" nello spazio dell'utente, nel codice dell'applicazione. HTTP non è l'unico servizio che può essere esportato tramite port binding. In realtà quasi ogni tipo di software può essere eseguito tramite uno specifico binding tra processo e porta dedicata. Alcuni esempi includono [ejabberd](http://www.ejabberd.im/) (a tal proposito, leggere su [XMPP](http://xmpp.org/)), e [Redis](http://redis.io/) (a proposito del [protoccolo Redis](http://redis.io/topics/protocol)). Nota inoltre che usare il binding delle porte permette a un'applicazione di diventare il backing service di un'altra applicazione, tramite un URL dedicato o comunque come una risorsa la cui configurazione si può gestire tramite appositi file di [config](./config) dell'app consumer del servizio. content/th/processes.md0000644000175000056700000001053615226251677013742 0ustar0000000000000000## VI. Processes ### รันà¹�อพพลิเคชันเป็นหนึ่งหรือมาà¸�à¸�ว่าให้เป็น stateless processes App ทำงานในสภาพà¹�วดล้อมà¸�ารดำเนินงานด้วยหนึ่งหรือมาà¸�à¸�ว่า *processes* ในà¸�รณีที่ง่ายที่สุดคือ code คือ stand-alone script, สภาพà¹�วดล้อมà¸�ารดำเนินงานคือเครื่องคอมพิวเตอร์อง developer ที่ติดตั้ง language runtime à¹�ละวิธีà¸�ารคือเปิด app ด้วยคำสั่ง (ตัวอย่างเช่น `python my_script.py`) ในอีà¸�ด้านหนึ่ง app ที่ซับซ้อนที่ deploy บน production ใช้หลาย [process types, instantiated into zero or more running processes](./concurrency) **Twelve-factor processes เป็น stateless à¹�ละ [share-nothing](http://en.wikipedia.org/wiki/Shared_nothing_architecture).** ข้อมูลใดๆที่จำเป็นต้องเà¸�็บà¹�บบถาวรจำเป็นต้องเà¸�็บไว้ใน stateful [backing service](./backing-services) โดยปรà¸�ติจะเป็นà¸�านข้อมูล พื้นที่หน่วยความจำหรือระบบไฟล์ของ process สามารถใช้เป็นช่วงสั้นๆ ได้, single-transaction cache. ตัวอย่างเช่น, à¸�ารดาวน์โหลดไฟล์ขนาดใหà¸�่, ดำเนินงานà¸�ับไฟล์นั้น à¹�ละเà¸�็บผลลัพธ์ของà¸�ารดำเนินงานไว้ในà¸�านข้อมูล twelve-factor app ไม่เคยสมมติว่ามีอะไรà¹�คชในหน่วยความจำหรือบน disk จะพร้อมใช้งานใน request หรือ job ในอนาคต -- มีหลาย process ทำงานมีโอà¸�าสสูงมาà¸�ที่ในอนาคต request จะทำงานบน process ที่à¹�ตà¸�ต่างà¸�ัน à¹�ม้ว่าทำงาน process เดียว เมื่อมีà¸�าร restart (trigger โดย code deploy, config change หรือเปลี่ยนสภาพà¹�วดล้อมà¸�ารทำงาน) จะลบสภานะของ app ทั้งหมดอย่างสมบูรณ์ (เช่น หน่วยความจำ à¹�ละระบบไฟล์) Asset packagers อย่างเช่น [django-assetpackager](http://code.google.com/p/django-assetpackager/) ใช้ระบบไฟล์เป็นà¹�คชของà¸�าร compiled asset. Twelve-factor app ชอบที่จะทำ compiling เช่นนี้ในระหว่าง [ขั้นตอนà¸�าร build](/build-release-run) Asset packagers อย่างเช่น [Jammit](http://documentcloud.github.com/jammit/) à¹�ละ [Rails asset pipeline](http://ryanbigg.com/guides/asset_pipeline.html) สามารถตั้งค่าให้ pacakge asset ระหว่างขั้นตอนà¸�าร build ได้ บางระบบเว็บขึ้นอยู่à¸�ับ ["sticky sessions"](http://en.wikipedia.org/wiki/Load_balancing_%28computing%29#Persistence) -- นั้นคือ, ทำà¸�ารà¹�คชขอมูล user session ในหน่วยความจำของ app สำหรับดำเนินà¸�ารในอนาคตจาà¸�ผู้เยี่ยมชมเดียวà¸�ันที่เชื่อมโยงà¸�ับ process เดียวà¸�ัน, Sticky session เป็นà¸�ารละเมิด twelve-factor à¹�ละไม่ควรใช้หรือพึ่งพา, ข้อมูลสถานะ Session เป็นสิ่งที่เหมาะสมอย่างมาà¸�สำหรับที่เà¸�็บข้อมูลที่มีà¸�ารหมดเวลา (time-expireation) อย่างเช่น [Memcached](http://memcached.org/) หรือ [Redis](http://redis.io/) content/zh_cn/admin-processes.md0000644000175000056700000000352415226251677015515 0ustar0000000000000000## XII. 管ç�†è¿›ç¨‹ ### å�Žå�°ç®¡ç�†ä»»åŠ¡å½“ä½œä¸€æ¬¡æ€§è¿›ç¨‹è¿�行 [进程构æˆ�](./concurrency)(process formation)是指用æ�¥å¤„ç�†åº”用的常规业务(比如处ç�† web 请求)的一组进程。与此ä¸�å�Œï¼Œå¼€å�‘人员ç»�常希望执行一些管ç�†æˆ–维护应用的一次性任务,例如: * è¿�行数æ�®ç§»æ¤�(Django 中的 `manage.py migrate`, Rails 中的 `rake db:migrate`)。 * è¿�行一个控制å�°ï¼ˆä¹Ÿè¢«ç§°ä¸º [REPL](http://en.wikipedia.org/wiki/Read-eval-print_loop) shell),æ�¥æ‰§è¡Œä¸€äº›ä»£ç �或是针对线上数æ�®åº“å�šä¸€äº›æ£€æŸ¥ã€‚大多数语言都通过解释器æ��供了一个 REPL 工具(`python` 或 `perl`) ,或是其他命令(Ruby 使用 `irb`, Rails 使用 `rails console`)。 * è¿�行一些æ��交到代ç �仓库的一次性脚本。 一次性管ç�†è¿›ç¨‹åº”该和正常的 [常驻进程](./processes) 使用å�Œæ ·çš„环境。这些管ç�†è¿›ç¨‹å’Œä»»ä½•其他的进程一样使用相å�Œçš„ [代ç �](./codebase) å’Œ [é…�ç½®](./config) ,基于æŸ�个 [å�‘布版本](./build-release-run) è¿�行。å�Žå�°ç®¡ç�†ä»£ç �应该éš�其他应用程åº�代ç �一起å�‘布,从而é�¿å…�å�Œæ­¥é—®é¢˜ã€‚ 所有进程类型应该使用å�Œæ ·çš„ [ä¾�赖隔离](./dependencies) 技术。例如,如果Rubyçš„web进程使用了命令 `bundle exec thin start` ,那么数æ�®åº“ç§»æ¤�应使用 `bundle exec rake db:migrate` 。å�Œæ ·çš„,如果一个 Python 程åº�使用了 Virtualenv,则需è¦�在è¿�行 Tornado Web æœ�务器和任何 `manage.py` 管ç�†è¿›ç¨‹æ—¶å¼•å…¥ `bin/python` 。 12-factor 尤其é�’ç��那些æ��供了 REPL shell 的语言,因为那会让è¿�行一次性脚本å�˜å¾—简å�•。在本地部署中,开å�‘人员直接在命令行使用 shell 命令调用一次性管ç�†è¿›ç¨‹ã€‚在线上部署中,开å�‘人员ä¾�æ—§å�¯ä»¥ä½¿ç”¨ssh或是è¿�行环境æ��供的其他机制æ�¥è¿�行这样的进程。 locales/pl.yml0000644000175000056700000000033115226251677012075 0ustar0000000000000000pl: # Name of language listed in locales menu language: "Polski (pl)" # A text to make known that the article is a translation not an original. # Empty for English, original. translation: "- edycja polska" content/de/disposability.md0000644000175000056700000000553215226251677014570 0ustar0000000000000000## IX. Einweggebrauch ### Robuster mit schnellem Start und problemlosen Stopp **Die Prozesse einer Zwölf-Faktor-App können *weggeworfen* werden, sie können also schnell gestartet und gestoppt werden.** Dies erleichtert schnelles elastisches Skalieren, schnelles Deployment von [Code](./codebase) oder [Konfigurationsänderungen](./config) und macht Produktionsdeployments robuster. Prozesse sollten **möglichst geringe Startup-Zeiten** haben. Idealerweise braucht ein Prozess wenige Sekunden vom Startkommando bis der Prozess läuft und Requests oder Jobs entgegennehmen kann. Eine kurze Startup-Zeit gibt dem [Release-Prozess](./build-release-run) und der Skalierung mehr Agilität; sie hilft der Robustheit, weil ein Prozessmanager bei Bedarf einfacher Prozesse auf neue physikalische Maschinen verschieben kann. Prozesse **fahren ohne Schwierigkeiten herunter, wenn sie ein [SIGTERM-Signal](http://en.wikipedia.org/wiki/SIGTERM)** vom Prozessmanager bekommen. Für einen Web-Prozess kann ein problemloses Herunterfahren erreicht werden, indem er aufhört an seinem Service-Port zu lauschen (und damit alle neuen Requests ablehnt), die laufenden Requests zuende bearbeitet und sich dann beendet. Diesem Modell eigen ist, dass HTTP-Requests kurz sind (höchstens ein paar Sekunden) oder im Falle von Long-Polling, der Client sich nahtlos neu verbindet, wenn die Verbindung verloren geht. Für einen Worker-Prozess wird ein problemloser Stopp erreicht, indem er seinen laufenden Job an die Workqueue zurück gibt. Zum Beispiel kann bei [RabbitMQ](http://www.rabbitmq.com/) ein Worker einen [`NACK`](http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.nack); bei [Beanstalkd](https://beanstalkd.github.io) wird der Job automatisch an die Queue zurückgegeben, wenn ein Worker die Verbindung beendet. Lock-basierte Systeme wie [Delayed Job](https://github.com/collectiveidea/delayed_job#readme) sollten sicherstellen, dass ihr Lock im Job-Record freigegeben wird. Diesem Modell eigen ist, dass alle Jobs [reentrant](http://en.wikipedia.org/wiki/Reentrant_%28subroutine%29) sind, was üblicherweise erreicht wird indem man die Ergebnisse in eine Transaktion einpackt oder den Vorgang [idempotent](https://de.wikipedia.org/wiki/Idempotenz) gestaltet. Prozesse sollte auch **robust gegen plötzlichen Tod** sein - falls die zugrundeliegende Hardware versagt. Auch wenn dies viel seltener ist als ein reguläres Herunterfahren mit `SIGTERM`, so kommt es dennoch vor. Wir empfehlen ein robustes Queue-Backend wie Beanstalkd, das Jobs an die Queue zurückgibt falls Clients die Verbindung beenden oder nicht mehr antworten. Wie auch immer ist eine Zwölf-Faktor-App darauf ausgelegt mit unerwarteten, irregulären Stopps umgehen zu können. [Crash-only design](http://lwn.net/Articles/191059/) führt dieses Konzept zu seinem [logischen Schluss](http://docs.couchdb.org/en/latest/intro/overview.html). content/fr/toc.md0000644000175000056700000000247115226251677012514 0ustar0000000000000000Les 12 facteurs ================== ## [I. Base de code](./codebase) ### Une base de code suivie avec un système de contrôle de version, plusieurs déploiements ## [II. Dépendances](./dependencies) ### Déclarez explicitement et isolez les dépendances ## [III. Configuration](./config) ### Stockez la configuration dans l'environnement ## [IV. Services externes](./backing-services) ### Traitez les services externes comme des ressources attachées ## [V. Build, release, run](./build-release-run) ### Séparez strictement les étapes d'assemblage et d'exécution ## [VI. Processus](./processes) ### Exécutez l'application comme un ou plusieurs processus sans état ## [VII. Associations de ports](./port-binding) ### Exportez les services via des associations de ports ## [VIII. Concurrence](./concurrency) ### Grossissez à l'aide du modèle de processus ## [IX. Jetable](./disposability) ### Maximisez la robustesse avec des démarrages rapides et des arrêts gracieux ## [X. Parité dev/prod](./dev-prod-parity) ### Gardez le développement, la validation et la production aussi proches que possible ## [XI. Logs](./logs) ### Traitez les logs comme des flux d'évènements ## [XII. Processus d'administration](./admin-processes) ### Lancez les processus d'administration et de maintenance comme des one-off-processes content/ko/build-release-run.md0000644000175000056700000000560515226251677015252 0ustar0000000000000000## V. 빌드, 릴리즈, 실행 ### 철저하게 분리ë�œ 빌드와 실행 단계 [코드베ì�´ìФ](./codebase)는 3 단계를 ê±°ì³� (개발용ì�´ 아닌) ë°°í�¬ë¡œ 변환ë�©ë‹ˆë‹¤. * *빌드 단계*는 코드 저장소를 *빌드*ë�¼ëŠ” 실행 가능한 번들로 변환시키는 단계입니다. 빌드 단계ì—�서는 커밋ë�œ 코드 중 ë°°í�¬ 프로세스ì—�서 지정ë�œ 버전ì�„ 사용하며, [종ì†�성](./dependencies)ì�„ 가져와 ë°”ì�´ë„ˆë¦¬ì™€ ì—�셋들ì�„ 컴파ì�¼í•©ë‹ˆë‹¤. * *릴리즈 단계*ì—�서는 빌드 단계ì—�서 만들어진 빌드와 ë°°í�¬ì�˜ 현재 [설정](./config)ì�„ ê²°í•© 합니다. 완성ë�œ *릴리즈*는 빌드와 설정ì�„ 모ë‘� í�¬í•¨í•˜ë©° 실행 환경ì—�서 바로 실행ë�  수 있ë�„ë¡� 준비ë�©ë‹ˆë‹¤. * *실행 단계*(런타임ì�´ë�¼ê³ ë�„ 하는)ì—�서는 ì„ íƒ�ë�œ 릴리즈ì—� 대한 애플리케ì�´ì…˜ [프로세스](./processes)ì�˜ ì§‘í•©ì�„ 시작하여, 애플리케ì�´ì…˜ì�„ 실행 환경ì—�서 ë�Œì•„ê°€ë�„ë¡� 합니다. ![코드 ë² ì�´ìŠ¤ëŠ” 빌드가 ë�˜ê³ , 빌드는 설정과 ì¡°í•©ë�˜ì–´ 릴리즈가 ë�©ë‹ˆë‹¤.](/images/release.png) **Twelve-Factor Appì�€ 빌드, 릴리즈, 실행 단계를 엄격하게 서로 분리합니다.** 예를 들어, 실행 단계ì—�서 코드를 변경할 수는 없습니다. 변경ì�„ 실행 단계보다 앞ì—� 있는 빌드 단계로 전달할 수 있는 방법ì�´ 없기 때문입니다. ë°°í�¬ ë�„구는 ì�¼ë°˜ì �으로 릴리즈 관리 ë�„구를 제공합니다. 특히 주목할만한 ì �ì�€ ì�´ì „ 릴리즈로 ë�˜ë�Œë¦´ 수 있는 롤백 기능입니다. 예를 들어, [Capistrano](https://github.com/capistrano/capistrano/wiki)는 ë°°í�¬ 툴ì�€ 릴리즈를 `releases`ë�¼ëŠ” 하위 디렉토리ì—� 저장시키고, 현재 릴리즈는 현재 릴리즈 디렉토리로 심볼릭 ë§�í�¬ë¡œ 연결합니다. ì�´ 툴ì�˜ `rollback` 명령어는 ì�´ì „ 버전으로 쉽고 빠르게 ì�´ì „ 릴리즈로 롤백할 수 있ë�„ë¡� í•´ì¤�니다. 모든 릴리즈는 í•­ìƒ� 유니í�¬í•œ 릴리즈 ì•„ì�´ë””를 지녀야 합니다. 예를 들어, 릴리즈ì�˜ 타임 스템프(예: 2011-04-06-20:32:17)나 ì¦�가하는 번호(예: v100, v101)ê°€ 있습니다. 릴리즈는 추가만 ë�  수 있으며, 한번 만들어진 릴리즈는 변경ë�  수 없습니다. 모든 변경ì�€ 새로운 릴리즈를 만들어야 합니다. 빌드는 새로운 코드가 ë°°í�¬ ë�  때마다 개발ìž�ì—� ì�˜í•´ 시작ë�©ë‹ˆë‹¤. 반면, 실행 단계는 서버가 재부팅ë�˜ê±°ë‚˜ ì¶©ë�Œì�´ ë°œìƒ�한 프로세스가 프로세스 매니저ì—� ì�˜í•´ 재시작 ë�˜ì—ˆì�„ 때 ìž�ë�™ìœ¼ë¡œ 실행ë�  수 있습니다. ë”°ë�¼ì„œ 대ì�‘í•  수 있는 개발ìž�ê°€ 없는 한밤중ì—� 문제가 ë°œìƒ�하는 것ì�„ 방지하기 위해, 실행 단계는 최대한 변화가 ì �어야합니다. 빌드 단계는 좀 ë�” 복잡해져ë�„ 괜찮습니다. í•­ìƒ� ë°°í�¬ë¥¼ 진행하고 있는 개발ìž�ì�˜ 눈 앞ì—�서 ì—�러가 ë°œìƒ�하기 때문입니다. locales/es.yml0000644000175000056700000000037015226251677012074 0ustar0000000000000000es: # Name of language listed in locales menu language: Español (es) # A text to make known that the article is a translation not an original. # Empty for English, original. translation: (Traducción de la versión original en Inglés) public/images/process-types.png0000644000175000056700000005117415226251677015401 0ustar0000000000000000‰PNG  IHDR¤µ½Ù pHYs  šœ IDATxí� ¸Źþ Q!È.’x� 67ô  ¸Áˆ¯Ü•«DÉÕ+ˆñ½1¨Ñ%Æ�ˆT (Êâ/(KA4¯$EDA6AþïÛ§k¨é3s¦çÌÒ3Óo=Ï7UõUu-¿êéoºª§«ÞîÝ»�œˆ€ˆ€DM`¯¨ úE@D@D€d�tˆ€ˆ€”¤’5BD@D@I瀈€ˆ@Iˆ­AªW¯^‡’5BD@DÀ#[ƒ„Þß!£¤o�ˆ€”�X$¢f‚3!?,�¡PKD@D Þbi�0ä !C r" " %@ ®iˆÏþPÜ-Sã &ˆ€ˆ@ì ÄÎ ùëF'8#¯i;†‚" "�Ø$€ A0R{G5ªWD@D š@ Ò�Àà·BüŒ€NQ�"ˆ•Aò׋MÁxp �T" " E$+ƒ®Áé:‹úL+> .'" "�Ø$�hPÎ|œ�‚ˉ€ˆ€DD 6 |¹NÄõ¢tnHºéE@D@ O N)Ó:Ñ ¸‹êPxäªAD@D �X$}ˆ¯ ÊäÒ­1e:Né" " 9ˆ…A#ûª L¸†dÊ t�ˆ‹AŸ^%”²‰€ˆ@¾ T¼Aò×…ÜWeb¨i»L„”."  Pñ ̲50z•PN4)" ™ÄÁ É!�®W €(*" Å PÑ ÓuÜZ"Õ«‚2±Íôˆx¦ã•." "�%�Š6H`‘ít�ŧW YòE@D H*Ö áîˆ[J¤{UP&¼|•Ðù™2)]D@D *Ö Q¦We¢¨i»L„”." y$PÉ)WƒÂW Õeý)�ã¢D@D >*Ò Á�p+‰0¯ Ê4Òu]ƒÊT®ÒE@D@*Ò ¡�a_ÀQ#šë]V�¥HM€ ÿ•èÞC§†¤éØáÐ�tÒÞAø6'žÄÝVãÝ»woNR*"" "�wõp±Í{¡¥\ LÚ7Ûiã0èåĈ€@¥NÙE€RUŠ€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D od�ò†R‰€ˆ€äB@)z:VD@D oöÎ[I*H"&P¯^½CÑ„S! ­ qwk`ä¹Ý»wwêé�A*ý1R 3€!ªB–_@NÈ�5¶É`4�¿†éÕØBPÇKž€¦ìJ~ˆÔÀtp‘Ý2é³!2Fé@Uë«àͯ[É­ö¬J�hÈ EÃ]µæHÀ¿¨>†b†åXT܉?·N«¿åA@¿”ÊcœÔÊš8E70¨îÒ¥‹¡´oß>˜»ø‡~hæÏŸo–-[ìû ô嘾ûe0Aqˆ’@=œ”QÖ_ôºñE¬B¥œâ±nô²ù¥Ocx8ZÉ«lâ Ð/ùKsôÑG—~ŠÜÂÅ‹›Q£F™õë×»5ïDäœû+]¥Â"%MÙEI_uוÀÏq`µlÙÒ<øàƒ2FihòŽ‘|ÈÉqä7‰+(‘�AŠ|Ô€làî¨!òŸéÃ_ÿ�‹­›¬0ðò'?ùI�EðLö`¢â"Pl2HÅ&®úr%Ð4¶…´iÓÆœtÒI6*¿§�všiÖ¬™›ƒÿÕêä*�( È EI_u×…À!îA�:ézêò¨-\¿~ýTÓš_¯í¥‰@1 È “¶êÊ�¤)¦ ä£ÌØ”¸Cb¿“n™bB-I2H%9,j”ˆ€Ä�€ RüÆ\=�’$ ƒT’âF‰€ˆ@üÈ ÅoÌÕc(I2H%9,j”ˆ€Ä�€ RüÆ\=�’$ ƒT’âF‰€ˆ@üÈ ÅoÌÕc(I2H%9,j”ˆ€Ä�€ RüÆ\=�’$ ƒT’âF‰€ˆ@üDb�ðÊûú�¾�» ¯AÖA¾„쀬�P÷{ÈȾñõ¸\ tíÚÕP é¶nÝjz÷î]ðz Ù•-©$½¨2U†|ê`\öCyW@®†¤{ËðH£ô€üB5þXìn¹¾œÄšÀ”)SÌgŸ}kê|e(Úïv€ð]ȯ éŒQ*Êm¡¼ò.Êø~ª Ò‰@\ìܹÓ<þøãqé®ú3E3Hàú¤=ä+Èë�Ñ�ó GAZC¸(ïØšCކ\¹²Bw äi/¤¨��šîÝ»›õë×{Gs[oN¯M�:Õ‹oذÁôèÑÃ0ß®]»Ì]wÝeN>ùdÓ«W//üÕWò7ÈvÈÈ©6 Ç|)ìj±­P~E A¢›1c†Ù±c‡Yºt©iÒ¤‰Y°`�g¨¦OŸî¥3Ÿ½kêÓ§�9å”S<=×nR¹nݺ™-Z$%]wÝuæàƒ6£F�JèçÌ™ã…Y¾m‹­3‘ �Tå1}îܹ¦Q£F©v}uWXÊ–@Ñ ’KƦ7âÓ œš£qj�ã‡Aö…t„<}Oør"�Gy¤iÛ¶­Y±b…™6mšÙ¾}»ýôS/Ì'äN<ñD/¼f�÷û,‘‡�TåQÏ»£ /¼�A9¨H‘$�që‚xcˆëê#²ç祛¢°Ô‘@UU•wä½÷Þk¸ý9§¿6lè­1Á¦·nÍeMã+,º8Àóƒ{íåžÊÕ©¼3Â*3zôho�Ú¦M›z‰¯¼òŠY´h‘'¯¿ÎåÔd—ª<æàËu+wÃÉ¥(&åG æ7©8}èâWc'ÃùpƒußCà?ÒÃ*å‹@>p}ˆîóÏ?7;vô¦À:wîìÅ©·SiýúõcÔ¼øâ‹fÖ¬Y^xÀ>(Î�{î¹fРAfåÊ•æ±Çó:î¸ã<ŸÓto¾ù¦gX2ÝñØx 5bô­sÃV'_Ê•@Qÿ‡ä@ÚßOƯH>ÞÍ�ÿ ëDo@÷¶¯ž+ñ#òD W�:u2Í›77œ>ëÒ¥úw×læÏŸï­1�îÒK/5ü*ï¤èøÝE]ä…Ã~ :Ô3h<ð€éÛ·¯1b„ÙgŸ}̸qã̶mÛ¼µ¢‘#G†-NùD â Ôƒ(z'ap>G¥46ÇC΀ة9>ôp5ÒÝDÈLjóHys(» …Ív œƒ:ªW»¥‚¥IãÇç«'ØÖ�uÖYæç?ÿ¹�ÊÏ@àæ›o6Ï>û¬›kÎÿ‡\…Â"�¨î�øt�Ñÿ:nÿgDcD7·ÚÓ§ˆ€ˆ@¥ˆj i\ °K¡û‹£ß†ð-N\A� &‰AÂÁ£`úÈþSñlèíü!�Ó©ˆÒ—ˆ�¨¦ìø¯s®W¯@#­ze9 WTD@D r Dr‡DœXœn¹§ê¶BìÝÓ¸ýD×ÊÅ®ž‰€ˆ€ Dr‡cÃ'ìfCìÿ‘‚íâÿ�^A¾cq·Ä äD@D@*œ@TwH7€k:cd‘7B@5XòE@D Â De�Î÷¹Ž†ß2ãø:½Ë.©D@D  D2e�í|˜·`JŽëGA¶Õïj©~Ñj0Mq� $ÕÒ{>Ë[aŒ¸ñžçæƒ|�Ð$_e_!äG剀äB`Ë–-ÁÃ÷ìLQ\ŠL *ƒô€ßÏ«á¯vú¼á»ÒD'MA �¤ýV­Z%*YHÁë_Y®¬"PPQ$þÿè‰ =ã´Ý}ò(9~Þr»¼lÙ2³zµû›ÆMUØ%ðî»ïš÷Þ³“^ “³œ”�H Ö�¸U9làKT_„¬‡ì‚|áûë†BÎ@ž/áˉ@‚Ήy5¡@€[…sëq¹ôÈç׿þu0_,¼1¨T\¢"‰A²�Å—áQH_H+ÈÞ�f�!¿ƒhnÛ‚’$�ô†�yóæ™[o½UF)HÉ�s»vnì·xñâ`Ž»‚ ÅE J‘l?i‡µýD”øóV7~™�ÂŽq <è ƒ¼=‹¸¿QûöíMýúõÝäX…yGÄ©Ì x¦˜Öœ�}§Å Š:[ò"3H¸ ðËp;¾ß%%Ĺ/Òo  |ºnÒøÒÕ¼:ÔS…ù–ë´’%QF>Æ‘ûd½¡/—�UÈη $= ’]Ê-ù'É”.&½Ñ•i�£Ù%Ä[Á{rd_HGÈsÐ÷„/'5øSn¬¸²F¢µx‰œ&—1ª�’Ò"!‰ABOG@ܺ‡ Þâ:ηØ�d]½Â"àÀE•Wþoí~ˆÖ=*i?ȇkFÝÀMF<-&%DI ª75Ø÷Ø]àwþ<Â÷>2ÒÃÑ+(5àâʧÄþwÓ·ÃçS›ý  BâîVåEÈ#`Űœ”,�HÖ�pñà¯5Þqz® d5„ïú¾4‡#½!Â[!;ß~ÞÊ®BaZCÊQ$" ù!Õß_ÒÂé>Ì@cDgbPõþŸä剀ˆ€T2�¨ ÷8:ò¿¸Oûñ‰¾?7�®¨ˆ€ˆ@…p,(fÇ¥¨l)tqô۾ʼn+(" "PÁ"1HXzLùBÃ麳¡·Û˜Ó8�Š(}9�ˆä¡†(¹ê¡†(é«nHO ’;$6†á4×’<‡ð�¿A¶C–@ì6‹|� &ÉC 06½Á”ojð "âöM öϱöM ½0m§*øT×D@DÀˆêIoj°# _D@DÀ#•AÊô¦†süñÑ›t¢Š€ˆ@LD2e¶ûû|'cºîëó²t|SÃн]õþ<ë剀ˆ€T2�¨ ’ÞÔPÉgUÄ}îEr]R­À�<¾ªKNJž@TIoj(ùS£¼#t(Z|%¤?¤DÎ'6¯"ȇˆ¸3_F+'%I ª5$½©¡$O‡òk.¶ !cÑrNó‡t€È%8ÑÛ oƒ߈.'%I ƒ„_izSCIžåÕ(\\Û¢Åü[À0HTwûå�¼&‚ÛåÔhµ5>ô¦c´…yžï¸¨ÒÑlþ¾ûîkZµÒÒÎ�;ÍÚµkƒxlügøaøK‘/¥@@¿*KaÔ†ºøJ2FíÛ·7Æ 3UUU†FIÎxiÊ”)fâĉfË>K”p·À¨¿£Äõ%9( ‘LÙ±çø2pîÿzóÞ ±/VeÚk�®%AH�(9878õÄõ¢„ëÒ¥‹yüñÇÍ)§œ"c” ‚Ý/Û´1—]v™?~¼iÖ¬™“âiÔåD dDb�pAáæ|üe6Ò Âb]Ç?ľ‚|ßu• ‹€Oàø‰s¦eË–æÎ;ï4�5 4;ì0ó‹_Ô°?UøŽžæ©E è"1Hèå û¶†t�æÕå–t‰ÒÇšÀ™nï/¿ürÓ¤ ãÈÕFàØc�5¼“ 8ûV”€ZQ(>�¨ Òù~Wy‡Ô2E·àëz¦H“JŽrœtÒInTáZôîÝ;˜ª;¤ Å##ÕC íüß‚EU®ÌòZ™’Qœø&ÏÕ¯_ßpÊN.�ƒ:(˜±CP¡¸DE ª;¤÷üß ct í<Â|Ð�ïµ›äëì;ílù"�Dà€HŠ+R;=}X;¥FK *ƒô€ßí«á¯vlExÄnÎ7ÑISPD@D ‚ De�îÓ'2på´Ý}ò(YD@D BDb�°n´ Âø^­!ë!» ŸAæB†BÎ@ž/áˉ€ˆ€Ä€@T5xhapE€"'" "s‘Ü!‘9^èù+¤ÊÆ!K!}]½Â" " •M ƒcs"°r�¨3ä&ˆënB„ohxùŽu¨\‘$à¼ÂéÂÇ ƒ!®‚È“¦ÿ "'" "Q¤î>Û¡XGúÀåŒø*ÄùP]ÒÛœ«Uú¨DQ$û†6i ¶ðõû¥I—ZD@D ÂDe�–û'a�è$HcÈ^��~H›ì§ëM v©;" "�Ž×i¢p@¥Üïè{�9�tîÁt Ò‹@)èÚµz¯E‹å½yï¾û®¹ë®»ÌòåË ¦¶ ßÞ}ýõ×›æÍ›ç½.(Qe�p×Ò�û)„oá>Ò_ï�¨H{ ñaˆgó 䫃N†œIçžA¸t‰Ò‹@Üüö·¿õŒÑ¯ýkóÕW_™+¯¼Ò|ñÅæ¾ûôB“¸� •Úߌ ‡ÍÌ†ÔØHŇÒþ+Èw,ŒÒ›¾®Vù¾B~¾©ad„›ô5…l‚,…< y�ùàˉ€€À˜1c¶mÛæ…ßxã�„N(waÖ� ²™Œ ÝŸ 'CZ@ö†4‡TAþ‘1*÷³«ÄÚ?pà@Ó½{w³~=ßT…_<>h8Å6uêT/¾aÃÓ£GÃ|t»víò¦ÈN>ùdÓ«W//Ì;ëx,eøðáæâ‹/¶ê„?yòd/ýž{îñt›7oö¦ØzöìiXæwÜavîܙȟ©<›qÇŽæ‘Gñ¢)ö7²Ùä‹@Ùc�x'C7’jãNãÑõ¬öÂâ.‰oeø3äcÈߟ ¿wøR”S Q¡A™9s¦wÀÂ… =Þ¼yžO=��Ý„ ÌĉͰaÃÌW\á…iÄ‚îì³ÏNº{aú’%K<ƒÓ¿sÕUWy‡Œ;Ö¼ð æšk®ñdÒ¤IfüøñÁâLªòÜL4˜œ¾;ðÀÍÿ÷»I ‹@Yc�ÜÍô6¤è-߸@g宎eø„ѹY8ØÂÇ¿÷ñý³á¿ˆô_À—�¼ A¢›1c†á]ÆÒ¥K½­Ï,XàªéÓ§{é6Ÿ½sêÓ§�9å”S¼´)S¦x¾ûÑ­[7Ó¢E We®»î:sðÁ›Q£F%ôsæÌñÂ,ßÖaëLdB UynúO<áÝ•}ðÁæ¶Ûns“�²&Æ ½ç÷0o›éÁØœ‹2ÿ_r?C¾ïgÈ£dMàÈ#�4mÛ¶5+V¬0Ó¦M3Û·o7ƒ6›6mòâÔ·k×ÎqÄ^™ëÖ­óü&Mšx†‹‘µk×z:÷c¿ýjþ]ŽÓï¿ÿ¾÷‚Íûé§ŸzAN³�xâ‰^xÍš569á§*/‘ˆ@Æ ͹çò+„WãÏ�ëùú�J Æ ñ‰8º|n¦Ç'öèÞ†ð‰S�|À¢„Fèoºÿªöô)ù!PUUåtï½÷š ˜ .¸À»Àóqj:›ÎpëÖ­éy‹F‹.Õµ{íUókÄ;#ü 2£G�ö¦ylÓ¦|nO½òŠácá”×_ÝÓ¹©ÊsÓÆ«§¢q’�J!Pó›T³g÷B•ïÍô:ûÕpÏ£©� î‘´Â9‘ÓýôN¾/OòBÀ®}þùç¦cÇŽ¦Q£F¦sçΆq:;•Æp¿~ýè™_|ÑÌšU=3=`ÀO—éƒw0ƒ 2+W®4�=ÆW6sÜqÇy>§éÞ|óMï�‡ /¼ÐÓ¥û°:0ýÒK/5Ǽ·>õÒK/y‡p½IN*…@ÆÇ¾i(ÐÙóñko*üÿ€Ð˜4ƒl†¼ áã>|*nÏãBPdpa !‹›/CuJ�j�:uòþHÊé³.]ºxJ®ÙÌŸ?ß[bºu4[·n5¼›¢ã“t]t‘MÎè:Ô3f<ð€éÛ·¯1b„ÙgŸ}̸qã Ûf½#GŽÌXŽÍÀø$>`Á»;3†åD RÔƒ!)z_`ÜøX·–à”¿‘œÿ BC×r;äÛ�¹h_õd;"ùp¨» åða ëæ ŽêÕn«‘_Ò0†‰“¶}ûöæ™gž)éö–Rã/^l.¿ür·I:ÿ] GJ ãR�ZwÊ¥Aâê1ï¼Ò¹êŸ¦éR¥¨)§Äø ´.– îHGÞßdÈÿ[äË´v•¡%‹€ˆ€” �”©�‡±¹õô…p¾e„kUŸ@øg�ï#]“ã!'" q!Õ”�ÇFçE(r" " 1'�Ò ÁPÔ+$LÎ@ùõ!× .>©''" "s9OÙÁ¸4‚tƒØMõ = ™ú@þ&³òˆ€ˆ€T>�”wHÁnÃØüºk!ß„4¦×!ε¢!|çJõ«—ëPˆ¨ï�`Œø6ï?@øˆv>Œé …|y åŸ 9Â;­ŒíáÁr" " •G ÌÒu!ºÍ·Pr.¬›ægìÿY÷ %7Êwv%+’R¨aîHxgDwd±2¦|n7qäßByDNŠJ`ãÆ�E­O•‰€Ž@ƒd_'ü:šñg¿)âÎåKÈ[ˆòu?ò}y"Ph;m[¶l1¹p¸‡RÀ­ Ä�È„1H|Ç×�ª_ylÌL­Ãuè3îÕ^æONÃ…•Ì¥)G ¬tûlw~uu §&ÀwÙܪ@\QˆŒ@ƒ´ÈoÝ¥0" ~²?d>ä Èݺ�ª½pŸ0f Ã!ó !_B>�Ì�\áÿ”äD þ�-á¸Õ¸\f«W¯öÞ>È93WT"#Æ Ý†Ö}ã·òÎ4­å SC9›–ÈHƒÆ2ù’U8>`A=Žø„†©1|9à–' ·lÙ2s÷ÝöwQB­€C€Óš7Üpƒ·u»£æ�æ«N\Aˆ”@Fƒ„»¢—ÑÂ3 Þa¾‡î=È—�ÿƒ\ }¦—¥"[Âý¡Î‰XêÀ Pßš:IÚ8À¹Æ»ö).ƒ‡~Øp—Öõë×»j…A€ÓtÿþïÿîmÝr Xî è�ÈDµ�â]Ñ2ÈÈkþ/© „�‚ó®ì{�uøÂ´�Ÿ7‡»®*6Û)PûÁ80Ê%ˆq<mår[·Íõë×7Üd�û$µk×ÎMŠUxÇŽžq^²d‰áT] 7 ß­³Rè¥�È„2Høò÷B yWó_8‰çØÖúwΕ\ =ÿåpÜ&dätÜ!8îŸÁƒ�þuèø8ФïLÏ%î·Y)ˆ%r,Æò4…o‡çÆŽrá pšî4|·6‡?D9E ð2NÙáKÏ[ùt§Øn‚¸î&D¾ yù¸ÖÍõ3¦«ß®Ù§ú–«|1"€ *ï¬yÞ-�Q·síêÐWÆ(WŒ:¾Ò·®Ùòd°›€ðÈ“¦ÿ Öñ½xk!S`ÈúBš@ö‚´† €þ9ŸÚ‘�´pa}‰ü±ôcÈ’´ã�Àu">™Ø¼þ²-Þ8ÔûR%�qÊâ34¾)dœÈ\çIrHoW’7 ½eRbšŽÙ�&)£uäô*!Ô]…J4e—‘tyfÀøŠ–ÒÖ—òìHî­¦úÀ—×ñ½Ñô\îLUB� ðÎ&“ã+‚èøpA ƒ ]^×zª‹Ô§dGÞ•8‚"'"PfÂLÙÙùùIøõy¤1„Ók- ýÐßÉ~Ÿß.³¾«¹" " %D Ì·žè ùd$�{0]BPŸë´þ! IDAT[°<ÅE@D@ÊŸ@˜;¤ÐM>¸P›{‰ãjË 4¨�@Fƒ„»¾6è|ÈÅ> ð)d„n}òcÈ÷‘�‹¨r" " "P'a¦ì¸IÞn”þ'_êT‘�Úd¼Cªí`¥‰€ˆ€ˆ@¾Ôj�ðÝ`È_ ‰Ç½n ™Ld3ä ÈAùj�ʈ'�´Sv02|ºîG.è"ηÛmÍ™|äX¤uÂÌÿ +'" " YHy‡ãB#“dŒü’/…ï#[á�üÔF2ù(wHÙ†|« BÍT®ÒE@D@Ê—@Jƒ„î\âtiÂÿæÇù>_'Äiº_úqzg:á|  C C ‹`”¾ _ND@D  ¤3H]œ¾^Ž©¸•0|Ÿ]_ÿt |·“ï[N¸AîŸt}! V™" " ÑH·†äî/óžßL¾æ¿¾žãû‰‡çúRXÇ»«— Üqv$d„w]4:ÜîâÈÇ�3 Ìsä¿!}!%é`°ÙÿÞ¾N‰Ó‹Ùð@öŠt|«4ß+7 ò ~Ä0^0‡1h‹ÂyÎTA8�LIwŽ#©âÝ'èá߂Α¯U|�ÕÁò&€“”ÿ3Jôˆ~å�(m˜Ç ú¬î_×ÍÑ­ –“.Žc¦øÇ}#U¤}ÛOï×÷ˆ³î©òg£CU~Y¶/³³9>˜eñ‚w9„ÛeØ2å×dA>ùå#Žr[AÆ@øãEìÓ3X>'䃹ÊH¾fŠG~x¤›²ã¯Zë†â—ç!ˆ öÿü·¡;ñûl&ø<Ùú>~F^@R¹Í¾r ïÛ;±œ¶žHUQ.:0à�$w,½Â_çré �Ï0{b7`LŸ;d Êꄬo@†Câ|7†XWdš f?“YyD ØÒ¤çœ†ÜŒð*·Ÿ ›Xí™·àóɺlÞe·Ý?ˆôõ�4…ð âÍ § íY?�¯-¢ã4ÝÆj/úO´“ÕÙk\£oTy´€¿L¿œ§4Q�Ñ\§æä¸ ìn Ÿ]9E 8Òý¢äà C ¼3rÝ?¹ÃUøáÛq×ä±Y’TFìžx!)%92Õ�òå­t¥´ÅÅoÑ^nß}÷5ýû÷7=zô0�çí& Q~¹6oÞlæÎ�kžþy³cÇ·ù' 2¿ÔÉá‚Ú òúè#3kÖ,oF‚ár|o è�ȤÝ1'+urÝètÈ.§¦®Å ü/øéÜ‚üUÈ}Ðñ…ÐÇrMˆÇt¬å ¿"­/ÊÞ€ü»ý|ÿ¯–c2&¡¬*dâ��usPf/ ã§(ÃtêÔÉŒ=Ú´ico$Ô�<¼0^{íµfÅŠÁwû%Ae˜8ÆàÈ÷37ïE]d† fêׯïª�Å‹›Q£F™õë“þ»Î¸Ž»M�D ¤5H…n.(œ²ùO׉¸Õòddä|Q¼©=ä¥?rt4Žuv)ŒI] �³�F4‡v˜?~¼iÔ¨Q�ÛUénÙ²Åüð‡?4«W¯v»úÆó:å_ “Ö�x!”1ª�.ùüìgI74< x&ŒJí%$¥öF,q§æ†ž”A‘šŽ<òHsþùçìƒCA½â"Pt‘$\„è®…ü ²’öUBE'’¹ÂÈ’X{ëСƒ7]—ù0åèÒ¥KpJ“w:|ò+[Ç5¨„;õÔSc½V”"pî¹çs%± &*.Å$‰AB¯�ðáˆÃ å¶ê| ÚœpüÕ)ž@ ^_t"gÒ#öœ2• G€}ôhˆ„|@DN"'•Aº<òžç©Z@Ïd“&\*Lr‰©·$m푤z�¤vXÁÔV­ZU2HA"ŠGB *ƒd'çbêA�}±>Ä,jH$TTiYÐ�‚².5VÒˆÊ ñ‘q:>Fþ$ݪséSD@D â De�ì^¿Qñ„ÕA�P¢2H|Ñ?!± ÚÂWÕ Õbe¨H‰Ç—‹Ü;n-Aw0ä/^©lוlº|�Ê%ÕRåUÏD@D@êD@©NØt�ˆ€ˆ@¾ D2e§i¸|£Ê�ò' ;¤òCõ@D@*‚@Ñî�ðÀ‚·…ïŽl8 AÝM…¡¤<" "Pþt‡Tþc¨ˆ€ˆ@E(ÚREÐ*³NtíZý"íE‹elù[o½eî½÷^o½¯¾úÊœtÒIÞ†nÚV##º²á^ãà �S@J.kE3HîÔ›.kzÔø_ýêWæïÿ»yà�Ì_|a®¼òJ³Ï>û˜ŸÿüçÔËòïŠÆ©üÇP=HO h)}”R zè¡D3vìØá…_~ùe¤•ÒhœJcԊˆd ‰O5À•ë}… ¿Ô�šîÝ»›õë×{š|Ðp hêÔê×ÿmذÁôèÑÃ0ßæÍ›Íõ×_ozöìiN>ùdsÇw˜�;wÖhßÓO?mN;í4sÉ%—$Ê­‘ÉQüõ¯õb�}sœå̆/{¹k×.s×]wy|{õêå…9¥idžÂk/¾øb«Nø“'OöÒï¹çO—iÌ2•—(�J'·Ÿ LJ@$ xËyƒ¾‚ž¼èñ‚7sæL¯ž… zþ¼yó<Ÿz^$i€ÆŽk^xásÍ5×x2iÒ$3~üøí[¹r¥¹üòËÍÒ¥K͘1cj¤»ŠM›6™Ûo¿ÝS]vÙenRE„³áËO˜0ÁLœ8Ñ 6Ì\qÅ^˜?‚îì³Ï®ÁvÉ’%Þ�„þýû›«®ºÊ;$옥*Ï­³ÒÇÉí«Âñ!•Aª˜ úò}ªð‚I7cÆ Ã©3nj·`ÁÏPMŸ>ÝKg¾9sæ$Âö8›î%øC‡õ £¯½öš›”ÆÚž¹á†ÌêÕ«ÍqÇgÎ;DôJˆXNaø²¿öδOŸ>æ”SNñL™2¥Šnݺ™-Z$鯻î:sðÁ{‡Ø„°c–ª<[FÆÉöU~¼De�ñ1kƒ¾ÀùÆ-¾Û¶më=í6mÚ4³}ûv3xð`Ã_ÄŒ¯X±Â´k×ÎqÄæÓO?õŽîÝ»·9ñĽðš5k%Ï 5nÜØÓþùç5Ò­âá‡6¼kÙ²¥¹ñÆ­º¢ülø²ãëÖ­óúÏv·Ûµkív^{Ðì·ß~{"~ˆÓ«ï¿ÿ¾Y¾|y"-옥*χq²}•/Q$û�Ö})窪*OËǰ4h`.¸àÓ°aCoý‚ 6½iÓ¦^¾W^yÅðÑnÊ믿îéÜ!>9G׬YêݪyWtÿý÷{õqZ¯uëÖn¶ü2ñe§-þ  ÐpÀžï~ìµWͯҨQ£¼7Ø�=Ú›feþ°c–ª<§qbåâE æ·¨8ý×}µpæú IÇŽ ÿ Ô¹sg/N½�vâ´§éÞ|óMoñü /ôtîÇÿøG3{ölOu '$’ì:\+ááÈ‘# ï"*Ù…åKýúõóP¼øâ‹fÖ¬Y^xÀ€žŸéãÜsÏ5ƒ 2\Ã{ì±Ç¼ìaÇÌ-;®ãä2P8¢zìûfà= ú†Á_ Ù„¹ñÝðcï:uêdš7oîMÉuéÒÅãÁ5…ùóç{ëL§1b„÷_¡qãÆ™mÛ¶æ¡A :5þJ?ú製Åù`:ãsçÎõÔ7ß|³¡XæOµ6o¹øaù²?—^z©Ùºu«÷§aÆù$ÝE]Ä`(Çõ;3þ¿«oß¾¡Ç,]áq§t ¤¯\õ¢°0B¡ ÚW/ŸøQwÊ«¾]¨.xê¨~’ DE8þbd›`³žuÖYú¯Ž…§±{öÙgÝœCÀÿ!W‘)Œ1àøUÙ|¿ûÝïŒ5ÜV'?=>Á÷ᇺ¾�1Xå*�(D5eE_U§ˆ€ˆ@ �A*áÁQÓD@D N"YCÊ÷4\œL}�J%ÉÖèôê J=«Ô/¨�Hî�ÐÎk wÔ¡½:DD@D B Dr‡–zuP…žPê–ˆ€Ô•@Té¿ÁzuP]GNlj€ˆ@…ˆÊ éÕAv"©;" "�+�¨ ’^”ëÈéønÇ!'"Pþ¢2H|7Í?!|uPOHS>vWŽ8u1ÌnÔì J�£¶9á°ÁÜŒ©Þ¾í¦+œLà“O>IV³1¨P\¢ ÕSvû�=þ_lÇSÙ¤üÏRÒÅ�ÛAÈ…'ðî»ï3ÿ+¨OÚc#E™!Šˆg¾-ÜnQïØ†ï˜ Rá«V­2Ë–-Ëâðøf]¼xqðj¼;ZT"¯ºÇpÝ-[¶¸*…ÓxòÉ'ƒ)I,ƒ‰Š‹@1 È eI¿&7ã�ÝÃn½õV]] )Â4·ÜrK0exÖeÊŽû»s<·~ýzs÷ÝwÛ¨ü4x7ÿÔSOS*�¨Db�8 V¢“¡ÞÛÝtNýô§?5ZËp©ì “Ë•W^ém.·Gë…~ˆ‡ŠúFìN7óäÉ“Ío~ó›àt”›%Öá ˜«®º*ȇSŸ�ÄŒ:_R´ý„1Ym?aGë]Üqm��Óç×ÜŽ¢{÷î¦M›6Ænîæ‰KxãÆ�†[xsÿn7X· †ñ0,—Ö•øsëÛ7 Ü2Ú·ooú÷ïoŽ:ê(S¿~}7)–á�>úȼôÒK‰ý®b &tŠŠ@dd�ên�cÔ¸«]õny‘ aYVÌu£žþ�N�;£tžáXÈeGà6ð¿>»C”[ K ’)»Âv©8¥ãËÌ5Œ¾�¤õ¤âÔ^ÖµÌ@ë{åjŒHe,‡×’ôä#Óäj%ð3£Zù(1"‘$|j¬!¡ÿ{C8 s<„[šó"ÃÇÂKÖ¡Ÿ q§A†C’E.ÙFG×0ò 9 Ü$äÚ”µe ¹ R—$rmB9ÿË;Ó:­Ý•SGÕÖò$É”]&TþT Ÿ¥þ#¾<—dÊŸM:Ê®Bþ:oaž®.”Ûi§BúA…´…Äy*‰Fg äïŠ^ÂXÔ`` Z¡žs Ç@8rÆðGÇ`*ø/(e¥j�x!ßù¾Dæ`¡ R>Û¨²D@D Ž8MV2Æb_4†¿roðÕºd§†ˆ€ˆ€”@$ †gwÈ^½2Ÿ²‰€ˆ€”9�HjÈ‚™þ~Ÿ,e�r&ÉR`Û‘¾2ëG¿Í�WÉ" " B ƒCS–[MTȘ«" "P’"™²ÃÒ È �ï–$5JD@D è"¹CB/O‚ð;ÿ*z�U¡ˆ€ˆ@Iˆä $øg=ºýª=}Š€ˆ€Ä�@Ti(Ày ÓvgB„4‚DÕž¸Ÿê¿ˆ€DN ª)»i~Ï»ÁÖ¥£äFùÍdERª"" " •B@w$•2’ꇈ€”9�¨î�Ê[ÍæãÎŽ,ù°_®z¤-„o/�«ã‹TùrUþ§l„/÷ä W âĿ֢ògíƒCáÙ—ÛòüÏë{(YG™¹Ð^~øRÛÉ8ÿù]�«� qZ,6U¾ºÈÊì\û�²@þî”iË–¿‡ó§àósHã\y�G™â¿‡sºs®�üiˆž„¤«[új6££‚ç¯â{ìOѦìðëé¯�Ÿ@À dåpLsÈe�…YXàÌhÏÞ�ߣš§ üRÊ¥'À»Å› óÁ¬üœ�øg…0ïüY;Æ€wDo@2.W+�þHåùÿÃZsÅ8±hÛO`ø+‰î+·�~ ²òd-„ÛM0­1äë�ƒt�TAŽ�ì Éù!´£ ÅÌfY¾›ƒ_(½l$eñW¡¾ˆÙ@«ÎËiŒÎàN¿ÎNüëŒ._üiŒ¦Ô¹ñ>pÎÿ‡â� fk|MuA4üup„»Àï ¼Ðn5r�»Àq1¼U$£úõë›Þ½{›>}ú˜Ö­[›–-[¸¥[üÖ­[ÍÚµkÍ’%KÌ”)SÌúõëÝÆr}áY0<_Ê�nBذø×NªüG &[qØa‡™þýû›o}ë[¦M›6†ß‰¸º�>úÈüãÿ0Ï?ÿ¼÷=p¸çðRœÿüQ.ç(ÚëÃ4‚w„†åH÷2��üƒ·5̵åAª�žÓÊàõ}HCˆç:è sç�wz_D«“_M`Ó¦MæÖ[o5³fÍ "©Ó¯Dñb¬=žoþ¬ cð,¼3mÍ4<#FŒ0çž{®UÉwL�:ÕÜ~ûífÇŽŽÖÔyvÆ-¤’ÂE5HNfþlê 9Òò-H3È>�-�ÿƒÌƒL�Ì‚!Ú?/uW¡ \ Ò­(c¤mP³fÍÌ£�>êý"´:ùÉvíÚe®½öZ3wî\7áŒí®"Lc(þa@9yòÌ¿ŠæºQÂ�5JÆ(A#u`úô鿯o &r–ൠ2®ñ¢=Ôà¦��ÐÐ\ ဴ�p·Ø½àï9r9d:$oÆÈmCŽá¤©º+®¸BÆ(Pþ‚¾þúë;ûr˜îp^ܲuâŸ%±<óçÚQÂuéÒEÆ(A#}à´ÓN3Çw\0CË`bÜ⑤t�a|v§K+=. œ®;Ô¶‡Ø~ýúÙ¨üZpM¡G�Á5Á n\ü]Ù…óÁ߯ñ·æÓO?Ý�*\ �3ÏLÌrÚ\I,­2®~I¤2¤„ãÚQ£F\“ Càˆ#jÌÐ%ñ QFR~ñAÌÉ’þ,-i R”éÔ¨ KਣŽr£ TÄ9.ƒ”ýès­+á¸~$žÀÔøZ‡ðG{9“€‹vôòÀŸò¯ ׸qR4¡W@²% ƒ”-1åω@œÎ \žÿ<�T1! ƒT¬*TD@D [2HÙS~�‚�A*V*" "�-¤l‰)¿ˆ€ˆ@AÈ « È–€ R¶Ä”_D@D  d� ‚U…Š€ˆ€dK@)[bÊ/" "P2HÁªBE@D@²% ƒ”-1å(¤‚`-�B»víj(Ù¸¯¾úÊ 6,ë㲩£’óÖ…y¶<â6Fùfšmyqã�íù˜Ïü2Hù¤Yæe½ýöÛfèСæµ×´_X©¥Æ¨¸##ÞÅå-ƒT\Þ%]ÛE]d¾øâ‹’ncܧ1*î ÞÅå-ƒT\Þk8p éÞ½»Y¿~½—÷Áô¦Ï¦N�êÅ7lØàmrÇ|›7oövaíÙ³§9ùä“ÍwÜavîÜY£Ž§Ÿ~Úp·ÊK.¹$Qn�LPœp fܸq©’*B— [v˜Û~ßu×]Û^½zyaNßXg§~†n.¾øb«Nø“'OöÆîž{îñt™Æ+Sy,¤RÇèË/¿4wÞy§Çš»ªòNýƒ>H°t™Æ%›²‚cäÖÃp¥òö³Tâ2H¥2~;xáãEoæÌ™žfáÂ…ž?oÞ<ϧž_H ±cÇš^xÁ\sÍ5žLš4ÉŒ?Þ/i�·råJsùå—›¥K—š1cÆìI„xñÝÿýÚʉfÖ½ž0a‚™8q¢·¦Æmêæ„ ;ûì³kp]²d‰÷¡ÿþ檫®ò ;^©Ê³uVêÝÿýæñÇ7W_}µùýïo-Zdn¸áÛí$?Ó¸„-+Õ%U„H¥òö³Tâ2H¥2~;xѤ›1c†Ù±c‡gDš4ib,XàªéÓ§{éÌ7gΜDØgÓ½ÿƒ¿6iÀèâ¼>d…aKVö®´OŸ>æ”SN¡ÊL™2ÅóÝ�nݺ™-Z¸*sÝu×™ƒ>ØŒ5*¡;^©ÊKR¡{ÞöíÛ×|ç;ßñ ÒC=”²·™Æ%lY©Æ(e…R�€ RÑP‡«èÈ#�4mÛ¶5+V¬0Ó¦M3Û·o7ƒ6›6mòâÔ·k×ÎpÛèO?ýÔ+´wïÞæÄOôÂkÖ¬©Q šÝÕóóÏ?¯‘E6lÉdݺuò£Ð­]»ÖóÝ�ýöÛÏ�zaN­¾ÿþûfùò剴°ã•ª¼D!øä“O¼ž}ík_ËØÃL㶬Tc”±re((¤‚â­[áUUUÞ�÷Þ{¯iР�¹à‚ LÆ ½é&Øô¦M›zù^yåï%§9^ýuOç~ÐÙ‡â¾å·e—‰-ùµnÝÚÃȺ[€›½öªù5â�Q½zõÌèÑ£½)Vv¼R•Çã+ÙµjÕÊëžå\[_3�KزR�Qmõ*­ðj~“ _§jÈ@ÀN¯Ñ�tìØÑ4jÔÈtîÜÙØ»;õÄÅ_:NQ¼ùæ›Þú…^X£ô?þñ�föìÙžž‹´ÖÙEt�ƒ–-Yôë×ÏCòâ‹/šY³fyáx~¦�sÏ=× 4Èpýî±Çó²‡/·ì¸Œ‘eýòË/›eË–yçò�!C\‰°Í›n\lz¦²R�Q\x'`–X`ïk�š�:u2Í›7÷¦äºtéâ1áºÂüùó½µ ¦Ó�1Âì³Ï>Þ“qÛ¶m3Ì3räH/Íý Qã/õ£�>Ú[ wÓâË–\.½ôR³uëVû):>IÇÇ€Ã:®Ýñ¢ùÀ®�„¯°åWR>²Ú²e‹7 ÀµSžË7ÞxcÊ.f—lÊ ŽQÊ ¥,�z»wï.Ze¥P¦QªÐŽêÛ…ê̓ê' B40x< Æï~÷»G* p]즛nraLÿÿpµ…Å¿6:™ÓråÏ0ïÃëÀ0Ý3ÏüðCç(· çÿ7œx¬ƒš²‹õð«ó" "P:d�Jg,Ôˆ5¤X¿:/" ¥C@©tÆB-�X�AŠõð«ó" "P:d�Jg,Ôˆ5¤X¿:/" ¥C@©tÆB-�X�AŠõð¿óü¾\tÄ?:öª93¤ÌŒ‚96ºŠ�“¢n’Â)Ø71;I«œp˜`pñƒlOž<ðga›÷”ˆ6Š”�|�AÊžbÒþ«W¯öÞÁ•}1ñ<âí·ßv<‰g01E<)¿ø§ T‹*üYzÒ¤(³–Ä;ÉÝŽÄ'‘z[ܘb’AÊràñÞ)~WÚÃ8Â÷ƒÉe&À½„Rl�Qs¿ŒZŠÿZàdHÊ¿Š9nUÏ>û¬U¸)®¯Ö’=vI2Huò§ÜÃø6g¾4Q.=n»~Ë-·x»à:¹Þ��YâÄÃÅ?,)?_žù?çVÏ­ÀŸ~úiW¥p Ü&fÞ¼yÁ”©AEœã2Huý»qØ6{(×1®¼òJóÞ{ïY•|‡7]ãfh)¾Œ·9Ù² Š´òÍßÿ1ÅmÂí·ßnžxâ W¥°C€Û®ÞrÏTî4ðš“-öAm?Q}R„Þ~ž1xÿ„“.¨õë×7ÜNœ»’¶lÙÒf�­Ï½„øëyÊ”)&ÅÃü"öÄrg]‰fjæ8Z°ÒØmÉa‡fN?ýtsÄG¸ê؆ß}÷]oÍ+Vðí±uœ!–U1q¤:$ž¸(r+ÐAs6¯#kPUg|é×Ù‰�Ñå‹ÿ9h§OµÑgöC1çÿ#ÙVÙGhÊ.·ñåö¡ãs+"vGs͈¿ s2F>5ñÏþôÉŒ!×?úCôÜwøq «A2F©�É ¥æJ‹“j'äRd>òN¨ƒâ›i#º~„Æhüœ�øg…0ïüY;Æ€8 yœq¹Z LAj70›Tk®'jÊ.‡);÷¼Áô§-Ž�pãPH3HÜׇøˆü«�©ø"ì—´ø§<ÕŠÆŸµc :ÀãùÏïA[ˆ\õ¶Ï~äj! ƒ”'ƒT c%‰€ˆ€„  )»�”ED@D ðd� ÏX5ˆ€ˆ€„ ƒ’²ˆ€ˆ@\`-0é¿eÅì· R1i«.(} a”ž„œáÃZEs2HEC­ŠD@D ,4D+Bø˜úG0Jc!|r²àN©àˆU�ˆ€”-�Vhù0È|¥¿Cn€t@¼ N© XU¨ˆ€Tþ¿òÈû0Js!—@òúK¤Š;gÔ!(8�PÃx§ôò¶Þ$ƒTðqS" "P±òºÞ$ƒT±ç‰:&" E%�óz“^dÌF Ù’¢›*�Ò%À'êxç“/ÇwYN€LÆûüx½Mëd�Ò¢Q‚ˆ€ˆ@ lCYÓ !ÏÁ8ñå¿I.މO…tòeL ED@D@ M€o=¿ é¾`E{•÷oçàÉ�Jïªú'" ¥Bà4ä)È#¸s /¥‹Ý’¥à??Ï;%9�=C0ûYqŠndd& ãµÈiæÒIDATºØ¤Z©(QD@bJ?ÖßG×;äÐ}Þq�ˆ1ðÎ(´‹Ý”]h2Ê(" "–×…h„8%Çp�œ R�°é ˆ=>ÂÍu¡‡j[ʆ’ R6´”WD@âM€�j»�ng\Ê— R6´”WD@âIà5t›Sr“²]Ê— R6´”WD@âC`ºJ#Ä)¹:¯ eƒK)ZÊ+" •O€Fˆ�i¿Zì®ê±ïbW}" " ) èmß)±H)" "Pl2HÅ&®úD@D@R�AJ‰EJ�b�A*6qÕ'" "�’€ RJ,RZx¯Õ'�ݾ|ÝÑwuôL?ÔIûº“–Õ»¬lµùNٻ󑯶2ò‘¶½µÕ,#¯íØRHK×^è[Cž(…6ª Ñ�AŠ~ J½søm'ÜË 3èÆÝ|ïò)*¢óx B_NŒ ’N‚Lêb�s •Ar`ä+ˆÿˆð/žä«ÌB–cÛJß©‡wF­�¸‚1' ƒó D÷k$ü²åªOð�ÝäûU¾OϽCr�78ö|È<ÈÈ&È_ ç8ÇzAèì4!ýÓ ÿ€ðî¯RÃAd%„ù×ASˆ52C�ôPíà±È{2d&„Ó—;!l÷"HÒ/{Ä[AÆC˜ï È4ˆË"US’tȪ äKðñÛ8ÀÑ=ì ýÃNÚ›]}ÈU�å�m�÷ £!��<‰z ¯1Б#Çð3Ù°ï3 U¶ úˆ'ʱñ4éÛý¼ïÈÃöRϲ˜¯•›®pÀ/#ƒtçNñþ®ÕP¦3\?Îȯœðá~úsŽn€-º;½-Óú7Ú|~VOÿ3縜0²2Ù4�,öõ[á,ƒq+HϦý�—_¶Û&¾Ø¯«ò¼•"ßzWgÛ�ÊG¾ÐeËD¼!ÄrZƒ°ýÓ;ïH>†XŽ mÝÐMòõ¶/Ö_}¿_Vg�·qŽÃiŽg¾„³ŸS—=*çTBïëžtÒNµÇûÇp,lþ'Ü4…÷œßåÌ"ñ%-çN¨í…;q8¹üYÃ�ðu¼è´ƒÐgÂúé+ý8uGûº>Žî„¿é ÃÌ÷äD;–¾ŽzÊ"È!�–�ïB¬žþ¾k¤XÆÀTe8ºlÛ±Ô¯ï§ð÷ƒì9Ñ×±þ~ÿF::Ãö Yâè‘5ýX!_è2R• ÝƒŽ¾“߮Ύn‚­º ýÝÓÞêèFúdz�V‚ã°ÚI;a²ù¡£[êÔgË€ªš�“ÏÕ¹Fç!›—>ÜŸœc’Œ•›OáôçX©³‘AªåQêƒWŒöáÀ þ—þ…€w ü%>Ã�/bàx¡bà ó[Eáý"‡?b/JçØ¶CçÞ�ýÙÑÛ¼ôϲz¿>7í1§ÜkÓå³zäͪö8¿Þ®8~d¡Sç6?íuG×ÇÝ©Žêô ä ]Fª2¡ëëè¯óÛe<�Yâ"ް5âÔèçmáÿ†¯sYÇ�w£6ý„ۥ럓Yj5H\Fø§Ÿÿsø_óÛñ5„9=Ìú˜¾—-G~úsªÜØÈ Õr�(·Á,T{ñåçƒ öÂÃ_ÜöÂpë„㧯…¤fÂ*Û&„Ý©«ŽÞ½~ìèm}ô½ fš4›oòµ²yèÃÙ4DÁ¬Úá—sʲS‚‰2mù~žÏl~§¾æŽêôä ]Fª2¡ãšËG~ÚK~»^ö㛽mýâëkôÇ×oõ�wÓƒã`˜Ø<üÁò*ä§�–¶®`9Vï×ãku~Þ›�´øºóÝÍn~…ÓŸS密¿FäD ÷Á„ÁÈÜØ?`nÀçSß÷uôhȬÛßàs§Iëx¶®¹ ü �xªh(oH•ÐeÕ,œ_‹ãÿù„m½ÒtœÎ³î €Ï_ùa]NeàâCƒ0ɯìx´�ãq¼é¼sµ®™ ¤ñy'tÁq¸Þt2ñzÂú~yõŸá¤e|™i¨è~Xí%|ê™.W�d�*pP Ð%× ]ì”Ï_ÃtÖgøR~øÎ5HŸZ%|×(¸F7�“Ýðî'�» 3ýÄÿÄE�ë6µ9·Ž0íêÆEú«ÃÑÙ ï­sËmj•!ü|”ñ¨_ ôA8…J÷Xµ—øÜœUO‹y��£ ßI·Á¤q@Þ ¡¤ä^ˆ{ž4Aœ†)k‡rWá —üûaLE˜kKt¼ó[å…ôQqd�*nH Ò!÷BÓÒ¯a%. 3 ŸÓAÖøâ§Ós�ã:“u=mþ Nø5'œ¢|®E¥tHã…öÿù‰¼ÿOÊŒ{”Ù¶Ã5pönà°=Å%BË!cº;ác�p¦`Îe€ÇT²Ò¯è ßçÃÿ뇭gûÂøQVY›Ÿj £›ù äpÿ=§ŒN8U�w;žƒÑáÓ€®ûƒ¡A�átV_ÓgE�Aª¨á,Xg\Ãb+±ÓuéâÔ[#ÅðüðÝm¸þ|ƒ‚ø­V ¬Ä…�áYþ¡ÜÚ.°Ù¶ƒsë.AÙ-cô¡kï Gwt 4η;úLÁ|”Á:ìÝ�½;{Œ¿�8�ù´µ)ä<ˆý¿PÊÎ1ì÷'ÿóÁANžwœpª {—F^mœLFxƒ·S¤ŒS/W©xžJÄ ¶sçþ^Ð\ù‘{ Ò.¤3ï7yîO‘Ç–yk ¯ÕC�<>n6 :ÞiÙcž¡Þ‰'•}6íî–ã„×9ánó—<ï¾l¬¿ÖÕÙö¦ò³)£¶2‘Æ;[?ýÎÁú ÛB#îæ³a®�uå1nzŠ2NBú67�Þ…ðéöGUõxB÷²«GØ7'ýî@úÝ6M~òw¢RxÈ.v•2°ùî. Ÿ.‡¹u í›�t^¨j<š Ÿ–âÝÕ!sý)ñß![&töâUò—/]ô³�4.®×VFØvp*é¿!ÿ€ì€¼  9bËŸÌ6Âñ¡ N)m„p=h:ä;›¯F_Rô-T™ÊDº}*ð�`6Ž<œû)䯎Ûý ¤£“§Ö¶#/§è&C8}ˇ&xžÌ„TÙ2èÃÕ(ºoCfCx®|y>pÌw¡K‡p¢]n>…“¿å̃ ˜g9(-˜Âã�ÞÛ~«–àZÕ¹´Z¨Öä›oÛåD@D dÀñ =^›~ã4J380*5¨;¤JYõKÊ” RpÚæïè §ë¶–i—Ôì�ô”]HPÊ&"P4|`„E¬‡ðÉC¾ŠIÆ *Ýé©ÒGXý�2! ;¤2(5SD@*�€ R¥�°ú'" eB@©Lªœ›‰Eês¸P áÿ]äêHüZCÜ·9Ô±¤â†v¿á90 øµ«Ær! ƒT.#U¦íĨš~�ßü eÚ�È› Žç¡oAè—£›à7únÿœ(Ç>¨Í& ƒT`À*Þ\|AéW»5‚°dO€wF­³?¬dŽàØóø:äÊ’i•RRd�Jj8*«1ø%\=â»àè^ã»|½ _Êi_àIÿHÈó�M���!|�iÂ!îæ? ñ@¶@fØLŸ™çëYÖ_ çØtëC·ärÈË`�3!|ÕP’ƒ®>ä*ÈrÈ6È{�Ñ�ÆnFÄY7ëû ²ò d¤ª.ùÜcF9IÿËaÜ—í¾ÿ1|²N8Æ!Ô3/óµòÃöØ0ÜóÖŒý4n¡ß@2Õµ'1Z $àDÑûìÄ  çN²S ö]d7ÛsÍÑ1�FÊæ±>ך¤ÉÏwžÙ|/0Ü�ŽÎ¦YÿF§¾—Žw6Íõ¿„>øþ5þªwóØðè½öÁ¿"Mæå»Ý¸‡¼pùl[]ÇÚzƒþ“NZb{r¿¾~NÚ¾Î=> ÷¼õ߯ÿ—N›Û¼»}U8Þ×ã‚\ˆtRÅû¤²ã�‹Ï]ÎèûŽÞ½0¾‰<߀Yæäž&?ߨͼ-!|ùfˆ-ï„¿é ÃÔsšèD–÷ï›—FïPHSÈ£¾~±Sç…¾Žùï†4‚p« {üH¿ÌÕŽî8„ùÂÒ:º¥Ùä³õ}§<$UŸ_йFç!«§÷'çÏX9qf¨•;ÒóÚ¿M�6ŒqÛ«°®Þ9¢A'B¡Î\|æ; #l=ŽŽÆSýéNÚÜTç˜sltýýŸý¼/;ºÄÝtBæ@\Ý ˆÛzô�çT¢Õ½áëø«»áv¶ ®}¨|î1nØ©ê„Aâ´×?ý´Ïá�iô!|Û8#L÷ÞºîÇm[k厼yí¿ß®ï8m˜oû!_× {èÉÿr[ òó÷åÀÅg­sjiÙ::^›8úæNÚFGo/¢ô=ãà¤ñõ26½…£w�ÇÇÔùyÛ¼©|äýÄ)×–ïú[ý2¹ŽåêùÊ›W!?…¸}•/U[üzu¸yPÇÍ›ö?ïùŽ.ÝTi­Üq|^ûï·«•Ó®un?Îß÷®œYêÕAø†È†®w dNaÑqÍ…ñà"}}è9­F=æ¹îB·zïX.ÆW«¼Ïý çÞ=žCóÛýte}‰cöM—×/*É äMJ³”‰lÞ®°Ï@Çéàã]ÊÈ÷\Ø|ÁlÇ'°^GßáÿƒPÇ îøŸ/¶ç,�ù&t«àgÅe¸\yx ÇvÀ‚„ŒýçÁÈËe·1 —ßê¨>E·ò‚ … À+ʵƈUxF'E]\ ²®‰ ÀÿÜ »A{A³:ngÝþ6¿™¶yh ¬sÓ­ÎõÝíµ9ÆoIÂÌÐý^'H/Ƚw»wöç7�Ðù˜7‡úW!ÿKþ1ý€�ëb\[¢{ÉO¯Ž%fâž×þûUÛŒ& lr³‹3¤8�~ûŽ !/8‰;„§©®§£ïæ„—9áDÅ r°Î-ë«„ÿš^êèºÛ0.â s UVÿM'|”®d_áæ@~9¾çdê`ÃÌ—1ŸÍðp´“ÆÞuð#ûŸ±?¬ÞÍkÃ.«TÜóÞTìþàØ`"_,$KB~!p*ɺ¯Û@À¿ ××à L¿ÍI{Ü ×|ÀIdYß @Ç'â¬ë¶ ø·#ß· -þä$ÈÝë±øÿƒ|M!çAìÿx<#‡øGwœ–:È9ö†ÃæsŽ Ý;Ð6N†?#l/ð=|=ãÔ§s™¸çµÿ~#t³Ê +(Õð‹�Ó 1Èû9€3ŒÆ‚¿ì)ýíyæè¨ÿ0§ndïTù­Îõ‘÷þeØzoµy‘‡?ÀžI“—ÓI}�¼{#>+MÞ/ ïʼp'A8�hësý]ПžM>[ÐG9/êàzQbÌ�FcêÖ}·›Îp ½VîÈ›×þûõrÚðû`ûß3žqe‘8¡ã @ý.Ü—÷1î_XÖÎE‰WÉ�g!¼È¯ƒÜijóÒ‡K\h]½F>Y6ÂiBÞM¼ èæñËâ…öjÈÈvï$¦Cz¦ÈË©/>-÷WËÝ¡AëèæEü{�ÉþÙ”†�kV3!UuÉçcÃ(ëÛ�Ù¿Ï ÏÛ4úpß…$8!œÔF?�›Þy2qÏwÿ¹ÆfÛPclÜþ(\¸ïe)³ÕSvø†È†¦•øôÛ? œŽ{_oÝzï ÊZ¡ ®‡P-—%0åÚÕÛþaKÀµs°ˆ¨¹£þ·Ð¦#!k ‡ �ÞS—Áv*_ZCŠïؼç¸àpÊjŒ_Ñ1¸ 5/x¥1«L›ø\ãtýN¸$‚hc;4„ƈnŒŒQ5}&�AJæ¡Xþ ŒC‘@8Uv^þ‹�}‰Ÿƒ§OóIü~É$´éû~ûx.؇L|•<¨& ƒ¤3¡ ðKx+*àš Ý¥Õž>óH€ën¼]y—–’y©¹ù ºªDÛWj¼bÙ­!ÅrØÕi(=ºC*½1Q‹D@D –d�b9ìê´ˆ€”¤ÒµHD@bI@)–îN‹€ˆ@éøÿ ÑCè… ¤IEND®B`‚content/de/processes.md0000644000175000056700000000466515226251677013725 0ustar0000000000000000## VI. Prozesse ### Die App als einen oder mehrere Prozesse ausführen Die App wird als ein oder mehrere *Prozesse* ausgeführt. Im einfachsten Fall ist der Code ein Stand-alone-Skript, die Ausführungsumgebung ist der lokale Laptop eines Entwicklers mit einer installierten Laufzeitumgebung einer Sprache, und der Prozess wird von der Kommandozeile gestartet (zum Beispiel `python my_script.py`). Am anderen Ende des Spektrums kann eine hochentwickelte App viele [Prozesstypen benutzen, die in keinen oder mehreren Prozessen laufen](./concurrency). **Zwölf-Faktor-Apps sind zustandslos und [Shared Nothing](https://de.wikipedia.org/wiki/Shared_Nothing_Architecture).** Alle Daten werden in [unterstützenden Diensten](./backing-services) gespeichert, normalerweise einer Datenbank. Der RAM oder das Dateisystem des Prozesses kann als kurzfristiger Cache für die Dauer einer Transaktion verwendet werden. Zum Beispiel kann ein Prozess eine Datei herunterladen, sie verarbeiten und die Ergebnisse in einer Datenbank speichern. Die Zwölf-Faktor-App geht nie davon aus, dass irgendetwas aus dem RAM oder im Dateisystem zwischengespeichertes für einen künftigen Request oder Job verfügbar sein wird. Es ist gut möglich, das ein künftiger Request von einem anderen Prozess bedient wird. Selbst wenn nur ein Prozess läuft, wird ein Neustart (verursacht durch Code Deployment, Konfigurationsänderung oder der Verlagerung der Ausführungsumgebung auf einen anderen physikalischen Ort) den gesamten lokalen Zustand (RAM und Dateisystem) löschen. Asset-Paketierer (wie [Jammit](http://documentcloud.github.com/jammit/) oder [django-compressor](http://django-compressor.readthedocs.org/)) benutzen das Dateisystem als Cache für kompilierte Assets. Eine Zwölf-Faktor-App wie die [Rails asset pipeline](http://guides.rubyonrails.org/asset_pipeline.html) würde diese Art von Kompilation eher in der [Build-Phase](./build-release-run) erledigen anstatt zur Laufzeit. Manche Web-Systeme verlassen sich auf ["Sticky Sessions"](http://en.wikipedia.org/wiki/Load_balancing_%28computing%29#Persistence) -- sie cachen Benutzer-Session-Daten im RAM des App-Prozesses und erwarten, dass künftige Requests desselben Benutzers zum selben Prozess geschickt werden. Sticky Sessions sind eine Verletzung der zwölf Faktoren und eine guter Kandidat für einen Datenspeicher, der ein zeitabhängiges Löschen anbietet, wie [Memcached](http://memcached.org/) oder [Redis](http://redis.io/). content/pl/codebase.md0000644000175000056700000000416515226251677013502 0ustar0000000000000000## I. Codebase ### Jedno źródÅ‚o kodu Å›ledzone systemem kontroli wersji, wiele wdrożeÅ„ Aplikacja 12factor zawsze jest zarzÄ…dzana w systemie kontroli wersji takim jak [Git](http://git-scm.com/), [Mercurial](https://www.mercurial-scm.org/), czy [Subversion](http://subversion.apache.org/). Miejsce, w którym trzymany i rewizjonowany jest kod nazywane jest *repozytorium kodu źródÅ‚owego*, czÄ™sto skracane do samego *code repo*, albo po prostu *repo*. *Codebase* (baza kodu) jest wiÄ™c niczym innym jak pojedynczym repo (w przypadku zcentralizowanego systemu kontroli wersji jak Subversion), albo zestawem repozytoriów, które współdzielÄ… tzw. root commit. (w przypadku zdecentralizowanego systemu jak Git). ![Jeden codebase, wiele wdrożeÅ„](/images/codebase-deploys.png) Aplikacja powinna zawsze odzwierciedlać bazowy kod: * JeÅ›li istnieje wiele źródeÅ‚, z których pobierany jest kod, nie można mówić o aplikacji, a systemie rozproszonym. Każdy komponent w systemie rozproszonym bÄ™dzie wtedy aplikacjÄ… i każdy z osobna może speÅ‚niać wszystkie zasady 12factor. * JeÅ›li wiele aplikacji dzieli ten sam kod, mamy do czynienia z naruszeniem 12factor. WyjÅ›ciem z tej sytuacji może być wyizolowanie współdzielonego kodu do bibliotek, które bÄ™dÄ… dodane do aplikacji przez tzw. [dependency manager](./dependencies). Aplikacja może posiadać tylko jeden codebase, jednoczeÅ›nie majÄ…c wiele wdrożeÅ„. *Deploy* (z ang. wdrożenie) jest dziaÅ‚ajÄ…cÄ… instancjÄ… aplikacji. Zazwyczaj mówi siÄ™ o wersji produkcyjnej i jednej lub wiÄ™cej przedprodukcyjnych. Ponadto każdy developer pracujÄ…cy nad aplikacjÄ… posiada jej kopiÄ™ dziaÅ‚ajÄ…cÄ… w swoim lokalnym Å›rodowisku developerskim, co również kwalifikuje siÄ™ jako osobne wdrożenie. Codebase jest taki sam dla wszystkich wdrożeÅ„ aplikacji, jednak poszczególne wdrożenia aplikacji mogÄ… korzystać z jego różnych wersji. Dla przykÅ‚adu, developer pracujÄ…cy nad aplikacjÄ… może nanieść zmiany, które nie znajdÄ… siÄ™ jeszcze w wersji produkcyjnej. Obie wersje dzielÄ… jednak ten sam codebase, przez co kwalifikujÄ… siÄ™ jako osobne wdrożenia tej samej aplikacji. content/ru/backing-services.md0000644000175000056700000001143215226251677015162 0ustar0000000000000000## IV. Сторонние Ñ�лужбы (Backing Services) ### Считайте Ñ�торонние Ñ�лужбы (backing services) подключаемыми реÑ�урÑ�ами *СтороннÑ�Ñ� Ñ�лужба*-- Ñ�то любаÑ� Ñ�лужба, котораÑ� доÑ�тупна приложению по Ñ�ети и необходима как чаÑ�ть его нормальной работы. Ð�апример, хранилища данных (например, [MySQL](http://dev.mysql.com/) и [CouchDB](http://couchdb.apache.org/)), Ñ�иÑ�темы очередей Ñ�ообщений (например, [RabbitMQ](http://www.rabbitmq.com/) и [Beanstalkd](https://beanstalkd.github.io)), Ñ�лужбы SMTP длÑ� иÑ�ходÑ�щей Ñ�лектронной почты (например, [Postfix](http://www.postfix.org/)) и кÑ�ширующие Ñ�иÑ�темы (например, [Memcached](http://memcached.org/)). Традиционно, Ñ�торонние Ñ�лужбы, такие как базы данных, поддерживаютÑ�Ñ� тем же Ñ�амым Ñ�иÑ�темным админиÑ�тратором, который разворачивает приложение. Помимо локальных Ñ�ервиÑ�ов приложение может иÑ�пользовать Ñ�ервиÑ�Ñ‹, предоÑ�тавленные и управлÑ�емые третьей Ñ�тороной. Примеры включают в Ñ�ебÑ� SMTP Ñ�ервиÑ�Ñ‹ (например [Postmark](http://postmarkapp.com/)), Ñ�ервиÑ�Ñ‹ Ñ�бора метрик (такие как [New Relic](http://newrelic.com/) и [Loggly](http://www.loggly.com/)), хранилища бинарных данных (например, [Amazon S3](http://aws.amazon.com/s3/)), а также иÑ�пользование API различных Ñ�ервиÑ�ов (таких как [Twitter](http://dev.twitter.com/), [Google Maps](https://developers.google.com/maps/) и [Last.fm](http://www.last.fm/api)). **Код приложениÑ� двенадцати факторов не делает различий между локальными и Ñ�торонними Ñ�ервиÑ�ами.** ДлÑ� приложениÑ� каждый из них Ñ�влÑ�етÑ�Ñ� подключаемым реÑ�урÑ�ом, доÑ�тупным по URL-адреÑ�у или по другой паре раÑ�положение/учётные данные, хранÑ�щимиÑ�Ñ� в [конфигурации](./config). Каждое [развёртывание](./codebase) приложениÑ� двенадцати факторов должно иметь возможноÑ�ть заменить локальную базу данных MySQL на любую управлÑ�емую третьей Ñ�тороной (например [Amazon RDS](http://aws.amazon.com/rds/)) без каких либо изменений кода приложениÑ�. Ð�налогичным образом, локальный SMTP Ñ�ервер может быть заменён Ñ�торонним (например Postmark) без изменениÑ� кода. Ð’ обоих Ñ�лучаÑ�Ñ… необходимо изменить только идентификатор реÑ�урÑ�а в конфигурации. КаждаÑ� различнаÑ� Ñ�тороннÑ�Ñ� Ñ�лужба Ñ�влÑ�етÑ�Ñ� *реÑ�урÑ�ом*. Ð�апример, база данных MySQL Ñ�влÑ�етÑ�Ñ� реÑ�урÑ�ом, две базы данных MySQL (иÑ�пользуютÑ�Ñ� длÑ� фрагментации на уровне приложениÑ�) квалифицируютÑ�Ñ� как два отдельных реÑ�урÑ�а. Приложение двенадцати факторов Ñ�читает Ñ�ти базы данных *подключёнными реÑ�урÑ�ами*, что указывает на их Ñ�лабое Ñ�вÑ�зывание Ñ� развёртыванием, в котором они подключены. Рабочее развёртывание приложениÑ�, подключённого к 4 Ñ�торонним Ñ�ервиÑ�ам. РеÑ�урÑ�Ñ‹ можно по необходимоÑ�ти подключать к развёртыванию и отключать от развёртываниÑ�. Ð�апример, еÑ�ли база данных приложениÑ� функционирует некорректно из-за аппаратных проблем, админиÑ�тратор может запуÑ�тить новый Ñ�ервер базы данных, воÑ�Ñ�тановленный из поÑ�ледней резервной копии. ТекущаÑ� рабочаÑ� база данных может быть отключена, а новаÑ� база данных подключена -- вÑ�Ñ‘ Ñ�то без каких-либо изменений кода. content/th/backing-services.md0000644000175000056700000001220515226251677015146 0ustar0000000000000000## IV. Backing services ### จัดà¸�ารà¸�ับบริà¸�ารสนับสนุน (backing service) ให้เป็นทรัพยาà¸�รที่à¹�นบมา *บริà¸�ารสนับสนุน (backing service)** เป็นบริà¸�ารใดๆ ที่ app ใช้บริà¸�ารผ่านระบบเครือข่ายซึ่งเป็นส่วนหนึ่งของà¸�ารดำเนินงาน (operation) ตัวอย่างเช่น รวมที่เà¸�็บข้อมูล (datastore) (เช่น [MySQL](http://dev.mysql.com/) หรือ [CouchDB](http://couchdb.apache.org/)), ระบบ messaging/queueing (เช่น [RabbitMQ](http://www.rabbitmq.com/) หรือ [Beanstalkd](https://beanstalkd.github.io)), บริà¸�าร SMTP สำหรับส่งอีเมล์ออà¸� (เช่น [Postfix](http://www.postfix.org/)), à¹�ละระบบ caching (เช่น [Memcached](http://memcached.org/)) บริà¸�ารสนับสนุนอย่างเช่นà¸�านข้อมูลเป็นà¸�ารจัดà¸�ารà¹�บบดั่งเดิมด้วยผู้จัà¸�ารระบบเดียวà¸�ันà¸�ับ app ที่ทำงานหลังจาà¸� deploy เพิ่มเติมจาà¸�บริà¸�ารจัดà¸�ารภายใน, app อาจจะมีบริà¸�ารที่ให้บริà¸�ารà¹�ละจัดà¸�ารโดยบริà¸�ารภายนอà¸� (third parties) ตัวอย่างเช่น รวมบริà¸�าร SMTP (เช่น [Postmark](http://postmarkapp.com/)), บริà¸�าร metrics-gathering (เช่น [New Relic](http://newrelic.com/) หรือ [Loggly](http://www.loggly.com/)), บริà¸�าร binary asset (เช่น [Amazon S3](http://aws.amazon.com/s3/)), à¹�ละà¹�ม้à¹�ต่บริà¸�าร API-accessible consumer (เช่น [Twitter](http://dev.twitter.com/), [Google Maps](https://developers.google.com/maps/), หรือ [Last.fm](http://www.last.fm/api)). **code สำหรับ twelve-factor app จะไม่มีความà¹�ตà¸�ต่างระหว่างบริà¸�ารภายใน (local) à¹�ละบริà¸�ารภายนอà¸� (third party)** ใน app ทั้งสองบริà¸�ารจะเป็นทรัพยาà¸�รที่à¹�นบอยู่ใน app à¹�ละเข้าถึงได้ด้วย URL หรือที่เà¸�็บ locator/credentials อื่นๆใน [à¸�ารตั้งค่า](./config). [deploy](./codebase) ของ twelve-factor app ควรจะส่ามารถสลับสับเปลี่ยนà¸�านข้อมูล MySQL ใน app ด้วยบริà¸�ารภายนอà¸� (เช่น [Amazon RDS](http://aws.amazon.com/rds/)) โดยไม่ต้องเปลี่ยน code ของ app เหมือนà¸�ับ SMTP ภายใน app ควรสามารถสลับสับเปลี่ยนด้วยบริà¸�าร SMTP ภายนอà¸�ได้ (เช่น Postmark) โดยไม่ต้องเปลี่ยน code ในทั้งสองà¸�รณีทรัพยาà¸�รจัดà¸�ารด้วยà¸�ารตั้งค่าที่จะต้องเปลี่ยนเท่านั้น สิ่งที่à¹�ตà¸�ต่างà¸�ันของบริà¸�ารสนับสนุนคือ *ทรัพยาà¸�ร* ตัวอย่างเช่น à¸�านข้อมูล MySQL เป็นทรัพยาà¸�ร; à¸�านข้อมูล MySQL 2 à¸�านข้อมูล (ใช้สำหรับ sharding ใน application layer) มีคุณสมบัติเป็นทรัพยาà¸�รที่à¹�ตà¸�ต่างà¸�ัน 2 à¹�หล่ง, twelve-factor app จัà¸�à¸�ารà¸�านข้อมูลเป็น *ทรัพยาà¸�รà¹�นบ (attached resouces)* ซึ่งเป็นà¸�ารระบุ loose coupling à¸�ับ deploy ที่ทรัพยาà¸�รเหล่านี้à¹�นบใช้งาน A production deploy attached to four backing services. ทรัพยาà¸�รสามารถà¹�นบà¹�ละถอดออà¸�จาà¸� deploy ได้ ตัวอย่างเช่น ถ้าà¸�านข้อมูลของ app ทำงานผิดปรà¸�ติเนื่องจาà¸�ปัà¸�หาของฮาร์ดà¹�วร์ ผู้ดูà¹�ลระบบของ app อาจจะ spin up เซิร์ฟเวอร์à¸�านข้อมูลขึ้นมาใหม่จาà¸�à¸�ารข้อมูลที่สำรองล่าสุด à¸�านข้อมูลของ production ปัจจุบันควรจะถอดออà¸�à¹�ละà¹�นบด้วยà¸�านข้อมูลใหม่ -- ทั้งหมดนี้ไม่มีà¸�ารเปลี่ยนà¹�ปลง code locales/it.yml0000644000175000056700000000041515226251677012101 0ustar0000000000000000it: # Name of language listed in locales menu language: Italiano (it) # A text to make known that the article is a translation not an original. # Empty for English, original. translation: (Questo testo è una traduzione della versione originale in inglese.) content/en/build-release-run.md0000644000175000056700000000467615226251677015252 0ustar0000000000000000## V. Build, release, run ### Strictly separate build and run stages A [codebase](./codebase) is transformed into a (non-development) deploy through three stages: * The *build stage* is a transform which converts a code repo into an executable bundle known as a *build*. Using a version of the code at a commit specified by the deployment process, the build stage fetches vendors [dependencies](./dependencies) and compiles binaries and assets. * The *release stage* takes the build produced by the build stage and combines it with the deploy's current [config](./config). The resulting *release* contains both the build and the config and is ready for immediate execution in the execution environment. * The *run stage* (also known as "runtime") runs the app in the execution environment, by launching some set of the app's [processes](./processes) against a selected release. ![Code becomes a build, which is combined with config to create a release.](/images/release.png) **The twelve-factor app uses strict separation between the build, release, and run stages.** For example, it is impossible to make changes to the code at runtime, since there is no way to propagate those changes back to the build stage. Deployment tools typically offer release management tools, most notably the ability to roll back to a previous release. For example, the [Capistrano](https://github.com/capistrano/capistrano/wiki) deployment tool stores releases in a subdirectory named `releases`, where the current release is a symlink to the current release directory. Its `rollback` command makes it easy to quickly roll back to a previous release. Every release should always have a unique release ID, such as a timestamp of the release (such as `2011-04-06-20:32:17`) or an incrementing number (such as `v100`). Releases are an append-only ledger and a release cannot be mutated once it is created. Any change must create a new release. Builds are initiated by the app's developers whenever new code is deployed. Runtime execution, by contrast, can happen automatically in cases such as a server reboot, or a crashed process being restarted by the process manager. Therefore, the run stage should be kept to as few moving parts as possible, since problems that prevent an app from running can cause it to break in the middle of the night when no developers are on hand. The build stage can be more complex, since errors are always in the foreground for a developer who is driving the deploy. content/en/concurrency.md0000644000175000056700000000507215226251677014254 0ustar0000000000000000## VIII. Concurrency ### Scale out via the process model Any computer program, once run, is represented by one or more processes. Web apps have taken a variety of process-execution forms. For example, PHP processes run as child processes of Apache, started on demand as needed by request volume. Java processes take the opposite approach, with the JVM providing one massive uberprocess that reserves a large block of system resources (CPU and memory) on startup, with concurrency managed internally via threads. In both cases, the running process(es) are only minimally visible to the developers of the app. ![Scale is expressed as running processes, workload diversity is expressed as process types.](/images/process-types.png) **In the twelve-factor app, processes are a first class citizen.** Processes in the twelve-factor app take strong cues from [the unix process model for running service daemons](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/). Using this model, the developer can architect their app to handle diverse workloads by assigning each type of work to a *process type*. For example, HTTP requests may be handled by a web process, and long-running background tasks handled by a worker process. This does not exclude individual processes from handling their own internal multiplexing, via threads inside the runtime VM, or the async/evented model found in tools such as [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http://twistedmatrix.com/trac/), or [Node.js](http://nodejs.org/). But an individual VM can only grow so large (vertical scale), so the application must also be able to span multiple processes running on multiple physical machines. The process model truly shines when it comes time to scale out. The [share-nothing, horizontally partitionable nature of twelve-factor app processes](./processes) means that adding more concurrency is a simple and reliable operation. The array of process types and number of processes of each type is known as the *process formation*. Twelve-factor app processes [should never daemonize](http://dustin.github.com/2010/02/28/running-processes.html) or write PID files. Instead, rely on the operating system's process manager (such as [systemd](https://www.freedesktop.org/wiki/Software/systemd/), a distributed process manager on a cloud platform, or a tool like [Foreman](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html) in development) to manage [output streams](./logs), respond to crashed processes, and handle user-initiated restarts and shutdowns. content/ja/toc.md0000644000175000056700000000271215226251677012475 0ustar0000000000000000The Twelve Factors ================== ## [I. コードベース](./codebase) ### ãƒ�ージョン管ç�†ã�•れã�¦ã�„ã‚‹1ã�¤ã�®ã‚³ãƒ¼ãƒ‰ãƒ™ãƒ¼ã‚¹ã�¨è¤‡æ•°ã�®ãƒ‡ãƒ—ロイ ## [II. ä¾�存関係](./dependencies) ### ä¾�存関係を明示的ã�«å®£è¨€ã�—分離ã�™ã‚‹ ## [III. 設定](./config) ### 設定を環境変数ã�«æ ¼ç´�ã�™ã‚‹ ## [IV. ãƒ�ックエンドサービス](./backing-services) ### ãƒ�ックエンドサービスをアタッãƒ�ã�•れã�Ÿãƒªã‚½ãƒ¼ã‚¹ã�¨ã�—ã�¦æ‰±ã�† ## [V. ビルドã€�リリースã€�実行](./build-release-run) ### ビルドã€�リリースã€�実行ã�®3ã�¤ã�®ã‚¹ãƒ†ãƒ¼ã‚¸ã‚’厳密ã�«åˆ†é›¢ã�™ã‚‹ ## [VI. プロセス](./processes) ### アプリケーションを1ã�¤ã‚‚ã�—ã��ã�¯è¤‡æ•°ã�®ã‚¹ãƒ†ãƒ¼ãƒˆãƒ¬ã‚¹ã�ªãƒ—ロセスã�¨ã�—ã�¦å®Ÿè¡Œã�™ã‚‹ ## [VII. ãƒ�ートãƒ�インディング](./port-binding) ### ãƒ�ートãƒ�インディングを通ã�—ã�¦ã‚µãƒ¼ãƒ“スを公開ã�™ã‚‹ ## [VIII. 並行性](./concurrency) ### プロセスモデルã�«ã‚ˆã�£ã�¦ã‚¹ã‚±ãƒ¼ãƒ«ã‚¢ã‚¦ãƒˆã�™ã‚‹ ## [IX. 廃棄容易性](./disposability) ### 高速ã�ªèµ·å‹•ã�¨ã‚°ãƒ¬ãƒ¼ã‚¹ãƒ•ルシャットダウンã�§å …牢性を最大化ã�™ã‚‹ ## [X. 開発/本番一致](./dev-prod-parity) ### 開発ã€�ステージングã€�本番環境をã�§ã��ã‚‹ã� ã�‘一致ã�•ã�›ã�ŸçŠ¶æ…‹ã‚’ä¿�ã�¤ ## [XI. ログ](./logs) ### ログをイベントストリームã�¨ã�—ã�¦æ‰±ã�† ## [XII. 管ç�†ãƒ—ロセス](./admin-processes) ### 管ç�†ã‚¿ã‚¹ã‚¯ã‚’1回é™�りã�®ãƒ—ロセスã�¨ã�—ã�¦å®Ÿè¡Œã�™ã‚‹ content/ko/intro.md0000644000175000056700000000217115226251677013061 0ustar0000000000000000머리ë§� ============ 최근 소프트웨어를 서비스 형태로 제공하는게 ì�¼ë°˜í™” ë�˜ë©´ì„œ, 웹앱 혹ì�€ SaaS(Software As A Service)ë�¼ê³  부르게 ë�˜ì—ˆë‹¤. Twelve-Factor appì�€ 아래 특징ì�„ 가진 SaaS 앱ì�„ 만들기 위한 방법론ì�´ë‹¤. * 설정 ìž�ë�™í™”를 위한 **절차(declarative)** 를 체계화 하여 새로운 개발ìž�ê°€ 프로ì �트ì—� 참여하는ë�° 드는 시간과 비용ì�„ 최소화한다. * OSì—� ë”°ë�¼ **달ë�¼ì§€ëŠ” 부분ì�„ 명확히**하고, 실행 환경 사ì�´ì�˜ **ì�´ì‹�성ì�„ 극대화** 한다. * 최근 등장한 **í�´ë�¼ìš°ë“œ 플랫í�¼** **ë°°í�¬ì—�** ì �합하고, 서버와 시스템ì�˜ 관리가 필요없게 ë�œë‹¤. * 개발 환경과 ìš´ì˜� 환경ì�˜ **ì°¨ì�´ë¥¼ 최소화**하고 민첩성ì�„ 극대화하기 위해 **ì§€ì†�ì �ì�¸ ë°°í�¬**ê°€ 가능하다. * 툴, 아키í…�처, 개발 ë°©ì‹�ì�„ í�¬ê²Œ 바꾸지 않고 **확장(scale up)** í•  수 있다. Twelve-Factor 방법론ì�€ ì–´ë–¤ 프로그래ë°� 언어로 작성ë�œ 앱ì—�ë�„ ì �용할 수 있고 백엔드 서비스(ë�°ì�´í„°ë² ì�´ìФ, í��, 메모리 ìº�시 등)와 다양한 조합으로 사용할 수 있다.public/12factor.epub0000644000175000056700000031361415226251677013104 0ustar0000000000000000PK D@oa«,mimetypeapplication/epub+zipPK D@®•âè¦öMETA-INF/container.xml]ŽA‚0E÷œ¢™­�êÎ4wž@PË€�íLC‹ÑÛ[Xâò'ÿý÷ÛË'xñÆ)9& §æÉrïhÔp¿]ë3\ºªµLÙ8Âé¯[hJ扛ä’"0©lG¤ží�²Zkj�®¢�˜óà<¦%í²fïëhòS”�†ã"`ïL�¿5˜½³&—+’ñSìËŒx(.r5È�¢•›¾ûPK D@#¾cl¼Œstylesheet.cssuÏKŽÂ0 à=§ð† RA �E{ .�6NcHbT»�ÑÜ�´ YÅþ?+Nv¸x°è(¡€èòa’….‘\�‚(�z„–ù›Ýªe;ÁD3ô”ª€Nk8­›w0Pï¿åûWß²*ÇW¤øÐÊêS ×Q”ÜԀ㤕Ð/ÖÑÒø_ul1¯]Ì™HaÊʉån:œü>óç}&Åa¡Ÿ2Êt,Ó©Lç2í·JæoÌoÚšQ=K÷PK D@`=X “title_page.xhtmlu�MOƒ@†ïüŠqî0n{4µѤjÓlS="Œ,q „]Kûï]h›xÐÓÎfžwž™hrÜk8pkʺŠQ·\eu^VEŒ[¹ôïp’xÑÍüu&ß× PÖñëíÃêièíÆ3¢¹œÃÛ£|^�Ñ╵Í=Q×uA7ê¶ ¹¡c¢\ë ·9:Ã0Ø-S™ø�¬ÃðœXNs÷ØÒjN¤b�ëûË4³u Ó¦‰èÜô"]V_ ZþŒÑØ“f£˜m�ƒ`O Çhùhiø·¬Cäòt‘}Ôù©W ÈtjÜ’ƒÿÓ+Ñã+œ~[U·˜Lót»²(ÊÊ8h”xÎpMýy‰÷PK D@4Z‹k$ content.opf¥–Ënã †÷} Ävdcœ»•¸ê,*ÍzZÍrDÛ¨6flܤo?˜¸ÆQWKÎùùç"`ÿx®JðΛVÔòqAÀ%­™�ù¾¾<[ø˜>ì¡o$çN÷J³W¶Xh­„N§S(˜ÊºÉQET« ‚NŠãR‹LðæÖõÛ/ÓöׄM.°„Ñ‘§º¦´,F/yeö·‡ �ƒÿ"xÁÄ`4)‰Ì;“AÊeðú{�¦¦Q¤….yúRpðrâå;ž Õuž”²;.þQîR‚¹¬ºF&]'XÇ$&›# ÖÇh,w Žq¶ ¢(&ÏŽÛl[®98m8éc›4’¦.ù’NÃô‰‘ üy.dk÷ºac_M Ieä´6Í‚€ÖRú°De2†ÙÚ£Ïâ_:A¤Èx«”м²yIz† h¸)¶®ih—g‚úCõçRª”h3è0}4ЦCC”)ªÕ%ÿ„ÙE[p®CÚ¶×LÍÏYë cÈë°‹ð\è>ÜÝCõî;'²-ý«lQ†G‹—xæhu-êM߆à[þ6$º…D_CÌ£1y'ö­’ó.\Þ‰Iƒ6‘\½ (�”˜ç_Öך(§×ñ‰½YïúâßbÆ·œñ­f|ëßfÆ·�ñíær�æœs•Ás¥Á‹±½¶£æË‡†?_úPK D@ÓHÛöo) toc.ncx�–]oÛ †ïû+×slœïÈNÕuªT©Û"-›r7a 1š ÆIº__p“µTkcsöy�^'×Dz{¦j.E Ñ ‚€ ")»þ\ß3x½¼J9¾DÅQ4F*êæZW‹0<Šyý8�jþÎg“ÐF†FÂåIÎ0µ3,™Æ@à’¥�êlÑp ‘B3¡SØ(±hÌ£EãO3L2óÉÑ|K‚,Þ΃(ŠqĶÙl;‰!ÿŸ“²J篲¢w#µÔ¸Xổ�Я$Ñ»’­à[SfL]T¹w¢ÚyÀK“ោçâ$T’5×;¥Ñ쨗ëœ�õ�{Üa¢¥7U•„í»VýZ”¼ÿŠ«“ÞLV’ 8Máyb·¯*ðãwE™²¥y~À+ÎþØìÀ®ùå³íÛð­"9-ÔŠ¤P[ÝïÊèÇ\—ÅK}Â3̇ ±_½ZIÚmÎj?T’#?Æ¡Ã8ìÀ8·’² ×=«IòØqä Ž: Æ/¬b‚šû€³º/çÐ�sìpŽ»p¶Å[¾ë‹8òCœ8ˆ“ˆ¿à3&Ì� ~0µç¤9Ç~¬S‡uz™Õ¢6¼ Ÿ€b3çÓ šÞ}4ñ£�9´³´fïWJšzÖýK:õƒœ;�ó.�–R* 2.¬±ö�ù�¢È½ã£N¨ÏÝD¥Lß?öE�{¢¾±£~t¿1÷¯+YãŒ\÷FE‘'«ëH¨ƒ%YT¶+ãK ÂÊÖÓ™�kM¨ƒ7mÌ x�»Þí„<� ¹Ö„:xÓÆžÒZr*ßîGT;k¢û»|PKcˆC@‹ÍsBóL|Rimages/img2.pngì»uP\ÁÓ6Š,°øâ`q îî‚ x°Ü‚»[,$8Á!@Bî w‚»»û· ù½ïû}u«nÕ­ºÿܺU»È™sfzzfºûé§O¤šŠ<&)¦¢‚Œ|ôëD†^AþÙ4 ý…ꨠ燎ûÂÃ¥¦ÃÁ�áe$µ<à÷2PkñÕÝ£«S{Ø@D 1¤˜ >þSpv-^[rÅ,qr©Ìïq–ˆ#Ê&΢a]$‡H ƒ±w™�ñ@’¹‚–X$#É'y0ShS´ÅíR°Ñ7Â=ê :ȯ}¦íÆÚ²½åP_RX:¿?דŒ€}d^šT‘e_ËJd Ÿ€9Ä•â©) O’—@ŒÌ+õØ$�¬¸ñx=BBQ&Y¢Saž@ ÿ¯¹•¤2¿@•›çøø8V .)-ñKâ n*ñç9j/`÷�ço¬!«ˆ`L*i°35ú¡“—#[G ޫͲ’k"¬dÓ?޳‹Ú9¾Ú‘c ©°F ‚Ý "œ"¡ À"Í–äÐð–ç…+Ñy ;Uâæ¤u±Fê6:@E� ¤Æ‹H–<žŒÂzÙæáˆ–¡õ4ž,-ˆ%PÞ¶%u­LÌ"†ÆÆ€ðØ7Nà1­Æ[5Ò@z\ПÈ'-É€ù�Q}êT:Ͼ¸Ú+Ô¶žô…¦ VAfF­�ÚVóX-‘|L¨ íÆ7¢­wu¤ŒÓBHeëi`A܈PIš›’låÚ0óÞl×')ÛAQ’¤¸¸YFtø¸I•°A%šQµ¡’‡Îê Y¼)²nPIbƒu�V;BFí«äåðJVƒWá!`‚]ý ìlcþPAÊuP‘™a�Õ†‘QGÝf_S�—q}ï?�ð(XI~ì†Bø�OÁ$~Ï5ãW¡ªî1lNÙ æ ðÒ~„¾Rž·¶}£OòÐÕg.&ç‰ùÃZáÕ  2}ù2yÒªýFfÒ n×A·¸cŠëÈýòx»€yÜqd‰ä€ª‚gÄÍ0¸W«|äIy°Æœ8ScüVušÔÃW1ù0uÀã(¼ @HÞœ—. ËÛšZŠs™—¼äcÈÄïœ{µ2×àî ¢ÁLý4 w„3ÇïýÞ9ù` e‚¿ü3Ö+Ï86×: ð»Š�ÈW™– ÐÐþ𸔫RÈLD^B¯ž&äÝðÇaH‘ÿãÿGÏô™ÔôjFMÒÃ!šTäà2°“» œ ÁjtïøƒÜ‰·ý·ð ’ÌwœèÜ ª©�Æ*=Þêß&<(-8a[ãSRjÝ/2 v•ü"ÆZ]Žñsd\„[?¨¸ä¶$´wJû‘*ô—�U"| ìËvþ\Whm) {¶¦«5‹E‰%þ¬F¥´eMR¢%©×,}¬7 ËÏQ´?’•Så° ö ¿á2œÒïíú`–ÃGV}ÂÝ0ñéÚ§æ I'œˆ Ñô$õ ãÓú#Ù¯RùéËßí±ˆO+q®òUáÌ<^ÿ.µ]F!Àb÷¿zár:,Ÿâ‡òa¶ýWQšz®Üç³�ÉÞ™U`ú ‹a~;5ˆþå´¬¢±Ûdrë “I;ñOÛé‘ËÅ`.9ë·Ç±ñ>=¿�VùÛ#Yâ¡Úùà °.îQgmQt?F•¥}åb3ˆ_)Bdý•‰ÏM¾,S«Ù"p)ü¢/¿v¦"@â©­²íJwQäcn!D(ÌxŸj=ñõsZðÃøö*3>a #*T_0AB[©ö%3„¶¼¶�‹X Züî´FS�+öˆó#%8¡÷$Vo÷¢æ1 c’®æöM%áÔJ¿iI´ÿüQŠœU:*�àówI°�Ѐ¡qÛe J³¨ ´à`­„Ž/r�¶ôº>¿úÆÍ`�ñÿýÇdÞ@{o®!Í�p…ä„dsÈnÀ×@µ ︞æ#2³ZT×½¿ãjh[Õösï¼.ö ½Ð¦Q’YŠ�´ME\Úa>Û&çÒž:åayÞárOn‰¥y‘ïuwíëšÓ��©­ILš}VY¾„6ÈÛ>¸ŒÉqÞöT€·¢Õ™{írÉ�Ùz/ýJ0F"% €»³u£"÷—+N[å×$Ü²Ü ‹×øy¢«,=;�aÈ X^òµt-ãÁTªtl˜\v%‚”;xÕš=§10%<¤A7–·¼‹¾ƒJÅË ¡ñ(‡©om§›Ã å† }†îs*bW棥:ìì·ã:"n¢ü>—Ž.G¿ˆ¥TÏ{[62½Eú×ûÓúÏ&�¼Îw·’½»É݉I‰w¸’»}¸­x®Üw©Že³¿ñGÁ¬ð‚%XšÝö"HžèǨæÂæDæ4æ‚«N=À_s)BéU™lÀ[Ý·Zê…úµŽ9ƒiüƒ'Å…T_pR9Lƒ> 8}!á³ýT·ü�¥‘S—Ùý|Ú*�ÓL ´±›U¯²shñô`aÁÀm\Û¨}ê»Y?:{£IyÝ:©*ýËTó®8Ê– °xR‰ýRƒ …×&•KÒm=B²|ö[dTよ7Ø&gÔ¡Pr¾JG ñ˜¿ç}nO1f·€…i÷Ý÷25?YÜlÉ/ÐQæ¿›…ëÕ»[�äEê}3 ´**PÍÚÏçÎj²Ù-Œ\KÒ�´×¨³Ÿ«ÿLÈúš–ª^·õÅ`l¾\¹¥Í�¾Ï+¡zÍvQeÜñ¨�Zkœ¾û³uÐÃ_üÞ× [GÐûQb#á°«€yœžšëô)o%\ò<Ô5DÅWõÒ™B„ Oá™g=S]¦÷ýMèg>»Ôéfß�oÓUÖ‰D…͆ ï×#hb9v&ÊN¶óÚ¾ •6LœSÞìÕ«YÜ]Üߤ­ýIa»;ÕdïcXU9’ao´Œ¹¸yL}°!ªKˆ¤ N‘B<1-ä¼ÓE�‡YÄÎ6MåÆF~Ú—oÀ±x míd÷Õ¦‹y›Ú;ÁÂR>ÛÍ2ζ‚û~‹—+$,¤Ïë±Z¡c{ï­eöŽ7r·c3s{�¾u …ü-x™æYÑxüA¯êmBsº„–»€��™y<¿”6¯.éS|ÜŽ*c¸¨‹ [àBZ¡¼júÆô¬øqt\T. Ȟϧ¥ØyÉêñƒwÅ~Ãï8^:ý›"-hœ|Ä[ì�¾itíQæh=Ë'fˆÖØÂ˜jU~-ϘüùÈÚÖq± "VV7|P3Ÿ, –.U¼¿n$XB5�È0¼”ÄæÝ‘¾*{MǬRhÛ1Ö{Vþ•ZM A�„öþa3Ct¥jΗä˜QÐ0ïÜÐh;ÍõÃëçMZ×Kí)ºÃý†ƒÔ‹ù‰xFh±µ‰?Ò¡x/Pw"¦V[�Òvñ…–qÈ×ðÝ 䥛�0©‰Lö¥?‘Ap‘Ø OÞ‰ýP—§ºS@ÏÆd˽¢ñóFÎ"-Àjè2VfüJYRW0V`陇XBð¨Z‚ßÚÏ%PÒBNÃâ”°%àd‚Hø! ¤E²Zú£Ä.!>_”Ï™�ßÒ˜|MmIï1¨—Ï_bž~‡þlâ°+D!c¾hM>¦*p#¶±Þ}£ÿ'w‘,Ù{Zær{4œFêú%”�°Ó\}sãÃ`V¿¿<Á®tõÑì j2„*DdçSHÂü˜Úo+íNßlÒrYgC ,ÿ²Ö8‘æ’*¥L -dèxŒWš¹�¤@WÆ×>tyâyˆ2 p|Ô=áµxÜÆr, tÐuç¥m*ΡU ?¶Ág«Æ¤2vV9Á w è¡Ã€ž;,D°=Þ‹blí¥)­˜‰µ6Îh`0óå×­~+‡‚–ûÍ ¦‘>h†|mìíO^1Ài²YU¨'IæAmÑÜ019ží}ó;ÍëŸ#¸#ÂýÚ{ØÞZ]š^¾ ‹gGÈ—�ha~aŠ?VºDÂRâ’Û›©áïÃäÖÖÖ“Sð@¶îMb²\üC(ö"ɱ¦µ¨!·óŒN‡!^yúûÆ%—ãþƒ�òdí;û+‹¿6�r:I…FA~�³Î³/!Pïåy{ÔÝÏT˜Nm–”4Ç>SÅ™bøþ3‰¸_# 5$.#Y�­Éd›Ã¢jGÉ¥uŸ[ >ÒÔvò7†Ýâ�ÍA> nÉhQª‹¸—‘.>®ðÄ�òâfó°„w9N¢ŒÇ¾‰k_Æ’g®ƒŠe³7a»ps tSæš±>¾öÑ5r¤;µõ³ý{Ë­óhªÿJϸÜâ”Yoc"†ÀÍ«¤€×ê8ŒbÐu¹òÓñ ã’­ñ_Üñ*PHTÄ:ãÀ Ž½ÖÒkàéþœð§á<0Î/и4æÞ-ÅB�¬v9%|ß1ÁëÏX êé€KzäÁñ ãÇ^¶g�ÁXBŒŸ¾K«åÔedÁЇ/n±ÐÌ\³÷DÚ}†~¦­îì ïÙ^QCd±>°hËúê SæË½xr{0÷²•õ€ï´àVÔT{rˆA0wµ�4ÊÀå¸öä ôž¤`êüf_…ÞŽBviTFDµCÕÎ’\—ú/[ÿ¸¹;$´°y=Þš:RÈPÿË’¹ ÄÏRÅ Rm"]±äõ’#vQ½ ò…YµÇ$WòKèÆ˜¹PsŽ)â^¥�ر— qxëAq놇OøèÆ‹ `Aàb#NûV{78˜ªœ,¨'Tð€ñŸ1¡n,o_l&GWþºu-ú’¹óJ Ñpd&½Tûú)³S$ót7Èa|ÖÙÕ‡g7ùŠ)¯ŸæÖ„NúãÍ3ÓŒMZ³#!ÄO!m·pç%&ÁûöbáÇÄQ,ܤõG‰üÙƒMoˆ Äu¿Íu$J‚ wóïO/² Ù(µ&σæ›òº�ò†¾ãµ?˜Õ˜ ó¾wg“iPà²ÑÄFÀˆ Z@'G@17L!KbÏF@ÆÀƒ˜"oÌ#Ó«ÌÕÒ`•°tÅ�LÉöZèF‹’˜Þž×´œEWøßÙœŒëf©hñ�¢£õæ›S©ÄÚ ôä¿ ÑȨÈádý}acS ¿ÂGïYzÜŸG�¤5—¿Â¾j–òk.6%5†¤�ò†Ú=Áð„\-ÂV- õ§î3hÜ·ºà±¢¯î¦´ÊÏјsY`é×ça<áZ’÷pñœÌ?J;ÿŠ;.JŒ6y»ÿð]Ð 5Á{+ð‹Ïm[‹½Ù´y4W»ÃǵáýÞqAÏÁ»>a¼�ç—‡KëËQìÕÛ!âžÇæìw™ÞûG®iüçSP`g­»Nî>kú~ösOV±HšSw,ùz¼<ÅѦsþÊéÕ(‰i ăAšŸ4áÝ ‰ÊÊðÙ×óvÿe¶H‹KîU³¬…,´÷K�$M@;N¶zŽägA—÷ÖöPtQÿùFÏLUÑP Ò\*^_g$^ÿ7ÓŽ>ƒ¥PëΠý݃*õÞ¦× t/D‚G[üý]Ƶ¡'8š\x¢ñ°}=Õ¦üÈ|$OÑòöò¨mY¹äxV™çSz³ða+b¿ÿÃ…ƒ"Z”„TÀÙþS¾¼MÖ…Z +ʵòX‹Ë�á:=‚)Êöî–‹£»K-§Æ­)x��8ÿàÝ’a×Hþ‹¦²A¢çº‹$%[£…Þ[|YM.ÿÁv�ULšÍ7Ãeúü£_dÑu,Êö…\ÛP` ºS—õ¾£öç ¦;ÊæR`mOûkBêúë6ŽYBtV3v®®A�J`¨\G‘õ>öÝ ç›óa‡X‘š�>­_Bä6@õ%ç§LИCM[{�Àõ é"“ô:[mkCë‰Ó;¡´G¨H[žÈQrQlãX?½÷´Ol:…in³¹råãÎ à=mG |ìQTᚎ?,™-%MûÏ�ÖQ÷ºŒ’t‘–~qJÀ T¢R;IÓúau!•|Ð*t3î8˜[ ÁíÇWQ´ Æ�Þ�ª4³«Ž¥Z˱}ï¯6 ̺caºÀec ÌIH8¹Ë±Åïnó3‘±Ïp_ª¶(·¨I+œjÊV°;G02&‹N9Oœh—©Ë¬S·§XáÖ¼ÏÉ˃Àp(ÚÍ¿ù†-ÄqƒlÝ”þ�5bgÐ?=ÛUÌ¡]ÝÍÖŒCÓ'G6Ì·CŸx‚mÃQ—VÄ|˜íW¤ÔÌM1¨¢€iìÒnJ„�ï`°ðø^¡wë›a½‡Rùt_–ø‚>Ê›z78ý{ÞÆ´/+‰®D†®ñ/6±a˜Ðòÿ bPÎX6ÑÈÇöéÆö·¢_RÒŠ™´5“r‡Aý¬p,˜ŠÉËØdöR¯æãbyK|:ðCJzÏYxuR÷ÖøÌ\˜úʱ¨míÐmg=;v{ܾ46r„E&VûÞœ¯¶ÊdÚ:ÿ¨±BÈndËõª5ŠB†¤hòJàr�À×îØ½ù’ËÛœ�#uÛY[ùDOF��©°ó½Š ÷#Ú¾…üü‚yσþ꟪÷É9@º¨'f =0 ¹˜8&ü{òÙi¨c³bˆ�v–Ä¥䀯0qŽêщ8A£Ù¤Œn"¹ Yã?¦‰“2nSc¡%RF�¸:£šÌf+fø/Ï&¨:ÝVËä<õò¬,ŠúùZ➀þÇñ'¦%˜ä®Ðfß1u ¬·¡ZáLR üü‚H峡tVš²£�…ó4“g$“èK¾q‰Ëˆ÷bÑ8[˜¡>XžhkY¨‚ vá²è½¥¶b%˃ûÈGܨêûkÔœIÙ¾¦­[í"?è]€‰éø{ÝßÓ±$hüëÁt_ÁÃJÆÁü;WŠ�=¿þ*pAÊ“PFðAÉd¥+F¶L5ê ðc%ˆƒÍ�n…R�¬Z˜ˆ–Ö^ôèG`»‰ûzR«½E¶CÒ¯¶åįsÔ†k´–¡vöC8|ºŸ‘OÆ•{Úö�”ËÈ;Ü(7‘¹qöÉÆ�ÖUU:B“ûò™ä1P¿ºÞغû¹¹¡Ò·ºO#Í–H¨ãDDC‡­êq˜Ëç FÇñC¬7[Eï™ÕÇ•49fqXb‚;¨NÀdTÆRb�}�ÈKI«2`øû8Ö¥ÚñZK„R�Šóy1ŠAnÛSÓ@MÉ\Ø„/ÉJÍñOÙº¦´ qÚÇ…à.®«mR1IQÊØKò�°bNA îâGÔ(æu¹˜;wW—* �MåŸu ®qkÈ]ÏX/…å"’$ä‚C¾¤ ·sƒçÉ@þø¦Íáû¢=)�‡`Lß‚”|jýö;Òœ�HÝíVTµ…T!Å¿x­u] çLlÁá”~SŽ)°Dû»PÉ€Qׇûƒ‡}»9 8gtÝ}ŒM|˜.e~RâRÆ,sõ{l@÷ìŨ!qA'å»Þ·ËöªÀ,þð†rf|¾&µ›6Ž^º'�ݾ³~M?´gþYó¸Z¨=xùAÛê;3�Œ*Í#—´ Ñø1Ê~hlæãÂVŒKáòøB ÝSçÄX rcjâšÈ} Ù]”òkÍq–Þ|Õu–J`?«-rï¶y)0D˜w@¤¨vŸ^¦ݓ⪖¢ÿŒ» t¡œ|ºðºýc©'u:óÁWÏyÖ8õ—½mþ�N£N´P30B¨)'Ù&;&6ÿ–pzŠùp'ŽšOá5Þ#V²Î ŒÝhÐAœz±�—¹yš™ÌýÓ{ 6�à‘tøÁMoR�±ÓôL¹¤n«§ÌTc†¡J<)ñ®ž–­—>ú£ŒL¤ï*ì—à\·¦L5 Ÿì+kK¢Ð'®°m^:JbÈ1q �&½J¢Æ �æòpDóÉA°hUÍЮ<=}u¥xy扛Ç2jà ¾Zøí—µÀö£¹´îÇ-=â¸5™›hWæX´Þ†RjY;U÷(Tÿ©Ðÿ&òë‰íÍ’ø$œ‡2ôR¬V-Í9råÝŸlœ'v´(æqÓ’4ómúôü‰a2™…øÛû"›õ\ÄÇEý³*Ôj ¦»µŠóöI÷ ÆÛZñX¸ðO`ù/мQºdÏ$?ò§ß {9ÄŸ3é1Gv7áØ£V&7ç^E푼zé}2> �Ušï9¸|ê÷åÙ7I©jügìú?ûP¬êæ¹µ÷Q<€Yž,)AOÁ3°"E“h}›Àz@J£¿¼“ãºbôwW˜ó)cKaõÿ!Ü›"¡²o°ìj�Õþ°Þ�r%fÌÐi]o|íäe%´äƒD–�- –G™$5£«<Åú¨yÜ †éÍF±ÅµÉÈ>Y†ØÆÏ\)Á>5‰ú*µ Éý,W_*´WŸŸÄÆS¨ [Ýg?É\Pn^oi¦Ì\¹‰ 'm\kèv7”¦€g�ÞÓšS„¸òÍî/cõtC¸Á}.x«-T¾Tt[&ߦæAÍ*‘£QÓ‡ç\}JyXø1�Ñü:9Œ8Â9ßFµ{hI Ä(+ºÇÒ/Ï1l.‘‚(ã+´}âÆÛŽé“¸•pO#üýÖüãí>auc^ÝOö—a~Ld‹5+¸ìö¥Ñ¦Èó�Q¥<˜ì¨‰ø±O^|l•+M¢í§WÍþ㇠Ø'"‹£ wÁ�‹)®µIsI1"”«5šXg}É.‰ËÙÝQn] Ãjp]¯B³åy?�¼´Ê•Š×;aË)Tç·59¸G7¶ô—"Óõb~rFuýÍÎÙ3ÂßÓ«3´ÕÙ„83hÝŸ7Q¶o8o¡BÞ„oøM”³„ÍÑz·C¾:H„I/ûðã‡é꘧¢[Šc'êyÊdOAÏzÞFzØlô!3°&+;MwïsÍâ ÖïzÛy‹š9ñ²Ó³@žÐCÌå~p!xOO<£‚õË ñ\×;ökÕªD¢ñi��A®ƒ–gUv‹2JKz!�:r̰°p}µ¯u×3Ëj›#w_V;ФÁ�ÜÎsâ8uÚ—K3N“«¤ßñõ´üåvq�”™TLt‚\ãqÇke®ùU¿~9 S�ðì|/xïn.øE½N9bÈ6öèÁê~uH|ó¶ë6™þ÷ž?̺±j®À\„í-8c¿—‚þb ‹(!øI¢|þ1 ôÇuwj¸ÊvzÄQyy{¢ÜÐFìz“†Ûfâ¹Ã3„grAKÎ>”¨›�>5oŽ“��ÅßÍynÓµ‡ XXPþ õ–ýyk6èV»Çwè>t«ÛùeD·ë×µìê2öÞù€Û†;ŸPKÅG3.úœ¯ÌæË1n.j–ìd¨+…Œ®Ûc¿£)DÿVY›9Ðv$álj4ryïý´üõ�  Ëù†NÒâ“@×"QÏ7ÿ�,‘¡y&™åödÅA ràóĉ÷ (µ± /!2ÙøÀ<^…PûglŒé•WªÀÉÈZŠqÀ1’9‰9î*¼�zc±èj¾8¼3’+O¬Û{¦hEC ܘr<áäï?=&mÆŠÔ3f´·Pì§+݆‹ó@�ùû†kü®úhÎUÃa!…7PÄ/ëöëwÚŸQ̈ÜJ®P>xÔá›6LI©w¿ø QÏ›Ä�kdᄬPõSyKŸ‡2e5 t2À‘I\ú¥G«‹ ­c$NÄxP%q–d°]ÝîZ)òóˆdSzÐG+íÑÑæŸË=wzV¸†M™™$Ÿ ˆ9Vp�†ú(x»ÁÒ’MËÔj®°l„AÈfyè-f%y¹¶”,CB];EO‚®÷ÎPN0¿aÊÇÚ&Ì9*%º ù³èwó…Ÿ�iš5½J‚ávܯÛ@v¡ûŽAÏ̆ð‹–öE©<\Šè¯Uoû€ÿ¦;ÞŽ3eJ cû»R[�М§s%£Ë`û(NßFP†øH@ã7jP²d½ÈqæF1ük‰A,óDzfeçÈâZ»½øŠw“»‡§�##+qÙÒ|2 Ë° Ñ.¥Q‹úQÈø?&F ð…KÁ‡|Xœ ï{ö_¼v”qôñ7OΣH!²;%jVØžUÒ�c•ÝHYl‹;™l[ÿ/ÛK'×XÃÕ|"S¶e$�‹U¦\!ÿ< Œ%)´®õÁÎí…q:�Ç ÙÂyÇ”ÒgOÔK�Äð>ä°5¨&pk+€!9÷24'OäÑŸÝ\õîÍŠKÔ$dAŒÉ5d‡˜¨¸î½¾£Þ“�"´°½Òwh²Øoº0rÀkªh¾î…%çæÃìÿ¾¢¡©'%©\2ZYÄ@‹ÑD–Pb³�Qàûcidl6^c—ÆwÛ:ëþ ž‹�(}PÀgZÞx¬ôcPìæSÖÃíÁØŸãƒ]Å·Ýj¢ ªÙo‘™|ñ’4Ð^›92Üïw§–B�ý®,HòÉ#À·éJfÏÆ>´ƒ"Ì1#Uy[“w�}CIP[Æþ'‰žŠBé3äˆöv{l{òÁî¿hôÿÁŠ[Ãr-.ÝäîŸ2„Ý'Þ.ŒªŠÛ©ïñ¸ü¦K¡í-‹ÿ­~{Váö&Ð×%ýÙY_»w�Í$›Ë¤¡»§�÷ÙöZ¨`¾5ywX;¹ {óå›R•Kû>rP·A¡šbÝÇ•œÂH¨DÁP“…Ö.A‹ŒêñÇ3¸9(“¼qó(ˆße]¹"3�Èë¾ÑóD$ËˈÖ: +–ÜÆÈc É¥ŸwÒƒËz„–Ûïö’tO¿Î9¿îöøO?ôŒôâ4{—×ðáeß燖9MÃ÷Óö²!?–þ`©~âhSNÆ ãë3púE`ôI÷1MSÞöþwÝ|\ÈýÝMZiy}¯0íî§|æÁ²#Ý¿÷JÛ�¨ '£äæõ±oÉa�"¿YFG17)Žý»“6„Aµ—Ybs/¬š]ÖiÛÏÒöé.)¥Ã±Î0ˆs+šÎSÓ’ð»þfÖ-…‘õm�—ö;u“[ 4æ�*E誘^V¶œT©f‰­'iª�”?så#øç¾Uñ/)ã�>òÍìc‰ˆ¾Ü³®ßçÚ~�°L#Ö§MpsëUkóLµÝŽèŸÝ_ž¾7ï¹=M:Œ;£+t¿·WýK³¬CWð,ºj�:ñšSymèH³yíg§Fý¡F‰w¤ly)œ’¯Ïfº2¿î¨‹¬¬þË­íeå ,?s=H‰ô¾fæ§ÍÞ{#ï¡Ýš?oj¿ˆÑRX‚F¯ÙÇ“šõQg„¸áN•¾É”ì�)Ò˜ d_¦�š’fÕ?ÝßÈxÞš°Õ."Œ~3•v¸ Båk²-0jÖ1òüu8lß»SѲ¿5‹MJ%&(?ùUo{®ÄSÇõáîÂûÌéu…Û΄=Aõ-בE!+Ê=8{ˆÜ±>óÀo÷§NÅH‘zn#ÿTÔ%¥YZÜ?ªŠ‚²Ðé�ÿÚ²lözM‘ÀÝ$²ïOÇõk9¦"Ë`> �Õ¹X±«4e¼_®"%Êž8ݶ£³ŸºîwS>\Ês{ŸÛªºµ£2Ð&ì"°,á/õÄÓ`P3O‡®½@¾»>;QûÄ||fÖÖÊ¬Ë /,?cÐá½û½»q×´»�U¸|e•KM€ðÅk÷ÆrQ¯ó:¬Ím:¤îhîÐì@ÈmÛ<•ßaÿåo·­‘_+m¼¡W'Þ;øÊ…dœoB.ŒsœVº>ÛÍT“¬çH¢ ‘òÞ+‰_oæ6ýº2ZqÙ8ã_ðù‘£K´®ú“Ï¡îÒôªR<ÅÈ«xºÞ­ô¢Ð´ëŠF×wš0vŸ “rß·”:,4çt?7\r"-tÅÈ«0@8ûò žC*û¯{Ö¥º;Aoi³a›Öv‘_XFVàþ�yšÉ�L· ½ëŠØPœöÂïÞçÓVséÒ­T:ñLÑœ‹—ÚÓ>-7sѼ³¯ÄEáÅÚ. »©ž¤9�Swí±ö (ÃkA$k¬ý��G…Â-µ©�>ÖÏA�žtï�A:²²/Ì:+Ñ�~“ãNÀmžng+‰–ޱ?úÄ@…}ÈЀ Ø},§IHæ§ðȬôrS ÍTÛþë,YB y ÔÒ½h(¯ÒýX ŠõF[ã’ï©ÿåâY`šyÒNÏÖ%Þ¾–À�{˜âï§òqSSUÐ{¯+àÆÙg?¶‹®”‘[-¸ô­ {6ºx¾y¯€%]y1QULññÎ"5À0h\ó=åM†(ñ½±m·ætîí ÆÈ/ÈŒdO(ŒýFæ~`)â¨þ5£‘ýLõ!а™uÖ^ýo*ìà††ˆjxÂŽ›–» u²“x§ØRé«2®?Yÿ,^Z6z8’¿k~­…B]QßíH4Ǫ_]Ë: ò8þÍ̤ø<8òCÔc›…"Y =ÿ „h®Ã¾éì•!ÈÌÔÎC\3ëü‚ÃÙc¢7ö¦Áå™H�ß�—ËÅœûLÑ-ÀƒÿaLSI“›Ÿ(°F×`½ú‚�˜3?3çªBrwZ(Îûú�cñ.jâŸd£-;¶ù�P?’ˆð×r»*ü'«¿ûüNÒ]“Òè&–�Ð ?Aí*sO¸fV\'i´�± ê.„SÏNÜT{ÇpÖÉ3ºA89ûÅûb¿j¾»ìÉö×#_x¬tÅ„é{¸Kú °x†Y‡®‘‚Bël'%Hþ@JúGxT¨l.YS~|â˜ô;É�^ë^ #+ÿž¦Y$ż7ë¥Po¹Ô½�ƒif9[Ò ÈºPêZ+´*´Ó“9RÎ s•xðÁ¨]—pÌÄãuN¦ ¸[BÙ¹ëP¯Û„ù’„Ãh��ÿâAµ¸"j–AYÇ3ÉÁЛ)ª|<š±�—¯¸°ºÞó„µ8;’�×›“†=%&ñ“`Î;ÌʽǨ‰’+«ò Ö' *P¼ë ú|ï—…ôÜâñ<;ÓCϳ²ÉL|3.ÖŽ|K?Dç÷6&�‚wÒšõ_jõ|*%{ ¹ÔŸ+;HG0zÐ!i x•žû&€ºNZŠ]5èÐ_ø�Ù+N;çß˸«X¨´—V¢õw%¢¾OU×�P3`ÍØê�å‰6úÞJ +„'Hf<³6 e»å±À^\ÂÔ`í7ØÐæ?‘—»*w…Ðo.«QBý/?*%áN›Ì•°þoZEû�Þgúýë+±Ï¯¾!—{á籆8°Ç•®Di]9kßÚb…°_¬¢ë /w¶ O|9¶Ú#–^šN™9¾ÜñfÔ“ÿ\‡=dä‡r©1ó[àáÊRvzýœ�PÔ\ßÓ»kpW‰,q¿ŸdýçcKøIá≋Š�'Jœüçå–p—z—rÈ­uDfH^©þõ;>äÜÜ �Šeï]Õá‚ÝÃ�­ H–Vk¶ùš£²K�$T�\w±ïíà/Ý$ynݱCZ)Їìy�±°3ZIœ8áµiIr¯ÏvÒæ›¼ÓÄ|¯?M”é§Á*—k òõo¡ÿÀ úè^ôÁJS¡7Îu9û.éqˆ÷fØKM}»œT)ÞbË£Ó#ë;M™††E{¾;ú0s¶Y[³·P,È1(þÐx! t¬¥Ü8ÔH¸UgÛÀƒ•¸îtÀñ¹“„„­�ˆ/à¹bo ƒkxûà®I’•@2GÉq{‘Î|¤#6°„6Á.î^Æ2¥‰Æ/MF ^®Oè;ðþ°ìG£.­�9Â~óU4Óáþ+¦ÙáóFn»~¹hŽ�Lïríßî@å ¡ñY¿›=Kh°;1æù¾‹5/¡]–W�ð™Šå½í6¦ âù1«w�„òܬØDõIœËM''Ûs¤ŒÑ,ÏN :`_nœØöu•ÐÕoÀû½¿åM篹Ý÷ ø—È£÷pÊ©•‰ÍïM%=�ûZð>¬×«·Ç�ò*u1JÒ¸™\Ÿn­w‘9`Ð;\ü™ÍU~ôEtl¡ 0phÈs) *бfªiñE�ÔYÐ\ˆÖ¡«ÇN:v)¯¸ž¥¼Vª‹Qí>¨ùþz§¿ùÆùÞ¾#1‘Ñl¥ÛrÝw‘“�¿êíÐxG6�ïbÕ¨ 7npHãþ1y3»Oœç 1õy_ø‚…@”-;½\x¬:œhÊïîzºèö5ÐñeŽ|EÛ3^ü6 {ƒ[CÒéГ¶…Š#@ ,Ð�‹a6@äTîsþk ø¼Œ«ÜO‘$�‹@š²òW=W΀4]z1‚æ]ß݆ºœ†ß¶dßï”ûç¬ÖI[cEÙ/‹rc�s1(‰µ:Ù‚“î6]ÊX–jýh‰2[áQÆ.É^‡Ê{ &Dù¿?=nÍ"8® A�¬uÒàÉÑ‘TÒ�ƒ“X9×#%Ò)P 2±Dµ8‘¨ÀÁZ ¯ÌO•ƒ`}.…i\M¿'‚EÀWÌO“äÙF2µ`hTw&=•eƒ¡þ -H;ôÉ�@fÒÓËþ”ŽAAj+‘zÊwþG´'æ‹$È„5FªáýÞ;ÆéZv…‚¤ç;+•Ź '¡žÕ"Ë|rW–©vžN+{WŸo¹®òôÖ-šîÎg,7‡rÖNVëcåwÕÒÐÌÿZc Ö2˜§3œ�¥~š¡!r‚½Ù,Y!'ó> ø?­$6dŽÙ[óM z-~M)m(”§ƒ*Û¿øm§휻}`Tþ{ӽ酂W«‰ýÿØ|½ÜØÂ,¿¿Ž5½/ØêhÕíc”ÕÒÛQ-gk�Š˜¥R0õßšñ[p›4¤˜1jòò4UYе*ô æ´gûo(ÚµÿX-ð¹‹EÓóyžF÷æö÷yÏÂîÔ†’c•»`l1…o®ˆŸ»èÒ*ƒÌV':ó�±Îh-s)äsáú {,­È:¬÷}δ\jÍw˜,Ì4V ÍþnÖ�JdäÑfª™Ê©<¿£)ÅçÙ­ãjœ×”\®ÖRÒò_¤¤ršuí*C<ŽæüîÿöFZv|lÊüW'^SÐe·M²Ž’-|³ûÃÆÑ°Ò<ò1Çÿá~½¤´ü Uب¸÷‡Û«mbØÓëGÝ”ü:ƾ?¯îü ¸Ñܾv yf�V|´6„•eœ˜N;Dáÿ�}8ï?EàV2©<Öoÿ»L �ßj ]fŠÂj´ ðÜÂgݺ¹Ü(fNjúâÕyù jN/ªþ:™‹û‡Uk™]æÜ&?C•6MÊËœƒ ñ¾F¼÷üùÞ̤φðÂƈ4¶hRe T§¶zÅ]Œ¡„1ÐM<¬^ºù_,à8³©*~7ÆRå~0¿Þ‰§zÚn3ñµX3unüädP¼"ž‚H–Ïö·ù\½éqîS±ø\t�Æx™ª”5?ÜßX^¯EV}[I.i”¡" ½\MTmÌôݳ1þ3Õ¡¼‚[ýUË,黳##ìP,—é/ikkÏ^Ì{WXeÖ-¡+w„a6m!ÒO�ª¾¯Œ<׈è �üïÜT7ü†€ÓáËÍk5)‘¬W?íçþvôP"â×ãë¤5�—\ñ.g¨7y�õmç61½¢ {ߨ‘ܽÂ2ýóÝxïNæš�¾1wÌ‹©J�u»3æ²CÀ;¿D4ãÂw=­*ÃXÖ—çÝX�ëþìôT™ðYç/c!õÆ«õ´y„ëP"#ÝÜSñû£8ËóÝéĮ̀ª‰iYW²¸`Ê�¬z§;“ƒÒÇËQì©z?,=—à‘=ü â\E'1Hyzïöaeä•áäì5»µÑñwÇØÓ,þ|ôÜ8†PIàG~ëO³7°õ*€‰fàÁ`òQ×ä×&.ñ?5ã«õ®[ËœKõí·W'M?Ñ Fcˆ9Ûw ŠÍ':ÍTÛq÷q;¯*°÷ße«¯°ŸA�Ò_ýl÷ÑeB¬? ØšN5~¸í¼êh`Sìîè*Ÿ;úrÕŠˆM\B^ñmMGC¬òo¥E?zëOÍÌ?üóf½l–¤)¶½h±ê½hùÏI½ÜØ^[ä«á¨— ÅnÏ„n#÷Ão3 Jñpxˆ`vø]4€ä™ÑQ w Òì�M•á ~†þjáú<ê¼6HÊ�|бÓÊ1Ç=(b…ÆäÃVe±ÛCéŽBFò´�þt�¯Á©•Qg‡¥'�ÖUjz•¬ž�á>RU¼Ð�£‹Ý"ôhzó¥%�‹]»¤XaÚkÃJôÉ´k ˜Ê *&Dß+r)¸‘Îv\òY5󨳉ÂÛ7øýa­ñhXª› Ô[îì@þ%þœIÜ8óJ|ãÕ`Yk–ßµµN¾#Â,½å|£g[R±¤lú ¬Ÿ»§)>oÆINXºôdÞû@/Ù'ŽßpÅò-Sst�àt%êªãþ…Î_víЉÚgz,£ê䓘)G™wÔÚç9LMd=—´W÷Õ™÷kÏäô@z†$²=’à*é Õ¶Ó#–1eƒM!—;ž½ILô¿:Pn©Ï;‰œ­ á"ý-ß!­û ¼þ™²ûmNn©"~çêÒ‰#_»=¶à{aè€ØOÀò @rˆ²÷Ý-� øQ›Ó‰$Oˆ”6¾–Ñ™eH’À…¿‚ÆFMÛʇdkr:Ò?cx-êAð-|¡êÏa«siNâ�šiÊWÓòo{ÙjŽÖÎsV\X¨ßË»ôG´`¸pɉñ ÞŸþ&ó�¦š¿–>�u¿t—JrÉþç¯ã*E%¾cXÕ0Ã;V) ^N³¦©÷à ézKð¿ÅÿØÏ0=Ó�ê^£*K¾ãçHÓ²)'fx×ËÎ$|ÑØvŠSÈèHº¢¦À­0K>~q[ )¾¤&ÜM©º,ÿЕõÓ C¨uåjð@R?ÂàÌ¿š0èïG´úó$1k¡›Ñ=Äp6S’$û¼‚—A]Þˆ�à`|„„ÊÇ ÇhÂʱÕbñk·CƒÓº”í1fñE@7MÊ IG\êx-ëÂ¥ +]öá±§ç@©ËO×òJfT>Ε‹*ÈÅ‹ÚO¾z{ÅÑãCœß"mà*ц¶‚uµ«ÈµžÁß·öÜp(¹P¥H_û¿ Éû l5Fõ8¦@ žZ‡°ðô¸zž6XëÐIéñ×Ã.|߈¢|Ë›râ•hDnÞ'‡1�ð+�ù‘n¡keØöØHdïv×S Põhz¹cù¢ôàQ ÚJë�‚ñ¨ÛŽÖZÙb‘#UC]�-”q1eŸ8 ´—¢-èÈ[Í&²Þ(É$‹¿!J%×� x¾Ô"Ï*SM-² {~ÔyBþ¢¸ø 0Ý¿2wQ…4å�žÓ{dssz œ•Ÿ=Öë#pp¸„°Z€ú)Ò¼×ÅŒê°ÑÞ(Á‰O,ÈO ¯ùÎÃ;eD`s0VEÍ%¾åê}*®}„› }"@×í˜‘Ž¡‘ñm ühÐDáÅÚûÝrÂßéõ†%`hðU%=¾0¿ü2 î]Cœ½•Q/rÊÿ¸®¸È뚦éœXiø4H›Ô+Ñt2Õ U [¿@f"{ÝËòˆÎUä"â¬[^ï–o?xƒ§ãû„Ú™P7혾+0=E¿ÿyIôIƒ¸I¥HY¥'m¼�e!ùœÆŸª ÐpD鹯k�ŠqÈ\³Ïܰ»Û©²ø˜âM}âÇñ†¯¶$?¯T¦Nâ+ª¹Žã «›~Ž<§!®Ø›ÒPx1i´©/�ÉÊW‚9 ³Ù~JMHþ.¤—v ³P¹7»æ|��™˜(à‰¿œ€<Ð¥ŒUÑ *AÊ€í7,´dIg“U–ˆ‡ˆCv²ÌÕÒ>©�f3J ÅáîreµAœ Ѓq‚–¹°!¦½­\£,Q=Œ›[½ÑnVl’vŽã8÷éé!ì¡ï1ot{InîòPÝ�‚‰÷+4:$ýáÌéB®&%q5#x¹¤OÕö¿÷xs™Ó‡Œ¦SÙ^P+Œ°{wêKvI:@ïá‰øC­­™àÚCY‚±úâðhF uXt—í®Cå/\²¡o�6d b¹çRÅdˆDzeWpb ÅÓtr§¿pƒµ«1®#z¿ñlÍÜ5RvTPötœk V~ªHN+wDµ²Òà»nÀ©݃ÊÇÕ ¸) °Åz*Ò—ü®]bíXÉê…É›XG¯ùÿúø‘¼R}àÞ¨%Jç¨äšæ |~~¦¿DIô<؉Ea°€üâŸb\=COÖB¤¾fÞ7ƒlòt»Zµ,êmg¾�U^ï" O~¿'ð{�¢è8§ÀÐ[ÞŒç½Ó¥2ÞäÒHF� ŽmN\(ˆµ*£¬G'¿›ŽÏooÊ]wÿˆ{´òí¯¢0–iåUN®þö˜ÕŸ€’ÔÀÄÁñ:¹ ª´±Ù¬t³„èä4Õ¥Ó Ýâñ’%kêÛÁ:ÑçK­è÷)÷¡îh·tbqìoÈ=rÞ,¢Oôe—î¨ÃÅ Þ°+mLUKoÌÞMÏ4žVzµˆñïqÎÚŒ®ýðZí/!?h™/ðÃ7ÏÑÜàßs“Ÿì¦@™+Ž¥Ø>%B_E7”+áÊÙÙÙ¬8™±ð�è-SÇ~ã]£Üܰ[zöVᢇÒèžËwG2“¿“•ˆ­÷ŽWÁ@î²0ëÁåÒødæˆ7DP´ïúSs «/8þÁ”[Íßõ¿Ç 8ö;[?ýÎÁú ÛB#îæ³a®�uå1nzŠ2NBú67�Þ…ðéöGUõxB÷²«GØ7'ýî@úÝ6M~òw¢RxÈ.v•2°ùî. Ÿ.‡¹u í›�t^¨j<š Ÿ–âÝÕ!sý)ñß![&töâUò—/]ô³�4.®×VFØvp*é¿!ÿ€ì€¼  9bËŸÌ6Âñ¡ N)m„p=h:ä;›¯F_Rô-T™ÊDº}*ð�`6Ž<œû)䯎Ûý ¤£“§Ö¶#/§è&C8}ˇ&xžÌ„TÙ2èÃÕ(ºoCfCx®|y>pÌw¡K‡p¢]n>…“¿å̃ ˜g9(-˜Âã�ÞÛ~«–àZÕ¹´Z¨Öä›oÛåD@D dÀñ =^›~ã4J380*5¨;¤JYõKÊ” RpÚæïè §ë¶–i—Ôì�ô”]HPÊ&"P4|`„E¬‡ðÉC¾ŠIÆ *Ýé©ÒGXý�2! ;¤2(5SD@*�€ R¥�°ú'" eB@©Lªœ›‰Eês¸P áÿ]äêHüZCÜ·9Ô±¤â†v¿á90 øµ«Ær! ƒT.#U¦íĨš~�ßü eÚ�È› Žç¡oAè—£›à7únÿœ(Ç>¨Í& ƒT`À*Þ\|AéW»5‚°dO€wF­³?¬dŽàØóø:äÊ’i•RRd�Jj8*«1ø%\=â»àè^ã»|½ _Êi_àIÿHÈó�M���!|�iÂ!îæ? ñ@¶@fØLŸ™çëYÖ_ çØtëC·ärÈË`�3!|ÕP’ƒ®>ä*ÈrÈ6È{�Ñ�ÆnFÄY7ëû ²ò d¤ª.ùÜcF9IÿËaÜ—í¾ÿ1|²N8Æ!Ô3/óµòÃöØ0ÜóÖŒý4n¡ß@2Õµ'1Z $àDÑûìÄ  çN²S ö]d7ÛsÍÑ1�FÊæ±>ך¤ÉÏwžÙ|/0Ü�ŽÎ¦YÿF§¾—Žw6Íõ¿„>øþ5þªwóØðè½öÁ¿"Mæå»Ý¸‡¼pùl[]ÇÚzƒþ“NZb{r¿¾~NÚ¾Î=> ÷¼õ߯ÿ—N›Û¼»}U8Þ×ã‚\ˆtRÅû¤²ã�‹Ï]ÎèûŽÞ½0¾‰<߀Yæäž&?ߨͼ-!|ùfˆ-ï„¿é ÃÔsšèD–÷ï›—FïPHSÈ£¾~±Sç…¾Žùï†4‚p« {üH¿ÌÕŽî8„ùÂÒ:º¥Ùä³õ}§<$UŸ_йFç!«§÷'çÏX9qf¨•;ÒóÚ¿M�6ŒqÛ«°®Þ9¢A'B¡Î\|æ; #l=ŽŽÆSýéNÚÜTç˜sltýýŸý¼/;ºÄÝtBæ@\Ý ˆÛzô�çT¢Õ½áëø«»áv¶ ®}¨|î1nØ©ê„Aâ´×?ý´Ïá�iô!|Û8#L÷ÞºîÇm[k厼yí¿ß®ï8m˜oû!_× {èÉÿr[ òó÷åÀÅg­sjiÙ::^›8úæNÚFGo/¢ô=ãà¤ñõ26½…£w�ÇÇÔùyÛ¼©|äýÄ)×–ïú[ý2¹ŽåêùÊ›W!?…¸}•/U[üzu¸yPÇÍ›ö?ïùŽ.ÝTi­Üq|^ûï·«•Ó®un?Îß÷®œYêÕAø†È†®w dNaÑqÍ…ñà"}}è9­F=æ¹îB·zïX.ÆW«¼Ïý çÞ=žCóÛýte}‰cöM—×/*É äMJ³”‰lÞ®°Ï@Çéàã]ÊÈ÷\Ø|ÁlÇ'°^GßáÿƒPÇ îøŸ/¶ç,�ù&t«àgÅe¸\yx ÇvÀ‚„ŒýçÁÈËe·1 —ßê¨>E·ò‚ … À+ʵƈUxF'E]\ ²®‰ ÀÿÜ »A{A³:ngÝþ6¿™¶yh ¬sÓ­ÎõÝíµ9ÆoIÂÌÐý^'H/Ƚw»wöç7�Ðù˜7‡úW!ÿKþ1ý€�ëb\[¢{ÉO¯Ž%fâž×þûUÛŒ& lr³‹3¤8�~ûŽ !/8‰;„§©®§£ïæ„—9áDÅ r°Î-ë«„ÿš^êèºÛ0.â s UVÿM'|”®d_áæ@~9¾çdê`ÃÌ—1ŸÍðp´“ÆÞuð#ûŸ±?¬ÞÍkÃ.«TÜóÞTìþàØ`"_,$KB~!p*ɺ¯Û@À¿ ××à L¿ÍI{Ü ×|ÀIdYß @Ç'â¬ë¶ ø·#ß· -þä$ÈÝë±øÿƒ|M!çAìÿx<#‡øGwœ–:È9ö†ÃæsŽ Ý;Ð6N†?#l/ð=|=ãÔ§s™¸çµÿ~#t³Ê +(Õð‹�Ó 1Èû9€3ŒÆ‚¿ì)ýíyæè¨ÿ0§ndïTù­Îõ‘÷þeØzoµy‘‡?ÀžI“—ÓI}�¼{#>+MÞ/ ïʼp'A8�hësý]ПžM>[ÐG9/êàzQbÌ�FcêÖ}·›Îp ½VîÈ›×þûõrÚðû`ûß3žqe‘8¡ã @ý.Ü—÷1î_XÖÎE‰WÉ�g!¼È¯ƒÜijóÒ‡K\h]½F>Y6ÂiBÞM¼ èæñËâ…öjÈÈvï$¦Cz¦ÈË©/>-÷WËÝ¡AëèæEü{�ÉþÙ”†�kV3!UuÉçcÃ(ëÛ�Ù¿Ï ÏÛ4úpß…$8!œÔF?�›Þy2qÏwÿ¹ÆfÛPclÜþ(\¸ïe)³ÕSvø†È†¦•øôÛ? œŽ{_oÝzï ÊZ¡ ®‡P-—%0åÚÕÛþaKÀµs°ˆ¨¹£þ·Ð¦#!k ‡ �ÞS—Áv*_ZCŠïؼç¸àpÊjŒ_Ñ1¸ 5/x¥1«L›ø\ãtýN¸$‚hc;4„ƈnŒŒQ5}&�AJæ¡Xþ ŒC‘@8Uv^þ‹�}‰Ÿƒ§OóIü~É$´éû~ûx.؇L|•<¨& ƒ¤3¡ ðKx+*àš Ý¥Õž>óH€ën¼]y—–’y©¹ù ºªDÛWj¼bÙ­!ÅrØÕi(=ºC*½1Q‹D@D –d�b9ìê´ˆ€”¤ÒµHD@bI@)–îN‹€ˆ@éøÿ ÑCè… ¤IEND®B`‚PKcˆC@dL–¸n6÷8images/img1.pngm{TT]Ô6 C Ò9ÔC‰´”ÀÐC·ÀH)5t‹  CwwI %¡ˆR‚t Ò¡  ߌ¾ú}ÿZ¿ëЮŽûž³ÏŽçÙ{ßX= rRfR<<^^#ž¦ª’É}ü�…Äót} Qœ1„†nód�3�k¤‰Hž¹]<ÏY˜$‹]0« ®úá®°aC_U/uÛ]U·ù+|¥¾0Ò*’˜ËŸà{¶ç߆dV†²v:êwF>|øp8Òá°Z˜»ìþsXøuÓóÜPPΟ –GòC@7ÒßB· ¨óç‚?t}{d €þ¹Rd÷l�Z†-miDðÿ\r"¿®æü�NêÏðyÌÖ™9È=(¡(‹ªÁ︷”ÓSq9ºöÉÉÅ è¹ð[0ÇavÁÏ]�ýö�þ'ô@Äê5P�ú»üeÝW'´ôÝÿ^éÀm�xÈDíp­Ñ,ó!ÀÅù6ÿyŸèÏ'µŠ™­àûbyôø©ŸŒN„\XËeàŠø7'áË‘ŸƒÇУÿmfH»˜™B§½×Çöz…ëûãû¥{¼0³;r. ivâöƒŠ£®Rg0Z&5Yr~Ò¬ozVs{Fàͬ«äï;ªTŠé)t !÷'ÿê¨ ¨ÅeK\!a=æþOOxX=Q?£±þÕj’dÅŸ˜í›ÿWWÜ¡¡¬9À@†î¿‚Š%°Oiml½ƒþU8ˆÃ–Š/×­öWÛ4|‰0IpN+»g­œ"¶péï³_�ˆF¯ví}%•ŸË‡•¡ G‡Å´Ëã»LVŠoò[©Ýsþ£´çZÅjW’ÒB_Ýc˜],R�©¶«’È£BÔ_œPN(€»ÆÒûÅ}LËû½ZûLX<˜±Ø-êž ~Òõíì”U‹t[¦8<½WiQãtãkÙ½–’ Dìwõf›} kc|~*lT“×J|Z¢žÛ)ÍÚJ@ú%úŸJ”1r£ !íK»b·&®6+ýª²ñEB=si÷„«®¦q‰“/üUÍöo™‚"Eõ‘ Ÿ�ýSú¡×˼§!‡U¯�êQÌw”Ñ(×Uw½úRnú6þÑ\Pƒ4æÏÓYÀ¡½®éçl+/þÙzö<1c÷Lÿ3vA¬©Û;è·²ý=C.À¸7ŸË­þ È$ � Rò.mIˆç¿eÐb?º¨Á~¼Ö#'d›�µ ¤ÖF�vxt‹�€/îôpt¼Z̲”}’L~Ë”ñÒjM±*vú�NjÛºÇyìðœ÷´ˆ»O®§3·É0Ã#�ú@åE¦svVíšøÌ@Ô©á?­û¾!½Ñf¦®Š`Jª+–•Ó»„]õÕâr �ª,ÉfÕßV@öE]¬–Œœ:³øk8(†eiÏ=¦y&ëЬû‡èŒ�p© ³Ÿ­4ã’q#¡¡]8 CìL~Öçhf;˜õLáÏ€‚ûý•èö@ÁŠÛÖÔ/ûe¬­7¶«µ±Vó8Š¢ÑÁ9_�ÞùXíE‚¦º¼(ë»î}‡,;HlvUõ9„Ð~à€Èq&×€T'©öç²ßÛ¥xW¤¦ 7-3')t”¤ú‡ÉRi|Ô,©#ч#ÄJúî5èpˆ÷ým«–)�ÙÔ®Õ <·/Hü*|¬?t¡=W_õJr‡–}±)Èéàë9…/k¶ž·Jðâ÷82¹'R¦n¼0ôzù�—1< U…˜�VãlTéûé)(C�w{¡ŠºRˆFu(ŠŒ/kò`üiøŠ`*ØP°´û¸öðÚf}Éú« Î�qÚ/H¿»&óßôUέÔiàWðÁtþ¼5P‡ªûzÀ`¬¡öˆq¯;.*A±/¦Yi‡rm€’œÂñxçž6ÒÌõ]ôC�7}ÁÆŒÒXR[ÓШTš�ìeü7Ž€-n�-ÑÀ! èÓš `»gMÿâí!|ü‚œn_v È“ú"=#í‘[˜&¬sˆQ}"¬Õáè`Æù %ö&’3 ;‰Äj¹=�‚œUúŠv¨=6b …aq.…ÊzÝ-rÐZÖdW¯¶"9u!Å�T..îÐÀŸ¾ÅYù:Pµnç<Ü»ž„uì¦l ¢œ¬ã ~‚�ÃPôéxç3þ–Ô@kÒåÔ¾!¿ãNQèxC_£� _lèÕú4/™Æ®DMB{Ì–Ã�Ѹ+&2ùš57@å äÕñ®õE™"ÔíEʵÚd3ëîÖ(ÉjÖÿÂ]Pl«kÍÞ/j` )H{ îé‘£êß覧œ²½)#’Ì!'"„·§öŸƒ—Å6ºÖŠG'Ø'ZvMÑݾ,%¦žÍ@V^G‰Ï·zOË?öa¾"¥÷6Hœ�îŽò½çQ®3¦1)µY¥¸�4Êë¤;%= ?Íiú—øLâ`Ž`F¼=²E—ÀTqo’ÎÞŸ>¿”½ ADºw‚¬{Œ1ïù¬Šî Š©À§Äj(߅ݘ�8“د"¹‘x¾~�Ó¨Fç7ï.tRß–5=fé_f€sh‡ß—B¥ƒãïtRI­·P¹¡’ Y^úÓdƒ˜9ìµÒO/=ì®8í­~¬ Äš¢Sw­­Œm×M_tYZ6Á6àø7³ÜXøØÒ'™�NÒ¡%ÀÙ¢»•U[›iÓ?§’%š‡~�GÜPõQßV³hÝc Œ¢.Bmþèu;R®5­1Œˆç”‘~^XIüKòoB©âÆ·ªm¼›^·Ë�ŽÒëÂŒ´Ð ½ênH�šbd2d nS½uŸ\:P=e§O“pG#ÐáQ¢IΚS5¥7òߺd­æN}Qt¬NvÍüë,ÅRß¶�DCU�· áA,aŸz'í×÷!¤ceý µú÷ÓÄ%ÒŽi1‹ÿ«35ŽÃúéOšW¾ÏOôÃ)úðÀé*�Ê-õŠ™æ²úÒ$ø²ºùE¦;j3t !�a�¿l.Õ­mO©¦Ä�°îãub’æˆpj%œ82@.sºˆÿÛ,-jÄ�Smùf?Þ¾l“ºKwYÑ)}‡µ O;æ ñ,šjnJÝGV"¤âjPøMÅôú€A·=h}» Gó °-gàl×|ÛõÙÑ"<Ù˜=¦HãÆ¿ìNJ=`D–ð¶ñ&‰`s–eâÉóWR˜Â]ý]RôM­¹&¬_»ŽÂ§YO³Ž•ùÚˆYW”˜ç|(‚H«#!ç¿4^r1G4Q”Åy¨ÿ‘4:d:k¾œ•jVÌ_®8mã“;Ä€sñG²Ã–©!¤ƒÇbÝEŸ%úÿÁµ'*ÆB"3JÛuö…xËa¯•­ ßž ´…ü?àmM€r"ÝÙ¬´DZT£$óÈ ªUêîy(,Œ@þ·h� ¡l%6 ΰ–?)½‘�áÉ`鸉?†h ð@Us>ô”ÅO^>|³[¨PÖïm²\óÑð½¼gºÊŸmìã2Ú©ùíŽg�™‰Ð´z#Š$ìÊìbǬw¶ekâuŸRĬ⠾Ÿ’ËèŒxS¡Ë|€¹Ýx:9è ·‰›¼râ~†äž²¡sÜ´ï}…‰ÞÅúíâÛ�ŸþeW-ì€mYÇ�`Œ“l&Ú]VžDî—iœCšG4Œ½ãÖ­Œ¸ËW †þ%ü&dq9ÕŽ*~’WNOSÀÎ&6ç'{˱Ù÷wj.AdâW¹ô§Â-XáYSbAÁ¨Ycs†;Æzô ØÀdŸ� Ì ‡ó¦Ú Íäü‚Á}Vyª{Éðe–ì’_»·3Ô–+×%M¯ðªû¶ûÏJ@wT…Ø!ä1Yu Q¥ìEpáG*ÏeóBEgùy÷hýD\ÆO#�¢pǘb‡5Ÿöcš[þËÝN}ô›Š»T'R1Þ<™ƒHãÏ<Í“¿nó?Yþä£-äzÔØeƒ ¥Ê$šg›ÔXS±0ô»b“9ëhûÔDåîÃ&y=®ùèuQèŒ]â�ª;;—Yýáð@?ï™�©r?®Ag¦ØCµKuOŒXIüýY÷dYºé·i­úÝ =M/õu‹ çÏ÷o&¯?P=r*dhrÊa‹8±ÏÁH?ŸmÞßá-ß·Ì‘ˆZ¤ÉŸ<Ôù|þúãä…+Õ›wöÓâyS«\ŸeÇê$@©êî‡?–nB&�¤pU£&Åd®‹ù+:¯Î£¨ÈóA›9°0£Þ ¹o_ôöZÓü†¥W‘–ö«±}ʵ׵õä‰ÃÎ~ø3xVþ4òÃ��À;Öî6û—IW¥DåØNÕä Mæ¦ëLâ"oxˆ £dr·NcNC�†öØÀ8 ƒò‘±»#üÇ�Nÿ]VˆÐ_¦F ư™oÀ.ÁX©vé¾T < a°XöØA/'Ô«úœ�)÷—Ф°Uv²W?дÒ,É¿^�îI×$}$̵ú?}á/yA*ÖóE—¹(õ¨·ªÝò!pÁtuøÐ¢#ü7Ý»@È/ùtÑjuDÙ;Ù°tÉÇp ÿ½^V™à´ÖÅ&<ò‘Ù—Œ2(‚Ô‚ Ï”‚d–ÔídeDò:¢RG_²úÔ5j>.=ëMkX§q&z!—GìˆS’(cõ^µ,=ý÷þDP2†sˆtuk™p—ÀØ¥Û ±÷-)†5#ùœ)¥²¬‚,pph3{t9Q¡Þ_›HŽ“ÔÉJ{¬,T�sêåÆð lWµï,XÙÿŸáB¨89‘”Ô�R¨­Œ˜E“FUkεC‹¹A  ,4¿³|ÁíªŸ¼”F¤Æ´«ÁÏI µ>ÇJ´Õ`�cÝϘV�Èï@�Å/`Hü(Ã9I s4±žDM1Ì QcMO®ÄäÁ<.®ÈoŽ“!©Ñ:KºÕyÏ*-ÚB}V!©®çrÀŒ—í‰D÷u¾vvˆö§­®„q£HKlôÍ£ž])ªRD�íÅÖ"ƒÁ¹vÞwi¿Ãú?n`¯ ZÙ«ìÍÇìC¸‚P =.GÔ>îµXHúdÙtÕÈì2n¥µC³ß�ßòÐ“å   °�È?4K4˜lM9ÜQýT<„Ä%Xšr­]"ïx?c‡ßŠ Š8¡(pÏ ®@<ÄQ飼â–Ý'êAèZ³Â%”æZ’wªÇÐË`Z-˜flÈ@¹c@Ÿ}$Ó=’ Ú!õÞÝÞ¸&qè£QŒÐç܃ý‡×2àxÄjwÏ`;%¬O5Ɦd¿àÃɧªºE6"2p¦y üåûmŸ¯Ù‘ºÁXP 5Ü7ö¾õK÷>þâ•fõý¢Õˆ“©_v,“ÙŒ‚5ƒsÈ8Ÿžj6òk ¦ Ûá9U—&SXãsšãÓÔ‘ðÔ"#ë²^«BqàõÀNΦ\Ø6Ȥõ>4¯ 0­¾ø7„DÁ6‹Áño¾@òåÈ÷–EƒðW>#M'õyÇk°„!Å`êmË @Ýÿš˜øQPñH½ãêð$XïàÈ%?D«êÛ[W ò˜§¦5CB]ÝJk Ò!®.´òs ½ú–ã¾é”+½Žû ¯Hâ¥wÇ}—ŸNædôËOƹ0·§Ó Ýi¬”ư1’ (Ý�¼^ÚÉHT˜”¥!ÿf•è’¨ùÓ\q¿„X�BõA¦…/¬N Ø´ªètùuëÑ£e÷Ù‹dƒ§f¦-)2ùEZÁ?§o�Ýk­qŒòtÅZÕ]#�|­Wõ9*Ÿ£ùí¦:¥ ¦ÍsÞÏ·5H‘îlk½ü0 a×›½mìJ¬Î6H9ù)àilÏu9+´–¼Ä:—Iž^Ñ7�þIª¼egHI4~§åtœ!¹é-bG#×ã“_ÒIbÒ~®éµŠgoØ©iã,E‚ú¨�©M7uVESµÀ[Mõÿ|‡/o'ÉÓbí&8‹3‚¡Ä¢`׫‰j¯2e‡jÝY\F°ûŽa¶¹0:¿cmš²Ù!&ô¬Aý]ÍÿIKjV(E-úѦ!ñ@ò=�Òש8ÂÕK³öð”vlˆ�×{×\B Á°¬}±< ž$’x#Uù5ü\Òz"ËðCFnªjfeøx{,1K„I\¿”ѹÝU“H>»ËSö�/»\?•�5C÷"N^žÆ"å·YUØ:¶¤Ü+f?¡W¿U$:S/Ù êXs¶Š_8RÎðwüôôÿò§¬D­†G¼åDz¢_�ù>"è]Ð4Yxѯ‡'¾$žœ«öÊù t,�Mï‰ËFÏŸú̈:ö VêS“4ùO�w,z\S‰Îï%M‚s`.$Ó­„Ûœðjö+ø² ’*à g7G]†7X›aädfŸ¥t–ÑŸß�9ÓլǮ˜éEyžöP!)îCÐå‡2EFÛ<( ›‡‹C­»ó“Ú0=‡‚€èõÚ°’15bùÒÚ#þ=ˇ¢Ç]s«Æ€(¡à“IÀüiÆHÞ'FKc“·¾xÁè¸ L9Ÿ´Q9ˆù&³–2+0¦Ý]sFu—Ó;dfcVãó*³*Ÿ†£<ºRù´«Ç}@Þ©OÙ’ »‹s»’3§bVíb/¹@Ž\±i]ßü^šÐO µÔ6%¯A dW‹ð"ù^Þ3ÑÖx?ò‹Žˆ›„À¡@à“­®kÊ3Ù%d™)sº®@…D¤åcªDs34ü hlH!Ã]D–I(Ñ�"‹ ‘âx 2Þ†sa>ÀŒ�-µ©3Ã[ µÞZÈP ͤ+õÜϯ{š×ŠÎJZÝØ´ï¾7�‚iå=‚yƆ¦"i,A¬‘v“ã¼íYû(&žß ©âC¹Èˆ™9›Œ<¶!nË“ÀÊÖXr�è%ûXšµV¿ý¼êä OúÙÌ�Ç]6Á,žu¿ãíóÂLêi»‰'oŒéw ¯•Kî] ÎH­4sÀE®jh×y€NšØi“P98^]˜eæ€; Æ’âã§çäS‘ªÀ`ÌP²À“üØ>/¶¿�”’/Ÿà û=ÐPeÃu—¸ko§'KÛíJ *r úÿoRà&ÚËú’ _–�5|³÷óÞ­lª"�¢Øˆî3žç“þå¼�cö! sáÏ(¢¡¨ç2"n ¼²$tSº´¤|ú—^'�SÖþ& L¡� CSâ’ˆ)^Ù2|à'69W÷ u‡§Ç?G�,Ò5®õ±µ:ó¸ƒ8*Ž’äÑ ŸZËGûF�ÙŒÒËìÿ098ªŠnË£€¶#õÇMô-z ³¼½P€†v©­/ÍÞ›öl‹¸WrûJ�1ù…z¿Ø!¯ÑÒ|¥äOÉ‚Žd-¦½Ïñ ¶Œ™Ã@OÓ&k0·0~7Í#cC¤E?eîÛ‘óA Æèsòùcó®TÒZ@Q˜)ú7q#Gn8¯$w(Í1WþkúÊMò$�¯ËÀ¯‘+þ\än|áSºÅ¯€CÛ]ŸúÙ´8¹óÿ¼5 ´û0™Æ—Ûô!ýÞûÄ(©'•éŒÃíSÐÊ|˜/IF#YµÌÒW±?òù¹BU ýªú¼’Ûíˆ:-UöØé—Œù ŒD,7x^r÷[�RÀ³ÊŠï™Kî5Ù :ÅnXœœA^nf�“±À ÓÖrr©¾z²ß!Rn~5˪-ƒ°`ÈŒ«X‹Ê9ý¦s"áx7uª�çL±}'½iEZ§þ,}žÝ2¾jX8_¯EÐw«D$¶\_ãìç¥ÉÐëÖTáW�¹°xPÆG~4}v¯àðH¿ˆ{òAÛ[ÎùŽODþ““Îì™ æÝ¤Ý4…¤}ÃÈAíþX”˜ô20ŽÓàq”"Úš§ƒ:1U“¡ÁµuºÖ/m¬¨›·=ú[{ /�™ LZgjßûI¤JÏ"ížfù·¶»'“ΛÁIÚÎwDóA#Ü8�¦la�_í÷ö*”s3Ko —A³_r`÷`Áªò…ð4ͺOéU–—57o…à"‰Pt–’K]*�ï•aî½Šì» “ÊÅ Ö …½fêÙ�IÎ O›ù*A†dû+ î ¼¤ØNUy6yÚj:Šá¡ÞSëÿÔ•õ6²V2ìØ¶Ú_ºzÍ}åÉ.þBV¥Óù2+úXâ–xbzJëöf­ å}F’z¹:nÙg´Ã8&HKQì)èqÅSe3gD´^1ÅÚ®¢þ£¡`¹´¹BnããÍn:¾>‹Âç 0B®Q�yü½Gè�ñ?Å!]ê®\¦%û Zû.ª©.‡ÄƒØ%}�„’$ö^–¸Æ¤W9-��D†�?TÔ�¾¶x qîš/>P2MÏkžàMu2R䉓5ÊéÅN¶WQ_ŸØ+ú*Æu£ÜßiZ|9µéRuO�š~ëÛtc‘%Oæ(Ê9±Yr¢oÝêÓ3¥Ÿ|¼3º¾vÇŸgP 4’(wMXä'õè: Bæ„� x52Ýõ_‚eSVZ««ï1£g³ÎSÇòWEôwƾ5îÌ…¥šÍí¦Ôó¯¦dU:ç>­ yÌÛÿTjd*?mF¹¾>Ø�Ë-~×�+ÙZ§*ËïÔÒžçùÖ"@qåT‘úcª-E&_žúú%›Ã S–ž’òZ�Ó'ž ¨Q�úœD Yò»âÄ!ŒõŸÒ«ê™¦-iD‰YÊ„ÄDÑJá9ãÊ­l.È7äèBMéx»ž&p¡‰žÆwŽDI0|qUº%ny|ZÕj }Y]Ñ�¬y /�W­} FÈ�´Ý$ré–5×Ìm5÷ÜyNäõÕã­”òl�ÉwhÓÿ¼£Àï)7yЫġ $:ï˜#廩RTJ]C+f.¨Ài·cëãÇ`AÌ5ÄF+Ã)EÒágíÓzå¥Áp×õÈR¦��tK ž”Ž@l~( $Ü“a¬~p°‚¼àS–'~–D:RG^˜ù1_«Èçè5™£R+«åÎnæîßþ¶áX5é~î;>øXN"ݱʥ>­šbºü ØUúzj5 ب²«¹fŠ?W"³Jn-î˜(Ú} Ÿ#³JŸ ê�]$­vØÔâ&V×܆×I¿I�•¢Š—ÐÓ¼= ª ëPµ™”UÖNF86½Kߥ— v?Só©P–��Îa5RHº¾ ŒŸew0a8�ýjh[ãD…—ìê ^o¾:dTIÍ ÏÂì°dYQ›f„!¿Hý!Ý ‘ô¾áÿ+¢q:·÷#»kŠfÑNtƵ©òOô,¥ÑfUŸjÌÒߊѽ´H´Õ³'†ÂðÏ�ëiÛƒÏá°±^3¸•Ø~Þ«d×Uñˆî:µÍ”º¾­Ú¿àiÛ%ÛVPÖà«]ÃÝ£$£É‚l½—> jÖpµäâDƒÛ/äBo"îIM iÍÝLÌ7Ôæ‹G8N¯CŒ-Ð&ÒŸÀÕMø>/ ¤r5“ùµg§ýbGS\<ç—þËl@|yÿ î99ù /rÙì—E`#טoö”jªÑËuÒÇ ñ“ÓË´ô2 v©ïi×ÏÀóþÔ.o«Æ×JÃáô‰Qø\1aʆ/.+Ãp!aÅâ¢*©EààÊc¶¦‹=‹&yw)º[tÄDÔ>¶èkKÒNÄÐáóþ¿\¨)Þ‘œûKõƒm·PpÓãõ«%‡H÷É ê!C6ùä$Xk·Y^«WTÙÎDÖ.é—×*÷¡àj5Š1^$“EW“XÚhd’jei%&éÎýÀ1È€±ëßg�ÚÛI£>»0´Øþ1Eõý8“gn[œ­7k>#tþkåâ9© ±ùÐUï&¦‹ï¹ 0¶KRª›í?X½Sì¨ëû±Y®¿èªŠ�‚„ùWî;öíDÈÚjWgUÚ{�›Lƒ E&«ä_Q+ÛŽ'$ð à IR 3Xr‰8&d—ÂOúØè}»Á¬²oF�Vþ½1�ÌxâÜSGùÿ2t'‰Ìëa]§­4¾þFSmWÄä–É�Z&ôk½‹NÕ™å²ü•#øw”ÄÖ”íŠÍZžD'Ÿ{áá1âf¶®�8&¢‡5s˜¾ 2ð õ¡ukÓ…•ÎÛ®Ÿ®Ø!„ĽÉôa}S޽ƒ—ò4FuØp˜òÐ[kµÌÉjþ·² §E=‘‘0fÕ­“RwY|nšGô´ÛâagnÍcÌÑà/£ôÍwðÑ<ÖDŽÛß^(#ŽÀV}܆�—- hÀ„x˜Sf,‰ƒÁÙ‡×^ƒ÷cèÕ.ù)ù ÿÏX¸ü�ØæÜª~6-ËkvÀ¿Ztê;þ»òiFÎñ?¶^EŠƒÂGFù 5Fe?ÁòæŸj¹e×Lvš\™)†>—p;u¨Å¡üb©ÿÁ¿m B€´ÐÇØô?)öÞD»–ôM¼ÙU°G9Ra±üTmÝÎ?Òt¨ æ(é&ç²æ4–8;bƒù›(I+n�n¿ ¸ ÷BÊ©Ÿ ˆîHý>�œH<½øÎ£-)î~µºkä‰Þí;[<ÛK:Å XX)Áb¥¿¶íýUÇd:GÁ…ñ ²îÕz7Ñ!®Ö%Ñkè.LÙïNý&x$ó(ç8ƒ¨mßLúÝ÷Ið;KWLÇME±çÀãbiÌ OyÛ| 5meR¬ýÖŒaét‡N@÷lÂ2d¾F˜�ÙT¿˜žs’™Z– ºëa›½U[jÇ~ÿÕÃø�Ó¦~.ÆCÊ›3ÚzÂ]�LFë>c€SÜ®„³6¡ëUU[öMÌ*¥aN>²·èÔËò0ËP[Ó«:Ø}V!6›«˜±'x€œæébán#Æ4Dé!]‡¸RÒ œëB*Ž[Ãa^þŽpo´ÿλøõ40$øågºßt¥š‹ô�â·G0¸Ï#·sÅO›0{‡²y Þ†,šgS>QV¼DþÇU¦jeçþÙ� £twã3¦é×` ÔK=fÒÌ3Ö´21ºÁ ›ã™/_¨xéåDBŸa7)¡zÜ'=fª‘vl�¦_ñA++°´Z‹ÒÊ)±›$­#ÝÚR-¾•U‡I‚[©øØnk�/8�Ügé q¾—â“^õ~ž²qW[µû¨$>¢•D2¤+ëÀ¥#ƒmó>KFm©i¹„b]¡ož�-ïø¹)ªTš ö\šÚʲ²üç¬ µÑP$‡Ç;? sôÛÒ;»j'à ÚjÂ- ½‚µHÍÛoIÀZÁcÃæ…ÏÍ ƒ¥‹ô7ÍÛâ3knóî Tº_E_nñß™Ë��Rwz£ž”4 ÒÂjØÂûFçóÝ®¹š¦¶’ÂÔuÝÕhÒ:A擌# Ž«êüÕ©žg~÷j²ªóœo.ª�W}s¬Ó«ófª¯ø› ²I}Û…L(Ò©{½_z±¿8*‚‘q8ðby͸“ 'q°œÑWÕV×Ô©çqù„µZ@ Ã1ødú|+öιƒœ6™“½qð\¿Šg]I†ž£¶ìiPH´û*»ž+¾ÿB!s?þE‚é¡ÿº$±|ê\û(TỸp§§”‘ªµe¾ÍNÜþöú‡8 %+ƒ}Þé9¿åC•޼×�‡ ñîÔdwÙþb—š“ë�•äê½^ù…â„…›wÛgrñùS±©BÕàÍ‚Iוµ!¹­õÄ�Ž �&ê�Y¢8ãòÁt|  Õ¢N1ëx&x‚Ä_†jïñ¢åhdD½¿‡ÅVN¨ )‰_æÙ`]†Ÿ½F—êI÷äÕTðÑòÂÉ \8ʤEKq²Bì±^}c¿¤’¬ÒÏ5£[á;{^¥èŸ�Üm,øž=Õcñ‚«pÇ j PàÏ¢"~àt‹·R-@ðsêùkyðrį7J—ô%¸þ PºhusþRÜôaõµðÏÂôLq'+Ðiܪ�ö…<ÃäÛ¡rw ¦l<»DÑp»WF8ËËq�kVnð<+\––5ªµ×ñ@³ôƒGáõºŸ‡è-æ!õš¹á×7pýµfuϲGÞ*™ÓÛ±´µtgÁ~RÁÃ¥wÔ[Qû4îÞܧÒùÊ+áÛ*ÇÅV*MAê2Yv®Ae‡×ê:õÛ‰·JgmWaÁH(k’ÁÛö` ΫuJì¡|�AD)�Ó÷M1» Rºa'޲§Y»oMí’²óÔð%ã�ùBr ±oA»J;ø…€à+&¡„i­âët)`|+/š£.õ Õð=\o)SI%J‚–mä^2kP+„6»†Ú_´³Ä¥ðJ‹¼YÀ߃ªÞ»økø¡¦Ÿšì¶¯Ó´�TÁÝyB"šÔX4æ>®‰Q{gk¶­ ­€ŒfûóG[oá¥rK0÷tp5¨[È¿”OÑó‘Í}û½dÆ$˜Ž.E…ƒ÷yPJÛÍ›ŽñbÆR¤4Ò� b¿„Igš©< ›ßb&ý½3í S ‹”SÀ·A=7y¤�8âh¸§Oœ�"\ë«Zw5 �ÿ)+™l³Án‘ÙÇö— ù {‡ð" ²�³ðÙ‹î«�®�ˆG\-Íž¸O‘vruÌÐp8"Bœ5: *L¿{óñVƒ�4äc7ªXú—FÁŠ�ɼY]],^‘WÇC¤©^ßµ¾ýE—S—"Z'¾a÷¹«%)#�ˆž]¢�ôœn·dJh©ìùi˜]µîóéPƒùèKHÆ6–x¨[G)¶!lز¤ùüšYÓTo ØécÐrÕ‡ðàiátl6¬AÒ2�¶n^3™ž¯Ð3—Eš)»82òñb˜ÎØú1§Ú¸Nj†Þ½Ì•Á;L]ŸÞ¯ï2Nƒö >q_�$ª°¦~Qˆ¸K,Œ]ý Ñÿ~BÌŸ-iVév>|GÀ¿l³gm÷“YT5¹^š•ÓYpÆÅ4êc Xà0xJ@ó”ùQÈ©Í*Ÿwq-¼ :4:q ©K«ÃË/y;ªbx<æQ�©¢ª‹l–zÙ¸ùÓtZâiu¤š�€`±?‹+`�䙓tß¡ò»õ1‰·^‰t¼þ Ap4ï³o<ÈJø÷Ö;Ö×DŸŸî0OksN=¥º§b‡!ä+ pô£I…’Mù„ÙÑL®/=+d·xZ@¿ws}‰úzüúyîH…áêLõB|gÖYÐâÆF¢ÐåˆæùÙ®gn‡ˆo~K¸dY’ø«û˜¿Pò�øñŠ\MÌ�‘£m%›`�ãF§�1*7OîRèòÊk¯W¤Ïý@Š6á!ˆü•[Û\¢·U|�û‹Ü ªá)àì«|moÛæqóç*kˆ[e�Ðù$þ[íqõæ,:U¼é!ÛÒŠñUc,Ä\Íi7c®;½�Ü[¯¹ÅÌúa]ñ‰}Ë´P<6TÆRmËU ŸãheÖx½p˜BCvçD5 TÍÀ\ó�ñt&ÐÓÉ�s?Â~_¬•µðJº~†­8êÍDñËçÓÉ.�·š8Iª3-Ðé±à—ù~7U^­BUv�q£þl|åÁOªþEûã©áûäíˇj‚FÝÊoàR¢r¹äž]¹É[¿d]Âopº3ÞÑMû™¸ê·ñUb1Ö'‘÷Ú‚¹1ý~dP±×›oBÞ?m.žY7<ÃuÊ3¦SŒäÌ2”“…`[Yïk‰ôÚÿ£�jC† „a†µÍ0hPmagsòÅ LV¦:^Kè:»Q’Ί·¡–¨u}.¦ûá#H;º_iÔ)3‡—ÝB4wuÆ‹ÙM{º pi8 ›—[s¬Äû®Š7Hhèr㯦7ÇÏ‘&0iµ-ø¾/•aã§8oö„r#‡·ÿÕ½1Õãý<¢²àX¿hQúàˆiµš‹"÷È?(nXE†«8?W±˜ ^÷Úµä)FÎnmÊ`²Ÿx\éñíLåI¶…ƒìø“� +Ó°QàÕb…N0žLצ\L†›‹¶á7;õyYŸG:¬*Gß`Õ´¡ØQ“ äU'Ýq[±âFuIy‡>ÛJ†I3~1ó�›ÿÝóÕÃÛÙ  ýì‰l47´�Ö‹ªØ9'åÁqƒêË×"u»€izxýj;Û˜È*;ëfÛÕ¸“ºêoÆ7bhŠ0–·}i~mu›#hº1÷aòÓ4{(’ÜÖåqeæ¹²á4òør"¯.Éq‹4"Yk¯U·¨W ú ;﫚ôÆÛp.ö!i¹äÿMÏ·O|:ÐÆ__í¦î).RQäƒF°4n¤öæÍß]GI®Ð²Ò¯ó+ª—Ñ'1Mld-X%Ls®]GËÂn:ÿ¾ú ¸´Êܯvô§ – ظá~×̺Q°4XMøÐSÜø.2ãÉòÖ�mìÊÊxyõ߀¨‘öÙý{¹dn§O×Dÿ|…bR€w$•›œøƒ©u":§Í¸/ZðÌšëRadÂõ¤¿„sWéË÷|ÅßÔZËß^ñÑÅd‘Fþ.ôìB ãCÈt1Á›ö:L'¼âéøê`ÐÉÏÇü‘´—Xé›E¡m)>— "x4UÒ(®ùžX†]îñŒ€ s�ß_ WG¸ŽUïÂrK}.ˆ;Öb®tȵÂÚA¯]#DÛ_ÊPšëjS÷&þ=p=dÿEƒ[v^W†è$$ÝÚ� cišh°Ì[Xe÷ƤƕG4[sî¿g.9Öè/©p²º+þ'º±,S+¶.‘ì …ÓÑŸßû»Éì4Ù/˜S�%±kà?¦|þŒÁŠ˜·ß:}A=&>•g8ò­lêð‹Lø.À‚‡RïšEÝãìyÜÔ< ìøªvƒH÷zoÜe.lö¨ìCü:e³pˆáŽV v“+mõù é¼±·wÝ~I4ÁLQ%%¯÷y¦žák´ �8˜±›ÁÁ²šgéÇŠ¡5ž€LŽÐô’ì¹=Ã=«Ô"… úSáS÷ÖÍÇ>N¥_SZËÆ”“!&ݰVÎÞ5#…"¥ÊI?½ž$jæ9ž9%Ê,ÙÕ01�TªkÑö½µî€+Ýãz”/Î*]íšœ"YaàDuŽæ‚Ô‰:-! Lþ®/rœô¦ú�‰´[ë#XeærÛCÓÛf2ÅP‹ÔÅ;~„廉PÎæpœ 5щ˜EF¼¾°¬à1å™}ÇWúf´8n(3 ÍuŽ¬ÍÆ€.z0+�UõróügV±áZ-¯ŽîèDQêú™íõ'ùX�j­ÌPËžjˆN™€} ˜\Õˆîß~D/ç‚e¬¾¸Ñ_Ä^§ºÅ¤@GEÕ%Ì«m Rqù: vÒ>yåŸãoé?ÝÄñC*Þè‡3‹ÍXƒ«‚¢”ÜtÓÞ'Ù OÚ'uÙw†tÈ©Ÿ«—L$]! ‰ÿ3ELÐ]&dJÿÓlÂKŠ&ZWèÉÉê-A#ÏA’޼"� “xkƒµÊ— [7DZ[åÅ �Úk´åA \ÒœAqUU¼±r¹íÚ8û<؈óï³\{oûwàÑË¿…iÛÿʃô¼ÿ¢ w.VÅÜG¬Ù£ÿ¾L°Æî|¿o]õß067΀7;6žçvét;¤õúÓàÅU•OÓ̽²�iZ]Ɇ¼þã/-¡"‚¨¢v ‡«i't·[Ivå¥YSV`׎ ƺ_ÿ­oŽ“åÃÔ@M±uÁjë¸É•͉Þ×Ï 1¿"‚•ŸàûyN㸋¥æ’Åž6–G‡*TSv’gµ¡¡)"€ºÊ×[rwÊ}¼qS{4KÝÄúÛT`ññEçÔí‚€ü‹ e¨À­Ö•ª¹­žþûV¬‚�°&TµÖÕÿ>áøÿÝó¡ËXcæòoÂ_»r͹ƒÿ¦éIP—Ä?®=tá9ný‰‡ý£©¦§Z¯lö?PKcˆC@æÛŽ ia;cimages/img0.pngŒ»w<Ûßû>Ž�±WljïØ{—¢µWÕ®Ú­ÕZµ{S£Z3Z£j¶”Ø EmEQ36µbÕæ§¯÷÷óÿï�ç#9É9'Ïç}Ý羯û:'ñ†úH‰‰qppHu´ïãààÆÜ]š„À»O6¯toï^ˆ¼µ-_âà�Pÿ»pqrò 88ì8:÷ÕLqwó �\Ý¿bÞÔ"[D÷öðIñu¼§j)¸G‰rìU¢Ò(ææ•¢0{{"-µB$‰B$;ËWû ³~[ Õ#ƒ,rAíå/š/ò>»¿ ¿Ø*S�€Û³C�ðï¨Ç}ÔžP 0>­ e8@ž2ÿ÷–\ÿ”¬!(¿ü¿Žöw�¤ÿe¾úðˈ€¼‡ùå£äÑ{œÇ€A^!œõ+"w©Ë»BÄòRùÃ2]¿E©ðéi)G¦œØùîÒR.Ñpý¨�_âøÖ�³*>#­Ú=ÒÉfC7b« æs¨.ì/wcY^ìP‡J6_´_V%8Àvt¶–ÙPíö>ì}޳è«t دRP!‹„Û#äÁW‘î û�äÎ {Š@˜ÇµÖ\KÓ‚ÇÖÏC®ãçªAŒBFX©ß©ug ļá¾²ŒÌ „duŸy*oÜ 03fÊÞ»'6<¿*Åü’ù©‰.Píª� ~bôrz#}?2¦’¿„Q˜ÜY-ço×NH–„ÿ¦‡&V}Oš×eoù&þûetÚÑ�i´žÙ«Ëûá½ÃÝ�c©œR6›€"æ²#Þ KøÖ—�©ÀÉ /]–Óöž^]Âð:âäȇcU™8®eñ›é?)ðÔVežKy–©ßèhO�¿;e:LÆQ¡ZÈjõ]‡Iw<�çì»Õ[ú´RØ Žz=¨¢\Û¹�Ê^õZŠ\‘V/øB$Yª/ØÆ† ׳%}Þ’þk£rP\‘¼|ˆeï ÝKqlFÿòy{½Ìó6´ê°¢êjƒ%^oP³óåÊ)ëÊ:ûüÈlôò•3•¨è ­øý=« åR&¹‘åÅè •JäbT¨Ö…#Q€  w†pË:F#ì��³)jÏ• O�lu4uZ_ø�ûðBUjoE©Ã÷Ì]%œ[ƒG µÒïèe1‹€Sʲå¤N†ØWë~ mT£ÈVROö+šCòžE­¸ÜhÕÙVº4z/÷ŠO*x#á {á}*x�š„Si•äÏëZƒ8>ÏUm°.päæ.EÍÖТEPþú ÁSqäûÍ�¾Sù›4{„0OˆT€rK�œT”è3B`kB S"jIVL©£ãü"+èÍôÚƒ¿c�«ÁcÂU˜ˆtƒò»µ¶—¡T$Þ^áÄP)S4öª¿7y´ßo�"ª™z&ÈQúJE­]9e¤¿{¶ ̓ Àˆ¥ò4vC)é 9_Òß¼@iaìP<‡\š¬J^Ð3ÇÁø—¤¨%vŸgsÓì¶šï|–uki“?±âñï9^‘¬ÿ±Mp¥ØE˜ ›Q$�´ý¢7oáIá2XÔVcË]· ¿/9ÍgFkºä_‰Ÿ gëéjú=íòªúèA3}�¢­B0wv„”uxY¨††9r X±ùGPS½mÛjJâ2 Ù—xè•ýp±JQ]Ô¬Hogm+ßþ£^s�Œ]ˆ-ˆ50§é�wØzJp;hÞÓ³ÿ7X E)€m,)C´NæF—1†ÀÍÕø•¸““®­Á�\Uc¡£ÀQu¡0áÏÄ”ûìVR¿bí¸ßãt½T a"aÀ6œ 1’x­êÄ2ÏÏŽ¸ôÇÚ·½jŸ/}®ÖªsIŸÓ>mjæšÄåTûÜÒ]ûŽì\Êç@CÞÐDxIQÜÚÑŸUuÏ`I3">{I#KuEœ”õKŠú&vž÷Þ-ÉÊùÞ/`#ò•­ <ùýpcS2À±¨%ýkK‰=y¼ÃeÅ;¤Ó³?Z%rñ@‘ÍΘ݃8wÑv$¿ bÏ*Û^]ç«å{̘G<�Ë?äÀïe~êß„¤ëR�…e 2 ¸=›Ft£‹Ø;|¾æØ¡ º}ÆÔ"±¢¦¦û_¢J”mRTl2êVÂYïŸbdž6À9bcälkÝÚÀNrGzŒÃRåOië9�;ƒ-¨àdµ9éŒUv;Q®Ç·à¼Ó’Uí‘f9tÁ cQ ºªºkoí&sD€Y5Ö]Ö ƒ‡«6�lƒc!-aæ^_d¹ y®h¦± Ògk�k�§»Pa*H¥gýûo <ÖY;„ΑR%z">Œ5° V@4úý²ßKXè±*§¸‰²òÕ�3„d^ü;°™›éa ïþø�ù¦NPv}0U0¥p‹ËCW½@2Eèyóä0Gta�%±VPMàVçJ˜Zäjnê¹ýtõÀɇÓÇJóÕßë~`sXÞã믟æ®Lÿ:ó§@ý¦æ-óÎúºÝ� D ²Mdlˆÿâ‘À#Ú´ù¼0,Y}@Ü 1LL“U<ÙÂû•ùý…ƒ™Vd" ¨³�å•Õ-l•¹®–ÂMFy¡—ì!�)_¦£"¼ŽGfe§àÂðf'z(N«®Í>FÏ“kÄé”QŒí7·¯FŒT䙎NÖñ I2iäËñ´a{möÔˆ¥þ«Ò÷á"Ÿº+4õ–ÙÏùΤ –¦\ôx•³[k÷³S„÷ýÇJ$YšÜ¤móxËÞ¶wö=âjÅzãäýƒz l%dv¥‡m© : ¦'ëøWŒævQÍ(ôA1:�±’à-×Ð$WKxï¶ûH-ø8·gþ{&ÔÒ*°ÔÿÏ£”d«qh„׌ ìöbÅKW½·­GmÎ:FR ;õxÝ<¯Hœ—‚\LȘ¡Ý>Lþà#‹û¦ˆÎÇ´¨ÿiPI´ú…> áÿÃ$ä�aÝTÿ#ÔŠ³bŒ& ,ýÑJQýõ–ɬHR<"Óņÿ ò‘×Á_µÈ˜&Ÿ�²ø”¥Ý¬DÄ[z*pæ3˜Ø°÷F¿Y¹¢)6Y¬5øË§Uä'QÈ-G ÒÄ?«ì•à$‚×3€—/›Õo•·qb�zZß1Ä%¾=¾Üôê\‘ÿŒVqßÔÑ™O+ôžeQWåPëgÕªìwœ`N¿õuü¼>& 6Ì#ô=Ù¢ç|Íejú…7Cˆé7Skœ(¬n}ýMÕiµR¦{{�èIAz‘|Ϙ±ož™†µä» ÙêŠÙª°ù’E‘•Kÿ-áͯº¿:«j(ô›e?n'·”•Ç®g {6Ã@k:‹•f!YÊiO�–ûÔ÷3›ß«m™+�‰rÈ—8©&We1%/#n?[ÏQŸYôͬ L›TˆŒ[„? …i]•¬)Gw¤É$ÚÅ­xøDóɲÒϽ# ǹmF`¹¨«�6 x³AjAº»d�_§L«ËÒ‹<,÷§ÚÇßkĸ§U“òz—Ÿ5â—ç•Ðl°4+‰fOõ­wo]Ò×êocsJÐ6tžÖ7åÅßdõ§r2ʤL V©ÄÏðßYÔ·¿}xDÒYócyÞ³ƒï(·ýŒŸÇ/ãbÉÌ~¾ødË£S’ª\y`û`¼ðü«•Yz*_vaL ˆ àFQ¬Ÿé»Ûª[¶Æ9AÖI‡_Ï4 ’¤ÅÉò#pBúýSI±ih²ÖÛj]ò°Õ¹Åu…¼2 Y¸cogùM²¤ï_‘µâ_WÓ<7 N­�G-þþy„Éß™†n/4~b¢Zßû¶¥qµÌàz߸�ÆIHð·–¬Ö€¸õ¯Åãpb¶˜EK¸àI$œ½Û*õä·Å¥Ð~ÏoÒÙ¢3¦�*©ZË_ÒdÀ)J½�XS”\~­m=nfzô‰Rá$.Ûü å†zyßCÒíà­�¬)¥®dœ:Öª¼c}ø‹÷'.s�ïJ¸ïöŽ(µ:êÜŠÒËPÜ«ÎÛ7­Sûî£UÜÜ-¸C  TŸöÇŠ” énàc¥õ›†ÿ¾a@}Gei…2õF븵çœYѸˆH‘'û™·qÒL7Mü\Õ›ÅP¾Ë+�‹ B­©–òœ’tàæf÷{@ž21¿+HË4 ˜¦Jê�®É�õMFÛóñ {1Ø2Æ/F^�ìFȾ7ùêDrt—ןê�·1W`Èq4Tus­iÿ`n}}¦0¢­ë© ¸ªY2"üpc 6Ðܤû¥b%æ"ÒüCߺ©dµÁ버Q⨫H´Þj yc±á°ñýçxÎ@Ç5ŒÈáœÚÜΙYBÝÇÈÄ(‹ÃvD4J?! ¤³Ö˜ñ™%\“·²d›f€õ2.žÂècO‚¿Äà€ ýæÙüø•Í£3Á•Û�Ɇ _ñY‰è€)+­²”uàÆbýRp�àéjÛBÃTêžÐÛ1•r¨ Ý3< Úm <XÆT ¡B×=â¿k´N!t­•0ß²«_´F³àÔ�Ö áÀzÞÌ— >¾N¹­)­A2žL»ÏñYA­t.¸ål�$   «þM ˜/Öô4ó#ÚH JžàðAi§˜Yê÷,káòòx}øãŸÖ@¡ù^_›GO ÿ8à­îÆP•D¼uƒŽŸ™‰r3¥#ÈX0…5ÌI«?ɺþjµÿh~†‡·ØÄr„Hè¥ûÅXGÌlyš�c œ�I$ f9TcMž¨´§²Ïç„Ùòx¡¡Ë¢‰«U6–ÄIÿD0„ƒªœ’Öˆæï(ñ|½–fZ¥ôGKoM±Ýé_tÞ�UoÐfoæ;;øQ�7ÊÇÇXn¬¦xr¬‘_ ¾ßÍ ÖèæO!þOLã« Y< Ç©pÊ ¬Á„ó…Z˜Hq:@Ü×Mïküû)42ãFÏ|âÁ¾ßœ!ÍäF¬äâŠæ>àßwIà3ØÃôƒŒ2-ëý*®.Œt¦Ì°ÁÓo˜¶ˆœtä¹µI'#5Ðæ»ö 3ÈÈSœÍÞ×{ã4ðp¶5^Y ë¦íeN^º¸<™åð©É„Š”øŸh‡ðbÀ¾)Kû²�=" ›Fñþ¯© ì„~—ýŸºqíV…Ę¿ú®öÿÄ@H ä: >  BØ5š�ò= »(ÿoBZ€äÉOJÐÿëéy þÿ#~Ÿ2³úߨ4y‡\ÐàmÖ3eù+¿A6ì‘cw‰;ÛOG˜ž6ÉÕ@ëñïßé¤ ¨RGLðë+päñ|éviÀ»í_áôV!@žê ¾:c,nrÛ-óÆíÐå†ZU±@ \͙ӷ¬ñ³Yü'x^§_�d0 ÊÞQ<¾ô„jHü툿håžš§í¾®šTn[~CÊ’Å�æèƒE ÷Xø–[?Í·ñÇŸñ¯Vðó,#§2ÝfÕh;bØ%ÿ·xI–ÉË3þÆÔ¿¦TÁ=³ÿ Ò뺃¶Tî×ÏŸÿ¡ÑÜs׬> )ÿŸ0Þ¹„äPyJ ðŠ£RwÍWÉeÚ´ÿM4¥ˆ)rÓ÷{%ùŒÕbwMEÍÏÿM”sç[z/?üøü¯’á¶áT‘•×ëCZ¨ÔßN?c[xBÃu.U@Ô7k{‘)2wáˆz¹ ¢ÅP}¿Pÿ¹l�À‚˜•Jq»•EÞߘï9stpµºYK?z\J{ž~pA«®ˆ�ÎV—#´¢ðÝàA[fŠÿä[6ð±¿`_¢žå˜å¦õѸf|_›E,­6›ðÐi7¥¦lò'QR)ì/Gu”`¢ÎQ¡ëiëì 1×[¾âà¡ñËM7è¨=8sª�|û'tS"7h*¢x÷®õ8"O!Œ©o6�þgËá;ãñ°áü¼þÏ „]†ƒÚÌ ÿl· Žrp=Ä¥˜ÿ(ïྋ!""*)‘ÿ ½ù}ªÎøÅo2Í*PÛÙ»‰Qó7‰á$EÿÕ ¸œ-�‹'–À!{e2ÿ{BÑž¾¥¤ìÝô¯Q¨ÕU9‰.u¥‹<$@ûçPXœš¹ ¿e¥±ÚÄ×Áo-™VÃ&¿Úõ9ÔðŒxtý$"cì ŠÞ‘·�äHNâyj¾_Enéh*D 8ËèÑy)�ŸÇµ�_J2ÓõCñ¤g”\çWíR~tö¶ã�k¶L‚•…ªÂð~<øªw«´7†‘Ä,—rÍgF…GÜŽ`nU+œÆ³åB@Óüõ‰È>Ù=P;÷sÙ^FñqËž¸L²p3.s°Y‘œÀ?…œ`°|KaM2LÀ—A‰ñÝo ¡Yü “,‹ Ægƒ•èHpï-¢Pge¨…¨ŠW$ᤊ�¸+…V‘\ޤzáßhà-AtžÁ=˜I»=1p¡+¥9G¢B†S5¨²¡µ”¢Ý?z_„L�ØþêHšòBúŠ mæÎ#~·0o×>Ïs—¹©º•Þì�8�¤ˆº ¥>üð/‚?µ÷KqÁ0¤Ý ³gÊDÔ�_í„§x�²á5h1Œ*FèÖ‘®By¶Þ¦¨Ÿw„úŠù-ù?¨´»FòË2<^ÿ… ³W MÁ¸d–š  ÐÅiÂÎ-µgÍ ¥óÛ™¶íZ¶øSG"•ó9cΪó*ó)‡†q!q&ŒÝëŸî­fŸè×+ïŠe¶™÷"=Ùg>Ý(/¿%9}ŠûVšôŒe‰†k/;�\ûÂ[ŠðχyïGwmg|¯Haí:‚½Ÿ…§A‘¡°×‡�ûƒl/ý e¤ATáP‡’g,x/.µ±½•Cá�*Ä;xaíÀþK{ÐØóĉ4Pã‚3È,Ã.ó3‘¯MºÛ/^Pw¡�g¤ kíÀwЮ}Ÿ¯�q#Xðš^±á‹�àX¤}•5äŽ1Þ…Nde—?6o”XmC_¡hUm÷ç†|Ò׎)Ý _Q¹>,&09Õ›�s€œ¹'n¸èYóߌãYuKßYàZPøÊiௗ“Y÷m~L¯ÁoE+à=" #jô_N`\½–"‹… Íògl�\FÓ„¿öø­#wLz¨"A¤}0úmVkˆ 4ðˆÞSÿá�|·\nÌÍ ±©ñ°½° .¨j§c3yë4Iè76ý^E®š,�‹àŠE;+„%±v9K˜•V?ú¤×¤—Q[pçq-Ò‘ª©}je•ÕSËo* {X=J6'ÚW8ãÒ\`üÎÉ�æâþŒ˜,Gä´ùÓšÒ�…é#æIv@Ál 걦^Žö×ʰÇégsa­•}LyÅXì kt�Þ|/iñ¥…ë[Ê]Gz‘o7ú{Cþ–«|bЉ,Fªõ]0±{é�’»±/ƽ¯Û‹YªY:Jé´|·^E”77D4·Ç×>lÖþ ±Ð¹ûÐòÍ_÷ÚP‹3i“…æs‹ôÖ1¿YW(çtþÕml ½wðŽVȻғ äëÖTqýÔ‹Ï\).ë«åè™â& ÎfaÉ ” ¦ÑÞ`L1E€¤j% êðp„1Ë1}¡Ùhø‰ƒ;£Þ"ë½æ|‡çŠð„å¼YÆ5ùìpËcxO�#ói™\g+N뙺{.M’•Ȱó¼É"!òÞ;‚O¦GuödVñý'æ¡/ígG@Ãyfëœ(7¾)#ËEY!mÛÓ¹?¶ìí¼!Ó ®\1‘Ô}—”A5=5�)?µHJ2¦p „ZèZÀmÐúªŽŸ¿¼ó­D¦¢:P_í•°TiSüèß,ð‰5®N8P§&Ç<’GÜšò4 Û‚¿¨ªù¹>Ñž™ý)¢xå³þ II9e‰µ]§öÃ"ãÊI êÚ᎙Ô;•¥_{ܨ¿èÀó¸4ë-í)ƒ¡Sõ³\¡Â2£0ê/FÓ›n·™ÅÂgPÉ ›ÜþÅKµ?àëì3»ìnÈ p�Ãdâ¤9?lÁKÐë³ížÚv9ðÇb™ëÜê‘ðGœ’áY�ØQhã›9…ýÏH‹P‘óy�Ë<-¤’%‰Ögº³OMÒwùv]_G’âZˆ›Ù"#Ù&'_ymúâ©'ï÷2õÍ.>(Õ]žaíY­»ü> sGB¤†pˆO8Ï´é™äÞ½ ~³q$Ršú ­ÚZOwG”?ñ§us˜óTs-öž¶\ŸÍnÛ9~©év$hOI1ö,+½/úëÛgF HÒ†ë÷žF*´j›8LÍ;ñ• ÆEøÐ€e~ààŽ¨`&³F×7§x$_ÓQdä6ËÛ¸W¶ÈtÉŽÜ�Ø3•v¨õæÎ J6å>ÜÜgò„hÜ×îC \¸¢#üÔš æUH™»d/(E¢:tº4µ3ÄÒ€¾fÍCš’D´,dë¸ßš+Y³ò ÷pîܪån¬ÏØ—¯÷E~¦ íŠ5ýøBµÐüñ9×ùªvá³ýF—­F/;ÉrûÙ�Eïò¯£½ ‹ÉLTà aÀ/i0•Y…`ô•NÒ‹bE¦%/œ�Poäb~ŠXÏÔ™Þ-Šï,>ñ.˜T3|jpÀ¶wjc�’ëÌEEYÉ&'�+‚#N ÂnˆèOžóÝ(¡“!ѹ§�V`ÓYh±™rÿÆÐÆ“·H”ÇùŽiÓ‹é(�r_^Ìõ—xß_*qávàΕ¦Ú˜ƒ1¯Æ¾VÑÍ(‘â/l™ÓNóÌ N3)°dgÏwz®Ù¼ÂOf@ɱjÔÛ&é°è[*,}Ì1oönì~ÓV’•³2•UéKg+ùåÕSžá£¥¤%#á¢÷eŸcŠ�‡Wb¤yÉ+RªàNE±×Õ s -ÙÔa³›„üô€¤>=¾3õ°mWöÞàÎë!d²�m¢‡´/裗ã9(÷Öª5k"ÉaÖî°EÚú¸¡A^óÙÜ6+ž?®dftü!ZyžÏi÷8WÈb9ôì´“¯¾)Í×�±{Ûš¨wá©¥í…êW3q«|²xƒnT‹y5ŒŠâ*/y9”¸ÍE U¤¢çGâÄ‚ 4ׂ¡(!Ñ#¤®x}£ÅáxAÑcø4’ÖôóÉS6û¹üçGŠòQ‹OŒE¾M¼¥‹pŸX!½JªÖʵ´êä«ÔOL>Üx¢ ¹½�D ú: ­_'Ý\¦hiçK  …)"¯š/*¸�® ¤KŠÒ†°Î?%òyil`‰Ý»÷SüÔ‡Ö±·Þ™Ë‰MµÎÇ¥Y&Û~^Ì•ðª{ô@½Ú�õ?‡Õ�ËîÂò ÉõäÏ'ìü(/,ùUetêãØ»zº[u1<o·hËÃ?ÝPÖ ú¤­þ'·'W¢ì<õÃp¶ÇEðÙ¼Áiô·@u‘�scá9b`Ãv\Yæ‰�îÍ�±F¤Ù½ÓÈ4yöYù™øuVÜ«=£t…æµ@I‚(&°$'àÛ3Hé*þ ™ /:ûä0xÌoòjÝCD @uCd>p&{ãˆÞ‚D‹ú.-‘sÒáOÄÁÜl¹ŸêŒE+r˾Èuñ=×Öë…7½”"ûÞB|4Lu„Nea�€5Ä[p¤è‹¦¨^§í-ÆÃ Â5ÛoFÄ@t°EûZ¹ö~¿+¾§ s0ÏSJ~¾sÌrë[éø»eólOsa2Í�idïs &x ¾×þ¾tW¢\�î=ÐïDDÀþ!-Pÿ•Ä;^‹†ŠHн¾èh™»�î 6ýõ.º Z Zv–,©õ7¸ýä](?[Ùñ¦Ú#d~©ãÙù’Ýq+‹†âßÙ¿z§»(ÿs‰[Ȳ¿glkP§QŒ‰ ^B…dæ[ÑR�‰7"Pâ0q…‰CÞqX#K_Ah _iÜJ!‰·ù…'§\ØþñKý߃½‚ÃÝ™€´­#I—•�·—¿¥{r»Ó(ŒsàÏ·7É¿³âîgÍõA¢A7’FÿÕàݪßH# …þâýÝFØ„ ù=k'½KêÒwF1çÂjc&�¨SRp\h–£¿}×E¢Ué>}vÀÜ;yYSðåÅ×q;K­ŽœXQLYT†lÿ;ò2𻄫I¤Âü<-1 ñì Ör¸/¢ØúO =E,ŒÑ>Á£¬l.wy[Wf4ý6nE-lûGï;ò.ö¹ÄÙQõÛ2DäÊøÔ)SóÇŸMÊ.ˆ–Y%·Ú‡{•4‡N92\×nb¼»,¢ÂáE³·>M»Îù=t·Ãiäf2Z/3 o ‡ÿ†eÔÞÝÒØôi7–ªJ‘ùt3åÔ¶øÎŒO�­©µ4ï ôK«Ž”Þ´ØÙž¼¡™Ml$C….ºv¦Ë2CÆo¶ó¶9GcB»Às±÷þ¨•½©ƒ«DT¡×Ž�¨æè·º,þ¹’%ä‘€)kÜ¿c("@çˆå]j^*çÍJV^>Æ”gª1KSÞ�¿üýß0ËS°ÀTuÀ²cusLrÊñöŽ®E‹§á›§/—f#6»h‘©£Ê³3™x ÏoÉ �F¿&ŽÓ°¾¥ /¹…±¿Åb‡€õEqÞW¦å-MÓ™M°�HfÐoì}û,ŸÍ¼¸øü3oyÚ�àÞçÎð­qÕÀ+©õîŠ/£µ®®cý÷5–‰5O¡x܇üžrNîÄ‚ 7~´ß¨½ $w[Oïýi°Ñã<6“Æ“e°6íI±Ú“³ šZ‘Ž^"í2졤Ñ4K‚{ðYÔÞ¯f]«"Ä ƒ" pÏÖ�’T5÷üè¶4H&Œk󞊵m&ÈFN¤É~|T]‘°odÎH—geÝ…âUu,ª 4 "²oRrÚRÎïUù°êG{™Î:"Œ¿ƃÚôç¯ô+„Ë�Éfv]Ð\¬41±M‡ŸŸ§„¹Õö²{ç½D?·_ÞyÜuEÆK±‚;RwÞÎ=}4v¯ø ÚjÀbkà[¯3<ˆh›y\`M¿,×ð¼7á\‹Òµ9‚Ây BqCÛ›2¤®Ä¬`înÞ �Ø)��á"ã”7>ÈG¬lÃè��gê–íØvæÐë¬tÛ�#ˆ‰ý|­“{MŽ=K‡¬O÷yñ˜êBæM³ÃŒþ¼62*¯màÕ”!·àø@.nÑUDÉ Õ(ɉnEH|É/U Ú swÄœœ<±ÐªÿR<F{«Œ2ûɬéͶFs HŽðÕ�)�³à¿e{Lþ)3_uN>|ÌS½Ää-ë-î#Á'Ã+ á¥ë2æ×ü� böÊÆKþ.‚ †sÃ6ôª ¸æ³‘GÞ!4�A!ƒÈ€�9@©»¹.éqÎ‹ç’•å ØåºçoÕ8k�È4/ ‘½¼Ý¹ÍßåW¸*Ðöÿ|üO’½¹ñè͹™qŒœÇDš+�©¼Àê*@Ã�éË�®ï¶ëÖ_R‰7K<Î%p³<1O/ü¥öV°«; Ïìƒùέ�‘Rè¯Çnbs¹¨UÍ[¾@Á£ÂèªÑ@Wk©wL8 VKWÀ<2ɽø�=µ½œ>1ÍŠâT¼„ËUIò>5&È^ÁôFƒïRÀÚây쵂B2À6ºÅÝŸÜ!v¼ßà 4tælÂä]Wá•>\zß"»÷íû¾ž¼K¯Ýa…ê÷–|ZõP�K 5.©†ozT/æ¾ÆÇŬ`¯²«¶uù¦¹q^ÉÀGy&˜aïÛñ7Û¿S%mý—öXîÇ$?Ú¬tŒ•©,â]e¬ÊI¿¿Ac^`*$€E*µB#E[þÀ‚BµÏä^-‡±v•—Ò~CI·¬PÐcVä…n®?çÐPñoºÛ÷¨øûC!19*š?QÌ€áAO ‚³ÃðrÔJ �7�cj7<) 2q$œG™o¦ÕòücÝ(>i¼CsLy&ÀÍã¡…&¯$cZÜ-Xàm‡ôc†µÜ›”`ÀõkãÛ5KÆF¾ÇøŠ¤¬€>äušÏö#kÿ}RœÆ×7±S/Šôà=F]U®àG.A ‹¿|™Cµ ¼[žBVwxìmößìK\Çm¸„aš¤vüïþÞ§ˆQ“¾‹“¾b˜î‚3¯~+¢O\6éÁr ¯ü«ñ”â%— mv/m]î¿r{«Ï¶“Û/‚Þt)È/è÷'ÔÀ‚ÑÔ–-ØÉz$‹óm6°Îyrê8“©Üš:°4ÒùE ÅpaŽúµH„º)Ó‰dH/òŽ)\M\Ýú~¢œJKšähtPZG r‡V‹Ü¯07_ŠBæ�QµÈX Òðîî>ñ´¯¯äÕm08Š\§lçlÓNáNð:�䨞®2}ŽÐª‘7w«¢ùªLÂÐ÷™¦Õ"Í‚{>¶À€ÈK~«Cõ`³&:9|“�뱆:ĸ§qñ»’ö-ä¼Ö7ߌïͱÁ2ˆ-¨Jõ–ßÚy}+§4ì)Ž/·rtTršj47&*¿¯®¡aP}ßqÀºô2±,³i�¯ZüéŒÅE úì ›,Í Ðººåya$ɻȠèÁTK ]§pÚð}�3B$µ"hÇ �–Aúñçu©Œc»QÇ+Ú)6ÂÊäy!Ÿ1´ñº3Ÿ�ÔZþ;óŒÇª½Ë]²:™Áq3#gÅÀ%+üщž Ø{†Ì³-ðñ¦M^iÄp7CYEÑS#±0âjܼ¦iði�'¾häk$«›oË¡ˆXn$§l¶gä<ÐZI‰„• a)ÁM¤óšÑÚÇ?|EW¬Óy|6‚Ãi_³'ÈM¢øÜ¨lBåÿn°¤⸺JR=øY@ïmrk]®z¡“/ì"˜ÿ% ßMÇbøë€Ù[ÞF‘FH¿¦* óˆ=T–|çÝI7mä,±|à.z¬Ô’b5ËT>²Ç.×X¼�ˆiq÷žs'FÆ¢YÞo“Ø,.{ÝoJ×%¼Á¡÷ÐVU‘Å; <‡ðØ=Œ8EÃí�íå*ÞœÚ÷D÷,{Ù3zË’¶sè+‰1»¾špëß@9&¿°ýÙÑwp†±X6v{5Ÿ g1PLÓ»Û Ç“0#ødSÒ ¾é‡_©€çį뭣5å~¹ÀGÊôõ‹œ]zÐo0§¨Ä±ÄKD "ÑÖ){!ñ7Öî÷{¤˜ oÑëQ>ÉèQ Þ÷§Ïø~»¤+ªEé*‹2’Z¼éöwtx^KDÉ8¾Ûg…F±äpûç%é� !?°3·PQTEa‡Lpœ„¢Ãy°ìK úÓƒ²ŒdÉñ§ÒîOú«[9–¹_ Ý-Z] Õu¶¬òƒžÏþ3°m4Rì&£á³¾n[·/?gGX^Shåvªwòk5dz*ƒ¨7–øŠ´':¦»Öo ŒÕ@O]úýX&V‹ôV†ÖR¼·‚çÜ?»ñ·8lV6R¬=Ÿç~BHMœÿm¨M�ɳÙ)EW*‰‹¾£¸*¨Í�?"�˜—óßê 6¤…5Ø .›áûqÖ75Æ_üa–‘Æ Žü†2W |š…Øæ2扢ßÚK!†/ñÙ~Œ†DY�›u¡丟[ÐU¸™—=²Õ˜—5÷TF'z-äéîßà†4¹:!Š� ²FGeBWÈ…—ï¨ÏT€-áô7i<Ï`/÷ßS'EîúôRHׂ—M—ïy™uaÂK–íûÓí<ÃÁÔR¢w%s-‡ZFDŸGÁû~™Ñ2�<�¨ãøK¾Ná�´pú3\ëw{]áøZKÝðϲLIÖ—°DÂ)Ùú6jº±gàg Í;ý9¾RøÕŒŒÓ³*�W4Rœ­XŸ>¬s¦&b=ä(�Ä&s⾉öïá©.vµôX~j' †mnÇN6¡ðß®³bF0fÿÓy†5—Þ£.è@³ù+ý›eŸGÙb*å^²ë¾ ß‚’æ#öfÒË”à»7™±/×Aµ×$Ë)Á¨_w¾+Jð_±áX—÷è+|©×®­½~¥Ñ�R-=3øøÉ.² =�¡È¼‘ÖYZiníxé:°‚¹ùz‰6¡Qt[ÎSÕÒ~)ax‡‚&}mS¯•fðö5ÃZqÖµìùcÀs¼jauù}Ñ]˜`¬¥ªŠ7Ö&öcü-8\:Zÿ_ö³é• aàQ�¥9xXßL²÷ƒ7p)Æô-ü!_V9’\ngÙB²»äE™r­uc�§\¨7o%SYR ² \*§`TA«fˆÝÝN£ÈìèH†aD9ß›‡°Ëp‰:Uý4÷¢ßZî¬të)ª×B RU?’þ÷ß–ìí�{S=JYXª[[::}è¨)Øô²œË‚È)\²’løÝåäÐWõÏÑã>”É�|?¦‘ ¢M¡_ÐÌQÉóOÛmMg¤X;õ‚&_‡¥o ܽÒz~Ê!ÎÑ1º 1om"&úE‘y}ÊwÒa<% ¯Z| lj��V¿hÔÙÏ­QþVoûÖž{®‚�Mõê¥åcY´ª ÔðEæm‚ÌùÜåu?„õº:B0fúí§=¢ðÌ?"@—_{Qé§ š,wà…דÅèé{ëøª½t¼´®ÿ›¤ë?Dº×*“HsA>ñ’¾ínòöùÚs`>–÷R7ˆùp/q\i,‡È>ž!@’J±!£±�…Í+äD@Æø?]®: ÚÌõŒ¬¢1†èºCt±},lN?hyÝ/$Û9uG sî«eÒ2ôÉžlq5Þ’á…5?sÆpV·,]�–BZ((Ç�ÿ0V]áÂØ©®PŒ€çt)‡Žg‹ðyß"6äå·èÞ¤Öèúsî¼þh.¦Ø˜\|SÌTM2vÚ6Ü£"µt£öúAèöøùÚÔØñ+¤M [uÀŸ4aBEótí‹êŠ7j]$«|Î�Ï{ÑN’�µ[üÌfCüAâ€%ö'´ty òç þÆkfIÝIQµïµª;|4iAº—oñäíƒ Û‡Üà ó) äȬÍ)½Ð{C»ßÝãcHkqk÷ÀcѪ£Õö¦Ï7䎻^”˜À¬t•׎  ¢K  ®Pd*â®’ƒ|jH¿!žI�G: ”Oj%H¬ÁÍ\3uM�›­m”UbX]OÞ! ?AXc… Ç­ÞêéîÉ*OU£„½Ô]ȼ¡ú·2 ÿ­ Ü䈦¦˜¶M툷?:dÇeUŸâ†dÌœ|!!nÿ^ õLÇ9ßIC†M3‘A3H{ß±²Z™Ž Z±�€¤2!Ãüo: pæ<ÔûÍãR �}»WÜÒ._o‚Ó{8‹o êô{¸Ãõm?/å¼�w?½qçkýy Ýhû ó‘1{aøC5)šâ ãzî±,iœO¼U0F˜†%®µ»Ôˆ,£lg;ø+wçgÁÿÔûÕlŒ(Š|ÝÏ‚•£Ky~ˆfË#k˜)ðóIºŒÛ %ª×,?®’¤À˜$Búšˆ³–,>´ÙóZhüí]\Æ omÔÕjù6K =ŠÃdžÚå%ù dAÁ&&Û ¨Üäù,ä›)›w™Ð!¥ƒ˜±¿¿rƒ»KTU0L?e(ÖH×EˆÜ@o\@T…à<Æ÷Ý(Ú¨K's¯ç2郺7Ú±ŸFÕ9Ì=B¢.¡ÚeÍMT1E“?âþâ„ÁˆúˆUÓÍjª�NW�Z\ꩵ÷b:*Ü©2µóTã¿(†A"Üs/¸ |vécú´ùCG1¾¯Ž8Þ(6WRÅ,™è†ƒ‘±³k$ÉõÒX' *°i|à“ýKÌÛ´åçgdØ� mæ-=#îXpÑ.¸µà 2{Mz ³RcÁß>ea ŸðØø0/ Î ùYGƒañ"fÖž—/Ä�ï\¶‡øòÍ)Ütùº¶�‡Áé 9®·ò’̸ñ8ÜռɆ¥>½”Ý©GuP\  ×oIº—Áß«6Ê–÷K»åz•-Ödý þM  �0 šYF¾uâ¬Läþ(/ˆ¬“úxuot÷�¹Lå’6eÙƒ �ëCýŒ2ˆ »…5zFým7˜½vžÀG(P·6o9ÖÉd¾¼² f¾s¯z £(@êê}}ßnq4\âºË0fû%Z¶iëmZ¯åÉùêéSÚAœPl¤Ñi»†MU\ÝßI³Ü%ùb0ø{»ƒvÒ½?¸4‹-õs a¯£¼®Úë'‹™~´rCÒi—3["?BɆÛïXŽ ;Xc¨ðƒ«}4v‹c?‘¿šñ¯|ä±ìŸ%òž¥°¯)ß%šîͽ=ˆ/Ùú/>»§Ã¡`© 'Œ~=ÅáÞ3aXxv­XñÒvŽT"<•¥?4gp¡[2ÄÅ„‘#_�ü··£ ¼+!—-Ë¥mëõ{ æx%ijâC ãl‰zн5óæÍÊ£3g¡Oݪ­FÂsþ�äÓËOivMZ¬s÷Ó â–©Fœ¬Lh’'0ê„·ú„МI&æ�¤. Æ~¡DP2ÕBɽY‘^cñR½ª¿ uŸÖ^Z†Ûÿ>‘�¬Ÿ÷òU Ob{‹ÛAôŠ­\±ßTy„§8UÙL3|zt¼-˸ßBØ¿/×�­O‡°ÌDÚõC´,gßœ@kÌ£dškxC¼–�„š÷Yfþ‚žx@�yž:Ë8Q>I "-ˆ'ýT1‚•4²âÓ5:‹½XP°è¤æâXÆšÕçtì!�qï€>2ï¯tný]©X}Á�)–÷•Œ+ˆ¨$¾ßþþÝΔ°ü ÛLñœãš7<š]°Óé™Ê…dð [_.飉ŒA©ô^om7à̬ˆ/桵çòת‹Ñ]Ãáö ?¼äIÕ³wå@o¬×¨GÑÕ›Ìp|R^¼ÆÅR/õ çA6¦†ö€ -°µÁ|XkmFìEùAH+‚{"Tͨ®+�•CÐÞP*äÚ_Ž32Y¦ªOg!àzÖîª�±(]”O+‰î¥o¦¿eÿƒ•­ÆÌž^%fY¸¯_(�ÃÅ—žpeý ÷^¾«ÀÈK¥j|7íXóíÞï/ÔMÒÆD]X�oȬÕ眤•Ò´SÞ°˜Ýߌžvv2zÝMôÍÚv2ÅT'ã¢�!)w¢a§†­0ÿ{;ûßÝ®úïežô‡äwãŒj²ÇQÖQlú­Àóï}(ŽzþêÄ'rœm® •íÇ_y» ¿ëBbèË·hG?L&GïÞ´sYQòötÂ&0¦®W7€°ì“—äÖ…¯ùD#?´Å'N\Ò—EÈÁ½D¡”K—ûÄ•tßýÝ�êòp{²¬Ð×òÛZw1 Ò²{ñ8!‹êÜ£é²�XX¶I�÷düËür! sÌ¢Ç6…7c€yÝß×µþmNš)\›×jšÅ´Q ’®ðb…—b)oþýmøó¿Üòjâ5°™~ºT5Ñl[06¥y,K¶Ya½…ë˜|ãáÞŠ_Išö¸ Ø{Øvãê:c&µï æÏ’¯·…¿µtl3kI5.Íf¿ƒý5VJ# Žw[›6¬SÇ}/6rYrœ‹Ðkj¼3`UÛŽ­;¤_E؈J)ú¦6 þ|/憀ÉSÞ– æ]øO%V!"*åìv¶ÂaÖ¯Ö7$¥B6@<èñ-zn’ 6¨Wâ P¡)Úé ©:w'ÀѼFÁSµBœ†æ’^犧VyÂå†ö`-ÀŸ G&D+2ySõµ£„ç¿<ãÓ˜Ì~ܺù–ÄtŠ|Þb]%Q´Ë¤ÛÆÅ²!�•ÃŒ^ì¸ÅAQ4-Æ Ûm!x<ÿJˆ}&ðÑíÚ·/¦ ¡ 6.k�]åœOSívžï2OL¦PuP)¨"õA¸É½ñø¼¦¬`X=§IÑ ]ñãëœ>¥ -‹•§}Tºn=ê5FŸËÈ¢ÙƵªi«€’åºÅ1`ÂZvokÚI#~>°_{qz1yw0+5±ŠG{ó?üK¦ZX½Û°k9qùþ‘ÝãˆÀ#�•­æNú¦=zßwUW®r•ÐñV­u±^ÄØûPVã´�¡YË@¿M³y*‰õGœ/~t£Jn´FÆ`ì°É„ß·È�ÖÆX€Ý‚ý¤žtÁ Æ¡á¸ÕÐ@9ÚåÈD�Ð¥(¢túËÕ¥#Œn ?ɯ‡-[B“'3—qÑô-¸(7è^™ë¡ÑóÕ®ÙZ&øŠSö î݇V8ÿFtŽ�Œ±¯b† yÙWo“iAŒ…Ce¢5Uâ®WÁÞSUnüÄ¿ÿâ­§/Ƨ°E£nÞúܲYÅF~à{ ¤ÅAð+ï ö!ø¥‰ó¿8¤Î-€M#Lf7s¹l›CxœÙqÙÙ©{êv³Û¤]·Þ!»Âù’’|7�†²o/$ŒË•¿”ÊëÏÏÆ;[oݽ^Ÿ�ˆ¤ñÉ3ãÞ]{RÄÙ¥µÊvý!,–ó86Û²ña s@¸K"³PJî(˜¯Ðï½Å>ܬ k’÷Ð[ì�uKg¨Y�8Ÿ„”¥Éb¨se7Q]訒QQ=»ºýÔ�‚ãvÞjªpÖ*Ç£AMÀ p+ÔæeÏ gº¾< ‡áû–*´Y^L'/HÑŽµcà?wËü ¸ι¬1íß±Ë}|­Þq¸D•&®WÉêšß¸ëbW‹š¶=÷2ž+óz”.€{xÌÉé-wUÉ»ä]#›óx¤R£ìÙ˜ÙbwûÝ· ±ú•;^¼ÁwóMÛ®à©íúqѵôË(Í¿$åøEU@~З€£óîo þ%|Y¹y‹zƒ„ûŽ¥ç–«”O>ó;è[ËøI$F½À?&§˜‹ ÑB^äšz†°›G|âzóÑÚÞøœ´mkÁz3uá>aÞI;Š‹¤yHã�[ Á*`ŒªDrÉlÇ/±Ö¬’áxgYZvÁ\ÃVó–d‚waÞÏÃ¥ÜS£ÞØ5ùc‡IŒ ÁH>ßи)/¶"¦¡4‹—1E0›Ëúfd~^ùmpõ“ï�«P¼“•'¤ÅX#úòs6ŒyÁL*TâX3óhËÜàQˆàÜ"ì2�ÝÎ÷þ|©hÑ’[{cêmíK ³‚URn§è­��ö×HEÛÂý™�4ÇÆqE4›…ª'‡æ�¾©Yel›Wöò›·¦FÄv` ç Oy%d*“Í„¢/¿›¼ö ¸ ÍÏ{2É€ÔÕ)VêçÿvÂl½õºŒÅx°zD_~³kÎç$(]/Ò\¾Êz*ÓJ‚6¤çœn3ù�ïáŸÛ¸å‚ôíÕçcÂÆ«Ýj>ßY~U†ôTÇÎÏ™·ìr;ô¾¶$b- A\£åÝ®6 ›1éç˜×Ç–¦í³`–W �"ÉÚ(�­€ò>56€Åfß«¾µ»«–|:‚hg![ø¢ö¶º{Ì+?M&S`ùcä} ãôëzãLê*à×à·”kȲÿE{$‚cÚôù0 ÷ÜXg)ªgƒ*¥­ùËàíMÏquò߇4¨ L‰«_@hŸDš§kÞ–åã¶æt™³>�wY ‡RŽÞ/öIÐW‰%Z¿òxöÎ<¥:È©r©ç6äÒæ fi%î¼Й'Mq4¼ŽâQfþ 1Ûò¶ æf§�í’£®âTe,Ï©¥D½½Ýâ,s´f•n×nà¤"Ü·¸—:ËC Ê×0Q}JäË2Ìw¿Íœ]Å‚ûâ^®y3å÷-Òæ¦0ö«’¤Jë!³ C>£FÇž„çV�ÕmM…n¹SŽ’�ÝB–»—±Um1X¥6ö.ÁÀ–@€(ш Ú!0hõ°mÊѳõÉBßõþª5‚ÖLÃ…ó¸Ôí�< 3Ê\>G?µñh†¿ú‚"ö°U»Ÿ Øõ˜W½o)S„ß$@…¬ÇÅ0:KjÆFÐö�‹oØ›¬5mÑí /¨^{‹üéC™DÖ¸ñn‘5  •PQÛªÕˆLBï²"Å J&€MŠ> ‰¸tœA“lÉiß&Øý•ûωTò2’¥Å+:•‚…=nÞ ˜?Ç¥èVBó¹=úµìšÇBEüÞä±�ÿ¶±éðz€E[Áöv߈U# ÞÜJ¯È° }cº(4VN µÿ™sž·s1BA¥R€³­Í¤@ØÛ¹὜ÃY¥ûˆƒ»å9KÞ-ì'ç;nÿòár¿óóvÝ][Y C-­R^CõÁ¬ÄZ…¦*Ê¢÷ô“‰‘MÛ^6JFTÐD•)Fõ9�öxeR)“hkSšÄŠ>êîHš¾oÈ‹gÌÛô ÒždG*oÏ;oÀ�œÊ6ÙÂcÁš{þ¸f Wß“Ü*ý™)êIc/kìO‡fúë8‡%`!´‘±«šÓ²P¬^á©)A)Ý M'dÐ X<†µw^ö9B‘”ª™<¬ê~ézÍñºR«•+Ì?!ï #ZûpZ_½œ�Ö«Äp 蕚´H�Y\�.¦«y·µ‡Dä€ÄÝõt]¹ÄËr«ÓÔÛbN|A^òj‹Fí8ÍT'}X]?h)�³ÊìD¹drpÛwÛ˜f@l© §ï]âäŸ\p"ÙùLX•Z ±a‘ò¡Á.k˜I²KŸº­¶[­’å<ýb‡ÎGÈgEo›P¼Fl¥vYìë.^¼6¨ºI†;ëÔkÅ¿ñ¢3?T%t|ä¤^¹96]m&¯2”Ð^*Òrµ&ÚÚ}d6š¸�«?÷>õ@�ó_GôN)w](mT¶ªYµ¹©ä¥‰õÖ�Öá÷ÙÓÝ®Ò]×+07‹¡®k;¤Í9¨€óÞ.ü¢Œ>¾çnVíÿàh·‡Ü¶¹õÙÞ`šëu˺¦]s% ÝA�¾Õ¥\!íĵ·©M2»ƒ@Ä?$º­h&ðXzÕŽNò‚[�WÏ�K¢˜§TódÖ¥EàG(ùDúuëÄ`.Œp˜΃™éYOœÂZ?È›Çlzùj|L·Ê©’­5¤^¦;õ" ^Q´×½#×ÀO| ØOXFüôG„Ecw7&Ôu`‡¦Ã×ìœÐc¾_7ñ+^IÛ~·ó篘ž¨©† m6WÒï~‘÷qç¼ Ìï|o%ÇÙJ?ªåÜ{b3pÙ÷ǪAù•ŬûéÉ.©Gj/€‘Lœÿ¨&ûÀä9q^>®ßY*U-ó"Cªî‰¶‹þÆ‘¶«ø£ž¤ )jªs[u§Œ{UH­6�,| ÙMZ#!á` #†SÛÖvž¤ïýþÖà4âK¶wˆµN_—¡K'ö‚Ô&Ù3ÂäénqÄÅè·ÔiáñðWëÔƒ…�œ€2úñLñã©•tcô*‰MœŸèöúDN&¨¥è/Rq_Ú‹*æ¥y@�ãŒÄ{wyËÒÚnôþFR¿d^—”åNÆÜ0ŒZI{�á5"ìBºr,%³ÕìüA¯i7±;xÄÂõa©^”�è- hG™x$›² ŸoEí}iÛ™"¿}<˜D­fÏÐ{VTÇGF…ºªü ý²^sØä(4Î0F¤7Œn9ýyÌiØ5:;A"rÌÈ;pã™·õ‡8æclŽ0W}îÇí†ö¹‘MºQD†)ïäO¹=›®gE:ër”™Píaî»ëÑKS÷íº‡å³À[7ˆiúLA#=AÏÌ2¨†ËönÉ×+%{Ïï:5ÄÝU‰Îzâ@ÐÉMXWŠUwíŸÚa í_7˜B; Na®€BzXIÉNC]óº 2þ;÷�}$2ûÇRŠKŸ~Tž¢qj- ÐOá[Ò÷Q'�›ÂçM _§íX(éäpûK¯8Ñ+NïœÅÌZ‰‰u{² ÎÈãË9Öà\½·Û\sÞïgM•JÇa8_ß@Q&‰j„jgöh jXë“Lª“Ýêüš&zéY7 É”·¤>‚Üص‰ö¶ÂWöÙáK �5IÀà “é_„MG¼g²ø¤˜lÌ�ù€Àc©!w+‰‡åÄšº¤¾õ]°¶í8?+÷ÓçÄûo>Üø1NoÓŽ¤ þؽ–{Úä ±¼¼f&1I0¡OË$üÍè–êezx?ë΃ Žáêtïj‚ÿ¨™-*Éè:Ú"$GÓ£)G{©W­·d*ž9�ÈH’þoáTî]&Áóy\öRO„÷5ïx©�ŸP”,!*XÈ¿6m¹pÁ« Âï¶`Øzø¡L²]o¬�Ü·´Ú¡Ùºhfn°0¿êªcÄÎõky3þ0=~�YT• ,£·O¡ÝšÏ²¼yAê¿+„ míÞÝv0h}ò�=StF¨–P¼y�ˆZ„V¸’“o†c­VÞzž¤îµœV=ãfÝâƒÑ€îÞ#ôÕ¦gêÕ2ãîàYÖ†L…þöa ÚOÑ�Õý=ƒ‚S“€Œpª©g“ü·Ê.bhä„–MÝ ÊØ¼m#¥GŸG½9.e£H7䧤é¢jþ•$”o�-žˆúËE@5!vÚ=îÂ{=váS”]g’ÙŠrú!{(רš/zùÚOÌ~%Oô|VÝ‘ÄîjËWþ+ ghj¼B¦$Ò4Ÿ-G–ìŠë@é\Ø…so\¿ù’„b²‘Ly)“¯[›¤ÛßÍEÙ`e�’»ÀÝ\P\Ö:¢ÑwêFû}@5$sFŽW×ײhü:ïÌŽ>K™OýûØKRæûúò ;:*§@eÖ¼” E|jŸ-ì©el1öfI¦M8æ—ש–¥—ÈÆ+÷.ª‰ÀÅ@§A%÷™IÞƒ6èvÝœ×�â=ɯ�%ƒANg—.?Åã¨"°[r„nBaÃYe21ù3.¹µõ§§ õóŒÖí§›K°Ïn€ÚóâLf.“êKæ`ž£½‡ÓÔÿ Ñ™÷êIÉ¿}ë•‹qo%LLÙý�¶ö,æ Pi ¾ 0B–¸êIÈ *MÇ RqÌ]"H¹à1?ýÚ¹_jŸMvºs® ¤¹§öÞú÷L-ÆÑÉt `×$`ÒßBE·š’À¬é²æ¶£àÚ4½«Û¦ 4s8XÛ±·{=»¹íç9ÕŒ`W`í ¢0Í™‰  ¾¥ÂÖoÏÛ*¿4R·òÓvT¨`q\ÜŸ‘i•‹æz>kŸ]ͳ�0¤êÝ�€ÜdÜ›Ÿ7ڤ̩5Ba»"lÂWŸ0í˜ím�³ÿdeÎ<]¦‚»à7G­�Ž]ïPh²äЖÌÈ �¤¬�‚Hh~?ŸÆRŒn…õù Ötv•Ê7Ÿs]g¯û·ž¹R'lO‡#Ù)ö0Ø´TPý ³¡–²3^¼›,¦Ò]"ŠMÓ)جèu�{j#ŒÓ éFUüßRjbwH9Y¥š¾_%òäàd½/™}hœçÇ\Nƒv€B@SÝ(<Þ7D|ø™nŸmqƃ…Ä_†/©‚LçŒëwy~÷;ôOÝší™×°ø£µ`ŸÝÇEᑸú0Ê(�÷¥ç’OqvŸ5c� ø¿—§æ«@(r`?ê9757YÚüˆ µo6ñdá€Î�î‘WháC"*Dž¦�LTš(/_�:ÿýkþ"äÓð†ôZÆ{Q¸s ]3ac9-ˆ SúzAvhi[öÑ”Év‚à7Àqäî� FKèŽÐ6äβëÁ ß ÎA©Bˆ¼9 ’£ãÖ¼ÞjG岜‚´ÎSÁ´ü¼Ó>[n?Œ ¿æ¡Xz—FŸ‰ãfH7_pB?O`\B‘éŒv_™œ$,Ü@De(�iÖÂjÕñ©oÊY&þŸRAyبϸó^Ô?\ëÊò-äÌìݧ†Ú®;K?t]wX˜�Ê­Áðìh/Z¡²�¿gY 6Ø>;ì ì ùÓpÌõ#^†"ë¾,0Q÷Køä­´ÈÙ�Ok§¤>£»f‘yþô”¢4é¿à?Љol]igT@Ÿ�¹Åqm#f&ð¶¯~ ¾K[ÕByðæàEÇSóJÌ /¹;Êa<�{³-BÁ³É2;†-Ìc:wEй£œÛ«øCÜUN×·f¨PšÐrw)=«çM=Ãòy�ij®éûÔo *jFå—À{Fž)+vvQÐM؈Éïë–‡µþ±XûìøÓ"Ð÷HUÀcý°Q�©ü eõF ¾Æ6וXA•÷œóª¸B `{À,ùB¯ éIÁX7XÂ%Õ„åtD:<“c†* ‚àO70#c Ö91C,—ÌŸ“‹À•i¾Ttéæqх裒Æ³ÜÆÌ ž�¼$IT�IõmÕ¥ÉÚz¬Ê8ƫà „O‡r¢õî‘fâ‘BÌËÀŸ§°�äf —:SÏ=£ÛµÿËZÇ<—‘o„¸·Õ¤(~H…|¯N/Ezmœ>´H¶0kF˜%MŠ©�ySc£lãê¼ ‹€dƒ„Ë�DÊŸ�Çâ ÷d† Œ¦·©ü%m©%ÔçÇ §‘"ù­»éŠC )qÂåS�wèõ©&EmZÐ-•úS«éärˆ·Öœpí ~—.ˆÏbÏáÓ¶wâ¤|Füj(ÐöbŸÇx8sù-s‡sà,ò:E8 Êçš§uä'nÕUH¬òßYæ…%v­0N�†©x�×mU¯r{ˆl¤K$Ñ¡]à¶›žÑËHž™·îL–Ã\|ËÎKÓHË¡@¤¼/ k®é|³eâRÇsãrhßòO›Úý©®•j÷ad xAã‚­NÈ'ùû›vñQWqS§0>"†ê’ýP·�{­(ý6Çï!¦›m¿yËZ^Jy Ø�k¢µí<ä/þ´Ø×½#GÊ%~ ¨l2["b²”8�ï÷†Ù‰ê) {rS÷-­~0Zíwl¹Ô¯~ˆ-Ä‚/~œhâäÿOSG)~¦�„µç4Dêì™æG�^?(GG 8’L¿€òÕ�¶'*~¡Ü>rnØAÄ_ç“Qü PÝM)ˉ M)“1óÅŠc»­„}Ôì$æAW€Ù±´æk×›áJ„Y{>ZK®€Ç;6ó_zákÖ„ö‚–¬¿ ë ž=h²ºqáÊñê_OÆ\ê¿ÅÞþ éûLwä“ìsOu¨m»š® GŠ~?Ê{7Ã~“†ˆZC`röp#éÐj »cAE‘P•IWª•VØ{¾^Œ9ɽP¬úkiº“ÂIÞ?|[UŠõRð€M³xß ¦/ò`¢ˆù2jwaêKTSá RD¢.*×›nm_vݳç­*[¦ûââÄ0ž›ßéjvÎÓ!Õ�ö”Üäñ7©–Þ¼Ø*âgHrƒ럴WÏvøafóûú©H‘$–“µ´î+Æ—œ'ùÔµSÄLÞàvü˜¬ûÝP]ÜŒ/lSø S]òͪÒMAÛ ™¢›Es) ê)óæ‰Ö/ZéÅ´¢ ¦XN”-Çœ W{Ys& l¶ß=d¯R{͉Þþ°€wëÛ›Øïuc¹èi4vaÁÒÏÁå’3Ñè)©i_ü¨ÿÓÇC§?éˆx$¼ÀlìÑû¨ø‚ã‚Ä �ˆNh\²$H+bþ²imvG?áá¦3<} ,ƒÆ6±öH~—a\O£q}™_4ÆÈð—R%_Ô0u¾Ô)(iæ�ø¸ š¬S":"{ýäå©ò†ËYª�zŠ­ìV*kØé°ÖùëS�Sú¯3ì)V0¼\ôí±ÌÓ¸ÍØ-ùë?2W°³Wš„ÜèZL+ÏOËþß©zN)”\{Ö´ó›^/þâiñv8„{%xœi–ÛÿÞŽ{ÚçýI ^À2u`ÛÉÿèYdîðÝ4¬ò”÷œ`–‘Ì�{§€;¯w6o)|]Î& ôè\kÙ­›[‹LÀ2iý›ú+Ž$SÖà)«œgåA`Üë�¸nå�A°§nC$¸_cy–~ξ¢¼°tÀò>ç¼Ô¥à¸¸ž•æ=P[Xü7ž+g’o´s×Íþm€ž3œú¿$œ€,×÷g·œæÎN-ÃëešöáÿPK D@´^4¦1^)fcover-image.pngì»wP“kÛö«Ë‚X`‰J/J�Ð{“EïštB'„Ž ŠŠ´@Ò¥wP¤é„Þ{ ½ï‹çyŸwïÙó~ß¿{öÌ—qf™Ì]Ïë<�ãwÜÞëÃ3-å;7io^ºt鎪ŠôÒ¥Ë;—.]yxã/ð‹q0Iø�»âsw]„�;ÊÒ vIÎñöPÕÙÒ…YZ{»¶Á¤ÀÌözÏÝŸkjHX!œ!–Û@¼œ].]|¤d½\,­aî_ÂlíáÒÌÕõÌí­¥™ …5ù4]äavö*>n0]-=+G+qkfY™‡R^àÎ0wˇ^ÎNp¤„—4ó¿Ž+þ~ñ3/óÃmâî(Íüï‹z®ùì¡< öPÂÇcÅ'Â÷P„Â/($**úä¡?/Ÿ/¿¿¨„ €ßÃÿú0ƒ³¹YÛH@”þë\à›4³�»»‹// …‚ !7[^~qqñ‹cð€-x�ÞpwK/8’å?GP€!­Üì]Üíð‡ß-_"<Ü¥™™ÿs Î.ÿ}X8ò¿Ê ÆëeéÂËáãýl¨©ù¿ßÔÙù¿·FºCa6ÿû­‘zÞ.0^( ‰ðp³ gÃr±³‹„¼ÌÒᦇ@8ý§ŠÏìî¤Â塼®ðCMK+{øÅ÷m¯©)¡ Gº[­`ª ÒÌàˆ½½µ„’‚œ¢¨ˆ¢ˆ�ˆ‚?¿"¿¸ ¨˜¸¢°â?Jb""rüJÿÙWaåá ƒ»ÿg_ëÿ{_Ñÿå¾­ðï½anöž0k%7„óÃݲ„ýÿp-|üò‚òÂò B"ò‚ÿóµü{_ëÿáZþk_Åÿå¾¼àbxÿ_ ýŸŸ@÷\üõ¿Û|ùïÆ‡ÁA·»�¶V1-Ô½tée²ª‚œž×ðê‰ßý…Ê ×µ|Ï~_ì3ù‡ÁÁ wkiù4_É Q99q”éÂ?F#§gÙÅUµüÐbuáÚZn=«�$_T]ꮾ«ÿÑS†]Hžv=èºANÿGÈß›Ç'QMž¶ž6ûç2Û�¿%))/ýŸÏÿùüÿáóê®ÇÀF&ZƒËŒ§Ú•J‚Ö­““Gdggïíyܸ�šÔ™œž.rèÏžúbkm­ghˆrwÿ®µ¹¸‘Wts³µ¸¼Ë122â_÷z²à…$’!|||¬¬Á.-,ÇŠ/Lê0Û¯olÈ"çÇÅŽzu \y?æ¹ag¼{´rvNN»d·ø•†ÅÁÕÕÕ ÍÄ2»î¯:iJ4áijžå¥¥œŠµS¬*œã<<‰Ä��Œ˜,¹éH0.†\(¶‰Rã¼’«Du--²²j ú­.ÚŽÍ©_-at ¼ú•_œ6 ù«33‚6¿ãºÓ”MŒŒ\�îÝ@}–E 1 X«¸ƒtù® åÆT?Ëöši‘–’ŠÙûÑÜüÎã½rö€åƒÉn>—ÉM¡T] Âܬ¬ 9ý´ Õ�>êê¡1k=—¨QÕ9ýÞ�ÃÃÆœOž<�@l„߸�õ2~3–v.¡²ðÓÁ»HJJFãkKKõÌ–ÝÛµš1 -$ÅĬmm988¸Í¶¤mâ@ ïN..R÷¨¢Çfk”pÜÍ.º]õj£Ç­H£èÏn$G·ò ¸a¾NNNÖÖ骖pÓ/Ž’4¨öçî)›ùŸT.Y€®Œ�ç–ɹ,¹ùJ5AYY¹àyáËæO4ZZZ6ÑfoL–b»Ý—ÅÃêCCC¥ÌõõõŸ?W© r!aä³°˜ÈLñqøùæšœœŨ4Ç3%tTvM]�¹ñ_œ=¾dâ ó{—èééYŠ‹ŠÔÔÕ� ½†ºÂCL@WëéÅl}X“þUûåË#AAAž¼ªªªÒÒ~¿ø^qæ‹E¡q¹Ѫœs‰|Å•º99½àÀ§cY Žj:5Æžžž ª[.×.M‘íˆsöÛþŽÛÚéÕ&§æû±êª÷…ža¬Æijšt½‹Ãá@�‰÷9TlÛf(¶z(L+ÝpÙÙõÃBî“„o>»IFÆ(âô+LfÔÁãŸêü�ñxüm×zÛ®”_!ä¬X,…¾z£kI—ú廥Ã�`aŠm»b-Ü%’ m ‰‰‚2G‹icÕ(:r®g::–öö4´´ËËËÃ&[ùI4ЖP(soï¿YVV†ày…‹¥»{IZšU7ZBB"!!ŒÛÞÆÐ ‹gÏ^¼.MNNVç(6,Á‰ˆˆhÊËË«©ÝT6�«¸âß „`©§-s˜ž™™IXÑ116¾yë9£T…÷ö¼ m§ )B@ÎŒ£ Ž@ ì}?a°˜¯ã‚ÑÇýÆF…¬ £50Õ2ÖoaÝ‹ŸoZ[[Çá�`Ç‡Û ¢ðÑ ÿã½£££”{%¥¥¨¨rú—/_¹~•„$qmH‡h–ÓOùàÁÜ쬊Õ|˯·3Š^v*“JÊÊ]qü¿ZZ®G«ÎA\“¢¢ºÿüù3’\€cÕ^qŸ±´NJJ²éL89‡^û6úºZÓ“Š k›êïI(‚™››×2(;;9Iùî­Æò˜�Ñ‹=d;¹cþ½ªj¸¹Yi˜èúx¾?ÖÛ«‹ß‹‰‰Þ3žpó• Ézdúa¿UŠ÷|<Ð²ÝØÕéé¦P ¿­¦½µ„� 8T­9ÐæÕµµµ……ÌQÉ‘�•/ÝCB[Leee‘¨ËÌÀ_‹†‹±?É1{-þù‡ÃEã2JKwû²t·¶¶¼½½Ë‰ 0¬µqFlç�ÃÒ�µõ÷ KI�NL¤&Úá*°àà !ïÞ»'ø²ñ†‰‰Iq¯ŠXÀZË_ï$=G§Çˆ`•�300Óó]IÒñ¼Ÿ>)’–‘ñ®ãb4HÒÍSÄ\§{pêš ³33Ve~±BÚÚڲzÓ[å’·HHHHQà§blº±‘‘jèôê*pÀ€¥6ŸqÐû¯ rÂÂÂÌŠ¬? òÇj«jEˆññG�¾,|XÍ\Áqa�ÌÌ-(FW… }ê;X †A6À”F‚4„dfï’R8=ç¤É1Æ>ÝðöÖE;“%srr(JP@EEEhè31VÖÆ“}…´¨Jnù_ØØX7ë§L$zÝ�YzÙ�äßýŽãg«HÓí²Ÿ•˪ö®�*ãOÒ–ogo•ÙÚª>öy°©¥ÅöhgéîÝ»·_çBMvkÅ (â÷DŒña} ´msò!dcð�OüYxp f`Ê“’¬Ím2 £(êrsŸHK'wÒü½þƒ]d†ö_­‹h‘VV^nQá2µÝ%;Që»o~‰åš¯¢â[…2@©©©u¨‡D2B°`g ôe×É8ÄŸÌFkw¦ÊÊ‚{\]c%€»ß_«ö\3æÄm¼’š�ÍÅË[p¡›"GÆye%%;ĹöO”Î>åËï(ãw¿Ýãк}çNíÏÝo×®]ÃBÌÐÖõ¢Å±ÓÒ ÷rrªfÇ}úÙÀT.PÕ¸VÞåo£—·b!f€,>~X,ÎmŸ $'%ϤÏ»¿<ŠôfÈjUðóó6ð{�_¥nÄßÞmT\ø´âJ¹CC0)ÅúÔÔÔÀÀ€Mµ2W8½xhÅÄqÁ Oà5ªí–¶¶À›7íl†y±£XRˆEݘ̾=à–Ñ$…L½PÜí….ìͪò)Ó˜{#  L¾ª§÷‹Š>¬þùóŒ€Xt~Ä6è©§·—››»ÒæA°¤Ë½ññqŠa@’%åtu£¯å›Uä™—¤ú9ÜÓüëûâÅäg¹ 'ùöÓ�Œóœ@# °ãi_ Š£uµîùy›¬3330gsTÅêÌ’”E?�ŒŒÊÅôhžV̸ÎÎÍ ƒö{‹ÊÇÇÇØÝüË02á÷ïß ¡@))©¨öÍU|}}íí³¬ËëëëW5âz•Ä‹²WØFqm–Û_,¦ôTv»¾3ÐÐÐ00ð`ÜmU Ö>@(>}ú$#�æìPRUmPÓ•,ÉÁ91b ŽE鵌_ÇfEñ ÏÀÇ6EMA!à8�ÛÍ@bGäÈÊÍÍÍϯ&øø”ư¶°PÇaûóçÏ“““ã´¬öÁÀ;Òݰ"¯.Zú©èúú:¨¥1pŒçÏã–ÖÆ@]ŠŠ¦§§Eà£qÉÉþ�ZÏìÁ|ûIsS¹`¿Q”$‘Üùë—|€ªºz4Ã-6PSu/¯ƒ[¼5|®Ó ªÐâ™*øúD}à¯ww2µ’«™±ê÷˜õ½ýýk�'Nþ ê {Ìþ�·›WÜjÿ@+TAVŽ÷£iÇ·o�ÛPÀ´‹ÛàÝÞh�—/_‚»119½ýÌ^b^ó¸òäÉê¡!F ÷dóÕå+Ja´sssMW�‹ Ó—¯}¢Œåµ€L mrkÛ$ Œ7ˆ„8¿°ðî¶9/YJJе:/7—µÃ—qƒ7c,ÈËëøý;æšMû—–™ÓÃ^»ëäŒ5Ömhqä|ÏÎ%?;[¸K™óˆV²Äîçuí±¡¡Çê̾Ôè `º6’ OØnášZ¹ÅÄOþ¤9:8X^~KneeE;EªÒq0Ÿ. =4ÖxPddäßΞƒr lœksa·éD4zRynq¡¤š1o�¥­[#�ßj¦H¡ m-B~·Ç ÚXî­H¼r¡6c££Ov+"""ÊËËW­wL�q¡Y€Ì€t|þüŠ%çáèVœ›«k<¸…$qä;2¬ù¦¹¹¹±±ñàà`È~È–‰5Ó?±ºÃ�]|Õ? ‹A¢‘•Míe–«˜)<™µ1$Ç �VÜ-=½†ðRœ� 6RæL±úåïØéZÀ_žb'''×oS¿ð´hüùSîŒë0àìÄÛgü²”¹&"¢ËâŒH•Õ!éÓÝ×·³Õ¤Ç÷¥¤Íü�‡¶ìéÎû», X0p¦Ã¦áa �žÎÎü²²½_ä²5 ™ýíÜ+îÅ¿Z×À) Ìyî<µXͽÔ,ö€ÂŸ'çuiIf�ANONþùçŸõµjƒe1kÑÚ±ƒØ±kòû¡nø�@]îo  ÛðG¨]hΕ+Wpl+ÞíÎ~^àÚ9_?~Z0ˆä¼wDkÛþ¡ÚöDŽ}·È–c†û8æ¦�{É]ÛçÇÜ5\iœ(b¬! ý7÷«œ¹ëéR̘ҒË`–ö]Z€§i¤Ê˜Ç*¼NNZZáŶڀ¿¿DÜø×Ú]Œ1&Û€8–~O~¥zPVÒZ�„€Îz¬«- „í1îQÔ`ŒÆ »ÀúÊÅ%²R}„Wru}Œ£èsÉãöXžÐ÷ï# EÎ==÷e‚k³¥–;söÙ亿ÖôŽÐ?@‹£g7þ|‘WŽ`d ¥õÙ§rVkPRTÔL²o�|DQúޤCË {@O/pœßªy§¦j¹¬^Å¡To…¨ô5-Í×üg PÒÈH—Câ\õÉ¥Ïn-WX®¹þ N¦Gـ͛m£.Êvycþ7 ©�ª'gÒBg2 ǤAÐ OHˆ„ªh7ï¨ß} ÜrùÚ‚”ii95ÆZ³ ØÚOÇŸx- ÍȉÕ‚ÁmÕKSáÊa ™¬É¬Õ÷Ë Hó÷áøèhîhþbg¾ :�QÜmÞ6ÈZÈ–Ö+…å É5BN7’ÆG�3uB¯jÙ†}AÈÞ-A#­«é'>ÐÈÔ¤¥¥m™ÄRºR¤]]]©xÍgAóF°·Þ½»nkk8Ó;>GÕæÿÁ#ë3àýõ‡–8—ð°0ÿ9Œá,Fóè9ĬªÄÿxp5×íýû÷ÿþû…ÔkÖj½#Šõ¢’Aʶu¤÷îq\'!¡ §n¯þ–—§©¢2ôÝòàbPžÃK¯\ZÒ²p8E<äýïßù憙åç€i¯ü;õÅÅyU7Uƒ¬vÉçÞß`o ëp'y–Š_ý»½:Ú’6k³åÅŠóÂÎ/”ÍC´S…@. !càòemæ‰ý k!€ºNwQÐz¤ÒK=[N·Rã<Š·D]Æ�� íÒ wõõûó¨6Ыº™Zþë• ³™=þR�꿈¹©þ{FnnEÄ7`5�°…î©j¥¿c«¤†d®ÌÕN,?�ãä]ÀçãnÈŸBjcýýýªòl’wˆáGçu ¯£¡_¿þ³´DùŽN�ówiq0" ÀÊj†§î…µõl¬=Åkš4ú55!D8GV-á4¶9¿ÿ¡¥¶7ŒqEÝ!1œ» P¼ á8p×u¢Rs8Cµ×ÖKÎ6ÂÍÐ'ç þ€´à¹:ô“OÌ]…{g £:IF#Ð8[‚¡ŽÔ(kD ¸ñšZ€^à{Ûó‚2ÑÐ¢êŠ ¯‰:ÿÃ÷ÅHUHžºŽN”Býl˜Ð«UD…6 ,÷/甆`ÑC¢�I¯£¥Lœ=?�8‡¤¤ïéÑn¢(b¾Nœš:+''ÚǬ8øP*e~U¯Pæ Ä¸ÔØË–ÙvrZ½˜y»?­QtÑn‰`²(‡›�¨DÈ9a;e›À…Ey«Ö"’Ú{JÄ$%Û¯â1š¢ë èXU‡½Ü·©ù~l~"%æòÖŸ£µe–Ò¾|zmòSQÃë+Ñ ‰ÔNëFþ¦S�µx寿|ªZŸ•µ[CiN¨ÎNÅM\ZÚì¦gÛ>�)¸hB\Üãh6:ÔeÂÐ@]”hO›7ºº´=@NùÄo^馸Rš…%H=öé\xKøU MÍ0ë=<Åâ»ö!Ú0ã¼Øl#f(;_b§@Ç7�´t›TqdFÌø;2Îf\éP‰}tß*Å–h~5ÈÁÙÙÙÖüÏ8.ÇÜmŒéD± ìúø››§zLÄÃ%ª£KäßÕØ ¾ØHk��‰¹�÷ü{Ýkõ±(&Vlog‡ÀÍÔ0“·i‘þErâáâZöîÈ.!‘““»EùÈwÊ–÷EîÛ·oM@y«=�–ó>eq?æäŒ¢Š�EŠ4oB)vÈÈÈÐÇ`€iI ŸqIÞ)º:°´´TxÕºÕ¼u©7sÄ�É—½o9ÁÀhl›™Ü\ ‘——7t%È�s0ªª¢bv~^í2œø$>  ÍÖŽå�xÿžo=2Šëx±; Z–*æ:M¤5™®Q¸Á˜òéGW¶ ŒÎ¼¿¿?Ì(Kß¶;ö.‹R®i¥ÛÑÎñÉLŽ%ðiÔÚ0n4&Aï»@ ]]ušŒ™·=;9ÍäöâÅç/òJöd ¬í‘11 !·ÿ¯7U›`Ÿb¡fEý4èD@Ðkܵ „{ÚR['Û]`>ÕWi™\¥=–û†KÙ&€ï­¿ a�`« zóæyù°sÖ‹°óX=.!!{¶ôw_o/r¼ÆZF7ñ\ÍSN+U¦Öò×u£ë„/L-@•G93qꪌ””6~ó‚«ï÷QäR¬ã½>ÖÕÕ�h\bÕ˜óÅ:ÖG\\ü0”·.}.)oMÂ,+k‘Ù«Z Qõ6õ$³Ž266Î7­„sE­­¯Cî|Ò[Ç«&]'îì® ¶45�†Ä.T22¦Šâóëׯ¯\¿é6ô'”çCÁN¿ž��Ú¤V’˜+P €ýÂ2’lüü® ‰"Î\�W´‹(™ÁS̓‰‰é—L°€‚ °~½}ôô;¯i… ÀÖw_Ø`4éwÕTTž×úx@¡md ‹¢Ì®œ…}�|¥æãmJaÁµÖ_AI‰+Äü4»¥¥%ðìpj4áŸ-"$Ô*Ú ÓZõSµiŒU6@e°ÞñBöè©õ9ö7YYYÇû²n³­cݤ@ˆ¾=Ø8èéé 2K~~¾š;׌0—+¯,ΆœŒÌ@Í& +( P;"ئŽåÜ’ÃyGâ͸ÜÕÕÕ?xÝ}ý#§ÓœG/â×·Zb9TyHII©v¥>Vµ³ãžöÆ…D#H¿`P]LMguaÁ�@ˆ™;XY±!a‘÷Ú½œKäu�ì€vBà•½cµ¦æáwvâMŠjsèè:ÓLÃ4TR\|‹ŒÌ‰\ñŽî¯æð% º~mD-;Ô×縴i,SYUÕÜØø8,2=ðÙ³gîîî€Ö@gYòÕ¯ioÇ[áÁ=»I_£ª§³“SL‚ß³Êp=ßÉéit|£U¹ª»<ýêÕ%Ð%´²ç2õvÑóì½êñ¹ýÉ Ó¼Ä!•hÂ>ƒXC­Ð˜=·Ÿo®�äøL+07??öûx•GÎýé�úG½L²1/eÍÅ\Wu8a�ôz©ÞJyuŠ,Žƒ2Wœ––vƒ¨Û ×`ö�7wÎBÛ :Ú§Î)í¾øì0kçÛÐðpYII«Ö�¼OuÜoë·n‰ïcÖ\]]ó1”_m ë °³ßñ‚ Í`âíííäôbßý�÷.P¢6Y˜¦YS5knff&k�ÀêW½9¨BfzzœéIÖN�zÌñÁˆÃ꤈nqã‚Ùê’«`¤Cý­ »Ú©2§o©Ìßü O&©›©•gT< ÊÞá Ñ`i«³nC´U‰Ÿð Ø%{nêà;¸ VÏ×7ƒOÎb+ÊÛM¹²²¬×7…&ë¶ÙCLµBM�&o[NÒ^ÀL>Z.èzScãïdIÃy¶µàš"Öã2瑽�‰‰by¥á8 lªEÚÉýýýú_-(Ý.2¹ˆó²÷Ÿ‹äÔ&×Oó½°IšZZ2¨õ$›ÐÙã`Ò{¯S|ÿþ=å…Êß©2þÆûúôp£±h©‡_LþxMTïZzÛãu•„„›…D%”9L³–vxNæ>/| " z•29臚­Æ0íνu¯}°bâ✶JjüëSS:P(À‡ô£[èm{r?ÌSì‘™=kúІ8Å+�‹'ÁªÒ`„½�H}⟿ô€È¡•´Hð]_\¬p™j´%G©d^YX¸z@¤˜Ë+²‹7œíàðή®Á%wt&uÚ0%ã°%%BÑ‚ ?,§r8=çÚk ví…X �Ûò"´­·Ôžw¥HK‚y¤)©–�\<6’–´Ng‹ã·jÆÏÂÌlýÒè¶ý v6´ëq7ï=þ†Áûüù,hjQ]Y©Z£V·0?ŸÐ7H±Õ•””¬®¨x|%Rµ¢]6::Z Õ8j àZñ0kÔ®\Ø£G–˜ºREã¡•×&ñî }+ÈMzh‚‘s¤Ã\⸵Õpunù»*� �Q«ØÏM`óäææf{s寿œœ�qÓ±.]@î‹ä·R¥ò„³i¾g=æHõs[üó%EÙqg�qp|Ìm¨Ç åõ m0N¸ûáÿë²þŽ”–ƒ�Íy¸DÕÁaî.¸üŸA$€K¹QPá ÷·¡ %ÏÝdÏZ‡©eýÁ€‚ª™ž�œu OÝ�©•<\�*¸ZÞv ßøåËKKËwÞ0øD�4?Tñ°ÜÙ(æÝ»ëœmµµµòÿü“Œõu±Xå6Ì�KÊêééaö^›››qéžz�,ÐM\�aþkt b&xæGNNî}±øxÍ!˜_vÿ'ÄÑ­™^‹:¿žtU¼«ç9j}´Ò¦#Á×K~¡Q9uuæh×Úí@4×ÖÖž›U̪Öt+ËÎV£jiQÆûÁ4^x?³'µùw—ŽNÒ¡ï±ê^BBBpp°óHÙÚHy—õ*í7Ò ·!¾Dc5Á‡×ÎŽvWæ8ÿ¥»ëw²zÙ,ÍLMÓ¹Ê�Ñá͘Mþ2$޹œë¿ @"‹OúyW&†¸eåBðóóÏ4‡évêk««‡FDLÔÚØd¨ ’$Ðïêa²NC|ñ ç@xg¦§�¡¶»\¼¿å›‘•¥úѽ�ðý;çæŒwÔ‰Ç ˆG×VEkˆû¸„vvÛ7úÛÙ-–Ø÷¾yó&r*p´” ¢¤ðÒS€ì¾àX'.É›\˜ìïß]Vò€ÝDy»¾»}5i޾yñ&!+«5èhtŸ��´U]Cý¢_éºðé$påÊ•+lll¹s™B¤ëÀ˜���wwwG€}· j£èq|¯VÄûüûÓfȾ;My0ϧrñ e’1: ÓZVXèêá±»¹éb˜¯—�›«¡¥%²”õ!11Wb¸ÞÊu‰__]}ÂÉ»•œšZ®™(bVåÞ–N�%�ïH,*ðú —¡V²8Riø•Yµç®”ÅE�žÞ\xóæ¯Ã¥¹96X)´†;SPíŽÞ ¾Ÿ­xõºä2þŽtÌÝ‘zqâV PŽé²-��pâl›zì“x1ׯé5R oùì.‡Ñ‰&0¸\¿8ª<Þöƒ[›»¬¬lV#æŒæ�3ʹçÑøøøÅk*4 Tozâ¼+€9ƒ‚–;�Øô¼r[Oc­>ÙÙÝÅŒbË,�¾¤Ù;8p92’3@^6Èg|ÿ¾9ÛM1}v}�¸¹I-é¹ÚÅâïç§qôt_úNìÑ�o% ÌÎÆÕòæ„…u€TÃ’�l×WÎ$›‚ŶH�`$ÿ,°þlÇãcÎÜ„\¼Ã,µSwIý,�GÎ%¡â¡Ì&œ#`4ìÒbÎu34t F=KîDfô*0FWUURÛµ²r…¨�P_?ad„œF@¬É¦ZLõ‹³ŸÖо�ððð¨¨(b×Á�WÛ  �c2;!hqKs³VªŒ™øµºoßì’ ÀÜÜ.žðTîøÔêMAƒƒîÄ �|�nÉ®«æ!kÕ|ûÃR„ìê_="ÔÚ32Ö¹ÍáA4áäe‹,fD�5hÀà4ÓÄÈÈÛÛ»è*j†ŽïÅSUÕ6B±mØF׃Ú>âLKDAvöÑÉvWX�2f^.§b\¢Ò ÍÌü�ø>? ‹=pǦŸ>†$°�\™0÷‚K××ÖœoG¨¼…ÐHÃG+‚ƒ¯ÎD[¦ëa±×?gd44û¢WpE|ú“mAaqƪ»ÌXþ©Õ%Œäæ¥�(RGΞ1 ÎýÅgdùj:©©©ˆ §Ò¬¬¬Â‹7]ˆsíÄjh¥zŒºúw'BQ\5ç!æ§XFHíÉìK= òA¬â�C� n_YR¥™7�ƒËÅ©Fº™<TµJ(ÎüüùÕÔ0€Tò¸q]3³5 ½Âé5š¡�…côáù]å(äí[㻽U¾)=_�Ú0/‡�½½Eµø¯§HX¿Á•]--­ rƒw¤Ñ.(W× Ú?ª]3*”¿·¹é’g02<Ì�gQoN4Sóà¸�úÌ4çke•¦†sóôÜ#¡ï^»#‘ ‡Õ€@šqN©Ë¡¼ub@Ù€�z«ùøø˜šŽî­� ‘H£è‹×Ôq@À{ŒÌn"?x´¡æÜzAæýà…£3Cû¯WIqNf«¸À¦E±Âä·)…R˜]héÙóõ:îrÙ÷$=QQ[[[,Óvõìì PÙ‰®¶4›ó+ƒœ¼‚ÙÀ³�t�«J‚ ?Ï+ZZêá꺵¹ù�sY™A>¬£­-Ê‚]3¡Ä®ûë·o�“µ8¾N5¼=88H–DÅb±ÅË€+O Á-ƒD#`úÑÝ£ƦXE±²Ä§âù,ßF�J‰�-í_QQs_‰äÊ™ÔÕ¦ê ‹8Åáp8 “““S\ŒTPh+Šù•‡>#!£™„·3U–—MŠûN°äŸ‰ÒòrC__’k×ÃÃj„üO4K KKY½K´´´7oÞš]æ±20z^ù+rÖF^¿`;Ø=<<üʹa8žWã}ËèÖ “M€Ž®êè••÷;�o=K%ж¨“�Πl;oMrù3ÛFívÿëüç5Ãò·GGJQ_»¿a´�<—NºeK«XŽõFW&ŽÍhr dãwð²ƒõµCP–úò›³Ù•г"¶Äþ”éø‘XÖLJ눠åç#K¯öaD}åÂxÍ\­.-—IÁ¾Lúæz‚IbÆô�Þ^À1U{ýj»ð¸BàùÜ­ˆö¢ Agû%'”��y�Ë£‚Ïùm_5f¥]ÝJj3V ®eejÙÆØés%—Zýø¼)wÅôv ÜÉøXÄÀé¸Z6\rKµ’ ¯éJ–|z`m–Wuö<9uÐä¤bì[ ¢*^Ahæåé­ùçΑðÖó;ýy�Óæ%¿U´4ü‘§Ô6ÂY2Ù˜0ðÕ�ô6�´›õûò´©‚°°°; ¹5g}*!~ÒìÃ]QM½ìuyǬ¥ñk}¶+'äZÜwì­T‰u¥ËmœiþÉyB”†¾�„~F“ÁÊiE˘Y¾G4@ïݧ”FtgïX<;ë‹©³rŠœÕJ(8õ;.Ý×MÞIõsîÜÙz�RKlÖsÀøÿ9ÚöhFx&n -ç0ÆÆJÔGNSåz#” òbzŠÛ›¡•>¨�-ONÙzïŠ/w ƒBÂLJv–vCx¹óxÅÄÞéD,ìœa3| 5� 4ölûw,+ÎK] Žú÷­4Î%œÚ+¯Ïtlýä^Ïèâ•öÆi‘î»’UˆžTì ÁÜWΠ3å5§ VšûÊ}÷Ê“V“2VW‰®ÁÇþÄ&Zö�“÷NR+‡ƒt­_ ·Ø*f`t~WàÜ}_`Ëxn'Ù1�¯@ Œœ&ûCÍ<Âê”{Œ²«HÕašk„¯Ë9÷–’œÝB^’«Ã3Y‹iâwyǾöti§P¸ÎL¿ýZ^ÉNû(‡qiÙˆg÷sãݤo¹ß2¦–­ $¸�F�5ÅKýü\¶áªÿÐU3i{8Ôtì¿‚,09þéÛé1³šX¤Í Z›føøäd[vG+ßv›’�r_«ñ#Ö!£r`‡ã<™š.½ìÙž+±õÂʃ°d™€Ê×ëW,XJõëÎW™ ^zó©ÒòpYÎ ú+†u¶º#Æ#݆ç'ý¤ÇW¯w™ˆ›ïÜm¨Õ.ao¬Oþ»@Ǩdl õå¬xâdYš‘VÛñ]X_:4#œ¬¸‡öÚwhY¹æ ùî­·µœí î÷S®­ÙÎÌóöRœŸxžÈ�uþUN¤„—6o¾ë=Õ+˜Ð¹é‰ÅŸ|ú-ûe¡d0£zÐoÝî>b:¿Ð7îæÕë":vÒÿ&�=œQ¤u\m¯×¡+UÒ{y3B΃ð?H_²"96Ê21IÔËë8ô6:÷32"Ø�0"¼YÆ››‹˜èa}‘OeM’“q¸ \þâj¼üJ½®ummžß`â|³’Ôáð‰ËJçFØYß™˜þâ­Þ7ù ‰x�:�Ùèj£ùqÊãyíÕPÔñŸMzFT�Iê1ÇÄVuY\òÊ|:1ã(á#r”íàß\§˜¦i’»©* �;e Ðeä~û–›ŸÕ.qpö¢Å‘Φ{¥ž§À1»Ugƒ½ÕpŘë™vn ×`ƒúï:·O¯Œ�¢ê…ç®+Sdä¹Êé#�=p[&ß¾åËœü4.ß c¬]NnHh®¢­í¾Õ§w?).¿p“Qš£²WW¦ÆÈ“#dиWm 8UYA�¯öá‰=]$×ßÕ,ŘÑ}Éýú5£Lfc§Jn~|g;^`Ç7NV” Kë÷;ŒØ¨BRyÈ“g Šà÷jφ‹ø<0†æ”§tõ¿ûìtv�à#ËËõÚy‡ä™#ææÇ÷fÖ ^Äâ˨î–âywG“cý¼¦–A¥1¥‰W"/ž-’Oµ¿ÍmÈNnŽõœÁ½ÌÏÊ‚ðòˆÕLÕÛ’é•!”t*ëMÜá¥7g6”wµ=ÞNÝ{˜è>62ñ'á·‘3ƒ¸çQêàjg~nBh©îlŸ=€]I%(lj»^¼T¿‘íh—›½*²âH‡CŽ_;$pD4ÖïÖ¾•?¥ß0{?T‡J_¾Ü7„üG*°2æU¸’¿JÓLåÔ��-ÈF|Ë~R}DáææáÁ¤â%ô ,½]-÷~®1É6RK®•–çAMÎ`>þþ¥Ds ^Wr°xj ;gÃH¼Ã ôè»ùäX¹*±f‰Ý¿³#¡j/6igçe„K ¯áLÈv§iÖŸÄ€× +żÉ�Ô4Ò}ý߬­šºC±Ëù†ö¥úh–¼Y¾^žp2’s}x$ûc¢ÄúR5<ïXù“Û`°?=“J‹æÁ‹Á¼¢ACëÍXVï[¥0�òÁ’Ò¾tI‹ϵéš�'_c¶±!wÈQȵ#ˆ-Ìô�…´m± ËnÑÄ{ÃÁDëݧï3s¿àý�1sö4‡¿B®�xŒxU.ešü–®-|Rû½BBêOÎñ|7æ¾HNÕ¾¤\fkFæycwu¸n÷о §¹+ò@ÚÖaàóä ÉdÅþ1³d/ÑDBÀ$yÆ[oûü<½°…ï‹[Èä.ÄàÄ·3›Àí¹@ßSÉâ¼°A]M˜¾UbPqb©®°oxÄ‘g•�½¥îÌ ¿evŽòøiy¥:� ^:É@ËåØó]ò:JÖ{¥kÂ߯ÍP¨d�•Íü[îà�pÚõ§¬Â>q±ÊˆÔãå²Ê®�Ó…ˆúýyYt‘Ã'‹ïE�eË¥^~GlèÌ/ƒ¼æÓ3ºqºxRŽåõÝx6<ÆñÕWÏK·‘qày¾œLÃ6 ¼Wú„´2åeYÀ/*YÇÄÕÚCxÙòGnq˜Ž<|4¼Ú«Ó7`¿f¡ q:óU¢²ç�íW'o¶ù^]wÊÃÃäÐáoX¿»Å[Øo0гW¡¿>ÖËyd9¨™š^Xòá9Ñ&¿nÅ>ìmæËÕßå�´Éû+�GÓ“¤á³ð­t‡Òæžì 4ŒÝ~d�m†„‡™W ÏOCƒâñiúRï¸×�°W»ñ &®¤P»Î”ç éO‚êÙ<ëßÌ·>æ�ÎV?þ-zž¢k|cY¼·iœ MsJ$°ˆ'ÝÁ'½²¾Ï8ŸöIÐEÌ�WöH}bY±ˆ­÷Úêíª;Y_ -ÅOày¥DÛ*qöBdë¿Î,Lc»·‡Qg;ÞfÎÁ¶*�©ÓZ(_* U*�s?ÒÂ0§Øä€)§Z‹*OûxY¥ 3Þ¯1±.Ò;ÏèWŒTçñ_/er–HH“2ö<Ù�)C™TR%ôík9¶¥ž¬¤«öW/QYÔÚK »u‹ò>ðÈÁö’�n8rSi'òù4¾�Òµým\GœóP†Ðhí¯$¶Ï…–Í ×·CjÏSy¥�w> ¥x•Œ¬Ð››:­Íq› ¯�ðRr’³;{�¸¾è+n�?¥G9‡x¹Õ„•¬Ü÷œ§Û8)ÎÎ1áREš–kôÙ•xN!EXû©5õO÷™üü§¾!Nf둎Ukoú¬›Âv+�¯ö7‡Ö—*N|Z~2ýWª´áŸµª’´ó£Â|ìB{žßŽ¢þ‰jm&µNFÖælzÈöü¨‰4z +¿Q÷Ò—çmî›úÓÑÝ~û‚ª“hX!?ÿ­Øüƒõºô¢õ‘úiQAy¦â+›cŠôÓêÚîïÅ»� ¿ä}R=DÏÆ�„"ÂÏŒ»ìmüÓ\+ηßf)MI°Î.³;Uîx¿o¯%ß·è¢uíµ¿c„±:qÍ“ux¶�þéÝš!¨äXdmûÝ¿|¾üU–úÌk²œ×ãxä u%¬µ sd?˜¨ç[Ï”Úÿk÷²Š»v2dK©½�ˆe‹FE®Ë¤êXÅü½¶‹ðGÔHj»KÛÂëꋎ5º”gíÓÝf&x-7Ûè —=¦ºr¦u ïãbø”qû§DÞ:WNgꈿ""eeežUt×Jõ{ÛÞf,Ìö'[Èöm+U+Ë Zhæ �Ý68[’5_ù-´[pîDA½q~Dãm}X€âêz^»¬úË:º®|Øk=ó|w&?l³o[Ò¾W6Qm¶r3T*¶óÀ¾`ì`…`�Ñ„v8¸U�_ö|«¤¼TéqÂŽÀï�¼ðSôi|S°&¸K SJ-ž?I}‚¬oGDï¶b{Û PikgÉk»f8*Iؼó]ÉXïxù^é“hBÍr˜Î Dˆ>mb¹¨{�J¾Ÿ¸ï䮾•¸Mû’ZÚ%Y‘žï”×Ö´²DÀžçEµcl§;;ŸM:´ò<ö´Óªb;ŠL¢³ÖÇûcÇ2t²œ«Þ俉o1‡KWO»˜Éy´\ñn׫LñI;±�nGã³nyÚ­4MË-©Œ³5®åøæÃ£�5¶´íÆC £åO<>?' Îk~¼âê»Wp:ùKë �lž•3ÓWšç ‹0ã7ÿfk£µµTÙ‚£ùî…ßqäó:K>/Ï�'�r…%wÇ:ˆ��YȾŸ¨]A0!ž8ÖÄÁIô¤Y¨èU´ÕUµÕÛñUèhljª…žž©±±yV/!ÕÓžQNÖe‹•¥[K‹‹Hqýýcüصùljl‚l}XØáh›{–**Û³O­š•W)1Õ@:×Q*jqŠ<›+Y­yÓP£~Ì›�ò¸á>Ak òŽ\y 2]·e[ýÖ6º'¿Ï3;~pš�%g–(0UÌ”{´”ÏÞ+Žd:gÝ;¯q­žb,ÝÉ[˜÷<¿:’U•§±]Ê5;tœjú;OИ�Äwã[õªÉÙröá£Aóº­h”ln½ÈJY—Œ”mÍÁ@�’6u`�c§ûðº·Ý†×Z{O÷À挨L«èú²µãƧw¯ÙƒïÙ=²Çîz/Lœ�±Ï`ü_eîž.û”ûU4Ô,tú–kGfûM¤ëÁÖwõÆ^ªåñ/ßÌ?îíª?ËôÝ /Háéuáþ’1ÛžÜÆýŽ&[oÄõKŸoñpÁ†IsÝ Ó·÷JÜùA¼k¿àmаˆ_C)/Tw¸ ) ‰ÏUŸaûcl7 M'é¸çxX€ ûãŒ[‚Oå‘ÖWktlNÝJ*{�•\éô¤{ÕŽXî;Ô6mÿ9Û%CHÑô7¡ $ï«‹=š8_Ì©¯W¦S³‚m¬ Ξ~굎­]‹‰´Íò¹ã³>G=÷JÛßÿõ€÷ŸÝ>÷ã}*›@êT¸�)f~ qîd©7¨B÷€t#`cÌ¿öÿj×<›š@®}»«²«*(*² ”(R¤f-ô^#%D¥ H‡PB’EEš4‘¤·€Ò!„, ½&¡%‘NI(!É{?ÿá�y¾<×ÇóõÌ\3gæ(?™¬Åp„ŸåÊqˆÅ,ÞFíêI&Ì�½¥…%<¬ªõŸKÅòãâzbµU æ~iÿ$óZêÒs¬� þ…Hd† î´Y!xT?Vû ½Ac?‹/Í%�N’Hú—K½içF^9’¶žÚ�ý=×ÀžF?[ËÅ”í½ã.ä–nàÁTå2ú'ÚóÞïç0�£cºZËHª†^JÄsägï×7T×”yÏ:T)ù×ÊTm°�ì+ñŽ`›bßQºã¹Ê:„½CD„Âúõ³û:–œzE§6·o;§ëè) HÁT(Q70šíÜ–›ˆÃMªcBíÞ«·æŸ‹m|-’Xv€þÓÙº²AÌXoYÿYÚä“Y«Ïwœ?…,=uâ’á¾FÐØLv€_}e'u ¿ÛKBÿ@† °qðƒ©Ð·/ïû5þ}›¾jaÙ=lº¾-ãGP'oܱwxˆO2ò ˾°·�(ìB÷£ÑrhtIgm¥šp6T£Yƒ=Wߘ_M¼ªDå>Œõ“ý|Û=ê*¥¿-›Ö†i&lÚy}G ÿÅë*`ÙÅ@Ëh.äuQêÙY·¨n^ ¬Ê‚’bHo¥ej gð—p@_*÷CòÑ’b5…/S,�3ÈÇí”Ë7©�U,  Ý`öÐí˜ñ›Uñ�úí�üÅ47HE‚ ÔøŸÛýÌˆßÆ†}€XüÁ¼'óU@UëL |ôÙkpá\ëªÝ&·p$]pu�öý§ŸŽÂ§ßË:°»G5ø‘/ɤ*!>æãŠÅè=X„„5¯øúªFë(£mÛ$¡^.+înã´ƒX8üºvÎ|mÀ£ž/w¸ ‡+¡P…zÃÁÆ[c;Kæúúñ„2ÚÆ•j¾á˜Ì|†¤®½wtŽD£ ®RB†ÅÿÝäÍD‡Ëö-M”ê4yýèŽý¥±îmá�{y·–´¢cKiÆë…Æ äCã1Ëßæ?zР(*mó:Ó»ÒÓ8P²“ÞÝ»‘K™&o¬1¬|œîkµ�ì•óTFk.<Ù’ƒÐÌŽ4ærì€Nð˜AœÅ�ŽÓ:ä˜dÃe‰Û’"ƒ{E·Û– ŒQÚDÑœkxõëü�O¾èj…ÊŠ¶æÒno·h(l-ŽüÙΛh®ÿ=Ê‘T�PΓØ# V�‘!sU5Ò¤ŽÚËle�ª«eW³Á>o�(1Q"9†¤9wÆ7�àÒžQÆú·ÙÊ‚úÌ}½­¶YéýÇ#&yZ¡¼#…Gí� À'|£ÐëÞÌ�sëù|Ò¯¡5!§'èÑÉAçæLÿ‰oåîî-2Ši8+‰EàŒž¾^öíKgQI‹~D¸‘{8œO]XM}Ô†íhyf†T�øZ_$q|ˆM^û‡ ëßC¤>+³ûtÜÇΙ[6@¡êúGóUu/«ë0ý6Y# ƒK)ßÉ.E'%á5•UeesíBg‹‡DÂØ–ر™åC1È0ÞwÀE�HOD…˜ÃìÖ±Û¼¤3*XsûÅ�•må«QÊat–Aé% _t•¢žöÜüô'é‚N¶ã[@V[RQ š-¸Í f„5~ÊŸÝß�§ü|gÖ.4©îÍ] ²f'^T`P½0tÉ×0'^&ð˜â݃‰vCs»Pû”ÉwÌ\ý|>«+"Œ}2ùªH¤&(E:ZPÚw˜G»øë½Æê‘””BŽžÊ-8¿vD\§Úަ?ê©”ø­ˆX9_�¹ÄZظeÉä梾¯qO] ­k=¶Ìk¼¼â-Ö¯$YÎ ËJ,š»ßyÏÅVóæÍéóñÓã§Ç™]:ŸzC?S1ö½ è‰³§ÎÞØ¿�u½5ùàã ƒ‡òÿy~íæõ?^�_ÿ|ÒØ80÷eæ–‡WÆ©È5jl{]Ø /;_ëÞºæzžÖ^î/Šô°àè@Åç«Á¼F“ öõ�Ö˜Õå3½ñ]z0¿³V^GÔ­\övëø®ùv]5ÅOSpc>‘²>׬ԹGÒ–�ýŒ×üù�x?b~Á Téªv»Cx„ŠvŸ'`‘„E‰ð»:)ð­YÍm)h®tOî�±Ñ$ˆ$¾ôfñQ­§¬ÈZ¨/qcY>à&}ºvíý�V6å;5Êø�x{ôycèl^»@K…2¤ë¢hßÒËóE —{¯�£—FæË8~§fĦ÷·¤­Dlj8ïIbHeERW:“ì¦+ãÃY -ú44×MÕž}mïì:€œ9i ÐÔœm´l‚Œì†¬ÐΖ仛50Ù—{=Ò’Û ­Ùβ…µ Ÿ]ÊŸ Þqlé ª°.>Äx¼*Ÿ� ½ºÄö³œ=ÖŸÿô±Iö­&.b[LWBXj’:ÞònÈͰþs!›Î™¤Oòss3¥ÃŸîÌìØu�–ê´/hHhÔ¤®<¦©ÚŠ4£?«­ÑÕ#êùÕ(ÌØ…qÉoó¯ï'#¶ïö‘ë­:[h¿b»TF‰NwýG3l†ZòaÖ=Öeg„ âÞö—­)ÞÎjlô=Ä#›,8屦U1“—Q}¿Ó¿�ЍsP5XŽ—èâj+‘Áý‡ ز�¢Ï;ãc Éråp—Ñ_e]ýµ1LClZ-v]ÖŠ¹µƒú6Z0—ÀYeß±2c)ÏíLì:£#–˜tæaàÝÿýÃ;è7šËïn;ŠZê*ä#þ€™âЂ¾â ;³u9°¶o³ª&¨úfT8󄯵s F™×Ú­°Ù»züª^¡j KÏ3tj·Þvë² £�œ�º«!ê±Läe~à¥TAs‘µyí�Ë’@3΂ÕúŒ[%JôžJ•3Û„GÝS]jÙxï/œÌVQŽ7×s%êœs*/+ñ¢�;lŸÎx3%/ôÒ©…½°µQ}Mñº-­íÏ/C#íéW"b(sá.Éå—�OÍzJ>Áz?<¤n-àË8yø:¥<ÁƒÂoGõ‘CYË™(e-\ÈÈmÝ;2.×(ºrѲfþÛ¼íÔRDÀŸmê´¶´>X¦F๨r§Õ¢Ý�ûͲU°ÒH`¿[WvM_C.uìá1–f%AaoÁ4ZKbÚ&2¤—“)¥«WqÅïMûËyˆ}3›o"ÅÖö~{ CØP²èåvå•_>v&’Ž«K‘Ó3FºêºL�¢õHª!¡Ôxc`¨úlaëþù‡‹`œûò¿ÅH/û¯ :UFY)]ô¬Ëù¥uSæaêr!ÞìR]¥–kdöë:¦GµhÎÀ3qvä£É+—2\¥rå»­Ó~ÈToÔ±„{SÎëõ.¸-~;>Çh% �1Ä_ɶLa �²aÃM]ܰ¸~,JÌ�ƒò^Êke½¯¯ÊƒúÀÊ-·õÏÙ°®GÅÜÖ~ï\ž.:(à`.T]S¨PG�¸4‰HïzY(Ü\ªs-Z©ÂÎkÏy=UåˆsÈB(.ha´=móH:b¢�#YÃ+AÛx~0d¬;2ÍQ—Lzœî6ºߌ­ü[¿~5¦fìÉÁòõ�Ánw´€ÊQ}àV·€ÔÛ’_qÀ­{3\›�lUñDäÒo7»VkîòD¦ÂÒÎ…¥U’›ºÿHD¹S…Ù{`’ÊÐ�upD| < °¶˜kJJ%–†v�aÜSYÀý5v•C×Îû„ú“€VáÔ‰q›è¯èi1ßK®íd]J�„«KxÊ_ÿ©ùÇ«(T-�uó(¦ñ©ó»7½ì°“Ëø5¹tÍbMe� ¯»mÞ*ïGêBý©í·ù0¶â¼#ȸg‹fAU@)OUMþÚñ]È6zW`w×}0zêï#6Öâ#PÆyþ�žì,9Œ ¹ÒÞ È> >Ÿ«‘éö"õë¢×šY3÷Å å&Hwá<Â[–†WB( ]±Ú[y”ç^xPÏ¿IxgèRÔ! &ÖgË}›�þõb¥tòUrCþrrõ_�¥ÚRŸ»ÿê÷…e^ޝz–ù7½ ­"`¢zOÙ…ÀþSøÐ^Ã_âöV…9aì?M)jüvÑ,_b¶2“õ—;‰Üµ¤:UO¶Ûõ{cÄüu_rÛ?&@}kV�ä¼M+æšÓÂ;ÏL` ³ÈX˜FÅrò„íùÕ.]E­Ù6u°¯šø‘ïÎÊh‰Ý»äM‹Fç§ŞTnGªE‚“yÚúâ8ö¦dˆ³FJq¾oúrª}콺Ÿ¦¹4»Èqkú®Ä9öí÷ÏÈÂ]õÐè¿énAø�›“ûhPSZÈœFà :Öc™1Wý_�ú’Ë4é‘MJw“Ä®™ t~ÄF,¿ d*uþ‘Ÿ½ªtðS+„Ú¹÷ç$�nç7ã{+Ø/'¿ÎÂU€o u—­GèÂÂ:Ç@AF\hº'ò™µþÈÓjŒ«[ª f®a&K�‰¬¢É;cܵf=©…®Î5ú• +Þ÷õNÙÕÏÇš‚&e&ß�ðŸÓNPëÑdiè?|¸Jƒôêo»P¥ø>¡ý‚ y™c¿é7åõ¥X/•ÍÔd+Ô¤�©™Jk:DÖ.3(Úurñº ç ˆ)“xªvW¥Ð$kq8ÚéðpäS¥çLäu úqªJô¢°µ›ï=’m.³Íw®Ì„2?wG &QA7Šøãè{ ha-â¡ß{ I I¦hwÿ„·)²7•Ó]Wä�û¹î¹€ìßâjþ™ïÌ;t³�c/"æný¸ú: Æp8é¤c>[Hù,|f/VܶH8ƒë{+rµfEUG44r9'� y«*âémª¶F]u ·_väêo0ü é †·¬‹¦ï³vsAï¬È<£Ô^¯}¶¯±¨#·¥™« xwPŸ’øÉíÛ©ˆç†1�T—ýWù�²Ïm‰<)[jG|‹4ÙvüÄyá¼²jT;¿P3K‡þ;È’¶Hä¿`f»”aNAŸt<#íù× þÿŠXM«’›ÎàÍ—o'w@A�x£én—æ|GÀ¦ò;ujŸèlÄ5e°£äËœ]!nã ¦)uäVWž¶áÍ-«l äNý¹ûþÉÛ¿Vk o½oW—ÕJ£Ò! C¤oÑ{ýR:p÷WºQdtŠ,Ül�:oj.žz°y7æƒÚ ŸÎÓ?Åú/”ÒæGŒJ�Áúôœo“­ªºm厛¸ çCBRƒŸØèñqÃe”§II5Ûé=ŒKº•º¥xTáp+©NÓf¦÷:ÕO——5]GuÜû±ÞN¶¼©*:][miœ.�³» USÈõ�›UÖ¹±Œ†ø”Õ‡ßÈ�QÞàxÄ8?üqÔ+Ò�ÔØ¡4ç%¥$‘ƒíþ´¬?�ùÒ‹§JË ZMƒ¶/ #Ÿ1‘û¼{ÆJW Këñ÷NÙ tg_¨Ô,‰ÛÎÝ­ š�¯¨PŸ·¤ @DÃDÛ¤lVuzÀ`räæÌýZ5¥ÕæFÎDmfd‡üÛ_?Ü801tõr û:Rmuå·u« Öñ›!&×TˆŸ’ϪB4,šÎ®2ò¬ÁÒ•�)͉�m[ô1=9«x†|ކ%ŠÔ»«eµ9ŸHåÚùnþÞI3²RÖ¨æ)Ç-LúuÅ?òUˆi�.…\ < à¶×£×ÅM@óï|à�÷ÓºÔü{Fäý•2¢¼ÂõdtÖ5‚©â:ï2u¾årY‰Æõ0/–áúåEÈnòÖn¾šÂx—Þ‡¿%H™£t2 WIü¥Ê�©0MËp빨“_nßGêõ’ÛA€Í¼»² /_Ëq #ÓðOÞÜR÷è‰yT™�Cê„lƒ§2¤ü¼ À5ð,—Ö&çðùšé�Q¥ÆŸ(±ÏÑY—Ø;‹ªº;þÚ7Kº÷ YŒüQ’Í`@…œÎO&çwR¿{1mºÒÈ~´õg&à¬ì ßÃO{FáBJŸƒŸ»Ò x¸ÁµË% ½«Á#ºÙâ?¯+HV­ÃÐ<ÞÁ? 6G�Ç÷,¼¼›­äÿwRŸëo±Oyåú¾ÛõCšÛr³¦äŽçGmÿ@�H@i}Ÿ}@@mQÅWÑœŠ‰Ö'Ò* §B5á냞ÐÁá ¥éæŠƒuéjªŠÂI0ôˆ1;tá£9p\¼þ{Çí!ä´…h©÷àqàëë¡Sž£¨ŠMÍNŽ—£Dñˆ÷Í÷G›¬¡”“H líü“»¸'XvNîU>wØé„4a$‘¦ò} 6ôQ:ø5lØš“ô _:�Ô^m¨Î½gw:ñ(6o!Q§å¢Ê;T{�Î] %Ï R='l=zx¡ò<£¬^ do%ØÈ3MBƒÁò&pï´òÍH:ÍÛÌÈåÿ$Ž¿0-SÞP+ˆŸ‰øõã ~ú}¦Ó:©ÏÌÌk”¹ÿÕ2ºjºô±«Jev¶˜¾ +õâi�q E4«4!ÞíõÑ--¡´¿.¿9 Ø5nºàoà~tB@&¬ý’†ÿnbUóÔ=ï«÷¢¸¾« >_È„@—„¾šñ©ä99>âåî°x¡ÿöÛQ0f�xÔKéXZ',ï|#Ú¦OÉì‚ÓoyÎh•s ßâ»òŠŠÛŠIé l…�ˆŒf’‰õÊB£æöçÏÌòlÌ|X}E³}$bÃvÕ¡åYþm}çR9‡]W){! Ûd¬ˆ ŠY(³ÐF¬ ÔÔâèÈ—Ó®ÓZÙ·@*æ#üÐÛ9“½ i¹6YvÛüÅÍûp{Y%'þ·o©ÿÇÿWþíù‰æRVžÐ”}JgÔ±M‹v˜Iü‰wä#•O!r`7öòâà®Sº:ê��ªÒFÇéä³b Ìhí׃Ôyì4¾ulc8¥xƒ†‡AÃ�áTß ¸Þ¸INŸœÂËž1§’ÜÐPoTLÃñ(Ò­v: •Y[2Ü^T›0͕Ṽa™pÊíäöÐ�F¸¸…ÎùÇB÷=‘„“óþHúJGyçÐI´ÜèguJ¢tÕ6!{†˜°A� ÐZ×_öÓ ‘‚ÞZ½Ñ8©n•ÝrrEç$™)_·:‚1ƒç$œózá89r)äî×?jç\2’W•da4G°¤�Ñë�‘¶€fh¶^u� b�Ö ¶ˆ/ �­®[§s˜•¶©)`Uª¾O„Ìâ ôk£À`üÏÀ~:4êÿ8Ö¿-’0ÛǤ›ëBîÎawäˆ:QÒ+-ú�óB•l�-‘§J‚¼0L1×F~¾ÎÊÛOΤÍ:;¼®a¹“æaѶJ–îÎÕª@ó6lt¨‡rú.ð1T® Ò’H‹:Vy§dw�,}ÐÄàÌ�©’úrî#¯!UCõ=ÔŸ‚°Ç�H£%oí¼8mC¯%Åj¢[黥·n4ì�xåÜ}H·€OÂoHo,{/àÝœaps6Óý •"ÆŸ9O8d’/ç£dlÝ<@k¦™{Üxæ2(æé믭£ü™äóåyq˜87v:Ñçt×8kQØ�D?Ø‹Ђ>B>l·›M˜‡xyÔPÚ#{–çÎR¸£í/g¥Ü ×WÿPK D@º3ð® ch2.xhtml�UÁrÛ6½û+¶¼´™É(¹Ô©¤Lb;­gâ&Ó*Óö+°(šýúî¤E¹9ä ¡àí¾}û\½}l4œÐyeÍ:[/3@SY©Ìa�}Ù~ÈÌÞn®VßÝ~ºÙþõùê@ç?yÿñþ²¼,ÿx}S–·Û[øó—íÃGX˲¼û5ƒ¬¡}S–}ßýëºC¹ý­|dørÉ€é!ƒÌ(C LdŒ_»¼¾¾Nˆx…¤GPAãæ¾€+q'<®Ê´tµÒÊ¡v¸_g> }�ŠÊû ÂÐâ: øÊøîPÏeP¾Sì¬8áò2 ½Óâ+Pr�Yƒy5îäÁ‰êˆ2W&wxR¬*mšà¬Îa†\b«íà³Í'ƒ0Á`„�20Á`„-€q0â(õ«ÍªÝ¼ƒÐ£>a¾U°DÛ‚ò t/?'¦æNñÀ>`³ßU5?«°€tUç” tí÷n7¢ xGÀv»‡Pã™]LA&)‚ˆ5Pú£±½á˜VØl¸6·1Œ£©vHN¤†²;žÂ #ãÙòM Ûé Íäæ>ºˆ¤_Óé Z}†ù¨ð½CÒ =�çi‰äU>8µë‰›´,àN�…© -‘2!Ùýÿç’58Ü"È¢e¨X%;¡õÃУW¡¾œ-j1göa å£x¸N/šTFÌ'eGuxl.‚Á–�[ÝÅíIdêÄ8ÈÑ_rŒeh]«�£DÈöS#ñïUº“<>µ³Ý¡Ž4¨‘h$Ýß7–Ì3‘/YÿYS­¡RíÜ-º¤)7ö¨WZsª¹G¦{€ŽòÕÀc˜vÎC®3†…QÆa*¼Àlk:íª¢ðZgeWEAè¦ÀÔ%fGz4–˜PœGä]Oy¥T|šá @ZæwBm¹Š:Þ?óK‹�t&ÅKÊ�¶”~‚5l4'å¬áÿ‹dÂ'Ñ…öþ!£¨=w"fHuOWÒvn®or…¨œõ8½‹!�Ƕµ.P­wN9DŸã(¯Hyºº{ó!9ܱ« ¿Ÿâ®ÛsãÓ¡<,évt#m|PuÍ…ÊÙ¸¯Î¥Ï•¡Ùö狃.˜~¾7ö`$ó�_£ ¿{�Æûìû£çR†Ïm Wm‚E.`£çÁºŽrk‚ÒFÊ Õ¶ÿ ú­ƒEÿ(ñú»hŠz:¾\e­€¼VÖì×o(¸~àE©$WŠmJ®HÿÖ�nú?b ‹1ˆ“Çn}ˆK›0Ü09™ô!&-„üˆìu7§­€ïŠ›õd?Ghw•á5Êè’}Xһ耈k¬ã9¡Âè%ÝÓ=Û&÷`-ꉂ2såN±|AC¥û­ïãÚXkV÷Õ€vél“F�Ä߸±¤-ÎËúNŸÆìÈ·œëRç©D+CöE´i]�PÜΆJdQÄ<ÙI´“ªmÛ° ã`ßaˆ€Sà�Óàæ[!æ9’»‘Oå®°y «R×¼ÊÒÓ„®x4*ôÚ:;�TC#ÑŒœcœ'~Ó–´1sºëB%¨cz`´ ~°ä¹•МFÔë¸n=-t§[As.†§Õü¥]ˆªfó�^%½�DèŠ*HæM š*¿ÓÚUÚÑAC«@^íjN(2öJK²ÁYÉi˜‹4Éõ¤|¸¹# l7‡ë  ’…´‹º.dó¡’"m"ì¯cµJ £I³Ù(bLáDoC3ƒäæ`„œÜ®jû/–YvËéâ÷1¹É½Æ©€ãϑۧ—�,oo©°‰^Ž÷R¥çoeºñRL†îúöä&Íë€ðéQ×it1±tÓ`.ïqŸ ÜP`ÝØÕ’¾¤®úMÐo†Fu}^©¦‘¤¤(¼‘¯‡¾?ÖK�N™ÀÂÓ¬§@rO ®@’ÓUÐ_·’Of­ûÞË¢Ü8VtÞ+SއLà�餀ƒåÉH-¹þ +!X¢Ë$•M9¥’ùÄ?ÁkK£;:‘ûÌW6‚9;©B>Ž¿$$´ ßzÃG^&ߘëgÿPK D@^ö³0F® ch4.xhtmluWMsÛ6½çW :´ÍŒ$ÖÉ¥‰eeR'™º“O¬LÛ#D.ED À dõ×÷-@H”ãœH�‹ÅîÛ·o¡Å«ûV‹9¯¬¹š\Ì›2¥­”Ù\M¾¬ÞÍ~Ÿ¼Z>YüôæÓõêßÛ·¢ °¿ýòÇû›k1™Åßϯ‹âÍê�øçÏÕ‡÷âb~Qo?NĤ ¡{Yûý~¾>·nS¬>÷¼ýâ‚7ä÷yª NˆŽŒñW�ì½xñâEÚmIVx4-onnæâÚšZmEZz²ÐÊlE㨾šøpÐä¢0/½Ÿˆpèèjè>ñ·#=6šˆû‹áˆµ­|àÅù1ø�ÅgBU¼Õ:š•ñËL™YhhFf§œ5-™0YÞ±�HB12€·gËE·|m„ìº_¼XP»,‡ƒð*”„ Bƒ¢`· ¼¤Õ–ôA+vÒ̞ȈŠ:m^üêƒÜÀ~*:g«¾ ¨ï_w¤mGn€Ÿ åÓ¹X5ð«L©ûŠüËEÑ-½^Ëågò¶w%‰Fš @ñ±œF%ƒ\KOSñ�ÚR– USañÕ‰µ,·³'·S%ùE_ìïÚQ…“•ÔÑjAÎH}4¾/!½xÝÊÿ¬wÏ…ubµW†G/·äf)_` ûÑ6Ž­”ÆUÂkc}0²%QÃI ;nJ~ Nèw¶Û–‚jÙѸfpˆ7 ¬rÑ"”óBŠ�²Z2ÈÂÖ¥Ð;šÕ²„›©Ø7 a9úÖ+ß €üf‰‡*rî¤;nެ�mã‹b°Îäãr«˜ê:F AY:ë}®þ4n•…�±aK‰AšÐö€‡|ˆ`슅’‘{¨.RÑ:QZç¨ pŸ2!Ôµ1ÁÎ=ûÈk̼ôº)E+aÆ10ì•æ ZËÔ6*4ì´´-ˆÚ*Ï|aƒòD‘ÿG(ñ?0îÕʨ ÜÏßz.Säé=åŸÑG,3Éñˆ‡ì5¸�%Ó#™œÕБ…C°äçn½(â2óá³T˜ÏÆî.-zŽûD&Àô`{×9d80‡¥hTô\¯G;:õ•· ùšëWYCglÌU6©ù�’³hIn°,>©3z?>µVhâ(‡Ë ‘Ëm ›í”€~úÈd-˜Zýœq§4ýqsµwÄx:ÄÄ…?µÙ)ž³XŽÄsÔÙ©Xƒ9>(P–©»'¹5ä=ÄK¨%%é£B‚VAnÉ€ÉÑÇ%Çùg=c¯—üæ(È€…å!vË`Øz{pBxrÍ4†ãJÕ5V�X§%k×í´G­dÍmeÔF»«ØŸ'ŠÆ­4q'¦|óäàŠG§sñ®wæ”-êØq)zÃóñ¬bÓS]!ƒ¸&Ä}% zÖÂ}¤àé‘-k+îe¬T>¦NíƒÓ�[jÄa¹%>Oùö4¦þ’;)î>àô[Çs9¨!ÐC@ŽªÈç}º›É�Á8S¥àF©Àœïúž+F žè«…Ü7P°.JÐÝqÚI~kÕ±ÒÈžgf•6ø\PÌS�Ť°ãKDZy:l’0v"sí¤aã�Ôc¸’¤›P\™_xJ—8û´|ºÏd•‡ñPr�bc«“´¢a¹òš$Ôà%‡Òò¤Ï”fS?j�#øNch?>&f™8 i‡ä@°ÊâpËA2ÕãÛ79,ÍÅë2úÊ%Ò{/êÜÙÇËb”àCU±µ­ö&A‹Áu–{$c:å+ž�‡0‹}¯CT�$€íZ‰�žî�?¿†$†R‘O4â½�`Å×S±v±­2oøˆïe*hÜá'M¯¥Ë³…ï¢<³êžo5ÐŽÆn,hÐ1Ñ;oçú]bøzœx…f3\jü#4�wƒuktž¬¢�ï¢Øó}'µLU?Æ“r�1LxÒé69åE¹l-¢äû˜?b€{/i@4ö©¹ÎiÇ ¨XÁ:ödC†ÿÿóY>ùPK D@õÒMG˜ ch5.xhtmluVÛnã6}ÏWLõÒ°¤zó²i/rÛ6@¼Í:N/�´8–S¤–¤¬¨_ß!uñe]À€mj®çœjöé½”°Cc…V7Ñ4ù9T™æBå7ÑÛêsü1ú4¿˜ýððÇýꟗG(Ù¿¼Ý=?ÝC§é_W÷iú°z€¿_-žašLÓôñKQá\õKš6M“4W‰6yºZ¦ïÞ}:õÃï„;Q†˜ŠQöæŒïôúúºó¶È8}9á$ΟþLàŽe[ª^ÑìD†v–vÏ.fR¨-77‘u­D[ º$³6×Vx9|wiøoPE�’ÚçZkÞúÌÓÿÉGèéœBd.^w6±ímbFçXV � Z]:�æ+o ½5 ÖÀèÓ[ÃhMy>ÌgÕüfXÎO|f)�� ?Õgà VU�ieë’âj";œ*t�6[Ÿ¨bÆ�Þ€p”6%“ +4Ì‘(x|geE €P™¬9gŽY§©*øÉÖYáC,ÚׯϠ Ük:y¸»œe³,§Óo5Ö*m­ÃòÀmÉÖká_½ç2e“[Nί‹ÕËŒ =Öµ[ëZqÀ’ ¹ñ¢­Ûˆwòaô0#ÄÎfZ`™4/“YZyïN!—bÛæ\3KÈ:0Œ �“²…’)–%ë6XZV☋ñR(aÉ�À öèÿhÁÔÊ ²åXIÝ&ð¤È¼‹ N{CJ'uæ“ÄC’¡²ÉHcÉZ`Òj(Ø÷•WFï'ÁQ‰Âð@¯@{†Éc”� -™Ù�™�sF%˜#¸Fó/ØÀ¥È<‹Ï:ÏeKžk¡˜¡j­EwÆé¶dÿRï¯W=q¸C·/O1ËÈΊµÄA´æŒûªΡ™ÀoZçdº`Áäó“4“M9²<#>´Êç«ÂÇ£ž½–¸åã Ëœÿ Ý¢—?p¢� Ô¬iH� Ì„:÷�ŽCf)WŸVzàŠЮú~�©çÐ&�í£zÞ–az´G9d£²ÒÌ GÒ 1aà81â2‘'pÛ ÊO¯?ÿ¾-[èZ’¨ )iÍ6¬òÓDY»¶ºÙEOÈ  ‰õ}Jâòáõ2¸…¨´}²‚©œÐtú`<ú <Ó�5ÂâdL?Š�:φb}‘åÅôÙã.û¡hÏhv,$°ÝW.ð‘Q‹^)Jv9Åñ=�»”èxM!¡¸¯ƒ¿ðRÖÖ£YS}Tn/ˆ^´ô³=§ˆ—CxbLù6~ 9Ž}0]õRžà,6<»v�´F}Y¼“ÁÀÃÚøŠ„µ5N\�–;9çmµŠÔRWä§hŽÁ{-@ÝÌnŒ.· sPK]uàgµ1þŒö7¯»�3FGaèuÒï<Î6âÇt5Èã9<,½Ðôo2©™š_üPK D@’Š sŽß ch6.xhtml­VM�Û6½çWLuh`mÙ›¢m¶¶ƒd7A¤m�núq¤¥±EX"’²×ÿ¾oHÊv‚´½ôdKšÏ7o¹xþе´gçµ5Ëb>�Ħ²µ6Ûeñáþõä‡âùêÑâ«»_oïÿz÷Ššûw^¾}sKŤ,ÿxz[–w÷wôçO÷?¿¥ùt^–¯~)¨hBèoÊòp8LO§ÖmËû÷僸Ïçâ0þŸÖ¡.�!F1Æ/¿à;öìYòˆ¶¬jüZ^ý>¥—ƒnë+rܲòŒ?ƒY”éë£E«ÍŽÇ›eáñeß0‡iå}AáØó²üÊøŒ—F•ð/s¶µ­�’{þ�ñ ߯I×Åé*´Ç‰ç^9x²—‰2õÆÔ–}±ú-ÛÑhGÑŽ`'A)Ù!öõjѯ^FÃk¤$í)8eüƺŽkÒ&XRôØX3©yÏ­í;6á ÕÜ·öH¡qvØ6òËœ£Þ,Ê~µÚ0ZÝ7L îV)}4X”x–D꜊�®”a@š Ÿ¤"ÑÛ\ƒ!~àjjÝJ3¦ÆÏÎØƒ!%æ§1ú”>xP ï3ÉnP#§¨*Äø]§ùž+½Ñhu}Œ©1i’zg+öþ*¾¿h€6ª†}DsϦ¶Î‹þ�ä:@‚^cä´ÖF¹ñ­òžƒŸ.J`s‰Où%BAíàtÎ�rê¡:WzYQNˆTpA[š‹v¾ñT ÎIS€x£·S’ÄŽýÐꢄ”fAiƒêmŽt&PRÂÄGLÒ�ËG Iw �Â¥q öÚD—ó 6{í¬�¿€ÄHÏTÈcÕz{žô×~„MЧ‡'Âè”êûÍv%صj0U#]{Ûq#;à¤òØe`[�@Øâ�M€})—] Ëk½§ªÅ`— «…îÝUËBw²%žçÓÞl RmX·BÃ5cb’%A{•wpæIÖiŒj,Aœ�¬:U!R²èÇì•ê¥ábõ…�‹\¢?‰´ÇšmœS8p»çÉFU3ÔÁ+©Ó¨9‚ýšaÊæL  qûT‹�,' ×ˆÉªë[X�Ì(Yw½õ^Ëî£Ð›AU£ÌVÄ~²Ù™W¨X>¹¨jÆÒAÅóí1Ù ­?Z«j7F»Ø­„B¿º; C°¶õ"óºR-DÖn6ìÆÆP��ÛÙðŠ: +Ú•VW­u«C¬ÆÙ¶=¥V(Ž÷Úþ4ƒOÑç[Õk/Êi/ÅJR¡`‹�}½ì¸;¬kíXFu$£DÖ‚Ö¸ð8â£0DÀŠhfµ{Šjí�]<õFÄ?³9%™ÒHxÎ�ö¤»œ#Ê® ¾‹â†áÂ5âðqÐÕðüy¯ ìÇSjߨAĩň=5j/,Œþ8ðÉæÍ81`ây!Áx»~ÜýÑìñh“꿞Íç“Ù·“Ùw“ëÙÍÓë›ù÷¹•'$ÔuÃÞÈDQÌЭA…Ï‚ìç³Ùè5¥÷ãt”á–õÁÉ1±Ý·\oÙ¥“âTR¥ ȃ]¢矨�j§ÍHK[Oé…9f*à |;m³áÃçèÅ{F*@t š�•$‚ù°Çé)¬0xr1P\3í3ó$ïû´pgÁ�"+ç‡SŠ‹ê1é‘ÔlaH[rV‡óT<»}ܤµµp€Ñ‡Âµ©e0ÐN¦ç.Ê?§ísñ€Ãí û�¶æ¤4#YçŽûiæq¤°¦{ ñ’‚,9£– ž:9jTˆÌú§ ÒÆÙN’ !=WjðqHH°Æ,vãÉÔéZ./™wFo›1¦¸Ð'Øe8V 3u:­/Ï{I |@{ñ¢ÑòÃX%;g³{Þ‡œW°Øâºnm"²§dHoãP�Žœ/‘0¸¬æ[j)WåÕ£¿PK D@M|%ѽ ch7.xhtml}VM“ÓF½ó+::„Ý*KŠá¯)K &§ÔXjYÃŽ4bfd¯óëózFòz)Š‹?FÓݯß{ÝöêémghÏÎkÛ_eËâ§Œ¸¯l­ûÝUöió2ÿ9{º~°úáÅ»ç›Þ_Spÿý§ßÞ¼zNY^–=~^–/6/èïß7oßвX–åõemÃ/ey8ŠÃãº]¹ùPÞJør)óç¢u† 11Àôþê±Ë'Ož¤ˆx—U�· ƒáõŸ¯ zïlÅÞ³_•éðÁÊèþ†ZÇÍUæÃѰo™CQyŸQ8|•¾ eüîØœ_ʨD|9ÙÚú(%—_ Ž‘®¯2¾åj œ‡–s5 ¹ò¹í9·.ï¬ãÜÙ}>ÌñÙú:Åb1¤¹,è]êÚâ�Hc›DÃÀUpc R½«Ø^̓±G¹2ìÐjt¥D¥SG=ã½?ž0‹ãü"µ‰¶TR,Xú��=é‚–{ÌÝ�à³,+Àçn½9°ÙsÞ¨* æt�Ô=¿¾ÅYÞ£%$Dš)=¨ZaMê™k€³4È€Þ݈—­$žh*•7£¡­ªnžg·×•øâ8 qcŽ"1’ná–²x´c´u�ªŠæk4ð}ànfxæ§‚P¼ÕbVE[§¹YÀˆýÎ`¬œê½JìW Êôò\ãÚzc•,-Äåà)¶ 1� rŽP’›¤;9Žýh‚ŸM÷år2Å©/’ŽÂ=DîÖÆ'ïÇBDV!|¤=A�,NL Fü£ý œoŒ´¬öJµ5,O5cÅ üe”ùCÀg»¥Š;£Å4¬ M 2�àæ{iáœMA3ÿæ=<ý¸E-øV®„ß÷ª§ÆÙ.­d€{íµÐj``gã`°wNîýxpœ …xkÒ� ”ûÌÇÝiGPš&{ÞJx.4>�ƒí‘yê-zfêPTÞY[Ë:«u-Dî´ãJMDÙ&) âsô¬ÓƹSï-wÓê@ôƾˆúà?Éôg¤”?BëÿPK D@·Ój„ò ch8.xhtml}UmoÛ6þÞ_qÓ—­€-Å-,…ìbKR$E’�Òv)ñl±¡H�¤ìèßÒd °DÞËóÜ=w*?>vè¼²f�­ò“ Ð4V*³_g÷Õ§åoÙÇÍ›ò§ó?Ϫ¿¶Ð²ßÞÿq}uÙ²(¾¾?+Šóê¾]V7×°ÊWEqq›AÖ†Ð(Šãñ˜ßçÖí‹ê®xd÷ÕŠæç\™Q†˜À¿~Åwuzzš<¢- IA�›/WW9l­ P+øË"]¼)µ2Ð:Ü­3F�¾E yã}aìq�| E|w¨ŸeP�1%ª­9íêµdtJWï@Éu†�=Ý-=ºƒjÐ/J,ãÉd�m.¢Ì@пŒ÷nSö›¯Xƒè{Â!xÛaP™ã#6C@ Êx%±æ`è ±&eÐåðÉ:2]¯qÛËm Õ©}À Å…ÎÊAãé÷^4-ÂeUmÏ@þŸÅAüÛo²­l׈�—EÏPKœ5ûMEîáˆú€Ë�h… oPž€1�€z$Þz·œ�ʲ˜\A ÒAc÷bk8#³¦¬ß± $P°»Œ• ¥Mea 4E!;4è²q(ÂT&FEžkŸ>¦:ÃL"uÐÇ:¤2MæP�s�8pêÚ�Ed •h& ‡èC¤ÏGÊ0§ÐŠ]çê]Q7@ÛFh�x@mûˆý�E¤8]ëƒò*¨g|p7Ôcš aŒGi:º¥PôúåfY O¸´0ûAì‰D-¥AC“KZŽÂ¦˜%v›�@�§¡Ã² ×ER†ò 8ªÀ‰'ˆ?³€ä¤VžG³mþGù”÷?Zå§Xˆ§6Í…ŽZWiö8¦5qR“2"¬F¨_ªäùÒÊá…#'aFxP\•LE÷v޼Ħ¼Fx鉹ᯠ床£P!ÍÍ4@O°á"­6Ïwz …„ßE]£“ð‹ïQ<°õ·›íömË;”ÄîÇsLg!ØÆê·s)n-o ímâýC¦Fjˆ³´(¡Ca|2²&6j"H`1úÕ¢yx¶n¢j„Ir‰Òã":{PrÆÄsÆž^ýÐMŽ‘}Ħ¯WÁ_ÏÍ›PK D@!¸kèDÍ ch9.xhtmlµVM“Û6 ½çW ºtwƶêäÒtlg’Ýd²�lêi½I{¤%ØbM‘*Iù#¿¾”ìU¶io=íš@àááA³WÇÚО}ÐÎγé䇌Ø®Ôv;ÏVïÆ?f¯ÏfßÝþr³úcù–ªûåÛw7”�óüó‹›<¿]ÝÒïïW÷h:™æùÛ�eUŒÍOy~8&‡ç·ùê×ü(îÓ©8œÿŸ”±ÌðB Œdl˜ÃwúòåËÎ#Ù²*ñ'êhxñéîînB7έ÷Èý4Ë»‹g3£íŽ*Ï›yâÉp¨˜ã¤!£xjxžE>Æ<ýöl†FåðÏû‡Ö®<ɳÓo=†S\=']"@¡ �]Ç{­Æ±âqã]Á!ŒkW2rÿM ‚õ” íùbÖ,^Û®nÚÈ^,¶^Õ#«L¾µ#Ò 7žÛÈ%­O¸CX�(þ’Ä>óšTÓªÔž)ª[R´W^s„Óæl;æ#m hã| ÏwˆÆGU7†G´|¿|Œ*)� TTÚ”ƒcD{ݨ¢‚}ˆÊKbWr­l)ö–¹ì’õüWË8ÓÖ<¡ŸÕ^ Iš ×4.èÈR‚w=¢ƒŽUºûùÓ½¸ìµP5•_«4ªl×ìϨÆJEœü�å·LkãŠ�äN!r-®õp «›åI¾5ÊÓµT�Ši›þíâ±÷xѪ-JÒ肷ʘSßVÞÃ;Kk'> e�RÚÀÎJÂ}‚W®I¡gιÖV×}˜ ×`JtÉ«ä=×`L%k9"“YÞ,f¥ÞSaPú<Ûèmë9[Ìt½¥à‹y†h[9~?Ÿ4v›‘2qžu$‡ø( œÚó$3IøàüÎ8U‰ežz]€Æ<…‰ŒÍ¬9çS¨Fufýÿñ`‚ ‡µLÍ,DïìvØ¢x`³çñF\`£ÇsEíAÔ.:ê/l²CË‹µþ—ˆU;{*ÀiÚxW'ÛÖêã×Ã-“u)Z©1Î¥Ñ,¸òä8Vº·}ÝxpCç1s‘‹(wºÏÀa¶m |;Ìøb�Q“™Ø¦ó“P ‰�¸*šq½b:Ëqðdü߯VËóÐ"=u¢5÷¯¦yVt€ÎôQFi~ Ÿ‹]«b·õ®ÅyTažø"—NæÄ½ki³X ¥¤ÖE¤R˜¶‡,ªÔe«Ì — ó²ƒP q{Kª[5*9â~4Q˜]òy2£®™>Ý�DIÓ�…“-r´ ©ì¹‰R†Â9(´@´|+F÷€X[¶:hK™}„ÛäOtø T_Ùa �0ikš}às àz…ºB+£ÆØPZ)×#¹êçÞà<)uÝ‚¼ÊàíP½\„FÙKÁ_‹¶í”rp[�Bz¤î€ÿd1Qô-’ ÉŠÖˆŽ²¢D®5yù¼Û&$þ¡ÂŒ�Ѽ*¡^9¯¿8“¼5PT-5¤¬­Š­O´üç€=P³²½ «2‰~ZvC=Ö"ñA i ±ÔuzA&(aÖ¥¦¼WÃí׉Ir±m�õ1¸ëÛãðà��v©�2œY�é™nˆÎ`þGQ¡r-–¨Ç|¯!¡ÍÁËâ[ÞÝB¤ §eJ)p Uɾï7d*L%­²ï²[Nž®Î}hÒ&Ã|B* YzÝ ­ŸÚ;ùB(ŒkqeT”š�Ub< Ń:ÈZ—1èªý¯…]¡¾^DYÕA’�“ùwTx…o¬r¨û‚|¯b-”qŒ=µ’ìà'IwÍ UK`ßñßgý‡Y.†‹gPK D@!A˜Ò8± ch10.xhtml�VÁvÛ6¼ç+¶¼´}O«äR7²òÛiÜÆ©›(/é"W"*`Pûõ�IÙŽÓ×^l Äbggf\¼8Ö†öìƒvö<›Ï~ȈmáJm·çÙÇÕëé�Ù‹å“Å7—¿]¬þ¸½¢*bÿíÇWo¯/(›æù§gy~¹º¤ÏoV7oi>›çùÕ»Œ²*Ææ§?Jø|.ãó¬Œe† é`€±áü+±ó³³³>"íeUâ_ÔÑðòúóŒ.uh\PkmtìyÿâÉÂh»£Êóæ< ±3*æ8+BÈ(v Ÿg‘�1O¿=›û›2ÊŸ‰Ö®ì$íükɰŠWOI—çY­ŽºÖóÔ»u¢å¦«éF…8 QùØ6SeËéÖ«‚7­™†ª�¥;Øly3Ó]0I0I0 Á„`ƒi ЧËE³\„è�Ý.WS<°Ù32ÑyRMóm Æ»Çr å™\/Ë¡Ë?'T³²ŸbÅÊÒšûÜ\Î Ñ5 Õ®fq¨uQ<[äCrZU:t!©È¡/€ þê‚B¡ ËvB^5º¤’ã:9ŠÜ†à<–4…³½¥¢RvËa’ª¾G v¢”²-"l;€ nOE†Êµ¦f¯÷ ÄÑÈO­mOõÈjÔ5Ÿ ˜ÑuÉʘyGÊ(ª�ÐF>P`à+Q—wµ•ÂÓƒQ­-*À¯k� øÈE+äµ6j“6�Gâí ¨‡Ï:è¹`Áêù¯–C ÂÅŸnfô¡¢x圽.�ªvPSm“!iƒÉG³ wÙ$ÏÀ=Ò>O¿u$¥Qȵè]¨6ð¤(FmÙ'?¤d8Y›Ï{¾g*`AOSuA#ŠJãT:Tlé ¼WT<jÔEüLbè“Å‘$';Žì(úpýóêêýÍ�ç‚ÞZd<)òò½–& ¯ÇW“Çm$ŠdÞC¯5ì/eJ/82:DÀp à÷ð<5ÎGú+ž×oÓ¦ýÊv‰ˆQÅïa$cÜa|W´Þ‹áO*#Á– Uïô(óQGÀŒuct©´$×"wÉF°ÆJEz³ZÝÞ�$} Û ,ëz­°Ë>4.ð€ Ý×RˆIÐP<¢ Ó7gzc´ »ˆU�é ˆŠ‘ë&†uÖrO2Ѱ � ŒÆ…8 >hàü^úÿ2xŽ­‡Ò‰<´…�%9‘@@˽Î|TàŒ'"×{µ^ëxóûiã`ãÀV¦ØB&ÎòÝË‹_yz|.A¯0ÑjfWöLH.€ê�Ô�7¥$ÕFW«(ŽÜ à÷ ň(A¿uÅnºå ´ƒ¥jL©CºÄ„ì°þ ’Yî³Èðm=÷L÷ýŒÄÚƒÖb7ºQЉ¾üO³È ‘y’|â¾rùø[>ùPK D@Ã×› ch11.xhtml�WMsÛ6½çW º4™‘Ä:¹4®¬Œc'“Níı•Iz„È•ˆX”Ìüú¾H}YÍôbK"öëíÛ·àäÍc¥ÅšœWÖ\ ÎÆ¿ ™ÜÊ,/_fïG¿ÞLŸM~¹þt5ûûî�(Îß}y{ó界²ìë««,»ž]‹of·7âl|–eï>Ä  ¡>ϲÍf3Þ¼[·Ìf÷Ù#›Ÿ�±Aÿy\„b€Ñ1’1þâ„íÙëׯ“E¾‹YIžR~•4jA>e`憎¤?ŸdõtÒè):=�øà¬YNa&‚ª¢%t¿ŠËƒjZ±±n%�ÈŽó¥ "ÈyQÈÖÐXáŸuFFTÖ„2Ö¼´ÈÿwÅ�'G?Êa¼5†"ÀÛ,Ι=) /6 Åø„"É ÑÄO:ŒT8í;X«ýûåêænÉÊWèÜŠÄGxЇÏ7ˆœõéA|C¹¥Ò²×´. ´Ã‹ËZæ%Ln['ËešÇ.ÁŒ{P&¹!½¦ÑBæ bì³â¼Z´z�ßr€ ¶é Ž´ xˆ8wÎUždçÁ|¦�wݾ±6–ÛÊÉDÎD*!…Ü©9r�s»¦ Ý‚é|ÇŸä÷\Ècòl[‰“¥BW\—¶A#zö|oÀÜ ¥ ©e ·ëë6äaú¸Å[J‹°v�këIƒ'fm�uÁÓ‘RàÒUi#C^¦ï<çHU!/œ<Åà=ÅúLVGÂôÿäè�MUA3ô½� Hã$1}8»1s §�ðfvL¤7gÇ ®×åyýÀ¨_EtšPZ€¶ö ­®1Î_«ÅZˆük²µ¦YQ÷Äç÷j"³V — ClÉ%>]žÖÝzúcÆ•A½Ö Šénò’uB÷+‹ Ê”ƒôOC Åã­TE©ÉÓŒaN¬I ‡®³r‡+‡O¨ª¶Ž5|,n¥iA+³lä³\!æ}îp˜˜8 i çZ«EÛ©-K§5?LÁM®^ÿbBÕT²]ý$ö)¶øñå`ÛzÇâÁLz”ˆ„GÌÐ(×”z‹–i»ÇÃö¦Kø&&Ú^v‘®;„î›y›ÝK¥ý%š±¦{Ê­+:ù¹³>,ÅÏIÌ>3œw-ºn²ëïpm¯H“kïå|®Âíç¡xKÒ@ õªŠ{¬0Åh‡yhjÆõü<>½¥Ê:ìÏÔ±ï~‹}*Ðò=Ñõ¨�UÃã0&ÙAzÐt‰�B/ÆZ-K—ÿcß�¥\·U÷Ù×+´Ä&¬°P,›<ƒÎÎY^Ž�m”Öi $]Ø›vñž…)µiØe–PL‘¡(ìxò¡ýLÕ”"~Œdª"NIÔe§6Oåz‹Üõ©¾î‹{údždY��Ý-DVôÜVµ j®4¤rgkÑÔCœ:¶»·ðM†×%ãE {&øãÈî.ɨ-Àùc^¤ ×v°É9ÖМ©Lb�ÛdTÅóƒáV­ÕNïÔ.�ñôŒ×=ÈÖÖ gË]ä«(A ‘`FR¼#âôéË<àÆî¨âµWbŠR³pØ« GjÉ%h»äœ±^\Œå‹ÓÉž4æR£¡ûì»ÙÌDîmoXÈ4Óœ{BZ§õûE¸Èž6Ć£%îDsû=°€Cc(z�ŠÁŒ ‘V*otàf©¨\:Í{[`VQë·³Ujm’©½åóÂ4w´‰ÆàôhIG�é¼G�Š×ïn?ƒ Àš —Œn¿5ÈÐBEããÕÄN“¡úr;XögcË8øÀ"†ù^4zˆ L}J¨W|Qa¥îèlPàx§“,êàJ-•áŽÅÛëû—¿ÿ"ò|'4‡â»}ÛMË áqÉÓÅî¦ÙÌ×  ˆC÷^g }ïC=‘F/›Ý[fƯ¹ÓgÿPK D@ܽ:—ª ch12.xhtml}VÁŽÛ6½ç+¦>4YÀ’êæÒ$^i6AØ4Aë é‘–F±©�”eÿ}ßPÒÆ X¤83oÞ¼jûúÔ:²ÚÙëÕ&ÿeElKWiÛ\¯¾ìßg¿­^ïžlºùôvÿÏçwÔFœÿüå÷»Û·´ÊŠâïço‹âfC_?ì?ÞÑ&ßÅ»?V´jcì_Å8Žùø§üt‰ŸPЕª�ƒtÂᜂð‰Ë!Ù_tñ:5ˆ´05Œs~*£´„KË¥Oúhש9¤ÔÉ0‰[Š„œ¡E›h ��šT .Oi®ÀPä— h›²ÕGerÚ·øaýØ^šK´‘¦—Y$ùÕº¼’­9Élz’Ç2ŸÐ9‘¡ýIFÿÏINŸz¶Ypƒ/“â¦D} gaáè4<žR¤÷f€ÑUФŽJ›„GRNªèß»ÀKQ÷-?Rd:ˆþ–®*ñ�Â}§u¢kIvT±l±{ÔѬŒÌ:Šˆ&zSÊÊé£ ð­«k #Íy}92çA¤’Ÿ¶Ÿ–â€!s¢ç3(ìhÉù¯Þ ö>�Q԰Ÿ0ÙœU**`ôŒFi`>6þ *çúâƒ>òRêéD¥¹4D©I·ZïFö I Š—ÛJÞãÆò.ôçÖú†œ %!f�£¥ä;ãeâ}0;\Ü»÷H4�ƒ¡g¹$æ–íU�ëåð�ò g3€�LõmjD´²Çh½Ð‚çoÄÒ\GP¼«ï^Þ,ºNü„º,qCÉØ0²ŠÑ1¨lË;}yá[rK[ž0~PS!HØ{ç/㦛ƒN3Ô!6_ÎT ¦\à+dþü(ä«g÷ä_PK D@NÇž¶ ch13.xhtmluVMsÛ6½çWlyiPãys•…8 sÌ«2ŠCÇWYäÇX¤ÿ=›c£Œ øS®ÒÕƒd¾øN>\àöéú*ó½](1h•U[nÙÆETá!,TX8Ë ·Ù,ž|³Õ}o)ÙJ¤M'É^­–ÝjÝð|Hç[1CÒ�".”÷j wä†cqÎÔ®):ªÝhÚu?t¿í�òTöA[ ù2ôU#4ÊÖ€qK{.aöoÏ!†3¹Ñ‘ÐkÈéî”W‘ÍpN5ïØ¸”¢½65D¶øš)çÜPjY‡G½cržZ¥-Œ•­xê}Í5žÓTЛeÑ­–½Ya¸‚�•ÚjU©S«·>!�8ßæ´›y5"›w…ÁVu¹,Ò1aŠ×ÿ(»uç“¡WLuùfŒÃGv÷J›p–/ ¤=N­¨B6g˜^*=X··�¢û÷w·6s&Í{´/5ZöI`éZÛÐq�fÑâÆÀ <Âxa¢¹Éœ>:œÔÝ£« CÞiD›2–ƒ¤Jʼn¯€ê;ÏøÄbãzðÀ(eÛ ×N‘êXعoÔ7³7ÓÙÙX4×2UJ¨Õ¨�$ ÐZ À듸Ú?�.S½ïËá€9��Q<1úäB¡¨‘>T^w1¤„:FðÍžÒºs§í5ÝìUlôã×RÕ_=WÎ×!ÇÝÜ㔳šu«OÇ”=Z©,MM%§ÑâJ᳤ºRBºÓÞÙ´Îj\ËyËŒ³ÛÅ<£C<ìëTzNXïadÌD% ÅÀûœdGÇÙ%C& Þ€p£·‰{˜ï,ÇA’LqfKîm�ÛÐè.QDJ0h"IJºªjçt�ö§A[ú¿Yp!OK9ŠRª©æŽ- ¨X83ÚF®«EAŽ Kr„K±˜Km†®|øQµ�AÓzGˆ“¤h¶íGq;°ntÙC¶î\áVø•�Ó|ÏÅ)ŸÑ�¹2„}&Òóò�Ó­~`hÊTt—6HêƒM; ëOíc¯ 8qœ@ÊÞ'çù©n¼§;(›0s¥tŽx­�· j ${¼à‰2öooŽò wŸ¶g³ãÅFUi Æ`¦hƒaCÁ³o4Ô÷¡IÒF¢'sK÷xž Í[A ¯Ø6Ì8Ëÿ´„9ÝÈŒ“�iŒ;}C´Ý9qßÙ@pCÔ^t¬ffè.•¤ j¸z�ZGsç‡)7¢Õ}•fÿLvZFð€!à¬=·îHç„} Ð‚á ¯Z;CUK‰iëÆØ(ä`}¬<ã#7w˜¦„_!ÓÏ�B~­^üPK D@oa«,mimetypePK D@®•âè¦ö:META-INF/container.xmlPK D@#¾cl¼Œstylesheet.cssPK D@`=X “ütitle_page.xhtmlPK D@4Z‹k$ 3content.opfPK D@ÓHÛöo) Çtoc.ncxPKcˆC@‹ÍsBóL|R[images/img2.pngPKcˆC@dL–¸n6÷8{Uimages/img1.pngPKcˆC@æÛŽ ia;cŒimages/img0.pngPK D@´^4¦1^)f¬ícover-image.pngPK D@9]\&Ï Lcover.xhtmlPK D@A! }?Ì YMch1.xhtmlPK D@º3ð® ¿Rch2.xhtmlPK D@¯5 Wch3.xhtmlPK D@^ö³0F® ]\ch4.xhtmlPK D@õÒMG˜ Êbch5.xhtmlPK D@’Š sŽß ‰gch6.xhtmlPK D@M|%ѽ >mch7.xhtmlPK D@·Ój„ò 6rch8.xhtmlPK D@!¸kèDÍ `vch9.xhtmlPK D@!A˜Ò8± Ë{ch10.xhtmlPK D@Ã×› +�ch11.xhtmlPK D@ܽ:—ª *ˆch12.xhtmlPK D@NÇž¶ R�ch13.xhtmlPK^’content/de/toc.md0000644000175000056700000000226315226251677012474 0ustar0000000000000000Die zwölf Faktoren ================== ## [I. Codebase](./codebase) ### Eine im Versionsmanagementsystem verwaltete Codebase, viele Deployments ## [II. Abhängigkeiten](./dependencies) ### Abhängigkeiten explizit deklarieren und isolieren ## [III. Konfiguration](./config) ### Die Konfiguration in Umgebungsvariablen ablegen ## [IV. Unterstützende Dienste](./backing-services) ### Unterstützende Dienste als angehängte Ressourcen behandeln ## [V. Build, release, run](./build-release-run) ### Build- und Run-Phase strikt trennen ## [VI. Prozesse](./processes) ### Die App als einen oder mehrere Prozesse ausführen ## [VII. Bindung an Ports](./port-binding) ### Dienste durch das Binden von Ports exportieren ## [VIII. Nebenläufigkeit](./concurrency) ### Mit dem Prozess-Modell skalieren ## [IX. Einweggebrauch](./disposability) ### Robuster mit schnellem Start und problemlosen Stopp ## [X. Dev-Prod-Vergleichbarkeit ](./dev-prod-parity) ### Entwicklung, Staging und Produktion so ähnlich wie möglich halten ## [XI. Logs](./logs) ### Logs als Strom von Ereignissen behandeln ## [XII. Admin-Prozesse](./admin-processes) ### Admin/Management-Aufgaben als einmalige Vorgänge behandeln content/zh_cn/logs.md0000644000175000056700000000361215226251677013363 0ustar0000000000000000## XI. 日志 ### 把日志当作事件æµ� *日志* 使得应用程åº�è¿�行的动作å�˜å¾—é€�明。在基于æœ�务器的环境中,日志通常被写在硬盘的一个文件里,但这å�ªæ˜¯ä¸€ç§�输出格å¼�。 日志应该是 [事件æµ�](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/) 的汇总,将所有è¿�行中进程和å�Žç«¯æœ�务的输出æµ�按照时间顺åº�收集起æ�¥ã€‚尽管在回溯问题时å�¯èƒ½éœ€è¦�看很多行,日志最原始的格å¼�确实是一个事件一行。日志没有确定开始和结æ�Ÿï¼Œä½†éš�ç�€åº”用在è¿�行会æŒ�续的增加。 **12-factor应用本身从ä¸�考虑存储自己的输出æµ�。** ä¸�应该试图去写或者管ç�†æ—¥å¿—文件。相å��,æ¯�一个è¿�行的进程都会直接的标准输出(`stdout`)事件æµ�。开å�‘环境中,开å�‘人员å�¯ä»¥é€šè¿‡è¿™äº›æ•°æ�®æµ�,实时在终端看到应用的活动。 在预å�‘布或线上部署中,æ¯�个进程的输出æµ�ç”±è¿�行环境截获,并将其他输出æµ�æ•´ç�†åœ¨ä¸€èµ·ï¼Œç„¶å�Žä¸€å¹¶å�‘é€�给一个或多个最终的处ç�†ç¨‹åº�,用于查看或是长期存档。这些存档路径对于应用æ�¥è¯´ä¸�å�¯è§�也ä¸�å�¯é…�置,而是完全交给程åº�çš„è¿�行环境管ç�†ã€‚类似 [Logplex](https://github.com/heroku/logplex) å’Œ [Fluentd](https://github.com/fluent/fluentd) 的开æº�工具å�¯ä»¥è¾¾åˆ°è¿™ä¸ªç›®çš„。 这些事件æµ�å�¯ä»¥è¾“出至文件,或者在终端实时观察。最é‡�è¦�的,输出æµ�å�¯ä»¥å�‘é€�到 [Splunk](http://www.splunk.com/) 这样的日志索引å�Šåˆ†æž�系统,或 [Hadoop/Hive](http://hive.apache.org/) 这样的通用数æ�®å­˜å‚¨ç³»ç»Ÿã€‚这些系统为查看应用的历å�²æ´»åЍæ��供了强大而ç�µæ´»çš„功能,包括: * 找出过去一段时间特殊的事件。 * 图形化一个大规模的趋势,比如æ¯�分钟的请求é‡�。 * æ ¹æ�®ç”¨æˆ·å®šä¹‰çš„æ�¡ä»¶å®žæ—¶è§¦å�‘警报,比如æ¯�分钟的报错超过æŸ�个警戒线。 content/it/background.md0000644000175000056700000000275315226251677014056 0ustar0000000000000000Background ========== Chi ha scritto questo documento è stato coinvolto direttamente nella realizzazione e nel deployment di centinaia di applicazioni, e ha indirettamente assistito allo sviluppo, le operazioni e lo scaling di centinaia (o migliaia) di app tramite il proprio lavoro sulla piattaforma [Heroku](http://www.heroku.com/). Questo documento riassume tutta quella che è stata la nostra esperienza, basata sull'osservazione di un grande numero di applicazioni SaaS. Si tratta di una "triangolazione" di pratiche di sviluppo ideali (con una particolare attenzione alla crescita organica dell'app nel tempo), la collaborazione dinamica nel corso del tempo tra gli sviluppatori sulla codebase e la necessità di evitare i costi di [software erosion](http://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts/). La nostra motivazione è di far crescere la consapevolezza intorno ad alcuni problemi sistemici che abbiamo scoperto nello sviluppo di applicazioni moderne, cercando di fornire un vocabolario condiviso per la discussione di tali problemi. Oltre, ovviamente, a offrire delle soluzioni concettuali a queste situazioni (senza però tralasciare il fattore tecnologia). Questo format si rifà ai libri di Martin Fowler *[Patterns of Enterprise Application Architecture](http://books.google.com/books/about/Patterns_of_enterprise_application_archi.html?id=FyWZt5DdvFkC)* e *[Refactoring](http://books.google.com/books/about/Refactoring.html?id=1MsETFPD3I0C)*. content/th/admin-processes.md0000644000175000056700000000755015226251677015032 0ustar0000000000000000## XII. Admin processes ### รันงานของผู้ดูà¹�ลระบบ/à¸�ารจัดà¸�ารให้เป็นà¸�ระบวนà¸�ารà¹�บบครั้งเดียว [process formation](./concurrency) เป็นอาร์เรย์ของ process ที่ใช้ในà¸�ารทำธุรà¸�ิจปรà¸�ติของ app (เช่นà¸�ารจัดà¸�าร reqeust ของเว็บ) ขณะทำงาน developer มัà¸�ต้องà¸�ารทำà¸�ารดูà¹�ลหรือบำรุงรัà¸�ษาเพียงคนเดียวสำหรับ app เช่น: * รันà¸�ารย้ายข้อมูลà¸�านข้อมูล (เช่น `manage.py migrate` ใน Django, `rake db:migrate` ใน Rails) * รันคอนโซล (เป็นที่รู้จัà¸�ในชื่อ [REPL](http://en.wikipedia.org/wiki/Read-eval-print_loop) shell) เพื่อรัน code à¹�บบทันทีทันใดหรือตรวจสอบโมเดลของ app ที่ติดต่อà¸�ับà¸�านข้อมูลทันที ภาษาคอมพิวเตอร์ส่วนใหà¸�่มี REPL โดยà¸�ารรัน interpreter โดยไม่ต้องมี argument ใดๆ (เช่น `python` หรือ `perl`) หรือในบางà¸�รณีมีà¸�ารà¹�ยà¸�คำสั่ง (เช่น `irb` สำหรับ Ruby, `rails console` สำหรับ Rails) * รันสคริปต์ครั้งเดียวที่ commit ไปที่ repo ของ app (เช่น `php scripts/fix_bad_records.php`) à¸�ารดูà¹�ล process ครั้งเดียวควรจะทำงานในสภาพà¹�วดล้อมที่เหมือนà¸�ับทั้วไป [long-running processes](./processes) สำหรับ app ซึ่งทำงานà¸�ับ [release](./build-release-run) ใช้ [codebase](./codebase) and [à¸�ารตั้งค่า](./config) เดียวà¸�ันà¸�ับ process ใดๆที่ทำงานà¸�ับ release ผู้ดูà¹�ลระบบของ code จำเป็นต้อง ship ด้วย application code เพื่อหลีà¸�เลี่ยงปัà¸�หาà¸�ารประสาน (synchronization) เทคนิค [dependency isolation](./dependencies) เดียวà¸�ันควรจะใช้à¸�ับชนิดของ process ทั้งหมด ตัวอย่างเช่น ถ้า Ruby web process ใช้คำสั่ง `bundle exec thin start` ดังนั้นà¸�ารย้ายข้อมูลà¸�านข้อมูลควรจะใช้คำสั่ง `bundle exec rake db:migrate` ในทำนองเดียวà¸�ันà¸�ับ Python program ใช้ Virtualenv ควรจะใช้คำสั่ง `bin/python` สำหรับทำงานทั้ง Tornado webserver à¹�ละà¸�ารดูà¹�ลระบบ process `manage.py` ใดๆ Twelve-factor ชื่นชอบภาษาคอมพิวเตอร์ที่มี PERL shell out of the box เป็นอย่างมาà¸� à¹�ละซึ่งทำให้ง่ายสำหรับรันสคริปต์ครั้งเดียว ใน local deploy, developer ใช้à¸�ระบวนà¸�ารดูà¹�ลระบบครั้งเดียวโดยใช้คำสั่ง shell ข้างใน app ใน production deploy, developer สามารถใช้ ssh หรือคำสั่งรีโมทอื่นที่à¸�ลไà¸�à¸�ำทำงานโดยสภาพà¹�วดล้อมà¸�ารดำเนินงานของ deploy เพื่อรัน process content/es/who.md0000644000175000056700000000035215226251677012520 0ustar0000000000000000¿Quién debería leer este documento? =================================== Cualquier desarrollador que construya aplicaciones y las ejecute como un servicio. Ingenieros de operaciones que desplieguen y gestionen dichas aplicaciones. content/it/processes.md0000644000175000056700000000472215226251677013743 0ustar0000000000000000## VI. Processi ### Esegui l'applicazione come uno o più processi stateless L'app viene eseguita nell'ambiente di esecuzione come uno o più *processi*. Nel caso più semplice, il codice non è che uno script stand-alone, l'ambiente di esecuzione è il laptop dello sviluppatore e il processo viene lanciato tramite linea di comando (per esempio, `python my_script.py`). Tuttavia, il deployment in produzione di un'app sofisticata potrebbe usare più [tipologie di processo, istanziate in zero o più processi](./concurrency). ***I processi twelve-factor sono stateless (senza stato) e [share-nothing](http://en.wikipedia.org/wiki/Shared_nothing_architecture).** Tutti i dati che devono persistere devono essere memorizzati in un [backing service](./backing-services), come per esempio un database. Lo spazio di memoria o il filesystem di un processo possono essere visti come una "singola transazione" breve. Come il download di un file, le successive operazioni su di esso e infine la memorizzazione del risultato sul database. Un'app twelve-factor non assume mai che qualsiasi cosa messa in cache sarà poi disponibile successivamente -- con tanti processi in esecuzione, le possibilità che una certa richiesta venga servita da un altro processo sono molto alte. Comunque, anche nel caso in cui si usi un singolo processo in esecuzione, un riavvio (dovuto a deployment di codice, cambio di file di configurazione e così via) resetterà lo stato in cui si trova il sistema. I packager di asset (come [Jammit](http://documentcloud.github.com/jammit/) o [django-compressor](http://django-compressor.readthedocs.org/)) usano il filesystem come cache per gli asset compilati. Un'app twelve-factor vuole questa compilazione durante la [fase di build](./build-release-run), così come [l'asset pipeline di Rails](http://guides.rubyonrails.org/asset_pipeline.html), e non a runtime. Alcuni sistemi web si basano inoltre sulle cosiddette ["sticky sessions"](http://en.wikipedia.org/wiki/Load_balancing_%28computing%29#Persistence) -- che consistono nel mettere in cache i dati di sessione dell'utente presenti nella memoria del processo, aspettandosi future richieste identiche dallo stesso visitatore, venendo quindi reindirizzati allo stesso processo. Le sticky session sono una palese violazione della metodologia twelve-factor. I dati di sessione sono un ottimo candidato per quei sistemi di datastore che offrono la feature di scadenza, come [Memcached](http://memcached.org/) o [Redis](http://redis.io/). content/ko/port-binding.md0000644000175000056700000000446415226251677014331 0ustar0000000000000000## VII. í�¬íЏ ë°”ì�¸ë”© ### í�¬íЏ ë°”ì�¸ë”©ì�„ 사용해서 서비스를 공개함 웹앱ì�€ 웹서버 컨테ì�´ë„ˆ ë‚´ë¶€ì—�서 실행ë�˜ê¸°ë�„ 합니다. 예를 들어, PHP 앱ì�€ [Apache HTTPD](http://httpd.apache.org/)ì�˜ 모듈로 실행ë�  수ë�„ 있고, Java 앱ì�€ [Tomcat](http://tomcat.apache.org/) ë‚´ë¶€ì—�서 실행ë�  수ë�„ 있습니다. **Twelve-Factor 앱ì�€ 완전히 ë�…립ì �**ì�´ë©° 웹서버가 웹 서비스를 만들기 위해 처리하는 실행환경ì—� 대한 런타임 ì�¸ì �ì…˜ì—� ì�˜ì¡´í•˜ì§€ 않습니다. Twelve-Factor 웹 앱ì�€ **í�¬íŠ¸ë¥¼ ë°”ì�¸ë”©í•˜ì—¬ HTTP 서비스로 공개ë�˜ë©°** ê·¸ í�¬íŠ¸ë¡œ 들어오는 요청ì�„ 기다립니다. 로컬 개발 환경ì—�서는 `http://localhost:5000`ê³¼ ê°™ì�€ 주소를 통해 개발ìž�ê°€ 애플리케ì�´ì…˜ 서비스ì—� 접근할 수 있습니다. ë°°í�¬ì—�서는 ë�¼ìš°íŒ… ë ˆì�´ì–´ê°€ 외부ì—� 공개ë�œ 호스트명으로 들어온 요청ì�„ í�¬íЏì—� ë°”ì�¸ë”©ë�œ 웹 프로세스ì—� 전달 합니다. ì�´ëŠ” ì�¼ë°˜ì �으로 [종ì†�ì„  ì„ ì–¸](./dependencies)ì—� 웹서버 ë�¼ì�´ë¸ŒëŸ¬ë¦¬ë¥¼ 추가함으로ì�¨ 구현ë�©ë‹ˆë‹¤. 예를 들어, 파ì�´ì�¬ì�˜ [Tornado](http://www.tornadoweb.org/)나 루비ì�˜ [Thin](http://code.macournoyer.com/thin/)ì�´ë‚˜ ìž�바와 JVM 기반 언어들ì�„ 위한 [Jetty](http://www.eclipse.org/jetty/)ê°€ 있습니다. ì�´ê²ƒë“¤ì�€ ì „ì �으로 *유저 스페ì�´ìФ* 즉, 애플리케ì�´ì…˜ì�˜ 코드 ë‚´ì—�서 처리ë�©ë‹ˆë‹¤. 실행 환경과ì�˜ 규약ì�€ 요청ì�„ 처리하기 위해 í�¬íŠ¸ë¥¼ ë°”ì�¸ë”©í•˜ëŠ” 것입니다. í�¬íЏ ë°”ì�¸ë”©ì—� ì�˜í•´ 공개ë�˜ëŠ” 서비스는 HTTP ë¿�ë§Œì�´ 아닙니다. ê±°ì�˜ 모든 종류ì�˜ 서버 소프트웨어는 í�¬íŠ¸ë¥¼ ë°”ì�¸ë”©í•˜ê³  요청ì�´ 들어오길 기다리는 프로세스를 통해 실행ë�  수 있습니다. 예를 들면, [ejabberd](http://www.ejabberd.im/) ([XMPP](http://xmpp.org/)ì�„ 따름)나 [Redis](http://redis.io/) ([Redis protocol](http://redis.io/topics/protocol)ì�„ 따름) 등ì�´ 있습니다. í�¬íЏ ë°”ì�¸ë”©ì�„ 사용한다는 것ì�€ 하나ì�˜ 앱ì�´ 다른 앱ì�„ 위한 백엔드 서비스가 ë�  수 있다는 것ì�„ ì�˜ë¯¸í•œë‹¤ëŠ” ì �ì—� 주목합시다. 백엔드 앱ì�˜ URLì�„ 사용할 앱ì�˜ [설정](./config)ì�˜ 리소스 핸들로 추가하는 ë°©ì‹�으로 앱ì�´ 다른 앱ì�„ 백엔드 서비스로 사용할 수 있습니다. content/tr/dependencies.md0000644000175000056700000000535715226251677014401 0ustar0000000000000000## II. Bağımlıklar ### Bağımlıkları açık bir ÅŸekilde açıklama ve ayırma ÇoÄŸu programlama dili destek kitaplıklarını dağıtmak için bir paketleme sistemi sunar, Perl için [CPAN](http://www.cpan.org/), Ruby için [Rubygems](http://rubygems.org/). Bir paketleme sistemi aracılığıyla yüklenen kütüphaneler, sistem genelinde ("site paketleri" olarak bilinir) yüklenebilir veya uygulamanın bulunduÄŸu dizine ("saÄŸlayıcı" veya "paketleme" olarak bilinir) dahil edilebilir. **On iki faktör bir uygulama asla sistem çapında paketlerin gizli var olmasına dayanmaz.** Bir *bağımlılık bildirimi* ile tüm bağımlılıkları tamamen ve eksiksiz olarak bildirir. Üstelik bağımlılıkların çevredeki sistemden sızmamasını saÄŸlamak için yürütme sırasında bir *bağımlılık yalıtım* aracı kullanılır. Tam ve açık bağımlılık belirtimi hem üretim hem de geliÅŸtirme için eÅŸit olarak uygulanmaktadır. ÖrneÄŸin, Ruby için [Bundler](https://bundler.io/), bağımlılık bildirimi için `Gemfile` manifest formatını ve bağımlılık yalıtımı için `bundle exec`'i önerir. Python'da bu adımlar için iki ayrı araç bulunur: [Pip](http://www.pip-installer.org/en/latest/), bildirimde ve [Virtualenv'de](http://www.virtualenv.org/en/latest/) yalıtımda kullanılır. C bile bağımlılık bildirimi için [Autoconf'a](http://www.gnu.org/s/autoconf/) sahiptir ve bağımlılık yalıtımı statik link ile saÄŸlanır. Ne olursa olsun birbiriyle uyumlu çalışan yazılım uygulaması, bağımlılık bildirimi ve bağımlılık yalıtımı birlikte kullanılmalıdır, sadece herhangi birinin olması on iki faktör için yeterli deÄŸildir. Açık bağımlılık bildiriminin bir faydası da uygulamaya yeni olan geliÅŸtiriciler için kurulumu kolaylaÅŸtırır. Yeni geliÅŸtirici geliÅŸtirme aracında uygulamanın kod tabanını kontrol edebilir, ön koÅŸul olarak dil çalıştırma platformu ve bağımlılık yöneticisinin yüklenmiÅŸ olmasını ister. Rastgele olmayan *derleme komutları* ile birlikte uygulama kodunun çalışması için ihtiyaç duyulan her ÅŸeyi yükleyebilecekler. ÖrneÄŸin, Clojure/[Leiningen](https://github.com/technomancy/leiningen#readme) için `lein deps` iken, Ruby/Bundler için `bundle install`'dir. On iki faktör uygulamaları ayrıca herhangi bir sistem aracının kapalı olmasına güvenmez. Örnekler `ImageMagick` yada `curl` kullanımını içerir. Bu araçlar çoÄŸu sistemde var olabilse de, uygulamanın gelecekte çalışabileceÄŸi sistemlerde bu araçların var olup olmayacağının veya bu araçların sürümlerinin uygulamayla uyumlu olup olmayacağının garantisi yoktur. Uygulamanın bir sistem aracına geçirilmesi gerekiyorsa, o aracın uygulamayı saÄŸlaması gerekiyor. content/uk/build-release-run.md0000644000175000056700000001040315226251677015250 0ustar0000000000000000## V. Збірка, реліз, виконаннÑ� ### Суворо відокремлюйте етапи збірки та виконаннÑ� [Кодова база](./codebase) перетворюєтьÑ�Ñ� в розгортаннÑ� (крім розгортаннÑ� длÑ� розробки) у три етапи: * *Етап збірки* — це транÑ�формаціÑ�, Ñ�ка перетворює код в репозиторії у пакунок, що може бути запущений, Ñ– Ñ�кий називаєтьÑ�Ñ� *збірка*. ВикориÑ�товуючи верÑ�Ñ–ÑŽ коду за вказаним у процеÑ�Ñ– розгортаннÑ� коммітом, етап збірки завантажує [залежноÑ�ті](./dependencies) та компілює бінарні файли Ñ– реÑ�урÑ�и (assets). * *Етап релізу* приймає збірку, отриману на етапі збірки, Ñ– об'єднує Ñ—Ñ— з поточною [конфігурацією](./config) розгортаннÑ�. Отриманий *реліз* міÑ�тить збірку Ñ– конфігурацію Ñ– готовий до негайного запуÑ�ку в Ñ�ередовищі виконаннÑ�. * *Етап виконаннÑ�* (також відомий Ñ�к "runtime") запуÑ�кає заÑ�тоÑ�унок у Ñ�ередовищі виконаннÑ�, увімкнувши деÑ�кий набір [процеÑ�ів](./processes) заÑ�тоÑ�унку з певного релізу. ![Код Ñ�тає збіркою, Ñ�ка поєднуєтьÑ�Ñ� з конфігурацією длÑ� Ñ�твореннÑ� релізу.](/images/release.png) **ЗаÑ�тоÑ�унок дванадцÑ�ти факторів дотримуєтьÑ�Ñ� Ñ�уворого відокремленнÑ� етапів збірки, релізу Ñ– виконаннÑ�.** Ð�априклад, не можна вноÑ�ити зміни в код під чаÑ� етапу виконаннÑ�, оÑ�кільки немає Ñ�поÑ�обу поширити ці зміни назад на етап збірки. ІнÑ�трументи розгортаннÑ�, Ñ�к правило, надають заÑ�оби керуваннÑ� релізами, Ñ�кі дають можливіÑ�ть відкату до попередньої верÑ�Ñ–Ñ—. Ð�априклад, інÑ�трумент розгортаннÑ� [Capistrano](https://github.com/capistrano/capistrano/wiki) зберігає релізи в підкаталог з назвою `releases`, де поточний реліз Ñ” Ñ�имволічним поÑ�иланнÑ�м на каталог поточного релізу. Команда Capistrano `rollback` дає можливіÑ�ть швидко виконати відкат до попередньої верÑ�Ñ–Ñ—. Кожен реліз повинен завжди мати унікальний ідентифікатор, наприклад, мітку чаÑ�у релізу (наприклад, `2011-04-06-20:32:17`) або номер, що зроÑ�тає (наприклад, `v100`). Релізи можуть тільки додаватиÑ�Ñ�, неможливо змінити реліз піÑ�лÑ� його Ñ�твореннÑ�. Будь-Ñ�кі зміни мають Ñ�творювати новий реліз. Збірка ініцюєтьÑ�Ñ� розробником заÑ�тоÑ�унку щоразу при розгортанні нового коду. ЗапуÑ�к етапу виконаннÑ�, навпаки, може відбуватиÑ�Ñ� автоматично в таких випадках, Ñ�к перезавантаженнÑ� Ñ�ервера або перезапуÑ�к процеÑ�у, шо впав, менеджером процеÑ�ів. Таким чином, етап виконаннÑ� має бути макÑ�имально технічно проÑ�тим, бо проблеми, Ñ�кі заважають заÑ�тоÑ�унку запуÑ�титиÑ�Ñ�, можуть призвеÑ�ти до його зупинки поÑ�еред ночі, коли розробників немає на міÑ�ці. Етап збірки може бути більш Ñ�кладним, бо можливі помилки завжди видимі розробнику, Ñ�кий запуÑ�тив процеÑ� розгортаннÑ�.content/ru/codebase.md0000644000175000056700000001005415226251677013507 0ustar0000000000000000## I. КодоваÑ� база ### Одна кодоваÑ� база, отÑ�леживаемаÑ� в Ñ�иÑ�теме контролÑ� верÑ�ий, -- множеÑ�тво развёртываний Приложение двенадцати факторов вÑ�егда отÑ�леживаетÑ�Ñ� в Ñ�иÑ�теме контролÑ� верÑ�ий, такой как [Git](http://git-scm.com/), [Mercurial](https://www.mercurial-scm.org/) или [Subversion](http://subversion.apache.org/). КопиÑ� базы данных отÑ�леживаемых верÑ�ий называетÑ�Ñ� *репозиторием кода (code repository)*, что чаÑ�то Ñ�окращаетÑ�Ñ� до *code repo* или проÑ�то до *репозиторий (repo)* *КодоваÑ� база* -- Ñ�то один репозиторий (в централизованных Ñ�иÑ�темах контролÑ� верÑ�ий, как Subversion) или множеÑ�тво репозиториев, имеющих общие начальные коммиты (в децентрализованных Ñ�иÑ�темах контролÑ� верÑ�ий, как Git). ![Одна кодоваÑ� база -- множеÑ�тво развёртываний](/images/codebase-deploys.png) Ð’Ñ�егда еÑ�ть однозначное Ñ�оответÑ�твие между кодовой базой и приложением: * ЕÑ�ли еÑ�ть неÑ�колько кодовых баз, то Ñ�то не приложение — Ñ�то раÑ�пределённаÑ� Ñ�иÑ�тема. Каждый компонент в раÑ�пределённой Ñ�иÑ�теме Ñ�влÑ�етÑ�Ñ� приложением и каждый компонент может индивидуально Ñ�оответÑ�твовать двенадцати факторам. * Факт того, что неÑ�колько приложений Ñ�овмеÑ�тно иÑ�пользуют тот же Ñ�амый код, Ñ�влÑ�етÑ�Ñ� нарушением двенадцати факторов. Решением в данной Ñ�итуации Ñ�влÑ�етÑ�Ñ� выделение общего кода в библиотеки, которые могут быть подключены через [менеджер завиÑ�имоÑ�тей](./dependencies). СущеÑ�твует только одна кодоваÑ� база длÑ� каждого приложениÑ�, но может быть множеÑ�тво развёртываний одного и того же приложениÑ�. *Развёрнутым приложением (deploy)* Ñ�влÑ�етÑ�Ñ� запущенный Ñ�кземплÑ�Ñ€ приложениÑ�. Как правило, Ñ�то рабочее развёртывание Ñ�айта и одно или неÑ�колько промежуточных развёртываний Ñ�айта. Кроме того каждый разработчик имеет копию приложениÑ�, запущенного в его локальном окружении разработки, каждаÑ� из которых также квалифицируетÑ�Ñ� как развёрнутое приложение (deploy). КодоваÑ� база обÑ�зана быть единой длÑ� вÑ�ех развёртываний, однако разные верÑ�ии одной кодовой базы могут выполнÑ�тьÑ�Ñ� в каждом из развёртываний. Ð�апример разработчик может иметь некоторые изменениÑ� которые ещё не добавлены в промежуточное развёртывание; промежуточное развёртывание может иметь некоторые изменениÑ�, которые ещё не добавлены в рабочее развёртывание. Однако, вÑ�е Ñ�ти развёртываниÑ� иÑ�пользуют одну и ту же кодовую базу, таким образом можно их идентифицировать как разные развёртываниÑ� одного и того же приложениÑ�. content/tr/concurrency.md0000644000175000056700000000602615226251677014277 0ustar0000000000000000## VIII. EÅŸ Zamanlılık ### Süreç modeli yardımıyla dağıtıklaÅŸtırma Herhangi bir bilgisayar programı bir kere çalıştığı zaman bir veya daha fazla süreç tarafından temsil edilir. Web uygulamaları çeÅŸitli süreç çalışma formlarını alır. ÖrneÄŸin, Php süreçleri Apache'nin çocuk süreçleri olarak çalışır, istek üzerine talep hacmine tarafından ihtiyaç duyulduÄŸunda baÅŸlatılır. Java süreçleri, karşıt yaklaşımı benimser; JVM, baÅŸlangıçta çok sayıda sistem kaynağı (CPU ve bellek) ayıran büyük bir uber iÅŸlemi saÄŸlar ve eÅŸzamanlılık iÅŸ parçacıkları aracılığıyla dahili olarak yönetilir. Her iki durumda, çalışan süreçler, uygulamanın geliÅŸtiricilerine yalnızca minimum düzeyde görünürdür. ![Ölçek, çalışan süreçler olarak ifade edilir, iÅŸ yükü çeÅŸitliliÄŸi, süreç tipi olarak tanımlanır.](/images/process-types.png) **On iki faktör uygulamasında, süreçler birinci sınıf üyelerdir.** On iki faktör uygulamasındaki süreçler [arka planda çalışan servis programları için olan unix süreç modelinden](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/) güçlü ipuçları alır. Bu modeli kullanarak geliÅŸtirici uygulamasını her bir tip iÅŸe bir *süreç tipi* atayarak, ayrı iÅŸ yüklerini kontrol etmek için uygulamasını planlayabilir. ÖrneÄŸin, HTTP istekleri web süreçleri tarafından iÅŸlenir ve uzun çalışan arkaplan görevleri, işçi süreçler tarafından iÅŸlenir. Bu, bireysel süreçlerin kendi dahili çoklu iÅŸlemelerini içermiyor deÄŸil, çalışma zamanı içindeki iÅŸ parçacıkları aracılığıyla VM, veya [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http://twistedmatrix.com/trac/), [Node.js](http://nodejs.org/) gibi araçlarda bulunan asenkron model. Fakat bireysel VM yalnızca çok aşırı büyüyebilir (dikey ölçekte), bu yüzden uygulama aynı zamanda çoklu fiziksel makinelerde çalışan çoklu süreçleri içerebilmelidir. Bu süreç modeli, konu ölçeklendirme zamanına geldiÄŸinde gerçekten çok baÅŸarılıdır. Paylaşımsız, yatay olarak bölümlenebilir bir doÄŸası olan on iki faktör uygulama süreçleri, daha fazla eÅŸ zamanlılık eklemenin kolay ve güvenilir bir iÅŸlem olduÄŸu anlamına gelir. Süreç tipleri dizisi ve her bir tipin süreçlerinin numarası *süreç oluÅŸumu* olarak bilinir. On iki faktör uygulama süreçleri [asla arka planda çalışmamalı](http://dustin.github.com/2010/02/28/running-processes.html) ya da PID dosyalarını yazmamalıdır. Bunun yerine, [çıktı akışlarını](./logs) kontrol etmek, çökmüş süreçlere cevap vermek, kullanıcı baÅŸlatımlı tekrar baÅŸlatma ve kapatmaları iÅŸlemek için iÅŸletim sistemlerinin süreç yöneticisine( [systemd](https://www.freedesktop.org/wiki/Software/systemd/) gibi bulut platformunda yayınlanmış süreç yöneticisi veya geliÅŸtirme sürecinde [Foreman](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html)'e benzer araçlar ) dayanır. content/de/background.md0000644000175000056700000000265415226251677014032 0ustar0000000000000000Hintergrund ========== Die Mitwirkenden an diesem Dokument waren direkt beteiligt an der Entwicklung und dem Deployment von hunderten von Apps und wurden Zeugen bei der Entwicklung, beim Betrieb und der Skalierung von hunderttausenden von Apps im Rahmen unserer Arbeit an der [Heroku](http://www.heroku.com/)-Plattform. Dieses Dokument ist eine Synthese all unserer Erfahrungen und der Beobachtungen einer großen Bandbreite von Software-As-A-Service Apps. Es ist eine Bestimmung der idealen Praktiken bei der App-Entwicklung mit besonderem Augenmerk auf die Dynamik des organischen Wachstums einer App über die Zeit, die Dynamik der Zusammenarbeit zwischen den Entwicklern die an einer Codebase zusammenarbeiten und der [Vermeidung der Kosten von Software-Erosion](http://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts/). Unsere Motivation ist, das Bewusstsein zu schärfen für systembedingte Probleme in der aktuellen Applikationsentwicklung, ein gemeinsames Vokabular zur Diskussion dieser Probleme zu liefern und ein Lösungsportfolio zu diesen Problemen mit einer zugehörigen Terminologie anzubieten. Das Format ist angelehnt an Martin Fowlers Bücher *[Patterns of Enterprise Application Architecture](http://books.google.com/books/about/Patterns_of_enterprise_application_archi.html?id=FyWZt5DdvFkC)* und *[Refactoring](http://books.google.com/books/about/Refactoring.html?id=1MsETFPD3I0C)*. content/de/dependencies.md0000644000175000056700000000536615226251677014344 0ustar0000000000000000## II. Abhängigkeiten ### Abhängigkeiten explizit deklarieren und isolieren Die meisten Programmiersprachen bieten ein System an, um unterstützende Bibliotheken zu verbreiten, wie [CPAN](http://www.cpan.org/) für Perl oder [Rubygems](http://rubygems.org/) für Ruby. Aus einem Paketsystem stammende Bibliotheken können systemweit installiert werden (auch "Site Packages" genannt) oder in ein Verzeichnis der App beschränkt werden (genannt "vendoring" oder "bundling" - deutsch auch "mitliefern"). **Eine Zwölf-Faktor-App verlässt sich nie auf die Existenz von systemweiten Paketen.** Sie deklariert alle Abhängigkeiten vollständig und korrekt über eine *Abhängigkeitsdeklaration*. Weiter benutzt sie zur Laufzeit ein Werkzeug zur *Isolation von Abhängigkeiten* um sicherzustellen, dass keine impliziten Abhängigkeiten aus dem umgebenden System "hereinsickern". Die vollständige und explizite Spezifikation der Abhängigkeiten wird gleichermaßen in Produktion und Entwicklung angewandt. So bietet zum Beispiel [Bundler](https://bundler.io/) für Ruby das Format `Gemfile` zur Abhängigkeitsdeklaration und `bundle exec` zur Isolation von Abhängigkeiten. In Python gibt es für diese Schritte zwei unterschiedliche Werkzeuge -- [Pip](http://www.pip-installer.org/en/latest/) für die Deklaration und [Virtualenv](http://www.virtualenv.org/en/latest/) für die Isolation. Selbst C hat [Autoconf](http://www.gnu.org/s/autoconf/) zur Deklaration der Abhängigkeiten, und statisches Linken kann für Isolation sorgen. Unabhängig von den Werkzeugen müssen Abhängigkeitsdeklaration und Isolation immer zusammen benutzt werden -- eines alleine genügt für die zwölf Faktoren nicht. Ein Nutzen der expliziten Abhängigkeitsdeklaration ist das einfachere Aufsetzen der App für neue Entwickler. Neue Entwickler können die Codebase der App auf ihre Entwicklungsmaschine auschecken und brauchen dazu nur eine Sprach-Runtime und eine Abhängigkeitsverwaltung. Um die App zum Laufen zu bringen wird lediglich ein deterministisches *Build-Kommando* benötigt. So ist zum Beispiel das Build-Kommando für Ruby/Bundler `bundle install` und für Clojure/[Leiningen](https://github.com/technomancy/leiningen#readme) ist es `lein deps`. Zwölf-Faktor-Apps verlassen sich auch nicht auf die implizite Existenz irgendwelcher Systemwerkzeuge. Beispiele dafür sind Shell-Aufrufe von ImageMagick oder `curl`. Auch wenn diese Werkzeuge auf vielen und sogar den meisten Systemen vorhanden sind, gibt es keine Garantie, dass sie auf allen Systemen vorhanden sind, auf denen die App in Zukunft laufen wird, oder dass die Werkzeug-Version die in Zukunft auf einem System vorhanden sein wird, kompatibel ist. Wenn die App per Shell auf ein Systemwerkzeug zugreift, sollte die App das Werkzeug mitliefern. content/es/backing-services.md0000644000175000056700000000600715226251677015145 0ustar0000000000000000## IV. Backing services ### Tratar a los "backing services" como recursos conectables Un *backing service* es cualquier recurso que la aplicación puede consumir a través de la red como parte de su funcionamiento habitual. Entre otros ejemplos, podemos encontrar bases de datos (como [MySQL](http://dev.mysql.com/) o [CouchDB](http://couchdb.apache.org/)), los sistemas de mensajería y de colas (como [RabbitMQ](http://www.rabbitmq.com/) o [Beanstalkd](https://beanstalkd.github.io)), los servicios SMTP de email (como [Postfix](http://www.postfix.org/)), y los sistemas de cache (como [Memcached](http://memcached.org/)). Tradicionalmente, los "backing services" (como las bases de datos) han sido gestionadas por los mismos administradores de sistemas que despliegan la aplicacion en producción. Además de esos servicios gestionados localmente, las aplicaciones también pueden usar servicios proporcionados y gestionados por terceros, como por ejemplo los servicios SMTP ([Postmark](http://postmarkapp.com/)), los servicios de recopilación de métricas (como [New Relic](http://newrelic.com/) o [Loggly](http://www.loggly.com/)), los servicios de activos binarios (como [Amazon S3](http://aws.amazon.com/s3/)), e incluso servicios que se consumen accediendo a ellos mediante un API (como [Twitter](http://dev.twitter.com/), [Google Maps](https://developers.google.com/maps/), o [Last.fm](http://www.last.fm/api)). **El código de una aplicación "twelve-factor" no hace distinciones entre servicios locales y de terceros.** Para la aplicación, ambos son recursos conectados, accedidos mediante una URL u otro localizador o credencial almacenado en la [config](./config). Un [despliegue](./codebase) de una aplicación "twelve-factor" debería ser capaz de reemplazar una base de datos local MySQL por una gestionada por un tercero (como [Amazon RDS](http://aws.amazon.com/rds/)) sin ningún cambio en el código de la aplicación. Igualmente, un servidor SMTP local se podría cambiar por un servicio de terceros (como Postmark) sin modificaciones en el código. En ambos casos, solo el manejador del recurso necesita cambiar en la configuración. Cada "backing service" distinto es un *recurso*. Por ejemplo, una base de datos MySQL es un recurso; dos bases de datos MySQL (usadas para "sharding" en la capa de aplicación) les convierte en dos recursos distintos. Una aplicación "twelve factor" trata esas bases de datos como *recursos conectados*, lo que demuestra su bajo acoplamiento al despliegue al que se unen. Un despliegue en producción conectado a cuatro backing services. Los recursos se pueden conectar y desconectar a voluntad. Por ejemplo, si la base de datos funciona mal debido a un problema en el hardware, el administrador de la aplicación puede cambiar a un nuevo servidor de bases de datos que haya sido restaurado de un backup reciente. La base de datos actual de producción se puede desconectar, y conectar una nueva base de datos sin tener que cambiar nada en el código. content/it/build-release-run.md0000644000175000056700000000520315226251677015247 0ustar0000000000000000## V. Build, release, esecuzione ### Separare in modo netto lo stadio di build dall'esecuzione Una [codebase](./codebase) viene "trasformata" in deployment attraverso tre fasi: * la fase di *build*, che converte il codice del repo in una build "eseguibile". Usando una certa versione del codice, a una specifica commit, nella fase di build vengono compilati i binari con gli asset appropriati includendo anche le eventuali dipendenze; * la fase di *release* prende la build prodotta nella fase precedente e la combina con l'attuale insieme di impostazioni di configurazione del deployment specifico. La *release* risultante contiene sia la build che le impostazioni; * la fase di *esecuzione* (conosciuta anche come "runtime") vede l'applicazione in esecuzione nell'ambiente di destinazione, attraverso l'avvio di processi della release scelta; ![Il codice diventa build, che combinata con le impostazioni diventa release.](/images/release.png) **Un'app twelve-factor definisce una separazione netta tra build, release ed esecuzione.** Per esempio, è impossibile effettuare dei cambiamenti del codice a runtime, dato che non c'è modo di propagare queste modifiche all'"indietro", verso la fase di build. I tool di deployment offrono tipicamente dei tool di gestione delle release, in particolare alcuni dedicati a un rollback verso una release precedente. Per esempio, [Capistrano](https://github.com/capistrano/capistrano/wiki) memorizza le varie release in una sotto-directory chiamata `releases`, in cui la release attuale non è che un symlink verso la directory della release attuale. Il comando di rollback permette di tornare indietro a una certa release velocemente. Ogni release dovrebbe inoltre possedere un ID univoco di rilascio, come per esempio un timestamp (es. `2011-04-06-20:32:17`) o un numero incrementale (es. `v100`). In un certo senso, la creazione di una release è una procedura "a senso unico" e una certa release non può essere modificata dopo la sua creazione. Qualsiasi cambiamento deve quindi prevedere una nuova release. Una fase di build è sempre avviata da uno sviluppatore, non appena il codice viene modificato. Al contrario, l'esecuzione può essere anche gestita in modo automatico (si pensi al riavvio del server oppure a un crash con successivo riavvio del processo). A ogni modo, una volta in esecuzione, la regola aurea è di evitare il più possibile (se non del tutto) modifiche che potrebbero rompere qualche equilibrio. Magari nel bel mezzo della notte, quando non c'è nessuno disponibile. La fase di build può essere sicuramente più "faticosa", comunque, visto che possono verificarsi degli errori da risolvere prima di proseguire. content/ru/intro.md0000644000175000056700000000416515226251677013103 0ustar0000000000000000Введение ============ Ð’ наши дни программное обеÑ�печение обычно раÑ�проÑ�транÑ�етÑ�Ñ� в виде Ñ�ервиÑ�ов, называемых *веб-приложениÑ�* (web apps) или *software-as-a-service* (SaaS). Приложение двенадцати факторов — Ñ�то методологиÑ� длÑ� Ñ�озданиÑ� SaaS-приложений, которые: * ИÑ�пользуют **декларативный** формат длÑ� опиÑ�аниÑ� процеÑ�Ñ�а уÑ�тановки и наÑ�тройки, что Ñ�водит к минимуму затраты времени и реÑ�урÑ�ов длÑ� новых разработчиков, подключённых к проекту; * Имеют **Ñ�оглашение** Ñ� операционной Ñ�иÑ�темой, предполагающее **макÑ�имальную переноÑ�имоÑ�ть** между Ñ�редами выполнениÑ�; * ПодходÑ�Ñ‚ длÑ� **развёртываниÑ�** на Ñ�овременных **облачных платформах**, уÑ�транÑ�Ñ� необходимоÑ�ть в Ñ�ерверах и Ñ�иÑ�темном админиÑ�трировании; * **СводÑ�Ñ‚ к минимуму раÑ�хождениÑ�** между Ñ�редой разработки и Ñ�редой выполнениÑ�, что позволÑ�ет иÑ�пользовать **непрерывное развёртывание** (continuous deployment) длÑ� макÑ�имальной гибкоÑ�ти; * И могут **маÑ�штабироватьÑ�Ñ�** без Ñ�ущеÑ�твенных изменений в инÑ�трументах, архитектуре и практике разработки. МетодологиÑ� двенадцати факторов может быть применена длÑ� приложений, напиÑ�анных на любом Ñ�зыке программированиÑ� и иÑ�пользующих любые комбинации Ñ�торонних Ñ�лужб (backing services) (базы данных, очереди Ñ�ообщений, кÑ�ш-памÑ�ти, и Ñ‚.д.). locales/pt_br.yml0000644000175000056700000000034715226251677012577 0ustar0000000000000000pt_br: # Name of language listed in locales menu language: Brazilian Portuguese (pt_br) # A text to make known that the article is a translation not an original. # Empty for English, original. translation: "(traduzido)" content/ko/disposability.md0000644000175000056700000000664715226251677014621 0ustar0000000000000000## IX. í��기 가능(Disposability) ### 빠른 시작과 그레ì�´ìŠ¤í’€ 셧다운(graceful shutdown)ì�„ 통한 안정성 극대화 **Twelve-Factor Appì�˜ [프로세스](./processes)는 *간단하게 í��기 가능*합니다. 즉, 프로세스는 바로 시작하거나 종료ë�  수 있습니다.** ì�´ëŸ¬í•œ ì†�성ì�€ 신축성 있는 확장과 [코드](./codebase)나 [설정](./config)ì�˜ 변화를 빠르게 ë°°í�¬í•˜ëŠ” 것ì�„ 쉽게 하며, production ë°°í�¬ë¥¼ 안정성 있게 í•´ì¤�니다. 프로세스는 **시작 시간ì�„ 최소화**하ë�„ë¡� 노력해야합니다. ì�´ìƒ�ì �으로, 프로세스는 실행 커맨드가 실행ë�œ ë’¤ 몇 초만ì—� 요청ì�´ë‚˜ 작업ì�„ ë°›ì�„ 수 있ë�„ë¡� 준비 ë�©ë‹ˆë‹¤. ì§§ì�€ 실행 시간ì�€ [릴리즈](./build-release-run) 작업과 확장(scale up)ì�´ ë�” 민첩하게 ì�´ë£¨ì–´ì§ˆ 수 있게 합니다. ë˜�한 프로세스 매니저가 í•„ìš”ì—� ë”°ë�¼ 쉽게 프로세스를 새로운 머신으로 프로세스를 옮길 수 있기 때문ì—� 안정성ë�„ 높아집니다. 프로세스는 프로세스 매니저로부터 **[SIGTERM](http://en.wikipedia.org/wiki/SIGTERM) 신호를 받았ì�„ 때 그레ì�´ìŠ¤í’€ 셧다운(graceful shutdown)ì�„ 합니다.** 웹프로세스ì�˜ 그레ì�´ìŠ¤í’€ 셧다운 과정ì—�서는 서비스 í�¬íЏì�˜ 수신ì�„ 중지하고(그럼으로ì�¨ 새로운 요청ì�„ 거절함), 현재 처리 중ì�¸ 요청ì�´ ë��나길 기다린 ë’¤ì—� 프로세스가 종료 ë�˜ê²Œ ë�©ë‹ˆë‹¤. ì�´ 모ë�¸ì�€ 암묵ì �으로 HTTP 요청ì�´ 짧다는 가정(기ê»�해야 몇 ì´ˆ)ì�„ 깔고 있습니다. long pollingì�˜ 경우ì—�는 í�´ë�¼ì�´ì–¸íŠ¸ê°€ ì—°ê²°ì�´ ë�Šê¸´ 시ì �ì—� 바로 다시 ì—°ê²°ì�„ 시ë�„해야 합니다. worker 프로세스ì�˜ 경우, 그레ì�´ìŠ¤í’€ 셧다운ì�€ 현재 처리중ì�¸ 작업ì�„ 작업 í��로 ë�˜ë�Œë¦¬ëŠ” 방법으로 구현ë�©ë‹ˆë‹¤. 예를 들어, [RabbitMQ](http://www.rabbitmq.com/)ì—�서는 worker는 [`NACK`](http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.nack)ì�„ 메시지í��로 보낼 수 있습니다. [Beanstalkd](https://beanstalkd.github.io)ì—�서는 woker와ì�˜ ì—°ê²°ì�´ ë�Šê¸°ë©´ 때 ìž�ë�™ìœ¼ë¡œ 작업ì�„ í��로 ë�˜ë�Œë¦½ë‹ˆë‹¤. [Delayed Job](https://github.com/collectiveidea/delayed_job#readme)와 ê°™ì�€ Lock-based 시스템들ì�€ 작업 레코드ì—� 걸어놨ë�˜ lockì�„ 확실하게 풀어놓ì�„ 필요가 있습니다. ì�´ 모ë�¸ì�€ 암묵ì �으로 모든 작업ì�€ [재입력 가능(reentrant)](http://en.wikipedia.org/wiki/Reentrant_%28subroutine%29)하다고 가정합니다. ì�´ëŠ” 보통, 결과를 트랜잭션으로 ê°�싸거나 요청ì�„ [멱등(idempotent)](http://en.wikipedia.org/wiki/Idempotence)하게 함으로ì�¨ 구현ë�  수 있습니다. 프로세스는 하드웨어 ì—�러ì—� ì�˜í•œ **갑작스러운 죽ì�Œì—�ë�„ 견고해야합니다.** ì�´ëŸ¬í•œ 사태는 `SIGTERM`ì—� ì�˜í•œ 그레ì�´ìŠ¤í’€ 셧다운ì—� 비하면 드문 ì�¼ì�´ì§€ë§Œ, 그럼ì—�ë�„ ë°œìƒ�í•  수 있습니다. ì�´ëŸ° ì�¼ì—� 대한 대책으로 Beanstalkd와 ê°™ì�€ 견고한 í��잉 백엔드를 사용하는 것ì�„ 권장합니다. ì�´ëŸ¬í•œ 백엔드는 í�´ë�¼ì�´ì–¸íŠ¸ê°€ ì ‘ì†�ì�´ ë�Šê¸°ê±°ë‚˜, 타임 아웃ì�´ ë°œìƒ�í–ˆì�„ 때, 작업ì�„ í��로 ë�˜ë�Œë¦½ë‹ˆë‹¤. Twelve-Factor Appì�€ 예기치 못한, 우아하지 않ì�€ 종료ë�„ 처리할 수 있ë�„ë¡� 설계ë�©ë‹ˆë‹¤. [Crash-only design](http://lwn.net/Articles/191059/)ì—�서는 [논리ì �ì�¸ ê²°ë¡ ](http://docs.couchdb.org/en/latest/intro/overview.html)으로 ì�´ëŸ¬í•œ 컨셉ì�„ 가져왔습니다. content/pl/processes.md0000644000175000056700000000533515226251677013743 0ustar0000000000000000## VI. Procesy ### Uruchamiaj aplikacjÄ™ jako jeden lub wiÄ™cej bezstanowych procesów Aplikacja jest uruchamiana w Å›rodowisku wykonawczym w postaci jednego lub kilku *procesów*. W najprostszym przypadku kod aplikacji jest samodzielnym skryptem, Å›rodowiskiem wykonawczym jest laptop developera z wsparciem dla jÄ™zyka programowania, a proces jest uruchamiany za pomocÄ… linii komend (na przykÅ‚ad `python my_script.py`). Innym razem wdrożenie produkcyjne mocno rozwiniÄ™tej aplikacji może wymagać wiele [różnych rodzajów procesów](./concurrency). **Wg zasad 12factor, procesy sÄ… bezstanowe i [nie-współdzielÄ…ce](http://en.wikipedia.org/wiki/Shared_nothing_architecture).** Jakiekolwiek dane wymagajÄ…ce zapisu musza być zmagazynowane w "trwaÅ‚ej" [usÅ‚udze wspierajÄ…cej](./backing-services), najczęściej bÄ™dÄ…cÄ… bazÄ… danych. PrzestrzeÅ„ adresowa lub system plików procesu mogÄ… być używane jako tymczasowy cache dla pojedynczych operacji. PrzykÅ‚adem jest pobieranie dużych plików, dziaÅ‚anie na nich, a nastÄ™pnie zapisywanie wyników operacji w bazie danych. Aplikacja dwunastu aspektów nigdy nie zakÅ‚ada, że jakiÅ› fragment informacji zapisany w pamiÄ™ci lub dysku bÄ™dzie dostÄ™pny w przyszÅ‚oÅ›ci podczas jakiegokolwiek zapytania -- wraz z wieloma aktywnymi procesami roÅ›nie szansa, że przyszÅ‚e zapytanie zostanie obsÅ‚użone przez zupeÅ‚nie inny proces. Nawet w przypadku pojedynczego procesu, restart (spowodowany przez deployment kodu, zmianÄ™ konfiguracji lub relokacja procesu do innej fizycznej lokalizacji wykonana przez Å›rodowisko wykonawcze) zazwyczaj usunie wszystkie dane z lokalnego stanu aplikacji (system plików, pamięć podrÄ™czna). NarzÄ™dzie do pakowania plików, z których korzysta aplikacja (takie jak [Jammit](http://documentcloud.github.com/jammit/) lub [django-compressor](http://django-compressor.readthedocs.org/)) używajÄ… systemu plików jako cache dla skompilowanych zasobów. Wg 12factor taka kompilacja powinna mieć miejsce podczas [etapu budowy aplikacji](./build-release-run), jak to siÄ™ dzieje np. w [Rails asset pipeline](http://guides.rubyonrails.org/asset_pipeline.html). Niektóre systemy sieciowe polegajÄ… na tzw. ["sticky sessions"](http://en.wikipedia.org/wiki/Load_balancing_%28computing%29#Persistence) -- oznacza to, że sesja użytkownika jest zapisywana tymczasowo w pamiÄ™ci procesu aplikacji, zakÅ‚adajÄ…c, że kolejne zapytania dotyczÄ…ce użytkownika bÄ™dÄ… kierowane do tego samego procesu. "Sticky sessions" sÄ… zÅ‚amaniem zasad aplikacji 12factor i nigdy nie powinny być używane jako źródÅ‚o informacji. Dane sesji nadajÄ… siÄ™ bardziej do zapisu w magazynie oferujÄ…cym wygasanie danych w czasie, jak np. [Memcached](http://memcached.org/) czy [Redis](http://redis.io/). content/tr/intro.md0000644000175000056700000000167515226251677013105 0ustar0000000000000000GiriÅŸ ========== Modern çaÄŸda yazılımlar yaygın olarak servis olarak sunulur;*web uygulamaları* ya da *yazılım hizmetleri*. On iki faktörlü uygulama, aÅŸağıdaki gibi bir yazılım hizmeti oluÅŸturmak için bir yöntemdir: * Projeye katılan yeni geliÅŸtiriciler için zaman ve maliyeti en aza indirmek için ayar otomasyonu için **bildirim** biçimleri kullanılır; * Çalışma ortamları arasında maksimum taşınabilirlik sunan temel iÅŸletim sistemi ile **ÅŸifresiz sözleÅŸmesi** vardır * Sunucu ve sistem yönetimine olan ihtiyacı ortadan kaldıran modern **bulut platformlarına kurulum** için uygundur; * İşlem, mimari veya geliÅŸtirme uygulamalarında önemli deÄŸiÅŸiklikler olmaksızın **ölçek büyültülebilir**. On iki faktör uygulaması herhangi bir programlama dili ile yazılmış uygulamalara uygulanabilir ve destek servislerinin herhangi bir kombinasyonu kullanılabilir (Veritabanı, kuyruk, önbellek vb.). .ruby-version0000644000175000056700000000000615226251677011761 0ustar00000000000000003.1.2 content/pl/dev-prod-parity.md0000644000175000056700000001230615226251677014757 0ustar0000000000000000## X. Jednolitość Å›rodowisk ### Utrzymuj Å›rodowisko developerskie, stagingowe i produkcyjne tak podobne jak tylko możliwe Z doÅ›wiadczenia wiadomo, że od zawsze istniaÅ‚y różnice pomiÄ™dzy Å›rodowiskiem developerskim (developer pracujÄ…cy nad swojÄ… lokalnÄ… wersjÄ… [kodu](./codebase) aplikacji) a produkcyjnym (dziaÅ‚ajÄ…ca aplikacja dostÄ™pna dla użytkowników. Ze wzglÄ™du na ich charakter, możemy wymienić trzy rodzaje różnic: * **Różnica czasowa:** Developer może pracować nad kodem przez dni, tygodnie, miesiÄ…ce zanim ostatecznie pojawi siÄ™ on w wersji produkcyjnej. * **Różnica odpowiedzialnoÅ›ci**: Developer tworzy kod aplikacji, natomiast kto inny wdraża go do na produkcjÄ™. * **Różnica narzÄ™dzi**: Developer może używać narzÄ™dzi takich jak Nginx, SQLite i systemu OS X, natomiast wersja produkcyjna bÄ™dzie opierać siÄ™ na Apache, MySQL i systemie Linux. **Aplikacja 12factor jest zaprojektowana tak by można jÄ… byÅ‚o [bez przerwy wdrażać na produkcjÄ™](http://avc.com/2011/02/continuous-deployment/) minimalizujÄ…c różnice pomiÄ™dzy Å›rodowiskami.** MajÄ…c na uwadze powyższe różnice, można sobie z nimi radzić na różne sposoby: * Zmniejsz czas deploymentu: czas wdrożenia kodu napisanego przez developera powinien być mierzony w godzinach, a nawet w minutach. * PrzenieÅ› odpowiedzialność: developer piszÄ…cy kod powinien być zaangażowany we wdrożenia aplikacji na produkcjÄ™. * Stosuj ten sam zestaw narzÄ™dzi: utrzymuj wszystkie Å›rodowiska w których dziaÅ‚a aplikacja tak podobne jak to możliwe. PodsumowujÄ…c w formie tabeli:
Tradycyjna aplikacja Aplikacja 12factor
Czas pomiędzy wdrożeniami Tygodnie Godziny
Tworzenie kodu vs wdrażanie kodu Różne osoby Te same osoby
Środowisko developerskie vs produkcyjne Mocno różniące się Jak najbardziej zbliżone
Zachowanie podobieństw między wdrożeniami jest ważne w przypadku [usług wspierających](./backing-services) takich jak baza danych aplikacji, system kolejkowania czy też cache. Wiele języków oferuje biblioteki, które upraszczają korzystanie z usług wspierających w tym *adaptery* do usług różnego typu. Kilka przykładów w tabeli poniżej:
Typ Język Biblioteka Adaptery
Baza danych Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
Kolejka Python/Django Celery RabbitMQ, Beanstalkd, Redis
Cache Ruby/Rails ActiveSupport::Cache Pamięć, system plików, Memcached
Czasami zdarza się, że developerzy w swoim lokalnym środowisku wolą korzystać z "lżejszych" wersji różnych usług, na produkcji natomiast używając bardziej zaawansowanych narzędzi. Przykładem takiej sytuacji jest używanie lokalnie SQLite, a PostgreSQL na produkcji. Podobnie wygląda też użycie na środowisku developerskim do cachowania pamięci, zamiast Memcached znajdującego się na produkcji. **Developer postępujący zgodnie zasadami 12factor opiera się pokusie używania usług różniących się pomiędzy środowiskami**, nawet wtedy, gdy adaptery teoretycznie ukrywają różnice w implementacji pod warstwą abstrakcji. Z powodu różnic pomiędzy usługami wspierającymi mogą pojawić się niezgodności, powodując, że kod, który działał i był testowany lokalnie lub na stagingu, przestanie funkcjonować na produkcji. Pojawianie się tego typu błędów negatywnie wpływa na proces ciągłego wdrażania aplikacji. Czas stracony na wykrywaniu takich błędów i konsekwentnych awariach podczas wdrażania aplikacji może sporo kosztować, zwłaszcza gdy podobne problemy będą się z czasem gromadzić. Lekkie wersje usług w obecnych czasach nie są już tak atrakcyjne jak kiedyś. Nowoczesne usługi takie jak Memcached, PostgreSQL oraz RabbitMQ nie są trudne do instalacji w lokalnym środowisku, dzięki narzędziom jak [Homebrew](http://mxcl.github.com/homebrew/) i [apt-get](https://help.ubuntu.com/community/AptGet/Howto). Innym rozwiązaniem są narzędzia do deklaratywnego [provisioningu](https://en.wikipedia.org/wiki/Provisioning) takie jak [Chef](http://www.opscode.com/chef/) czy [Puppet](http://docs.puppetlabs.com/) połączone z lekkimi środowiskami wirtualnymi jak np. [Vagrant](http://vagrantup.com/). Pozwala ono developerom na uruchamianie lokalnych środowisk, które są bardzo zbliżone do produkcyjnych. Koszt instalacji i używania takich rozwiązań jest stosunkowo niski, biorąc pod uwagę korzyści płynące z utrzymywania jednolitych środowisk i procesu ciągłego wdrażania aplikacji. Adaptery dla różnych usług wspierających są wciąż użyteczne, gdyż dzięki nim zmiana usługi jest relatywnie łatwa. Należy jednak pamiętać, że wszystkie wdrożenia aplikacji (środowiska developerskie, stagingowe, produkcyjne) powinny używać tych samych typów i wersji usług wspierających. content/pt_br/config.md0000644000175000056700000000705615226251677013677 0ustar0000000000000000## III. Configurações ### Armazene as configurações no ambiente A *configuração* de uma aplicação é tudo o que é provável variar entre [deploys](./codebase) (homologação, produção, ambientes de desenvolvimento, etc). Isto inclui: * Recursos para a base de dados, Memcached, e outros [serviços de apoio](./backing-services) * Credenciais para serviços externos como Amazon S3 ou Twitter * Valores por deploy como o nome canônico do host para o deploy Aplicações às vezes armazenam as configurações no código como constantes. Isto é uma violação da doze-fatores, a qual exige uma **estrita separação entre configuração e código**. Configuração varia substancialmente entre deploys, código não. A prova de fogo para saber se uma aplicação tem todas as configurações corretamente consignadas fora do código é saber se a base de código poderia ter seu código aberto ao público a qualquer momento, sem comprometer as credenciais. Note que esta definição de "configuração" **não** inclui configuração interna da aplicação, como `config/routes.rb` em Rails, ou como [módulos de códigos são conectados](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html) em [Spring](http://spring.io/). Este tipo de configuração não varia entre deploys, e por isso é melhor que seja feito no código. Outra abordagem para configuração é o uso de arquivos de configuração que não são versionados no controle de versão, como `config/database.yml` em Rails. Isto é uma grande melhoria sobre o uso de constantes que são versionadas no repositório do código, mas ainda tem pontos fracos: é fácil de colocar por engano um arquivo de configuração no repositório; há uma tendência para que os arquivos de configuração sejam espelhados em diferentes lugares e diferentes formatos, tornando-se difícil de ver e gerenciar todas as configurações em um só lugar. Além disso estes formatos tendem a ser específicos da linguagem ou framework. **A aplicação doze-fatores armazena configuração em *variáveis de ambiente*** (muitas vezes abreviadas para *env vars* ou *env*). Env vars são fáceis de mudar entre deploys sem alterar qualquer código; ao contrário de arquivos de configuração, há pouca chance de serem colocados acidentalmente no repositório do código; e ao contrário dos arquivos de configuração personalizados, ou outros mecanismos de configuração como Propriedades do Sistema Java, eles são por padrão agnósticos a linguagem e ao SO. Outro aspecto do gerenciamento de configuração é o agrupamento. Às vezes, as aplicações incluem a configuração em grupos nomeados (muitas vezes chamados de ambientes) que remetem a deploys específicos, tais como os ambientes `development`, `test`, e `production` em Rails. Este método não escala de forma limpa: quanto mais deploys da aplicação são criados, novos nomes de ambiente são necessários, tais como `staging` ou `qa`. A medida que o projeto cresce ainda mais, desenvolvedores podem adicionar seus próprios ambientes especiais como `joes-staging`, resultando em uma explosão combinatória de configurações que torna o gerenciamento de deploys da aplicação muito frágil. Em uma aplicação doze-fatores, env vars são controles granulares, cada um totalmente ortogonal às outras env vars. Elas nunca são agrupadas como "environments", mas em vez disso são gerenciadas independentemente para cada deploy. Este é um modelo que escala sem problemas à medida que o app naturalmente se expande em muitos deploys durante seu ciclo de vida. content/pt_br/toc.md0000644000175000056700000000232415226251677013210 0ustar0000000000000000Os Doze Fatores =============== ## [I. Base de Código](./codebase) ### Uma base de código com rastreamento utilizando controle de revisão, muitos deploys ## [II. Dependências](./dependencies) ### Declare e isole as dependências ## [III. Configurações](./config) ### Armazene as configurações no ambiente ## [IV. Serviços de Apoio](./backing-services) ### Trate os serviços de apoio, como recursos ligados ## [V. Build, release, run](./build-release-run) ### Separe estritamente os builds e execute em estágios ## [VI. Processos](./processes) ### Execute a aplicação como um ou mais processos que não armazenam estado ## [VII. Vínculo de porta](./port-binding) ### Exporte serviços por ligação de porta ## [VIII. Concorrência](./concurrency) ### Dimensione por um modelo de processo ## [IX. Descartabilidade](./disposability) ### Maximizar a robustez com inicialização e desligamento rápido ## [X. Dev/prod semelhantes](./dev-prod-parity) ### Mantenha o desenvolvimento, teste, produção o mais semelhante possível ## [XI. Logs](./logs) ### Trate logs como fluxo de eventos ## [XII. Processos de Admin](./admin-processes) ### Executar tarefas de administração/gerenciamento como processos pontuais content/de/logs.md0000644000175000056700000000455015226251677012654 0ustar0000000000000000## XI. Logs ### Logs als Strom von Ereignissen behandeln *Logs* machen das Verhalten einer laufenden App sichtbar. In Server-basierten Umgebungen werden sie üblicherweise in eine Datei auf der Platte geschrieben (eine Logdatei) - das ist aber nur ein Ausgabeformat. Logs sind der [Stream](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/) von aggregierten, nach Zeit sortierten Ereignissen und zusammengefasst aus den Output Streams aller laufenden Prozesse und unterstützenden Dienste. Logs in ihrer rohen Form sind üblicherweise ein Textformat mit einem Ereignis pro Zeile (obwohl Backtraces von Exceptions über mehrere Zeilen gehen können) **Eine Zwölf-Faktor-App kümmert sich nie um das Routing oder die Speicherung ihres Output Streams.** Sie sollte nicht versuchen, in Logdateien zu schreiben oder diese zu verwalten. Statt dessen schreibt jeder laufende Prozess seinen Stream von Ereignissen ungepuffert auf `stdout`. Bei einem lokalen Deployment sichtet ein Entwickler diesen Stream im Vordergrund seines Terminals um das Verhalten der App zu beobachten. Auf Staging- oder Produktionsdeploys werden die Streams aller Prozesse von der Laufzeitumgebung erfasst, mit allen anderen Streams der App zusammengefasst und zu einem oder mehreren Zielen geleitet, zur Ansicht oder langzeitigen Archivierung. Diese Archivierungsziele sind für die App weder sichtbar noch konfigurierbar - sie werden vollständig von der Laufzeitumgebung aus verwaltet. Open-Source Log Router (wie [Logplex](https://github.com/heroku/logplex) und [Fluentd](https://github.com/fluent/fluentd)) stehen dafür zur Verfügung. Der Stream von Ereignissen für eine App kann in eine Datei geleitet werden oder mit einem Echtzeit-Tail in einem Terminal beobachtet werden. Sehr bedeutsam ist es, das der Stream in ein Log-Indexierungs- und Analyse-System wie [Splunk](http://www.splunk.com/) oder in ein allgemein verwendbares Data-Warehouse-System wie [Hadoop/Hive](http://hive.apache.org/) gelenkt werden kann. Mit diesem System kann das Verhalten einer App leistungsfähig und flexibel beobachtet werden. Dies schließt ein: * Bestimmte Ereignisse in der Vergangenheit zu finden * Umfangreiche graphische Darstellungen (wie Requests pro Minute) * Aktives Alarmieren aufgrund benutzerdefinierter Heuristiken (wie ein Alarm wenn die Anzahl von Fehlern pro Minute eine gewisse Grenze überschreitet) content/en/dev-prod-parity.md0000644000175000056700000001065715226251677014755 0ustar0000000000000000## X. Dev/prod parity ### Keep development, staging, and production as similar as possible Historically, there have been substantial gaps between development (a developer making live edits to a local [deploy](./codebase) of the app) and production (a running deploy of the app accessed by end users). These gaps manifest in three areas: * **The time gap**: A developer may work on code that takes days, weeks, or even months to go into production. * **The personnel gap**: Developers write code, ops engineers deploy it. * **The tools gap**: Developers may be using a stack like Nginx, SQLite, and OS X, while the production deploy uses Apache, MySQL, and Linux. **The twelve-factor app is designed for [continuous deployment](http://avc.com/2011/02/continuous-deployment/) by keeping the gap between development and production small.** Looking at the three gaps described above: * Make the time gap small: a developer may write code and have it deployed hours or even just minutes later. * Make the personnel gap small: developers who wrote code are closely involved in deploying it and watching its behavior in production. * Make the tools gap small: keep development and production as similar as possible. Summarizing the above into a table:
Traditional app Twelve-factor app
Time between deploys Weeks Hours
Code authors vs code deployers Different people Same people
Dev vs production environments Divergent As similar as possible
[Backing services](./backing-services), such as the app's database, queueing system, or cache, is one area where dev/prod parity is important. Many languages offer libraries which simplify access to the backing service, including *adapters* to different types of services. Some examples are in the table below.
Type Language Library Adapters
Database Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
Queue Python/Django Celery RabbitMQ, Beanstalkd, Redis
Cache Ruby/Rails ActiveSupport::Cache Memory, filesystem, Memcached
Developers sometimes find great appeal in using a lightweight backing service in their local environments, while a more serious and robust backing service will be used in production. For example, using SQLite locally and PostgreSQL in production; or local process memory for caching in development and Memcached in production. **The twelve-factor developer resists the urge to use different backing services between development and production**, even when adapters theoretically abstract away any differences in backing services. Differences between backing services mean that tiny incompatibilities crop up, causing code that worked and passed tests in development or staging to fail in production. These types of errors create friction that disincentivizes continuous deployment. The cost of this friction and the subsequent dampening of continuous deployment is extremely high when considered in aggregate over the lifetime of an application. Lightweight local services are less compelling than they once were. Modern backing services such as Memcached, PostgreSQL, and RabbitMQ are not difficult to install and run thanks to modern packaging systems, such as [Homebrew](http://mxcl.github.com/homebrew/) and [apt-get](https://help.ubuntu.com/community/AptGet/Howto). Alternatively, declarative provisioning tools such as [Chef](http://www.opscode.com/chef/) and [Puppet](http://docs.puppetlabs.com/) combined with light-weight virtual environments such as [Docker](https://www.docker.com/) and [Vagrant](http://vagrantup.com/) allow developers to run local environments which closely approximate production environments. The cost of installing and using these systems is low compared to the benefit of dev/prod parity and continuous deployment. Adapters to different backing services are still useful, because they make porting to new backing services relatively painless. But all deploys of the app (developer environments, staging, production) should be using the same type and version of each of the backing services. content/es/port-binding.md0000644000175000056700000000443115226251677014321 0ustar0000000000000000## VII. Asignación de puertos ### Publicar servicios mediante asignación de puertos Las aplicaciones web se ejecutan a menudo mediante contenedores web. Por ejemplo, las aplicaciones de PHP se suelen ejecutar como módulos del [HTTPD de Apache](http://httpd.apache.org/), y las aplicaciones Java en [Tomcat](http://tomcat.apache.org/). **Las aplicaciones "twelve factor" son completamente auto-contenidas** y no dependen de un servidor web en ejecución para crear un servicio web público. Una aplicación web **usa HTTP como un servicio al que se le asigna un puerto**, y escucha las peticiones que recibe por dicho puerto. En los entornos de desarrollo, los desarrolladores usan una URL del servicio (por ejemplo `http://localhost:5000/`), para acceder al servicio que ofrece la aplicación. En la fase de despliegue, existe una capa de enrutamiento que se encarga de que las peticiones que llegan a una dirección pública se redirijan hacia el proceso web que tiene asignado su puerto correspondiente. Esto se implementa, normalmente, usando una [declaración de dependencias](./dependencies) donde se incluyen librerías de las aplicaciones web, como [Tornado](http://www.tornadoweb.org/) para Python, [Thin](http://code.macournoyer.com/thin/) para Ruby, o [Jetty](http://www.eclipse.org/jetty/) para Java y otros lenguajes basados en la Máquina Virtual de Java (JVM). Esto ocurre totalmente en el *entorno del usuario*, es decir, dentro del código de la aplicación. El contrato con el entorno de ejecución obliga al puerto a servir las peticiones. HTTP no es el único servicio que usa asignación de puertos. La verdad, es que cualquier servicio puede ejecutarse mediante un proceso al que se le asigna un puerto y queda a la espera de peticiones. Entre otros ejemplos podemos encontrar [ejabberd](http://www.ejabberd.im/) (que usa [XMPP](http://xmpp.org/)), y [Redis](http://redis.io/) (que usa [el protocolo Redis](http://redis.io/topics/protocol)). También es cierto que la aproximación de asignación de puertos ofrece la posibilidad de que una aplicación pueda llegar a ser un ["backing service"](./backing-services) para otra aplicación, usando la URL de la aplicación correspondiente como un recurso declarado en la [configuración](./config) de la aplicación que consume este "backing service". content/it/toc.md0000644000175000056700000000231115226251677012512 0ustar0000000000000000I "Dodici Fattori" ================== ## [I. Codebase](./codebase) ### Una sola codebase sotto controllo di versione, tanti deployment ## [II. Dipendenze](./dependencies) ### Dipendenze dichiarate e isolate ## [III. Configurazione](./config) ### Memorizza le informazioni di configurazione nell'ambiente ## [IV. Backing Service](./backing-services) ### Tratta i backing service come "risorse" ## [V. Build, release, esecuzione](./build-release-run) ### Separare in modo netto lo stadio di build dall'esecuzione ## [VI. Processi](./processes) ### Esegui l'applicazione come uno o più processi stateless ## [VII. Binding delle Porte](./port-binding) ### Esporta i servizi tramite binding delle porte ## [VIII. Concorrenza](./concurrency) ### Scalare attraverso il process model ## [IX. Rilasciabilità](./disposability) ### Massimizzare la robustezza con avvii veloci e chiusure non brusche ## [X. Parità tra Sviluppo e Produzione](./dev-prod-parity) ### Mantieni lo sviluppo, staging e produzione simili il più possibile ## [XI. Log](./logs) ### Tratta i log come stream di eventi ## [XII. Processi di Amministrazione](./admin-processes) ### Esegui i task di amministrazione/management come processi una tantum content/th/codebase.md0000644000175000056700000000656315226251677013506 0ustar0000000000000000## I. Codebase ### มีเพียง codebase เดียวที่ติดตามด้วย version control, มีหลาย deploy Twelve-factor app สามารถติดตามได้เสมอด้วย version control เช่น [Git](http://git-scm.com/), [Mercurial](https://www.mercurial-scm.org/), หรือ [Subversion](http://subversion.apache.org/) สำเนาของ�านข้อมูลติดตาม version เรีย�ว่า *code repository* หรือเรีย�สั้นๆว่า *code repo* หรือเรีย�เพียง�ค่ *repo* *codebase* เป็น repo เดียวใดๆ (ในระบบ version control ที่มีศูนย์�ลางอย่างเช่น Subversion) หรือเป็นเซตของ repo ซึ่ง�บ่งปัน root commit (ในระบบ version control ที่ไม่มีศูนย์�ลางอย่างเช่น Git) ![One codebase maps to many deploys](/images/codebase-deploys.png) มีความสัมพันธ์�บบ หนี่ง-ต่อ-หนึ่ง เสมอ ระหว่าง codebase �ละ app: * ถ้ามีหลาย codebase, จะไม่เป็น app -- จะเป็นระบบ�ระจาย (distributed system) �ต่ละคอมโพ�นนท์ในระบบ�ระจายเป็น app, �ละ�ต่ล่ะคอมโพ�นนท์จะป�ิบัติตาม twelve-factor * ถ้ามีหลาย app ที่ใช้งาน code เดียว�ันจะเป็น�ารละเมิด twelve-factor วิธี��้ปั�หาในที่นี้คือเอา code ที่ใช้ร่วม�ันทำเป็น libraries ซึ่งสามารถเข้า�ับ factor [dependency manager](./dependencies) มีเพียงหนึ่ง codebase ต่อ app �ต่มีหลาย deploy หรือ�ารนำไปใช้งานของ app, หนึ่ง *deploy* จะรัน instance ของ app นี่เป็น production site �ละมีหนึ่งหรือมา�ว่า staging site เพิ่มเติม, developer ทุ�คนจะมีสำเนาเดียวของ app ที่ทำงานอยู่บนสิ่ง�วดล้อมพัฒนาในเครื่องของตนเอง ซึ่งจัดได้ว่าเป็น deploy ด้วยเช่น�ัน Codebase จะเหมือน�ันตลอดทั้ง deploy ทั้งหมด �ม้ว่า version จะ�ต�ต่าง�ันอาจจะทำงานใน�ต่ล่ะ deploy ตัวอย่างเช่น developer มีบาง commit ที่ยังไม่ได้ deploy ไปยัง staging ซึ่ง staging จะมีบาง commit ที่ยังไม่ได้ deploy ไปยัง production �ต่ทั้งหมดจะใช้ codebase เดียว�ัน ดังนั้นจะต้องทำให้ระบุตัวตนได้ว่าเป็น deploy ที่�ต�ต่าง�ันของ app เดียว�ัน views/factor.erb0000644000175000056700000000051415226251677012425 0ustar0000000000000000
<%= render_markdown(@factor) %>
content/fr/dev-prod-parity.md0000644000175000056700000001263215226251677014755 0ustar0000000000000000## X. Parité dev/prod ### Gardez le développement, la validation et la production aussi proches que possible Historiquement, il y a eu un fossé conséquent entre le développement (un développeur qui fait des modifications sur un [déploiement](./codebase) local de l'application) et la production (un déploiement de l'application accessible aux utilisateurs finaux). Ce fossé se manifeste de trois manières : * **Le fossé temporel** : un développeur peut travailler sur du code qui peut prendre des jours, des semaines ou des mois avant d'aller en production * **Le fossé des personnes** : les développeurs écrivent le code, et d'autres personnes le déploient. * **Le fossé des outils** : les développeurs peuvent utiliser une pile comme Nginx, SQLite, et OS X, alors que le déploiement de production utilise Apache, MySQL, et Linux. **Les applications 12 facteurs sont conçues pour le [déploiement continu (en)](http://avc.com/2011/02/continuous-deployment/) en gardant un fossé étroit entre le développement et la production.** Si l'on regarde les trois fossés décrits plus haut : * Réduire le fossé temporel : un développeur peut écrire du code et le déployer quelques heures ou même juste quelques minutes plus tard. * Réduire le fossé des personnes : les personnes qui écrivent le code sont impliquées dans son déploiement et pour surveiller son comportement en production. * Réduire le fossé des outils : réduire, autant que possible, les différences entre le développement et la production. Si l'on résume cela en un tableau :
Application traditionnelle Application 12 facteurs
Temps entre les déploiements Semaines Heures
Auteurs du code et ceux qui le déploient Des personnes différentes Les mêmes personnes
L'environnement de développement et celui de production Divergents Aussi similaires que possible
[Les services externes](./backing-services), tels que la base de données, la file de messages, ou le cache sont des éléments importants de la parité développement/production. La plupart des langages fournissent des bibliothèques qui simplifient l'accès à ces services externes, en fournissant des adaptateurs pour différents types de services. Voici quelques exemples dans le tableau ci-dessous.
Type Langage Librairie Adaptateurs
Base de données Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
File de messages Python/Django Celery RabbitMQ, Beanstalkd, Redis
Cache Ruby/Rails ActiveSupport::Cache Mémoire, système de fichiers, Memcached
Les développeurs trouvent parfois agréable d'utiliser des services externes légers dans leur environnement local, alors qu'un service externe plus sérieux et robuste est utilisé en production. Par exemple, utiliser SQLite en local, et PostgreSQL en production; ou bien, durant le développement, mettre les données en cache dans la mémoire des processus locaux, et utiliser Memcached en production. **Les développeurs des applications 12 facteurs résistent au besoin d'utiliser des services externes différents entre le développement local et la production**, même lorsque les adaptateurs permettent d'abstraire en théorie beaucoup de différences entre les services externes. Les différences entre les services externes signifient que de petites incompatibilités surviennent, ce qui va faire que du code qui fonctionnait et qui passait les tests durant le développement ou la validation ne fonctionnera pas en production. Ce type d'erreurs crée de la friction en défaveur du déploiement continu. Le coût de cette friction et son impact négatif sur le déploiement continu est extrêmement élevé lorsqu'il est cumulé sur toute la vie de l'application. Les services locaux légers sont moins attirants aujourd'hui qu'ils ne l'étaient autrefois. Les services externes modernes tels que Memcached, PostgreSQL, et RabbitMQ ne sont pas difficiles à installer et à faire fonctionner grâce aux systèmes de paquets modernes comme [Homebrew](http://mxcl.github.com/homebrew/) et [apt-get](https://help.ubuntu.com/community/AptGet/Howto). Autre possibilité, des outils de provisionnement comme [Chef](http://www.opscode.com/chef/) et [Puppet](http://docs.puppetlabs.com/), combinés à des environnements virtuels légers comme [Docker](https://www.docker.com/) et [Vagrant](http://vagrantup.com/) permettent aux développeurs de faire fonctionner des environnements locaux qui reproduisent de très près les environnements de production. Le coût d'installation et d'utilisation de ces systèmes est faible comparé aux bénéfices d'une bonne parité développement/production et du déploiement continu. Les adaptateurs à ces différents systèmes externes sont malgré tout utiles, car ils rendent le portage vers de nouveaux services externes relativement indolores. Mais tous les déploiements de l'application (environnement de développement, validation, production) devraient utiliser le même type et la même version de chacun de ces services externes. content/pt_br/dependencies.md0000644000175000056700000000573015226251677015055 0ustar0000000000000000## II. Dependências ### Declare e isole explicitamente as dependências A maioria das linguagens de programação oferecem um sistema de pacotes para a distribuição de bibliotecas de apoio, como o [CPAN](http://www.cpan.org/) para Perl ou [Rubygems](http://rubygems.org/) para Ruby. Bibliotecas instaladas por meio de um sistema de pacotes podem ser instaladas em todo o sistema (conhecidas como "site packages") ou com escopo dentro do diretório contendo a aplicação (conhecidas como "vendoring" ou "building"). **Uma aplicação doze-fatores nunca confia na existência implícita de pacotes em todo o sistema.** Ela declara todas as dependências, completa e exatamente, por meio de um manifesto de *declaração de dependência*. Além disso, ela usa uma ferramenta de *isolamento de dependência* durante a execução para garantir que não há dependências implícitas "vazamento" a partir do sistema circundante. A completa e explícita especificação de dependências é aplicada de maneira uniforme tanto para produção quanto para desenvolvimento. Por exemplo, [Bundler](https://bundler.io/) para Ruby oferece o formato de manifesto `Gemfile` para declaração de dependência e `bundle exec` para isolamento das mesmas. Em Python existem duas ferramentas separadas para estas etapas -- [Pip](http://www.pip-installer.org/en/latest/) é utilizado para declaração e [Virtualenv](http://www.virtualenv.org/en/latest/) para isolamento. Mesmo C tem [Autoconf](http://www.gnu.org/s/autoconf/) para declaração de dependência, e vinculação estática pode fornecer o isolamento. Não importa qual o conjunto de ferramentas, declaração de dependência e isolamento devem ser sempre usados juntos -- apenas um ou o outro não é suficiente para satisfazer doze-fatores. Um dos beneficios da declaração de dependência explícita é que simplifica a configuração da aplicação para novos desenvolvedores. O novo desenvolvedor pode verificar a base de código do aplicativo em sua máquina de desenvolvimento, exigindo apenas runtime da linguagem e gerenciador de dependência instalado como pré-requisitos. Eles serão capazes de configurar tudo o que é necessário para rodar o código da aplicação com um determinístico *comando de build*. Por exemplo, o comando de build para Ruby/Bundler é `bundle install`, enquanto que para Clojure/[Leiningen](https://github.com/technomancy/leiningen#readme) é `lein deps`. Aplicações doze-fatores também não contam com a existência implícita de todas as ferramentas do sistema. Exemplos incluem executar algum comando externo como do ImageMagick ou `curl`. Embora possam existir essas ferramentas em muitos ou mesmo na maioria dos sistemas, não há garantia de que eles vão existir em todos os sistemas em que a aplicação pode rodar no futuro, ou se a versão encontrada em um futuro sistema será compatível com a aplicação. Se a aplicação precisa executar alguma ferramenta do sistema, essa ferramenta deve ser vendorizada na aplicação. content/th/dependencies.md0000644000175000056700000001154115226251677014357 0ustar0000000000000000## II. Dependencies ### มี�ารประ�าศ�ละ�ย��ารอ้างอิง (dependency) ทั้งหมดอย่างชัดเจน ภาษาโปร��รมส่วนให�่จะมีระบบ packaging สำหรับรองรับ library ต่างๆ อย่างเช่น [CPAN](http://www.cpan.org/) สำหรับ Perl หรือ [Rubygems](http://rubygems.org/) สำหรับ Ruby, Library จะถู�ติดตั้งผ่านทางระบบ packaging สามารถติดตั้ง system-wide (เรีย�ว่า "site packages") หรือ�ำหนดขอบเขตเป็นไดเร�ทรอรีที่มี app (เรีย�ว่า "vendoring" หรือ "bundling") **twelve-factor app ไม่ขึ้นอยู่�ับ implicit existence of system-wide packages.** โดยประ�าศ�ารอ้างอิงทั้งหมด อย่างครบถ้วน �ละอย่าง�น่นอน ด้วย *dependency declaration* manifest นอ�จา�นี้ใช้เครื่องมือ *dependency isolation* ระหว่างทำงานเพื่อให้�น่ใจว่าไม่มี�ารอ้างอิง�บบปริยาย "รั่ว (leak in)" จา�ระบบรอบๆ, รายละเอียด�ารอ้างอิงที่ครบถ้วน�ละชัดเจนใช้รูป�บบเดียว�ันทั้ง production �ละ development ตัวอย่างเช่น [Bundler](https://bundler.io/) สำหรับ Ruby มีรูปบบ `Gemfile` manifest สำหรับประ�าร�ารอ้างอิง �ละ `bundle exec` สำหรับ�ย��ารอ้างอิง ใน Python มีเครื่องมือ 2 ตัวสำหรับ�ต่ละขั้นตอน -- [Pip](http://www.pip-installer.org/en/latest/) ใช้สำหรับประ�าศอ้างอิง �ละ [Virtualenv](http://www.virtualenv.org/en/latest/) สำหรับ�ย��ารอ้างอิง �ม้อย่าง C มี [Autoconf](http://www.gnu.org/s/autoconf/) สำหรับประ�าร�ารอ้างอิง �ละ static linking สามารถทำ�ย��ารอ้างอิงได้ ไม่ว่าจะใช้เครื่องมืออะไร�็ตาม�ต่�ารประ�ารศ�ละ�ย��ารอ้างอิงจำเป็นเสมอที่ใช้ร่วม�ัน -- ถ้ามีเพียงหนึ่งหรืออื่นๆ ไม่เพียงพอที่ตรงตาม twelve-factor ประโยชน์อย่างหนึ่งของ�ารประ�าศ�ารอ้างอิงที่ชัดเจนคือลดความยุ่งยา�ใน�ารติดตั้งสำหรับ developer ใหม่สำหรับ app, developer ใหม่สามารถ check out codebase ของ app มายังเครื่องที่ใช้ development ต้อง�ารเพียง�ค่ติดตั้ง language runtime �ละ dependency manager เป็นข้อ�ำหนดเบื้องต้น พว�เขาจะสามามารถติดตั้งทุ�สิ่งที่ต้อง�ารเพื่อจะรัน code ของ app ด้วย *build command* ตัวอย่างเช่น ใช้ build command สำหรับ Ruby/Bundler คือ `bundle install` ขณะที่ Clojure/[Leiningen](https://github.com/technomancy/leiningen#readme) คือ `lein deps` Twelve-factor app ยังคงไม่ขึ้นอยู่�ับเครื่องมือที่มีอยู่�ล้ว ตัวอย่างเช่นใช้ shell out ไปยัง ImageMagick หรือ `curl` ขณะที่เครื่องมือเหล่านี้อาจจะมีอยู่บนระบบส่วนให�่�ล้ว ซึ่งจะไม่รับประ�ันว่าจะมีอยู่บนเครื่องทั้งหมดซึ่ง app จะทำงานในอนาคต หรือ version ที่หาเจอในเครื่องที่จะไปทำงานในอนาคตจะเข้า�ันได้�ับ app ถ้า app จำเป็น shell out ใช้เครื่องมือของเครื่อง ที่เครื่องมืออาจจะ vendord ให้ app locales/ja.yml0000644000175000056700000000033315226251677012056 0ustar0000000000000000ja: # Name of language listed in locales menu language: 日本語 (ja) # A text to make known that the article is a translation not an original. # Empty for English, original. translation: (日本語訳) content/fr/logs.md0000644000175000056700000000521715226251677012674 0ustar0000000000000000## XI. Logs ### Traitez les logs comme des flux d'évènements Les *logs* fournissent de la visibilité au comportement de l'application qui s'exécute. Dans des environnements de type serveur, ils sont généralement écrits dans un fichier, sur le disque (dans un fichier de log). Mais c'est simplement un format de sortie. Les logs sont des [flux (en)](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/) d'agrégats d'évènements, ordonnés dans le temps, collectés à travers les flux de sortie de tous les processus et services externes qui tournent. Les logs, dans leur forme brute, sont au format texte avec un événement par ligne (bien que les traces d'exécutions puissent s'étaler sur plusieurs lignes). Les logs n'ont pas de début ou de fin fixe, mais se remplissent en continu tant que l'application est en marche. **Une application 12 facteurs ne s'inquiète jamais du routage ou du stockage de ses flux de sortie.** Elle ne devrait pas tenter d'écrire ou de gérer les fichiers de logs. À la place, chaque processus qui tourne écrit ses flux d'événements, sans tampon, vers `stdout`, la sortie standard ; en phase de développement local, les développeurs pourront voir ce flux dans leur terminal et observer le comportement de l'application. Dans les déploiements de validation ou de production, les flux de chaque processus seront capturés par leur environnement d'exécution, assemblés avec les autres flux de l'application, et routés vers une ou plusieurs destinations pour un visionnage et un archivage de longue durée. Le lieu d'archivage n'est pas visible et ne peut être configuré par l'application : ils sont complètements gérés par l'environnement d'exécution. Des routeurs opensource de logs, (tel que [Logplex](https://github.com/heroku/logplex) et [Fluentd](https://github.com/fluent/fluentd)) existent pour cela. Le flux d'événements d'une application peut être routé dans un fichier, ou surveillé en temps réel (avec tail) dans un terminal. Plus pertinent, les flux peuvent être envoyés vers un outil d'indexation et d'archivage des logs tel que [Splunk](http://www.splunk.com/), ou bien dans un entrepôt de données générique comme [Hadoop/Hive](http://hive.apache.org/). Ces systèmes sont très puissants et flexibles pour inspecter le comportement de l'application au cours du temps, ce qui inclut : * Trouver un événement spécifique dans le passé * Faire des graphiques à grande échelle des tendances (comme le nombre de requêtes par minutes) * Lever des alertes, à partir d'heuristiques définies par l'utilisateur (comme alerter dès que la quantité d'erreurs par minutes dépasse un certain seuil) content/ja/disposability.md0000644000175000056700000000724315226251677014573 0ustar0000000000000000## IX. 廃棄容易性 ### 高速�起動�グレースフルシャットダウン�堅牢性を最大化�る **Twelve-Factor App� [プロセス](./processes) � *廃棄容易* ��る������座�起動・終了�る�����る。** ��性質��素早�柔軟�スケール��[コード](./codebase) や [設定](./config) �対�る変更�素早�デプロイを容易���本番デプロイ�堅牢性を高�る。 プロセス�� **起動時間を最�化�る** よ�努力�る����る。�想的���1��プロセス��起動コマンド�実行�れ��ら数秒間�リクエストやジョブを���れるよ���る����る。起動時間�短���[リリース](./build-release-run)作業やスケールアップ�アジリティ�高��る。�ら��プロセスマ�ージャー�必��応��プロセスを新��物�マシン�簡��移動��るよ���る���堅牢性も高��る。 プロセス��プロセスマ�ージャー�ら **[SIGTERM](http://en.wikipedia.org/wiki/SIGTERM)シグナルを���������グレースフル�シャットダウン�る。** Webプロセス�場��グレースフルシャットダウン��サービス�ート�リッスンを中止�(従��新��リクエストを拒�)�処�中�リクエスト�終了�る��待��シャットダウン�る���実��れる。��モデル��暗黙的�HTTPリクエスト�短�(����数秒)��を仮定���る。ロング�ーリング�場��クライアント�コ�クション�失�れ����途切れ���接続を試�る����る。 ワーカープロセス�場��グレースフルシャットダウン��処�中�ジョブをワーカーキュー�戻����実��れる。例���[RabbitMQ](http://www.rabbitmq.com/)��ワーカー�[`NACK`](http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.nack)を�る�����る。[Beanstalkd](https://beanstalkd.github.io)���ワーカー�接続�失�れる�ジョブ�自動的�キュー�戻る。[Delayed Job](https://github.com/collectiveidea/delayed_job#readme)���ロックをベース���システム���ジョブレコード�ロックを確実�解放�る必���る。��モデル���暗黙的�����ジョブ�[�入�能](http://en.wikipedia.org/wiki/Reentrant_%28subroutine%29)��る��を仮定���る。�入�能性�一般的���果をトランザクション�包ん�り�処�を[��等](http://en.wikipedia.org/wiki/Idempotence)��る���実��れる。 ���下層��ードウェア�障害�関��言���プロセス� **�然�死�対��堅牢** ��る����る。��よ��事態�起�る����`SIGTERM`�よるグレースフルシャットダウン�比�れ����少�����れ�も起�り�る。��対策���推奨�れる方法��Beanstalkd���堅牢�キューイング�ックエンドを使��クライアント�接続�切断�れ�り�タイムアウト�����ジョブをキュー�戻�るよ���る����る。��ら���も�Twelve-Factor App�予期���グレースフル����止を���処���るよ�設計�れる。[「クラッシュオンリー�設計](http://lwn.net/Articles/191059/)���コンセプトを��[論�的帰�](http://docs.couchdb.org/en/latest/intro/overview.html)�導�。 content/uk/codebase.md0000644000175000056700000000710515226251677013503 0ustar0000000000000000## I. Кодова база ### Одна кодова база, що від�лідковуєть�� в �и�темі контролю вер�ій та має багато розгортань За�то�унок дванадц�ти факторів завжди від�лідковують�� в �и�темі контролю вер�ій, такій �к [Git](http://git-scm.com/), [Mercurial](https://www.mercurial-scm.org/) або [Subversion](http://subversion.apache.org/). Копі� бази даних від�теженн� ревізій називаєть�� *репозиторій коду (code repository)*, що ча�то �корочуєть�� до *code repo* або про�то *repo*. *Кодова база* — це один репозиторій (в централізованих �и�темах контролю вер�ій, �к Subversion), або декілька репозиторіїв, �кі мають �пільний початковий комміт (в децентралізованих �и�темах контролю вер�ій, �к Git). ![Одна кодова база — багатьо розгортань](/images/codebase-deploys.png) Завжди і�нує однозначна відповідні�ть між кодовою базою і за�то�унком: * За на�вно�ті кількох баз коду, це не за�то�унок, це — розподілена �и�тема. Кожен компонент в розподіленій �и�темі є за�то�унком, і кожен з них може окремо дотримувати�� дванадц�ти факторів. * Кілька різних за�то�унків, що �пільно викори�товують загальну базу коду, є порушенн�м дванадц�ти факторів. Рішенн�м в даній �итуації є виділенн� загального коду в бібліотеки, �кі можуть бути підключені через [менеджер залежно�тей](./dependencies). І�нує тільки одна кодова база дл� кожного за�то�унку, але може бути багато розгортань одного і того �амого за�то�унку. *Розгортанн�м (deploy)* є запущений екземпл�р за�то�унку. Це, �к правило, production-�айт і один або більше staging-�айтів (проміжних розгортань). Крім того, розробник має копію за�то�унку, запущеного в його локальному �ередовищі розробки. Кожну з таких копій також можна кваліфікувати �к розгортанн� (deploy). Кодова база має бути єдина дл� в�іх розгортань, хоча в кожному розгортанні можуть бути активні різні її вер�ії. �априклад, розробник може мати де�кі зміни у коді, �кі ще не додані в staging-розгортанн�; staging-розгортанн� може мати де�кі зміни, �кі ще не додані в production-розгортанн�. �ле в�і вони викори�товують одну і ту �аму кодову базу, таким чином можна їх ідентифікувати �к різні розгортанн� одного і того ж за�то�унку.content/ko/dev-prod-parity.md0000644000175000056700000001231115226251677014751 0ustar0000000000000000## X. dev/prod �치 ### development, staging, production 환경� 최대한 비슷하게 유지 역사�으로, 개발 환경(애플리케�션� 개발�가 �접 수정하는 로컬� [배�](./codebase))과 production 환경(최종 사용�가 접근하게 �는 실행 중� 배�) 사��는 � 차�가 있었습니다. �러한 차�는 3가지 �역� 걸처 나타납니다. * **시간� 차�**: 개발�가 작업한 코드는 production� 반��기까지 며칠, 몇주, 때로는 몇개월� 걸릴 수 있습니다. * **담당�� 차�**: 개발�가 작성한 코드를 시스템 엔지니어가 배�합니다. * **툴� 차�**: production 배�는 아파치, MySQL, 리눅스를 사용하는�, 개발�는 Nginx, SQLite, OS X를 사용할 수 있습니다. **Twelve Factor App� 개발 환경과 production 환경� 차�를 작게 유지하여 [지��� 배�](http://avc.com/2011/02/continuous-deployment/)가 가능하�� 디�� �었습니다.** 위�서 언급한 3가지 차�� 대한 대�책� 아래와 같습니다. * 시간� 차�� 최소화: 개발�가 작성한 코드는 몇 시간, 심지어 몇 분 후� 배��니다. * 담당�� 차�를 최소화: 코드를 작성한 개발�들� 배�와 production�서� 모니터�� 깊게 관여합니다. * 툴� 차�를 최소화: 개발과 production 환경� 최대한 비슷하게 유지합니다. 위� 내용� 표로 요약하면 아래와 같습니다.
전통�� 애플리케�션 Twelve-Factor App
배� 간� 간격 몇 주 몇 시간
코드 작성�와 코드 배�� 다른 사람 같� 사람
개발 환경과 production 환경 불�치함 최대한 유사함
��터베�스, �잉 시스템, �시와 같� [백엔드 서비스](./backing-services)는 dev/prod �치가 중요한 �역 중 하나 입니다. 많� 언어들� 다른 종류� 서비스� 대한 *어댑터*를 �함하고 간단하게 백엔드 서비스� 접근할 수 있는 ��브러리들� 제공합니다. 아래� 표� 몇가지 예가 나와있습니다.
종류 언어 ��브러리 어댑터
��터 베�스 Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
�(Queue) Python/Django Celery RabbitMQ, Beanstalkd, Redis
�쉬 Ruby/Rails ActiveSupport::Cache 메모리, 파�시스템, Memcached
production 환경�서는 � 본격��고 강력한 백엔드 서비스가 사용��� 불구하고, 개발�는 �신� 로컬 개발 환경�서는 가벼운 백엔드 서비스를 사용하는 것� � 매력� �낄 수� 있습니다. 예를 들어, 로컬�서는 SQLite를 사용하고 production�서는 PostgreSQL� 사용한다�가, 개발 중�는 로컬 프로세스� 메모리를 �싱용으로 사용하고 production�서는 Memcached를 사용하는 경우가 있습니다. **Twelve-Factor 개발�는 개발 환경과 production 환경�서 다른 백엔드 서비스를 쓰고 싶� 충�� 저항합니다.** �론�으로는 어댑터가 백엔드 서비스 간� 차�를 추�화해준다고 해�, 백엔드 서비스 간� 약간� 불�치가 개발 환경과 스테�징 환경�서는 �작하고 테스트� 통과� 코드가 production 환경�서 오류를 �으킬 수 있기 때문입니다. �런 종류� 오류는 지��� 배�를 방해합니다. 애플리케�션� �명 주기 전체를 보았� 때, �러한 방해와 지��� 배�� 둔화가 발�시키는 �해는 엄청나게 �니다. 가벼운 로컬 서비스는 예전처럼 필수�� 것� 아닙니다. Memcache, PostgreSQL, RabbitMQ와 같� 현대�� 백엔드 서비스들� [Homebrew](http://mxcl.github.com/homebrew/)나 [apt-get](https://help.ubuntu.com/community/AptGet/Howto)와 같� 현대�� 패키징 시스템 �분� 설치하고 실행하는� 아무런 어려움� 없습니다. 혹� [Chef](http://www.opscode.com/chef/) and [Puppet](http://docs.puppetlabs.com/)와 같� 선언� provisioning 툴과 [Vagrant](http://vagrantup.com/)등� 가벼운 가� 환경� 결합하여 로컬 환경� production 환경과 매우 유사하게 구성할 수 있습니다. dev/prod �치와 지��� 배�� ��� 비하면 �러한 시스템� 설치하고 사용하는 비용� 낮습니다. 여러 백엔드 서비스� 접근할 수 있는 어댑터는 여전히 유용합니다. 새로운 백엔드 서비스를 사용하�� �팅하는 작업� 고통� 낮춰주기 때문입니다. 하지만, 모든 애플리케�션� 배�들(개발� 환경, 스테�징, production)� 같� 종류, 같� 버전� 백엔드 서비스를 �용해야합니다. content/pl/toc.md0000644000175000056700000000234615226251677012521 0ustar0000000000000000The Twelve Factors ================== ## [I. Codebase](./codebase) ### Jedno źródło kodu śledzone systemem kontroli wersji, wiele wdrożeń ## [II. Zależności](./dependencies) ### Jawnie zadeklaruj i wydziel zależności ## [III. Konfiguracja](./config) ### Przechowuj konfigurację w środowisku ## [IV. Usługi wspierające](./backing-services) ### Traktuj usługi wspierające jako przydzielone zasoby ## [V. Buduj, publikuj, uruchamiaj](./build-release-run) ### Oddzielaj etap budowania od uruchamiania ## [VI. Procesy](./processes) ### Uruchamiaj aplikację jako jeden lub więcej bezstanowych procesów ## [VII. Przydzielanie portów](./port-binding) ### Udostępniaj usługi przez przydzielanie portów ## [VIII. Współbieżność](./concurrency) ### Skaluj przez odpowiednio dobrane procesy ## [IX. Zbywalność](./disposability) ### Zwiększ elastyczność pozwalając na szybkie uruchamianie i zatrzymywanie aplikacji ## [X. Jednolitość środowisk](./dev-prod-parity) ### Utrzymuj konfigurację środowisk jak najbardziej zbliżoną do siebie ## [XI. Logi](./logs) ### Traktuj logi jako strumień zdarzeń ## [XII. Zarządzanie aplikacją](./admin-processes) ### Uruchamiaj zadania administracyjne jako jednorazowe procesy content/zh_cn/toc.md0000644000175000056700000000171615226251677013207 0ustar000000000000000012-factors ================== ## [I. 基准代�](./codebase) ### 一份基准代�,多份部署 ## [II. �赖](./dependencies) ### 显�声明�赖关系 ## [III. �置](./config) ### 在环境中存储�置 ## [IV. �端�务](./backing-services) ### 把�端�务当作附加资� ## [V. 构建,�布,�行](./build-release-run) ### 严格分离构建和�行 ## [VI. 进程](./processes) ### 以一个或多个无状�进程�行应用 ## [VII. 端�绑定](./port-binding) ### 通过端�绑定�供�务 ## [VIII. 并�](./concurrency) ### 通过进程模型进行扩展 ## [IX. 易处�](./disposability) ### 快速�动和优雅终止�最大化�壮性 ## [X. 开�环境与线上环境等价](./dev-prod-parity) ### 尽�能的��开�,预�布,线上环境相� ## [XI. 日志](./logs) ### 把日志当作事件� ## [XII. 管�进程](./admin-processes) ### ��管�任务当作一次性进程�行 content/pl/who.md0000644000175000056700000000033615226251677012526 0ustar0000000000000000Dla kogo przeznaczony jest ten dokument? ============================== Dla każdego developera tworzącego aplikacje, które działają jako usługa. Dla każdego Dev-opsa, który wdraża i zarządza takimi aplikacjami. content/tr/background.md0000644000175000056700000000304215226251677014057 0ustar0000000000000000Arkaplan ========== Bu belgeye katkıda bulunan kişiler, yüzlerce uygulamanın geliştirilmesi ve dağıtılmasında doğrudan yer almış, ve dolaylı olarak Heroku platformundaki üzerinde çalıştığımız yüz binlerce uygulamanın geliştirilmesi, çalıştırılması ve ölçeklendirilmesine tanık olmuştur. Bu belge, çok çeşitli yazılım servislerinin, yabancı ortamdaki deneyim ve gözlemlerini birleştirir. Bu uygulama geliştirimindeki uygun, ideal uygulamalarda bir üçgenleştirme vardır; uygulamanın zamanla olan doğal gelişmesinin, büyümesinin temel etmenlerine dikkat etmek, uygulamanın kod tabanında çalışan yazılımcıların arasındaki işbirliğinin önemli noktaları ve yazılım erozyonunun getirdiği ücretten kaçmak. Bizim motivasyonumuz, modern uygulama geliştirmesinde gördüğümüz bazı sistemik problemlerin farkındalığını arttırmak, terimlerle birlikte geniş kavramsal çözüm setleri sağlamak ve bu problemleri tartışmak için ortak bir kelime sunmakdır. Martin Fowler'ın kitabları *Patterns of Enterprise Application Architecture* ve *Refactoring'den* ilham alınmıştır. views/home.erb0000644000175000056700000000044215226251677012077 0ustar0000000000000000
<%= render_markdown('intro') %>
<%= render_markdown('background') %>
<%= render_markdown('who') %>
<%= render_markdown('toc') %>
content/es/background.md0000644000175000056700000000303115226251677014037 0ustar0000000000000000Contexto ======== Los colaboradores de este documento han estado involucrados directamente en el desarrollo y despliegue de cientos de aplicaciones, y han sido testigos indirectos del desarrollo, las operaciones y el escalado de cientos de miles de aplicaciones mediante nuestro trabajo en la plataforma [Heroku](http://www.heroku.com/). Este documento sintetiza toda nuestra experiencia y observaciones en una amplia variedad de aplicaciones SaaS. Es la triangulación entre practicas ideales para el desarrollo de aplicaciones, prestando especial atención a las dinámicas del crecimiento natural de una aplicación a lo largo del tiempo, las dinámicas de colaboración entre desarrolladores que trabajan en el código base de las aplicaciones y [evitando el coste de la entropía del software](http://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts/). Nuestra motivación es mejorar la concienciación sobre algunos problemas sistémicos que hemos observado en el desarrollo de las aplicaciones modernas, aportar un vocabulario común que sirva para discutir sobre estos problemas, y ofrecer un conjunto de soluciones conceptualmente robustas para esos problemas acompañados de su correspondiente terminología. El formato está inspirado en los libros de Martin Fowler *[Patterns of Enterprise Application Architecture](http://books.google.com/books/about/Patterns_of_enterprise_application_archi.html?id=FyWZt5DdvFkC)* y *[Refactoring](http://books.google.com/books/about/Refactoring.html?id=1MsETFPD3I0C)*. content/pt_br/concurrency.md0000644000175000056700000000554415226251677014764 0ustar0000000000000000## VIII. Concorrência ### Escale através do processo modelo Qualquer programa de computador, uma vez executado, está representado por um ou mais processos. Aplicações web têm tomado uma variedade de formas de processo de execução. Por exemplo, processos PHP rodam como processos filhos do Apache, iniciados sob demanda conforme necessário por volume de requisições. Processos Java tomam o caminho inverso, com a JVM proporcionando um processo uber maciço que reserva um grande bloco de recursos do sistema (CPU e memória) na inicialização, com concorrência gerenciada internamente via threads. Em ambos os casos, o(s) processo(os) em execução são apenas minimamente visível para os desenvolvedores da aplicação. ![Escala é expressado como processos em execução, a diversidade da carga de trabalho é expressada como tipos de processo.](/images/process-types.png) **Na aplicação doze-fatores, processos são cidadãos de primeira classe.** Processos na aplicação doze-fatores utilizam fortes sugestões do modelo de processos UNIX para execução de serviços daemon, o desenvolvedor pode arquitetar a aplicação dele para lidar com diversas cargas de trabalho, atribuindo a cada tipo de trabalho a um *tipo de processo*. Por exemplo, solicitações HTTP podem ser manipuladas para um processo web, e tarefas background de longa duração podem ser manipuladas por um processo trabalhador. Isto não exclui processos individuais da manipulação de sua própria multiplexação interna, por threads dentro do runtime da VM, ou o modelo async/evented encontrado em ferramentas como [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http://twistedmatrix.com/trac/), ou [Node.js](http://nodejs.org/). Mas uma VM individual pode aumentar (escala vertical), de modo que a aplicação deve ser capaz de abranger processos em execução em várias máquinas físicas. O modelo de processo realmente brilha quando chega a hora de escalar. O [compartilhar-nada, natureza horizontal particionada de um processo da aplicação doze-fatores](./processes) significa que a adição de mais simultaneidade é uma operação simples e de confiança. A matriz de tipos de processo e número de processos de cada tipo é conhecida como o *processo de formação*. Processos de uma app doze-fatores [nunca deveriam daemonizar](http://dustin.github.com/2010/02/28/running-processes.html) ou escrever arquivos PID. Em vez disso, confiar no gerente de processo do sistema operacional (como [systemd](https://www.freedesktop.org/wiki/Software/systemd/), um gerenciador de processos distribuídos em uma plataforma de nuvem, ou uma ferramenta como [Foreman](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html) em desenvolvimento) para gerenciar [fluxos de saída](./logs), responder a processos travados, e lidar com reinícios e desligamentos iniciados pelo usuário. content/uk/background.md0000644000175000056700000000433615226251677014060 0ustar0000000000000000Передумови ========== Люди, що працювали над цим документом, брали безпоÑ�ередню учаÑ�ть в розробці Ñ– розгортанні Ñ�отень заÑ�тоÑ�унків, Ñ– мимоволі Ñ�тали Ñ�відками розвитку, екÑ�плуатації та маÑ�штабуваннÑ� Ñ�отень тиÑ�Ñ�ч заÑ�тоÑ�унків під чаÑ� нашої роботи над платформою [Heroku](http://www.heroku.com/). Ð’ цьому документі узагальнюєтьÑ�Ñ� веÑ�ÑŒ наш доÑ�від викориÑ�таннÑ� Ñ– Ñ�поÑ�тереженнÑ� за найрізноманітнішими SaaS-заÑ�тоÑ�унками "в Ð´Ð¸ÐºÑ–й Ð¿Ñ€Ð¸Ñ€Ð¾Ð´Ñ–". Документ об'єднує ідеальні практики розробки заÑ�тоÑ�унків, оÑ�облива увага приділÑ�єтьÑ�Ñ� динаміці органічного роÑ�ту заÑ�тоÑ�унку з плином чаÑ�у, взаємодії між розробниками, Ñ�кі працюють над кодом заÑ�тоÑ�унку, та [уникненню витрат при ерозії програмного забезпеченнÑ�](http://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts/). Ð�аша мета полÑ�гає в тому, щоб підвищити обізнаніÑ�ть про деÑ�кі Ñ�иÑ�темні проблеми, Ñ�кі ми бачили в практиці розробки Ñ�учаÑ�них заÑ�тоÑ�унків, а також в тому, щоб Ñ�формулювати Ñ�пільні загальні понÑ�ттÑ� длÑ� обговореннÑ� цих проблем, Ñ– запропонувати набір загальних концептуальних рішень цих проблем з Ñ�упутньою термінологією. Формат навіÑ�ний книгами Мартіна Фаулера (Martin Fowler) *[Patterns of Enterprise Application Architecture](https://books.google.com/books/about/Patterns_of_enterprise_application_archi.html?id=FyWZt5DdvFkC)* та *[Refactoring](https://books.google.com/books/about/Refactoring.html?id=1MsETFPD3I0C)*.content/de/admin-processes.md0000644000175000056700000000457215226251677015010 0ustar0000000000000000## XII. Admin-Prozesse ### Admin/Management-Aufgaben als einmalige Vorgänge behandeln Die [Prozess-Formation](./concurrency) ist das Bündel von Prozessen zur Erledigung der üblichen Aufgaben einer App (wie die Abarbeitung von Web-Requests) während sie läuft. Daneben möchten Entwickler oft einmalige Administrativ- oder Wartungsaufgaben an der App erledigen, wie zum Beispiel: * Datenbank-Migrationen starten (z.B. `manage.py migrate` in Django, `rake db:migrate` in Rails) * Eine Konsole starten (auch bekannt als [REPL](http://en.wikipedia.org/wiki/Read-eval-print_loop) Shell) um beliebigen Code zu starten oder die Modelle der App gegen die Live-Datenbank zu prüfen. Die meisten Sprachen stellen eine REPL zur Verfügung, wenn man den Interpreter ohne Argumente startet (z.B. `python` oder `perl`) oder in manchen Fällen mit einem anderen Kommando (z.B. `irb` für Ruby, `rails console` für Rails). * Einmalig auszuführende Skripte aus dem Repo der App starten (z.B. `php scripts/fix_bad_records.php`). Einmalige Administrationsprozesse sollten in einer Umgebung laufen, die identisch ist zu der Umgebung der üblichen [langlaufenden Prozesse](./processes). Sie laufen gegen einen [Release](./build-release-run) und benutzen dieselbe [Codebase](./codebase) und [Konfiguration](./config) wie jeder Prozess, der gegen einen Release läuft. Administrationscode wird mit dem App-Code ausgeliefert um Synchronisationsprobleme zu vermeiden. Dieselben Techniken zur [Isolation von Abhängigkeiten](./dependencies) sollten für alle Prozessarten verwendet werden. Wenn zum Beispiel ein Ruby-Web-Prozess das Kommando `bundle exec thin start` verwendet, dann sollte eine Datenbankmigration `bundle exec rake db:migrate` verwenden. Wenn ein Python-Programm Virtualenv nutzt, sollte es sein mitgeliefertes `bin/python` sowohl zum Start des Tornado Webservers als auch für alle `manage.py` Admin-Prozesse verwenden. Die Zwölf Faktoren bevorzugen Sprachen, die eine REPL Shell direkt mitbringen. Das erleichtert das Starten von einmal auszuführenden Skripten. In einem lokalen Deploy rufen Entwickler einmal auszuführende Admin-Prozesse direkt über ein Shell-Kommando im Checkout-Verzeichnis der App auf. In einem Produktions-Deploy können Entwickler ssh oder andere Kommando-Fernsteuerungs-Mechanismen benutzen, die die Ausführungsumgebung dieses Deploys für das Starten eines solchen Prozesses bereitstellt. content/fr/background.md0000644000175000056700000000317315226251677014046 0ustar0000000000000000Contexte ========== Les contributeurs de ce document ont été directement impliqués dans le développement et le déploiement de centaines d'applications, et ont vu, indirectement, le développement, la gestion et le grossissement de centaines de milliers d'applications via le travail fait sur la plateforme [Heroku](http://www.heroku.com/). Ce document fait la synthèse de toutes nos expériences et observations sur une large variété d'applications software-as-a-service. C'est la triangulation de pratiques idéales pour le développement d'applications, en portant un soin tout particulier aux dynamiques de la croissance organique d'une application au cours du temps, les dynamiques de la collaboration entre les développeurs qui travaillent sur le code de l'application, en [évitant le coût de la lente détérioration du logiciel dans un environnement qui évolue (en)](http://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts/). Notre motivation est de faire prendre conscience de certains problèmes systémiques que nous avons rencontrés dans le développement d'applications modernes, afin de fournir un vocabulaire partagé pour discuter ces problèmes, et pour offrir un ensemble de solutions conceptuelles générales à ces problèmes, ainsi que la terminologie correspondante. Le format est inspiré par celui des livres de Martin Fowler *[Patterns of Enterprise Application Architecture (en)](http://books.google.com/books/about/Patterns_of_enterprise_application_archi.html?id=FyWZt5DdvFkC)* et *[Refactoring (en)](http://books.google.com/books/about/Refactoring.html?id=1MsETFPD3I0C)*. content/uk/who.md0000644000175000056700000000045215226251677012531 0ustar0000000000000000Кому Ñ�лід читати цей документ? ============================== Розробникам, Ñ�кі Ñ�творюють SaaS-заÑ�тоÑ�унки. Ops-інженерам, Ñ�кі виконують розгортаннÑ� Ñ– керуваннÑ� такими заÑ�тоÑ�унками.locales/ru.yml0000644000175000056700000000035415226251677012115 0ustar0000000000000000ru: # Name of language listed in locales menu language: РуÑ�Ñ�кий (ru) # A text to make known that the article is a translation not an original. # Empty for English, original. translation: (РуÑ�Ñ�кий перевод)content/es/dev-prod-parity.md0000644000175000056700000001250615226251677014755 0ustar0000000000000000## X. Igualdad entre desarrollo y producción ### Mantener desarrollo, preproducción y producción tan parecidos como sea posible Históricamente, han existido dos tipos de entorno muy diferenciados: desarrollo (donde un desarrollador puede editar en vivo en un [despliegue](./codebase) local de la aplicación) y producción (un despliegue en el que la aplicación está en ejecución disponible para que lo usen los usuarios). Estas diferencias se pueden clasificar en tres tipos: * **Diferencias de tiempo**: Un desarrollador puede estar trabajando en un código durante días, semanas o incluso meses antes de que llegue a producción. * **Diferencias de personal**: Los desarrolladores escriben el código y los ingenieros de operaciones lo despliegan. * **Diferencias de herramientas**: Los desarrolladores pueden usar una pila como Nginx, SQLite y OS X, mientras que en producción se usa Apache, MySQL y Linux. ** Las aplicaciones "twelve-factor" están diseñadas para hacer [despliegues continuos](http://avc.com/2011/02/continuous-deployment/) que reducen las diferencias entre los entornos de desarrollo y producción.** Teniendo en cuenta las tres diferencias descritas anteriormente: * Reducir las diferencias de tiempo: Un desarrollador puede escribir código y tenerlo desplegado en tan solo unas horas, o incluso, minutos más tarde. * Reducir las diferencias de personal: Los desarrolladores que escriben el código están muy involucrados en el despliegue y observan su comportamiento en producción. * Reducir las diferencias de herramientas: tratar de hacer que desarrollo y producción sean tan parecidos como sea posible. Resumiendo lo anterior en una tabla:
Aplicaciones tradicionales Aplicaciones "twelve-factor"
Tiempo entre despliegues Semanas Horas
Desarrolladores vs Ingenieros de operaciones Diferentes personas Mismas personas
Entorno de desarrollo vs entorno de producción Divergentes Lo más parecidos posibles
Los ["backing services"](./backing-services), como la base de datos de la aplicación, el sistema de colas, o la caché, es donde la igualdad en los entornos de desarrollo y producción es importante. Muchos lenguajes ofrecen librerías en las que se simplifica el acceso a los servicios de respaldo, incluidos *adaptadores* para diferentes tipos de servicios. Se pueden observar algunos ejemplos en la siguiente tabla.
Tipo Lenguaje Librería Adaptador
Base de datos Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
Colas Python/Django Celery RabbitMQ, Beanstalkd, Redis
Caché Ruby/Rails ActiveSupport::Cache Memoria, sistema de ficheros, Memcached
Los desarrolladores, a veces, caen en la tentación de usar "backing services" ligeros en sus entornos de desarrollo, mientras que en producción se usan los más serios y robustos. Por ejemplo, se usa SQLite en desarrollo y PostgreSQL en producción; o memoria local para la caché en desarrollo y Memcached en producción. **Un desarrollador "twelve-factor" no cae en la tentación de usar diferentes "backing services" en desarrollo y producción**, incluso cuando los adaptadores teóricamente abstractos están lejos de cualquier diferencia en "backing services". Las diferencias entre los servicios de respaldo tienen que ver con las pequeñas incompatibilidades que surgen de la nada, causando que el código que funciona y pasa los tests en desarrollo o en preproducción, falle en producción. Este tipo de errores provocan conflictos que desincentivan la filosofía del despliegue continuo. El coste de estos conflictos y el enfriamiento subsiguiente del despliegue continuo es extremadamente alto cuando se hace balance del total de tiempo de vida de una aplicación. Los servicios ligeros locales son menos atractivos que antes. Los "backing services" modernos como Memcached, PostgreSQL, y RabbitMQ no son difíciles de instalar y ejecutar gracias a los sistemas de gestión de paquetes modernos, como [Homebrew](http://mxcl.github.com/homebrew/) y [apt-get](https://help.ubuntu.com/community/AptGet/Howto). Al mismo tiempo, las herramientas de gestión de la configuración como [Chef](http://www.opscode.com/chef/) y [Puppet](http://docs.puppetlabs.com/) combinadas con entornos virtuales ligeros como [Docker](https://www.docker.com/) o [Vagrant](http://vagrantup.com/) permiten a los desarrolladores ejecutar entornos locales que son muy parecidos a los entornos de producción. El coste de instalar y usar estos sistemas es bajo comparado con el beneficio que se puede obtener de la paridad entre desarrollo y producción y del despliegue continuo. Los adaptadores de los "backing services" todavía son de gran utilidad, porque hacen que cambiar de unos a otros sea un trámite relativamente poco doloroso. No obstante, todos los despliegues de una aplicación (en entornos de desarrollo, preproducción y producción) deberían usar el mismo tipo y versión de cada uno de los "backing services". content/ko/logs.md0000644000175000056700000000510515226251677012672 0ustar0000000000000000## XI. 로그 ### 로그를 ì�´ë²¤íЏ 스트림으로 취급 *로그*는 실행 중ì�¸ appì�˜ ë�™ìž‘ì�„ 확ì�¸í•  수 있는 수단입니다. 서버 기반 환경ì—�서 로그는 보통 디스í�¬ì—� 파ì�¼(로그 파ì�¼)로 저장ë�©ë‹ˆë‹¤. 하지만, ì�´ê²ƒì�€ 출력 í�¬ë§· 중 하나ì—� 불과합니다. 로그는 모든 실행중ì�¸ 프로세스와 백그ë�¼ìš´ë“œ 서비스ì�˜ 아웃풋 스트림으로부터 수집ë�œ ì�´ë²¤íŠ¸ê°€ 시간 순서로 ì •ë ¬ë�œ [스트림](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/)입니다. 가공ë�˜ì§€ 않는 로그는 보통, 하나ì�˜ ì�´ë²¤íŠ¸ê°€ 하나ì�˜ ë�¼ì�¸ìœ¼ë¡œ 기ë¡�ë�œ í…�스트 í�¬ë§·ìž…니다.(예외(exception)ì—� ì�˜í•œ backtrace는 여러 ë�¼ì�¸ì—� 걸ì³� 있ì�„ 수ë�„ 있습니다.) 로그는 ê³ ì •ë�œ 시작과 ë��ì�´ 있는 것ì�´ 아니ë�¼, appì�´ 실행ë�˜ëŠ” ë�™ì•ˆ 계ì†� í��르는 í��름입니다. **Twelve-Factor Appì�€ 아웃풋 스트림ì�˜ 전달ì�´ë‚˜ 저장ì—� 절대 관여하지 않습니다.** appì�€ 로그 파ì�¼ì�„ 작성하거나, 관리하려고 해서는 안ë�©ë‹ˆë‹¤. 대신, ê°� 프로세스는 ì�´ë²¤íЏ 스트림ì�„ 버í�¼ë§� ì—†ì�´ `stdout`ì—� 출력합니다. 로컬 개발환경ì—�서 작업 중ì�¸ 개발ìž�는 appì�˜ ë�™ìž‘ì�„ 관찰하기 ì›�하면 ê°�ìž�ì�˜ 터미ë„�ì—� 출력ë�˜ëŠ” ì�´ 스트림ì�„ ë³¼ 수 있습니다. 스테ì�´ì§•ì�´ë‚˜ production ë°°í�¬ì—�서는 ê°� 프로세스ì�˜ 스트림ì�€ 실행 환경ì—� ì�˜í•´ì„œ 수집ë�œ 후, 앱ì�˜ 다른 모든 스트림과 병합ë�˜ì–´ 열람하거나 보관하기 위한 하나 ì�´ìƒ�ì�˜ 최종 목ì �지로 전달ë�©ë‹ˆë‹¤. ì�´ëŸ¬í•œ 목ì �지들ì�€ 앱ì�´ 열람하거나 설정할 수 없지만, 대신 실행 환경ì—� ì�˜í•´ì„œ 완벽하게 관리ë�©ë‹ˆë‹¤. ì�´ë¥¼ 위해 오픈 소스 로그 ë�¼ìš°í„°ë¥¼ 사용할 수 있습니다.(예: ([Logplex](https://github.com/heroku/logplex), [Fluentd](https://github.com/fluent/fluentd))) 앱ì�˜ ì�´ë²¤íЏ 스트림ì�€ 파ì�¼ë¡œ 보내지거나 터미ë„�ì—�서 실시간으로 보여질 수 있습니다. 가장 중요한 ì �ì�€ 스트림ì�€ [Splunk](http://www.splunk.com/)ê°™ì�€ 로그 ë¶„ì„� 시스템과 [Hadoop/Hive](http://hive.apache.org/)ê°™ì�€ 범용 ë�°ì�´í„° 보관소ì—� 보내질 수 있다는 ì �입니다. ì�´ëŸ¬í•œ 시스템ì�€ 장기간ì—� 걸ì³� 앱ì�˜ ë�™ìž‘ì�„ 조사할 수 있는 강력함과 유연성ì�„ 가지게 ë�©ë‹ˆë‹¤. * 과거ì�˜ 특정 ì�´ë²¤íŠ¸ë¥¼ 찾기 * 트렌드ì—� 대한 거대한 규모ì�˜ 그래프 (예: 분당 요청 수) * 유저가 ì •ì�˜í•œ 휴리스틱ì—� 따른 알림 (예: 분당 오류 수가 임계 ê°’ì�„ 넘는 경우 알림ì�„ ë°œìƒ�시킴) content/pt_br/intro.md0000644000175000056700000000216215226251677013556 0ustar0000000000000000Introdução ============ Na era moderna, software é comumente entregue como um serviço: denominados *web apps*, ou *software-como-serviço*. A aplicação doze-fatores é uma metodologia para construir softwares-como-serviço que: * Usam formatos **declarativos** para automatizar a configuração inicial, minimizar tempo e custo para novos desenvolvedores participarem do projeto; * Tem um **contrato claro** com o sistema operacional que o suporta, oferecendo **portabilidade máxima** entre ambientes que o executem; * São adequados para **implantação** em modernas **plataformas em nuvem**, evitando a necessidade por servidores e administração do sistema; * **Minimizam a divergência** entre desenvolvimento e produção, permitindo a **implantação contínua** para máxima agilidade; * E podem **escalar** sem significativas mudanças em ferramentas, arquiteturas, ou práticas de desenvolvimento. A metodologia doze-fatores pode ser aplicada a aplicações escritas em qualquer linguagem de programação, e que utilizem qualquer combinação de serviços de suportes (banco de dados, filas, cache de memória, etc).content/tr/logs.md0000644000175000056700000000501115226251677012702 0ustar0000000000000000## XI. Günlükler ### Günlüklere olay akışı gibi davranma *Günlükler* çalışan bir uygulamanın davranışının görünür olmasını saÄŸlar. Sunucu tabanlı ortamlarda genellikle diskteki bir dosyaya yazılırlar("logfile"); ama bu sadece çıktı formatındadır. Günlükler, bütün çalışan süreçler ve destek servislerinin çıktı akışlarından kümelenmiÅŸ, zaman sıralı olayların [akışıdır](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/). Günlükler ilk formda her bir satır için bir olay olacak ÅŸekilde yazı formatındadır(Bununla birlikte istisnalardaki geri dönüşleri birden fazla satırda ölçebilir). Günlükler baÅŸta ve sonda düzeltilmemiÅŸ ama akış, uygulama iÅŸlediÄŸi sürece devam eder. **On iki faktör uygulaması çıkış akışlarının depolaması veya yönlendirilmesiyle ilgilenmez.** Günlük dosyalarını yazma ve yönetme yapmamalıdır. Bunun yerine, her çalışan süreç kendi olay akışını tamponlamadan `stdout`'a yazar. Yerel geliÅŸtirme süresince, geliÅŸtirici uygulamanın davranışını gözlemlemek için terminallerinin önplanında bu akışı inceleyecekler. Evreleme ve ürün dağıtımlarında herbir sürecin akışı çalışma ortamı tarafından yakalanmış diÄŸer uygulamadaki, diÄŸer bütün akışlarla birlikte sıralanmış, görüntüleme ve uzun dönem arÅŸivleme için bir veya daha fazla son hedeflerine yönlendirilmiÅŸ olacaklar. Bu arÅŸivsel hedefler uygulama tarafından görülebilir veya yapılandırılabilir deÄŸildir, bunun yerine tamamen çalışma ortamı tarafından yönetilirler. Açık kaynak günlük yönlendiricileri ([Logplex](https://github.com/heroku/logplex) ve [Fluentd](https://github.com/fluent/fluentd) gibi) bu amaç için eriÅŸilebilirdir. Bir uygulama için olay akışı dosyaya yönlendirilebilir veya terminalden gerçek zamanlı kuyruklama aracılığla izlenebilir. En önemlisi, akış [Splunk](http://www.splunk.com/) gibi günlük numaralandırma ve analiz sistemine veya [Hadoop/Hive](http://hive.apache.org/) gibi genel amaçlı veri depolama sistemine gönderilebilir. Bu sistemler uygulamanın zamanla olan davranışlarında iç gözlem yapmak için büyük güç ve esnekliÄŸe izin verir. Bunları içerir: * GeçmiÅŸteki özel olayları bulmak. * EÄŸilimlerin geniÅŸ aralıklı grafikleri(her bir dakika için olan istekler gibi). * Kullanıcı tanımlı kestirme yollara göre aktif uyarma(Bir dakikadaki hataların niceliÄŸi belirli bir alt sınırı geçtiÄŸi zaman olan uyarı gibi). content/uk/backing-services.md0000644000175000056700000001077115226251677015160 0ustar0000000000000000## IV. Сторонні Ñ�лужби ### Вважайте Ñ�торонні Ñ�лужби (backing services) підключеними реÑ�урÑ�ами *СтороннÑ� Ñ�лужба* — це будь-Ñ�ка Ñ�лужба, Ñ�ка доÑ�тупна заÑ�тоÑ�унку по мережі Ñ– необхідна длÑ� його нормальної роботи: бази даних (наприклад, [MySQL](http://dev.mysql.com/) або [CouchDB](http://couchdb.apache.org/)), Ñ�иÑ�теми черг повідомлень (наприклад, [RabbitMQ](http://www.rabbitmq.com/) або [Beanstalkd](https://beanstalkd.github.io)), Ñ�лужби SMTP длÑ� вихідної пошти (наприклад, [Postfix](http://www.postfix.org/)), Ñ�иÑ�теми кешуваннÑ� (наприклад, [Memcached](http://memcached.org/)) тощо. Допоміжні Ñ�лужби, такі Ñ�к бази даних, традиційно управлÑ�ютьÑ�Ñ� тими ж Ñ�иÑ�темними адмініÑ�траторами, Ñ�кі розгортають заÑ�тоÑ�унок. Окрім локальних Ñ�лужб, заÑ�тоÑ�унок може також викориÑ�товувати Ñ�лужби, що надаютьÑ�Ñ� Ñ– керуютьÑ�Ñ� третіми Ñ�торонами: SMTP-Ñ�ервіÑ�и (наприклад, [Postmark](http://postmarkapp.com/)), Ñ�ервіÑ�и збору метрик (наприклад, [New Relic](http://newrelic.com/) або [Loggly](http://www.loggly.com/)), Ñ�ховища бінарних даних (наприклад, [Amazon S3](http://aws.amazon.com/s3/)), а також різні Ñ�ервіÑ�и, що надають доÑ�туп через API (наприклад, [Twitter](http://dev.twitter.com/), [Google Maps](https://developers.google.com/maps/), або [Last.fm](http://www.last.fm/api)). **Код заÑ�тоÑ�унку дванадцÑ�ти факторів не бачить жодних відмінноÑ�тей між локальними Ñ– Ñ�торонніми Ñ�ервіÑ�ами.** ДлÑ� заÑ�тоÑ�унку кожен з них Ñ” підключеним реÑ�урÑ�ом, доÑ�тупним за URL-адреÑ�ою або іншими даними, що зберігаютьÑ�Ñ� в [конфігурації](./config). [РозгортаннÑ�](./codebase) заÑ�тоÑ�унку дванадцÑ�ти факторів повинно мати можливіÑ�ть, наприклад, замінити локальну базу даних MySQL на будь-Ñ�ку керовану третьою Ñ�тороною (наприклад, [Amazon RDS](http://aws.amazon.com/rds/)) без жодних змін в коді заÑ�тоÑ�унку. Крім того, локальний Ñ�ервер SMTP може бути замінений на Ñ�торонній SMTP-Ñ�ервіÑ� (наприклад, Postmark) без зміни коду. Ð’ обох випадках необхідно змінити лише налаштуваннÑ� відповідного реÑ�урÑ�у в конфігурації заÑ�тоÑ�унку. Кожна окрема Ñ�тороннÑ� Ñ�лужба Ñ” *реÑ�урÑ�ом*. Ð�априклад, база даних MySQL Ñ” реÑ�урÑ�ом; дві бази даних MySQL (що викориÑ�товуютьÑ�Ñ� длÑ� шардінгу на рівні заÑ�тоÑ�унку) кваліфікуютьÑ�Ñ� Ñ�к два різних реÑ�урÑ�и. ЗаÑ�тоÑ�унок дванадцÑ�ти факторів Ñ�приймає ці бази даних Ñ�к *підключені реÑ�урÑ�и*, що вказує на їхній Ñ�лабкий зв'Ñ�зок з розгортаннÑ�м, в Ñ�кому вони підключені. production-розгортаннÑ�, в Ñ�кому підключені чотири Ñ�торонні Ñ�лужби РеÑ�урÑ�и за необхідноÑ�ті можуть бути підключені та відключені до розгортаннÑ� заÑ�тоÑ�унку. Ð�априклад, Ñ�кщо база даних заÑ�тоÑ�унку функціонує некорекно у зв'Ñ�зку з апаратними проблемами, адмініÑ�тратор може запуÑ�тити новий Ñ�ервер бази даних, відновленої з оÑ�танньої резервної копії. Поточна база даних може бути відключена, а нова база даних підключена — вÑ�е це без будь-Ñ�ких змін коду. public/images/attached-resources.png0000644000175000056700000015517315226251677016352 0ustar0000000000000000‰PNG  IHDRhÆŸ¨Š pHYs  šœ IDATxì� œãÝlj ‚ ˆ·«NÒ ‚ !jSQQQQQ¤®©ûõm´EÅ‹J\*ˆºkTQ‹”¨ *%*š%AԪДU‹÷û;™Ù>;{ÎÙsvÏîž³ûû>¿}®3óÌwfgžÿ<ÏÌéúÕW_u±™€ ˜€ ˜€ ˜€ ˜€ ˜€ ´?�Ú¿ n� ˜€ ˜€ ˜€ ˜€ ˜€ ˜€ØAóy`&`&`&`&`&`%BÀZ‰7ÃLÀLÀLÀLÀLÀì ù000000�!нDÚáf˜€ ˜@IèÚµkª¤äƘ@óÔð1°eÍ[ÔK™€ ˜€ ´�®þŠc{`÷6MÀJ•ŽÙ`ÚvêSªmt»L uÔ½ˆ{ýÙ,ãª&`&`íHÀZ;Â÷¦MÀJ�ÚC´jDéµÌ-2�X'­¦EkðÂ&`&`mBÀï µ foÄL Œô(£¶º©&�/�žùVt=00�ö%àwÐÚ—¿·n&Pú–ÐÄÚÒo¦[h T�ò=¾'LÀL <øâ]ÇÉ­4h?25¬ªý6ï-›@ᘪ»�¥R…/é%LÀLÀÚ›€§8¶÷ðöMÀLÀLÀLÀLÀL "`ͧ‚ ˜€ ˜€ ˜€ ˜€ ˜€ ”;h%r Ü 00000°ƒæsÀLÀLÀLÀLÀLÀJ„€´9n† ˜€ ˜€ ˜€ ˜€ ˜€ ØAó9`&`&`&`&`&`%BÀZ‰7ÃLÀLÀLÀLÀLÀì ù000000�!`­D„›a&`&`&`&`&`vÐ|˜€ ˜€ ˜€ ˜€ ˜€ ˜@‰°ƒV"ÂÍ000000;h>LÀLÀLÀLÀLÀL DØA+‘áf˜€ ˜€ ˜€ ˜€ ˜€ ˜€4Ÿ&`&`&`&`&`&P"ì •È�p3LÀLÀLÀLÀLÀLÀšÏ00000(vÐJä@¸&`&`&`&`&`&`Íç€ ˜€ ˜€ ˜€ ˜€ ˜€ ”;h%r Ü 00000°ƒæsÀLÀLÀLÀLÀLÀJ„€´9n† ˜€ ˜€ ˜€ ˜€ ˜€ ØAó9`&`&`&`&`&`%BÀZ‰7ÃLÀLÀLÀLÀLÀì ù000000�!`­D„›a&`&`&`&`&`vÐ|˜€ ˜€ ˜€ ˜€ ˜€ ˜@‰°ƒV"ÂÍ000000;h>LÀLÀLÀLÀLÀL DØA+‘áf˜€ ˜€ ˜€ ˜€ ˜€ ˜€4Ÿ&`&`&`&`&`&P"ì •È�p3LÀLÀLÀLÀLÀLÀšÏ00000(vÐJä@¸&`&`&`&`&`&`Íç€ ˜€ ˜€ ˜€ ˜€ ˜€ ”;h%r Ü 00000°ƒæsÀLÀLÀLÀLÀLÀJ„€´9n† ˜€ ˜€ ˜€ ˜€ ˜€ ØAó9`&`&`&`&`&`%BÀZ‰7ÃLÀLÀLÀLÀLÀì ù000000�!`­D„›a&`&`&`&`&`vÐ|˜€ ˜€ ˜€ ˜€ ˜€ ˜@‰°ƒV"ÂÍ000000;h>LÀLÀLÀLÀLÀL DØA+‘áf˜€ ˜@¡ºvíúUÕ‘÷o´݈6(t½-­Ï6ëÛÕÒu5µ<ÛZÝÖkËí‡ÛuÜLÀLÀŠAÀZ1(z&`&P:ºÑ”UP �AÏâ°Tv8c¿öc§þŠÚLÀLÀL C°ƒÖ!£wÂLÀ²XŸ’ó³––w�FÎÖIîÂW_}Õ5V²Ìi00(uvÐJý¹}&`&��À!Y‘êß@“‚ÅF(Ný#¾z}‚fÄu‰ï�žŽòÿEø$Ú;.Cò{£É¨iZåt´YXGqò²NyÌVFþ è(ôg¤6.E£�âu†Û!?½�¸,L'êåµñòQ¸.áDôú ½†NB]Ãu;n&`&`Å  §ŒÅX�×a&`‚}îÇÙ‘Ê`g†q�¬ Ò%¥­õp9haÃ([�ôÇQÞç”-¬•­•Ϥ|7Ê'�>%ÊK?§Îyq&u5�ò9ô­8/ ÿI¸Vœ§v…ÛU:.S˜©L Pt'Ê4u±ŽüÝ�ŽS#˵=V[ÈþÕ³e#o!9½I;�íi�%gìëB• Ö—¶ViGMÀLÀJ”€GÐJôÀ¸Y&`&ÐtÌ»#½sva°ü»A<޾N$…z£SXf¸B${ mIqÙ¹Ôùöòhúïñü��³¿O¡ Ñ"ÔR;„ÄÎÙ‹Ä7Ak ÛQwtiÒÑS:™G½zkÆþÕ/KDŽî@$‡ö:ÛØ8ÒYC¸®„tÙLÀLÀŠDÀZ‘@z5&`&Оè$ÇSü>§r’Ž Ú3-ˆÇÑsqhÞD 9X?� Ï ïïñ3£|�j�ÅìÄO¡®Ö¥‘¦3‚üæFÇ žÌz 9I§£'PìHÕšŒºá �cû/¡‘Y?ŠH¼oX©“Æ÷`¿—pþMì¤ûïÝ60�¢ГH› ˜€ ˜@Ç%ð7víÜ »§‘©Ð†‰§‚ø“A|Ç Þ?ˆ?ÄÿÄ›Ý*XpNÇAZL¼2Nºáêç‰%AükA¼³FG±ãÝ� ØLÀLÀŠ@À#hE€èU˜€ ˜@ ø’¶,Cššx)Œc£÷Â’–ÌÓÂØ–ÆÂ�‚øšA|Õ þï ®‘®¼ŒQuì3YØ–O2UhF^¸Î|ö/Ü„FÎÒK�PÚ ¿‘Œi†b&`&PvЊÃÑk10�v%€ã�~‹°Z õG§¢³4¬6‘Ö �™^A½°N½ÓByX_ïie5:õá¨SÏ,Ãu‡ÛÏR=¯ì°ía{Ãõ‡uêW Ãðƒ!õùŽtѨäÚh¾Xpl‡¡3sHëk¡!}ØÅf&`&�;hy@r0èhð94ÒZýTB2w ©�³ƒüyA|û >$ˆÇÑÏâaøA‰ø##Aq:úR�Q¿n:ù)T…*£òzlj¼®Á2™¢…î_¦u8¯!�½£äZ„' û�Ž�~"A¹„ôÍHï%¾…äÄÙa› ˜€ ä `-™€ ˜@'"ðÛ`_5âÑW"/üä•A�»‚ø%ÔM!}Åñâ ?Ž.ˆ#„gQoU4€øUA~U§>¶‹©»1’ðk´ º"*ÔTÎØ´ýuãD†°Ðý˰ g%Äš~‚áXÊ^D;!9Þ+¡u�FØäHÉñiä°‘o30H°ƒ–⤠˜€ tFt°ïa¿¯�öý›„ú‚£¤¸ì"êÌ\MÿUÝç£ô„ Q5Z%íê cq9V/£p4-¨ÒåF÷G[ÊÁûéÓû_ S‘,S['§s3üiÆþeX‹³b8[:.¡÷Ðu¤{n‹äŒ-�·ÞEŒßsÔqy …Û¤m&`&`ØAËÅY&`&Ð Щ>šý>ÍBŸ"}üãOh?ÊÎ"¬7Òÿ!¡÷Šn@ú�ˆœ®hj`Ô�DÆOÑëHÙxÉ ÓhK#£þ—dþ�ˆ4ÝQÛú¥×Où£ÄeÇ *¤)”r¼ÿDº�±\Þû×`A'2ˆGÏî�Ž×p*­‚ž']-×¹�¼É ¶q꺡�Fõ˜€ ˜€ @@/•„ ˜€ ˜@D€ÎâãD+ øNViGM ä p/¤‘© ¡}9�«ƒt‹¢¬_£§Û ‘¬÷Ò׋Î&}>i�ªþ½‹¾Nž~§ï âuBr6é]ˆW¡§Ñ!HSjÿ¨º„9�eõ `ªÞ•³¢ MÀL  x­ š›l&`&`íEç¨+Û–c¤‡3Iª/±’Ý»<èò½(¼Ouä°É9“ÃölT6* 7'�42zq”×…e2ް‘¿u¦ Eq]‡&`&БØAëHGÓûb&`&`­L@v1úÒôÒ5Ñ èUÒz·P¦�„Èþ¸î’6âÙ5J*�æwÎä°izd<½q¶–Ãñú.y+¢Ù(mäO'2�2åkÊãZúi†P¦‘»Ø�¨ÅMÀL  ØA+Ç£æ6›€ ˜€ ˜@Èà°ÅÓ+p¼4›'þé„ß%w‹e?�ò®$¼‰týÏ+°l<¢¦–ØLÀL C°ƒÖ!£wÂLÀLÀʃNÕ´T•~šá>4m‚ž@éß²£Ž>:"Çí²OIïC\ƒÒF^ýˆŸ“>�P£to¡iHË6ùEHêÙLÀL ¤ØA+©ÃáÆ˜€ ˜@é ã[ßÉ¥¿«/øµŠµÕvZ¥ñ^i!âѳ‡Yè—èu$gLþˆGËÎ!-'nO΋?þé“þq9É.õ#jÔÙ™ô¦èWhšŠž$_ŽžÎÙÑÓ,ÿ¡ÍLÀJš€´’>iýHq¬oý -E7"½GÔ¤Qoô4úiyM_‹;ÞúŸÚþÒ¶ÞCÝ•*å«\õÔÉ·å #M/Ü…Ÿ¾Ï±D~E8U#ýöÙÒ|– Þk¨.¨«/9†#j‡’Þý�zý /G²H/!ŒÏ½—&Óž>ë¯Ñ1�”éóþk#�æ�dª£sh‘60hKvÐÚ’¶·e&`%J€N¸¦�é# ê ª³ªôžHÓÂ2Ùmd^�ôáur7B¹ø#ëR:“=N¦F&äÄ­�Æ ™9êSœþ¼ú‚;�FEÔ±ÖòzçhËjt¥ qu¶ïSÓ4·áéØÿìå+çÞ¨þKËDà|2g¢÷á|3:‰}{[ƒ5¿©‡ú$ÿÉQu~ ®sSŽÚ³¤{îŽd:>&üg:µü%z€ Çld”;uQÒ� ˜€ ´>;h­ÏØ[00�r  ß§úVÔп¦Ð†¨ÑØ‘ÿC$û Z]¤¦>)küç=²ÔYN!MI“m�ŽIÇ2üa[r´N‰Š^#Ü8’â²s©óíåÑ.×G¡µ1´0Ö ë8€iÑ�QRNÙÁèô!ezG먨NT¥íœªäˆÚoÙú t"zí‚d÷ JE°,§²Hçëó$Êâ¶È«"=é!…¾.©ÑÙa¨»â¡‘·3ºÉñ{ Í@ç þa=ÇMÀL PvÐ %æú&`&Ð1 ììÖ)tTßDo‘§÷r’vX�q õô±…K‚¼ýƒx=•º Ñ›d†ë��½°nÿiÑ2,ûw‰ø™Q~WÂØ!|„xìPîCGY£mê`+Œ÷OåzWÉ–›@ì´$kÉQŽ®A‹`ûúŠ�¹dýVOs>|ˆö@•ý>z½B:~ 6¼IU>^ ,=2FÞÄõÐà]ô,’Åû¾ñÐ}¨Šºé>aô;ò&#=Ì8ˆ®@rf5Š|+Òöl&`&P0�ôŦॼ€ ˜€ ˜@G#>õ�;ªÚÇ?gØÑ­ƒi:¤>Ïÿ„¿@‡ › ˜€ DÀZA¸\ÙLÀ:,�yÁžmćñ8ª÷nb ;»q^¶P#1±éc"±Å£q: ç‰pùpêãì Ž¢ê8˾†nAú²Ÿ,Î_žòß‚ à´,@ú�2‹uÐX4Õ¢l¦Q¨QHS&å¬=…NAý²-Кù‘ã•Þñ�Ю(>ŸÔN™KYì°iJäVèô6’3V‡F°lÂ=ÐæHN¬úVw’ÿ:awö3|0A–ÍLÀr°ƒ–›�KMÀL ³¸+ØÑKèT¦Ð†ä]äÇÑ[ãá/©·:Úé7Ƥ¤ÃW¿ˆ²MÑ×ɸ(Î$¼#ˆ'£úB_lZ¾¯DÆ…q&á•A\Ñ{Ð?£¼¢PiåÛŠD¤]�öb•rÖäÜÈ!®A¹LÎФwÖ^Eç¡Á¹h‹2Ú ÷Ëôð8ÒÏ?¨�¤}“ÉAÛ½„F 9ÿ‘Õ”I™–�ífòãOú«ž~»ïtôºíŽÂúñrCª®„Úmä1c£œi&Ъì µ*^¯ÜLÀʆÀµ´ôù¨µ[.DÕh=”4�D=ejäà#;xa•%ƒžd¼†£m¢B},D#+�Ž®œ*µM¦Ñ‰¿GR\vuf.�.ÿKú3brB»%Êó/Øê]/ý®Ø!¬r}4 ]ŽªQ.ëOáxô Nˆ>8£÷¾vE=r-Ôe´]¦ÑÁï �Ck¢PøÎš®ÿ ÙÚy¬D<>ß–×PÙ>h6„äÜý ½�¦"ýü ¨Òçú»‘—Íô?¦i“³Up¾ ˜@Ç"`­cOï� ˜€ 4‹Ru:wC7 9\êhÎ@êh70êÖ‘±':½ˆ>EZæ~´#ås3™¾¶8ɉ«AW!MÓú²åGSxš…´-}läOh?ÊÎ"Ìdr"CÓ~ÙÚ€€Ž'ªB'¡¾lrk$'ln›¯ |,š‰4òvt’cßæFÛ“ï¬Í§CнHÓrWG“Ðÿ¡xã,÷.mÞˆ¼‹Ñÿ"9iw uÑKHË~m‹†¢'%-ƒäœ&G×İ-B60�N@@/vw‚Ýô.š€ ˜@~èizSeP{×ɪ íhàY“�c²ãYÀš «Êvû³Ä«ÑRsÙ¶œ„Ncì¿F@SÁ÷…Au�n—(í’¶7ÒtÈJÔ5erNªÐ4¤QºÅ„íb´_ÖµèFô¤‡Ú§+‘Îõahôc¤ª/L#h¯¡w�êÈÖGg ÑGèh šÀ>žN¨¯JjdM6äÔ‘ý•êÙLÀ:8�|.Œ�wÏLÀL £ C»û¢{›F5bKަÅùÛ˜@ä\iÔiǪ¡FbGFÊ6R¦ã9<ÒD–›C\ÎÚ¬o.a[Úlì´”m§ßŤ=zðð&Œ´/jÓv”J‘-9g ½/éï—ƒöiM[”³*;’ô]¤wW¥4¡¨ =MùN„60�N@ÀZ'8ÈÞE(WtV¶¦íý¨…)×}q»ÛŒÀlj-éKzvÐPJ!É¿õRÚ!'çVþ×{î‚F£H£RÙlÒù,·€PÓfïEú9€:ÂV3Ö?‡mê�0M¿üá¯ÑSäßO(iÔKÛw äH*.›GzEB�ªÉ¦‘Þ’°/úšJzeÂuЗ(¶QQä©8# YFm7}°$~/4¬â¸ ˜@X¡ Ûì&›€ tt<îf7_@zrn3�| ¼OÅ/Ðè.4œŽ«Þ[³•0ŽQ-zÅ?Ž=„æž�ôÞW.ëGá‰èq¤w¿ZýDZiã³lKŸÔijã;l÷èJmŸ´Ú¬‘1Mü-š�ÔÆç�œ)Ù=(v¾f³N9eßErâ^D±Å#lr@ë�í¬„.!ãf¤i’oÕ:b&Pöì •ý!ô˜@Ç @gcUtº-Ú#=}–§?äo†Aë)m+t<ëĺ-ZÌöÖEÝQo´?rǵ-Ày79-á�cŸÊ&f5±™Þ”�AÓ�>2r?:)¿¨FÛ>EW¢­XñöHŽÙóHŽ×Pò�Er:?D{ 5È×ôƇÐ+¤çÆÎWmTLû(û�þ��°-!9[y�­D\£mk£¯�¦^j™sÐΊç2êÈÁ+:—\Ût™ ˜@þü‘�üY¹¦ ˜@+ ³°*«©#3½ƒ¡îh8R(…>DúaÙ ‹n´ãqVZ¬Ø `8Z8�ÒÒTÐÚ’øHHОfE#§BŽ�ÞõÒTÈy®HÎÝtt7×M‹l7cäŒ}½…–¡ è ´ zíF?§ÞÙĉ~Kú(ÂFùÿ‘qºÝF�*ò4]R(Ö"”ÃÖ�àÒŸ(ù½›Š®¡l\œïÐL 4è"a30�v'@'AÓ�¦D Gú}â¿GÝ�ž:«S¦ÎÊšHÓ˜ºÚLÀ:® ñ�cïÃnkIŽÆTƒrÙP /Bá�c+¯Í�}ÐtF]Ïdš&©ëÚ9è”vÎeÚ7Yƒé�˳ÒãuÜÀ:«¢|­{ŹDö"�cªÑD�¸…Ö—„Þ×ÓC0› ˜@‰°ƒVbÄÍ1�Î@@�t~†}½Š+¦ ɵxÊâËÇšœ¿ùh ’¦QC}QRåO"™FÒ´žuPü±‘#©ÛÈa£Üf&ІÜÁiCØÞ” tFêX`© ûþ6y_�ò7%ìŽôÂüqhÒSÞï¢;�FÕÔÁЈډèßèNd30�œp‚£Ih7*êÖƒ‘®+ºÞd3]�†£‰HÓ _D?C³-Кù´]ލ]ÁöäœÕÏDˆ¶;h’>­ˆ4Âö{$TÎ× $»—uêwu}•MFšN:lG¨Àf&жì µ-ooÍ:#� Ùiu&’:hzÒ«'Ä? Ã w%nŠ*ëc!Ÿ¿!JËAû)Ú„|-c30�¼ pÝÐ{k·"M÷“#"'LŽÉb”Ëä˜��ä¨-D—¡JÔ=×B­UFû?BúšíÐÄ6æ’–C¦}¬"”S¶€T&G­/Z‚t=•í½<è¢��4@3ô K¦÷yeµH#‡ Þ]£Í[�·Ò55þØHè°U‘¯wÒF [ÑUh°òl&`­GÀZë±õšMÀºt ½oÖ -@/¡ØBí62ŸCßBÓоh:ÒçõW¦Óñ&º ©“‘·Ñ‘èŽÔqz¥ò^ÐMÀ:®/Íýql9>ºné½µVûqì|ûñ.ú0ª2á~è`òþJ8*Ê¿7 ›tØØ§=©«‘´]ÑRô'ò~H˜6âÝÐÎ ã<‡&`-#`­eü¼´ ˜@@€ô¾¨ }Œž¡èèð¨Êwõ‘�Øê4:râÔ ¸¥Ð�hoòG¢W‰dl»7ÒÉ4§ŽÓt²™€ ˜@“¸î,@—¢�©¬©�c‘®%¹õ |$šŒä¬=¥ëêGº]ŒökJçTt7íèJ#îBù{,jÐJQ¨÷Ùd ¶åY]~M¨e�a=ÿKø�bJäIôg6q Ú>.ph&Ð<+4o1/e&` pSž@εè*¤¯…=…æqC×Ç<^@êäÔ?u%^ï ïB½÷‘žò@êPÄ/»«8/£ ƒÑÍT^„.BÁ‚c)SÊf&`yàZTƒ®Gš>¸&Ò(ÔTƒr™]‡ÚýDZÕHÚ/ ?4¢ì+�œ³øc# 6®™ú€Ó·�ìlÒgþZW‘‰‡¬W¤¾é”ÿ˜€ 4›€´f£ó‚&`1nÚzo줧Ëk¡¿¡¿£”iÚË$$;ny�þÛÀA ò вþè¤)’µ;erÄz“¿+²™€ ˜@³ààè½5}ýð0V°>ÒÛåhÊeý)�4ª¦÷ÖÚãDZµ�ýH~l$é°m-ôÂÓ‘³%èu[üÎÚI¬ïlä/ìÆdš@3 tå©™‹z10�ÎJ€ÎÅFìû*è¯\CÒòæ“Þ,“ËÈûÒ¨–~kG›;Њè÷,>‚°`c{)’ç©Gzr›Íä4NAײ­¹Ù*Åù¬WÓ*ã4á0–« ÒŽš@Éà<^H#SACûrWiG‹LæX¥œ•QhPž«_F½hz€c´4ÏåÚ¤ûô 6ôšFÛö#­‡\A$¿ª!½%ñ—Ðûh}ò¾ ldÔÛšÌ1QÁtê=Ú¨’3LÀê x­…#&`º‰¢®ÙHP´ ºŸrÝ�_F/�Þ0ª¿áÕh º�ƒdùJxRçã"4„¼¡‚�3¶§/Bª ꀞŠz¡L¦'Ú'"uôîÄÜL•œg&`Å À5FSº/@Û±¾ ÐÑh&ªCÙ¬'£Ñ-Hï­éDZO@ÙhË|öå-¶wÒWŸ&Ôþ¼ˆbG,=Ó¨bœGñ�冓Ò"÷C¡iä]Ah3ÈBÀ#hYÀ8Û:n˜w³Ï?@ßåF›ñé&uΧ\ß�Sôs¤)/šZ¸Ë|Eyâ?DšþòÒMùBŠTWŸjÖ¨™ªæê°¨jc¹ÞdŠÆ¡ÊfZ¯žFOdg«”+Ÿm=NyePÇ#h G˃ç±`¤‚Öz-€Ñ–QŽ…œ092z 5 )��é¡Ò4$çGñv3öA³ähuGÑžª1ä?O° IÞÊKuæ‘·9Ú‹:ÓI_K\N_Ò…@\×wÝn'O÷ › tjvÐ:õá÷ΛÀ p“<‹Ô¯Ð}Ü õiz½.‡í/¤ï#ÔÍXÎË.hM¤Q±HOŠ¿M½[q8q�¢ék�šòr)º„²/ 6Ö7ˆ…ŽB#9Ù¬†‚ÉHÓ«³UÊ'?ÚÇÊ ®´†£åA€óØZ *Ž‹®c;!�š�D(«¦’œµéè ®su„íjì‹f[è!ÝîhÚôYšI¡ÙY��þ”ôÆÄ wQyé{ù}Hÿ m‹ô0MñÐiH_ðÕ~êžÓ�`Gô4yGèTÏf�€´ŽvD½?&�ƒ7;Ý8u³“z£÷ÐƒÜø^¥lâ‹�žbV"Ý,å|­„¢ÎmÔÑ‹âû ÃIßHú—ÄÏFãHO"Ô uu­«š¼‚o¨,¯̾hŒrÙ '¢;ÙVm®Šù–±}9¡•A};h G˃ç±´28T']ãöD£Ð€<›\C½HÛÃ\û–å¹\«Wcâµ=i׃¤‡°QM�ÔûÆš]ÑÀ(™ í÷>”kêã‡Äç×rºŸè�`Ò:öC› g(ÿ¡Í:,uÖl&`�€7ºýÙÍ×�F¸ÖCºÉo†ô££—~€~�t]¸ ˆ4 Evuô´tj:Å4G’%Ó»²w–éù‹só|䜱¾ t!ë‘“x ÊæœÉ›‚¶cÒMHy60(+\»âÇÞ‚†Ëù8ÍB¹FÈôpí`¤ëqøãØ}H·›qýÖ=B÷=äz,jÈ+„Ÿ ôþPå;Hðä|mH çL ï#½*ájh#›W™öY£u÷¢¹Ô]3Ò¤eÃP#‡°QEg˜@‰ðZ‰7ËŠE€›”¦ˆ\�¶FÇÓ!xBë&_ŽØ ôº=„D»|ÉñÒô”Ú=‚FzaÒM7…¶e½Íz¢I;vgù£ÑH¤÷²Y5‘²šl•ZšO{Ô¹¨ Öã´†£åA€óx!-M­íËÿMu�v´„ püä�ì�t]�4³ “s7ÝÍñÖµ»Ý�}ù�¸½„†"=„Û É›ƒî¡­? žöW£‚!Û‘P÷©¿ôE�w'é'‰ïŒtx FgRö„i£ÎDþ‚´Œîk6(;ê ÙLÀ:6ݸôÄRòxB»Ê L75ÝøôYg�œé]3�–É!{É*)û‚P7VÙq¤¿$Ü �‰ôÎÀsHïŸ䜱ý^H_*Ó vÒSÒlΙÊÕIÙ„í\Štc¶™€ ˜@‡% ëjé�cë²ÏCrŠÚÍØ�ÛØ¸œ1=`;mEÞ‡„ó‘î#_ÐF]ÿÏ@²ëõ‡¼- 䜽‹î"½á6HöcÖñmB-ÿ«hyåË®@šönç,�ÃÊ‘€GÐÊñ¨¹Í&�'nZ[PUÎ7‘n€¿Bºé=‹ND2}†~ uo"þ'ô9º=Kþ`òõ$w1ZmL^5a³Œu `ÁãДë‰ðRÊ'#}ô£MŸÓF� ÞVÞ8�=‚VÞ‡0cë9®ºŽFû"=¸ê‡ò±%TÒÈÚTô×ÕÚ|jí:ì�öC™Ú·ºCûôU೉ÿRy$�&½'qíˤ·!½!ñj¤ûÅZÑ2br1Ú†ôg„¶"€u«Ñ¹§þ@O¤™9Ê‹My*Ëd}ÈLÞï—‘W“©2y:ÂóóͨžŽ³T˱U�m‚m3(S\45mq®nLYvAO+‹þ�f£AH6dy�þ;€¿ºØ½…VG“дë×ÔÅç o'­Q¸•QAƲºÎè&< mbá¹”OD·²ÝðÝÄb.60�ŽO€ëb{9+ÒI\_uýÖÔÀQ(¾¾mdê$��´ŒåfŸ†ÚõDZٟ»i‹Ší€ôa)ͪˆMû$»wy�ÞGEï‰Òß�™,'‡n-ÒW¡�´sÁÉÀ*E¾¬õ¢°Wö&®ó¥g”GPZFûãUY†jÐâ(®þL¬÷”Ïù ²²²îeÕZ7ÖL ž¨»IhjâwQÆß-#+t)�tóÖ´FMQ\ÍB2Ýàg"]¬õ)c}Y#h§"M{|^!ù_æm¬Cx�–�EŠg³Z ÔQ¸‚mÌÎVÉù&`&` pÍœGŽt×\]Ã5Ê4 E=P&SÇ[u¤:–«"œŽô{kÕ„mjlóŸlð¡p£´I=p}pä#ôG’z%G÷.™î29¦²8}%ñ›Xßœtn'ý+õíû!�0¦¢xê^œë~LqYY*ŸÖ.?�ÒÜbêWGZ…ú¨™òJÊtm&`åI@7!9hãУ\€ýnù«¢Z¤›µLNÐ+ÔÕÍï ¤i H®A¨Ñ¸Ÿ ÙD4Ý©Ëä휱®J‘c6 åºÆèB©í膪§]600�fà:ªkª¦^ËuXN˜=œÓµXéL¦kôðH—³Ü\ârxä¬)Þ.ƶ5+DS%½�¶6Á (EÑˤ{ßÕ¡HïC¸9ƒ:…±Ï:vÐfh ê�úE¡Êl T�”7ÌNŸ_ê'Í�¤¾�â¯q®)Þ.æØ.ؽQh.Èr¬6ä¢QM8ý�${gB�zm€V"�þÝ2âú臞¢Å¦‘3Ù÷�œ3™nà)t ÒËÚÓXÿ(â7¡¼Œetó?�tÃÈe3)¼©P—«¢ËLÀLÀ 'ÀµuKÝ*q}V_OÎÌh4©“šÍÔÑ—Îa¹Å„SÑt¤÷ÖÚízͶ?  ߣMI“é�¤öQ3<´¿A#©§w¨;¤±ï:.Û"…ƒ‘îµ=P[Ø6R‹–FÒ¹ ó#6‹š8‘U/yîô$¯w¢^œÔù©c*S¨´Lõµ\®eU¯9&Žâ*Õ̵_sÑœHÏsŽÍ¯¯ÐŠ‘®l¨WïU›€ “‹‹Xß7ù¿MOí }3郑.žšþ¡'i· ×£ø1„zßLõFš—ÿ4Š4×Kôt,ëÔï¡íO|âc›4ê÷§’FËÆ ]4³™.êj×$ÖÝ&·l i*Ÿ}zœ:•A½a´¹*H;j%O€óx!�L íËy\¤í¤87±ëº‡ŒBòÄ køt4 =̹¤Žk»û¡W­‹.C/Ó¦óÚµAEÜ8û&Çd0Ú U"ݳsÝc).ÈS[ý†8T\Òq}Õ(^Ê׌ˆQíì�ÄfCÔ+’ò¥>�ˆÅÄi6ªBzp1—°èf­èH½Bh\ŒVcÍï#]¸uA‹z g�ìH#f P í�žECºÈ_�F Ù‡HÎÙ§\\ôdRSHv ¸íBÞ›ÊËdÑEQ7÷£ÑðLu‚¼yÄ'"}ôCþ’7öÏZÉ%7°)œÇvК‚är]÷û�aO4É!Ðý¥)«¥BšŠô‘‘%„ífìƒLê=¢ºvkD6Ì~È™Ø�DºWËéh®-fÁj¤þ€¤øh œïT[�×(…6ŽBÅuþK½QsMçÿŒHú(J_ÇZs‡—3�6"À…¥ÿ𵄇±É‰h$Gê@òõåª9Ä5íA¿ s3é3ˆ_„¦“Þ‹ô‘Ä�GšÖ¸=Ò…Heº€ë­›ÀIè(´ùÏ62êéæq:éB—Íê(ÐSV�–Ue«Tªùì§´R=8nWÞ8�í åMËE€sF÷9k£�„(›E%uPïäš/gÀ–'˜÷¢ê¾è`T‰ 5ÝÇõÀv>š‡þª8Ça¡-Oѹ/Gm+Ô?Ò BýObêÿLG· 9kµ…,ÖµƒÒpÜJˆŒn4ç:¤Ñ*=ñ©@›£;�FÒ6àŸÿ3êÉqÓûgÏ’Îø»eÔù9å?Eš§ÿÒEc#´+ÒÍøAt&Ë¿KØÀXv0' Ñ¨{ƒÂ†‰%$¯AúÍÅËÒØ_;heyäÜè�ç±´ˆãàüéÁ»#�æè‘oGUÚT¤Îé,B[ðD¶¦Š¯Xçcº¯ÎFs�œ2Ýókm­D€ã¤~—€ëxICQO”�-£’µK9Nú¿(Èì „Ë•M u D7ÅØÊcüC/"ýñÝÐɤ/ÓÖÉ{ž`�˜­L|1Z ¢ž~·ìFâúݲÓH¿J¨å4…ñh¤'Dr´Ô�{é©§–¯7êê†q(Rý�õ™#³Èžˆîf=u™«”O.ûþ8­­ Z<Œýª ÒŽš@Éà<Öÿw*hh_Îãê í¨ äE€sI÷ =¨ÓÃB9kýP>¶„JÓÑ4¤{Zm> uä:°”Ó{&ªÌc?Åo&Ò=ö øÍÏcWieCõ‰vA•h8ÊÇaÓÿÀ¹ù„yYW*çUÑ•LÀšO€è•Xúlþ߯çZ õô£Ò?AR÷I놨ìôG?ÈÓ”ÆÃI_�Ò#f„r¾.!8]M•cI¯@ø¥Ê 1–Ó�÷84õBÙ,~2¤iŒó²U*Ç|ØA+Çç67 Àyl­'ŠE€skëÒ½i$’ã–�éž1é~¦�ŒÔä³PG©Ý[/cÄ,—ͦPœ49'WE—µ?ŽkwZ1Éñ�Ô‡Êfz€=�•Ïùo-Fç›@ ð�[ï”×tÅù§\=¹ZÊô±}&¿éƒÏ ôFÂÏ‘:ZúÈ–˜ú1[„ÖFšÞxZU"�†Õæm¬O]\Æ¡M,8Ÿò‰HýXÚDݲ,†‡´²t'­ó;c_ÌZ‚–“&�/þ©¶F]›¨_ï”Q¯>Î?ìèÛäMDr–¾ƒô�™~·ìÇè=$GéôCê�D¯ÏÛh^ ]Â-›‚¡LVKæd´Û‚ ~—-ÓJ�g&`&`ÜSæ }(K# › 9aU¨e³^èþ¨Ù&rÖBG Šl Dù£3”«| ˪C\ˆ³—aUyeiô,ÜŽœ³ÝØÿëóZÚ•:Ž»XœËN%ÏÍyz@ßÈì 5Bâ hšx�h½€†ÇµÉÓ(Õ¤§…±Õ;ed„ñ.ÔÓ{g‡£%üãÊ�z ÉôÂõòú ¯£§Ð—é’<ÿ°îÝÑýT�ŠzgYtAT¾>Ûø š“¥ž³MÀLÀL Å¸ÏèþvÆÊÖGcÐ4$'&›ÉÁ�&£EÜßžB?CýÃHË)ª óq9|M�È/vrhb…ãÙßÙ‰<';Îõ¯IìöàD:�´ƒ–‰ŠóL i±#s\PUSoDa^è”…q-öúmÆÍBŸßý)z 5˜ÊH:/c½Ð)HNÙ 4i=“M'S#r› ýˆâÒL•œg&`&`­E€{O º íÃ6ôÛ�£�œ°”Ëä��^Õ=]ˆ”§œrær™œ39i‡æªÔ²ŠÄò i';/�ù‰]ï™H§“vÐ2Qqž 4M`2Uä`�ä"ÿ�¨ºòæ ç£´‚Ð) ãúÐÇ”kMNÚ�ÐMè[ä4•‘íD×±¬Þ[›€ú¡LVC¦ÊõnÙ^è�L•œg&`&`mM€{’>‹¯/9j6‡œµ�‘îYM97ºç�‰žBº�æc=©4…{çÕ¨)‡.Ÿõ%ë$ŽžÏv´M['&À9ЇÝŸ;hùPrèbÎÍã}²~�º¡£ULÞŸ‘ÞáR~l¡SÆÓåÔÕHÖÚ„ë¡ÛP^SÕ´?z†å_DcQ¶›ÌÊÆ  Xÿi¨š¸ÍLÀLÀJ–÷ªYÑ=kùM¤Žíì&¼RåÉbÝ¿5š–íÁf²~sÓYðQ¶£º­àØ÷g·ÕgËöÊI*vÐàpÂ²àŸ«Ò;Þ&ìE8)ª=–t¶›Bè”).Ç®�qúªAFŽÛ©@Re!º ÎR½–ü[�>ø!§QSH”g300�²"Àýk>º ¡ázÏ[%g¢bÜ×ä<éÿ{¶¦é~ý2Û9uoÍ yÝ¥C€c­êú %=LOåÛ2Ÿ ù’r½NK€,}úþjô.Ú ­…ãF¡ßjÑtÆmÑÑÍHÿØ�à4tš�ÒNõÿE|*ØXç®,4�D¹þo«)¿]Ïöjm-' Ÿ'Ø¥å«ñL M è!’Í:îm‹Ù©ë%®Í= ÷Dº7î�VDÍ1­g뻜P3Mêš³’<–ÑèÉd4ŽmM Ô“[k[y4ÇUZ‹@tnÁúOE…n§+'F¡Ë¸¾ t*ü“é£ÑžÚ�ƒŽBúÇfh Ò¨Ú³ü/é阴_ÈA»š¼c•×c=ê`„Æ! �ç²Ê1{Àû\˜š.ƒûãÔªlº¦k˜@Yл§ÕeÕb7Ö Àµ{Õ îgØÄòöáÿEŽ`³Œ¶h–K*�…µ Ý»å¨-È£¾«”8޽FdÕw‹òyP6…cXr·<Å1IÄihL@ŽX7ô Ò—uØ}išá?ÑüSj$M¦©�cÐɨ`c=�Fì´�‰(›s¶”²ËÑ7ùçÞéåj?‰ˆÍLÀL óˆ:ÅÅpÎmÒ”ÇÝ‹HP÷êeÖ§6Ÿ�ô%JýtÀ (EÚVF8fê·ég^¦ÙšÊ¨Q³LÎÙò§¢&ÍZ“ˆ\¡£ài¥x߈ÐÇH/ kZcl#Òé‰Úç„·DÇ‘þ”¸FÐdGèyo¢›P­ÒùÛëŽÔ�ÞèühÔ3˲s£rývÙIh~–zÎn�Í[ÌK™@ɘÇu¢ºd[熙@Ë ìÛòU4XCoR3¸'ëóýÝ”4/q‹éC'z¨›íAêPÊäÈ-d›úù€KÐî([_€ª¶ö À1ÑÏí�ôP=LW¿MŽö€,íQpÒ90=K�ÙÅ8é¬Ð (uü3É1»} mOZÿ4c�¦#n�ô%E}B?¶›‰èIÚiÔ½•ðí¨`OÒ)âÑ¡MÉwнJ�^¬K#c�ú…˜:þrØô0Qz éK—z˜kk&ŽIOí‡6GºÞKrÆt¬ò5ƒè¤WOjÃÙÆ¡¤§yßAë´€úGíØRq$K¸!ùú‡øw–reë¸þ@pPª•ik_k}aQï…é‹‹{r\ät½K\çÀjhÚ %í2ê¦ß#£þš^†ôå—èMô,Ò9¡ß«?î¤3ëèIAüÑ�+ý7s&Ñk�ß+û/ÇL Ýðÿ;‚�OC÷¡ui·ÆxÃ&`õøßÔÃÎËë3ŠYƪt�—éa©îóúÔaN£MM:há ¨_Az4 EÝQ¡&Ç`šIñjômVhƒ¬Å¶R¿>Åûª_¦tsLçJÒ=Bý¶ø¼!ÙÐØ~^ZsN€†[jÇ;Ù‡Í÷ŽôužHy’œ¯’ÅiyÀR›í‹·£šÅQB¡Ò±3WM<¾¨Làÿ3A¡…ý t-«y-E»£ è$¤iŠ:/¾�4¦¼•‘FÒ4¢vŽÒÆz>$2fyjù_Ö/‡O›.ª7-Ïmü—zúÇ×t†ƒQ®óOçÁ¤¡ðy„60� Àÿð®4ã´z›ÿO;g%p\܈Œ" ûYºßK²¸Ï÷³”÷¿´LüÊ‚:Ôª£÷È«¶¥±MµóR‰ë�ú²ê¯¨R‰Ô‡ÈǺSIuÕg�Ú×j¤í(Ūߣx íH3 ^–Æ~ª�%¥Ðz¨©¯‡ý¢8A‹L<ÕO«B3а«%,c·ãg IDATšu/ÚšŠ¼¢èM±Zy¸ªx Y ¥’m?m MíLEq%3ì¿ Â Å¤¥èM…œ º Ø`·Y÷¢M‰ßEø#´7š�N$ïeÂw�œ+�~=LžFÊ4Òö:ÒôÇñhÊe¿¦Pëøc²ëÓ1×o³�F$Ëiý“_ƒn*÷‹cb¿œ4�²'ÀÿòÎì„FÍz «øÕÛ ˜@‰àrX‰4¥(͈úw³2I#>½ vB•hˆäÄbê“ô‹”u9¶¥²j´4’ú�u(v`—Eq‚tŸ4~X¥:ª›ÑØ§ê¸ êUÄéD¨v†e«’ÖþËäè:,L•IJ‡Ë‘,ª‰ÇœHU„ŠŽÑÖ1�hWã@¥h€æzöCýÑ@”B:�ÝÄ +ØéeA¤y„’æ!Ëy«%ì4‹o²³6þ’3ös4itKÃÍ·Sç`âÓÐÕè$Û`y�vâ”ÿ5ô>�.AY�uÊù“ê�mèx©ãP®‹EåjË5¬ç1B› ˜@‰àÿy0Mz­‚ä¤éº`30�6#@¡†�顳”6®Mˆl…!õ�¥*†¥Š±’p´7L–z|> Œ5‡øKƒmÝè6uÐ'”N*9c=Ûz§£íé„_l{1quš³Y5½Q®öªs.ï>¶Ti¥PmCit¸ XÏ#=ÍAšŠ7—,Ü_²ÊÛØG±>½ˆnG)¤iŠ�±¯wQ¾:ñëÐñèvòî#ïlâç#1“¥4Ên l*éuP5é/T˜¯±ì`ꞀF¡ðH®b “‘¦1ꜳ™€ ” þ§5:>­†ôàKuæ�ÿþw¯ n30�v!À5H}<éÖ¸\›Ô'ì�âA�ñ~H¡ú§¶ÿPÿ«ÉñŠ¥ë¼>´RKØîÖj ‰N”Aìá.¨)®“§˜¶”•©Ã+Õ ¥]aWG[eË$À+Þ¦‹l0þçHEÿ:¡ò+P¯H)B1R]åÛæ²ÂÙ¨ i¾¬¸•­Áõ·4þ'H¿S6 @·¡·P ‰¯æ—¯‰¶e_ Ôt�zí§8v5ùÇ.�ö7:®±ÔÑHçw.›EáDt7Û«ËUÑe&`íK€ÿm=™ÖÔåµ�®éÿ–ü'‰o‡V'ý9¡ÍLÀàZ±�ÌTPЗkFu�nÓ(íQß2…â÷²�ûš {Giõ›ÊÙ–Ñxõóå ¨�+Åñ7£´f™µ[?Œc¡YVSPl¿âØ=.-FÈFÕAÞ�DƒQK׿€uT£8du¸.p-aÉ[ÔÎꨡqØd»á™¢’þqäÌ)L¡~A¨¸Bl •%9rTÄuš†4Ÿ¶,xÒÖØn "mS´é ÷…hC´;û£™¼‘¸Þ/;�dc�8l‚VEëÔ18 �E½r,,žS�FËææ¨ç"0�!Àÿ·:*�"9gº6ÆÎÙyÄwFï 9kª3£wWGgð®ë�ÍLÀJŠ×&9.ó"em×5]ÓÔßÔuP}Lõ§dÊS™ú,t(‹ÔÉÏ×j¨8É›ƒükè@(¶q|z²Î�HïPÈ�V|Ê×ô„⤑§’5öõpw=šM[‡�Ö;dê(­ˆ6&¯š<=<˜I|)qMwԔƟ¡ëÐÉäg}ߌú½©£s}J¡l¦ŽÛt¤�~<œ­’óMÀʃÿû+ð¿ü%á)´xÒuâGäéýÖ‰ëÿ¼'Òõò,ò'ÚLÀL@3”‚! h×)ŽA;mgœêSN šÑò)ެTΘnVcPÔ”i$aV¤'¸�U7µ€Ë[NÎê0ÄÜÓ+äØõ"²ªŒ$§-Û1T§c¬ÄrU„—³Î{ KÑn§Q— Á´uÚù¡œËÞH ÑošLU™ž©lùYGÏXÇ êhî”�Eé¹Î“ åÌV+Ãf­M€óSçä=h2ç]úSÌ­½Íζ~¸Ê9ûûýkô%Cžœ3]BºNþ�…~Nþ„žî› ˜€ ˜@ËtÏgqn<êÜŸ‡ŽF¹–YFyšŽ4Mn1¡­p,–Ò =ñM�îpLÕ¹Ø�B#PÊd•dVR6áOYÏœL•Ú+�ö|JÛô.Ú©HN¥FÇ'_ªF¦údžÔ¨€ Ö£Nï¾hŒr™xLDú臜>› ´%�›Ù˜þo‡sÞžÊ9(çÀV¸õ¡º¦C뺦{W##ÿê麢Ù&šB½1q]Cõ…Ø»�®5_�¯)Óžî› ˜€ ˜@Ë är¶ÒkçÆ£÷n¦ ÞéŒÆÔ9��¦ ‡¹Y¹³ ˆR7Ž“:$D’s¢5 »€ú ¤ &ãêÉ)9�å5¥¯TLmš‡îTƒh[FçLe™Œ}J‘RG¬7Êf:·ï@“ØFI9ªÙìüŽG€óUNÅèhÏt ¿œ¼:ÎÉIoo[g�à¥kÜã¨?êGzø-Ë´5òo òõG¹éã!rÎ4Ý1f¯uècE600h6�r-É�ç ʧ¡L�ÖjòODp“ÚéÇ€Õ�µ•!Ž�~'M#K =™Ÿ™a7ÔÔ1ˆsC#p%a´ûMt*èücvG÷³¯£3Q¦ó\ûX�NE:×Cv΀ak{œ¯z� s5´ù$âÑ›0ßñ `؇ìØ9S�¡(ßkÚ<ê~…Ò©X× -‹t=ÔtÇÍÐä¯Oh300�fÈê qƒÑ�î^„’£l È�6¡£zª!në 8žz¯‘ÐÝØ¥­Ñô »6œÁ_�þ¦ë ¡ÍLÀLÀ &�ÑAãÆ2€5É9 ­ŽÄx´7)½w£´­àkTm/vQ#jÕ‰]JZ#¬­fœ‡}Pe16Àz¢«Y×»èrÔ?Ëz—’?éÄ^HÓ@m&Ю8wÑ€;Pø0AN†ÎÑÅíÚ¸2Û8¼–ÐäahV¢éº¦i·FزË߃t�È4Ýq0ùºfôD#Xת„600(ˆ@F�5üõÖ¤ŽÀnJ Ú ßÑN@€c®—⇠d‡f<uDŠnQ'IÓ�.iîÊYGw´?z†u¼ˆŽFáy®z‰±h}öWÓ—„…Ž›@{àü­`ÛšŠþ¯Õ‘>€óTç­­@pÓ=m”¼¦õ'ïq˜çtÒ¢ÍÍ# §;nKzZ é÷ÿ‚^g]º®ØLÀLÀL oÙ´‰5èóÂ�%òœìD8þKØÝ}PM°Ûrvv ÒE‰Ò¡Q'é9¤pi=•ÎÛ¨_�Îc�Eè”mùÚ¨|û·º)Ïfà|û´IA åQ™uÊ){õITǹêÑÝ”B’ðk‘“ÆòátÇ-Ùö#h tÒ5g<’¾<ð_00È�@6-|R«¯âùwvòãÙ¡kqÈ9›‘ØÉœïl$ê6™¤C:ˆJ9Ó¨AlÇÅ‘\!ËîŠ~O�…H�£d§6^|1‘3‘Þ-;ÍŽ š@3 ìÂr×qþumæò�cUÝÉÔÈ™T„6�söÚ0Ãñæ€cì¤ÍL¬AÌ5’^‡UÒ_Œ•3ö?HËëëŽ �~ÌúsBý~š>R�l&`&`&�7�lZƒp“:ªA†�’çAŠÙZ;Ïú‡²n9gIÇj4e½3m—üžè8ô2åê$�FêØf29—£�³‹Ñ’L•œg…à\º�e¾@GºlŽú×QV™(ŸÊ¶NKä9ÙðŒ�´©‰ÕÈI{ŽkKÒA®¯FÙ¦$4»dÕEDÿ!ÿbÂÑgèB¤Ÿ2Ye»6©ŠÍLÀLÀÒòrШ©ßÙÙßÌ:/ŽнuÄŒõ¥�õïKDS¹ŒÞ./M¿7Ö ãKýèJÊßEÑ€¨n2X•“Ž˜~ëH?Q—¬ä´ �€d�Ëy¹nK×Å:~Á:Æ$Ö3‹ô!‰<'‹@ º&Ȫ’Nši$­‘“FÞ”É!S=ŽöD ÐéHΙÞ|™º×µè=â‡ÚLÀLÀL +�|´¬án,W¢Vé gm¡ Ú�Çü ¡§Ã�:)Åh\Ôa¹ƒué<Ëfã¨×í‹4ʦ³q(“C§uÌCG#ývÙOÑ|eÚL µpŽ©c> ]Ñ’mDÿç$Ö¡óW¿7Y›Èw²H`«7…8iïQzíÍòê·$ÿŽnFz¯uÇSœ¾x«é¯—¢_�7–Ðf&`&` :ÝB⸹œOx­; ™v˜LŽó®ìÌ9hhkíÛ8�u_žÇú+¨³­�£®:XSÑ$ÎÍY9ê¹ÈŠB€ówEÎ5½oÛ%D^ _£µq.È¢ÿ¹É‰…–�–sV“Èw²È`\Ç1�“¦kÉÁêådi$muæ+ŸPS5¥z%âŸDy¿'”ÒFy?"o£��> R…>E—Qv;Ëý›¸ÍLÀLÀÈw-\¨7 u¨ßåsJ·uO½Óuz‘]š‰†¶Ö®±�ËXw>ÎYÜ„lΙ:°ç �–é£vÎbb[�çï×XùÓ„£iCœ{rÖŽDÉ[UyùõûSwê,³Œø~¬7íù޶X×!9iÉk“œ4½“VMŒêær²4º¶ŠGU�'®¶H÷R› ˜€ ˜€ 4"�¯ƒ¶ Ñ’ËßEOþBnXO¡£�o8@•zÇMSwGš–ó>šŒfhw-yÕò Êb;ú}²ëXèÄ‚l\¹Š¬ÑHŽÙ¹HŽšÍÚŠÀ64½ŠÆpN§¯§œ‡Ï�ž�ÎEy˪óÿ(ê,PG\?qâ”¶ŠÂ]Ó“NšŽÏC¯¡y¶C#gßAú¢£®Oº^=‹veýoêã!ë+´™€ ˜€ ˜@L _m �3¦z&ÓÍêô>7›g�æØ«ãb+QýV˜FÊ4GN™:”#=ÙÍdÓÈü&ªÊT˜oÛÓèÀíhl¾Ë$êi„BçÚtp4ÝènT—¨ã¤ ´�¹lä ´"Úí�b;‹È~œï[ÇÙBê¤;ý”W$ꜩó;‘çd€K�´shîpô=¤©�ÝÐ@Öû$¡œ³oèǬ5ÕÛf&`&`iy9hÜLjÑ,Ñ�ƒr½ 18ª£© ¢{Ðh0RçÜÖ`ŸB‡¢‘žø/B“‘žè†OíIÖ›Ÿ©H/»ë˜êú’fDØ®¶£|h›Í5½ëqm™×Üx9(9fK‘8h:㽜ãÇjª£>q"ÚFélF}]õ�d`¢ÎDÖ¡JØÚ™ÇANÚ„D3t-kr$�e¾Èy#ÒýS7š…bÛ„È*HAçG^÷èF :ÃLÀL ¬ ä0q³Ñ�s¹i\Lxƒ†¢lÖ‹‚Q‘T§–eÕ±ž�æ¢çÑ|Ö[Kh+÷cU[!9ËÐ Ôåk‹©8ÝıY�ïB¹êѦ>”߃Ԧ–Ø,|(º¶%+ñ²&PÍ­ädç÷ëÄŽ®Šþÿ4òõ4eïæ²+)‘¨0�´œ[‰à8žÆqÕuñò IrÒ%ÿ`Êu¼3e×Sg*…¡y¤uÞ¤-*Ó¹3+ÊJÔߒȤ{¥Î+› ˜€ ˜@'"н9ûÊMEÕõ7’áAHŽ˜�\ÖƒBÕiP�uÌ'/Ôk¤°�B[0Sç …6FýÑ@Ô/Š«¬PSçc’SÖ ³P芒õikò4r¦vÃÆ±;hÅ éuL€óYÓÔ~ƒŽFóHâFÓº5Ýñ:trT¦ÿɬõψêÔÛb‡°>�^ÛJˆÇä Ž™Z:iº§é'hô{g¹œ´�¨÷¢¦®žmNýÛ”&LOwTœ²ÿ!8}��nE600�NF YZȈ›K5é $n.êˆïŽF¢á¨ÊÇÔqoÔyg}ËÈ×Nu.!”#¡NOµâl¿Cvd"–ìãzH¡”Bý¢P¬[bâ6Í@ÃQâû¡ã*笥í Û¦©J›g…™Ž›@�s¦…W í£ÿWMuü †ª8?52’Ѩ¿?% «IïÅrºîÙJ�Ç&““Ö�¦6é¤iw8î½ Ek¯a}�Dùš"{: iTõ8Êj ë�ú+�÷e}†#&`&`–€n,E3nr nФ›‘ž ï€*ÑP$'£ëIe­CÊhºÉQ°-FŠ«sS�”'é&?Å®&.[’¼ù-Ï.þ_Ú§}gݘµ?º+ÞÉiQ¼R=…R ÛÄe6š…žP¼µ°ïƒÙަ5j?‹mDZBí‹ÍÚŒçô6v,ê�4eíhk$»�ÿ)Í&˜›NeùÃ:t-œ’(^JZ¿�¦k¨­„ pŒší¤±l Ç»§�ƒÞ�ô'´1üÏÎ 3/}³»9¦ÐÒðZ§{ª~¤¼;åšþšÑ(û’:röO&>3¬D~“ÓÃúŽ›€ ˜€ t<º™´«qsR‡[£=Ò�ac¸Q©##GmÃ(T§)”R¨£šœ�%hqVGq…oÀMaÉÇìu Ò¹¥}Ðñ•U§ÿ.OÇV¶ò¢ºÚÿZTÇþŠƒÍÚ”çóŠlðÇè[H/ºéAÒ6è%túÚ G�õô¤@#gýÆsnû!CJ¹$9v™œ45ÿr޹>’ËIÓ»fõFýŒÓÉ_ URQß|¬'æˆ ˜€ t\ÝKy׸©/ÍÎÖNn\rØÔù‘ö^Wžœ;åKŠk_•/SØVû®jZI‡Y5ŠóUï#¤ým³wäØV±íŽ›:µ6覲ƒ‘®!ê@ŸŽ4mמíˆkíoHS5í±‘QOך‘ÖÚd–¹ Ìp¼üp ›í¤Å{Ë9"?ÛtÇïS¶B½KÙ^V§/^ŸC00�ò&ÐVNJ«Qâf%ÇF6yPØß¨ó;ná±cæ…q� É™Jš¾Ì¥²Niì{ì|vÊý÷Nw\vboöDšrÖÝŒ!uÈ·á\Žøê¨)SÇ{t¢ÒLÒÇ$òœ,Sœ :'v£ùšÂª{GlIëM¹>™ŸËMwd9ÍÙ ýŠÖF&¿–õùgF€a3h®#_å»$×›mÈw9Õ ·®‡üu(žDÞÃõeËët–xÙ;h-=Pœݪnéz¼¼ ˜@‡#°{Ô Ëuâ2n»ׇoô¾íQÖ‘}ÊÒÆ2Ç91JÆÁ<"ûDמ8Ïa™àxVq¼5Ò•ü8Òxò{R~R¶]¤,9ÝñëÔ}É)“éAäÏ�Fi/d}ױ̗Äm&`&PV¸~íGƒõî¶œ´zË–__¡“E4eÇf&`&ИÀdiJònÇÓ!þ„¸ÞG“59rÆ2{SïòtíÿþÑón¬«Ó޲ÿEÇ‹q\g±WrÒ’Ç÷DÎ‡Ë Øc=U–sö(R'Fïö^ŒF =TÌûé7um&`&Ð.¸&v�4à.â œ³¨,[~°hç‰ÚAë<ÇÚ{j&Pn*ïR]£_ºNê³êrØ”~©#žÕ¨«÷ÍnA݃Jê´Ë9ó4àJG‹r|‹á¤Åï3þ>úZh%êƒ>G?f_qŽ­OÜf&`Ð%$T¸‚0ù¥¦ëë\otÍÑWŒë�ô[Q¾~ß±~$ÑG¢ü¿E¡–M?TŠÃx%Éòd~œVHÝnèx4Õ¢7ЯPý´râémEá„o¢OÐŒp]å·ƒVGÉm4h3\Èë�*nNz×gú+ŠôõÆáäk4-£±|? ôÅÆú›q�zŒf9Mo´upg9i;£¤3®‘´ëÂs, –WGè4é�ÀYè ô#Êf°¼Ö­NÓ „60hMD+ß‘kNÅ ûlåk´¿¿âä¯D {¥,^nyªåocúHÒæHÛÙéÚøÇh»Dؤ¾�VFz]¡¬ÌZY.7ÖL X¸ ÷Dúͪ5´NÂU‘n(ŸÞ�ÖU>â{ÑÔ í‚^U~&c™^äß�4ÚÚÑ,÷p˜áxÇ&ÀñžËCI'm,y·s®Ô?ÈD‚åï$_��u�Þ7;”¼©,7„øƒhU´%²™€ ˜@kÐõF&çl§tlù¨(šb§LårˆdñrËSüåV?Ò¦L¥cÕW òã<®{?"þÃ(ýB]ÿ.ŠÒÛfzÇ÷uòS¨7:••ÙA+«ÃåÆš€ ‘À$Ö¥�xü‰‹¿ž²ŽÔÖïð�Dúbž~ÿ,/£®:ÜrÎú'8ŸÐõ‰<';Žû|v3““6šü|œ´g¨§÷ÏŽd]·rŽ "®©:�½ýéáÂî m&`&Ð ž`�ÿŽÖ»k~;±�ØA‹Ë—Q®åŠe‡+º„ëá'¤/ òöâqô\꽉>@ñ´ñ¸¬äC;h%ˆÜ@0�V"ðsÖû ÚÍF;"ÝDé å¼ #ÌÇÔaŽoRqý;¸1œ'v>ÿ–:i7²Žë9õð`:Òjô2ýaäI¾ž"kÚã9„60(*®3Ÿ±ÂÇ¢•ÆXì Å3Câ{ßð¨Þc,÷Ÿ"6dë`]‹¸Þé�6=L�-ù`Tù/Æ…åÚA+Ç£æ6›€ 4›ö>HÓÄ4â¥é�£õÑè`n*ÿ üúÒ”Eu~Gf5ÊÏ£Pˇ6‹Ä!a†ã�“甜´�‘ÂÐ4’ö{Î�ˆ5eûQa=ô(ÒyúË�Kü ¤ŽÐs¤/Fú Í»è6´ù60h)�¢lËue3â›Dé_FáF䓸¶Q:®%[è^œËzd(üg†¼²É²ƒV6‡Ê 5h n‘žª“|úS¤ „ý’�F�cèü~J\âËÐBô,ÊhÔ?‚‚ñ‰Bmc/ÖS—Èw²“à\XÀ®k46é¤�"ï!Σ¦œ´yº« »SÿbB�ëÛŸõ«CôWt<ꃖ’·ˆPS ¡nŠÛLÀL Œ–ÑuD×™¦>Mø÷tªK—³ ãëL\?*jq )“±­Ìv»&am/»¨´²;dn° ˜@¡èœîË2� ÛÑ:h.îêÄž‰&#M;éærUÔù¥ÊW'“ÞžðCÂFF=½ûsM¢` i­i"ßÉNN€sBçF&'m(ù9�4–}’:ÉÕT=48}�¢l碦èNB2uf^Q„|-£Ñ\½ówžTd30�¼p�YLÅø=®¢…žŠÂ'¢pÿ(|‰úoGñL�¦'¦�kR×8N˜-_Uâm+®×š4Úðe“•J¸‚´>8nš ˜@Ë pýWÇõ*´;l9cÑ~G%EZõØ]‰4"q8ú©ó{#ÒW¦>V˜4–HÞTÔ=(SÇx–©ò5�zœ-qÒô¾Ç�HÔùÃúîâ\Dü!¤Q¸ß!MAz€ü] ïA+¡·©+‡Îf&`Í!ð`´Pì;<¥«ùq½(»Q ûdl)®SëF‰lù*¾5^€ð—,³:ÚÅ¿{6;(ïÑr‡Øï„ ˜€ „¸x�´:¬?¡sú"i]ó4âµ6JE�ü—ˆOGß%.§ì{H#fÓPFc=}(ˆ;ÄqM5Ó»AîFï Ãâà‰�´ä¹�¤õζ%–Õ4ƱHçô-œ‹—ã<äpòõÛiè>Ô]E^¦ÏPSd30�¼<�¨•A‹‹“õâü8œG5=RNeÙòUv=Òû·2=TýécI²Oиt¬ý±ƒÖ�¦wÅL �Éy�Îé}tdå”ý Í�j &xJŽ!^…>Cš¡ÏBÉ–¯mÔQoOt2z}Šä¤Ý�v¤‹Þ@;¡)è‡è5ô4RÞ@t>zébwc.RuQ›3úYžˆœ»†\ÆÇ?ÇQï¦�“Ž™@×�“†4²{Q29i–ä·HÒvºŠz+Q Ç÷@¿B—!9jú˜ˆnR\M�‘Ô•S86Ë?€Ðf&`&ÐCì õxOÖL ltñ)çJïÓLC›#]hÎÒ«þÝŠÖÍâK>ƒ¶åÂT�+Î%ž3.V{¹ ]œÓü{9õÎiN9bÝ@€mî&“:iº�pG{NZ6{rÌîEë£o¡·Ðvhiô]$ÓGCvaZrÒŽFG*Óf&`&Ð3ì õ wOÕL L¸¨|‘®¶@“ѪhO¤Ç5b¶ úÒcŠ“Ðzäÿ�ôçÒQKM�Bj”-¶ÛHhÎfÝN€í´'mCføQôålƧ¿»�œ±«ÑÛH#зà¤ýœð!4€¸F¡m&`&`=@ÀZ@÷$MÀÊC€‹ÈO¨'.6çŒ@×(�MÙ÷É—øîHN×lþûŒhk£�FMJ¦“Þ+» MŠœ4�î!Àö''í¼djÅŒ¤ÉÓ~rúmÃv~Ò ‡ûÑrèÓH¦þ>‰ôUS�°ÙLÀLÀz€€´€îIš€ ”N€ L]@>D¸:Ú› Øÿ¡ýÈ;õB¿$_�$’ýÑ� õž™>‚�ר»éðò¶§Ý‚¼�œiÝH€íP�žLRN•>Á¯í7Ÿé¦„¾üøWÂï ý�ÄŽèh${ §ŽÞ=Ó#Áï£W�ÍLÀL ØAë螤 ˜@YèœôžØ³h ¨¹ã™'“Þé"ó4ÉKû�Â|FÛaä�OÊä”}�vÍï§%åNš@·`{Ôcˆ©“¦÷&'pÒ~OÙú”mBÛ›Ð.¤õø¯L#j]^—ü{³}èÒ—#Ýä°™€ ˜€ ô�ªsÐ8�|”èMÒ-N$¤{#}>»EÝŽò¥ý èdôhz½†ôröÈ|ý‘ß í‹&!ÕÕ†¾ŽîFc‘N¤ÍFºy›31(†€=üÒã[ú0Èö(g\lÊ)ÛiÄì–\f�öÁAÝ€4L�…é�¨g† ‡&P)Ø.‹vÒ¨« AÖ×WÈ–á Â…Hïbþ½“í&oM¤›¯’7šÐf&`&ÐͪÎAËç/yº“›ÒáDççÄô9*?�NCë#=§/çJ/Në]—¨óÂf#½‰Éèj¤¯d©®.û¡áè*ôõV&´™€ ”F@ûÖ|¤/.jÿ¼•}ëû„9ã¢ó"_",è Q¿?unF c;�vSâ ÇM ’°}vÄI»†y—óõg¶ù¾´Õ6?}•ôÃèâ×¢ÐêH_9=�BÙ�„600�n$P špÉaŠ-MÇeÅÆõ˜ÇÀv*ïÏÉk”êê„ö;´¥Òmئ”ÝHõZa߯¢ºÈº†ûÏèùlÔÈÅæÞ„§£^Hï���6G«P&.¯QÞ‡�œ J*œJ» Iž“&PqØNå¤éi�øÓ�D=îxXÈÈB�¢Ý�þJÙ–´}ék§›¡¯�¿'Òyï-$›‚.FR_7@š�ôZh•æ GLÀLÀÊJ Ú�„Y�Ô! éPž«Æ E�ê± ]È5›ÒY¾ÊßCñÚ±¹w‰ëd¤Ÿ.榠`ßË"ß$Ü6d^�ô¨ÈÒèKè"LN\¡ºC‡&`… \MÑh2û«1í£zK_ŸÓ…èÝèÓ¨-»†ÂaI…ñôuZ’ç¤ T,¶×›˜99W©“vûF³“F=ÙñÔÓ×/¦L#g �’}’¼ûÐîHNŸìGèÔ霘3êö%rú'ñŸ#�dÛLÀLÀÊH Ú4�$dú“M=N¨‘,=>¸¾âؤÅA‹_•o‘ÇH‡Çoå$6�´^ž6�¼×Ðè92ƒS¦ò!Y¥QY¨à*êŒf¡÷Ñltù¿ˆê访ÍL s¢Ù?�Óz„ý~ö19m› 9hÃH?O˜×¨.yˆíß�37�j À¶žÏIÓ¬·pÒ”AÝ;‘Î[c‘Éÿ ÒùN#gÛ Ÿ¡¹HûÇ#Hæþ"aΈÏ'²3’³·.ºÙLÀLÀÊH Ú´é°Ð‰dI¤w¾d •V¾ÊóYêÅéßd ô¼~0=ò34-Ç êy´d¦p—~ãP™0vÄ¢ì%~%tai3è9Vhö½¿ÓL� ?ŒVC’¯O‰OG¢'ÈËkÔûG%…3I‹vñ(DRÅI¨\l»E;iZ êÏDB ÷È:鿥>®ó.Ò“&C(»Ÿ°…‘§Ç#u“C£Ð°O}¦E'LÀLÀJ"PíÚ–~jF`D*_å±½œ%¾Å E�thÄMá·²|•ëÑ(ÙÑè¥\lñèšÒ*Ó×!ïG‡ e²raNq]ìå3=.,7âMÀÚ&Àþ¦GåXÝG|.5Ò½-Ò(@_¤/§†ãÉÖF¹]¾()ÑÍ}N?=^$Õœ4�Ê&À6,'mk”nËI;«­¹§íï)?�CÑÓ(œ_‰æÎ—úBò™èHÎÜéH×ñPIÚLÀLÀJ!PíÚÛ,ü�0z×ãŠ2�XT›N<²O¡�s±%–лcáä2Ž“TîÑFÂ9äo€ÎA¯ `½‰è²K‘>¿¿J(ˆB�àå3µ –›NH84h—Ào©q ÒþúGö½CØOu§ÿ$4 ÍFz$+¯Q(Q¼êBVD­ýÝfUO€my* ±=J�´ãØ.lki«'H>�tîÛ�´þ^¦hCZ#Ì Ñ�H7, »È™Ðf&`&P&Õî é¤“‘L#Rz7L¡Lùé JÚG*ÄöY4‡ÊWy³qÒy‡tÂú :]�þƒdë 9j²W¹ßÁ!ÎÉí@tZƒ<)Ø!âÐL mì?½Øõ>ç~Ô<éfÌ¥ä�'Ü �€6¦üMÂVF½2ÿ„ÂÍ¢¹�*ìI›B�B«ŽÍªŽÛ´Îùœ´ÃÙÚsÒÞ¢ýHÿû¹4ýkaä­ˆô~÷€N˜€ ˜€ tˆ@›�6t¨§nªÌIfÉtRÙ×2yò嵪Ožòƒé�mõ�¼FÙ)�Š2êDÅ[2åk£»•Rp úT/x‘™¯±óL ÆlÅòÄ>¡?™žEx)韣½Hÿ^ËJÞ>ƒÇÎB£S)Ï{ŸzÛR~%ŠM�wíLÝh±™@]`ûŸÉþ± ¯GóE4’Ö‡2íwáÆgTüq”:ýHi${%âó¨×Ç¥¹¿­Ùžôf”�O™öe› ˜€ ˜@ TûZ‡—ƧÐghMñ7ê¤ •9ié½™/#;geàé.ª—û@úhã¹,Í`öS]仚ÈûH£bÇ£_Ò.¼GJòc£�>Ì£$ñÍ']pîN9w6¨kìMÐãŽQ‹m'w°-g¦qÚë&Çyª‹&«œ6«¡C‰êæ§öS9�Ç�§Qq› ˜€ ˜@ Ô•ƒ=‚¨ »pñ÷<ñnwИ¦ÍLàcÍ�6rñ'GL_I½„‹»åT…¼{ÖC?DúóÜôÂ’ìÜEb]4Ƙ‹H�¡ÍTB› ˜Ø4¢œÏIF~1Nšñÿ&ýè¿Ò>Oüq¤‘m}PDçU�b?…΢¼Þ®3Xl› ˜€ ”F ÞœzŸE�ôøÔpN0ïÚLÀzˆû F¶Â£�ºx|˜ô$tZ˜%òžE— BΙœ29gB›,<Š67%yNš@Ý`¿(ÕIû0ƒø•ÐÝHÀÒ;£ç H7HôUâU m&PO´íÇÖ'N8ní¨+�Òʨ7ê‡ö@/µÈå&`ÝB }´Q�2îÎ…ÝúíM�:zœñ4$©+‡ÎïÀ$Pœ4�@€ý#8iéó0êh$M£Òí™FÊd¿Bz/´©�FÃõWêëïôu¡Íê…ÀœdA5ªl3š`X˜¤sɺrÐòpž ˜@ÏàBQsÍ�6’Öãȇ£ Š˜»Ë¨£»õ±é=´#â ÇMÀZÈœ4=öŸÏI›Üž“Fû{i»'Ò;húëÝ\Ñ“*{£ùèv¤îõékiB› Ô�t:›í?½0¯^ƈÛÀn$u¬Œ-ÝVrevÐbDŽ›€ tTç¢fŒ ½�6’¾µùŽ(í�e†Lfzé}i›>b’TsÒL@ØWô!�|NÚ ò‹qÒ~G=9fzÄQ�>êC!³Ñ$ô)4½ˆžbŸõ�@Øjž€Î]Ú¯‚é&…ö¥}B†Ãú!Àzï�N`‰'&KÝD:ïkvÐRNš€ t=Tº€; é1ªe£)väÑÆ=hwvÔVÑ&¤ÿ:‹OŒÊ·™€ ´A  Nšn°èý3�„Ï@úüþ HÎÛFô á¤3Ÿ#´™@Í`{obátŽ‹MNÚµlÿw£Áq�ãµK€uÝÈÒ=�~‚z£`º‰<–mÅ�8"MÀzœÀo™ƒq軜ôçï9#^Ô£�ðô^˵Y³èqªíécnÈph&P<öÝØÐHÚmI«0’Ö�ä·HÒ^ûô­èn´"º�"ûìÄõN/t&é¯ÚL f °Ý_ÁÂ¥7µ¼ÃÑÓìB�ʰÕÖ«FÌvAºq5¥¹œ³ƒÙF¦æµ%)lU@‡-2©³d«JΨKl:�‰^Ÿ0Ÿ¥5�N`ÛIÛ؞ZÒΨ§‹ÅP¿¨L;ýÙõÔ(ÏQ0�N`Ó]Þë‘öÉØtóCûÙÌ83�Óþòä€}›ºÿ#ýÿˆŸ‰ônš>Ñú5ºœòŸÚL f °ýÀÂ]‚úXHíOºá8�ýaN�:ή¬ë!̦žî…˜eÝLɺ¾·@y.ÛZ[t\ÖŠŸ´VTœQ ¶=ÞqZ éíP1Ó݆ 8� Æ(/ŸQ¯?ùrÎÖHÊ÷¤�¥²™€ ”�ûZ©NÚRì“Òϑ̎ö{9gM›HžÞU{½Gú „6¨iló:gé¿G´³ S)Ÿ„neߘÑN]÷0�ì8¹)³±Ú¥#eé^IÆñ¬ÛyiAšö;h)§MÀºŠÀX:Þm‰NAOd'-¢K<ŠÞD·(‘Ϩ»<ùzd*uÎNä`gç,4ç™@' °O-¢é^èÆ¤ Ý$ÑÇ4’]Ðh/çl*hÄLKžœ³ˆÿÉI›Žl&PóØög!=>¼šÖÆ£ì'H�@¾ŒÆ¡Ñ(=ïµÑ…‹º’ëb:é)ý¿²nŸˆ£Bv›± 赎y…*ÅùA‹i8Þ.6H� µKÉRl7úŸ³ÕÑÉè=tÚý}•Ö;ÔéK¨¡ÿVFYo2õ_gºCÛ•:àÅŽ›€ ”�@¶ïéqÄ1I¯sI�ý¯Í»ü´×�]k\E\_tÔÇCtÇùy¤›5ï£�Ñ êÌ!´™@Í`_�#vÒ9Mç·bLûÜT$O77gŸÉ{ΤÌV¬§~t³ ‚†¢FÔc ¨4�ÏzšYLƒ¸Ž´˜†ãí`cµƒÖ.%W`;ù$]xéñÅÑãÇ4´¯ÿƒÑ—oG�hò´]4ê_HááI…I¤w¦­îôÛLÀº�@�}P ú0�.Û´lŸ×>+§l6úíæ�?†¸F6Cº�ñŸËÂVØþå迱F!9mµY4˜�äLGÏ)Î~´�ÐV$Öƒœ®5ÐW�F¡¡¨?êˆézät-Òcª:FvÊzwª•™€ ˜@èôg´îI¨;Oúbã¶h_¤¯·½ÃAë„û�žƒt‚*hÔÓ]ÆÔ9Ó‰hwúÑÁÐf&ÐÅØ×Ž`_ÔTâ}qyÒú«Œbœ4 6E/£mP/ÚJøo¤›8+¡¿’·�i]AÜf5O€m]�»i{¿‚max—©‘¸ö¯öLN…ÔÂèkM(„Šë‰•9LS#qug_1ÖÓ< (°SØQGŒ&ͦu8)Óíð�ß\RBÄ#h%À«Ç¦làé-»¿âÁp47b¶¦ � )ÁKNü$${é.zÒ(Ø+„­Œ6º³¨GzG…:¹¬_¯'™ˆƒ£&ÐíØ'ó�fë.q»Nm5RöU(§¢ i_~)oA¥Ÿgá$‡«/Ò�ÞU²¸œ­ •+®°\&VSÐTô Œ¦–Ýz—½Gwh&Pï¦@wêt—js¤‹2ÝU:™ƒé Ä…ÖGMhsòß#leÔÕÉi<Š�S:yè½�Tl&`ÝL€}O#i ™ìqѤuáØîHmïPÚA çìn´7ÚM@º�ÒK÷!› Ô-öícS2iŸÑypÒ …CÑ`ŸIm Ô”Ú4¦«òEhNVQ¡Ò5Òù8XÈi…i�¸,ÄåXéø›œS ‚õ%"Åù ¡°‹C­‡HNØtô8ëFa—[gWl—Ϙ'`&Pµ>ÁœÏG×#Ý¿•ƒü9¨]†Æ×�ü&ô-té]É×»f#o 7£øÀ­“‚êê`i3è!ìƒÇ³�ê&ÉEÑ,h_Õ×õ—Ú¿Û²§²Bݬy5"]�iÔ}?Úç4úZ•è¿È³™@]`?Ðùï±L9ìrX£ø½)�;å*”ïG¾BCÖ]³dÍâ;3’®3žCúx‘ʺÝüˆc·#¯î r@ÇŒ‰–Â�8F0ê=Êö± z¡EÔ>"}q}¹QvÒ…›F×ô‰m}jû H�< ¥zøO4ÝQ{¥'™©óòm&`@€ýû0f#vÒ4Wº˜i×I£íÔû>Z­Œ>@jw#¡F tÑ�j}©õçʳ™€ ´O€}GŽ›µÕ²°! u#DçØz´¹,´4 5E¡®Iš8Îôˆ#Æ´óš¼b› ˜€ ”L€“ÂVtò{ôiôSÒ?á€w ¡~¿F?F£!äÏ _�jèKŽ÷’ΙŽI9„bS_vÎb"Ž›@`Ÿü9û±æ"vÒ´ëÿÎÚtÒhû;ê¼DÝ‘Þ7M^Î9#¾ñ(×ãÑeÿ$鳕o3h›ûJx,/ïÓ&ìO}èAŽZú|ïK8Éy[5da¥;ss™Ïhš—Å›ç#•ý©LG©(ŒyjÓt µ™€ ˜@9\H'�£í�>2˜�WºšP�4m�¦�Öˆ™.ÀþEþ0¢ï*�Ù5„Ê‹íZêžg8n&PØ7ƒ“vs®)ã¤=Ì1àê.E?×åY"�È_‹Î¢žœ´SòÔq– ˜@°É�kÊÔnKö½àЩnCÖ`Båk‘( Î^”Õ*œª¸@ŽÔœ(C˜^ƒˆó«Îኖ§¨h8˜UÙ•LÀL %ÀÁ[Q ÓŸv -M#ißAŸ#½ ùzTIjaä¿2¨wñ=C: §ŽMòœ4¨ ìÇrÒtA5…ë …rÒŽRy¡Ù¥L�Í猺Ÿ"¢9_Ï´V®`ñ…ÙZ”/Cý¼Êê90(3ö¹àЩç¦2wïî ÒÅÎ60�¸`ZŽÒ»Ðæè¤¿ÄÁüNÂ-IëñE�†=DZï˜é.X^£ü ŽK g’þít×Ìf&PÁØOob?Ö –ÔI»ˆ|�˜tÒ´XÔÑÝö¿!½Ÿ*ÓcϺÑóGôgÚëc"ª§»öï‘þHi› ˜€ Ô"Ýù¶™€ ˜@g è‚lI¤Oc/�ô·u¸vÒ#�›¢'ÑͤÛrζ£Î%(¶¹$ô¿JzŽÜf&PØ_õ Ò›*rÒôA‘‚F[=ê¤Ç$¢ÐJäí�®Co긂þB¾FÝ_%þ=B› ˜€ Ô$� Ø?½ä IDATÕäjõB™@×àé\¦¢»Ùû#ÝݾÉ){�²osQ%gm ÒÍ�1oa”!ãF‹äÌéÏ«›m&`UD€ý6ßHš– Ý‘4ÚþŒc‚ÞI½ G³�FÍèc"}ÑÃHåç’ÿmî!n30�š"à´šZ�^è\�fJG¡CÑH.’^%Üýé"juF�ÿ6Êû(å¨wZÓ�÷Q4y,d84¨.ì¿IÓ»déȹœ4ÝØ)h´½˜Â3Ñ•Q%�°ë¸rúÒ£�º~Ù ÙLÀL æØA«¹Uê2�n!ð[¦¢/.ÊNã¢ë.¬tç{w¤¯9ÎF� ¼F}9erÎú'§Ÿ[“<'MÀªŒûñTfYŸÉO�´£ØÿuŒ(h´ÕßrèÑg�žit]ÎÞÓh_Êtç,¤wÕþ�l&`&Psì ÕÜ*õ™@×à"é}´S:é8r)R?#$û£nL¨Ç[YvÁu3ƒ“Âóhsi’ç¤ ˜@•`.ä¤^„“–ûZ#}È!{M@úo´s�@zW-w“ˆ¼U‰ÛLÀL fØA«™Ué1�®'À…Ð h¹0%.žN&¾?z�Æ!yiú[!ÓÝq½_Û�´Q{› ˜@ `¿î´“aбáXÔ„ŽA­ß›¾gs<ÒcÿNx¡ÍLÀj‚€´šX�^èZ\üôBÝÒ#Eúlþ'¹H’S¦¯®iÄì–�Ÿ/¤Ý)ä�IÊt76ÉsÒL FdNÚf,޾ΛFÒ®A½ãÌ4Nû‰ä튮C' µÉ»™vú(ÑíH�Li¯êØLÀL *´yP¬Š%ðLš€ t�_0‘¯"…ú?£�¹ÒûcäBI�;ÞCZÿ�6Ÿ¼¼Fù>œšÎ$½;íÒ÷T’jNš€ T3öñô.Ùd¤cG°QDúP¶uô8c^£ì! ¤œQC"“�þÜú)ôwô ù¿¤®ŽQ60¨ZE� qÀÓדl& ñ‰ÕDê€û¿Þ;ˆô§ÔúRãTt#�rÆEQ[ÎY#•Æç*~ü£»éú#êô®úÇ53¨ìëº!#'-ÝçG’w=Çš¢nSo=êëX´Òqh(:i„_Ÿêÿ$¡ÍLÀª–@!mV²D—%i'ë�'½]XìÉ¢?™¤�¬=_ÎIw©ÿŒÖGO WÑN¨Mc»D…?¡øâk!i�œé‚Íf&P'JuÒ8žôÕÝhEt ÒÈÛû„ú²ã¦è-Tp$Ž2› ˜€ T<�BÚødÎ÷ä xZ>Éw²N°î`Qu§2¶œ§ÇŽ×$�{YªçÑÒèMôC¤Ç‹ôîÙÿ¡‚ÆvÓŸB]L¥Çý×™Fál&`uF sÒ6b±Ó4IûS[×´�G�ó�Þ=Ûƒô"êëcEúˆˆµýÈSh30�ª%°$²V3ÏÁNwºEC’Â&ÒGÑFBi«l k°˜£täLw(7b[°ƒVÛÁ²,æH#¦¡õÐvh8Û€FÖZYv‘¥÷MôøQl:†œg8n&P8F莎e�M7o¶ç8± ÎŒã´]Šò �&_ññÚ“¼Ü�Dò5¶1Ò�Ä9„60¨yGÐ8˜éâ{/47Y’Ò7rà{í‚äÈÙj�ëv0ÒÉÓ(uδÄúCa;g"Qƺ~é¢IRº[½6Ú™¼BÎ™Ž ×£Ô9»œ6vÎc3�z'À±@×z'-IFÞœƒÒ‘÷fd´•s¶g£ÑhòrÎYV雄ú:¬¾:{X–çÀLÀª‚@Þ´0çÔ¿ yI8‹ôx4�£ïP%pª-ÉúîÃ<ï†F¡æ_w4õxÚ­Ê�mK°-é½Õƒ·‘ÖGA%ùNš€ Ô1Ž¥Œ¤É ÓµÌUBH_«ìŒôÁ�? •Ð_ÑéÔ¹‚Ðf&`O MMsÏÁNw°N@G¡¶FÌtw}"º�ƒ`¡­ dëW�ªíš©àKÊïA?dý¦w;ɶ™ÀblSG;/áñé­ÙväàÛLÀL Žýȸ kQ°ÄÓHõµWúøI_å·™€ ˜@E(ÚA sÏp0qÝ!ßõ ùí„zWi Ò(Û“uÁo묯¾LfC´)ÒIOÒI°Óú:iTtQ1 \§~ °­iÛÒ…Q|\Ј™>&£ ,› ˜€ ´I€ãH§�4ÚnKç÷ Ý‘FãÎ@Ç£÷‘ÞISÙsh ú<Ç¥ÚLÀL âtØA KÀ�P�#ì�ä¨é¬#6ŸÊ�!9n3Ð3h&K]ÌÙ:I€u2ˆ¦k¡Áhh®AØ›CåkÑïXZ?6h—@¶í=@E‚-"òu¶£)!á ˜€ ´G€ãI)Nš®K¾�ô!£•Qó×éw i}üJ7w"´™€ ˜@Eè´ƒ/ =9» ðä¬õF�±&Éa›…Wø¢B¦ ëÞ`=â½:j@rÊ”V�\�,Ú4ºqšgýç•ÍŠ&À6ÙŸÊ“‘¶ÁØô1™ëâ ÇMÀL Wä¤]ƒvMêë|¥/Èêú ¯Ñv3 D!ý/Úuäõ"®¶:_6’wy#‰¯FÜ_–„ÍL r”ÅA‹‡žªÛ¡áhS4•ÃæÒIR8' Íç ÛDX•·þ̸ØÉÓsòJ+†,Ý›°Téh ºnOt”ÛL  �l¿ƒ Ã’J§²]�–ä9i&`Eàø¢óÝõHŽTl:‡mÍ1ffœÇi;–´þ+í7Ê'½ÁôÒûi#]«ÈÖ£^Þ¿ Y\ì_0è^ewÐÒÙç Ø—¼­�.àä¬ EÊë*[@Çó�à £p>q)”Í™<=LéE!Qd('ªOTWVHËéê‡t¢€d CZåjßU¦e™�tRš†ôÑ–‚'5Êm&P4öï¨<2i0žmLG60(‰Ç�+;夅 Ó‡FÏžEk"� ×EÿA:7ßÃñê„60¨]î å[R–k�¿ŠE"j+�À\ÚÊù’C¦ðÅ9ù,$´™@Y °ŸK‡G%�ÞCz{¶9ݰ™€ ˜@ÉJuÒh¿ 3¡”2Ý�ý%z�Ž6äx5�:[—Î%­G#m&`&ÐczÄAË·´û�/Çm­,T¼!“â¶ÅæÌBMQ>²¢B› t9ö×0‘K’ 鯀>§¿ ÉwÒLÀJ"À1§7\†L:Ò�IÝšžä·HÒþGdìƒô‘ÙHçÑÛÑ8tÚÉŽ ¯‹Gýk&`=C b´öŸƒku Ï£þY<„ýH÷ÍòªÒä\IMY8‡P'…/†¸/~!aëÙ>6‡m¬ÍÑ/êéƒ@7"]0Ó¶ªÏék{µ™€ ˜@—àøs!žt®›BrÒ¦&ùy“ôñs ä°éܺZVIﲯˆÞD?¦¯ Y¾0èvUã K†¯5©!k#‡N’râ–Ϥx09}ñ…fšõÚ uq?F§•¯´¬)÷»8ýqå/ðEmFÅA�`ßÑ�dÝôØ�mR<­Œ:CÉœŒ´/SÝ-i3=d840�®"Àq¨ÓNZv� sï2Ùüý“Pý�—¥O <ý”cÚ•Yž0èV5ç u+=OÌj„-r¸^G}�-Ý�7H澂Ö@ð0’L£m;Q÷Î�áÐLÀºš@‰NÚ^ÌŸFÑôy}=æøô/´Úé�5½ŸÖŸcÛÛ„60èVKuëÔ<10�J%°3&çL6=ÊÐà\ŠŸì®óDcçLÅÛ9› ˜@wà¸sÓûI2MÝhºƒãUc’ß"IÛëÉøá9„º¹´;’Ã&Ó£�/ ã§mHÚLÀL {x­{8{*&PѸ ÑÈØ¦ÉLêÑÅ]Ñ}ènÔˆb;› œãã ÇMÀL ; pì:Œé]”LS#û{r|º)Éo•¤ýßÈü+Ò‡�f¡Ï¢èË´¿ŸÐf&`ÝNÀ#hÝŽÜ4�Ê"ÀŠFÊRçL3©»Ñ“�´FÛD;g1ÇMÀz‚Ç!�|žL[ï•O䨶[’Ÿ/y*™ÃÑè]¤ÿLbç 60�#à´Cï ›@eà"&ßÿ™µ5sS)Üš Ý¥¶™€ ˜@�à8Öé‘4ÚÀÈÑ[=�6çø¦'l&`&Ð#ì õvOÔ*ƒ&ºÓ¬—ã‹}×â9êãâe^e,�çÂLÀàx¦Çõ¸£ŽkÁŠzÜ‘¶ú@È—Ð Žoï‡ÆMÀL 'øÇž îiš@娅Y)Ö9Ó\ÏG ±™€ ˜@%À±º”ùÙÅ£ûrÖnÄÓ[A£í[è 9gÔ]í�¯2ù}Ð’ùÊœg&`å"`­\$Ý� T'�1œm}~Z_xlè`;W70�.'€ƒ¥ƒ¤Nš¦{Ç­6�4U¢ŽnXé£H×ÿ†òdÄ£‰ê=µ×ˆ¨|› ˜€ t;h]AÕ}š@àC_*щYD›‡i?´mÝÄLÀº”@)NmõøöyH+2Y3ʱnm‚Ðæh*ú1:‘ü¼£l”ÙLÀL $~­$|nlÕK€‹‹c™û³KX‚´Õ§¬o/¡750�.!À1N_q¼é?Íb;œãVøß³8¿9NÛ¥¨ó¡2ˆßK° ºíEþ¢,oEâë“g30�²ðZYqº3¨*¥>¢³‰F}³ð2B=6©Ç ï!´™€ ˜@§ ØAë4:74�ê$À…†Þ»¼ƒs¯÷.®EÇsñ¡Ñ3› ˜€ TŽƒ˜i}�±2ó:¾�åøÞ1KŠ[&éGNض褯9öB/£ßÒÇá„60è4?âØitnhUK`Lç|õõ(£.^ìœuž«›€ TŽa3™}ô#=–�"ïz¯ÞíÍmVG}<�ö¥O9ug¡Ï¢#› ˜€ ”DÀZIøÜت‹ƒ™ãM‹œëéÔÎÅÇöhF‘m\ÍLÀ*š@NÚHf¼]'-sÈ^¡îôÇÕsõˆäBt Êù«†¸C0è;h¡åº&PýŠù8ˆî,�Aq!¢ÿÿ±™€ ˜@M(ÕIÆÑHÿ%Ù„ŽAéw6¡¾ì¸%Áß SÚf&`!àwÐ:BËuM Š p¡ Gwþ…úXŒùä_„Îá"Cw‚m&`&PÓ8.`ïFz7-6½cö-Ž…?†DÛÍ©³ z ]GÝ åœé)…»Ð§�FÙ¾GÙÿm&`&P;hEar%¨~\4ìÆRܘgIôþÄ•è4."Ò÷2òTw– ˜€ ÔŽ�ýY}8$uÒ¦’§G¼ :i)úÚ�<=y°ÒcâD{ +è§Ýÿ]£žÍLÀ–°ƒæ�Àê„bQwJ÷6ÒGsá03ÉwÒLÀê†@9œ4úX`ú_´Ñï�>¹¿ˆ|�Æ5¢/’Ö»k60h“€ßAk� M 6p�0€%-�îìnÍÅÂÎvÎ"*Žš€ Ô%Žƒzz@_fLoV #駵àD¹×£’rÎnFÁ9;ƒø¶¨:“z_#´™€ ˜@›ì µ‰Ç…&P3öaIôZÒ…ƒ>›?…¸ÍLÀL™“¦�{èÑÆØä¤Mƹң�y�¶ó(8ÝŽö$­‘³ÿGüDôÒgø'¢k³|¢60ÈOÀ�8æçâ\¨)\<Ê݈~΅ÚZ8/Œ ˜€ ”‘ÇK�–Ý�ä˜Å¦Ñ5=y Ñ¶¼FÛ¥(ÿ�ðH*Èa“s¦›bÉÓÿ¤=ƒÞ#ýÂVÚ·*p† ˜@]°ƒVW«Û [�8áëb£óêqù½Ì&`&ÐQÙq³³NÚ:Lïélšc8ö^CúhÈ=h(º�¼�³ò\@ùW‰È¡›FÙÉq™ã&`õGÀZý­s/± ˜€ ˜€ ˜@;JtÒÆÒ½®±®¢}n_ŸÝß=�¶$ÿUB}’ÿszOmtÒçú?"´™€ Ô1;hu¼ò½è&`&`&`… dNÚ8jŒLjéqGýOšÂ‚Fûe)œ„¶Dúë¯ÑfùËן]„.F�¿�Ðf&`Kø#!ÞLÀLÀLÀL œ¦dï…nLБևC¶e›P¸)zi”ìÚ@(Ç®?Z�iüÔÎ$l&`Í<‚ÖŒÂ000hM§J_Á½¥#iú`ÈÖ8Xr¸òm·§@�6®ŽÎErÖôÿ“#´™€ ˜@+vÐZ!qF-àD9€åÓG3tç²RZ¦P'à~HåÁB~H+LëÄe!¾ˆÈœ�ˆBå©L× ùóÈÍÏ4‡“x¨O–ÍLÀL '”â¤i~iÿC‚g9¦ßÓóïiš€ T;hÕ³®<§pÒ“C5ÉéZ-Š+¯/j@ª#Ǫm3-ÇMwjå¸)lBrêÿ§BNúŠÛLÀLÀºˆ@æ¤é�±ƒ“Ièø»3ÇáÇ’|'MÀL Ãì u™ôNŠr®#="²jȤxµ:^ÌzYMŽ\š•„ÏpÑ |› ˜€ ˜@pNº�nOºÒ1x{Ž·S“üIÚnKÆêé#!60hEÀZ+$ÎèIœ¸ú0}9bz±zPWÚNJ0]8è iz>ÂÂ<â600�茓F›aLFÿ¯Ö 䬑7› ˜€ ´ `­'º›'«!LSΘNZŠË)Ó‰««LÉ|4'›@Sê$¹©L ¦ü÷B" Õ‡ž¶LË G,Sû<aùúïŸUhÈB¥•/‡´/Ê×Ùe3qx MC�(ä‚Al&`&`í舓9gËgÝ^Äñöˆv&áb0�:$`­WzO.2'¨ÁL;$‡¬É )ÕÑ��¦,”S¥´Bý¨ÂùÕz§fbœµ•ˆË‰“ã–*œô)ê´É9“³&݉¦ÂM|m&`&`ypŒ>…ìS“"ÝÄÛ•ãç½ÊÏãœ){>Ò(šB› ˜€ 4°ƒÖŒÂ‘® ÀI©7ýÊ!Û �@ ¨3&Çaf¦Y„Mèh'79cuo°Ö¨[Ò{z ×@rˆ!9x�1]d܆&¡Ûa=¯3�¸� ˜€ Ô2Ž¿‡±|%˨›[{¢Ñd”ï&Ú©WO£Ìf&`Íì 5£p¤œ²»…ûÐçH$Ç¡#&l:Ò(Žœ²ç8�)ÏÖI™ó&gí+hŠ”–]¬-¤¢µk‘œ5¥m&`&`(à¤}@ÑQ¡›dó)ó(l&`°ƒö1 ÇJ$ÀÉ©]È);éâ¿ÓÉi šŠ¦£Ç¹ðWž­‹ °¾äœi=mˆ†¡FÔ€Š±yTº]Áúš[L×10�Z'PÀIko±Oä8zf{•\n&P?ì ÕϺî²%Í.ôb'¢þíLH£.÷ Û�¾"(§ÌV!X—˜•-ЈLŬÏñÔ=‰u)§Íf&`uM€ã¨Î‡—¢^E‚ÐM.�¢ù©„"�¹š Ô:;hµ¾†»xù8iäå2ÔÖˆ™.ÜoD· û|‚B•ëwSfUïŽBk´1Ûõ<Žu{Eu\d&`5O€ãæ òaÔ· {8ÇÏŸw ¾«š€ Ô0;h5¼r»zÑ8 É4ÎFzT.µEdÈ)›ˆô¾’Ò¶*&ÀúÖ{kz„u *tá¡u>–õ½€Ðf&`uE€ã¤ž:ÐAä¤uÄæRy ÇN�¢u„šëš@�°ƒV£+¶«‹“Ð…Lãð<ÓÑHÊxt>'š9yÊ�UåX÷}X=Âs(Ê7ªöù[ÛIƒ‚ÍL n”àœFE $š@�°ƒVç@gŸ“�FQ®ÍÓöJòô.’îÚjœÛ�FN5Šz"Z>YÜñlc“<'MÀL & ”Á9—YhmŽ�~â¤&·/” OÀZñ¬\œ„ú<�âGÜ4j6’“Jî9‰ÛêˆÛÄ÷OhH²Ø#Ø&ôg×60¨YerΟ17'„„C0�ú$°T}.¶—º»Ð6vÎô¼ü–vÎJ ZåMY÷z”uK4=Y”1IÚI0¨Ez代ïœâp"ŸžN°™€ Ô1;hu¼ò;¹èƒ“vçq�>#És²Î° è£ G$‹�n+I±“&`&Pý8þ�ÆR¬‰.A¥~äc úÐk60�:&`­ŽW~'==SzäÑf"°R‚!}/-)vÒLÀjƒNÚ,ôC–æ Hïå–ò.öáµAÅKa&ÐYvÐ:KÎí�ƒyC�=Úê˜Û@‹Q#𢛀 ˜À8ióЙ ˆÆ Îb30�º'€“¶M@ëcšÔA(§v°¾«›€ Ô;h5´2{pQôBóy\¨?Š6íÁù𤻑ëº?º†IÞƒúwã¤=)0¨8iw¢í™áõÑxTÌ{jE”Íê•€´z]ó]³ÜCéöa.ÚïFÛuÍ$ÜkO`ÝB¿f>f£Q==?ž¾ ˜€ Tœ´éh,óªÇ‚æ·3ßGµSîb0�%`­FWl/Öp¦?‰‹øgÑ ¨¡‡çÇ“/‘ëpytº›®žE¢>%vëæ&`&PwpÒæ¢“XðUÑ¡hVÃ8æ6(s¶ ˜@ °ƒVÃ+·›íD¦3±À´‘¯»„³9É<€ŽEþôzX•–ͺÒ#ŒrÊnfÞ^GW"9ßùl:™MËGÆy&`&�‡NšÞS»éý»¢©yª�’'ÏY&`5NÀZ�¯ànX¼9œ\öb:ºpŸÒÆô†Qv6zš ~9l—¡=Py¶ Àºè‹¶Cg¡G™¥!9eºp(4Z6‹²ƒÑFèAd30è Σ·¢-i¦céD´(뢑ãqcw`&P'–ä€P'‹êÅ,NãègLÔ×¶¡ !M¹ÞC;颾wÈo'l¢\wC�#=§¿€ÐÖEXOZ7ÍÜ Ar kÓ¨xÒEEîB‚>Hë½´`M” ‡&`&`ÅÈŽ§‡Q{ šÊ±tçâZº– ˜@-(öº–ÕËÐ 8‰ÈÉÚ�“K?ÂÝÐ(¤‹ÿ¶¬�BIusFûD¤éh&z޾Ú:H–úÂâzhP¦¡„rÎú ŽØ,*ëή>­¸ÍLÀL  pŒm¢Û#8~ŸF8špysº`RîÒL  x­WJ%Ï'‰6GÐòÍ»N,äïˆvBÃQGšäl¿rÒä4Eá?”æäµ�°. Æ ,øêHáQ¨x_ÔY›FÃÛ�>-ç» eóà´‚„\`&`&`&`íèÝ~×0�Òdwý® —+¸ˆ—s¶–iSÂb6m¯ù‘Z}Ï'sš›…M„ó�òÿ™…ó™Ÿ&âo,Ofry$w¥,Þ@¨|åÅ!ɲ˜F,§fºVâg3000è&vк ´'³˜ü ‰Ý™i‰ÌaÓ#wzJá”×#¿=ëK©ÍöLSýh>äÈÉšr¿‹ÓÊ—ÉÑ[”‹-•.ż…>ä\Ç´!Ë yiÝЦܡ–iz¦ÇïcýÌ/÷DÜŸ ˜€ ˜€ ˜€ ˜@ñì ÏÊ5»€@æ°M¥k)g8PË‚Â{Skdi90å29G Yg!Ì’5Èéš…fdšIøˆGÇ `3000� #`­ÂVˆgg‰%pÀ¡…Ó&.8n} ä¬å{×J�üÕóö¬ÑÀ&$GL¡¤wófÂ3Œ’´™€ ˜€ ˜€ ˜€ T2�z¾ ­äõâyËCGC#AzOje8pa“>Ÿ…rÚ$�È…2Å•W 6�™”³Ú„´ìÒ$‡)Óö� IDATKzUi¸4ÚLÀLÀL K dO¸ôc":�êRç[…:ÇöAº‘*É”V~°¸,äê\¨sb°p~T:”-"®s¤ìÅÅÁâógvý�e90�Ê' �Êf5A )’ã2½½ŠN2Ú‚ÃN4jÞ ŸÌÒ“LÈïH8ŸÊR0ÍçÂ,¡Ê(œp°,ñ‰(«æÀLÀLÀÊO€s¢ÎƒÒ*Y(ÇJé$‡lù,NP}Æòi¦u®•3§ó¯âRˆû†'0l•C wåÌŠçĺ��Ò’lÖâÀ¿&`&`&P›pRÖ`ÉÖB ¥†(Ô�ÈZ79œ²A‹ƒÖ¿0ZDnÒuANy\;¨Üf]NÀZ—#öLÀLÀLÀL {àdhÄk4 ArH¤zpÂXÌ’L×ÅÁ�M;ZÛ™dJ3�žÖy§m¡ÍÊJÀZYqº3000è8 rº†¢-ЦY|aWÙB:ž›)Ä6?¢ŸÅ rU£ÿ ¦§V:ûø~_ÚJÁƒ*ÊÄ¢V¡�P׸b!‡U�h–jêON¯42tÆ:Ð2MC�eáƒÙS:¡ŠCè0;hFæ&`&`&`&Ðýptݶ)Ú5fq9&¥šœŒ9™ä€)Þ„åÊ«ù?Ø5°ræäÜÉq ’SÇIvÈäî”I 5ÒœµÛHËa“k3�¢ ØA+•+š€ ˜€ ˜€ ˜@÷àby¦¸ �äÄ#I$‹¶yÔœ�f¢Y¨ éïXšp æÖ´±ŒMí-`ƺ�zñßù¬Az’#WŒéÚzÓL‡. ß)„· [™­› ´IÀZ›x\h&`&`&`ÝK€ z]Ÿm‡F¡]QGFÉR_ŽØ44=£´(´c0Z@±“Zë¤/ƒÐzY8”p’Ý–©|§L—ÓÏ$âÑMLOëÊf­ØAk…Ä&`&`&`&Ðý2'à¦|ê_ä4Qo ’Cö’3¶ˆÐVF0�Owb,5ël0‰ Ѧ¨ B…L×ÝÁY»„¶—�¾”¾çjàüú$`­>×»—ÚLÀLÀL Bp¡®Q–cÑ¡H#5mÙ< 5 #éý¦&B[€¿FÛ¤ šÖe}ESŽØ¤÷Ûò™Öó‰è(Ú\Kx<}iÝÚL ÷…c0000è\œïÆd/B….ä5WMHñwr?•ÐV¡X? »5“¶ÁÄõážHñÔú�q IÝãhEZÁéú#°Tý-²—ØLÀLÀLÀz–ã½Ñ¹ÌÅ�(Ÿs¶�üËÑ–\´D'!;g©&c�é‘Ó3ѺÌ÷úè<4/Ï2hDMï¨]�–ÏSî¬:"`­ŽV¶ÕLÀLÀL ç È9c.®Gz×,5�À‡Vå¢þûÈNYJ¨JÓ¬Ëéèhfÿ èP4+Ï¢h¤í;iyÈÔQ–´:ZÙ^T000�Š ps12™“E¤ÏFkršŸ”;Y#X· Ñ¥,ÎÚHÎø‚dц‘>+És²ŽØA«£•íE500èYŒŒ40rÄbÓ¨ÙF\´ëCéÅz\Ïñ"Àº^„Îa‘ôøãŒdÑe[‘£f«CvÐêp¥{‘MÀLÀLÀzŒÀLY�8ÓûHrΦ‡ ‡õE€ußÄo†f&K¾O’v²NØA«“íÅ400¨ƒ’¹ø ès’<'ëŒÛ€FNõ¸clé¶—9^Ãì ÕðÊõ¢™€ ˜€ ˜€ T<�?‡žÁî"п»&äéT6;h•½~Úm›Cñ»i5¶˜^œBXïz/ñäÿ?+©Îòí ÕÙ ¯¦Å倥?mœŒ~…¾†”ÖÉke´=ÒÈÜI½OvÊh»; ŸA m&`&`&Ðtn»=ÌyiÓž˜O³û °®¡»™òDdç¬ûWAÅNÑZÅ®Ï~‡¶l‡Ä×)¿®�:mkäì³mUp™ ˜€ ˜€ t�¡LGNÚd´c7MÓ“éf¬Ûaèf&û,ÞÍ“÷䪀€´*XIõ8‹¸¾År#Zö+ˆ¯‰–F«£‹Q°�¨?"$ˆ|<1.S<´QÊâ¼,-ÊôøÉÛhº­”ÖËêîAÙCèô_t?Ú%®Kº¨ùËúk®K»•Ñ%è%ôz�Z<æI²Òix©+‰ÀÌLØ>åÜä³îºÁ G ƒý5Dã»–zt!Ø!Bxß<Šw&ª»lÁ憡ÞË ÏÓ#!“0žï(ÛQ00�J"ÀźŽõ{qÁ/'K7G¡FÔ–Éa™)W�ö³ˆ¨¯™hÒMÍ™ôß–ãG[LŽºѹUïr+‰h‡ì1j_‹~ÇzˆÏãêÄ•kŸ@¸®ý%õV�טá/d3ýÂÇó,€òƒ©~›ÆA¶W› ¾½Å—�â+DñùQ<®ÿ™(¿U´ˆùÓÈYÎ8°ëÿàB2—‹ñ|ëñH› ˜€ ˜@•à8¯sÉo$Ž÷rÀvD#2-OØž­A©…Ñ—7©) ÿA\�ZÎ#¬;ƒ‰œáhuÔ€Ä-„Š÷F�19ÃS�FËn‡o¡ÍÚ%ÐÙ ®ÝŽ]ÁJ$ Ÿà A|Tžþ‹òâÑ¢ælºKs@ü_–QÌ ­¹m‘cõF–þT”;=o’ß/+“³¦´Lý`!/¤õîZÑóÇr|ÔܰpDN\˜f<�þ¯¸Â“r‰ ˜€ ˜@wàð¯Ñ–à¬éÚmÚ mšÅ;r~“Ã!µ2ÎI‹Èœƒš�¦©¸œ6Åꦣòæ3Or +ÖX1ÑyYέ· •–äŒÅêCº¶�N¦ešBxœ”g3�èݡڮlÝGà&¥G;dûp •“u6Ò3Þ«¡cÐ(Lõƒ½Gd™,¡ñ+Y|�,Œ9=¹¡(¦±$R¥SÛ’Œ[²Ì�¢ÂQü1â#²´êÿ1‹ËB:hË:2‹[ÿ«y Óܘø�YÓÍŠïÂ5MÀLÀ*•§©EÌÛ”LºÑ§k¹!h“,J8uæOm26¦«B9i’œ�¹Hó6S^ì 4…‚†¨–G¡ÒÁúéƒt¾—S3¢]n:çNGºГ>�Ù!ƒ‚­dac/¹#w`e& çn¤¯ÉÆfÊ%’Ÿ»HßåÍ"<ž“Èq¤¢_FuBt‘0*Ö@Ý·9¸¦�KžKþLêiÄìœÐ�ð†(þ+â#²ôÙÔ:‹ŸÕ¹8‹wdþ¢æEEO­aYMÍ÷sÄåtÆó�;¨e¬û}Y¾«ó,ãþlããòä·›EŸËRé—´ÓVåbëµÕGw–1¿-n̰|¹+ÏR¦Uíó_ʲ»-øÅ›)glrX#� ÊÂÂrZ_:“dšF­Ú\LŽ˜®¤'Ñ ØëÂfe'`­ìHÝa9pÐÓ4ïA_7£­Úèó>ÊöTý¨ÎeÄ/ÉÒ‡J²9‹ƒ¿�‘Ú:ËÑWÿ„¾™¥C “ϳ!‘…ºS&§,gLþfæ÷ ¡µ‘úŠílêÜ“etdþâ>ЉkF£ Ѻh6’½¾8ðo8 À²îOþ¸e³Ù¾5­› Ç ¼Vl½¼��i&PœoÒ‘ÎoR³±.O¢­ž…kDáâ*¯G/]#ÌBMQø¥á9ŸÐfÝFÀZ·¡ö„:J€⛜L¶¡Ý>hÚÉYÒ�ò ¤Ç¯£Þ‡„ÍFúRÚé¸þ¬É9¹�Š^D±}ŸÄåh3ôÊ·O4’.Ò£‹ ? }Â^�]6郙ìd2Er�4_ÓÑE”ÝH˜³Î_hVT¨yb4êxÚ õBSÑQh²Õ¶]|}­À¢ê³Ðk²­<_ ¼U6õÇ�y)ÒZA+¶^Á\`&Ð¥Øï5â£sAÞóû°49jýÑjY\çÝ~Yžâ*SZu+ÙätiäkÒuÜ,T¼)K¿ª.ʳ™@ÅÐ;733ž‘Ê'ÀÁ[wÞÇDs:†mhB”v´N °m4°è³£Å×]Ç�QÚÑn"Àºø “:¡�ÉiD÷ø6Ê[Ñ_‹m—lQ!K[/_۞̫Öù̪}þÃrÔKÈúª™ó(Ë59kŠë¦ ¼`ræú„aCïHTÎÕ¢¬�B¥ƒÉ Ó V9YÒBŽQÊ«:ƒg#3=9šñ),ËÖQÚÑ:!лN–Ó‹i&`uA€üR,èèdauA86ÊÛ�z'râ׈°ÍLÀ:E€cˆF§$› ˜@ èDn30¨Û±(ñl=Âó¤0ØçˆŒ ‡&`&`&`•CÀZå¬ Ï‰ ˜€ ”ƒÀþI'×p—û]ò®NòÓzI1ÿ?Á£�RZòCYH·W/Où@Úþ=„^Cï¡Eh>š�ô½ÃÒvùÒÔÛ]…f¢·‘úÑ{¬ÿ‡.Fz/´CF›�Ñ]Hó£?‡�CCŠéˆzßD7 —‘Ú/DÏ£«Ñð"ûèOݳÐSè$FbsZ±˜>\ÇLÀL ºøÇêZ_ž[0(H€ ö•(L¿BzUÖ@áÑQc9ý²G”¢ìî‰2íï2¥KÐÒy¦¨?••¾‚ö§®¾|úæ5Ÿ³¸*er>ó9<}É_?Ó¡ôóâêGï«4ê}‚Bñ•Tú"é1h_êN?šÿVF™Þ»¹5&…:箑I}èïAö£Ÿ'õrIʵ.µlb›¸HRçÛq�ã&`&`ÕO`©ê_/� ˜€ ˜@F`_ÂØá™ÆÅî/"gRöPDJNˆêw»áTèK£W x^Ûš}mU] £9B¢|ÎY‹ºYâÂkò$yãI§ÎY\¥‰Ÿ3ýV#iä­LÙTÔˆÚ³©0…6á¿›ë“÷ úblêœ5×!¢å¿+ÎpÜLÀL ú ØA«þuè%00�@ þˆòÂèY(OÓiýP/âÔéK¿K¶È$òCYH·W/*?‹xè÷ ârõ8�0iÔ«=†bÛ;Ndñ« Fù/ß­‚äü B}‹mwœŸïÄyâš–œÙmÑrHN’òâ‘.�?ˆRãÕ£ÌéÄåˆ}©/9“� `ú¿Â‹BB!ó÷I}ØEŽ`°&"#‘ú‘ô7³‘¾žg30¨!:ÁØL ®pñ“{¯Fa¼à…òã:•¯öù¯d¶Õ0o¬ÿ¡ÌçW£y}‡øÄ(­èïÐÛQÞº´Û(JwWt4: ý í�ƒw-z}€ÞB÷‘?ŶVœ`¾Ik$.Ø+D6¦­Þ¹{ ½�žC‡�ÿËP) �IÒiò 2¶¡í_Ð;è?H�,þ(©Øâý8æi ÊåŒ{’È´ý3ú/R_÷’÷54-T"CÛ/E齈.J¿N\ýÜ”õ£¾þ@ž¦/×f&`&PCì ÕÐÊô¢˜€ Ô5�ý“¥¿Qóqé¤çOÛ%ÅåO2Ï SÑWÐ]¦�{43*ûLWT`Û9ôõjœÅÏ'þ"š€Æ"�DµeçÒW¾÷Ô¦$�VMÒé<�N?r”[yÿ#ã”(Sçâ=£ôNQ\Q-›Ð–å]Ø"Ó 00�ª'`­êW¡ £¸¨É=¶¥°£m+¹~­.W%3¯”ycô¥ó¢Q—ØÒÇCYš¿íõH]�ó1�D03O'3´L’Þ,Iß�¤›“ì/ 4�GMÍ…ù#çÏnñˆ£ª,›ÔÓZl�Ɖ$žNc˨|½(®èI:NNŠŽ›€ ˜€ T?;hÕ¿+~ ¸Øê…~„ôih}fúHŸÖnñîéæG‰¯‰nAÿEÿFiA ·BSÑ»è%th €ô6èN4é3ÛjÿÚ=Ô#Þ<��×Ñ�>ö@÷£·�¦£éMB�q_¤;³ìÛÓîE¤Oj?�Âü^“ô}MT¶[oñè¦ÚP¶:ý©_}6\œZ\P’.j~ãùp¼"è}$½»ìDî‰8Ä9Ñ,ž‹òô~•Úw»±½m†ÎD“Ñ|fàt:­ƒÚ²†¤P#då²¹:z/É&i£ÂþÛ"¤Þ’ºkGéøñFeÏŽÊÒè¬4Ãi00�*'ÀÉz Ë ŠÝØÜÇ!9A£ÛkK]½÷êÇá_É_&´Oê轊¸®âzŸæƒ<ùßW؈塟ܼÆíô³ö¡ÉÂÛí‰ûHâ‹H�í‰wfÙߊúÔû*!­‹F�þä>°ð*¡*ï“Ås˦Õý}\Åß'Þê/j~Cý8¤mjfH|v\îxámªT6°Öv³ïh\ïZ<¤}ªÛ�zC¨«÷¼:4ŸñtiûaÒ¾W\Þ‘xÒM;Ç‚~òŸŠ]F½Ÿ–[Y6êÊIl1�Ð�ÃÂë±'Ù°¾Æ%ëltOÎ�§]9Û ÛEc²mLöú©œõÓ�ëÂ#hì ¶®#ÀÝã½éý;Ù~A¸:;KëãºSžÏôéì•ÐØ¨pâzŒIù¹µ¬ìè,<‡PÛô�‘Fçô·­P°cC¤Äðø¨½F 4�QYž.–4µêì²?OóÔ‰�> […GŸt�»²2±›9h,\Íû»/¹aQÅk"�š\�ôÕ<½ŸSÊüª¹­‡°�iÔfë'ߘõSb7í7g:_¦Ö}HÛplºáp;ú)Ò1c5Ô–½›~*I÷Dòí&ª›,ÁÒ÷ÖZ‡i꽸#�F÷‚uvÙ5ÊÛ_HÌÍ2¶KÂ×Iëñ¶¶,8ŒªóX¨ÈEã¤Ç§dy��ßÐ¥Ãn&Àö¦cøè2MvtÖ_¾î´ßcÅÔÛ6éh$Ûàô$OÉô=¬´Ê´$cD’nN²\k¡&4�A Í…å�<œt·u’.6Ù¼Ÿf Â~Ÿ¯ý7óe:ÏLÀL z ØA«ÞuW-sÞ·�퓯œ ¶Ü#>„é_¡ü%¸è:о®F ·Ð/Ð&¨Üv>uªýH�:^€f3;fe�ZvÚjä°Ù@ ÷ZˆáôÿYÒšžìÊõÞ[[¶BT˜ã¥ãhgç7îÃñî%0œÉ}1šäkÄ—f›hwÄFõ�ü`êGýå³Ç`TÛ|VL½tŸ×öœÏþ_šÉtõq°ëC$ §ü I^Hj4}54�C·¢®°ë’NÏfžVLòŠIþ!©ôcú‰×s®˜¼/9"©ë¤ ˜€ ˜@•°ƒVå+° f?ûd¾ ÇŽ,íS‡-n~p”Ї:#�ŽFEU:¥_=Z5éîø%è9ìSDä¨É:»ìùÞ'ûíâ.s£€?&.�Ó‹Ô¬Z‹à¿Qª-'¬³óuïh7Ø?™žþðùý$/o2«wmR˜öŠ[Ü4 ³ç`´n¨�…ÅÔ›‘´Ñ×Z‡£eЧÐvèê|/©§är!�ù¿›øý!M(Gè!Új½ê�¡_’@TOÑ “tY’ÌÓd:šu¶ñÇ™�ÚõGúJê§Ñ&hjBã‘Ê¢vr gFi�Ì?@ý�Ú‹“×ò:ªç¨ ˜€ ˜@ Xª–Á‹PÙ⑦Á]<«ñæ0Ý/wÅ4¹“MA?Dƒ˜ÆÑt²x˜%‹^vúû0kß�÷W³²ŒC²Pï»<˜ÅÛ žŒ 7q.ðÐÔ˜åuj~C»—ëmE¦¸k2Õ«’t{É´þ®ôû™<�ÒwRg.:!©[L½‹’6k’–³¥ÿA“ж(ŸåÞ7� ôœFi•_�42(GU�DÅö'âŒ2ÇÇÒß«QŸ Ä5j÷/´½…¦¡ýÐjh4RùI(gìï5Wy|³æ‹¤o@j/NÑçQüÈ8I› ˜€ ˜@µ°ƒVík°òç?~äçt.þt÷wwþH*å29,Á`º€mq§œ¼eC…Άô1=šýÉï2ô?Zî|—{ÙÃhY¸c>‘ ¹�ŠXŽk¢:ç0¿«#±ùÚ ý<+/÷üfÝ:è"ûЯ¶½`�²9<Å„Ô×hVü¾“úS¿©i*ß¶–Ž µ[�ij;;;�@ž´F÷ÎJòµ½6}½DbsôPsfáˆæÿJôÚå[–Â-;PB×MTß=Zd³÷©'-F éGíwDé¨$YÍö&±]šSŽ˜€ ˜€ Ô�§,3(v`«‡tq4º­¶Ôë�îŠê‡v ßFCCû¸NÈSXl>õ�ëFñ×£øFQœî?^÷…òã:ÙülE]ÝÙŽ—%Äuç{‡¬^ÉËO›~%ÓÔ—ïš÷߸,É×�˜?ÆåQ\wô¿ÞÑù�ûqúiˆú�Ù¡ÌáÇë©\,à«Ñª°Ý)<¸3}ÓN#Lq?ÿ—¯ê|=ŒÞAz×ìytEZ—¼bëmIÝ둜,õ§}J77.Gª_ì+(ž·GÒéeõ–¤ÞÎHý½€ÔŸ�.=‚ÎC_Í×6kOƒ¬Âë‹~ŠªK=ÍÓNH7HžC:Þ}ˆÄ¯ Ý�ŽEÚ™ÞÊÔ9‰Íÿ�ÚOGg¡U;:ÿmMËe…×{9Ù°ÞÆ¡x;]ÎþÝW÷¬Ç®àÌvјl“»b:î³ò·½Hζ`3�â0ò¢˘¨ö¶¡ QºU”6Ÿ óP´/’“¡‹Œû‘>¥ÿ$aΨ׼1’¯‹›åÓ^mŽBšÖª¨ ]…䜄‘…?ÿ6ÊY1Ó uã�Im@ú4 éý½ç¥ÇÏ¢Ï)„9£^IËú !ý=N\Ó~Žéˆe³Q–—Ÿ*P&gñh,ZébQ®?¥ŸsVìü†úqHÛÒ³£¼&ú¥50�º'À±²ÃçѺ‡V'Ø6YÔÉÑâNá<ºu”v´NØA«“]®Åô‰¥\$k¯;hµ·N½D&`å'àóhù™ÖJ�vÐjeM–¾zôÉf&`&`&`&`&`&Pì UÀJð,˜€ ˜€ ˜€ ˜€ ˜€ ˜€ØAóv`&`&`&`&`&`BÀZ…¬φ ˜€ ˜€ ˜€ ˜€ ˜€ ØAó6`&`&`&`&`&`BÀZ…¬φ ˜€ ˜€ ˜€ ˜€ ˜€ ØAó6`&`&`&`5@€Ï´ß„>Šô»X¬.[8­€NFÿ‡ ÷Ñkè42ß„Éÿ"úz ý©þ�hH¾úÎ3�ÎП×ÚLÀLÀLÀLÀª˜Â'™ýÉ"ì@þ2üÙñ{I~Ý'áò9 LEŸ%-Ž#¨sìå¤×$þ R�`Šï†v¦|gêß š@g x­³äÜÎLÀLÀLÀ*‡€œŠe“ÙYžô7’<'¸€ uÎR6ûãt�Š2B<8gïàÀ-MüÈf%°ƒV2Bw`&`&`&`=NàÛÑÜÅãüæl�øQÈ5Iß‚þ‹þ�RE­ÐTô.Ò#}‡6w�EÈÛ݉æ¡EH}<†vu‰ÇÓjõRwý$‹åIDATôz©¯ûÑ.q�¬^ÜÏÊÔ¹ißCÏ¡#Ð’i»(½c?…ø*HO– BSP°ï…á<ô0ú7ú£eïÆ�‘®FÚf%ð#Ž%#t&`&`&`&ÐsðC>ÁÔwÊæ`!áÐH�=~“òÞ8‹ˆ²i¬^N›­IËÉ 7ó¿@übò? ¯ËT—¸FínG¡Ž²5j·!ú=åc¨;A™ÅõÏ£Þ‘IÝ-IoIÙÉôuFR’�ùbH~i„¬RŸùìÃ(s}¿–¥åÜÉ)û{–n~·Œ:âÚlÔß7g´tÖ¢lGM câªc-]ÛLÀLÀLÀL lÃLôÍfä.‰W‰OÊÒr¼³x¡@ïU­„ÆFö ~w–ŸQËÊŽŽêœC\×’rRä˜-�¶BÁŽU„ùY2Yá±@ÿV?8;à ‚söñÕ3).;�:_[mõûräH}ý:*=0ЧÑ?G¥ïŸiÐrÌëóÑüªÏBö§#9¿— ƒ‘ÍJ& �Êf&`&`&`&P½¾Íú²ø�Q^\e7GOÂ!ù7©øÑHž˜åÿ®¹æK qÊÖË™ É[Éy;?”~)Šç¢8@ݺ8ˉð�,þÃ,Tp,ý¾ ?.Ë×ãŠGdñ4øuŸDÿ¥ e˜VŒÒšWM_¶2RZé|æQ�U‚–!Ý–}>+Ôõ´úÐ<ÚL dÚ l&`&`&`&`UH'B×rá-�äü1[Œ?†¯7~‹zm9ÏgmdažÍ"¡ ¦Ç)›�n÷E�“¡Ç ÏDC› —X¢…ƒC=µ½éãzÄp?œª·eùߢøýQ|ó(G§G‰¹Q\#zy�éΡ`¤QÀW¢JzýG�U^ŠôùýU¢²4ªQ>9„ZßA§#› ”L@”ÍLÀLÀLÀL : lÁl'BÎ…>òñ¡œªà õ'^ȹÑ#ˆïP®Píb+”Ÿ«ÃtŽ"r5’£#GëhTÈN£ 8pç1¹û¢Š+DñùQ<8pÊúL”G5r–3ú|?ÄÛ ©û:i$ì+H�r^�ÄN¶’£–×h§ù¼"*Ü;Š;j�& Ùf&`&`&`&P�¾]äl«ÞƒEÖÍUÃI¶´yüÎÕªOËFÉÒzzÇLï�›&0�CÑÒHNÖ÷¢²ækeÊôWÏ¢ÿdõTmå¨npê¢,GM ãš7ºŽ7u 0000�ž"€“°!Ó^-›þ#8=-¾–¨4eáý¬�Ôß ÌóúrÔßô¿"é £<�œé}³_¢0Ÿ‡0_ÏÆu²ø¯¢¼³i7P"ï¬(ÿâ(^jTól#"z‡NïìiDììŽ!Ô;~ƒÐ§Ð�ÌßÒ„ßEÁ® ‡&P ;h¥Ðs[èc &�ð#Ó]´)pÿ!«â²S�þ”õ}Ô„ô¢{+#_ÿ�tz©îBô<º oÕ OõÖGzìçoHwŽõg´o¡§Ñ(¼S’§uË,ê~ ýé³ÖúZšúR¨´òZ¶h™¢¼‹–¥-SÅÖMë‘–µË—:Û¢«ÐLô6Ò²¼‰ôaý_”.žÛ5êUÔ:jw†]¡’è±Å`·†HÞ¥ãúQv§£±Ãô zy}Í‹zÔ»]ñ»YãÙæ[íÇ8mšÏð>—¾ùB&ÅegSçžÅÑÒ³¾Îo§§W(×{vÁŽ!òz–ø)¡ºS²´FäÎÎâL 4l z)Ô2ƒ¢¶¶6ÝUÒ3éA×`ÕÞõj—Û�îr†íBád¯ïò¬ï„«Ø™'ïG1oÊõQ€ÉyêÅëHñÛЊqÛ8N™.N>@i»8ý!åúLwÁãåŸ@ Ý�ŽÛ¦q=öt:Z*_iÛ|uB^±uÓz¤ÛäKùªèî<íÒeQúJ´L˜§8$¿¢ÖQ‡äp­‡žD±�'¢¸õØ9Ó]ç3Ðh¤y= )?ØîDN ‰nÛâ{5ó;g/‘Þ­‚–F:jŸˆmwö“…•¶ŽâùuÜLÀL  x­áW뤹ÐèǼ뎻î$Ǧ;ùº€;‡‹Å¹q�ãµE€m@° S‘¶‡Ø´èsË÷Æ™Žwž¼Ó´‰ðÝ+_�ÔÝ‚ü©Q™œ¨Í©ÿN”§Q69÷!�ŠË>DkRï…\Šê, �CìS”+/g”!¢6S‚(o"ÞlÔi ñ<ê�dšÎŽÔ›”KE?ÔAR#váæáûÄ×¢îìP�:-XP¶d(KÃbë¦õè'/_ê5RßÝ~…ôÌë„-ŒººAqH”ù8õ†*MYE­£hí¬ÿqLfL4)� E0ê9šçã´:Ý ÂI°Nß‹Ý\dèåß­Ñ̤½.ÀG³uB¹‹‘¤Ž“UL€u:�¢uŒ.Aý’ÅY@Zï Ø9KÀ”9)§¨�퓜Îúhᜩœ<�Vi]Óù`Ï�ÈÂ�’ô~ÿ¿½³�Ñìªë¸ SÒE¬º¦í’®H`I‹T©vª–ÐÐK PéyIH%𕀉D°Ô¶´„ò Щv°—´%K]d�ΚLaÑ¥YÒ!®ÖÏw¹gçÌíó<ó²³óÜyîç—|÷¼Þóò9÷™=¿9÷>ÃúŸqˆhãšBÙ`ÞŠæ[õ“|=*ÎYÒK½'8g)hòs²T,'uo(‰M ‡ñm³Í/£žàœ5ãÌ—E·¡ßC×¢bívƽFe\†�€$Ð:hX„­86%qÎòwJî0þœ®Ì ØËå[ÞþíPϬ-@€µÛ�®G÷2Ü8fïF»PÛæÈ¸’{cØ7‰µë›^?�qé [e´Òu²ý>i>Óµµ¯Í©Ð÷Ÿ¡«ÐSêÊCâ9«íŽ:1 ~{+ïªVz3’Ãøþj«ó|&Ÿƒo¢aÎk×ÖhàÌ”€$ �ñðÇñpŸ¨^Ù¤]Ä>€¦V˜Ø!ÊãÐ݃²yÉ£pZ °¦{VÖ5›ëËQœîa¶HÁ{ÐûXÓĵ &Àz´O²~Ö ƒº¡î£ä?uPÙ*òŽÆ©(õhë7‰ÿÚVòZaÖûÑ'P |ÂImä‹Gv bO£Þ‰’h‡ÔyÿUå?JýŸ,iÊ—± lØØò(áªê¶ëÑ×@¾ÔË qýÈçùƒæ\Æ:,¤�N­Ñ°qšn°þ·ÐòLÕzN o«ÒF{J€{c𩍦?˽qe•6Úž õd¡Ïå4ùá‘“_B7 œ¢ ³}¼ ݇¾Ë¢»PN×.CÛ‡]dþ¹'ÿ½è�èvôôøïè/PN/†9gÙd¿ý÷À�Hç ›d˾m±Õgí@´ŠVLþL]ƒ5ýéW£aýåÞxºåÞ¹Ž°míS¶am•ëÚåµsWê¬2–³ù™ÒCé¯|sfIÿ°DÖvm�Ö8|«K@�À¹$p6ÿ��ËqÙö#ÐlÎ?̰óGksòòz´ »ÇvRvu#‚ËÏ=LxB¡Ã´{ŠPÛ@pÞCsÏE—¢g£ËÐhµ–õùº�õɉ‚¶ùF9?`8ë=A‹ÃµÌXã;¹gþžÌëÑ«ÐóÑ S«ÜCqðãšO/–Ó¢œŠËØâܳ|Ódm#ï1úËßaôs¢íLÕm®Æ÷1.¬Û]i.ÃúéÚ §ù�€$0Ã6ÏcŠ]N 6K9Qû4§lØ^‰²©‹0ê~ËÆðÒF§-NÛ±#èp£#œ£�EBmØÅ»íEqÄFqŽ×jY‡;ÑÇ`ŸõÐÆH`ˆCRFôm"Ï* Â�Ôÿ~•^s”ëóÈáû#î«|�üo£+Ð4Ê}VÛ;IÔZî�8uÅžC$�E³”×öÍ:1 žºA'^?5 îª²Fð=JyZ Ø3‰´ßÓ+e£Â®­Ñ¨±Z& H@›L`Ô†y“‡bw“F€MÎqæôÁ¨qÖ^L|£8o+ÙyTˆc][W¦½Òó(›¿&ï?ÑBÓ7ÑÉ4æ6»]Ø„Ù(O5jošÉ^“ž} ÝÏpÖ¶�f˜µƒ–÷²Žk2î±).˜®ô[Üß@��wG£¼ç•óºý_&][i®´ëH�rÐ^S_L<××–{3÷±ü,ä µÇQêŸMx�‹km?é�\.¦ì4[»yâ±®­Ñ�Få¿�€$Ð ~IH'–¡ƒ`ó§+ßd6�.Gq66Ò²‰[@óèD£cMÇ1eyŒ©”-²yJÞ¦,vÒitÚÕ à„;P6Ÿa“xÊŠR#í$�Å!›Eÿ„„Gj À=òx= Öf[�®ãÔ�C–wÇŠåÔ9-§`«6Ú9LåÚÉùm¼©ÝõòøbÝöqêýt©GyNľZÒ„ÿ‹^B�{«¼ÓQêædîïГ«²K¨û•’¦Îñ‹JšðÊ?\¥ã4þ8éè×ê|ê äFýUñmÆ—Ç=‹eÞûh÷Û%£„Ôýñו4áÃÔË£Å_§Ö¨£ÑM ÀúßB73UW~IH£ÏQî�i柟]Åü’�B¢gáöžÍ×év„•lþ¢Ó+~(Å ¹Åq»´QòÖkqv¦­ª ÆPêÅQ«�“ùRÐ O’޳W[qªê¼�s•qËüÆñŒSö6új³$µ­N€µ<À½<Ë<¦›¹ä$ç!òþ”ðsè»è|”“ 7£+Ðl×Ï�ý%ú›Ó±ýsmüÑ¿Byì0÷ò>ônT[ú8c´÷0×}”Œ×6™O&̽—ð6t ]ˆRþG(åÅnçú3ÎY“y�ð¢R�ðÏi+ï†}å—.qÊÞƒ.CjŒå^úÊéßo4 ?�ðKäeÜq,óÙÚƒÞ‚^‡jË#¢§�v:µFe\†�€$Ð ž ucÅlzrJ´å·Î ³ñ)!Qm ”Ï¡8cGÅK¾¶…ðYXÕ O™õ§ˆDy_l-–?"}Ú± �'qáÝè%khà¿©û<Ú8Z_C[ùÅÅçѯÔù+Äóà‹hëd]�¶ò·Úâ$­d�PaÙüikÛ ‹hsÕ|©ûó´ñ%§rµv¯¡ÿ3ýÐÎy�Y#Æ¢mÖþºš©ºó­‚Ñç(÷Æ4ó?P1ð­‚ѧèö>MÖ¹n-ìeòÛèl`¢eƱ8kÏ@S(ñ]M<§R‰gC8ÉvŠÉ«´@|Å!ËæØ/RB_�ÏÎ<Ÿ‘2ÿ�£úý¯aHr2ö>ô®R�6þ�6^Nú¯ÑLÉæÞ{×åþ[fä�¤­+ÉLo@qþ†Yœ˜›ÐÛ¸î±v%ò?&ÿÆvY•λ¨/CUy¥ÿoÑNéÂ6á(Ë\ò'~Ÿë?c$;µFgfD�€ÆNÀ´±/�8Ø@ÅAÛ�â¬åÛÜr—tÂÏ/(.@©%>Ë Áqt ÅéŠ%L~¯”ÅYͦ3a¾%ùZOp?·7÷ÛV3u®K½—¢W¢œ^å3𴈾ƒ¾ŽfQ¾�³Ü{$—ÍäñãëQœ¾_DOEyœ0�KBŸF§�´;Òhë"*Ì «Ð^ô(àz}åïk„#�vr’övt9Êg<_çÿ/(c¹‰6¥Îª¸­¶íž1® Û«Ñ«Ñ Ð…(ŽgÆ‘¹Ü‡>Ê8&jM;�Z£¡ƒµ`C°æ·ÐÐLÕ˜'hŒ>G¹7¦™ÿ�Š�'hŒ>EuÐú´ÚÎuUø™Mìö¦r¤YÞãi;uqª¾7¨2yq´R^ì›·S%a( H@“O@mò×x½3ÔA[/¹É»®lB'ofÎHë$€Ót¬ui~®I@�€$  HàœõÀ9ïÜ$  H@�€$  H`‰€Ú c�€$  H@�€ÆJ@m¬øí\�€$  H@�À´%Æ$  H@�€$  Œ•€ÚXñÛ¹$  H@�€$ �%:hK,ŒI@�€$  H@+´±â·s H@�€$  H@KtЖX“€$  H@�€$0V:hcÅoç�€$  H@�€–è -±0& H@�€$  H`¬tÐÆŠßÎ%  H@�€$  ,ÐA[baL�€$  H@�ÀX è �¿�K@�€$  H@X" ƒ¶Ä˜$  H@�€$ �±ÐA+~;—€$  H gN´æ;ÓJ›ì/�ë[S?ÙJ›ì ´ž,´Ó”€$  H în�bzÛ¶m7¡í­|“="Àúÿ Ó�iMùS­´ÉžØöøã�÷dªNS�€$  ŒŸ›ñ{ÅU­‘Ì’~û²#­|“L€{a7Ó{?º¶5ÍäŸÏý°ØÊ7Ù:h=Xd§( H@�@w4›òѮ֨N‘þº‘�ùB«ÌäàØÉtÞŠÞ�v´¦v’ô¯sjå›ì ´ž,´Ó”€$  H ;Ø ïe4w¡=FGíôA6é(7k‹hÖý� ÿtÞ€iÄ1ë~ÿ€2³zB@­' í4%  H@è6ë9A» ]=bds”ÝŠ>Á¦=qm‹`�w3äßAסKG ÿ e¿ë:� Ô“"´ž,´Ó”€$  H ›ØÀ_ÃÈ>€¦VáÊóÅ÷ ûÙÈŸZ¡¾Åc"Àš^F×/Fq¾G9eáqô‡¬çÍIhÐAó�€$  H@c&À†>�»½å�¤½«NÞSÊcp9uùbB6ø‹„Ú&`í¶Óeœ°+P³i”wÌV²cTˆc~3kwb¥Ê–÷‡€ZÖÚ™J@�€$°4'j3 u?Šã¶ËiÚa”wÖ¡/'­Ó… ´Æ{6M^‚ö¡8dI¯e�f©+Êc«ž‚B[N@m9S�€$  H p.` yü1ï.]ŽrR³V;µ¾FzÇ �ÕiCÀ~'ESèblo¥õ¬ÃA®¿}ö99Ó$0”€ÚP4H@�€$ �nÀaØÁH^Šö7Úu–#Ë#uóh® �ãðHÂIw"à~»ÑÏ6áa´§ ãŸ�…ïç}V‡ølPöïZ´þ­¹3–€$  H`‹ÀÁȉΠÐ4ÊéZ‹�¶8l è$šoœ¼%ÿ:Šb©³ˆŽãˆ¤î¦Σ³8[ÛQ®Ø…(é)”“°(eqrSw m´…Éýh}‡5 ¬‹€Úº°y‘$  H@è•8!õ{QûHïãOÐwT¬8q%½–0ÎVq¾r]­³=áJ;ëµ8c6:D‡,Ž«&� ! ƒ¶!mD�€$  t‹N[™8iy�*ÛÞ&�¼œS�›IEND®B`‚content/fr/admin-processes.md0000644000175000056700000000515315226251677015023 0ustar0000000000000000## XII. Processus d'administration ### Lancez les processus d'administration et de maintenance comme des one-off-processes La [formation de processus](./concurrency) est la liste des processus qui sont utilisés pour le fonctionnement normal de l'application (comme gérer les requêtes web) lorsqu'elle tourne. Les développeurs vont souvent vouloir effectuer des tâches occasionnelles d'administration ou de maintenance, comme : * Lancer les migrations de base de données (par ex. `manage.py migrate` avec Django, `rake db:migrate` avec Rails). * Lancer une console (également appelée terminal [REPL](http://en.wikipedia.org/wiki/Read-eval-print_loop)) pour exécuter du code arbitraire ou inspecter les modèles de l'application dans la base de données. La plupart des langages fournissent un terminal REPL en lançant l'interpréteur sans arguments (par exemple `python` ou `perl`), ou dans certains cas à l'aide d'une commande dédiée (par ex. `irb` pour Ruby, `rails console` pour Rails). * Exécuter des scripts ponctuels inclus dans le dépôt de code (par ex. `php scripts/fix_bad_records.php`). Les processus ponctuels d'administration devraient être lancés dans un environnement identique à ceux des [processus standards](./processes) de l'application. Ils s'exécutent sur une [release](./build-release-run), en utilisant la même [base de code](./codebase) et [configuration](./config) que tout processus qui tourne pour cette release. Le code d'administration doit être livré avec le code de l'application afin d'éviter les problèmes de synchronisation. La même technique d'[isolation de dépendances](./dependencies) doit être utilisée sur tous les types de processus. Par exemple, si le processus web de Ruby utilise la commande `bundle exec thin start`, alors une migration de base de données devrait être faite via `bundle exec rake db:migrate`. De la même manière, un programme Python qui utilise Virtualenv devrait utiliser la commande incluse `bin/python` pour lancer à la fois le serveur web Tornado et tout processus administrateur `manage.py`. Les applications 12 facteurs préfèrent les langages qui fournissent un terminal REPL prêt à l'emploi, et qui facilitent l'exécution de scripts ponctuels. Dans un déploiement local, les développeurs invoquent les processus ponctuels d'administration depuis le terminal, par une commande directement dans le répertoire où se trouve l'application. Dans un déploiement de production, les développeurs peuvent utiliser ssh ou d'autres mécanismes d'exécution de commandes fournis par l'environnement d'exécution de ce déploiement pour exécuter un tel processus. content/fr/concurrency.md0000644000175000056700000000634215226251677014262 0ustar0000000000000000## VIII. Concurrence ### Grossissez à l'aide du modèle de processus Tout programme informatique, lorsqu'il s'exécute, est représenté par un ou plusieurs processus. Les applications web ont adopté différentes approches d'exécution de processus. Par exemple, les processus PHP s'exécutent comme des processus fils d'Apache, démarrés à la demande lorsque c'est requis par le volume de requêtes. Les processus Java ont adopté l'approche inverse, avec une machine virtuelle qui fournit un super-processus massif qui réserve un gros bloc de ressources système (processeur et mémoire) au démarrage, et la concurrence est gérée en interne à l'aide de threads. Dans les deux cas, les processus qui tournent sont à peine visibles aux développeurs de l'application. ![La scalabilité est exprimée par des processus qui s'exécutent, la diversité de la charge de travail est exprimée par les types de processus](/images/process-types.png) **Dans une application 12 facteurs, les processus sont des élèves modèles**. Les processus dans une application 12 facteurs s'inspirent fortement du [modèle de processus unix pour faire fonctionner les daemon (en)](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/). En utilisant ce modèle, les développeurs peuvent structurer l'application pour gérer différents types de charge en assignant chaque type de travail à un *type de processus*. Par exemple, les requêtes HTTP peuvent être gérées par un processus web, et les tâches d'arrière-plan ayant une longue durée d'exécution peuvent être des processus dits "worker". Chaque processus peut malgré tout et individuellement, gérer son propre multiplexage interne, avec des threads à l'intérieur de la machine virtuelle d'exécution, ou à l'aide du modèle d'évènements asynchrones que l'on retrouve dans des outils comme [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http://twistedmatrix.com/trac/), ou [Node.js](http://nodejs.org/). Mais une machine virtuelle a individuellement une taille limitée (grandissement vertical), donc l'application doit également pouvoir déclencher plusieurs processus qui tournent sur plusieurs machines physiques. Le modèle de processus prend de l'envergure dès qu'il est question de grossir. La [nature sans partage, avec une partition horizontale des processus des applications 12 facteurs](./processes) signifie qu'ajouter plus de concurrence est une opération simple et fiable. La liste des types de processus et du nombre de processus de chaque type est appelée *formation de processus*. Les processus des applications 12 facteurs ne devraient [jamais être des daemons (en)](http://dustin.github.com/2010/02/28/running-processes.html) ou écrire des fichiers PID. À la place, utilisez le gestionnaire de processus du système d'exploitation (tel que [systemd](https://www.freedesktop.org/wiki/Software/systemd/), un gestionnaire de processus distribué sur une plateforme cloud, ou un outil comme [Foreman (en)](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html) durant le développement) pour gérer les [flux de sortie](./logs), répondre à un processus qui plante, et gérer les redémarrages et les arrêts initiés par les utilisateurs. content/it/disposability.md0000644000175000056700000000575115226251677014617 0ustar0000000000000000## IX. Rilasciabilità ### Massimizzare la robustezza con avvii veloci e shutdown graduali **I [processi](./processes) di un'applicazione twelve-factor sono *rilasciabili*, cioè possono essere avviati o fermati senza problemi al momento del bisogno.** Questa caratteristica ovviamente facilita le procedure di scaling, deploy rapido della [codebase](./codebase) o cambi dei file di [configurazione](./config). I processi dovrebbero inoltre ambire a **minimizzare i tempi di avvio**. Idealmente, un processo impiega pochi secondi dal tempo di lancio al momento in cui tutto è pronto per ricevere nuove richieste. Dei tempi brevi di avvio inoltre forniscono una maggiore agilità in fase di [release](./build-release-run); il tutto a vantaggio della robustezza dell'applicazione, dato che il process manager può così muoversi agevolmente verso un'altra macchina fisica, se necessario. I processi dovrebbero inoltre **terminare in modo tutt'altro che brusco, quindi graduale, in caso di ricezione di un segnale [SIGTERM](http://en.wikipedia.org/wiki/SIGTERM)** dal process manager. Per un'applicazione web, la giusta terminazione di un processo viene ottenuta quando si cessa innanzitutto di ascoltare sulla porta dedicata del servizio (evitando quindi di ricevere altre richieste), permettendo poi di terminare le richieste esistenti e infine di concludere la fase di terminazione in modo definitivo. Per un processo worker, invece, la fase di terminazione più adatta vede il ritorno del job corrente alla coda. Per esempio, su [RabbitMQ](http://www.rabbitmq.com/) il worker può inviare un [`NACK`](http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.nack); su [Beanstalkd](https://beanstalkd.github.io), il job viene automaticamente rimandato in coda nel caso in cui il worker si disconnette. I sistemi basati su lock come [Delayed 部署å�¯ä»¥æŒ‰éœ€åŠ è½½æˆ–å�¸è½½èµ„æº�。例如,如果应用的数æ�®åº“æœ�务由于硬件问题出现异常,管ç�†å‘˜å�¯ä»¥ä»Žæœ€è¿‘的备份中æ�¢å¤�一个数æ�®åº“,å�¸è½½å½“å‰�的数æ�®åº“,然å�ŽåŠ è½½æ–°çš„æ•°æ�®åº“ -- 整个过程都ä¸�需è¦�修改代ç �。 locales/th.yml0000644000175000056700000000036515226251677012104 0ustar0000000000000000th: # Name of language listed in locales menu language: ภาษาไทย (th) # A text to make known that the article is a translation not an original. # Empty for English, original. translation: "à¹�ปลภาษาไทย" README.md0000644000175000056700000000313615226251677010602 0ustar0000000000000000# Introduction This is a sample 12factor application that can be deployed on Kubernetes using Epinio. The 12factor application is a simple ruby web app with pages which explain about the 12 factors/principles to be followed while developing your cloud-native application. Note: This is the simplest ruby web app with no complexities. For a more complicated ruby app, you can go to [Ruby App](https://github.com/epinio/example-rails) # Deploy ## Step 1 - Create a cluster ```bash bash> k3d cluster create epinio -p 80:80 -p 443:443 ``` ## Step 2 - Download epinio cli Find the artifact that matches your OS and architecture by visiting the latest release here: https://github.com/epinio/epinio/releases You need to download that binary and put it in your PATH. Something like this should work on Linux (replace the link with right one for your binary): ```bash # Download the binary bash> wget https://github.com/epinio/epinio/releases/download/v0.7.1/epinio-linux-x86_64 # Make the binary executable bash> chmod +x epinio-linux-x86_64 # Put epinio in your PATH bash> mv epinio-linux-x86_64 /usr/bin/epinio # Enable epinio autocompletion bash> epinio completion bash > comp bash> source comp ``` ## Step 3 - Install epinio Follow the Epinio installation guide [here](https://docs.epinio.io/installation). ## Step 4 - Clone 12factor repo ```bash git clone https://github.com/epinio/example-12factor.git cd example-12factor ``` ## Step 5 - Push 12factor app ```bash epinio push -n app1 ``` ## Step 6 - Visit website You will recieve a URL at the end of the `push` process. Use that url to access your 12factor app. content/es/processes.md0000644000175000056700000000567515226251677013746 0ustar0000000000000000## VI. Procesos ### Ejecutar la aplicación como uno o más procesos sin estado La aplicación se ejecuta como uno o más *procesos* en el entorno de ejecución. El caso más sencillo que podemos plantear es que el código es un script independiente, el entorno de ejecución es un portátil de un desarrollador, el compilador o interprete correspondiente del lenguaje está instalado, y el proceso se lanza mediante la linea de mandatos (por ejemplo, `python my_script.py`). Por otro lado podemos encontrar el caso de un despliegue en producción de una aplicación compleja que puede usar muchos [tipos de procesos, instanciados como cero o más procesos en ejecución](./concurrency). **Los procesos "twelve-factor" no tienen estado y son "[share-nothing](http://en.wikipedia.org/wiki/Shared_nothing_architecture)".** Cualquier información que necesite persistencia se debe almacenar en un ['backing service'](./backing-services) con estado, habitualmente una base de datos. Tanto el espacio de memoria de un proceso como el sistema de ficheros se pueden usar como si fueran una cache temporal para hacer transacciones. Por ejemplo, descargar un fichero de gran tamaño, realizar alguna operación sobre él, y almacenar sus resultados en una base de datos. Las aplicaciones "twelve-factor" nunca dan por hecho que cualquier cosa cacheada en memoria o en el disco vaya a estar disponible al realizar una petición al ejecutar diferentes procesos. Con muchos procesos de cada tipo ejecutándose al mismo tiempo, existe una gran probabilidad de que otro proceso distinto sirva una petición en el futuro. Incluso cuando solo está corriendo un solo proceso, un reinicio (provocado por el despliegue de código, un cambio de configuración o un cambio de contexto del proceso) normalmente elimina todo el estado local (e.g. memoria y sistema de ficheros). Los compresores de estáticos (como [Jammit](http://documentcloud.github.com/jammit/) o [django-compressor](http://django-compressor.readthedocs.org/)) usan el sistema de ficheros como una cache para ficheros compilados. En las aplicaciones "twelve-factor" es preferible realizar esta compilación durante la [fase de construcción](./build-release-run), como con el [asset pipeline de Rails](http://guides.rubyonrails.org/asset_pipeline.html), en lugar de hacerlo en tiempo de ejecución. Algunos sistemas webs dependen de ["sticky sessions"](http://en.wikipedia.org/wiki/Load_balancing_%28computing%29#Persistence), esto quiere decir que cachean la información de la sesión de usuario en la memoria del proceso de la aplicación y esperan peticiones futuras del mismo visitante para redirigirle al mismo proceso. Las "sticky sessions" son una violación de "twelve-factor" y no deberían usarse nunca ni depender de ellas. La información del estado de la sesión es un candidato perfecto para almacenes de información que ofrecen mecanismos de tiempo de expiración, como [Memcached](http://memcached.org/) o [Redis](http://redis.io/). content/it/intro.md0000644000175000056700000000231115226251677013060 0ustar0000000000000000Introduzione ============ Nell'era moderna, il software viene fornito sempre più di frequente come servizio (delivered as a service): si parla di *web app* o *software as a service* (SaaS). La **twelve-factor app** è una metodologia di sviluppo orientata alla costruzione di applicazioni software-as-a-service che: * Seguono un formato **dichiarativo** per l'automazione della configurazione, minimizzando tempi e costi di ingresso per ogni sviluppatore che si aggiunge al progetto; * **Si interfacciano in modo pulito** con il sistema operativo sottostante, in modo tale da offrire la **massima portabilità** sui vari ambienti di esecuzione; * Sono **adatti allo sviluppo** sulle più recenti **cloud platform**, ovviando alla necessità di server e amministrazioni di sistema; * **Minimizzano la divergenza** tra sviluppo e produzione, permettendo il **contiuous deployment** per una massima "agilità"; * Possono **scalare significativamente** senza troppi cambiamenti ai tool, all'architettura e al processo di sviluppo; La metodologia twelve-factor può essere applicata a ogni software, scritto in qualsiasi linguaggio di programmazione, che fa uso di una serie di servizi come database, code, cache e così via. content/ko/concurrency.md0000644000175000056700000000630115226251677014257 0ustar0000000000000000## VIII. ë�™ì‹œì„±(Concurrency) ### 프로세스 모ë�¸ì�„ 통한 확장 모든 컴퓨터 프로그램ì�€ 실행ë�˜ë©´ 하나 ì�´ìƒ�ì�˜ 프로세스로 표현ë�©ë‹ˆë‹¤. 웹 애플리케ì�´ì…˜ì�€ 다양한 프로세스 실행 형태를 취해왔습니다. 예를 들어, PHP 프로세스는 Apacheì�˜ ìž�ì‹� 프로세스로 실행ë�˜ë©°, requestì�˜ ì–‘ì—� ë”°ë�¼ 필요한 ë§Œí�¼ 시작ë�©ë‹ˆë‹¤. ìž�ë°” 프로세스들ì�€ 반대 ë°©í–¥ì—�서ì�˜ 접근법ì�„ 취합니다. JVMì�€, 시작ë�  때 í�° 시스템 리소스(CPU와 메모리) 블ë¡�ì�„ 예약하는 하나ì�˜ 거대한 부모 프로세스를 제공하고, ë‚´ë¶€ 쓰레드를 통해 ë�™ì‹œì„±(concurrency)ì�„ 관리합니다. ë‘� 경우 모ë‘� 실행ë�˜ëŠ” 프로세스는 애플리케ì�´ì…˜ 개발ìž�ì—�게 최소한으로 노출ë�©ë‹ˆë‹¤. ![Scale는 실행ë�˜ëŠ” 프로세스ì�˜ 갯수로 표현ë�˜ê³ , Workload Diversity는 프로세스ì�˜ 타입으로 표현ë�©ë‹ˆë‹¤. ](/images/process-types.png) **Twelve-Factor Appì—�서 프로세스들ì�€ ì�¼ê¸‰ 시민입니다.** Twelve-Factor Appì—�서ì�˜ 프로세스는 [서비스 ë�°ëª¬ë“¤ì�„ 실행하기 위한 유닉스 프로세스 모ë�¸](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/)ì—�서 í�° 힌트를 얻었습니다. ì�´ 모ë�¸ì�„ 사용하면 개발ìž�는 애플리케ì�´ì…˜ì�˜ 작업ì�„ ì �절한 *프로세스 타입*ì—� 할당함으로서 다양한 작업 부하를 처리할 수 있ë�„ë¡� 설계할 수 있습니다. 예를 들어, HTTP 요청ì�€ 웹 프로세스가 처리하며, 시간ì�´ 오래 걸리는 백그ë�¼ìš´ë“œ 작업ì�€ worker 프로세스가 처리하ë�„ë¡� í•  수 있습니다. ì�´ëŠ” 런타임 VM ë‚´ë¶€ì�˜ 쓰레드나 [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http://twistedmatrix.com/trac/), [Node.js](http://nodejs.org/)ì—�서 구성ë�œ 것 처럼 async/evented 모ë�¸ì²˜ëŸ¼ 개별 프로세스가 ë‚´ë¶€ì �으로 ë�™ì‹œì—� 처리하는 것ì�„ 금지하는 것ì�€ 아닙니다. 하지만 개별 VMì�´ 너무 커질 수 있습니다.(수ì§� 확장) ë”°ë�¼ì„œ 애플리케ì�´ì…˜ì�€ 여러개ì�˜ 물리ì �ì�¸ 머신ì—�서 ë�Œì•„가는 여러개ì�˜ 프로세스로 넓게 í�¼ì§ˆ 수 있어야만 합니다. 프로세스 모ë�¸ì�´ 진정으로 빛나는 것ì�€ 수í�‰ì �으로 확장하는 경우입니다. [아무것ë�„ 공유하지 않고, 수í�‰ìœ¼ë¡œ ë¶„í• í•  수 있는 Twelve-Factor App 프로세스ì�˜ 성질](./processes)ì�€ ë�™ì‹œì„±ì�„ 높ì�´ëŠ” 것ì�€ 간단하고 안정ì �ì�¸ 작업ì�´ë�¼ëŠ” 것ì�„ ì�˜ë¯¸ 합니다. 프로세스ì�˜ 타입과 ê°� 타입별 프로세스ì�˜ 갯수ì�˜ 배치를 *프로세스 í�¬ë©”ì�´ì…˜*ì�´ë�¼ê³  합니다. Twelve-Factor App 프로세스는 [절대 ë�°ëª¬í™”해서는 안ë�˜ë©°](http://dustin.github.com/2010/02/28/running-processes.html) PID 파ì�¼ì�„ 작성해서는 안ë�©ë‹ˆë‹¤. 대신, OSì�˜ 프로세스 관리ìž�(예: [systemd](https://www.freedesktop.org/wiki/Software/systemd/))나 í�´ë�¼ìš°ë“œ 플랫í�¼ì�˜ ë¶„ì‚° 프로세스 매니저, 혹ì�€ [Foreman](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html) ê°™ì�€ 툴ì—� ì�˜ì¡´í•˜ì—¬ [아웃풋 스트림](./logs)ì�„ 관리하고, ì¶©ë�Œì�´ ë°œìƒ�한 프로세스ì—� 대ì�‘하고, 재시작과 종료를 처리해야 합니다. content/pl/disposability.md0000644000175000056700000000572115226251677014613 0ustar0000000000000000## IX. Zbywalność ### ZwiÄ™ksz elastyczność aplikacji przez szybki start i bezproblemowe zamkniÄ™cie **[Procesy](./processes) aplikacji 12factor sÄ… *jednorazowe*, znaczy to, że mogÄ… być wystartowane lub zatrzymane w dowolnym momencie.** UÅ‚atwia to elastyczne skalowanie i szybkie wdrożenia [kodu](./codebase), zmianÄ™ [konfiguracji](./config) oraz zapewnia wiÄ™kszÄ… stabilność przy wdrożeniu na produkcjÄ™. Procesy powinny dążyć do **minimalizowania czasu swojego rozruchu**. W idealnej sytuacji proces powinien potrzebować kilku sekund na to aby wystartować i być gotowym na przyjmowanie zapytaÅ„. DziÄ™ki krótkiemu czasowi startu można szybciej wykonywać kolejne [wdrożenia](./build-release-run) oraz Å‚atwiej skalować aplikacjÄ™. ZwiÄ™ksza to również zdolnoÅ›ci aplikacji do radzenia sobie z problemami, ponieważ `process manager` może bezproblemowo przenieść je na nowÄ… maszynÄ™ fizycznÄ…, gdy zajdzie taka potrzeba. Procesy **zamykajÄ… siÄ™ gdy otrzymajÄ… sygnaÅ‚ [SIGTERM](http://en.wikipedia.org/wiki/SIGTERM)** od managera procesów. Dla procesów sieciowych poprawne zamkniÄ™cie polega na zakoÅ„czeniu nasÅ‚uchiwania na porcie usÅ‚ugi (skutkiem czego jest odrzucanie nowych zapytaÅ„), zakoÅ„czenie obecnych, a ostatecznie zaprzestaniu dziaÅ‚ania. Wynika z tego, że zapytania HTTP sÄ… krótkie (trwajÄ… nie wiÄ™cej niż kilka sekund), lub w przypadku `long pollingu` i utraty połączenia klient powinien bezproblemowo spróbować połączyć siÄ™ ponownie. Dla procesów roboczych poprawnym zamkniÄ™ciem jest zwrot obecnie wykonywanego zadania do kolejki. Dla przykÅ‚adu w [RabbitMQ](http://www.rabbitmq.com/) dziaÅ‚ajÄ…cy proces może wysÅ‚ać wiadomość [`NACK`](http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.nack); w [Beanstalkd](https://beanstalkd.github.io), zadanie jest zwracane do kolejki automatycznie, gdy tylko proces siÄ™ rozłączy. Systemy bazujÄ…ce na blokadach zasobów jak [Delayed Job](https://github.com/collectiveidea/delayed_job#readme) muszÄ… upewnić siÄ™, że odblokowaÅ‚y zajmowany wczeÅ›niej zasób. W tym modelu ważne jest to, że wszystkie zadania sÄ… [wielobieżne](http://pl.wikipedia.org/wiki/Wielobieżność), co zazwyczaj jest osiÄ…gane przez zebranie wyników w transakcjÄ™ lub uczynienie operacji [idempotentnÄ…](http://pl.wikipedia.org/wiki/Idempotentno%C5%9B%C4%87). Architektura aplikacji 12factor jest również zaprojektowana by dziaÅ‚ajÄ…ce procesy zostaÅ‚y poprawnie **zakoÅ„czone w razie awarii** sprzÄ™tu. Podczas gdy taka sytuacja jest o wiele rzadsza niż otrzymanie sygnaÅ‚u `SIGTERM`, wciąż może mieć miejsce. Zalecanym podejÅ›ciem w takich przypadkach jest stosowanie serwerowego systemu kolejkowania zadaÅ„, jak Beanstalkd, który zwróci zadanie do kolejki, gdy klient siÄ™ rozłączy, bÄ…dź minie maksymalny czas obsÅ‚ugi pojedynczego zapytania. Architektura ["crash-only"](http://lwn.net/Articles/191059/) jest wiÄ™c rozwiniÄ™ciem takiego [konceptu](http://docs.couchdb.org/en/latest/intro/overview.html). content/tr/processes.md0000644000175000056700000000517215226251677013754 0ustar0000000000000000## VI. Süreç ### Uygulamayı bir veya daha fazla bağımsız süreç olarak çalıştırma Uygulama bir veya birden fazla *süreç* olarak çalıştırma ortamında çalıştırılır. En basit senaryoda, kod bağımsız bir betiktir, çalışma ortamı, dil çalışma zamanı yüklenmiÅŸ, geliÅŸtiricilerin yerel laptopudur ve süreç komut satırı aracılığıyla baÅŸlatılır (ÖrneÄŸin, `python my_script.py`). DiÄŸeri spekturumun sonunda, çok yönlü uygulamanın ürün dağıtımı birden fazla [süreç tipi kullanabilir, sıfır veya daha fazla çalışan süreci somutlaÅŸtırabilir](./concurrency). **On iki faktör süreçleri durumsuz ve [paylaşımsızdır](http://en.wikipedia.org/wiki/Shared_nothing_architecture).** Devamlılığa ihtiyaç duyan herhangi bir veri kapsamlı [destek servisinde](./backing-services) saklanmalıdır, genel olarak bir veri tabananında. Süreçlerin bellek uzayı ve dosya sistemi, kısa tek iÅŸlemli önbellek olarak kullanılabilir. ÖrneÄŸin, büyük bir dosya indirirken, çalıştırırken, iÅŸlem sonuçlarını veri tabanında saklarken. On iki faktör uygulaması, bellek veya önbellekteki depolanmış hiçbir ÅŸeyin gelecekteki istek veya iÅŸlerde eriÅŸilebilir olacağını hiçbir zaman varsaymaz, çalışan her bir tipin bir çok süreciyle birlikte, gelecek isteÄŸin farklı süreç tarafından sunulma ÅŸansı yüksektir. Sadece bir süreç çalıştırıldığında bile, tekrar baÅŸlatma (kod dağıtımı, yapılandırma deÄŸiÅŸikliÄŸi veya çalışma ortamı sürecin farklı fiziksel adrese tekrar yerleÅŸtirimi tarafından tetiklenir) genellikle bütün yerel (bellek ve dosya sistemi v.b gibi) durumları temizler. Varlık paketleyicileri ( [Jammit](http://documentcloud.github.com/jammit/) veya [django-compressor](http://django-compressor.readthedocs.org/) gibi), derlenmiÅŸ varlıklar için önbellek olarak dosya sistemi kullanılır. On iki faktör uygulaması [derleme aÅŸaması](./build-release-run) boyunca, [Rails asset pipeline](http://guides.rubyonrails.org/asset_pipeline.html) gibi, bu derlemeyi yapmayı tercih eder, çalışma zamanında yapmaktansa. Bazı web sistemleri ["sticky sessions"](http://en.wikipedia.org/wiki/Load_balancing_%28computing%29#Persistence) dayanır, bu, kullanıcı oturum verisini uygulama sürecinin belleÄŸinde saklar ve aynı sürece yönlendirilecek olan gelecek istekleri aynı ziyaretçiden bekler. Sticky sessions on iki faktörü ihlal eder ve asla kullanılmamalıdır veya buna güvenmemelidir. Oturum durum verisi [Memcached](http://memcached.org/) veya [Redis](http://redis.io/) gibi bitiÅŸ süresi öneren veri deposu için iyi bir adaydır. content/uk/logs.md0000644000175000056700000001033615226251677012702 0ustar0000000000000000## XI. ЖурналюваннÑ� ### Сприймайте журналюваннÑ� (logs) Ñ�к потоки подій *ЖурналюваннÑ�* забезпечує наочне уÑ�вленнÑ� про поведінку запущеного заÑ�тоÑ�унку. Зазвичай у Ñ�ерверних Ñ�ередовищах журнали запиÑ�уютьÑ�Ñ� у файл на диÑ�ку ("logfile"), але це лише один з форматів виведеннÑ�. Журнал — це [потік](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/) агрегованих, впорÑ�дкованих за чаÑ�ом подій, зібраних з потоків виведеннÑ� вÑ�Ñ–Ñ… запущених процеÑ�ів Ñ– Ñ�торонніх Ñ�ервіÑ�ів. Журнал в Ñ�ирому виглÑ�ді, Ñ�к правило, має текÑ�товий формат з однією подією на кожен Ñ€Ñ�док (хоча траÑ�уваннÑ� винÑ�тків можуть займати кілька Ñ€Ñ�дків). Журнали не мають фікÑ�ованого початку Ñ– кінцÑ�, потік безперервний поки працює заÑ�тоÑ�унок. **ЗаÑ�тоÑ�унок дванадцÑ�ти факторів ніколи не займаєтьÑ�Ñ� маршрутизацію Ñ– зберіганнÑ�м Ñ�вого потоку виведеннÑ�.** ЗаÑ�тоÑ�унок не повинен запиÑ�увати журнал у файл або керувати файлами журналів. ЗаміÑ�ть цього кожен запущений процеÑ� запиÑ�ує Ñ�вій потік подій без буферизації в Ñ�тандартне виведеннÑ� `stdout`. Ð’ development Ñ�ередовищі розробник має можливіÑ�ть переглÑ�дати цей потік в терміналі, щоб Ñ�поÑ�терігати за поведінкою заÑ�тоÑ�унку. Ð’ staging та production розгортаннÑ�Ñ… потік виведеннÑ� кожного процеÑ�у перехоплюєтьÑ�Ñ� Ñ�ередовищем виконаннÑ�, збираєтьÑ�Ñ� разом з уÑ�іма іншими потоками виведеннÑ� заÑ�тоÑ�унку Ñ– Ñ�прÑ�мовуєтьÑ�Ñ� до одного або кількох кінцевих пунктів призначеннÑ� длÑ� переглÑ�ду Ñ– довгоÑ�трокового архівуваннÑ�. Ці кінцеві пункти призначеннÑ� не видимі длÑ� заÑ�тоÑ�унку Ñ– не налаштовуютьÑ�Ñ� ним, вони керуютьÑ�Ñ� Ñ�ередовищем виконаннÑ�. ДлÑ� цього можуть бути викориÑ�тані маршрутизатори журналів з відкритим вихідним кодом (наприклад, [Logplex](https://github.com/heroku/logplex) та [Fluentd](https://github.com/fluent/fluentd)). Потік подій заÑ�тоÑ�унку може бути направлений у файл або переглÑ�нутий у терміналі в режимі реального чаÑ�у. Ð�айважливішим Ñ” те, що потік може бути направлений у Ñ�иÑ�тему індекÑ�уваннÑ� Ñ– аналізу журналів, таку Ñ�к [Splunk](http://www.splunk.com/), або Ñ�иÑ�тему зберіганнÑ� даних загального призначеннÑ�, таку Ñ�к [Hadoop/Hive](http://hive.apache.org/). Ці Ñ�иÑ�теми мають широкі можливоÑ�ті Ñ– гнучкіÑ�ть длÑ� детального аналізу поведінки заÑ�тоÑ�унку протÑ�гом тривалого чаÑ�у, в тому чиÑ�лі: * ВиÑ�вленнÑ� конкретних подій у минулому; * Побудова графіків трендів (наприклад, кількіÑ�ть запитів за хвилину); * Ð�ктивне оповіщеннÑ� відповідно до визначених кориÑ�тувачем евриÑ�тичних правил (наприклад, попередженнÑ�, коли кількіÑ�ть помилок за хвилину перевищує певний поріг). content/zh_cn/processes.md0000644000175000056700000000413415226251677014425 0ustar0000000000000000## VI. 进程 ### 以一个或多个无状æ€�进程è¿�行应用 è¿�行环境中,应用程åº�通常是以一个和多个 *进程* è¿�行的。 最简å�•的场景中,代ç �是一个独立的脚本,è¿�行环境是开å�‘人员自己的笔记本电脑,进程由一æ�¡å‘½ä»¤è¡Œï¼ˆä¾‹å¦‚`python my_script.py`)。å�¦å¤–一个æž�端情况是,å¤�æ�‚的应用å�¯èƒ½ä¼šä½¿ç”¨å¾ˆå¤š [进程类型](./concurrency) ,也就是零个或多个进程实例。 **12-Factor 应用的进程必须无状æ€�且 [无共享](http://en.wikipedia.org/wiki/Shared_nothing_architecture) 。** 任何需è¦�æŒ�久化的数æ�®éƒ½è¦�存储在 [å�Žç«¯æœ�务](./backing-services) 内,比如数æ�®åº“。 内存区域或ç£�盘空间å�¯ä»¥ä½œä¸ºè¿›ç¨‹åœ¨å�šæŸ�ç§�事务型æ“�作时的缓存,例如下载一个很大的文件,对其æ“�作并将结果写入数æ�®åº“的过程。12-Factor应用根本ä¸�用考虑这些缓存的内容是ä¸�是å�¯ä»¥ä¿�留给之å�Žçš„请求æ�¥ä½¿ç”¨ï¼Œè¿™æ˜¯å› ä¸ºåº”用å�¯åŠ¨äº†å¤šç§�类型的进程,将æ�¥çš„请求多å�Šä¼šç”±å…¶ä»–进程æ�¥æœ�务。å�³ä½¿åœ¨å�ªæœ‰ä¸€ä¸ªè¿›ç¨‹çš„æƒ…形下,先å‰�ä¿�存的数æ�®ï¼ˆå†…存或文件系统中)也会因为é‡�å�¯ï¼ˆå¦‚代ç �部署ã€�é…�置更改ã€�或è¿�行环境将进程调度至å�¦ä¸€ä¸ªç‰©ç�†åŒºåŸŸæ‰§è¡Œï¼‰è€Œä¸¢å¤±ã€‚ æº�文件打包工具([Jammit](http://documentcloud.github.com/jammit/), [django-compressor](http://django-compressor.readthedocs.org/)) 使用文件系统æ�¥ç¼“存编译过的æº�文件。12-Factor 应用更倾å�‘于在 [构建步骤](./build-release-run) å�šæ­¤åŠ¨ä½œâ€”â€”æ­£å¦‚ [Rails资æº�管é�“](http://guides.rubyonrails.org/asset_pipeline.html) ,而ä¸�是在è¿�行阶段。 一些互è�”网系统ä¾�赖于 “[粘性 session ](http://en.wikipedia.org/wiki/Load_balancing_%28computing%29#Persistence)â€�, 这是指将用户 session 中的数æ�®ç¼“存至æŸ�进程的内存中,并将å�Œä¸€ç”¨æˆ·çš„å�Žç»­è¯·æ±‚路由到å�Œä¸€ä¸ªè¿›ç¨‹ã€‚粘性 session 是 12-Factor æž�力å��对的。Session 中的数æ�®åº”该ä¿�存在诸如 [Memcached](http://memcached.org/) 或 [Redis](http://redis.io/) 这样的带有过期时间的缓存中。 content/es/admin-processes.md0000644000175000056700000000511415226251677015020 0ustar0000000000000000## XII. Administración de procesos ### Ejecutar las tareas de gestión/administración como procesos que solo se ejecutan una vez El [juego de procesos](./concurrency) es el conjunto de procesos que se usa para hacer las tareas habituales de la aplicación (como procesar las peticiones web). Por otro lado, es frecuente que los desarrolladores quieran ejecutar procesos de administración o mantenimiento una sola vez, como por ejemplo: * Ejecutar migraciones de las bases de datos (e.g. `manage.py migrate` de Django, `rake db:migrate` de Rails). * Ejecutar una consola (también conocidas como [REPL](http://en.wikipedia.org/wiki/Read-eval-print_loop)) para ejecutar código arbitrario o inspeccionar los modelos de la aplicación en una base de datos con datos reales. La mayoría de los lenguajes proporcionan un interprete del tipo REPL si se ejecuta el mismo mandato sin ningún argumento (e.g. `python` o `perl`) pero en algunos casos tienen un mandato distinto (e.g. `irb` en Ruby, `rails console` en Rails). * Ejecutar scripts incluidos en el repositorio de la aplicación (e.g. `php scripts/fix_bad_records.php`). Los procesos de este tipo deberían ejecutarse en un entorno idéntico al que se usa normalmente en los [procesos](./processes) habituales de la aplicación. Estos procesos se ejecutan en una [distribución](./build-release-run) concreta, usando el mismo [código base](./codebase) y la misma [configuración](./config) que cualquier otro proceso que ejecuta esa distribución. El código de administración se debe enviar con el código de la aplicación para evitar problemas de sincronización. Se deberían usar las mismas técnicas de [aislamiento de dependencias](./dependencies) en todos los tipos de procesos. Por ejemplo, si un proceso web Ruby usa el mandato `bundle exec thin start`, entonces una migración de la base de datos debería usar `bundle exec rake db:migrate`. De la misma manera, un programa Python que usa Virtualenv debería usar `bin/python` para ejecutar tanto el servidor web Tornado como cualquier proceso de administración `manage.py`. "Twelve-factor" recomienda encarecidamente lenguajes que proporcionan una consola del tipo REPL, ya que facilitan las tareas relacionadas con la ejecución de scripts que solo han de usarse una vez. En un despliegue local, se invocarán los procesos de administración con un mandato directo en la consola dentro del directorio de la aplicación. En un despliegue de producción, se puede usar ssh u otro mecanismo de ejecución de mandatos remoto proporcionado por el entorno de ejecución del despliegue para ejecutar dichos procesos. content/fr/disposability.md0000644000175000056700000000627415226251677014613 0ustar0000000000000000## IX. Jetable ### Maximisez la robustesse avec des démarrages rapides et des arrêts gracieux **Les [processus](./processes) des applications 12 facteurs sont *jetables*, c'est-à-dire qu'ils peuvent être démarrés ou stoppés en un instant.** Cela simplifie un rapide grossissement vertical, le déploiement rapide du [code](./codebase) ou de changements dans la [configuration](./config), ainsi que la robustesse des déploiements de production. Les processus doivent viser à **minimiser le temps de démarrage**. Idéalement, un processus prend quelques secondes entre le moment où une commande le lance et celui où il est en marche et prêt à recevoir des requêtes ou du travail. Un court temps de démarrage rend les processus de [release](./build-release-run) et de scalabilité verticale plus agiles; il aide également à la robustesse, car les gestionnaires de processus peuvent plus facilement déplacer des processus vers de nouvelles machines physiques lorsque c'est nécessaire. Les processus **s'éteignent gracieusement lorsqu'ils reçoivent un signal [SIGTERM (fr)](https://fr.wikipedia.org/wiki/SIGTERM)** du gestionnaire de processus. Pour un processus web, s'éteindre en douceur se fait en arrêtant d'écouter sur le port de service (refusant, par la même occasion, toute nouvelle requête), en permettant à la requête courante de se terminer, et en quittant ensuite. Ce qui est implicite dans ce modèle, c'est que les requêtes sont courtes (pas plus de quelques secondes), ou dans le cas de longues requêtes, les clients doivent pouvoir tenter de se reconnecter sans problème lorsque la connection est perdue. Pour un processus de worker, s'éteindre gracieusement est réalisé en renvoyant le travail en cours dans la file de travaux. Par exemple, avec [RabbitMQ](http://www.rabbitmq.com/) le worker peut envoyer un message [`NACK`](http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.nack); avec [Beanstalkd](https://beanstalkd.github.io), le travail est renvoyé dans la file automatiquement dès qu'un worker se déconnecte. Les systèmes basés sur des verrous, comme [Delayed Job](https://github.com/collectiveidea/delayed_job#readme) doivent s'assurer de supprimer le verrou de leur travail en cours. Il est implicite dans ce modèle que toutes les tâches sont [réentrantes (fr)](http://fr.wikipedia.org/wiki/R%C3%A9entrance), ce qui est réalisé en englobant les résultats dans une transaction, ou en rendant l'opération [idempotente (fr)](http://fr.wikipedia.org/wiki/Idempotence). Les processus doivent également être **robustes face aux morts subites**, dans le cas d'une panne du hardware sous-jacent. Bien que ce soit bien moins courant qu'un arrêt gracieux avec `SIGTERM`, cela peut arriver malgré tout. L'approche recommandée est l'utilisation d'un backend robuste de files de messages, tel que Beanstalkd, capable de renvoyer les tâches dans la file lorsqu'un client se déconnecte ou ne répond plus. Dans les deux cas, une application 12 facteurs est structurée pour gérer des fins inattendues et non-gracieuses. Le [design crash-only (en)](http://lwn.net/Articles/191059/) amène ce concept à sa [conclusion logique (en)](http://docs.couchdb.org/en/latest/intro/overview.html). content/pl/config.md0000644000175000056700000000667715226251677013214 0ustar0000000000000000## III. Konfiguracja ### Przechowuj konfiguracjÄ™ w Å›rodowisku *Konfiguracja* to jedyny element, który może siÄ™ różnić pomiÄ™dzy [wdrożeniami](./codebase) aplikacji (staging, produkcja, Å›rodowisko developerskie, etc). W jej skÅ‚ad wchodzÄ…: * Ustawienia połączeÅ„ do baz danych, Memcached, i innych [usÅ‚ug wspierajÄ…cych](./backing-services) * Dane uwierzytelniajÄ…ce zewnÄ™trznych usÅ‚ug takich jak Amazon S3 czy Twitter * WartoÅ›ci różne dla każdego wdrożenia, jak np. kanoniczna nazwa hosta Aplikacja czasem przechowuje konfiguracjÄ™ jako staÅ‚e wartoÅ›ci w kodzie źródÅ‚owym. Niestety jest to zÅ‚amanie zasady 12factor wg której konfiguracja jest **Å›ciÅ›le oddzielona od kodu aplikacji**. Dowodem na to, czy aplikacja posiada swojÄ… konfiguracjÄ™ oddzielonÄ… od kodu jest to, czy można jÄ… udostÄ™pnić na zasadach open source bez równoczesnego udostÄ™pniania np. danych uwierzytelniajÄ…cych. Należy pamiÄ™tać, że definicja "konfiguracji" **nie** dotyczy wewnÄ™trznych ustawieÅ„ aplikacji takich jak np. plik `config/routes.rb` w Railsach lub to jak [sÄ… połączone moduÅ‚y kodu](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html) w [Springu](http://spring.io/). Konfiguracja tego typu nie zmienia siÄ™ pomiÄ™dzy wdrożeniami co sprawia, że najbardziej odpowiednim miejscem do jej przechowywania jest kod aplikacji. Innym podejÅ›ciem do konfiguacji jest korzystanie z plików, które nie znajdujÄ… siÄ™ w repozytorium i nie sÄ… wersjonowane, jak np. `config/database.yml` w Railsach. Jest to duże usprawnienie wzglÄ™dem używania staÅ‚ych wartoÅ›ci, które sÄ… zapisywane w repozytorium. Minusem tego rozwiÄ…zania jest możliwość przypadkowego umieszczenia pliku konfiguracyjnego w repo. Ponadto można spotkać siÄ™ z tendencjÄ… do rozrzucania takich plików w różnych katalogach i różnych formatach, co czyni je trudnymi do znalezienia i zarzÄ…dzania z jednego miejsca. **Aplikacja 12factor przechowuje konfiguracjÄ™ w *zmiennych Å›rodowiskowych*** (czasem nazywane z jÄ™zyka angielskiego *env vars* lub *env*). W tej sytuacji można Å‚atwo modyfikować zmienne Å›rodowiskowe pomiÄ™dzy wdrożeniami bez zmiany kodu aplikacji. W odróżnieniu do plików konfiguracyjnych istnieje maÅ‚a szansa by zostaÅ‚y umieszczone przypadkowo w repozytorium. Ich kolejnÄ… zaletÄ… jest to, że nie sÄ… powiÄ…zane z jÄ™zykiem programowania, frameworkiem, jak np. Java System Properties, czy też systemem operacyjnym. Kolejnym zagadnieniem zarzÄ…dzania konfiguracjÄ… jest jej grupowanie. Czasem aplikacje gromadzÄ… konfiguracjÄ™ w grupach (czasem nazywane "Å›rodowiskami") nazywanych od nazwy wdrożenia, takie jak `development`, `test`, czy `produkcja` w Railsach. Ten sposób organizacji jest niestety nieskalowalny. Im wiÄ™cej różnych wdrożeÅ„, tym wiÄ™ksza potrzeba nazw, jak np. `staging` czy `qa`. Wraz z rozwojem projektu programiÅ›ci mogÄ… dodawać swoje specjalne konfiguracje, jak `staging-józefa`. Efektem tego mogÄ… być niezliczone kombinacje nazw plików konfiguracyjnych, co utrudniać bÄ™dzie zarzÄ…dzanie wdrożonymi aplikacji. W aplikacji 12factor zmienne Å›rodowiskowe sÅ‚użą do precyzyjnej kontroli poszczególnych ustawieÅ„, posiadajÄ…c różne, nie mylÄ…ce siÄ™ ze sobÄ… nazwy. Nigdy nie sÄ… zgrupowane w "Å›rodowiskach", tylko niezależnie ustawiane dla każdego wdrożenia. Taki model konfiguracji skaluje siÄ™ bez problemu, nawet jeÅ›li aplikacja bÄ™dzie potrzebowaÅ‚a w przyszÅ‚oÅ›ci wiÄ™cej zróżnicowanych wdrożeÅ„. content/tr/codebase.md0000644000175000056700000000342015226251677013505 0ustar0000000000000000## I. Kod Tabanı ### Bir çok dağıtım kod tabanı gözden geçirme kontrolünde izlenmeli On iki faktör bir uygulama her zaman [Git](http://git-scm.com/), [Mercurial](http://mercurial.selenic.com/) veya [Subversion](http://subversion.apache.org/) gibi bir sürüm takip sistemiyle izlenir. VEritabanının gözden geçirme sisteminin bir kopyası *kod deposu* olarak bilinir. *kod repo* ya da sadece *repo* olarak kısaltılır. Bir *kod tabanı* herhangi tek bir depo(Subversion gibi merkezi gözden geçirme kontrol sistemi) ya da kök iÅŸleyicini paylaÅŸan bir takım repodur(Git gibi merkezi olmayan gözden geçirme kontrol sistemi). ![Bir kod tabanı bir çok dağıtımla eÅŸlenir](/images/codebase-deploys.png) Kod tabanı ve uygulama arasında bire-bir iliÅŸki her zaman vardır: * EÄŸer birden fazla kod tabanı varsa bu bir uygulama deÄŸil, dağıtık sistemdir. Dağıtık sistemdeki her bileÅŸen bir uygulamadır ve her biri on iki faktörle bireysel olarak uyumlu olmalıdır. * Aynı kodu paylaÅŸan birden fazla uygulama, on iki faktörü ihlal eder. Burada çözüm, paylaşılan kodun [bağımlılık yöneticisi](./dependencies) aracılığıyla dahil edilebilecek kütüphanelere dönüştürülmesidir. Uygulamanın sadece bir kod tabanı vardır fakat birden fazla dağıtımı olacaktır. Bir *dağıtım*, uygulamanın çalışan bir örneÄŸidir. Ayrıca her geliÅŸtiricinin kendi yerel geliÅŸtirme ortamında çalışan bir kopyası vardır ve bunların her biri aynı zamanda dağıtım olarak nitelendirilirler. Sürümler her bir dağıtımda etkin olabilir fakat kod temeli tüm dağıtımlarda aynıdır. ÖrneÄŸin, geliÅŸtiricilerin henüz uygulamaya eklenmemiÅŸ commitleri olabilir. Bu nedenle hepsi ayrı dağıtım olarak tanımlanır ama kod tabanı aynıdır. Procfile0000644000175000056700000000006115226251677011003 0ustar0000000000000000web: bundle exec ruby web.rb -p $PORT -o 0.0.0.0 content/ru/processes.md0000644000175000056700000001102215226251677013744 0ustar0000000000000000## VI. ПроцеÑ�Ñ�Ñ‹ ### ЗапуÑ�кайте приложение как один или неÑ�колько процеÑ�Ñ�ов, не Ñ�охранÑ�ющих внутреннее Ñ�оÑ�тоÑ�ние (stateless) Приложение выполнÑ�етÑ�Ñ� в Ñ�реде выполнениÑ� как один или неÑ�колько *процеÑ�Ñ�ов*. Ð’ проÑ�тейшем Ñ�лучае код Ñ�влÑ�етÑ�Ñ� незавиÑ�имым Ñ�криптом, Ñ�реда выполнениÑ� -- ноутбуком разработчика Ñ� уÑ�тановленной Ñ�редой иÑ�полнениÑ� Ñ�зыка, а процеÑ�Ñ� запуÑ�каетÑ�Ñ� из командной Ñ�троки (например, как `python my_script.py`). Другой крайний вариант -- Ñ�то рабочее развёртывание Ñ�ложного приложениÑ�, которое может иÑ�пользовать много [типов процеÑ�Ñ�ов, каждый из которых запущен в необходимом количеÑ�тве Ñ�кземплÑ�ров](./concurrency). **ПроцеÑ�Ñ�Ñ‹ приложениÑ� двенадцати факторов не Ñ�охранÑ�ÑŽÑ‚ внутреннее Ñ�оÑ�тоÑ�ние (stateless) и [не имеют разделÑ�емых данных (share-nothing)](http://en.wikipedia.org/wiki/Shared_nothing_architecture).** Любые данные, которые требуетÑ�Ñ� Ñ�охранить, должны быть Ñ�охранены в хранÑ�щей Ñ�оÑ�тоÑ�ние [Ñ�торонней Ñ�лужбе](./backing-services), обычно, в базе данных. ПамÑ�ть и файловаÑ� Ñ�иÑ�тема процеÑ�Ñ�а может быть иÑ�пользована в качеÑ�тве временного кÑ�ша длÑ� одной транзакции. Ð�апример, загрузка, обработка и Ñ�охранение большого файла в базе данных. Приложение двенадцати факторов не предполагает, что что-либо закÑ�шированное в памÑ�ти или на диÑ�ке будет доÑ�тупно Ñ�ледующим запроÑ�ам или задачам -- Ñ� большим количеÑ�твом разноплановых процеÑ�Ñ�ов выÑ�ока вероÑ�тноÑ�ть, что Ñ�ледующий запроÑ� будет обработан другим процеÑ�Ñ�ом. Даже Ñ� одним запущенным процеÑ�Ñ�ом перезапуÑ�к (вызванный развёртыванием, изменением конфигураций или переноÑ�ом процеÑ�Ñ�а на другое физичеÑ�кое уÑ�тройÑ�тво) приведёт к уничтожению вÑ�ех локальных (памÑ�ти, файловой Ñ�иÑ�темы) Ñ�оÑ�тоÑ�ний. Упаковщики реÑ�урÑ�ов (asset) (например, [Jammit](http://documentcloud.github.com/jammit/) или [django-compressor](http://django-compressor.readthedocs.org/)) иÑ�пользуют файловую Ñ�иÑ�тему как кÑ�ш длÑ� Ñ�компилированных реÑ�урÑ�ов. Приложение двенадцати факторов предпочитает делать данную компилÑ�цию во времÑ� [Ñ�тапа Ñ�борки](./build-release-run), например, как в [Rails asset pipeline](http://guides.rubyonrails.org/asset_pipeline.html), а не во времÑ� выполнениÑ�. Ð�екоторые веб-Ñ�иÑ�темы полагаютÑ�Ñ� на ["липкие Ñ�еÑ�Ñ�ии"] (http://en.wikipedia.org/wiki/Load_balancing_%28computing%29#Persistence) -- то еÑ�ть кÑ�шируют данные пользовательÑ�ких Ñ�еÑ�Ñ�ии в памÑ�ти процеÑ�Ñ�а приложениÑ� и ожидают того, что поÑ�ледующие запроÑ�Ñ‹ того же пользователÑ� будут перенаправлены к тому же процеÑ�Ñ�у. Липкие Ñ�еÑ�Ñ�ии Ñ�влÑ�ÑŽÑ‚Ñ�Ñ� нарушением двенадцати факторов и их никогда не Ñ�ледует иÑ�пользовать или полагатьÑ�Ñ� на них. Данные пользовательÑ�кой Ñ�еÑ�Ñ�ии Ñ�влÑ�ÑŽÑ‚Ñ�Ñ� хорошими кандидатами длÑ� хранилища данных, которое предоÑ�тавлÑ�ет функцию ограничениÑ� времени хранениÑ�, например, [Memcached](http://memcached.org/) и [Redis](http://redis.io/). content/th/port-binding.md0000644000175000056700000000546315226251677014333 0ustar0000000000000000## VII. Port binding ### นำออà¸�บริà¸�ารด้วยà¸�ารเชื่อมโยง port เว็บà¹�อพ (Web App) บางครั้งทำงานข้างใน webserver container. ตัวอย่างเช่น PHP app จะทำงานเป็นโมดูลข้างใน [Apache HTTPD](http://httpd.apache.org/) หรือ Java app จะทำงานข้างใน [Tomcat](http://tomcat.apache.org/) เป็นต้น **Twelve-factor app เป็น self-contained โดยสมบูรณ์** à¹�ละไม่ขึ้นอยู่à¸�ับ runtime injection ของ webserver เข้ามายังสภาพà¹�วดล้อมà¸�ารดำเนินงานเพิ่อสร้าง web-facing service. เว็บà¹�อพ **นำออà¸� HTTP เป็นบริà¸�ารโดยเชื่อมโยงà¸�ับ port** à¹�ละคอยตรวจสอบ request ที่เข้ามาจาà¸� port นั้น นี้เป็นà¸�ารทำงานปรà¸�ติโดยใช้ [ประà¸�าศà¸�ารอ้างอิง](./dependencies) เพื่อเพิ่ม webserver library ของ app, เช่น [Tornado](http://www.tornadoweb.org/) สำหรับ Python, [Thin](http://code.macournoyer.com/thin/) สำหรับ Ruby หรือ [Jetty](http://www.eclipse.org/jetty/) สำหรับ Java à¹�ละภาษา JVM-based อื่นๆ เà¸�ิดขึ้นใน *user space* นั้นคือภายใน code ของ app ซึ่งสัà¸�à¸�าà¸�ับสภาพà¹�วดล้อมà¸�ารดำเนินงานที่เชื่อมโยงà¸�ับ port เพื่อบริà¸�าร request ที่เข้ามา HTTP ไม่เป็นเพียง service ที่สามารถนำออà¸�โดยà¸�ารเชื่อมโยง port, server software เà¸�ือบทุà¸�ชนิดสามารถทำงานผ่านà¸�ารเชื่อมโยง process ไปยัง port à¹�ละรอ request ที่เข้ามา, ตัวอย่างรวมทั้ง ejabberd](http://www.ejabberd.im/) (speaking [XMPP](http://xmpp.org/)), à¹�ละ [Redis](http://redis.io/) (speaking the [Redis protocol](http://redis.io/topics/protocol)) หมายเหตุ, วิธีà¸�ารเชื่อมโยง port หมายความว่า app จะà¸�ลายเป็น [backing service](./backing-services) สำหรับ app อื่นๆ โดยà¸�ารให้ URL à¸�ับ backing app เป็นตัวจัดà¸�ารทรัพยาà¸�รใน [à¸�ารตั้งค่า](./config) สำหรับใช้งาน app content/pl/admin-processes.md0000644000175000056700000000442315226251677015026 0ustar0000000000000000## XII. ZarzÄ…dzanie aplikacjÄ… ### Uruchamiaj zadania administracyjne jako jednorazowe procesy [Formacja](./concurrency) jest zestawem procesów używanych przez aplikacjÄ™ podczas jej dziaÅ‚ania (np. obsÅ‚ugi zapytaÅ„ z sieci). Do czÄ™sto wykonywanych zadaÅ„ administracyjnych należą: * Wykonanie migracji bazy danych (np. `manage.py migrate` w Django, `rake db:migrate` w Railsach). * Uruchomienie konsoli (znanej również jako powÅ‚oka [REPL](http://pl.wikipedia.org/wiki/REPL)) by wykonać fragment kodu lub podejrzeć modele dziaÅ‚ajÄ…cej bazy danych. WiÄ™kszość Å›rodowisk jÄ™zyków programowania udostÄ™pnia REPL poprzez wywoÅ‚anie interpretera bez dodatkowych argumentów (np. `python` lub `perl`). W innych przypadkach przeznaczone sÄ… do tego osobne polecenia (np. `irb` w Ruby, `rails console` w Railsach). * Wykonywanie pojedynczych skryptów znajdujÄ…cych siÄ™ w repozytorium kodu aplikacji (np. `php scripts/fix_bad_records.php`). Pojedyncze zadania powinny być uruchamiane w identycznym Å›rodowisku jak [dÅ‚ugoterminowe procesy](./processes) aplikacji. DziaÅ‚ajÄ… w ramach tego samego [wdrożenia](./build-release-run), używajÄ…c tego samego [kodu](./codebase) i [konfiguracji](./config) jak każdy inny dziaÅ‚ajÄ…cy proces. Kod zadania administracyjnego musi zostać dołączony do kodu aplikacji by uniknąć problemów z synchronizacjÄ…. Te same techniki [izolacji zależnoÅ›ci](./dependencies) powinny być używane dla wszystkich typów procesów. Dla przykÅ‚adu, jeÅ›li proces sieciowy Ruby używa polecenia `bundle exec thin start`, wtedy do migracji bazy danych powinno siÄ™ użyć `bundle exec rake db:migrate`. Podobnie program napisany w Pythonie używajÄ…cy Virtualenv powinien używać dołączonego `bin/python` by uruchomić zarówno webserver Tornado lub `manage.py` do procesów zarzÄ…dzania. Aplikacja 12factor zaleca używanie jÄ™zyków programowania, które udostÄ™pniajÄ… powÅ‚okÄ™ REPL oraz takich w których można Å‚atwo uruchomić pojedynczy skrypt. W Å›rodowisku lokalnym developerzy uruchamiajÄ… zadania zarzÄ…dzajÄ…ce aplikacjÄ… poprzez bezpoÅ›rednie wywoÅ‚anie polecenia w konsoli w katalogu roboczym aplikacji. We wdrożeniu produkcyjnym, developer może użyć ssh lub innego mechanizmu sÅ‚użącego do zdalnego wykonywania poleceÅ„, by uruchomić ten sam proces. content/pt_br/background.md0000644000175000056700000000273615226251677014551 0ustar0000000000000000Experiência =========== Os contribuidores deste documento estão diretamente envolvidos no desenvolvimento e implantação de centenas de aplicações, e indiretamente testemunhando o desenvolvimento, operação e escalada de centenas de milhares de aplicações através de seu trabalho na plataforma [Heroku](http://www.heroku.com/). Este documento sintetiza toda nossa experiência e observação em uma variedade de aplicações que operam como software-como-serviço. Isto é a triangulação de práticas ideais ao desenvolvimento de software, com uma atenção particular a respeito das dinâmicas de crescimento orgânico de uma aplicação ao longo do tempo, a dinâmica de colaboração entre desenvolvedores trabalhando em uma base de código, e evitando os [custos de erosão de software](http://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts/) Nossa motivação é aumentar a consciência de alguns problemas sistêmicos que temos visto no desenvolvimento de aplicações modernas, prover um vocabulário comum para discussão destes, e oferecer um amplo conjunto de soluções conceituais para esses problemas com a terminologia que os acompanha. O formato é inspirado nos livros de Martin Fowler *[Padrões de Arquitetura de Aplicações Enterprise](http://books.google.com/books/about/Patterns_of_enterprise_application_archi.html?id=FyWZt5DdvFkC)* e *[Refatorando](http://books.google.com/books/about/Refactoring.html?id=1MsETFPD3I0C)*. content/tr/admin-processes.md0000644000175000056700000000457515226251677015050 0ustar0000000000000000## XII. Yönetici Süreci ### Yönetici/yönetim görevlerini tek seferlik iÅŸlem olarak çalıştırma [Süreç oluÅŸumu](./concurrency) uygulama çalışırken uygulamanın sıradan iÅŸlerini (web isteklerini idare etmek gibi) yapmakta kullanılan süreçlerin bir dizisidir. Ayrı olarak, geliÅŸtiriciler çoÄŸunlukla uygulamanın bir kereye mahsus yönetimsel veya bakım görevlerini yapmayı dileyecekler, ÅŸunun gibi: * Veri tabanı göçü çalıştırmak (Django'da `manage.py migrate`, Rails'de `rake db:migrate`). * Konsolu ([REPL](http://en.wikipedia.org/wiki/Read-eval-print_loop) kabuÄŸu olarakta bilinir), rastgele kodu çalıştırmak veya canlı veritabanına karşılık uygulamanın modellerini denetlemek için çalıştırmak. ÇoÄŸu dil hiç bir arguman olmadan (`python` veya `perl`), yorumlayıcı veya bazı durumlarda ayrı komutlarla (Ruby için `irb`, Rails için `rails console`) çalıştırarak bir REPL saÄŸlar. * Uygulamanın deposuna commit'lenmiÅŸ betikleri çalıştırmak (`php scripts/fix_bad_records.php`). Bir kerelik yönetici süreçleri uygulamanın sıradan [uzun çalışan süreçleri](./processes) gibi aynı ortamlarda çalışmalıdır. Onlar herhangi bir sürecin çalıştığı gibi [sürüme](./build-release-run) karşı aynı [kod tabanı](./codebase) ve [yapılandırmayı](./config) kullanarak çalışır. Yönetici uygulama kodunu senkronizasyon sorunundan kaçınmak için yüklemelidir. Aynı [bağımlılık yalıtımı](./dependencies) teknikleri bütün süreç yönetiminde kullanılmalıdır. ÖrneÄŸin, eÄŸer Ruby web süreçleri `bundle exec thin start` komutunu kullanıyorsa, veri tabanı göçü `bundle exec rake db:migrate` komutu kullanmalıdır. Aynı durumda, Virtualenv kullanan bir Python programı, Tornado web sunucusu ve herhangi bir `manage.py` yönetici süreçlerinin ikisini de çalıştırabilmek için `bin/python` kullanmalıdır. On iki faktör, REPL kabuÄŸunu kural dışı saÄŸlayan ve tek seferlik betikleri çalıştırmayı kolaylaÅŸtıran dilleri fazlasıyla destekler. Yerel dağıtımda, geliÅŸtiriciler uygulamanın kontrol dizinindeki açık kabuk komutuyla tek seferlik yönetici süreçlerini çalıştırır. Ürün dağıtımında, geliÅŸtiriciler bu gibi bir süreci çalıştırmak için ssh veya dağıtımın çalışma ortamı tarafından saÄŸlanan diÄŸer uzak komut çalıştırma mekanizmasını kullanabilir. content/tr/toc.md0000644000175000056700000000243415226251677012531 0ustar0000000000000000On İki Faktör ============= ## [I. Kod Tabanı](./codebase) ### Bir çok dağıtım kod tabanı gözden geçirme kontrolünde izleme ## [II. Bağımlıklar](./dependencies) ### Bağımlıkları açık bir ÅŸekilde açıklama ve ayırma ## [III. Yapılandırma](./config) ### Ortamda yapılandırma depolama ## [IV. Destek servisi](./backing-services) ### Destek servislerine ekli kaynak olarak davranma ## [V. Derleme, Sürüm, Çalıştırma](./build-release-run) ### Derleme ve çalıştırma aÅŸamalarını tam olarak ayırma ## [VI. Süreç](./processes) ### Uygulamayı bir veya daha fazla bağımsız süreç olarak çalıştırma ## [VII. Port BaÄŸlama](./port-binding) ### Port baÄŸlama yolu üzerinden dışarı aktarma ## [VIII. EÅŸ Zamanlılık](./concurrency) ### Süreç modeli yardımıyla dağıtıklaÅŸtırma ## [IX. Kullanıma Hazır Olma Durumu](./disposability) ### Hızlı baÅŸlangıç ve otomatik zararsız kapama ile saÄŸlamlığı üst düzeye çıkarma ## [X.GeliÅŸtirme/Üretim EÅŸitliÄŸi](./dev-prod-parity) ### GeliÅŸim, evreleme ve üretimi olabildikçe benzer tutma ## [XI. Günlükler](./logs) ### Günlüklere olay akışı gibi davranma ## [XII. Yönetici Süreci](./admin-processes) ### Yönetici/yönetim görevlerini tek seferlik iÅŸlem olarak çalıştırma content/zh_cn/background.md0000644000175000056700000000217715226251677014543 0ustar0000000000000000背景 ========== 本文的贡献者å�‚与过数以百计的应用程åº�的开å�‘和部署,并通过 [Heroku](http://www.heroku.com/) å¹³å�°é—´æŽ¥è§�è¯�了数å��万应用程åº�的开å�‘,è¿�作以å�Šæ‰©å±•的过程。 本文综å�ˆäº†æˆ‘们关于 SaaS 应用几乎所有的ç»�验和智慧,是开å�‘此类应用的ç�†æƒ³å®žè·µæ ‡å‡†ï¼Œå¹¶ç‰¹åˆ«å…³æ³¨äºŽåº”用程åº�如何ä¿�æŒ�良性æˆ�长,开å�‘者之间如何进行有效的代ç �å��作,以å�Šå¦‚何 [é�¿å…�软件污染](http://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts/) 。 我们的åˆ�衷是分享在现代软件开å�‘过程中å�‘现的一些系统性问题,并加深对这些问题的认识。我们æ��供了讨论这些问题时所需的共享è¯�汇,å�Œæ—¶ä½¿ç”¨ç›¸å…³æœ¯è¯­ç»™å‡ºä¸€å¥—针对这些问题的广义解决方案。本文格å¼�çš„ç�µæ„Ÿæ�¥è‡ªäºŽ Martin Fowler 的书ç±�: *[Patterns of Enterprise Application Architecture](http://books.google.com/books/about/Patterns_of_enterprise_application_archi.html?id=FyWZt5DdvFkC)* , *[Refactoring](http://books.google.com/books/about/Refactoring.html?id=1MsETFPD3I0C)* 。 content/de/concurrency.md0000644000175000056700000000545415226251677014246 0ustar0000000000000000## VIII. Nebenläufigkeit ### Mit dem Prozess-Modell skalieren Jedes Computerprogramm wird, wenn es läuft, repräsentiert durch einen oder mehrere Prozesse. Webapps nutzen verschiedenste Arten der Prozess-Ausführung. Zum Beispiel laufen PHP-Prozesse als Kind-Prozesse von Apache und werden nach Bedarf gestartet, wenn Requests kommen. Java-Prozesse gehen anders vor: die JVM stellt einen massiven Über-Prozess zur Verfügung der große Mengen an Systemressourcen (Speicher und CPU) reserviert und die Nebenläufigkeit wird intern über Threads verwaltet. In beiden Fällen sind die laufenden Prozesse für die Entwickler der App nur minimal zu sehen. ![Die Skalierung wird dargestellt als laufende Prozesse, die Diversität der Workload wird dargestellt als Prozesstypen.](/images/process-types.png) **In der Zwölf-Faktor-App sind Prozesse First Class Citizens.** Die Prozesse der Zwölf-Faktor-App orientieren sich am [Unix-Prozess-Modell für Service Daemons](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/). Mit diesem Model können Entwickler ihre App für die Bearbeitung verschiedenster Aufgaben konzipieren in dem sie jeder Aufgabe einen *Prozesstyp* zuweisen. Zum Beispiel können HTTP-Requests durch einen Web-Prozess bedient werden und langlaufende Hintergrundarbeiten durch einen Worker-Prozess. Dies hindert die einzelnen Prozesse nicht daran, ihr internes Multiplexing zu verwalten, mittels Threads in der Laufzeit-VM oder mit dem Async/Event-Modell von Werkzeugen wie [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http://twistedmatrix.com/trac/) oder [Node.js](http://nodejs.org/). Aber eine einzelne VM ist in der Größe dadurch beschränkt (vertikale Skalierung), dass eine App noch in der Lage sein muss, mehrere Prozesse auf mehreren physikalischen Maschinen zu starten. Das Prozess-Modell glänzt besonders, wenn es um Skalierung geht. Die [Share-Nothing, horizontal teilbare Art und Weise der Prozesse der Zwölf-Faktor-App](./processes) hat zur Folge, dass weitere Nebenläufigkeit einfach und zuverlässig hinzugefügt werden kann. Das Bündel von Prozesstypen und die Zahl der Prozesse wird auch *Prozess-Formation* genannt. Die Prozesse einer Zwölf-Faktor-App [sollten nie als Daemons laufen](http://dustin.github.com/2010/02/28/running-processes.html) oder PID-Dateien schreiben. Stattdessen sollen sie sich auf den Prozessmanager des Betriebssystems verlassen (wie [systemd](https://www.freedesktop.org/wiki/Software/systemd/), den verteilten Prozessmanager einer Cloud-Plattform oder ein Werkzeug wie [Foreman](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html) während der Entwicklung) um [Output-Streams](./logs) zu verwalten, auf abgestürzte Prozesse zu reagieren und mit von Benutzern angestoßenen Restarts und Shutdowns umzugehen. content/es/dependencies.md0000644000175000056700000000614215226251677014354 0ustar0000000000000000## II. Dependencias ### Declarar y aislar explícitamente las dependencias La mayoría de los lenguajes de programación tienen un sistema de gestión de paquetes para distribuir sus librerías, como [CPAN](http://www.cpan.org/) en Perl o [Rubygems](http://rubygems.org/) en Ruby. Las librerías instaladas a través de estos sistemas se pueden instalar en el sistema (también conocido como "site packages") o limitarse al directorio que contiene la aplicación (también conocido como "vendoring" o "bundling"). **Una aplicación "twelve-factor" no depende nunca de la existencia explícita de paquetes instalados en el sistema.** Declara todas sus dependencias, completamente y explícitamente, mediante un manifiesto de *declaración de dependencias*. Además, usa herramientas de *aislamiento de dependencias* durante la ejecución para asegurar que las dependencias, implícitamente, no afectan al resto del sistema. La especificación de dependencias completa y explícita se aplica de la misma manera tanto en producción como en desarrollo. Por ejemplo, la [Bundler](https://bundler.io/) de Ruby tiene el formato de su manifiesto `Gemfile` para declarar sus dependencias y `bundle exec` para aislar sus dependencias. En Python existen dos herramientas independientes para estas tareas -- [Pip](http://www.pip-installer.org/en/latest/) se usa para la declaración de dependencias y [Virtualenv](http://www.virtualenv.org/en/latest/) para el aislamiento. Incluso C tiene [Autoconf](http://www.gnu.org/s/autoconf/) para la declaración de sus dependencias, y el enlace estático proporciona aislamiento de sus dependencias. No importa qué conjunto de herramientas se use, la declaración y el aislamiento de dependencias se deben usar siempre juntas, usar solo una o la otra no es suficiente para satisfacer las condiciones de "twelve-factor". Uno de los beneficios de la declaración explícita de dependencias es que simplifica la configuración para los nuevos desarrolladores de la aplicación. Cualquier desarrollador que se incorpore al equipo debe poder probar el código base de la aplicación en su máquina de desarrollo. Tan solo debe tener instalados el entorno de ejecución del lenguaje y el gestor de dependencias como prerequisitos. Lo cual permitirá configurar todo lo necesario para ejecutar el código de la aplicación con un *mandato para construir*. Por ejemplo, el mandato para construir en Ruby/Bundler es `bundle install`, mientras que en Clojure/[Leiningen](https://github.com/technomancy/leiningen#readme) es `lein deps`. Las aplicaciones "Twelve-factor" tampoco dependen de la existencia de ninguna herramienta en el sistema. Por ejemplo, ejecutar mandatos como `ImageMagick` o `curl`. Aunque estas herramientas pueden existir en muchos, o incluso en la mayoría de los sistemas, no existen garantías de que vayan a existir en todos los sistemas donde la aplicación pueda ser ejecutada en un futuro, ni de que las versiones futuras de un sistema vayan a ser compatibles con la aplicación. Si la aplicación necesita ejecutar una herramienta del sistema, dicha herramienta debería estar incluida dentro de la aplicación. content/fr/processes.md0000644000175000056700000000576615226251677013747 0ustar0000000000000000## VI. Processus ### Exécutez l'application comme un ou plusieurs processus sans état L'application est exécutée dans l'environnement d'exécution comme un ou plusieurs *processus*. Dans la situation la plus simple, le code est un script indépendant, l'environnement d'exécution est l'ordinateur portable du développeur sur lequel est installé de quoi exécuter le langage, et le processus est lancé depuis la ligne de commande. (par exemple, `python mon_script.py`). De l'autre côté du spectre, un déploiement de production d'une application sophistiquée peut utiliser plusieurs [types de processus, instanciés dans zéro ou plus processus en fonctionnement](./concurrency). **Les processus 12 facteurs sont sans état et ne partagent [rien (en)](http://en.wikipedia.org/wiki/Shared_nothing_architecture).** Toute donnée qui doit être persistée doit être stockée dans un [service externe](./backing-services) stateful, typiquement une base de données. L'espace mémoire ou le système de fichier du processus peut être utilisé comme cache momentané pour des transactions uniques. Par exemple, télécharger un gros fichier, effectuer une opération dessus, puis stocker le résultat de l'opération dans la base de données. Les applications 12 facteurs ne supposent jamais que quelque chose ayant été mis en cache en mémoire ou sur le disque sera disponible dans une future requête ou job — avec plusieurs processus de chaque type qui s'exécutent, il y a de grandes chances qu'une future requête soit effectuée par un processus différent. Même lorsque l'on fait tourner seulement un processus, un redémarrage (déclenché par le déploiement du code, un changement de configuration, ou l'environnement d'exécution qui déplace le processus vers un lieu physique différent) va généralement balayer toutes les modifications locales (c'est-à-dire en mémoire et sur le disque). Des outils de création de paquets de ressources (ou "asset packagers") (tel que [Jammit](http://documentcloud.github.com/jammit/) ou [django-compressor](http://django-compressor.readthedocs.org/)) utilisent le système de fichier comme cache pour les ressources compilées. Une application 12 facteurs préfère faire cette compilation durant l'[étape d'assemblage](./build-release-run), comme avec le [pipeline des ressources de Rails](http://guides.rubyonrails.org/asset_pipeline.html), plutôt que durant l'exécution. Certains systèmes web s'appuient sur des ["sessions persistantes" (en)](http://en.wikipedia.org/wiki/Load_balancing_%28computing%29#Persistence) -- c'est-à-dire, mettre en cache les données de session utilisateur dans le processus de l'application et attendre que les requêtes futures du même visiteur seront routées dans le même processus. Les sessions persistantes sont une violation des 12 facteurs, qu'il ne faudrait jamais utiliser. Les états de session sont de bons candidats pour un datastore qui offre des dates d'expiration, comme [Memcached](http://memcached.org/) ou [Redis](http://redis.io/). content/pl/background.md0000644000175000056700000000250415226251677014047 0ustar0000000000000000Background ========== Kontrybutorzy tego dokumentu byli bezpoÅ›rednio zaangażowani w tworzenie i wdrażanie setek aplikacji i poÅ›rednio byli Å›wiadkami produkcji, dziaÅ‚ania i skalowania setek tysiÄ™cy aplikacji dziÄ™ki naszej pracy na platformie [Heroku](http://www.heroku.com/). Ten dokument jest podsumowaniem caÅ‚ego naszego doÅ›wiadczenia i obserwacji szerokiej gamy aplikacji SaaS. Jest on połączeniem idealnych praktyk developmentu, zwracania szczególnej uwagi na naturalny rozrost aplikacji w czasie, dynamiki współpracy developerów pracujÄ…cych nad jednym codebase'm, oraz [unikania kosztów gnijÄ…cego oprogramowania](http://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts/). Naszym celem jest podniesienie poziomu Å›wiadomoÅ›ci o podstawowych problemach, które dostrzegliÅ›my przy tworzeniu nowoczesnych aplikacji, zapewnienie wspólnego sÅ‚ownictwa do rozmowy o tych problemach oraz zaoferowanie ogólnych rozwiÄ…zaÅ„ dla tych problemów wraz z towarzyszÄ…cÄ… terminologiÄ…. Format dokumentu jest inspirowany książkami Martina Fowlera *[Patterns of Enterprise Application Architecture](http://books.google.com/books/about/Patterns_of_enterprise_application_archi.html?id=FyWZt5DdvFkC)* oraz *[Refactoring](http://books.google.com/books/about/Refactoring.html?id=1MsETFPD3I0C)*. content/zh_cn/build-release-run.md0000644000175000056700000000416615226251677015743 0ustar0000000000000000## V. 构建,å�‘布,è¿�行 ### 严格分离构建和è¿�行 [基准代ç �](./codebase) 转化为一份部署(é�žå¼€å�‘环境)需è¦�以下三个阶段: * *构建阶段* 是指将代ç �仓库转化为å�¯æ‰§è¡ŒåŒ…的过程。构建时会使用指定版本的代ç �,获å�–和打包 [ä¾�赖项](./dependencies),编译æˆ�二进制文件和资æº�文件。 * *å�‘布阶段* 会将构建的结果和当å‰�部署所需 [é…�ç½®](./config) 相结å�ˆï¼Œå¹¶èƒ½å¤Ÿç«‹åˆ»åœ¨è¿�行环境中投入使用。 * *è¿�行阶段* (或者说“è¿�行时â€�)是指针对选定的å�‘布版本,在执行环境中å�¯åŠ¨ä¸€ç³»åˆ—åº”ç”¨ç¨‹åº� [进程](./processes)。 ![代ç �被构建,然å�Žå’Œé…�置结å�ˆæˆ�为å�‘布版本](/images/release.png) **12-factor 应用严格区分构建,å�‘布,è¿�行这三个步骤。** 举例æ�¥è¯´ï¼Œç›´æŽ¥ä¿®æ”¹å¤„于è¿�行状æ€�的代ç �是é�žå¸¸ä¸�å�¯å�–çš„å�šæ³•ï¼Œå› ä¸ºè¿™äº›ä¿®æ”¹å¾ˆéš¾å†�å�Œæ­¥å›žæž„建步骤。 部署工具通常都æ��供了å�‘布管ç�†å·¥å…·ï¼Œæœ€å¼•人注目的功能是退回至较旧的å�‘布版本。比如, [Capistrano](https://github.com/capistrano/capistrano/wiki) 将所有å�‘布版本都存储在一个å�« `releases` çš„å­�目录中,当å‰�的在线版本å�ªéœ€æ˜ å°„至对应的目录å�³å�¯ã€‚该工具的 `rollback` 命令å�¯ä»¥å¾ˆå®¹æ˜“地实现回退版本的功能。 æ¯�一个å�‘布版本必须对应一个唯一的å�‘布 ID,例如å�¯ä»¥ä½¿ç”¨å�‘布时的时间戳(`2011-04-06-20:32:17`),亦或是一个增长的数字(`v100`)。å�‘布的版本就åƒ�一本å�ªèƒ½è¿½åŠ çš„è´¦æœ¬ï¼Œä¸€æ—¦å�‘布就ä¸�å�¯ä¿®æ”¹ï¼Œä»»ä½•çš„å�˜åŠ¨éƒ½åº”è¯¥äº§ç”Ÿä¸€ä¸ªæ–°çš„å�‘布版本。 新的代ç �在部署之å‰�,需è¦�å¼€å�‘人员触å�‘构建æ“�作。但是,è¿�行阶段ä¸�一定需è¦�人为触å�‘,而是å�¯ä»¥è‡ªåŠ¨è¿›è¡Œã€‚å¦‚æœ�务器é‡�å�¯ï¼Œæˆ–是进程管ç�†å™¨é‡�å�¯äº†ä¸€ä¸ªå´©æºƒçš„进程。因此,è¿�行阶段应该ä¿�æŒ�å°½å�¯èƒ½å°‘的模å�—,这样å�‡è®¾å�Šå¤œå�‘生系统故障而开å�‘人员å�ˆæ�‰è¥Ÿè§�肘也ä¸�会引起太大问题。构建阶段是å�¯ä»¥ç›¸å¯¹å¤�æ�‚一些的,因为错误信æ�¯èƒ½å¤Ÿç«‹åˆ»å±•示在开å�‘人员é�¢å‰�,从而得到妥善处ç�†ã€‚ locales/uk.yml0000644000175000056700000000040115226251677012077 0ustar0000000000000000uk: # Name of language listed in locales menu language: "УкраїнÑ�ька (uk)" # A text to make known that the article is a translation not an original. # Empty for English, original. translation: "(Переклад українÑ�ькою)" content/en/config.md0000644000175000056700000000575215226251677013174 0ustar0000000000000000## III. Config ### Store config in the environment An app's *config* is everything that is likely to vary between [deploys](./codebase) (staging, production, developer environments, etc). This includes: * Resource handles to the database, Memcached, and other [backing services](./backing-services) * Credentials to external services such as Amazon S3 or Twitter * Per-deploy values such as the canonical hostname for the deploy Apps sometimes store config as constants in the code. This is a violation of twelve-factor, which requires **strict separation of config from code**. Config varies substantially across deploys, code does not. A litmus test for whether an app has all config correctly factored out of the code is whether the codebase could be made open source at any moment, without compromising any credentials. Note that this definition of "config" does **not** include internal application config, such as `config/routes.rb` in Rails, or how [code modules are connected](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html) in [Spring](http://spring.io/). This type of config does not vary between deploys, and so is best done in the code. Another approach to config is the use of config files which are not checked into revision control, such as `config/database.yml` in Rails. This is a huge improvement over using constants which are checked into the code repo, but still has weaknesses: it's easy to mistakenly check in a config file to the repo; there is a tendency for config files to be scattered about in different places and different formats, making it hard to see and manage all the config in one place. Further, these formats tend to be language- or framework-specific. **The twelve-factor app stores config in *environment variables*** (often shortened to *env vars* or *env*). Env vars are easy to change between deploys without changing any code; unlike config files, there is little chance of them being checked into the code repo accidentally; and unlike custom config files, or other config mechanisms such as Java System Properties, they are a language- and OS-agnostic standard. Another aspect of config management is grouping. Sometimes apps batch config into named groups (often called "environments") named after specific deploys, such as the `development`, `test`, and `production` environments in Rails. This method does not scale cleanly: as more deploys of the app are created, new environment names are necessary, such as `staging` or `qa`. As the project grows further, developers may add their own special environments like `joes-staging`, resulting in a combinatorial explosion of config which makes managing deploys of the app very brittle. In a twelve-factor app, env vars are granular controls, each fully orthogonal to other env vars. They are never grouped together as "environments", but instead are independently managed for each deploy. This is a model that scales up smoothly as the app naturally expands into more deploys over its lifetime. content/en/intro.md0000644000175000056700000000174615226251677013061 0ustar0000000000000000Introduction ============ In the modern era, software is commonly delivered as a service: called *web apps*, or *software-as-a-service*. The twelve-factor app is a methodology for building software-as-a-service apps that: * Use **declarative** formats for setup automation, to minimize time and cost for new developers joining the project; * Have a **clean contract** with the underlying operating system, offering **maximum portability** between execution environments; * Are suitable for **deployment** on modern **cloud platforms**, obviating the need for servers and systems administration; * **Minimize divergence** between development and production, enabling **continuous deployment** for maximum agility; * And can **scale up** without significant changes to tooling, architecture, or development practices. The twelve-factor methodology can be applied to apps written in any programming language, and which use any combination of backing services (database, queue, memory cache, etc). content/it/config.md0000644000175000056700000000653615226251677013207 0ustar0000000000000000## III. Configurazione ### Memorizza le informazioni di configurazione nell'ambiente La "configurazione" di un'applicazione è tutto quello che può variare da un [deployment](./codebase) all'altro (staging, production, ambienti di sviluppo). Ad esempio: * Valori da usare per connettersi a un database, Memcached, oppure altri [backing service](./backing-services); * Credenziali per servizi esterni, come Amazon S3 o Twitter; * Valori eventualmente definiti per i singoli deployment, come l'hostname; Molto spesso, queste informazioni vengono memorizzate come costanti nel codice: la cosa viola la metodologia twelve-factor, che richiede una **separazione ben definita delle impostazioni di configurazione dal codice**. Le impostazioni possono infatti variare da un deployment all'altro: il codice, invece, no. Il codice dell'applicazione, infatti, potrebbe essere reso open-source in ogni momento: un buon motivo per separare le due cose. Nota che comunque la definizione di "configurazione" **non** include eventuali configurazione interne dell'applicazione, come `config/routes.rb` in Rails, o come [i moduli di codice sono connessi](http://static.springsource.org/spring/docs/2.5.x/reference/beans.html) in [Spring](http://www.springsource.org/). Questo tipo di configurazione non varia da deployment a deployment: come giusto che sia, quindi, rimane nel codice. Un ottimo approccio al "rispetto" di questo principio consiste nell'usare dei file di configurazione non coinvolti dal version control, come per esempio `config/database.yml` in Rails. Stiamo parlando di un miglioramento enorme rispetto all'uso di costanti nel codice, ma c'è da dire la cosa ha il suo lato negativo: basta poco per sbagliarsi e includere nel repo il file di configurazione che, invece, non dovrebbe essere lì. C'è una certa tendenza, infatti, a non avere tutti i file di configurazione necessari nello stesso posto. Inoltre, i vari formati tendono a essere collegati a un certo linguaggio/framework. **L'applicazione che rispetta la metodologia twelve-factor memorizza tutte le impostazioni in *variabili d'ambiente*** (spesso dette *env vars* o *env*). Le variabili d'ambiente sono molto semplici da cambiare di deployment in deployment senza dover toccare il codice direttamente. Inoltre, a differenza dei file di configurazione classici, c'è una probabilità molto bassa di venire inclusi nel repo. Infine, questi file sono indipendenti sia dal linguaggio che dal sistema operativo utilizzato. Un altro aspetto del config management è il raggruppamento. A volte, infatti, alcune applicazioni prevedono la memorizzazione delle impostazioni in gruppi (chiamati spesso "ambienti") dal nome ben preciso: "development", "test" e "production", per esempio. Questo metodo non scala correttamente, se ci pensi: potrebbero essere necessari nuovi ambienti, come "staging" e "qa". Oppure, i vari sviluppatori potrebbero aver bisogno di creare i propri ambienti "speciali", come "joes-staging" e così via. Il risultato? Una quantità di combinazioni ingestibile e disordinata. In una buona twelve-factor app, le variabili di ambiente sono controllate in modo più "granulare", in modo totalmente ortogonale alle altre. Non sono mai raggruppate e classificate sotto "ambienti" specifici, ma vengono gestite in modo totalmente indipendente per ogni deployment. Il prodotto finale ne risente positivamente in termini di scalabilità.LICENSE0000644000175000056700000000204015226251677010321 0ustar0000000000000000Copyright (c) 2012 Adam Wiggins Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. content/ru/toc.md0000644000175000056700000000443615226251677012536 0ustar0000000000000000Двенадцать факторов ================== ## [I. КодоваÑ� база](./codebase) ### Одна кодоваÑ� база, отÑ�леживаемаÑ� в Ñ�иÑ�теме контролÑ� верÑ�ий, -- множеÑ�тво развёртываний ## [II. ЗавиÑ�имоÑ�ти](./dependencies) ### Явно объÑ�влÑ�йте и изолируйте завиÑ�имоÑ�ти ## [III. КонфигурациÑ�](./config) ### СохранÑ�йте конфигурацию в Ñ�реде выполнениÑ� ## [IV. Сторонние Ñ�лужбы (Backing Services)](./backing-services) ### Считайте Ñ�торонние Ñ�лужбы (backing services) подключаемыми реÑ�урÑ�ами ## [V. Сборка, релиз, выполнение](./build-release-run) ### Строго разделÑ�йте Ñ�тадии Ñ�борки и выполнениÑ� ## [VI. ПроцеÑ�Ñ�Ñ‹](./processes) ### ЗапуÑ�кайте приложение как один или неÑ�колько процеÑ�Ñ�ов не Ñ�охранÑ�ющих внутреннее Ñ�оÑ�тоÑ�ние (stateless) ## [VII. ПривÑ�зка портов (Port binding)](./port-binding) ### ЭкÑ�портируйте Ñ�ервиÑ�Ñ‹ через привÑ�зку портов ## [VIII. Параллелизм](./concurrency) ### МаÑ�штабируйте приложение Ñ� помощью процеÑ�Ñ�ов ## [IX. УтилизируемоÑ�ть (Disposability)](./disposability) ### МакÑ�имизируйте надёжноÑ�ть Ñ� помощью быÑ�трого запуÑ�ка и корректного завершениÑ� работы ## [X. Паритет разработки/работы приложениÑ�](./dev-prod-parity) ### Держите окружениÑ� разработки, промежуточного развёртываниÑ� (staging) и рабочего развёртываниÑ� (production) макÑ�имально похожими ## [XI. Журналирование (Logs)](./logs) ### РаÑ�Ñ�матривайте журнал как поток Ñ�обытий ## [XII. Задачи админиÑ�трированиÑ�](./admin-processes) ### ВыполнÑ�йте задачи админиÑ�трированиÑ�/управлениÑ� Ñ� помощью разовых процеÑ�Ñ�ов content/en/toc.md0000644000175000056700000000206615226251677012507 0ustar0000000000000000The Twelve Factors ================== ## [I. Codebase](./codebase) ### One codebase tracked in revision control, many deploys ## [II. Dependencies](./dependencies) ### Explicitly declare and isolate dependencies ## [III. Config](./config) ### Store config in the environment ## [IV. Backing services](./backing-services) ### Treat backing services as attached resources ## [V. Build, release, run](./build-release-run) ### Strictly separate build and run stages ## [VI. Processes](./processes) ### Execute the app as one or more stateless processes ## [VII. Port binding](./port-binding) ### Export services via port binding ## [VIII. Concurrency](./concurrency) ### Scale out via the process model ## [IX. Disposability](./disposability) ### Maximize robustness with fast startup and graceful shutdown ## [X. Dev/prod parity](./dev-prod-parity) ### Keep development, staging, and production as similar as possible ## [XI. Logs](./logs) ### Treat logs as event streams ## [XII. Admin processes](./admin-processes) ### Run admin/management tasks as one-off processes content/es/config.md0000644000175000056700000000740315226251677013174 0ustar0000000000000000## III. Configuración ### Guardar la configuración en el entorno La configuración de una aplicación es todo lo que puede variar entre [despliegues](./codebase) (entornos de preproducción, producción, desarrollo, etc), lo cual incluye: * Recursos que manejan la base de datos, Memcached, y otros ["backing services"](./backing-services) * Credenciales para servicios externos tales como Amazon S3 o Twitter * Valores de despliegue como por ejemplo el nombre canónico del equipo para el despliegue A veces las aplicaciones guardan configuraciones como constantes en el código, lo que conduce a una violación de la metodología "twelve-factor", que requiere una **estricta separación de la configuración y el código**. La configuración varía sustancialmente en cada despliegue, el código no. La prueba de fuego para saber si una aplicación tiene toda su configuración correctamente separada del código es comprobar que el código base puede convertirse en código abierto en cualquier momento, sin comprometer las credenciales. Hay que resaltar que la definición de "configuración" **no** incluye las configuraciones internas de la aplicación, como `config/routes.rb` en Rails, o como [se conectan los módulos](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html) en [Spring](http://spring.io/). Este tipo de configuraciones no varían entre despliegues, y es por eso que están mejor en el código. Otra estrategia de configuración es el uso de ficheros de configuración que no se guardan en el control de versiones, como ocurre con el `config/database.yml` de Rails. Esto supone una gran mejora con respecto a las constantes que se guardan en el repositorio, aunque todavía tiene ciertas debilidades: es fácil guardar un fichero de configuración en el repo por error; se tiende a desperdigar los ficheros de configuración en diferentes sitios y con distintos formatos, siendo más difícil la tarea de ver y gestionar toda la configuración en un solo sitio. Además, el formato tiende a ser específico del lenguaje o del framework. **Las aplicaciones "twelve-factor" almacenan la configuración en *variables de entorno*** (abreviadas normalmente como *env vars* o *env*). Las variables de entorno se modifican fácilmente entre despliegues sin realizar cambios en el código; a diferencia de los ficheros de configuración, en los que existe una pequeña posibilidad de que se guarden en el repositorio de código accidentalmente; y a diferencia de los ficheros de configuración personalizados u otros mecanismos de configuración, como los System Properties de Java, son un estándar independiente del lenguaje y del sistema operativo. Otro aspecto de la gestión de la configuración es la clasificación. A veces, las aplicaciones clasifican las configuraciones en grupos identificados (a menudo llamados "entornos" o "environments") identificando después despliegues específicos, como ocurre en Rails con los entornos `development`, `test`, y `production`. Este método no escala de una manera limpia: según se van creando despliegues de la aplicación, se van necesitando nuevos entornos, tales como `staging` o `qa`. Según va creciendo el proyecto, los desarrolladores van añadiendo sus propios entornos especiales como `joes-staging`, resultando en una explosión de combinaciones de configuraciones que hacen muy frágil la gestión de despliegues de la aplicación. En una aplicación "twelve-factor", las variables de entorno son controles granulares, cada una de ellas completamente ortogonales a las otras. Nunca se agrupan juntas como "entornos", pero en su lugar se gestionan independientemente para cada despliegue. Este es un modelo que escala con facilidad según la aplicación se amplía, naturalmente, en más despliegues a lo largo de su vida. content/fr/who.md0000644000175000056700000000034015226251677012515 0ustar0000000000000000Qui devrait lire ce document ? ============================== Tout développeur qui construit des applications qui fonctionnent en tant que service, ainsi que les personnes qui déploient et gèrent de telles applications. content/ru/concurrency.md0000644000175000056700000001237715226251677014306 0ustar0000000000000000## VIII. Параллелизм ### МаÑ�штабируйте приложение Ñ� помощью процеÑ�Ñ�ов ЛюбаÑ� компьютернаÑ� программа поÑ�ле запуÑ�ка предÑ�тавлÑ�ет Ñ�обой один или неÑ�колько работающих процеÑ�Ñ�ов. ИÑ�торичеÑ�ки веб-приложениÑ� принимали различные формы выполнениÑ� процеÑ�Ñ�ов. К примеру, PHP-процеÑ�Ñ�Ñ‹ выполнÑ�Ñ‚Ñ�Ñ� как дочерние процеÑ�Ñ�Ñ‹ Apache и запуÑ�каютÑ�Ñ� по требованию в необходимом длÑ� обÑ�луживаниÑ� поÑ�тупивших запроÑ�ов количеÑ�тве. Java-процеÑ�Ñ�Ñ‹ иÑ�пользуют противоположный подход, JVM предÑ�тавлÑ�ет Ñ�обой один монолитный мета-процеÑ�Ñ�, который резервирует большой объём Ñ�иÑ�темных реÑ�урÑ�ов (процеÑ�Ñ�ор и памÑ�ть) при запуÑ�ке и управлÑ�ет параллельноÑ�тью внутри Ñ�ебÑ� Ñ� помощью нитей иÑ�полнениÑ� (threads). Ð’ обоих Ñ�лучаÑ�Ñ… запущенные процеÑ�Ñ�Ñ‹ лишь минимально видны длÑ� разработчика приложениÑ�. ![МаÑ�штабирование выражаетÑ�Ñ� в количеÑ�тве запущенных процеÑ�Ñ�ов, различие рабочей нагрузки выражаетÑ�Ñ� в типах процеÑ�Ñ�ов.](/images/process-types.png) **Ð’ приложении двенадцати факторов процеÑ�Ñ�Ñ‹ Ñ�влÑ�ÑŽÑ‚Ñ�Ñ� Ñ�ущноÑ�Ñ‚Ñ�ми первого клаÑ�Ñ�а.** ПроцеÑ�Ñ�Ñ‹ в приложении двенадцати факторов взÑ�ли Ñ�ильные Ñ�тороны из [модели процеÑ�Ñ�ов Unix длÑ� запуÑ�ка демонов](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/). С помощью Ñ�той модели разработчик может Ñ�проектировать Ñ�воё приложение таким образом, что длÑ� обработки различной рабочей нагрузки необходимо назначить каждому типу работы Ñ�воего *типа процеÑ�Ñ�а*. Ð�апример, HTTP-запроÑ�Ñ‹ могут быть обработаны веб-процеÑ�Ñ�ом, а длительные фоновые задачи обработаны рабочим процеÑ�Ñ�ом. Это не иÑ�ключает возможноÑ�ть иÑ�пользованиÑ� внутреннего мультиплекÑ�ированиÑ� длÑ� индивидуальных процеÑ�Ñ�ов через потоки выполнениÑ� виртуальной машины или аÑ�инхронные/Ñ�обытийные модели в инÑ�трументах таких, как [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http://twistedmatrix.com/trac/) и [Node.js](http://nodejs.org/). Ð�о каждаÑ� индивидуальнаÑ� виртуальнаÑ� машина может маÑ�штабироватьÑ�Ñ� только ограничено (вертикальное маÑ�штабирование), поÑ�тому приложение должно иметь возможноÑ�ть быть запущенным как неÑ�колько процеÑ�Ñ�ов на различных физичеÑ�ких машинах. Модель, поÑ�троеннаÑ� на процеÑ�Ñ�ах, дейÑ�твительно Ñ�иÑ�ет, когда приходит времÑ� маÑ�штабированиÑ�. [ОтÑ�утÑ�твие разделÑ�емых данных и горизонтальное разделение процеÑ�Ñ�ов приложениÑ� двенадцати факторов](./processes) означает, что добавление большего параллелизма Ñ�влÑ�етÑ�Ñ� проÑ�той и надёжной операцией. МаÑ�Ñ�ив процеÑ�Ñ�ов различного типа и количеÑ�тво процеÑ�Ñ�ов каждого типа называютÑ�Ñ� *формированием процеÑ�Ñ�ов (process formation)*. ПроцеÑ�Ñ�Ñ‹ приложениÑ� двенадцати факторов [никогда не должны демонизироватьÑ�Ñ�](http://dustin.github.com/2010/02/28/running-processes.html) и запиÑ�ывать PID файлы. ВмеÑ�то Ñ�того они должны полагатьÑ�Ñ� на менеджер процеÑ�Ñ�ов операционной Ñ�иÑ�темы (например, [systemd](https://www.freedesktop.org/wiki/Software/systemd/), раÑ�пределённый менеджер процеÑ�Ñ�ов на облачной платформе, или инÑ�трумент как [Foreman](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html) в процеÑ�Ñ�е разработки) длÑ� управлениÑ� [потоком вывода](./logs), реагированиÑ� на падениÑ� процеÑ�Ñ�а и обработки инициированных пользователем перезагрузки или завершениÑ� работы. content/zh_cn/who.md0000644000175000056700000000022115226251677013205 0ustar0000000000000000读者应该是哪些人? ============================== 任何 SaaS 应用的开å�‘人员。部署和管ç�†æ­¤ç±»åº”用的è¿�维工程师。 content/es/build-release-run.md0000644000175000056700000000625515226251677015252 0ustar0000000000000000## V. Construir, distribuir, ejecutar ### Separar completamente la etapa de construcción de la etapa de ejecución El [código base](./codebase) se transforma en un despliegue (que no es de desarrollo) al completar las siguientes tres etapas: * La *etapa de construcción* es una transformación que convierte un repositorio de código en un paquete ejecutable llamado *construcción* (una "build"). En la etapa de construcción se traen todas las [dependencias](./dependencies) y se compilan los binarios y las herramientas usando una versión concreta del código correspondiente a un commit especificado por el proceso de despliegue. * En la *fase de distribución* se usa la construcción creada en la fase de construcción y se combina con la [configuración](./config) del despliegue actual. Por tanto, la *distribución* resultante contiene tanto la construcción como la configuración y está lista para ejecutarse inmediatamente en el entorno de ejecución. * La *fase de ejecución* (también conocida como "runtime") ejecuta la aplicación en el entorno de ejecución, lanzando un conjunto de [procesos](./processes) de una distribución concreta de la aplicación. ![El código se convierte en una construcción, que se combina con la configuración para crear una distribución.](/images/release.png) **Las aplicaciones "twelve-factor" hacen una separación completa de las fases de construcción, de distribución y de ejecución.** Por ejemplo, es imposible hacer cambios en el código en la fase de ejecución, porque no hay una manera de propagar dichos cambios a la fase de construcción. Las herramientas de despliegue ofrecen, normalmente, herramientas de gestión de distribuciones (releases). La capacidad de volver a una versión anterior es especialmente útil. Por ejemplo, la herramienta de despliegues [Capistrano](https://github.com/capistrano/capistrano/wiki) almacena distribuciones en un subdirectorio llamado `releases`, donde la distribución actual es un enlace simbólico al directorio de la distribución actual. Su mandato `rollback` hace fácil y rápidamente el trabajo de volver a la versión anterior. Cada distribución debería tener siempre un identificador único de distribución, como por ejemplo una marca de tiempo (timestamp) de la distribución (`2011-04-06-20:32:17`) o un número incremental (como `v100`). Las distribuciones son como un libro de contabilidad, al que solo se le pueden agregar registros y no pueden ser modificados una vez son creados. Cualquier cambio debe crear una nueva distribución. Cada vez que un desarrollador despliega código nuevo se crea una construcción nueva de la aplicación. La fase de ejecución, en cambio, puede suceder automáticamente, por ejemplo, cuando se reinicia un servidor, o cuando un proceso termina inesperadamente siendo reiniciado por el gestor de procesos. Por tanto, la fase de ejecución debería mantenerse lo más estática posible, ya que evita que una aplicación en ejecución pueda causar una interrupción inesperada, en mitad de la noche, cuando no hay desarrolladores a mano. La fase de construcción puede ser más compleja, ya que los errores siempre están en la mente de un desarrollador que dirige un despliegue. content/it/admin-processes.md0000644000175000056700000000462415226251677015032 0ustar0000000000000000## XII. Processi di Amministrazione ### Esegui i task di amministrazione come processi una tantum La "[process formation](./concurrency)" è l'array dei processi che vengono usati durante le normali operazioni dell'applicazione (per esempio, la gestione delle richieste web). Non è tutto, però: ci sono dei task che lo sviluppatore può voler eseguire, una volta ogni tanto. Per esempio: * Esecuzione delle migration del database (esempi: `manage.py migrate` in Django, `rake db:migrate` in Rails). * Esecuzione di una console (una [REPL](http://en.wikipedia.org/wiki/Read-eval-print_loop) shell) in modo tale da avviare del codice arbitrariamente o analizzare alcuni aspetti dell'applicazione specifici. Molti linguaggi prevedono una REPL, in genere avviando l'interprete senza opzioni e argomenti aggiuntivi (esempi: `python` o `perl`) o in alcuni casi eseguibile con un comando separato (esempi: `irb` per Ruby, `rails console` per Rails). * Esecuzione one-time di alcuni script specifici (esempio: `php scripts/fix_bad_records.php`). Tali processi dovrebbero essere avviati in un ambiente identico a quello in cui [lavorano gli altri](./processes) nel contesto dell'applicazione. Dovrebbero essere eseguiti quindi su una specifica [release](./build-release-run), partendo dalla stessa [codebase](./codebase) e impostazioni di [configurazione](./config). Il codice per l'amministrazione dovrebbe inoltre essere incluso nel codice dell'applicazione, in modo tale da evitare qualsiasi problema di sincronizzazione. La stessa tecnica di [isolamento delle dipendenze](./dependencies) dovrebbe poter essere usata allo stesso modo su tutti i processi. Per esempio, se il processo web di Ruby può usare il comando `bundle exec thin start`, una migration del database dovrebbe poter usare `bundle exec rake db:migrate` senza problemi. Allo stesso modo, un programma Python che usa Virtualenv dovrebbe usare il `bin/python` per eseguire sia i server Tornado che processi di amministrazione. La metodologia twelve-factor favorisce molto tutti quei linguaggi che offrono una shell REPL out of the box, rendendo quindi semplice l'esecuzione di script una tantum. In un deployment locale, gli sviluppatori possono invocare questi processi speciali tramite un semplice comando diretto. In un ambiente di produzione, invece, gli sviluppatori possono raggiungere lo stesso obiettivo tramite SSH o un qualsiasi altro sistema di esecuzione di comandi remoto. content/pl/logs.md0000644000175000056700000000473215226251677012701 0ustar0000000000000000## XI. Logi ### Traktuj logi jako strumieÅ„ zdarzeÅ„ *Logi* zapewniajÄ… wglÄ…d w zachowanie dziaÅ‚ajÄ…cej aplikacji. W Å›rodowiskach korzystajÄ…cych z serwera zazwyczaj sÄ… zapisywane na dysku (plik "logfile"); jednak jest to tylko wybrany format zapisu. Logi sÄ… listÄ… zaagregowanych i uporzÄ…dkowanych w czasie [zdarzeÅ„](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/) zebranych ze strumieni wyjÅ›ciowych wszystkich uruchomionych procesów i usÅ‚ug wspierajÄ…cych. Logi w swojej pierwotnej formie wystÄ™pujÄ… zazwyczaj w formacie tekstowym, gdzie jedno zdarzenie zajmuje jednÄ… liniÄ™ w pliku (wyjÄ…tkiem jest jednak [backtrace](https://en.wikipedia.org/wiki/Stack_trace), który może zajmować wiele linii). Logi nie majÄ… okreÅ›lonego poczÄ…tku ani koÅ„ca, napÅ‚ywajÄ… nieustannie podczas dziaÅ‚ania aplikacji. **Aplikacja 12factor nie odpowiada za przekierowywanie i zapis swojego strumienia wyjÅ›ciowego.** Nie powinna też zapisywać czy zarzÄ…dzać plikami logów. Zamiast tego, każdy dziaÅ‚ajÄ…cy proces zapisuje swój niebuforowany strumieÅ„ zdarzeÅ„ do `stdout`. Podczas pracy w lokalnym Å›rodowisku developer może obserwować zachowanie aplikacji przeglÄ…dajÄ…c strumieÅ„ w oknie terminala We wdrożeniu stagingowym czy produkcyjnym, każdy strumieÅ„ procesów zostanie przechwycony przez Å›rodowisko wykonawcze, dołączony do pozostaÅ‚ych i skierowany do jednego lub wielu miejsc w celu przeglÄ…dania i dÅ‚ugoterminowego zapisu. Miejsca zapisu nie sÄ… widoczne ani konfigurowane przez aplikacjÄ™ - w caÅ‚oÅ›ci zarzÄ…dza nimi Å›rodowisko wykonawcze. W tym celu można skorzystać z narzÄ™dzi do obsÅ‚ugi logów (takich jak [Logplex](https://github.com/heroku/logplex) lub [Fluentd](https://github.com/fluent/fluentd)) dostÄ™pnych na licencji open-source. StrumieÅ„ zdarzeÅ„ aplikacji może być skierowany do pliku lub obserwowany w czasie rzeczywistym przy pomocy komendy `tail` w terminalu. Przeważnie strumieÅ„ jest wysyÅ‚any do systemu indeksowania i analizowania jak np. [Splunk](http://www.splunk.com/), albo do systemu magazynowania danych jak [Hadoop/Hive](http://hive.apache.org/). Wymienione systemy oferujÄ… duże możliwoÅ›ci i elastyczność obserwacji i badania zachowaÅ„ aplikacji w czasie, w tym: * Wyszukiwanie konkretnych zdarzeÅ„ z przeszÅ‚oÅ›ci. * WizualizacjÄ™ masowych statystyk (np. zapytania na minutÄ™). * WysyÅ‚anie powiadomieÅ„ na podstawie wczeÅ›niej zdefiniowanych heurystyk (np. o tym, że liczba błędów przekroczyÅ‚a dozwolonÄ… wartość). content/tr/build-release-run.md0000644000175000056700000000555115226251677015266 0ustar0000000000000000## V. Derleme, Sürüm, Çalıştırma ### Derleme ve çalıştırma aÅŸamalarını tam olarak ayırma Bir [kod tabanı](./codebase) üç aÅŸamada dağıtıma dönüşebilir: * *Derleme aÅŸaması* kod deposunun *derleme* olarak bilinen çalıştırılabilir pakette çeviren bir dönüşümdür.Dağıtım süreci tarafından belirlenen bir commit'deki kodun versiyonunu kullanırken, derleme aÅŸaması saÄŸlayıcı [bağımlılıkları](./dependencies) getirir ve binary'leri derler. * *Sürüm aÅŸaması*, derleme aÅŸaması tarafından üretilmiÅŸ derlemeyi alır ve dağıtımı ÅŸu anki [yapılandırmasıyla](./config) birleÅŸtirir. Son durumda oluÅŸan *sürüm* derleme ve yapılandırmanın ikisinide içerir ve çalışma ortamındaki doÄŸrudan çalıştırma için hazırdır. * *Çalıştırma evresi* (aynı zamanda "runtime" olarak bilinir) seçili sürümün karşılığındaki uygulamanın [süreçlerini](./processes) bazı setlerini baÅŸlatarak, çalıştırma ortamındaki uygulamayı çalıştırır. ![Kod, sürüm oluÅŸturmak için yapılandırmayla birleÅŸmiÅŸ derlemeye dönüşür.](/images/release.png) **On iki faktör uygulamaları derleme,sürüm ve çalıştırma aÅŸamaları arasında mutlak ayırmayı kullanır.** ÖrneÄŸin, koddaki deÄŸiÅŸiklikleri derleme aÅŸamasına geri döndürmenin bir yolu olmadığı için çalışma zamanında kodda deÄŸiÅŸiklik yapmak imkansızdır. Dağıtım araçları genel olarak sürüm yönetim araçlarını önerir, en dikkat çekeni bir önceki sürüme geri dönme yeteneÄŸidir. ÖrneÄŸin, [Capistrano](https://github.com/capistrano/capistrano/wiki) dağıtım aracı sürümleri, ÅŸu anki sürümün ÅŸimdiki sürüm dizinine bir sembolik link olduÄŸu, `releases` adlı alt dizinde depolar. `rollback` komutu, bir önceki sürüme hızlı geri dönüşü kolaylaÅŸtırır. Her sürüm her zaman sürümlerin zaman damgası gibi (`2011-04-06-20:32:17` gibi) özel sürüm ID'sine veya artış numarasına (`v100` gibi) sahip olmalıdır. Sürümler yalnızca eklemeli bir defterdir ve bir kere oluÅŸturulduÄŸu zaman dönüştürülemez. Herhangi bir deÄŸiÅŸiklik yeni bir sürüm oluÅŸturmalıdır. Derlemeler, herhangi bir zamanda yeni kod dağıtıldığında uygulama geliÅŸtiricileri tarafından baÅŸlatılır. Çalışma zamanı yürütmesi, kontras tarafından, sunucu tekrar çalıştırılması veya çökmüş süreçlerin süreç yöneticisi tarafından tekrar baÅŸlatılması gibi durumlarda otomatik olarak olabilir. Bunun sonucunda, çalıştırma evresi, gecenin bir yarısında çalışan geliÅŸtiriciler yokken uygulamanın çalışmasını engelleyen problemler uygulamanın bozulmasına yol açabildiÄŸi için, olabildiÄŸi kadar az sayıda hareketli bölüm olarak tutulmalıdır. Derleme evresinde, hatalar dağıtımı çalıştıran geliÅŸtiriciler için her zaman ön planda olduÄŸu için daha fazla karış olabilir. content/uk/admin-processes.md0000644000175000056700000000736215226251677015037 0ustar0000000000000000## XII. Задачі адмініÑ�труваннÑ� ### Виконуйте задачі адмініÑ�труваннÑ�/керуваннÑ� за допомогою разових процеÑ�ів [ФормаціÑ� процеÑ�ів](./concurrency) Ñ” певним набором процеÑ�ів, Ñ�кі необхідні длÑ� виконаннÑ� регулÑ�рних задач заÑ�тоÑ�унку (наприклад, обробка веб-запитів). Разом з тим, розробникам чаÑ�то необхідно виконувати разові адмініÑ�тративні задачі длÑ� обÑ�луговуваннÑ� заÑ�тоÑ�унку, такі Ñ�к: * ЗапуÑ�к міграції бази даних (наприклад, `manage.py migrate` в Django, `rake db:migrate` в Rails). * ЗапуÑ�к конÑ�олі ([REPL](http://en.wikipedia.org/wiki/Read-eval-print_loop)) длÑ� виконаннÑ� довільного коду або перевірки моделі заÑ�тоÑ�унку на діючій базі даних. БільшіÑ�ть мов надають REPL шлÑ�хом запуÑ�ку інтерпретатора без будь-Ñ�ких аргументів (наприклад, `python` або `perl`) або в деÑ�ких випадках мають окрему команду (наприклад, `irb` длÑ� Ruby, `rails console` длÑ� Rails). * ЗапуÑ�к разових Ñ�криптів, збережених в репозиторії заÑ�тоÑ�унку (наприклад, `php scripts/fix_bad_records.php`). Разові процеÑ�и адмініÑ�труваннÑ� Ñ�лід запуÑ�кати в такому ж Ñ�ередовищі, в Ñ�кому запущені регулÑ�рні [тривалі процеÑ�и](./processes) заÑ�тоÑ�унку. Вони запуÑ�каютьÑ�Ñ� на базі [релізу](./build-release-run), викориÑ�товуючи ту ж [кодову базу](./codebase) Ñ– [конфігурацію](./config), Ñ�к Ñ– будь-Ñ�кий інший процеÑ� на базі цього релізу. ДлÑ� уникненнÑ� проблем з Ñ�инхронізацією код адмініÑ�труваннÑ� має поÑ�тавлÑ�тиÑ�Ñ� з кодом заÑ�тоÑ�унку. ДлÑ� вÑ�Ñ–Ñ… типів процеÑ�ів мають викориÑ�товуватиÑ�Ñ� однакові методи [ізолÑ�ції залежноÑ�тей](./dependencies). Ð�априклад, Ñ�кщо веб-процеÑ� Ruby викориÑ�товує команду `bundle exec thin start`, то длÑ� міграції бази даних Ñ�лід викориÑ�товувати `bundle exec rake db:migrate`. Ð�налогічно, длÑ� програми на Python з Virtualenv Ñ�лід викориÑ�товувати `bin/python` Ñ�к длÑ� запуÑ�ку веб-Ñ�ервера Tornado, так Ñ– длÑ� запуÑ�ку будь-Ñ�ких `manage.py` процеÑ�ів адмініÑ�труваннÑ�. МетодологіÑ� дванадцÑ�ти факторів надає перевагу мовам, Ñ�кі мають REPL "з коробки", Ñ– Ñ�кі дозволÑ�ють легко запуÑ�кати разові Ñ�крипти. У локальному development Ñ�ередовищі розробник може запуÑ�тити процеÑ� адмініÑ�труваннÑ� за допомогою конÑ�ольної команди вÑ�ередині директорії заÑ�тоÑ�унку. У production Ñ�ередовищі длÑ� запуÑ�ку такого процеÑ�у розробники можуть викориÑ�товувати ssh або інший механізм віддаленого виконаннÑ� команд, що надаєтьÑ�Ñ� Ñ�ередовищем виконаннÑ�.locales/en.yml0000644000175000056700000000031115226251677012062 0ustar0000000000000000en: # Name of language listed in locales menu language: English (en) # A text to make known that the article is a translation not an original. # Empty for English, original. translation: "" Gemfile.lock0000644000175000056700000000227115226251677011544 0ustar0000000000000000GEM remote: http://rubygems.org/ specs: base64 (0.3.0) concurrent-ruby (1.3.5) daemons (1.4.1) eventmachine (1.2.7) i18n (1.14.7) concurrent-ruby (~> 1.0) logger (1.7.0) maruku (0.7.3) mustermann (3.0.3) ruby2_keywords (~> 0.0.1) nio4r (2.7.4) ostruct (0.6.2) puma (6.6.0) nio4r (~> 2.0) rack (3.1.16) rack-protection (4.1.1) base64 (>= 0.1.0) logger (>= 1.6.0) rack (>= 3.0.0, < 4) rack-session (2.1.1) base64 (>= 0.1.0) rack (>= 3.0.0) rack-ssl-enforcer (0.2.9) rackup (2.2.1) rack (>= 3) rexml (3.4.1) ruby2_keywords (0.0.5) sinatra (4.1.1) logger (>= 1.6.0) mustermann (~> 3.0) rack (>= 3.0.0, < 4) rack-protection (= 4.1.1) rack-session (>= 2.0.0, < 3) tilt (~> 2.0) thin (2.0.1) daemons (~> 1.0, >= 1.0.9) eventmachine (~> 1.0, >= 1.0.4) logger rack (>= 1, < 4) tilt (2.6.1) PLATFORMS ruby DEPENDENCIES i18n maruku ostruct (~> 0.6.2) puma (~> 6.6) rack-ssl-enforcer rackup (~> 2.2) rexml sinatra (>= 2.2.0) thin (>= 1.8.1) RUBY VERSION ruby 3.2.3p157 BUNDLED WITH 2.4.20 content/de/port-binding.md0000644000175000056700000000403315226251677014300 0ustar0000000000000000## VII. Bindung an Ports ### Dienste durch das Binden von Ports exportieren Web-Apps laufen manchmal in einem Webserver als Container. Zum Beispiel laufen PHP-Apps als Modul in [Apache HTTPD](http://httpd.apache.org/), oder Java-Apps laufen manchmal in [Tomcat](http://tomcat.apache.org/). **Die Zwölf-Faktor-App ist vollständig eigenständig** und verlässt sich nicht darauf, dass ein externer Webserver zur Laufzeit injiziert wird, um dem Web einen Dienst zur Verfügung zu stellen. Die Web-App **exportiert HTTP als Dienst, indem sie sich an einen Port bindet** und wartet an diesem Port auf Requests. In einer lokalen Entwicklungsumgebung öffnet ein Entwickler eine Dienst-URL wie `http://localhost:5000/`, um auf den Dienst der App zuzugreifen. Beim Deployment sorgt eine Routing-Schicht dafür, dass Requests von einem öffentlich sichtbaren Hostnamen zu den an die Ports gebundenen Prozessen kommen. Üblicherweise wird dies mittels [Abhängigkeitsdeklaration](./dependencies) implementiert. Zu der App fügt man eine Webserver-Bibliothek hinzu wie [Tornado](http://www.tornadoweb.org/) für Python, [Thin](http://code.macournoyer.com/thin/) für Ruby oder [Jetty](http://www.eclipse.org/jetty/) für Java und andere JVM-basierenden Sprachen. Dies findet vollständig im *User Space* statt, also im Code der App. Der Vertrag mit der Laufzeitumgebung ist das Binden an einen Port um Requests zu bedienen. HTTP ist nicht der einzige Dienst, der durch Portbindung exportiert werden kann. Fast jede Server-Software kann betrieben werden, indem ein Prozess an einen Port gebunden wird und auf ankommende Requests wartet. Einige Beispiele sind [ejabberd](http://www.ejabberd.im/) (spricht [XMPP](http://xmpp.org/)) und [Redis](http://redis.io/) (spricht das [Redis-Protokoll](http://redis.io/topics/protocol)). Es sei auch erwähnt, dass durch Portbindung eine App ein [unterstützender Dienst](./backing-services) für eine andere App werden kann, indem die URL der unterstützenden App der konsumierenden App als Resource-Handle zur Verfügung gestellt wird. content/ja/dev-prod-parity.md0000644000175000056700000001332515226251677014740 0ustar0000000000000000## X. 開発/本番一致 ### 開発ã€�ステージングã€�本番環境をã�§ã��ã‚‹ã� ã�‘一致ã�•ã�›ã�ŸçŠ¶æ…‹ã‚’ä¿�ã�¤ æ­´å�²çš„ã�«ã€�開発環境(開発者ã�Œç›´æŽ¥å¤‰æ›´ã�™ã‚‹ã‚¢ãƒ—リケーションã�®ãƒ­ãƒ¼ã‚«ãƒ«[デプロイ](./codebase))ã�¨æœ¬ç•ªç’°å¢ƒï¼ˆã‚¨ãƒ³ãƒ‰ãƒ¦ãƒ¼ã‚¶ãƒ¼ã�‹ã‚‰ã‚¢ã‚¯ã‚»ã‚¹ã�•れるアプリケーションã�®å®Ÿè¡Œä¸­ãƒ‡ãƒ—ロイ)ã�®é–“ã�«ã�¯å¤§ã��ã�ªã‚®ãƒ£ãƒƒãƒ—ã�Œã�‚ã�£ã�Ÿã€‚ã�“れらã�®ã‚®ãƒ£ãƒƒãƒ—ã�¯3ã�¤ã�®é ˜åŸŸã�§ç�¾ã‚Œã‚‹ã€‚ * **時間ã�®ã‚®ãƒ£ãƒƒãƒ—**: 開発者ã�Œç·¨é›†ã�—ã�Ÿã‚³ãƒ¼ãƒ‰ã�Œæœ¬ç•ªã�«å��映ã�•れるã�¾ã�§æ•°æ—¥ã€�数週間ã€�時ã�«ã�¯æ•°ãƒ¶æœˆã�‹ã�‹ã‚‹ã�“ã�¨ã�Œã�‚る。 * **人æ��ã�®ã‚®ãƒ£ãƒƒãƒ—**: 開発者ã�Œæ›¸ã�„ã�Ÿã‚³ãƒ¼ãƒ‰ã‚’ã€�インフラエンジニアã�Œãƒ‡ãƒ—ロイã�™ã‚‹ã€‚ * **ツールã�®ã‚®ãƒ£ãƒƒãƒ—**: 本番デプロイã�§ã�¯Apacheã€�MySQLã€�Linuxを使ã�†ã�®ã�«ã€�開発者ã�ŒNginxã€�SQLiteã€�OS Xã�®ã‚ˆã�†ã�ªã‚¹ã‚¿ãƒƒã‚¯ã‚’使ã�†ã�“ã�¨ã�Œã�‚る。 **Twelve-Factor Appã�§ã�¯ã€�[継続的デプロイ](http://avc.com/2011/02/continuous-deployment/)ã�—ã‚„ã�™ã�„よã�†é–‹ç™ºç’°å¢ƒã�¨æœ¬ç•ªç’°å¢ƒã�®ã‚®ãƒ£ãƒƒãƒ—ã‚’å°�ã�•ã��ä¿�ã�¤ã€‚** 上ã�§è¿°ã�¹ã�Ÿ3ã�¤ã�®ã‚®ãƒ£ãƒƒãƒ—を見る。 * 時間ã�®ã‚®ãƒ£ãƒƒãƒ—ã‚’å°�ã�•ã��ã�™ã‚‹: 開発者ã�Œæ›¸ã�„ã�Ÿã‚³ãƒ¼ãƒ‰ã�¯æ•°æ™‚間後ã€�ã�•らã�«ã�¯æ•°åˆ†å¾Œã�«ã�¯ãƒ‡ãƒ—ロイã�•れる。 * 人æ��ã�®ã‚®ãƒ£ãƒƒãƒ—ã‚’å°�ã�•ã��ã�™ã‚‹: コードを書ã�„ã�Ÿé–‹ç™ºè€…ã�¯ã��ã�®ã‚³ãƒ¼ãƒ‰ã�®ãƒ‡ãƒ—ロイã�«æ·±ã��é–¢ã‚�りã€�ã��ã�®ã‚³ãƒ¼ãƒ‰ã�®æœ¬ç•ªç’°å¢ƒã�§ã�®æŒ™å‹•をモニタリングã�™ã‚‹ã€‚ * ツールã�®ã‚®ãƒ£ãƒƒãƒ—ã‚’å°�ã�•ã��ã�™ã‚‹: 開発環境ã�¨æœ¬ç•ªç’°å¢ƒã‚’ã�§ã��ã‚‹ã� ã�‘一致ã�•ã�›ã�ŸçŠ¶æ…‹ã‚’ä¿�ã�¤ã€‚ 上ã�§è¿°ã�¹ã�Ÿã�“ã�¨ã‚’表ã�«ã�¾ã�¨ã‚�る。
�統的�アプリケーション Twelve-Factor App
デプロイ�間隔 数週間 数時間
コードを書�人�デプロイ�る人 異�る人 ��人
開発環境�本番環境 異�る ��る��一致
[�ックエンドサービス](./backing-services)(アプリケーション�データベース�キューイングシステム�キャッシュ��)��開発/本番一致�����る領域�一���る。多��言語��異�る種類�サービス�� *アダプター* を����ックエンド・サービス��アクセスを�純化�るライブラリを�供���る。以下�表������例を示�。
種類 言語 ライブラリ アダプター
データベース Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
キュー Python/Django Celery RabbitMQ, Beanstalkd, Redis
キャッシュ Ruby/Rails ActiveSupport::Cache メモリ, ファイルシステム, Memcached
本番環境ã�§ã�¯ã‚ˆã‚Šæœ¬æ ¼çš„ã�§å …牢ã�ªãƒ�ックエンドサービスã�Œä½¿ã‚�れるã�«ã‚‚ã�‹ã�‹ã‚�らã�šã€�開発者ã�¯è‡ªèº«ã�®ãƒ­ãƒ¼ã‚«ãƒ«é–‹ç™ºç’°å¢ƒã�§è»½é‡�ã�ªãƒ�ックエンドサービスを使ã�„ã�Ÿã��ã�ªã‚‹ã�“ã�¨ã�Œã�‚る。例ã�ˆã�°ã€�開発環境ã�§ã�¯SQLiteを使ã�„ã€�本番ã�§ã�¯PostgreSQLを使ã�£ã�Ÿã‚Šã€�開発環境ã�§ã�¯ãƒ­ãƒ¼ã‚«ãƒ«ãƒ—ロセスã�®ãƒ¡ãƒ¢ãƒªã‚’キャッシュã�«ä½¿ã�„ã€�本番ã�§ã�¯Memcachedを使ã�£ã�Ÿã‚Šã�™ã‚‹ã�ªã�©ã�§ã�‚る。 ã�Ÿã�¨ã�ˆç�†è«–çš„ã�«ã�¯ã‚¢ãƒ€ãƒ—ターã�Œãƒ�ックエンドサービスã�®é�•ã�„ã‚’ã�™ã�¹ã�¦æŠ½è±¡åŒ–ã�—ã�¦ã��れるã�¨ã�—ã�¦ã‚‚ã€� **Twelve-Factorã�®é–‹ç™ºè€…ã�¯ã€�開発ã�¨æœ¬ç•ªã�®é–“ã�§ç•°ã�ªã‚‹ãƒ�ックエンドサービスを使ã�„ã�Ÿã��ã�ªã‚‹è¡�å‹•ã�«æŠµæŠ—ã�™ã‚‹ã€‚** ãƒ�ックエンドサービスã�®é�•ã�„ã�¯ã€�ã‚�ã�šã�‹ã�ªé�žäº’æ�›æ€§ã�Œé¡•在化ã�—ã€�開発環境やステージング環境ã�§ã�¯æ­£å¸¸ã�«å‹•作ã�—ã�¦ãƒ†ã‚¹ãƒˆã‚‚通é�Žã�™ã‚‹ã‚³ãƒ¼ãƒ‰ã�Œæœ¬ç•ªç’°å¢ƒã�§ã‚¨ãƒ©ãƒ¼ã‚’èµ·ã�“ã�™äº‹æ…‹ã‚’æ‹›ã��ã�“ã�¨ã‚’æ„�味ã�™ã‚‹ã€‚ã�“ã�®ç¨®ã�®ã‚¨ãƒ©ãƒ¼ã�¯ç¶™ç¶šçš„デプロイを妨ã�’る摩擦を生む。ã�“ã�®æ‘©æ“¦ã�¨ã��れã�«ä¼´ã�£ã�¦ç¶™ç¶šçš„デプロイã�Œå¦¨ã�’られるã�“ã�¨ã�®ã‚³ã‚¹ãƒˆã�¯ã€�アプリケーションã�®ãƒ©ã‚¤ãƒ•サイクルã�«æ¸¡ã�£ã�¦ãƒˆãƒ¼ã‚¿ãƒ«ã�§è€ƒã�ˆã‚‹ã�¨é�žå¸¸ã�«é«˜ã��ã�¤ã��。 軽é‡�ã�ªãƒ­ãƒ¼ã‚«ãƒ«ã‚µãƒ¼ãƒ“スã�¯ã€�以å‰�ã�»ã�©é­…力的ã�ªã‚‚ã�®ã�§ã�¯ã�ªã��ã�ªã�£ã�¦ã�„る。Memcachedã€�PostgreSQLã‚„RabbitMQã�ªã�©ã�®ãƒ¢ãƒ€ãƒ³ã�ªãƒ�ックエンドサービスã�¯ã€�[Homebrew](http://mxcl.github.com/homebrew/) ã‚„ [apt-get](https://help.ubuntu.com/community/AptGet/Howto) ã�ªã�©ã�®ãƒ¢ãƒ€ãƒ³ã�ªãƒ‘ッケージングシステムã�®ã�Šã�‹ã�’ã�§ã€�ç°¡å�˜ã�«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã�—ã�¦å®Ÿè¡Œã�§ã��る。ã�‚ã‚‹ã�„ã�¯ [Chef](http://www.opscode.com/chef/) ã‚„ [Puppet](http://docs.puppetlabs.com/) ã�ªã�©ã�®å®£è¨€çš„ã�ªãƒ—ロビジョニングツールã�¨ã€�[Vagrant](http://vagrantup.com/) ã�ªã�©ã�®è»½é‡�ã�ªä»®æƒ³ç’°å¢ƒã‚’組ã�¿å�ˆã‚�ã�›ã‚‹ã�“ã�¨ã�§ã€�開発者ã�¯æœ¬ç•ªç’°å¢ƒã�«é™�りã�ªã��è¿‘ã�„ローカル環境を作るã�“ã�¨ã�Œã�§ã��る。開発/本番一致ã�¨ç¶™ç¶šçš„デプロイã�®åˆ©ç›Šã�«æ¯”ã�¹ã‚‹ã�¨ã€�ã�“れらã�®ã‚·ã‚¹ãƒ†ãƒ ã‚’インストールã�—ã�¦åˆ©ç”¨ã�™ã‚‹ã‚³ã‚¹ãƒˆã�¯ä½Žã�„。 ç•°ã�ªã‚‹ãƒ�ックエンドサービスã�¸ã�®ã‚¢ãƒ€ãƒ—ターã�¯ä¾�然有用ã�§ã�‚る。ã�“れらã�®ã‚¢ãƒ€ãƒ—ターã�¯ã€�æ–°ã�—ã�„ãƒ�ックエンドサービスã�«ç§»æ¤�ã�™ã‚‹ã�¨ã��ã�®è‹¦ç—›ã‚’比較的和らã�’ã�¦ã��れるã�Ÿã‚�ã�§ã�‚る。ã�—ã�‹ã�—ã€�アプリケーションã�®ã�™ã�¹ã�¦ã�®ãƒ‡ãƒ—ロイ(開発ã€�ステージングã€�本番環境)ã�¯å�Œã�˜ç¨®é¡žã�‹ã�¤å�Œã�˜ãƒ�ージョンã�®ãƒ�ックエンドサービスを利用ã�™ã‚‹ã�¹ã��ã�§ã�‚る。 content/th/intro.md0000644000175000056700000000415415226251677013066 0ustar0000000000000000บทนำ ============ ในยุคสมัยใหม่ ซอฟต์à¹�วร์ถูà¸�ส่งมอบทั่วไปเป็นบริà¸�าร: เรียà¸�ว่า *web apps*, หรือ *software-as-service*. twelve-factor app เป็นหลัà¸�ารสำหรับสร้างà¹�อพพลิเคชัน software-as-a-service ที่: * ใช้รูปà¹�บบ **declarative** สำหรับติดตั้งระบบอัตโนมัต เพื่อลดเวลาà¹�ละค่าใช้จ่ายสำหรับนัà¸�พัฒนาใหม่ที่เข้าร่วมà¸�ับโครงà¸�าร; * มี **clean contract** à¸�ับระบบปà¸�ิบัติà¸�ารที่à¹�อพพลิเคชันทำงานด้วย นำเสนอ **maximun portibility** ระหว่างสิ่งà¹�วดล้อมที่ระบบทำงาน; * เหมาะสมสำหรับ **deployment** บน **cloud platforms** สมัยใหม่, ลดความต้องà¸�ารของเซิร์ฟเวอร์à¹�ละผู้ดูà¹�ลระบบ; * **Maximized divergence** ระหว่างà¸�ารพัฒนาà¹�ละà¸�ารใช้งานจริง ด้วยà¸�ารใช้ **continuous deployment** เพื่อเพิ่มความเร็วสูงสุด; * à¹�ละสามารถ **scale up** โดยปราศจาà¸�à¸�ารเปลี่ยนà¹�ปลงของ เครื่องมือ สถาปัตยà¸�รรม หรือà¹�นวทางปà¸�ิบัตของà¸�ารพัฒนา หลัà¸�à¸�าร twelve-factor สามารถประยุà¸�ต์ใช้ได้à¸�ับà¹�อพพลิเคชันที่เขียนด้วยภาษาใดๆ à¹�ละซึ่งใช้ร่วมà¸�ับบริà¸�ารสนับสนุนใดๆ (à¸�านข้อมูล, คิว, หน่วยความจำเคช เป็นต้น).content/uk/intro.md0000644000175000056700000000403715226251677013072 0ustar0000000000000000Ð’Ñ�туп ===== У наш чаÑ� програмне забезпеченнÑ� зазвичай поÑ�тавлÑ�єтьÑ�Ñ� у виглÑ�ді Ñ�ервіÑ�ів, що називаютьÑ�Ñ� *веб-заÑ�тоÑ�унки* (web-apps) або *software-as-a-service* (SaaS). ЗаÑ�тоÑ�унок дванадцÑ�ти факторів — це методологіÑ� длÑ� Ñ�твореннÑ� SaaS-заÑ�тоÑ�унків, Ñ�кі: * ВикориÑ�товують **декларативний** формат длÑ� автоматизації вÑ�тановленнÑ� та налаштуваннÑ�, що зводить до мінімуму витрати чаÑ�у Ñ– коштів длÑ� нових розробників, що приєднуютьÑ�Ñ� до проекту; * Мають **угоду** з операційною Ñ�иÑ�темою, пропонуючи **макÑ�имальну переноÑ�иміÑ�ть** між Ñ�ередовищами виконаннÑ�; * Придатні длÑ� **розгортаннÑ�** на Ñ�учаÑ�них **хмарних платформах**, що уÑ�уває необхідніÑ�ть у Ñ�ерверах та Ñ—Ñ… Ñ�иÑ�темному адмініÑ�труванні; * **Мінімізують різницю** між Ñ�ередовищем розробки Ñ– production Ñ�ередовищем, що дозволÑ�Ñ” **безперервне розгортаннÑ�** (continuous deployment) длÑ� забезпеченнÑ� макÑ�имальної Ñ�притноÑ�ті розробки (agility); * Можуть **маÑ�штабуватиÑ�Ñ�** без значних змін в інÑ�трументах, архітектурі Ñ– практиці розробки. Методологію дванадцÑ�ти факторів можна викориÑ�тати длÑ� заÑ�тоÑ�унків, що напиÑ�ані будь-Ñ�кою мовою програмуваннÑ� та викориÑ�товують будь-Ñ�ку комбінацію із Ñ�торонніх Ñ�лужб (бази даних, черги, кеш-пам'Ñ�ть тощо).public/12factor.mobi0000644000175000056700000114111415226251677013072 0ustar0000000000000000The_Twelve-Factor_AppSÍ‹SÍ‹BOOKMOBIs9$x+»4k@s%B{ñD„[F�]H–)J�ÞL¦èN¯_P¯©R¯¬T°¤V² X³ÈZ´¼\·8^¸ `¸ðb¹dºf¼„h¿xj¿”l¿¸n¿ìpÂHr—Ï MOBIýéäÍ-0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ T Pÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿEXTH<t õj2014-02-18T21:15:22ZdHerokum Copyright © 2014 Heroku 2AFB en horizontal-lr�kindle:embed:0005ƒ ,,€ôíì¾Ì ÊÍ Î 0730-890adc2Ï } y The Twelve-Factor App‚÷‚÷p�˜1> ‚¡‚¯‚¯…Ÿ‚¯ X¿ÈLog»÷¿¯¿¯¿¯¿¯‚I5¿¯¬Ìl‚X¬i‡n�Y­pm¾×¾×¾×¾×¼J¾ß¾ß0359“�…˜¾àAdm¶¢—¾ÿ¾ÿ¾ÿ¾ÿ¾ÿ36¢0¾þR«Xa‚¡/man«�¸yôask²â¦€-off¦¿¿¿¿¿ß/nav> T¼ðTwelve-Fac½ØÁpp½H�»‚—‚—‚—

Aô…Ûf…Û°Ñi½Hlways‚‡—8öer‚�ožhystem˜Èuch¾Ñ¼Èhref="http://git-scm.com/">Git¿ ,�?�ŠÑŠX½iŽÈ¯˜€ „`fte¿˜h¶hen‹xto�o�i�:ºÑj¨À‚B€¶.½¸>I�êˆÁˆàmultip¼àšÍs,ét'sî‰�a¯˜™(--€›‰°iªibut›È˜£.Å”xŠáp¤˜«Šó�G�­�’›¡²³e�²ƒŠPividually‚:€8ºÚ�o£@’`¹Ð…ñM…��ø´x�–Á—qsam¡ž²öioˆô˜qŸ×‚h ¦Asolu¶²‹-–Ø Ô‘ºdㆀÀ†odeéntoìibraries÷hichãanâ€ácludedôhrough€@e dependencyíanager.

Therƒ˜sïnly€(eã„ baseðerápp,âutƒA�@will„9‚xy ‚øloy�Ðf„2�X.Á <�, >II.Ę͛Most–!gra‹Ø—Èlanguœ™qŽø—ack–ystˆˆf–Ødistri›€–Úupport _,€˜“ÑsŸ‘href="http://www.cpan.org/">CPANŸY‚¢Perl™¹�§�£rubygems�¤R€|�Æ€‰.̤F�âll£ç†/†/¥>�e†ë-w�x (known™Y"ž©ˆes")ž¹s�¦È§ò¦±dir�XožHcontai¢ �å‚_"v§ or¢ð" é"bundl€q)œE<Š ong>Aôwelve-fšP¢@ !n¡Yòel«Q£hiš8�iš�ŒX©Ø¥Z†/…¯ª8‚ÄÉš™�Òž®’þ,›ñœØte¦Á¦(�Xc’`,öia¨Ð©|­E“a§É©û­ÈifestŸ@ur¬)§ñ, …us£¹‚¯K”»�þtoo¦�uˆù¡(ec’Ъ˜³ensu�Rat À‡Ç–³Ø™˜ak´€"ærom¦ ur³Ènd•Ï® eæu°Ð‡‚W³õspec©8c†Â°’pš ¶0u†èorm³Ð·˜both¯Ï‘@¯˜¬otª½§‡°¸˜O˜K–ˆ� er.§°˜XG£XB€“–חМC¬«<·™>III.ïèigA½À¥ŠžÁ�{žŠ·Ù¡G©Œs²k•i¬�vary®°¬ˆµÐ»æœHpos=X€ >¾Xloy˜Øº`(»hgƒ€€�À¸Á¡¸À‘ing,ðroduction,äeveloperånvironments,åtc).Ôhiséncludes:

  • Resourceèandlesôoôheäatabase,Íemcached, �ï€ðr back„àóervicesAppƒ°ometim„tor‚onfig„A€PstaŠ@‰à‚óodeŠusáöiolaŒ ïfôwelve-fac‚8,÷hi†prequirŠÀ€8ict‰par�Þƒœfromƒ"�ë/rˆ˜es.rbS„�)¡$typ�È”Ž’e“ùyŽÈ—Ž “† �so˜Yb’ádon‹9™W””p“‚p¥�¢X£!›,ƒ™£pu‘è˜?¢É“š†ñ„ ¤ck”XŽ0oš¨v‘˜�ûš°lŽŽŽŽŽ¦ý.ymlŽŽŽŸoŽug—Ø•‰veªñ €@r…ا�¡W…¿…Ÿª¤œúr© ,âš�sti›°›ñweakness¬àét'såasy¬Q˜ÐtakenŸ`ˆ ¤Aa‰?l˜È­{‚±;­É¦¤Òten«`cž(ªŠÇ¯ �s˜«øžèabžù§dif“jtðl—¸§¯x€¯ª8ma²™ma¯it± rd±‰seŸ°àmana‰ ¢i©s�#¨ð�È‚ª.Æur²,³1¡˜‚´…‚„Ülangu‚@-¯ñfr®work-specif™¸¦Äª�Tµp«ß®¦ª®Z®„¸ß–’iab·�qa¼×¼Ö.Á³ƒ´@j“a’ wsæ¤�Žež0ma–Hd¦ðhei˜€w �¤alŠW¯q�j³¯³¯³¯³¨jº8-†�³w�Ý¥Xultª²¯ mbina¦`ƒŠx»x·z¼Ï¸ë¬P½«²´)��µ½Àr¡º¼}I²!©—©”,‘¦granula±â»¿pe½Ùfu¢ ¬È¦gonˆx¾`¾ó© ¹™ 4n˜�r�˪Jg“HŸJœ?œ9,"¸‚iºea´ˆ¶!µðp¶t·à²Ãd¶b„2ªK¼ïa•de³±a•üsõ°(mo¦P¹èž°ÉЏur¨IŠÁ·˜q»Q——¾ÉiŽúf£R³£/s¥›€W> IV.Âac¹úServi»0A·‚�¯ƒbµÛ‰y³x‚Lž^½hsuª¡‡ê½ùnµ°»È¯�par¬Êˆ¡n½‘l ¯©a£q·Øxamp‹™inclu³¨data¼ (ŸŽaèref="http://©p.mysql.—p/">MySQLM€…).

    Back‚zervicesìikeôheäatabaseár€ˆraditionallyíanagedây�Rsam€(„„adminis�ˆtor€xs‚japp'sòunti�`deploy.Én�x‚Ãôoƒ±ƒxlocƒ)-ƒ-„Õ,‚Mƒøyálsoèavƒð…Õprovid„¸a‰8…†hirdðarties.Åxampl‡PincludeÓMTPˆЇЇЂpostmark†X.comŠ�P€”ŠŠ,íetrics-ga‰ørН‚¯�/�-newrelic‚”NewÒ€��!ïrޝެwww.loggly„$L€j„binarˆàssetŽ—‘‘‘aws.amazon†Šs3‘0A€‚Ó3†¬ŠaevenÁPI-ac‘sibleãonsumer‘Ï”O”O”Jdev.twitter‰ÌT€s”I,•Ç•Äcode.google‹Bapis/maps/index.html">G� Í€À‚;‰o‰o‰iast.f‚2‰h€k˜˜<•Xong>T—˜ƒÙ拸aôwelve-fac–8“´k˜ønoä–ð‘à•²be�Hˆð•ª“Ê“wyš®›hƒ4Ô—:˜��xot�Кðatt�Ròesour—j‹c›(via„€URL����‹ ™šð/credeš˜˜hó›xœ˜išP�è hæile•¨=X€ >�¸fig .Á�7�7�2�”#f jˆˆ}shoul ¡���øswapïut‰ðˆ{MySQL¢G�hïne¡ÿž8œ÷‰€¦g¦g•W•Wrds•_RDS¦’ƒƒúnyãhang¦p¢³£ü’Ò̧wise–à�¼ –xc†µ†qp§ …²…<-Ž»¡�ce¬ u„O’z„T§j�Šcª ¦honªH«A�¥¦pndšÐŽ�Sîeed†:†“­½E°0”Nâ®/„¢i¬8 ’…»¬RŸ=¾p¢! µÙde‚W¹Sº°t™øllŽŽiœëºëŽGsíisbe¸ð¾Ñduœò¶p��w¾iissu—ø¼Ç½§§imigh±øp¢Xup¨Xµ ž/™<¥H£ƒfrom‘ºc¤H”JupŽÃcurr€¡‰_ _›6‡e³K¿ ƒw¡˜¨Î--¿�lŸŸš÷« ®h/se¬²€W> V.Âuil„p¼¨e¥ €Hun«Ç¬÷¬õde©Y¿òž(Œˆns´€m®ÊŽ*(non-º�elopm¯à)–_rough€Ae¥ðƒš:·"ul>ôak£c�¬ Ó†7‹¿°ƒ‹ƒX´Ø‡˜¸’¤µ™¬¾¾¾¾©é±èul°(g„ÿ‘ù޹¿Xtain†Ð³±‰Ï›M³ £‘±€«˜dy®Òim“xi–1�;®‘´¤€�environ”‰7‰6—¥“(also‘"š˜time")šé‰Û¯±ƒ'ƒ'ƒ%,�¡launch·Bom¤Qt’e¾ûš·š·š±‘ì�­gˆ©“ÁsŸ ct²JŸj�|/™�¯ÿ¯ÿ03¯üC¾Ábe•À´±Ÿk³þ® �dŽû¾D¾¶¹¹Pƒ†°�‚—‚—‚—‚—‚—‚—‚—†µÛ®XongŸšºÿºý¾ s¤ ¥¡¥•½±be¼Pe�K†œ¨6¦W¦Q¹ƒ ´´zt³áim¦¸si é»hm˜ø­5»íŸÝ�L, ¡cµ(he´êîo÷a¼èo»9­Øª‘¯À¾9‚Lºá¾]¦‡ˆD¡×toolªHypic²y£ðfµúžCman°Ð�O,ío�àno¦é¤3abilit„rro´ƒÝa¶Èeviou™á’¼ï¼é¼Ñ¯H¬xf="https://g¶ub.§˜/cap»šno€_o/wiki">C€æ°Z¨Unƒ€€ÀÀ¸À‹tôoolótoresòeleas€Hináóubdirec€àyîamed ‚

    Eveˆà†5shouldálwaysèaveŠ0unique‡VID,ŠÈchᇙtimestampïfˆÊˆ�(�%‹—‹—‹—‹�2011-04-06-20:32:17‹ï‹î)ïránŽÈcrem‹ØingîumberƒgŽ÷Ž÷Ž÷Žðv100Ž×‚ï.Ò‘Õa�ƒ@append-onŠ`ledgƒ8‹�a�–cannotâeíutat’àonc�Ht�a… €™.Ányãhang�9st€Ì”ànewŒgŒcBuild„ initi‚ªbް“€„x'säevelopers”Yn€pr‚J–©”deployƒÁRu‰meåxecution,‚Qc—˜rast,…ñ�‡!áutomatical‘À™Ècš�'serƒIreboo�ØŒA‡ashš€processˆ8Œ�œtar…¿€þ•`aŠ.Ôšf�`,‘sun�؀ؓ݊xkepž©“f‰(mov�Yp‚À› sðossibl‚s�`ƒ€pmsœ¸at—BœÁŽæromƒ)n‘q‡¡cau�qƒ b�(k¡Qž‰middle–5night‹"îo‹¿�óo‰ÙnŽè†hâ�©†$Š©��¤X� plex…5erro�üšôƒÄˆagrouž`ˆ¸¥¨�&£poŽªriˆ£¹� �ë/s¦ÐŽÐ€W> <�, >VI.ÐŽ§�h2�w�q3�w�qE’R§óŠÙŸøon‰ˆr‡ƒ (t«è�X�œ‚š3£ >‰AŒq©(”ƒ¬H‹¼•ånvironžÙ‚çŠc‚·/€p¥ýI�ësi‹išù¯è’Ó˜�°0t©H-al…qscrip—øƒßƒßƒÛ®J›F› lo˜Èìaptop÷it§È¤1§¨l À€Èngu– –X¨i,¡:—ç´X‚ aunc™yvi©˜„ò­û±x©X�Éexª(–±µµµµpyth”my_†s.pyµo©‡.Ï–Óoµ€ƒ±h­sp¸˜rum…Xždu‘¡ë®A¹Ðophis ¡¦ÉšQmay ™Ù³°y Twelve-½@¿’ç­:“§¸Y„¨h¢à="http://en.wikipedia.org/€q/Sh¯d_­Øh²_archit¼¸ur¿ès€é-€ä„t„D®RdatŽ£@nee­X¿H¬i‰P®ó°hs¿–û“Òteful‰‡‰‡‰‚¾ñ¶A«iceˆ¨Àyp¬d hƒˆb½šRme£yŽ0ºH¸©ŒIsystem¼%¬­¤„§�¾ ½qbrief©Êgle-°XnsŠÀ ùca•.Æ”W,äownload»Qa˜r¶(�±°´±�¼¨`i²x¸Ù‡Ñ¥E°Hul­€ª|�„�i«s†Æª"t�'¿)­À¶Ûassum¼˜®Ò“À�š…[¢ ˆT´ˆ•ùisk�ll¼™availa±0­iaæu�½Øqu¡1¶job --žƒ–š’×°eˆp–*±å¹ˆ¾(·P¼òh°ð„¬‚߂ۄ ¹¢½ò®�iff·°´°¹t.ŵ(²û´íon»èª‰º”œéº| (trig¹øºÃ¿j¿S¾@onfi¶Ø´ˆgŒÉrª·ª·ª´r¶(žˆ²e�n»X…'ðhys”§Ê³)гusu”ªwš�ïu»‹X¨ë(e.g.,”ͨ”§)°Ó­�A³`½0—À¿¨º€(su‹X¿X�÷�ódoc�àntcloud.g«Àub.º¨/jammit/">J€J¡¡´)Ÿ÷Ÿó°.goo—H�ºp/dj­Xo-’¨et„ ‚8€¿€¿¤I)§z½›š2™b½r¿)¨8šñ†¸ŽÀA–g–fp¤¨‡Y§ødo¿ ¾˜�þ©du™¦ª¯ª¯¡*uilšñ¾¨¡ ‰��¬§¯§¨ryanb‘h‰Zguides/‡’_p¨P³y.html">R™¸ðŒ{€Ü¤žÐ±‰§8¦ ‘°¶Ã»•Some÷eb £›s’±•É«ÿ«ÿ«ÿ«þL¢€_ba¹°c«ù%28Š!¼8ng%29#Pªse›X">"´ k§P¿À½8s"�b�°¬i³¥±²´Èr�=­+ ÷·¬¶ ¾h¼¥½!ex¸A´  ÿ ùsærom¹Sa‡hvisi³áµø¯r—Ø¿¸¶`�ž¶S…‡…�µ"a¿ ol§ë¼¶§Y©¹hou�§“­u¹�pi»àupon‚І䷒‡®‰—d¯9di´Ø”£±«´:µ[o£ñ¼ Ž(-‡ i¬S’?¹Ç¹Ã³«¹ª">M€…›_»O“¢»s.ioœ R€Y¾?/s‹on€W> VII.Ðo¨ bi‡(¼©h2�— ><ƒ€€ÐÀ¸Á¸À‘h3álign="left">Exportóervicesöia €’binding

    Webáppsáreóometim�€executedénsideá÷eb‚qerãontainer.Æor�Xample,ÐHP‚[mightòuná‚Àíodule‚UA€jÈTTPD, ƒ8Java‚ÿ‚û‚Ÿ‚Ÿ‚˜tomcat‚§‚¡T€¢‚q.TƒXtwelve-fact†�ˆ€és‡@†ÁtelyŠ@lf-‡Åd‘\ƒzhost:5000/…ÈendencyŒclara“Q™q�:dd�Ÿ�˜librar‡è“߈,óuch� œ�œ‹www.˜0nadoŸ ™þ€ŠƒfŸ¨Python,žwžtŽQ.macournoŠ(.š(/thinœ€8‚RubyžÂ ‡ ƒjetty�¸dehaus ’€š ÀJ€Ù„ ‹œošX¡VM-bas¥˜languag‹X™Xž@h§en¦ œ¸�"–˜u¨ð “bacˆj½„›>a²À–é�Š�™rovi®c¹ª ²T‚ µÙ»ªresœ °¦3®9„¢¢}¾ figžþ´é¿8su°©i¹ª/s¶‹€W> VIII.Ãoncurr¥éA—À½‰ut»«hgram£n¸¼€,¾�repˆ°«�¿hmo˜Ð¬÷׺ӡ¹�Htake·Qvariet¾øf®U-½ï¨ˆm£hF¨Àe˜Ã,ÐHP¯§›š¼°child°_�!A·h�€staµ»`dem›ú xeedµ³¼´öolum¤X§êƒ…9¡Ëp±Hi•�”¬¦k¼Z©’•massi¤xu�0 e¿R‰A±È½q²Øg“¿Xk¢¢ystem’þs (CPU¬:meŠXy)††ju³ ©*©˜�}ƒ�n¬Ðd¬�@n·ºŽÃ‘àd­ˆ¼˜b®€§x¹X¬‘¥zn¼©º(es) ¦q©"¤¸im‚Šp¿ytwelve-fµ¸¢¡¿é”ß°Éa¤¨r’ðcl�ˆã¯°zen´à‚<ЖN¸´‚—‚””ƒ»ã¶àærom¾ï¾ìadam.½poku¿m/past/2011/5/9/½@ly¹�_¾ˆ_unix_µ _Ÿb_to_web_œñ²€¼ñ�) � ‰©º‘�ºda”àn± .Õs°ó½¢“3‘†»Rar�Xt§h¿i‡oªe�“e�¿X»ÈšXg•Je°a�¡¼!‘9ºÃ�—p¯(€ˆ¡·¡²HTTP»6œøy¿¡®¿ša ˆ½½¸³l�H-™%²Agrou½ðtask¦)�畚¨ó¿±¶ýTˆQdo¾`³h¦¾ƒ¶á³Xual¨ïŽ£²Š» ˆØownžvíulti¨x¾Ð,ž×‰insi‚¸žŒti¸ˆVM­³casync/�˜¬êŽM†9µÁoolsóu»¶Ø¾Ÿ¾œuby�Êm¼ine’Â">E‚aM€›¾q,”g”dtwi¦Xdmatrix”rtrac’ÈT€Ë�³¼(–/–+n³Èjs.org”0N´0.j’ÜBµ8¿ˆ‰ç‡ ’‚¥bŒÈwóoª”(¡°ti¶ðó·)°¾[˜1€Àºmu¯ al�¨�@a¦üsp•‹U¸{sƒ€€ðÀ¸À‹sesòunningïníultipleðhysicalíachines.

    Th€èrocessíodelôrulyó�2÷henétãom‚Ðtimeôoó‚Peïut. ‚share-notƒ�g,èorizontalƒpartitionab„ønatur‚�fôwelve-factorápp„õesíean„Hhatádd‡9mo�Ðconcurrencyésáóim‡Áandòeliƒ2operaƒ¡…»arrayƒ¡ˆtyp‰ø�™number€çй„èe‰è�2ƒ!knowná„iˆem>Š=formƒ:U€«�Ù,Œ°distributed“·‚Ì•xaãlou€ØlatŠ1,…Ña“�olìik“R‰O‰Hblog.daviddollar.org‰a1/05/06/introduc‰�Œ¸e†(‰tF€s’¢in䉰lopment)—‡s–×–×–Ò—Øput †heam”ÊŠAspo“x™crash‡es‡à”Hh”pœ`user-in—ðaˆA�À‰Á“Ëshutd’À�/sec™)€W> <�, >IX.Äi„Èsability€L¹á—ßs¡…(�¯'¯". ¨ðº web»õ,Ÿw¥»B‡0³€dâœHˆÑœ±o­`²àn²­§xv›Øð�(¹pre�x·€u�‚any‰â�­)±Hllow€å¾Ãt‘¯¬øf©øshª³»øn”@ªxng¶¸¿¸icŽð®¨tŸmœ l½�th ˆHTTP“ÿ£¹¸„¹n¯ “A�0´A˜G„�½ˆ‚ze£p‘ l¦ø†ˆl¡#€Òli ñœ­°À»8sºØatºHpt˜onn®˜ŽÖš`€Š­ù¤xlostŸMŒ$ork¾€Œ?«¯Œ?Œ?‘Qtur¨ý‰î›0¶¹¿!‚‘ œue�Cexa‰ e»`n¾§¾¤www.rabbitmq¾”R€zMQ¹Ò‚…™ se¸•‚7‚7‚2amqp-0-9-1-quick¾˜¼º#bšèc.nack"><ªq>NACKlogicalãonclusion.

    <�, >X.Äev/prodðarity

    Histor†ály,ôhereèaveâeenóub‚Ànti‡Øgaps€°tw€Éƒßt (a„Ueríak„0ìi‚editsôoáìo‰ñdeplo‡¨a>ïf„)ápp)†W‰Óƒ@runn‚ù�‹�opáccessedâyåˆusers).Ôhese…ãmanifestén‡Hreƒ0Œàs:Ž*ul>�¸ôim�Ò�€´Á‡W‡Py÷ork ލcod�€hatôakesäays, ‰Pk€8or �Hníonthˆ‚go„ ˆÀ�?’Pƒñ„„Šˆsonne‹ê„6:‘q‹{s÷‘xe„ƒH�en�0e€Ñ‰$it‚ç†÷†ðools‚ǂǂÆñbeŠ8Žqa’ñckްkeΓ8x,ÓQLƒÐ“{OS؇xhŽØ�ò“ÿ�UŒxsÁpach…@My�è•KLinux‡ì/Œ!š€Œ “hlve-fac•(�Bi†És™è�XfŠÐ’˜ŽXf="http://www.avc.com/a_vc/2011/02/�Ðtƒhous-“{™¹.html">€ç’Ôš™”z’pk›X–™”¹˜ ˜›÷›§Ÿ#smšx è‘½Loo˜²‘’ɓꚂ†`crib•Àabove”g”`M’X�ƒ”L‚Ã:šx›‡”2�&Ÿê�úit™,˜˜hou‘P”=ju˜m‹Àt•Hlater““׃ǟ7“¸ho“Øoƒ¾¡°closel“ˆnvo�¨d›9žË ‰„€¤Éwatch€ƒ¢i£Pi˜øœˆ¥—˜_ˆ•eˆŒ¡§ÿŒ§¯§¯§¯“G“ASumm«hzŽåŒ œÃaž8©( Óp>Tra¦P¯ °¤È€µ”ç”ã�u¡¹©G¦Ñs‚LW ‰‚¬HŒ©ƒ C�Úuthož�vs¢{�ü�.Diff¬ð«ˆpeop®„êSa¥0€—�Iev‚)°'¨ˆvi¦¸±I‚wverg—:‡"A±?±?ƒ%­Ç­Ç­ÁB ¨¯q«`vi¬¸¡´Puch³¹®D'¨yŠ€as¥queue�šystem¨êc ³žÐon¬£¢X´A·¸¯t¦Xsémpor´‘.Íany–ngu»0–øˆñ³Àbrº¬¤p„8·Øplify±´i²ùb…υɃ边dµÑadap˜À�¸€h¶ d‹ætypƒj‡¦.Óo±@exaƒP¯Ø˜Y³ ²’)ºHlow¯³(’²€8head€pr¾Èth>T‚˜DŒƒHƒÙ€÷€òRuby/Rail‚¹��öA¼veRecord‚ƒ">®¤Postgre¯±ƒ‹…B„Ï„Ï>Q�‘„·…§">Py˜�n/Dj�(o…φ¿">Celeˆê†¯†¯abbitMQ,Âean¶lkd,Òedi‡4„¯‰w‚¼µI‰_ŠO‰_‰_‹O‰_Sup•I::‚WŒŸ‰�emory,šÒ˜}€ ˜z‹4ŽüŽÃ/‘üŸ½Es“è±s�¼P‹à³(¹He¥`¬¾�Xhºh€1—ï�³•ti™èoc§¡ots¾­a …XeŸAi¹)¿¡rob²IšW‚kwill¹¿‰°¸·.Æ´™C,„Ô‘#ƒÓ±àºA’°Çº±;¶…»XžrmŠæ¢,³B¼Ï¼ÍЦ³G³D¦ë½4T¼Ñ®§¹x»7resisµ�½ñu©¸¢A‡ Ç¢—¨\°µ7µ7·JH€\¢â�ç�às�èhelp.ubuntu�ê•0munity/AptGet/Howto">½¸-get‚I.Ál¾ n–h©h«8declar€z¤±v’Po�²tool‰o…Ç…Ãwww.ƒ€€�À¸ÀŒopscode.com/chef/">C€8ánd P€Š�ª‚Hbined÷ithìight-we€9öirtualån€PonmentsóuchásƒOƒLvagrantupƒV€ƒ„Ëllowäevelopersôoòunìoc‚ÿ‚ûwhiƒcloselyápproximate €Pduction„�„ˆ.Ôhe†0stïfénstƒpingˆrus€QtheseóystemsésƒÀw‡Ápar‡À„`�âenefi‚*…H/ƒq �it„0ŠÀcontinuous†@ployˆq.

    Adapt†Ädiffer‰Xâack„Iservices ƒxótill„Àeful,ƒ¨ca€`…yíak‡0orƒ@… oîew‚'‚%relatiŠHy„ðinlesˆBut‹!„ÔsˆI†™‰ð (‹¶Ž?Ž8,„Hag‰8,ŠÇn)óhouldˆ`‰×óam…yp‚€“v�øŒ‹`ea�Pƒ\‡g‡cˆÓ/se�Š€W> <�, >XI.Ìogs‚k€H’yvide—(sibil�Ain�fhavior’‘a•Qn’Špp.ÉnŽ‚er-bas™°˜ç˜àŽ:�1œðmon–w’ten—‰aæile •ødisk (a "…€€¡");âŽth”à”ø�Òa‹ utpŽÐfor˜“eˆy’R•©ŸwŸsadam.heroku¡past/2011/4/1/ˆù_— _ˆÔ_not_„©s¢0‰s¢B‡±ggreg›¸d,ôime-ord–°‡€ŠÙs¡°llŽà¡¸fromš …t‹´‰Ú—P‰íž@˜s˜1¥0˜ß‘|�2�ð�airòaw‡º‡Kypi¡@ yôexˆ�¥‹one�|—ŸÈe (t–0ghœtra›Ñ…*excep¢s›Xyóp‹multipŒ¸�Ñs)„D�ðeîo�ˆx¨Èbe™H���enˆ��if¢+ ± ¨¥a¢Á£Á�B›êŽa§€�ˆng¡e<”¸�8>Aôwelve-fact“X�in©r£Ycer…0it¨(f¬Ër�h„s�x™ø§z¬ˆ‹Ç—p¤�ƒɘž{�8á”8mp“ o”¢£˜o†yman‚Y”LªhIªea�°žò�÷�ò�Û„Ê›'› ,õnbu§Â‘�o <µ!>F€‚¨™)½âavail‡‚Š™­rpurpose¬íŠ8³ï”y‹á®P¼Qc®�ºÈ�¿°‹,¢±watch²pvi³xea¤ »¡ƒp¨™§±•Ó.Íos¶È¹if¨ ntly˜»—ôƒ$s·ù³šŠindex�ퟀlys™�yŸHm Ч²W²Qwww.splunk²J">S€j±…’açen¦Øl-ˆäata†Hre«ðs®êƒ�·µg“Ðe.a xhe.org´Hadoop/H€È´A”µ…S¾Èl«™–q´à¿ppow¯˜²yf�X¾-—q¾Hr£Pµ—£Ÿ¾¼«9¶¹,¿ clud¾ø:»ul>

  • F‰ µ‚ ‹Q·½¢ôº¹¼€�H�iLarge-sµe„Ðaph±Z£°r±h•¿ŽÈquœÀ‘¨µP¤P�ø)‚7A¢ð³°‚(r…³cc» ¹Ù­˜u¹H-dežè¼he©Ÿc˜Ÿ“"�Ñ÷he¨qu�øˆ‰¾perrošƒÇ¸be„èa ³X“H»Ére±€ld„¥/ˆa/sŠ)on€W> XII.Ád«È²-es¶°Ðm¨Ê š½½jrra‰R…&¾ “§Ù‹à«2do±w�(gularâ—Y¸Ñ¤îh¬àl½Qweb�ž¢¾yº�» Separ¯°�鶆ºè¶‰oftŽwishƒ¤‡uˆ‚�¸�È‘A½â—@enan©@ˆë¤»±$©t–Ç–ÀŠÈ¾‚�aba¯�mi•�±;(e.g.½×½×½×½Ñ®#.py¢ncdb¾'¾&¼)Django,‚‡‚‡‚‡‚�rak¾°b:„SŸÈ‚‚Ò«Ðs™w†N–·o´°(alsoënow«x–ɱ7¦“en.wikipedia£Š€q/Rµ8-e¸ -pr¡¸_l¤”EPL±šshell)»)�ع€biŒry½Àd»¢·H£9�×¼0del¹¨gš¨­`¿álžÉ‹�®$lˆøu¸h²rovi‚pa ƒ±ºY‘0�2¿y�rprº±0ithƒ€€ À¸Á”¸À’outányárguments (e.g. python<€ Runningïne-ti†hscripŠè…ùitted‡8toôh†èpp'sòepo‹ß‹ß‹ß‹ßphp‚�/fix_bad_records.€àŒ§ŠÏ„Ü/ul>

    O„¸offádm‹pproces‹ishouldâeòunŒIa€0d�°icalånviron‘1ás…âregula�€a fil† s=X€ >long-‚`ˆjƒF,—é“äatabŸ`íigŸ‰‘”D…ð¤G¤G¤Gƒ�ƒ‹rakeäb:‚S�w¤ï.Ìikewis‡¨aЦ"˜ ƒÐm’|Virtual—p„GŽ�Pv‹Ðor�à¨ï¨ï¨ïˆ1in/©©£÷˜­bo‘p 9Tornado‹ùserver•r¬Ù¬_¬_¬_¬X¨ˆage.py¬w¬wŸ'Ÿ"“Nwelve-®¸t­€stžÈgly¯8vorsìangu‚ s÷hich¡v H¬HREPL¡@e’ˆ±Ùž4boxŠ€¬¸�{mŒAit �Py—Ñ¢q¨Y£¡¨T.É�élo¢Ñ–¨lo¬hdevelope„invoŽh�µ¥W¥S•@‘Ði§°›±„q°Í¢…Qª×check·9�{oryƒä§Àduc�„„c§à” ssh¶‘�8Œ˜remo´/—2uŸ"m›ðanism‰]ª0‡Ø¡q†ë¯�wªW¢�ˆûsu‹8„¢¬a {/s†ø¢€W> ‚€ÀÀ‡INDXÀôýéÿÿÿÿÀTAGX, @18IDXTìINDXÀ ÿÿÿÿÿÿÿÿ00oõÚ€€�Œ01Çÿ–�€��02&ÆÛ¢�€ŽŽ03>¡ù³�€��04[š©¿�€��05rÃÜÔ�€‘‘06 Ÿ£ë�€’’07ÂÉù�€““081‹é‹�€””09GôÏ��€••0A`Ã%�¯�€––0BÒÂÂ�€——0C”»Ë�€˜˜0DóÓà‚�0E&÷ª—‚‚0F>Í̓10[Ïôã‚„11rú¥�‚…12 Íõ·‚†13ô—ꂇ141½·‹‚ˆ15H¦�«‚‰16`ö$Ü炊17û™¨‚‹18ɆĂŒIDXTÀÍÚçô*9HWfu��™¥±¾ËØåòÿ•The Twelve-Factor App‹I. Codebase�II. Dependencies‹III. Config”IV. Backing Services–V. Build, release, run�VI. Processes‘VII. Port binding‘VIII. Concurrency‘IX. Disposability’X. Dev/prod parityˆXI. Logs”XII. Admin processes¶One codebase tracked in revision control, many deploys«Explicitly declare and isolate dependenciesŸStore config in the environment¬Treat backing services as attached resources¦Strictly separate build and run stages²Execute the app as one or more stateless processes Export services via port bindingŸScale out via the process model»Maximize robustness with fast startup and graceful shutdownÀKeep development, staging, and production as similar as possible›Treat logs as event streams¯Run admin/management tasks as one-off processesÿØÿàJFIFHHÿÛC   %# , #&')*)-0-(0%()(ÿÛC   (((((((((((((((((((((((((((((((((((((((((((((((((((ÿÀE†"ÿÄ ÿĵ}!1AQa"q2�‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2�B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ú¦Š( ¼·Çÿ|à�Môë뛫íB3‰`°ŒHb>ŒY•AöÎk²ø…ªÍ¡xÄ­·úû; §�ýåBGë^Kû)ø;GmüIwgÞ¯ªM3És:uU‘�('§Ý$úæ€;ï†ßü-ñ ˃u*^Ä»ÞÎé<¹Bú€ } Åw•ç?tñ'Oñ–œÒé—¶¼¼j±Ç;r2ÃÁ ã­r~*ñß‹|WñBóÀ¿n-4Á¦Ç¾ÿU¸ŒJTñ•U Ž Ó“ž€P¹Ñ^¡x߯> ø™¦x;â-ݦ­i¬ Xj°B!mùÀVPë�Œq�rj?øßÆ^0ø±{à�‡·Öº<T{ﵡY˜‘Œ€¬À,;òr(Ñõ¯ˆšN‘ñGð]ͽójš¤>|2ƈaUùøbX0?»nŠzŠì«å O‰£ýª<iã)-.u Kcw–ɱn¢Û;+•þË@ã+]f¡ãïøïâ¹ ø/[Ó<3¤hŽažþéY'�0ªüc*߀ÎyÅ}Çj’{s\oÂÿˆzOÄ�ïRÐíï ‚ÚàÛ:Þ"+ ­‘µ˜c ;×ð§â·?�uxÒâÆ÷V³‡íÚ�–\Ç€p@à0ë4Ž23ôü{µá >.júçÁ¯ø“V¶‚çTÐüÕýÐÚ³íŒ2’N¼ãÒ¹ø»â�‹t‹MwÃþ2ðýõô—eðóÅF$ÜG,pÝ9À9Áà“Å}GExÿÆ_‰:Ç…âðæƒ¢ÛÙGâ½tªžLÁi’6N7 Ä€O`N;W%¬xßÇ? /´›ÿø—Hñ^ƒy:ÛÜ­¼qÅ-³NWhäúcŒŠú6ŠDu‘ÐåXdQK@Q@Q@Q@Q@Q@Q@Q@g޾'xOÀ·ÖÖž'ÔÚÎââ3,J-å—rçÊ)‘XZÇ¿†÷÷)^$�ŽžÚh—ñf@ç^uñþÎÛQý þÙßÛÅsi?—°Ê�‘ÔÌr<^£âOƒ>Öô›‹1á½6ÊYˆî,àX^6Ç ã8=�èQH“D’Âë$n+©È`z{Šu|½ð3âhðwÁŸI®.ãðýçÙ­c݆“Ìû±ƒØn }†}+ ºñïÅÝ+ÃcÆ:§‡t'ðøAq%„r8ºŠÎârGç¹ÇZúŠð�Œ?¯ôø?Ä^ŽÚkmi˜²\Ä]‚€§hà 0$ƒÖªø¯â?ÅÙÛxŸÄ^Ñá–EYÛÌÍsn­Ó{tÏМŠõïøÛAðMµ¥Ç‰/ZÒ+¹¼ˆH…äÜøÎ>Pqø×G_5þÕÚ�¶µà?j–,ZÖòþ9â'®Ö�#?�w~&êšG‹tïx#K‡SñEêy¬g}°Û'8-޼zŒ¨ Y¢¼2‰¾2ð_‹t�⦙¥­Ž¬þU¾§¦3yhù ž¤g§\óÍoëÞ<ÖtŽz/†5´>Öm‹ZÊ#"E˜ –Î#ÓøÅz¥å>>Ö®þ?Aà½;C¤ZÙý£Q•ã- ;K¬ÞŒt=Mr“|Sñ׋‡ž+ª Š( Š(  ZÞ›±£ßi·c6÷p¼öX�|Ãá_xÃà4^×¼/u­h‹;Éc{jHRäàí#®$õÍ}WE|ãà ¼oñCâ­—‹u+[ÿx_LM±ZùŽŸiêBž›òpXãS5huo„?5ÏI¢ßj¾×�ù³Y&÷·rCGûÀõÀ õ⾑¢€>l�õOŒÿ<1®Yè·úg…¼:þx¹¾�Ëiä z’¨0 À“Î)š»ê>:ë^(¼Ñïõ/ x‚2 öQïh\•bõOŒƒÅ}-E|¦ºæ§âÿÚÁºÜú£¦i¦Ü¥ŸÚâ*ïY°ì?‡,[Óµ�âé ø›â)þ!ø;R×¼;©Ü5Í•ý‹I˜K31R”ó`‚sÀ#ƒ_bQ@ðCMðU߉nu? ü?ÖôQm¬:�ì²lpÃv¼‡Ÿ ?…yÇìëã»ß‡^Õ¿¶ü5¬Üh·7e£º´·Ücœ"åN0Ûƒìzר”PÎÿ4Ok^#ñßÄ9¬IºÖ­Þ * �†ÏY�ì F3Žyí^iàUÑl õ·�<â/xù®`¸G–9I<“€3Ôá³_iÑ@/~Î+¯h¿ xšãÁž×uí6^èöâcOYÊðïÞå;‰ ò’9Ï>µGL¶øQ¬j6v:/Â�]ÜÊÁfS$è!÷É—|W×TP �b‚8ÑJ¢(P¤ç”ú( Š( Š( Š( Š( Š( Š( Š( —¿i]j×ß>ëâV´±�n%ÎUf$à9ükoZý¨¼9&Ÿ,~Ò5›ÍQÔ¬1Ë¢î#‚Hf'žÀW¿]XÚ]°k«X'eHÃ?dm�¼�ಶ‰ÇFH•Oæ|¦ßÑe<0˃Àa?­müF–†ÿ´%·�5+;‹� ê6‚Ö{ˆP¿ÙØ S‘ÿSî ÇJú"æÖÞéT\ÁÁNTH�°}FjI#IQ’DWFà« ƒ@.|Vñ=ŸÆïøcÃŽæúÞÞì]^jŽ8W¡ûÀ'·85ÝþÔÚ\ãÂ:WŠtôÍÿ‡5¯‡Q`ðÜþì–Ö¶öªVÖ¡SÉ P*ó�žñߌ!:†¯4{?^@©{%Æÿ´nÞKÀ#i=^höh‚MzãÅ¿o!)>»|ÑÛê�GÐgë�ÿ¯-ñ�ÇÃíwÆ:ùñ݆«à?Ã7Éqh^u¹ãï�>£‚s_SøÃVÞðŽ— Ù¹’+(D~a.ÝY±îI5¯sektTÜÛA1^†HÃcó ý”u_ø[½Õõî… È�Iº½R$‘íÝrq�œdà’3Å{­"*¢…E  `0-QEQEQ^ñ'ã>¹á߈²øOÃ~}rê+t˜ùr1vÈÜpª§€æ€=Šùãþ/ÄÏú$š—ýó7ÿ£þ/ÄÏú$š—ýó7ÿ ¡è¯ž?árüLÿ¢I©ß3ñº?árüLÿ¢I©ß3ñºúŠùãþ/ÄÏú$š—ýó7ÿ£þ/ÄÏú$š—ýó7ÿ ¡è¯ž?árüLÿ¢I©ß3ñº?árüLÿ¢I©ß3ñºúŠùãþ/ÄÏú$š—ýó7ÿ£þ/ÄÏú$š—ýó7ÿ ¡è¯ž?árüLÿ¢I©ß3ñº?árüLÿ¢I©ß3ñºúŠùãþ/ÄÏú$š—ýó7ÿ£þ/ÄÏú$š—ýó7ÿ ¡è¯ž?árüLÿ¢I©ß3ñº‚ÿã�ÄM>Ê{Ëï…wÖö°!’Y¥ó•Q@É$”à ú:Šå>ø´øëÀz_ˆšÐYµà“t÷…)#!ÁÀÈùsø×W@Q@Q@Q@Q@Q@‹ãmløoÂ:Æ´°‰ÚÂÖK�m¡Ê© gµx&‰ñ·âf»¦Å¨hÿE匹òæ„ÈÊØ88?PhéZ+ç�øZß?è–ËùIGü-o‹ŸôKeü¤ ¡è¯ž?ák|\ÿ¢[/å%ðµ¾.Ñ-—ò’€>‡¢¾xÿ…­ñsþ‰l¿””ÂÖø¹ÿD¶_ÊJúŠùãþ·ÅÏú%²þRQÿ [âçýÙ)(èz+ç�øZß?è–ËùIGü-o‹ŸôKeü¤ ¡è¯ž?ák|\ÿ¢[/å%ðµ¾.Ñ-—ò’€>‡¢¾xÿ…­ñsþ‰l¿”•›¯üuø�á»}¯ü<[-á ³4ˆ¤žƒ>¼úfŠ«¤^ GJ²½T(·0¤ÁIÎÝÊ?Z(ÕRHÁ#f=@ _<ÛÿÉç\ÿØ(襬ÍãÇ�üF÷’xgÀ1j–ó‹ÄîÛO`HïŠåã¿ø¢Ÿdñàø{roÛìßeÚÞXBç=sÅ}ƒE|ñÿ WâïýöÿÈŸãGü-_‹¿ôKÛÿ"�}E|ñÿ WâïýöÿÈŸãGü-_‹¿ôKÛÿ"�}E|ñÿ WâïýöÿÈŸãGü-_‹¿ôKÛÿ"�}E|ñÿ WâïýöÿÈŸãGü-_‹¿ôKÛÿ"�}E|ñÿ WâïýöÿÈŸãGü-_‹¿ôKÛÿ"�}E|ñÿ WâïýöÿÈŸãGü-_‹¿ôKÛÿ"�}E|ñÿ WâïýöÿÈŸãGü-_‹¿ôKÛÿ"�}\oÆù$¾0ÿ°UÇþ‹5åºÆÏ¯�¼?áïø2-%ui„HÌq¸ÁÁÅz—Æù$¾0ÿ°UÇþ‹4Î~ËŸòC<7ÿo?úQ-z­yWì¹ÿ$3Ãöóÿ¥תÐEPEPEPEPEPñŸþI?‹ì?þ€kœý—ä‰hY¿ôk×GñŸþI?‹ì?þ€kœý—ä‰hY¿ôkЫQEQEQEQEQEQEW†þØŸòHÇýÃüš½Ê¼7öÄÿ’F?ëþäÔë~ÿ‘GDÿ¯?ôZÑGƒ¿äQÑ?ëÆý´P½GsÿÒÿ¸•p¾ ÉðÛÁ±ëPØ-ü²Ý¥ªÄòlPYY·ƒÙç^f>3|J¸·Ì nÚ9*ÀÊAp~íMûȳâ�û ÿìµô5|uð�]ø‰ðãMÔ­-~ê7Âöçí¤IiÆ1šïár|Lÿ¢UyùËÿÄÐÑWÎÿð¹>&Ñ*¼üåÿâhÿ…Éñ3þ‰Uçç/ÿ@DQ_;ÿÂäø™ÿDªóó—ÿ‰£þ'ÄÏú%WŸœ¿üM}E|ïÿ “âgý«ÏÎ_þ&�ø\Ÿ?è•^~rÿñ4ôEó¿ü.O‰ŸôJ¯?9øš?ár|Lÿ¢UyùËÿÄÐÑWÎÿð¹>&Ñ*¼üåÿâhÿ…Éñ3þ‰Uçç/ÿ@DQ_;ÿÂäø™ÿDªóó—ÿ‰£þ'ÄÏú%WŸœ¿üM}E|ïÿ “âgý«ÏÎ_þ&º�ƒ?µ/x›YеÏ�ûNˆHÉæ– îÁVR‘@ׯïù8o…_õÔèÑ^§ñŸþI/Œ?ìqÿ¢ÍygÆïù8o…_õÔèÑ^§ñŸþI/Œ?ìqÿ¢ÍsŸ²çü�Ï ÿÛÏþ”K^«^Uû.É ðßý¼ÿéDµê´QEQEQEQEQ\·Š¾ øOÂ�¿·µëYGü±ó7Ëÿ|.[ô¯9¶ý ´ïø¢ËÃþÑï5kÛ§ 'Ÿ÷Æ¿Äç«£$ð>´Þ|gÿ’OâßûÏÿ ç?eßù"ZÖoýõÑ|fÏü*_nƳ&Î?Ü5ÎþË¿òD´¬ßú5èÕ©‚�˜�Û“K^û^˜ÇÃ�Îì‘ rß{) …Ù.HÇz÷êA!†Sž”�Ðç §žkå=At›-oâu—€îo ¿…$žèC9š»#ƒ¸“óÉ<õÎzT:Ÿ‡ôýá_˸Ò[M#]–Í|Ix²¾d‡ª»gåA¹†PÖa�]À‚¾¹¬ñv’¾4O Ÿû]ì¾ÞaÙäî+�Ý3�x¯–(_ÁãØ&¸¹o ZËqÈÑï}±g FNlü׫~Ê÷wŸ4–ºšIš9g�YÛq $l ú õºðßÛþIÿ¯ø“W¹W†þØŸòHÇýÃüš€=oÁßò(èŸõãþ‹Z(ðwüŠ:'ýxÁÿ¢ÖŠñÏÛCþIE�ý…áÿÑSWµø{þ@oý{Eÿ  ñOÛCþIE�ý…áÿÑSWµø{þ@oý{Eÿ  ¿EPEPEPEPEPEPEP_<|!ÿ“™ø™þïþεô=|ñð‡þNgâgû¿û:о7ÉÃ|*ÿ®£ÿFŠõ?ŒÿòI|aÿ`«�ýkË>7ÉÃ|*ÿ®£ÿFŠõ?ŒÿòI|aÿ`«�ýhœý—?ä†xoþÞô¢ZõZò¯ÙsþHg†ÿíçÿJ%¯U Š( Š( Š( ¼+ö³±ÖÀé¬hþ!¹Ó¡´`—6iqå-ʱÀ#%‡¦yô®¿â׎áÝ¡ŠáþݭȹƒN„üìOBçøWëÉì y�…þx§â®±Š>.M-¾–§}žˆ„¦ôÈpãǾ(äbÌY‰,y$õ5÷ì³ðÏþ �wW·Ù®j¨ûÐ[œ_b~ñüj̇ötÓ­þ1ìÃ#ÂH¿j$ä¬ã¤xþæ~oÃm} 8Æ|gÿ’OâßûÏÿ ç?eßù"ZÖoýõÑügÿ’OâßûÏÿ ç?eßù"ZÖoýôêÕÅ|Wð/ü'úŸ§h}ƒìš„WÞg“æïØmÆáŒîëíÒ»Z(> I‚ÖêÚ .Æ;k¬›ˆ’ÝMž»ÀlûÔÇN±:pÓÍ�·ØÅ·”¾PAÑvãöÅZ¢€)ÛiZu®œl-l-!± ©¶ŽXÈ=FÐ1ÍAcáýO�&°ÒtûY’3 I ²#,dä  p¹9ÇJÓ¢€2"ð΃ #C¢iq²L.­¤`¬££Ž8o~µf=L‹S}J=:É5k¥�D¬= ã'ó«ÔPCxgAhg…´M,Å<‚iPÚG¶Ipì1Ëry<óVoô}3Q¸‚}CN³ºž˜¤žvŒÿ²HÈü*õQ4Ûõoã²¶[é�G%ÊÄ¢GQŒ)ldŽÔí7O²Òí×L³·³¶RH†Þ%�<’*ÍW†þØŸòHÇýÃüš½Ê¼7öÄÿ’F?ëþäÔë~ÿ‘GDÿ¯?ôZÑGƒ¿äQÑ?ëÆý´PŽ~ÚòJ,ì/þŠš½¯ÃßòÓëÚ/ýWŠ~ÚòJ,ì/þŠš½¯ÃßòÓëÚ/ýPñ›À:‡�ô{ =/^“E’Ús+JŠÍ¼Æß•–¼/^ø%uá÷…5Ï‹Ñéí0&1r^2àuÆf稯­«Â¿i˜<æh7?†²[GkýœW§Ê[v P”ÿµ°ÿ¢å§ÿßãÿǨÿ…kaÿEËOÿ¿Çÿ�V.~ÿwÆ?šQŸ€Ýñ�攵ÿ ÖÃþ‹–Ÿÿ�ÿ£þ­‡ý-?þÿþ=X¹øýßþiF~ÿwÆ?šP§|%Ñ4Oø´k—Ž/W€@ðý™î6Œ¶0Ù2Æ=+Ú¿ádø+þ†½ÿükæÏ‡¾ ø/ãÏ�C)f&›3Ȉ»WçžkÓÿá˜|ýígÿ×ÿˆ F�â7ƒ$‘R?èÌìBª‹´$“Û­uuâV¿³G€í®až6Ö7Äá×7C#økÛh¢Š(¢Š(¯ž>ÿÉÌüLÿwÿgZú¾xøCÿ'3ñ3ýßý�hß¿äá¾×Qÿ£EzŸÆù$¾0ÿ°UÇþ‹5埿äá¾×Qÿ£EzŸÆù$¾0ÿ°UÇþ‹4Î~ËŸòC<7ÿo?úQ-z­yWì¹ÿ$3Ãöóÿ¥תÐEPE‘â¯éÑåÕ5ûèl¬ãzCËî¨êÌ}k;*#;°UQ’IÀ¼â?Æ›ÝOX>øGnumrS²Kø”Ôt{Ö‘m¯ {y3† Ã�zð¥ý•¼4£ âx@Ñý’€>„ócÿž‰ùŠ<Øÿç¢~b¾}ÿ†Xðßý zÿý÷ÿGü2džÿèc×ÿï¸ÿøšú Í�þz'æ(ócÿž‰ùŠù÷þcÃô1ëÿ÷ÜüMðËÿ¡�_ÿ¾ãÿâhè/6?ù蟘£Í�þz'æ+çßøe� ÿÐǯÿßqÿñ4Ã,xoþ†=þû�ÿ‰  ¼Øÿç¢~b�6?ù蟘¯Ÿá–<7ÿC¿ÿ}ÇÿÄÑÿ ±á¿úõÿûî?þ&€>‚ócÿž‰ùŠ<Øÿç¢~b¾}ÿ†Xðßý zÿý÷ÿGü2džÿèc×ÿï¸ÿøšú Í�þz'æ(ócÿž‰ùŠù÷þcÃô1ëÿ÷ÜüMðËÿ¡�_ÿ¾ãÿâhè/6?ù蟘¯ý°�á ÊOÛáè}š³¿á–<7ÿC¿ÿ}ÇÿÄÒÙ[Ã-�'ˆ5ç\ä‚ÑsÿŽP·ø;þEþ¼`ÿÑkEhiö‘XX[Z[çÉ·�bLœ�ªü៶‡ü’‹û Ãÿ¢¦¯kð÷ü€4ßúö‹ÿ@⟶‡ü’‹û Ãÿ¢¦¯kð÷ü€4ßúö‹ÿ@~²õÏèºøˆkºFŸ©rc–É6ÌõÆàqœ Ô¢€>lø·ªiÞ ñgöV‹ðƒDÖ-~Γ}¥4 Fæ'+òÆG�qð°þˆF‘ÿ‚“ÿÆ«×>,Ãñ�ü\Çáì�.‡ä&µ¸>g;¾ÿ>•Æ}›ö’ÿžÖ¿÷Ý¥rßð°þˆF‘ÿ‚“ÿƨÿ…€ßôB4�üŸþ5]OÙ¿i/ùíkÿ}ÚQöoÚKþ{Zÿßv”‡£üWÔô[ϵèßìì.¶”ó­t÷‰öž£rÆ+wþÇôMî¿ïÜÿüE'Ù¿i/ùíkÿ}ÚR‹oÚG#3ZãýûJ?á¡|qÿDÞëþýÏÿÄQÿ ã�ú&÷_÷îþ"¾˜³ó~ÉÚ×ì_3ýìsúÔ´óü4/Ž?è›Ýß¹ÿøŠèþügñ_‰¼c§i§‚.4ÛK–*÷M G…'<¨«Þ¨ Š( ¾xøCÿ'3ñ3ýßý�kèzùãáüœÏÄÏ÷öu |nÿ“†øUÿ]Gþ�êÿä’øÃþÁWú,×–|nÿ“†øUÿ]Gþ�êÿä’øÃþÁWú,Ð9û.É ðßý¼ÿéDµêµå_²çü�Ï ÿÛÏþ”K^«@Ù"�¤‘•ff8¤šðˆ?õ-wYüµmSV|¤Ú’.è  Bxãûçå³@¿Å¿‹º'ÃÛ_³±†¿(Ät-—Éè_uSØW›øWáw‰~(k1x«âüóEe÷ìôHÉ@«ÔÀ¾ßx÷"»/„Ÿ,<)t5ïÎu¿L|É.§;Ò=vg’ßí}1^Á@iöVÚu”6vñ[Z¡#Š% ¨£ TôQ@Q@Q@§Åmjóÿ|C«éŽ©{ihòBÌ»‚·cŽõá o�-ð͆»¥ø›J[+Ä/™Q_ŠòG¸=ëÙ¾<ÿÉñoýx?ôª_³‡ü‘? × ?ôkÐÿ÷í ÿC>‰ÿŽñª?áý¡ègÑ?ñÏþ5_DQ@;ÿÂ=ûBÿÐÏ¢ãŸüj�øG¿h_úôOüsÿ�WÑPÎÿð�~пô3èŸøçÿ£þïÚþ†}ÿÿãUôEó¿ü#ß´/ý ú'þ9ÿƨÿ„{ö…ÿ¡ŸDÿÇ?øÕ}E|ïÿ÷í ÿC>‰ÿŽñª?áý¡ègÑ?ñÏþ5_DQ@;ÿÂ=ûBÿÐÏ¢ãŸüj�øG¿h_úôOüsÿ�WÑPÎÿð�~пô3èŸøçÿ®Sâ.½ñ·áΑm«ëþ"Ó&µ’å`T†4rX‚Ü�,q…=ëë:ùÿöÔÿ’e¥ÿØV?ý-{Ýœ†kH%ltV8õ#4Tzgüƒm?ëŠ!Exwí¡ÿ$¢ÇþÂðÿè©«Úü=ÿ 7þ½¢ÿÐx§í¡ÿ$¢ÇþÂðÿè©«Úü=ÿ 7þ½¢ÿÐCâhÞ·Š}{S³Ó¡•¶#ÜÊ# ØÎ=ëÅ>5ÉáˆÑéKcñ3GÑÍ“HX¥Â·™»o£Ž˜ýkÔ¾#ü>Ñ>!iö¶^"[“ ´¦Xü‰vÄc“ƒÚ¸øf_‡ßóÏUÿÀ¿þÆ€<×Ãßÿá$Ši4Š‘j1ÂBÈÖÊÒ' 8—ŠúsÁ$žðŽ“£Ovo%²·XZà‚ „wÁ'ùÖOÃo‡:û[Û­ÐŽñÖI|ù|Õ p1Ö»(¢Š(¢Š(¢Š(¢Š(¢Š+ç�„?òs??ÝÿÙÖ¾‡¯ž>ÿÉÌüLÿwÿgZwÆïù8o…_õÔèÑ^§ñŸþI/Œ?ìqÿ¢ÍygÆïù8o…_õÔèÑ^§ñŸþI/Œ?ìqÿ¢ÍsŸ²çü�Ï ÿÛÏþ”K]ç‹|O£øGE›Uñìv–qŽ­Ë9þꎬO ®ö\ÿ’á¿ûyÿÒ‰kæÿÚÆMe~-Ê5C °Fö #™"òð!HÀù�Ü9ä{Šô+�WÆŸ´%óÙh©7‡<íšåó¾çŽ1¸ÿ²>QÜž+Þ¾øBðŠšv�h±ä5à Ë;yÛút«Âü+ñÆOØÝxjO jÚKF>Ïö%ShìÉŒtÇ­QãO�6ý?Àº}ÐóÀƒŸûæV ¢(¯�Ûã7Ä«!�KáUöÑÕ£�ÿ ŒþÒw¶§n©ð÷X�‡R$?Ö1@FQ_>ÛþÔž\ GC×-O|F��Í…kÚ~ÒÿgÇ›q©ÛgþzÙ“�ûäšöº+Ì,þ=|6ºÆÏÅô–Þdþi^=û@ühšÏÄþ»øsâXå†+y À·a$NK ,ˆx<üŒñ@XQ_4|>ý©4ëï�ôö°”àÛ@dˆŸVO¼£éº¾…Ð5Ý+Ä:z_hz…µý«t’ ¡ÇCìh•øóÿ$wÅ¿õàÿÒ©~ÎòDü-ÿ\$ÿѯW~<ÿÉñoýx?ôª_³‡ü‘? × ?ôkФÑEQEq×Å_èºäšF§®C ìN±Ê<©8˜ô RŠ~¤PoEyµ‡ÅíëâF«á7ó-Í„d›¹QÄnê¬ò íªª“¹ˆ¶xη‡>'øCÄz™Óô�ad»òÚUY`’"/VFu€ðOÐgEp_| }iei¯G5ÍÝÚÙ[ªÁ.%•ŽÑ´íÁ\ñ»îûÕ-'âÞ‡™u{âmFÂÊ!¬Ë¤C%¸�к8rÑ®Öç“÷G÷¨Ó(®/Jø£àÍSNÕo­5È>Ï¥€×†TxŒ@ð WPH'�€riÞø�áêðiz­ö›ù 7)ÙåC僂NåúH ô4ÙQEWÏÿ¶§ü“-/þ±ÿè©kè ùÿöÔÿ’e¥ÿØV?ý-{¾™ÿ ÛOúâŸÈQF™ÿ ÛOúâŸÈQ@ûhÉ(±ÿ°¼?ú*jö¿ÈMÿ¯h¿ô^)ûhÉ(±ÿ°¼?ú*jö¿ÈMÿ¯h¿ô@_ÆojÞÒ,.ôMõ¹n'14ÿ¢oqùÍÿÄWÓÕæcø�ñé_ð¬&Š'O¶y‚‘òìÿXû](Ëá¢|iÿDÞãó›ÿˆ£þ'ÆŸôMî?9¿øŠ_³þÒŸóûiÿ|Ùñ4}Ÿö”ÿŸÛOûæËÿ‰ ÿ†‰ñ§ý{�Îoþ"ºünñO‰ð¯ìËãm[dš»Yh°7$M'› ÿ€¦GæÂ½Çá¯ì÷¦ø3P‹Qokß!ýO³FÞÌ%‡¶kÛè  ãÏü‘ßÿ׃ÿJ§û8Éð·ýp“ÿF½]øóÿ$wÅ¿õàÿÒ©~ÎòDü-ÿ\$ÿѯ@“EP_1|Cð߉4Ïk—~ÑüQeª_ÝG/î–;­.ÿ-’òîâlϵ}‰PÞÚÁ}g=¥ä)=´èÑ˃*êF#¸"€>R–}A,þ 躇†ï4É´�rÞÞK™Â™ƒ®LD]H‹3ëV,|â¶ÒbŸ@ÔJ/ÄG¾•^Ù°-O—ûÓÇú¾ÍÓƒ^åáï… ðö±©¥hËä04—ʰ“Ô¢»_À îh匞×õ¯|@¹Óôé–Úk;)`–Eòâ»hü²Ñ«œ)n Æz­tžÕfÖ¿i}"ö]ïDφÙE½Ú*J@r2Ê9QžHPxÍ{‡‰¼?¥xŸH—K׬¢½±”‚ÑIÓ#¡rõ‘àÿ‡¾ð}Ü÷z›ä]Ì‚7žI¤šBŸÝ #1�Àô ®Š( ¾ýµ?ä™iö�ÿEK_@WÏÿ¶§ü“-/þ±ÿè©hÝôÏùÚ×þBŠ4ÏùÚ×þBŠðïÛCþIE�ý…áÿÑSWµø{þ@oý{Eÿ  ñOÛCþIE�ý…áÿÑSWµø{þ@oý{Eÿ  ¿^-ûHø{OסІ¥ã;_ ˆZ]†w+çä.qÈé�Ö»�‰¿ô‡Z]­þ½ÛÃs7’‚Ú0çv ç$q�^ ñâßÂOˆIb¾$°ñ¢Ì¹‹ÉU�±œáùè(�ÿ…wáïú-:_ýþ?ü]ð®ü=ÿE§Kÿ¿Çÿ‹®ëáÃÿ-õ ´ ;\�lY_´Ü$°$cÿt×qÿ ×ðëþ|µü zðßøW~ÿ¢Ó¥ÿßãÿÅÑÿ ïÃßôZt¿ûüøº÷/øf¿‡_óå¨àcÑÿ ×ðëþ|µü zðßøW~ÿ¢Ó¥ÿßãÿÅÑÿ ïÃßôZt¿ûüøº÷/øf¿‡_óå¨àcÑÿ ×ðëþ|µü zðßøW~ÿ¢Ó¥ÿßãÿÅ×¼|/ñ‚<à»ïÇÚ>£5¹rnäÛœ·rOÅCÿ ×ðëþ|µü z?ášþÏ–¡ÿ��@�ü-�ÿÐߢÿàRÑÿ cÀ?ô7è¿øµÇÃ5ü:ÿŸ-Cÿ�øf¿‡_óå¨àcÐcÿ cÀ?ô7è¿øµCñÿ„õýE4ýÄ:eõ쀲Áêî@8ÐWŸÿÃ5ü:ÿŸ-Cÿ·|ðWÁÞ ñ Ö…mwü*è�%Ë:ᔩàûôªùãáüœÏÄÏ÷öu¯¡ëç�„?òs??ÝÿÙÖ€ñ»þNáWýuú4W©üfÿ’Kãû\è³^)ûNØê:ŸÅÿ‡ÖZ%ïØ5)Õ£·ºÉS™#ž*åßÀ­¤ÖÚÏÄË™íçR’ÄZWWSÔXdPyû.É ðßý¼ÿéDµêµÊü/ð�ð7�t¿‹£vlÕó6Í»‹»9ãÓ,Gá]Urümãßê$ûVw_2ÖSÿ,¦_ºßNÇØšóÿÙ—ÆSêšçƒ=éWü}¤|RðìGÉ2­¶­p$ŒŸ÷”c?Þ zÐñ#á¶µð÷ÄrxûáB• —Ô4•WL劯uîW¨ê¾Þ«ðŸâ^�ñDûNœþF¡îÆCûÈ[×ÝIèßÈñ]f…ªÚkš5–©§H%³¼…f‰ýU†Gã^ñgá>§¥kð�|)cc¯BL—60ð—#«^„žéѾ½@=úŠó?ƒ_tψvÚe#¶\]ØIÁÈà²g’¹íÔwõ>™@Q@Q@ÇŸù#¾-ÿ¯þ•Köpÿ’'áoúá'þ�z¹ñçþHï‹ëÅÿ¥p¾&x3DøMáÝ;VñŸi}.²Ã#á�™óÇ¡ï4Wÿ ‡áïý º_ýü?áGü.‡¿ô6é÷ðÿ…w´Wÿ ‡áïý º_ýü?áGü.‡¿ô6é÷ðÿ…w´Wÿ ‡áïý º_ýü?áGü.‡¿ô6é÷ðÿ…w´Wÿ ‡áïý º_ýü?áGü.‡¿ô6é÷ðÿ…w´Wÿ ‡áïý º_ýü?áGü.‡¿ô6é÷ðÿ…w´Wÿ ‡áïý º_ýü?áGü.‡¿ô6é÷ðÿ…wµóÿí©ÿ$ËKÿ°¬ú*Zô?ø\?èmÒÿïáÿ ñoÚ·ÇžñGÃý>ÏÃÚå–¡u¢’´P¾HAƒ?L‘ùÐÓºgüƒm?ëŠ!Egüƒm?ëŠ!Exwí¡ÿ$¢ÇþÂðÿè©«Úü=ÿ 7þ½¢ÿÐx§í¡ÿ$¢ÇþÂðÿè©«Úü=ÿ 7þ½¢ÿÐÆ�¦kP$:ÆŸi}6åK˜–@§Ô:ÖOü >ÿ¡cEÿÀ(ÿ±~1ÚøæëD²_‡1[ê|ÎÒ2cÚ¼|W‘ÿcþÑô²ÿ¿�ÿñ4ôV�¡i:Jº6›g`²�dЬaÈéœzšÑ¯™?±ÿh¿ú ÙßÈøš?±ÿh¿ú ÙßÈøšúnŠù“ûö‹ÿ ­—ýü‡ÿ‰£ûö‹ÿ ­—ýü‡ÿ‰ ¦è¯øO§ü^¶ñh“Ç÷ÖÓè¾C‚‘¼dùœm?(Ö½¢€ (¢€ (¢€ (¢€ ùãáüœÏÄÏ÷öu¯¡ëãèôxƒö‚ñý·�õäÑ.VB×32îL®`Ö€;Ï�ßòpß ¿ë¨ÿÑ¢¾…¯žü5ðGÅ£Çzˆ¼aãA«*a2#+»ps´è ¯¡(¢Š(¬ßè¶^#Ð/ô}R!-�äM Š}qî> V•ó§ìñ­Þø3ÆÏÂÏJL–²<Úd®p:•\ö#çýêú.¼+öžð…Üšu‡Žü6-{Ãî%wŒ|Ï9ϾÓÏеzoÃOÚxçÁzv»fTÓÆú©GŸ�éíƒ@wñ›áºµúø»À2ÿexÂÔù¹„ùktG©ìþýCëW¾ ü_‹ÅìÞñ4_Ù~1´ÊMm"ì•êÈC꿈㧯W“|iøCoãT]k@”i~.´ÃÛÞFJy¤tW#œú7Qô Y¢¼;à×ÅÛ›ÝLø/âM§xºÔùJò€«wŽžÁñø7Qé^ã@Q@5}6ÏXÓ.tíNÝ.l®c1Môu=A®þgßúm¿ïãÿñUÓ|K¿¹Ò¾øŽþÂS ݽ„ÒE"õFpG¸¯œ~xcâÇŽ¼%i¯ØüG¸¶‚ä¸M4¥†Ö+Î;P´ÂŒøsÿBÍ·ýüþ*�øQŸèY¶ÿ¿�ÿÅWžÿ©øÃÿEA¿ïôßáGü*ŸŒ?ôTþÿMþè_ð£>ÿгmÿÿŠ£þgßúm¿ïãÿñUç¿ðª~0ÿÑPoûý7øQÿ §ãýÿ¿Ó…zü(χ?ô,ÛßÇÿâ¨ÿ…ðçþ…›oûøÿüUyïü*ŸŒ?ôTþÿMþ©øÃÿEA¿ïôßá@…ÿ 3áÏý 6ß÷ñÿøª?áF|9ÿ¡fÛþþ?ÿ^{ÿ §ãýÿ¿Ó…ðª~0ÿÑPoûý7øP¡ÂŒøsÿBÍ·ýüþ*�øQŸèY¶ÿ¿�ÿÅWžÿ©øÃÿEA¿ïôßáGü*ŸŒ?ôTþÿMþè_ð£>ÿгmÿÿŠ£þgßúm¿ïãÿñUç¿ðª~0ÿÑPoûý7øQÿ §ãýÿ¿Ó…zü(χ?ô,ÛßÇÿâ©Ñüøt’+� Z¤3¹ê3Íyßü*ŸŒ?ôTþÿMþÈüPÐ~+|<ð³k·ÿnnáY’.¥ –ïÈÇjúåT*…P�€j+/ÂWS_xWF»º}÷ÙC,�ŒnfŒ3Ex×í¡ÿ$¢ÇþÂðÿè©«Úü=ÿ 7þ½¢ÿÐx§í¡ÿ$¢ÇþÂðÿè©«Úü=ÿ 7þ½¢ÿÐ_¯ý¢¼7·.‡5ÇŽbð¢D%AæÈÈ. ÚxØýkÚ«�ø�ðãÃÿâ±�Ä‘ÜH¶lí“1�±œã¯A@1ÂaÿEÊËÿ_ÿŽQÿ‡ý+/ü þ9^Íÿ Óðóþ}µ/ü j?áš~϶¥ÿ��@3ÿ‡ý+/ü þ9Gü vô\¬¿ð%ÿøå{7ü3OÃÏùöÔ¿ð1¨ÿ†iøyÿ>Ú—þ5yN‡ð¦MzüYh¿"¾»*\CÒ;`u8WGÿ ãâ¿ú(×”¿ür½SÀŸ<#à}}u�ĽXÚ e¸.»[¯éó=¯ìëâ¨na•¾"]º£†+‰yôÿY_L”Q@…â¯ø–¿hñ¯i`˜ÈY_ço÷T|Çðãú×í+£½ÛYx/@Õ|Ex~ç—�û ?÷Í{íó›x—ã牰ÚW†ôý݇ 8PØ÷óŸütS×áׯ­Ys«üC‚Éï%¶r¿÷Ê(ýhèšùãáüœÏÄÏ÷öu¤|Wsó_üUÖ™½eÇþŽþ•Ùü ø?ÃÍkTզ׮õ›ëøÄO$ñìèrI;˜’N:šõZ(¢€ (¢€ (¢€4QÏ Å2+ÄêU•†CÁWÍ’O‚ÿï|)|æ? ø‰üí9Øü‘ÈN{÷ü×ÓUæ´'€Žü *اüN´ân¬˜pÌÀ|Ñçý¡ú�@ŸEy�ìûãñã¿Âoÿm騵¿FûÅ€áÈÿhÌôêóŒ ´ÏˆšXpVÇ_·´Ôa”ŽB¾9+úŽ¢¸_„ÿuM\ø¬ÏY„ˆíu ›)pÝ Ý{?CÐàõú ¼›ö“Ñü!}ðúê÷Æ -å¶R,®bÎ%=ñÜ1“Æ3@ƒ¯ø—GðüºtZÅü6²j kj®y’CÐñéÈõ­ŠüÁÖ|G¬kRY>«©]]½ŒK³K!&$^€ëÖ¾ùø ã±ã߇¶wÓ¸:�¯ú-èõ‘@ù¿àCêO¥kü_ÿ’[â¿ûÏÿ äÿeù"š/ýtŸÿF5uŸÿä–ø¯þÁ³ÿè¹?Ù_þH¦‹ÿ]'ÿÑ�@µEPEPEPEPEPEP^%û_ÿÉ—þ¿ þf½¶¼Kö¿ÿ’=/ýAüÍz��?äHð÷ýƒ­ÿôRÑG�?äHð÷ýƒ­ÿôRÑ@CûhÉ(±ÿ°¼?ú*jö¿ÈMÿ¯h¿ô^)ûhÉ(±ÿ°¼?ú*jö¿ÈMÿ¯h¿ô@袊(¢Š(¢Š(¬ox£Eð¦šoüC¨ÛØ[JܱôQÕ�°àú¿ÅÿüF¿›Gø=£Í²¶Éu‹¥(õ¾TürÞ€=—Ç¿ü3à[O;ÄZ”pJÃ1Û'Ï4ŸDþ'Þ¼Uþ |Nø¯+CðçI:€ÇiÔîð‡®âü=k§ðÀ +O¼þÙñÝÓøŸÄ7™#Ü1hU¾‡—ú·½¶(Ò–8‘R4UT`èx_…g �íj7¾&Õd;¤i¤dŒŸÏs~'ð캇¥h6kk¢éÖ–ãø-â×O¹­(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(æ?Á'Áo�¶~-³W_ x…ÌZ‚ ùc‘Ž[�¯Î?àB¾™‚Xç†9¡u’)::œ†d}+›ø—á _ø/QЯ0¿hLÃ)ꥣ~¯¶kÌf/]µ…ÿ€¼Kº-ÃîÑ¢HyxAǾÓÇЭ{­sÞ4ðf�ã]=,¼K§E{ d˜Ë­=J° Šèh ”¼}û+ºù·^ÕCŽ¢ÆûƒôYõ�s?'ñ/Á¿‰Péþ.Ón¬4�]–Òg�fäþíÃŒ¯ƒÏF5ö�C{im}m%µí¼Wò !ðy·¾oíHôéỎDhX†Ü>VVkƒÔþø�¾øVëìwä»kZµœä2°,óòº¨P0z牾j—¯…áVÆú÷]·º’ÍH]ÜM 33äáÍÈÜÄгxŸâŸ„ü3¬Ë¥êº„¢êW¹òm¤•m•ˆ ee 9}j¦µñƒÁúF¯w¦ÜÞÝKwmn—N¶Ö’Ì NŠáÁU ®Öž‚¼ëÄžñ^�¬|L³Ó¼9.µmãÒò9c n̬¤K¸‚ï$Ÿº?gÂ6úǃ>+x‹J³Ñ&ñ密¬ì¥ŽÞD?“ÏÎFSwãœPПÄO éÞÓ5¹/ÌÖZ™ d-áyd¸b3…E‰õâ²o>1ø.ÒËHºmFi"ÕL«j!µ‘Ýž<B€n –i$דMð£ÄZW‚~™-/¯¦Ðå¹{û-6ìAp«9Ýû¹7™:pyúUÝáî£iãO‡º�Ÿ…o´»/ïï/c¹¿�xã $Œq†b™Ú3ƒßš÷„ñ›ø]õý—Kb–ÏtÊð2JA$ydnÝ€xÆk‹øQñûÇ>%ñe•Þ’Ú]¶’Ö¦\"¹&A’ùAtÏ5éuæ 4 WLø§ñ/R¿²– JâÑìæb10TpÄ`ö$uõ O¯ý¯ÿä�Kÿ_Ð3^Û^%û_ÿÉ—þ¿ þf€=GÀŸò$x{þÁÖÿú)h£ÀŸò$x{þÁÖÿú)h  /Œâø“á¢Ë|ö/ÂÜÅ2 pU— ¹sÜv¯'H~9ü;ˆCl,¼_¥D ÆùGcåý ë_HÑ@=éÿ´­¥„Ékã� k%×BÁ7¯¹Ãm`>™®óGøßðóUŒ4^%´€ÿvè4'ÿ½úÂÓP�¡¿µ‚êà¤Ñ‡Søáµƒ?uWg¹ðµ„n{Û? ~”»Žü%:î‹Äú#úþˆìÔÛ¯ø>Õ Ïâ�TsŸ¶Æ‘¯=¸ýš¾Jû–×Q‹Ù.Î?PiöŸ³wûy5�ôÿìËvØý1@¼Eû@|=ÑQ¶ëQ”#±ˆÉŸø ú× /Åÿˆž;³ü5ðlÖ–’pº�úäcûÀœ üÚ½{Ãÿ ¼á÷Y4¿ é±Ê¼¬’Eæ¸>¡Ÿ$WbªB¨€PÏþýŸeÕu%Ö¾*ë×> Ô› m’F¯û%º‘ì¡E{¶•¦ÙiYiv�ZZD6¤0 EQônŠ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+çOÚD½ð_Œ4�оˆ™mdXu8‡Iü¡�±aÿ€šú.¨ëºMž»£^ézœBk+¸šP÷R1ùúZ�ÃZÝ—ˆôcK”Kgy–6ö=�¸9ÜV•|áðV»ø{ãý_ágˆ%-˜×LÏÀpFì÷—æö`ý}@Q@�Åÿù%¾+ÿ°lÿú®OöWÿ’)¢ÿ×IÿôcWYñþIoŠÿì?þ€k“ý•ÿäŠh¿õÒýÔëTQEQEQE‘iá½"ÓÄ·¾ ·²DÖ/bXn.C6é@œq´t«^Š(¢Š(¢Š+Ä¿kÿù#Òÿ×ôÌ׶׉~×ÿòG¥ÿ¯è?™ Qð'ü‰ÿ°u¿þŠZ(ð'ü‰ÿ°u¿þŠZ(rŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ý§<q©h6¾0ðøxüCáæ£Ä>g„‘ï´üÃÛw­wß ÿø?ÿ[ð�|5ÿ¡wÂÿøøQÿÃ_ú|/ÿ€ðÿ…bÃBü5ÿ ûÿàÿüEðп è>ÿø?ÿ[ð�|5ÿ¡wÂÿøøQÿÃ_ú|/ÿ€ðÿ…bÃBü5ÿ ûÿàÿüEðп è>ÿø?ÿ[ð�|5ÿ¡wÂÿøøQÿÃ_ú|/ÿ€ðÿ…bÃBü5ÿ ûÿàÿüEðп è>ÿø?ÿ[ð�|5ÿ¡wÂÿøøQÿÃ_ú|/ÿ€ðÿ…bÃBü5ÿ ûÿàÿüEðп è>ÿø?ÿ[ð�|5ÿ¡wÂÿøøQÿÃ_ú|/ÿ€ðÿ…bÃBü5ÿ ûÿàÿüEðп è>ÿø?ÿ[ð�|5ÿ¡wÂÿøøQÿÃ_ú|/ÿ€ðÿ…bÃBü5ÿ ûÿàÿüEywíñkÁ¾2øo&•áíU®¯�ÔRͼ‰ò©99e½³þ/†¿ô.ø_ÿáÿ rx á¾õÙáß ÈÀО*ßð'ü‰ÿ°u¿þŠZ+mcEHÔ*(ÀP0ôPÑEQEQEQEQEQEQEQEQEQEQEQEQEQEWœüyð øÿÀW6vè¿ÚÖŸé6/ßÌ”ÏûC�®jôj(Êg/·�<–Ú‹ŸíÝ ‹[Õ¾ØÈG#Ü pkÕ«å?Šz¥¿ÁÏŽÐx§Fš‹]Z':–— ª2Hí¸áÁ=Á®§àwÆÍOâ/ÄÍCN¾·‚ÇLû KilŸ3W\–sÉ%Iôt LøÝ#Åð�ů28Ó¥Ã)ÁW‚ü$ø¢xËáæ�¯ßë¬77¨ìñÄë´m‘”c#ÑE{ÇÇ/ù$.ÿ°t¿Ê²ÿfŸù!þÿ®sèù(Šÿ†[ð×ýu¯ûí?Â�øe¿ ÐwZÿ¾Óü+è*(çßøe¿ ÐwZÿ¾Óü(ÿ†[ð×ýu¯ûí?¾‚¢€>}ÿ†[ð×ýu¯ûí?Â�øe¿ ÐwZÿ¾Óü+è*(çßøe¿ ÐwZÿ¾Óü(ÿ†[ð×ýu¯ûí?¾‚¢€>}ÿ†[ð×ýu¯ûí?Â�øe¿ ÐwZÿ¾Óü+è*(çßøe¿ ÐwZÿ¾Óü(ÿ†[ð×ýu¯ûí?¾‚¢€>}ÿ†[ð×ýu¯ûí?¼×ãßÁ­+áσ­µ�'UÔî.$¼K}³¸ÚV9à~Q_fW‚~ÙÿòKlì'þ‹’€=»Dbú5ƒ1%�¼d“Ô�¢ŠM þ@šý{Çÿ Š(õQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@6hıøÿðOTð}ÝÖ¿¥Iqªh2¹y%�—šØ“ÿ-Ví~~üÇìáª�'ã/‡$ÎyšÕ¾’)_æE~ƒIKG*+ÆÀ«+ ‚b+æOŠ?‡üKeã?ÀLwqÝÝiiÕ¸fh½FÜü½(Ù>9É ñwýƒ¥þU—û4ÿÉð¿ýs›ÿGÉZ_Ø?ÁÏ0èÚl‡ô¬ßÙ§þH…ÿëœßú>JôÚ(¯;ñ�õYxKÃ$z¶«%£_Üy×^BE8;NXžÔP¢Q_/|;øÍ¨èÞ ´�V•u kTÕîã†M_PCmk!å àØÖ»Ë�‹ᯠkÖúJ.Ÿ¨j¿Ù‹5Æ~Å!# u çµàv¶±»µÐl3Î[tžbYXúö‡øU®Ý¿†nuSGû^›®GªÌ–v m‰ Q–=~g$óùû-áú·Á�be×t=;Ä6öþ ×5¨Þ[=¹k”bÁ™#líÚJ¯Qž¾yÑ x�þ?xÒÏÁ·ÖÚcG£ZÛ+ÝÛ´‘˜ü¨—‚Ã/zr+é*(Ã[àlºE—†¥ð½þœu]&ÒK9µ-<ø.Ù�›oð�ìÄ}=óðÓRoü=Ô¦Ôìæoý¥®ÊZ¬v™@ù0@#üšõ:(›ø‹¥k:çƒõ 3ÃZ„Zv£t¢%º�7îП›ä¹öÍs?|âi«£ê2xy´˜¢%Ÿ©<“>y˜†ã=½; ôª(¯ý³ÿä–ØÿØN?ý%{Ýx'íŸÿ$¶ÇþÂqÿè¹(Ût/ùiÿõïþ‚(£Bÿ�&Ÿÿ^ñÿè"нEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP ñËþI‹¿ì/ò¬¿Ù§þH…ÿëœßú>JÙøÓo5×ÂoÃmË3éò…D]Ìxì|ýð«ãͧ‚ü¤x~ëýÌöHêÒÇ€­ºFnçø¨ëZ+çoøj;þ… sóZ?á¨tïú5ÏÍhèš+çoøj;þ… sóZ?á¨tïú5ÏÍhèš+çoøj;þ… sóZ?á¨tïú5ÏÍhèš+çoøj;þ… sóZ?á¨tïú5ÏÍhèš+çoøj;þ… sóZ?á¨tïú5ÏÍhèš+çoøj;þ… sóZ?á¨tïú5ÏÍhèšðOÛ?þIm�ý„ãÿÑrUøj;þ… sóZó¯Ž_£ø™á;]MðÞ­kp·‰8iT0l+.Ð9ù…}�¡ÈOÿ¯xÿôE;FF‹G±ŽE*ëjÊz‚qE\¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(ÿÙÿØÿàJFIFHHÿÛC   %# , #&')*)-0-(0%()(ÿÛC   (((((((((((((((((((((((((((((((((((((((((((((((((((ÿÀÆh"ÿÄ ÿĵ}!1AQa"q2�‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2�B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ú¦Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š(  _ø§Fð~‹&­â;Õ³±F æg%�E  ’~ƒµyÿü4GÃ?úËÿ€7üEbþÙ?òHáÿ°œ?ú•Âß‚ÿõ¯‡>Ôõ?Ç=õÝ„SM)¹™w¹PIÀpá@ßðÑ ÿè?/þÜñÃD|3ÿ ü¿øqÿÄU¿øPŸ ÿèW‹ÿî?øåð¡>ÿЯþÜñÊ©ÿ ðÏþƒòÿà ÇÿGü4GÃ?úËÿ€7üE[ÿ… ðÏþ…x¿ð.ãÿŽQÿ áŸý ñà]Çÿ  ŸðÑ ÿè?/þÜñÃD|3ÿ ü¿øqÿÄU¿øPŸ ÿèW‹ÿî?øåð¡>ÿЯþÜñÊ©ÿ ðÏþƒòÿà ÇÿGü4GÃ?úËÿ€7üE[ÿ… ðÏþ…x¿ð.ãÿŽQÿ áŸý ñà]Çÿ  ŸðÑ ÿè?/þÜñÃD|3ÿ ü¿øqÿÄU¿øPŸ ÿèW‹ÿî?øåð¡>ÿЯþÜñÊ©ÿ ðÏþƒòÿà ÇÿGü4GÃ?úËÿ€7üE[ÿ… ðÏþ…x¿ð.ãÿŽQÿ áŸý ñà]Çÿ  ŸðÑ ÿè?/þÜñÃD|3ÿ ü¿øqÿÄU¿øPŸ ÿèW‹ÿî?øåð¡>ÿЯþÜñÊ©ÿ ðÏþƒòÿà ÇÿGü4GÃ?úËÿ€7üE[ÿ… ðÏþ…x¿ð.ãÿŽQÿ áŸý ñà]Çÿ  ŸðÑ ÿè?/þÜñÃD|3ÿ ü¿øqÿÄU¿øPŸ ÿèW‹ÿî?øåð¡>ÿЯþÜñÊ©ÿ ðÏþƒòÿà ÇÿGü4GÃ?úËÿ€7üE[ÿ… ðÏþ…x¿ð.ãÿŽQÿ áŸý ñà]Çÿ  ŸðÑ ÿè?/þÜñÞx/Åú�ts©øjùolÖC 8FB®%J°zw¯1ñßÁ‡šg�üCcáÈ⻵Ӯ'†Au9Øë2œÁÁ­cþÄÿòMµŸû ?þ‰Š€>„¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(ÂÿlŸù$pÿØNýJïþ É#ð‡ýƒ ÿÐp¶Oü’8ì'þ�%wÿ?䑸CþÁ�è€;Z(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€9¯‰¿òM¼Yÿ`›¿ýõä±?ü“mgþÂÏÿ¢b¯_ø›ÿ$ÛÅŸö »ÿÑ/^AûÿÉ6Öì,ÿú&*úŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š(  ý²ä‘Ãÿa8ô +¿ø)ÿ$�Âö ƒÿ@À~Ù?òHáÿ°œ?ú•ßüÿ’GáûAÿ  íh¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Šæ¾&ÿÉ6ñgý‚nÿôK×�~ÄÿòMµŸû ?þ‰Š½âoü“oØ&ïÿD½yìOÿ$ÛYÿ°³ÿ蘨èJ(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€Ï¢¼ ľ$ñî�â¿|9´ñ5­çˆõv{¹u©4èÐ[ÛØU„|¤�*S“×�ÇQ{ÁµÍ#_ñ×…üq,ž¡á›ÔÒúÞ!Ú`TW!�p­‡Nž¤sŒ�eÕ5+"Â[íVöÚÆÊ,y—2¬Q¦H,Ä’@ú‘RÚ\Áyk ÕœÑOm:,‘K†I†C)A_#xÏZø�âÿÙ÷Wñn³¬iï ê3¢e%˜Skrª%v|Äkgå$ç5Ú|ñŽ»{ñ \ßoÐ,|%§Ü[Úù1�’k2Nð»�úÇà’9öôUó¾‰ño]Ó�Æ{ýfáu o ß,e»D‘¬{çš$RQAa‘I$àuæ¶<"¿u}DÖ�‰4ÉíuÛròAöÐéi,e¢š3ÖR¹S±¸'Ž„°ö+ýcLÓ¬î®õ FÊÖÒÕ‚\M<ê‰ ¸ÄáIܼïQVm.`¼µ†êÎh§¶�H¥‰Ã$ˆÃ!”Ž ‚¯Š|q¯ÚþÎÞ:ñöÌ76?oXÛM½ÓáºW¹ilɸg”6ã´•ÚAùºŠõ{¿øŽX>x'Â3ÙéºÆ¹¢Û^Ü_µ¢·�ÉÉòâ ÿW!Û€ìô%à:OÄoéÍñ/Â~"½·ºñ‡4‹�FËT‚ÝcóDY£Á\�ñœc�sŒžQŠóŠ_õ={ÅZ‹ü#¨ZXø›G4¨Íñü�·‘÷œp:1éÁªžøWw¥âÍsÇWÖº†»âHÎäX«,0ÀÊ¢äðdŽ޼šôÝ_WÓt[Oµk…žŸm¸/�u2Ä™=·15Äxwâl:çÅÍgÁV¶´}‚_&¥Бg °�À¾ë¸ýß~<Âëà¿Ä1ðæûÀ–ž"ÐÃË?�heŽUšAæ‡Ù!„\åø w3ƒÆ¦—ð�Æ~ñ^•â/êÚ ß×JÔ"¿YZ<Å Q³G´Ã÷(Fvôç®+Û4Ï躭Üöº^¯§^ÜÁþ¶{”‘ãíó*’GãU&ñŸ…à7‚h±›9D!ï¢D™#cå¾VʰÁçå>”äž ø#ª[éß4ïj¶wqx¦HäŽêÔ7˜$•üÇB ¹Ñ¶‚Gg½lxÁ?ô™<;¦k'ғÚÓã�\^FªU"›pÚ8ÏO\½ñâ\^ñ�ôË}=5(|Owöd¹K ‹ß‡+o½ÏQÓ¯f€¾\'�Ÿ›¾:tÚßÂ]kì¾Ö<;©ØZx¿Âút®ÞÖáR=¬¤�¸.KóŒ�Ç¡¯Y¾×t‹ ‹/µ[ iïÛm¤s\"5Áàb0N\üËÓ=G­;RÖ´­.æÎßSÔìlî/_˶Šât�§|�µXå”`g¨õ %Ñ>k_cñî¯â-JÂïÅþ(Óç± ºZÛ+ǵT7ÈLœdOTÿ…U®Ã6½ûV›ýµÿ=¼Çû?ü~yÿ{fï»ÇÝëíÍ{U‹à�*}Áz‘xñ=Ο§ÛÚJÑQž8ÕIR@8È8ȵEQEÍ|Mÿ’mâÏûÝÿè—¯ ý‰ÿä›k?öýzÿÄßù&Þ,ÿ°Mßþ‰zòØŸþI¶³ÿagÿÑ1PЕWV¸šÓK¼¹¶·{™á…äŽûÒ°RB�rF?µL†XçŒI ‰$g£!Æ€>løu¦jžñWƒ­n¦Ômo[O¿ñ‰Hû\Kò¢ó´2�¹ã9™à«ŸK‚àÓ|Ay¡âíBãWºŽã÷†+H¾ê´Ÿ{k(޼b¾©##¸/ˆ>·°ð­î¥á] ¿aaqo¦%ŠùE à © Ã'~<ŒŽh|ñOÃÞ*¾‚ÎÏí¶óÝOs ™¸€¬w~F7´n2¬0sŒçƒÇÒMâ}=ÿUMBÞ{+xîl‘<wçoRHõæ>ø[ªøitû›Û{é|;¥M•`±ùCí3Ò´�’I(ŒÈ9Þû;ÛçâM&×CÑô¨×QžÎ×k­Î Ã$áGϰ�y÷T�B†æ9<µ'dÏ“Ér�î>¼TÕâ÷�®|#{¨_\%´þ%šÈêWö�ó;UÿSo¾1¶02ÙrN]˜ãc¨Ñþ.hw�Ü˨Cu§Åe¤[jײȡã·YÀ+ÛóÁ¼�~(Ñè®@|EðÙñ9ÐVôý½lN¢ùŒª¤!Cd–Ç;Np2qœô5¿áífÇÄ:-¦­¤Lg°»O2 2n_\0~"€4(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¬}wÄšn‹ski{?ú}âJÖ–ˆ3-É�7² èN=Hê+#Â?¼3â‹=K-NÞ+½V=½ŒÒªÎB’mÏPU‡Ý>”×ÑEá¶Oü’8ì'þ�%wÿ?䑸CþÁ�è¸Û'þI?ö‡ÿ@’»ÿ‚ŸòHü!ÿ`È?ô@­Q@Q@Q@;üd‚×Uý¤~é^%T—Ã�jî°Ïþ©ç&^<²Â1ß w¯,ñ4vþø‘ñ‚/„‚ÚÆ‹kÂÄ­=˜�WÝ(Àé�júçÆž ðï�láµñF— üP±x·3#!=v²�Ã8ç³ü=ðÃÁžÕ.µ A·¶¹º´û øwhä„… lÅ9ع8Éç$ääç_†þÕUøc¯ÁªøE�DMZÝI ö£¤ŠÀ‰%ÁeÀÀËÓ¹ðÃAð–¹ñOã"ø¾ )ü›Ë–ˆ\ã÷qùóy².zÂ|ÑŸz÷¯ |*ðO†uÏí�ÃÖ¶º�;eÜïå烱YˆN2>P8¯3ðOÁxµ/|F¹ø‡áȦӵWíz\­p72gbA‰÷ !ãÈ8ÏqÀ‰x.âö{O‚ëzÎÐÃâ©ãµÝÚ/6Äà{o2W¨øKKмQñâã|EŠÚâ[<Çj/1û‹@dDÏ݈aÈÝžõîW_|'t|9æhÑ(ðôžn˜±Hñ­»îVÎÕ`æE?6rG¹Ì>/øcàßj1ßø�B·¼½@Îñ;Ð1F€÷Í|ÕáýWñì°5MÒ�CÃ:œ—º\§–ñ„.ôÈ혫¶ð&®¿¾8éÞ"XÏö7†´¨dGÊ/%\‘õ XgÖ^¿ã8µ=ÁI§øÂÖš£öE°óã¶ŠŠ6\îá€;A\‚wkö|øy7ÿ‹-KÊ:½äÆæìÆw8P7|ôÉ8 N¢Š(¢Š(¢Š(šø›ÿ$ÛÅŸö »ÿÑ/^AûÿÉ6Öì,ÿú&*õÿ‰¿òM¼Yÿ`›¿ýõä±?ü“mgþÂÏÿ¢b  .¥·–8ä1;)U‘FJ’:ŒúWÊ÷¾ x:æKχ~0yrÛÌ&Vµ‘Ï¡(ÿð"+êÊ(äôøÏñ[À±|Að±½¶Sƒpðù%¾“F Gðèžý¤ü ­ì�S–ïD¹n1wèóìéž=Ø-{[ªº2º†V Œ‚+μ[ðWÀ^'Þ÷š½­ËËŇú;çÔ…ùIÿxî4}cMÖíÖ�¨Z_Û’ÛL²/æ¤ÕÖPà y¯—u�Ù“VÑnÍÿÃÏOmp¿q.Y¡�Ûh¿ø‘Tá4øéðãåñ&Žúæ›Y¤„Núù±r>¯š÷Ïü3ðãêqÝÛÝ]À–ÓÜYܼ-$jÛ•YAØàï)®?Å¿.u�V-+U¶�IÖõ++�JÖhH³@1å$€œŽU*1޵ƒá/Ú“ÂڎȼG§ßhÓ½"�´B?¿ñÓ^ÍáŸøwÅ0ùžÖ¬5Œ”†`]ÞO¼¿ˆâßô-oLõ³2ê^'¹²Ñt‰cê[ºìaÇÌœ �HÁ9¦è¾1¿ð’x«FµÕ] F– *Æîâcj`¶g»pªí¢0rì£8&¾ˆ®/Ç^³×4f‡N´°†à\=ËÄñìŠìÉG*ÊSŸ��ã,Vçn(Çí1qcxw@—£®ëX™Oûg2H1ýÜ©ôí?¾±ÓïÑõ™õ‹ò�2ì 2畜üØ$žp8Í~Ù?òHáÿ°œ?ú•ßüÿ’GáûAÿ  à?lŸù$pÿØNýJïþ É#ð‡ýƒ ÿÐv´QEQEQEQEQEQEQEQEQEQEs_ä›x³þÁ7ú%ëÈ?bù&ÚÏý…ŸÿDÅ^¿ñ7þI·‹?ìwÿ¢^¼ƒö'ÿ’m¬ÿØYÿôLTô%Q@Q@Q@�‹~x?Å»Û^ðý�ÄïÖáÊ›þþ&õ¯ñ7ì±§™¾ÕàßÞi· w$wCÌP}�v²ýpƾ”¢€>Mòþ?ü6û�'‰4Ø»ôå ~Sù Ûð×íOf³ý“Æž»Óîí’KC¼ïíeüØ×Òõ‰â_ è'ƒÊñ�c¨.0 ð«2ÿºÝWð"€2|%ñ7Á¾,غˆ,¦�ú[ÈþTÄú|1üuZ…¤wö6sïÜDÑ>Æ*ÛXpG óּſ²ç„õ=òxzöûE˜ôB~Ñÿ€±Ýÿ�Wÿ'LJ?7…õ¦Ö´èúAâPÓÉ›§Ñ2hé¿ xsLðÖ�a¦éVëP x™€/°òÝNNI÷5“ÿhÓ­ôÛO ê éö†áÞÒƒ¤í(8,[‘µÎî>œq�Òi�oB»[ˆžšÞuážÝZ õò¤ëÿ}^¹á/�Þñ>ĵ×a²¹oùa¨³°>™o”Ÿ£ä|Gðëĺ?Áÿhžµ´½×´-b AöÍû·eyÈKí$u$uÆ@Î3^[­Éão iÞ#ðöŸ>¡Që>tº”ªQõ[«„Ž4�20P•–B9¿ØñºI¼l®Œ2¬§ �Pj;«Kk±»·†q‹* P6ÇS•až„‡µ|ç¬ø«Ä^Õ<]6�¨ÙÿaxCLµ±[3l"‚KÉ‚ä¢G´d6xè7cŠõ½Æ–ºe–‹¥xÛU±´ñ]Å´oqo¼`; ðPÌ@㓎MXñÿëvÚŒrÛËlú…Ô7ÓËo& Oke3ÆËówÏÀx»á6£­xß_»‘š}+ÄÚý¢Xµ&¶’Þ(Te ~[¬Ÿ2+/Nã#­{he.T0Ü$g�ÿ¨Ò׎èú||Tñ?ŒÎƒw梀:;O„¦ÛÜI««èVúÜÞ!ŽÉmñ+Ý¿MònÁT9# 8=3\ ÏÃ�j[Ý u�>Hµ=cÄ×Ö­©Z±&ÊÞ Æ8„ëÊt‚}ëß¼?â=ÄvßhÐu[-F,dµ´Ë&ߨ ûÕ  øY«êþ(ð¤šdW×Å5�Bêñfšgytý+Ì(¨‰mîÈꄜ€Y‡ÜÅ{œ1$0ÇJ4Pª£°U&]?I‹PÔäŽe(g»œ& */Þb98QOÒ5;-cM·Ô4«¨nì§]ñM VÄPº(¢€ (¯ øµñãþ¸—M·FÕõÄá­`p© ô‘ùÁÿd}q@¿UuFÇLƒÏÔ¯-­!òÒâU�2@¯•cÖ¾;üPf“ø{H”|²F>È¥OB³+}WŠÐÓe»ýJµøÏÆ2Ü\·ßñ´¬í¬‡?øí{±ñ«áÞ’X\øªÂV­w\gñŒ0®?Rý§üjH·�Y½ô0Zªƒÿ}ºÕ½öjøy`íVº†¤G{«¶\þì®ÇMøMà8má±ÐÏn&?›æ€<‚óö²Ñ“?bðÆ£7§�p‘ÿ Õ˜jûË‚E‡‚7}oÙÿ”B¾•²ðö‹b²Ò4ë`:y6Șü…jp •á¤üc/0x uÿ\ßÉiá¡þ ¿ÏÃÿÝÿ×½Áýq_TÑ@*ÿÃHøÑ>i|„~YÇë¶�øj�^×þBÛŽ¿éoóŒ×ÕTPÌVµ®œøûg„îâõò¯VOæ‹]ŸûSx&à…»°×-¹h#uоJöûÍ'N½ÏÛ4ûKŒõóaWÏæ+žÔ~x#Qí~ÐØž¬–Q£ßJ {IøóðãS!SÄqÛȆê "Çü®ßÖ»­Äz&º�´]_OÔÿE¹IôkÎ5ÙßáÆ  �FšÅÏñÚÝÈ?F%Jàõ¿ÙGNÝæøkÄ÷Ö’©Ü‹w ËÏûɰ�® }1E|šþøõðã÷šN¥'ˆtèºÄ’ý¬môòäAôOκ¯‡Ÿ´­…ýúé>>ÓŽƒ¨†òÚåCyý[æ�ñÈõ"€>ˆ¢›¤±¬‘²º0 ¬§ ƒÐƒE:Š( Š( Š($I8½Veçˆ4k,ý³WÓ­ñ×͹DÇæk*ˆ~ ·È›ÅÞB;Jþ[¨¨¢¸Çø©à%b‹ô<�KÄ?ÈÓÅ’Gü%ú'ôô¿ã@µÇEñCÀ’ýßhœ|×ѯó5~ßÇ^¹ÿ�oè3gþyê·òj訪¶š�•ïüyÞ[\×)Uÿ‘«TQEQEQEQEQEp>7ø¡£xkHñ,öùÔ5-ak»LN®ª¬ /+󃑑ùÐ}\ßÄ fïGðÕóh’ØŸ5¼²iö·MŸ´¼j]•PXí�íž+Î.þ45�Žî´ýbÝt­Òñ­$yìn$y…Ža*üŠ¬Ç€Aã<×ñÃþ"ѵïjñh×—š–�«éšÂ ÇöPƒÍ¶‘³ÀP€ÆO8ã9ößx²ûÅv~ÕtÍ:еžæëí{yÆ”üÁ†sÛóæ<a ËXéw‘-.t ôÉ“$[[“ \ŒĤpsR|;ð6—yá ‚_Iuá­OQMwL·…š´ ¶Ael�·ç¿Mß|Hð_€ xµmNÖÞpZO°Ú€ó31,NÅèX’rØ“Íy>—ð{Ä~&Õâºñ¬YoŠ{=VXï7½âù›à{ePV�lxwy9õû#Âß`¾Õîï#µšíP_jz…Ïï.™AÚ\’nOݯ¼Xý ¼aã[çÒ¾øjtcÇÚd‹Ï™Gf#ý\ð"ÃÞ�¢~Ï*ñ}új¿Š(¢Š(¢Š(¢Šð¿Û'þI?ö‡ÿ@’»ÿ‚ŸòHü!ÿ`È?ôUþ5øþ#ø%´H/–Æu¸K˜åtÞ¤¨#œÇšðø?f¿Á EŽÒ(�mTF™UG ñ@VÑ_*ÿÃ8øãþ‡ÿü~ñ£þÇÇô?ÿãóÿ�}UE|«ÿ ãã�úÿñùÿÆ�øgÐÿÿ�Ïþ4õUò¯ü3�Ž?èÿÇçÿ?áœ|qÿCÿþ??øÐÕTWÊ¿ðÎ>8ÿ¡ÿÿŸühÿ†qñÇýÿøüÿã@UQ_*ÿÃ8øãþ‡ÿü~ñ£þÇÇô?ÿãóÿ�}UE|«ÿ ãã�úÿñùÿÆ�øgÐÿÿ�Ïþ4õUò¯ü3�Ž?èÿÇçÿ?áœ|qÿCÿþ??øÐÕTWÊ¿ðÎ>8ÿ¡ÿÿŸükãàοoâ«O Éñ1?¶®¡{ˆí•®¶/RØ8^øÎ3ƒŠûŠùWþÇÇô?ÿãóÿ�ðÎ>8ÿ¡ÿÿŸühêª+å_øgÐÿÿ�Ïþ4Ã8øãþ‡ÿü~ñ ¡~&ÿÉ6ñgý‚nÿôK×�~ÄÿòMµŸû ?þ‰Š¹yfßKÇ/�ãpU•šr Œò+Ù¾ü9—ោ®t«�A/î.nÚéäŽ2йUP£''îg>ôèÔQEQEQEQEQEQEQEQEQEÃx·á7‚cñì¶m.~ÛàO\ØÜ¡Ìiy�TûKÿ¾Mekü|øoÆ¡i'ˆ´Øÿ�“í ŽçzbQõjúÆŠø÷Ç?´�ü$ÿu­]ãMÖo"ÆD”<[K&r.WpÆ^µå¿ þ*kÿ õ-úl¿iÒålÜió1òä÷_î7ûCÛ Ž+Ò¿l½F-CǺ^‘aj�=�¯™q$Q ìòˆ8TR?Þ¯ ƒÃúÍÆ>Ϥj2ç¦Ëgoä(ô?á§Ä]â�öÝ ç÷ñ�ö‹9p&€žÌ;�FÌWc_œ^о!hZž©á½ Ä–÷М¤¶ú|Ç#¸#nàäû_á�õïé¢ßÅþÕt=^ù¤šÒHíç÷RÃå?ìŸÀž€¬ñµüÚWƒ5íFÔââÓO¸¸Œú2FÌ?Q_)~ÈñxCQñ&£qâgŠãÅ�(’Ä_ÊÀòÌ›¸iwsÏ8äw¯¨¾&ÿÉ6ñgý‚nÿôK×Èþ ÚüJø{¨jvúœºvµi¨41HW|N‚8ØrÇæ¿C@pÑ_%ÇwñçápKo'‰4¨¸RTÞ¦ÑF=pmhµe’?‘⟠ÞÙ̇kµœ¢NÜ}¤}2héª+É´ÚáÆ¤>·%”‡ø.íd\}X¿­v:oÄj`}‡Å:$Ì€^Æþù'4ÔQPÛ][Ý&ûYâ™?½†¥M@Q@Q@Ù$H�¼®¨ƒ«1À‡¨øÏÂúh'Pñ�kŽ¢kØ�þE¨zŠó=_ã¯Ã�,/‰`�ÇEµŠI³øª‘úׯþÕž¶V]DÕ5 C;%ºÇ,ñÚú.¼ öµ´ðYð\·ßÙãñFÓš,}¡Îy ÜÇŒç<Üãj?#ƒÆ_u‹É—PU¸†Ý$̲ÆyRÎxE ðª:Êô ›Å?µG‡¬äh|3£_jÒgh’fñ·¸á˜ý ŠçGÄÿŽ>.ÿ‘gŸÙÖïþ®e± cþºNvʾ‡ðŸ€¼-á(Ñ|=¡XÙºŒyËéOÖFËÄ×M@)ÿ¾øýâ>uo07ÞS¨˜¿Ku"œ?fj‡wˆ|u½�-ˆd¸ý]Ö¾ª¢€>h³ý“4dÇÛÒ.@í¶½ŽÒæ Ëhî,çŠâÞA¹%‰Ã«PGWœx×à�|Y�6��xË­8R loÅMxÜ^,ýšüabVýµ_êÅÑePFñ°Ÿ’P ƒƒî2Ù4Tvó%żSBÛ£‘C©õdT”Tw"cm(µhÖà¡òÚ@J†Ç€A#>õ…ã¯hþðüúÆ¿r!·�„AËÌý‘»Ó©ÀÕß ë–ž%ðæ›­iÌM­ô :Õr9SîA÷ó�ö¶±âÓáëŸÝ]]i—Z¤þ×ôhFÈm.v²Ã"ªŒã$9,H : G㟇šÍßÂ;eÕ »�ÆZ\Ï£YÉ2¶¯i¿äV “·oÌ cY'æ½ï[Õüà¾Ôµ[­7G{é<ùÜàKràc;GÌç€×ˆø·ö›{ÛÏ쿆þ¸Ôo$%#žæ6;�û§Ì߉JöCàý{-7SñR;]ZZ@· =ôŸe -ÿ)¶°ÎHëÍqh¯x}&´ÓY¼Ey‚¦;\yF”ðGû¡«Î-¾|Sø£“§h–)e£ØÛXÚ'݆Þ!�Àw÷«´Q@Q@Q@Q@Q@Q@Q@W–òÝÏkñµÌZXƒ|È;I³ƒ�¡©è¨î'ŠÚÞIîeH`‰K¼’0UE$’xõ%|£ñ·â§ñ?ÅQ|8øvLöo.ˢÛä�”óó‘&2OñÆF2õln²"¼l¬§ �QK\×Ã� §‚ü¦h)yq{öHö´ó1%˜òvƒ÷W'GA�­t´QEQEQEQE`øïLÕuŸêz‡õ3¥j“ÂR °¹Ø}=FFFáÈÎG"€'ñ|ÚÕ¿†ïåð½¥½æ²#Å´7lBÄã$û œqœc#9¯žü¨ÿÂã=cU¡ÕƟźåæÕ†k­¿ºµ·m›ÁWÀÀÈÇðð¢ªüøµªx'\ÿ„â�–Ù­ßɶ½¸l˜ºŽßÅþì1ü<¯¼xËÁz_‰MšâÙ&uÛj1Úp!º›có0y çÛ¸&€)ü7ø…mâý6)oícÑ5 äq›ur¦æHÀI°…8 ƒÀïSÒ|io¨½´z÷ÅKÈþÕ¨$³yvšŽè›æ ÓŽOSžsóý àïYø³ÃV昳-�ê�fP®0H €HêBElQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEÍ|Mÿ’mâÏûÝÿè—¯ ý‰ÿä›k?öýzÿÄßù&Þ,ÿ°Mßþ‰zòØŸþI¶³ÿagÿÑ1PЕ—­øwE×cÙ­é~ ¸ÀVé.>›�ÅjQ@Y¬|øq©îcáõµ�ÿ¥Ä‘ãþoé\~¥û*ø>rZÇUÖíIìÒG"�Ã`?­}E|·sû%¢¾ý?ÆRÄÃî‰4üŸûèH?•Cÿ ÝãK^4ÿm§Í4É�}UE|«ÿ /âÔ_ñïñõÿ‰�Úÿ%£þ¯Æ…ù#ø�û£÷¿âsz?M•õUò¯ü(ß‹Ò|²üDÊ¿ñ4¼?¦Ú?á�¼uÿ!ˆ�ëûû‰?™õUò¼²…͡աák¸#žÆG;JÅ"†Q£*x9ØÜŽŸ-z‡í­ÿ$³Jÿ°Ô_ú"zôÿ†v¶÷ß¼#m{Wòh–jñJ�ч�œx4ÍøKãßÃÿª/öÂéw-Ö I|ŒÀùOüz½6ÊòÖþÝg±¹†æû²BáÔý⼣ųÏÃý}žHté´‹†äɧKå®Ü`P æ÷Ÿ²þ±¤Ü5σ|jöòÿ™Y#cŸûäPÔÔWÊcÂ_´G‡8Óuãª*÷ûlsçÿ4¿ðžþÐ:7Þ7ûzÿÄ´ËŸûòÃô ªè¯•á þ#ØÈcáþÜuÿE¹‡ÿBÍðÕ·ö¼jÚëý£þqzúªŠùm?kxÝþ ”zãRù ¤oÚÚËiÛá‚{~£ÿiÐÔWË~×€<¿»zîÕ1ÿ´M3þ‡_»ãNð.âz¤I'òŒPÕTWÊ¿ð¼>.ê\i°£f]K�Çp‡^ý£uÞ,ô£§+uÿF·‡þÛ­}WYÿ‰ô/Dd×u�?O\gý&ác'è Éü+æ£ð§ãw‰Aÿ„ƒÆ_c�þüM¨Éÿ D6ε´ÙKLY|ïøšúùØîd´‰aÉ÷f.Oä(sÆ¿´ç„tt’/Cs®ÝŽ•L0îÌ7ÁH>µó‡Æ _Ç^,KxÒÎ[=6áž:†(Ô`Ø„î ñóž¼sÆÙþøMàŸºK£è6¿kNEÍÎg”PÏ�§ýÜW�þÜòð¯ý}Oÿ -}áïùiŸõëþ€+âg�ô_‡ž}OZ›26VÚÕó.ûª=:eºÈ5ÿÍá_ØÞXèÚžµ~Ö±­½�…³ÊÎû,TŠ;±ü2x¯ŽñÚÆ¹á­n[‰8DkV�!Lðˆ§¢�שÉ$Ð-ñ3Çú×Ä?>§­Kˆ×+mj„ùvéýÕ½2ÝOägð£Æß/´(ü ðüƒ±¤¸óQTKlFá½ÎÔ@Ç99n½+‚?çÆÏ Þ ÿ}ãOæÂ½à߯‰þ ø…£ë�áã¤rùw@ß[üÐ?Êü 2Hp PcáOÙ–mBóûSâWˆn5 Éé ¶‘˜±ÿngù�Ðìkß|%àïxBÏìÞÒm,## Ñ'Îÿï9Ë7âMoQ@Q@Q@Q@Q@Q@Q@Q@Q@6VÙ¾ÒÛA8M:¼‡âOŒäñ–Ú_ÃmBßXÔ!¸Æ£ma©%­ÂÁµ†ä”ôPû72öã#9xoâ —Œ­ÿá-Ðí&µÖ4`!Ôô§`ÓMfÁYˆQ÷¶’^3ßk7šö(eIáŽX˜ch�É\ÿ|ÿü=I÷(¢Š(¢Š(¢Š(¢Š(¢ŠóŸ� ô¿‰z Žb¶šÕºŸ²_É_öÕéÔwÆ>|QÕ~k§áïÄõ’ÞÞÚÞÊßñîÝ¿Š#ü-ü?O»õmyÿƆWÄ­ìט¶Õ Ùß*å¢?Ýoï!î?Íg¯ÁO I¤‹Q.¨Ë<²Myp—¬%ÔŒ¬î>úü«�Æ1ž¤“ç¾ Õõûï‹¿ÙúEÄÚrÁgk!Кfû.� Rn-Ú0¸ÜW÷ˆøùyÁçá?ĽcáGˆ�€>&¬‘éñ0K[Ç%…ºŸºC'±þÀ�ô¯ˆì¯5;YôMN[9#š;–ke�¾Ùäù%›€­Ÿ½Ûé@|=¯i¾!´žçG¹0Aq%¬Œ®Ù#m¬¼�Ð÷èkN¼ËZšK‹•³ñEÃÜÜÊ<Èü/¡Å�=g“å,¤ç%ŒqžA ]?„5w¼šòÂò] Ë] i–2ï{Hñ€ñ“þê€1Œž´ÓQEQEQEQEQEQEQEQEQEQEQEQEQEQEÍ|Mÿ’mâÏûÝÿè—¯ ý‰ÿä›k?öýzÿÄßù&Þ,ÿ°Mßþ‰zòØŸþI¶³ÿagÿÑ1PДQEQEQEQEQEQEQEÂütÿ’?âïûÉü«º®ã§ü‘ÿØ>Oå@Wìyÿ$}ì!?òZ(ý�?ä�¯ý„'þKEgþÚßòK4¯û Eÿ¢'¯UøOÿ$³Á¿ö²ÿÑ ^UûkÉ,Ò¿ì5þˆž½Wá?ü’ÏÿØËÿD%uTQEQEQEDöÐ>wÁg®PÔk§Ù+¶–àŽ„D¿áVh Gq“å¢.zí§ÑEQEQEó/íÁÿ  ÿ×Ôÿú×ÓUó/íÁÿ  ÿ×ÔÿúÐÑ~ÿ�™ÿ^±è¯ÕÈLÿ¯X¿ôW袊(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¨îfK{yg�9HлlRÍ€2p$ûjJùÇâ_Ä'û2_„Ôõ9åþ "Æ{ˆ#¶ÒÖB¦æW€‚dp¹ŽÔ 8Èù€;Ûÿ�} Úú6Ô¯4» Rî{[bÃOíÿHç1ó‘À'¸ããxáΧ³á�Fm_GÔô]1ÒµK`Âò{V‰‘-å#ähÀ`AŸ— šå¼; Úêü>!ð¹6§v–Ž/£ó¡Ômä€Í$7J:ÌŠ’|Ç“ò†9%�¦øÃÄø)ðüµ¥¬vð+8±Óãc™¥bX�œ�¹9'°üVøíñRÏá·‡rcŸ_¼R,­‰ÎÞÆWÝ©àw#Ï?g/…w—7ÿð°üx$¹Ö/ÜYEqË)n|÷Þ?Â;zã_üª|Pñ\¿¾"=›K¾ÒÚEù'eÛjV;ËhæYÚR¡ŒnTõ­*ùWÄžÓ´!uo­›­+Â>¹P…@kÿj¨û²ĢåàqÇl|¾ÃðgÄÖ¼5Ù„¢Š(¬ÿéPkÚ§¤^<©m¨ZËi+D@uI©*H#8'´( Œ5ÿ‚žÓ¾?xkÀð^êí¤êz{ÝÍ+Ë�\-ÁH�h¹^ªzŸl{…õ‘ð¯Åãáä»ÂÖš4ú¦Ÿw77.C´’¬Œ0‡½# 0ç=Mïx;]½ý¥ü'â»kúŽ˜ö÷^tcd…n@ n?ë�çØÕÚkáö¿ã ûÁÖæ}^ѧµ•Vdˆ›y£*ù.@#Œc9ùÍszí¬^ü%ñ¿wa¦¯ˆìï µ´µH¤H³`¡e/¸œ Og¸y¼O¯éþøÉw¢Yé&¯iªÛEª^Ù=È–`÷íù\+ù„}Ý +?p¸îõ?‚Úª|`ðÌÚ}¸oÁŒ×Òy¨Ï´�’0P�Í�ª2¼9ïU›á?‹/4ß�v’XGnÞ"Ô"ºÒÚKˆÈ¸XøX”Ê•ûØûÞÇ®¿®|LµÓ¾XÍ¡Åi¨µ›é‘Û½À”û?—öÜò@Þ„„ã%½½â_Å-WÂ~ðÚ§Šµ+ešîêþá¡Ó­pfÜHm¥•Âäçu'Æëþ ñö¥á¯…·©áˆSVðmÂFúqÔaÍÌq‹}² 3µwH#$Œ÷®�â×ÃýoÄ*ð§�¬Oå@Wìyÿ$}ì!?òZ(ý�?ä�¯ý„'þKEgþÚßòK4¯û Eÿ¢'¯UøOÿ$³Á¿ö²ÿÑ ^UûkÉ,Ò¿ì5þˆž½Wá?ü’ÏÿØËÿD%uTQEQ^1ûE|Q×þMᨼ7e§]ɪµÂºÝÅ#œ§”.×^¾aëžÔìôW‹ø‡ã Õ§À�ÆZeµœÚÞ¦ÐÚÅlê͸,DŠ0l ’`nÏNM;ö{øÆ>#ZÝÙkÒX[xŽ)Hí-!•­•còÅ�;Ù†7g§zöj+Ï|kñkÃ~ƒÄ‘,ï}«hVë=Å”Q8ÆöE@dÛ°e¥Là’2xà×”¿Æ¿‰š^‹iâ½{Áxð}ÁGY �‰|·#iϘØÎF @G­}1Ex¯�þ3^A«hÚÃ�kÚî§iò IÅ®äÜ•ä倎y¨¼ñoıxêÏÂ?ü7‰©_®lî-›1HÜá~óœc!�8sšöú+Ì?g¯ˆ¯Ä�Þêú彌0jh«fލQc��!™Žrç¿¥z}QEó/íÁÿ  ÿ×Ôÿú×ÓUó/íÁÿ  ÿ×ÔÿúÐÑ~ÿ�™ÿ^±è¯ÕÈLÿ¯X¿ôW袊(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠËñN±oáÿê:µïŸökHZW0Ddpp ðO #Ä“Kñ¡á¸´É¡*yÑÃ#¦@úzŠð›[½CÂÌžÐSÖ|G©Ü¿Ûn-dŠ+�Nâ4 +¥ °ÁâŠî$?+ü\߃¼UâOÙïÆÂþ3Yo<+pÅàš0YPþ¶öçæ�בþרøïÂZwˆ,nµ/2çIÕ3}§ë:lm=Æ—pê¡Ø*|Ï ›;rU‹d`‚ þüA’W…noçš1v4ýGMÔ$‰¯t¹Ú_%taD‘4˜L‘¸8â½’¾MÕmbø{ i�xzÇE‰ÖêÊûS¾¸7ÍÚY¥-EbY£RQO]½‰ÝôV—âÏø¢†½®Ø]Ø4%㹂;y&ed�ÆYUT³!#p8û¤ê(ªº^¡i«ið_i× qi:ïŽT9 ?ÏìjÕQEQEQEQEQEQEQEQEQEQEQEs_ä›x³þÁ7ú%ëÈ?bù&ÚÏý…ŸÿDÅ^¿ñ7þI·‹?ìwÿ¢^¼ƒö'ÿ’m¬ÿØYÿôLTô%Q@Q@Q@Q@Q@Q@Q@p¿?ä�ø»þÁò*î«…øéÿ$Åßö“ùPûÉ_ûOü–Š?cÏù#ëÿa ÿ’Ñ@ÿ¶·ü’Í+þÃQè‰ëÕ~ÿÉ,ðoý�l¿ôBW•~ÚßòK4¯û Eÿ¢'¯UøOÿ$³Á¿ö²ÿÑ @UQ@|íûQÅçüAøE_3T‘?9mE}Yú–‰¥j—VW:ž™cysdþe¬·é#Û¾AÝ`JœªœŒt”òO…´«Û¯Œü<–?ø”x{UÔuHÇû 0Œ{§þÚã~´ž Ñt‰0$�–¿6›¨ªrLD`}^½Ê×ÝèšTÌú¼:eŒz¬éåÍz–è'‘8ùZLn#å^ þé^YñCᎳâ9|/áðLJütÑÏ~°Úîe|’ª€!XúàåqœPð×M•¾ xãÇ:æƒý»{âYe»—O2˜Ì¶ÊçåV Jã20ÀþÆ85å_ð–h^ðͶ«ðÛÆ¾$Òõ�ÈÍáË�×+ù†ý«(ä‚A'Ðg�·tM2ÛEÑìtËÙig[Ä¾ŠªýP‹Â‹RþÑ‹ÃÚ:j·ý©l¢îõß·9÷Í|ésâIþ|v³ñ¯�ì'¶°ñ.‡I$q³yPù‹Ž¹V‹uÃçšç§ø�ß~0ü=‚XllÎ�ª<¿jŽfX®#߃`Vc’ONq__jZu–©hÖº��µå³}èn"YýU�ÏÞü;ðuå�½¤ÞÒÚ …ÄQÃj±�r6è2:‡4ó¯ì¿ñKÁÞð¡¦øŸXû 캜— Ùf—1˜¢PrˆGUn3ž+éÿ x‡KñV…k¬è7_kÓnwySymí¬Q¾V�™Häv¬¯øWÿ¡7Ãø+ƒÿ‰®ƒKÓlt‹¬t«+k(³åÛÛD±F™$œ*€I'êMZ¢Š(¯™nùxWþ¾§ÿоš¯™nùxWþ¾§ÿЀ>‹ð÷ü€4Ïúõ‹ÿ@~¨x{þ@gýzÅÿ  ¿@Q@Q@Q@Q@Q@Q@Q@S&–8!yfuŽ(Ô³»œ*�É$ž‚€(K®iðÞßÚÏ?•5•ºÝÌHÄGwÎ?¼>FÎ3ŒW‚ø³Ç7&ñu”’_x?]´“n�uy?™c¨yˆŽm®UFØÝ•£;y#pÏ8Ýjö·švµä[î½¼ƒÍ¿Ò �»í¶®Aº°f=O!“?ôϨF­=#á¶“Š&ך{Ùín.£•tª`¶º*ÎU+•pÏû`?…ž µÕµ]A`Ónõ7ûMÝ…­Á66„g&0@Û‘ËØÀàW‚üGñV±ñãÇ�ø/Á,Éá»i7ÍrA (Sƒ;ÿ°?…{’R1­ñçâ6¥ã¿§Ã_‡{®DÒù7·ž&aÖ0Ý£\Íßè}·áÃ�7á¿…ÓO³Û5üØ{Û͸i¤ÇoE€?©4³ài^ðÍ®‰¢E²Þ—‘¾üÒ½#žäþƒpt4Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@ßÄèþ;ðìÚF½n$‰¾h¦P<ȳ¡ìB8ñ‰¿g_Â?â�-ÿ„/¼RF ]¹ÿ[z0ÈÝÿXŸ°«ŸñÏ„4øz}_¶[IÊ8áá|pè{0ÿë‚Egk>ð�ÄÝÂúò(õK P<Á3ÇæFH% B \¨Êžã¦Er>/մѬî.nc€»´÷/ºIÝ�Ù�©f&·k狾+ñNŸâK­/kG+J�øzÆÙgYîòƒuÏÚ ŒyW 0#qô¯†?tÏ[›!{ º½š¤7„,WS*)•íùË bFqéØƒ@õQ@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@×Äßù&Þ,ÿ°Mßþ‰zòØŸþI¶³ÿagÿÑ1W³|@µšûÀ~$´µC%ÄúmÌQ êÌÑ0ó5àß±F¹§/†u­î£MWí¦ímØáž3.åðPç2=héz(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ á~:ÉñwýƒäþUÝWš~ÑzÞ�¤|#ñZ…ÔpÍ}lÖÖÑ“óK#`aGSާÐP7ûÉ_ûOü–Š—öC¶šƒvï4l‹=ìòFHûË�¹Š‘øQ@_¶·ü’Í+þÃQè‰ëÕ~ÿÉ,ðoý�l¿ôBW•~ÚßòK4¯û Eÿ¢'¯UøOÿ$³Á¿ö²ÿÑ @UQ@Q@Q@Q@Q@Q@Q@|ËûpÈ¿õõ?þ€µôÕ|ËûpÈ¿õõ?þ€´ô_‡¿ä¦׬_ú«õCÃßòÓ?ëÖ/ýUú(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠŠææ X„—SG e•7HÁFæ`ª2{’@¹"¼‡â�¦ÔumW¾Ñ´ýxZÚyÚ–�xï ·°:‚~ËÆ rOÓnj/�^+Ò5m?SðìºUλ¡Zy/®Ýiwq™´á濻à ÄwtÚ_LáÅ׎<3me©éº¦‹gïø¢Ù±y †Hñ†UÁ 1×�éž ÛâH4}RÒ =|–V×D %Í´ÁYNH;@vàuätëæ?´Å››9¿áðCI?ˆ/H‚æ[~^Ü“òѳÉþ}O|Tø¡ðÇáþ™á³6�qã™m„_ñ/‹d©ÈYcƒŒm\œœ6?g„RxjøK<[Kâ{àd�&ùšÕ_’Nå£g“ÔŽæ€:€ ­¾è?i¿Xæñ%êµL9¯_% î{Ÿ`+Öh¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€0ügám'ÆZÆ�¯Ú­ÅœÃ#³FÝ�f¿‡BE|­ayâŸÙ³Æ¿bÔºŸ‚¯å%YGÊãûéÙ%QŒ¯F�bÖ?‹|7¥x·A¹ÑõëDº±œr§‚§³)êv"€2¯-ü;ñGÁ­îšãJÔ"*—V�åʪq¹CuRqµ”öÈ"¼WÇ:N¥áívÏ Ðê�™l<¡hòmHnîg#Ðåƒq×9#‘FñOì×ã]¯çjž Ô%ü$£²L£ð`?ä}⇀n™|dÓµKY-ÅÔIa†ò¬:?�XðljmîÍž•}v¯­‹eiad†éÔ+ÀÄu „œdfºjùëþÒ¾x¥|IñTÑ4X,·Ûhº~Ÿº8åP›å£Ég••€=qžOLz—ÃOâí2ê[›˜M´¾Z]½¤–ðÞ¡åe‰dù€ÇU9ÁîG4ÙÑEQEQEQEQEQEQEQEQEQEWÏß¿g˜µ�bOx ühšÙs3C¹’'“®ôeù£lúd}+è(举%ücøf5ÐWÓ¢ãí3GŸ”ÓÄy_ûì]Ÿ‡joß]kNÔô©OV ³Æ?àJCãµô r^ øoàÏ–m_ÃZ\ò·Þ”@#�ÿÀ× úÐ~�ñ‡áö®ìž+Ó·Au!·?”�k°Óõm;R]Úuý¥ÚõÌ,ƒô5ãºÇìËðþø±³MSM' ¶ºÜýü üë�Ô?d»}Ú_‹n Ç*'³Y殿ʀ>ž¢¾Uÿ†uñö�Æ‹ãý€}ßß\Aÿ “Gü*�Ž–_ñïãß<ƒûbå¿ô4 ª¨¯•áý¡"ùSÄûÁç?où­ðŒþу�í¼ÿÛÜá@UQ_*ÿÂûCK÷üG³w_ôäü—ùQÿ ÇãÍçøßÈŒÿkL¿úPÕU ÕÕ½¤~eÜñA÷¥p£ó5òßü(/‰ú‡ü†~ ‡ÏÞÿNºŸÿB¦µý“Úiº¿Œä•ÏÞYsÿ}4‡ùPºjßü¤†ûwŠôeeê‘Ý,®?à(Iý+€×ÿiŸiªÃN}GV�p>Ïlc\û™6œ~©é?²ß‚mkûÍfý»«Î‘¡üAýk½Ð>ü?Њ5�…ô÷‘yt¦å³ëûÂØ?Jðû¯�¿¹¢¸ |WðOŠÕ“â /´?Kk‡ò%Ï WÁ?†Ew‘ÅQEQEQEQEQEQP_^ZØ[5ÅõÌ6Ð/Þ’i(ú“ÅO_2þÜòð¯ý}Oÿ -wž6ý¡< á¸äK;ó­Þ¯Htñ½3ï)ù1ô$ûWŒÛéþ4ý£¼Wc«Z'Á¶nv• BFàŒFd�€ì`c·Bõ¯‡¿ä¦׬_ú«ôÈbH!Ž(”,h¡UG@S袊(¢Š(¢Š(¢Š(¢Š(¢Š(®[ĺö›qswáxu©týjâÕÙg·ˆ¹´xv|CÓˆ'ŒuÔ׎|Fø/‰5›ÍJÎêIΣ0’âËP¼”YÂÞPŒÎ‘FyTÀ,q€0¼ à e|W êvÓèž!ÑJ×´Ø—ìºå£9ÊJ‡Í ’ Oð×gñâ�ð—Áè–Vö˨J­�§D¡=ܨÆIÉÇSÇ|�_x£GøOðòÞmBi&ŽÆÞ;;H™ÿ{tê�Usêq’{ šð/„>Õ~1xÎoˆ?ɤ,Ÿè¶ÌIÊŸ•ùd�ÿ¼sœüÔµû<|0¾×usñ#â™uu'Ú,a¸±='aØtؽÿv¾›¡@U  ¨ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š(  ¿ègŠ4K­#\´K» …Úñ¿èAêêäWÉ×6þ)ýšükö‹_7TðN¡.?vAýÖì“(èz0P>Ŭïèšwˆ´k­+Z´ŽîÂå6IŽõ¨ òäEsöSøwâw†ôí_Kºi#ŽA=­Ü,ö“£�v·8e ‚ ƒ^cñsÂÞ!ÕügªÎº5æ¯$ÐEo ÌÓˆ¬´ S\Hw%VÉSŽ˜ä�ó­WMñGìÝãOí- Ë©x2þ@®®~WóÍñ÷e;_?š�£ío¼=ñsáìÂÂúá´­F?*o³ËåMà´mއ± ƒÜoÃ߈ŠãMÓµ/µÝX0¶7aEë" òCÎ]Aê@î;Oo^>›‚S¯íáÏ–æÁµH—§îmî2?í™ùóKÿ ë⎓ƿðÿzŸ°ÜÛçñb¾«¢€>Y‡ö²x[ËÔ|ñ¸ë³PÁÿ¾L_Ö´ ý¬´6¿ðÖ¦‡ý‰£oçŠúFhb�6ÍH¾Ž �Ö³gðÞ‡9Ìú.™!õ{XÏóá±þÕ¾9ó4Mu}6¤'ÿj ü5oƒ¿è âûõÿ¯b“ÀÞ“g…ô'ÇMÚ|'ÿe¦Âàïúü?ÿ‚Øøšñ™jÿ ŒùZ´Üñ»Ê_ýœÕ ŸÚÓJ\ý›Â·Òzy—hŸÉM{ä^ ð¼Xò¼7¢¦Û‡þËW­´M*ÛfÓ,aÇO.Ýù ù”þÔúÅù+¢ø{tºy¿EŒR‹ßõ¿—Fð/Ù‘ºH4¹Ïþ<í·ô¯ªÀtŠùLé?´g‰øº¾m&è|ø-¶�ûe—üù©lÿfMZ¹[ŸøÕî%xD$¹cÿm$#÷ɯ©è )ðwÀ?xeÒa¥¶«v˜"mI¼îÜÀOüv½V4XÑR5 Š0ª£AKEQEQEQEQEQEQEQEÆFzâ²|Wâ-7šæ³­Ü-½�ªnv=XöUØž¯Ž~/ü^Öl~:ÞjÞ¾1äãN� ÌSªæ^Œ –ç®�AÕ«�oÄ?´Ÿ�tíÒt(ÅÄð¬›Ä``<�·¹'jŒpûÄ€_ðÖ“­þÑ¿¤×5å–ÓÁúsìXUˆzˆP÷và»vŸ(¯¯,,íôû(,ì`ŽÞÖÅkµQ@ÀvU/ h:w†4+=E¶[k TÙ/êIîIÉ'¹5©@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@uÍ&Ã]Òn´Í^Ö;» ”1Ë ƒ!‡ô=ÁƒÈ¯’¼C¢xŸörñŸö߇ º‡ƒ¯\$‘È~R3ÄRãî¸çkãŸÍkì:©«é¶zÆ™s§ê–Ñ]Y\¡ŽXeWSØÐc{áÏ‹þŠ÷I¼–3ËCq ùwZuÆÒ29W�±¸5äž>ðÕ÷€ï<;i èfëÃzrk·Ú•ìÛcº¾ $î2ÌTá‚–-´qÈåüYá¯þÏ1ÿ„“Â--÷„®˜$ÑHIP¤ÿª—?,Ÿ‡¨?Dø{[ð¯ÆÈV8ï´ËµÝÙJpð¸ í|©=�€9ï…tÍz-#D×5« ü[sO4vˆVbr!Ê™‘� äõšùËUøS¨'�í¢M6 /nídÔíšRÞÑ�›n~ðš9�p Ië�£mP '¶OzZ(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ ä~-x©|ðóZÖ÷<·¼Ïò§þb öºêù“ö´½Õ¼Q®h>ðÅ�ÅýØÚ0Û®ì”�qè  ä“Ç ÐÉí#³ÈÅ�ŽK’O­vß ¼9ã=kÄö×>‚é/­\7ÛPìŠ÷Üü¸#?)ÎFF {çÂÿÙ~ÞßÉ¿øƒr.%ᆛjä ö’AË}Ü×ÒºN™c£éðØéV�YÙÂ10F{@è+©&�fºëÚɪ€¹{PÂ&~åCs�­_¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š¯©XÚêvZ…¼w6—c–Wrºž Šù#ÆÞñÀx!¥ºð¼ìx$%–5'ýTØþý×ꟽõýC{io}g5¥ì1Ïm:åŠE ®¤`‚Q@G…|EáoŒ~�ùQÝÙN/tù�Ï ‚+cž£!‡\}k”ñ_„ Õ>$ê“øÂI´…± ¢]B§ìz`Xs,®Aù% VaŒç¦<¯â‚|FMFîçÃZþ£kw¬iÏ£j�[_ÎT–HÎÕ×q‘ÜS¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢¸ßüLðŸ���êðÅuŒ­¤_¼�½>Eäêp=ëÄuŸÚ†óR»6^ðŒ÷“¶|¶º-#·ý²‹Ÿüz€> ¢¾R¿´W‹ù‚ÙôKWê pÚíÿ¾ó-/ü(O‰Ú÷Íâ� 7T7—8öÁÚ?héûý_MÓÁ:†¡gjü÷™SùšÀ»ø“à‹C‰ü] +ª/âb?Ù¯°ý’ôõÁÔ¼Yw9<Ÿ"ÍcþlÕ¿iû+ø&!›�G_�½ç‰Gä#Ïë@ôß¾Âpþ,Ó�ûŒÍü�ªoñÛ᪠ŸÛŸ¥¼Çù%aCû4ü;Œaíu}Þñ¿¦*Ú~Ο Täè·ì×ÓF  ëñëá¡ E“ëk8ÿÙ*Ä>I�¾*´þôr�æµ–ß³¿ÃB  ú‹éøÿÇê ?g‡ Ý.í?ݽ—úšê­þ-xã<]£úépÿBÅlÙxÓÂ×Ä /h—$ôßÄùüš¼¶ãöað¹òÛYƒþ¹Ý©ÿÐ�Ö-ïì¡áwì:öµ íçyR%Zú"c™Ã"H‡£)Ž ;h.n. ·Š;‹’iiÇ©À ö¯—¥ý–5=>C/‡ünb“¶ëV„ÿßI!þUøyñïÃv‹â£©¢}È×Q2qé¶àJú²ŠùE¾/|cð_üŽ^ûmª}û‡´hÇýý‹1�Ê»~Ó~Öž85Ènô+†ÀÝ(ó¡Ïûê2>¥@ w¢«i·öz¥”WšmÔv’�ÑÍ�ÑǨaÁ«4QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEͼ7VÒÛÝD“A*”’92º‘‚=Aò_į‡úïÁ_/Ž>´­¢nÿIµ9q“Ìrâˆö=Tãœà××É¢ŽxdŠhÒH¤R®Ž2¬zŠà>xçCø·à«Ÿ³I%¼ÒÂmïìÒb“[–R`àóµ‡èA“¸ø©iž'Ñá²Óo hn’hšUœÞ\orº¼•†A N0žÃ®|ëâ§Ã}ká‰�~4‹¥ÆÅ®m,-ÔŸ™X'ó^=ÏÅïÚQñŽƒg¥x~ ôhd�[Pq'ïOùæŒ:GÆsÁ=rõÖ‹¤j‹z5{V’âëiT´µÌV�ƒè¹Ý!ÿiÉõ µ¿\?Á'�>išÁ`oBýžñGð΀úg†Ì+¸ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ¼ƒöšø…à/CýˆÞV©©ÌmâŸò.]Çû]ôÎ{W¯×Ì¿·ü€<+ÿ_Sÿè @øKû;é÷¶¾#ø…s6­¨_*Ý}�L|±¸nGs· œ;|Ýkè}DÒ´1i¢iÖš}°ÿ–vЬ`ûœO½|“áÏ|Jø'gicâ]!õ_ •SnîIDB2s€võûŽ8ì{„ÿhÏkª‰{y>�rÝc¾ˆíϳ®Wçì”Vv�¯iÜ"]T±Ô#ÆwZÜ$£ÿ&´h¢Š(¢Š(¢Š(¢Š(¢ŠF`ªYˆU$“€(k‚ñ¿Â/øÊ9©¢Á ÛÿËå˜Ì©eá¿à@Š·â?Š ðâ¿ö·‰´Øä^±E/� ÿ€&[ô¯ñwíEhò}‡ÀZÖ¥}!Ù×jUKvÛ’ÏôÊÐ,Z÷ìáñ+N·‡TmGÂú£îxIǙ୹?†EÈ!‡^=Àû&¿<þ*iþ9:¶‘∢d¼Õ™¾ÏÄ+ÇexòǯÏÂðz’;ŸÐÊ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Šùãö²×üim¢+AÒ/#ðôÑæÿS€oÞXÎܘÓÔœnÎ:g?Wê¥yoÄ�~ ñ—™;ØejO“ö½<ËVLmosŒûÐÎÿ²/Ž?áñËø~öRº~¶G“Â\/Ü?ð!•÷%}+íªøgÆÿ³ç�¼r5 þ'V¶î%Ž{VxÊœ‚bëœ�á-_\ü*ñbø×ÀÚn®ËåÞ2ù7�‘´Åpœ:‘Ûž@ô"€:Ú(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ ù—öàÿ�…ëêýkéªù—öàÿ�…ëêýhè�4›Ãz|r¢¼oiea�FÁÁÂx§àgÃÿ³É>…�ÃËm=�¹ÿ¾Wä?Š×}áïùiŸõëþ€*ý|ɬ~Ê6‰/�á¿^Z:œ¢Ý@$?÷ÚÇןÿ —ãg‡ÿäãoµB¿v1©L?ñÉhüëêº(åO¶~ÒZ7[ø—§Ég.ïŒ7çKÿ [ã¦�Åç�>ÒSý‘p߬oŠúªŠùWþâM·üü>ÚG_ôK˜ÿž{Ñÿ /âÔùeðÎ:üÓÓm}UE|«ÿ 3â¯úÿñùøŠ?á£üm?üzx9à|“¿òQ_UQ@*ÿÂðø½yÆ�ðó9è²îäþL(ÿ„ßö„Õx´ðÏØ³ÐÿgˆñÿX×ÕTPʇÃÿ´n»Åö¬tånÿj·‡þØ‚­öqñ¾¾ÀøËÇbPNXy“^üˆV¾«¢€<ÿ²çƒ, ¾±w©êÎ:£H!Œþ7ãÕë¾ðg†ü)Ïè¶:y#âˆyŒ?ÚsóÄÖýò¯íµÿ!_ÿÛ×þ… }U_*þÛ_òð?ý½èP×ÕTQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQES#Š8ÞGŽ4V�îrªcŒdúð¬�x«Cðžžo|Gª[iöüí3?ÌävU3` ¯ ñOíO¤C9¶ðŽ…yªÌNÔ–á¼”cþÊ€ÌßC´ÐÒWÊ#Æ_´ŒùÑ4&Ñퟣ D€mõÝpI?QøS‡Á¿Œ~"ù¼Gã�³ÄÝb:„Òcþ 'ë@R^_ZY.ë˨-×®e� ýkóâƒl².¼Y ÄÃø[P‹wå»5à–²rHþn¯ã¦‘¹o*Ëþúg9ü« ³ý•< Ö­¯NGe–$ÿ!“úТ\|cø{Ãø³L?õÍËÿè Õ~;|5�ïx¦Üó�–ÞfþIXÿ³?ÃØ‡Ï§7ýt¼#ÿA®Åû:|5O½¢ÜIÇñ_MýPÿø_ ÿèh‹ÿ.?øÝ>?Žß dû¾)€½o2ÿ4ª?ðÎÿ ÿè/þ\ñtÉ?gO†¯÷tYÓýÛé¿«ß·øÇðös„ñf˜?ßrŸú­gñ Á—˜¾,ÐdcÑF¡ïËvkÏ.?f‡²�’ N÷/ ÿÐ�¬‹ÏÙWÁ²dÚêÚô {4±:�ü†ë@õgi|»¬®­î®b�8ý X¯—odèão3Hñ„ðȼ¯�e“ÿ}+Œ~UTüøÅáß›Ã~8óâ^‘ Bxóÿ`Sõ «(¯”O‹ÿhó¬èm¬Û'RmàmõÝnASøÖç…ÿj}.Iů‹ôÍ2e;^[fó”û�…eú Æ€>’¢±<'âÍÅÖlðÞ©m¨@1»Êo™3Ð:Ÿ™O±¶è¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¯™nùxWþ¾§ÿоš¯™nùxWþ¾§ÿЀ>‹ð÷ü€4Ïúõ‹ÿ@~¨x{þ@gýzÅÿ  ¿@ËüPñOü!^Ö¼@"Yd³‡1#}Ö‘˜"í¹—>Õá‚þ,øŸÂPøÍ~"^Ûjw�}¶×KBÂB7 0EÈÇädÐÓôWÏ:gÇû›/‚:g‹µ%5-GûKû"ê4Ÿìêd´ž`;[ª…ÈÇV8Æ1]çÅ߉—^Õ|/¦éþþ۽צ’ÞþÚ-± h•FJ0ùŒ£’@ü€=*ŠùÇâwŽüCð7ÇZµà¹…Rî7‡[´¼$ó­ì±Ä¸u]ŒÍ¿8;ˆ9$× øSãUæ�áÿ¯Šü7ªA£j6Öö‹¯Ü]+™¦ª´Œœ¶ÒÙmÌÙa–пQ^k㟊h¾/·ð§†|?sâO¼?i–Ú+…·Hcë–‘�ãœc¸ç‘\¶µûBØY|=_ÚhSÍ}¦º]î—qqäÉm!I%¶6GîÈý1Š÷:+€ø�ñþ¿x/FþËûoü$w¦ÏÎûG—öž$Ý·ißþ·8Èû½yãÏtOÚTÖü%¨ëÚgÃÛÛ‹m5Ûí®šŠ¢Œ(;ƒ ÍËeBð$óÀÐ4W“ë¿4�?áç‡üMc§]ß\k¯äØéÊBÈò*ê[œÃä‘Ç5ÃÚøßĺ¿í9á7SµÕ¼=ö|‹w£½ï™Ž"¹q ØvH1³æÆAL }!EPÊ¿¶×ü…|ÿo_ú5õU|«ûmÈWÀÿöõÿ¡C_UPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP\÷Ä/�ø'Y×¼Ÿ=¬mÚTŒœ~жHϵt5ç_´?ü‘oÿרÿÐÖ€< á?Ã-CãUÝÇ�~ k7Y<ÍpBà<…z¨íc8 žzu?PxOÁðŒ/h¶V82$y•¿Þ�å›ñ5ñ�»߉^ðÜ~+ð�£êº‘ÅͰS4a�í%Ð|ÈxûëÛ=«Ü<ûPøSSD‹Ä–—š%ÏFp¦âýTn÷Ïã@@Q\qáþÄñ™xíÒ8îÌüP�ÃñÑPEPEPEPEPEP\ÿŠüá¿Û˜¼G£Y_ñ�$‘âEì¸Ã/àE'ˆѵó�ï`$c¢¸%XmÀãÚ¾7ø¥ñ/ÇþŸÅ^(³}?Ãn† r¦Ë;üÎ~o¾xÆpGJú�önÿ’%áoúã'þŽzôª(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ ù—öàÿ�…ëêýkéªù—öàÿ�…ëêýhè¿ÈLÿ¯X¿ôWꇇ¿ä¦׬_ú«ôËüPð·ü&žÖ¼>%X¤¼‡;}Õ‘X:í¹W>Õá'Œþ-x_Â0ø1~^ÜêV�}Š×TŒ3BˆÔ' P�1ƒ¼GZú~Šù[żA¥þÍÖZ•©½×"ÕF¯ymnw·1´eSxª”Î:àã5sÇ·Þ&ñïÄ/…š”~ñ›§éºœo<—V‡(Æh …‚䢃 ØÏÍǾ�®ƾ1м¥E©xžûì6RÌ-ÒO&Is!V`0ŠOEnqŽ(å­ÃÞ&Ó>ø÷À÷^ׯ¬o£¼ŠD²wŠuó­T¬l3½±7�£9àÖ·ˆ4ïx÷À~ðø7YÓ%°kg¼Ô.¡Ùn‘$%‡þöÇ%”რ`šú>÷Æ:—Œ¬<)s}³_¾„Ü[Úù2ñ€ä�áv�õoÁ ñî+  ñ>›®xãÝïŽí|?©ëú.¯§‹I“L‹Îž û™Î?r¼ôù�¦šxƒáWŒu†Þ)×$Ñæ‹VÖuôÕÆ’¿4É ‹�÷½›ƒòõÂôí_bÑ@1xöûÄÞ=ø…ð³R�Àþ#Ótý7S�ç’êÐåÍ�°\”@a›ù¸àÕ�‚^ÖôïÙ»ÇÚf¡£jVº�ÏÛü‹Ií]&—uœj»PŒ¶X09Uý¶¿ä+àûzÿС¯ª«å_ÛkþB¾ÿ·¯ý úª€ (¢€ (¢€ (¢€ (¢€ (¢€2üS­[xsÚž³|ѬmÞáÆp[hÎÑîOÜ׊ü.ý£­¼mãKÝx{û+í�–+ƒ}ç áI G–½pFs×µ[öÉñKÙxKLðµ“3]ë‰%D䘣 ��öœ®?Ü5çßþMðÛÂ_¼E£¨‹QÒ„p^Jƒþ^7•Î:�þ`ϦÑ@dW¨|HÑ-~%i~…Þç[»ÞÓ*}ÛUXZQ¼ú°Q€;œq�ÿ ë–Þ%ðΗ­Yô{ët�Fs·pÉSîA÷ñgö_Ä?øi?°né¿ðŸÐKËgÿ�=Ý<¬©ùÕõüèëOŠ4O†ú"^ëNò\O¹m-"ÿYpËŒã°#$ôÈêHµ¯‰¿jÛYÞøe¼c«XßÛ=®ËT¶@¦9–qtǯ/̼ž;/JúSÃg↾k,’×Å>&ŠG–Î+±«Ç±¡ù#6òx'Œœ ôZ+çö‡Ö4“­C¨éPu2&”öè³c²á¢lèή+¨ý�¾,]øûÃľ$[xotr�=ÄCb)¼Ñ5"îo,ÚÛD¾Z6 ye¶+ƒ€Ø9aÇzú–ŠóЬ¼ðÛOñ-­¸¹¹Õ¢�´ûyMûŸ óާŒäyÊ]þÐG@ÿ„£ízA¶ò¾ÕýŽ`�Íòñ»ÙžŸÃæní׊úVŠò¯|dÓ|Cð§Qñ~¡ÙeÒ‘…ý´g?¼P žÏ‘Œ÷8ϯ5ðw‹~5üMûV½ák�HÑb”¤V÷1)IHꡊ3±ÙQž˜è=+þçü_oøWØŸ÷û_ý:ùÿê¶À~÷¿µz­|gð÷VÕu¿ÚöÊ÷Ä6 §ê奆êÙU$ŽÁã%O¡Ù‘Éàõ=kìÊ(¢Š(¢Š(¢Š(¢Š(¢Š+οhù"Þ+ÿ¯Qÿ¡­z-y×íÿ$[Åõê?ô5  Ù'þH¶Ÿÿ_Wú0×câ߆ ñk<šç‡ì¦¸½q˜e'Ôº`ŸÄšã¿dŸù"Úý}\èÃ^É@:xƒöSðÕÑgÐõ½ONcÑfT¸Aô)üÉ®{þ7ÅÈ©ã±å/D—Ùî�Ëùšú²ŠùSì?´–‰ÄGP‰zŸ2Òlÿßxj_øX_ôÏøúð�Úñ×þ%�&ïÓ úªŠùWþ¯Å‹Oùü<ÛŽ¿ñ-»‹ù“Gü4�� ÿ�¿ã–tçñS_UQ@*ÿÃLø«þ„?ü~_þ"�øiOÿ¾ÏaòÌüþ +êª(å_ø^ß.¿äðóq=?â[w'ò"�øXµ?øõð‡Ù3Óþ%�?ïëúªŠùSì_´–·Ä÷'O‰º2ÒßzOøQ¼BâªñØ7T7—8î�«ùú²ŠùÏ@ý”¼9jUµÍsRÔuX-Ðý~ñüˆ¯Xð—ÂßøM’MÃÖQܧ+q*™¥Ô;ä�ÃÚQ@AûXÉÕÿ뵿þŽZÕý›¿ä‰x[þ¸Éÿ£ž²¿kù"Z¿ýv·ÿÑËZ¿³wü‘/ ×?ôsÐ¥QEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEWÌ¿·ü€<+ÿ_Sÿè _MWÌ¿·ü€<+ÿ_Sÿè @Eø{þ@gýzÅÿ  øö/ˆ>;ñlz¿ˆô)Âð÷ü€4Ïúõ‹ÿ@åà�݆¡©'…ñ›s®kV·š?ˆ­í’V½oµ"ÿ°,Ÿúåv´5׋lþO/�äê>z ÚÑ7L�a·œçg#� 5wYøuý¥ñ—Bñïö§•ý—dÖaû>ï7"a»ÌÝÇúî›OÝëÏŽ|;'Š<=6�o¬jz5Ã0xï4éÚ)‡®Ò7)Ï*zûùëáw�í¬ï5{»Oø–îK=.âê_x’/:YdŠ&rcœ6~îÜãÖ59oï-ÖÁ¤Ò%· AHBg 1‚p0sÈ+Ϻxwà󧌉|mâIüQ©%›ØCæY¥²,L¬Œ);Ž×qž>ñÎxÅMà¶¡¡Kka§øÿ^·ð­µÑ¹�K· 2NJ5Â0b‡¸Æ9'ƒÍrW±xƒÅ´ïŠü1‹¼A¤è°XÅpÑX^2m+~#*„»‚H#pþ#YÚ§‹u¯†:�Å V×µMA¿³c¼ÑnonžIÌ",¡'‚QÓþy“^É£|:þÍøË®ø÷ûSÍþÔ²[?°ýŸo•�ÝænçýOM£ïuãš>iÿ|OáÝbîóìÇLp."ò<ϵÂ8Œ�Ão!¹ÁûçŠòï]xŸEøÓð»BÕüA­\‹½îïíîo¥‘d™ÖíþufÁ+„^¸=+_J—Ä_~(xîÉ|Y¬xMðÜÂÎÒ 2_+|›¤Pò|f&$ïÅzN³ðëûKã.ƒãßíO+û.ɬþÃö}ÞnDÃw™»�õÝ6Ÿ»×ž1uÿ„7OâýWÄñm熧ÕÓf£VÉ:Mê˸�Œy9ä‚IÍyÿÅox»H×¼àmGSÖ§¹–ÇíZ¥Ï† ÿM»9�ã’HÇRqÆ+¹ý�5ŸßXkÚ‹ìõÔ†ÆáN�w¬Ú4Àûð# Ë´‚q¿Æ*ηðfÖâÇÂï¡kÚ†•®øv/&ÏTeÊrH‘[†K`dŒcŠë>øV÷ÂÚ}Òj¾$Õ,øVˆ0ø7íSÍ«ÊQÁ›vÏÈYI €2r0äõÆ/޾x#Æ´Ú�Ìšuìí¾i4ùV1+¬U•—'¹g©­O‡¼#ðþí¯t[I¦ÔJ”—’y’*ž¡p®}@µxÁ¿n¼‘œÿå2ºÏÛ[þIf•ÿa˜¿ôDõèðª´?ø[ð°¾Õ©mÏ1>Ïþ£Èû»7}Þ~÷_n+Câ‡Ãý+âF�o¤k—Ð[At·jÖnŠåÕ@%•†0ç·¥|ÓûDi×S|øI¨Æ¬m-´Ø¡”Ž�¤¶„¦ïÛW[¢|1×µŸA¬éÿõ§Ó$ˆIço”* d†ÿIùHèAé^òžÑÛÁ6¾¾¶û~�œV^]κF¡T’ù¾Pr1ƒÈÅyEÇì»à9nÌÉq®Ã9òé l´e¿ZägøPžøñ=Äðx’-Bk…kXB,k›Ü‚²8l®}>ïzíÿdßiw_,´èî [Í2IÅÔLà2†•¤G÷pÀg§Ò½'Àþðÿ‚4wÓ|;§¥µ¼‡tÌÄ»ÌqŒ»OÓ ìyÖ³û5øSÖý#Ô¬QÛ{ZZ\*ÂO|¤¨öÛå>Öl´ñfŠoín­SdVi"}™G‘äž o$‚X’Ù,Iö¯P Š( Š( Š( Š( Š( ¼ëö‡ÿ’-â¿úõú×¢×�~ÐÿòE¼Wÿ^£ÿCZÀý’ä‹iÿõõqÿ£ {%xßì“ÿ$[Oÿ¯«�ýkÙ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(È?kù"Z¿ýv·ÿÑËZ¿³wü‘/ ×?ôsÖWíaÿ$KWÿ®Öÿú9kWönÿ’%áoúã'þŽzôª(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ ù—öàÿ�…ëêýkéªù—öàÿ�…ëêýhè¿ÈLÿ¯X¿ôWë?ÃßòÓ?ëÖ/ýV…QEQEQEQEQEQEQE|«ûmÈWÀÿöõÿ¡C_UWÊ¿¶×ü…|ÿo_ú5õUQEQEQEQEQXóx£@‡X}&msJ�UE,ÖMw™@Mä”Îà6|Ý:sÒ€6(¬í]Ò5Øå“DÕl5â;dkK„˜!ô%IÁª—Þ/ðÖŸ~loüC£ÚÞƒ�³Í{IŸM¥³@”R#+¢º0ea�AÈ#Ö²5Ÿh˵®iZt¬2©ww,G°b(bН§ßZjV©u§]AwlÿvX$#}àÒßÞÚéö¯ss­²ròÍ D_©< žŠÈѼM ë’ø—âßø®Â-.ûPQ«Gi†Ž6'æXÈfuþ#€˜' ЦÃñÓá´ÐC*x¦Ü$²˜W|! 9  *¿0ùޝ<léß¼©ø£þÛÙ\jä•Xc,Uˆê«&61öšùSÁÖvÇöBñÝÙ‚3sý± ù¥Fì+ÚàgÛ{ÿßGÖº¿Z[Ù7ìÒÖ°Ç HmYÊ(‹5›ýK±ÿ�÷üZð7…µ‡ÒõßAo~˜ß Å$¥3È QHSŽÇˆþ0xÃ’ÙG«ø‚(�í²Þ[´VóL²BÅ‚°hчUn3ž+çßx˜êºßÅM/PÖm|)eaç,:e•´qM¬Ìwª´��ϸ„-ê¯Øit�ˆO¥üðgƒtmFÚË\ÖÅÄrÞ\Î!ŽÆØÝL¦Fv ) ;às· Fi¿<¨øRëĶÚìØ–³›ineŽH€”*¶À®¡˜á— 9ϱ«ž ñ÷…ül“Ÿ ë_´2F£u¡(à6=ñŠùÛ⎓á½Âß cðõíž«à­'X ¬\ÚȳÇ$¤ÄÌÒ”$n+æpz¦+¥Ó/l|EûYYj^ ž ­2ÛH+ª\Ù�Ñ;�(,8'&ÿö @¾»ÿ„¢%¥0€mæ¸Oɳp0ù±Ž¼ðkÐt½BÓVÓ­ïôÛˆ®¬îIÑ6UÔô ×ÊŸôÛ9¿f?‰72ÛB÷ ·ªddˆŽÑ}˜’= ¯aý—X·À¯ $œ\ŽëæZàíþ4|Fñ\š¦¥ðóÁ–7¾°™¢in\™ŸhÏÌ_˜‚ÕVÆGZì´¯‹×ž ø@|W០]êZÀ˜Ù¾›i<¹€±*2P) ÀÏ qÖ¼"ëSðd> ñÄš�ˆ¾xžÞåÕ­,&’ê Øu *!lü¤…ÁàñëŸ >-ߨüOxúÛP¼XoZÑn-`RóE�¶V¨ÆâÉ»ÔäšÔðwÄŸ'Å_xçKÒúòÏí‘M¤Hì° ¬Û%NŒúíê5ìµóoƒîôÓûQ™þÜÇ}¢êÚkÞk2C'œ‹+;Žv�þWʈÀè>’  ý¬?ä‰jÿõÚßÿG-jþÍßòD¼-ÿ\dÿÑÏY_µ‡ü‘-_þ»[ÿèå­_Ù»þH—…¿ëŒŸú9èÒ¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+Ï~7ü9‹âOƒ[MI–ÛQ·“ís¾v‡‚­Žv°8öàóŒB¢€>Fð¯Åß| ’ üGЮnôûp#·Ÿ8•c6I÷%P: ‚:gŒW¸øOão€|J¨-µû{+†ÿ–‡ú;é–ùIú1®÷TÓluk'³Õlí¯mïCqÈ�õR¯!ñOìÛà-iž[{Ívç6Se3þã†{.(Ù š+ˆV[yXœe]2‘ìE>¾U›öiñ^ƒ3MàŸy/œ®ã-£~-lþTßì_Ú7ÜYê-ªD½OÚ-çÈÿ¶À7åÍ}YE|©ÿ ;ãÆ�Æ¡à³xï7öT¯úÄØ¥ÿ†�ñµ‡ü…ü´Ž¿$ðÿèJhêª+åtý­3²ïÁE[ý�K¡Š¬¯íke�»Â7 ÷ÅòŸý’€>Ÿ¢¾cÚÓMy~¼cþÕâ�ý”ÔþÖöÃýWƒ¦n?‹Q Ïýû4õò¯ü5F­wÿ ßn'§úcËü£Âõø±©q£|>Îzì멱ø‚}UE|¨|EûFk¼XéN ÿN°C�ûüI¤? ¾7ø˜ÅAã±@ß~&ÔdÿÐ"Oç@JxƒÅ‡b2kºÎŸ§€3‹›…F?@NOá^3ãÚwºJI†-îuËΊûLîÌ7Áyõ¬}öRÒÖ_;ÄÞ%¾¾‘Žæ[X–ŸvbäþB½Á¿ ¼à÷ItMÕ.“‘u83L¨gÉ_ø(Á|àO|`ñ½—Œ>$FöZ%³+ÁjècóTÂ8ã<ªÉf䎄õXÑEQEQEQEQEñ¯�|=Šÿl;�æIc¶»’ŸÊr¬Ñ g\Ž›”>ƾʯ•æû?Ïý(³øË›ðcàåô>³Lº�â[ c‘ÝÕ�X³ob[;# sÆr+È< cð'þËqãnîoÜÅæ\Ì#»ÞFäªmM‡oL�Ù9=+èïÚÁ>=ømw¦i¡[R·•/-QŽŽ€‚¹= V`=ȯðÄ/x[@µÐþ!|.ŒkÖH iF�nÍq·€Ïæ`ØÆOÍ“Ïzêd?JÚψ¼º‹ê:M˜k­6w ¿ºY6rªÛ‘¶œ`“êkÉ<1qá{oˆ>$�㞟ª\êÌG˜¯ ɸîf Áˆ#nÜd`tÁô·Á½RËÄV:¦£á¿‡Þ»ò+kù,¢Ž9‰åW*¨ì¹ Hq×8¯*ºø”ö7úž•ñÿÁ'R™dÿDž³ô*ŒJåPÁ‰äþ�û7øoÂz+j÷^ ñœºå­×/b@Œ@7|ŒÑŸœ0.ã€yã¦<ïX‚�Ÿ´^£á½Zòâ/ è&aöh›nDL#r;niïc;xíQ~Ï>¸Ô¾5Ï⯠è—Úƒ!IGrÌ|ÀÑí†?{çùñ’g¦t|i¥xƒáÆëßizEÆ­áÍPÈ×BÝI1‰iˆiÞF9Í?ãÏ À^Oø®ô{ý*h‹ˆî]÷p��bH`̽0O[ãωæñ—ìÉàÝzéT\Ýjq‰¶Œ"ErŽ@ì )8÷¨¾'|R¿øÏ£Eàÿ‡¾Õ�n¦F»šám A v’ª»€%˜Ž�9®¯âÿà BÓöpѼ7£D÷÷šÑÝÊ�)f”âO4 ê~iY±×€={á?ü’ÏÿØÏÿD%|ÿû Ìíÿn?ûqV¾ür¹“Àzg„´O j÷Þ,´´M>%�ÈWbÈí�Ê�F8<޵Wöÿ™ÛþÜöâ€9ÿøz/þØw:%Ì’Çmw$ ?”åY¢(ι7(*}�u?´réÿ >XxgÀv§H‡^¹–K§ŠWi#T »Ø–ÁÞ½ú;š­ÿ7Ùþè]÷íQð÷Qñ¿„,nô(ZçSÒeyÝ~ô±8Âú°*§ðqÎT±ý™ü<–WQ]6¸Ð Úˆ¸pVR:„ÎÍ ö œwïMÓtï|øâ95MjßRžÕ°XÑŠÚ4Œ#3}å ÊÀ`Ï­`Z~Ó"×ÃI§_xgWÿ„Â(|Ÿ+Ë&” n9;ÆO;vŸL÷®ŸÃG޾$ü×´ïˆB[ÝJ0,Ûù2�¸uyTpu^6‚'¸ ø^>Þèsê_õ»»Ï^Í#Ê’-Ùò†pè׿c÷²Iê85ÕþÎ^(³Ðþ2ê>ðέ>©á DI%‹L¬¥]SÌÎÖƒ€êx°¥bøÄÞøo¦ÉáÏŠß #žþÚWò¯N™ÒJ¤“†i1¸N1Àí^Áð_Ä>ñWˆžçAøW… ¸fƒY0D#ÜHb RÜx ñ½Æ“gûCø‚OŒ•î�ÒH¶© ²â-ÃÈa†RP&rõÏR¯Yøá¿ÛxÞûYðŒçž9‘€Ñ÷ec#£‡ùÜ+rŽ9<çÅ_u¿øÃTÓ>5øRoÃ�‘e-¶ž�àœV%ùÉzá6{ž™ÀÚTQEQEQEQEQEç_´?ü‘oÿרÿÐÖ½¼ëö‡ÿ’-â¿úõúÐì“ÿ$[Oÿ¯«�ýkÙ+ÆÿdŸù"Úý}\èÃ^É@ú~‰¥i··—šv™ciwzÛîg‚Ý#yÛ$åØ ±É''=MhšTºÌZ¼še‹êÑ'—ë[¡�Ÿ”I�À|ÇŒ÷>µ¡EbÃá?A£O¤A ié7$šÉ,£Hãn£ ´Ÿ•y#øG ©gðæ‡qý™çèÚl¿ÙxûûTo²cn<¬�“q÷G ­Z(.çú-Öªš¥Î�§M© näµF™@é‡##󬶸wঠÁþ!F2IÀù}Iü먢€2¬<7¡iÚ\únŸ¢é–ºtì^[X-cH¤b%� €#°©tmJÐàh4]2ÇN…ÎæŽÒÝ!R}HPkBŠÊÓü9¡éÚUΙ§èÚm¦›s»Ï´‚Õ#†]Ê· l¨är*Þ—¦ØéXéVVÖ6QgË·¶‰b�2I8U ’OÔšµEcjþðö³t·:Æ…¥_ܨeº³ŽWذ&´��±²6fÚhSËò ›1�»zcªz(;Eд� 9#Ñ4« :9ç[Kt„1õ!@ÍhÑEyíaÿ$KWÿ®Öÿú9kWönÿ’%áoúã'þŽzÊý¬?ä‰jÿõÚßÿG-jþÍßòD¼-ÿ\dÿÑÏ@•EPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP]A‡UaèFj»iÖLIk;bO\ļþ•jФšF›&=>ÍIô…Gô©¢³¶‹ýU¼)Î~T§¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ ó¯ÚþH·ŠÿëÔèk^‹^uûCÿÉñ_ýz�ý höIÿ’-§ÿ×ÕÇþŒ5ì•ã²Oü‘m?þ¾®?ôa¯d Š( Š( Š( Š( Š( Š( Š(  ý¬?ä‰jÿõÚßÿG-jþÍßòD¼-ÿ\dÿÑÏY_µ‡ü‘-_þ»[ÿèå­_Ù»þH—…¿ëŒŸú9èÒ¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+3Äú%Ÿ‰<=¨èÚ’–³¾… “iÁŽ£Üuâ´è Ž­%ø‰û:jW0›?í¯Ë.ýà%»n 2ar09Å€kØ|ûEøÄ‰w6‰vÜï“äÏ´‹•Ç»múW±º,ˆÉ"†Fea�G¡¯2ñwÀ¿x™žYôUÓúsyë´|„û•4è:V­§jöþ~“i}üô¶™e_ÍIv¾^Õ?ey,î Ï„¼_qk*ýŹ„†öÒ2?ô©ÿíá¾4��MWî�¨ ¸ú\(êÊ+åOøLÿhm‹ÿ@¯Sö—?÷á‡éKÿ ÿâfŸÿ!Ÿ‡Û1÷¿Ð®`úýìÐÕTWÊ¿ðÕš�¯‡�öžÿéÍóˆÕˆÿkkSþ³Áó/ûº€?ûLPÔTWÌðÖ¶?ô(ÜÿàrÿñÉ?kkQþ¯Áó·ûÚ€ûLÐÔTWÊ¿ðÕº…×�÷úÿi?”CÚ�øh‰z‡ü�¾oÏÝÿC¹ŸÿAÆhêª+åOøMh]o‹ <·Cö‹÷ý�ëH| û@ø“�[ħKVûÀê>–àŠúƒTÕtý&ÜÜj·ö–0ùis2Ä¿›+Ê|aûExÃèée{.µv¼¬)Ÿy �pOÒ¸ 3öWžöà\ø·ÆÜÊß}má,ÇþÚHÇÿA¯Qð�ÀŸxi’X´eÔn“¤ú‹yçë°á3î€<*úïâ'í¨[ÛAcý‹á¥\ƒäŒq¸¹Á™Ç8 ƒ­}_á=ÏÂþÓ´M00´±…aBÝ[Xû“’}ÍjF‰kj¨Šª¨Àv�@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@A%•¬¿ë- |z0h¢€ý›cÿ>Vß÷韕¬yòí LõÛQ@ÑEQEQEQEQEQEQEQEQEQEQEQEÿÙÿØÿàJFIFHHÿÛC   %# , #&')*)-0-(0%()(ÿÛC   (((((((((((((((((((((((((((((((((((((((((((((((((((ÿÀé0"ÿÄ ÿĵ}!1AQa"q2�‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2�B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ú¦Š( ¼“Ä´�t vûI½¸¿{«)Z ŒV¥”:œFpx¯[¯�þéÖWÿ¾-ýºÎÚçf¨6ùÑ+í̳gPßü4ÏÃßùëªÿà'ÿ^�øiŸ‡¿ó×UÿÀOþ½zÏü#º/ýôïüOð£þÝþ€úwþ§øP“ÃLü=ÿžº¯þõèÿ†™ø{ÿ=u_üÿë׬ÿÂ;¢ÿÐNÿÀTÿ ?áÑè§à*…y7ü4ÏÃßùëªÿà'ÿ^�øiŸ‡¿ó×UÿÀOþ½zÏü#º/ýôïüOð£þÝþ€úwþ§øP“ÃLü=ÿžº¯þõèÿ†™ø{ÿ=u_üÿë׬ÿÂ;¢ÿÐNÿÀTÿ ?áÑè§à*…y7ü4ÏÃßùëªÿà'ÿ^�øiŸ‡¿ó×UÿÀOþ½zÏü#º/ýôïüOð£þÝþ€úwþ§øP“ÃLü=ÿžº¯þõèÿ†™ø{ÿ=u_üÿë׬ÿÂ;¢ÿÐNÿÀTÿ ?áÑè§à*…y7ü4ÏÃßùëªÿà'ÿ^�øiŸ‡¿ó×UÿÀOþ½zÏü#º/ýôïüOð£þÝþ€úwþ§øPàÏŽž ñˆ­´]&âõo®wyB{rŠÄqœžp z�|óã«+KÚ‹áúYZÁl�jä¬1„þóž+èj(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š*Û…´³žáÁe†6��Ô€3SU þ@Z—ý{Iÿ šð]/öˆ×µ‹_µèß u›û2ÅV{y]Ô‘Û+öÍq_¼aãø³ÆÑøkâ ±¯Ý ‘ŠTò>glgË;¾ÿ\•꿲ü‘«oúüŸÿBí4à?ð¼ü_ÿD�Ä?œ¿üf�ø^~/ÿ¢GâÎ_þ3^ýExü/?ÿÑ#ñç/ÿ£þŸ‹ÿè‘ø‡ó—ÿŒ×¿Q@ÿ ÏÅÿôHüCùËÿÆhÿ…çâÿú$~!üåÿã5ïÔP€ÿÂóñý?þrÿñš?áyø¿þ‰ˆ9øÍ{õà?ð¼ü_ÿD�Ä?œ¿üf�ø^~/ÿ¢GâÎ_þ3^ýExü/?ÿÑ#ñç/ÿ£þŸ‹ÿè‘ø‡ó—ÿŒ×¿Q@ÿ ÏÅÿôH¼CùËÿÆk¹ø5ñ4|H±Õd}m&çNœA,KærAï´F#èµà?²Ïü…þ#ÿØdÿ7 â?ü�7Ãïúôý©^ý^ñþN›á÷ýz?þÔ¯~ Š( Š( Š( Š( ŠÄñ—ŠtŸè3k ¸6ö12¡uBä³5ç?ðÑß ÿè-uÿ€Rÿñ4ì4W�ÃG|7ÿ µ×þKÿÄÑÿ ðßþ‚×_ø/ÿ@ÃEx÷ü4wÃú ]à¿üMðÑß ÿè-uÿ€Rÿñ4ì4W�ÃG|7ÿ µ×þKÿÄÑÿ ðßþ‚×_ø/ÿ@ÃEx÷ü4wÃú ]à¿üMðÑß ÿè-uÿ€Rÿñ4ì4W�ÃG|7ÿ µ×þKÿÄÑÿ ðßþ‚×_ø/ÿ@ÃEx÷ü4wÃú ]à¿üM9?h߆ìê¿Ú÷#'6Ràã´ëôT}í¶£cåŒñÜZ΂H¥�²®¤djz(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Šà~8xÖóÀîµÍ6Þ ‹¤–8‘gÎÁ¸ã$ ùך|tÕô�Ñx?Ek[È2®$”uàó/¡®‡öºÿ’3wÿ_–ÿúz‡ƒäPÐÿëÆý´ó�Ë?�~ðÌz“á-2kT•åq2Ëž’]Gü%ÿèLÑ?ïèÿãµïÔP€ÿÂQñïþ„Íþþ�þ;Gü%ÿèLÑ?ïèÿãµïÔP€ÿÂQñïþ„Íþþ�þ;Gü%ÿèLÑ?ïèÿãµî××Öš|uýÔ°çæ�"çÓ&¥†Xç‰%†D’'WBaê ÿ„£ãßý š'ýýüv�øJ>=ÿЙ¢ßÑÿÇkߪï-¥»šÖ;ˆ^æ �«‚èBËÔgÞ€<#þ��ô&hŸ÷ôñÚ?á(ø÷ÿBf‰ÿGÿ¯~¢€<þ��ô&hŸ÷ôñÚ?á(ø÷ÿBf‰ÿGÿ¯~¢€<þ��ô&hŸ÷ôñÚŠëÆímf¸ŸÁÚ"à 4ŽÞ`8P2OúßJú²üUÿ"¾±ÿ^sè€9O�Þ6¼ø�à }oS¶‚Þ馒X3°í=@9#¯­p²Ïü…þ#ÿØdÿ7­OÙ þHÝ¿ý~ÏüÅeþË?òø�ÿa“üÞ€ˆÿòtß¿ëÑÿö¥{õxÄù:o‡ßõèÿûR½ú€ (¢€ (¢€ (¢€ (¢€<_öºÿ’3wÿ_–ÿúvþð�†åðÆ‘$žÑÝÚÎfk(‰$ É'mqµ×ü‘›¿úü·ÿЫÔü%ÿ"¦‹ÿ^Pÿèµ  ÿð‡xcþ…Íÿbÿâhÿ„;Ãô.hßøÿ[´Pü!Þÿ¡sFÿÀ¿øš?áðÇý š7þÅÿÄÖí…ÿw†?è\Ñ¿ð/þ&�øC¼1ÿBæ�ÿ€1ñ5»EaÂá�ú4oü‹ÿ‰£þï й£à _üMnÑ@_ð‡xcþ…Íÿbÿâhÿ„;Ãô.hßøÿ[´Pü!Þÿ¡sFÿÀ¿øš«©øÂz–ŸqgsáÍ'É� nc´�Ü0ƒî+§¢€>dÒõ közñBi:ÓÜj5 ÑnðY¬Øž‡Ðú¯CÔs‘_Ji÷¶Ú�”–Çqk: "–6 ®§¡UOèzw‰4[­'ZµK«”Ù$oú{ÔÒ¼KöV{�?Qøƒá‘w<ú^‰©ùi)ÉEß2ŸÏbŸLçÖ€=þŠ( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ý®¿äŒÝÿ×å¿þ…^¡àßù4?úñƒÿE­yíuÿ$fïþ¿-ÿô*õÿÈ¡¡ÿ׌ú-hbŠ( Š( ñvŸ£x«ö„¸Ñ¼|êú5¦Ž“i¶³ÎbŠI†öàŒ·Þïü>ÕNÞÿMÐbð·„>ø–tÒu�bæ�Cx�¬ö*±‚-ãhÎF8>¼æ½—Æ>ðߌá†?iú€„“>UÓ=@e �횆‡ÞŸÃ0ø}ô;1¤BþdVè lï†0oö³Ÿzñ‹¯ˆÞ*‡Á·ÚhÕ‘µîw1äwsÎs@ÿo<[4Õ§Œaœ k�ö)®¤·k‡‰�ÊÊ!%C)p3ŸjôJÅð§…tO ØÉgáí>+($s$›If‘½Y˜–cõ5µ@Q@eø«þE}cþ¼æÿÐ jV_Š¿äWÖ?ëÎoýДþÈ_òFíÿëöæ+/öYÿ�¿Äû Ÿæõ©û!É·ÿ¯Ùÿ˜¬¿ÙgþBÿÿì2›ÐñþN›á÷ýz?þÔ¯~¯ø�ÿ'Mðûþ½ÿjW¿PEPEPEs_o§­:I0 ލ ÀÜq“é@¢Š(¢Š(¯ýš¿ä ü_ÿ°×þÕ¸¯~¯ýš¿ä ü_ÿ°×þÕ¸ ~¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(Åÿk¯ù#7õùoÿ¡W¨x7þE þ¼`ÿÑk^_û]É»ÿ¯Ëý ½CÁ¿ò(hõãþ‹ZÊñÄ�xkT}7]×ììo‘UÚIÜ¥fÂæøwÿCf�ÿ}7øT¾-øMàÏkRjÚþ‘ö«ùQ¤óä\…+_3ø�UøS¢xƒRÒßᦧ3Y\IneKér¬FG=(é?ø\ßÿèlÓ¿ï¦ÿ ?ás|;ÿ¡³Nÿ¾›ü+å¿øJ>ÿÑ.Õð>Oñ£þ�„ÿôKµ_ü“ühêOø\ßÿèlÓ¿ï¦ÿ ’ßã€.n"‚éï4¬3e˜œÒ¾Wÿ„£á?ýíWÿäÿ–ÓÆ í.¡¹·øaª¬ÐºÈ�öç8`r_Q@oÑ_7ÿÃSØС«ßÕÿ ?á©ì?èPÕ¿ïêÿ…}!EEk0¸µ†`¥Dˆ¶FjZ(¢Š+/Å_ò+ëõç7þ€kR²üUÿ"¾±ÿ^sè€<§öBÿ’7oÿ_³ÿ1Y²Ïü…þ#ÿØdÿ7­OÙ þHÝ¿ý~ÏüÅeþË?òø�ÿa“üÞ€ˆÿòtß¿ëÑÿö¥{õxÄù:o‡ßõèÿûR½ú€<“âßø‡Å:ŽƒñûDÓäT e9T!@'‡’ éÞ¹ÏøSÿ¿è¯j÷îOþ9^ýExü)ÿ‰_ôWµ?û÷'ÿ£þÿįú+ÚŸýû“ÿŽW¿Q@)|\øiã�áÞ³¨ë?oõ}>ÐËe"8Y�u¹NÕó�†ü1­øžì[xK»Ô&î Œ°_©è?_¥ÚÖ“a®i“iÚ½¬Wv3cÌ‚Q•|FGÔ “MÓìôËDµÓm ´¶O»„Qø(æ?ƒ¿>#èSEsuâ¹|9m�ÆÎÚO´3}Pæ1ÿ�}+êdx­ãŽYZi@i\ú�8…IEx¿íuÿ$fïþ¿-ÿô*õ? È©¢ÿ×”?ú-kË?k¯ù#7õùoÿ¡W©øKþEMþ¼¡ÿÑk@´QEå?µ'ü�Ïým¿ô¢:õjÈño‡4ÏhZ.»\i×;|ØÖFBv°aÊ�G*(åŸ h÷¿þ!øoRÔ2Ñ|¤G©xŠèÛÚÉ2À¥T±,ÞÜ’}�­�/Q³Õ¬!¾Ó.¡»³™wG4.X{@¨¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠñÚëþHÍßý~[ÿèUê ÿ‘CCÿ¯?ôZ×—þ×_òFnÿëòßÿB¯PðoüŠýxÁÿ¢Ö€6+Á|`~8�êŸð�Zé-£yíöC"Á¸Çž3“œýkÞ«;Ä© žÕRêsmnÖ’¬““”9l{hçìþÑóé¢ÿß6ÿãFh�ùôÑï›ñ¯0ÿ„_áŸýíCÿóQÿ¿Ã?ú+Ú‡þM@ŸŸÚ#þ}4_ûæßüjΘ~?�JÓíöš0³óSÎÂÛçfFì`úf¼Ÿþ†ôWµüš�øEþÿÑ^Ô?ðjû{É‹þy§ýò(òbÿžiÿ|Šø‡þ†ôWµüš½ Dýœ¬5½&ÓSÒüªOcu–E¹Ôô8-šú~Šù·þuèxÕïÏÿgGü2êÿÐñªÿߟþ΀>’¢¼—á'Á±ðóÄ: ñî©ç[&xöªå•·}ãÏË�ƽj€ ËñWüŠúÇýyÍÿ Ô¬¿ȯ¬לßú )ý�¿ä�Ûÿ×ìÿÌV_ì³ÿ!ˆÿö?ÍëSöBÿ’7oÿ_³ÿ1Y²Ïü…þ#ÿØdÿ7 â?ü�7Ãïúôý©^ý^ñþN›á÷ýz?þÔ¯~ Š( Š( Š( Š( ý®¿äŒÝÿ×å¿þ…^§á/ù4_úò‡ÿE­ygíuÿ$fïþ¿-ÿô*õ? È©¢ÿ×”?ú-hVŠ( Š( Š( Š( Š( Š( ¼öjÿ’ƒñþÃ_ûVâ½ú¼öjÿ’ƒñþÃ_ûVâ€=¿\Ñôí{KŸNÖlá¼²�vÉ Ë�ÀûŽE|ýªøÆ?oçÖ¾Í.¯á†>eÞ‡9.È;•îp?ˆ|Þ¡…}!EpŸ ¾(øâ%‰m.co©D?Ò4ùÎ%ˆ÷#ûËî?Ww^CñGàµ�ˆïÿá!ð¥ÓxÅ�·›Õ¿È“8þøûCŸPkÁu[�Â쿲µ`vC©�‹{�Ð3ƒ?Þzí z¢›‰,k$N¯€ÊÊr=4ê(¢Š(¢¾xøÉqâ­gㆃá/x¢÷B·ºÓŒÅ c·p2Hd� u ¡è¯ÿ…=ñþŠæ©ÿ|IÿÇ(ÿ…=ñþŠæ©ÿ|IÿÇ(ߨ¯ÿ…=ñþŠæ©ÿ|IÿÇ(ÿ…=ñþŠæ©ÿ|IÿÇ(ߨ¯ÿ…=ñþŠæ©ÿ|IÿÇ(ÿ…=ñþŠæ©ÿ|IÿÇ(ߨ¯ÿ…=ñþŠæ©ÿ|IÿÇ(ÿ…=ñþŠæ©ÿ|IÿÇ(ߨ¯ÿ…=ñþŠæ©ÿ|IÿÇ(ÿ…=ñþŠæ©ÿ|IÿÇ(ߨ¯ÿ…=ñþŠæ©ÿ|IÿÇ(ÿ…=ñþŠæ©ÿ|IÿÇ(ߨ¯ÿ…=ñþŠæ©ÿ|IÿÇ(ÿ…=ñþŠæ©ÿ|IÿÇ(ߨ¯žï>|G¶´žsñkTaløÙ'8ÿž•ÑþÊþ!Õ¼KðÁîõëùï–švÜû¡ž§–=hÚëþHÍßý~[ÿèUê ÿ‘CCÿ¯?ôZ×—þ×_òFnÿëòßÿB¯PðoüŠýxÁÿ¢Ö€6+À#%¼)c)É  gï{WÑP€ÿÂÈøÇÿDÂ?ûúøª?ád|cÿ¢aýý?üU{õà?ð²>1ÿÑ0�þþŸþ*�øYÿè˜GÿOÿ^ýExü,�ŒôL#ÿ¿§ÿŠ£þGÆ?ú&ÿßÓÿÅW¿Q@ÿ #ãýÿïéÿâ¨ÿ…‘ñ�þ‰„÷ôÿñUïÔP€ÿÂÈøÇÿDÂ?ûúøª?ád|cÿ¢aýý?üU{õà?ð²>1ÿÑ0�þþŸþ*�øYÿè˜GÿOÿ^ýExü,�ŒôL#ÿ¿§ÿЫ߳_‡|K¥êž:Ö•.µ|—QÂÌ%¥f’p € ׸Q@Q@`xÛÂ'�tY4ÏY%Í»r�Ñâoï#uSþNk~Šù¡¡ñÏÀ)‹ÛyÞ(ø|%úë5Ïþ;õû§ý’kÜü ãm Ç::ê>½Kˆ†‘Ÿ–H[û®½Aýl×Fê®ŒŽ¡•†# �Jðoˆ_gÐõ¼cð³P_êÖêežÓpKiÔrÝ~Uƒòý:м³ª²«2†oº äý)kàüqñV½âý _ßœÚ:�* ò�Ï1®ñÆ;=ëí¯‡~/Óüsá+sKa²uıg- ƒï!÷ó=褯ñoü�Ç„ìÿÊj÷ºðOÿÉÜxGþÁOü¦ {¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(žµÿ {ÿúá'þ‚kÅcOù$—ö›ÿ@޽«Zÿ�=ÿýp“ÿA5⿱§ü’K�û Mÿ G@¿k¯ù#7õùoÿ¡W¨x7þE þ¼`ÿÑk^_û]É»ÿ¯Ëý ½CÁ¿ò(hõãþ‹Zäükñ“ÁÞ ×¤Ñõûëˆo£E‘‘-�Ædr+þ?áÇýîÿð Oð¯@Öüá}vý¯µŸé—׌¡L×êî@è2E|íãDh¾)Õ4Ý7ànŸ¨YZÎÑCt–DÊ 1ûP¤ÿÃGü8ÿ �ßþIþÃGü8ÿ �ßþIþã¿ð’ÝÿÑ¿Ùà¾Oþ7Gü$·ôoö_ø/“ÿ�бÃGü8ÿ �ßþIþêÚ>£m¬i6Z•‹´¼…'…Š�J0œùþ[¿ú7û/üÉÿÆë¬³ø×ãÛ+Hmm>ÝÃm ãŠ8§ ŠËà@LQ_6ÿÂôø‰ÿD²ûþøŸÿˆ£þ§ÄOú%—ß÷ÄÿüE}%E|ûáߌþ=Ôµý:Æ÷áµí¥­ÍÄqKpÉ6"V` ¦85ôQE—â¯ùõ�úó›ÿ@5©Y~*ÿ‘_Xÿ¯9¿ô@Sû!É·ÿ¯Ùÿ˜¬¿ÙgþBÿÿì2›Ö§ì…ÿ$nßþ¿gþb¼›ág„¼câoxàøOÅÍáûXµYtE%¥bσǠ÷ Eø�ÿ'Mðûþ½ÿjW¿W‡x?ষ§øÿJñO‰üks®O§†¤°œòqc�ÎzW¸ÐEPEPEPEPEPEPEPEPEPEPEPEPEPEP\ßÄO �xNóB“R»Ó¢ºI-¶ÝÌ çiÈû§¸Ï­t”PÆþ(ý•¼EfOêö:šÄs)·|~«ŸÄR|“Æ¿¼ZÖÞ(Ð5|7¨8ŽîEŒÉ-Ñf™^;óÓè+ìšFA Æë$jñ°d`YNA¸¯ñoü�Ç„ìÿÊj÷°€:^ âßù;�ÿØ)ÿ”ÔïtQEQEWÈÞ&ø�¯Aâ+|I¸Ò¯´ÝRæ 7F`Ÿí*¬v(p¸\Ÿ—œôÍzλñro ø{ÂQkçĺ½ŠÝM ÝÚÙAÔËÈÀ…$äÇ^8 `¢¼ CøÄ5o ]nnbð¢xJMV[ªY'Žà£sŒ“ò•àÖÿÃÿ�VÞ,Ô.ì?²ãKÄÓŽ§o¥üwdcþY¹ùDrŒŒ«3É ^¢¼2Ûö€·ŽãXƒQÑ¢i,lý›~.ѰS0U†FHÜ. ß k:þ¯¥ÛÁ¦éö¢èO§êQÞ$™ÇîˆY$Éqï@«Ey¿‹v¾:×.t‡³·µ¾KE¿�ì×Év�fP6È¥”2öÏZõ (¢Š§­Èÿþ¸Iÿ šñ_ØÓþI%Çý…&ÿÐ#¯jÖ¿äÿ\$ÿÐMx¯ìiÿ$’ãþ“èÐïÚëþHÍßý~[ÿèUê ÿ‘CCÿ¯?ôZ×—þ×_òFnÿëòßÿB¯PðoüŠýxÁÿ¢Ö€6+æÿiåñ†±&“ñKBÓ,åÌsj!Ï WaÁ•è>?øÛáOø‰ô]mux‘¤§È€:á†G;…|óâ}_à‰} åEªBî^S!”¯\ÛÛ’jmá}õ¦ƒ¢êþ$ûf›6šÚ\Ûéñ[´q•Û½œe�ñ�Ôjõ (ÅôƒZ®—¨é·�âðe±ÒŸH„æFž\?À@,À¶rX°;³Ú¦Ñ~ZGÿ 뺌7kV"ÂA§X­”j †ó6A“rƒ»§·5ìTPðïÁº§…Ø�O^‹R†+tµ¶Š-:+`ˆ¸ù�†YÜ€2rµwQ@Q@õ¯ùßÿ× ?ô^+ûÉ$¸ÿ°¤ßúuíZ×ü�ïÿ넟ú ¯ý�?ä’\ØRoý:½û]É»ÿ¯Ëý ½CÁ¿ò(hõãþ‹ZòÿÚëþHÍßý~[ÿèUê ÿ‘CCÿ¯?ôZÐõ èz�ɹԴm2òà€¦[‹XäbA’ ª¿ð…ø[þ…­ÿ"ÿâk~ŠDEDTE Š0 =)h¢€ (¢€ (¢€ *¾¡}i¦ÙÉw¨\ÃkkÜòÌáG¹†ò2C\¿‰þ0xMT·‹Å:|“Ik*"£3n%`TZìýðÞÈ è&àúÏs+ìÕ³Áï‡Ð€ÂzgÞŒ·ó4É~È_òFíÿëöæ+ÚªŽ‰¤iÚ�†�e•œy+ FNIÀ«ÔQEQEQEQEQEQTuûÇÓô-Fö­%µ´“(n„ª’3ùWÍÞñ?Ç/øz=oC¼Ð>Å$�‰¢T`Tàñƒ@OÑ^öÚþ<5ù/ÿGÙÿhoùüð×ä¿üM{õà?gý¡¿çóÃ_’ÿñ4}Ÿö†ÿŸÏ ~KÿÄпQ^öÚþ<5ù/ÿGÙÿhoùüð×ä¿üM{õà?gý¡¿çóÃ_’ÿñ4}Ÿö†ÿŸÏ ~KÿÄпQ^öÚþ<5ù/ÿGÙÿhoùüð×ä¿üM{õà?gý¡¿çóÃ_’ÿñ4}Ÿö†ÿŸÏ ~KÿÄпQ^3ð‡âÅæ§®\ø7â ¦xÂÕʧ˲;±þÏmØçŽr=+Ù¨¢Š(¢Š(¬x¢ËÁ¾º×5Hn島ǘ-bóqœd`{“ŠÞ¯øÃñwNÑÞ_ xzÅ|IâkÕ6ÿ`�|È“pÁc©Áû£ñÅyŠ¿jû¹ÅáoÃežþBçë±p?SY µ/|iñ¦Ý{]¾_Yšú;fò"qŸ–,&3»®x¼×Æü[á­kDÓï´ô{½kÙ-›z‰ æ2z¹öÇsŠûá7�¬þx2ÏGµ×ónçýtÄ Íôì=€ Â(Ò(Ò8Ô" ª£Ð ðoÿÉÜxGþÁOü¦¯{¯ñoü�Ç„ìÿÊj÷º(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€)ë_ò¿ÿ®è&¼Wö4ÿ’IqÿaI¿ôëÚµ¯ùßÿ× ?ô^+ûÉ$¸ÿ°¤ßút{öºÿ’3wÿ_–ÿúz‡ƒäPÐÿëÆýµçµe…Þ¡ðvþ;i®dK˜dd‰ �¡¹8…3á§Æßê:—§M«®›}¼Px»â§ŒáÑ|sâth´jÙIÌ.ó;+¢´›ƒÕ€ އ¯ûå„­=�¼¯�òF®qÓ$f€'¢Š(Í~4|-³øƒ¦Gqm'Ø|Gd7Øß!ÚCB1íÏ~ ò;ç àŸÄÍGQÔæðG�`{?iê@g]¢�½‘ÆìsÇ 9ëÙëÀuñÿƒáïû7þƒ-{õQ@WÔ¯­tËïu ˆ­­ RòÍ+TQÜ“\ÏĈZÃí Þë×X•Áò-cæYÈì£ÓÜð+Ætï xÃã¥ü·Žm ÁHÂK]*+%ÀìÍžyþñÿ€�Ö€,x‡â/Š>+ê×øK–š:—ºü   zì=Wðù�lu¯MøUð¯Aøwb~À†ïV˜¤j3€e�÷û«ì?k¯Ð4];ÃÚM¾™¢ÙÅgcÛQ ïî}IäÖ…G-¼3I’ż-¾6e£`ŒƒØà‘øš’Š(¯ ø»àÞ|RÒ<_à1§4ÖvFßnÖËçƒÔaëÜè Ïí éá¯ürŒþÐÞžÿÇ+ߨ Ïí éá¯ürŒþÐÞžÿÇ+ߨ Ïí éá¯ürŒþÐÞžÿÇ+ߨ Ïí éá¯ürŒþÐÞžÿÇ+ߨ Ïí éá¯ürŒþÐÞžÿÇ+ߨ Ïí éá¯ürŒþÐÞžÿÇ+ߨ Ïí éá¯ürŒþÐÞžÿÇ+ߨ Ÿn#ý ç‚Hd_ l‘J6 t#Ú~ÏÕ|ðüé:éƒí²^IrVÞ0P}~\þ5éÔP\‹>ø;Å{Û[Ð,¦�úΉåKõÞ¸?­vP�ÜþÎpi“4þñ†» ¹9‰7¦à%N>¹¦|sÑ~]'Ç:f©í}Ìß÷Ò7þ…^ÿExÿÚ?—ÊðÔ˜þ,¯?¨¤:Çý_ä»ñƒ¤ÂßxÀŠ\}1?­{ýà6ÿ³Ýε:Oñ ÆúÆ»ƒ¸ÀŒQ3õbß ë>ð'†|�Ú=­›ckJ«ºVîrÇó®–Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠÈñ—üŠçýxÏÿ¢Ú¼ÃöGÿ’1cÿ_wúzŒ¿äP×?ëÆýÕæ²?ü‘‹úû¸ÿÐèÙ¨¢Š+/Äú›â}ïHÖí–æÂåvÉqî#�AÁV¥ç~ øCá¿ kÚöòjZŽ ‘!—R¹óüˆÈÁTã¿úÒi?¼3¦jÐ]Àú“ÛZË$öz|·Eím$¼ñ¡xÉ8í^‹Eyý·Â�ßÂ^ðìsê&ÇAÔRµc*ù�*»¸và®\ðíÍ4ü%ðùÒÚÃÏÔ|–×á!'Í]ßiþïÝûžÝ}ëШ ›~!ü/ñ/ˆ5?YiºZ[ë‰1»‹ZˇÏ{b¡Ì¥A ®N{_FÚCö{XaÎ|´TÏ®*Z(¢Š(¯×ÿäð|;ÿ`†ÿÐe¯~¯×ÿäð|;ÿ`†ÿÐe ~¯ø¡ñ¢-'Rð%§ü$-˜ùk|VíþÑHôíÜŠìþ+øÄ&ð£éžÖÆ�u4гM´üОA©ÁÏqŒŒÔ? þhôÓ‘›}(âþ` ³¯ð¯û#õ<ÐðãàÄ¿Úÿð–|N»þÞñ<¤:Ã)ß ©êŽÜm‡zöê( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š(  �È¡®׌ÿú-«Ì?dù#?õ÷qÿ¡×§øËþE sþ¼gÿÑm^aû#ÿɱÿ¯»�ý€=šŠ( Š( ¼KÃ~=ñ�‹~6k6�ŒÐ.Mµþð ²}õܺ8ëúíÝÕ†‹w§Ù5ýä<�Ú«m3¸RBÛ'Œ×‡~Êau üsâÉÕu½KR&öÄ)SjC;sê]¿/Zö_®¶ÞÔ…Ý5Ãú+\c`l޹öÍpŸ<¬x×KÖí|MoZÆ�wöYÞ…~½»U‡t¯U¯œ¾ ]Ï¢ütñ΃¢Aý­¡Þ^5ÅÞ ™Qe(ó#da¾bS�¯c@FÑEQEW€ëÿòx>ÿ°Cè2׿W€ëÿòx>ÿ°Cè2пQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQEQE‘ã/ù5ÏúñŸÿEµy‡ì�ÿ$bÇþ¾î?ô:ôÿÈ¡®׌ÿú-«Ì?dù#?õ÷qÿ¡Ð³QEQEWÍŸ 5vðgí ãmWÓ¯£ê[–?ÝíY$‘ÁWê3ÈÅ}'FsŽhÆ^!µðŸ†5 sPŽyml£ó$H# p ¿­xçì¡oy<4×î,§´´Ö5?>ÛÎ]¥—.Ç o=3š÷Â29¢€ (¢€ (¢€ ðþOÿöoýZ÷êðþOÿöoýZ÷ê(¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ Ô-"¿°¹³¸Ï“qDûNÖ~¼?Ù{ð©X%ÿ¿Ñÿñ5ïôP€Ã1h_ô4ø—þÿGÿÄÑÿ Å¡ÐÓâ_ûýÿ^ÿExü3…ÿCO‰ïôüMðÌZý >%ÿ¿Ñÿñ5ïôP€Ã1h_ô4ø—þÿGÿÄÑÿ Å¡ÐÓâ_ûýÿ^ÿExü3…ÿCO‰ïôüMðÌZý >%ÿ¿Ñÿñ5ïôP€Ã1h_ô4ø—þÿGÿÄÑÿ Å¡ÐÓâ_ûýÿ^ÿExü3…ÿCO‰ïôüMt_>è~ ñd ·Õµ{ûÈcxã[¹¨Ü0O B{÷¯]¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€?ÿÙÿØÿàJFIFHHÿÛC   %# , #&')*)-0-(0%()(ÿÛC   (((((((((((((((((((((((((((((((((((((((((((((((((((ÿÀ¤"ÿÄ ÿĵ}!1AQa"q2�‘¡#B±ÁRÑð$3br‚ %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyzƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ ÿĵw!1AQaq"2�B‘¡±Á #3RðbrÑ $4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz‚ƒ„…†‡ˆ‰Š’“”•–—˜™š¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ ?ú¦Š( Š( Š( ©k¥ž�bo5)ÒÞØIFGèÝQGâÌ]¯™?m_m+D𽬥e¹�ß\8!+ú,~¨(éº+�øCâ‘ã/‡:´Îâh\ÿ×dù_ó`OЊì(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¯Î�Ž^*ÿ„Ç↹©Å&û4—ìÖ¤�*?”ìØ-ÿ¯¸¾3ëwšÃMrëJ‚âãR’ol–ñ³¸y>PÀî‚[þ_žŽ‹ªé‘,º–™}i6Õ{ˆ0O $héŸØŸÅXms—uÆ¡j ú$ƒÿEœ}kêºüñøCÿ „ü kñhº³ZG2ùÌ–’ð8Úä`sò±#è+ô8r8 Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ¾uý¶¿äAпì'ÿ´ž¾Š¯�m¯ùt/û ÿí' kø{ÿ"†¿ìmÿ¢–·ëáïüˆ>ÿ°e·þŠZß Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ¾uý¶¿äAпì'ÿ´ž¾Š¯�m¯ùt/û ÿí' kø{ÿ"†¿ìmÿ¢–·ëáïüˆ>ÿ°e·þŠZß Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ¾uý¶¿äAпì'ÿ´ž¾Š¯�m¯ùt/û ÿí' kø{ÿ"†¿ìmÿ¢–·ëáïüˆ>ÿ°e·þŠZß Š( Š( Š( Š( Š( ©ë�–�¥Ýj:¥ÄvÖ6Ñ™fšC€Š;ÿõªå|ûûhêW¿tË(¤7º‚‰°~ú¢3>Û¶ŸªŠÀ×?j˽R[øRKëhÏ\gqëå ùGԟ¨ÿÃFøÿþ„XÿïÅÅzà Ç@ð>‘m§Â‰æ[G4ÎÍ,Œ ³ß“ø ÕÔЊÃFøÿþ„XÿïÅÅðѾ?ÿ¡?ûñq^×Ex§ü4o�ÿèE�þü\Qÿ ãÿúcÿ¿ítPŠÃFøÿþ„XÿïÅÅðѾ?ÿ¡?ûñq^×Ex§ü4w�G-àXöŽOînè¿>>é;ÕEÕ,›FÖß"(ÚMñNGUVÀ!¸?)BMtÕó·í9¦C£jþñ.”¢×TiX<±Œxö²?ûÞ~ž”öm_M¸7zu­Ë¦h’Bl€­X Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š+Æþ0]øõ'Ôe´×ôoø>ÍSv©.e¹¸,«�ªÛ†%@bGÍ{%ò¦¡¡ë:‹¢Ð[ãåêøšB¡,®¢œÅ¹°UYŒŒŠNF9s^ïð×þ˜mïl¾ ®—<Öþ_Ùµ Àºvíè@ÚË…è;¸èh´¯�m¯ùt/û ÿí'¯¢«ç_ÛkþD þÂûIèÚþÿȃá¯û[襭úÀø{ÿ"†¿ìmÿ¢–·è¢Š(¢Š(¢Š(¢Š(¢Š(¯œ?mÏùü=ÿaÿÑm_G×ζçü‰~ÿ°ƒè¶ ÛÂò*èßõåþ€+V²¼'ÿ"®�ÿ^Pÿè±<_ãx|-¬Ãi¨Z¢ÏaqwÏ›�ÒB»š-¸î¼ƒŸlPaEyD¿lâÓm.ßJ—› oob|Ö¥eòVϪøv>âÑn7£ƒ •6É´u�»Ç½vÔWŠx³âÖŸ}ðûÄZ’M§é·–÷·2Y[Ý´‹:›xÌAþUï~2Îzã£ñ_Äáá©m-oôëEÔO:�Ä/¨ª" 8 •ýì‡ Î:ФQ\]·�ßPñ†™£iZrÏo{¥G¬}®[�/d/&ÜlØrqƒÔg8ã­`|×õ3Â7VúÔÖ·h‰uq<.Qã‹ÍHÀ 9™¿�@§^ ûZÈÃßõñ/þ‚µïuàŸµ§ü�¼=ÿ_ÿè+@Xx{þ@gýzÅÿ  ¿T<=ÿ 3þ½bÿÐ_ Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ¼³ö‹Ðµ-oÁ:{éZQÖ[MÕmõ ôÑÉ»…7�ç;‡ðû…;¢TŸBbl#ùPiá?ùtoúò‡ÿ@ŸãŸé^4´³·Ö<õKYÄèаRx ©È?)Ï#ØsW|*MáH˜bß»À|Çw$ò]³ðFŸo¤ë¶r\ÞÜÍ­DÑ^ÞLêgu1ùc(QµO/×5ÔÑ@�ßÃíò?Eyö‰àÐí$³‚)JÍÄ"o3åäíPF6óU×áÕŒpéÿfÕõ«{»;6ÓÖò)Ñf{rÛ„lÛ1�Ø€c­vÔP·…ì­üU¾“]µìzhÒÂÉ&õ1߸’7ÏrÜýy¬]Wᦇ¬xat�Yîï§T®­rR[ð¢S&Ñ3!8É+Œ}ÒEvôPvÐCko½´QÃH#Ž8Ô*¢�€ ŒW„~ÖŸòð÷ý|Kÿ ­{Ýxíi* 7Ã�îišg ßTgõõŸ‡¿ä¦׬_ú«õKC�¢ÑtøäR®–ñ«Ø…«´QEQEQEQEQEQEQEQEQEQEQEW ñ‡Å÷ð¤3éÚjjz¦£y™ei!ÂI4¹ÀoQ…ð€+höš šÖ›!¢¶{¸À'ª˜Èuѱô«_ð°¾2Ñ<Ÿÿ—ŸüU}‡E|yÿ ã'ýÉÿðIyÿÅQÿ ã'ýÉÿðIyÿÅWØtPÇŸð°¾2Ñ<Ÿÿ—ŸüUð°¾2Ñ<Ÿÿ—ŸüU}‡E|yÿ ã'ýÉÿðIyÿÅQÿ ã'ýÉÿðIyÿÅWØtPÇŸð°>2·Ê>N àì[Î?6­o‡Ÿ •eà›¯x3WÔåñ"xÄßhB8›}Ä;R$i[hd/•ë�2&¾ß ¾uý¶¿äAпì'ÿ´ž¾Š¯�m¯ùt/û ÿí' kø{ÿ"†¿ìmÿ¢–·ëáïüˆ>ÿ°e·þŠZß Š( Š( Š( Š( Š( ©kZ¥–‰¤Ýêz¥Â[XÚÆešWèª?ŸÓ½]¯ ý²ïg´øKo V;½R&ø�$��ûéþÅêß´‡‹5íVx~xL\ÙBÖOo-Ĭ;1XÈ ŸBOÖ«ÂçøÓÿB\?ø)¹ÿâëÐ~i6º?ý8•<ëH®e rò:f'¿'@jë¨Ä?ásüiÿ¡.üÜÿñtÂçøÓÿB\?ø)¹ÿâëÛè ÿ…Ïñ§þ„¸ðSsÿÅÑÿ ŸãOý pÿà¦çÿ‹¯o¢€©sñOÃ犼n¶Ö·”wÚ#N`‡MX¢aÊ¥‚’Ä�¤Žª9' ÖÕ矼S}áÚ)í »Õ5tµº¼PÐÚ‰wn•Áà€õãžsÒ©~ÎÞ ÔüAà;‡Õõª-F{+mH©SymÛ)Ï<äŽyãžsZ¿o|1eðïQo[=Þ•!Xż_ëe”Ÿ�Fr0ÙÎxÁí@‡Äç·øeáý#Äþ´ð½µä3Ä·é�RêJä+™ySË6<¸j¯Š>Øx/ÃÞ4Òï¼Wà_i6RÜ ³»Õ¥ßl²ò_&>3ƒ÷›Ü_kÐ_:þÛ_ò è_öÿÚO_EWο¶×üˆ:ý„ÿö“еü=ÿ‘Ã_ö ¶ÿÑK[õ�ð÷þD Ø2ÛÿE-oÐEPEPEPEPEP^ûkÉ,Ò¿ì5þˆž½þ¼öÖÿ’Y¥Øj/ý=oxþD_Ø6ÛÿE-nÖ€äEðçýƒm¿ôR×;ñÇ7 Õ­~Ó»iWV7-²¶ñuîT'8ÚÀ1œ÷ þŠò] â~£*Ç=�²Ë¦i—wÚÜJ­º)bvE‰>o”’¤ó»‚*M;â.°l5m§›¯øF�ˆ¬Ì*ápq€±$ƒŽAàP«Q^ãoj:}ÇÃ_ê°[ÜÝ=�õÚAi"¨’Ö<Ë1À-’{ÜsÕx“ÇÚæ�}§éšlz�üšGö¬’ZÙ\OÁ-µc‰c$ 8ûìHÆhÕ(® ÛÅzÅÿÄ 3D·¶¶³³ŸD�W¸K¨\Ï2ìh¾ò€@ r89ëÒ¢øÑ¢Cuá-KU�O‚òþÒÎP’\Nê-£ÚY¥�yS À ðÚì@= ¼Gö®ÿ‘7Hÿ¯ÿý¦õë>•gð®�2\Mr²YBây†$”sï§Üד~Õßò&éõÿÿ´Þ€>“ø{ÿ"†¿ìmÿ¢–·ëáïüˆ>ÿ°e·þŠZß Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( C⇊õ_èú†‡á‹ïÜÉt°5¥™}è…Œ‡j9À*OâúüåâMR?jòjšÇìé­Í}#n’Tšî/1½X$1÷#šúò¾*·Ô|[âMKEÕ|Añ;QðÕ‡ˆã$‰<‘ÛÙÍ ¥|†DUÊí ŸP0zÐÓ_5‹�cÁß¿ðuǃ£³¸kX4Ù•—1…VódC‚]‡NªyÎj¿ÇIâ/ YEeªÙézÅž¥î™-Û…�î“vÄ9êH-�ƒÈéX?²åÃ\xViõ[­^í5›ˆ®/§œÌ³²¬j¯7Ͱ B3“œýÿÚ'Gñ¯àÝ1¼#cÞ©aªÁ~¯4É·+·š º©ÁÚ0r0ÇŽà‡Ô´Œ¢‡Ãž7ÓôMÃ�4o{qlÊÒNˆÁ° Hä@ì¿—ôU|É¢üPøÍªÜ}�KÑ|©]¨ù£ƒS·’N:’©wý+éº+ç_ÛkþD þÂûIëèªù×öÚÿ‘Bÿ°ŸþÒzö¿‡¿ò økþÁ–ßú)k~°>ÿȃá¯û[襭ú(¢Š(¢Š(¢Š(¢Š(¢Š+À?moù%šWý†¢ÿÑ׿×�þÚQ<Ÿ töE,±ë»‘ü#ɘdþ$Æ€6üÿ"/‡?ìmÿ¢–¦ñ'†ôŸÛÛÁ­Ù­ÔVó-ÄJ]—k€@?)êx<¥ðÖê+χ¾šŸÙð! ç ¨‡àA…t”�§xcFÓµ VúÎÂ4¹ÕH7ŽY˜MŒõ�ÌrÏ5VÃÁ>°²¿´µÓ‚A}µœdba �-X±(¸c€¤ž+£¢€0Ï…4FmµŠ·ö<mbG"(Þ1)á²€›5F_‡Þ–ÂÒÍôæò-bx"æ`Â&9hËÜȺIÕÕQ@VÞÒ­µ˜µ[{5Šú+!§££0 np@¹Û€{ã=³ŠÇ_‡>[ K4ÒöÛZÆðÆ«q(&7rìŒCeÔ±'k=«­¢€iIH©ªª0€ ñ?Ú»þDÝ#þ¿ÿö›×·W…þÖ1/†tKRãÏ{Æ‘S¹UB üØ~tôÏÃßù|5ÿ`Ëoýµ¿Xž‚Koø~ ”¤±iÖèêz‚#PEmÐEPEPEPEPEPEPEPEPEPEP^!à�Fø¡à}~öïÁúDz5þ¥=‘y€òÚYJócÎÎÄðz·²êº�ž“§\_êwPÚY[®ùf™‚ªRM|½â_ xKNÓSľøµªøcºÕ᥼s²JáÊÈ#Dem¡�*qÇ8"€=�à¡iwàY,­4k]}"ú}6îÒÕ‹Ä'Œ�̬I,àrI>ç­a~Õ—°|8°]Jú{]6m^Ú;ÈàÏ™sÎ^5ã°»†ì“×ö?´?h>°·ð…ïö†™1iþÚ_s\HÇævô9ÇlcµtšÞ‰¥kÖ©k®i–:•²8‘b¼·I‘\ÀŒà‘Ÿs@øÞçàÅž—§Ü|9¾½ÓüIÔàûQXq¹ä@\œ '8í_Vxâ†fÜíÝ´ ã'é“@µó¯íµÿ"…ÿa?ý¤õôU|ëûmȃ¡ØOÿi={_Ãßù|5ÿ`Ëoýµ¿XäAð×ýƒ-¿ôRÖýQEQEQEQEQE‰ã_ éþ0ðÅþ…«¡kKÈö’¿y«¯¸ ô­º(ãÅøwñ‡á�Ìö~Ư£3—CÇSîcs¹×oæ¤þÔøóÿBÔŸøŸüU}E|�ý©ñçþ…©?ð ?øª?µ><ÿе'þ§ÿ__Ñ@ j|yÿ¡jOüOþ*�íO�?ô-Iÿ€iÿÅW×ôPÈÚŸèZ“ÿÓÿŠ£ûSãÏý RàñUõýòö—Ç–ùG†ÜÆ~ȃ›VÇ€~ x·Å^.·ñ'Å©À‚Ý•ÒŤGypr„ù<ò@äò03šúžŠ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢ŠðÿÛÙ~n³a�P…î¶ôò°àgÛy�ñÅy|z¯�õÿ\k+¦ùŸ ü!¡,)nmŽÆ¸�ö…ØGßg•¾cüI»=ëëˈ"¹‚H.bŽhdR¯ŠX ƒÁ›oá�ßJ“K·Ñ4È´Ù;Ú%¤k 0 ‚P 8êy?ìc}eðˆ=úH‘ÜßË=¨qŒÄU#ز¹©?k+]>óáÞ•­,öö¯­[+]F2¶À¬ŠÒ:à–P¥¸$íç±ö”UDTE ª0Wœü}ñÐ|#] ß^¸Õo"ÓmìntrI&JîOÝãã‘@5üAøuð³@Э/¼?ã9õ«Óq5…µäËpŒÀ0M‰û¶’ 8ÇS^åû>DÚ'ˆüá+=ZçTÑ4;»t³–â@ìŒèÞly|¬¸ 25å^ð?Ä�ê±jšG E{oŽInÚ_-»W¼!Hõb¾©Ð¼=¥h¨>‘e³êR^Ý2’ZYœå˜’Iêzt€  Zù×öÚÿ‘Bÿ°ŸþÒzú*¾uý¶¿äAпì'ÿ´ž€=¯áïüˆ>ÿ°e·þŠZÒÖõ[I»Ôõk”¶±µŒË4¯ÑT3è$ñY¿äAð×ýƒ-¿ôR×�þÚz�ŷí.Ê) æ ¾pï*#0S휪Šçu�ÚsXÔu9¡ð7„šòÒ#þ²ád–G‰Hþçæj§ü4'Ä¿ú"ÿÀ+Ÿñ¯Eøg¢Ùh^Ñíl!XÕí£šFIAf>¤“ù`v®ž€%ÿЉþ\ÿ�ðПÿèD‹ÿ®ƽ²Šñ?øhO‰C“àHqÿ^W?ã^ƒðãþ›ã]]4-vÄèÚã’±)}ÑNê‚@*Ý~SœúçŠêëçÚƒN‡JÕ<=â=4 mPÊÊÓGÁfM¬�õóôôöeCyu•¤÷W“$Ð!’Ydl*($žÀ f™p×zm¥Ë€hRBb@?Ö¼‹ö¶ÔçÓ¾]ÇnìŸmº†ÚB§a%Èüvcèhˆñ7í7yw¬Kcð÷ÃM©Ç \\$Žeø„I‚Üœû Ëÿ…÷ñ_þ„8ðYwÿÅ×_ð7D³Ñþék,÷°­Ôòcæ‘›‘“ìé]õx—ü/¿Šÿô!Ãÿ‚Ë¿þ.�ø_ÿèC‡ÿ—ü]{mâ_ð¾þ+ÿЇþ .ÿøº?á}üWÿ¡ü]ÿñuí´P‰Âûø¯ÿB?ø,»ÿâèÿ…÷ñ_þ„8ðYwÿÅ×¶Ñ@%ÿ óâ°å¼Ñ×þ%·cÿg®Çáíiâ z-Æ_ö§+ˆ¢˜1òšCÑ7Ì„ôÈúWy^ûT趇Ún¸‘*j]­±•F FÈí‚{à¨Ç¦M}sEsŸ õõ‡¾Ôo½ÕÖ›o4¬‰Ú5,šè袊(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¯"ý öëÞþÉѼ[á½R²Ô­¥¹“S½HL#Éç ÑÈJ«¯•VÁÆsëµã?t�h^Ôuÿøn}^ëV¾µSo ÔѵÕÌqI<«|¸ŒÈ8÷â€<é5ωÈ�GÆß†äŽo­‰üͽ}W_ ?G` þÎ^$ ô#QÔøÝ}«@|ëûmȃ¡ØOÿi=}_:þÛ_ò è_öÿÚO@×ð÷þD Ø2ÛÿE-xí¹ÿ"_‡¿ì ßú-«Ü>ÿȃá¯û[襯ý·?äKð÷ý„ÿEµvÞÿ‘WFÿ¯(ôZµ•á?ùtoúò‡ÿ@«@Îx¯ÄëáËý .­ƒXêWc’èË´[¹RS#† Ž£õÆYüd³ºÓ,®—K�K5Ìë$oš+xbóš»ÏÈT…ã9ëÅzµä‹ñ:?xcĶö¨–Z„z Ú”iz&(» Ì åS·+Ôds[ <_q¨Ç¤èZ­¬ÑßÿaÛj)s$þi¹Œ€ŒíÆCç©Îrpx C¢¼¿â¬·VZ�Šh:¶¨Þ'Ô§†=>Å.·‰Q�‘Þ1€P®r_w¶0kÔ(¯ý­?ä áïúø—ÿAZ÷ºðOÚÓþ@Þÿ¯‰ô ¬<=ÿ 3þ½bÿÐx×í“ÿ$Žû Ãÿ I^ËáïùiŸõëþ€+Æ¿lŸù$pÿØNýJ›áOü“_ ÿׄ?ú®ª¹_…?òM|3ÿ^ÿè"§ñ_‰××ú][±Ô®þÇ%Ñ—h·r¤¦F9 AF=裢¼ÓÿaןF‚ÏKay¨ßÉkä<ø1ˆ$3ýÞAFBs׊»á�ˆðëš¾—oýœöö:ÇÚ³n|àÆo á÷¦Î#“øP}Ex‡ˆ¾"Þê> ð—Š$†MM—_·ù�#I™„ªà*å~NœçÓŽz�Gâ`°Ñ¼?yq§ÚA>¸d{T¸ÔV8’PÛä—i Äù@<¶3@�Eyä?N¢¾þÄÒ…Ëx�nJ î|‘€À��žw ñÓÞµþ$Ëac ¶©«êš•��–æ1XܘåÈ¡eù‰Ï@ç®Eu•ãßµ7ü“›Oû Eÿ¢ä®ûáÏöÏü ú9ñ33jæÌ[ïrNÝßímÛŸ|×ûSÉ9´ÿ°”_ú.J÷oƒ¿òIüÿ`›_ýµ××!ðwþI?ƒ¿ìkÿ¢–ºú(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+Êÿhë-rïÀ–røfÖÎkûN ß>êxá[Af†‘Õ2jóžñÜz¥xÇíZÚzü<Óµu,:wöÕ©¸† Ûîc×�H ·sØN¹ÅyÚ|mø ª øpÄ mn×'ò¼¯ªëå8�ìÆcRÁ�Ç!¿´ò>¸â¾¬ ¾uý¶¿äAпì'ÿ´ž¾Š¯�m¯ùt/û ÿí' kø{ÿ"†¿ìmÿ¢–¼?öÜÿ‘/ÃßöoýÕîäAð×ýƒ-¿ôR׈þÛq¹ð6� RQu¥»blÐþTÚxOþE]þ¼¡ÿÐjÖ?ƒ&ŽhrÂáã{ °èFÁ[‡ãO Xx¿Ãói£L–ò²¿™‘H © �n� ¬k?†~µÖåÔÄSÈòéÃLh]‡—åXó€ÜQBç=;WkEr6>³´Ñ¯t¶Õu›‹+›ÓR)®A[xJ•Äj.àÞ`Ç€3Ž)š7Ãí7IŽãì·Ú¡¸“M]*+–œy¶Ð(8ò˜(Úrwgœ1€1]�ÆEààÖ†­mâr=@ZEeç1·™Œh u’9b71I&»:( ¼ö´ÿ�7‡¿ëâ_ýkÞëÀ?kI£þÎð䇚ÒÌá{àýhëOÈLÿ¯X¿ô^5ûdÿÉ#‡þÂpÿèW³è‘¼:-„R)WKxÕ�ìBŒŠñÏÛ—áôRV-Fsè0ëüØP¾ÿÉ5ðÏýxCÿ Š½ãO Xx¿Ãói£L–ò²¿™‘H © �n� ¬Ï„3ÇsðËÃo U³HÉÞ_”�Àƒ]}r/ÃíFñJkÖbà^%’X¢3)�QP0Îí¨sŒv§h>Ò4MZ ëW»qkç}ŽÞYŠÓÍ9“ËϹ>ÕÖÑ@]¿Ã� h�zöZ5òêt-#‡vÛ'Ë‚¹‘†æ’/‡]½µ”VWº•«X\Ísc,R&ëA(ÃÇP�‡Ñ�>õÚÑ@Òø:Èj^¾’óQžçBYÖž5¥ó“k™Y�f8é‚1ôâ¨ê¿íõ9¡–ç\× Ô$Ô¡,R¬R8*¬‘°˜;Wn?‡gEWÓíåµ³Žï'½‘s™çòIä"ªñÓ€:zó^MûSÉ9´ÿ°”_ú.JöñŸÚ¦xÓÀ³�,šŠ^ääÉü2?1@÷ðwþI?ƒ¿ìkÿ¢–ºúäþÄðü,ð„r©W]&× õºZë(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(®ã_…ußxVÖÃâ%ìw©;�bÖ;ˆ|°’)¼RÙeçh8Ï<à÷õæ?–i¼7¡ÙÚø—UðåÅö³¤Wzj3;»¤Š±¶$�IœžTqèàž4øsñ ÂJêz«ü?:xš8fž̈7¸@î  ;rÃ;A<ô¯²kçõýŸ5}FæÙ<]ñ/]×t¨åY$±™dÛ&q—™Àúã5ôó¯íµÿ"…ÿa?ý¤õôU|ëûmȃ¡ØOÿi={_Ãßù|5ÿ`Ëoýµ[âWƒ,|{àûÝQcÌÅ2Œ´2¯*àwÇqÜ;ÕŸ‡¿ò økþÁ–ßú)k~€>5´Ðþ3|/¤éÚKk:R1040›¨ñžª‡\ú}*Çü&ßèD›ÿ?üU}…E|{ÿ ·ÆŸú&ÿÁEÏÿGü&ßèD›ÿ?üU}…E|{ÿ ·ÆŸú&ÿÁEÏÿGü&ßèD›ÿ?üU}…E|{ÿ ·ÆŸú&ÿÁEÏÿGü&ßèD›ÿ?üU}…E|{ÿ §Æ§ùWÀÓ)<ý“p1ù¶+gáÏÁïx¿Æ¶¾+ø«˜mí™dŠÊB»åÚr©±xHÁäƒÉçŽI¯ªh ±üaáÛxgQÐõT-g{�öýå=U‡¸ î+bŠøÞ?ü]øQwscá»C®h®å£hbó�ÿµåçz61‘ÓÜõ©ÿá+øÝÿB\¿ø,—ÿН°h �¿á+øÝÿB\¿ø,—ÿŠ£þ¿�ßô%Ëÿ‚ÉøªûŠøûþ¿�ßô%Ëÿ‚Éøª?á+øÝÿB\¿ø,—ÿН°h �¿á+øÝÿB\¿ø,—ÿŠ£þ¿�ßô%Ëÿ‚ÉøªûŠøûþ¿�ßô%Ëÿ‚ÉøªµáŸ„¾;ø—â›M[âx}?F¶9Í„w\ä¢F¿prÍÏ×·ÖôPb�"�#‰U#@UF ê( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( Š( ¼+ãöµá�ïð.±â«� _[]Cvn'³v†é<²@V ªT3ŽIá£éÆGºÖO‰<7¢øšËìž Òí5qÊ­ÄA¶ŸU=TûŒPÌOá¨,íC/í+"Ä£„Ší˜�ì«uŸÒ¾ˆð/�ô/Ë©Â5-ÅÕµ‰D{¦�£ŠFmß*±yã�Ëë\õ¯ÀŸ†¶×bâ? @ÒœIq4‰ÿ|3•ý+ÑllítûH­l-¡µµˆmŽP" ô 8=|ëûmȃ¡ØOÿi=}_:þÛ_ò è_öÿÚO@×ð÷þD Ø2ÛÿE-jjú•ž�¥Ýj:�ÄvÖV±™fšC€Š:Ÿþµeü=ÿ‘Ã_ö ¶ÿÑK^EûgjWŸ ,m r‘Þê1Ç6?‰ŸøSøP/­þÓzÆ¥ªMmà µí¼g‰nI]Ç÷¼¸ñ´}Iª_ð¾þ+ÿЇþ .ÿøºô…Z%ž…à ‘ Ö±ÜLàs$Ž¡™‰ïÉü€ÖЉÂûø¯ÿB?ø,»ÿâèÿ…÷ñ_þ„8ðYwÿÅ×¶Ñ@%ÿ ïâ¿ýpÿà²ïÿ‹£þßÅúáÿÁeßÿ^ÛEx—ü/¿Šÿô!Ãÿ‚Ë¿þ.�ø_ÿèC‡ÿ—ü]{mâ_ð¿~*¯Í'�!Ø:ÿĶì~»«¾øGûAiþ0Ö£Ð~ÔšT/¡xŠÅE¾¥ç˜žhþVm 21>ªAÁ÷öö=TÕõ+=KºÔu;ˆí¬­c2Í4‡u?ýj�Ã×­¨èeôƒsmÌ=Ù?μKöÎÔ®->XÚ@å#½ÔcŽl*;…?ð §ð _[ý¦õ�KTšÛÀkÛxÏÜ$’»�ïyqãhú“T¿á}üWÿ¡ü]ÿñuè ´K= À:,1"­c¸™ÀæIC3ß“ù+­ ÿ…÷ñ_þ„8ðYwÿÅÑÿ ïâ¿ýpÿà²ïÿ‹¯m¢€¬Ñ«ÔÖÕQEQEQEQEQEQEQEó¯íµÿ"…ÿa?ý¤õôU|ëûmȃ¡ØOÿi={_Ãßù|5ÿ`ËoýµâŸ¶×üˆ:ý„ÿö“×µü=ÿ‘Ã_ö ¶ÿÑK^)ûmȃ¡ØOÿi=u¾ ÿ‘7Aÿ¯ ýµ³XÞ ÿ‘7Aÿ¯ ýµ³@Îx¯ÄëáËý .­ƒXêWc’èË´[¹RS#† Ž£õÆYüd³ºÓ,®—K�K5Ìë$oš+xbóš»ÏÈT…ã9ëÅzµä‹ñ:?xcĶö¨–Z„z Ú”iz&(» Ì åS·+Ôds[ <_q¨Ç¤èZ­¬ÑßÿaÛj)s$þi¹Œ€ŒíÆCç©Îrpx C¢¼ÛâµÖ¹c®øB[-OìÚLúÕ•¤¶ð‚²LÌî_{gîmU{å³ÐW¤Ð^ûXÈ«¢×éÿÐ {•xoíaÿ"®‰ÿ_§ÿ@4ôç‚?äKÐ?ìoÿ¢Ö¼?öÚÿ‘Bÿ°ŸþÒz÷È— Ø>ßÿE­xíµÿ"…ÿa?ý¤ôÖø+þDÝþ¼-ÿôZÖÍcx+þDÝþ¼-ÿôZÖG‹üo…µ˜m5 OôYì..â¹óqºHWsE·×�síŠì(¯8Ò>)Ûj?a?ÙÏ:mÎ¥¨ƒ6ZÉ!b…q·æ%•‡ðúÓ´ÿ‰f{B[½ Û\C¢~Ús¼Om‚F[hØÙ†ÆzšôZ+Å×-Ç—²“n6l98Áê3œqÖ²¾>]kš€îïô=Oû>p¦vˆ3––4PŽÈ>g$Žx¡4é5῵‡üŠº'ý~Ÿý×¹W†þÖò*èŸõúô@Nx#þD½þÁöÿú-kÇÿlÿù$ö_ö‡ÿEM^Áà�ùôûÛÿ赯ý³ÿä“ÙØZý5h|1ÿ’sá�ûÛÿè±]5s? äœøcþÁ¶ÿú,WM@È]øºñüQ¨èÚˆÚ“i‚zßjXY|ÞTF¬0ä(ÜrËéÉ®SÃ^1¸Ò4ÿËz×:•Ô¾/ŸJ°‚YÎb�# s±ÌxvëTWÿ ìuýœÿÚ‡WþÂûœ6ý¯v1æcîã�Û Èø�âmOJÐ<5©j‘\h^Wˆ­Òí ºó[u[æLF;XÇ+@«EdxKW›^Ð-5I­Ñn×͆5˜J|³Ê– �3Ž™5Æü4º×Çž7°ñ§öé­�UŒ†"ñ;°� àrz� žhÒkÅjßùt¿û /þŠ’½ª¼Wö­ÿ‘Kÿ°’ÿè©(蟆_òM¼'ÿ`›Oý•Ò×5ðËþI·„ÿìiÿ¢RºZ(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+ç_ÛkþD þÂûIëèªù×öÚÿ‘Bÿ°ŸþÒzö¿‡¿ò økþÁ–ßú)kÅ?m¯ùt/û ÿí'¯kø{ÿ"†¿ìmÿ¢–¼_ö؉ÛáÞ‹*©(š¢†>™ŠL*ê¼ÿ"nƒÿ^ÿú-kf°¼ðü°¸xÛOƒ×5·hÆž°ñ‡æÒ5F™-åe2 "2�ARAÝ:XÖ ü=k­Ë©ˆ§‘åÓ†˜Ð»/ʱ縢…Îzv®ÖŠäl| gi£^émªë7W6 ¦¤S\‚¶ð•+ˆÔ(]À¼Á�gS4o‡Ún“ÇÙoµCq&šºTW-8óm Pqå0Q´äîÏ8 cb»(�Õ<'iªiÚ¥íÝü¿Ø×V÷�ÌÒ’i!)•Š�ÙÉ-Œ{Šè¨¢€ ðßÚÃþE]þ¿Oþ€kÜ«Â?k+ˆ×Ãú ¹aç=ÓȾÕLÿ� ú‡Áò%èö·ÿÑk^ûmȃ¡ØOÿi={§„!{o è°J6É”ÃЈÔðïÛb'o‡z,ª¤¢jŠúf)1ü¨ªðWü‰ºýx[ÿ赪~9ð^•ãKK;}cÏTµœN� '‚ œƒòœò=‡5cÀSÇsàË ‡�´ø0GýsPkv€9M'À:&™«xŠþ8æ–Mw"ê9X Û·*‹rMVÓþév:…·Ú/ç7zqÒD³H¥àµÁ8ÈPÎH'�œ×iEr7´[Èü9çÚ'ƒC´’Τe+4o‰¼Ï—“µAÛÍW_‡V1çý›WÖ­îììÛO[ȧE™íËn³lÆba޵ÛQ@VÞ²·ñTZúMv×±é£K $›ÔÄ~âHÜ_=Ësõæ©j ´Ô¼ '…uKV»µ“îçœIrØ”H2åpp@: {×UE῵‡üŠº'ý~Ÿý×¹W„~ÖW¯‡ôrÃÎ{§�/}ª˜'ÿõ‚?äKÐ?ìoÿ¢Ö¼öÏÿ’OeÿahôTÕìž…í¼'¢Á(Û$VP#B#PkÇ¿lÈžO„¶ÌŠJǪBÌGaåÊ3ù‘ùÐ߆?òN|1ÿ`Ûý+¦®WáLÑÏðÛÃ/ ‡Qa ?¼ª�À‚+ª cRðe�æ»qªÁªXOt"[µ²¸ò…ÈŒü›Ž7 >V\Ž V?tƒ§ê6¾uîo5fÖ„ÂEó-îI4gnàzœæ» (’>҇Ɨ¾ïp½þÒûg˜<ÿµnÝçgwgýœcŒS¯|c¨iúm®£ª^ý‹RMPKs8‘ä•s…l®ÑÌFÅ =1]]Ëh~ µÑ'°þÎÔõx¬ì¦¸š+p¹Žce ó"œ•äy5¡¥øvÓMñ¹­A$íu«ùz;‹å!EØÈÈ<äŸÂ¶h ¼Wö­ÿ‘Kÿ°’ÿè©+Ú«Ä¿jéc_i—WÔª÷ FàŸÃpüèèφ_òM¼'ÿ`›Oý•Ò×;ðÞ7‹áß…£•JÈšUª²ž ˆW"º*(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š(¢Š+ç_ÛkþD þÂûIëèªù×öÚÿ‘Bÿ°ŸþÒzö¿‡¿ò økþÁ–ßú)j?ˆ~°ñÏ„oôL²Er ¤ª2ÑHUÇÐöî2;ÔŸäAð×ýƒ-¿ôRÖý|mkῌ¿ Ú]'HÓN³¤‡&†/´GÉê éŸC�œýjÇü%¿èK—ÿ’ÿñUö ñ÷ü%¿èK—ÿ’ÿñTÂWñ»þ„¹ðY/ÿ_`Ñ@ÂWñ»þ„¹ðY/ÿGü%¿èK—ÿ’ÿñUö ñ÷ü%¿èK—ÿ’ÿñTÂWñ»þ„¹ðY/ÿ_`Ñ@ÂWñ»þ„¹¿ðY/ÿZžø=ãøÊ×ÄßsoclÊée!]ó9Tؼ"g®y>œä}[EÎ|Cð�‡Ž|# êe’+•%Q–Š@r®>‡·q‘Þº:(ãk_ üeø^Òé:Fšu�$9041}¢>OU‡Lú çëV?á+øÝÿB\¿ø,—ÿН°h �¿á+øÝÿB\¿ø,—ÿŠ£þ¿�ßô%Ëÿ‚ÉøªûŠøûþ¿�ßô%Ëÿ‚Éøª?á+øÝÿB\¿ø,—ÿН°h �¿á+øÝÿB\¿ø,—ÿŠ£þ¿�ßô%Ëÿ‚ÉøªûŠøûþ¿�ßô%Íÿ‚ÉøªÔðÁïøßÆV¾&ø«›{fWK) ï˜)ʦÅá=sÉôç#êÚ(¬?øfÃÆ>Ô4UIµ¼�aeûÈÀå]}Áþ¹E|o„>0|*¸ŸNÐ,Ž·£3–‰¡‹ÏŒç¾Àw¡õ3ëÖ§ÿ„¯ãwý rÿà²_þ*¾Á¢€>>ÿ„¯ãwý rÿà²_þ*�øJþ7З/þ %ÿâ«ì(ãïøJþ7З/þ %ÿâ¨ÿ„¯ãwý rÿà²_þ*¾Á¢€>>ÿ„¯ãwý rÿà²_þ*�øJþ7З/þ %ÿâ«ì(ãïøJþ7З/þ %ÿâªï„~xãâ7‹-5¿ŠA¬´›b´}ªò¨9òÖ5ûŠ{“ó~£ëJ(U*ª Z( Š( Šó�Žþ?½øoá=kO´·¼g¿ŽÚH§$Œ’1ÁTsÏ~+•ðWí-àÍwˇZ: Ûqþ�<ÈIö‘GêÁE{�WKÔ¬uk4»Òï-¯m_îÍo*È�ô ‘V¨¢Š(¢Š(¢Š(¢Š(¯)ý£üñÀñÛi2�ya)¼Ž ™7 ”F )9êkÕ¨ “4ËÏÚ/MÓm,m4²–Ö±$)†Ð�Š$óÀgûgö’ÿ oþ@´ÿúªŠùWûgö’ÿ oþ@´ÿ?¶i/úÿä Oñ¯ª¨ •¶i/úÿä Oñ£ûgö’ÿ oþ@´ÿúªŠùWûgö’ÿ oþ@´ÿ?¶i/úÿä Oñ¯ª¨ •¶i/úÿä Oñ£ûgö’ÿ oþ@´ÿúªŠùWûgö’ÿ oþ@´ÿ?¶i/úÿä Oñ¯ª¨ •¶i/úÿä Oñ£ûgö’ÿ oþ@´ÿúªŠùWûgö’ÿ oþ@´ÿ?¶i/úÿä Oñ¯ª¨ •¶i/úÿä Oñ£ûgö’ÿ oþ@´ÿúªŠùWûgö’ÿ oþ@´ÿ?¶i/úÿä Oñ¯ª¨ •¶i/úÿä Oñ£ûgö’ÿ oþ@´ÿúªŠùWûgö’ÿ oþ@´ÿ?¶i/úÿä Oñ¯ª¨ •¶i/úÿä Oñ£ûgö’ÿ oþ@´ÿúªŠùWûgö’ÿ oþ@´ÿ?¶i/úÿä Oñ¯ª¨ •¶i/úÿä Oñ£ûgö’ÿ oþ@´ÿúªŠùWûgö’ÿ oþ@´ÿ?¶i/úÿä Oñ¯ª¨ •¶i/úÿä Oñ£ûgö’ÿ oþ@´ÿúªŠùWûgö’ÿ oþ@´ÿ?¶i/úÿä Oñ¯ª¨ •¶i/úÿä Oñ£ûgö’ÿ oþ@´ÿúªŠùWûgö’ÿ oþ@´ÿ?¶i/úÿä Oñ¯ª¨ †>4jn¼'í<�]¡Fò _ßm}£(sÓµx•~‚þÐÞÕ~!x.ËFÐÚÚ;…Ôc�ä¸r¨ˆ@O“Ë®Á_²×‡tï.oê7:Äã“?èðý sõÊý(å?j^%Óõˆÿá¹Õ"Ô\ü©§—/'±UûÃØƒ_j|Ô~.]¤?ðžiºbiøÿ]pÞMá»#kÒ¼7á­Ã6eðþ•g§ÃÜ[Ä·»¬}Îk^€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ (¢€ ð ãf®ÿ üu­ëVšdzχîþÉ0Ç"ÄìÄ"nRå�Ï»8#�Û­{õ|=â=>åþ9ø‡Àq!Zï‰-®®ÿžyyǦÙÉÿ€ŠõáñËWo<[%–�ˆíuìÙ-š9!÷ÊoÝþ¬ÿ{¨ü+Òµ/‰…¼;¢]xãU´Óoï­c•áDv%Ê‚ÛQC0PÄŒœýkåŸ�6WV_5¯„Xkºåž§8ùäFVÀ÷iOýð+Ôµ Í?õ�íÿŒ¦·³ÒçÑÕ4«‹²ÈXÁ� ÈœÀ½èÙfñÿ…âðdž,:Ä2x~=»îâW�)gU�ÜÀc漫â¿í ¤i·¸ø¨iÚ¶¦nbYb¹·œ¢Bñ»nÏÉód(Ær2Aéå0FÒ|øÏ¨iÑ´~¼ÕíÛLJ¡Qx2Tzm1ë¡øãeogû+|;[hc�t–2ªYí%v?‹M{ÇŽ¾#ézî›eyþ'±Ò®5ìü‰eUòâgS+ Â�Áe<�QT~üJƒQø?¦xÓÆw:~–'óDÍdˆ™ãPªK1$ ã$“šñ¯E/‚áø¿àï#¼Ñ®µuV}üfÝ÷ ŸBIÇ®ÿJæ.¢ø-ð[PÔci<3i«Ü6¦6–M¦ðãpÿtJ?w «|ãï øÙ'>Ö ¿h0dŒ+FêBQÀl{ã‹©|fø}¦kri7¾&µŽö9<§QŒˆÙÁ@¥\ž;ך闶>"ý¬¬µ/OÖ™m¤Õ.lÈh�ŠÈ“ÿ€ûW�x£ÄÇÄŸ ¼Lú޳k¡½¾¢°ÙxGO¶ŽÝάÒHÜØòOñ''�(ëß|Gð�ƒå´�ÄZ嵜—jÃHYFÂ…ÿhàpy®_à×Ä›ïø§ÇVS®œÚn‹x°ØOf3DÏ0 ÌX†ÊƧ*äþ5ðÏSÓtŒº¥ã›{k ¯X�:êñ‚Æ®- VÃ7å'RGzêdɬn|cñR}!UtÙoá{UUÚFK’€ß.8 oñ§�¼;à«8n|QªCaÌV ÊÎÎG]ª ±ÆFHdWŒj¿/fñg‹í4 ß `éšl¶Z•Ü72#3ÉjŒ$ò‰b3<‹…@CÏF¥øÉ5®“ûH|=ÕüJɇÕãOþª9Á—’O ðœöÀ=«Æþ"ßé:ŸŽ>/^xyá“M—L€¤�ãc·Ûl²‘ÁÃ޹ÏzúãÃ_4kû�è÷Ú�³x“UÓ"Ô+{yÖ•£Ü^&u/ÊÄ;°9­-#ÆÞÕõ=rÃOÔ’K�Šê;£tKr7g.À)ÆÖèOC^ã¨Ãÿ þ|B³‰ž]ÖÆ; œ¶’gë•õÒ«èÞÕcý”üUªÆ’>¹â"Ú­ÁPw´FU${ƒ»ÀÍ{‡…¾'ø3ÅZËéZ¿kw¨&O’о:ì,|~\ñÍfé_þê×6vö$†Iîæ0D�o2üu܃hù‡Ìp:óÁÇ‚ü9Ó4­_Uøa=×ÄËyõ+/)¬´k] a©’ %ˆä•†ùBÍÜ×Eû)èúeÿÁ/hÆËÝÕŭ̱FZQ¶�î€ $oräð(×4ߌ¿µ-n=&ËÄÖ’^É'”Šc‘QØœ$*äôÁæ°õÿŠëá¯ø¾ÏY¿ÑßGÑ4ä»[;h.~ß½¼€¡Ø¯’Ušl §#zg1>Ûk?ð†éº-®‡®ø_Çþ}C˶ѯ4ñö¨Ý‰Ë�wÆIÈ œe†»o£IñçãZ ,ÍàÛ€êOÙ­hѾü}ðŸ‰4Ý5u{äÓuË˃oö!î±³JË™vlÉP§99éŒCñŒ4/kF•«ßy†­'•eÃ$�+eGð©Ú2ÖÀü�|á èÖ¾1ý‘-m4˘¥×<>Ój N °:ÜLø r FX�߃[_µ9þ-|]4¿…–ÏÃúT°« µH‡Ì tà™¿ ”ô¥Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@Q@e7†ô6×F´Ú.˜u‘ÒüÚÇö�»·ýf7}Þ:ôâµh  ›ÿ èZ†«oª_èºeÖ§o·É»žÖ7š-§rír20NF¦ÖtM+\� Ö´ËF;–;»t™Aõ�§ëšŒZ>‰¨jw˜,­ä¹�? ¯–t_ëž ø//Ä;hlo5ßø……Ã^#º‚JT+)LDp#(ê;�IºÑÿ²ntË´¬û–èÐà@ØFÜu¡áÍQÒ­´ÍCFÓnôÛm¾E¤ö©$1mR«µÂáI€q^UÄïh¼;¢øïDÒ¬ôßü¶/e+¼°HH9KpÌ ;@0 ž•Ÿá߉Ówç'î–Y) ÇtŒFÐ6¶zŒ{.©áÍV»K­WFÓon’&�f¹µI\FÀ†@Ì ÚC0#¡Éõ©m´M&×GM¶™c”_±Gn‹ $�€mÁ$“ÇS^/Æ?k6~$ñƒ4ãÂ: ­Ïy,‚âéPeÚ=§jáHnAàŽ§ŠÕÖ¾4Ýjð‡ißôÛk½sݘ×PvZ¢– ¿o-ƒƒƒü®@ \Ñ´M+C� ÑtË:;š;Kt…Iõ!@ªÒøSÃÓ^]]Í é2]]£Gq3YÆ^ea†Wle�z×�uïø/Äú·Ä- +;� €Y96÷û€Øb-óY•NzgÔ8o|vÔï|Uá»Eá·±ñ l4‹Ã-Å“±áI8bYF8ê{‚(ÚçðŸ‡'±´²Ÿ@Ò$³³$Û@öq˜àÉÉØ¥p¼úU­/CÒt››Ë�+K±²¸¼2æ[kt�§l“¹Ê€Xå˜äç©õ¯Ÿ´Ž1ñ^£zþÓ<*ÑAuäG£_^˜5Ó#æRì±÷ç¸ ð{ëøãã&¿eñ øOEµðö‘s ¤wMâ;†HÚGE%3·pߌä‚AçÔÛu}#MÖ­>ˬiöz…¶àÞMÔ+*dt;XšÍ—Á~•®_ hŽ×,°ˆ™cR¥Q¾^TÓð6/ ¨þêºÞ³á›{¿éé:›ncž7�†Óž„ä`õàŸ �Zø‘wûKø§MÑï4IgÓìXCm|f6±Z3@ë±TƒçÑî$��Ã8Û€¢®4m2ãGMÆ›e.”#X…“À­EÆÕØFÜ ``U»kxmm¢·µŠ8mâAqF¡U pb¼WAøÓ=ÇÀíkÅÚ¥µ¤ö—$–rÚ*²Çö�ÀD6–-��sÏfävÆ—â×ÄüWà¯G£h3êzþ’·òDË4B's6ß›{aU#Fa‚N d`Ü´ß èz]ô·ºf�¦ÙÞK‘$öö©�ŸVRèš&• Ú½®‡¦Xé¶ÎæFŠÎÝ!Fr,B€3€}…xî�ñ®ÿJ>5Ó¾ i––ú߆ %tæo*媨]ä‘–’.Ogè1ŠÌðWÇmN÷Å^±ñ^{¶ÃH¼2ÜY;.“†%”cާ¸"€=² xzßU:�¾…¥E©XÝ¥œk1'©ÞsøÕ˜´=&-bãV‹K±MVæ?*{Å·A4©ò�¬øÜÃå^ þé_?hr�’¤‚Ê^5È$`hÐø‡àßø·ÁÒ,5=]–Co©=êÄmc•Dn3ó1ØùzžzUëÏ„>!ðm×€uïÇm¬j~µ{K«9f €í#9Fn3Ê9é•ëȯ¢( '¾ð׌¾ |;ñf•ãT°ÒeÕN�g‰M˜B¬¢I‡Ë¨'Ž}@·ÃOx£OÔ¼;cª|;ðN�m¥* ­nHb¸¹¹hñ²Hva’NÌùçæö?@Ñ@-|Iø_âÿÞj6Ïà F{ ðx�M¼û"÷L°3–w#988Ïë]OÄOø’é4›+�h>7Óí´Ø­>Ô×&ËPY‘–i™þd, `âöÉ÷Ê(Í?g¿êþøw•â ÖK×¹’ãÊGÞ¶êÁ@Œ‡•,qÆXõë\úxOÅZ'í#¨ø»OÑâÔt-fÒ+9§iZ(†r�ó1Np!ºö¯k¢€>Dñ—ƒPý£¦ð~Ÿr¯ kWpkš�´g!6+— è[sñÿMÐWKñmµh?j¿Éá«{{�N-¼VóÉ太¿k.›°v’�€8À$gŠöŸ|9ðŸ‚'¸ŸÃ463λ$—Ìy®s´3± dJ»{àí ÷ÆV+¹±ß¯ØÂmíî¼éÈÈpFÀÛOúÇä‚yöâvß¼KãKŸˆ:ïŒ`¶ÑuOÛ%¥¥šN'ˆÚ'Bî¹f‡ýã�À« <â�?Rð펩ðïÁ:u¶”¨.µ¹!Šâæå£ÆÉ!Ù†I83矛ØýE|µñ'á‹üSy¨Û?€|45îƒÁâ=6óìˆ#Ü 2ÀÎYÜŒäàã/|ð¨�ïot8öîàõeC]¿Þ6ç¯vµôed[xkI¶ñ=çˆa³Y»…-å¹i‰�z(áG� dòs@ôQEQEQEQEQEQEQEQEQEÿÙRESCsize=PQ&version=1&type=12014-02-18T21:15:22ZFLISAÿÿÿÿÿÿÿÿFCIS—Ï((SRCS0PK ë©RDoa«,mimetypeapplication/epub+zipPK ö±RD META-INF/PKë©RDwvøÒw -META-INF/com.apple.ibooks.display-options.xml]�± @÷~ÅåF“JÝ€n~�Φ)‡¹¤ÐÔ¿­.®//ïéq <(Žbð°HæèXn/çSÄÑvÚqIËô¼ÆT›Xl ¨>æ22¸Ã7m|s¾´$šÙ3¹ÞG©mÍwÒjs>õë´�úÿ¼PKë©RD®•âè¦öMETA-INF/container.xml]ŽA‚0E÷œ¢™­�êÎ4wž@PË€�íLC‹ÑÛ[Xâò'ÿý÷ÛË'xñÆ)9& §æÉrïhÔp¿]ë3\ºªµLÙ8Âé¯[hJ扛ä’"0©lG¤ží�²Zkj�®¢�˜óà<¦%í²fïëhòS”�†ã"`ïL�¿5˜½³&—+’ñSìËŒx(.r5È�¢•›¾ûPKû±RDë£)Ê¡ ch001.xhtmlu‘»n„0EûýЉ{ð’ +ƒåÑ&MJí±-{Xàïc¤$Eª‘}�æ\Ùâîõã¥úú|Eƒ.b0Ú„‚)"wâ|š¦tzH­?ó,Ïs>¯ Û º±þCö­ënìýñøÈ­ lÝŠ²-b@’Ð(éRÁFê’'Æ#,Ø zIÖ3h¬!4uÒ´¶ÙYêIcY)„jB}Åä]6‡gçßÂÓ½¹€G]°@‹Æ ‰�òØý¾I›Ð⢙p&¾ž£G𭵨m»Ä°¡ÞèÛÈ)LhSw7u"�‹mµ ñÝ4^Qg035zlY)Tö_ߘ¾/_­»Žoò PKû±RDµ.AË[• ch002.xhtml�VM�Û6½çWLuiXÒv÷ÐîV�¦i‘C�ÝK�´4¶XS$KRöª¿>3$eË›Cs0d‘óùæ½�šï~ûüþùï??ÀFÕ¾iø/£Ò~[ !اº>ŸÏÕù¡2îPÿøøøX¿°M‘ŒžÐN»KÙÛ}´½¿»û©6ÖEß¾hF ºA8�a[La_þ\Ô×-FÜÔèD0®€Î耚L­Ð½é²m�Aaû±‚÷¦Ç�ðØÔéˆ/•ÔGp¨¶…³B? †‡ûõIÕy_@˜-å øj~§èM�jmv¦Ÿéá± Òh�ý¶�UÙå„T™ž0RxBu_´Íp[½ß8�ï28ѱ/¥.ž¤'£’[uF•£ÐsÙ£Ufö·i8ÍCûY#,‘ G©a‰9Ò8äPTÑCÛØ%à^:J+œ€ëßRìºr Dï œQ�°Ü‹Ž&ÂZ�„:‹Ù¯³ 8¡[§?û€ãüÔ <4"£ŸYr�¡ôÝXuf¬‹öšZ´›¯ÌFtÝä¤P•G…ZvÙáÓržÜ¨¶×ž~Úåš*aE7`äcÑþu9g× ÞQÉv³‡0à¾ØœÔèEdjü¨ÍYs7[ÆŸ<¬ñ’Й›šÎ¨‚OƒŒ£'ÁÌ­q4ãŠÿ™|ˆW—Óª©-�‡p_<�Ø�q§AzªI¥@ðCD¾#i8¡ä”ëõôó@É#µó·±·›€ó`¨ná�¢:cEGrž¿9�óíÒK#ÇxבrFq@_Óû]eõ¡ ‘¦oˆ< ë°5gI�9Ôÿšf»ç®ˆ*€uLibG{ADIî�øMÃâÉ_ÓŽ‰Dö§pR-í“öcdƒC¿qRAZuuó�á{š`:*¥,ÓA'}pr7.áTÁâ$l©(’ˆ¾¶Kcçp›XF/:‘º—'ÙOB©9†¡ÇY†áV±4ªœ«ÿ´L¡|œ2“›ûô´nc1œ¤Éè°$n‚Á3›5ÅëdšA^‘;}Ž¥é\É�£DÈÔ’¹ðßujêYƒ3Óaˆe\ô[Ó0Q÷¨;r,ÚËÛÌ£&¹¨ÛÔXͳY Üh‚Á¬ibÑ%ôÕ<¿³TŠËX3gÑ?™òJ`ù¥›«øÀMZ3hRû t‡7>ÏÙ0³•]ŠëL?¥åOÓ¹:Âj4T Å9pD¾õ”·ï%[³ûhÙ;®�v¾á.†¸wÖËŠIv-Š�¤e(ýâ62µPŸ¤3šÿo�È? D(oà_"‘Üó”b†ÔwuÕÒLîoaŒèœñ,1µ`¸aAq ½Üï jJž7Ž'´g�˜"OL�TIN¿$ø"ˆÆ Ó«®½‰ å]”6ÓÖJži¿f¹úM^×ñTðkbÇûI;ðFÜþ†Ž&n䘥Cê$bÂNìXY~Õ÷+^%Ȉ(Ö:¬þÑ7GþبÓGØPKû±RD/DÇŒ²© ch003.xhtml}WÉŽÛF½û+*Ì!1 ‰Žç�ØàpÆv0€—A`$ȱEÅÎ�ÝL/£áßûUsIV|’ÔK-¯Þ«j?¼ý|ó埻wÔ„®Ý>+äƒ»Öøë¬ ¡�ç‡Ãas¸ÚX·ÏyõêUþ(g²ñÐkîãî䤮ú:�}ùâů¹í}&VYUÛgDEÇAQÙ(ç9\g1Ôëß²üiÇ¨Ž¯³=v*X—QiM`ƒ£½2•-§³A‡–···zË=›ŠM©Ùù¸.'ZmîÉq{�ù0´ìæ�Qã¸>^Ù”Þg†N?†\~ÃE‘�;[ øð\m éê:Óz³®Ž¼"ÆVy Õò·/³mѼ¼OÌðcßêñ° Ž×Èp­½mUàïx¸WÛwË}šîîÓtŸªSçWÛ¢Ÿ­ÔÚù°î•Sôôu­êÀnÝÀúGëõÎî�ê:möÔ*³�jÏžl]³#E½*ïÕ^öüàwT[G•öÁé] i=ö½u�Z½sÊ!ˆ–ʆ”§BMu8"M‰ò&ÒdÛ›»7ŸŠ\m“Í;v-áóüŽ‹»aÏ�Ÿîü9ý\îɆ>ÌÎITÛrE¡q6î›KI”ÊÐŽ�ÎŽë냮˜~¾7ö`$þÌk<ÞFqžK|¾´=.h,<~íPkë†D`¥�¸‘ Õ÷ǦP$ë°™‰•lMÕʯç›"ïQ3p&8köÛ7Ü>ðºVb7Ù1 ƒ’K†B«n¤ñ#J�Ú3 v’Ä4¬Ové6Ìüñ„¬Oˆ³Bô°É�Á2a?Â{;¬èA+ Xp·]ÎÏå};A-êɨv¶KàãŠoª§šoè ÖëˆÄÇüÎ- ä{.u­K5J× ô@¼¢ˆä¬ë BÚÙЈhª8J\¬U"WÛwè_s9ߣtQ@]}Cj08€Ý¸ƒÖ€”¿�+'ÌuèSNEi+–“µn¹ÈÓ¯x¹Ñ©0Êób¡R £�ÑwBz¶svo©Ï†nÍŠî†ÐHAPX[ r°äYÚ "ÕóÉx€¸÷´^_Ô¯ûõ¬;—DÍ&—Fæp¸Ó}Êàƒ8ÕÖY¬>h¢jÙ<|cò¯ekAö(»wÐ%ÝPó?Ýjob2èsƒ…ÂkX|3}]ì]|•¢E¦A—$SJÈ(�äy�^Æû“EQZ4„õRy“TÃäwj»Ø .‚ª=¨ÁK›KH»g©ŸÔÅPÙ¦±ddÓ076@:54 Aea»‡E_§=iæøg˜Øa‚×ÐúÏ%M©ý(dœðIɵ¨σØO0& ß hj°á¨]Y[Ž$ ˆË{²1Ìò$tÞ)°ÐNZ»cy۲њtü_Ô©ã$8ÄÂ<þÈEtÇ“¶—d 6캣¹ÚôŽ“)™>E:ÐA£Íyµk9¡Èh„=I‡’ħa®RUÄ×Yø¸dlUhÇs- ’º‹º­¤U#’*µN4ÜãF#†N-�$ŸÚ‹TᤠLÉL�`Ö¡½¤k7­ýÝ7?†—ö…øâ.µ®Àec,<•CÞrš~l~txSuœm?Ì+£¨Ã“s9+ÐúÉïL©/ç³Of•·TÙDNlj¹)ÏËCP™ažò©/Aâ#8ò4(Ûxñ lÛTø˜8~Û¡ªñ@2¹)À2º“ ý�0»ÛØí:5Œ~%šNœJ¤™tò¨#ð«©e&i¸å¹Ó< SC2–§«¨§É7¾$ÄŸ0E�¹×1D°VºÄ¨kY¿¼(­–Ù— N'gHfbÊ´‡(…ž‰l‹ÐnëÅ¥PÔ'ö ^3XêÝÕ”‰ŒoߨÞí$ yê?’Ät*p>=Œ�¾á >½½óñ�ÉWPKû±RDÜei³©¼ ch004.xhtmluWM�Û6½çW°º4l)ÝEÑf£5°HS ÚÙ½ôHK#‹YŠTHÊ^÷×÷ )Úòns²Lq¾ß¼Õ?üþéýÃ?Ÿ?ˆ> zóªæñ4hão‹>„ñ¦ª‡Cy¸.­ÛU?¿}û¶zâ;EºtCã´½¸©Ú±‹w¯Þ¼ùµ²£/X+ÉvóJˆz  EÓKç)ÜSèÖ¿Õù�‘Ý;2äd°®�5� ®ŽÒ´¶™ï4m>~üXŠ÷ÖtjWWéˆ_je…#}[øpÔä{¢PˆÞQ·<)ï Ž#ìz ÿ‡öºJ¾Ö[Ûñã© Ê¡ÚÛB)U®›hžié‘#M{ÒWŦî¯.Âÿ a�xh–^+³=­É앳f@„— ¯YáõæžeD’ÊȈ… Œ\oê1KvÊù°¥“âü¸–] ·î¡ñÎ9Ž?zQÓ°if7ñ(”0ꎡWf#2ð‘V�¤�"X±—î(¶DFÔrÎeÕØ–¶ÒS±iiÔöèëJnÄkäzVbt¶�bV¢å¨ìHné¿_ ÍO¥xèaO™FO-ù›º7õ¤7¨äæ y;¹†D�ú£tìg¡•A²í•ø‹†F6=µ+�+Ââ­[8¹•Í#¼Y{r{ÕÐ8Ÿˆ|Â^×l±½÷ŽZx¦¤Ž¦ rFêÓe᧦Ò‹»Aþ‹ÊÞ_ ëÄÃA\O/ÒHäˆÛ?Å›§!W<*-Å“c7W|ÃSÖý�]ÓÒì&èYs_t¤{°îqíGjT‡~˜á’Ûó–.È2ÒP$_¿p�'éb E ”[ÍCoÎ þÚb ƒizëðKÑ©Y–eÒuöl>Œÿ1?Ìïcésý°>$äYGœ ‹_ŸÈ èx'&ÃÃü¢b«s]Á½Ø�¢\C3‰P!ø]¸�ÙÅDÈ4ÿ.V*›™�§á™5Ä–q>ˆí)?œgãŸr/ÅýÑXÿìxYjvô Ud{Ÿî×rg0CU#¸QZ çEßs…âÁœbµû:"ÐRÜŸF¬ä‰»•^�*�èyP·IÀç‚bˆkË¥¦øi¾7/‘vf®å.�8cÞŽÒNOVóˆ§#Ž9ŸW«Ì-Kž ëm{&T´)×[ƒÕõñ†]x©È@šÇ(>2Ž#x½2tXš‰Q&d‚ÿA4 éçd8ï‚ÙIx|ú&ç£RÜ¥D ¢¯\(ä÷àE—ûù´7ÂG ´-ßVÓÁ¤ÔbZ^Ä!˜¬|EÀëKVÀ®Ÿtˆ\“hoØ*ÃQÓRà/7žÄ½à'ò <,û?¹â Zl]l¦ŒÂ�lâ�¬-ûz礙´ty¢ðZÌ“ª›x�côvgy+¨³8×wî Ã|Bg¤—ݼ?ùKp®Š8% >s¢¤§�‘Øy¡JíÑF†�^¤H—# ßtZw"’¼˜@�ƒ…o¼ðùSF�ÖÉÅ-yx}j¤K°±Û*Ö­‹ý—RWÍŸN‹'|šÍßdUúVýPKû±RD¥Ž’:›> ch005.xhtml�W]oÜ6|ϯ`õÒ°¤$~h“žØIZ°[Çv ô‘’Vq)“Ô�Õ_ß!E݇?Î䑳ÃÝÙ!oõÃç¿>Ýý{ý…u®—Å›•ÿ`½Tö,éœ>æùv»Í¶§™6mþîÇùƒ_“Ì‹>Ò0–G+E=4aíû·oÉõ`�J¼.Þ0¶êÉqVuÜXrgÉèšô×$ߣxOgIKŠ wÚ$¬ÒÊ‘ÂÒ�«ZWq­NRñõŸŒ]ðj-TËnÉlDEv•ÏßùUR¨53$Ïë&I¶#r ë 5‡3YemÂÜ4 °£—û1¬ò™ôªÔõ„K•Z1QŸ%b“¥å9µ12¸Jn‘5I’ï“bÕ½�"¾8‚s†¸{˜rü9Ç«ŽêÔ�Õ£yæÔ‡9-î<‹l`€íþ´X L#ŒuéÀ gûSÞ82iøs¶¢¾x½Ê1ÇàÕ´Ì1×ãÃàKfÇáõ†L˜Uä¶Ú¬= ;¦&œeJ›žK¦_lä"c_x? .L¨JŽ5±š;n!LýdǪó+kEWÓ&ë'{/³J÷yR\M·ß.W9/˜6OW(u™ñÁ§%è4)>ùÉÏ~ÏÏ' Ô-oqÚü~¤‘±'ë¨ÿ/|ÃËR¸þ>Ò¸ ëo/1Y›¬®˰¾$®¬ãr]cëÅn)Ý^Ý]ïËÚM�®Ô£ªõ\Èï´u�xˆ‡½žG]Å*¤âU§ì©¯‚š"ÔÕ2`Ù* ¬ââ± ¥XÏêðÕ,¹…L & ¯…/;—rb=W¼…LË)¬´ð�^÷B ë‚%UG©ýh™•X[Ó õ”±¯ Ëg\æ´_ˆpRW>HºY˜�ì4Ûó‰qi5ëø†öÌ£7¢ÆŸ¦#ŠÂÔAË‚ì3²=®×‹ùô…é¹YƒAÍuœÙIÑQÙ´å jŽ’ú"¨¢-Ø\¨š²pŸ„ì ó3ÌKÉ‚#eM@A²æÁQ¬ U­Úâ®ó‡‚|Ãræ¶$7”6¼r~T·&oƒ¬†º¡� ÚfIÈNmHÖ^m;³µˆ£°;½ÈåÒ® ÝõÔ÷‘ø�kÌmŸ¿o.ýµ—VˆZye¨Æ}+Ð ,o Qü]*�NÕˆ6)æOôŒ�}_“o󤘻rV^Pž&Ávz”è*pö*@ÓÚ-¼Á�㜄àè{÷@©;¦v$?ÊÒkõij»èÍçÛPÆ€ÂãrÃSEµ(’Ó¦ôÄ.ak[aédÇs×öHhµœÊŸfÉÀ:ÒLgš‡6±ç¼xÀžHQd,.”¹B.PU­äì™K¥áaªF&cÝæ*á¦:cÆY´ú*ÙÉïñ "Üðáþ_°ÃÅŸ±ßQ;šMÏŸþQ}®eÇo(¹~´�=zú¾°x Ö>&01Ã0«ð`’Od~f÷#—¢™‚ño÷Ͳ—vÆîž•VxWÙx ìƒ{]àÏ=�0}¶�@R` ž…ýÂwˆ¶>›#ø�nĬpÿïtÜwNïì@ôȨ©ðlì!W˜Nß¾ËÕ&¸rð²=÷×L=ÎÝñ`�¥Ñ¡B-›½yÔ´GšÁý£Ò’òQEs ñÃbö–„‹ÑǯÇТh+”mëO,¬éä`ëÑu�Ím‡›c€Çûp=íÁc¯ ³Õ4F÷A;<(œyæâV£1~î0U ʮՖ³žDÛ¤ãh»¼¤)2/�ûü°ÅBbóøB?ø¿ â��|þµô?PKû±RDôuGÊÎ ch006.xhtml­WM�Û6½çW°º$V–w·hš…V@š¤@N-Ò´@�”4²K¤BRöúß÷ IYÚ —ž,‰ä|¼yo†.¿ûðËû/þúQô~ª%ÿˆ§qÐî1뽟Šâ|>ïÎ÷;cÅíÛ·o‹'Þ“ÅM4Íõ³�ª�º°÷n¿S˜Éel•d[½¢ÉKÑôÒ:ò�Ùì»üǬXW´é1;�&+½±™hŒö¤±u’º5MÚ땨úc'~šÕÐÞKIGx˜uYÄUÞ7(}äÅÇÌùË@®'ò™è-uÛ/»Æ¹LøËמž|ÁïpT1ì²6í?ޝŒª}ÌN»¼fßyr�Ã3¢¤n�h¸Ëª²¿ûÇ ±ôÌ óV5~¸äŽ&‰ä)ÙGÚl;w^È=wqÏ.î«ßÒQ±á¨ÀQö%âQ¸¼¯Êi1Ð)ë|ÎûÅú˜ËΓÍ{~'J™�*ÓR�гjy* Y å„·R»ÎØ‘Z¡´7BŠWÚè¼åðÌ4¢t¯EKÓ`.Â÷Ö̇ž‰RPe1UåØGå…›¨Q�Bªõ%숉q’b²¦!çnÂ÷M¢#ßôäB1N[·Að�t£PÛjûæCp>)0UÔJK«’)Ô�¼Û•pÛb—H¶EÏË#­q!ÔvnÖ,¶Ñ&‡p…#Hù¬|¿Iõ¥Íl-'¼e‡îÔ�¹Á¿÷Np8–ÜdBh”ï™¶5¡ŠL•ìMÒ ÀLÕmciÐM”�«¼:E ✪ÿËb2W¢Õ}%ñgN”w²A·PÏÀCÄf¸ô3¼&l%½reÓOŸ÷9¸IÄϰIOrœì›¬'ãœâÆ€GHƒ§‘>°BÌ3Ù'*Üt‡†xÉ[ÐFœå…w£~ªæyѸÕP-›ãbm#®%ÿk×ðÆ Ž'�jä€nºŽì’¢Ó8¶n¼£A´áƵ+k5(¢±f®®%‚£“2³»¢ÿ >|%%Oo‡ñ}@çz‡‚�œ”ã–k¶�guTYõþú!·}ž’5�þâ×±xÀé¹n•%.ó%LùV”ŒôÒ �ðʼb C%R«YðcÀ]Æ0Õ—j}³çêd'>a6$€†‘I>B?gÒŒ¡3‚80ü:«æhÿ ËTÉ�˜—«k×›™{Øz8ÑËsÖêëL×=Ÿ>€O3tó Ô§¥Y,Û^-{büwûÛÛ|ÿ}¾ÿ!¿Û?Üß=ܾI©¼,n‚P—€[�žÇ4úÆÈév¿_NíÄç¥:Òr×géaôäF#û�ÚÙ8f®!5RƒxС1X¹;–ETU”z»ïô%ÉÛÀÕkÐtþ½p-Š(­¼ FÓLŠ]3Ý"0–™o6 U.1�ý~Žb];tèʾÚ8±´«¥ÁÞFžMÒf2ýcEgÍÈN4›àœ9»P$8¨Q‹ã2ÊFÕò­(ñN«CïÆÜÞ6°sq C§Û8Ô·—vÀ|@zá–2ÐÓ%YkÒñ¤‡ä—±8ànuÙ«3¸7¡¨VÖ[G$L‘nË›'ÜÐÓÕ¼ˆÿ^þPKû±RDTཀྵ² ch007.xhtml�W]oÜ6|ϯ`U±�“”Ú�ƒ³€ M�-$A�>Œ$è‹OäîìÎìPÞþðëû_>ÿýá­èà«g[þ�ƒ6þ6ëC_—å~¿/ö×…u]ùÓÍÍMùÈk²´è5�Óîl¥jÆ6®½zùòçÒŽ>ã¨$›ê™Û�‚u/�§p›M¡Í_eåñ�‘Ýfr2X—‰Úš@KGi[/kƒ šª¿Þ⃳5yO~[¦‡üZ+s/éÛ̇Y“ï‰B&zGíé“¢ö>a‘1Ðc(ùñ·eB»ÝÙfÆ�§:(k„jn³Uäãšè´ô蓦ÒWYµí¯ž‚“³ôHõ(=årsésk(·.¬£Üøü·²\s–ëêm #F Œ�^ Œ°Npq#Æ(×Õv\ƒµÊù��ÒIq¼ÌeÈå=’|^+/È�P&æK÷\™å¬@ÐS[ª“ܸ+¶åջūa jéiÕ¶!N(¿ir©9¢¯�Ãæ;©ã–†»cGr/¼Ð¶–Zh9;н ½�è¾AT­Q‡–¦›dGÂM&¨Ù‘-Æ_sD-'S÷Xý ä‚nxÄEâ¢E¡ô(¹†�Ø2òjœCdÃ|— ã¼-ã›ËB¼OU[üÁF„±mjÃq¸iÎÞLI* �ÚμͰc¯|Pµd˜”AÎbò„_3‹­\”�\¦žœ#SÏÙÚü¨o¿IÕ£Z™ˆ VüKÎèB'Œ2Ý©\ä�±­huW}Þ“~ ¼•5Fó¸TÈ3Åq�˜_ SìÕ½©Q2zß•Ÿ`ÔÜ4¹ï¤«{ÐŽÉQVy~™/ï4 ñe720/2CÔ N+@¾G£Ä0áÏŽ1¡´([™ðµ“>i×NÖ÷ˆ�{r ¥dÕòD,O8놈Ök=³È�t½®�á)œA¤¬£ü[…6Ì>аr¼RQC…€æ)vNQ»Á(˜NÜ4^&þk íâ·S•5vo´• #”Чƒ‚9ÙF°ìeàçì2!陫çGŒÀ‘Ÿtð+ e=/N²<Ô%¸¢pÆ3 Î`¸påý4€ïØuH/R“ Æ./�ÀV°ò÷˜=­¹dù •–;MüŽ31Ç@õÏÄ€ _ìNäyšÕ¨ê£º€™�" yÕé†�S/ÚëU×/ ž†^0£¹‹$ª¶%ÇÆ±$)ÄÛ2bßãÏ:Ö€p¶Ÿe Ï'º¤ â"8ÕuäRÀèZi^7|\µª‹è:&Æ}Ƕp@Á§ÂÊÑa`í9Æ~ö*ÚY\lÍe*jòSåS%ì„Úµ^Œï‚Š®Ø¬t°Žš¼L“° ø ZŒÐ=üÐyqá'´â|:Á8{'F]k;5Ež¦]K,¿ÈaP¡ÌªßãÏ —ýt?w©è¬…Ðã¶±l¾ G ¬æk�9èet&¢™3sb“ÒMº#’C!p ~Ä­ì—Xûv¶s©ÝÍÒì ˜Xx7©†|Þ� �Ï“"~QU1%>�ë«ãÊDŽù ëÁµ²øÉ$ö´©-ž¥ÅêýŸ>üLån'q,ÖìÃϯ^qC&Væó«›?$[ű[Îø º‡ÝAª£Ï"áÝ8 sÂtpA—[—%·>±ˆvýryqøD‰B¥G>yûù {Ñ:;¤Ÿˆ8”½bBA"¦ÛÙø}ìqÁa´?�ã�†!±ßêä€ å\#ì�½�Ào²½Õ²ñ}U¸šFky©-ÔR!ë*oØëÕð f:9ây”eÛ¤A�˜£f•ìø(£§Ä¡oÉg#kYõçzÿ­yƒ9)_(‹µùòxž—ËçèÉ>y—oÝ2ýðPKû±RDR’U ¬( ch008.xhtml}VQoÜ6 ~ï¯àü² ¸³³ÃÖÀ10¬š¢íEÖm�²MŸ•È’'Éwñ¿)ÉN.M  K¦>’?ò\~÷æÏßoÿÝ]CïU½*y�‡Aiw•õÞ�—Eq<óãEnì¾øéõë×ÅÛdÑèÇ©>±”íØÛó³³_ 3ºŒQQ´Õ+€r@/ é…u诲ÉwÛ_³âñ�^e{Ôh…76ƒÆh�šLG¡[Ó$[/½ÂêóÍM;c=ÔR·RïË"¾`%õ=XTW™ó³B×#ú z‹ÝÓ“¼q.?�äÕãƒ/xO>Ê"F\Ö¦�iqØxi4Èö*;H™oGr»Mn)J%ñ¥ð€ê<«Êþü¥àèôŠC{� ºíAŠoà^0îEu.Ár 茧n.ªr\®vÒ:¿…ðø¸�G»í òo¬AŒ£aœ¡"È�Pñ›Éc R;Ù"8bÍ>ц’IÊácÉT £Â ìÞî"Ô ÷½;i„ ƒi'… R)R’dxis1Š¦Ç ›¬ú-làíííîMYˆjäæ�8ˆçð_�ôfh„?ż gŒ–—ÅHQ)¼5z_Ý’+DuÀm'{é(OÎË£š‰mÕm—¼Û²HW�4 ­!¾´ñ,¶¨´“HÑÝ¥b›î„@©½On#Ël�ú r ©½l, ŸX稨®KÅsà€�±l°$¥äg‘õdõ¼(ƒ�£VÖ6!%õX²°øß„·ôùHjÎÉ÷‡« {7T\P¦ ZV§CìOòØ„ÓKÊú �ôO#ûëÓ{r}OõkL‹U*^Àì�ó—?Ÿ��e^†ØÒ» ¨ DL›dJYÒ¹ µË�‚kqTfŽq°†h¦d”˜)’ž’¦þ_O×”;k¦hª•lÞ9K�Š;ÔLDWa´†ÃB·0sÛ“vèGCER*¤ É:âPb “cØU´…ŠºEÝH¤Y¹îfÊ�š˜æ „…8hÛ))Y[aç%6Ê~njzÖÀó¶àáLòÖ¢5°öE8øi7ûÞèÍ—¹ ù 3YmˆÄœäQø^jÆ eø4ÕshØçwèýœ3N/&܇#xÇëŠ;�è5”m?ØÖÂwJèý$öD5’{J5 +ê·Ð|¤Õ‡j"rÀQ÷cYÐvÕ+ÝŽ’C^¨úžEÞ¦Žâî¶ÔÿÁæÝI~¿è'~ Y¥´ˆ!ô£Œó�1�Ó$ª7„Õ õ©’ŸŽó>¢°tIèî%³ÒA*¾3�?òÜN<ùï@,¢|!RæU…ô±·S“¯aÃuœæŽß©é…áÊ*Â;Q×hÛ\T½e øƒQÜŸ<]|¨5£èþù°Û±õ�qþ<·´ØJ—KC–Ÿøñ0óøÕ+ÞP×¹‚ð¦1*!À²^—â|4YÜݹ�9sñ⫟{{÷çí;ÕÆÎ,_,ä�:tƆë¢�±ÿ¡ªöû}¹¿*�ßT¯ß¼ySäM1<ú�û´zôR7ý:¿½¼¸ø®r}(D+S³|¡Ô¢ãHªnÉŽ×EŠëù÷Eõpc©ãëbÖ=Eç U;ÙâiO¶qõø6êhxùùææ¦To�­“÷lëã¢.ä‰Ñv«<›ë"Ä£áÐ2ÇBµž×Ó“²¡PñØÃjäC¬ä6Õàñbåš#þ®£vVéæºØi­Ëyý`^ ÀËðŽÍe±\´—ÿåN) 5ž»ç;MóØò¼÷®ææ�kØá@m“:ãŠÊ %*rôáÿ³q 2Dïìf H%ü¸g³ãùšjt#c6á�à9ÖPpªÖQÿÃÊF5êöüZAã@ÃὪÁWµö®S ›ÕØZ©¡®lÙ»m*Q²UO!¢Å¾~]}S½© ÇÁ=LÜ'«÷£›÷¹-ÜGw¿çÕ½”hU,Åyô¸wHEž¡&k´�†@P-Kõ)ÈUlõ(1{LðëQ¯]Nîô¡C_° 27dƒÏé R¦RO›l•Q{9B?y#¢¤Ü-§ÙZT8xÒ:>ÜÝÝž îÑQ­x´š{)p x–kÏñù)àÕÛ�w ç‘Â6<‘…/C‹ñYî‰Æ!eÖE¸R›Ô€�Qê&‘™p%ç4« hÜÞžKZuÉD�H¸ŸMËO‚nøTÕQw¬>œIÎ޶®�‚Ü¡O‰”0„pΙ Bª üSJù´:fÁ°kË™WÅò�}Ž$ï³g‚q¯ÑÏšŽ¢×‡,=Õ½.)8øTн¿BÞŠå¯ø(ÿ©õ&Ù)vè»Â§Ü°�˜½ nl«/Á¡¨Ñ Tž ¯fr56+ƒó<^º„ª$ƒð€Æ°Eœ‘~6Ö…“|9έª‘UkÑ~¹ŽÂ+|»€-{¥ëê% ŸºÞ$ÅtAžÓáD¦V"¯ñ^� •°_€A•ì=�”‚jåš\dXÌÑ•Þáúv¿‰¢BüºfçvÂgU£U 1Hç$ ª¾ßɹq¬0ÁÛ‹›Ä�#Ágøä¡úÉKÉdƒÚ(p]Éè§|—|ûÃõ›ï’bº`<¬÷jm�ä¾ËwŠÍÄ÷,Q1P9¿ZÜ÷î2W g©E 22,H+´òpcacò •»…êDÇ}~‚'ŽJ®hÕÇõÒì"v33¾9µ¶Ãü®ê�cÉ홃 V ¹oFõ‰¶*à¼í´ªÐ]Å›+¦PMšs ¼àÇëë÷‡Hl.>Òc{±ÊœŠù 5ÖR�[,R Q�í!¾Ñгœ•I²Åìðh¢ �Ú.L"°ÆÀÚ÷�Óƒèõa}˜92õÀº è÷ùmpz7;ãÓV3Zp»î’‹µ“e©B{“AûyR|ˆ·ï~� ›ãMñ„~ܧè½(²½éÒ³ô2}šÞôªÚ`qƇ…GpQUeFV 6Óâ×—¯~^F‡-xÇe¹qÙó«/cðƒn¢75²ýnÃ_��b,Ú@›p‰�ÙÛÊÀ"ž`��94µ Öõ‹­6);?¾å[8s—”þ4G�$�2¬Àîù-Áäd~ÊÕŸ�×#ö˃äõøLüdË´¡1Qr½£‘LÑé8wåÀœj3 Ž dª¹úõ€*£ �sö³¬å�PlgŸŸ?ó}éléÑãóKvßé݈öÐ( �cÓ窫ÝÌTG¾×Фbùq /£,¢úZ¹™×ÙŽÏ|ê<œ.&^ÛYØQXÕ|üϹ*µ�PÏæ< "© ‘úº&žÎ24{S]ܵ˜ˆTš›5½èMMNï¸lk (ð�Fi;Ã舖ùÃÎG-ª´Õ¨ájïM÷- žÞF½ìý>Þ-xÎEebDkl‹3‘ÉÄËH�'™š�HÜ}‰c{Î}*9Š‚3.¡I,_ì ~PÖb¤Ò¨'?ÒéDSÑìFôGâÆÆqeâ�âÉ€Q'÷N‹ò|9jhÔša¥m.p¾3ûC°À)Ç¡Èhõ.[ô`2C!é vŽÿ,OϾ¹„g¼rÒ7©5 ,Î •£ÕÅcRlò¯httü½Èøÿá¡sàT—‘‡dr͇Ë�+¨Ãæ8:`"Ò=/)´]Ç3‡Õ˜‰ÖÈ™OŽ®ð§cú·‘�ÿÅþPKû±RD¿‡î/{j ch011.xhtmlµXM“Û¸½ûW ºd]%‰þ8$žÕ¨j<“ÄU±³¶Ç•lN)�l‰X�€Òh}^ (i4ö\r˜ýùúuC‹?Üýrûíߟÿ"šÐê勈‡V=iB變b·ÛÍwoçÖ­‹×ïÞ½+xÏ$mº¢®/Ovªº[Žo^½úSa;?a©$ëå !-)ªF:OázÒ‡ÕìÏ“b|cdKד5r2X7•5� ¶vÒÔ¶Ê{ƒ š–¿ÎÅm‹ÎÙZtÒ©°_é ïÑÊl„#}=ña¯É7Da"G«ã•yåýD„}µ�BÁß¡dQ$“¥­÷øðTe�Põõäa>«iËjgI-ÌÔÒ#`š¶¤ßL–‹æÍEë°|"iCÔ±,Ò¶káæÌ¹Vf=ƒ³3>Ùǽ3ég^µJKÇ��õ^•šNÕ¾eµo—‡Hq$r*²Ì©€P1 Ò‹,”¡0òírÑ ¢WÊùÀnJ1>Îä*�›5PùAyäIURëýT„†‰FnI”DFø¾„v”Ôb-;�Õ°ãGŠŸäð•œhå¶ ­ ‚j¼VH¡-4ˆ…Ìù+*[S)=M–5uÚ"´r)ìŠ ²ë^žû ®7†E§G›…¬*òžjQîá\ïÉù—sñ­!OÉîVµ"„28æIµ(ºå¢×K  ™ ΚõÇDPm<‰ yUÜœx¹;ë6¦±+�)ƒrC^Ôrï§QÚàÃ:�CF´(ƒ&Æbma>Gçæ‹‚µŸY5ÞC1ð+®“É/v%EýP'É'ÄorŒT¸,;X«ýÓrÙ»’F·düUdtCâPð0÷_>Bsä/÷âW¸Û(M1!GIËV ^Üt²jpäÓ‡ÓÉ�ÊôÙÀ‚sÐ�¹#½¥ÙJVh̳bǼZ¤z…µœŽØKn«yeÛBþg[�Á^¿.^½)˜„ Ìö~–lbÜÎ# .Çwb|á4q}sØ1„ë"üÏ�ê[”Ò|„ÍGkcE0>Ø«¾ˆIøR9UÂYÚ-�`ñ ”ög &¹WBž£ð€�hH,]²+ÝØ`ø[�hán@J´ Œ9¨‚]c¡ÖÔ‚1*m=iÎl-’Vs™%Øu•‚´“¡jÒw&˜ª`v^*…1VK6gù.ߣ۞® ŠYÈQ8Èl�È‘¥mÉ­#Ìã÷›'I|9rv àÞvÝ*0îdù>­ˆa…Ëýª¯”éù�L‰ˆ)Ø~*þÛSOñÈÞj#AV‰PÝÖ$^ĸÕ§í—w¨¶³Ž;Ò\|’f ›u/×@³å�¥J‡ÍÄ(U0~uZ­ö¹G0³Yå©áPn*Ý×¼´ v)kÙ…}|á3õ!þcÿ-iЉúa¸dYªðéËT¼'iкõ¦žŠ¯ÅüE§ž‘¬[®ÏÿO¦îûŽëùêê¹:>QkÕÆ��B°)¤>r°È¨,rÉEf˜GÁr_õƒÞ�Ô£9ƒ©�Òæ(nÀäüÿœ0r…+—Ûc’†!‰¡\€Ї îRΖ܀υí”ÖiàJ�󨊿rëNÜ2Í–%ˆ&Íè¹,xDðéùŸ™_“‰XŒ ØÆÆù‰£ûñã�æÓGý¹ûþœ6N'£š© ôh7Ì£ððˆKÏâpùvqÚÝsÕ4 4hèø™œXBT î.V ¹“¦ýA5ë‚_çúqá;Ú0óÈÊ…•~exæÁ¼ÙÉ J¥1)`Cål'únЧŒ�W¾4ðÀÇNÉxgÁ$üy È|ë㨭PSç¸Hw›C7"çx~¨Ê$V¸ÐÅæu¢ôa#Ī­ú�Í»4ñF‰xxÆ›zíA [ËYäÛ ¡ƒÃÀˆ¤xÃ[£~µ<6¨¢”,lö Ý.AK®Û5ÛŒÌE-h×±:Y2�ºÔHè1ú>f÷!7Ü}5ÜsBZ§/æ‹pg4\mÐ�é)q’; /‡8mŠ�b£2cC„•ªz8Y*’®NõÞǘM<Ú¤¡MJm"0?NLçšö¡Òóµ M_ÆKMâ*í ÜÛóc¼©°®“³‡Òݼ/{úxmo0G7]ø…âƒÝ;Y¢vfkŠWž¹¸Ñ($#™›ù÷€šÐ&\üÊèÛIÖ$TòTþ”Ý|Ã…”aŸT7´‚Í·ø¸l/ÎÔ¶òóý€‚FåÆsè“q!ÂB©øê·C@9Ï2@¾¡?£á'�ÛʵÃÙwYÅ?Ó÷d˜Æ¬v|×AÚ8‰�Y>Ï—ÃÅ(uöAµŒä'†ïÓ Ë0‰�&þd‘¯"(ê . ¶&² —Ë0»’¡•ŠBÎd–t¹º‡IÿÀ”ö{<ÌÀö�»{Õë)”2—Q*£–ïfÜ·3?Ú=–áHgÁ:e¸(çâ}8ÆÃÕèøGœŸÆÎqÚM?�q})<¥ˆôÄ·!fÄÐ ƒ5’# yPõˆócdŠü£ÞÑÓ‹E‘:,Ò/«ÿPKû±RDnÙï} ch012.xhtml}VÁŽÛ6½ç+¦º$ XV6[ Mê4  E tíiAK#‰XŠdHʲÿ¾o(y× H¢g†oÞ¼r÷Ó‡¯¿ßýû×4¤ÑÔ/vò ãhl¼-†”ü»ªšçy;ßl]è«ë·oßVG±)£wì§ý3KÝú.Û¾yýú—ÊùXHTVmý‚h7rRÔ *DN·Å”ºò×¢zúǪ‘o‹ž-•\(¨q6±…©W¶uÍj›t2\ÿóyK_\wÕò-ÿm(°¹-b:Žs*hÜ]®l› J'�ÍS%ß½« »½kOxDn’v–t{[õ¶4Ø ˜ŒŠ`Çð�Í›¢Þ o. àã™[ ¬Rv,U,ábSeqü.Ò�Dº©ïĞĞT¤lO«=‚ßÔ;öêtˆ©ô*(zz-U—8”ƒDã±^0á…|pÝ2tÔ{mt:‘¶ÉQ˜ö<¨ƒv�\GŠÂd­¶=)ï·ôÙRäp@ȽŠÜۃΎ€Å÷D*0ª4ŽÎšÍA'Ô‹XP&ÐÐêø@¯ÈJÖŠ«ßh?%¸ëHøeOeÉMÉc¹saTi»«<’Íä=èN­¥\õ¦Z5nîaÚCåULÐÝõuõsu] ‰÷p½_ù»·.Ý €Xõ²¶«T�³îûÀ½JÜn(é‘KZ’ï!gÚ8cPT,tÁ�ËŠv��ƒóHèn8FvÛÒ^5²*Tj¬/bA$’ÔœÓ^=yÝ 8!çJÍ: àŠWQxµ3½Jƒ›ú!o’‚Bø$ö¢ÃH£:QDÑ8™¤=Ê"žñjÅ�ê3Y‡‚‘áž{½$E°#R¬Î¸9w£¶nŠ.B¥"“¬QK®¥—Î…ó¹~;³ú=¥™Í�ËN5èìlo‘I�   Ô)²é–<è]!D˜«ž…aX<绬ñé3Ö@„i‘I"Ž>‰E“,/ˆ5*+¡V!FÑwLhù ±j†ï«·¸f`Ï:qC“ÝO]' ÙHä]ãZ†¤Z€ÛUùcK¦ ±ŒC1©•w^úf“ùZ�ÿ¬¡›ƒæyiˆe‹UR{îAD„üµ ÁGmTrÚçö<—àe|læs¤ƒ“êW2‘Y;-Ó©eoÜ)®©¯)¿<ïŸQíÑÚʧI:aÊ›ð‘›)û_Œ‚Mni`êva)£´„ËŸç>yì Ýäæ�RgÇ,n)r†m¦-BjQ1¸È<åáG‘_)d mšA”ÙÒÝÀ‘¿ŸûKs‰6ò4gI@~�î§ diMò›^äqrèœÄÐþ"£s²¥¯žmÝš¬¸%ÑéUœ@8úæÙ8‹˜g=8›öy”-SMf6=2å%,Aö#ßÎL°>Ú¢þ˜_Äõ*g¢J›œ¯PšUç§à]ä³hî~¦ølˆù!]Ûà a<•m™ô!sV©°zÐ8GX™¥”°›èY=*wKºˆØº·ºÃ°³Éœ–¶X·[÷ˆ‚ ï üiÛòñ\|TÀœ¢ôË %é9]¯$Ñ›É>djŠúïü!ddÄŠ–Û†)W ¨U¸ˆÌà Ó$æ©ýã 4Þ*�&â|ï)êOªuÎWŸð‡ìsVå'JS¸<ï©Ï‡½w3‡œT‡ ŸOgù'tpÑËu"§ý]‹““ù)o`Ú˜©…Ù»\ÂÉÔ¸ ÕÁYN1„éóy¶N9/QrŠñz.#Æ™òCž˜:§À…l›ÐW1A¨'tpõå=Àb !HXP7 SyC!'L«²e47D20&$ú³¹ˆ-9Š'Í/¿M�‡$‚ —ûæCŽ—Jx©œWÀ%Ï™öŒ©.ªõNvñ†ÛÞzÍ«–»ïPKû±RD7à  ch013.xhtmluVMoÜ6½çWLuix¥4>´1dE“R4pƒ¢=”4»bM‘*IíZýõ}CI^­a_öCÎ ß{ó¨ò»¿ÿòõï/©‹½©^•òE½±á6ëbnŠât:å§ëÜùCñÃû÷ï‹‰Éæ Æú"R·Ã>ž{ûöÇ !“¬¬ÚêQÙsTÔtÊŽ·Ù÷»Ÿ²â¼bUÏ·Ù�-{�Ϩq6²Eè lëš%6êh¸úëÓ§œ~n{mið®á8”ż&QFÛ{òln³'ácŽuž÷Û'yBFqP8òC,ä?Ê”ÅÜtY»vÂWà&jgI··ÙƒÖùNIåÝceôjTj†�lÞeUÙ½{¡E,\¤ó£�³õʪ÷8ð.ªpv*ìœå�Ûï_*t-…®«»ÑRJQœsPÊA*В㢇ëªÖL{íCÜ Ê+:ÿÜ©}d¿ëPákÇTªºœ4£÷l›)«–”´w¾Wr¢²Pé@{”÷j"·)ŒÇ*â9Ó¸¥è¨usè0|ÀÖa4ÊS=m%íë06�¡ÿ ô@'®öïÈ!†7²¢#À�Ó,mG6Óµ‚�Ø:icÐd„Ÿ¡[j®�$ÐtˆØ¨�LÎS¯´hNÙ†q¶µÇ+Zº)‹¡*GSAf‚¾•ÞZU­S¯>¡�p~È©l\ËÕÌM>L&Û´uY¤Çy|øGÙƒ»Z½ºgjë›9oâî”6áM^(»-­dT‚3L¯• Žî­;Y�G�™[¦”m~Ò÷zàV«4©ò¯¸ƒÚw|TJߌsCVÝ}üò91ŠY1æ�€çEj¾Ö€ÌO$� jÚ†’ÞpÙcÅ þx†yÁÄ+H9ýæðÜàÜ#P "’£F6ER•êIJ¥ÃÉ^!Åžñ cçFèÈNhå0ŠÚ/‘&DØ7ô7?fo–goæ¦)¸ž©Q"ÍN¥xXd„£õ ¬½È«ý#i¢Š»±žÎœ�™•…‹ ( F�ò¡ñzˆ!Ô1b.pØË±ÜåñºaÝUìõ÷Zµß<7η!ÇÚzÆ¥f!2ªß·’ߌd–¦¥šµXRbK€T7ÊÛ£öÎ&CQóX¯Sz¶„³9UÆÙÃn%nc8ÐŒ`9SN°”i–Ò¢��N‹zÔ¦ÝÁºÄH²¬ZþHž+w˜Upa\XSËY%Ÿ© °wá[{}�eùžBÒÐjbÛ~’Q-UWObïG¬†NI†r ’™§u0§ŽN·iÆ;@§ÿ›Wup­<Ç�<õI÷-l|£ÈÇv:s6×ÈMgµ8à†ºd§(¢`vëqäRƒ/þ òƒêÃW¤gD¸ÉJרq6ç³êg¡Õ#l—±�¬Ê¼Då㢯+Ù€’ÏøÞÚÒ>“éy{Ëé³¾gx4ÚTô%M°ô‡˜~¡üOí㨠4¹- m�•óüØ7nÂK�I\eY;'»¾:on Øa-rt‘ÄÃ^³<™�G2OlŽ¼Û«o-À¬ÌD{7ÐÙâN�ÆíñÄè’µ’øÙ2 µ{¸J�Ìá½ …[JœV^¯¯Årú$<' áwyj{tHâ^ph$j/>w³ª£ �ž­¨é¸¹—^çpç§¥6²µãüNóL ¤ªRA¥O+,¸†*¯“Ü"³A¿ñKí2›~rÉÿù0°Bî Ö\jÈí/üˆÑ¾“o]rßs’yú¤`…™R™äL›ƒGŽžÐ[cñÅL^’j}Êಃz }^×·H GMÚÙ;DÁž/óé÷Ú8z;œV¶±\¶IB}†Ü‘í‘ø­L&û¿íg>îçË÷A@/D; ]X86qa“‘°È…E#aS6 ›¹°ÙHØÜ…ÍGÂb�„-\ØbŒŒ#anБ@Ý  #+€º@ÇT€ÌÓ~Ëdn.�š´S¾*Ò[žI;ýƒÞ3ègá=#ü,crϘ¼Ë0Åi"ËZÉ�iç&âx1dãèÅ-‹Qfì™y¦œàöêwÌmø€ÝùÞÃ!q2$FCâtHœ ‰ó!1¢©ãqh‡èÐÑÉ%ã6Éö35¹Ë3ÈØAeÞ³&ýçŽ^rŒlªWøÕgÙ}WïøuIº—ðúá?PK ö±RDimages/PKë©RDæÛŽ 5a;cimages/img0.pngÝüw4œ_Ô Ãh£·Ñ‰ÞG ¢¢DïÑ#¢%j´h3Zt¢D¢‹Þ%„Ñg¢· ‰6:ÑF‰^>~Ïó|ëûç[ëýûµÖ,ç÷½¯}ö¾ö>gŸ=�'Ä„ô„€XCý±€u÷QÅÝýfóJóöî�‡º¹7@DyÿÁdfCV€Æc%#¬Ý\GÏTÔû:D«ðÞ1ކÇL‡Yˆ ÓV!"™ln^.½·'ÔZ'@'@´³|µ/3ë³%ãW3:Ä$½ÐQþ÷ð¢å"»Âå“HèÅV©ˆrÜ–‚ ƒGšõSºAÉÀ8@”"”hyÎøß�dà†ç¬`þGËÿÓÑö®ÿ£LÀWŸ§ôqI{½Ÿ&ŒíØÌ€C@.ì<8-r*,k©Û£RÈüRþó2oý€i‰àéi [š´Èùî(Â\:Noý¨�Wìü6X ýóP o÷H#ƒÕ„æ¯Á�Ϥ¸°½Ü}wÈôz‡2X¼å¢ã²:Ö¶£±µÌ‚ì°ýûy¯"Ú´¿ŽßÙo¿ZYˆO�$n›ÿ|îÒ¸ŸÏ—еaKæs½V›km^pÝÿ1ì4y®@/ �‘ø�TKÈêÅ'Eψ› ì9ODá�bÌHÞw÷ÆzGà7%è)ɿ᪨\Åî:á™ÀgúÞ¿6Röãªx‹éùA ]5Ò¾6Ý¡Äþ$ñ8Þ0m¡â'âìn[ó÷1ß/#“ÏîD£öÂVù‘öG¬�Éh¦ªyãŸÐü¹Œ°�‚b^ ß%a pR½‹EÇ%ûä½çW—p ¼ž0!\k¢P‘�íZ §…¶L†«®J?í\­TùFCý'éÇS†Ã€ÅBz›×:ìaçóyöþ[í¥²•¼.pÄÛ!ùº®}dƪûRøÊCåÜ/âyÁ:üí,˜PmkâW­)SUC¢²¤åÃL{)î²t._u4H¾jgC)>Ë*®6šc÷´¼¼\9e^Yg���üâKºr¦ù¤z`‘*_ =º¼™ªP…XŒV»°'ðãwf‚â aýÁß²Œz„ôEÃYdÕ犧úÖªm¯=I=¹¡ u·Â”!ô{ÆùÝÅì[CG2u?ÒJ¡�§ä~$ÿäã;ÙéÞ½Y÷¡k§C´»±^Q’ö.ªEgE*ζÑ$Óº»T–)`�’…Òí…ö+`7©âÏ$W‘¾ªo `«˜«Þ`^Öe×ÍÊZŠ˜­¥F !}uð†NEŸ6ûOÝ$ÛæË�²ˆùÈ·tP ñqž£¸Ö†”09‚ÖÙÄz¶¡/Rü o-Ñ8;†Ðè†×\†yqgø!¯s[G)RAì#þ ŠBž¬©Où“áû�í§S$AíÌ ~¶ê`3ð/Ý5ê‰;¾<î§Yÿ¡Q¹µÈ:<–gOÀè=D'Ýè®ó+MÍ>Ñn#Å·A™¨O0¦¦»š£ˆ{Âþ«¶þ­z=£ÇTöG©¼\û~z{P×q‘;,æ0à{j8‘RyPTžQoHq]D-–õ`Oé›þ)ô®YÚÜ=>®â/$x¾�FZý(åÝåC§÷Ì :›rdy;¯˜‰/НÎ$޾ÎH«ùƒè1Ì­’X‚÷Yóz_¬u`L×Up[ÓQò]ˆ÷2ý¥™hqQŸyGYU| eòŽ‘0ÇzöCõ%¶ÉP†n-‹gJÚÒÔ”¢}J—ਈµ¦î« ­ÓÇ1‡:%ÍXþÃ¥¢ÆÇ5þñ ’yIö¦g§°4ߤ  i·ôk‹fq†Rñó�D´5W}-(qÑË´R|¼æ!#ëÙ^‹! ðäëŽ 4_ I[zõà½ûÍ.²½¨—³¬ƒTPê�Oè™Í­Gq¡ýÐ"ɇ\M=P²&H¦–7íÍk¤ÚùÄmر٢øí-hŒsFŒ\bõ|1W˜ÿ‹ÕZõ£ç²fµé+X$Ûò# ¹Áºže51n�è�;tÏÐZ€’Õ´ÈÒÚXZ?êøÑ ºFÂ*@‡âÇèšPu>²ÛzŒ{;dÚÛ»È×*çÇ2Ÿ*\/y£I…ëìdð€BÔA—AÓZ÷G–¢�À‘ÿ˜²@ˆ`¡ù>«…ÄÔ;ÎO hMwhˆP(‘0A¯óDþ3Ïö±!,ù±ömïµRÅ¥çîZMQÓ+êÃçÍm#ÓXìJ­=uIÎ%<·@*ÒÆfüK²¢¶Î�ôêºKÂèQþÐÙK*)Š+Âøô) Ê› Øyö'çx‹—θ�áo¬­à Ÿþ‚›š€ö­Q¨©-9Ö„ÉNÇ� .·�H…ðÅY=8}Foþ¹£º=émkzéöê:O�}6áO,Þa;^w“SßfM·â/aX*2M—Ó­Y+¬UÀÚÉçù5Ó¥Ûã9¡Ž62ÚÿQ,o•¨`•Z¿Êd¶Š–Êw³Í fÛê×w:S¢ì–ªÆZKkÜ lA�Þî 1QÕã@¾Ó ø¨&¥Øû�éÐ#ˆAÒi*j®‘}°™Î¢¥×Zv[Ò ¥®Zu± M…µ†˜¸±“âÈãÖZQMf¢ÍPŸT;Oq¤@Wñ?œmòˆ[¼�pY¦ïà¿Ä —(Öò¤«…0#QŸ–}ޛÂ�ÙE å密]!Dó¢àßþ-œ Z‰Üû“KT&›•˜õ¡$þÄ>à-MÍÑ ¾ÛͳÃLá…¦¸:~%¾[�+AJ¡«Y¸‘Û´ìꉃ'»§…6ú«¯ûcÿ–�l³ë¯eó|WF'/y¡>3óæÙç~ý=Îþ¹Âºq†’V„'ØDð°­ƒvÏ×zÅ«OUF©Ò‹¦[¹¿2~ºp 3V �#‚Gì7K¯°Î ʼn% Bñ�Œ¶ŒùmZØ Û«C¬ß.÷½¦~Ô ™ô�µ¢YÏ–þöƒ�¦½÷@WÏ?Žù�L9Oñ.œy±÷O̳:Ò“×¹'†žÚ†B�u D0j%†…¥éÇ�ØÙ¨§XÙÕŸõ¡mù�·„§Æ±ÿ>ÿˆsÐIÆ}ÝJí¤Ðù‰ýbòÑ’‘ïý–Ôˆr½�=hðÁq&aÏWÐ#õ¿vyJÛŸ?Ð_ôö¸Uzûϰ¶˜?⸌‚þL$¡=uˆÇ�(Q˜ýê÷ø»×!¦l/ ÞhÎ=ª.>é‘c_óWiP…S|x±´ŠÒ_Š® RCu&V©ΩbL”\)>,ðNöó/9?ÎñC�窚ëPÒ·,2*ÇÓP¬SÞ¿$4�¡õ'JÙgø•å°ú: ²ùÕÄã„<×Í·ûqôF¸o6²Ú:Bñ8:F´övÞ©·š�ÎÒ=$É�P’q[zËC>3º�Üæ`y’<ãõGZÁo/:Üjà¦{Z z�y@ìs›TgÿWK²èĉ�ÒÏù­ùã”ëüiaȶN n*–ÏôS´ôáV"GðÂ&ù\pêäõ\ÎF2ŽàgQ1©¤¨ZBËjœÛ¶V$7Ä ±À¥�{�’“ªP ®àÚì½-Yõض³:ëMÌëÒævv»"z¹àhHÂíùüyúIô7YTºUùo£‚PœÅꀊcò/w€@€Gª>tSù¯@`5�>?oìGYÍ×["£,~PѨd7 Γðo24s<5Bª<ºò¢3æ6³bah)Ài/`"Á6œÆ¤²F˜‘^äДg›Ð8AÐ-[-ÂÐ7½ôë „Ý;ˆ�#•>`‘½ñÏù¼¡s˜Ct{r¹ù͹,ïµìþK¼Î®j�OL‹š ‡jãÕ«6°ßÑ6À9�¶·1ó:h X/ß ïÙ-û[#£/Ü© ¿â±™£…aõëÛ¨oŠ«U’=Û{Ïr£Q‹¤sØôýóŒTÌÅß­HVWŒWuI—L ,nño¦êO4V•�¨÷Ë>DºœΉ+f¸Ngx¶,zþ–4¦+-Rä¿ÜðÔ\f¾ŸYý^lO[銓Fx’ ¯J£Š½Ãn+,ç(ÏLûÿ¬ä5+´ Ø „¨]•è®ÉGv&KÆÙD¯¸zDrH1ÓÎ}$ ܶäc8(k@V ºØ³aJƒš»$M_gŒªͤh‹Dü´Ê})öqöšÐ.É5ÄÜ�¥ÇgM8åÙ¥´¹[ºLÍErÂ3ý«#=[—´u:ÛúL¾bT§�›åMyÑ7)�™ÌÔR ÃÜUŠFÑ3œ�¦ mE´Žˆºj,Ï»uòeuœñrù¤^,ÛÎ×€žm¹v‰S”ËnLæ�µ0NIâÉÈ‹JÄ#:“é¤yí¶i–®1…ÿ$é¢Á©…§éRˆ“ Ò}ýò½~O($Z56[joµ-¹ZkÜb9AÞ-ܱ·³œf)âO¯HÚp ®k¨^&U>ÊXü=~„ÎÙùÝ^h*f X?ø¶¥rµHçôØ ƒÊ��ïwRGR§Ë;ÒvbjJȵHgç¿" ‡³öX$ýûmz)°ßû[ˆøI†ð£'…¤Aµå°/É’àD¹¾§Ì‰rŽãk[f- O?"� ¼þ„E"›~rPN¨›¾ÇÍöúèš\ÒJšî©}�ÂGæ§Àì¿Ñië}ã_͉T§nPëM-/@Ä- =õœcÒ» ê­ª#Ä)mç½Ã `À‘ÔÏ)>I±¹°dß ÙÎ éíðútA¤(ò*¥½ÚJÚT¤7bðøöK�}˜ZèpNinçL‚$¶¾0<î”Én;,)Ž„ÿ#ð§±Tù3ê9‹¿öÈœå׬�~ñFûî_à—( ."¦ó‡q6'feóu¾þÿÊ�í¦½…¯8Ì4 Ä•6)òzpS‘N ¸–ÿtµ}¡q&i[Ø×9“x(ÝÓ; ØmÄ?÷[FW ý‚×]c¾«´ÍäkZÊ¡¿eÔ¼n‹dÔ×¢à î4o:O/‡¬¶Ä6¿I7¶ÝW8Ìxm4ŽXå,þD2xµhf�›V0Ï;£)hZ!J_ JþÉä�RÏ025ì=YVÃâærÿü#Ê7¹‘Lõ“Ž: @ C/ôPv¦«Ž'Ü:ŠBÅüùálDƒ› 4ei>Æ�{¨ü,ýú«yÄþÓù?\äXE†æ£Þhœí×�Q³åÉ6öÅp:Y\ž˜ºGqLâ®ù&¡T�ú¿‰&¡dQÎ:>oÄÿƒ±Fä®é*«ZñßD™Qwº¥í]QXøüoàÖ¡á¦U×ëÃjȤÏßN+¾±,<£â8—È%蟵¾Hš»°GzïâQ£)  ¾_È„Ž/ÛæcðåJ°zä…>Ýâšì½dëähÇw¶•º^>t;ýìˆR\›­.*ÏW‹Àö€‡¬ÉþKß²€�}ùû«ó˜Ž™nú�ZùMk�Õ™D’{a³±Z»‰µ¥Óãñ% `h ÙYŒÖBž#ƒ×“×íX颮·¼DÁÓ—›ÎÐ1[pÚ$T=áöK>ßY„Ø ªŒà’Ý_ëµÏo:…Ð'½ßÔÿYŽÜ �‹0~ýŸbéð»õ†Ôñþ“Ý*8ÂÎé‹lþ@ù÷Z RH ¿ô¦7Èú\™þ‹Ït²…¿úK�fzÕßDzÓdWC¢ÒÖ¸Žn\»Œ•éœï±{:æâRwÓ¿E"WW¥Åº•å~,r�l_AaÑ(ÆfœÖ•¦C/;Ÿµj«œ§WP½[pþÓëga©ï‘´öÜXDGÒb¯’r|*³JÆ’Àx”À#°¤6�»üäyt[Àä¥8#Í4DC|FÎqž{Õá*áCck=iV»e(ß8$Pm‚ýãÉWí[¹½ ´8Úo¹„c>-"4ìv}«Xùä4†% :H‡÷Kw�·!Ñ/µ‡×ÁùJª�^tÒ¼7:�$Ô˜Ãl\ ÍwŸ!gê.ß’Y�à²À%‘"<�›‚¨?K&Ha�qX`Åbœ{‹ÈAäY)r!¢ò QX(±lÖJ®E8Ÿ=±6_è7*xk�[`ïgFâ74\àJnΞ �îT *¯g)!ksOï IaÛ_í‰_?¼ÂMþó°D�Ó#ÈݽÏõÊqn¦~則ëSv} ‚n=‰ŠÂÏ÷ü¹­O¢#ŸõNˆ-CZ~ýùÕNh`¢;^¼%‚VD Üä§(�Ÿ­·kúëd!¿¢¿€ñ–|ŸTÙ\#x¥èÌÖ§Ð!¶2¤x30É¥f¨ tñW~¾�sRïš;R6ê÷Kêök©¢²Î8Š—çô™3È6´T²,“Š~!îO«û ÍÕvá¯÷+ïŠa´šÿø:%Ás>E?;§5!e†óö!ñÓ ËVêWBÝk ü¿Ÿçõ¾¡]Ô_⸇ ª×ãî�çË< †½=4ø ö³ÊgóöÍ“|ˆG µ+~Á„ýúRÓW5Ú¥@¸ƒ‚Û¸´Å›x×*–Œ×´ðÏ8Õ&­‚ÀË*Åy˜; 'O×-ÜŠ9€‚zð‚3`×¶ßK›Ê  ,|K+;�ï{÷“hYH9ö&}Øm2²�ü3=£<Ð̤Ilµu…¤V´ÞŸöLY;8&öÈ|Efy2¥¤3­:UÎ�Ò&nX¡Âg-'©Ç³Êæ^³’ µ€Ð•Sÿ)ïéôÇV¿s­Àeo…µŠd°Ÿ…t. �ܗ‹íôŒsþX;8Ž% ~íõYGìöâR4†ã±÷Ãh·™-!ŽPÿ#Z7߯÷�z¤³¢n†� FlMA¥p~E ƒ¨é[‡i|Ÿ‰_Ÿ¤kHR8p¯˜T0³"KdzØÙ‡Ê ϔڔRJSÎlŽEb%¥²¦1f)m¥œæòá­š1’9áþ¼?ŽA-¹\¨.ÿ“d �¶”­É ›=eœfæÎ#Ïó×”ËQ¾j©¶€žIGæ:)3ò+ú"×hH“ÓÜÈ&ÿ'qÓ/­¤±šòîPð K)u¯ÿ±;ÅŸýªÀGèÜöX# ¡À{"^•¾["~7& ñLcYÜ×U©àð–ÍžœQôëÈ®ÿÖs}ëÉB¹ÓhâÃÆ@_ÐI¹B�FxB©ÿ‚~�8¹€Õ]ƒ˜Ô™t19õ©~/j©vé(±Ëüãz5AöÜ0ÁÜOLjqÇ“‚ü…®]-ó÷'.u¹x­/‰›LUÿš˜¦´MøÌ:É@Ùå\ݾk¥õÜÑÆxT¹á}Ýš)j¦�y]Á‘hç¸Î·ZŽúSÔÌdÊÞ"¨÷ÓOi…n²Õ��M”"(ÚpI@\l!ŒRà _¨6Çù"g”[$}×ì±�òݱùa™ï—± +ìn¹ô(³¥=/•îj´�)»DcQÅ[�¼œ7\ÄG<øˆ[ftToKb3ð/Ì„-ØÛvvo$Ûx�éÌ3£o¾(% n}:÷äÇ–­�ä�GT8eÿ%y@moí�yY«¸8}"_°©¦)Ü ¥£h_ñå#˜g%< Ù‰üj+‡¡HžáEýFb@‰,±„¡ �ÚL“H6a[â Þ,l þºn¸v|ýgGZFYXÑJ…Î�aq9y±¥M—ºV�Áù4 uêtÁMkŸJÑ®L˜5é¬;±]�Ž-K»z ò@èLÃ,G° ä y‚Võ Ùma2õ’3Æ$t|±ÄPì:¿{é9»ì¢Ç t„Â$£Ÿ$¿Ôjã\ÑØ˜PEýÒóåÌ(Õµ[ÛàŒð÷¶,N†¿$ÎoüpŽÂu‘Íè·Ëmä»C6öP6½q~wìYùïÀ‰kÅ{Œ<ÑŽk(†CŠtŽ0ÍNzضªÄ¥€–'É8ETpY‰€�¿oýdõîè,«[Ð�ô„Üœ«°L€DÇùò~xƒc]lIMÄI&o~N'»!ÄÒj$"‰¾$ß÷¡ÓäÔ§ëÔýάú¾z€=aखîPCx�%y/$Q•�M§'7-�-·ŽMÃötï6«€S6 zA쎾ãŠrŸEq�év\jÎ}\Kê"ã°t+›°.¿Ù²²¾RöÏ 7ïf9¢a¶ù wljdþ^RÆäñUH>•L­šöKüVè¹ÀÃèÿ$iJô èb§¥Ã5! S‚òù۞ņÓpòHãÄ;üø�îB—†.-”�ºTçI/ØPŠy"zÝP®öòÓSöu¨ž/J8i°ù}Êz}nCÔgGµÐGLºHƒ_!LUjŠó¹Ûéñºf×°€(€�HÌeï×Ó¥„ϱŸ…›¼JŽA“.O«�­iá“wÛÂÑ>�rR ³\åîƒ�> oB|IH.hÀ òè/í�ˆï£Š��ƒƒL™»›7ñü¾k|—xü==îv|ÈšœûèëdpŸûçà߆ñZÓQ ±h÷!¿·B•.§äÅ�æ*º_£þì±KI–W¹ñÉ\ö0ïNz+yf©½TD¦<öY×?Þº^«¦Èk–è~ÏmŸ8D/o�æ‘8>%ìàQeõŸ(» zqCÇ—|ÿ<)Ï5²‰Çà|E+º³ïïu™×ò’;u³ôð¼yäÊnU-J-¹sq ÄŒÝRdMB‘��ݪê©"É /ã–aUqj&’u¬o-UÌ�9ø{€;µj½kÊ5ñåëc¡ñd��<‘æ_(ZžçWDa½¼ª[¨°ýBï¸õ‡ÞÝF¼–”Ézöcñ!úÄGo#ìÝ¡‹ àŸ‚À©‡` ãJþÈ+�ø×E² Kîv€B¨ wøb#N¢HïÌ™.ö-’ç,&îΘÔЕ5Úa:ºÔ1 õ&ÂÂÌSR “²à°ÓÜÜš¡¯xnäP �Hˆ¤ôó.‹N°Ñ,4ˆÐX~`cxãÙÒõ|Ǩùõ¯�r/nôõ—¯)…èPp×Js]ÔÁ„{S›ðf„PÑ&›Äa§åÏkvc °xWïwZŽÙì(ü2c�^¢ØD#%òCóÃ�È[ mÔ1w3ænì~óV¼ÅKy ‹Jbï—�–WO¹FŽ–â—ô >•VD ¯Dˆ³V$Á]²"¯¯kçb[3(/Bf7ñyi�ñýÚ<ƒÆÊ!ÛN¬}�]×Èë8ׇ^x…îö;¤xX·mé?ãíò�;춈ÛÌ©¾&™ÛfÆöŲƒü›¼€Ã„«ÎsØm̲L—ƒÏN»xš“½œé{¶¡)þÚnjêöP¨N §B™©VªÑ_)êÍ2‚£¼Ø{& n›W­@AÛ‡È�)ŸÜD v„$‡DŽ;a÷ëŽåu†bDNàP‰[ÒÎ'&n÷³xÏ�dE,>3úöóM˜ËÏⱫøµ,s›á.ž*�¸$�ÖÆ3yÈí $‚ßËnxý:þæ2QM=G ÉKzÓrQÉép%>).H¡Ã¼ËᎣ²²ƒÅõì>hJôRnZ¾»õH[Žk®{y\’n(vÒ>~1WÌ­ìÚ õ8h¤C4Œ�(—6Þ™å!%¢ëéñg¬¼Hw éUUd’Ù»»xºGqÒ;žì0mÏÆ9Ý�W (SWþ�Õ›%Vú žôy$Ãõ"ðl^÷4ò›¿²Ð“§þYïà™"`½,)ÆŸƒ=›;Mã§áÉ�ìXgý‰YgƺÚÓO‘9`ŒUòÇ�`‹³¿½€”¬â ;r£2þNøL_­» ©¡ü(nLÿ…HÝØ£¶ ‘Â^KKÄ Ìø3Q0'KVÅA½�pe}é—GÃÝ<¯ÔµûàÍÞ$ß;ñ¸…zIöЙt ¸f—ÿ.üº9¢–ÛaÛO�þ0�Îú›>!hÚ±ÖLª¾?à„ã&ɈÁvS‡’�_€ïT½ÜöáaÌݲy¶¥º0üÅ‹nbíwôÁ}"º×ñ¾t"�@.½Ðï �a€šÞÀ•ØGnÓÆÊp;²½þÈHÉ;“î6š‚z\,‘mù•6æLI 7X@Ä� (¿XÙñ ØÃgôÖpëòfµßJ§"»?û×àpgà/±ò˜ö÷l­us¡àd²  ×] �Äw+R¢)îFJ"*sï8ÙæßÖð’7jݸ7êº�Ÿ“‰co‡"±¥Õ@Ë~Û?¦”ï_ì î¢n�¿¬ò7½½üý°7«'™Ì þj{“ô;3öá~ú\ï�>$Ok#~ì>ïQüFž'p‚}²�o,àój¢ƒøÎ©?¼Š F=­OÑ”˜p´£ZŽüö]�R¤¥+«°C?øç][ë÷åõ×qʸs­ö~ìatiDªT †¿¼Ilá9‘è 7èñ½kCØ^³G›ÃXx·Odã]Ïsö^Ä6 ÷)>ì=)Ù��ýk0ŽEË8‰¥�~q¿÷Ît�7ØË¡iù¯¥ÌM›âÔŸ!�Âßç‡ßAFuçpU _%ÇùÅ‚=Àjv�…dÛî“@@Ÿ¤·€‰>Ò3pŒ™ÅñÎokŠÂô}ˆ^Q ÙþÑ÷‘´›u.nvLù¶4?|er攡¥p¼YÞ1¿uVÎʹNëb¯ŠêÐ!S’âÔ ôľó"A lîT{뿨×Ù¿'á]ÀmMœ ú륆~“í¡ðß°Ôº»GÚ=ïÁPTËR"žo&~žQ—߉ñ9¨-©Žê#”vi՞܃3ûÄ�;8­™å³x°ÀE÷ίҴ É›íìmö±¨ànðÜ»•J Þ×êQkÇGs´[ݦ÷ªd¹'0yõÁÇw Eôòsþò.%7…áËÍ*fnúÄŠQK3�Þ�oè嘒2pÙ¾¦%*a ñ‰hGg÷¢éóÐÔÍSï¥ÙðÁÍnjDÒ˜üìŸ4l<·o xx*ª‡s~7©©�¯éb'Ÿ)åEQöW†(ù-U£?›`]<É!Ÿ‰O³­©ŒÝ×7¡§Iˆ¶°ìFr+ÚT’ë�[N6˽ Ø’ÏéSø¼êC}™Â<*ˆ³Â…Üòå­ã÷ɃJŸIeäu_P]¬43°ü =?O q®ëcu3ÈöF½²]Þ1ë¾¢ á&[Á­?ïàüu4ñ è ÒbÐtkð[ßKx ÐËß:b–kI»,Ýøª/ö\�Ü©%ŒÌq @vCÝ—8¬,Ç(câbÒý¹SÅ BDËo|~¶² £}ið§~Ù†eG+“Vc¥ÇFHèãe™ÐgDwì*[2lyºÏ�³ÀP4o”¢ÿ÷­¾~y] ·ª$©)ßgRQÓîr:µ&qÖpT[¾Ø—œ‚¼ÎΨÿž™ª5|) ¡¾•G�3*†{°,…Pè\ù¼4£Ê£MyoYÌHËÒrçt¡#Ç\5 R¢ž"ì\"nšN}Ní1âF÷ ì„ïBˆ@8'lC»F—c>qäDe†4tÀ†xœf»˜hg¾~%^UN‡Yî¤yõÞ^‰½„H&r7úÑwÀÝ“¥eò1§ÒI†z`Üì)¶8kKþÓ÷çÆQÒ®?“�¨Œñ­®rUô¾ kz=a¹n›’Ð"Ü,v=ÃJ_pC?¿ð•Ø[Á¬î4æ¾°¡ä9÷]„K ¾;‹Ìe!ÃUoyüù�ò"[)Æü�,%>2Lé,–®@Ù$â{~ð[iBªÙ™1Ç«^¢„}Jt€­ŒÑ� Ï%Ÿ¥é«JØ)r‰ ƒmôˆº<»Cìx+¦—¤÷’½�}]�]¢µô©UjïÛ÷}íGŽ}r4‡•Šß[s¨•ƒùð‹)±ˆU¼RQcÚQ�U ÓcA}òNê–å›&ÙÅ{@_€üŸ@º½oÇ߬OgŠÛ.mu1œfD?Ú-4ŸL”*,ça_¥®ðK?ùtƒB¿FW-ˆÇ‚ êF ¶|A¹yDJ¤î­‡@‘ï‡>Ãñ·ÌP<3fÄ…V–/ûðpÑošÛOȘÇÃZ�¨LÕq$#pdÈ $óÒnd9bÅŸËD‹6²Œ™æúy$˜Mžc¬Öúª°~ ‡8Æ®%ª<� èìªeªÊ-ÎEŸÜ wäûÐùÐŒnG)ë&1x}ÆÜôaÍœ¾‰Ç G–˜Ø�¸NöÜ~jéé»O hz{ónæu�6¼W¿»Ú üÔ1 vqÊ‹1X-WÆ£õ9du‡ËÖjÿý¾Øuô†cºYbÇ7ÿãÉc²(¥‡wvÒKÝ3ˆ{æ>`APÆa•x -óÆ·[.F|q)7ÏjÇÿÒÚ).öñç:,;YB¨]~Çb¾œÜQ`-,EiÞŠ™n@0½¼ÍÕ¿ü9õôÿ“&ß–4¸4ÚõE Iwa‚œZ$@Þ”j„Ó¥xDå­Æ­n}¿Ž9 ’O¢&Ž·×?(©§ÄsÀ�Ö=®41YŠ@dOP´JšRqïî>s³m¨f×oÐÙ ]'­ç¬“OáðzׄˆÞîRC¶àêÑ(g‹‚ùê4üàOiF5B-ü{ž�¸Ö ¿ðK^‹=Iå@ã$*1r“�嶆(üŠéÓ6‘Õâ²ûãæ�`ü h¤W—ú8¿æ«‚ö1ß‹I—�VØ) nûÒVºòý©modï²»-½Ç#½€<â69F§7?�6�ö ¯­Ç;ûÎÐV£@ó¦÷–¨Y4Ý<Áê<äú,D>ÝÿÇèóŽ—„ß+· –‘ªÒSް¸ÑR�‚—Ž}|Ct¨÷èSdÜD\�y¾¿,ÁÖ)ká7æžO{Äèáë1ñÈ1SîO§/x~;¦È*EhÊ Ó›¾ïñµ·{UG@N?¹Ûo…F0erúfÇkŸ #>³2¶R�UG`† ‘¡\Ö¥'�_CRô$ 1§]ž Ô´±-s¾¸[´šbhŠë LiÕgmÏý`ë�H„ÈM*,JÅs}ݺ~ÿÑœ ~ymž…ó©ö¿©ÕL·êT‚¾w„WĽ‘Q=u6Øk`Œ jæ:ÏçÇ2¡R¸‡Ì´Žì#¸ <çRáÌÛj·YÕD¶öjžó>0)nþ·ž:)öˆÅF.²J¾@Tø#ÙUn]VÌñÏyiß­NJ=¼�F[þecö†&ý¦˜‹¿ŒRB±ÿ!M€e?…áG¹ÖYôÙ¨¶ù#—Øþ,?Fýƒ",& Œ»‘¸Òœ¯,qi*�M*&¥NLñjMJ[z«"ã†Ü²5÷o°‚š�ò ±R�úG¥W~ˆï�”g  V²PÚ›d®0ïý#”ñỞ}ÀDâµÀe£å;Ç@Zj™ë-cÈ´ýø×E×H ¥„ð]È\Ǧ”Öïšûi@r¬”/[#â8îÍÓ%XH §=òü¸×Š£¶ä׃�—¦‰3{Ãâðg¤vX(i&^€_Ķì dzIàÔÐÿ5HI¯z¹¢B—øÒ‚ù¹V5˜=)ã+M† 4œõŠËgýšähSG‹á¥t¡Yævl¤bóîw�íòÿðGí—�‡ ™³h]ëcAvT›S)ßÌû]K“È÷œöùy\T…˜ÏxˆÃ>†X¯½éÔý‡Ñ�{ÍRìb¬þ*aðõ—wA‰Î€eùñq¯Ž\î—QõšàºÛ‘7*HÅ’3ÝÂ2›ðfÔO4YÚÍC�¥•–¶Î�ÐÑîÛg蛯—(C² YçålE5uo1½;Tiêšû,TG1oéÖBÓ¯(¥ÎÍ€¯°k‚Ê�ö…ƒ4aüïÌ<80Vï cnÁ¡êб†ÿ°ñæ7 øþGµæ&àcñ¾Ï ¥(£p-žF>œTzgÑJ´÷nÉ�<ñZíÆ[´Ð`ÒF*¢°$Caã¿TNF¯€RL¹{ @“Ðì Þ‘$ݨ|Ž~·Þe’òiÖE Ž¥ôYÉÖsdŸ©¤:¢a4åäÇšäÃ�3½réŠ[kè˜Øè²œÃ”À!T¼ŠdäãåôðWåŠÈIOò׿x›ŽSдNañó²íöæ3bŒ�rn³—Ý}èw©…´�Ÿ²A35ô/¨LÚš ¦ÈÒ®OyþuÌÃ+A¦e¡€wa•/š4ö³jå¿5X°åœ«ÄgQ¼ò67“B)Bõ^w£?ÄJžÏ]^ðB˜¯kÂø£~}(Û#Mû+’qœÚ‹H9ëMw-±�¹?[Œüõ@«ž§Æ]Ã]í*î¿IºÿC¤g­ê7ÑCH0þÛ¾Þ&·^¿—-º°¼�²QÄ“s±€íJe9T÷QžÙ\± "ӕײBJ¢Ï…ßçåjB -Áˆj*ƒ`P�¦ DÓÿ×Ôêýâg5÷Çy$;§.HAö}¥4*º~©[M·$Ø!-/^¢ÙkZ—.ˆK ­däˆ{ŒW8Ð6Š+d~à9Í)ùàÉ ƒƒ@!�Ûü�G�¶hÞ'Õêàû²ï¼ýl)"Û˜^|_ÄPC4qÚ>Ò« ±t£ô‚÷ßù)¨âÚÈÀþ+¤�¯GqЗ8ö§‚êéÚgäS$wĺPzùœ�Ç¢�^PFúnÑ «?hÂÏbLﮑÑK�·x¾\�߸�Í)»@|£Š6ཎ²úçӦÄ{9¦Ï>< °ÖâiœO¤#E¤oÎh?ÞýîeG\‡U·ÿþ¥8VckôjCú¸ûu±!ÌBS~íX*¼„—ÊŒHÊ¿‹$E e�)7„ñ&Ã_ð•O«ÅŠ­Á��Ò4�Ž›óÛÚÉ«E02šnÜà _Ü�¦JC¶[íÕÓÝGÈlE•&<Ì¥æBÚ ÅýÊ€þ·2°š¢Ú7Õý ®¼¨ E€ãªÙ Ñ„ éBlôþÊ?Õlk¤<ÿ*éR­Zt[ðÔ÷í«jäipkdqéñ~J2ÞOGN›‡z¼7+ãÛ·y³ÁùÐñëM`J/{Ñ D™vk¤¡}üRÚãån…¾þ{ž¶ñKèFûgÉBÞÅŒ…‘Ï5Ä(F$ Ç+×eqƒÂ­Ü üd a�퇥&D)yËÁ‰ô�žÞg lW3ÐÂHÒuSf¶nùùaª-×ø;½4¾ñg)’ÎCäÈ>ãœè*¢F }¼Að[ö:’˜à·k�Éwv#¸µQ_§æÕ"†r- ‘|n“ï×nÇ"³æÓïg¬z]$ƒ‡å¢&N¦²ò‡v ‹Ð ã’dkÄëBÎxïñ(òÀ�ØôŸz�Ô—&î¯$S†4;oÔßUŒ)³˜¸�#/¡ê¥-ÍQÓ?¢Op€‚àü†'ù«F›5A]NuXvŽ”3kŸD48“$ëæ)&§ÈFð„8ç^sæý¨pìg8 Øü¡¡„Ü‚WGíod›Ž«(¢– 5CÁˆw³kD 1d`£Lø`™­7úCòò«3L"žuÚ--=ÖD`Á.¸-÷¨0{M| ¹RkÊÛ1cjÿéºñy^œ4^O…er'dTŸ—/DƒïTv@xù„ên´|]×�ÂFº‚Ž,ÜÅSo\wUo2`IÏ/¥v��d×ü# Ûúâ.¥ðOŠMRå}#�³ÜKkÓÿþ&Ò†éúƒù�Í#p�ߺ+?³~”Næ†×? (¼z0¶{ L[ ¤pLž1oŒBÏõ#Ç#t#ÁÎAMn'º³×/âäËP¶µlÙ×K¦y_™2Þ©Wƒ©~PâòSCÿnQ$\ìº[/jÛ%Õ¼õ!¹Ïüßùêésê!@/Þ»pg‚Ó«êèú“i㬥GE`ð÷;:õøS±¨[æèBÞF¸ã^u4LÛ 1ühㄤP/§Ê¶†BIF:îX¦#+Xe8ﳓm$f‹m?Ž·†þD >j&õw‰´w)äëEâw±æsbŠ·þ³Ï.)p(X"àÙgý©çÎ=Cº…ײ•ÞÖsÄb¡ILÁ™C M˜âa´4é Ô�UÐ]¹l^¾øpj[{À5Ž[œª6&Xo�>Úš ÕW;oÒ"o:öç,ø¹s�¥™8<óþ$ŸvNb‹Süb½‹� §dMþ¿•Ÿª¤±ô¡mžATgâq™Ä~IC‹üï¾âé#…�’5© }éáîZïp€}Š¿ó4Ÿ×]Zú‡Úþþ'Þ0ïî¥Ï0ñ«“à +J¾r¿9ò[v¦>¼…jäôèx[Š~¿`_º#Ó�aún3Q3Ÿ}ÿZçg!ÙRËä¾|Ä+вÏôçïÙ�+ôåb×3½— ÙRv¤g|§iì P«]~˜Œv¦(Ÿ™8¼²ì•ÎZ$Ì]tPr´/eNïw8vC;Šöñ ÷Wº¶NV*W_s¦‰d%aÃðçW^‰nÿnc„_þžåOÑ{Àqí{.U1¾nØé¯?U‰2­ˆÀ *–þ,â§?S‡$Rúè<Ô�Af…¼(ÐZ–nƒˆ©UGý¿šz#?}°¦Ï>–ƒ<1îc®WïÓBqp‰q¹±›K€Ü”7ìèZêÜvÿ¶F“µµ?"¯Ë?óÛAÚò1ÿjè•5Å0Ò( ÊJ�X;a;#‘b¸¡(; 70÷T¾Cj"=Ûˆ4/½Ò|ÍixŸ¬l5¥õöÉ1JÁ½|‚¹ì.F9´«^«¸ôñ\ùG½åjpœ}Õ{a-ÃÔØ¿¿P6?4 èÆð}C¤¯¾b'®zH=ã‹ÚýMïfc#©ÝÓLÛâªn#YDñoR¸)(±p'vª×ó}°³ÿÝùjàAÚ?¿� œ®À$°6ciÁ¢Ój4ùÞ�dkà­‰{&ÍÞî„·²mö•»[ïk‘&$ж|‹zlaèótBäîM‡9pO#ä'ÚÈéê’ñÏ›Ô2�ï-¯ŒP\øçö˜¸Ÿ—´¥aÒ0{wa(ùÒ%Ù>aÍw_g„òßl¬Þt Ôõ£mµ;nÞ³x›N }٫긑¿°lûÈ�þ„Ñ{!}̤Í2ƒ= £ƒ¹?Þ×´ümBœ& Z›WkžE·“ ¯úqc—Þ‘ßÒÝ— WÜû–7?ß‚Zh•(Æoó¿Kl™H—j‘Yoå8&ÝÐÚ[ñ)NVŸ”{ŒXo\]§þIê†þ»äåaêkùð] sq Õæ€�wP@„Î[ʇ`•àÜÝz§z[j4ŕտLž¿_G—y�È’µÉ?Å&�œp_éÒ¿^çþ¿³IÊêW8@c[¤ƒ«„*î¹�ÿÎJKÇîÊEá…5&z±SC?Ñø›â,t1î�Ì�fp¸:ZsiÙ²«øàòûDWs¤v¸ãÝ –©£u‡BwöâÔ‡¢]Õ ·ÒµSøŒ’w1ºƒ‚ó†ùæ+ÑIñ•ï/ê�uäk΄®µˆ}õ¶Ê±;I}¾ß´kÓqo_Ïw³‚ÆÝ�7´‡”‚ó£Ÿ$ë–œË_î^‚ŽÂ† db±Ù×Ù‡~%Ì}£nÈ/â ˆ¬ï®UwÁ[ì=ÕE˜utBŽjžïÑÙ¿E�V1ÌY�Ý=ô‰ÿj.«OŠƒÕuMAbaÍHÈèÈBà5çoÚ.{%ý;SÔ"ê±âŠù’›¤•z¦ ¿{W0ïþ IÈ­NƒÉBd¾Û¿.Ecb`Ñ1ðIXºb%Ö°guô ïì¦v_ò8øçßæŠ?çJ¨ŽwŸåÞÞ¾7þk?³ÀÑÁ)S]¸\ºPÏ3G0hƒJSzƆ,ßh§¸$ÁCe³Cáð¼/Š9¢;q¸‰Üqæü‰œ§ÓÕ&& _¿8›õSýˆx3Öd.1MÀGSpx`Éi.�9çÃÕAgFSVF®ÕÙñlܼ¹ÞrE¸ µäŒ. ý˜‘Æ:€…nCÆî@²SÈo 6”bÆýîl�ÝŠo³OpF�°?o »>!=Ú8ÂwY.ÖëðÝõÌßÞ¸IÌS¦Ž÷’ »Å�#•L÷Úу¢ ¡w;õS!%VœÄ{´çF‘}­=šIi!ßýûÁ'4ÉSxó ·¿…6Ñ«ø25OìEµ1ÁíHƒG3‡Ø„³r�Ö’Ù¨–^™4J\$!²tÞ%8•üܰØkãY�{k°¨È׋ã\†<Ÿ{_Ô™DÝJkP±Œ_éþÎÙ‹bêÂpQ¼WÕ{3^³„…Ä$ÁÊ=tÛʶÔu`ŒÈ/ „ÜÍùžuÛ�X SßXÚH?Šº\˜ßF8z3»þCaeššìÛtß:ÿüJåÁ9ÍòJé×—ïÆO ‡µ~žÊü•£«Âg¬ßí§xüŠxÄUXéŽôܳY³ß£5l¾½W´I®__ó`§wX(ÄÁlàéÈä눓ïñ›U(Õm+ZJŠr„Dm‡ˆàmýRHÕI‘(UD f'mo^³À4üоÔù|Ê ¹…ĆŸ@…�Ïk\®tc¶ûWšI@�òÿFLÒ¨†Ñ€¹W‘é0 Ð6l Y”/§_^‰ÁÃÄ®$QØ=7õˆü¹,·ÖþoDq�±•°¡—AήøD�í[÷A=%æ¥Ï‘æÚA—] 6çü¡ ]†,wÒYw38QEåçgžË¨ŒLЧ¯G&mÊתªJ^{ÜÕ %ò¯ëÕJ¶×jX[¬¼w²8´zÜš�À2‰’E¨¼­ íWݦ|ìŠMO{ŸoÖÁ‰Ü…]"­Ðlò³ªgbÆ Ï?Á]ZB;E=´¶XGV^g5­ó=HSÆÍ#jq¡2�Yï«’’¹ßºmèS„D�|,W–¢m–|ïìÄ 3W<�ö tÂ÷ jƒ ÔQš 3)¼ô/�’Ä BH¤NTi,ì““; óí\ƒÏ[90ÂÁÜ“ [O)V:†f\¶œ æ»Ñ€-¿:4öx4@i/&‘§$÷»ó#¿“ÄM»sã›Õ?5'1˜•]Ê  pë�µUAW±�å¾Rž�‹ªÀ=(—黽2~5$kžsdüe„Ù¸' 3<¾NŒ|€|ÇÈ'ô%݈-Vº`Aå pc[[ó$ÊËŸ™Ë?¸úרµöÖê×íàa€k¡|˜�TœÂIùÎú³œ…=%ñø�û‚«&$¾†™WÏÙXô�|Fž2aQÏÕ³¾núöl+¹FÁS¾¶jÜ}Jo7òÁ� 7%¤›©p±l;Ø�Ë&%Û›Ý[²”­€È×]ø4*ø›#=ýkGe)¦£É£»VÛfL}ó¬Pð�rʰ õ#y·¸d_e\C¬Zw…gÄKZiôrq걃>�5yXlùqÙ*@Mi– c¦ÈéWgT+ïcgôtµO˜xÎɳ`þ¹zàz(r’¤n·ߤâ¾Ûõ6«�ó°6ÆÏ]yÓaE®3™q]p³…¼@ƒ“YRùªTÿ¸2xŽ,¿Ã¾üÜèÜJ¯C§ÏP\ÞÀ½â{–Ä¢±†^¤iûÉ I¶C`tè‡ÕÄZ˜Ÿ�±I�”‹’2#•͈üdÒì$t½kžmÓ«í Å>ºqž¹Â€Ä.Q2�y‡ža¥ãÉÅ"Zø”»² �ú'$ízé�®_á•\dø�É Ûª[ VÖ'ßÌèÞx"cÌ{:Ë_.Úó¼`3;•†×÷ÄÁÅ$š(©úýXºÜ(]JpË„-ØÃºó³–õ›¼ÉA‚ÐÖ˜¬¡y*?É1RŽ/ŒÄhw” o݉ v�'úþk¤t⯫p¿õÆàïz¬,Pƒ±HFpðjë™W¸„Ó%»þ$¶¿ÝˆðÞ�ßÙgM:fvV¥‡ŒÓ¤gX0Ά·¢æŠÿ¨�=ÏÅUÕf‡8üZîó€¾´ŽI Ü#ÿýEÓ�-ß3X†H4C}'W­|Osê l�V…3ö3,ÿC o¸#Ì';}jÖ¥G1°xÖ„”5§§î´ËƒãÂ,˜p¸&œpÀGò(lW"¡Ä¯ÃwlßíØ}'W³6�6ï G›‹ ĉ¶°€C$\l³µ¨Ûߟ0þØ“úÂBÛÓcCžŸX…{o}¦­×|EƒŽ?ô\Áœ–��ÒKìƒþ¼¡s{öÛ¤ÅÊZ˜OGUµÚ€Q‡A~"/µY¬³þlÃ{éíüô�õåYNdà|¶!L&†A}®ílžà‹Pz€µeu…ãõ@_ÚÒ �FqÑ�W ú•‚äÑšÓ>Dסæ€2ÌR>÷‹êÂRˆjNÿ.ø�$òmÇEüo».ÂÇQv›XåàâþFZ³ržV±w†H‰l#G|6í€�êÞÒo®Ñ�$/·Ÿ~{á¢bÿX⻹µ_JÂNƒ»Ùué©|-žW•%à!–WfÚFÀµéãØJü¦‚Ãsèg ¯›–¦ oMac–|KÜ­ÐKTvC·—“ÖHfá …K©ªÄ…ÐI¤s.í%½í€¥a�5ŽÎÒóÀ‡´Ì ëh›7óæÕl”pÑ� çñ]ØË4á͆�?Û½æ×ÛOßøÉá¢y±Gg^ÓÖ§ä¶-œÈ$¤×>öz\Çîdg·rÁέ½ÌUª]ŸÒ÷•çï“Ù¥F#Q©É”ÞjŽn¹¦X ·é•XÔ…#H>æ û�r/ù>²(ÙÏYÝ!iÞôwÆò‰„—²#p°‡eö‚*ûµþCP«Y�âcu»¬U{)Pѧõ?g3îÏÝŒý^^ŸczöÁoŽYHVG^穨7=ò§Ÿ@Ùf>iž=BŸ$ôöÈ.é¹�¨c4þa8ëFpÛŸŸÓ”²Ì+�á×CnØ;ì5; ÅæÖW0æVðÃ÷ùEÀj(ò*/Œ¶<¼WŒZ„[¼,ùTDfHª�<·Âß ¡•ÊW�”¯Ñ\,‘ŠÉgê{Þ» ·>beT·äÓ¾O§Ù¹ã‰O÷çå5íש¯ §Tlœ6ž+:8Îú  þz¥ùš”¬=2¼•• a;èúBxÚ.0÷Æ�Ö «äG±¹mgጪ/Öù[ËñˈÑcó6Édí3£�w·§èa�9 Œ?uí«¬ðKO çüÑ„1'�L~G¡Ä�–·êÎO÷¯ÕM)x_ §•ŠeÈʬþÓ\Ô‘B· àd1õ)§2ø˜¦ Áˆa´êÖÖkè§Ü??ißE|)X½}<½K�…ð³Q#@ÙJñd;fiÀ™ÊåÊ\bŸ KÞÙ(ÿA ¨!œËå½Yü[Š?K(•ÚIÛ€>Êq;�#@È…Mÿð(4²’÷%Nm»ß[ÏzdG'‰l��U˜>�¦¦>ù7ëeQh¸×4{�3Zz¦LîñYkÄlFì°Ë©T«ó4u hÚÔŵZ+ò ·¾)8œ¦†7‚RRˆÉ§®ù… õr"ÇÎnó•{ö çÖx#$…S–|™-­H:Ip’ Ç1R2‹¿•wvͬ¬q²pÜ3Ž«E{[”&�ÝÐÀ?³Óµ~Voë]�^VÆŸ�æ2.ü9·ì�®Ð0Ý9[V3«OÑ[íÅn.¾°˜Íª¡²ž’ ©‘JÙEPB2ò DxäPkï ÿȃS‡¶+©Ø¼·vH�”=‰xy—±Åª��±=íEGÖEøå#`°G¡‡RÞËσaÁH/Õë‹0ûŒ–Û’QIê;‹sAB6ú䀦Į0c¤k‘<ÄcâLÈ¿E>s¶Õ¤ÑÒÆ&®br<‡À "ƒÁy .µÂÕª¼å!¨eƯŸ§™IûàëÈØ¢°{¢¬ž † 8\3©eG ‘¯ÂîÅ‹Ë1E´‹FÃwCæ^£™£�bâ2©ÿ<"H8ê:ŽúZñâ Ó˜ä“Ù-û0†Á¶¿€¬÷©ð®kBi~‘Ý…ØwÁ›¶ˆÞÍbK¦ðD«o.ˆbD:FI�-l�Æ`}Ⴜ§‹Áôʆ0#¨WB)oa>r+úåºX8�¸5଑éÃç2û8· ùއXènîK�ç”Í%�µ¼=Žó× cJíÕðúÜ¡cMà4qðC^Ãd> &r?:4Ìš!Y;®×Æ+ær\¾fôí�^úÿYAì‡/¡ ´…?{˜É0'L¥Ùò勘Q;�_¹~9+šÊRTñÅz=Aü_ÞwåÇʱŸ9ÝS `mF°ÒÝj7¸B_(Þþ8``ˆ\²!?ËÆ„Ù>L¦uüËçPàÄcô½uÆ·g‹qŽÒõh/¡*Ô ~mB·ê]¼üj±Z0FûAMñl%‹lt¢Š5ÅÅ¡þþ6×ûö´±¤©“P01OÍ™~ö =Ši§V¹äëýLYžl›ÏÙL±ûÑ”†uÅÙ·�ÝÎn8í½œÇ$@biì-Œë ¤°±¸™ó¹Î×¢šZÒ.™öN‘SêÖsÌôïbP/>±”Z�ÿš#´ìUÀ ú:°[x7å_0ô$hk׈oÇþ) û�®¾Œ4!è"îÆG÷í¿� ò«i¥¢*§ÿ’cò™YIèxv�”²Hþî¡/4^m‡¶Ã( Ÿî°gÒŸ’°>(Ú§³xË~¡üÌK óöLÂŒ@ NðßœÖtQAÛbì‡ÔûðVÈ•PºþH¼¥ÈPVóäJK,=È«¤^Î>üä±JѲ5”1AÆlŠÌŪ!´-:¾îº?å͔ߩcóX^�èÏX¸5™©„Áåò_E ‹öTQ˜:ÇÑ,=À¨€‘—À‹yš =Ä2†NwÊ•âD%þ¨N›T‰M<Öú3U÷‰Þ¬³`èK…z)¸‰5v¶b5É4ÞÆý±I]º²2»Í2GKH™°õ&�Õw\ ñ2ýø5S�Ãt_!”ÆÏû5Ø-ÿdæ/ ~Ê$.™ ‹“!€¼ru"ìddJö_ÙÄ]¼9Z–ÇŽn_Gq0¬xZðr@6Å@]ÐcºúžP=ÿ÷?�»{lm{û~"¿:aÞïÜ?Ç}}4wÓbr\W|Lò¤‹å§Þ4À•6è€|Œu _ÀŽËD!<($]ĹIÃr\Nè‹)èë%ž�08ß}ÁÉ@Ä”"/ÈL"Hél¶¿ÅÃ.HØqFªº‹Yù(™§p�LP´£…Û@Ïå„ÅíÕ3÷Õ|âO8QŠà:Œ}ú“0¸ùßOž·™çÝwCïk³+ô™¨q�VÏ‘£ÍÙ¹ZÍ$•QÏ仓†lÿFaãêï&Ýåý~UDƒA™iX¦ÄìÅèæ³×_úQ!óª–-·ŠzÆ=ûÃOä»2ö+4ƒónÈ”ç’å€ðï‚Júû%ùܦÙÿdMs‘ñ¶¤y:ÜoºüæMÀ‡Š �YÈm½ÁüÂï„ôïß{J¡ß—uûj"móÛÀ¶ŒQËÒèÖªUjÏ™‘«%œÿßb¡BÅòié;>­’•QŸø ©þƒ¿o”°`+)¶CalfQ� 2¸}Ë â³n|�’eîÌ„»¤d¿œ |Fºˆ¡W—zGZ‹ùHºõbÓñ‰@.iXiÿÊÅ_7Uä-Õtõ\5giÉ®ã"�5 u'èA0ÄæÃ\üÁ‘¯çb”JŒ¢¥H,ëÊM]Ÿ'z9”@½g²f-¡—¤+oî«n/VGn¿q±,ÔË-K³b›ßHç·žÐÁ¹N_ ¹u½eï°ÌX ”íSŸrP²ÿÛ~Kr}bÁ¼sXŸ²móMïëÆ¨ƒßKC6e@PR½ÖS†”�‘ TßÓ;³f}o5L�U×móGéÎýå\#u³“<7ßTæ�Z0—9ƒþ÷ÄåÝòCVØ‘ñÞ`Mh9uvuš—[þŠ ±í2ð$§¯ÞéH²#ûJ1Xª¤�*1_[»‡åôïŸqbpÃÔ¾ànN17Ä)ïP’ßu„"+P£#@GAkª™Œ…^$ëà&âT­ŽØ ü?)´}‘ûÓõ  O7,ÊN¢Ž s0Á§ÇjúpØ«XH~GÒ~Ü™’­˜¶ùòÛ)(¡Š‡xµîSš!ؤf ëüÓ"–9>q’û²û/éiììm(Å1 înhSª<"ócmª8ùüÿ÷¦‚ÚP�ÖSâ“bn¿0ÕG[ú Ë+VïtÔ]N6iºœ�“]×Z€  •ñ3,[î:©ÍXÄs³2~ví£ûd_ÀhðqÛ Ý¯÷BgÂn[,ó-Øo? rÜ¿òÝèŒÌh|�K.–B‘áYE–à?Ð1x~ˆ²?ë¾PûÍ×ÂÊ„€.�3 è>Ú:ÞÚ¯.c*9ñd‚Ëþny¥æ`6ÝìE`žz#ù¦! •t¡�n²Y +ŽJºÔH;§Þzæ`7©;|›&Ë‘ÝV›ÙyÃ[‰¶h¤Þ?š†nЛÖRJV·ö!è\×3ão™�MNä%ø€zÚ`ç±ÙU³_<Ü6ÿý]p±‚ ÀýièŒÒb gM«®˜�žåc à—çNEõtÁ [À †sDMŠÓÓ âsÎ4 ¿S€»h2°8+ònÆ2=KÓfñ9n’ü¡q ¦ô%ËÛ?Û8!¶ÜñºªãÖ¨°#wZ‰!¸È_£€a•¢›Å^à¸"¶ìvìþòtqÛ?SKà­ºÊÞüqŠÈdzn×päÌœº šó~;ËškÔc.Œ¬VߨŽ”Px|ÆîùFÅÓ"¢�^f›… ^²ÝçWžñ?v¾Ss˜C‡N¦BãCO=Mrá0ŠýÍ=yŠ5  $öÒ%cüqˆÀ¸>Q1âvàч‹¡ÎŠkB»š~L|Ü‹4pnaP“ÝúmÙ|±ØŸÈòEö5€Q $âÚ©·ç‘˜Û’‹›÷‘rQ®™‹°Ò¯ÐÉ–t_E“›ó³1Ë›bÃ.ë!oa³‡/Yû¢:ñ¬\1W6lŒœˆ  Q¥H©23h\žíÍ‹‘PÛ n-IvOzœQ”™ù/bó‹¾CçÖíÒør8Hú›{ª�ƒÓûÿî"€(b�ù/";�»1¸(œüå®W^|¿‰ÎþÍÌ £ÐBc,< Éj=o¥<|CèϘ0…¡—áÿœng·Xò¯%ò°Ïj„ŒÞÌÀyáæìod¡ûTh² €Ñ� òG —'aÈ[&<3:ÿ[ûg–kƒã#¾] äK[V3Š�ÏáKGŒ¼^¹kÝ\ãŸwþ³Î­©CñOØ¿Œñ|ÿ~“þ†�}¥n½�-¦…Ž-^¦ˆ*X¦z‚‹RÜ…Â>ŸGMgƒ±ÜìËê*Øê ú3ÍUC‹™F`Æh·ržÆÁêl±Û„_ؼ2²î%æA½4dZÜùˆDXƒÅ‹Dõ!EkpÜØµqb/†µ  PšŠ…Þø»Â{6°ó×q±2Â5š‰\óSzf¹üÏ‹$WØ¿z/‘œŠ" 7¥¯ºGŠâëQßÐt@M5õØ‚­|¾Ýø/#Ë�Ç÷EEâä@žÏy›{>`ÿHR†ŸþDMF°“/ð¨M)—û b5ظhÜ5ÿ½]5»�»ÍN«hM³ÊJ÷™ª¦+2º˜´•ªÏ~ uˆ?NC÷É;ç"þ^RfÒóyUÉi¿Î7�Ï¡’�ÎT _{¥Ð¹»rò4ÅõÀ ’=šƒk�Ú|-zJ4§¥Ô±à(Í̧«óGâ SäN¢Ú!0mù˜wNÊ£QÅ=,|3cðx�5¼=+·<Ë82UÀs$']ÚÓ�=Ìnè7¬�© ¿L£üïz ß_]•-3zg!8 ‰šºá€O¾É’D™€¤[�ó– cU÷@¯@fVWl uF½=›%š²Äƒc°!„;:ªÀ²dŒJ"¥Œ¦¼Ô™‹�9tbŠ Pêí©coŒ<è¾XÀš gˆ¹åvãg[h†µé÷ã&�¤ø:qMõ’°Ý)Z[*b9\ÍÓ>§ÜŸé|2Z=}Ñ®@Ö³‘{îk{ 0ôûdPQµ*E~Ní ÅaÔ5SÒKæ[b€ R ƒáº0/<Ò!@ÛRØÒFêË]忽ãÜUå&p͈Àâ¾²@?J¦5åò ¾.¼þ=ëQ-FWšcC¾ƒSuJnÛI­ñ¡Ôê]ƒ—§ÔG:'�QœEÊýLŠÐ5Ü”‘4k¯b<ÜÄ0\�{Æ«ÒÌlêU‹­½Ö‘`ùpô÷Á €[©x‹.,à°%vÅXQ³^_.÷ûÚö9|¥~yÕŠuœ~ˆö\��M?Ôǰ1Ñö±Çb/«¹¡ÄbâÍ#4_þ�ÆZÙ/¿þeãcÞ a#ß/Z™SÞ[«#*•ÞS9öÿJ‚ÿÆ9|²”hL±åº¯¦ãî`½l›ÕŸ|‹” püEä8¦^†bM;[ s†ó'h°DdѺ?Èßsqö)Ìl¸-™Å4’Øý÷gâ7l€RÝ&ïm”Ï#:#n-¡ØT|S”;ŽÑ‚ÛoÓ±¸ÛYE˜Ø™6lÖHÞø˜£æõíG¯Æ¾VAÕv¢E¿{ºúWíÉcûf=OZ­'籓'g¿š˜³¥Eï櫓……y÷xL·ÒŽSI¼Ôm�æ?óø°+‡¿(œœÕBu±«dï`“¦½5*QØ®p›ø¯^2èïÛ…¢;: ®Ò&6Ç@— ÕE ™‚ñœ{ ‰\Ø8ƒ ¨§0wFhI×ó ôþ¢£AÀ¬ ÅicüÛ �o?Wÿ7�üŽ+³JWüÏÝc¹wq›ž®#ÿŸÿ¹æŠú¾‰›Rûß]Lcîúþ¿g¨䬜7ºód‡Pë=×]÷^%ýß ¬›\£Â±boHTAȨwƒ,¤ŒhhGyRòÕ³ÂØî§aHê}T Ò('�9ª@,ê�<ÄIt(6¸•�fÖPé>mYÝ�H�ëªþ'úGöhCŠ EóÏѵ� ¨•ª š_îËØ¡U6À„€�þœaó÷Jñ[ÉõÍKòâÏþ÷*8:ºèꢗ²Ûãÿ½Ï£û+ßðVý§Ã÷<õÿÿ‘·@³½‹•C‡URÀÝ—†ªÎãeÛ°ÿPKë©RD‹ÍsBÌL|Rimages/img3.pngí»uP\ѳ. d€ÁÝ nÁÝ]CpM€ÁÝ]‚ žà‡ Ü!0!¸»»»Ë��üÎ9÷Ö«zU¯êýóêQƒíµ÷’^«»¿¯»w¸šŠ<*)*†¢‚Œ|.ôÛˆ½‚ô«i ú ÅNAÏ ö —’F ‚S”‘ÔrƒßKG©Åÿ]w�¦N„°aŹE‘b`óñŸ‚²jñÚÂ�Êg‰KdþŒ±„Q6qèºÀa8DZèŒ=ËHìŒ/’Žé¯KJKüí=q7•ø‹ôlµ—°û@ó€w–`ŽÕg *i�5ú¡“•!Y† ܫͲ’k"¬dÑ?޳‹ÒÙºÚ‘c )·F €Ý�Mà?IBë‡Iš%É¡á)Ï W¬ó8�¬‰çÃàÖÅ©ÛH?ulxlj¼°DÉã‰ÌWmnv¨éZOãÉÒb³ÊÚ¶„"®•‰YÄPÙûÆñŸ$¦õMÿ FÚïH‹ øþ$%ŠW�JçÙ7'…zÀÖ“¼PUA*HL#BC(µÛjn«Å’�SøëB»ñ+GíY.å4RÙzX7,X�æ¦8K¹6Ĭ'Ëéi–íØa’¤¸¸™Ftø¸ °A%šQ´¡3žÕA4WhÙ ”Àë¤v„„Ò[ÁËᑨ¯ÂCÀ»úØÙÂø —é  ú12Ã.þ© !¡Œ8Ͼ¡+ àúÙwæ–¿’øØ 5˜Îÿ3Ÿ‚IìžSúï=ÜcØš²Ìã ¥ý0}¥\Om5úF¯ÄÁ«¯\L†O ó…µÂ«çCçôíÌÉ�Ví“N`»ʘùSLGηÇÛÅÌà6°K8T<ÃΆ�=ZeÃOÂC€5fǼ5&ÀoU§IÙ1|…�<ŽÂ+?´‡ÄÍyé‚�Ü­É¥Á§áyÉK>† üι×+s ®¶*ÌÔOËpE8³ûÙç™�gBW&˜æŸ±\yα¹ÖI€ÿØU˜ŸDžÊ”¬Ÿ†öçÇ­\•’@b"òzý´ [è�?Ñ@ ÿÿÿ?ÒxÞ¯¯È¬ ¦W+7j’ Ò¤"•‚ì]­àLVë gÇÛ•xÛw ,É|Ç©�Æ�íGU,•d,¡óVÿ1áANoÁ Ù›”Rë~™á—¿«ä6Úê°‹�#ã"ܪ¤â’Û’ÐÞ)YìC,×ÿSzþ]‰Àÿ’í0üµ®ÐÚR(ò.dMWk“2Süy�JIËš¤DKB�iÚhO @@–Ÿ£p8/"»ÊvAì ~Ãe(¥Ï‡õ�LÛ$V}ÂÝñéÚ—æsI{œ°8 Ñ´õqãÓú#ÙïRyiË?m0‰O+p®òTáLÝÞü)±^F&Àd÷½zéx:$Ÿìƒüy¶ýwQªzŽÜ׳�‰Þ™U`Ú ‹a^;56ü«)YEcç‰ÄÖ{“vâ_ÖSÃ"—‹�\r–Ž£c½ ìWùÛÃYb¡Òùìõ³.îRgnQt?øG”¦~çb3ˆ_)‚e}•‰ÏM¾-S«Y#p)ü¦/»v $@ä©®²éJsVäcn!D(HwI±ÿþ55ðal{•ŸÐŸ*/ØD‚[©ö%Ó…¶<¶� Y Z|î´FRŒË÷ˆóÂ%8¡÷ÄWo÷ ûç2å#a�®æôN&àÔJ¿k‰·ùúî™9«"tT:Á`¡3Æ]ã¶Ë@”fQãhA�Zqßämé-t~ÛöŽ™Â,ãÿû�ɼöÜ\ƒ›Á  rÉqÉæ ]¿ïþjž8HóáY­ŠÓÞô˜êVµÍÜG�‹}ÃCÔ)äDV„" mS!—vˆ×¶‰Á¹´»ŽDYH®çßCx…œS¿[b©g¼H÷º»6uÍiÀΔÖ&Í^‹LoB+¤m/s\ÆirÜ¿CCH9h+R�¹çSv#ù1[Ï¥O1úp¸„pw¶nDäþrÅ~«ìš„A–[añ?Wt•²Ÿ€ä%ßH×â1L¦HG‡ÀÕaU H¹‚V-Ùs±p Ÿùû?CN�‚‡TèÁò”wÔ·U)•.4a;ù£íts¨ƒc¡Ì°¡×ÐuÎ\EìÊl¤D‡�ývLGÄùB@X”ßëÒÎñè7Ñ�â¡t<ƒêyOËF†§Hßz_jßÙ„±­ÇùîV¢g7¹+1)ñWb··E?ÏÂU¿ë.Õ±lÖ7 þˆ^жSÓ¶[ÂÆOÑíÅL،ȌÆLpÕÂlñæ1Ó‘"”^•ÉR|Ðý å¦^ _k—½1�Ê?pRT@õ '…ãmÀWûo$|Ö_ê–?³4r`è2»žOY¤rš ”4v³êUt.ž,,8�iµOþ4íCco4)«['U¥•bÖCÙ²O(¡_j0¡ðؤrlC¼-¥g@H”Ïú€„bœßöY…áŒØHÎW)àˆ=;懸@p!E|Ý^d¦Ý�?KÕ|dq³$¿AG ™úiªWïTd9œ®÷ÃÄߢ0_5s?�;³Éj{¤ Fp-ASDtÂF£Îf®þ+!ëZ:¨x�×±ør䢔67z¿®ë5Š(åŽEñ×ZãôÞŸ­Ë‡*‘‹·3–Ž. 'Ib=î%°+Ÿy”–’cÿ1o%Tò<Ø)HÙ[õÒ�L„ Oážk9S]ª÷ó]ðW¾O)SÍÞ $"n?¦ª,㉠š \ÖÃh¢9vÆKO¶sÛ¾ –6ŒŸRÞìÕ«™ Ü]Üߤ®ýMf»;ÕdïeXU9’ao|uqó"6:1õ�†¨,Á’‚8… ±Ä´àçðö;n¦a;Û4y©ß~Gc%´µ]W›.æ­jï ZHù¬7Kq8ÛòklúÌ_­�°�¾¨†)Ð Ûso-£g¬¨‘»‹™Ûãôƒ-)x:ÿUªGxyãñg½ª± å-ýk£fÉÅ"ë‹ää�)Y\;þä1Ò#¬Ég­ó xo.ë˜2t\Ù:/H/>î`^‹�Úy‡íŸ ˆó“ »œæ· ¹îïþ.ªÑ´¼»>3m¼\Žx?þ]ÏÈ­NŒ‘´?Ýs¿îý`–äûµžÄõŸÝ'˜Bûµ+"™#N¶ÍWùº\sG“ÈänY¼ïNK;^3z%ÔBW%¦°T»ÊÄæûb0vdl%.ª)Ë3XŽhŽe@:éBÎ\}©üüib;Ãy×®8ÖPqPúŒ3}ø%;ïí3æƒÜÍKü9Y"ÃÕàtr¡QîX"‡~[35å$œï‚¦ f¡·Ö~¥·úÓLã¯o±4ò!¬*W2YË(£�ðŒ oíÄäóxøº¥ûý&‹ÅNíx‡}�s2�î°_wGÆÔà>Ô´@¡b�ò¼€/Ü_:‘G = Ù¡`TzìpÉvü¶“k<26)Žæ‘õæÞ-UÔHQØp2Þžƒ÷/Ìß½,w,#Ô)'F– )õ0ÌÒÑzâ(2¡2iºi6À:Šö‚íj©Ý9œ‘Ú;™‰žßeOˆ»`ÚÁ°û^z÷!6`où!ÆH²ÙÔ¾¦´úHuÌiZ® ü~VB¦f±üRX¼º¤Oø¸EÆÜQ²À…¸By)Ôô— ñyÑãè¸(2\æÈà=¯/5&JÑ;ò’Õc‹|†>r¼²ÿ·DZì1òaO±¿úo#k�26°×1½¢i�Í�©Vå×ÂaxÆäok[ÇÅ.6±²ºà³2ˆ9ðÔoa d©Ü庑` »�hX†á•$È?÷Žôué:f=l…¶c½çeß©ÕÔÔIhï6ÃÑEWªæ¼IŽ}ó �ÖS\•¿nR»^iOÒî7¤\ÌWÆã¡DׯW¦Aùž¿:îxT­¶ ¥õâK-ã ï¡»^HK7;!RýìKÃ%àúñ°Ýy³%üôƒwìëN��‰–{gŽgÆ/9 µ ߨ¡ÛX‘þ;yI]ÁX�2~Æ£j ü`3GI > ‰q?YÿªoÛ¤-Ǥð'ƱÁÅf·ÆíhÙ$º!õ·,H !ÖZÇ2ô×�LÂåÉk~ Ÿ¯1íÑöh"›Y��¢µ-ê7ç{¯ ú8·ªì.ßYÔ‹ˆFèFÈÿ2žæOé]ðõ³�þ1€š[¡6ëð¯�p3þ]gû°-ˆäUo¾kÕ F¸JîTQÆÑ©Ë‰uÅÞ˜5Ág³'“ûkCúk²hEAq†8=¬W ØÈÙ蛆-Á9St�úmžÏˆÍŒä!ŽƒAì ¼ÀK"M›ïµrßðá¸!‡§Ñ'sGÅ SSAe!¥*/1[ š'^ꯙL73lj§^Äi•M$Ò¹·Ýó .Êl) µ’›k}%'ÂJO'£*æç�¼˜4\t½An¿Àr w A±/pq¹§ óÏu¤¦cC3õº*d©åý×ðpk²“ß? {ùÂ_alw´XÎ;oïQ†aÆt€uMÖÌJÓDÕ®O%Œ³€ì3ÿ¼§Lêíé2uZ›º¢‚OÜãa@û¡X¯„©Œå;b5ò³ûÌUäµ'õÑâò/Dǽ¢8n�¯U½9 oç—>©w0®å Æ÷DÝy…ÖLN¾ö§3ØÍ¿aˆÆÕÔÚÔœ ºDøÊ¾WpREõ•Ù53_FÒ?3z >é1vØjvcÝ6ôÇV‰Í#TÅ Óò!‡,ñ'âDBIÀ-’ÕÒI»„ø|^ÿe>þHcpð5µ%Ø~…q>ðú³‰ãS2ó%@kâ1T�¶�©hûñ Èø?±‹DÉžÓüÇÛ£¡TR§o0ª(¡ „isõÍ�ƒiýþð«ÂÉK³ƒl°É*‘�ÿM qó£j,´;½;°HËd 50}K[cDš‹_ª”2$´� ã1^iæ4’iœßxÑåŠç>“ég€ã+§†„†Õâq˱0 ÐA÷�—¶©(›V5ôØ Ÿ­ƒÊtÈAå3ÔÉB‡'?4² $Xc{¼70ÈØÒCSZ1smŒÑÀ`æÛï[ýV-×›5@T#}À ùÚè‡_¼b€Ó|$Óª`w’ŒƒÚÂa¸!br<ëûæ›}«7¿†q‡ûÓ…û¦YºYßZ\¾½|IËŽ�'!ÑÂüò-þhH=ö%"¦—ÜÞL G·¶¶vˆœb¿’eOÓûåÎð÷ Å^&ØÕ´¶ ätžÑ â0¢ Ä*Oýܸä²ÛðRžÌ£þdm>m.£“TˆbDà8ë<ûõnî·GÝ}LiÔ¦ Ysì3UœÉ†._IÄ}a¬!~ÑrtM&Ë †ªí$—Ö½nÍùH‡QÚÉßv‹w6x-8'¢Fø©.â^†;æ›ÿMZï>à‰"åÅÍâ` ïrœD�þ×¾Œ&ÏXÇ.’ÍÚ„�ÂÍ5 ì›ê§ôõ±µ$§ðáî”Ö¯6ì-·#¹(¾+�1¹ÅIÓÞÆxt�›× ~oÔqÅ û<|å£ã:Ê%[㻸㑯¯ˆvÀ�Q­¥7ÀÓý9á/Ź œß44ØcÒ{· ²Úe”ˆð½Ço¾bÆ©§.鑯Ê�ìzTØžûb 1~ù)­–] ”‘A¾¸Å\@5uÊÚi÷ô?ø•ºº³+¼gMxE –Yô{†©ð™EC^Ô[W˜2Oîå“{؃¹lkY7øN›~þ!EMµ'‡sWûˆ# \vkOÞ@ï©A &Î6UhíÈd—F¥DT;T  LÉu©ÿ²õ�‡»ÓOB ‹×íÃ[; Y?êQ2G„ØYªXA £MÄ+–Üòg]T/©¼aVí1È•ø z0¦ŽÔ?¢ ¹WéÃvl¤‚l?¸Q\E;ãá>ºñB\lÄißjïR•‘@â±óÐÿ3Æ3¨ËÝ›ÉÖ•¿n]‹¼dî¼R{f8<“V¢}ýÙ)”�yº¤>ˬêó›<Åä7OkkB�tóœámú&­‚)ÄLöQHÝ-Øy…AàÒ^$ü8І›°üfç+‘7{°é ;í·9¡ GH0ánNÿò +—� \kr?h¾)«Û)kè=^û‹‘_�±0ï}w6‘ %.MlŒêØ@s°ÝÄ0vÔ S�í’ØóalcàAT¡‚'ÆÑÛ0‹ŒÕ’@•�4dÅ� ÉöZèA‹�˜Þž×´œE•ûÞY�Œée)oö‚²£õæ›S©øÚt´Äé…H$¤P²¾Þ�ÑI…ß¡ÃÏîY ®/"‡S›Ë^c]5Kù4½%5¥žò[¼Aw_-Âvͯõ §)îs(î[^p[‰ R�’WW„·ã`ÔŠ¯‘s™ é7ç!<¡Z’÷p±œÌ•%�Óâv‹#Mž®•>¢ ZÁÆ"Xb~ó9ok±7¿í@É‘ÇêðrjpÙ;·ü½ëÆÛq{a~y¸´¾Á^½$î~lÆ~—á¹ä”Êo{ž? %v–ºë䮳o]ög¿B2‹DRí»£É×cå)޾1�óWL­FHLáMÁn Òü¤qWHTV†Î¾Ÿ·û.³…Ûš_r¯šB02Q[\/54í8YêÙ’_ó][ÛƒÑD}çÝ3TE£°£ç‚Pðz;Ãñú~¼íè%Ð1X ¶ì Øß­P©÷|{G÷R$p¤Å××qLªÁ‘äÂã�‡íhë)VeGfùŠïo/�Ú–•‹�g•y¾¤5 ¶>ëó}¸ðmPD��ÐÃNp¶ï”/w“u¡V‚r­,Úü2h¨ŽDO€`’²½»åâè®r©%ìÔ¸5Ï¿ç½[2ìÎ{ÙT:@ôBw‘¤xk¤Às‹/³Éñ?Ü®±ŠI3ß­ùf¨TŸä›,šŽyYþ�ãa2,€Cwê¸Þ{Ôþbaü펲™HÛÝæOUdi.ÑzÇzõŒ�c<>¡=v¨iã‚Ã6u«m2-‚ëÁÉA\ºùÀ’c†|µ¡‰áù4SÍËòú;ÇHþ+î™[þ@d,¾T¾OÇË£5VýÏí;qŒ¾ÂØÝ-”纅DÄþ²šðº0m¹ûxo=â{ÐòÐ|�Ðw³U�é!©R™î¶näÖ—ÂË'¸TÀÌ&õ }uÇ,A:+é;WרþJ 輎Âê½lò»Î7çC1Ã5ý½Z¿ÉmÚb×?ŸŸ2A1‡š¶ö�ÓAÓE é4¶ÚÖ†Öû�B©ývÐ)m¹#EÈE°�aþòÜÓ>±ê¦¹ÍâÊ‘�9χw·É÷²AV…k:þ¼dº”0aì;7RGYÔã8BÒEZRðÍ>Ï_‰Jí$U«ÒâB*ñ ïTèfÌn §Œ�½[EÑ.;rwªÒÌ® 8–j-Ãò¾¿ÚÈ7펆1è|Ç�þ{!áÄ.»Ÿ»Í¯DÆ^C½)ڢܢ&­pªÉ[�®�H\,:e<1¢]:|¤Ž³öÝîb[ó^'¯üC¡lwp$ïæ–ÇŒ²uSú6Öˆ�AÿtµkRT0Ktu7[2N�YÙ2ß>ø ~á ´iDYZób¶X‘R3³{‹NLe—vV"ôÿ£…Ç÷ =[•l†õnJeS½™â úÈïê�yàôklxS¿­Ä;:žêßÄ‚qÂ÷ÿWœ�ræ}�|t¯nt_+2ñ%%­˜I[ƒ0)wÔÏjG©˜<ŒMf/uñj’È[bÓ€èRÒx«3àºÆgfÂÔWv… ¨k‡oQwÖ³¢·ÇlJb¡°‘#$<¾Úûæ|ý«EÓÖy’Æ !»‘5Ô«Ö( =’¢Ê+�VÈ5ü߸bõäI.os4×mgæoiä=ub¦‚ÎK´*6Ü$Ô} ùù3ȃþêß*—Äl ]ÄSf Í?©ˆ8*ôgÒÙi°]³ù³ +íL‰K ð�aü Õ£±‡¢Ù„ôn"¹ Yã¿L'xÔ¦6ÊBK¤ŒÜ/quF5‘Å&VÄð_žMPuª­–'À)pòÕY;HåëµÄ=}åñSNLKÌ?ÁU¡Í¦còXoEµÄÌŸ êÿõí•׆ÒYIòŽZ&ÎÓJž#�€M"/ùÄ%.Ã\Ä"q¶0‚½0ÝQ×2Q±Û…K#÷–ÚþM+QÔK>ìLUßW£æ@Êö=uÝbéAïDLÇßãêBǧAð¯[|„·û n2®f?‰¸ò‘½løíñW� Rî„2*€ÏJ&+]Q²¥ª‰PW€-AhfÌp+”rdÑÂD´Ü¿ö¢†uì,~ìíN­öAø¢~µ5'~� 6T£µ¥“€À âTðê~N>SlìnÝ‹­\JÞáL¹‰Ä�³O6f´®ªÒœØ›Ç$�ŽòÝéÆÚÕÇÙµ€¾Õu q¶XÂ@',:lÄv.�ƒ ÇçY…¸™Ø*d»>¦¸É.“ã=¨ƒêDFe,%æßëo€´ô�°*"€¿�a]ª«5x�P¢S~>/F䯆r{j¨)™ ÷F$Y©9îç)]CÓ”$NM‚(vq]Åi“ ˆ™HŠRF_’…qz âq“Pj œ×ñbîÜU]ªÔOÚo$…Ö.°Æ¹!g=}½wK�� jø–<ÔÎ š'#ÀöÅÛº/ I?`xç'çQë·ß‘f÷‡ën·¢¨-¤)N àµÖu5œ3±†RúLÚ%�Ãíƒ%ýFœîö?ÍQÀ9 éî£oâÃd)ó‹—2jÙpˆ „Xaß³¡Åœ”íz‚�/Û«ü3ùCʘñùf˜ÔnÚ8zèÂìE°?­á;è×ôA{æŸ5‹¹¡…ÚãþWŸµÝ ¾3ÃÞ¨Â,|IË•c¡´Rc3¶c\ —ÇRhî:'Æá“ã×D®ý‰h¢”˜kv³ôf«N³Tû™m�à{çÍK�AÂÜ"åºý=$&¢0:‡]ÇÄ<Á¶¡]ÑK(v)û<^5|¡â2‚²Y‡.•©¥—äúWNä“6µûô2ÍhîWµ„øã}gÜù% eäS×íI%^œÔ~hÌßÝçYcÔk÷¶øƒ:]Œ:‘BÍØ€a@MÎÙ1±Ù�T¿Cì'̇;~ÔäfE¥i¹–J‘8¨ A÷»fN“aÆâùWìÞz#‡ßþ<5…ÄU‘¬¤·:S‹}�Äk¼VÁ:/0z£A¶ïÁDZææif2óMƒl(:(ØÂ#êÄñƒšÌ5Þ¥£§Òé™rH�WO™©F ƒ•xÌ“c�Üß·^R|NòEO>ÞUØ/ÍǹnMž8j:5ØWÖ–òG9ì§�_a ؼ´“Ä�càMxGŒÍäáˆæ`hUí= ]yjêêJñòÌ7—3hÄŠt7¸ðÇ's�­²¹¤î_Ž[ªâ¸5›¨Wf˜´éž†Rj™;U÷ÈTÿ©Ðÿ!òû)9Ú“)ñE8yð•X­Zª'RøÊÇ¿Y<8OÙѨÇCKÒÌ·éù�-†~ÈdFäkã�xl ¹ˆ�‰(ügU¨ÕÞæïÖ*ÎÛ$Ü3okÅbâÂ?‘åi Y£tñžI^ø¿œ~3pô#øÎb ïn±AûªLnƽŠ‘¼úîy2>a þUš.\^õûòl„›¤Ôý5¾3Ÿú¾zQ¬êæ:·÷R<€Xž,)AOÁ=°"EoyÇ|@J£¿ä¼•ãºbôuU˜ ñ*aIaöýWB¸'YB)0hß`Ùɳýa½ùJ̘¡Ó²ÞøÚÞÃBhÉ ‘,+K$ Š0IhF1VyÂú(¹Ü †iÍFÑEµ‰H^™†XÆÏ�(A^5ñú*µØ’û™NÞT¨¯¿>MkO¡&duŸý$cA¹y½¥™2cå&<”{ãZC·»¡$4kïBkFäjÈ#4»¿Œ ésƒzñV[¨¼©è¶L~L=Ìc7«„�DLJœvò*áY`áÇ8Fõéä0âåüÑîÞ¯%)¥¬èMS´<ǰ¹D \è§Œ-×öŠk;¦÷‹OxàVÂ= óõYó�aüô³ãúû>Ðx¢o¨#)ž-Ú4ÿ²Û›F›"×{F•ò`¢£&¬rŸ¼èØ"GšDÛG¯š½²RPì ‘ùQ€«`ÐŒù$×Ú„™¤òÕM´ƒ¾d—ÄåŠìî·.PŒa5°®G¡ùýgy·ÜÔŠ•ò7;!ËÉTaèç·5Ù¸G7Öô—"Sõb>rFu}ÍY3Â?Óª3´ÕÙ„8Ói]_4Q¶o8l¡€ž„ïøM”3…ÍP{¶ƒ¾ÛJ„H/{ñã‡è꘥ ½ÇŠ×s—Éš„êzîFZÈlä!3°&3+UwïkÍâ æŸzëyóš9ñ0²Ó3žàCŒå>PhOO<½œõÛ ñ\×GökÕªx¢±)l+ƒ[-÷*?¬eä–´u¤¨!`Áúj;^-Ê® F¦!Ô6 †ï¾­v Jƒ¹æÄqê:´/—fì'VIâëÅiùÊíâ)3ܨ˜è¹ÆbŽ×J�òª~ÿ¶¢0ÂÆ³Yð¾à½»¹àõ8åˆ"ÛØ£©ûÔ!òÙÎ[¯÷§[eøÞ»WšvcÖ\1€¸Û[pFÿ,L£#‹(!xJ"­ìúë´;9Te=5l§¼¼=^fh%v½IÃm5þÂö9Âs¹€%/[J”ÍGŸš;ÇIÈÀâëì0·éaä—ýF¹e¿DÚš ¸Õ†xÁbv;¼ ëvú¾–ÕB]ÊÞ3ïwÛpçÕ�ÝRždÊEŸý�Ùl9=ÊÙQí=;ÊJc‡ÓöèŸH Ñé*KS[ÚŽü‘F#Ͻ_ï&hÃtEº¡“4ÿ"еH¹àæ?�%24 Á {¿=Q~PL€äÿßyâøû†~dŠÚè†W`™,|`.¯B°Ís6Æ´Š+UàDx-ÅàÑŒÄ wÞK½±Ht5OÞщ'ÚÙ…)RÑ7ª2]Ž'”ÜåËcÐf´P=}F{ Ùfªâ÷ía¨8Ô™»4\ãw�ˆèàÐGr® )¼›>@¿ô¯Û¯ßiN1#r+y¸Bù àV#„ozØ0)¥Þýò³D=on?®qÀ'0'x…ª�ÊSú<ô�)ë'vC'™Ä¥oaZ¤º˜Ðš1züx”Ugq:ÛÕí®…"?�H¥}¤ÒmÞ¹Ü ûçë!X” ’±)€h‘cG(ÔGÆÛ ”–lZ¦Vs‚E# ‚6Ë‚o1*Èãε¥dâêÚ) qºž;ƒÙ�ü†ÉWk›P2g§ï*äuÌ¢ßÍ[$|6ªiÚô:‡Ún¿nÉ‘î':=3ÂoZXعÜÿp)¬´V½íšN³»c"Ê�@52Æòu¢¶¦9OãJD“÷ÃòPœ~£ ò’€â7jìDÉz‘ãŒ�"ø7˜fñôÌÊáE5´Ÿöbs)=À¹.ºm£¯Kß js)HR–—1šQ2l¼Û–{ÿëD~ñQ�VKËRg0& ‚”�÷5`7¬tk/$&wO;GFV츥ùd@—a¢]J£õ£ ±™5À7./ò!q*¼ŸYÓxí:ÈchcïÌŸœG¡BxwrĬ° «¤+Ç*»�²Èw"Ѻþ_ ¶‡{Œ\c W{à)™²-#�T¤2éþçi`Y’ËZ/¬œXNÇÿ˜!K8÷˜Rúì)õ 1´>l ¨ D[  Kν ÎÎyôg÷§P­{ÓÂÇ5 YlÆir ÙAæJ§½7wÔ{²„æÖWú¶MæûMF¶xMåÍ×=°àÜ|ˆÍôkšzR’Š%£•EtÔ(M$ %6+X |4•ŒÍʃ`ôÒøn[gýÀ÷¡Á}ѹJøÞ–5+UˆÝ|É|¸Ý ý{|ð¹«è¶[MTA5ë“7^‚*€Âc3[†Ûewr)ØØçÊœ$�8 ü�¦dú|ôs;v˜F¸*okâ’w0 JËèÿL¢§ Sz Ú¡~ØÝžxøô_iôÿ‘·„ÅZ»É]¿¤ »ŽXQÿ¤"¼Çãø‡.™¶§4ö�úíY¹ïÙ;oÇ´çkd½!ìžuVlކ®î^žgÛkÁ‚y–äÝ!íäVìÍ—ïJT.aÙ÷ჺ ÕdË^®ÄdFb% †šLÔîP Z$·¿î�Íä�›GüŽëÊåÁhD÷�î'"™F´–~]ÑäVFnKˆŽ}¼n\–ôÜ>·—¤{úuyu·Çû :Ò÷…ÓôcnÃçW©|_gl[æ4 ]¦Ìm4dƒ*—þbª~áhSNB'ãë5°ÿM`ôE÷1LSÖæò'Žn>&èþî&µ¤¬¾G˜v÷Kó@iåp÷Ÿ½’ö#*¨fÁ¸>ö.> Pä7íBï(â&űùXcÒ†0 ö*Slî¥E³ ã:mû¹@ê>Ý%¥t(æ:qNyÓyJj~×tFÝRYïöXIŸ}7¹E¿ðAcî©R˜®ÊÛËŠ–óþ*ÕL±õM•#lå¯\yHŸÿ“sß*ÿ”ñÄ � úašT,¢/÷¼ëϹ¶O#,ÒˆyÄiØÜzÕÅÚwŽs®3…·<7þ‡QMUDMJ,f|"ÿBXºFƒèõ7„øìù™9'’»ÓqÞ7íŠvQâÿ&êm}b«‘ß ö! ý|-·«Â²ú'¾ÏÖç$uÑ)!•n| �ð Ô®2CB53c:I#…Œ5UwAœzŸÄßÊcíÎÚG�lNÌFó¼ØÏ‡šï.²ýõð—n+]Q!únŽ6ü8º5 �#ŽÉã‰È—Ž;3ü òY®é[Ûë‹Ûh¡mFÍo~¦¤¥±kHãéðËð»2l¤wèôÈNŸ?K˜ÌÀÛ6`RÓÑÚÃ3÷XŒ·z¯{�s2îÓUÒ…árœð13°–t!æò‹|‡-b Ò úÔ— 8¦†v—"�¼•¿½¼‘ÍàܳÜåQ£ñ_½;žk#àÌ_„NàÅ�®ÒŒ¬~¤;ä&ÉysÅÈI Cu^$¿Se?xJ `8Šé§œPwt·¿ϦÌ̲/� ‘Ž£�e›’“Ÿà8&AD›ÅÅ¢]�~žð `þ£M#™Öá“” ù)é_á¡Ò¹DMù±ñcZì? †ôZ÷Zè™y÷4Í"Éf=™¯„zʤî…lßf”±%Ì`[H]KbWwº3‡ËY`¬’>µëŽš˜ ¿ÉÎpuK 9tÊãu›0_²ãbã0š#ä}»Q-®ˆše�×ñL²Ñ5Äf +U3 ðê5f×;cž�ÛC²±z3Ò‚�§À$~Ìy‡X¸BŒš(¹2+žh}‚ ¿ÅGHÀ×{ŸLÄæ�úì@Õg $“™Øf\.Ìù–>°ÎŸ'nL KÜIk&é¿Ò‚|)!{„\qꯤÃè4ðA-¯Ò“²o¨ë¤¥ØU}…˜=b´³ÿ½€¶Š‰B{i!ZW,êýTuÝ™5–Œ­¾˜î¨#.R˜A<2cµ™ÈÛ-�ö* b¦KŸ�†6ßñ<¸œU¹+„>3Y�bêñQ) WÚD®¸íÐË*Ü÷<×ï[_é�~qõɸÌ?—5È–=¦d%BëÊAû¾À3ˆýbMm¹³iüÛ±Åq ôÒTòÌñíÀŽ'£žü×:¬A#äK�™?W†à’(8�ý›|„ÚØÍõ�ž]ƒ›˜ $‰ûýË¿I-¡'‹'Ž +îÈ1ò_—[BëËÀ·–aA¹%ú×ù|‘rr6Ê—=wU‡òww¶ÊÁ™˜­YfkvÊŽsp°¹îbï‡�yðBNJèV£'�¡µáw*è¤íû³Û´ôK‹`Žƒ[=á.?W[ $.6ÿ{…µ«‡Ž7Ž¿~~˜Q5Á¾d ßgÖ¤û TŽ1ÍXƒf^q”r®î€}�üµ$£ýw1þ\Q!Wå þî}¯×œhÌØdMKFi~¤“Ý6%QÒÿ×2²Q¥¥_åv'’ÍøÖ22´ŽàHÌV½µ•õþ )Â땳$Ï­³VPC+ÅZã  ¯&VzC+‰=g#¼6-IÎõÙNê|“gª˜÷õ—ñRýTXår-Ažþ-ôX!A_ÝË^Xi*ôƹ.ï%=Bãžt©É—*ÅÀ[,y4z$}ûÉ·¡_ahÏÖ{GfnBÂkëavãÊ9Ä/D�vµ”‡i·êlx°×�8žW’ �5lâ x®(ÿ[ÂÀÞ^ø_k’dÅàŒrÜžEÄ3oé° L¡M�ãFº«‡±LI¼ñ+“‘üWëãú¶¼•ïûP©‹FÊeްÞ}Ͱ½ÿŽazø¢‘ûS��\$ÇF†g™öW rºÐجÏÍÞ{(X‰uwébÍ�k—åU |®òþÞzCðÙ0ù1«7D Ì ~ì Töï  šFgÇtÖÉÎ2À.e4Íý¤°7'FlûŽºJèêÀeoÚ¼¬éü ·ë¾ÿyäNµ2±)ãý[ A÷ãÞ¼ÏëõêíQ¤¼J]Œ’4Î&×§[ë]d¶èôI‹¿²¸Ê޾‰Ž."äûû`,ùUùÛÕL6- ’:š ÑÚvA>IG/åÕ³”ÕJu1>S»h¾¿Þék¾qø‚·oGLd4[ἜI÷SädcZ½Šwday/V�¨pC醇4î_“w³Ë±Ä¹Nà·^./YDÙ²ÒÊ„G«C‰&}î®§ oßí^eËÇP´=çÅoC·1¸5$� >i[(?ÔÀ€î\³š?÷€r¯Ã´�â‹R®2E’\.inÐÊ´zŽœi<šôbÍÇÞAº#tu9 Ÿ#,ÉÞ?qÈ÷/X-Ñ5¶F ³^.æD;ä Sku ²&Üm:–²,ÕúÐe´Â#�^’½ =”÷Œ÷‹ðu9=nÍ$8.'A™¨µ×àÉÖ‘TÐ�X9×Â%Ò(Ÿõ£d`>ˆøkq"R�µ°¿3?U‚ô¸¦p5}ž(l6_0?½c O’kÎÔòdá$� •à‘C’üÐ5ª;žJ‰²@Pÿ† üd÷Ì^J 1é¿ëa ÇbCAl+–zŠwþgjO™/F t�Ö(©—½�ŒSµ0î %I/vV*ŠrâNƃݫE–ùä®Þ§|r·_Iß»ú2pË¥p•«·nÞtw>ó~s0{ý×D•±nf^Wa- Íüï5Ö@-ƒy:ÃXè§ ‘ãlLgÉ 8™÷I@ÿi%±"°ËÚšojÐkñiJ¾hC¦<ÍÈWIßþÍo=¹øÉ¡Û –Êwy»7UY xµß÷/›¯—]�é3mWÓó’­ŽVÝ&JY-Í®åýl­}Q³T2†¾Ë—Ÿç CŠ£&÷·* º>!X”6lÿME»ö«¾v±hº¿ÈÕèÞüËÞÂã:ï^Ð�ÒP|¬rˆ%¦ðÃéÙ×.ºÔŠÓÕñ»¼cÌóJ­e.…<.\a·¥YÛõÞ¯ï—Úƒ3ÄmçE 2ŒH³~šv§¹µ@‰j†r ÏŸHJñyv˘‡5%Ç«µäÔ¼—É)œ¦]»ŠÀ ·£9߇»gÓ=áï;’š2þÕ‰×äw}Ú&YÇ Ê¾Ù­´²3¬0 ¿x–íûp¿^\RvŒ‰"lTÔSéüz›öôúQ7%¿Ž±÷¯«»_[(o4³©]BšÙ£© be#¦ÓRø?æ>”ûŸ"p ™Ëw„ÿ]&ÐËoÑŸ&3Ia1Òxlá³lÝ\n3# ~ûòõyÙ¨jv”ªþ>™‹ùÇUk™çœ'¾B…6IÊËœ�›âK|�lxÏùó½™ ¯ á…#ôai,Ñ„Š¨L­õŠº̓5£ ‡xH-´dóÿ¾XÀnfSUün”¥Êõ`~½Oõ´Ýjü{‘:FÊÜØÉÉ€xy,‘,Ÿõ³¹zg Ò㜧bñ¹èˆòx«RÚüpóþêx-¼êÇJbq£ éåj¼jc†÷ž•ñßÉåÜêïZ¦ ?ÌaJ±\ª¿¤­­=ï1ïYn9˜å_·€¦Ü‚Ñ´õŒ~òVõ}eä¾Fp@DW hä{笺á3œ %Xn^«1Og½úe37Ý¡|†_�¯ï—Út^|Å»œ®ÞäqÖ»9”ÓÄôš‚Ì¥Q#±{…eê×DZž�Œ5}c“QêŸÎ˜K}âQ� >B$ZUʇÀ°¨/ÏÇQˆÓþìÔd™ðYçoc!õÆ«õÔy„ë`"#ÝœSñû£˜÷ç»SUãS²Nd1�”I¬z§;ÒÇËì)z•ïÝ—àŸ!¹ùäÇ8ˆN “ò@ìîöaeä¡äì5»µ‘±æwÇÙSÍÿ&¹oƒ©¤ ðÃô¥ÚX{äæfàÆ`’¤kr€k“òì?5ãù«õN[ËœKõí·W'M¿PóG¢ˆ9Ûw+Äæãígª?q÷r;¬*°÷Ýe©¯°ŸA�Ò´~–ëÈ2!æß$¶¦S�Jç�× LBbŠÝÝ~BesGß®ZŸa—E‘—ÿXÓÑ«˜®0�àGký¥™ñ—ÞÍ´‡í=i²uj´zjÞ R�×¶7æyj8ùêŃÑÛ3ÁÛH}ð�Û (R<n"]> ØòÌh(v†»ù©6o•áì~ÿnáú:â°6@Ê�tбÓÊ1Ç= b ¥ÆäC¥±ÛCéŽFòÔ�þ4·ï�)g‡%'�ÖUjz•,^Œâ>¦ªx¡'G«EèÑôæIK 9uI±ÂòXþº°·›þ?FÔrrKÔlàè:/ä†>Ð ÈWÿ9Š,þ›M\;p’ŸSX±$Íî‹ ®ÝV µj†È¡ÅÛÔ‹„0 ßç</¨{éÉx7|�ù˜çnKôæ<YÞ«YÀt ·àà”aj¹,iE0cÝêy ç2V&v ÿ™‹îdˆõПýò.N²ÇañhžÉ‡DgºC±ý"ð�9}kS�†uŒºcKä›Ï¸oÍz�}[> ÚhÃJôÉ´k ˜ÊÊÇãD]¹œÉŽ f;.ù,šyÔÙDám|þ²Ö¸5, ÕÍûûë-wv ýÁ$nœq%¾ñz ´5ÓçÚR'Ïa–þý|£{[B‘¤lÚ ¬Ÿ»ûI>OÆ NX¸ôdÞó@/Ñ+Žßpåý¦æÈÁ© ”Ͼ„UÇ} 8œ¿?µCj“á¶Œ¢“÷CÚo¦ yÞa@kŸç0%žõ\ò“¸º·FмO{§â0(ž­ð1 ®’ÖWm=5ü>ªt )èrǽ'�‰þwò-õy'‘ƒ…!\¸ïû�ˆë¾o~`O~úó6”ü½Šø�“c'Ž|íödÈ‚÷…¡í³>–×’C佟ÎiTÀ$mN{’\!RÚ øZF–AIG>ür+5m /’­‰©pßô¡µˆÁ𪿆,Î¥9‰7h¦(_OÉèa«9Z;Ï^qd¡v‘wì kAwä’ã=¸?ýCæI5!~-}:ëzi*‘ä’+òÿÊ[ÇUŠˆÿȰªa&†w¬R¸œjISïƒÔõ�àÃÿXÏ1ÜÓìëÞ (K~äçHÕ²*#føØÃÊ$|ÑØvŠSÀíoGº¢¦À­0K>zv[.º¤&ÜM®º,ûÜ•ùË]¨uåjà@R?ÌàÌ·š0àëC´úŠyµÐLéžb(‹©œ û^aàe@—7ì_#(!®âôMX9¶ZÌïÖ kpZ–°=bo´· AiÏ–:ÞÈ:r)ÈJ—~~ìé�G†Yêò˵<‡’)•—CÅ¢ RÑb˜öÓ»á¬þ¯?\q@¼ˆóZ¤müœ$AÐV�®öc¹Ösøû–cBÈ ‡’#U²ÄñµïK’ÜÏ£T�c øã©u¸ N�«çiµí5õø'à¸váçF¸ýã[Þtà�x#r³^9ô©¸o˜©Ì�é†aºV†m·�xönW=?å®›[·¦W;fàáoêO�ÅZZo„G5Ð&p´Ö¢È�®ìtl®Œ‹!û”Ó@}åg+Ú‚†´Õl"ë‰L�HqaK²±ø¬tP|ý˜Ï“ZÄãYe‚ÐÔ"9¢²çEÌ‘Çå-Š‹Óý+sPHsPÞèÙ¶A2C0£GÇYù±\†ƒÃ%„ÕÔO’æ¾)bT‡�öN N||A~BxuÐ{Þ>= ‹ó°Ÿ±*b.ÁðWÏSq=vÜDð‡ ºn»ô4t�ô[ Gƒ& /ÖÞçœúQŸ¨'$]ƒ¯*áñ…ùåW~1bl, ˆz�’ÿÇuÅE^§TM‡ø Ãÿ£AÚ„ ^‰¦“©N¨Í<ð%Ù›–Gv®ê'cÙòf·lûçÁ;<ï'Ö΄²ùi�é§ÓúýÏK¢OÔÀK*…Ë*=Iã, Ég?öT=ŽƒÂ¥oÜÊÇÀsÍ^sC®Î§Ê⣊7õñIc ß­I~]©L5œÄ–WsÇV7ý#xAC\¾7©¡ðrÂhS_:ƒ1˜¯cf³}Еš}I/?1ÌþEáÞìšó:@:fbF €'þv‚í†&e¬ˆD�S Pl¿c:¢&J:˜¬²„=„²“e¬–ôJ%™Î(-…ºÊ•¦×p2@ã$saEL{[±FY¬z3·z£Ý¬:Ð$íÃ/pî�Bè!Æ  �nÉÍ]ª»Ѓß!ñ~¹F‡¤/œ]ÐÕ„$®f/—´ÿ©ÚÞâOˆ'—}ÐH²0•õµÂ0»g§¾d—ô—4OØ_jmÍ8'e1úêËã�Ö!Ñ]BÔ»•i¸T$Coˆ6x ü |Ê¡ŠJ ÷È*çÄŒ¥é>äNý8àiW£_‡1ôü<âÙš¹k¤ì(§„tœk T|)OL-³CÄne'¤Á tÚ€S9ºÇ.SËç¦4À§.ù\;FÛø±’Õ “7±Ž\óO{ù�¼V}àÞ¨%Jã¨àšâñq~¦¿DIô"ОEa Ÿüì›l\=COÖ¢cÝP)Ü &±‡h¯ÞRêuD:7nVZ´û^o±Ü 8ËßÔ‹El¡uô^¬Ê'5G{ôPC¨ÀIà©ï÷ÍØV¹º]­ZæõÖ3?GË /wŸ Mü¼'ðy�¢è8§@×[ÞŒå½Ó¥2ÞäÒHD™ ŒnŽ_(ë�¶ (¥¬G#¿›ŽÏooÊ]wWƼXù1­(Œù¶â*;G{Ôâ¯_qŠüÀX�ÜUj²Ølfši\dbªêÒé†nQe¬dñ‚úv NäùB+Ú}ò}°Ÿ+ê-�XG û;²E·ìw‹(Àýg²Ï–î¨CÅ Þ±+mLVKoÌûßM Í4žTx´ˆñïqÌZ�¬Uz¬ö“Ÿ ´Ì— øà›eknð‰ï9ËOtS ÏESlŸ¡­¢Êseïìl–ŸÌ˜ûŠ€õ–©£ð.�Rnn|ZzþRÜíïšÃwG4“·“�¥÷‘WÁ@î² óÁñÒødæˆ7HP´÷úKs2«<ô ÏNB@cþŒ5m/´<�Ö6QÎÛ;ŒgÏÛíˆv‚ÈV ʃ}s)ß·3ÏÐÍ•FÏ7}v7?yŸ6¡½OáIµ%;þUá¾Ù1Å#ƒGÔö}z)Ù§§B3 œëÓ•OÆ€õs¼‚æõÇÉcý›üJÊ_yŸé—> Fç+ÏS›>Ý}—w¬N»'lÏb\GWL|¿LŠÜ¶3¯€“ªËL_L¬�[9û̧¦WQ^ÖŸ�ÏõÙø�dj®u…´È­Ê€ðà/Ú‚Ú ³“â&6­xš Χ ßg� wÜpªËê0·þnÅž1Ú*$bš�a¾H3ŽXy\Q}jB~†ë”Ö_¹�Fæ7`|õÖPÅ|qY:�ãOù®[UúŠ}#¥/îV£ã¯²¯¹Gî Ï�ÚìkŸ“Ì;qy´_û—ý¼ ™oè¼&k‰äøcâç÷Ò°Q¸ï::eÁ;|¿k¢9öˆ·ñ»d¯Kp|;†¦@¤¥Ž?}L¤ºõJ8*4ÆÂ8õ•VºÐý•|9›ÔV�p�çø¢,(Ö´åÚKÌû‚²ñr‰V�Â<3x$ÓB˜¬Bt–²’oŸÝ¼UÆ’ýbõÒ©ñD-øTÝ6I´aª ©‘áò·tlè”Üè™#’ã—Ï— FcV„â�E?ÁÝ£¨\ò2¤¿y•Éæ9)¬Ÿ?\…7T{"=¦ª;xíÎmˆþ¦“ú‹GeZ/¼dšn—oÒoî×� U1\¾‰º°Ñ�ü°ZjqÓ~©þZ/5óãó¬œÔgW(«vÏD "1U´Á®Â�CK#~e7�”Ù’éÀ¥gxN¯�ÉG,dqÀ’Å…K/t- :Þ±üqÞZÕ§ù}øìöpîSí½W`Àeékßïx˜ä�Á`¢%½{x¢ìÙi¶SÕ�DŽ;l’S¬Ø$¦§ÙV€yWd'rO�ðµr›WB›Ðî¸IØóy$.‘o NŒ@ÔeÕ/¦U‘°»µJä~ÎÝ \†Dà r›¤J†kš]q–g²œÑ§4e_9·@ÊÍÜHMv�"€[†RgVµ#ÜÆ=<¶Ñ ÁU¬'ú0f.÷?‚û¾jlw’»¨|L:]D̆„ChÞrÊ4#{>œ!Þ›o�x?i%hBpÉx’,rÐlMö½e|lê<ÿ¸’)§š+¶K˜@_ü®¿í:k†LŠf½òm™¿ó§�Çg.©k>þ¼ùàísby,í37©‹ŠùI2~†»}‰ë9¾W>Ç®ß4Ü Äˆl.‰\?®ö‘ÙÐ3‘Ø0CëœA{©þNF…ERÐÈ3“–çÆ�¾TŽwLG TúôNçË@íãdvCÒÓÊt¶²‰×r“.vÌ[-T~»~�h$(‚¸ïþföòµe£«0} ²ý ´*Œ�Z.g¬qʪEòµG¦Þ›ù0Ý„œ/Z$ é†iµ;yæ=7'¾`¼š†½`“^ZÀûo(½[Fo�Ö×fÇ#r½­ô{i·2/$w1»^×ì—ÏCí¾ÚˆÇ·P®õ¢}!¶xDdŒ¬_ÚWÒçg|J’ߌÕU½)_M…³�Y{´fÀVì#Q£TŸ%,nfÞBá\%r½³—€ž8t »éõƒMÔ‚�ê$ËäÑ]0à4ÁPA­ DÕx¼L‚°d¿‡þ‘nþ¬Ø1Ïma ËëÞ=R.ª,á\.FÞÇŠæt(öÉ‹ùñ#Í¥  T©8-5\vÛ±V céÁpu[îö�ôl�àèÏÜeÊ—ø%AެË_%]° &�vþ^'b!NŠOÌÂ-Šùt$#z#ÇVr39'u‘ÿÚæ!�±[¬°‘z»I+ó¼’—ä–voÀ3U?(Ì©ÿn½8yòüRhµ'Î2‘TCÆ“? 0—p^ÒPŠ.7,nuä4x5¡÷X/*>(@NÀ¯ÀQ`d*/ËvªýuqŒ#_‰j‰÷“ÊÀL¬¯;zãP84é´#]C´êAþ5Iç¦òS‹ ,[e†8@ø žà!p—�\§ÿÎ zÞ1ŠRn1ÛÕ¬)±œ âÃß·³É{Íœ^*]T£Üì'¿Ž;Î'9fOÆ}#ïHyl²$¸Æ~1p¾A¥.Ê Ýìvf� ¨¦BtnhÆ?ãØ7Ä%׳þSl"…4÷Ï€kÆ”;Ölzt¾Þƒ\ÁóæähWR¾¾³– ±Ë{ÞûbדÉC„ͦó¶êWëk sµ¡¸�vWÖú†”ÝÓ�÷ñ*oÞy:´4û¨Lã5÷‹Š¡_4ž-”?$«¤âÎ46xk ÌO¬„9iü¾É­X‰‰0ìGܼ�º=Žæp‘¿çzë«”ôâ …}�¬T^Wï)ÃXž0ʨcʦLâÅvj²Ü�š‚&$§Ùç§æFpsôÕAO€] ºç­BKïXô¾@ÐUû0¥P}ÞÔjå²w�­v¦ñ c”`]0lè Ú¿/L>™ömyõ,�/Ò~¦äGɼà7Z¤ööÞ,•%Z¯Û—ªÁó8ÐeëÒ)i¸ËÚ˜Í�&=™A¼s2÷7=•<ÁÎümõ•R%NB¸õ|Ù�‰î­Ž¬ÃDÈ…Á¤W‚õónâFò ðK�jÝû—™ìÕ/€1WôN%‹¿ÉÍk ÜÝ0º]ZÉ‚"ï6Ú ÉÍk8Ñ“‰¶ ÅdájŽ@Á V‚ž_]aÚnr ²†heá­³( ’ž’•B6@‹¹{>¸–¯xÕî@ßGJûÏæö~ tQÚ*¶÷Þ=3bP`‡4a»6¸žoðƒ¯¾ð“…^ëP=¼¼ç¼óKßyg ÿÍó�jy4�ïû匉ûíJ²Hztk‡JüXèK Æþ&�Š] \˜$ˆ¬ ¨¬ ç`=(YpIû7¥Ã�~Ö@IÐC ¥Ñöfý Û29ȤýùáƒW^Ž™ñÒº„‚às’æ ³m“Ž^@2gfå!‘]U|×¼³ï!ÍM{&ð§8àû|ŸU[‰Öìɼ¯Öîý⤠µ1à< íK)* óŸúò‰ÖŒ‰‰�rKŸ¢ç,Ê¡W«¢™ÞB–D7Ãòw²dŠjÔËš…+ö=Á*-d{‡â'üåC ×+ª ÉÝ7šÐK\yWøö´$!ˆà9yHǺc4Òœ0!é ŸJˆ8�5û¡¨—èÊh�ã×Ú�_>4˜N¤•=(,Œc€Ãˆ¨\NÈ� wdW@Ë.ÓÝžûúfáv� …Ù�Öt b/îñÍ'=l¹Ç†Š·f(Æ'�(z§7zÒˆ±¼šgÏ:èi´c�ˆú°ãxg8˜™ñJLßwP^�y{ÑCý]/XÎt{Ü»&µßÔôz’ Ý•3,‡éÓüî {óX�ìT‰;¶Ùd8"Ê Î}cÝñ~Ùp�?˜` ªFHyà,²åÇ“áЗ ›Èä(ÄôøˆÚ-¥æ_5¢’l®ý]>ÿÁ…¸hó¥=ò!‹ØÅX/t€ç€Ù’;›ë²·žà?Ø÷S !QV¯¹©´�ÿlP˜v0îÌ€§°I[@3<×v Á´Ti£râ1©óðî\ö®u]ïgÔL­gï jÌ™*Ç4]žt,?ñòtF”íI` °�Cð8@íy“�VªÆšLϱ6=6sÿöeë/Ça…u9÷5ƒù4TV Ð¬¨yÍä6f c„7ÒŸ&‰7jíz>FqÖ‚xÙÝò8Kà”S/ |Wœî°Tji>˜ óu…ÙDFªó½éñÀ’JëÙº÷(‘Ò±”Ú.F÷1Þá™�päª'Š·ä>Hh«¶n|nÜØ&C•½Ep ¡3—;; pøÒ�…y1c.o,CìDÁoǦÏË¡=9)ν¨Žò £¾XfFçcã»)ŠRªß“c–�(C¡^š¹‰S=â1ë˜õ©ïw·«£bP}&Ãû¥ðóQ”@bJê(S�½ó&±…sù€1$½‰ Ê…ƒ~)ʪȔI™ü/PKë©RD�¬¼Î{Úimages/img1.pngìýuX”a×> SJ HKw—ÒÝ C§ ­RCK Hw C#3’Ò#"ˆ ÒHÌÐ  „Ì"8€ôõy¿ßûìï¿}û¯íq{ˆ ÷½îu­8Ïu­kM¢¡¾& =‰PÝ „……ÝOpûú_°Kª’®ÿ |´ðÅÂ"¦¼ù��•_x ‹KK]Åô9öNq!ÓÚÒe"QkÂÛZ}äõl®&F7¿¨¨aõÕg‡p*�¾dmkþ„v7Ó»xFÉYU¬ü\üù\*S5Y“�ÏäòæåBÆæ}Æ·œ�…+v…Ö‹ýúèä\|%?þ}:mnçß”Aøò_p¥Hê….BÏÈÿþ�—s*¿‚ãpÿï‹Kµ›Ô2‘‘@êžn÷ÿºvJOïcSþ¯+’‚m¢S}á›ÓÍ•µÈQ oÜj`ôëý/•Lý|Ðè8j5¥óW,8~dýe’}ÈãcI½n<íl¬ÔùÇ d[&5~º¥X8þS� !ó·×jþʲ ¼–E®ç¸âæû!X¤ jpWuô›ÏB¢‘4ä�ðyê*4Ü~öüý^Õî½Ò7„N^½xº¥)^hk{5wšHdñ‰™ŸÂ_a�¸¾N,äv½õÄá6<ÅË™è]@zUX�pHLÓ>`Sðܼj©<ÁïUæ�¡:qlJ�¾¨Äëš É=¡åox/k:Ò^ÇŠ ¹þje¡ ¢Rºõ˜üç‘ÞÿV—.+ûcüÑʨÿV|¶ˆË‡õËÊÿÒfcôwßîÿÖºvLœBæ®gÜßèzùdþŸ/ßcü:uÒ˜‚'ÿ}£€‰¤ÿm2ʉw£ÍØñ{FÿûFׯ¤ˆÿ_Ô-U¿61�tÜ¿Öñ¿.&ñÜÿz ·!ûµŒÙƒ‘ÏÄþûFݤùãÿý@J^òkµ×•ÛèþûF×jßü¿9Âÿ§öÿOíÿ/ª]¹ ¯=`÷ôáíéôc/øÝ¥I^¿N¡ºqÉíÅi¤¿ÄùEKü%ê·‘ÝøEÿ/ÿrý:xƒ™þ¬‹,^;"ë¡!Xe|µÑôn€´}ב}åeÕž¨v-à )4°çæïÍ�J2~µääFÆf´~ô˜Û…NK˜5vùÏÒùß,ÝÁ»Ð›û§áGv³Y¤o­(gFõx™õ/8>àS†F9õú'îAŠS®4~s.È “©„@‡ªn»XnøÁ-iz4ë}6\¡x1Î0Ia 2hѪÜ"›R'¸MP—gkãMøþ�Q›ð7u Íé�Î8}U›OþržÿtÝÇZZ™Ò÷2ûg˜¢°B ̧?vŽó.zM„ä¢|UwHûLôä¯3`´¼™.ôš%»Ž9{öBj˜'M‘kXç¶RåX�7·¿ø@S'-Bt¥ÕfVX»øPVØäeµ.±¡ϰ¸SêùRZª ÇÈ3«ÁËéG/6™N-9ð®K—óζ*}6ýLn«¾‹æß®�¡9¡�én³¸x‚ÇïsG§oÀ“ÆóùÔúœ±ÁP“GNmªœ!$ŒZÞóï¦NŽ@§{ûç࢖®»e$ö)c¹êÞ±ùä^)·ÒE£@?$ÂD6O³3Ø­ÿrZDG=õ‡2gü‘,Õâœ4ÒB­­>Æ�tþŸ!¨_Bºr°ÄŠñPœ&犕L>©Ä bB _oв: «Ì#%01Á8ëÞžôصˆª�z‡²× ¬~æUz…XÔùwÀqñç`ZV­J(�áðöt~ M{ø7"ˆý™HYxº…Rð½×£êÌþãÇ]¹Ï.õv`g{K’7SN9‘ ,øë \?¥v¿Üé¨L¯žˆ»�Xõ;SåÅë²R‚CïcoÃÿ£gúŒ*–ºïEõiïÝlÛÆ^‰|‰Œ!oë€ Xï2u¥“§¸Ä=ýݯm>éÂíÁÍûpE¬¥…á'72X’jV–“µˆ¿–Lg™!.ʳUélÔïœT zd·çâ(!{ø­Êd\�ú“ü⸱BÃNãî“�O‡ñþ[æDŸ~F³ž¤ú!ªÖ@=s�/»-æ Üv+£e �ësÂùë^×Q"HÙ‡úÆóP ¼Ÿ2âHË SUÑ@R¢žêÈ–èó •g¬Šœ×«9¾Jðä·JâooÙSã4£.OÙ>ÓX~èAð@âûú�¢yå±?ì*ü¥Ø";¡ë–1<¥gi©�0v²w1˜QàׇØõÞù'”–k�õ1¾>#í òRæaÿ¹øØNbaÎ.rN¿ž­RÔõ›kJ�-´o•U)U8�#ÆÙÈë¡xÄï‡*a÷V*¶&Ww<È üé'ngçŸ2›ƒ_ø¯©Ç5N\Œ49sô’æ‡E}{4l«.Ç&³,P柘[² í»¬7¦{‰ý 7Àë蔃µ »‘Ç€ã׸÷¤«|tQs…µí°o}¶fÖ»z¸´ ÅÐÄIX’qín±Ú3z˘‰@Ÿ‰ U!7ÇštVÃϰГgv¥&邌Ô&V<•¾bç.ý—Ž�’[žâH[É 3”OøÃBîz&¯§E¾]ÖHYñ�òºKºHóøxè®ôVß_¯¦#œ¨VÌ¿PÄU-a=_3) �±¿–B^±•'y*Ÿ¦%ÖÓ�î¹>ž*Rï7@lYæŸãN‚t8 —¹—XE âKF‹§w_Íœ@{Jùa|Y>ôï¯ÔÛ#›¬—Ïf«ðˆ’'hŽÿ€¤Î>㯋*污º;û.ò=þ1S+¾÷V{Y5à�éoÆQVÉfˆùëmêc«k긬ŸÚôÍn]G¦ÒuÂgÌ"°ôêÒ²PHm´_rùk;håbiúëclä,9Kòw¨¢ ¸æòVgòýâ°Ê=’UzUI´M‚yY%‚ hâzUÕ#vÇ«»C–_àþ/Dïj`mV ,æØÃâéÄ´jDšh3–:äQ�¼ï Hiýׇd2?¹›JòIñ0BÄEƒ½³fcESÓ»nûW”jxÛÄÿÑrúµÊ·�š“gOÿݹNW™”6àÁ))ƒ”@£"ƒßV@b/ÛäA¨F� }ªA‹ÏÖß3ÑeóÝK*N�ù¹›ß}—éXœ(öl!®Œ¥ßåϽ ÇnpË/„ïâ?à]ZDø•74Büi…ˆo?7�öØü¾7žÄÙUç@âÕ> ˆ�MxHNêÎÙ:�ð>®8I¬J*ãwj‡uœÃõÁ�ø?ÙHyŒ¶F®—9˜ç2»e–~¾â� ÉUòy mþ´O�cë�.Áò�Þ­9ŸöO…ƒÊçy=Ö xD‹D7܆×,ñN]âX +Ò;æèÁU}·Hÿ¨™ñÄ @¿Kütäƒ_û&ž½/à¹DǬp&;*Aê9ß'ú]Œ 4ºË—W�åÌýÿÉö××p4–þôm¸)ivXþ7Eq�¨beôJ34UQ–}`—œ±Ù@kOÍš…’. °½H §+ÉT,2„úy•¹G$O4€[ÒM)ì¸TúÖÿG(4yéšÕÊЫ®Z‘ßo’ÞLX¾Ú·uaÃ[E´Ä[ rQþœÎº,— š#clB<žcÉJ”—·Ñ™—Þ2C‡®Sóy˜ ”9ˆ ?©˜Ó.µxlž 1)xu«lôOjÍ¿ÆwŠòž…ÿP–Ÿ4Îþ™óä³—ëç+4?Øô³ù;++Žç˜Õ¤ +Ƈ\=p#.™òŠÀY [†úÚ-cEm±ü¡!u0ýnoóéÝ!¢×{”=ðô·øäà €K(ìMýtÂ,Là7äçdÃVhjþÿÑbe+ò¶›x y ΄“Xi-\2[8E`Uþ�»žü�Zue5x›¼$žY£&�É›ïNž¤¹S¬½é‡nfyB2r¡šzÏ8d¯8R\Á˜;ރБr’ïêOj‘伯–$OBLþØæ0*å�™.Ûp8�ZvÊ[Ðý¦þû¹8Ùt¹ÔDƒáx£¢ËÐûµyøÝ b! )öNÍ)˜‘W8FüÏ%HÏ.Ynù´§dá’Ùº¬¶Ô“ÍÏ´Qk}85ôvƒ‹COä ulɇñ&õ0 é‡dGóÈ9¥ËnUÂUµ"2q®ñËT‘Á„"šÍ´@¶”qÊÎ\îI‚bÅíÄpú×¥ø;S¤C Ô”N!y°A:×¹r!£õ­ãl­¡ßV‰æ Ù*­i©Á'{Dç=l#1ßnûûH©Ò¿ûͱm,›© _à^ï­‹ì/Í“Ù2)¼|Š%—Иjš9ÞÑ�¸ú½"fòöoÝ3aœû =~µC³!°¹\u®Ã4¢þõ…¨sùñ·b²‰¡!VÑäô”]´Õñ·N9¯†ŒpýÃî°Öûš¤.´\ø©²dŠÜçβoÎq¹‚#Xܲhåü��JpÅë´[7>gõðû°–®TžšMMtÝ­˜ˆ«Bà0ͱ¤_©qž‘XRÛÀð*XÈù˜ÜÎ7š§,ôÙô´2=À©Z¢çO¬|àú‰I¶_¤3V›}«ín „g5ËpÞ<€ßgš!Þ–f&�p¹…ˆ42ÖŸÿˆ¢Á°9knWU雾ÚÅ)¬YOXðš?½ãÇLºåp\ª­ÑH'XIÞLÜÜþÅIK9¼JÞÊ0XË®@…f‹ý \�˜RÕ±Z–þV¬�th?„pTy³ôò‰ÂÀŸ°ax½*D\ßOÿÔ„;”;3|~¦+ê^é•Ç>�Ò¼ 1M±:Qï/¢ŸßSÈn'F8Ämƒ‹:=¯\¢‚g�‰¿óŒÂÌ{æØ^Ä<ß1ü¡¦iõØz,�rl°l>”S ¼çt2¢K­WI~|ÆxJ—TôÎáÂÌÀWñE‘2}ö…b0A§ªlA©ä{-†‡Š¶„‚ ¢€ešÞɯ6ÁŒ¾³4û”¡UIíhEÊ'd¹n…ÏÒ4L õÊ>NI/�Gî|ã~$¦¯âë«÷ÿøæ�·ûŠêŠý'Ÿ÷&¨ÇâÌ}›?:{k: ~Ì#Oñw7˜tN5à”H¹¬`Ög<ÈK�ÄzU�‰•ª³»²ÙÏ•0lÁQ[²dà„áÝkC»õÍÇñ¾kÄßh ¸«ÑÏw©5›cš×�­¼Úv×Ë¿ñö"KBY?8ÝÍ�¦ „“%¬žð¿•PÁÒ´'=%\ˆ¨‘ã�y‚æ —¡É¶÷afìLö-‡tnJ”÷ •/ùÌlÀEÔV4]5PO0üè\BG!²ös#6�ìÉ7äÁd.§åcécL2O5ËýeÀÍi9ЃӈvhZk Ñ6‹æo"Y²¿ážõÆžz6†ÿØÓÂs�¹– >K…Atd•àÛ° ƒ›:+ñ&Z]º9mˆ0¥Ö•“½µÑ¦,ó‘]|€©ÉI(’Ü(>H=kÆËºú‹öËQUg¨Wó7JW¼6ñ!¦âÅ�ü8LzzÈ9ðd÷)ü FÞ‚­‚[Ï*¼¹ó›×k�÷}I»ÏAôáÄ/®�,öùtGŠÏÌúgô EY˜âøUxL—r<ë0KuÆTÚ¬ço2ˆ¬`dÐÇb–Þx¼}éšcϧÄrÞ¶­†šÐöìM}P:oÙ;›x‰ÏNžm­í”¦–_ÛÆ‡8O•ÓæÁ1»âƒ•(¯pAåS°(S²ÿÄ#q¦ér÷ £*#  ÷Æk…X}•‹f¡‰ü“ôµìe¼}ÈD=¯bÉ”~£ŽÅN£‹öºŠ#™!fhtgéQ˜øÔ}j˜q%û$ðHìÅ}•œ?i·òú@tþøoËÝ6�9„Êô:­Û0® ¬Ö¾‰T¿•] CKõÃ`Ÿ¨Ì»šõ³Cm¼cœï9x §ªvî–Ôûc½¹¿e«X#B&” ï™Ê ]6“Ô±ða·m GO³¯Uöe�­^å�îØ,pÆVc³ìã;P²èBéñ&ü§4r\©  ÍRY¤êŒ°Ê\ѧOgiåå€w�Ö Nk‹Ã:öü0Xíô»©=§û>tj5õ1 ëì¡….×öQs ²ÞðÛ6ü)Q Çu¿�cNªÞXÝVŸ)d‰ƒÕè]׿rPÉ=§r�6›+ºØá} Ô£\5TP�C€œZ_ÈÿF¯‘Ø¥il@îï$ ¾Ò9{êC¥ÚÁ5Lö‹Q„{nËFä¢~ŽíµO¨ø›Ô#ámƒoÏ1wô¥¡Ç4|„¦èá6ˆ�{¬Ejnå´†¿Çòë¯Xçï.½V—W\É!Ÿ¥2œWIÒǬ¹ ꌬ`¿ 8'ªb@nžv¤çŽb”*\2)[>ûpÃfÙ¯Óµ=“ÁøÆÂÄ“±˜ŒýeÕ¤Xe¬·@cÊ[ ©û[3éM<²t� Š–ßÃà¾byZ¥™†kUÌÙôÈ'O›é74MžcåÇÂ…BÝ×ÿRˆÏ>ìj“aó ©<5ª•~‘ýlÊJG¾NabŒ ÿ‹Ù¡wKÕ:èÏÊC OuR+úNH_*¯[»L¹P ÔЖžj†%�+Ödä‘ê9jÖc ¸¯½„ŸX-�»ï�ó<*Wú` Á?rÓ§ÀE\'²ÂµÓ…dœÃY;EÐ{”¹ÑG8.zVY-ürX 9ã+&ñž²*"½ý˜¿ ¼Ž.<҃˔¼æ8~f­»ôU,±|³¡Þ‹)݉Bh�à€ Cm¶¡®Cã6žM³ËÙk$€’¡Æóîwo!OßFN:íiœÊDÈö˜‰Í(Å{lÝ×ë:'ÿÖ€0Y_1àu™Ò!] $\ò hk¨‚k†*Ò—3ENñóµƒ{ü'ry[�ŒÖ«¥9îX<È¥B9ÃDÄ_¯¶ÝPŠGeww¸¯©ƒŽŸü');å`O±È„ï úD&ðQÂâ…©µËV-Ù÷±S�„‚ïõ)¥*Ä|/†`–Í…·5¿%¢¼a�]–M.k-î:%Sá÷\\×äÜ�ÉPÚ%ð…×éôÂÏ…ò#§ú7Ó ùæx>8µèË8®hø¬Úª7õq¸û(oƒw_dz­9Á\2¼¦ie¯i�áÑ »`Ã�^{«²³ýC?úv¡…ЦJ¥u¯8R•m>²k¡·Ã{Û…,?Íh,yÁ•|ÞuÓ10JÉ}ƒØ— s;I4å-gAT&ÓE}”dqøºª‹Šæåu�ö�€©ó¿€©³† Y%õ�R‰ÁYLü„l“¼Ìü–‡i¸îïYÑe-¤QˆMÆ*(²NÝêámH«°uÍó�KÚÝü( ›k½è—w­ÕK¼óô´s‹w×_ P”¶4ò׆3TsˆÝ팦)û’6Æç�UT?}2OK˜ì _ó6³¤{=ÇBHøXÚ’OB‹Dš^æß@àD±“G¥j*xùi:ÈT[òó“š%ÕKv—²gYO eêŒÍ)#D±Â ƒqv J•Ëó½á‰a:§¼=·'WéÞí¤K€"þqc2Þö¬O3�¯LÈ^&†ú΂¤ú2w뽉k—'@±?ûSÎâQæQ™Œ¬P'¡Ó< ]íÒ\J+–­5©ÎN¾l§¸)Ë’c×ïCì÷>yºái¥öS™Fû̉¨^k\ a:á°wÈç®Þ^�AÝÍ #p\�²ˆFƒGZ�ákþ_ºekË_Ô…P÷½S?bO³¯A¨ƒÛbgrc–g'ÕîÜ”Éɣ͞â÷Ž>ˆSV.ºåÚ™$¯7{b4õî%Õ4Âä@*='ˆØ#öøeaék�¯ÍÅG>þìóéÙ¶ ŠöQ|õbÉiaŒ!�Y{ ÆäÖ¹§›nôgl“sB(ߺ¼V?® ¹,zDø>/¸”%�‡Ê uíÑ«OÏ¢ê¶V†Ø¦³žÉ¸_©XÆ/g†$¡œ«ÈÚoó…“ù‘/è¹ÜzFqM ?œwúS¢^ãaÖ�~?ßDS¹'ý` ¥9å1Ž_½/+ÐBxhïn:ôÎ;IjÙû1’Ð/Çš¡‡e`Æôc]za£Œ^wõuGÆËßüÊÄm�ëµµ ¥Änsz“Rs2"ðÆwd@ô§ œÔ¹š“áQÜ‹ÔL‰5ˆpÓx·�È^‰"£˜ŸÛئ:|ÄdqÑØ/™$Uó”ån$LýÙér#!JÅ·×…º×[ÄêOs¤®¤æ3å0`X_9¸Ï»�ÇÙ�ýñìä”Kû&†ðÚúQ›2ÂÊ‹FmØö¢”èo†’ÛZ±Q4œÎ»F~Œ”æ¦P›Ó§é E� ’!ò7χWY(GHó »N@D”Fj¡FÆìy$¼Øßð¼)�£zqð ô‹Ó5ˆÃûòÑEmn9릔·õèqõ�³KÉ ;È�×N*¦çÜDŽ4YÞ+¿æ}ÓS'Q+(}‡?fZˆ÷,Šª’âßbš‰N¯h_v³�ÄA�“¬v×/†Ûr¹à64©U6�Ö §ÇÕZYä@ Š4u â=G!œø¦c³¬œ¹þ[�¸þ¡Ùz€|}:YwͪîáZo@Š�—×(ž,G$ñ¼‹?w�,(YËÓ«Tú©4�Ë3‰Ûž­„¢‹M{DåŒo!æ…�ýÑÞ>[šq{Ë®wœÉÁΣ›:ô4kdýed½JH=·L{JaVµî!àLIõ4w¢Wò{FŽZEèkö,“ÖÛô¦Üšu"–Q~ Ù»�ò¨rX(ï7—ÕšwÍC\Ó�׉ÿôÜùR 9¦16⺳—2XõM“•iŠ%]2ªÃ×c*Ž5: �™ôR…Ü‘Í#í­EÙ¬þ¥å’Øõ§EÍi*¤*>=ùÁ¿3ËSëÝ ÐÀw€¥Ì>©ŒÚ®ë΀¢¸²%†U§â8Èñ �#ždÙ:j•ö–)!q9D5>LoDJ­A�7¾X§y�ü¶›ó¯‘j» ^§× ‰�²HÙœ*þ®¤h‰ÚŠêäÄ�,róмbrŸ»�°:3ý-"•:åLðêÀv‚úú'e™°ëEF/¼ÝeÛ=Ñ�oÌμw^�œí ŸÞ¯ ý†z|p©-Í?Ü%ETà77W©P]›·Acx€/%W—&ƈÖäo pB׸Ìñü=üÚ_•#0ªˆBSŠËP,¨ŸUÃ�‡é�¹-&qYRŸÕ)Â6êW`�×�f¹y"­ƒ{‡’vHœ¢2u’À�êOÍG9¯í‡ rnyQõëê4ûôz®ẇ¥/8óSÖ_+¼Ú¾»¥Ùn“r䦽iê'µ‹Òæø¡J"è:¡mTu<ï@ÂØºaa¦Wåy¢p¥ó›†ò”A{] ã,éM´ (ü tm{ò8â^Dþ”LHŸ™+�½AñÃbb¿{«ÍÈÛ*o­O)ùsÙî•’ï©v§�*oöŠtÔJ‹@I¢£¦¶1ªÔ£ìùLð‡ÿìQ~µ4�®×ÌWlãFòNÝÄìFˆxMÅñÌÂÚ@ÃÈ0Ì�ÝèqOƒß3™ÎØÂ…ò§²:[Ðz½ç¾.²ÓïÀ˜¯,Fè·ÁR�—üàÚ Ç´#Æú;gü¨k5$-ùÁ÷ÌeAÜÌ‘Á3:dUN˜›&S�ÜDêXP1ªñ±}MƧÊjÍ`Ÿ‚Ñuq}•Ùæºwóü}'¯Í'Ãù×Ä¿ÝÏ©%B¦æ+Q~•·r˜¨¨�ù0›ã»h&ëb}Ç}ôª0ÛdX\kè¤ÑGØÃÅÇ7`ôgIÌí|ÀâG]¼u¸ gW ['×~îÄ(ôà«»ÃÔbþçFý¶ª2nöÊ·nªæÌ±×jmO,¯Ÿ‰ÚK|–Òì"iË÷kºh¿MƒˆÚïE;|zG®ýœÂxs�]<æ}xYT‘Xk¥ˆj ÉVDqRp™nÏ»?=æGïÝìBç¿»¤Ý“våŦ$w�Úükž[P„p¯=Ðd L=Oyq´!Ôˆ‡4g,ឺ|ŸðTS�Ya²êi¡æ~8x#.IË~¬ÆRæ²n£ºŽxƒªÝ ‹néEæ1…H^=+ý¤µ<Íí¬ اHüýqêjóßGyU 6�~þb¤Oñ™g$â)—›7ó¨O:Éi •)ËV •ûŸÕb‚‹J›2òج©C'"ä ¬Õ:逤‹Ÿ¬Ïr6ÞYךۇ¯’¿Qp™�†Å7é�§Îúómݼáywv�³Ü¶Öâ{7)g}ÚKP‘�©‘²Gj¥Î¼Wde×¹YÛæŒÀ’j¿˜�M´Í¨µyÅa Ð\ʰˆ0ˆŸM1S‚8‰F©?îç*Û'®™AÏ5ÙAИƒ�>Ifñýõ—z½°é‘Ûvzæsâáï…CäQ­ö H=`ПŒÉ+€cݱÊ2°7r"M=ªú0ˆy¶û¶íý{m.ø¶ÀûbFAõ˜Ta=XÐuP ¦¤si¸!$û¹þÂȺ©KF´ÇÑÉÿÍÄAUÀhžwdõ?.7e#†¤‡1Ð9~2ä¸~{ çkðKñ“À2‘ùžÔ^’FDAVE‚5¤00Éö\u›Û.uŽs»_�2F½ãîÐ>“Eµ€«Å ¦}r©'ÛêØ9\®%à|EaÇ Í·(Ó›óݳ-ó B¦ÞUÝ™Y#ÿ�ñ=gÒ»U·;r¥çŸ�!|v¾ž¶ö³aŒoaeÉô•bZÝŸyÓ±=!·ÝcWˆY$ºÖPô�²:¥Òâ#sh=Ûbºáqu%F?-�Í“¸—âGöœšàl|ã£W¿Œ‚§üp“¤ä•ÃÙ*ýCÝ%±—Ú0½Æ,ÏU;†It¥$–~c,œÁ…h1pÎ[ó?ßY”¡”Ù¼7¬‹ó qQ"f¬Û¸Wr³\¶@;þI’€ÛH¤ûXÞð´Ö|Ì®u’Ÿ}ëŸÔÏUºÍ芆Øoã7�«ù$-ŒÎAçÚ (<–ÃóÐXŽ�ù•þƒÃn`s5®Ü¼}ÿ^ˆp½°3ù{'Å7Ià‘ý̾‡ªÐU-(hc¤^9ÿÈsSü)|8=Bsbx¿êÝ(w¶§¥•áCÒ1©tψ.Õv´B²¾ºhh\¡¿û%F¦[AçòñÁ!gàKr][‰'-)þ$�?®MÜËÚNüi<ÌÊ�ê•àL ¥ØËfË×P!Êl9þ¾ý¶L}{*àŒ]¡m+þ ‰Ë9¸`ŠÁ›�^xAãº+»9R#Í[xK×Näv†yøµ%ñÊ8ˆÂÝÉã½û)ö–­“mßvÖg‰}êó`!ãÓÊ~7ÂÿV-â]奲,Of8Y/ˆÄ!tPwy/7Ý<³Z4H–¶çׯѪâÔÓ‘¦‡E¤Qמ×ÇZ\ÂûÞS×"@Å@ <ùìUJ:\gx¹ˆ®ö¹ÎX3ÍÌ <8îöìTß&¡O�Q[¶‘JsûŠ[ž”Äãé·wYêo›—~â,õ>þÓ ’j±ý”)DF©emç13ÕmÄû᥇Ã' OÙpº[·p8Ð4_Òá’Ìœ´�yÂ7Z“ wÆÙ”¶¬©±—ˆ\�ôä òÄ{ !ÍËXÒà¾4‡¨ºù5>0¾>,o4¿{Ä]ÿë•s–¦¡%àlíöCJ‹8׉UÞúKÝ×ÇYã'¥ÍÍÍ?§-¥f®)p1mU‡Èu5ШEˆ#\À��>Òï×  gdM9ª*ºôÕ™Ýæõ!Ÿ}(½¨’]/ä…-Û‰Åw�×j´ÏÁ9`�$çK¢)£¶(�ÏcfC'w§¯Üh¡fªö¬µÍ'‰aqz Cn“+˜lN-{a*&Äm:ÆÃÕýW‰ûϲgP¸–³ÐgëÍŒ`.Ícá¼´¢2ÍÒ¡\û�V ýÅÑï—ØïÓ £ßûÛÕ¸†¹µå#7À‰xºßøÓé,ñ{‡šÙŒ}‰STgæ�N!rÇž¼ë‹1AøÁ®aénðh«R)É T�^+ ;2“‡‡w©pTWVÉÁšöd…Ùc£Ó¼Q0´š£�4NÎ ß•þâ�dJΗN'x(ôÃÙXn[8uRmÏoR×=|c]ïø°A†;u•šáó;_D!pÜ7u´¡a")½Þ½ŠÚ|ïaA!U&mrò£©“.=ƒ]ÖP1ttºpqþe�ËÛÒYèï1Á+º‡Ì€üÜ+qú$ñÙp ­ŸàöÔ^Ù®Á ²U{‚ñ­ãÊ ÀH?«�xKžð–ë,çÌ7í[wþ’ÐàBÙl•Î'ðwü@9W.ƒ›Ö½E²;dÍcÚ…áIKÝnÚn�OQÅ=è-uûí'N¢ðù,Õ­ƒþ¬ŒÌ¼.YXMd²â×Â�/ÒgÜ÷²/µø.Ùó Ò˜X]ÄI›Z#½C¦ym‡gSŒníî€{�Ô¦2^)F&ÐôõºHÖ¨?{�Ûˆr¯C;U)AL8Ö)fö£{6mþ*÷’ƒK�Óv€NĆD»‘Åájíƒv‘ÖùxàØ|¥µ5ÆÁØÀÚF¹«º\0<â€Ð0’:†"~êúG½êåaŨÑ^fH�“Z±pI5òáLäG­ûØŸE>1§b›¸xÅWûJ•:? “žÎ³ë´ͬ»¥PÞà¦N.ù9l0oŽ ¬Þn>‚Õ 9}t…]FÀ~3€ ©öLo[ÍRóÆJ¦ªöù_êtùêm^¥OÃyµíH-}ÉâsÅ"%Ù»c_á_ý|ß4”¢æÔÜR>8ܨ‘镨Ué"öC‹%ØÅTd.'cÒ{!šù3m ÈX c{Äöíº‚n-/œådü®¤èú»7ž,=Z5wt‹wÂÄ œóбִæd§’ n¬ íi~“WvK7ôF¨5"|Ç·eÜ iŒ1̼,\þ†{ëù"ÎÝ9<Ø/�Ë·> ›&I, v(æÇ_ÖH<¡+2ÀA¼Ñô˜RB²ª^P=ݺÒÕ|Ë*ãö&V�qæM4 òÙ<í,ÚOñMY‚_a¿Z¹*—@J~-¹Ûòž„Ù¤©mô²íµ”¿&z�3 >–¿}¨:/& sIùÕü�àŽ›$ÜMI)Öî wü:lržkÔê놵�ìtáÌXË� ‹à¢Ã* )Së-†šÕ”KV"öὂ¹£†…â82<æ¹o”°SÝ-P í3ƒ§â‡�‚#ne�Ÿxá 16 ”‰ B¬ö²ÈgýúÈN*­ÞYcšHC¹»èÑÑLã¥*@Ïxº¬å)Ö ANøËSúV13€üåçø–dÙÁqÓ7YÚ€öž�u¹ž tÉA"�åâÑ‚úR³`\<¼YÞÇÓø‡ˆôî›±u™}L:Vß*¬�.àJ8nU™•¡«†1¸œ>:æ e¬µ·2ªãrCÝÝi ˆ‘¡½­ò(¾>"ƒ¡ãÙ/”LæI ç ö6Ù¯ä‹<ð…h™ró”‰ ~Bºù8ê f=™å$aRœ ·<"1ßÈdlOfðz a…:–{iKãÍ+3¬ª½iï[-NB½;Ðä2bòÚ _þ$}œKáå eÚlBì[H¾No&„ï6 nŒ ›à0*üž°SÇÛ‰;}h/s$åÈ«ã\—V×}ò§¸Ö­´Lûú›Ý9ô(i†wû£e%E5:ÐzÝ}(,®^{àzAÔ}FÁ3ÙÆ…þ+º¥ü ´×ø=U8"¢J{ÍötMßÉœ•’î:F}•ÿ‹1*ŸA&öœ\¨€dwgÕ?!$x?Ä“�‚¶º‹£m×—a� "jå?èܤ҇|¨MÓ}¹b‹9DLxdlÊÞ\6Žr< äÞt§9±úäBæ°ùú ©²\}îše¼8ÔÅ-ÿã¨�¸ææ‘ÃXúoy=ª@ôSü:rŠkòeD£oZ>ìé¾a«äñÃÀ6„à|§øÁ´:�:„�ê�Ðø4À<²_ér³� mͶ�Ž$Õ72�½w8ØüÙý€LÙ糸y°wNð˜ä¿cÖ5€uFÄ ¼šä�¾«Œmš–stˆÙžš qއr�¯ GazqNK •¹è ù«ÆKˆ Óp¦¢¤`g ?ÓŠ‹¿ ó3_·ü§�³¯mup‹¾xFÓ~Bœ“‡»`è#}$7TãËJ±ª’Úŧ[À¾š;¿(¼e^Ðë1¤ Šø€žÆ®Í¯Ì'ÊóÈÑa�a25hí}U—-‚Gç$&ýÒ-uÁiâðµ6|hBí¥þÄ•ë-tDwz×£Tµdå‚/˜Dâå0PVÄž©s‚¨?GœÂ…@!S�DŽç€õ"aùŸšÜMÁ\#"Ä€¤�p÷“$f±šVØHŸ5²ŽU±�V ³IȪÄ/ôùî“W(&ãÿ½fª§9©÷€˜Â…GN$ò$Ñf/X™0!jä]L(®÷Xôáúcð:û¸ªýà{é&5ÁG¼v:1@›å†§§¿™ÐCY­ÓŠg§ï’©Ï6½^¶*ˆ8½^yµŠáCÏy[Täÿ!˜‡^DH†brƒˆŒ«d|ᛢôz2Rí›E‰Åªí�ïö Õâ±!›ÓU|ñÂ%‡\Ûœ,©Åãp=+în™‰ø%–29Љ¡%êéØèZhs¤½ úPw¹$}ù›q˜{™ MÿäÆÔ4pf!f»lÑÐÖ„nú6\)8nÃNÝÞ¨µà3ãp)É£+—ªü¶ÑÿœçÉÁ:®±@(¸QÒŸèÁRww¸éßSn =]ê’ÈÏÙýèÔæ;‰kñÓ¨JÚ^GIñuîØùí´óÈѰ.Àý×g=xÍ”_Kj�ørËÜ;Ò|5 9~­ª¨,>á�úHoÜÓ@*Þbµ2­±#[;.ɘqgιUšâo¶J#`–³Ø?¯nfï¾pSlÇ")ûúñãœg¢¡LŸÒ‹Š¢SUOï8�î «ZÎEÐè—Œp;ÊA•Žü÷öÙ³Œö [�™búÙHÀ›ÍtTÃBºiϬ_æ GŸ­MÕ¸·W¸½T¶ Ÿè¨œvœ~zM¾‰X»ß„�Oÿ pžëe<8úv¥‘ú¸%¥”£Ã‰}C²Ô±Q%4ýP›%��Ú p˜dH>2”ŒµäóV¾ï�V¯ %HW9õ‘†™KãO9‡Jë’ÿM AznâÊ©WQ ±Ÿªzl¯€›Ø�%òø¶f5� ¤N6—qÑ®J‰¸ í«ô×ÝÙ¾¾gcxw‘YKÉ@Ãã-Gº™JɆKû¯›�WcÁ €'í´õíÌb[1Ÿ?\eÔ¢;6OqPYÎ=Jj™™`]¥øÊâòêùJÂ^rÍÄP䎛¥½{8’�¸°óVýÖ@úeV`ÂAEäU^`X‡<¹·¸�:u¼Œb9M‰�4ûB}.æµ@a×yÄ“9’nÔê³NžòÅËÿòv«Í¸<åÂ�чâ�Ô¼ŒÅÚx¶],1d‰‹xßJF«ñWìªl¯ 9œžDèLü൲‹¨i=bí~€§ßc¨ tÍ»ôR�"w�Ÿá eî+èÝžï“FÓ¿ž ¼9Ýu.6ô ƒ&”ØÃÀòJÜ>­‚ÃóZ ¡ªJ­‰(­—©Î쟻U� �|«”y?þÁGȈc×ÓøŠGýTJ’¸ˆü캌_VúXh}­×ñÈÞ+û•^(ÜN¼³®ráÙ[¢.Wî¤5Ãvc…+R…¿Þ¢ÛžRúM¢2ižJT¯rŠÈpÏ.ôÂáž8ÅûÝÅÔkf;å_vøö»Ð͵ˆ«ªC̘¹[þ�.ü_]W�Êô†'è;qµ‹l_ëp„Û§�âž”½ô™ÃÜ7 &Aëä¿tsãÆNÕ2 Ù�—Ôl_Öñé÷{} ÁM‡¢�™¸~º5ß_«Ä ¢[QÙ†“ÒGœbi2íÎ{sê´±�œÆÿÌñqÜfi»T~fX“íâf‡ÃèúÄh/�œâc½îשc½Ùí "]¸Ãµ+ºU±Â½Ì§²�Ãàmä¢ô0‚H™²ÚZ¥01úm”–Ê9‚M'p!åË�pK[8¡Ð-]"øy%6P;.ÃõgryÛÿüÓu†8Äû½2õild[,‰Ö¢¿Æ’‹~Rýã×éT8õ}¨žž,èQ•�Jp¸8‰Æ’Q÷Àcì|­}WÌm3P4Öë¾Vã.Eê¾3Ê» ?_ÝMmj¤‚êEëï÷lósa¶×TY?"ÎÊu€Jn>~ô8ãßS Ê(l Êès ê6.¸·›üžßg¤Z†l3דÿ@P¥Kú•âJL¥,övøE©ŸPm•�F”Å sI’ù)NQñ>;€/ ¥OEö+rŠ:¹žØÍˆÄ�×H �{œçŸÌúÅEÕÿ2ØüH+ûô§¹‹‚µûêg½ø3œ"¸àÊ@Ιë™õ<Ê‚ö;gí+:ÍmãÔÇ-Y´Ç]pÝóá(Ù©èñ`-uë«&½7¿Œ·Á§Í[ UdƉSñƒí&Zþ ÓÎE ³®°]^*Ü>êšès’] «mNX „ëÕDpNumüE¹´J²®ü´A­ªØec-— ýÛ5çÿôäû‹,ä'½/Gáé5YµáÔ<¿cQú*ÃCɃXoWWƒÎû—þNQOxiìÕ-”^lá�öÒ9 ¼Çoé,ŽËõW4~sÀ¥òÁúœ{Ž=�i…à0ÝbÀ°8òH‰ØÑ;vUnÿ¶o¦Øž|0ëÕÂpŽPº\dÚE{ò'Û?í*�læé¾:Û‰Œ—Öþf™þÄø§¡çî×pŸG‰â¯xGN±[Dµ8; T³AwéÖ{©Ÿneb’³üeZ_5»ÂÅ3N‹üyçjxGù•ˆ‡=z%[S€˜«ÜjcÝbyØ‹V¯ ˆs¬Í˜¹YÇEÉ âëRàfkiÇ�¤ Ö$Æ„'¥R"fD‚Ì×”_�"¾©] ”³Teï-õ² àÏ¡YU`A1ßÙF‚j¹vÄo'{5·ÐK^ÒfˆùŠc»øé|}k²ùxurbE͹ø8(-`5ëJ£HV±ûŸdn�=PÏ«™Ö ë“5˜6\G$^o>PýÛ¼ôõ*è¾^0V]Ô: ÝþøOWˆ$‡2KY]Ö’%Y¯‡›à{›í°èÜ«¤¦ŒgLp)ÝœàŠ$)ñ¿u£oy,¡$ý'(x²ôùeìƒ+¡»è;÷�Þþù-·:�ê�j|…÷[M]^z�«¹øµ‘<çP UÉO’Ê¥üb×<¼8§Ù¤ˆÕ™à©Éwmý�¦†@£²ûÛû¨€ƒ{î«›2_1‰{–ºó£ý %Ð"¦/švoGÊ~2ëŸÒe¦W<Ø*lÉ‹ Ìbž¬”�UÄ­‹Ã|Õ!óÿžvÅpØÀêù·yŒ­[*�žiö.˜âÙ�¬ª@¨öÀe§•­W†WµôCûI¯¶ß+Â�uæ~̸²&êg©ì|®¢à«Ï¬|Ùš•]ýI`šõÕ-›'ŒæšVŽ#œÝË·“™Ýï_n5®dË €|ªŒm6h¿7÷ÌW¹|xÝ–]÷ñð­ø%°ËD’žDùmÙ[C¢Ä†ï¹ ‰­Žáv¬S~ØààÝJ鉓aÍ‘”l=~Ó¸(\ ñMÝOj±vä!Âñ朚NÄ•‡BÞÌÔÆ›´zZ|ôUÎ9O¢W¼Ï…ÌßóFôä_-›Ò>›NäºüÓ<'yw�VDcW�›© gùD!š.‡Ãó9ˆç‡¿6ˆ« }ûRP¸SÞ+¥û2 3Cwº®Õ9a!À `Ze™¬m¤3Ûáo •¦rðo£¾ýLèÉ�ÕÔØVU™÷œCÇ·¼òŒKïõÏ|ºea*Uámªî¬Ù\2T>¦½þ·óãÄKZŸ#gæ½mYDŽ”)ÒÁ>MÚ=ÊLã&›=�&ktú ›¤F¾¯Údÿs޽ûê­,?„]ƹ]²l>¨7°Ç*ãFKY# 4gÑtþ^¿�ö÷ÄUÖ,·Œð/vG†Y ›É©•)ÃPÝÃJ‡a“¼Syï®Ê¨ç�œ&U~’:·nù÷^+Ñ.;h¨äª•UÏ6&†‰†~å,rb©M ¼—üQ2$^úeô£GP¨Q}t¦ŽË(XµïPkâVLÑByf�,CL⣰ûpŽ…D™/ â’ç�žÓô!¯×K…¬Ñ£è7—Ü[Òc¦jNĉ¶Ú©Yëç36Ó÷²‹b>ÌkO�Ü U=w9X/íŒ9ÍA|Âß§GôâÈÆO“†bÔ6ß^¿W©.ÁO%«OW§xùgp%û+�ò5jñéÇÔAá\a”B\#có>4—n8܆xm©ÓHÌб�– :o#sïÖ¡T…¢ /}òÔÐø¬k•4Ã]Aô¹J™·ÕûEpóX$pÏp0ÒìÖð,&f•–ÎÂT™!qtøŒ>P!_Ï*>mFÎa‹·.A’»!_^Aþ¥Ö >o½À©¬þ’²í‰¡uçЕ”ÓÎj¨o(£v™{Eê¢ &_x�­ôþÜ»:øÙuÎõ�þ鿪¹Ž¾˜aJܾzσ<<<àùÓ»©«,–EÅF] šåKU‘côpÆ)dØ2Ñ'ÌGð¥¾6{éifoH6•åÂùÄ ÆÓùPêMÄÈ5xÛºßûeR`}î�½·&…³Rhñ�i¥ýë^Ÿ‡1¹-c!„:ÏJ£ÜÒ�p†…œ²Â‘e Ë„W¾îÃ{yŤÕî'šã�X·@T?°²À”èwc™„ŸÍ>9áÔéEü2Ù\W‰nÚœš|®ëk k–9£9»pÃpÑ«ŠÙ00«¶ë_’ņé_RÇÿ ÀûwŽ|„ÀoÜÙÛS~ëKI|*à]Ž ˆ:?U\ÏóAYÁ3Áä…}=È�gºÓïæn�U9 o ;d;˜‡K~3°/ÔÍ^€½Ð^¼¦aÕ@ýW€R;¦@Å©CñTUÄ�¨þÞßF‡¼çºê§¨øBÅB8WdÁüËK¯xßåâaÞÍn3,ì¶Ã²ö µíöŠsŽ+ê-t{ù%SYQÿÎâ] Q‚±Tj¦,'™z†o9¹IsÄi)Œ„{�nkˆO¼!ñªÁT×#?þ‡i4È °©ë˜—ª�Ne¬ùZjØIöížræ@K¦fž~çhÜ�¤«ð½ìØ�“——•3äë+·/kUJ[šÁd¿…Fà^w±4YÈÞÑ¢×Ø|ÆÄ—85ø£ì5$ÿM}IFRû �7ï W–é͸¨3<Ë\ÀGDLG¾ÉfÃN- ãÑãÐa`UÈ+É{"5E7õ <ÁW�ã×ø™ž%?êÜž%@ó¸…²*fTñËúìX_Cv–L-`,â‰[NaCpZ©¯ü„sQpeÿÞã¹ø�9pïŠÛ‚üVX,’¬úÑ,«P²ŸÂ”ßÀèîzƒè?Ì܉|p«Ô;ùa“u'dK–AƒoÕ°yn³âIS4¤O,ͽªC`îtHÊûƒ26q5¯²5 BÐ_ Èf:çp+ËB`(S³H;Õ‰5~B](Á³1WÉO½½3¹iË`__ ö•¡/xïŸòÔ™×÷}=gÝ ×)YKwi‡*~´‹¼¬Ø¾SöŸªwBe­_4BbH†¸.µ÷9ü–_g ^‡Kùõž›©‡H€‡ët¢ “¶%Çë:§ÂøPCÇ’ÝÁ·Ëk-f;P>SJ#Á¹JØhì^[ल÷D=žt >"BÎð÷}ý¸1DßîB›è¢ôûœ‰õ' ³rt{… ý[À\3ýÈJ´_Ñ ø’÷ý“v'Œ:Ç£Ùš˜ÿ,%o‚2,qŽsH0Kí&ðÔ¦-]`]Aè+GØ×ç®Æ—:Ä;É3ÝõWOò4âÑšLvù1l¡xS£ñŸ� øÄTLšØ =2ŸÌ¥‰‰M-P!ÿz^÷x1?‰á²a:]1â—éf]�2γI²¬÷‡<{Þ/7ý�壣w*åeYXD¯Kj¦tMç¥=¼¢A‰ˆ¨ò}DŸž™ú2l¨„o”ûzNHÁìP4ôÎSg¶O6ì£l?çŒX2†-Qž'Y™µ�›q°&C?Ÿ™Æ…³.=°|;kˆÍ„I�‘>õH�x Ë[¦|‘×NK>û¥°OñŸÙ7¬‘/˜à̯¿‘z š—›¡K�=ʈаÎYéË*?�eùú@ÖSOÞEû£åGœÖªfqw“Ň+È[¼y3Õ*ý?«ir\Ì ^8.è–¾!x–Zm¯HhƒÈðP¿"Ûäœ)ûeÞ%eQ0Ø Ä{\‹/+í²gNŒ³;zÀB¹õ–ó*ÕÜàO?`BZøáy-º!·Ü.M*gÂé_9–Ž�JvI•i·í]¡Áó:9bº¼€—º©¿êw>Ë€@n»T‹Ò‘þvŧU-÷ꊠõ²�Lœc£2[ïñ’T#~jŒItzQ-r©Û²ÚAßÐ{ –_½JŒÍIËñ5˼mï±õÀƒ´Ì ·!ì�[.œ÷ü¿ ”šÐI¼ æZ-QêâÉB‚”ؽ �4EVãXE�\£¹‘‹‚ÿ©ÐÒß Ä²®’"ô¯ZÙ¸íˬMþÖÿ.£Aç¤?^pºM~b\ëL}xäQ â˜Å—÷±<ÙÆMVpÊ0öô)©ksoöÑÉd ”ÅE­0Äg&U�rÈêaÐ ýá™I ý³`KÊï°×R»Tx'©­Ø�fÙd\†Ü2 Å;3ÍÂõR¶¾û4‹··²$i>„ðÔ“·2�� þ�ØgOkˆn-EdŒ¬hÐ\ªz>2(ƒ¦yIÓ)gÓ è™àjæçüRÌO¹í  š¦; ~*wÚ¼ýÕEãný.é5˜:ÿ˜š?Š·�Ô}WRœ 3©ÿ™~eCeaüxZqä˜FÝHͯ+Þ-:ACMk%ïU|Rì¬Ö¤›IêLýüÔq5Ɔ² V5ç•Órh½A»­Br€ã…ÅÖÛ¶üßte]V;|bš4± Ò`îÉÑ-zŒ¢T�sÚ÷¹Úµ§F8Œ,f/¯:“¦~žl>‡Âü¨Ãäà9wͰéK/æÅIT÷.ÈýÃç–KŒêæ�ß3ñ%”§inÕŒ~+ò�û: œ}�|7ò©\ò`XážÕݼêLî"Ëœs«°ú—\ú¦ED¸NÜôãFV ^šPž9ã,+lñ¢D ¼–˜^ü�uºàÉ€¾èº"n "h‹¢}:‰H×@«YYÊC&è@÷�7¿Ì�â=.Q�/gH/þ-¢š™^ŒŠ3ØÕš)`,©Štl3½Ü:ÍpRŸ«o…’½ŒJtn{SxäÍ~¡~.CÉK�-㤓Î, ’]ë,\¸ëZU¼ç;@»Bm(Ó—�©Ï”‘iÏ-äa ¨è/Ĩ‹ù ¹ùp‚÷Ê‹? q /LX¤òcŸ.Æ òÉTè65m�QbÙ¿“¾J_R­ß÷nAP�}ß¹Xë>¿KWî>“e”nZ™ã8ÝT þ^¾‰x1c¥ À¾wlÿЊMfw‚uŠaÃ-¹ZúÖRo“EÚžêu^©PÌZ‰žªÈ™£|ÁÛÞÊ%°ßÌmˆ‡C?Z·î@·y¼ÝžZŸty%~p(î¸Gþ½Y€�1½ê>^ˆc•x÷«tq¿÷´ÿþA©–’™ëêñ°ÿ{1zÇYgþX†² ˜ÿ2Lˆò�˜À°6þÔJÆ ,äÕ˜À?@ÉÃ>Ñ)s6¬§A:}H!•AõM˜ú’1Òz&ZuÚÅâÿ™GdÊ FÛXDÓ,qßd“5Vp�PžIª}mh²i;Ãd¦´Å•”qèâÆr îS@󩿉BÔÇŠö§Ò�øe19� ø$[ L¶K,íËúù˜V\ ½&¥?OØ"ŸZd|ߨ¶]ÔNÀX'Jͳ¤’ui¯Dó€0!Îï á�ªãršŠzæbý‹Å,n]ƒ@ÓÂæ+6i²Pü"°ç? ©(µ µL(Б@sz o%ì¥Ê¿UÑLy{M9‡Ž ÎèûS ³eq”é¼YuïR p`Ï¡ÞY –e©^”¾¶zº*É0ªLöɈéS9ÃYÙÿæëW»$‹,ÕÌÚαy׈…�<Í·‚œ4Ö¼tze®çNLW#­$!š�¨êRºEËET«µ×çÓþc^; k€;3s¦¨B s ”þÑIȬáFÙð$¢~’ÏB/Käbz(=ìJ¸ >H;v �ãøë L9ž‚bžÌ>¥žI°‚ôbÖ½~„!'ôî¶–c�Ú0¨}Ȩ‘J�TëkÎâAsÓ*õÕs [e¼?¾´[¨ ¥q^zùF©�\`wÈÅè=­±B¬1õb¯£d~l±áû7t�{Ñó©®JÉMª»É×ñ)kƒ% ¸wÜ%¹qv€¯øF¹_è;ž|’õ*ÌàµÕ¶ì*ªp«ª‹!|–’¿ kr'Ç騄DË뿸ÕóiB… §ö¿Tyä5µï7LŸúÇÒ6YYʦSÀ²üÆÁ²ôRô2>s·ËUŒ^²»'ºw©š©ZõlM?aOáÈú”;ºîîÒ¡eR<¼09åé]ÿ½4Wš&émÞGó¢‰xC·¦{£’˜¦»� Å�ª`µ»sâå¥éÍ Þz6“Sðt#Y·n�}2¡`¼ì­·u÷°´M!å×GCZVº”{Êû¡¦e¤>ì…qëw“#·-ÝÒR~„–1"jF³·Rß{‘ x€¶Ñ#žB”ßÞFxz�Kº•rED°_%+R-C0wyàÎÇLjÄEBq[:d*ð'�?-+CjÂ`ïå6ò/ó¼g²>GÜŠb¯ÕÃ2'™>�¦þ�èã'�Óž¯õö5Ž·‚* ‹žØ·Usphz|â5ůÄáË2®‚æ¦q�¼©Ì4½c½ºõž Ñ ìÐû“ ß½ �ØÏ~Xy%l0@jÖz@VÞ¾pei:p™}mYX›¿’Ü ¬€,"í·Ð*HI—Õ)Ó‰&øSæp¾  î÷õC¹à�óŽõó³÷çÏîìÂúBFdØñ•ýöLZñéU;uæmÍ*ElKÔþF—î 3}íZ£U'®€dx�áÜJÕ/*9Ïo=Mö´ßc½Áw†ò´ó?|~լﲲó"`øâX?�Çš!à©×‘z¾Ï íRÊm6ÿÁ·ß¬ÃSoUñ™ „ø•#u‘œ…‚&8…IJ<ГüžšMwz­m½wŠy%#ôz�2£ŒóÄ”LI3€pÃg@ÄÍù[3v=‡ÝFçlÁm�Á@™iâ·”õñçþ¼ÅêËdŸGȶýržÏË�„ é—j<ÑÁïßßt»s4b‡L‘0�ø¯Šz2vÜ��÷ÂÜú°k4“:Œì —y ÝÿQžýL}¶XzüIå×çfÞï%�ÙçÒÈç!ÆaÆ­60A™¥ýí©Pæ!¾L´ÊúxÀEÄ!t¶ésnïßù$fxma»šÑ‡?Z áÁ#9vve™âŽ!ÀÄËnJíÈŒ�cõ±ø¢9{…‡9¾G¼Æ<€½#Û«‚éç3´”ÿŸOãµq€©Å¿ ¯’¶T Z…5‚6T¶åB\¯%ÃÂöäß3¶�ÚµëoµlùÌe…áWsOWÕ�zª,EkoÁGd~‰ÅÒÖLöy‘ü Ö·'vI£xj âÚŠVÔTrb°óN­3øòçMnQNpqš¶EÝ?yU±½míå7Š0OÙc¬Œ>„­4…Ñs"4ËÏ»4Êrô”L“>=ç:p+4.y¢þgÓÜgí¡ñ�9Æ«Ü`"å™ÍÆÝ·Ñf¤šC7óÅp¬·‹ø=õƒg�©Nè“0‡ýßÖÝÄ… M/”ˆ0}ý§·½ÁÁ)N2z^pÿg8ŒÎ2.rP˜X}:|»ÇW�’(Ç\…%NŠŽì¶@c8†�ßÏÔéOþ¥õ =2u�•t7}²>Â3 ÷»nð®®ÕõõÒ�W‚¶žA5á^öÔ§@äwàâ<zá÷¨C�aŽ ö!Ò lSöú3©¥“ðŸ¾øGxm¥Çê§£5pýž‡éž¼%äË�™‡ŠL«!¬)’Ý(Û‡aÜöy¶ë+ñò„àñ³—ßžpwï�0“ªiñx½õ­ŸR"T�ÚØã´+‚ø§-KÉe½¯”Šù zçú{Ð�bâÀ½é^éç~‚[Å›Oú´RwÃ'ÁaßgÄä|ƒÞL Y¡ûÊ~Úœè`M¾>D‰ýò͕pr‘Ü)xàØÿÀ¤JJöVvö¼Š@í§�þüBªônΙW�çç‰É]ÅÍL©St3{?Áê§O‹Ã®E®)ÒŸ±S醉ÛnlìÔ³b™™’ùç/ áÎU•Çã©6o}RIØë«eé‹:é.ðÐßz~ý5L"¼âÇEW©3nTarMEs*É#¹FõIŽñ·Úc¶¿ñÀDŽÈV½1Ö[�‰ŠÊûðý¶×ëjr ®ð„/Ê×AÈŒý§ïÌÑã(@Ž} ï¶:š„pã= Çç�©'©^ÆÞrm ™xq¯rd]¤šS·eÈ>–Eâ»bD/ž¬‡k}(fw[X“ù»ø¼üØõb%M=åÙý¤�vJûÄÔVCV~V-Û —°K:l?¶In[FI*è‚…N›žˆôÇnÜ[øŸ)râX´GŠÀÉ^ñÕWè{è!õØ“ÿŠõœô™¥á¦y×Ibxj8/™ÜËö$n­(k3«^”Þ3!žq2ÆN�p<3z¢€áE�Þ)Ò9¿K�ð…‰NKG;P’pì“¿†Ê‰_Ní>âï(¶Z Ž¶|¬‡gþn5’­gá²bDÙŽ;ðž;ǽojŽ6“Œ&‘¸þ)BlOfÜôbœšÌÔ§&0Âú‹Œ"@‘=êU½ô!�60ó—xqË#cÎ>Øø)1†eµj¹Zcîåg+ ¥[=þˆÙÈù‘’z'gúì&-mf2Vã!µ&Å5;3g²2¯9^¨Ý¦˜¿[62„ƒ^/$æ}èÄ d`9Èã‹¡9QÒÐû¯jóOù”YÂO#Ñ1É7=¨F-(!Kñj"x$©SíK°ï Â7õZ¯Uc4`Iþå–ˆz;6…x“§lDøÌÖe]G?çj^ŽVº£âן%¢B‚�_œ?!dе®-ÛlJˆSEçarûÕRuy½P’—w5œ×’ßSï®ú>¥ºÆ+Q DB’dÑåʦCC“Ó¨Œ˜ó÷Â<™ÜÍ‹Å-?Üö.–f:�éÞI^ÜæÑc!åkÛ5:bÛ�-‹-|C†¸w€±sÑ®íbIûÝ8ß¼{N$ÚÊqÉ4¼â"ì×û·�µx3E`1=äf:Ãg÷­�l€æð÷ŒÔ©Yeð³8æCŒ°:Ç/§³^ê‹­B�ªôÛé‡12v´½íi»Ò•'æWþ’od6³ò°ÍïiuH¢e¥]vÁ04Ó®Ñï8 9Kª$àT.QsBù�‹ú¶HÓ™¸þ9ˆ“äîŸ�âà ˜Nz_y³i.Œsú¾“ÙþEÚö°Åˆbò²²\*%�7^VöS &G? ´6ö7*;µ(N(숳îP0Ú«€d¦æ)ÏÞMËŒo1½%ãBOÇœ³þˆ `lO 0*¸w¬Ü¥šË&ãzú2ÁÓØZ¯(}*ÛDZrD)â_ }B o§ôðîsƒ`ëŽç·Ï·©½7©«VÀa"CÖ’_ÞZJš]Õ¡PŒnÝè1…Œq‹ ›…P¾c&±)œ<‘9sÑ—yг¤áñƒ€;SÖ¥=ò™fˆ¾¥dˆÏçÛP¯²· Œ 礦ZÀKd*@“òßóÅnž'Ðà&êèâµU½H¯oUÎDÔ€ `w%ž¶’\C,û¤Ì‰àõ+z&fIo¤£QuÍj]‚¨®³ã’~Ä.œŠÇCÍé·fýŸ¥²«#­°©±ä˜xûvQø“M<¢ Pöo@µÂÍ(22åcΛµˆäAƒ*aÉMÊåY^0“ÞüñPxîï@ýYwªË³� %ÕÓ®È\è(ÕK*�üÁÖ}ÄóûÞÁµ/6D>æC{z×ãS@Ø-$IüÂ5 ¬¸TLÄ<47þ›5qq˜#~h]#ð,ýb]eEõ6Ù…⹫²‹A9ÜCÕ.N;gÆBxXœ§•6[ÕÁp }ë'ãAkåRÔ{p¡ Î0b×ÂÂ\¬k¬Ÿ­ø±aWª]óáü·yÏë¸7E ¢ä Á&©L]V˜äø¸5Oû×Ä‹3#U »v{ Tx!¦x®t‡¶êÝmÞ5ØbA³ÿº'N:¤séyX|²1^Ï - Ý«äÚ¸Žwo)‡LÙ'TgVsóÐ',„#T±Cc)õàÕÊÂféŒÃø ¾¸H_!ÞMæf›žf‰û�ú`Ÿ®´1ˆ1=¸FòqÌ çøÈ5«ÓûƒG¼ÎÖîÃ|‹Ø.½;9ÖN‘,GU¨–"Ä)Èu!±hH•sÜ�xnC>¼9áädU- ½ÊÌ,½ù`η;=±À½§—÷:3wñù½ô`Œ Rùÿq‰Q¼š1•‘O•×¹2“¹ùM�j“–i³#﩯¶Í¡P)²©-¢¿m“ËPõ‹¡Ç‰£“"qå kp¨®f>+û†âÇ`šqßìYd”Ïf^ÀD„]¯Þg‡nŸÅȬ•ÿbf·cD•u)ù{ˆìåÒLVï è•f4†ôjuÄåþ:tn=ùŸ–T¢ ÍÆ|BѭΖãOlídXŠTç#ÿíVGzr“æ?z’$¤7àØ×ør ;€o|È-këîVÌ‘üÒc®"k xhùd¥¿¼}¯=ëlœuâ>5Ø÷}9¦j Ü+*‚HjÖrã 7-Ç〠I´ù µ;µ®s»¡7Þœþ íB þ}{¬®ðãù£ÁAUpùäR{>zíVYPÖ�ÖŃ Úâ,ˆÐÛI)çƒ1– ìïw4ÿ ÒÖ.](б O±£ ‹kû 5 ”[M$6ƒH‹Ã+jôû MïpÉ·`”%Âß+J¯Œ°¯p~‘t °�ÄT "Q:(v*]}ë2Úv5¦›IF±„Özl�èY-ãƒ]h0£Ž]Éd,j 5Y%Ô×óD+vão™q�¥L±[g ^ÊȘWg�ŸZ2 óûS“³ "ºδ¬àŒÐŒ÷g׎_²£‰º5…�.|)¶uÄåƒʳ_ÂvXü÷ÀÒ&ñ"N‡ÓL=ýªtAŶ«s°>•d»l2¯ôOñXÀøR¯ NIܶ˜T2òýì>JF4Ú¤â€Íâ•‘EÕWþ-¦§²c„»ÞIWª¾ë¦ÛÊ�´|^)�y28æ"Œéè�ŒG« èPÉàålU¸ð-ú „]fа£T¤+kwkñ¸Öäë·Ï�Y*KrécVöéÌCWÄÈ}çÅÒ’²wÀ³`ø÷Kö'c ã<Íb-o…Û©æÿ�·€£'´`�ˆ²Í> ÿ²ØbìC¯8�`Þ‡ÝW 8g Ü ‚;T<Ë [3Ì»Ð[¾ÃFÇå÷Ä寡°°eÌ@¸G�]“ºb¥35²ŒƒDMÚržÁ·©3ì[š\±bZáÉû¼êÆ}Z”UÖ8îr.–D[ãêáªd¥Çƒ²Ôèï¯ë #3¹Õx;JcÓ+8ü3Õ ø�¡·þ ‰×f7Ü%]ÀÉ sîLD15ë¤+vuió&¨‚¿nˆ½!É)ÐJß”Ír»½ª½I�—§šG�jsþ•WœâÄ£€`N�£pÞ[”FïY¶TÍÂÕë.–œpDxñ7)hÁ׿ð…Ýݰ]jy€Š¿‹iðKÛŠp�š%ÇgbDPJ¿´c0<ï_H4䯙þQŠÆƒe¦ërKé–éž  µI4ù{�,Åã‡ÍƒZ¼‘A¸Lñ~=§D²6�Ëh‡mV×fsZüw+ÙÆ†v•ý(-£åùæØVo,zàì(uΑ*n†MÉã¢�>¿Z‡ð|!*Š�¬8×ë1tÞ½Šé½Wþ¿£U  Q­M½ŽÌ©X‹ð±ð“Bø§yÚ_ärù%ðêì�ø…¼æï]‚ž_ç@UÒw&¦ß«þ�ÿ'0íˆ>’¼S¬~5ú¨0'Öç³âÕ�ÓZ̤úê² =“Œî·ôª�–ëŽ l¡ÓF–Í]evl� ­ž3ñQ^û¿Ç.ŒŒNŽ·×+NÞ³‡ó'ɹâp§Åc�-79œOÛ·lª”ξÁX—†XÀ˜¦(—õxN%É…A¾\ žÃ«xä÷#ˆ›¬Îµ�ŽI}ËRe–+Žú_èúa{;Ë쯨ø´g³Qþ-.z$Ó¬µåüLç݉ۂ‹t>“`?6€� å|ÂUB  iºþcc}çö8þÚX<üað}Öû…€åaºÔ¡z�œÉ#‘£†“˜`‡G’ .]ãn˜ùQ”™ª6°­®1î“k8Jù¸CdH+»)¼.ÞOÑíÉz]&ì8‚æ–þ¿ÏšHP.€HúUUzÖ|Örò3ž¿5+t°Áø¦Æ ø  ñ8ü̳ð¥%‰n…«÷Y‰n¸A;²ñ�ŸÝ9 7yžž×ÐôK·´ŸÀ½ï€±W±L)¯Xã9ºÚ ¼²Ñ^VÄ‹& S¥…šð�‡Ð–/‡q%éAwu–@MyÊ6�ÏJ†.›èˆ4ákÜϘ‰Ý üÖïlzî�%{tá áZýU>;ðê]WÝ|1Æ)«È ïÈñ+Æ'4=#°Œ§É¥ì¯œpQ…ëíK1mÁîd˸ ;óD8䜿¢…kr±Î”OAkïG™Ø¬ßêÈ<BŸ@í�Âï5µì¡EŠŸ¡ œû£<6Ï~è3ÈJRV¹áìàëaM¬¥Ò%{ðP6’ ±8Wx/lsÕ$s×JÖ–©%n}¯<2‘‰H«4òþ¡¦²£o3(DUw<Û?–ß÷ œxYq ¾ÚãŒB$}öy4uí´:c’;6Lc߇̨)©Ÿþú‚éÉØù¢ñ4ÇF¼Ÿöe2R6jzs$ oŽE¼¼p\‹ö@?ŸyÿŠûÕ…T48÷†¥{„ªo>?UŠ+¿\/öÈý�Y€ÒeÒÂà�½ôÎHÌï©gú÷÷þ´Š'`�•Z{ àöç/^b8ý,_rkä–ªŽåŠÊ8ãªÊ'IJq]Ðåã.Þi­³ûÑ¿™z²'–€,ÝH9èf)9P ˆy¸ú�ÐãÆ“à»3<úÒž8»äUø`Jäp•ÔVü‘²ÈüÁ�kw]Re …ADŒÅ.�îêÉîß缩—îus^çjåˆ i4Á¯û[ N=(r70ìÐ¥,'¯.|:4§ÛÚÞÃøß+ÅÛŠí.tP‘¨qÃ&¿—ÿøÑK˜ïP»ÏÄö³âkÍ�S~U5¢õ½VrÆÌÚ`<”$éeÇH´ã° ­ç¸îÝx–”ƒ…â G%ãZ_Š3g!.©mÖb·'§ÿë¡%3Ç€‰§ê7[Ý~ ؤ¦›åNø)Ä�4×ÿ@÷æ$•wâG¦ëL�u)P|šaê‹ÄÓUÆ›3ǰ½Ð_`=HöF†i*È8÷A·ÔØZœ>q¦Î„â§%‡`Jå9×âˆ1›…†(4wìÑ«PÕ¸O§lÝÁ{`ýlj<Ü:Kê²{n÷&(Œõ¯™ªŸÂµírDè5ŽP¾€uD¿(0`Ê Á »’M6H~{3…U¥ôŽ~¾g#êB 3®|z~I[`‰¾1ÂÄJ8àyÊ£�C¼ž~óKMÖÓ_xã~ýè¹öF'Âi© }Üž(ŸãÑ‘¾Í~Ï‚ »½ò¢½QŒ…˜Í=Û)(˜ñ'Ævä�EË]”wÍ.ÚÞsðf8¨¡<öÓÒÜpÁC«ö~ÆLÚMÄö S‡ò„³·Ó�ÙÃÉÏvèz™õEü¸Ñ ä º¥N„�Kv{^I‘¿yÿ 1¹ƒ® nœ¦Áž©|Pi÷– {Eú®°%zPq÷û.>÷‡ÊñB¢Õ-µÚcU:8î ²Ø�DÛ’û%w_1IDê“?^¤×úT0WlÉŽ«ªLîÃ7ìªÒÅ—»˜?œâ7ºéܹû˜eÒfy;ýhhÎï—ÚÙügi1ðä彃õˆÐ‚ö+Ž‹«„’DŒg¾""œåT¢½ð „⯤,Ý=6Q§T�€»íߤ#/žèGÊŽÕãà¼Þfû\Qüƒ.ö6ÕKÇ%]æ¡öo•ƒ„I-­ü¬g’°J˜àf¦…Fw°[™–½™-‰Ñ8»8¤†ô&Y–∥‹JûyEJŒ”N|Æf€Ãǰ"æW7ûŽY‘Xg–Õú Æ;™,ÈñôÏ©G!2ÎôzÀâå‡!·;5O‰¯Ùg• Žû/YgtŽ&¼¥Ô„¯$ÆÓqå%B߆öø~äŽô;¾–&¦êWŽhF[­þý׋A.*ùGr >òÊ›)¸IÝ�d—é<õU x„Êuä“–Õßò¦�WuÈŸ;ðû�é¯?vÞdßÌSæ!l4*GÛ¢úaÄKœˆRñ › �Ȧ;?¨W—…”N§¸°…:áŠnH« Õ�ÛðÞÜ‘3›‚â{Êü™~2è¢ü!¥¿ Á«°÷›Üž�µý”@–͇{ÑÕìI_’pªÀp« ‰õ&5(–¿ï„Y%ÙEzY[)}£3DmŒã.uZÒ2�B)ø1-\à†fãÎÈM¡uªÊ®Ì^¢‡vÎíjÔ‹Ù²_ûènÜ7 ¢Üº‡öî} Õà«^tÑ0ÚqŸÓÙ¸YkXÛùM ¨ù œÁ $ö `Ä�­Ïl7^BùØ.�#àRFoóíSݳ/¦œøRRÌÎ%C!c°Ïf·q^W†ùµÒGÅ•¦h©í‰«Äɋƃó-t£ÛR™à/ãÖv)Û¿‰žæ2,w‚‡Ïió½ß‡À[£‡7\E#r¼4Á ð¸ µø–ðÛ7­ØkXQ÷sÃoÛÓ”#C iYOïC„éáî%³Š•î’§ô»ßÓ”âÚ4’jíiû%#¸=f,xs—X¨®&›ŒÓ ñ—‘ëXºšã|cað´ 3Nì™èÂz‰ ó4@Ïí²²*¥­tð:³ŸÒ¾F0X“Íðg“‡…q†“QüЪ’38}ºÖ ²ƒ5¼íü¤²Ms–VíÅšš´éŸ’™Lž">Þ°’‰>¼¹ÙÔÇvS¦«¡ÞAÈÓÚ”§…âLÄ’"PC‘&íß^°i�²®Œ·i.6*_œp$®é� ¤Ã%¤+Ê#ëÉóÜêô¶£†#]ýØ©” �oLÒvb¶Œ® ‡·¿3�݃™IyÞF“9#ÍîÑ i¾ÉÝŸE+ÖÆª½ ®îÚ� ÷¯ôè{”B]«÷>>—zÚJÍXÁ .åcüˆ­³-Ô?çä ÁA ã"yçbêR$Û[ª4ñ‚5ceß½¶kàÉKˆ†rOìâÍñü;m {wèÓ{HÉÓ*$®g }/¥œ°¦Z+1‰\çÄÜëÚøµ½¬ìºQÐ6å`ºüu¢åžŸâCÞÊrB»0\>/•W%Îß8ãkE�àå‡Ím…u¬Ùõ�ÖÜf&¦Ö” òœ¥àÜNÍÀ›¸¹‡W�«¸å—ëê K]z(›�&î ��ÑÔù¬p¸;NM¹È'ALdƒP�´E¦7;Kº¡.Äy;Þ˜ÿ·¹@z�=C†ÖÍO¸Ô–žr{R瘅í:Ñ aQïÚ›ˆº” ‚ž IîĪ!S•°hÑx�Le-ˆWÔh€ôÍŒÊ�ôÈéGƒd.±.Em‚½�Ð¿É M˜ˆ£¹ØûNHÊ“Õêâé€ús~émÀ“\+gs÷Üñ—<7ôô žâÇÂqÍYŽ%ò®ìès2™*›¸~ÊÙÈsnŒ�Úfh–©Ã‰Ã‹„B ú»».3jkëñŸúÎNô@ d‹{H!²›že:Ì¥]èZl®lV]zD)Án“æ2ª´°É(~j™�êl¹†—”�•&NöštehvX|݆þîä+’ÃßàÏÚÓü ª6cCÐâ0Š·*'–Q/V¬vú<}¸}é<Áþ-GÃBå{)‰9=iÀý-…á£&ª;ÁeŒSŠì¡ôޡ‘±€YL¢G¨ë1"Oò*ø·�ø’QÖ+ž<Üê_ 7„…úÝœÝwâ@Š›·¿t™Õ‚î2O�)Z2Ô¥(*»r”îø1"Š\C«7‡oN©Â "B5S ßL77²ùs¨oÎÃß Âʼn%4Êêµò¥Ç0 ýð_ùïŸþÅzº™=f~!Œ Ré[D QiX@ €e[gµƒ¸¢tR�3HÇòRµèebžšØŒ=eO-P&£|\r.sÖô�= 'Û¾[ðC‚Îä¶Þ«/á§/K1èÙŽÉp|ÀÛ'ã�]CÐ;^q¢[²o>ÌT€u¦ý\Pdo’{Ç ¥’j‰{ú‚fOGk(ÈŠYÂáÉ+9_ß¼ñ[ Òüܾ‚MŽì Êj]Íj^ü” ×I?Ö7‰ �5�ÝMS$}IÉlÞžo÷W¤Í$ä w_j\Þ/ßã/š—ˆNÞµÜ*¦r–¾ù r:¼9©èÌf_ªz>*š5˜Âç_±¶„5”f7,ØÁƒvÉcåÅ…p“ƒ)ïœ4NÐÈ2é6<å©sÔùu¢ÚSmæ1µê¾A:ï�1Û¬i~úš6åÔ©B^5Ò—¶Ñ ¿jǾ%åTV�¤_Ò<œÏþs¸‚«û£­=É$mI«¾‡ËŠJ G'ñI°©–ë“õ.JѪ@š}5YâÊ»©z…âØ”U¬8;>H? òØm¢XdªqPÙü+]ÈèfJ{ {9ƒŒÝ8ܬþñ~ì¼e–ˆÚÅ{êá-™›1ì£wׂnVˆîý ºK€�Äéû3‹)²¯í±e*²câ;*ÖÕûñ\¿GHk{_§ n¹÷-üÈzÎJ”ªCäœqI³ë7ûù:ü~Ä›3ðzª4C’3¥Õ‘ðü’Ö 4…X:êbë,៴oGüÒÄ8/lÛ³×Tví¥_]þ˜Ö;öÒÉß�´Î„¨(w-˜�½CýÖ¿-É.(çAŒÂ}ÆZ¡c\¼­ï81]ÚÁ©7}h†·ðæìÉY™(‘ü>HŒJzÀJa 6ÀI[Î4¡½¾Y¯æµÕu©ú°dÇu© ú÷yœØ�Ò9¥ÎõÿôL¯»ªæ)ÏR~ÅA[W”wÌŸq,-}¸5Ä’ÖìåkÄåìAŒ…< ðz’Eƶ bI^ÿŒ¯- ¸ñ¼‡ê’+ÀüœÒ¥tñ…Ëû¨e­Î;$š-i€ÑÛä({öPÄ'àÆfƎǶ¿gÀóÙ¿’Ãó-‹lïQ¢˜q¬ï��´5ËÔ@á [®/·/°Ñì®þ€´+Éá3^Š Üª@|Kæ[“EÇFâA‚7e¾*aœ�.z­Éôà»Bñ¥9>¼óe�"Ûˆ Ü¸Ýæƒ{J�„BÚÃæ ÿ~øØw‚9•Úw·n‰Fz²ý´ª(Ö_+ß¾+üÚo3$Ö 3€”¾„Ê8Þ4{Q“V–XeÊó\³š¬³}S'‹’!ƒ"8tîÊ?…Ÿ^ñA!œÁÅ.~6cË“ »a?ÊMAXàôåߣV†¾x;¥Ó_øqþ(• g1‘ÅEKûðÑ+qpžAY(=u«˜­,>ú‹ÝŠÎìùòu¹©,½TΦx.¼c²�ÉÌ9³äd ¹¥§|ê÷%€(› f&¼˜ø·áÈéæµò¢o=ˆ¬çéŽ� ½»Ï%\¬ÏýA)˜… ÜÏärŠcÅ6¹äÝiG±†…Ü  !ÜõžIód¢éÛ£©˜Túº•‚ξòHZû+ýç÷þHt�Š`‚ç?ÛP¢,q¬Ï1ªôKH�S÷KžªwÀ “Іú›�¦´Øß:DkØ[Jrè†}•ôœS?ŒÑ�õ*�kŸÅõÏ×w“êÕxJß uäœò"v�]2—–­¿4ÊO2|�ÄõS÷†háGÚÝOo`�=U‚‚ßÝCžÙ‡¯«jAä–Õ,¯"%KÞ¿œ(RæS�qvÊí"�M3\oè™éµSïÓ1âb„ç`öš�F꧆­´þi{[è¬Ð(\�=3íòË)&sç¤ VŸjôgã¨ÊG\êÝ=9›éÎÍŠ³Ÿ8­¾�uÖµL-‡Ç”€©œ:5^3õã ‡øôkY�Ypd÷oò‡�C;Ч[˜úÓ ÆkÓ®¢ÃÙÙngãàZÚÔÌTÈ/÷¤7ñRØÚ~ÇAzƒxe\bìJ¶®8ÿê¸&G™ ßìY=—Ë…g; ‹§ÓæÑùP¹R¬èµŽÝ�V`õUÊŒ¦A©9B¿JϾƒN=V©ì÷ª› ¸5zxð´ý‘ÒÅÜé%�†1rpñ,æ´y­%dúŒ3Uô�Ë›ÊGª’.üv;^/}Žk©8جOÐøƒì±‘¥h+]á½ÊºÔYÎÈ‹šM¥‡Qƒ $c~Ì_•EõL–¨Úè¾ ½˜Í|»1p«/RòiÓ$ƒ8½Ö™‰Õ,=¼H³èWÚ²Âb4†}kÛ^ã4!�ñÍŠɟö‘5\�œøÍfbãõÛY4Ô2z¸‘š@¸ªK-.Ž;±[ãKZ¨ßºn ¯ÔS«Æh3–Å�Í‚ßo9*ðË'@Ò‹€K‹€ôWÇz˜ßFî²q…,sT8ž4u;5•œÞ¢'åÕº)ÝÄ:–²·I: #„pÛ…ïïc/d¾ÿV?�èi}€÷þ뀬¢Ç Òœ�~‰^ —²È¸�”òùro7j}pÞ5 k;à>’`h’× Þ{ªöDΙÝ¿¿= ]®EkÜnÕ)¹�÷^õ:Ñ“ÌB§d: %ưìÅ"ƒyº›”gïó1i1–™ £‘éÇNðlßVR:g(tà3fa†.ˆ9•}ýA6äQÎæŸúpM”ò29üþ&ãÔí»]¸$¤AZÒɘç⑸Ð=C®g5BC§?>ÉïÅÊÈo}· ?|¾Pwk¸ÈG§QÝ9MIõ6}FS…†ë䯦`§Ò¾J� N¾ùüPhWK¾“‚ù˜¦Tš=a‡@O½‹ú»…AmPª‡¯ç{³$�úÊše­€Ï~�¡ìíEÑ�)ËꈶÍ!5»ùÕ_™t†÷T”.*å†ZóºŸâ¸›hRȉ|Û¿‡®›Xÿú7ÝÂNe¸l£#q3j쥘Ò¾1?ý-ïx¯µP4Ï“qûTÃÏ#êÔûTðÇöùó•;H-_†�¾ˆN(‰õc[)FãØŽø«\•Š /|šÝx­)3¯6aÂsU÷�Y¦y@\4|^D!IÉ«±«ÃÑ(Ž¡“²?Ë+X—sùÓˆ'†º]V¼ U$nc‚ºmP0p÷ˆwO,�¼`ÇN<¥—(8=XQËŽ~ãퟔ«AÁ» Bì;Žýì¾÷Û å!áÉnL°¹ ’w1“ñžÿG¯ík–ÙðA×I ·Ô2@j5Þ›<•%s1õ3z@b]FØX粈Œ5za=‘�§È %üÛ1§±¬,_ðÔÙ<¾Î�€µ1åèqú²–ɼ/ˆõT~àU8ùŸ‚ÒU¿9b�îHCÇNäzºç5‡dÉ0„MÆSlB Ä�¯cóy^V+Â_4¡Â­ì#DS¯2G^ ¶á†Ø{Äb©$I ÊUnÝUPÖ`¢�b?ðo…ò±}*û#…fÄšŸ~~½Î† šmôk– xÇ%ô\[Š)�þO(x4� ¾‚ v+ÓÏõׇ€¢&nú¡'±Tæ¿ËUI+ˆ ·—+`¬vʺ*û g™ÝƒX§ .ˆ·{3äã9_lf�â%qwKΗ g¦·~œÃ<ÈÛþ[Ô-½‡Ãh¾³‰ÐÛÚ~ñJdp딵 FĬÎÂv!²à¿~È^ß*k'™ÈÄ‘Øøb—s+æfûׇ «O%™6·˜´f±ìÈD/ûÓw¤¥±4u8îè&ë¢ú£ìÛo/?·Í aOúh 0÷Ä .4šR~ªµSzÞ2ðËZÔ-e�tïŠ&ú”¡]ÙlS”s³rm.”_—ÿZ:¦šºËÆ{Œ>pr*¤p‘Ë�_ ìJ ót²|ÄÃ\çZ›ÚÁ¨ír× ë�?'¾Q¶8Ž�ÈùÍÒ¹Ü÷uiÂ_×_“h oó[)üJ#ýJ }¦èÍ—E9šÇ(¯€C®‹Ö`3ràå©105'5Ž ·âýÊé"ˆÔ,7\WV8æEúçÇa9Q<Ã×äVûh�¡J^Ôå~±‡.­æß¶íD¬�{Er°XÂÉxÀx±†{ñ¬Æ•ЬÔʧý-†±íŽÍ�Ò +cÒ·´.fú¤Û쮑ÝÖ Ã'j?ÉûdN9áyÊ„�,%:ñš\EËjÁ!­2K÷þ4¨(Ý$P¡XC–èRÚW0uQªäús‰"Y«»¹c\uš[*íñ‚{UFÞÂÏÒD<êMß³e®¶öá}'ÿ¬ªgtO±¹œürúÉ`ͲÜO×É D÷G(Vv±"ÿn`w?¨”b²Ž#Õ•E‚µ–¨ò‹oJ•—š;Ñìôyà&b!íG±@?”ZÚ�L£yáö§_I­ô)#üˆ¦$Ú ×ÿvé8ôÒB>æx˜!¶H`㼈 ý—ƒ¥»+òC÷TŸ@e A"al¯H[‰öŸZlc¯,[™X±otÝ-1Á÷×E½„'M�X‡OQ>ß/%ûÒ �b_„÷`ÿBú9^oNÞ¾]†äît˜>Ë$`ÜhT“¨ö x�µ-É3Ý�+×É—_�ÇÑ ¥ {†›› cœ½ìjž hâÅÀï–®kwÔÑÏÇaè0?¥Èrò00}í¸i&¢'xG“œLA!…8!jE¾x½•Ù|ÏÀ±/ŸoA¦poßY~Aƒ En‹½ŸŠ *ñû]H{YÄÖX꫆$îwSV2X¤>…lf¸�D�Óü¯‚Ô–dI5R§“óSo…@6}Þ�Ú—NoР붬—O…~~„8&ÿöäèQÐ*éý^:¢|UŠŽ¶H¿ªW~þæ~Ã×âŠW\ù8‚ü¿ ¤é|ªfêò‘xKbø…HÖŠîùb½P@m®°ä8Ÿ'bQ¹«oOîÌþJny'éW³Öົ3uô]Zx JXQ ÅÁõ¢Ê¾˜$¬hϾjùZ#P½ýi$‰Òë§ðØpÁ4¼ Ònb¥ÝØ%Й%‹öI·ü?4,VôÿÎ vbØýü6‹Z–ˆDÂ:'µzw‘Züèº ó—8A&/+uoSÊ.…a›L/ ÚUs ·G1ârM0Ý -‹°ªJÜ8+ ­Ü•‡°ß�wz"ò4¸ŒŽ»å GÙÔY9EåÂŽW”y—£@ŽÕ Ëjøí2ö®ž.�¼Å7~AS nªð1Ä„á¦Mã;ôwéÍw/¨RþF#£FjSY �·Å¼HæNOù:l¸Á’8‹Úv~%Zãp¿O Æ`ì¬P ?èñÄë­§[ŽáS›£è¡äµ‡ˆGRýëðH‹ ”öRÐü6)Š1¦¥vø„ù‚·é;ÃÞ.d‰åi;÷—¶(Ï”ÍTÐ6üðON˜!œ&»Y¸9å$è`#Çšó¦“ùÃéÄRA´>äÕ {ÃNºòþ¢ ÓBu€‡ B<þÞÔ�|w·âù·iÔ²h$â�ôÕè¬�­ ²‘îÞS[`‚“Ñ_–*™Ú¬‚õGc&·>“ü}T8rïW7ô“ˆUiw¬�'åo›~íÝDG�:EþZ £Æ5jÔ…PÄ>{œ™ øöö73ªâ1U¼×S¸e˜AøÝà¶-/�üöÝ&†O‹8Ú³¿äÅÝêKz¨æEa8ççÉ{Ý„]=�¹X5 Y¢•ñzó{§å8ª'¶òÐG�C Íâ”#6ì¾Ä[Ù¹áÒzLLcùyŒµ¬-–°Vhq"`$ìsW†�WÌ/JK@êU¥Î¯¾ë.‚ñ‹yçÁ?ç ™oã(°ö™'¹e¾ è¿- Y »¾ß¥K<û�Õù-dã»snõÊç0 ãP…–v^@pHP�·].Ú†~iM”—úzµYa•ƒ-Ç ¡S™ÀKÛ>1[æÐÇìú##É ½È¾üLàL¿KúÊ]?Ö»³7¯+ݸjÿô:y')‚ªä>Ö3ÖVU[¦òiš;¿H(×HûLÚ?ñÖ ÕG݉ÌlãRâ—Ã0qwȨÇÇ£¶Í?}…îªN-Õf…ìcTì·\ä¯Õ3ºÞ¯¬X²Be/ vªaÖØƒxS¹ÆT¡œ@’øŽøßŠYùœŽfýOg�»ø/rVÑ}˃°—*Qh “á2„�V™M,>Oì’w‰fÉ%™{«$ âì~NŒ<¡wüå™ŒéÂûÓ�é×¶V¤b%ÓOm”…tv—f}“BÏ]›ŽH�>KÆ TŎȹNÂo“ÿŠ'Ô€ÆÈAð]´6.Ïë¾QG¢eP¤Áô=@aí“t€›ÊÎ+šöˆ¾¬øéµRâ)Œ‹ã¾@²áQ¾ð¤×%ꩊəГ— ììneÞØŠÇ ŽìîâQ8L}­¯-¾�î<–$Ã�Ô¿eÀÅVÍe/YF×[Fê„ÌËÑ«êe¿ÖÄâ(íºMx[,­võ§°¶%Br½`+»6$Iq󼕷w©7Ñ�é—ÎÿŒ c�ÇédpTdµ(תtb´uìû ^¿6òÑW�5"ÈH u†åùeþUôç¬Öÿ[½eìékߨÚI?‰®iúöÍo¶“CýȦ"JVÓ%·?à…O­�±Þ¬Úc\%nc¡M ;bñ®û]¢ËŠ­±ñ7c’€™æ*ÀÛêI2¬ÕÇ ‚¿�_j„q›©%‰©œFE{ä�šAÔ Ëxdy¹ v¿S¦¤6ñ6}3n©ÊâŸgÒ´˜_ÃÉsUóäÙµ¯DŸ˜_\âä>³í“.Lá oà˜B›±âuyýHU&Žyõ�ùŸ=C{¸›IÄ›A›y“/‡§žŒK/p Ó#^�­ç£ÎÉÃTòI%P„>¼¯ƒå+1,˜TÄž¬]Ø }ý¤¤ëâ«O1¾õ ¬÷)ƒ‘I+©¬Yp–í†~@R=ã|dQ—ªßŸj8otçñ°]í$Úù/s)+m£+Y,¾âcÌ¿ƒê|5!ZL¨¢îT,¼ ™ÃIb•ð2öš[釪nRÙ3 ,<^ÕL–Þóõy8%é�Fx�ýÔØòÛ[Æü9s±jÞì&Ð/Ù˃Û^ëGÂ0X’iè &�Y&0Ζ’ë©C†~o€DÐ?Ĺ µ®5ì º¡@ß›OLjæ(<Æ›U·!Ì2:©ˆ’~Ìh³Çf‹N•œzϸ‚£LþÞ!!‹¿ðϼp™¿øKÂ5ó3-�YŽ™Iqï0K…˜ÌéSÌ^%úÎþRã>ò­åŽÇãýv3¢Š ½Í?ôr*£1jÚW³ìÄœ"Þæ'‚¢j½uZP�?]fªÜ›zzGL�НjÕW…|¬}SŒîBvw¡ñÑ–ý:†aN8Î &ðÍžŠ„ó,o.¾�–¹xH—õyÚ½w)ЕîŠÑà ±H–âá_söP Z) O›È½�ªr‚À¥¡´ÁÍÂF{ßþ¶õõ…žÝêÏÄ]nëÛ+ÙyW~øo¤Sïxi[?;À�•vhx:Gz"ëá+Gæady7,¿zÐÊ:5ñ‘ùć{˜¾B½£¹^yíåwJ†1,ÿG×V˜E?ßÐG‡ó½œeKf¼=q¬‘•±órÒ×Á'Ôã«ûR¾‡xêIÛŸ�DrA+9ÂP4©Õ�/ëZÞÔ½jq`�ÐŒ� I>B¦CØËI¢“ a*+?DÇa ¯ÝÅ™2ÞÙÏÖPŸŸù?Gërc,;}|a8§r·S/ï%zò÷¬û@J9Lzò É컽‚d’6ĹIñ@ͪáñS¥#8gâ>ê¬}Ò\0P�?ʇÖ@\ÿÛ¡#šÅJ#Fò'Aš¾­SlvÀrã|®d Bu÷V d…^â‰Æ-Ëã³HLRÚÇDÎmG Í}A">S·U¨›¦›f„ÛLýŽ5è£X¹Ž ä>%d EAÁ—ô5:þœ�i-¨(­PÏøÇŸ©ž#JÔkªúg>ÉÊ|búÉOg=.‡â³Ú 9È"Zv¦ÅÎÍQ«ù—ziÞ IòÜp §ëw«A¯ÁÚ„PËÓGg¿dS¬MúeÉ\£ Ýd÷hUDrJ¬Z`]BPï4aFÿÇê0‘ˆQŠi“ø¬Â¬Qhk´ÞÐøsq°xþ2DìC�ÔfÙá2©ë˜ k©Gœ§K梁•Í*UÿîhWå‘=”àor™8±ÙíwHs’÷¢5)è~€ïz®tâ ÙCÓóGôä�ˆšó|ÙxÖ7£’‹0zËWRL{ä:’"Û×mÊeP*®œô¯YÊʼn_üò2Z˜‚’qU%wP,P3&¤˜‹=kÚïìÖ Ü;RkàñuÖ„K{•HD ì}ºøQК€´Ó"ÑòVq!äÒk¥@ŒåOüZÈÎ ¼—¾t{­3äkO)w/yu;%ˆ¢ÁÇøØ¸þ›ÌÖ©9çìpÎc˜þ›ƒ:�Ù<¶t‡µ¸5DSLL"§ý—ù}9«aË–ý¸¬—*ðÍúÞEù÷Úûwò“”�? ž#פs‘Ddô¹ £$?|£7‰ �³·;RKfUŽXœÁsgý×Rx¡:�­ƒ“žÿxË·ÕEFÿ,´.@ÌìÖx—oº£ÒÏl2‰÷d‹xk;$T·†ÖúEƒbånà>ÈÏSR‡[Æèb\^Z/˜ÈëÑ/…Ó)Uå{¼5. GRËXÐn%Ü"¸n—z—e'2�êßq®‚jAÕß_>ÿÈ2:}!Üâœ;Ö«é)à“�pLËÓ¸çÝø�º³e3ºQÆ&_>½0�`ÕâÌÌg ]nJYþn ºI�<ùæ°+²Ø’m`Þ'¬¸X{™ýʱ¤®i0Eow³£!«®lÚ¨LL=nÌÇ Qm^�!Þ·{õ½bryaSÉÄщwA'åPŸ«’ÃÅ’rÍ#"v/yM9&'·/ýFœLa§­ÁL5ëFøoQÜ�×[®éû(c Ö}cÙ å.¯Î�Ë|ŠÒBœúuŠ…*Ù×?›�¤,Ñ5e.ˆ¾m¬–Vôp^=‘-زeô‰m'šV@J½ìZö±Õ(Êu¹Ì‹�fgÝ©§¨ücâæa"t™xŽN( (”áŒäíÖb¦µ—·C¹ÛŠ¢§Ä0ŠÏ) =nUc_=ˆð”þ¬)Oq/cÕ¯Ãul•œOnI"y}õ}| 'Vûù¶Â©fÉkÓ ýLàç¹xqŽ�Ö<«ãïx oB�þ²ïÔ5Áæ|Ñwðº¥×uU^[SDš[#iª�v× §jÒ‹ƒ'þ£LnØ™aª¡ÇñG·éaÇ鹌ËD¯ØÕ­]½éѼ Ù$KüÖºiúëÞÙ‹­[Ht—ÿ:på÷J2"X¸£�©þÉOÌÈùt»È!óq:/¥%Üä)dº±åû¥Ã§*Ú×¶â«}ý®Ñãiý0ÃähìÎî®�aâ«F÷{hyÛÍC‹¾å§Úùõ¢X\q�É~ËýË|¾3¯Z�ht€¿5Hr½FµÐ�ÅFHc�àÉ›._mK;÷@K߆f(‘Ÿ¤o+#ÌÚ2CñƒÜRcë _�˜Î*}ê a¥øÔÍÖ˜jzAþ,Î6Õ~[]­š�ǽGʃ0Š­–Bf´…ó£d6ïl àúƒ¿¹Žz�êüÀ}¾‘e–˜ßÚÀX˜‘H_ bY% ¼·6P~�'1Í_Cú­ß3Q›¤Wѳoi?Y‹Œ8ëýœÂ y�o0¡áØHSØ2þ!ý3üï/½‹š0IƒWÑ¿Ð)ÒG7zOd[ƒõK0¶žg8S¯L6ÔÆ¨îq˜õ´û.^THù 'ÒéÅlÍúŒ«„pæ-²„~È3LÇ©DËÄhPD ,óµ‘í?bc^9ÓÇ8×)˜o¬)ì'Ö2��æã#ƒ4PÜcn°à6�$ªM2x¼SÀõ$ê£/”쌞xo>µÔ¯X%m|”~™¦ª¢¾ƒ ÃJôi)‡°/Oþƒ¦ïHE~„Û¦Á¦ùêa¢Ì)z"ocTˆÂ�­îõ‚�ŸlÇ‘; VT‚‡%¦25ÿI¿5´1-¾=¹}ƒØþûÏË;wC|ª5möo2‘FwίÒLµ€å+Ðñ;͈>äH·u]Ä(mˆƒÔœ+Àȸ?iˆâ/§;�^p6w”>y¹Én4×//ÆKf€F ;2x[Ý>F£‡¤´�-&¡#æ ðó•K¶•aÄažyB·� }TÿÆJL'¥Š~œÐƒñ+ב¢ðGá'rA‹_ð_½µfTnWOô¬S»{mÑ^7ß_¯-AG Il>Ç ÙtKeÚ‰Aš ª�4Y8n5â§Lî¼õ¯?NÀ‹jÑ`d"‰ðœOû´ÐŽVÆÕ-Ó¦´ˆzýM™ïU¿;/ðÏV5’À”§(‘ƒi&Õm>œÕ8w@[ˆéíi¹vn‡µGï˼ŸÁÊ7GmÕ,K1åIrå:â®h®55²L‡kD–{D~I? T¸ø¬y&ŽÌa«ã;“,iÔç>\‡È«·l¨¥#G{y_gVu¯J8eÅ„µ¿Mžìw°j ìû¦Ø¦Nà9`Û*‚•+õÐé/"@uÙŠ.6äm7žóY½þ £¦ -¿5ýHÖr£âJOª[ †mÐ]E:ú5 ¼Ñ1üËKGU¶°‘Ãên½Ó3çô?Xq'ÎW‘W›µl°TOÚ²F©˜3ß´f¼b']N:[-»kÀú\ñD(𼩽Û5�Îà”-¢:2X‰Ö¬É.‘ ¥� ñ}Ê©-Ú ùx`ù#{ Çü¼Ζ²¿2yrp{_jFf“nê.1ËP¥ÜRr1xéP¥ÜšcØd€Sú`Sˆ®+ÖQ�‰Ú›ð�fœ½_övþö›ÀÁ|<^žqjR:ðo>ë³ �ÂäA±²êúq¼û³/éôJ QHµ>¤K2àOse”ºøœ~g¾F9¤r‰ß‘9Ÿgä[*`7ÙÿN#lôtÇ]¿ë´G%�`}gžÝ;Çd_Œ§ ^ƒ.ÈPË“ÇcTa@8Ã/ù�i ©úùý’�¶çCî|�gùÜóa_oËÿ´@g�ëŒ3k°ÉÑO²ð,ûrxý´Ëš�¥Nøá™òä µµæÆ÷ìø÷–Ê�}_æ<ãXG�»„˜G;²Î�å�§qf8 ô镼ÎÓýÕœ9€9ÉjÇu7¦ôŽ’åùL ŽÆðÏF1TØ]Ÿ1Þ¸�’~åeá ûÄU^á€Â©ÛÜÎvJ ÷ çqh»,ËX Ç×è§Ö¨l ѼÇjÍÜ„å4,lJ5oP>ÞI’¤yÕ.n÷º”-²mHeZ|íÛjý~˧q1) ¢Èç'RûÍÉÒYôâNë#JªÓmŒ©§ÃSWä‰ U�b[ˆaÍÏ\ÙÈÉ#mÃwŸÚ›FôúDŒ®PlIqÈ•lBªºf8Á×% žz·ÄeÉ{MÔÕ{ÌtR�Ù#Õ¨—Iô�¤�‚¨�¨; ´Ì&{x¡)Zu›ÎÜñ¬!âb¼OD¨fçö»4vZ4þ¡ßџ˜b îw¡j·þWô±g®�ž²t<êÓ9•R÷KÃ`iä‚¥,o¥Œâ Fè*DB"³–�m=&‚¾p„F�³Ÿ>ß,ó2üÂHše€Î`UÍÇBU¢ÏÃËýžG!å§“sƒ}´ ¯;b·(»Iþ4MÕ¨lv"L°8¦Þè$S‰ˆ½J\äbKª/jPA»6£á*8Ù7€÷ºúM|«q–U3zg-J•}SÝÔ•äùd/Üï?ªa©ß+¶f�Ï>tÊèq HúLóžgD1º/+$#¾¨´)K ›h»r´Î«îJÍ6ùœø)Ì[¤r$üaJêjL÷¶L yc¼Z‘U†ôkª¬dÞ`l¼ÍùüÙ*G”yù奈…ò"–WÎy)Ic¼ åùPfB•“�6yËtöü{‡lú~Ùì1÷bÍùÌEµôhZ…Ús‰1†uC p×ÍŸO—éê¶oŸFã Jß¶æ Œ6$¼-÷~8þíÝy¶þøpÔAÿNA*.•šKVi�;4ÓØ&±“+ =öX'Uw"åÁ#(*—Ø%fÅ7+  Ý×6ÙÍã {ƒýö^ Uª|þاK‚­÷ö4mbr^°ñKá 5ù–Ð$ñ¸š�7•–(æ\Ít÷׊‘mãeA5i�õCbn«Â"åÚ0-%e hNRŸKØè!펜ÀÍ:)9ÿÐT§œ£|£²m÷e7 ÿã-ó bVð™‰@áè\¢¯ÍBÑ^–7àu9¹@õJs}Õá3·/kî=ÇÙD"%V(WþúíåÇì+7Ž++G«2årµ¶Ò¨Æu×^ì¼ÿ*ï•ú´ƒãåP�_3Ûè~V¸Vѳ½cÓ�ºV´ónìLrTG×çè²1‰°ºt¹˜ 'Yf+g�ˆUbßUÝ/`‚=šÞ!í²F±bBØ1» óætgè8ß�”© ¤rvóX|àTçºdÄê WÿX8¾R :„¸#.aVx¦GrÚž^(“—4ZO“Ö¢ÍXÌn£rc½~ö-ÿ}ÂeÔžãö·$+wË›eñ¨HJ  Öb+�ØÖ.ôãžP^gݾúMŠÕýú™v~”ÊLü‡½yuÛ>‚²íJš%ëñXÂÈ+­úÚ@Nu0reN˜ƒìÒ2kµ<—1Ý]iÍ9Náாaþ.Íü!ÿ4TX)èÞrf–Jcþ¼¸-á,R¿þXðFA/i5d!¤pë:¾WÀ=½ƒþWpñI‘A,õZæè/Y–Òy£È4åœve|T¥v4î£øôVâ¤e€{$£¯ðA�KýBrö†P,ÔDæ _ÎV<#ŽÖöyÌóblbŽØ8Ìü!áæ[qÎ ôáj�ffÃŒŽ!á�x ™¨­ŸEYÁ¼´„Y.ÙQH9ìíÕ¦ú|=T{“‚øÂí�Aí;q£ÞߦQË] ʶ�iŽá¯º… ÌÓf•iŸg“’K0M Õu�|2xw?’gP:æ]T"‘’Òþæ´¸ªÝïòÞ:n}«•«ø1@Ô¿ßTb<~L¶¼-PNÈ·íÿFú�4Eç’vë©­é6¹šDÆ­.0}¡µ™’Ÿ1Lx£*AÑó@ê’Ètâª8ðžó½ã ¼Ì&4­�9—à•ßÈûªnVºmŠÊü[ÍL»¦—Ò{º÷¹hÑm´N5d•Ô"¶½Z—t6•!zy¯Mæ2pü�žacB¨Ò8`¿ýèýe¤.‡#"zïÅâ}£B’È\Þk]:»ÕJ•�‰ˆÙzŠRî0�¥ŽÇ™;IgXø—/·³ø§hÀkl#™‘—w1â�M†_š^’ú7â¨kSŸY}ÜîZƒ‹dybK¹C¹±�ïÏ*²JD¿Þ<ÃZv%<¹/â¶›(Ç{ûbNDÍò° xÁ…·ˆSùfõ'–4©´“WVîÁ—'ÞË©Y3N0WµÄ£åÎl‰À-‚•¯�¡­/kþ¤¥\€¤¸<³ËŽ®hiišã3Eÿi¹X³FZº„˸ i}B{Ο€Z Šð§i•¼*tçÃ$ßj ùÇïaG+Â)äÕ§Õ–�_¹_UÜæmèA¼ýÃÏ¿0Wn@ç4Z昕¼ôÜù„±®±ö@!^>÷üƒ¤Ï$t7êf™µ“):ÐsN³É U.4ûbµÅåÈ„Çßj°`Æ)ŽÙað4æï™BE6%âØo˜K§—¯…Öí0Öbîû&ö7\ó^ri™ž%žñóqèÐ’ËÌqÉmµEr*u¨]K>�´ßHæq¡MýiØr×Öí+t¾K®ñ_'vh’»PnÝ/¤ÚÀSŸcè^Sç¡ÍÓ†éA�ïÅûòñ²^©êéšQÍà'öYxÝ£L7´A=´ Ù÷VczígEô ]Õ±-Ñl5 ×dÃÇÞ·t+ÉÌÚËb¸š¦‘&G&9”8uÍxšvã·mWv§r¶õòIò ¨M%ýb�…5'¶æ€JN=Þêdo x!Î1X3mz¬÷‰Œ~FÉÞ‰‚qÙñS\�, 7¯:oƒJâ»âbvAfÒ.WÞ>„Ùª:vA‡³1úò0RÆž91Žnà×IŸ£f1Xâׯ\µI¡(¬¦Eð§e¼ŽÄ]bº›-£iz;, ngëo}I¥�;ùòpuk]'²:ò¥Ô­Ü-ÍN ãBÒ·n2¸Û> ‚ lªñálñÎÙß>ž› [ÍŽŸ‚Å‹ŸJžA>ÄA¶T¥A.¦"õ»sãûrêöÁ]?M’àþª:�†„¯7‹f5 …ѯ‰JMýŒ² Œ49íV.œ?Ò¢oúÓ·µíRÉîãD }ÀÐØs¢�à)³^­µmNoGd“`~Ößï»ßF© ™­{[ Ag¹V×|_؇«ÿ ¥�ÑŽÒu3G[°˜Øâ ¿u~´�Û¬àûl÷{X™:û}0EÍ?˜þÖK@’‚Ì9(·�áo÷.™ö›26¨oo¶E5U-û䮇ˆ^,êQMG ¬åç~ûس÷¹¡þ4Ÿ²¿ku'òJa9Z!}/ÒËzf1êr⊕¦2ºÁ[¯ùÁš�Ïz�Ôí6ˆ[DõõÚ߈²{‘iáñ6—}€ÌµP�Ó={k?O£ý×KNe:5“žøõ¶FD¢$þ$esÁ>2%åg…ùrÝí®ÌÇÚõŒ^�ᨊô¾ 8¢È�2¶å¦¢Qè l(:>Aã>wíÔ2ÍÔ´÷0ì8º«�Äæ0æä,êœTN/K³NƳwºèlw1«è:çWÚ¶®Ef¤šÈ…E”wVP[´sFá[»)ÐégœeŸÅ‹f¼÷»›ì¢ásð¸àœèC¥F�…LÁ—ç%mÀ<¾lMýÎT>*Ò÷Û»uêÇ&p"ãÄPÞ“Ïun­ã©Íز‘_µr5›£j’t;Ђ2Œâà_EÛrµ~–5W†£×dÛMXïà3-¾;Ñ~!¸'h#lZ4é¯0çìØ²ä,rÉ2öÔ‚"µ-“0€UñLöhŸ±,“ýÓØÙ¤�¨.«ÕRÝŸdâÝÒ"xk@ÏŒhèfÚ–òd¹�Stt´ê¾VŸTrõêáK¥‡êCGücŽA´«Õá|]î4ýïÈ?dK1_�-ç­šÔ>yRƒ%®Ú83‹¨²JF8¯ìà‡´cz{9àÛÅ·‘xtÑኧ™w%?záÌ­Ã2‹xÎ両‘}741Yɧ~üâÊÓÃK®ÚV�ÌAä+w�•€å�zÕSy‘|‚xJ·Ÿz:L¦ðnzmAJŸY5ë<®A°…ôÓ¨Ñ^·Ä€I…1—:üT‘ªÞßF¾=n.®ÒîÀ°*5Wð ä[Z³o•¼ËBÄѹC¡2Múôva’¹z}il`�z(úõA4%Ó5³0–Uè ì¡øL¤N-n·ÝÖD<{ãá9Ã?@4gª04ÌÓ¨Ü5¥¸sØØÈ.Svü¼¤On…¼ —¬ØÒ;;{Zøù%cçi‘Åù&�ª§û¤iû~Ã"±E÷ÄœÀ–-ýÜw8½z?\¬¢a �ÞB6ñ¥Z�‘C>#%H k8l $šåþÁ#‘S`æc®5VW@nõµà±•ðèo%ès§<ô8Ü>d?ÙKªÎÂlüF'ºuß4ÿ'CÓ¦pT{�,ï” ÊXòÍ—BœÈ£ìZ!NØ$Èš—JÄÚ*ÛÀsÖ~µfF2ïÌ +b‰~«?–‘³û`àdÁаQZçÝ Iክ͆àþçÃ}î¬~ÿ§«_Ò¬3m½¾OâÉšmË_¯ÕSõš‘éÌù骴¹çN�f�Þ˜fô»Ÿ »ÔìÈÐcâÿÄT4Q°çóçç#É|WÕì$ª�ZçèªE)ÞДÂ-.#§ÜªÞ}äÂЖîüñ‹ïò�kl5­%(‘¯,Û1{cÙïíi‡s¼ pN†† cÓeÇåž “šŠð£níŸ3lwµeWKú…[w/˜®ö–9Ý AŒ”œñãÑÑß;4Ë8˜*ê�É<l ¦%Òsn~\\Ós½â)÷rÒzwJeø��ºoÃŒ¨áeI|X÷DfBlÊ b-†znRnûq•¯ºÒÄ]tdž_Ó¨2ËoÒÌÚ¶Qmƒä›&Jê¨Ã0“Üõ‡Æ-…3ð=‰{ÓÑ@³'ò—JÛÅ0F[{é•„2°§+µ Ð4$!Iq}?x6:‰gê(P¸lãO1,ÜçeR?EkÌ .'}2-?¤XçžçòêækÆMR•’� y×óæNZ÷úC´‰çå·Ã"yü™~}]ŒL�ÆA«è»î¹‡91±]8�B 'Þ­y äf vkÒŽ“\Q“Ï×òDwßþ†›*øUº(hŒŒÂKˆS˜¦ÔP¥-:QÀ!1µ¾�ŒàV* ÚÈœ»¶ zGÎ Ú¥˜‚øx˜åŸÅÉRuŸ2á,ÇðôöŽ-–kæb}á·?ãj@o +Ê¿†ÚÛòi](2Ûì�òëyûÕ¯G¼’´çR#€mhþìRüy·Ö{5G«îœ7îg^^„7 $¬k<öOØf¤-AN.ÅY­dÂFÞŸŠe^÷ðÀ‰$ ˆöýÒ|g>Ûê7Yˆ'`6ÇE=�u opw”ÓÕ^<™}x-ÊÆuöÓz^x“å ZÝØfW%Àï�˜²ÕýÙžt©ÝQjGȺؘ›÷Þ0ÎÎ^DD$[2§x6¢tô¾M€Ì¿Mö…\ÃÍz)býV N1»f˜ÚÅ!¢!=¥ª³ˆ"f`YVÊDÉ|´%¿ç%»UB¯?|ÊXkœ¡û;";ñ9»˜�—̬ٓœ*ÜÝ…€¯¥²qb´µîùp(#sÕ¤Ö§ýÜQü;nx89jfíK˜œÝÙˆ3?åŒçgbÓ¾xlø†W˜ôRªg 1ŒO¤dœ-6±÷O�ÞIô¬iyÁ;` +—K»ˆK¢¸™ü¡¥Þ�R#öïå°²šyÑ&^ÿq5:‰Û´jªm?±˜)Ÿ©]ow9ƒ´�/vœçw²ØOŠý•9åÉÊLwÙ˜s>È�mY�¤,Œ(\·Mä’S�8ÅތȘO 8P©‡TtíDD•)‹ �«)*äÈ/øG|©Æ˜Ž•»7›¾00@‹¾�ŸU—·É&"|ë¤:h6å ˜©YèÉ-Bj…,$(Îs(¾Rœé‡{µˆãð/^(à<± ­ ÑʽØýÌì†âß‘Z¸ö­ŸåÊ7õeÀ‡áåYÇ ‚E*A›÷I°£¼jžê2E™‡ñÜ¿óýøèŽŸUàÃÖ«œä‘z‘êc®Ië_çK<« í�Rx¥æ’iÄÆngÉM%ºj­¾ã5JŠ}z¡ÏC¬¿T+It«+!$òߊ©!¹ÓÉ•몂?éµ0«wT1LBþI`áA®%Ôuhçö³lTúý~1 #-/$aU‰ñW5Å¿X« µ�bø’ªî¤ibDi%(¯ÞEs!XzS Êy·v[ռޝüÝe`r�<³ß�¬ß[D"™ €%j,$I:ß"4ù#žýæ3»Ž3ûu;5žçàÔJ”¼å!ß9²G®ìm!5¥Ù;ݘ± =UÓF-ì-¿u͸g”oRiæSýÅÙ&N.¡¢³*y–(³yŽÿæËg HLÒS®K ÕŸO c$ðÞV Dû8pFmœˆ-ÍÑs†iIóõ²d‚^žÉÅ%å÷>••ÉÄL{ ‘{߆½µBêóÅY"«ìºÕgb´æE4ðùµ¦ß13¥|±|d³¦��7hk$ßì^�f§XÉçZ>î™Iüâú¸Ž¯LSj€¶(UL—‰‘¬"I–<üïµÆpüäˆÆ$=&~tˆ—ŸUö�ú„ɤ¯Fq Q¥±÷‚-9·ü³{,­+"„N~‡Ä–@§O B-ä¼ñ´ù õ;U"ä#+R46xÿùŠ^¦>ìóñéU9ˆ£È$•z­¥µ¥:v]' pP¼äÄví áØyÞÈ<šf׌µ¶Úá>¤ãÜR/éP8¡{ bg',É5Ëïˆ÷´Eɾk¾¡fîF÷OeA :Ê"«+gT¥ž¥W³½«å±9x¬>æç¥„Ï… Æ^ö:/©ÈÁ·x=§Ï“¡to?-ËS‡ ñ„jCĹãd`c j“gàºu«¸ê(øÖòDÇi­ä¥ó6˜ÁX+¨‚-±‚˜ÿ¼’;8‡6(©†fÜ„#ó†NHŒ£=µ„Ïjéº"xb1oèøÒubÞA»… emù×›‚¹sùMG{<êΫÁëí5h*˜o—™MìuŽ éh}ÂÕvídwQ wcqi&DBvoðÐâXè¢Ü§*,¼pF�‡È"¶…P7C¼M‹GŒñx?èÆ�XœñpoiÊ—ë´ão’Oü'Bá`_6:ÓÛ`÷{>OJ÷¥á¢-¤X¯¾R«?8™”÷ÙÝx¥à{bÓð*¿FÄüQ;±Øc�};ãšp«~òÒ ãR«¤áˆÌ Ñ6üñ~tj!‡v÷¤êNBêûÁ4á9p9T.0V÷1nŽ|mšÌ™3Ç¿ýlBØÞë­q~"úfm·Ù‡· ø ä…+—šžÅ�ÚÏpLï{þÃÑ>­Æ‡­ú+3ë†{½BN£?ÄÓÚÑ/¤»­l´7rºac�õí#¯Š‹õ˜§|=?ÅÒù¤ž³ä“·h×5WGF–±UòøPó|X&xBÀ�È�óÏÆx·¤p¦¨Ìˆ¿.œØ§Ì﻾ݓ^²¬>8ª8-Ÿ¦Lg:�újàD3¨ß{»{Gápå2'¤–Ω&.i×*tM³v©âõii-W’„a6͹ˆ�º °šÚÍùyH›ÔzŒûÌ­*_”mî‹î�Yi^*5¨¼+¢ïOjоŠ%YHU¶úìC¾ìdånsU@’ koO¬¦˜mÿ䘈<ê»|í-’¨n ‚R€Ldg½ncáú?=4ÞUg‚_÷9à1Ž/†\^F­ˆØ"'®ðòTA„&¿ÉËM\3úÛ%«Ä¦Åª¿‚Ç¿ôñP÷›PËX…­Ow<ùT©@%ÞÍêû¶TU·‡�FÃì|„#—Ò%]P›vÞ³ð¯%w ä|ñšIu7«ÿJƒÜ}ïùî ¦hTÑí( Û%Ù?Áã`K‡„ÓÇQ¡èz_ªëãóV8ƒRºœÍ8TL5›Ãöv±‰ózWòòT¨:ûü%ï&¤´™õº�DwZ:¥Ô°­QÉ÷xãjL½þþÅNÑÉfµéö@)þ\°7S†Äñƒõc¼k� á¨�áÃ*†Îª^ÂYí'ŸOŸÒ(‰£Þ™mp„Ù¦n>7-Œ¸Â„ú3Â"»bÓ•ƒ-Êî¡<¶øx, PóHé(»Â¥â¸}“‡X‚Zë&/äo?k~íÿîüF�Ž7Wļ‘eÅëAd¾›µE‘L+†¹Ú ù Þ§8�–¦}¹eòF<|Õ¹2)ðÃb‘˜Þ—UÊ|‰=·ìËŒ/bÕ°€Sù&(ŒmŸáäušDŒM–Ò»|áñ'4Žvg¡-éí4C7{?îĶîÓ÷‰\´‰„Gw7ߵǔ r’$©AËÓNh Ÿn Øt<ëI�õÊAú8Ž×ùcžÍ4nbþÍÏRÍô¬’áÒ[µäbMÁ (jP\ÖAë Ì(Šj›�:^†dW;™�Ë&‡L& ý†ùí‚ã„õ¡è6È2c$v"3YYNb‚BJ‹Îsi}éêËxW$Ìñ\£Ñ’Yùó¯5bâ2Ýæ×"^œƒ?ú\ÊÓÒ"å¢�|!tò–UU_®bKI±÷¥âÖEÅZ…�%.OŽ{�±ñx¯AxžºK±F�d1zþ Š‘åæÚb%l¨ �³[¾ÞEº9:¡ 6é™J�‡0R6Ø#†Sê:±[_Òààá4@¹3ÀR\¿—D˜5ri»”Uš% Òµ3~0~a6ß×—¸íh«�ƒí–í4a’i�É‘T´‘=ÙK¬R0SŒÖ)õ,#J…BQ•©5¶£â{+*2àdà¦EÊÖL46„¡a@ñK‰.ÎÒÅ:gâŸ/s]"lWp3¤gÌ¢Ö O’üÄXGôǕۘ„lXl�ÜêtØ™<^1Gª> ?tªæ‚ä|Ïâ_JÃ!—û�¿(3~±çÙÓ´2z‹„JEF¶¥xZ)„*Àà2r䥴OÉ}“U5”‡6=¸f¸pƒ´G©1ZÁ!ô~.¸JþŒç›�õ°Ucn½¯)Ñ×bZ0òýN¦‰Dp …˦¡NØGݵ¸�øøû÷ÕÃ¥Pò³®Üür¨öö€Ì2€¨|/Vø)u€/ÛA™®oâçóûòc?Ƥ¹!¯Àæ#S“¶ßɇ’`QâþÀë=tÎ-1™)0þ*T¤ûnšf`:‚]çÝq6@è)ò}¬;ÉŸ¹3ˆp�Í>ùB¯ž�y�ÅØéÓ ^€=‰Ò’¿Y•ðИa=Ší)e>±ÝŒ¼½7«{d`>yEcÒ ÄôëR¤pZ�–÷Ì{¡YˆL´ Ÿ$õ¾}¶&¡t�Ën7�V›ç8=}ļT¶Ý¸›’lŸÄp¹îÛ¸Y7êf/ÈV«„Õ¸d¾D¯¹ù=Rù꣖÷ª| è«äk‘QJUR$1Øæb•"0K€’“wb™?ºÆw±”@�d*-˜—~TïOøs>¼}ܪ¡6Å)3nlyÓÌ„tÛ¶ Úô„SÁÏ6¹4Ô¸Þlf,;H®QÎ:A �gZ¶;Õ~µÙ“lˆÒU¹Q1á¿FÙÒƒ˜_¯-¼ÆkyB±¶Ð[ã´§Ýh3»öÞMo»â1OjýEú¥ÌVµŸ›µâm�ìäcO'Ф�_¹²$ ~|g3½³Àmpö ËÌ)1ÔqDb¨æXÞÁíèȧ� «µ×SËÓƒî Õ Õ¨˜Êk\ iœüÏ ¾Qs’(Î 2n£ri`È ô¾íûÔ“ ôÐI䛯 T à�„™ÐŽ˜Tôç÷CÏWDšmnr†v`åÐcXžvù7—T+êø\©ãà¬(¢Áéåo8õ~ã–NtO/ÍÉánà=•¯NU„T=gO9+æŒí8?_nÍ’b‘_ü"dî(ŸF-G«=DPh^ñ‘;N›DÖ•Fpo öü¢s¨Í‘×Òm:Cé² qrÒN¨ÈÓÝx­�÷ä\¾à]b§ìõÃE`½f¹'г- ܉v”£+{â6 ÅÄ-yç¸oéŠn¿Ü/ûç+”oÀ_wNDqÛ`?[È£;G†>N»>yêtAé9-RL&üyûeuÀbJ÷¼ ò¦y#ÇÙ¬ ]U•°’ZFd I”L³‰·ÞIá/¼’€Aª#.ëðO%.“&*~�¡Wl3Þ:xƆzEm÷ÇŽ™3;ð$`Òã‚°~¾u*�V2ãéÐfu~ûWý&IÝÈíTþçï�:O6>´~÷>$õŒ¤.Ö�g¿–…ó]ÜðÚ¢d\¼—<äãF Áq˵)£±!¥]E솚h›ªˆNM¥úòžÖþd²š÷¾Ws;Wõu|´š“ÄV06©gÑ.%Ÿ!j«÷r-bqÀµŽßÒ%@Q�)5?0Ä쿘mÑRÄ)ï"€°Ì" %�7e!ª�{ŸZyÇ”&sÔy+-‘±{ŽÙ¹SÎ~}ôýI¨ˆ†@®yÒë�(­@º=zP7M¦Üm(e¨üc{ êN±£×b�&­ ³«V&@2©^½Qk€@4Žb³r�Y€ÊÚlÿ®ÓÇÒy¤“£óó§.Û×î¥òÞj_Ú ÆBo£M¤³}Ë?Žkn¯[î@“Êë”K®R‹FÈ£•2~<�0*\á»Úº·9µí·�µ ¼~vèÔ“Ö+mµpe{6Ç �¸F?œJá[ú<1é~bZÓCLü>dTsd·ž›kÜý31^l³tš3<µåŠD–âx'c `îÆhFívimÐ<štpñ,"­,ÃêÑØîÖ,ÏNºÐ‚>TOŒ­×3t)Ûþˆç–âB4ø³çðIŒ6é)ŽÀ¥}=%ýûJµ ÷¢�m¢ƒ¢E™Í«ô4G7É?Ü6[7ý’“ò$éˆ75JwÍp™9^KuívÏé'¬CÚ{—ûìHþRÇðRÈ¢áŒ{Ê?9fJ ]�qˆµ-퇀û#ã­yæµî——¼#úIÞñ?ÀZÁ?FíØÞú?XKãtXá”!³�Y3¹ØZ|Ň%‘ýCyÕê› ûñÌlÈ“pûA:p1ÈSøý?ú !ò<,(È»‘P}\•HÖ>Œ`Ô²Ðh:ÝGÁLͲ�'í~¢ÜÞ†þCÿùW õtü“â*YoSGŽT ZÿÙÚ<“ËÒü&ƒƒí÷ŽÒ+ÑY!SËîî XõÄÛ—ãÇߣmw,�ã�>Ì.ÓWZÆi˜Ïü´s˜Ë‹¶uûêWzuÜpÈ@XìúÞ“„¨:ÿ–÷:Bè�­O×vÂGž¼!nÉ(m9F­|Û`>ëá;–Ðxúãî[ñ橸êdóK”]«£¹MG3°UN­�è¤6󡱪h±V¤�ŒP¿gT?Eyƒ¤e7Íàú4—²´)htD47�„ç6ry]m®àÊs*¯Ò ¸‰0Q»¬†©ôSá­/øÞŸZ»1´^Í.¨dëW¡z%éróV?ë]&t®i¿Ö“áhR)ÁxÛ㩟2ÒZÂ%ƒóÌ› ¿ðö,Pm«K`‰yÐèˆ = w_‚^ä=Ðæ�µ,ÊÊ{Ô: j¹‚ï ‘ NKvKÍ�–+Öæ¾¹’¦¹wá�r1sJ–’1ˆcb|rqؽÅ @^�Ü­?\ÄkÞŽÊpa Žî,ñAðlN—×£J¹- ¬Î2YãýAØÑÒk­Ùž]ÿÍ—>�lxõpeG3«ÝTV]Î;‹;N™R:HU j³Ý¡eÊ+‡šÀ ˜¿û`û#¯8„Ò�<]O=Ý6¢¦·\ÌÍ‘”…#eM•�”{9O«0æÊaå0Lhs¬MOBó·pñ!JFr{U‘lH~È{3ôšõP¨Ê×wL¶D1âòÍ‚Eé·ÁQÁ¿¾Éy@/fG<ž¡ž#§«îž¹v é/¬Ø‰x¸”µ –ðx»4h™ì>Îü Í`ÎüKî&©K¢9M½nã��2äjîo­r”fze=¢€²C4î^áa@V¥(ù ±ôÔˆG¾g<>¡ì|Ãþõý_?™EaÏâcZü}á÷o=JˆWTœï¡üç‡N|dŠâžÿ%&1ÈóùfÔÿüÌ€0Ó”Ùcþ âßÇlˆAj—?¸ýIeTwhêóÇIÿ„ž[1ˆE÷«�ÿ�0}3�£–›ñ¦S�¤'jq„ῲãA¥ _˜«üÏtžclæ�ˆ:²•ÿ ásÚ¼�Æ/]ïþg:µøP)„0Iûsgž ªZúȸRæ.WðŽ¡¶Ä â? ÄärØÆ“ÿº‰uÿ%è…Ï\£“`þ^¥_’mçå-Æx¶�ê…veCîôéùJÜ™e™šö?ÍEÊ<ô}Òý¬2a(1€àªŽñ �J�¯¹à¸¯DK#ÿðç‚ÜÑëšéÁ™{üˆ=·,fþª¤:_æÚcXÕd‰Z nKèBº|hï;åt¿ûBÔB°gC‘g"¼Ú ‡Ü~íÿ±êtÞ�ŸW¾Ø= ‘ü6\J` ›YÐ!ßvòôèö�ûB�Ý—§�÷wnƒxê}¤%Ñ*™0÷øþBú&1²À@ªÃXì…¥[ò|”ø§"1§h<³l/ÞÕE©©|eùG·ÔV;ÂqÔI´ÿóþLÔéNÓÏ}wÖóã%¼�ãn¼³¼«™¾\ƒüön ÚÎ àÐ¥]`õdÉ^±1¬h‹XšcÊ–Ђ±ó­x\kÛƒµì‚¶òÇj ÚÎ�‹ÒçÑ¡³Œf{�ãVY5läõvÉ^Cºuk%€×ÁëEá@êYx¶AàälºÒŸµ¯¹�ÎÇdÏûÈC"j¥‘tÐnÖ<Ùk;Ÿ‹©rüAVCÏ_U“7§ùB–ŠÕVÙÖ¥�lå9oP¤ Õ|ÀÑþ›ºäàü€ÓŒÚûçÓNãXW­z]‘®ûïÛ�>”½Ôq_ídÐ;˜ä´7_¢9¾*<©ø,UÕAà� ŒÓs'#ØLƒ�øŠ|‰Ûi>ýIÁ$êTpÖ#•n�ÎãØ¶ ƒ nå‡B—¢í÷'­°Q�%Bó†bŒò\PØÁ©¿nø¹£Æé�EÃMe3oê_œMÐù©/ran�Gƒ…17é3^ue}d¸%ŽzQZ»Q°_ô„|R/d8§I^5ƼŒœTÃlåâªíõЩ!¬ÿÚ–Øÿ v8:?FE4Þ–ï„¿ùh™8^ŠùˤŸ�*�Š€¢ç¨�ÿoN†z£½ZÓìˆ~¼«Y]+`5çëO%¨ÎÚ^ãc_òƒ¼¢ÿ‚¡ÜÎ\‹‹`wLO‘”¿©jž!èÞ‡l‘ÍÞOƜއn¬‚aJØøI"çZÿ»aDèyíÅø-g Ó½’7ü^òÇûä5FÅŠyI¹$ÜÌŽ­ô÷�Q„^;ÙpŒ˜d5�Ìúy,Ñbëº ”9Bðß=B°tRmìˆô¤Ò;$õŒ €Ðýÿ‘›R£M…)þ÷r’$â2¾. ðÿx÷÷[ä¡¥3vqí¸L$ÄŸ¢œšl•´Ù›ÿPKë©RDdL–¸n6÷8images/img2.pngm{TT]Ô6 C Ò9ÔC‰´”ÀÐC·ÀH)5t‹  CwwI %¡ˆR‚t Ò¡  ߌ¾ú}ÿZ¿ëЮŽûž³ÏŽçÙ{ßX= rRfR<<^^#ž¦ª’É}ü�…Äót} Qœ1„†nód�3�k¤‰Hž¹]<ÏY˜$‹]0« ®úá®°aC_U/uÛ]U·ù+|¥¾0Ò*’˜ËŸà{¶ç߆dV†²v:êwF>|øp8Òá°Z˜»ìþsXøuÓóÜPPΟ –GòC@7ÒßB· ¨óç‚?t}{d €þ¹Rd÷l�Z†-miDðÿ\r"¿®æü�NêÏðyÌÖ™9È=(¡(‹ªÁ︷”ÓSq9ºöÉÉÅ è¹ð[0ÇavÁÏ]�ýö�þ'ô@Äê5P�ú»üeÝW'´ôÝÿ^éÀm�xÈDíp­Ñ,ó!ÀÅù6ÿyŸèÏ'µŠ™­àûbyôø©ŸŒN„\XËeàŠø7'áË‘ŸƒÇУÿmfH»˜™B§½×Çöz…ëûãû¥{¼0³;r. ivâöƒŠ£®Rg0Z&5Yr~Ò¬ozVs{Fàͬ«äï;ªTŠé)t !÷'ÿê¨ ¨ÅeK\!a=æþOOxX=Q?£±þÕj’dÅŸ˜í›ÿWWÜ¡¡¬9À@†î¿‚Š%°Oiml½ƒþU8ˆÃ–Š/×­öWÛ4|‰0IpN+»g­œ"¶péï³_�ˆF¯ví}%•ŸË‡•¡ G‡Å´Ëã»LVŠoò[©Ýsþ£´çZÅjW’ÒB_Ýc˜],R�©¶«’È£BÔ_œPN(€»ÆÒûÅ}LËû½ZûLX<˜±Ø-êž ~Òõíì”U‹t[¦8<½WiQãtãkÙ½–’ Dìwõf›} kc|~*lT“×J|Z¢žÛ)ÍÚJ@ú%úŸJ”1r£ !íK»b·&®6+ýª²ñEB=si÷„«®¦q‰“/üUÍöo™‚"Eõ‘ Ÿ�ýSú¡×˼§!‡U¯�êQÌw”Ñ(×Uw½úRnú6þÑ\Pƒ4æÏÓYÀ¡½®éçl+/þÙzö<1c÷Lÿ3vA¬©Û;è·²ý=C.À¸7ŸË­þ È$ � Rò.mIˆç¿eÐb?º¨Á~¼Ö#'d›�µ ¤ÖF�vxt‹�€/îôpt¼Z̲”}’L~Ë”ñÒjM±*vú�NjÛºÇyìðœ÷´ˆ»O®§3·É0Ã#�ú@åE¦svVíšøÌ@Ô©á?­û¾!½Ñf¦®Š`Jª+–•Ó»„]õÕâr �ª,ÉfÕßV@öE]¬–Œœ:³øk8(†eiÏ=¦y&ëЬû‡èŒ�p© ³Ÿ­4ã’q#¡¡]8 CìL~Öçhf;˜õLáÏ€‚ûý•èö@ÁŠÛÖÔ/ûe¬­7¶«µ±Vó8Š¢ÑÁ9_�ÞùXíE‚¦º¼(ë»î}‡,;HlvUõ9„Ð~à€Èq&×€T'©öç²ßÛ¥xW¤¦ 7-3')t”¤ú‡ÉRi|Ô,©#ч#ÄJúî5èpˆ÷ým«–)�ÙÔ®Õ <·/Hü*|¬?t¡=W_õJr‡–}±)Èéàë9…/k¶ž·Jðâ÷82¹'R¦n¼0ôzù�—1< U…˜�VãlTéûé)(C�w{¡ŠºRˆFu(ŠŒ/kò`üiøŠ`*ØP°´û¸öðÚf}Éú« Î�qÚ/H¿»&óßôUέÔiàWðÁtþ¼5P‡ªûzÀ`¬¡öˆq¯;.*A±/¦Yi‡rm€’œÂñxçž6ÒÌõ]ôC�7}ÁÆŒÒXR[ÓШTš�ìeü7Ž€-n�-ÑÀ! èÓš `»gMÿâí!|ü‚œn_v È“ú"=#í‘[˜&¬sˆQ}"¬Õáè`Æù %ö&’3 ;‰Äj¹=�‚œUúŠv¨=6b …aq.…ÊzÝ-rÐZÖdW¯¶"9u!Å�T..îÐÀŸ¾ÅYù:Pµnç<Ü»ž„uì¦l ¢œ¬ã ~‚�ÃPôéxç3þ–Ô@kÒåÔ¾!¿ãNQèxC_£� _lèÕú4/™Æ®DMB{Ì–Ã�Ѹ+&2ùš57@å äÕñ®õE™"ÔíEʵÚd3ëîÖ(ÉjÖÿÂ]Pl«kÍÞ/j` )H{ îé‘£êß覧œ²½)#’Ì!'"„·§öŸƒ—Å6ºÖŠG'Ø'ZvMÑݾ,%¦žÍ@V^G‰Ï·zOË?öa¾"¥÷6Hœ�îŽò½çQ®3¦1)µY¥¸�4Êë¤;%= ?Íiú—øLâ`Ž`F¼=²E—ÀTqo’ÎÞŸ>¿”½ ADºw‚¬{Œ1ïù¬Šî Š©À§Äj(߅ݘ�8“د"¹‘x¾~�Ó¨Fç7ï.tRß–5=fé_f€sh‡ß—B¥ƒãïtRI­·P¹¡’ Y^úÓdƒ˜9ìµÒO/=ì®8í­~¬ Äš¢Sw­­Œm×M_tYZ6Á6àø7³ÜXøØÒ'™�NÒ¡%ÀÙ¢»•U[›iÓ?§’%š‡~�GÜPõQßV³hÝc Œ¢.Bmþèu;R®5­1Œˆç”‘~^XIüKòoB©âÆ·ªm¼›^·Ë�ŽÒëÂŒ´Ð ½ênH�šbd2d nS½uŸ\:P=e§O“pG#ÐáQ¢IΚS5¥7òߺd­æN}Qt¬NvÍüë,ÅRß¶�DCU�· áA,aŸz'í×÷!¤ceý µú÷ÓÄ%ÒŽi1‹ÿ«35ŽÃúéOšW¾ÏOôÃ)úðÀé*�Ê-õŠ™æ²úÒ$ø²ºùE¦;j3t !�a�¿l.Õ­mO©¦Ä�°îãub’æˆpj%œ82@.sºˆÿÛ,-jÄ�Smùf?Þ¾l“ºKwYÑ)}‡µ O;æ ñ,šjnJÝGV"¤âjPøMÅôú€A·=h}» Gó °-gàl×|ÛõÙÑ"<Ù˜=¦HãÆ¿ìNJ=`D–ð¶ñ&‰`s–eâÉóWR˜Â]ý]RôM­¹&¬_»ŽÂ§YO³Ž•ùÚˆYW”˜ç|(‚H«#!ç¿4^r1G4Q”Åy¨ÿ‘4:d:k¾œ•jVÌ_®8mã“;Ä€sñG²Ã–©!¤ƒÇbÝEŸ%úÿÁµ'*ÆB"3JÛuö…xËa¯•­ ßž ´…ü?àmM€r"ÝÙ¬´DZT£$óÈ ªUêîy(,Œ@þ·h� ¡l%6 ΰ–?)½‘�áÉ`鸉?†h ð@Us>ô”ÅO^>|³[¨PÖïm²\óÑð½¼gºÊŸmìã2Ú©ùíŽg�™‰Ð´z#Š$ìÊìbǬw¶ekâuŸRĬ⠾Ÿ’ËèŒxS¡Ë|€¹Ýx:9è ·‰›¼râ~†äž²¡sÜ´ï}…‰ÞÅúíâÛ�ŸþeW-ì€mYÇ�`Œ“l&Ú]VžDî—iœCšG4Œ½ãÖ­Œ¸ËW †þ%ü&dq9ÕŽ*~’WNOSÀÎ&6ç'{˱Ù÷wj.AdâW¹ô§Â-XáYSbAÁ¨Ycs†;Æzô ØÀdŸ� Ì ‡ó¦Ú Íäü‚Á}Vyª{Éðe–ì’_»·3Ô–+×%M¯ðªû¶ûÏJ@wT…Ø!ä1Yu Q¥ìEpáG*ÏeóBEgùy÷hýD\ÆO#�¢pǘb‡5Ÿöcš[þËÝN}ô›Š»T'R1Þ<™ƒHãÏ<Í“¿nó?Yþä£-äzÔØeƒ ¥Ê$šg›ÔXS±0ô»b“9ëhûÔDåîÃ&y=®ùèuQèŒ]â�ª;;—Yýáð@?ï™�©r?®Ag¦ØCµKuOŒXIüýY÷dYºé·i­úÝ =M/õu‹ çÏ÷o&¯?P=r*dhrÊa‹8±ÏÁH?ŸmÞßá-ß·Ì‘ˆZ¤ÉŸ<Ôù|þúãä…+Õ›wöÓâyS«\ŸeÇê$@©êî‡?–nB&�¤pU£&Åd®‹ù+:¯Î£¨ÈóA›9°0£Þ ¹o_ôöZÓü†¥W‘–ö«±}ʵ׵õä‰ÃÎ~ø3xVþ4òÃ��À;Öî6û—IW¥DåØNÕä Mæ¦ëLâ"oxˆ £dr·NcNC�†öØÀ8 ƒò‘±»#üÇ�Nÿ]VˆÐ_¦F ư™oÀ.ÁX©vé¾T < a°XöØA/'Ô«úœ�)÷—Ф°Uv²W?дÒ,É¿^�îI×$}$̵ú?}á/yA*ÖóE—¹(õ¨·ªÝò!pÁtuøÐ¢#ü7Ý»@È/ùtÑjuDÙ;Ù°tÉÇp ÿ½^V™à´ÖÅ&<ò‘Ù—Œ2(‚Ô‚ Ï”‚d–ÔídeDò:¢RG_²úÔ5j>.=ëMkX§q&z!—GìˆS’(cõ^µ,=ý÷þDP2†sˆtuk™p—ÀØ¥Û ±÷-)†5#ùœ)¥²¬‚,pph3{t9Q¡Þ_›HŽ“ÔÉJ{¬,T�sêåÆð lWµï,XÙÿŸáB¨89‘”Ô�R¨­Œ˜E“FUkεC‹¹A  ,4¿³|ÁíªŸ¼”F¤Æ´«ÁÏI µ>ÇJ´Õ`�cÝϘV�Èï@�Å/`Hü(Ã9I s4±žDM1Ì QcMO®ÄäÁ<.®ÈoŽ“!©Ñ:KºÕyÏ*-ÚB}V!©®çrÀŒ—í‰D÷u¾vvˆö§­®„q£HKlôÍ£ž])ªRD�íÅÖ"ƒÁ¹vÞwi¿Ãú?n`¯ ZÙ«ìÍÇìC¸‚P =.GÔ>îµXHúdÙtÕÈì2n¥µC³ß�ßòÐ“å   °�È?4K4˜lM9ÜQýT<„Ä%Xšr­]"ïx?c‡ßŠ Š8¡(pÏ ®@<ÄQ飼â–Ý'êAèZ³Â%”æZ’wªÇÐË`Z-˜flÈ@¹c@Ÿ}$Ó=’ Ú!õÞÝÞ¸&qè£QŒÐç܃ý‡×2àxÄjwÏ`;%¬O5Ɦd¿àÃɧªºE6"2p¦y üåûmŸ¯Ù‘ºÁXP 5Ü7ö¾õK÷>þâ•fõý¢Õˆ“©_v,“ÙŒ‚5ƒsÈ8Ÿžj6òk ¦ Ûá9U—&SXãsšãÓÔ‘ðÔ"#ë²^«BqàõÀNΦ\Ø6Ȥõ>4¯ 0­¾ø7„DÁ6‹Áño¾@òåÈ÷–EƒðW>#M'õyÇk°„!Å`êmË @Ýÿš˜øQPñH½ãêð$XïàÈ%?D«êÛ[W ò˜§¦5CB]ÝJk Ò!®.´òs ½ú–ã¾é”+½Žû ¯Hâ¥wÇ}—ŸNædôËOƹ0·§Ó Ýi¬”ư1’ (Ý�¼^ÚÉHT˜”¥!ÿf•è’¨ùÓ\q¿„X�BõA¦…/¬N Ø´ªètùuëÑ£e÷Ù‹dƒ§f¦-)2ùEZÁ?§o�Ýk­qŒòtÅZÕ]#�|­Wõ9*Ÿ£ùí¦:¥ ¦ÍsÞÏ·5H‘îlk½ü0 a×›½mìJ¬Î6H9ù)àilÏu9+´–¼Ä:—Iž^Ñ7�þIª¼egHI4~§åtœ!¹é-bG#×ã“_ÒIbÒ~®éµŠgoØ©iã,E‚ú¨�©M7uVESµÀ[Mõÿ|‡/o'ÉÓbí&8‹3‚¡Ä¢`׫‰j¯2e‡jÝY\F°ûŽa¶¹0:¿cmš²Ù!&ô¬Aý]ÍÿIKjV(E-úѦ!ñ@ò=�Òש8ÂÕK³öð”vlˆ�×{×\B Á°¬}±< ž$’x#Uù5ü\Òz"ËðCFnªjfeøx{,1K„I\¿”ѹÝU“H>»ËSö�/»\?•�5C÷"N^žÆ"å·YUØ:¶¤Ü+f?¡W¿U$:S/Ù êXs¶Š_8RÎðwüôôÿò§¬D­†G¼åDz¢_�ù>"è]Ð4Yxѯ‡'¾$žœ«öÊù t,�Mï‰ËFÏŸú̈:ö VêS“4ùO�w,z\S‰Îï%M‚s`.$Ó­„Ûœðjö+ø² ’*à g7G]†7X›aädfŸ¥t–ÑŸß�9ÓլǮ˜éEyžöP!)îCÐå‡2EFÛ<( ›‡‹C­»ó“Ú0=‡‚€èõÚ°’15bùÒÚ#þ=ˇ¢Ç]s«Æ€(¡à“IÀüiÆHÞ'FKc“·¾xÁè¸ L9Ÿ´Q9ˆù&³–2+0¦Ý]sFu—Ó;dfcVãó*³*Ÿ†£<ºRù´«Ç}@Þ©OÙ’ »‹s»’3§bVíb/¹@Ž\±i]ßü^šÐO µÔ6%¯A dW‹ð"ù^Þ3ÑÖx?ò‹Žˆ›„À¡@à“­®kÊ3Ù%d™)sº®@…D¤åcªDs34ü hlH!Ã]D–I(Ñ�"‹ ‘âx 2Þ†sa>ÀŒ�-µ©3Ã[ µÞZÈP ͤ+õÜϯ{š×ŠÎJZÝØ´ï¾7�‚iå=‚yƆ¦"i,A¬‘v“ã¼íYû(&žß ©âC¹Èˆ™9›Œ<¶!nË“ÀÊÖXr�è%ûXšµV¿ý¼êä OúÙÌ�Ç]6Á,žu¿ãíóÂLêi»‰'oŒéw ¯•Kî] ÎH­4sÀE®jh×y€NšØi“P98^]˜eæ€; Æ’âã§çäS‘ªÀ`ÌP²À“üØ>/¶¿�”’/Ÿà û=ÐPeÃu—¸ko§'KÛíJ *r úÿoRà&ÚËú’ _–�5|³÷óÞ­lª"�¢Øˆî3žç“þå¼�cö! sáÏ(¢¡¨ç2"n ¼²$tSº´¤|ú—^'�SÖþ& L¡� CSâ’ˆ)^Ù2|à'69W÷ u‡§Ç?G�,Ò5®õ±µ:ó¸ƒ8*Ž’äÑ ŸZËGûF�ÙŒÒËìÿ098ªŠnË£€¶#õÇMô-z ³¼½P€†v©­/ÍÞ›öl‹¸WrûJ�1ù…z¿Ø!¯ÑÒ|¥äOÉ‚Žd-¦½Ïñ ¶Œ™Ã@OÓ&k0·0~7Í#cC¤E?eîÛ‘óA Æèsòùcó®TÒZ@Q˜)ú7q#Gn8¯$w(Í1WþkúÊMò$�¯ËÀ¯‘+þ\än|áSºÅ¯€CÛ]ŸúÙ´8¹óÿ¼5 ´û0™Æ—Ûô!ýÞûÄ(©'•éŒÃíSÐÊ|˜/IF#YµÌÒW±?òù¹BU ýªú¼’Ûíˆ:-UöØé—Œù ŒD,7x^r÷[�RÀ³ÊŠï™Kî5Ù :ÅnXœœA^nf�“±À ÓÖrr©¾z²ß!Rn~5˪-ƒ°`ÈŒ«X‹Ê9ý¦s"áx7uª�çL±}'½iEZ§þ,}žÝ2¾jX8_¯EÐw«D$¶\_ãìç¥ÉÐëÖTáW�¹°xPÆG~4}v¯àðH¿ˆ{òAÛ[ÎùŽODþ““Îì™ æÝ¤Ý4…¤}ÃÈAíþX”˜ô20ŽÓàq”"Úš§ƒ:1U“¡ÁµuºÖ/m¬¨›·=ú[{ /�™ LZgjßûI¤JÏ"ížfù·¶»'“ΛÁIÚÎwDóA#Ü8�¦la�_í÷ö*”s3Ko —A³_r`÷`Áªò…ð4ͺOéU–—57o…à"‰Pt–’K]*�ï•aî½Šì» “ÊÅ Ö …½fêÙ�IÎ O›ù*A†dû+ î ¼¤ØNUy6yÚj:Šá¡ÞSëÿÔ•õ6²V2ìØ¶Ú_ºzÍ}åÉ.þBV¥Óù2+úXâ–xbzJëöf­ å}F’z¹:nÙg´Ã8&HKQì)èqÅSe3gD´^1ÅÚ®¢þ£¡`¹´¹BnããÍn:¾>‹Âç 0B®Q�yü½Gè�ñ?Å!]ê®\¦%û Zû.ª©.‡ÄƒØ%}�„’$ö^–¸Æ¤W9-��D†�?TÔ�¾¶x qîš/>P2MÏkžàMu2R䉓5ÊéÅN¶WQ_ŸØ+ú*Æu£ÜßiZ|9µéRuO�š~ëÛtc‘%Oæ(Ê9±Yr¢oÝêÓ3¥Ÿ|¼3º¾vÇŸgP 4’(wMXä'õè: Bæ„� x52Ýõ_‚eSVZ««ï1£g³ÎSÇòWEôwƾ5îÌ…¥šÍí¦Ôó¯¦dU:ç>­ yÌÛÿTjd*?mF¹¾>Ø�Ë-~×�+ÙZ§*ËïÔÒžçùÖ"@qåT‘úcª-E&_žúú%›Ã S–ž’òZ�Ó'ž ¨Q�úœD Yò»âÄ!ŒõŸÒ«ê™¦-iD‰YÊ„ÄDÑJá9ãÊ­l.È7äèBMéx»ž&p¡‰žÆwŽDI0|qUº%ny|ZÕj }Y]Ñ�¬y /�W­} FÈ�´Ý$ré–5×Ìm5÷ÜyNäõÕã­”òl�ÉwhÓÿ¼£Àï)7yЫġ $:ï˜#廩RTJ]C+f.¨Ài·cëãÇ`AÌ5ÄF+Ã)EÒágíÓzå¥Áp×õÈR¦��tK ž”Ž@l~( $Ü“a¬~p°‚¼àS–'~–D:RG^˜ù1_«Èçè5™£R+«åÎnæîßþ¶áX5é~î;>øXN"ݱʥ>­šbºü ØUúzj5 ب²«¹fŠ?W"³Jn-î˜(Ú} Ÿ#³JŸ ê�]$­vØÔâ&V×܆×I¿I�•¢Š—ÐÓ¼= ª ëPµ™”UÖNF86½Kߥ— v?Só©P–��Îa5RHº¾ ŒŸew0a8�ýjh[ãD…—ìê ^o¾:dTIÍ ÏÂì°dYQ›f„!¿Hý!Ý ‘ô¾áÿ+¢q:·÷#»kŠfÑNtƵ©òOô,¥ÑfUŸjÌÒߊѽ´H´Õ³'†ÂðÏ�ëiÛƒÏá°±^3¸•Ø~Þ«d×Uñˆî:µÍ”º¾­Ú¿àiÛ%ÛVPÖà«]ÃÝ£$£É‚l½—> jÖpµäâDƒÛ/äBo"îIM iÍÝLÌ7Ôæ‹G8N¯CŒ-Ð&ÒŸÀÕMø>/ ¤r5“ùµg§ýbGS\<ç—þËl@|yÿ î99ù /rÙì—E`#טoö”jªÑËuÒÇ ñ“ÓË´ô2 v©ïi×ÏÀóþÔ.o«Æ×JÃáô‰Qø\1aʆ/.+Ãp!aÅâ¢*©EààÊc¶¦‹=‹&yw)º[tÄDÔ>¶èkKÒNÄÐáóþ¿\¨)Þ‘œûKõƒm·PpÓãõ«%‡H÷É ê!C6ùä$Xk·Y^«WTÙÎDÖ.é—×*÷¡àj5Š1^$“EW“XÚhd’jei%&éÎýÀ1È€±ëßg�ÚÛI£>»0´Øþ1Eõý8“gn[œ­7k>#tþkåâ9© ±ùÐUï&¦‹ï¹ 0¶KRª›í?X½Sì¨ëû±Y®¿èªŠ�‚„ùWî;öíDÈÚjWgUÚ{�›Lƒ E&«ä_Q+ÛŽ'$ð à IR 3Xr‰8&d—ÂOúØè}»Á¬²oF�Vþ½1�ÌxâÜSGùÿ2t'‰Ìëa]§­4¾þFSmWÄä–É�Z&ôk½‹NÕ™å²ü•#øw”ÄÖ”íŠÍZžD'Ÿ{áá1âf¶®�8&¢‡5s˜¾ 2ð õ¡ukÓ…•ÎÛ®Ÿ®Ø!„ĽÉôa}S޽ƒ—ò4FuØp˜òÐ[kµÌÉjþ·² §E=‘‘0fÕ­“RwY|nšGô´ÛâagnÍcÌÑà/£ôÍwðÑ<ÖDŽÛß^(#ŽÀV}܆�—- hÀ„x˜Sf,‰ƒÁÙ‡×^ƒ÷cèÕ.ù)ù ÿÏX¸ü�ØæÜª~6-ËkvÀ¿Ztê;þ»òiFÎñ?¶^EŠƒÂGFù 5Fe?ÁòæŸj¹e×Lvš\™)†>—p;u¨Å¡üb©ÿÁ¿m B€´ÐÇØô?)öÞD»–ôM¼ÙU°G9Ra±üTmÝÎ?Òt¨ æ(é&ç²æ4–8;bƒù›(I+n�n¿ ¸ ÷BÊ©Ÿ ˆîHý>�œH<½øÎ£-)î~µºkä‰Þí;[<ÛK:Å XX)Áb¥¿¶íýUÇd:GÁ…ñ ²îÕz7Ñ!®Ö%Ñkè.LÙïNý&x$ó(ç8ƒ¨mßLúÝ÷Ið;KWLÇME±çÀãbiÌ OyÛ| 5meR¬ýÖŒaét‡N@÷lÂ2d¾F˜�ÙT¿˜žs’™Z– ºëa›½U[jÇ~ÿÕÃø�Ó¦~.ÆCÊ›3ÚzÂ]�LFë>c€SÜ®„³6¡ëUU[öMÌ*¥aN>²·èÔËò0ËP[Ó«:Ø}V!6›«˜±'x€œæébán#Æ4Dé!]‡¸RÒ œëB*Ž[Ãa^þŽpo´ÿλøõ40$øågºßt¥š‹ô�â·G0¸Ï#·sÅO›0{‡²y Þ†,šgS>QV¼DþÇU¦jeçþÙ� £twã3¦é×` ÔK=fÒÌ3Ö´21ºÁ ›ã™/_¨xéåDBŸa7)¡zÜ'=fª‘vl�¦_ñA++°´Z‹ÒÊ)±›$­#ÝÚR-¾•U‡I‚[©øØnk�/8�Ügé q¾—â“^õ~ž²qW[µû¨$>¢•D2¤+ëÀ¥#ƒmó>KFm©i¹„b]¡ož�-ïø¹)ªTš ö\šÚʲ²üç¬ µÑP$‡Ç;? sôÛÒ;»j'à ÚjÂ- ½‚µHÍÛoIÀZÁcÃæ…ÏÍ ƒ¥‹ô7ÍÛâ3knóî Tº_E_nñß™Ë��Rwz£ž”4 ÒÂjØÂûFçóÝ®¹š¦¶’ÂÔuÝÕhÒ:A擌# Ž«êüÕ©žg~÷j²ªóœo.ª�W}s¬Ó«ófª¯ø› ²I}Û…L(Ò©{½_z±¿8*‚‘q8ðby͸“ 'q°œÑWÕV×Ô©çqù„µZ@ Ã1ødú|+öιƒœ6™“½qð\¿Šg]I†ž£¶ìiPH´û*»ž+¾ÿB!s?þE‚é¡ÿº$±|ê\û(TỸp§§”‘ªµe¾ÍNÜþöú‡8 %+ƒ}Þé9¿åC•޼×�‡ ñîÔdwÙþb—š“ë�•äê½^ù…â„…›wÛgrñùS±©BÕàÍ‚Iוµ!¹­õÄ�Ž �&ê�Y¢8ãòÁt|  Õ¢N1ëx&x‚Ä_†jïñ¢åhdD½¿‡ÅVN¨ )‰_æÙ`]†Ÿ½F—êI÷äÕTðÑòÂÉ \8ʤEKq²Bì±^}c¿¤’¬ÒÏ5£[á;{^¥èŸ�Üm,øž=Õcñ‚«pÇ j PàÏ¢"~àt‹·R-@ðsêùkyðrį7J—ô%¸þ PºhusþRÜôaõµðÏÂôLq'+Ðiܪ�ö…<ÃäÛ¡rw ¦l<»DÑp»WF8ËËq�kVnð<+\––5ªµ×ñ@³ôƒGáõºŸ‡è-æ!õš¹á×7pýµfuϲGÞ*™ÓÛ±´µtgÁ~RÁÃ¥wÔ[Qû4îÞܧÒùÊ+áÛ*ÇÅV*MAê2Yv®Ae‡×ê:õÛ‰·JgmWaÁH(k’ÁÛö` ΫuJì¡|�AD)�Ó÷M1» Rºa'޲§Y»oMí’²óÔð%ã�ùBr ±oA»J;ø…€à+&¡„i­âët)`|+/š£.õ Õð=\o)SI%J‚–mä^2kP+„6»†Ú_´³Ä¥ðJ‹¼YÀ߃ªÞ»økø¡¦Ÿšì¶¯Ó´�TÁÝyB"šÔX4æ>®‰Q{gk¶­ ­€ŒfûóG[oá¥rK0÷tp5¨[È¿”OÑó‘Í}û½dÆ$˜Ž.E…ƒ÷yPJÛÍ›ŽñbÆR¤4Ò� b¿„Igš©< ›ßb&ý½3í S ‹”SÀ·A=7y¤�8âh¸§Oœ�"\ë«Zw5 �ÿ)+™l³Án‘ÙÇö— ù {‡ð" ²�³ðÙ‹î«�®�ˆG\-Íž¸O‘vruÌÐp8"Bœ5: *L¿{óñVƒ�4äc7ªXú—FÁŠ�ɼY]],^‘WÇC¤©^ßµ¾ýE—S—"Z'¾a÷¹«%)#�ˆž]¢�ôœn·dJh©ìùi˜]µîóéPƒùèKHÆ6–x¨[G)¶!lز¤ùüšYÓTo ØécÐrÕ‡ðàiátl6¬AÒ2�¶n^3™ž¯Ð3—Eš)»82òñb˜ÎØú1§Ú¸Nj†Þ½Ì•Á;L]ŸÞ¯ï2Nƒö >q_�$ª°¦~Qˆ¸K,Œ]ý Ñÿ~BÌŸ-iVév>|GÀ¿l³gm÷“YT5¹^š•ÓYpÆÅ4êc Xà0xJ@ó”ùQÈ©Í*Ÿwq-¼ :4:q ©K«ÃË/y;ªbx<æQ�©¢ª‹l–zÙ¸ùÓtZâiu¤š�€`±?‹+`�䙓tß¡ò»õ1‰·^‰t¼þ Ap4ï³o<ÈJø÷Ö;Ö×DŸŸî0OksN=¥º§b‡!ä+ pô£I…’Mù„ÙÑL®/=+d·xZ@¿ws}‰úzüúyîH…áêLõB|gÖYÐâÆF¢ÐåˆæùÙ®gn‡ˆo~K¸dY’ø«û˜¿Pò�øñŠ\MÌ�‘£m%›`�ãF§�1*7OîRèòÊk¯W¤Ïý@Š6á!ˆü•[Û\¢·U|�û‹Ü ªá)àì«|moÛæqóç*kˆ[e�Ðù$þ[íqõæ,:U¼é!ÛÒŠñUc,Ä\Íi7c®;½�Ü[¯¹ÅÌúa]ñ‰}Ë´P<6TÆRmËU ŸãheÖx½p˜BCvçD5 TÍÀ\ó�ñt&ÐÓÉ�s?Â~_¬•µðJº~†­8êÍDñËçÓÉ.�·š8Iª3-Ðé±à—ù~7U^­BUv�q£þl|åÁOªþEûã©áûäíˇj‚FÝÊoàR¢r¹äž]¹É[¿d]Âopº3ÞÑMû™¸ê·ñUb1Ö'‘÷Ú‚¹1ý~dP±×›oBÞ?m.žY7<ÃuÊ3¦SŒäÌ2”“…`[Yïk‰ôÚÿ£�jC† „a†µÍ0hPmagsòÅ LV¦:^Kè:»Q’Ί·¡–¨u}.¦ûá#H;º_iÔ)3‡—ÝB4wuÆ‹ÙM{º pi8 ›—[s¬Äû®Š7Hhèr㯦7ÇÏ‘&0iµ-ø¾/•aã§8oö„r#‡·ÿÕ½1Õãý<¢²àX¿hQúàˆiµš‹"÷È?(nXE†«8?W±˜ ^÷Úµä)FÎnmÊ`²Ÿx\éñíLåI¶…ƒìø“� +Ó°QàÕb…N0žLצ\L†›‹¶á7;õyYŸG:¬*Gß`Õ´¡ØQ“ äU'Ýq[±âFuIy‡>ÛJ†I3~1ó�›ÿÝóÕÃÛÙ  ýì‰l47´�Ö‹ªØ9'åÁqƒêË×"u»€izxýj;Û˜È*;ëfÛÕ¸“ºêoÆ7bhŠ0–·}i~mu›#hº1÷aòÓ4{(’ÜÖåqeæ¹²á4òør"¯.Éq‹4"Yk¯U·¨W ú ;﫚ôÆÛp.ö!i¹äÿMÏ·O|:ÐÆ__í¦î).RQäƒF°4n¤öæÍß]GI®Ð²Ò¯ó+ª—Ñ'1Mld-X%Ls®]GËÂn:ÿ¾ú ¸´Êܯvô§ – ظá~×̺Q°4XMøÐSÜø.2ãÉòÖ�mìÊÊxyõ߀¨‘öÙý{¹dn§O×Dÿ|…bR€w$•›œøƒ©u":§Í¸/ZðÌšëRadÂõ¤¿„sWéË÷|ÅßÔZËß^ñÑÅd‘Fþ.ôìB ãCÈt1Á›ö:L'¼âéøê`ÐÉÏÇü‘´—Xé›E¡m)>— "x4UÒ(®ùžX†]îñŒ€ s�ß_ WG¸ŽUïÂrK}.ˆ;Öb®tȵÂÚA¯]#DÛ_ÊPšëjS÷&þ=p=dÿEƒ[v^W†è$$ÝÚ� cišh°Ì[Xe÷ƤƕG4[sî¿g.9Öè/©p²º+þ'º±,S+¶.‘ì …ÓÑŸßû»Éì4Ù/˜S�%±kà?¦|þŒÁŠ˜·ß:}A=&>•g8ò­lêð‹Lø.À‚‡RïšEÝãìyÜÔ< ìøªvƒH÷zoÜe.lö¨ìCü:e³pˆáŽV v“+mõù é¼±·wÝ~I4ÁLQ%%¯÷y¦žák´ �8˜±›ÁÁ²šgéÇŠ¡5ž€LŽÐô’ì¹=Ã=«Ô"… úSáS÷ÖÍÇ>N¥_SZËÆ”“!&ݰVÎÞ5#…"¥ÊI?½ž$jæ9ž9%Ê,ÙÕ01�TªkÑö½µî€+Ýãz”/Î*]íšœ"YaàDuŽæ‚Ô‰:-! Lþ®/rœô¦ú�‰´[ë#XeærÛCÓÛf2ÅP‹ÔÅ;~„廉PÎæpœ 5щ˜EF¼¾°¬à1å™}ÇWúf´8n(3 ÍuŽ¬ÍÆ€.z0+�UõróügV±áZ-¯ŽîèDQêú™íõ'ùX�j­ÌPËžjˆN™€} ˜\Õˆîß~D/ç‚e¬¾¸Ñ_Ä^§ºÅ¤@GEÕ%Ì«m Rqù: vÒ>yåŸãoé?ÝÄñC*Þè‡3‹ÍXƒ«‚¢”ÜtÓÞ'Ù OÚ'uÙw†tÈ©Ÿ«—L$]! ‰ÿ3ELÐ]&dJÿÓlÂKŠ&ZWèÉÉê-A#ÏA’޼"� “xkƒµÊ— [7DZ[åÅ �Úk´åA \ÒœAqUU¼±r¹íÚ8û<؈óï³\{oûwàÑË¿…iÛÿʃô¼ÿ¢ w.VÅÜG¬Ù£ÿ¾L°Æî|¿o]õß067΀7;6žçvét;¤õúÓàÅU•OÓ̽²�iZ]Ɇ¼þã/-¡"‚¨¢v ‡«i't·[Ivå¥YSV`׎ ƺ_ÿ­oŽ“åÃÔ@M±uÁjë¸É•͉Þ×Ï 1¿"‚•ŸàûyN㸋¥æ’Åž6–G‡*TSv’gµ¡¡)"€ºÊ×[rwÊ}¼qS{4KÝÄúÛT`ññEçÔí‚€ü‹ e¨À­Ö•ª¹­žþûV¬‚�°&TµÖÕÿ>áøÿÝó¡ËXcæòoÂ_»r͹ƒÿ¦éIP—Ä?®=tá9ný‰‡ý£©¦§Z¯lö?PKû±RD1Lúw  nav.xhtmlÅXÁnã6½ïW äkdYÎî&œÛm m±E¹Òm¡I�¤ì¸_ßв�ÄsˆkÀšä<=òi†�šVn)áy)•½M*çê›,[¯×ÃõåP›E–O&“ì™æ$í¤^7³3EYÏýÜñht•éÚ&wŸ¦g%5°é„“üî¡âð°ærÅÓ_Yá´�ou=ÍÚÁv¢ê —·‰uÉmŹKÀmj~›8þì²ÂÚ*Ãçû3†Ô›ù‡fÝS§3]nªb+ Ö7H ˆò6yøñ=i§ÝÜ÷á`ê%ÇøVù6FK($³¶Åìºý:¶`R¤ùÞ²°€¢�òa»·ûpŠ­™:ö|?¶�—±�‘:@lüjø¹ñAr;‚¿ á».ùŒYþ–ÖjQz(^˜r˜æ@+ž�Oê +žx™ •¾Vh…ƒÊ-Ó%S›´äµÔ{¾[àÅ¡C„€BA‡ñäá½8²Ô)ÅÛ�Óò•rof½Ú¨ÏýZ^Æ´D1æ5W%W…àGñ‚~‰ ¸øs-E�ÉHjá3 O™BI­–ÌqRpK·WÆ_¶8pq à@]ö‘¥˜v_ûµûÕÎg¢š‹ÅÉd»ŠËh,–*ÊDâCùç*žrµF«%W®Wª{Š…6–2 ca/ö<ò\÷Ëó%&Ï?Cø k‡P ¸çf%Ц×$®Sà;p†3—ÎZf© ÌR†?çXQaõ4ÜêÆ‘üz @ÐÃ_‚-ÐyÌGý~�HH 6B–dN8žØhÔÉDÌó¸Š_·ÙfDA%Òòšª‹3bê+%rL­c‹ˆ~÷:ð¾H"´gR.âQ®bÊaiüËh|óì ³.‡M¹Úžj¼hP&*‹¬®)ßȹh“.©nâf;|ǬMëŽväpóp¾R"eºE‚ƒ-Ôý»pd'>NȈA¹Ž IJjƒ…F¨ ÍéÄ|‡E¹ÞY¤´+ž+ÁRßHÆ| ­g[01êè �¬òㄊ¸‘I\¨ÖŽ�1èª6§ê¦dÒ•É‚IL²Æy‰(÷B>`Ö•üÐjv+º§XÀX¯%Zˆ{&™ú]I>й’G4üÂÖÚ²™�Â�P¦¸'騖ìY,Å¿<5zÖX§H µpU:gÖQm4®©ýÙ¶ÀëŸ72µUãJ½V½þpa‡ „ „ ×x.t¸ç‘wÜïXòÃv &uù*õ<ÔO©ï8îV:ºƒ'Îk¼¸­¸Ô5zoOÈ~’¤D¶)]ÕñP´(ÞÕ¨‰/©3ú&Ó#ñï {а/¼®;p:"85;ð3éÜïoòØ7˜G¬µèÅé¬Í8nm:’áF!‘©†Rx�±sùž Å‘ >BÜ™Té7+yìkÊ#�ßÊ%Þ`#¶ë#Šû•Žð€nŒx-™BSïSÐ1ûd·6t>§ñüo*Ûa�Ç ”°þg×ùrÆþèndš)¶¢æ4k¿O3Úš»OÿPKë©RDGn±6Ý·stylesheet.cssu�1nÃ0 EwŸ‚K—vê¦é`]#P,Úf+‹FDU‚ܽ”Y4‰Äûú Þ~§‰"8(`„(ÉëcƒƒÞÛu^#: 2!œ™`·¯ÎìÜ`¶—‘BÇ7‚¿R[O£îßk’��ƒÔ‘®ØÁŒŽÖÙÀ½êÙ¡~ÞØ`gòI)Ž‹í1¦VñkŸÇA6ðQ‡ø,�c |•@ۉϧçK»ÊÄ—Çvhœ•aß÷:.Ö9 cïæ)ªÎU´¸ix=iÖSTOÙ}-iQ[�š¿ÚðÚv¯þPKû±RD#"pçititle_page.xhtmlu�?OÄ0 Å÷û&û5W §´âÏ CÆ\ê^ªK“(ñÑöÛ“´HÀÀd=û÷ü,‹›ç·§öãý4�¦Ù‰\`��5ÓDþÈù4MÅtW¸pæeUU|Î Û #úëé9t¾_ÙÛÃáž;YÞŠ²kvbD’ ´ ©fWê÷ŒÿL¬±fg´$¹À@9Khê¥íœúfi ƒM«Ú Í'î_¥J8�Âeª2!Ÿ¦Á?÷Ÿé(xûn"Óõî«$Š.iè*«i°0¦¼ ÃÕjuž1Q=Ÿ+ýþ¼�®Bü2„¾apûŽ�É‚³ Ð,¸aD²‚OƒÌÌnj‘$UÒpi¦A­åM ¯n.ç³ì:Ï(O†3:ŒÒŒŽØðš^�F£d GãÑ0 áá13^šÅÞ¨ñÑ/�2,¿cOü£ª¥ÙëíR°5vø«.f\è1 Û`'™Jï…ɹÈðµ¹½_pr¿âù’ÓÏ,5J“e9 ›ÿšÞû�&’-¿²Òö‡‡;%¤!"›í�‚Íß›¾°ÏÛž˜Í‡áËΩt: Rú·„ÀÏ× Sä»é [&o² Êœ=Ó×(ÈÿÁ9]DQü‚îQ‚‰C0 öø¼¦Ø’üãœ|TŸ±Š»Ô‘;D/yEï(Á ‡àEà°9D±%ùMrX¥–Äh–þà’h¾˜ÖÍÖ*?#“Ï’'WÏÕËxGôFL%9mq©Å¥BÒ—Z\аÔº3ñbm|sx¶†Îl =å=ç%—TBÁ_Í�Ÿ¦þš^:,/ý5ý´.s‘BN¢^iÎ4'L‚ª•Ê™á¨áÑ ü…´� øŒZ0 `Ô‚Ñ}°SÉwåLÌ•¯|M>ʹxê§ÜÐ_¹k‡àµ¿rß¡”a>"KÌBuŽË¥ÐJ@¦¿Z–ü BºÀtºp*…FÎŒ<z8'¿A!�A¾s½iß$»ô—jì0ûKu¯93dfùV–/að3†¥ (£šWªÖ¢ð×ÍF20ˆF-mÑ(ƒŸE£[´S‰Gî¶ùɈ*Ö"ÏÎ þœCy‡F-û yå/düÂDÄ]²N‹«eÅK¦±DÎ0€¦huRp6ÿAÄ«mòmph‹Cœ¦^ÝàœL>×´Äž®åÊä�V°Žª¾éwÝA5׸Ĝ˧5OkÐ k$+KÌ<0¼`�E&ÓÀú«*R‹Æ_Áëíf×`6e01ÿÐÈ(M“n1éódjºž%ö4-¸ëÝ) •JH<½õStÔAQ×¶ÄÝ| 2ÝÖÒ¥`¤|ƒ»¿~£�Y�ñvõhóÆ"œL-עĞå¡5)i­5x¦ç~j�;¨åZ•¸‹WIYéV›F'ÌB»è!ÿ2ž÷kÜ–K ÐÈ„)ghp2­\³ûº•G8ˆªT›‰\˜~ZÅQ­\¯w0+_ÙZâ''ZÍêÊHTi%Ì‚ÌYe°TjS—Í~÷G1>¯sR-j“©Õ«�Û[Ç6´AaÁéœ"8EpjÁ›M°§-ø©4N\+“xZ”˜/CXv�»·È¯ïŽ3umLÒÁÆüÉy ‡»%ÏU‰fþ¬1.PÕÎe1Š:5x¦‡­²Ià°†MX•˜å¯.)ü•¶ñ ~ºÇ€Z�¸;|Ü6->6[ü“‰ýâ¶ÆÓø ¤�\ch005.xhtmlPKû±RDôuGÊÎ ¤� ch006.xhtmlPKû±RDTཀྵ² ¤� ch007.xhtmlPKû±RDR’U ¬( ¤�î%ch008.xhtmlPKû±RDw·£ê ¤�Ã*ch009.xhtmlPKû±RDñN¡eœ ¤�1ch010.xhtmlPKû±RD¿‡î/{j ¤��7ch011.xhtmlPKû±RDnÙï} ¤�3@ch012.xhtmlPKû±RD7à  ¤�ÙEch013.xhtmlPKû±RDµ!ŠÍ; ¤�Kcontent.opfPK ö±RDíANimages/PKë©RDæÛŽ 5a;c¤�:Nimages/img0.pngPKë©RD‹ÍsBÌL|R¤�œ¯images/img3.pngPKë©RD�¬¼Î{Ú¤�•üimages/img1.pngPKë©RDdL–¸n6÷8¤�~Ëimages/img2.pngPKû±RD1Lúw  ¤�nav.xhtmlPKë©RDGn±6Ý·¤�·stylesheet.cssPKû±RD#"pçi¤�Àtitle_page.xhtmlPKë©RDŒu�+¤�Õtoc.ncxPK9CMET -o|untitled-book.mobi| V2.9 Mac 1 Info(prcgen):I1047: Added metadata dc:Title "The Twelve-Factor App" Info(prcgen):I1047: Added metadata dc:Date "2014-02-18T21:15:22Z" Info(prcgen):I1047: Added metadata dc:Creator "Heroku" Info(prcgen):I1047: Added metadata dc:Rights "Copyright © 2014 Heroku" Info(prcgen):I1002: Parsing files 0000015 Info(prcgen):I1016: Building enhanced PRC file Info(prcgen):I1015: Building PRC file Info(prcgen):I1006: Resolving hyperlinks Warning(prcgen):W14001: Hyperlink not resolved: dependencies Warning(prcgen):W14001: Hyperlink not resolved: codebase Warning(prcgen):W14001: Hyperlink not resolved: backing-services Warning(prcgen):W14001: Hyperlink not resolved: config Warning(prcgen):W14001: Hyperlink not resolved: processes Warning(prcgen):W14001: Hyperlink not resolved: concurrency Warning(prcgen):W14001: Hyperlink not resolved: build-release-run Warning(prcgen):W14001: Hyperlink not resolved: logs Warning(prcgen):W14001: Hyperlink not resolved: code Warning(prcgen):W14002: Some hyperlinks could not be resolved. Info(prcgen):I1008: Resolving start reading location Warning(prcgen):W14016: Cover not specified Info(pagemap):I8000: No Page map found in the book Info(prcgen):I1045: Computing UNICODE ranges used in the book Info(prcgen):I1046: Found UNICODE range: Basic Latin [20..7E] Info(prcgen):I1017: Building PRC file, record count: 0000010 Info(prcgen):I1039: Final stats - text compressed to (in % of original size): 51.79% Info(prcgen):I1040: The document identifier is: "The_Twelve-Factor_App" Info(prcgen):I1041: The file format version is V6 Info(prcgen):I1031: Saving PRC file Info(prcgen):I1033: PRC built with WARNINGS! Info(prcgen):I1007: Resolving mediaidlinks Info(prcgen):I1011: Writing mediaidlinks Info(prcgen):I1009: Resolving guide items Info(prcgen):I1017: Building PRC file, record count: 0000014 Info(prcgen):I1039: Final stats - text compressed to (in % of original size): 50.36% Info(prcgen):I1041: The file format version is V8 Info(prcgen):I1032: PRC built successfully Info(prcgen):I15000: Approximate Standard Mobi Deliverable file size : 0000129KB Info(prcgen):I15001: Approximate KF8 Deliverable file size : 0000138KB ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿdeaéýÿÿÿÿÿÿÿÿto éýÿÿÿÿÿÿÿÿs méýÿÿÿÿÿÿÿÿað@MC0BOUNDARYίMOBIýéäÍ-0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿH PÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿEXTH0t æj2014-02-18T21:15:22ZdHerokum Copyright © 2014 Heroku 2AFB en horizontal-lr�kindle:embed:0005ƒ ,,€º°»ýÌ ÊÍ Î 0730-890adc2Ï } The Twelve-Factor App<€1ømlns="http://www.w3.org/1999/x�Q"�+:epub�W�Pidpf�b2007/ops"‚¨ead> TheÔwelve-Fac�xÁppI.Ãodebase‡'‹‡G‹¿ŽwŽw“ZBŽw�'޷ޱ3Ž·“?C�7ŽïŽ÷Ž÷‡§Ž÷�`M•—D’�‘G�7˜¤E">One§€‡Ëôrackedén¦vision¨jrol,íanyäeploys�?”7�”ß‘&li—‘Åoœ$’W�7˜_˜_-4˜^‘xžÅF™ß˜«˜«‘4˜˜ úGœšÇ˜Ÿ¢H‘(‘0Dependencieˆ?œg˜—�ŸÇŸÇ¤«IŸÇžw  5 ¤�J¡‡ ? G G‡Ï G™` GIK£ß¢— ‡©ôL">Explic¸(�1³pre ¸øésolate�шǡ7¥7¡w¥×�ÿ¨�ÿ¨§’/§·©W©T6©Všð¯½Mª×©w¼w©w¼‰5©w©w±òN­«¿©—³O�ù¢2nfig©G­?©g­ß°—°—µzP°—¯G°×°Ñ7°×µ_Q²W±±±‡§±¢'¹‘R´¯³g±WºÄS">S¾°¢1‡É¡át¿˜environment±§µŸ±ç¶G¡o¡o¡o¡o¢Ÿ¸'¹Ç¹Å8¹Æ¡¸¾MT»G¹ç¹ç¹ç¹á6¹ç¹ç¿ZU½¼/º¾ˆV²�V.ª€ingÓervic¡�½çº¾‡º?º?¿ËJ0¿Ï¿ÿº_ºY9º_�Ç1¿w¿¯ºº‡ïººèŠp„2¾W¿¿ºŸ…L3">Treatâˆsˆá€ttach³HresourˆÏ¿¿Ÿ»Ç¾/²�¾Ï²�½Ÿ³¿¼7¼7-1°¼<«8‹%4½ÿ¼¼¼¼7¼²—�Z5¾w¾g»ÿŽh6">‘!uild,»ˆle¼ €Hunºÿ¾'ºß¾Ç²Ç²Ç‘:7¿ÿ¿ßºo‡â²x²Ï“8ºw¾çº—º—ˆº—²ÈA•_9¼Ï¿×º·–ŒA¡ùric²¹separ²abˆ™²òˆhótag»g¿g»‡»‡½ç²§¾‡²§³×³×»÷»÷12»þ²øœ5B½¿»ß»ß»ß»Ù8»ß²¯žjC¿÷¿÷»¿ŸxD‘² Pro¡èsºÏ¿çº¯¾/²¿²¿¢E¿w¿Wº?˜ª¹ð²Ç£ÍFºG¾·ºgºg‡¿ºg²ÀQ¦'G">� €€^Executeôheáppásïneïríoreótatelessðroc€@es‚ÿ‚ï/a€¿€¯li�o�Mol‚�7…—…Pli …9toc-li-14"öalue="7"†I"„G‡ aèref="kindle:pos:fid:0009:off€I€‚?J‚?‰W‰W‰PK">VII.Ðortâ‚ØingˆO‹Wˆ/‹÷ Scal¡xut�Š¢1¡L¢del¡o¤w¡o¥¡o¡o¡o¡o¢Ÿ¦ÿ¡o¡n�`¡l9¡nK0¡o¡o¡o¡o¡iB¡o¡o‚:1£§ª¿ª¿ƒH2">IX.Äis£ðabilit�·¬·©—­W¡o¡o…ó3§_®w©'©"‡h¡o‡½4©'°—©G©G‡ß©G¡oŠ5«²ï²·‹D6">Maximizeòobustn² withæas¢ tartu³`ndçracefulóhutdown²ÿ¶²ÿ¶¯²ÿ²ÿ²ÿ²ÿ´/¸�²ÿ²ý2°p«E°ÏK7³³³³³C³³“Ò8µ?¼W¼W”à9">‘‘ev/»@dðar‘§¾O»7¾ç³³—•A¸ÿ½/ºÇ‡Ê²¸³™]BºÇ¿?ºçºç‡çºç³3›·C½¿�»œäD">Keepäevelopment,‘Ag»@,‘JˆÁuctio¼¨só’ølar€Y¿sible¼¾_¼Ÿ¿´´´´µ?¿½‘κ`½ ½KE¾ß¼÷¼÷¼÷¼ñD¼÷´¥šF¿O¿?¼×¦¨G‘È´Logs¼¾�»÷¿/³Ï³Ï© H¹¿½ï»‡™BŽÐ³ÏªÕI»‡¿ÿ»§»§‡—»§002G­/J½ß¿¿»Ç®\K">Treatì‡À��‘¸n¢É€¨mˆO½ï¼7¾Ÿ¼ß³¯½³¯´ß¾¯¼§¢4¼§ºWKL¾w¼�¼�¼�¼‰E¼�³·µêM¾ç¾×¼o¶øN�Q�XAdmin¼5e�·¾»÷¿³Ï³Ï¹»O¹¿½ï»‡©ò5³Ï»‡P»‡¿ÿ»§»§‡÷»§³È¾(½ÝQ½ß¿¿»Ç¿ R">Ru¼8ˆ /manage¢Iôask‘2one-¾¸ˆï¼·¾—¼×¿?³o³o³o³o´Ÿ¿O´µ�¿¤µO<€1ømln®àhttp://www.w3.org/1999/x�Q"�+:epub�W�Pidpf�b2007/ops"‚¨eadƒjmetaãharset="utf-8"/€×nam¸ˆgenerator"ãont¬Ø="¿€d³P�ctitle>TheÔwelve-Fac�xÁpp I.Ãodebase‚¯ƒÀone‚¶-tracked-in-revisƒÐƒ˜ntrol-many-deploy†˜ƒÿel3ƒÿM3ƒù3†Ÿ4">One‹ˆŠ“ ƒénŠhƒŒrƒ, ƒ ƒ‰3>Aôwelve-fac�xáppésálways„náöer„olóystem,óuchás Git,�Ÿ�œmercurial.selenic�ï�³7">M�%‚… ƒÏƒËsub…d.apache.org„HM8">S�&„Q.Á—@pyïfôhe‹�*ingäataŒªˆèknowˆˆ‰0 “¡—Ðposi™èy�.The‡È™÷a ¡‰to-¡Àª8r¨�a¥ be›¨��“YŸvªð“âœ:Žêul§wH§pli§÷I¥P•Z‹Q‹pmultipް§­s,ét'sîŒ a�ðž¸--€›Œ@istribut¢èž3.Å™H�qp§(ntŸ“�G�E’#¡1,…Še�²ƒ®°ividually‚:€8with¢ÿ¢ù•°li†W®AJž�…í£ès‘ú›‘œAs´h¨‚¤¢öioŠ�A¥Ç‚È ‹èóolu°ŒM›H¦Ä”ªd‚dnœlibrƒHe•¡i†,b€áclud�!hroug† x¦ÖX€€_€¯€ø²÷MK">°endency­�”Èr£rˆ3/ulž¶�L’‘ÈŠ8‘»°lpe¬ê, �¸�Ìwill…¡°_­˜¦®@¦©¥¹˜M„Š´  òunn§instance‚‚Th°XŠ9ypicŽÒaðrodu»C§ e�;— ±èmoŸÈ‚@g©‘€ñsªÈddi¼±�É, ¼rµ¹¼Ho†‘hª2«ß—ú„¯™irìoƒø�½m•environ€a‚°•á­ØŽSalsoñ”PifŽù­B¼c©¯¿ŒN�ª»—‘™“½acros¸QƒÉ¾R—˜lth�²diffŸh™H¸´s¼ˆy’ º8iv“!˜ãƒÌƺàexa˜À‰™ˆˆso—:©Q�“yª ¾ã±sФ;Šî�·�·�·�´�_.‘³Ž‘ ­›±4,·àu†I·’¸@Ÿx•ètŠ@abœùs‡Ç“‡¹“‰›“¨´Â/se‘€W> II.ÄžU¡�‚ÿ»ÈexplicˆHyƒ0‚Ðre-µX-i«hateƒ×ƒ×ƒÔ3ƒ×83Œá3†Ÿ4">E‚ƼP‚¸‚ļñ‹�/h3½ †Äfirst-para €_-after-hƒ·285²àost¥¡gra𸲏langu¬P©Qž¦‘ack¥œ·#f±€¹¦Zupport±§,€˜£Qs°ß–.c’ –*‹ß86">CPAN¯ùƒPerl©™‚˜rubygems‚�#7">R€Ü‚&€‰.̶N®"llµï†ï†ï·F�e¾Ë-wŸX (know¿Ðs "®éˆÜ’˜)®ùs­@º ¹ú¼ñdirŸ8o®ˆ™ñai²J®%‚_"v¸ o¾¡"±)"bu˜¸€q)¬‡—T8ž‹Ào¿ø—ö9">A¿o¾j±!n²Y›Ñ¾˜QªØ•9«0�Ø»˜¶Z†ï†o»øƒ#>É«9–¢¯NŸ6,¬‘­xte·Á·(­øc˜0,öia¹ÐºÞ�A¿g¿`™Ca¹)»[¿èifest°@ur½é¹Q, …pusµ½GŸ�B‚o‚h›K‚^too¸PuŠy²ˆec•¼X± ensu®²at² ˆ‡ ß¸h  ak¿h"ærom ƒˆ€�À¸À‹theóurroundingóystem.Ô€Àfullándåxplicitäependencyópecificationésáp�(edõniformlyôoâothðroduc�B‚qdevelopment.

    Forƒˆample, Gem€ó „8Òubyïffers ‡aía†est�ñma€:‡¿yˆclar‡«ˆÙ‚‡†F">…‰ ec‚¥‚'‰Úisol‰º.Én,ÐythŠŒPr„Ѐ twoóepƒ9€hools†Z�Xs�hteps --ˆßˆÜwww.pip-instal‰org/en/ƒ`†€‰g28G">Pip‰"�Èus�°‡;†ç†â‹ïƒvirtualenv‚ÿ‚ÿŽ+H">V�>ŒV‡·ÅvenÃèas�†7.gnu…âs/autoconf�O28I">A€¼�6”Ç�oŠØ•éˆpticìink— can”‰vi�8–Œ§.Îo�(tter÷h�™Œ)chai�p˜�g–ÌŽÆíu’alwaysâe‹toge�!�áon˜øone Ž» ™0ƒxš(notœxfšÀi˜øšs›sfšhwelve-factor™Ç™ÄJ">O‚xbenef�@of�§�§•ï�“t†ùž°si›hž`es“¸tup—¤�2™Ánewža¡YŸ( ã€¡�Šªcheckïu‰“ p's ›iba•°on‚ i‚Οù›hchinŸ@requir¤ ˆÚ¤±languageòuntim�¨¡â¤�H€ð’À—„d ’xprš(‚Xsi— ¦2y÷i¦8Œ0abœ¸Š‘et ‡(¤0r›Ð§©need�ƒa…ÿ…ú�ø¦a§Ø��minis’q<£X¥®KŸ©ild‡xm¡ød
    . ¦O¦H«A�/ª©¤õ/¥œª!¤÷¨rL¢vž¬¥,,”Ð¥˜§ Clojure/©W©Ps©Y…Àub©:techno¦Ðcy/le† ngen#readmeª8M">L€õ ë�ø„¯­N">‚!°as©¬®?®T•‡®ˆ°è±lsoäo—*re˜¬¢“ú²ùexŠð²ð˜Àf³È³(´r¨#¡¸°³s�˜clu®8shelžÀ‘¨“±oÉm‘€Magi”Ir¯g²ãP">curŠ%.׊"ª³«3may„#„ѰH±Ð´`¥imo°�¸ãsŽj­X�z • rante‚Q¡s“”‚N¬h�Ý¢�¯)šTƒ‚“‘Šp¼AfutŽP, ©�@¡b¼ù•@s»!f½!‚Š�Tˆý— ¸�p¼x—9•ª�ŽIfƒž—Y¸P³‰á‰Ía‹Wol•i§Á³È‹ou–Ȧ ­˜dor¿iž\ b¾/se¾ò€W> <€1ømlnsµ�µˆw3µ21999/x�Q"�+:epub¶ß¶Øidpf¶’2007/ops"‚¨–> III.ó¨ig‚¯½ˆs²xe‚´-in-·x-¾ðiron­ƒO°�3ƒOQ3Œ 3…ï4">S‚aŠé‰à–­‚gt‡¨3µ±…Üfirst-p½h €_-af»Ð-hƒWIQ5¿�»²’«Î‰�6ž��L«�º®¯¶ôs¿Èk£aºXvary¼xºPž�©†X€€_€¯€øŠ÷Q7">º€loy§Ø©(³Øgµ°,³Èodu˜2,¹ß‡ïnt¡¸etc)¹ñ¿@¦s:¾Jul�'8–Àli�§9">Resour¨°h¸¨¼ldataºñ,ÍemcºXed,¹2o¡â‡‡‡o‡¿‡”!A¶hac–�g¹Hrvice‡ZC €¾8i®ÈºÉ—€erna§p�Ìóuc¹àsÁmaz¯hS3¬¹Tº�º`‚——ýC">P�à‹ �plu‚¼²canonicƒh¬€ž±º2ˆbŒ²…3/u£ˆ´tš¹D’´so¡@œÐ„À•Og… €»�(¬]¿Ñ�]µÈöiolªØµˆ´Ð’¶ß¼b‡0requir´è€˜ic²e—q‚=™Dfromƒ‚ª@�Ò´Ø£û•‰iŠ2b„ò‹@¹¨across‡Œ´h¼òdo¸¸ºÀ¼W¢œF™à˜tmu¯°e¶Ð‰‰²õaš²’¸¼ál�Ícorr®ˆ½½ë¯ »‡ÉˆÔ·Ùµ‰s”I´±tma¼ø˜n‹¨•ڸؾ‰mŒnt‰ µ½©µ™ˆis¾1¿‘c’Ÿ†g¨üG">Not»N¼definiŒÅ"¨åˆrŒGªôH">‰‹6œ%¶‰•»¼˜l’ð«‚«;,–<‹:­VI£Õ/rºes.rbSpring.Ôhisôypeïfãonfigäoesîotöaryâetweenäeploys,ándóo �Àbest�pneénôhe‚de.

    A‚pherápproachôoƒmƒù�Ðus„gæil„whi�Xare„jcheckedƒX�èrevision…™trol,óu�as <„!‡M">†³/database.yml…¹RailsˆDˆXaèug†€m…Hvement €@r…‰˜‰ stant„燠„Çoˆ.…po,âutótillè„Øweaknesses:ét'såasyˆYmi‚°kenly‡3Šyaˆgle‰�‹‚±;‹Qˆ …jtendencyæor‰ï‰é‹beócatt�pdábo„h�@diff‚†Èplac�PŽ�€¯‚Hmat�8mak‡™it…àrd�‘seŠÈ�èmana‰ a†¸�«ŽKn �Q‚ª.Æur�‘,�¹ŽØ‚´…‚„Ülangu‚@- …Øframework-specific’?•ÌN">T“¸•lve-factˆ8“(‹¨or–(„ßenvi‚`� —8iab“�
    (of‹óhor‹@“Ø•°‚Gš`Q‚B™9�Û†QƒO›hRƒJ‚º).Å�d–š�åchˆ@e›7›3÷ith�‰€ú“Ùan�èšø;õnlik‹¾™Z‹:�£litt‘ˆ‚¹cžªœÀmž(•úš•_•Zácci’Ptލy;Ÿƒ=uŠ`mœÏƒr“hž‹¡”me†9ismsœFJavaÓyst‹ÈProperti…Lyž¢a�¢šOS-agno™xc™ £(“°¢g¥ôS¢ga‘Qœð¥¾”»�š¦ group§8.Óometim—Qpp¥¨at¤•®¤Pn“àd�‹s�­c–ð£h"‘Gts")�\a�Àr •U¨×¤%¨Y¤G«ºT">develop¢¡¤,¥w¬ëU">tª €þ«Y¦�®V">ª duct§ø¦E–w¤Ø¦¯®ê‡èhoŸ®­ ˜‘lea£€:©™m™`“Α“š*¦òreated,îewƒ?¨°‰©–Sne¢0s±X¬/¬/³¡R0">©¸–9«Í™I­O�!1">qa¬Ä.Á°³±pj�)Žhws梥ŠTešXma’pd¤øhei”¨w�x¢ alˆ§­y™’°ß„²2">j·P-„ߌ£¡Èult§â¬;mbina¢Ð‚²x¸0³Ò¹‡µC©€¹¸¨â±YЇІ²@ºxr� ¹7‰$3">I¯±¦g¦d,Žñ¡Çgranula¯r·Ñ¼ˆeº‘fu�ЪX¡¸gonˆ»»«¥¿i›än”Xr™¦ºg‘ šš—�—‰,"¶i·¨ea²³±³€p³ªtµp°Sd³ò„2¥ûºa’ède±Aa“Ôsõ¬ømo¢·x™l­™‹ur£ù‹!´ –I¸á”ï”è¼YiŽ‚fž¢±3/s P˜x€W> <€1ømlns="http://www.w3.org/1999/x�Q"�+:epub�W�Pidpf�b2007/ops´€hˆ¸> <£½ˆ¹Hset="utf-8"/€×£="g²(r’I"�ê¼="‡Qoc�dti­Ø>IV.Âac»òServi½(T¦±°P‹+†µ¹‚Í 1‚ˉ3´!†ôfirst-para»Ø€]-°’-hƒ¿3C5µX <»àŠ®6">ƒŸŽÂ
    ™B¾ðŠL«þ¿suµ¹—²½ynetworkºù„·â˜inorm§ˆ»!a°±.Åxamp›ainclu¿ data¾@¦Ø (­.a‘¬˜|µ.mysql.§˜/ŽC7">MySQLC� DB‚),´ˆ±p°i/queueŒy£m„ç„ç�_.rabbitmq„ÿ•c9">R€ÚMQ…†ßŸQkr.github†Úb·Ø´€lkd‡73CA">B€Î…\SMTP�ÿ§1outbou¼¸em» ŠoŠo¢çpostfixˆ�šãB">P€ÓˆŒ¿1c® ˆW�7�7¥¬mem�aed‹G�›C�0€å‹R³ž¬D‡—Ÿ—›¸Ê¿‰‘bas¿Ð¿°tradiª‘¬‚¯5by¼ªs¿Ð�–adminis�ˆ¹š·t'sòun­!°®·d‚ôñ¿ƒxlo°°ly-²]¢},¹¾¿lsoèavƒð�mprovidµø‰ù…»pird™ie· ˜_˜\ާŸ™˜w˜w°ê�émark½È˜‡¨ëEŽ €ñ–žtrics-ga»‘¢§››³õnew®(ic›w«ÛF">NewҀᛗ�_µÕloggly�g­ËG">L€Ê›k ƒˆ€°À¸À‹binaryássetóervices (such€¨ A€âÓ3),ándåvenÁPI-ac‚àsibleãonsumerƒŸƒŸƒŸƒšdev.twitterƒ¢ƒ�CI">T€Óƒy,…w…tcode.google…zapis/maps/index.html†CJ">G�jÍ� ‚›orˆ'ˆ$www.last.f‚’ˆCK">L€Ë‡ú.

    Ôo�e‚‰,âot�r€pttachedòesour�è�¨�B€ via„€URLˆ9���€ƒq„¸/credentialsó…@‚inƒ‘žX€€_€¯€ø‘çCN">� fig‘É.Á“ׂ?‚�‚ß‚?”O">deploy”ïf‡’Š�Š�shouldŠá”qtoówapïutŒŠ‹MySQLäatabase ”hïneŒ`nag‰€b™¨‹—‹�™§™§™§™§rds™¯3CP™®RDS™²ƒb„Znyãhangœ�…�ì's‘j.Ìikewise›0�,SMTPž*šÈc‡†Ñp�†…œ-‘+�†Ÿ¨Ÿ§Postmark„O”ê„T.É“à‘ùcˆÀ‘ponly’Ê’ …˜dŸ �„Ž»îeed†:†“˜ç¡ìQ">E”P—âacki™P…is˜à•µœÿœý‡R,÷hi­¦8„¡‘heiœño•`�Ø…`£(‘¬˜“Ÿé¯HŸ§¡ˆo¥®$T¥im‹°rc="ŒŽH:embed:0002?mime=im˜/jpg¯àlt="Aðrodu¤»ƒlƒ'o¦¸urޤÍ"/>©² U">R¤=’ø§!¥²Yde‚·ŸC�¨tœèll�ï�êiŸÛ™ƒ�síisbehav’ÙduŸâ· �`w¨yissušˆ›_admin«°r§±�ègh¹8p§Xu®À–¨w¡›ÌªH¨ƒfro•hªÈc©H–zup�“curr€¡‰¿£O�Ƈeº+­Ñƒw¤ˆ­Î--Œ0l¡¯¡©�‡° ´(/se±²€W> <¸qømlns·_·Xw3.org/1999/x¹“�*:epub¸¯¸¨idpf�b2007/ops·xhead> V.ÂuilˆØrele¬ø€HunƒO¹ø¿ictly-se¿à pƒÄ¬0ƒ¡-stµˆ†Àƒßel3ƒßU3�93†Ç4">S‚œ²h‚› †Zœ"‹P¿�‚™ˆ¸3®!†¤first²Ña €_-after-hƒ�JU5·˜¿¿¿W¿§¿‹¢6">·é¼™¿°¨œØns­�m¼¨inžz(non-d‹opm›è)¨rough€Ae¸ÐˆÊ:´RulŽÏ7¨ li�O8">®A³æ�é9">ˆ›Šò³úµ„~­·ø¼x¯p—ðº9repo…Dnµ`ecu´ð¹pbu¹ªknown¼1·g“jAƒ„·LUs´Ú ¿Ps´‘o§{½Jµˆƒammi¥Yecifi¿øb½+°cˆ©­©µ ¾½é†oeæet³ »x«�ve›ðr´È����ߎ/�™B">³è‚enciµá�˜®A„ðpiœ¸âinar€Ð®ò˜Ðet¥‰liŒ›QCŒ›öD¿éŸêŒ>ôak¸k•Œ´Ë‡ÿ�§¾�„K„¿È‰`ª¹‡y±À­E•g•o•¿–•g¡E•anfig•Q¯Ë¾0ult¼Ù’o¢PF†f’K§áainˆøo„œ›ÿ�;‚¹¸’¶�r«y»(rém˜(i�y’ˤZn¸J€�environ˜Á‹_¦®G—g§NH‹XŸ­—S(also•g"«ðtª(")¬AŒ»Ðƒçƒçƒæ,”‘launch¼Ysomºt–U½Ë¡/¡7¡‡¡×¡/¬ÉI">–ä“�gŠq˜¹s±€ct¼è±Ì“l/u¸¾ˆ®ÝJµÐim„°rc±†embed±‰3±‹imª¸/jpg®0l¶˜C»©be›È™Ù©‹, ,¥8“Td“;Ž¥pc�ø«a„–¸°½š„UK">‚÷‚÷‚÷‚÷‚÷‚÷‚÷‡�‚ß¶(Uƒˆ€ÀÀ¸À‹L">Theôwelve-factoráppõses �pictóeparationâe�Xenô�¨build,òelease,ándòun�°ages.Æ‚ exampl�0itésémpossiblƒàoíakeãhan�À€�‚ñcodeát‚‘tim‚øsinc…Phere‚no÷ay�ñpropagat€éos‚Oback‚u…b„Ó„Èp>Deployment„xol„(ypicallyïffer‡-…Pn†è�O,íost„htab�hˆ¹abilit„Òroll„>a…Hevious‰�.ˆ×ˆÑŠ¡C�Fä†ç†áލorŽà�¼ŒXn„Øsubdire�ùyîamed <Œ‘UP">��,÷Œj�rurr‰ñ‰E�‚¨ymlinŒ&�'ŠcƒŽ.Étsƒ‡”ÓQƒ€‰øŽ)ƒ„�˜mŒd‘z’t “À�quick�`‹‡‹‡‹‡�×—õR">Eve‡�Žýshou‘@al’Øsèav”õnique�ID”`uchá‡!”á—ˆmp‘H˜²‘U(�%ŠG›’S">2011-04-06-20:32:17Šœ) ›ùnŒ cr“2i�hnumb”‚�ŒÏžT">v100‚.ÒŽÕa™P‚hžxend-on–pledg–x�Ya–®can–žàíutš@dï›Y�S„H€™.Ány�$�8— €Ë–¸new‹šç£U">B¡9„kinitiƒ b™dpp's•velopers’‘n€pr‚ª ¡h–„!R k¢pecu¤‰,‚Qcon˜¸st,†Q�°‡�áutom¥¨ž3—(c—r�×serƒIreboo�اÁ‡hash—࢘ces¢eŒ ™xtar…¿€þ sr. ª �°šÀž3¨6’�ŠØkep¢é‘±f‰ˆmovŽáªÈ—Ø’P¨}§E¦¨¨èm¨xh¨(¡Ñ¤éŽsærom«Yn�ù‡¡ca­€ªÙªhb�ˆkž±­!midd« ”änight‹"©ù‹¿‘R®ð¬�H°‰©‡�ú�⡸œ®0x¬uerro�ü™¤ƒÄˆagrou°˜ˆ¸§à�&¡¨oŽªriˆ²Q¥¬Ë/s¤0³X€W> <€1ømlns©K©@www.w3.org/1999/x�Q"�+:epub�W�Pidpf�b2007/ops¸Øhead> ‚Ϻ¨œóe-¾8-£è-as£èe-or-’!-¼0tºxssƒ÷ƒ÷ Y3ƒ÷G3ŒÑ3†§4­˜‚û¢ ¬A‚ø©Ñ•‚þž5…3¿™‡first-›Øa €_-after-hƒï4G5">˜i›™¶ˆ†¼dšå¤.ånviron»"„w™Š„§/em>´—�œ7">I�Ósi›Q«A½0¢»¨…½xt¸@-al‡Áscrip§à„Ÿ„Ÿ„›¼j«.«ˆlo¨°ìaptop÷it¶`³¡¶@l±€Èngu¥ñ¦@·,±‚§Ï»à‚ aunc©avi¸0„ò¼ó¿˜·ðŸ±ex¸À¦™¾ß”Â8ˆ8yth£ˆmy_…û.py¶O¥ãoºx‚(¿ˆºÜsp Ørum„€­du–c°û¼®¨ophis¯±¶9©amay ¨é­`y s�I-�D…”…>¿êda¨À´znee¾�¶h½¡‹xíu•H·(s¨ˆ™ •"teful‹¯‹¯‹ÿŒO‹¯¥êD">bac¨Xg½RiceŠ)»yp¾¤²¨„�b¾¸š?§ÔE�Ëmeµ¨y‘Àaº�¿fi«Pystœ ¸”¿M·$º0‘°›brief¼jgl¦PransŒˆ©Ùca—¸.Æ—,äownload¾™ašÈr¿Øƒi, »at¿Y«±�8šY‰9·åresult¦½�„­¾‡&¼Ât�ﺹ§ðn¾0»ssum‘(Œú—P�b…[¥‚ˆT¼X™‰iskŸ¸ll¾¹availablª�±fu�É´Ðqu£é½àjob --¡;š*”ŸœÀeˆp´Š—­,¹Ùn·ˆ•Šhig€ø„ª‚߂ۄ Žñª¨bŽŠifferª9´Ì.Åven÷h€(šµon�译µì yŠ0tart (trigg‚‚ЩРû„¸onfiˆ „ðgŒÉr®/®/®,¼È©�º§¿—’…'… hys”aª‚º¹)гusu• wœXïu° ‹X«£(e.g.,”ͪ¹”§)µÛ°§¾A½ˆ ˜€¬¸rs (su‹¸·È  doc�@ntcloud.g®Øub.¬Ð/jamƒˆ€ÐÀ¸À‹mit/"áid="7K4GG">Jam€¨ïr ��ƒ )õseôheæilesystemásáãac€±„ƒ(p€èd€Àƒs.Áôwelve-fact…appð…ersôoäo‚ˆis�Äingäur€9ƒ9†vX€€_€¯€øˆ¯GI">buildót†èˆÑ,óuch…Y‚·‰'ryanbigg‰ guides/ˆú_pipe„ e.html‹¿GJ">Rail‡ÐŠ1 �=ƒ[ra‰r‰8anátòuntime.

    Some÷eb Š[sòelyïnŽ7Ž4en.wik„hdia.org/€q/Load_balanc‰À_%28‹éutŠ(%29#P‹i�nce‘—GL">"stickyóessions"‘ê--…™tés,ŽzŒY�xr�=äataéníemor…8f�RŽx'sŽˆoc‚pándåxpec„)æuture†°questsærom‘úsa‡Èvisi�‰�(b�(out‘°���‚¬.Ó…‡…�Ⴈa‚olat„Ñ„Y“'“!„8shou� nevŒhƒ•Ød™‹ i”øupon‚Іä‘Pte‡–�™�d–¨ndi‡°–Ëaˆ s–˜ŽÈof–#Žè-‡ i�ÀŠp“_œ_œ[‰À™:dŽž/GM">M€åžGžG•"�Øs.ioŸï4GN”0€¹Ÿá’û/s‹Ñon€W> <–Yømlns¡.www.w3’Ê1999/x—{�*:epub�W�Pidpf”*2007/ops"‚¨ead> VII.ÐortâiŒPngƒ¯šP‚ñœ(višø-viaƒ‡ƒ‡ƒ„3ƒ‡23Œ¡3†W4">E‚jŸ¨‚k›øa €’ƒÿ3¥ †first-para¯h€]-after-hƒ_L25">W¦®¸œËs¦¨§‰s Hecžªinsª¨±8§`†i¨ð�ÁaªÐr.Ƶ¸example,ÐHP‚[migh©ê³ module‚U·7·3·id.a¶xheš÷Ž+6">A€ÊÈTTPD°{¹PJavaƒ_ƒ[‚ÿº/º(to�Ðtƒƒ‘(7">T�œ?¯4’8˜èstro¶À’¾9��º ¸¿¸½¸«"doŽno²ð±”³4­j•­‹�r­ÈªÜŒ³®‰envi„Ðmœ¼Qcre¨)�2½i¼a“Ü. …‰µQ½ñ†�™DA">•[s‹"�“•´ây�ý¿y“£†n,±’lµ:�±v¼p´!³�¸�´Ú›aºG�,B">I»Hìocalä›Ñop†¢‡t,¿Ê€ì¼è³â…7eÕRL„8k’Øco•Y C">¼$ƒhost:5¢ /†¢c·â¶Ê‡¬�Ó¶€‡ð¹0i�. …Hdeploy„£a·²»Ilay»Ph¹ø¦X€¶¹Ï¹É�xublicŒå„aª�¹¥¤Sou¼�Q¼œes”§¦¼D”·8·P¨Pi‰¸“piœ�Y…«us¾ ¶X€€_€¯€ø§o2E">‡0endencyŒ�¨¨¸ã¶ê�)dd o¼ðlibrar‰P¿ë¢Xº7º7µg¿nado¢pº_­“Fœi€êºJ½ÁPyth¼¹¼¼{�A.macourno‹ð.›Ø/thin¡ïL2G‰Z…Ë‚iRuby¡ò¾ï¾ëjetty‚dehaus¿€š¤WL2H">J�9„Þ¤žxoœÈ¤�VM-bas©ˆlanguag�à›È °hªðenª�Ÿ(Ÿ’˜¨u±8ó¨e Š¦È¥i£ùon¦Ú ãž²can♟¡‰´Çng.Îear¨€any ¾Ñ¦Ñ²4softw³©‚$±y¶Á¶Ð—ó£ß…¶©ùawai›Âin£4†Å´[˜ønclu³o””ejabberd.im³gL2K¨H€Ô—b(spea… šWµ•xm €µW½ªL">XMPPµ)¨Ë·G·Credis.io·L2M">R€¹ƒ�ƒŠ¯Y¹?�ÿ�útoŸ¸s/¡tocol¾w2N‚t¡ù€â„r¶¿¿¬O">No±ils²±¬à¤¯l¾0ro¼ˆíea•Ø® onžò�œ·`�¾£?£‡£×£?¾ËP">bacŠòµ<Ÿ¦a¸Øš‘¢R’�rovi´»È¯a¸l‚ »ñµ²res ˆµ¸¬c³ñŠW¨O¨‡¨×¨O¿íQ">¾fig¤n¼ ¾˜su¶Ú°¡¶z/s½«€W> <€1øƒˆ€àÀ¸À‹mlns="http://www.w3.org/1999/xhtml"ø�):epub�W�Pidpf�b2007/ops"> VIII.Ãoncurrencyƒ„ scale-out-via-the-process-mode�ƒel3ƒK3Œ™3†O4">S‚a ‚` ‚` ‚` ‚d ‚bˆ3>AnyŽ8mpu€è‚©gram, �°eòun,és�@pres�@edây€à„PrƒÈr„6es.×ebáppsèaveôakenáöariet�¨f…•-execuŒ:form�ÐF‚pexample,ÐHP‚·„ás”˜ildƒo‚qApach�€star„ÉŽ°dem”8��need…kreques‰¸olume.Êava…·…:Šzopposite†ro‚Ø,÷ith‹ZJVM‹yviding‡úm‘@i‡0uberŒMthat–˜serv…Èaìargeâlock‡ñsystem� our�0 (CPU …�meŠXy)††jupƒä”çyƒ�nagŒi›ˆrnally�Tr�à‹ðInâo�¡aŒh,‘�øn…‰“´(es)á� on�èminim‚Œ �Qtwelve-fac© ™,™¿ŒŠ�4£ûãitizen‹˜‚›>И~i‚—‚—›¨–C„c—ˆærom ¤��‰¤¯§ žù”.˜¹i¢ da—pns.Õsš‰th£ ¨š•Ô–h¢rŸèt­À§±i‡to£(±)‘e‘žs¥ œég—Úe¡ ±‚¤’¹—1a <œH±>B">’wpeT‰do¨€not©XcludšPn™idual¬?�ÈêŠÛ‰™ow·�¡Äíulti«Px¦`,¢'‰Ðinsi‚¸¡Üt»¨ÖM°Xr 3sync/¸Ð°:� †™”©oolsóu‹p­p“¿“»ruby�Êm­˜ine“âºÿKD">E‚ÁM€û�á,•ç•ätwiªdmatrix•òtrac”O5KE‰H�+‚µ ˜˜ n»Èjs.org–5KF">N¼�.j”¼B»8“Ћˆ@”b©ÒŽHwóo¯(¥ti¿P ¿z)´ˆªCšq€À·Bmu´al�¨‘Àa«lsp–ðŒuºO­¾�€õhysƒ*Ф¾UG‘1¼†œ tru±@s�’÷h¼ˆi£0om·ÉŽù„1¬ªout. ‚¡–X€€_€¯€ø KH">sh²Ø-”ø�’ÀhorizontµJp½¦¨on‡Únatu´1²è¨Ï¦<¿Î¡¸ÈanºÄad»â¹He¸¿¸¸²paói�9ºbreli‹ ¶‹ê†Ãarr�°¼8±Ï±È»únuµÀ™(€æ½ð½€¡ßµ�knš!µpºÁ¡÷¸HI¡÷§x”ð�€¢¹Ÿ¹›J”ù°W‡�°K­g­cd‘ in.github­r­H0/02/28š�¾Ú-¹®.html¬¯KKŒ‘oul†ø¾€r«¼²ÀŠÊ´8wrª¨ÐID³àlºÉnšøad,ЉPµÛŠ4®y›ðm'»×man¾ør (Ÿ·³o³iupst�È.ub¢h³ƒ±·KL">U� Ÿ{a¿hºibu¢ùƒ/ƒ+š a¸øou€Ølat‹Q¤Ê¥è£Ðìi·ð·o·kblog.da©dol�hŸ²·j05/06/¨�roducŠAµPe†ˆŠ7¾ÃM">°@€Ñ”‚»ð´äm¨0)´9ˆ3»O™¿šš_™¿¹ÒN">›Èp£p¿Peam¸²Œ spo±Yoãrashˆ‡e²ì·ìuº¨-inšØa¬¡�À‹‰–³shutd¯È²„/sº¤X€W> <’ømlns­Öwww.w3©‚1999/x“;�*:epub�W�Pidpf‹407/ops"‚¨²Ø> ƒd="ƒˆ€ðÀ¸Áñ¸À‘maximize-robustness-with-fast-startup-and-graceful-shutdown"ãlass="level3"áid="AFM63">MƒD ƒG ƒA ƒA ƒD ƒ@ ƒE ƒETheôwelve‡ ctorápp's proc‰¸esáre disposable,íeani„Àtheyãanâeˆ#ed „ˆstopp€Xatáíoment…notice.ÔhisŠcilitate€aŠ`eŒ¨�Hócalƒ ,òapidäeploy‚Yïf‡o‡o‡¿ˆ‡oŽÂ9">cod†(‡@‰À‰—‰Ÿ‰ïŠ?‰—�éA‚)nfig‰zchanges,�Ú”'…!ŠÀduction…ìs‡àp�Q“NB">P‹õ‘€ould’`riv�o �÷”ÄC">min”C“�timŒ°Šœ.Édeally„€„ŽÁôakŠà“pewóe…àd‹°rom�ñ�ú€Jlaunchãomm–1ŒÐexecuŽ‘until�r‚��À—tready…irece…Árequestˆrêobs.Óhor™ƒŠ“˜vid��mo“xag�yæ–`„¡–W–_–¯–ÿ–W�©D">releas�‡õœ™’\… ;�i”Àiˆ0¡§,–causˆc‰ÕˆPager—…R‚ðily–˜�™¾�YnŠàphysi•¨�¸chi¤P÷hen÷arran˜Ð�÷£¥Q ¥Y¢®ƒè‚ª›Ê‹�aŸçhttp://en.wikiœ ia.org/€q/SIGTERM§O6G">€¬Ÿáœ×sign†H‘6ˆ�ˆŠ.Æ£¹÷eb“5,§Ç«’!ˆQªðdâ¡@‰ñ¡©oìistˆØ˜Ð”!serv Ðð‘A(¢ re�x¦`u�‚any‹’Õ)›hllow€åcurr ¹“Ö™Øf™8shœ³¥(n–hit¥�™mplic�iŠ1¤m �l—�th¥€HTTP–'¨iœ¸„¹no•k�0nšoši„€¬(‚ze¨h’ ¥l­¹pol¦€Òli¥éŸ5eamlµh’pattemptš,onnect�6œˆ€Š¢1©plost¢7µ|H">Œ„ork•xŒŸ´_ŒŸŒŸ’tur®UŠN�¸£ù ù‚‘ žˆue�£exaŠe‡�n³�“¬www.rabbitmq.¢@/º—6I">R€ÚMQ³2‚åšìse¹È–?‚—‚—‚’amqp-0-9-1-quick·€.html#bœÈc.nack¾?6J¾8¯�¾ÏK">NACK;†W™ÿkr.g¾àub†:b·h¿lkd†—M6L">B€Î¹Ñ�3‰á¶°ŠË¸pŠDŠáutoma¸0­ ò˜à�Ï »@�©¸Lock-†Àº˜sy™xm±u­a¿_ŸzsŸ€…w†Ðll‘�ve«a/–àayed_¬X#­ame¿ï6M">D�Êob¿úne…«¾‰u—y®Ñª²¿iir–Èck�Í‘I•™rdšÇšÇšÇšÀ´¨°zšš¥¥¥¥}Re¿h©Ù_%28subrouže%29¾Ÿ6N¯±�DŒ3whi¶@typ‹<¤7¤2wrapp—•resulµ` `a ƒasa½Šž’mak˜Õoper�À—¯«W«W«W/¼0mpo§c‹M6O">·¨€Ë…j°—¿ P°—�p¡SalsŒz±·ŒQ·ˆ¶ ºai•‘dd³��Àth®n,¤ß¤Û¥èailŽé¥¤underly¹hardµˆŸpWhil¸q¿X®Aí“ᥑ¤�mm­Ðoc«Ë­È¨¤°°wš0 œ'½BR³§œ;…t 3ti‘0h�¶Á¨rmm Ø²�¨roºÀ²©½9†B‡ü¥¿b ¢P,™N�¬!®ø§‹s”[œçœà½b­#sœOt®Ùtim® ut.Å °«way´ ôwelve-f‘ ¸ypp·’r¿èt®Ÿë±pdŠ@unexp€ª,îon-¹ntermin’⟠¾G¾Clwn.net/Ar¡¨±x/191059ª×M6S">Crash-on²`de½Ù«ak’(·µ8ce³i¹­Ï­Ëdocs­ˆ¢èdb›úen/lat»`/iœo/o¥0view«b®·6T">log¦yƒl½€oƒêµ/¹µÉ€W> <­ñømlns²G²@w3 B1999/xƒ³�*:epub³—³�idpf¡¢2007/ops¯¨h§H> ƒ¾Pkeepƒ!elopœÀt-¸¸gª`-—(-ˆÉu©ò-as-similar€Ypossibl³È„el3„O3�¡3‡O4">KƒX¦Hƒ^ž ƒc›ÈnŒƒloƒˆ€�À¸ÀŒnásóimilar€YpossibleHistorically,ôhereèaveâeenóubstantialçaps€°tw€Édevelopment (a€}eríakingìi‚editsôoáìoƒ deployïf…1ápp)ándðroduction„Irunn„�‹�opáccessedâyå�Àusers).Ôhese†ëmanifesténˆPreƒ0reas:

    ‚Øôim‚ò‚(�>Á‰‰xy÷ork …øcod�€hatôakesäays, ‹xk€8or ‹˜níonthŠªgo…@Šèˆ.FŽ\welve-fac™�’¢iˆIsign’¸f�—http://www.avc.com/a_vc/2011/02/cŽ0„(ous-–ÛšI.htmlœ÷OG">�G–”›‰˜:–0keep›a˜yœèœçœç™™smŸ@‘8”]Loo�z“¡•i—ªŸJ†Àcrib™€above˜'¡åH˜'¢bI">M•¸‚C—¬ƒƒ: ¡—’’Æž£‚it�¬�hou“ð—�juœ˜m� t˜¨la¦0—O¦^Jƒÿ–ׄ':¥–¸ho–Øo„§˜closel–ˆnvo�(d £«¦q„à£Ywatch€ƒ¨Q©8iœ¸¡h¤'œ«.KˆÏ˜ˆÕŽ!ªo��¦�¯‡¯‡le•ç•ç®xL">Summariz�Å�ê¡Ca¢¸±`¦s——OM¥Hra­Xª¯8ªÈ�±;N¦X—ç—ã‚7²[O§x§Y±­‘sƒo³“P">W¦‰„/´SQ´P�©„ïµR">C‘:utho¤�vs©;‘\��¶�S">Diff¶8´Ðpeop¸ñ‡�·±T‰8a¬°€÷ 6OU‚evƒI²×±ˆvi®ø·y†Ÿº,Vƒ‘vergœÚŠç»P0">A½—½—„§�L1²�¸ï¸ÿ¹O¹Ÿ¸ïƒ2">B©0»¡¶ˆvi·(¹9,½Øch‘ù¹l'²��as®`queue�šystem²òc©;¦˜on·ËªàŠ8¿Y/»)ð’Èt¯ sémporta¥˜Íanyœ¨nguagµ o‹Ù¿ðbr”0¶ ¬ø„8–plify¼,µñ¾!b…υɃènclud¾adapŸÈ’€em>·ñd�.typƒÊˆ.Óo»¨exaƒ°º@Ÿ¾’¼p˜³low¹h¾°˜š€8head€pˆ8lass®€€er¿8t…ðtyle="text-al¯p:ìeft;¿ƒØLˆü�_‚—‚—�[‰Òy‚¯ƒçƒçƒâAˆ–„/tr€)†Q—a†·ŽgŽgŽbPy£n/Dj–`oˆ7�ç�ç�âCele�J‰‘/‘/‰xabbitMQ,Âeanstalkd,ÒediІ¯�o�o“Ç“ÇC�a�W••�W�W�–o–o�SSupžá::ƒ'‘Ϙ'˜'Memory,æi›`¢|€ ¢z�””씳/›œµÇP4«š¼õs�èt²Xs‚˜»¨�8a»øppe´è¼°us¼‘a£ gh³X€1¢O¨Ÿti¤Hoc¶˜­÷ts,¤™  a …¸e©¡iou¡ ¾ørobus‚o‚mwill¿pƒÈed¿o¿jƸh£D,„Ô•{ƒÓl§�¾€–w‚¾ñ;«Á…¿˜¨ÒmŠr欌¾9¥Ø¬ˆñ³ù…R‹„‡„‚¾ß³û5²°stµÈ‰ˆ´�6¿x¨Q¾�¾ˆƒ ­Øresist±»u¶ ­a‡Ð«‡­·³|¿Ÿ…7Š‚ºL‚Ètwe€1ìocalóervicesár‚hess†°…hll…qth‚˜†`yïnce÷„@.Ío„€nâack†‘‚suchásÍemcached,Љ…�SQL,ˆºRabbitMQƒjnoˆÈifficultôo‡stallŠ ruƒÉanks€Ñmƒ›pƒ˜agƒªystems,ƒ®H€¼�Ê‚G‚@s‚Hhelp.ubuntu‚Jˆðmunity/AptGet/Howto‚·P9">apt-get‚©.Ált‰xŒ�vŽÐ,’ clar€zðrovis‘ ‹boolŠ/†‡†ƒwww.opsc‹à„;hef†g6PA">C€˜†Gˆ‡ˆ‚docs.puppetlabsˆ¢ˆ_PB">P€êˆJ�bin“˜wŠ“‘ -‘¬virtu‘¸en€Pon˜a�׌/Œ+vagra‰Èpƒ”SC">V€ã‹Ëllowšð‰oper�š� •ƒ_ƒXwhi“0clos™A—proxim˜‘Šhduœ„ïts�W�Q“œQ�9us—3es�x’›œI„q˜1˜˜žXožrbenefiŸz…H/ƒq”€r�HŸŠž¯¡7tœœD">Ad�ð‡$—ñžØ¡šoœwóti˜puseful,„ca€`œ{mak‘øor¢H‘Ñîewœ�ž•rel“¼™Ðinžé.Âut‹�¦ds¥ûe¡Á (ŒŽÿŽø›(t›²,‹'n)óhouldˆÀŠ7óa¤Htyp‚€¨(¥–é©e ˆƒ]¡Ï£Ó¥C/se©ú€W> <€1ømlns˜Ç˜Àw3.org/1999/x�Q"�+:epubššidpf�b2007/š€"‚¨ead> ‚²¨µxat‚Š-as-�ønt-s€©mƒƒ3ƒA3‹¡3…Ÿ4">T‚A´€g´0¸8‚A—è‚B‡83¶)…„first-œÈa €_-af«-hƒ7NA5ŽÐemˆÏ6·àŒ‚em>«Ãde¦hsibilž!inŸFhaviorº‚´9½ºº¸.Én¹rƒXbas¼ˆ¨'¨ ¹2º!± on¾(w è‘¶Ñ…ql½¨n·ˆsk (a "Œ8€¡");✘th£À£Ø�Ò¾@outp�Pfor¦è¾W�<¾Q‰r½ ¤é·÷·óadam.herokµ«past— 11/4/1/�_¿x_�d_¼P_… s¸õ’Y¸ðŽc¸âˆqg¾Xg«X¾Èt”ø-or¼°ˆA�És±°llž ±¸from©ª†4�¤Šš¿Š­·ø§Xs§q¿�¨ ¼š ­�­iròawˆz‡«ypi°à° ™1‰Lµ‹one’,¦Y¯he (t¥pgh«Btra«…*excep±¡sª˜yóžXíultip�x�Ñs)„D�°eîo“¸x¸Èbe¨ˆ½º‘Penˆ�Ž)�ù°T°Hµ²a³a‘«*�!· ¬Èng±�ü9¤€š�šž�¾ÐAôwelve-fac£Ø­jn¹pr³¹cer…ðit¸ˆf½‹r‘è„Üs¥Pag“зؽHŒ‡� ´ðƒc>É›€®{�Xᕸmp” o–"³˜o‡9man‚Y•̺ÈIºh©è,®ó޷޲�Û„Êž— Ð,õnbu·Â’Ao .Äur½�lo�ˆ»áµ¾Ù”0¾Ðµ§w¹qvi¸Pšj¤K’šIegˆÈ¿¨·“’�¼8min‚¨‡bžÚ¸e's N¾/«$C"> Q¸£�¸·ºµˆœ— '„e…¹ˆcaptu™Ñby»êexec�˜¹X»Ç†øš‰›y¿ge¿¸‡–ø½ño€zšÅ›†¾0,»Ú��ʘj�鈩˜‡qdes•”—±£‰¢§*½ •y-ˆÉ¦`chival.Ôhes¾�€„‚™±§‘‘¡ªZ§‘[¸Øfigura€™‡,„æi‘»©m›Pte©x’ûˆ§ˆ§«?.Ïpen-sourc”R‡Krs (su” ±ð¨_¿¸s¿Àg ˜ub¨:¨“¨žøx··AD°ò€©§j¤yªŸ‚G‚Eflu¿È€F€â©¡)°zavailˆB‹Y¯:purpose®·½ìF¸P�q¸m�°x¡Ñc°¸‘èŽß²³,¤watch´˜viµ ea¦m°ÐƒÐª©—S.Íosºàignifªntlyš;™tƒ$s¼µÂ‹!index‘  (lys›yŸðm ‹Ç´´www.splunk´¼ßAG">S€Ê²É…òaçen¨ l-ˆÜäata†¨re­¸s°²ƒw�7·�•Pe.ap¤@e.org¶GNAH">Hadoop/H�(¶i–•†º0l­Á˜Q·²(pow±À´¡f‘8ibilƒˆ€ À¸ÀŒityæoréntrospectingánápp'sâehavi�overôime,�Xclud�8:

    Fin�a ‚áificåventsƒˆôheðast.Large-scaleçraph„Éofôrends (suchásòeques‚�p…minute)‚—„ÞL">A†ève ‚ˆr‡3ccor„êtoõser-definedèeuristicƒGˆ¢�Ñ÷he…ãquantŠ „°error„'teåxcee…Haダa‡‚reshold…/ul€(s‹©on€W> ƒ?˜€runƒ3managem—°-tasks-as-one-off„„„ 3„S3�Y3†÷4">Ru�‹!/‚ç ‚â˜‰‚䌉03>T�� £ma—ésŸÊarra™Ò‘> €at€Àeœadœ¡do�[¤Zregularâus� ‚¸ h”8’Àg÷eb ~) áit Œ8s.Óe‡�tely,ä�o¡ps÷ill¢ –p€Xshƒ¤Š ‘" 8—¸¡Á©0mž8—Øance‹„©á…$, ¤œ¨Ç”•7¨Ç•8Ž"n«Ydatabase¥Ø§0 I¦àe.g. ’S.pyóyncdbrakeäb:ƒe�§Òails©gšB„ÿ¥ð„�o¬ (alsoënow°è¦¹�Ƥ”en.wikipedia¤Â€q/R£0-eval›h³(_loopšÿSC–pEPL�Ò hll)¬i™à‘bi‹Øry£€ˆ@µ"µ �§í‰l¬Øgªøs€Ël¯Š­.Ío€Àlˆàuœ ± roviб ƒ±ây‘ŒB´iŽérpre˜P�Øthou”€n¢ÐrgužŒ×Œ×£€D—Xy�p—Œƒº€�駱E">erl�„)†kóomeã�à–´Éó•<«m¡¸d�W�W7SF">ir�î½ñRub–È‘�¨:G�á�Ž���ˆ�ß½—©áH”×¥!¿‘ócrip½˜„©itt¹˜0œß¼po•¯•¯7SI 0hp‚/fix_bad_re»Ñs.€àˆ¥¸Ÿ¥Y®fJ">Oœ²·¡xºXuldâe‘z»½Žà¼˜calånviron¨Ú½ð½�¢¦�¦—¦ç§7¦�²±K">long-‘�¶ÿ¦±¦H¥\. ©¨’”ƙgª'ªoª¿ª'¶KL�ðele ð©Ñ,¨À•Us¼ ¬Ï¬Ï­­o¬Ï¸òM">¢É¬b“®ÿ¯¯W¯§®ÿ»!N‚1nfig‚C³È™@¯�‡ç�i®¨†4¹µ¦Êmu��ship›Z¯)l�Ƚ2§Ê°avoid§bhŽXiz€óiss¯¥¸«(‘WSOµsˆ×µŸµÏ¶µŸ¿^P">depen’ cyµ@olµ·techni²Ù“ǵC¿xa²0·mtyp„èÆ±pexample,é�ë�1µ"¸Í·@¸kŸ}¯Ÿ¿ÚQ">bu¶àe‚Xec¹¸¡©tart¯Ì,ºQ¬p²/².˜õºX²O¾»R‚·‚±±±e>.Ìike¸¨…øaЦú½Yµ m”DVirtual›Hƒo¸¸¾àvŠ or¾ ¶¸:S†€in/©o¦¬-bo�P¿™Torna¿ø¾�serv¬€¨q¬a¸·ºÒT¸·y¸}¡O¡J‘W¼tU‘Pwelve-fact¾¸¿žÐlyæ“�rs±‡÷hi¾˜±·±²µB °éŸ´box‰0­x�{m»‘it �Èy¶uªi¦)ªd.É�Álo¥Y“¨lo®develope„invo½¸�µ§ß§ÛµÀ�¨iª8š„q±�¹ ·¹check¶I�{oryƒä¸Xduc›‚„„cªh‘ássh»ÙŒÀ¸ remo´ï”ªu�Šm˜ðanism» ¬¸‡ØŸÙ†ë½`�w¬ß¾`¿ksu‹8„¢®éžã/s¿h x€W> /*ªðis‰˜fin°!tyl¾¸¹Ycla°ºœªºðŒËok */ bodyûŒÈrgin: 5%;žˆxt-alig€€j¤Xify;º`nt-size:†˜dium;ý ¿j{€ãfamily€ðonospace� h1‚à‚‡:ìeft€Ê2€Ï€Ï�‘3�—�—‚Y4‚_‚_ƒ!5ƒ'ƒ'ƒé6ƒïƒï„².tit¡à{„R.auž r€s3.¡�†©}‚ˆ°À¸À‹ ol.tocûðadding: 0;íargin-left: 1em;ý�Mli�`list-style-type:îone�½‚‚w�à �INDXÀðýéÿÿÿÿÀTAGX  0000049879IDXTàINDXÀØÿÿÿÿÿÿÿÿ 0000000318€€€€¸ 0000000630���€6² 0000007928£‚‚€€ 0000008382·ƒƒ€  0000011177Ë„„€¡ 0000014736ß……€Û 0000019002󆆀³ 0000022846‡‡‡€î 0000026612›ˆˆ€° 0000030064¯‰‰€ì 0000033064ÃŠŠ€� 0000036739׋‹€Ÿ 0000040687댌€,ú 0000046764ÿ��€Ü 0000049879“ŽŽ€ÊIDXTÀÑãõ+=Pcv‰œ¯Â�P-//*[@aid='0']’P-//*[@aid='UGI0']“P-//*[@aid='1T140']“P-//*[@aid='2RHM0']“P-//*[@aid='3Q280']“P-//*[@aid='4OIQ0']“P-//*[@aid='5N3C0']“P-//*[@aid='6LJU0']“P-//*[@aid='7K4G0']“P-//*[@aid='8IL20']“P-//*[@aid='9H5K0']“P-//*[@aid='AFM60']“P-//*[@aid='BE6O0']“P-//*[@aid='CCNA0']“P-//*[@aid='DB7S0']INDXÀìýéÿÿÿÿÀTAGX SKEL0000000014IDXTØINDXÀXÿÿÿÿÿÿÿÿSKEL0000000000 ��€Ì€ÌSKEL0000000001 ��„€„€SKEL0000000002 ��;¶Ð;¶ÐSKEL0000000003 ��?†Æ?†ÆSKEL0000000004 ��TìËTìËSKEL0000000005 ��pØÆpØÆSKEL0000000006 ��ùÏùÏSKEL0000000007 ��/ûÑ/ûÑSKEL0000000008 ��MºÈMºÈSKEL0000000009 ��h²Ìh²ÌSKEL0000000010 ��êÌêÌSKEL0000000011 ��ÅÌÅÌSKEL0000000012 ��;°Í;°ÍSKEL0000000013 ��j÷Ãj÷ÃSKEL0000000014 ��–Ï–ÏIDXTÀØò &@Zv’®Êæ:INDXÀàýéÿÿÿÿÀTAGXtocIDXTØINDXÀÈÿÿÿÿÿÿÿÿtoc€�€IDXTÀ•The Twelve-Factor AppINDXÀøýéÿÿÿÿÀTAGX0 @€18IDXTðINDXÀDÿÿÿÿÿÿÿÿ00ï=æ_É€€�Œ‚€01ÿA¬ë–�€��ƒ€02ÿW—ç¢�€ŽŽ„€03ÿrþ!ª³�€��…€04ÿ¨„¿�€��†€05ÿ2¬¶Ô�€‘‘‡€06ÿOâüë�€’’ˆ€07ÿjÞ¸ù�€““‰€08ÿ–Û‹�€””Š€09ÿñì��€••‹€0Aÿ=Ý/½¯�€––Œ€0Bÿmš«Â�€——�€0CÿÅêË�€˜˜Ž€0DŸB”ƒà‚�ƒÖ0EŸX‰õ—‚‚„à0FŸsæ ƒ…Ö10Ÿ¢Šã‚„†è11Ÿ3¨º�‚…‡ê12ŸPÎ�·‚†ˆÚ13ŸkÒÄꂇ‰â14ŸŠç‹‚ˆŠâ15Ÿåø«‚‰‹â16Ÿ>Ò.È炊Œã17Ÿmüɨ‚‹�Ð18Ÿ¿ðÄ‚ŒŽèIDXTÀÏÞíü ,<M^o€‘Ÿ­»ÊÙè÷$3•The Twelve-Factor App‹I. Codebase�II. Dependencies‹III. Config”IV. Backing Services–V. Build, release, run�VI. Processes‘VII. Port binding‘VIII. Concurrency‘IX. Disposability’X. Dev/prod parityˆXI. Logs”XII. Admin processes¶One codebase tracked in revision control, many deploys«Explicitly declare and isolate dependenciesŸStore config in the environment¬Treat backing services as attached resources¦Strictly separate build and run stages²Execute the app as one or more stateless processes Export services via port bindingŸScale out via the process model»Maximize robustness with fast startup and graceful shutdownÀKeep development, staging, and production as similar as possible›Treat logs as event streams¯Run admin/management tasks as one-off processesFDST ίίÐfFLISAÿÿÿÿÿÿÿÿFCISί((DATP ÎÙ)S4ñ@µK¥VCbÆn\zQ†¸“g�NªûµRÁÌsn-.ëBë?ìCí@íCí@CíínHԮҖЮ¢·®–¢––z®–®®–®lŠ®¢¢–– ‰‡{––p·Û®¢¢®{®¢{––º®–¢‡T–`{¢––�¢®®®–¢º¢Æ–Ø¢–®¢¢¸– -º¢Ïîø®¢–‡{¢l–––––{®’ϢÖ–––®¢Ã®––®q¢º¢¢{¢Ã®¢¢¢ºÃ·p–––¢¸®¢¢¢–º–Ö®¢¢ÃN¢ä¢·¢®––¢¢“–¢¢º–{–¢$·ºÆ–º®¢¢ÞÞâ ÕÖÕ¢–®–––¢–®®¢–¢–f–®––®‰ˆ¢––º–®®®–…·®`®–``‡Ãù¢·lx~––éŽ public/images/release.png0000644000175000056700000003436715226251677014206 0ustar0000000000000000‰PNG  IHDR0é:_ ¡ pHYs  šœ IDATxí�ØÅÙ†!ˆQlØ "ön,ÑhT0šXc‹%ö‚]"–+–¨HDìb/Q±Å¨Ä»bDl؈]AÅ‚ ¨ˆÿýv`ùøÊ9ßwÊ–ç½®çÌìììî̽gwß�™ÝmýË/¿´²™€ ˜€ ˜€ ˜@šü*M…uYMÀLÀLÀL@ìÀø`&`&`&�:v`R·Ë\`000;0þ˜€ ˜€ ˜€ ¤ŽÀÕ(qëÖ­We;{¡È£†«½vۘ¦ÿÍàðgjWoÙLÀL ëZWú)$œ—¶@|ý&ë0]¿Fû=ÿ­÷g¤8b&`&`e$P�.¤y)ïe,³W•|ji[)ùÅt MÀLÀÒJ ]Hê2šú‘ðRô-j¥9H?íãyÐîHÝ…ñ}ΤÍLÀLÀÊK L¼Är`.¦káóx¢ãé'@Wa;j±’c300�ЍFRÝ TÛiª»}OW†€ö«[Õ*ÃÖk50¨C L�"xÒLÀLÀLÀJ#`¦4^Îm&`&`&�v`°\000�ÒØ�)�—s›€ ˜€ ˜€ $€€˜ìÁLÀLÀL 4v`JãåÜ&`&`&` `&;ÁE000(�@5˜ºo¬;]Z‰�ÛLÀLÀL ÷ZüR¹èc�s5B²=󂣤�ÍË2J³¥‹ÀTÞ <)]EviMÀLÀ²J E ŽÈ’€¹mˆjY‘ó>æ¨�ü=�~F¶ôÐ>Áþî‰órzŠí’š€ ˜€ d•@‹ l†v+Ž.„K—�ßY“C`ŠrNÌk81S“S,—ÄLÀL �ZêÀÄ—W÷‚»²õ/R«šºõ¡F™¾8º þ100�Zˆ; ÍÙ~¼Ûè2VеAþ¨_sh&o™Éé/¨’#3 ÙLÀLÀL æZêÀÄ+0ž®…±ñÇÓO€.£qÔ"¿R®� ˜€ ˜@ê ”³;À­.©ÿ;Ô[ï×z±8ÑLÀL –ÊéÀÔ²Þ¶ ˜€ ˜€ ˜@ŽØ�ÉÑÎvUMÀLÀL +ìÀdeOº&`&`&�#åÄ›#l®ª Tާ5îH/‡\yuåP·dÍÚGóàÂ;-Y‰—5h>;0Ígç%M R¶aÅw ½¹Ú–\£ð5�Ɖ”Ü"ºd&�]îBÊî¾uÍÒK`mŠnç%ùûoYŠx NL×äÕ%4�ìp Löö©k”~ñ¾GuÔMáÇÙ“³_Õ­·&Z-Ž®Æ‰9‚–˜Ç‰ÛLÀªD ¥LüD�W©øÞŒ džÀ\{g¾–)« Ë:ùnÔ%Ò­¤êíH7Õt`8ÛS³Qcƒ‰Õ~–ñ‡c@RÕ�ýwœxǧ¤¼y+¦[^¸Ç9^^ã|·/E»©%f1¤î¤}˜÷q› ˜@… ÔëÀp®Àvû"Ýe4äÀ¨Åe~ì ";!�« DÒêù:û¼7'Þ7ÓQä\•ÒLBw7ÇË ‘sE\…î¤îÌ{2¡Åv±L 3êu`¨Ýh—k©G>%[út¦Èr^ìÀ¤oß¹Ä5$€£ò_œ˜½(ÂõHÝIºù»�4w'Âf•$Ð�Ó6¶Qu-|…|'ƒ’�¨ZÖÔE(ɼ§s內D'æÙ¨%&Þ�¤�½?0ÏÝI%Ñtf(ž@CL¼Û蟬î,䮡⹦!çÏòhtbTØø>OCù]FH u'íG�îDêNZɉQKÌSÄm&`e&Ð�ßÌ·€#ã Žgƒ'ׯ³Q×ÂjO€óäsS{R’‘º’¤�‘ã—ÝÃfå$PL«J1yÊY&¯«z¼o«ÇÚ[Êœ˜ÁTs4"ª®žNRKÌVÑ´0�2ð¬L ½0œ˜öGc4�©;é*œ˜ß¦üc&Pv`Ê‚Ñ+10�™pbžeJÝIF©]õj › ˜@™Ø�)H¯ÆLÀâ4&†éƒciËÄ⎚€ ´�€˜ôâ&`&Ð�w˜žðóçVåY&P*;0¥s~0(ž€Ï±Å³rN(‰€®’p9³ ˜€ ˜€ ˜@ó˜$”³è20Ò¿™wC롹Ðè^ú£?&l¶±Þ>,¬�W^Áº†5{E^ÐLÀLÀL Å2åÀàdt†Èåh+ÿÂÁÌ;ÇãÁÓ`<90� ;0-éEMÀLÀL ¥2ãÀà ÌŒ+ÐзèU¤Ás¡UÑ%äy'f4ñVÄõ¥íÅÑ÷h8éãgóebÍ(á%B­SÌT¥1_ßú5Rš¾õ ëƒõ˜´™€ ˜€ ˜€ TŠ@fé Újy‘3q¾Äý„r4þBp&zMaz^ÂSÑá(|ÈPß1éÉ2CHÓ2«Ü‚6Ð4ö4ê¨6�ùâv!R«L{$'è&ÒO`“ˆÛLÀLÀLÀ*H Kƒx7�“‹aÁy7â·l�Ž">–pOÔ ÉÑÙ @¿Aýp@@br’ó"‡Fó>A�L­,»£èQ¤žÿ¢£ÐÈf&`&`&PaYr`ŽXÍÒ¤4—1觨åä ’ÔýÓ�4µÊü }„6DrFä©Jvy†ž�äüÈÄlïB¬U«Q„‹!98²�§þ500¨$]¬³b“¢Šè)¤†LÎÇÊÑÌ·ʹÁ±‘ÓÓÉQ}»DVx 8yF�çÇéIçGye�T˜àg©qh&`&`&P9ºXgņGYgcµP)â {‘Ƽ̇&DóæQHz‚ðÄÒdâê" ÎPȣDZ㬔Ov’3³4’óZnˆÚLÀLÀLÀ*E ~Q®Ô6ªµÞûØÐÇHÅ“C"§åF¦Õµ£®¢ŽHÝF2 ú•m�ä€È±yé)£×‘l»éA«­ ŒârpôT’lyZg´ÍÐïPhÝ!j300¨�Ìt!EÝ<Çê:´Y¤ÀMÝ?g“眚Kˆë³ö‡×ÓFr:4~¦zƒZà¶(m·hº¾@¯KÐrze‚ÍL §Ü“ÓŸ¤jsÁ›“òèE‚ë%¤\­)‡ZŠ5µèÝBÒhê£Gù"µÌŒGSqŠâ]R$¥Þ&Qu¡)T Š˜©efCt5 ôȯ�½iT_ùôéÝ4‰—xèýIÛ"9‹ß#ÙOÓƒYH–Ó2z}�ÖSXaSN¦±™€ d”€˜ŒîØ”UKµ Ц)+w}Å]šDé�HÝ—¡þè[”EÛ§â5U 'C/s¼uÖ4&çD-*" ˆ–­Œ†¢ОH/”C²:š€f1Ö)'ét0jÏôy„g†Ðf&�cv`r¼óVuÝÁgÅ4ä?èô" _2'š9ë…Sñ%µÒþ[)ªÝí„zrK-kúGè"Z7£4µÖ´E‘˜ºû?´XͼÓЧè|´=ZÙLÀrNÀLÎÿ ©¾¾îÝuHHytqÕãÓ¥t#Éi‰îEÿFoÑ2¡‹xÖm�:Ô¾|’ºOÁ± NIpFâYãiñx<�â{E g�³Êg˜„ôd˜ÍL ÇìÀäxç'¥ê\˜4†âI)�ÊÁ…²Ø.Ÿ�È> ©ëäaê’‹'‘¨k°—‰LŒ&Ú®‚.ƒŸ8´hŒ ë�#©�Ò29.2u?iߨ� › ä˜@ÙN6;Âqs¤æà´Øã\pžJKa]Îê࿬® �ËiÈtÕ]u=Ëha^m_êÿŽ*71;õE=Q?T×Ô­TŠ…Vœ°ŒZkk± ùš€ dœ@Ù8©oúДñÒã²v`R¶ÓjT\�cyÝ�ÔEôîðä “¹µ%p\4F¦±-] ±éc\‚£1yæ�x­Ío2 ¿Þ 3‚Œà»&RK—Zx´› ˜@Î ”Ó� '«4!Mc™ÓÄ7ÍeUwˆL][궸=ÏEUc y.y¾!´™@æ TÅ�ယœy’®  ˜€ T�@ä ‹Ãò"›; éÝ1zÞñhUÒO'Ï«Äm&�iUq`"È�vóþÐÐüœ¦F½çô}Nëïj›€ A€sÄ­œCŸ%«º”4FF]JÛ"½3F-ÞýÈ“©VfêUÓkLmÕ'0�ÿq½ÃOjýgX ݪÏ#Ñ[Ô“Qm]BÎL 8±�⢾…y�Ž–D‹" ø]—yj�IýX?ê¡ND{£Z_·(‚­J´ß?gÿ÷åüRÝmÖú�P¯WU·�9›žJ}ýÔVÎvº«kÍ%À‰]­,8É¿N¨ñ†› µÆü­Aúäù'ñ4[G  êœæJ¸ìÍ&0KÎÖ[SkFÕÈŽÌôý*oS]H™jö�^5ÿš€ T’NŠønÇ6ŽD'£öh5¤¾7ö&Ï„i´vZçG™nðtŽô�žhd×´¿CoÄ‚õU³ÖŒFÍ_U_Á–¦»©*ÆIF­060(‰çŽoYà<–!„¡uМèp´é§�çâi39+ÁaQ—X/¤›½àÔµeˆ€öµZûEuª·‘£ÖŒ¬¤äQÈ�v*¢¿‘0�Äà|õÎÊ)èqèX47ZÝKúå„}È3Ž0�6‘B¿Hù5^ЖQüOÕ;Ó¨ÕÚ�QŸæÎ�–03O¢i¼kI=—ÂL ê¸Àkð£Î±/"��é„ô¸õ‰h=æC½å7m¦Öð¤ßø¦�iËÛdëZ­˜å ¶fÉÕ)S½ýouòxÒLÀEåg ôOœ•á„zÜz{¤ ƒžþ|„ôso!ßdB› ¤Š@“Nªj㚀 ˜€ ÌFåõT’>=ðy”aYÂk‘ùvŽÒ˜@jÔºæ!H©¶Þ: ¡¨QÐilfM>ÃL pbôÕê¢Öu)m•kWÂUH?•pù’|>ŽŠìÀjüB ”»Ø ’ÍL ~ºèØÒK@Neœw‡â¬ì@¡ÎE =¢¬ï)é\|1ó4À×ßS†-ÙªÒñ8ô"šð\STÆs}ÑT&Ï7�ØŽã§ÉÑø9à�Ö*ÎKÁ«ö †b!q~ÕãÖGñßD(Gf=¤§BõÀÂf¤ë ¾O·™@b TÅ�¡ög K p;yu ÙL �âOXü’-ý7æ'Ey5À·/Ú éš°1º‹t ú½„ÌZ…\Ÿ�¡I䀃ò ÎÊ>”m0:-�t–³óÎ"Ï»Äm&�(Õr`UiÆNà~Ê·Òk×ý�pvI,žö¡ºlKbáT&=n}%ÎÊÓ„GÛ"Ù^hcÒÏ'¼–|Åв6¨(�j90zTïiTÌŸ_»š4m&�K\#ôNŽrYyWº¦øïýgeO ñWtšuB—£Ð3–x½Æ²�˜Ñ‘õ¼To'š@ TÅ�áϬ;�ÄÞ}”‘§We&`©&Àùz8gäB}‹F/Õë$Ž@’~rtNgr¦‘>S¡å‰w%�Ÿdš‰Ç± (›Ãv ʧ±.jŠ,ÆÔÒ¢¼c¢¦˜eœÇLÀL  ä¤p^ÿ›:ƒäÄüé{J—žGž‰„Áö%²Òu¥'yÎd~±×ƒ°‡&P4�²90l±':ÓM (OÿpôŸ�àÐLÀL p@>ÅÑ¡j�Ñ ÞåQ{t2Ò×­{‘ç%Âu˜> …kŠºŸ^FÏe3�жr¬\êRŸR“£d30H �¨ånœ½‘ü<¤VYWôé½ wGK¢`séü—Y~LHthå$PÎ÷”Òòê eš³\XÞ¡ ˜€ ˜@àˆ¼Åfö@ÝÑ×Ñ&õ’Ò«ÑVÑth4'jÈþÌ u# l(ƒÓM ¹ÊæÀðÇJ!$› ˜€ ˜@† è|�s$U|éá�†L7ª§“w˼ÓP&§›@s”³ ©9Û÷2&`&`)#€C"ÇDO'5漄Z­JD‰Ô¸› ”�€˜²¡ôŠLÀL 7ö§¦û•PÛmÈ«—ãÙL lìÀ” ¥Wd&`Ù'@KJgj©ôê½0¥X–]»”œ×#`¦1:žg&`&0ƒÈ¥$8æ/£&f—¸ &`Y$€Còõ’^ÅA¹–p^$'¦+Ú-‡–Aj­‘s Ë$馗bÙÒB œŒ^�ÄWF—³ŽiÙ¯µ(§? Q êÞ¦ $”މ¾D==©ËÊÄõ^˜u‘Þâ» º ÙL d弸kp×÷%— ò ¨L¾¸–‡ó4V3�“�ºæä¬jx®;­$:°Ëf&�85ïRé>N#‹–ó”„*º U$PÎ?OÊ};’×�$Sóä„$(ÅeY�²ë ‚#ÍGØé¤~îÎÈf&`MÀ™Ûd¦dÀÓÀe�ë‰ÛOLŒ¡ŽÄг޹˜·y40Ëi즭 es`>ŠmI¶ìø-U“š2µÐ$Í‘mªÌžo&`Í!p 馮®�Ä1¹ˆkã¥ugÔ3Ý‘´ÿDé+åøÔ³ž\%•Í�iŒZä¡v"O^ºrÂÓO�óçÍâàau%ÉA Ò~�;,/0ý²™€ ˜@Ö h˜‚�ë'G•mO¸:‘ëßý\FFé¤Ö–ù‘Λß0OçÎøµQçׂ‘W×è�®)ß’w–§i™¯®{Ió'ǯ7ÌÓ›’ÕB®®}m#l‹èt#�^L¨–tõTh~¼Ó3%ø·* õ?í‘`•(šFâÿeÉ�Ñ£’ƒ�š~¿FÑ·HÕw¨0F†ð}Ž5¡ÚLÀL /ö§¢F•U·’//�–B‡Aƒ˜ÏBºjhà ¤�I8‹c´�eNGû �5HÚß8·~H\óõ¨º^&¸©¦±�IëO8©Kÿ¤íÈ™Ò`ê0ÿl–×µ),ß›è¶Hi×0¿óå�¥ÂªåÀÈ;Ì›e±ÎOñç>)o;Òõ50�"LáüXh=Á�C¢k€¦Õú’[‰®‹Î@z«RÞË�Z? ˰¼ZU®BÛ¡+�˜#ÐÌÛ•P-8·¡ÑHŽ“ZZäìÈ¡yÉé9©{ëÞhú(B93°Ž ïFZîÿPWtúžy}C=˜N´UË�‘§©;ö<™ê[øãf¨ÒmùsÏÉŸ;4“f¨j®Š ˜€ ´ˆÀuœCëŬI{_DEk•3²>z ]�º ½ÐžèŸH× ]“Õz½:Ú ©eäJ$FNÉæH­8ÑÖ7-‹4OÎI[Ô ­‚‚½Dd0Ò:BK�Zf´Ü“è4mƒöEr¦B=ˆ&תåÀœ 5mÉÃ̃ɋÖeT*ë:š€ ˜€ ºŠ�ÿFpÃ÷e”¨7ÕËÖ@c ±é?KÌ›žF| ¤±2‹"9+q[„uþ„³Ô™ÄóÑ:èU¤K�i‘sÚý)ÒPÂÛ�ž–©õGÖ}VˆMÿY�`Nd&@öhâ’ÍLÀLÀ²H@ÎÄWH]2êš¹�kß3„Á~Eä�œÅå¬Èt}Ô`Û`º –ɹèQˆMïŽRô5œ—N„jÅYƒnE� �P[¶;€4X÷L$çcæ�"ü©kiDv"<É Ú]�þ†4Þæfô{4�‚Z±Ž7 ö@�¡3Ñ~èt8óRá¼PÖBs”ÂJ›vÎG•ÞH�ׯf=› ˜€ ˜@¾l@uå|¨¾`8Oã´¬À„ÒåTü¬¤¿Nú¾DÕÝ£›ÞïHû�4åÓ`Þ_ÐHyß'ýp¢½P4‘´ „š§õý‹ùƒ Õb3Aó˜¾E³‘®¹g K‘õ*ÿ×ä™JX0âÏ’ÿ&Âbuw©K*56G•Jªpz•¶U‹Íè�(oÛf&`&�#\ô‡�ùp�IDATå,Ìf�¤ËI˜eòÊÉSw%¤O&­àÐÔ�§iækÐð cZ-3q O@ÅÓfÄÉÿ=R*­* �|qOåߣPhX600H�ª804SM­7FjÚ²U†€š¯ÁY|¾™«ŸÑïÉþR“äÜHÍš�Z˜l&`&`&�Uq`¨íæHÏ£Û*G@-%�Õ\f}—î,¿êˆEútArhl&`&`&�Õr`|_ù]®Ö’–pÖÈu©1ÓûÜ¥Ô!Ï30¨ �j90ïR›«R£ünD]H�Ø*�º“~DZ§‘ÉiÑÀ³颚1Š�i› ˜€ ˜€ Ô„@U.zz¡ŽdK.�7(ÚH£Ú5Bþk$'Fï#�£GðFÚLÀLÀL æÊæÀ0~B]R©6� £»%J¥Vþü÷°ôò%› ˜€ ˜€ $ž@Ùjª·úí‰äŒó´‘ÆkhLÅÕHwþ¶Ú(ç¡¶5ñÖMÀLÀ2O œ­Õ¡µc‰ÄôvÀGK\ÆÙMÀLÀLÀrN 9]> !kκôzä–<9ÓPYœn&`&�` ;˜Í“à"ºh 'PΘ÷¨k©]AêBú$áŒ\<00�2ÀaÑ—’;£UÑH׌[‘ÍJ&P6† 7±uÉf&`&`8-í‰üýéÇk¡ÅÐÃè>d3�f(›Ó¬­{!00�LP×Ò×–×GÛ!½‰})´ ¦wVõæÆwbHph¥°S*1ç70˜…N‹¾�¶RëJ7$ÇE­, �q¼çå%æÛL ÙìÀ4]&,æq÷LTÔ•0(/œ–v¬qS´Z­ŽGMÙÓdèÓT&Ï7�¦Ø�iŠP†æsÂÑ“báŽHaÛ UÏU1¨Î#³™ƒ�Ƶ,�Ô]T¬}KÆSh}Ѿm&Ð"v`Z„/9 sRÑãˆ:‘tˆÂùÕ¬¦.‚äĨåEót"²™€ ˜@)ÔUt jSÊBäÕKN/ÀyRârÎnõ°S/–ä&⨨ådY´ZuAË!9( Ƥ‘ÿ¥˜› ˜€ 4EàN2¨ëè°¦2Ö™?”é+ë¤yÒšMÀL³ÑU~A|½3AŽÉ2H#ú7Š$GeÞH¥ÜéÍÇaÜ‹â’"}¸ñd30�F Ђ2…sÓ)dZmØhæ™3õ´Ñéî:š ı–°Ór†e]'uó¨UE£ùu—³ R“mSöÔ¿4�¸N •ö’£2É”_óÕòò';0€°™€ 4M€óÅ8ÎUG’ó^¤á¦ìJ–y¢©Lžo¥°S ­ ååD V–­ÑŽH]Cr`æG ÙgÌx½iá7(8/ßq²�ãbK1�è¡‹„º5~À–,j½”äx”¬¢U¥4?±�sšr`'ÏùU)‘7’+v`j´»£––uØüÞhK¤w&h nÜtчƢaèEôú©åGNœ¡E…I[ÆJ}ÎËX�²X�}8žOäX¼*‹•«['ê*§m¤ÿæòuç×™ÖÓFgÃFŽŽÍÊJÀLYq6¾²èÀ׫´»¡�‘âuM߇ ­+ô6½Ì Œ]©›ßÓÙ%°tv«–©ši<ÚEß?s˜^“©šÕ© uTËð_‘ÆÀhŒžL­¿ê¢î„êÚÍ0Ñ9Ìfe'`¦ìHg_!};R÷Dºk‘Ó² Š›ZZ^Ew¡Ðôê&²å›@Üi½ �!³ÉùO¨%â/h ¤×\±>�c÷:â™3ê¶>•ê‹¶ŒUîuâG"�¥ÓùKï… ¦sÚÙa¡ ”›€O†å&[¼Æ.ìŠA]PüÅq“˜þ=€îAïqâóË�a«—À`þ7×;lj5#À1.§òô$'ærÒÚ²¯2Ó�D}äœìŽ.BK"™º®"½”n´Èw:�Z ”ÿ{Ô‹y_ÚL "ìÀT+òʬv'¤;91qû‚‰§ÐCh¸š_m&ЫMªÁ|Žß‘ïÝÙôÕH/†T·J?Ò¦2ïZâ©6ê¡§"�CÇ#ÕM¦sÖù¨?uŒ�ÁS+á‘nÚú#�çl&P1>)–-{gV'§Ew+ñ‘ù¿0=Ý„þÃAÿ¡ÍL 8žßäØÿ3U¹©{Eƒñ/%­Uš�Ê¿õ¸É1 ¦0ö¤^Ï…„’6‰eN`Z­/3wnB¶r…:§ÚrNÀLþ´rVDG¡Ž±UþHü t%z€Ú#ñcp5�¬àØÍy@ç€�HüÐ�4óRÕ�D=æ¤ü{#=e´’ɹ�J}¾TB}Ƽ,á”úæ—)MÎK%×_¦bz5-$Ðä>¶Ó¨êÖ�×!hõت4(÷)¤;²»8˜5ÞÅf&�aç#9'F5Dcbä\HÚæ]G<ñFY¦�Ë¢›±p}�ÃrR«ŠÞÞݨ‘§É O£+hz¦œªž”U]YocË]CWiªZáÚT>Ï�àÀ™�I9-‡£•b³tp¿€ÎEOs «Æf&�ó¡;é&ªÜµCØÛšy×O¬QDµ]Œ6Œòâ'QöciµŠ¶‰6¬Ç“jUo·&¾Ÿeãö^gÁÑøøÚ”êjdç60�Ù p~ÝIÿe®Z Ôz°?ç–ygÏ]�¶=ÒëîBÁyѣϗ¡?QæÄ9/”Ëf³p L$ØH:†ºÄfëI¢ëÑp¿Ç%ÆÑ|àXQ÷ÃHOàµFo£q||AXcºÉR·Á–HýHƒ8çFº�Ðëêm”q$õ8›BÞƒæCó Ð]C´zF9–ckz£î.±­¾O¼å|8–æ¨ $ž€˜hq`ëÎH'Jõo„Bë”=�ÎGÏs�WúA6c3�dàxY‡j�ç¯Q¸ëXÙ�ysœ¼C¼¶*+¹-ŒÔJ .„�]pïÀPFÙ¤�±²šŒß`¿lŶu[_…ÀT�ÛŽcù¦LDl©"�{†ƒZƒë6C=Ðv(8.D /¡»”ðàáä£t› ä–ÇÌBT^­‘ë¡/Ñp¤]7Aú2ó3ºhë9jÕ\ µCj�μi¤ÏO\7 ?£ÁhM¤uƒ^CºÀîˆä¼ŒGG¢!h¤ñ$3œÖµÓrväD½‚6@º)їܵ¾Z›Î+j¥ªºÁFŽFg 1—ýˆú¢ á3Q 6H�b˜šÜ-T$öNlç0Ô É‘ ö1 nSs¸NÐ60�™ö&*çE­,Ý9Fs,µ%ÞÉÉxŒt=�£ åæÓS ÎÉ@ÒOdº z4JW÷Šœ‡º êø» �‡dºðÞŠöE§ 9+{¡;Xׄ7¡_#Ù½h—BŒ×>ÅsÀfe*}.Ú5Vù·‰ëÝ.ÿŽ¥9j©#omh¨ðí8Ô÷œ £.À¶º› Ý‚Ômœ—¯ˆ_Œô.=mç6¨C 8#zO-'zâF]«ýÑH_(žÀ1¦n9 Ê[Ž&”“#çCoÛ ¦–—®Hëh�ôA—#™ŽÅµÑ Î[“Ù†Z5”WÎËchS4 ¦Ö�\h¶¥â÷¡¸ó"‡Quí¼äò_‘­JÇôxÍâé1ceÝ!½€Þâϯ­©2ʯ“¢Nn ?!5«û‚ˆNŒ§nï†D‡&`õ襎‰Ï娑³0*–&‡CÇœŽ¯ÞÌÿ�ãð|â·£C‘�Ê&£ã™ÿóG?-ŒäÀ|€dúºóŠ�'80¿0Ùé&Dv.yþË|u•tE:æsgÔ_7œb؈_�·ÑxB› ¤ž@ÜQ‰WæM&¦"Í—t%}‡^å‘#ó4ÂÁ #±FY;S¸=�Nr:™Æû¡ÕT}H=†ÚLÀš&n`ä<4f‹2S7 8¾>Œ2þ/ Õµn"äøŒˆÒuq•c"Ó±Ú¦ÓÆzÂ<%+>7Z"ЇH7!rŠrg ZƒJ÷EÁ©uõ :µPÙL 3r`þC Õ½/Ú…»!�°¶Œ$,Ì3„¢—Ðx’ï kf”Gwg*ïhwô{´ŠÛ7L¨iõRôz�“b<Ÿã&`³Ð Î6¨ÇÛÍ?Ÿ+ qkjY¹ ©‹"8¿b^[òM!M‡LƒHã]HrbJ598Z‡ÖÛ…u+Ô¼\Œ·§ÂýQ—¨ârðîGïò~”æÀ2C ^†?»Z_–8(tµ’C³6ZɈ¤;©îH}Ô/“á«hͺä,TÔØ¦NX:hWBjeQQ('Ñö±ÇÑõ”Ke´™€ ”Nà9 ÉaÀñwáâèÔ éœð$ú�C‘ò>„v@2��‰ßì4ÇáÐ2jŽÖA[£Hç*u£äÂàß�ŠŠý)hž¨Ò⢖˜¾œë‚#Ír`Ù P¯¯~õ_ß(q ¬H¨&ÊÍÐVhML')5[†¦ËψÂ2 ?Dj:–F£ÏX¯œ¤’�õ©…E-*+ uÑZHΊœ5%×5mçtz†íŽ ´™€ 4“ÇÐ+‡'°ø%h§HamºaÑ¿ñª+çÔK!Ó¯vCcÑ(œft‘& ÓrP‚cÒâóÛ°�Y¯œé<âÛ.‹âù™Ì¦QßÕ©ÙÅHçã`+t"l M ‹št`â•æ€P3äû4j–\uFrX¶Ar"t'0’É™ˆ;º Ð×$¤“ÎBµÒèM'=Ió⦓×üh1´ZuBº»j‡æCrhêÚw$ŒDƒ�—(»Æ»ØLÀÊCàZV£ãw¤›u弊®ãXL¨'“~æ8?‹¨Î#µ’<ˆ.ežÆÒéâ«V÷Z^¦ð¤VU�3~@Ê£©`#¢Há˜f]W³.�ËG:çôDw¢EPX/ÑìõÕyogt!ê„dê2º� “O”`3�,Р¸²Ô�jyV´!Ú©•fY¤“‰�jØÇlD'J�DGÏR·)„6H%Ž©þü¯Qá�æÿ|E*+RÁBÃH71;"9;�Âè;ÒV þ:jƒ6!maM�2ý–<€tã÷4Ú‰r�',ÙXWê…z pÃø-qý_ú°^±°™@æ ”ÔÓ 9Ò�`:q,�GK"uïÈ©Q”ZQ”^_Ë ÉEÙçäÒ¶Þ@:9©‹J-.RŽLÞqQ7› ˜ÀìÚ“tZ ½Á¹G­Bƒ£VZµÀ¾‹2cÔom*#GeËX¥^ Þ‹sß3±4GM óÊæÀÄIq ýÌ´ ©`xsQ³ðœH'—ÐB³ quéÎDóꚣ}‰t‡1}„ÔEôúžm…~t&m&`9# ›™? H­¿k¡¯Ñ9H^UTê�ó§nøöCª—ne:Ϫ«Lã]>U‚ÍòD "L}9ÀäpH29$#±™€ ˜@s p^ù…eßB‡6wI_çE7y'F çlÝÌ]$�À7q€°å�@8òWsרLÀNçåwñoh³XQ_&®1QCciŽš@îØ�ÉÝ.w…MÀ’NÇEçæ½Ñ…¨cT^µ`ߊô­©øSYÑl&�/v`òµ¿][0�„ÀyÑx@=eÔé�™ºÝÏB×£±/6È=;0¹ÿ € ˜@R༬FY®Azì:ØsDŽÃqQבÍL "Ð’G™ ÑLÀL ¼ôr>½¤S¦÷¹è‘é?Ùy› ÌJÀ̬<ÌÐkôÇ¡!èAòû›?€°™€ L'`Æÿ0�ŠÀY’ Ü€¶@ú*½ì~Ô ü­Ñ¾H¦¯ÏßÉzôýŸ)…ÿ˜€ 䞀»�rÿ0¨8�#ØÂ6(8/¥n° ˆv)uAç7È.;0ÙÝ·®™ $…@·XAî#Þ½K«/z‰Ç¢¢™m »Fq&`&ÐÊ]Hþ˜€ TšÀÂÑô~“^t½ÛÔÉ£q/Cè6ÒG å×Gm&`&P àÿLÀ*M ÞuôM‰Ó Þ`j…±™€ ˜@�€ÿLÀ*M ul-9ç´dÙX5ÈŸ²°]H(º€ÔúÎ3ÓšQÌø£Óîòn@/bY%N,Y­Ÿëe&P[«°y½÷E6M.ÄŠÿ™@Öï£ì‹âµ/~Qç4È2;0YÞ»®› Ô�ÎÆblþ4´@TŒŽ�âÅo“ñÕ(³^‚w4ëÕcÕ60�œ°“ó?€«o• €“¡—×éQé]‘ž>zõ/õmºäŸÈrg¢÷�º£ÎB�"› ˜@Î Ø�ÉùÀÕ7� ˜“õ.Ž4€WoÏ•Ó15dž±ÐÐhA­·KsVâeLÀ²EÀL¶ö§kcI!0–‚�F µœœ�ô-¤’Œ– ܽ…Ï Â˜–Ç Û"�…ù 5f'0³Òàɬ">¸±å<ÏL 'ìÀädG»š&Pk8!zЍ¨'‰È;™¼’ÍLÀê%à.¤z±8ÑLÀLÀL ÉìÀ$yï¸l&`&`&`õ°S/'š€ ˜€ ˜€ $™€˜$ï—ÍLÀLÀL ^v`êÅâD000�$°“ä½ã²™ÀLM½7efNÇ’H ¨§¯’Xp—É’JÀ�Q'uϸ\&0+�ž¼Ge’ô[ºè=8�Þ@,ó>œÎÁ¿&Ð"v`Z„Ï ›@E ´‰­}Eâ’-ýäÐÄ¿²�þ¹&PîBªtoÒŠ$ 7׎+2¯³¥‡€>©¾ •žR»¤&�0­§¿å;a¥rqLÀZÑe¤ŒÐâÆ‘ ÚŸú¾Ó[œw›ú”B&*ìJ˜@% Ø�©$]¯ÛLÀLÀL "Ü…T¬^© ˜€ ˜€ ˜@% Ø�©$]¯ÛLÀLÀL "ìÀT«Wj&`&`&PIv`*I×ë600¨�ÿü,|j%óºýIEND®B`‚content/ja/config.md0000644000175000056700000001027615226251677013161 0ustar0000000000000000## III. 設定 ### 設定を環境変数ã�«æ ¼ç´�ã�™ã‚‹ アプリケーションã�® *設定* ã�¯ã€�[デプロイ](./codebase)(ステージングã€�本番ã€�開発環境ã�ªã�©ï¼‰ã�®é–“ã�§ç•°ã�ªã‚Šå¾—る唯一ã�®ã‚‚ã�®ã�§ã�‚る。設定ã�«ã�¯ä»¥ä¸‹ã�®ã‚‚ã�®ã�Œå�«ã�¾ã‚Œã‚‹ã€‚ * データベースã€�Memcachedã€�ä»–ã�®[ãƒ�ックエンドサービス](./backing-services)ã�ªã�©ã�®ãƒªã‚½ãƒ¼ã‚¹ã�¸ã�®ãƒ�ンドル * Amazon S3ã‚„Twitterã�ªã�©ã�®å¤–部サービスã�®èª�証情報 * デプロイã�•れã�Ÿãƒ›ã‚¹ãƒˆã�®æ­£è¦�化ã�•れã�Ÿãƒ›ã‚¹ãƒˆå��ã�ªã�©ã€�デプロイã�”ã�¨ã�®å€¤ アプリケーションã�¯æ™‚ã�«è¨­å®šã‚’定数ã�¨ã�—ã�¦ã‚³ãƒ¼ãƒ‰å†…ã�«æ ¼ç´�ã�™ã‚‹ã€‚ã�“れã�¯Twelve-Factorã�«é�•å��ã�—ã�¦ã�„る。Twelve-Factorã�¯ **設定をコードã�‹ã‚‰å޳坆ã�«åˆ†é›¢ã�™ã‚‹ã�“ã�¨** ã‚’è¦�求ã�™ã‚‹ã€‚設定ã�¯ãƒ‡ãƒ—ロイã�”ã�¨ã�«å¤§ã��ã��ç•°ã�ªã‚‹ã�Œã€�コードã�¯ã��ã�†ã�§ã�¯ã�ªã�„。 アプリケーションã�Œã�™ã�¹ã�¦ã�®è¨­å®šã‚’コードã�®å¤–部ã�«æ­£ã�—ã��分離ã�§ã��ã�¦ã�„ã‚‹ã�‹ã�©ã�†ã�‹ã�®ç°¡å�˜ã�ªãƒ†ã‚¹ãƒˆã�¯ã€�èª�証情報をæ¼�æ´©ã�•ã�›ã‚‹ã�“ã�¨ã�ªã��ã€�コードベースを今ã�™ã��ã�«ã�§ã‚‚オープンソースã�«ã�™ã‚‹ã�“ã�¨ã�Œã�§ã��ã‚‹ã�‹ã�©ã�†ã�‹ã�§ã�‚る。 ã�ªã�Šã€�ã�“ã�®â€œè¨­å®šâ€�ã�®å®šç¾©ã�«ã�¯ã€�アプリケーション内部ã�®è¨­å®šã�¯ **å�«ã�¾ã�ªã�„** ã�“ã�¨ã�«æ³¨æ„�ã�™ã‚‹ã€‚内部ã�®è¨­å®šã�¨ã�¯ã€�Railsã�«ã�Šã�‘ã‚‹`config/routes.rb`ã‚„ã€�[Spring](http://spring.io/)ã�«ã�Šã�„ã�¦[コードモジュールã�Œã�©ã�†æŽ¥ç¶šã�•れるã�‹](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html)ã�ªã�©ã�®è¨­å®šã‚’指ã�™ã€‚ã�“ã�®ç¨®ã�®è¨­å®šã�¯ãƒ‡ãƒ—ロイã�®é–“ã�§å¤‰ã‚�らã�ªã�„ã�Ÿã‚�ã€�コードã�®å†…部ã�§è¡Œã�†ã�¹ã��ã�§ã�‚る。 設定ã�«å¯¾ã�™ã‚‹ã‚‚ã�†1ã�¤ã�®ã‚¢ãƒ—ローãƒ�ã�¯ã€�ãƒ�ージョン管ç�†ã‚·ã‚¹ãƒ†ãƒ ã�«ãƒ�ェックインã�•れã�ªã�„設定ファイルを使ã�†æ–¹æ³•ã�§ã�‚る。例ã�¨ã�—ã�¦ã€�Railsã�«ã�Šã�‘ã‚‹`config/database.yml`ã�Œã�‚る。ã�“ã�®æ–¹æ³•ã�¯ã€�リãƒ�ジトリã�«ãƒ�ェックインã�•れる定数を使ã�†ã�“ã�¨ã�«æ¯”ã�¹ã‚‹ã�¨é�žå¸¸ã�«å¤§ã��ã�ªé€²æ­©ã�§ã�‚ã‚‹ã�Œã€�ã�¾ã� å¼±ç‚¹ã�Œã�‚る。設定ファイルã�Œèª¤ã�£ã�¦ãƒªãƒ�ジトリã�«ãƒ�ェックインã�•れやã�™ã�„ã�“ã�¨ã�¨ã€�設定ファイルã�Œç•°ã�ªã‚‹å ´æ‰€ã�«ç•°ã�ªã‚‹ãƒ•ォーマットã�§æ•£ä¹±ã�—ã€�ã�™ã�¹ã�¦ã�®è¨­å®šã‚’一ã�¤ã�®å ´æ‰€ã�§è¦‹ã�Ÿã‚Šç®¡ç�†ã�—ã�Ÿã‚Šã�™ã‚‹ã�“ã�¨ã�Œé›£ã�—ã��ã�ªã‚Šã�Œã�¡ã�§ã�‚ã‚‹ã�“ã�¨ã�§ã�‚る。ã��ã�®ä¸Šã€�ã�“れらã�®ãƒ•ォーマットã�¯è¨€èªžã‚„フレームワークã�«å›ºæœ‰ã�®ã‚‚ã�®ã�«ã�ªã‚Šã�Œã�¡ã�§ã�‚る。 **Twelve-Factor Appã�¯è¨­å®šã‚’ *環境変数* ã�«æ ¼ç´�ã�™ã‚‹ã€‚** 環境変数ã�¯ã€�コードを変更ã�™ã‚‹ã�“ã�¨ã�ªã��デプロイã�”ã�¨ã�«ç°¡å�˜ã�«å¤‰æ›´ã�§ã��る。設定ファイルã�¨ã�¯ç•°ã�ªã‚Šã€�誤ã�£ã�¦ãƒªãƒ�ジトリã�«ãƒ�ェックインã�•れるå�¯èƒ½æ€§ã�¯ã�»ã�¨ã‚“ã�©ã�ªã�„。ã�¾ã�Ÿã€�独自形å¼�ã�®è¨­å®šãƒ•ァイルやJava System Propertiesã�ªã�©ä»–ã�®è¨­å®šã�®ä»•組ã�¿ã�¨ã�¯ç•°ã�ªã‚Šã€�環境変数ã�¯è¨€èªžã‚„OSã�«ä¾�å­˜ã�—ã�ªã�„標準ã�§ã�‚る。 設定管ç�†ã�®ã‚‚ã�†1ã�¤ã�®å�´é�¢ã�¯ã‚°ãƒ«ãƒ¼ãƒ”ングã�§ã�‚る。アプリケーションã�¯è¨­å®šã‚’å��å‰�付ã��ã�®ã‚°ãƒ«ãƒ¼ãƒ—(ã�—ã�°ã�—ã�°â€œç’°å¢ƒâ€�ã�¨å‘¼ã�°ã‚Œã‚‹ï¼‰ã�«ã�¾ã�¨ã‚�ã‚‹ã�“ã�¨ã�Œã�‚る。グループã�¯ã€�Railsã�«ã�Šã�‘ã‚‹`development`ã€�`test`ã€�`production`環境ã�®ã‚ˆã�†ã�«ã€�デプロイã�®å��å‰�ã‚’å�–ã�£ã�¦å��付ã�‘られる。ã�“ã�®æ–¹æ³•ã�¯ã�†ã�¾ã��スケールã�—ã�ªã�„。アプリケーションã�®ãƒ‡ãƒ—ロイã�Œå¢—ã�ˆã‚‹ã�«ã�¤ã‚Œã�¦ã€�æ–°ã�—ã�„環境å��(`staging`ã‚„`qa`)ã�Œå¿…è¦�ã�«ã�ªã‚‹ã€‚ã�•らã�«ãƒ—ロジェクトã�Œæ‹¡å¤§ã�™ã‚‹ã�¨ã€�開発者ã�¯`joes-staging`ã�®ã‚ˆã�†ã�ªè‡ªåˆ†ç”¨ã�®ç’°å¢ƒã‚’追加ã�™ã‚‹ã€‚çµ�æžœã�¨ã�—ã�¦è¨­å®šã�Œçµ„ã�¿å�ˆã‚�ã�›çš„ã�«çˆ†ç™ºã�—ã€�アプリケーションã�®ãƒ‡ãƒ—ロイã�®ç®¡ç�†ã�Œé�žå¸¸ã�«ä¸�安定ã�«ã�ªã‚‹ã€‚ Twelve-Factor Appã�®å ´å�ˆã€�環境変数ã�¯ç²’度ã�®ç´°ã�‹ã�„管ç�†ã�§ã�‚りã€�ã��れã�žã‚Œã�®ç’°å¢ƒå¤‰æ•°ã�¯äº’ã�„ã�«ç›´äº¤ã�—ã�¦ã�„る。環境変数ã�¯â€œç’°å¢ƒâ€�ã�¨ã�—ã�¦ã�¾ã�¨ã‚�られるã�“ã�¨ã�¯ã�ªã�„ã�Œã€�代ã‚�りã�«ãƒ‡ãƒ—ロイã�”ã�¨ã�«ç‹¬ç«‹ã�—ã�¦ç®¡ç�†ã�•れる。ã�“れã�¯ã€�アプリケーションã�®ãƒ©ã‚¤ãƒ•サイクルã�«æ¸¡ã�£ã�¦ã€�アプリケーションã�Œå¤šã��ã�®ãƒ‡ãƒ—ロイã�¸ã�¨è‡ªç„¶ã�«æ‹¡å¤§ã�—ã�¦ã�„ã��ã�«ã�¤ã‚Œã�¦ã€�スムーズã�«ã‚¹ã‚±ãƒ¼ãƒ«ã‚¢ãƒƒãƒ—ã�™ã‚‹ãƒ¢ãƒ‡ãƒ«ã�§ã�‚る。 content/ru/background.md0000644000175000056700000000452615226251677014070 0ustar0000000000000000ПредпоÑ�ылки ========== УчаÑ�тники, внёÑ�шие вклад в Ñ�тот документ, были непоÑ�редÑ�твенно вовлечены в разработку и развёртывание Ñ�отен приложений и коÑ�венно были Ñ�видетелÑ�ми разработки, выполнениÑ� и маÑ�штабированиÑ� Ñ�отен тыÑ�Ñ�ч приложений во времÑ� нашей работы над платформой [Heroku](http://www.heroku.com/). Ð’ Ñ�том документе обобщаетÑ�Ñ� веÑ�ÑŒ наш опыт иÑ�пользованиÑ� и наблюдениÑ� за Ñ�амыми разнообразными SaaS-приложениÑ�ми в дикой природе. Документ Ñ�влÑ�етÑ�Ñ� объединением трёх идеальных подходов к разработке приложений: уделение оÑ�обого вниманиÑ� динамике органичеÑ�кого роÑ�та приложениÑ� Ñ� течением времени, динамике Ñ�отрудничеÑ�тва разработчиков, работающих над кодовой базой приложениÑ�, и [уÑ�транение поÑ�ледÑ�твий Ñ�розии программного обеÑ�печениÑ�](http://blog.heroku.com/archives/2011/6/28/the_new_heroku_4_erosion_resistance_explicit_contracts/). Ð�аша мотивациÑ� заключаетÑ�Ñ� в повышении оÑ�ведомлённоÑ�ти о некоторых Ñ�иÑ�темных проблемах, которые мы вÑ�третили в практике разработки Ñ�овременных приложений, а также длÑ� того, чтобы предоÑ�тавить общие оÑ�новные понÑ�тиÑ� длÑ� обÑ�уждениÑ� Ñ�тих проблем и предложить набор общих концептуальных решений Ñ�тих проблем Ñ� Ñ�опутÑ�твующей терминологией. Формат навеÑ�н книгами Мартина Фаулера (Martin Fowler) *[Patterns of Enterprise Application Architecture](http://books.google.com/books/about/Patterns_of_enterprise_application_archi.html?id=FyWZt5DdvFkC)* и *[Refactoring](http://books.google.com/books/about/Refactoring.html?id=1MsETFPD3I0C)*. content/th/build-release-run.md0000644000175000056700000001175015226251677015252 0ustar0000000000000000## V. Build, release, run ### à¹�ยà¸�ขั้นตอนของà¸�าร build à¹�ละ run อย่างเคร่งครัด [codebase](./codebase) จะเปลี่ยนà¹�ปลงไปเป็น (non-development) deploy ด้วย 3 ขั้นตอน: * *ขั้นตอนà¸�าร build* เป็นà¸�ารà¹�ปลงซึ่งเป็นà¸�ารเปลี่ยน code repo ไปเป็นโปรà¹�à¸�รมที่ทำงานได้ (executable bundle) เรียà¸�ว่าà¸�าร *build* ใช้ version ของ code ที่ระบุ commit ด้วยà¸�ระบวนà¸�าร deployment ซึ่งขั้นตอนà¸�าร build นี้จะดึง[à¸�ารอ้างอิง](./dependencies) à¹�ละ compile เป็น binariy à¹�ละ assets. * *ขั้นตอนà¸�าร release* จะนำ build ที่ได้จาà¸�ขั้นตอนà¸�าร build à¹�ละรวามเข้าà¸�ับ [à¸�ารตั้งค่า](./config) ของ deploy ซึ่งจะได้ *release* ที่มีทั้ง build à¹�ละ à¸�ารตั้งค่า ที่พร้อมจะทำงานได้ในสิ่งà¹�วดล้อมà¸�ารทำงาน * *ขั้นตอนà¸�าร run* (หรือเรียà¸�ว่า "runtime") เป็นà¸�ารทำให้ app ทำงานในสิ่งà¹�วดล้อมà¸�ารทำงาน ด้วยà¸�ารเริ่มใช้งานบางเซตของ app [processes](./processes) ด้วย release ที่ถูà¸�เลือà¸� ![Code becomes a build, which is combined with config to create a release.](/images/release.png) **Twelve-factor app ใช้à¸�ารà¹�ยà¸�ขั้นตอนà¸�าร build, release à¹�ละ run ออà¸�จาà¸�à¸�ันอย่างเคร่งครัด** ตัวอย่างเช่น เป็นไปไม่ได้ที่ทำà¸�ารเปลี่ยนà¹�ปลงของ code ในขณะทำงาน เนื่องจาà¸�ไม่มีวิธีใดในà¸�ารเผยà¹�พร่à¸�ารเปลี่ยนà¹�ปลงà¸�ลับสู่สถานะ build เครื่องมื่อสำหรับ deployment โดยทั่วไปจะมีเครื่องมือจัดà¸�ารà¸�าร release อยู่à¹�ล้ว à¹�ละส่วนใหà¸�่จะมีความสามารถ roll back à¸�ลับสู่ release à¸�่อนหน้าได้ ตัวอย่างเช่น [Capistrano](https://github.com/capistrano/capistrano/wiki) เป็นเครื่องมือ deployment ที่เà¸�็บà¸�าร release ในไดเรà¸�ทอรีย่อยชื่อว่า `releases` ที่ซึ่ง release ปัจจุบันเชื่อมโยงเข้าà¸�ับไดเรà¸�ทอรี release ปัจจุบัน สามารถใช้คำสั่ง `rollback` เพื่อทำให้มัน roll back à¸�ลับไปเป็น release à¸�่อนหน้าอย่างรวดเร็ว ทุà¸�ๆ release ควรจะมี release ID เฉพาะเสมอ เช่น timestamp ของ release (เช่น `2011-04-06-20:32:17`) หรือจำนวนนับที่เพิ่มขึ้น (เช่น `v100`), release เป็นบัà¸�ชีà¹�ยà¸�ประเภทที่เพิ่มขึ้นได้เท่านั้นà¹�ละ release ไม่สามารถà¹�à¸�้ไขได้เมื่อถูà¸�สร้างขึ้นà¹�ล้ว ทุà¸�ๆ à¸�ารเปลี่ยนà¹�ปลงจำเป็นต้องสร้าง release ใหม่เสมอ à¸�าร build เริ่มต้นโดย developer ของ app เมื่อไรà¸�็ตามที่ code ใหม่ถูà¸� deploy, à¸�ารทำงานในขณะทำงาน ในทางตรงà¸�ันข้าม สามารถเà¸�ิดขึ้นได้โดยอัตโนมัติในà¸�รณีที่ server reboot หรือ crashed process ถูà¸� restart โดย process manager ดังนั้นขั้นตอนà¸�าร run ถูà¸�ทำให้มีขั้นตอนน้อยที่สุดเท่าที่จะเป็นไปได้ เพื่อป้องà¸�ันปัà¸�หา app สามารถหยุดà¸�ารทำงานได้ในเวลาตอนà¸�ลางคืนเมื่อไม่มี developer อยู่ทำงาน ขั้นตอนà¸�าร build สามารถเป็นขั้นตอนที่ซับซ้อนได้ ในเมื่อ error จะà¹�สดงต่อ developer ผู้ซึ่งทำà¸�าร deploy มัน content/th/dev-prod-parity.md0000644000175000056700000002027515226251677014763 0ustar0000000000000000## X. Dev/prod parity ### ทำให้ development, staging à¹�ละ production ให้มีความใà¸�ล้เคียงà¸�ันที่สุด ในอดีต มีช่องว่างที่มาà¸�มายระหว่าง development (developer à¹�à¸�้ไข app ในเครื่องตัวเอง [deploy](./codebase)) à¹�ละ production (deploy ที่ทำงานà¹�ละใช้งานโดยผู้ใช้งานที่à¹�ท้จริง) ช่องว่างที่ชัดเจนมี 3 เรื่่อง: * **ช่องว่างของเวลา** developer จะทำงานบน code ที่ใช้เวลาเป็นวัน, เป็นอาทิตย์ หรือเป็นเดือนที่จะเอาขึ้นสู่ production * **ช่องว่างของบุคคล** developer เขียน code à¹�ต่วิศวà¸�ร ops ทำà¸�าร deploy code * **ช่องว่างของเครื่องมือ** developer อาจจะใช้ stack อย่างเช่น Nginx, SQLite à¹�ละ OSX ขณะที่ production deploy ใช้ Apache, MySQL à¹�ละ Linux **Twelve-factor app ถูà¸�ออà¸�à¹�บบสำหรับ [à¸�าร deployment อย่างต่อเนื่อง (continuous deployment)](http://avc.com/2011/02/continuous-deployment/) ด้วยà¸�ารรัà¸�ษาช่องว่างระหว่าง development à¹�ละ production ให้à¹�คบที่สุด** โดยพิจารณาจาà¸�ช่องว่าง 3 เรื่องด้านบน: * ทำให้เวลาสั้นลง: developer อาจจะเขียน code à¹�ละทำà¸�าร deploy ในเวลาเพียงชั่วโมงเดียวหรือเพียงไม่à¸�ี่นาทีหลังจาà¸�เขียน code เสร็จ * ทำให้ช่องว่างบุคคลà¹�คบลง: developer เป็นคนเขียน code à¹�ละเป็นคนที่ deploy code เองà¹�ละเป็นคนที่ดูใน production เอง * ทำให้ช่องว่างเครื่องมือà¹�คบลง: ทำให้ใช้เครื่องมือ developement à¹�ละ production เหมือนà¸�ันมาà¸�ที่สุดเท่าที่จะทำได้ สรุปข้างบนเป็นตาราง:
    Traditional app Twelve-factor app
    เวลาระหว่าง deploys สัปดาห์ ชั่วโมง
    คนเขียน code vs คน deploy code คนละคน คนเดียว�ัน
    สภาพ�วดล้อม Dev vs production �ต�ต่าง�ัน เหมือน�ันมา�ที่สุด
    [Backing services](./backing-services) อย่างเช่น �านข้อมูลของ app, ระบบคิว, หรือ ระบบ�คช เป็นสิ่งที่ dev/prod ควรมีควมคล้ายคลึง�ันมา�ที่สุด หลายภาษามี library ซึ่งทำให้เข้าถึง backing service ได้ง่าย รวมทั้ง *adapter* �ับบริ�ารที่�ต�ต่าง�ัน ตัวอย่างบางส่วนในตารางนี้:
    Type Language Library Adapters
    Database Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
    Queue Python/Django Celery RabbitMQ, Beanstalkd, Redis
    Cache Ruby/Rails ActiveSupport::Cache Memory, filesystem, Memcached
    Developer บางครั้งหาวิธีที่ใช้ backing service ง่ายๆ ในเครื่องตัวเอง ในขณะที่ backing service ใช้งานอย่างเคร่งครัด�ละ�ข็ง��ร่งใน production ตัวอย่างเช่น ใช้ SQLite ในเครื่องพัฒนา �ละใช้ PostgreSQL ใน production หรือใช้ local process memory สำหรับ�คชใน development �ละ Memcached ใน production **Twelve-factor developer ต่อต้าน�ำใช้งาน backing service ที่�ต�ต่าง�ันระหว่าง development �ละ production** �ม้ว่าเมื่อใช้ adapter ในทางทฤษฎี�ล้วไม่มีความ�ต�ต่าง�ันใน backing service ความ�ต�ต่างระหว่าง backing service หมายความว่าความไม่เข้า�ันเพียงเล็�น้อยที่เป็นสาเหตุให้ code ทำงานได้�ละผ่าน�ารทดสอบใน development หรือ staging �ต่ไปทำงานผิดพลาดใน production ความผิดหลาดเหล่านี้สร้างความไม่ลงรอย�ัน�ับ�าร delopyment อย่างต่อเนื่อง �ละราคาของความไม่ลงรอย�ันนี้�ละความผันผวนตามมาของ�าร deployment อย่างต่อเนื่องสูงมา�เมื่อพิจารณาตลอดอายุ�ารทำงานของ application Lightweight local service ไม่น่าสนใจมา�เหมือนเมื่อ�่อน ด้วย backing service สมัยใหม่อย่างเช่น Memcached, PostgreSQL �ละ RabbitMQ ไม่มีความ�ต�ต่าง�ันใน�ารติดตั้ง�ละทำงาน ต้องขอบคุณระบบ packaging สมัยใหม่ อย่างเช่น [Homebrew](http://mxcl.github.com/homebrew/) �ละ [apt-get](https://help.ubuntu.com/community/AptGet/Howto) อี�ทางเลือ�หนึ่ง เครืองมือจัดเตรียมที่เปิดเผยอย่างเช่น [Chef](http://www.opscode.com/chef/) �ละ [Puppet](http://docs.puppetlabs.com/) รวม light-weight สิ่ง�วดล้อมเสมือนอย่างเช่น [Docker](https://www.docker.com/) �ละ [Vagrant](http://vagrantup.com/) ทำให้ developer รัน app ในสิ่ง�วดล้องของเครื่องได้ใ�ล้เคียง�ับสิ่ง�วดล้อมของ production มา�ที่สุด �ละค่าใช้จ่ายของ�ารติดตั้ง�ละใช้งานระบบเหล่านี้ต่ำมา�ถ้าเทียบ�ับประโยชน์ที่ได้รับสำหรับความเท่าเทียม�ันของ dev/prod �ละ�าร deployment ที่ต่อเนื่อง Adapter ไปยัง backing service ที่�ต�ต่าง�ันยังคงมีประโยชน์อยู่ เพราะว่าจะทำให้ port ไปใช้�ับ backing service ใหม่ๆ ได้อย่างง่ายดาย �ต่�าร deploy ทั้งหมดของ app (developer environment, staging, production) ควรจะใช้ชนิด�ละเวอร์ชันที่เหมือน�ันของ�ต่ล่ะ backing service. content/de/build-release-run.md0000644000175000056700000000532015226251677015223 0ustar0000000000000000## V. Build, release, run ### Build- und Run-Phase strikt trennen Eine [Codebase](./codebase) wird durch drei Phasen in einen (Nicht-Entwicklungs)-Deploy transformiert: * Die *Build-Phase* ist eine Transformation, die ein Code-Repository in ein ausführbarers Code-Bündel übersetzt, das man auch *Build* nennt. Ausgehend von einer Code-Version eines Commits, der im Deployment-Prozess festgelegt wurde, holt sie [Abhängigkeiten](./dependencies), verpackt sie zum Mitliefern, und kompiliert Binaries und Assets. * Die *Release-Phase* übernimmt den Build von der Build-Phase und kombiniert ihn mit der zum Deploy passenden [Konfiguration](./config). Der so erzeugte *Release* enthält sowohl den Build, als auch die Konfiguration und kann direkt in einer Ausführungsumgebung ausgeführt werden. * Die *Run-Phase* (auch "Laufzeit" genannt) führt die App in einer Ausführungsumgebung aus, indem sie eine Menge der [Prozesse](./processes) der App gegen einen ausgewählten Release ausführt. ![Code wird zum Build und zusammen mit einer Konfiguration ergibt sich ein Release](/images/release.png) **Die Zwölf-Faktor-App trennt strikt zwischen Build-, Release- und Run-Phase.** Es ist nicht möglich, Code-Änderungen zur Laufzeit zu machen, weil es keinen Weg gibt, diese Änderungen zurück in die Build-Phase zu schicken. Deployment-Werkzeuge bieten meist eine Release-Verwaltung an. Am bekanntesten ist die Funktion auf einen früheren Release zurückzusetzen. Zum Beispiel speichert das Deployment-Werkzeug [Capistrano](https://github.com/capistrano/capistrano/wiki) Releases in einem Unterverzeichnis mit Namen `releases`. Der aktuelle Release ist ein symbolischer Link auf aktuelle Release-Verzeichnis. Mit dem Kommando `rollback` kann einfach und schnell auf einen früheren Release zurückgesetzt werden. Jeder Release sollte eine eindeutige Release-ID haben, wie zum Beispiel einen Zeitstempel des Releases (`2011-04-06-20:32:17`) oder eine laufende Nummer (`v100`). Releases werden nie gelöscht und ein Release kann nicht verändert werden, wenn er einmal angelegt ist. Jede Änderung erzeugt einen neuen Release. Builds werden durch die Entwickler der App angestoßen, wenn neuer Code deployt wird. Im Gegensatz dazu kann die Ausführung zur Laufzeit automatisch erfolgen, wenn ein Server neu gebootet wird oder ein abgestürzter Prozess von der Prozessverwaltung neu gestartet wird. Deswegen sollte die Run-Phase auf so wenig bewegliche Teile wie möglich beschränkt sein, denn Probleme, die eine App vom Laufen abhalten, können sie mitten in der Nacht zusammenbrechen lassen, wenn keine Entwickler zur Verfügung stehen. Die Build-Phase kann komplexer sein, denn Fehler sind immer sichtbar für den Entwickler, der den Deploy vorantreibt. content/ko/dependencies.md0000644000175000056700000000605015226251677014354 0ustar0000000000000000## II. 종�성 ### 명시�으로 선언�고 분리� 종�성 대부분� 프로그래� 언어는 ��브러리 배�를 위한 패키징 시스템� 제공하고 있습니다. Perl� [CPAN](http://www.cpan.org/) �나 Ruby� [Rubygems](http://rubygems.org/)가 그 예입니다. ��브러리는 패키징 시스템� 통해 시스템 전체(site pakages)나 애플리케�션� �함한 디렉토리(vendoring 혹� bundling)� 설치� 수 있습니다. **Twelve-Factor App� 전체 시스템� 특정 패키지가 암묵�으로 존재하는 것� 절대 �존하지 않습니다.** *종�선 선언* mainifest를 �용하여 모든 종�성� 완전하고 엄격하게 선언합니다. �나아가, *종�성 분리* 툴� 사용하여 실행�는 �안 둘러싼 시스템으로 암묵�� 종�성 "유출"� 발�하지 않는 것� 보장합니다. �런 완전하고 명시�� 종�성� 명시는 개발과 서비스 모��게 ��하게 �용�니다. 예를 들어, 루비�서 사용�는 [Bundler](https://bundler.io/)는 종�성 선언� 위해 `Gemfile` manifest �맷� 지�하며, 종�성 분리를 위해 `bundle exec`를 지�합니다. 파���는 �를 지�하기 위한 2가지 �구가 있습니다. [Pip](http://www.pip-installer.org/en/latest/)� 종�성 선언� 위해 사용�며, [Virtualenv](http://www.virtualenv.org/en/latest/)는 종�성 분리를 위해 사용�니다. 심지어 C언어�� 종�성 분리를 위해 [Autoconf](http://www.gnu.org/s/autoconf/)가 있으며, static link를 활용해 종�성 분리� 가능합니다. 어떤 툴체�� 사용하든, 종�성 선언과 분리는 항� 같� 사용�어야 합니다. 하나만 사용하는 것� Twelve-Factor� 만족하는 � 불충분합니다. 명시�� 종�성 선언� 장� 중 하나는 애플리케�션 개발� 새로 참가하게 � 개발�가 설치를 간단하게 할 수 있다는 �입니다. 새로 참가한 개발�는 애플리케�션� 코드베�스를 개발 머신� 체�아웃 하고, 언어� 런타임과 종�성 매니저만 미리 설치하면 �니다. 개발�는 정해져있는 *빌드 명령어*만 입력하면 �용 프로그램� 코드를 실행하는 � 필요한 모든 것� 설치할 수 있습니다. 예를 들어, Ruby� 빌드 명령어는 `bundle install`�며, Clojure/[Leiningen](https://github.com/technomancy/leiningen#readme)�서는 `lein deps`입니다. Twelve-Factor App� 어떠한 시스템 �구�� 암시�으로 �존하지 않습니다. 예를 들어, ImageMagick�나 `curl`� 사용하는 경우가 있습니다. �러한 툴들� 대부분� 시스템� 존재하지만, 모든 시스템� 존재하는 것� 보장�는 것� 아닙니다. 미래� 시스템�서는 존재하지 않� 수 있으며, 호환�는 버전� 있으�는 보장� 없습니다. 애플리케�션�게 시스템 �구가 필요하다면, 그 �구를 애플리케�션과 통합해야 합니다. content/tr/backing-services.md0000644000175000056700000000556015226251677015166 0ustar0000000000000000## IV. Destek servisi ### Destek servislerine ekli kaynak olarak davranma Bir *destek servisi* uygulamanın kendi normal işleminin bir parçası olarak ağ üzerinden tüketim yapan bir servistir. Örnekler veri deposu([MySQL](http://dev.mysql.com/) veya [CouchDB](http://couchdb.apache.org/) gibi), mesajlama/kuyruklama sistemleri( [RabbitMQ](http://www.rabbitmq.com/) veya [Beanstalkd](https://beanstalkd.github.io)), giden email için SMTP servisi([Postfix](http://www.postfix.org/) gibi) ve önbellekleme sistemleri([Memcached](http://memcached.org/) gibi) içerir. Destek servisleri, veri tabanı gibi, uygulamaların çalışma zamanlı dağıtımlarında olduğu gibi benzer sistem yöneticileri tarafından geleneksel olarak yönetilirler. Bu yerel yönetilen servislere ilave olarak, uygulama üçüncü parti uygulamalar tarafından onaylanmış ve yönetilmiş servislere sahip olabilirler. Örnekler SMTP servisleri([Postmark](http://postmarkapp.com/) gibi), Metrik toplama servisleri( [New Relic](http://newrelic.com/) veya [Loggly](http://www.loggly.com/) gibi), binary servisler([Amazon S3](http://aws.amazon.com/s3/) gibi) ve API-erişilebilir tüketici servisleri bile [Twitter](http://dev.twitter.com/), [Google Maps](http://code.google.com/apis/maps/index.html), ve [Last.fm](http://www.last.fm/api) gibi) içerir. **On iki faktör uygulaması için bu kod, yerel ve üçüncü parti servisler arasında ayrım yapmaz.** Uygulamada, her ikiside ek kaynaktır, [yapılandırmada](./config) saklanmış yer belirleyici/kimlik bilgileri ve URL aracılığıyla erişilir. On iki faktör uygulamasının bir dağıtımı, uygulama kodunda hiçbir değişiklik olmadan üçüncü parti([Amazon RDS](http://aws.amazon.com/rds/) gibi) tarafından yönetilenle yerel MySQL veritabanı silebilmelidir. Aynı şekilde bir yerel SMTP servisi(Postmark gibi), kod değişikliksiz bir üçüncü parti SMTP servisiyle değiş tokuş yapılabilir. Her iki durumda da, kaynak sadece değişmesi gereken yapılandırmada ele alınır. Her bir belirgin destek servisi bir *kaynaktır*. Örneğin, bir MySQL veritabanı(Uygulama katmanında parçalanma için kullanılmış) bir kaynaktır; iki MySQL veritabanı iki belirgin kaynak olarak nitelendirilir. On iki faktör uygulaması veritabanlarına, bağlı oldukları dağıtımlara gevşek bağlaşımlarını belirten *ek kaynak* olarak davranır. A production deploy attached to four backing services. Kaynaklar dağıtımlara istenilen zamanda eklenilip çıkartılabilir. Örneğin, eğer uygulamanın veritabanı donanım sorununa göre yanlış davranıyorsa, uygulamanın yöneticisi son yedeklemeden geri yüklenmiş yeni bir veri tabanı sunucusunu döndürebilir. Şuanki veritabanı ekten çıkarılmış olabilir ve yeni veri tabanı eklenmiş olabilir, hiç bir kod değişikliği olmadan. content/tr/port-binding.md0000644000175000056700000000410115226251677014331 0ustar0000000000000000## VII. Port Bağlama ### Port bağlama yolu üzerinden dışarı aktarma Web uygulamaları bazı zamanlar web sunucu taşıyıcıları içinde çalıştırılırlar. Örneğin, PHP uygulamaları modül olarak [Apache HTTPD](http://httpd.apache.org/) içinde veya Java uygulamaları [Tomcat](http://tomcat.apache.org/) içinde çalıştırılabilirler. **On iki faktör uygulama tamamen bağımsız** ve web dönüştürme servisi oluşturmak için çalışma ortamı içindeki web sunucunun çalışma zamanlı enjeksiyonuna dayanmaz. Bu web uygulaması port bağlama tarafından HTTP'yi servis olarak dışa aktarır ve o porta gelen istekleri dinler. Yerel geliştirme ortamında, geliştiriciler `http://localhost:5000/` gibi servis URL'ini, onların duygulamaları tarafından dışa aktarılan servise erişmek için ziyaret ederler. Dağıtımda, yönlendirme katmanı dışa bakan makine adından port bağımlı web süreçlerine gelen yönlendirme isteklerini ele alır. Bu tipik olarak, uygulamaya web sunucusu kütüphanesi eklemek için bağımlılık tanımlaması kullanılarak geliştirilmiştir, Python için [Tornado](http://www.tornadoweb.org/), Ruby için [Thin](http://code.macournoyer.com/thin/) veya Java ve diğer JVM-tabanlı diller için [Jetty](http://jetty.codehaus.org/jetty/). Bu uygulamanın kodu içinde *kullanıcı alanında* gerçekleşir. Çalışma ortamıyla olan anlaşma isteklere hizmet veren bir porta bağlıdır. HTTP port bağlama ile dışarı aktarılabilen tek servis değildir. Nerdeyse herhangi bir sunucu yazılım tipi port için süreç bağlama aracılığıyla çalışır ve gelen istekleri bekler. Örnekler [ejabberd](http://www.ejabberd.im/) ([XMPP](http://xmpp.org/) ile haberleşir) ve [Redis](http://redis.io/) ([Redis protocol](http://redis.io/topics/protocol) ile haberleşir) içerir. Port bağlama yaklaşımı bir uygulamanın,tüketici uygulama için yapılandırmadaki kaynak olanağı gibi destek uygulamasına URL sağlayarak diğer bir uygulamanın [destek servisi](./backing-services) olabileceği anlamına geldiğini de unutmayın. content/ja/concurrency.md0000644000175000056700000000677515226251677014257 0ustar0000000000000000## VIII. 並行性 ### プロセスモデル�よ��スケールアウト�る ����コンピュータープログラム��一度実行�れる��1�以上�プロセス���表�れる。Webアプリケーション��様々�プロセス実行形態��られ���。例���PHP�プロセス�Apache��プロセス���実行�れ�リクエスト��応��起動�れる。Javaプロセス��対�方法を�る。JVM�1��巨大�親プロセスを�供��起動時�システムリソース(CPUやメモリ)�大��ブロックを確���スレッドを使��内部的�並行性を管��る。��ら�場��も�実行�れるプロセス�アプリケーション�開発者����ん�見���。 ![スケール�実行�れるプロセス�数���表��れ�ワークロード�種類�プロセスタイプ���表��れる。](/images/process-types.png) **Twelve-Factor App��プロセス�第一級市民��る。** Twelve-Factor App���るプロセス�考�方��[サービス�デーモンを実行�る���Unixプロセスモデル](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/)�ら大��ヒントを得��る。��モデルを使��個々�ワークロード�種類を *プロセスタイプ* �割り当�る����開発者�アプリケーション�多様�ワークロードを扱�るよ��設計�る�����る。例���HTTPリクエスト�Webプロセス�よ��処���時間���る�ックグラウンドタスク�ワーカープロセス�よ��処��る�����る。 ��モデル��ランタイムVM内�スレッドや�[EventMachine](https://github.com/eventmachine/eventmachine)�[Twisted](http://twistedmatrix.com/trac/)�[Node.js](http://nodejs.org/)�����期イベントモデル�よ���個々�プロセス�プロセス内部�多�化�る��を�止�る������。���個々�VM��れ��大���る(垂直�スケール�る)����������アプリケーション�複数�物�マシン�動作�る複数�プロセス��拡大����れ��ら��。 ��プロセスモデル�真価を発��る���スケールアウト�必���������る。[シェアードナッシング�水平分割�能�Twelve-Factor Appプロセス�性質](./processes)��並行性を高�る�作��純��確実�も���る��を�味�る。プロセスタイプ��れ�れ�タイプ�プロセス数��列�� *プロセスフォーメーション* �言�れる。 Twelve-Factor App�プロセス�[決��デーモン化�る�������](http://dustin.github.com/2010/02/28/running-processes.html)�PIDファイルを書�出�������。��代�り��OS�プロセスマ�ージャー(例:[systemd](https://www.freedesktop.org/wiki/Software/systemd/)�クラウドプラットフォーム�分散プロセスマ�ージャー��る��開発環境���る[Foreman](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html)�よ��ツール)を頼る����[出力ストリーム](./logs)を管���プロセス�クラッシュ�対応��ユーザー�よる�起動やシャットダウンを処������る。 content/de/backing-services.md0000644000175000056700000000540215226251677015124 0ustar0000000000000000## IV. Unterstützende Dienste ### Unterstützende Dienste als angehängte Ressourcen behandeln Ein *unterstützender Dienst* ist jeder Dienst, den die App über das Netzwerk im Rahmen ihrer normalen Arbeit konsumiert. Beispiele sind Datenspeicher (wie [MySQL](http://dev.mysql.com/) oder [CouchDB](http://couchdb.apache.org/)), Messaging/Queueing-Systeme (wie [RabbitMQ](http://www.rabbitmq.com/) oder [Beanstalkd](https://beanstalkd.github.io)), SMTP-Dienste für das Senden von Mail (wie [Postfix](http://www.postfix.org/)), und Cache-Systeme (wie [Memcached](http://memcached.org/)). Unterstützende Dienste wie Datenbanken werden traditionell von denselben Systemadministratoren verwaltet, die die App deployen. Außer diesen intern verwalteten Diensten können der App auch von Dritten verwaltete Dienste zur Verfügung stehen. Dazu gehören SMTP-Dienste (wie [Postmark](http://postmarkapp.com/)), Metrik-Sammler (wie [New Relic](http://newrelic.com/) oder [Loggly](http://www.loggly.com/)), Binary-Asset-Dienste (wie [Amazon S3](http://aws.amazon.com/s3/)), und auch über eine API zugängliche Dienste (wie [Twitter](http://dev.twitter.com/), [Google Maps](https://developers.google.com/maps/), oder [Last.fm](http://www.last.fm/api)). **Der Code einer Zwölf-Faktor-App macht keinen Unterschied zwischen lokalen Diensten und solchen von Dritten.** Für die App sind sie beide unterstützende Dienste, zugreifbar über eine URL oder andere Lokatoren/Credentials, die in der [Konfiguration](./config) gespeichert sind. Ein [Deploy](./codebase) einer Zwölf-Faktoren-App könnte eine lokale MySQL-Datenbank, durch eine von Dritten zur Verfügung gestellten, ersetzen (wie [Amazon RDS](http://aws.amazon.com/rds/)). Genauso ohne Codeänderung kann ein lokaler SMTP-Server durch einen von Dritten zur Verfügung gestellten SMTP-Dienst ersetzt werden. In beiden Fällen muss sich nur der Resource-Handle in der Konfiguration ändern. Jeder einzelne unterstützende Dienst ist eine *Ressource*. So ist zum Beispiel eine MySQL-Datenbank eine Ressource; zwei MySQL-Datenbanken (die für ein Sharding auf Applikationsebene verwendet werden) stellen zwei Ressourcen dar. Dass die Zwölf-Faktor-App diese Datenbanken als *angehängte Ressourcen* behandelt, zeigt ihre lose Kopplung, zu dem Deploy an dem sie hängen. Ein Produktions-Deploy der an vier unterstützenden Diensten hängt. Ressourcen können beliebig an Deploys an- und abgehängt werden. Wenn zum Beispiel die Datenbank einer App aufgrund von Hardwareproblemen aus der Rolle fällt, könnte der App-Administrator eine neue Datenbank aus einem Backup aufsetzen. Die aktuelle Produktionsdatenbank könnte abgehängt und die neue Datenbank angehängt werden -- ganz ohne Codeänderung. content/ja/who.md0000644000175000056700000000043615226251677012506 0ustar0000000000000000��ドキュメント�対象者 ============================== サービス���動�アプリケーションを開発���る����開発者。�よ���よ��アプリケーションをデプロイ���管����るインフラエンジニア。 content/pl/concurrency.md0000644000175000056700000000573515226251677014273 0ustar0000000000000000## VIII. Współbieżność ### Skaluj przez odpowiednio dobrane procesy Każdy program komputerowy od momentu uruchomienia jest reprezentowany przez jeden lub więcej procesów. Aplikacje internetowe mogą być uruchamiane w różnorodny sposób. Dla przykładu - procesy PHP uruchamiane są na żądanie (w zależności od potrzeby obsługi odpowiednio dużej liczby zapytań) jako podrzędne procesy Apache'a. W Javie procesy obsługiwane są zupełnie inaczej, z JVM zapewniającym jeden nadrzędny proces, który rezerwuje zasoby systemu (CPU oraz pamięć) na starcie oraz współbieżnością zarządzaną wewnętrznie i opartą na wątkach. Dla developerów aplikacji różnica jednak nie będzie szczególnie odczuwalna. ![Skala wyrażana jest przez działające procesy, natomiast różnorodność obciążenia wyrażana jest w typach procesów](/images/process-types.png) **W aplikacji 12factor, procesy są typem pierwszoklasowym** Zachowanie tych procesów jest mocno wzorowane na [modelu procesów unixowych dla usług działających w wewnątrz systemu operacyjnego](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/). Używając tego modelu programista może zaprojektować aplikację by radziła sobie z różnorodnym obciążeniem przez przypisywanie każdej czynności do *typu procesu*. Przykłady to m.in obsługa procesów sieciowych przez HTTP oraz długotrwałe działanie zadań w tle opierających się na procesach roboczych. Mimo tego procesy wciąż mogą się zwielokrotnić przez wątki w środowisku maszyny wirtualnej lub w asynchronicznym modelu wydarzeń, którego implementację możemy znaleźć wśród narzędzi takich jak [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http://twistedmatrix.com/trac/), albo [Node.js](http://nodejs.org/). Należy pamiętać, że pojedyncza maszyna wirtualna może z czasem wymagać coraz więcej zasobów (skala pionowa), dlatego aplikacja musi być również w stanie pracować w oparciu o wiele procesów działających na wielu fizycznych maszynach. Największa zaleta modelu procesów objawia się w momencie skalowania. [Niezależność oraz dzielenie się na podprocesy](./processes) umożliwia proste i bezproblemowe dodawanie wiekszej liczby równolegle działajacych procesów. Tablica typów procesów i liczba procesów nazywana jest ich *formacją*. Procesy aplikacji 12factor [nigdy nie powinny być uruchamiane w tle](http://dustin.github.com/2010/02/28/running-processes.html) i nie mogą zapisywać plików PID. Zamiast tego opierają się na narzędziach systemu operacyjnego: do zarządzania procesami (np. [systemd](https://www.freedesktop.org/wiki/Software/systemd/), do zarządzania rozproszonymi procesami w chmurze, lub [Foreman](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html) w developmencie) do zarządzania [stumieniami wyjściowymi](./logs), do obsługi zatrzymanych procesów, restartu i zakończenia działań zainicjowanych przez użytkownika. content/pt_br/logs.md0000644000175000056700000000464715226251677013401 0ustar0000000000000000## XI. Logs ### Trate logs como fluxos de eventos *Logs* provém visibilidade no comportamento de um app em execução. Em ambientes de servidor eles são comumente escritos num arquivo em disco (um "logfile"); mas este é apenas um formato de saída. Logs são o [fluxo](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/) de eventos agregados e ordenados por tempo coletados dos fluxos de saída de todos os processos em execução e serviços de apoio. Logs na sua forma crua são tipicamente um formato de texto com um evento por linha (apesar que pilhas de exceção podem ocupar várias linhas). Logs não tem começos ou términos fixos, mas fluem continuamente enquanto o app estiver operante. **Um app doze-fatores nunca se preocupa com o roteamento ou armazenagem do seu fluxo de saída.** Ele não deve tentar escrever ou gerir arquivos de logs. No lugar, cada processo em execução escreve seu próprio fluxo de evento, sem buffer, para o `stdout`. Durante o desenvolvimento local, o desenvolvedor verá este fluxo no plano de frente do seu terminal para observar o comportamento do app. Em deploys de homologação ou produção, cada fluxo dos processos serão capturados pelo ambiente de execução, colados com todos os demais fluxos do app, e direcionados para um ou mais destinos finais para visualização e arquivamento de longo prazo. Estes destinos de arquivamento não são visíveis ou configuráveis pelo app, e ao invés disso, são completamente geridos pelo ambiente de execução. Roteadores de log open source (tais como [Logplex](https://github.com/heroku/logplex) e [Fluentd](https://github.com/fluent/fluentd)) estão disponíveis para este propósito. O fluxo de evento para um app pode ser direcionado para um arquivo, ou visto em tempo real via `tail` num terminal. Mais significativamente, o fluxo pode ser enviado para um sistema indexador e analisador tal como [Splunk](http://www.splunk.com/), ou um sistema mais genérico de _data warehousing_ como o [Hadoop/Hive](http://hive.apache.org/). Estes sistemas permitem grande poder e flexibilidade para observar o comportamento de um app durante o tempo, incluindo: * Encontrando eventos específicos no passado. * Gráficos em larga escala de tendências (como requisições por minuto) * Notificações ativas de acordo com as heurísticas determinadas pelo usuário (como uma notificação quando a quantidade de erros por minuto exceder um certo limite). content/ru/dev-prod-parity.md0000644000175000056700000002110315226251677014765 0ustar0000000000000000## X. Паритет разработки/работы приложени� ### Держите окружени� разработки, промежуточного развёртывани� (staging) и рабочего развёртывани� (production) мак�имально похожими И�ториче�ки �уще�твуют значительные различи� между разработкой (разработчик делает живые изменени� на локальном [развёртывании](./codebase) приложени�) и работой приложени� (развёртывание приложени� � до�тупом к нему конечных пользователей). Эти различи� про�вл�ют�� в трёх обла�т�х: * **Различие во времени:** разработчик может работать � кодом, который попадёт в рабочую вер�ию приложени� только через дни, недели или даже ме��цы. * **Различие пер�онала**: разработчики пишут код, OPS инженеры разворачивают его. * **Различие ин�трументов**: разработчики могут и�пользовать �тек технологий, такой как Nginx, SQLite, и OS X, в то врем� как при рабочем развёртывании и�пользуют�� Apache, MySQL и Linux. **Приложение двенадцати факторов �проектировано дл� [непрерывного развёртывани�](http://avc.com/2011/02/continuous-deployment/) благодар� минимизации различий между разработкой и работой приложени�. Ра��мотрим три различи�, опи�анных выше: * Сделать различие во времени небольшим: разработчик может напи�ать код, и он будет развёрнут через не�колько ча�ов или даже минут. * Сделать небольшими различи� пер�онала: разработчик который напи�ал код, активно уча�твует в его развёртывании и наблюдает за его поведением во врем� работы приложени�. * Сделать различи� ин�трументов небольшими: держать окружение разработки и работы приложени� мак�имально похожими. Резюмиру� �казанное выше в таблицу:
    Традиционное приложение Приложение двенадцати факторов
    Врем� между развёртывани�ми �едели Ча�ы
    �втор кода/тот кто разворачивает Разные люди Те же люди
    Окружение разработки/работы приложени� Различные Мак�имально похожие
    [Сторонние �лужбы](./backing-services), такие как базы данных, �и�темы очередей �ообщений и к�ш, �вл�ют�� одной из обла�тей, где паритет при разработке и работе приложени� имеет важное значение. Многие �зыки предо�тавл�ют библиотеки, которые упрощают до�туп к �торонним �лужбам, включа� *адаптеры* дл� до�тупа к различных типам �ерви�ов. �екоторые примеры, в таблице ниже.
    Тип Язык Библиотека �даптеры
    База данных Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
    Очередь �ообщений Python/Django Celery RabbitMQ, Beanstalkd, Redis
    К�ш Ruby/Rails ActiveSupport::Cache Пам�ть, файлова� �и�тема, Memcached
    Иногда разработчики находÑ�Ñ‚ удобным иÑ�пользовать лёгкие Ñ�торонние Ñ�лужбы в их локальном окружении, в то времÑ� как более Ñ�ерьёзные и надёжные Ñ�торонние Ñ�ервиÑ�Ñ‹ будут иÑ�пользованы в рабочем окружении. Ð�апример иÑ�пользуют SQLite локально и PostgreSQL в рабочем окружении; или памÑ�ть процеÑ�Ñ�а длÑ� кÑ�шированиÑ� при разработке и Memcached в рабочем окружении. **Разработчик приложениÑ� двенадцати факторов Ñ�опротивлÑ�етÑ�Ñ� иÑ�кушению иÑ�пользовать различные Ñ�торонние Ñ�ервиÑ�Ñ‹ при разработке и в рабочем окружении**, даже когда адаптеры теоретичеÑ�ки абÑ�трагированы от различий в Ñ�торонних Ñ�ервиÑ�ах. РазличиÑ� в иÑ�пользуемых Ñ�торонних Ñ�ервиÑ�ах означают, что может возникнуть крошечнаÑ� неÑ�овмеÑ�тимоÑ�ть, котораÑ� Ñ�танет причиной того, что код, который работал и прошёл теÑ�ты при разработке и промежуточном развёртывании не работает в рабочем окружении. Такой тип ошибок Ñ�оздаёт помехи, которые нивелируют преимущеÑ�тва непрерывного развёртываниÑ�. СтоимоÑ�ть Ñ�тих помех и поÑ�ледующего воÑ�Ñ�тановлениÑ� непрерывного развёртываниÑ� Ñ�влÑ�етÑ�Ñ� чрезвычайно выÑ�окой, еÑ�ли раÑ�Ñ�матривать в Ñ�овокупноÑ�ти за вÑ�Ñ‘ времÑ� Ñ�ущеÑ�твованиÑ� приложениÑ�. УÑ�тановка локальных Ñ�ервиÑ�ов Ñ�тала менее непреодолимой задачей, чем она когда-то была. Современные Ñ�торонние Ñ�ервиÑ�Ñ‹, такие как Memcached, PostgreSQL и RabbitMQ не трудно уÑ�тановить и запуÑ�тить благодарÑ� Ñ�овременным менеджерам пакетов, таким как [Homebrew](http://mxcl.github.com/homebrew/) и [apt-get](https://help.ubuntu.com/community/AptGet/Howto). Кроме того, декларативные инÑ�трументы подготовки окружениÑ�, такие как [Chef](http://www.opscode.com/chef/) и [Puppet](http://docs.puppetlabs.com/) в Ñ�очетании Ñ� легковеÑ�ным виртуальным окружением, таким как [Vagrant](http://vagrantup.com/) позволÑ�ÑŽÑ‚ разработчикам запуÑ�тить локальное окружение которое макÑ�имально приближено к рабочему окружению. СтоимоÑ�ть уÑ�тановки и иÑ�пользованиÑ� Ñ�тих Ñ�иÑ�тем ниже по Ñ�равнению Ñ� выгодой, получаемой от паритета разработки/работы приложениÑ� и непрерывного развёртываниÑ�. Ð�даптеры длÑ� различных Ñ�торонних Ñ�ервиÑ�ов по-прежнему полезны, потому что они позволÑ�ÑŽÑ‚ портировать приложение длÑ� иÑ�пользованиÑ� новых Ñ�торонних Ñ�ервиÑ�ов отноÑ�ительно безболезненно. Ð�о вÑ�е развёртываниÑ� приложениÑ� (окружение разработчика, промежуточное и рабочее развёртывание) должны иÑ�пользовать тот же тип и ту же верÑ�ию каждого из Ñ�торонних Ñ�ервиÑ�ов. content/zh_cn/dependencies.md0000644000175000056700000000413515226251677015046 0ustar0000000000000000## II. ä¾�èµ– ### 显å¼�声明ä¾�赖关系( *dependency* ) 大多数编程语言都会æ��供一个打包系统,用æ�¥ä¸ºå�„个类库æ��供打包æœ�务,就åƒ� Perl çš„ [CPAN](http://www.cpan.org/) 或是 Ruby çš„ [Rubygems](http://rubygems.org/) 。通过打包系统安装的类库å�¯ä»¥æ˜¯ç³»ç»Ÿçº§çš„(称之为 "site packages"),或仅供æŸ�个应用程åº�使用,部署在相应的目录中(称之为 "vendoring" 或 "bunding")。 **12-Factor规则下的应用程åº�ä¸�会éš�å¼�ä¾�赖系统级的类库。** 它一定通过 *ä¾�赖清å�•* ,确切地声明所有ä¾�赖项。此外,在è¿�行过程中通过 *ä¾�赖隔离* 工具æ�¥ç¡®ä¿�程åº�ä¸�会调用系统中存在但清å�•中未声明的ä¾�赖项。这一å�šæ³•ä¼šç»Ÿä¸€åº”ç”¨åˆ°ç”Ÿäº§å’Œå¼€å�‘环境。 例如, Ruby çš„ [Bundler](https://bundler.io/) 使用 `Gemfile` 作为ä¾�赖项声明清å�•,使用 `bundle exec` æ�¥è¿›è¡Œä¾�赖隔离。Python 中则å�¯åˆ†åˆ«ä½¿ç”¨ä¸¤ç§�工具 -- [Pip](http://www.pip-installer.org/en/latest/) 用作ä¾�赖声明, [Virtualenv](http://www.virtualenv.org/en/latest/) 用作ä¾�赖隔离。甚至 C 语言也有类似工具, [Autoconf](http://www.gnu.org/s/autoconf/) 用作ä¾�赖声明,é�™æ€�链接库用作ä¾�赖隔离。无论用什么工具,ä¾�赖声明和ä¾�赖隔离必须一起使用,å�¦åˆ™æ— æ³•满足 12-Factor 规范。 显å¼�声明ä¾�赖的优点之一是为新进开å�‘者简化了环境é…�ç½®æµ�程。新进开å�‘者å�¯ä»¥æ£€å‡ºåº”用程åº�的基准代ç �,安装编程语言环境和它对应的ä¾�赖管ç�†å·¥å…·ï¼Œå�ªéœ€é€šè¿‡ä¸€ä¸ª *构建命令* æ�¥å®‰è£…所有的ä¾�赖项,å�³å�¯å¼€å§‹å·¥ä½œã€‚例如,Ruby/Bundler 下使用 `bundle install`,而 Clojure/[Leiningen](https://github.com/technomancy/leiningen#readme) 则是 `lein deps`。 12-Factor 应用å�Œæ ·ä¸�会éš�å¼�ä¾�èµ–æŸ�些系统工具,如 ImageMagick 或是`curl`。å�³ä½¿è¿™äº›å·¥å…·å­˜åœ¨äºŽå‡ ä¹Žæ‰€æœ‰ç³»ç»Ÿï¼Œä½†ç»ˆç©¶æ— æ³•ä¿�è¯�所有未æ�¥çš„系统都能支æŒ�应用顺利è¿�行,或是能够和应用兼容。如果应用必须使用到æŸ�些系统工具,那么这些工具应该被包å�«åœ¨åº”用之中。 content/it/concurrency.md0000644000175000056700000000611215226251677014262 0ustar0000000000000000## VIII. Concorrenza ### Scalare attraverso il process model Ogni software, una volta avviato, è rappresentato da uno o più processi. Le web application in particolare hanno assunto nel tempo una gran varietà di forme e di tipologie di esecuzione, in tal senso. Per esempio, i processi PHP vengono eseguiti come sotto-processi figli di Apache, avviati su richiesta quando necessari in base al volume di richieste. Java invece gestisce le cose nella maniera opposta, tramite un superprocesso unico che usa una grande quantità di risorse sul server (CPU e memoria) dall'avvio, con una concorrenza gestita "internamente" tramite i threads. In entrambi i casi, comunque, i processi non sono esplicitamente visibili allo sviluppatore. ![Il fattore di scale è espresso con un numero di processi dello stesso tipo avviati, la diversità del carico di lavoro, invece, come le varie tipologie di processo.](/images/process-types.png) **In un'applicazione twelve-factor, i processi sono "first class citizen"**. La visione del concetto di processo prende spunto dal [concetto, in unix, dedicato all'esecuzione di demoni di servizi](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/). Attraverso l'uso di questo modello, lo sviluppatore può realizzare la propria applicazione in modo tale da farle gestire senza problemi diversi livelli di carico di lavoro, assegnando ogni tipo di lavoro a un tipo di processo ben definito. Per esempio, le richieste HTTP possono essere gestite da un web process, mentre dei compiti più lunghi (in background) possono essere gestiti da un altro processo separato. Questo non esclude che un certo processo, individualmente, possa gestire in modo autonomo e interno il multiplexing, tramite threading, all'interno della VM in esecuzione, o magari un modello asincrono o basato su eventi come quello di [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http://twistedmatrix.com/trac/), o [Node.js](http://nodejs.org/). Tuttavia, tutto questo può non bastare: l'applicazione deve essere anche adatta all'esecuzione su più macchine fisiche. Il modello di processo così come presentato rende il massimo quando arriva il momento di scalare. La [natura orizzontalmente partizionabile (e non soggetta a condivisioni) di un "processo twelve-factor"](./processes) permette di gestire la concorrenza in modo semplice e affidabile. L'array dei tipi di processo e il numero di processi presenti per ogni tipo è conosciuto come *process formation* (formazione di processi). I processi di un'app twelve-factor non dovrebbero [essere soggetti a daemonizing](http://dustin.github.com/2010/02/28/running-processes.html), o scrivere file PID. Al contrario, facendo affidamento sul process manager del sistema operativo (come [systemd](https://www.freedesktop.org/wiki/Software/systemd/), un process manager distribuito su piattaforma cloud, o tool come [Foreman](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html) durante lo sviluppo) per gestire [gli stream in output](./logs), rispondere adeguatamente a crash di processi e gestire riavvii e shutdown. public/images/favicon.ico0000644000175000056700000000370515226251677014171 0ustar0000000000000000‰PNG  IHDR(JÉÂ< pHYs  šœwIDAThµ™[¨”e†ó”™¦�É2#J(5Ð’Š¢¬A¨²ˆHè¢ëF*ˆn‚.‰ «Ë,©ˆB+ˆ$" Œ0£zQí–Aif¦»÷™ý­Ÿ5k¾ÿ03/¬½¾µÖ»ÞõÍ?3ß?3{Üèèè -b‚´fÈöËŽµ¡;¾ §1Që·eøVÐögkWWËð­ í ®K»2?ü&y ¶d7Is£ÄCk�C¤L–Æ—²‹eÇe<3_ËæËŽÈF[OñƒÚ›öˆ‰É…6®à,í`—ljÚÉQùIi}HþÙî÷íÚ¸‚OhªmŽ øó�<õÁ1ä y±ú#Æ„âŲ�Þ0Ã<ÅÜ5vÈ. —ç€âé!÷…â…2u%óß'ɸ9¦lÊŒ‚¿ xéÏRß^YÄGJŒ—á#àÓ××SÝÙ‰?§+þG6?qðÄôõ5³/r_$,NV¼6ÕM“8‚>ú�Sëk AŒ7Õ6YÄ·JL‘y=bòôwÞœòžŸ]g“�wÇi)^ZÒC>tÍnDJbÓåÉLÛX3Œz:èÕί%8‘§âÅûd3'§G^z9~W®+¨h˜«ÚÑ8Añý=^^zèz^Ϻ'QÒ°%ª+þXÆ™×Düt+û+‹©ùÖ¨ªø_Ù‚To¢>}è—j”RÓùâ'S½®?Öé‹@Ÿ9‘Û‰³IG~,ª)FpªãÔiø:}¹ÌÏ+ÖÅ"C¸P¹Ã²ˆ[”¨ê««ÑÁæõôö$é�¨¢˜\UOÓZcí2Á%™ÍPnVKD½æví©+HÅIò»b§âÕ©žë$‡^s™_è —|(v)Þ.›à8¹¾~sè¡ÁüB«X¤$·¥xéûþˆäÔ¬sݘ_Ü>ã_R1â%"¯ÍýöÑ™á]«¤ýla »µ8ÅÈÿ“GŸ9ìƒýèg€±�r¯üTQyÙú½¿§$ï9q�»�²ŸñF\w¦xóƒ®QÏ_2¼i7õÌ‹XiÍ;Cå â dVoâÏŸ§êï䉛ôçñ™ë±ÓŠ+|Vkî—“eV¯óïËÀ‘1׉û9š˜Ç\�~ð{¾¢õ#2_¯Z¯u½þë&ùª>_cžû)Þ$/’ñú1ü©Å92/’[/Ç¿û½yê¹>Ÿcó h°Ÿ® Òð°1’R…ÍQm_ââ8d—'O ¨Ã«ÒaŽûèðcÓD>sLî"—9ø“.3ðiy© M¼ÿô ~œGŒ>s Ìgn®áJ}ÇFþeÅñ Tü¢?7}s™_ðŠ…Ojý´Ìƒ§ÍsWù¢ÖëBݸä=è³]æúzÏkЊÓDüÁuŽh}’ŒúU2;J´Ý$ãNd½Þ“§n �~8è�È Ìc®ï/Ý ¤›­3yŽ�3e~ã܎꾟P÷·QúÑ‰Ç óº6GÜ“¤×86Z Ï]ã`s»wìâ5Zñ�2{d§j½G¨õú­Ž®Õ˜gù‹Lq’rv‹âöä…oWlتE•u}ÆEÏn›ÌažÕ _,rEåæÊËÀ+2Ï«“ûs[¨�¼¾åñèô™ãkźX””_-3Ü¡…õÌÖÚ^ø#ZÇcÇ+ðà[/:ô-ßã{ò8å¶$µ?äùéÌúüæã±ã�¿ úÑè¢oz=¾'QBF”ÿV/:^ñ'�l÷±ã�êð˜å,zèVšïTlðWd�’GSáy4ñ€oõR_Z�PUíY¦ Çd×ËŒû:Io9êð}–oä‘2¢ リソースã�¯è‡ªç”±ã�«ãƒ‡ãƒ—ロイã�«ã‚¢ã‚¿ãƒƒãƒ�ã�—ã�Ÿã‚Šã€�デプロイã�‹ã‚‰ãƒ‡ã‚¿ãƒƒãƒ�ã�—ã�Ÿã‚Šã�§ã��る。例ã�ˆã�°ã€�ãƒ�ードウェアã�®å•�題ã�«ã‚ˆã�£ã�¦ã‚¢ãƒ—リケーションã�®ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã�®å‹•作ã�Œã�Šã�‹ã�—ã�„å ´å�ˆã€�アプリケーションã�®ç®¡ç�†è€…ã�¯æœ€æ–°ã�®ãƒ�ックアップã�‹ã‚‰æ–°ã�—ã�„データベースサーãƒ�ーを立ã�¡ä¸Šã�’る。ã��ã�—ã�¦ç�¾åœ¨ã�®æœ¬ç•ªãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ã‚’デタッãƒ�ã�—ã€�æ–°ã�—ã�„データベースをアタッãƒ�ã�™ã‚‹ -- コードを一切変更ã�›ã�šã�«ã€‚ content/ru/admin-processes.md0000644000175000056700000001015715226251677015042 0ustar0000000000000000## XII. Задачи админиÑ�трированиÑ� ### ВыполнÑ�йте задачи админиÑ�трированиÑ�/управлениÑ� Ñ� помощью разовых процеÑ�Ñ�ов [Формирование процеÑ�Ñ�ов](./concurrency) Ñ�влÑ�етÑ�Ñ� некоторым набором процеÑ�Ñ�ов, которые необходимы длÑ� выполнениÑ� регулÑ�рных задач приложениÑ� (таких как обработка веб-запроÑ�ов), когда оно иÑ�полнÑ�етÑ�Ñ�. Ð’ дополнение к Ñ�тому, разработчикам периодичеÑ�ки необходимо выполнÑ�ть разовые задачи админиÑ�трированиÑ� и обÑ�луживаниÑ� приложениÑ�, такие как: * ЗапуÑ�к миграции базы данных (например `manage.py migrate` в Django, `rake db:migrate` в Rails). * ЗапуÑ�к конÑ�оли (также извеÑ�тной как оболочка [REPL](http://en.wikipedia.org/wiki/Read-eval-print_loop)), чтобы запуÑ�тить произвольный код или проверить модели приложениÑ� Ñ� дейÑ�твующей базой данных. БольшинÑ�тво Ñ�зыков предоÑ�тавлÑ�ÑŽÑ‚ REPL путём запуÑ�ка интерпретатора без каких-либо аргументов (например, `python` или `perl`), а в некоторых Ñ�лучаÑ�Ñ… имеют отдельную команду (например `irb` в Ruby, `rails console` в Rails). * ЗапуÑ�к разовых Ñ�криптов, хранÑ�щихÑ�Ñ� в репозитории приложениÑ� (например, `php scripts/fix_bad_records.php`). Разовые процеÑ�Ñ�Ñ‹ админиÑ�трированиÑ� Ñ�ледует запуÑ�кать в Ñ�реде идентичной регулÑ�рным [длительным процеÑ�Ñ�ам](./processes) приложениÑ�. Они запуÑ�каютÑ�Ñ� на уровне [релиза](./build-release-run), иÑ�пользуÑ� те же [кодовую базу](./codebase) и [конфигурацию](./config), как и любой другой процеÑ�Ñ�, выполнÑ�ющий Ñ�тот релиз. Код админиÑ�трированиÑ� должен поÑ�тавлÑ�тьÑ�Ñ� вмеÑ�те Ñ� кодом приложениÑ�, чтобы избежать проблем Ñ�инхронизации. Те же Ñ�амые методы [изолÑ�ции завиÑ�имоÑ�тей](./dependencies) должны быть иÑ�пользованы длÑ� вÑ�ех типов процеÑ�Ñ�ов. Ð�апример, еÑ�ли веб-процеÑ�Ñ� Ruby иÑ�пользует команду `bundle exec thin start`, то длÑ� миграции базы данных Ñ�ледует иÑ�пользовать `bundle exec rake db:migrate`. Ð�налогичным образом длÑ� программы на Python Ñ� иÑ�пользованием Virtualenv Ñ�ледует иÑ�пользовать поÑ�тавлÑ�емый `bin/python` как длÑ� запуÑ�ка веб-Ñ�ервера Tornado, так и длÑ� запуÑ�ка любых `manage.py` процеÑ�Ñ�ов админиÑ�трированиÑ�. МетодологиÑ� двенадцати факторов отдаёт предпочтение Ñ�зыкам, которые предоÑ�тавлÑ�ÑŽÑ‚ REPL оболочки из коробки, и которые позволÑ�ÑŽÑ‚ легко выполнÑ�ть разовые Ñ�крипты. Ð’ локальном развёртывании разработчики выполнÑ�ÑŽÑ‚ разовый процеÑ�Ñ� админиÑ�трированиÑ� Ñ� помощью конÑ�ольной команды внутри каталога Ñ� приложением. Ð’ рабочем развёртывании разработчики могут иÑ�пользовать ssh или другой механизм выполнениÑ� удалённой команды, предоÑ�тавленный Ñ�редой выполнениÑ�, длÑ� запуÑ�ка такого процеÑ�Ñ�а. content/ja/codebase.md0000644000175000056700000000515615226251677013462 0ustar0000000000000000## I. コードベース ### ãƒ�ージョン管ç�†ã�•れã�¦ã�„ã‚‹1ã�¤ã�®ã‚³ãƒ¼ãƒ‰ãƒ™ãƒ¼ã‚¹ã�¨è¤‡æ•°ã�®ãƒ‡ãƒ—ロイ Twelve-Factor Appã�¯[Git](http://git-scm.com/)ã‚„[Mercurial](https://www.mercurial-scm.org/)ã€�[Subversion](http://subversion.apache.org/)ã�ªã�©ã�®ãƒ�ージョン管ç�†ã‚·ã‚¹ãƒ†ãƒ ã�§å¸¸ã�«å¤‰æ›´ã‚’追跡ã�—ã�¦ã�„る。リビジョン追跡データベースã�®ã‚³ãƒ”ーã�¯ *コードリãƒ�ジトリ* ã�¨è¨€ã‚�れã€�å�˜ã�« *リãƒ�ジトリ* ã�¨ã‚‚言ã‚�れる。 *コードベース* ã�¯ã€�å�˜ä¸€ã�®ãƒªãƒ�ジトリ(Subversionã�®ã‚ˆã�†ã�ªé›†ä¸­ãƒ�ージョン管ç�†ã‚·ã‚¹ãƒ†ãƒ ã�®å ´å�ˆï¼‰ã�¾ã�Ÿã�¯ãƒ«ãƒ¼ãƒˆã‚³ãƒŸãƒƒãƒˆã‚’共有ã�™ã‚‹è¤‡æ•°ã�®ãƒªãƒ�ジトリ(Gitã�®ã‚ˆã�†ã�ªåˆ†æ•£ãƒ�ージョン管ç�†ã‚·ã‚¹ãƒ†ãƒ ã�®å ´å�ˆï¼‰ã�§ã�‚る。 ![1ã�¤ã�®ã‚³ãƒ¼ãƒ‰ãƒ™ãƒ¼ã‚¹ã�¯è¤‡æ•°ã�®ãƒ‡ãƒ—ロイã�«ãƒžãƒƒãƒ”ングã�•れる](/images/codebase-deploys.png) コードベースã�¨ã‚¢ãƒ—リケーションã�®é–“ã�«ã�¯ã€�常ã�«1対1ã�®é–¢ä¿‚ã�Œã�‚る。 * ã‚‚ã�—複数ã�®ã‚³ãƒ¼ãƒ‰ãƒ™ãƒ¼ã‚¹ã�Œã�‚ã‚‹å ´å�ˆã€�ã��れã�¯ã‚¢ãƒ—リケーションã�§ã�¯ã�ªã�„ -- ã��れã�¯åˆ†æ•£ã‚·ã‚¹ãƒ†ãƒ ã�§ã�‚る。分散システムã�®ã��れã�žã‚Œã�®ã‚³ãƒ³ãƒ�ーãƒ�ントã�Œã‚¢ãƒ—リケーションã�§ã�‚りã€�個別ã�«Twelve-Factorã�«é�©å�ˆã�™ã‚‹ã�“ã�¨ã�Œã�§ã��る。 * å�Œã�˜ã‚³ãƒ¼ãƒ‰ã‚’共有ã�™ã‚‹è¤‡æ•°ã�®ã‚¢ãƒ—リケーションã�¯ã€�Twelve-Factorã�«é�•å��ã�—ã�¦ã�„る。ã��ã�®å ´å�ˆã�®è§£æ±ºç­–ã�¯ã€�共通ã�®ã‚³ãƒ¼ãƒ‰ã‚’ライブラリã�«åˆ†è§£ã�—ã€�ã��ã�®ãƒ©ã‚¤ãƒ–ラリを[ä¾�存関係管ç�†ãƒ„ール](./dependencies)ã�§çµ„ã�¿è¾¼ã‚€ã‚ˆã�†ã�«ã�™ã‚‹ã�“ã�¨ã�§ã�‚る。 アプリケーションã�”ã�¨ã�«ã�Ÿã� 1ã�¤ã�®ã‚³ãƒ¼ãƒ‰ãƒ™ãƒ¼ã‚¹ã�Œå­˜åœ¨ã�™ã‚‹ã�Œã€�アプリケーションã�®ãƒ‡ãƒ—ロイã�¯è¤‡æ•°å­˜åœ¨ã�™ã‚‹ã€‚ *デプロイ* ã�¯ã‚¢ãƒ—リケーションã�®å®Ÿè¡Œä¸­ã�®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã�§ã�‚る。ã�“れã�¯é€šå¸¸1ã�¤ã�®æœ¬ç•ªã‚µã‚¤ãƒˆã�¨ã€�1ã�¤ä»¥ä¸Šã�®ã‚¹ãƒ†ãƒ¼ã‚¸ãƒ³ã‚°ã‚µã‚¤ãƒˆã�§ã�‚る。ã�•らã�«ã�™ã�¹ã�¦ã�®é–‹ç™ºè€…ã�¯ãƒ­ãƒ¼ã‚«ãƒ«é–‹ç™ºç’°å¢ƒã�§å‹•作ã�™ã‚‹ã‚¢ãƒ—リケーションã�®ã‚³ãƒ”ーをæŒ�ã�£ã�¦ã�Šã‚Šã€�ã��れらもデプロイã�¨è¦‹ã�ªã�›ã‚‹ã€‚ デプロイã�”ã�¨ã�«ç•°ã�ªã‚‹ãƒ�ージョンã�Œã‚¢ã‚¯ãƒ†ã‚£ãƒ–ã�§ã�‚ã‚‹ã�‹ã‚‚ã�—れã�ªã�„ã�Œã€�コードベースã�¯ã�™ã�¹ã�¦ã�®ãƒ‡ãƒ—ロイを通ã�—ã�¦å�Œä¸€ã�§ã�‚る。例ã�ˆã�°ã€�開発者ã�¯ã‚¹ãƒ†ãƒ¼ã‚¸ãƒ³ã‚°ç’°å¢ƒã�«ã�¾ã� ãƒ‡ãƒ—ロイã�•れã�¦ã�„ã�ªã�„コミットを抱ã�ˆã�¦ã�„ã‚‹ã�—ã€�ステージング環境ã�«ã�¯æœ¬ç•ªç’°å¢ƒã�«ãƒ‡ãƒ—ロイã�•れã�¦ã�„ã�ªã�„コミットã�Œå�«ã�¾ã‚Œã�¦ã�„る。ã�—ã�‹ã�—ã€�ã�“れらã�®ãƒ‡ãƒ—ロイã�¯ã�™ã�¹ã�¦å�Œä¸€ã�®ã‚³ãƒ¼ãƒ‰ãƒ™ãƒ¼ã‚¹ã‚’共有ã�—ã�¦ã�„ã‚‹ã�Ÿã‚�ã€�å�Œä¸€ã�®ã‚¢ãƒ—リケーションã�®ç•°ã�ªã‚‹ãƒ‡ãƒ—ロイã�§ã�‚ã‚‹ã�¨èª�è­˜ã�§ã��る。 content/tr/dev-prod-parity.md0000644000175000056700000001144515226251677014774 0ustar0000000000000000## X.GeliÅŸtirme/Üretim EÅŸitliÄŸi ### GeliÅŸim, evreleme ve üretimi olabildikçe benzer tutma Tarihsel olarak, geliÅŸtirme (bir geliÅŸtirici uygulamanın yerel [dağıtımına](./codebase) canlı düzenlemeler yapar) ve ürün (uygulamanın çalışan dağıtımı son kullanıcılar tarafından eriÅŸilmiÅŸtir) arasında önemli aralıklar vardır. Bu aralıklar üç alanda belirtilir: * **Zaman aralığı:** bir geliÅŸtirici kod üzerinde günler,haftalar hatta aylar boyunca bile ürünü oluÅŸturmak için çalışabilir. * **Eleman aralığı:** GeliÅŸtiriciler kod yazar, ops mühendisleri dağıtır. * **Araçların aralığı:** GeliÅŸtiriciler ürün dağıtımı Apache, MySQL ve Linux kullanırken; Nginx, SQLite, ve OS X gibi yığınları kullanıyor olabilir. **On iki faktör uygulaması, geliÅŸtirme ve ürün aralığını küçük tutarak, [sürekli dağıtım](http://avc.com/2011/02/continuous-deployment/) için tasarlanmıştır.** Yukarda tanımlanan üç aralığa bakarsak: * Zaman aralığını küçültme: bir geliÅŸtirici kod yazabilir ve bu kodu saatler veya hatta dakikalar sonra dağıtmış olabilir. * Eleman aralığını küçültme: kodu yazan geliÅŸtiriciler, kodu dağıtmakla yakından iliÅŸkilidir ve üründeki davranışını izler. * Araçların aralığını küçültme: geliÅŸtirmeyi ve ürünü olabildiÄŸi kadar benzer tut. Üstekileri bir tablo olarak özetlersek:
    Geleneksel uygulama On iki faktör uygulaması
    Dağıtımlar arasındaki zaman Haftalar Saatler
    Kod yazarları ve kod dağıtımcıları Farklı insanlar Aynı insanlar
    Geliştirme ve ürün ortamı Farklı Olabildiğince benzer
    [Destek servisler](./backing-services); uygulamanın veritabanı, kuyruk sistemi veya önbellek gibi, geliştirme/üretim eşitliğinin önemli olduğu bir alandır. Bir çok dil, farklı tipteki servislerin *uyarlayıcılarını* içeren, destek servislerine ulaşımı kolaylaştıran kütüphanleri önerir. Bazı örnekler aşağıdaki tabloda vardır.
    Tip Dil Kütüphane Uyarlayıcı
    Veritabanı Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
    Kuyruk Python/Django Celery RabbitMQ, Beanstalkd, Redis
    Önbellek Ruby/Rails ActiveSupport::Cache Bellek, dosya sistemi, Memcached
    Geliştiriciler, üründe ciddi ve sağlam destek servisleri kullanırken, bazen kendi yerel ortamlarında önemsiz destek servislerini kullanmak için istek duyarlar. Örneğin, yerelde SQLite üründe PostgreSQL kullanılır veya geliştirmede depolama için yerel süreç belleği ve üründe de Memcached kullanılır. **On iki faktör geliştiricisi**, uyarlayıcılar teorik olarak destek servislerindeki herhangi bir farklılığı soyutladığı zaman bile **geliştirme ve ürün arasında faklı destek servisi kullanma isteğine karşı direnir.** Destek hizmetleri arasındaki farklılıklar, küçük uyumsuzlukların ortaya çıkması, kodun işe yaraması ve geliştirme aşamasında testlere geçilmesi veya üretimde başarısız olmaya neden olması anlamına gelir. Bu tür hatalar, sürekli dağıtımın etkisini azaltan bir sürtüşme yaratır. Bu sürtünme maliyeti ve sonraki devamlı dağıtımın azaltılması, bir uygulamanın ömrü süresince toplamda düşünüldüğünde oldukça yüksektir. Önemsiz yerel servisler bir zamanlar olduğundan daha zorlayıcıdır. Memcached, PostgreSQL ve RabbitMQ gibi modern destek servisleri, [Homebrew](http://mxcl.github.com/homebrew/) ve [apt-get](https://help.ubuntu.com/community/AptGet/Howto) gibi modern paket sistemleri sayesinde yüklemesi ve çalıştırılması zor değildir. Alternatif olarak, [Chef](http://www.opscode.com/chef/) ve [Puppet](http://docs.puppetlabs.com/) gibi bildiri sağlayıcı araçlar önemsiz sanal ortamlarla birleşir, [Vagrant](http://vagrantup.com/) gibi, geliştiricilerin yerel ortamda çalışmalarına izin verir, yaklaşık olarak ürün ortamına benzer. Bu sistemlerin yüklenmesi ve kullanımının maliyeti, geliştirme üretim eşitliği ve sürekli dağıtımın faydasıyla karşılaştırıldığında düşüktür. Farklı destek servislerinin uyarlayıcıları hala kullanışlıdır, çünkü yeni destek servislerine bağlanmayı nispeten zahmetsiz yapar. Ama uygulamanın bütün dağıtımları (geliştirme ortamları, evreleme, ürün) her bir destek servisinin aynı tip ve versiyonunu kullanmalıdır. content/uk/concurrency.md0000644000175000056700000001174315226251677014273 0ustar0000000000000000## VIII. Конкурентні�ть ### Ма�штабуйте за�то�унок за допомогою проце�ів Будь-�ка комп'ютерна програма пі�л� запу�ку пред�тавлена одним або декількома проце�ами. Веб-додатки мають різні форми виконанн� проце�ів. �априклад, PHP-проце�и виконують�� �к дочірні проце�и Apache, �кі запу�кають�� в разі потреби в залежно�ті від навантаженн�. Java-проце�и викори�товують протилежний підхід: JVM забезпечує один ма�ивний мета-проце�, �кий резервує велику кількі�ть �и�темних ре�ур�ів (проце�ора і пам'�ті) під ча� його запу�ку, і керує конкурентні�тю в�ередині �ебе за допомогою потоків виконанн� (threads). В обох випадках запущені проце�и видимі дл� розробників за�то�унку мінімально. ![Ма�штабуванн� виражаєть�� у вигл�ді запущених проце�ів, різноманітні�ть навантаженн� виражаєть�� в типах проце�ів.](/images/process-types.png) **В за�то�унку дванадц�ти факторів, проце�и є �утно�т�ми першого кла�у.** Проце�и в за�то�унку дванадц�ти факторів вз�ли �ильні �торони від [моделі проце�ів UNIX дл� запу�ку �ерві�ів](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/). Викори�товуючи цю модель, розробник може �проектувати �вій за�то�унок таким чином, що дл� обробки різних робочих навантажень необхідно призначити кожному виду робіт �вій *тип проце�у*. �априклад, HTTP-запити можуть бути оброблені за допомогою веб-проце�у (web process), а тривалі фонові завданн� оброблені робочим проце�ом (worker process). Це не виключає можливо�ті викори�танн� індивідуального мультиплек�уванн� дл� окремих проце�ів через потоки виконанн� віртуальної машини або а�инхронні/подієві моделі в таких ін�трументах, �к [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http://twistedmatrix.com/trac/) або [Node.js](http://nodejs.org/). �ле індивідуальна віртуальна машина може ма�шабувати�� тільки обмежено (вертикальне ма�шабуванн�), тому за�то�унок також повинен мати можливі�ть бути запущеним �к декілька проце�ів на декількох фізичних машинах. Модель, побудована на проце�ах, дій�но показує �ебе з найкращого боку, коли по�тає необхідні�ть ма�штабуванн�. [Від�утні�ть розділених даних і горизонтальне розділенн� проце�ів за�то�унку дванадц�ти факторів](./processes) означає, що додаванн� більшої конкурентно�ті є про�тою і надійною операцією. Ма�ив типів проце�ів і кількі�ть проце�ів кожного типу називаєть�� *формацією проце�ів*. Проце�и за�то�унку дванадц�ти факторів [ніколи не мають демонізувати��](http://dustin.github.com/2010/02/28/running-processes.html) та запи�увати PID-файли. Замі�ть цього вони мають покладати�� на менеджер проце�ів операційної �и�теми (наприклад, [systemd](https://www.freedesktop.org/wiki/Software/systemd/), розподілений менеджер проце�ів на хмарній платформі, або в проце�і розробки на такий ін�трумент, �к [Foreman](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html)) дл� керуванн� [потоком виведенн�](./logs), реагуванн� на падінн� проце�ів і обробку ініційованих кори�тувачем перезавантаженн� чи завершенн� роботи. content/uk/toc.md0000644000175000056700000000412115226251677012516 0ustar0000000000000000Дванадц�ть факторів =================== ## [I. Кодова база](./codebase) ### Одна кодова база, що від�лідковуєть�� в �и�темі контролю вер�ій та має багато розгортань ## [II. Залежно�ті](./dependencies) ### Явно оголошуйте та ізолюйте залежно�ті ## [III. Конфігураці�](./config) ### Зберігайте конфігурацію в �ередовищі виконанн� ## [IV. Сторонні �лужби](./backing-services) ### Вважайте �торонні �лужби (backing services) підключеними ре�ур�ами ## [V. Збірка, реліз, виконанн�](./build-release-run) ### Суворо відокремлюйте етапи збірки та виконанн� ## [VI. Проце�и](./processes) ### Запу�кайте за�то�унок �к один або декілька проце�ів без збереженн� внутрішньго �тану (stateless) ## [VII. Прив'�зка портів](./port-binding) ### Ек�портуйте �ерві�и за допомогою прив'�зки портів (port binding) ## [VIII. Конкурентні�ть](./concurrency) ### Ма�штабуйте за�то�унок за допомогою проце�ів ## [IX. Утилізовувані�ть](./disposability) ### Підвищуйте надійні�ть за допомогою швидкого запу�ку і коректного вимкненн� ## [X. Dev/prod паритет](./dev-prod-parity) ### Прагніть мак�имальної ідентично�ті development, staging та production �ередовищ ## [XI. Журналюванн�](./logs) ### Сприймайте журналюванн� (logs) �к потоки подій ## [XII. Задачі адміні�труванн�](./admin-processes) ### Виконуйте задачі адміні�труванн�/керуванн� за допомогою разових проце�івcontent/en/logs.md0000644000175000056700000000430215226251677012661 0ustar0000000000000000## XI. Logs ### Treat logs as event streams *Logs* provide visibility into the behavior of a running app. In server-based environments they are commonly written to a file on disk (a "logfile"); but this is only an output format. Logs are the [stream](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/) of aggregated, time-ordered events collected from the output streams of all running processes and backing services. Logs in their raw form are typically a text format with one event per line (though backtraces from exceptions may span multiple lines). Logs have no fixed beginning or end, but flow continuously as long as the app is operating. **A twelve-factor app never concerns itself with routing or storage of its output stream.** It should not attempt to write to or manage logfiles. Instead, each running process writes its event stream, unbuffered, to `stdout`. During local development, the developer will view this stream in the foreground of their terminal to observe the app's behavior. In staging or production deploys, each process' stream will be captured by the execution environment, collated together with all other streams from the app, and routed to one or more final destinations for viewing and long-term archival. These archival destinations are not visible to or configurable by the app, and instead are completely managed by the execution environment. Open-source log routers (such as [Logplex](https://github.com/heroku/logplex) and [Fluentd](https://github.com/fluent/fluentd)) are available for this purpose. The event stream for an app can be routed to a file, or watched via realtime tail in a terminal. Most significantly, the stream can be sent to a log indexing and analysis system such as [Splunk](http://www.splunk.com/), or a general-purpose data warehousing system such as [Hadoop/Hive](http://hive.apache.org/). These systems allow for great power and flexibility for introspecting an app's behavior over time, including: * Finding specific events in the past. * Large-scale graphing of trends (such as requests per minute). * Active alerting according to user-defined heuristics (such as an alert when the quantity of errors per minute exceeds a certain threshold). content/es/intro.md0000644000175000056700000000227315226251677013062 0ustar0000000000000000Introducción ============ En estos tiempos, el software se está distribuyendo como un servicio: se le denomina *web apps*, o *software as a service* (SaaS). "The twelve-factor app" es una metodología para construir aplicaciones SaaS que: * Usan formatos **declarativos** para la automatización de la configuración, para minimizar el tiempo y el coste que supone que nuevos desarrolladores se unan al proyecto; * Tienen un **contrato claro** con el sistema operativo sobre el que trabajan, ofreciendo la **máxima portabilidad** entre los diferentes entornos de ejecución; * Son apropiadas para **desplegarse** en modernas **plataformas en la nube**, obviando la necesidad de servidores y administración de sistemas; * **Minimizan las diferencias** entre los entornos de desarrollo y producción, posibilitando un **despliegue continuo** para conseguir la máxima agilidad; * Y pueden **escalar** sin cambios significativos para las herramientas, la arquitectura o las prácticas de desarrollo. La metodología "twelve-factor" puede ser aplicada a aplicaciones escritas en cualquier lenguaje de programación, y cualquier combinación de 'backing services' (bases de datos, colas, memoria cache, etc). Gemfile0000644000175000056700000000033715226251677010616 0ustar0000000000000000source 'http://rubygems.org' ruby '>=3.2' gem 'sinatra', '>=2.2.0' gem 'thin', '>=1.8.1' gem 'maruku' gem 'i18n' gem 'rexml' gem 'rack-ssl-enforcer' gem "rackup", "~> 2.2" gem "puma", "~> 6.6" gem "ostruct", "~> 0.6.2" content/de/intro.md0000644000175000056700000000215115226251677013036 0ustar0000000000000000Einführung ============ Heute wird Software oft als Dienst geliefert - auch *Web App* oder *Software-As-A-Service* genannt. Die Zwölf-Faktoren-App ist eine Methode um Software-As-A-Service Apps zu bauen die: * **deklarative** Formate benutzen für die Automatisierung der Konfiguration, um Zeit und Kosten für neue Entwickler im Projekt zu minimieren; * einen **sauberen Vertrag** mit dem zugrundeliegenden Betriebssystem haben, **maximale Portierbarkeit** zwischen Ausführungsumgebungen bieten; * sich für das **Deployment** auf modernen **Cloud-Plattformen** eignen, die Notwendigkeit von Servern und Serveradministration vermeiden; * die **Abweichung minimieren** zwischen Entwicklung und Produktion, um **Continuous Deployment** für maximale Agilität ermöglichen; * und **skalieren** können ohne wesentliche Änderungen im Tooling, in der Architektur oder in den Entwicklungsverfahren. Die Zwölf-Faktoren-Methode kann auf Apps angewendet werden, die in einer beliebigen Programmiersprache geschrieben sind, und die eine beliebige Kombination von unterstützenden Diensten benutzen (Datenbank, Queue, Cache, ...) content/pt_br/processes.md0000644000175000056700000000535015226251677014433 0ustar0000000000000000## VI. Processos ### Execute a aplicação como um ou mais processos que não armazenam estado A aplicação é executada em um ambiente de execução como um ou mais *processos*. No caso mais simples, o código é um script autônomo, o ambiente de execução é o laptop local de um desenvolvedor com o runtime da linguagem instalado, e o processo é iniciado pela linha de comando (por exemplo, `python my_script`). Na outra extremidade do espectro, o deploy em produção de uma aplicação sofisticada pode utilizar vários [tipos de processos, instanciado em zero ou mais processos em andamento](./concurrency). **Processos doze-fatores são stateless(não armazenam estado) e [share-nothing](http://en.wikipedia.org/wiki/Shared_nothing_architecture).** Quaisquer dados que precise persistir deve ser armazenado em um serviço de apoio stateful(que armazena o seu estado), tipicamente uma base de dados. O espaço de memória ou sistema de arquivos do processo pode ser usado como um breve, cache de transação única. Por exemplo, o download de um arquivo grande, operando sobre ele, e armazenando os resultados da operação no banco de dados. A aplicação doze-fatores nunca assume que qualquer coisa cacheada na memória ou no disco estará disponível em uma futura solicitação ou job -- com muitos processos de cada tipo rodando, as chances são altas de que uma futura solicitação será servida por um processo diferente. Mesmo quando rodando em apenas um processo, um restart (desencadeado pelo deploy de um código, mudança de configuração, ou o ambiente de execução realocando o processo para uma localização física diferente) geralmente vai acabar com todo o estado local (por exemplo, memória e sistema de arquivos). Empacotadores de assets (como [Jammit](http://documentcloud.github.com/jammit/) ou [django-compressor](http://django-compressor.readthedocs.org/)) usa o sistema de arquivos como um cache para assets compilados. Uma aplicação doze-fatores prefere fazer isto compilando durante a [fase de build](./build-release-run), tal como o [Rails asset pipeline](http://guides.rubyonrails.org/asset_pipeline.html), do que em tempo de execução. Alguns sistemas web dependem de ["sessões persistentes"](http://en.wikipedia.org/wiki/Load_balancing_%28computing%29#Persistence) -- ou seja, fazem cache dos dados da sessão do usuário na memória do processo da aplicação, esperando futuras requisições do mesmo visitante para serem encaminhadas para o mesmo processo. Sessões persistentes são uma violação do doze-fatores e nunca devem ser utilizadas ou invocadas. Dados do estado da sessão são bons candidatos para um datastore que oferece tempo de expiração, tal como [Memcached](http://memcached.org/) ou [Redis](http://redis.io/). content/zh_cn/port-binding.md0000644000175000056700000000327015226251677015013 0ustar0000000000000000## VII. 端�绑定 ### 通过端�绑定(*Port binding*)��供�务 互�网应用有时会�行于�务器的容器之中。例如 PHP �常作为 [Apache HTTPD](http://httpd.apache.org/) 的一个模���行,正如 Java �行于 [Tomcat](http://tomcat.apache.org/) 。 **12-Factor 应用完全自我加载** 而��赖于任何网络�务器就�以创建一个��网络的�务。互�网应用 **通过端�绑定��供�务** ,并监���至该端�的请求。 本地环境中,开�人员通过类似`http://localhost:5000/`的地��访问�务。在线上环境中,请求统一��至公共域�而�路由至绑定了端�的网络进程。 通常的实现�路是,将网络�务器类库通过 [�赖声明](./dependencies) 载入应用。例如,Python 的 [Tornado](http://www.tornadoweb.org/), Ruby 的[Thin](http://code.macournoyer.com/thin/) , Java 以�其他基于 JVM 语言的 [Jetty](http://www.eclipse.org/jetty/)。完全由 *用户端* ,确切的说应该是应用的代�,�起请求。和�行环境约定好绑定的端���处�这些请求。 HTTP 并�是唯一一个�以由端�绑定�供的�务。其实几乎所有�务器软件都�以通过进程绑定端��等待请求。例如,使用 [XMPP](http://xmpp.org/) 的 [ejabberd](http://www.ejabberd.im/) , 以�使用 [Redis �议](http://redis.io/topics/protocol) 的 [Redis](http://redis.io/) 。 还�指出的是,端�绑定这�方�也�味�一个应用�以�为�外一个应用的 [�端�务](./backing-services) ,调用方将�务方�供的相应 URL 当作资�存入 [�置](./config) 以备将�调用。 content/es/concurrency.md0000644000175000056700000000631715226251677014264 0ustar0000000000000000## VIII. Concurrencia ### Escalar mediante el modelo de procesos Todo programa de ordenador, al ejecutarse, se encuentra representado en memoria por uno o más procesos. Las aplicaciones web se pueden ejecutar de diferentes formas desde el punto de vista del modelo de procesos que usan. Por ejemplo, los procesos PHP se ejecutan como procesos pesados (o simplemente procesos), hijos del proceso Apache, creándolos bajo demanda a causa de la cantidad de peticiones si es necesario. Los procesos Java funcionan de forma distinta, la Máquina Virtual de Java (JVM) proporciona un conjunto de procesos que reservan al principio una gran cantidad de recursos del sistema (CPU y memoria), gestionando la concurrencia internamente mediante procesos ligeros (threads). En ambos casos, los procesos en ejecución son prácticamente transparentes para los desarrolladores de la aplicación. ![La escalabilidad está representada por el número de procesos en ejecución, mientras que la diversidad de carga de trabajo lo está por los tipos de procesos.](/images/process-types.png) **En las aplicaciones "twelve-factor", los procesos son ciudadanos de primera clase.** Los procesos de las aplicaciones "twelve-factor" se inspiran en [el modelo de procesos de unix para ejecutar demonios](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/). Usando este modelo, el desarrollador puede distribuir la ejecución de su aplicación para gestionar diversas cargas de trabajo asignando cada tipo de trabajo a un *tipo de proceso*. Por ejemplo, las peticiones HTTP se pueden procesar con un proceso y las tareas con mucha carga de trabajo con hilos. Esto no exime a los procesos de gestionar su propia división interna mediante threads en la ejecución de la máquina virtual o mediante un modelo asíncrono o por eventos con herramientas como [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http://twistedmatrix.com/trac/), o [Node.js](http://nodejs.org/). No obstante, una máquina virtual aislada tiene una capacidad de crecimiento limitada, así que la aplicación debe ser capaz de dividirse en multiples procesos que se puedan ejecutar en múltiples máquinas físicas. El modelo de procesos muestra todo su potencial cuando llega el momento de escalar. La [naturaleza "share-nothing", divide horizontalmente los procesos de las aplicaciones "twelve-factor"](./processes) y se traduce en un aumento de la concurrencia como una operación simple y fiable. El conjunto de tipos de procesos y el número de procesos de cada tipo es conocido como *juego de procesos*. Los procesos de las aplicaciones "twelve-factor" [nunca deberían ser demonios](http://dustin.github.com/2010/02/28/running-processes.html) ni escribir ficheros de tipo PID. En su lugar, se debería confiar en un gestor de procesos del sistema operativo (como [systemd](https://www.freedesktop.org/wiki/Software/systemd/), un gestor de procesos distribuido en una plataforma en la nube, o una herramienta como [Foreman](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html) en desarrollo) para gestionar [los historiales](./logs), responder a procesos que terminen inesperadamente, y gestionar los reinicios y apagados provocados por los usuarios. content/fr/build-release-run.md0000644000175000056700000000614715226251677015252 0ustar0000000000000000## V. Assemblez, publiez, exécutez ### Séparez strictement les étapes d'assemblage et d'exécution Une [base de code](./codebase) est transformée en un déploiement (non-développement) à travers les étapes suivantes : * L'*étape d'assemblage* (ou "build") est une transformation qui convertit un dépôt de code en un paquet autonome exécutable appelé l'assemblage (ou "build"). En utilisant une version du code référencée par un commit spécifié lors du processus de déploiement, l'étape d'assemblage va chercher toutes les [dépendances externes](./dependencies) et compile les fichiers binaires et les ressources. * L'*étape de publication * (ou "release") prend l'assemblage produit à l'étape précédente et le combine avec la [configuration](./config) de déploiement courante. La release résultante contient à la fois l'assemblage et la configuration, et elle est prête pour une exécution immédiate dans l'environnement d'exécution. * L'*étape d'exécution* (ou "runtime") fait fonctionner l'application dans l'environnement d'exécution, en lançant un ensemble de [processus](./processes) de l'application associée à la release considérée. ![Le code devient un assemblage, qui est combiné à la configuration pour créer une release](/images/release.png) **Les applications 12 facteurs ont une séparation stricte entre les étapes d'assemblage, de publication et d'exécution.** Par exemple, il est impossible de faire des changements dans le code au moment de son exécution, car il n'y a pas moyen de propager ces changements vers l'étape de build. Les outils de déploiement offrent généralement des outils de gestion de release, permettant notamment de revenir à une release antérieure. Par exemple, l'outil de déploiement [Capistrano](https://github.com/capistrano/capistrano/wiki) stocke les releases dans un sous-répertoire appelé `releases`, où la release courante est un lien symbolique vers le répertoire de release courante. Sa commande `rollback` permet de facilement revenir à une release précédente. Chaque release devrait toujours avoir un identifiant unique, comme un horodatage (timestamp) de la release (tel que `2011-04-06-20:32:17`) ou un nombre incrémental (tel que `v100`). La liste des releases est accessible en écriture incrémentale uniquement, et il n'est pas possible de modifier une release une fois qu'elle a été réalisée. Tout changement doit créer une nouvelle release. Les assemblages sont initiés par le développeur de l'application dès que du nouveau code est déployé. Son exécution, au contraire, peut avoir lieu automatiquement en cas d'un reboot du serveur, ou du crash d'un processus qui est relancé par le gestionnaire de processus. De ce fait, l'étape d'exécution doit se limiter à un nombre minimal de parties mobiles, car les problèmes qui empêchent une application de fonctionner peuvent entraîner des dysfonctionnements au milieu de la nuit alors qu'aucun développeur ne sera là pour les corriger. L'étape d'assemblage peut être plus complexe, car les erreurs pourront toujours être résolues par le développeur qui réalise le déploiement. content/fr/codebase.md0000644000175000056700000000453115226251677013473 0ustar0000000000000000## I. Base de code ### Une base de code suivie avec un système de contrôle de version, plusieurs déploiements Une application 12 facteurs est toujours suivie dans un système de contrôle de version, tel que [Git](http://git-scm.com/), [Mercurial](https://www.mercurial-scm.org/), ou [Subversion](http://subversion.apache.org/). Une copie de la base de données de suivi des révisions est appelée *dépôt de code*, souvent raccourci en *dépôt*. Le terme anglais *code repository*, raccourci en *repository* et *repo* est également utilisé. Une *base de code* correspond à chaque dépôt (dans un système de contrôle de version centralisé tel que Subversion), ou tout ensemble de dépôts qui partage un commit racine (dans un système de contrôle de version décentralisé comme Git). ![Une base de code est associée à plusieurs déploiements](/images/codebase-deploys.png) Il y a toujours un rapport direct entre la base de code et l'application : * S'il y a plusieurs bases de code, ce n'est pas une application, c'est un système distribué. Chaque composant du système distribué est une application, et chacun peut individuellement respecter la méthodologie 12 facteurs. * Plusieurs applications partageant le même code est une violation des 12 facteurs. La solution dans ce cas est de factoriser le code partagé dans des bibliothèques qui peuvent être intégrées via un [gestionnaire de dépendances](./dependencies). Il y a seulement une base de code par application, mais il y aura plusieurs déploiements de l'application. Un *déploiement* est une instance en fonctionnement de l'application. C'est, par exemple, le site en production, ou bien un ou plusieurs sites de validation. En plus de cela, chaque développeur a une copie de l'application qui fonctionne dans son environnement local de développement, ce qui compte également comme un déploiement. La base de code est la même à travers tous les déploiements, bien que différentes versions puissent être actives dans chaque déploiement. Par exemple, un développeur a des commits qui ne sont pas encore déployés dans l'environnement de validation. L'environnement de validation a des commits qui ne sont pas encore déployés en production. Par contre, ils partagent tous la même base de code, ce qui les identifie comme étant des déploiements différents d'une même application. content/pl/backing-services.md0000644000175000056700000000546215226251677015155 0ustar0000000000000000## IV. Usługi wspierające ### Traktuj usługi wspierające jako przydzielone zasoby Usługą wspierającą jest każda, z której aplikacja korzysta przez sieć jako część normalnego działania. Zaliczamy do nich np. magazyny danych (takie jak [MySQL](http://dev.mysql.com/) albo [CouchDB](http://couchdb.apache.org/)), systemy wysyłania/kolejkowania wiadomości (takie jak [RabbitMQ](http://www.rabbitmq.com/) czy [Beanstalkd](https://beanstalkd.github.io)), usługi SMTP do zewnętrznej wysyłki emaili (np. [Postfix](http://www.postfix.org/)) oraz systemy cachowania pamięci (np. [Memcached](http://memcached.org/)). Usługa wspierająca taka jak baza danych jest zazwyczaj zarządzana przez tych samych programistów, którzy zajmują się wdrażaniem aplikacji. Dodatkowo aplikacja może również korzystać z usług oferowanych przez osoby trzecie. Do przykładów zaliczają się usługi SMTP ([Postmark](http://postmarkapp.com/)),usługi zbierające metryki ([New Relic](http://newrelic.com/) czy [Loggly](http://www.loggly.com/)), usługi przechowywania danych (takie jak [Amazon S3](http://aws.amazon.com/s3/)), czy również usługi dostępne przez publiczne API (jak np. [Twitter](http://dev.twitter.com/), [Google Maps](https://developers.google.com/maps/), lub [Last.fm](http://www.last.fm/api)). **Aplikacje 12factor nie rozróżniają usług lokalnych od zewnętrznych.** Dla aplikacji wszystkie są załączonymi zasobami, dostepnymi przez adres URL lub inny standard zdefiniowany w [konfiguracji](./config). Przy [wdrożeniu](./codebase) aplikacji nie może być problemów ze zmianą lokalnej bazy MySQL na oferowaną przez zewnętrznego usługodawcę (np. [Amazon RDS](http://aws.amazon.com/rds/)) bez żadnych zmian w kodzie aplikacji. Podobnie lokalny serwer SMTP może być zamieniony na zewnętrzną usługę SMTP (taką jak Postmark) bez zmian kodu. W obu przypadkach zmiana powinna wystąpić jedynie w konfiguracji aplikacji. Każda usługa jest traktowana jako *zasób*. Zasobem będzie np. baza MySQL; dwie bazy danych (używane do [shardingu](https://en.wikipedia.org/wiki/Shard_(database_architecture)) w warstwie aplikacji) kwalifikują się jako dwa odrębne zasoby. Aplikacja 12factor traktuje te bazy danych jako *załączone zasoby*, co wskazuje, że nie są z nią trwale powiązane. Produkcyjne wdrożenie aplikacji korzystajace z czterech usług wspierających. Zasoby mogą być dołączane i odłączane jeśli zajdzie taka potrzeba. W momencie gdy baza danych aplikacji z powodu usterek sprzętowych nie działa poprawnie, administrator może przełączyć bazę danych aplikacji na nowy serwer odtworzoną z ostatniego zapisu przywracania danych. Obecna produkcyjna baza może więc zostać przełączona bez żadnych zmian w kodzie aplikacji. content/th/concurrency.md0000644000175000056700000001025115226251677014260 0ustar0000000000000000## VIII. Concurrency ### ขยายออ�ของ�อพพลิเคชันด้วยรูป�บบ process โปร��รมคอมพิวเตอร์ใดๆ เมื่อทำงาน�ล้วจะถู��ทนที่ด้วย 1 หรือมา��ว่า process เว็บ�อพมีหลายรูป�บบของ process-execution ตัวอย่างเช่น PHP process ทำงานเป็น process ลู�ของ Apache, เริ่มต้นตามความต้อง�ารตามปริมาณคำขอ, Java process มีวิธีที่ตรง�ันข้ามซึ่ง JVM จะใช้หนึ่ง uberprocess ขนาดให�่ที่สงวนบล็อ�ขนาดให�่สำหรับทรัพยา�รระบบ (CPU �ละหน่วยความจำ) ในตอนเริ่มต้น ซึ่งจัด�าร concurrency ภายในด้วย thread ทั้งสอง�รณี process ที่ทำงานเป็นส่วนที่มองเห็นน้อยมา�สำหรับ developer ของ app ![Scale is expressed as running processes, workload diversity is expressed as process types.](/images/process-types.png) **ใน twelve-factor app, process เป็นพลเมืองชั้นหนึ่ง** Process ใน twelve-factor app จะใช้คำ�นะนำจา� [the unix process model for running service daemons](https://adam.herokuapp.com/past/2011/5/9/applying_the_unix_process_model_to_web_apps/) �ารใช้รูป�บบนี้ developer สามารถออ��บบ app เพื่อจัด�าร�ับ workload ที่หลา�หลายโดย�าร�ำหนดให้ work �ต่ละชนิดเป็น *process type** ตัวอย่างเช่น HTTP request อาจจะจัด�ารด้วย web process �ละ long-running background tasks จัด�ารด้วย worker process ไม่รวม process ย่อยจา��ารจัด�าร multiplexing ภายใน ด้วย thread ข้างใน runtim VM หรือ async/evnted model ที่พบในเครื่องมือเช่น [EventMachine](https://github.com/eventmachine/eventmachine), [Twisted](http://twistedmatrix.com/trac/) หรือ [Node.js](http://nodejs.org/) �ต่ VM �ต่ละตัวสามารถเติบโตได้มา�เท่านั้น (�ารขยาย�นวตั้ง) ดังนั้น application จำเป็นต้องสามารถขยายเป็นหลาย process ทำงานบนหลายเครื่องได้ รูป�บบ process ดีมา�เมือมา�ับ time to scale out [share-nothing, horizontally partitionable nature of twelve-factor app processes](./processes) หมายความว่าเพิ่ม concurrency ได้ง่าย�ละทำงานได้น่าเชื่อถือ อาเรย์ชนิดของ process �ละจำนวนของ process ของ�ต่ละชนิด รู้จั��ันใน *process formation* Process ของ twelve-factor app [should never daemonize](http://dustin.github.com/2010/02/28/running-processes.html) หรือเขียนไฟล์ PID �ต่จะขึ้นอยู่�ับตัวจัด�าร process ของระบบป�ิบัติ�าร�ทน (เช่น [systemd](https://www.freedesktop.org/wiki/Software/systemd/), ตัวจัด�าร process �ระจายบน cloud platform หรือเครื่องมือ อย่างเช่น [Foreman](http://blog.daviddollar.org/2011/05/06/introducing-foreman.html) ใน development) เพื่อจัด�าร [output streams](./logs) ตอบสนองต่อ process ที่ล้มเหลว �ละจัด�าร user-initiated restarts �ละ shutdowns content/es/logs.md0000644000175000056700000000523715226251677012676 0ustar0000000000000000## XI. Historiales ### Tratar los historiales como una transmisión de eventos Los *historiales* permiten observar el comportamiento de la aplicación durante su ejecución. En entornos basados en servidores es muy común escribir un fichero en disco (un "fichero de histórico") pero este, es tan solo un posible formato de salida. Los historiales son la [transmisión](https://adam.herokuapp.com/past/2011/4/1/logs_are_streams_not_files/) de un conjunto de eventos ordenados y capturados de la salida de todos los procesos en ejecución y de los "backing services". En bruto, los historiales suelen estar en formato texto y tienen un evento por línea (aunque las trazas de excepciones suelen estar en varias líneas). Los historiales no tienen un principio y un final fijo, sino que fluyen continuamente mientras la aplicación está en funcionamiento. **Una aplicación "twelve-factor" nunca se preocupa del direccionamiento o el almacenamiento de sus transmisiones de salida.** No debería intentar escribir o gestionar ficheros de historial. En su lugar, cada proceso en ejecución escribe sus eventos a la `salida estándar` (o `stdout`). Durante el desarrollo, los desarrolladores verán el flujo en su terminal para observar el comportamiento de la aplicación. En despliegues de preproducción y producción, cada transmisión del proceso será capturada por el entorno de ejecución, siendo capturadas junto con todos los otros flujos de la aplicación, y redirigidas a uno o más destinos finales para ser revisadas y archivadas. Estos destinos donde se archivan no son visibles o configurables por la aplicación, se gestionan totalmente por el entorno de ejecución. Las herramientas de código abierto que capturan y almacenan los historiales (como [Logplex](https://github.com/heroku/logplex) y [Fluentd](https://github.com/fluent/fluentd)) se usan con este objetivo. Las transmisiones de eventos para una aplicación pueden ser redirigidas a un fichero u observadas en tiempo real mediante un "tail" en un terminal. Cabe destacar que la transmisión se puede enviar a un sistema de análisis e indexado como [Splunk](http://www.splunk.com/), o a un sistema de almacenamiendo de datos de propósito general como [Hadoop/Hive](http://hive.apache.org/). Estos sistemas se tienen en cuenta por el gran poder y la flexibilidad para inspeccionar el comportamiento de la aplicación a lo largo del tiempo, incluyendo: * Encontrar eventos específicos del pasado. * Gráficas de tendencia a gran escala (como las peticiones por minuto). * Activación de alertas de acuerdo con heurísticas definidas por el usuario (como una alerta cuando la cantidad de errores por minuto sobrepasa un cierto límite). content/ko/backing-services.md0000644000175000056700000000622015226251677015144 0ustar0000000000000000## IV. 백엔드 서비스 ### 백엔드 서비스를 연결� 리소스로 취급 *백엔드 서비스*는 애플리케�션 정� �작 중 네트워�를 통해 �용하는 모든 서비스입니다. 예를 들어, ��터 저장소(예: [MySQL](http://dev.mysql.com/), [CouchDB](http://couchdb.apache.org/)), 메시지 �잉 시스템(예: [RabbitMQ](http://www.rabbitmq.com/), [Beanstalkd](https://beanstalkd.github.io)), 메�� 보내기 위한 SMTP 서비스 (예: [Postfix](http://www.postfix.org/)), �시 시스템(예: [Memcached](http://memcached.org/)) 등� 있습니다. ��터베�스와 같� 백엔드 서비스들� 통��으로 배�� 애플리케�션과 같� 시스템 관리�� �해서 관리�고 있었습니다. 애플리케�션� �런 로컬�서 관리하는 서비스 대신, 서드파티� �해서 제공�고 관리�는 서비스를 �용할 수 있습니다. 예를 들어, SMTP 서비스 (예: [Postmark](http://postmarkapp.com/)), 지표 수집 서비스 (예: [New Relic](http://newrelic.com/), [Loggly](http://www.loggly.com/)), 스토리지 서비스 (예: [Amazon S3](http://aws.amazon.com/s3/)), API로 접근 가능한 소비� 서비스 (예: [Twitter](http://dev.twitter.com/), [Google Maps](https://developers.google.com/maps/), [Last.fm](http://www.last.fm/api))등� 있습니다. **Twelve-Factor App� 코드는 로컬 서비스와 서드파티 서비스를 구별하지 않습니다.** 애플리케�션�게는 양 쪽 모� 연결� 리소스�며, [설정](./config)� 있는 URL 혹� 다른 로케�터와 �� 정보를 사용해서 접근 �니다. Twelve-Factor App� [배�](./codebase)는 애플리케�션 코드를 수정하지 않고 로컬�서 관리�는 MySQL DB를 서드파티�서 관리�는 DB(예: [Amazon RDS](http://aws.amazon.com/rds/))로 전환할 수 있어야 합니다. 마찬가지로, 로컬 SMTP 서버는 서드파티 SMTP 서비스(예: Postmark)로 코드 수정 없� 전환� 가능해야 합니다. � 경우 모� 설정� 있는 리소스 핸들만 변경하면 �니다. ��� 다른 백엔드 서비스는 *리소스*입니다. 예를 들어, 하나� MySQL DB는 하나� 리소스입니다. 애플리케�션 레�어�서 샤딩� 하는 � 개� MySQL ��터베�스는 � 개� 서로 다른 리소스�고 볼 수 있습니다. Twelve-Factor App� �러한 ��터베�스들� *첨부�(Attached) 리소스*으로 다룹니다. �는 서로 �슨하게 결합�다는 �� 암시합니다. 4개� 백엔드 서비스가 연결� production 배�. 리소스는 �유롭게 배�� 연결�거나 분리� 수 있습니다. 예를 들어, 애플리케�션� ��터베�스가 하드웨어 �슈로 작용� ��한 경우, 애플리케�션� 관리�는 최신 백업�서 새로운 ��터베�스 서버를 시작시킬 것입니다. 그리고 코드를 전혀 수정하지 않고 현재 운�� 사용하고 있는 ��터베�스를 분리하고 새로운 ��터베�스를 연결할 수 있습니다. content/ru/dependencies.md0000644000175000056700000001144315226251677014373 0ustar0000000000000000## II. Зави�имо�ти ### Явно объ�вл�йте и изолируйте зави�имо�ти Большин�тво �зыков программировани� по�тавл�ют�� вме�те � менеджером пакетов дл� ра�про�транени� библиотек, таким как [CPAN](http://www.cpan.org/) в Perl или [Rubygems](http://rubygems.org/) в Ruby. Библиотеки, у�танавливаемые менеджером пакетов, могут быть у�тановлены до�тупными дл� в�ей �и�темы (так называемые "�и�темные пакеты") или до�тупными только приложению в директорию �одержащую приложение (так называемые "vendoring" и "bundling"). **Приложение двенадцати факторов никогда не зави�ит от не�вно �уще�твующих, до�тупных в�ей �и�теме пакетов.** Приложение объ�вл�ет в�е �вои зави�имо�ти полно�тью и точно � помощью манифе�та *декларации зави�имо�тей*. Кроме того, оно и�пользует ин�трумент *изол�ции зави�имо�тей* во врем� выполнени� дл� обе�печени� того, что не�вные зави�имо�ти не "про�очили�ь" из окружающей �и�темы. Полна� и �вна� �пецификаци� зави�имо�тей примен�ет�� равным образом как при разработке, так и при работе приложени�. �апример, [Bundler](https://bundler.io/) в Ruby и�пользует `Gemfile` как формат манифе�та дл� объ�влени� зави�имо�тей и `bundle exec` -- дл� изол�ции зави�имо�тей. Python имеет два различных ин�трумента дл� �тих задач: [Pip](http://www.pip-installer.org/en/latest/) и�пользует�� дл� объ�влени� и [Virtualenv](http://www.virtualenv.org/en/latest/) -- дл� изол�ции. Даже C имеет [Autoconf](http://www.gnu.org/s/autoconf/) дл� объ�влени� зави�имо�тей, и �татиче�кое �в�зывание может обе�печить изол�цию зави�имо�тей. �езави�имо от того, какой набор ин�трументов и�пользует��, объ�вление и изол�ци� зави�имо�тей должны в�егда и�пользовать�� �овме�тно -- только одного из них недо�таточно, чтобы удовлетворить двенадцати факторам. Одним из преимуще�тв �вного объ�влени� зави�имо�тей �вл�ет�� то, что �то упрощает на�тройку приложени� дл� новых разработчиков. �овый разработчик может �копировать кодовую базу приложени� на �вою машину, необходимыми требовани�ми дл� которой �вл�ют�� только наличие �реды выполнени� �зыка и менеджера пакетов. В�ё необходимое дл� запу�ка кода приложени� может быть на�троено � помощью определённой *команды на�тройки*. �апример, дл� Ruby/Bundler командой на�тройки �вл�ет�� `bundle install`, дл� Clojure/[Leiningen](https://github.com/technomancy/leiningen#readme) �то `lein deps`. Приложение двенадцати факторов также не полагает�� на не�вное �уще�твование любых ин�трументов �и�темы. Примером �вл�ет�� запу�к программ ImageMagick и `curl`. Хот� �ти ин�трументы могут при�ут�твовать во многих или даже в большин�тве �и�тем, нет никакой гарантии, что они будут при�ут�твовать на в�ех �и�темах, где приложение может работать в будущем, или будет ли вер�и� найденна� в другой �и�теме �овме�тима � приложением. Е�ли приложению необходимо запу�тить ин�трумент �и�темы, то �тот ин�трумент должен быть включён в приложение. content/es/toc.md0000644000175000056700000000257015226251677012514 0ustar0000000000000000Twelve Factors ============== ## [I. Código base (Codebase)](./codebase) ### Un código base sobre el que hacer el control de versiones y multiples despliegues ## [II. Dependencias](./dependencies) ### Declarar y aislar explícitamente las dependencias ## [III. Configuraciones](./config) ### Guardar la configuración en el entorno ## [IV. Backing services](./backing-services) ### Tratar a los "backing services" como recursos conectables ## [V. Construir, desplegar, ejecutar](./build-release-run) ### Separar completamente la etapa de construcción de la etapa de ejecución ## [VI. Procesos](./processes) ### Ejecutar la aplicación como uno o más procesos sin estado ## [VII. Asignación de puertos](./port-binding) ### Publicar servicios mediante asignación de puertos ## [VIII. Concurrencia](./concurrency) ### Escalar mediante el modelo de procesos ## [IX. Desechabilidad](./disposability) ### Hacer el sistema más robusto intentando conseguir inicios rápidos y finalizaciones seguras ## [X. Paridad en desarrollo y producción](./dev-prod-parity) ### Mantener desarrollo, preproducción y producción tan parecidos como sea posible ## [XI. Historiales](./logs) ### Tratar los historiales como una transmisión de eventos ## [XII. Administración de procesos](./admin-processes) ### Ejecutar las tareas de gestión/administración como procesos que solo se ejecutan una vez content/fr/backing-services.md0000644000175000056700000000626415226251677015152 0ustar0000000000000000## IV. Services externes ### Traitez les services externes comme des ressources attachées Un *service externe* (backing service) correspond à tout service que l'application utilise à travers le réseau pour son fonctionnement nominal. Cela concerne par exemple les bases de données (tel que [MySQL](http://dev.mysql.com/) ou [CouchDB](http://couchdb.apache.org/)), les systèmes de messages/files (tel que [RabbitMQ](http://www.rabbitmq.com/) ou [Beanstalkd](https://beanstalkd.github.io)), les services SMTP pour l'envoi d'email (comme [Postfix](http://www.postfix.org/)), ainsi que les systèmes de cache (comme [Memcached](http://memcached.org/)). Les *services externes* comme la base de données sont le plus souvent gérés par les mêmes administrateurs réseau que ceux qui gèrent l'application de production. En plus de ces services gérés localement, l'application peut également avoir besoin de services gérés par des tiers. Cela concerne par exemple les services SMTP (comme [Postmark](http://postmarkapp.com/)), les services de gestion de métriques (comme [New Relic](http://newrelic.com/) ou [Loggly](http://www.loggly.com/)), les services de ressources binaires (comme [Amazon S3](http://aws.amazon.com/s3/)), et même les services que l'on peut consommer à travers une API (comme [Twitter](http://dev.twitter.com/), [Google Maps](https://developers.google.com/maps/), ou [Last.fm](http://www.last.fm/api)). **Le code d'une application 12 facteurs ne fait pas de distinction entre les services locaux et les services tiers**. Pour l'application, ce sont tous les deux des ressources attachées, accessibles via une URL ou un autre système de localisation et d'authentification stockée dans la [configuration](./config). Un [déploiement](./codebase) d'une application 12 facteurs doit pouvoir remplacer une base de données MySQL locale par une autre gérée par des tiers ([Amazon RDS](http://aws.amazon.com/rds/), par exemple) sans le moindre changement dans le code de l'application. De la même manière, un serveur SMTP local doit pouvoir être remplacé par un service tiers (Postmark, par exemple) sans changements dans le code. Dans les deux cas, seules les informations de configurations doivent changer. Chaque service externe est une *ressource*. Par exemple, une base de données MySQL est une ressource. Deux bases de données MySQL (utilisées pour faire du sharding dans la couche applicative) correspondent à deux ressources distinctes. L'application 12 facteurs traite ces bases de données comme des ressources attachées, ce qui indique leur couplage faible au déploiement auquel elles sont rattachées. Un déploiement de production lié à quatre services externes. Les ressources peuvent être attachées et détachées à volonté à des déploiements. Par exemple, si la base de données de l'application pose problème pour des raisons matérielles, l'administrateur de l'application peut vouloir lancer un nouveau serveur de base de données restauré à partir d'une sauvegarde récente. L'application courante pourrait être détachée de l'ancienne, puis rattachée à la nouvelle — le tout sans changement dans le code. content/ja/intro.md0000644000175000056700000000256115226251677013045 0ustar0000000000000000���� ============ �代���ソフトウェア�一般�サービス����供�れ�*Webアプリケーション* や *Software as a Service* �呼�れる。Twelve-Factor App��次�よ��Software as a Serviceを作り上�る���方法論��る。 * セットアップ自動化���� **宣言的�** フォーマットを使��プロジェクト�新��加���開発者���る時間�コストを最�化�る。 * 下層�OS�� **�存関係を明確化** ��実行環境間�� **移�性を最大化** �る。 * モダン� **クラウドプラットフォーム** 上�� **デプロイ** �����り�サー�ー管�やシステム管�を���も���る。 * 開発環境�本番環境� **差異を最��** ���アジリティを最大化�る **継続的デプロイ** を�能��る。 * ツール�アーキテク�ャ�開発プラクティスを大幅�変更�る���� **スケールアップ** ��る。 Twelve-Factor�方法論����よ��プログラミング言語�書�れ�アプリケーション��も�用��る。�����よ���ックエンドサービス(データベース�メッセージキュー�メモリキャッシュ��)�組����を使����も�用��る。 content/pl/intro.md0000644000175000056700000000232715226251677013066 0ustar0000000000000000Wprowadzenie ============ We współczesnym świecie oprogramowanie jest powszechnie wytwarzane w formie usługi, nazywane _software-as-service (SaaS)_ lub aplikacjami internetowymi. Dwanaście aspektów aplikacji jest metodologią budowania aplikacji SaaS, które: * Używają **deklaratywnego** formatu by zautomatyzować konfigurację aplikacji w celu zmniejszenia czasu i kosztów dołączenia nowych programistów do projektu; * Mają **czysty kontrakt** z systemem operacyjnym, umożliwiając **jak największą możliwość przenoszenia** pomiędzy środowiskami, w których działają; * Są dopasowane do **wdrożenia** na nowoczesne **chmury obliczeniowe**, zapobiegając potrzebie użycia serwerów i administracji systemu; * **Minimalizują rozbieżności** pomiędzy środowiskami developerskimi i produkcyjnymi, umożliwiając **nieustanne wdrażanie aplikacji** by zmaksymalizować prędkość zmian; * I mogą **skalować się** bez większej zmiany narzędzi, architektury, czy sposobu pracy zespołu. Metodologia dwunastu aspektów może być stosowana do aplikacji napisanych w każdym języku programowania i wykorzystujących dowolną kombinację usług wspierających (bazy danych, kolejki, cache pamięci etc). content/th/disposability.md0000644000175000056700000001256415226251677014616 0ustar0000000000000000## IX. Disposability ### เพิ่มความ�ข็ง��ร่งด้วย�ารเริ่มต้นระบบอย่างรวดเร็ว�ละปิดระบบอย่างนุ่มนวล **Process ของ twelve-factor app จะต้อง **disposable**, หมายความว่าสามารถเริ่มต้นหรือหยุดในขณะที่�จ้งให้ทราบล่วงหน้า** นี่ส่งเสริมให้ขนายยื่ดหยุ่นอย่างรวดเร็ว, deployment ของ�ารเปลี่ยน�ปลง [code](./codebase) หรือ [�ารตั้งค่า](./config) อย่างรวดเร็ว �ละ�ข็ง��ร่งสำหรับ production deploy Process ควรจะมุ่งมั่นที่จะ **ลดเวลาเริ่มต้น** จะเป็น�ารดีถ้า process ใช้เวลาไม่�ี่วินาทีจา�คำสั่งเปิดใช้งานถู�ประมวลผลจน�ระทั่ง process ทำงาน�ละพร้อมสำหรับรับ request หรือ job, �ารใช้เวลาเริ่มต้นที่สั้นนี้จะทำให้คล่องตัวสำหรับ�ระบวน�าร [release](./build-release-run) �ละขยายออ� �ละช่วยให้�ข็ง��ร่งเพราะเป็น�ารรับประ�ันว่าตัวจัด�าร process สามารถย้าย process ไปยังเครื่องใหม่ได้ง่าย Process จะต้อง **ปิดระบบอย่างนุ่มนวลเมื่อรับสั��าณ [SIGTERM](http://en.wikipedia.org/wiki/SIGTERM)** จา�ตัวจัด�าร process สำหรับ process ของเว็บ �ารปิดระบบอย่างอย่างนุ่มนวลสำเร็จได้ด้วยสิ้นสุด�ารเ�้าดู service port (ป�ิเสธ request ที่เข้ามาใหม่) ประมวลผล request ที่รับเข้ามา�ล้วให้เสร็จ �ละออ�จา�โปร��รม โดยนัยในรูป�บบนี้คือ HTTP request จะสั้นมา� (ไม่มา�ไป�ว่าสองสามวินาที) หรือใน�รณีของ�ารประมวลผลที่ยาวนาน, client ควรจะพยายามต่อเนื่องที่จะติดต่ออี�ครั้งเมื่อ�ารเชื่อมต่อขาดหายไป สำหรับ worker process �ารปิดระบบอย่างนุมนวลสำเร็จได้ด้วย�ารคืนงานที่ทำอยู่�ลับให้ work queue ตัวอย่างเช่น บน [RabbitMQ](http://www.rabbitmq.com/) worker สามารถส่ง [`NACK`](http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.nack), บน [Beanstalkd](https://beanstalkd.github.io) งานจะถู�ส่ง�ลับไปยัง queue อัตโนมัติเมือใด�็ตามที่ worker ขาด�ารติดต่อ ระบบ Lock-based เช่น [Delayed Job](https://github.com/collectiveidea/delayed_job#readme) จำเป็นต้องทำให้�น่ใจว่าปล่อยงานที่ล�อ�ไว้ออ�ให้หม โดยนัยในรูป�บบนี้งานทั้งหมดเป็น [reentrant](http://en.wikipedia.org/wiki/Reentrant_%28subroutine%29) ซึ่งโดยปร�ติจะสำเร็จด้วย�ารห่อผลลัพธ์ใน transaction หรือสร้างตัวดำเนินงาน [idempotent](http://en.wikipedia.org/wiki/Idempotence) Process ควรจะ **ทนทานต่อ�ารหยุด�ารทำงานอย่างฉับพลัน** ใน�รณีนี้ความผิดพลาดที่เ�ิดขึ้นในฮาร์ด�วร์ ในขณะที่�รณีนี้เ�ิดขึ้นน้อยมา��ว่า�ารปิดระบบอย่างนุ่มนวลด้วย `SIGTERM` มัน�็ยังมีโอ�าสเ�ิดขึ้นได้ วิธีที่�นะนำคือใช้ robust queueing backend อย่างเช่น Beanstalkd ที่จะส่ง�ลับงานไปยัง queue เมื่อ client ขาด�ารติดต่อหรือหมดเวลา ทั้งสองวิธี twelve-factor app จะถู�ออ��บบให้จัด�าร�ับสิ่งที่คาดไม่ถึง, มี�ารปิดที่ผิดปร�ติ [Crash-only design](http://lwn.net/Articles/191059/) ใช้�นวคิดนี้�ับ [logical conclusion](http://docs.couchdb.org/en/latest/intro/overview.html) content/th/who.md0000644000175000056700000000066515226251677012533 0ustar0000000000000000ใครควรจะอ่านเอ�สารนี้? ============================== นั�พัฒนาที่สร้าง�อพพลิเคชันซึ่งทำงานเป็นเซอร์วิซ (service) วิศว�รดำเนินงานผู้ซึ่งปรับใช้ (deploy) หรือจัด�าร�อพพลิเคชันดัง�ล่าว content/uk/dependencies.md0000644000175000056700000001117615226251677014367 0ustar0000000000000000## II. Залежно�ті ### Явно оголошуйте та ізолюйте залежно�ті Більші�ть мов програмуванн� мають �и�теми пакунків дл� розпов�юдженн� бібліотек, такі �к [CPAN](http://www.cpan.org/) дл� Perl або [Rubygems](http://rubygems.org/) дл� Ruby. Бібліотеки, в�тановлені через �и�тему пакунків, можуть бути до�тупними дл� в�ієї �и�теми (так звані "site-packages") або в�тановлені в каталог за�то�унку (так звані "vendoring" або "bundling"). **За�то�унок дванадц�ти факторів ніколи не залежить від не�вно і�нуючих, до�упних в�ій �и�темі пакунків.** За�то�унок повно і точно вказує в�і �вої залежно�ті за допомогою маніфе�ту *оголошенн� залежно�тей*. Крім того, він викори�товує ін�трумент *ізол�ції залежні�тей* під ча� виконанн�, щоб гарантувати, що ні�кі не�вні залежно�ті не "про�очили��" з зовнішньої �и�теми. Повна і �вна �пецифікаці� залежно�тей викори�товуєть�� однаково �к при розробці, так і в production. �априклад, [Bundler](https://bundler.io/) в Ruby викори�товує `Gemfile` �к формат маніфе�ту дл� оголошенн� залежно�тей і `bundle exec` дл� ізол�ції залежно�тей. В Python є два окремі ін�трументи дл� цих задач - [Pip](http://www.pip-installer.org/en/latest/) викори�товуєть�� дл� оголошенн� і [Virtualenv](http://www.virtualenv.org/en/latest/) дл� ізол�ції. �авіть C має [Autoconf](http://www.gnu.org/s/autoconf/) дл� оголошенн� залежно�тей, а �татичне зв'�зуванн� може забезпечити ізол�цію залежно�тей. Який би не викори�товував�� набір ін�трументів, оголошенн� і ізол�ці� залежно�тей завжди мають викори�товувати�� разом — тільки одне або інше не є до�татньою умовою дл� задоволенн� дванадц�ти факторів. Однією з переваг �вного оголошенн� залежно�тей є те, що це �прощує налаштуванн� за�то�унку дл� нових розробників. �овий розробник може �копіювати кодову базу за�то�унку на �вою машину, необхідними вимогами дл� �кої є тільки на�вні�ть �ередовища виконанн� мови програмуванн� та на�вні�ть менеджера залежно�тей. В�е необхідне дл� запу�ку коду за�то�унку може бути налаштоване за допомогою визначеної *команди збірки*. �априклад, команда збірки дл� Ruby/Bundler є `bundle install`, а дл� Clojure/[Leiningen](https://github.com/technomancy/leiningen#readme) це `lein deps`. За�то�унок дванадц�ти факторів також ніколи не залежить від не�вно і�нуючих будь-�ких �и�темних ін�трументів. Прикладом може бути запу�к за�то�унком таких �и�темних ін�трументів, �к ImageMagick або `curl`. У той ча�, �к ці ін�трументи можуть бути в�тановлені на багатьох або навіть більшо�ті �и�тем, немає жодної гарантії, що вони будуть в�тановлені на в�іх �и�темах, де за�то�унок може запу�кати�� в майбутньому, або вер�і� ін�трументу, в�тановлена в �и�темі, буде �умі�на з за�то�унком. Якщо за�то�унку потрібно запу�кати певні �и�темні ін�трументи, то такі ін�трументи мають бути включені в �ам за�то�унок.content/uk/dev-prod-parity.md0000644000175000056700000001711215226251677014763 0ustar0000000000000000## X. Dev/prod паритет ### Прагніть мак�имальної ідентично�ті development, staging та production �ередовищ І�торично �клало��, що є �уттєві відмінно�ті між development �ередовищем (розробник вно�ить живі зміни в [локально розгорнутий](./codebase) за�то�унок) і production �ередовищем (до �кого мають до�туп кінцеві кори�тувачі). Ці відмінно�ті про�вл�ють�� в трьох обла�т�х: * **Різниц� в ча�і**: Розробник може працювати над кодом, �кий потрапить у production через дні, тижні або навіть мі��ці; * **Різниц� в пер�оналі**: Розробники пишуть код, Ops-інженери розгортають його; * **Різниц� в ін�трументах**: Розробники можуть викори�товувати �тек технологій такий, �к Nginx, SQLite та OS X, в той ча� �к на production викори�товуєть�� Apache, MySQL та Linux. **За�то�унок дванадц�ти факторів проектуєть�� дл� [безперервного розгортанн�](http://avc.com/2011/02/continuous-deployment/), завд�ки мінімізації різниці між production і development �ередовищами.** Розгл�немо три відмінно�ті, опи�ані вище: * Зменшити різницю в ча�і: розробник може напи�ати код і він буде розгорнутий через декілька годин або навіть хвилин; * Зменшити різницю в пер�оналі: розробники, �кі пи�али код, беруть активну уча�ть в його розгортанні і �по�терігають за його поведінкою на production; * Зменшити різницю в ін�трументах: тримати development та production �ередовища мак�имально ідентичними. Резюмуючи �казане вище в таблицю:
    Традиційний за�то�унок За�то�унок дванадцати факторів
    Ча� між розгортанн�ми Тижні Години
    �втор коду/той хто розгортає Різні люди Ті ж люди
    Dev/Prod розгортанн� Різні Мак�имально ідентичні
    [Сторонні �лужби](./backing-services), такі �к бази даних, �и�теми черг повідомлень або кеш, є однією з обла�тей, де dev/prod паритет має важливе значенн�. Багато мов програмуванн� мають бібліотеки, �кі �прощують до�туп до �торонніх �лужб, в тому чи�лі, *адаптери* дл� різних видів �ерві�ів. Де�кі приклади наведені в таблиці нижче.
    Тип Мова Бібліотека �даптери
    База даних Ruby/Rails ActiveRecord MySQL, PostgreSQL, SQLite
    Черга повідомлень Python/Django Celery RabbitMQ, Beanstalkd, Redis
    Кеш Ruby/Rails ActiveSupport::Cache Пам'�ть, файлова �и�тема, Memcached
    Іноді розробники бачать переваги у викориÑ�танні "легких" Ñ�торонніх Ñ�лужб в їхньому локальному Ñ�ередовищі, в той чаÑ� Ñ�к більш Ñ�ерйозні Ñ– надійні Ñ�торонні Ñ�лужби будуть викориÑ�товуватиÑ�Ñ� у production. Ð�априклад, локально викориÑ�товують SQLite, а на production PostgreSQL; або локально пам'Ñ�ть процеÑ�у длÑ� кешуваннÑ�, а на production Memcached. **Розробник заÑ�тоÑ�унку дванадцÑ�ти факторів уникає викориÑ�таннÑ� різних Ñ�торонніх Ñ�лужб в development Ñ– production Ñ�ередовищах**, навіть Ñ�кщо адаптери теоретично абÑ�траговані від будь-Ñ�ких відмінноÑ�тей у Ñ�торонніх Ñ�лужбах. ВідмінноÑ�ті між Ñ�торонніми Ñ�лужбами означають, що може виникнути крихітна неÑ�уміÑ�ніÑ�ть, в результаті чого код, Ñ�кий працював Ñ– пройшов теÑ�туваннÑ� в development та staging Ñ�ередовищах, піÑ�лÑ� розгортаннÑ� не працює в production Ñ�ередовищі. Такий тип помилок Ñ�творює перешкоди, Ñ�кі нівелюють переваги безперервного розгортаннÑ�. Ціна цих перешкод Ñ– подальшого відновленнÑ� безперервного розгортаннÑ� надзвичайно виÑ�ока, Ñ�кщо розглÑ�дати в Ñ�укупноÑ�ті за веÑ�ÑŒ чаÑ� екÑ�плуатації заÑ�тоÑ�унку. Ð’Ñ�тановленнÑ� локально "легких" Ñ�торонніх Ñ�ервіÑ�ів вже не Ñ” таким привабливим, Ñ�к було раніше. СучаÑ�ні надійні Ñ�торонні Ñ�ервіÑ�и, такі Ñ�к Memcached, PostgreSQL Ñ– RabbitMQ, доÑ�ить легко вÑ�тановити Ñ– запуÑ�тити завдÑ�ки Ñ�учаÑ�ним менеджерам пакунків, таким Ñ�к [Homebrew](http://mxcl.github.com/homebrew/) Ñ– [apt-get](https://help.ubuntu.com/community/AptGet/Howto). Крім того, декларативні інÑ�трументи підготовки Ñ�ередовища, такі Ñ�к [Chef](http://www.opscode.com/chef/) Ñ– [Puppet](http://docs.puppetlabs.com/), у поєднанні з "легким" віртуальним Ñ�ередовищем, таким Ñ�к [Vagrant](http://vagrantup.com/), дозволÑ�ють розробникам запуÑ�кати локальні Ñ�ередовища, Ñ�кі наближені до production. Ціна вÑ�тановленнÑ� Ñ– викориÑ�таннÑ� цих Ñ�иÑ�тем Ñ” низькою у порівнÑ�нні з кориÑ�тю dev/prod паритету Ñ– безперервного розгортаннÑ�. Ð�даптери длÑ� різних Ñ�торонніх Ñ�ервіÑ�ів вÑ�е ж кориÑ�ні, тому що вони роблÑ�ть перенеÑ�еннÑ� заÑ�тоÑ�унку длÑ� викориÑ�таннÑ� з іншими Ñ�торонніми Ñ�ервіÑ�ами відноÑ�но безболіÑ�ним. Ð�ле вÑ�Ñ– розгортаннÑ� заÑ�тоÑ�унку (development, staging та production Ñ�ередовища) мають викориÑ�товувати один Ñ– той Ñ�амий тип Ñ– верÑ�Ñ–ÑŽ кожного зі Ñ�торонніх Ñ�ервіÑ�ів.content/de/codebase.md0000644000175000056700000000356715226251677013464 0ustar0000000000000000## I. Codebase ### Eine im Versionsmanagementsystem verwaltete Codebase, viele Deployments Eine Zwölf-Faktor-App wird immer in einem Versionsmanagementsystem verwaltet, wie zum Beispiel [Git](http://git-scm.com/), [Mercurial](https://www.mercurial-scm.org/) oder [Subversion](http://subversion.apache.org/). Eine Kopie der Versionsdatenbank wird *Code Repository* genannt, kurz *Code Repo* oder auch nur *Repo*. Eine *Codebase* ist jedes einzelne Repo (in einem zentralisierten Versionsmanagementsystem wie Subversion) oder jede Menge von Repos, die einen ursprünglichen Commit teilen (in dezentralisierten Versionsmanagementsystemen wie git). ![Eine Codebase bildet sich in viele Deploys ab.](/images/codebase-deploys.png) Es gibt immer eine eineindeutige Korrelation zwischen einer Codebase und einer App: * Wenn es mehrere Codebases gibt, ist es keine App -- sondern ein verteiltes System. Jede Komponente in einem verteilten System ist eine App, und Jede kann für sich den zwölf Faktoren entsprechen. * Wenn mehrere Apps denselben Code teilen, verletzt dies die zwölf Faktoren. Lösen lässt sich dies, indem man den gemeinsamen Code in Bibliotheken auslagert und über die [Abhängigkeitsverwaltung](./dependencies) lädt. Es gibt nur eine Codebase pro App aber viele Deploys der App. Ein *Deploy* ist eine laufende Instanz der App. Meist gibt es ein Produktionssystem und eines oder mehrere Staging-Systeme. Zusätzlich hat jeder Entwickler eine Kopie der App in seiner lokalen Entwicklungsumgebung, das sind auch Deploys. Die Codebase ist über alle diese Deploys hinweg dieselbe, auch wenn bei jedem Deploy unterschiedliche Versionen aktiv sind. So hat zum Beispiel ein Entwickler manche Commits noch nicht nach Staging deployt; Staging hat manche Commits noch nicht nach Produktion deployt. Aber alle teilen dieselbe Codebase, was sie als verschiedene Deploys derselben App auszeichnet. content/pl/build-release-run.md0000644000175000056700000000537615226251677015261 0ustar0000000000000000## V. Buduj, publikuj, uruchamiaj ### Oddzielaj etap budowania od uruchamiania [Codebase](./codebase) jest przetwarzany we wdrożenie w trzech etapach (poza lokalnym Å›rodowiskiem). * Podczas *etapu budowania* kod z repozytorium konwertowany jest do wykonywalnej paczki tzw. *buildu*. UżywajÄ…c wersji kodu zdefiniowanej przez commit w procesie deploymentu, w tym etapie pobiera i dołącza siÄ™ do projektu [zależnoÅ›ci](./dependencies) oraz kompiluje niezbÄ™dne zasoby. * Podczas *etapu publikacji* aplikacji używany jest build stworzony w poprzednim etapie i konfigurowany na podstawie [ustawieÅ„](./config) obecnego wdrożenia. Stworzony w ten sposób *release* zawiera zbudowane źródÅ‚o kodu, jego konfiguracjÄ™ i jest gotowy do uruchomienia w wybranym Å›rodowisku. * *Etap uruchamiania* (znany również jako "runtime") startuje aplikacjÄ™ w Å›rodowisku wykonawczym przez uruchomienie zestawu [procesów](./processes) w oparciu o wczeÅ›niej przygotowany release. ![Kod staje siÄ™ buildem, jeÅ›li zostanie połączony z konfiguracjÄ… by stworzyć release](/images/release.png) **Aplikacja 12factor Å›ciÅ›le rozgranicza etapy budowy, publikacji i uruchomiania** Kiedy aplikacja zostaÅ‚a już uruchomiona, nie można zmienić jej kodu w inny sposób niż zbudować jÄ… na nowo na podstawie wczeÅ›niej naniesionych zmian. NarzÄ™dzia do obsÅ‚ugi wdrożeÅ„ zazwyczaj oferujÄ… moduÅ‚y do zarzÄ…dzania releasami, w tym możliwość do powrotu do poprzedniej wersji (rollback). Np. narzÄ™dzie [Capistrano](https://github.com/capistrano/capistrano/wiki) przechowuje releasy w podkatalogu `releases`, gdzie obecna wersja opublikowanej aplikacji jest symlinkowana do jednej z wersji przechowywanej w katalogu Capistrano. Komenda `rollback` pozwala na szybkÄ… zmianÄ™ wersji opublikowanej aplikacji na jednÄ… z poprzednich. Każdy release powinien zawsze posiadać unikalny identyfikator, jak np. data publikacji aplikacji (taka jak `2011-04-06-20:32:17`) lub inkrementowany numer (np. `v100`). Do rejestru opublikowanych wersji aplikacji można jedynie dodawać jej nowe wersje, jego zawartość nie może być zmieniana w żaden inny sposób. Aplikacja może zostać zbudowana gdy developer zdecyduje o wdrożeniu zmian do kodu. Uruchomienie aplikacji może natomiast nastÄ…pić automatycznie po restarcie serwera lub jednego z procesów aplikacji po błędzie krytycznym. Dlatego też etap uruchamiania aplikacji powinien być jak najbardziej jednolity minimalizujÄ…c równoczeÅ›nie ryzyko wystÄ…pienia problemów ze startem aplikacji - mogÄ… one spowodować zaprzestanie dziaÅ‚ania aplikacji np. w nocy, kiedy to nie ma żadnego developera "pod rÄ™kÄ…". Etap budowy aplikacji może być bardziej zÅ‚ożony, ponieważ ewentualne błędy sÄ… zawsze widoczne dla developera, który nadzoruje ten proces. content/pt_br/codebase.md0000644000175000056700000000405515226251677014173 0ustar0000000000000000## I. Base de Código ### Uma base de código com rastreamento utilizando controle de revisão, muitos deploys Uma aplicação 12 fatores é sempre rastreada em um sistema de controle de versão, como [Git](http://git-scm.com/), [Mercurial](https://www.mercurial-scm.org/), ou [Subversion](http://subversion.apache.org/). Uma cópia da base de dados do rastreamento de revisões é conhecido como *repositório de código*, normalmente abreviado como *repositório* ou *repo*. Uma *base de código* é um único repo (em um sistema de controle de versão centralizado como Subversion), ou uma série de repositórios que compartilham um registro raiz. ![Uma base de código para vários deploys](/images/codebase-deploys.png) Existe sempre uma correlação um-para-um entre a base de código e a aplicação: * Se existem várias bases de código, isto não é uma app -- é um sistema distribuído. Cada componente do sistema é uma app, e cada uma pode individualmente ser compatível com os 12 fatores. * Múltiplas apps compartilhando uma base de código é uma violação dos 12 fatores. A solução aqui é dividir o código compartilhado entre bibliotecas que podem ser incluídas através do [gerenciador de dependências](/dependencies). Existe apenas uma base de código por aplicação, mas existirão vários deploys da mesma. Um *deploy* (ou implantação) é uma instância executando a aplicação. Isto é tipicamente um local de produção, e um ou mais locais de testes. Adicionalmente, todo desenvolvedor tem uma cópia da aplicação rodando em seu ambiente local de desenvolvimento, cada um desses pode ser qualificado como um deploy. A base de código é a mesma através de todos os deploys, entretanto diferentes versões podem estar ativas em cada deploy. Por exemplo, um desenvolvedor tem alguns registros ainda não implantados no ambiente de teste, o ambiente de teste ainda tem registros não implantados em produção. Mas todos esses ambientes compartilham a mesma base de código, tornando-os identificáveis ​​como diferentes deploys do mesmo app. content/ru/build-release-run.md0000644000175000056700000001105015226251677015256 0ustar0000000000000000## V. Сборка, релиз, выполнение ### Строго разделÑ�йте Ñ�тадии Ñ�борки и выполнениÑ� [КодоваÑ� база](./codebase) транÑ�формируетÑ�Ñ� в развёртывание (не учитываÑ� развёртывание длÑ� разработки) за три Ñ�тапа: * *Этап Ñ�борки* -- Ñ�то транÑ�формациÑ�, котораÑ� преобразует репозиторий кода в иÑ�полнÑ�емый пакет, называемый *Ñ�борка*. ИÑ�пользуÑ� верÑ�ию кода по указанному процеÑ�Ñ�ом развёртываниÑ� коммиту, Ñ�тап Ñ�борки загружает Ñ�торонние [завиÑ�имоÑ�ти](./dependencies) и компилирует двоичные файлы и реÑ�урÑ�Ñ‹ (assets). * *Этап релиза* принимает Ñ�борку, полученную на Ñ�тапе Ñ�борки, и объединÑ�ет её Ñ� текущей [конфигурацией](./config) развёртываниÑ�. Полученный *релиз* Ñ�одержит Ñ�борку и конфигурацию и готов к немедленному запуÑ�ку в Ñ�реде выполнениÑ�. * *Этап выполнениÑ�* (также извеÑ�тный как "runtime") запуÑ�кает приложение в Ñ�реде выполнениÑ� путём запуÑ�ка некоторого набора [процеÑ�Ñ�ов](./processes) приложениÑ� из определённого релиза. ![Код Ñ�тановитÑ�Ñ� Ñ�боркой, котораÑ� объединÑ�етÑ�Ñ� Ñ� конфигурацией длÑ� Ñ�озданиÑ� релиза.](/images/release.png) **Приложение двенадцати факторов иÑ�пользует Ñ�трогое разделение между Ñ�тапами Ñ�борки, релиза и выполнениÑ�.** Ð�апример, невозможно внеÑ�ти изменениÑ� в код во времÑ� выполнениÑ�, так как нет Ñ�поÑ�оба раÑ�проÑ�транить Ñ�ти изменениÑ� обратно на Ñ�тап Ñ�борки. ИнÑ�трументы развёртываниÑ�, как правило, предÑ�тавлÑ�ÑŽÑ‚ Ñ�обой инÑ�трументы управлениÑ� релизами, и что немаловажно, дают возможноÑ�ть отката к предыдущему релизу. Ð�апример инÑ�трумент развёртываниÑ� [Capistrano](https://github.com/capistrano/capistrano/wiki) Ñ�охранÑ�ет релизы в подкаталогах каталога Ñ� именем `releases`, где текущий релиз Ñ�влÑ�етÑ�Ñ� Ñ�имволичеÑ�кой Ñ�Ñ�ылкой на каталог текущего релиза. Команда Capistrano `rollback` даёт возможноÑ�ть быÑ�тро откатитÑ�Ñ� к предыдущему релизу. Каждый релиз должен иметь уникальный идентификатор, такой как отметка времени релиза (например `2015-04-06-15:42:17`) или увеличивающееÑ�Ñ� чиÑ�ло (например `v100`). Релизы могут только добавлÑ�тьÑ�Ñ� и каждый релиз невозможно изменить поÑ�ле его Ñ�озданиÑ�. Любые изменениÑ� обÑ�заны Ñ�оздавать новый релиз. Сборка инициируетÑ�Ñ� разработчиком приложениÑ� вÑ�Ñ�кий раз, когда разворачиваетÑ�Ñ� новый код. ЗапуÑ�к Ñ�тапа выполнениÑ�, напротив, может проиÑ�ходить автоматичеÑ�ки в таких Ñ�лучаÑ�Ñ…, как перезагрузка Ñ�ервера, или перезапуÑ�к упавшего процеÑ�Ñ�а менеджером процеÑ�Ñ�ов. Таким образом, Ñ�тап выполнениÑ� должен быть как можно более техничеÑ�ки проÑ�тым, так как проблемы, которые могут помешать приложению запуÑ�титьÑ�Ñ� могут возникнуть в Ñ�ередине ночи, когда нет доÑ�тупных разработчиков. Этап Ñ�борки может быть более Ñ�ложным, так как возможные ошибки вÑ�егда видимы разработчику, который запуÑ�тил развёртывание. content/uk/config.md0000644000175000056700000001357615226251677013214 0ustar0000000000000000## III. КонфігураціÑ� ### Зберігайте конфігурацію в Ñ�ередовищі виконаннÑ� *КонфігураціÑ�* заÑ�тоÑ�унку — це вÑ�е, що може змінюватиÑ�Ñ� між [розгортаннÑ�ми](./codebase) (staging-розгортаннÑ�, production-розгортаннÑ�, локальне Ñ�ередовище розробника тощо). Це включає: * Параметри підключеннÑ� до бази даних, Memcached Ñ– інших [Ñ�торонніх Ñ�ервіÑ�ів](./backing-services); * РеєÑ�траційні дані длÑ� підключеннÑ� до зовнішніх Ñ�ервіÑ�ів, таких Ñ�к Amazon S3 або Twitter; * ЗначеннÑ�, що залежать від Ñ�ередовища розгортаннÑ�, такі Ñ�к канонічне ім'Ñ� хоÑ�ту. ЗаÑ�тоÑ�унки іноді зберігають конфігурації Ñ�к конÑ�танти в коді. Це Ñ” порушеннÑ�м методології дванадцÑ�ти факторів, Ñ�ка вимагає **обов'Ñ�зкового відокремленнÑ� конфігурації від коду**. Конфігурації заÑ�тоÑ�унку в розгортаннÑ�Ñ… Ñ�уттєво відрізнÑ�ютьÑ�Ñ�, код — однаковий. ЛакмуÑ�овим папірцем того, чи правильно розділені конфігураціÑ� Ñ– код, Ñ” можливіÑ�ть в будь-Ñ�кий момент відкрити вихідний код заÑ�тоÑ�унку у вільний доÑ�туп, при цьому не оприлюднюючи будь-Ñ�ких приватних даних. Зверніть увагу, що визначеннÑ� "конфігурації" **не включає** в Ñ�ебе внутрішні налаштуваннÑ� заÑ�тоÑ�унку, такі Ñ�к `Ñ�onfig/routes.rb` в Rails, або [Ñ�к пов'Ñ�зані оÑ�новні модулі](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html) в [Spring](http://spring.io/). Ці налаштуваннÑ� не змінюютьÑ�Ñ� між розгортаннÑ�ми, Ñ– тому краще міÑ�це длÑ� них — Ñ�аме в коді. Іншим підходом до конфігурації Ñ” викориÑ�таннÑ� конфігураційних файлів, що не зберігаютьÑ�Ñ� в Ñ�иÑ�тему контролю верÑ�ій, таких Ñ�к `Ñ�onfig/database.yml` в Rails. Це перевага у порівнÑ�нні з викориÑ�таннÑ�м конÑ�тант в коді, але вÑ�е ж таки має Ñ�уттєві недоліки: Ñ” ймовірніÑ�ть помилково зберегти файл конфігурації в репозиторій; Ñ–Ñ�нує тенденціÑ� коли конфігураційні файли розкидані в різних міÑ�цÑ�Ñ… Ñ– в різних форматах, Ñ– Ñ�тає важко передивлÑ�тиÑ�Ñ� вÑ�Ñ– налаштуваннÑ� Ñ– керувати ними в одному міÑ�ці. Крім того, формати цих файлів, Ñ�к правило, Ñ�пецифічні длÑ� конкретної мови програмуваннÑ� чи фреймворку. **ЗаÑ�тоÑ�унок дванадцати факторів зберігає конфігурацію в *змінних оточеннÑ�*** (чаÑ�то Ñ�корочуєтьÑ�Ñ� до *env vars* або *env*). ЗначеннÑ� змінних оточеннÑ� легко змінити між розгортаннÑ�ми без зміни коду; на відміну від конфігураційних файлів, менш ймовірно випадково зберегти Ñ—Ñ… в репозиторій коду; Ñ– на відміну від конфігураційних файлів або інших механізмів конфігурації, таких Ñ�к Java System Properties, вони Ñ” Ñ�тандартом, незалежним від мови програмуваннÑ� чи фреймворку. Іншим аÑ�пектом керуваннÑ� конфігурацією Ñ” групуваннÑ�. Іноді заÑ�тоÑ�унки об'єднують конфігурації в іменовані групи (Ñ�кі чаÑ�то називаютьÑ�Ñ� "оточеннÑ�ми"), Ñ�кі називаютьÑ�Ñ� в залежноÑ�ті від конкретного розгортаннÑ�, наприклад, `development`, `test` Ñ– `production` оточеннÑ� в Rails. Цей метод погано маÑ�штабуєтьÑ�Ñ�: чим більше Ñ�творюєтьÑ�Ñ� різних розгортань заÑ�тоÑ�унку, тим більше необхідно нових імен оточень, наприклад, `staging` або `qa`. При подальшому роÑ�ті проекту розробники можуть додавати Ñ�вої влаÑ�ні Ñ�пеціальні оточеннÑ�, наприклад, `joes-staging`, що призводить до комбінаторного вибуху конфігурації, Ñ�кий робить керуваннÑ� розгортаннÑ�м заÑ�тоÑ�унку неÑ�табільним. У заÑ�тоÑ�унку дванадцÑ�ти факторів змінні оточеннÑ� Ñ” незв'Ñ�заними між Ñ�обою заÑ�обами керуваннÑ�. Кожна змінна повніÑ�тю незалежна від інших. Вони ніколи не групуютьÑ�Ñ� разом в "оточеннÑ�", керуваннÑ� ними здійÑ�нюєтьÑ�Ñ� незалежно длÑ� кожного розгортаннÑ�. ЦÑ� модель добре маÑ�штабуєтьÑ�Ñ� разом з поÑ�вою більшої кількоÑ�ті розгортань заÑ�тоÑ�унку протÑ�гом його екÑ�плуатації.content/uk/disposability.md0000644000175000056700000001201215226251677014606 0ustar0000000000000000## IX. УтилізовуваніÑ�ть ### Підвищуйте надійніÑ�ть за допомогою швидкого запуÑ�ку Ñ– коректного вимкненнÑ� **[ПроцеÑ�и](./processes) заÑ�тоÑ�унку дванадцати факторів Ñ” *утилізовуваними*, тобто вони можуть бути запущені або зупинені в будь-Ñ�кий момент.** Це Ñ�приÑ�Ñ” гнучкому маÑ�штабуванню, швидкому розгортанню [коду](./codebase) або змінам [конфігурації](./config) Ñ– надійноÑ�ті production-розгортаннÑ�. Слід намагатиÑ�Ñ� **мінімізувати чаÑ� запуÑ�ку процеÑ�ів**. Ð’ ідеалі чаÑ� між моментом виконаннÑ� команди запуÑ�ку процеÑ�у Ñ– моментом, коли процеÑ� готовий приймати запити чи задачі, має тривати лише пару Ñ�екунд. Короткий чаÑ� запуÑ�ку забезпечує більшу гнучкіÑ�ть длÑ� [релізу](./build-release-run) Ñ– маÑ�штабуваннÑ�. Крім того, це підвищує Ñ�тійкіÑ�ть, оÑ�кільки менеджер процеÑ�ів може легко переміщувати процеÑ�и на нові фізичні машини у разі необхідноÑ�ті. ПроцеÑ�и мають **коректно завершувати Ñ�вою роботу, коли вони отримують [SIGTERM](http://en.wikipedia.org/wiki/SIGTERM)** Ñ�игнал від диÑ�петчеру процеÑ�ів. ДлÑ� веб-процеÑ�у коректне завершеннÑ� роботи доÑ�Ñ�гаєтьÑ�Ñ� завдÑ�ки припиненню проÑ�луховуваннÑ� порту, до Ñ�кого він прив'Ñ�заний (що означає відмову від отриманнÑ� будь-Ñ�ких нових запитів), завершенню обробки будь-Ñ�ких поточних запитів та зупинці Ñ�амого процеÑ�у. Ð’ цій моделі передбачаєтьÑ�Ñ�, що HTTP-запити короткі (не більше ніж кілька Ñ�екунд), а у разі довгих запитів (long polling) клієнт має намагатиÑ�Ñ� відновити з'єднаннÑ� у разі його втрати. ДлÑ� процеÑ�у, що виконує фонові задачі (worker), коректне завершеннÑ� роботи доÑ�Ñ�гаєтьÑ�Ñ� за рахунок поверненнÑ� поточного завданнÑ� назад у чергу задач. Ð�априклад, в [RabbitMQ](http://www.rabbitmq.com/) робочий процеÑ� може надіÑ�лати команду [`NACK`](http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.nack); в [Beanstalkd](https://beanstalkd.github.io) завданнÑ� повертаєтьÑ�Ñ� в чергу автоматично щоразу, коли процеÑ� втрачає з'єднаннÑ�. СиÑ�теми, що викориÑ�товують блокуваннÑ�, такі Ñ�к [Delayed Job](https://github.com/collectiveidea/delayed_job#readme), мають бути повідомлені, щоб звільнити блокуваннÑ� задачі. Ð’ цій моделі передбачаєтьÑ�Ñ�, що вÑ�Ñ– задачі Ñ” [повторно вхідними](http://en.wikipedia.org/wiki/Reentrant_%28subroutine%29), що зазвичай доÑ�Ñ�гаєтьÑ�Ñ� шлÑ�хом обертаннÑ� результатів їхньої роботи в транзакції або шлÑ�хом викориÑ�таннÑ� [ідемпотентних](http://en.wikipedia.org/wiki/Idempotence) операцій. ПроцеÑ�и також мають бути **Ñ�тійкі до раптової зупинки** в разі відмови апаратних заÑ�обів, на Ñ�ких вони запущені. Хоча це менш ймовірна подіÑ�, ніж коректне завершеннÑ� роботи за допомогою Ñ�игналу `SIGTERM`, вона вÑ�е ж таки може Ñ�татиÑ�Ñ�. Рекомендованим підходом Ñ” викориÑ�таннÑ� надійних черг завдань, таких Ñ�к Beanstalkd, Ñ�кі повертають завданнÑ� в чергу задач, коли клієнти втрачають з'єднаннÑ� або від'єднуютьÑ�Ñ� по тайм-ауту. У будь-Ñ�кому випадку, заÑ�тоÑ�унок дванадцÑ�ти факторів має проектуватиÑ�Ñ� таким чином, щоб оброблÑ�ти неÑ�подівані та некоректні вимкненнÑ�. Прикладом вдалої реалізації [архітектури "тільки аварійного вимкненнÑ�" (Crash-only design)](http://lwn.net/Articles/191059/) Ñ” [СouchDB](http://docs.couchdb.org/en/latest/intro/overview.html). locales/de.yml0000644000175000056700000000034615226251677012060 0ustar0000000000000000de: # Name of language listed in locales menu language: "Deutsch (de)" # A text to make known that the article is a translation not an original. # Empty for English, original. translation: "Dies ist eine Übersetzung." locales/fr.yml0000644000175000056700000000035015226251677012072 0ustar0000000000000000fr: # Name of language listed in locales menu language: "Français (fr)" # A text to make known that the article is a translation not an original. # Empty for English, original. translation: "Ce texte est une traduction" content/de/who.md0000644000175000056700000000026115226251677012500 0ustar0000000000000000Wer sollte dieses Dokument lesen? ============================== Jeder Entwickler der Apps baut, die als Dienst laufen. Administratoren, die solche Apps managen oder deployen. content/ja/dependencies.md0000644000175000056700000000703015226251677014334 0ustar0000000000000000## II. ä¾�存関係 ### ä¾�存関係を明示的ã�«å®£è¨€ã�—分離ã�™ã‚‹ ã�»ã�¨ã‚“ã�©ã�®ãƒ—ログラミング言語ã�¯ã€�サãƒ�ートライブラリをé…�布ã�™ã‚‹ã�Ÿã‚�ã�®ãƒ‘ッケージ管ç�†ã‚·ã‚¹ãƒ†ãƒ ã‚’æ��ä¾›ã�—ã�¦ã�„る。例ã�ˆã�°ã€�Perlã�«ã�Šã�‘ã‚‹[CPAN](http://www.cpan.org/)ã‚„Rubyã�«ã�Šã�‘ã‚‹[Rubygems](http://rubygems.org/)ã�ªã�©ã�§ã�‚る。パッケージ管ç�†ã‚·ã‚¹ãƒ†ãƒ ã�§ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã�•れるライブラリã�¯ã€�システム全体(“site packagesâ€�ã�¨è¨€ã‚�れる)ã�«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã�•れる場å�ˆã�¨ã€�アプリケーションをå�«ã‚€ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã�®ã‚¹ã‚³ãƒ¼ãƒ—(“vendoringâ€�ã�¾ã�Ÿã�¯â€œbundlingâ€�ã�¨è¨€ã‚�れる)ã�«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã�•れる場å�ˆã�Œã�‚る。 **Twelve-Factor Appã�¯ã€�システム全体ã�«ã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã�•れるパッケージã�Œæš—黙的ã�«å­˜åœ¨ã�™ã‚‹ã�“ã�¨ã�«æ±ºã�—ã�¦ä¾�å­˜ã�—ã�ªã�„。** ã�™ã�¹ã�¦ã�®ä¾�存関係を *ä¾�存関係宣言* マニフェストã�§å®Œå…¨ã�‹ã�¤å޳坆ã�«å®£è¨€ã�™ã‚‹ã€‚ã�•らã�«ã€�実行時ã�«ã�¯ *ä¾�存関係分離* ツールを使ã�£ã�¦ã€�å�–り囲んã�§ã�„るシステムã�‹ã‚‰æš—é»™ã�®ä¾�存関係ã�Œâ€œæ¼�れ出ã�ªã�„â€�ã�“ã�¨ã‚’ä¿�証ã�™ã‚‹ã€‚完全ã�‹ã�¤æ˜Žç¤ºçš„ã�ªä¾�存関係ã�®æŒ‡å®šã�¯ã€�本番環境ã�¨é–‹ç™ºç’°å¢ƒã�®ä¸¡æ–¹ã�«å¯¾ã�—ã�¦å�Œæ§˜ã�«é�©ç”¨ã�•れる。 例ã�ˆã�°ã€�Rubyã�§ä½¿ã‚�れる[Bundler](https://bundler.io/) ã�¯ã€�ä¾�存関係宣言ã�®ã�Ÿã‚�ã�®ãƒžãƒ‹ãƒ•ェストã�®ãƒ•ォーマットã�§ã�‚ã‚‹`Gemfile`ã�¨ä¾�存関係分離ã�®ã�Ÿã‚�ã�®`bundle exec`ã‚’æ��ä¾›ã�—ã�¦ã�„る。Pythonã�§ã�¯ã�“れらã�®ã‚¹ãƒ†ãƒƒãƒ—ã�§2ã�¤ã�®åˆ¥ã€…ã�®ãƒ„ールã�Œä½¿ã‚�れる -- [Pip](http://www.pip-installer.org/en/latest/)ã�Œå®£è¨€ã�®ã�Ÿã‚�ã�«ä½¿ã‚�れã€�[Virtualenv](http://www.virtualenv.org/en/latest/)ã�Œåˆ†é›¢ã�®ã�Ÿã‚�ã�«ä½¿ã‚�れる。C言語ã�§ã‚‚[Autoconf](http://www.gnu.org/s/autoconf/)ã�§ä¾�存関係を宣言ã�—ã€�é�™çš„リンクã�§ä¾�存関係を分離ã�™ã‚‹ã�“ã�¨ã�Œã�§ã��る。ツールã�Œä½•ã�§ã�‚れã€�ä¾�存関係ã�®å®£è¨€ã�¨åˆ†é›¢ã�¯å¸¸ã�«ä¸€ç·’ã�«ä½¿ã‚�ã�ªã�‘れã�°ã�ªã‚‰ã�ªã�„ -- ã�©ã�¡ã‚‰ã�‹ç‰‡æ–¹ã� ã�‘ã�§ã�¯Twelve-Factorを満足ã�™ã‚‹ã�®ã�«ä¸�å��分ã�§ã�‚る。 明示的ã�«ä¾�存関係を宣言ã�™ã‚‹åˆ©ç‚¹ã�®1ã�¤ã�¯ã€�アプリケーションã�«æ–°ã�—ã�„開発者ã�ŒåŠ ã‚�ã�£ã�Ÿéš›ã�®ã‚»ãƒƒãƒˆã‚¢ãƒƒãƒ—ã‚’å�˜ç´”化ã�§ã��ã‚‹ã�“ã�¨ã�§ã�‚る。新ã�—ã�„開発者ã�¯ã€�言語ã�®ãƒ©ãƒ³ã‚¿ã‚¤ãƒ ã�¨ä¾�存関係管ç�†ãƒ„ールã�•ã�ˆã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã�•れã�¦ã�„れã�°ã€�アプリケーションã�®ã‚³ãƒ¼ãƒ‰ãƒ™ãƒ¼ã‚¹ã‚’自分ã�®é–‹ç™ºãƒžã‚·ãƒ³ã�«ãƒ�ェックアウトã�™ã‚‹ã�“ã�¨ã�Œã�§ã��る。開発者ã�¯æ±ºã‚�られã�Ÿ *ビルドコマンド* ã�§ã€�アプリケーションã�®ã‚³ãƒ¼ãƒ‰ã‚’実行ã�™ã‚‹ã�Ÿã‚�ã�«å¿…è¦�ã�ªã�™ã�¹ã�¦ã�®ã‚‚ã�®ã‚’セットアップã�§ã��る。例ã�ˆã�°ã€�Ruby/Bundlerã�®ãƒ“ルドコマンドã�¯`bundle install`ã�§ã�‚りã€�Clojure/[Leiningen](https://github.com/technomancy/leiningen#readme)ã�§ã�¯`lein deps`ã�§ã�‚る。 ã�¾ã�Ÿã€�Twelve-Factor Appã�¯ã€�ã�„ã�‹ã�ªã‚‹ã‚·ã‚¹ãƒ†ãƒ ãƒ„ールã�®æš—黙的ã�ªå­˜åœ¨ã�«ã‚‚ä¾�å­˜ã�—ã�ªã�„。例ã�¨ã�—ã�¦ã€�アプリケーションã�‹ã‚‰ImageMagickã‚„`curl`を使ã�†å ´å�ˆã�Œã�‚る。ã�“れらã�®ãƒ„ールã�¯ã�»ã�¨ã‚“ã�©ã�®ã‚·ã‚¹ãƒ†ãƒ ã�«å­˜åœ¨ã�™ã‚‹ã� ã‚�ã�†ã�Œã€�アプリケーションã�Œå°†æ�¥ã�«æ¸¡ã�£ã�¦å®Ÿè¡Œã�•れ得るã�™ã�¹ã�¦ã�®ã‚·ã‚¹ãƒ†ãƒ ã�«å­˜åœ¨ã�™ã‚‹ã�‹ã�©ã�†ã�‹ã€�ã�‚ã‚‹ã�„ã�¯å°†æ�¥ã�®ã‚·ã‚¹ãƒ†ãƒ ã�§ã�“ã�®ã‚¢ãƒ—リケーションã�¨äº’æ�›æ€§ã�®ã�‚ã‚‹ãƒ�ージョンã�Œè¦‹ã�¤ã�‹ã‚‹ã�‹ã�©ã�†ã�‹ã�«ã�¤ã�„ã�¦ã�¯ä½•ã�®ä¿�証もã�ªã�„。アプリケーションã�Œã‚·ã‚¹ãƒ†ãƒ ãƒ„ールを必è¦�ã�¨ã�™ã‚‹ã�ªã‚‰ã�°ã€�ã��ã�®ãƒ„ールをアプリケーションã�«çµ„ã�¿è¾¼ã‚€ã�¹ã��ã�§ã�‚る。 content/ja/processes.md0000644000175000056700000000677515226251677013733 0ustar0000000000000000## VI. プロセス ### アプリケーションを1ã�¤ã‚‚ã�—ã��ã�¯è¤‡æ•°ã�®ã‚¹ãƒ†ãƒ¼ãƒˆãƒ¬ã‚¹ã�ªãƒ—ロセスã�¨ã�—ã�¦å®Ÿè¡Œã�™ã‚‹ アプリケーションã�¯ã€�実行環境ã�®ä¸­ã�§1ã�¤ã‚‚ã�—ã��ã�¯è¤‡æ•°ã�® *プロセス* ã�¨ã�—ã�¦å®Ÿè¡Œã�•れる。 最もå�˜ç´”ã�ªå ´å�ˆã�§ã�¯ã€�コードã�¯å�˜ä½“ã�®ã‚¹ã‚¯ãƒªãƒ—トã�§ã�‚りã€�実行環境ã�¯è¨€èªžãƒ©ãƒ³ã‚¿ã‚¤ãƒ ã�Œã‚¤ãƒ³ã‚¹ãƒˆãƒ¼ãƒ«ã�•れã�Ÿé–‹ç™ºè€…ã�®ãƒ­ãƒ¼ã‚«ãƒ«ãƒŽãƒ¼ãƒˆPCã�§ã�‚りã€�プロセスã�¯ã‚³ãƒžãƒ³ãƒ‰ãƒ©ã‚¤ãƒ³ã�‹ã‚‰å®Ÿè¡Œã�•れる(例:`python my_script.py`)。対極ã�«ã�‚ã‚‹ã�®ã�¯ã€�[複数ã�®å®Ÿè¡Œãƒ—ロセスã�¨ã�—ã�¦ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹åŒ–ã�•れる多ã��ã�®ãƒ—ロセスタイプ](./concurrency)を使ã�†æ´—ç·´ã�•れã�Ÿã‚¢ãƒ—リケーションã�®æœ¬ç•ªãƒ‡ãƒ—ロイã�§ã�‚る。 **Twelve-Factorã�®ãƒ—ロセスã�¯ã‚¹ãƒ†ãƒ¼ãƒˆãƒ¬ã‚¹ã�‹ã�¤[シェアードナッシング](http://en.wikipedia.org/wiki/Shared_nothing_architecture)** ã�§ã�‚る。永続化ã�™ã‚‹å¿…è¦�ã�®ã�‚ã‚‹ã�™ã�¹ã�¦ã�®ãƒ‡ãƒ¼ã‚¿ã�¯ã€�ステートフルã�ª[ãƒ�ックエンドサービス](./backing-services)(典型的ã�«ã�¯ãƒ‡ãƒ¼ã‚¿ãƒ™ãƒ¼ã‚¹ï¼‰ã�«æ ¼ç´�ã�—ã�ªã�‘れã�°ã�ªã‚‰ã�ªã�„。 プロセスã�®ãƒ¡ãƒ¢ãƒªç©ºé–“やファイルシステムã�¯ã€�短ã�„å�˜ä¸€ã�®ãƒˆãƒ©ãƒ³ã‚¶ã‚¯ã‚·ãƒ§ãƒ³å†…ã�§ã�®ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã�¨ã�—ã�¦åˆ©ç”¨ã�—ã�¦ã‚‚よã�„。例ã�ˆã�°ã€�大ã��ã�ªãƒ•ァイルをダウンロードã�—ã€�ã��ã�®ãƒ•ァイルを処ç�†ã�—ã€�çµ�果をデータベースã�«æ ¼ç´�ã�™ã‚‹ã�¨ã�„ã�†ä¸€é€£ã�®å‡¦ç�†ã�«ã�Šã�„ã�¦ã€�ファイルシステムをキャッシュã�¨ã�—ã�¦åˆ©ç”¨ã�§ã��る。Twelve-Factor Appã�¯ã€�メモリやディスクã�«ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã�•れã�Ÿã‚‚ã�®ã�Œå°†æ�¥ã�®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚„ジョブã�«ã�Šã�„ã�¦åˆ©ç”¨ã�§ã��ã‚‹ã�“ã�¨ã‚’決ã�—ã�¦ä»®å®šã�—ã�ªã�„ -- ã��れã�žã‚Œã�®ãƒ—ロセスタイプã�®ãƒ—ロセスã�Œå¤šã��実行ã�•れã�¦ã�„ã‚‹å ´å�ˆã€�å°†æ�¥ã�®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã‚„ジョブã�Œåˆ¥ã�®ãƒ—ロセスã�§å‡¦ç�†ã�•れるå�¯èƒ½æ€§ã�Œé«˜ã�„。1ã�¤ã�®ãƒ—ロセスã�—ã�‹å®Ÿè¡Œã�•れã�¦ã�„ã�ªã�„å ´å�ˆã�§ã�‚ã�£ã�¦ã‚‚ã€�プロセスã�Œå†�èµ·å‹•ã�™ã‚‹ã�¨ã€�ã�™ã�¹ã�¦ã�®å±€æ‰€çš„ã�ªçŠ¶æ…‹ï¼ˆãƒ¡ãƒ¢ãƒªã‚„ãƒ•ã‚¡ã‚¤ãƒ«ã‚·ã‚¹ãƒ†ãƒ ã�ªã�©ï¼‰ã�Œæ¶ˆã�ˆã�¦ã�—ã�¾ã�†ã�“ã�¨ã�Œã�‚る。プロセスã�®å†�èµ·å‹•ã�®è¦�å› ã�¨ã�—ã�¦ã�¯ã€�コードã�®ãƒ‡ãƒ—ロイã€�設定ã�®å¤‰æ›´ã€�プロセスを別ã�®ç‰©ç�†ä½�ç½®ã�«å†�é…�ç½®ã�™ã‚‹å®Ÿè¡Œç’°å¢ƒã�ªã�©ã�Œã�‚る。 アセットパッケージャー(例:[Jammit](http://documentcloud.github.com/jammit/) ã‚„ [django-compressor](http://django-compressor.readthedocs.org/))ã�¯ã€�コンパイルã�•れã�Ÿã‚¢ã‚»ãƒƒãƒˆã‚’キャッシュã�™ã‚‹ã�Ÿã‚�ã�«ãƒ•ァイルシステムを利用ã�™ã‚‹ã€‚Twelve-Factor Appã�¯ã€�ã�“ã�®ã‚³ãƒ³ãƒ‘イル処ç�†ã‚’実行時ã�«è¡Œã�†ã‚ˆã‚Šã‚‚ã€�[Rails asset pipeline](http://guides.rubyonrails.org/asset_pipeline.html)ã�®ã‚ˆã�†ã�«[ビルドステージ](./build-release-run)ã�§è¡Œã�†ã�»ã�†ã�Œã€�望ã�¾ã�—ã�„ã�¨è€ƒã�ˆã�¦ã�„る。 Webシステムã�®ä¸­ã�«ã�¯ã€�[“スティッキーセッションâ€�](http://en.wikipedia.org/wiki/Load_balancing_%28computing%29#Persistence)ã�«é ¼ã‚‹ã‚‚ã�®ã�Œã�‚ã‚‹ -- ã�“れã�¯ãƒ¦ãƒ¼ã‚¶ãƒ¼ã�®ã‚»ãƒƒã‚·ãƒ§ãƒ³ãƒ‡ãƒ¼ã‚¿ã‚’アプリケーションプロセスã�®ãƒ¡ãƒ¢ãƒªã�«ã‚­ãƒ£ãƒƒã‚·ãƒ¥ã�—ã€�å�Œã�˜è¨ªå•�者ã�‹ã‚‰ã�®å°†æ�¥ã�®ãƒªã‚¯ã‚¨ã‚¹ãƒˆã�Œå�Œã�˜ãƒ—ロセスã�«é€�られるã�“ã�¨ã‚’期待ã�™ã‚‹ã‚‚ã�®ã�§ã�‚る。スティッキーセッションã�¯Twelve-Factorã�«é�•å��ã�—ã�¦ã�Šã‚Šã€�決ã�—ã�¦ä½¿ã�£ã�Ÿã‚Šé ¼ã�£ã�Ÿã‚Šã�—ã�¦ã�¯ã�ªã‚‰ã�ªã�„。セッション状態ã�®ãƒ‡ãƒ¼ã‚¿ã�¯ã€�有効期é™�ã‚’æŒ�ã�¤ãƒ‡ãƒ¼ã‚¿ã‚¹ãƒˆã‚¢ï¼ˆä¾‹ï¼š[Memcached](http://memcached.org/) ã‚„ [Redis](http://redis.io/))ã�«æ ¼ç´�ã�™ã�¹ã��ã�§ã�‚る。 content/ko/codebase.md0000644000175000056700000000417515226251677013501 0ustar0000000000000000## I. 코드베ì�´ìФ ### 버전 관리ë�˜ëŠ” 하나ì�˜ 코드베ì�´ìŠ¤ì™€ 다양한 ë°°í�¬ Twelve-Factor 앱ì�€ í•­ìƒ� [Git](http://git-scm.com/), [Mercurial](https://www.mercurial-scm.org/), [Subversion](http://subversion.apache.org/) ê°™ì�€ 버전 컨트롤 시스템ì�„ 사용하여 변화를 ì¶”ì �하며, 버전 ì¶”ì � ë�°ì�´í„°ë² ì�´ìФì�˜ 사본ì�„ *코드 저장소*, 줄여서 *저장소*ë�¼ê³  부릅니다. *코드베ì�´ìФ*는 단ì�¼ 저장소(Subversion ê°™ì�€ 중앙 집중ì‹� 버전 관리 시스템ì�˜ 경우) ì�¼ìˆ˜ë�„ 있고, 루트 커밋ì�„ 공유하는 여러 저장소(Git ê°™ì�€ ë¶„ì‚° 버전 관리 시스템)ì�¼ìˆ˜ë�„ 있습니다. ![하나ì�˜ 코드베스는 여러 ë°°í�¬ë¡œ 매핑ë�©ë‹ˆë‹¤.](/images/codebase-deploys.png) 코드베ì�´ìŠ¤ì™€ 앱 사ì�´ì—�는 í•­ìƒ� 1대1 관계가 성립ë�©ë‹ˆë‹¤. * 코드베ì�´ìŠ¤ê°€ 여러개 있는 경우, 앱ì�´ 아니ë�¼ ë¶„ì‚° 시스템으로 ë´�야합니다. ë¶„ì‚° 시스템ì�˜ 개별 구성요소가 앱ì�´ ë�˜ë©°, 개별 앱ì�´ Twelve-Factor를 따릅니다. * 여러개 앱ì�´ ë�™ì�¼í•œ 코드를 공유한다면 Twelve-Factor를 위반하는것입니다. ì�´ë¥¼ 해결하려면 공유하는 코드를 ë�¼ì�´ë¸ŒëŸ¬ë¦¬í™” 시키고, 해당 ë�¼ì�´ë¸ŒëŸ¬ë¦¬ë¥¼ [종ì†�성 매니저](./dependencies)로 관리해야합니다. 앱ì�˜ 코드베ì�´ìŠ¤ëŠ” 한개여야 하지만, 앱 ë°°í�¬ëŠ” 여러개가 ë� ìˆ˜ 있습니다. *ë°°í�¬*는 실행중ì�¸ 앱ì�˜ ì�¸ìŠ¤í„´ìŠ¤ë¥¼ 가리킵니다. 보통 ìš´ì˜� 사ì�´íŠ¸ì™€ 여러 스테ì�´ì§• 사ì�´íŠ¸ê°€ 여기ì—� 해당합니다. 모든 개발ìž�는 ìž�ì‹ ì�˜ 로컬 개발 환경ì—� 실행ë�˜ëŠ” 앱ì�„ 가지고 있는ë�°, ì�´ê²ƒ 역시 하나ì�˜ ë°°í�¬ë¡œ ë³¼ 수 있습니다. ë°°í�¬ë§ˆë‹¤ 다른 버전ì�´ 활성화 ë� ìˆ˜ 있지만, 코드베ì�´ìФ ìž�체는 모든 ë°°í�¬ì—� 대해 ë�™ì�¼í•©ë‹ˆë‹¤. 예를 들어, 개발ìž�는 ì•„ì§� 스테ì�´ì§• 환경ì—� ë°°í�¬í•˜ì§€ 않ì�€ 커밋ì�´ 있ì�„ 수 있으며, 스테ì�´ì§• 환경ì—�는 ì•„ì§� ìš´ì˜� 환경ì—� ë°°í�¬ë�˜ì§€ 않ì�€ 커밋ì�´ 있ì�„ 수 있습니다. 하지만 ì�´ 모든 것들ì�´ ê°™ì�€ 코드베ì�´ìŠ¤ë¥¼ 공유하고, ê°™ì�€ 앱ì�˜ 다른 ë°°í�¬ë�¼ê³  í•  수 있습니다.public/images/codebase-deploys.png0000644000175000056700000006147315226251677016006 0ustar0000000000000000‰PNG  IHDR†EèüJÿ pHYs  šœ IDATxí�¸$ÅÕ†‘°¸»/îî Ip×°$X‚ š`?„�ÜÝ=„àîî.»°, ‹, ìâüï;Ûué;w®ÏÌ9çy¾©êòúºúœªj™1úé§1B‚�` ‚�ÄÀXÉn0 Á@0 abÁ@0 ´b C+:â ‚�` CŒ�` ‚�V ü¢ÕQÆsL�Ðì`XÌ&Ÿ�ÀÕ‚›áÃp«.Yû>¢â)³ÊW¦-÷÷¦!”91ùíϸY9‹Pæó½)3òµÊã}2Ú6AíóI—Á·à+®Ýšú`ûí‡òmì}4ºú¾û­Ša€ìIéâÀ¾`ê¢îªˆWɰ+iwï­B.*?ƒ�` : üƒj¶ï *�Âç`x€kýFÜ»¹ÞkéÑÈÍhÓù@y,Qð5Ù�³øŠ 'r*8Š�BqÝ py~UÇÁ@0Pó t¦àÕ7êƒEÁž@ð/×{ZQsØç’¬)¥+�®9v_à xŒs€MÁ @™ œÃ`Y‘‰Äû…�ø ‚�Fd`B:u˜ìÓˆ¬×>UÔ0 Ü—‚˜-3r´Ä7€?�Púßgác�îbüû��³ �ƒKÒ£@!ý8º¨;&°¬Q”ù5n§BþIHÔ˜÷ò�?Þ•¼ræ€6¿bÝ#ÉÿMá¨ãŸÂ „zÌ?>°ÂïÀ—äoáƒã6Bž± 4Ÿ}N+½ðM^ l»’Õç¬Ì2<©Íîñ’o<ÒÚNûl¾´7l½!Á@G <@ä¶YÇyºfûã÷ãæ ÝÏÛ…±vãø?„…Ô3 ™"[“>¦9Ïâß…“?¬¸ß„}Fúc w+i0ÌÚé\†:à,{và€{Œ¿#‡tæu½и¼ n üòÆßFˆ›…@Û¼�oj«¨?ÏîÉ?·E×�¬l³¼y!ªÜ­çâO#O››á„Û¯Á.ÀvNÌ÷2¸™èËÉ÷:þ�` =œ, *éNÁ�Œ¡‹qÏ^S€= »�<޳!̱8+pz\àìS0ˆ´m&S$Ÿ‹¸i�ò)i¼¾§À?3˜ü†>·ÇB™S‘y`™ÊWÀ ¯×d+!­}X ØOåÒ}2Úûó/ÉæÈI«éß ÍПc sÌ9¶oNØ”Qà#Ò½_8*ç…ŽQ ÐFOä�@ö#د³zH³pÕ°˜8ŸžcÉË,gß'‚‰òyõ#“ƒ A©|†�T¬)~¥|„¯^ËŧtÉÕàíX”Gî*&¥±v:λw>o>ÖîY ¿·�<)¿ü ú¥üø5z‡/„”®Ø}‰¸ÅSž¬>yÞ ï ŸÆdå|¾ðWæ:ª'^*ú4ÆTòêÒºjHׇ¬¥óy8V‡ ž^Û–­û8Ì—O¯q’”ÚpþeÁÕ@c’Â-Ï1^JOl—K÷D‰ò5N¦¹xͧ2Uô®xŒ7Ÿ�cWø÷€”v�||Ön•ý[¹4§4„YçŽà^ðHå|Žßrwã¥ôåp;ŽÏÊÅÛž³Á&àwà1�ò&·Å0·šKsþmÀFà_ÀGnÍg¹[¥zñÓ û‚ Àá qdÜ£ Ø ^E˜qâJ°Xl)îcü æê^ŠcŽñ_‚SÁºÀ ÂCÊw/þ–�Œ7ð0^CéjJž¶·��qï€R}áv¬›�ÆÃ¹ÙØp|tÅ0LGº³<^;{%žðÏ Îâ,¯ƒË¤<ºÈy¹´^³䎋˸„¸É‹òo—KßÊ0®¡º<_\^:¾È´Eå ,Á+ðOV¿:aéz}ÿÌYÆÆïö{*»=wÒŒ“/³7þJ†ihR"2eOJ^OÈ›@R,óxÐB,~-ª 3ï [5Õ‡_%™ˆJo?0~.~ŽyÒ †�°qÀõYœu_ ¦ÈåµîmAªûqüå®› ·lòb¹¼Î$Ö#Aª»Å°˜ù5pÿ¶¹û¤¼¿Ê•­"Oá/àÏ+Ûû8ü Œ•Õ5þ—€ùœ™iŒ[f"ø'çƒt^]��™ê ·¹�c¡»†ÁÕé= �Ó¿gãp|ÂnÊ…?ƒßñ<P�—Æ ùgHcÿy •§ëäæ(°(Xœ Ô)Ía)oV÷v¹¸Ã@Ø/€“À”O%n¹K‚ÅÁ¡ ¿*q²š_ÁOÅqÒAƒð/TTﱄ¥>]Ž?]“³ãXï÷à8 n]Ü R¸Û¼³åËì�¿’†aá¬Ñ6\¥9IOJÞ?•½eIÒ¬Åe扻˜F8@Æ6ògð-ðÀJË@Jå–_Öš.•¯Ë\Ã\Ì“òä]ÂÌÒ|‚»~Vo±a8$Ÿ'KãE�Ì—HÓFù’gà¬* 6Û·vÊ‹ßþ&\•ìf-ƒ5¥M.q‚¯€y…Á™âu‘Y€}ô@#2S>>üÍk Ý2 Ùxº%KŽ'ïÓáVèIy«ðæÌ�+ŽÇÿ&®Þ ×nþZòš/ÞÞ‹°+A*ÿIü-.üÛ�TnÞ0¨üGeq#q[Mà²voDxº~œXý²¨Ý*üTöf)Ž0u×ÝYœùwÉÅixRž/ñO—‹S7] ö �‚¾Kñ½qmP¥äG ¶CÎ •¤Ö»'²™úeUFƒ‹ �„ï¹9ã Û.‹3�Ë0À` ¼KÚ!£½­~]¶zâÇm:ÆÓp<]æ Z•z–.Jc?'ÊÂ&Åõ$ݘç�GòúiË(Ê{ïöYœÊ¾•�æ'ÒÌL`0°? €AjÞ–§•ô¿œÁLœ­¸uæÌë>Êz ÷UŠõ¢È‹eN�Lˆ»iÓùKéäT( ùis>Œ ºÀ€z"IÒGë൦œÇ8u· E8þšaùwÖÉ‹{5pò˜óÝœ ¯OžEØšÀkUåê8:’-ˆLºá¿øo*‘ø„ݶöeKðHr ËQV¡7Ð�W0+PÞ·|£\%Ø/ëÖ A>ûú"yßÀÝ”]Ò‰({Á¨’ý¨ÈT$ó‚÷A»B‡W!r p/ÐZ;CW¦í~}Ò@e_J$5‰õ¦ÁåHb»Jɇ–*×}âÉYúé¥2çÂì«J¼”|R*�°�rá“çü>‰0'Ç‚å€x"ÐqûÈ|'€ÔÿÅð eek |Ê�®h@’,€çâtÐŽk[ä$$è)IÙšdVˆÛ>I¶dœ.Ÿrn~Ü-Ix? ÍËŒí¡ù€ÌïjØ™¹×…å8yêLlCš$ÝM¹_g ÌIÞ�„o•Å-[”æAŽ�ÀoÁá`Xxm+�PÎÀ‚oôÏÛ8×�-�ºe0¼J]ïà>n$Ïk¸e“¤ðÊV`® Ïñ«œTÐÖ³&¸ ”:©ÞH€î½` |=Ú)ü¦™.¨Å«EMâ ù);ø6â¶×gËM'>—¼°ï—Ž-ï‹vÒ¥4¹i6^œ&ß§–¾ÂÉL$¼,‘epöàÀz¼h€é@+a ØÖ³)ãQÜíÀºÀÁç¤Áœ¬–$ÍÖ$¿ž'ëjψ ôŽÆÝÄ”0YVŠãuhæOÏ�E•tœˆ©4‹Å1ÜFë_Rw~ØžNÈçµ­I†'O 7—ú–’w3Øx-ÎK;>Ƶ�¶ÁkÿÐ"´ui# ?PxýjLÉ �ñQßspÿAzõS¯¥+„ô¨ø1�½“Ìe Ž/#üÙчm~W!d£,tJÜ|:­¦GÅ=#åxC´E�–dáäÁMy ú¤üS´“NÒä´ù‰VAj¸’u�¿#ù±�Èù¸Dܬ¹°Á9ÿñ;g÷÷õ�pàS^™2×Y_Û3‚– ”d€1ê _%çÊUy…¿�7‹_ˆãkrñ…'¡8ܘ ÿº ð$®]ÞOÛ‚yAËyJí·²×T­òËX8¤1wK©vïî·àj�® 'p{§ôø·©œ§ñžéOñ¹¤=/—×ÉäÎÅé û°Nëðš*¥Á¿]n\þ©¤µ8Nך“§5Sžä¶2ø˜W´¼¤–Kó ¯ÈâÝn¿(ó›¾ø)&u“úáU`Ý®ZékÂ4©>ËëñÓŸù²[U’�(—Ÿ†Ži¤N”rí¼J§åƒÔ¯�”O4/•u we òr ÙÒ?Ž]¶¹\Mé¼ák^IÿhtS|Þ0LGø�¹8 ™my¼Rý®lS{�«: ,ßÙÑóà�ìØ0ëÞ·¨Íæ "µéCüæ{hDR¾_¸wö°°O)μöWX †ßY�+ü ƒ� Å[�õÙWû,ïÆÙ. G—/ÚTG¸?�ËF₱�7 Ž=ÇLŽ=gÑyåéXºL˜¸À?)x ¤1èªw=0%0nQp"¸ìæÏå=�ã”O÷c°?˜Löꈔæ(ü-ºÿv¹¸¼aPIÿ/7ÿÎ@Ý`¹æ{¤rïÁ?ijWÞ%|O0¨ïÒ¤Xž¦,JçðL�ÊTÙþÀÄÀ•F~òxÇ…Ii¾œžø[gO2w5�uV½!xعÔÑäJÒÛàP˜�–*›¸yÀå@¥žò&÷ ž›—Êkb˜ž�”Ow،ʅ¯š/‡pÖ…`((Îo^‰ßƒü ;_ÏĹrIƒ!Å©´÷MùR½«àC@J›\öàÿrq×à/¼æ�kÞ@C•7.)¿aO�R3ÜÝ Ô¹2ÿ'@£°ˆCn’Î]3ºŒ…¼aHã¬3W¥?W1_„­Þ)¿“.Ǭø&î5{2H×Üy¹8Ç©ËpbjÞüäïzŽ[^Vµ Èv ÕÙb²¸y‰S‡¥xõ€ºKäË}œã…‹û”މ³'¤©Ý¿‚_¤4É%¬?¸¤´©ÎbÔ!-“Ù”¿§nÁRR`U„½²q©H˯âq»ãÀ÷2pé9·S¡œUI$fý€†Â“ñÊP™µ+ä�…H´FÆ“©¡¸Œ|ÞàqPi‰•à ³]­„4Ë`Ýsƒ €Γ¢’u�ð3Ü‚�v|<–i?•½�³•-À2ÀüƒÁMä»·¤PÎRDlfc‚Aà.òÜAÜìø5г£ƒ‹Ú0aë‚…À4À�õ x\CÚÏqÛå:[YØÎ€Çß÷€‡õ{±†3NÚÛ�‰ãèm Qø+ãÈë·�PÞ² Žã¼8³ ·¤N¦ ¯+÷ä½Þ¶×�Ü.ǿ׎ò>0îPòyí¶ùwâà¬,Àw}æk‰ÄC¼× J\=ൗ®m¼…¯ ¯Á�´'”sqre›¼Ž¼wy7n!íl¼g©x ;¯àNþ» (‡TÕ0”£ÁQF0 Ô&(0×´îGâF'&o¢È†v�¶E™NH3�‰ �£ËpBi­Œ éó†Á‰ÚÚ„iT“W~¹ôÜ6BZ•ý²Y„ïLÝÚ&¤SYÏ ,s,àëmÒ¿†Û©�_c¥�<4 òA�Ô¬``�#�y^&oÁ0â/‹ä­]Y ŒB‚�` 9@9=FÏEÙ„2�M»º=’Lá–TðÅ’ömÂD‡BºwH º-(øñÈ´Ð((©V®ZôC�® DÅ% CÅ)Ž ‚�` (¬2–€WL«eœx¯à(}WS5#ajæTDC‚�` Á¸“þMVÔGïuÜPÖç‡aúüD‚�` Œ ø€K’ñ“§F\ï­$Ãà6”7ÎObµà½‚š’¸ù\S§# ½a€ý{o~O“•1<Û—ïM‘eËKÛ¼‰>1ðiHoV¤}ßâÖœ„a¨¹S ‚�` oð‘§�` ‚�` …�0 -T„'‚�`@Â0Ä8‚�` hÅ@†VtÄA0 Á@†Á@0 ­ÃЊŽ8‚�` Ãc ‚�` aZÑÁ@0 ab Á@0 ´b C+:â ‚�` CŒ�` ‚�V Ä×U[ÑÁ@0�g€¿9yÌÿ•d>:üuÌðóc~%¥jÑc€MH ü˼ôÙÙ’ ŠÀ¦cà{zü ƒôݦëy w˜ëÕ[,œ@þB‡�½ÿçÿÍûçA­¤*†�Af#v§·ª=‚�Ñ Ü�³N­~‚¸O—ì<ôûn0C3ö¿‰ú¼%×ÝÅý­Ö=ëYµ¸ò82VÁõOßCj‡�éiʵӜhI…XºT¹Õ¼Ç�ÿOÓ�ḭR а¦`Àm ÿ]k¶¬·n'…Ô^¯éšõ‰ï#€«ÿ�úeÀ-B·ôûg]Hç8;íTÓ0ä+>�ƒ£AÉF冿aX„ž=Ù°½k¬Žù—”û�·«[MÙ› èõ™ G½ï+àAøž½­0 ��Žc»Ý'"¸ÛõÜ5.׸^ëùÚv®;un§TëC½óí‚�` iÃÐ4§:: Á@×ÃÐ5ž"U0 MÃ@†¦9ÕÑÑ` ºÆ@†®ñ©‚�` hÂ04Í©ŽŽÁ@0Ð5Â0t�§H Á@Ó0†¡iNut4‚�®1†¡k.™ÿVîf!¿$½i\¦£kû6n÷¢gÁ@ã2ÐÛ­¤© F„Å Ì^ÇÁ@0P ôv+É­ ´ôþÇÀK ·åRDH1�Æ€ÛŠKe펯§ÖÑ Œ¦yÊ©À¿¥àKÀùÀ}æ�æa †ýér2 ÍÓûèi0Ð` ”Ó0H�ÿ± �iB¸ç«„&<ïÑåÆc ·÷�‘èQ0 MÎ@†&Ñý` ŠÃPÌHÁ@0Ðä „ahòÝ‚�` ˜�rß|..?Žƒ�` èsx0bB±uÖ�[xHfp¹EÙ PÖÊüÌ29^gnða—ãÖ�ÄŠ¡îNY48zÀÀää93ÃB=Èß& `l0€ˆ[Á¹»ã·®Srauå�C]�®hl0Pÿ  LýZ‚“Ò‘Àc'¾ ó93l��u«›¦Ð� ó 7Mo>Óùˆ¼yÓû4Ê0~<ð ø$ùžü¾k5u`^ÓX¯éS{>¶Ì,­a~ÈG²Mÿ=îÒà4àwâ¦$Ý”„‚ÿÏàÿ@«G÷‰›0ËØOË)´‹¸É8î¾%l8Ç2ÓYƈ”U$V U¡9* ‚�Oâÿ\ Î�7À1(D·|ߢ7�8 €¥I3%îßÀËÀø§ÀÞ„«t ‚ <·ãŸ[ƒ$*c M*µ�»yn{Æ¢ Ånà�,ü=Üc Ÿ÷A0>P\5<_ð�1Æ¡¸�‚ë²c Žm6ü�ÚtáÅ-'Ãï&lgÜ׳ãGpw L#Q5 ÃP5ª£¢` (b`uŽg*Pì~`” ³ùüì{Žo—�¯Á1à@à,ÿR ’?øæ½JxNœóÀ²à± ávG¬_ý¸)8XæÕà~`;×€$7á¹0;0ߨ  _i�ÆåoÀ<†Ùf½ý8¤¨¿‹fùš×À¼àX07¨šÞ‹Ú~ oþ–E½(/²Á@ó0ð]ݘm’�qÝ’Qœ�»�’×%ÿ6 øá €`8Ø�°mp5ê¢ÝP²óàjHfoƒ-H³îÑ ;by3ƒ}€zòXÊÙ w] !svŸ760a¥dmûHðǬÍÂ? ì~¾Êû`Òl‹»3�·ÞfU“_”ª r]’iÍ'yÅŸOnƒ]yËú%yí`ÉrMR· 8z<Ê u€‡Ô)\£Ðt•ÍjàVÎç}Ô•—©{XV·3ä½ÁüÀ@^ïÜÍq’åñôŽÅ;²À›q“S€9@š]¿Cù9Vn/øºö“ôÛBYrÛ7åyã÷xÕsÖ•D]ÙžØæ �<ÿ/K¤;L ~ ¾ÊûÔñàhoფ¶c,PU�Ú^egÐ�-²Æuæ¸ìSƶƒ! É€ë\g0xónCv¶‘:Å9›†þÌ TRÎ`W§�+@_IR†ÖÿeÖuÒØ™?9®’$üCðÛ,ð \gøŠÛ6Bñq’¯’§W%œ$ß AA¨·Ð8MA�¹©Í~K®ÐÜ/ÉŸÚg|ºžR˜ejúDÚ3 š.÷º¨å=ÍWTLÖ žÛ¥Àù åB©ÁvF“`ÅÓg°8Xü¤k~0~·hÜÎè+™4W±»ŠJ>o0 ˧ÆxôoÚï¬{:àž½ŠTSxŸwÒŒEÃ5Œí‰y“¸ZIâ= ǹ†¦%?ezà#�—¤ØóaÉÿqæéGÞ©hÏǸ–çÊÇ|ö©?¨Iƒ¤¸AÉúî �¡ oI iúÓÕ™³î†á¯áóŽÂY˜æ­ œÜÍ Üî(¾ÎU¾G¡ ÞÂíKY‘öj°ž»f ¹WEêVW’¼ÒuÛh;0#Ø�üÿ‡»p{ìMð,p¬n|²éפ¹×mª$Žagæ*ä©ÁÚ¤¹W#º-PÔwCÀ]à·`OÒ<Ž;¸¼I&!~8ͱç¶Ñ 1øéÇý#˜h o+€š‘âSªaÿ&P"B!”b§9¼¼øBjˆŒ[.ÎfÝS߸"˜¨Tó³`[‰Êõ‚V!}s`ÛÏΜUæ#Ài(×QYß8,H^÷ÜGÈé`_pØh$†ƒÉûy¯Æ¯ñX¨»44Ž$*}WJW�]ÁN@cª±˜ (ãƒ�À¿À²`=ð�×)ÁÙàSð˜ \.I¯šVyœ ¼ŽöÛ€é�m°Í¯ÑæÔ¾”—¨‚¤ãªNÌS¥©¥\_ÂHK¡RñÖà 0h¿jð.ÖM÷8ãÒX·Næ¿kgºI áíP{0×´Û$}-7ЀÀöàEpíºWqÌ=Uð�¾±\ðïËi‡fqÛâjPg�{€7ˆG�fK¼�¥Ákàð@Q§ù⚆Eåÿ`}—ƒ‘`ð%pêÒitwóƒOÀ¹àzâ¼íÌ_c0!PÑ+oÛ>ÄÒý@ºcð> ìkð$8Ü ”W�ò¼äA&?à>œh„ª&]1 UµTUëyTÔÆìNâH[P.ni¬V ô –ŸÈs Šj`òV"‹7�U袕þ K¶ ̈ûïuJ%Q¿OÄE‘­Ê#�Êö¯òI/Ë�î~ŽE!NÅž”{!ž°#ðˆ!Lîÿ›¡% ëq¥SÖ�…UŽ ‚+o.ûç,Sçjº¿Où�d!Á@Ÿ1P Ã0&½©÷÷#ìCH0Pv0 ÓRè‘à÷ ýù_ ÇaÞÇ ú”�üÀ,WC®¥ '@½�ÂÛå"#Ê …eðûƲ÷á’¸uôwpF!>C�X ·O(»a`p£G"$`ƒàu¶=8øžB’'ñìÇ5s_ 7¨Ên:êÈ„ÄÏ–¥iô}|WùèwÄIÄ56ÙÖÑnôò �ž:²Ó—ï'ÔËê´Ñ¯WÏI3ˆoÌwz.«jh�ß~¹¬ØÏúx#Šá�\üžŒ�&c€s¿]>8š>øÂÚw)°Æ]·…ýˆÉqëu‹¸Æ)®Jó4€ñ:«­Ú†a|4Sg�j xŸ8qåÒD  @]øÄ‘OåŸ:òhÃÅ(t:k#]­ˆ/ÝÝ â?škåŒô¼ê# |’’ú©Ú†¡Ùfù­ƒt"Âm`0 3нôÂZºè\\Ü:ú·Ķ'ý06~Ÿ¦ i<JNPÒ‰¯Vw? ¢ëªUY Ôóm(I| ´-šPf0 ËQä‘à×¹¢5>‰ä_lÖÓû=ƒió+`Ò˜ 86ï/Õµª.ŒçhÄÆ¥aÁ@½2€Ap‹t?àg-òOÝËñŸ÷OàÖ•Ðæ·è×&4z“›º:{]j¬»7Ã8Ïþ `©ªa°v›Û+6ªV›Kèï ,nCDHÇ 0žg$…+‚uAºžÜ‹? Ã8ú·.…¶¿IÃEH“1�rUºÍE4 浺¬—¶�î!Á@» 0žW&Ò±²D.Ñ�,ìŸ1¹È±Þºb ª†fü°Þª`±géÚo_4¯À øÈß6àh�ß:z„co0ß� Ô-Õ6 U«+…üIŒm¤<áoa£0;'ƒß¶Ž1Æ×øOÿÀ(ø‰‹�` ®¨¶að¾ÂHðe�³V//Õ8��Ó< ‚÷ž~þ Ìõl(þ=Á�…79bÂ[¿ TÛ0| U>ÊçÍçZ–¸ÀkùìT¹mØ„I©r'àý±‰rÕ?ˆ_ Âã¹°†ñÒo·É¼/è„.¤±ðœeìºÚm#U5 4ÂÆÄ$Ûœ†¨UPŽ3Ò¶À–¹6~…ÿð†ô'¹ð†ñÒï¹éŒ[f>([« sf[:âä÷&ÎóáŒáQ-¡™§ª†¡¸òü1 œ�ã5@ Â<1mý®¶ÜŠ»—ú~Ûè)ŒÉM(ËUB~ëh Ç{Âý͸�,^‹k6r£ocì—ÿ[¼•ÔŒa U¾aé ¼X¶¶:EmÜëvaÚÐÓû ‚/¬ù�#_X›,Wâ}ø÷Â(´¹�riÅëg0’xMúnFHc00N®%?¨WK†Á¶xA†tÎÀ„$©¥s×y‹ë$F¡?Mu e VF€óÀ…Ï hÉOО¤¿y…Ò4\Ý�ñ£Žçï›)ùó<:„ßZR.µÔ–‚jÔã ÐüŒ®F›Y_ÍÂ(¬N‹�KçZ>ÿþ„+raÍæýŒþûŽFH�3ÀŸŽ.tºú«%eü0 ö¥¡�ÎðfÑ3�'‹]a€‹Åí"·Žvçò\‡ÿp”⋹°fô¦•S3ö½ÑúÜ¥'BkÆ0pñ½Ë¸´ÑÎBô§¶À(ÌA ýÖÑZ )Àoðü¬…�X‡MÅ@Í.P÷ÍÓ¾W½œ÷ç>Ey¨HBêˆÆ›3§µ��¢Î—kú{øÝO÷…µxB.GLx›‡�š1 P¾8ÔËÅèìÒ·¸U"÷ƒ�:a Û:Ú‰æüîQ’;ñŠAx4„ 4#µd¦äÌUg'Á—õò{ÒuÖüæk.FÁwþ VËõ~8þcÁé…/ráá š’�Z2 %›ªñ³R/«›§±:ÍÃ(lHMÇ�¹s5Ä¿¸£P�c0וðåa – ƒ/m¹„¯'eëwFò“å^µQ Á{W¾å¹HïÊhn7{ðnH0 d ÔŒaàâ¼–6‰�` l `úSØ)à· ÉgxÎG2î¾L�áÁÀhjÆ0Ä ÊÍFaÊü3˜'W¶«ƒ?aîÉ……7r TÕ0p¡ú ßÀ¼ «_Y�´þʸ!Á@§ dãìpîsInÂs cé•n0 ´e ª†�êûŸïî_{^Ož0 �Ò1o,ŸVé…5·‹þ.0 ~2;$:` Ú†¡ƒ¦tO‹tHODb4냣À9FâwëÈÕBH0 t��j¼ÏŒû¬xWÿûÙ6Æ›Å�Rš�lëèÄòï•ÜÆñQ…KçŒÐ` (Å@µ ƒŸ,ööë ]},ulÒ¾ B‚�6 `V$ðHàÖQ·ŽŽgaâ…µÄJ¸Á@¨ªaà"õs¯¯w±m‘,h— ‚cw#ð/à§„“8‰ð+©·3Þb 2±n0Ð Ên¸`ý#ˆY€)뎸G<Œkù�îdŠ´ÍÇ@6Æö¦ç>ŠêŠRÑüÌŠÖd$$è!e7 ´c=à+ý8YW·‹HZ¸À/ÄÝÙƒ�` …E ?l�‹w‹ò p FaD.<¼Á@0Ð*aÆ¡…q{Ðg J2€QØ–ˆãA~ëÈǘà ܋ÛÐBÿ§ ƒãÓ×÷º£Ñ¹>g »Û=]i°Kúî¬òeš7$hÅ qàg-|?!oîæØæ#Ä�ú�_·%Qæ§SwÓ½�Ù€“°�` ì TbÅð­<¸b莢×H= B‚�b¼�°˜0áäcpðÛGn'}”¹¢4},úÃìØ§”|Óþëœë#І}à ܇"êA¦¡‘³�?‚­ÁåôóÜéÃW¸!Á@Y(»a`€>HËDH0P.f¢ âí'Sfè¬'(Žd@†á×pö)ʵàâ×€x�Bâc®º†�ÊŽG2¾¿ÃßWb“è÷sáÛƒËèø�Ð>ÛÚ”nµ�CÊEeÎNY+'WRvWß¿*Wú¤œ²†>éETÚè ,O7ÌuÒ™¾Û(]Ý22Ýdp:ËwîªÂéÓ@xü5ŠBÅ«±Ð°hhÒÊDCâ E÷c0%ò)n9ej +Þþuµpñ4í»÷"ê¶]M#ô{U:{8\TÆŽ[î9Yy×ã6…á ÃPÆEUŒ�k(yW°D®•ý@ 2Py;ƒžøæóŒ@C "uéC *ÔR°œb1½èŠ8ƒÔ�8£L®«ŠïQV�ˆ[\ÃÀ'@c¡«QyÍ\Ó¹=fyé>�Ç?¢äuû’Ï-ä~&ÀïÌv)°+uŸ�{9ø8—ŸÃúúã¹ØùùŽ~i°Ç nRœsÁl`âìXÃü~'ãϳù¾%ØóÒ"¤ñ…[ËWé˵Çf�{xx^œXž\â9¶lÇŠùFhº‚g¸ñ?þÇŽÍB=;VjVÂ0Ô쩉†%¸ˆ>ç¢:‚ãë€fRÚ³â_ìKšIãÅ_ ‚ ur\�ÇTôk<¦Í\÷ï'Þ³|ÝT—~QêzQQ©°º**'E7W$*¢2WáF·4 ƒÁ¼ 3±�¦; ìÎ%¿†õõZWF´±¤Ð~ÿ>ÀUÑ@ƒpá~ñNüw�‚rJ†©ˆW)ÿX¨”�@ÜN¸Îô&®çyp8p2q1ž '¿�¯È3 yo—�Ä.¸{�%€çM®O$Ý—¸óp|X|Ìñ!¸GËÜœ jVJ ôšml4¬©ðâ¿l‘cA#°¸� oW.ÈÇñ'Å›KV˜�«h;ÊÑXL4 ºÉ L‘ùUR†9kÔ�hT:*ää&CP±ÍJrGý¼Õ5K è¥kù3•Þnàbúv5îãðäì¶žd_{(ø\úƒ5Á²ôi1Ü›À‚@Eÿ(x+óŸ…»Ðxh\5˜W[áüœ4îw�þ``9N ã<׉3güÆ �ïày`;TþC(û*\Wl«€÷ÀãÀ¸€çÅ2jZÂ0Ôô鉯%Pf#¹àœý­¦Ká™»8îµÄïM:gÇ=ò«@Ä»�B}*g¥ Cr“ÁÐM†DC£ß•ŠÇ>hH\©èVRœ¥îv>Ú{îµôµ^öË×¥½Êû`Oð%X Ƚ[JGÒ§?âŸü“ã+96ΙþÁàmà¬Þ4Š¡?°,Ï¡évžŸ Aªo»ò1¾?s6uÍŒÿ0X¸ú[|v#ÍͤÙÿ™À‰DÍK†š?EÑÀÎÌn;faÎâ„ãx&pàT\ˆÎÖ*.Ôó-•ˆ�UF»l£³Ð ‰aº†©”&ikKWE'4&�¹�i{*–¿6XìA›þŽ{ýø·–åY·(X< ɸý�qëL\qvï ·zþ‡×m¡M�ÆQíh LgyŠßÕr}Fž;p»bäì&`]ï‘ï3ýˆçg~à¹5ìv ˜öD†A6B‚�r1àÅËøoÊ[ ¨$]’{ñ9;tv®=‰4ßស]ìxû^h‹ŠDti–Nì›Ê.Áí+g¥*�žÊp2¯€{ÁY»ðÖ´¸fÿ—³fØ÷qxÚ”>¼�ËáϱFÀúVÀÕß Àþ§Iƒ’¡p†Ÿä‹äéÄý‰ø|>� ŒcQñ¦³e0®.D«VVᄸœÒ»7WËò'ííZn`´­-œ³çc.ý�^Ü^�÷�e�³k�„ÆÃ§SN!}­Ï†ij[¡Ý­”}™”T®.º+îq¿^wƒû)[ãP7B{UìÀÁ|¸Îþ—k‚åÀòàj�$)h ÉY '\CþµR"Ü€“ W¦Mâ–_oÄ1©PơΉ©[cc=e×·VR ©DCCCO®DcË\¦û‹§”¹Ì(®: ¨øg+/d±8Ì\®»lŸƒ ó .Ì/ñ×»x_Â-�ÎDCø¸<ÞoÁÁ7¸u)œÃ?ÓðÅÀ«ôãHŽ]->œ|ªàW‰JÚªQA»êRf&Ïd¸<ÈD>î[€ˆ¿w°=è�xŽî·ÿ~þ ö÷º�D\9ë ª‡A˜R9ûeU�”ƒÛ1G�4«v‹Á‹n;ð"PÛ»�Ó¹è'6 Îŧ«¡bQ1~ ®»¹Ø ü žn/ƒz¸ir»ò.1›ƒ#8—nƒÝ\== ŠáŠi.Âý\grx ü¤IÂôøÏƒU�å\ Š9ÖÀ(i]|<:öç’ xhh4GÑžpWi¼â­mI�-g+�±ŒiIWβËU–'·.·ÊE@”ó }8ì˜õÅƒÛ [�ËÀ‚@ã° ðE§?£ ‡â¯W™‚†»jpÜjƒ‡Á™ë ]ßâoD¹’N}þÎÆOôy®²?8ô*dÓ&_K‚÷Á�`f`9«‘÷`Æ…Æâo`p:PyŸ ¾!N=1htÔiÊçÀc�m^Ñ¿Éñøà]ÏY·ÅoºõÁÛà0à¹Ò iÌkZ~Q�Ö¹ŒõT¢ìr5wl z´\…E9Õg€‹Ï§NN¡fgÇ*ÌÁ‘à÷À‹Ò‹|Y x< é÷ Ÿ µÅ™î àyp/ýÐ(4…ÐW'™÷d(Ùg’/ W‘År2cal° ÓíÉ_00„š%vœŒMøÍ¸¢ »­„ðÍSe,…&ð áGNØÌ8�‰÷6jZÊ®¼!â%z,B‚�J3àý|𧬢Mqïd ^Ê…¸1þ“€†Cqææ^³ï:Ü_©¯Ÿ[i÷MõÕäšn­“ LJ ü Æ…†Å°_å ðCÁ×ýŸuÈâ Aƒp;Î0°˜ ¼ Üjªi)»a謷ålÝ%Z�‹ÝÙPH€:_=…¬>¡2/˜üž°›‰ó ÔÝ9vé¿P~¶`+âUu#´·Q·‰úê8.6{ƒµÀV@y¨Ô/�óž^›œ/Á–`5 ÎûxÈÏx|„[ÓRUÃÀ9%l\«iVªÓ8÷,W¯V§ºÆ¬…‹ÌoÞœJïþ|¹he ¡¸Š8¿Qó§,üw¸Þs˜ø?»þ�&d€sï–ÎŒƒíqÇŽ å{âTâ=ò§\ŸŠs;SëDØú¾&Î{5/U5 °!A“‚Ékž™Ê7Ч*œI„ôž�s(Â-£�ø\˜îÃFáwÅà ѧ”4s€‹×8´ìÒd dŠºìÊšr5®êR’•¬fãCŽf[bK­ #�‹ðkŠ9¸ SÜ2r‹  Ä�g_°ð)eàÜì_8ŠŸ` ha Ú+†ï¨ù~à›k³ŠaèÕ’µYÉk§ß�î�hï+(Þk¸£ð¢¸~SÇŠrîÖ“ï6ˆ¿î¹8#3 xC‚�æf Ú†at\©ôôÆN=ž±´2H®}°ÿÎtCÊÀ@¦øO£¨_ƒ¹ÁÔà”þ6Iá㺼¿˜0ÏÃñ`Zàþ²ûÁS|ƒ9ì˸» î‡áoŽýFþ`NÞ´V¼1?á;_xá©?Á@“1PU÷.Û×ó7Ï>�p&ÃPá�B÷›ú®\9ø¦ébÀÇW5­„´Ï’ö÷^–È"ׯ=•ð?ÿ^N0ÐT Tû©$W e4¬ΘûÖͲBª…Óq�x(kÈØ¸¡èg,Õ0”¿/4ù¨ë½¹ø ð_Bž¹raá š†�j¯¼ù÷! šIQúV¼¹ Õ”ý÷(õ¿R×/�«W¨‡‚6Bú·I>µ´^–`%Ü«@üsYX8Á@S0PmÃà–Š7ùÜûý¡)ý®‚+†Ø–¨î ”ê.;gÕî„’÷3¯•jáoZß…Ø"K³(®oIoFü‹YX8Á@Ã3PUÃÀÅå¬Ù 6$¨(ŒµïPè'PÉr`!ࣩǶ1q%ß¡!üCâO:ŸXÚ¸ 5¸…ðŸºã ž�ª.®~0º$˜ ¸­R}|JjJðÉêW]õߢFoDŸì÷jÀ-#ïA”xÉ8õé$·ÿ~ºdfà#®»áú ¦»Ò¸ TÕ0@ã$à_@ãÒw ÜJÕ>}Ó—Rñ{.(pÿ ç::é‘�¯Nv#ìz¢|º¤çÖß‘¤® Ò÷½ÎÆ?5áþALÈiLªýTRc²½*Å@Ëv ŠÔ?E÷å±iÀLÀ'„æ.•©Üa(pß_8|—•í¤d]Úà ¢3ñ‡ýÀˆ,áD¸ÿv&{µ'UY *Ï@_ ³òLÖW î�WZ–Gy^K%ζݎ¸•è×M}"ÍíÄj‰†a °°ïG�‡Á@Ю`Tlç9ôÃm¥S€[J>åôO0/á“$}¸� �` 1¨¶’þ ÚŽÓƒfy*©ÖFŠ3å�Uh”JTô¹ ¼½­1ð;Jn'Ív~·«S!ÿMä÷íõóÀœ@C·ðûJÞ”þH0Ð0 TÕ0p�‚¹Ë†½èHwpk)Á|ßgäNþ ÒVÞŠˆï"xÚ­!å(õ«“]º OºHïc¬®>®<¶?Ô7H0Ð ”Ý0p‘X¦3*ï_tç%6g²þ{’Æ#¤þBîδ½Ñû9pfíªQQ‘j(¼Ñû0ç½¢7£)ß—Þ΢® ÁÀ!$lkâ4R� éžÒ�ð °`–á·¸§¾ñö9$¨{Ên`ä—à/ÀæuW!Ã>ÝÍék’�‡P”*ÑZ’7iÌÀÇU�ˆ¬ ¶Œ. }z #°‰}ºný,Ó–¸Þsð-éç³°Frº3Ák¤~7b_œŒu*•0 SSëŠÀ›�Ý•¸‘×]Æj7}Í=ñ†ÒöñÕ› Ìí£¥@?àÑ7å æ. i‘gŸ ¶™ÅÀ„ûeVol7’ÌJ¿þH‡ªñÐB#ñVk}ÑÀû0H§º¹†¡ÖȈö-  ´G äTè®|ÂhI°ag×å™1I?%�7°ÝÓÕÎ.%Üm%ŸÈªgÉöyèÈI@Rÿ äÏcþ<·ô¬†áSJ ¸‡Ûå �´6ðe Tš�˨`sà–�âløðŽ]”ÿÒ{¡í ¼žú?Ûý ñ7ã¯W)¾×WR�Ôkç¢Ý- ”|ѳ†ÁÏo HÝ5 Þˆ *Ê ûG÷�Tâý°ÉÁàÂ|ô´[o4“þkòíEþ—€�bû8ì´À¿ý+ñδëQ4j§�™@·8©ÇÎ6i›o§ß¯•ê{Ù ‚Ox +UY„µÂãԛȧӞƒ³6y£ü"Ðíû”å{g�×Y¶†À}ÜÉÀÑ„O„{ i|,·n„ö¾OÛýfÔ ;¼ºéc³7”süY{”Ý0´WQ„5ÈÀ™´Éí¤…�3ýÃP†ësÁ8¹é–�ÇYõùä÷b;ÌÆ‡ƒi ÷¾C]­ˆ³öÖU›á:¤ ľaHŒ"ê“ß»´Ü~z„oü¾´Öc¡Ìȼ%’â“<»ƒ£0ξC‚�šg CÍŸ¢h`…ðé!ï‹)®öF�ÏX8êáÆá~²úŽÄ3¹"Ü–ñ‰¥éraá j’�0 5yZ¢QÕb%îSÞdý<«s^Ü 3�Ê}šÌÞ·ð¥Í$à9ã0w 7¨EÂ0ÔâY©ß6ÕëMÊk Ü'4¯‰}PÞˆ^ ÆÁǯÝVº>WÐÚø}bi®\Xxƒ�šb CM�ŽºhŒß³juC%7® õãÔEŠI¼q|ø4‹š w�Ìß+‡²QÀ.À7®“,�Ç•ƒoK‡5Ç@ÙŸJb°û\x`Ùõ8ƒ´ÝorAŒÒ–¿ t Á>«ï¹žL<׳ƒºÎ÷óôë8ï»Êï9¾‰ð´’Úƒ_ÊFYÛ‘õ0°wV„7º¯'|oâó+Š,ºïÚöZñk0fß·&ZPf<§#ÀqŒ¿WŠË.»a ‚e€פ  ƒ«¨ýÁ• ¤-žßeAgc§•Éeôk3àg2Æ£ïãÂéöã«äm%”1œ²!ð+ «Ì ü2ëÄÄ_T©‘Ú¤‘?ô¯‘&E3*À÷ØÚ¬Ž;»¸{ÒÉ› LÔ“Ì5’ÇpHiÚÛ.ràK\n˸ÕägQêJPξÔu�Ö@ø˜©pgðoÐk¡ü‘” '·ß¦'þ#ñ—à¯ñ½x¼¶VÎFåÚ1m©¢+a¼ ðõ,®BJ3ð9ÁÁp0¸åö!ø8þ¨ø| ´Å­£‡ÀJÀq¼ Jûr”vY¶)Gãé·”ÆÇ=8�ru}&aúÏ$M-¬´mCjÇ(üwÏs=®ivHÆ€ºÍñÙ±¹6R Ãð*µ¸•äl# ¬6×p€†íÙn__7MŹºkH_7¤õÓ/·|Ž£ì…€÷P¼€v"ìïÄiüÊ"”õwÊ|�ÂÎÓ¯—ÓÀ\„N¼¶VÄÉÀ!´)®‹Z9#½hãëX²'ÃP²¤J†©éÐÞÌ¢Ö�…íþ¾$[(îI~ÔàThüþ~—õs\Ÿ*z);.‹ƒ¢½‰‹Ôû§‚9€co/0áûï ¬Ävi¸BêœÆ•[Áý:ëFÙ ƒYÅßôŠ•0fÆEgç Þâ]Š:nösÞ~àôM×Ó€€oDïJ\ÙV ”9åÝF¹Ûà½Ì äw'ð-á‡ÿþ�` ª ”Ý0tÔzºئ@‹Uë+‡ŽºÒ•8º;æ»$ôçKîãu¥�HÓ7 pÎ^çüý“Ú�ÉZàêárpWv\6‡º¥®èÊa1à ÝUÊ4„»rxH0P5ªjèÕlÀ§1ÜÇoy„Nz6 C}ží³hö`àüXõš(ê²Ïâ)óÊÞ�:¼>6Š�Îö'üOd/æ' IDAT�BHüU`Àek5Eùu5+ì㺾íãú£ú^0€2þ„ì®Ò¶Ùøß‹";ÌJ}ƒHàJáâ\Â¥ñûÄÒ¹°ðe Ú+Õóæe£o#¥“62y­[n§å÷�Õ€)߈¾%þþ² å¥ü=)ØÊæÀm%�Âå„ïH¼«Ð�` ¢ TÛ0¼No¼Ñæ otãàíŒScR§  ˆG¡�O¦ù>ûíûó‚Í ;‰¸Šœ[Êýœòw¦ÇÏnÀ±4?¸–ðÄk¬B‚�Š1PUÃÀ€NOÊ~ó®bìDÁÁ 0n}¬ô¿x·ÊQiß |4»"B�_Pç>îSP»'S¾ïpá»=þ’B¼OR�Cš÷K&ˆÀ` ªj°.Å]O*2Ûꤿ]‰›DopQ êJâHÓ4 HOW3‚¹À_ÏÎÞ{ý%Ê*)”í#«‡WÁßÁD@ãpán7]HšV+oÂ})ï"ð~ÿN´VÞ… I!õÂ@U ¤ôG‚•@«Íq­ˆËvÛèMÇ�Ñ Ô깪ÚùAÁ¾‡¢=‘ ÿ‘Uêc×Þ$¾%;®ˆ£â§Þ³(Ü Ë_Á”@qŠ~âþM’oñ��<œ�5�Ÿ±¸Ü B‚�n1PmàÒ�LÖ­VV?±ß±iXÉÈ„tзY5Ö *¡òñ\%Y4yšÜu&¾X¨¨ƒK¿¾ZÑY¹Æ�ºü ë0\',3ÏßñÀwŽÀUNÞÃSÃ{÷Ù5!Á@—¨¶a°aãv¹u}—°/x){oQ ài�{Î*û©3¿Še:à¶„†ZxcU·3q;°)û œºj¸8Ž}mgp¨¸PÿÕÔ?’Š4sÏÅþ@#彈AÞ oÄñ™à t™�j+@ïéàVP«/}y±ÕÝ r†çÒ'g €Y�Ê_ƒ &å�!âylV¹™Žß ~ \ií ÷7¢´ßÆ_q¡žÿRß@*º , 4û‚RbÜ‘¤¿Ÿ|»Rªâ«oªjœß3H/�2l­î[×rÛ £ }BÅëB`° ð1Ê)€Àí ÎÄ›ÿ¾¸åyÐHçáç•ó†ûã,Ýë¸gskõÁšWY¡ï_ÃÿiÔ²p%ÖlAرÄUeLSÍKÔ÷;ê=¬³íÉDl Îk/A„Å TÕ0XyvñTå*îl�k²m(•¾[?‹€_�•ÀìÀm„öľŒ_ä0ÿ»à=0|†g†ë~y1éØ?“I~’5§@Á-œ�ëèý€JywàvÍ *Bž£ çS™ª£{b®jüO‰ëÉã¹ :e ê†¡ÓE‚¸˜'äÀ•€[ë€ÕÀ¤ =Q©«ð €3ü7Á[Åð nHy8�b<'3ïÙ¸¥´» «¸P—ƒ#@GF!µÃñ³ðfuH0Ð)a:¥¨ú ¸èÝ"Ú,æSƒRâ¾ñ£^Â}h†  šù>TVà÷mÎÓ_©å¬¬¦mpÿ ®ÌŽ+æP¯7½¯® »"ã‘h[ò]D»�0„2†¡CzªÉEëDkŒþŒ X¾%Àí€ûÀ]à!ðø¬Z3Uê ù™�kñº¿2pKé Îãmœ ·æ*"”?/Ÿ ºjR;æÇ³.8;„ ´Ç@†ö˜©B8¹7‘g¿{‚Y@ñ9q{hx¸¯}?†úX8Ÿrÿ�f,ÜË_xÿÊ.Ùx9„‚éAác‘Ç÷þC»cÕЛ)K±j¦¾÷i_¹@Ý#^l Ü£.–×xÜþs1=5s¬¡¾hÜÇ8·7q¾žÃ_V¡Ìï(ûp }8û_¸MÔUñ^ÃÀ÷ B‚�vÃÐ.5å�à¢v…° Ø ¬ŠoúòÒõÀ½êGQïà†Ô0œ£¯8¯ÞˆvûÏí�ÙÁÁ„ýޏoð—U(Ó Ž£üSq}Uƒ´˜tEö#ïµ”ó^WGšædÀåeH…àBüp†ç}�3€O³$£ðþ��[+‚ݸh/a £NÄUÕÀs©¤Ùüè£ ü2>¾÷Rô_€“Œ}€+‰ïAG2#‘ê(A5ã¸.NOƒ «U/u�žÕyNµêìM=´uzp=x ¸eYq ÃPAŠ9‰€U¨âš *þI€âlòUpp¶y0úÓÀ÷BêˆÎÙ�4WÞŒ¹Fß™¹�WT¨û;à£È'QѲ`Càªó#ОlBÛ܆ªñ©;ÇÿüUlÌ>øY>"üõÉçÑ^sKÉO¾(�KÁuTChƒ*øÉŽ›iË/q7+ï-äeVv"Íäù!Qi?uÎL ܳ m·µZé�®?q>�åäUÃ÷aΖW“�W {ׯÊj\¼ñîÛé3á_¨ãæj*Iª+¹…pòx¯Ï<WñÏ�Ïí]ëXÇIÝ 0 È©‚çHó>n‹�vBS¯o?dø á–»Pž³Ë|™ø·p[ éw&`?0WáS‰ÕäÛÈ­@Íï—ŽÒVñqÜ>ðõkpp@%“ë½gt“‡ísX¯Üp^Užãt¾]NÓ—ý¡þéÀúà �“*¬EÚkqÎâ‡û¢»|{i»NK�—@âçü*Z�Iåàß¼–…7ì TòwÃ| £ —ð_•…=†;.X<—…™VÅ}h.ýíYœ_ÆMe8#ÏçùšãÀ¦AR;‡à× (ž åÊ™žãë�Ïx��ís O¤|Ïæü¦üy—x Ð;à¼,­» ãæÓt×OþqÀ‰Yy¶Å¿©m£ßc+ fÊ!X÷9�³Å‹�35·Éw yÃy'ÁO ÇÒ` p^¿¢K^tŸg]sËB…ÖgB›†‚iÀ>`ep pâ7øcv<ÜŠ õLA%{ƒù�³÷µÀMÀD‹�ΙøßÀìà°/p&X\ ¾óZ&˜¿[B^gÆM Ž–s$ØL $í¸m„p·kNæ± 'w^³ëƒÃ€’Îé4øM³.x, | xB06þ�Àà^ð›ÌÝw7Ð$± àoÁ-)°È5|#pGQxå4m¬µÆŠ¡/ípå Þ Î¯³ã&/•7ÂÚŽ½zç„síŒìï �gš¿¬•~Ñ•—[Ûƒ»ÁÜ¥ÚFøb l+†¬¼a¸ò²©u"§§�…îÙ±Jw! q}; ;×Ð;àK qY|,»?ø#øxìS[s�g€uœ•ÕÛjÅ@¸Êßø·ÀÒŸ“¹3¿³øçsázÝÖñ^Îø�…{Ý�S€;‰HܼøÝ ±.•y^\­”gýÊÇ”ádNy¸ ¤ñr{HÞ?7óåhïOe®ñ‚o�Bùw†Â?†»Í•Ä-µ…z¾ÎŒÙa D†aè© ¾ ɶX©(»3‡SÀ5œTg!MÈçþÆÈ9tý@à5¶pfëLµf„v~CcD5ÄYrw’|¸aI'¹káL>¯r¬\6rš”çyøWDŠ«·¡òù?0¢)nKJj)®£¶›>Å‹ÿur2<çOÆ%T;Þtj§E5Ü.ö…ižû`Ê\S� ^Náb{6Þæeà_tÝY­[!�?2~|iÑí€f”/è´ÊÚëÆYýëð1qvŒÓ"ƒ2ŸŠóRørÖ^,÷`º%À�ÀrïÊàÑNaöîí«ì¸#'Mâ&§M³’DzêGÛá¶T28Ó’Æ­$Ã=·Š[nÖãŠÁúg>‰t#n‹�o¦–ƒÎß7É%­¾7Y·ê×\G5rBgÎî[‚dœm=6»3Â(@DHa›äcx8¤™æÚø×obnT¶wfý÷ÍðÅñï tóòäÎmŸCH·:x| ö0!×™Jø:àö�ÆÅ<Þ PnÁôàò¬ žþ-ë_+%W¨rŸØ6'€‡åaðèç² ðÿ-–ÄÝßäÀüŸ‚€âÍî¥Áß�[f¦™¤S?�Üæí~8 EÓ>®Jß§À@�øHîs„ízu3¨ÿÖvLÖ#'Œ ÷ïÝ>JcæüSÕC_hçb@egÛuËñ¸êr”óvV¦å:Sÿ<;~!ñ± ÷½,Ütn]¦È¥Y1¿~ ×Evùz\Ñû„ÏôY¼7�MøTʇÿ÷àÍ,ܸ€+“å²jÐßö~~ÐîMßge ß�û:}p£pAŸf¢/Ë‚}ÀrEýú‚c—ºÿ¦Ï7ÅÅa0Ðe?~çÇ=ò?W k€UÀ] ¤>pÒø.xº>šÛ»V¶g¼!4CVôܸ‚À} pŸð?üä>\Ý }X˜F/6¿*Ñ�àeàrúøM‰ø ºË€+QŸJšLvgº?íöBH�3ÀyòætÓH{†a8¬ÆŠ3�U2¸½2ˆ�í~Ümàˆó‰‹šÚ: �óÂô†²«„døð¶ˆ{�g€;èϨ–Ðð½d€ñäÍÇC)æJ0Øl Î!Á@M1PÒ00ˆ`?GK§ë�-ÁÀg†5Þé÷‰±&‘‰ð»<~¸ãÿ€[u¡=ãQ©O,¶® ¦ÎÖòb;ïÿ>¾6"þ` Œ ÜBY7¯)ÅgÝýЖ§cFÇo0з ”4 6)S�*I;wà€^ ¸7¯ÑP¼)3ugâû—ÇîÏûxÚã¸ïƒáàSÊM/¢pX>¡�Õ”`* 1Xh lk±ø¤Õ›@CvmÒ *Êãl$ãôX*YL ú¯—}AH0P3 ´kò-d@ÿÈñ#"SÀËá_øœð‚`6�gê*e¡h(TľÁø*î`ði†Op½§1|£K}mVäs¥âlß­-�€–F@øÞÁ<À¶hŠWÄzžwÿ÷¶¦·¿ -ŽŸFcÀ•ø™àÏÀ1½Cû*Æ¢©�` &è’aÈ·”ü%ÇÞœ½#SÖsâŸ,\Uh0¦yÑP,’!nY*kݯÁ·º”ûî÷ÀÕH^܇‰Ád™§]ÑØÜ \Æ?|²Êí£�` ê 0ö|éíT*ÞxÝL#ÌOQ;9 úœ�n†|‹Ènɼ!ط㪬�Éû$ÓòÀ•…« gøýÀ8`,�ÄpQ.Ѱˆaàað?àLì#š÷ "¤ï`,z#úBZr8ðzø5X 8� úœ�^†|ë3#¡òï�»ü.•5ÎŒ\1Ì›¹Ó㺊W¦³=cƒöDC¤âw0 ¸Ò·…ž® ^ßgm Ô>ì°!pâä„É—ÞüÏ·XC‚�>e l†¡T/2ŬWi‹á"ðFñ ÀûúÝÒP¸âð�‹÷&’h4:Ã��« лԓOGPH0PÛ 0f?ã8�V^œ@­Öçƒ�` O¨¨aè¨g\Ÿ/^è(]Ä ÌÀ•ôm°eÖÇ£0wsm jà>G×ê€�ü~47š 4Ÿ¾;¸ª¸‚öÝW!Á@Ÿ1†¡Ï¨�Šƒ�Ïòëý†$ãq[)$è3Â0ôõQq0Px‘ÔUÃÅ``ÆÇÔ¸{²hð‘ì�` OÃÐ'´G¥ÁÀÏ °¥ôG§ÔPÖk|ñ ôaú€ô¨2(ÁÀ„ùV´â‹�dÕ0má(~‚�*3†¡Ê„GuÁ@)X5|Aøß€ïé(+ƒ- ¾ø ªÌ@†*Õ0àg[nÊÅûÒ[ÿÜqxƒ�ª0†¡*4G%Á@ç °jðc•G‚�Yê™qÿšùà ªÆ@†ªQ]bÀϹœžK¹«†Z¸íÓS!õÏ€çÑ H‡Ògo>wتˆ š”W ߈Þøm±ÉÁ~„ÝE\ºÿ@PUÅï—ÍL>Â�—ïªJ}Ù+Sç;¦:”0 Ò‘Á@õÀ B _HÍn#ùͰ_‚߀@_È”Tê7œü~†¾8å­Ó�–v(a:¤'"ƒ�>càj^¬||õ/ ¿¾:5$¿å 1ð+È!�Ç@IC÷ïDG�€ €Ÿ“?¤—Þ–Ä¿-Æ¡ä…\�.û?+÷÷£�É�[ƒ¾ußFÆd¶ Œ€` è{°îíŸvÈZã׈—åšõor+.Ôïg9fng…¢¨8ãU­ÀEÁ‡`ã©Í¹ ÃPÕs•Ýcå¼9îé-è ðïPêb&<$( ±•T£�` b ¼JÉGåJßÿ¦¹ãðeg CÙ)�ƒ�ò1ÀÊÀ›À×€³RÝÞÙ�•ÄÄÙq8Á@ÙÃPvJ£À` ¼ `†Râ9໬äq×Îüáeg CÙ)�ƒ�Š0p.¥>”•ìu»7«†™*RSÚô ÄÍç¦A@½0€!X†¶Þ Ò;Çâ?4Ûn*{7¨o íÚ<µRöÊ¢Àj3àäâeÆÎ»¥*ÃPŠ• j””õ©4m·¬yŸá®ÂÅý|¹›K=óSæÀUIHh0ñ}_–ÜŒñóvqßÂ03ÇÁ@ 3€Âž“æÝ fÌšyîVå^5P�O>YvHc3°cçúâ.Æ'1Љã` ¶x‹æ�NÎú~Öm.nÂz#¾\—ä{<¾ ÷$#õëzýöUÒýùóÜÒ«Ùž` ¨]˜ÝýÄlþjZø0/ð~Þ„ÝA”ŸÑ¨„ ¦ÐAè‹J°[½2Ýœ8±˜µ£jãDwÄNÄ5È`†à_4Í \ðØ\*!_Pç]•(8ʬ.Œ›I¨ñ°Îj�¥ag E|0P› œO³Ìšæ·Œö࢟­BMuË*¤1ðK½�žÏ0 �q²£MÆ3x¿ºz ‘u})Ü™?œ` W „aè}‘9è;0P»÷’ìΪÁÇLC‚�^1†¡WôEæ` Ïø-x=k…O›�qèt« Ï[ ¨iÂ0Ôô鉯3Àªa)þÒKh¿Â¿Y©\Ø‹~`ÂRq äÃ�g#üÁ@}2àA?“5ݯ¯î‹hõõUŽ}´Õï-í�¥ 'h—�0 íRÁ@}0ÀªÁ—ÏÎ_g-^×—ÞÆÀ Ìþ„÷F° X „2ï1tHODuÀ†a5°!ðñÕ1·–òÆ@£ tÈ@†é‰È` >`Õ0 Cp4­]LÌ€ÓJ¦ ÝL¤Ü*4‚�±•”##¼Á@�3ðí·“>¸š˜¯“4Ýä „ahòݯXL ö¥'w‚E:éQ?âã]‡NHjöèØJjöý¯[0ãÑø`'°8芸bX¨+ #Mó2†¡yÏ}ô¼þØ‘.ø/néݺÚ#ÿ™-$h—�ØJj—šˆjž?¤w øª›-õô ÝÌÉ›ˆ�0 Mt²£«�ÅOiû�ϻѻÉH;W7ÒGÒ&c C“�ðènc1€qPΠW~ã•.öNÃÛI]$«“…ahƳ}n80·Ó©-ÀÃ]蜟͘» é"I“2†¡IO|t»ñÀ8¨#0ÿE¡lB“ý3ŸrMw©Ï mX,|‹»âJÉúÚ[IU£ ÖÁùò¿4.k?¥> ,~CÜœÓçðWTÂ0T”Þ(<è{P$O P¶¤%ç•M’9 “øôïo)¼b.ÕMOáów+^*>åÛÑNá?$¦Äï÷œ4ïÓ¼—�#¯ßyZ LÞ$ü \ÃgñLßëxœð¯ sEä#¹ê¸÷{Wùa´ós}“Þ2�‘ë~^&ÏpÜ‚¯QUaŸ?Dø#x…tCq[„´;ë Œ7½uØŸUõ#*÷Y€e¾NšA¸I–ų�£ÍÁà6à'Ó÷Û�Ê rO2Ähð1€&™¾ƒ3Áø¥®·ÈÒ˜î…RiºF9~ÏéÙ\¹úßÉŽ±m5Ÿegø®.Tt×�)�ÊY#t<0ïàÒjTþ-B˜[jG‚5Àã`pXxÿcZ\åËÑÎ*í[Àf` XìNº qÍûgð>P©k°Ü¶Ú‡xÛi»“ÌŒG#µ Ð(µýt•t%¸üH^ëœ3KàŠ¥â†¡âGÁ@í0€¢ù†Öœ ¶nc¨°ª!³RÉšYE¥΀Uàn©(¶Ë­œe3ÿŸw‚ç�«…­�r3páÌW¥¼˜| ®€…ÁÇÀ2®n#M6ß‚¼,ÁÁJ@£síú/î_€ùm‹Š;/®JŽ&ÝÕ¸e= ¢ßüØÆûÀ%@1Þþ§m,ÃΤŒ³ÁµàJ FÁÐÞ`> aÑØT\ìDH0 4(¢Ÿèîu(•¤+‡jÈ$T2MV‘Û/n]~J†âuñ#˜¨•GF;-¿*{ó¼Až'ñªä—¶ßUÂÝĽEœ«'¼S�@^ä ¢®Âž|TúÊÓ`8° Û–gó#²WÊL`R`ùÊ� üؾÉ�-‰¯+âŠgß,áu¸×w%SoÓ„aè-ƒ‘?¨SPpÎl«%cæ*Ò$I~�•+Eƒål?¿íãöL’kñhœÑ�^“¹ý2÷ ÜKA¾Þg9'‹ONÚ5±…Õ¼¸­e{”âô)Ü8gðI¬'Õ}/þ×RDæÁÍëÛ/‹âÛÒW?gáîOÛòœ´ÉS®€|CËUf” Á@1*êOÁ`àìÞ}y�´ñ*>·\B Ã-%ÿ!ð]°"P¡;ÛO3éÁøëÛ›2’á(Rç.ÏÏ?áUÁ�Ï’fN܉€e¿ò2-ñPîHçÎ",ÃúÞÓƒ‰ÿ'n+!ß,¹€¼QÉ�ö’vi|'WP�o»ºªŠ$kY•Ê¢’` hZTä÷d½?Åçžùv`ñ,ÌÙöË@E¬’>Ü4àv0OXAP�*á€Ê{à}�O€rx̼ἠx¼v'¬xëìi¬w‚,ý¸ü[à:�W)(Ëm£ý²ˆÛp­3§�‰_ì¬÷`¹…I–§]‡´rq8˜h,Ïß®Qšå’ã1Åà Æ@Œ�Vcͳø)C¹Wu†¯Må¾�_%ïñóê"dP!§4ºO€yòºŠãU@J³QQÜžÄåëù�ã»�ûü»ó}•òàwËæ…,<•ù:ÇçÒ¼˜Å[´¦[ÒtÈTà* ñI卨wÉâUô)|ÍTv±KšÕséRúäúÎC«sÕ�cÊõ¦}ê‹e–|\5¶’`&$*Ï ìf¼ÛQÓzÀ=ygØ gÐH¨ð. �3øß‚i�+�K „›o"ŸÜjiu£š´ÿ¦Ûð¶ÉIDATŒç _8ÃV‘_Bøg„¿„ÿ\0„ðWÁoTÞnÙ¸ô4n±<@€3øM€ÛT>Uô$®mÿ˜r¶Ç»-pEñ#¸¸ºQ¾֭دöDcyPqKGùŠÓöøØ·{œ92Á@c2€‚sÅpyÖ»Ñ 5fO»Ö+øp–í=ß/�›ºúáŠAce_”MéÏ5£½?ÿŽõ³7|Á@0 í0྿Rü”ÒèÐû�­¤;¡Ñ�` ¨Þçø¸Õð†¡áOqt0zËÛ-[÷¶ŒzÊ[Iõt¶¢­Á@0 T��0 U 9ª‚�` žÃPOg+Ú Á@ÃP’£Š` ê‰�0 õt¶¢­Á@0 T��0 U 9ª‚�` žÃPOg+Ú Á@ÃP’£Š` ê‰�0 õt¶¢­Á@0 T��0 U 9ª‚�` žÃPOg+Ú Á@ÃP’£Š` ê‰�0 õt¶¢­Á@0 T��0 U 9ª‚�` žÃPOg+Ú Á@ÃP’£Š` ê‰�0 õt¶¢­Á@0 T��0 U 9ª‚�` Fø©+툿öì K‘&Æ ê—þžT£Ð¥s†¡~Ïs´<¨Saö¦²qªUaÔS~8‡†‰ÀT�•†¡3†">hNò3Ëé àÍICÃ÷ºäí„’� OEt0:càS|ßY¢ˆ¯{†–êA¬J±aÁ@0ðœV *–�èÙã¥z7æèû¥¢",‚�` ˆ­¤f<ëÑç` :` CäDT0 ÍÈ@†f<ëÑç` :` CäDT0 ÍÈÀÿXîúãòeäIEND®B`‚content/en/background.md0000644000175000056700000000270215226251677014036 0ustar0000000000000000Background ========== The contributors to this document have been directly involved in the development and deployment of hundreds of apps, and indirectly witnessed the development, operation, and scaling of hundreds of thousands of apps via our work on the Heroku platform. This document synthesizes all of our experience and observations on a wide variety of software-as-a-service apps in the wild. It is a triangulation on ideal practices for app development, paying particular attention to the dynamics of the organic growth of an app over time, the dynamics of collaboration between developers working on the app's codebase, and avoiding the cost of software erosion. Our motivation is to raise awareness of some systemic problems we've seen in modern application development, to provide a shared vocabulary for discussing those problems, and to offer a set of broad conceptual solutions to those problems with accompanying terminology. The format is inspired by Martin Fowler's books *Patterns of Enterprise Application Architecture* and *Refactoring*. content/en/port-binding.md0000644000175000056700000000357115226251677014320 0ustar0000000000000000## VII. Port binding ### Export services via port binding Web apps are sometimes executed inside a webserver container. For example, PHP apps might run as a module inside [Apache HTTPD](http://httpd.apache.org/), or Java apps might run inside [Tomcat](http://tomcat.apache.org/). **The twelve-factor app is completely self-contained** and does not rely on runtime injection of a webserver into the execution environment to create a web-facing service. The web app **exports HTTP as a service by binding to a port**, and listening to requests coming in on that port. In a local development environment, the developer visits a service URL like `http://localhost:5000/` to access the service exported by their app. In deployment, a routing layer handles routing requests from a public-facing hostname to the port-bound web processes. This is typically implemented by using [dependency declaration](./dependencies) to add a webserver library to the app, such as [Tornado](http://www.tornadoweb.org/) for Python, [Thin](http://code.macournoyer.com/thin/) for Ruby, or [Jetty](http://www.eclipse.org/jetty/) for Java and other JVM-based languages. This happens entirely in *user space*, that is, within the app's code. The contract with the execution environment is binding to a port to serve requests. HTTP is not the only service that can be exported by port binding. Nearly any kind of server software can be run via a process binding to a port and awaiting incoming requests. Examples include [ejabberd](http://www.ejabberd.im/) (speaking [XMPP](http://xmpp.org/)), and [Redis](http://redis.io/) (speaking the [Redis protocol](http://redis.io/topics/protocol)). Note also that the port-binding approach means that one app can become the [backing service](./backing-services) for another app, by providing the URL to the backing app as a resource handle in the [config](./config) for the consuming app. content/ja/build-release-run.md0000644000175000056700000000700715226251677015231 0ustar0000000000000000## V. ビルドã€�リリースã€�実行 ### ビルドã€�リリースã€�実行ã�®3ã�¤ã�®ã‚¹ãƒ†ãƒ¼ã‚¸ã‚’厳密ã�«åˆ†é›¢ã�™ã‚‹ [コードベース](./codebase)ã�¯3ã�¤ã�®ã‚¹ãƒ†ãƒ¼ã‚¸ã‚’経ã�¦ã€�(開発環境ã�§ã�¯ã�ªã�„)デプロイã�¸ã�¨å¤‰æ�›ã�•れる。 * *ビルドステージ* ã�¯ã€�コードリãƒ�ジトリを *ビルド* ã�¨å‘¼ã�°ã‚Œã‚‹å®Ÿè¡Œå�¯èƒ½ã�ªå¡Šã�¸ã�¨å¤‰ã�ˆã‚‹å¤‰æ�›ã�§ã�‚る。デプロイプロセスã�§æŒ‡å®šã�—ã�Ÿã‚³ãƒŸãƒƒãƒˆã�®ã‚³ãƒ¼ãƒ‰ã�§æŒ‡å®šã�•れã�Ÿãƒ�ージョンを使ã�£ã�¦ã€�ビルドステージã�¯[ä¾�存関係](./dependencies)ã‚’å�–å¾—ã�—ã�¦ãƒ­ãƒ¼ã‚«ãƒ«ç’°å¢ƒã�«é…�ç½®ã�—ã€�ãƒ�イナリやアセットファイルをコンパイルã�™ã‚‹ã€‚ * *リリースステージ* ã�¯ã€�ビルドステージã�§ç”Ÿæˆ�ã�•れã�Ÿãƒ“ルドをå�—ã�‘å�–りã€�ã��れをデプロイã�®ç�¾åœ¨ã�®[設定](./config)ã�¨çµ�å�ˆã�™ã‚‹ã€‚出æ�¥ä¸Šã�Œã‚‹ *リリース* ã�«ã�¯ãƒ“ルドã�¨è¨­å®šã�®ä¸¡æ–¹ã�Œå�«ã�¾ã‚Œã€�実行環境ã�®ä¸­ã�§ã�™ã��ã�«ã�§ã‚‚実行ã�§ã��るよã�†æº–å‚™ã�Œæ•´ã�†ã€‚ * *実行ステージ* (ランタイムã�¨ã‚‚呼ã�°ã‚Œã‚‹ï¼‰ã�¯ã€�é�¸æŠžã�•れã�Ÿãƒªãƒªãƒ¼ã‚¹ã�«å¯¾ã�—ã�¦ã€�アプリケーションã�®ã�„ã��ã�¤ã�‹ã�®[プロセス](./processes)ã‚’èµ·å‹•ã�™ã‚‹ã�“ã�¨ã�§ã€�アプリケーションを実行環境ã�®ä¸­ã�§å®Ÿè¡Œã�™ã‚‹ã€‚ ![コードã�Œãƒ“ルドã�«ã�ªã‚Šã€�ビルドã�¨è¨­å®šã�Œçµ�å�ˆã�•れã�¦ãƒªãƒªãƒ¼ã‚¹ã�Œä½œã‚‰ã‚Œã‚‹ã€‚](/images/release.png) **Twelve-Factor Appã�¯ã€�ビルドã€�リリースã€�実行ã�®3ã�¤ã�®ã‚¹ãƒ†ãƒ¼ã‚¸ã‚’厳密ã�«åˆ†é›¢ã�™ã‚‹ã€‚** 例ã�ˆã�°ã€�実行ステージã�«ã�‚るコードを変更ã�—ã�¦ã‚‚ã��ã�®å¤‰æ›´ã‚’ビルドステージã�«ä¼�ã�ˆã‚‹æ–¹æ³•ã�Œã�ªã�„ã�Ÿã‚�ã€�コードを実行中ã�«å¤‰æ›´ã�™ã‚‹ã�“ã�¨ã�¯ã�‚り得ã�ªã�„。 デプロイツールã�¯é€šå¸¸ã€�リリース管ç�†ãƒ„ールをæ��ä¾›ã�™ã‚‹ã€‚中ã�§ã‚‚注目ã�™ã�¹ã��ã�¯ã€�以å‰�ã�®ãƒªãƒªãƒ¼ã‚¹ã�«ãƒ­ãƒ¼ãƒ«ãƒ�ックã�™ã‚‹æ©Ÿèƒ½ã�§ã�‚る。例ã�ˆã�°ãƒ‡ãƒ—ロイツールã�®[Capistrano](https://github.com/capistrano/capistrano/wiki)ã�¯ã€�リリースを`releases`ã�¨ã�„ã�†å��å‰�ã�®ã‚µãƒ–ディレクトリã�«æ ¼ç´�ã�—ã€�ç�¾åœ¨ã�®ãƒªãƒªãƒ¼ã‚¹ã�¯ç�¾åœ¨ã�®ãƒªãƒªãƒ¼ã‚¹ã�®ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã�¸ã�®ã‚·ãƒ³ãƒœãƒªãƒƒã‚¯ãƒªãƒ³ã‚¯ã�¨ã�ªã‚‹ã€‚Capistranoã�®`rollback`コマンドを使ã�†ã�¨ã€�ç°¡å�˜ã�‹ã�¤å�³åº§ã�«ä»¥å‰�ã�®ãƒªãƒªãƒ¼ã‚¹ã�«ãƒ­ãƒ¼ãƒ«ãƒ�ックã�§ã��る。 ã�™ã�¹ã�¦ã�®ãƒªãƒªãƒ¼ã‚¹ã�¯å¸¸ã�«ä¸€æ„�ã�®ãƒªãƒªãƒ¼ã‚¹IDã‚’æŒ�ã�¤ã�¹ã��ã�§ã�‚る。リリースIDã�®ä¾‹ã�¨ã�—ã�¦ã�¯ã€�リリースã�®ã‚¿ã‚¤ãƒ ã‚¹ã‚¿ãƒ³ãƒ—(例:`2011-04-06-20:32:17`)や連番(例:`v100`)ã�Œã�‚る。リリースã�¯è¿½è¨˜å°‚用ã�®å�°å¸³ã�§ã�‚りã€�一度作られã�Ÿãƒªãƒªãƒ¼ã‚¹ã�¯å¤‰æ›´ã�™ã‚‹ã�“ã�¨ã�Œã�§ã��ã�ªã�„。変更ã�™ã‚‹å ´å�ˆã�¯æ–°ã�—ã�„リリースを作らã�ªã�‘れã�°ã�ªã‚‰ã�ªã�„。 ビルドステージã�¯ã€�æ–°ã�—ã�„コードã�Œãƒ‡ãƒ—ロイã�•れるã�¨ã��ã�«å¿…ã�šã‚¢ãƒ—リケーションã�®é–‹ç™ºè€…ã�«ã‚ˆã�£ã�¦é–‹å§‹ã�•れる。一方実行ステージã�¯ã€�サーãƒ�ーã�®å†�起動時やã€�クラッシュã�—ã�Ÿãƒ—ロセスã�Œãƒ—ロセスマãƒ�ージャーã�«ã‚ˆã�£ã�¦å†�èµ·å‹•ã�•れã�Ÿæ™‚ã�«è‡ªå‹•ã�§é–‹å§‹ã�•れる。ã�“ã�®ã�Ÿã‚�ã€�実行ステージã�¯ã�§ã��ã‚‹ã� ã�‘å�¯å¤‰éƒ¨åˆ†ã‚’æŒ�ã�Ÿã�ªã�„よã�†ã�«ã�™ã‚‹ã�¹ã��ã�§ã�‚る。ã�ªã�œã�ªã‚‰ã€�アプリケーションã�®å®Ÿè¡Œã‚’妨ã�’るよã�†ã�ªå•�題ã�Œèµ·ã��ã‚‹ã�¨ã€�開発者ã�Œå¾…機ã�—ã�¦ã�„ã�ªã�„真夜中ã�«ã‚¢ãƒ—リケーションã�Œå£Šã‚Œã‚‹çµ�æžœã�«ã�ªã‚‹ã�Ÿã‚�ã�§ã�‚る。ビルドステージã�¯ã‚‚ã�£ã�¨è¤‡é›‘ã�§ã‚‚æ§‹ã‚�ã�ªã�„。ã�ªã�œã�ªã‚‰ã€�ビルドステージã�®ã‚¨ãƒ©ãƒ¼ã�¯å¸¸ã�«ãƒ‡ãƒ—ロイを実行ã�—ã�¦ã�„る開発者ã�®ç›®ã�®å‰�ã�§ç™ºç”Ÿã�™ã‚‹ã�Ÿã‚�ã�§ã�‚る。 content/ko/admin-processes.md0000644000175000056700000000521315226251677015022 0ustar0000000000000000## XII. Admin 프로세스 ### admin/maintenance 작업ì�„ ì�¼íšŒì„± 프로세스로 실행 [프로세스 í�¬ë©”ì�´ì…˜](./concurrency)ì�€ 애플리케ì�´ì…˜ì�˜ ì�¼ë°˜ì �ì�¸ 기능들(예: Web requestì�˜ 처리)ì�„ 처리하기 위한 프로세스들ì�˜ ì§‘í•© 입니다. ì�´ì™€ëŠ” 별ë�„로, 개발ìž�들ì�€ 종종 ì�¼íšŒì„± 관리나 유지 보수 작업ì�´ 필요합니다. ê·¸ 예는 아래와 같습니다. * ë�°ì�´í„°ë² ì�´ìФ 마ì�´ê·¸ë ˆì�´ì…˜ì�„ 실행합니다. (예: Djangoì—�서 `manage.py migrate`, Railì—�서 `rake db:migrate`) * ìž„ì�˜ì�˜ 코드를 실행하거나 ë�¼ì�´ë¸Œ ë�°ì�´í„°ë² ì�´ìФì—�서 앱ì�˜ 모ë�¸ì�„ 조사하기 위해 콘솔([REPL](http://en.wikipedia.org/wiki/Read-eval-print_loop) Shell로ë�„ 알려져 있는)ì�„ 실행합니다. 대부분ì�˜ 언어ì—�서는 ì�¸í„°í”„리터를 아무런 ì�¸ìž� ì—†ì�´ 실행하거나(예: python, perl) 별ë�„ì�˜ 명령어로 실행(예: rubyì�˜ irb, railsì�˜ rails console)í•  수 있는 REPL를 제공합니다. * 애플리케ì�´ì…˜ 저장소ì—� 커밋ë�œ ì�¼íšŒì„± 스í�¬ë¦½íЏì�˜ 실행 (예: php scripts/fix_bad_records.php) ì�¼íšŒì„± admin 프로세스는 애플리케ì�´ì…˜ì�˜ ì�¼ë°˜ì �ì�¸ [오래 실행ë�˜ëŠ” 프로세스](./processes)들과 ë�™ì�¼í•œ 환경ì—�서 실행ë�˜ì–´ì•¼ 합니다. ì�¼íšŒì„± admin 프로세스들ì�€ 릴리즈를 기반으로 실행ë�˜ë©°, 해당 릴리즈를 기반으로 ë�Œì•„가는 모든 프로세스처럼 ê°™ì�€ [코드베ì�´ìФ](./codebase)와 [설정](./config)를 사용해야 합니다. admin 코드는 ë�™ê¸°í™” 문제를 피하기 위해 애플리케ì�´ì…˜ 코드와 함께 ë°°í�¬ë�˜ì–´ì•¼ 합니다. 모든 프로세스 타입들ì—�는 ë�™ì�¼í•œ [종ì†�성 분리](./dependencies) 기술ì�´ 사용ë�˜ì–´ì•¼ 합니다. 예를 들어, 루비 웹 프로세스가 `bundle exec thin start` 명령어를 사용한다면, ë�°ì�´í„°ë² ì�´ìФ 마ì�´ê·¸ë ˆì�´ì…˜ì�€ `bundle exec rake db:migrate`를 사용해야합니다. 마찬가지로, virtualenv를 사용하는 파ì�´ì�¬ 프로그램ì�€ tornado 웹 서버와 모든 `manage.py` admin 프로세스가 ê°™ì�€ virtualenvì—�서ì�˜ `bin/python`ì�„ 사용해야 합니다. Twelve-Factor는 별ë�„ì�˜ 설치나 구성없ì�´ REPL shellì�„ 제공하는 언어를 강하게 선호합니다. ì�´ëŸ¬í•œ ì �ì�€ ì�¼íšŒì„± 스í�¬ë¦½íŠ¸ë¥¼ 실행하기 쉽게 만들어주기 때문입니다. 로컬 ë°°í�¬ì—�서, 개발ìž�는 앱ì�„ ì²´í�¬ì•„웃한 디렉토리ì—�서 ì�¼íšŒì„± admin 프로세스를 shell 명령어로 바로 실행시킵니다. production ë°°í�¬ì—�서, 개발ìž�는 ssh나 ë°°í�¬ì�˜ 실행 환경ì—�서 제공하는 다른 ì›�격 명령어 실행 메커니즘ì�„ 사용하여 admin 프로세스를 실행할 수 있습니다.content/ru/disposability.md0000644000175000056700000001232515226251677014624 0ustar0000000000000000## IX. УтилизируемоÑ�ть (Disposability) ### МакÑ�имизируйте надёжноÑ�ть Ñ� помощью быÑ�трого запуÑ�ка и корректного завершениÑ� работы **[ПроцеÑ�Ñ�Ñ‹](./processes) приложениÑ� двенадцати факторов Ñ�влÑ�ÑŽÑ‚Ñ�Ñ� *утилизируемыми*, Ñ�то означает, что они могут быть запущены и оÑ�тановлены в любой момент.** Это Ñ�поÑ�обÑ�твует Ñ�табильному и гибкому маÑ�штабированию, быÑ�трому развёртыванию изменений [кода](./codebase) и [конфигураций](./config) и надёжноÑ�ти рабочего развёртываниÑ�. ПроцеÑ�Ñ�Ñ‹ должны Ñ�таратьÑ�Ñ� **минимизировать времÑ� запуÑ�ка**. Ð’ идеале процеÑ�Ñ� должен затратить вÑ�его неÑ�колько Ñ�екунд от момента времени, когда выполнена команда запуÑ�ка, и до того момента, когда процеÑ�Ñ� запущен и готов принимать запроÑ�Ñ‹ или задачи. Короткое времÑ� запуÑ�ка предоÑ�тавлÑ�ет большую гибкоÑ�ть длÑ� [релиза](./build-release-run) и маÑ�штабированиÑ�. Кроме того, Ñ�то более надёжно, так как менеджер процеÑ�Ñ�ов может Ñ�вободно перемещать процеÑ�Ñ�Ñ‹ на новые физичеÑ�кие машины при необходимоÑ�ти. ПроцеÑ�Ñ�Ñ‹ должны **завершатьÑ�Ñ� корректно, когда они получают [SIGTERM](http://en.wikipedia.org/wiki/SIGTERM)** Ñ�игнал от диÑ�петчера процеÑ�Ñ�ов. ДлÑ� веб-процеÑ�Ñ�а корректное завершение работы доÑ�тигаетÑ�Ñ� путём прекращениÑ� проÑ�лушиваниÑ� порта Ñ�ервиÑ�а (таким образом, отказатьÑ�Ñ� от каких-либо новых запроÑ�ов), что позволÑ�ет завершить текущие запроÑ�Ñ‹ и затем завершитьÑ�Ñ�. Ð’ Ñ�той модели подразумеваетÑ�Ñ�, что HTTP-запроÑ�Ñ‹ короткие (не более чем на неÑ�колько Ñ�екунд), в Ñ�лучае длинных запроÑ�ов клиент должен плавно попытатьÑ�Ñ� воÑ�Ñ�тановить подключение при потере Ñ�оединениÑ�. ДлÑ� процеÑ�Ñ�а, выполнÑ�ющего фоновые задачи (worker), корректное завершение работы доÑ�тигаетÑ�Ñ� путём возвращениÑ� текущей задачи назад в очередь задач. Ð�апример, в [RabbitMQ](http://www.rabbitmq.com/) рабочий процеÑ�Ñ� может отправлÑ�ть команду [`NACK`](http://www.rabbitmq.com/amqp-0-9-1-quickref.html#basic.nack); в [Beanstalkd](https://beanstalkd.github.io) задача возвращаетÑ�Ñ� в очередь автоматичеÑ�ки, когда рабочий процеÑ�Ñ� отключаетÑ�Ñ�. СиÑ�темы, оÑ�нованные на блокировках такие, как [Delayed Job](https://github.com/collectiveidea/delayed_job#readme) должны быть уведомлены, чтобы оÑ�вободить блокировку задачи. Ð’ Ñ�той модели подразумеваетÑ�Ñ�, что вÑ�е задачи Ñ�влÑ�ÑŽÑ‚Ñ�Ñ� [повторно входимыми](http://en.wikipedia.org/wiki/Reentrant_%28subroutine%29), что обычно доÑ�тигаетÑ�Ñ� путём оборачиваниÑ� результатов работы в транзакции или путём иÑ�пользованиÑ� [идемпотентных](http://en.wikipedia.org/wiki/Idempotence) операций. ПроцеÑ�Ñ�Ñ‹ также должны быть **уÑ�тойчивыми к внезапной Ñ�мерти** в Ñ�лучае отказа аппаратного обеÑ�печениÑ�. ХотÑ� Ñ�то менее вероÑ�тное Ñ�обытие, чем корректное завершение работы Ñ�игналом `SIGTERM`, оно вÑ�Ñ‘ же может Ñ�лучитьÑ�Ñ�. Рекомендуемым подходом Ñ�влÑ�етÑ�Ñ� иÑ�пользование надёжных очередей задач, таких как Beanstalkd, которые возвращают задачу в очередь когда клиент отключаетÑ�Ñ� или превышает лимит времени. Ð’ любом Ñ�лучае приложение двенадцати факторов должно проектироватьÑ�Ñ� так, чтобы обрабатывать неожиданные и неизÑ�щные выключениÑ�. [Ð�рхитектура только аварийного выключениÑ� (Crash-only design)](http://lwn.net/Articles/191059/) доводит Ñ�ту концепцию до её [логичеÑ�кого завершениÑ�](http://docs.couchdb.org/en/latest/intro/overview.html). content/tr/config.md0000644000175000056700000000710515226251677013211 0ustar0000000000000000## III. Yapılandırma ### Ortamda yapılandırma depolama Bir uygulamanın *yapılandırması* muhtemelen [dağıtımlar](./codebase) arasındaki deÄŸiÅŸikliktir(kademelendirme, ürün, geliÅŸtirici ortamları vb.). Bunları içerir: * Veri tabanını ele alan kaynaklar, önbellek ve diÄŸer [destek servisleri](./backing-services) * Amazon S3 ve Twitter gibi dış servisler için kimlik bilgileri * Dağıtımlar için standart sunucu ismi gibi her dağıtım için deÄŸerler Uygulamalar bazen yapılandırmayı koddaki sabitler gibi saklar. Bu on iki faktörün, **yapılandırmayı koddan mutlak ayırmayı** gerektiren bir ihlalidir. Yapılandırma dağıtımlar arasında önemli derecede deÄŸiÅŸime uÄŸrar, kod uÄŸramaz. Bir uygulamanın tüm yapılandırmaları koddan doÄŸru bir biçimde çıkarılıp çıkarılmadığına dair bir litot testi, herhangi bir kimlik bilgilerinden ödün vermeksizin kod tabanının her an açık kaynak yapıp yapamayacağına karar verir. Bu *yapılandırma* tanımlamasının, [Spring](http://spring.io/)'de [kod modullerinin baÄŸlantısında](http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html) olduÄŸu gibi ve Rails'de `config/routes.rb` gibi dahili uygulama yapılandırmasını **içermediÄŸini** unutmayın. Bu tip yapılandırma dağıtımlar arasında deÄŸiÅŸiklik göstermez ve bu kod içinde en iyi ÅŸekilde gerçekleÅŸtirilmiÅŸtir. Yapılandırmaya diÄŸer bir yaklaşım Rails'deki `config/database.yml` gibi gözden geçirme kontrolünde kontrol edilmemiÅŸ yapılandırma dosyalarının kullanımıdır. Bu kod deposundaki kontrol edilmiÅŸ sabitlerin kullanımındaki büyük bir geliÅŸmedir, fakat hala zayıflıkları vardır: Depoda, yapılandırma dosyalarının kontrolünde hata kolay yapılabilir; Yapılandırma dosyalarının farklı yerlerde ve farklı formatlarda dağılmış olması için bir eÄŸilim vardır, bu durum bütün yapılandırmayı bir yerde görmeyi ve yönetmeyi zorlaÅŸtırır. Bu formatların özel dil veya çatı olma eÄŸilimi vardır. **On iki faktör uygulamalarında yapılandırma *ortam deÄŸiÅŸkenlerinde* kaydedilir**(sıklıkla *env vars* veya *env* olarak kısaltılır). Ortam deÄŸiÅŸkenleri herhangi bir kod deÄŸiÅŸikliÄŸi olmadan, dağıtımlar arasında kolay deÄŸiÅŸebilir; Yapılandırma dosyalarının aksine, kod deposunda yanlışlıkla kontrol edilme ÅŸansı az; ve özel yapılandırma dosyalarının veya Java sistem özellikleri gibi yapılandırma mekanizmalarının aksine, onlar dil ve iÅŸletim sisteminden etkilenmez. Yapılandırma yönetiminin diÄŸer bir açısı da gruplandırmadır. Bazen uygulamalar, Rails'deki `geliÅŸtirme`, `test` ve `üretim` ortamları gibi belirli dağıtımlardan sonra adlandırılmış, adlandrılmış guruplar içinde yapılandırılır(genellikle "environments" olarak adlandırılır). Bu method temiz bir ölçüm yapmaz: uygulamanın daha fazla dağıtımı oluÅŸtuÄŸu sürece, yeni ortam isimleri gereklidir, `staging` veya `qa` gibi. Projeler ilerde geliÅŸtikçe, geliÅŸtiriciler `joes-staging` kendi özel ortam deÄŸiÅŸkenlerini ekleyebilir, dağıtım yönetimini çok hassas yapan yapılandırmanın birleÅŸimsel infilakıyla sonuçlanır. On iki faktör uygulamasında ortam deÄŸiÅŸkenleri parçacıklı kontrol edilirler, her biri diÄŸer ortam deÄŸiÅŸkenlerine karşı suffix/prefix olarak gelmez ayrı tanımlanır. Asla "environments" olarak beraber gruplandırılamaz, fakat onun yerine her bir dağıtım için bağımsız yönetilir. Bu, uygulamayı yaÅŸam süresi boyunca daha fazla dağıtıma geniÅŸletmeyi sorunsuzca büyüten bir modeldir. public/css/mobile.css0000644000175000056700000000336615226251677013357 0ustar0000000000000000@media screen and (min-width: 1041px) { section { min-width: 65em; } article, nav { max-width: 55em; } } @media screen and (min-width: 481px) and (max-width: 800px) { article img { float: none; display: block; margin: 0 auto; } } @media screen and (min-width: 481px) and (max-width: 1040px) { header { font-size: 1em; } article, nav { width:85%; min-width: none; max-width: none; } section, footer { width:100%; min-width: none; max-width: none; } article h1, article h2, article h3, article p, article table { padding-left: 15px; padding-right: 15px; } article ul, article ol { padding-left: 35px; padding-right: 10px; text-align: left; } article table { font-size: 0.8em; } article table td { padding-left: 0.25em; padding-right: 0.25em; } article img { max-width: 100%; margin-bottom: 1em; } nav a { padding:1em; } nav a { padding:1em; } footer { padding-left: 0; padding-right: 0; } } @media screen and (max-width: 480px) { header { font-size: 0.75em; } section, article, nav, footer { min-width: 320px; max-width: 480px; } article h1, article h2, article h3, article p, article table { padding-left: 15px; padding-right: 15px; text-align: left; } article ul, article ol { padding-left: 35px; padding-right: 10px; text-align: left; } article table { font-size: 0.5em; } article table td { padding-left: 0.25em; padding-right: 0.25em; } article img { max-width: 100%; margin-bottom: 1em; } nav a { padding: 1em; } footer { padding-left: 0; padding-right: 0; } }content/it/backing-services.md0000644000175000056700000000541515226251677015154 0ustar0000000000000000## IV. Backing Service ### Tratta i backing service come "risorse" Un "backing service" è un qualsiasi servizio che l'applicazione consuma attraverso la rete durante la sua esecuzione. Alcuni esempi includono i database (come [MySQL](http://dev.mysql.com/) o [CouchDB](http://couchdb.apache.org/)), servizi di messaging/code (come [RabbitMQ](http://www.rabbitmq.com/) oppure [Beanstalkd](https://beanstalkd.github.io)), servizi SMTP per la posta (come [Postfix](http://www.postfix.org/)) e sistemi di cache (come [Memcached](http://memcached.org/)). Un backing service (prendiamo ad esempio un database) è tradizionalmente gestito dallo stesso amministratore di sistema, al deployment dell'applicazione. In aggiunta a questi servizi gestiti in locale potrebbero esserne presenti altri, forniti da terze parti. Parliamo di servizi SMTP (come [Postmark](http://postmarkapp.com/)), servizi di raccolta metriche (come [New Relic](http://newrelic.com/) o [Loggly](http://www.loggly.com/)), servizi per asset (come [Amazon S3](http://aws.amazon.com/s3/)), e anche servizi accessibili via API (come [Twitter](http://dev.twitter.com/), [Google Maps](https://developers.google.com/maps/), o [Last.fm](http://www.last.fm/api)). **Il codice di un'app twelve-factor non fa distinzioni tra servizi in locale o third party**. Per l'applicazione, entrambi sono risorse connesse, accessibili via URL (o tramite un altro locator) e credenziali memorizzate nell'opportuno file di [configurazione](./config). A un qualsiasi [deployment](./codebase) di un'applicazione twelve-factor si deve poter permettere di passare velocemente da un database MySQL locale a uno third party (come [Amazon RDS](http://aws.amazon.com/rds/)) senza alcuna modifica al codice. Allo stesso modo, un server SMTP locale dovrebbe poter essere cambiato con uno third party (come Postmark). In entrambi i casi, a cambiare dovrebbero essere **solo** i file di configurazione necessari. Ogni backing service è quindi definibile come una "risorsa connessa". Un Database MySQL è una risorsa. Due database MySQL (utilizzati per lo sharding a livello di applicazione) saranno visti come due distinte risorse. Un'app twelve-factor vede questi database come *risorse* anche per sottolineare la separazione dal deployment a cui fanno riferimento. Un deployment di produzione collegato a quattro backing service. Le risorse possono essere collegate e scollegate da un deployment a piacimento. Per esempio, supponiamo che il database dell'applicazione si comporti in modo anomalo per problemi hardware. L'amministratore potrebbe decidere di voler configurare un altro server di database ripreso da un recente backup. Il vecchio database verrebbe scollegato, quello nuovo connesso -- senza modifiche al codice.