Aplicación móvil para la agilización automatización de registro y protección de bicicletas en el ciclo parqueadero de la facultad tecnológica de la universidad distrital

En el presente documento se plantea una situación actual con el biciparqueadero de la universidad distrital Francisco José de Caldas, dónde existe una problemática de tipo de gestión, administrativo y de seguridad. En respuesta, proponemos una alternativa basada en herramientas tecnológicas para la...

Full description

Autores:
Beltran Santos, Edgar Mauricio
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2023
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/39935
Acceso en línea:
http://hdl.handle.net/11349/39935
Palabra clave:
Bicicleta
Parqueadero
Celular
Móvil
Aplicación
QR
Tecnología en Sistematización de Datos -- Tesis y disertaciones académicas
Administración de bases de datos -- Bases de datos
Bicicletas -- Deporte
Parqueaderos -- Garajes
Comunidad y Universidad -- Educación
Bicycle
Parking
Cell phone
Mobile
Application
QR
Rights
License
Abierto (Texto Completo)
id UDISTRITA2_f7d2a7c3725b2c4c862b937fd17eb372
oai_identifier_str oai:repository.udistrital.edu.co:11349/39935
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.none.fl_str_mv Aplicación móvil para la agilización automatización de registro y protección de bicicletas en el ciclo parqueadero de la facultad tecnológica de la universidad distrital
dc.title.titleenglish.none.fl_str_mv Mobile application to streamline the automation of registration and protection of bicycles in the parking lot of the technological faculty of the district university
title Aplicación móvil para la agilización automatización de registro y protección de bicicletas en el ciclo parqueadero de la facultad tecnológica de la universidad distrital
spellingShingle Aplicación móvil para la agilización automatización de registro y protección de bicicletas en el ciclo parqueadero de la facultad tecnológica de la universidad distrital
Bicicleta
Parqueadero
Celular
Móvil
Aplicación
QR
Tecnología en Sistematización de Datos -- Tesis y disertaciones académicas
Administración de bases de datos -- Bases de datos
Bicicletas -- Deporte
Parqueaderos -- Garajes
Comunidad y Universidad -- Educación
Bicycle
Parking
Cell phone
Mobile
Application
QR
title_short Aplicación móvil para la agilización automatización de registro y protección de bicicletas en el ciclo parqueadero de la facultad tecnológica de la universidad distrital
title_full Aplicación móvil para la agilización automatización de registro y protección de bicicletas en el ciclo parqueadero de la facultad tecnológica de la universidad distrital
title_fullStr Aplicación móvil para la agilización automatización de registro y protección de bicicletas en el ciclo parqueadero de la facultad tecnológica de la universidad distrital
title_full_unstemmed Aplicación móvil para la agilización automatización de registro y protección de bicicletas en el ciclo parqueadero de la facultad tecnológica de la universidad distrital
title_sort Aplicación móvil para la agilización automatización de registro y protección de bicicletas en el ciclo parqueadero de la facultad tecnológica de la universidad distrital
dc.creator.fl_str_mv Beltran Santos, Edgar Mauricio
dc.contributor.advisor.none.fl_str_mv Bernal Gómez, Mireya
dc.contributor.author.none.fl_str_mv Beltran Santos, Edgar Mauricio
dc.contributor.orcid.none.fl_str_mv Bernal Gómez, Mireya [0000-0002-9049-1573]
dc.subject.spa.fl_str_mv Bicicleta
Parqueadero
Celular
Móvil
Aplicación
QR
topic Bicicleta
Parqueadero
Celular
Móvil
Aplicación
QR
Tecnología en Sistematización de Datos -- Tesis y disertaciones académicas
Administración de bases de datos -- Bases de datos
Bicicletas -- Deporte
Parqueaderos -- Garajes
Comunidad y Universidad -- Educación
Bicycle
Parking
Cell phone
Mobile
Application
QR
dc.subject.lemb.none.fl_str_mv Tecnología en Sistematización de Datos -- Tesis y disertaciones académicas
Administración de bases de datos -- Bases de datos
Bicicletas -- Deporte
Parqueaderos -- Garajes
Comunidad y Universidad -- Educación
dc.subject.keyword.spa.fl_str_mv Bicycle
Parking
Cell phone
Mobile
Application
QR
description En el presente documento se plantea una situación actual con el biciparqueadero de la universidad distrital Francisco José de Caldas, dónde existe una problemática de tipo de gestión, administrativo y de seguridad. En respuesta, proponemos una alternativa basada en herramientas tecnológicas para la gestión de la entrada y salida de bicicletas. Esta solución se apoya en el uso de los dispositivos electrónicos más accesibles, los teléfonos celulares. Esta solución se basa en la implementación de códigos QR, que actúan como identificadores únicos tanto del propietario como de la bicicleta. Esto permite a los estudiantes acceder a la facultad sin la necesidad de presentar documentación y gestionar manualmente la ubicación de sus bicicletas. Además, se ha establecido un sistema de seguridad que proporciona información detallada sobre la bicicleta y el usuario, registrando todos los datos de forma automatizada en una base de datos. La aplicación desarrollada se basa en el SDK Flutter y utiliza Firebase para gestionar el backend de la solución.
publishDate 2023
dc.date.created.none.fl_str_mv 2023-10-18
dc.date.accessioned.none.fl_str_mv 2024-08-20T21:17:34Z
dc.date.available.none.fl_str_mv 2024-08-20T21:17:34Z
dc.type.spa.fl_str_mv bachelorThesis
dc.type.degree.spa.fl_str_mv Monografía
dc.type.driver.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.coar.none.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/39935
url http://hdl.handle.net/11349/39935
dc.language.iso.none.fl_str_mv spa
language spa
dc.relation.references.none.fl_str_mv https://www.obsbusiness.school/blog/principales-roles-de-la-metodologia-agilscrum
https://platzi.com/blog/clean-architecture-en-android/?utm_source=google&ut m_medium=cpc&utm_campaign=20225978293&utm_adgroup=&utm_content =&&gad_source=1&gclid=Cj0KCQjw1aOpBhCOARIsACXYv-elTUzcD5xMS-ty 6aK1CJ8cZ0sCqAdsJLBf9832NkU-pdQTyYuMHTkaAqYaEALw_wcB&gclsrc= aw.ds
https://flutter.dev/?gclid=Cj0KCQjw1aOpBhCOARIsACXYv-dIUmc_5uGEuqdak6ZusuWsGB-W3en4vuecb9k1A4F72SeNZUw6MAaAuofEALw_wcB&gclsrc =aw.ds
https://www.seidor.com/blog/firebase-que-es
https://aws.amazon.com/es/what-is/sdk/
https://scoreapps.com/blog/es/android-studio/
https://www.ibm.com/docs/es/i/7.3?topic=platform-java-development-kit
https://biblioguias.cepal.org/QR
https://visualstudio.microsoft.com/es/
https://www.atlassian.com/es/git/tutorials/what-is-git
https://www.hostinger.co/tutoriales/que-es-github
https://humanidades.com/google-docs/
https://www.apple.com/co/swift/
https://developer.android.com/kotlin/overview?hl=es-419
https://inlab.fib.upc.edu/es/blog/que-es-el-lenguaje-de-programacion-dart
https://grupogeard.com/co/empleos/convocatorias/1333-1354-territorial-ii/cela dor-85775/#:~:text=Descripci%C3%B3n,que%20se%20encuentre%20en%20 ellos.
https://www.consumoteca.com/electronica/telefono-movil/
https://tableteduca.webnode.es/que-es-una-tableta-/
https://definicion.de/bicicleta/
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.acceso.spa.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv 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/247faba8-4d3d-4aae-babb-9b3c2d8247b1/download
https://repository.udistrital.edu.co/bitstreams/0d8d53d6-3001-4ee1-a6e8-4dd16d40c66c/download
https://repository.udistrital.edu.co/bitstreams/3c11e5da-f2cb-47fa-848b-991e4181aee8/download
https://repository.udistrital.edu.co/bitstreams/3d61a11d-4fe3-45c6-bd16-4aafb5a732aa/download
bitstream.checksum.fl_str_mv 9a4578a38a69d82ebe6471bea95c4c9c
306e985c3f7a8d5ad00a3e7e544cd262
fd1ae49739c038fb3d95a90a036d4c62
997daf6c648c962d566d7b082dac908d
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Universidad Distrital
repository.mail.fl_str_mv repositorio@udistrital.edu.co
_version_ 1837007126052995072
spelling Bernal Gómez, Mireyawill be generated::orcid::0000-0002-9049-1573600Beltran Santos, Edgar MauricioBernal Gómez, Mireya [0000-0002-9049-1573]2024-08-20T21:17:34Z2024-08-20T21:17:34Z2023-10-18http://hdl.handle.net/11349/39935En el presente documento se plantea una situación actual con el biciparqueadero de la universidad distrital Francisco José de Caldas, dónde existe una problemática de tipo de gestión, administrativo y de seguridad. En respuesta, proponemos una alternativa basada en herramientas tecnológicas para la gestión de la entrada y salida de bicicletas. Esta solución se apoya en el uso de los dispositivos electrónicos más accesibles, los teléfonos celulares. Esta solución se basa en la implementación de códigos QR, que actúan como identificadores únicos tanto del propietario como de la bicicleta. Esto permite a los estudiantes acceder a la facultad sin la necesidad de presentar documentación y gestionar manualmente la ubicación de sus bicicletas. Además, se ha establecido un sistema de seguridad que proporciona información detallada sobre la bicicleta y el usuario, registrando todos los datos de forma automatizada en una base de datos. La aplicación desarrollada se basa en el SDK Flutter y utiliza Firebase para gestionar el backend de la solución.In the present document, a current situation is addressed concerning the bicycle parking facility at Francisco José de Caldas District University, where there are issues related to management, administration, and security. In response, we propose an alternative based on technological tools for the management of bike entry and exit. This solution relies on the use of the most accessible electronic devices, namely, mobile phones. This solution is based on the implementation of QR codes, which serve as unique identifiers for both the owner and the bicycle. This allows students to access the campus without the need to present documentation and manually manage the location of their bicycles. Furthermore, a security system has been established that provides detailed information about the bicycle and the user, automatically recording all data in a database. The developed application is based on the Flutter SDK and utilizes Firebase to manage the backend of the solution.pdfspaBicicletaParqueaderoCelularMóvilAplicaciónQRTecnología en Sistematización de Datos -- Tesis y disertaciones académicasAdministración de bases de datos -- Bases de datosBicicletas -- DeporteParqueaderos -- GarajesComunidad y Universidad -- EducaciónBicycleParkingCell phoneMobileApplicationQRAplicación móvil para la agilización automatización de registro y protección de bicicletas en el ciclo parqueadero de la facultad tecnológica de la universidad distritalMobile application to streamline the automation of registration and protection of bicycles in the parking lot of the technological faculty of the district universitybachelorThesisMonografíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fAbierto (Texto Completo)http://purl.org/coar/access_right/c_abf2https://www.obsbusiness.school/blog/principales-roles-de-la-metodologia-agilscrumhttps://platzi.com/blog/clean-architecture-en-android/?utm_source=google&ut m_medium=cpc&utm_campaign=20225978293&utm_adgroup=&utm_content =&&gad_source=1&gclid=Cj0KCQjw1aOpBhCOARIsACXYv-elTUzcD5xMS-ty 6aK1CJ8cZ0sCqAdsJLBf9832NkU-pdQTyYuMHTkaAqYaEALw_wcB&gclsrc= aw.dshttps://flutter.dev/?gclid=Cj0KCQjw1aOpBhCOARIsACXYv-dIUmc_5uGEuqdak6ZusuWsGB-W3en4vuecb9k1A4F72SeNZUw6MAaAuofEALw_wcB&gclsrc =aw.dshttps://www.seidor.com/blog/firebase-que-eshttps://aws.amazon.com/es/what-is/sdk/https://scoreapps.com/blog/es/android-studio/https://www.ibm.com/docs/es/i/7.3?topic=platform-java-development-kithttps://biblioguias.cepal.org/QRhttps://visualstudio.microsoft.com/es/https://www.atlassian.com/es/git/tutorials/what-is-githttps://www.hostinger.co/tutoriales/que-es-githubhttps://humanidades.com/google-docs/https://www.apple.com/co/swift/https://developer.android.com/kotlin/overview?hl=es-419https://inlab.fib.upc.edu/es/blog/que-es-el-lenguaje-de-programacion-darthttps://grupogeard.com/co/empleos/convocatorias/1333-1354-territorial-ii/cela dor-85775/#:~:text=Descripci%C3%B3n,que%20se%20encuentre%20en%20 ellos.https://www.consumoteca.com/electronica/telefono-movil/https://tableteduca.webnode.es/que-es-una-tableta-/https://definicion.de/bicicleta/ORIGINALBeltranSantosEdgarMauricio2023.pdfBeltranSantosEdgarMauricio2023.pdfTrabajo de gradoapplication/pdf637065https://repository.udistrital.edu.co/bitstreams/247faba8-4d3d-4aae-babb-9b3c2d8247b1/download9a4578a38a69d82ebe6471bea95c4c9cMD51Licencia y autorización de los autores para publicar.pdfLicencia y autorización de los autores para publicar.pdfLicencia y autorización de los autoresapplication/pdf67659https://repository.udistrital.edu.co/bitstreams/0d8d53d6-3001-4ee1-a6e8-4dd16d40c66c/download306e985c3f7a8d5ad00a3e7e544cd262MD52LICENCIA DE USO Y PUBLICACION.pdfLICENCIA DE USO Y PUBLICACION.pdfLicencia de uso y autorizaciónapplication/pdf138661https://repository.udistrital.edu.co/bitstreams/3c11e5da-f2cb-47fa-848b-991e4181aee8/downloadfd1ae49739c038fb3d95a90a036d4c62MD55LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/3d61a11d-4fe3-45c6-bd16-4aafb5a732aa/download997daf6c648c962d566d7b082dac908dMD5611349/39935oai:repository.udistrital.edu.co:11349/399352024-08-20 16:24:21.947open.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK