Diseño e implementación de una interfaz web para control de una plataforma móvil tipo oruga con propósitos de exploración.

Las plataformas móviles teleoperadas simplifican las formas de desarrollar las diferentes tareas que realiza el ser humano, especialmente en las labores donde se pueda ver afectada su integridad, donde haya poca accesibilidad o sea muy costoso su acceso, siendo usadas en áreas de investigación, educ...

Full description

Autores:
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/31815
Acceso en línea:
http://hdl.handle.net/11349/31815
Palabra clave:
Robots móviles
Exploración
Interfaz WEB
Red de área local
Raspberry Pi
Servicios web
Teleoperación.
Ingeniería en Telecomunicaciones -- Tesis y disertaciones académicas
Robótica
Robots
Interfaz de usuario (Sistema de ordenador)
Innovaciones tecnológicas
Dispositivos móviles
Mobile robots
Exploration
WEB interface
Local area network
Raspberry Pi
Web services
Teleoperation
Rights
License
Attribution-NonCommercial-NoDerivatives 4.0 Internacional
id UDISTRITA2_80bf5129d932706334da95e1f938d404
oai_identifier_str oai:repository.udistrital.edu.co:11349/31815
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Diseño e implementación de una interfaz web para control de una plataforma móvil tipo oruga con propósitos de exploración.
dc.title.titleenglish.spa.fl_str_mv Design and implementation of a web interface to control a caterpillar-type mobile platform for exploration purposes.
title Diseño e implementación de una interfaz web para control de una plataforma móvil tipo oruga con propósitos de exploración.
spellingShingle Diseño e implementación de una interfaz web para control de una plataforma móvil tipo oruga con propósitos de exploración.
Robots móviles
Exploración
Interfaz WEB
Red de área local
Raspberry Pi
Servicios web
Teleoperación.
Ingeniería en Telecomunicaciones -- Tesis y disertaciones académicas
Robótica
Robots
Interfaz de usuario (Sistema de ordenador)
Innovaciones tecnológicas
Dispositivos móviles
Mobile robots
Exploration
WEB interface
Local area network
Raspberry Pi
Web services
Teleoperation
title_short Diseño e implementación de una interfaz web para control de una plataforma móvil tipo oruga con propósitos de exploración.
title_full Diseño e implementación de una interfaz web para control de una plataforma móvil tipo oruga con propósitos de exploración.
title_fullStr Diseño e implementación de una interfaz web para control de una plataforma móvil tipo oruga con propósitos de exploración.
title_full_unstemmed Diseño e implementación de una interfaz web para control de una plataforma móvil tipo oruga con propósitos de exploración.
title_sort Diseño e implementación de una interfaz web para control de una plataforma móvil tipo oruga con propósitos de exploración.
dc.contributor.advisor.none.fl_str_mv CADENA MUÑOZ, ERNESTO
dc.contributor.orcid.spa.fl_str_mv CADENA MUÑOZ, ERNESTO [0000-0002-1086-3665]
dc.subject.spa.fl_str_mv Robots móviles
Exploración
Interfaz WEB
Red de área local
Raspberry Pi
Servicios web
Teleoperación.
topic Robots móviles
Exploración
Interfaz WEB
Red de área local
Raspberry Pi
Servicios web
Teleoperación.
Ingeniería en Telecomunicaciones -- Tesis y disertaciones académicas
Robótica
Robots
Interfaz de usuario (Sistema de ordenador)
Innovaciones tecnológicas
Dispositivos móviles
Mobile robots
Exploration
WEB interface
Local area network
Raspberry Pi
Web services
Teleoperation
dc.subject.lemb.none.fl_str_mv Ingeniería en Telecomunicaciones -- Tesis y disertaciones académicas
Robótica
Robots
Interfaz de usuario (Sistema de ordenador)
Innovaciones tecnológicas
Dispositivos móviles
dc.subject.keyword.spa.fl_str_mv Mobile robots
Exploration
WEB interface
Local area network
Raspberry Pi
Web services
Teleoperation
description Las plataformas móviles teleoperadas simplifican las formas de desarrollar las diferentes tareas que realiza el ser humano, especialmente en las labores donde se pueda ver afectada su integridad, donde haya poca accesibilidad o sea muy costoso su acceso, siendo usadas en áreas de investigación, educación, entretenimiento y exploración . Debido a su creciente desarrollo, en la exploración de entornos con plataformas móviles teleoperadas donde se pretende realizar búsquedas, reconocimientos y mapeo en áreas de difícil acceso o necesarias de explorar, que eviten la exposición del ser humano en diferentes ambientes y que permitan la teleoperación sencilla desde cualquier dispositivo, se presentan retos en los sistemas de movilidad para el reconocimiento de entornos, sistemas sensoriales, fuentes de alimentación, sistemas de comunicación, control e interacción con el humano, entre otros. Uno de los retos más importantes es categorizar la forma en la que se inspecciona un área determinada, ya que las condiciones de ciertos terrenos no son favorables para que los robots exploren de la misma forma o velocidad y en su mayoría requieren de estaciones de mando fijas, con controles de gran complejidad y una atención plena por parte del operador. Algunos prototipos operan inalámbricamente con límites de distancias y están ligados a un hardware específico lo cual los hace muy costosos. Por tal motivo se realiza el diseño y la implementación de una interfaz web en HTML para teleoperar un vehículo tipo oruga desde dispositivos móviles o laptops a través de una red inalámbrica, donde se pueden explorar terrenos inseguros, inestables y de difícil acceso sin necesidad de supervisión permanente por parte de un operador ni de una estación de mando fija. Cuenta con 3 modalidades sencillas de manejar, una en donde el vehículo es controlado manualmente, otra donde el vehículo se mueve de manera automática evitando obstáculos, en estas dos primeras transmite video en directo y la última, el vehículo realiza giro de 360° capturando lo que está su entorno en un video que se visualiza posteriormente. Para la plataforma móvil se realiza el montaje del vehículo tipo oruga con sus respectivos motores, tarjeta de control, sensores de proximidad, cámara y baterías. La programación está desarrollada sobre el computador de placa reducida Raspberry Pi (incrustada en la plataforma), el cual tiene función de servidor web, y controla los motores y sensores mediante programas en PHP y Python. En los resultados obtenidos al desarrollar la interfaz y la plataforma, se puede evidenciar la posibilidad de usar este dispositivo para exploración en entornos no seguros de forma remota y con diferentes modos de movimiento. Luego de las pruebas realizadas en diferentes ambientes en sus distintos modos se puede concluir que tanto la interfaz como la plataforma cumplen con la solución propuesta a los problemas presentados y pueden servir de apoyo para futuros desarrollos.
publishDate 2022
dc.date.created.none.fl_str_mv 2022-11-01
dc.date.accessioned.none.fl_str_mv 2023-07-17T18:09:57Z
dc.date.available.none.fl_str_mv 2023-07-17T18:09:57Z
dc.type.spa.fl_str_mv bachelorThesis
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/31815
url http://hdl.handle.net/11349/31815
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.*.fl_str_mv 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 http://repository.udistrital.edu.co/bitstream/11349/31815/4/license.txt
http://repository.udistrital.edu.co/bitstream/11349/31815/1/VelandiaLuisAlberto2022.pdf
http://repository.udistrital.edu.co/bitstream/11349/31815/2/Licencia%20de%20uso%20y%20publicacion.pdf
http://repository.udistrital.edu.co/bitstream/11349/31815/3/license_rdf
http://repository.udistrital.edu.co/bitstream/11349/31815/5/VelandiaLuisAlberto2022.pdf.jpg
http://repository.udistrital.edu.co/bitstream/11349/31815/6/Licencia%20de%20uso%20y%20publicacion.pdf.jpg
bitstream.checksum.fl_str_mv 997daf6c648c962d566d7b082dac908d
59391649af4abc0fb7e4100779098d39
abdcc5e3d3596404ac9b1ce6ba2e0cdf
4460e5956bc1d1639be9ae6146a50347
0e699f93c5a9feeda063d9e6eab5a6d3
b4790f6dc63bdd5b8ee90d862c9dd336
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Institucional Universidad Distrital - RIUD
repository.mail.fl_str_mv repositorio@udistrital.edu.co
_version_ 1803712664702025728
spelling CADENA MUÑOZ, ERNESTOwill be generated::orcid::0000-0002-1086-3665600CADENA MUÑOZ, ERNESTO [0000-0002-1086-3665]Velandia, Luis AlbertoBuitrago Paredes, Sergio Miguel2023-07-17T18:09:57Z2023-07-17T18:09:57Z2022-11-01http://hdl.handle.net/11349/31815Las plataformas móviles teleoperadas simplifican las formas de desarrollar las diferentes tareas que realiza el ser humano, especialmente en las labores donde se pueda ver afectada su integridad, donde haya poca accesibilidad o sea muy costoso su acceso, siendo usadas en áreas de investigación, educación, entretenimiento y exploración . Debido a su creciente desarrollo, en la exploración de entornos con plataformas móviles teleoperadas donde se pretende realizar búsquedas, reconocimientos y mapeo en áreas de difícil acceso o necesarias de explorar, que eviten la exposición del ser humano en diferentes ambientes y que permitan la teleoperación sencilla desde cualquier dispositivo, se presentan retos en los sistemas de movilidad para el reconocimiento de entornos, sistemas sensoriales, fuentes de alimentación, sistemas de comunicación, control e interacción con el humano, entre otros. Uno de los retos más importantes es categorizar la forma en la que se inspecciona un área determinada, ya que las condiciones de ciertos terrenos no son favorables para que los robots exploren de la misma forma o velocidad y en su mayoría requieren de estaciones de mando fijas, con controles de gran complejidad y una atención plena por parte del operador. Algunos prototipos operan inalámbricamente con límites de distancias y están ligados a un hardware específico lo cual los hace muy costosos. Por tal motivo se realiza el diseño y la implementación de una interfaz web en HTML para teleoperar un vehículo tipo oruga desde dispositivos móviles o laptops a través de una red inalámbrica, donde se pueden explorar terrenos inseguros, inestables y de difícil acceso sin necesidad de supervisión permanente por parte de un operador ni de una estación de mando fija. Cuenta con 3 modalidades sencillas de manejar, una en donde el vehículo es controlado manualmente, otra donde el vehículo se mueve de manera automática evitando obstáculos, en estas dos primeras transmite video en directo y la última, el vehículo realiza giro de 360° capturando lo que está su entorno en un video que se visualiza posteriormente. Para la plataforma móvil se realiza el montaje del vehículo tipo oruga con sus respectivos motores, tarjeta de control, sensores de proximidad, cámara y baterías. La programación está desarrollada sobre el computador de placa reducida Raspberry Pi (incrustada en la plataforma), el cual tiene función de servidor web, y controla los motores y sensores mediante programas en PHP y Python. En los resultados obtenidos al desarrollar la interfaz y la plataforma, se puede evidenciar la posibilidad de usar este dispositivo para exploración en entornos no seguros de forma remota y con diferentes modos de movimiento. Luego de las pruebas realizadas en diferentes ambientes en sus distintos modos se puede concluir que tanto la interfaz como la plataforma cumplen con la solución propuesta a los problemas presentados y pueden servir de apoyo para futuros desarrollos.Teleoperated mobile platforms simplify the ways of developing the different tasks that human beings perform, especially in tasks where their integrity may be affected, where there is little accessibility or where access is very expensive, being used in areas of research, education, entertainment and exploration. Due to its growing development, in the exploration of environments with teleoperated mobile platforms where it is intended to carry out searches, recognition and mapping in areas of difficult access or necessary to explore, which avoid the exposure of the human being in different environments and which allow simple teleoperation. from any device, there are challenges in mobility systems for the recognition of environments, sensory systems, power supplies, communication systems, control and interaction with humans, among others. One of the most important challenges is to categorize the way in which a certain area is inspected, since the conditions of certain terrains are not favorable for robots to explore in the same way or speed and most of them require fixed command stations. , with highly complex controls and full attention from the operator. Some prototypes operate wirelessly with limited distances and are tied to specific hardware which makes them very expensive. For this reason, the design and implementation of a web interface in HTML is carried out to teleoperate a caterpillar-type vehicle from mobile devices or laptops through a wireless network, where unsafe, unstable and difficult-to-access terrain can be explored without the need for supervision. permanent operation by an operator or a fixed command station. It has 3 easy-to-drive modes, one where the vehicle is controlled manually, another where the vehicle moves automatically avoiding obstacles, in these first two it transmits live video and the last one, the vehicle performs a 360° turn capturing what that their environment is in a video that is viewed later. For the mobile platform, the caterpillar-type vehicle is assembled with its respective motors, control card, proximity sensors, camera and batteries. The programming is developed on the Raspberry Pi single board computer (embedded in the platform), which has a web server function, and controls the motors and sensors through programs in PHP and Python. In the results obtained when developing the interface and the platform, the possibility of using this device for exploration in unsafe environments remotely and with different modes of movement can be evidenced. After the tests carried out in different environments in its different modes, it can be concluded that both the interface and the platform comply with the proposed solution to the problems presented and can serve as support for future developments.pdfspaAttribution-NonCommercial-NoDerivatives 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2Robots móvilesExploraciónInterfaz WEBRed de área localRaspberry PiServicios webTeleoperación.Ingeniería en Telecomunicaciones -- Tesis y disertaciones académicasRobóticaRobotsInterfaz de usuario (Sistema de ordenador)Innovaciones tecnológicasDispositivos móvilesMobile robotsExplorationWEB interfaceLocal area networkRaspberry PiWeb servicesTeleoperationDiseño e implementación de una interfaz web para control de una plataforma móvil tipo oruga con propósitos de exploración.Design and implementation of a web interface to control a caterpillar-type mobile platform for exploration purposes.bachelorThesisMonografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fLICENSElicense.txtlicense.txttext/plain; charset=utf-87167http://repository.udistrital.edu.co/bitstream/11349/31815/4/license.txt997daf6c648c962d566d7b082dac908dMD54open accessORIGINALVelandiaLuisAlberto2022.pdfVelandiaLuisAlberto2022.pdfTrabajo de gradoapplication/pdf12601129http://repository.udistrital.edu.co/bitstream/11349/31815/1/VelandiaLuisAlberto2022.pdf59391649af4abc0fb7e4100779098d39MD51open accessLicencia de uso y publicacion.pdfLicencia de uso y publicacion.pdfLicencia de uso y publicaciónapplication/pdf749397http://repository.udistrital.edu.co/bitstream/11349/31815/2/Licencia%20de%20uso%20y%20publicacion.pdfabdcc5e3d3596404ac9b1ce6ba2e0cdfMD52metadata only accessCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8805http://repository.udistrital.edu.co/bitstream/11349/31815/3/license_rdf4460e5956bc1d1639be9ae6146a50347MD53open accessTHUMBNAILVelandiaLuisAlberto2022.pdf.jpgVelandiaLuisAlberto2022.pdf.jpgIM Thumbnailimage/jpeg6905http://repository.udistrital.edu.co/bitstream/11349/31815/5/VelandiaLuisAlberto2022.pdf.jpg0e699f93c5a9feeda063d9e6eab5a6d3MD55open accessLicencia de uso y publicacion.pdf.jpgLicencia de uso y publicacion.pdf.jpgIM Thumbnailimage/jpeg13111http://repository.udistrital.edu.co/bitstream/11349/31815/6/Licencia%20de%20uso%20y%20publicacion.pdf.jpgb4790f6dc63bdd5b8ee90d862c9dd336MD56open access11349/31815oai:repository.udistrital.edu.co:11349/318152023-09-14 10:35:24.365open accessRepositorio Institucional Universidad Distrital - RIUDrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK