Detección de videos multi-rostro manipulados por deepfake a partir de aprendizaje profundo

Este proyecto tiene como propósito el desarrollo de un modelo que permita clasificar los rostros de un video como reales o alterados por DeepFake. Para esto se hace uso del aprendizaje profundo con el fin de construir un modelo híbrido que pueda clasificar rostros de un video a través de entrenamien...

Full description

Autores:
Ballesteros Pastrán, Santiago
Jiménez Varón, Catalina
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2022
Institución:
Universidad de los Andes
Repositorio:
Séneca: repositorio Uniandes
Idioma:
spa
OAI Identifier:
oai:repositorio.uniandes.edu.co:1992/60261
Acceso en línea:
http://hdl.handle.net/1992/60261
Palabra clave:
Aprendizaje profundo
Deep Learning
Arquitectura hibrida (cnn-rnn)
Hybrid arquitecture (cnn-rnn)
Clasificación multi-rostro
Multi-face classification
Procesamiento de videos
Video processing
Transferencia del aprendizaje
Transfer learning
Ingeniería
Rights
openAccess
License
Atribución 4.0 Internacional
id UNIANDES2_a3fa7bc990982d438b626a99c18c794b
oai_identifier_str oai:repositorio.uniandes.edu.co:1992/60261
network_acronym_str UNIANDES2
network_name_str Séneca: repositorio Uniandes
repository_id_str
dc.title.none.fl_str_mv Detección de videos multi-rostro manipulados por deepfake a partir de aprendizaje profundo
title Detección de videos multi-rostro manipulados por deepfake a partir de aprendizaje profundo
spellingShingle Detección de videos multi-rostro manipulados por deepfake a partir de aprendizaje profundo
Aprendizaje profundo
Deep Learning
Arquitectura hibrida (cnn-rnn)
Hybrid arquitecture (cnn-rnn)
Clasificación multi-rostro
Multi-face classification
Procesamiento de videos
Video processing
Transferencia del aprendizaje
Transfer learning
Ingeniería
title_short Detección de videos multi-rostro manipulados por deepfake a partir de aprendizaje profundo
title_full Detección de videos multi-rostro manipulados por deepfake a partir de aprendizaje profundo
title_fullStr Detección de videos multi-rostro manipulados por deepfake a partir de aprendizaje profundo
title_full_unstemmed Detección de videos multi-rostro manipulados por deepfake a partir de aprendizaje profundo
title_sort Detección de videos multi-rostro manipulados por deepfake a partir de aprendizaje profundo
dc.creator.fl_str_mv Ballesteros Pastrán, Santiago
Jiménez Varón, Catalina
dc.contributor.advisor.none.fl_str_mv Núñez Castro, Haydemar María
dc.contributor.author.none.fl_str_mv Ballesteros Pastrán, Santiago
Jiménez Varón, Catalina
dc.subject.keyword.none.fl_str_mv Aprendizaje profundo
Deep Learning
Arquitectura hibrida (cnn-rnn)
Hybrid arquitecture (cnn-rnn)
Clasificación multi-rostro
Multi-face classification
Procesamiento de videos
Video processing
Transferencia del aprendizaje
Transfer learning
topic Aprendizaje profundo
Deep Learning
Arquitectura hibrida (cnn-rnn)
Hybrid arquitecture (cnn-rnn)
Clasificación multi-rostro
Multi-face classification
Procesamiento de videos
Video processing
Transferencia del aprendizaje
Transfer learning
Ingeniería
dc.subject.themes.es_CO.fl_str_mv Ingeniería
description Este proyecto tiene como propósito el desarrollo de un modelo que permita clasificar los rostros de un video como reales o alterados por DeepFake. Para esto se hace uso del aprendizaje profundo con el fin de construir un modelo híbrido que pueda clasificar rostros de un video a través de entrenamiento supervisado. La arquitectura propuesta está compuesta por una red neuronal convolucional (CNN), la cual se utiliza como extractor de características, y una red recurrente para la clasificación. Tras probar diferentes variaciones de RNN con la red pre entrenada InceptionV3 se encontró que la mejor se basa en una GRU unidireccional.
publishDate 2022
dc.date.accessioned.none.fl_str_mv 2022-08-29T18:28:03Z
dc.date.available.none.fl_str_mv 2022-08-29T18:28:03Z
dc.date.issued.none.fl_str_mv 2022-08-12
dc.type.es_CO.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.es_CO.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 http://hdl.handle.net/1992/60261
dc.identifier.instname.es_CO.fl_str_mv instname:Universidad de los Andes
dc.identifier.reponame.es_CO.fl_str_mv reponame:Repositorio Institucional Séneca
dc.identifier.repourl.es_CO.fl_str_mv repourl:https://repositorio.uniandes.edu.co/
url http://hdl.handle.net/1992/60261
identifier_str_mv instname:Universidad de los Andes
reponame:Repositorio Institucional Séneca
repourl:https://repositorio.uniandes.edu.co/
dc.language.iso.es_CO.fl_str_mv spa
language spa
dc.relation.references.es_CO.fl_str_mv Statista. (2019, April 17). Infografía: A la espera de un big bang de datos. Statista Infografías. Retrieved October 7, 2021, from https://es.statista.com/grafico/17734/cantidad-real-y-prevista-de-datos-generados-en-todo-el-mundo/.
Ipsos. (2019, June 11). Fake News: A Global Epidemic Vast Majority (86%) of Online Global Citizens Have Been Exposed to it. Ipsos. Retrieved October 7, 2021, from https://www.ipsos.com/en-us/news-polls/cigi-fake-news-global-epidemic.
Westerlund, M. (2019). The emergence of deepfake technology: A review. Technology Innovation Management Review.
Ballesteros, S., Baron, D., Mejia, M., Portocarrero, L. (Dic, 2021). Desarrollo de un algoritmo de Machine Learning para la detección de contenido multimedia generado por medio de DeepFake.
Masood, M., Nawaz, M., Malik, K. M., Javed, A., & Irtaza, A. (2021). Deepfakes Generation and Detection: State-of-the-art, open challenges, countermeasures, and way forward. arXiv preprint arXiv:2103.00484.
Colaner, N. & Quinn, .M.J (2020). Deepfakes and the Value-Neutrality Thesis Retrieved October 7, 2021 from https://www.seattleu.edu/ethics-and-technology/viewpoints/deepfakes-and-the-value-neutrality-thesis.html
Colak, B. (2021). Legal Issues of DeepFakes. Retrieved October 7, 2021 from https://www.internetjustsociety.org/legal-issues-of deepfakes
Chesney, R., and Citron, D. K. (2018). Deep fakes: a looming challenge for privacy, democracy, and national security. https://dx.doi.org/10.2139/ssrn.3213954.
De Lima, O., Franklin, S., Basu, S., Karwoski, B., and George, A. (2020). Deepfake detection using spatiotemporal convolutional networks. arXiv preprint arXiv:2006.14749.
Korshunov, P., and Marcel, S. (2019). Vulnerability assessment and detection of deepfake videos. In The 12th IAPR International Conference on Biometrics (ICB), pp. 1-6.
Faceswap-GAN. Available at https://github.com/shaoanlu/faceswap-GAN.
VidTIMIT database. Available at http://conradsanderson.id.au/vidtimit/
Parkhi, O. M., Vedaldi, A., and Zisserman, A. (2015, September). Deep face recognition. In Proceedings of the British Machine Vision Conference (BMVC) (pp. 41.1-41.12).
FaceNet. Available at https://github.com/davidsandberg/facenet.
Schroff, F., Kalenichenko, D., and Philbin, J. (2015). Facenet: A unified embedding for face recognition and clustering. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 815-823).
Chung, J. S., Senior, A., Vinyals, O., and Zisserman, A. (2017, July). Lip reading sentences in the wild. In 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (pp. 3444-3453).
Korshunov, P., and Marcel, S. (2018, September). Speaker inconsistency detection in tampered video. In 2018 26th European Signal Processing Conference (EUSIPCO) (pp. 2375- 2379). IEEE.
Galbally, J., and Marcel, S. (2014, August). Face anti-spoofing based on general image quality assessment. In 2014 22nd International Conference on Pattern Recognition (pp. 1173- 1178). IEEE.
Sabir, E., Cheng, J., Jaiswal, A., AbdAlmageed, W., Masi, I., and Natarajan, P. (2019). Recurrent convolutional strategies for face manipulation detection in videos. In Proceedings of the IEEE Conference on Comp
Huang, G., Liu, Z., Van Der Maaten, L., and Weinberger, K. Q. (2017). Densely connected convolutional networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 4700-4708).
Cho, K., van Merrienboer, B., Gulcehre, C., Bahdanau, D., Bougares, F., Schwenk, H., and Bengio, Y. (2014, October). Learning phrase representations using RNN encoder ecoder for statistical machine translation. In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp.1724-1734)
Hsu, C. C., Lee, C. Y., and Zhuang, Y. X. (2018, December). Learning to detect fake face images in the wild. In 2018 International Symposium on Computer, Consumer and Control (IS3C) (pp. 388-391). IEEE.
Deepfake Detection Challenge. Kaggle. Available at: https://www.kaggle.com/c/deepfake-detection-challenge/data
opencv. opencv. Available at: https://github.com/opencv/opencv.
Rcmalli, Keras Vgg Face. Github. Available at: https://github.com/rcmalli/keras-vggface
Kumar, A. (2021, December). Identifying Faces with MTCNN and VggFace. Available at: https://medium.com/swlh/identifying faces-with-mtcnn-and-vggface-9d0d4927cccf
mariia_vasyleha, keras_vggface: No module named 'keras.engine.topology'. Available at:https://stackoverflow.com/questions/68862735/keras-vggface-no-module-named-keras-engine-topology
Santiagobp99. Flask-Kubernets-Deepfake. Available at: https://github.com/santiagobp99/Flask-Kubernets Deepfake/tree/main/usr/ML/app
You Won't Believe What Obama Says In This Video! BuzzFeedVideo. Available at: https://www.youtube.com/watch?v=cQ54GDm1eL0
dc.rights.license.spa.fl_str_mv Atribución 4.0 Internacional
dc.rights.uri.*.fl_str_mv http://creativecommons.org/licenses/by/4.0/
dc.rights.accessrights.spa.fl_str_mv info:eu-repo/semantics/openAccess
dc.rights.coar.spa.fl_str_mv http://purl.org/coar/access_right/c_abf2
rights_invalid_str_mv Atribución 4.0 Internacional
http://creativecommons.org/licenses/by/4.0/
http://purl.org/coar/access_right/c_abf2
eu_rights_str_mv openAccess
dc.format.extent.es_CO.fl_str_mv 15 páginas
dc.format.mimetype.es_CO.fl_str_mv application/pdf
dc.publisher.es_CO.fl_str_mv Universidad de los Andes
dc.publisher.program.es_CO.fl_str_mv Ingeniería de Sistemas y Computación
dc.publisher.faculty.es_CO.fl_str_mv Facultad de Ingeniería
dc.publisher.department.es_CO.fl_str_mv Departamento de Ingeniería Sistemas y Computación
institution Universidad de los Andes
bitstream.url.fl_str_mv https://repositorio.uniandes.edu.co/bitstreams/d423d21a-0216-46a6-96e8-dcc4b33d2531/download
https://repositorio.uniandes.edu.co/bitstreams/7537b377-2d00-4021-b801-09784490fce5/download
https://repositorio.uniandes.edu.co/bitstreams/322f7a58-8dc5-4901-9fa6-e89058d53aa0/download
https://repositorio.uniandes.edu.co/bitstreams/a642a86a-7e9a-4800-baa1-b246071795af/download
https://repositorio.uniandes.edu.co/bitstreams/217e0c8f-89dc-4087-a04a-a9cfa32ef3f9/download
https://repositorio.uniandes.edu.co/bitstreams/166ea939-e924-4b85-a123-bb0240662ffc/download
https://repositorio.uniandes.edu.co/bitstreams/2c71013e-13a6-48f8-a69c-6aeac37042ff/download
https://repositorio.uniandes.edu.co/bitstreams/3b0233a7-b09c-4b2e-baed-c993f82794f0/download
bitstream.checksum.fl_str_mv 0a1cc1f4469fa646da015ec04c438b1c
1772d9c87f75ed8d8200b2fd1aca6793
8dd974dad369a957feb8fa86ab66e347
046af7f856bca38aa70cb59cf25c4cc1
5aa5c691a1ffe97abd12c2966efcb8d6
0175ea4a2d4caec4bbcc37e300941108
5c29b58d29ef3a3d59a80bc3e60832c2
68b329da9893e34099c7d8ad5cb9c940
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_ 1812134032838754304
spelling Atribución 4.0 Internacionalhttp://creativecommons.org/licenses/by/4.0/info:eu-repo/semantics/openAccesshttp://purl.org/coar/access_right/c_abf2Núñez Castro, Haydemar Maríacc9e5e8a-b358-47ff-8849-0edf4fa85799600Ballesteros Pastrán, Santiagoc7f42f21-cbb0-4e47-923d-ce2b36f9e27a600Jiménez Varón, Catalinaa20f624e-0ecc-4281-983b-ace2cf4e47dd6002022-08-29T18:28:03Z2022-08-29T18:28:03Z2022-08-12http://hdl.handle.net/1992/60261instname:Universidad de los Andesreponame:Repositorio Institucional Sénecarepourl:https://repositorio.uniandes.edu.co/Este proyecto tiene como propósito el desarrollo de un modelo que permita clasificar los rostros de un video como reales o alterados por DeepFake. Para esto se hace uso del aprendizaje profundo con el fin de construir un modelo híbrido que pueda clasificar rostros de un video a través de entrenamiento supervisado. La arquitectura propuesta está compuesta por una red neuronal convolucional (CNN), la cual se utiliza como extractor de características, y una red recurrente para la clasificación. Tras probar diferentes variaciones de RNN con la red pre entrenada InceptionV3 se encontró que la mejor se basa en una GRU unidireccional.The purpose of this project is the development of a model that allows classifying the faces of a video as real or altered by DeepFake. For this, deep learning is used in order to build a hybrid model that can classify faces of a video through supervised training. The proposed architecture is composed of a convolutional neural network (CNN), which is used as a feature extractor, and a recurrent network for classification. After testing different variations of RNN with the pre-trained InceptionV3 network, it was found that the best is based on a unidirectional GRU.Ingeniero de Sistemas y ComputaciónPregrado15 páginasapplication/pdfspaUniversidad de los AndesIngeniería de Sistemas y ComputaciónFacultad de IngenieríaDepartamento de Ingeniería Sistemas y ComputaciónDetección de videos multi-rostro manipulados por deepfake a partir de aprendizaje profundoTrabajo de grado - Pregradoinfo:eu-repo/semantics/bachelorThesisinfo:eu-repo/semantics/acceptedVersionhttp://purl.org/coar/resource_type/c_7a1fTexthttp://purl.org/redcol/resource_type/TPAprendizaje profundoDeep LearningArquitectura hibrida (cnn-rnn)Hybrid arquitecture (cnn-rnn)Clasificación multi-rostroMulti-face classificationProcesamiento de videosVideo processingTransferencia del aprendizajeTransfer learningIngenieríaStatista. (2019, April 17). Infografía: A la espera de un big bang de datos. Statista Infografías. Retrieved October 7, 2021, from https://es.statista.com/grafico/17734/cantidad-real-y-prevista-de-datos-generados-en-todo-el-mundo/.Ipsos. (2019, June 11). Fake News: A Global Epidemic Vast Majority (86%) of Online Global Citizens Have Been Exposed to it. Ipsos. Retrieved October 7, 2021, from https://www.ipsos.com/en-us/news-polls/cigi-fake-news-global-epidemic.Westerlund, M. (2019). The emergence of deepfake technology: A review. Technology Innovation Management Review.Ballesteros, S., Baron, D., Mejia, M., Portocarrero, L. (Dic, 2021). Desarrollo de un algoritmo de Machine Learning para la detección de contenido multimedia generado por medio de DeepFake.Masood, M., Nawaz, M., Malik, K. M., Javed, A., & Irtaza, A. (2021). Deepfakes Generation and Detection: State-of-the-art, open challenges, countermeasures, and way forward. arXiv preprint arXiv:2103.00484.Colaner, N. & Quinn, .M.J (2020). Deepfakes and the Value-Neutrality Thesis Retrieved October 7, 2021 from https://www.seattleu.edu/ethics-and-technology/viewpoints/deepfakes-and-the-value-neutrality-thesis.htmlColak, B. (2021). Legal Issues of DeepFakes. Retrieved October 7, 2021 from https://www.internetjustsociety.org/legal-issues-of deepfakesChesney, R., and Citron, D. K. (2018). Deep fakes: a looming challenge for privacy, democracy, and national security. https://dx.doi.org/10.2139/ssrn.3213954.De Lima, O., Franklin, S., Basu, S., Karwoski, B., and George, A. (2020). Deepfake detection using spatiotemporal convolutional networks. arXiv preprint arXiv:2006.14749.Korshunov, P., and Marcel, S. (2019). Vulnerability assessment and detection of deepfake videos. In The 12th IAPR International Conference on Biometrics (ICB), pp. 1-6.Faceswap-GAN. Available at https://github.com/shaoanlu/faceswap-GAN.VidTIMIT database. Available at http://conradsanderson.id.au/vidtimit/Parkhi, O. M., Vedaldi, A., and Zisserman, A. (2015, September). Deep face recognition. In Proceedings of the British Machine Vision Conference (BMVC) (pp. 41.1-41.12).FaceNet. Available at https://github.com/davidsandberg/facenet.Schroff, F., Kalenichenko, D., and Philbin, J. (2015). Facenet: A unified embedding for face recognition and clustering. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 815-823).Chung, J. S., Senior, A., Vinyals, O., and Zisserman, A. (2017, July). Lip reading sentences in the wild. In 2017 IEEE Conference on Computer Vision and Pattern Recognition (CVPR) (pp. 3444-3453).Korshunov, P., and Marcel, S. (2018, September). Speaker inconsistency detection in tampered video. In 2018 26th European Signal Processing Conference (EUSIPCO) (pp. 2375- 2379). IEEE.Galbally, J., and Marcel, S. (2014, August). Face anti-spoofing based on general image quality assessment. In 2014 22nd International Conference on Pattern Recognition (pp. 1173- 1178). IEEE.Sabir, E., Cheng, J., Jaiswal, A., AbdAlmageed, W., Masi, I., and Natarajan, P. (2019). Recurrent convolutional strategies for face manipulation detection in videos. In Proceedings of the IEEE Conference on CompHuang, G., Liu, Z., Van Der Maaten, L., and Weinberger, K. Q. (2017). Densely connected convolutional networks. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (pp. 4700-4708).Cho, K., van Merrienboer, B., Gulcehre, C., Bahdanau, D., Bougares, F., Schwenk, H., and Bengio, Y. (2014, October). Learning phrase representations using RNN encoder ecoder for statistical machine translation. In Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP) (pp.1724-1734)Hsu, C. C., Lee, C. Y., and Zhuang, Y. X. (2018, December). Learning to detect fake face images in the wild. In 2018 International Symposium on Computer, Consumer and Control (IS3C) (pp. 388-391). IEEE.Deepfake Detection Challenge. Kaggle. Available at: https://www.kaggle.com/c/deepfake-detection-challenge/dataopencv. opencv. Available at: https://github.com/opencv/opencv.Rcmalli, Keras Vgg Face. Github. Available at: https://github.com/rcmalli/keras-vggfaceKumar, A. (2021, December). Identifying Faces with MTCNN and VggFace. Available at: https://medium.com/swlh/identifying faces-with-mtcnn-and-vggface-9d0d4927cccfmariia_vasyleha, keras_vggface: No module named 'keras.engine.topology'. Available at:https://stackoverflow.com/questions/68862735/keras-vggface-no-module-named-keras-engine-topologySantiagobp99. Flask-Kubernets-Deepfake. Available at: https://github.com/santiagobp99/Flask-Kubernets Deepfake/tree/main/usr/ML/appYou Won't Believe What Obama Says In This Video! BuzzFeedVideo. Available at: https://www.youtube.com/watch?v=cQ54GDm1eL0201729106201729758PublicationTHUMBNAILDetección de Videos Multi-Rostro manipulados por DeepFake a partir de aprendizaje profundo.pdf.jpgDetección de Videos Multi-Rostro manipulados por DeepFake a partir de aprendizaje profundo.pdf.jpgIM Thumbnailimage/jpeg5853https://repositorio.uniandes.edu.co/bitstreams/d423d21a-0216-46a6-96e8-dcc4b33d2531/download0a1cc1f4469fa646da015ec04c438b1cMD56Formato Autorizacion Trabajo de Grado (1).pdf.jpgFormato Autorizacion Trabajo de Grado (1).pdf.jpgIM Thumbnailimage/jpeg17077https://repositorio.uniandes.edu.co/bitstreams/7537b377-2d00-4021-b801-09784490fce5/download1772d9c87f75ed8d8200b2fd1aca6793MD58ORIGINALDetección de Videos Multi-Rostro manipulados por DeepFake a partir de aprendizaje profundo.pdfDetección de Videos Multi-Rostro manipulados por DeepFake a partir de aprendizaje profundo.pdfTrabajo de gradoapplication/pdf473116https://repositorio.uniandes.edu.co/bitstreams/322f7a58-8dc5-4901-9fa6-e89058d53aa0/download8dd974dad369a957feb8fa86ab66e347MD53Formato Autorizacion Trabajo de Grado (1).pdfFormato Autorizacion Trabajo de Grado (1).pdfHIDEapplication/pdf4168556https://repositorio.uniandes.edu.co/bitstreams/a642a86a-7e9a-4800-baa1-b246071795af/download046af7f856bca38aa70cb59cf25c4cc1MD54LICENSElicense.txtlicense.txttext/plain; charset=utf-81810https://repositorio.uniandes.edu.co/bitstreams/217e0c8f-89dc-4087-a04a-a9cfa32ef3f9/download5aa5c691a1ffe97abd12c2966efcb8d6MD51CC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8908https://repositorio.uniandes.edu.co/bitstreams/166ea939-e924-4b85-a123-bb0240662ffc/download0175ea4a2d4caec4bbcc37e300941108MD52TEXTDetección de Videos Multi-Rostro manipulados por DeepFake a partir de aprendizaje profundo.pdf.txtDetección de Videos Multi-Rostro manipulados por DeepFake a partir de aprendizaje profundo.pdf.txtExtracted texttext/plain26977https://repositorio.uniandes.edu.co/bitstreams/2c71013e-13a6-48f8-a69c-6aeac37042ff/download5c29b58d29ef3a3d59a80bc3e60832c2MD55Formato Autorizacion Trabajo de Grado (1).pdf.txtFormato Autorizacion Trabajo de Grado (1).pdf.txtExtracted texttext/plain1https://repositorio.uniandes.edu.co/bitstreams/3b0233a7-b09c-4b2e-baed-c993f82794f0/download68b329da9893e34099c7d8ad5cb9c940MD571992/60261oai:repositorio.uniandes.edu.co:1992/602612023-10-10 19:04:35.81http://creativecommons.org/licenses/by/4.0/open.accesshttps://repositorio.uniandes.edu.coRepositorio institucional Sénecaadminrepositorio@uniandes.edu.coWW8sIGVuIG1pIGNhbGlkYWQgZGUgYXV0b3IgZGVsIHRyYWJham8gZGUgdGVzaXMsIG1vbm9ncmFmw61hIG8gdHJhYmFqbyBkZSBncmFkbywgaGFnbyBlbnRyZWdhIGRlbCBlamVtcGxhciByZXNwZWN0aXZvIHkgZGUgc3VzIGFuZXhvcyBkZSBzZXIgZWwgY2FzbywgZW4gZm9ybWF0byBkaWdpdGFsIHkvbyBlbGVjdHLDs25pY28geSBhdXRvcml6byBhIGxhIFVuaXZlcnNpZGFkIGRlIGxvcyBBbmRlcyBwYXJhIHF1ZSByZWFsaWNlIGxhIHB1YmxpY2FjacOzbiBlbiBlbCBTaXN0ZW1hIGRlIEJpYmxpb3RlY2FzIG8gZW4gY3VhbHF1aWVyIG90cm8gc2lzdGVtYSBvIGJhc2UgZGUgZGF0b3MgcHJvcGlvIG8gYWplbm8gYSBsYSBVbml2ZXJzaWRhZCB5IHBhcmEgcXVlIGVuIGxvcyB0w6lybWlub3MgZXN0YWJsZWNpZG9zIGVuIGxhIExleSAyMyBkZSAxOTgyLCBMZXkgNDQgZGUgMTk5MywgRGVjaXNpw7NuIEFuZGluYSAzNTEgZGUgMTk5MywgRGVjcmV0byA0NjAgZGUgMTk5NSB5IGRlbcOhcyBub3JtYXMgZ2VuZXJhbGVzIHNvYnJlIGxhIG1hdGVyaWEsIHV0aWxpY2UgZW4gdG9kYXMgc3VzIGZvcm1hcywgbG9zIGRlcmVjaG9zIHBhdHJpbW9uaWFsZXMgZGUgcmVwcm9kdWNjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSwgdHJhbnNmb3JtYWNpw7NuIHkgZGlzdHJpYnVjacOzbiAoYWxxdWlsZXIsIHByw6lzdGFtbyBww7pibGljbyBlIGltcG9ydGFjacOzbikgcXVlIG1lIGNvcnJlc3BvbmRlbiBjb21vIGNyZWFkb3IgZGUgbGEgb2JyYSBvYmpldG8gZGVsIHByZXNlbnRlIGRvY3VtZW50by4gIAoKCkxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gc2UgZW1pdGUgZW4gY2FsaWRhZCBkZSBhdXRvciBkZSBsYSBvYnJhIG9iamV0byBkZWwgcHJlc2VudGUgZG9jdW1lbnRvIHkgbm8gY29ycmVzcG9uZGUgYSBjZXNpw7NuIGRlIGRlcmVjaG9zLCBzaW5vIGEgbGEgYXV0b3JpemFjacOzbiBkZSB1c28gYWNhZMOpbWljbyBkZSBjb25mb3JtaWRhZCBjb24gbG8gYW50ZXJpb3JtZW50ZSBzZcOxYWxhZG8uIExhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gc2UgaGFjZSBleHRlbnNpdmEgbm8gc29sbyBhIGxhcyBmYWN1bHRhZGVzIHkgZGVyZWNob3MgZGUgdXNvIHNvYnJlIGxhIG9icmEgZW4gZm9ybWF0byBvIHNvcG9ydGUgbWF0ZXJpYWwsIHNpbm8gdGFtYmnDqW4gcGFyYSBmb3JtYXRvIGVsZWN0csOzbmljbywgeSBlbiBnZW5lcmFsIHBhcmEgY3VhbHF1aWVyIGZvcm1hdG8gY29ub2NpZG8gbyBwb3IgY29ub2Nlci4gCgoKRWwgYXV0b3IsIG1hbmlmaWVzdGEgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwgeSBsYSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvcywgcG9yIGxvIHRhbnRvLCBsYSBvYnJhIGVzIGRlIHN1IGV4Y2x1c2l2YSBhdXRvcsOtYSB5IHRpZW5lIGxhIHRpdHVsYXJpZGFkIHNvYnJlIGxhIG1pc21hLiAKCgpFbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhIGVuIGN1ZXN0acOzbiwgZWwgYXV0b3IgYXN1bWlyw6EgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQsIHkgc2FsZHLDoSBkZSBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcywgcGFyYSB0b2RvcyBsb3MgZWZlY3RvcyBsYSBVbml2ZXJzaWRhZCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLiAKCg==