From 02fa9a2cd3b981ae3f55b8963cb65c224d236c8b Mon Sep 17 00:00:00 2001 From: Rajendra Kadam Date: Thu, 18 Jun 2020 16:09:15 +0530 Subject: [PATCH 01/10] Add grid 4 section --- docs_source_files/content/grid4/_index.de.md | 33 +++++++++++++++ docs_source_files/content/grid4/_index.en.md | 27 ++++++++++++ docs_source_files/content/grid4/_index.es.md | 30 +++++++++++++ docs_source_files/content/grid4/_index.fr.md | 35 +++++++++++++++ docs_source_files/content/grid4/_index.ja.md | 20 +++++++++ docs_source_files/content/grid4/_index.ko.md | 20 +++++++++ docs_source_files/content/grid4/_index.nl.md | 33 +++++++++++++++ .../content/grid4/_index.zh-cn.md | 21 +++++++++ .../content/grid4/components_of_a_grid.de.md | 39 +++++++++++++++++ .../content/grid4/components_of_a_grid.en.md | 34 +++++++++++++++ .../content/grid4/components_of_a_grid.es.md | 33 +++++++++++++++ .../content/grid4/components_of_a_grid.fr.md | 39 +++++++++++++++++ .../content/grid4/components_of_a_grid.ja.md | 28 ++++++++++++ .../content/grid4/components_of_a_grid.ko.md | 40 ++++++++++++++++++ .../content/grid4/components_of_a_grid.nl.md | 40 ++++++++++++++++++ .../grid4/components_of_a_grid.zh-cn.md | 28 ++++++++++++ .../purposes_and_main_functionalities.de.md | 17 ++++++++ .../purposes_and_main_functionalities.en.md | 12 ++++++ .../purposes_and_main_functionalities.es.md | 12 ++++++ .../purposes_and_main_functionalities.fr.md | 12 ++++++ .../purposes_and_main_functionalities.ja.md | 13 ++++++ .../purposes_and_main_functionalities.ko.md | 12 ++++++ .../purposes_and_main_functionalities.nl.md | 18 ++++++++ ...purposes_and_main_functionalities.zh-cn.md | 12 ++++++ docs_source_files/static/images/grid4.png | Bin 0 -> 92489 bytes 25 files changed, 608 insertions(+) create mode 100644 docs_source_files/content/grid4/_index.de.md create mode 100644 docs_source_files/content/grid4/_index.en.md create mode 100644 docs_source_files/content/grid4/_index.es.md create mode 100644 docs_source_files/content/grid4/_index.fr.md create mode 100644 docs_source_files/content/grid4/_index.ja.md create mode 100644 docs_source_files/content/grid4/_index.ko.md create mode 100644 docs_source_files/content/grid4/_index.nl.md create mode 100644 docs_source_files/content/grid4/_index.zh-cn.md create mode 100644 docs_source_files/content/grid4/components_of_a_grid.de.md create mode 100644 docs_source_files/content/grid4/components_of_a_grid.en.md create mode 100644 docs_source_files/content/grid4/components_of_a_grid.es.md create mode 100644 docs_source_files/content/grid4/components_of_a_grid.fr.md create mode 100644 docs_source_files/content/grid4/components_of_a_grid.ja.md create mode 100644 docs_source_files/content/grid4/components_of_a_grid.ko.md create mode 100644 docs_source_files/content/grid4/components_of_a_grid.nl.md create mode 100644 docs_source_files/content/grid4/components_of_a_grid.zh-cn.md create mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.de.md create mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.en.md create mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.es.md create mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.fr.md create mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.ja.md create mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.ko.md create mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.nl.md create mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.zh-cn.md create mode 100644 docs_source_files/static/images/grid4.png diff --git a/docs_source_files/content/grid4/_index.de.md b/docs_source_files/content/grid4/_index.de.md new file mode 100644 index 000000000000..06e6c608aa10 --- /dev/null +++ b/docs_source_files/content/grid4/_index.de.md @@ -0,0 +1,33 @@ +--- +title: "Selenium Grid" +chapter: true +weight: 9 +--- + +# Selenium Grid 4 + +{{% notice info %}} + Diese Seite wird von Englisch +auf Deutsch übersetzt. Sprichst Du Deutsch? Hilf uns die Seite +zu übersetzen indem Du uns einen Pull Reqeust schickst! + {{% /notice %}} + +_Selenium Grid 4_ is a smart proxy server +that allows Selenium tests to route commands to remote web browser instances. +Its aim is to provide an easy way to run tests in parallel on multiple machines. + +With Selenium Grid 4, +one server acts as the hub that routes JSON formatted test commands +to one or more registered Grid 4 nodes. +Tests contact the hub to obtain access to remote browser instances. +The hub has a list of registered servers that it provides access to, +and allows control of these instances. + +Selenium Grid 4 allows us to run tests in parallel on multiple machines, +and to manage different browser versions and browser configurations centrally +(instead of in each individual test). + +Selenium Grid 4 is not a silver bullet. +It solves a subset of common delegation and distribution problems, +but will for example not manage your infrastructure, +and might not suit your specific needs. diff --git a/docs_source_files/content/grid4/_index.en.md b/docs_source_files/content/grid4/_index.en.md new file mode 100644 index 000000000000..91a4546bd841 --- /dev/null +++ b/docs_source_files/content/grid4/_index.en.md @@ -0,0 +1,27 @@ +--- +title: "Grid 4" +chapter: true +weight: 9 +--- + +# Grid 4 + +_Selenium Grid 4_ is a smart proxy server +that allows Selenium tests to route commands to remote web browser instances. +Its aim is to provide an easy way to run tests in parallel on multiple machines. + +With Selenium Grid 4, +one server acts as the hub that routes JSON formatted test commands +to one or more registered Grid 4 nodes. +Tests contact the hub to obtain access to remote browser instances. +The hub has a list of registered servers that it provides access to, +and allows control of these instances. + +Selenium Grid 4 allows us to run tests in parallel on multiple machines, +and to manage different browser versions and browser configurations centrally +(instead of in each individual test). + +Selenium Grid 4 is not a silver bullet. +It solves a subset of common delegation and distribution problems, +but will for example not manage your infrastructure, +and might not suit your specific needs. diff --git a/docs_source_files/content/grid4/_index.es.md b/docs_source_files/content/grid4/_index.es.md new file mode 100644 index 000000000000..7df8d65ab4db --- /dev/null +++ b/docs_source_files/content/grid4/_index.es.md @@ -0,0 +1,30 @@ +--- +title: "Grid" +chapter: true +weight: 9 +--- + +# Grid + +_Selenium Grid 4_ es un servidor inteligente que efectúa de proxy que permite a los +tests de Selenium enrutar sus comandos hacia instancias remotas de navegadores +web. +La intención de esto es proporcionar una forma sencilla de ejecutar los tests en +paralelo en múltiple maquinas. + + +Con _Selenium Grid 4_ un servidor actúa como el centro de actividad (_hub_) +encargado de enrutar los comandos de los tests en formato JSON hacia uno o mas +nodos registrados en el _Grid_. +Los tests contactan con el hub para obtener acceso a las instancias remotas de +los navegadores. + +_Selenium Grid 4_ te permite ejecutar los tests en paralelo en múltiples maquinas +y también te permite gestionar diferentes versiones de navegadores y diferentes +configuraciones de navegadores de manera centralizada (en lugar de hacerlo de +manera individual en cada test) + +_Selenium Grid 4_ no es una solución mágica para todos tus problemas. +Permite resolver un subconjunto de problemas comunes de delegación y distribución, +pero, por ejemplo, no administrará su infraestructura y podría no satisfacer sus +necesidades personales. \ No newline at end of file diff --git a/docs_source_files/content/grid4/_index.fr.md b/docs_source_files/content/grid4/_index.fr.md new file mode 100644 index 000000000000..49b5562a19f2 --- /dev/null +++ b/docs_source_files/content/grid4/_index.fr.md @@ -0,0 +1,35 @@ +--- +title: "Grid" +chapter: true +weight: 9 +--- + +# Grid + +_Selenium Grid 4_ est un serveur proxy intelligent +qui permet aux tests Selenium d'acheminer des +commandes vers des instances de navigateur Web distantes. +Son objectif est de fournir un moyen simple +d'exécuter des tests en parallèle sur plusieurs machines. + +Avec Selenium Grid, +un serveur fait office de concentrateur +qui achemine les commandes de test au format JSON +à un ou plusieurs nœuds de grille enregistrés. +Les tests contactent le concentrateur pour +obtenir l'accès aux instances de navigateur distantes. +Le concentrateur dispose d'une liste de +serveurs enregistrés auxquels il donne accès, +et permet le contrôle de ces instances. + +Selenium Grid nous permet d'effectuer des +tests en parallèle sur plusieurs machines, +et pour gérer les différentes versions et +configurations de navigateur de manière centralisée +(au lieu de dans chaque test individuel). + +La grille de sélénium n'est pas une +solution miracle. Il résout un sous-ensemble +de problèmes de délégation et de distribution communs, +mais ne gèrera par exemple pas votre infrastructure, +et pourrait ne pas répondre à vos besoins spécifiques. diff --git a/docs_source_files/content/grid4/_index.ja.md b/docs_source_files/content/grid4/_index.ja.md new file mode 100644 index 000000000000..5d99d75cbaf5 --- /dev/null +++ b/docs_source_files/content/grid4/_index.ja.md @@ -0,0 +1,20 @@ +--- +title: "Grid" +chapter: true +weight: 9 +--- + + +# Grid + +_Selenium Grid 4_ は、SeleniumテストがコマンドをリモートWebブラウザーインスタンスにルーティングできるようにする賢いプロキシサーバーです。 +その目的は、複数のマシンで並行してテストを実行する簡単な方法を提供することです。 + +Selenium Gridでは、1つのサーバーが、JSON形式のテストコマンドを1つ以上の登録済みのグリッドノードにルーティングするハブとして機能します。 +テストはハブに接続して、リモートブラウザーインスタンスへのアクセスを取得します。 +ハブには、アクセスを提供する登録済みサーバーのリストがあり、これらのインスタンスを制御できます。 + +Selenium Gridを使用すると、複数のマシンで並行してテストを実行し、さまざまなブラウザーバージョンとブラウザー構成を(個々のテストではなく)一元的に管理できます。 + +Selenium Gridは特効薬ではありません。 +一般的な委任および配布の問題のサブセットを解決しますが、たとえばインフラストラクチャを管理せず、特定のニーズに適さない場合があります。 diff --git a/docs_source_files/content/grid4/_index.ko.md b/docs_source_files/content/grid4/_index.ko.md new file mode 100644 index 000000000000..4d88da7606c9 --- /dev/null +++ b/docs_source_files/content/grid4/_index.ko.md @@ -0,0 +1,20 @@ +--- +title: "조합 격자(Grid)" +chapter: true +weight: 9 +--- + +# Grid + +_Selenium Grid 4_ 는 Selenium 테스트가 명령을 원격 웹 브라우저 인스턴스로 보낼 수 있도록 하는 스마트 프록시 서버입니다. +이것의 목적은 여러 기계에서 병렬로 테스트를 실행할 수 있는 쉬운 방법을 제공하는 것입니다. + +_Selenium Grid 4_ 에서 한 서버는 JSON 형식 테스트 명령을 하나 이상의 등록된 Grid 노드로 보내는 허브로서의 역할을 합니다. +테스트를 허브에 연결하여 원격 브라우저 인스턴스에 대한 액세스 권한을 얻으십시오. +허브에는 이러한 인스턴스에 대한 액세스 권한을 제공하고 제어를 허용하는 등록된 서버 목록이 있습니다. + +_Selenium Grid 4_ 는 여러 컴퓨터에서 동시에 테스트를 실행할 수 있도록 하며, +(개별 테스트 대신에) 서로 다른 브라우저 버전과 브라우저 구성을 중앙에서 관리할 수 있도록 합니다. + +_Selenium Grid 4_ 는 묘책이 아닙니다. 일반적인 위임 및 배포 문제의 부분 집합을 해결하지만, +예를 들어 당신의 인프라를 관리하지 않으며 당신의 특정한 요구에 적합하지 않을 수 있습니다. diff --git a/docs_source_files/content/grid4/_index.nl.md b/docs_source_files/content/grid4/_index.nl.md new file mode 100644 index 000000000000..d349242fd382 --- /dev/null +++ b/docs_source_files/content/grid4/_index.nl.md @@ -0,0 +1,33 @@ +--- +title: "Grid" +chapter: true +weight: 9 +--- + +{{% notice info %}} + Page being translated from +English to Dutch. Do you speak Dutch? Help us to translate +it by sending us pull requests! +{{% /notice %}} + +# Grid + +_Selenium Grid 4_ is a smart proxy server +that allows Selenium tests to route commands to remote web browser instances. +Its aim is to provide an easy way to run tests in parallel on multiple machines. + +With Selenium Grid, +one server acts as the hub that routes JSON formatted test commands +to one or more registered Grid nodes. +Tests contact the hub to obtain access to remote browser instances. +The hub has a list of registered servers that it provides access to, +and allows control of these instances. + +Selenium Grid allows us to run tests in parallel on multiple machines, +and to manage different browser versions and browser configurations centrally +(instead of in each individual test). + +Selenium Grid is not a silver bullet. +It solves a subset of common delegation and distribution problems, +but will for example not manage your infrastructure, +and might not suit your specific needs. diff --git a/docs_source_files/content/grid4/_index.zh-cn.md b/docs_source_files/content/grid4/_index.zh-cn.md new file mode 100644 index 000000000000..a3c1d0b7c5a3 --- /dev/null +++ b/docs_source_files/content/grid4/_index.zh-cn.md @@ -0,0 +1,21 @@ +--- +title: "服务网格" +chapter: true +weight: 9 +--- + +# 服务网格 + +_Selenium服务网格_ 是一个能够让Selenium的测试把命令传送到一个远程浏览器实例的职能代理服务器。 +他的目的是提供一个简便的方法来在多台终端上并行的执行测试任务。 + +在Selenium服务网格, +一台服务器作为转发器(hub)将JSON格式的测试命令转发到1台或多台注册的节点。 +测试任务通过跟转发器(hub)的交互来操作远端浏览器实例。 +转发器(hub)维护了一个可供使用的注册服务器列表,也允许我们通过转发器(hub)来控制这些实例。 + +Selenium服务网格允许我们在多台节点服务器上并行执行测试, +同时也中心化的管理多个浏览器版本,多种浏览器的配置。(以替代传统的基于个人的测试) + +Selenium服务网格并不是万能的(silver bullet)。 +它能够解决一些通用的代理问题和分布式的问题,但是并不能管理你的硬件,也可能不适合你的一些特殊需求。 diff --git a/docs_source_files/content/grid4/components_of_a_grid.de.md b/docs_source_files/content/grid4/components_of_a_grid.de.md new file mode 100644 index 000000000000..97151e64b49e --- /dev/null +++ b/docs_source_files/content/grid4/components_of_a_grid.de.md @@ -0,0 +1,39 @@ +--- +title: "Komponenten des Grids" +weight: 2 +--- + +{{% notice info %}} + Diese Seite wird von Englisch +auf Deutsch übersetzt. Sprichst Du Deutsch? Hilf uns die Seite +zu übersetzen indem Du uns einen Pull Reqeust schickst! + {{% /notice %}} +![Grid](/images/grid.png) + +## Hub +* Intermediary and manager +* Accepts requests to run tests +* Takes instructions from client and executes them remotely on the nodes +* Manages threads + +A _Hub_ is a central point where all your tests are sent. +Each Selenium Grid consists of exactly one hub. The hub needs to be reachable +from the respective clients (i.e. CI server, Developer machine etc.) +The hub will connect one or more nodes +that tests will be delegated to. + +## Nodes + +* Where the browsers live +* Registers itself to the hub and communicates its capabilities +* Receives requests from the hub and executes them + +_Nodes_ are different Selenium instances +that will execute tests on individual computer systems. +There can be many nodes in a grid. +The machines which are nodes do not need to be the same platform +or have the same browser selection as that of the hub or the other nodes. +A node on Windows might have the capability of +offering Internet Explorer as a browser option, +whereas this wouldn't be possible on Linux or Mac. + diff --git a/docs_source_files/content/grid4/components_of_a_grid.en.md b/docs_source_files/content/grid4/components_of_a_grid.en.md new file mode 100644 index 000000000000..3fdfc2eee73b --- /dev/null +++ b/docs_source_files/content/grid4/components_of_a_grid.en.md @@ -0,0 +1,34 @@ +--- +title: "Components of a Grid" +weight: 2 +--- + +![Grid](/images/grid4.png) + +## Hub +* Intermediary and manager +* Accepts requests to run tests +* Takes instructions from client and executes them remotely on the nodes +* Manages threads + +A _Hub_ is a central point where all your tests are sent. +Each Selenium Grid consists of exactly one hub. The hub needs to be reachable +from the respective clients (i.e. CI server, Developer machine etc.) +The hub will connect one or more nodes +that tests will be delegated to. + +## Nodes + +* Where the browsers live +* Registers itself to the hub and communicates its capabilities +* Receives requests from the hub and executes them + +_Nodes_ are different Selenium instances +that will execute tests on individual computer systems. +There can be many nodes in a grid. +The machines which are nodes do not need to be the same platform +or have the same browser selection as that of the hub or the other nodes. +A node on Windows might have the capability of +offering Internet Explorer as a browser option, +whereas this wouldn't be possible on Linux or Mac. + diff --git a/docs_source_files/content/grid4/components_of_a_grid.es.md b/docs_source_files/content/grid4/components_of_a_grid.es.md new file mode 100644 index 000000000000..d47afc2e8ddf --- /dev/null +++ b/docs_source_files/content/grid4/components_of_a_grid.es.md @@ -0,0 +1,33 @@ +--- +title: "Componentes de un Grid" +weight: 2 +--- + +![Grid](/images/grid.png) + +## Hub +* Ejerce como mediador y administrador +* Acepta peticiones para ejecutar los tests +* Recoge instrucciones de los clientes y las ejecuta de forma remota en los nodos +* Gestiona los hilos + +El _Hub_ es un punto central donde se envian todos tus tests. +Cada _Selenium Grid_ consiste en exactamente un _hub_. El hub necesita ser +accesible desde la perspectiva de los clientes (ej. Servidor de la CI, maquina +del desarrollador) +El hub se conectará a uno o mas nodos a los que los tests serán delegados. + +## Nodos + +* Donde se ubican los navegadores +* Se registra a si mismo en el hub y le comunica sus capacidades +* Recibe las peticiones desde el hub las ejecuta + +Los nodos son diferentes instancias de Selenium que ejecutarán los tests en +sistemas informáticos individuales. +Puedes haber muchos nodos en un grid. +Las maquinas que contienen los nodos no necesitan estar bajo el mismo sistema +operativo o disponer de la misma selección de navegadores que el hub u otros +nodos. +Un nodo en Windows podría tener la capacidad de ofrecer Internet Explorer como +opción del navegador mientras que esto no podría ser posible en Linux o Mac. diff --git a/docs_source_files/content/grid4/components_of_a_grid.fr.md b/docs_source_files/content/grid4/components_of_a_grid.fr.md new file mode 100644 index 000000000000..365f818512d8 --- /dev/null +++ b/docs_source_files/content/grid4/components_of_a_grid.fr.md @@ -0,0 +1,39 @@ +--- +title: "Composant d'une Grid" +weight: 2 +--- + +![Grid](/images/grid.png) + +## Hub +* Intermédiaire et gestionnaire +* Accepte les demandes d'exécution de tests +* Prend les instructions du client et les exécute à distance sur les nœuds +* Gère les threads + +Un _Hub_ est un point central où tous +vos tests sont envoyés. +Chaque grille de sélénium se compose exactement +d'un concentrateur. Le hub doit être accessible +des clients respectifs (c.-à-d. serveur CI, machine développeur, etc.) +Le concentrateur connectera un ou plusieurs nœuds +auquel les tests seront délégués. + +## Nodes + +* Où vivent les navigateurs +* S'enregistre auprès du hub et communique ses capacités +* Reçoit les demandes du hub et les exécute + +_Nodes_ sont différentes instances de Selenium +qui exécutera des tests sur des +systèmes informatiques individuels. +Il peut y avoir plusieurs nœuds dans une grille. +Les machines qui sont des nœuds n'ont +pas besoin d'être la même plate-forme +ou avoir la même sélection de navigateur +que celle du concentrateur ou des autres nœuds. +Un nœud sous Windows peut avoir la capacité de +offrant Internet Explorer comme option de navigateur, +alors que cela ne serait pas possible sur Linux ou Mac. + diff --git a/docs_source_files/content/grid4/components_of_a_grid.ja.md b/docs_source_files/content/grid4/components_of_a_grid.ja.md new file mode 100644 index 000000000000..ac156d55ee84 --- /dev/null +++ b/docs_source_files/content/grid4/components_of_a_grid.ja.md @@ -0,0 +1,28 @@ +--- +title: "グリッドのコンポーネント" +weight: 2 +--- + +![Grid](/images/grid.png) + +## ハブ +* 仲介者およびマネージャー +* テストを実行する要求を受け入れます +* クライアントから命令を受け取り、ノード上でリモートで実行します +* スレッドを管理します + +_ハブ_ は、すべてのテストが送信される中心点です。 +各Selenium Gridは、ちょうど1つのハブで構成されます。 +ハブは、それぞれのクライアント(CIサーバー、開発者マシンなど)から到達可能である必要があります。 +ハブは、テストが委任される1つ以上のノードを接続します。 + +## ノード + +* ブラウザが存在する場所 +* ハブに自分自身を登録し、その機能を伝えます +* ハブからリクエストを受信して実行します + +_ノード_ は、個々のコンピューターシステムでテストを実行するさまざまなSeleniumインスタンスです。 +グリッドには多くのノードが存在する場合があります。 +ノードであるマシンは、ハブまたは他のノードと同じプラットフォームであったり、同じブラウザーを選定する必要はありません。 +Windows上のノードは、Internet Explorerをブラウザーオプションとして提供する機能を備えている場合がありますが、これはLinuxまたはMacでは不可能です。 diff --git a/docs_source_files/content/grid4/components_of_a_grid.ko.md b/docs_source_files/content/grid4/components_of_a_grid.ko.md new file mode 100644 index 000000000000..35f4a87bae92 --- /dev/null +++ b/docs_source_files/content/grid4/components_of_a_grid.ko.md @@ -0,0 +1,40 @@ +--- +title: "Components of a Grid" +weight: 2 +--- + +{{% notice info %}} + Page being translated from +English to Korean. Do you speak Korean? Help us to translate +it by sending us pull requests! +{{% /notice %}} + +![Grid](/images/grid.png) + +## Hub +* Intermediary and manager +* Accepts requests to run tests +* Takes instructions from client and executes them remotely on the nodes +* Manages threads + +A _Hub_ is a central point where all your tests are sent. +Each Selenium Grid consists of exactly one hub. The hub needs to be reachable +from the respective clients (i.e. CI server, Developer machine etc.) +The hub will connect one or more nodes +that tests will be delegated to. + +## Nodes + +* Where the browsers live +* Registers itself to the hub and communicates its capabilities +* Receives requests from the hub and executes them + +_Nodes_ are different Selenium instances +that will execute tests on individual computer systems. +There can be many nodes in a grid. +The machines which are nodes do not need to be the same platform +or have the same browser selection as that of the hub or the other nodes. +A node on Windows might have the capability of +offering Internet Explorer as a browser option, +whereas this wouldn't be possible on Linux or Mac. + diff --git a/docs_source_files/content/grid4/components_of_a_grid.nl.md b/docs_source_files/content/grid4/components_of_a_grid.nl.md new file mode 100644 index 000000000000..f544471cde02 --- /dev/null +++ b/docs_source_files/content/grid4/components_of_a_grid.nl.md @@ -0,0 +1,40 @@ +--- +title: "Components of a Grid" +weight: 2 +--- + +{{% notice info %}} + Page being translated from +English to Dutch. Do you speak Dutch? Help us to translate +it by sending us pull requests! +{{% /notice %}} + +![Grid](/images/grid.png) + +## Hub +* Intermediary and manager +* Accepts requests to run tests +* Takes instructions from client and executes them remotely on the nodes +* Manages threads + +A _Hub_ is a central point where all your tests are sent. +Each Selenium Grid consists of exactly one hub. The hub needs to be reachable +from the respective clients (i.e. CI server, Developer machine etc.) +The hub will connect one or more nodes +that tests will be delegated to. + +## Nodes + +* Where the browsers live +* Registers itself to the hub and communicates its capabilities +* Receives requests from the hub and executes them + +_Nodes_ are different Selenium instances +that will execute tests on individual computer systems. +There can be many nodes in a grid. +The machines which are nodes do not need to be the same platform +or have the same browser selection as that of the hub or the other nodes. +A node on Windows might have the capability of +offering Internet Explorer as a browser option, +whereas this wouldn't be possible on Linux or Mac. + diff --git a/docs_source_files/content/grid4/components_of_a_grid.zh-cn.md b/docs_source_files/content/grid4/components_of_a_grid.zh-cn.md new file mode 100644 index 000000000000..d0020ba683ac --- /dev/null +++ b/docs_source_files/content/grid4/components_of_a_grid.zh-cn.md @@ -0,0 +1,28 @@ +--- +title: "服务网格的组件" +weight: 2 +--- + +![Grid](/images/grid.png) + +## 转发器(hub) +* 中间人和管理者 +* 接受请求 执行测试任务 +* 接受客户端的指示并在远程节点上执行任务 +* 管理进程 + +_转发器(hub)_ 是一个接受所有所有测试任务的中心节点。 +每个Selenium服务网格包含一个转发器(hub)。转发器(hub)需要能被所有的客户机(比如:持续集成服务器,开发机等等)访问到。 +转发器(hub)会连接1个或者多个节点,这些节点会代理执行测试任务。 + +## 节点 + +* 浏览器会被安装在节点上 +* 节点会把自己注册在转发器(hub)上并申报自己作为测试代理的能力(有些什么浏览器,每个浏览器可以运行几个实例等等) +* 接受转发器(hub)的指示并执行这些指示 + +_节点_ 和不同的Selenium实例,他们能够在特定的计算机系统上执行测试。 +一个服务网格中可以有很多节点。 +这些终端设备并不需要使用统一的平台(或者说操作系统)也不需要选择相同的浏览器。 +一个Windows节点可以提供IE作为一个浏览器选项来执行测试,然而Linux和MAC是不可能提供的。 + diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.de.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.de.md new file mode 100644 index 000000000000..4ef7d5133292 --- /dev/null +++ b/docs_source_files/content/grid4/purposes_and_main_functionalities.de.md @@ -0,0 +1,17 @@ +--- +title: "Zweck und hauptsächlich genutze Funktionalität" +menuTitle: "Zweck und Funktionen" +weight: 1 +--- + +{{% notice info %}} + Diese Seite wird von Englisch +auf Deutsch übersetzt. Sprichst Du Deutsch? Hilf uns die Seite +zu übersetzen indem Du uns einen Pull Reqeust schickst! + {{% /notice %}} +* Central entry point for all tests +* Management and control of the nodes / environment where the browsers run +* Scaling +* Running tests in parallel +* Cross platform testing +* Load balancing diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.en.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.en.md new file mode 100644 index 000000000000..248ad2029f73 --- /dev/null +++ b/docs_source_files/content/grid4/purposes_and_main_functionalities.en.md @@ -0,0 +1,12 @@ +--- +title: "Purposes and main functionalities" +menuTitle: "Purposes and functionalities" +weight: 1 +--- + +* Central entry point for all tests +* Management and control of the nodes / environment where the browsers run +* Scaling +* Running tests in parallel +* Cross platform testing +* Load balancing diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.es.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.es.md new file mode 100644 index 000000000000..f1e57177a386 --- /dev/null +++ b/docs_source_files/content/grid4/purposes_and_main_functionalities.es.md @@ -0,0 +1,12 @@ +--- +title: "Objetivos y funcionalidades principales" +menuTitle: "Objetivos y funcionalidades principales" +weight: 1 +--- + +* Punto de entrada centralizado para todos los tests +* Gestión y control de los nodos / entornos donde se ejecutan los navegadores +* Escalado +* Ejecución de los tests en paralelo +* Testing cruzado entre diferentes sistemas operativos +* Balanceo de carga diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.fr.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.fr.md new file mode 100644 index 000000000000..373b40d195e6 --- /dev/null +++ b/docs_source_files/content/grid4/purposes_and_main_functionalities.fr.md @@ -0,0 +1,12 @@ +--- +title: "Objectifs et fonctionnalitées" +menuTitle: "Objectifs et fonctionnalitées" +weight: 1 +--- + +* Point d'entrée central pour tous les tests +* Gestion et contrôle des nœuds / environnement où s'exécutent les navigateurs +* Mise à l'échelle +* Exécution de tests en parallèle +* Test multiplateforme +* L'équilibrage de charge diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.ja.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.ja.md new file mode 100644 index 000000000000..1e025f5d5f7c --- /dev/null +++ b/docs_source_files/content/grid4/purposes_and_main_functionalities.ja.md @@ -0,0 +1,13 @@ +--- +title: "目的と主な機能" +menuTitle: "目的と機能" +weight: 1 +--- + +* すべてのテストの中央エントリポイント +* ブラウザーが実行されるノード・環境の管理と制御 +* スケーリング +* テストを並列実行 +* クロスプラットフォームでのテスト +* 負荷分散 + diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.ko.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.ko.md new file mode 100644 index 000000000000..f2fb04b52120 --- /dev/null +++ b/docs_source_files/content/grid4/purposes_and_main_functionalities.ko.md @@ -0,0 +1,12 @@ +--- +title: "목적 및 주요 기능" +menuTitle: "목적 및 기능" +weight: 1 +--- + +* 모든 테스트의 중앙 진입 지점 +* 브라우저가 실행되는 환경과 노드의 관리 및 제어 +* 스케일링 +* 병렬로 테스트 실행 +* 교차 플랫폼 테스트 +* 부하분산 diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.nl.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.nl.md new file mode 100644 index 000000000000..c8bec6da25cc --- /dev/null +++ b/docs_source_files/content/grid4/purposes_and_main_functionalities.nl.md @@ -0,0 +1,18 @@ +--- +title: "Purposes and main functionalities" +menuTitle: "Purposes and functionalities" +weight: 1 +--- + +{{% notice info %}} + Page being translated from +English to Dutch. Do you speak Dutch? Help us to translate +it by sending us pull requests! +{{% /notice %}} + +* Central entry point for all tests +* Management and control of the nodes / environment where the browsers run +* Scaling +* Running tests in parallel +* Cross platform testing +* Load balancing diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.zh-cn.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.zh-cn.md new file mode 100644 index 000000000000..b1cb0d075d26 --- /dev/null +++ b/docs_source_files/content/grid4/purposes_and_main_functionalities.zh-cn.md @@ -0,0 +1,12 @@ +--- +title: "目的和主要功能" +menuTitle: "目的和主要功能" +weight: 1 +--- + +* 为所有的测试提供统一的入口 +* 管理和控制运行着浏览器的节点/环境 +* 扩展 +* 并行测试 +* 跨平台(操作系统)测试 +* 负载测试 diff --git a/docs_source_files/static/images/grid4.png b/docs_source_files/static/images/grid4.png new file mode 100644 index 0000000000000000000000000000000000000000..4ec09c5c7860513edb517e86b9bd1902e20d726a GIT binary patch literal 92489 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 Date: Mon, 22 Jun 2020 12:07:43 +0530 Subject: [PATCH 02/10] Apply suggestions to index page in grid 4 for all languages --- docs_source_files/content/grid4/_index.de.md | 4 ++-- docs_source_files/content/grid4/_index.en.md | 6 +++--- docs_source_files/content/grid4/_index.es.md | 2 +- docs_source_files/content/grid4/_index.fr.md | 2 +- docs_source_files/content/grid4/_index.ja.md | 2 +- docs_source_files/content/grid4/_index.ko.md | 2 +- docs_source_files/content/grid4/_index.nl.md | 4 ++-- 7 files changed, 11 insertions(+), 11 deletions(-) diff --git a/docs_source_files/content/grid4/_index.de.md b/docs_source_files/content/grid4/_index.de.md index 06e6c608aa10..24d580a706dc 100644 --- a/docs_source_files/content/grid4/_index.de.md +++ b/docs_source_files/content/grid4/_index.de.md @@ -18,12 +18,12 @@ Its aim is to provide an easy way to run tests in parallel on multiple machines. With Selenium Grid 4, one server acts as the hub that routes JSON formatted test commands -to one or more registered Grid 4 nodes. +to one or more registered Grid nodes. Tests contact the hub to obtain access to remote browser instances. The hub has a list of registered servers that it provides access to, and allows control of these instances. -Selenium Grid 4 allows us to run tests in parallel on multiple machines, +This feature allows us to run tests in parallel on multiple machines, and to manage different browser versions and browser configurations centrally (instead of in each individual test). diff --git a/docs_source_files/content/grid4/_index.en.md b/docs_source_files/content/grid4/_index.en.md index 91a4546bd841..fbf75a6db438 100644 --- a/docs_source_files/content/grid4/_index.en.md +++ b/docs_source_files/content/grid4/_index.en.md @@ -4,7 +4,7 @@ chapter: true weight: 9 --- -# Grid 4 +# Selenium Grid 4 _Selenium Grid 4_ is a smart proxy server that allows Selenium tests to route commands to remote web browser instances. @@ -12,12 +12,12 @@ Its aim is to provide an easy way to run tests in parallel on multiple machines. With Selenium Grid 4, one server acts as the hub that routes JSON formatted test commands -to one or more registered Grid 4 nodes. +to one or more registered Grid nodes. Tests contact the hub to obtain access to remote browser instances. The hub has a list of registered servers that it provides access to, and allows control of these instances. -Selenium Grid 4 allows us to run tests in parallel on multiple machines, +This feature allows us to run tests in parallel on multiple machines, and to manage different browser versions and browser configurations centrally (instead of in each individual test). diff --git a/docs_source_files/content/grid4/_index.es.md b/docs_source_files/content/grid4/_index.es.md index 7df8d65ab4db..9adcf21671c6 100644 --- a/docs_source_files/content/grid4/_index.es.md +++ b/docs_source_files/content/grid4/_index.es.md @@ -4,7 +4,7 @@ chapter: true weight: 9 --- -# Grid +# Selenium Grid 4 _Selenium Grid 4_ es un servidor inteligente que efectúa de proxy que permite a los tests de Selenium enrutar sus comandos hacia instancias remotas de navegadores diff --git a/docs_source_files/content/grid4/_index.fr.md b/docs_source_files/content/grid4/_index.fr.md index 49b5562a19f2..e24bdfe39083 100644 --- a/docs_source_files/content/grid4/_index.fr.md +++ b/docs_source_files/content/grid4/_index.fr.md @@ -4,7 +4,7 @@ chapter: true weight: 9 --- -# Grid +# Selenium Grid 4 _Selenium Grid 4_ est un serveur proxy intelligent qui permet aux tests Selenium d'acheminer des diff --git a/docs_source_files/content/grid4/_index.ja.md b/docs_source_files/content/grid4/_index.ja.md index 5d99d75cbaf5..4d0fce1bfbad 100644 --- a/docs_source_files/content/grid4/_index.ja.md +++ b/docs_source_files/content/grid4/_index.ja.md @@ -5,7 +5,7 @@ weight: 9 --- -# Grid +# Selenium Grid 4 _Selenium Grid 4_ は、SeleniumテストがコマンドをリモートWebブラウザーインスタンスにルーティングできるようにする賢いプロキシサーバーです。 その目的は、複数のマシンで並行してテストを実行する簡単な方法を提供することです。 diff --git a/docs_source_files/content/grid4/_index.ko.md b/docs_source_files/content/grid4/_index.ko.md index 4d88da7606c9..e37e563b3066 100644 --- a/docs_source_files/content/grid4/_index.ko.md +++ b/docs_source_files/content/grid4/_index.ko.md @@ -4,7 +4,7 @@ chapter: true weight: 9 --- -# Grid +# Selenium Grid 4 _Selenium Grid 4_ 는 Selenium 테스트가 명령을 원격 웹 브라우저 인스턴스로 보낼 수 있도록 하는 스마트 프록시 서버입니다. 이것의 목적은 여러 기계에서 병렬로 테스트를 실행할 수 있는 쉬운 방법을 제공하는 것입니다. diff --git a/docs_source_files/content/grid4/_index.nl.md b/docs_source_files/content/grid4/_index.nl.md index d349242fd382..953fc2e12c5c 100644 --- a/docs_source_files/content/grid4/_index.nl.md +++ b/docs_source_files/content/grid4/_index.nl.md @@ -10,7 +10,7 @@ English to Dutch. Do you speak Dutch? Help us to translate it by sending us pull requests! {{% /notice %}} -# Grid +# Selenium Grid 4 _Selenium Grid 4_ is a smart proxy server that allows Selenium tests to route commands to remote web browser instances. @@ -23,7 +23,7 @@ Tests contact the hub to obtain access to remote browser instances. The hub has a list of registered servers that it provides access to, and allows control of these instances. -Selenium Grid allows us to run tests in parallel on multiple machines, +This feature allows us to run tests in parallel on multiple machines, and to manage different browser versions and browser configurations centrally (instead of in each individual test). From 093ec8e8d4a579df328f8c63f0113d2b744af48a Mon Sep 17 00:00:00 2001 From: Rajendra Kadam Date: Mon, 6 Jul 2020 11:57:30 +0530 Subject: [PATCH 03/10] Refactoe grid4 docs --- .../grid/grid_4/components_of_a_grid.de.md | 37 ++++++++++++++--- .../grid/grid_4/components_of_a_grid.en.md | 32 ++++++++++++++- .../grid/grid_4/components_of_a_grid.es.md | 35 ++++++++++++---- .../grid/grid_4/components_of_a_grid.fr.md | 41 +++++++++++++++---- .../grid/grid_4/components_of_a_grid.ja.md | 30 ++++++++++---- .../grid/grid_4/components_of_a_grid.ko.md | 34 +++++++++++++-- .../grid/grid_4/components_of_a_grid.nl.md | 32 ++++++++++++++- .../grid/grid_4/components_of_a_grid.zh-cn.md | 30 ++++++++++---- .../grid_4/setting_up_your_own_grid.de.md | 2 +- docs_source_files/content/grid4/_index.de.md | 33 --------------- docs_source_files/content/grid4/_index.en.md | 27 ------------ docs_source_files/content/grid4/_index.es.md | 30 -------------- docs_source_files/content/grid4/_index.fr.md | 35 ---------------- docs_source_files/content/grid4/_index.ja.md | 20 --------- docs_source_files/content/grid4/_index.ko.md | 20 --------- docs_source_files/content/grid4/_index.nl.md | 33 --------------- .../content/grid4/_index.zh-cn.md | 21 ---------- .../content/grid4/components_of_a_grid.de.md | 39 ------------------ .../content/grid4/components_of_a_grid.en.md | 34 --------------- .../content/grid4/components_of_a_grid.es.md | 33 --------------- .../content/grid4/components_of_a_grid.fr.md | 39 ------------------ .../content/grid4/components_of_a_grid.ja.md | 28 ------------- .../content/grid4/components_of_a_grid.ko.md | 40 ------------------ .../content/grid4/components_of_a_grid.nl.md | 40 ------------------ .../grid4/components_of_a_grid.zh-cn.md | 28 ------------- .../purposes_and_main_functionalities.de.md | 17 -------- .../purposes_and_main_functionalities.en.md | 12 ------ .../purposes_and_main_functionalities.es.md | 12 ------ .../purposes_and_main_functionalities.fr.md | 12 ------ .../purposes_and_main_functionalities.ja.md | 13 ------ .../purposes_and_main_functionalities.ko.md | 12 ------ .../purposes_and_main_functionalities.nl.md | 18 -------- ...purposes_and_main_functionalities.zh-cn.md | 12 ------ 33 files changed, 232 insertions(+), 649 deletions(-) delete mode 100644 docs_source_files/content/grid4/_index.de.md delete mode 100644 docs_source_files/content/grid4/_index.en.md delete mode 100644 docs_source_files/content/grid4/_index.es.md delete mode 100644 docs_source_files/content/grid4/_index.fr.md delete mode 100644 docs_source_files/content/grid4/_index.ja.md delete mode 100644 docs_source_files/content/grid4/_index.ko.md delete mode 100644 docs_source_files/content/grid4/_index.nl.md delete mode 100644 docs_source_files/content/grid4/_index.zh-cn.md delete mode 100644 docs_source_files/content/grid4/components_of_a_grid.de.md delete mode 100644 docs_source_files/content/grid4/components_of_a_grid.en.md delete mode 100644 docs_source_files/content/grid4/components_of_a_grid.es.md delete mode 100644 docs_source_files/content/grid4/components_of_a_grid.fr.md delete mode 100644 docs_source_files/content/grid4/components_of_a_grid.ja.md delete mode 100644 docs_source_files/content/grid4/components_of_a_grid.ko.md delete mode 100644 docs_source_files/content/grid4/components_of_a_grid.nl.md delete mode 100644 docs_source_files/content/grid4/components_of_a_grid.zh-cn.md delete mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.de.md delete mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.en.md delete mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.es.md delete mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.fr.md delete mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.ja.md delete mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.ko.md delete mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.nl.md delete mode 100644 docs_source_files/content/grid4/purposes_and_main_functionalities.zh-cn.md diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.de.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.de.md index bdfddf557dda..a471ad0280ee 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.de.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.de.md @@ -1,12 +1,39 @@ --- title: "Komponenten" -weight: 1 +weight: 2 --- {{% notice info %}} - Diese Seite wird von Englisch -auf Deutsch übersetzt. Sprichst Du Deutsch? Hilf uns die Seite + Diese Seite wird von Englisch +auf Deutsch übersetzt. Sprichst Du Deutsch? Hilf uns die Seite zu übersetzen indem Du uns einen Pull Reqeust schickst! -{{% /notice %}} + {{% /notice %}} +![Grid](/images/grid.png) + +## Hub +* Intermediary and manager +* Accepts requests to run tests +* Takes instructions from client and executes them remotely on the nodes +* Manages threads + +A _Hub_ is a central point where all your tests are sent. +Each Selenium Grid consists of exactly one hub. The hub needs to be reachable +from the respective clients (i.e. CI server, Developer machine etc.) +The hub will connect one or more nodes +that tests will be delegated to. + +## Nodes + +* Where the browsers live +* Registers itself to the hub and communicates its capabilities +* Receives requests from the hub and executes them + +_Nodes_ are different Selenium instances +that will execute tests on individual computer systems. +There can be many nodes in a grid. +The machines which are nodes do not need to be the same platform +or have the same browser selection as that of the hub or the other nodes. +A node on Windows might have the capability of +offering Internet Explorer as a browser option, +whereas this wouldn't be possible on Linux or Mac. -> Work in progress diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md index 59e51e007a38..0d1dcdfe7828 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md @@ -1,6 +1,34 @@ --- title: "Components" -weight: 1 +weight: 2 --- -> Work in progress +![Grid](/images/grid4.png) + +## Hub +* Intermediary and manager +* Accepts requests to run tests +* Takes instructions from client and executes them remotely on the nodes +* Manages threads + +A _Hub_ is a central point where all your tests are sent. +Each Selenium Grid consists of exactly one hub. The hub needs to be reachable +from the respective clients (i.e. CI server, Developer machine etc.) +The hub will connect one or more nodes +that tests will be delegated to. + +## Nodes + +* Where the browsers live +* Registers itself to the hub and communicates its capabilities +* Receives requests from the hub and executes them + +_Nodes_ are different Selenium instances +that will execute tests on individual computer systems. +There can be many nodes in a grid. +The machines which are nodes do not need to be the same platform +or have the same browser selection as that of the hub or the other nodes. +A node on Windows might have the capability of +offering Internet Explorer as a browser option, +whereas this wouldn't be possible on Linux or Mac. + diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md index eddc7f8a1ccb..c918b0bd1a1c 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md @@ -1,12 +1,33 @@ --- title: "Componentes" -weight: 1 +weight: 2 --- -{{% notice info %}} - Page being translated from -English to Spanish. Do you speak Spanish? Help us to translate -it by sending us pull requests! -{{% /notice %}} +![Grid](/images/grid.png) -> Work in progress +## Hub +* Ejerce como mediador y administrador +* Acepta peticiones para ejecutar los tests +* Recoge instrucciones de los clientes y las ejecuta de forma remota en los nodos +* Gestiona los hilos + +El _Hub_ es un punto central donde se envian todos tus tests. +Cada _Selenium Grid_ consiste en exactamente un _hub_. El hub necesita ser +accesible desde la perspectiva de los clientes (ej. Servidor de la CI, maquina +del desarrollador) +El hub se conectará a uno o mas nodos a los que los tests serán delegados. + +## Nodos + +* Donde se ubican los navegadores +* Se registra a si mismo en el hub y le comunica sus capacidades +* Recibe las peticiones desde el hub las ejecuta + +Los nodos son diferentes instancias de Selenium que ejecutarán los tests en +sistemas informáticos individuales. +Puedes haber muchos nodos en un grid. +Las maquinas que contienen los nodos no necesitan estar bajo el mismo sistema +operativo o disponer de la misma selección de navegadores que el hub u otros +nodos. +Un nodo en Windows podría tener la capacidad de ofrecer Internet Explorer como +opción del navegador mientras que esto no podría ser posible en Linux o Mac. diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md index dc156b365f69..c0c949f9f72b 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md @@ -1,12 +1,39 @@ --- title: "Composant" -weight: 1 +weight: 2 --- -{{% notice info %}} - Page being translated from -English to French. Do you speak French? Help us to translate -it by sending us pull requests! -{{% /notice %}} +![Grid](/images/grid.png) + +## Hub +* Intermédiaire et gestionnaire +* Accepte les demandes d'exécution de tests +* Prend les instructions du client et les exécute à distance sur les nœuds +* Gère les threads + +Un _Hub_ est un point central où tous +vos tests sont envoyés. +Chaque grille de sélénium se compose exactement +d'un concentrateur. Le hub doit être accessible +des clients respectifs (c.-à-d. serveur CI, machine développeur, etc.) +Le concentrateur connectera un ou plusieurs nœuds +auquel les tests seront délégués. + +## Nodes + +* Où vivent les navigateurs +* S'enregistre auprès du hub et communique ses capacités +* Reçoit les demandes du hub et les exécute + +_Nodes_ sont différentes instances de Selenium +qui exécutera des tests sur des +systèmes informatiques individuels. +Il peut y avoir plusieurs nœuds dans une grille. +Les machines qui sont des nœuds n'ont +pas besoin d'être la même plate-forme +ou avoir la même sélection de navigateur +que celle du concentrateur ou des autres nœuds. +Un nœud sous Windows peut avoir la capacité de +offrant Internet Explorer comme option de navigateur, +alors que cela ne serait pas possible sur Linux ou Mac. -> Work in progress diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md index ef6289f76606..ac156d55ee84 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md @@ -1,12 +1,28 @@ --- title: "グリッドのコンポーネント" -weight: 1 +weight: 2 --- -{{% notice info %}} - Page being translated from -English to Japanese. Do you speak Japanese? Help us to translate -it by sending us pull requests! -{{% /notice %}} +![Grid](/images/grid.png) -> Work in progress +## ハブ +* 仲介者およびマネージャー +* テストを実行する要求を受け入れます +* クライアントから命令を受け取り、ノード上でリモートで実行します +* スレッドを管理します + +_ハブ_ は、すべてのテストが送信される中心点です。 +各Selenium Gridは、ちょうど1つのハブで構成されます。 +ハブは、それぞれのクライアント(CIサーバー、開発者マシンなど)から到達可能である必要があります。 +ハブは、テストが委任される1つ以上のノードを接続します。 + +## ノード + +* ブラウザが存在する場所 +* ハブに自分自身を登録し、その機能を伝えます +* ハブからリクエストを受信して実行します + +_ノード_ は、個々のコンピューターシステムでテストを実行するさまざまなSeleniumインスタンスです。 +グリッドには多くのノードが存在する場合があります。 +ノードであるマシンは、ハブまたは他のノードと同じプラットフォームであったり、同じブラウザーを選定する必要はありません。 +Windows上のノードは、Internet Explorerをブラウザーオプションとして提供する機能を備えている場合がありますが、これはLinuxまたはMacでは不可能です。 diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md index ecb983c7bb6c..1640ff8f98e3 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md @@ -1,12 +1,40 @@ --- title: "Components" -weight: 1 +weight: 2 --- {{% notice info %}} - Page being translated from + Page being translated from English to Korean. Do you speak Korean? Help us to translate it by sending us pull requests! {{% /notice %}} -> Work in progress +![Grid](/images/grid.png) + +## Hub +* Intermediary and manager +* Accepts requests to run tests +* Takes instructions from client and executes them remotely on the nodes +* Manages threads + +A _Hub_ is a central point where all your tests are sent. +Each Selenium Grid consists of exactly one hub. The hub needs to be reachable +from the respective clients (i.e. CI server, Developer machine etc.) +The hub will connect one or more nodes +that tests will be delegated to. + +## Nodes + +* Where the browsers live +* Registers itself to the hub and communicates its capabilities +* Receives requests from the hub and executes them + +_Nodes_ are different Selenium instances +that will execute tests on individual computer systems. +There can be many nodes in a grid. +The machines which are nodes do not need to be the same platform +or have the same browser selection as that of the hub or the other nodes. +A node on Windows might have the capability of +offering Internet Explorer as a browser option, +whereas this wouldn't be possible on Linux or Mac. + diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md index c6190f3240c5..0d1ff1e085cf 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md @@ -1,6 +1,6 @@ --- title: "Components" -weight: 1 +weight: 2 --- {{% notice info %}} @@ -9,4 +9,32 @@ English to Dutch. Do you speak Dutch? Help us to translate it by sending us pull requests! {{% /notice %}} -> Work in progress +![Grid](/images/grid.png) + +## Hub +* Intermediary and manager +* Accepts requests to run tests +* Takes instructions from client and executes them remotely on the nodes +* Manages threads + +A _Hub_ is a central point where all your tests are sent. +Each Selenium Grid consists of exactly one hub. The hub needs to be reachable +from the respective clients (i.e. CI server, Developer machine etc.) +The hub will connect one or more nodes +that tests will be delegated to. + +## Nodes + +* Where the browsers live +* Registers itself to the hub and communicates its capabilities +* Receives requests from the hub and executes them + +_Nodes_ are different Selenium instances +that will execute tests on individual computer systems. +There can be many nodes in a grid. +The machines which are nodes do not need to be the same platform +or have the same browser selection as that of the hub or the other nodes. +A node on Windows might have the capability of +offering Internet Explorer as a browser option, +whereas this wouldn't be possible on Linux or Mac. + diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md index 7d3d5591bb3e..d0020ba683ac 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md @@ -1,12 +1,28 @@ --- title: "服务网格的组件" -weight: 1 +weight: 2 --- -{{% notice info %}} - Page being translated from -English to Chinese. Do you speak Chinese? Help us to translate -it by sending us pull requests! -{{% /notice %}} +![Grid](/images/grid.png) + +## 转发器(hub) +* 中间人和管理者 +* 接受请求 执行测试任务 +* 接受客户端的指示并在远程节点上执行任务 +* 管理进程 + +_转发器(hub)_ 是一个接受所有所有测试任务的中心节点。 +每个Selenium服务网格包含一个转发器(hub)。转发器(hub)需要能被所有的客户机(比如:持续集成服务器,开发机等等)访问到。 +转发器(hub)会连接1个或者多个节点,这些节点会代理执行测试任务。 + +## 节点 + +* 浏览器会被安装在节点上 +* 节点会把自己注册在转发器(hub)上并申报自己作为测试代理的能力(有些什么浏览器,每个浏览器可以运行几个实例等等) +* 接受转发器(hub)的指示并执行这些指示 + +_节点_ 和不同的Selenium实例,他们能够在特定的计算机系统上执行测试。 +一个服务网格中可以有很多节点。 +这些终端设备并不需要使用统一的平台(或者说操作系统)也不需要选择相同的浏览器。 +一个Windows节点可以提供IE作为一个浏览器选项来执行测试,然而Linux和MAC是不可能提供的。 -> Work in progress diff --git a/docs_source_files/content/grid/grid_4/setting_up_your_own_grid.de.md b/docs_source_files/content/grid/grid_4/setting_up_your_own_grid.de.md index a1e0cc56538b..267bbf028ce1 100644 --- a/docs_source_files/content/grid/grid_4/setting_up_your_own_grid.de.md +++ b/docs_source_files/content/grid/grid_4/setting_up_your_own_grid.de.md @@ -1,5 +1,5 @@ --- -title: "Aufsetzen eines Grid" +title: "Aufsetzen" weight: 2 --- diff --git a/docs_source_files/content/grid4/_index.de.md b/docs_source_files/content/grid4/_index.de.md deleted file mode 100644 index 24d580a706dc..000000000000 --- a/docs_source_files/content/grid4/_index.de.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Selenium Grid" -chapter: true -weight: 9 ---- - -# Selenium Grid 4 - -{{% notice info %}} - Diese Seite wird von Englisch -auf Deutsch übersetzt. Sprichst Du Deutsch? Hilf uns die Seite -zu übersetzen indem Du uns einen Pull Reqeust schickst! - {{% /notice %}} - -_Selenium Grid 4_ is a smart proxy server -that allows Selenium tests to route commands to remote web browser instances. -Its aim is to provide an easy way to run tests in parallel on multiple machines. - -With Selenium Grid 4, -one server acts as the hub that routes JSON formatted test commands -to one or more registered Grid nodes. -Tests contact the hub to obtain access to remote browser instances. -The hub has a list of registered servers that it provides access to, -and allows control of these instances. - -This feature allows us to run tests in parallel on multiple machines, -and to manage different browser versions and browser configurations centrally -(instead of in each individual test). - -Selenium Grid 4 is not a silver bullet. -It solves a subset of common delegation and distribution problems, -but will for example not manage your infrastructure, -and might not suit your specific needs. diff --git a/docs_source_files/content/grid4/_index.en.md b/docs_source_files/content/grid4/_index.en.md deleted file mode 100644 index fbf75a6db438..000000000000 --- a/docs_source_files/content/grid4/_index.en.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: "Grid 4" -chapter: true -weight: 9 ---- - -# Selenium Grid 4 - -_Selenium Grid 4_ is a smart proxy server -that allows Selenium tests to route commands to remote web browser instances. -Its aim is to provide an easy way to run tests in parallel on multiple machines. - -With Selenium Grid 4, -one server acts as the hub that routes JSON formatted test commands -to one or more registered Grid nodes. -Tests contact the hub to obtain access to remote browser instances. -The hub has a list of registered servers that it provides access to, -and allows control of these instances. - -This feature allows us to run tests in parallel on multiple machines, -and to manage different browser versions and browser configurations centrally -(instead of in each individual test). - -Selenium Grid 4 is not a silver bullet. -It solves a subset of common delegation and distribution problems, -but will for example not manage your infrastructure, -and might not suit your specific needs. diff --git a/docs_source_files/content/grid4/_index.es.md b/docs_source_files/content/grid4/_index.es.md deleted file mode 100644 index 9adcf21671c6..000000000000 --- a/docs_source_files/content/grid4/_index.es.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: "Grid" -chapter: true -weight: 9 ---- - -# Selenium Grid 4 - -_Selenium Grid 4_ es un servidor inteligente que efectúa de proxy que permite a los -tests de Selenium enrutar sus comandos hacia instancias remotas de navegadores -web. -La intención de esto es proporcionar una forma sencilla de ejecutar los tests en -paralelo en múltiple maquinas. - - -Con _Selenium Grid 4_ un servidor actúa como el centro de actividad (_hub_) -encargado de enrutar los comandos de los tests en formato JSON hacia uno o mas -nodos registrados en el _Grid_. -Los tests contactan con el hub para obtener acceso a las instancias remotas de -los navegadores. - -_Selenium Grid 4_ te permite ejecutar los tests en paralelo en múltiples maquinas -y también te permite gestionar diferentes versiones de navegadores y diferentes -configuraciones de navegadores de manera centralizada (en lugar de hacerlo de -manera individual en cada test) - -_Selenium Grid 4_ no es una solución mágica para todos tus problemas. -Permite resolver un subconjunto de problemas comunes de delegación y distribución, -pero, por ejemplo, no administrará su infraestructura y podría no satisfacer sus -necesidades personales. \ No newline at end of file diff --git a/docs_source_files/content/grid4/_index.fr.md b/docs_source_files/content/grid4/_index.fr.md deleted file mode 100644 index e24bdfe39083..000000000000 --- a/docs_source_files/content/grid4/_index.fr.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: "Grid" -chapter: true -weight: 9 ---- - -# Selenium Grid 4 - -_Selenium Grid 4_ est un serveur proxy intelligent -qui permet aux tests Selenium d'acheminer des -commandes vers des instances de navigateur Web distantes. -Son objectif est de fournir un moyen simple -d'exécuter des tests en parallèle sur plusieurs machines. - -Avec Selenium Grid, -un serveur fait office de concentrateur -qui achemine les commandes de test au format JSON -à un ou plusieurs nœuds de grille enregistrés. -Les tests contactent le concentrateur pour -obtenir l'accès aux instances de navigateur distantes. -Le concentrateur dispose d'une liste de -serveurs enregistrés auxquels il donne accès, -et permet le contrôle de ces instances. - -Selenium Grid nous permet d'effectuer des -tests en parallèle sur plusieurs machines, -et pour gérer les différentes versions et -configurations de navigateur de manière centralisée -(au lieu de dans chaque test individuel). - -La grille de sélénium n'est pas une -solution miracle. Il résout un sous-ensemble -de problèmes de délégation et de distribution communs, -mais ne gèrera par exemple pas votre infrastructure, -et pourrait ne pas répondre à vos besoins spécifiques. diff --git a/docs_source_files/content/grid4/_index.ja.md b/docs_source_files/content/grid4/_index.ja.md deleted file mode 100644 index 4d0fce1bfbad..000000000000 --- a/docs_source_files/content/grid4/_index.ja.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "Grid" -chapter: true -weight: 9 ---- - - -# Selenium Grid 4 - -_Selenium Grid 4_ は、SeleniumテストがコマンドをリモートWebブラウザーインスタンスにルーティングできるようにする賢いプロキシサーバーです。 -その目的は、複数のマシンで並行してテストを実行する簡単な方法を提供することです。 - -Selenium Gridでは、1つのサーバーが、JSON形式のテストコマンドを1つ以上の登録済みのグリッドノードにルーティングするハブとして機能します。 -テストはハブに接続して、リモートブラウザーインスタンスへのアクセスを取得します。 -ハブには、アクセスを提供する登録済みサーバーのリストがあり、これらのインスタンスを制御できます。 - -Selenium Gridを使用すると、複数のマシンで並行してテストを実行し、さまざまなブラウザーバージョンとブラウザー構成を(個々のテストではなく)一元的に管理できます。 - -Selenium Gridは特効薬ではありません。 -一般的な委任および配布の問題のサブセットを解決しますが、たとえばインフラストラクチャを管理せず、特定のニーズに適さない場合があります。 diff --git a/docs_source_files/content/grid4/_index.ko.md b/docs_source_files/content/grid4/_index.ko.md deleted file mode 100644 index e37e563b3066..000000000000 --- a/docs_source_files/content/grid4/_index.ko.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: "조합 격자(Grid)" -chapter: true -weight: 9 ---- - -# Selenium Grid 4 - -_Selenium Grid 4_ 는 Selenium 테스트가 명령을 원격 웹 브라우저 인스턴스로 보낼 수 있도록 하는 스마트 프록시 서버입니다. -이것의 목적은 여러 기계에서 병렬로 테스트를 실행할 수 있는 쉬운 방법을 제공하는 것입니다. - -_Selenium Grid 4_ 에서 한 서버는 JSON 형식 테스트 명령을 하나 이상의 등록된 Grid 노드로 보내는 허브로서의 역할을 합니다. -테스트를 허브에 연결하여 원격 브라우저 인스턴스에 대한 액세스 권한을 얻으십시오. -허브에는 이러한 인스턴스에 대한 액세스 권한을 제공하고 제어를 허용하는 등록된 서버 목록이 있습니다. - -_Selenium Grid 4_ 는 여러 컴퓨터에서 동시에 테스트를 실행할 수 있도록 하며, -(개별 테스트 대신에) 서로 다른 브라우저 버전과 브라우저 구성을 중앙에서 관리할 수 있도록 합니다. - -_Selenium Grid 4_ 는 묘책이 아닙니다. 일반적인 위임 및 배포 문제의 부분 집합을 해결하지만, -예를 들어 당신의 인프라를 관리하지 않으며 당신의 특정한 요구에 적합하지 않을 수 있습니다. diff --git a/docs_source_files/content/grid4/_index.nl.md b/docs_source_files/content/grid4/_index.nl.md deleted file mode 100644 index 953fc2e12c5c..000000000000 --- a/docs_source_files/content/grid4/_index.nl.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Grid" -chapter: true -weight: 9 ---- - -{{% notice info %}} - Page being translated from -English to Dutch. Do you speak Dutch? Help us to translate -it by sending us pull requests! -{{% /notice %}} - -# Selenium Grid 4 - -_Selenium Grid 4_ is a smart proxy server -that allows Selenium tests to route commands to remote web browser instances. -Its aim is to provide an easy way to run tests in parallel on multiple machines. - -With Selenium Grid, -one server acts as the hub that routes JSON formatted test commands -to one or more registered Grid nodes. -Tests contact the hub to obtain access to remote browser instances. -The hub has a list of registered servers that it provides access to, -and allows control of these instances. - -This feature allows us to run tests in parallel on multiple machines, -and to manage different browser versions and browser configurations centrally -(instead of in each individual test). - -Selenium Grid is not a silver bullet. -It solves a subset of common delegation and distribution problems, -but will for example not manage your infrastructure, -and might not suit your specific needs. diff --git a/docs_source_files/content/grid4/_index.zh-cn.md b/docs_source_files/content/grid4/_index.zh-cn.md deleted file mode 100644 index a3c1d0b7c5a3..000000000000 --- a/docs_source_files/content/grid4/_index.zh-cn.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: "服务网格" -chapter: true -weight: 9 ---- - -# 服务网格 - -_Selenium服务网格_ 是一个能够让Selenium的测试把命令传送到一个远程浏览器实例的职能代理服务器。 -他的目的是提供一个简便的方法来在多台终端上并行的执行测试任务。 - -在Selenium服务网格, -一台服务器作为转发器(hub)将JSON格式的测试命令转发到1台或多台注册的节点。 -测试任务通过跟转发器(hub)的交互来操作远端浏览器实例。 -转发器(hub)维护了一个可供使用的注册服务器列表,也允许我们通过转发器(hub)来控制这些实例。 - -Selenium服务网格允许我们在多台节点服务器上并行执行测试, -同时也中心化的管理多个浏览器版本,多种浏览器的配置。(以替代传统的基于个人的测试) - -Selenium服务网格并不是万能的(silver bullet)。 -它能够解决一些通用的代理问题和分布式的问题,但是并不能管理你的硬件,也可能不适合你的一些特殊需求。 diff --git a/docs_source_files/content/grid4/components_of_a_grid.de.md b/docs_source_files/content/grid4/components_of_a_grid.de.md deleted file mode 100644 index 97151e64b49e..000000000000 --- a/docs_source_files/content/grid4/components_of_a_grid.de.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "Komponenten des Grids" -weight: 2 ---- - -{{% notice info %}} - Diese Seite wird von Englisch -auf Deutsch übersetzt. Sprichst Du Deutsch? Hilf uns die Seite -zu übersetzen indem Du uns einen Pull Reqeust schickst! - {{% /notice %}} -![Grid](/images/grid.png) - -## Hub -* Intermediary and manager -* Accepts requests to run tests -* Takes instructions from client and executes them remotely on the nodes -* Manages threads - -A _Hub_ is a central point where all your tests are sent. -Each Selenium Grid consists of exactly one hub. The hub needs to be reachable -from the respective clients (i.e. CI server, Developer machine etc.) -The hub will connect one or more nodes -that tests will be delegated to. - -## Nodes - -* Where the browsers live -* Registers itself to the hub and communicates its capabilities -* Receives requests from the hub and executes them - -_Nodes_ are different Selenium instances -that will execute tests on individual computer systems. -There can be many nodes in a grid. -The machines which are nodes do not need to be the same platform -or have the same browser selection as that of the hub or the other nodes. -A node on Windows might have the capability of -offering Internet Explorer as a browser option, -whereas this wouldn't be possible on Linux or Mac. - diff --git a/docs_source_files/content/grid4/components_of_a_grid.en.md b/docs_source_files/content/grid4/components_of_a_grid.en.md deleted file mode 100644 index 3fdfc2eee73b..000000000000 --- a/docs_source_files/content/grid4/components_of_a_grid.en.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: "Components of a Grid" -weight: 2 ---- - -![Grid](/images/grid4.png) - -## Hub -* Intermediary and manager -* Accepts requests to run tests -* Takes instructions from client and executes them remotely on the nodes -* Manages threads - -A _Hub_ is a central point where all your tests are sent. -Each Selenium Grid consists of exactly one hub. The hub needs to be reachable -from the respective clients (i.e. CI server, Developer machine etc.) -The hub will connect one or more nodes -that tests will be delegated to. - -## Nodes - -* Where the browsers live -* Registers itself to the hub and communicates its capabilities -* Receives requests from the hub and executes them - -_Nodes_ are different Selenium instances -that will execute tests on individual computer systems. -There can be many nodes in a grid. -The machines which are nodes do not need to be the same platform -or have the same browser selection as that of the hub or the other nodes. -A node on Windows might have the capability of -offering Internet Explorer as a browser option, -whereas this wouldn't be possible on Linux or Mac. - diff --git a/docs_source_files/content/grid4/components_of_a_grid.es.md b/docs_source_files/content/grid4/components_of_a_grid.es.md deleted file mode 100644 index d47afc2e8ddf..000000000000 --- a/docs_source_files/content/grid4/components_of_a_grid.es.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: "Componentes de un Grid" -weight: 2 ---- - -![Grid](/images/grid.png) - -## Hub -* Ejerce como mediador y administrador -* Acepta peticiones para ejecutar los tests -* Recoge instrucciones de los clientes y las ejecuta de forma remota en los nodos -* Gestiona los hilos - -El _Hub_ es un punto central donde se envian todos tus tests. -Cada _Selenium Grid_ consiste en exactamente un _hub_. El hub necesita ser -accesible desde la perspectiva de los clientes (ej. Servidor de la CI, maquina -del desarrollador) -El hub se conectará a uno o mas nodos a los que los tests serán delegados. - -## Nodos - -* Donde se ubican los navegadores -* Se registra a si mismo en el hub y le comunica sus capacidades -* Recibe las peticiones desde el hub las ejecuta - -Los nodos son diferentes instancias de Selenium que ejecutarán los tests en -sistemas informáticos individuales. -Puedes haber muchos nodos en un grid. -Las maquinas que contienen los nodos no necesitan estar bajo el mismo sistema -operativo o disponer de la misma selección de navegadores que el hub u otros -nodos. -Un nodo en Windows podría tener la capacidad de ofrecer Internet Explorer como -opción del navegador mientras que esto no podría ser posible en Linux o Mac. diff --git a/docs_source_files/content/grid4/components_of_a_grid.fr.md b/docs_source_files/content/grid4/components_of_a_grid.fr.md deleted file mode 100644 index 365f818512d8..000000000000 --- a/docs_source_files/content/grid4/components_of_a_grid.fr.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: "Composant d'une Grid" -weight: 2 ---- - -![Grid](/images/grid.png) - -## Hub -* Intermédiaire et gestionnaire -* Accepte les demandes d'exécution de tests -* Prend les instructions du client et les exécute à distance sur les nœuds -* Gère les threads - -Un _Hub_ est un point central où tous -vos tests sont envoyés. -Chaque grille de sélénium se compose exactement -d'un concentrateur. Le hub doit être accessible -des clients respectifs (c.-à-d. serveur CI, machine développeur, etc.) -Le concentrateur connectera un ou plusieurs nœuds -auquel les tests seront délégués. - -## Nodes - -* Où vivent les navigateurs -* S'enregistre auprès du hub et communique ses capacités -* Reçoit les demandes du hub et les exécute - -_Nodes_ sont différentes instances de Selenium -qui exécutera des tests sur des -systèmes informatiques individuels. -Il peut y avoir plusieurs nœuds dans une grille. -Les machines qui sont des nœuds n'ont -pas besoin d'être la même plate-forme -ou avoir la même sélection de navigateur -que celle du concentrateur ou des autres nœuds. -Un nœud sous Windows peut avoir la capacité de -offrant Internet Explorer comme option de navigateur, -alors que cela ne serait pas possible sur Linux ou Mac. - diff --git a/docs_source_files/content/grid4/components_of_a_grid.ja.md b/docs_source_files/content/grid4/components_of_a_grid.ja.md deleted file mode 100644 index ac156d55ee84..000000000000 --- a/docs_source_files/content/grid4/components_of_a_grid.ja.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "グリッドのコンポーネント" -weight: 2 ---- - -![Grid](/images/grid.png) - -## ハブ -* 仲介者およびマネージャー -* テストを実行する要求を受け入れます -* クライアントから命令を受け取り、ノード上でリモートで実行します -* スレッドを管理します - -_ハブ_ は、すべてのテストが送信される中心点です。 -各Selenium Gridは、ちょうど1つのハブで構成されます。 -ハブは、それぞれのクライアント(CIサーバー、開発者マシンなど)から到達可能である必要があります。 -ハブは、テストが委任される1つ以上のノードを接続します。 - -## ノード - -* ブラウザが存在する場所 -* ハブに自分自身を登録し、その機能を伝えます -* ハブからリクエストを受信して実行します - -_ノード_ は、個々のコンピューターシステムでテストを実行するさまざまなSeleniumインスタンスです。 -グリッドには多くのノードが存在する場合があります。 -ノードであるマシンは、ハブまたは他のノードと同じプラットフォームであったり、同じブラウザーを選定する必要はありません。 -Windows上のノードは、Internet Explorerをブラウザーオプションとして提供する機能を備えている場合がありますが、これはLinuxまたはMacでは不可能です。 diff --git a/docs_source_files/content/grid4/components_of_a_grid.ko.md b/docs_source_files/content/grid4/components_of_a_grid.ko.md deleted file mode 100644 index 35f4a87bae92..000000000000 --- a/docs_source_files/content/grid4/components_of_a_grid.ko.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Components of a Grid" -weight: 2 ---- - -{{% notice info %}} - Page being translated from -English to Korean. Do you speak Korean? Help us to translate -it by sending us pull requests! -{{% /notice %}} - -![Grid](/images/grid.png) - -## Hub -* Intermediary and manager -* Accepts requests to run tests -* Takes instructions from client and executes them remotely on the nodes -* Manages threads - -A _Hub_ is a central point where all your tests are sent. -Each Selenium Grid consists of exactly one hub. The hub needs to be reachable -from the respective clients (i.e. CI server, Developer machine etc.) -The hub will connect one or more nodes -that tests will be delegated to. - -## Nodes - -* Where the browsers live -* Registers itself to the hub and communicates its capabilities -* Receives requests from the hub and executes them - -_Nodes_ are different Selenium instances -that will execute tests on individual computer systems. -There can be many nodes in a grid. -The machines which are nodes do not need to be the same platform -or have the same browser selection as that of the hub or the other nodes. -A node on Windows might have the capability of -offering Internet Explorer as a browser option, -whereas this wouldn't be possible on Linux or Mac. - diff --git a/docs_source_files/content/grid4/components_of_a_grid.nl.md b/docs_source_files/content/grid4/components_of_a_grid.nl.md deleted file mode 100644 index f544471cde02..000000000000 --- a/docs_source_files/content/grid4/components_of_a_grid.nl.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: "Components of a Grid" -weight: 2 ---- - -{{% notice info %}} - Page being translated from -English to Dutch. Do you speak Dutch? Help us to translate -it by sending us pull requests! -{{% /notice %}} - -![Grid](/images/grid.png) - -## Hub -* Intermediary and manager -* Accepts requests to run tests -* Takes instructions from client and executes them remotely on the nodes -* Manages threads - -A _Hub_ is a central point where all your tests are sent. -Each Selenium Grid consists of exactly one hub. The hub needs to be reachable -from the respective clients (i.e. CI server, Developer machine etc.) -The hub will connect one or more nodes -that tests will be delegated to. - -## Nodes - -* Where the browsers live -* Registers itself to the hub and communicates its capabilities -* Receives requests from the hub and executes them - -_Nodes_ are different Selenium instances -that will execute tests on individual computer systems. -There can be many nodes in a grid. -The machines which are nodes do not need to be the same platform -or have the same browser selection as that of the hub or the other nodes. -A node on Windows might have the capability of -offering Internet Explorer as a browser option, -whereas this wouldn't be possible on Linux or Mac. - diff --git a/docs_source_files/content/grid4/components_of_a_grid.zh-cn.md b/docs_source_files/content/grid4/components_of_a_grid.zh-cn.md deleted file mode 100644 index d0020ba683ac..000000000000 --- a/docs_source_files/content/grid4/components_of_a_grid.zh-cn.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: "服务网格的组件" -weight: 2 ---- - -![Grid](/images/grid.png) - -## 转发器(hub) -* 中间人和管理者 -* 接受请求 执行测试任务 -* 接受客户端的指示并在远程节点上执行任务 -* 管理进程 - -_转发器(hub)_ 是一个接受所有所有测试任务的中心节点。 -每个Selenium服务网格包含一个转发器(hub)。转发器(hub)需要能被所有的客户机(比如:持续集成服务器,开发机等等)访问到。 -转发器(hub)会连接1个或者多个节点,这些节点会代理执行测试任务。 - -## 节点 - -* 浏览器会被安装在节点上 -* 节点会把自己注册在转发器(hub)上并申报自己作为测试代理的能力(有些什么浏览器,每个浏览器可以运行几个实例等等) -* 接受转发器(hub)的指示并执行这些指示 - -_节点_ 和不同的Selenium实例,他们能够在特定的计算机系统上执行测试。 -一个服务网格中可以有很多节点。 -这些终端设备并不需要使用统一的平台(或者说操作系统)也不需要选择相同的浏览器。 -一个Windows节点可以提供IE作为一个浏览器选项来执行测试,然而Linux和MAC是不可能提供的。 - diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.de.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.de.md deleted file mode 100644 index 4ef7d5133292..000000000000 --- a/docs_source_files/content/grid4/purposes_and_main_functionalities.de.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: "Zweck und hauptsächlich genutze Funktionalität" -menuTitle: "Zweck und Funktionen" -weight: 1 ---- - -{{% notice info %}} - Diese Seite wird von Englisch -auf Deutsch übersetzt. Sprichst Du Deutsch? Hilf uns die Seite -zu übersetzen indem Du uns einen Pull Reqeust schickst! - {{% /notice %}} -* Central entry point for all tests -* Management and control of the nodes / environment where the browsers run -* Scaling -* Running tests in parallel -* Cross platform testing -* Load balancing diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.en.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.en.md deleted file mode 100644 index 248ad2029f73..000000000000 --- a/docs_source_files/content/grid4/purposes_and_main_functionalities.en.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Purposes and main functionalities" -menuTitle: "Purposes and functionalities" -weight: 1 ---- - -* Central entry point for all tests -* Management and control of the nodes / environment where the browsers run -* Scaling -* Running tests in parallel -* Cross platform testing -* Load balancing diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.es.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.es.md deleted file mode 100644 index f1e57177a386..000000000000 --- a/docs_source_files/content/grid4/purposes_and_main_functionalities.es.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Objetivos y funcionalidades principales" -menuTitle: "Objetivos y funcionalidades principales" -weight: 1 ---- - -* Punto de entrada centralizado para todos los tests -* Gestión y control de los nodos / entornos donde se ejecutan los navegadores -* Escalado -* Ejecución de los tests en paralelo -* Testing cruzado entre diferentes sistemas operativos -* Balanceo de carga diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.fr.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.fr.md deleted file mode 100644 index 373b40d195e6..000000000000 --- a/docs_source_files/content/grid4/purposes_and_main_functionalities.fr.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "Objectifs et fonctionnalitées" -menuTitle: "Objectifs et fonctionnalitées" -weight: 1 ---- - -* Point d'entrée central pour tous les tests -* Gestion et contrôle des nœuds / environnement où s'exécutent les navigateurs -* Mise à l'échelle -* Exécution de tests en parallèle -* Test multiplateforme -* L'équilibrage de charge diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.ja.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.ja.md deleted file mode 100644 index 1e025f5d5f7c..000000000000 --- a/docs_source_files/content/grid4/purposes_and_main_functionalities.ja.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "目的と主な機能" -menuTitle: "目的と機能" -weight: 1 ---- - -* すべてのテストの中央エントリポイント -* ブラウザーが実行されるノード・環境の管理と制御 -* スケーリング -* テストを並列実行 -* クロスプラットフォームでのテスト -* 負荷分散 - diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.ko.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.ko.md deleted file mode 100644 index f2fb04b52120..000000000000 --- a/docs_source_files/content/grid4/purposes_and_main_functionalities.ko.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "목적 및 주요 기능" -menuTitle: "목적 및 기능" -weight: 1 ---- - -* 모든 테스트의 중앙 진입 지점 -* 브라우저가 실행되는 환경과 노드의 관리 및 제어 -* 스케일링 -* 병렬로 테스트 실행 -* 교차 플랫폼 테스트 -* 부하분산 diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.nl.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.nl.md deleted file mode 100644 index c8bec6da25cc..000000000000 --- a/docs_source_files/content/grid4/purposes_and_main_functionalities.nl.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: "Purposes and main functionalities" -menuTitle: "Purposes and functionalities" -weight: 1 ---- - -{{% notice info %}} - Page being translated from -English to Dutch. Do you speak Dutch? Help us to translate -it by sending us pull requests! -{{% /notice %}} - -* Central entry point for all tests -* Management and control of the nodes / environment where the browsers run -* Scaling -* Running tests in parallel -* Cross platform testing -* Load balancing diff --git a/docs_source_files/content/grid4/purposes_and_main_functionalities.zh-cn.md b/docs_source_files/content/grid4/purposes_and_main_functionalities.zh-cn.md deleted file mode 100644 index b1cb0d075d26..000000000000 --- a/docs_source_files/content/grid4/purposes_and_main_functionalities.zh-cn.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: "目的和主要功能" -menuTitle: "目的和主要功能" -weight: 1 ---- - -* 为所有的测试提供统一的入口 -* 管理和控制运行着浏览器的节点/环境 -* 扩展 -* 并行测试 -* 跨平台(操作系统)测试 -* 负载测试 From 22727e2d33c6bd28cd7da76e8388aa45bbcfa8df Mon Sep 17 00:00:00 2001 From: Rajendra Kadam Date: Mon, 6 Jul 2020 13:32:03 +0530 Subject: [PATCH 04/10] Change weight to earlier number --- .../content/grid/grid_4/components_of_a_grid.en.md | 2 +- .../content/grid/grid_4/components_of_a_grid.es.md | 2 +- .../content/grid/grid_4/components_of_a_grid.fr.md | 2 +- .../content/grid/grid_4/components_of_a_grid.ja.md | 2 +- .../content/grid/grid_4/components_of_a_grid.ko.md | 2 +- .../content/grid/grid_4/components_of_a_grid.nl.md | 2 +- .../content/grid/grid_4/components_of_a_grid.zh-cn.md | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md index 0d1dcdfe7828..83f2bcb354f1 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md @@ -1,6 +1,6 @@ --- title: "Components" -weight: 2 +weight: 1 --- ![Grid](/images/grid4.png) diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md index c918b0bd1a1c..58e0f87b2695 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md @@ -1,6 +1,6 @@ --- title: "Componentes" -weight: 2 +weight: 1 --- ![Grid](/images/grid.png) diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md index c0c949f9f72b..a137790292f7 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md @@ -1,6 +1,6 @@ --- title: "Composant" -weight: 2 +weight: 1 --- ![Grid](/images/grid.png) diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md index ac156d55ee84..1dba53f8c50a 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md @@ -1,6 +1,6 @@ --- title: "グリッドのコンポーネント" -weight: 2 +weight: 1 --- ![Grid](/images/grid.png) diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md index 1640ff8f98e3..80f154c016f4 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md @@ -1,6 +1,6 @@ --- title: "Components" -weight: 2 +weight: 1 --- {{% notice info %}} diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md index 0d1ff1e085cf..3f924a4f6c67 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md @@ -1,6 +1,6 @@ --- title: "Components" -weight: 2 +weight: 1 --- {{% notice info %}} diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md index d0020ba683ac..6e8579d9168e 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md @@ -1,6 +1,6 @@ --- title: "服务网格的组件" -weight: 2 +weight: 1 --- ![Grid](/images/grid.png) From 3086c4bf2503736d0c3f3db678336de0b58fa946 Mon Sep 17 00:00:00 2001 From: Rajendra Kadam Date: Mon, 6 Jul 2020 13:47:52 +0530 Subject: [PATCH 05/10] Add image path --- .../content/grid/grid_4/components_of_a_grid.de.md | 4 ++-- .../content/grid/grid_4/components_of_a_grid.es.md | 2 +- .../content/grid/grid_4/components_of_a_grid.fr.md | 2 +- .../content/grid/grid_4/components_of_a_grid.ja.md | 2 +- .../content/grid/grid_4/components_of_a_grid.ko.md | 2 +- .../content/grid/grid_4/components_of_a_grid.nl.md | 2 +- .../content/grid/grid_4/components_of_a_grid.zh-cn.md | 2 +- 7 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.de.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.de.md index a471ad0280ee..8db68bb5ba99 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.de.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.de.md @@ -1,6 +1,6 @@ --- title: "Komponenten" -weight: 2 +weight: 1 --- {{% notice info %}} @@ -8,7 +8,7 @@ weight: 2 auf Deutsch übersetzt. Sprichst Du Deutsch? Hilf uns die Seite zu übersetzen indem Du uns einen Pull Reqeust schickst! {{% /notice %}} -![Grid](/images/grid.png) +![Grid](/images/grid4.png) ## Hub * Intermediary and manager diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md index 58e0f87b2695..a6211dd37da1 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md @@ -3,7 +3,7 @@ title: "Componentes" weight: 1 --- -![Grid](/images/grid.png) +![Grid](/images/grid4.png) ## Hub * Ejerce como mediador y administrador diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md index a137790292f7..73c793c3a58d 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md @@ -3,7 +3,7 @@ title: "Composant" weight: 1 --- -![Grid](/images/grid.png) +![Grid](/images/grid4.png) ## Hub * Intermédiaire et gestionnaire diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md index 1dba53f8c50a..f8e4d4876007 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md @@ -3,7 +3,7 @@ title: "グリッドのコンポーネント" weight: 1 --- -![Grid](/images/grid.png) +![Grid](/images/grid4.png) ## ハブ * 仲介者およびマネージャー diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md index 80f154c016f4..3068c68e917a 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md @@ -9,7 +9,7 @@ English to Korean. Do you speak Korean? Help us to translate it by sending us pull requests! {{% /notice %}} -![Grid](/images/grid.png) +![Grid](/images/grid4.png) ## Hub * Intermediary and manager diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md index 3f924a4f6c67..fbb35d837e53 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md @@ -9,7 +9,7 @@ English to Dutch. Do you speak Dutch? Help us to translate it by sending us pull requests! {{% /notice %}} -![Grid](/images/grid.png) +![Grid](/images/grid4.png) ## Hub * Intermediary and manager diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md index 6e8579d9168e..e95f7cb49a4a 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md @@ -3,7 +3,7 @@ title: "服务网格的组件" weight: 1 --- -![Grid](/images/grid.png) +![Grid](/images/grid4.png) ## 转发器(hub) * 中间人和管理者 From dac91c0d9b77584b5b38c00abe44202c02bb2238 Mon Sep 17 00:00:00 2001 From: Rajendra Kadam Date: Mon, 6 Jul 2020 14:11:27 +0530 Subject: [PATCH 06/10] Add WIP and language notification --- .../grid/grid_4/components_of_a_grid.de.md | 35 ++--------------- .../grid/grid_4/components_of_a_grid.es.md | 33 +++------------- .../grid/grid_4/components_of_a_grid.fr.md | 39 +++---------------- .../grid/grid_4/components_of_a_grid.ja.md | 28 +++---------- .../grid/grid_4/components_of_a_grid.ko.md | 30 +------------- .../grid/grid_4/components_of_a_grid.nl.md | 30 +------------- .../grid/grid_4/components_of_a_grid.zh-cn.md | 28 +++---------- 7 files changed, 30 insertions(+), 193 deletions(-) diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.de.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.de.md index 8db68bb5ba99..bdfddf557dda 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.de.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.de.md @@ -4,36 +4,9 @@ weight: 1 --- {{% notice info %}} - Diese Seite wird von Englisch -auf Deutsch übersetzt. Sprichst Du Deutsch? Hilf uns die Seite + Diese Seite wird von Englisch +auf Deutsch übersetzt. Sprichst Du Deutsch? Hilf uns die Seite zu übersetzen indem Du uns einen Pull Reqeust schickst! - {{% /notice %}} -![Grid](/images/grid4.png) - -## Hub -* Intermediary and manager -* Accepts requests to run tests -* Takes instructions from client and executes them remotely on the nodes -* Manages threads - -A _Hub_ is a central point where all your tests are sent. -Each Selenium Grid consists of exactly one hub. The hub needs to be reachable -from the respective clients (i.e. CI server, Developer machine etc.) -The hub will connect one or more nodes -that tests will be delegated to. - -## Nodes - -* Where the browsers live -* Registers itself to the hub and communicates its capabilities -* Receives requests from the hub and executes them - -_Nodes_ are different Selenium instances -that will execute tests on individual computer systems. -There can be many nodes in a grid. -The machines which are nodes do not need to be the same platform -or have the same browser selection as that of the hub or the other nodes. -A node on Windows might have the capability of -offering Internet Explorer as a browser option, -whereas this wouldn't be possible on Linux or Mac. +{{% /notice %}} +> Work in progress diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md index a6211dd37da1..e629eb7d802d 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.es.md @@ -3,31 +3,10 @@ title: "Componentes" weight: 1 --- -![Grid](/images/grid4.png) +{{% notice info %}} + Page being translated from +English to Spanish. Do you speak Spanish? Help us to translate +it by sending us pull requests! +{{% /notice %}} -## Hub -* Ejerce como mediador y administrador -* Acepta peticiones para ejecutar los tests -* Recoge instrucciones de los clientes y las ejecuta de forma remota en los nodos -* Gestiona los hilos - -El _Hub_ es un punto central donde se envian todos tus tests. -Cada _Selenium Grid_ consiste en exactamente un _hub_. El hub necesita ser -accesible desde la perspectiva de los clientes (ej. Servidor de la CI, maquina -del desarrollador) -El hub se conectará a uno o mas nodos a los que los tests serán delegados. - -## Nodos - -* Donde se ubican los navegadores -* Se registra a si mismo en el hub y le comunica sus capacidades -* Recibe las peticiones desde el hub las ejecuta - -Los nodos son diferentes instancias de Selenium que ejecutarán los tests en -sistemas informáticos individuales. -Puedes haber muchos nodos en un grid. -Las maquinas que contienen los nodos no necesitan estar bajo el mismo sistema -operativo o disponer de la misma selección de navegadores que el hub u otros -nodos. -Un nodo en Windows podría tener la capacidad de ofrecer Internet Explorer como -opción del navegador mientras que esto no podría ser posible en Linux o Mac. +> Work in progress diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md index 73c793c3a58d..a59e5b3252b3 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.fr.md @@ -3,37 +3,10 @@ title: "Composant" weight: 1 --- -![Grid](/images/grid4.png) - -## Hub -* Intermédiaire et gestionnaire -* Accepte les demandes d'exécution de tests -* Prend les instructions du client et les exécute à distance sur les nœuds -* Gère les threads - -Un _Hub_ est un point central où tous -vos tests sont envoyés. -Chaque grille de sélénium se compose exactement -d'un concentrateur. Le hub doit être accessible -des clients respectifs (c.-à-d. serveur CI, machine développeur, etc.) -Le concentrateur connectera un ou plusieurs nœuds -auquel les tests seront délégués. - -## Nodes - -* Où vivent les navigateurs -* S'enregistre auprès du hub et communique ses capacités -* Reçoit les demandes du hub et les exécute - -_Nodes_ sont différentes instances de Selenium -qui exécutera des tests sur des -systèmes informatiques individuels. -Il peut y avoir plusieurs nœuds dans une grille. -Les machines qui sont des nœuds n'ont -pas besoin d'être la même plate-forme -ou avoir la même sélection de navigateur -que celle du concentrateur ou des autres nœuds. -Un nœud sous Windows peut avoir la capacité de -offrant Internet Explorer comme option de navigateur, -alors que cela ne serait pas possible sur Linux ou Mac. +{{% notice info %}} + Page being translated from +English to French. Do you speak French? Help us to translate +it by sending us pull requests! +{{% /notice %}} +> Work in progress diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md index f8e4d4876007..91f9d964da85 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.ja.md @@ -3,26 +3,10 @@ title: "グリッドのコンポーネント" weight: 1 --- -![Grid](/images/grid4.png) +{{% notice info %}} + Page being translated from +English to Japanese. Do you speak Japanese? Help us to translate +it by sending us pull requests! +{{% /notice %}} -## ハブ -* 仲介者およびマネージャー -* テストを実行する要求を受け入れます -* クライアントから命令を受け取り、ノード上でリモートで実行します -* スレッドを管理します - -_ハブ_ は、すべてのテストが送信される中心点です。 -各Selenium Gridは、ちょうど1つのハブで構成されます。 -ハブは、それぞれのクライアント(CIサーバー、開発者マシンなど)から到達可能である必要があります。 -ハブは、テストが委任される1つ以上のノードを接続します。 - -## ノード - -* ブラウザが存在する場所 -* ハブに自分自身を登録し、その機能を伝えます -* ハブからリクエストを受信して実行します - -_ノード_ は、個々のコンピューターシステムでテストを実行するさまざまなSeleniumインスタンスです。 -グリッドには多くのノードが存在する場合があります。 -ノードであるマシンは、ハブまたは他のノードと同じプラットフォームであったり、同じブラウザーを選定する必要はありません。 -Windows上のノードは、Internet Explorerをブラウザーオプションとして提供する機能を備えている場合がありますが、これはLinuxまたはMacでは不可能です。 +> Work in progress diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md index 3068c68e917a..3b761a89af5a 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.ko.md @@ -9,32 +9,4 @@ English to Korean. Do you speak Korean? Help us to translate it by sending us pull requests! {{% /notice %}} -![Grid](/images/grid4.png) - -## Hub -* Intermediary and manager -* Accepts requests to run tests -* Takes instructions from client and executes them remotely on the nodes -* Manages threads - -A _Hub_ is a central point where all your tests are sent. -Each Selenium Grid consists of exactly one hub. The hub needs to be reachable -from the respective clients (i.e. CI server, Developer machine etc.) -The hub will connect one or more nodes -that tests will be delegated to. - -## Nodes - -* Where the browsers live -* Registers itself to the hub and communicates its capabilities -* Receives requests from the hub and executes them - -_Nodes_ are different Selenium instances -that will execute tests on individual computer systems. -There can be many nodes in a grid. -The machines which are nodes do not need to be the same platform -or have the same browser selection as that of the hub or the other nodes. -A node on Windows might have the capability of -offering Internet Explorer as a browser option, -whereas this wouldn't be possible on Linux or Mac. - +> Work in progress diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md index fbb35d837e53..c6190f3240c5 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.nl.md @@ -9,32 +9,4 @@ English to Dutch. Do you speak Dutch? Help us to translate it by sending us pull requests! {{% /notice %}} -![Grid](/images/grid4.png) - -## Hub -* Intermediary and manager -* Accepts requests to run tests -* Takes instructions from client and executes them remotely on the nodes -* Manages threads - -A _Hub_ is a central point where all your tests are sent. -Each Selenium Grid consists of exactly one hub. The hub needs to be reachable -from the respective clients (i.e. CI server, Developer machine etc.) -The hub will connect one or more nodes -that tests will be delegated to. - -## Nodes - -* Where the browsers live -* Registers itself to the hub and communicates its capabilities -* Receives requests from the hub and executes them - -_Nodes_ are different Selenium instances -that will execute tests on individual computer systems. -There can be many nodes in a grid. -The machines which are nodes do not need to be the same platform -or have the same browser selection as that of the hub or the other nodes. -A node on Windows might have the capability of -offering Internet Explorer as a browser option, -whereas this wouldn't be possible on Linux or Mac. - +> Work in progress diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md index e95f7cb49a4a..e4752c77189a 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md @@ -3,26 +3,10 @@ title: "服务网格的组件" weight: 1 --- -![Grid](/images/grid4.png) - -## 转发器(hub) -* 中间人和管理者 -* 接受请求 执行测试任务 -* 接受客户端的指示并在远程节点上执行任务 -* 管理进程 - -_转发器(hub)_ 是一个接受所有所有测试任务的中心节点。 -每个Selenium服务网格包含一个转发器(hub)。转发器(hub)需要能被所有的客户机(比如:持续集成服务器,开发机等等)访问到。 -转发器(hub)会连接1个或者多个节点,这些节点会代理执行测试任务。 - -## 节点 - -* 浏览器会被安装在节点上 -* 节点会把自己注册在转发器(hub)上并申报自己作为测试代理的能力(有些什么浏览器,每个浏览器可以运行几个实例等等) -* 接受转发器(hub)的指示并执行这些指示 - -_节点_ 和不同的Selenium实例,他们能够在特定的计算机系统上执行测试。 -一个服务网格中可以有很多节点。 -这些终端设备并不需要使用统一的平台(或者说操作系统)也不需要选择相同的浏览器。 -一个Windows节点可以提供IE作为一个浏览器选项来执行测试,然而Linux和MAC是不可能提供的。 +{{% notice info %}} + Page being translated from +English to Chinese. Do you speak Chinese? Help us to translate ## 转发器(hub) +it by sending us pull requests! * 中间人和管理者 +{{% /notice %}} +> Work in progress From ef0bf4cfacc6e86c5d2425981afe272d9e553a0a Mon Sep 17 00:00:00 2001 From: Rajendra Kadam Date: Mon, 6 Jul 2020 15:09:37 +0530 Subject: [PATCH 07/10] Add Router, SessionMap and Distributor docs --- .../grid/grid_4/components_of_a_grid.en.md | 20 +++++++++++++++++++ .../grid/grid_4/components_of_a_grid.zh-cn.md | 4 ++-- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md index 83f2bcb354f1..83f3bf311bed 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md @@ -17,6 +17,26 @@ from the respective clients (i.e. CI server, Developer machine etc.) The hub will connect one or more nodes that tests will be delegated to. +## Router +* Routes request each request to the corresponding handler. + +__Router__ is a point where all the requests to run a new session are sent. +It forwards the request to __Distributor__ for further processing. It routes different +requests based on where they are meant to be sent. It also helps to communicate with the +Session Map. All the communication with a session is done via router. + +## Distributor +* Contains information on nodes and its capabilities. +* Selects node on which session is run. + +__Distributor__ is responsible for selecting the node on which your session will be run. +It has all the information related to nodes and is aware of each node's capabilities. + +## SessionMap +* Datastore mapping for session id and the node. + +__SessionMap__ is data store used to store the map of session id and the node on which the session is running. + ## Nodes * Where the browsers live diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md index e4752c77189a..24d0e24aad99 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.zh-cn.md @@ -5,8 +5,8 @@ weight: 1 {{% notice info %}} Page being translated from -English to Chinese. Do you speak Chinese? Help us to translate ## 转发器(hub) -it by sending us pull requests! * 中间人和管理者 +English to Chinese. Do you speak Chinese? Help us to translate +it by sending us pull requests! {{% /notice %}} > Work in progress From 3c9b12ebd354a972e67d8e222816c03abb17c2a3 Mon Sep 17 00:00:00 2001 From: Rajendra Kadam Date: Mon, 6 Jul 2020 18:29:59 +0530 Subject: [PATCH 08/10] Add standalone and hub docs --- .../grid/grid_4/components_of_a_grid.en.md | 31 +++++++++++-------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md index 83f3bf311bed..f3efa0d98a3b 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md @@ -5,18 +5,6 @@ weight: 1 ![Grid](/images/grid4.png) -## Hub -* Intermediary and manager -* Accepts requests to run tests -* Takes instructions from client and executes them remotely on the nodes -* Manages threads - -A _Hub_ is a central point where all your tests are sent. -Each Selenium Grid consists of exactly one hub. The hub needs to be reachable -from the respective clients (i.e. CI server, Developer machine etc.) -The hub will connect one or more nodes -that tests will be delegated to. - ## Router * Routes request each request to the corresponding handler. @@ -43,7 +31,7 @@ __SessionMap__ is data store used to store the map of session id and the node on * Registers itself to the hub and communicates its capabilities * Receives requests from the hub and executes them -_Nodes_ are different Selenium instances +__Nodes__ are different Selenium instances that will execute tests on individual computer systems. There can be many nodes in a grid. The machines which are nodes do not need to be the same platform @@ -52,3 +40,20 @@ A node on Windows might have the capability of offering Internet Explorer as a browser option, whereas this wouldn't be possible on Linux or Mac. +## Hub +* Accepts requests to run tests +* Acts as a Router +* Acts as a Distributor +* Acts as a SessionMap +* Takes instructions from client and executes them remotely on the nodes + +A __Hub__ is a central point where all your tests are sent. +It allows you to run a Router, Distributor and a SessionMap on the same machine using a single command. +The hub needs to be reachable from the respective clients (i.e. CI server, Developer machine etc.). +It communicates with the node to run your selenium sessions. Instead of running each component separately, +you can use _hub_ role to run all 3 together. + +## Standalone + +A __Standalone__ version of Grid consists of all components running as single process, including the node. +You can directly start running sessions after starting the standalone version of the Grid. From 646bf01121b22bac47ed658ab88d1075aa43baff Mon Sep 17 00:00:00 2001 From: Diego Molina Date: Mon, 7 Sep 2020 00:42:02 +0200 Subject: [PATCH 09/10] Delete grid4.png --- docs_source_files/static/images/grid4.png | Bin 92489 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs_source_files/static/images/grid4.png diff --git a/docs_source_files/static/images/grid4.png b/docs_source_files/static/images/grid4.png deleted file mode 100644 index 4ec09c5c7860513edb517e86b9bd1902e20d726a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 92489 zcmeFZWmJ?=7dAYANDHEXfTVOPDUBEiNOyyjGz1(mj}fm#`KnnL}oAY3hwa!re9mrTt|Y}##l_7 z;`_FRac%3b)eCJ2Gfl0Bdm^15MX!O6gMV+ou|-|{1)2H;A-MR{^z;A!*ZRcZwUr7skfE^#XrDB?vrS2Z;?(zDyIH)Stg zjQd1YwL99__wZmQ)P1>c=`{}RVt3k~ou%H;+ak~T(;FI2H~h{}h||5w+KmR($v(od zP%Jvy0k`NT2DwuWeG}TBAy@85NEoK(u{o+4YU=CT3O?efDC4B_nEf(evkk)-s7z=4 zqp%$+M5!6pCeG65L-SF~LB;^$i1t7HV%T zt&D9k9h-n$Lqp^1wXG{U90r(No+cPsM3`LYyQJ?jHPx&X)~0$JcrImVJ=S66DAu@z zt%DOjB!e4&6}K3D6Xbg_e(}$&BwsxPgH zWp^pHo;-QK5k`;6B{JaD9xJF2%_Er5RrKb~n@CP=hw&OsBR#LXUEFW0tE*e1d5tR_ z#=n{UIas(RK=5x&I~W6{oswcN7gbJD-ufKvuyb(<5IPTG<&~5`*TH>v(-TyNPp#zQ7g@rG@fs%Zvd+d$?+7VU)tGBVMMa2uugdl&IE=-8V`AKwz*JXv z*tV$N(hqBUp|f&XlbC+?pLM#lO(c$;7JmNx>4VyHT^rF1ezjh|KanOIx*T{wRP0@v zwc)#88*K!I^ZITPAaJc)qqyHssR@;v{khg`VU_4Qk4<4<@=8TaXsZds?8bh0IBD~* z0{zN{b+9z`dn0G4#spZ@=`)xN?rFx`8L??MX6-X!aNZ~zY`i$nE5Snr;-rCg?)+BEvFtvV_ z(-c@yis;L2k$2bgiW)o@QvxG;ri-#?XU!$? zq;LFl;h9lL-Z&hxGIaw(%hU4++?hKkwh-?U^3rth{m>PilHH9s$A<32$nd%I1ujXhf;*pKkp*(;XEYxjwLoicr|Hj~R#>#yZ-7FIn! z+F5$<&h1!i)tNXV2z|XOJlhPZx(vG{gm}dx3HeRSW7VasO{5A@T!;NdzOK32eRUq? z<>iT4c9{8XZO?pcbAhXolaU=ZWT$I{iX%T*Uym|4+v!!d4Q*8oI9hFc*l{BQ_gRuD zB}XySR8L|!=iHq4#)FVM$A_JM>(%qQd4(--_|*S=_>&`6zSzbNQSt2NgNF%yDGvk1 zl@kbyBOLviX%M^mXXb;6{VPfdqPr-mgV%1~v>+M0iAPh!er%&x3mj@?Lus`zqV^8x z9BZtHODweb7xUW87w*tqZL+_jgWh@mCIWU0b_>)d9|dg(#@t5j^?vf(4c%2{&0k)& z$;0QOER@*Y8+BB85Y@jTFYUJ5uWd`QF>Sk`$*8GOM=M3P+9P8e{wfTYvE?D+=QxRpTt+|GN6EZD!Ut6U6jYM5&^}!1 zE0kca&s(KdI02Rzpu=ADQ2D{K_PxOeHNUW+PZT}=E)yf_rHxd-%*tx%*~{&A`;oH4 z-lS6|-u(q3zti5Nv)RML%s7YR!*>)m+L`I;o2HPlCzoOL{UG~W*0?HL5P|zs9^!D% z9quODl(G%qtkR+Ei)! zGe6c>9l04oInspXg!ON$?_osU5`m^mF3LT98Ya)#i=Pj+7WHo`G!whO z@^zoKf_EE%sQKm%rX->N=)Y)CJS?-wFx-VjES~&WW*>2;oCD({DmLGk$k#0`%bM>< z&{tPC+wQ3xg9f{8P5%lG6^>WBMd6+sJkazSE0jjeQgAF6Q(;fUCbZHKVPrW`=dmqZ zVgBKy023GQUw}Nmsv{$G)hOGRqTC1N)(cU1Q(!+@VXZ7DI55>5SYT9HQi6=NE!6Wl$8mbvSXRPxxg(XgpK;R@9c`a!2T}N$X3rn z6(})`RXQdWYOVP84vRoGl3{Bfm}7d>I|WrJ+34J0e=9uk3Wm@! zfW#91v%3-|*S8nlsS3RHeUQ$E5-}Vf1B|B((5^flY$PZ zv*Y&!k-*gqhnO9EWEDasM=X~6*yDuk<&~78ZV(O@8lvE=NsD4Oa!Ibu1aedvNe^tw z)9H@a$7?g{Y@YeeK@_r; zH{*tP;58Z{yCD@r!}dT7C+dHuMQE9nJ8m#Fg*z?BSS5ZdY9fU?On$v*wljFVC@U2n z9Tu`G;ki?_JD^X*zlvx?+Ad3E%Q?IMJ zib3?{vu{UHMA*|FHoSuLz?$vXw4_RKX-b~8$%opMp zu>j;Fg8yIr%RjoNrY1Kxx1~k?u)L;bWIN!-5vN5m4Ch42p{j@fAuelCVXhlr_0maS zU*D!RM(ov#Ei$Rk&dxsbC)96$+}+skWOo9MF8cG_vDR=n>#0u7Tr*ArPFXAKOLAB@ z`W2+om6IeL>vz%NSG&N-(AcK^dWSliGmyj@*j*l{v4h@I%gGPP@b#?K? zq?4oabv3$NnYzB!#?moc>m6& zM`fQr5e}0q+{IM$^>w82!@hTzgQMB(r)kC_?7>VH3*S{PG^h?&zBzgI@*6MEm}a=s z*D|s_UfwN&L8V7x^&|rM`K<;$EUs;=3f^95*ETC;3vDJ6R(Xs4Z&xvnfK%s_?q^-C z4DViMn5_5jyli@w&=Ri8*birI?x@ zz$^t5Tauo0LT0Ndt-C9NQ%?9|A4xwFqcl0R-Y_TAJiIB!K3A+5)d*MQPorlM_Q_X; zjZO$*kpFl1i4X-5PQ9Kas_Zi3<4RBBSJ0IMwn;b*!mSAwH;%p)|KChO3KC(huy^C| zQxFo7Dz7WtT!I%Ak#?o6us7-?A?}m*`)wR$!+CRP?OH$(gusd5VyPYpv~s^~Ne`{A zTA1+i+*#}f2zu0^w!K6Ej`{*poI=~dLS?CwmkS*U_AGb zVyz{TQ{o{9Cnv&ZfyS>OBNcsEFg$#JTlD2$ew($C^8E>~qEdRe@&ZR5K?G8&8sVU0 z$8crr;ROb|zV?WiYfdT~qXjw{cx@pao8bC=VN}0v-Ws`?w~=j%Vp~qg~Fcst#X$I zrPAiB$|q%(?Rw2&v9YmW2gXsziP+zET;zAO>n-GBb&vXx5Dx>ZcZt*<2^6X0uEmNy zme_9NCuLgtLwnz8a^l+li10J1SDVRGWFQ}ZaYOoJj(V1shQ?yxDoE!WQ0v?5p=uL2 z*jF_K=Oo@CC9Zcvp{Nd>D?0wv7jTR|bvRz;#fRX+>iO8m!Q?a|&__@D2M4Xp&7Z~J z?{<{g`AzM}#KPkFoF?b@NWE<|f}s-OTU)21s``a6r=Xy{t*tNGc$i5Oqr4fpD*n>9 zpxFc%_P>K}g|u?zihv;p5>d1G3=ih(_GT&51;%umg-TS|^m7c0uw`gob4ivuo+6(4 z{du&+qBUravu1zM!A~C}P$e@>V^bYi*5M+#_x~_YW0I4c8xs2wzh5Hvi7_BBs)8>L z3C37gZ1U_T%pchQ+#SWTuC*)6QAVcJu2yORU4D+s!rFv6c1e0%ZwDwcXOfgnHkxCu z$EeXHQ-gu<8?Xw1PH2Ka`ca&qZIr7KP%uQi{U|5@xFfC=n4G(2^9O-k+MB)O?M{lDH#c=L4P-8& z#TN&7IJ35qM+WN$)e+v2vsb9wC50xYqNAda&i{1_ zZV8EckV5;K-LZ%|zLID@thhcaLpCR11a;ER{Q^T3{sse}-DeIp%qrLd9ua5o$aPvw`5*a(;3NNWSo`_5nA7FVh>ea~$leG$+27gI0LG%j z2%A2oCrMGd6WiG8&q2ocALoj7^v`%>&od{isFspsfc-@X+kN30E6e}9vAqP7GmKDH zB={p$x6^oylf0mf8baia1EDfD`6TT>XZsDw`*Qd>z&auhChRMYK~D1iU+fUcZbAmV zOavfusn_b+*Sk~SacG^so{Tv)69GV%0G3VPv3^b*Z@D+C^Ajb%`K0kFGMdCnu>p1K z;muL7;yf3Lwf_e<#wI?AnoiX5_g0=-K*>1grLf`53FH zh=^NH>?i7mC9(8s-3m-UtTL|-muA^BWyq)p_Ah>Z|DWKk*MNm{E#IITdWf9s?(WXN z3c=zAjKG(!k1C6^H^yt-h12xDOtkVm5SDp&f`dAV`sM1-w~~@@Y>Z?pyJ-iS z;p1Zpsc4pUHNrVcHkx77&iafn6Pi(BellpJR8xv-4=8LrJsK{xY^`|E8TR(=l~$H@ zj^cXX7LGVIOVcPAoJ^wFKl3~o>#-b;-1%eXv)wKnR}Yudf%^S2=CNf7Kqw%Se&~Rli#Aqz_AG)Heq>ctzo)l`(o|KwPDc#!%v2ove6JIp#9O!d zBihK@y2&4-#AWj%Yoe1*e_yrB0*JRQ*M1Hf`x#mm#~LW(*UrA10I8ol!lzO_OX+Mo zjqZ>$2C61*;n&Df)u0_jtK*MCuemeA?&@Olt$cs|&ubRU+08r$WTm55T&E zJd0Q^?J6-9m+|PVj(c1V(|QbGW%kNv>-Vp=%uen365!*%C!|c3s&5TbJJ|~LV`{=Q zc}!=Lqweu(kVhs1bHiq$I8ABTt$_R`dT+wQC*KZBlijR6kxIx4b;@a>sCNEcMJa~M1Xe#(#n~qia}22F?f$1 z#lR7Es+Lv4Xc4J^?X=M1y`Pi>x1PQxa0eY4x-jLEx1$@6nUiH+2hw_GSEUcRbBKs5 zAPOJ5wF{JB=H=$vfGCVU+5J$Xh(w>g;gZg8TN~PpDS!pE5oY&@SHzA=;f40H@$%A% zxvjpVFreSi^U+3^AC%ciBv-vm*thFFT3Gq`GSyocIiNz-Q>=6SAsipz?G9p#@U?-r z;NZnUANMa_14?|q@yusfsp{oY&#z#L&O`~Xwy*bkUeAHUVgE!1x{%;bE9TbbF0}NT z8OJffr9%Ypn@?x9S=b-NimYgS3)m^dhwDdqh`Re8`1yHvGHMQwN2nZd^f-2 zj7Yql5_(1-zQj>X*q$7b5?o!P{2}67BK+9e3Z`FKj&BJ?nY13xYJDDEdX0TSyp~BH zK~|!pjT_uIj1aczByvZllnt)pz>ORbaea(v?%(SddZT`SBjDxF%zM-=O9!Ijl-yZ# zc*)WCl7*Vb8ys^lwv!v-Cs*WOD>^ujVu0hQ;vew#Cx42W-*~!Pl*mgOZS4FjaY!eR zQ})ws(}Q)>USdurz=6mV;}RB29&bKeqXnqu_AQUY6aIF{=IE9>itw&jR+-vk zg96qrpizq|JqI%hI29WP@^$a*SA#Nv2Of$+W?g+N4OWBGRxr^9Qbm9~gypx|YBV9D4RDLo6q%H0zd{^vh&l~vu17#Q?197w8glj_NJUS-5+N~reWHg+fQ|~CejZYfSPKq3P zSeE+HB>}@b46#d8fH1ZlB%~D|f~Co!iVF>Ek9-Dus1WWl@IfKFF{gFxh1hFLJsH8z z91b_CSmC1)sI%p~BEsej1}eX2ka|$e`a4D1@awUX61KobwF93THeWUT>JJjdb$va6 zd-l*tdRRO+!8yC~NZvnVx3XrnWB^d$Lqj?z!ePEAsHLPx@uyz$@=57ka%cG(J41d+ zU&xVAT{pKq#M!BPqp>dtgF zTsbu*)vqaxz3;KJ!%3Lx59i}Xu#x(`g5ur>#crQ>Y@>r%Jye9AR@jdYIBqqMyCdws zD(>C7cKd$U22@Tp(mFZQaC0(%cv;xahMZgPC*2KcH-M=VWYa4cY6nLw5MlCiFjg8u# zk-sQSB7>vqbUX{U~u|pM_e)z1zYbmdz3>ud#K$jQ<2o zjTR^win=cEgu>Escj%4~e;s#2kDE8s57iNpwtF8=k3vpa&Sa%wUWiX;@B*v#7d|Ia zXNSrn$$Nk=JzOpAw5y20IzMXe5*L@z>L^u^;Ggh_3=?Ndv2?ODQHj3H-iz>t=~g-< zEI5D6OW%}zQ@pn}svIk@^y;B@CaCj$yusQM9SRvV10@@Bn>`KG37D4xEvQWFhf975G^y2KW>Y)XsfG(umP6;{bFRZW zjNiAg*k`5lG^xGTGJ)&K!HPiX@iQg=lLq3X5nU1JY~@DH>oUUL{g=_0!jy%?2TYi8 z0?yN!pQ$T1hVEH)-1gWYy}7(0Bq-P~(A0z4PCDbd7sHjnmCTh8k+SvYN*4BEfR4Vl zv7x%QuA#oFuD+J4x}K4tmXW&t%JXPuyyqn)C2C4&8e7T&8L*&zSa7WECA2&GN4?BS z(eM7f(9SzYtxDn+5-!kY^>#jwpkK2xdUPWKBv;P;a+0-4)D_=!WdIQWA63hWAEuJW zd>3!ht5Tsekz+}fAfuym{HmVH#%^^tzKXROkT7|lgUTftx=Bn7Pipfl?xghp0*|(X zx+y13`3}WXDRv+Bn6hbkW#xTwvPala#Hp1(*@^u_SJA%yt@^uPk=U}WF53#F$RK`~ zAT>Vx8DiRrn6O567RR}Y)nC;73x#rL&vjc;KgVFdBjcj-|8Sme>CqSAb6M%*4i*^~ zb-Jg5niIO52#}VIG9{FplXR{PoO9I7hN=05#~*o`!s{JNEjvqM20Z+ky|yYG#%*r# z=*GS5=n0feoVgwv$kqgCr?00sWqe-84Z0u1Qd$4VFx&%#zrG>67|t#zy{_+WREaiL zBZY&>d$;hXGIDDQv&(8GUp!XwwSMB({k`vw{@$!lIgi=#j{v&PF{xL`31ZgYgbBC! zpUbx`Qhu9h{FGE@a`q`h&P6+uOE2kkS2$*LZ=Q}b=Q$QDfinFPQ}(2=^~B>2Jw3lio{$wSfcx5+htZsey1KD1%OfY`TCqbZrrl{ zCAkSG28S!n9&vxpjK|S=|3dDLy}^@E+5$rs`woc(ZXpZosEDj3Vv@39WA@4v$4F-P zJgHZzUIw0r3U~h`;R;X;-+FbR^VmkKd*bJte*IDwUL{%)uQMwb(s>@KDjS9Qkb~pd zw&@??Hstt_<8z9DJ51Z(wK@%Ad$2jBmxSaAb^Agh?4GnYA0KzX%R7WfTRm91~B|cGx5mokZpzw>< z3SY}ScPotz1u-SxBfrz=hOZr6v;;3O-!W^#V;+0$%@qwtiMU!L7pp(sXdG#Daz)NB zjz#28bL8eh=$+8%STZ)UunF3SrQpXm2`c`a)F)+Gb{xfzo;_>xJKd&3m~Eid27ujB zU^IKhfLA>0|HB_MU#mcmjDlhm(YQ^k11i;FvkJAVpx_f;dNWkm-k-T(PC4rPW5Av3 z?>Xvrxb(3^JY?Dx&UCbz7e-;pWR#_{u%8TN8V>hH)7<9YZ%W7h7(AG1_Yp4kRhNlq zL^;}>!Ecm_nOW|{>>1V}ivM@q!j~J3o~O2TkKCO<(KOGFIPMD^&-TpLM1P}k5Gy^^ z%6Kl!${N@yH7WETFD~w9E-34pDIYZIm9kI=bvolcaxR_Cu7|{jzjY+M_5|!q2~sf? zFuCIT;AvZAIx?}fw$W(*C9xFqA*l&GSQM`qFb`=P?3QOy0DX-yV35ZKuil98%yV>G zXgfL@9kZD)NpG)pVSu|0L- z!Cv)^Gqa8(N*H{!Vz}Yp5w<8V;AO%X0KlWn)^m5+f-K5ov64jo>)g_i z>omd{uegh;$3>yxW5*%XqleXnG>cntqK*?~@_R|cE`!ytjQK;fx_lZ5*Wu_XD2yCe zLoT={5DX!$53seOc?`=EY>{W#t>oe-rF;6gL?tDBbN+Q531YT1<>_G$q)bUL2AHGY z@->xMPfJ?1-CEq-`i_TNPF=^6XxrOEU-4{fE`h#X)^I^Y$wVb zKY5csNns0Ct97tcGK+PcoVpUx-@kBt{Opgl=5$9zbjlLD5e-obulzBh0*{k63wZ1^ z)=cAt>|^)(Dziw0R>%PaeP$I_0N4>Xf%;XT*BYcXF17r;K^ctvuv6epYXWk&zdN+% z_T{#PHOsjk+w;2h#)pBah*ImJ>a?P!=~gBgwvDI1Vhdu@EPsc_#8sJESw3IxZvMle z--MDE4?Ae%@4Sy26!ExXM)+zEt)qrhMv{S)@f}ueEf~(@)AyAkAIPP<{^J3KRbwR| zy%ZHc+u_*_7AEZdngO6sx52yGQH%72KXan!Fxe@ql!(>wLFW!{&8w~FJ}Iz%?Sx4z zt_^7V%mjuOpo`Si)BtvFvjOs~5kaeygZ%OCtZ+e}y}r@~&W0kMgikN70dl2yX@q&A#%4GCJ< z%(s)3Q_aZn*@Kx{8Fy4O@gndUoz+?#V=WUB-kC!iD|3lNHtM!#9W_q>LKx1Kb9(eX z{=0d`ryLBD6Z=#mW-Bw-=|GLF`pA*KM7u-9*L5rlC(7-Cr6t&x{LGtt>5plJCtkv= z{sJ|f*F)xR!0MFa0qSRUDRO;9!{1fz1xIn&hB4GGH3g}l)m9qXV|MVTIU_4_Z}r3V zJ3D#ixL241yg+4T$9VIq-`yeinTd2cSQ+K-P&&tc`Bjjb^zhVfWm0FnY7di!A1M^^ z$YqwbMsevr|ElPfi=~g-eVBf+<@12d>@w@j!*EpoxFS68H8ih44q^6VTSJmB$qOGKY$!)iiPM4R_@;V zcwUkUCd=BeG2pjme*2Kq(3D#DvMfE~5z(;F%wT8=uPF}OZ4x~^Sq7@au>LTgH=r7M zOi#_atH6N5*lnJRZ5;Qh+{=G?5MESEY6fyrL-OsyJ$K3mnD6Ek4oGj`i$(Zd8LwCgSn|H_yX~DFASqpD( zW|@O!voF9#vCWqI6gg0Etkven{@CX<-4zm(CH@c~T*#s@a+*4%h(CiR9sgWz4P4a% zC#66_yA8qA@!>XFTHrz3xHn>JVLJg3HUrKcW$L|{;bJ)zWd7co(mP3zU(A7x4Qj({ zb5Lr5ff&w zBX!^QxC~pm-7=`XbvdY&Na6huKl^IrduVZDD<>CiDx+)kk%G?mz*J;yVzWeX>o621oq+%MbWgbY3~-0B6UAfU zn)Tt&*y?N2TiV?F8f(rJ_;}ezj@BIg^7@^uH)ND8!+6XZ_zx0=*lgpXqV_;us#~zO zIn@kQE%`?X+i1CjXha5qF{cLCMp8hQI>(|9eFW!M%U>M zKVsj{w9tg!Odcy>y-^nXV7(xDaud+_>6F7m-^}JREUxCgL)OJVGV6iawtekZ6Jv=< z-kAueC~4H}L`BMo=h>(D5B@2sahN*Vu>$mB1((R#3-ia?w5)*PA8WPxGWpkXB2?;B zCv_Ppu*5p!kM`C${anQlCIj|{VW+0mI;Uzrpl;r{U%w&pAw7S6?D*c?vHycs?vVLP z#eYQ|`YTL)Fh{O(qWqROc2_+G1|@J_Hq$1)et>XE-q5SnY#?Wxtypj0*gCCv0Nc-; zi|8AaU1a=f&(Nndza3=dd(ccLzm~hei*Xp>vDn3M5<{kCPFI!=Pn1IP*^E}$E5+K# z&4|lYN~GcASE=w1-d)*Bjtzfgfvc3BXLR{2#tT`#7C*0>Ut>Nuf94uvG=-m z`}1bTT_NYnLL)H4IMe(Hw-(dn%q)~O6bdCwLnEw43rDm@HAq|J+xNN~Nzj)I?>FHu zA13pC&eed7-a@mc7v(+apE0MdHgRY9hUF5`8TTDlUz1t5-c4SefhE+v|5gImzD6s^ zB3koW+ratVhAw^y#gHUHxRy`D{vl9oimgG(RQ|lO@LhONc?c4Z%kmlh8}o%|*W-=( zL8)O)4XtLISBqF&<6quPcx_SnM&-BM72@4cIXlH_YfYfKnz-M)?TwnY2U={YYPYW` zLf>NrZ3!Qy2TXvY&}OJGi;z8hIDvDfx5Y0dYJ8T(>Mqs)l$Pmb`a1O@eYaim23C_d zTY}yFGwi71rI3H`y#EF@`SFXw_<6n?5+NfMM>wO~)jdVIj?r$R% z_S6>7a#C+kR3APF;AlDRC}621ZUUI+Qdsh0D&6JPKuV9FU)9O3YHg_MtGVU|oT#ZO zaIUC_U_^SdEfpum#vV-v^Xet6Wzj8)SZH2t$sR7X(vNpp+^rRHng2WSurmx)kDj8q z5sH2-d$%80^xso>Ou3R50Z-tx3cR_@*#~Orm*R_L=DhrT!(z$2QL(rv`;O;=&n`)D zO^R)_d|z3-yI=W1_m#byuY)ptnjkFoU*{atnS1;oGP{_%E#s4LV7H+eWgR)nbH zWp~WlY*dE+P7|iVMWaBnMQ%ZXay!quux}^o#@=mFweN3q?(H@4ojkw}(>&xhfQox) zNSAABNev+?@Xeuqaio9(zo<_E?w=#qMtHTu$EB~Ms1crPC1Qsb7=NRvNnx$g6?SPX zS2PN^{mh|WxwF=>CJj!LNWW+TtsPYd-;afyiv|3nGPBcd27>xt-*_I*7o7}i zDgH;+?ZlCVVy%{?SyhHuagILNXlFiH2a1bY^$U^Z0}%KElM_)DY_#5RImaG-@y2It?1fb0;SK%?x1(-KNr0J zSxzr9%23?&^we4bl)j@&>Aw$GInU6zkD0n$G0Cn;2`n^k`8-S&XR!-t^W5B^&>R1> zPFZ<1M>A?r=93YM0%cwf=KHut9v+8ByDOkI;XB(ETL7U%hKIeQAkh~>jQia1*8zBN zS=mk{ooeRbsI|}9>guJA2+5_uT~ND|*zHp{q!!=$dBd>Q2lWt8pGxA4XVwP=dmre= zl?bS@!G7mS#iN z>+}Z;$B)HVs+EU*L_CnQMASkz$;pxI|MtV=j=H`!FV3})*z1+1+DeZtxCuy0-T^gC zd%L2Nl9G)U5J-?_NE~zp05QdqW82fgL$EdZ1qI7JHnu?|+9-M3#_X*Qn>A)QgZgDYDTxR=;ekNnm6+;BZYJzcrAu_9@NH~F zoQr=2g@pJ5J*Zu5KJg+VNfVRtydDPe?|q-HomT0zP|`#U5*LC+gXOs+MiM{6&n zF}dhdFKsK)*FVUMV#z~PeFbcY=a0N7CCvOA`nZt{)uPuecY$7p5%0qFdYfZusvSR# zMEYb$WPG@ig~^q~i0+iR{^4Ab(PV96^wId>+zMI z1eq5N@50n^Uth455c+4kx2o1=L_X#}G)GFjQ_&6v82Zue3$?@4;+nJ9QAnr-4P(?5 zowMTwskHp=pEMuXE-LmvI#$VYB%~&Oi9RZ+s;XK@@>>T2DLb=yP=EoV`V&hdiNi_{P=+6_sSi!en?)>2}K6dhYIek3}6Ow!(OCaIN&0Ud z)WZ7De~>ek##XY}50xDRwNRn2U)q!F(FX6WP2FcozU&GZkh|yj7t(bMMYdj594qCQ zOll8+K#VWO9II>X(QdU(N|CQvl$~oKIHs;W1u@#KI(@iDXC(jxCqDb7^tWNA@BRzNLkuflNfQTbUr&@OrL^{ey}yuyh&7H z-TNe*OY*g}*~RL=P@=46ZqE9}%tU9pl02H8Y5n6Zp6S<(m&<+DAV+^+`#B_}g18t& z39DObT3SMuZC~$t2LRRJXsH!(l63OD3;POC5A)wQ)9p#!U790{7heR_mE_s+wtp`L z+46l^N~?%ujt`JLzq8Z#3>I^9Kvh803<1)|btLyaEE1B7m20>@A6BbZ+-+hyX-rTfPRJ6z3-Xy7z3c}q5PPurTzE`wn~o$ znTZ5IcS0~?To3=bkytR#&zGkiW#0geaW%8qNO<~>X%4M4>lb7?9R3M!a;NYt>ZGwN z##LgZ@<6dDVxRcIRhYrrC{tRyc8F9%G|T>7Ff|7}$| z*f_9zqcV$Zt)jza^4Pal*;aPoy4X>3mHaamYV>e$)h3<$q*3;|ttQ}(8cuWIoZZI)|;)p3h)hnldwf&y+fw);+MY5`cHa;(;k5+=Xr zolkTS@LjXr&dkhA`91S0eGevX?sgj_C|1?gi8qGzL)(->7DL%QP9PQ z_`6(QeG0Z*kesh5C?EE&jTQ2kVZu7p7;Fen)4wSHiRDc zVh{$bYomxH5_L7BW)P6xoM&N>Cc{YZHDL=S{bwjQh;-P6XH?}CS0Mvi2sudIpSncP0f+!sLPX1c@uUBz}MkhN-pz%Ut@lKc{?aUTuACPG&{o|K7W*ATh8olaLRB z@z$lao==SI;2ATQfY1NF&_I%S?(Y7P^^2)mr53Hig2-GnGDt7V`3pL!js5=Wjh^VM zi;2o8W9AG0{`r%M))YO`%Lu;%+$st6LKdoZ4;b)YH$w_5#sCbf;hwVmdew>8BSIE$gJ9 zHUHml{^k|GZ>34~zuy!#KWZS;clp0QQ2G0p!*E=uCq) zw^H!rWji0qb5LT7-E+l94~^`?ZyEObCfDxagrGn0pWC9Ps!LLHL(m_%gcvF<5(X0u zgICdWm$|f>b^l)c>5V<~lOz{TNFx6*^AGP>*e~>?E?|;0o2$2(nYCG(*>`Qf8sCt10ffI z;>9x~Z>JwWn9xImUJh;MTLU#ZB7rCWUOxHyXIX02ReLk=%}XUK31(8ea(q2UeM4d- zm?`arDSzh{NS(GdaStD^f_+$Zxin_>pE_2AB`Y#3Lcrd*RGdnu^$qkl3VIH%p9Bs| z;X<4)k>itL@@Rygw;jOAz?J`9o$T)$AU^W$tf)V9b?r08fQ((>3Hn#H`!uu%9(K;w zWa!(^8%?BPKx~{x1`zas4b@h@DHIWGm@tM=@e|JU3JYzqPN}Hy{kc=+_#ByjEw~?y z=$uGM#%q`zTt_tefpQ^WWsOSA;i*96&SOxu$aK;fO#Sx`a)ptAfLe!WU%ag9I*i(P zfM@TMVLJ6Xst4)cKbu);&wmKCg7tv8HLP`~06D;Qe0^s**{jMUUg^d0=&7HF=O#l7 z3kw2ru2&$#NF%Azcc``i+B1*^c!&K6+o?NRZGF323(d7%)**uU=bbyGfrg=>ga^{R z=;;&P<5dNA)PmxB&T%u}tD}-dZFGH#g{xUk0@bHDqhcHVc@&gdx8$Gl+!pt6oS0Gr zvEwpxsC-(R2hPbW+8*X@g&KD_W2ol0k4X>gS~_PYy4CN(P;_@(bsj%{?4A8X7Mws? zE~G-M>BsnxuAAp$03lX&3&=f$L^;$_TE1y~sMyURak#Fb#0na;>eF9?$Npp*ikK~| z^Rnfm!{|jrRueZMzrR~Zaul0#Brj)5vuKm^red-sK-J7MZ%3K~@l`yr=GVWX8bY(d zRbNlAUE?KiAule1i$gcIPKeMfWd#w(%FCxB;~ux#W}}L%hxc3Dk2jS^^tGk@G?ChQ>a8udz;4pL7c4J8>vLH~@-gnp+OO?q)yW@x>7P|~P;?L#{R+n` z{_)hH=Zk6Yjc|TzxvP*DqURgH!TFZS@PY_ORX97@G&~aD37IT5ps%dtPj(GIIPZ7+ zc%!M67I!TU21N0Emo{eZ% zv9$_r35#H8-9NC@-a9z_xZ{8W5x950St}PYxh#^l*l_d->Sq$^iI3EMZN5cpr0ppp zA~lERq$mmOpqTkiVTtO;-DL-hKG^8f?Bn^?toqeWE;GJY4T>K($;kTq`phjYCyxKb zDaJlwH>+0%&~IjD#@5!>ViJ^S@>#WyeBJ=%YC&OPVSfHtqu&`&36b{Yyv>ApMeFE} zR{#zIGv886OIOTx_<=RTNYn6-4FnQ<3%$Gj^_8ybyniYi?0^BsCgEImaOX!2?7n<2?<_nVI5Mwmk>T%5ji*8qHC4+`VpaLA-pcWwf z(q{*HjWe%D0L>#5Y7tc$gJb;~EKh&@wM;rM`)6%{CqWxX_xv!bn(HH%@%aNS)k_D( z)P?zZs`rjVRoz`NhElVjs~?5d!aW2+K?L9i9#+0OAus|hZVme}fCs)o#U4DWB?O}u zE#vGJ)@H=I_bEo;PH|S;D zE6C1NPI99itYN6&re0p}+0#MsBWkJsunbJQu; ziwZ67K_Kn#(E+-N`v^enEE#yEpr*6)H!Bk#pLzj{v+u;dCTfG})IFdn3)JLa@Uj++ zu`0zc3QJM(nSVHC0Yyr#a5mXWdqYEuBxh_%;C3$Ac~T8`*1P<-?o|hJqIU@Y`LW{^ z>_Cu`#+U&FW{pcrOKPO$z9*i3yNax|Co2i=plwbqoOfyd6#PVnj+Tmta_|0HLy4Ix zU&)Q}qTBIdFSHXa2D)1OBs3>sH%tWUBid5m4`|DxfyMU4>sxamt$w^Nb5<(}ol0VJ zCVvu<_O=$gm`Xu;K)3w(uy#!vkfAou4`n&uD=F(Vd>qgQW<7^BljI0>+><97M~hE% z>4p|ec#<5J7`_@{i&iUoL_#G+$aLCM((61YmizFw_qvbpAtcu>0@bwP>$$RikBB5i zpHqV3I^tad6KJ4&*9Ul{&kIW_U<_DJcCO(!k(q#xUikQ&y1*FsFT+J4j@Dh(&_Z1H zgG~j&KeHhdE|Z;LVxMD2jy~5yCk_QzwpA$e07kuW5i0=gh|gB5`ddhq<8Pf@jDWVb z>i2beft^)8Thoj;gw1WNU~*8g8Kl?evB(J3p8$vbIOkma^|`RP0^iBDz^i?gY`;>8 z#e7?+LyiWGtJ+wRztw&B5^Bjv$5Hu<_Wp5FirCCGS_=?SP2XKOMPy_o5bn8|RW7_s zcaLhkw)`MM;oYK9gondIn#)25Xo8q}IG1~p^RAOSR^-!gnRWNJzkU>mHcA*6L_}z0fJedj_&wx@I zEzScCLEi&#tgNiIouSG~4-Pr+xD`#rqKS(iH_jtPEjWLL?S{Jiq|Y||Hc*dLUoV3O zv%14=!0sQ=SF=h~&W=0Z3m(kqFC~ZgJDsDLuA5M(i`&{*x$DXRw|-?4o^BrC0_pBM zC8wso=?wJ>?+LBnwQd`v?#;7>7eOFX7oA)mRJL$J8zesT+eLyex1gf>AZPVA+3Bpx z=ba(5(6!;xz)*E3x1V!T+uuW6#Y*x(qD};9vcA9_+@KQ%NUV2Y?QG4V@-c>KsS$AL zIme#g&uBrDELOGsHe3S8x(p2r+5$P~L9sb_FiQe8wO21Ed;XU5p9g8;2IvK}+2`F$ z!Mn?)CMl(Blox;HfudBkpAt*sbPy-#v2O}&sRjl8>-^Io3+P~Hvl0Y`6T5K0h^VN< zmgf-&BhkkRd%xDS);Y3Ef57_0XaRC_jN?AV4qDq$?MgR2Yv3v>t` zs2pnQYSubyuiwC`C>V+Tg?_^Y8B+NIBdT=GMLucymHoQ7M$ zUcN0^#i#o_>o%Srk#bgpfS=qnK}X=I&m}>z_TK^%Pfbu`n(Uf_yIi=C(2dm;CCSU zK@T^D(W?i)McaBJkmCf4V$~%@`^Y8ZBFq@@y+_X0yA}0;Mzn1ra5j`S_XH3Q2|{3GonxqM8cH1r>O<2ns=6 zDaKPBhK&I!v-?k|Ehz`>8Y3fm_I4H)8BtHzgGCELFRYcN<+8E!)Q@-3hHf!F=4Ie# zF;2ojpNqs!*Fy{k=1)jn0w3{d7_`Re z_Uu?|Z3CGVJjmCLe^$dWB1aX4gqK@%*VDHQyWy{2l^)3Bf zr@b3y%LROujsC=_;;*Pxl}V^C>7REz0WepA^G%ElVi5-oJ;4z0kcIsVrI+z(;gV>J zV@(*BAhy7FY4f>!xpcR90RZ5Zgj5@9K*fTKZ|5-gUZePDB|hW-@(U z`{UjNpjE{}#_zis0j$dxLoe@qoa^t<8W-kHW}1JzcojF7#9ZGf@6MWvsKP_?gu-4` zns&yFk~;V^b#T@APfE4--#$mP8x^w?f;9YF=R=7)b8UT&yI%b7rq&iO<7jj@E^c_c zlPog4xH!GHQkDes4D-5@fuj>x4+jVS0FOsIi~t%2=w}`^^{JE0EG+p3L4O^&?wu_vrg96S1Rq^xra6%6G8|35=bQybv`x<^cOG~kEju79J=@Dv+l0Pw0IK>o5y z1hO3A(_eUA8yHX-^(D@>R1I-X6<-7=e4rUu zA3wKp`^AX@zJD(0UrY~KW+J6BO0gD*lna*PQ))Nq-gPBoHBwGFPiUFUNoF`tFA0-* zTWpuFBqDy-v?_YU zO68!XUW;fb4hM@(SXYp4q}Cb>cF;t@PrjczE(Iq#vTGUf5~(qGnK5N04!^b&ZI2S~ ziPe{Z|Faz31=u>FCY3d$p#o8#a7rs3=)<%*S(^3|QP#La^^S>nbiaJzj2>{x{Zv@e z7bOrw5V@G}CM%-P?p#2-#wOr)g-yoa%hD$~+pwrB843I}HZuG_$-2O5rIHCo&GPjU zb%)xW#M%?h$muX9pU6~e6?fu#emizpR109DgoK2c24F{&`0$YT2e`>}`V7SHac56p znc=$a3F-fxI3HY~#5?oRtglkclBlBq15i9c`6oLCQOK>V99dl5@0!Kza^%^6I+;OO zejCyW>(N}OvPsi@X3Auv`|-eukd)MpEz(-9&7kpMIV3#5H~#Mw68o5NjMx6|Wlg6- zDwFH)V%3v5tTe`pg)f!oj>@i*5j9funpVHPQ8dATf%dQd(W?V{vqy-D=kTg-j|YdT ze$X&74ir;#J0`}MG<4HoI(?`-X=aA;nN~F5(vn2!VgmdH2@jC+iuP~xWx~=k0}$J! z8X~l{3|(viQ{%zNkjgOv*a4rajhjSxNk7wppl{L1fc^F5T?VffMX(6ImcDHO`czc5|& zX~WIW7T($L4}Wxaxy2<+xSh>nvvWGduv_6G>c-br(yMjQ886D6qP^D<*4Pi(%%} zxZ!zf3^Y$5SSTBbuBd318bjWVBGNW!Lab_a(hK2TIcN33 zQ?xa@qi}zVxX=xfi@kTh8h7JT1tvH`>KgKs#cD7^G|GgP*nHgj&nlkyd8{Mrmy{L8 z7mZ(KQHs~xD;bhL{_iq*a?tbr7;6hF;3dBDIyn7oDID=<;P2<*wjZc+)*99r(;^+O z#T4eQZB=fsw9zGWl)q1)FHtUpkC$YLM2RS}hW+{RNLf`R;@V1e6P80m``qT~>D;c) z6&G(Z7zIN6aP>3ZXeiH-48-RL2 zhI8aaUy7qjq_KBzZX=BZ{G~g&^MSy0Wh1t!we zCo$vjE)Gc}`D;P%$+*jff`Okeh6b`i6SuO9m-J)*&TqY6K>neS_)V{q)gc&o0 zM?0N~uU&|$?2njU*SCm7-53Jaxp;xMrn7T*Z#-?iR?{%H(L6Rwg;d_0Xt-L)slR{o zVv0_kzgAMwt;*GV-2D-l*&gD5#!CRM~FVrO%f5-G5ExPb#4di58LFI8RJK zXo>ZVA5h21TLG7!HF_P8)V*WL$C_b=20)mty8g|b^DNHWzaf-N%rT=4PWrl0V~ikL zo&;iaK;81{>I(J-wsSB>+N>r@pGWOPEN8O76e*$4WJ=(ls=SonkTwndBmHeusPRnB zrMbnhi1VmdeMF#4zkl9&J24m5frht>aN0iorEZ$la_l&+E1BkarVNAGZ=sbzyFGMB z5@EF(d@O|Q!45KK*)dsH$f_*4oXP$cx!61qQT?JmO0T)Yl-xpWDCB04P)U5j365?R zum4SuV6pB?3-SHEJweCiKrASM$_?PTy7Di4epVH{mqa5_U1)QCmZc|V$|_d8)^_On z(K=-(zbz*#vE+Os4pUu^CQnWDz17V}YG%}%=A>EIWxbhMKfV%#lN&Jx7Mhnz!$FhL zx8-E&hV4oH)+@I6BD|j;URa*@V&yvg>wS%7OBqbMniK2OI?&fC^A!EK{+lP^gMX)EJn_;*p z5v1mhsLbWTFp4HHB&l(Ygl8|P1-&t|R`QgWHL!K_Q|Gwt4# zI3&5S$Y=*Yp7}ASfJ@#^MIS4@fm*gevak9}w%CVi>`SyE!;)LJqmPozGL4L#g^Pqe z&qribwhJjgNt~75%E*EJEcl5p z*Ca!c^PQ=k(|ml4?L}EuLsdze#3D~9eI;0-4$p^Kl%s9DiA9C(y3)&N=5Yx*@Z842 zjz|*fzV9nF=hvBW_4K^-d?p(wGND7lPpL6+LDr^)O!%yod#s0oZYEzv;&XF5EnJe7-dhL%dg`$P- z%FKfYjU4Cxjr2jzJ)NnK;lOcGgYJ7tld`1u%(m^5JC{W2>-=@@DeeI-{_#HW9xhWp z9DFoU`N`GlFEM1B(V} zlbW{DNS>OH7-j+;oNcb>X-vRh)1H%!doGZt-xg47)NAo%FS}eg^w%tW#ozTL-Pd<> zII|tZ?Y)`4qtR7*dncN8liyYi(}=7;n_B<(&3$!`l94kQ?e|rpzioQ2e<^OtSWnwD z)uc`cmy^|yH1<)U~BkD7etL?!S({J9Eov$q=AQzjEt#L1_Mg0Y`J zPyhV+b9PikU*GTY$e4X~7;xgPRyH>+bU=;GdMK??gU5Br?*b6bL&Jv1CVHluCg8mOZ0MU-ON@pzd#kIvsnM2fcl5~Kjpb=R z*&&|0V&4MuauoQ_+8d>9t6GUu*}6YU#?^2w;v!S`_15Zml6C&+uNfQqRx*8JKaa(a zCu#w{ljZtz6I@Io=;-KrZN7g1s{|X-)^M2f8x<BJgRPCT!~2KV zz%7kefllTjz$^@JyE9&di)CKtEiL{1JN66Mo55_PL5(clQr7mr&bjd2(21`g%ZcZivtEYmvofj0c)?<{U4H~Ff>N2o<^UmXUKbVnmdbg#0<9?d;J z5Hui6TpTa>X-sv0Ft7eQI32tTFvIo?-N{;ufW?hqoh_PnDrP#elgTt8&BmP25!Z}~;~=`oDA8)0^6NupIc5`|9LqCA0o5&>Sft1;egyZJF}+e&1qi(dsQn zq)|(}*#y8Pa+H5K8GCP2A4MA^mCh$iiPB~02lwVv9jJu?C8w0hymtp8H`|JQJE_&5 zIm~4NA=f%FIvTS$yr<|z<&=JdBc=L)$=mPIahkrcGWQo|lE(90h)nO!o~t-(9uAk- z#>T9%sS&rnDgW4K^T*ET{0hOVXQK6UKKS|u;{WUp+oYXSgqjE;|rs>iotVv7XYLSZUHms-j-l!(zVFD=WD_6}+x%L;5MQXl*&fYhkxTd4 z|1q(2SARb!5t^&An=_iaq?KOBPto2a6HSB;Ub4%FT$5>#SXqFx@!#7Bb%WnUKf)Vy znK63mAzfNU#62j<3iZ7W4aN~g-ZZ>+sgXX=K#5-%2p?yDv)#-d`fiT3AcNt6m749*<-xXpg@|06XmdMBRhsB7k?3wpnUpz&>E}^jO@QK%aLV# zd9Rg=UNqLt;BrPD9>42z+-}3Jk<%oXWkYrjQ#=MyD6NR&ILzyVeY4Yn@toN_8X|aN zh&9ACPF3!FKSo$<1(zE7P}iKKb8S1NFrT%;){#M$i0L6lrxgn#iE!WA6ENIPC(q15 z#y6!OXWO&mKZU%2`7(!^%99Jn*AZ{oOME|?sddn^a?Oq+A&3kQKM5TR?Jw-j<#7g_nDCQE4kPzo6a;;UXsgeW*Yz(kC5cS0oS&2yZZeB%_E)RbXMrAMhTDoEOj;+ zt|_H+)OZo$0J0x?rnFfW&Wv%Ilz-I>ucBR|K5QxA?gr?_SNu6Z4~9+dq0!sNGw3^d zdUyTqo=*aiH@~;`=w#kYLJHISE6)G$w&w~sc4csyFCi!X`eiW{vAwf%)kS_w@m1sT z1rn|6>O88=Z;qk$B{KBL(vfsWE#ulZk$WIx>(DYU+-Q7Kb%x9qN1n2BuCVJ*@gi2{eRp=X&wHndNSrWtaeg99GVtDml~el z2Xv@#FgK?;kK0w!S&-MilO}dQ=2y+t>B;3`J|DtvrGHQW!PzQX}d|mn;O-4Kh=ug4DH^?~m}n zcjNP$295Y1uz8tJ=k*H+YW`%>+uQATEjl_OB9(qqD)pc=YNST36+Y6NNeQ#5 zofKktv!Us_FQo5#=B)0AmVcj9&3SOpNMDJU_zrK6rj24EsD$c~mEdS$L-mr%$$o$7 zc=xO3MLm&Y1^>%Bi<{W&Q5$+pa$wI!9$c54Ji{UZx3Vi0y>zjVQB8*q6u1ac)T~tH zsnL2PA9w%8xnH8=!<6&|ZVM~fk?*+6FyVQ?$O8Y(J#ZvWds?z~E>+;Fl5rmX2~?w8 zukX2mXooYx$pF8|4R?urv1>A%s-A_v*Hm;o%~agZhV1uw@B@2r|2+tj5-vXN0n*x% z#w5;<7LeitduWZpzxxeIO*sgw7&&ILKKp?cCpnXahWAaggx}}q7F;B~Y+eo#Vnc|?ec0dEPF#GAFkyZ*CtD!VLpsjbWk8ClVvA?yYsjtu665if^ z2Z*Ks1arG%Te0K1=2HIR#fvYS^+1|Wv;)3F{^7j&d|eet2`LNO>NmU5*~8!wa1ZM^ zp?KF>Qcp(j*lfIe7FzSJuJ!|}TuB~p*a3Wx;*V6GVY?IJJH65uS;<-iSS*MmKO0QR++uq)uoCzc%kNeNy+<%T1dD@!W_@#F4OFFQj zcU#t$qI|Eg-s^F4^^@-K23#p-nnR4;DY-nA3~{^rbc`eJf0o&Z6W70X{NiHnaz@hhHuVV0R7%=si9sO*CcE=aM=xXbL8=+J$0xt!w$M@nQLuXu?3walh2rw`f#4D zWuv2NRXd<)-FGaw2YG?EQ`OnmMi-;t2|pcEsR>NX%)C2#j^z^SF`}WPqf?4`xaLK! zTkdnTEL!|4`O6mu$qtZKyaqw5rS*E-^)1iKm$Os;>$azig$ym2MtP`M z(VS=YnVxHUYIJ5oy*@4SQ_2Zqq3C=@vadlw+C0ypWPqD?bmXYwJ1sUGf<}NWiCSoa z$b{NR#XQ(c{P^)>-ybxEhru1;pqG#N+}2Yl5HO<<3IaOf&s(o4C*S?spI`eZYf9-HjJ)rh^HB>D8 ziBCD-K!;g zcU5s$mGDU+Q@Bheg*N5<>`aU0&&^>#ruaJ(Wbqy^|pq=kG+WMq>Q`3>e-5 zEzsNHyT6L(y8tk|xm%9{Aw>A^yuD&VO=LNWTbDIKa1WsYpi*HL8AnGbI2!cAsXTA- zwSa1XrKX0)7r&1AdA%lcw{KX4px2a_;%=={Ovv=0MSHx&K?%oJlH8UloyGtokjr7-4#sTCpD+0R5FDjC;Qr=N#tXU~RV&JK z;0qwcK6%`OyABWGMfmT5!bXyC52oQl%wX&)U#6y|-QsEg6J_3ydd(yGD%9BFw(E$d z?GlA#Ywc&2coO`itj1(ao)ZIXklyG96zcZgder{5Kq$})oLXF78DO-}K8-rix z)_CkN1ZH?i(n^#8~)Ds!QL&CZL+q_n8L`(Usq9TGVNnw{$#Mj6;3Y4{+2E$$Qn4l)PFRD z0zN@~nqDFNrtFQ34EyBBQ+()~io1dKzi1OmTXQV(!U=>{It@UlKrQ!hIN-K=+YPv$ zLlg8bYylkC7k(08lHR>Tm<2afK*Mp|*m5$>UehvrIhKnRFw?J63ax*A$_Hi8J@Ep&E;5UYDV>i$5&QWJ-yw#kYAFOMb0hE+kFR*f8*eN6GC9{l|JEZ za{_0B`2hY{r)Iex`wWn246tKpW>HEHN8}QQi!fsy)1~gJt*@_-3>HT5kXa+){4veqrfE zf!kFKKyMXfGKy8gBO>a%{nFdhLzEhPg6BkQ|NTrp|F7uEf&a^xlt?9QM%5+cu?Qf9 z$SQ5Isw>3K9;@1sz4F6+A}|2xvjTC!tM3%5`3gkqvGnf)lstM2Z=D;uDRmnWAdxf= z=J#2YM!TmX%gH08<>H_os05Yrwqw`3A!(ewP%&zT^YBVq_=rl;4q{4XcB&^go}oXE z&~)Fyh)$^vu%QjxJIc>mw1`qi*6X~2r>=3E>NWE;CXF|p9uHDMSw2LEd1j+(*p=-> zX}^8R#Wljm%HH+?@)zJ9%(QqH5v1fGf$$S^?y? z>V28_G51f4Bgg+Mw7M1M-O!SZofQ@gVkzQyEb=R@ngCGYz{y96H26tW4IB?SUR4x; z*Sb47GaRg@vL_=~6sGQqXQ6}7#YR<98)>|FV=Z1X?_69=T0O7%{*)R~1tsc} z!plDgeS2E8sEH;7DJH`bl$4bDQ$Vzep~bo`P=X`nm{GB3O`i4k_M&~OwB3Q2&=L_} z-W5new^+kcfC|r3CNiEI@jH^$%3d;HBrg!Fo&o6PL#$A`SfhufXg%xFgxf3zi4WwG zmHAK~klE_a2YMJhg=Y9)S(7zJ8cVXjDUtmQbwbgCKVx*W%&}qVowBZRU=kUgOG{Cn z|CqB4KLyVSuOVgGn^e}-Q%q+OKMP-FNm2)UEtK-hqbeP4AB{GFPF2lt0aq9F*Eij#A! zm*z1F3N*4KJNQ|U`n?imlMLr|psOL^uwFDSKN18M?0^>O)5|k}m;fd9wKnpg;>KZv z)KCg0%?5lFG%Z-lr`5zahQkpAtoNOk(%|t0;EwLq7RxuwDy5$YHb+sYPjP%a$tM7q zZfPok%n;BXu8r#8UW9v_IamX3dG%ptcoS5(c11(&XJ7T(H_qBk$aRC|F< z54AONa=Y2x-95dy;E@p<7QSXm)ZD^_7Irsp|Gv9fy34EJTymFD1kw+84mu5Wb(3e4 z_Vo)emV=>2{s|br(`vAFWmp(WUEps3jQ_GY+vLU=%>gM#|Ihi-$|@|r-qoL(#?qin zmpdmCE5r*Gm8{q8>cH zX!ai<4cLwt$}m z4E!$cAs%E%Amf80s=-U5tJpdSC5JfbF06Rld5;}KiycyC;?B4cm$S?++VW`~Lp^t@AE6H9vx zi6nTiQXv>p5vJ91_Y*VB<@g;`ZB7(ok6h18<3?HTe?eapN2u66-oYVu121E#!P^mEn6NrthYBgIayVPsrW>pD8TN|$NnQOZtg1PPoj0a60ImQE3)$P zd2mWxKR*Yg*emEuZW~e0_3t>c z@!frpj)wnPKhML|@g@zVa|DQkypCw<-OP!5Q8Ru^@_F&1b|RJL4%jiYV|aWgj?49n zwmYF96s8A+(H^0(Zku))Vb*S1s$M+%diz510`$i2g3fxAc04!rjh zB1+{w&|koq^)JX zN=L-WW$PjpZ5yp5APUVzNg0$bX!VZcwh*tVqX{&n6!1J+PM}u>Ha7~?n1D+v|7LDX zzuCQS!}$12nNnq4eis)%{I?-e2p_Z3#&=e|Ms1Vv|XHy?FcY1 z2;I^GZl(fgXrw*=jE<_PcH;wqFb^$!?RMb=Wa-*GfG6!OAS%X>LEqdVgcPx++baMn*;gf$zAeV1gHYA6KC^ zwzg4RWrd${m*S|S+&nz$Yinb*M|MCh(}PaE`+K92DaB z7j_k+kYwtqvcgfzNpkXj=~un!Vqsu-QfMTR83y|~J1Z-vQpRW#*#HU?_4i^*@dVsDdb?>5JN*`J#P{BzIB6kP5m;_ z7U%7&4qsAH04NoEaBRb-G;+sl=)h$^qAqMMJgh6tFi4z>(wi;Of#SH$!$CSo9&##_ zw^!yWQWeDaTe#LSbD|pS=0Ffkb2v4)^vR;*800Sx5&lbf1z%?Ju`^&C;KLogB%Vzq zf7`zoZ#!>0?HsasT1IrkAQVjj3fLqMtMH4l#R&scwqndIm6Sbg;=i#iOPU^NTD8x| zE`&gp?&n&7+YB}Y0`dLnw;x>p{C=|1{kvwFc71Avt`09PLR6Yv-#UovirnY@{^y4~ zB1#P}eij^0V?jI_Y|l6Haa|im0%aU@U7*m?a)Mp}RcXQaZ+VyVD)o;~s?6@MOd>$# zytC(XQ0vz(nglhRK8Ee?O7L-SA3n~Lz9QMLffC_<8A5Hc2{dFE%xf5;7Vq@T#S|Ft z6R`g~0XYkqEzRcB`{^3RozAt-C+@O@%uf*CR5EgD#*;WMgAD21gW)hRsnVHx#?t8z z>3E;D_sv7IK#iww!K5Z(-;<^8_Kg|F|L>OvLN1ZpKcU{wH#MwgbL0AS!K9GCm6ED; zL)wZan)v@rV&GtGgJ5;H5=_EwT&L?y;$xXU!xVY(H?~)J^Bzc)9JpW|Fdx=o0!MZZ{z z#3KEG!Ybk4;Bd-6LnQ?ijU$HpQx@p+b!_|0yVU{ZN}^<9N9*&ViD?}=Im~Sazq`~* z2j=Xy62$kDmzGzZG)yhu&&r<^9CL$rca7mW$t8LLX*a0M6Pt26I{@LY8uz@_enM zCFcEP#C+;^LV9Fy!#7sf)NFqz#}g~+m%u1V zdIsQ}KVUBw(VW8~Bm@{Pc{Z-@`LF z7%@!(68W#jwj2%~h94=M9|q7&c>OK+oC*kID`rf4+i>_6qubj>kp8T>R;8NzoT{Mm z-ych|9o_ZAfcWCc2JanJUCTQjIIk-I!6VaefSC2no6nMTosO*q_G}r6Z@S0(=$l9{ z47REVZ34(&Y3#P2S#qKj7{nK;T!lo!&=d(%Y7Zv4%DB z&+Oc-_UBu`A0#Fragv1l_v#CVgI0o|$C!?%M2o}IuItaAR`lQF*v?CNmPDFHaq>)I zzn$+F_Bvd+7`Ne4U=S!QJoE|BM+RHCDCwnNaadn|yP#S8n_!J(NHQBeX>0~+jBtmi zxrdiApj_$QQ~!f}g_~va5A?v~PvmURRiC22Gk|=gDMS8!aLl{#T+}~O=*a~=)0=Vu7n6Wa z?bp6>ryd$h+`2fwSa@|(>-;t=8mM(C<9ZEe)2x%-sj}^Ahw*<$S>?zKG~cGcKq}_65T^0KD2i82lW46uXAmu~KjzZgiilXKIbH2#eR=s$UEl?jWkbr7meR%Hk<|@tTgpQw@&R7v+ zBCmnM1_;PFi$pOS=^~m}V;0d&5NUW|$}CCp2H3#;{$~yfzD0MKTz38@5{`+)Iltj0 za}Vcsh~MpPs=XZ4x-R9t~08bL>|8;CXj*F);9U zo;nTid_ndLnk3PoFMb;8UX=!Kv*&)@%b8S{0n*D-*Y)I($Y%3!ZvBI zb6S(E^=5NZD;R4%hLLbLJU!=UXkkcXjz$G1;=h`TBOfnf>559$bB54c(68r{tkk-f z4E2-SuLUFlhKbE3742PM7n4s^I)Xn zyq!0R#i@AJQT6zy<2T=~%3Kq4407Z?+jNz@->*`v&rhgY#-%6cfbv+1-ow(V8ae4m z!t2xfM_9$<4ChVP7l#CGt9Kw-1^T_2R;Z||c9FBYbtNC2o^lEYbF%L@T9c~J6O|~Q zmGU#7w-*?v=5&4y6M#hj+lK~HK#)R_f*O5;uXdZ8o4ZeEkdD92_rd{rn9h;QT(6X} z(Xp{=Kqn))meys??MI*5s>(A;I&#K_+EED?xZT83tz*GM=pr1Y9KC!MA|hg{^OfsB zxklR_3p0fi`i647WqQ$VN*`!jS?uQL<`1Uvi7%sqowSoX>|9zhybNcJ?;9KrO07z! z^LSS|BecTd5R(Jy!GX&Eio$x)D^v%Y!#9Ka&%-C`&pj-}sv#I57dOGVMA9VnYf&;3o z=lZlKXg?MLWxWM56nq)7;UtaBZrWwU z^(W)F@JXHwJLVA=>*tI$(|}o&ty--0R7+`Wert6tVf2GA?mOcbkkE}#Hh!2!q|+0^imHI3P$H9x~3ci9}YwzcIH*37|( zJ$+tIU-|ouhyv?(@9{({srwuo8I94%o_M|b&kWK5(0a`26gf~ARcjC>CT!&pDsJd< zvTkEz>#;XaKdO5T)PVt=lP>v_8U2bw;0sX65)I!eK&c21N1Yr~4$WzyAO0RPE9WBc zeljwmL_dg6iJCdRf5XRlwi)++r=H@~jy~%}({D+*{>kg(p3YKIDutcog2?1VU~YpV z?T;j(Y;Iwpa%wUZQMExc|2Br)ivYLV5$Ma>ZcKgfkLssMuIYrbOTp&AVX*KwcqdTw7q%KN@lzST>z=Btxj=lJ`6t?!T5c3v{*;pGTJScbvlZ>?LsCmq(} zvhYYq=(5lu@BLB3L}8?z_j>eZ|9Ev$As9&f@c!B!Lk!XE&F5*nRoXyZI37rxirby| zwDyd_i0|UOx7-L)QZI6T^-RIF5_l@hl<@fKd)M2F0XE`gf&z!dq@UV5c?Wsdz6uDj zhhX~o12J>`)^H{<$h>yPlT-Ejx2ujSGN>@h5`H7%4}mo3c+q^mm4e(kL_dJGOPZ3T zfr8WZ3fhK)vH?Km*PWWlSiA9Hripv5exxP!f7>&C3R&6~j&;#zx;G_pfg6X10dw~C z9~&-=B{|*LqT6U(435`FLc|=|yiRg|{!~gkhBP1nyakm_#4NYz^ynLJH5|oAPFitf z_@t-b>9>yr^e00%-$Nk&#JU>*oi8{48ZTVdUeLX5_36G(|{ZhymmkAV0v0r_7K+wTT3Ac8z+sx__9)H2(Lmw#p3VB%+cskWsN~h?Fe@+! z1JuZ^WxvYltgAP!5HjRwv|?00yd>gHxl6>z`FE~cN^@#c>l$flQs!^pz8%q!cHZ|1 zpzek&^TAKrKYiht_i_#M2m3I^3x!~CBj*65?)|%WOt#_tuRBdjg~(i&&rB~~4(T#> zNv@60*EKZ}TjG-IEWFYZ(|2sh)hz$E2vn-#bw~Y~Y5)}zjH$tM?!c#!pt&d^&)~Qx z3D{0Pw|}{vDDldcEV(R8yQq0Pd$z;;co=U1NW^PJIeH2ija+CY_Dl zdowm20L%f&c+bAz+PK3GczWK=8cU_@v9Zq*Wk)Te{x&`Clg>I z&|d@57_s5-=B6gcTa;IL71?9Ng)@TTqzI7i_>83|zO}Mh&Z(9N2}jaS`JnjX=IyHe zjM>l64-XH|H8!NcI9^eOrbvbE=L;l=A|CWjV`u4`PSA>k6h28FKFM4;6_C#FJz$8@ zYn7#H#)jP2@3>DP5R$^;!v&9Wu~7<_9Cp=`aJ=i2xRY6AY&$^Ic8D%P(Yn38txs{I zGz;C`7VUV_6^6nD6Aa&v7WgCvc+1PM{WOqA2IQe%f+!H^W9@eC%P-W-6+Nw?`r1p^ z6VZFc-bDA=s|K!eYNMNLd*75UY9r7owy~2}_lqt^HAm4b?(bI^SXhbx6aV8!p3Xoy zTU|l|ZZzUxD#LPm{J&9**s?bDT=zc?B+{WGK%notOY^IhCuD0=fA>oFy}h>au~2=) z(FnqcD5oOa&HxgYc~{PlKec+SeV;=MuLfhEOC_-y9_;R3gB0!?ANN_%%=&y8`z3T6 z^tsItN?p`x^_F*Zblkt3*pf3x)55pcJA91+@SaEBh3URJ{<{b9Jd#I2Ot1yK! ztf&%o+j$jaey_6goLXx-2-x3)Ff_noLGMyVum#8gkZPVX@R6q*3SXHh8~p6J8w?WK znX^Ble|%T#s;?Q+{6moE8=e4VpD%$Yz-xLcqS z1*DLwii=UVut*sE@Eo&Fw5*Ws{kH^M4e1O0LL0kXkFn$H^fIj@d*tYxva_=@yV)9R z&~cK}Vi4O)d9!78NzVv*u4u(Y?KNS*&|rfnYnc6fXU`X5R07-Sw_ZTapI+&G=X1wf z$g(o12*O7Y5%IsYfKL+3`l_Rurh=P?ogwJu3}ANk^Ui3NO!z&zK+ksfgUDaXtsQ_% z$!}J&j1ggGw)eEcznV?=pn^w(@Vxha{d0a5VQ&Kzz=#Iev@|74IQ7Cxmasopyk13z z7>xryIl@pffx3Isp_G;z)NCe$lvMVZl;0J_KV)GZL@ryynZ4SGfl`mP>a}yRzudol zK7hh|9!n05(qS%j4`4L=* zJ>tuH@EtCQrMhpM6Axc}pTW_pt*sq5_-U7u5F{2<1w*2G{`}sFUb%2+WM5hI-bFlT z0EJdI7GMeQgF(*s_k~t92DilmLIp~*rNf24H$yV<_Z|kzPrXVYT%yb|qBP0Xb<<-R zYG^cVeog2v@g1o94h+&o>OQNphc$)@y#_Y++j6V1RA>;K4cT2^XwA6;Vh$XHRMJ74 z_BWN?f#acnezQXIkGTYv-Kmv8)Fry8@zhd-1bYuP&x%W7OiqVeZchHS(gn&{<*eLJ zfL#J`XEJo7*b1T#zhQ(mOn5TtMxtTNVXpaB+@9CB|DL5_vT01zo#gV7m(@>& zH)MnaB5dy|AA*v%2D94*mNP?@#qDNf5(`ZqJ~H33n_`S=d8Vi5N2YjlAV-LB z5lz^)*BEdSrs0k%i1_Lt4}fX$)(SMsfQ4(mz$6zwiO-yO@V&TbziT~a`CjuEfFYy; z;wXApYTis#AtQ&LZZk46f>(7$x6yr{c-sW?jyK`Ob0t1xeQ<50;39B}@xP%6<(OS& zFrqfP0zQghX3bc`#Hax`34#Bd08;7Biy7Mi)f2|%;}C%HdOw&Q9T=g$uTr0B)Mu~A zY^7Vn$yncF3!$lG^4zQJwR5Ajb5bkSJC@o)VxL5|Om-r_)-SDSyF#_Zg=7GSJRiG? z7Sr;zQ7kMWKE7*_>~~0BAk#U=laK45`6?H)l8TD6X+;z+v>Xesl>@IYyJ;YoCaNK# zu-pK!mV9*2!cUP(aa3ukpb$q!xLuAdv+rR(#a41T0f?rTBijlMef7OR_)>O z7XtC*kWDK_BlwT)!Q4NdJ4}=>Kauf^p?#A&RRJnDca5~P>;>xoA4^vq6;=1O2NaPI zkPaykBnFU{R=T?zl8Q%Iw_s308A-a z{LOp9iE|O0j+QKGpINxs0^9s<)qF*F6O;TMM`Y?J3Y{j%Kl0cssgpvHa<@vHg%8Ir zucsx;L?MS*QR?}h2q`j$s>?f(h8#83jOC$P=To)W(lugHEY+t|8m&{v*>)pnZ6?vV z#`xrnqkqM5Zm#31Nk^_wg+R9KXp7%c*7@fW4_|#$K5sEcTTcrqjp-e&n$&_-I>}$W z_Lj%B@7h9#RsKdX=;R;A+5xEcRM-D^y;z~d_w}3415wln!!`k6LUjw+H9W#!66ggT z7o>x}q4U`AYg!ZHmRpJFz5eBXb+Ql9t31${yD9pd8a({-hW3vbvUHbLVEgb`2VS;Sam`^&{k56~|FO1UQhOI<^@ z)Q>?{to(ZwyEc$-#joysg+GsZ--!z2d)+Vjyx1$}P(W*u_AxmZt$G|D5{jVwsuFii+)A-A0y@{N;T`k+22`cDV=e|g>=mvc^$ibenJm0;LNGv_f%R#4SSH) zG)gW&E0gQ`y-;y-axy_TqNwo63W}E8dWz$xBJAzl{5&3`js>B;l~rlNEHG?R)phNv zc9W6{WdTpqw<;`h@Gk0xkBx9ue1og&eb453@9ypnD)-FHOtIL?UA58Y!t_uuhY_F6 zFe-q%eO7#9^c1Wv-k51BO%*L)rW|!{+`<&{epS)pA%k~V@t|@CVEEOlp8LUHZ%^QN zEhDTkz+_#{^sGr1S9!`!qn)`+XCuZ5D2_bXDq2N1526eGeY$S5gPKu-A^G|F+k1Oi zzHQ)T1EP}Gj$ex8UdXFnf=O3_(%j;rG!1lOY;o5xC7WqCQCU+{QdukC=wziMP`Ebq zwFg!Ak9=E7jfPbwG%yDMXu{p)VT)z^^Hx(|BSDF6`-xhyu$#d$Z_DaCkWu#C4v9YQ zNhxZ&2P}Fi2PH#&gqfZaG;*B_Xk!iQey4CdC*szF_xqcAbm^qcWW)Dw{V^c2807<` zD1h}-Q&14pVkIv>3W%BZ`go!HNx?S+uBU?>qWE?3qGBoUe}}Y42nlt9wr*f;m{|Zs za=AwvG33cGrQ4(2@@_y1o1Bbl&-gM`xOm8x_bv77T$9J_i->cSfSVd*O? z5%njHBMl-z1M1#UD#KCj1bZ4|ODUoKP3=VnT);- zlMO z8hEWkgj;Tu)FS*_>zBb7kGNI6!Nbd!W`=*z!rAuRKN14Vi|0mz026o){!L~ zRusI%5=li|X})&zQG1!H8iOxi{FUGJBW3618TXD+dZd!F%x%+kznhqqQ(U@zTb{p- z}tSB_CC}A7+&ESy1C$j zh+;4IsKlGQfrR7~-OxKgC9gYU5PON$x~ll6VO9e>Y~!a}N;ncZsVhrA=s#f35TGi^ z8HyqGicp*;3>?d8I|9u9C67~)9@rB#z7@62=R7s%N*Jdm^hhSvBhJv$rG45tqgMbV zYKG4RzM=U}@f`Zp)mp*FzN9W0w$R4RYrVhF{5|_uMsm2UJpI#5LzCS`@GPwo!A~>U zkJWeFx`eD>;%vLu5Q?o5Zp;*TYbs_Qta7~ z>YFw#b!g=7D;>OG!(bSu%#b@ElSW5H4NT>5*8}rLzdePacwZzStA5*_CzFENIuQNG zuohR?>-rG?|H05&Q06nZCg?c0%>}aP`@Fy@iCyuwb~LC z_FI+L(_>(ihu*}QegjTq{Rr^S&=q!9!_Lw~Ngd;TV%}2gNk8?80L@ypO`|>^wpav3 zIUp)2&v<8Ec~sRnRkX`+W-UVbwynoxJ<$WCAeJ_t)^aYuSWq@AMJ|ypAu?p+~DPYjud?YpMRWu(>6g3{cQ9y^3sgNfe4C@nB z>PzWM)XE1$#y zg?MIR?`+orx1S`9Ww~ZR)B(iDcJqu)+(jZd5F=R++s zd#O@*SG?TV!#9@x>TR;AtggdLym5guz|$1qZFHM`0L=g9*_;qrm-c`?#Ai>Ypv3Ks1McCRIRXSxx<80(|8d%%}^zAGPl zK`?CVMxfS?y!U`T$APjE(9lBdiha7sz^RQ6yy%+dh2{$hINO!6UI!a?nBbS;m1EO- zD#-MgMpI_kI!asGF&1~g1DQRS`vfSd93^mc{<$IsxU~T*3~L?*2R@0hg`Jf!E5IdA z7%dcBQ;`28<-RrAsFtjQ;r9{>;gN$Se)u-|B1NCy(OK!WbD@#r&6(+VvH+Y4hz#WY zvkEc{m0l;9eOa8ydysjSHS*$uxhI0uSd|VCeP@10{*0uQv~t*N+=$f#v4g^8<#_4J zGc8*b6mN;?^lU|-Qpw-n9zyEVd?=|QOj#!f_<@bSp~9n%Ri;||vH0@cT}N1JFL^$} z3e69>T{1i#8~)w>lkt}bJbDQMZUq-6UbZn4MGlT;cN+85+&J=8o1eVYJW`Z4E8t83 zI6#kQc=)1YmG~7Pv8=Yd$!k>e_-}9z0MbmWg1SYg`5y%S1gR=-sPzueXO4b~LeNmX z(o6l(W&e9UBbglnCixKU- z{wdNwA^m2N?kdSpI{5yJkV<7y|E=KR*MWwCc<)x(5F6DDn*W;=hWoIs7y$zP;=;Gr zY5*<3D3f2b>u7|kZJ_!-|@V7k@+OGYQpgY*iN|+H7H3ZXq zp@(Emg`VYYBi@|;!ohQ>--?@uQ-7jogI8X^#Je#se_UJ8B&g=<=4dvvNX`|VZKixO z+&ArBvMsc@PTdD;UQ2}-V-JSlcld#H58KUTMcqC9C>m#zZ>8{_Z~?Xjf16H@1b!Yy}iJcomts6Pv&$Y?q^G=K*k4km$fjC{CV?BU~t6WuC6(R@JkaRm}B7b zO_g(Ze&9Lqz+Vw_4Os5MWVI3{$#}W8+M$9F7E-yT1FzyH-xJKsNfeF^te0>k= zL9Bk)iK5u|HKH!@8jn^nH3(=BB>D|!;8j4XRR==xN=VNjXLL3zfIrG<3J$Lg z+^3TIG1*CIsq^=pXd;@*%a2o>mny_2*G9ad+Pncry%ZEm8%o(Huf1qlXxBVCY8UHc z^sNEJm1XNU*T{8$ZeAd*Yt^r|9+#v&CywOzo0_wD#{`JWoBT zSHR3yR37ch3G!DRKGw8bf6<3i4rb6JORrU5o|V;M0Vl!2+AHh4=&33x8RFyf6nLlJ zs;R1a3BWc&JhfI21R4V)l%Ip9y!( zQ&#&sa#5qUu?whTR$tm158P9PP$k!SnQy9G%?A=*L|x>kaS-9Iz||2hhZslesq9A?7+~h*(gUoWaN|;)!G5J3VVwDw zfJu>$vXau*V5%%0vX-SgacrEHn?Y-@H5)i{U?B3vYu@#LKsZbbHWzum?>j?)@+Iv& z%yo!k({;Jt(EVRLVQM1{v0xJ8-SF z{^|qw$O5{w?*$0NY1aLT4Ii)N)EpzUcp)obHEMsBGkbqYtXB2c)(?`g&Nn^e_E7(K z(f2E2DlaX(aBo{B1g~7@))?gQ8KmCxY<4mB%J=5Dlrpty$bG{mT@gqMH9U@d6&^f- zquZQiFnMLtoIcv1*2yv~mBmWzfd@GzgWFrSUTYG~d|BMw%oAuKR-)n!pfjp|(eO7F zT2u@Shrba?Ss5^}vA?SG7^=ZmCCH^@WjW}7#>N^o_|OPP#`Al(Vj)1M?iW(T$e+Wc zV1>lk<*C77me*?6ciNR7gcH3kok;))|Qq<1X-S( z?w<-Htrv2m&+Id|tcKpcLa78V43-(U;t!l{#GkX_M_LQ=+6+uL|E4I;@{ZqkC%@D(IM8| z+Jr0t#PI@RCvvY}zoznkVmV=N>eWgqDn^_7=4u)CpJ4$tfdu}Y+vr z1H-1&J&E&NqY~aK5ilUQJwdR2JR1%fvQRcfy&{B%@F3ByZ#mZr%TK{xc=>;pWra7ibvcMx;`ABqWDsb=j7;!q*Z@l zuk^h1%88pcwi_kD<`>?(?ygMk&&WC*1!z8?e-xzoUUw42h=yJM(hT0D@@_;BUEarU zgL&V~A2Ud(*++PXHrH7;`QvB1m|6I@UNzQLZ_pI-J zwu$A~=bPk9WT_UMOWers;0W^HOIW7)dO7^cnxL3=xGZS8Wd&`aYD8g?sPyOkGr_@B z&78g|21As42ihd=80mxH?j-(KCHIac_ciqY5;uR7niUB0N9FQ~XEhgQMEpt*zTu7j`(9+op7Mvk2=m2@M`7Cqs>lo9mK59Q?5mcdRQ-@96dce#hC_d?TY zVWw(WKOfJ0;|csSl^0&^?1sz`wV`tTupJ(VxH+1geyE@c;lm!{(CZ~y{_4@n;y&Bj z&K4NVPRy7wwR6j$^g<`<4RXwz=6AE6xgN@T%DhLB^h?$8NSbNT|T|~of>1>o2~mf3k`j=YO4w@ z<;e51<$gWpe%Gja5o>Rmz0ys9pTw2=dvL>ml0x_I^oAv|zvfkpw%Y5>hbXSLZf}e`WTUV%g8NPn&zFoEW&yk zGIRub7R!(GQ#2xf`2ivIGeT;dDb3kS+Vn5Jc{eIm`RLdP4htVWIUg5rxU8`4dVUu1 z_Fw0YeP;SrNK>#c-m8IG8+2sq$Zc^{ zC+jA9DOp>YSu>*CPW`ErzIUr?Nfx6@7N-l_3x#cKZ{riiDBz?Bh%WAKPZVxf(>8`l zmt;O;rgyN(6?E_rp-T^MamMY~mZK&CeN!(cT) zZ#o8bT`6RYi{5Ff~1_v;2^a>njT3m@T(vAgTjnl{7fQtg{@ zC2e4M2V7gnia!CjFA*qFBQkl36Ced1Q~_P7ufY!9Adnt5wSxfk8Ed%MV}qeC(_C;(t5KEmlIGChaC_jLR(UI+i)H!q?N}-@YDVN(amF@YoAgngSDu(4d!l7;ypLNy9}?d);Y_aXrm-zi9HZ^& zoD9TN<)SM7h#^ag5=Z(&x0c^)$LsK-$J18w&8nBpk4LYg^RDXs%~=2H8C~7-y&Grl zFQy5y{o(Nq)fN#6RlIH&wcE4vS;m$j4^EQUp6z#T_Ui-m^14=`cXooEaYS$1W-v~! zWnZU_R`MBiHy+EHsuMk&B$|@~1C>!it82aU8gvzZX zwBpu_Uc$y#w-yIA!&CmA6^DeL@Q=Ii&nwA2HUoZGvx|6C(X7r(16x_qp(R4`s_TJy zLbf=oI$_T`Ubo-j+X&oQc!#0t)pVQgxACM-JrCtuH&MJ5k{3F8hC8kGhG^5K>J^OP zu`!4yLAnR=<#SA4VPEbV1(6n3e;tpnbiNu2a=1?kV-Qc$iee{Si7gRTtZksO=8moG z2-9>TkzL%7kxaY~s$P6Q?%b4jz#G%LrIgrFQ0+-VaLYS>nKtwhMv0OTZp>oB>A)~P zOJ_d2gkLJyn!7f+@af=_z#vER*~ARzH*1EM8jfUqS?O@bC?l7nyT`-R+P8Yb+wPL3 ztrb6){(Q^YdLFuJq>Mty%V9FG04wMh*p{xikb6svFMG3An3|#szTY%`MRqjymQ6(^^|d%3>(SyzlyXM?pd8#(Kp}ZZM>};iC7>W zq_1257n|z1z@QK;RM%kD+OVtH7gM=2HOY~L5>M@*_+DDnvogX~UdibwDofkM&fr|Y znHn~>Fw7?q0*=2VD;n(n%v**f^|Ke*CZSerA)62SWm4ysxY}MiRUcD^*R6&PxonZN zbE7v~Z!YA9DH611oY@tL35{%wGg%0B{hRDRRV5Gc*l?wAqnX5}-V)sMjPG2PA7L-% z9&K2$Y^yYlzzKOKwcdUuT+GWtUaa7c?4v(iIAAy@Zd`Ot=6-(gF}0n3;WdqG&&kAr z!(MFTfm)@T_^cPyaIa#WzO+{}g38)adTzIGaoOWnxKVFXJ!MerD+VN@lxX(+2$#e) zl11Gzz87N$T!Wc>w56QC$^+115Z7w@3;k>zvNamgG*$K^vJ9{JG*;sdnp!P%-wYN> zBkJs4_7HnrcABAeEgywzTaZ?{s6vU;Of#OH!&?PCSc$R{x9s4{^xs*II*8>>AMex4 z+t&&WEn#w+ORm=?QMArtFxh|UoF>{9!Z_KGT}f2zFgEWnDn`0>IIkfvFZHYp=8o{F zf9r5#cQ_zm{hX_RWG7&W=E%c4rd0L#rkyStSBro@%{{OA&JvQcC^CrjrjE?yuD#!( z*3Fa2x!c2B{8*D;%hOo=!#Qul0DXocI4v{@x>KA~1Eh6vE`INpN2uuD#t$i)cYsNl zw0&-_;)U_vTRvUVYtED&juB4Ye??)Dy4JzT;>Op~@+=&-TQ>sEwb$UYY@_&iE=2V<vuG zcGW<$soP!9wHLil=en8hyx%>-A2KvMltWP=zA+}%z3||`u?G1wC!dO zZjjjRyJoYyRZYZ4_l+~2oCi0bTLT|%R3r0NlJwhM>H24X<(HGOcCp}c4jk66y=3=) z8D?B%;pHYmm1@+lcBwUJXhm@FGIu~ zZ~IhW_zWtLQdsSePQ)(NhJ_nOx6tfb<&**fdqyFWBhTn4CLz~-X5U~xlvac zUtl&ak z{pWr4537Qzfv)mZNe3dCWl8ha5C*g#*^Frg_OCAeSuRuTQNbVdstwjjbQ8KC?L%_i z(L6ieM5+;_s=baZeo*0TVCGW3k74#qOV*KYaWBoY)urjN*QK$qL)x{DDzJA{K=Vw~ zN{Z5)z9qKv+caN4^Suf6y%}hKpgW@E0XOkkX+$Px8)s;sx*t5c!g9NsG$_2{q-F zM4e_HWtAyxIJDlK|FbS}ZW)tn{AM~zys%M(cXJ|Tv(%P8IXE@-PqV+gT$Q zC{qjab&>VLo}%Nj>h_W-jvGzIR?-Np%p2h@mh4*K zDI_KatD+=#x#QfpxQj^Ton5D(69qp5kZ%G^ts49jUA53VN8V~2?4`Y>&TPa`aLA~8 z?ef{PzXr)&BVd8Jl!(H)NXNH9c-&!s=UA*x6?yx0qw?~K7f(@ZM-59sO@Vsp*^&-T zy2^IK65W1pF}Uj%9)VQWzdIJ%f3O4WjVwNBOF!+v@*VL-IDgK9OAN z9UT;;a_@@fujTPO_dCL$A6-Z8J?x}S+vhoFV10M%om?J`IF$4mq(zbR9GicNf zyrBToW|Q>U@tO@FbFIwG6etgmi<{;rc?_(@!u9@;ZsH?Mfd%ATHL{~pn!fO+X7mqt zCn31>l@`Qf4jP`{Vsu`*fb1{5m*fy#H=V`Rl+i4sa~V(J(aC+tZtcZM@ZVQ5C%v5K z`ENgvzS_*$zT4lpo4hqBAVN9E2$d`RIJlFgDOT49xM`_Wx zIj@0P-%B>j-)+`gMmJ|aRO`sa^Wb5|Uz5U%D>>Wj;8PBqPYIzA+!TG?UH6DTkqK)W zICBoG%-y&iRYx{n&d)nCz$*YBt2Qk%>8@#2a|1Zs!8ZeKwPb_!1B_v%UiEJ0W)IdA zX+%p>tOoL{t9X}7A>s>g4(RZSkdVD^IG;*jO!m+CG;t~iDZjO9h;DrHrY@7$Mx~qk z>ylDR@+r$GQ<1jNOjCnN9ThV3v;2EsOd#gy{Dd!Up(YjM8a&jorwC&8!r9T`{CuvQ z_q{^?BU#}~h!u%n0iueoPuGq6%a!3>G(|Ktv^m|A9{&52{e~)HVlG|vk&$*_MNw<) z&;Jm~&^W4S?g^(d{6@{8;v#{?*o@@vzN8MEnDTCp$A5p%TQx~HWfT>etH${=j*fAB z|9SFo(BggMc}Wg~|CA!Q7O?Nz93i+k@SrD z8eH1Ch*A5fBw;3V5H^ftDu$f$b#&}!Nt99OXxln3WJbW}+nP5qAc)*^RxlH8$gwx69A0yg@thbi<#vb zx)GkkM7tY0*ltlr>&rd9GZ_3xOss01iSa<_BzaTBd*M7KM+daVDR$y;>Nn`em%5D( zJKRUjEM9k4wrkzeWV`bfYu(}F@gJ;soU_=S7QUZg)wA{34V$scuN{UG&o>3#AeO#6 zj6|C2Vf9ypPCEOIZq@V6>tP$tS#Fmpe@?q@6^n>m?b!z`!;K_OIu`?dsSV6XzJ)jxHon=0B zg~d7;w#33c{o&`wwbRD~I;}jM3HK}ptvZ}+29Gyo?L6l86 zthTG!fN0m((cxzlm4Wukh3VOhj89iuX9{U^c`Aw8J*J-gRHbI!2ytby?7MEZB+Q4=RGv{%+`Ue zWnzDKm#f+q4i;Q82U|;~{bCJuk#&oXGsNPq8 z31{(1RCHQThCMSY3oxJ@?_XdXA>&E0mf#-r(AN06tSH21^ruMRGGL8gkQz!zu9dXd zZO}HF1uBEd+3uW&Ad1r)>GYk7F*`HDBqkI_h#F;GNP~>dY(Ao7fw_re+pmBgbGz_9n-TNrdPNQb7KQn{&c@%U zX|Q$<_w*RA|B1X?ZUJgqi9}W=P6UP9i-X55My~?b-4(!B{re4(^)e0csex6pd0pm7 z0LV^WNXRV>Z!{crd~t2q3beOCe&cIed&2_5lv)iZQG=-XiJ<*sxP@U?Crb^6Ko#T5 zv8#~rOx*~nwGx5h=%zbD(a6l0EmO7LUZjw7Tk=BY%>~*3#WRQs6;+Mf!;sp9U(QIJ zMp;m^Yi4ICsA1Z4i}$)%y70PDmi5SSt6=@h|KfASM5N z+|Nt%l7Lfu%u(fn!^Prc`%C*BqVf)S*#P!6%Lt)Ci!LTJ3VY>^1RLYKDwCP+Gb`zB zsoa)Jpf{S|-IS%LwdTV5Sp^zBUA52R2qJGFK5PZnyZF41$h*Id1`>FCI;%KY{=F=F z)e*0*`)g-YXtOrtrY0z-p~-Tdy*U$N@ebCw!BL0rHht;rb6#~L@Qqc^c&XXdSC`jf z=7XrHXkWlWIB6QIX;g;bto<-=-LyXApg;`>LK7u%6*>mo#3B=}m4`!kvc+d8f-m8U ze*m8(9NAOYi$#*rI&76o!t{#GUiC>UJm!m3i4ZaB667XRIz>NpR2hyfFJZ3k)G+q)YRCSGElFwJjT}m z&%fPC$Bt5tj27gKZSp%EkhNKhtyl42QIeosU-8--899#schR@@5)Rl{x};pntAQH+ zRLp2CzK@KFND!DaE!ptHSFYU^BlPm@;i~~=OB|z<=SBQUY9MbHtp8k<^AUa9J^fJ? z@*3$JH7v6s-)j9~BxahXTcgRSr1Q!|u&3|weoxo=a1J>70R@vFBl*D5w=N-gC@T5$ z@>)ngOkd=>6IIIQ-Ip7r$b?>;Jk4=931ExtnZc-R;g_Nv~8u{ zf{bxBbstJ|_#m%?A36I5-*D-YX=syov>QfVz(WO8Gx``!ZBBdV)>5NVRpq%T!ykB!__hY9|S#axLBK)QNuO@i8Csq)G_+%A(76Q~k_Fx2x zZ{5X&g$U7b@d|0((YK_4jhUF3p@c%0?B1P7I3NXpdq`)qTA5t!!=3P>M^Iyy?TZEu zoQ&t-NT=|#uidls*h+C`kbiPJU9Up~NgtmF@(1icctSTTNQog;_c zw-Q;YMHAb;c|hjFI@j6=+`V?vB~qjcnoPjhwXCcxqx~9~Q=F9lgyP7T%(9t8ip3OD7I@UL_d3o2NY zy+ZB@wee7L2IE6P!6!>p!uWqcw?M>e?tRjQH_@10plU+5%kZh?`MZvcRCjrK`Lhr+ zGqY`#8wnLEbjq)D>ZtJr#64lPzF?y~y(i9LyTk(d-XGs6!A+&-VCn4;2R}Ltr#)>W zQy2WHmkd!=R^PhkQ;8gq`aHD7I;rKi&dytII_ELf(B zp*HVd;x~gq0}6klxzyRAcZWCIZ93w@EYf?e%Pb`s4aC;K8P#G)i)O|RigT{V0vDSc z&8+R-Qc@DO-1yO9TTV94lIj6z1Bj)twMu#Ec`e8GqO-X_USD53I_-LR3u;$%8Zc1R z_5b=7fQ+?h-vS?ha-lIi{Pcvshuws&kbi$te?id5t8wRwFoM01n-NvPvpWU}5trWo z)bRpgehe=j@Uvq~%I<+fWFCW(Z%KPc2e_BVY;Q=0Wbv4dK!LpPKs60byi2sA&Pr6y zoQ_Y9{PN7E3)L4tdjrD~gUFxeu5OKW2F%}=m%i&6el;uxE-=XphIySeoa~Rh&!m>I_&i*I5wf0UB8^MmFB;4=xz_7VqTf`~($aud^pj*)Ra290CV10Pp4~6k1WR(% z0ijakGg#^YR{S!78G8gL9hmItHPEg?fti9vYJ5EYfhQqZiR<^nW74g%^o)9&LE`)N zESCWqtzVn!2VAV3Q8(Mc-kh1Ol8W3Q<+!{QBKfG7Z@tl3? zN0(@=+*q@@y-oe&TmBcQ^hDup7%htfejIgj@2!`T&WhC8swn##z59W%(d~-}>T5Gk z7YP~SC2q(Em*$3dtWEi^&-J3=Vwc1d*4EZ2W?~t<&VlcPWb(;*5)*65)>fJ~!@ab! zfPk+aovNy;qCMU9E1WF6?8s%g&*0#rfKyq1ci3X>_CQIr{RmPTV9SpWmpxLKz`+^$ zP;DfPW?^Lf&JlQ=d*59Td*j}|P2YlD=kaGC;`+oOsAVDw=5nmGgXEeTqOtN;pbEyf z{2^bblGv)Xj@Hikw%u}5o`fl|J# z)X8uW49dDGJiQ=N)Px6j&xw3_P*>#%1#LRiMcbc{oPTNuj8ugyHqRS}ixAx(#WYU) zPa+4?)Cp2x9eRzIibt>Y)k?LOmxI;vIZK00#p2=piqXq*F$1T??S{_;2(Mfa;b3|; z`wFFNv(O2@!RKmY?+wHF7p@T-p#z}7GqLzf5y4|{h829_&K6t&QmF(F2u^ZCbToZS z^Q2S-mnyy>YIh#1w%x?6&=Ky%85sx)+YL)wB0L@6DG*8Spr(u+h4_kw)6jvcb}9N~ z^=zB&^*8&WcnsWym~?NV>z}FV`{eBFncU^KOTB_gCv=$kgjbJw?@D9pMP3ceJ*KRr zY5FpOEp#k^MH{#O+pyD;239#Be*MDpPCwQxU#-~YsU{)N+i5+$4TngXC1M+0ZTFy( zst6%ZH@K0q)Y+UYs;JZta52e!1iA1* zkGQ;2NP(o67o*s1cYYbJzFo-1Z^fJ2+YP@eP~lifq#UF4U3s@`+8JHGOSY>Pk|A1Z@BD;??^naDt zV&>`2k07a}o^_{sW*dq!n@CF>Jch=3WaMd5?OrLGg`vYG_ovrI*s0FeZR<;=yKatS z$Mictau$czWRk?D2TEF@|;Qfd_*Fo@)zrC z5h?#vFjyQY1&y4r`bUgKc2qFH>LnqSPpFdLk+x7vT-NLNWgof)5*lUOjNYY*hpMt_ z)t{v1^r0C0P73V`H6K5PR)LeL*gqXHHq{xpDQzJ0UgthF1Z5%TE=sTgF_~e2Y37PGNLtm)1>npiN>F!9Lszegt-BbC8XjyJp z!9Kitm0r;(sQq?LtSDEZz-kCDO7zpxsy0*MluUCTMDNo~niRi#4&+>KlJD+VFw%AC z_IwS!s!EMc?65~{);}ayxl;49`Bd?5I%F6weDPwF^ZaM;#?vA0;bcxfRURK@F-gg+ zet|u$e*xkVP0{WZpSrEh&M$1@)ayreDT{2r7&0j$$N2^11H0_yWX9~n!!%-^F)&TE zI@)fZM}}B6pOOnV$>wH|6er4**gq-x9TqcO1#T(oR*5s|MpDScnMN1h>5#iFWa< zw(It=`M&;0KPF!g6g*?croRhsCDK{ptrHB`#`Y4GT`_QX6kR6SKDed_QCgi?vY;Vf z!$H@h2i$BD&og;-(}>?0-MON2F9QB1=!7H1iT<+s(8r*)kS!j)ySr<(iKifG-b1zZ z9Q|=2e8{S~1oHPqmbnCUjv&mf+zEKHa$NuWCPG9jHQSp)L#O3R_s2jQ3c9k|m73>I z=RAlw1BG-|RaFRsG2RLV)z19Ptopus5mf7QuTsU~;UOq#UAmsBg#g_vI(h_1cts)> z!@0dX9afA|Y;3Z+_?z3TQFExLC1zoY_ZAANuPEG`r($dfb}PR*6?44?kpLs5au$Dn zl7k%2lET7vb0nAu*xnEf6La$>V0rARdpW79E1mq&_H26;1O^b4NS^+9SWA3AIea#< zY=v6({9d3tbaXb>3cMd<-h)a5B=ouDPj`TN;ZP(92Z8KChv{TU~g|w zu1zA3>%W6XZT#4PksZFY}(P6(Mm`n`d|32AsXSd0=h? zL}!62(PjucI1IJM$VqC+@>xA$L?G9y8Yq`{fMS7T>-;MOiUx-Zfu)O_a>!ryg6a#n zTL%J3*4`LT=41T>S3BZ)Dw|Thh>6Me$yyI!c}lEBrX8L$vJKt?kM4b70Tr!VFHde} zccE1dXp>69!U#H?9x2+3`X?Ji=B{J!Zct5h;-N5xMsxY{v=c3 z)})xkzs{tCpnxt20;wFC_&1&>8@El~W;RJXF_tbo{gwwSe#?QXg#eH8xet-Qn@_2u z1Zr4M9I~E1sGaJ;m!PtViG<>R#&Zy%hnpb*Cn|(Y($4N*b;0;MBN}bsretRNp{USu z)|vL)PKoKoDFpUvZ9m0xj350R66-i{FasF2#wLB|uR8*7uddQ#Ar|OQyXL1bII0DG z424ZFFS7@B4@$*n{T=gPLF$>{-%2{y=cJRsD#JlZ25?=%{crvd6qtxQ6t=s+pWSe8 zqUDg4`hx9&_&T(-tlnnle1|5{xjPxz)Y39$iS(cfc~?lLhPu?|UYa#x#M_`*A7W*M ztvC8c4KprC#E0#wrq)phnT}^WL1lg z(zqz)01X2HikJBZ;M9r;3bo2q*Dp&nM4685W%K~jS8;K1V0+SM=2uFLOG46Wza=x; zzHwB0$Ezy$UIb-pnbYN%O!?)~2M7m?BYJUxTLlh0lul7`dDo7wgCje=1xpYKE`52D zqt>(eEk0N=aHoGazg9r{0VX_Ddv$Z8fRHB4XsU@$T={&!0>*m}}Q zR8!~3aIrDs!$kl@NRHADD}?wwOie9a&(4{Hky}1;IT@kA43S>N643#1(+a-8OT8>8 zt{%Z3^Z0Lw3BR+y_o6Gue~U_(u#VNP%*vwJkn1zcDl9ZR-5j)YYT80HvKYphM2c2i z`F980E}Cst;GgcLYP}UAd6(}C>DO>@a6%NpCgzHk*Padri|IAFGPk_@O4d0vqKiaDO)a}&?o-%{wu&o#xd8JeJ@$XgGdK!M0`l=qF_|C{-fpA=0>MA4JD~*P#&N(Wo{oFZ;hHhcTs-ID-J~fn! ziG&y#g;n9buGcl?5Jc~6=WWp z$9wS9xYR)w*3UL!m;yeAVa*I%#4SISmnQjNmmNCGe`+nnU6 zv9=GF?Jp2fhJ0%CU^Ov)v~qVaRYn2Z2Qr`^NDC~V>wB*QHjnsIL)Q(yIg zfARmHLB(&B5imD5@Ax}DGn4Nv{<(2g7I4BlRp{y8Vx4J>lD;JI;uQ6?OH|G$fRw*$ ze4DIlv-0{#N~udvB<>)K&h}NiB6|(P86%BY2?|$?Wb(%R+}v3blgb$)u=0dLe17{U zLV*~J^!qefBPc%9iwYiIh8z+zJxrj*bBTHs*$cPLyX!SkuX9W5)y`)d4PHqDCUY; z)L6_i15D(8>$e{w;tDAMd`19h&6WX5%xHB4Q~eFmV>+7@F)%t8$@>VdA~rgj z+xf8h=_+c>lmVosXRWQR4Mf#ef=R$$@v+rr#dnD`p2hp&?l-<(i8`>3@>M1K-;$8% z5ges=RzEUR{mVXP>V7^iZe@^u3;=E+A)z17)fDq2_Sb_q`p=&g3kIU~TK;BQI%GK^ z#Bd*x^WT|5YO~>P((gzO4iomFe9Mq!G?>xZoy)F-08x|ES6{QcrJm@}1Ft=9>m`qq z(_HoUhDPhz1Mg&4UceUv*#1c_>6B^g!QJ$lLgeb|Y8z1vgmR>CN<;mm=@b*yZYWE% zn{Yu{^z>3UM=Ot)Db6}28~3cdB&Eu;r2G-wiTplGl;~x7t~A!7>|idPO6df8`5R(l z;mZZJy$n^OJ`kTumQc}Rh>d*wh7pIbc2esS3In^j>=%^jo(@zgac{pSb zltwp$>=X%7vhzQJdc+3AWEollXvXQ1;fqJXeHN?=7aq~;RtWIJ#?D|-W|PbbaM)EW z4{-$4T1WcN)i7mlHtKKI4Y0|HEF3*bnd@BOGMK+4=Z6`z z>(&c^`ex^wA+6V1B-8i5j#z--!1NwpkEzM)=1ZqW z*30s21d$jEzQl#upywzMXjVakXOgCwg9J`ty99hOk(+`Frd|Wm7Hk!d&*SPC1y71d zfcogDYC<&-Jc3VW(t-n=iZ|0W?RT^Ou2KP$g8!rHt;4eFp6}rsP*em_=@6tFq&o!Z z?oR3ME+v#!x;vziPC-&q8tIVk?s)foX_xr)~ZyJI;D^WyW}fBDbSeU}dVW3Dg>i{7Ixz5G)`=&s!D1cf!uK zkMGLzGRxy>1#nnUo<2p}wlXkS0%~QX)f$zi@-@5Pn32lx@$t72bAVo1BRpA=V=X~U z=#Q5WJsc44)=1W^l`dydBhumOL*pHk)}s>;8Xa>}a&mJ^TH1rAQ)&D@I%VRZ-zKz{ zYLT$^xQh^gf(J+s1b`F%=9`nFqoJ{}PQ7Dy8ihdrJY+{Pk=xtbJ5v*f`knD2NKk@i zY9E`5OG^@$0u{K%$C@lJdEwg08OYy!HWm-GMaijT4KHo}wa}&Ij1M6$!-QfTr?SW;8?E zInPvbtp%fZvX^+{F1Getqg3R^j{)8K+apNX=kS5ug{_tFRI_ivKcy~d=SwM!p3EZB zQxR*|wi8l1#9fvKk*O8qO-R9gK>>CH0{I+YPg~n465tMj9632ViBhQU@_r44UT)Ac z18$zr{i2bcrTQw*AZ3tEqnBwqMtg~$|NHaw^>U*}OY*1?Jw9BLm}KRO{)eAHQ-3*V zxCWkYYPx>o{Lf-5bLGgQx`Enn|i>;GTd41IP{hg54eiYA;Pk&R0ka{9(uzJN{>3 zUhrB2*u^O@Gu0M!`!xsp*SdDAWOuNg{#&PZ+RiU7t{rbDzLXP!!B%yowAb^iLtK8{m+tAIoq8bGsz(k0V3#m zg6P#|?Ehe(hJ*BVJyi2}uVf_#t|S4o26S)}Lm+{TH}A!)#hEw3&z00i8qM!c0#}~_ zlMbQugMAjVhT9t=2o~`JNQLrPWf32?>c}8)tsoGi`x$-PMZfxrCn*R_IkWOubrC1F zu1=O9^p*+sG=O0QgWoSajs4*)oS1qKm>5^KW{MRPx;E#U+9$QZgP!X zwgp|}#4DmgAn3426N1>0JJB~y;0Jxd*l0c*2Zb>f>wh00=dN=T>huCStBTT1<|AL1 zkFVYTI|AwgQ*Q_H$FL!4&exx)N!UBnLEWNg0BnPiAdazC^Yd>pL4Scao~6>7KNUAk z9)v&tH^^7o{C68!lCXDZzn?CN+F+zo{)PlL1|n=@h*e|EoxLT4_$F-PO`p0Oz9UtE zeWHHW{WQP4J^W610!rcEhzcoA-!kK59IX8J&v6c<<+K&Kp9kBDb+VxW&P> z&=!mjIH*3AeY6Z5-~aao9k+&;8v>!1aFB{`Q(O%Gm?@3X|DD5VW>ut}Sw+|j#!qFM z_m}=+G09^6F9nMA#Il^UhAGGZ`^l;dMJ4hqI6IyLY9Gl`)bSX#>q9}+Ae0(HA-KA_FPcNbyk z7D9raN9;GC!1=?640*Ko5O92~D%} zCrNxT*!x}h<_+iw1b|X=lRi;Guju&rKXY?@zwVOhS+7m1l=}<9YcREc`sjoG^VV)w zB~J}zIG`s~PY+NA0K73SL(t_HesXf+cWMJF%7F^n{>e!W_c?<_RDFFt)^>2v@1nQB z2{I7QLD75$vmXJ_6O0@RehkeuqodFL&*S6c!7T$62N}Q}`KL_(8kvU1;!WoxkRS)ra|H0TNpVnm znkYJ$8uToPMV6wL<|AUTLFC}mSio6DY<@HjJjtDv6*9Gq;^H0Pk3j`1+3*s%UFdl^ z{@i{!JhTU7YJ`}An3$ikgv< z%;Q#G4gspbLnXtWr#*c6!;g#;af`rgW@NxA{yM7xdo)ZmN@%G^9;0V4B)Ogjh&~$| z8n$9W6OV~e%^J6h74HTh1!@#v=_M=^;;dHOzR!&vYg+_15+n2r9H5G=h{;iWd4 z0#I`b4|6#X`CDMJ^|*R3Kv$_-N{1xGMQ{W&w4;yVV=uc$Lq(LR*OJ2Rpe5QVRC4iIcTm=wV zOiWCmcdSw7W@t#Nqk2=2UTFt9D$5)@G0TJc__VY%svs1!8KX?u1dZs6fDP-8?5FJY z?5&~+?-mV#+Uey74z;-Qp4_m3pcNpZg#>ma1lazTmW4-Zpj&VrApE`$ueO@by}3T! zGf5pnE&Ha~1wtN^V-gDO_Am7YLyydEt4D3NK;8dX5onNHgFB^si7{o*!^_KhCBS`M zBYH=^c4pq2As+_#BiFkcnaRn?K(g!Ml|Zx7(Kb|EOgfFvYiv{b5|6lL(}u1feC28> zvcf_h<8Y`U-kpSc+r7O{GBG>E$T+T*wu(WDr)C7TT|1fVGOBe!RcEa6LQLVU8x&81 zpu-%aq#wD73nsH9b&|Z0@mM5Dw4xYk}B25kL4mx6UJ$rW@;ry^CPe(B;Rd?^l*)C{c z!5T1_s+dQ2dmBo?n^>W7O!Z<(1r{oraPqQ~pOjyYKczjzpdyCGdJwpH2d! z>j(s3N1q0%05V-(gd6DbmdtGOtocE3)OnQD0YcHV6mpp{&(h8kW_MxG+(5mM~ba>M%y2m7CVD$FbxGSW`U3sEv_vF`S@t<;X zQ1kb{&33nUck}yjrPnMLUsrejDHi>pzY2{?5wv6EIpMTSDi2lsLh_}FSsE0{2l&tf zl0DEz>-=lY=QTHMf7YCbIn5fC98#;^988F;^9hFxa(iZ?vd*7(}Vj5JQgz>xRj z{gl(`?rg7*3V#c*(=ViN1F(j}!ryC5xzy!7?265xULKF%hJ*x#7r&3i5u#M!sBkT% zIzlojCjgwMpCLWLvYug9fU&9iUJ`c4!{7%v^Daf-lgll8zHwf_5pZ{N+t3xh1siIp zK{tz|e-Qrt_wOIb zaGVj@1c1UZ+@xvQ^EJRpfA@dZHLwq|1>n7G`41nvCp^Lzng~4C-zJLp3^HW?khxZ$ zGc(MrrilB>ZjT6&NpJ;>l%*~3|32+` zgHl1;6Zo9z=N;XcZt&y=MiGF%X?GEkzFRH=oL58AVlCiHD>EGDe@zN15h;*=+&}uw zUm6xwX&UQ@>zU_s@Ux_Z{?>Axii#@G`vnTAqn+JQiD&!D=W1pwa4SB~5qfMUMciLR z`$`W36VqHZy>bi4LIW|&oJ^UtAuj0%d=6V*>bDK#{MCOSsj;|u0)-MCL4?>}m5uRsK~#Z{?fA(xo3;drQdd9mL-z%S3V}{M2O0kGR8ui~J^J5TRFPFyQsa_Y$*> zBmcLwAKt=^Z#D6jSvUVZ1uY^6+jm%gM7UFcOv#<=HKEt5A_C7Zs~mal!Ofh-`8S{0 zje5|7GfBNCfc{iv&JEDDU@@y-wM!xL7eYr=6YKYP~J2*@z_kSl6WP#CmKEixCoy1 z(!t%irTvL3@<|I+g3?j%(M@r^jId(er>?jx>d?qpgu=BAkck4V{1o$q>%-TgWcl*( z_TP|?iwBit3dH@*mNsnzdDx&B>ca+?ohjkCx4(LOpFVr$y*g>K9UWkB8NfU=5PwH7hTmwmT!v5*xpkjBqI>3>J@ zx&>EFTYGj$e8nT2qN>^@gDrcb??Xo@au2uN(mN+7CmS-Cp)u6m`YY=Vj*Sq8=FcG^ zBe_k-<9}*w(rn?Wo03159OmzIicJGKQ$<->zm1o78lR+eu}gPxU6$lTY#F{D0@omsl+qfQR!j8khkul zIUo%_c=Vztp*AH!0nl2K4sPxv z{@$3_So5?c*`?cINe1~l+MwURL8G>z5~;R;^E7RI-K~cf z2@t9xzQD1+dR`CzQ4g)Y{bx@M4Vm{CAT4Gzr#TWm?v{Mgv#H%-i263V1T6@_o9Ycq z<()g$-2p4Lp;SO+1o{55K_x=p`5^of4GrA#B{$2}`faixgXtw|n+nuh@h*iypD9o! zQQ$0{co=xM4O-`S66Sns=9G>Xjye=OZpnmf0plL?tSmSrq>6^;sE-*cO|60jU-b4{ zS&<#U?>yaE3k2Z-Xc_nt_ap*1@{gMoA0%;ea*B7o9d(c>6E`+q1!}+VDOl0!_q`-u z5isa9no`;tbe2;X+d8HnIzxt8+jY5S*nyX3q=PaFiCheTedKw#Zb3dZz;1rRbJ2Bq!ncoUQY4 zo4Z7h%hp8`t0Wo(rKQ7uQN#`_%sGxak5)*%5gep^pyv1dq^TZX-gSmM>#0{6@(7;b zFVgZ?5?>#XxPer^*#^X7Zl>;|($vUN6n)MwKS6PubMtH3rn%VbbV!sir!M(|un{m0NYC+sE|U1j%46q9?<(hq5;N~2 z!^5B9*8gHy1EhvPrXt|u*Yn}>7hI{cL+^RU9XuUDzqc~-H^vjA%i9`C0YqF;wY}KN zq72^sy-A(NO{Y^93aV#YCxGqH-q|@!j)H;$im;$U(sT)eC)ZLWA*@+JX45ZzN62wJ zY5=4}8BQsEaL-u^NP87lxHzw$FhK+Ac%=IcMsDZx7iEL9Ozi!85~t8%ASWM!XpTV3 zWZ*y0HNd@F>$mEamkGRf2|_<7zMH8@zzLD}@l|;D&VQkTxIa~h@C7P9$Lq^(1)s-6 z37ih(KCgPpOdpMx>hc5Tti%kB|EVVfzV7AJTZ;g(b5l8zP2F$4)=9BCys&Q^`Oel2#pt>i4?oRmRl5wfVIRM93OJxtUn*^p#AU1 zPMXKkX^J>}ruY*Fr z(^8+Ct(&v?J7D)y*b+e57Em$?Jyp$o$#-)+0`gjew>;S*%v>YKYNPYPsesc1<%Z_7 zP)BizJTV>`PNynd{|z`qs;TbgfBaDSj(?HdU4d5eL!*Z*f^uc#WG;^StciCPqrbia zwrjJQ4Wa7-Ts=1NjhSQBy8@*8OkyMRkHwU%S!3T2*NFowKd$q&2;`U8a4#ef;D<53 zC0+)E0!QOd2F|VF5>gba`kk4?#v+TkC@j&6wd=}sxGVf4G{~~MRydh$F zcy)2415yCs*bmbvf}lPjv8f5v78n?0n$FYnB~lkwV;%*diagnfnVwZR491hgfNura z`Fidke@>u5LrFdt)osf_8}&3Uu|N39sxG@m?bl~&x#*z6iH(G}VRJD59Ta+kZF=yJ z0)iyhioQF)SdKDNByhbJnT9EzVh%{r&+LMV4Oe;fhQ7u` zuib7st93DeZs*aOq2Y1c8v>qvo-TSSkzl zd|9|@l5VCS>p&7__Q9v_B>0}_{BMp(HOvjRLskh&=AF^8Q&HNCoL`gu{18xbJ41S= zR^nK;on>h#tzf}{_&wBZG|E=VnJk48O4%wP2r^MtrG9?13_fO$jN`doN`?|nTBxIy zSU6pcNi%8y{vQ7r*f^jGBxUS9E3%dis7brlN+N_Y5-Xru;9@O}1jsSfPuVG_Xwz@x!H~*SCsdyeJYYF z4g!Q1z@S8o9eE5!P$aj7^d7Nq4W>z);399&R&sXICnbVBCd*dF=Zy<&gDyOvPe2Ey zBc;$GEAu44NE&?abFtohzJ&ylI4>Ad<$3>@L(}NN$@Ce7yx~pU0~`#9<1+dhP9fQr?~6o@F3~RT0@Qtmd1i2tWcn0`FUob^6ziHF-$L- zNL{~{;_@)~s7sw?n-A%3Z|xXiOqpdXhEW1UMgJBX;*~$$JWCnqqql^utrTo+7Z5X$ zw`z5F8|hw17bKCj0bF>q*DhX3EgNmJ?8l>oAzRVs4}xadb8Lrxs2T)C1qE#FRhP+x zVp^NH94rYpMpz2jxkdf0EAl@!hu#6d{9!X-jo(uiuHC0yMweN4k{f>|f~SY`JMG-; z*+`J>15L)a5fqC8f(Y#77$tXTiW;?{v$2Y`#=?YzgpEO#LefG>(;dkcb~(@k^yLX` zOU%fnq|DM|m1EgNSesScAQv*U7})0pY@#?iBBZ7Ie+~+pWadDY_ne|r55U8J`>hDD z)!C{5rJXIixT*Kb+*{5S4!R2s?^99i8lom=8As~#d!Y)G?twYLJ0skAGs~HY{EXI+ z{Go1QWB{5R6-{!`-f0Ua@abaxJJH=9F7-r0Ag{4t+Z`J+in>*%I-X4T6{E_E?b^f~ zo;K?yH$K@~L+Vy(e<@%q^e9TcHhEVkGl1FHliJlNfTX3Ij8WXEi{6lJ&QKKyc>T*| zwzRBoZk|4)zc#cVY?((5GV)h+q8XyDEB@ZKPL| zFyyV-*$|bW11^2dNNqWv1t}Hdx4f`p4aFaUk50>)XS{p59x@TUjvK&snzw;MWcYG& z09@igW}#}Djh!9!6_*lM)1_r6a!>Jj^H(HBE}Ai*0eYSU(h1i)Ha=0?@;OZ!89#@- zLvb3$Gp!ACpd|^_*_8zy8=fkj8W{h59Yb@r-Np}&-@Y@svCf*84UXh?aob^z6WT5q zSXfWl<||AhZpUuUfgOFAl%1RF4eGsKQlY=F%v8w#Mi@(#g@TeJ7ut>g+{|EcD(!{d zWcX<>u2n8gY!O6q2P&CKM~7iafQ?N#RA>g+ z&mgG6v=q#OS1r~cd+~txwjI=)CL||Y^0+84p~Y>h|5%0w2AvOddYiG6C&GfkgyF!9 zREwVc{OImtT*Vv}5p}-c*pwN9&sX3uW{&V2@LccTt*)$q!8Ev(E~^PNkcfsqX3HQ@ z1I|*yzzJf4?Ye>JrvayVr2-XM5Q)pbM8jF9kgs)|peFy7w+!93Y{KNxb(e-?Y?T?% zTLDBm;LUG7%S{y4j`lcxdO7fLMOmrFQPXW6c~SW>S=U+$fKW3s-Zoen8LfaIFqgTI z6U~~}WB@-Ap|GJQ5!~p2r2{;{{quvr#l^)_y3t?000Q+LO>g|y;pcjj*vguD4K^xb8N5PEMm{8RzY{O#{bgwzej zZVZ(EahDH*0N3o^Ei{y&>Vqd^>~2kHZDLN`C2A?>^(MNA6FlPPVvGVpZrC4Sb`g=a zr?}NX(z!N=;H+O_prE=0wZ0w>QxP4D(YVV$sxS#d5GSQFxSQTzyrh3Qu5bB73h<#l zTK`IDd)XIkX+r1n^*uvE4K9&pO+jo9b0Yews=Y&qbkbqn_qwLsAH{_hkVu9j54~Bf zP+=1gu*rhv6t~O?7x7)Mz)0>LH5C%(=7BZ_50GO|-xs`4rI+k2=G}~Oqx(^mQ}q{d zuMC7Zfm%=DVo_)cRbFwVq$Y;B&A>rg9^a?>rIoC-#c`BN_$EQSKdsv2s8m&x%J<5K z1{YV7LVW5N?!)XA+2t1^yTxQ4dW=UEw8q`7SM+AT`sN)HnyH72!HZHp7lAwsA z0Ssu;Zs$qlBr=XfTlX1fEV`8wL$7dmV_ zJWE$~km*dV_F%+@2lt~X{>HB2{C0NbSEf~$;wxSS0EtQzXdJ5^q4xV2skEHCefYbE z_~Tl-#l)g@hTc$Rbmp^o7Vtl!qM~fpS>%n$bjsPHI2Y@GKGTeBme1S=uxWK=<${ro zM@dJ_tCQ~hf;OIAuy7CWJuY_Kk4j48*fDC(`dYC;%aPcj9wNCoo@@G8u%9fy_F6pk5RGujgi(O zNF((2yy@v<%UK-o#k6q7Z;}#>gHNL;*8|TB9u>Pr*#y%;nd>4 z3T7R6Hezh9DZY&qJ~^t>+zdY1thr@Y`Bb0W`_0O9YtPHV$_gkq`T!CWKg{p#)pa$HjZPqDtq#K`o5(7kwX{OI_&WeIclhcQP+J&j6BSFhhI z**w;2$GI;}o0b+9S$yhNJjF8z#n+D>(yWhI3f@(2l>E6`N1@X)d6*SYgG;Mr+uYQY zLjIzS=E8Wvi?fR&I~`OuLtVDOdly|ZHd*;-C-?JrE#I7hvQcp(H>MFp z1`hAe*04nTkhT6sW2Y#LO^FCyz7a#w^94NN$p$hLtWj9(@cjNz^nPqT6!qNUcdx$t z%y6B0J>&D$YkMVr*cgLL6Aqbvz(iq5kp@sWAbS5^rw*(c+T4co-j!!H-}Uv_M*yyj zK51ESq^FFV%kD3LagjdX8&b9qcMYgW2tHIe!YnbUJ@eHf2~;@nbcmhW_Sg{*>tXnMZKSux72h>>L(4pK!MA z6x>d=lAf-9;}vg*dC&GN+U<`M^b%10p<{-mx>tG0pok@g>U}zCa(a5IuCDG%HjkVc zN$u=ms5Dv$Bl+ClQogr23i&Xaw?uy$fAhC*j~Pg(RdlkZJW0QoRl-4+I1_ezLyk!# zO2LJA)ru{0_xG;7Ve!_eXbrAY*RL4^ZE|=(?rSb4y+ZVWH4T-P`Q9>m$>|D~uA!09 z(u(2qX_}anSm}1B5jZ#k_q-Y3TL4O@#K%*P)qS1}YUe3pP&Dv@LuHQk+OVP%^Fc?q ze(lXvXM5umzts8)A74Y`&5yoVH|=hRv)>lxKee2|352E=!Sj4FT8ys!4_beyN);4F z?fwl--~t^u-Z2_~XuW8#l2~Li;2uFDWV2K=HKo*1Vxt9YmaBu&f_oS1_}&t)GqBh- zG=_f0nm&Hk@gDKfd_tmWH{FaH5kLV&L@0V_wE8C|uo$TEL?)ixY{+@O$o&b-I3w)J zguerCDVl`N?+MU0EHJ^`SFJip%- zgSzLy^Q96;RZK+^{~c#7ve;MIY82fO9|U!t-S~(Cpfqv~E||4}=7a&+pxG3j_QER^ zo0%gm=9i1}Oef+KCK_JB#AnjS>Zn&NBb5e|r*TASw(1bs9qP}uI zifv37O^9UlXifhmH)yD^*w@0s zgueJLt?9})B6Hx5KXvi?;;dk&5p5e~I_2RD^mosnqw|!#PDkIsd@lShC-~umY{@+` z$9L{~O`o297!?0-Ea1L)M)x>-&k0bCOiQGI{qQNUAdkd zRG|T_$710qkfBYhCkJToOJp}~ui0r0RYc_u;cFB- zJX);DPD?8_;kgowf%$b%nthhVW{yWY3Je!o@r{Wy_&0)o(LMDMD#0;rkV2zm{)}VE zb3LNzbGI%P%cnVDr~)uL=j-M_x`M7p((Kx`wr?k{Cv<&SOQd7o1H)8Les#77v?{(k zU4zIb+lrW9CW)=Tt$s(s*X|*$Y!qF`#Vpl0%9FC-AnCU+5b_Ac#ryTZu&JR|+xL3u zr5+XLMjy!cuDDhej~X#3=7u`$j(n3R$?qs(3knGVtN-V&VFh!GQ;9?*^jBYB$~5uV zJjfy#^)85a^E!|*NIt}f+U_ZL0ElW;NAVCY#WiM$^9f! zVHfZX9wQ@<%491@5iCq3l7Wu2h1xlnmXFb8Cn2!FHjXW^@moy_&77l*uk!XbC+?WT_J?D~%~}LV z3246nkO&5I-xanx1rlm2$1K;|WWJpxo{qKwt9G+sRBqL67w~7-q_m2%Z2)u}u0mh8tY*(HmBKPsBVn6nrr>V*5hAptFfkeDraytNz$ z2^s3;NOr0~<`ndKM}mc{0c|0=j^2Tli%`#R!4d7tp*26$(?oD+Ap&godn7VB`MR4T z4ZBNO#33eh__g1HDBeq|Rg9sgy_pr-qnWx3v*{h4bmRWS2Irk6A>|^^v+23wNA!%( zAijn7r;8dCWwo%7Dp+E0s?uVPQ?2&y9{#C&TNWKRfZ>And&Zg1VO5GxrlbGRN}pdw z4}<8CnvKmFm>po2G%JjywY2aN;L)K3dI;o#l7!?vAXdTsO7gzB1fKT39kumKMW$ZQ za;}gM0&`;SIXY56oI5qPbA;}LU=VDR%)jEWO*bDa$dQPt2NWfTJe-&>J|#DW(Uf*O z^A_+WHV)U0VMk}-e()t;Lp!~bF(Y*bQy0>AE+e3p+I|F_T+8LV5}P|8AL;{&wYdHS z>YPbTIYC~y3Fe8^>Zy(@pK{r6{&s6*_7U`UBhoH2cA^PPM&z=ov>}Wa=oqp)S9>#d z9Km+`XaHg_k7Ng#R%2#y>3RS`*GQl4&GYNG`ez7zD$#A`V?OFsVwtYB%c_pnF*m1f zmPmg?4BcXsuR%R8U@Pvn2cd!bBnB5pG;JwcMmxb><1UxPGz#qM`tgf*d48{SyJWFT zz2{4`8;}@OzbVv7#8Ah)!k_P+P}OnE8Tv%{4DdOCtaqyOuIJQ*ro~*!Y6|vA(U#}s z@di-mloc0Wj8aUdo5r1Tn1Sp3NeEnsFlV*Im_8>P`9voz;3=7#nuvu zqxL{efCxrsmD@hvo*Xe~(gCXmL??by{v>SI7N?nYNBO&eN*d-48VKQIY>i4dY1caj z1v8}(Q&@a!zS`vm+l&w9Hp?~sqE6lOIQ~VKunQtA5J&;JE~E4X3XS8rAA1}agVsDx z%5d2%*DtjY)n!b_!3F7y`a%!5Nazd`@I`ygzrBppdn@3dlr5-YTJp@B9O`#221Y>& z-})hzprXf+b%R85pfoVi=g(oM=^*oInbxid_l&)kMTj=H#5 z0Y{+)S_lG&`dF+jJqaIkWXrP=L9x-bL=<5)0T)g$$Bfz(Wb5ZAf}&e@r;|(~$){&K z(+vor=%4c5z@YL&Vjd`Kv9`0bvwz0(4t}2owyirt zhLC9iqI+w(n^+-aa+uKgvl1?r=le0}w??g5UF1HC&Fx%dv25sr80)VBHb5Lr1doT~ zVRrY8&kjG}0{~_mKDV<}>b$whKr}vizsvR?A`>Rp{RPm`MtmAz83uAP|JN45457$=rAM3^9T)c!WE~6Qo+X@-_U=|n&mgMVb4LCt1UzB5-D}Xr3842; zf3-c-s?1|f9u|X*It~}x_x%$5q*yi`)a7{io#Mt`!ppt+x2o{8=pq%WX*j%l*s%A| zs`J#k9vD2y27R-#bhvhbG#>DPOq0|esSPiJ21HI1X@C?VIX4P$PWO||jh>?u5J{-u zZVpI{BiEk}R$FPBS-W~Upp*g7XmdP2i#Jy>PX^S`CUQC$gK2=K0}H1$t1YSIvCa-+{cBD3u20P}yRX|5{()ITG0ua08n%sX?36C%3 zOBW%~UL1fHX3A%=G`iL^wRQ?;o1jMkAZ_v5F0=qO!OBOEg9;tD&I?qE3wFH#gU_Tt zvC8AjnktX1f8`2vm)t6`8P20`!R0o#40=gc`6Q0kOiDr`5-XBZS2C71U$ds99$2X_ zpRnQCp-Fd$z=5D|fZ#=4fBmJ~o%TLDgX{poU1tE#rIy9-;Y2ZWX8v z%$c_^4L0dEe>d9@TT^D-k9*<^DC7=q53FIKlCJ^ggEIf;0blx>5}Pi!{U6dU)PHD( zm-anreF`WTj+Sv0H)e_jKw&~{RhH9Py{{$m=@95inzb9r>Q{ow=y(pz_yYCh0#Pmk z+V#N_ZEmM4upayq1f&vCUAW%+KOb%CAL_le@@2LBQ`UUF!VsQaBdIux5lmT zyJkF(`hgR>0!ps$1J{m_8TOv0Okv-Xf$6aQ z1}@+$R^X~lP3??be&`svhQ0Y*64yxZ_*))OgBu6CK&WA71fK>zaQ~J>hHp9cr zJ_J6t(;p;}J5cm7^|bp-{P;`Hp0F1PPAHuj-~H#~baG5uM$it;PK(XG?ve_Tc9CE&@fxRM3o~7Y)IvAR4sQ+ln6B zi6rJUwoFLiu*-Dc2m5+~LoN2vYOIaVlHJa*UWlj}nC7jCpiWx-nFqWtIU|(X=L$#ORfo<{NWYiGI5((1) zrnu4V$hbeLyRT>!m#)0V`&hn$NGR|d*(MzN8>k}&fdq7J4Epc3on;#tGNM0}f-ee0 z!Q(PW$I|t*8_E=}M=*Rg3W%kZQ8C%K?jYtuL7=5-%d?LA^aQZyG#igWh2f|l0s_LT zC(*~b*0eWjW+7VQczWVboKIM?)4)k9lzg1S)0nMy5NmiCry)on00;AJA#$dqTH-sb z8-u$f^2ow)4tUUQWeLQyX;|r?8R>b?idcQ$7(hF}S{`wkdxC_-bQ4BFdb}~xwNK^0 z*$K{|1K?mA^NM-7v_ZBC9A2D(JLy0Z@frteSs=cGLaD;F)~bKvIYqI9;a9cVZyr`C z$Q>^8vA(2ME*J$am;tt)_~V?ELRRBG?1~BP24^ea>W`5CS{JY;fOt8&0~*Fw=^uUm z{2A?&1IpIqnmd(1)RbV|g{k7VJb5EnEan+t-(QAFl+#YcHjWGcMP5Ma|Wa~sdPsUUg-t<T zw=q1`mdI+6y9+K>V^6`4C2m?;GoWC(GB30E1DW^ES)p_3A}3@Y4dzYoy)M)s@Lpbo z+>vxdRI!JJ;|W?R*G6@uY$=f1dl-O_S0(OG}Q(s)q3`nV~{q+9rBLYfwnB4^Ci#KWQHJpm8D+eLs!aeT04=3%r64_b% z)DXQb4PytHqJt&dexi=Yd(IOv)^1HYN$q#b;X+>%pH=UTOrEr_G7njvG3~6U_iE%{ zWZ@5>A21Yzxvskc?RhO;={?EswdO_WC1PQz1km`ns^2qRZ_u^L>{QU>Z2P+@9>_tC z^5MWiX-9<75orUB5ey)b~F_9ZyE;XH;nxXmN}6loy9*C1BB<718J(~ zW_K5`0Kh7hYE%{UU1*f)y#;-dPb|b4X`f6iw}Vc+3D8zZKs>WVDL+!H2MGK+v0f43 z0lIG#wKqfK{>S9%(Fpc!L*T3(z7|XfBb%rPPA$*jFA`bao9I5)sF81~rKvonwxB_c zu??I6tfn5a4>yZUYZd;Ub4|=H?mf=3vb7*_huK)FldlnWAglH8pB-e{j?M(Ufg~mz zw2qTLX>OAzMCHO=Iib4G%k^Ebh2+01{r#K65iMHrg*1(+H`H-?lT`gqsakki@I9HNE$I`C+*J zKHM6P8lqdIL33r4Q3~bsSO$6sjv8on)g&%T6UU zJb*D!cQ^EJpyP3)H<-n@A{QC#db+lLNf7n>-3|aDx#j!k_|h`h0cB)*9@f3-~X zoOWj>GlQZdIqjD}@1pd4Oa$4bt3|wIE+=X@mG4fRR5uY-Cb8B$y>bwNudvW$0RebC z!0hf$l+Kqn_cUL0RSbBX?b2cBJC2!iKcTLhfu^2$l1u z&F({Wi}^hx?W5M(Nn))=e;butLZCy?97^<`Ude&-E$`KMOom#uz9@`W>iReol z4g-t@^vU2>tGyN#F%c=W#NV?((jWi3Q$Gi2OW-r_ozIcPVIx5(TmLyP1~>`o7By*U zO~j;(oGC*P-%J?F1rbVo_?`vjoB4X(botl3 zpAdr%bQaeCc{}K&Xa}qH;+}<-zOGiabKNdX#CSl3{1Adp2D_pl!QtO(qdzF31}29AAU2)y z-y5@O)jZr+gGb`fMxYaOUk(mIr&^;YzvZyjHElNnSY7aa5(6SEz0mqTge_H428wE? zo8D)$Tu4R(Bc2mNKxwHbUJM0jxdqU%=8g)KlFjD+;xNInjTXl<|@ z2BKZ1tA_regM8!w(aX~v3*I#`#`yZ>qz$EsHAbq~PgH!nGbSdxOyn!QF`D&`RB4ng z-2bK|q&q|=G~UbKZht#>DDNQLo_D4@ZtRl;feJ?AJKJEJ3F>FBxT0mz7gnl16G0bW zPKuN?w|Ux1^4A5JV!x!$nFpeFns?ond$C8lJ|2JY$O^VFI-b~_|x_%x#(U@M)^~2?j|9yoDQ$=|$JqiwUocZpl zHLg?0PBagC;;@XP0*@1!n(FRL9h&4{4Zmx3)W6U2eg4-l|JOZqZw z-Ljj$U>ewZBb{ZJnuSdte+915kA8jt)sji(82aJmQSn+V=`xx@*BiL!-@ktcg&qLS zw?!jdxxNOe4iV5UNK_QSJ@ufWk+X>tXX%k5y5`YO^oEPXrD_Lw+LkMe7edhYrPp@% z)Yq@==UBHn=jE6%;#ynd_6y<9cFJdo2#bgmprE0lHG>|@Tc5?s^FV17=x4%}XlQ6y zq}x2Vqx5aA$*0cqqWn_ur8h6|+fFGgsI050M7pTh)&kT482_J{6$$p=cx_r0XA5Dwnu zrf7k0Y{q1K0G+1byvpM~Bh3NS)cOeM^H~x)vN?WB0#Fv<#G_T()s_j-wdL`vqje4@ z+GzRy0L@_7s`4p;13iHoEK9JI`f?Si;5vV^E6u3(egj-EYIg=wgbO z=Gp=w-HN?gAA{MtOh|myG?4eOo%+=Bj^`!ktp>wB}sF8O6xBo&2AZ-*Ujr=tc30!-?oa#^5|lqNrf-i9cya zrD60EE?%8vFnY()0Kzt+rZYEtindV&nE%(P|E38NsmL5>#l>#)*46-t=1GbTuJpt& z^>H!PqDYdCain)0m+~K-xm~cnyN%X0IQdzF_~QTe#cO(D3X~)-%dzUCgaq|akzMJm z-e7@ShTX_t=#F&nN_q0R*u$A?yFC!SX0pS;M|)2ZLWpqo?OOy z3mHNbnK;2SNg}ers_KM!L2>9K`I-c_6K=kx+%>zCofgk(9k01la$&O>#HISP@BB8NP#ZHd&}ggTW*rtL<8};->oKKRQp`=``)Gq^;_9e0q(2?QRmsq-c?KX+sh5)GSm^|6Xg?TKH z^&NgpPRsGdFAjFd0c}7W1TaHDjqxorgaBZeIr_~v)joILe8K`c{~oVn?!FosW|BwC zMer)F&y>Ue)2C8^M*w_7QV)6~S6k2GVu`*)T88EL02lAGv{=d;e%ITnks$OocwfA* z`$2{V=rl5!PGz7pv;h|m2lO5NaPLmEDD7|jxs5`_=XsHmApF(^Qmg;(2hrIo)2E`y ziSGNY9Wo`nRlCe1MnjdyU|TteG`z5JdS z2$=~1XWMN12mg2qRdr4oP~rhri4`PY;Sdmy_vU>dwA~OCkS03cUj%9lQXnNH`}~XO z{ne}2+p(T4Bjj8<^+E%A{tBR08Z~A|pcMB}ix392()xJu^gs&t1=@q-U2U~ve3XO$H%!XND3IFW+qv}w1tduca)0m}W*@bG%U!~VGl z3km7(V|SFH*U|=5uQ|H*l@Y< zksUD(xzK~~@H?l&>VDUw{rmn+5Le5c-OuK_#gbBVm#AcpLAmI0lM=y_g4x*QyyRwa z1~YZJCS>gThXoG3Bc~+}BO`1(*NGtMbYSvm|L~tF@x@v#;nmD)yQJwB=4t!?dV9;T zDA(=}bg&RHwu)eaO1E@_pma%>gmj~Hg8>LiH%Lf#=M3dWC8fIshHe}>&KhO!cmF@0 z59iD$FRsgp=eeKzUh7w@D?eGGiUudOg05ZRQ~#)%Z61{bF;BVaqV%la52jc1&*R4$ zN$%FQoScVFrDPoeRCo$rIKGeo`d~h zmu-^3wnjSc2Qc=S$_ND09|Hqb?xdxqfw-*O**)~D63St*QGS2g0>um$%0|2=X%Wg*^iTWnfZ?=3s7Fo4a3!LcGgPH$OT-~7f_ zPOVln4Udk+kag~GsUs>v3zYot}SKFZtr~#l`a~O0Uyx`d*^nC`&N5!Aayg}RY8FusUSLI|V z;n7DDsTUji6RCxEHwy~a&b3ed)zbOlT4F*~>imC?SkHFhrxXGEQv)eyzoavMC0Ynk z#VKnMzXX$F?!ZK#I>wrvzYFxkxJfgCuDj-vnwrWLLqE9a%fq-do${N1IgpQi(#|8Mh=h!DG#Q%{*Ba!kzYB=~Y|zCy^R zdrs3md0JyGg)=---t`U-^=_;QbeCh=CxtK7qe$HlWlKJR`)eIt{zi;M-kGZ3D?=yM z*i$QL)zEUYez|QHy{Ymeb}NJCwB)l_KU7}Pu;tdTgTRlv;eR&0v*I);pHKex047CZZYAuym6{(rnd2WyS)JRZ`v{91$v+0lA zR8vzS)e9+G4%~S$@C&>`H62#t+ghv@Z|!>a`vn zz4q~G<)&$Pq>S)`XfSN2M3s}$u|Hoxiz_r)wp3f!PG>n>zUqyb!2eTyAP{RO zbqE4gH1U9+#Z&h8x17dz+EH|Nb_PER7}nIwgbq1roETvX1V{ZwxHiMHi{gKUMnzQ^ zcP25`9u)obxip@C>|X7>+MmyOthIS$hbca;K5~0&9#eg3tbO-rD8NjVJtJW>2{!8h z_XUm&M$t?+PKUg~^_t|>b20rEiR_hINrOi6wKX;>8>W}W^3&)4-W@5q7vz`~> zYGJPu(6)%S49@qz&9=~)+yFq&^fif)v(s0xMXhI`c=L5aLVo+D3OHW(O8d3&&!2Y$ zPZFpOpsZ1IaB^>XT=;Oe1$Mzx6S)^|&|*_xF5;i8 z9Bn^e-{5&X!g8kNT4Rr;fx^ErX@Ed&1Id>@zpsL6K>_2?SvoZppbTa&O^eNmPGMoV3ixAcC?WKv9fT#RvMvKk4RgL5MrWH++g zPM_k3NUw|xDt-f#_O=^w$mFuPE8@H z5L^oI(AaO#a?Kx}29s5lz3o-l>yNSr&&mQ5IFd(|{|jAB!2MA&4Sry|smv8>dVJmrUd7);4? zp2%aXxBqL<)_gg}9TlpDgPW9{mZXW5$uSdyv9^_1m+w4Rm`>Dg(fRO?U< zYW{`iO!FgCCWazkRAgrV*ZS8{LV1@omIYy6Lns-2!#>CnfKsXWMg2La0d0U=AYQ8y z>kxF=j_0;(PWn8}!(1(SJ5Rk@U8@=jIS~1PWo!%h`T!V35OpM0LWX}j^)ZT9TWX>C z7&?%thCuAw03%D@)CHpTyL6(>BTUquke^~`e>;S=i4-5r3eX1+@Rym#Y)}mX1<*w3 zq)oWl2FEf(oE3;3*57~s_3PKkCiwOJRcqZMTe+G@!63x|+1t-LIQ;pg6F<&!>>_Ps z%?fB&X7!wS@P1TE{tvvGxDKIq%2sl>*^PCAH==ycU(p5<3aZ?TR&S=)l|nA1rlld- zt3CzY$LRn8gW13{;`>xzg7SRN$X}|ZnVQN1{Y*XO+>JO^unglHT5GoAlAkBD5}<5a zL=y0m>cW6#Y<33n5R$=AL2z0L;qUW7t{@ofr}P6(%LigP`$Q90OS=HeBsPFr{>i;!pGi z%g}qfEDZRmfeD>*HUInc=+`LG zMpBDya0*5HkuybLvN+V3wp&@+GjgXzD`{=?S&L>YLH7ZQdzJ02xy~nd#>M1l?D`>i zk5Vl}&o3h91+U9i&IqA|TQ=P4tcI58j0Tl_Ew}Z_Z}L=!ruLU_+`2`b&JA%)Ma1uwRBl%`Z%K7RXr7%2QU~>B}w*YfscY4yffpRx;BobDw z#L7GJ!0xSQAdLtL`itNCG0rIKP=NWge6rihJ6A@pwTq#5F|iPQC_0mnB|R-f*6#yq zHTBvKsE{GiOMi47(AN246GcBpBOU5iSgm#^s}&7l*4OYV$G)+ejHptaZ*)CVue)&V zmvQvyZTB(uB|RGWLoB}ge>PVK9IfHLue2wv9PcXeVuJ?FZuST5dHZw zP~U7=4_yx`XPl2+Y4WxHIFjfN{`Mg+0i?L<(9b=X)x@n+hj0o?LaG@0i+f`S-eos5 z>TJN$odbv%Y1)gSm*wA0Nm)jg!LY)JXTw}=uNFQ72Z^L8`mQEVoZc`0>strf=_*p$ zT6&E+P5$nU{IE}dtN1ahTtV83{bxaoF@tXPcx=r(4O*)W)yEbLQ}=y)v36KxZiiN% zuHapXq79j431Xs*m5^QOg{``}$K_^=WcL&TBYibDmV|g#Tj=USuDfjh;ON!d`1M57 zmm$3MDQYT!rPO&TsDxbpIrWd|2D?Hhk>0O2(*%-P6TMGu<7E@8oqs&_g@$qdw zm#E&yiVW)u7w6?F=D2{WQIkX{Lxd0BKRnM@N+SIBS|3iZrGIgdXoWMoi$rJsI!hcY z8jTdJ2SC`9_xYdhBq3DT=JV&z){NU*C@a+1cw@+|Wt(3qrc$0WT9#n^P$&|o*T-bH zip~v{W;+ig3cl@`0U@$QPew2@TPm6eX}3tz9hdT`>Sv|+wVqrv4ot)X$?=XTpcV!a zk&3xRj-rM*5n=IiGQ^~ao@P-oeNEv%2l z;e*GqM$L#_f9>=lHe<-c=-6@pUU{|;1{m{PJM#R=J;YbolGWqKIbh(ATGyPjZqZ#? z2UlN#aBTc8On3z;_!5$RHp|8{RnyLKt>Xd4P@2Y+Yb-1pilNN7Mj^@NFAMf+7Snql zg>W<1Qi&<-CdqlGSk4iAl};8U&{Mub`#9c!$$n{|(qD zsXsqqTABH^V&26(BB_2gg@6i=$#-}#hm3^ZT(vteMmdvgfUCa`Z4$XFL}U z;l$w|{Gm~Wc}kr4JLUDv5)Kx?d4h4jw`fJ@zC4Uxj}Noh1;ukI;{%0gSoatx2~osq zpay%T*MN)U&M(>N_frY(011jl@m}xd?9)^wI-;_EZX#^ zvkx6kgc>u1kWPz4BJimaV@2wf9Q;U8Ocmy%PP1{xhajtQZK2Pzi6+>jmXYOMf2V%w znZqYt<_B4dO(E@()CzywBEdY%MV(ii+^Y4ByQ%2*_2mDM7msm*vZjZ2M2P!gg7xJ= zVnX7yxRD+x4V%jJFFY|b8ls0my;t2$#09CGh7##GSgXE;3|`7hCmX3@d=i;!4>2=y$IvVAH}|gK7XfQI$1?>p_TOhx0ma2>2BOcMiOIf z9XU2FEGkt_!vCvlo;^xY4c}rn1a-ekF%cpFOaY@6mZRKiicz}a5j&ZSxOQaULrkRQ zX|q6Iht$Y^f_nu?%vfAcCJf@7Fnw7hicV8VU-`5ojZxSBhK;Ces*@A(3sD6xb4M^9EM_gZU6#Z1OG1K47;TnH$J+(>cH% z9fbi7ch~#Cc1G;J^P+SX3`*aSO@(?5w|lIDP>t(T>_cAfK&bNSN?P1&^4Bp#(~vL+ ztxx`-q*xjGhwHr>sKmtk_33|I)4_3f=r-mACYnw<)wq9-dhhK>&WsIT+pe#t)7(gf zHEKKVPC^;#_lEL^=kt8?04KtkV-rT2a!35-2OG22EgpyAXrH*)_>(X3XIJyA3Y}M!kE7w_99TlA-OR|HI)Y5M zCO@GD1}DEhkeX(%ga|v;aMP-#Z9}QdgM?Wj$lvgn6$V0xOgK5I)a~EHle+oSudAz&ee1IJXYd3<% z^Ic#lMo8Y}cU5)SfN6fd_WqyW`};#-lD~D+B#CwkySnM4S@rKJRZ6kQ6T})65pZxt zy)c{>p7kEy0N!k;Eo0L&vN;m`W?cV@3-~)~4rh_5+tER6pr!9j7WDuVFH+O0W;cx? zNxjkIA{3!1Jpj4TN*Y>RnJj|zK}Fx0w})9=9Gimr=YiTVO!R=U zf0TA=Nii?y)3h~v&!{qU+QV>@?li#J&N_@6D-J%dTC zh>=X0%n9Jcmyg=VJ{8L| zy9vma`BhLKYqbslP66*8jXCHEm4#KKATzLImCBW(9I3|q?V8ZUIfxVwD(yN3K@ZG(BsDJ4kF?(I?w>_*LN zfB|r$7Rsm*H&DQ^W7J=emoIq*pJ=&_tDu?84A4TC1vc?~!A%@@ojNMoPqrX#Qwx z(@z~MA9p2{#78$?xPjh%eIq6JfXXh1km32<9u0UyS39dwbm(k_^Z+Se8ts~@uOcBf zO@wNjH;IW?hV%i+ksrqzt*j~X@DcaOltX>xwC(2BK-bZHzG}}jHB#GM?YrRZWba5>zPJ!My2|=p4aAsRaNpXihqGe+X54`)VPCvMaSI)L=1l%r?kS$j{ z8qLx${b<(TrYO*MoTdTT!s%m{Abj(0Dm2Z)8$%vSH)xx~p=U?RBNri(c{|C5qhYRX zWLHd+mJ7$}D{kkFi9d?w8cN9n(4>;T=!Sk$pFW--dZPr_Hx3#b<>X+zh8fRmBn&|^Fvb>bhQIjPAti1{!y-Z3K_OWF`ZKy zvWeeU0ehnO>@D(t^lJzL=Ayj8T{%ygz{AjQEntp2QNbao^gn^*5(jx6I0Y)_Kb$VY z3nEfdcgxO6o`3!Dg#LckIA^Lu-G(WMdVQ9F?+-TVDfGScJ&OGsI064bG#@|EBhX|#if>K4|X>%(ji!|e(zCa>2QfK(}9|thx~I5sx<#myLgMo$44NX0gdc0 zX;y!;o{Yj5Z~5!Ep?)<=aL?kgAfNTA`cyd>HGoxs6#SloQ@08zN*Csw_zFGWg8q1o z8WCOvxY ze6a4k@Wf=^)vT)OCIGE&fEpnwVi1x{9(N*) zEN^}}TQT2?v@z7dVLy3m*o`X2B0%j!Pe%6D@Ct+vW*jP80JOf9i4&pA`#|Cq3ejQx zB2Lg0R4jLJB5G{9$=@Zo8CGm`?mXvf%Rj}t`stRcC%_qi#k-4MDzM$=0&F__2l2Fh zr+pk{YinzB^PCY0VPRoSC?z06>ceKFch_@E zPSB}UFXBA@f&wp=$A!=Cz6rWF8>xo=k}Q;|W(^Iy$bIF}{BtJgFYK38lbxRV#isuS zH6#sE^vq2BTT!Oi`KXH35w5!1Ql4ik{%D^aN^q318>Yi*-q8T?zKdd1{QNZlk1niR zi>jx~+`}|XOz6}rUsG=ahI&O4^y8p=CfnKrKnw(C6s09t^pt&BlGwHa_B|7Fo0{nc zKs>>w2q(7W?XAUrt2$2{n6?o?EcE1w0a2}TUAuSpxF*X|BQUdxQ=%w=g+#iw|wnyC?;i+$T8TN7Ta*#6IuY|bl6Or z&v`iy4sa2X@3+9QjthBMWL4pQ&G=|y0 zPuM1NtkiAa9gApWE>;6MVFfojT?Ty3(JV%$l&qRa{i=cKy4R-xvsMa(yP9O~nm^`ZD0v=z zyh(z^TDF6INKE?kMuQ$a(f1aD799$j$Z+y0n<4Kxra|* z;Z3p7%Gcs+kidSP?8&1Jlz3KUd%w0eenCo2J`#;}D$+F-d}g1$4IX;E&L5zqFk(L~ z>6arL^+>R+c5flOs6=!@DUS1%kRLfE8Cj$H9kuQL&rfhmm!XEw(U_j(?p^@L@DSjn zh2}+d0LW^WxTxf)2FJuSuM!~;j=v@Db*skU1z6g_^e%-nV=E-2+~t?jZ}i?Dc6#y88Ld69@6s1kXXD1x`M+Ymp&3q1zhD~C^~b7TVii(FSB zIZmluveOod>6mj@h;vrLjnp$SS#%M94KV>nU0O-^$aXJVKLGSf-I&+fmwhgin0A%; zI!^;mymJUrqnh6kxtXwQwHG) zbOIwa7W*)PDK#;?=c9vWgd<3%xcH5C1Si9v)?X%9gEX!29@73CwdCwGkfAgIhd$7R zdS{sMjJH)D{L9ZWI}|$LGde=op=gAn-lbJ92e8nt(@;%4;~5 z!|cd@v>dDCQ7<*++nduf-2|rO&N)>uN%zzwMevrm_vNT91cTwZOX&?n>c0G)UsAWq zDd6>pqb_7F9p)4)FsO}C23`$Y#)4{tMXC1jVPzcYh{ZX%Q8V#6vX(ulKSGV-oha(= zIXwXP{%c{n(w9GlFk()953t{Sjo{Ds?`*3B*+wW*^Y1jEg)&eJeYq&u(FS2`q52O6 zd>)V+8@m)oy(TvaGY`I?oTt_+023h6-7pe;lB)(SiWCJTYrtubw zA*T@Js3Z1IP8gEVTdI=~L41YxWj@jYX0&cB)xvxm!BLn@WpDA_wwJ4pdx7^fEe%Z; zgi$Pvi4r@D8Hxcrz`!7?t1DmYemK%sS9HE0BqW4FDk_nf+OAap3u&z`+=Q#YiRoGx zhpt_JOI0Y1QT!IQomJop-}jHiq?m%c0$6YgJl)7KSUb(n>Frd!F5FOtF^Qp7wm*C> z-I*yn*9Ra@6eK_HXaP;syS^A;*pAf&|5JSYVoP{U-WJc7y+RMFA$Z&qk2tY=<$4Ow zm^t3()^|fyPQ^$w2G_Dr1eROa#;I8X_lOkCDAA7_olWOYqzP6#!SI zR!{kKi(vfC4En*mQjkUVkF}nni)OiT^Jc~hgt^3+X*9*A)VOT9L!EjJNU$*gSn?`) zV_r^v^<7|U=iC02Vs+q-gYZm0IbhlAtO1V6K1i`gnK@&?&+g^pgW57A)DaiB=9r1% z-(O-G-K&AYUqBc%v?-jwr{z4K3dB*S3tG%#*S-*Nrk)cP2j!Ez4&}F1%Q8fd^dckDZFAkEP(LtLp)%j!Soy064Mz8HPpHf@Uv*0+hUt z?;G-5M8$ksYz|5lX=@@OaiR7(-0HJ`uHGgP+!>X!Aa}YH$mM=e!A=b3u2&)=-amuk zH?hUOwqrvjDfedew#ui&X_*dW*$rC7g3ATKF+FS->4^yKcb@oy3(qkr+tlt4*em{M zUU%YP-HNSeaui8NJ^Hd1wf253!TqS|6?P;XmL@A6(+>#0s{orDG|kwtpBO}RI~zE^ zn<}RfnZ-vyA%Sst6E^FeRM~{60aZ1{0mv~Jd`O-L)3+vmsWjbXK3;^v|C&`(v|_%N zrt=OcWJ#-gK_&vySHjtIkjnjTi~YS) zCYH6y*?Px&vC`SPZI4AAtSe#y4S&Sx1Ks>huvr9Y|L4#C5r4te**UVh_gev8b&ySl z{d!bUwRVrN!uhog*dV7(-eOOK`y|JGU$8!nx|Ujr8Dof2;>`@g0pa*Aru_16^TU{0 zq3iCXIcSFsVU*nCqm!-*;i>({%LTvt|Eqr`cECs!jnFAL_91v`40D};pv1J7W?mmE zcA(g3oKJ)8`k)qoX4vB00agKSA|fnIzjhf~IoQhiOuACYB?&d|+5^c4I6E+rPCx(l z0`|j|bMr)@jPQB_zKq9@9|N@t(~`!pbG!ihSOsAT{14s*GG5+;&IV#Ph)0kNry)N) z094zmE2VH+P1rn#+hOHyP%_9mq0}rD;0NnvVaeWR!ZDpTaKbu{18}OrY@f@wss)bG zLoc9sn%s=e|9wy4cAV+z?)JHS>-L0D+OZ?ynF`0{(te=lHNJXF?w?!i$po>=t=LOY zV^Y439AYOWt;a+`X*+t8LA&Ntpz+a>&@H&j@H)_jg$0m^HR*Nqp2uu!v|eo}h-)fs z|LUlCrKiTK0&f`0z-Bcz;$9ETXY*Z-QVWR1U-1NrQqvj!&dZ;$dxUTB+iQbZ^N?R@ zHURs?MN=S?D^Xg7LcTQS;>&Lsc2}J_G@a?oKaNc!T9v} zeaWX-1HWBJjJ-iBK}&y{itO?1JTy2&)3|l(8U^nA_5n<0;SJrPfj(12VcYG#4}NcA zaIxdwodSi1a=Lb@Wv?^T#HLY2fWR!yfG7kDoH-xNbtY?5DSThArYq7YYpp;yNk}vU zxBlb_mVMxcfr;Wa`ngF`XB76Uz)(&n3ArO(Wg)-F*x8lKU`m7JXkPXpdKNmT)C7QD z0Mi$74qY|)5XZp~*Mcu@1%V;A!5~7AF$9bK+Xo^vE8QDtqGZ_U=;$aYM8>=hUq$F{ zL9eQW+x+TCMYAiLNQ(-k^W{`MaY$%ra#GT?ocG4okG5w4!Pi5(LrKvt%M7<@2gz4e zYPf~Sxp19|v66xF@=4#JsA()%RBzglzeO%SKGSyS)|1h>*qnjNtc=5g z+)f?z!+I|0=5U`YBzbNtp9ARLvC;}KLY;$m{nSWsn*mLbnGMDh+7}0Kr)@Q;-4VbJ z=VE3K=`+zTgkF^SZEH^DJBI|fK4rdv9LFl>Iye$JErwX_P}9<;1eou4tQyaQQn+cU zx+PQM`sn<8<45{_^t%n75V1l?ATZ1Y9sAMI;eK{4>F9p=QW12j0o6bSz&y3L_SWN= zCA$3)*WU#(Y+4?af`KuYON={(`s_`JN}C9qQZC+U9?F9{K3mis;sJ}~PzTQpPn!fr z?y_M47r=?x12dj|ej`<79fvzz;IOK->;$*8w-B2qLmOKBOb$}K>#ZPs0V=6n3)=kf zd1fyO?pw_I@3#s7vQU8-ME9q1Y``L3et&B!)cVxUA$QU zu`<-!`N~aL-Igj`&b2z93mih=F$zfsBki;je0?eR{k8_G;((Ny_MB za=Wk+S;>RxP+9#OvHDL!`o$*LAS)IiYi+*AX~$wK$;*OS2AM7pLt?l8mhM$Aq!8qk zg=gwxgD&=xb3#G|3swZXSTQ>wUu!n5AWqf{qOy9b!5|@1XQvzX(Fk0T)A|u~Y7cj( z06@nxitRorXByvbm9PyN7$nfCRPh-lN!z>sO4+)R zT2Rg~1enlwunU*c-c7}|vjPEp>2Blzq~RmCvFfnK@1;*8=}cXAf<=4kQ}!zC^UFM( zQW6gZ`;=bRZnp81K6x=K7bt&6QiEH9-Z7ueVdXg{irr$!*ukX5hpRDP*8QyM7njUS z`Thw#4bMyye5jt}j?xxJ+DF<8r%Ra*7rc7Ab%yK$R@7Pg!$2Zt<)BoyUeU-z+&D`1 z3dxB>9x<`1FBnZqSFw7uKmFQMrI_RaC5vUxUxGFLLn&JkQdM1c551y$PIJ5Nrb6~zug4JHbNLUW z1sx~?(MS;Iybu%=9FmY7TF?ZAf0;nzHLg+jVGD2CdHtc_;hFXIb!Zv7@^V;PZF_{@ zOhWheti0t5)~flVIz(3q>Dg`<5=KzmPkg^AjjosVVga;(~c>kNy5MP*QDi<_*sVr5$c9`4JEgUI>5dyt~c?Qq~_?` z2kPwy+^eK+0-8CEnDJ-uyL$_Hu&u}R-jCGuZjTKmCd=zeyCaW3Qi`my_nO$|b2g6r zOM);|BfCbOO^w~y@l?qBre;x0BOK-?3dGd>sVgDTf?K$1u{rZmO2u6v(YizFB+b7# z>gyqgL%ac}s6?UJJagEq-W~f)yK!TJp)K@GJp$aL zZwfLp#Lk-8KOYP_ZZ0|2$zfx5uBUO@)ObiCIn7!!=FFQA%e4t-f`5RSkvQh!Q0X29 zzeWq~Tb5Q*q8O{WSM02#?U8;D@dowS9`~foLkb7@#Z!&@F0V%TXX&`A#NAV=&|!&H zG}E)Nj6voGLIa(DiCJYlLDS$tXCm%7YRRH0=bI|dn1#aZ6%XkoK5~Jh3Bb^oo%LVDjU{b&)6%q-)KBs zXtMay+}zyG=tg|6e^P3Eytw@wN&X?qz%9n-#{M~s#!u0=nX`orM=>YW^v-zq@n-+U z4VVVlY!Ncm^cJ$_U1uZj^@~|8i$$47DzyGIDyMZ?XL@%}#VeTne)DI7)4Q^Ag34-fHL3-OKF1?0Q*(CeLmMx(YjfB;d?&A`L z)tcDo2`y#iKFn%%Wu@9a+zcqvx=u?S41R6(c5CO0M5(mRe$1l7mwBloo0_Zk$m6v@ z>K85htm#?u+lC2MuAuPL`>rpPr@tFsBPwuK`;xbuMN9~@rddO;A-r`yG z5LZk{HCibYp!(;ALeWDj^6}<+_vI<>r^m!lQp|Pgg}ov>{r)~}tJ6-f4;xWa0PVx| z%y(&5scSpP=={%>zojAV>aj;XO)yReadxI@++2low|&oYfx>MAw5WoUduunKW6KrH z%w7u7KLI}lJb>P*@*&He?!1JSbl$yAS10uVq9ifPp%RlXI7&nP?E(9HMKUHfbyfQt z=Ivjo#+^L&_xWvlV$376siZdBEYO(>9+w!3UmSGO7EN7<>RB{OXSW*5(Q2GV$Jj>r z&Jxl~Fmz123y5jy%_mPaa~~eP<@%mCd>iwCW_BYz%xm7Em2l31@n)CZ^?!c3mwiX~ z`;5MVvi#bb&feq2Bl>S7g_SezSkZ#^&_xP9x11-O>%c-#l)z-mGE7DO;+7EnckkBflLs`k~iS5*UuQWM=zrQ z5gMevl)A7Nnd&WC%cT=WPxJjYx@=itJC#D}EThVes053AM$XC^P`;PlXJl;O7NdFm zYd6w5X(F9!vxp7q?pM~Yi3iwUxbA$07(3J6=Vj(<>8EFuP)25~_}cZ~4%Dh=p)oqp z-oqURJ0JEX#$q5(c&jysVk~@y20I?zx;Sw|l7T0Yb zQ_41V;rni}^YQNPm8a>fwRD^aNj~qGdIN`!x8(gh6*ka@lm&kF&W}7uB6ILWn{~Xo z!?<^W*}{8HG!TQGYK?t$EdpxOCKs8K_;l3%%Y*f1x{z4J&>-NCyZnN7J|-<(Jh3?l znB`tPR-z-6Lcy6Zai;r{m$dsEly}X3@r9lxMJFexji19jex6~IgUsR5yJ~VEooQ@A zF>(W4IzfoaolVguR_(Y9?IsPtDnBtGc+HXthyXhgD>#l$bNQeX|Qm$Gf<}1 zn*5QV_LFWpiCA8zqVX?}uH8vVy{fZyIh+s9B1X=wv3LOif#a=8{^*22^%sfS9nx5h;Q2;Hk6Zrc|5V6>nJn20Pp@D6@xn^9MdzpEb4jdGl)OsLI1* zX+t$GEQ6(uaqZS8_KC$kNtmWqtGUx!+)kDpoj$r|7yj9#AjU)6Dc9Z%1WHU)sLoFyqBNQ_NX)1wI>hV`FuSxvh51Y)~^%GA%z zE269(5LENIF-o|y=C!Qy8beb@di-{Op%`$Pb0l5uj0)~yInTPu7-QuyQ^5io+nv+` zZc-Qr=Y(c*j6an`cUe?nLw7*5PpyVmx_!^Wf~iKLnakdl*T(>o!YfDy;zSD@AM;s$ zDHM%~B#~fn@``NRJgi7PduP*x| zcMgXGDHXo-=SxT?Pl5lM*Kti}qnj-On?7Std&x{TZyj#}A~DV1xL}FXqkScj%<_c> zmr(}S{jJwG)U=K*Nm6y6j&?6hy-`3S|G`74Q=7*5L(b>PWy%S@prCR(#Oxp_rmho8 z2l~Y+1{GJNk+A}Q+*BuSfZ{5$JYK#A-kR{?#4=f&$_;9ZTcw?QwTdmEMU46k&&H2Y(AN z{8}6TGmry;pjOg|z2))?CfJ_qe||KJPOa5kFe*3lM|{#b>u*g}T1K9H$%{?yTM)^Y z6-LE)-G-LtW<>@9$F`Qp!!y~8#~6dP2jMT+*x3#7)j%MX|B2l3C%_V`tNo1X%IfMv zm`K-!o^cq7Wk?cCf3ZFAy4?R9>siYNeI4Egr z?$hjcN=r+ZiIAJPzX|Wm3n&xuPiQ)O`%T)qeiNl4PK@c?fmI{040`>0^ye|eie-KE z9{B%0d?BREw<38MpUoxz^^`XBZ8e{?G;-vD1Z|NVQzw9cY!X#@c`|XYYTCqzvTPnz z9DaIu<17_O4KCR;iiFvip!hI*XI*~jvg&F5u#Gk2s4ZWv2F#&>qJ~l_@3{#cHZ1EX zJ2Gd1g)e;U#R}2DSTN3fLo2A`6eT4;q&f61=XC419JBxO>v^AE)-iE-UXS=g8$^osiX+NEk>6FJ}_F;mjLy%jPi*BtJw~ zZHzu1E>?X){fTWuAm$8ec4x-#uv=cd?7V8LPUuW}a=3J~7#Dx*iqw)wQ-M-%0zDFb zQu01#wAq+$8Z0(cv&4WBxIJ#))y<91YR2+6m5u$xXuvo*SXpyGA)J;bQvD8c{Xxun zEg#KrveP3x75||=9%r5WBEgxEwLH30y%S Date: Mon, 7 Sep 2020 00:42:51 +0200 Subject: [PATCH 10/10] Update components_of_a_grid.en.md --- .../content/grid/grid_4/components_of_a_grid.en.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md b/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md index f3efa0d98a3b..09bd43088229 100644 --- a/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md +++ b/docs_source_files/content/grid/grid_4/components_of_a_grid.en.md @@ -3,8 +3,6 @@ title: "Components" weight: 1 --- -![Grid](/images/grid4.png) - ## Router * Routes request each request to the corresponding handler.