Validación y transferencia de conocimiento del modelo inteligente para identificar y especificar microservicios (microservice backlog) a empresas de desarrollo de software del Norte de Santander.

La arquitectura basada en microservicios permite implementar una aplicación usando componentes independientes (microservicios) que se comunican a través de protocolos ligeros, permitiendo mejorar atributos de calidad como la escalabilidad, la mantenibilidad, la tolerancia a fallas, el rendimiento y...

Full description

Autores:
Vera-Rivera, F. H.
PEREZ GUTIERREZ, BORIS RAINIERO
Puerto Cuadros, Eduard Gilberto
Gaona Cuevas, Carlos Maurico
Tipo de recurso:
http://purl.org/coar/resource_type/c_baaf
Fecha de publicación:
2022
Institución:
Universidad Francisco de Paula Santander
Repositorio:
Repositorio Digital UFPS
Idioma:
spa
OAI Identifier:
oai:repositorio.ufps.edu.co:ufps/6693
Acceso en línea:
https://repositorio.ufps.edu.co/handle/ufps/6693
Palabra clave:
Rights
closedAccess
License
http://purl.org/coar/access_right/c_14cb
id RUFPS2_129dab14b0e0eb9411672e5b3699f860
oai_identifier_str oai:repositorio.ufps.edu.co:ufps/6693
network_acronym_str RUFPS2
network_name_str Repositorio Digital UFPS
repository_id_str
dc.title.spa.fl_str_mv Validación y transferencia de conocimiento del modelo inteligente para identificar y especificar microservicios (microservice backlog) a empresas de desarrollo de software del Norte de Santander.
title Validación y transferencia de conocimiento del modelo inteligente para identificar y especificar microservicios (microservice backlog) a empresas de desarrollo de software del Norte de Santander.
spellingShingle Validación y transferencia de conocimiento del modelo inteligente para identificar y especificar microservicios (microservice backlog) a empresas de desarrollo de software del Norte de Santander.
title_short Validación y transferencia de conocimiento del modelo inteligente para identificar y especificar microservicios (microservice backlog) a empresas de desarrollo de software del Norte de Santander.
title_full Validación y transferencia de conocimiento del modelo inteligente para identificar y especificar microservicios (microservice backlog) a empresas de desarrollo de software del Norte de Santander.
title_fullStr Validación y transferencia de conocimiento del modelo inteligente para identificar y especificar microservicios (microservice backlog) a empresas de desarrollo de software del Norte de Santander.
title_full_unstemmed Validación y transferencia de conocimiento del modelo inteligente para identificar y especificar microservicios (microservice backlog) a empresas de desarrollo de software del Norte de Santander.
title_sort Validación y transferencia de conocimiento del modelo inteligente para identificar y especificar microservicios (microservice backlog) a empresas de desarrollo de software del Norte de Santander.
dc.creator.fl_str_mv Vera-Rivera, F. H.
PEREZ GUTIERREZ, BORIS RAINIERO
Puerto Cuadros, Eduard Gilberto
Gaona Cuevas, Carlos Maurico
dc.contributor.author.none.fl_str_mv Vera-Rivera, F. H.
PEREZ GUTIERREZ, BORIS RAINIERO
Puerto Cuadros, Eduard Gilberto
Gaona Cuevas, Carlos Maurico
dc.contributor.researchgroup.spa.fl_str_mv GIA
description La arquitectura basada en microservicios permite implementar una aplicación usando componentes independientes (microservicios) que se comunican a través de protocolos ligeros, permitiendo mejorar atributos de calidad como la escalabilidad, la mantenibilidad, la tolerancia a fallas, el rendimiento y la funcionalidad; cada microservicio se desarrolla de forma independiente, en lenguajes de programación independientes, base de datos independiente y funcionando en su propio proceso (cpu, memoria y almacenamiento independiente). Definir el tamaño adecuado de los microservicios que hacen parte de la aplicación es un tema de interés, la granularidad define el número de microservicios que hacen parte de la aplicación y el alcance de la funcionalidad que van a ofrecer. Razonar en tiempo de diseño acerca de la granularidad es fundamental para la toma de decisiones de desarrollo, pruebas y despliegue. Para abordar este problema en una tesis doctoral se propuso un modelo inteligente de especificación y evaluación de la granularidad de los microservicios en tiempo de diseño usando algoritmos genéticos, procesamiento de lenguaje natural, similitud semántica y algoritmos de agrupamiento jerárquico. La evaluación del modelo propuesto se realizó en 4 casos de estudio, dos del estado del arte y dos aplicaciones de nivel empresarial, teniendo resultados prometedores; pero esta validación no es suficiente y es necesario validar a nivel industrial e incorporarlo para que sea aprovechado por las empresas de desarrollo de software del Norte de Santander. El objetivo principal de este proyecto de investigación es evaluar la aplicación y uso del Microservice Backlog en la industria desarrolladora de software del Norte de Santander; para cumplir con este objetivo se plantea una metodología basada en la investigación en la ciencia del diseño (Design science research), el trabajo se divide en 4 fases: 1) Diagnóstico, que busca definir el estado del arte y de la práctica del desarrollo de aplicaciones basadas en microservicios, para conocer el estado actual de las empresas de desarrollo de software del Norte de Santander. 2) Capacitación, en la cual se transfiere el conocimiento a las empresas por medio de conferencias y talleres de demostración, se seleccionan los proyectos de evaluación y aplicación del modelo inteligente propuesto. 3) Aplicación y evaluación, ya con los proyectos seleccionados se obtiene el diseño de la aplicación basada en microservicios usando los algoritmos inteligentes del Microsevices Backlog para ser comparado con la propuesta de los expertos de la empresa. 4) Divulgación, se destacan los beneficios y dificultades del uso del modelo inteligente, se realiza el informe final, artículos de investigación y la socialización en ponencias nacionales e internacionales. Como resultados de la investigación se espera obtener una validación más rigurosa del modelo inteligente propuesto, lograr hacer una transferencia de conocimiento y apropiación por parte de las empresas de los resultados obtenidos en la tesis doctoral, como también que en un corto plazo las empresas puedan mejorar su productos, procesos y servicios de desarrollo de software. Adicionalmente se pretende hacer alianzas estratégicas para realizar asesorías, consultarías y participación en proyectos de Minciencias.
publishDate 2022
dc.date.accessioned.none.fl_str_mv 2022-12-21T21:23:28Z
dc.date.available.none.fl_str_mv 2022-12-21T21:23:28Z
dc.date.issued.none.fl_str_mv 2022
dc.type.spa.fl_str_mv Propuesta de investigación
dc.type.coar.fl_str_mv http://purl.org/coar/resource_type/c_8042
dc.type.coarversion.fl_str_mv http://purl.org/coar/version/c_b1a7d7d4d402bcce
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_baaf
dc.type.content.spa.fl_str_mv Text
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/workingPaper
dc.type.redcol.spa.fl_str_mv https://purl.org/redcol/resource_type/WP
dc.type.version.spa.fl_str_mv info:eu-repo/semantics/draft
format http://purl.org/coar/resource_type/c_baaf
status_str draft
dc.identifier.uri.none.fl_str_mv https://repositorio.ufps.edu.co/handle/ufps/6693
url https://repositorio.ufps.edu.co/handle/ufps/6693
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_14cb
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/closedAccess
eu_rights_str_mv closedAccess
rights_invalid_str_mv http://purl.org/coar/access_right/c_14cb
dc.format.mimetype.spa.fl_str_mv application/pdf
dc.coverage.projectdates.spa.fl_str_mv 2022-11-08/2023-11-08
institution Universidad Francisco de Paula Santander
bitstream.url.fl_str_mv https://repositorio.ufps.edu.co/bitstream/ufps/6693/1/Formulacion%20proyecto%20-%20Microservicios%20y%20TD.pdf
https://repositorio.ufps.edu.co/bitstream/ufps/6693/2/license.txt
https://repositorio.ufps.edu.co/bitstream/ufps/6693/4/Formulacion%20proyecto%20-%20Microservicios%20y%20TD.pdf.txt
https://repositorio.ufps.edu.co/bitstream/ufps/6693/3/Formulacion%20proyecto%20-%20Microservicios%20y%20TD.pdf.jpg
bitstream.checksum.fl_str_mv 5e7d472bb8f3c680a0b348475e928380
2f9959eaf5b71fae44bbf9ec84150c7a
8a7801bc6303d14147b54d43a9e9e691
a76bcba3fb69de8ffa595f28d31e829a
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Universidad Francisco de Paula Santander
repository.mail.fl_str_mv bdigital@metabiblioteca.com
_version_ 1814095050655662080
spelling Vera-Rivera, F. H.a34656f3f9e04536f6ecaf2543a75b4c600PEREZ GUTIERREZ, BORIS RAINIERO99eb843d4117f9d72803d9b802e06cca600Puerto Cuadros, Eduard Gilbertoc201373dd70e4d814c3342495d100a21600Gaona Cuevas, Carlos Maurico7599a659bae6cb26c976448a01f39c3fGIA2022-12-21T21:23:28Z2022-12-21T21:23:28Z2022https://repositorio.ufps.edu.co/handle/ufps/6693La arquitectura basada en microservicios permite implementar una aplicación usando componentes independientes (microservicios) que se comunican a través de protocolos ligeros, permitiendo mejorar atributos de calidad como la escalabilidad, la mantenibilidad, la tolerancia a fallas, el rendimiento y la funcionalidad; cada microservicio se desarrolla de forma independiente, en lenguajes de programación independientes, base de datos independiente y funcionando en su propio proceso (cpu, memoria y almacenamiento independiente). Definir el tamaño adecuado de los microservicios que hacen parte de la aplicación es un tema de interés, la granularidad define el número de microservicios que hacen parte de la aplicación y el alcance de la funcionalidad que van a ofrecer. Razonar en tiempo de diseño acerca de la granularidad es fundamental para la toma de decisiones de desarrollo, pruebas y despliegue. Para abordar este problema en una tesis doctoral se propuso un modelo inteligente de especificación y evaluación de la granularidad de los microservicios en tiempo de diseño usando algoritmos genéticos, procesamiento de lenguaje natural, similitud semántica y algoritmos de agrupamiento jerárquico. La evaluación del modelo propuesto se realizó en 4 casos de estudio, dos del estado del arte y dos aplicaciones de nivel empresarial, teniendo resultados prometedores; pero esta validación no es suficiente y es necesario validar a nivel industrial e incorporarlo para que sea aprovechado por las empresas de desarrollo de software del Norte de Santander. El objetivo principal de este proyecto de investigación es evaluar la aplicación y uso del Microservice Backlog en la industria desarrolladora de software del Norte de Santander; para cumplir con este objetivo se plantea una metodología basada en la investigación en la ciencia del diseño (Design science research), el trabajo se divide en 4 fases: 1) Diagnóstico, que busca definir el estado del arte y de la práctica del desarrollo de aplicaciones basadas en microservicios, para conocer el estado actual de las empresas de desarrollo de software del Norte de Santander. 2) Capacitación, en la cual se transfiere el conocimiento a las empresas por medio de conferencias y talleres de demostración, se seleccionan los proyectos de evaluación y aplicación del modelo inteligente propuesto. 3) Aplicación y evaluación, ya con los proyectos seleccionados se obtiene el diseño de la aplicación basada en microservicios usando los algoritmos inteligentes del Microsevices Backlog para ser comparado con la propuesta de los expertos de la empresa. 4) Divulgación, se destacan los beneficios y dificultades del uso del modelo inteligente, se realiza el informe final, artículos de investigación y la socialización en ponencias nacionales e internacionales. Como resultados de la investigación se espera obtener una validación más rigurosa del modelo inteligente propuesto, lograr hacer una transferencia de conocimiento y apropiación por parte de las empresas de los resultados obtenidos en la tesis doctoral, como también que en un corto plazo las empresas puedan mejorar su productos, procesos y servicios de desarrollo de software. Adicionalmente se pretende hacer alianzas estratégicas para realizar asesorías, consultarías y participación en proyectos de Minciencias.La metodología debe reflejar la estructura lógica y el rigor científico del proceso de investigación, el enfoque metodológico base de este trabajo de investigación es “Design Science Research” siguiendo los planteamientos hechos por Hevner y otros [45] para la investigación científica en el campo de los sistemas de información y el desarrollo de productos tecnológicos. En la tesis doctoral se propuso el “Microsevices Backlog” que corresponde a un modelo inteligente de especificación de la granularidad de aplicaciones basadas en microservicios; el Microservices Backlog corresponde al artefacto nuevo e innovador que se piensa validar y evaluar en este trabajo de investigación. La figura 4 presenta el modelo de investigación propuesto para este trabajo de investigación. En el trabajo doctoral y en el artículo publicado la evaluación se realizó sobre tres proyectos 2 proyectos del estado del arte y un proyecto real de la fundación Foristom. Ahora en el presenta trabajo de investigación se pretende realizar una evaluación con la industria de desarrollo de software del Norte de Santander, con al menos 3 proyectos reales de estas empresas, pero el modelo de la investigación sigue siendo el mismo. El proceso de la ciencia del diseño permite construir un artefacto, el cual se va evaluado de forma iterativa por medio de casos de estudio y análisis dinámico y estático. La construcción del artefacto se basa en el ambiente en el cual se desarrolla, el ambiente en este caso sería: 1. Las personas involucradas: Equipos de desarrollo de software, arquitectos de software y líderes de proyectos, ahora que pertenezcan a las empresas de desarrollo de software del Norte de Santander. 2. El contexto del problema: el cual comprende el desarrollo de aplicaciones basadas en microservicios, a la definición de la granularidad de los microservicios y a migraciones de aplicaciones monolíticas a microservicios. 3. Basados en tecnología, como son los contenedores, el descubrimiento de servicios, el monitoreo, la tolerancia a fallas, el despliegue continuo, la computación sin servidor, y otras; las cuales ayudan a resolver el problema y mejorar el artefacto propuesto. Adicionalmente se tienen unas bases teóricas que fundamentan el trabajo de investigación, que son las propuestas en la sección 4.1.2. También se sigue una metodología de desarrollo y evaluación, que consiste en: 1. Describir el proyecto o caso de estudio en el cual se va a evaluar el artefacto propuesto (El Microservices Backlog). 2. Definir las historias de usuario, las dependencias entre ellas y establecer el Product Backlog. 3. Obtener los microservicios candidatos usando el algoritmo genético y el algoritmo de agrupamiento semántico, los cuales son parte del Microservices Backlog. 4. Obtener los microserivicios candidatos por los expertos, arquitectos, o equipo de desarrollo de las empresas participantes. 5. Calcular por medio del componente calculador de métricas del Microservices Backlog, métricas de acoplamiento, de cohesión, complejidad, rendimiento, similitud semántica, y tiempo estimado de desarrollo, para poder evaluar y comparar los microservicios candidatos para el proyecto. 6. Evaluar las soluciones propuestas y el proceso aplicado. 7. Realizar ajustes al Microservices Backlog de ser necesario. Este proceso se repite para cada proyecto de las empresas participantes. Al finalizar la evaluación se obtiene el artefacto probado y validado por las empresas desarrolladoras de software del Norte de Santander. 4.3.1. Proceso de investigación El proceso de investigación define las fases, actividades, métodos y resultados que se piensan logran con este proyecto de investigación. La figura 5 muestra el proceso de investigación que se llevara a cabo. El proceso de investigación consta de 4 fases: 1) Fase de diagnóstico, 2) Fase de capacitación y demostración del Microservices Backlog, 3) Fase de aplicación y 4) Fase de evaluación y divulgación. Fase 1. Diagnóstico En esta fase se estudia el estado actual del desarrollo de software en el Norte de Santander y específicamente del uso de la computación basada en microservicios, adicionalmente se realiza una revisión de literatura para establecer el estado del arte y de la práctica. Adicionalmente se realizan pruebas y mejoras al Microservices Backlog y se despliega a producción la herramienta software que se va a usar en los casos de estudio de las empresas. Como resultados de esta fase se obtienen: 1) un artículo de investigación que detalla el estado del arte y de la práctica del uso de la computación basada en servicios en el Norte de Santander, y 2) El software del Microservices Backlog desplegado a producción en una instancia EC2 de Amazon Web Services. Fase 2. Capacitación Después de realizar la fase de diagnóstico, se realiza una capacitación y demostración del Microservice Backlog, se explica su uso y funcionamiento, con el fin de seleccionar las empresas interesadas para aplicar los casos de estudio o el análisis experimental. El resultado que se espera de esta fase es la selección de las empresas y proyectos de aplicación del Microservices Backlog o del desarrollo de aplicaciones basadas en microservicios. Fase 3. Aplicación En esta fase para cada proyecto seleccionado se aplica la metodología de evaluación, que consisten en obtener los microservicios candidatos usando el Microservices Backlog comparándolo con el obtenido por los expertos de las empresas. Se comparan y analizan estos resultados, se identifican posibles mejoras al Microservices Backlog y se aplica un instrumento de evaluación. Como resultado de esta fase se obtienen los resultados del proceso de evaluación, también las empresas de desarrollo de software de la región obtienen una transferencia de conocimiento del desarrollo de aplicaciones basadas en microservicios. Fase 4. Evaluación y divulgación Teniendo los resultados de la aplicación del Microservices Backlog en las empresas de desarrollo de software del Norte de Santander, se resaltan los beneficios y dificultades obtenidas en el proceso de investigación. Se realiza el informe final de la investigación, se escribe un artículo científico que detalle el conocimiento adquirido y se obtiene el producto software validado para ser registrado en la dirección nacional de derechos de autor. 4.3.2. Métodos de investigación Los métodos de investigación y/o evaluación que se pretenden usar en esta investigación se describen a continuación, sus planteamientos serán hechos de acuerdo las propuestas de C. Wohlin y otros, sobre la experimentación en ingeniería del software [46]: Método de evaluación 1: Cuestionario: Con el propósito de identificar el estado del arte y de la práctica, en la fase inicial del proyecto se aplicarán cuestionarios a las empresas de desarrollo de software del Norte de Santander. Dentro de las actividades del proyecto se contempla el diseño del cuestionario, la definición de la muestra, una prueba piloto para validar el cuestionario, luego su aplicación y análisis de resultados. Método de evaluación 2: cuasi - experimento: Se planteó una evaluación cuasi – experimental, donde se va a analizar y comparar los resultados obtenidos con el Microservices Backlog con los resultados obtenidos por expertos, el equipo de desarrollo o líder técnico. Se calculan las métricas de evaluación sobre las descomposiciones propuesta por esos métodos a los mismos casos de estudio; las mediciones y comparaciones se realizaron sobre el tiempo desarrollo, el número de microservicios, la granularidad y la complejidad cognitiva de cada uno de ellos. Método de evaluación 3: estudio de caso: El estudio de caso se usa para validar en algún entorno de organización y proyecto real de aplicación, o utilizando un problema real y planteando la solución utilizando la propuesta. Se usará el modelo inteligente de definición de la granularidad de los microservicios en al menos tres casos de estudio; para revisar, evaluar y ajustar el modelo propuesto. Después de aplicar los métodos de evaluación, se realizan los ajustes necesarios al modelo propuesto y, si es necesario, se lleva a cabo otro experimento y otro caso de estudio para garantizar la utilidad del modelo inteligente de definición de la granularidad de los microservicios “Microservices Backlog”.Sistemas inteligentes aplicados--Tecnologías computacionales avanzadasapplication/pdfspaValidación y transferencia de conocimiento del modelo inteligente para identificar y especificar microservicios (microservice backlog) a empresas de desarrollo de software del Norte de Santander.Propuesta de investigaciónhttp://purl.org/coar/resource_type/c_baafhttp://purl.org/coar/resource_type/c_8042Textinfo:eu-repo/semantics/workingPaperhttps://purl.org/redcol/resource_type/WPinfo:eu-repo/semantics/drafthttp://purl.org/coar/version/c_b1a7d7d4d402bcce2022-11-08/2023-11-08info:eu-repo/semantics/closedAccesshttp://purl.org/coar/access_right/c_14cbM. Pikkarainen, J. Haikara, O. Salo, P. Abrahamsson, and J. Still, “The impact of agile practices on communication in software development,” Empir. Softw. Eng., vol. 13, no. 3, pp. 303–337, Jun. 2008, doi: 10.1007/s10664-008-9065-9.K. Beck and M. Fowler, Planning Extreme Programming. Addison Wesley, 2001.T. Sedano, P. Ralph, and C. Peraire, “The Product Backlog,” in Proceedings - International Conference on Software Engineering, May 2019, vol. 2019-May, pp. 200–211, doi: 10.1109/ICSE.2019.00036.L. Zhu, L. Bass, and G. Champlin-Scharff, “DevOps and Its Practices,” IEEE Softw., vol. 33, no. 3, pp. 32–34, 2016, doi: 10.1109/MS.2016.81.L. Bass, I. Weber, and L. Zhu, DevOps - A Software Architect’s Perspective, First. Addison Wesley. Pearson Education Inc., 2015.S. Newman, Building Microservices, First Edit. Gravenstein Highway North, Sebastopol, CA 95472, United States of America: O’Reilly Media, Inc., 2015.J. Lewis and M. Fowler, “Microservices,” 2014. https://martinfowler.com/articles/microservices.html (accessed Sep. 13, 2017).J. Soldani, D. A. Tamburri, and W.-J. Van Den Heuvel, “The Pains and Gains of Microservices: A Systematic Grey Literature Review,” J. Syst. Softw., vol. 146, pp. 215–232, 2018, doi: 10.1016/j.jss.2018.09.082.S. Hassan, R. Bahsoon, and R. Kazman, “Microservice Transition and its Granularity Problem: A Systematic Mapping Study,” vol. 1, no. 1, pp. 1–36, 2019, [Online]. Available: http://arxiv.org/abs/1903.11665.F. H. Vera-Rivera, C. Gaona, and H. Astudillo, “Defining and measuring microservice granularity—a literature overview,” PeerJ Comput. Sci., vol. 7, p. e695, Sep. 2021, doi: 10.7717/peerj-cs.695.F. H. Vera-Rivera and C. M. Gaona-Cuevas, “Modelo inteligente de especificación de la granularidad de aplicaciones basadas en microservicios.,” Universidad del Valle, 2021.F. H. Vera-Rivera, E. Puerto, H. Astudillo, and C. M. Gaona, “Microservices Backlog–A Genetic Programming Technique for Identification and Evaluation of Microservices From User Stories,” IEEE Access, vol. 9, pp. 117178–117203, 2021, doi: 10.1109/ACCESS.2021.3106342.K. Beck et al., “Manifiesto por el Desarrollo Ágil de Software,” 2001. http://agilemanifesto.org/iso/es/manifesto.html (accessed Apr. 29, 2017).Versionone Enterprise, I. Digital.ai Software, and I. CollabNet, “14th annual state of agile report,” 2019. [Online]. Available: www.stateofagile.com.X. Quesada Allue, “Introducción a la estimación y planificación ágil,” proyectosagiles.org, 2009. https://proyectosagiles.org/2009/06/08/introduccion- estimacion-planificacion-agil/ (accessed Feb. 14, 2017).M. Cohn, User Stories applied for agile software development. Addison Wesley. Pearson Education Inc., 2004.M. Cohn, Agile Estimating and Planning. New York, NY, USA, 2005.K. Beck, Extreme Programming Explained: Embrace Change. Addison Wesley, 2000.P. Mell and T. Grance, “The NIST Definition of Cloud Computing Recommendations of the National Institute of Standards and Technology,” Natl. Inst. Stand. Technol. Inf. Technol. Lab., vol. 145, p. 7, 2011, Accessed: Jun. 11, 2018. [Online]. Available: http://faculty.winthrop.edu/domanm/csci411/Handouts/NIST.pdf.A. S. Tanenbaum and M. Van Steen, Distributed Systems:Principles and Paradigms, Second Edi. Pearson Education Inc, Prentice Hall, 2006.T. Yarygina and A. H. Bagge, “Overcoming Security Challenges in Microservice Architectures,” in 2018 IEEE Symposium on Service-Oriented System Engineering (SOSE), Mar. 2018, pp. 11–20, doi: 10.1109/SOSE.2018.00011.O. Zimmermann, “Microservices tenets: Agile approach to service development and deployment,” Comput. Sci. - Res. Dev., vol. 32, no. 3–4, pp. 301–310, 2017, doi: 10.1007/s00450-016-0337-0.C. Pautasso, O. Zimmermann, M. Amundsen, J. Lewis, and N. Josuttis, “Microservices in Practice, Part 1: Reality Check and Service Design,” IEEE Softw., vol. 34, no. 1, pp. 91–98, 2017, doi: 10.1109/MS.2017.24.P. Jamshidi, C. Pahl, N. C. Mendonca, J. Lewis, and S. Tilkov, “Microservices: The Journey So Far and Challenges Ahead,” IEEE Softw., vol. 35, no. 3, pp. 24–35, May 2018, doi: 10.1109/MS.2018.2141039.E. Evans, Domain-Driven Design. Addison Wesley, 2004.V. Vernon, Implementing Domain-Driven Design. Addison Wesley, 2013.R. Benítez, G. Escudero, S. Kanaan, and D. Masip Rodó, Inteligencia artificial avanzada, Editorial UOC. Barcelona, 2013.L. Álvarez Munárriz, Fundamentos de inteligencia artificial. Universidad de Murcia, 1994.J. Chugh, “Types of Machine Learning and Top 10 Algorithms Everyone Should Know | Artificial Intelligence,” Oracle artificial intelligence blog, 2018. https://blogs.oracle.com/ai/types-of-machine-learning-and-top-10-algorithms- everyone-should-know (accessed Feb. 01, 2019).F. H. Vera-Rivera, C. M. Gaona Cuevas, and H. Astudillo, “Desarrollo de aplicaciones basadas en microservicios: tendencias y desafíos de investigación,” Rev. Ibérica Sist. e Tecnol. Informação, vol. E23, pp. 107–120, Jul. 2019.S. Hassan, R. Bahsoon, and R. Kazman, “Microservice Transition and its Granularity Problem: A Systematic Mapping Study,” Softw. Pract. Exp., no. February, pp. 1–31, 2020, doi: 10.1002/spe.2869.A. Homay, M. de Sousa, A. Zoitl, and M. Wollschlaeger, “Service Granularity in Industrial Automation and Control Systems,” in 2020 25th IEEE International Conference on Emerging Technologies and Factory Automation (ETFA), Sep. 2020, pp. 132–139, doi: 10.1109/ETFA46521.2020.9212048.L. Nunes, N. Santos, and A. Rito Silva, “From a Monolith to a Microservices Architecture: An Approach Based on Transactional Contexts,” in 13th European Conference, ECSA 2019. Lectures Notes in Computer Science 11681, 2019, pp. 37–52, doi: 10.1007/978-3-030-29983-5_3.H. Vural, M. Koyuncu, and S. Misra, “A Case Study on Measuring the Size of Microservices,” in International Conference on Computational Science and Its Applications - ICCSA 2018, 2018, pp. 454–463, doi: 10.1007/b98054.W. Jin, T. Liu, Y. Cai, R. Kazman, R. Mo, and Q. Zheng, “Service Candidate Identification from Monolithic Systems based on Execution Traces,” IEEE Trans. Softw. Eng., vol. X, no. X, pp. 1–1, 2019, doi: 10.1109/TSE.2019.2910531.S. Li et al., “Understanding and addressing quality attributes of microservices architecture: A Systematic literature review,” Inf. Softw. Technol., vol. 131, p. 106449, Mar. 2021, doi: 10.1016/J.INFSOF.2020.106449.C. V. Dave, A. Patel, and U. Keshri, “Microservices Software Architecture: A Review,” Int. J. Res. Appl. Sci. Eng. Technol., vol. 9, no. 11, pp. 1494–1496, Nov. 2021, doi: 10.22214/ijraset.2021.39036.S. Weerasinghe and I. Perera, “Taxonomical Classification and Systematic Review on Microservices,” Int. J. Eng. Trends Technol., vol. 70, no. 3, pp. 222–233, 2022, doi: 10.14445/22315381/IJETT-V70I3P225.M. Villamizar, O. Garcés, H. Castro, M. Verano, L. Salamanca, and S. Gil, “Evaluating the Monolithic and the Microservice Architecture Pattern to Deploy Web Applications in the Cloud Evaluando el Patrón de Arquitectura Monolítica y de Micro Servicios Para Desplegar Aplicaciones en la Nube,” 10th Comput. Colomb. Conf., pp. 583–590, 2015, doi: 10.1109/ColumbianCC.2015.7333476.F. H. Vera-Rivera, “A development process of enterprise applications with microservices,” Encuentro Int. Ciencias Apl. e Ing. (Universidad - Ind. – EISI 2018. J. Phys. Conf. Ser., vol. 1126, no. 17, p. 012017, Nov. 2018, doi: 10.1088/1742- 6596/1126/1/012017.F. H. Vera-Rivera, “Método de automatización del despliegue continuo en la nube para la implementación de microservicios,” in Avances en Ingenieria de Software a Nivel Iberoamericano, CIbSE 2018, 2018, pp. 597–604.Departamento Nacional de Planeación, “Documento Conpes: Política nacional de ciencia, tecnología e innovación 2022 - 2031,” Bogotá D.C. Accessed: May 29, 2022. [Online]. Available: https://colaboracion.dnp.gov.co/CDT/Conpes/Económicos/3582.pdf.República de Colombia;, Consejo Nacional de Pólítica Económica y Social;, and Departamento Nacional de Planeación, “Documento Conpes 3975: Política Nacional para la transformación digital e inteligencia artificial,” Bógota D.C., Nov. 2019.A. R. Hevner, S. T. March, J. Park, and S. Ram, “Design science in information systems research,” MIS Q., vol. 28, no. 1, pp. 75–105, 2004, Accessed: May 16, 2018. [Online]. Available: https://pdfs.semanticscholar.org/fa72/91f2073cb6fdbdd7c2213bf6d776d0ab411c.p df.C. Wohlin, P. Runeson, M. Höst, M. C. Ohlsson, B. Regnell, and A. Wesslén, Experimentation in software engineering, vol. 9783642290. 2012.24498000044-2022Validación y transferencia de conocimiento del modelo inteligente para identificar y especificar microservicios (microservice backlog) a empresas de desarrollo de software del Norte de Santander.92778000Programa Nacional en IngenieríaORIGINALFormulacion proyecto - Microservicios y TD.pdfFormulacion proyecto - Microservicios y TD.pdfapplication/pdf1649801https://repositorio.ufps.edu.co/bitstream/ufps/6693/1/Formulacion%20proyecto%20-%20Microservicios%20y%20TD.pdf5e7d472bb8f3c680a0b348475e928380MD51metadata only accessLICENSElicense.txtlicense.txttext/plain; charset=utf-814828https://repositorio.ufps.edu.co/bitstream/ufps/6693/2/license.txt2f9959eaf5b71fae44bbf9ec84150c7aMD52open accessTEXTFormulacion proyecto - Microservicios y TD.pdf.txtFormulacion proyecto - Microservicios y TD.pdf.txtExtracted texttext/plain130348https://repositorio.ufps.edu.co/bitstream/ufps/6693/4/Formulacion%20proyecto%20-%20Microservicios%20y%20TD.pdf.txt8a7801bc6303d14147b54d43a9e9e691MD54metadata only accessTHUMBNAILFormulacion proyecto - Microservicios y TD.pdf.jpgFormulacion proyecto - Microservicios y TD.pdf.jpgGenerated Thumbnailimage/jpeg17666https://repositorio.ufps.edu.co/bitstream/ufps/6693/3/Formulacion%20proyecto%20-%20Microservicios%20y%20TD.pdf.jpga76bcba3fb69de8ffa595f28d31e829aMD53metadata only accessufps/6693oai:repositorio.ufps.edu.co:ufps/66932022-12-23 03:00:38.827metadata only accessRepositorio Universidad Francisco de Paula Santanderbdigital@metabiblioteca.comTEEgT0JSQSAoVEFMIFkgQ09NTyBTRSBERUZJTkUgTcOBUyBBREVMQU5URSkgU0UgT1RPUkdBIEJBSk8gTE9TIFRFUk1JTk9TIERFIEVTVEEgTElDRU5DSUEgUMOaQkxJQ0EgREUgQ1JFQVRJVkUgQ09NTU9OUyAo4oCcTFBDQ+KAnSBPIOKAnExJQ0VOQ0lB4oCdKS4gTEEgT0JSQSBFU1TDgSBQUk9URUdJREEgUE9SIERFUkVDSE9TIERFIEFVVE9SIFkvVSBPVFJBUyBMRVlFUyBBUExJQ0FCTEVTLiBRVUVEQSBQUk9ISUJJRE8gQ1VBTFFVSUVSIFVTTyBRVUUgU0UgSEFHQSBERSBMQSBPQlJBIFFVRSBOTyBDVUVOVEUgQ09OIExBIEFVVE9SSVpBQ0nDk04gUEVSVElORU5URSBERSBDT05GT1JNSURBRCBDT04gTE9TIFTDiVJNSU5PUyBERSBFU1RBIExJQ0VOQ0lBIFkgREUgTEEgTEVZIERFIERFUkVDSE8gREUgQVVUT1IuCgpNRURJQU5URSBFTCBFSkVSQ0lDSU8gREUgQ1VBTFFVSUVSQSBERSBMT1MgREVSRUNIT1MgUVVFIFNFIE9UT1JHQU4gRU4gRVNUQSBMSUNFTkNJQSwgVVNURUQgQUNFUFRBIFkgQUNVRVJEQSBRVUVEQVIgT0JMSUdBRE8gRU4gTE9TIFRFUk1JTk9TIFFVRSBTRSBTRcORQUxBTiBFTiBFTExBLiBFTCBMSUNFTkNJQU5URSBDT05DRURFIEEgVVNURUQgTE9TIERFUkVDSE9TIENPTlRFTklET1MgRU4gRVNUQSBMSUNFTkNJQSBDT05ESUNJT05BRE9TIEEgTEEgQUNFUFRBQ0nDk04gREUgU1VTIFRFUk1JTk9TIFkgQ09ORElDSU9ORVMuCjEuIERlZmluaWNpb25lcwoKYS4JT2JyYSBDb2xlY3RpdmEgZXMgdW5hIG9icmEsIHRhbCBjb21vIHVuYSBwdWJsaWNhY2nDs24gcGVyacOzZGljYSwgdW5hIGFudG9sb2fDrWEsIG8gdW5hIGVuY2ljbG9wZWRpYSwgZW4gbGEgcXVlIGxhIG9icmEgZW4gc3UgdG90YWxpZGFkLCBzaW4gbW9kaWZpY2FjacOzbiBhbGd1bmEsIGp1bnRvIGNvbiB1biBncnVwbyBkZSBvdHJhcyBjb250cmlidWNpb25lcyBxdWUgY29uc3RpdHV5ZW4gb2JyYXMgc2VwYXJhZGFzIGUgaW5kZXBlbmRpZW50ZXMgZW4gc8OtIG1pc21hcywgc2UgaW50ZWdyYW4gZW4gdW4gdG9kbyBjb2xlY3Rpdm8uIFVuYSBPYnJhIHF1ZSBjb25zdGl0dXllIHVuYSBvYnJhIGNvbGVjdGl2YSBubyBzZSBjb25zaWRlcmFyw6EgdW5hIE9icmEgRGVyaXZhZGEgKGNvbW8gc2UgZGVmaW5lIGFiYWpvKSBwYXJhIGxvcyBwcm9ww7NzaXRvcyBkZSBlc3RhIGxpY2VuY2lhLiBhcXVlbGxhIHByb2R1Y2lkYSBwb3IgdW4gZ3J1cG8gZGUgYXV0b3JlcywgZW4gcXVlIGxhIE9icmEgc2UgZW5jdWVudHJhIHNpbiBtb2RpZmljYWNpb25lcywganVudG8gY29uIHVuYSBjaWVydGEgY2FudGlkYWQgZGUgb3RyYXMgY29udHJpYnVjaW9uZXMsIHF1ZSBjb25zdGl0dXllbiBlbiBzw60gbWlzbW9zIHRyYWJham9zIHNlcGFyYWRvcyBlIGluZGVwZW5kaWVudGVzLCBxdWUgc29uIGludGVncmFkb3MgYWwgdG9kbyBjb2xlY3Rpdm8sIHRhbGVzIGNvbW8gcHVibGljYWNpb25lcyBwZXJpw7NkaWNhcywgYW50b2xvZ8OtYXMgbyBlbmNpY2xvcGVkaWFzLgoKYi4JT2JyYSBEZXJpdmFkYSBzaWduaWZpY2EgdW5hIG9icmEgYmFzYWRhIGVuIGxhIG9icmEgb2JqZXRvIGRlIGVzdGEgbGljZW5jaWEgbyBlbiDDqXN0YSB5IG90cmFzIG9icmFzIHByZWV4aXN0ZW50ZXMsIHRhbGVzIGNvbW8gdHJhZHVjY2lvbmVzLCBhcnJlZ2xvcyBtdXNpY2FsZXMsIGRyYW1hdGl6YWNpb25lcywg4oCcZmljY2lvbmFsaXphY2lvbmVz4oCdLCB2ZXJzaW9uZXMgcGFyYSBjaW5lLCDigJxncmFiYWNpb25lcyBkZSBzb25pZG/igJ0sIHJlcHJvZHVjY2lvbmVzIGRlIGFydGUsIHJlc8O6bWVuZXMsIGNvbmRlbnNhY2lvbmVzLCBvIGN1YWxxdWllciBvdHJhIGVuIGxhIHF1ZSBsYSBvYnJhIHB1ZWRhIHNlciB0cmFuc2Zvcm1hZGEsIGNhbWJpYWRhIG8gYWRhcHRhZGEsIGV4Y2VwdG8gYXF1ZWxsYXMgcXVlIGNvbnN0aXR1eWFuIHVuYSBvYnJhIGNvbGVjdGl2YSwgbGFzIHF1ZSBubyBzZXLDoW4gY29uc2lkZXJhZGFzIHVuYSBvYnJhIGRlcml2YWRhIHBhcmEgZWZlY3RvcyBkZSBlc3RhIGxpY2VuY2lhLiAoUGFyYSBldml0YXIgZHVkYXMsIGVuIGVsIGNhc28gZGUgcXVlIGxhIE9icmEgc2VhIHVuYSBjb21wb3NpY2nDs24gbXVzaWNhbCBvIHVuYSBncmFiYWNpw7NuIHNvbm9yYSwgcGFyYSBsb3MgZWZlY3RvcyBkZSBlc3RhIExpY2VuY2lhIGxhIHNpbmNyb25pemFjacOzbiB0ZW1wb3JhbCBkZSBsYSBPYnJhIGNvbiB1bmEgaW1hZ2VuIGVuIG1vdmltaWVudG8gc2UgY29uc2lkZXJhcsOhIHVuYSBPYnJhIERlcml2YWRhIHBhcmEgbG9zIGZpbmVzIGRlIGVzdGEgbGljZW5jaWEpLgoKYy4JTGljZW5jaWFudGUsIGVzIGVsIGluZGl2aWR1byBvIGxhIGVudGlkYWQgdGl0dWxhciBkZSBsb3MgZGVyZWNob3MgZGUgYXV0b3IgcXVlIG9mcmVjZSBsYSBPYnJhIGVuIGNvbmZvcm1pZGFkIGNvbiBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYS4KCmQuCUF1dG9yIG9yaWdpbmFsLCBlcyBlbCBpbmRpdmlkdW8gcXVlIGNyZcOzIGxhIE9icmEuCgplLglPYnJhLCBlcyBhcXVlbGxhIG9icmEgc3VzY2VwdGlibGUgZGUgcHJvdGVjY2nDs24gcG9yIGVsIHLDqWdpbWVuIGRlIERlcmVjaG8gZGUgQXV0b3IgeSBxdWUgZXMgb2ZyZWNpZGEgZW4gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIGxpY2VuY2lhCgpmLglVc3RlZCwgZXMgZWwgaW5kaXZpZHVvIG8gbGEgZW50aWRhZCBxdWUgZWplcmNpdGEgbG9zIGRlcmVjaG9zIG90b3JnYWRvcyBhbCBhbXBhcm8gZGUgZXN0YSBMaWNlbmNpYSB5IHF1ZSBjb24gYW50ZXJpb3JpZGFkIG5vIGhhIHZpb2xhZG8gbGFzIGNvbmRpY2lvbmVzIGRlIGxhIG1pc21hIHJlc3BlY3RvIGEgbGEgT2JyYSwgbyBxdWUgaGF5YSBvYnRlbmlkbyBhdXRvcml6YWNpw7NuIGV4cHJlc2EgcG9yIHBhcnRlIGRlbCBMaWNlbmNpYW50ZSBwYXJhIGVqZXJjZXIgbG9zIGRlcmVjaG9zIGFsIGFtcGFybyBkZSBlc3RhIExpY2VuY2lhIHBlc2UgYSB1bmEgdmlvbGFjacOzbiBhbnRlcmlvci4KCjIuIERlcmVjaG9zIGRlIFVzb3MgSG9ucmFkb3MgeSBleGNlcGNpb25lcyBMZWdhbGVzLgpOYWRhIGVuIGVzdGEgTGljZW5jaWEgcG9kcsOhIHNlciBpbnRlcnByZXRhZG8gY29tbyB1bmEgZGlzbWludWNpw7NuLCBsaW1pdGFjacOzbiBvIHJlc3RyaWNjacOzbiBkZSBsb3MgZGVyZWNob3MgZGVyaXZhZG9zIGRlbCB1c28gaG9ucmFkbyB5IG90cmFzIGxpbWl0YWNpb25lcyBvIGV4Y2VwY2lvbmVzIGEgbG9zIGRlcmVjaG9zIGRlbCBhdXRvciBiYWpvIGVsIHLDqWdpbWVuIGxlZ2FsIHZpZ2VudGUgbyBkZXJpdmFkbyBkZSBjdWFscXVpZXIgb3RyYSBub3JtYSBxdWUgc2UgbGUgYXBsaXF1ZS4KCjMuIENvbmNlc2nDs24gZGUgbGEgTGljZW5jaWEuCkJham8gbG9zIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEsIGVsIExpY2VuY2lhbnRlIG90b3JnYSBhIFVzdGVkIHVuYSBsaWNlbmNpYSBtdW5kaWFsLCBsaWJyZSBkZSByZWdhbMOtYXMsIG5vIGV4Y2x1c2l2YSB5IHBlcnBldHVhIChkdXJhbnRlIHRvZG8gZWwgcGVyw61vZG8gZGUgdmlnZW5jaWEgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yKSBwYXJhIGVqZXJjZXIgZXN0b3MgZGVyZWNob3Mgc29icmUgbGEgT2JyYSB0YWwgeSBjb21vIHNlIGluZGljYSBhIGNvbnRpbnVhY2nDs246CgphLglSZXByb2R1Y2lyIGxhIE9icmEsIGluY29ycG9yYXIgbGEgT2JyYSBlbiB1bmEgbyBtw6FzIE9icmFzIENvbGVjdGl2YXMsIHkgcmVwcm9kdWNpciBsYSBPYnJhIGluY29ycG9yYWRhIGVuIGxhcyBPYnJhcyBDb2xlY3RpdmFzLgoKYi4JRGlzdHJpYnVpciBjb3BpYXMgbyBmb25vZ3JhbWFzIGRlIGxhcyBPYnJhcywgZXhoaWJpcmxhcyBww7pibGljYW1lbnRlLCBlamVjdXRhcmxhcyBww7pibGljYW1lbnRlIHkvbyBwb25lcmxhcyBhIGRpc3Bvc2ljacOzbiBww7pibGljYSwgaW5jbHV5w6luZG9sYXMgY29tbyBpbmNvcnBvcmFkYXMgZW4gT2JyYXMgQ29sZWN0aXZhcywgc2Vnw7puIGNvcnJlc3BvbmRhLgoKYy4JRGlzdHJpYnVpciBjb3BpYXMgZGUgbGFzIE9icmFzIERlcml2YWRhcyBxdWUgc2UgZ2VuZXJlbiwgZXhoaWJpcmxhcyBww7pibGljYW1lbnRlLCBlamVjdXRhcmxhcyBww7pibGljYW1lbnRlIHkvbyBwb25lcmxhcyBhIGRpc3Bvc2ljacOzbiBww7pibGljYS4KTG9zIGRlcmVjaG9zIG1lbmNpb25hZG9zIGFudGVyaW9ybWVudGUgcHVlZGVuIHNlciBlamVyY2lkb3MgZW4gdG9kb3MgbG9zIG1lZGlvcyB5IGZvcm1hdG9zLCBhY3R1YWxtZW50ZSBjb25vY2lkb3MgbyBxdWUgc2UgaW52ZW50ZW4gZW4gZWwgZnV0dXJvLiBMb3MgZGVyZWNob3MgYW50ZXMgbWVuY2lvbmFkb3MgaW5jbHV5ZW4gZWwgZGVyZWNobyBhIHJlYWxpemFyIGRpY2hhcyBtb2RpZmljYWNpb25lcyBlbiBsYSBtZWRpZGEgcXVlIHNlYW4gdMOpY25pY2FtZW50ZSBuZWNlc2FyaWFzIHBhcmEgZWplcmNlciBsb3MgZGVyZWNob3MgZW4gb3RybyBtZWRpbyBvIGZvcm1hdG9zLCBwZXJvIGRlIG90cmEgbWFuZXJhIHVzdGVkIG5vIGVzdMOhIGF1dG9yaXphZG8gcGFyYSByZWFsaXphciBvYnJhcyBkZXJpdmFkYXMuIFRvZG9zIGxvcyBkZXJlY2hvcyBubyBvdG9yZ2Fkb3MgZXhwcmVzYW1lbnRlIHBvciBlbCBMaWNlbmNpYW50ZSBxdWVkYW4gcG9yIGVzdGUgbWVkaW8gcmVzZXJ2YWRvcywgaW5jbHV5ZW5kbyBwZXJvIHNpbiBsaW1pdGFyc2UgYSBhcXVlbGxvcyBxdWUgc2UgbWVuY2lvbmFuIGVuIGxhcyBzZWNjaW9uZXMgNChkKSB5IDQoZSkuCgo0LiBSZXN0cmljY2lvbmVzLgpMYSBsaWNlbmNpYSBvdG9yZ2FkYSBlbiBsYSBhbnRlcmlvciBTZWNjacOzbiAzIGVzdMOhIGV4cHJlc2FtZW50ZSBzdWpldGEgeSBsaW1pdGFkYSBwb3IgbGFzIHNpZ3VpZW50ZXMgcmVzdHJpY2Npb25lczoKCmEuCVVzdGVkIHB1ZWRlIGRpc3RyaWJ1aXIsIGV4aGliaXIgcMO6YmxpY2FtZW50ZSwgZWplY3V0YXIgcMO6YmxpY2FtZW50ZSwgbyBwb25lciBhIGRpc3Bvc2ljacOzbiBww7pibGljYSBsYSBPYnJhIHPDs2xvIGJham8gbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEsIHkgVXN0ZWQgZGViZSBpbmNsdWlyIHVuYSBjb3BpYSBkZSBlc3RhIGxpY2VuY2lhIG8gZGVsIElkZW50aWZpY2Fkb3IgVW5pdmVyc2FsIGRlIFJlY3Vyc29zIGRlIGxhIG1pc21hIGNvbiBjYWRhIGNvcGlhIGRlIGxhIE9icmEgcXVlIGRpc3RyaWJ1eWEsIGV4aGliYSBww7pibGljYW1lbnRlLCBlamVjdXRlIHDDumJsaWNhbWVudGUgbyBwb25nYSBhIGRpc3Bvc2ljacOzbiBww7pibGljYS4gTm8gZXMgcG9zaWJsZSBvZnJlY2VyIG8gaW1wb25lciBuaW5ndW5hIGNvbmRpY2nDs24gc29icmUgbGEgT2JyYSBxdWUgYWx0ZXJlIG8gbGltaXRlIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhIG8gZWwgZWplcmNpY2lvIGRlIGxvcyBkZXJlY2hvcyBkZSBsb3MgZGVzdGluYXRhcmlvcyBvdG9yZ2Fkb3MgZW4gZXN0ZSBkb2N1bWVudG8uIE5vIGVzIHBvc2libGUgc3VibGljZW5jaWFyIGxhIE9icmEuIFVzdGVkIGRlYmUgbWFudGVuZXIgaW50YWN0b3MgdG9kb3MgbG9zIGF2aXNvcyBxdWUgaGFnYW4gcmVmZXJlbmNpYSBhIGVzdGEgTGljZW5jaWEgeSBhIGxhIGNsw6F1c3VsYSBkZSBsaW1pdGFjacOzbiBkZSBnYXJhbnTDrWFzLiBVc3RlZCBubyBwdWVkZSBkaXN0cmlidWlyLCBleGhpYmlyIHDDumJsaWNhbWVudGUsIGVqZWN1dGFyIHDDumJsaWNhbWVudGUsIG8gcG9uZXIgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBjb24gYWxndW5hIG1lZGlkYSB0ZWNub2zDs2dpY2EgcXVlIGNvbnRyb2xlIGVsIGFjY2VzbyBvIGxhIHV0aWxpemFjacOzbiBkZSBlbGxhIGRlIHVuYSBmb3JtYSBxdWUgc2VhIGluY29uc2lzdGVudGUgY29uIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLiBMbyBhbnRlcmlvciBzZSBhcGxpY2EgYSBsYSBPYnJhIGluY29ycG9yYWRhIGEgdW5hIE9icmEgQ29sZWN0aXZhLCBwZXJvIGVzdG8gbm8gZXhpZ2UgcXVlIGxhIE9icmEgQ29sZWN0aXZhIGFwYXJ0ZSBkZSBsYSBvYnJhIG1pc21hIHF1ZWRlIHN1amV0YSBhIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLiBTaSBVc3RlZCBjcmVhIHVuYSBPYnJhIENvbGVjdGl2YSwgcHJldmlvIGF2aXNvIGRlIGN1YWxxdWllciBMaWNlbmNpYW50ZSBkZWJlLCBlbiBsYSBtZWRpZGEgZGUgbG8gcG9zaWJsZSwgZWxpbWluYXIgZGUgbGEgT2JyYSBDb2xlY3RpdmEgY3VhbHF1aWVyIHJlZmVyZW5jaWEgYSBkaWNobyBMaWNlbmNpYW50ZSBvIGFsIEF1dG9yIE9yaWdpbmFsLCBzZWfDum4gbG8gc29saWNpdGFkbyBwb3IgZWwgTGljZW5jaWFudGUgeSBjb25mb3JtZSBsbyBleGlnZSBsYSBjbMOhdXN1bGEgNChjKS4KCmIuCVVzdGVkIG5vIHB1ZWRlIGVqZXJjZXIgbmluZ3VubyBkZSBsb3MgZGVyZWNob3MgcXVlIGxlIGhhbiBzaWRvIG90b3JnYWRvcyBlbiBsYSBTZWNjacOzbiAzIHByZWNlZGVudGUgZGUgbW9kbyBxdWUgZXN0w6luIHByaW5jaXBhbG1lbnRlIGRlc3RpbmFkb3MgbyBkaXJlY3RhbWVudGUgZGlyaWdpZG9zIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLiBFbCBpbnRlcmNhbWJpbyBkZSBsYSBPYnJhIHBvciBvdHJhcyBvYnJhcyBwcm90ZWdpZGFzIHBvciBkZXJlY2hvcyBkZSBhdXRvciwgeWEgc2VhIGEgdHJhdsOpcyBkZSB1biBzaXN0ZW1hIHBhcmEgY29tcGFydGlyIGFyY2hpdm9zIGRpZ2l0YWxlcyAoZGlnaXRhbCBmaWxlLXNoYXJpbmcpIG8gZGUgY3VhbHF1aWVyIG90cmEgbWFuZXJhIG5vIHNlcsOhIGNvbnNpZGVyYWRvIGNvbW8gZXN0YXIgZGVzdGluYWRvIHByaW5jaXBhbG1lbnRlIG8gZGlyaWdpZG8gZGlyZWN0YW1lbnRlIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLCBzaWVtcHJlIHF1ZSBubyBzZSByZWFsaWNlIHVuIHBhZ28gbWVkaWFudGUgdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIGVuIHJlbGFjacOzbiBjb24gZWwgaW50ZXJjYW1iaW8gZGUgb2JyYXMgcHJvdGVnaWRhcyBwb3IgZWwgZGVyZWNobyBkZSBhdXRvci4KCmMuCVNpIHVzdGVkIGRpc3RyaWJ1eWUsIGV4aGliZSBww7pibGljYW1lbnRlLCBlamVjdXRhIHDDumJsaWNhbWVudGUgbyBlamVjdXRhIHDDumJsaWNhbWVudGUgZW4gZm9ybWEgZGlnaXRhbCBsYSBPYnJhIG8gY3VhbHF1aWVyIE9icmEgRGVyaXZhZGEgdSBPYnJhIENvbGVjdGl2YSwgVXN0ZWQgZGViZSBtYW50ZW5lciBpbnRhY3RhIHRvZGEgbGEgaW5mb3JtYWNpw7NuIGRlIGRlcmVjaG8gZGUgYXV0b3IgZGUgbGEgT2JyYSB5IHByb3BvcmNpb25hciwgZGUgZm9ybWEgcmF6b25hYmxlIHNlZ8O6biBlbCBtZWRpbyBvIG1hbmVyYSBxdWUgVXN0ZWQgZXN0w6kgdXRpbGl6YW5kbzogKGkpIGVsIG5vbWJyZSBkZWwgQXV0b3IgT3JpZ2luYWwgc2kgZXN0w6EgcHJvdmlzdG8gKG8gc2V1ZMOzbmltbywgc2kgZnVlcmUgYXBsaWNhYmxlKSwgeS9vIChpaSkgZWwgbm9tYnJlIGRlIGxhIHBhcnRlIG8gbGFzIHBhcnRlcyBxdWUgZWwgQXV0b3IgT3JpZ2luYWwgeS9vIGVsIExpY2VuY2lhbnRlIGh1YmllcmVuIGRlc2lnbmFkbyBwYXJhIGxhIGF0cmlidWNpw7NuICh2LmcuLCB1biBpbnN0aXR1dG8gcGF0cm9jaW5hZG9yLCBlZGl0b3JpYWwsIHB1YmxpY2FjacOzbikgZW4gbGEgaW5mb3JtYWNpw7NuIGRlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBkZWwgTGljZW5jaWFudGUsIHTDqXJtaW5vcyBkZSBzZXJ2aWNpb3MgbyBkZSBvdHJhcyBmb3JtYXMgcmF6b25hYmxlczsgZWwgdMOtdHVsbyBkZSBsYSBPYnJhIHNpIGVzdMOhIHByb3Zpc3RvOyBlbiBsYSBtZWRpZGEgZGUgbG8gcmF6b25hYmxlbWVudGUgZmFjdGlibGUgeSwgc2kgZXN0w6EgcHJvdmlzdG8sIGVsIElkZW50aWZpY2Fkb3IgVW5pZm9ybWUgZGUgUmVjdXJzb3MgKFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllcikgcXVlIGVsIExpY2VuY2lhbnRlIGVzcGVjaWZpY2EgcGFyYSBzZXIgYXNvY2lhZG8gY29uIGxhIE9icmEsIHNhbHZvIHF1ZSB0YWwgVVJJIG5vIHNlIHJlZmllcmEgYSBsYSBub3RhIHNvYnJlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBvIGEgbGEgaW5mb3JtYWNpw7NuIHNvYnJlIGVsIGxpY2VuY2lhbWllbnRvIGRlIGxhIE9icmE7IHkgZW4gZWwgY2FzbyBkZSB1bmEgT2JyYSBEZXJpdmFkYSwgYXRyaWJ1aXIgZWwgY3LDqWRpdG8gaWRlbnRpZmljYW5kbyBlbCB1c28gZGUgbGEgT2JyYSBlbiBsYSBPYnJhIERlcml2YWRhICh2LmcuLCAiVHJhZHVjY2nDs24gRnJhbmNlc2EgZGUgbGEgT2JyYSBkZWwgQXV0b3IgT3JpZ2luYWwsIiBvICJHdWnDs24gQ2luZW1hdG9ncsOhZmljbyBiYXNhZG8gZW4gbGEgT2JyYSBvcmlnaW5hbCBkZWwgQXV0b3IgT3JpZ2luYWwiKS4gVGFsIGNyw6lkaXRvIHB1ZWRlIHNlciBpbXBsZW1lbnRhZG8gZGUgY3VhbHF1aWVyIGZvcm1hIHJhem9uYWJsZTsgZW4gZWwgY2Fzbywgc2luIGVtYmFyZ28sIGRlIE9icmFzIERlcml2YWRhcyB1IE9icmFzIENvbGVjdGl2YXMsIHRhbCBjcsOpZGl0byBhcGFyZWNlcsOhLCBjb21vIG3DrW5pbW8sIGRvbmRlIGFwYXJlY2UgZWwgY3LDqWRpdG8gZGUgY3VhbHF1aWVyIG90cm8gYXV0b3IgY29tcGFyYWJsZSB5IGRlIHVuYSBtYW5lcmEsIGFsIG1lbm9zLCB0YW4gZGVzdGFjYWRhIGNvbW8gZWwgY3LDqWRpdG8gZGUgb3RybyBhdXRvciBjb21wYXJhYmxlLgoKZC4JUGFyYSBldml0YXIgdG9kYSBjb25mdXNpw7NuLCBlbCBMaWNlbmNpYW50ZSBhY2xhcmEgcXVlLCBjdWFuZG8gbGEgb2JyYSBlcyB1bmEgY29tcG9zaWNpw7NuIG11c2ljYWw6CgppLglSZWdhbMOtYXMgcG9yIGludGVycHJldGFjacOzbiB5IGVqZWN1Y2nDs24gYmFqbyBsaWNlbmNpYXMgZ2VuZXJhbGVzLiBFbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZXhjbHVzaXZvIGRlIGF1dG9yaXphciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIG8gbGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGRlIGxhIG9icmEgeSBkZSByZWNvbGVjdGFyLCBzZWEgaW5kaXZpZHVhbG1lbnRlIG8gYSB0cmF2w6lzIGRlIHVuYSBzb2NpZWRhZCBkZSBnZXN0acOzbiBjb2xlY3RpdmEgZGUgZGVyZWNob3MgZGUgYXV0b3IgeSBkZXJlY2hvcyBjb25leG9zIChwb3IgZWplbXBsbywgU0FZQ08pLCBsYXMgcmVnYWzDrWFzIHBvciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIG8gcG9yIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBkZSBsYSBvYnJhIChwb3IgZWplbXBsbyBXZWJjYXN0KSBsaWNlbmNpYWRhIGJham8gbGljZW5jaWFzIGdlbmVyYWxlcywgc2kgbGEgaW50ZXJwcmV0YWNpw7NuIG8gZWplY3VjacOzbiBkZSBsYSBvYnJhIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBvcmllbnRhZGEgcG9yIG8gZGlyaWdpZGEgYSBsYSBvYnRlbmNpw7NuIGRlIHVuYSB2ZW50YWphIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLgoKaWkuCVJlZ2Fsw61hcyBwb3IgRm9ub2dyYW1hcy4gRWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGV4Y2x1c2l2byBkZSByZWNvbGVjdGFyLCBpbmRpdmlkdWFsbWVudGUgbyBhIHRyYXbDqXMgZGUgdW5hIHNvY2llZGFkIGRlIGdlc3Rpw7NuIGNvbGVjdGl2YSBkZSBkZXJlY2hvcyBkZSBhdXRvciB5IGRlcmVjaG9zIGNvbmV4b3MgKHBvciBlamVtcGxvLCBsb3MgY29uc2FncmFkb3MgcG9yIGxhIFNBWUNPKSwgdW5hIGFnZW5jaWEgZGUgZGVyZWNob3MgbXVzaWNhbGVzIG8gYWxnw7puIGFnZW50ZSBkZXNpZ25hZG8sIGxhcyByZWdhbMOtYXMgcG9yIGN1YWxxdWllciBmb25vZ3JhbWEgcXVlIFVzdGVkIGNyZWUgYSBwYXJ0aXIgZGUgbGEgb2JyYSAo4oCcdmVyc2nDs24gY292ZXLigJ0pIHkgZGlzdHJpYnV5YSwgZW4gbG9zIHTDqXJtaW5vcyBkZWwgcsOpZ2ltZW4gZGUgZGVyZWNob3MgZGUgYXV0b3IsIHNpIGxhIGNyZWFjacOzbiBvIGRpc3RyaWJ1Y2nDs24gZGUgZXNhIHZlcnNpw7NuIGNvdmVyIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBkZXN0aW5hZGEgbyBkaXJpZ2lkYSBhIG9idGVuZXIgdW5hIHZlbnRhamEgY29tZXJjaWFsIG8gdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIHByaXZhZGEuCgplLglHZXN0acOzbiBkZSBEZXJlY2hvcyBkZSBBdXRvciBzb2JyZSBJbnRlcnByZXRhY2lvbmVzIHkgRWplY3VjaW9uZXMgRGlnaXRhbGVzIChXZWJDYXN0aW5nKS4gUGFyYSBldml0YXIgdG9kYSBjb25mdXNpw7NuLCBlbCBMaWNlbmNpYW50ZSBhY2xhcmEgcXVlLCBjdWFuZG8gbGEgb2JyYSBzZWEgdW4gZm9ub2dyYW1hLCBlbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZXhjbHVzaXZvIGRlIGF1dG9yaXphciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIGRpZ2l0YWwgZGUgbGEgb2JyYSAocG9yIGVqZW1wbG8sIHdlYmNhc3QpIHkgZGUgcmVjb2xlY3RhciwgaW5kaXZpZHVhbG1lbnRlIG8gYSB0cmF2w6lzIGRlIHVuYSBzb2NpZWRhZCBkZSBnZXN0acOzbiBjb2xlY3RpdmEgZGUgZGVyZWNob3MgZGUgYXV0b3IgeSBkZXJlY2hvcyBjb25leG9zIChwb3IgZWplbXBsbywgQUNJTlBSTyksIGxhcyByZWdhbMOtYXMgcG9yIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBkZSBsYSBvYnJhIChwb3IgZWplbXBsbywgd2ViY2FzdCksIHN1amV0YSBhIGxhcyBkaXNwb3NpY2lvbmVzIGFwbGljYWJsZXMgZGVsIHLDqWdpbWVuIGRlIERlcmVjaG8gZGUgQXV0b3IsIHNpIGVzdGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBkaXJpZ2lkYSBhIG9idGVuZXIgdW5hIHZlbnRhamEgY29tZXJjaWFsIG8gdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIHByaXZhZGEuCgo1LiBSZXByZXNlbnRhY2lvbmVzLCBHYXJhbnTDrWFzIHkgTGltaXRhY2lvbmVzIGRlIFJlc3BvbnNhYmlsaWRhZC4KQSBNRU5PUyBRVUUgTEFTIFBBUlRFUyBMTyBBQ09SREFSQU4gREUgT1RSQSBGT1JNQSBQT1IgRVNDUklUTywgRUwgTElDRU5DSUFOVEUgT0ZSRUNFIExBIE9CUkEgKEVOIEVMIEVTVEFETyBFTiBFTCBRVUUgU0UgRU5DVUVOVFJBKSDigJxUQUwgQ1VBTOKAnSwgU0lOIEJSSU5EQVIgR0FSQU5Uw41BUyBERSBDTEFTRSBBTEdVTkEgUkVTUEVDVE8gREUgTEEgT0JSQSwgWUEgU0VBIEVYUFJFU0EsIElNUEzDjUNJVEEsIExFR0FMIE8gQ1VBTFFVSUVSQSBPVFJBLCBJTkNMVVlFTkRPLCBTSU4gTElNSVRBUlNFIEEgRUxMQVMsIEdBUkFOVMONQVMgREUgVElUVUxBUklEQUQsIENPTUVSQ0lBQklMSURBRCwgQURBUFRBQklMSURBRCBPIEFERUNVQUNJw5NOIEEgUFJPUMOTU0lUTyBERVRFUk1JTkFETywgQVVTRU5DSUEgREUgSU5GUkFDQ0nDk04sIERFIEFVU0VOQ0lBIERFIERFRkVDVE9TIExBVEVOVEVTIE8gREUgT1RSTyBUSVBPLCBPIExBIFBSRVNFTkNJQSBPIEFVU0VOQ0lBIERFIEVSUk9SRVMsIFNFQU4gTyBOTyBERVNDVUJSSUJMRVMgKFBVRURBTiBPIE5PIFNFUiBFU1RPUyBERVNDVUJJRVJUT1MpLiBBTEdVTkFTIEpVUklTRElDQ0lPTkVTIE5PIFBFUk1JVEVOIExBIEVYQ0xVU0nDk04gREUgR0FSQU5Uw41BUyBJTVBMw41DSVRBUywgRU4gQ1VZTyBDQVNPIEVTVEEgRVhDTFVTScOTTiBQVUVERSBOTyBBUExJQ0FSU0UgQSBVU1RFRC4KCjYuIExpbWl0YWNpw7NuIGRlIHJlc3BvbnNhYmlsaWRhZC4KQSBNRU5PUyBRVUUgTE8gRVhJSkEgRVhQUkVTQU1FTlRFIExBIExFWSBBUExJQ0FCTEUsIEVMIExJQ0VOQ0lBTlRFIE5PIFNFUsOBIFJFU1BPTlNBQkxFIEFOVEUgVVNURUQgUE9SIERBw5FPIEFMR1VOTywgU0VBIFBPUiBSRVNQT05TQUJJTElEQUQgRVhUUkFDT05UUkFDVFVBTCwgUFJFQ09OVFJBQ1RVQUwgTyBDT05UUkFDVFVBTCwgT0JKRVRJVkEgTyBTVUJKRVRJVkEsIFNFIFRSQVRFIERFIERBw5FPUyBNT1JBTEVTIE8gUEFUUklNT05JQUxFUywgRElSRUNUT1MgTyBJTkRJUkVDVE9TLCBQUkVWSVNUT1MgTyBJTVBSRVZJU1RPUyBQUk9EVUNJRE9TIFBPUiBFTCBVU08gREUgRVNUQSBMSUNFTkNJQSBPIERFIExBIE9CUkEsIEFVTiBDVUFORE8gRUwgTElDRU5DSUFOVEUgSEFZQSBTSURPIEFEVkVSVElETyBERSBMQSBQT1NJQklMSURBRCBERSBESUNIT1MgREHDkU9TLiBBTEdVTkFTIExFWUVTIE5PIFBFUk1JVEVOIExBIEVYQ0xVU0nDk04gREUgQ0lFUlRBIFJFU1BPTlNBQklMSURBRCwgRU4gQ1VZTyBDQVNPIEVTVEEgRVhDTFVTScOTTiBQVUVERSBOTyBBUExJQ0FSU0UgQSBVU1RFRC4KCjcuIFTDqXJtaW5vLgoKYS4JRXN0YSBMaWNlbmNpYSB5IGxvcyBkZXJlY2hvcyBvdG9yZ2Fkb3MgZW4gdmlydHVkIGRlIGVsbGEgdGVybWluYXLDoW4gYXV0b23DoXRpY2FtZW50ZSBzaSBVc3RlZCBpbmZyaW5nZSBhbGd1bmEgY29uZGljacOzbiBlc3RhYmxlY2lkYSBlbiBlbGxhLiBTaW4gZW1iYXJnbywgbG9zIGluZGl2aWR1b3MgbyBlbnRpZGFkZXMgcXVlIGhhbiByZWNpYmlkbyBPYnJhcyBEZXJpdmFkYXMgbyBDb2xlY3RpdmFzIGRlIFVzdGVkIGRlIGNvbmZvcm1pZGFkIGNvbiBlc3RhIExpY2VuY2lhLCBubyB2ZXLDoW4gdGVybWluYWRhcyBzdXMgbGljZW5jaWFzLCBzaWVtcHJlIHF1ZSBlc3RvcyBpbmRpdmlkdW9zIG8gZW50aWRhZGVzIHNpZ2FuIGN1bXBsaWVuZG8gw61udGVncmFtZW50ZSBsYXMgY29uZGljaW9uZXMgZGUgZXN0YXMgbGljZW5jaWFzLiBMYXMgU2VjY2lvbmVzIDEsIDIsIDUsIDYsIDcsIHkgOCBzdWJzaXN0aXLDoW4gYSBjdWFscXVpZXIgdGVybWluYWNpw7NuIGRlIGVzdGEgTGljZW5jaWEuCgpiLglTdWpldGEgYSBsYXMgY29uZGljaW9uZXMgeSB0w6lybWlub3MgYW50ZXJpb3JlcywgbGEgbGljZW5jaWEgb3RvcmdhZGEgYXF1w60gZXMgcGVycGV0dWEgKGR1cmFudGUgZWwgcGVyw61vZG8gZGUgdmlnZW5jaWEgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIGRlIGxhIG9icmEpLiBObyBvYnN0YW50ZSBsbyBhbnRlcmlvciwgZWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGEgcHVibGljYXIgeS9vIGVzdHJlbmFyIGxhIE9icmEgYmFqbyBjb25kaWNpb25lcyBkZSBsaWNlbmNpYSBkaWZlcmVudGVzIG8gYSBkZWphciBkZSBkaXN0cmlidWlybGEgZW4gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIExpY2VuY2lhIGVuIGN1YWxxdWllciBtb21lbnRvOyBlbiBlbCBlbnRlbmRpZG8sIHNpbiBlbWJhcmdvLCBxdWUgZXNhIGVsZWNjacOzbiBubyBzZXJ2aXLDoSBwYXJhIHJldm9jYXIgZXN0YSBsaWNlbmNpYSBvIHF1ZSBkZWJhIHNlciBvdG9yZ2FkYSAsIGJham8gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIGxpY2VuY2lhKSwgeSBlc3RhIGxpY2VuY2lhIGNvbnRpbnVhcsOhIGVuIHBsZW5vIHZpZ29yIHkgZWZlY3RvIGEgbWVub3MgcXVlIHNlYSB0ZXJtaW5hZGEgY29tbyBzZSBleHByZXNhIGF0csOhcy4gTGEgTGljZW5jaWEgcmV2b2NhZGEgY29udGludWFyw6Egc2llbmRvIHBsZW5hbWVudGUgdmlnZW50ZSB5IGVmZWN0aXZhIHNpIG5vIHNlIGxlIGRhIHTDqXJtaW5vIGVuIGxhcyBjb25kaWNpb25lcyBpbmRpY2FkYXMgYW50ZXJpb3JtZW50ZS4KCjguIFZhcmlvcy4KCmEuCUNhZGEgdmV6IHF1ZSBVc3RlZCBkaXN0cmlidXlhIG8gcG9uZ2EgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBvIHVuYSBPYnJhIENvbGVjdGl2YSwgZWwgTGljZW5jaWFudGUgb2ZyZWNlcsOhIGFsIGRlc3RpbmF0YXJpbyB1bmEgbGljZW5jaWEgZW4gbG9zIG1pc21vcyB0w6lybWlub3MgeSBjb25kaWNpb25lcyBxdWUgbGEgbGljZW5jaWEgb3RvcmdhZGEgYSBVc3RlZCBiYWpvIGVzdGEgTGljZW5jaWEuCgpiLglTaSBhbGd1bmEgZGlzcG9zaWNpw7NuIGRlIGVzdGEgTGljZW5jaWEgcmVzdWx0YSBpbnZhbGlkYWRhIG8gbm8gZXhpZ2libGUsIHNlZ8O6biBsYSBsZWdpc2xhY2nDs24gdmlnZW50ZSwgZXN0byBubyBhZmVjdGFyw6EgbmkgbGEgdmFsaWRleiBuaSBsYSBhcGxpY2FiaWxpZGFkIGRlbCByZXN0byBkZSBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhIHksIHNpbiBhY2Npw7NuIGFkaWNpb25hbCBwb3IgcGFydGUgZGUgbG9zIHN1amV0b3MgZGUgZXN0ZSBhY3VlcmRvLCBhcXXDqWxsYSBzZSBlbnRlbmRlcsOhIHJlZm9ybWFkYSBsbyBtw61uaW1vIG5lY2VzYXJpbyBwYXJhIGhhY2VyIHF1ZSBkaWNoYSBkaXNwb3NpY2nDs24gc2VhIHbDoWxpZGEgeSBleGlnaWJsZS4KCmMuCU5pbmfDum4gdMOpcm1pbm8gbyBkaXNwb3NpY2nDs24gZGUgZXN0YSBMaWNlbmNpYSBzZSBlc3RpbWFyw6EgcmVudW5jaWFkYSB5IG5pbmd1bmEgdmlvbGFjacOzbiBkZSBlbGxhIHNlcsOhIGNvbnNlbnRpZGEgYSBtZW5vcyBxdWUgZXNhIHJlbnVuY2lhIG8gY29uc2VudGltaWVudG8gc2VhIG90b3JnYWRvIHBvciBlc2NyaXRvIHkgZmlybWFkbyBwb3IgbGEgcGFydGUgcXVlIHJlbnVuY2llIG8gY29uc2llbnRhLgoKZC4JRXN0YSBMaWNlbmNpYSByZWZsZWphIGVsIGFjdWVyZG8gcGxlbm8gZW50cmUgbGFzIHBhcnRlcyByZXNwZWN0byBhIGxhIE9icmEgYXF1w60gbGljZW5jaWFkYS4gTm8gaGF5IGFycmVnbG9zLCBhY3VlcmRvcyBvIGRlY2xhcmFjaW9uZXMgcmVzcGVjdG8gYSBsYSBPYnJhIHF1ZSBubyBlc3TDqW4gZXNwZWNpZmljYWRvcyBlbiBlc3RlIGRvY3VtZW50by4gRWwgTGljZW5jaWFudGUgbm8gc2UgdmVyw6EgbGltaXRhZG8gcG9yIG5pbmd1bmEgZGlzcG9zaWNpw7NuIGFkaWNpb25hbCBxdWUgcHVlZGEgc3VyZ2lyIGVuIGFsZ3VuYSBjb211bmljYWNpw7NuIGVtYW5hZGEgZGUgVXN0ZWQuIEVzdGEgTGljZW5jaWEgbm8gcHVlZGUgc2VyIG1vZGlmaWNhZGEgc2luIGVsIGNvbnNlbnRpbWllbnRvIG11dHVvIHBvciBlc2NyaXRvIGRlbCBMaWNlbmNpYW50ZSB5IFVzdGVkLgo=0000-0003-4003-497Xa34656f3f9e04536f6ecaf2543a75b4c6000000-0001-9249-175699eb843d4117f9d72803d9b802e06cca6000000-0001-9361-5837c201373dd70e4d814c3342495d100a21600