Modelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría.

En este trabajo se aborda como objeto de estudio el tratamiento de datos de nubes de puntos obtenidos mediante técnicas de fotogrametría en cultivos de papa en la región de Cundinamarca, el objetivo principal es entrenar y probar un modelo basado en aprendizaje no supervisado que permita segmentar l...

Full description

Autores:
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2022
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/31802
Acceso en línea:
http://hdl.handle.net/11349/31802
Palabra clave:
K-medoides
K-means
Inteligencia artificial aplicada
Plantas de papa
Ingeniería Electrónica -- Tesis y disertaciones académicas
Fotogrametría
Segmentación de datos
Aprendizaje no supervisado
Atributos estructurales
K-means
K-medoids
Potato plants
Applied artificial intelligence
Rights
License
Attribution-NonCommercial-NoDerivatives 4.0 Internacional
id UDISTRITA2_333ed14262cad3e80bce7ff53d260842
oai_identifier_str oai:repository.udistrital.edu.co:11349/31802
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Modelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría.
dc.title.titleenglish.spa.fl_str_mv Unsupervised learning model for the calculation of structural attributes of potato crops using photogrammetric techniques.
title Modelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría.
spellingShingle Modelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría.
K-medoides
K-means
Inteligencia artificial aplicada
Plantas de papa
Ingeniería Electrónica -- Tesis y disertaciones académicas
Fotogrametría
Segmentación de datos
Aprendizaje no supervisado
Atributos estructurales
K-means
K-medoids
Potato plants
Applied artificial intelligence
title_short Modelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría.
title_full Modelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría.
title_fullStr Modelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría.
title_full_unstemmed Modelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría.
title_sort Modelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría.
dc.contributor.advisor.none.fl_str_mv Gaona García, Elvis Eduardo
dc.contributor.orcid.none.fl_str_mv Gaona García, Elvis Eduardo [0000-0001-5431-8776]
dc.subject.spa.fl_str_mv K-medoides
K-means
Inteligencia artificial aplicada
Plantas de papa
topic K-medoides
K-means
Inteligencia artificial aplicada
Plantas de papa
Ingeniería Electrónica -- Tesis y disertaciones académicas
Fotogrametría
Segmentación de datos
Aprendizaje no supervisado
Atributos estructurales
K-means
K-medoids
Potato plants
Applied artificial intelligence
dc.subject.lemb.none.fl_str_mv Ingeniería Electrónica -- Tesis y disertaciones académicas
Fotogrametría
Segmentación de datos
Aprendizaje no supervisado
Atributos estructurales
dc.subject.keyword.spa.fl_str_mv K-means
K-medoids
Potato plants
Applied artificial intelligence
description En este trabajo se aborda como objeto de estudio el tratamiento de datos de nubes de puntos obtenidos mediante técnicas de fotogrametría en cultivos de papa en la región de Cundinamarca, el objetivo principal es entrenar y probar un modelo basado en aprendizaje no supervisado que permita segmentar las áreas de interés de los datos, con el fin de calcular matemáticamente los atributos estructurales de la planta como superficie y altura. Se probaron dos métodos de aprendizaje automático, nueve características de la imagen, incluyendo la posición (x, y y z), los colores (R,G y B) y los parámetros normales para la segmentación del suelo y las plantas individuales. El clustering de K-means fue el que obtuvo los mayores porcentajes de acierto (86,33%) para la separación de plantas y suelo. El método desarrollado se validó mediante un estudio de caso en el que el conjunto de datos construido por GITUD tomó previamente muestras de un cultivo de plantas semimaduras. Por lo tanto, se separaron automáticamente las plantas individuales y se extrajeron con éxito las características de cada planta (altura y área de brotes) utilizando la línea de segmentación automática propuesta. Por último, la limitación de este estudio es que los métodos propuestos se han desarrollado y evaluado para la patata en estado de vegetación. Sin embargo, la aplicación de la segmentación para evaluar el estado de vegetación de una planta diferente está abierta para el reentrenamiento del modelo. Con el tiempo, se mejorará la precisión de la segmentación con otros métodos de agrupación y la forma de calcular los atributos estructurales mediante la experimentación o nuevas iteraciones para obtener una medida más precisa del atributo del área de brotes. El estado de la vegetación juega un papel fundamental para determinar el estado de los cultivos y permite tomar medidas en caso de comportamiento anormal en el desarrollo de las plantas cultivadas. En cultivos de más de una hectárea, determinar el estado de la vegetación es un reto debido a su gran tamaño actualmente el monitoreo implica personal especializado en campo y altos costos en la toma y análisis de muestras del cultivo, además de ingresar a zonas de difícil acceso como las del terreno colombiano por lo que surge la necesidad de otras técnicas de recolección de datos a gran escala como: el estudio de imágenes satelitales o nubes de puntos tomadas con vehículos aéreos no tripulados (UAV).
publishDate 2022
dc.date.created.none.fl_str_mv 2022-09-06
dc.date.accessioned.none.fl_str_mv 2023-07-14T20:51:34Z
dc.date.available.none.fl_str_mv 2023-07-14T20:51:34Z
dc.type.spa.fl_str_mv bachelorThesis
dc.type.degree.spa.fl_str_mv Investigación-Innovación
dc.type.driver.spa.fl_str_mv info:eu-repo/semantics/bachelorThesis
dc.type.coar.spa.fl_str_mv http://purl.org/coar/resource_type/c_7a1f
format http://purl.org/coar/resource_type/c_7a1f
dc.identifier.uri.none.fl_str_mv http://hdl.handle.net/11349/31802
url http://hdl.handle.net/11349/31802
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.*.fl_str_mv Attribution-NonCommercial-NoDerivatives 4.0 Internacional
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.uri.*.fl_str_mv http://creativecommons.org/licenses/by-nc-nd/4.0/
dc.rights.acceso.spa.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv Attribution-NonCommercial-NoDerivatives 4.0 Internacional
http://creativecommons.org/licenses/by-nc-nd/4.0/
Abierto (Texto Completo)
http://purl.org/coar/access_right/c_abf2
dc.format.mimetype.spa.fl_str_mv pdf
institution Universidad Distrital Francisco José de Caldas
bitstream.url.fl_str_mv http://repository.udistrital.edu.co/bitstream/11349/31802/4/license.txt
http://repository.udistrital.edu.co/bitstream/11349/31802/1/Modelo%20de%20aprendizaje%20no%20supervisado%20para%20el%20c%c3%a1lculo%20de%20atributos%20estructurales%20de%20cultivos%20de%20papa%20empleando%20%20t%c3%a9cnicas%20de%20fotogrametr%c3%ada..pdf
http://repository.udistrital.edu.co/bitstream/11349/31802/2/Licencia%20de%20uso%20y%20publicacion%20editable.pdf
http://repository.udistrital.edu.co/bitstream/11349/31802/3/license_rdf
http://repository.udistrital.edu.co/bitstream/11349/31802/5/Modelo%20de%20aprendizaje%20no%20supervisado%20para%20el%20c%c3%a1lculo%20de%20atributos%20estructurales%20de%20cultivos%20de%20papa%20empleando%20%20t%c3%a9cnicas%20de%20fotogrametr%c3%ada..pdf.jpg
http://repository.udistrital.edu.co/bitstream/11349/31802/6/Licencia%20de%20uso%20y%20publicacion%20editable.pdf.jpg
bitstream.checksum.fl_str_mv 997daf6c648c962d566d7b082dac908d
aacf13b159a8372248a2ca8cb1bbbbf4
385e3086ef728c101bdcb1d0de3b5bfc
4460e5956bc1d1639be9ae6146a50347
846f5935c05b8dee986e6c2acaa14e28
8d78c2379be7e5825b45f44975f4523d
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Institucional Universidad Distrital - RIUD
repository.mail.fl_str_mv repositorio@udistrital.edu.co
_version_ 1803712533277704192
spelling Gaona García, Elvis Eduardowill be generated::orcid::0000-0001-5431-8776600Gaona García, Elvis Eduardo [0000-0001-5431-8776]Barrera Cuevas, Gina Alexandra Gevinova2023-07-14T20:51:34Z2023-07-14T20:51:34Z2022-09-06http://hdl.handle.net/11349/31802En este trabajo se aborda como objeto de estudio el tratamiento de datos de nubes de puntos obtenidos mediante técnicas de fotogrametría en cultivos de papa en la región de Cundinamarca, el objetivo principal es entrenar y probar un modelo basado en aprendizaje no supervisado que permita segmentar las áreas de interés de los datos, con el fin de calcular matemáticamente los atributos estructurales de la planta como superficie y altura. Se probaron dos métodos de aprendizaje automático, nueve características de la imagen, incluyendo la posición (x, y y z), los colores (R,G y B) y los parámetros normales para la segmentación del suelo y las plantas individuales. El clustering de K-means fue el que obtuvo los mayores porcentajes de acierto (86,33%) para la separación de plantas y suelo. El método desarrollado se validó mediante un estudio de caso en el que el conjunto de datos construido por GITUD tomó previamente muestras de un cultivo de plantas semimaduras. Por lo tanto, se separaron automáticamente las plantas individuales y se extrajeron con éxito las características de cada planta (altura y área de brotes) utilizando la línea de segmentación automática propuesta. Por último, la limitación de este estudio es que los métodos propuestos se han desarrollado y evaluado para la patata en estado de vegetación. Sin embargo, la aplicación de la segmentación para evaluar el estado de vegetación de una planta diferente está abierta para el reentrenamiento del modelo. Con el tiempo, se mejorará la precisión de la segmentación con otros métodos de agrupación y la forma de calcular los atributos estructurales mediante la experimentación o nuevas iteraciones para obtener una medida más precisa del atributo del área de brotes. El estado de la vegetación juega un papel fundamental para determinar el estado de los cultivos y permite tomar medidas en caso de comportamiento anormal en el desarrollo de las plantas cultivadas. En cultivos de más de una hectárea, determinar el estado de la vegetación es un reto debido a su gran tamaño actualmente el monitoreo implica personal especializado en campo y altos costos en la toma y análisis de muestras del cultivo, además de ingresar a zonas de difícil acceso como las del terreno colombiano por lo que surge la necesidad de otras técnicas de recolección de datos a gran escala como: el estudio de imágenes satelitales o nubes de puntos tomadas con vehículos aéreos no tripulados (UAV).The main objective of this work is to train and test a model based on unsupervised learning that allows segmenting the areas of interest of the data, in order to mathematically calculate the structural attributes of the plant such as surface and height. Two machine learning methods, nine image features including position (x, y and z), colors (R,G and B) and normal parameters were tested for segmentation of soil and individual plants. K-means clustering obtained the highest percentages of correctness (86.33%) for the separation of plants and soil. The developed method was validated by a case study in which the dataset constructed by GITUD previously sampled a crop of semi-mature plants. Therefore, individual plants were automatically separated and the characteristics of each plant (height and shoot area) were successfully extracted using the proposed automatic segmentation line. Finally, the limitation of this study is that the proposed methods have been developed and evaluated for potato in vegetative state. However, the application of segmentation to evaluate the vegetation state of a different plant is open for model retraining. Over time, the accuracy of segmentation will be improved with other clustering methods and how structural attributes are calculated through experimentation or further iterations to obtain a more accurate measure of the shoot area attribute. Vegetation condition plays a key role in determining crop condition and allows action to be taken in case of abnormal behavior in the development of cultivated plants. In crops of more than one hectare, determining the state of the vegetation is a challenge due to its large size, monitoring currently involves specialized personnel in the field and high costs in the collection and analysis of crop samples, in addition to entering areas of difficult access such as those of the Colombian terrain, so there is a need for other large-scale data collection techniques such as: the study of satellite images or point clouds taken with unmanned aerial vehicles (UAV).pdfspaAttribution-NonCommercial-NoDerivatives 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2K-medoidesK-meansInteligencia artificial aplicadaPlantas de papaIngeniería Electrónica -- Tesis y disertaciones académicasFotogrametríaSegmentación de datosAprendizaje no supervisadoAtributos estructuralesK-meansK-medoidsPotato plantsApplied artificial intelligenceModelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría.Unsupervised learning model for the calculation of structural attributes of potato crops using photogrammetric techniques.bachelorThesisInvestigación-Innovacióninfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fLICENSElicense.txtlicense.txttext/plain; charset=utf-87167http://repository.udistrital.edu.co/bitstream/11349/31802/4/license.txt997daf6c648c962d566d7b082dac908dMD54open accessORIGINALModelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría..pdfModelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría..pdfTrabajo de gradoapplication/pdf3258034http://repository.udistrital.edu.co/bitstream/11349/31802/1/Modelo%20de%20aprendizaje%20no%20supervisado%20para%20el%20c%c3%a1lculo%20de%20atributos%20estructurales%20de%20cultivos%20de%20papa%20empleando%20%20t%c3%a9cnicas%20de%20fotogrametr%c3%ada..pdfaacf13b159a8372248a2ca8cb1bbbbf4MD51open accessLicencia de uso y publicacion editable.pdfLicencia de uso y publicacion editable.pdfLicencia de uso y publicaciónapplication/pdf225511http://repository.udistrital.edu.co/bitstream/11349/31802/2/Licencia%20de%20uso%20y%20publicacion%20editable.pdf385e3086ef728c101bdcb1d0de3b5bfcMD52metadata only accessCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8805http://repository.udistrital.edu.co/bitstream/11349/31802/3/license_rdf4460e5956bc1d1639be9ae6146a50347MD53open accessTHUMBNAILModelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría..pdf.jpgModelo de aprendizaje no supervisado para el cálculo de atributos estructurales de cultivos de papa empleando técnicas de fotogrametría..pdf.jpgIM Thumbnailimage/jpeg8837http://repository.udistrital.edu.co/bitstream/11349/31802/5/Modelo%20de%20aprendizaje%20no%20supervisado%20para%20el%20c%c3%a1lculo%20de%20atributos%20estructurales%20de%20cultivos%20de%20papa%20empleando%20%20t%c3%a9cnicas%20de%20fotogrametr%c3%ada..pdf.jpg846f5935c05b8dee986e6c2acaa14e28MD55open accessLicencia de uso y publicacion editable.pdf.jpgLicencia de uso y publicacion editable.pdf.jpgIM Thumbnailimage/jpeg12991http://repository.udistrital.edu.co/bitstream/11349/31802/6/Licencia%20de%20uso%20y%20publicacion%20editable.pdf.jpg8d78c2379be7e5825b45f44975f4523dMD56open access11349/31802oai:repository.udistrital.edu.co:11349/318022024-04-04 17:08:53.219open accessRepositorio Institucional Universidad Distrital - RIUDrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK