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...
- 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 |