Modelo de pronóstico de incidentes en conducción de motocicletas basado en IOT e inteligencia artificial.

El Internet de las Cosas y la Inteligencia Artificial aportan cada vez más soluciones al ejercicio de captar datos de manera efectiva, llevándolos por etapas de procesamiento y análisis con el fin de extraer información valiosa. Actualmente, se aplican herramientas tecnológicas con el fin de contrar...

Full description

Autores:
Cárdenas Lancheros, Esteban Alejandro
Tipo de recurso:
Fecha de publicación:
2021
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/30384
Acceso en línea:
http://hdl.handle.net/11349/30384
Palabra clave:
Acelerómetro
Comportamiento de conducción
motocicleta
Inteligencia artificial
Aprendizaje computacional
Internet de las cosas
Maestría en Ciencias de la Información y las Comunicaciones - Tesis y disertaciones académicas
Accidentes de tránsito - Investigaciones
Aprendizaje automático (Inteligencia artificial)
Conducción de automóviles - Procesamiento electrónico de datos
Sistemas de transmisión de datos
Accelerometer
Driving behavior
Motorcycle
Artificial intelligence
Internet of things
Machine learning
Rights
License
CC0 1.0 Universal
id UDISTRITA2_b7d9dab81fc47dcdc2bef541f1acde62
oai_identifier_str oai:repository.udistrital.edu.co:11349/30384
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Modelo de pronóstico de incidentes en conducción de motocicletas basado en IOT e inteligencia artificial.
dc.title.titleenglish.spa.fl_str_mv Incident forecasting model for motorcycle driving based on IoT and artificial intelligence.
title Modelo de pronóstico de incidentes en conducción de motocicletas basado en IOT e inteligencia artificial.
spellingShingle Modelo de pronóstico de incidentes en conducción de motocicletas basado en IOT e inteligencia artificial.
Acelerómetro
Comportamiento de conducción
motocicleta
Inteligencia artificial
Aprendizaje computacional
Internet de las cosas
Maestría en Ciencias de la Información y las Comunicaciones - Tesis y disertaciones académicas
Accidentes de tránsito - Investigaciones
Aprendizaje automático (Inteligencia artificial)
Conducción de automóviles - Procesamiento electrónico de datos
Sistemas de transmisión de datos
Accelerometer
Driving behavior
Motorcycle
Artificial intelligence
Internet of things
Machine learning
title_short Modelo de pronóstico de incidentes en conducción de motocicletas basado en IOT e inteligencia artificial.
title_full Modelo de pronóstico de incidentes en conducción de motocicletas basado en IOT e inteligencia artificial.
title_fullStr Modelo de pronóstico de incidentes en conducción de motocicletas basado en IOT e inteligencia artificial.
title_full_unstemmed Modelo de pronóstico de incidentes en conducción de motocicletas basado en IOT e inteligencia artificial.
title_sort Modelo de pronóstico de incidentes en conducción de motocicletas basado en IOT e inteligencia artificial.
dc.creator.fl_str_mv Cárdenas Lancheros, Esteban Alejandro
dc.contributor.advisor.none.fl_str_mv Vera Parra, Nelson Enrique
dc.contributor.author.none.fl_str_mv Cárdenas Lancheros, Esteban Alejandro
dc.subject.spa.fl_str_mv Acelerómetro
Comportamiento de conducción
motocicleta
Inteligencia artificial
Aprendizaje computacional
Internet de las cosas
topic Acelerómetro
Comportamiento de conducción
motocicleta
Inteligencia artificial
Aprendizaje computacional
Internet de las cosas
Maestría en Ciencias de la Información y las Comunicaciones - Tesis y disertaciones académicas
Accidentes de tránsito - Investigaciones
Aprendizaje automático (Inteligencia artificial)
Conducción de automóviles - Procesamiento electrónico de datos
Sistemas de transmisión de datos
Accelerometer
Driving behavior
Motorcycle
Artificial intelligence
Internet of things
Machine learning
dc.subject.lemb.spa.fl_str_mv Maestría en Ciencias de la Información y las Comunicaciones - Tesis y disertaciones académicas
Accidentes de tránsito - Investigaciones
Aprendizaje automático (Inteligencia artificial)
Conducción de automóviles - Procesamiento electrónico de datos
Sistemas de transmisión de datos
dc.subject.keyword.spa.fl_str_mv Accelerometer
Driving behavior
Motorcycle
Artificial intelligence
Internet of things
Machine learning
description El Internet de las Cosas y la Inteligencia Artificial aportan cada vez más soluciones al ejercicio de captar datos de manera efectiva, llevándolos por etapas de procesamiento y análisis con el fin de extraer información valiosa. Actualmente, se aplican herramientas tecnológicas con el fin de contrarrestar los incidentes en conducción de motocicletas, ya sea que estas hagan parte del mismo vehículo o estén involucradas de manera externa en el entorno. Los incidentes en conducción de motocicletas van en aumento debido a la demanda de adquisición de estos vehículos, lo cual hace importante generar un enfoque hacia la disminución del riesgo de accidentalidad vial, basado en el análisis del comportamiento dinámico durante la conducción, el cual dará lugar a pronosticar incidentes. El desarrollo de esta investigación inició con la detección y almacenamiento de datos asociados a la variable dinámica de aceleración de una motocicleta en conducción, esto con ayuda de un sensor acelerómetro de 3 ejes generando un conjunto de datos, el cual fue procesado y analizado para posteriormente ser tomado por tres modelos predictivos de clasificación basados en Aprendizaje de Máquina los cuales fueron Árboles de Decisión, K – Vecinos más cercanos y Bosques Aleatorios. Se evaluó el desempeño de cada modelo en la tarea de clasificar mejor el nivel de riesgo de accidentalidad, concerniente con el estilo de conducción basado en ciertos niveles de aceleración. El modelo de Bosques Aleatorios mostró un desempeño ligeramente mejor comparado con el que mostraron los otros dos modelos, con un 97,24 % de exactitud y exhaustividad, un 97,16% de precisión y un 97,17 % de puntaje F1
publishDate 2021
dc.date.created.none.fl_str_mv 2021-08-12
dc.date.accessioned.none.fl_str_mv 2022-11-01T16:25:56Z
dc.date.available.none.fl_str_mv 2022-11-01T16:25:56Z
dc.type.spa.fl_str_mv masterThesis
dc.type.coar.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
dc.type.degree.spa.fl_str_mv Investigación-Innovación
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/11349/30384
url http://hdl.handle.net/11349/30384
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.*.fl_str_mv CC0 1.0 Universal
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.uri.*.fl_str_mv http://creativecommons.org/publicdomain/zero/1.0/
dc.rights.acceso.spa.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv CC0 1.0 Universal
http://creativecommons.org/publicdomain/zero/1.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/08c0ef25-49e8-462c-827e-fa11b0a3973e/download
https://repository.udistrital.edu.co/bitstreams/1cd22ded-de9f-4a78-a664-93a32f9bae2e/download
https://repository.udistrital.edu.co/bitstreams/9928a1b5-8f67-4ec6-b883-8a18bd844791/download
https://repository.udistrital.edu.co/bitstreams/90ac8168-2d8f-48be-a2bb-82c6caa6918e/download
https://repository.udistrital.edu.co/bitstreams/d4989fd7-6e9c-422f-9bf7-c1eb76c92268/download
https://repository.udistrital.edu.co/bitstreams/8bb2e5a5-82ef-4b00-aa98-38606421ee34/download
bitstream.checksum.fl_str_mv aa57addbb38c544e329affdb5e76580d
405be58c41568d428328254dacf22469
42fd4ad1e89814f5e4a476b409eb708c
997daf6c648c962d566d7b082dac908d
2563c3b740c81c3d1a07216b2be8e18e
4967080fa44faf9a720b2727fc6e96b1
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_ 1837007052315033600
spelling Vera Parra, Nelson EnriqueCárdenas Lancheros, Esteban Alejandro2022-11-01T16:25:56Z2022-11-01T16:25:56Z2021-08-12http://hdl.handle.net/11349/30384El Internet de las Cosas y la Inteligencia Artificial aportan cada vez más soluciones al ejercicio de captar datos de manera efectiva, llevándolos por etapas de procesamiento y análisis con el fin de extraer información valiosa. Actualmente, se aplican herramientas tecnológicas con el fin de contrarrestar los incidentes en conducción de motocicletas, ya sea que estas hagan parte del mismo vehículo o estén involucradas de manera externa en el entorno. Los incidentes en conducción de motocicletas van en aumento debido a la demanda de adquisición de estos vehículos, lo cual hace importante generar un enfoque hacia la disminución del riesgo de accidentalidad vial, basado en el análisis del comportamiento dinámico durante la conducción, el cual dará lugar a pronosticar incidentes. El desarrollo de esta investigación inició con la detección y almacenamiento de datos asociados a la variable dinámica de aceleración de una motocicleta en conducción, esto con ayuda de un sensor acelerómetro de 3 ejes generando un conjunto de datos, el cual fue procesado y analizado para posteriormente ser tomado por tres modelos predictivos de clasificación basados en Aprendizaje de Máquina los cuales fueron Árboles de Decisión, K – Vecinos más cercanos y Bosques Aleatorios. Se evaluó el desempeño de cada modelo en la tarea de clasificar mejor el nivel de riesgo de accidentalidad, concerniente con el estilo de conducción basado en ciertos niveles de aceleración. El modelo de Bosques Aleatorios mostró un desempeño ligeramente mejor comparado con el que mostraron los otros dos modelos, con un 97,24 % de exactitud y exhaustividad, un 97,16% de precisión y un 97,17 % de puntaje F1Internet of Things and Artificial Intelligence provide more and more solutions to the exercise of capturing data effectively, taking them through processing and analysis stages to extract valuable information. Currently, technological tools are applied to counteract incidents in motorcycle driving, whether they are part of the same vehicle or are externally involved in the environment. Incidents in motorcycle driving are increasing due to the demand for the acquisition of these vehicles, which makes it important to generate an approach towards reducing the risk of road accidents based on the analysis of dynamic behavior while driving. The development of this research began with the detection and storage of data associated with the dynamic acceleration variable of a motorcycle while driving, this with the help of a 3-axis accelerometer sensor generating a dataset, which was processed and analyzed for later be taken by three predictive classification models based on Machine Learning which were Decision Trees, K - Nearest Neighbors and Random Forests. The performance of each model was evaluated in the task of better classifying the level of accident risk, concerning the driving style based on certain levels of acceleration. The Random Forest model showed a slightly better performance compared to that shown by the other two models, with 97.24% accuracy and recall, 97.16% precision and 97.17% F1 score.pdfspaCC0 1.0 Universalhttp://creativecommons.org/publicdomain/zero/1.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2AcelerómetroComportamiento de conducciónmotocicletaInteligencia artificialAprendizaje computacionalInternet de las cosasMaestría en Ciencias de la Información y las Comunicaciones - Tesis y disertaciones académicasAccidentes de tránsito - InvestigacionesAprendizaje automático (Inteligencia artificial)Conducción de automóviles - Procesamiento electrónico de datosSistemas de transmisión de datosAccelerometerDriving behaviorMotorcycleArtificial intelligenceInternet of thingsMachine learningModelo de pronóstico de incidentes en conducción de motocicletas basado en IOT e inteligencia artificial.Incident forecasting model for motorcycle driving based on IoT and artificial intelligence.masterThesisInvestigación-Innovacióninfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fORIGINALCárdenasLancherosEstebanAlejandro2021.pdfCárdenasLancherosEstebanAlejandro2021.pdfapplication/pdf883557https://repository.udistrital.edu.co/bitstreams/08c0ef25-49e8-462c-827e-fa11b0a3973e/downloadaa57addbb38c544e329affdb5e76580dMD53Licencia y autorización de los autores para publicar.pdfLicencia y autorización de los autores para publicar.pdfLicencia de uso y publicaciónapplication/pdf303155https://repository.udistrital.edu.co/bitstreams/1cd22ded-de9f-4a78-a664-93a32f9bae2e/download405be58c41568d428328254dacf22469MD54CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8701https://repository.udistrital.edu.co/bitstreams/9928a1b5-8f67-4ec6-b883-8a18bd844791/download42fd4ad1e89814f5e4a476b409eb708cMD56LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/90ac8168-2d8f-48be-a2bb-82c6caa6918e/download997daf6c648c962d566d7b082dac908dMD57THUMBNAILCárdenasLancherosEstebanAlejandro2021.pdf.jpgCárdenasLancherosEstebanAlejandro2021.pdf.jpgIM Thumbnailimage/jpeg7516https://repository.udistrital.edu.co/bitstreams/d4989fd7-6e9c-422f-9bf7-c1eb76c92268/download2563c3b740c81c3d1a07216b2be8e18eMD58Licencia y autorización de los autores para publicar.pdf.jpgLicencia y autorización de los autores para publicar.pdf.jpgIM Thumbnailimage/jpeg13184https://repository.udistrital.edu.co/bitstreams/8bb2e5a5-82ef-4b00-aa98-38606421ee34/download4967080fa44faf9a720b2727fc6e96b1MD5911349/30384oai:repository.udistrital.edu.co:11349/303842023-06-09 14:39:43.481http://creativecommons.org/publicdomain/zero/1.0/CC0 1.0 Universalopen.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK