Estudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann
Una de las problemáticas que se tiene actualmente en la mecánica de fluidos computacional conocido en sus siglas en inglés como CFD (Computational Fluid Dynamics) son los altos tiempos de ejecución de cada uno de los procesos y la cantidad de recursos computacionales que se requieren. Uno de los pro...
- Autores:
-
Vargas Torres, María Alejandra
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2023
- Institución:
- Universidad de los Andes
- Repositorio:
- Séneca: repositorio Uniandes
- Idioma:
- spa
- OAI Identifier:
- oai:repositorio.uniandes.edu.co:1992/73450
- Acceso en línea:
- https://hdl.handle.net/1992/73450
- Palabra clave:
- Lattice Boltzmann
Cavity Flow
Mathematica
Python
CFD
HPC
Paralelización
Diferencias Finitas
Ingeniería
- Rights
- openAccess
- License
- Attribution-NonCommercial 4.0 International
id |
UNIANDES2_401c8702aaca26aaf85e5a3daf8351cf |
---|---|
oai_identifier_str |
oai:repositorio.uniandes.edu.co:1992/73450 |
network_acronym_str |
UNIANDES2 |
network_name_str |
Séneca: repositorio Uniandes |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Estudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann |
title |
Estudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann |
spellingShingle |
Estudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann Lattice Boltzmann Cavity Flow Mathematica Python CFD HPC Paralelización Diferencias Finitas Ingeniería |
title_short |
Estudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann |
title_full |
Estudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann |
title_fullStr |
Estudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann |
title_full_unstemmed |
Estudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann |
title_sort |
Estudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann |
dc.creator.fl_str_mv |
Vargas Torres, María Alejandra |
dc.contributor.advisor.none.fl_str_mv |
Castro Barrera, Harold Enrique Toro Gómez, José Rafael |
dc.contributor.author.none.fl_str_mv |
Vargas Torres, María Alejandra |
dc.contributor.researchgroup.none.fl_str_mv |
Facultad de Ingeniería::Grupo de Mecánica Computacional |
dc.subject.keyword.eng.fl_str_mv |
Lattice Boltzmann Cavity Flow Mathematica Python CFD HPC |
topic |
Lattice Boltzmann Cavity Flow Mathematica Python CFD HPC Paralelización Diferencias Finitas Ingeniería |
dc.subject.keyword.spa.fl_str_mv |
Paralelización Diferencias Finitas |
dc.subject.themes.none.fl_str_mv |
Ingeniería |
description |
Una de las problemáticas que se tiene actualmente en la mecánica de fluidos computacional conocido en sus siglas en inglés como CFD (Computational Fluid Dynamics) son los altos tiempos de ejecución de cada uno de los procesos y la cantidad de recursos computacionales que se requieren. Uno de los problemas que tienen estas características es el Cavity Flow, para su estudio se utilizó el método Lattice Boltzmann con sus aproximaciones de vorticidad y velocidad, ambas son altamente paralelizables, teniendo así que se buscó mejorar los tiempos de ejecución y a su vez, en la evaluación de la escalabilidad de la solución para diferentes contextos. Con la aproximación con la vorticidad se pudo comprobar que una estrategia viable para realizar la paralelización es dividir el dominio de estudio, teniendo que para algunas configuraciones se evidencia una mejora en los tiempos de ejecución. Mientras que con la velocidad se requiere buscar nuevas metodologías ya que la forma de abordar la paralelización no arrojó ninguna mejora. Finalmente, comparando las implementaciones en Python y Mathematica se encontró que para la velocidad se obtuvo una mejora de tiempos con el primer lenguaje, esto pudo ser resultado de las optimizaciones que tiene implementadas la librería numpy al realizar sus operaciones. Para el de vorticidad, la implementación en Python en la que se afecta cada elemento por separado suele ser más lento que la implementación que se encuentra en Mathematica. |
publishDate |
2023 |
dc.date.issued.none.fl_str_mv |
2023-12-12 |
dc.date.accessioned.none.fl_str_mv |
2024-01-25T13:17:11Z |
dc.date.available.none.fl_str_mv |
2024-01-25T13:17:11Z |
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/73450 |
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/73450 |
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 |
spa |
language |
spa |
dc.relation.references.none.fl_str_mv |
I. Kissami, «High Performance Computational Fluid Dynamics on Clusters and Clouds : the ADAPT Experience,» Université Sorbonne Paris, Paris, 2017. C. Körner, T. Pohl, U. Rüde, N. Thürey y T. Zeiser, «Parallel Lattice Boltzmann Methods for CFD Applications,» Lecture Notes in Computational Science and Engineering, 2006. M. BOUBAKER, «Numerical simulation using Lattice Boltzmann,» KTH, 2021. A. Carrasco Boix, «Application of the Lattice Boltzmann Method to Issues of Coolant Flows in Nuclear Power Reactors,» TUM, 2013. P. Mora, G. Morra y D. Yuen A., «A concise python implementation of the lattice Boltzmann method on HPC for geo-fluid flow,» Geophysical Journal International, vol. 220, nº 1, pp. 682-702, 2019. G. Amati y F. Massaioli, «Serial and parallel issues for a lattice boltzmann method code: a performance point of view,» de Parallel CFD, Italia, 2004. S. Pédraza Rodriguez, «Análisis de transientes en cavidades cuadradas y profundas para diferentes números de Re mediante LBM,» Univesidad de los Andes, Bogotá D.C., 2010. S. Chen, J. Tölke y M. Krafczyk, «A new method for the numerical solution of vorticity–streamfunction formulations,» Comput. Methods Appl. Mech. Engrg., vol. 198, nº 2, pp. 367-376, 2008. S. Cheng, «A large-eddy-based lattice Boltzmann model for turbulent flow simulation,» Applied Mathematics and Computation , vol. 215, nº 2, pp. 591-598, 2009. J.R. Toro Gomez, «Código vorticidad Lattice Boltzmann, Mathematica» J.R. Toro Gomez, «Código velocidad Lattice Boltzmann, Mathematica» |
dc.rights.en.fl_str_mv |
Attribution-NonCommercial 4.0 International |
dc.rights.uri.none.fl_str_mv |
http://creativecommons.org/licenses/by-nc/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 4.0 International http://creativecommons.org/licenses/by-nc/4.0/ http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.none.fl_str_mv |
44 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 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/7fb5443b-2818-4046-8c84-c2fda0da5911/download https://repositorio.uniandes.edu.co/bitstreams/f3674d7a-dfc8-4051-b554-77645ba09b34/download https://repositorio.uniandes.edu.co/bitstreams/453b4e6c-a3b6-4928-9305-698532de0209/download https://repositorio.uniandes.edu.co/bitstreams/833988b6-7e07-489d-ab09-58cae1cf5dc6/download https://repositorio.uniandes.edu.co/bitstreams/6299648c-c095-404c-9214-273b456612f9/download https://repositorio.uniandes.edu.co/bitstreams/f3174ca0-a660-4c1c-94fa-99b76d5af55d/download https://repositorio.uniandes.edu.co/bitstreams/89c62de6-5d5d-4a74-aae9-f9add2cfd8b8/download https://repositorio.uniandes.edu.co/bitstreams/45112f54-5fbc-4e44-a54b-eaf69aca0087/download |
bitstream.checksum.fl_str_mv |
7a39a5e57e59594e7c0cd571d68e223a cde5433a69657208b3c2db24b63e4e9e 24013099e9e6abb1575dc6ce0855efd5 ae9e573a68e7f92501b6913cc846c39f 7f2bcd93cfe278808cce2a9ff5a04ff8 1a2f99e5518d3eddf98cf87f1e094e68 b582c5d3e193fa1719232961d1d8ffe6 e09bd9cd341af2a276fdc5ff80f798f3 |
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_ |
1812134065554325504 |
spelling |
Castro Barrera, Harold Enriquevirtual::133-1Toro Gómez, José Rafaelvirtual::134-1Vargas Torres, María AlejandraFacultad de Ingeniería::Grupo de Mecánica Computacional2024-01-25T13:17:11Z2024-01-25T13:17:11Z2023-12-12https://hdl.handle.net/1992/73450instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/Una de las problemáticas que se tiene actualmente en la mecánica de fluidos computacional conocido en sus siglas en inglés como CFD (Computational Fluid Dynamics) son los altos tiempos de ejecución de cada uno de los procesos y la cantidad de recursos computacionales que se requieren. Uno de los problemas que tienen estas características es el Cavity Flow, para su estudio se utilizó el método Lattice Boltzmann con sus aproximaciones de vorticidad y velocidad, ambas son altamente paralelizables, teniendo así que se buscó mejorar los tiempos de ejecución y a su vez, en la evaluación de la escalabilidad de la solución para diferentes contextos. Con la aproximación con la vorticidad se pudo comprobar que una estrategia viable para realizar la paralelización es dividir el dominio de estudio, teniendo que para algunas configuraciones se evidencia una mejora en los tiempos de ejecución. Mientras que con la velocidad se requiere buscar nuevas metodologías ya que la forma de abordar la paralelización no arrojó ninguna mejora. Finalmente, comparando las implementaciones en Python y Mathematica se encontró que para la velocidad se obtuvo una mejora de tiempos con el primer lenguaje, esto pudo ser resultado de las optimizaciones que tiene implementadas la librería numpy al realizar sus operaciones. Para el de vorticidad, la implementación en Python en la que se afecta cada elemento por separado suele ser más lento que la implementación que se encuentra en Mathematica.Ingeniero de Sistemas y ComputaciónPregradoMecánica de Fluidos44 páginasapplication/pdfspaUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería Sistemas y ComputaciónAttribution-NonCommercial 4.0 Internationalhttp://creativecommons.org/licenses/by-nc/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Estudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – BoltzmannTrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/redcol/resource_type/TPLattice BoltzmannCavity FlowMathematicaPythonCFDHPCParalelizaciónDiferencias FinitasIngenieríaI. Kissami, «High Performance Computational Fluid Dynamics on Clusters and Clouds : the ADAPT Experience,» Université Sorbonne Paris, Paris, 2017.C. Körner, T. Pohl, U. Rüde, N. Thürey y T. Zeiser, «Parallel Lattice Boltzmann Methods for CFD Applications,» Lecture Notes in Computational Science and Engineering, 2006.M. BOUBAKER, «Numerical simulation using Lattice Boltzmann,» KTH, 2021.A. Carrasco Boix, «Application of the Lattice Boltzmann Method to Issues of Coolant Flows in Nuclear Power Reactors,» TUM, 2013.P. Mora, G. Morra y D. Yuen A., «A concise python implementation of the lattice Boltzmann method on HPC for geo-fluid flow,» Geophysical Journal International, vol. 220, nº 1, pp. 682-702, 2019.G. Amati y F. Massaioli, «Serial and parallel issues for a lattice boltzmann method code: a performance point of view,» de Parallel CFD, Italia, 2004.S. Pédraza Rodriguez, «Análisis de transientes en cavidades cuadradas y profundas para diferentes números de Re mediante LBM,» Univesidad de los Andes, Bogotá D.C., 2010.S. Chen, J. Tölke y M. Krafczyk, «A new method for the numerical solution of vorticity–streamfunction formulations,» Comput. Methods Appl. Mech. Engrg., vol. 198, nº 2, pp. 367-376, 2008.S. Cheng, «A large-eddy-based lattice Boltzmann model for turbulent flow simulation,» Applied Mathematics and Computation , vol. 215, nº 2, pp. 591-598, 2009.J.R. Toro Gomez, «Código vorticidad Lattice Boltzmann, Mathematica»J.R. Toro Gomez, «Código velocidad Lattice Boltzmann, Mathematica»201123148Publicationhttps://scholar.google.es/citations?user=YYKMZ3UAAAAJvirtual::133-1https://scholar.google.es/citations?user=Za3EdHEAAAAJvirtual::134-10000-0002-7586-9419virtual::133-10000-0002-0169-4193virtual::134-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0000487457virtual::133-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0001369468virtual::134-1a8994168-982a-4fa4-a34f-6f053597957avirtual::133-105b34f47-a7b2-4a0f-a2a8-645709433eb1virtual::134-1a8994168-982a-4fa4-a34f-6f053597957avirtual::133-105b34f47-a7b2-4a0f-a2a8-645709433eb1virtual::134-1ORIGINALEstudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann.pdfEstudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann.pdfapplication/pdf2600806https://repositorio.uniandes.edu.co/bitstreams/7fb5443b-2818-4046-8c84-c2fda0da5911/download7a39a5e57e59594e7c0cd571d68e223aMD53Formato Autorización.pdfFormato Autorización.pdfHIDEapplication/pdf5175195https://repositorio.uniandes.edu.co/bitstreams/f3674d7a-dfc8-4051-b554-77645ba09b34/downloadcde5433a69657208b3c2db24b63e4e9eMD52CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8914https://repositorio.uniandes.edu.co/bitstreams/453b4e6c-a3b6-4928-9305-698532de0209/download24013099e9e6abb1575dc6ce0855efd5MD54LICENSElicense.txtlicense.txttext/plain; charset=utf-82535https://repositorio.uniandes.edu.co/bitstreams/833988b6-7e07-489d-ab09-58cae1cf5dc6/downloadae9e573a68e7f92501b6913cc846c39fMD55TEXTEstudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann.pdf.txtEstudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann.pdf.txtExtracted texttext/plain68394https://repositorio.uniandes.edu.co/bitstreams/6299648c-c095-404c-9214-273b456612f9/download7f2bcd93cfe278808cce2a9ff5a04ff8MD56Formato Autorización.pdf.txtFormato Autorización.pdf.txtExtracted texttext/plain103https://repositorio.uniandes.edu.co/bitstreams/f3174ca0-a660-4c1c-94fa-99b76d5af55d/download1a2f99e5518d3eddf98cf87f1e094e68MD58THUMBNAILEstudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann.pdf.jpgEstudio de la escalabilidad en diferentes arquitecturas para el problema de Lattice – Boltzmann.pdf.jpgGenerated Thumbnailimage/jpeg8547https://repositorio.uniandes.edu.co/bitstreams/89c62de6-5d5d-4a74-aae9-f9add2cfd8b8/downloadb582c5d3e193fa1719232961d1d8ffe6MD57Formato Autorización.pdf.jpgFormato Autorización.pdf.jpgGenerated Thumbnailimage/jpeg10927https://repositorio.uniandes.edu.co/bitstreams/45112f54-5fbc-4e44-a54b-eaf69aca0087/downloade09bd9cd341af2a276fdc5ff80f798f3MD591992/73450oai:repositorio.uniandes.edu.co:1992/734502024-02-16 15:36:21.146http://creativecommons.org/licenses/by-nc/4.0/Attribution-NonCommercial 4.0 Internationalopen.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coPGgzPjxzdHJvbmc+RGVzY2FyZ28gZGUgUmVzcG9uc2FiaWxpZGFkIC0gTGljZW5jaWEgZGUgQXV0b3JpemFjacOzbjwvc3Ryb25nPjwvaDM+CjxwPjxzdHJvbmc+UG9yIGZhdm9yIGxlZXIgYXRlbnRhbWVudGUgZXN0ZSBkb2N1bWVudG8gcXVlIHBlcm1pdGUgYWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBTw6luZWNhIHJlcHJvZHVjaXIgeSBkaXN0cmlidWlyIGxvcyByZWN1cnNvcyBkZSBpbmZvcm1hY2nDs24gZGVwb3NpdGFkb3MgbWVkaWFudGUgbGEgYXV0b3JpemFjacOzbiBkZSBsb3Mgc2lndWllbnRlcyB0w6lybWlub3M6PC9zdHJvbmc+PC9wPgo8cD5Db25jZWRhIGxhIGxpY2VuY2lhIGRlIGRlcMOzc2l0byBlc3TDoW5kYXIgc2VsZWNjaW9uYW5kbyBsYSBvcGNpw7NuIDxzdHJvbmc+J0FjZXB0YXIgbG9zIHTDqXJtaW5vcyBhbnRlcmlvcm1lbnRlIGRlc2NyaXRvcyc8L3N0cm9uZz4geSBjb250aW51YXIgZWwgcHJvY2VzbyBkZSBlbnbDrW8gbWVkaWFudGUgZWwgYm90w7NuIDxzdHJvbmc+J1NpZ3VpZW50ZScuPC9zdHJvbmc+PC9wPgo8aHI+CjxwPllvLCBlbiBtaSBjYWxpZGFkIGRlIGF1dG9yIGRlbCB0cmFiYWpvIGRlIHRlc2lzLCBtb25vZ3JhZsOtYSBvIHRyYWJham8gZGUgZ3JhZG8sIGhhZ28gZW50cmVnYSBkZWwgZWplbXBsYXIgcmVzcGVjdGl2byB5IGRlIHN1cyBhbmV4b3MgZGUgc2VyIGVsIGNhc28sIGVuIGZvcm1hdG8gZGlnaXRhbCB5L28gZWxlY3Ryw7NuaWNvIHkgYXV0b3Jpem8gYSBsYSBVbml2ZXJzaWRhZCBkZSBsb3MgQW5kZXMgcGFyYSBxdWUgcmVhbGljZSBsYSBwdWJsaWNhY2nDs24gZW4gZWwgU2lzdGVtYSBkZSBCaWJsaW90ZWNhcyBvIGVuIGN1YWxxdWllciBvdHJvIHNpc3RlbWEgbyBiYXNlIGRlIGRhdG9zIHByb3BpbyBvIGFqZW5vIGEgbGEgVW5pdmVyc2lkYWQgeSBwYXJhIHF1ZSBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgTGV5IDQ0IGRlIDE5OTMsIERlY2lzacOzbiBBbmRpbmEgMzUxIGRlIDE5OTMsIERlY3JldG8gNDYwIGRlIDE5OTUgeSBkZW3DoXMgbm9ybWFzIGdlbmVyYWxlcyBzb2JyZSBsYSBtYXRlcmlhLCB1dGlsaWNlIGVuIHRvZGFzIHN1cyBmb3JtYXMsIGxvcyBkZXJlY2hvcyBwYXRyaW1vbmlhbGVzIGRlIHJlcHJvZHVjY2nDs24sIGNvbXVuaWNhY2nDs24gcMO6YmxpY2EsIHRyYW5zZm9ybWFjacOzbiB5IGRpc3RyaWJ1Y2nDs24gKGFscXVpbGVyLCBwcsOpc3RhbW8gcMO6YmxpY28gZSBpbXBvcnRhY2nDs24pIHF1ZSBtZSBjb3JyZXNwb25kZW4gY29tbyBjcmVhZG9yIGRlIGxhIG9icmEgb2JqZXRvIGRlbCBwcmVzZW50ZSBkb2N1bWVudG8uPC9wPgo8cD5MYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGVtaXRlIGVuIGNhbGlkYWQgZGUgYXV0b3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50byB5IG5vIGNvcnJlc3BvbmRlIGEgY2VzacOzbiBkZSBkZXJlY2hvcywgc2lubyBhIGxhIGF1dG9yaXphY2nDs24gZGUgdXNvIGFjYWTDqW1pY28gZGUgY29uZm9ybWlkYWQgY29uIGxvIGFudGVyaW9ybWVudGUgc2XDsWFsYWRvLiBMYSBwcmVzZW50ZSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgZXh0ZW5zaXZhIG5vIHNvbG8gYSBsYXMgZmFjdWx0YWRlcyB5IGRlcmVjaG9zIGRlIHVzbyBzb2JyZSBsYSBvYnJhIGVuIGZvcm1hdG8gbyBzb3BvcnRlIG1hdGVyaWFsLCBzaW5vIHRhbWJpw6luIHBhcmEgZm9ybWF0byBlbGVjdHLDs25pY28sIHkgZW4gZ2VuZXJhbCBwYXJhIGN1YWxxdWllciBmb3JtYXRvIGNvbm9jaWRvIG8gcG9yIGNvbm9jZXIuPC9wPgo8cD5FbCBhdXRvciwgbWFuaWZpZXN0YSBxdWUgbGEgb2JyYSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCB5IGxhIHJlYWxpesOzIHNpbiB2aW9sYXIgbyB1c3VycGFyIGRlcmVjaG9zIGRlIGF1dG9yIGRlIHRlcmNlcm9zLCBwb3IgbG8gdGFudG8sIGxhIG9icmEgZXMgZGUgc3UgZXhjbHVzaXZhIGF1dG9yw61hIHkgdGllbmUgbGEgdGl0dWxhcmlkYWQgc29icmUgbGEgbWlzbWEuPC9wPgo8cD5FbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLjwvcD4KPHA+U2kgdGllbmUgYWxndW5hIGR1ZGEgc29icmUgbGEgbGljZW5jaWEsIHBvciBmYXZvciwgY29udGFjdGUgY29uIGVsIDxhIGhyZWY9Im1haWx0bzpiaWJsaW90ZWNhQHVuaWFuZGVzLmVkdS5jbyIgdGFyZ2V0PSJfYmxhbmsiPkFkbWluaXN0cmFkb3IgZGVsIFNpc3RlbWEuPC9hPjwvcD4K |