Software Migrador de Scripts .SQL Oracle para Bases de Datos SQLServer en la Empresa Expinn Technology
El presente documento se centra en el análisis, desarrollo e implementación de un software migrador de scripts .SQL en la empresa Expinn Technology, que pretende procesar y generar estructuras del motor de base de datos Oracle a SQLServer. Durante el transcurso del documento se exponen los elementos...
- Autores:
-
Morales Garcia, Brallam Santiago
Camacho Aya, Jineth Tatiana
- Tipo de recurso:
- Trabajo de grado de pregrado
- Fecha de publicación:
- 2017
- Institución:
- Universidad Distrital Francisco José de Caldas
- Repositorio:
- RIUD: repositorio U. Distrital
- Idioma:
- spa
- OAI Identifier:
- oai:repository.udistrital.edu.co:11349/5801
- Acceso en línea:
- http://hdl.handle.net/11349/5801
- Palabra clave:
- SQL
SQLServer
Oracle
Base de datos
Script
Migración
TECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS - TESIS Y DISERTACIONES ACADÉMICAS
DESARROLLO DE PROGRAMAS PARA COMPUTADOR
ADMINISTRACIÓN DE BASES DE DATOS
ORACLE (SISTEMA MANEJADOR DE BASE DE DATOS)
SQL
SQLServer
Oracle
Database
Script
Migration
- Rights
- License
- Atribución-NoComercial-SinDerivadas 4.0 Internacional
id |
UDISTRITA2_19faa5011987b595ddd8015ca9bbd3d5 |
---|---|
oai_identifier_str |
oai:repository.udistrital.edu.co:11349/5801 |
network_acronym_str |
UDISTRITA2 |
network_name_str |
RIUD: repositorio U. Distrital |
repository_id_str |
|
dc.title.spa.fl_str_mv |
Software Migrador de Scripts .SQL Oracle para Bases de Datos SQLServer en la Empresa Expinn Technology |
dc.title.titleenglish.spa.fl_str_mv |
Migratory Software of Script .SQL Oracle for SQLServer Databases in the Expinn Technology Company |
title |
Software Migrador de Scripts .SQL Oracle para Bases de Datos SQLServer en la Empresa Expinn Technology |
spellingShingle |
Software Migrador de Scripts .SQL Oracle para Bases de Datos SQLServer en la Empresa Expinn Technology SQL SQLServer Oracle Base de datos Script Migración TECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS - TESIS Y DISERTACIONES ACADÉMICAS DESARROLLO DE PROGRAMAS PARA COMPUTADOR ADMINISTRACIÓN DE BASES DE DATOS ORACLE (SISTEMA MANEJADOR DE BASE DE DATOS) SQL SQLServer Oracle Database Script Migration |
title_short |
Software Migrador de Scripts .SQL Oracle para Bases de Datos SQLServer en la Empresa Expinn Technology |
title_full |
Software Migrador de Scripts .SQL Oracle para Bases de Datos SQLServer en la Empresa Expinn Technology |
title_fullStr |
Software Migrador de Scripts .SQL Oracle para Bases de Datos SQLServer en la Empresa Expinn Technology |
title_full_unstemmed |
Software Migrador de Scripts .SQL Oracle para Bases de Datos SQLServer en la Empresa Expinn Technology |
title_sort |
Software Migrador de Scripts .SQL Oracle para Bases de Datos SQLServer en la Empresa Expinn Technology |
dc.creator.fl_str_mv |
Morales Garcia, Brallam Santiago Camacho Aya, Jineth Tatiana |
dc.contributor.advisor.spa.fl_str_mv |
Wanumen Silva, Luis Felipe |
dc.contributor.author.spa.fl_str_mv |
Morales Garcia, Brallam Santiago Camacho Aya, Jineth Tatiana |
dc.subject.spa.fl_str_mv |
SQL SQLServer Oracle Base de datos Script Migración |
topic |
SQL SQLServer Oracle Base de datos Script Migración TECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS - TESIS Y DISERTACIONES ACADÉMICAS DESARROLLO DE PROGRAMAS PARA COMPUTADOR ADMINISTRACIÓN DE BASES DE DATOS ORACLE (SISTEMA MANEJADOR DE BASE DE DATOS) SQL SQLServer Oracle Database Script Migration |
dc.subject.lemb.spa.fl_str_mv |
TECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS - TESIS Y DISERTACIONES ACADÉMICAS DESARROLLO DE PROGRAMAS PARA COMPUTADOR ADMINISTRACIÓN DE BASES DE DATOS ORACLE (SISTEMA MANEJADOR DE BASE DE DATOS) |
dc.subject.keyword.spa.fl_str_mv |
SQL SQLServer Oracle Database Script Migration |
description |
El presente documento se centra en el análisis, desarrollo e implementación de un software migrador de scripts .SQL en la empresa Expinn Technology, que pretende procesar y generar estructuras del motor de base de datos Oracle a SQLServer. Durante el transcurso del documento se exponen los elementos fundamentales que permitieron la conceptualización, diseño y desarrollo del proyecto, abordando temáticas cruciales como la arquitectura de desarrollo a seguir, el lenguaje de programación seleccionado, la tecnología y la metodología de trabajo. El punto de partida es la concepción de tres módulos para desarrollar el proyecto: El primer módulo está enfocado a la carga dinámica de scripts .SQL y la lectura de código que éste contiene, adicionalmente y de forma interna se formatea el código para el posterior procesamiento. El segundo módulo está enfocado al procesamiento de las estructuras previamente analizadas, para ello se requiere de forma fundamental la tecnología seleccionada, puesto que esta ayudará en la generación de código. El tercer y último módulo está enfocado a la generación de un archivo .SQL como resultado del procesamiento del archivo inicialmente cargado y que sea funcional para el motor SQLServer. |
publishDate |
2017 |
dc.date.accessioned.none.fl_str_mv |
2017-06-27T16:36:57Z |
dc.date.available.none.fl_str_mv |
2017-06-27T16:36:57Z |
dc.date.created.spa.fl_str_mv |
2017-06-01 |
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/5801 |
url |
http://hdl.handle.net/11349/5801 |
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 |
https://repository.udistrital.edu.co/bitstreams/040b5fb1-391e-4f40-9c8a-37abac2a7367/download https://repository.udistrital.edu.co/bitstreams/bf0efe1b-eb42-4cdc-93b3-740623f7a143/download https://repository.udistrital.edu.co/bitstreams/004ebe7b-26f1-4667-b631-0a4f0960d796/download https://repository.udistrital.edu.co/bitstreams/cba2948d-1cfe-470e-bd56-10527a377bb1/download https://repository.udistrital.edu.co/bitstreams/566f74c4-0fea-4bf4-929d-e935d75b266a/download https://repository.udistrital.edu.co/bitstreams/5c9a3704-1047-4cab-9ec9-464153b0c97e/download https://repository.udistrital.edu.co/bitstreams/5b9f4231-e564-4d74-99a4-f8f7f98e8d10/download https://repository.udistrital.edu.co/bitstreams/81a6980a-db35-4ffd-89da-9232defc669d/download https://repository.udistrital.edu.co/bitstreams/17567cdf-bd67-44cb-bf98-45b12b75e0c7/download https://repository.udistrital.edu.co/bitstreams/cc8be3fc-2012-47d7-91e3-43ea4a30f0b5/download https://repository.udistrital.edu.co/bitstreams/52cdca14-0023-4304-81bd-a4c61cc1d9a7/download https://repository.udistrital.edu.co/bitstreams/2795c50d-9933-4851-a82e-9be11d9c4e57/download |
bitstream.checksum.fl_str_mv |
8ce3129aaad58d32d4da203832ac82af ee67691d5a9d8c75686541600e287d10 16b255006aafd1dd32f131e779a064d8 65e211d2243b74e5e4c9143ba19258c3 4afdbb8c545fd630ea7db775da747b2f d41d8cd98f00b204e9800998ecf8427e d41d8cd98f00b204e9800998ecf8427e da5c6a3ca62d5dd4853000a60fee7083 dfd782505c55af8d4dbb760ebfce399c 50a6b84eee19824591681b0a4c448305 0791af9076f556ae9fcb671438c8e978 d3100526b0eba17f5476a67f67ba5c53 |
bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 MD5 MD5 MD5 MD5 MD5 MD5 MD5 |
repository.name.fl_str_mv |
Repositorio Universidad Distrital |
repository.mail.fl_str_mv |
repositorio@udistrital.edu.co |
_version_ |
1828164778236837888 |
spelling |
Wanumen Silva, Luis FelipeMorales Garcia, Brallam SantiagoCamacho Aya, Jineth Tatiana2017-06-27T16:36:57Z2017-06-27T16:36:57Z2017-06-01http://hdl.handle.net/11349/5801El presente documento se centra en el análisis, desarrollo e implementación de un software migrador de scripts .SQL en la empresa Expinn Technology, que pretende procesar y generar estructuras del motor de base de datos Oracle a SQLServer. Durante el transcurso del documento se exponen los elementos fundamentales que permitieron la conceptualización, diseño y desarrollo del proyecto, abordando temáticas cruciales como la arquitectura de desarrollo a seguir, el lenguaje de programación seleccionado, la tecnología y la metodología de trabajo. El punto de partida es la concepción de tres módulos para desarrollar el proyecto: El primer módulo está enfocado a la carga dinámica de scripts .SQL y la lectura de código que éste contiene, adicionalmente y de forma interna se formatea el código para el posterior procesamiento. El segundo módulo está enfocado al procesamiento de las estructuras previamente analizadas, para ello se requiere de forma fundamental la tecnología seleccionada, puesto que esta ayudará en la generación de código. El tercer y último módulo está enfocado a la generación de un archivo .SQL como resultado del procesamiento del archivo inicialmente cargado y que sea funcional para el motor SQLServer.This document focuses on the analysis, development and implementation of a migrant software of scripts .SQL in the enterprise Expinn Technology, Which searches to process and generate structures of database engine Oracle to SQLServer. During the course of the document the most important elements are exposed that allow the conceptualization, design and development of the project, Addressing crucial topics as the architecture of development, the programming language , the technology and the methodology of work. The beginning is creating three module for develop the project: The first module is focused on the dynamic load of .SQL scripts and the read of code that it contains, in addition and internally the code is formatted for further processing. The second module is focused on the processing of the structures previously analyzed, for this it is fundamentally require the selected technology, since this will help in the generation of code. The third module is focused on the generation of a .SQL file as a result of processing the initially loaded file, and that it is run for the SQL Server engine.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_abf2SQLSQLServerOracleBase de datosScriptMigraciónTECNOLOGÍA EN SISTEMATIZACIÓN DE DATOS - TESIS Y DISERTACIONES ACADÉMICASDESARROLLO DE PROGRAMAS PARA COMPUTADORADMINISTRACIÓN DE BASES DE DATOSORACLE (SISTEMA MANEJADOR DE BASE DE DATOS)SQLSQLServerOracleDatabaseScriptMigrationSoftware Migrador de Scripts .SQL Oracle para Bases de Datos SQLServer en la Empresa Expinn TechnologyMigratory Software of Script .SQL Oracle for SQLServer Databases in the Expinn Technology Companyinfo:eu-repo/semantics/bachelorThesishttp://purl.org/coar/resource_type/c_7a1fTHUMBNAILMoralesGarciaBrallamSantiago2017.pdf.jpgMoralesGarciaBrallamSantiago2017.pdf.jpgIM Thumbnailimage/jpeg4745https://repository.udistrital.edu.co/bitstreams/040b5fb1-391e-4f40-9c8a-37abac2a7367/download8ce3129aaad58d32d4da203832ac82afMD59MoralesGarciaBrallamSantiago2017LicenciadePublicacion.pdf.jpgMoralesGarciaBrallamSantiago2017LicenciadePublicacion.pdf.jpgIM Thumbnailimage/jpeg12098https://repository.udistrital.edu.co/bitstreams/bf0efe1b-eb42-4cdc-93b3-740623f7a143/downloadee67691d5a9d8c75686541600e287d10MD510MoralesGarciaBrallamSantiago2017Anexo1.pdf.jpgMoralesGarciaBrallamSantiago2017Anexo1.pdf.jpgIM Thumbnailimage/jpeg4810https://repository.udistrital.edu.co/bitstreams/004ebe7b-26f1-4667-b631-0a4f0960d796/download16b255006aafd1dd32f131e779a064d8MD511MoralesGarciaBrallamSantiago2017Anexo2.pdf.jpgMoralesGarciaBrallamSantiago2017Anexo2.pdf.jpgIM Thumbnailimage/jpeg4797https://repository.udistrital.edu.co/bitstreams/cba2948d-1cfe-470e-bd56-10527a377bb1/download65e211d2243b74e5e4c9143ba19258c3MD512CC-LICENSElicense_urllicense_urltext/plain; charset=utf-849https://repository.udistrital.edu.co/bitstreams/566f74c4-0fea-4bf4-929d-e935d75b266a/download4afdbb8c545fd630ea7db775da747b2fMD55license_textlicense_texttext/html; charset=utf-80https://repository.udistrital.edu.co/bitstreams/5c9a3704-1047-4cab-9ec9-464153b0c97e/downloadd41d8cd98f00b204e9800998ecf8427eMD56license_rdflicense_rdfapplication/rdf+xml; charset=utf-80https://repository.udistrital.edu.co/bitstreams/5b9f4231-e564-4d74-99a4-f8f7f98e8d10/downloadd41d8cd98f00b204e9800998ecf8427eMD57LICENSElicense.txtlicense.txttext/plain; charset=utf-87163https://repository.udistrital.edu.co/bitstreams/81a6980a-db35-4ffd-89da-9232defc669d/downloadda5c6a3ca62d5dd4853000a60fee7083MD58ORIGINALMoralesGarciaBrallamSantiago2017.pdfMoralesGarciaBrallamSantiago2017.pdfTrabajo de Gradoapplication/pdf3422371https://repository.udistrital.edu.co/bitstreams/17567cdf-bd67-44cb-bf98-45b12b75e0c7/downloaddfd782505c55af8d4dbb760ebfce399cMD51MoralesGarciaBrallamSantiago2017LicenciadePublicacion.pdfMoralesGarciaBrallamSantiago2017LicenciadePublicacion.pdfapplication/pdf336868https://repository.udistrital.edu.co/bitstreams/cc8be3fc-2012-47d7-91e3-43ea4a30f0b5/download50a6b84eee19824591681b0a4c448305MD52MoralesGarciaBrallamSantiago2017Anexo1.pdfMoralesGarciaBrallamSantiago2017Anexo1.pdfAnexo 1application/pdf697242https://repository.udistrital.edu.co/bitstreams/52cdca14-0023-4304-81bd-a4c61cc1d9a7/download0791af9076f556ae9fcb671438c8e978MD53MoralesGarciaBrallamSantiago2017Anexo2.pdfMoralesGarciaBrallamSantiago2017Anexo2.pdfAnexo 2application/pdf1157964https://repository.udistrital.edu.co/bitstreams/2795c50d-9933-4851-a82e-9be11d9c4e57/downloadd3100526b0eba17f5476a67f67ba5c53MD5411349/5801oai:repository.udistrital.edu.co:11349/58012023-06-09 16:10:23.68http://creativecommons.org/licenses/by-nc-nd/4.0/Atribución-NoComercial-SinDerivadas 4.0 Internacionalopen.accesshttps://repository.udistrital.edu.coRepositorio Universidad Distritalrepositorio@udistrital.edu.coTElDRU5DSUEgWSBBVVRPUklaQUNJw5NOIEVTUEVDSUFMIFBBUkEgUFVCTElDQVIgWSBQRVJNSVRJUiBMQSBDT05TVUxUQSBZIFVTTyBERSBDT05URU5JRE9TIEVOIEVMIFJFUE9TSVRPUklPIElOU1RJVFVDSU9OQUwgREUgTEEgVU5JVkVSU0lEQUQgRElTVFJJVEFMClTDqXJtaW5vcyB5IGNvbmRpY2lvbmVzIGRlIHVzbyBwYXJhIHB1YmxpY2FjacOzbiBkZSBvYnJhcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIChSSVVEKQoKQ29tbyB0aXR1bGFyKGVzKSBkZWwob3MpIGRlcmVjaG8ocykgZGUgYXV0b3IsIGNvbmZpZXJvIChlcmltb3MpIGEgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMgKGVuIGFkZWxhbnRlLCBMQSBVTklWRVJTSURBRCkgdW5hIGxpY2VuY2lhIHBhcmEgdXNvIG5vIGV4Y2x1c2l2YSwgbGltaXRhZGEgeSBncmF0dWl0YSBzb2JyZSBsYSBvYnJhIHF1ZSBpbnRlZ3JhcsOhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgKGVuIGFkZWxhbnRlLCBSSVVEKSwgZGUgYWN1ZXJkbyBhIGxhcyBzaWd1aWVudGVzIHJlZ2xhcywgbGFzIGN1YWxlcyBkZWNsYXJvIChhbW9zKSBjb25vY2VyIHkgYWNlcHRhcjoKCmEpCUVzdGFyw6EgdmlnZW50ZSBhIHBhcnRpciBkZSBsYSBmZWNoYSBlbiBxdWUgc2UgaW5jbHV5YSBlbiBlbCBSSVVEIHkgaGFzdGEgcG9yIHVuIHBsYXpvIGRlIGRpZXogKDEwKSBBw7FvcywgcHJvcnJvZ2FibGUgaW5kZWZpbmlkYW1lbnRlIHBvciBlbCB0aWVtcG8gcXVlIGR1cmUgZWwgZGVyZWNobyBQYXRyaW1vbmlhbCBkZWwgYXV0b3I7IGxhIGN1YWwgcG9kcsOhIGRhcnNlIHBvciB0ZXJtaW5hZGEgcHJldmlhIHNvbGljaXR1ZCBhIExBIFVOSVZFUlNJREFEIHBvciBlc2NyaXRvIGNvbiB1bmEgYW50ZWxhY2nDs24gZGUgZG9zICgyKSBtZXNlcyBhbnRlcyBkZWwgdmVuY2ltaWVudG8gZGVsIHBsYXpvIGluaWNpYWwgbyBlbCBkZSBzdShzKSBwcsOzcnJvZ2EocykuICAKCmIpCUxBIFVOSVZFUlNJREFEIHBvZHLDoSBwdWJsaWNhciBsYSBvYnJhIGVuIGxhcyBkaXN0aW50YXMgdmVyc2lvbmVzIHJlcXVlcmlkYXMgcG9yIGVsIFJJVUQgKGRpZ2l0YWwsIGltcHJlc28sIGVsZWN0csOzbmljbyB1IG90cm8gbWVkaW8gY29ub2NpZG8gbyBwb3IgY29ub2NlcikgTEEgVU5JVkVSU0lEQUQgbm8gc2Vyw6EgcmVzcG9uc2FibGUgZW4gZWwgZXZlbnRvIHF1ZSBlbCBkb2N1bWVudG8gYXBhcmV6Y2EgcmVmZXJlbmNpYWRvIGVuIG1vdG9yZXMgZGUgYsO6c3F1ZWRhIG8gcmVwb3NpdG9yaW9zIGRpZmVyZW50ZXMgYWwgUklVRCwgdW5hIHZleiBlbChvcykgYXV0b3IoZXMpIHNvbGljaXRlbiBzdSBlbGltaW5hY2nDs24gZGVsIFJJVUQsIGRhZG8gcXVlIGxhIG1pc21hIHNlcsOhIHB1YmxpY2FkYSBlbiBJbnRlcm5ldC4gCgpjKQlMYSBhdXRvcml6YWNpw7NuIHNlIGhhY2UgYSB0w610dWxvIGdyYXR1aXRvLCBwb3IgbG8gdGFudG8sIGxvcyBhdXRvcmVzIHJlbnVuY2lhbiBhIHJlY2liaXIgYmVuZWZpY2lvIGFsZ3VubyBwb3IgbGEgcHVibGljYWNpw7NuLCBkaXN0cmlidWNpw7NuLCBjb211bmljYWNpw7NuIHDDumJsaWNhIHkgY3VhbHF1aWVyIG90cm8gdXNvIHF1ZSBzZSBoYWdhIGVuIGxvcyB0w6lybWlub3MgZGUgbGEgcHJlc2VudGUgbGljZW5jaWEgeSBkZSBsYSBsaWNlbmNpYSBkZSB1c28gY29uIHF1ZSBzZSBwdWJsaWNhIChDcmVhdGl2ZSBDb21tb25zKS4KCmQpCUxvcyBjb250ZW5pZG9zIHB1YmxpY2Fkb3MgZW4gZWwgUklVRCBzb24gb2JyYShzKSBvcmlnaW5hbChlcykgc29icmUgbGEgY3VhbChlcykgZWwob3MpIGF1dG9yKGVzKSBjb21vIHRpdHVsYXJlcyBkZSBsb3MgZGVyZWNob3MgZGUgYXV0b3IsIGFzdW1lbiB0b3RhbCByZXNwb25zYWJpbGlkYWQgcG9yIGVsIGNvbnRlbmlkbyBkZSBzdSBvYnJhIGFudGUgTEEgVU5JVkVSU0lEQUQgeSBhbnRlIHRlcmNlcm9zLiBFbiB0b2RvIGNhc28gTEEgVU5JVkVSU0lEQUQgc2UgY29tcHJvbWV0ZSBhIGluZGljYXIgc2llbXByZSBsYSBhdXRvcsOtYSBpbmNsdXllbmRvIGVsIG5vbWJyZSBkZWwgYXV0b3IgeSBsYSBmZWNoYSBkZSBwdWJsaWNhY2nDs24uCgplKQlMQSBVTklWRVJTSURBRCBwb2Ryw6EgaW5jbHVpciBsYSBvYnJhIGVuIGxvcyDDrW5kaWNlcyB5IGJ1c2NhZG9yZXMgcXVlIGVzdGltZW4gbmVjZXNhcmlvcyBwYXJhIG1heGltaXphciBsYSB2aXNpYmlsaWRhZCBlbCB1c28geSBlbCBpbXBhY3RvIGRlIGxhIHByb2R1Y2Npw7NuIGNpZW50w61maWNhLCBhcnTDrXN0aWNhIHkgYWNhZMOpbWljYSBlbiBsYSBjb211bmlkYWQgbG9jYWwsIG5hY2lvbmFsIG8gaW50ZXJuYWNpb25hbC4gCgoKZikJTEEgVU5JVkVSU0lEQUQgcG9kcsOhIGNvbnZlcnRpciBsYSBvYnJhIGEgY3VhbHF1aWVyIG1lZGlvIG8gZm9ybWF0byBjb24gZWwgZmluIGRlIHN1IHByZXNlcnZhY2nDs24gZW4gZWwgdGllbXBvIHF1ZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSB5IGxhIGRlIHN1cyBwcsOzcnJvZ2FzLgoKCkNvbiBiYXNlIGVuIGxvIGFudGVyaW9yIGF1dG9yaXpvKGFtb3MpLCBhIGZhdm9yIGRlbCBSSVVEIHkgZGUgc3VzIHVzdWFyaW9zLCBsYSBwdWJsaWNhY2nDs24geSBjb25zdWx0YSBkZSBsYSBzaWd1aWVudGUgb2JyYToKClRpdHVsbyAJCkF1dG9yCUFwZWxsaWRvcwlOb21icmVzCjEJCQoyCQkKMwkJCiAKCmcpCUF1dG9yaXpvKGFtb3MpLCBxdWUgbGEgb2JyYSBzZWEgcHVlc3RhIGEgZGlzcG9zaWNpw7NuIGRlbCBww7pibGljbyBlbiBsb3MgdMOpcm1pbm9zIGVzdGFibGVjaWRvcyBlbiBsb3MgbGl0ZXJhbGVzIGFudGVyaW9yZXMsIGJham8gbG9zIGzDrW1pdGVzIGRlZmluaWRvcyBwb3IgTEEgVU5JVkVSU0lEQUQsIGVuIGxhcyDigJxDb25kaWNpb25lcyBkZSB1c28gZGUgZXN0cmljdG8gY3VtcGxpbWllbnRv4oCdIGRlIGxvcyByZWN1cnNvcyBwdWJsaWNhZG9zIGVuIGVsIFJJVUQsIGN1eW8gdGV4dG8gY29tcGxldG8gc2UgcHVlZGUgY29uc3VsdGFyIGVuIGh0dHA6Ly9yZXBvc2l0b3J5LnVkaXN0cml0YWwuZWR1LmNvLwoKaCkJQ29ub3pjbyhjZW1vcykgeSBhY2VwdG8oYW1vcykgcXVlIG90b3JnbyhhbW9zKSB1bmEgbGljZW5jaWEgZXNwZWNpYWwgcGFyYSBwdWJsaWNhY2nDs24gZGUgb2JyYXMgZW4gZWwgUmVwb3NpdG9yaW8gSW5zdGl0dWNpb25hbCBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcywgbGljZW5jaWEgICBkZSBsYSBjdWFsIGhlIChoZW1vcykgb2J0ZW5pZG8gdW5hIGNvcGlhLgoKaSkJTWFuaWZpZXN0byhhbW9zKSBtaSAobnVlc3RybykgdG90YWwgYWN1ZXJkbyBjb24gbGFzIGNvbmRpY2lvbmVzIGRlIHVzbyB5IHB1YmxpY2FjacOzbiBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIHF1ZSBzZSBkZXNjcmliZW4geSBleHBsaWNhbiBlbiBlbCBwcmVzZW50ZSBkb2N1bWVudG8uCgpqKQlDb25vemNvKGNlbW9zKSBsYSBub3JtYXRpdmlkYWQgaW50ZXJuYSBkZSAgTEEgVU5JVkVSU0lEQUQ7IGVuIGNvbmNyZXRvLCBlbCBBY3VlcmRvIDAwNCBkZSAyMDEyIGRlbCBDU1UsIEFjdWVyZG8gMDIzIGRlIDIwMTIgZGVsIENTVSBzb2JyZSBQb2zDrXRpY2EgRWRpdG9yaWFsLCBBY3VlcmRvIDAyNiAgZGVsIDMxIGRlIGp1bGlvIGRlIDIwMTIgc29icmUgZWwgcHJvY2VkaW1pZW50byBwYXJhIGxhIHB1YmxpY2FjacOzbiBkZSB0ZXNpcyBkZSBwb3N0Z3JhZG8gZGUgbG9zIGVzdHVkaWFudGVzIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzLCAgQWN1ZXJkbyAwMzAgZGVsIDAzIGRlIGRpY2llbWJyZSBkZSAyMDEzIHBvciBtZWRpbyBkZWwgY3VhbCBzZSBjcmVhIGVsIFJlcG9zaXRvcmlvIEluc3RpdHVjaW9uYWwgZGUgbGEgVW5pdmVyc2lkYWQgRGlzdHJpdGFsIEZyYW5jaXNjbyBKb3PDqSBkZSBDYWxkYXMsIEFjdWVyZG8gMDM4IGRlIDIwMTUgMjAxNSDigJxwb3IgZWwgY3VhbCBzZSBtb2RpZmljYSBlbCBBY3VlcmRvIDAzMSBkZSAyMDE0IGRlIDIwMTQgcXVlIHJlZ2xhbWVudGEgZWwgdHJhYmFqbyBkZSBncmFkbyBwYXJhIGxvcyBlc3R1ZGlhbnRlcyBkZSBwcmVncmFkbyBkZSBsYSBVbml2ZXJzaWRhZCBEaXN0cml0YWwgRnJhbmNpc2NvIEpvc8OpIGRlIENhbGRhcyB5IHNlIGRpY3RhbiBvdHJhcyBkaXJlY3RyaWNlc+KAnSB5IGxhcyBkZW3DoXMgbm9ybWFzIGNvbmNvcmRhbnRlIHkgY29tcGxlbWVudGFyaWFzIHF1ZSByaWdlbiBhbCByZXNwZWN0bywgZXNwZWNpYWxtZW50ZSBsYSBsZXkgMjMgZGUgMTk4MiwgbGEgbGV5IDQ0IGRlIDE5OTMgeSBsYSBkZWNpc2nDs24gQW5kaW5hIDM1MSBkZSAxOTkzLiBFc3RvcyBkb2N1bWVudG9zIHBvZHLDoW4gc2VyIGNvbnN1bHRhZG9zIHkgZGVzY2FyZ2Fkb3MgZW4gZWwgcG9ydGFsIHdlYiBkZSBsYSBiaWJsaW90ZWNhIGh0dHA6Ly9zaXN0ZW1hZGViaWJsaW90ZWNhcy51ZGlzdHJpdGFsLmVkdS5jby8gIAoKaykJQWNlcHRvKGFtb3MpIHF1ZSBMQSBVTklWRVJTSURBRCBubyBzZSByZXNwb25zYWJpbGl6YSBwb3IgbGFzIGluZnJhY2Npb25lcyBhIGxhIHByb3BpZWRhZCBpbnRlbGVjdHVhbCBvIERlcmVjaG9zIGRlIEF1dG9yIGNhdXNhZGFzIHBvciBsb3MgdGl0dWxhcmVzIGRlIGxhIHByZXNlbnRlIExpY2VuY2lhIHkgZGVjbGFyYW1vcyBxdWUgbWFudGVuZHLDqSAoZW1vcykgaW5kZW1uZSBhIExBIFVOSVZFUlNJREFEIHBvciBsYXMgcmVjbGFtYWNpb25lcyBsZWdhbGVzIGRlIGN1YWxxdWllciB0aXBvIHF1ZSBsbGVnYXJlbiBhIHByZXNlbnRhcnNlIHBvciB2aW9sYWNpw7NuIGRlIGRlcmVjaG9zIGEgbGEgcHJvcGllZGFkIGludGVsZWN0dWFsIG8gZGUgQXV0b3IgcmVsYWNpb25hZG9zIGNvbiBsb3MgZG9jdW1lbnRvcyByZWdpc3RyYWRvcyBlbiBlbCBSSVVELgoKbCkJRWwgKGxvcykgYXV0b3IoZXMpIG1hbmlmaWVzdGEobW9zKSBxdWUgbGEgb2JyYSBvYmpldG8gZGUgbGEgcHJlc2VudGUgYXV0b3JpemFjacOzbiBlcyBvcmlnaW5hbCwgZGUgZXhjbHVzaXZhIGF1dG9yw61hLCB5IHNlIHJlYWxpesOzIHNpbiB2aW9sYXIgbyB1c3VycGFyIGRlcmVjaG9zIGRlIGF1dG9yIGRlIHRlcmNlcm9zOyBkZSB0YWwgc3VlcnRlLCBlbiBjYXNvIGRlIHByZXNlbnRhcnNlIGN1YWxxdWllciByZWNsYW1hY2nDs24gbyBhY2Npw7NuIHBvciBwYXJ0ZSBkZSB1biB0ZXJjZXJvIGVuIGN1YW50byBhIGxvcyBkZXJlY2hvcyBkZSBhdXRvciBzb2JyZSBsYSBvYnJhLCBlbCAobG9zKSBlc3R1ZGlhbnRlKHMpIOKAkyBhdXRvcihlcykgYXN1bWlyw6EobikgdG9kYSBsYSByZXNwb25zYWJpbGlkYWQgeSBzYWxkcsOhKG4pIGVuIGRlZmVuc2EgZGUgbG9zIGRlcmVjaG9zIGFxdcOtIGF1dG9yaXphZG9zLiBQYXJhIHRvZG9zIGxvcyBlZmVjdG9zLCBMQSBVTklWRVJTSURBRCBhY3TDumEgY29tbyB1biB0ZXJjZXJvIGRlIGJ1ZW5hIGZlLiAgIAoKCm0pCUVsIChsb3MpIGF1dG9yKGVzKSBtYW5pZmllc3RhKG1vcykgcXVlIGNvbm96Y28oY2Vtb3MpIGxhIGF1dG9ub23DrWEgeSBsb3MgZGVyZWNob3MsIHF1ZSBwb3NlZShtb3MpIHNvYnJlIGxhIG9icmEgeSwgY29tbyB0YWwsIGVzIChzb21vcykgcmVzcG9uc2FibGUocykgZGVsIGFsY2FuY2UganVyw61kaWNvIHkgbGVnYWwsIGRlIGVzY29nZXIgbGEgb3BjacOzbiBkZSBsYSBwdWJsaWNhY2nDs24gbyBkZSByZXN0cmljY2nDs24gZGUgbGEgcHVibGljYWNpw7NuIGRlbCBkb2N1bWVudG8gcmVnaXN0cmFkbyBlbiBlbCBSSVVELgoKCgoKU0kgRUwgRE9DVU1FTlRPIFNFIEJBU0EgRU4gVU4gVFJBQkFKTyBRVUUgSEEgU0lETyBQQVRST0NJTkFETyBPIEFQT1lBRE8gUE9SIFVOQSBBR0VOQ0lBIE8gVU5BIE9SR0FOSVpBQ0nDk04sIENPTiBFWENFUENJw5NOIERFIExBIFVOSVZFUlNJREFEIERJU1RSSVRBTCBGUkFOQ0lTQ08gSk9TRSBERSBDQUxEQVMsIExPUyBBVVRPUkVTIEdBUkFOVElaQU4gUVVFIFNFIEhBIENVTVBMSURPIENPTiBMT1MgCkRFUkVDSE9TIFkgT0JMSUdBQ0lPTkVTIFJFUVVFUklET1MgUE9SIEVMIFJFU1BFQ1RJVk8gQ09OVFJBVE8gTyBBQ1VFUkRPLgoKCgoKCgoKCgoKCgoKCgoKCgoKCgpFbiBjb25zdGFuY2lhIGRlIGxvIGFudGVyaW9yLCBmaXJtbyhhbW9zKSBlbCBwcmVzZW50ZSBkb2N1bWVudG8sIGVuIGxhIGNpdWRhZCBkZSBCb2dvdMOhLCBELkMuLCBhIGxvcyAKCgpGSVJNQSBERSBMT1MgVElUVUxBUkVTIERFIERFUkVDSE9TIERFIEFVVE9SCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18gICBDLkMuIE5vLiBfX19fX19fX19fX19fX19fX18KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fICAgQy5DLiBOby4gX19fX19fX19fX19fX19fX19fCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXyAgIEMuQy4gTm8uIF9fX19fX19fX19fX19fX19fXwoKCgpDb3JyZW8gRWxlY3Ryw7NuaWNvIEluc3RpdHVjaW9uYWwgZGVsIChkZSBsb3MpIEF1dG9yKGVzKToKCkF1dG9yCUNvcnJlbyBFbGVjdHLDs25pY28gCjEJCjIJCjMJCgpOb21icmUgZGUgRGlyZWN0b3IoZXMpIGRlIEdyYWRvOgoKMQkKMgkKMwkKCk5vbWJyZSBGYWN1bHRhZCB5IFByb3llY3RvIEN1cnJpY3VsYXI6CgpGYWN1bHRhZAlQcm95ZWN0byBDdXJyaWN1bGFyCgkKCgoKCgoKCk5vdGE6IEVuIGNhc28gcXVlIG5vIGVzdMOpIGRlIGFjdWVyZG8gY29uIGxhcyBjb25kaWNpb25lcyBkZSBsYSBwcmVzZW50ZSBsaWNlbmNpYSwgeSBtYW5pZmllc3RlIGFsZ3VuYSByZXN0cmljY2nDs24gc29icmUgbGEgb2JyYSwganVzdGlmaXF1ZSBsb3MgbW90aXZvcyBwb3IgbG9zIGN1YWxlcyBlbCBkb2N1bWVudG8geSBzdXMgYW5leG9zIG5vIHB1ZWRlbiBzZXIgcHVibGljYWRvcyBlbiBlbCBSZXBvc2l0b3JpbyBJbnN0aXR1Y2lvbmFsIGRlIGxhIFVuaXZlcnNpZGFkIERpc3RyaXRhbCBGcmFuY2lzY28gSm9zw6kgZGUgQ2FsZGFzIFJJVUQuCgoKU2kgcmVxdWllcmUgbcOhcyBlc3BhY2lvLCBwdWVkZSBhbmV4YXIgdW5hIGNvcGlhIHNpbWlsYXIgYSBlc3RhIGhvamEKCgo= |