Actuadores inteligentes con protocolo de comunicación I2C y medio físico RS-485

Este articulo muestra el desarrollo de un sistema maestro/esclavo haciendo uso del protocolo de comunicación I2C por medio físico RS-485 para el control de los actuadores que trabajan en la PPA (Planta De Procesos Análogos) con el fin de reemplazar ciertas funciones del PLC (Controlador lógico progr...

Full description

Autores:
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2015
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/2245
Acceso en línea:
http://hdl.handle.net/11349/2245
Palabra clave:
Actuador inteligente
I2C
PSoC
Python
RS-485
Tecnología en Electrónica - Tesis y disertaciones académicas
Controladores programables
Python (Lenguaje de programación de computadores)
Lenguajes de programación (Computadores)
Actuadores inteligentes
Intelligent actuator
I2C
PSoC
Python
RS_485
Rights
License
Atribución-NoComercial-SinDerivadas 4.0 Internacional
id UDISTRITA2_b920352b6c90a0e4ae8240741a6df8b1
oai_identifier_str oai:repository.udistrital.edu.co:11349/2245
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Actuadores inteligentes con protocolo de comunicación I2C y medio físico RS-485
dc.title.titleenglish.spa.fl_str_mv Intelligent actuators i2c communication protocol and rs-485 physical means
title Actuadores inteligentes con protocolo de comunicación I2C y medio físico RS-485
spellingShingle Actuadores inteligentes con protocolo de comunicación I2C y medio físico RS-485
Actuador inteligente
I2C
PSoC
Python
RS-485
Tecnología en Electrónica - Tesis y disertaciones académicas
Controladores programables
Python (Lenguaje de programación de computadores)
Lenguajes de programación (Computadores)
Actuadores inteligentes
Intelligent actuator
I2C
PSoC
Python
RS_485
title_short Actuadores inteligentes con protocolo de comunicación I2C y medio físico RS-485
title_full Actuadores inteligentes con protocolo de comunicación I2C y medio físico RS-485
title_fullStr Actuadores inteligentes con protocolo de comunicación I2C y medio físico RS-485
title_full_unstemmed Actuadores inteligentes con protocolo de comunicación I2C y medio físico RS-485
title_sort Actuadores inteligentes con protocolo de comunicación I2C y medio físico RS-485
dc.contributor.advisor.spa.fl_str_mv Porras Bohada, Jorge Eduardo
dc.subject.spa.fl_str_mv Actuador inteligente
I2C
PSoC
Python
RS-485
topic Actuador inteligente
I2C
PSoC
Python
RS-485
Tecnología en Electrónica - Tesis y disertaciones académicas
Controladores programables
Python (Lenguaje de programación de computadores)
Lenguajes de programación (Computadores)
Actuadores inteligentes
Intelligent actuator
I2C
PSoC
Python
RS_485
dc.subject.lemb.spa.fl_str_mv Tecnología en Electrónica - Tesis y disertaciones académicas
Controladores programables
Python (Lenguaje de programación de computadores)
Lenguajes de programación (Computadores)
Actuadores inteligentes
dc.subject.keyword.spa.fl_str_mv Intelligent actuator
I2C
PSoC
Python
RS_485
description Este articulo muestra el desarrollo de un sistema maestro/esclavo haciendo uso del protocolo de comunicación I2C por medio físico RS-485 para el control de los actuadores que trabajan en la PPA (Planta De Procesos Análogos) con el fin de reemplazar ciertas funciones del PLC (Controlador lógico programable) con el que cuenta actualmente la planta. Este sistema se implementa utilizando PSoC 4200 Prototyping Kit, el sistema es inteligente por tener las características de llevar la cuenta del uso del actuador, el estado del mismo (On/Off) e informar en caso de desconexión por factores externos (desgaste o daño en las líneas de comunicación y/o hardware) o interno (comunicación fallida), además de preservar la cuenta y estado en caso de pérdida en la alimentación del dispositivo. Se hace uso del software libre Python para diseñar la interfaz gráfica, en la cual el usuario tiene la posibilidad de visualizar el estado de los actuadores, así como su correcto funcionamiento e interactuar con estos para su correspondiente apertura y cierre.
publishDate 2015
dc.date.accessioned.none.fl_str_mv 2015-10-19T20:42:59Z
dc.date.available.none.fl_str_mv 2015-10-19T20:42:59Z
dc.date.created.spa.fl_str_mv 2015-02-16
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/2245
url http://hdl.handle.net/11349/2245
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.*.fl_str_mv Atribución-NoComercial-SinDerivadas 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 Atribución-NoComercial-SinDerivadas 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/2245/3/PimentelOspinaErika2015.pdf.jpg
http://repository.udistrital.edu.co/bitstream/11349/2245/2/license.txt
http://repository.udistrital.edu.co/bitstream/11349/2245/1/PimentelOspinaErika2015.pdf
bitstream.checksum.fl_str_mv 35262a58849bda23aacda3e38c3658aa
e6c9e0df7dc5f123da9169c3e3e5c87a
fbfab8250fa45290ad5a7150ac48ee73
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Institucional Universidad Distrital - RIUD
repository.mail.fl_str_mv repositorio@udistrital.edu.co
_version_ 1814111218283053056
spelling Porras Bohada, Jorge EduardoPimentel Ospina, ErikaYate Monrroy, Yeferson2015-10-19T20:42:59Z2015-10-19T20:42:59Z2015-02-16http://hdl.handle.net/11349/2245Este articulo muestra el desarrollo de un sistema maestro/esclavo haciendo uso del protocolo de comunicación I2C por medio físico RS-485 para el control de los actuadores que trabajan en la PPA (Planta De Procesos Análogos) con el fin de reemplazar ciertas funciones del PLC (Controlador lógico programable) con el que cuenta actualmente la planta. Este sistema se implementa utilizando PSoC 4200 Prototyping Kit, el sistema es inteligente por tener las características de llevar la cuenta del uso del actuador, el estado del mismo (On/Off) e informar en caso de desconexión por factores externos (desgaste o daño en las líneas de comunicación y/o hardware) o interno (comunicación fallida), además de preservar la cuenta y estado en caso de pérdida en la alimentación del dispositivo. Se hace uso del software libre Python para diseñar la interfaz gráfica, en la cual el usuario tiene la posibilidad de visualizar el estado de los actuadores, así como su correcto funcionamiento e interactuar con estos para su correspondiente apertura y cierre.This article shows the development of a Master / Slave system using I2C communication protocol for RS-485 physical means to control actuators working in the APP (Analog Process Plant) in order to replace certain functions of the PLC (programmable Logic Controller) with which currently has the plant. This system is implemented using PSoC 4200 Prototyping Kit, the system is smart to have the features to keep track of the use of the actuator, the condition (On / Off) and report in case of disconnection by external factors (wear or damage in the communication lines and / or hardware) or internal (failed communication), besides preserving the state account and for loss in power from the device. Python use of free software is made to design the GUI in which the user has the ability to view the status of the actuators, as well as proper operation and interact with those for the corresponding opening and closing.pdfspaAtribución-NoComercial-SinDerivadas 4.0 Internacionalhttp://creativecommons.org/licenses/by-nc-nd/4.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2Actuador inteligenteI2CPSoCPythonRS-485Tecnología en Electrónica - Tesis y disertaciones académicasControladores programablesPython (Lenguaje de programación de computadores)Lenguajes de programación (Computadores)Actuadores inteligentesIntelligent actuatorI2CPSoCPythonRS_485Actuadores inteligentes con protocolo de comunicación I2C y medio físico RS-485Intelligent actuators i2c communication protocol and rs-485 physical meansinfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fTHUMBNAILPimentelOspinaErika2015.pdf.jpgPimentelOspinaErika2015.pdf.jpgIM Thumbnailimage/jpeg14360http://repository.udistrital.edu.co/bitstream/11349/2245/3/PimentelOspinaErika2015.pdf.jpg35262a58849bda23aacda3e38c3658aaMD53open accessLICENSElicense.txtlicense.txttext/plain; charset=utf-85946http://repository.udistrital.edu.co/bitstream/11349/2245/2/license.txte6c9e0df7dc5f123da9169c3e3e5c87aMD52open accessORIGINALPimentelOspinaErika2015.pdfPimentelOspinaErika2015.pdfTrabajo de gradoapplication/pdf633700http://repository.udistrital.edu.co/bitstream/11349/2245/1/PimentelOspinaErika2015.pdffbfab8250fa45290ad5a7150ac48ee73MD51metadata only access11349/2245oai:repository.udistrital.edu.co:11349/22452023-06-13 11:51:57.525metadata only accessRepositorio Institucional Universidad Distrital - RIUDrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyAgREUgQ09OVEVOSURPUyBFTiBFTCBSRVBPU0lUT1JJTyBJTlNUSVRVQ0lPTkFMIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTA0KVMOpcm1pbm9zIHkgY29uZGljaW9uZXMgZGUgdXNvICBwYXJhIHB1YmxpY2FjacOzbiBkZSBvYnJhcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuDQoNCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCAgY29uZmllcm8gKGVyaW1vcykgYSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB1bmEgbGljZW5jaWEgcGFyYSB1c28gIG5vIGV4Y2x1c2l2YSwgbGltaXRhZGEgeSBncmF0dWl0YSBzb2JyZSBsYSBvYnJhIHF1ZSAgaW50ZWdyYXLDoSAgZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBhY3VlcmRvIGEgbGFzIHNpZ3VpZW50ZXMgcmVnbGFzLCAgbGFzIGN1YWxlcyBkZWNsYXJvIChhbW9zKSBjb25vY2VyIHkgYWNlcHRhcjoNCg0KYSkgRXN0YXLDoSB2aWdlbnRlIGEgcGFydGlyIGRlIGxhIGZlY2hhICBlbiBxdWUgc2UgaW5jbHV5YSAgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCB5IGhhc3RhICBwb3IgdW4gcGxhem8gZGUgIGRpZXogKDEwKSAgQcOxb3MsICBwcm9ycm9nYWJsZSAgaW5kZWZpbmlkYW1lbnRlIHBvciBlbCB0aWVtcG8gcXVlIGR1cmUgZWwgZGVyZWNobyBQYXRyaW1vbmlhbCBkZWwgYXV0b3I7ICBsYSBjdWFsIHBvZHLDoSAgIGRhcnNlICBwb3IgdGVybWluYWRhICBwcmV2aWEgIHNvbGljaXR1ZCAgIGEgbGEgVW5pdmVyc2lkYWQgcG9yIGVzY3JpdG8gY29uIHVuYSBhbnRlbGFjacOzbiBkZSBkb3MgKDIpIG1lc2VzIGFudGVzIGRlbCB2ZW5jaW1pZW50byBkZWwgcGxhem8gIGluaWNpYWwgbyBlbCBkZSBzdShzKSBwcsOzcnJvZ2EocykuICANCg0KYikgTGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMgcG9kcsOhICBwdWJsaWNhciBsYSBvYnJhIGVuIGxhcyBkaXN0aW50YXMgdmVyc2lvbmVzIHJlcXVlcmlkYXMgKGRpZ2l0YWwsIGltcHJlc28sIGVsZWN0csOzbmljbyB1IG90cm8gbWVkaW8gY29ub2NpZG8gbyBwb3IgY29ub2NlcikgIHBvciBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsLCAgTGEgVW5pdmVyc2lkYWQgbm8gc2Vyw6EgcmVzcG9uc2FibGUgZW4gZWwgZXZlbnRvIHF1ZSBlbCAgZG9jdW1lbnRvIGFwYXJlemNhIHJlZmVyZW5jaWFkbyBlbiBtb3RvcmVzIGRlIGLDunNxdWVkYSBvIHJlcG9zaXRvcmlvcyAgZGlmZXJlbnRlcyBhbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsLCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgIHNvbGljaXRlbiBzdSBlbGltaW5hY2nDs24gZGVsIFJlcG9zaXRvcmlvIGRlIGxhIFVuaXZlcnNpZGFkLCBkYWRvIHF1ZSAgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuICBJbnRlcm5ldC4gDQoNCmMpIExhIGF1dG9yaXphY2nDs24gc2UgaGFjZSBhIHTDrXR1bG8gZ3JhdHVpdG8sIHBvciBsbyB0YW50bywgbG9zIGF1dG9yZXMgcmVudW5jaWFuIGEgcmVjaWJpciBiZW5lZmljaW8gYWxndW5vIHBvciBsYSBwdWJsaWNhY2nDs24sIGRpc3RyaWJ1Y2nDs24sIGNvbXVuaWNhY2nDs24gIHDDumJsaWNhIHkgY3VhbHF1aWVyIG90cm8gdXNvIHF1ZSBzZSBoYWdhIGVuIGxvcyB0w6lybWlub3MgZGUgbGEgcHJlc2VudGUgbGljZW5jaWEgeSBkZSBsYSBsaWNlbmNpYSAgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuDQoNCmQpIExvcyBjb250ZW5pZG9zIHB1YmxpY2Fkb3MgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBzb24gIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhICBjdWFsKGVzKSAgZWwob3MpIGF1dG9yKGVzKSBjb21vIHRpdHVsYXJlcyBkZSBsb3MgIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIGxhIFVuaXZlcnNpZGFkIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMgc2UgY29tcHJvbWV0ZSBhIGluZGljYXIgc2llbXByZSBsYSBhdXRvcsOtYSBpbmNsdXllbmRvIGVsIG5vbWJyZSBkZWwgYXV0b3IgeSBsYSBmZWNoYSBkZSBwdWJsaWNhY2nDs24uDQoNCmUpIExhICBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyBwb2Ryw6EgIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuIA0KDQpmKSBMYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyBwb2Ryw6EgY29udmVydGlyIGxhIG9icmEgIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluICBkZSBzdSBwcmVzZXJ2YWNpw7NuIGVuIGVsIHRpZW1wbyBxdWUgbGEgcHJlc2VudGUgbGljZW5jaWEgeSBsYSBkZSBzdXMgcHLDs3Jyb2dhcy4NCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXrDsyBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBvYnJhICB0aXR1bGFkYSBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18NCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KDQogQSBmYXZvciBkZWwgIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMgeSAgZGUgc3VzIHVzdWFyaW9zLCAgIGN1eW8ocykgIGF1dG9yKGVzKSBzb246IA0KQXV0b3IJQXBlbGxpZG9zCU5vbWJyZXMNCjEJCQ0KMgkJDQozCQkNCg0KYSkgQXV0b3Jpem8gcXVlIGxhIG9icmEgc2VhIHB1ZXN0YSBhIGRpc3Bvc2ljacOzbiBkZWwgcMO6YmxpY28gZW4gbG9zIHTDqXJtaW5vcyBhdXRvcml6YWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsICBiYWpvIGxvcyBsw61taXRlcyBkZWZpbmlkb3MgcG9yIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgUklVRCwgY3V5byB0ZXh0byBjb21wbGV0byBzZSBwdWVkZSBjb25zdWx0YXIgZW4gaHR0cDovL3JlcG9zaXRvcnkudWRpc3RyaXRhbC5lZHUuY28vDQoNCmIpIENvbm96Y28geSBhY2VwdG8gcXVlIG90b3JnbyB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIG9idGVuaWRvIHVuYSBjb3BpYS4NCg0KYykgIE1hbmlmaWVzdG8gbWkgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uDQoNCmcpIFF1ZSBjb25vemNvICAgbGEgbm9ybWF0aXZpZGFkIGludGVybmEgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMgcmVsYXRpdm8gYSBwcm9waWVkYWQgIGludGVsZWN0dWFsIHJlZ3VsYWRhIHBvciBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMgeSBsYXMgZGVtw6FzIG5vcm1hcyBjb25jb3JkYW50ZSB5IGNvbXBsZW1lbnRhcmlhcyBxdWUgcmlnZW4gYWwgcmVzcGVjdG8uIEVzdG9zIGRvY3VtZW50b3MgcG9kcsOhbiBzZXIgY29uc3VsdGFkb3MgeSBkZXNjYXJnYWRvcyBlbiBlbCBwb3J0YWwgd2ViIGRlIGxhIGJpYmxpb3RlY2EgaHR0cDovL3Npc3RlbWFkZWJpYmxpb3RlY2FzLnVkaXN0cml0YWwuZWR1LmNvLyAgDQoNClNJIEVMIERPQ1VNRU5UTyBTRSBCQVNBIEVOIFVOIFRSQUJBSk8gUVVFIEhBIFNJRE8gUEFUUk9DSU5BRE8gTyBBUE9ZQURPIFBPUiBVTkEgQUdFTkNJQSBPIFVOQSBPUkdBTklaQUNJw5NOLCBDT04gRVhDRVBDScOTTiBERSBMQSBVTklWRVJTSURBRCBESVNUUklUQUwgRlJBTkNJU0NPIEpPU0UgREUgQ0FMREFTLCBMT1MgQVVUT1JFUyBHQVJBTlRJWkFOIFFVRSBTRSBIQSBDVU1QTElETyBDT04gTE9TIA0KREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uDQpFbiBjb25zdGFuY2lhIGRlIGxvIGFudGVyaW9yLCBmaXJtbyAoYW1vcykgZWwgcHJlc2VudGUgZG9jdW1lbnRvIGEgbG9zIA0KDQpGSVJNQSBERSBMT1MgVElUVUxBUkVTIERFIERFUkVDSE9TIERFIEFVVE9SDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXw0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18NCg0KQ29ycmVvIEVsZWN0csOzbmljbyBJbnN0aXR1Y2lvbmFsIGRlbCBBdXRvciAoZXMpOg0KQXV0b3IJQ29ycmVvIEVsZWN0csOzbmljbyANCjEJDQoyCQ0KMwkNCg0KTm90YTogRW4gY2FzbyBxdWUgbm8gZXN0w6kgZGUgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhLCBqdXN0aWZpcXVlIGxvcyBtb3Rpdm9zIHBvciBsb3MgY3VhbGVzIGVsIGRvY3VtZW50byB5IHN1cyBhbmV4b3Mgbm8gcHVlZGVuIHNlciBwdWJsaWNhZG9zIGVuIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMgUklVRA0K