Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural
ilustraciones
- Autores:
-
Tovar Onofre, Miguel Ángel
- Tipo de recurso:
- Fecha de publicación:
- 2023
- Institución:
- Universidad Nacional de Colombia
- Repositorio:
- Universidad Nacional de Colombia
- Idioma:
- spa
- OAI Identifier:
- oai:repositorio.unal.edu.co:unal/83672
- Palabra clave:
- Ingeniería de la computación-enseñanzas, congresos, conferencias, etc.
Estructura de datos (computadores)
Computer engineering - study and teaching - congresses
Data structure (computer science)
Reconocimiento de patrones
Modelos computacionales
Procesamiento de lenguaje natural
Aprendizaje de maquina
Análisis de requerimientos
Historias de usuario
UML
Patterns recognition
Computational models
Natural language processing
Machine learning
Requirements analysis
User stories
- Rights
- openAccess
- License
- Reconocimiento 4.0 Internacional
id |
UNACIONAL2_c8b73614af4f79f94cde47f481e1f868 |
---|---|
oai_identifier_str |
oai:repositorio.unal.edu.co:unal/83672 |
network_acronym_str |
UNACIONAL2 |
network_name_str |
Universidad Nacional de Colombia |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural |
dc.title.translated.eng.fl_str_mv |
Generating class diagrams and use cases from user stories using natural language processing |
title |
Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural |
spellingShingle |
Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural Ingeniería de la computación-enseñanzas, congresos, conferencias, etc. Estructura de datos (computadores) Computer engineering - study and teaching - congresses Data structure (computer science) Reconocimiento de patrones Modelos computacionales Procesamiento de lenguaje natural Aprendizaje de maquina Análisis de requerimientos Historias de usuario UML Patterns recognition Computational models Natural language processing Machine learning Requirements analysis User stories |
title_short |
Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural |
title_full |
Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural |
title_fullStr |
Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural |
title_full_unstemmed |
Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural |
title_sort |
Generación de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje natural |
dc.creator.fl_str_mv |
Tovar Onofre, Miguel Ángel |
dc.contributor.advisor.none.fl_str_mv |
Camargo Mendoza, Jorge Eliecer |
dc.contributor.author.none.fl_str_mv |
Tovar Onofre, Miguel Ángel |
dc.contributor.researchgroup.spa.fl_str_mv |
Unsecurelab Cybersecurity Research Group |
dc.subject.lemb.spa.fl_str_mv |
Ingeniería de la computación-enseñanzas, congresos, conferencias, etc. Estructura de datos (computadores) |
topic |
Ingeniería de la computación-enseñanzas, congresos, conferencias, etc. Estructura de datos (computadores) Computer engineering - study and teaching - congresses Data structure (computer science) Reconocimiento de patrones Modelos computacionales Procesamiento de lenguaje natural Aprendizaje de maquina Análisis de requerimientos Historias de usuario UML Patterns recognition Computational models Natural language processing Machine learning Requirements analysis User stories |
dc.subject.lemb.eng.fl_str_mv |
Computer engineering - study and teaching - congresses Data structure (computer science) |
dc.subject.proposal.spa.fl_str_mv |
Reconocimiento de patrones Modelos computacionales Procesamiento de lenguaje natural Aprendizaje de maquina Análisis de requerimientos Historias de usuario |
dc.subject.proposal.eng.fl_str_mv |
UML Patterns recognition Computational models Natural language processing Machine learning Requirements analysis User stories |
description |
ilustraciones |
publishDate |
2023 |
dc.date.accessioned.none.fl_str_mv |
2023-03-29T19:54:54Z |
dc.date.available.none.fl_str_mv |
2023-03-29T19:54:54Z |
dc.date.issued.none.fl_str_mv |
2023 |
dc.type.spa.fl_str_mv |
Trabajo de grado - Maestría |
dc.type.driver.spa.fl_str_mv |
info:eu-repo/semantics/masterThesis |
dc.type.version.spa.fl_str_mv |
info:eu-repo/semantics/acceptedVersion |
dc.type.content.spa.fl_str_mv |
Text |
dc.type.redcol.spa.fl_str_mv |
http://purl.org/redcol/resource_type/TM |
status_str |
acceptedVersion |
dc.identifier.uri.none.fl_str_mv |
https://repositorio.unal.edu.co/handle/unal/83672 |
dc.identifier.instname.spa.fl_str_mv |
Universidad Nacional de Colombia |
dc.identifier.reponame.spa.fl_str_mv |
Repositorio Institucional Universidad Nacional de Colombia |
dc.identifier.repourl.spa.fl_str_mv |
https://repositorio.unal.edu.co/ |
url |
https://repositorio.unal.edu.co/handle/unal/83672 https://repositorio.unal.edu.co/ |
identifier_str_mv |
Universidad Nacional de Colombia Repositorio Institucional Universidad Nacional de Colombia |
dc.language.iso.spa.fl_str_mv |
spa |
language |
spa |
dc.relation.references.spa.fl_str_mv |
A. Batool, Y. Motla, B. Hamid, S. Asghar, M. Mukhtar, and M. Ahmed, “Comparative study of traditional requirement engineering and agile requirement engineering,” pp. 1006–1014, 01 2013. H. Gomaa, “Software modeling and design: Uml, use cases, patterns, and software architectures,” Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures, pp. 1–550, 01 2011. J. Rumbaugh, G. Booch, and I. Jacobson, The Unified Modeling Language Reference Manual. Addison-Wesley, 2010. R. Lee, Artificial Intelligence in Daily Life. 01 2020. C. Narawita and K. Vidanage, “Uml generator – use case and class diagram generation from text requirements,” International Journal on Advances in ICT for Emerging Regions (ICTer), vol. 10, p. 1, 01 2018. S. Vemuri, S. Chala, and M. Fathi, “Automated use case diagram generation from textual user requirement documents,” pp. 1–4, 04 2017. F. Gilson and C. Irwin, “From user stories to use case scenarios - towards a generative approach,” 12 2018. S. Nasiri, Y. Rhazali, M. Lahmer, and N. Chenfour, “Towards a generation of class diagram from user stories in agile methods,” Procedia Computer Science, vol. 170, pp. 831– 837, 01 2020. S. Nasiri, Y. Rhazali, M. Lahmer, and A. Adadi, “From user stories to uml diagrams driven by ontological and production model,” International Journal of Advanced Computer Science and Applications, vol. 12, 01 2021. A. M. Maatuk and E. A. Abdelnabi, “Generating uml use case and activity diagrams using nlp techniques and heuristics rules,” in International Conference on Data Science, E-Learning and Information Systems 2021, DATA’21, (New York, NY, USA), p. 271–277, Association for Computing Machinery, 2021. S. Ahmed, A. Ahmed, and N. U. Eisty, “Automatic transformation of natural to unified modeling language: A systematic review,” in 2022 IEEE/ACIS 20th International Conference on Software Engineering Research, Management and Applications (SERA), pp. 112–119, 2022. E. A. Abdelnabi, A. M. Maatuk, and M. Hagal, “Generating uml class diagram from natural language requirements: A survey of approaches and techniques,” in 2021 IEEE 1st International Maghreb Meeting of the Conference on Sciences and Techniques of Automatic Control and Computer Engineering MI-STA, pp. 288–293, 2021. M. H. Kassab, “The changing landscape of requirements engineering practices over the past decade,” 2015 IEEE Fifth International Workshop on Empirical Requirements Engineering (EmpiRE), pp. 1–8, 2015. I. K. Raharjana, D. Siahaan, and C. Fatichah, “User stories and natural language processing: A systematic literature review,” IEEE Access, vol. 9, pp. 53811–53826, 2021. G. Lucassen, F. Dalpiaz, J. M. Werf, and S. Brinkkemper, “The use and effectiveness of user stories in practice,” in Proceedings of the 22nd International Working Conference on Requirements Engineering: Foundation for Software Quality - Volume 9619, REFSQ 2016, (Berlin, Heidelberg), p. 205–222, Springer-Verlag, 2016. E. Btoush and M. Hammad, “Generating er diagrams from requirement specifications based on natural language processing,” International Journal of Database Theory and Application, vol. 8, pp. 61–70, 04 2015. E. Meryem, K. Nafil, and R. Touahni, “Automatic transformation of user stories into uml use case diagrams using nlp techniques,” Procedia Computer Science, vol. 130, pp. 42–49, 01 2018. A. Gupta, “Generation of multiple conceptual models from user stories in agile,” in REFSQ Workshops, 2019. Y. Rigou, D. Lamontagne, and I. Khriss, “A sketch of a deep learning approach for discovering uml class diagrams from system’s textual specification,” 2020 1st International Conference on Innovative Research in Applied Science, Engineering and Technology (IRASET), pp. 1–6, 2020. T. Kochbati., S. Li., S. G´erard., and C. Mraidha., “From user stories to models: A machine learning empowered automation,” in Proceedings of the 9th International Conference on Model-Driven Engineering and Software Development - MODELSWARD,, pp. 28–40, INSTICC, SciTePress, 2021. F. Dalpiaz, “Requirements data sets (user stories),” 2018. F. Dalpiaz, A. Sturm, and P. Gieske, “Extraction of conceptual models: User stories vs. use cases,” 2020. A. N´ev´eol, H. Dalianis, S. Velupillai, G. Savova, and P. Zweigenbaum, “Clinical natural language processing in languages other than english: Opportunities and challenges,” Journal of biomedical semantics, vol. 9, p. 12, 03 2018. M. S. M. Suhaimin, M. H. A. Hijazi, R. Alfred, and F. Coenen, “Natural language processing based features for sarcasm detection: An investigation using bilingual social media texts,” in 2017 8th International Conference on Information Technology (ICIT), pp. 703–709, 2017. S. Elbasha, A. Elhawil, and N. Drawil, “Multilingual sentiment analysis to support business decision-making via machine learning models,” 12 2021. S. N. Group., “Stanza – a python nlp package for many human languages.” Accedido en 24-09-2022 a https://stanfordnlp.github.io/stanza/, 2020. |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
dc.rights.license.spa.fl_str_mv |
Reconocimiento 4.0 Internacional |
dc.rights.uri.spa.fl_str_mv |
http://creativecommons.org/licenses/by/4.0/ |
dc.rights.accessrights.spa.fl_str_mv |
info:eu-repo/semantics/openAccess |
rights_invalid_str_mv |
Reconocimiento 4.0 Internacional http://creativecommons.org/licenses/by/4.0/ http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.spa.fl_str_mv |
xvi, 95 páginas |
dc.format.mimetype.spa.fl_str_mv |
application/pdf |
dc.publisher.spa.fl_str_mv |
Universidad Nacional de Colombia |
dc.publisher.program.spa.fl_str_mv |
Bogotá - Ingeniería - Maestría en Ingeniería - Ingeniería de Sistemas y Computación |
dc.publisher.faculty.spa.fl_str_mv |
Facultad de Ingeniería |
dc.publisher.place.spa.fl_str_mv |
Bogotá,Colombia |
dc.publisher.branch.spa.fl_str_mv |
Universidad Nacional de Colombia - Sede Bogotá |
institution |
Universidad Nacional de Colombia |
bitstream.url.fl_str_mv |
https://repositorio.unal.edu.co/bitstream/unal/83672/1/license.txt https://repositorio.unal.edu.co/bitstream/unal/83672/2/1016095600.2023.pdf https://repositorio.unal.edu.co/bitstream/unal/83672/3/1016095600.2023.pdf.jpg |
bitstream.checksum.fl_str_mv |
eb34b1cf90b7e1103fc9dfd26be24b4a e373461b1c8f54128fc4657ff8e22af0 909d2545e91d32a9d04e396267cd170e |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Institucional Universidad Nacional de Colombia |
repository.mail.fl_str_mv |
repositorio_nal@unal.edu.co |
_version_ |
1814089768706768896 |
spelling |
Reconocimiento 4.0 Internacionalhttp://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Camargo Mendoza, Jorge Eliecer5348a4327d4ddf28ddd4bd4b01fcbff6Tovar Onofre, Miguel Ángel58fc896514f7fe1be64febf5f6ae1257Unsecurelab Cybersecurity Research Group2023-03-29T19:54:54Z2023-03-29T19:54:54Z2023https://repositorio.unal.edu.co/handle/unal/83672Universidad Nacional de ColombiaRepositorio Institucional Universidad Nacional de Colombiahttps://repositorio.unal.edu.co/ilustracionesEl presente trabajo busca el desarrollo de un modelo computacional para la generación de diagramas UML a partir de historias de usuario en español, por medio de la aplicación de patrones gramaticales y procesamiento de lenguaje natural. Como conjunto de datos se tomaron diferentes conjuntos de historias de usuario traducidas al español y sus correspondientes diagramas generados manualmente. Los patrones aplicados fueron construidos con base en reglas establecidas para este proceso en idioma inglés, las cuales fueron adaptadas al idioma español y con base en los componentes extraídos, se construyen los diagramas. La evaluación del modelo computacional indica que es capaz de detectar los componentes como clases y actores, alcanzando un recall de hasta 0.8 en algunos casos. Sin embargo, presenta problemas de precisión al momento de extraer sus atributos, métodos o casos de uso, llegando a presentar valores inferiores a 0.1 en algunos componentes. Finalmente el modelo establece una base para guiar a los diseñadores y/o analistas en la implementación de proyectos de software. (Texto tomado de la fuente)The present work seeks to develop a computational model for the generation of UML diagrams from Spanish user stories by means of the application of grammatical patterns and natural language processing. Different sets of user stories translated into Spanish and their corresponding manually generated diagrams were taken as a dataset. The applied patterns were constructed based on rules established for this process in English language, which were adapted to Spanish language and based on the extracted components, the diagrams were constructed. The evaluation of the computational model indicates that it is capable of detecting components such as classes and actors, reaching a recall of up to 0.8 in some cases. However, it presents precision problems when extracting attributes, methods or use cases, presenting values lower than 0.1 in some components. Finally, the model establishes a basis to guide designers and/or analysts in the implementation of software projects.MaestríaMagíster en Ingeniería - Ingeniería de Sistemas y ComputaciónPara este trabajo, se solicitó a estudiantes de carreras a fines a la ingeniería de software, el análisis de distintos grupos de historias de usuario en español y la posterior generación manual de los diagramas de clase y casos de uso a partir de dicho análisis. De manera paralela, se aplicó procesamiento de lenguaje natural sobre las distintas historias de usuario con el fin de obtener sus características (Tokens, lemmas, etiquetas PoS) y de este modo, obtener mayor información sobre sus estructuras. Posteriormente, se construyeron reglas de patrones para la extracción de componentes UML con base en trabajos previos y las reglas gramaticales del idioma español, las cuales fueron aplicadas sobre las diferentes historias de usuario para la detección de los distintos componentes de los diagramas a construir, de acuerdo a la estructura gramatical de las mismas. Una vez extraídos, los componentes son organizados en un archivo de texto, el cual es procesado por un generador automático de diagramas UML y de este modo, obtener los diagramas correspondientes a los diferentes grupos de historias de usuario. Para la evaluación de desempeño del modelo computacional, se realizó una comparación de los componentes encontrados de manera automática y los componentes obtenidos manualmente, teniendo en cuenta diferentes umbrales de similaridad entre los componentes para calcular la precisión, recall y F1 del modelo computacional, frente a la generación manual de diagramas UML partiendo de historias de usuario.Ingeniería de Softwarexvi, 95 páginasapplication/pdfspaUniversidad Nacional de ColombiaBogotá - Ingeniería - Maestría en Ingeniería - Ingeniería de Sistemas y ComputaciónFacultad de IngenieríaBogotá,ColombiaUniversidad Nacional de Colombia - Sede BogotáGeneración de diagramas de clase y casos de uso a partir de historias de usuario utilizando procesamiento de lenguaje naturalGenerating class diagrams and use cases from user stories using natural language processingTrabajo de grado - Maestríainfo:eu-repo/semantics/masterThesisinfo:eu-repo/semantics/acceptedVersionTexthttp://purl.org/redcol/resource_type/TMA. Batool, Y. Motla, B. Hamid, S. Asghar, M. Mukhtar, and M. Ahmed, “Comparative study of traditional requirement engineering and agile requirement engineering,” pp. 1006–1014, 01 2013.H. Gomaa, “Software modeling and design: Uml, use cases, patterns, and software architectures,” Software Modeling and Design: UML, Use Cases, Patterns, and Software Architectures, pp. 1–550, 01 2011.J. Rumbaugh, G. Booch, and I. Jacobson, The Unified Modeling Language Reference Manual. Addison-Wesley, 2010.R. Lee, Artificial Intelligence in Daily Life. 01 2020.C. Narawita and K. Vidanage, “Uml generator – use case and class diagram generation from text requirements,” International Journal on Advances in ICT for Emerging Regions (ICTer), vol. 10, p. 1, 01 2018.S. Vemuri, S. Chala, and M. Fathi, “Automated use case diagram generation from textual user requirement documents,” pp. 1–4, 04 2017.F. Gilson and C. Irwin, “From user stories to use case scenarios - towards a generative approach,” 12 2018.S. Nasiri, Y. Rhazali, M. Lahmer, and N. Chenfour, “Towards a generation of class diagram from user stories in agile methods,” Procedia Computer Science, vol. 170, pp. 831– 837, 01 2020.S. Nasiri, Y. Rhazali, M. Lahmer, and A. Adadi, “From user stories to uml diagrams driven by ontological and production model,” International Journal of Advanced Computer Science and Applications, vol. 12, 01 2021.A. M. Maatuk and E. A. Abdelnabi, “Generating uml use case and activity diagrams using nlp techniques and heuristics rules,” in International Conference on Data Science, E-Learning and Information Systems 2021, DATA’21, (New York, NY, USA), p. 271–277, Association for Computing Machinery, 2021.S. Ahmed, A. Ahmed, and N. U. Eisty, “Automatic transformation of natural to unified modeling language: A systematic review,” in 2022 IEEE/ACIS 20th International Conference on Software Engineering Research, Management and Applications (SERA), pp. 112–119, 2022.E. A. Abdelnabi, A. M. Maatuk, and M. Hagal, “Generating uml class diagram from natural language requirements: A survey of approaches and techniques,” in 2021 IEEE 1st International Maghreb Meeting of the Conference on Sciences and Techniques of Automatic Control and Computer Engineering MI-STA, pp. 288–293, 2021.M. H. Kassab, “The changing landscape of requirements engineering practices over the past decade,” 2015 IEEE Fifth International Workshop on Empirical Requirements Engineering (EmpiRE), pp. 1–8, 2015.I. K. Raharjana, D. Siahaan, and C. Fatichah, “User stories and natural language processing: A systematic literature review,” IEEE Access, vol. 9, pp. 53811–53826, 2021.G. Lucassen, F. Dalpiaz, J. M. Werf, and S. Brinkkemper, “The use and effectiveness of user stories in practice,” in Proceedings of the 22nd International Working Conference on Requirements Engineering: Foundation for Software Quality - Volume 9619, REFSQ 2016, (Berlin, Heidelberg), p. 205–222, Springer-Verlag, 2016.E. Btoush and M. Hammad, “Generating er diagrams from requirement specifications based on natural language processing,” International Journal of Database Theory and Application, vol. 8, pp. 61–70, 04 2015.E. Meryem, K. Nafil, and R. Touahni, “Automatic transformation of user stories into uml use case diagrams using nlp techniques,” Procedia Computer Science, vol. 130, pp. 42–49, 01 2018.A. Gupta, “Generation of multiple conceptual models from user stories in agile,” in REFSQ Workshops, 2019.Y. Rigou, D. Lamontagne, and I. Khriss, “A sketch of a deep learning approach for discovering uml class diagrams from system’s textual specification,” 2020 1st International Conference on Innovative Research in Applied Science, Engineering and Technology (IRASET), pp. 1–6, 2020.T. Kochbati., S. Li., S. G´erard., and C. Mraidha., “From user stories to models: A machine learning empowered automation,” in Proceedings of the 9th International Conference on Model-Driven Engineering and Software Development - MODELSWARD,, pp. 28–40, INSTICC, SciTePress, 2021.F. Dalpiaz, “Requirements data sets (user stories),” 2018.F. Dalpiaz, A. Sturm, and P. Gieske, “Extraction of conceptual models: User stories vs. use cases,” 2020.A. N´ev´eol, H. Dalianis, S. Velupillai, G. Savova, and P. Zweigenbaum, “Clinical natural language processing in languages other than english: Opportunities and challenges,” Journal of biomedical semantics, vol. 9, p. 12, 03 2018.M. S. M. Suhaimin, M. H. A. Hijazi, R. Alfred, and F. Coenen, “Natural language processing based features for sarcasm detection: An investigation using bilingual social media texts,” in 2017 8th International Conference on Information Technology (ICIT), pp. 703–709, 2017.S. Elbasha, A. Elhawil, and N. Drawil, “Multilingual sentiment analysis to support business decision-making via machine learning models,” 12 2021.S. N. Group., “Stanza – a python nlp package for many human languages.” Accedido en 24-09-2022 a https://stanfordnlp.github.io/stanza/, 2020.Ingeniería de la computación-enseñanzas, congresos, conferencias, etc.Estructura de datos (computadores)Computer engineering - study and teaching - congressesData structure (computer science)Reconocimiento de patronesModelos computacionalesProcesamiento de lenguaje naturalAprendizaje de maquinaAnálisis de requerimientosHistorias de usuarioUMLPatterns recognitionComputational modelsNatural language processingMachine learningRequirements analysisUser storiesLICENSElicense.txtlicense.txttext/plain; charset=utf-85879https://repositorio.unal.edu.co/bitstream/unal/83672/1/license.txteb34b1cf90b7e1103fc9dfd26be24b4aMD51ORIGINAL1016095600.2023.pdf1016095600.2023.pdfMaestría en Ingeniería - Ingeniería de Sistemas y Computaciónapplication/pdf2400423https://repositorio.unal.edu.co/bitstream/unal/83672/2/1016095600.2023.pdfe373461b1c8f54128fc4657ff8e22af0MD52THUMBNAIL1016095600.2023.pdf.jpg1016095600.2023.pdf.jpgGenerated Thumbnailimage/jpeg4775https://repositorio.unal.edu.co/bitstream/unal/83672/3/1016095600.2023.pdf.jpg909d2545e91d32a9d04e396267cd170eMD53unal/83672oai:repositorio.unal.edu.co:unal/836722024-07-31 23:12:51.07Repositorio Institucional Universidad Nacional de Colombiarepositorio_nal@unal.edu.coUEFSVEUgMS4gVMOJUk1JTk9TIERFIExBIExJQ0VOQ0lBIFBBUkEgUFVCTElDQUNJw5NOIERFIE9CUkFTIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgVU5BTC4KCkxvcyBhdXRvcmVzIHkvbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIHBhdHJpbW9uaWFsZXMgZGUgYXV0b3IsIGNvbmZpZXJlbiBhIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHVuYSBsaWNlbmNpYSBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgc2UgaW50ZWdyYSBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsLCBiYWpvIGxvcyBzaWd1aWVudGVzIHTDqXJtaW5vczoKCgphKQlMb3MgYXV0b3JlcyB5L28gbG9zIHRpdHVsYXJlcyBkZSBsb3MgZGVyZWNob3MgcGF0cmltb25pYWxlcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGNvbmZpZXJlbiBhIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHVuYSBsaWNlbmNpYSBubyBleGNsdXNpdmEgcGFyYSByZWFsaXphciBsb3Mgc2lndWllbnRlcyBhY3RvcyBzb2JyZSBsYSBvYnJhOiBpKSByZXByb2R1Y2lyIGxhIG9icmEgZGUgbWFuZXJhIGRpZ2l0YWwsIHBlcm1hbmVudGUgbyB0ZW1wb3JhbCwgaW5jbHV5ZW5kbyBlbCBhbG1hY2VuYW1pZW50byBlbGVjdHLDs25pY28sIGFzw60gY29tbyBjb252ZXJ0aXIgZWwgZG9jdW1lbnRvIGVuIGVsIGN1YWwgc2UgZW5jdWVudHJhIGNvbnRlbmlkYSBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBleGlzdGVudGUgYSBsYSBmZWNoYSBkZSBsYSBzdXNjcmlwY2nDs24gZGUgbGEgcHJlc2VudGUgbGljZW5jaWEsIHkgaWkpIGNvbXVuaWNhciBhbCBww7pibGljbyBsYSBvYnJhIHBvciBjdWFscXVpZXIgbWVkaW8gbyBwcm9jZWRpbWllbnRvLCBlbiBtZWRpb3MgYWzDoW1icmljb3MgbyBpbmFsw6FtYnJpY29zLCBpbmNsdXllbmRvIGxhIHB1ZXN0YSBhIGRpc3Bvc2ljacOzbiBlbiBhY2Nlc28gYWJpZXJ0by4gQWRpY2lvbmFsIGEgbG8gYW50ZXJpb3IsIGVsIGF1dG9yIHkvbyB0aXR1bGFyIGF1dG9yaXphIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgcGFyYSBxdWUsIGVuIGxhIHJlcHJvZHVjY2nDs24geSBjb211bmljYWNpw7NuIGFsIHDDumJsaWNvIHF1ZSBsYSBVbml2ZXJzaWRhZCByZWFsaWNlIHNvYnJlIGxhIG9icmEsIGhhZ2EgbWVuY2nDs24gZGUgbWFuZXJhIGV4cHJlc2EgYWwgdGlwbyBkZSBsaWNlbmNpYSBDcmVhdGl2ZSBDb21tb25zIGJham8gbGEgY3VhbCBlbCBhdXRvciB5L28gdGl0dWxhciBkZXNlYSBvZnJlY2VyIHN1IG9icmEgYSBsb3MgdGVyY2Vyb3MgcXVlIGFjY2VkYW4gYSBkaWNoYSBvYnJhIGEgdHJhdsOpcyBkZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCwgY3VhbmRvIHNlYSBlbCBjYXNvLiBFbCBhdXRvciB5L28gdGl0dWxhciBkZSBsb3MgZGVyZWNob3MgcGF0cmltb25pYWxlcyBkZSBhdXRvciBwb2Ryw6EgZGFyIHBvciB0ZXJtaW5hZGEgbGEgcHJlc2VudGUgbGljZW5jaWEgbWVkaWFudGUgc29saWNpdHVkIGVsZXZhZGEgYSBsYSBEaXJlY2Npw7NuIE5hY2lvbmFsIGRlIEJpYmxpb3RlY2FzIGRlIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhLiAKCmIpIAlMb3MgYXV0b3JlcyB5L28gdGl0dWxhcmVzIGRlIGxvcyBkZXJlY2hvcyBwYXRyaW1vbmlhbGVzIGRlIGF1dG9yIHNvYnJlIGxhIG9icmEgY29uZmllcmVuIGxhIGxpY2VuY2lhIHNlw7FhbGFkYSBlbiBlbCBsaXRlcmFsIGEpIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8gcG9yIGVsIHRpZW1wbyBkZSBwcm90ZWNjacOzbiBkZSBsYSBvYnJhIGVuIHRvZG9zIGxvcyBwYcOtc2VzIGRlbCBtdW5kbywgZXN0byBlcywgc2luIGxpbWl0YWNpw7NuIHRlcnJpdG9yaWFsIGFsZ3VuYS4KCmMpCUxvcyBhdXRvcmVzIHkvbyB0aXR1bGFyZXMgZGUgZGVyZWNob3MgcGF0cmltb25pYWxlcyBkZSBhdXRvciBtYW5pZmllc3RhbiBlc3RhciBkZSBhY3VlcmRvIGNvbiBxdWUgbGEgcHJlc2VudGUgbGljZW5jaWEgc2Ugb3RvcmdhIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCByZW51bmNpYW4gYSByZWNpYmlyIGN1YWxxdWllciByZXRyaWJ1Y2nDs24gZWNvbsOzbWljYSBvIGVtb2x1bWVudG8gYWxndW5vIHBvciBsYSBwdWJsaWNhY2nDs24sIGRpc3RyaWJ1Y2nDs24sIGNvbXVuaWNhY2nDs24gcMO6YmxpY2EgeSBjdWFscXVpZXIgb3RybyB1c28gcXVlIHNlIGhhZ2EgZW4gbG9zIHTDqXJtaW5vcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGRlIGxhIGxpY2VuY2lhIENyZWF0aXZlIENvbW1vbnMgY29uIHF1ZSBzZSBwdWJsaWNhLgoKZCkJUXVpZW5lcyBmaXJtYW4gZWwgcHJlc2VudGUgZG9jdW1lbnRvIGRlY2xhcmFuIHF1ZSBwYXJhIGxhIGNyZWFjacOzbiBkZSBsYSBvYnJhLCBubyBzZSBoYW4gdnVsbmVyYWRvIGxvcyBkZXJlY2hvcyBkZSBwcm9waWVkYWQgaW50ZWxlY3R1YWwsIGluZHVzdHJpYWwsIG1vcmFsZXMgeSBwYXRyaW1vbmlhbGVzIGRlIHRlcmNlcm9zLiBEZSBvdHJhIHBhcnRlLCAgcmVjb25vY2VuIHF1ZSBsYSBVbml2ZXJzaWRhZCBOYWNpb25hbCBkZSBDb2xvbWJpYSBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlIHkgc2UgZW5jdWVudHJhIGV4ZW50YSBkZSBjdWxwYSBlbiBjYXNvIGRlIHByZXNlbnRhcnNlIGFsZ8O6biB0aXBvIGRlIHJlY2xhbWFjacOzbiBlbiBtYXRlcmlhIGRlIGRlcmVjaG9zIGRlIGF1dG9yIG8gcHJvcGllZGFkIGludGVsZWN0dWFsIGVuIGdlbmVyYWwuIFBvciBsbyB0YW50bywgbG9zIGZpcm1hbnRlcyAgYWNlcHRhbiBxdWUgY29tbyB0aXR1bGFyZXMgw7puaWNvcyBkZSBsb3MgZGVyZWNob3MgcGF0cmltb25pYWxlcyBkZSBhdXRvciwgYXN1bWlyw6FuIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIGNpdmlsLCBhZG1pbmlzdHJhdGl2YSB5L28gcGVuYWwgcXVlIHB1ZWRhIGRlcml2YXJzZSBkZSBsYSBwdWJsaWNhY2nDs24gZGUgbGEgb2JyYS4gIAoKZikJQXV0b3JpemFuIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgaW5jbHVpciBsYSBvYnJhIGVuIGxvcyBhZ3JlZ2Fkb3JlcyBkZSBjb250ZW5pZG9zLCBidXNjYWRvcmVzIGFjYWTDqW1pY29zLCBtZXRhYnVzY2Fkb3Jlcywgw61uZGljZXMgeSBkZW3DoXMgbWVkaW9zIHF1ZSBzZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBwcm9tb3ZlciBlbCBhY2Nlc28geSBjb25zdWx0YSBkZSBsYSBtaXNtYS4gCgpnKQlFbiBlbCBjYXNvIGRlIGxhcyB0ZXNpcyBjcmVhZGFzIHBhcmEgb3B0YXIgZG9ibGUgdGl0dWxhY2nDs24sIGxvcyBmaXJtYW50ZXMgc2Vyw6FuIGxvcyByZXNwb25zYWJsZXMgZGUgY29tdW5pY2FyIGEgbGFzIGluc3RpdHVjaW9uZXMgbmFjaW9uYWxlcyBvIGV4dHJhbmplcmFzIGVuIGNvbnZlbmlvLCBsYXMgbGljZW5jaWFzIGRlIGFjY2VzbyBhYmllcnRvIENyZWF0aXZlIENvbW1vbnMgeSBhdXRvcml6YWNpb25lcyBhc2lnbmFkYXMgYSBzdSBvYnJhIHBhcmEgbGEgcHVibGljYWNpw7NuIGVuIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgVU5BTCBkZSBhY3VlcmRvIGNvbiBsYXMgZGlyZWN0cmljZXMgZGUgbGEgUG9sw610aWNhIEdlbmVyYWwgZGUgbGEgQmlibGlvdGVjYSBEaWdpdGFsLgoKCmgpCVNlIGF1dG9yaXphIGEgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEgY29tbyByZXNwb25zYWJsZSBkZWwgdHJhdGFtaWVudG8gZGUgZGF0b3MgcGVyc29uYWxlcywgZGUgYWN1ZXJkbyBjb24gbGEgbGV5IDE1ODEgZGUgMjAxMiBlbnRlbmRpZW5kbyBxdWUgc2UgZW5jdWVudHJhbiBiYWpvIG1lZGlkYXMgcXVlIGdhcmFudGl6YW4gbGEgc2VndXJpZGFkLCBjb25maWRlbmNpYWxpZGFkIGUgaW50ZWdyaWRhZCwgeSBzdSB0cmF0YW1pZW50byB0aWVuZSB1bmEgZmluYWxpZGFkIGhpc3TDs3JpY2EsIGVzdGFkw61zdGljYSBvIGNpZW50w61maWNhIHNlZ8O6biBsbyBkaXNwdWVzdG8gZW4gbGEgUG9sw610aWNhIGRlIFRyYXRhbWllbnRvIGRlIERhdG9zIFBlcnNvbmFsZXMuCgoKClBBUlRFIDIuIEFVVE9SSVpBQ0nDk04gUEFSQSBQVUJMSUNBUiBZIFBFUk1JVElSIExBIENPTlNVTFRBIFkgVVNPIERFIE9CUkFTIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgVU5BTC4KClNlIGF1dG9yaXphIGxhIHB1YmxpY2FjacOzbiBlbGVjdHLDs25pY2EsIGNvbnN1bHRhIHkgdXNvIGRlIGxhIG9icmEgcG9yIHBhcnRlIGRlIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHkgZGUgc3VzIHVzdWFyaW9zIGRlIGxhIHNpZ3VpZW50ZSBtYW5lcmE6CgphLglDb25jZWRvIGxpY2VuY2lhIGVuIGxvcyB0w6lybWlub3Mgc2XDsWFsYWRvcyBlbiBsYSBwYXJ0ZSAxIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8sIGNvbiBlbCBvYmpldGl2byBkZSBxdWUgbGEgb2JyYSBlbnRyZWdhZGEgc2VhIHB1YmxpY2FkYSBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhIHkgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGVuIGFjY2VzbyBhYmllcnRvIHBhcmEgc3UgY29uc3VsdGEgcG9yIGxvcyB1c3VhcmlvcyBkZSBsYSBVbml2ZXJzaWRhZCBOYWNpb25hbCBkZSBDb2xvbWJpYSAgYSB0cmF2w6lzIGRlIGludGVybmV0LgoKCgpQQVJURSAzIEFVVE9SSVpBQ0nDk04gREUgVFJBVEFNSUVOVE8gREUgREFUT1MgUEVSU09OQUxFUy4KCkxhIFVuaXZlcnNpZGFkIE5hY2lvbmFsIGRlIENvbG9tYmlhLCBjb21vIHJlc3BvbnNhYmxlIGRlbCBUcmF0YW1pZW50byBkZSBEYXRvcyBQZXJzb25hbGVzLCBpbmZvcm1hIHF1ZSBsb3MgZGF0b3MgZGUgY2Fyw6FjdGVyIHBlcnNvbmFsIHJlY29sZWN0YWRvcyBtZWRpYW50ZSBlc3RlIGZvcm11bGFyaW8sIHNlIGVuY3VlbnRyYW4gYmFqbyBtZWRpZGFzIHF1ZSBnYXJhbnRpemFuIGxhIHNlZ3VyaWRhZCwgY29uZmlkZW5jaWFsaWRhZCBlIGludGVncmlkYWQgeSBzdSB0cmF0YW1pZW50byBzZSByZWFsaXphIGRlIGFjdWVyZG8gYWwgY3VtcGxpbWllbnRvIG5vcm1hdGl2byBkZSBsYSBMZXkgMTU4MSBkZSAyMDEyIHkgZGUgbGEgUG9sw610aWNhIGRlIFRyYXRhbWllbnRvIGRlIERhdG9zIFBlcnNvbmFsZXMgZGUgbGEgVW5pdmVyc2lkYWQgTmFjaW9uYWwgZGUgQ29sb21iaWEuIFB1ZWRlIGVqZXJjZXIgc3VzIGRlcmVjaG9zIGNvbW8gdGl0dWxhciBhIGNvbm9jZXIsIGFjdHVhbGl6YXIsIHJlY3RpZmljYXIgeSByZXZvY2FyIGxhcyBhdXRvcml6YWNpb25lcyBkYWRhcyBhIGxhcyBmaW5hbGlkYWRlcyBhcGxpY2FibGVzIGEgdHJhdsOpcyBkZSBsb3MgY2FuYWxlcyBkaXNwdWVzdG9zIHkgZGlzcG9uaWJsZXMgZW4gd3d3LnVuYWwuZWR1LmNvIG8gZS1tYWlsOiBwcm90ZWNkYXRvc19uYUB1bmFsLmVkdS5jbyIKClRlbmllbmRvIGVuIGN1ZW50YSBsbyBhbnRlcmlvciwgYXV0b3Jpem8gZGUgbWFuZXJhIHZvbHVudGFyaWEsIHByZXZpYSwgZXhwbMOtY2l0YSwgaW5mb3JtYWRhIGUgaW5lcXXDrXZvY2EgYSBsYSBVbml2ZXJzaWRhZCBOYWNpb25hbCBkZSBDb2xvbWJpYSBhIHRyYXRhciBsb3MgZGF0b3MgcGVyc29uYWxlcyBkZSBhY3VlcmRvIGNvbiBsYXMgZmluYWxpZGFkZXMgZXNwZWPDrWZpY2FzIHBhcmEgZWwgZGVzYXJyb2xsbyB5IGVqZXJjaWNpbyBkZSBsYXMgZnVuY2lvbmVzIG1pc2lvbmFsZXMgZGUgZG9jZW5jaWEsIGludmVzdGlnYWNpw7NuIHkgZXh0ZW5zacOzbiwgYXPDrSBjb21vIGxhcyByZWxhY2lvbmVzIGFjYWTDqW1pY2FzLCBsYWJvcmFsZXMsIGNvbnRyYWN0dWFsZXMgeSB0b2RhcyBsYXMgZGVtw6FzIHJlbGFjaW9uYWRhcyBjb24gZWwgb2JqZXRvIHNvY2lhbCBkZSBsYSBVbml2ZXJzaWRhZC4gCgo= |