Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates

Self-healing systems are advanced tools in modern system management, designed to detect and resolve issues automatically, ensuring continuous operation without manual intervention. Leveraging adaptive algorithms and real-time data analysis, these systems identify anomalies, apply corrective measures...

Full description

Autores:
Dussán Rueda, Luis Felipe
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2024
Institución:
Universidad de los Andes
Repositorio:
Séneca: repositorio Uniandes
Idioma:
eng
OAI Identifier:
oai:repositorio.uniandes.edu.co:1992/75259
Acceso en línea:
https://hdl.handle.net/1992/75259
Palabra clave:
SelfHealing
Systems
Predicates
Dynamic
Ingeniería
Rights
openAccess
License
Attribution-NonCommercial-NoDerivatives 4.0 International
id UNIANDES2_f2d09e605c98238dd65fe657a7043e83
oai_identifier_str oai:repositorio.uniandes.edu.co:1992/75259
network_acronym_str UNIANDES2
network_name_str Séneca: repositorio Uniandes
repository_id_str
dc.title.eng.fl_str_mv Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates
title Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates
spellingShingle Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates
SelfHealing
Systems
Predicates
Dynamic
Ingeniería
title_short Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates
title_full Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates
title_fullStr Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates
title_full_unstemmed Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates
title_sort Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates
dc.creator.fl_str_mv Dussán Rueda, Luis Felipe
dc.contributor.advisor.none.fl_str_mv Sanabria Ardila, Mateo
Cardozo Álvarez, Nicolás
dc.contributor.author.none.fl_str_mv Dussán Rueda, Luis Felipe
dc.subject.keyword.eng.fl_str_mv SelfHealing
Systems
Predicates
Dynamic
topic SelfHealing
Systems
Predicates
Dynamic
Ingeniería
dc.subject.themes.none.fl_str_mv Ingeniería
description Self-healing systems are advanced tools in modern system management, designed to detect and resolve issues automatically, ensuring continuous operation without manual intervention. Leveraging adaptive algorithms and real-time data analysis, these systems identify anomalies, apply corrective measures, and maintain optimal performance and resilience. They dynamically adapt to changing conditions, reducing downtime and enhancing reliability, making them essential for managing complex, dynamic environments where traditional static monitoring falls short. This thesis examines self-healing systems within the Transport System Implementation framework, emphasizing dynamic predicates and Reinforcement Learning to enhance adaptability and responsiveness. Through analysis and simulation, it highlights their benefits and potential applications across various domains.
publishDate 2024
dc.date.accessioned.none.fl_str_mv 2024-12-11T13:20:45Z
dc.date.available.none.fl_str_mv 2024-12-11T13:20:45Z
dc.date.issued.none.fl_str_mv 2024-12-10
dc.type.none.fl_str_mv Trabajo de grado - Pregrado
dc.type.driver.none.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.version.none.fl_str_mv info:eu-repo/semantics/acceptedVersion
dc.type.coar.none.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
dc.type.content.none.fl_str_mv Text
dc.type.redcol.none.fl_str_mv http://purl.org/redcol/resource_type/TP
format http://purl.org/coar/resource_type/c_7a1f
status_str acceptedVersion
dc.identifier.uri.none.fl_str_mv https://hdl.handle.net/1992/75259
dc.identifier.instname.none.fl_str_mv instname:Universidad de los Andes
dc.identifier.reponame.none.fl_str_mv reponame:Repositorio Institucional Séneca
dc.identifier.repourl.none.fl_str_mv repourl:https://repositorio.uniandes.edu.co/
url https://hdl.handle.net/1992/75259
identifier_str_mv instname:Universidad de los Andes
reponame:Repositorio Institucional Séneca
repourl:https://repositorio.uniandes.edu.co/
dc.language.iso.none.fl_str_mv eng
language eng
dc.relation.references.none.fl_str_mv M. Sanabria, Learning Recovery Strategies for Dynamic Self-healing in Reactive Systems, Journal/-Conference Name, Year.
N. Cardozo and I. Dusparic, Learning Run-time Compositions of Interacting Adaptations, 2020.
N. Cardozo and I. Dusparic, Next generation context-oriented programming: Embracing dynamic generation of adaptations, Journal of Object Technology, vol. 21, pp. 1–6, 2022.
N. Cardozo and I. Dusparic, Auto-COP: Adaptation generation in context-oriented programming using reinforcement learning options, Information and Software Technology, vol. 164, 2023.
N. Cardozo, I. Dusparic, and J. H. Castro, Peace corp: Learning to solve conflicts between contexts, Proc. of the 9th Intl. Workshop on Context-Oriented Programming, 2017, pp. 1–6.
C. Elliott and P. Hudak, Functional reactive animation, Intl. Conf. on Functional Programming, 1997.
R. Hirschfeld, P. Costanza, and O. Nierstrasz, Context-oriented programming, Jour. of Object technology, vol. 7, pp. 125–151, 2008.
R. S. Sutton and A. G. Barto, Reinforcement Learning: An Introduction, Bradford Book. The MIT Press, Cambridge, Massachusetts, 1998.
G. Salvaneschi, G. Hintz, and M. Mezini, Rescala: Bridging between object-oriented and functional style in reactive applications, Proc. of the 13th Intl. Conf. on Modularity, 2014, pp. 25–36.
G. Salvaneschi, C. Ghezzi, and M. Pradella, Contexterlang: A language for distributed contextaware self-adaptive applications, Science of Computer Programming, vol. 102, pp. 20–43, 2015.
M. Stolle and D. Precup, Learning options in reinforcement learning, En: Intl. Symp. on abstraction, reformulation, and approximation, Springer, 2002, pp. 212–223.
S. Girgin and F. Polat, Option discovery in reinforcement learning using frequent common subsequences of actions, En: Intl. Conf. on Computational Intelligence for Modelling, Control and Automation and Intl. Conf. on Intelligent Agents, Web Technologies and Internet Commerce (CIMCA-IAWTIC’06), IEEE, 2005, pp. 371–376.
R. S. Sutton, D. Precup, and S. P. Singh, Intraoption learning about temporally abstract actions, ICML, 1998, pp. 556–564.
J. Randlov, Learning macro-actions in reinforcement learning, En: Advances in Neural Information Processing Systems, vol. 11, 1998.
dc.rights.en.fl_str_mv Attribution-NonCommercial-NoDerivatives 4.0 International
dc.rights.uri.none.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
dc.rights.accessrights.none.fl_str_mv info:eu-repo/semantics/openAccess
dc.rights.coar.none.fl_str_mv http://purl.org/coar/access_right/c_abf2
rights_invalid_str_mv Attribution-NonCommercial-NoDerivatives 4.0 International
http://creativecommons.org/licenses/by-nc-nd/4.0/
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.none.fl_str_mv 9 páginas
dc.format.mimetype.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidad de los Andes
dc.publisher.program.none.fl_str_mv Ingeniería de Sistemas y Computación
dc.publisher.faculty.none.fl_str_mv Facultad de Ingeniería
dc.publisher.department.none.fl_str_mv Departamento de Ingeniería de Sistemas y Computación
publisher.none.fl_str_mv Universidad de los Andes
institution Universidad de los Andes
bitstream.url.fl_str_mv https://repositorio.uniandes.edu.co/bitstreams/ebccd431-03cd-420b-b7ab-a9ea4928e7a1/download
https://repositorio.uniandes.edu.co/bitstreams/c4daee0e-4dcc-466e-b56d-2e9f5082fac0/download
https://repositorio.uniandes.edu.co/bitstreams/9709210c-1f59-450b-9f98-37269401ea53/download
https://repositorio.uniandes.edu.co/bitstreams/6a985665-8abe-4997-804b-2f3baaf4f136/download
https://repositorio.uniandes.edu.co/bitstreams/442b8b81-2337-4ab0-a483-abd4699a6db9/download
https://repositorio.uniandes.edu.co/bitstreams/ea274c5e-1fc8-4b4d-879d-75a881349560/download
https://repositorio.uniandes.edu.co/bitstreams/702ee29a-e894-4f4e-948e-29085365c083/download
https://repositorio.uniandes.edu.co/bitstreams/be01ac29-6050-4eb1-adc7-738ede1ceef2/download
bitstream.checksum.fl_str_mv a06821979a0e3d47395cbf09708e49ed
3a21d65ae217c53369a6afdb3c8992b9
4460e5956bc1d1639be9ae6146a50347
ae9e573a68e7f92501b6913cc846c39f
eca735113c2f0cf7e364d806cc4d28f4
47206a54ef48f38b016f13218c814efc
316ee071ed0a99a15cf1fbb83a3b1f05
65a41c1bb456108c8d3caf34caa0dbe9
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio institucional Séneca
repository.mail.fl_str_mv adminrepositorio@uniandes.edu.co
_version_ 1828159256243732480
spelling Sanabria Ardila, MateoCardozo Álvarez, Nicolásvirtual::21821-1Dussán Rueda, Luis Felipe2024-12-11T13:20:45Z2024-12-11T13:20:45Z2024-12-10https://hdl.handle.net/1992/75259instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/Self-healing systems are advanced tools in modern system management, designed to detect and resolve issues automatically, ensuring continuous operation without manual intervention. Leveraging adaptive algorithms and real-time data analysis, these systems identify anomalies, apply corrective measures, and maintain optimal performance and resilience. They dynamically adapt to changing conditions, reducing downtime and enhancing reliability, making them essential for managing complex, dynamic environments where traditional static monitoring falls short. This thesis examines self-healing systems within the Transport System Implementation framework, emphasizing dynamic predicates and Reinforcement Learning to enhance adaptability and responsiveness. Through analysis and simulation, it highlights their benefits and potential applications across various domains.Pregrado9 páginasapplication/pdfengUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería de Sistemas y ComputaciónAttribution-NonCommercial-NoDerivatives 4.0 Internationalhttp://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Learning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicatesTrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/redcol/resource_type/TPSelfHealingSystemsPredicatesDynamicIngenieríaM. Sanabria, Learning Recovery Strategies for Dynamic Self-healing in Reactive Systems, Journal/-Conference Name, Year.N. Cardozo and I. Dusparic, Learning Run-time Compositions of Interacting Adaptations, 2020.N. Cardozo and I. Dusparic, Next generation context-oriented programming: Embracing dynamic generation of adaptations, Journal of Object Technology, vol. 21, pp. 1–6, 2022.N. Cardozo and I. Dusparic, Auto-COP: Adaptation generation in context-oriented programming using reinforcement learning options, Information and Software Technology, vol. 164, 2023.N. Cardozo, I. Dusparic, and J. H. Castro, Peace corp: Learning to solve conflicts between contexts, Proc. of the 9th Intl. Workshop on Context-Oriented Programming, 2017, pp. 1–6.C. Elliott and P. Hudak, Functional reactive animation, Intl. Conf. on Functional Programming, 1997.R. Hirschfeld, P. Costanza, and O. Nierstrasz, Context-oriented programming, Jour. of Object technology, vol. 7, pp. 125–151, 2008.R. S. Sutton and A. G. Barto, Reinforcement Learning: An Introduction, Bradford Book. The MIT Press, Cambridge, Massachusetts, 1998.G. Salvaneschi, G. Hintz, and M. Mezini, Rescala: Bridging between object-oriented and functional style in reactive applications, Proc. of the 13th Intl. Conf. on Modularity, 2014, pp. 25–36.G. Salvaneschi, C. Ghezzi, and M. Pradella, Contexterlang: A language for distributed contextaware self-adaptive applications, Science of Computer Programming, vol. 102, pp. 20–43, 2015.M. Stolle and D. Precup, Learning options in reinforcement learning, En: Intl. Symp. on abstraction, reformulation, and approximation, Springer, 2002, pp. 212–223.S. Girgin and F. Polat, Option discovery in reinforcement learning using frequent common subsequences of actions, En: Intl. Conf. on Computational Intelligence for Modelling, Control and Automation and Intl. Conf. on Intelligent Agents, Web Technologies and Internet Commerce (CIMCA-IAWTIC’06), IEEE, 2005, pp. 371–376.R. S. Sutton, D. Precup, and S. P. Singh, Intraoption learning about temporally abstract actions, ICML, 1998, pp. 556–564.J. Randlov, Learning macro-actions in reinforcement learning, En: Advances in Neural Information Processing Systems, vol. 11, 1998.201912308Publicationhttps://scholar.google.es/citations?user=3iTzjQsAAAAJvirtual::21821-10000-0002-1094-9952virtual::21821-1a77ff528-fc33-44d6-9022-814f81ef407avirtual::21821-1a77ff528-fc33-44d6-9022-814f81ef407avirtual::21821-1ORIGINALLearning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates.pdfLearning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates.pdfapplication/pdf664609https://repositorio.uniandes.edu.co/bitstreams/ebccd431-03cd-420b-b7ab-a9ea4928e7a1/downloada06821979a0e3d47395cbf09708e49edMD51autorizacion tesis.pdfautorizacion tesis.pdfHIDEapplication/pdf350342https://repositorio.uniandes.edu.co/bitstreams/c4daee0e-4dcc-466e-b56d-2e9f5082fac0/download3a21d65ae217c53369a6afdb3c8992b9MD52CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8805https://repositorio.uniandes.edu.co/bitstreams/9709210c-1f59-450b-9f98-37269401ea53/download4460e5956bc1d1639be9ae6146a50347MD53LICENSElicense.txtlicense.txttext/plain; charset=utf-82535https://repositorio.uniandes.edu.co/bitstreams/6a985665-8abe-4997-804b-2f3baaf4f136/downloadae9e573a68e7f92501b6913cc846c39fMD54TEXTLearning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates.pdf.txtLearning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates.pdf.txtExtracted texttext/plain42740https://repositorio.uniandes.edu.co/bitstreams/442b8b81-2337-4ab0-a483-abd4699a6db9/downloadeca735113c2f0cf7e364d806cc4d28f4MD55autorizacion tesis.pdf.txtautorizacion tesis.pdf.txtExtracted texttext/plain2083https://repositorio.uniandes.edu.co/bitstreams/ea274c5e-1fc8-4b4d-879d-75a881349560/download47206a54ef48f38b016f13218c814efcMD57THUMBNAILLearning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates.pdf.jpgLearning recovery strategies for dynamic self-healing in reactive systems: transport system implementation with dynamic predicates.pdf.jpgGenerated Thumbnailimage/jpeg14735https://repositorio.uniandes.edu.co/bitstreams/702ee29a-e894-4f4e-948e-29085365c083/download316ee071ed0a99a15cf1fbb83a3b1f05MD56autorizacion tesis.pdf.jpgautorizacion tesis.pdf.jpgGenerated Thumbnailimage/jpeg11237https://repositorio.uniandes.edu.co/bitstreams/be01ac29-6050-4eb1-adc7-738ede1ceef2/download65a41c1bb456108c8d3caf34caa0dbe9MD581992/75259oai:repositorio.uniandes.edu.co:1992/752592024-12-16 10:16:58.957http://creativecommons.org/licenses/by-nc-nd/4.0/Attribution-NonCommercial-NoDerivatives 4.0 Internationalopen.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coPGgzPjxzdHJvbmc+RGVzY2FyZ28gZGUgUmVzcG9uc2FiaWxpZGFkIC0gTGljZW5jaWEgZGUgQXV0b3JpemFjacOzbjwvc3Ryb25nPjwvaDM+CjxwPjxzdHJvbmc+UG9yIGZhdm9yIGxlZXIgYXRlbnRhbWVudGUgZXN0ZSBkb2N1bWVudG8gcXVlIHBlcm1pdGUgYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBTw6luZWNhIHJlcHJvZHVjaXIgeSBkaXN0cmlidWlyIGxvcyByZWN1cnNvcyBkZSBpbmZvcm1hY2nDs24gZGVwb3NpdGFkb3MgbWVkaWFudGUgbGEgYXV0b3JpemFjacOzbiBkZSBsb3Mgc2lndWllbnRlcyB0w6lybWlub3M6PC9zdHJvbmc+PC9wPgo8cD5Db25jZWRhIGxhIGxpY2VuY2lhIGRlIGRlcMOzc2l0byBlc3TDoW5kYXIgc2VsZWNjaW9uYW5kbyBsYSBvcGNpw7NuIDxzdHJvbmc+J0FjZXB0YXIgbG9zIHTDqXJtaW5vcyBhbnRlcmlvcm1lbnRlIGRlc2NyaXRvcyc8L3N0cm9uZz4geSBjb250aW51YXIgZWwgcHJvY2VzbyBkZSBlbnbDrW8gbWVkaWFudGUgZWwgYm90w7NuIDxzdHJvbmc+J1NpZ3VpZW50ZScuPC9zdHJvbmc+PC9wPgo8aHI+CjxwPllvLCBlbiBtaSBjYWxpZGFkIGRlIGF1dG9yIGRlbCB0cmFiYWpvIGRlIHRlc2lzLCBtb25vZ3JhZsOtYSBvIHRyYWJham8gZGUgZ3JhZG8sIGhhZ28gZW50cmVnYSBkZWwgZWplbXBsYXIgcmVzcGVjdGl2byB5IGRlIHN1cyBhbmV4b3MgZGUgc2VyIGVsIGNhc28sIGVuIGZvcm1hdG8gZGlnaXRhbCB5L28gZWxlY3Ryw7NuaWNvIHkgYXV0b3Jpem8gYSBsYSBVbml2ZXJzaWRhZCBkZSBsb3MgQW5kZXMgcGFyYSBxdWUgcmVhbGljZSBsYSBwdWJsaWNhY2nDs24gZW4gZWwgU2lzdGVtYSBkZSBCaWJsaW90ZWNhcyBvIGVuIGN1YWxxdWllciBvdHJvIHNpc3RlbWEgbyBiYXNlIGRlIGRhdG9zIHByb3BpbyBvIGFqZW5vIGEgbGEgVW5pdmVyc2lkYWQgeSBwYXJhIHF1ZSBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgTGV5IDQ0IGRlIDE5OTMsIERlY2lzacOzbiBBbmRpbmEgMzUxIGRlIDE5OTMsIERlY3JldG8gNDYwIGRlIDE5OTUgeSBkZW3DoXMgbm9ybWFzIGdlbmVyYWxlcyBzb2JyZSBsYSBtYXRlcmlhLCB1dGlsaWNlIGVuIHRvZGFzIHN1cyBmb3JtYXMsIGxvcyBkZXJlY2hvcyBwYXRyaW1vbmlhbGVzIGRlIHJlcHJvZHVjY2nDs24sIGNvbXVuaWNhY2nDs24gcMO6YmxpY2EsIHRyYW5zZm9ybWFjacOzbiB5IGRpc3RyaWJ1Y2nDs24gKGFscXVpbGVyLCBwcsOpc3RhbW8gcMO6YmxpY28gZSBpbXBvcnRhY2nDs24pIHF1ZSBtZSBjb3JyZXNwb25kZW4gY29tbyBjcmVhZG9yIGRlIGxhIG9icmEgb2JqZXRvIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8uPC9wPgo8cD5MYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGVtaXRlIGVuIGNhbGlkYWQgZGUgYXV0b3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50byB5IG5vIGNvcnJlc3BvbmRlIGEgY2VzacOzbiBkZSBkZXJlY2hvcywgc2lubyBhIGxhIGF1dG9yaXphY2nDs24gZGUgdXNvIGFjYWTDqW1pY28gZGUgY29uZm9ybWlkYWQgY29uIGxvIGFudGVyaW9ybWVudGUgc2XDsWFsYWRvLiBMYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgZXh0ZW5zaXZhIG5vIHNvbG8gYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIHVzbyBzb2JyZSBsYSBvYnJhIGVuIGZvcm1hdG8gbyBzb3BvcnRlIG1hdGVyaWFsLCBzaW5vIHRhbWJpw6luIHBhcmEgZm9ybWF0byBlbGVjdHLDs25pY28sIHkgZW4gZ2VuZXJhbCBwYXJhIGN1YWxxdWllciBmb3JtYXRvIGNvbm9jaWRvIG8gcG9yIGNvbm9jZXIuPC9wPgo8cD5FbCBhdXRvciwgbWFuaWZpZXN0YSBxdWUgbGEgb2JyYSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCB5IGxhIHJlYWxpesOzIHNpbiB2aW9sYXIgbyB1c3VycGFyIGRlcmVjaG9zIGRlIGF1dG9yIGRlIHRlcmNlcm9zLCBwb3IgbG8gdGFudG8sIGxhIG9icmEgZXMgZGUgc3UgZXhjbHVzaXZhIGF1dG9yw61hIHkgdGllbmUgbGEgdGl0dWxhcmlkYWQgc29icmUgbGEgbWlzbWEuPC9wPgo8cD5FbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLjwvcD4KPHA+U2kgdGllbmUgYWxndW5hIGR1ZGEgc29icmUgbGEgbGljZW5jaWEsIHBvciBmYXZvciwgY29udGFjdGUgY29uIGVsIDxhIGhyZWY9Im1haWx0bzpiaWJsaW90ZWNhQHVuaWFuZGVzLmVkdS5jbyIgdGFyZ2V0PSJfYmxhbmsiPkFkbWluaXN0cmFkb3IgZGVsIFNpc3RlbWEuPC9hPjwvcD4K