Towards a model-driven engineering approach for trusted execution environments

As digital cities evolve, the integration of diverse services becomes critical. However, the challenge lies not so much in traditional integration platforms such as Apache Camel or Mule, but in environments in which these platforms are deployed, which may lack mechanisms to guarantee the privacy and...

Full description

Autores:
Jáuregui Rozo, Juan Manuel
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2025
Institución:
Universidad de los Andes
Repositorio:
Séneca: repositorio Uniandes
Idioma:
eng
OAI Identifier:
oai:repositorio.uniandes.edu.co:1992/76223
Acceso en línea:
https://hdl.handle.net/1992/76223
Palabra clave:
Trusted Execution Environment
Morello Board
CHERI
Model-Driven Engineering
Code Generation
Sirius
Acceleo
Digital Cities
Secure Integration
Ingeniería
Rights
openAccess
License
Attribution 4.0 International
id UNIANDES2_78a5451512f8294dd384a58477c88adf
oai_identifier_str oai:repositorio.uniandes.edu.co:1992/76223
network_acronym_str UNIANDES2
network_name_str Séneca: repositorio Uniandes
repository_id_str
dc.title.eng.fl_str_mv Towards a model-driven engineering approach for trusted execution environments
title Towards a model-driven engineering approach for trusted execution environments
spellingShingle Towards a model-driven engineering approach for trusted execution environments
Trusted Execution Environment
Morello Board
CHERI
Model-Driven Engineering
Code Generation
Sirius
Acceleo
Digital Cities
Secure Integration
Ingeniería
title_short Towards a model-driven engineering approach for trusted execution environments
title_full Towards a model-driven engineering approach for trusted execution environments
title_fullStr Towards a model-driven engineering approach for trusted execution environments
title_full_unstemmed Towards a model-driven engineering approach for trusted execution environments
title_sort Towards a model-driven engineering approach for trusted execution environments
dc.creator.fl_str_mv Jáuregui Rozo, Juan Manuel
dc.contributor.advisor.none.fl_str_mv Bocanegra Garcia, Jose Joaquin
dc.contributor.author.none.fl_str_mv Jáuregui Rozo, Juan Manuel
dc.subject.keyword.eng.fl_str_mv Trusted Execution Environment
Morello Board
CHERI
Model-Driven Engineering
Code Generation
Sirius
Acceleo
Digital Cities
Secure Integration
topic Trusted Execution Environment
Morello Board
CHERI
Model-Driven Engineering
Code Generation
Sirius
Acceleo
Digital Cities
Secure Integration
Ingeniería
dc.subject.themes.spa.fl_str_mv Ingeniería
description As digital cities evolve, the integration of diverse services becomes critical. However, the challenge lies not so much in traditional integration platforms such as Apache Camel or Mule, but in environments in which these platforms are deployed, which may lack mechanisms to guarantee the privacy and integrity of the data. Trusted Execution Environments (TEEs) offer secure compartments in memory for the execution of code and processing of sensitive data, providing stronger protection against attacks. Among these TEE, the Morello Board has the capabilities for compartmentalized execution using the CHERI architecture. Despite its potential, development for the Morello platform is hindered by the complexity of writing secure code in C. To address this, we propose a model-driven approach that enables automatic generation of code in C for TEEs. Our methodology includes the definition of a metamodel and model using Sirius and code generation using Acceleo. This generated code is compatible with the Morello Board. Furthermore, we demonstrate the feasibility of this approach using a case study focused on the integration of secure services in the context of smart cities.
publishDate 2025
dc.date.accessioned.none.fl_str_mv 2025-05-30T13:18:34Z
dc.date.available.none.fl_str_mv 2025-05-30T13:18:34Z
dc.date.issued.none.fl_str_mv 2025-05-29
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/76223
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/76223
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 Apache Software Foundation: Apache camel – integration framework based on enterprise integration patterns. https://camel.apache.org/, accessed May 2025
Apvrille, L., Roudier, Y.: Sysml-sec: A model driven approach for securing embed- ded systems. In: 12th International Workshop on Modeling in Software Engineer- ing. pp. 29–35. IEEE (2015), https://arxiv.org/pdf/1404.1985
ARM Ltd.: Arm trustzone technology. https://www.arm.com/technologies/trustzone- for-cortex-a (2023), accessed 8 May 2025
Costan, V., Devadas, S.: Intel sgx explained. IACR Cryptology ePrint Archive pp. 1–118 (2016)
Eclipse Foundation: Acceleo - code generator. https://www.eclipse.org/acceleo/, accessed May 2025
Hamid, B., Geisel, J., Ziani, A., Bruel, J.M., Perez, J.: An mde-based framework for designing safe and secure embedded systems. In: Software Engineering for Em- bedded Systems, pp. 72–90. Springer (2013). https://doi.org/10.1007/978-3-642- 38911-5_5
MuleSoft Inc.: Mulesoft – anypoint platform for apis and integrations. https://www.mulesoft.com/, accessed May 2025
Obeo: Sirius - the open source graphical modeling workbench. https://www.eclipse.org/sirius/, accessed May 2025
Sabt, M., Achemlal, M., Bouabdallah, A.: Trusted execution environment: What it is, and what it is not. In: 2015 IEEE Trustcom/BigDataSE/ISPA. vol. 1, pp. 57–64. IEEE (2015). https://doi.org/10.1109/Trustcom.2015.357
Watson, R.N., Moore, S.W., Sewell, P., Neumann, P.G.: Capability hardware en- hanced risc instructions (cheri): Notes on the design and implementation. Tech- nical Report UCAM-CL-TR-927, University of Cambridge, Computer Laboratory (2019)
dc.rights.en.fl_str_mv Attribution 4.0 International
dc.rights.uri.none.fl_str_mv http://creativecommons.org/licenses/by/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 4.0 International
http://creativecommons.org/licenses/by/4.0/
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.none.fl_str_mv 10 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/ae4a03aa-c2d5-4090-8fd0-c89886d4ab3b/download
https://repositorio.uniandes.edu.co/bitstreams/ee8c2c1e-7e44-4276-bc23-86ddda124239/download
https://repositorio.uniandes.edu.co/bitstreams/4df55644-c8ef-4238-b0cb-2e5360c3b15d/download
https://repositorio.uniandes.edu.co/bitstreams/b90f4e8f-3dab-48d5-9f4b-64299ce34469/download
https://repositorio.uniandes.edu.co/bitstreams/f0fe11f2-fa4c-4eb7-8f2f-a7ef902e6068/download
https://repositorio.uniandes.edu.co/bitstreams/81d6a285-3787-4600-99a3-ca34fdb9fc5f/download
https://repositorio.uniandes.edu.co/bitstreams/c99dfa22-3214-477f-9396-a94cc1cddbb6/download
https://repositorio.uniandes.edu.co/bitstreams/098821c2-1203-4a34-8e94-e6a30667e16a/download
bitstream.checksum.fl_str_mv 4d2b348244d8566f17adf3d9d6c278ef
51fe4fdfd27f9afd5eb1cbf83f208031
ae9e573a68e7f92501b6913cc846c39f
0175ea4a2d4caec4bbcc37e300941108
aed361a96c2f4229ed90080500ccc6d4
bada479e7dd8b16997f9c17ffbd518bc
c5614ef528f2ef2eb3f35b2db2b46a61
e399576615c69281cfd345e8cec9417a
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_ 1837005222147260416
spelling Bocanegra Garcia, Jose Joaquinvirtual::24124-1Jáuregui Rozo, Juan Manuel2025-05-30T13:18:34Z2025-05-30T13:18:34Z2025-05-29https://hdl.handle.net/1992/76223instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/As digital cities evolve, the integration of diverse services becomes critical. However, the challenge lies not so much in traditional integration platforms such as Apache Camel or Mule, but in environments in which these platforms are deployed, which may lack mechanisms to guarantee the privacy and integrity of the data. Trusted Execution Environments (TEEs) offer secure compartments in memory for the execution of code and processing of sensitive data, providing stronger protection against attacks. Among these TEE, the Morello Board has the capabilities for compartmentalized execution using the CHERI architecture. Despite its potential, development for the Morello platform is hindered by the complexity of writing secure code in C. To address this, we propose a model-driven approach that enables automatic generation of code in C for TEEs. Our methodology includes the definition of a metamodel and model using Sirius and code generation using Acceleo. This generated code is compatible with the Morello Board. Furthermore, we demonstrate the feasibility of this approach using a case study focused on the integration of secure services in the context of smart cities.Pregrado10 páginasapplication/pdfengUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería de Sistemas y ComputaciónAttribution 4.0 Internationalhttp://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Towards a model-driven engineering approach for trusted execution environmentsTrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/redcol/resource_type/TPTrusted Execution EnvironmentMorello BoardCHERIModel-Driven EngineeringCode GenerationSiriusAcceleoDigital CitiesSecure IntegrationIngenieríaApache Software Foundation: Apache camel – integration framework based on enterprise integration patterns. https://camel.apache.org/, accessed May 2025Apvrille, L., Roudier, Y.: Sysml-sec: A model driven approach for securing embed- ded systems. In: 12th International Workshop on Modeling in Software Engineer- ing. pp. 29–35. IEEE (2015), https://arxiv.org/pdf/1404.1985ARM Ltd.: Arm trustzone technology. https://www.arm.com/technologies/trustzone- for-cortex-a (2023), accessed 8 May 2025Costan, V., Devadas, S.: Intel sgx explained. IACR Cryptology ePrint Archive pp. 1–118 (2016)Eclipse Foundation: Acceleo - code generator. https://www.eclipse.org/acceleo/, accessed May 2025Hamid, B., Geisel, J., Ziani, A., Bruel, J.M., Perez, J.: An mde-based framework for designing safe and secure embedded systems. In: Software Engineering for Em- bedded Systems, pp. 72–90. Springer (2013). https://doi.org/10.1007/978-3-642- 38911-5_5MuleSoft Inc.: Mulesoft – anypoint platform for apis and integrations. https://www.mulesoft.com/, accessed May 2025Obeo: Sirius - the open source graphical modeling workbench. https://www.eclipse.org/sirius/, accessed May 2025Sabt, M., Achemlal, M., Bouabdallah, A.: Trusted execution environment: What it is, and what it is not. In: 2015 IEEE Trustcom/BigDataSE/ISPA. vol. 1, pp. 57–64. IEEE (2015). https://doi.org/10.1109/Trustcom.2015.357Watson, R.N., Moore, S.W., Sewell, P., Neumann, P.G.: Capability hardware en- hanced risc instructions (cheri): Notes on the design and implementation. Tech- nical Report UCAM-CL-TR-927, University of Cambridge, Computer Laboratory (2019)201922481Publication0000-0002-8342-7346virtual::24124-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000425192virtual::24124-185f75f85-ca3a-4d29-bd1c-312b6813e2a8virtual::24124-185f75f85-ca3a-4d29-bd1c-312b6813e2a8virtual::24124-1ORIGINALFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - ISIS.pdfFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - ISIS.pdfHIDEapplication/pdf343490https://repositorio.uniandes.edu.co/bitstreams/ae4a03aa-c2d5-4090-8fd0-c89886d4ab3b/download4d2b348244d8566f17adf3d9d6c278efMD51Towards_a_Model_Driven_Enginnering_Approach_for_Trusted_Execution_Environments.pdfTowards_a_Model_Driven_Enginnering_Approach_for_Trusted_Execution_Environments.pdfapplication/pdf6458183https://repositorio.uniandes.edu.co/bitstreams/ee8c2c1e-7e44-4276-bc23-86ddda124239/download51fe4fdfd27f9afd5eb1cbf83f208031MD52LICENSElicense.txtlicense.txttext/plain; charset=utf-82535https://repositorio.uniandes.edu.co/bitstreams/4df55644-c8ef-4238-b0cb-2e5360c3b15d/downloadae9e573a68e7f92501b6913cc846c39fMD54CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8908https://repositorio.uniandes.edu.co/bitstreams/b90f4e8f-3dab-48d5-9f4b-64299ce34469/download0175ea4a2d4caec4bbcc37e300941108MD55TEXTFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - ISIS.pdf.txtFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - ISIS.pdf.txtExtracted texttext/plain2009https://repositorio.uniandes.edu.co/bitstreams/f0fe11f2-fa4c-4eb7-8f2f-a7ef902e6068/downloadaed361a96c2f4229ed90080500ccc6d4MD56Towards_a_Model_Driven_Enginnering_Approach_for_Trusted_Execution_Environments.pdf.txtTowards_a_Model_Driven_Enginnering_Approach_for_Trusted_Execution_Environments.pdf.txtExtracted texttext/plain21131https://repositorio.uniandes.edu.co/bitstreams/81d6a285-3787-4600-99a3-ca34fdb9fc5f/downloadbada479e7dd8b16997f9c17ffbd518bcMD58THUMBNAILFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - ISIS.pdf.jpgFormato de Autorización y Entrega de Tesis al Sistema de Bibliotecas - ISIS.pdf.jpgIM Thumbnailimage/jpeg14728https://repositorio.uniandes.edu.co/bitstreams/c99dfa22-3214-477f-9396-a94cc1cddbb6/downloadc5614ef528f2ef2eb3f35b2db2b46a61MD57Towards_a_Model_Driven_Enginnering_Approach_for_Trusted_Execution_Environments.pdf.jpgTowards_a_Model_Driven_Enginnering_Approach_for_Trusted_Execution_Environments.pdf.jpgIM Thumbnailimage/jpeg15418https://repositorio.uniandes.edu.co/bitstreams/098821c2-1203-4a34-8e94-e6a30667e16a/downloade399576615c69281cfd345e8cec9417aMD591992/76223oai:repositorio.uniandes.edu.co:1992/762232025-05-31 04:05:48.084http://creativecommons.org/licenses/by/4.0/Attribution 4.0 Internationalopen.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coPGgzPjxzdHJvbmc+RGVzY2FyZ28gZGUgUmVzcG9uc2FiaWxpZGFkIC0gTGljZW5jaWEgZGUgQXV0b3JpemFjacOzbjwvc3Ryb25nPjwvaDM+CjxwPjxzdHJvbmc+UG9yIGZhdm9yIGxlZXIgYXRlbnRhbWVudGUgZXN0ZSBkb2N1bWVudG8gcXVlIHBlcm1pdGUgYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBTw6luZWNhIHJlcHJvZHVjaXIgeSBkaXN0cmlidWlyIGxvcyByZWN1cnNvcyBkZSBpbmZvcm1hY2nDs24gZGVwb3NpdGFkb3MgbWVkaWFudGUgbGEgYXV0b3JpemFjacOzbiBkZSBsb3Mgc2lndWllbnRlcyB0w6lybWlub3M6PC9zdHJvbmc+PC9wPgo8cD5Db25jZWRhIGxhIGxpY2VuY2lhIGRlIGRlcMOzc2l0byBlc3TDoW5kYXIgc2VsZWNjaW9uYW5kbyBsYSBvcGNpw7NuIDxzdHJvbmc+J0FjZXB0YXIgbG9zIHTDqXJtaW5vcyBhbnRlcmlvcm1lbnRlIGRlc2NyaXRvcyc8L3N0cm9uZz4geSBjb250aW51YXIgZWwgcHJvY2VzbyBkZSBlbnbDrW8gbWVkaWFudGUgZWwgYm90w7NuIDxzdHJvbmc+J1NpZ3VpZW50ZScuPC9zdHJvbmc+PC9wPgo8aHI+CjxwPllvLCBlbiBtaSBjYWxpZGFkIGRlIGF1dG9yIGRlbCB0cmFiYWpvIGRlIHRlc2lzLCBtb25vZ3JhZsOtYSBvIHRyYWJham8gZGUgZ3JhZG8sIGhhZ28gZW50cmVnYSBkZWwgZWplbXBsYXIgcmVzcGVjdGl2byB5IGRlIHN1cyBhbmV4b3MgZGUgc2VyIGVsIGNhc28sIGVuIGZvcm1hdG8gZGlnaXRhbCB5L28gZWxlY3Ryw7NuaWNvIHkgYXV0b3Jpem8gYSBsYSBVbml2ZXJzaWRhZCBkZSBsb3MgQW5kZXMgcGFyYSBxdWUgcmVhbGljZSBsYSBwdWJsaWNhY2nDs24gZW4gZWwgU2lzdGVtYSBkZSBCaWJsaW90ZWNhcyBvIGVuIGN1YWxxdWllciBvdHJvIHNpc3RlbWEgbyBiYXNlIGRlIGRhdG9zIHByb3BpbyBvIGFqZW5vIGEgbGEgVW5pdmVyc2lkYWQgeSBwYXJhIHF1ZSBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgTGV5IDQ0IGRlIDE5OTMsIERlY2lzacOzbiBBbmRpbmEgMzUxIGRlIDE5OTMsIERlY3JldG8gNDYwIGRlIDE5OTUgeSBkZW3DoXMgbm9ybWFzIGdlbmVyYWxlcyBzb2JyZSBsYSBtYXRlcmlhLCB1dGlsaWNlIGVuIHRvZGFzIHN1cyBmb3JtYXMsIGxvcyBkZXJlY2hvcyBwYXRyaW1vbmlhbGVzIGRlIHJlcHJvZHVjY2nDs24sIGNvbXVuaWNhY2nDs24gcMO6YmxpY2EsIHRyYW5zZm9ybWFjacOzbiB5IGRpc3RyaWJ1Y2nDs24gKGFscXVpbGVyLCBwcsOpc3RhbW8gcMO6YmxpY28gZSBpbXBvcnRhY2nDs24pIHF1ZSBtZSBjb3JyZXNwb25kZW4gY29tbyBjcmVhZG9yIGRlIGxhIG9icmEgb2JqZXRvIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8uPC9wPgo8cD5MYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGVtaXRlIGVuIGNhbGlkYWQgZGUgYXV0b3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50byB5IG5vIGNvcnJlc3BvbmRlIGEgY2VzacOzbiBkZSBkZXJlY2hvcywgc2lubyBhIGxhIGF1dG9yaXphY2nDs24gZGUgdXNvIGFjYWTDqW1pY28gZGUgY29uZm9ybWlkYWQgY29uIGxvIGFudGVyaW9ybWVudGUgc2XDsWFsYWRvLiBMYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgZXh0ZW5zaXZhIG5vIHNvbG8gYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIHVzbyBzb2JyZSBsYSBvYnJhIGVuIGZvcm1hdG8gbyBzb3BvcnRlIG1hdGVyaWFsLCBzaW5vIHRhbWJpw6luIHBhcmEgZm9ybWF0byBlbGVjdHLDs25pY28sIHkgZW4gZ2VuZXJhbCBwYXJhIGN1YWxxdWllciBmb3JtYXRvIGNvbm9jaWRvIG8gcG9yIGNvbm9jZXIuPC9wPgo8cD5FbCBhdXRvciwgbWFuaWZpZXN0YSBxdWUgbGEgb2JyYSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCB5IGxhIHJlYWxpesOzIHNpbiB2aW9sYXIgbyB1c3VycGFyIGRlcmVjaG9zIGRlIGF1dG9yIGRlIHRlcmNlcm9zLCBwb3IgbG8gdGFudG8sIGxhIG9icmEgZXMgZGUgc3UgZXhjbHVzaXZhIGF1dG9yw61hIHkgdGllbmUgbGEgdGl0dWxhcmlkYWQgc29icmUgbGEgbWlzbWEuPC9wPgo8cD5FbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLjwvcD4KPHA+U2kgdGllbmUgYWxndW5hIGR1ZGEgc29icmUgbGEgbGljZW5jaWEsIHBvciBmYXZvciwgY29udGFjdGUgY29uIGVsIDxhIGhyZWY9Im1haWx0bzpiaWJsaW90ZWNhQHVuaWFuZGVzLmVkdS5jbyIgdGFyZ2V0PSJfYmxhbmsiPkFkbWluaXN0cmFkb3IgZGVsIFNpc3RlbWEuPC9hPjwvcD4K