Desarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.

En este momento tecnológico, el área de investigación de los robots manipuladores está muy activa, ya que el impacto que han tenido en el desarrollo de la automatización y optimización de procesos ha sido gigantesco. Esto gracias a la mejora en las velocidades de procesamiento, la evolución de los s...

Full description

Autores:
Nieto Solano, Juan Sebastián
Toro Mendoza, Sergio Andrés
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2022
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/30190
Acceso en línea:
http://hdl.handle.net/11349/30190
Palabra clave:
Jacobiano
Trayectoria
Robótica móvil
Cinemática directa
Interfaz gráfica sobre Matlab
Cinemática inversa
Ingeniería Electrónica - Tesis y disertaciones académicas
Robótica
Matlab (Programa para computador)
Interfaces gráficas con el usuario (Sistemas para computador)
Sistema de representación tridimensional
Sistemas de control de autómatas
Jacobian
Trajectory
Mobile robotics
Direct kinematics
Graphical interface on matlab
Inverse kinematics
Rights
License
Attribution-NonCommercial-NoDerivatives 4.0 Internacional
id UDISTRITA2_dd101ccbd9d5fd0e0b4e5fc25533d1b3
oai_identifier_str oai:repository.udistrital.edu.co:11349/30190
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Desarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.
dc.title.titleenglish.spa.fl_str_mv Development of an interactive graphical interface for the OpenBotv V1 robot in the MATLAB environment.
title Desarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.
spellingShingle Desarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.
Jacobiano
Trayectoria
Robótica móvil
Cinemática directa
Interfaz gráfica sobre Matlab
Cinemática inversa
Ingeniería Electrónica - Tesis y disertaciones académicas
Robótica
Matlab (Programa para computador)
Interfaces gráficas con el usuario (Sistemas para computador)
Sistema de representación tridimensional
Sistemas de control de autómatas
Jacobian
Trajectory
Mobile robotics
Direct kinematics
Graphical interface on matlab
Inverse kinematics
title_short Desarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.
title_full Desarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.
title_fullStr Desarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.
title_full_unstemmed Desarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.
title_sort Desarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.
dc.creator.fl_str_mv Nieto Solano, Juan Sebastián
Toro Mendoza, Sergio Andrés
dc.contributor.advisor.none.fl_str_mv Ovalle Martinez, Diana Marcela
dc.contributor.author.none.fl_str_mv Nieto Solano, Juan Sebastián
Toro Mendoza, Sergio Andrés
dc.subject.spa.fl_str_mv Jacobiano
Trayectoria
Robótica móvil
Cinemática directa
Interfaz gráfica sobre Matlab
Cinemática inversa
topic Jacobiano
Trayectoria
Robótica móvil
Cinemática directa
Interfaz gráfica sobre Matlab
Cinemática inversa
Ingeniería Electrónica - Tesis y disertaciones académicas
Robótica
Matlab (Programa para computador)
Interfaces gráficas con el usuario (Sistemas para computador)
Sistema de representación tridimensional
Sistemas de control de autómatas
Jacobian
Trajectory
Mobile robotics
Direct kinematics
Graphical interface on matlab
Inverse kinematics
dc.subject.lemb.spa.fl_str_mv Ingeniería Electrónica - Tesis y disertaciones académicas
Robótica
Matlab (Programa para computador)
Interfaces gráficas con el usuario (Sistemas para computador)
Sistema de representación tridimensional
Sistemas de control de autómatas
dc.subject.keyword.spa.fl_str_mv Jacobian
Trajectory
Mobile robotics
Direct kinematics
Graphical interface on matlab
Inverse kinematics
description En este momento tecnológico, el área de investigación de los robots manipuladores está muy activa, ya que el impacto que han tenido en el desarrollo de la automatización y optimización de procesos ha sido gigantesco. Esto gracias a la mejora en las velocidades de procesamiento, la evolución de los sistemas embebidos, los avances en la miniaturización electrónica e, incluso, la impresión 3D, por solo mencionar algunos hechos relacionados. La robótica de manipuladores, y su estudio con unidades prácticas, se ha empezado a incluir en los programas de ingeniería electrónica y otras ingeniería afines en las últimas dos décadas. Siendo un área de alto interés entre los estudiantes ansiosos por conocer como funciona la electrónica y demás conceptos matemáticos detrás de los robots de hoy día. Específicamente, en la Universidad Distrital Francisco José de Caldas, hace algunos años el Laboratorio de la Facultad de Ingeniería inició una inversión elevada en equipos de laboratorio orientados al control y la robótica móvil, entre ellos el robot manipulador OpenBotv V1 de la empresa ROBOTICS 4.0, que cuenta con 6 grados de libertad, conexión serial y bluetooth, entre otras características. Con la inclusión de la electiva intrínseca de Robótica Móvil se le ha dado uso a la mayoría de los equipos que componen el laboratorio. Sin embargo, el robot OpenBotv V1 no ha sido tan utilizado, debido a los riesgos inherentes que pueden generar el uso inadecuado del equipo, teniendo en cuenta el costo elevado del mismo, además de las limitaciones de acceso a los diversos equipos que se dio por más de año y medio a consecuencia de la pandemia del COVID-19. Justamente, ese auge y los retos que supone, hace que la robótica de manipuladores sea una temática que bien vale la pena ser estudiada y explorada por estudiantes de ingeniería electrónica. Sin embargo, los primeros acercamientos a estos robots, bien puede hacerse no solo de forma teórica, sino a partir de simuladores que le den confianza a la persona en formación, para posteriormente iniciar el trabajo con el manipulador real. El robot OpenBotv V1 tiene una amplia variedad de posibilidades de comunicación por PC mediante distintos entornos como Matlab, LabView, C++, Java, Python y ROS. También se dispone de una interfaz gráfica para teléfonos móviles, desde la cual se pueden lograr desarrollar algunos movimientos básicos con el robot. Sin embargo, para lograr el trabajo adecuado con el robot, además de descargar algunas librerías y configurar algunos componentes de software de forma adecuada, es indispensable tener en cuenta en la programación las limitaciones de giro de cada una de las diversas articulaciones, con el fin de no generar comportamientos inesperados de los motores y por ende del robot como tal. Justamente la necesidad de tener en cuenta las características del robot, nos llevaron, de la mano del fabricante del Openbot V1, a plantear la posibilidad de diseñar e implementar una interfaz gráfica que permita el trabajo de forma más segura con el robot. Buscando familiarizar a los estudiantes con los conceptos asociados a la cinemática del robot manipulador Openbotv1 y minimizar los riesgos que pueda presentar el uso del equipo por personal inexperto, se propuso desarrollar una interfaz gráfica interactiva, que permita simular el comportamiento cinemático del robot, con características lo más cercanas posibles a las del equipo real, que permita a los estudiantes, y a los usuarios en general del Openbotv1, afianzar conceptos sobre el manipulador, con el fin de validar su adecuado funcionamiento y la conveniencia de implementar ciertas instrucciones en el equipo real. Adicionalmente, se busca logró una conexión del robot a la interfaz, de forma transparente para el usuario, de forma que todo lo simulado sobre la interfaz puede ser descargado para implementación sobre el robot real. La interfaz que se planteo desarrollar está orientada a que los usuarios del Openbotv V1 tengan una herramienta para validar cálculos de cinemáticas directas e inversas de cinco configuraciones del robot, el espacio de trabajo del robot en sus diferentes configuraciones, la generación de trayectorias a través de polinomios cúbicos y el cálculo de velocidades adecuadas para ir de un punto a otro. Todo lo anterior, tanto por simulación, como en implementación, a través de la comunicación de la interfaz con el robot real.
publishDate 2022
dc.date.accessioned.none.fl_str_mv 2022-09-08T19:34:49Z
dc.date.available.none.fl_str_mv 2022-09-08T19:34:49Z
dc.date.created.none.fl_str_mv 2022-08-30
dc.type.degree.spa.fl_str_mv Monografía
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
format http://purl.org/coar/resource_type/c_7a1f
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/11349/30190
url http://hdl.handle.net/11349/30190
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.*.fl_str_mv Attribution-NonCommercial-NoDerivatives 4.0 Internacional
Attribution-NonCommercial-NoDerivatives 4.0 Internacional
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.uri.*.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
dc.rights.acceso.spa.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv Attribution-NonCommercial-NoDerivatives 4.0 Internacional
http://creativecommons.org/licenses/by-nc-nd/4.0/
Abierto (Texto Completo)
http://purl.org/coar/access_right/c_abf2
dc.format.mimetype.spa.fl_str_mv pdf
institution Universidad Distrital Francisco José de Caldas
bitstream.url.fl_str_mv https://repository.udistrital.edu.co/bitstreams/f9034886-ef0b-4e1e-b2a4-5f10a4eabbfb/download
https://repository.udistrital.edu.co/bitstreams/c6a4d9ad-16bb-49e0-bcd2-2943db1b624a/download
https://repository.udistrital.edu.co/bitstreams/b13c6bcd-4573-4b54-9c7c-e9f2b25dccf8/download
https://repository.udistrital.edu.co/bitstreams/35bb23b3-4f84-41dd-9298-10ed0f18d04f/download
https://repository.udistrital.edu.co/bitstreams/7eecc201-2465-4a25-9dc6-2a25d555f8a7/download
https://repository.udistrital.edu.co/bitstreams/43e5da93-55b8-4e00-b34b-506ef4dbb0a8/download
bitstream.checksum.fl_str_mv 997daf6c648c962d566d7b082dac908d
4460e5956bc1d1639be9ae6146a50347
1415361cab59cb3b10b75da592761d19
91a71157aa9d9914067561609cd783a2
f4c1aa5aab27fc97be769bb60e871d5c
d266e8e445648e8b92ab315040005fa6
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Universidad Distrital
repository.mail.fl_str_mv repositorio@udistrital.edu.co
_version_ 1837007253638479872
spelling Ovalle Martinez, Diana Marcelawill be generated::orcid::0000-0002-3650-4273600Nieto Solano, Juan SebastiánToro Mendoza, Sergio Andrés2022-09-08T19:34:49Z2022-09-08T19:34:49Z2022-08-30http://hdl.handle.net/11349/30190En este momento tecnológico, el área de investigación de los robots manipuladores está muy activa, ya que el impacto que han tenido en el desarrollo de la automatización y optimización de procesos ha sido gigantesco. Esto gracias a la mejora en las velocidades de procesamiento, la evolución de los sistemas embebidos, los avances en la miniaturización electrónica e, incluso, la impresión 3D, por solo mencionar algunos hechos relacionados. La robótica de manipuladores, y su estudio con unidades prácticas, se ha empezado a incluir en los programas de ingeniería electrónica y otras ingeniería afines en las últimas dos décadas. Siendo un área de alto interés entre los estudiantes ansiosos por conocer como funciona la electrónica y demás conceptos matemáticos detrás de los robots de hoy día. Específicamente, en la Universidad Distrital Francisco José de Caldas, hace algunos años el Laboratorio de la Facultad de Ingeniería inició una inversión elevada en equipos de laboratorio orientados al control y la robótica móvil, entre ellos el robot manipulador OpenBotv V1 de la empresa ROBOTICS 4.0, que cuenta con 6 grados de libertad, conexión serial y bluetooth, entre otras características. Con la inclusión de la electiva intrínseca de Robótica Móvil se le ha dado uso a la mayoría de los equipos que componen el laboratorio. Sin embargo, el robot OpenBotv V1 no ha sido tan utilizado, debido a los riesgos inherentes que pueden generar el uso inadecuado del equipo, teniendo en cuenta el costo elevado del mismo, además de las limitaciones de acceso a los diversos equipos que se dio por más de año y medio a consecuencia de la pandemia del COVID-19. Justamente, ese auge y los retos que supone, hace que la robótica de manipuladores sea una temática que bien vale la pena ser estudiada y explorada por estudiantes de ingeniería electrónica. Sin embargo, los primeros acercamientos a estos robots, bien puede hacerse no solo de forma teórica, sino a partir de simuladores que le den confianza a la persona en formación, para posteriormente iniciar el trabajo con el manipulador real. El robot OpenBotv V1 tiene una amplia variedad de posibilidades de comunicación por PC mediante distintos entornos como Matlab, LabView, C++, Java, Python y ROS. También se dispone de una interfaz gráfica para teléfonos móviles, desde la cual se pueden lograr desarrollar algunos movimientos básicos con el robot. Sin embargo, para lograr el trabajo adecuado con el robot, además de descargar algunas librerías y configurar algunos componentes de software de forma adecuada, es indispensable tener en cuenta en la programación las limitaciones de giro de cada una de las diversas articulaciones, con el fin de no generar comportamientos inesperados de los motores y por ende del robot como tal. Justamente la necesidad de tener en cuenta las características del robot, nos llevaron, de la mano del fabricante del Openbot V1, a plantear la posibilidad de diseñar e implementar una interfaz gráfica que permita el trabajo de forma más segura con el robot. Buscando familiarizar a los estudiantes con los conceptos asociados a la cinemática del robot manipulador Openbotv1 y minimizar los riesgos que pueda presentar el uso del equipo por personal inexperto, se propuso desarrollar una interfaz gráfica interactiva, que permita simular el comportamiento cinemático del robot, con características lo más cercanas posibles a las del equipo real, que permita a los estudiantes, y a los usuarios en general del Openbotv1, afianzar conceptos sobre el manipulador, con el fin de validar su adecuado funcionamiento y la conveniencia de implementar ciertas instrucciones en el equipo real. Adicionalmente, se busca logró una conexión del robot a la interfaz, de forma transparente para el usuario, de forma que todo lo simulado sobre la interfaz puede ser descargado para implementación sobre el robot real. La interfaz que se planteo desarrollar está orientada a que los usuarios del Openbotv V1 tengan una herramienta para validar cálculos de cinemáticas directas e inversas de cinco configuraciones del robot, el espacio de trabajo del robot en sus diferentes configuraciones, la generación de trayectorias a través de polinomios cúbicos y el cálculo de velocidades adecuadas para ir de un punto a otro. Todo lo anterior, tanto por simulación, como en implementación, a través de la comunicación de la interfaz con el robot real.At this technological moment, the research area of manipulator robots is very active, since the impact they have had on the development of automation and process optimization has been enormous. This thanks to the improvement in processing speeds, the evolution of embedded systems, the advances in electronic miniaturization, and even 3D printing, just to mention a few related facts. Manipulator robotics, and its study with practical units, has begun to be included in electronic engineering programs and other related engineering programs in the last two decades. Being an area of high interest among students eager to learn how the electronics and other mathematical concepts behind today's robots work. Specifically, at Universidad Distrital Francisco José de Caldas, a few years ago the Laboratory of Facultad de Ingeniería began a high investment in laboratory equipment oriented to control and mobile robotics, among them the OpenBotv V1 manipulator robot from the company ROBOTCS 4.0, that has 6 degrees of freedom, serial connection and bluetooth, among other features. With the inclusion of the intrinsic elective of Mobile Robotics, most of the equipment in the laboratory has been used. However, the OpenBotv V1 robot has not been used as much, due to the inherent risks that can be generated by the improper use of the equipment, taking into account its high cost, in addition to the limitations of access to the various equipment that was given for more than a year and a half as a result of the COVID-19 pandemic. Precisely, this boom and the challenges it entails, makes manipulator robotics a topic that is well worth studying and exploring by electronics engineering students. However, the first approaches to these robots should be done not only theoretically, but from simulators that give confidence to the person in training, to later start working with the real manipulator. The OpenBotv V1 robot has a wide variety of PC communication possibilities using different environments such as Matlab, LabView, C++, Java, Python and ROS. There is also a mobile graphical interface, to perform some basic movements with the robot from mobile devices. However, in order to get the robot to work properly, in addition to downloading some libraries and configuring some software components properly, it is essential to take into account the rotation limitations of each of the various joints in the programming, in order to not to generate unexpected behavior of the motors and therefore of the robot. Precisely the need to take into account the characteristics of the robot led us, together with the manufacturer of Openbot V1, to consider the possibility of designing and implementing a graphical interface that allows working more safely with the robot.pdfspaAttribution-NonCommercial-NoDerivatives 4.0 InternacionalAttribution-NonCommercial-NoDerivatives 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2JacobianoTrayectoriaRobótica móvilCinemática directaInterfaz gráfica sobre MatlabCinemática inversaIngeniería Electrónica - Tesis y disertaciones académicasRobóticaMatlab (Programa para computador)Interfaces gráficas con el usuario (Sistemas para computador)Sistema de representación tridimensionalSistemas de control de autómatasJacobianTrajectoryMobile roboticsDirect kinematicsGraphical interface on matlabInverse kinematicsDesarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.Development of an interactive graphical interface for the OpenBotv V1 robot in the MATLAB environment.Monografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fLICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/f9034886-ef0b-4e1e-b2a4-5f10a4eabbfb/download997daf6c648c962d566d7b082dac908dMD53CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8805https://repository.udistrital.edu.co/bitstreams/c6a4d9ad-16bb-49e0-bcd2-2943db1b624a/download4460e5956bc1d1639be9ae6146a50347MD52ORIGINALDesarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.pdfDesarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.pdfToroMendozaSergioAndrés2022.pdfapplication/pdf9633250https://repository.udistrital.edu.co/bitstreams/b13c6bcd-4573-4b54-9c7c-e9f2b25dccf8/download1415361cab59cb3b10b75da592761d19MD51Licencia de uso y publicacion editable.pdfLicencia de uso y publicacion editable.pdfLicencia de uso y publicaciónapplication/pdf632964https://repository.udistrital.edu.co/bitstreams/35bb23b3-4f84-41dd-9298-10ed0f18d04f/download91a71157aa9d9914067561609cd783a2MD54THUMBNAILDesarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.pdf.jpgDesarrollo de una interfaz gráfica interactiva para el robot OpenBotv V1 en el entorno de MATLAB.pdf.jpgIM Thumbnailimage/jpeg2880https://repository.udistrital.edu.co/bitstreams/7eecc201-2465-4a25-9dc6-2a25d555f8a7/downloadf4c1aa5aab27fc97be769bb60e871d5cMD55Licencia de uso y publicacion editable.pdf.jpgLicencia de uso y publicacion editable.pdf.jpgIM Thumbnailimage/jpeg13121https://repository.udistrital.edu.co/bitstreams/43e5da93-55b8-4e00-b34b-506ef4dbb0a8/downloadd266e8e445648e8b92ab315040005fa6MD5611349/30190oai:repository.udistrital.edu.co:11349/301902023-06-13 15:12:37.472http://creativecommons.org/licenses/by-nc-nd/4.0/Attribution-NonCommercial-NoDerivatives 4.0 Internacionalrestrictedhttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK