Desarrollo de un framework MATLAB-GAMS para la resolución del problema de ubicación y dimensionamiento óptimo de fuentes FV en redes de distribución

Este trabajo aborda el problema de planificación en cuanto a la ubicación y dimensionamiento de generadores fotovoltaicos en redes de distribución con topología radial. Este problema se modela matemáticamente mediante un modelo de programación no lineal de enteros mixtos (MINLP), que busca reducir l...

Full description

Autores:
Tipo de recurso:
Trabajo de grado de pregrado
Fecha de publicación:
2023
Institución:
Universidad Distrital Francisco José de Caldas
Repositorio:
RIUD: repositorio U. Distrital
Idioma:
spa
OAI Identifier:
oai:repository.udistrital.edu.co:11349/35481
Acceso en línea:
http://hdl.handle.net/11349/35481
Palabra clave:
Generadores fotovoltaicos
Minimización de los costos operativos anuales totales
Redes de distribución eléctrica
Software GAMS
Interfaz MATLAB-GAMS
Metodología maestro-esclavo
Algoritmo seno-coseno
Ingeniería Eléctrica --Tesis y disertaciones académicas
Ubicación y dimensionamiento óptimo de fuentes fotovoltaicas en redes de distribución
Planificación de redes de distribución eléctrica con energía solar fotovoltaica
Interconexión de MATLAB y GAMS para la resolución de problemas de optimización en redes de distribución
Minimization of total annual operating costs
Electrical distribution networks
GAMS software
MATLAB-GAMS interface
Master–slave methodology
Sine–cosine algorithm
Rights
License
CC0 1.0 Universal
id UDISTRITA2_885574c9a2b7bcfdbc475ad63216c2eb
oai_identifier_str oai:repository.udistrital.edu.co:11349/35481
network_acronym_str UDISTRITA2
network_name_str RIUD: repositorio U. Distrital
repository_id_str
dc.title.spa.fl_str_mv Desarrollo de un framework MATLAB-GAMS para la resolución del problema de ubicación y dimensionamiento óptimo de fuentes FV en redes de distribución
dc.title.titleenglish.spa.fl_str_mv Development of a MATLAB-GAMS framework for solving the problem regarding the optimal location and sizing of FV sources in distribution networks
title Desarrollo de un framework MATLAB-GAMS para la resolución del problema de ubicación y dimensionamiento óptimo de fuentes FV en redes de distribución
spellingShingle Desarrollo de un framework MATLAB-GAMS para la resolución del problema de ubicación y dimensionamiento óptimo de fuentes FV en redes de distribución
Generadores fotovoltaicos
Minimización de los costos operativos anuales totales
Redes de distribución eléctrica
Software GAMS
Interfaz MATLAB-GAMS
Metodología maestro-esclavo
Algoritmo seno-coseno
Ingeniería Eléctrica --Tesis y disertaciones académicas
Ubicación y dimensionamiento óptimo de fuentes fotovoltaicas en redes de distribución
Planificación de redes de distribución eléctrica con energía solar fotovoltaica
Interconexión de MATLAB y GAMS para la resolución de problemas de optimización en redes de distribución
Minimization of total annual operating costs
Electrical distribution networks
GAMS software
MATLAB-GAMS interface
Master–slave methodology
Sine–cosine algorithm
title_short Desarrollo de un framework MATLAB-GAMS para la resolución del problema de ubicación y dimensionamiento óptimo de fuentes FV en redes de distribución
title_full Desarrollo de un framework MATLAB-GAMS para la resolución del problema de ubicación y dimensionamiento óptimo de fuentes FV en redes de distribución
title_fullStr Desarrollo de un framework MATLAB-GAMS para la resolución del problema de ubicación y dimensionamiento óptimo de fuentes FV en redes de distribución
title_full_unstemmed Desarrollo de un framework MATLAB-GAMS para la resolución del problema de ubicación y dimensionamiento óptimo de fuentes FV en redes de distribución
title_sort Desarrollo de un framework MATLAB-GAMS para la resolución del problema de ubicación y dimensionamiento óptimo de fuentes FV en redes de distribución
dc.contributor.advisor.none.fl_str_mv Montoya Giraldo, Oscar Danilo
dc.contributor.orcid.spa.fl_str_mv Montoya Giraldo, Oscar Danilo [0000-0001-6051-4925]
dc.subject.spa.fl_str_mv Generadores fotovoltaicos
Minimización de los costos operativos anuales totales
Redes de distribución eléctrica
Software GAMS
Interfaz MATLAB-GAMS
Metodología maestro-esclavo
Algoritmo seno-coseno
topic Generadores fotovoltaicos
Minimización de los costos operativos anuales totales
Redes de distribución eléctrica
Software GAMS
Interfaz MATLAB-GAMS
Metodología maestro-esclavo
Algoritmo seno-coseno
Ingeniería Eléctrica --Tesis y disertaciones académicas
Ubicación y dimensionamiento óptimo de fuentes fotovoltaicas en redes de distribución
Planificación de redes de distribución eléctrica con energía solar fotovoltaica
Interconexión de MATLAB y GAMS para la resolución de problemas de optimización en redes de distribución
Minimization of total annual operating costs
Electrical distribution networks
GAMS software
MATLAB-GAMS interface
Master–slave methodology
Sine–cosine algorithm
dc.subject.lemb.spa.fl_str_mv Ingeniería Eléctrica --Tesis y disertaciones académicas
Ubicación y dimensionamiento óptimo de fuentes fotovoltaicas en redes de distribución
Planificación de redes de distribución eléctrica con energía solar fotovoltaica
Interconexión de MATLAB y GAMS para la resolución de problemas de optimización en redes de distribución
dc.subject.keyword.spa.fl_str_mv Minimization of total annual operating costs
Electrical distribution networks
GAMS software
MATLAB-GAMS interface
Master–slave methodology
Sine–cosine algorithm
description Este trabajo aborda el problema de planificación en cuanto a la ubicación y dimensionamiento de generadores fotovoltaicos en redes de distribución con topología radial. Este problema se modela matemáticamente mediante un modelo de programación no lineal de enteros mixtos (MINLP), que busca reducir los costos totales anuales de operación del sistema para un horizonte de planificación de 20 años. La función objetivo utilizada en este documento comprende tres elementos: (i) los costos de compra de energía en el nodo de la subestación (es decir, el nodo de suministro principal), (ii) los costos de inversión para la integración de generadores fotovoltaicos, y (iii) los costos asociados con la operación y el mantenimiento de estos dispositivos. Para solucionar este problema se propone la interconexión del software MATLAB y GAMS, utilizando una metodología maestro-esclavo, con lo cual se logra una solución de alta calidad a este problema. En la etapa maestra, el software MATLAB se utiliza como herramienta para programar una versión discreta del algoritmo seno-coseno (DSCA), que determina las ubicaciones donde se instalarán los generadores fotovoltaicos. En la etapa esclava, utilizando uno de los solucionadores del software GAMS (BONMIN) con las ubicaciones conocidas de los generadores fotovoltaicos, se resuelve el modelo MINLP que representa el problema a estudiar para encontrar el valor de la función objetivo y la nominal. potencia de los generadores fotovoltaicos. Los resultados numéricos alcanzados en los sistemas IEEE de 33 y 69 nodos se comparan con la solución del modelo de programación cónica entera mixta reportada en la literatura especializada, demostrando así la eficiencia y robustez de la metodología de optimización propuesta. que determina las ubicaciones donde se instalarán los generadores fotovoltaicos.
publishDate 2023
dc.date.created.none.fl_str_mv 2023-03-03
dc.date.accessioned.none.fl_str_mv 2024-05-23T21:01:37Z
dc.date.available.none.fl_str_mv 2024-05-23T21:01:37Z
dc.type.spa.fl_str_mv bachelorThesis
dc.type.degree.spa.fl_str_mv Producción Académica
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/35481
url http://hdl.handle.net/11349/35481
dc.language.iso.spa.fl_str_mv spa
language spa
dc.rights.*.fl_str_mv CC0 1.0 Universal
dc.rights.coar.fl_str_mv http://purl.org/coar/access_right/c_abf2
dc.rights.uri.*.fl_str_mv http://creativecommons.org/publicdomain/zero/1.0/
dc.rights.acceso.spa.fl_str_mv Abierto (Texto Completo)
rights_invalid_str_mv CC0 1.0 Universal
http://creativecommons.org/publicdomain/zero/1.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/35481/7/resources-12-00035.pdf.jpg
http://repository.udistrital.edu.co/bitstream/11349/35481/8/Licencia%20de%20uso%20y%20publicacion.pdf.jpg
http://repository.udistrital.edu.co/bitstream/11349/35481/5/license_rdf
http://repository.udistrital.edu.co/bitstream/11349/35481/1/resources-12-00035.pdf
http://repository.udistrital.edu.co/bitstream/11349/35481/4/Licencia%20de%20uso%20y%20publicacion.pdf
http://repository.udistrital.edu.co/bitstream/11349/35481/6/license.txt
bitstream.checksum.fl_str_mv eb8b2a0e7ae5c835778fc7e758e24702
c0f44f1b8b06925e11dc96ec1539e946
42fd4ad1e89814f5e4a476b409eb708c
298298edde52c4d25090be6826f53a55
8c5507c97b2d20a1c47e344009d4add1
997daf6c648c962d566d7b082dac908d
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_ 1814111287698784256
spelling Montoya Giraldo, Oscar Danilowill be generated::orcid::0000-0001-6051-4925600Montoya Giraldo, Oscar Danilo [0000-0001-6051-4925]Guzmán Romero, David Steveen2024-05-23T21:01:37Z2024-05-23T21:01:37Z2023-03-03http://hdl.handle.net/11349/35481Este trabajo aborda el problema de planificación en cuanto a la ubicación y dimensionamiento de generadores fotovoltaicos en redes de distribución con topología radial. Este problema se modela matemáticamente mediante un modelo de programación no lineal de enteros mixtos (MINLP), que busca reducir los costos totales anuales de operación del sistema para un horizonte de planificación de 20 años. La función objetivo utilizada en este documento comprende tres elementos: (i) los costos de compra de energía en el nodo de la subestación (es decir, el nodo de suministro principal), (ii) los costos de inversión para la integración de generadores fotovoltaicos, y (iii) los costos asociados con la operación y el mantenimiento de estos dispositivos. Para solucionar este problema se propone la interconexión del software MATLAB y GAMS, utilizando una metodología maestro-esclavo, con lo cual se logra una solución de alta calidad a este problema. En la etapa maestra, el software MATLAB se utiliza como herramienta para programar una versión discreta del algoritmo seno-coseno (DSCA), que determina las ubicaciones donde se instalarán los generadores fotovoltaicos. En la etapa esclava, utilizando uno de los solucionadores del software GAMS (BONMIN) con las ubicaciones conocidas de los generadores fotovoltaicos, se resuelve el modelo MINLP que representa el problema a estudiar para encontrar el valor de la función objetivo y la nominal. potencia de los generadores fotovoltaicos. Los resultados numéricos alcanzados en los sistemas IEEE de 33 y 69 nodos se comparan con la solución del modelo de programación cónica entera mixta reportada en la literatura especializada, demostrando así la eficiencia y robustez de la metodología de optimización propuesta. que determina las ubicaciones donde se instalarán los generadores fotovoltaicos.This paper addresses the planning problem regarding the location and sizing of PV generators in distribution networks with a radial topology. This problem is mathematically modeled using a mixed integer nonlinear programming (MINLP) model, which seeks to reduce the total annual operating costs of the system for a planning horizon of 20 years. The objective function used in this paper comprises three elements: (i) the energy purchase costs at the substation node (i.e., the main supply node), (ii) the investment costs for the integration of PV generators, and (iii) the costs associated with the operation and maintenance of these devices. To solve this problem, the interconnection of MATLAB and GAMS software is proposed, while using a master–slave methodology, with which a high-quality solution to this problem is achieved. In the master stage, the MATLAB software is used as a tool to program a discrete version of the sine–cosine algorithm (DSCA), which determines the locations where the PV generators are to be installed. In the slave stage, using one of the solvers of the GAMS software (BONMIN) with the known locations of the PV generators, the MINLP model representing the problem to be studied is solved in order to find the value of the objective function and the nominal power of the PV generators. The numerical results achieved in the IEEE 33- and 69-node systems are compared with the mixed-integer conic programming model solution reported in the specialized literature, thus demonstrating the efficiency and robustness of the proposed optimization methodology.pdfspaCC0 1.0 Universalhttp://creativecommons.org/publicdomain/zero/1.0/Abierto (Texto Completo)http://purl.org/coar/access_right/c_abf2Generadores fotovoltaicosMinimización de los costos operativos anuales totalesRedes de distribución eléctricaSoftware GAMSInterfaz MATLAB-GAMSMetodología maestro-esclavoAlgoritmo seno-cosenoIngeniería Eléctrica --Tesis y disertaciones académicasUbicación y dimensionamiento óptimo de fuentes fotovoltaicas en redes de distribuciónPlanificación de redes de distribución eléctrica con energía solar fotovoltaicaInterconexión de MATLAB y GAMS para la resolución de problemas de optimización en redes de distribuciónMinimization of total annual operating costsElectrical distribution networksGAMS softwareMATLAB-GAMS interfaceMaster–slave methodologySine–cosine algorithmDesarrollo de un framework MATLAB-GAMS para la resolución del problema de ubicación y dimensionamiento óptimo de fuentes FV en redes de distribuciónDevelopment of a MATLAB-GAMS framework for solving the problem regarding the optimal location and sizing of FV sources in distribution networksbachelorThesisProducción Académicainfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fTHUMBNAILresources-12-00035.pdf.jpgresources-12-00035.pdf.jpgIM Thumbnailimage/jpeg19509http://repository.udistrital.edu.co/bitstream/11349/35481/7/resources-12-00035.pdf.jpgeb8b2a0e7ae5c835778fc7e758e24702MD57open accessLicencia de uso y publicacion.pdf.jpgLicencia de uso y publicacion.pdf.jpgIM Thumbnailimage/jpeg13028http://repository.udistrital.edu.co/bitstream/11349/35481/8/Licencia%20de%20uso%20y%20publicacion.pdf.jpgc0f44f1b8b06925e11dc96ec1539e946MD58open accessCC-LICENSElicense_rdflicense_rdfapplication/rdf+xml; charset=utf-8701http://repository.udistrital.edu.co/bitstream/11349/35481/5/license_rdf42fd4ad1e89814f5e4a476b409eb708cMD55open accessORIGINALresources-12-00035.pdfresources-12-00035.pdfArtículo descargado de revistaapplication/pdf430147http://repository.udistrital.edu.co/bitstream/11349/35481/1/resources-12-00035.pdf298298edde52c4d25090be6826f53a55MD51open accessLicencia de uso y publicacion.pdfLicencia de uso y publicacion.pdfLicencia de uso y publicaciónapplication/pdf315550http://repository.udistrital.edu.co/bitstream/11349/35481/4/Licencia%20de%20uso%20y%20publicacion.pdf8c5507c97b2d20a1c47e344009d4add1MD54metadata only accessLICENSElicense.txtlicense.txttext/plain; charset=utf-87167http://repository.udistrital.edu.co/bitstream/11349/35481/6/license.txt997daf6c648c962d566d7b082dac908dMD56open access11349/35481oai:repository.udistrital.edu.co:11349/354812024-05-24 01:04:56.815open accessRepositorio Institucional Universidad Distrital - RIUDrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMCgpUw6lybWlub3MgeSBjb25kaWNpb25lcyBkZSB1c28gcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyAoUklVRCkKCkNvbW8gdGl0dWxhcihlcykgZGVsKG9zKSBkZXJlY2hvKHMpIGRlIGF1dG9yLCBjb25maWVybyAoZXJpbW9zKSBhIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChlbiBhZGVsYW50ZSwgTEEgVU5JVkVSU0lEQUQpIHVuYSBsaWNlbmNpYSBwYXJhIHVzbyBubyBleGNsdXNpdmEsIGxpbWl0YWRhIHkgZ3JhdHVpdGEgc29icmUgbGEgb2JyYSBxdWUgaW50ZWdyYXLDoSBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIChlbiBhZGVsYW50ZSwgUklVRCksIGRlIGFjdWVyZG8gYSBsYXMgc2lndWllbnRlcyByZWdsYXMsIGxhcyBjdWFsZXMgZGVjbGFybyAoYW1vcykgY29ub2NlciB5IGFjZXB0YXI6CgphKQlFc3RhcsOhIHZpZ2VudGUgYSBwYXJ0aXIgZGUgbGEgZmVjaGEgZW4gcXVlIHNlIGluY2x1eWEgZW4gZWwgUklVRCB5IGhhc3RhIHBvciB1biBwbGF6byBkZSBkaWV6ICgxMCkgQcOxb3MsIHByb3Jyb2dhYmxlIGluZGVmaW5pZGFtZW50ZSBwb3IgZWwgdGllbXBvIHF1ZSBkdXJlIGVsIGRlcmVjaG8gUGF0cmltb25pYWwgZGVsIGF1dG9yOyBsYSBjdWFsIHBvZHLDoSBkYXJzZSBwb3IgdGVybWluYWRhIHByZXZpYSBzb2xpY2l0dWQgYSBMQSBVTklWRVJTSURBRCBwb3IgZXNjcml0byBjb24gdW5hIGFudGVsYWNpw7NuIGRlIGRvcyAoMikgbWVzZXMgYW50ZXMgZGVsIHZlbmNpbWllbnRvIGRlbCBwbGF6byBpbmljaWFsIG8gZWwgZGUgc3UocykgcHLDs3Jyb2dhKHMpLgoKYikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIHB1YmxpY2FyIGxhIG9icmEgZW4gbGFzIGRpc3RpbnRhcyB2ZXJzaW9uZXMgcmVxdWVyaWRhcyBwb3IgZWwgUklVRCAoZGlnaXRhbCwgaW1wcmVzbywgZWxlY3Ryw7NuaWNvIHUgb3RybyBtZWRpbyBjb25vY2lkbyBvIHBvciBjb25vY2VyKSBMQSBVTklWRVJTSURBRCBubyBzZXLDoSByZXNwb25zYWJsZSBlbiBlbCBldmVudG8gcXVlIGVsIGRvY3VtZW50byBhcGFyZXpjYSByZWZlcmVuY2lhZG8gZW4gbW90b3JlcyBkZSBiw7pzcXVlZGEgbyByZXBvc2l0b3Jpb3MgZGlmZXJlbnRlcyBhbCBSSVVELCB1bmEgdmV6IGVsKG9zKSBhdXRvcihlcykgc29saWNpdGVuIHN1IGVsaW1pbmFjacOzbiBkZWwgUklVRCwgZGFkbyBxdWUgbGEgbWlzbWEgc2Vyw6EgcHVibGljYWRhIGVuIEludGVybmV0LgoKYykJTGEgYXV0b3JpemFjacOzbiBzZSBoYWNlIGEgdMOtdHVsbyBncmF0dWl0bywgcG9yIGxvIHRhbnRvLCBsb3MgYXV0b3JlcyByZW51bmNpYW4gYSByZWNpYmlyIGJlbmVmaWNpbyBhbGd1bm8gcG9yIGxhIHB1YmxpY2FjacOzbiwgZGlzdHJpYnVjacOzbiwgY29tdW5pY2FjacOzbiBww7pibGljYSB5IGN1YWxxdWllciBvdHJvIHVzbyBxdWUgc2UgaGFnYSBlbiBsb3MgdMOpcm1pbm9zIGRlIGxhIHByZXNlbnRlIGxpY2VuY2lhIHkgZGUgbGEgbGljZW5jaWEgZGUgdXNvIGNvbiBxdWUgc2UgcHVibGljYSAoQ3JlYXRpdmUgQ29tbW9ucykuCgpkKQlMb3MgY29udGVuaWRvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQgc29uIG9icmEocykgb3JpZ2luYWwoZXMpIHNvYnJlIGxhIGN1YWwoZXMpIGVsKG9zKSBhdXRvcihlcykgY29tbyB0aXR1bGFyZXMgZGUgbG9zIGRlcmVjaG9zIGRlIGF1dG9yLCBhc3VtZW4gdG90YWwgcmVzcG9uc2FiaWxpZGFkIHBvciBlbCBjb250ZW5pZG8gZGUgc3Ugb2JyYSBhbnRlIExBIFVOSVZFUlNJREFEIHkgYW50ZSB0ZXJjZXJvcy4gRW4gdG9kbyBjYXNvIExBIFVOSVZFUlNJREFEIHNlIGNvbXByb21ldGUgYSBpbmRpY2FyIHNpZW1wcmUgbGEgYXV0b3LDrWEgaW5jbHV5ZW5kbyBlbCBub21icmUgZGVsIGF1dG9yIHkgbGEgZmVjaGEgZGUgcHVibGljYWNpw7NuLgoKZSkJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGluY2x1aXIgbGEgb2JyYSBlbiBsb3Mgw61uZGljZXMgeSBidXNjYWRvcmVzIHF1ZSBlc3RpbWVuIG5lY2VzYXJpb3MgcGFyYSBtYXhpbWl6YXIgbGEgdmlzaWJpbGlkYWQgZWwgdXNvIHkgZWwgaW1wYWN0byBkZSBsYSBwcm9kdWNjacOzbiBjaWVudMOtZmljYSwgYXJ0w61zdGljYSB5IGFjYWTDqW1pY2EgZW4gbGEgY29tdW5pZGFkIGxvY2FsLCBuYWNpb25hbCBvIGludGVybmFjaW9uYWwuCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbwoKQXV0b3IgICAgICAgQXBlbGxpZG9zICAgICAgICAgTm9tYnJlcwoKMQoKMgoKMwoKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8KCmspCUFjZXB0byhhbW9zKSBxdWUgTEEgVU5JVkVSU0lEQUQgbm8gc2UgcmVzcG9uc2FiaWxpemEgcG9yIGxhcyBpbmZyYWNjaW9uZXMgYSBsYSBwcm9waWVkYWQgaW50ZWxlY3R1YWwgbyBEZXJlY2hvcyBkZSBBdXRvciBjYXVzYWRhcyBwb3IgbG9zIHRpdHVsYXJlcyBkZSBsYSBwcmVzZW50ZSBMaWNlbmNpYSB5IGRlY2xhcmFtb3MgcXVlIG1hbnRlbmRyw6kgKGVtb3MpIGluZGVtbmUgYSBMQSBVTklWRVJTSURBRCBwb3IgbGFzIHJlY2xhbWFjaW9uZXMgbGVnYWxlcyBkZSBjdWFscXVpZXIgdGlwbyBxdWUgbGxlZ2FyZW4gYSBwcmVzZW50YXJzZSBwb3IgdmlvbGFjacOzbiBkZSBkZXJlY2hvcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIGRlIEF1dG9yIHJlbGFjaW9uYWRvcyBjb24gbG9zIGRvY3VtZW50b3MgcmVnaXN0cmFkb3MgZW4gZWwgUklVRC4KCmwpCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGxhIG9icmEgb2JqZXRvIGRlIGxhIHByZXNlbnRlIGF1dG9yaXphY2nDs24gZXMgb3JpZ2luYWwsIGRlIGV4Y2x1c2l2YSBhdXRvcsOtYSwgeSBzZSByZWFsaXrDsyBzaW4gdmlvbGFyIG8gdXN1cnBhciBkZXJlY2hvcyBkZSBhdXRvciBkZSB0ZXJjZXJvczsgZGUgdGFsIHN1ZXJ0ZSwgZW4gY2FzbyBkZSBwcmVzZW50YXJzZSBjdWFscXVpZXIgcmVjbGFtYWNpw7NuIG8gYWNjacOzbiBwb3IgcGFydGUgZGUgdW4gdGVyY2VybyBlbiBjdWFudG8gYSBsb3MgZGVyZWNob3MgZGUgYXV0b3Igc29icmUgbGEgb2JyYSwgZWwgKGxvcykgZXN0dWRpYW50ZShzKSDigJMgYXV0b3IoZXMpIGFzdW1pcsOhKG4pIHRvZGEgbGEgcmVzcG9uc2FiaWxpZGFkIHkgc2FsZHLDoShuKSBlbiBkZWZlbnNhIGRlIGxvcyBkZXJlY2hvcyBhcXXDrSBhdXRvcml6YWRvcy4gUGFyYSB0b2RvcyBsb3MgZWZlY3RvcywgTEEgVU5JVkVSU0lEQUQgYWN0w7phIGNvbW8gdW4gdGVyY2VybyBkZSBidWVuYSBmZS4KCgptKQlFbCAobG9zKSBhdXRvcihlcykgbWFuaWZpZXN0YShtb3MpIHF1ZSBjb25vemNvKGNlbW9zKSBsYSBhdXRvbm9tw61hIHkgbG9zIGRlcmVjaG9zLCBxdWUgcG9zZWUobW9zKSBzb2JyZSBsYSBvYnJhIHksIGNvbW8gdGFsLCBlcyAoc29tb3MpIHJlc3BvbnNhYmxlKHMpIGRlbCBhbGNhbmNlIGp1csOtZGljbyB5IGxlZ2FsLCBkZSBlc2NvZ2VyIGxhIG9wY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIG8gZGUgcmVzdHJpY2Npw7NuIGRlIGxhIHB1YmxpY2FjacOzbiBkZWwgZG9jdW1lbnRvIHJlZ2lzdHJhZG8gZW4gZWwgUklVRC4KCgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MKREVSRUNIT1MgWSBPQkxJR0FDSU9ORVMgUkVRVUVSSURPUyBQT1IgRUwgUkVTUEVDVElWTyBDT05UUkFUTyBPIEFDVUVSRE8uCgoKCgoKCgoKCgoKCgoKCgoKCgoKCkVuIGNvbnN0YW5jaWEgZGUgbG8gYW50ZXJpb3IsIGZpcm1vKGFtb3MpIGVsIHByZXNlbnRlIGRvY3VtZW50bywgZW4gbGEgY2l1ZGFkIGRlIEJvZ290w6EsIEQuQy4sIGEgbG9zCgoKRklSTUEgREUgTE9TIFRJVFVMQVJFUyBERSBERVJFQ0hPUyBERSBBVVRPUgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCSAgICAgIENvcnJlbyBFbGVjdHLDs25pY28KCjEKCjIKCjMKCk5vbWJyZSBkZSBEaXJlY3RvcihlcykgZGUgR3JhZG86CgoxCgoyCgozCgpOb21icmUgRmFjdWx0YWQgeSBQcm95ZWN0byBDdXJyaWN1bGFyOgoKRmFjdWx0YWQJUHJveWVjdG8gQ3VycmljdWxhcgoKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEK