Towards a choreography-based approach for service integration in smart cities
Integrating heterogeneous services in smart cities demands scalable, secure, agile, and flexible solutions that can adapt to complex, dynamic environments. Current approaches primarily use orchestration, which relies on a central controller, leading to limitations such as increased bottlenecks, redu...
- Autores:
-
Zuliani Escalante, Marco
- 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/75427
- Acceso en línea:
- https://hdl.handle.net/1992/75427
- Palabra clave:
- Service integration
Choreography
Smart cities
Ingeniería
- Rights
- openAccess
- License
- https://repositorio.uniandes.edu.co/static/pdf/aceptacion_uso_es.pdf
id |
UNIANDES2_777fd85815d44440227af894529eb544 |
---|---|
oai_identifier_str |
oai:repositorio.uniandes.edu.co:1992/75427 |
network_acronym_str |
UNIANDES2 |
network_name_str |
Séneca: repositorio Uniandes |
repository_id_str |
|
dc.title.eng.fl_str_mv |
Towards a choreography-based approach for service integration in smart cities |
title |
Towards a choreography-based approach for service integration in smart cities |
spellingShingle |
Towards a choreography-based approach for service integration in smart cities Service integration Choreography Smart cities Ingeniería |
title_short |
Towards a choreography-based approach for service integration in smart cities |
title_full |
Towards a choreography-based approach for service integration in smart cities |
title_fullStr |
Towards a choreography-based approach for service integration in smart cities |
title_full_unstemmed |
Towards a choreography-based approach for service integration in smart cities |
title_sort |
Towards a choreography-based approach for service integration in smart cities |
dc.creator.fl_str_mv |
Zuliani Escalante, Marco |
dc.contributor.advisor.none.fl_str_mv |
Bocanegra Garcia, Jose Joaquin |
dc.contributor.author.none.fl_str_mv |
Zuliani Escalante, Marco |
dc.subject.keyword.eng.fl_str_mv |
Service integration Choreography Smart cities |
topic |
Service integration Choreography Smart cities Ingeniería |
dc.subject.themes.spa.fl_str_mv |
Ingeniería |
description |
Integrating heterogeneous services in smart cities demands scalable, secure, agile, and flexible solutions that can adapt to complex, dynamic environments. Current approaches primarily use orchestration, which relies on a central controller, leading to limitations such as increased bottlenecks, reduced adaptability, and greater data vulnerability. This project proposes a choreography-based approach to address these limitations by enabling decentralized service communication through events and messages. To implement this solution, a systematic selection process identified the most suitable tool for choreography, beginning with broad criteria that narrowed down to three tools and concluding with a metrics-based evaluation of performance and technical suitability. This comparative analysis resulted in the selection of the tool best suited for choreography in smart city use cases. The findings suggest that choreography enhances scalability, reduces bottlenecks, and allows each service to manage its own data autonomously, ensuring control and minimizing sensitive data leaks. Overall, this research contributes to identifying the most effective tool for implementing choreography-based service integration in smart cities. |
publishDate |
2024 |
dc.date.issued.none.fl_str_mv |
2024-12-11 |
dc.date.accessioned.none.fl_str_mv |
2025-01-15T15:15:22Z |
dc.date.available.none.fl_str_mv |
2025-01-15T15:15:22Z |
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/75427 |
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/75427 |
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 |
Schuch, R., Frantz, R. Z., Bocanegra, J., Roos-Frantz, F., Sawicki, S., & Molina-Jiménez, C. (2024). Digital services integration in smart cities: A trusted execution environment-based solution. In Proceedings of the 27th Ibero-American Congress on Software Engineering (CIBSE 2024) (pp. 437-438). Porto Alegre: Sociedade Brasileira de Computação. https://doi.org/10.5753/cibse.2024.28534 Peltz, C. (2023). Web services orchestration and choreography. Computer, 36(10), 46–52. https://doi.org/10.1109/MC.2003.1236471 Brogi, A., Canal, C., & Pimentel, E. (2004). Formalizing web service choreographies. Electronic Notes in Theoretical Computer Science. https://doi.org/10.1016/j.entcs.2004.05.007 Valderas, P., Torres Bosch, M. V., & Pelechano Ferragud, V. (2020). A microservice composition approach based on the choreography of BPMN fragments. Information and Software Technology, 127, 1-17. https://doi.org/10.1016/j.infsof.2020.106370 Savara Project. (2014). Savara – Architecture: From art to engineering. https://www.jboss.org/savara Cloud Native Computing Foundation. (2023). Cloud Native Landscape. https://landscape.cncf.io/ Apache Kafka Project. (2024). Apache Kafka. https://kafka.apache.org/ Apache Pulsar Project. (2024). Apache Pulsar. https://pulsar.apache.org/ RabbitMQ. (2024). RabbitMQ. https://www.rabbitmq.com/ Guo, F., Zhang, Y., & Yu, G. (2020). A fair comparison of message queuing systems. IEEE Access, 8, 3046503. https://doi.org/10.1109/ACCESS.2020.3046503 Schumeth, J. (2024). Evaluation of message brokers for interprocess communication in a microservice architecture (Masters thesis). University of Applied Sciences FH Campus Wien. Normelli, G. (2024). Benchmarking message brokers on Kubernetes: A case study in how to evaluate inter-service communication technology (Masters thesis). KTH, School of Electrical Engineering and Computer Science (EECS). Andström, V. (2024). A comparative analysis of Apache Kafka and Apache Pulsar (Master’s thesis). University of Helsinki, Faculty of Science. Chy, M. S. H., et al. (2023). Comparative evaluation of Java Virtual Machine-based message queue services: A study on Kafka, Artemis, Pulsar, and RocketMQ. Electronics, 12(23). https://doi.org/10.3390/electronics12234792 Japink, P. (2022). Redis, Apache Kafka, RabbitMQ: Effect of choosing event-streaming middleware upon architectural constraints defined by non-functional requirements in event-driven microservice architectures. Enschede, The Netherlands. |
dc.rights.uri.none.fl_str_mv |
https://repositorio.uniandes.edu.co/static/pdf/aceptacion_uso_es.pdf |
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 |
https://repositorio.uniandes.edu.co/static/pdf/aceptacion_uso_es.pdf http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.none.fl_str_mv |
23 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/9cadbf21-c8c1-4d89-be37-79f2d51e0fb1/download https://repositorio.uniandes.edu.co/bitstreams/fc9d4491-03ad-4304-970c-945b11cf199f/download https://repositorio.uniandes.edu.co/bitstreams/c7afe6b5-08c5-4531-8f12-cb6b624f8261/download https://repositorio.uniandes.edu.co/bitstreams/2a41ab81-ffa8-4057-840f-17bf702fc5cd/download https://repositorio.uniandes.edu.co/bitstreams/649a79e3-0ce9-4349-b3f9-1bec94c3c1f9/download https://repositorio.uniandes.edu.co/bitstreams/a0eaf811-0794-422c-bbc6-b5790217c42e/download https://repositorio.uniandes.edu.co/bitstreams/3c72c491-8bd8-42eb-8b0d-8f09bc7b03fa/download |
bitstream.checksum.fl_str_mv |
18e9cb9c38f366cdead955650b0af8d9 450ce7d249a7dd969ab60e4aa0d34b3d ae9e573a68e7f92501b6913cc846c39f b123805438bede15248dcc8e67ab40f3 c9d5b145b57590aa54425e31974d722e 48c8f638a98e5db1875eebd74582ca62 47f71dfa6bbe8a26d5f4ec983844f6e3 |
bitstream.checksumAlgorithm.fl_str_mv |
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_ |
1831927723579146240 |
spelling |
Bocanegra Garcia, Jose Joaquinvirtual::22104-1Zuliani Escalante, Marco2025-01-15T15:15:22Z2025-01-15T15:15:22Z2024-12-11https://hdl.handle.net/1992/75427instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/Integrating heterogeneous services in smart cities demands scalable, secure, agile, and flexible solutions that can adapt to complex, dynamic environments. Current approaches primarily use orchestration, which relies on a central controller, leading to limitations such as increased bottlenecks, reduced adaptability, and greater data vulnerability. This project proposes a choreography-based approach to address these limitations by enabling decentralized service communication through events and messages. To implement this solution, a systematic selection process identified the most suitable tool for choreography, beginning with broad criteria that narrowed down to three tools and concluding with a metrics-based evaluation of performance and technical suitability. This comparative analysis resulted in the selection of the tool best suited for choreography in smart city use cases. The findings suggest that choreography enhances scalability, reduces bottlenecks, and allows each service to manage its own data autonomously, ensuring control and minimizing sensitive data leaks. Overall, this research contributes to identifying the most effective tool for implementing choreography-based service integration in smart cities.Pregrado23 páginasapplication/pdfengUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería de Sistemas y Computaciónhttps://repositorio.uniandes.edu.co/static/pdf/aceptacion_uso_es.pdfinfo:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Towards a choreography-based approach for service integration in smart citiesTrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/redcol/resource_type/TPService integrationChoreographySmart citiesIngenieríaSchuch, R., Frantz, R. Z., Bocanegra, J., Roos-Frantz, F., Sawicki, S., & Molina-Jiménez, C. (2024). Digital services integration in smart cities: A trusted execution environment-based solution. In Proceedings of the 27th Ibero-American Congress on Software Engineering (CIBSE 2024) (pp. 437-438). Porto Alegre: Sociedade Brasileira de Computação. https://doi.org/10.5753/cibse.2024.28534Peltz, C. (2023). Web services orchestration and choreography. Computer, 36(10), 46–52. https://doi.org/10.1109/MC.2003.1236471Brogi, A., Canal, C., & Pimentel, E. (2004). Formalizing web service choreographies. Electronic Notes in Theoretical Computer Science. https://doi.org/10.1016/j.entcs.2004.05.007Valderas, P., Torres Bosch, M. V., & Pelechano Ferragud, V. (2020). A microservice composition approach based on the choreography of BPMN fragments. Information and Software Technology, 127, 1-17. https://doi.org/10.1016/j.infsof.2020.106370Savara Project. (2014). Savara – Architecture: From art to engineering. https://www.jboss.org/savaraCloud Native Computing Foundation. (2023). Cloud Native Landscape. https://landscape.cncf.io/Apache Kafka Project. (2024). Apache Kafka. https://kafka.apache.org/Apache Pulsar Project. (2024). Apache Pulsar. https://pulsar.apache.org/RabbitMQ. (2024). RabbitMQ. https://www.rabbitmq.com/Guo, F., Zhang, Y., & Yu, G. (2020). A fair comparison of message queuing systems. IEEE Access, 8, 3046503. https://doi.org/10.1109/ACCESS.2020.3046503Schumeth, J. (2024). Evaluation of message brokers for interprocess communication in a microservice architecture (Masters thesis). University of Applied Sciences FH Campus Wien.Normelli, G. (2024). Benchmarking message brokers on Kubernetes: A case study in how to evaluate inter-service communication technology (Masters thesis). KTH, School of Electrical Engineering and Computer Science (EECS).Andström, V. (2024). A comparative analysis of Apache Kafka and Apache Pulsar (Master’s thesis). University of Helsinki, Faculty of Science.Chy, M. S. H., et al. (2023). Comparative evaluation of Java Virtual Machine-based message queue services: A study on Kafka, Artemis, Pulsar, and RocketMQ. Electronics, 12(23). https://doi.org/10.3390/electronics12234792Japink, P. (2022). Redis, Apache Kafka, RabbitMQ: Effect of choosing event-streaming middleware upon architectural constraints defined by non-functional requirements in event-driven microservice architectures. Enschede, The Netherlands.202022412Publication0000-0002-8342-7346virtual::22104-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000425192virtual::22104-185f75f85-ca3a-4d29-bd1c-312b6813e2a8virtual::22104-185f75f85-ca3a-4d29-bd1c-312b6813e2a8virtual::22104-1ORIGINALTowards a Choreography-Based Approach for Service Integration in Smart Cities.pdfTowards a Choreography-Based Approach for Service Integration in Smart Cities.pdfapplication/pdf863525https://repositorio.uniandes.edu.co/bitstreams/9cadbf21-c8c1-4d89-be37-79f2d51e0fb1/download18e9cb9c38f366cdead955650b0af8d9MD51autorizacion tesis.pdfautorizacion tesis.pdfHIDEapplication/pdf312737https://repositorio.uniandes.edu.co/bitstreams/fc9d4491-03ad-4304-970c-945b11cf199f/download450ce7d249a7dd969ab60e4aa0d34b3dMD52LICENSElicense.txtlicense.txttext/plain; charset=utf-82535https://repositorio.uniandes.edu.co/bitstreams/c7afe6b5-08c5-4531-8f12-cb6b624f8261/downloadae9e573a68e7f92501b6913cc846c39fMD53TEXTTowards a Choreography-Based Approach for Service Integration in Smart Cities.pdf.txtTowards a Choreography-Based Approach for Service Integration in Smart Cities.pdf.txtExtracted texttext/plain71128https://repositorio.uniandes.edu.co/bitstreams/2a41ab81-ffa8-4057-840f-17bf702fc5cd/downloadb123805438bede15248dcc8e67ab40f3MD54autorizacion tesis.pdf.txtautorizacion tesis.pdf.txtExtracted texttext/plain2009https://repositorio.uniandes.edu.co/bitstreams/649a79e3-0ce9-4349-b3f9-1bec94c3c1f9/downloadc9d5b145b57590aa54425e31974d722eMD56THUMBNAILTowards a Choreography-Based Approach for Service Integration in Smart Cities.pdf.jpgTowards a Choreography-Based Approach for Service Integration in Smart Cities.pdf.jpgGenerated Thumbnailimage/jpeg7728https://repositorio.uniandes.edu.co/bitstreams/a0eaf811-0794-422c-bbc6-b5790217c42e/download48c8f638a98e5db1875eebd74582ca62MD55autorizacion tesis.pdf.jpgautorizacion tesis.pdf.jpgGenerated Thumbnailimage/jpeg10963https://repositorio.uniandes.edu.co/bitstreams/3c72c491-8bd8-42eb-8b0d-8f09bc7b03fa/download47f71dfa6bbe8a26d5f4ec983844f6e3MD571992/75427oai:repositorio.uniandes.edu.co:1992/754272025-03-05 10:02:24.261https://repositorio.uniandes.edu.co/static/pdf/aceptacion_uso_es.pdfopen.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coPGgzPjxzdHJvbmc+RGVzY2FyZ28gZGUgUmVzcG9uc2FiaWxpZGFkIC0gTGljZW5jaWEgZGUgQXV0b3JpemFjacOzbjwvc3Ryb25nPjwvaDM+CjxwPjxzdHJvbmc+UG9yIGZhdm9yIGxlZXIgYXRlbnRhbWVudGUgZXN0ZSBkb2N1bWVudG8gcXVlIHBlcm1pdGUgYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBTw6luZWNhIHJlcHJvZHVjaXIgeSBkaXN0cmlidWlyIGxvcyByZWN1cnNvcyBkZSBpbmZvcm1hY2nDs24gZGVwb3NpdGFkb3MgbWVkaWFudGUgbGEgYXV0b3JpemFjacOzbiBkZSBsb3Mgc2lndWllbnRlcyB0w6lybWlub3M6PC9zdHJvbmc+PC9wPgo8cD5Db25jZWRhIGxhIGxpY2VuY2lhIGRlIGRlcMOzc2l0byBlc3TDoW5kYXIgc2VsZWNjaW9uYW5kbyBsYSBvcGNpw7NuIDxzdHJvbmc+J0FjZXB0YXIgbG9zIHTDqXJtaW5vcyBhbnRlcmlvcm1lbnRlIGRlc2NyaXRvcyc8L3N0cm9uZz4geSBjb250aW51YXIgZWwgcHJvY2VzbyBkZSBlbnbDrW8gbWVkaWFudGUgZWwgYm90w7NuIDxzdHJvbmc+J1NpZ3VpZW50ZScuPC9zdHJvbmc+PC9wPgo8aHI+CjxwPllvLCBlbiBtaSBjYWxpZGFkIGRlIGF1dG9yIGRlbCB0cmFiYWpvIGRlIHRlc2lzLCBtb25vZ3JhZsOtYSBvIHRyYWJham8gZGUgZ3JhZG8sIGhhZ28gZW50cmVnYSBkZWwgZWplbXBsYXIgcmVzcGVjdGl2byB5IGRlIHN1cyBhbmV4b3MgZGUgc2VyIGVsIGNhc28sIGVuIGZvcm1hdG8gZGlnaXRhbCB5L28gZWxlY3Ryw7NuaWNvIHkgYXV0b3Jpem8gYSBsYSBVbml2ZXJzaWRhZCBkZSBsb3MgQW5kZXMgcGFyYSBxdWUgcmVhbGljZSBsYSBwdWJsaWNhY2nDs24gZW4gZWwgU2lzdGVtYSBkZSBCaWJsaW90ZWNhcyBvIGVuIGN1YWxxdWllciBvdHJvIHNpc3RlbWEgbyBiYXNlIGRlIGRhdG9zIHByb3BpbyBvIGFqZW5vIGEgbGEgVW5pdmVyc2lkYWQgeSBwYXJhIHF1ZSBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgTGV5IDQ0IGRlIDE5OTMsIERlY2lzacOzbiBBbmRpbmEgMzUxIGRlIDE5OTMsIERlY3JldG8gNDYwIGRlIDE5OTUgeSBkZW3DoXMgbm9ybWFzIGdlbmVyYWxlcyBzb2JyZSBsYSBtYXRlcmlhLCB1dGlsaWNlIGVuIHRvZGFzIHN1cyBmb3JtYXMsIGxvcyBkZXJlY2hvcyBwYXRyaW1vbmlhbGVzIGRlIHJlcHJvZHVjY2nDs24sIGNvbXVuaWNhY2nDs24gcMO6YmxpY2EsIHRyYW5zZm9ybWFjacOzbiB5IGRpc3RyaWJ1Y2nDs24gKGFscXVpbGVyLCBwcsOpc3RhbW8gcMO6YmxpY28gZSBpbXBvcnRhY2nDs24pIHF1ZSBtZSBjb3JyZXNwb25kZW4gY29tbyBjcmVhZG9yIGRlIGxhIG9icmEgb2JqZXRvIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8uPC9wPgo8cD5MYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGVtaXRlIGVuIGNhbGlkYWQgZGUgYXV0b3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50byB5IG5vIGNvcnJlc3BvbmRlIGEgY2VzacOzbiBkZSBkZXJlY2hvcywgc2lubyBhIGxhIGF1dG9yaXphY2nDs24gZGUgdXNvIGFjYWTDqW1pY28gZGUgY29uZm9ybWlkYWQgY29uIGxvIGFudGVyaW9ybWVudGUgc2XDsWFsYWRvLiBMYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgZXh0ZW5zaXZhIG5vIHNvbG8gYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIHVzbyBzb2JyZSBsYSBvYnJhIGVuIGZvcm1hdG8gbyBzb3BvcnRlIG1hdGVyaWFsLCBzaW5vIHRhbWJpw6luIHBhcmEgZm9ybWF0byBlbGVjdHLDs25pY28sIHkgZW4gZ2VuZXJhbCBwYXJhIGN1YWxxdWllciBmb3JtYXRvIGNvbm9jaWRvIG8gcG9yIGNvbm9jZXIuPC9wPgo8cD5FbCBhdXRvciwgbWFuaWZpZXN0YSBxdWUgbGEgb2JyYSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCB5IGxhIHJlYWxpesOzIHNpbiB2aW9sYXIgbyB1c3VycGFyIGRlcmVjaG9zIGRlIGF1dG9yIGRlIHRlcmNlcm9zLCBwb3IgbG8gdGFudG8sIGxhIG9icmEgZXMgZGUgc3UgZXhjbHVzaXZhIGF1dG9yw61hIHkgdGllbmUgbGEgdGl0dWxhcmlkYWQgc29icmUgbGEgbWlzbWEuPC9wPgo8cD5FbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLjwvcD4KPHA+U2kgdGllbmUgYWxndW5hIGR1ZGEgc29icmUgbGEgbGljZW5jaWEsIHBvciBmYXZvciwgY29udGFjdGUgY29uIGVsIDxhIGhyZWY9Im1haWx0bzpiaWJsaW90ZWNhQHVuaWFuZGVzLmVkdS5jbyIgdGFyZ2V0PSJfYmxhbmsiPkFkbWluaXN0cmFkb3IgZGVsIFNpc3RlbWEuPC9hPjwvcD4K |