Algoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua
This work presents a GPU algorithm to calculate the acoustic field generated by a circular ultrasonic transducer radiating in water a continuous wave. The acoustic pressure in a space point in front of the transducer is calculated by Rayleigh integral, which uses the Huygens principle to compose the...
- Autores:
-
Lemos Durán, Alberto
Sato, André K.
Silva Jr, Agesinaldo M.
Franco Guzmán, Ediguer Enrique
Buiochi, Flávio
Martins, Thiago C.
Adamowski, Julio C.
Marcos S. G., Tsuzuki
- Tipo de recurso:
- Documento de conferencia en no proceso
- Fecha de publicación:
- 2020
- Institución:
- Universidad Autónoma de Occidente
- Repositorio:
- RED: Repositorio Educativo Digital UAO
- Idioma:
- por
- OAI Identifier:
- oai:red.uao.edu.co:10614/13756
- Acceso en línea:
- https://hdl.handle.net/10614/13756
- Palabra clave:
- Transductores ultrasónicos
Ultrasonic transducers
Ultrasound
Acoustic field
GPU
Rayleigh integral
GFLOPS
- Rights
- openAccess
- License
- Derechos reservados - Universidad Autónoma de Occidente
id |
REPOUAO2_4a8c618ed16ee0b790515971374a88b7 |
---|---|
oai_identifier_str |
oai:red.uao.edu.co:10614/13756 |
network_acronym_str |
REPOUAO2 |
network_name_str |
RED: Repositorio Educativo Digital UAO |
repository_id_str |
|
dc.title.por.fl_str_mv |
Algoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua |
title |
Algoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua |
spellingShingle |
Algoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua Transductores ultrasónicos Ultrasonic transducers Ultrasound Acoustic field GPU Rayleigh integral GFLOPS |
title_short |
Algoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua |
title_full |
Algoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua |
title_fullStr |
Algoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua |
title_full_unstemmed |
Algoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua |
title_sort |
Algoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua |
dc.creator.fl_str_mv |
Lemos Durán, Alberto Sato, André K. Silva Jr, Agesinaldo M. Franco Guzmán, Ediguer Enrique Buiochi, Flávio Martins, Thiago C. Adamowski, Julio C. Marcos S. G., Tsuzuki |
dc.contributor.author.none.fl_str_mv |
Lemos Durán, Alberto Sato, André K. Silva Jr, Agesinaldo M. Franco Guzmán, Ediguer Enrique Buiochi, Flávio Martins, Thiago C. Adamowski, Julio C. Marcos S. G., Tsuzuki |
dc.subject.armarc.spa.fl_str_mv |
Transductores ultrasónicos |
topic |
Transductores ultrasónicos Ultrasonic transducers Ultrasound Acoustic field GPU Rayleigh integral GFLOPS |
dc.subject.armarc.eng.fl_str_mv |
Ultrasonic transducers |
dc.subject.proposal.eng.fl_str_mv |
Ultrasound Acoustic field GPU Rayleigh integral GFLOPS |
description |
This work presents a GPU algorithm to calculate the acoustic field generated by a circular ultrasonic transducer radiating in water a continuous wave. The acoustic pressure in a space point in front of the transducer is calculated by Rayleigh integral, which uses the Huygens principle to compose the field as the sum of contributions from an infinite number of point sources. Because the pressure at each spatial point can be calculated independently, the solution algorithm can run in parallel, taking advantage of the GPU cores. Some experiments were performed in a frequency range from 0.25 to 5.0 MHz. The radiating surface was discretized in order to have a fixed number of elemental areas per wavelength. Results showed the validity of the acoustic fields simulated. In addition, a performance analysis showed that the GPU was 50 times faster than CPU for the most demanding problems. |
publishDate |
2020 |
dc.date.issued.none.fl_str_mv |
2020-12-17 |
dc.date.accessioned.none.fl_str_mv |
2022-04-08T19:04:55Z |
dc.date.available.none.fl_str_mv |
2022-04-08T19:04:55Z |
dc.type.spa.fl_str_mv |
Documento de Conferencia |
dc.type.coar.fl_str_mv |
http://purl.org/coar/resource_type/c_c94f |
dc.type.coarversion.fl_str_mv |
http://purl.org/coar/version/c_b1a7d7d4d402bcce http://purl.org/coar/version/c_dc82b40f9837b551 |
dc.type.coar.eng.fl_str_mv |
http://purl.org/coar/resource_type/c_18cp |
dc.type.content.eng.fl_str_mv |
Text |
dc.type.driver.eng.fl_str_mv |
info:eu-repo/semantics/conferenceObject |
format |
http://purl.org/coar/resource_type/c_18cp |
dc.identifier.uri.none.fl_str_mv |
https://hdl.handle.net/10614/13756 |
url |
https://hdl.handle.net/10614/13756 |
dc.language.iso.spa.fl_str_mv |
por |
language |
por |
dc.relation.conferencedate.spa.fl_str_mv |
23 - 26 de noviembre de 2020 |
dc.relation.conferenceplace.spa.fl_str_mv |
Evento virtual |
dc.relation.ispartofconference.spa.fl_str_mv |
Congresso Brasileiro de Automática - CBA |
dc.relation.references.none.fl_str_mv |
Adamowski, J.C., Buiochi, F., Tsuzuki, M.S.G., P erez, N., Camerini, C.S., and Patusco, C. (2013). Ultrasonic measurement of micrometric wall-thickness loss due to corrosion inside pipes. In IEEE Int Ultrasonics Symp (IUS), 1881-1884. Diaz, M.A., Solovchuk, M.A., and Sheu, T.W.H. (2018). High-performance multi-GPU solver for describing nonlinear acoustic waves in homogeneous thermoviscous media. Comput Fluids, 173, 195-205. Franco, E.E., Andrade, M.A.B., Adamowski, J.C., and Buiochi, F. (2011). Acoustic Beam Modeling of Ultrasonic Transducers and Arrays Using the Impulse Response and the Discrete Representation Methods. J Braz Soc Mech Sci, XXXIII(4), 408-416. Franco, E.E., Barrera, H.M., and La n, S. (2015). 2d liddriven cavity ow simulation using GPU-CUDA with a high-order nite di erence scheme. J Braz Soc Mech Sci, 37(4), 1329-1338. Greenspan, M. (1979). Piston radiator: Some extensions of the theory. J Acoust Soc Am, 65(3), 608-621. He, C. and Hay, A.E. (1993). Near- eld characteristics of circular piston radiators with simple support. J Acoust Soc Am, 94(1), 554-561. Johnson, J., Douze, M., and J egou, H. (2019). Billion-scale similarity search with GPUs. IEEE T Big Data, 1-1. Kinsler, L.E., Frey, A.R., Coppens, A.B., and Sanders, J.V. (1999). Fundamentals of Acoustics, 4th Edition. John Wiley & Sons. Kirkup, S.M. (1994). Computational solution of the acoustic eld surrounding a ba ed panel by the Rayleigh integral method. Appl Math Model, 18(7), 403-407. Lebedev, G., Klimenko, H., Kachkovskiy, S., Konushin, V., Ryabkov, I., and Gromov, A. (2018). Application of arti cial intelligence methods to recognize pathologies on medical images. Procedia Comput Sci, 126, 1171- 1177. Mehra, R., Raghuvanshi, N., Savioja, L., Lin, M.C., and Manocha, D. (2012). An e cient GPU-based time domain solver for the acoustic wave equation. Appl Acoust, 73(2), 83-94. Nvidia (2018). CUDA C programming guide. Technical Report PG-02829-001 v9.1, Nvidia. Patr cio, D.I. and Rieder, R. (2018). Computer vision and arti cial intelligence in precision agriculture for grain crops: A systematic review. Comput Electron Agr, 153, 69-81. Piwakowski, B. and Delannoy, B. (1989). Method for computing spatial pulse response: Time-domain approach. J Acoust Soc Am, 86(6), 2422-2432. San, J.E., Medina, M., Buiochi, F., and Adamowski, J.C. (2006). Numerical modeling of a circular piezoelectric ultrasonic transducer radiating in water. In ABCM Symposium Serie in Mechatronics, volume 2, 458-464. Treeby, B.E. and Cox, B.T. (2010). k-Wave: MATLAB toolbox for the simulation and reconstruction of photoacoustic wave elds. J Biomed Opt, 15(2), 021314. Tsiakas, K.T., Trompoukis, X.S., Asouti, V.G., and Giannakoglou, K.C. (2019). Shape optimization of wind turbine blades using the continuous adjoint method and volumetric NURBS on a GPU cluster. In E. Minisci, M. Vasile, J. Periaux, N.R. Gauger, K.C. Giannakoglou, and D. Quagliarella (eds.), Advances in Evolutionary and Deterministic Methods for Design, Optimization and Control in Engineering and Sciences, 131-144. Springer International Publishing, Cham. Wang, L., Spurzem, R., Aarseth, S., Nitadori, K., Berczik, P., Kouwenhoven, M.B.N., and Naab, T. (2015). nbody6++gpu: ready for the gravitational million-body problem. Monthly Notices of the Royal Astronomical Society, 450(4), 4070-4080. Wang, X., Yin, H., Li, K., and Zhang, C.H. (2018). Implementing acoustic radiation force imaging on GPU using OpenCL. In ICNC-FSKD 2017 - 13th International Conference on Natural Computation, Fuzzy Systems and Knowledge Discovery, 832-836. Weight, J.P. (1984). Ultrasonic beam structures in uid media. J Acoust Soc Am, 76(4), 1184-1191 |
dc.rights.spa.fl_str_mv |
Derechos reservados - Universidad Autónoma de Occidente |
dc.rights.coar.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 |
dc.rights.uri.eng.fl_str_mv |
https://creativecommons.org/licenses/by-nc-nd/4.0/ |
dc.rights.accessrights.eng.fl_str_mv |
info:eu-repo/semantics/openAccess |
dc.rights.creativecommons.spa.fl_str_mv |
Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0) |
rights_invalid_str_mv |
Derechos reservados - Universidad Autónoma de Occidente https://creativecommons.org/licenses/by-nc-nd/4.0/ Atribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0) http://purl.org/coar/access_right/c_abf2 |
eu_rights_str_mv |
openAccess |
dc.format.extent.eng.fl_str_mv |
.pdf |
dc.format.mimetype.eng.fl_str_mv |
application/pdf |
dc.publisher.spa.fl_str_mv |
Sociedade Brasileira de Automática (SBA) |
dc.publisher.place.spa.fl_str_mv |
Campinas/SP Brasil |
dc.source.spa.fl_str_mv |
https://doi.org/10.48011/asba.v2i1.1633 |
institution |
Universidad Autónoma de Occidente |
bitstream.url.fl_str_mv |
https://red.uao.edu.co/bitstreams/4d2dcf0e-a49a-4020-a634-d23de4bad006/download https://red.uao.edu.co/bitstreams/c7ae17f4-1643-4d10-82d4-d0acab5b6f43/download https://red.uao.edu.co/bitstreams/78e0e295-98de-47cc-a79c-671fcf96c5e1/download https://red.uao.edu.co/bitstreams/396e1f93-bed1-4315-b158-3c4a63b362aa/download |
bitstream.checksum.fl_str_mv |
20b5ba22b1117f71589c7318baa2c560 74eeca915fc4668b436521547efe26d5 203527f496b1d2e34a9aa6e6e6620e7d 18d4f409b6deeb2d17df33da4b543043 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Digital Universidad Autonoma de Occidente |
repository.mail.fl_str_mv |
repositorio@uao.edu.co |
_version_ |
1828230174338973696 |
spelling |
Lemos Durán, Albertofbf4ad7894fb45118f72b654eba42e17Sato, André K.4fa1bd111e90a8939cbffd75a8ca7b9dSilva Jr, Agesinaldo M.f4129f0d7f7959249291979d2bb95cd6Franco Guzmán, Ediguer Enriquevirtual::1803-1Buiochi, Fláviob1bdb982d63e34285277106ac50141c5Martins, Thiago C.c8d11993f3b50dc7db5ef5913cbf03eeAdamowski, Julio C.8f3bf0b79b65be0c6fc79021c90651f4Marcos S. G., Tsuzuki0f01fa15b3ca4d6a8b0a942171bef27c2022-04-08T19:04:55Z2022-04-08T19:04:55Z2020-12-17https://hdl.handle.net/10614/13756This work presents a GPU algorithm to calculate the acoustic field generated by a circular ultrasonic transducer radiating in water a continuous wave. The acoustic pressure in a space point in front of the transducer is calculated by Rayleigh integral, which uses the Huygens principle to compose the field as the sum of contributions from an infinite number of point sources. Because the pressure at each spatial point can be calculated independently, the solution algorithm can run in parallel, taking advantage of the GPU cores. Some experiments were performed in a frequency range from 0.25 to 5.0 MHz. The radiating surface was discretized in order to have a fixed number of elemental areas per wavelength. Results showed the validity of the acoustic fields simulated. In addition, a performance analysis showed that the GPU was 50 times faster than CPU for the most demanding problems.Este trabalho apresenta um algoritmo implementado em GPU, para calcular o campo acústico produzido por um transdutor ultrassônico com excitação contı́nua, emitindo em água. A pressão acústica em um ponto do espaço, na frente do transdutor, é calculada mediante a integral de Rayleigh, a qual utiliza o princı́pio de Huygens para considerar o campo de pressão como a soma da contribuição de um número infinito de fontes pontuais. Dado que a pressão em cada ponto do espaço pode ser calculada de forma independente, o algoritmo pode ser executado em paralelo, aproveitando a vantagem dos núcleos da GPU. Foi analisado o desempenho do algoritmo proposto realizando alguns testes na faixa de frequência de 0,25 a 5,0 MHz. A superfı́cie de emissão foi discretizada com a finalidade de obter um determinado número de elementos finitos de área. Foi possı́vel validar os campos acústicos simulados usando o valor teórico da pressão ao longo do eixo de simetria do transdutor. Adicionalmente, a análise de desempenho mostrou que a GPU foi 50 vezes mais rápida que a CPU, para os problemas mais demandantes..pdfapplication/pdfporSociedade Brasileira de Automática (SBA)Campinas/SP BrasilDerechos reservados - Universidad Autónoma de Occidentehttps://creativecommons.org/licenses/by-nc-nd/4.0/info:eu-repo/semantics/openAccessAtribución-NoComercial-SinDerivadas 4.0 Internacional (CC BY-NC-ND 4.0)http://purl.org/coar/access_right/c_abf2https://doi.org/10.48011/asba.v2i1.1633Algoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação ContínuaDocumento de Conferenciahttp://purl.org/coar/resource_type/c_18cphttp://purl.org/coar/resource_type/c_c94fTextinfo:eu-repo/semantics/conferenceObjecthttp://purl.org/coar/version/c_b1a7d7d4d402bccehttp://purl.org/coar/version/c_dc82b40f9837b551Transductores ultrasónicosUltrasonic transducersUltrasoundAcoustic fieldGPURayleigh integralGFLOPS23 - 26 de noviembre de 2020Evento virtualCongresso Brasileiro de Automática - CBAAdamowski, J.C., Buiochi, F., Tsuzuki, M.S.G., P erez, N., Camerini, C.S., and Patusco, C. (2013). Ultrasonic measurement of micrometric wall-thickness loss due to corrosion inside pipes. In IEEE Int Ultrasonics Symp (IUS), 1881-1884.Diaz, M.A., Solovchuk, M.A., and Sheu, T.W.H. (2018). High-performance multi-GPU solver for describing nonlinear acoustic waves in homogeneous thermoviscous media. Comput Fluids, 173, 195-205.Franco, E.E., Andrade, M.A.B., Adamowski, J.C., and Buiochi, F. (2011). Acoustic Beam Modeling of Ultrasonic Transducers and Arrays Using the Impulse Response and the Discrete Representation Methods. J Braz Soc Mech Sci, XXXIII(4), 408-416.Franco, E.E., Barrera, H.M., and La n, S. (2015). 2d liddriven cavity ow simulation using GPU-CUDA with a high-order nite di erence scheme. J Braz Soc Mech Sci, 37(4), 1329-1338.Greenspan, M. (1979). Piston radiator: Some extensions of the theory. J Acoust Soc Am, 65(3), 608-621.He, C. and Hay, A.E. (1993). Near- eld characteristics of circular piston radiators with simple support. J Acoust Soc Am, 94(1), 554-561.Johnson, J., Douze, M., and J egou, H. (2019). Billion-scale similarity search with GPUs. IEEE T Big Data, 1-1.Kinsler, L.E., Frey, A.R., Coppens, A.B., and Sanders, J.V. (1999). Fundamentals of Acoustics, 4th Edition.John Wiley & Sons. Kirkup, S.M. (1994). Computational solution of the acoustic eld surrounding a ba ed panel by the Rayleigh integral method. Appl Math Model, 18(7), 403-407.Lebedev, G., Klimenko, H., Kachkovskiy, S., Konushin, V., Ryabkov, I., and Gromov, A. (2018). Application of arti cial intelligence methods to recognize pathologies on medical images. Procedia Comput Sci, 126, 1171- 1177.Mehra, R., Raghuvanshi, N., Savioja, L., Lin, M.C., and Manocha, D. (2012). An e cient GPU-based time domain solver for the acoustic wave equation. Appl Acoust, 73(2), 83-94.Nvidia (2018). CUDA C programming guide. Technical Report PG-02829-001 v9.1, Nvidia.Patr cio, D.I. and Rieder, R. (2018). Computer vision and arti cial intelligence in precision agriculture for grain crops: A systematic review. Comput Electron Agr, 153, 69-81.Piwakowski, B. and Delannoy, B. (1989). Method for computing spatial pulse response: Time-domain approach. J Acoust Soc Am, 86(6), 2422-2432.San, J.E., Medina, M., Buiochi, F., and Adamowski, J.C. (2006). Numerical modeling of a circular piezoelectric ultrasonic transducer radiating in water. In ABCM Symposium Serie in Mechatronics, volume 2, 458-464.Treeby, B.E. and Cox, B.T. (2010). k-Wave: MATLAB toolbox for the simulation and reconstruction of photoacoustic wave elds. J Biomed Opt, 15(2), 021314.Tsiakas, K.T., Trompoukis, X.S., Asouti, V.G., and Giannakoglou, K.C. (2019). Shape optimization of wind turbine blades using the continuous adjoint method and volumetric NURBS on a GPU cluster. In E. Minisci, M. Vasile, J. Periaux, N.R. Gauger, K.C. Giannakoglou, and D. Quagliarella (eds.), Advances in Evolutionary and Deterministic Methods for Design, Optimization and Control in Engineering and Sciences, 131-144. Springer International Publishing, Cham.Wang, L., Spurzem, R., Aarseth, S., Nitadori, K., Berczik, P., Kouwenhoven, M.B.N., and Naab, T. (2015). nbody6++gpu: ready for the gravitational million-body problem. Monthly Notices of the Royal Astronomical Society, 450(4), 4070-4080.Wang, X., Yin, H., Li, K., and Zhang, C.H. (2018). Implementing acoustic radiation force imaging on GPU using OpenCL. In ICNC-FSKD 2017 - 13th International Conference on Natural Computation, Fuzzy Systems and Knowledge Discovery, 832-836.Weight, J.P. (1984). Ultrasonic beam structures in uid media. J Acoust Soc Am, 76(4), 1184-1191Comunidad generalPublicationff78380a-274b-4973-8760-dee857b38a0dvirtual::1803-1ff78380a-274b-4973-8760-dee857b38a0dvirtual::1803-1https://scholar.google.com/citations?user=4paPIoAAAAAJ&hl=esvirtual::1803-10000-0001-7518-704Xvirtual::1803-1https://scienti.minciencias.gov.co/cvlac/visualizador/generarCurriculoCv.do?cod_rh=0001243730virtual::1803-1LICENSElicense.txtlicense.txttext/plain; charset=utf-81665https://red.uao.edu.co/bitstreams/4d2dcf0e-a49a-4020-a634-d23de4bad006/download20b5ba22b1117f71589c7318baa2c560MD52ORIGINALAlgoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua.pdfAlgoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua.pdfTexto archivo completo del documento de conferencia, PDFapplication/pdf573026https://red.uao.edu.co/bitstreams/c7ae17f4-1643-4d10-82d4-d0acab5b6f43/download74eeca915fc4668b436521547efe26d5MD53TEXTAlgoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua.pdf.txtAlgoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua.pdf.txtExtracted texttext/plain22943https://red.uao.edu.co/bitstreams/78e0e295-98de-47cc-a79c-671fcf96c5e1/download203527f496b1d2e34a9aa6e6e6620e7dMD54THUMBNAILAlgoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua.pdf.jpgAlgoritmo em GPGPU para Acelerar a Determinação do Campo Acústico Produzido por Transdutor Ultrassônico Circular com Excitação Contínua.pdf.jpgGenerated Thumbnailimage/jpeg12493https://red.uao.edu.co/bitstreams/396e1f93-bed1-4315-b158-3c4a63b362aa/download18d4f409b6deeb2d17df33da4b543043MD5510614/13756oai:red.uao.edu.co:10614/137562024-03-05 10:50:46.995https://creativecommons.org/licenses/by-nc-nd/4.0/Derechos reservados - Universidad Autónoma de Occidenteopen.accesshttps://red.uao.edu.coRepositorio Digital Universidad Autonoma de Occidenterepositorio@uao.edu.coRUwgQVVUT1IgYXV0b3JpemEgYSBsYSBVbml2ZXJzaWRhZCBBdXTDs25vbWEgZGUgT2NjaWRlbnRlLCBkZSBmb3JtYSBpbmRlZmluaWRhLCBwYXJhIHF1ZSBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsYSBMZXkgMjMgZGUgMTk4MiwgbGEgTGV5IDQ0IGRlIDE5OTMsIGxhIERlY2lzacOzbiBhbmRpbmEgMzUxIGRlIDE5OTMsIGVsIERlY3JldG8gNDYwIGRlIDE5OTUgeSBkZW3DoXMgbGV5ZXMgeSBqdXJpc3BydWRlbmNpYSB2aWdlbnRlIGFsIHJlc3BlY3RvLCBoYWdhIHB1YmxpY2FjacOzbiBkZSBlc3RlIGNvbiBmaW5lcyBlZHVjYXRpdm9zLiBQQVJBR1JBRk86IEVzdGEgYXV0b3JpemFjacOzbiBhZGVtw6FzIGRlIHNlciB2w6FsaWRhIHBhcmEgbGFzIGZhY3VsdGFkZXMgeSBkZXJlY2hvcyBkZSB1c28gc29icmUgbGEgb2JyYSBlbiBmb3JtYXRvIG8gc29wb3J0ZSBtYXRlcmlhbCwgdGFtYmnDqW4gcGFyYSBmb3JtYXRvIGRpZ2l0YWwsIGVsZWN0csOzbmljbywgdmlydHVhbCwgcGFyYSB1c29zIGVuIHJlZCwgSW50ZXJuZXQsIGV4dHJhbmV0LCBpbnRyYW5ldCwgYmlibGlvdGVjYSBkaWdpdGFsIHkgZGVtw6FzIHBhcmEgY3VhbHF1aWVyIGZvcm1hdG8gY29ub2NpZG8gbyBwb3IgY29ub2Nlci4gRUwgQVVUT1IsIGV4cHJlc2EgcXVlIGVsIGRvY3VtZW50byAodHJhYmFqbyBkZSBncmFkbywgcGFzYW50w61hLCBjYXNvcyBvIHRlc2lzKSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCB5IGxhIGVsYWJvcsOzIHNpbiBxdWVicmFudGFyIG5pIHN1cGxhbnRhciBsb3MgZGVyZWNob3MgZGUgYXV0b3IgZGUgdGVyY2Vyb3MsIHkgZGUgdGFsIGZvcm1hLCBlbCBkb2N1bWVudG8gKHRyYWJham8gZGUgZ3JhZG8sIHBhc2FudMOtYSwgY2Fzb3MgbyB0ZXNpcykgZXMgZGUgc3UgZXhjbHVzaXZhIGF1dG9yw61hIHkgdGllbmUgbGEgdGl0dWxhcmlkYWQgc29icmUgw6lzdGUuIFBBUkFHUkFGTzogZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBhbGd1bmEgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybywgcmVmZXJlbnRlIGEgbG9zIGRlcmVjaG9zIGRlIGF1dG9yIHNvYnJlIGVsIGRvY3VtZW50byAoVHJhYmFqbyBkZSBncmFkbywgUGFzYW50w61hLCBjYXNvcyBvIHRlc2lzKSBlbiBjdWVzdGnDs24sIEVMIEFVVE9SLCBhc3VtaXLDoSBsYSByZXNwb25zYWJpbGlkYWQgdG90YWwsIHkgc2FsZHLDoSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvczsgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgbGEgVW5pdmVyc2lkYWQgIEF1dMOzbm9tYSBkZSBPY2NpZGVudGUgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4gVG9kYSBwZXJzb25hIHF1ZSBjb25zdWx0ZSB5YSBzZWEgZW4gbGEgYmlibGlvdGVjYSBvIGVuIG1lZGlvIGVsZWN0csOzbmljbyBwb2Ryw6EgY29waWFyIGFwYXJ0ZXMgZGVsIHRleHRvIGNpdGFuZG8gc2llbXByZSBsYSBmdWVudGUsIGVzIGRlY2lyIGVsIHTDrXR1bG8gZGVsIHRyYWJham8geSBlbCBhdXRvci4gRXN0YSBhdXRvcml6YWNpw7NuIG5vIGltcGxpY2EgcmVudW5jaWEgYSBsYSBmYWN1bHRhZCBxdWUgdGllbmUgRUwgQVVUT1IgZGUgcHVibGljYXIgdG90YWwgbyBwYXJjaWFsbWVudGUgbGEgb2JyYS4K |