Construcción de una plataforma de gestión de misiones y recompensas basadas en tokens no fungibles (NFTs) para Ashara Studios.

El proyecto de pasantía tuvo como objetivo desarrollar una plataforma web para Ashara Studios que automatizara la gestión de misiones y la entrega de recompensas basadas en NFTs, resolviendo las ineficiencias de su sistema manual. Utilizando una arquitectura basada en el patrón MVC y tecnologías com...

Full description

Autores:
Ramírez Silva, Andrea Liliana
Tipo de recurso:
Fecha de publicación:
2024
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
OAI Identifier:
oai:repository.udistrital.edu.co:11349/93351
Acceso en línea:
http://hdl.handle.net/11349/93351
Palabra clave:
Blockchain
NFTs
Gestión de Misiones
Plataforma Web
Videojuegos UGC
Pasantía
Ingeniería de sistemas -- Tesis y disertaciones académicas
Blockchain
NFTs
Mission Management
Web Platform
UGC Video Games
Internship
Rights
License
Abierto (Texto Completo)
id UDISTRITA2_8fe19b1dd18d06ace77308fa764bc380
oai_identifier_str oai:repository.udistrital.edu.co:11349/93351
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.none.fl_str_mv Construcción de una plataforma de gestión de misiones y recompensas basadas en tokens no fungibles (NFTs) para Ashara Studios.
dc.title.titleenglish.none.fl_str_mv Construction of a mission and reward management platform based on non-fungible tokens (NFTs) for Ashara Studios.
title Construcción de una plataforma de gestión de misiones y recompensas basadas en tokens no fungibles (NFTs) para Ashara Studios.
spellingShingle Construcción de una plataforma de gestión de misiones y recompensas basadas en tokens no fungibles (NFTs) para Ashara Studios.
Blockchain
NFTs
Gestión de Misiones
Plataforma Web
Videojuegos UGC
Pasantía
Ingeniería de sistemas -- Tesis y disertaciones académicas
Blockchain
NFTs
Mission Management
Web Platform
UGC Video Games
Internship
title_short Construcción de una plataforma de gestión de misiones y recompensas basadas en tokens no fungibles (NFTs) para Ashara Studios.
title_full Construcción de una plataforma de gestión de misiones y recompensas basadas en tokens no fungibles (NFTs) para Ashara Studios.
title_fullStr Construcción de una plataforma de gestión de misiones y recompensas basadas en tokens no fungibles (NFTs) para Ashara Studios.
title_full_unstemmed Construcción de una plataforma de gestión de misiones y recompensas basadas en tokens no fungibles (NFTs) para Ashara Studios.
title_sort Construcción de una plataforma de gestión de misiones y recompensas basadas en tokens no fungibles (NFTs) para Ashara Studios.
dc.creator.fl_str_mv Ramírez Silva, Andrea Liliana
dc.contributor.advisor.none.fl_str_mv Martínez Rodríguez, Fernando
dc.contributor.author.none.fl_str_mv Ramírez Silva, Andrea Liliana
dc.contributor.orcid.none.fl_str_mv Martínez Rodríguez, Fernando [0000-0002-2016-0787]
dc.subject.none.fl_str_mv Blockchain
NFTs
Gestión de Misiones
Plataforma Web
Videojuegos UGC
Pasantía
topic Blockchain
NFTs
Gestión de Misiones
Plataforma Web
Videojuegos UGC
Pasantía
Ingeniería de sistemas -- Tesis y disertaciones académicas
Blockchain
NFTs
Mission Management
Web Platform
UGC Video Games
Internship
dc.subject.lemb.none.fl_str_mv Ingeniería de sistemas -- Tesis y disertaciones académicas
dc.subject.keyword.none.fl_str_mv Blockchain
NFTs
Mission Management
Web Platform
UGC Video Games
Internship
description El proyecto de pasantía tuvo como objetivo desarrollar una plataforma web para Ashara Studios que automatizara la gestión de misiones y la entrega de recompensas basadas en NFTs, resolviendo las ineficiencias de su sistema manual. Utilizando una arquitectura basada en el patrón MVC y tecnologías como MongoDB, Node.js, y React.js, se implementaron funcionalidades para que los jugadores enviaran pruebas digitales y los administradores validaran misiones de forma eficiente. Además, se integraron contratos inteligentes en la red Polygon para gestionar las recompensas. La solución mejoró significativamente la experiencia de usuario, incrementó la eficiencia operativa y fue clave durante la temporada 2 de Ashara Studios, destacando en eventos competitivos como The Sandbox Builders’ Challenge. Este trabajo, que utilizó la metodología ágil SCRUM, también implementó métricas estratégicas y estableció una base tecnológica sólida para futuras expansiones, posicionando a Ashara Studios como líder en videojuegos UGC basados en blockchain.
publishDate 2024
dc.date.created.none.fl_str_mv 2024-11-29
dc.date.accessioned.none.fl_str_mv 2025-03-06T19:21:57Z
dc.date.available.none.fl_str_mv 2025-03-06T19:21:57Z
dc.type.none.fl_str_mv bachelorThesis
dc.type.coar.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
dc.type.degree.none.fl_str_mv Pasantía
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/11349/93351
url http://hdl.handle.net/11349/93351
dc.relation.references.none.fl_str_mv Steven T. Wright. (2018, junio). ‘Rocket League’ director talks Rocket Pass, loot boxes, bonuses and penalties. Variety. https://variety.com/2018/gaming/features/rocket-league-rocket-pass-1202850769/
Channel news peru. (2024, febrero). Play to Airdrop: la nueva tendencia de los juegos Web 3.0 llega para transformar la experiencia gamer. https://channelnewsperu.com/play-to-airdrop-la-nueva-tendencia-de-los-juegos-web-3-0-llega-para-tran sformar-la-experiencia-gamer
Paula Croft. (2019, abril). Rocket League presenta el Rocket Pass 3 y los Desafíos. Meristation. https://as.com/meristation/2019/04/09/avances/1554818267_283753.html
Adrian Carrillo. (2021, junio). Genshin Impact: misiones semanales del Pase de Batalla. Mundo Deportivo. https://www.mundodeportivo.com/alfabeta/guia/guia-completa-de-genshin-impact-trucos-secretos-con sejos-y-mas/genshin-impact-misiones-semanales-pase-de-batalla
Andrew Hayward. (2022, mayo). ¿Qué es The Sandbox? El Juego NFT del Metaverso de Ethereum. Decrypt. https://decrypt.co/es/resources/que-es-the-sandbox-juego-nft-metaverso-ethereum
Toolify. (2024, febrero). El UGC está cambiando la forma en que jugamos y creamos juegos. https://www.toolify.ai/es/ai-news-es/el-ugc-est-cambiando-la-forma-en-que-jugamos-y-creamos-juegos827867
Preukschat, A. (2018). Fundamentos de la tecnología Blockchain. Blockchain: La Revolución Industrial de Internet (pp.29-36). Planeta Colombiana S.A.
IBM. ¿Qué son los contratos inteligentes en blockchain?. https://www.ibm.com/es-es/topics/smart-contracts
Loza-Vega, Ismael. (2022). Valor y precio de los Non-Fungible Tokens (NFTs) un estudio bibliométrico. Dialnet. https://dialnet.unirioja.es/servlet/articulo?codigo=8804992
Binance Academy. (2022, 23 de octubre). ¿Cuál es la relación entre blockchain y Web3? Binance Academy. https://academy.binance.com/en/articles/what-s-the-relationship-between-blockchain-and-web3
Robert Hoogendoorn. (2023, diciembre). Which Games Have Play-to-Airdrop and What is it?. Dappradar. https://dappradar.com/blog/web3-games-play-to-airdrop-crypto-tokens
Daniels, J., & Verges, J. (2024, 27 de febrero). Introducing the unified thirdweb SDK. Thirdweb. https://blog.thirdweb.com/introducing-unified-thirdweb-sdk/
OpenSea. (n.d.). About us. https://opensea.io/es/about
OpenSea. (n.d.). opensea-js. GitHub. https://github.com/ProjectOpenSea/opensea-js/tree/main
López, A. (2024, 22 de marzo). ¿Qué es Polygon?. Crypto Conexión. https://cryptoconexion.com/polygon/#:~:text=Polygon%2C%20que%20antes%20era%20conocido,Ethere um%20registra%20problemas%20de%20escalabilidad.
React.(n.d.) https://es.react.dev/blog
MDN contributors. (2024, 28 de julio). Express Web Framework (Node.js/JavaScript). Mozilla Developer Network. https://developer.mozilla.org/es/docs/Learn/Server-side/Express_Nodejs
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.acceso.none.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv Abierto (Texto Completo)
http://purl.org/coar/access_right/c_abf2
dc.format.mimetype.none.fl_str_mv pdf
institution Universidad Distrital Francisco José de Caldas
bitstream.url.fl_str_mv https://repository.udistrital.edu.co/bitstreams/a9df4d93-b61c-4b41-b6af-40907c848c11/download
https://repository.udistrital.edu.co/bitstreams/b175fe0c-d3bf-429d-bf89-85ea710054e5/download
https://repository.udistrital.edu.co/bitstreams/715a841d-84b6-4ff2-be25-bb624bba5017/download
https://repository.udistrital.edu.co/bitstreams/0fa026f6-9e69-4b99-b5d3-140c933c878a/download
https://repository.udistrital.edu.co/bitstreams/643868ec-30b9-49e5-88f4-8d5847ece261/download
https://repository.udistrital.edu.co/bitstreams/464053cb-0c8c-4e00-b2e9-38a972d18fc8/download
bitstream.checksum.fl_str_mv 7d7d4335f9e109823c089791a421dd59
93156a71c5332a342a0d09dd9df47990
c1282e56006f7adf10ca7ca6cb31a338
997daf6c648c962d566d7b082dac908d
f3ab70cb47bafd854ebe4d62daa8eb29
395cad45b033327823240aa586484627
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_ 1828164771310993408
spelling Martínez Rodríguez, FernandoRamírez Silva, Andrea LilianaMartínez Rodríguez, Fernando [0000-0002-2016-0787]2025-03-06T19:21:57Z2025-03-06T19:21:57Z2024-11-29http://hdl.handle.net/11349/93351El proyecto de pasantía tuvo como objetivo desarrollar una plataforma web para Ashara Studios que automatizara la gestión de misiones y la entrega de recompensas basadas en NFTs, resolviendo las ineficiencias de su sistema manual. Utilizando una arquitectura basada en el patrón MVC y tecnologías como MongoDB, Node.js, y React.js, se implementaron funcionalidades para que los jugadores enviaran pruebas digitales y los administradores validaran misiones de forma eficiente. Además, se integraron contratos inteligentes en la red Polygon para gestionar las recompensas. La solución mejoró significativamente la experiencia de usuario, incrementó la eficiencia operativa y fue clave durante la temporada 2 de Ashara Studios, destacando en eventos competitivos como The Sandbox Builders’ Challenge. Este trabajo, que utilizó la metodología ágil SCRUM, también implementó métricas estratégicas y estableció una base tecnológica sólida para futuras expansiones, posicionando a Ashara Studios como líder en videojuegos UGC basados en blockchain.The internship project aimed to develop a web platform for Ashara Studios to automate the management of missions and the delivery of NFT-based rewards, addressing inefficiencies in their manual system. Using an architecture based on the MVC pattern and technologies such as MongoDB, Node.js, and React.js, functionalities were implemented to enable players to submit digital evidence and administrators to efficiently validate missions. Additionally, smart contracts on the Polygon network were integrated to manage rewards. The solution significantly improved the user experience, enhanced operational efficiency, and proved crucial during Ashara Studios' Season 2, achieving recognition in competitive events such as The Sandbox Builders’ Challenge. This project, executed under the SCRUM agile methodology, also included strategic metrics and established a robust technological foundation for future scalability, strengthening Ashara Studios’ position as a leader in blockchain-based UGC video games.pdfBlockchainNFTsGestión de MisionesPlataforma WebVideojuegos UGCPasantíaIngeniería de sistemas -- Tesis y disertaciones académicasBlockchainNFTsMission ManagementWeb PlatformUGC Video GamesInternshipConstrucción de una plataforma de gestión de misiones y recompensas basadas en tokens no fungibles (NFTs) para Ashara Studios.Construction of a mission and reward management platform based on non-fungible tokens (NFTs) for Ashara Studios.bachelorThesisPasantíahttp://purl.org/coar/resource_type/c_7a1fAbierto (Texto Completo)http://purl.org/coar/access_right/c_abf2Steven T. Wright. (2018, junio). ‘Rocket League’ director talks Rocket Pass, loot boxes, bonuses and penalties. Variety. https://variety.com/2018/gaming/features/rocket-league-rocket-pass-1202850769/Channel news peru. (2024, febrero). Play to Airdrop: la nueva tendencia de los juegos Web 3.0 llega para transformar la experiencia gamer. https://channelnewsperu.com/play-to-airdrop-la-nueva-tendencia-de-los-juegos-web-3-0-llega-para-tran sformar-la-experiencia-gamerPaula Croft. (2019, abril). Rocket League presenta el Rocket Pass 3 y los Desafíos. Meristation. https://as.com/meristation/2019/04/09/avances/1554818267_283753.htmlAdrian Carrillo. (2021, junio). Genshin Impact: misiones semanales del Pase de Batalla. Mundo Deportivo. https://www.mundodeportivo.com/alfabeta/guia/guia-completa-de-genshin-impact-trucos-secretos-con sejos-y-mas/genshin-impact-misiones-semanales-pase-de-batallaAndrew Hayward. (2022, mayo). ¿Qué es The Sandbox? El Juego NFT del Metaverso de Ethereum. Decrypt. https://decrypt.co/es/resources/que-es-the-sandbox-juego-nft-metaverso-ethereumToolify. (2024, febrero). El UGC está cambiando la forma en que jugamos y creamos juegos. https://www.toolify.ai/es/ai-news-es/el-ugc-est-cambiando-la-forma-en-que-jugamos-y-creamos-juegos827867Preukschat, A. (2018). Fundamentos de la tecnología Blockchain. Blockchain: La Revolución Industrial de Internet (pp.29-36). Planeta Colombiana S.A.IBM. ¿Qué son los contratos inteligentes en blockchain?. https://www.ibm.com/es-es/topics/smart-contractsLoza-Vega, Ismael. (2022). Valor y precio de los Non-Fungible Tokens (NFTs) un estudio bibliométrico. Dialnet. https://dialnet.unirioja.es/servlet/articulo?codigo=8804992Binance Academy. (2022, 23 de octubre). ¿Cuál es la relación entre blockchain y Web3? Binance Academy. https://academy.binance.com/en/articles/what-s-the-relationship-between-blockchain-and-web3Robert Hoogendoorn. (2023, diciembre). Which Games Have Play-to-Airdrop and What is it?. Dappradar. https://dappradar.com/blog/web3-games-play-to-airdrop-crypto-tokensDaniels, J., & Verges, J. (2024, 27 de febrero). Introducing the unified thirdweb SDK. Thirdweb. https://blog.thirdweb.com/introducing-unified-thirdweb-sdk/OpenSea. (n.d.). About us. https://opensea.io/es/aboutOpenSea. (n.d.). opensea-js. GitHub. https://github.com/ProjectOpenSea/opensea-js/tree/mainLópez, A. (2024, 22 de marzo). ¿Qué es Polygon?. Crypto Conexión. https://cryptoconexion.com/polygon/#:~:text=Polygon%2C%20que%20antes%20era%20conocido,Ethere um%20registra%20problemas%20de%20escalabilidad.React.(n.d.) https://es.react.dev/blogMDN contributors. (2024, 28 de julio). Express Web Framework (Node.js/JavaScript). Mozilla Developer Network. https://developer.mozilla.org/es/docs/Learn/Server-side/Express_NodejsORIGINALRamirezSilvaAndreaLiliana2025.pdfRamirezSilvaAndreaLiliana2025.pdfapplication/pdf18089162https://repository.udistrital.edu.co/bitstreams/a9df4d93-b61c-4b41-b6af-40907c848c11/download7d7d4335f9e109823c089791a421dd59MD51RamirezSilvaAndreaLiliana2025Anexos.rarRamirezSilvaAndreaLiliana2025Anexos.rarapplication/octet-stream1151944https://repository.udistrital.edu.co/bitstreams/b175fe0c-d3bf-429d-bf89-85ea710054e5/download93156a71c5332a342a0d09dd9df47990MD52Licencia de uso y publicacion.pdfLicencia de uso y publicacion.pdfapplication/pdf313230https://repository.udistrital.edu.co/bitstreams/715a841d-84b6-4ff2-be25-bb624bba5017/downloadc1282e56006f7adf10ca7ca6cb31a338MD53LICENSElicense.txtlicense.txttext/plain; charset=utf-87167https://repository.udistrital.edu.co/bitstreams/0fa026f6-9e69-4b99-b5d3-140c933c878a/download997daf6c648c962d566d7b082dac908dMD54THUMBNAILRamirezSilvaAndreaLiliana2025.pdf.jpgRamirezSilvaAndreaLiliana2025.pdf.jpgIM Thumbnailimage/jpeg4293https://repository.udistrital.edu.co/bitstreams/643868ec-30b9-49e5-88f4-8d5847ece261/downloadf3ab70cb47bafd854ebe4d62daa8eb29MD55Licencia de uso y publicacion.pdf.jpgLicencia de uso y publicacion.pdf.jpgIM Thumbnailimage/jpeg12282https://repository.udistrital.edu.co/bitstreams/464053cb-0c8c-4e00-b2e9-38a972d18fc8/download395cad45b033327823240aa586484627MD5611349/93351oai:repository.udistrital.edu.co:11349/933512025-03-07 01:01:36.121open.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK