Soporte de transcompilación para microcontroladores de la serie PSoC 4, desde un lenguaje basado en V a su compilador nativo en C

El proyecto permite generar un código fuente en lenguaje Aixt (basado en V) que sea correctamente compilado a la serie PSoC 4 de manera automática, sin tener que realizar cambios manuales que puedan resultar tediosos y costosos en términos de tiempo y recursos. Aixt está optimizado para funcionar ef...

Full description

Autores:
Tavera Leon, Javier Alfonso
Lucas Jutinico, Camilo Andres
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2023
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/39795
Acceso en línea:
http://hdl.handle.net/11349/39795
Palabra clave:
PSoC
Microcontroladores
Aixt
Lenguaje de programación V
Ingeniería Eléctrica por Ciclos Propedéuticos -- Tesis y disertaciones académicas
Circuitos eléctronicos -- Electrónica
Hardware -- Computador
Programación -- Informática
V programming language
Microcontrollers
PSoC
Aixt
Rights
License
Attribution-NonCommercial-NoDerivatives 4.0 Internacional
id UDISTRITA2_73cf90bd002dc94b25b4952602168bc6
oai_identifier_str oai:repository.udistrital.edu.co:11349/39795
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Soporte de transcompilación para microcontroladores de la serie PSoC 4, desde un lenguaje basado en V a su compilador nativo en C
dc.title.titleenglish.spa.fl_str_mv Transcompilation support for PSoC 4 series microcontrollers from a V-based language to its native C compiler
title Soporte de transcompilación para microcontroladores de la serie PSoC 4, desde un lenguaje basado en V a su compilador nativo en C
spellingShingle Soporte de transcompilación para microcontroladores de la serie PSoC 4, desde un lenguaje basado en V a su compilador nativo en C
PSoC
Microcontroladores
Aixt
Lenguaje de programación V
Ingeniería Eléctrica por Ciclos Propedéuticos -- Tesis y disertaciones académicas
Circuitos eléctronicos -- Electrónica
Hardware -- Computador
Programación -- Informática
V programming language
Microcontrollers
PSoC
Aixt
title_short Soporte de transcompilación para microcontroladores de la serie PSoC 4, desde un lenguaje basado en V a su compilador nativo en C
title_full Soporte de transcompilación para microcontroladores de la serie PSoC 4, desde un lenguaje basado en V a su compilador nativo en C
title_fullStr Soporte de transcompilación para microcontroladores de la serie PSoC 4, desde un lenguaje basado en V a su compilador nativo en C
title_full_unstemmed Soporte de transcompilación para microcontroladores de la serie PSoC 4, desde un lenguaje basado en V a su compilador nativo en C
title_sort Soporte de transcompilación para microcontroladores de la serie PSoC 4, desde un lenguaje basado en V a su compilador nativo en C
dc.creator.fl_str_mv Tavera Leon, Javier Alfonso
Lucas Jutinico, Camilo Andres
dc.contributor.advisor.none.fl_str_mv Martínez Santa, Fernando
dc.contributor.author.none.fl_str_mv Tavera Leon, Javier Alfonso
Lucas Jutinico, Camilo Andres
dc.subject.spa.fl_str_mv PSoC
Microcontroladores
Aixt
Lenguaje de programación V
topic PSoC
Microcontroladores
Aixt
Lenguaje de programación V
Ingeniería Eléctrica por Ciclos Propedéuticos -- Tesis y disertaciones académicas
Circuitos eléctronicos -- Electrónica
Hardware -- Computador
Programación -- Informática
V programming language
Microcontrollers
PSoC
Aixt
dc.subject.lemb.none.fl_str_mv Ingeniería Eléctrica por Ciclos Propedéuticos -- Tesis y disertaciones académicas
Circuitos eléctronicos -- Electrónica
Hardware -- Computador
Programación -- Informática
dc.subject.keyword.spa.fl_str_mv V programming language
Microcontrollers
PSoC
Aixt
description El proyecto permite generar un código fuente en lenguaje Aixt (basado en V) que sea correctamente compilado a la serie PSoC 4 de manera automática, sin tener que realizar cambios manuales que puedan resultar tediosos y costosos en términos de tiempo y recursos. Aixt está optimizado para funcionar eficientemente en dispositivos con recursos limitados como los son los microcontroladores de la serie PSoC 4, lo que lo hace adecuado para aplicaciones que requieren una solución eficiente en términos de recursos.
publishDate 2023
dc.date.created.none.fl_str_mv 2023-10-25
dc.date.accessioned.none.fl_str_mv 2024-08-15T23:58:47Z
dc.date.available.none.fl_str_mv 2024-08-15T23:58:47Z
dc.type.spa.fl_str_mv bachelorThesis
dc.type.degree.spa.fl_str_mv Pasantía
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/39795
url http://hdl.handle.net/11349/39795
dc.language.iso.none.fl_str_mv spa
language spa
dc.relation.references.none.fl_str_mv Fernando Martínez Santa (vol. 13, nº 12, p. 8, 2022). Microcontrollers Programming Framework based on a V-like programming Language [Articulo]. ProQuest.com. Recuperado de: https://www.proquest.com/openview/45feb85c9a7b12989aaf7e21a385577c/1?pqorigsite=gscholar&cbl=5444811 [Último acceso: Agosto del 2023].
Fernando Martínez Santa, «Aixt,» 2022. [En línea]. Available in: https://gitlab.com/fermarsan/aixt-project . [Último acceso: 27 Febrero 2023].
F. Martínez Santa, «Sokae Project,» Noviembre 2022. [En línea]. Available in: https://gitlab.com/fermarsan/sokae-project .
Fernando Martinez Santa, Santiago Orjuela Rivera, and Fredy H. Martinez Sarmiento (2022). "Rust-like Programming Language for Low-resource Microcontrollers." Advances in Dynamical Systems and Applications vol. 17 nº 2 pp. 599-614, 2022. Recuperado de: https://repositorio.cun.edu.co/handle/cun/4469. [Último acceso: Julio del 2023].
Cypress semiconductor. (8 de enero del 2016). PSoC Creator 101:0. CY8CKIT049 Prototyping Kit Getting Started.[Archivo de video]. Youtube. https://www.youtube.com/watch?v=v-ZHFygeL2I .
PSoC Projects. (15 de Marzo del 2015). ADC y UART PSoC 4 CY8CKIT-049. [Archivo de video]. Youtube. https://www.youtube.com/watch?v=hWFiN5NY_NU&t=639s .
PSoC Projects. (11 de Octubre del 2016). PSoC4S-CY8CKIT145. [Archivo de video]. Youtube. https://www.youtube.com/watch?v=YvJfd_lAJJA .
Cypress Semiconductor Corporation. PSoC4 Prototyping Kit Guide CY8CKIT049XX. Doc. #: 001-90711 [Online]. 2014 2018. Recuperado de: https://www.infineon.com/dgdl/Infineon-CY8CKIT-049- 4xxx_PSoC_4_Prototyping_Kit_Guide-UserManual-v01_00- EN.pdf?fileId=8ac78c8c7d0d8da4017d0ef17bd002cb . [Último acceso: Junio del 2023].
Cypress Semiconductor Corporation. PSoC4 Prototyping Kit Guide CY8CKIT145-40XX. Doc. #: 002-11504 [Online]. 2016 2018. Recuperado de: https://www.infineon.com/dgdl/Infineon-CY8CKIT-145- 40XX_PSoC_4000S_Prototyping_Kit_Guide-UserManual-v01_00- EN.pdf?fileId=8ac78c8c7d0d8da4017d0efccdd91344 . [Último acceso: Junio del 2023].
Kelsey R. Fulton, Anna Chan, Daniel Votipka, Michael Hicks y Michelle L. Mazurek. (9 de Agosto del 2021). Benefits and Drawbacks of Adopting a Secure Programming Language: Rust as a Case Study. [Articulo]. usenix.org. Recuperado de: https://www.usenix.org/system/files/soups2021-fulton.pdf . [Último acceso: Abril del 2023].
dc.rights.*.fl_str_mv Attribution-NonCommercial-NoDerivatives 4.0 Internacional
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.uri.*.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
dc.rights.acceso.spa.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv Attribution-NonCommercial-NoDerivatives 4.0 Internacional
http://creativecommons.org/licenses/by-nc-nd/4.0/
Abierto (Texto Completo)
http://purl.org/coar/access_right/c_abf2
dc.format.mimetype.spa.fl_str_mv pdf
institution Universidad Distrital Francisco José de Caldas
bitstream.url.fl_str_mv https://repository.udistrital.edu.co/bitstreams/47d0127d-2c3d-40a3-8648-38205ac42dfd/download
https://repository.udistrital.edu.co/bitstreams/5e4e4942-48b6-418b-9d9a-7dc4b6f642e7/download
https://repository.udistrital.edu.co/bitstreams/8ed2e720-aac4-4921-9b61-0030d7c6bfc7/download
https://repository.udistrital.edu.co/bitstreams/18bb8e7a-85a5-4685-ac38-356b48e8a0ab/download
https://repository.udistrital.edu.co/bitstreams/1655ba0b-c525-4a98-b5c0-a827d3a37792/download
https://repository.udistrital.edu.co/bitstreams/3b391f68-3551-4cf6-bbaa-2677c8dd4011/download
bitstream.checksum.fl_str_mv 997daf6c648c962d566d7b082dac908d
c1f62a086daccd0d7d0d680a2b3997ed
9d456d758052e9cd4b932fe632aac147
4460e5956bc1d1639be9ae6146a50347
28ffd0197cbf1a882a37c9eea99b3dbc
52539665b58eeacd8de79159f34c28b6
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Universidad Distrital
repository.mail.fl_str_mv repositorio@udistrital.edu.co
_version_ 1828164849208655872
spelling Martínez Santa, FernandoTavera Leon, Javier AlfonsoLucas Jutinico, Camilo Andres2024-08-15T23:58:47Z2024-08-15T23:58:47Z2023-10-25http://hdl.handle.net/11349/39795El proyecto permite generar un código fuente en lenguaje Aixt (basado en V) que sea correctamente compilado a la serie PSoC 4 de manera automática, sin tener que realizar cambios manuales que puedan resultar tediosos y costosos en términos de tiempo y recursos. Aixt está optimizado para funcionar eficientemente en dispositivos con recursos limitados como los son los microcontroladores de la serie PSoC 4, lo que lo hace adecuado para aplicaciones que requieren una solución eficiente en términos de recursos.The project allows generating source code in Aixt language (based on V) that is correctly compiled to the PSoC 4 series automatically, without having to make manual changes that can be tedious and costly in terms of time and resources. Aixt is optimized to run efficiently on resource-constrained devices such as PSoC 4 series microcontrollers, making it suitable for applications that require a resource-efficient solution.pdfspaAttribution-NonCommercial-NoDerivatives 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2PSoCMicrocontroladoresAixtLenguaje de programación VIngeniería Eléctrica por Ciclos Propedéuticos -- Tesis y disertaciones académicasCircuitos eléctronicos -- ElectrónicaHardware -- ComputadorProgramación -- InformáticaV programming languageMicrocontrollersPSoCAixtSoporte de transcompilación para microcontroladores de la serie PSoC 4, desde un lenguaje basado en V a su compilador nativo en CTranscompilation support for PSoC 4 series microcontrollers from a V-based language to its native C compilerbachelorThesisPasantíainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fFernando Martínez Santa (vol. 13, nº 12, p. 8, 2022). Microcontrollers Programming Framework based on a V-like programming Language [Articulo]. ProQuest.com. Recuperado de: https://www.proquest.com/openview/45feb85c9a7b12989aaf7e21a385577c/1?pqorigsite=gscholar&cbl=5444811 [Último acceso: Agosto del 2023].Fernando Martínez Santa, «Aixt,» 2022. [En línea]. Available in: https://gitlab.com/fermarsan/aixt-project . [Último acceso: 27 Febrero 2023].F. Martínez Santa, «Sokae Project,» Noviembre 2022. [En línea]. Available in: https://gitlab.com/fermarsan/sokae-project .Fernando Martinez Santa, Santiago Orjuela Rivera, and Fredy H. Martinez Sarmiento (2022). "Rust-like Programming Language for Low-resource Microcontrollers." Advances in Dynamical Systems and Applications vol. 17 nº 2 pp. 599-614, 2022. Recuperado de: https://repositorio.cun.edu.co/handle/cun/4469. [Último acceso: Julio del 2023].Cypress semiconductor. (8 de enero del 2016). PSoC Creator 101:0. CY8CKIT049 Prototyping Kit Getting Started.[Archivo de video]. Youtube. https://www.youtube.com/watch?v=v-ZHFygeL2I .PSoC Projects. (15 de Marzo del 2015). ADC y UART PSoC 4 CY8CKIT-049. [Archivo de video]. Youtube. https://www.youtube.com/watch?v=hWFiN5NY_NU&t=639s .PSoC Projects. (11 de Octubre del 2016). PSoC4S-CY8CKIT145. [Archivo de video]. Youtube. https://www.youtube.com/watch?v=YvJfd_lAJJA .Cypress Semiconductor Corporation. PSoC4 Prototyping Kit Guide CY8CKIT049XX. Doc. #: 001-90711 [Online]. 2014 2018. Recuperado de: https://www.infineon.com/dgdl/Infineon-CY8CKIT-049- 4xxx_PSoC_4_Prototyping_Kit_Guide-UserManual-v01_00- EN.pdf?fileId=8ac78c8c7d0d8da4017d0ef17bd002cb . [Último acceso: Junio del 2023].Cypress Semiconductor Corporation. PSoC4 Prototyping Kit Guide CY8CKIT145-40XX. Doc. #: 002-11504 [Online]. 2016 2018. Recuperado de: https://www.infineon.com/dgdl/Infineon-CY8CKIT-145- 40XX_PSoC_4000S_Prototyping_Kit_Guide-UserManual-v01_00- EN.pdf?fileId=8ac78c8c7d0d8da4017d0efccdd91344 . [Último acceso: Junio del 2023].Kelsey R. Fulton, Anna Chan, Daniel Votipka, Michael Hicks y Michelle L. Mazurek. (9 de Agosto del 2021). Benefits and Drawbacks of Adopting a Secure Programming Language: Rust as a Case Study. [Articulo]. usenix.org. Recuperado de: https://www.usenix.org/system/files/soups2021-fulton.pdf . [Último acceso: Abril del 2023].LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/47d0127d-2c3d-40a3-8648-38205ac42dfd/download997daf6c648c962d566d7b082dac908dMD55ORIGINALTrabajo de gradoTrabajo de gradoapplication/pdf688362https://repository.udistrital.edu.co/bitstreams/5e4e4942-48b6-418b-9d9a-7dc4b6f642e7/downloadc1f62a086daccd0d7d0d680a2b3997edMD51Licencia de uso y autorizaciónLicencia de uso y autorizaciónapplication/pdf530929https://repository.udistrital.edu.co/bitstreams/8ed2e720-aac4-4921-9b61-0030d7c6bfc7/download9d456d758052e9cd4b932fe632aac147MD53CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8805https://repository.udistrital.edu.co/bitstreams/18bb8e7a-85a5-4685-ac38-356b48e8a0ab/download4460e5956bc1d1639be9ae6146a50347MD54THUMBNAILTrabajo de grado.jpgTrabajo de grado.jpgIM Thumbnailimage/jpeg11963https://repository.udistrital.edu.co/bitstreams/1655ba0b-c525-4a98-b5c0-a827d3a37792/download28ffd0197cbf1a882a37c9eea99b3dbcMD56Licencia de uso y autorización.jpgLicencia de uso y autorización.jpgIM Thumbnailimage/jpeg9698https://repository.udistrital.edu.co/bitstreams/3b391f68-3551-4cf6-bbaa-2677c8dd4011/download52539665b58eeacd8de79159f34c28b6MD5711349/39795oai:repository.udistrital.edu.co:11349/397952024-11-02 01:02:12.963http://creativecommons.org/licenses/by-nc-nd/4.0/Attribution-NonCommercial-NoDerivatives 4.0 Internacionalopen.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK