M-Learning: enfoque heurístico para recompensas diferidas en el aprendizaje por refuerzo
El diseño actual de los métodos de aprendizaje por refuerzo requiere grandes recursos computacionales. Algoritmos como Deep Q-Network (DQN) han obtenido resultados sobresalientes en el avance de este campo. Sin embargo, la necesidad de ajustar miles de parámetros y ejecutar millones de episodios de...
- Autores:
-
Mora Cortés, Marlon Sneider
Perdomo Charry , César Andrey
Perdomo Charry , Oscar Julián
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2025
- Institución:
- Universidad Distrital Francisco José de Caldas
- Repositorio:
- RIUD: repositorio U. Distrital
- Idioma:
- spa
- OAI Identifier:
- oai:repository.udistrital.edu.co:11349/93453
- Acceso en línea:
- http://hdl.handle.net/11349/93453
- Palabra clave:
- Aprendizaje por refuerzo
Dilema exploración-explotación
Q-Learning
Frozen lake
Enfoque heurístico
Ingeniería Electrónica -- Tesis y Disertaciones Académicas
Minería de datos
Aprendizaje por experiencia
Aprendizaje por descubrimiento
Reinforcement learning
Exploration-exploitation dilemma
Q-Learning
Frozen Lake
Heuristic approach
- Rights
- License
- Abierto (Texto Completo)
id |
UDISTRITA2_6cb51a204bb598d03f9c1dcdbc3e7a14 |
---|---|
oai_identifier_str |
oai:repository.udistrital.edu.co:11349/93453 |
network_acronym_str |
UDISTRITA2 |
network_name_str |
RIUD: repositorio U. Distrital |
repository_id_str |
|
dc.title.none.fl_str_mv |
M-Learning: enfoque heurístico para recompensas diferidas en el aprendizaje por refuerzo |
dc.title.titleenglish.none.fl_str_mv |
M-Learning: heuristic approach for delayed rewards in reinforcement learning |
title |
M-Learning: enfoque heurístico para recompensas diferidas en el aprendizaje por refuerzo |
spellingShingle |
M-Learning: enfoque heurístico para recompensas diferidas en el aprendizaje por refuerzo Aprendizaje por refuerzo Dilema exploración-explotación Q-Learning Frozen lake Enfoque heurístico Ingeniería Electrónica -- Tesis y Disertaciones Académicas Minería de datos Aprendizaje por experiencia Aprendizaje por descubrimiento Reinforcement learning Exploration-exploitation dilemma Q-Learning Frozen Lake Heuristic approach |
title_short |
M-Learning: enfoque heurístico para recompensas diferidas en el aprendizaje por refuerzo |
title_full |
M-Learning: enfoque heurístico para recompensas diferidas en el aprendizaje por refuerzo |
title_fullStr |
M-Learning: enfoque heurístico para recompensas diferidas en el aprendizaje por refuerzo |
title_full_unstemmed |
M-Learning: enfoque heurístico para recompensas diferidas en el aprendizaje por refuerzo |
title_sort |
M-Learning: enfoque heurístico para recompensas diferidas en el aprendizaje por refuerzo |
dc.creator.fl_str_mv |
Mora Cortés, Marlon Sneider Perdomo Charry , César Andrey Perdomo Charry , Oscar Julián |
dc.contributor.advisor.none.fl_str_mv |
Perdomo Charry, César Andrey |
dc.contributor.author.none.fl_str_mv |
Mora Cortés, Marlon Sneider Perdomo Charry , César Andrey Perdomo Charry , Oscar Julián |
dc.contributor.orcid.none.fl_str_mv |
Perdomo Charry, Cesar Andrey [0000-0001-7310-4618] |
dc.subject.none.fl_str_mv |
Aprendizaje por refuerzo Dilema exploración-explotación Q-Learning Frozen lake Enfoque heurístico |
topic |
Aprendizaje por refuerzo Dilema exploración-explotación Q-Learning Frozen lake Enfoque heurístico Ingeniería Electrónica -- Tesis y Disertaciones Académicas Minería de datos Aprendizaje por experiencia Aprendizaje por descubrimiento Reinforcement learning Exploration-exploitation dilemma Q-Learning Frozen Lake Heuristic approach |
dc.subject.lemb.none.fl_str_mv |
Ingeniería Electrónica -- Tesis y Disertaciones Académicas Minería de datos Aprendizaje por experiencia Aprendizaje por descubrimiento |
dc.subject.keyword.none.fl_str_mv |
Reinforcement learning Exploration-exploitation dilemma Q-Learning Frozen Lake Heuristic approach |
description |
El diseño actual de los métodos de aprendizaje por refuerzo requiere grandes recursos computacionales. Algoritmos como Deep Q-Network (DQN) han obtenido resultados sobresalientes en el avance de este campo. Sin embargo, la necesidad de ajustar miles de parámetros y ejecutar millones de episodios de entrenamiento sigue siendo un reto importante. Este documento propone un análisis comparativo entre el algoritmo Q-Learning, que sentó las bases del Deep Q-Learning, y nuestro método propuesto, denominado M-Learning. La comparación se lleva a cabo utilizando Procesos de Decisión de Markov con recompensa retardada como marco general del banco de pruebas. En primer lugar, este documento proporciona una descripción completa de los principales retos relacionados con la implementación de Q-Learning, especialmente en lo que respecta a sus múltiples parámetros. A continuación, se presentan los fundamentos de nuestra heurística propuesta, incluida su formulación, y se describe en detalle el algoritmo. La metodología utilizada para comparar ambos algoritmos consistió en entrenarlos en el entorno de Frozen Lake. Los resultados experimentales, junto con un análisis de las mejores soluciones, demuestran que nuestra propuesta requiere menos episodios y presenta una menor variabilidad en los resultados. En concreto, M-Learning entrena a los agentes un 30,7% más rápido en el entorno determinista y un 61,66% más rápido en el entorno estocástico. Además, consigue una mayor consistencia, reduciendo la desviación estándar de las puntuaciones en un 58,37% y un 49,75% en los entornos determinista y estocástico, respectivamente. |
publishDate |
2025 |
dc.date.accessioned.none.fl_str_mv |
2025-03-10T20:43:32Z |
dc.date.available.none.fl_str_mv |
2025-03-10T20:43:32Z |
dc.date.created.none.fl_str_mv |
2025-02-21 |
dc.type.none.fl_str_mv |
bachelorThesis |
dc.type.degree.none.fl_str_mv |
Producción Académica |
dc.type.driver.none.fl_str_mv |
info:eu-repo/semantics/bachelorThesis |
dc.type.coar.none.fl_str_mv |
http://purl.org/coar/resource_type/c_7a1f |
format |
http://purl.org/coar/resource_type/c_7a1f |
dc.identifier.uri.none.fl_str_mv |
http://hdl.handle.net/11349/93453 |
url |
http://hdl.handle.net/11349/93453 |
dc.language.iso.none.fl_str_mv |
spa |
language |
spa |
dc.relation.references.none.fl_str_mv |
B. Cottier, R. Rahman, L. Fattorini, N. Maslej, and D. Owen, “The rising costs of training frontier ai models,” 2024. V. Mnih, K. Kavukcuoglu, D. Silver, A. Graves, I. Antonoglou, D. Wier- stra, and M. Riedmiller, “Playing atari with deep reinforcement learning,” 2013. V. Mnih, K. Kavukcuoglu, D. Silver, A. A. Rusu, J. Veness, M. G. Bellemare, A. Graves, M. Riedmiller, A. K. Fidjeland, G. Ostrovski, S. Petersen, C. Beattie, A. Sadik, I. Antonoglou, H. King, D. Kumaran, D. Wierstra, S. Legg, and D. Hassabis, “Human-level control through deep reinforcement learning,” Nature, vol. 518, pp. 529–533, Feb 2015. A. K. Sadhu and A. Konar, “Improving the speed of convergence of multi- agent q-learning for cooperative task-planning by a robot-team,” Robotics and Autonomous Systems, vol. 92, pp. 66–80, 2017 L. Canese, G. C. Cardarilli, M. M. Dehghan Pir, L. Di Nunzio, and S. Span`o, “Design and development of multi-agent reinforcement learn- ing intelligence on the robotarium platform for embedded system appli- cations,” Electronics, vol. 13, no. 10, 2024. J. Torres, Introducci´on al aprendizaje por refuerzo profundo: Teor´ıa y pr´actica en Python. Direct Publishing, Independently Published, 2021. M. Lapan, Deep Reinforcement Learning Hands-On. Birmingham, UK: Packt Publishing, 2018. N. Balaji, S. Kiefer, P. Novotn´y, G. A. P´erez, and M. Shirmohammadi, “On the complexity of value iteration,” 2019. R. S. Sutton and A. G. Barto, Reinforcement Learning: An Introduction. The MIT Press, second ed., 2018. B. Jang, M. Kim, G. Harerimana, and J. W. Kim, “Q-learning algorithms: A comprehensive classification and applications,” IEEE Access, vol. 7, pp. 133653–133667, 2019. S. Liu, X. Hu, and K. Dong, “Adaptive double fuzzy systems based q- learning for pursuit-evasion game,” IFAC-PapersOnLine, vol. 55, no. 3, pp. 251–256, 2022. 16th IFAC Symposium on Large Scale Complex Sys- tems: Theory and Applications LSS 2022 A. G. d. Silva Junior, D. H. d. Santos, A. P. F. d. Negreiros, J. M. V. B. d. S. Silva, and L. M. G. Gonc¸alves, “High-level path planning for an autonomous sailboat robot using q-learning,” Sensors, vol. 20, no. 6, 2020. M. E. C¸ imen, Z. Garip, Y. Yalc¸ın, M. Kutlu, and A. F. Boz, “Self adaptive methods for learning rate parameter of q-learning algorithm,” Journal of Intelligent Systems: Theory and Applications, vol. 6, no. 2, p. 191–198, 2023. L. Zhang, L. Tang, S. Zhang, Z. Wang, X. Shen, and Z. Zhang, “A self-adaptive reinforcement-exploration q-learning algorithm,” Symmetry, vol. 13, no. 6, 2021. J. Huang, Z. Zhang, and X. Ruan, “An improved dyna-q algorithm in- spired by the forward prediction mechanism in the rat brain for mobile robot path planning,” Biomimetics, vol. 9, no. 6, 2024. S. Xu, Y. Gu, X. Li, C. Chen, Y. Hu, Y. Sang, and W. Jiang, “Indoor emer- gency path planning based on the q-learning optimization algorithm,” IS- PRS International Journal of Geo-Information, vol. 11, no. 1, 2022. A. dos Santos Mignon and R. L. de Azevedo da Rocha, “An adaptive im- plementation of ϵ-greedy in reinforcement learning,” Procedia Computer cience, vol. 109, pp. 1146–1151, 2017. 8th International Conference on Ambient Systems, Networks and Technologies, ANT-2017 and the 7th International Conference on Sustainable Energy Information Technology, SEIT 2017, 16-19 May 2017, Madeira, Portugal. M. Zhang, W. Cai, and L. Pang, “Predator-prey reward based q- learning coverage path planning for mobile robot,” IEEE Access, vol. 11, pp. 29673–29683, 2023. W. Jin, R. Gu, and Y. Ji, “Reward function learning for q-learning-based geographic routing protocol,” IEEE Communications Letters, vol. 23, no. 7, pp. 1236–1239, 2019. X. Ou, Q. Chang, and N. Chakraborty, “Simulation study on reward func- tion of reinforcement learning in gantry work cell scheduling,” Journal of Manufacturing Systems, vol. 50, pp. 1–8, 2019. Y. Li, H. Wang, J. Fan, and Y. Geng, “A novel q-learning algorithm based on improved whale optimization algorithm for path planning,” PLOS ONE, vol. 17, no. 12, p. e0279438, 2022. S. Mirjalili and A. Lewis, “The whale optimization algorithm,” Advances in Engineering Software, vol. 95, pp. 51–67, 2016. H. Sowerby, Z.-H. Zhou, and M. L. Littman, “Designing rewards for fast learning,” ArXiv, vol. abs/2205.15400, 2022. G. Brockman, V. Cheung, L. Pettersson, J. Schneider, J. Schulman, J. Tang, and W. Zaremba, “Openai gym,” 2016. |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_16ec |
dc.rights.acceso.none.fl_str_mv |
Abierto (Texto Completo) |
rights_invalid_str_mv |
Abierto (Texto Completo) http://purl.org/coar/access_right/c_16ec |
dc.format.mimetype.none.fl_str_mv |
pdf |
dc.publisher.none.fl_str_mv |
Universidad Distrital Francisco José de Caldas |
publisher.none.fl_str_mv |
Universidad Distrital Francisco José de Caldas |
institution |
Universidad Distrital Francisco José de Caldas |
bitstream.url.fl_str_mv |
https://repository.udistrital.edu.co/bitstreams/62064349-e106-446e-8f0a-3292413f8438/download https://repository.udistrital.edu.co/bitstreams/90c7973b-3d3f-47de-bae9-bc045c9e8837/download https://repository.udistrital.edu.co/bitstreams/85403b9c-032b-4480-9d52-fc1733a392e4/download https://repository.udistrital.edu.co/bitstreams/84eb4692-502c-4f39-b065-d16c4f699e8c/download https://repository.udistrital.edu.co/bitstreams/8a6bbfe4-41bb-4cb1-9954-04dbe82da169/download |
bitstream.checksum.fl_str_mv |
997daf6c648c962d566d7b082dac908d a585e8ec9b57826bb9930860f0cacaa5 fe4b5a7862ca4628c7a432ed2ddc159a 5f8a9a10f9cde9610aa270d4a7c15bad 9eceef191c42dab543ae0f7e9cd43606 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Universidad Distrital |
repository.mail.fl_str_mv |
repositorio@udistrital.edu.co |
_version_ |
1828165315099361280 |
spelling |
Perdomo Charry, César AndreyMora Cortés, Marlon SneiderPerdomo Charry , César AndreyPerdomo Charry , Oscar JuliánPerdomo Charry, Cesar Andrey [0000-0001-7310-4618]2025-03-10T20:43:32Z2025-03-10T20:43:32Z2025-02-21http://hdl.handle.net/11349/93453El diseño actual de los métodos de aprendizaje por refuerzo requiere grandes recursos computacionales. Algoritmos como Deep Q-Network (DQN) han obtenido resultados sobresalientes en el avance de este campo. Sin embargo, la necesidad de ajustar miles de parámetros y ejecutar millones de episodios de entrenamiento sigue siendo un reto importante. Este documento propone un análisis comparativo entre el algoritmo Q-Learning, que sentó las bases del Deep Q-Learning, y nuestro método propuesto, denominado M-Learning. La comparación se lleva a cabo utilizando Procesos de Decisión de Markov con recompensa retardada como marco general del banco de pruebas. En primer lugar, este documento proporciona una descripción completa de los principales retos relacionados con la implementación de Q-Learning, especialmente en lo que respecta a sus múltiples parámetros. A continuación, se presentan los fundamentos de nuestra heurística propuesta, incluida su formulación, y se describe en detalle el algoritmo. La metodología utilizada para comparar ambos algoritmos consistió en entrenarlos en el entorno de Frozen Lake. Los resultados experimentales, junto con un análisis de las mejores soluciones, demuestran que nuestra propuesta requiere menos episodios y presenta una menor variabilidad en los resultados. En concreto, M-Learning entrena a los agentes un 30,7% más rápido en el entorno determinista y un 61,66% más rápido en el entorno estocástico. Además, consigue una mayor consistencia, reduciendo la desviación estándar de las puntuaciones en un 58,37% y un 49,75% en los entornos determinista y estocástico, respectivamente.The current design of reinforcement learning methods requires extensive computational resources. Algorithms such as Deep Q-Network (DQN) have obtained outstanding results in advancing the field. However, the need to tune thousands of parameters and run millions of training episodes remains a significant challenge. This document proposes a comparative analysis between the Q-Learning algorithm, which laid the foundations for Deep Q-Learning, and our proposed method, termed M-Learning. The comparison is conducted using Markov Decision Processes with delayed reward as a general test bench framework. Firstly, this document provides a full description of the main challenges related to implementing Q-Learning, particularly concerning its multiple parameters. Then, the foundations of our proposed heuristic are presented, including its formulation, and the algorithm is described in detail. The methodology used to compare both algorithms involved training them in the Frozen Lake environment. The experimental results, along with an analysis of the best solutions, demonstrate that our proposal requires fewer episodes and exhibits reduced variability in the outcomes. Specifically, M-Learning trains agents 30.7% faster in the deterministic environment and 61.66% faster in the stochastic environment. Additionally, it achieves greater consistency, reducing the standard deviation of scores by 58.37% and 49.75% in the deterministic and stochastic settings, respectively.pdfspaUniversidad Distrital Francisco José de CaldasAprendizaje por refuerzoDilema exploración-explotaciónQ-LearningFrozen lakeEnfoque heurísticoIngeniería Electrónica -- Tesis y Disertaciones AcadémicasMinería de datosAprendizaje por experienciaAprendizaje por descubrimientoReinforcement learningExploration-exploitation dilemmaQ-LearningFrozen LakeHeuristic approachM-Learning: enfoque heurístico para recompensas diferidas en el aprendizaje por refuerzoM-Learning: heuristic approach for delayed rewards in reinforcement learningbachelorThesisProducción Académicainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fAbierto (Texto Completo)http://purl.org/coar/access_right/c_16ecB. Cottier, R. Rahman, L. Fattorini, N. Maslej, and D. Owen, “The rising costs of training frontier ai models,” 2024.V. Mnih, K. Kavukcuoglu, D. Silver, A. Graves, I. Antonoglou, D. Wier- stra, and M. Riedmiller, “Playing atari with deep reinforcement learning,” 2013.V. Mnih, K. Kavukcuoglu, D. Silver, A. A. Rusu, J. Veness, M. G. Bellemare, A. Graves, M. Riedmiller, A. K. Fidjeland, G. Ostrovski, S. Petersen, C. Beattie, A. Sadik, I. Antonoglou, H. King, D. Kumaran, D. Wierstra, S. Legg, and D. Hassabis, “Human-level control through deep reinforcement learning,” Nature, vol. 518, pp. 529–533, Feb 2015.A. K. Sadhu and A. Konar, “Improving the speed of convergence of multi- agent q-learning for cooperative task-planning by a robot-team,” Robotics and Autonomous Systems, vol. 92, pp. 66–80, 2017L. Canese, G. C. Cardarilli, M. M. Dehghan Pir, L. Di Nunzio, and S. Span`o, “Design and development of multi-agent reinforcement learn- ing intelligence on the robotarium platform for embedded system appli- cations,” Electronics, vol. 13, no. 10, 2024.J. Torres, Introducci´on al aprendizaje por refuerzo profundo: Teor´ıa y pr´actica en Python. Direct Publishing, Independently Published, 2021.M. Lapan, Deep Reinforcement Learning Hands-On. Birmingham, UK: Packt Publishing, 2018.N. Balaji, S. Kiefer, P. Novotn´y, G. A. P´erez, and M. Shirmohammadi, “On the complexity of value iteration,” 2019.R. S. Sutton and A. G. Barto, Reinforcement Learning: An Introduction. The MIT Press, second ed., 2018.B. Jang, M. Kim, G. Harerimana, and J. W. Kim, “Q-learning algorithms: A comprehensive classification and applications,” IEEE Access, vol. 7, pp. 133653–133667, 2019.S. Liu, X. Hu, and K. Dong, “Adaptive double fuzzy systems based q- learning for pursuit-evasion game,” IFAC-PapersOnLine, vol. 55, no. 3, pp. 251–256, 2022. 16th IFAC Symposium on Large Scale Complex Sys- tems: Theory and Applications LSS 2022A. G. d. Silva Junior, D. H. d. Santos, A. P. F. d. Negreiros, J. M. V. B. d. S. Silva, and L. M. G. Gonc¸alves, “High-level path planning for an autonomous sailboat robot using q-learning,” Sensors, vol. 20, no. 6, 2020.M. E. C¸ imen, Z. Garip, Y. Yalc¸ın, M. Kutlu, and A. F. Boz, “Self adaptive methods for learning rate parameter of q-learning algorithm,” Journal of Intelligent Systems: Theory and Applications, vol. 6, no. 2, p. 191–198, 2023.L. Zhang, L. Tang, S. Zhang, Z. Wang, X. Shen, and Z. Zhang, “A self-adaptive reinforcement-exploration q-learning algorithm,” Symmetry, vol. 13, no. 6, 2021.J. Huang, Z. Zhang, and X. Ruan, “An improved dyna-q algorithm in- spired by the forward prediction mechanism in the rat brain for mobile robot path planning,” Biomimetics, vol. 9, no. 6, 2024.S. Xu, Y. Gu, X. Li, C. Chen, Y. Hu, Y. Sang, and W. Jiang, “Indoor emer- gency path planning based on the q-learning optimization algorithm,” IS- PRS International Journal of Geo-Information, vol. 11, no. 1, 2022.A. dos Santos Mignon and R. L. de Azevedo da Rocha, “An adaptive im- plementation of ϵ-greedy in reinforcement learning,” Procedia Computer cience, vol. 109, pp. 1146–1151, 2017. 8th International Conference on Ambient Systems, Networks and Technologies, ANT-2017 and the 7th International Conference on Sustainable Energy Information Technology, SEIT 2017, 16-19 May 2017, Madeira, Portugal.M. Zhang, W. Cai, and L. Pang, “Predator-prey reward based q- learning coverage path planning for mobile robot,” IEEE Access, vol. 11, pp. 29673–29683, 2023.W. Jin, R. Gu, and Y. Ji, “Reward function learning for q-learning-based geographic routing protocol,” IEEE Communications Letters, vol. 23, no. 7, pp. 1236–1239, 2019.X. Ou, Q. Chang, and N. Chakraborty, “Simulation study on reward func- tion of reinforcement learning in gantry work cell scheduling,” Journal of Manufacturing Systems, vol. 50, pp. 1–8, 2019.Y. Li, H. Wang, J. Fan, and Y. Geng, “A novel q-learning algorithm based on improved whale optimization algorithm for path planning,” PLOS ONE, vol. 17, no. 12, p. e0279438, 2022.S. Mirjalili and A. Lewis, “The whale optimization algorithm,” Advances in Engineering Software, vol. 95, pp. 51–67, 2016.H. Sowerby, Z.-H. Zhou, and M. L. Littman, “Designing rewards for fast learning,” ArXiv, vol. abs/2205.15400, 2022.G. Brockman, V. Cheung, L. Pettersson, J. Schneider, J. Schulman, J. Tang, and W. Zaremba, “Openai gym,” 2016.LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/62064349-e106-446e-8f0a-3292413f8438/download997daf6c648c962d566d7b082dac908dMD52ORIGINALMoraCortesMarlonSneider2025.pdfMoraCortesMarlonSneider2025.pdfTrabajo de gradoapplication/pdf4163006https://repository.udistrital.edu.co/bitstreams/90c7973b-3d3f-47de-bae9-bc045c9e8837/downloada585e8ec9b57826bb9930860f0cacaa5MD53Licencia de uso y publicacion.pdfLicencia de uso y publicacion.pdfLicencia de uso y publicaciónapplication/pdf2013968https://repository.udistrital.edu.co/bitstreams/85403b9c-032b-4480-9d52-fc1733a392e4/downloadfe4b5a7862ca4628c7a432ed2ddc159aMD54THUMBNAILMoraCortesMarlonSneider2025.pdf.jpgMoraCortesMarlonSneider2025.pdf.jpgIM Thumbnailimage/jpeg11416https://repository.udistrital.edu.co/bitstreams/84eb4692-502c-4f39-b065-d16c4f699e8c/download5f8a9a10f9cde9610aa270d4a7c15badMD55Licencia de uso y publicacion.pdf.jpgLicencia de uso y publicacion.pdf.jpgIM Thumbnailimage/jpeg13099https://repository.udistrital.edu.co/bitstreams/8a6bbfe4-41bb-4cb1-9954-04dbe82da169/download9eceef191c42dab543ae0f7e9cd43606MD5611349/93453oai:repository.udistrital.edu.co:11349/934532025-03-14 12:41:52.24open.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK |