Sistema de corrección de ruido en imágenes de conducción asistida implementando redes neuronales de tipo autoencoder

Esta investigación tuvo como finalidad desarrollar un sistema que permitió corregir el ruido presente en imágenes de conducción asistida, esto por medio del uso de redes neuronales de tipo autoencoder. Para dar cumplimiento a los objetivos se planteó una metodología estructurada en 5 fases, lo cual...

Full description

Autores:
Torres Vega, Luis Carlos
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2023
Institución:
Universidad Francisco de Paula Santander
Repositorio:
Repositorio Digital UFPS
Idioma:
spa
OAI Identifier:
oai:repositorio.ufps.edu.co:ufps/6771
Acceso en línea:
https://repositorio.ufps.edu.co/handle/ufps/6771
Palabra clave:
Corrección de ruido
Visión
Deep learning
Corrección de ruido
Deep learning
Visión
Rights
openAccess
License
Derechos Reservados - Universidad Francisco de Paula Santander, 2023
id RUFPS2_419c3c5623832afe6f8d5e65888413be
oai_identifier_str oai:repositorio.ufps.edu.co:ufps/6771
network_acronym_str RUFPS2
network_name_str Repositorio Digital UFPS
repository_id_str
dc.title.spa.fl_str_mv Sistema de corrección de ruido en imágenes de conducción asistida implementando redes neuronales de tipo autoencoder
title Sistema de corrección de ruido en imágenes de conducción asistida implementando redes neuronales de tipo autoencoder
spellingShingle Sistema de corrección de ruido en imágenes de conducción asistida implementando redes neuronales de tipo autoencoder
Corrección de ruido
Visión
Deep learning
Corrección de ruido
Deep learning
Visión
title_short Sistema de corrección de ruido en imágenes de conducción asistida implementando redes neuronales de tipo autoencoder
title_full Sistema de corrección de ruido en imágenes de conducción asistida implementando redes neuronales de tipo autoencoder
title_fullStr Sistema de corrección de ruido en imágenes de conducción asistida implementando redes neuronales de tipo autoencoder
title_full_unstemmed Sistema de corrección de ruido en imágenes de conducción asistida implementando redes neuronales de tipo autoencoder
title_sort Sistema de corrección de ruido en imágenes de conducción asistida implementando redes neuronales de tipo autoencoder
dc.creator.fl_str_mv Torres Vega, Luis Carlos
dc.contributor.advisor.none.fl_str_mv Medina Delgado, Byron
Contreras Contreras, Ghiordy Ferney
dc.contributor.author.none.fl_str_mv Torres Vega, Luis Carlos
dc.contributor.corporatename.spa.fl_str_mv Universidad Francisco de Paula Santander
dc.contributor.jury.none.fl_str_mv Moreno García, Francisco Ernesto
Páez Peña, Andrés Eduardo
dc.subject.lemb.none.fl_str_mv Corrección de ruido
Visión
Deep learning
topic Corrección de ruido
Visión
Deep learning
Corrección de ruido
Deep learning
Visión
dc.subject.proposal.spa.fl_str_mv Corrección de ruido
Deep learning
Visión
description Esta investigación tuvo como finalidad desarrollar un sistema que permitió corregir el ruido presente en imágenes de conducción asistida, esto por medio del uso de redes neuronales de tipo autoencoder. Para dar cumplimiento a los objetivos se planteó una metodología estructurada en 5 fases, lo cual permitió llevar a cabo actividades orientadas a cada uno de los objetivos específicos establecidos. Como resultado se pudo apreciar una mejora en la calidad de las imágenes procesadas, esto en función de métricas objetivas de calidad como la proporción máxima de señal a ruido (PSNR) o la medida del índice de similitud estructural (SSIM), incrementando hasta 17 dB el valor de PSNR respecto al obtenido por la imagen con ruido y obteniendo imágenes de 99% de similitud estructural, lo anterior en las pruebas realizadas con ruido Sal & Pimienta; en cuanto a los resultados con ruido Gaussiano, se pudieron obtener ganancias de 9 dB en el PSNR y hasta un 83% de similitud estructural, respuesta que se debe a la forma como el ruido Gaussiano se manifiesta en la imagen, dificultando su modelado y correspondiente procesamiento.
publishDate 2023
dc.date.issued.none.fl_str_mv 2023-03-01
dc.date.accessioned.none.fl_str_mv 2024-04-01T14:55:02Z
dc.date.available.none.fl_str_mv 2024-04-01T14:55:02Z
dc.type.spa.fl_str_mv Trabajo de grado - Pregrado
dc.type.coarversion.fl_str_mv http://purl.org/coar/version/c_970fb48d4fbd8a85
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
dc.type.content.spa.fl_str_mv Text
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.redcol.spa.fl_str_mv https://purl.org/redcol/resource_type/TP
dc.type.version.spa.fl_str_mv info:eu-repo/semantics/publishedVersion
format http://purl.org/coar/resource_type/c_7a1f
status_str publishedVersion
dc.identifier.uri.none.fl_str_mv https://repositorio.ufps.edu.co/handle/ufps/6771
url https://repositorio.ufps.edu.co/handle/ufps/6771
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.spa.fl_str_mv Derechos Reservados - Universidad Francisco de Paula Santander, 2023
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
dc.rights.creativecommons.spa.fl_str_mv Atribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0)
rights_invalid_str_mv Derechos Reservados - Universidad Francisco de Paula Santander, 2023
Atribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0)
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.spa.fl_str_mv 118 páginas. ilustraciones,(Trabajo completo) 3.539 KB
dc.format.mimetype.spa.fl_str_mv application/pdf
dc.publisher.spa.fl_str_mv Universidad Francisco de Paula Santander
dc.publisher.faculty.spa.fl_str_mv Facultad de Ingeniería
dc.publisher.place.spa.fl_str_mv San José de Cúcuta
dc.publisher.program.spa.fl_str_mv Ingeniería Electrónica
dc.source.spa.fl_str_mv https://catalogobiblioteca.ufps.edu.co/descargas/tesis/1161637.pdf
institution Universidad Francisco de Paula Santander
bitstream.url.fl_str_mv https://repositorio.ufps.edu.co/bitstream/ufps/6771/2/license.txt
https://repositorio.ufps.edu.co/bitstream/ufps/6771/1/1161637.pdf
https://repositorio.ufps.edu.co/bitstream/ufps/6771/3/1161637.pdf.txt
https://repositorio.ufps.edu.co/bitstream/ufps/6771/4/1161637.pdf.jpg
bitstream.checksum.fl_str_mv 2f9959eaf5b71fae44bbf9ec84150c7a
da62051b1ff65686ed972d31d715c2a1
f8bb8210d066b9d249f8ec4cd0f83a97
4637f6a58dba051cb9fafbb48b5bae6c
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Universidad Francisco de Paula Santander
repository.mail.fl_str_mv bdigital@metabiblioteca.com
_version_ 1814095131566931968
spelling Medina Delgado, Byron77a81f47bf20466c22fcea2d1e82a753600Contreras Contreras, Ghiordy Ferneycefa981208b3dc7de5d917cd591a266a600Torres Vega, Luis Carlos6a82d5f227692f6b48fe9e75f7ce5e6b600Universidad Francisco de Paula SantanderMoreno García, Francisco ErnestoPáez Peña, Andrés Eduardo2024-04-01T14:55:02Z2024-04-01T14:55:02Z2023-03-01https://repositorio.ufps.edu.co/handle/ufps/6771Esta investigación tuvo como finalidad desarrollar un sistema que permitió corregir el ruido presente en imágenes de conducción asistida, esto por medio del uso de redes neuronales de tipo autoencoder. Para dar cumplimiento a los objetivos se planteó una metodología estructurada en 5 fases, lo cual permitió llevar a cabo actividades orientadas a cada uno de los objetivos específicos establecidos. Como resultado se pudo apreciar una mejora en la calidad de las imágenes procesadas, esto en función de métricas objetivas de calidad como la proporción máxima de señal a ruido (PSNR) o la medida del índice de similitud estructural (SSIM), incrementando hasta 17 dB el valor de PSNR respecto al obtenido por la imagen con ruido y obteniendo imágenes de 99% de similitud estructural, lo anterior en las pruebas realizadas con ruido Sal & Pimienta; en cuanto a los resultados con ruido Gaussiano, se pudieron obtener ganancias de 9 dB en el PSNR y hasta un 83% de similitud estructural, respuesta que se debe a la forma como el ruido Gaussiano se manifiesta en la imagen, dificultando su modelado y correspondiente procesamiento.Introducción 1. 2. Descripción del Problema 1.1. 1.2. Planteamiento del Problema Justificación 1.2.1. Beneficios Tecnológicos 1.2.2. Beneficios Científicos 1.3. Alcance 1.3.1. Resultados Esperados 1.3.2. Impacto Social 1.4. Limitaciones 1.4.1. Hardware 1.4.2. Software 1.5. Delimitaciones 1.5.1. Conceptual 1.5.2. Espacial 1.5.3. Temporal 1.6. Objetivos 1.6.1. General 1.6.2. Específicos Marco Referencial 17 19 19 22 23 23 24 24 24 25 25 25 26 26 26 26 27 27 27 28 2.1. Antecedentes 28 2.1.1. Deep Learning on Image Denoising: An Overview 2.1.2. Autoencoders Based Deep Learner for Image Denoising 2.1.3. Devdan: Deep Evolving Denoising Autoencoder 2.1.4. Llnet: A Deep Autoencoder Approach to Natural Low-Hight Image Enhancement 2.1.5. Underwater Color Restoration Using U-Net Denoising Autoencoder 2.2. Marco teórico 2.2.1. Conducción Asistida 2.2.2. Obtención de Información del Entorno 2.2.2.1. Radar. 2.2.2.2. Cámaras. 2.2.2.3. LASER Imaging Detection and Ranging (LiDAR). 2.2.2.4. Sensores de Proximidad (Ultrasonido). 2.2.3. Tipos de Imágenes y Métodos de Denoising 2.2.3.1. Eliminación de Ruido Blanco Aditivo. 2.2.3.2. Eliminación de Ruido en Imágenes Realmente Ruidosas. 2.2.3.3. Eliminación de Ruido a Ciegas. 2.2.3.4. Eliminación de Ruido Híbrido. 2.2.4. Redes Neuronales 2.2.5. Autoencoders 2.2.6. Métricas Aplicadas en el Procesamiento de Imágenes 2.2.6.1. Relación de Compresión (CR). 29 29 29 30 30 31 31 32 32 32 33 33 33 34 34 34 35 35 36 37 38 2.2.6.2. Mean Squared Error (MSE). 38 2.2.6.3. Peak Signal-to-Noise Ratio (PSNR). 2.2.6.4. Structural Similarity Index (SSIM). 2.3. Marco legal 2.3.1. Reglamentación en el Ámbito de la Conducción Asistida 2.3.2. Uso de Software Libre 2.3.3. Tratamiento de Datos 3. 4. Metodología 3.1. 3.2. 3.3. 3.4. 3.5. Análisis Diseño Implementación Evaluación Divulgación Resultados 4.1. Métodos de Denoising y Requerimientos Técnicos 4.1.1. Revisión del Estado del Arte 4.1.2. Identificación de Métodos de Denoising 4.1.2.1. Tipos de Ruido. 4.1.2.2. Métodos de Denoising. 4.1.3. Requerimientos de la Problemática 4.1.3.1. Costo Computacional. 4.1.3.2. Métricas. 4.2. 39 39 40 41 42 43 45 45 46 47 48 49 50 50 50 51 52 54 55 55 58 Diseño del Algoritmo DCAEAD 60 4.2.1. Fuentes de Libre Acceso 60 4.2.1.1. Lenguaje de Programación. 4.2.1.2. Entorno de Desarrollo Integrado (IDE). 4.2.1.3. Dataset. 4.2.2. Asignación de Recursos 4.2.2.1. Selección del Lenguaje de Programación. 4.2.2.2. Selección del Entorno de Desarrollo Integrado. 4.2.2.3. Selección del Dataset. 4.2.3. Estructura del Software 4.2.3.1. Parámetros de la Red. 4.3. Implementación y Pruebas de Funcionamiento 4.3.1. Programación en Python 4.3.1.1. Lectura y Procesamiento de los Datos. 4.3.1.2. Insertar Ruido. 4.3.1.3. Modelo del Sistema DCAEAD. 4.3.1.4. Entrenamiendo del Sistema. 4.3.2. Ajuste del Software a los Requerimientos 4.3.3. Pruebas Unitarias 4.3.3.1. Pruebas con Ruido Gaussiano. 4.3.3.2. Pruebas con Ruido Salt & Pepper. 4.4. Evaluación del Sistema 4.4.1. Análisis Estadístico 4.4.1.1. Resultados con AWGN. 60 61 62 64 65 69 69 69 71 72 72 72 74 75 77 77 80 81 82 84 85 85 4.4.1.2. Resultados con Ruido Salt & Pepper. 87 4.4.1.3. Ganancia del Sistema en Función de PSNR y SSIM. 4.4.1.4. Contrastar Resultados. 4.4.2. Análisis de Costo Computacional 4.4.3. Retroalimentación 4.5. 5. Divulgación de Resultados Conclusiones Referencias Bibliográficas Anexos 89 91 91 93 94 96 98 106PregradoIngeniero(a) Electrónico(a)118 páginas. ilustraciones,(Trabajo completo) 3.539 KBapplication/pdfspaUniversidad Francisco de Paula SantanderFacultad de IngenieríaSan José de CúcutaIngeniería ElectrónicaDerechos Reservados - Universidad Francisco de Paula Santander, 2023info:eu-repo/semantics/openAccessAtribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0)http://purl.org/coar/access_right/c_abf2https://catalogobiblioteca.ufps.edu.co/descargas/tesis/1161637.pdfSistema de corrección de ruido en imágenes de conducción asistida implementando redes neuronales de tipo autoencoderTrabajo de grado - Pregradohttp://purl.org/coar/resource_type/c_7a1fTextinfo:eu-repo/semantics/bachelorThesishttps://purl.org/redcol/resource_type/TPinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/version/c_970fb48d4fbd8a85Corrección de ruidoVisiónDeep learningCorrección de ruidoDeep learningVisiónAgencia Nacional de Seguridad Vial. (s.f.). Cifras año en curso. Recuperado el Enero de 2023, de https://ansv.gov.co/es/observatorio/estad%C3%ADsticas/cifras-ano-en-cursoAhn, B. C. (2017). Block-Matching Convolutional Neural Network for Image Denoising. Computer Vision and Pattern Recognition.Anwar, S., & Barnes, N. (2019). Real Image Denoising With Feature Attention. Proceedings of the IEEE/CVF International Conference on Computer Vision. Seoul, Korea.Ashfahani, A., Pratama, M., Lughofer, E., & Ong, Y.-S. (2020). DEVDAN: Deep evolving denoising autoencoder. Neurocomputing, 390, 297-314.Atienza, R. (2018). Advanced Deep Learning with Keras: Apply deep learning techniques, autoencoders, GANs, variational autoencoders, deep reinforcement learning, policy gradients, and more. Packt Publishing Ltd.Bajaj, K., Kumar, D., & Aquib, M. (2020). Autoencoders Based Deep Learner for Image Denoising. Procedia Computer Science, 171, 1535-1541.Bank, D., Koenigstein, N., & Giryes, R. (2021). Autoencoders. arXiv.Barradas, C. (2020). Estudio y diseño de un proceso de monitorización aplicado aun motor eléctrico por medio de la inteligencia artificial. Barcelona: Universidad politècnica de Catalunya.Benavides, Ó. (2004). La innovación tecnológica desde una perspectiva evolutiva. Cuadernos de economía, 23(41), 49-70.Burguillos, C. (2016). Algoritmos de lenguaje máquina para la detección de vehículos mediante cámaras infrarrojas. Universidad Carlos III de Madrid.C++ Foundation. (s.f.). News, Status & Discussion about Standard C++. Recuperado el 99 Septiembre de 2021, de https://isocpp.org/Cano, L., & Bautista, R. (2019). Alcance del derecho al olvido en el tratamiento de datos personales en Colombia. Verba luris(41), 45-63.Caparrós, A. (1999). El comportamiento humano en conducción: factores perceptivos, cognitivos y de respuesta. Cognición y Psicología Aplicada a la conducción de vehículos .Charte, F. (2021). Autoencoders ¿Qué son, para qué sirven y cómo funcionan? Jaén: DaSCI.Christian, S., Wei, L., Yangqing, J., Pierre, S., Scott, R., Dragomir, A., . . . Andrew, R. (2015). Going deeper with convolutions. Conference on Computer Vision and Pattern Recognition (CVPR). Boston, USA.Congreso de Colombia. (1993). Ley 44 de 1993. Recuperado el Enero de 2023, de https://www.funcionpublica.gov.co/eva/gestornormativo/norma.php?i=3429#:~:text=%22 Los%20derechos%20consagrados%20a%20favor,a%20partir%20de%20su%20muerte.Continental. (2020). Blind Spot Detection. Recuperado el 6 de Mayo de 2021, de http://www.continental-corporation.comContreras, G., Pabón, J., García, H., Rojas, F., & Arguello, H. (2021). Correction of Designed Compressive Spectral Imaging Measurements Using a Deep Learning-Based Method. XXIII Symposium on Image, Signal Processing and Artificial Vision (STSIVA). Popayán, Colombia.Dabov, K., Foi, A., Katkovnik, V., & Egiazarian, K. (2007). Image Denoising by Sparse 3-D Transform-Domain Collaborative Filtering. IEEE Transactions on Image Processing , 16(8), 2080 - 2095.de los Reyes, Á. (2019). Análisis de rendimiento de eutoencoders en entornos big data. Madrid: Universidad Carlos III.Doulamis, N., Doulamis, A., Voulodimos, A., & Protopapadakis, E. (2018). Deep Learning for Computer Vision: A Brief Review. Computational intelligence and neuroscience, 2018.Elad, M., & Aharon, M. (2006). Image Denoising Via Sparse and Redundant Representations Over Learned Dictionaries. IEEE Transactions on Image Processing, 15(12), 3736-3745.Esqueda, J. (2002). Fundamentos de Procesamiento de Imágenes. CONATEC.Fernández, M. (1996). Señales aleatorias y ruido. Valladolid: E.T.S. de Ingenieros de Telecomunicación.Florez, M. (2001). Los sistemas inteligentes de transporte ITS. Ciencia e Ingeniería Neogranadina(10), 39-45.Google. (s.f.). What is Colaboratory? Recuperado el Septiembre de 2021, de https://colab.research.google.com/Gu, S., Zhang, L., Zuo, W., & Feng, X. (2014). Weighted Nuclear Norm Minimization with Application to Image Denoising. IEEE Conference on Computer Vision and Pattern Recognition. Columbus, OH, USA.Gupta, A., Anpalagan, A., Guan, L., & Shaharyar, A. (2021). Deep learning for object detection and scene perception in self-driving cars: Survey, challenges, and open issues. Array, 100057, 10.Hashisho, Y., Albadawi, M., Krause, T., & Freiherr, U. (2019). Underwater Color Restoration Using U-Net Denoising Autoencoder. 11th International Symposium on Image and Signal Processing and Analysis (ISPA). Dubrovnik, Croatia.Horé, A., & Ziou, D. (2010). Image Quality Metrics: PSNR vs. SSIM. 20th International 101 Conference on Pattern Recognition. Istanbul, Turkey.Huynh-Thu, Q., & Mohammed, G. (2008). Scope of validity of PSNR in image/video quality assessment. Electronics letters, 44(13), 800-801.Jain, P., & Tyagi, V. (2016). A survey of edge-preserving image denoising methods. Information Systems Frontiers, 18, 159-170.Jarrett, K., Kavukcuoglu, K., Ranzato, A., & LeCun, Y. (2009). What is the best multi-stage architecture for object recognition? 12th International Conference on Computer Vision. Kyoto, Japon.JetBrains. (s.f.). PyCharm. Recuperado el Sepptiembre de 2021, de www.jetbrains.com/eses/pycharm/Kotevski, Z., & Mitrevski, P. (2009). Experimental Comparison of PSNR and SSIM Metrics for Video Quality Estimation. ICT Innovations, 357-366.Larrue, T., Li, Y., Meng, X., & Han, C.-M. (2018). Denoising Videos with Convolutional Autoencoders. Proceedings of ACM Conference. New York: University of Maryland.Lau, M., & Hann, K. (2018). Review of Adaptive Activation Function in Deep Neural Network. Conference on Biomedical Engineering and Sciences (IECBES). Sarawak, Malasia.Leal, J. (2021). Características de la infraestructura que pueden favorecer la conducción asistida y automatizada. Revista digital del CEDEX(197), 106-117.León, A., Bermeo, J., Paredes, J., & Torres, H. (2020). Una revisión de las métricas aplicadas en el procesamiento de imágenes. RECIMUNDO: Revista Científica de la Investigación y el Conocimiento, 4(3), 267-273.Li, L., Yu, X., Jin, Z., Zhao, Z., Zhuang, X., & Liu, Z. (2020). FDnCNN-based image denoising for multi-labfel localization measurement. Measurement, 152.Lore, K., Akintayo, A., & Sarkar, S. (2017). LLNet: A deep autoencoder approach to natural low-light image enhancement. Pattern Recognition, 61, 650-662.Lv, H., & Li, H. (2021). Denoising method of low illumination underwater motion image based on improved canny. Microprocessors and microsystems, 82.Majumdar, A. (2019). Blind Denoising Autoencoder. IEEE Transactions on Neural Networks and Learning Systems, 30(1), 312-317.Marreiros, A., Daunizeau, J., Kiebel, S., & Friston, K. (2008). Population dynamics: Variance and the sigmoid activation function. NeuroImage, 42(1), 147-157.MathWorks. (s.f.). Métricas de calidad de imagen. Recuperado el 22 de Junio de 2021, de es.mathworks.comMathWorks. (s.f.). Soporte para ISO 26262 en MATLAB y Simulink. Recuperado el 3 de Julio de 2021, de es.mathworks.comMcCulloch, W., & Pitts, W. (1943). A logical calculus of the ideas immanent in nervous activity. The bulletin of mathematical biophysics, 5(4), 115–133.McGunnigle, L. (2020). Berkely deep drive.McGunnigle, L. (2020). Berkely deep drive.Mérida, M. (2012). Reconocimiento biométrico basado en imágenes de huellas palmares. Universidad autónoma de Madrid.Microsoft. (s.f.). Visual Studio Code. Recuperado el Septiembre de 2021, de https://code.visualstudio.com/Ministerio de educación. (30 de Noviembre de 2020). Protección de Datos Personales. Recuperado el 27 de Julio de 2021, de www.mineducacion.gov.coMinisterio de educación. (30 de Noviembre de 2020). Protección de Datos Personales. 103 Recuperado el 27 de Julio de 2021, de www.mineducacion.gov.coMinisterio de educación. (30 de Noviembre de 2020). Protección de Datos Personales. 103 Recuperado el 27 de Julio de 2021, de www.mineducacion.gov.coNumPy Developers. (s.f.). numpy.random.normal. Recuperado el 16 de Febrero de 2022, de https://numpy.org/doc/stable/reference/random/generated/numpy.random.normal.htmlNumPy Developers. (s.f.). numpy.random.normal. Recuperado el 16 de Febrero de 2022, de https://numpy.org/doc/stable/reference/random/generated/numpy.random.normal.htmlOracle. (s.f.). Java. Recuperado el Septiembre de 2021, de dev.javaOrganización mundial de la salud (OMS). (2017). 10 datos sobre la seguridad vial en el mundo. Recuperado el 7 de Mayo de 2021, de https://www.who.int/Organización mundial de la salud (OMS). (2017). 10 datos sobre la seguridad vial en el mundo. Recuperado el 7 de Mayo de 2021, de https://www.who.int/Organización mundial de la salud (OMS). (2017). 10 datos sobre la seguridad vial en el mundo. Recuperado el 7 de Mayo de 2021, de https://www.who.int/Organización mundial de la salud (OMS). (2017). 10 datos sobre la seguridad vial en el mundo. Recuperado el 7 de Mayo de 2021, de https://www.who.int/Organización mundial de la salud (OMS). (2017). 10 datos sobre la seguridad vial en el mundo. Recuperado el 7 de Mayo de 2021, de https://www.who.int/Python Software Foundation. (s.f.). Python. Recuperado el Septiembre de 2021, de 104 www.python.org/Reddy, S., Mathew, M., Gomez, L., & Rusinol, K. D. (2020). RoadText-1K: Text Detection & Recognition Dataset for Driving Videos.Reddy, S., Mathew, M., Gomez, L., Rusinol, M., & Karatzas, D. (2020). RoadText-1K: Text Detection & Recognition Dataset for Driving Videos. 2020 IEEE International Conference on Robotics and Automation (ICRA). Paris.Riveros, J. (2013). Reconocimiento y tratamiento de imágenes en sistemas embebidos para la detección de enfermedades en plantas. Bogotá D.C.: Universidad de los andes.Rohrer, C. (2020). Adversarial detection using denoising autoencoder. Politecnico Milano.Rosenblatt, F. (1958). The perceptron: a probabilistic model for information storage and organization in the brain. Psychological review, 65(6), 386.SAE International. (30 de Abril de 2021). Taxonomy and Definitions for Terms Related to Driving Automation Systems for On-Road Motor Vehicles. Recuperado el 3 de Julio de 2021, de www.sae.orgSzeliski, R. (2010). Computer Vision: Algorithms and Applications. Springer Science & Business Media.Tai, Y., Yang, J., Liu, X., & Xu, C. (2017). MemNet: A Persistent Memory Network for Image Restoration. Proceedings of the IEEE international conference on computer vision, (págs. 4539-4547).Talero, W. (2015). Seguridad en los autos con sistemas de apoyo a la conducción. Universidad Piloto de Colombia.Tian, C., Fei, L., Zheng, W., Xu, Y., & Lin, C.-W. (2020). Deep learning on image denoising: An overview. Neural Networks, 131, 251-275.Torres, L., Ardila, A., Contreras, G., Castro, S., Medina, B., & Guevara, D. (2022). DCAEAD: Denoising system for assisted driving images applying an autoencoder architecture. IEEE International Conference on Automation/XXV Congress of the Chilean Association of Automatic Control (ICA-ACCA). Curicó, Chile.Visual Data. (s.f.). Recuperado el 8 de Mayo de 2021, de https://visualdata.io/Wang, S., Wang, H., Xiang, S., & Yu, L. (2020). Densely connected convolutional network block based autoencoder for panorama map compression. Signal Processing: Image Communication, 80, 115678.Wu, P., Liu, J., Li, M., Sun, Y., & Shen, F. (2020). Fast sparse coding networks for anomaly detection in videos. Pattern Recognition, 107, 107515.Xu, D., Yan, Y., Ricci, R., & Sebe, N. (2017). Detecting anomalous events in videos by learning deep representations of appearance and motion. Computer Vision and Image Understanding, 156, 117-127.Yapici, A., & Akcayol, A. (2021). A Review of Image Denoising With Deep Learning. 2nd International Informatics and Software Engineering Conference. Ankara, Turkey.Zhang, K., Zuo, W., Chen, Y., Meng, D., & Zhang, L. (2017). Beyond a Gaussian Denoiser: Residual Learning of Deep CNN for Image Denoising. IEEE Transactions on Image Processing, 26(7), 3142-3155.LICENSElicense.txtlicense.txttext/plain; charset=utf-814828https://repositorio.ufps.edu.co/bitstream/ufps/6771/2/license.txt2f9959eaf5b71fae44bbf9ec84150c7aMD52open accessORIGINAL1161637.pdf1161637.pdfProyecto de gradoapplication/pdf3623740https://repositorio.ufps.edu.co/bitstream/ufps/6771/1/1161637.pdfda62051b1ff65686ed972d31d715c2a1MD51open accessTEXT1161637.pdf.txt1161637.pdf.txtExtracted texttext/plain164763https://repositorio.ufps.edu.co/bitstream/ufps/6771/3/1161637.pdf.txtf8bb8210d066b9d249f8ec4cd0f83a97MD53open accessTHUMBNAIL1161637.pdf.jpg1161637.pdf.jpgGenerated Thumbnailimage/jpeg14010https://repositorio.ufps.edu.co/bitstream/ufps/6771/4/1161637.pdf.jpg4637f6a58dba051cb9fafbb48b5bae6cMD54open accessufps/6771oai:repositorio.ufps.edu.co:ufps/67712024-04-02 03:01:05.888open accessRepositorio Universidad Francisco de Paula Santanderbdigital@metabiblioteca.comTEEgT0JSQSAoVEFMIFkgQ09NTyBTRSBERUZJTkUgTcOBUyBBREVMQU5URSkgU0UgT1RPUkdBIEJBSk8gTE9TIFRFUk1JTk9TIERFIEVTVEEgTElDRU5DSUEgUMOaQkxJQ0EgREUgQ1JFQVRJVkUgQ09NTU9OUyAo4oCcTFBDQ+KAnSBPIOKAnExJQ0VOQ0lB4oCdKS4gTEEgT0JSQSBFU1TDgSBQUk9URUdJREEgUE9SIERFUkVDSE9TIERFIEFVVE9SIFkvVSBPVFJBUyBMRVlFUyBBUExJQ0FCTEVTLiBRVUVEQSBQUk9ISUJJRE8gQ1VBTFFVSUVSIFVTTyBRVUUgU0UgSEFHQSBERSBMQSBPQlJBIFFVRSBOTyBDVUVOVEUgQ09OIExBIEFVVE9SSVpBQ0nDk04gUEVSVElORU5URSBERSBDT05GT1JNSURBRCBDT04gTE9TIFTDiVJNSU5PUyBERSBFU1RBIExJQ0VOQ0lBIFkgREUgTEEgTEVZIERFIERFUkVDSE8gREUgQVVUT1IuCgpNRURJQU5URSBFTCBFSkVSQ0lDSU8gREUgQ1VBTFFVSUVSQSBERSBMT1MgREVSRUNIT1MgUVVFIFNFIE9UT1JHQU4gRU4gRVNUQSBMSUNFTkNJQSwgVVNURUQgQUNFUFRBIFkgQUNVRVJEQSBRVUVEQVIgT0JMSUdBRE8gRU4gTE9TIFRFUk1JTk9TIFFVRSBTRSBTRcORQUxBTiBFTiBFTExBLiBFTCBMSUNFTkNJQU5URSBDT05DRURFIEEgVVNURUQgTE9TIERFUkVDSE9TIENPTlRFTklET1MgRU4gRVNUQSBMSUNFTkNJQSBDT05ESUNJT05BRE9TIEEgTEEgQUNFUFRBQ0nDk04gREUgU1VTIFRFUk1JTk9TIFkgQ09ORElDSU9ORVMuCjEuIERlZmluaWNpb25lcwoKYS4JT2JyYSBDb2xlY3RpdmEgZXMgdW5hIG9icmEsIHRhbCBjb21vIHVuYSBwdWJsaWNhY2nDs24gcGVyacOzZGljYSwgdW5hIGFudG9sb2fDrWEsIG8gdW5hIGVuY2ljbG9wZWRpYSwgZW4gbGEgcXVlIGxhIG9icmEgZW4gc3UgdG90YWxpZGFkLCBzaW4gbW9kaWZpY2FjacOzbiBhbGd1bmEsIGp1bnRvIGNvbiB1biBncnVwbyBkZSBvdHJhcyBjb250cmlidWNpb25lcyBxdWUgY29uc3RpdHV5ZW4gb2JyYXMgc2VwYXJhZGFzIGUgaW5kZXBlbmRpZW50ZXMgZW4gc8OtIG1pc21hcywgc2UgaW50ZWdyYW4gZW4gdW4gdG9kbyBjb2xlY3Rpdm8uIFVuYSBPYnJhIHF1ZSBjb25zdGl0dXllIHVuYSBvYnJhIGNvbGVjdGl2YSBubyBzZSBjb25zaWRlcmFyw6EgdW5hIE9icmEgRGVyaXZhZGEgKGNvbW8gc2UgZGVmaW5lIGFiYWpvKSBwYXJhIGxvcyBwcm9ww7NzaXRvcyBkZSBlc3RhIGxpY2VuY2lhLiBhcXVlbGxhIHByb2R1Y2lkYSBwb3IgdW4gZ3J1cG8gZGUgYXV0b3JlcywgZW4gcXVlIGxhIE9icmEgc2UgZW5jdWVudHJhIHNpbiBtb2RpZmljYWNpb25lcywganVudG8gY29uIHVuYSBjaWVydGEgY2FudGlkYWQgZGUgb3RyYXMgY29udHJpYnVjaW9uZXMsIHF1ZSBjb25zdGl0dXllbiBlbiBzw60gbWlzbW9zIHRyYWJham9zIHNlcGFyYWRvcyBlIGluZGVwZW5kaWVudGVzLCBxdWUgc29uIGludGVncmFkb3MgYWwgdG9kbyBjb2xlY3Rpdm8sIHRhbGVzIGNvbW8gcHVibGljYWNpb25lcyBwZXJpw7NkaWNhcywgYW50b2xvZ8OtYXMgbyBlbmNpY2xvcGVkaWFzLgoKYi4JT2JyYSBEZXJpdmFkYSBzaWduaWZpY2EgdW5hIG9icmEgYmFzYWRhIGVuIGxhIG9icmEgb2JqZXRvIGRlIGVzdGEgbGljZW5jaWEgbyBlbiDDqXN0YSB5IG90cmFzIG9icmFzIHByZWV4aXN0ZW50ZXMsIHRhbGVzIGNvbW8gdHJhZHVjY2lvbmVzLCBhcnJlZ2xvcyBtdXNpY2FsZXMsIGRyYW1hdGl6YWNpb25lcywg4oCcZmljY2lvbmFsaXphY2lvbmVz4oCdLCB2ZXJzaW9uZXMgcGFyYSBjaW5lLCDigJxncmFiYWNpb25lcyBkZSBzb25pZG/igJ0sIHJlcHJvZHVjY2lvbmVzIGRlIGFydGUsIHJlc8O6bWVuZXMsIGNvbmRlbnNhY2lvbmVzLCBvIGN1YWxxdWllciBvdHJhIGVuIGxhIHF1ZSBsYSBvYnJhIHB1ZWRhIHNlciB0cmFuc2Zvcm1hZGEsIGNhbWJpYWRhIG8gYWRhcHRhZGEsIGV4Y2VwdG8gYXF1ZWxsYXMgcXVlIGNvbnN0aXR1eWFuIHVuYSBvYnJhIGNvbGVjdGl2YSwgbGFzIHF1ZSBubyBzZXLDoW4gY29uc2lkZXJhZGFzIHVuYSBvYnJhIGRlcml2YWRhIHBhcmEgZWZlY3RvcyBkZSBlc3RhIGxpY2VuY2lhLiAoUGFyYSBldml0YXIgZHVkYXMsIGVuIGVsIGNhc28gZGUgcXVlIGxhIE9icmEgc2VhIHVuYSBjb21wb3NpY2nDs24gbXVzaWNhbCBvIHVuYSBncmFiYWNpw7NuIHNvbm9yYSwgcGFyYSBsb3MgZWZlY3RvcyBkZSBlc3RhIExpY2VuY2lhIGxhIHNpbmNyb25pemFjacOzbiB0ZW1wb3JhbCBkZSBsYSBPYnJhIGNvbiB1bmEgaW1hZ2VuIGVuIG1vdmltaWVudG8gc2UgY29uc2lkZXJhcsOhIHVuYSBPYnJhIERlcml2YWRhIHBhcmEgbG9zIGZpbmVzIGRlIGVzdGEgbGljZW5jaWEpLgoKYy4JTGljZW5jaWFudGUsIGVzIGVsIGluZGl2aWR1byBvIGxhIGVudGlkYWQgdGl0dWxhciBkZSBsb3MgZGVyZWNob3MgZGUgYXV0b3IgcXVlIG9mcmVjZSBsYSBPYnJhIGVuIGNvbmZvcm1pZGFkIGNvbiBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYS4KCmQuCUF1dG9yIG9yaWdpbmFsLCBlcyBlbCBpbmRpdmlkdW8gcXVlIGNyZcOzIGxhIE9icmEuCgplLglPYnJhLCBlcyBhcXVlbGxhIG9icmEgc3VzY2VwdGlibGUgZGUgcHJvdGVjY2nDs24gcG9yIGVsIHLDqWdpbWVuIGRlIERlcmVjaG8gZGUgQXV0b3IgeSBxdWUgZXMgb2ZyZWNpZGEgZW4gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIGxpY2VuY2lhCgpmLglVc3RlZCwgZXMgZWwgaW5kaXZpZHVvIG8gbGEgZW50aWRhZCBxdWUgZWplcmNpdGEgbG9zIGRlcmVjaG9zIG90b3JnYWRvcyBhbCBhbXBhcm8gZGUgZXN0YSBMaWNlbmNpYSB5IHF1ZSBjb24gYW50ZXJpb3JpZGFkIG5vIGhhIHZpb2xhZG8gbGFzIGNvbmRpY2lvbmVzIGRlIGxhIG1pc21hIHJlc3BlY3RvIGEgbGEgT2JyYSwgbyBxdWUgaGF5YSBvYnRlbmlkbyBhdXRvcml6YWNpw7NuIGV4cHJlc2EgcG9yIHBhcnRlIGRlbCBMaWNlbmNpYW50ZSBwYXJhIGVqZXJjZXIgbG9zIGRlcmVjaG9zIGFsIGFtcGFybyBkZSBlc3RhIExpY2VuY2lhIHBlc2UgYSB1bmEgdmlvbGFjacOzbiBhbnRlcmlvci4KCjIuIERlcmVjaG9zIGRlIFVzb3MgSG9ucmFkb3MgeSBleGNlcGNpb25lcyBMZWdhbGVzLgpOYWRhIGVuIGVzdGEgTGljZW5jaWEgcG9kcsOhIHNlciBpbnRlcnByZXRhZG8gY29tbyB1bmEgZGlzbWludWNpw7NuLCBsaW1pdGFjacOzbiBvIHJlc3RyaWNjacOzbiBkZSBsb3MgZGVyZWNob3MgZGVyaXZhZG9zIGRlbCB1c28gaG9ucmFkbyB5IG90cmFzIGxpbWl0YWNpb25lcyBvIGV4Y2VwY2lvbmVzIGEgbG9zIGRlcmVjaG9zIGRlbCBhdXRvciBiYWpvIGVsIHLDqWdpbWVuIGxlZ2FsIHZpZ2VudGUgbyBkZXJpdmFkbyBkZSBjdWFscXVpZXIgb3RyYSBub3JtYSBxdWUgc2UgbGUgYXBsaXF1ZS4KCjMuIENvbmNlc2nDs24gZGUgbGEgTGljZW5jaWEuCkJham8gbG9zIHTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEsIGVsIExpY2VuY2lhbnRlIG90b3JnYSBhIFVzdGVkIHVuYSBsaWNlbmNpYSBtdW5kaWFsLCBsaWJyZSBkZSByZWdhbMOtYXMsIG5vIGV4Y2x1c2l2YSB5IHBlcnBldHVhIChkdXJhbnRlIHRvZG8gZWwgcGVyw61vZG8gZGUgdmlnZW5jaWEgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yKSBwYXJhIGVqZXJjZXIgZXN0b3MgZGVyZWNob3Mgc29icmUgbGEgT2JyYSB0YWwgeSBjb21vIHNlIGluZGljYSBhIGNvbnRpbnVhY2nDs246CgphLglSZXByb2R1Y2lyIGxhIE9icmEsIGluY29ycG9yYXIgbGEgT2JyYSBlbiB1bmEgbyBtw6FzIE9icmFzIENvbGVjdGl2YXMsIHkgcmVwcm9kdWNpciBsYSBPYnJhIGluY29ycG9yYWRhIGVuIGxhcyBPYnJhcyBDb2xlY3RpdmFzLgoKYi4JRGlzdHJpYnVpciBjb3BpYXMgbyBmb25vZ3JhbWFzIGRlIGxhcyBPYnJhcywgZXhoaWJpcmxhcyBww7pibGljYW1lbnRlLCBlamVjdXRhcmxhcyBww7pibGljYW1lbnRlIHkvbyBwb25lcmxhcyBhIGRpc3Bvc2ljacOzbiBww7pibGljYSwgaW5jbHV5w6luZG9sYXMgY29tbyBpbmNvcnBvcmFkYXMgZW4gT2JyYXMgQ29sZWN0aXZhcywgc2Vnw7puIGNvcnJlc3BvbmRhLgoKYy4JRGlzdHJpYnVpciBjb3BpYXMgZGUgbGFzIE9icmFzIERlcml2YWRhcyBxdWUgc2UgZ2VuZXJlbiwgZXhoaWJpcmxhcyBww7pibGljYW1lbnRlLCBlamVjdXRhcmxhcyBww7pibGljYW1lbnRlIHkvbyBwb25lcmxhcyBhIGRpc3Bvc2ljacOzbiBww7pibGljYS4KTG9zIGRlcmVjaG9zIG1lbmNpb25hZG9zIGFudGVyaW9ybWVudGUgcHVlZGVuIHNlciBlamVyY2lkb3MgZW4gdG9kb3MgbG9zIG1lZGlvcyB5IGZvcm1hdG9zLCBhY3R1YWxtZW50ZSBjb25vY2lkb3MgbyBxdWUgc2UgaW52ZW50ZW4gZW4gZWwgZnV0dXJvLiBMb3MgZGVyZWNob3MgYW50ZXMgbWVuY2lvbmFkb3MgaW5jbHV5ZW4gZWwgZGVyZWNobyBhIHJlYWxpemFyIGRpY2hhcyBtb2RpZmljYWNpb25lcyBlbiBsYSBtZWRpZGEgcXVlIHNlYW4gdMOpY25pY2FtZW50ZSBuZWNlc2FyaWFzIHBhcmEgZWplcmNlciBsb3MgZGVyZWNob3MgZW4gb3RybyBtZWRpbyBvIGZvcm1hdG9zLCBwZXJvIGRlIG90cmEgbWFuZXJhIHVzdGVkIG5vIGVzdMOhIGF1dG9yaXphZG8gcGFyYSByZWFsaXphciBvYnJhcyBkZXJpdmFkYXMuIFRvZG9zIGxvcyBkZXJlY2hvcyBubyBvdG9yZ2Fkb3MgZXhwcmVzYW1lbnRlIHBvciBlbCBMaWNlbmNpYW50ZSBxdWVkYW4gcG9yIGVzdGUgbWVkaW8gcmVzZXJ2YWRvcywgaW5jbHV5ZW5kbyBwZXJvIHNpbiBsaW1pdGFyc2UgYSBhcXVlbGxvcyBxdWUgc2UgbWVuY2lvbmFuIGVuIGxhcyBzZWNjaW9uZXMgNChkKSB5IDQoZSkuCgo0LiBSZXN0cmljY2lvbmVzLgpMYSBsaWNlbmNpYSBvdG9yZ2FkYSBlbiBsYSBhbnRlcmlvciBTZWNjacOzbiAzIGVzdMOhIGV4cHJlc2FtZW50ZSBzdWpldGEgeSBsaW1pdGFkYSBwb3IgbGFzIHNpZ3VpZW50ZXMgcmVzdHJpY2Npb25lczoKCmEuCVVzdGVkIHB1ZWRlIGRpc3RyaWJ1aXIsIGV4aGliaXIgcMO6YmxpY2FtZW50ZSwgZWplY3V0YXIgcMO6YmxpY2FtZW50ZSwgbyBwb25lciBhIGRpc3Bvc2ljacOzbiBww7pibGljYSBsYSBPYnJhIHPDs2xvIGJham8gbGFzIGNvbmRpY2lvbmVzIGRlIGVzdGEgTGljZW5jaWEsIHkgVXN0ZWQgZGViZSBpbmNsdWlyIHVuYSBjb3BpYSBkZSBlc3RhIGxpY2VuY2lhIG8gZGVsIElkZW50aWZpY2Fkb3IgVW5pdmVyc2FsIGRlIFJlY3Vyc29zIGRlIGxhIG1pc21hIGNvbiBjYWRhIGNvcGlhIGRlIGxhIE9icmEgcXVlIGRpc3RyaWJ1eWEsIGV4aGliYSBww7pibGljYW1lbnRlLCBlamVjdXRlIHDDumJsaWNhbWVudGUgbyBwb25nYSBhIGRpc3Bvc2ljacOzbiBww7pibGljYS4gTm8gZXMgcG9zaWJsZSBvZnJlY2VyIG8gaW1wb25lciBuaW5ndW5hIGNvbmRpY2nDs24gc29icmUgbGEgT2JyYSBxdWUgYWx0ZXJlIG8gbGltaXRlIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhIG8gZWwgZWplcmNpY2lvIGRlIGxvcyBkZXJlY2hvcyBkZSBsb3MgZGVzdGluYXRhcmlvcyBvdG9yZ2Fkb3MgZW4gZXN0ZSBkb2N1bWVudG8uIE5vIGVzIHBvc2libGUgc3VibGljZW5jaWFyIGxhIE9icmEuIFVzdGVkIGRlYmUgbWFudGVuZXIgaW50YWN0b3MgdG9kb3MgbG9zIGF2aXNvcyBxdWUgaGFnYW4gcmVmZXJlbmNpYSBhIGVzdGEgTGljZW5jaWEgeSBhIGxhIGNsw6F1c3VsYSBkZSBsaW1pdGFjacOzbiBkZSBnYXJhbnTDrWFzLiBVc3RlZCBubyBwdWVkZSBkaXN0cmlidWlyLCBleGhpYmlyIHDDumJsaWNhbWVudGUsIGVqZWN1dGFyIHDDumJsaWNhbWVudGUsIG8gcG9uZXIgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBjb24gYWxndW5hIG1lZGlkYSB0ZWNub2zDs2dpY2EgcXVlIGNvbnRyb2xlIGVsIGFjY2VzbyBvIGxhIHV0aWxpemFjacOzbiBkZSBlbGxhIGRlIHVuYSBmb3JtYSBxdWUgc2VhIGluY29uc2lzdGVudGUgY29uIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLiBMbyBhbnRlcmlvciBzZSBhcGxpY2EgYSBsYSBPYnJhIGluY29ycG9yYWRhIGEgdW5hIE9icmEgQ29sZWN0aXZhLCBwZXJvIGVzdG8gbm8gZXhpZ2UgcXVlIGxhIE9icmEgQ29sZWN0aXZhIGFwYXJ0ZSBkZSBsYSBvYnJhIG1pc21hIHF1ZWRlIHN1amV0YSBhIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLiBTaSBVc3RlZCBjcmVhIHVuYSBPYnJhIENvbGVjdGl2YSwgcHJldmlvIGF2aXNvIGRlIGN1YWxxdWllciBMaWNlbmNpYW50ZSBkZWJlLCBlbiBsYSBtZWRpZGEgZGUgbG8gcG9zaWJsZSwgZWxpbWluYXIgZGUgbGEgT2JyYSBDb2xlY3RpdmEgY3VhbHF1aWVyIHJlZmVyZW5jaWEgYSBkaWNobyBMaWNlbmNpYW50ZSBvIGFsIEF1dG9yIE9yaWdpbmFsLCBzZWfDum4gbG8gc29saWNpdGFkbyBwb3IgZWwgTGljZW5jaWFudGUgeSBjb25mb3JtZSBsbyBleGlnZSBsYSBjbMOhdXN1bGEgNChjKS4KCmIuCVVzdGVkIG5vIHB1ZWRlIGVqZXJjZXIgbmluZ3VubyBkZSBsb3MgZGVyZWNob3MgcXVlIGxlIGhhbiBzaWRvIG90b3JnYWRvcyBlbiBsYSBTZWNjacOzbiAzIHByZWNlZGVudGUgZGUgbW9kbyBxdWUgZXN0w6luIHByaW5jaXBhbG1lbnRlIGRlc3RpbmFkb3MgbyBkaXJlY3RhbWVudGUgZGlyaWdpZG9zIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLiBFbCBpbnRlcmNhbWJpbyBkZSBsYSBPYnJhIHBvciBvdHJhcyBvYnJhcyBwcm90ZWdpZGFzIHBvciBkZXJlY2hvcyBkZSBhdXRvciwgeWEgc2VhIGEgdHJhdsOpcyBkZSB1biBzaXN0ZW1hIHBhcmEgY29tcGFydGlyIGFyY2hpdm9zIGRpZ2l0YWxlcyAoZGlnaXRhbCBmaWxlLXNoYXJpbmcpIG8gZGUgY3VhbHF1aWVyIG90cmEgbWFuZXJhIG5vIHNlcsOhIGNvbnNpZGVyYWRvIGNvbW8gZXN0YXIgZGVzdGluYWRvIHByaW5jaXBhbG1lbnRlIG8gZGlyaWdpZG8gZGlyZWN0YW1lbnRlIGEgY29uc2VndWlyIHVuIHByb3ZlY2hvIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLCBzaWVtcHJlIHF1ZSBubyBzZSByZWFsaWNlIHVuIHBhZ28gbWVkaWFudGUgdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIGVuIHJlbGFjacOzbiBjb24gZWwgaW50ZXJjYW1iaW8gZGUgb2JyYXMgcHJvdGVnaWRhcyBwb3IgZWwgZGVyZWNobyBkZSBhdXRvci4KCmMuCVNpIHVzdGVkIGRpc3RyaWJ1eWUsIGV4aGliZSBww7pibGljYW1lbnRlLCBlamVjdXRhIHDDumJsaWNhbWVudGUgbyBlamVjdXRhIHDDumJsaWNhbWVudGUgZW4gZm9ybWEgZGlnaXRhbCBsYSBPYnJhIG8gY3VhbHF1aWVyIE9icmEgRGVyaXZhZGEgdSBPYnJhIENvbGVjdGl2YSwgVXN0ZWQgZGViZSBtYW50ZW5lciBpbnRhY3RhIHRvZGEgbGEgaW5mb3JtYWNpw7NuIGRlIGRlcmVjaG8gZGUgYXV0b3IgZGUgbGEgT2JyYSB5IHByb3BvcmNpb25hciwgZGUgZm9ybWEgcmF6b25hYmxlIHNlZ8O6biBlbCBtZWRpbyBvIG1hbmVyYSBxdWUgVXN0ZWQgZXN0w6kgdXRpbGl6YW5kbzogKGkpIGVsIG5vbWJyZSBkZWwgQXV0b3IgT3JpZ2luYWwgc2kgZXN0w6EgcHJvdmlzdG8gKG8gc2V1ZMOzbmltbywgc2kgZnVlcmUgYXBsaWNhYmxlKSwgeS9vIChpaSkgZWwgbm9tYnJlIGRlIGxhIHBhcnRlIG8gbGFzIHBhcnRlcyBxdWUgZWwgQXV0b3IgT3JpZ2luYWwgeS9vIGVsIExpY2VuY2lhbnRlIGh1YmllcmVuIGRlc2lnbmFkbyBwYXJhIGxhIGF0cmlidWNpw7NuICh2LmcuLCB1biBpbnN0aXR1dG8gcGF0cm9jaW5hZG9yLCBlZGl0b3JpYWwsIHB1YmxpY2FjacOzbikgZW4gbGEgaW5mb3JtYWNpw7NuIGRlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBkZWwgTGljZW5jaWFudGUsIHTDqXJtaW5vcyBkZSBzZXJ2aWNpb3MgbyBkZSBvdHJhcyBmb3JtYXMgcmF6b25hYmxlczsgZWwgdMOtdHVsbyBkZSBsYSBPYnJhIHNpIGVzdMOhIHByb3Zpc3RvOyBlbiBsYSBtZWRpZGEgZGUgbG8gcmF6b25hYmxlbWVudGUgZmFjdGlibGUgeSwgc2kgZXN0w6EgcHJvdmlzdG8sIGVsIElkZW50aWZpY2Fkb3IgVW5pZm9ybWUgZGUgUmVjdXJzb3MgKFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllcikgcXVlIGVsIExpY2VuY2lhbnRlIGVzcGVjaWZpY2EgcGFyYSBzZXIgYXNvY2lhZG8gY29uIGxhIE9icmEsIHNhbHZvIHF1ZSB0YWwgVVJJIG5vIHNlIHJlZmllcmEgYSBsYSBub3RhIHNvYnJlIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBvIGEgbGEgaW5mb3JtYWNpw7NuIHNvYnJlIGVsIGxpY2VuY2lhbWllbnRvIGRlIGxhIE9icmE7IHkgZW4gZWwgY2FzbyBkZSB1bmEgT2JyYSBEZXJpdmFkYSwgYXRyaWJ1aXIgZWwgY3LDqWRpdG8gaWRlbnRpZmljYW5kbyBlbCB1c28gZGUgbGEgT2JyYSBlbiBsYSBPYnJhIERlcml2YWRhICh2LmcuLCAiVHJhZHVjY2nDs24gRnJhbmNlc2EgZGUgbGEgT2JyYSBkZWwgQXV0b3IgT3JpZ2luYWwsIiBvICJHdWnDs24gQ2luZW1hdG9ncsOhZmljbyBiYXNhZG8gZW4gbGEgT2JyYSBvcmlnaW5hbCBkZWwgQXV0b3IgT3JpZ2luYWwiKS4gVGFsIGNyw6lkaXRvIHB1ZWRlIHNlciBpbXBsZW1lbnRhZG8gZGUgY3VhbHF1aWVyIGZvcm1hIHJhem9uYWJsZTsgZW4gZWwgY2Fzbywgc2luIGVtYmFyZ28sIGRlIE9icmFzIERlcml2YWRhcyB1IE9icmFzIENvbGVjdGl2YXMsIHRhbCBjcsOpZGl0byBhcGFyZWNlcsOhLCBjb21vIG3DrW5pbW8sIGRvbmRlIGFwYXJlY2UgZWwgY3LDqWRpdG8gZGUgY3VhbHF1aWVyIG90cm8gYXV0b3IgY29tcGFyYWJsZSB5IGRlIHVuYSBtYW5lcmEsIGFsIG1lbm9zLCB0YW4gZGVzdGFjYWRhIGNvbW8gZWwgY3LDqWRpdG8gZGUgb3RybyBhdXRvciBjb21wYXJhYmxlLgoKZC4JUGFyYSBldml0YXIgdG9kYSBjb25mdXNpw7NuLCBlbCBMaWNlbmNpYW50ZSBhY2xhcmEgcXVlLCBjdWFuZG8gbGEgb2JyYSBlcyB1bmEgY29tcG9zaWNpw7NuIG11c2ljYWw6CgppLglSZWdhbMOtYXMgcG9yIGludGVycHJldGFjacOzbiB5IGVqZWN1Y2nDs24gYmFqbyBsaWNlbmNpYXMgZ2VuZXJhbGVzLiBFbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZXhjbHVzaXZvIGRlIGF1dG9yaXphciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIG8gbGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGRlIGxhIG9icmEgeSBkZSByZWNvbGVjdGFyLCBzZWEgaW5kaXZpZHVhbG1lbnRlIG8gYSB0cmF2w6lzIGRlIHVuYSBzb2NpZWRhZCBkZSBnZXN0acOzbiBjb2xlY3RpdmEgZGUgZGVyZWNob3MgZGUgYXV0b3IgeSBkZXJlY2hvcyBjb25leG9zIChwb3IgZWplbXBsbywgU0FZQ08pLCBsYXMgcmVnYWzDrWFzIHBvciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIG8gcG9yIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBkZSBsYSBvYnJhIChwb3IgZWplbXBsbyBXZWJjYXN0KSBsaWNlbmNpYWRhIGJham8gbGljZW5jaWFzIGdlbmVyYWxlcywgc2kgbGEgaW50ZXJwcmV0YWNpw7NuIG8gZWplY3VjacOzbiBkZSBsYSBvYnJhIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBvcmllbnRhZGEgcG9yIG8gZGlyaWdpZGEgYSBsYSBvYnRlbmNpw7NuIGRlIHVuYSB2ZW50YWphIGNvbWVyY2lhbCBvIHVuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLgoKaWkuCVJlZ2Fsw61hcyBwb3IgRm9ub2dyYW1hcy4gRWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGV4Y2x1c2l2byBkZSByZWNvbGVjdGFyLCBpbmRpdmlkdWFsbWVudGUgbyBhIHRyYXbDqXMgZGUgdW5hIHNvY2llZGFkIGRlIGdlc3Rpw7NuIGNvbGVjdGl2YSBkZSBkZXJlY2hvcyBkZSBhdXRvciB5IGRlcmVjaG9zIGNvbmV4b3MgKHBvciBlamVtcGxvLCBsb3MgY29uc2FncmFkb3MgcG9yIGxhIFNBWUNPKSwgdW5hIGFnZW5jaWEgZGUgZGVyZWNob3MgbXVzaWNhbGVzIG8gYWxnw7puIGFnZW50ZSBkZXNpZ25hZG8sIGxhcyByZWdhbMOtYXMgcG9yIGN1YWxxdWllciBmb25vZ3JhbWEgcXVlIFVzdGVkIGNyZWUgYSBwYXJ0aXIgZGUgbGEgb2JyYSAo4oCcdmVyc2nDs24gY292ZXLigJ0pIHkgZGlzdHJpYnV5YSwgZW4gbG9zIHTDqXJtaW5vcyBkZWwgcsOpZ2ltZW4gZGUgZGVyZWNob3MgZGUgYXV0b3IsIHNpIGxhIGNyZWFjacOzbiBvIGRpc3RyaWJ1Y2nDs24gZGUgZXNhIHZlcnNpw7NuIGNvdmVyIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBkZXN0aW5hZGEgbyBkaXJpZ2lkYSBhIG9idGVuZXIgdW5hIHZlbnRhamEgY29tZXJjaWFsIG8gdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIHByaXZhZGEuCgplLglHZXN0acOzbiBkZSBEZXJlY2hvcyBkZSBBdXRvciBzb2JyZSBJbnRlcnByZXRhY2lvbmVzIHkgRWplY3VjaW9uZXMgRGlnaXRhbGVzIChXZWJDYXN0aW5nKS4gUGFyYSBldml0YXIgdG9kYSBjb25mdXNpw7NuLCBlbCBMaWNlbmNpYW50ZSBhY2xhcmEgcXVlLCBjdWFuZG8gbGEgb2JyYSBzZWEgdW4gZm9ub2dyYW1hLCBlbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZXhjbHVzaXZvIGRlIGF1dG9yaXphciBsYSBlamVjdWNpw7NuIHDDumJsaWNhIGRpZ2l0YWwgZGUgbGEgb2JyYSAocG9yIGVqZW1wbG8sIHdlYmNhc3QpIHkgZGUgcmVjb2xlY3RhciwgaW5kaXZpZHVhbG1lbnRlIG8gYSB0cmF2w6lzIGRlIHVuYSBzb2NpZWRhZCBkZSBnZXN0acOzbiBjb2xlY3RpdmEgZGUgZGVyZWNob3MgZGUgYXV0b3IgeSBkZXJlY2hvcyBjb25leG9zIChwb3IgZWplbXBsbywgQUNJTlBSTyksIGxhcyByZWdhbMOtYXMgcG9yIGxhIGVqZWN1Y2nDs24gcMO6YmxpY2EgZGlnaXRhbCBkZSBsYSBvYnJhIChwb3IgZWplbXBsbywgd2ViY2FzdCksIHN1amV0YSBhIGxhcyBkaXNwb3NpY2lvbmVzIGFwbGljYWJsZXMgZGVsIHLDqWdpbWVuIGRlIERlcmVjaG8gZGUgQXV0b3IsIHNpIGVzdGEgZWplY3VjacOzbiBww7pibGljYSBkaWdpdGFsIGVzdMOhIHByaW1vcmRpYWxtZW50ZSBkaXJpZ2lkYSBhIG9idGVuZXIgdW5hIHZlbnRhamEgY29tZXJjaWFsIG8gdW5hIGNvbXBlbnNhY2nDs24gbW9uZXRhcmlhIHByaXZhZGEuCgo1LiBSZXByZXNlbnRhY2lvbmVzLCBHYXJhbnTDrWFzIHkgTGltaXRhY2lvbmVzIGRlIFJlc3BvbnNhYmlsaWRhZC4KQSBNRU5PUyBRVUUgTEFTIFBBUlRFUyBMTyBBQ09SREFSQU4gREUgT1RSQSBGT1JNQSBQT1IgRVNDUklUTywgRUwgTElDRU5DSUFOVEUgT0ZSRUNFIExBIE9CUkEgKEVOIEVMIEVTVEFETyBFTiBFTCBRVUUgU0UgRU5DVUVOVFJBKSDigJxUQUwgQ1VBTOKAnSwgU0lOIEJSSU5EQVIgR0FSQU5Uw41BUyBERSBDTEFTRSBBTEdVTkEgUkVTUEVDVE8gREUgTEEgT0JSQSwgWUEgU0VBIEVYUFJFU0EsIElNUEzDjUNJVEEsIExFR0FMIE8gQ1VBTFFVSUVSQSBPVFJBLCBJTkNMVVlFTkRPLCBTSU4gTElNSVRBUlNFIEEgRUxMQVMsIEdBUkFOVMONQVMgREUgVElUVUxBUklEQUQsIENPTUVSQ0lBQklMSURBRCwgQURBUFRBQklMSURBRCBPIEFERUNVQUNJw5NOIEEgUFJPUMOTU0lUTyBERVRFUk1JTkFETywgQVVTRU5DSUEgREUgSU5GUkFDQ0nDk04sIERFIEFVU0VOQ0lBIERFIERFRkVDVE9TIExBVEVOVEVTIE8gREUgT1RSTyBUSVBPLCBPIExBIFBSRVNFTkNJQSBPIEFVU0VOQ0lBIERFIEVSUk9SRVMsIFNFQU4gTyBOTyBERVNDVUJSSUJMRVMgKFBVRURBTiBPIE5PIFNFUiBFU1RPUyBERVNDVUJJRVJUT1MpLiBBTEdVTkFTIEpVUklTRElDQ0lPTkVTIE5PIFBFUk1JVEVOIExBIEVYQ0xVU0nDk04gREUgR0FSQU5Uw41BUyBJTVBMw41DSVRBUywgRU4gQ1VZTyBDQVNPIEVTVEEgRVhDTFVTScOTTiBQVUVERSBOTyBBUExJQ0FSU0UgQSBVU1RFRC4KCjYuIExpbWl0YWNpw7NuIGRlIHJlc3BvbnNhYmlsaWRhZC4KQSBNRU5PUyBRVUUgTE8gRVhJSkEgRVhQUkVTQU1FTlRFIExBIExFWSBBUExJQ0FCTEUsIEVMIExJQ0VOQ0lBTlRFIE5PIFNFUsOBIFJFU1BPTlNBQkxFIEFOVEUgVVNURUQgUE9SIERBw5FPIEFMR1VOTywgU0VBIFBPUiBSRVNQT05TQUJJTElEQUQgRVhUUkFDT05UUkFDVFVBTCwgUFJFQ09OVFJBQ1RVQUwgTyBDT05UUkFDVFVBTCwgT0JKRVRJVkEgTyBTVUJKRVRJVkEsIFNFIFRSQVRFIERFIERBw5FPUyBNT1JBTEVTIE8gUEFUUklNT05JQUxFUywgRElSRUNUT1MgTyBJTkRJUkVDVE9TLCBQUkVWSVNUT1MgTyBJTVBSRVZJU1RPUyBQUk9EVUNJRE9TIFBPUiBFTCBVU08gREUgRVNUQSBMSUNFTkNJQSBPIERFIExBIE9CUkEsIEFVTiBDVUFORE8gRUwgTElDRU5DSUFOVEUgSEFZQSBTSURPIEFEVkVSVElETyBERSBMQSBQT1NJQklMSURBRCBERSBESUNIT1MgREHDkU9TLiBBTEdVTkFTIExFWUVTIE5PIFBFUk1JVEVOIExBIEVYQ0xVU0nDk04gREUgQ0lFUlRBIFJFU1BPTlNBQklMSURBRCwgRU4gQ1VZTyBDQVNPIEVTVEEgRVhDTFVTScOTTiBQVUVERSBOTyBBUExJQ0FSU0UgQSBVU1RFRC4KCjcuIFTDqXJtaW5vLgoKYS4JRXN0YSBMaWNlbmNpYSB5IGxvcyBkZXJlY2hvcyBvdG9yZ2Fkb3MgZW4gdmlydHVkIGRlIGVsbGEgdGVybWluYXLDoW4gYXV0b23DoXRpY2FtZW50ZSBzaSBVc3RlZCBpbmZyaW5nZSBhbGd1bmEgY29uZGljacOzbiBlc3RhYmxlY2lkYSBlbiBlbGxhLiBTaW4gZW1iYXJnbywgbG9zIGluZGl2aWR1b3MgbyBlbnRpZGFkZXMgcXVlIGhhbiByZWNpYmlkbyBPYnJhcyBEZXJpdmFkYXMgbyBDb2xlY3RpdmFzIGRlIFVzdGVkIGRlIGNvbmZvcm1pZGFkIGNvbiBlc3RhIExpY2VuY2lhLCBubyB2ZXLDoW4gdGVybWluYWRhcyBzdXMgbGljZW5jaWFzLCBzaWVtcHJlIHF1ZSBlc3RvcyBpbmRpdmlkdW9zIG8gZW50aWRhZGVzIHNpZ2FuIGN1bXBsaWVuZG8gw61udGVncmFtZW50ZSBsYXMgY29uZGljaW9uZXMgZGUgZXN0YXMgbGljZW5jaWFzLiBMYXMgU2VjY2lvbmVzIDEsIDIsIDUsIDYsIDcsIHkgOCBzdWJzaXN0aXLDoW4gYSBjdWFscXVpZXIgdGVybWluYWNpw7NuIGRlIGVzdGEgTGljZW5jaWEuCgpiLglTdWpldGEgYSBsYXMgY29uZGljaW9uZXMgeSB0w6lybWlub3MgYW50ZXJpb3JlcywgbGEgbGljZW5jaWEgb3RvcmdhZGEgYXF1w60gZXMgcGVycGV0dWEgKGR1cmFudGUgZWwgcGVyw61vZG8gZGUgdmlnZW5jaWEgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIGRlIGxhIG9icmEpLiBObyBvYnN0YW50ZSBsbyBhbnRlcmlvciwgZWwgTGljZW5jaWFudGUgc2UgcmVzZXJ2YSBlbCBkZXJlY2hvIGEgcHVibGljYXIgeS9vIGVzdHJlbmFyIGxhIE9icmEgYmFqbyBjb25kaWNpb25lcyBkZSBsaWNlbmNpYSBkaWZlcmVudGVzIG8gYSBkZWphciBkZSBkaXN0cmlidWlybGEgZW4gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIExpY2VuY2lhIGVuIGN1YWxxdWllciBtb21lbnRvOyBlbiBlbCBlbnRlbmRpZG8sIHNpbiBlbWJhcmdvLCBxdWUgZXNhIGVsZWNjacOzbiBubyBzZXJ2aXLDoSBwYXJhIHJldm9jYXIgZXN0YSBsaWNlbmNpYSBvIHF1ZSBkZWJhIHNlciBvdG9yZ2FkYSAsIGJham8gbG9zIHTDqXJtaW5vcyBkZSBlc3RhIGxpY2VuY2lhKSwgeSBlc3RhIGxpY2VuY2lhIGNvbnRpbnVhcsOhIGVuIHBsZW5vIHZpZ29yIHkgZWZlY3RvIGEgbWVub3MgcXVlIHNlYSB0ZXJtaW5hZGEgY29tbyBzZSBleHByZXNhIGF0csOhcy4gTGEgTGljZW5jaWEgcmV2b2NhZGEgY29udGludWFyw6Egc2llbmRvIHBsZW5hbWVudGUgdmlnZW50ZSB5IGVmZWN0aXZhIHNpIG5vIHNlIGxlIGRhIHTDqXJtaW5vIGVuIGxhcyBjb25kaWNpb25lcyBpbmRpY2FkYXMgYW50ZXJpb3JtZW50ZS4KCjguIFZhcmlvcy4KCmEuCUNhZGEgdmV6IHF1ZSBVc3RlZCBkaXN0cmlidXlhIG8gcG9uZ2EgYSBkaXNwb3NpY2nDs24gcMO6YmxpY2EgbGEgT2JyYSBvIHVuYSBPYnJhIENvbGVjdGl2YSwgZWwgTGljZW5jaWFudGUgb2ZyZWNlcsOhIGFsIGRlc3RpbmF0YXJpbyB1bmEgbGljZW5jaWEgZW4gbG9zIG1pc21vcyB0w6lybWlub3MgeSBjb25kaWNpb25lcyBxdWUgbGEgbGljZW5jaWEgb3RvcmdhZGEgYSBVc3RlZCBiYWpvIGVzdGEgTGljZW5jaWEuCgpiLglTaSBhbGd1bmEgZGlzcG9zaWNpw7NuIGRlIGVzdGEgTGljZW5jaWEgcmVzdWx0YSBpbnZhbGlkYWRhIG8gbm8gZXhpZ2libGUsIHNlZ8O6biBsYSBsZWdpc2xhY2nDs24gdmlnZW50ZSwgZXN0byBubyBhZmVjdGFyw6EgbmkgbGEgdmFsaWRleiBuaSBsYSBhcGxpY2FiaWxpZGFkIGRlbCByZXN0byBkZSBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhIHksIHNpbiBhY2Npw7NuIGFkaWNpb25hbCBwb3IgcGFydGUgZGUgbG9zIHN1amV0b3MgZGUgZXN0ZSBhY3VlcmRvLCBhcXXDqWxsYSBzZSBlbnRlbmRlcsOhIHJlZm9ybWFkYSBsbyBtw61uaW1vIG5lY2VzYXJpbyBwYXJhIGhhY2VyIHF1ZSBkaWNoYSBkaXNwb3NpY2nDs24gc2VhIHbDoWxpZGEgeSBleGlnaWJsZS4KCmMuCU5pbmfDum4gdMOpcm1pbm8gbyBkaXNwb3NpY2nDs24gZGUgZXN0YSBMaWNlbmNpYSBzZSBlc3RpbWFyw6EgcmVudW5jaWFkYSB5IG5pbmd1bmEgdmlvbGFjacOzbiBkZSBlbGxhIHNlcsOhIGNvbnNlbnRpZGEgYSBtZW5vcyBxdWUgZXNhIHJlbnVuY2lhIG8gY29uc2VudGltaWVudG8gc2VhIG90b3JnYWRvIHBvciBlc2NyaXRvIHkgZmlybWFkbyBwb3IgbGEgcGFydGUgcXVlIHJlbnVuY2llIG8gY29uc2llbnRhLgoKZC4JRXN0YSBMaWNlbmNpYSByZWZsZWphIGVsIGFjdWVyZG8gcGxlbm8gZW50cmUgbGFzIHBhcnRlcyByZXNwZWN0byBhIGxhIE9icmEgYXF1w60gbGljZW5jaWFkYS4gTm8gaGF5IGFycmVnbG9zLCBhY3VlcmRvcyBvIGRlY2xhcmFjaW9uZXMgcmVzcGVjdG8gYSBsYSBPYnJhIHF1ZSBubyBlc3TDqW4gZXNwZWNpZmljYWRvcyBlbiBlc3RlIGRvY3VtZW50by4gRWwgTGljZW5jaWFudGUgbm8gc2UgdmVyw6EgbGltaXRhZG8gcG9yIG5pbmd1bmEgZGlzcG9zaWNpw7NuIGFkaWNpb25hbCBxdWUgcHVlZGEgc3VyZ2lyIGVuIGFsZ3VuYSBjb211bmljYWNpw7NuIGVtYW5hZGEgZGUgVXN0ZWQuIEVzdGEgTGljZW5jaWEgbm8gcHVlZGUgc2VyIG1vZGlmaWNhZGEgc2luIGVsIGNvbnNlbnRpbWllbnRvIG11dHVvIHBvciBlc2NyaXRvIGRlbCBMaWNlbmNpYW50ZSB5IFVzdGVkLgo=0000-0002-2868-74446a82d5f227692f6b48fe9e75f7ce5e6b600