From f5682ab5c9d14241b90cf9ab6b3e2846c60703e1 Mon Sep 17 00:00:00 2001
From: pixelead0 Comunidad nacional de Python Conferencia anual de Python Google Developer Groups Sede principal de nuestros meetups Sede alternativa para eventos especiales Coordinación general Gestión de eventos y estrategia Redes sociales y marketing Contenido y promoción Desarrollo web y herramientas Mantenimiento y mejoras Conectamos desarrolladores, compartimos conocimiento y construimos el futuro con Python. de actividad realizadas en la comunidad Charlas técnicas, networking y aprendizaje colaborativo Comparte tu conocimiento con la comunidad. Charlas técnicas, casos de uso, mejores prácticas y más. Ayuda a organizar eventos, gestionar redes sociales, o contribuir con el desarrollo del sitio web. Participa en nuestros meetups, aprende de expertos y conecta con otros desarrolladores Python. Total Realizadas Únicos Diferentes de Actividad Realizadas Únicos Principal de Actividad Realizadas Únicos Principal de Actividad Realizadas Únicos Diferentes de Actividad SRE Engineer SRE Engineer en Wizeline con experiencia en servicios cloud de AWS y desarrollo Python. ¿Qué tan difícil puede ser traducir un texto? ¿Crear una transcripción a partir de un fragmento de sonido? ¿Identificar los objetos en una imagen? ¿Sintetizar voz? Con los servicios administrados de Inteligencia Artificial de AWS, Python y Boto3, ¡es sencillo! En esta charla que nos compartirá David Sol veremos el código real, para darnos cuenta de lo fácil que es. Servicios cloud SDK de AWS Servicios de IA Aprendizaje automático AWS proporciona servicios de IA accesibles que permiten integrar inteligencia artificial en aplicaciones Python de manera sencilla. Python Developer Desarrollador Python con experiencia en técnicas avanzadas de programación y metaprogramación. Explora las técnicas avanzadas de metaprogramación en Python para crear código más dinámico y flexible. Metaprogramación Decoradores Python avanzado La metaprogramación permite crear código más elegante y reutilizable en Python.
*Última actualización: Generado automáticamente*
Python Developer Desarrollador Python con experiencia en análisis de datos y desarrollo web. Descubre cómo aprovechar al máximo el potente hardware de tu laptop para realizar análisis de datos avanzados de forma eficiente, todo desde la comodidad de un Jupyter Notebook. Pero eso no es todo: aprenderás cómo convertir tu análisis en un servicio web interactivo en cuestión de minutos. No es magia, es Python. ¡Únete y redefine lo que creías posible en análisis de datos local! Notebooks interactivos Desarrollo web Análisis de datos Desarrollo local Python permite transformar análisis de datos locales en servicios web interactivos de manera rápida y eficiente.
*Última actualización: Generado automáticamente*
DevOps Engineer Especialista en GitOps y Kubernetes con experiencia en despliegue de aplicaciones cloud native. En esta charla se mostrará los conceptos de GitOps y Cloud Native que nos permitirán conocer las estrategias de despliegue en Kubernetes. Metodología de despliegue Orquestación de contenedores Aplicaciones nativas en la nube GitOps proporciona una metodología robusta para el despliegue y gestión de aplicaciones en Kubernetes. Python Developer Desarrollador Python con experiencia en compiladores y construcción de lenguajes de programación. Explora la construcción de un lenguaje con Python, desde los pilares teóricos hasta un sorprendente guiño a la sintaxis financiera. Compiladores Diseño de lenguajes Análisis sintáctico Construir un lenguaje de programación es una excelente manera de entender los fundamentos de la computación.
*Última actualización: Generado automáticamente*
SRE Engineer SRE Engineer en Wizeline con experiencia en gestión de ambientes y desarrollo Python. En esta charla, exploraremos diferentes herramientas y enfoques para crear y gestionar ambientes virtuales en Python. Discutiremos sobre las ventajas de utilizar herramientas como venv, pyenv, conda y poetry para la creación y gestión de ambientes virtuales. ¡Únete a esta charla para descubrir las mejores prácticas y optimizar tus proyectos Python con ambientes virtuales eficientes y flexibles! Ambientes virtuales Gestión de versiones Gestión de paquetes Gestión de dependencias Los ambientes virtuales son fundamentales para el desarrollo Python profesional y la gestión de dependencias.
*Última actualización: Generado automáticamente*
Python Developer Desarrollador Python con experiencia en interfaces gráficas y desarrollo de aplicaciones de escritorio. Descubre cómo convertir ideas en interfaces visuales con Python, explorando Kivy, Flet y QT. Framework GUI Framework UI Framework GUI Interfaces gráficas Python ofrece múltiples opciones para crear interfaces gráficas modernas y atractivas.
*Última actualización: Generado automáticamente*
Python Developer Desarrollador Python con experiencia en desarrollo de APIs y frameworks web. La charla se enfocará en explorar los principios fundamentales y las mejores prácticas para el desarrollo de APIs REST utilizando Flask, un framework web ligero y versátil en Python. Framework web API REST Desarrollo web Flask proporciona una base sólida y elegante para desarrollar APIs REST eficientes.
*Última actualización: Generado automáticamente*
SRE Engineer SRE Engineer en Wizeline con experiencia en contenedores y desarrollo Python. Seguimos revisando las alternativas que tenemos para el desarrollo en Python. La última vez hablamos de Ambientes Virtuales, y ahora lo haremos utilizando contenedores. Contenedores Tecnología de contenedores Desarrollo y operaciones Los contenedores ofrecen una alternativa moderna y eficiente a los ambientes virtuales tradicionales.
*Última actualización: Generado automáticamente*
Python Developer Desarrollador Python con experiencia en validación de datos y mejores prácticas de desarrollo. Pydantic se ha vuelto uno de los módulos más populares de Python, permitiéndonos validar datos de una forma poderosa, simple, rápida y extensible. Funciona con nuestros Linters e IDEs utilizando solo Python. Validación de datos Anotaciones de tipo Validación de datos Pydantic es una herramienta esencial para la validación de datos en aplicaciones Python modernas.
*Última actualización: Generado automáticamente*
Data Scientist Especialista en análisis de datos y machine learning con experiencia en implementación de algoritmos estadísticos. Adéntrate en el mundo de la regresión lineal con un enfoque práctico en Python. Desde los principios matemáticos hasta la implementación con librerías de Python, esta charla te guiará por cada paso necesario para utilizar regresión lineal en la predicción de datos. Ideal para quienes desean combinar teoría y práctica en el análisis de datos. Regresión lineal Matemáticas Estadística Computación numérica La regresión lineal es la base fundamental para entender algoritmos de machine learning más complejos.
*Última actualización: Generado automáticamente*
Python Core Developer Desarrollador del core de Python con experiencia en optimización y concurrencia. La charla se enfocará en explorar el Global Interpreter Lock (GIL) en Python impide la ejecución simultánea de múltiples hilos, limitando el rendimiento en sistemas multicore. Exploraremos su funcionamiento actual, los problemas que causa y las soluciones futuras propuestas por Python. ¡Nuestra primer charla en Inglés! Global Interpreter Lock Concurrencia Rendimiento La eliminación del GIL representa un cambio fundamental en el futuro de Python para aplicaciones concurrentes. Data Engineer Especialista en ingeniería de datos y procesamiento ETL con Python. Ideal para profesionales y aficionados que buscan profundizar en técnicas avanzadas, herramientas y mejores prácticas en el manejo y análisis de datos con Python. Esta charla posee un repositorio abierto con un ejemplo base que va dirigido a todo público. Extract, Transform, Load Procesamiento de datos Datos masivos Los esquemas ETL son fundamentales para el procesamiento y análisis de datos a gran escala.
*Última actualización: Generado automáticamente*
Python Developer Desarrollador Python con experiencia en tipado estático y mejores prácticas de desarrollo. Descubre cómo los Protocolos en Python pueden transformar tu código, haciéndolo más flexible y robusto. Explora desde conceptos básicos hasta aplicaciones avanzadas en esta plática única. Tipado estático Anotaciones de tipo Tipado estático Los Protocolos en Python ofrecen una forma poderosa de implementar tipado estático avanzado. Open Source Contributor Contribuidor activo al ecosistema de Ruby con más de 10 años de experiencia en open source. En una era donde todo mundo buscamos la satisfacción y los resultados inmediatos, compartiré mi camino de 10 años en el ecosistema de Ruby en el que me he convertido de usuario del lenguaje a contribuidor frecuente en una empresa con más de 1,000 millones de descargas de bibliotecas de Ruby. Los días son largos, pero los años son cortos y, si 10 años no son suficientes para convertirte en contribuidor de Open Source, siempre puedes tomar un año más y repetir el proceso. Software libre Lenguaje de programación Comunidad Contribuir al open source es un viaje de largo plazo que requiere paciencia y dedicación.
*Última actualización: Generado automáticamente*
MLOps Engineer Diego Barriga, Ingeniero en computación por la UNAM, trabajo con NLP y lenguas indígenas mexicanas. Es parte de Laboratorio de Investigación y Desarrollo de Software Libre, Comunidad Elotl y actualmente desempeña un puesto como MLOps en Mercado Libre. Promotor de la cultura libre, la privacidad, neovim y de andar en bicicleta sin frenos :) ¿Te has preguntado que estudia la fonética? ¿Que significan los simbolitos del International Phonetic Alphabet (IPA)? Y más importante; ¿Cómo manipular estos tipos de datos para crear aplicaciones con python? En esta charla desarrollaremos aplicaciones simples usando datasets con texto en representación fonética y aplicando conceptos sobre fonética en un nivel introductorio. Ahora si que, pasa la voz 🗣️. Objetivo: Los asistentes entenderán los principios básicos de fonología y que es un alfabeto fonético, Obtención y manipulación de datasets disponibles en GitHub https://github.com/open-dict-data/ipa-dict, Aplicar estos datos para resolver tareas específicas. Procesamiento de lenguaje Alfabeto fonético Fonética La fonética y el procesamiento de lenguaje natural abren nuevas posibilidades para aplicaciones Python. SRE Engineer David Sol también estudió en la UNAM, así como sus padres, tíos, hermano, primos, hijos e incluso su conejo (historia real). Le gustan los juegos de Rol de tablero, las películas, los comics y los libros. Actualmente labora como SRE en Wizeline, y cree que el cómputo de nube es genial, así como Python. Python nos ayuda a hacer excelentes aplicaciones que se ejecutan en la consola. Y además estas pueden ser atractivas visualmente, y tener interfaces de usuario de primer nivel. Vamos a hablar de dos librerías que te ayudan a ello, Rich y Textual. https://github.com/Textualize/rich https://textual.textualize.io Librería de consola Framework TUI Aplicaciones de consola Rich y Textual permiten crear aplicaciones de consola modernas y atractivas con Python.
*Última actualización: Generado automáticamente*
Services Content Architect Alex Callejas es Services Content Architect de Red Hat, con base en la Ciudad de México y colaborador de diferentes comunidades OpenSource en Latinoamérica (como SysArmyMx o Fedora México). Con más de 20 años de experiencia como Sysadmin, tiene gran experiencia en hardening de infraestructura y automatización. Entusiasta del código abierto, apoya a la comunidad compartiendo sus conocimientos en diferentes eventos de acceso público y universidades. Autor del libro Fedora Linux Administration de la editorial Packt. Alex Callejas es Services Content Architect de Red Hat, con base en la Ciudad de México y colaborador de diferentes comunidades OpenSource en Latinoamérica (como SysArmyMx o Fedora México). Con más de 20 años de experiencia como Sysadmin, tiene gran experiencia en hardening de infraestructura y automatización. Entusiasta del código abierto, apoya a la comunidad compartiendo sus conocimientos en diferentes eventos de acceso público y universidades. Autor del libro Fedora Linux Administration de la editorial Packt (https://packt.link/Alex). Geek by nature, Linux by choice, Fedora of course. Software libre Empresa de software Sistema operativo Distribución Linux Contribuir al open source es una excelente manera de crecer profesionalmente y dar de vuelta a la comunidad.
*Última actualización: Generado automáticamente*
Python Developer Desarrollador Python con experiencia en buenas prácticas y código limpio. Descubre cómo escribir código Python más limpio y eficiente evitando los anti-patrones más comunes. Mejora tus habilidades y aprende a hacerlo de forma 'pythonic'. Lenguaje principal Buenas prácticas Calidad de código Evitar anti-patrones es fundamental para escribir código Python mantenible y eficiente. AI Researcher Investigador en inteligencia artificial con experiencia en modelos de lenguaje y aplicaciones de IA. ChatGPT es una herramienta poderosa diseñada para mejorar la interacción humano-máquina en tareas cotidianas, creativas y técnicas, gracias a su capacidad para comprender y generar lenguaje natural. La combinación de la arquitectura Transformer, el preentrenamiento masivo y el ajuste fino lo convierte en una opción versátil y accesible para múltiples usos. Además, su continua evolución a través del feedback y la investigación lo posiciona como una de las IA más avanzadas en la actualidad. La pregunta más importante es por qué, en esta charla gracias a Python entenderemos más sobre ChatGPT. Modelo de lenguaje Arquitectura neural Procesamiento de lenguaje Comprender el funcionamiento interno de ChatGPT es clave para aprovechar su potencial en aplicaciones Python.
*Última actualización: Generado automáticamente*
Desarrollador LibreOffice Especialista en desarrollo de extensiones para LibreOffice y automatización de oficina. Aprende a potenciar LibreOffice creando extensiones personalizadas con Python. Descubre las herramientas y técnicas para desarrollar complementos que automaticen tareas y añadan nuevas funcionalidades. Suite de oficina Lenguaje de scripting Automatización Python permite extender LibreOffice de manera poderosa y flexible para automatizar tareas complejas. Security Engineer Especialista en seguridad informática y cumplimiento normativo con experiencia en PCI DSS y aplicaciones Python. Platicaremos de alinear las aplicaciones Python con los requisitos de PCI, garantizando controles de seguridad y la preparación para el cumplimiento de la normativa en el manejo de datos. Platicaremos de prácticas de codificación segura, metodologías de cifrado, controles de acceso y otros controles. Tópicos: Introducción básica a PCI, Codificación segura en Python, Cifrado de datos en tránsito y en reposo, incluyendo alternativas de tokenización de datos, Docker images como método para usar código inmutable, Controles de acceso orientados a AWS, Bitácoras seguras de cambios y de información de ejecución. Estándar de seguridad Seguridad informática Contenedores Cloud security La seguridad y el cumplimiento normativo son fundamentales en aplicaciones Python que manejan datos sensibles.
*Última actualización: Generado automáticamente*
Ingeniero en Computación Ingeniero en Computación y apasionado por el desarrollo de tecnología. Profesionalmente se dedica a la ingeniería de software y dirección de equipos. Disfruta explorar temas técnicos y participar en comunidades alrededor de la tecnología. El Advent of Code es un reto de programación con desafíos diarios durante diciembre, diseñado para ejercitar la capacidad de resolución de problemas y el pensamiento algorítmico. En esta charla, compartiré mi experiencia participando en la edición 2024, usando Python para resolver los desafíos. Discutiré las lecciones que me dejó esta experiencia y reflexionaré sobre cómo este reto no solo me permitió profundizar en conocimientos técnicos, sino que también se convirtió en un valioso ejercicio de constancia y adaptación, aspectos fundamentales para cualquier desarrollador. Lenguaje principal Algoritmos Resolución de problemas El Advent of Code es una excelente manera de mejorar habilidades de programación y resolución de problemas. Líder Técnico Juan Guillermo fundó GDG Cali y co-organiza varios eventos globales y locales con Google Developer Groups. Ha estado involucrado en tecnología y programación de software durante los últimos 20 años. Actualmente, es líder técnico en WordBox. Juan es GDE (Google Developer Expert) en Firebase, IA/ML, GCP y Kotlin. Tiene una licenciatura en Ingeniería de Sistemas y una maestría en Ingeniería de Software de la Universidad San Buenaventura Cali. ¿Alguna vez te has preguntado cómo las máquinas entienden el lenguaje humano? En este charla desentrañamos el misterio de los embeddings, una técnica clave en el NLP. Prepárate para: Descubrir qué son los embeddings: Exploraremos cómo se transforman las palabras y frases en vectores numéricos que capturan su significado. Comprender su utilidad: Analizaremos cómo los embeddings permiten a las máquinas realizar tareas como la búsqueda semántica, la traducción automática y el análisis de sentimientos. Explorar casos de uso reales: Desde sistemas de recomendación hasta chatbots inteligentes, veremos cómo los embeddings están revolucionando la tecnología. Adentrarnos en las diferentes aproximaciones para obtener embeddings: Desglosaremos métodos como One Hot Encoding, Co-Ocurrence Matrix y el poderoso Word2Vec. Profundizar en Word2Vec: Descifraremos su funcionamiento y cómo logra capturar relaciones semánticas entre palabras. Muchos ejemplos con Python Natural Language Processing Word embeddings Aprendizaje automático Los embeddings son fundamentales para que las máquinas comprendan y procesen el lenguaje humano de manera efectiva.
*Última actualización: Generado automáticamente*
AI Engineer Especialista en desarrollo de agentes de IA y machine learning con experiencia en LangGraph y LLMs. Introducción práctica al desarrollo de agentes de IA usando Python, enfocada en implementaciones con LangGraph y herramientas open source. Los participantes aprenderán conceptos fundamentales de LLMs y cómo crear agentes inteligentes que puedan realizar tareas autónomas. Framework para agentes Large Language Models API de IA Los agentes de IA representan el futuro del desarrollo de aplicaciones inteligentes y autónomas. SRE Engineer David Sol creció en el siglo XX, y en su infancia sus padres le dejaban salir a la calle, sin supervisión, a jugar con quién encontrara y a lo que pudiera, con la única condición de que regresara para dormir. Una bicicleta bastaba para recorrer toda su colonia, sin importar carros, perros o baches. Tomaba agua de mangueras de vecinos, y comía lo que encontrara en sus aventuras. Sufrió cortadas, quemaduras, moretones y un hueso roto, los cuales trató a base de tierra fresca, agua y un par de curitas. Tuvo una infancia feliz. Actualmente labora como SRE en Wizeline. ¿Ya te cansaste de la consola? ¿Quieres hacer una aplicación con interfaz gráfica fuera del navegador, cómo en los buenos tiempos? Sí, lo puedes hacer con Python, con facilidad, elegancia y desempeño. PySide6 es la librería oficial para utilizar QT desde Python. Sí, utiliza Python. Sí, es fácil de aprender y utilizar. Sí, corre en Linux, MacOS e incluso en Windows. ¡Ven a conocerla! Qt para Python Framework GUI Aplicaciones de escritorio PySide6 permite crear aplicaciones de escritorio profesionales con Python de manera sencilla y eficiente.
*Última actualización: Generado automáticamente*
DevOps Engineer Especialista en Kubernetes y MLOps con experiencia en despliegue de aplicaciones de IA. En esta sesión veremos un RoadMap de herramientas que nos permiten desplegar modelos de AI, MLOps y aplicaciones de inteligencia artificial en un cluster de Kubernetes. El propósito es identificar los frameworks de AI y los casos de uso en los que podemos utilizarlos para empezar a crear nuestros modelos, entrenarlos, automatizarlos y obtener métricas. Algunas de las herramientas que veremos son: KubeFlow, KServe, TensorFlow, OpenVino, Jupyter, MLflow, Qdrant. Orquestación de contenedores MLOps platform Machine Learning ML lifecycle Kubernetes proporciona una plataforma robusta para desplegar y gestionar aplicaciones de IA a escala.
*Última actualización: Generado automáticamente*
Desarrollador Web Especialista en desarrollo web y creación de portafolios profesionales. Si no presentamos nuestro trabajo, ¿Cómo van a saber lo buenos que somos? Ven a aprender como hacer tu portafolio en línea. Lenguaje principal Desarrollo web Portafolio personal Aprende a crear un portafolio web profesional usando Python sin necesidad de conocimientos avanzados de diseño. Desarrollador y Educador Experto en nuevas tecnologías y tendencias de programación. ¿Es verdad que con la AI todo va a cambiar? ¿Qué es eso del vibe coding? Esta charla será muy importante para tu futuro. Inteligencia Artificial Nuevas tendencias Tecnologías futuras Explora las nuevas tendencias en programación y cómo la IA está transformando el desarrollo de software.
*Última actualización: Generado automáticamente*
Ingeniero en Sistemas Computacionales Ingeniero en Sistemas Computacionales con Maestría en Ciencias de la Computación. A lo largo de su carrera ha ido desde el desarrollo de software como consultor al liderazgo de equipos de tecnología. Lleva 15 años desarrollando en Python. Actualmente es líder de Performance y DevOps en el sector microfinanciero. Le encanta compartir conocimiento y todo lo que involucre conocer, hacer y compartir Software libre. Tienes una gran idea, y estás listo para llevarla al público. ¿Cómo empezar? Eres un genio programando python. ¿Pero cómo haces para llevar tu código para que otros puedan usarlo? Algunos tips para: Configurar tu proyecto, Construir un paquete, Abrir una cuenta en PyPI, Publicar tu proyecto, Documentar tu proyecto, Consideraciones para compartir tu código. Python Package Index Herramientas de empaquetado Subida de paquetes Aprende las mejores prácticas para compartir tu código Python con la comunidad a través de PyPI.
*Última actualización: Generado automáticamente*
Ingeniero de Software en Aurora Solar. Entusiasta del desarrollo de tecnología, con particular interés en la Inteligencia Artificial y las tecnologías de código abierto. Disfruta de la exploración de temas técnicos y la participación activa en comunidades. Esta presentación muestra cómo combinar herramientas de software libre utilizando Python como lenguaje integrador para desarrollar soluciones funcionales y accesibles. A través del caso práctico de un traductor de voz español-inglés que opera completamente sin conexión, se exploran tecnologías abiertas como Vosk, Argos Translate y Coqui TTS. Reconocimiento de voz offline Traducción neural offline Síntesis de voz neural Se destaca cómo Python permite orquestar estas herramientas de forma sencilla y potente, ejemplificando el potencial del ecosistema FLOSS para impulsar la innovación.
*Última actualización: Generado automáticamente*
SRE Engineer SRE Engineer en Wizeline con experiencia en contenedores y desarrollo Python. Python México
+ PyCon México
+ GDG México
+ Wizeline México
+ Clara
+ Equipo Organizador
+ Equipo de Comunicación
+ Equipo Técnico
+
+
-
-
Comunidad Python en la Ciudad de México
- 3+ Años
- 50+ Charlas
- 1000+ Miembros
- ¡Únete a Nuestros Meetups!
+ Ser Ponente
+ Ser Voluntario
+ Asistir
+
-
-> **#PythonCDMX** es un grupo de personas interesadas en aprender y compartir su conocimiento sobre el lenguaje de programación Python. El objetivo es estar en contacto con más gente interesada en innovación y tecnología.
+
35 Charlas
+ 20+ Ponentes
+ 3 Sedes
+ 3 Años
+ 5 Charlas
+ 3 Ponentes
+ 1 Sede
+ 3 Meses
+ 15 Charlas
+ 10 Ponentes
+ 1 Sede
+ 11 Meses
+ 12 Charlas
+ 11 Ponentes
+ 3 Sedes
+ 7 Meses
+ ☁️ AWS
🐍 Boto3
🤖 AI Services
🧠 Machine Learning
🔧 Metaprogramming
🎨 Decorators
🐍 Advanced Python
Redefiniendo el Análisis Local con Python: ¡De Jupyter a Web en Minutos!
📓 Jupyter
🌐 Web Development
📊 Data Analysis
💻 Local Development
🔄 GitOps
☸️ Kubernetes
☁️ Cloud Native
⚙️ Compilers
🔧 Language Design
📝 Parsing
Ambientes virtuales con venv, pyenv conda y poetry
venv
pyenv
conda
poetry
Del Código al Clic: Transforma Ideas en Interfaces con Python
Kivy
Flet
Qt
GUI
Desarrollo de API REST con Flask en Python: Dominando la elegancia y la eficiencia
Flask
REST API
Web Development
Los ambientes virtuales son cosa del pasado: Desarrollo en Python usando Contenedores
Docker
Containers
DevOps
Pydantic: Validaciones de Datos con Type Hints
Pydantic
Type Hints
Data Validation
Matemáticas y Python: La Ciencia Detrás de la Regresión Lineal
Linear Regression
Mathematics
Statistics
NumPy
GIL
Concurrency
Performance
ETL
Data Processing
Big Data
Protocols
Type Hints
Static Typing
Open Source
Ruby
Community
NLP
IPA
Phonetics
Rich
Textual
Console Apps
Una ida y una vuelta: Cómo iniciar en el opensource
Open Source
Red Hat
Linux
Fedora
Python
Best Practices
Code Quality
ChatGPT
Transformer
NLP
LibreOffice
Python
Automation
PCI DSS
Security
Docker
AWS
Python
Algorithms
Problem Solving
NLP
Word2Vec
Machine Learning
LangGraph
LLMs
OpenAI
PySide6
Qt
Desktop Apps
El para qué cosa de Quien: Kubernetes y AI
Kubernetes
KubeFlow
TensorFlow
MLflow
🐍 Python
🌐 Web Development
📄 Portfolio
🤖 AI
⚡ Vibe-Coding
🚀 Future Tech
Construyendo un paquete en Python y Publicándolo en PyPI
PyPI
setuptools
twine
Usando Python y software libre para crear nuevas herramientas: Traductor de voz español-inglés
Vosk
Argos Translate
Coqui TTS
Lenguaje de programación
Gestor de paquetes y entornos virtuales
Gestor de paquetes de Python
Entornos virtuales de Python
Nota: Basado en la página "Modern Good Practices for Python Development" de Stuart Ellis. Igual hay que preguntarle si se anima a darla él.
@@ -141,19 +141,19 @@ Ven a platicar de estas y otras mejores prácticas con nosotros. ## Temas y Tecnologías @@ -181,7 +181,7 @@ Ven a platicar de estas y otras mejores prácticas con nosotros. YouTube - + GitHub @@ -192,4 +192,4 @@ Ven a platicar de estas y otras mejores prácticas con nosotros.*Última actualización: Generado automáticamente*
- \ No newline at end of file + From 3523de1d38984052eb7566faf2cd8e597a955d38 Mon Sep 17 00:00:00 2001 From: pixelead0Comunidad nacional de Python
-Nuevo Leon
+Jalisco
+Puebla
+Morelos
+Conferencia anual de Python
Google Developer Groups
-CDMX
+UNAM, Facultad ingeniería
CDMX
UNAM, Facultad Ciencias
CDMX
México
+México
+Sede principal de nuestros meetups
-Sede alternativa para eventos especiales
-Sede principal de nuestros meetups
+Sede alterna
+&Xj5w@F$y!_l=iVwqD6w60ba|R+=P)rXfYJD+F z#vq#5I4NVYKpGl~ay=u+iQDO3p9$~ny`B2jD|u87jR2-yi72ev0w5c>6J;R0VX}nI zij%jl{mi%GvMg8H34hM9-41W1xt5*|ZefJVqYI^LZjJnx*0f;wkjRS6?V2k+u$pa* zo}HU`{HuMYBNKERbXCRzM9(AUatu^cS;{4)7*+T{aY;#)Ae(tB2xS$+?Wd7uimM~u zmPBjlXu`J;+jL}=5&cv?L~`W3^$bo8RxqD0x#M!UkBX6G9?0gOn74%5#Mj!QB4x-q zFUB{ptZmpgRf7K&%h(#k1$c6-sb~!wLS=UxM2+G43vgS997dge^|%9H|MXQqCK}-P zD+kU6-QC-CTS0`Utqf5Sr{E-eh)Fb(uc!xq!BL4JnrTD zWs%`HcT(r-dU6SXvh%Y1XRa@QWfJn3TU^s)(@1S_?&mqSp+aC?3(@^58e1b!n%`Jl znqexi`ywJY8+s%;Lzs|yWwtj`lC^!6yo>T2nV%*J^*ieHZ(FzNyo;rVni@vB&OZcE zINWrrrAbK1a}~^SQdlutCH@%!Vuqe1A=Ir3YUv~{Z&Ap5?d8D0$ewb?qsMr{cyG{Z zI%Of*IxFvtvDr+h?d|PfC5QKJ0Ve?&l>1?6e~`hb961g1;`-kn168tr=RzDAz>E-4 zKf;HH&*4L#f7UIi^vJNA*z6PjtT*G@ufIaSAHQ_N{cJz5O5y^`SG+rM=1%L=Ru*-Y zZn*Z7($ns_GWMXQd( r!Y)0+f$983h$9A1FB$a z4VO^e*sa$QC7+Gg)@T|w-Gg_^FHr yXJxve%~+&Q$#TYl>k> zDj}6#QWPz>ho9^>D~Xm33QM#HvXU?gdBg^z-)U2QZ1@+6Z#P*``3)^EUsxWEBfQ=g z-|V^vT8P)Jz0po0q~*l%lBUMa4BahKNtgexGC}C^;ENcPZ%U9j3(!VeDVnYgPq^FJ zUo~*|BbhL#RQr9a=NIqB`OWJF7yH2vbq$q}DRdnJ52OpF@*(6CnQ$S ~ZuhzOgI_4F^$rV9_Z?)jW%Ec&FM%WZjG`Yx@_1@jf*C+uze;a_Y+o+|BM ze63Z310v0op^IQ*{PM`XT?T2;5W~lij2j|=b&D2*B0QKQkpO{~FC0#~wsqaQHng>+ zv|LZ3HQaAy&Oz1sXHo8ZT_}zaJY8dl#o`9U)iPaS_}ch+S`aybm^C6ZZT^tjJ3ygD zuB>GAZqqo*0427+Fa$-3#8n{b$ma#e?0Dz?fR%tN$Ry(j67wdkbu>Rd92a)Nz+dX% zvgUjAW*U~1K*^}djhO--EWU4*V3P!2RDwx@b*$Whw8=&@_fIW9*RAdoorJ^_Pd3cN z2z0Y2Bg5+S{M 1=|8WBtxU3{j!IrwK;mKoI`HOg;z`CKv}x;M#bH{_2WyuO@lI=y_A@+SRvx2=-(k zKy2dIn08sYe~1w1YyY7*(<7xyyVd0?gS 5nR-D(T^ZDQzP`0Hwj*~_ zAjDCc!Yx!kFH4t*LfU9Ftl%nHImIeEaW0}r!+@kf&f qi;TE6;BxULOe$Xqo(SV52 zhp3=T(}DG6ACUD8g}z7XL?hJ$rq%i@=ANZe>q6X6cYcfhSGeLv*DSvQdI^&=l13$0 zAyS%mxbQoUQIX{B(lEka`(riqL*@XyNBVGsQeBcG<)Lq-8r0$e prU%gtw9eos zJ7;#_E>^aIQ5k!9#--yF?I`t~NSuWZ2wM@=h|3Naxy*-*QV~Ezc#jY6J#Jvg6mPfJ z@wqlV2C-rPLYQ0zrF-q3^$ltH-cW#`SKhg)+JQE{f`WV)AF+qPVQ6p?&9Q-#@ay!H zAyur;gK0k?6AP @#0PXJ9WBu)=4@*I}&RHQow QQ z$i2w9sWdgPRR aV!ki;Id1JQ$ht7e%fyxbmtlk zs#pY3$xxJPVCrd_(Zxhco3oV-qPux&Gk&clF(4dl0BX?gbjR|0_)gD{JJZv+l*7r^ z+74hPLwC6Hox)2?j8OX~t*=`V0s}jVWdTneY^4FDA)7oBet(p)?AA^F?L?GmS%INK z=TFTwfrTYE%yimjmm@b@3?9tNl-3|VD_}Cfwdn|^UZX3My~Ve>wkB6GAj&6fns}O^ z49T2R_0EI_MAcQ78d6|)jp;8N%*HmfaJc+r+8my^w_rKQ_w2peiYJIfRZ9lLV&$lg zWD`FgP3Z5)LKYS-fql$y(jNqE`OGFolNNf5V=A0q0JHOF8cZ4C55)Yes3a*1Ift}h zoRjq+s)|UqpB4+8=TCqrn K!Q)7NyDE*#i|Qm0yG$KUt|RTP4^id-yJ zKA6ppN+W00-KqwQkdEWudWBp2--J_ALWfQap-`GDyLkbedkAf5p|Gx&>zd7w`{)3( zd4=GM7Kdwi{|YBzQG4GFZVQaoLBs5aW~V9vD8U}@w-$iK`U84EonS2Qb-(+14zdJh z1|ba~?;`qVRkh@*$taKm)(Bd8s!du+;;GFf5geYOns1NOJbxq)d=M>e!8 L*iqIV3!l5=PO>QkA7-S8?P{guicJw8!*?c283f>Uesf6JLblwTrfpv z1)(B;)E+|+tArKp7nP2FoHe{y^zU3Ft!IY+u96AUH(`8Q* z8yM3(9CY&UrK`Z${L$YXpKNS!aC_Sizg+jH_Z7#oU#fz+SEh=BBU3Fo6<(3%NSQVh zr~>x6-7t7wM?xS34fv9wr1CrjvpOODDWN2(bXS7@q&g%)C?bgh>U}5zVKIOq4f9J7 zqwVlQLUm$<&CNM? @HP(*a|OA-y%=eyl-Aut-A_40K`X zW&Vvjy3dxLS9>yj`RD84FUH4}yUlQOC%tEYU;8JmaNqkCJ1>tf{vz*P5xa?nh3vj; zOu9a)=VFCh)zomB?IcXde|OZGb&DC!2dy!z?8^h9y$-Cf+701T3k@GRt>S5)@%HaN zaB@{y#uW6;L^d1_8_>mj_K6<$NjF@(gWrmwDA%sySbk|w;DnuR!F3Hmf(^52MabXZ z6(mv%e*=2!apE-^LrtO1nTXXm8*YXNQH=9TGS1JZ0|%-lx|GtHe4;3| cd?$)9# z6YoCXyZ>Ep%e4YDs&JAZTqW(kX*7Om|BY!|*<{!mNn{cZF0&U6&je-CEF(>IbUEG` zqvZxGFHtKcQ5pQM@8^r_$IY+Xuh7T&5Ta(?l~48}nD8Z0-jZ^#2)>SLn*t8QUl93q zVy$D=v@$4257IIrNOMVn#=UPHX+e@C#71V-MfKuv<4lT~dZ2I0To!2U#p&bPU&$4W zOV>zu?`4WA(e(5ZmK!l6MmOJ}hfz}b&Dw-)sMUO)Xv4Ai2PcDzl@y?1No0)Hu?9^& zh5vlKJk%?R$@(OmZ{mxSl^CluG!zhBoL_dUWia;H-+DlBI5 zPZ Txl;Iv;JMvfW!c48aui0+5 g+o@I_ere z*cKO66NiLG!}|HR4eKJv(&EC)ZoR^=S<;xVU|yF)DBMgZT=x!4%x4qK _Y8xU__lP26*Ojw4 zE!c>U=)@JbtBiiOQEf3ENn!{#+TskIBrKPC3ub} yPKP`Dc=-~ zgU9Eg$t9HR!C!=EmJQcfjIlqGd*OzV!+Vz%MeOrhRIB02&kUkL8z&xov pU$j7CWcsbU;j4ns>H$es(Li!Umx?#1vtZkui2nigqs9-77 z(#g87uL(qYo@y^(0edSJy~3$TP|KFkDx!5nNX`>;e$S8SGlq>|E`TXY_+X*YNQ0ms zOLlt0T}Q3702(n^)L{c-g1CrQMSz-fO!Qn|9AmOtWK!?5?7$W|&^CnVM4}?E^cb## z$Nq(6uh)zPNNmVWk6Rrl _Yh+4N9VB8o0__LMU&w4@>l>~iequZ5!4pt5QfL7^?l z!PJqpDRem-``e *#ACZZ}HS zOegKwvrHC#SA+yP^YBm3U$3Xk9)l`~PegK~>dp&A->KF~vXm?|{KMZBX#OiPHfzsm ze2H}Tug2z_E-uakfVJ4@3fN8s5GWV#FYJ^WAna{EYnzB9;NnDg?xPV@fL*|ud*kI! ztSv|^ZEsO$8oiH}iFwsuXoA}0LeYMbxVSX2@Un|i1vr9qJBW-lRhZFIaAGXB5*bPq zaWLs6C!W~B=1u>#m!~3sIV8~!`idkO1S;9U=zy}EN*}G@=&+eAu%0TUWl^mD(hr96 zB)dcgYWr78YO?ro376NZ>d8E3Yzt}n(-W3s3p^XIHh=y3>5GX`xhFS<9O&R^sLdvB zR<251(+||pm|sW`l%QJOMxyOM@=-Mav8c~dwZzo&2bJ%QiAmIFBvDX$ACS9!bNcO0 zAMTl7`~=kq+4ieTIs|%bo8$bRWGxQc(Oh)7))&g M_srt-ww2+SffEKvlm{pc5AN_VNBQCaQ~vhz=XcYv-G1 z7^AOBFzcpy=UFV1`{bQt9^n&}`4h6!#(PZC!*;d?s-lakehdsNz?6?3y~-+5jVxC7 z+Tz98CD?A 8BUrC@?5-*|T1AOMs;{SxP4Pv-?1?JE69Ab;Bn&crl` z9f{4Il;#}n$_Ktp5nCBZq2CFHMrHJ8Wb7DN3C-s6flFMixVHA9iT9neME>oClT;?n zp`Kqp9{XpeaI_{uByk-EZ8Xq0XJV>}n%0c=#FdGO;|7)VPXq~b9l6I)Qzj>MSiiFA z$L`bEerE)RSYoUt2?mL_nmOE!_L4S5wu0)BP-+Q0l%$=!PugGS7p_KsSo^G#A>DCu zC-bKr#vm)JKnVETu;R)}TrY}Bb3G(u64G*S3mdS>NS_BYT)~9dq@U1m!hunRXHXjB zp#3d9zE;~0hFF$nd#y@XHmBylG84#F7Mek!I #57GmM>2r_NcjByB{-MB6UFD ~YcElH zu&O#KQ4ToLIHzQ} AQvAbK9`4o$BJedC6v+Z z^SRQ$bcV6wUH{T)_DcONn+Z3vAuL-PhK|na9p{bio|Os&j78mYSRX{{K{o8veIrh#nc%Zk z%K9u-C?btSk_ceZTc?|_H<@M$d-IuG$fc2ul3?@eYX-mmOzgki4(5RV``!+nM0&{A z18IG32hXvouD!WH-bC%lEto3|`8a>h<~JD2lfLGXGanR{xp*m==C%NlAk}J`ioTj^ zO-nE1qxkE9-Biy?Rz{u^LAuKZ>c16YQCu`kVR2a217i4MOB8Lk=u8!mY@kff@_fM1 zwJM=B?EPtcdVTGW82iSX`*43NQt1tkOzwKjSdj@ZKR86lEw8sm!vT#55(4iE#3O =orW& zdZ~MJstI9a?AjvDBcI4H+<%q% 2 zO~XM6P$(~; u&5wCP>)@r6?@RxDqFKYTbGgj|b-E5vIQ(p`1W|E>+kW>yU-I>8C&mbNySTm_ z&OxoR(XjvheBx`jrKi(!fy6`9mH4c1`oX~s75;krS_`$a(!Yv=iL%2xM*imn>w3dy zIHvAgD@&*a$^Fqa>i#p&O5rh-JNYYLlb%gWabLy6%Z8`dyS(%M86bEhNuQmC;9VFL zgvS|2kTKzdX$9Qdyiy@iE!OI6LWVX|vtSD%!6J$SMWM)O;5ZmRUI-tl2Jsz7V)U4f z#wWf+T?t)=O@}np`(Fq=ks$P#h!~zHiLfv qK|Jn^Vk_F`mGZlBVZ4Jm-jG}w$~t9t zpAu||LRS8F+S$bA^r|1Z-I9qUfk13B<@mc$#r0CW-s`3Y1Bct5oV2MNAA?br8g6@9 zo*U3Vo`(Vmg#7zaF|Lr#FL6G)VA87+hE}0v%mXE)m|wtw84df&EM&@mIACui|8#g| zHMVcB*_xS3(%Fzro9(OlbGFQD8FfAWW)iALq}NhM0w)C`)HfHtrHkSIV+`t8nsr|; zwO!o${lF=*u#)mhGIhO*d$R+^`7?w5&u$7|aixbaPwz}=kS@MJDFF;ZGF|6DH|hK9 zqks5=5aRA!(TQO)5$n`CPh1d=h!>`SsjMWiY9XGy4tJUerxfZ~u?;&vv%THp-v)NH z<`4922ko@C5qZTgyq}`1cuQ*m@CUCpe_%y}9mE;Lc(fPKl*qt{<^At_$nsi&SPXzv z$jx9;NC&A~n;r#}4Y`YDfkU|L6N!DubzXU6R}6g8tK2*Ib6c)4n?`iqEmgk^Z hh5FUPwh_ z$(^Hdi=O0KzN|Xzul>OPoJULmyDEFhR~T+TN1a!u9l{0){~mm0mX(ws^54(WV0qu6 z&n_(#+5``e+B{>0o(1m^M}-L81dFxMP1HzH{JJ2})`{)Unwe%oBR*x*|7Tg@&o?A& z3%|U)=yt|;(ne$`myZLpv_!D=7d&uwYbjb!uM{wMnz#|Tj0!$uViOCIlpZz9{WENI zc2DsSbzVVn`)C%wWw(%XP2j~t=L7ou@?1#G2MFkIfR6a&OqvV$^|n(lZm><(C<5{} z)6$dk$m0$BPTTN>+H#9+#K*H>=}DTEA|DYLYOwJ^elwq eVIk@>CueMD>-(=Zlv zb@~3yq1UH`q1lPz =C#8y?)@`@9uMz#8-CCRhLUI-5Bcw z@~nXnms-n1DDlm05cFnv6cXDqE31m~qqRcKvU2g0<;kB<`dNVMdpjCfx!e6g_#C){ ze{*eL^+Id)a3y2(zO*7iA_12ns0MLscT` 7)U*?h44i*D}E?G+>E z)6BN(=m0+{v{PuU;lxj1z1@@ZtzUflb+D =^{G!XyMVoi_WzWlpBYz!@VkMxpn{esJ{ksRW+U=COk_d?8 zl c?u5UJD9^Y9H3jPYgdG)uO4~Kz=C9%q2dJY zXzvi=TT$7bjV5%3=7_<9nJ(UiF+6JvxE{m?g}m~PR-M#$9eEt}i`FiAa1h8wc7&+S zXF|e(fDgJmAR}gErIT>Dcm{Y^+n{cpS76Zu?3=KY?L3~n>YwvU1VrYipQblEm?l)b ztQ6XzkpUo`GAocSHaf5}sXKjVplc;ppRHMay||ckcOZ?zwsJ1HqKnHeDA|z LxD>#`_GlY9sl;)$Kd7|RG-ejt}na$zM4W) z1_l8iIbQ2>y8F18oHA|f>Hn%aKFV$&&Ea_Dvl=~%k)WCJQ)+E_2||x~Q{GzumKXa0 z{f5Y^q$vC%U=+Qvt{|wM17w4QX@f?`xhW#8WSftJ3jv>(Aq)>^i4_)28Y(O@AZTy8 z*@NZJz3Bm#4ZMbv@C-&3uLRqHieQIzx=EP9w1*NaPc(Y6bpx=u_lBkkz9jRyuYa}s zim=x7xT3OE>yq}ym?9dRQvvMJ2eO)upYVf`-u5TNw{IJ3-uy pQA CH2=bPgu&|Vt>E2Ddld>o%TB*aixR~{%Xg+`whT?>{Z$K9d Tvr`hgX&3f1>!A%+7%@0FTS@c58bsblQ_W*XApN%9Cm~R!=b$ zoF87q^ I zKwhe1p=Y`M#Yn*kz{JY=`)`(yIraF5X*UjbE8Aa?w*U?d^mV@kHV0#>dA)X{?XI84 zP3ySUs;t3-Lviw5c@l_)2@ast+&Tx?y>Nln{SSqTDp%1XSr@ kE2P Z22Hw>{c&h0b??zEDq;- z399L|R^Ld>=@&C__3b7EJQ{}){4Fj#9qkymsqhb3k-*e(mDC;g+R)q_)|!Xo$@}2A zn#>Ns%w+?--AQm{4QRLijxg}xijst2i1HcFZ-PQs7{I#qde8?0NMcZVTM+{ZoBej+@=4VQdk?E!1NvNvYA|9+71&oZ2j7RRYRbpl%USB|2Ml|~GS@HudV9aj;M z9?iM3DAtlJlG1v8s;v4Q)>2tphJN$`LZrEw;Njz`z3*&0)B8$Rf9w~{ny+7$kOdy| zq%N$csu(_{Pe}C)K`{Ia9~|z@1{mP`U2yi6gvtGOJ|REEbtx+e!WCV+88_TpW^7;Q zg?)&(0{@lSc5fF-gMiI8@r9(@Pq-iwIIy@K&EUjhywd`q5wkdIig0My@uUve*9;*< z!wJJZLx_`i7PH&)tjTnlAz+JEt+?|IU=(xgo c3T9huAe$VE13$&vUEX?ki7;ED_Nt$u^o%B+Pft6fJzFoDlx?rv@f^gwsG>qFLT282+s?TE@1 zNOpin&DKh$$R@-#g<$d($<9d1q6(#>WfJx1D4i@!Kc+{%A_04X4iTGoL)vb?^9dpG zaqzf}sn~bA(FDBi&=IEMK>FjhJ031@8Sr)~djoJ!28N?E4abwDl$bBzNAEW>ECGMH zviLs$W)WJY=~?~yyQ3(&errDDL=6kS3+v995kG^0GFcDmMDbh5y!NtlQEPG z@P@ y#|L% y@`J>8G1VHwmq=v8dR$!o zH=lva{^m349QdVKP5=LYEcIyr6s@cfiAD&Tw*c%dc`ti6{*23qyaEc1*mGzC282yV z-o{aCPVn(e9v?&hY% lSZ-eE z(8n>9h9xSubd~7{*SRnHdoyMvIpqOFAd-Et>C-+uhae!_t`ujm3@76?XEIOmdcf z>6{|4p0OQ(DDqmq0!AGCVB+4>VvR*eO$v^rW(Yw)Lo7STrpycpDd{(g7L6bk>4X?q zc!2!7yboz9G9F!&(Ci@bK~)+8SUseyNC`|S=&7r#hqvk E*DxwGt> zx8AnW8y;s&revF0 #Kiyxi~H4}k+&bn^ fMiCI9k;hr;-&>zC!ppx)ys44oCX zHN*VR-3$wEm;+lLS`DK{4vV9d&oSrP8L&X{Afqq70`B_8T7#aWL5)d#45MszDQG*Y zM{gBYsR;yFimW1)Y@|3HB_ia_)MdbPswB@2)RSCwqW`ge!zOYDW&ORI{ND~m)E2V) z&JU7gJgD%7HuyI$nh#AYS7&JkEk|MWsNvq2xS!|O_XP!_lq)Nl&t&p?I8{R5M_^H- zYs~5=HR<(ESgOAus%bC+>R6E6kR-qsOc&xTuU1BeL`~tun>V15ctax6AS3%YC0~?- z$0whp#4ATvP)_oc((FrdYaqA@hQK7~=s4v+HTB9#u;QOr`cSCPzX`Kfc^|N6|5Nn7 z5B@DUS7*sTEre&D{w_4%z68fzdNHiLeTg?Bt}VJ{IXD!;d)8zLU%cZ3kO9f!wnWC6 zjK3iWO&CAk-zQFcOzs&Xs?dH5Pb9V|n1XM<1c()Q)%KbsQVn;E_Ks69d){JLuxOe8 z?&5{>Ju)d2`s5x9Xy#D?t@v~PysP2R;Uh4l;R1gZyM01nAAd7jwms%U%k_1At+hqN zh?%?S gI};jVku5db6v5Fpq(9H5o`tXE5Y zd*uqs?ME*J<5oG0$AKq&m}b^sD;TKmhzZu1;hTLv7a`+`#?|Wl>rE@yz=%;-cvok_ z_)B2twslxrTdju$sCy?pk|^6phnx|*alsP$^0Fqsy@h*o_nw1LTU)~(t>4xI%+MdgqaPB!uNPyG2sFroE 1oAe1=ZE{_4zheT{#IB z|HE<^H+GD+cc5k|2|5PsIB^Q=>(29^?CQ#l$lk2}h$_>jPD_$Bs*M?uxn{mGlFiM5 z4FNG#ieeT~k%);6Q!8UGYZ8^;6FwxMBe#$SOi#wzM>Wr(!_RtGC-NpMmMvCKHFunN zN&dT!ZeNF6wtg4dJ5Kq^^|d}D8@#Tje^!z*sNog6E&XIY3SlK!oCIFWQUj{&UPOUr zi_=6)VuFvV+@i_$HnIdr>6G$J-YXkJf=B|FBVot$3s}33Y+?{qR9FT8s9_}z42vij zxsuJRlDWxy)YzB}sf92+d4AAjs70SWx_93}pM$gU{>`-UzRlDyXaG#Tax&-z89=y$ z2>G2WGyAhMG9)tj>a5T+Xata&9v<=h8Rw%^=}8;bdsMw@dI%N8le|quBaNUm04zEO z#*BQWN<$&KiFgWqHd4nCRh++EPsEO&>9_NoK6NrIUNm3mMzWQkf*gi!U4Ap}-g|&z z0i|M*sEvy$k*`G(3r48x#)w3?NE4vyH}rhXIp@@1ZEX$Cm~jPgHk^?+js2pMgllU zKpb|g>)+SwPF!1lYcoXBR@9DwoJyd1p#a R7XIv(f zcz-8lY{>FEv3s;}VY`k}aU*{AoI(xu?|&Y-KI!c00izn`v?1l*hI6;IpTw)C&4V3V z*ZOeqo;?Soy1W`g?yHLz&c}%p#=u35lYGujeO+IVN)ERig+fg=Wr>JA%Ci#%bd`)1 zpTswM)G&D8;DOlCFwiIZ37|z7{-Mi&jZ>@>i>wRb!Jw7FAn;nOzaSAxJY-$l!uqr2 zMv#;jA^{^Xi;o0&t|)anLwD(SWhKHZangVhW3el$8QkEi`&uHOosJ_%e9)IG7&&4n z47zXtn#lx_FExG@>q$V+68V(>U~?QQ*}iiZG<|)EU76Kfcx2OR|MSj!*23N2SSP74 z={h8N?f%c%*Uo@tOBTgMIa>Npi}>2Y-nv}JCAu9Xoohk_!O-MZRPpP~WsrQ&UTT~k z(VcV?an78XP*>Lvr%ag)ix$j-`u-9%(ZG;nrwVxO-g5vJEX)YlyYF1)(Scc@DT~m= zZ6!K8dtmpTr=YIBFXvKa#!H_~P|P{CHC`BZ&)v)6XD6SA?`&V|4arZBpYQ^<;TK&- z=k^;411|ii|K7yQE^)^u)pMBoSDZGCx_#vzX;*z;b4IGEhJ(+UV<*?v}dAQ;$%}idpOPG4q #xoQ%$v>x%9yzaU;+`rj>(Ot7MjEbN`eQ^LbBpx*sWE7h6c_y(z z)Ssyb33`&C<+Y}{`(C^ZMl}xiZ``|aGc-01L)dq~i^P~a28z#)IAJQBs`;)pFk!+N zuZW#HXO=IJ1R<&Mz75UZWL+@mqe1qb-NBwc2f5#vCXI4K02n=bI7}Qr2B%HC0uCR3 z&P(!_EWN`E0gF^*bmk1rEsL**`SWH$Q}b%r^2lR!{`vj 9$@Z@M9?r?SGo7BLtkezES8%!stNpM=Jd!*St_bK{3RKU3fc zhsg6ZoseZYt1!6iGcGk+KnOrUlU|>L;t6+xsiL;i8)ks*Th{p3=FOQ2V<*mn#S7-c zO^cQ~cY|vdRAng&xl{@F_tND}=v 6;1xwyZ0VY-(yb~ zB5(TPQNwW5sNw#*?(cQ?Zi0aqe$*otu*1$@!i?!xfHNXpon3J4bqk@c{ygv2v~`?< z+Cmyh0v51gmY$9JZ5}99k)Y95gK;!!_cE1Kl|qbXyOon`!`xZvtRz-&T2fB9EmFY* z6fZ_f&&ae1kGU! Q1@zYHTrd@!EaA9UZ72b|%ck9_R! z;IdC#?Purahra1+wEDak)b(fpg)XKncL&I$jjpb4at5Vezw_YG)8B>05ktK}aK~^) z!7E}}j%p^7Ow>SoIt0^k;uI(&;>BByBZtDi{ZE73fLhCd^1c$8umEYd&BQd!S3och z2;AdYgPO_Cs*csy_r;hW MPMmH*boV#b`)RRb$KxKA zto`Qg(E99AUwhTLGE9&7a)+nj`Y+r9{rbI*e)OH$V7I|Jr@`KMWhcwOLhmll?_i z#02;4I|$pds`J!z`x4BO)4*4qm#Y*VS-d?EZ-J8(yFz6%H?fxA+MI1S*>Tbs3z2Cs z(n&fUgg#cg7bb!iiNx^6WWxT%Lzm!l{GnIgy%z3lS_(HUUIsTWnD6(IiRBbWExH~= zKNsCrspYDbLlnv*jtbeq&ZrC-oaN=ji>>#CqO >^N*iDX%_ lj5ki8ohQlr;w|^yD!LpkQU3k-MvTDa@X?$WQLB?jAqU8wL%?_Pl{; z)~$P}OsIdaP*Y7uS|9iPRny8fa89AdJa=cHvf@RjaQEKtLuY3X#iI}vP3E@tsT&)I zc^AgL)7EwhK0A8>&7XHQHivBC+Co-_psoER-(Kd ZK2!H8IXA>sYi{MxW_GcCArF2A>7<0fy2 z0E~<;BU?p0mR~%O`;xcWq#{Q!xe!NOJ*$F2LFGy6@F$>&O7oL-_dagoESNTB5@-4z z4n>Ug?a8E(jU2Qg?dtA9_dSP7wr< HFX#30AyOGau2BIi?_FA$P6cZ&6 zi&tSW_r%p_NmolJS&{GExLG}SWpOYQz@bH;C0i7m4Q_aEC@BzK3jGDj|B7VXvC*T3 zd+ub*mdAXU*Y6Wd;5QaOr%;35a6n(+hz!QQ;ZcborG7yv`^faKy^kOPR0(=!!85gW zvX{{SZY)(h=4`gIF(k6JK<*8x-|Puew#e~8F;Q3|v}Vr$knWhx)E1wNh`QBYE$#yj zX+VZfVBeDmY2B*ZamuGAp>uaO+`lPG&WRaeE{u~+uVoL;RFvLS(jz)E1$t z-UqPrj~Yafd%h@Mm k7o~{CQWyZOa$IwX+w( zy7dpi=+PhY2yxGz1O8v3(8r(t(BbFw5CXYB({YUEV%RHM2uS!6g`7c&*wUd229d-< z+1U*clv&NzGK$)e;C*Rv=){pnA+jU!F%HyO^Gswmxs@a-HBWfXD+!b?FX&Fue&VEm z(LwQjPagEh!6A;D|L1bJ@rF6D^q&@C*ndVcY*|l*DifD^8gt);K(t18DF&waPBYY; zA*(9A<)5S@MFFXyl+|P f(JPXc<;q;%BG6HewpwX zU4Wumm4#!}Mnsd&A${9m)ez?*Ah76`A9I!;m33!rp_=Z#YdOrAIthl4m;|Fn4fmhh zz5Dw#Wbi=#ZfDnNb&FbZ6qMCQuD~Od=^fO4OY&T}j}f&NKDP&SOzA^2ZhDm|p4C=1 zh9pSj)qu`^gpj*heHE7i;=;(-gz$aDd|HWFE|s1vTtksat!u!Q(#RtQYVSDdufa`v zXG}hF$=}h)5g&vn9(yp9J``Fbf+WfAG38@7@3#c5B&VXrPkMF z+h~d_RwNU4D-prwqapvI+~YWA(7CFxbNf0R(l7vqkDTN=n)T}+^4o#B4{h1{7)XYd zHouV*F$Lsgu}UlEm=R0n0;8}cu|=3_jN?%Z=_ 0@Apk@rmMJ?8OTm5eHSQ6z>d1jNTLqHGUtN7604}4?p-#pC_ZuAge`HjU4R_ zxFdIUXD&^lriM8NRzsL|M~m}>;XyD~*QA(d$$M1{lac+z>?L( w=P=*cdc9&Ot9v|@>-f9p=fj1kem^yx _ zF^6Q5_ds%mHTsYzgPcY$fCqBPdm~2 h{&;y(*QTMJ~$DSg5YP zum3%4NDjcEbrW8vIJ@W0oeA^j&Vrj3EP*XsclnRj*YVDSe!t*2<~qB((F{z6fAKM( z@O05{^E^K>xoUi9^%zAUtO_)M7BiAaYsG*m%@gxoW!1{Yki_|`2TN7(sf$Iuzlxwi zRJFJ{lAst@hU26P`f`kgdC@G+D0VAs1IZic%0*_#ghQzNo;(;AJC9V}H}r35>Xno5 z;Rjd2WmouWW Zj{;(n7X)V0$Z}WgC-5dP!x3?T>nySO*Iy3Yy7@Eb#?uq zzW;gt`bRYmkLmaRvwQX)fSVRArF%DQ64xnCrz#)C!Bj`%+>jtZ^WWFDlo+Y`d-K|r zd+u81pO14}wrt(S?%|=sM}4`)<83E7lNXgDSCP1=heF=dP*zfPBEtp_=f?3U-5C)v zN6!gtxg=XTJG%en<=2#xA>r(NRCO!jfK@9hw-_iuwRMDI6yl03 &1=Fv-9$KG0rhJ*4uk4Ss@xIMC``Q^W ze%u&zhD6XuF|xtb)zyP7Ek|MG$f3UcV&jORexi1D_4sWpNfEYzcku=)+Yg4Iz5SF~ z)!W-oMynln#z)J+sEu5lq4Zg_+5HC&!|yFzTd2W8p^sPRI)f25B}cB+QKEHr^}yb} zPeJpYYrV2nNGa7jD9L* aCbj#xF z-E~o?kIMNPB{+ESfCwo>pu>+DnP+CQT!<*MuW)o@*#O(Hu6Hqw!Hc4ifL^LF-MJIk zsR4zq;sR8vy3^TgWn)NCR_rq*??H4=^a@H!tQfN=BeDp`tSX(n$F8*-xLP_SJfJE9 zhGwNw{7lEmQ*7(*{>FNr1F~-Q?OyhN-~A7>OBL0LYMkM=9lLxO*!{cfp0#eG8HscR zx6aktx9=eA^OFy8(1q`XsaH+%=W6h^NQVAFAIWQY?Y}gb9eUWZZ5Q3U;UVbmK5Z(A z8P+6I17%Sj?=EB?%#bPKqJ{JQ2c6+Or?whj?CgPaYHOgTP~$~v6DM5aCG*Z*S%2>) zpC#=2y{UN(Oq}>JT)+MyUY^>65e6krWaYHVIU?mUMy|_jo5^)$f^k;55Z `gm7H4vdEE9)$qq8$fmf4=sxN4 zc4U?rLlzhcz@df6ML5*p3_^RyDUVF1UO6e#pzMDd+B;6fGcy;nZ~sAGYM^n%P?&w) zOjv$vQ!tV$9I8X3;SyR~kHX?xmiv3C>wlgvf8dOYJ5F6d4QI1CcVX||1F&b`LBDx; z*ey>@J}dkQXf!@;wGp=%-RV;&`>2jP_NbA=;bi+PIbU#5_Uw5IuA9BUBaiuWXL&tH zS7(nWX5CL_fBZhcJ?5H~5#ez~BIy7wr(l8s(cO@mtQh6^`TQesZGrViP%5DpHDe+_ z`Q_LDg#K`?j0}mcy8*_qh}**M0VkEIRQuFTjp#%gTF65nVas^JoP?ZRop4^M1R1|1 z>F(i^b^XqRjo*6MfAIZ7|CYY@*n>E3>=?S~hPmDaXlXs_T?_AebocoCh+9(5{_G5J zu8v!6^A29P&3Lzwg(LFS*W2%V*vsbKdv*Q$LPNs TkVS%xwdp!lXGoo!h~!?@>`cJf}0jC z^N7S5(XOu3{yXdL-2@ZIe+<@dc*vi>t^EZ1#kod$gK0eul5|H|ve@|mBSQ@@ euvxPtHuoZeQ4}2} z7mFsH&?h3Y$i=3i5 X8Apr)qUhl@Af zx7inl-oEp3k1E_`Z~FQYn0Uq2azIcgOkT3Qo4AD;A$t 21J|q+d)a3>#)@1{ ziS&JuS@;((yxx Ks`X}Ig|wce;a@%V!tK`gvsp5N1#Q_{7Q7q5)DLHnNZ?vzK@ z)!pMOsl{5bpud1p5KX7ulHJCVrS&>djr-mcip8*YbNy5E3HgnaD+R=BB}jH0=9K2o zy&C7unduG2rQ>J%@A#y@!$ Rbd(^RUyz;Y2mEAwpOMc;fRTy=ejuZyq-!R7#pZRu-*n1Zg0(a7g95VpIn3{N}w? zN*w`Mf(!s!JtR&M#N+Za4d1rp8m6aU0TS_c6!ClFaAota^;wyyCpu2?ow$#71db$| z*j|iA&Lx1rDNLVry+71~8|T8*t0u7#5!C^ibQ(~zHLi3(dM^~|8#c;{V2bxfN-xSg z(}WdR8&}eSF93No@(`6zkDxBt;tL=p;nGhfUN>fWHvm5JvSQgH|N7Epw^Muj2|q?M zWaM*hFe-$}yNTUK4$u`ccHO@hJG*(L 41Z^b4u4ZwS)FK@d76bNLSsbcnO?C`52hglcG8u&F zGnyaLj=eDM1S;o;6|#EZK&Ti`(TT#YK<+u0AckpMpFPIcxOd+HSRM)-HQ&Aj=3F~7 zGlW4K%k++b5aj$jp@CHuF7d{q%9X(I&aqo{Ikd!I=bB7x*%?NV*^n#O |YmGi_& zJb7c7T@n?6rca#=cdyKfJ}+6;1kHD@3(rkkJD|2UCb50yu1dA=73 VEZJ!UXev#nhT)JPSe{VK-Jq7m3!fs%c-eKeK6fk} zgdidp&ioC>x%IYY2=!cH>6aITQi>>Kv<^H)e@TTXG4U6oQ7Mwu^l}FyC@z GZ)j>~D9R_j`Rv!)LNzQ}c)jODAQ+J)%kE(EKu1s# z&5@jtuY^ThN!(u~MU=3hMn@8N%aV=>IwcYq3t-t#WG}D8{+iJcNO?*bu>4E_0Fo>S z?lyzm%B7VJA`vKR7Jl|EC6!I>$ pBnaYJzerGh3imQtr!8A Q1ot{=jROi47B;y$wa8KleTV%zq|p{4Z- z*z(Y7AG$sCgYWoC^UH2+qK=M}2xhV3JLi#H6)6s7sWcM`#)xq!T)HuqRW#MqOezCv zn5T)Th*;b=iX_HIM=;|tYinz8?(CVcIH*=32+RgI41}8(_T{4%YJCVB9cnq;a>VO# zwr< !f+9Or=efQr#&uA!UD+ z^dWkiBp#;fTZ-eeyque|G9<|Ia}6Xy1}%XY4)*B@A;0;HZ(4UExLH+_!6Y89FplsZ z?%gV0O*O+ndL&ACLh~=ELlY{0i0M*DYETdvK8Ocad;2LE^1+YM!kgy9f*a=Ilq)ay zI{`YxvSH&UhzfdzqQky5$*Kr8`^_SKF$$_jas{BH`&SerPNMwG6cNQ(G9awnWU_y= z^N^~1JblU}zd?A+&uPAMjdy3FNDmVK!Ts(&J9y9ls;}>djg3QL(SrH@BwM#W22Cs1 zdX0;WDqs_bAP%Tnv;fm2j5JNdEHR|VjCN~Kk||1%s~oBa)KNk4khETsFdb}MgP{`s zeYM658Q94WMlzp$R0vX%vWwv@(sR26Tdt^k(0hvT2%%(U64+wg;KVs+e2V!0vG*o$ zT2)8ha8<`7YV2;JiJ(9?CQ(3XltjP?jfxurA{Z4>*36fvENaHc>YK!gZ0fwPBa50$ zUUrw6L{M48Z6XaS;Fm}@3QiX3W>J%<-Kc;;pL&1y+ t9vc+V{s`OfD#NlX(Zwa431kPP=`kYb@Tdb%!I9&ANLsZ1~MnFzCwuz8H}I zPD03vmw;TEM+>qhBKoXJP&be<7mkU8vGV llFslX zjX~()Ab04N_i_QbOv2e^ v6+^#1I- zC%Z87vgJ?1J@?K}!pXj*pS4OHK~Lw8sjTTFkqMLq!mx bC4O5bb-%d(s{eIE?JG{HL?0V`^#J(UJ=2_W znmlC&a+v@r2rgwRA-(emQ11;0HR+H*f#{w+3B=_gk~@Oz8;ZfF%@9(N8)H553^&Xh z-XsdpA}JU}B4yAp 8jX?EwiDOhu%^JK72Mq(jtpadJZP1(ziN z80!W$O$imf1$g2l*`Lx=*Yi0XZM_uwTy!q_guAk`Qrx<22i4ZS;uON_=hs919kXC- z!;XZLVsBcX-sd_XHu~;WSN3=RB8w$*d6uns2I@9$QurQ(x;UQv+z?A)D0~j@uoGWW z^12^`BDbqWp&CU+*3wmj`bQQ5RCnvbhmIC` QWD_ixhpG4%YJC3wxX6XLQ1$|V(_N1>y#8F=^0FW$IHmgO9&>izMHQh^^7%3=LT z$^Ybfj7U;Z3ynI-cqEuAN`K&`U=)e#^5NrQCT-h?`G{*$crZb!X~YuSuOxZy@+$x< z^q?Z1e@Bw{44EwfynIHe@w!yP9s|IjmnyN&lR|4yR(6zY8s58CPwdd4o$I={dd+&6 zcIPbG8Z%*$C_RA~DNsB8(&bOnvK7x@>sH6Z__3on^EdiE`WGpc)oa#8$H%(5O)g=O zaV2rc#oSI#!L+RsOmaSyg7;fGadr#=4=HYh)xBF6>{!(n`t~``N1B{8HoXgr?teJ$ zM-wX$t(+1gNjp(`g9zMIix;a6fq`6@JZ&Z}y#Hb6?o@Sb4^yVj;Bpn}VF7^MyHsRJ zmjIy1xGX`9(%M8%J#|QLa73vHvA+iY97+IE0R%*?NxWN?GuK-PQZR}HKr9XdgB$ug zig7hN)%V2YX0W*l5N2wEiOEYX5@7hjR;5R=jQl)E3e)H^6KuJvOHg|ds+0}j^Yyu~ zCrrL=ymL{e-7yQ+JpUr3*hc1(02I{73*L{#lj0%;G-}L5_rdPnI^$IX<2ohLqV|>w zBuv}7y3Ni~so%N-H`Z--u2OBJV8ry|3S){h0xJIFluMh+R@l0tr7Lt4S3+y)Qv1WA zMv?MZw(Kcb_`qU!ZbcYFwL!-UGzX>~7^X95bq1`)WNbKHeP>JkHoCC)P*}Nq0XEcc zbC!zi5oDA1LbELyW^B~zHWI9@^fN pyVMN)f;g^-#_5lo7$ut2p4Voy`u8}>TWI~~oDFnS&l8f|8(>V{jlfWOc z9K@J1$mG}`j)Fl0FM(0lPlV^5e=z{^(l 32b==?S!>#-FTVL>wq6a*7gN<%erbY&TO^%)A!uUX>4#v5uky8~j9 zyhjSo;AoSyzLU^8yCD3uLH0hdaJs0-REQ=+fq2JTYT+;^g`^iULE#~-g{4SPf(qU; zA>oW*R>33294tGLg6gjF-8{qrQcss#JSG!gDHM}IESQ?`D~vB9+Aex++z&^=MZJ1L zzX2o2)8_pUb4eB|Lg)*#X^f;1j$|9=vKI ` *MV}u; z>U@DBOxf~^Au37)q!fg%wV{~%YByE~7gI!E0+5ONiFN7`%vGz`x%QlsCXRuz WhHilX&7Y-4%iZh|OEHNIr?As-?+Bk&$eT zI^$J#4TYh|Z@j}u$S(m7#oT5e+V6C(Z3B7mjf_F#2Wb$}_|VsUe<&*vXNf2~HcOkK zSE=UmG^CKBz!Z2wDoI2c%?Z0Sx%SusO74abD4X7W51Zb7&y7<7je5;zg&rAW;Di(= zqIuWSxHakTBC9O6rFv9%fs6Z`3mvN3L$mTyEH5wPO7E_GK>c=CSLNB7wUiXL4)kco zugPXJdFo8s^zt*V8CH$7p#Tep+8QiUOaX)E>;s6Ttq*l$)8Z#xVwHfmYP}5%Br!mn zW?7hS4HTLpv0+*NAOyUWww`EwVq=Q>4Gzh~W)l7eC`<+QiJ5evoLEpjZFKS;TjDA^ z4=iQc9iesWmacSSze|TlmIwoULJJGrGHnwjmbL~Kqko=b(&3c04oodCFT;w~$1{&) z+8whnt}5>_q7vS`8D&;wAyIm?0Jq%*uH&O|AM%i++&6h{@uLD&{VaZV!MvvcEU{tb z 4a|phW66piU0Wc&t{purUjo z(crCfZ&mS}*AuMh+T;^E;{)JK;}Kx8O;fu&YI-5NvO2#*nXi~IT@}Q_W;#DXJ0@+) zC*xISZ~V#fvQn2HGwse<4ioW-a3Gy6nbau9B$Y`VOZRS_sj5Re>~qn%(4j-Sn2fe& z9n`)2DonU#s_RAE(6HSpt*Zw0huL>efs6YO IE;Kz2^Qsr%>%TYcsk`yh1pZk?fTpL5~N>i&@eA<2LsZ;`NKoi%%|`(kys z&M^4uOJU-K(J*k(NLMq~c);GtQ$)NOv**F6k;9<6x(htJYOR?+WO^B^7HlY{2P;+e zGD#@cMv_P-rtt-p_Th;dil6@83@2j+7mO5)A_*}{8>2}ob!o*Rsq0{^i^L>MjB-R_ zA0@qg<)JCpz&~V9uJRQ%5I7Z_)EGe5Ho)+~BEaOIj(7Z!2OoNbEp{J P(DV^*d-YGS^|yb9g%3UrAMD!eKL1ttI`sU?*8#o)0G*P9ybAE% zF$DkXl3UeCAQ)LnFyp O9pIv(AdbsKQvH8xKd5k~(*N3p_uRGw8U;baX z RBs#E#?ppX(IUwbZ6L(L{ }QMDmr!x PaZ&v&f9(rI_q)Y%n z#l@u_0{f=lzji#mux1HH7RltPGx#{VUKzjW)shOTsU%S@Car_mC^(Rt+a)EgBn5ki zDom-8sHLK&J+V$PDl91=MS_+y;e zs*h}JW>H_)d~XO`^S!|^^t(5})~(yU(ZuB-!w_cl`_)$tfU!4^a*eK*KmN3UpJW-F z%Agf9S&bD{8M0)qvjt~_?5`dhv6c1}8J EKA|!}dpfT$Sz(kcic{sJp z+TchG91GwmDfc?e?~eZ;fGd|RfQb{vz?4WisESG;&)Charly^EVV|M!^LwVk#eJ8! zemSdZ)<&)lS4T6+d!PnIDv{da_557}rG+8vuv(pEHh{3xOm7>=L~ReS6p$j(n1=;5 z#as0tn5x?me@rH|r?Hc^D}iS!KU^UnC5K?A82E1ie~pjpb&=LHlYcrcCY)V5!U3Sb z{1so5iFguu;Oy#w190rkBjMr!!>FNQ2iO6iE{?;gf1 #sF!cHO%BxFS9K! zw>!DUpwt-Th50Ps2YBou5et>hK#)2rX`o5Xg2ayVIVKA8MV&9BmFD-a8}C@GvuDrs z-SiYlEOU!o0i|tlLGK|n_^JUoYUEJ3@1AL{8CTM|4;>SB!zS8Lw+U-EY$DF;X1~_B zH7aQ MnT8#L@1iMHb8a1&e8Qs_X$+ZL4vaoUnOOj95KA__-!Mk8Qss zHJ=MnvlNgb!GP-{TcNt&NyZF_t6~iWGZT~46z^Jq-U }=qOUt05 z;&>=8D{~(yFE52tPHqc*E;`pGyG{JjbXfEJdX5SZ$)Xk$Tu3Mtty(%vWbm*tvGu~k z7d2*ZH_~ohs-_ZG$yd1{@#1%X#QX>;@vi#OX879V J-_&}#@rpVMH9f>5*)Kt1>T2X$JHeJ;8*rzhtU1?d6>BL$>L zd_-3u0c#3?Ch5pNiea$^^(*_rcK1_jRGF5sra$w{&d~e9o~}MfMeCMv65GzWMWv^O zN7l!4&%a31@0 x0 zBTK{JJBJMo+n}OifSMY5z@WdQJzwRa#Gfy3R_e%b<>hW8f%^I#_`Pe!(=C%m;~mo{ zz!if=dsl^td3K&jT}cJni=k}pm*?D*&R<|V+cREMrqBVF0#YQghyfeGi3-Km1)_E1 zX|>C#RsoW2s=Wcpmy*}7yrMtccI!B}{eRDf2X4Ftwr<^SiwP0v)r}T`&}}JXtfWiB zCM#ml!2WpJ=@;+?fS~ajX8?&dYT(Xxxnz=_qQM%qq#cSh9AOonfFqa&uR&o+Y-)Lv zA+A>v#2VCLHOGq|s5cN4+KM5Tpmq$fmKrZs?Tw;uPZqshRdupUD75~DHqQdkQu1ls zuaV_>$Mi|iqkCtU4eeWrczic &z)~=Zgu={(RN4yb1i7PjG26%ug2LmpS*`F@kdsDFYt0Mmo%J#9rjbzBYco%? zhOOIO!kS}|ZrkpPF>ic%v(&L5y=*x#2f%Fi@xi)x>x`?PTkk0I);J>mzQT$0;nDcs zX(J4^Z@> kCA~F2P0u9QF(UBE%P8GR9Th3AQV6_%AmED=qnz0NL!-+VA5BA=w z$c?fYIJ7QTiiG|8o(l^WK5TCgnt7nCF?BzakBk{P+%c59CYi!&R|xYOfDJlrnM&hv z85x=sjl_IJO|#ctHV_d67@Zwtfk?q9lJspcp)v*bOBz!;e@vDQ8`-jM0F=${ee9f| zjV?#!TU~p>DW|lBW@V+k6k4}#31#J_(7N^U&h_bVN?Qkz_PcaAPXy4)fCEF6@(-e8 zxLg>6p6aW{&^eQ#Q$Wx3SCnW=)J?!h>Wo!&XzS{}`kb8lhHbEB&3c!~>mB)uR>!-; z)HiJBIHq@XDq6c7m-syZ4Pf~iB~V|#ojd0@D=Vcwea>|SkD?*hZQShs#aM!@M^;n_ zx=n~qvp4vd++zafr^-|JkIP+kWo1j}ntJdQz;xP35z34tZ>_3X3m5l27gCms!ki&2 zlw$EKu#q>du@O9!W;R2iEHYIM?OFgRBvT}jf>9&@Dc(Txs$NX22DD TQGK4ygT6 z9AN+nrebhX-vnH~``kLx3Tf;QN4ik2iul+tLUJ)EYA^9?QD6qy)H3IU0F69ywbK(D zKkWCYsqR-xRaJXe7`m!MyVUU;w(fxOlcwOZ< 9? zW#Coi9w@_K*I1U;tf0E$`FjTllg5uR1T(eyhq{~4v;vf1-Lo}oT>+%E&p(P6Tr?z7 zgvh?Ou&dE9q(R|H>9x<-tub@uX1hLT3TOuj6v)ITB1Io63@Io@q6G~XOP&sK**VcP zHVSN$?EEqW(+>o-U8(&lMTb_Fc>;!&m6gJ{M2TGToe^w;lNvMvnB+a3)fK(EapNYu z=6iz!I&``-zQtQ0G`@wGmnb7wPg+^qgoJ&1^>n-P{SPdL+KvBBJ9jo=d081;cg+xI zN!&AI3Upj^eq@=r`l;33x zq4SRn^WNyJLs;ya06ap5Ljp1t+B%3?qggb@I4Sp{48|^zC~d zR(J2>xFmK?sT(WGoJ|{5Ns}ML_pcp~qel&cCsr(g%dZ^i8k8#w(Cc?qFpZM32qbO` zKRzFrM}DFRV6Zwpchuundq>s=d*G#@6bZ_WGVQH^A+q?{NV_6oXqesIn*yE=t*fNR zM*~w1RRNvMaSEPxv>4|9;%->J;%PYh{L7%Jai^aj1e#TvX)()g*syJfTf~v?odCIk z4pCOHTnd2-CrkWWO;N?N^qc%W_sxfU?wgP9JW|^S?tgFz)c)p4*8`@{Md!kz2bMTj zCtB>?&+G!C1i>wSaLVFc=-azztg#ZhNT1%$>~{(yx`wL;4REK3{=RP1M81@o)oW?? zJ@Zhb8Y-(eAzpc}$%n0d?R_Gv?NMe6sp8ej!@FbJ1h{SLOb9JRK>dP>WO>}hLq9U{ z+(&25n&;}wKCxl}c0IGdBe3z~mWh{yqRHfYs_b5sh0WAg+04v3Fon|G#r5dX6)x#_ z9(3&39!~9eGSoj`0vlHB`UI=%?<)n=APa<*YP}6vg&eKrw0B$1RZ|4&|7x6y!Mo z069xZL_t)L9P%Up%Q{d>qy#y+iv9Owr=x4WHw2daat@5XaS}}W$#mGc^IfLZ1CfLS z1j7g-H^4eB+Wpt8S?5|v*lSmtu72IxM(S2+AIF~%MZ*H1t7Nv*gM{LpM~lK$lLv5R z79&}@;%WD@V^upSFFy)=%i!+aIy*%XSuBy_sc3yXYq#p8?(5QJPZQ;G)YP;S{V|#~ zD+PN+$k8)W)xr3(#F$Dp15eEJwueGX_ a%ygDXv$9h1RuHOt&tvlNkLCPe@LV}kE`#wKWo-9VwrK_b zddEcg)9b&1r=C~{V@3~$vwC!m?`?reK`9b7xqP*F2+L1N6)y0LSwn7Y7lWS_D5#vE zVaO(>Kd;Bd1aXMJGVZ2Pc+LMe7|uTLJFw=t^}Kwgz8-5e~m31=+nEWD~8mpyi_?0@z1)t z&91IVBz=3I=Z@@q(9~_* |+s|G8y5< H);R}XMSjy$+>%cL UpR4986|?Uz`y>GHW2zoG;)1N(?&JZ&ml z!T <^RwWt@xtMCXc* z^}v5Dfoo!`#6&?glOL72 ||n{*tTsa6Whteb|$uM+qTXBxqsL55uWpUU#E6g z?OxTrYIRpPopfcwNVLdsf7oWm$ewy9x2c=!_0}R^@D;2P8-Pd_Nb}7DS?CfWks(e` z&qCv3*>n&qRr-Kb4qi-Z%&l@oP2Cf--)l7E`t~d%<@+QX1{f&NdhGtHi fenKFCY$?iwG*I+;xTtA# zKE0RCoMnCrJ!k+C)00{x=ZySTWDnX)vBqg vj`y?O~ zOKE;8tGY1%*>ymMcv;Nu0=dR%JL}Od5jP~qcbE>3?FMarNhlGfBL*StsC+7*bfG85 zP=n2`xL=S&+NiJ4Vy5|<>BMW4>ABs_=3qn4pk=$@+P_|AFUN(^ZfGq!lRyqli%gX0 zheq24wbNXYbWXl4A5>3c0R?wY @beQoUnZpc;gE8rmAv6s&Iw%Q|qEYSQ zaZodxznvVm@9lf@LpO&hWpU7{v07@UQML{H4>u6H-T*$S8%{ZF4s20`0;}vmQFwhy zm*1s(%idVL{dh3*&Ha1vaPlMi@>|wW7Ms(Oc8kfJxj|hy9XUHH_1|UF>PXsyD+%Y= zY)?bfk8{FA7W%jm@@!@&B=6&h^BsJf=>Wf0o8M=w&;U3nYuR6_rJQYOG%>c|dh|9( zlj9j8ue*~kKfP~uiQMluIdU!3(7&$aGk4wWy5N3NPXe)w1_a`gCL!l9Kn^ZBZ@@ao z``rD+ZS{sMkpt>Sn@@W^{O9j(WL#gqN?+ej4kPm!%+DY!@LP-Gk8$_^YEt6ieiyr~ zOy)Zv&t7b;sRCb7{Zhr-T=+dQoDc1eBxT_vVk(`D#nH(pn%vIj k&k+q1fiRJ`0|W|9vYPf-WxBuFQ=CNW!-?de5BCq u?}+>1+xRdF4A|GkC6;K*SPqgnY)FRM^mH_6EKUItri|h+I;byGhBn7`=(AzkiV0 z_lk*-M2>gzIW6%%Yu4Y*Nhl_a38xTBihXO?#lg8(fNdrxSM8J~!xKJ}Cz+{Lg|wSZ zg{V|4CD7W$jg;w0`aJkc^{SIm60KuZ^H?Duobh6``E)}6b+%rY2v3{#zOC)g+Z(sZ zEk7)?w Dje=HeUqal)wzG$Rptn}_opKk%5f?k6P^9!@oSzp?_$ z>4h&bZ6G0AmU02byBQtE7*>CHyB1`$tH|0{^sIRYA|hJcfcINcQ^{m*X2vfgxGX0% zEINN{rKr=9))4OXjRC9YLZ3^QTMwjA5FK7=I6su^at4j4V*{kRs2*^b%h&XVG(nBL zZbiVih^bUbE;sjL<#07{Sk0zgW-$Q}$s>p56`Kf~?QRr-4_kY(L{B6EJE8j&?WL3G zv{;-ySVpyLgzejd#|1Pp5V`+2e_=}II*&$~>Q&1Uk)vr4e|z8C*nfot?aqql1Qr)R z&sYaRQa~0+WTZCw*9kgYNRvR$ed3$-tLXd@QmL4K&>BfZ3)n=I!i10`oBcT(Sp_Ts zv3C2kDdC{(L%y6-`W^n7k;`Jt1ro0i&MI^>%$C2GKxj07$ZxIP*wuL0b}A_>`}&o> z8y6anjgK47uNqbzvCQ=mvzCoU_EbU%=3s+Osho~Fbyiklm` uLkQ82F)@A`<2Di^QLHa?_cK-4VI7GB_Iz7VcOm1LgUW02;CC# z+CY{;ta@q;6P{oRt<}23)%rLGXWBp5W=9sex;V#M;Rq3h%}NzYo 4-P3UBbI_X_FoSShv5kDEtU>Jekk?@pt`7*jLtn;Q(|90u-HEpH3;B#q;^>v@*I% z%dMsM`a^Hyk}f=4Ap1}JA*f~m8GMV&`Toz->|xGvAcZ}A>NepT?#GKH*z!5GI+Z1f z#UfVh)^J~uKbPAGTlRf6f@p82!KfXyqM_@8&(UsqA1{-|3!1{mf^6yg$+YnKM7?b8 zt!YT^e7!Wtq*rk5p+=FAalAwU9h)@9{jd*txa9sNy1m6`@LF)Mzn=2=qCMGPYk11L zqW+E{lZl4jUo4X&7Oz6A-qNi7l3oOm=sV0;GCV9A!So2pH^b7Aui+Pws04-d0MnP9 z)C5&b1Q%`ZhWDUts%$3o<`(nmceVB!<6>|--iw@e!XMvcJ^p8SV{3y@l#*NW39Y2^ zMUneMwvE3?)O6zSd1YM7jLMwV^ugl`4j?}6>EE7xT$Wwm5Fw*b|2pDK!#m+qboWhb zf7T&j@lLstvu&=84P>TORxR}3Mz^i6Gr@0SNy=-BdG?hJ;?rdOQPS>=pxG kl7J=wOHW>Ro0D-RIIR`kmhaxkAE?ksc;x)S)u*LhI2vS)jhWiu4BG^>0NZ3t zde9jH&23NHlt%s8eg~4=x1_2w;vtEN`uV3I?dP(R?5F~9WY&AP-ax%xSq}N5^F2O> zVtSF?)t@BLG8L2fpT|GI=j1=OuP?R`Dtw<&I#z12_+M_oCG%bLbA&rqG6-i8xEpv8 z+x!Z|&sOZNyh&9lyq-( !aNT> z*rLfb!s+)J-67SlOVd|bP}sU`5NG&JvpW?GAw+y_JI^)g`ZEAuUB|sbWtbJGur9Tb zq6?3HO-A`@?USVRRA9k5cN{mB^Bjh=4VeO7J9OaP=R9X8!R|A$jsIh`HeIii-DUHe zm>OsKXz;DE_9(VOe|n40_sg6-U#3<4ljG7NaIyQFedGRObEctvmVmZSv+I76w&Sw$ z++{%g&NXoR6SI@Qj(_N52g`GY7WI-Z&cwuXy_Lk(W+MULZC;|(!&V1uf#f7hv=-BU zmP5udy(j*C{vfT+^-e1W4c9Xq+9v_o6CVDP!t{LgkC9neNH=W-ZZB!;AG)Y0`Iq<5 zpHs#+3Uaezq82`|86?29OQOAwc1&Cle)t_sGEA^KtR!4;n+qH M%t^KZH zsGG8CQ=jSNSS__?Pg)mF!VNsE%gS%(^iVRsr~rf92C06a_i)J3Mi0ToDWrm<@iC+^ z6;g@GvwU@k0SeWK4qXu9V_=pLp1C=jLlWT=9#>}eDyatU))r1*#)Gpqe;e!Go-4Es zjL@Qlz=$jh9-d0_c)*LEgdR-m(-yucRU2%@%(6Y&XhEWd<4sIqC2+-|xnsHv&_??} z0JYLEZKj~mb?9CdB@jMa5p*FaZ3yMgc{NoLh5{f|)reHXqp`6Qmp>6c5mr6Q%FF4W zPJE$Kk_j;dYO=2T>P+Otd6?7?_sMV%Ohtc=Mcut5f|kk9$ui9!!o0Ne${Azt{z}D_ zsrA@ro%(F^xHzyU30%&jXvZFuy2blFiJ+Xy=nS$$0eJ-#YFz&cPxJ?P%OT`d(`0R3 z*XA&m5GT+B5d(6j)j3sk= uf8F1T=->CWFnt1~yMd~6*`ISte3sSwGZ zR8u8xRVqXJt~ y@7oQ*U)STxG)QR{iJc{ys7Z&ebSg3*qQH*oG*_Oe z+pJO;urzKD-YutXFnNz<3LW(i7@sNV)yN=)8r 3szmE~xEUO_i?+;)FhD>ifgO$f&s!|)m3vb|WB0ihSSP3Po^6M}cmTc>Y zGRrY`q~#>uz%8Ty$^`wTLYNs;Ldj&OEgAtUtF*opKKo?g-` @Mt`j-+?H*jE zpKXse5zs?6)qx2-J}h3q;U_99fqnzCr}rP}La)QJtYVny`cC)2#fGB14Xq mrOS$SWG}V_N)ud_@yv?_(@DMJ zJ-<#6WO_qoh-8eT*??}jiRL(jvCh&kaV|ZaykFX8@5atv+(+mznZr>F;Gd> I9t3fB$p zxxY&?Qb@Zlkt) LnfIm#4N9JGDq(C6 z+UU1a7Ro ($!|l~cFi(>hDz?cw!B*FRV9>Y+BavL32R6b&+-h0v({7zd}yce zue;9ld^?JJ07h6$!dHT{K8YPOnTzUUuZfaDzqE(s9+a0)Z-cwvhUui#?$kQvrCL`M zwcwcG?BS5vvWB!FpH2en{rn;*8`OfKN;N=L&41`$DoAyN e z1d&g^Pe>|cL?s6sbvd};Bb~{*R(KYUC-irQbrZOSU`;JI4;Pg>7)^$M<~hCkH=NDl z1VT1NzIdmSmwsc55rGjU24-oRI~p%PMv{O-URtO7srFc03&cVu0FfT=#f`l4R}=l3 zP~;s}t@)+5`Nm_+4!%U8XH8mF@3$Pk)NW=gZcaeMbyOv^u$Ru;Q>`%MCO-+xC))F` zCRMPqc8<>&joOodK{kU6st(H;ke0Kt6#K>GPr?%owPxJZYInR}OE!Pj+SK;wbbU1P zNm~NANgJh38_UdLH``o_V^l6{y_y+LxX9vVfXfckZJz0nW^o;_?23*nX|!C&a2y4) zaKV7O{Rg_+?n6f|fLBC==;I_5?u3fU2J>Y~x=5lq0vfHj*l_&5;aHJz+~e`{7Sh{W zClE{mQ!P1K+ZqXZn%v;b7RwuJ_45{zOp35=i3=k(d@mpgIDs@an5oYlukaS9B-~0G zcV_vWj&uF<#U{ACji#heIfJCdRq 59ViQ&^hf~24%0=9U4Xn)amN?Th~+bPbZoG-`wxqn()KtmE~ z5rI^OM)`Dwks%4Nj}S#zTX{jbSH9q}$v(@H$y@>Ag#Pg_o!yl=9QCU8FSG^Qbr3{5 zyZG{rFa=+Cu7}f=ZK|X(qcy=}^r;@~=1SQ+azKdp>V>$J2BonF(d<&$8cL~S!kNNb zEvOCcKO?%}U=;6kGva*)f8RUw!@qJHZ7$F;1gx|4H?T(HZDA3NauBdThExQV#>hqP zrgmEr);!fz<1L;f7Y-N7pQ_1^F1)aro|PO9NAF}We2Ar}G541x9yq^fWu@j@lo_a= z!}METpUyh?_sB#=7fE3+>$^?%aPAKg8*6$XJO8x&Ihd20#%G)x5(yZk%99pulrPs6 z=Nju80;dfrmS`!7Tu=yka1?UIRP1Zw0>d;3&mLh^{YF^(We4B>e3e&aw=9h+& I`hbjBUgEtltoU$XN61?d4W3h_Cp)CpctF0dgZec$}u2gFlH_&SPd6jx}V zzZS>lSZap9zLS3NsHt1<0MBM6ymywD`xGkF%3lL3!d9w}&)$0*NsH&XuKN{0tW1n? ztvPD;W4gMt%6f0m2(%jwJb>J*f>tE&s8i%XAO{SpBp#=`d+Ku|O4YMn70Ep5o;kzL zxBvp&;2 X>J+Vv2{$4k1NlrnJ0BeO~AzgMt}!Nek61C>W!a^`ea+Kvi!(HMUagw zaAN-{6;681*LVKJlc>L8TBVJ0qrug5wQ5L61@{FKXC))oI`;$dYYH){g5c}5Kkx43 zm%{fFR^3Q$R+xSY-)hr<6t*SNZ ||qetVSQ2{gFWVcdUZN*MVjBKalwT9I8-QJX0o`4WC>W{?w`&B~Wk>+}{VR z*}|%UQRLD~31Iuuj=(MRvqV(G2*c=8@MZi&lR%0NMBxjSQAUKNBv)jL=5ZVHv017_ zj%dT_SLjt5GKR48BX<*5^pg-U-YQ~!VR6J8>&lzM6jV^?l#C=7uA2|jIk9USED2=& zj{*nEpc3=ztSnS@;bN|~NI%oXiM#+!NYRmyx;nK6cYo24hxY?PA}AC%`DICfS_DHO z9-+Z@F{UFrLxqFH?kT^5W_;O%tSwMb1iRebOZrkwNnkG6!G-w=u0*f=%Uan7ML8y_ zDOiL31cG(!(D^_Ze1ZT5+gkL8E}bt(x_MW8&?pQ=Bc`RFwgt`R3jTs{>R*Aq_8-w) zTl7vxx@2&Y4oT_HMsXJVwJZ6KJG8a5-F+xJY KYBoxuPVrwFcsw@WbF@(3Bk;t z4goK*?`9&8!&Gsf@h#e5_ 57Ozg3v zYxWv;0~;?E)L?`eKxq7^UwC&i#)0tYKMx=aI+6AtL0T}?3hZtrae)Me?lDWN*{Wr( zO-C}1B)69L5=Cb>PSG7q@DD*>RLhu(@OTB{2*pwk)j@Dtep?zeKDj_|;V<6ac=r2< zlq2&<(9z)KFoPRm4^_NE9!?HQ%LVx$u~(PbX}85oP1-HjAgbcJ!1JYom*8DdOi5EH z_7d-1SuzZnk3U&3p)O*Y0N-yTMn%*1G{8SwTQ6 O$E5az z4>t{#{Hk)!kyL=P6H+%!0wqt#;vJ48n#*oM)^Vf+Z|dySo4AV02pNNb*A|*)?(fNA z ?Z%BTrIcx7wW@&i*r;!Y}!V$g?7Rv2tt7*;t-M>%35N z?eX#Y_GS~q7#IaouR^c^erV{lM3GSiY)rrMmX>Hflg=SrC;=ynlvcrR_Hb^Nnv^sF z+V@N2x?8;)EqjCa$JW*(_Xv`_r)6DgZb=KuoQkmIoybiRaZfpgUbEd_L_RrgTBixw zc6@_b`1_qK^>i{l^15O^5GxeO-?eybIl@Kfb@fx>bZDuJ9Gj}MhJ@jN)hXbI-~6lr zs1R(J^#rJaXrw6G&?beV<1qxPl1vuDvtF&r7*H#i3MoYZM~F&ODpAb~qJl2zpQp5M zjdgWJN+bpg oXx_H%GCxiV-)#aT38wo}jL7_*@X4@s-(n^) ^Xo8FRxO6n=YZ~J0)+|FspxAqo{N5DyOA<5aZT52 zA7sm~8(MeAdEN>^Ug@NP;ppz4N7Z+$tC{+u3}Ookvyh@xJRN_zo466%|IV-v#zZHL zcGt8aKY6zdFL1_12Z0qquVEew)bX+5A~EUq;siKm_b$N!I0Lw|mU*tUTgjfzuZ`kh z%& ?RAI7{f`lY_jAKH FFQK|+ z#r-Pz4saC23{U0a=-Pr3c-x3Y)puWdzrOH9&t73e*0oko?+{jXF}@J6+ T}v2H7B2H^V6+I9 zbTFQj=62Syoqtjk8aHw(C!VQ};#9NRopTBVWG(}VIZRpb39ldtlH!@ZB$m2Dt6Vtv zZG3~(E Xch7oN1sL-SNiv_Yb zu-ed@DhkX-jKoJZOQ_uR-z(jLgB`K-YSvwo-&`OjjTDj zsV+QGw`=&y;CxO*QW( H=paS9r8 zuU5nIry<&^zF 1(S?A7@K)ezr-ZHJe@mTlSe@vmgrK)Qkz!AE zu!T(NThl5<=D(F@b-7}k6PDY;n7M}mDCYVKI<-i!1)w%{7vyZ6o`WO)XkuZYgr2fj z>=h)(CV5x;yB>U!Fmf^>H9n6JFQ VX;n@wJ#YQBh{TY()${9AY5^}Yb`Ert73f1P(fXIl4!B^y*g zrQ{P~@&q(QmZGL}$!~Zq*EV6!b+xR9W?q9?SE7Zg`^3J;Mz E%JaXxL@ z$`db)>;A_1@}?#qM9DGP-`(-u2I4 &=%#@guA=0GU4IPgO(ire!j9Be z=w!LVL4#wqs~X9l`y>5tVvly(+99>5NiU7MpNa!NqJPy{tT(Sq>zICEON$Z9nG(<1 zM_Q_--l!*v=>$Q3GQheGGi*7>cUf?f_hIRj*@Rwy2bV**WbDk_Y(1d>+0UN1zcoi0 zZixhz+|ljN=H^E*!GSM`1a%>|qZ`FT+mE*#ZoF9jx)3P%Fxozp(1QfRWQ|iANr6(l z9tGT)>`t$pMGjr|V;59HRhd%cey40%cW`W+V-j4b%;UM(pB{|<6pJHaT2~fpZeTWX zzzcpl&??%8tdTH_#~>!!vg7$&2O@e8-&CZyt2G2v1z>2m;u4gF|7C+LF=x>C90o zf`)f=h) BWADg{#aTTh|#Z~k6O); z2GFJ9TGF}ASbJ~Tejk`WB*e~lbU ;IWK{>Muk3Lz>v7bz}7ZfZy&X!`9C%c1)2V79A9}`(P_`vQcZa5iq{sL zK07Rt$!n|9d=Pdjy|X#b{SmBl&v5ND8Zv~jvaAlObL^1ad3Ho!5z?89#kOccxYYmY zVAgOFTS2eq=6A0zp}?gJj=Dj^O3Jz{?ji%T4kAdCE>orSMVGFHD-i7@cN*@n=;!eq z#z?U1Yvt$7V}4|LB2|3^ fQJR(w6Z3xC&B2I&Q z4RjsloEEOILKGe}sB<0mLw|RDV>p68M(eGSM)6~*?D^jqrNs8g6{)iBLLx~+?xv5w z=#a3xS&+BZ9--dL$@0*!z#zBs>d2B>JI$`4@jUD~VM~46!8%rsbTfcQqz+YbZo5Hv z;4)55c2Q(CZ(z;0 U;}vQY7VC-itfHK(-3_E`@P64X?1_AZTRXn4V{OQ|q@VEg zOLqNb`)hfhjGjBG##-<(lfUY4m6I~`yd91K8*Vlzosk(^HV)kzD5mi)I*jO&X;91k zq`}wL*C!VF+FD^e^kPYMqC~*t6z~D#Xn%k`zOyH{J$TQp9q(cD4?ppJ^d_DDi+&p# ziDL9Y99dO^>1|qIO1wGtAYArd|B&`Rp_^=Y5Z19z p&h_mfJBVob01PpP|xa%oxuJL#Qn={y4^2hh=8z#S)v*N?Rlkv zIW4jwbJx3qXi>-D@DB3hFJ7jr@Vk;{TcDV+=G974z=%3MY+C6X#pC;tKyPb_HmJDo zZfR5r+P#ot=;d3paO{9L8kc#`(r5fn)^1O$E_(+u?1mpu%|J+LQ+~ResthJb leeGy>k+@(QB4 zn@LP7j4g8ztmk*Qx_yfH&NxIalqDb~3yk)4|4xNjmkO#Df7`AQNVMTlhYf8;Po4R< zoTgVCZMRg! us&BT0s#v3Xf}I8xNpo zqS@KJAyH@SP8a{qVzX02B2A_gE@~@ddo7;zXVTiY$I0kx=`I~W*7K2QB!0jjD5o)- z#i`AUWy^iNy?eqKzB+-ZRTzywa)GV;`%q1eY1j+6e+=+JX}ZIeO@<`&( u0C*EnDG*7G)m7aFeJu8P&gXu_#;c+oWseo z6+;{sgl#$8^BVG-@E653r>T^q0>K&M?1W zDH}&1l<)%_Igm1EKZ1qFqhGbg%~a#vZ-Mtb_sLuwJp97$8>#<7e&9CYl$T>39#oIf zt>8U^U~MK<`jEfw3a_4|z-K4G%~!VU-U~N(1Fz)Co!Y?`J+Y%QbY j$F4YGO4Tn#{layk=9f8$OfGtN>0nyV z CVZ$4xa_z4;$t9PNNr=6* ZfzolGUx#r3GTkGc?^J0J{x(`Y*W01X3WL!<8aJ*4 z46f)6Z-w=>Zv*v{$EN(iz6F=IQcr?*+3!-@`YZ;IV{ps~2b91zfr#&pzim8aAuB{~ z6^(fXF{oi!kiz2VCO}93c#l|;%v+L#aZ?v}5vT)@m_!35Kx^I%56NN4;%zVnpBJ@k z+eWdJeg2Q`)`8e#ltXcK5GlIfN14OAw%-SxN7?I)%fUbS(k79PI*k_Zwa2FAO_ zFe|s~&{Vs4Qypue#j~A)JnS}q==oD}RAIPsNl1wLA+?su(^*CvQzOCgj1>*G@drHa zPaAwd4`!i&2%#8yIb%v8p4ma9Afm4)vDBL4YUpG3Ukk5A-1um>{8PD;D^C*Uho$G$ zJAmyUNoc$F-N3AhEdgr1|05AUTDz}E+z*%A_2=u`4X&>ypzqQVj(q`Kg_y7xCGGX+ z{q#43)6%d3#X8ZoHzBR@> PH z6N4g6b@-tHg9{F0#3h;@=AGcGKUayUJ+NqD{(y!1#Eq#JFFe){2}N&G<>w4J1qPod zg^*w8Mvs`YskU;ADi-n T9Xmqd(J0Mh_+X?U5hgpOM@?Q3!m}4>3@FdXKv2Qj)16LJ^~%PDxTx) z${ONeWtBr*)JapIAPWatBwozChf*q=#XTYyQSUM6NIIV}K#juvoHYLLcr+BN>eG%| zOze)ij`8E*@_E}onQ=PEMQhJ`A$O|$J!;`D2?k05hO@lkn@P1o1YRRZA%pUsgiInB z4mtkp`Hl0B{4iFaFqX)Kp^4csLJ@3HsB9u+#NB6@m5;yy3e>`Dxxhsw zq#M|DphtN@fr3CNGOEaEF<*$lQ;wTO`4PN^08Z8|Ab`1_$l>%e6pr-KjvQ!EATE|x zt@gd IN=F($~sNI@k(c$rWKhi)zlXk6FU!WToCQ z Ob2_pZ)SjeQWfwiFuZ^yOz43$fA* ;B8I&$WCVKLf^?a+6NbJ9f+YT?#KtWYTs9H0hW!hr-RT{%x#j739~_w;Sf(Hl z-9~ZQJvgJx;)LS;ZSn&oRiD?4z=3fj`0P@i>pH!_cGjQEHuzXqnO6r*jV1G qN !9B z0!wF#B>)3lhZw2$NTQ5FA|F!dA!n39H!2i{{i1QEC}qxq1>~%Ju$2f#>~4UQ0-fZR z^y%#O*Kia=>HO6w@k3A~U)S$o0lR@V0k+9 7XB=; z#gg{|=J6%75!X@a{!ZPL(N06ewA^xAkRtF!e-HyXIR_)yJ;YZGssG$@#&~+EV|M}r z1HncEli!hjlc$ RsgG-!YR^)c>Kk z!4Ogl8ZZ5-o+JdZ*@dvyfManbU8jZyq$nz$%URBj?h;e}5}?1|0^$ldrI?tbzp>v< zA}0PZ*{-342#f~_2g-nU?_M3$zXcWKf{=4k;;p(|=N3vTv|xkLzMFeX_qit)d*hij z@p9pe?<>?C#t{CJX!~jzBI>y{;L&u 2(IfS>nUo**ycClW>Ah*a8~w zYx@RbeM}Jh72{4CV4DD;R4%~+SeYsi$TcYyR({act!9Hflvgp!dUH2v@euEDaZ1UQ ze>H|nPc3qs2NU6g4_`r|5fO#{#(IZvO&niDU!6xO68~NVCBO=y#=!gVY9zt3NJ0-0 zA;GC;RMCf$G!j)zsHnVf6eQKt a8E98he9;vT1GHGDu*4WL%z4T_u_{@pzp7xRe8D^K+RP!GV5q zJ_)r#cx7TgKd-eq{|A|)+tL>^MFSV?SkBANzp3+CYY!cffiP$r6(Q0I5PR?yGX8Af z?FR({Smq|pP-tppX799r(f)I`E;UU8Sn6l5yy^n^N20$LS{#R=(B{%_P8ukj#SWxt zz0vri&cmup9A%QkWsyqAFgeRDSVo@DH^b$&X@6j(gh<}ckks34*y+9|5!AAxb)fHN zl?Ojz%G1No`#7N_gh=XMe{E=_T0i9&w*DEOD3^46P^8yCNe7Ojo(%Zy#Eo{{BsSLY zA<>>4^{iia8n~0CFk!_h0CqKJTA68vDe%ohn7}X!sl6IgX4Y;mT*Wls&18X7g*fTc z#cippDbV6rSBNZmDLBp4vJ33MN+{kj G6 ETz=-~7AmBfC8B91Q9ByN^o?`J22|_Ox>oUE z07J|#Qde{3KehR~4`)_(GN1)Wp4*u20r@xTm0eX%Gx<)k1OenfV*8xdbdZi4x(V)D zn1POA{V#vvCjOVddf@%EcOQf#C1H;oxfa7V0xMDGhFdx*>?69r-wThj^heUscTN~F zEiOYdfZ;Gxek$SF*_7WDwCntaTD#z*B(NDRk$Kp#cs;c1F)7j08xTS=00w=! W&b}|8zS_qDvl2>TJ_%Rwe;9D+; w z3SuXZDIT-Jg{B$?6-`1uFl0N!lBm$s5vjll5RnK>gPK6R&kqLL5M#c(y^{N9rK4B} zoc0k3)Ix4OBvqYMKWN3o07)GQZ1;F6?>GG(gZ8$H5rCw8jKgaha%fKwF={DABwwII z@-d32ax{UHoJx#(tRw|!KuR& Q2MPl6{jH(%t8;N!%@YLplN6H^ Jtrpe~{6D#rDq;Wt literal 0 HcmV?d00001 diff --git a/docs/images/comunidades/clara.png b/docs/images/comunidades/clara.png new file mode 100644 index 0000000000000000000000000000000000000000..efd6ac67f3253b4f72c369ae8ff8eea2d0631781 GIT binary patch literal 24343 zcmeFY`9E9R_dkA29jV?9rW&r^($-kCT2u5^2Wo1~Q>dn?G3J?|w=Hc^ttr$H+M;SI zBE;M(T0vA05)!J!6hROY!{_wg_YdEH;rn>J@>|Y1d+oEHd#$yfYps2r-!Z!-bV%Y5 z002TphSx0sV1FzC@LxHw54UK&Qzo8e_Ms|ERGvzoVkHjnbohUzT0e&G%-78 zt*Z5xA)LSMz?WHTVX;T2{`ynwk ^6b0RD$syx;!#bqOaC-Tpi=KD$Kk z`t?@d^5(I}#f@_YR&YEu1)S!8zyBfdKLq}V!2b~V9|HeF;C~4G4}t$7@IM6p|AD|I zt|c%#eyj55l&wp=!FE?_>+Z$XPBybT2G5>eV8(CKODnl&UD!PTs-t4YE0!;u{Cqs+ z*N&I-*{JxaD_N1stq*S>KvnLAO%eWms7>4u;KR6mOB>svq%z|%3u*_QelpEl_WyhL z KNA;(J3oraT5NI<^JHxb%ACdg&azAA8$O@up-s8VJ zu?eYb&CcqZ5KFH2|6QpG_hvR3IT{V-rF@o~gYf@%dEz>(DC28uVfhmeLY3B6h5xPs zggYORws#qhk&EiJ&!l<(ySf~gve}&ANfViZSk`L(ckPp(jN9!$Z*OB|vfYJ+{=1fN z@n$yN87BJt-hcn?o~RvbJ@)y(KUayJhTFIK|J4rwOi!sZRw&orS~zKjy#6 yhQEKYr4rzkdXq(UWu^bF02LGX51f;zWbTK3 zzw=1&nS}F^J3a$8$L?aJ8VwTvwT4(ljy`XH>&nr+siS+L6A|5S9}j`+c;r7B7btZe zrJh!6;*IVH{|}0@r;e-`lW!k;(eiFlulaY%3II;8MEb8LLv+6GojQpcoZjmR^2r$P z-*fp-NUU&!v7>dt{j914f&Y8H4b9shZ(+UFF57wa)JFW~_R-e=Ua{}`VfXy~?XtUF zvXCQ~cS;VMF-KMi2HSi8y{yI^9zl#xkJT3UZa#FuAnN$N^Km9q!(HaP+cM#L8A60j z-$fVXPFJeF{%-An{RI2>8+ 63=51)%su0hC@5{V+ziMbQx?bTfSwhjXIX5@Ka@e z(rszJznA0c cAA$zdvVRAb?q_ts_b*w&-*Vg1(+;vz zws%lRbGuYXh~tN&?8G0pXn&nK3R-Jqch%kKRvC3=ti*rDDSAhq8e`;meD+$;^ORVR z=8s1m*caz0-OW?Ss-8di&w|{}Y$;|)q_p`V;XU>@2H4Q5=LoUiQvsQ--v*D=JvH)| zRry2i;I@6N@hRaI1jm;dRWSl5XSg2t_bFZC(eEy@(o;8Ljm6%PLw&s8D*PUvFA;O- zYOXW|BFrPb! ffy*^>RCumSWpF;#gf2NY@XF(lo^pl;^th8* z_`^+g%q-h>Wd?1$%^Gr{=x=#(#a!$%WP=mo6oaTgfW8@3o)6|(iK@bAgZe^-Y)i~~ zFnX>&ZO7d nwC)m2MS0FcCJjL;G0MK9C)lGA(t8ofgR5vYaCA{*u- ljKc|mLLmWI^3PJ*?G8o!S(O1mN+T8{~yzcTzb?;J}+ z|AF>pNP_=!O`#I{8!|r-TahmM!9f~=5^I!X|7>VkC7d =;yI87}#{9`EH&TKIi6~rpCVcy4!jrf;<2Od70fv&Xk#k z2Y*}9wB>Alm4S(-(v~5mgO*ux&a^r+#=Q%_bfvC^XqhFU-(}thMXLONMC#n7R$b1@ zGmgKC3@M>UjPl3UZ~}pOKa@whQXLCgw3GO9{YL#$S>oXoq{(D*rwOSOX@VJg_$}?L z-o{8;3|7*T!F=S9sMZO{*ieT$O$ZRVA2xZ9yT61IE)L#12@}6c0?k_@D$C=>rMmT3 z#6{sMp}GqXJk|D@9QTG_D?f9n>rRbz(ZT*kx9u94R*qYIo6L@MeXeLp!U7NZPM%ly z7xt>R<*_fNVV#p9o~Q7@6^(=UCWbo=ngr`Myv#~>k!zOq>1vh(hcn8Q&M2h1Ya3zS zomnJ>$LMg?Q%Q0DH*cw&;Dh}LQR(&fHE6DubNHXgAgRvXmoqonvq8t+>IePjTj zLG1zgINjy#R nA{qK QxHmevO?TF`ipbAr&EzCBrReO$k-1z1w}=oYZl@PFmziNfw_ z-5&BK9Iu)VRUE1;G`?Bly{lAg`a&>kNobnp;?_VTac~Uvq_Z^V%{~7_^~pWFK#a71 zlrF!I7b>D6K0u$e^E0B`4T`T4MRuti`|Q;Bs-cgqo>9&VMw9NA!b^I7Dtgg9x}{DV z^y7qt)t?vnIhyZjA8DpVXBe6IIz4Ii@kW{IG6DO>oEiVt7Mo}S^`(8dPgC+!voWed zF!WTN_v= 4oiZ5Z|s|xWn 6z@U{Ni@C9=UY>_>jT;icyjO6H1um;Z8B(`m%U1Ku?{fyDISk6Q{d>A(a({Iu_~) zx-b -mDT`G+5J6kZpd+e7`@#IOEIohHYVl#xY*B&f riw3C*-u1d+G4x{V+3)U%}UqQR`Y28cE{W9~!7PvYloe3tIxYZ~$ DOq)!^?a&5+HdW?p?-O&%< k#)BTf!6>=qCMmafgaL)q{lc zScr(UEh7?wue{&6KBH2n@j&bOgv