Nonlinear Robust H-Infinity PID Controller for the Multivariable System Quadrotor

This paper presents the methodology of design of a nonlinear robust controller for attitude regulation and its implementation in an experimental platform of an unmanned aerial vehicle (UAV) quadrotor. Details on the kinematic and dynamic modeling based on the Euler-Lagrange formalism are provided, a...

ver descrição completa

Detalhes bibliográficos
Autor: Minchala Ávila, Luis Ismael
Tipo de documento: artigo
Estado:Versão publicada
Data de publicação:2016
País:Ecuador
Recursos:Universidad de Cuenca
Repositório:Repositorio Universidad de Cuenca
OAI Identifier:oai:dspace.ucuenca.edu.ec:123456789/29098
Acesso em linha:https://www.scopus.com/inward/record.uri?eid=2-s2.0-84968756971&doi=10.1109%2fTLA.2016.7459596&partnerID=40&md5=420dd9fdded37e00ca758c343f2ba1b1
http://dspace.ucuenca.edu.ec/handle/123456789/29098
Access Level:Acceso aberto
Palavra-chave:Attitude Regulation
Nonlinear System
Quadrotor
Robust Control
Uav
id EC_52be3cef611ca7920f4617df6a7e0ad5
oai_identifier_str oai:dspace.ucuenca.edu.ec:123456789/29098
network_acronym_str EC
network_name_str Ecuador
repository_id_str
dc.title.none.fl_str_mv Nonlinear Robust H-Infinity PID Controller for the Multivariable System Quadrotor
title Nonlinear Robust H-Infinity PID Controller for the Multivariable System Quadrotor
spellingShingle Nonlinear Robust H-Infinity PID Controller for the Multivariable System Quadrotor
Minchala Ávila, Luis Ismael
Attitude Regulation
Nonlinear System
Quadrotor
Robust Control
Uav
title_short Nonlinear Robust H-Infinity PID Controller for the Multivariable System Quadrotor
title_full Nonlinear Robust H-Infinity PID Controller for the Multivariable System Quadrotor
title_fullStr Nonlinear Robust H-Infinity PID Controller for the Multivariable System Quadrotor
title_full_unstemmed Nonlinear Robust H-Infinity PID Controller for the Multivariable System Quadrotor
title_sort Nonlinear Robust H-Infinity PID Controller for the Multivariable System Quadrotor
dc.creator.none.fl_str_mv Minchala Ávila, Luis Ismael
author Minchala Ávila, Luis Ismael
author_facet Minchala Ávila, Luis Ismael
author_role author
dc.subject.none.fl_str_mv Attitude Regulation
Nonlinear System
Quadrotor
Robust Control
Uav
topic Attitude Regulation
Nonlinear System
Quadrotor
Robust Control
Uav
description This paper presents the methodology of design of a nonlinear robust controller for attitude regulation and its implementation in an experimental platform of an unmanned aerial vehicle (UAV) quadrotor. Details on the kinematic and dynamic modeling based on the Euler-Lagrange formalism are provided, as well as the particulars of the design of a nonlinear robust H-infinity PID controller to regulate the rotational moments. The performance and effectiveness of the proposed controller are tested in a simulation and an experimental platform. The performance of the proposed controller is compared with a conventional PID controller by using the integral square error (ISE) as performance parameter. Experimental results help to demonstrate the correct operation of the system for real-time applications in the presence of unmodeled dynamics and the uncertainties of the parameters.
publishDate 2016
dc.date.issued.none.fl_str_mv 2016-03-01
dc.date.accessioned.none.fl_str_mv 2018-01-11T16:47:24Z
dc.date.available.none.fl_str_mv 2018-01-11T16:47:24Z
dc.type.none.fl_str_mv info:eu-repo/semantics/publishedVersion
info:eu-repo/semantics/article
format article
status_str publishedVersion
dc.identifier.issn.none.fl_str_mv 15480992
dc.identifier.uri.none.fl_str_mv https://www.scopus.com/inward/record.uri?eid=2-s2.0-84968756971&doi=10.1109%2fTLA.2016.7459596&partnerID=40&md5=420dd9fdded37e00ca758c343f2ba1b1
http://dspace.ucuenca.edu.ec/handle/123456789/29098
dc.identifier.doi.none.fl_str_mv 10.1109/TLA.2016.7459596
identifier_str_mv 15480992
10.1109/TLA.2016.7459596
url https://www.scopus.com/inward/record.uri?eid=2-s2.0-84968756971&doi=10.1109%2fTLA.2016.7459596&partnerID=40&md5=420dd9fdded37e00ca758c343f2ba1b1
http://dspace.ucuenca.edu.ec/handle/123456789/29098
dc.language.iso.none.fl_str_mv en_US
language_invalid_str_mv en_US
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv IEEE COMPUTER SOCIETY
publisher.none.fl_str_mv IEEE COMPUTER SOCIETY
dc.source.none.fl_str_mv IEEE Latin America Transactions
reponame:Repositorio Universidad de Cuenca
instname:Universidad de Cuenca
instacron:UCUENCA
instname_str Universidad de Cuenca
instacron_str UCUENCA
institution UCUENCA
reponame_str Repositorio Universidad de Cuenca
collection Repositorio Universidad de Cuenca
bitstream.url.fl_str_mv https://dspace.ucuenca.edu.ec/bitstreams/5d5da5cf-1d0d-4e6a-86e4-640c06e4a374/download
https://dspace.ucuenca.edu.ec/bitstreams/5078e54c-08e0-47e3-8de2-307472bef5ea/download
https://dspace.ucuenca.edu.ec/bitstreams/416d2351-cdaa-407d-8087-46c44ede91dd/download
https://dspace.ucuenca.edu.ec/bitstreams/49a1304c-aecd-4123-9676-d3fb6097f426/download
bitstream.checksum.fl_str_mv 7a31ccbb52fd9daf39739c5adcf8a953
f1349357eb9745d0313ac62cac94354e
8f9b75d7c157ae756c96db514efbf794
9ec9c491df26553b2672048b0cf6dca8
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositorio Universidad de Cuenca - Universidad de Cuenca
repository.mail.fl_str_mv .
_version_ 1873868941404667904
spelling virtual::1021-12018-01-11T16:47:24Z2018-01-11T16:47:24Z2016-03-0115480992https://www.scopus.com/inward/record.uri?eid=2-s2.0-84968756971&doi=10.1109%2fTLA.2016.7459596&partnerID=40&md5=420dd9fdded37e00ca758c343f2ba1b1http://dspace.ucuenca.edu.ec/handle/123456789/2909810.1109/TLA.2016.7459596This paper presents the methodology of design of a nonlinear robust controller for attitude regulation and its implementation in an experimental platform of an unmanned aerial vehicle (UAV) quadrotor. Details on the kinematic and dynamic modeling based on the Euler-Lagrange formalism are provided, as well as the particulars of the design of a nonlinear robust H-infinity PID controller to regulate the rotational moments. The performance and effectiveness of the proposed controller are tested in a simulation and an experimental platform. The performance of the proposed controller is compared with a conventional PID controller by using the integral square error (ISE) as performance parameter. Experimental results help to demonstrate the correct operation of the system for real-time applications in the presence of unmodeled dynamics and the uncertainties of the parameters.en_USIEEE COMPUTER SOCIETYIEEE Latin America Transactionsreponame:Repositorio Universidad de Cuencainstname:Universidad de Cuencainstacron:UCUENCAAttitude RegulationNonlinear SystemQuadrotorRobust ControlUavNonlinear Robust H-Infinity PID Controller for the Multivariable System Quadrotorinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/article03014534862022-01-01 0:00minchala, l.i., departamento de ingenieriá eléctrica, electrónica y de telecomunicaciones de la universidad de cuenca, cuenca, ecuador14SCOPUS0.247Q26info:eu-repo/semantics/openAccessMinchala Ávila, Luis IsmaelPublicationa3e784e2-0457-4d35-911e-12908570f43cvirtual::1021-1a3e784e2-0457-4d35-911e-12908570f43cvirtual::1021-1THUMBNAILdocumento.pdf.jpgdocumento.pdf.jpgGenerated Thumbnailimage/jpeg1034https://dspace.ucuenca.edu.ec/bitstreams/5d5da5cf-1d0d-4e6a-86e4-640c06e4a374/download7a31ccbb52fd9daf39739c5adcf8a953MD54ORIGINALdocumento.pdfapplication/pdf172975https://dspace.ucuenca.edu.ec/bitstreams/5078e54c-08e0-47e3-8de2-307472bef5ea/downloadf1349357eb9745d0313ac62cac94354eMD51LICENSElicense.txttext/plain20414https://dspace.ucuenca.edu.ec/bitstreams/416d2351-cdaa-407d-8087-46c44ede91dd/download8f9b75d7c157ae756c96db514efbf794MD52TEXTdocumento.pdf.txtdocumento.pdf.txtExtracted texttext/plain147https://dspace.ucuenca.edu.ec/bitstreams/49a1304c-aecd-4123-9676-d3fb6097f426/download9ec9c491df26553b2672048b0cf6dca8MD53123456789/290982025-04-07 11:24:34.251open.accessoai:dspace.ucuenca.edu.ec:123456789/29098https://dspace.ucuenca.edu.ecInstitucionalhttp://dspace.ucuenca.edu.ec/Universidad públicahttps://www.ucuenca.edu.ec/http://dspace.ucuenca.edu.ec/oai.Ecuador...opendoar:41862025-04-07T16:24:34Repositorio Universidad de Cuenca - Universidad de CuencafalseTGljZW5jaWENCg0KU0UgQ09ORklFUkUgTEEgT0JSQSAoVEFMIENPTU8gU0UgREVGSU5FIEEgQ09OVElOVUFDScOTTikgU0VHw5pOIExBUyBDT05ESUNJT05FUyBERSBFU1RBIExJQ0VOQ0lBIFDDmkJMSUNBIERFIENSRUFUSVZFIENPTU1PTlMgKOKAnENDUEzigJ0gTyDigJxMSUNFTkNJQeKAnSkuIExBIE9CUkEgRVNUw4EgUFJPVEVHSURBIFBPUiBMQSBMRUdJU0xBQ0nDk04gVklHRU5URSBFTiBNQVRFUklBIERFIERFUkVDSE9TIERFIEFVVE9SIFkgREVSRUNIT1MgQ09ORVhPUyBFTiBFTCBFQ1VBRE9SLCBZL1UgT1RSQVMgTEVZRVMgQVBMSUNBQkxFUy4gU0UgUFJPSMONQkUgVE9ETyBVU08gREUgTEEgT0JSQSBFWENFUFRPIEVMIEFVVE9SSVpBRE8gU0VHw5pOIEVTVEEgTElDRU5DSUEgTyBMQVMgTEVZRVMgQU5URVMgTUVOQ0lPTkFEQVMuDQoNCkFMIEVKRVJDRVIgQ1VBTFFVSUVSIERFUkVDSE8gT1RPUkdBRE8gRU4gRVNUQSBMSUNFTkNJQSwgRUwgTElDRU5DSUFUQVJJTyBBQ0VQVEEgWSBBQ1VFUkRBIENVTVBMSVIgTEFTIENPTkRJQ0lPTkVTIERFIExBIE1JU01BLiBTSSBFTiBVTkEgSU5URVJQUkVUQUNJw5NOIE3DgVMgQU1QTElBLCBFU1RBIExJQ0VOQ0lBIFBVRElFUkUgQ09OU0lERVJBUlNFIFVOIENPTlRSQVRPLCBFTCBMSUNFTkNJQU5URSBMRSBPVE9SR0EgTE9TIERFUkVDSE9TIEVOIEVMTEEgQ09OVEVOSURPUyBUT01BTkRPIEVOIENVRU5UQSBTVSBBQ0VQVEFDScOTTiBERSBESUNIT1MgVMOJUk1JTk9TIFkgQ09ORElDSU9ORVMuDQoNCjEuIERlZmluaWNpb25lcw0KDQrigJxPYnJhIERlcml2YWRh4oCdIE9icmFzIHF1ZSByZXZpc3RhbiBjYXJhY3RlcsOtc3RpY2FzIGRlIG9yaWdpbmFsaWRhZCB0YWxlcyBjb21vOiB0cmFkdWNjaW9uZXMsIHJlc8O6bWVuZXMgeSBleHRyYWN0b3M7IGFycmVnbG9zIG11c2ljYWxlcyB5IGxhcyBkZW3DoXMgdHJhbnNmb3JtYWNpb25lcyBkZSB1bmEgb2JyYSBsaXRlcmFyaWEgbyBhcnTDrXN0aWNhOyBncmFiYWNpb25lcyBvIGVqZWN1Y2lvbmVzIGUgaW5jbHV5ZSBhZGFwdGFjaW9uZXMgY2luZW1hdG9ncsOhZmljYXMgbyBjdWFscXVpZXIgb3RyYSBmb3JtYSBlbiBxdWUgbGEgT2JyYSBwdWVkYSBzZXIgcmV0cmFuc21pdGlkYSwgdHJhbnNmb3JtYWRhIG8gYWRhcHRhZGEgaW5jbHV5ZW5kbyBjdWFscXVpZXIgZm9ybWEgcmVjb25vY2libGVtZW50ZSBkZXJpdmFkYSBkZWwgb3JpZ2luYWwsIGV4Y2VwdG8gbGFzIG9icmFzIHF1ZSBmb3JtYW4gcGFydGUgZGUgdW5hIENvbGVjY2nDs24sIGxhcyBtaXNtYXMgcXVlIG5vIHNlcsOhbiBjb25zaWRlcmFkYXMgT2JyYXMgRGVyaXZhZGFzIHBhcmEgbG9zIHByb3DDs3NpdG9zIGRlIGVzdGEgTGljZW5jaWEuIFBhcmEgZXZpdGFyIGN1YWxxdWllciBkdWRhLCBlbiBsb3MgY2Fzb3MgZW4gbG9zIGN1YWxlcyBsYSBPYnJhIHNlYSB1bmEgb2JyYSBtdXNpY2FsLCBlamVjdWNpw7NuIG8gZ3JhYmFjacOzbiBtdXNpY2FsLCBsYSBzaW5jcm9uaXphY2nDs24gZGUgbGEgb2JyYSBkZSB1bmEgZm9ybWEgY3Jvbm9tZXRyYWRhIGNvbiB1bmEgaW1hZ2VuIGVuIG1vdmltaWVudG8gKOKAnHNpbmNyb25pemFjacOzbuKAnSkgc2Vyw6EgY29uc2lkZXJhZGEgdW5hIE9icmEgRGVyaXZhZGEgcGFyYSBsb3MgcHJvcMOzc2l0b3MgZGUgZXN0YSBMaWNlbmNpYS4NCuKAnENvbGVjY2nDs27igJ0gRXMgZWwgY29uanVudG8gZGUgY29zYXMgcG9yIGxvIGNvbcO6biBkZSB1bmEgbWlzbWEgY2xhc2UgbyBnw6luZXJvLCBlbCBjb25qdW50byBkZSBvYnJhcyBsaXRlcmFyaWFzIG8gYXJ0w61zdGljYXMsIHRhbGVzIGNvbW8gZW5jaWNsb3BlZGlhcyB5IGFudG9sb2fDrWFzLCBvIGVqZWN1Y2lvbmVzLCBncmFiYWNpb25lcyBvIHRyYW5zbWlzaW9uZXMsIHUgb3RyYXMgb2JyYXMgZXhjZXB0byBsYXMgZW51bWVyYWRhcyBlbiBsYSBTZWNjacOzbiAxKGcpIHNpZ3VpZW50ZSwgcXVlLCBkZWJpZG8gYSBsYSBzZWxlY2Npw7NuIHkgYWwgYXJyZWdsbyBkZSBzdXMgY29udGVuaWRvcywgc2VhbiBjb25zaWRlcmFkYXMgY3JlYWNpb25lcyBpbnRlbGVjdHVhbGVzLCBlbiBsYXMgY3VhbGVzIGxhIE9icmEgc2UgaW5jbHV5ZSBlbiBzdSBleHRlbnNpw7NuIGNvbXBsZXRhIGVuIGZvcm1hdG8gbm8gbW9kaWZpY2FkbywganVudG8gY29uIHVuYSBvIG3DoXMgY29udHJpYnVjaW9uZXMgYWRpY2lvbmFsZXMgZGUgb3Ryb3MgdGlwb3MsIHkgY2FkYSB1bmEgZGUgbGFzIGN1YWxlcyBzZWEgY29uc2lkZXJhZGEgdW5hIE9icmEgcG9yIHNlcGFyYWRvIGUgaW5kZXBlbmRpZW50ZSBwb3Igc8OtIHNvbGEsIHkgcXVlIGVuIHN1IGNvbmp1bnRvIHNlIGNvbnNpZGVyZW4gY29tbyB1bmEgQ29sZWNjacOzbi4gVW4gdHJhYmFqbyBxdWUgY29uc3RpdHV5ZSB1bmEgQ29sZWNjacOzbiBubyBzZXLDoSBjb25zaWRlcmFkYSB1bmEgT2JyYSBEZXJpdmFkYSAodGFsIGNvbW8gc2UgZGVmaW5lIGFudGVyaW9ybWVudGUpIHBhcmEgbG9zIHByb3DDs3NpdG9zIGRlIGVzdGEgTGljZW5jaWEuDQrigJxEaXN0cmlidWNpw7Nu4oCdIFBvbmVyIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbywgZWwgb3JpZ2luYWwgbyBjb3BpYXMgZGUgbGEgT2JyYSwgbWVkaWFudGUgc3UgdmVudGEsIGFycmVuZGFtaWVudG8sIHByw6lzdGFtbyBww7pibGljbyBvIGRlIGN1YWxxdWllciBvdHJhIGZvcm1hIGNvbm9jaWRhIG8gcG9yIGNvbm9jZXJzZSBkZSB0cmFuc2ZlcmVuY2lhIGRlIGxhIHByb3BpZWRhZCwgcG9zZXNpw7NuIG8gdGVuZW5jaWEgZGUgZGljaG8gb3JpZ2luYWwgbyBjb3BpYS4NCuKAnENhdGVnb3LDrWEgZGUgTGljZW5jaWHigJ0gU2lnbmlmaWNhIGxhcyBzaWd1aWVudGVzIGF0cmlidWNpb25lcyBkZSBsYSBMaWNlbmNpYSB0YWwgY29tbyBlbCBMaWNlbmNpYW50ZSBwdWVkYSBzZWxlY2Npb25hciB5IHNlIGluZGlxdWVuIGVuIGVsIHTDrXR1bG8gZGUgZXN0YSBMaWNlbmNpYTogUmVjb25vY2ltaWVudG8sIE5vIENvbWVyY2lhbCwgQ29tcGFydGlyIHBvciBpZ3VhbC4NCuKAnExpY2VuY2lhbnRl4oCdIFNpZ25pZmljYSBlbCBpbmRpdmlkdW8sIGxvcyBpbmRpdmlkdW9zLCBsYSBlbnRpZGFkIG8gbGFzIGVudGlkYWRlcywgdGl0dWxhciBvIHRpdHVsYXJlcyBkZSBsb3MgRGVyZWNob3MgZGUgQXV0b3IsIHF1ZSBvZnJlY2VuIGxhIE9icmEgc2Vnw7puIGxhcyBlc3RpcHVsYWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLg0K4oCcQXV0b3LigJ0gRXMgbGEgcGVyc29uYSBuYXR1cmFsIHF1ZSByZWFsaXphIGxhIGNyZWFjacOzbiBpbnRlbGVjdHVhbC4gUGFyYSBsb3MgZWZlY3RvcyBkZSBlc3RhIExpY2VuY2lhIGVsIEF1dG9yIHRhbWJpw6luIGRlYmUgZW50ZW5kZXJzZSBjb21vIGVsIGFydGlzdGEsIGludMOpcnByZXRlIG8gZWplY3V0YW50ZTsgZWwgcHJvZHVjdG9yIGRlIHVuIGZvbm9ncmFtYSB5IGVsIHRpdHVsYXIgZGUgcmFkaW9kaWZ1c2nDs24gZW4gZWwgc2VudGlkbyBkZSBsb3MgRGVyZWNob3MgQ29uZXhvcy4NCuKAnE9icmHigJ1FcyB0b2RhIGNyZWFjacOzbiBpbnRlbGVjdHVhbCBvcmlnaW5hbCwgZGUgbmF0dXJhbGV6YSBhcnTDrXN0aWNhLCBjaWVudMOtZmljYSwgbyBsaXRlcmFyaWEsIHN1c2NlcHRpYmxlIGRlIHNlciBkaXZ1bGdhZGEgbyByZXByb2R1Y2lkYSBlbiBjdWFscXVpZXIgZm9ybWEgY29ub2NpZGEgbyBwb3IgY29ub2NlcnNlLiBQYXJhIGxvcyBlZmVjdG9zIGRlIGVzdGEgTGljZW5jaWEg4oCcT2JyYeKAnSB0YW1iacOpbiBkZWJlIGVudGVuZGVyc2UgY29tbyB1bmEgaW50ZXJwcmV0YWNpw7NuIG8gZWplY3VjacOzbiwgdW5hIGVtaXNpw7NuLCB1biBmb25vZ3JhbWEgZW4gZWwgc2VudGlkbyBkZSBsb3MgRGVyZWNob3MgQ29uZXhvcyBkZSBhY3VlcmRvIGNvbiBsYSBMZXkgZGUgRGVyZWNob3MgZGUgQXV0b3IsIGVuIGxhIG1lZGlkYSBlbiBxdWUgbGEgaW50ZXJwcmV0YWNpw7NuIG8gZWplY3VjacOzbiwgbGEgZW1pc2nDs24gbyBlbCBmb25vZ3JhbWEgZXN0w6luIHByb3RlZ2lkb3MgcG9yIGxhIGxleSBhcGxpY2FibGUuDQrigJxMaWNlbmNpYXRhcmlv4oCdIFBlcnNvbmEgbmF0dXJhbCBvIGp1csOtZGljYSBxdWUgZWplcmNlIHN1cyBkZXJlY2hvcyBzZWfDum4gZXN0YSBMaWNlbmNpYSB5IHF1ZSBubyBoYSBpbmZyaW5naWRvIHByZXZpYW1lbnRlIGxhcyBjb25kaWNpb25lcyBkZSBsYSBtaXNtYSBjb24gcmVzcGVjdG8gYSBsYSBPYnJhLiBPIHF1aWVuIGhhIHJlY2liaWRvIHVuIHBlcm1pc28gZXhwcmVzbyBwb3IgcGFydGUgZGVsIExpY2VuY2lhbnRlIHBhcmEgZWplcmNlciBzdXMgZGVyZWNob3Mgc2Vnw7puIGVzdGEgTGljZW5jaWEsIGEgcGVzYXIgZGUgZGljaG8gaW5jdW1wbGltaWVudG8gcHJldmlvLg0K4oCcRWplY3VjacOzbiBQw7pibGljYeKAnSBTb24gbGFzIGV4aGliaWNpb25lcyBww7pibGljYXMgZGUgbGEgT2JyYSBvIGNvbXVuaWNhY2nDs24gYWwgcMO6YmxpY28gZGUgYXF1ZWxsb3MgcmVsYXRvcyBww7pibGljb3MsIHBvciBjdWFscXVpZXIgbWVkaW8gbyBwcm9jZXNvLCBpbmNsdXllbmRvIGxhIGVqZWN1Y2nDs24gZGlnaXRhbCBww7pibGljYSBvIHBvciBtZWRpb3MgY29uZWN0YWRvcyBvIGluYWzDoW1icmljb3M7IGVzIHBvbmVyIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBsYXMgT2JyYXMgZGUgdGFsIGZvcm1hIHF1ZSBsb3MgbWllbWJyb3MgZGVsIHDDumJsaWNvIHB1ZWRhbiBhY2NlZGVyIGEgZXN0YXMgb2JyYXMgZGVzZGUgdW4gc2l0aW8geSBlbiB1biBzaXRpbyBxdWUgcGVyc29uYWxtZW50ZSBoYXlhbiBzZWxlY2Npb25hZG87IGVzIGVqZWN1dGFyIGxhIE9icmEgYW50ZSBlbCBww7pibGljbyBwb3IgY3VhbHF1aWVyIG1lZGlvIG8gcHJvY2VzbyB5IGxhIGNvbXVuaWNhY2nDs24gYWwgcMO6YmxpY28gZGUgZGljaGFzIGVqZWN1Y2lvbmVzIGRlIGxhIE9icmEsIGluY2x1eWVuZG8gbGEgZWplY3VjacOzbiBkaWdpdGFsIHDDumJsaWNhOyBkaWZ1bmRpciB5IHZvbHZlciBhIGRpZnVuZGlyIGxhIE9icmEgcG9yIGN1YWxxdWllciBtZWRpbywgc2VhIHNlw7FhbGVzLCBzb25pZG9zLCBpbcOhZ2VuZXMgdSBvdHJvIG1lZGlvIGRlIGRpZnVzacOzbi4NCuKAnFJlcHJvZHVjY2nDs27igJ0gRXMgbGEgZmlqYWNpw7NuIGRlIGxhIE9icmEgZW4gY3VhbHF1aWVyIG1lZGlvIG8gcG9yIGN1YWxxdWllciBwcm9jZWRpbWllbnRvLCBjb25vY2lkbyBvIHBvciBjb25vY2Vyc2UsIGluY2x1eWVuZG8gc3UgYWxtYWNlbmFtaWVudG8gZGlnaXRhbCwgdGVtcG9yYWwgbyBkZWZpbml0aXZvLCB5IGxhIG9idGVuY2nDs24gZGUgY29waWFzIGRlIHRvZGEgbyBwYXJ0ZSBkZSBlbGxhIHBvciBjdWFscXVpZXIgbWVkaW8gaW5jbHV5ZW5kbywgZW50cmUgb3Ryb3MsIGdyYWJhY2lvbmVzIGRlIGF1ZGlvIG8gdmlzdWFsZXMgeSBlbCBkZXJlY2hvIGRlIGdyYWJhciB5IGRlIHJlcHJvZHVjaXIgZ3JhYmFjaW9uZXMgZGUgbGEgT2JyYSwgaW5jbHVzbyBlbCBhbG1hY2VuYW1pZW50byBkZSB1bmEgZ3JhYmFjacOzbiBwcm90ZWdpZGEgbyBkZSB1bmEgZ3JhYmFjacOzbiBlbiBmb3JtYXRvIGRpZ2l0YWwgdSBvdHJvIG1lZGlvIGVsZWN0csOzbmljby4NCjIuIFVzb3MgSG9ucmFkb3MuLSBOaW5ndW5hIGVzdGlwdWxhY2nDs24gY29udGVuaWRhIGVuIGVzdGEgTGljZW5jaWEgcG9kcsOhIHNlciBpbnRlcnByZXRhZGEgY29tbyB1bmEgZGlzbWludWNpw7NuLCBsaW1pdGFjacOzbiBvIHJlc3RyaWNjacOzbiBkZSBsb3MgZGVyZWNob3MgZGVyaXZhZG9zIGRlbCB1c28gaG9ucmFkbyB5IG90cmFzIGxpbWl0YWNpb25lcyBvIGV4Y2VwY2lvbmVzIGEgbG9zIERlcmVjaG9zIGRlIEF1dG9yIGJham8gZWwgcsOpZ2ltZW4gbGVnYWwgdmlnZW50ZSBvIGRlcml2YWRvIGRlIGN1YWxxdWllciBvdHJhIG5vcm1hIGFwbGljYWJsZS4NCg0KMy4gQ29uY2VzacOzbiBkZSBsYSBMaWNlbmNpYS4tIFN1amV0byBhIGxvcyB0w6lybWlub3MgeSBhIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLCBlbCBMaWNlbmNpYW50ZSBvdG9yZ2EgYWwgTGljZW5jaWF0YXJpbyB1bmEgTGljZW5jaWEgbXVuZGlhbCwgc2luIGNvYnJvIGRlIHJlZ2Fsw61hcywgbm8gZXhjbHVzaXZhIGUgaW5kZWZpbmlkYSAoZGVwZW5kZSBkZWwgYWN1ZXJkbyBkZSBsb3MgY29udHJhdGFudGVzIGRlIGxhIExpY2VuY2lhKSwgcGFyYSBlamVyY2VyIGxvcyBkZXJlY2hvcyBkZSBMaWNlbmNpYXRhcmlvIGRlIGxhIE9icmEsIHRhbCBjb21vIHNlIGVzdGlwdWxhbiBhIGNvbnRpbnVhY2nDs246DQoNClJlcHJvZHVjaXIgbGEgT2JyYSwgZSBpbmNvcnBvcmFybGEgZW4gdW5hIG8gbcOhcyBDb2xlY2Npb25lcywgeSBhIHJlcHJvZHVjaXIgbGEgT2JyYSB0YWwgY29tbyBzZSBpbmNvcnBvcmEgZW4gbGFzIENvbGVjY2lvbmVzOw0KQSBjcmVhciB5IHJlcHJvZHVjaXIgT2JyYXMgRGVyaXZhZGFzIHNpZW1wcmUgeSBjdWFuZG8gZGljaGEgT2JyYSBEZXJpdmFkYSwgaW5jbHV5ZW5kbyBjdWFscXVpZXIgdHJhZHVjY2nDs24gZW4gY3VhbHF1aWVyIG1lZGlvLCBlZmVjdMO6ZSBsb3MgcGFzb3MgcmF6b25hYmxlcyBwYXJhIGNsYXJhbWVudGUgY29sb2NhciBldGlxdWV0YXMsIGRlbWFyY2FyLCBvIGlkZW50aWZpY2FyIGRlIGFsZ3VuYSBvdHJhIG1hbmVyYSBsb3MgY2FtYmlvcyBxdWUgc2UgcmVhbGl6YXJvbiBlbiBsYSBPYnJhIG9yaWdpbmFsLiBQb3IgZWplbXBsbywgdW5hIHRyYWR1Y2Npw7NuIGRlYmUgbWFyY2Fyc2UgY29tbyDigJxFbCB0cmFiYWpvIG9yaWdpbmFsIGZ1ZSB0cmFkdWNpZG8gZGUgaW5nbMOpcyBhIGVzcGHDsW9s4oCdLCBvIHVuYSBtb2RpZmljYWNpw7NuIGRlYmVyw6EgaW5kaWNhciDigJxFbCB0cmFiYWpvIG9yaWdpbmFsIGZ1ZSBtb2RpZmljYWRv4oCdOw0KQSBkaXN0cmlidWlyIHkgZWplY3V0YXIgcMO6YmxpY2FtZW50ZSBsYSBPYnJhIGluY2x1eWVuZG8gYXF1ZWxsYSBjdWFuZG8gc2UgaW5jb3Jwb3JhIGVuIENvbGVjY2lvbmVzOyB5LA0KQSBkaXN0cmlidWlyIHkgZWplY3V0YXIgcMO6YmxpY2FtZW50ZSBsYSBPYnJhIERlcml2YWRhLg0KU2UgcG9kcsOhbiBlamVyY2VyIGRpY2hvcyBkZXJlY2hvcyBlbiB0b2RvcyBsb3MgZm9ybWF0b3MgeSBtZWRpb3MsIHNlYW4gY29ub2NpZG9zIGFob3JhIG8gc2UgY29ub3pjYW4gZW4gZWwgZnV0dXJvLiBMb3MgZGVyZWNob3MgYW50ZXJpb3JlcyBpbmNsdXllbiBlbCBkZXJlY2hvIGEgcmVhbGl6YXIgZGljaGFzIG1vZGlmaWNhY2lvbmVzIHF1ZSBzZWFuIHTDqWNuaWNhbWVudGUgbmVjZXNhcmlhcyBwYXJhIGVqZXJjZXIgbG9zIGRlcmVjaG9zIGVuIG90cm9zIG1lZGlvcyB5IGZvcm1hdG9zLiBUb2RvcyBsb3MgZGVyZWNob3Mgbm8gY2VkaWRvcyBleHByZXNhbWVudGUgcG9yIGVsIExpY2VuY2lhbnRlLCBxdWVkYW4gcmVzZXJ2YWRvcywgaW5jbHV5ZW5kbywgcGVybyBzaW4gbGltaXRhcnNlIGEsIGxvcyBlc3RhYmxlY2lkb3MgZW4gbGEgc2VjY2nDs24gNChlKS4NCg0KNC4gUmVzdHJpY2Npb25lcy4tIExhIExpY2VuY2lhIG90b3JnYWRhIGVuIGxhIFNlY2Npw7NuIDMgc2Ugc3VqZXRhIGV4cHJlc2FtZW50ZSB5IHNlIGxpbWl0YSBzZWfDum4gbGFzIHNpZ3VpZW50ZXMgcmVzdHJpY2Npb25lczoNCg0KRWwgTGljZW5jaWF0YXJpbyBwb2Ryw6EgZGlzdHJpYnVpciBvIGVqZWN1dGFyIHDDumJsaWNhbWVudGUgbGEgT2JyYSBzb2xhbWVudGUgc2Vnw7puIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLiBEZWJlcsOhIGluY2x1aXIgdW5hIGNvcGlhIGRlbCBJZGVudGlmaWNhZG9yIGRlIFJlY3Vyc29zIFVuaWZvcm1lIChVUkksIHBvciBzdSBzaWdsYSBlbiBpbmdsw6lzKSBwYXJhIGVzdGEgTGljZW5jaWEgY29uIGNhZGEgY29waWEgZGUgbGEgT2JyYSBxdWUgZWwgTGljZW5jaWF0YXJpbyBkaXN0cmlidXlhIG8gZWplY3V0ZSBww7pibGljYW1lbnRlLiBFbCBMaWNlbmNpYXRhcmlvIG5vIHBvZHLDoSBvZnJlY2VyIG5pIGltcG9uZXIgbmluZ3VuYSBjb25kaWNpw7NuIGVuIGxhIE9icmEgcXVlIHB1ZWRhIHJlc3RyaW5naXIgbG9zIHTDqXJtaW5vcyBkZSBlc3RhIExpY2VuY2lhIG5pIGxhIGNhcGFjaWRhZCBkZSBsYSBwYXJ0ZSBxdWUgcmVjaWJlIGxhIE9icmEgcGFyYSBlamVyY2VyIGxvcyBkZXJlY2hvcyBvdG9yZ2Fkb3Mgc2Vnw7puIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLiBObyBwb2Ryw6Egb3RvcmdhciBzdWItbGljZW5jaWFzIGRlIGxhIE9icmEuIERlYmVyw6EgbWFudGVuZXIgc2luIG1vZGlmaWNhY2lvbmVzIHRvZGFzIGxhcyBub3RpZmljYWNpb25lcyBxdWUgc2UgcmVmaWVyZW4gYSBlc3RhIExpY2VuY2lhIHkgYSBsb3MgZGVzY2FyZ29zIGRlIHJlc3BvbnNhYmlsaWRhZGVzIGNvbiBjYWRhIGNvcGlhIGRlIGxhIE9icmEgcXVlIGVsIExpY2VuY2lhdGFyaW8gZGlzdHJpYnV5YSBvIGVqZWN1dGUgcMO6YmxpY2FtZW50ZS4gQ3VhbmRvIGVsIExpY2VuY2lhdGFyaW8gZGlzdHJpYnV5YSBvIGVqZWN1dGUgcMO6YmxpY2FtZW50ZSBsYSBPYnJhLCBlbCBMaWNlbmNpYXRhcmlvIG5vIHBvZHLDoSBpbXBvbmVyIG5pbmd1bmEgbWVkaWRhIHRlY25vbMOzZ2ljYSB2aWdlbnRlIGVuIGxhIE9icmEgcXVlIHB1ZWRhIHJlc3RyaW5naXIgbGEgY2FwYWNpZGFkIGRlIGxhIHBhcnRlIHF1ZSByZWNpYmUgbGEgT2JyYSBwb3IgcGFydGUgZGVsIExpY2VuY2lhdGFyaW8gcGFyYSBlamVyY2VyIGxvcyBkZXJlY2hvcyBvdG9yZ2Fkb3MgYWwgcmVjZXB0b3IsIHNlZ8O6biBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYS4gU2UgYXBsaWNhIGVzdGEgU2VjY2nDs24gNChhKSBhIGxhIE9icmEgdGFsIGNvbW8gc2UgaW5jb3Jwb3JhIGVuIHVuYSBDb2xlY2Npw7NuLCBwZXJvIHBhcmEgZXN0byBubyBoYWNlIGZhbHRhIHF1ZSBsYSBDb2xlY2Npw7NuLCBhcGFydGUgZGUgbGEgT2JyYSBlbiBzw60sIGVzdMOpIHN1amV0YSBhIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhLiBTaSBlbCBMaWNlbmNpYXRhcmlvIGVzIEF1dG9yIGRlIHVuYSBDb2xlY2Npw7NuLCBjdWFuZG8gcmVjaWJhIGxhIG5vdGlmaWNhY2nDs24gZGUgY3VhbHF1aWVyIExpY2VuY2lhbnRlLCBlbCBMaWNlbmNpYXRhcmlvIGRlYmU7IGVuIGxhIG1lZGlkYSBlbiBxdWUgc2VhIHByw6FjdGljbywgcmV0aXJhciBkZSBsYSBDb2xlY2Npw7NuIGN1YWxxdWllciBjcsOpZGl0byB0YWwgY29tbyBzZSByZXF1aWVyZSBkZSBhY3VlcmRvIGNvbiBsYSBTZWNjacOzbiA0KGQpLCBzZWfDum4gc2Ugc29saWNpdGUuIFNpIGVsIExpY2VuY2lhdGFyaW8gY3JlYSB1bmEgT2JyYSBEZXJpdmFkYSwgY3VhbmRvIHJlY2liYSBsYSBub3RpZmljYWNpw7NuIGRlIGN1YWxxdWllciBMaWNlbmNpYW50ZSwgZWwgTGljZW5jaWF0YXJpbyBkZWJlOyBlbiBsYSBtZWRpZGEgZW4gcXVlIHNlYSBwcsOhY3RpY28sIHJldGlyYXIgZGUgbGEgT2JyYSBEZXJpdmFkYSBjdWFscXVpZXIgY3LDqWRpdG8gdGFsIGNvbW8gc2UgcmVxdWllcmUgZGUgYWN1ZXJkbyBhIGxhIFNlY2Npw7NuIDQoZCksIHNlZ8O6biBzZSBzb2xpY2l0ZS4NCkVsIExpY2VuY2lhdGFyaW8gcHVlZGUgZGlzdHJpYnVpciBvIGVqZWN1dGFyIHDDumJsaWNhbWVudGUgdW5hIE9icmEgRGVyaXZhZGEgc29sYW1lbnRlIGJham8gbG9zIHNpZ3VpZW50ZXMgcGFyw6FtZXRyb3M6IChpKSBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYTsgKGlpKSB1bmEgdmVyc2nDs24gcG9zdGVyaW9yIGRlIGVzdGEgTGljZW5jaWEgY29uIGxvcyBtaXNtb3MgZWxlbWVudG9zIGRlIExpY2VuY2lhIHF1ZSBlc3RhIExpY2VuY2lhOyAoaWlpKSBsYSBMaWNlbmNpYSBDcmVhdGl2ZSBDb21tb25zIFVucG9ydGVkIHUgb3RyYSBMaWNlbmNpYSBkZSBqdXJpc2RpY2Npw7NuIGRlIENyZWF0aXZlIENvbW1vbnMgKHNlYSBwb3IgZXN0YSB2ZXJzacOzbiBkZSBMaWNlbmNpYSBvIHVuYSBwb3N0ZXJpb3IpIHF1ZSBjb250ZW5nYSBsb3MgbWlzbW9zIGVsZW1lbnRvcyBkZSBMaWNlbmNpYSBxdWUgZXN0YSBMaWNlbmNpYSAocG9yIGVqZW1wbG8sIEF0cmlidWNpw7NuIC0gTm8gQ29tZXJjaWFsIOKAkyBDb21wYXJ0aXIgSWd1YWwgMy4wIFVTKSAobGEg4oCcTGljZW5jaWEgQXBsaWNhYmxl4oCdKS4gRWwgTGljZW5jaWFudGUgZGViZXLDoSBpbmNsdWlyIHVuYSBjb3BpYSBkZWwgSWRlbnRpZmljYWRvciBkZSBSZWN1cnNvcyBVbmlmb3JtZSAoVVJJLCBwb3Igc3Ugc2lnbGEgZW4gaW5nbMOpcykgcGFyYSBlc3RhIExpY2VuY2lhLCBjb24gY2FkYSBjb3BpYSBkZSBjYWRhIE9icmEgRGVyaXZhZGEgcXVlIGVsIExpY2VuY2lhdGFyaW8gZGlzdHJpYnV5YSBvIGVqZWN1dGUgcMO6YmxpY2FtZW50ZS4gRWwgTGljZW5jaWF0YXJpbyBubyBwb2Ryw6Egb2ZyZWNlciBuaSBpbXBvbmVyIG5pbmd1bmEgY29uZGljacOzbiBlbiBsYSBPYnJhIERlcml2YWRhIHF1ZSBwdWVkYSByZXN0cmluZ2lyIGxvcyB0w6lybWlub3MgZGUgbGEgTGljZW5jaWEgQXBsaWNhYmxlIG5pIGxhIGNhcGFjaWRhZCBkZSBsYSBwYXJ0ZSBxdWUgcmVjaWJlIGxhIE9icmEgRGVyaXZhZGEgcGFyYSBlamVyY2VyIGxvcyBkZXJlY2hvcyBvdG9yZ2Fkb3MgYWwgcmVjZXB0b3Igc2Vnw7puIGxhcyBjb25kaWNpb25lcyBkZSBsYSBMaWNlbmNpYSBBcGxpY2FibGUuIERlYmVyw6EgbWFudGVuZXIgc2luIG1vZGlmaWNhY2lvbmVzIHRvZGFzIGxhcyBub3RpZmljYWNpb25lcyBxdWUgc2UgcmVmaWVyZW4gYSBsYSBMaWNlbmNpYSBBcGxpY2FibGUgeSBhIGxvcyBkZXNjYXJnb3MgZGUgbGFzIGdhcmFudMOtYXMgY29uIGNhZGEgY29waWEgZGUgbGEgT2JyYSB0YWwgY29tbyBzZSBpbmNsdXlhIGVuIGxhIE9icmEgRGVyaXZhZGEgcXVlIGVsIExpY2VuY2lhdGFyaW8gZGlzdHJpYnV5YSBvIGVqZWN1dGUgcMO6YmxpY2FtZW50ZS4gQ3VhbmRvIGVsIExpY2VuY2lhdGFyaW8gZGlzdHJpYnV5YSBvIGVqZWN1dGUgcMO6YmxpY2FtZW50ZSBsYSBPYnJhIERlcml2YWRhLCBlbCBMaWNlbmNpYXRhcmlvIG5vIHBvZHLDoSBpbXBvbmVyIG5pbmd1bmEgbWVkaWRhIHRlY25vbMOzZ2ljYSB2aWdlbnRlIGVuIGxhIE9icmEgRGVyaXZhZGEgcXVlIHB1ZWRhIHJlc3RyaW5naXIgbGEgY2FwYWNpZGFkIGRlIGxhIHBhcnRlIHF1ZSByZWNpYmUgbGEgT2JyYSBEZXJpdmFkYSBkZWwgTGljZW5jaWF0YXJpbyBwYXJhIGVqZXJjZXIgbG9zIGRlcmVjaG9zIG90b3JnYWRvcyBhbCByZWNlcHRvciBzZWfDum4gbGFzIGNvbmRpY2lvbmVzIGRlIGxhIExpY2VuY2lhIEFwbGljYWJsZS4gU2UgYXBsaWNhIGVzdGEgU2VjY2nDs24gNChiKSBhIGxhIE9icmEgRGVyaXZhZGEgdGFsIGNvbW8gc2UgaW5jb3Jwb3JhIGVuIHVuYSBDb2xlY2Npw7NuLCBwZXJvIHBhcmEgZXN0byBubyBoYWNlIGZhbHRhIHF1ZSBsYSBDb2xlY2Npw7NuLCBhcGFydGUgZGUgbGEgT2JyYSBEZXJpdmFkYSBlbiBzw60sIGVzdMOpIHN1amV0YSBhIGxhcyBjb25kaWNpb25lcyBkZSBsYSBMaWNlbmNpYSBBcGxpY2FibGUuDQpFbCBMaWNlbmNpYXRhcmlvIG5vIHBvZHLDoSBlamVyY2VyIG5pbmfDum4gZGVyZWNobyBvdG9yZ2FkbyBhIMOJbCBlbiBsYSBTZWNjacOzbiAzIGVuIG5pbmd1bmEgZm9ybWEgY3V5YSBpbnRlbmNpw7NuIHByaW5jaXBhbCB1IG9iamV0aXZvIHNlYSBsYSB2ZW50YWphIGNvbWVyY2lhbCBuaSBsYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLiBObyBzZSBjb25zaWRlcmFyw6EgcXVlIGVsIGludGVyY2FtYmlvIGRlIGxhIE9icmEgcG9yIGN1YWxxdWllciBvdHJhIE9icmEgY29uIERlcmVjaG9zIGRlIEF1dG9yIGFsIGNvbXBhcnRpciBhcmNoaXZvcyBkaWdpdGFsZXMgdGVuZ2EgbGEgaW50ZW5jacOzbiBuaSBlbCBvYmpldGl2byBkZSBsYSB2ZW50YWphIGNvbWVyY2lhbCBuaSBsYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBwcml2YWRhLCBzaWVtcHJlIHkgY3VhbmRvIG5vIGhheWEgbmluZ3VuYSBjb21wZW5zYWNpw7NuIG1vbmV0YXJpYSBlbiByZWxhY2nDs24gY29uIGVsIGludGVyY2FtYmlvIGRlIGxhcyBPYnJhcyBwcm90ZWdpZGFzIHBvciBsb3MgRGVyZWNob3MgZGUgQXV0b3IuDQpTaSBlbCBMaWNlbmNpYXRhcmlvIGRpc3RyaWJ1eWUgbyBlamVjdXRhIHDDumJsaWNhbWVudGUgbGEgT2JyYSBvIGN1YWxxdWllciBPYnJhIERlcml2YWRhIG8gQ29sZWNjacOzbiwgZWwgTGljZW5jaWF0YXJpbyBkZWJlLCBleGNlcHRvIHNpIHNlIGhhIHByZXNlbnRhZG8gdW5hIHNvbGljaXR1ZCBzZWfDum4gbGEgU2VjY2nDs24gNChhKSwgbWFudGVuZXIgaW50YWN0YXMgdG9kYXMgbGFzIG5vdGlmaWNhY2lvbmVzIGRlIERlcmVjaG9zIGRlIEF1dG9yIGRlIGxhIE9icmEgZSBpbmNsdWlyLCBkZSBmb3JtYSByYXpvbmFibGUsIGRlcGVuZGllbmRvIGRlbCBtZWRpbyBvIGZvcm1hIHF1ZSBlbCBMaWNlbmNpYXRhcmlvIGVzdMOhIHVzYW5kbzogKGkpIGVsIG5vbWJyZSBkZWwgQXV0b3IgKG8gc2V1ZMOzbmltbywgc2kgZnVlcmEgYXBsaWNhYmxlKSBzaSBmdWVyYSBzdW1pbmlzdHJhZG8gZWwgbm9tYnJlIGRlIGRpY2hhIHBhcnRlIG8gcGFydGVzLCB5L28gc2kgZWwgQXV0b3IgeS9vIGVsIExpY2VuY2lhbnRlIGRlc2lnbmFyYW4gY3VhbHF1aWVyIG90cmEgcGFydGUgbyBwYXJ0ZXMgKHBvciBlamVtcGxvLCB1biBpbnN0aXR1dG8gYXVzcGljaWFudGUsIHVuYSBlbnRpZGFkIGRlIHB1YmxpY2FjacOzbiwgdW5hIHJldmlzdGEpIHBhcmEgZWwgcmVjb25vY2ltaWVudG8gKGxhcyDigJxQYXJ0ZXMgZGVsIFJlY29ub2NpbWllbnRv4oCdKSBlbiBsYSBub3RpZmljYWNpw7NuIGRlIERlcmVjaG9zIGRlIEF1dG9yIG8gY29uZGljaW9uZXMgZGVsIHNlcnZpY2lvIGRlbCBMaWNlbmNpYW50ZSBvIHBvciBvdHJvcyBtZWRpb3MgcmF6b25hYmxlczsgKGlpKSBlbCB0w610dWxvIGRlIGxhIE9icmEgc2kgZnVlcmEgc3VtaW5pc3RyYWRvOyAoaWlpKSBlbiBsYSBtZWRpZGEgZW4gcXVlIHNlYSBwcsOhY3RpY28sIGVsIElkZW50aWZpY2Fkb3IgZGUgUmVjdXJzb3MgVW5pZm9ybWUgKFVSSSksIHNpIGxvIGh1YmllcmUsIHF1ZSBlbCBMaWNlbmNpYW50ZSBlc3BlY2lmaXF1ZSBxdWUgZXN0w6EgYXNvY2lhZG8gY29uIGxhIE9icmE7IGV4Y2VwdG8gc2kgZGljaG8gVVJJIG5vIHNlIHJlZmllcmUgYSBsYSBub3RpZmljYWNpw7NuIGRlbCBEZXJlY2hvIGRlIEF1dG9yIG5pIGEgbGEgaW5mb3JtYWNpw7NuIGRlIExpY2VuY2lhcyBwYXJhIGxhIE9icmE7IHksIChpdikgZW4gZm9ybWEgY29oZXJlbnRlIGNvbiBsYSBTZWNjacOzbiAzKGIpLCBlbiBlbCBjYXNvIGRlIHVuYSBPYnJhIERlcml2YWRhLCB1biBjcsOpZGl0byBxdWUgaWRlbnRpZmlxdWUgZWwgdXNvIGRlIGxhIE9icmEgZW4gbGEgT2JyYSBEZXJpdmFkYSAocG9yIGVqZW1wbG8sIOKAnFRyYWR1Y2Npw7NuIGFsIGZyYW5jw6lzIGRlbCBUcmFiYWpvIHBvciBlbCBBdXRvcuKAnSwgbyDigJxHdWnDs24gYmFzYWRvIGVuIGVsIFRyYWJham8gb3JpZ2luYWwgcG9yIGVsIEF1dG9y4oCdKS4gU2UgcG9kcsOhIGltcGxlbWVudGFyIGVsIGNyw6lkaXRvIHJlcXVlcmlkbyBwb3IgZXN0YSBTZWNjacOzbiA0KGQpIGVuIGN1YWxxdWllciBmb3JtYSByYXpvbmFibGU7IHNpZW1wcmUgeSBjdWFuZG8sIGVuIGVsIGNhc28gZGUgdW5hIE9icmEgRGVyaXZhZGEgbyBDb2xlY2Npw7NuLCBwb3IgbG8gbWVub3MsIGFwYXJlemNhIGRpY2hvIGNyw6lkaXRvLCBzaSBhcGFyZWNlIHVuIGNyw6lkaXRvIGRlIHRvZG9zIGxvcyBhdXRvcmVzIHF1ZSBjb250cmlidXllcm9uIGEgbGEgT2JyYSBEZXJpdmFkYSBvIGEgbGEgQ29sZWNjacOzbiwgY29tbyB1bmEgcGFydGUgZGUgZXN0b3MgY3LDqWRpdG9zIHkgZGUgdW5hIGZvcm1hLCBwb3IgbG8gbWVub3MsIHRhbiBkZXN0YWNhZGEgY29tbyBsb3MgY3LDqWRpdG9zIGRlIGxvcyBkZW3DoXMgYXV0b3JlcyBxdWUgY29udHJpYnV5ZXJvbi4gUGFyYSBldml0YXIgdG9kYSBkdWRhLCBlbCBMaWNlbmNpYXRhcmlvIHNvbGFtZW50ZSBwb2Ryw6EgdXNhciBlbCBjcsOpZGl0byByZXF1ZXJpZG8gcG9yIGVzdGEgU2VjY2nDs24gY29uIGVsIHByb3DDs3NpdG8gZGUgcmVjb25vY2ltaWVudG8gZW4gbGEgbWFuZXJhIGFudGVyaW9ybWVudGUgZGVzY3JpdGEgeSwgYWwgZWplcmNlciBzdXMgZGVyZWNob3Mgc2Vnw7puIGVzdGEgTGljZW5jaWEsIGVsIExpY2VuY2lhdGFyaW8gbm8gcG9kcsOhIGltcGzDrWNpdGEgbmkgdMOhY2l0YW1lbnRlIGFzZXZlcmFyIG5pIGRhciBhIGVudGVuZGVyIG5pbmd1bmEgY29uZXhpw7NuLCBhdXNwaWNpbyBuaSByZXNwYWxkbyBwb3IgcGFydGUgZGVsIEF1dG9yLCBMaWNlbmNpYW50ZSBuaSBQYXJ0ZXMgZGVsIFJlY29ub2NpbWllbnRvLCBzZWfDum4gY29ycmVzcG9uZGEsIG90b3JnYWRvIGFsIExpY2VuY2lhdGFyaW8gbyBhIHN1IHVzbyBkZSBsYSBPYnJhLCBzaW4gZWwgcGVybWlzbyBpbmRlcGVuZGllbnRlLCBleHByZXNvLCBwcmV2aW8geSBlc2NyaXRvIGRlbCBBdXRvciwgZWwgTGljZW5jaWFudGUgeS9vIGxhcyBQYXJ0ZXMgZGVsIFJlY29ub2NpbWllbnRvLg0KUGFyYSBldml0YXIgdG9kYXMgbGFzIGR1ZGFzLCBlbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZGUgcmVjYXVkYXIgcmVnYWzDrWFzLCBzZWEgaW5kaXZpZHVhbG1lbnRlIG8gZW4gZWwgY2FzbyBlbiBxdWUgZWwgTGljZW5jaWFudGUgc2VhIG1pZW1icm8gZGUgdW5hIHNvY2llZGFkIGRlIHJlY2F1ZGFjaW9uZXMgcXVlIG1hbmVqZSBlc3F1ZW1hcyBkZSBsaWNlbmNpYXMgdm9sdW50YXJpYXMsIG1lZGlhbnRlIGRpY2hhIHNvY2llZGFkLCBjdWFuZG8gZWwgTGljZW5jaWF0YXJpbyBlamVyemEgY3VhbHF1aWVyIGRlcmVjaG8gb3RvcmdhZG8gc2Vnw7puIGVzdGEgTGljZW5jaWEuDQpMb3MgZGVyZWNob3MgY29uY2VkaWRvcyBlbiBsYSBTZWNjacOzbiAzIHNlIGRlYmVuIGVqZXJjZXIgdGVuaWVuZG8gZW4gY3VlbnRhIGxvcyBEZXJlY2hvcyBNb3JhbGVzIGRlbCBBdXRvciBwYXJhIG9iamV0YXIgY3VhbHF1aWVyIGFsdGVyYWNpw7NuLCBtdXRpbGFjacOzbiBvIGRlZm9ybWFjacOzbiB1IG90cmEgYWNjacOzbiBkZXNwZWN0aXZhIGVuIHJlbGFjacOzbiBhbCB0cmFiYWpvLCBxdWUgcHVkaWVyYSByZXN1bHRhciBwZXJqdWRpY2lhbCBwYXJhIGVsIGhvbm9yIG8gcmVwdXRhY2nDs24gZGVsIEF1dG9yIG8gZGUgc3UgZGlnbmlkYWQgY29tbyB0YWwgZW4gbGEgbWVkaWRhIHF1ZSBlbCBBdXRvciBubyBwdWVkZSByZW51bmNpYXIgYSBsb3MgRGVyZWNob3MgTW9yYWxlcyBiYWpvIGxhcyBkaXNwb3NpY2lvbmVzIGxlZ2FsZXMgYXBsaWNhYmxlcy4NCjUuIERlY2xhcmFjaW9uZXMsIEV4b25lcmFjacOzbiBkZSBHYXJhbnTDrWEgeSBSZXNwb25zYWJpbGlkYWQNCg0KU0FMVk8gUEFDVE8gRU4gQ09OVFJBUklPIERFIEFNQkFTIFBBUlRFUywgUVVFIENPTlNURSBQT1IgRVNDUklUTywgWSBFTiBMQSBNQVlPUiBFWFRFTlNJw5NOIERFIExPIFBFUk1JVElETyBQT1IgTEFTIExFWUVTIFZJR0VOVEVTLCBFTCBMSUNFTkNJQU5URSBPRlJFQ0UgTEEgT0JSQSBFTiBTVVMgQ09ORElDSU9ORVMgQUNUVUFMRVMuIEVMIEFVVE9SIEdBUkFOVElaQSBMQSBBVVRPUsONQSBZIE9SSUdJTkFMSURBRCBERSBMQSBPQlJBLCBTSU4gRU1CQVJHTyBOTyBDT05GSUVSRSBOSU5HVU5BIEdBUkFOVMONQSBTT0JSRSBMQSBDQUxJREFEIENPTUVSQ0lBTCBERSBMQSBPQlJBIE8gU1UgQURFQ1VBQ0nDk04gUEFSQSBVTiBQUk9Qw5NTSVRPIEVOIFBBUlRJQ1VMQVIuDQoNCjYuIExpbWl0YWNpw7NuIGRlIFJlc3BvbnNhYmlsaWRhZC4NCg0KU0FMVk8gUVVFIExBIExFWSBBUExJQ0FCTEUgTE8gRVhJSkEgRVhQUkVTQU1FTlRFLCBFTCBMSUNFTkNJQU5URSBFTiBOSU5Hw5pOIENBU08gUE9EUsOBIFNFUiBSRVNQT05TQUJMRSBBTlRFIEVMIExJQ0VOQ0lBVEFSSU8gUE9SIE5JTkfDmk4gREHDkU8gRVNQRUNJQUwsIElOQ0lERU5UQUwsIFJFU1VMVEFOVEUsIFBVTklUSVZPIE5JIEVKRU1QTEFSIFFVRSBTVVJHSUVSQSBQT1IgRVNUQSBMSUNFTkNJQSBOSSBQT1IgRUwgVVNPIERFIExBIE9CUkEuDQoNCjcuIFRlcm1pbmFjacOzbg0KDQpFc3RhIExpY2VuY2lhIHkgbG9zIGRlcmVjaG9zIG90b3JnYWRvcyBwb3IgZXN0YSBMaWNlbmNpYSB0ZXJtaW5hcsOhbiBhdXRvbcOhdGljYW1lbnRlIHNpIGVsIExpY2VuY2lhdGFyaW8gaW5jdW1wbGllcmEgY3VhbHF1aWVyYSBkZSBsYXMgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYS4gU2luIGVtYmFyZ28sIHNpIGhheSBpbmRpdmlkdW9zIG8gZW50aWRhZGVzIHF1ZSBoYXlhbiByZWNpYmlkbyBPYnJhcyBEZXJpdmFkYXMgbyBDb2xlY2Npb25lcyBkZSBwYXJ0ZSBkZWwgTGljZW5jaWF0YXJpbyBiYWpvIGVzdGEgTGljZW5jaWEsIHN1cyBMaWNlbmNpYXMgbm8gdGVybWluYXLDoW4sIHNpZW1wcmUgeSBjdWFuZG8gZGljaG9zIGluZGl2aWR1b3MgbyBlbnRpZGFkZXMgY3VtcGxhbiBwb3IgY29tcGxldG8gbGFzIGNvbmRpY2lvbmVzIGRlIGVzYXMgTGljZW5jaWFzLiBMYXMgU2VjY2lvbmVzIDEsIDIsIDUsIDYsIDcgeSA4IHNlIG1hbnRlbmRyw6FuIGFudGUgY3VhbHF1aWVyIHRlcm1pbmFjacOzbiBkZSBlc3RhIExpY2VuY2lhLg0KU3VqZXRvIGEgbGFzIGNvbmRpY2lvbmVzIHkgdMOpcm1pbm9zIGFudGVzIG1lbmNpb25hZG9zLCBsYSBMaWNlbmNpYSBvdG9yZ2FkYSBhcXXDrSBzZSBjb25jZWRlIHBvciBlbCB0aWVtcG8gcXVlIGR1cmEgbGEgcHJvdGVjY2nDs24gZGUgbG9zIERlcmVjaG9zIGRlIEF1dG9yIGRlIGxhIE9icmEuIE5vIG9ic3RhbnRlIGxvIGFudGVyaW9yLCBlbCBMaWNlbmNpYW50ZSBzZSByZXNlcnZhIGVsIGRlcmVjaG8gZGUgZW1pdGlyIG8gcHVibGljYXIgZXN0YSBPYnJhIGJham8gbG9zIHTDqXJtaW5vcyBkZSBMaWNlbmNpYXMgZGlmZXJlbnRlcyBvIGEgZGVqYXIgZGUgZGlzdHJpYnVpciBsYSBPYnJhIGVuIGN1YWxxdWllciBtb21lbnRvOyBzaWVtcHJlIHkgY3VhbmRvIGRpY2hhIG9wY2nDs24gbm8gY3VtcGxhIGVsIHByb3DDs3NpdG8gZGUgcmV2b2NhciBlc3RhIExpY2VuY2lhIChvIGN1YWxxdWllciBvdHJhIExpY2VuY2lhIGFkaWNpb25hbCBxdWUgaGF5YSBzaWRvLCBvIHF1ZSBkZWJhLCBzZXIgb3RvcmdhZGEgc2Vnw7puIGxhcyBjb25kaWNpb25lcyBkZSBlc3RhIExpY2VuY2lhKSB5IGxhIG1pc21hIGNvbnRpbnVhcsOhIGVuIHBsZW5hIHZpZ2VuY2lhIHkgZWZlY3RvLCBleGNlcHRvIHNpIHRlcm1pbmFyZSBzZWfDum4gbGFzIGVzdGlwdWxhY2lvbmVzIHByZXZpYXMuDQo4LiBBc3VudG9zIGRpdmVyc29zDQoNCkNhZGEgdmV6IHF1ZSBlbCBMaWNlbmNpYXRhcmlvIGRpc3RyaWJ1eWEgbyBlamVjdXRlIHDDumJsaWNhbWVudGUgbGEgT2JyYSBvIHVuYSBDb2xlY2Npw7NuLCBlbCBMaWNlbmNpYW50ZSBvZnJlY2Vyw6EgYWwgcmVjZXB0b3IgdW5hIExpY2VuY2lhIHBhcmEgbGEgT2JyYSBlbiBsYXMgbWlzbWFzIGNvbmRpY2lvbmVzIHkgdMOpcm1pbm9zIHF1ZSBsYSBMaWNlbmNpYSBvdG9yZ2FkYSBhbCBMaWNlbmNpYXRhcmlvIHNlZ8O6biBlc3RhIExpY2VuY2lhLg0KQ2FkYSB2ZXogcXVlIGVsIExpY2VuY2lhdGFyaW8gZGlzdHJpYnV5YSBvIGVqZWN1dGUgcMO6YmxpY2FtZW50ZSBsYSBPYnJhIERlcml2YWRhLCBlbCBMaWNlbmNpYW50ZSBvZnJlY2Vyw6EgYWwgcmVjZXB0b3IgdW5hIExpY2VuY2lhIHBhcmEgbGEgT2JyYSBvcmlnaW5hbCBlbiBsYXMgbWlzbWFzIGNvbmRpY2lvbmVzIHkgdMOpcm1pbm9zIHF1ZSBsYSBMaWNlbmNpYSBvdG9yZ2FkYSBhbCBMaWNlbmNpYXRhcmlvIHNlZ8O6biBlc3RhIExpY2VuY2lhLg0KU2kgY3VhbHF1aWVyIGVzdGlwdWxhY2nDs24gZGUgZXN0YSBMaWNlbmNpYSBubyBmdWVyYSB2w6FsaWRhIG5pIGV4aWdpYmxlIHNlZ8O6biBsYXMgbGV5ZXMgYXBsaWNhYmxlcywgZXN0ZSBoZWNobyBubyBhZmVjdGFyw6EgbGEgdmFsaWRleiBvIGV4aWdpYmlsaWRhZCBkZWwgcmVzdG8gZGUgY29uZGljaW9uZXMgZGUgZXN0YSBMaWNlbmNpYSwgeSBzaW4gcXVlIHNlIHJlcXVpZXJhIG5pbmd1bmEgYWNjacOzbiBhZGljaW9uYWwgZGUgbGFzIHBhcnRlcyBkZSBlc3RlIGFjdWVyZG8sIHNlIGNhbWJpYXLDoSBkaWNoYSBlc3RpcHVsYWNpw7NuIGVuIGxvIGVzdHJpY3RhbWVudGUgbmVjZXNhcmlvIHBhcmEgcXVlIGRpY2hhIGVzdGlwdWxhY2nDs24gc2VhIHbDoWxpZGEgeSBleGlnaWJsZS4NCk5vIHNlIGNvbnNpZGVyYXLDoSBxdWUgc2UgaGEgcmVudW5jaWFkbyBhIG5pbmd1bmEgZXN0aXB1bGFjacOzbiBuaSBjb25kaWNpw7NuIGRlIGVzdGEgTGljZW5jaWEgbmkgc2UgY29uc2lkZXJhcsOhIHF1ZSBzZSBoYSBhY2VwdGFkbyBuaW5nw7puIGluY3VtcGxpbWllbnRvIGV4Y2VwdG8gc2kgZGljaGEgcmVudW5jaWEgbyBjb25zZW50aW1pZW50byBmdWVyYSBwb3IgZXNjcml0byB5IGVuIMOpc3RlIGNvbnN0YXJlIGxhIGZpcm1hIGRlIGxhcyBwYXJ0ZXMuDQpFc3RhIExpY2VuY2lhIGNvbnN0aXR1eWUgZWwgYWN1ZXJkbyBjb21wbGV0byBlbnRyZSBsYXMgcGFydGVzIGNvbiByZXNwZWN0byBhIGxhIE9icmEsIGN1eWEgTGljZW5jaWEgc2Ugb3RvcmdhIG1lZGlhbnRlIGVzdGUgZG9jdW1lbnRvLiBObyBoYXkgYWN1ZXJkb3MsIHB1bnRvcyBkZSBjb21wcm9taXNvIG5pIGRlY2xhcmFjaW9uZXMgY29uIHJlc3BlY3RvIGEgbGEgT2JyYSBxdWUgbm8gZXN0w6luIGVzdGlwdWxhZG9zIGVuIGVsIHByZXNlbnRlLiBFbCBMaWNlbmNpYW50ZSBubyB0ZW5kcsOhIGxhIG9ibGlnYWNpw7NuIGRlIGN1bXBsaXIgbmluZ3VuYSBlc3RpcHVsYWNpw7NuIGFkaWNpb25hbCBxdWUgcG9kcsOhIGluY2x1aXJzZSBlbiBjdWFscXVpZXIgY29tdW5pY2FjacOzbiBlbnZpYWRhIHBvciBlbCBMaWNlbmNpYXRhcmlvLiBObyBzZSBwb2Ryw6EgbW9kaWZpY2FyIGVzdGEgTGljZW5jaWEgc2luIGVsIGNvbnNlbnRpbWllbnRvIGVzY3JpdG8gZGVsIExpY2VuY2lhbnRlIHkgZGVsIExpY2VuY2lhdGFyaW8uDQpOb3RpZmljYWNpw7NuIGRlIENyZWF0aXZlIENvbW1vbnMNCg0KQ3JlYXRpdmUgQ29tbW9ucyBubyBlcyBwYXJ0ZSBpbnRlcmVzYWRhIGRlIGVzdGEgTGljZW5jaWEgeSBubyBwcmVzZW50YSBuaW5ndW5hIGdhcmFudMOtYSBkZSBuaW5nw7puIHRpcG8gZW4gcmVsYWNpw7NuIGNvbiBsYSBPYnJhLiBDcmVhdGl2ZSBDb21tb25zIG5vIGVzIHJlc3BvbnNhYmxlIGFudGUgZWwgTGljZW5jaWF0YXJpbyBuaSBhbnRlIHRlcmNlcm9zIHBvciBuaW5ndW5hIHRlb3LDrWEgbGVnYWwgZGUgbmluZ8O6biBkYcOxbyBkZSBuaW5nw7puIHRpcG8sIGluY2x1eWVuZG8sIGVudHJlIG90cm9zLCBjdWFscXVpZXIgZGHDsW8gZ2VuZXJhbCwgZXNwZWNpYWwsIGluY2lkZW50YWwgbmkgcmVzdWx0YW50ZSBxdWUgc3VyZ2llcmEgZW4gcmVsYWNpw7NuIGNvbiBlc3RhIExpY2VuY2lhLiBTaW4gcGVyanVpY2lvIGRlIGxvIG1lbmNpb25hZG8gZW4gbGFzIGzDrW5lYXMgcHJlY2VkZW50ZXMsIHNpIENyZWF0aXZlIENvbW1vbnMgc2UgaGEgaWRlbnRpZmljYWRvIGV4cHJlc2FtZW50ZSBjb21vIGVsIExpY2VuY2lhbnRlIHNlZ8O6biBlc3RlIGRvY3VtZW50bywgQ3JlYXRpdmUgQ29tbW9ucyB0ZW5kcsOhIHRvZG9zIGxvcyBkZXJlY2hvcyB5IG9ibGlnYWNpb25lcyBkZWwgTGljZW5jaWFudGUuDQoNCkV4Y2VwdG8gcGFyYSBjdW1wbGlyIGVsIHByb3DDs3NpdG8gbGltaXRhZG8gZGUgaW5kaWNhciBhbCBww7pibGljbyBxdWUgbGEgT2JyYSBjdWVudGEgY29uIGxhIExpY2VuY2lhIHNlZ8O6biBlbCBDQ1BMLCBDcmVhdGl2ZSBDb21tb25zIG5vIGF1dG9yaXphIGVsIHVzbyBwb3IgbmluZ3VuYSBkZSBsYXMgcGFydGVzIGRlIGxhIG1hcmNhIHJlZ2lzdHJhZGEg4oCcQ3JlYXRpdmUgQ29tbW9uc+KAnSBuaSBkZSBuaW5ndW5hIG1hcmNhIHJlZ2lzdHJhZGEgbmkgbG9nb3RpcG8gcmVsYWNpb25hZG9zIGNvbiBDcmVhdGl2ZSBDb21tb25zLCBzaW4gZWwgY29uc2VudGltaWVudG8gcHJldmlvIHkgcG9yIGVzY3JpdG8gZGUgQ3JlYXRpdmUgQ29tbW9ucy4gQ3VhbHF1aWVyIHVzbyBwZXJtaXRpZG8gZGViZXLDoSBjdW1wbGlyIGNvbiBsYXMgcGF1dGFzIGRlIHVzbyBkZSBtYXJjYSByZWdpc3RyYWRhIHZpZ2VudGVzIGVuIGVzZSBtb21lbnRvIGRlIENyZWF0aXZlIENvbW1vbnMsIHNlZ8O6biBzZSBwdWVkYSBwdWJsaWNhciBlbiBzdSBzaXRpbyBXZWIgbyBxdWUgcHVkaWVyYSBlc3RhciBkaXNwb25pYmxlIGRlIGFsZ3VuYSBvdHJhIGZvcm1hIHkgZGUgdGllbXBvIGVuIHRpZW1wby4gUGFyYSBldml0YXIgdG9kYSBkdWRhLCBlc3RhIHJlc3RyaWNjacOzbiBkZSBtYXJjYSByZWdpc3RyYWRhIG5vIGZvcm1hIHBhcnRlIGRlIGVzdGEgTGljZW5jaWEuDQoNCkVsIExpY2VuY2lhdGFyaW8gcHVlZGUgcG9uZXJzZSBlbiBjb250YWN0byBjb24gQ3JlYXRpdmUgQ29tbW9ucyBlbiBsYSBzaWd1aWVudGUgZGlyZWNjacOzbjogaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvDQo=
score 14,717255