Estrategias metodológicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto año
URL: https://dominiodelasciencias.com/ojs/index.php/es/article/view/4535/8941
| Autores: | , , , |
|---|---|
| Tipo de documento: | artigo |
| Estado: | Versão publicada |
| Data de publicação: | 2025 |
| País: | Ecuador |
| Recursos: | Universidad Bolivariana del Ecuador |
| Repositório: | Repositorio Universidad Bolivariana del Ecuador |
| OAI Identifier: | oai:null:123456789/2860 |
| Acesso em linha: | https://dspace.ube.edu.ec/handle/123456789/2860 |
| Access Level: | Acceso aberto |
| Palavra-chave: | SOCIAL SCIENCES::Social sciences::Education INTERDISCIPLINARY RESEARCH AREAS::Caring sciences::Social welfare/social pedagogics |
| id |
EC_f195db9700326d3c8b0d6ba12e1cd6c8 |
|---|---|
| oai_identifier_str |
oai:null:123456789/2860 |
| network_acronym_str |
EC |
| network_name_str |
Ecuador |
| repository_id_str |
|
| dc.title.none.fl_str_mv |
Estrategias metodológicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto año |
| dc.title.alternative.none.fl_str_mv |
Methodological strategies for improving the correct use of the Kichwa mother tongue in fifth grade |
| title |
Estrategias metodológicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto año |
| spellingShingle |
Estrategias metodológicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto año Campoverde, Rosa Asucena SOCIAL SCIENCES::Social sciences::Education INTERDISCIPLINARY RESEARCH AREAS::Caring sciences::Social welfare/social pedagogics |
| title_short |
Estrategias metodológicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto año |
| title_full |
Estrategias metodológicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto año |
| title_fullStr |
Estrategias metodológicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto año |
| title_full_unstemmed |
Estrategias metodológicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto año |
| title_sort |
Estrategias metodológicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto año |
| dc.creator.none.fl_str_mv |
Campoverde, Rosa Asucena Pichazaca Acero, María Josefina Piñera Concepción, Yadyra de la Caridad Ortiz Aguilar, Wilber |
| author |
Campoverde, Rosa Asucena |
| author_facet |
Campoverde, Rosa Asucena Pichazaca Acero, María Josefina Piñera Concepción, Yadyra de la Caridad Ortiz Aguilar, Wilber |
| author_role |
author |
| author2 |
Pichazaca Acero, María Josefina Piñera Concepción, Yadyra de la Caridad Ortiz Aguilar, Wilber |
| author2_role |
author author author |
| dc.subject.none.fl_str_mv |
SOCIAL SCIENCES::Social sciences::Education INTERDISCIPLINARY RESEARCH AREAS::Caring sciences::Social welfare/social pedagogics |
| topic |
SOCIAL SCIENCES::Social sciences::Education INTERDISCIPLINARY RESEARCH AREAS::Caring sciences::Social welfare/social pedagogics |
| description |
URL: https://dominiodelasciencias.com/ojs/index.php/es/article/view/4535/8941 |
| publishDate |
2025 |
| dc.date.issued.none.fl_str_mv |
2025-09-19 |
| dc.date.accessioned.none.fl_str_mv |
2026-01-21T15:50:37Z |
| dc.date.available.none.fl_str_mv |
2026-01-21T15:50:37Z |
| dc.type.none.fl_str_mv |
info:eu-repo/semantics/publishedVersion info:eu-repo/semantics/article |
| format |
article |
| status_str |
publishedVersion |
| dc.identifier.citation.none.fl_str_mv |
Rosa Asucena Campoverde, María Josefina Pichazaca Acero, Yadyra de la Caridad Piñera Concepción, & Wilber Ortiz Aguilar. (2025). Estrategias metodológicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto año. Dominio De Las Ciencias, 11(3), 1571–1593. https://doi.org/10.23857/dc.v11i3.4535 |
| dc.identifier.issn.none.fl_str_mv |
2477-8818 |
| dc.identifier.uri.none.fl_str_mv |
https://dspace.ube.edu.ec/handle/123456789/2860 |
| identifier_str_mv |
Rosa Asucena Campoverde, María Josefina Pichazaca Acero, Yadyra de la Caridad Piñera Concepción, & Wilber Ortiz Aguilar. (2025). Estrategias metodológicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto año. Dominio De Las Ciencias, 11(3), 1571–1593. https://doi.org/10.23857/dc.v11i3.4535 2477-8818 |
| url |
https://dspace.ube.edu.ec/handle/123456789/2860 |
| dc.language.iso.none.fl_str_mv |
es |
| language_invalid_str_mv |
es |
| dc.relation.ispartofseries.none.fl_str_mv |
PM-EB-A24-05P1-44; 0301272217 |
| dc.rights.none.fl_str_mv |
http://purl.org/coar/access_right/c_abf2 info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
http://purl.org/coar/access_right/c_abf2 |
| eu_rights_str_mv |
openAccess |
| dc.publisher.none.fl_str_mv |
Dominio De Las Ciencia |
| publisher.none.fl_str_mv |
Dominio De Las Ciencia |
| dc.source.none.fl_str_mv |
reponame:Repositorio Universidad Bolivariana del Ecuador instname:Universidad Bolivariana del Ecuador instacron:UBE |
| instname_str |
Universidad Bolivariana del Ecuador |
| instacron_str |
UBE |
| institution |
UBE |
| reponame_str |
Repositorio Universidad Bolivariana del Ecuador |
| collection |
Repositorio Universidad Bolivariana del Ecuador |
| bitstream.url.fl_str_mv |
https://dspace.ube.edu.ec/bitstreams/c09e7aa7-abf4-4804-b867-64b345d023f8/download https://dspace.ube.edu.ec/bitstreams/f9a397ba-93d4-4a9f-821c-e626398f2164/download https://dspace.ube.edu.ec/bitstreams/336560c7-2d45-4438-8ee3-6bd0316560a7/download https://dspace.ube.edu.ec/bitstreams/549b6ccd-a8c9-40ea-a7d4-d672980a580f/download https://dspace.ube.edu.ec/bitstreams/f4e94b14-b47e-41d0-a764-c216d0a631b5/download |
| bitstream.checksum.fl_str_mv |
6446bd9cd26dd9427c5026476a80b4af 3f93cde5f344a744d30c2233d3874834 039f7eb4986eb69ecff1cd665f75d9bd 7a674568c610407ade1d32071eead43b ac7c04402a92a1ab6eb8dd132faae9d5 |
| bitstream.checksumAlgorithm.fl_str_mv |
MD5 MD5 MD5 MD5 MD5 |
| repository.name.fl_str_mv |
Repositorio Universidad Bolivariana del Ecuador - Universidad Bolivariana del Ecuador |
| repository.mail.fl_str_mv |
.. |
| _version_ |
1873870072802443264 |
| spelling |
2026-01-21T15:50:37Z2026-01-21T15:50:37Z2025-09-19Rosa Asucena Campoverde, María Josefina Pichazaca Acero, Yadyra de la Caridad Piñera Concepción, & Wilber Ortiz Aguilar. (2025). Estrategias metodológicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto año. Dominio De Las Ciencias, 11(3), 1571–1593. https://doi.org/10.23857/dc.v11i3.45352477-8818https://dspace.ube.edu.ec/handle/123456789/2860URL: https://dominiodelasciencias.com/ojs/index.php/es/article/view/4535/8941La presente investigación tuvo como objetivo diseñar estrategias metodológicas para el mejoramiento del uso correcto de la lengua materna kichwa en estudiantes de quinto año del CECIB “José Antonio Caizán Mainato”. Se realizó un diagnóstico a través de métodos teóricos, empíricos y estadísticos, que incluyó entrevistas a docentes, observación a estudiantes y revisión documental. Los resultados evidenciaron deficiencias en la articulación, entonación, uso gramatical y léxico del kichwa por parte de los estudiantes, así como una baja autoestima lingüística y escasa interacción oral en el aula. En respuesta, se propuso una estrategia metodológica compuesta por cuatro ejes: secuencias didácticas temáticas, actividades lúdicas y participativas, integración de saberes ancestrales e incorporación de materiales visuales y auditivos. Cada estrategia fue diseñada con orientaciones metodológicas detalladas, recursos contextualizados y criterios de evaluación formativa. La propuesta fue validada mediante el registro de experiencias, lo que permitió constatar avances en la participación oral, el reconocimiento del kichwa como lengua viva y el fortalecimiento de la identidad cultural. La discusión evidenció que, aunque persisten desafíos estructurales y pedagógicos, la implementación de estrategias culturalmente pertinentes puede contribuir significativamente a la revitalización del kichwa en contextos escolares. Se concluyó que el uso correcto de la lengua materna requiere una intervención educativa integral, que articule lo lingüístico, lo cultural y lo afectivo, y que involucre activamente a la comunidad educativa.Universidad Bolivariana del EcuadoresDominio De Las CienciaPM-EB-A24-05P1-44; 0301272217http://purl.org/coar/access_right/c_abf2info:eu-repo/semantics/openAccessSOCIAL SCIENCES::Social sciences::EducationINTERDISCIPLINARY RESEARCH AREAS::Caring sciences::Social welfare/social pedagogicsEstrategias metodológicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto añoMethodological strategies for improving the correct use of the Kichwa mother tongue in fifth gradeinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/articlereponame:Repositorio Universidad Bolivariana del Ecuadorinstname:Universidad Bolivariana del Ecuadorinstacron:UBECampoverde, Rosa AsucenaPichazaca Acero, María JosefinaPiñera Concepción, Yadyra de la CaridadOrtiz Aguilar, WilberTHUMBNAILCaptura de pantalla 2026-01-21 105833.pngimage/png45147https://dspace.ube.edu.ec/bitstreams/c09e7aa7-abf4-4804-b867-64b345d023f8/download6446bd9cd26dd9427c5026476a80b4afMD53Estrategias metodologicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto ano.pdf.jpgEstrategias metodologicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto ano.pdf.jpgGenerated Thumbnailimage/jpeg5242https://dspace.ube.edu.ec/bitstreams/f9a397ba-93d4-4a9f-821c-e626398f2164/download3f93cde5f344a744d30c2233d3874834MD55ORIGINALEstrategias metodologicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto ano.pdfEstrategias metodologicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto ano.pdfapplication/pdf458712https://dspace.ube.edu.ec/bitstreams/336560c7-2d45-4438-8ee3-6bd0316560a7/download039f7eb4986eb69ecff1cd665f75d9bdMD51LICENSElicense.txtlicense.txttext/plain; charset=utf-820877https://dspace.ube.edu.ec/bitstreams/549b6ccd-a8c9-40ea-a7d4-d672980a580f/download7a674568c610407ade1d32071eead43bMD52TEXTEstrategias metodologicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto ano.pdf.txtEstrategias metodologicas para el mejoramiento del uso correcto de la lengua materna Kichwa de quinto ano.pdf.txtExtracted texttext/plain57416https://dspace.ube.edu.ec/bitstreams/f4e94b14-b47e-41d0-a764-c216d0a631b5/downloadac7c04402a92a1ab6eb8dd132faae9d5MD54123456789/28602026-01-30 11:42:47.177open.accessoai:null:123456789/2860https://dspace.ube.edu.ecInstitucionalhttps://dspace.ube.edu.ec/homeUniversidad privadahttps://ube.edu.ec/https://dspace.ube.edu.ec/server/oai..Ecuadoropendoar:2026-01-30T11:42:47Repositorio Universidad Bolivariana del Ecuador - Universidad Bolivariana del EcuadorfalsebGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgpuLU5vbkNvbW1lcmNpYWwtU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCkNyZWF0aXZlIENvbW1vbnMgQ29ycG9yYXRpb24gKCJDcmVhdGl2ZSBDb21tb25zIikgaXMgbm90IGEgbGF3IGZpcm0gYW5kCmRvZXMgbm90IHByb3ZpZGUgbGVnYWwgc2VydmljZXMgb3IgbGVnYWwgYWR2aWNlLiBEaXN0cmlidXRpb24gb2YKQ3JlYXRpdmUgQ29tbW9ucyBwdWJsaWMgbGljZW5zZXMgZG9lcyBub3QgY3JlYXRlIGEgbGF3eWVyLWNsaWVudCBvcgpvdGhlciByZWxhdGlvbnNoaXAuIENyZWF0aXZlIENvbW1vbnMgbWFrZXMgaXRzIGxpY2Vuc2VzIGFuZCByZWxhdGVkCmluZm9ybWF0aW9uIGF2YWlsYWJsZSBvbiBhbiAiYXMtaXMiIGJhc2lzLiBDcmVhdGl2ZSBDb21tb25zIGdpdmVzIG5vCndhcnJhbnRpZXMgcmVnYXJkaW5nIGl0cyBsaWNlbnNlcywgYW55IG1hdGVyaWFsIGxpY2Vuc2VkIHVuZGVyIHRoZWlyCnRlcm1zIGFuZCBjb25kaXRpb25zLCBvciBhbnkgcmVsYXRlZCBpbmZvcm1hdGlvbi4gQ3JlYXRpdmUgQ29tbW9ucwpkaXNjbGFpbXMgYWxsIGxpYWJpbGl0eSBmb3IgZGFtYWdlcyByZXN1bHRpbmcgZnJvbSB0aGVpciB1c2UgdG8gdGhlCmZ1bGxlc3QgZXh0ZW50IHBvc3NpYmxlLgoKVXNpbmcgQ3JlYXRpdmUgQ29tbW9ucyBQdWJsaWMgTGljZW5zZXMKCkNyZWF0aXZlIENvbW1vbnMgcHVibGljIGxpY2Vuc2VzIHByb3ZpZGUgYSBzdGFuZGFyZCBzZXQgb2YgdGVybXMgYW5kCmNvbmRpdGlvbnMgdGhhdCBjcmVhdG9ycyBhbmQgb3RoZXIgcmlnaHRzIGhvbGRlcnMgbWF5IHVzZSB0byBzaGFyZQpvcmlnaW5hbCB3b3JrcyBvZiBhdXRob3JzaGlwIGFuZCBvdGhlciBtYXRlcmlhbCBzdWJqZWN0IHRvIGNvcHlyaWdodAphbmQgY2VydGFpbiBvdGhlciByaWdodHMgc3BlY2lmaWVkIGluIHRoZSBwdWJsaWMgbGljZW5zZSBiZWxvdy4gVGhlCmZvbGxvd2luZyBjb25zaWRlcmF0aW9ucyBhcmUgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seSwgYXJlIG5vdApleGhhdXN0aXZlLCBhbmQgZG8gbm90IGZvcm0gcGFydCBvZiBvdXIgbGljZW5zZXMuCgogICAgIENvbnNpZGVyYXRpb25zIGZvciBsaWNlbnNvcnM6IE91ciBwdWJsaWMgbGljZW5zZXMgYXJlCiAgICAgaW50ZW5kZWQgZm9yIHVzZSBieSB0aG9zZSBhdXRob3JpemVkIHRvIGdpdmUgdGhlIHB1YmxpYwogICAgIHBlcm1pc3Npb24gdG8gdXNlIG1hdGVyaWFsIGluIHdheXMgb3RoZXJ3aXNlIHJlc3RyaWN0ZWQgYnkKICAgICBjb3B5cmlnaHQgYW5kIGNlcnRhaW4gb3RoZXIgcmlnaHRzLiBPdXIgbGljZW5zZXMgYXJlCiAgICAgaXJyZXZvY2FibGUuIExpY2Vuc29ycyBzaG91bGQgcmVhZCBhbmQgdW5kZXJzdGFuZCB0aGUgdGVybXMKICAgICBhbmQgY29uZGl0aW9ucyBvZiB0aGUgbGljZW5zZSB0aGV5IGNob29zZSBiZWZvcmUgYXBwbHlpbmcgaXQuCiAgICAgTGljZW5zb3JzIHNob3VsZCBhbHNvIHNlY3VyZSBhbGwgcmlnaHRzIG5lY2Vzc2FyeSBiZWZvcmUKICAgICBhcHBseWluZyBvdXIgbGljZW5zZXMgc28gdGhhdCB0aGUgcHVibGljIGNhbiByZXVzZSB0aGUKICAgICBtYXRlcmlhbCBhcyBleHBlY3RlZC4gTGljZW5zb3JzIHNob3VsZCBjbGVhcmx5IG1hcmsgYW55CiAgICAgbWF0ZXJpYWwgbm90IHN1YmplY3QgdG8gdGhlIGxpY2Vuc2UuIFRoaXMgaW5jbHVkZXMgb3RoZXIgQ0MtCiAgICAgbGljZW5zZWQgbWF0ZXJpYWwsIG9yIG1hdGVyaWFsIHVzZWQgdW5kZXIgYW4gZXhjZXB0aW9uIG9yCiAgICAgbGltaXRhdGlvbiB0byBjb3B5cmlnaHQuIE1vcmUgY29uc2lkZXJhdGlvbnMgZm9yIGxpY2Vuc29yczoKICAgIHdpa2kuY3JlYXRpdmVjb21tb25zLm9yZy9Db25zaWRlcmF0aW9uc19mb3JfbGljZW5zb3JzCgogICAgIENvbnNpZGVyYXRpb25zIGZvciB0aGUgcHVibGljOiBCeSB1c2luZyBvbmUgb2Ygb3VyIHB1YmxpYwogICAgIGxpY2Vuc2VzLCBhIGxpY2Vuc29yIGdyYW50cyB0aGUgcHVibGljIHBlcm1pc3Npb24gdG8gdXNlIHRoZQogICAgIGxpY2Vuc2VkIG1hdGVyaWFsIHVuZGVyIHNwZWNpZmllZCB0ZXJtcyBhbmQgY29uZGl0aW9ucy4gSWYKICAgICB0aGUgbGljZW5zb3IncyBwZXJtaXNzaW9uIGlzIG5vdCBuZWNlc3NhcnkgZm9yIGFueSByZWFzb24tLWZvcgogICAgIGV4YW1wbGUsIGJlY2F1c2Ugb2YgYW55IGFwcGxpY2FibGUgZXhjZXB0aW9uIG9yIGxpbWl0YXRpb24gdG8KICAgICBjb3B5cmlnaHQtLXRoZW4gdGhhdCB1c2UgaXMgbm90IHJlZ3VsYXRlZCBieSB0aGUgbGljZW5zZS4gT3VyCiAgICAgbGljZW5zZXMgZ3JhbnQgb25seSBwZXJtaXNzaW9ucyB1bmRlciBjb3B5cmlnaHQgYW5kIGNlcnRhaW4KICAgICBvdGhlciByaWdodHMgdGhhdCBhIGxpY2Vuc29yIGhhcyBhdXRob3JpdHkgdG8gZ3JhbnQuIFVzZSBvZgogICAgIHRoZSBsaWNlbnNlZCBtYXRlcmlhbCBtYXkgc3RpbGwgYmUgcmVzdHJpY3RlZCBmb3Igb3RoZXIKICAgICByZWFzb25zLCBpbmNsdWRpbmcgYmVjYXVzZSBvdGhlcnMgaGF2ZSBjb3B5cmlnaHQgb3Igb3RoZXIKICAgICByaWdodHMgaW4gdGhlIG1hdGVyaWFsLiBBIGxpY2Vuc29yIG1heSBtYWtlIHNwZWNpYWwgcmVxdWVzdHMsCiAgICAgc3VjaCBhcyBhc2tpbmcgdGhhdCBhbGwgY2hhbmdlcyBiZSBtYXJrZWQgb3IgZGVzY3JpYmVkLgogICAgIEFsdGhvdWdoIG5vdCByZXF1aXJlZCBieSBvdXIgbGljZW5zZXMsIHlvdSBhcmUgZW5jb3VyYWdlZCB0bwogICAgIHJlc3BlY3QgdGhvc2UgcmVxdWVzdHMgd2hlcmUgcmVhc29uYWJsZS4gTW9yZSBjb25zaWRlcmF0aW9ucwogICAgIGZvciB0aGUgcHVibGljOgogICAgd2lraS5jcmVhdGl2ZWNvbW1vbnMub3JnL0NvbnNpZGVyYXRpb25zX2Zvcl9saWNlbnNlZXMKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpDcmVhdGl2ZSBDb21tb25zIEF0dHJpYnV0aW9uLU5vbkNvbW1lcmNpYWwtU2hhcmVBbGlrZSA0LjAgSW50ZXJuYXRpb25hbApQdWJsaWMgTGljZW5zZQoKQnkgZXhlcmNpc2luZyB0aGUgTGljZW5zZWQgUmlnaHRzIChkZWZpbmVkIGJlbG93KSwgWW91IGFjY2VwdCBhbmQgYWdyZWUKdG8gYmUgYm91bmQgYnkgdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgQ3JlYXRpdmUgQ29tbW9ucwpBdHRyaWJ1dGlvbi1Ob25Db21tZXJjaWFsLVNoYXJlQWxpa2UgNC4wIEludGVybmF0aW9uYWwgUHVibGljIExpY2Vuc2UKKCJQdWJsaWMgTGljZW5zZSIpLiBUbyB0aGUgZXh0ZW50IHRoaXMgUHVibGljIExpY2Vuc2UgbWF5IGJlCmludGVycHJldGVkIGFzIGEgY29udHJhY3QsIFlvdSBhcmUgZ3JhbnRlZCB0aGUgTGljZW5zZWQgUmlnaHRzIGluCmNvbnNpZGVyYXRpb24gb2YgWW91ciBhY2NlcHRhbmNlIG9mIHRoZXNlIHRlcm1zIGFuZCBjb25kaXRpb25zLCBhbmQgdGhlCkxpY2Vuc29yIGdyYW50cyBZb3Ugc3VjaCByaWdodHMgaW4gY29uc2lkZXJhdGlvbiBvZiBiZW5lZml0cyB0aGUKTGljZW5zb3IgcmVjZWl2ZXMgZnJvbSBtYWtpbmcgdGhlIExpY2Vuc2VkIE1hdGVyaWFsIGF2YWlsYWJsZSB1bmRlcgp0aGVzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4KCgpTZWN0aW9uIDEgLS0gRGVmaW5pdGlvbnMuCgogIGEuIEFkYXB0ZWQgTWF0ZXJpYWwgbWVhbnMgbWF0ZXJpYWwgc3ViamVjdCB0byBDb3B5cmlnaHQgYW5kIFNpbWlsYXIKICAgICBSaWdodHMgdGhhdCBpcyBkZXJpdmVkIGZyb20gb3IgYmFzZWQgdXBvbiB0aGUgTGljZW5zZWQgTWF0ZXJpYWwKICAgICBhbmQgaW4gd2hpY2ggdGhlIExpY2Vuc2VkIE1hdGVyaWFsIGlzIHRyYW5zbGF0ZWQsIGFsdGVyZWQsCiAgICAgYXJyYW5nZWQsIHRyYW5zZm9ybWVkLCBvciBvdGhlcndpc2UgbW9kaWZpZWQgaW4gYSBtYW5uZXIgcmVxdWlyaW5nCiAgICAgcGVybWlzc2lvbiB1bmRlciB0aGUgQ29weXJpZ2h0IGFuZCBTaW1pbGFyIFJpZ2h0cyBoZWxkIGJ5IHRoZQogICAgIExpY2Vuc29yLiBGb3IgcHVycG9zZXMgb2YgdGhpcyBQdWJsaWMgTGljZW5zZSwgd2hlcmUgdGhlIExpY2Vuc2VkCiAgICAgTWF0ZXJpYWwgaXMgYSBtdXNpY2FsIHdvcmssIHBlcmZvcm1hbmNlLCBvciBzb3VuZCByZWNvcmRpbmcsCiAgICAgQWRhcHRlZCBNYXRlcmlhbCBpcyBhbHdheXMgcHJvZHVjZWQgd2hlcmUgdGhlIExpY2Vuc2VkIE1hdGVyaWFsIGlzCiAgICAgc3luY2hlZCBpbiB0aW1lZCByZWxhdGlvbiB3aXRoIGEgbW92aW5nIGltYWdlLgoKICBiLiBBZGFwdGVyJ3MgTGljZW5zZSBtZWFucyB0aGUgbGljZW5zZSBZb3UgYXBwbHkgdG8gWW91ciBDb3B5cmlnaHQKICAgICBhbmQgU2ltaWxhciBSaWdodHMgaW4gWW91ciBjb250cmlidXRpb25zIHRvIEFkYXB0ZWQgTWF0ZXJpYWwgaW4KICAgICBhY2NvcmRhbmNlIHdpdGggdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgUHVibGljIExpY2Vuc2UuCgogIGMuIEJZLU5DLVNBIENvbXBhdGlibGUgTGljZW5zZSBtZWFucyBhIGxpY2Vuc2UgbGlzdGVkIGF0CiAgICAgY3JlYXRpdmVjb21tb25zLm9yZy9jb21wYXRpYmxlbGljZW5zZXMsIGFwcHJvdmVkIGJ5IENyZWF0aXZlCiAgICAgQ29tbW9ucyBhcyBlc3NlbnRpYWxseSB0aGUgZXF1aXZhbGVudCBvZiB0aGlzIFB1YmxpYyBMaWNlbnNlLgoKICBkLiBDb3B5cmlnaHQgYW5kIFNpbWlsYXIgUmlnaHRzIG1lYW5zIGNvcHlyaWdodCBhbmQvb3Igc2ltaWxhciByaWdodHMKICAgICBjbG9zZWx5IHJlbGF0ZWQgdG8gY29weXJpZ2h0IGluY2x1ZGluZywgd2l0aG91dCBsaW1pdGF0aW9uLAogICAgIHBlcmZvcm1hbmNlLCBicm9hZGNhc3QsIHNvdW5kIHJlY29yZGluZywgYW5kIFN1aSBHZW5lcmlzIERhdGFiYXNlCiAgICAgUmlnaHRzLCB3aXRob3V0IHJlZ2FyZCB0byBob3cgdGhlIHJpZ2h0cyBhcmUgbGFiZWxlZCBvcgogICAgIGNhdGVnb3JpemVkLiBGb3IgcHVycG9zZXMgb2YgdGhpcyBQdWJsaWMgTGljZW5zZSwgdGhlIHJpZ2h0cwogICAgIHNwZWNpZmllZCBpbiBTZWN0aW9uIDIoYikoMSktKDIpIGFyZSBub3QgQ29weXJpZ2h0IGFuZCBTaW1pbGFyCiAgICAgUmlnaHRzLgoKICBlLiBFZmZlY3RpdmUgVGVjaG5vbG9naWNhbCBNZWFzdXJlcyBtZWFucyB0aG9zZSBtZWFzdXJlcyB0aGF0LCBpbiB0aGUKICAgICBhYnNlbmNlIG9mIHByb3BlciBhdXRob3JpdHksIG1heSBub3QgYmUgY2lyY3VtdmVudGVkIHVuZGVyIGxhd3MKICAgICBmdWxmaWxsaW5nIG9ibGlnYXRpb25zIHVuZGVyIEFydGljbGUgMTEgb2YgdGhlIFdJUE8gQ29weXJpZ2h0CiAgICAgVHJlYXR5IGFkb3B0ZWQgb24gRGVjZW1iZXIgMjAsIDE5OTYsIGFuZC9vciBzaW1pbGFyIGludGVybmF0aW9uYWwKICAgICBhZ3JlZW1lbnRzLgoKICBmLiBFeGNlcHRpb25zIGFuZCBMaW1pdGF0aW9ucyBtZWFucyBmYWlyIHVzZSwgZmFpciBkZWFsaW5nLCBhbmQvb3IKICAgICBhbnkgb3RoZXIgZXhjZXB0aW9uIG9yIGxpbWl0YXRpb24gdG8gQ29weXJpZ2h0IGFuZCBTaW1pbGFyIFJpZ2h0cwogICAgIHRoYXQgYXBwbGllcyB0byBZb3VyIHVzZSBvZiB0aGUgTGljZW5zZWQgTWF0ZXJpYWwuCgogIGcuIExpY2Vuc2UgRWxlbWVudHMgbWVhbnMgdGhlIGxpY2Vuc2UgYXR0cmlidXRlcyBsaXN0ZWQgaW4gdGhlIG5hbWUKICAgICBvZiBhIENyZWF0aXZlIENvbW1vbnMgUHVibGljIExpY2Vuc2UuIFRoZSBMaWNlbnNlIEVsZW1lbnRzIG9mIHRoaXMKICAgICBQdWJsaWMgTGljZW5zZSBhcmUgQXR0cmlidXRpb24sIE5vbkNvbW1lcmNpYWwsIGFuZCBTaGFyZUFsaWtlLgoKICBoLiBMaWNlbnNlZCBNYXRlcmlhbCBtZWFucyB0aGUgYXJ0aXN0aWMgb3IgbGl0ZXJhcnkgd29yaywgZGF0YWJhc2UsCiAgICAgb3Igb3RoZXIgbWF0ZXJpYWwgdG8gd2hpY2ggdGhlIExpY2Vuc29yIGFwcGxpZWQgdGhpcyBQdWJsaWMKICAgICBMaWNlbnNlLgoKICBpLiBMaWNlbnNlZCBSaWdodHMgbWVhbnMgdGhlIHJpZ2h0cyBncmFudGVkIHRvIFlvdSBzdWJqZWN0IHRvIHRoZQogICAgIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgUHVibGljIExpY2Vuc2UsIHdoaWNoIGFyZSBsaW1pdGVkIHRvCiAgICAgYWxsIENvcHlyaWdodCBhbmQgU2ltaWxhciBSaWdodHMgdGhhdCBhcHBseSB0byBZb3VyIHVzZSBvZiB0aGUKICAgICBMaWNlbnNlZCBNYXRlcmlhbCBhbmQgdGhhdCB0aGUgTGljZW5zb3IgaGFzIGF1dGhvcml0eSB0byBsaWNlbnNlLgoKICBqLiBMaWNlbnNvciBtZWFucyB0aGUgaW5kaXZpZHVhbChzKSBvciBlbnRpdHkoaWVzKSBncmFudGluZyByaWdodHMKICAgICB1bmRlciB0aGlzIFB1YmxpYyBMaWNlbnNlLgoKICBrLiBOb25Db21tZXJjaWFsIG1lYW5zIG5vdCBwcmltYXJpbHkgaW50ZW5kZWQgZm9yIG9yIGRpcmVjdGVkIHRvd2FyZHMKICAgICBjb21tZXJjaWFsIGFkdmFudGFnZSBvciBtb25ldGFyeSBjb21wZW5zYXRpb24uIEZvciBwdXJwb3NlcyBvZgogICAgIHRoaXMgUHVibGljIExpY2Vuc2UsIHRoZSBleGNoYW5nZSBvZiB0aGUgTGljZW5zZWQgTWF0ZXJpYWwgZm9yCiAgICAgb3RoZXIgbWF0ZXJpYWwgc3ViamVjdCB0byBDb3B5cmlnaHQgYW5kIFNpbWlsYXIgUmlnaHRzIGJ5IGRpZ2l0YWwKICAgICBmaWxlLXNoYXJpbmcgb3Igc2ltaWxhciBtZWFucyBpcyBOb25Db21tZXJjaWFsIHByb3ZpZGVkIHRoZXJlIGlzCiAgICAgbm8gcGF5bWVudCBvZiBtb25ldGFyeSBjb21wZW5zYXRpb24gaW4gY29ubmVjdGlvbiB3aXRoIHRoZQogICAgIGV4Y2hhbmdlLgoKICBsLiBTaGFyZSBtZWFucyB0byBwcm92aWRlIG1hdGVyaWFsIHRvIHRoZSBwdWJsaWMgYnkgYW55IG1lYW5zIG9yCiAgICAgcHJvY2VzcyB0aGF0IHJlcXVpcmVzIHBlcm1pc3Npb24gdW5kZXIgdGhlIExpY2Vuc2VkIFJpZ2h0cywgc3VjaAogICAgIGFzIHJlcHJvZHVjdGlvbiwgcHVibGljIGRpc3BsYXksIHB1YmxpYyBwZXJmb3JtYW5jZSwgZGlzdHJpYnV0aW9uLAogICAgIGRpc3NlbWluYXRpb24sIGNvbW11bmljYXRpb24sIG9yIGltcG9ydGF0aW9uLCBhbmQgdG8gbWFrZSBtYXRlcmlhbAogICAgIGF2YWlsYWJsZSB0byB0aGUgcHVibGljIGluY2x1ZGluZyBpbiB3YXlzIHRoYXQgbWVtYmVycyBvZiB0aGUKICAgICBwdWJsaWMgbWF5IGFjY2VzcyB0aGUgbWF0ZXJpYWwgZnJvbSBhIHBsYWNlIGFuZCBhdCBhIHRpbWUKICAgICBpbmRpdmlkdWFsbHkgY2hvc2VuIGJ5IHRoZW0uCgogIG0uIFN1aSBHZW5lcmlzIERhdGFiYXNlIFJpZ2h0cyBtZWFucyByaWdodHMgb3RoZXIgdGhhbiBjb3B5cmlnaHQKICAgICByZXN1bHRpbmcgZnJvbSBEaXJlY3RpdmUgOTYvOS9FQyBvZiB0aGUgRXVyb3BlYW4gUGFybGlhbWVudCBhbmQgb2YKICAgICB0aGUgQ291bmNpbCBvZiAxMSBNYXJjaCAxOTk2IG9uIHRoZSBsZWdhbCBwcm90ZWN0aW9uIG9mIGRhdGFiYXNlcywKICAgICBhcyBhbWVuZGVkIGFuZC9vciBzdWNjZWVkZWQsIGFzIHdlbGwgYXMgb3RoZXIgZXNzZW50aWFsbHkKICAgICBlcXVpdmFsZW50IHJpZ2h0cyBhbnl3aGVyZSBpbiB0aGUgd29ybGQuCgogIG4uIFlvdSBtZWFucyB0aGUgaW5kaXZpZHVhbCBvciBlbnRpdHkgZXhlcmNpc2luZyB0aGUgTGljZW5zZWQgUmlnaHRzCiAgICAgdW5kZXIgdGhpcyBQdWJsaWMgTGljZW5zZS4gWW91ciBoYXMgYSBjb3JyZXNwb25kaW5nIG1lYW5pbmcuCgoKU2VjdGlvbiAyIC0tIFNjb3BlLgoKICBhLiBMaWNlbnNlIGdyYW50LgoKICAgICAgIDEuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHRoaXMgUHVibGljIExpY2Vuc2UsCiAgICAgICAgICB0aGUgTGljZW5zb3IgaGVyZWJ5IGdyYW50cyBZb3UgYSB3b3JsZHdpZGUsIHJveWFsdHktZnJlZSwKICAgICAgICAgIG5vbi1zdWJsaWNlbnNhYmxlLCBub24tZXhjbHVzaXZlLCBpcnJldm9jYWJsZSBsaWNlbnNlIHRvCiAgICAgICAgICBleGVyY2lzZSB0aGUgTGljZW5zZWQgUmlnaHRzIGluIHRoZSBMaWNlbnNlZCBNYXRlcmlhbCB0bzoKCiAgICAgICAgICAgIGEuIHJlcHJvZHVjZSBhbmQgU2hhcmUgdGhlIExpY2Vuc2VkIE1hdGVyaWFsLCBpbiB3aG9sZSBvcgogICAgICAgICAgICAgICBpbiBwYXJ0LCBmb3IgTm9uQ29tbWVyY2lhbCBwdXJwb3NlcyBvbmx5OyBhbmQKCiAgICAgICAgICAgIGIuIHByb2R1Y2UsIHJlcHJvZHVjZSwgYW5kIFNoYXJlIEFkYXB0ZWQgTWF0ZXJpYWwgZm9yCiAgICAgICAgICAgICAgIE5vbkNvbW1lcmNpYWwgcHVycG9zZXMgb25seS4KCiAgICAgICAyLiBFeGNlcHRpb25zIGFuZCBMaW1pdGF0aW9ucy4gRm9yIHRoZSBhdm9pZGFuY2Ugb2YgZG91YnQsIHdoZXJlCiAgICAgICAgICBFeGNlcHRpb25zIGFuZCBMaW1pdGF0aW9ucyBhcHBseSB0byBZb3VyIHVzZSwgdGhpcyBQdWJsaWMKICAgICAgICAgIExpY2Vuc2UgZG9lcyBub3QgYXBwbHksIGFuZCBZb3UgZG8gbm90IG5lZWQgdG8gY29tcGx5IHdpdGgKICAgICAgICAgIGl0cyB0ZXJtcyBhbmQgY29uZGl0aW9ucy4KCiAgICAgICAzLiBUZXJtLiBUaGUgdGVybSBvZiB0aGlzIFB1YmxpYyBMaWNlbnNlIGlzIHNwZWNpZmllZCBpbiBTZWN0aW9uCiAgICAgICAgICA2KGEpLgoKICAgICAgIDQuIE1lZGlhIGFuZCBmb3JtYXRzOyB0ZWNobmljYWwgbW9kaWZpY2F0aW9ucyBhbGxvd2VkLiBUaGUKICAgICAgICAgIExpY2Vuc29yIGF1dGhvcml6ZXMgWW91IHRvIGV4ZXJjaXNlIHRoZSBMaWNlbnNlZCBSaWdodHMgaW4KICAgICAgICAgIGFsbCBtZWRpYSBhbmQgZm9ybWF0cyB3aGV0aGVyIG5vdyBrbm93biBvciBoZXJlYWZ0ZXIgY3JlYXRlZCwKICAgICAgICAgIGFuZCB0byBtYWtlIHRlY2huaWNhbCBtb2RpZmljYXRpb25zIG5lY2Vzc2FyeSB0byBkbyBzby4gVGhlCiAgICAgICAgICBMaWNlbnNvciB3YWl2ZXMgYW5kL29yIGFncmVlcyBub3QgdG8gYXNzZXJ0IGFueSByaWdodCBvcgogICAgICAgICAgYXV0aG9yaXR5IHRvIGZvcmJpZCBZb3UgZnJvbSBtYWtpbmcgdGVjaG5pY2FsIG1vZGlmaWNhdGlvbnMKICAgICAgICAgIG5lY2Vzc2FyeSB0byBleGVyY2lzZSB0aGUgTGljZW5zZWQgUmlnaHRzLCBpbmNsdWRpbmcKICAgICAgICAgIHRlY2huaWNhbCBtb2RpZmljYXRpb25zIG5lY2Vzc2FyeSB0byBjaXJjdW12ZW50IEVmZmVjdGl2ZQogICAgICAgICAgVGVjaG5vbG9naWNhbCBNZWFzdXJlcy4gRm9yIHB1cnBvc2VzIG9mIHRoaXMgUHVibGljIExpY2Vuc2UsCiAgICAgICAgICBzaW1wbHkgbWFraW5nIG1vZGlmaWNhdGlvbnMgYXV0aG9yaXplZCBieSB0aGlzIFNlY3Rpb24gMihhKQogICAgICAgICAgKDQpIG5ldmVyIHByb2R1Y2VzIEFkYXB0ZWQgTWF0ZXJpYWwuCgogICAgICAgNS4gRG93bnN0cmVhbSByZWNpcGllbnRzLgoKICAgICAgICAgICAgYS4gT2ZmZXIgZnJvbSB0aGUgTGljZW5zb3IgLS0gTGljZW5zZWQgTWF0ZXJpYWwuIEV2ZXJ5CiAgICAgICAgICAgICAgIHJlY2lwaWVudCBvZiB0aGUgTGljZW5zZWQgTWF0ZXJpYWwgYXV0b21hdGljYWxseQogICAgICAgICAgICAgICByZWNlaXZlcyBhbiBvZmZlciBmcm9tIHRoZSBMaWNlbnNvciB0byBleGVyY2lzZSB0aGUKICAgICAgICAgICAgICAgTGljZW5zZWQgUmlnaHRzIHVuZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzCiAgICAgICAgICAgICAgIFB1YmxpYyBMaWNlbnNlLgoKICAgICAgICAgICAgYi4gQWRkaXRpb25hbCBvZmZlciBmcm9tIHRoZSBMaWNlbnNvciAtLSBBZGFwdGVkIE1hdGVyaWFsLgogICAgICAgICAgICAgICBFdmVyeSByZWNpcGllbnQgb2YgQWRhcHRlZCBNYXRlcmlhbCBmcm9tIFlvdQogICAgICAgICAgICAgICBhdXRvbWF0aWNhbGx5IHJlY2VpdmVzIGFuIG9mZmVyIGZyb20gdGhlIExpY2Vuc29yIHRvCiAgICAgICAgICAgICAgIGV4ZXJjaXNlIHRoZSBMaWNlbnNlZCBSaWdodHMgaW4gdGhlIEFkYXB0ZWQgTWF0ZXJpYWwKICAgICAgICAgICAgICAgdW5kZXIgdGhlIGNvbmRpdGlvbnMgb2YgdGhlIEFkYXB0ZXIncyBMaWNlbnNlIFlvdSBhcHBseS4KCiAgICAgICAgICAgIGMuIE5vIGRvd25zdHJlYW0gcmVzdHJpY3Rpb25zLiBZb3UgbWF5IG5vdCBvZmZlciBvciBpbXBvc2UKICAgICAgICAgICAgICAgYW55IGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50IHRlcm1zIG9yIGNvbmRpdGlvbnMgb24sIG9yCiAgICAgICAgICAgICAgIGFwcGx5IGFueSBFZmZlY3RpdmUgVGVjaG5vbG9naWNhbCBNZWFzdXJlcyB0bywgdGhlCiAgICAgICAgICAgICAgIExpY2Vuc2VkIE1hdGVyaWFsIGlmIGRvaW5nIHNvIHJlc3RyaWN0cyBleGVyY2lzZSBvZiB0aGUKICAgICAgICAgICAgICAgTGljZW5zZWQgUmlnaHRzIGJ5IGFueSByZWNpcGllbnQgb2YgdGhlIExpY2Vuc2VkCiAgICAgICAgICAgICAgIE1hdGVyaWFsLgoKICAgICAgIDYuIE5vIGVuZG9yc2VtZW50LiBOb3RoaW5nIGluIHRoaXMgUHVibGljIExpY2Vuc2UgY29uc3RpdHV0ZXMgb3IKICAgICAgICAgIG1heSBiZSBjb25zdHJ1ZWQgYXMgcGVybWlzc2lvbiB0byBhc3NlcnQgb3IgaW1wbHkgdGhhdCBZb3UKICAgICAgICAgIGFyZSwgb3IgdGhhdCBZb3VyIHVzZSBvZiB0aGUgTGljZW5zZWQgTWF0ZXJpYWwgaXMsIGNvbm5lY3RlZAogICAgICAgICAgd2l0aCwgb3Igc3BvbnNvcmVkLCBlbmRvcnNlZCwgb3IgZ3JhbnRlZCBvZmZpY2lhbCBzdGF0dXMgYnksCiAgICAgICAgICB0aGUgTGljZW5zb3Igb3Igb3RoZXJzIGRlc2lnbmF0ZWQgdG8gcmVjZWl2ZSBhdHRyaWJ1dGlvbiBhcwogICAgICAgICAgcHJvdmlkZWQgaW4gU2VjdGlvbiAzKGEpKDEpKEEpKGkpLgoKICBiLiBPdGhlciByaWdodHMuCgogICAgICAgMS4gTW9yYWwgcmlnaHRzLCBzdWNoIGFzIHRoZSByaWdodCBvZiBpbnRlZ3JpdHksIGFyZSBub3QKICAgICAgICAgIGxpY2Vuc2VkIHVuZGVyIHRoaXMgUHVibGljIExpY2Vuc2UsIG5vciBhcmUgcHVibGljaXR5LAogICAgICAgICAgcHJpdmFjeSwgYW5kL29yIG90aGVyIHNpbWlsYXIgcGVyc29uYWxpdHkgcmlnaHRzOyBob3dldmVyLCB0bwogICAgICAgICAgdGhlIGV4dGVudCBwb3NzaWJsZSwgdGhlIExpY2Vuc29yIHdhaXZlcyBhbmQvb3IgYWdyZWVzIG5vdCB0bwogICAgICAgICAgYXNzZXJ0IGFueSBzdWNoIHJpZ2h0cyBoZWxkIGJ5IHRoZSBMaWNlbnNvciB0byB0aGUgbGltaXRlZAogICAgICAgICAgZXh0ZW50IG5lY2Vzc2FyeSB0byBhbGxvdyBZb3UgdG8gZXhlcmNpc2UgdGhlIExpY2Vuc2VkCiAgICAgICAgICBSaWdodHMsIGJ1dCBub3Qgb3RoZXJ3aXNlLgoKICAgICAgIDIuIFBhdGVudCBhbmQgdHJhZGVtYXJrIHJpZ2h0cyBhcmUgbm90IGxpY2Vuc2VkIHVuZGVyIHRoaXMKICAgICAgICAgIFB1YmxpYyBMaWNlbnNlLgoKICAgICAgIDMuIFRvIHRoZSBleHRlbnQgcG9zc2libGUsIHRoZSBMaWNlbnNvciB3YWl2ZXMgYW55IHJpZ2h0IHRvCiAgICAgICAgICBjb2xsZWN0IHJveWFsdGllcyBmcm9tIFlvdSBmb3IgdGhlIGV4ZXJjaXNlIG9mIHRoZSBMaWNlbnNlZAogICAgICAgICAgUmlnaHRzLCB3aGV0aGVyIGRpcmVjdGx5IG9yIHRocm91Z2ggYSBjb2xsZWN0aW5nIHNvY2lldHkKICAgICAgICAgIHVuZGVyIGFueSB2b2x1bnRhcnkgb3Igd2FpdmFibGUgc3RhdHV0b3J5IG9yIGNvbXB1bHNvcnkKICAgICAgICAgIGxpY2Vuc2luZyBzY2hlbWUuIEluIGFsbCBvdGhlciBjYXNlcyB0aGUgTGljZW5zb3IgZXhwcmVzc2x5CiAgICAgICAgICByZXNlcnZlcyBhbnkgcmlnaHQgdG8gY29sbGVjdCBzdWNoIHJveWFsdGllcywgaW5jbHVkaW5nIHdoZW4KICAgICAgICAgIHRoZSBMaWNlbnNlZCBNYXRlcmlhbCBpcyB1c2VkIG90aGVyIHRoYW4gZm9yIE5vbkNvbW1lcmNpYWwKICAgICAgICAgIHB1cnBvc2VzLgoKClNlY3Rpb24gMyAtLSBMaWNlbnNlIENvbmRpdGlvbnMuCgpZb3VyIGV4ZXJjaXNlIG9mIHRoZSBMaWNlbnNlZCBSaWdodHMgaXMgZXhwcmVzc2x5IG1hZGUgc3ViamVjdCB0byB0aGUKZm9sbG93aW5nIGNvbmRpdGlvbnMuCgogIGEuIEF0dHJpYnV0aW9uLgoKICAgICAgIDEuIElmIFlvdSBTaGFyZSB0aGUgTGljZW5zZWQgTWF0ZXJpYWwgKGluY2x1ZGluZyBpbiBtb2RpZmllZAogICAgICAgICAgZm9ybSksIFlvdSBtdXN0OgoKICAgICAgICAgICAgYS4gcmV0YWluIHRoZSBmb2xsb3dpbmcgaWYgaXQgaXMgc3VwcGxpZWQgYnkgdGhlIExpY2Vuc29yCiAgICAgICAgICAgICAgIHdpdGggdGhlIExpY2Vuc2VkIE1hdGVyaWFsOgoKICAgICAgICAgICAgICAgICBpLiBpZGVudGlmaWNhdGlvbiBvZiB0aGUgY3JlYXRvcihzKSBvZiB0aGUgTGljZW5zZWQKICAgICAgICAgICAgICAgICAgICBNYXRlcmlhbCBhbmQgYW55IG90aGVycyBkZXNpZ25hdGVkIHRvIHJlY2VpdmUKICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGlvbiwgaW4gYW55IHJlYXNvbmFibGUgbWFubmVyIHJlcXVlc3RlZCBieQogICAgICAgICAgICAgICAgICAgIHRoZSBMaWNlbnNvciAoaW5jbHVkaW5nIGJ5IHBzZXVkb255bSBpZgogICAgICAgICAgICAgICAgICAgIGRlc2lnbmF0ZWQpOwoKICAgICAgICAgICAgICAgIGlpLiBhIGNvcHlyaWdodCBub3RpY2U7CgogICAgICAgICAgICAgICBpaWkuIGEgbm90aWNlIHRoYXQgcmVmZXJzIHRvIHRoaXMgUHVibGljIExpY2Vuc2U7CgogICAgICAgICAgICAgICAgaXYuIGEgbm90aWNlIHRoYXQgcmVmZXJzIHRvIHRoZSBkaXNjbGFpbWVyIG9mCiAgICAgICAgICAgICAgICAgICAgd2FycmFudGllczsKCiAgICAgICAgICAgICAgICAgdi4gYSBVUkkgb3IgaHlwZXJsaW5rIHRvIHRoZSBMaWNlbnNlZCBNYXRlcmlhbCB0byB0aGUKICAgICAgICAgICAgICAgICAgICBleHRlbnQgcmVhc29uYWJseSBwcmFjdGljYWJsZTsKCiAgICAgICAgICAgIGIuIGluZGljYXRlIGlmIFlvdSBtb2RpZmllZCB0aGUgTGljZW5zZWQgTWF0ZXJpYWwgYW5kCiAgICAgICAgICAgICAgIHJldGFpbiBhbiBpbmRpY2F0aW9uIG9mIGFueSBwcmV2aW91cyBtb2RpZmljYXRpb25zOyBhbmQKCiAgICAgICAgICAgIGMuIGluZGljYXRlIHRoZSBMaWNlbnNlZCBNYXRlcmlhbCBpcyBsaWNlbnNlZCB1bmRlciB0aGlzCiAgICAgICAgICAgICAgIFB1YmxpYyBMaWNlbnNlLCBhbmQgaW5jbHVkZSB0aGUgdGV4dCBvZiwgb3IgdGhlIFVSSSBvcgogICAgICAgICAgICAgICBoeXBlcmxpbmsgdG8sIHRoaXMgUHVibGljIExpY2Vuc2UuCgogICAgICAgMi4gWW91IG1heSBzYXRpc2Z5IHRoZSBjb25kaXRpb25zIGluIFNlY3Rpb24gMyhhKSgxKSBpbiBhbnkKICAgICAgICAgIHJlYXNvbmFibGUgbWFubmVyIGJhc2VkIG9uIHRoZSBtZWRpdW0sIG1lYW5zLCBhbmQgY29udGV4dCBpbgogICAgICAgICAgd2hpY2ggWW91IFNoYXJlIHRoZSBMaWNlbnNlZCBNYXRlcmlhbC4gRm9yIGV4YW1wbGUsIGl0IG1heSBiZQogICAgICAgICAgcmVhc29uYWJsZSB0byBzYXRpc2Z5IHRoZSBjb25kaXRpb25zIGJ5IHByb3ZpZGluZyBhIFVSSSBvcgogICAgICAgICAgaHlwZXJsaW5rIHRvIGEgcmVzb3VyY2UgdGhhdCBpbmNsdWRlcyB0aGUgcmVxdWlyZWQKICAgICAgICAgIGluZm9ybWF0aW9uLgogICAgICAgMy4gSWYgcmVxdWVzdGVkIGJ5IHRoZSBMaWNlbnNvciwgWW91IG11c3QgcmVtb3ZlIGFueSBvZiB0aGUKICAgICAgICAgIGluZm9ybWF0aW9uIHJlcXVpcmVkIGJ5IFNlY3Rpb24gMyhhKSgxKShBKSB0byB0aGUgZXh0ZW50CiAgICAgICAgICByZWFzb25hYmx5IHByYWN0aWNhYmxlLgoKICBiLiBTaGFyZUFsaWtlLgoKICAgICBJbiBhZGRpdGlvbiB0byB0aGUgY29uZGl0aW9ucyBpbiBTZWN0aW9uIDMoYSksIGlmIFlvdSBTaGFyZQogICAgIEFkYXB0ZWQgTWF0ZXJpYWwgWW91IHByb2R1Y2UsIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhbHNvIGFwcGx5LgoKICAgICAgIDEuIFRoZSBBZGFwdGVyJ3MgTGljZW5zZSBZb3UgYXBwbHkgbXVzdCBiZSBhIENyZWF0aXZlIENvbW1vbnMKICAgICAgICAgIGxpY2Vuc2Ugd2l0aCB0aGUgc2FtZSBMaWNlbnNlIEVsZW1lbnRzLCB0aGlzIHZlcnNpb24gb3IKICAgICAgICAgIGxhdGVyLCBvciBhIEJZLU5DLVNBIENvbXBhdGlibGUgTGljZW5zZS4KCiAgICAgICAyLiBZb3UgbXVzdCBpbmNsdWRlIHRoZSB0ZXh0IG9mLCBvciB0aGUgVVJJIG9yIGh5cGVybGluayB0bywgdGhlCiAgICAgICAgICBBZGFwdGVyJ3MgTGljZW5zZSBZb3UgYXBwbHkuIFlvdSBtYXkgc2F0aXNmeSB0aGlzIGNvbmRpdGlvbgogICAgICAgICAgaW4gYW55IHJlYXNvbmFibGUgbWFubmVyIGJhc2VkIG9uIHRoZSBtZWRpdW0sIG1lYW5zLCBhbmQKICAgICAgICAgIGNvbnRleHQgaW4gd2hpY2ggWW91IFNoYXJlIEFkYXB0ZWQgTWF0ZXJpYWwuCgogICAgICAgMy4gWW91IG1heSBub3Qgb2ZmZXIgb3IgaW1wb3NlIGFueSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudCB0ZXJtcwogICAgICAgICAgb3IgY29uZGl0aW9ucyBvbiwgb3IgYXBwbHkgYW55IEVmZmVjdGl2ZSBUZWNobm9sb2dpY2FsCiAgICAgICAgICBNZWFzdXJlcyB0bywgQWRhcHRlZCBNYXRlcmlhbCB0aGF0IHJlc3RyaWN0IGV4ZXJjaXNlIG9mIHRoZQogICAgICAgICAgcmlnaHRzIGdyYW50ZWQgdW5kZXIgdGhlIEFkYXB0ZXIncyBMaWNlbnNlIFlvdSBhcHBseS4KCgpTZWN0aW9uIDQgLS0gU3VpIEdlbmVyaXMgRGF0YWJhc2UgUmlnaHRzLgoKV2hlcmUgdGhlIExpY2Vuc2VkIFJpZ2h0cyBpbmNsdWRlIFN1aSBHZW5lcmlzIERhdGFiYXNlIFJpZ2h0cyB0aGF0CmFwcGx5IHRvIFlvdXIgdXNlIG9mIHRoZSBMaWNlbnNlZCBNYXRlcmlhbDoKCiAgYS4gZm9yIHRoZSBhdm9pZGFuY2Ugb2YgZG91YnQsIFNlY3Rpb24gMihhKSgxKSBncmFudHMgWW91IHRoZSByaWdodAogICAgIHRvIGV4dHJhY3QsIHJldXNlLCByZXByb2R1Y2UsIGFuZCBTaGFyZSBhbGwgb3IgYSBzdWJzdGFudGlhbAogICAgIHBvcnRpb24gb2YgdGhlIGNvbnRlbnRzIG9mIHRoZSBkYXRhYmFzZSBmb3IgTm9uQ29tbWVyY2lhbCBwdXJwb3NlcwogICAgIG9ubHk7CgogIGIuIGlmIFlvdSBpbmNsdWRlIGFsbCBvciBhIHN1YnN0YW50aWFsIHBvcnRpb24gb2YgdGhlIGRhdGFiYXNlCiAgICAgY29udGVudHMgaW4gYSBkYXRhYmFzZSBpbiB3aGljaCBZb3UgaGF2ZSBTdWkgR2VuZXJpcyBEYXRhYmFzZQogICAgIFJpZ2h0cywgdGhlbiB0aGUgZGF0YWJhc2UgaW4gd2hpY2ggWW91IGhhdmUgU3VpIEdlbmVyaXMgRGF0YWJhc2UKICAgICBSaWdodHMgKGJ1dCBub3QgaXRzIGluZGl2aWR1YWwgY29udGVudHMpIGlzIEFkYXB0ZWQgTWF0ZXJpYWwsCiAgICAgaW5jbHVkaW5nIGZvciBwdXJwb3NlcyBvZiBTZWN0aW9uIDMoYik7IGFuZAoKICBjLiBZb3UgbXVzdCBjb21wbHkgd2l0aCB0aGUgY29uZGl0aW9ucyBpbiBTZWN0aW9uIDMoYSkgaWYgWW91IFNoYXJlCiAgICAgYWxsIG9yIGEgc3Vic3RhbnRpYWwgcG9ydGlvbiBvZiB0aGUgY29udGVudHMgb2YgdGhlIGRhdGFiYXNlLgoKRm9yIHRoZSBhdm9pZGFuY2Ugb2YgZG91YnQsIHRoaXMgU2VjdGlvbiA0IHN1cHBsZW1lbnRzIGFuZCBkb2VzIG5vdApyZXBsYWNlIFlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcyBQdWJsaWMgTGljZW5zZSB3aGVyZSB0aGUgTGljZW5zZWQKUmlnaHRzIGluY2x1ZGUgb3RoZXIgQ29weXJpZ2h0IGFuZCBTaW1pbGFyIFJpZ2h0cy4KCgpTZWN0aW9uIDUgLS0gRGlzY2xhaW1lciBvZiBXYXJyYW50aWVzIGFuZCBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4KCiAgYS4gVU5MRVNTIE9USEVSV0lTRSBTRVBBUkFURUxZIFVOREVSVEFLRU4gQlkgVEhFIExJQ0VOU09SLCBUTyBUSEUKICAgICBFWFRFTlQgUE9TU0lCTEUsIFRIRSBMSUNFTlNPUiBPRkZFUlMgVEhFIExJQ0VOU0VEIE1BVEVSSUFMIEFTLUlTCiAgICAgQU5EIEFTLUFWQUlMQUJMRSwgQU5EIE1BS0VTIE5PIFJFUFJFU0VOVEFUSU9OUyBPUiBXQVJSQU5USUVTIE9GCiAgICAgQU5ZIEtJTkQgQ09OQ0VSTklORyBUSEUgTElDRU5TRUQgTUFURVJJQUwsIFdIRVRIRVIgRVhQUkVTUywKICAgICBJTVBMSUVELCBTVEFUVVRPUlksIE9SIE9USEVSLiBUSElTIElOQ0xVREVTLCBXSVRIT1VUIExJTUlUQVRJT04sCiAgICAgV0FSUkFOVElFUyBPRiBUSVRMRSwgTUVSQ0hBTlRBQklMSVRZLCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKICAgICBQVVJQT1NFLCBOT04tSU5GUklOR0VNRU5ULCBBQlNFTkNFIE9GIExBVEVOVCBPUiBPVEhFUiBERUZFQ1RTLAogICAgIEFDQ1VSQUNZLCBPUiBUSEUgUFJFU0VOQ0UgT1IgQUJTRU5DRSBPRiBFUlJPUlMsIFdIRVRIRVIgT1IgTk9UCiAgICAgS05PV04gT1IgRElTQ09WRVJBQkxFLiBXSEVSRSBESVNDTEFJTUVSUyBPRiBXQVJSQU5USUVTIEFSRSBOT1QKICAgICBBTExPV0VEIElOIEZVTEwgT1IgSU4gUEFSVCwgVEhJUyBESVNDTEFJTUVSIE1BWSBOT1QgQVBQTFkgVE8gWU9VLgoKICBiLiBUTyBUSEUgRVhURU5UIFBPU1NJQkxFLCBJTiBOTyBFVkVOVCBXSUxMIFRIRSBMSUNFTlNPUiBCRSBMSUFCTEUKICAgICBUTyBZT1UgT04gQU5ZIExFR0FMIFRIRU9SWSAoSU5DTFVESU5HLCBXSVRIT1VUIExJTUlUQVRJT04sCiAgICAgTkVHTElHRU5DRSkgT1IgT1RIRVJXSVNFIEZPUiBBTlkgRElSRUNULCBTUEVDSUFMLCBJTkRJUkVDVCwKICAgICBJTkNJREVOVEFMLCBDT05TRVFVRU5USUFMLCBQVU5JVElWRSwgRVhFTVBMQVJZLCBPUiBPVEhFUiBMT1NTRVMsCiAgICAgQ09TVFMsIEVYUEVOU0VTLCBPUiBEQU1BR0VTIEFSSVNJTkcgT1VUIE9GIFRISVMgUFVCTElDIExJQ0VOU0UgT1IKICAgICBVU0UgT0YgVEhFIExJQ0VOU0VEIE1BVEVSSUFMLCBFVkVOIElGIFRIRSBMSUNFTlNPUiBIQVMgQkVFTgogICAgIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggTE9TU0VTLCBDT1NUUywgRVhQRU5TRVMsIE9SCiAgICAgREFNQUdFUy4gV0hFUkUgQSBMSU1JVEFUSU9OIE9GIExJQUJJTElUWSBJUyBOT1QgQUxMT1dFRCBJTiBGVUxMIE9SCiAgICAgSU4gUEFSVCwgVEhJUyBMSU1JVEFUSU9OIE1BWSBOT1QgQVBQTFkgVE8gWU9VLgoKICBjLiBUaGUgZGlzY2xhaW1lciBvZiB3YXJyYW50aWVzIGFuZCBsaW1pdGF0aW9uIG9mIGxpYWJpbGl0eSBwcm92aWRlZAogICAgIGFib3ZlIHNoYWxsIGJlIGludGVycHJldGVkIGluIGEgbWFubmVyIHRoYXQsIHRvIHRoZSBleHRlbnQKICAgICBwb3NzaWJsZSwgbW9zdCBjbG9zZWx5IGFwcHJveGltYXRlcyBhbiBhYnNvbHV0ZSBkaXNjbGFpbWVyIGFuZAogICAgIHdhaXZlciBvZiBhbGwgbGlhYmlsaXR5LgoKClNlY3Rpb24gNiAtLSBUZXJtIGFuZCBUZXJtaW5hdGlvbi4KCiAgYS4gVGhpcyBQdWJsaWMgTGljZW5zZSBhcHBsaWVzIGZvciB0aGUgdGVybSBvZiB0aGUgQ29weXJpZ2h0IGFuZAogICAgIFNpbWlsYXIgUmlnaHRzIGxpY2Vuc2VkIGhlcmUuIEhvd2V2ZXIsIGlmIFlvdSBmYWlsIHRvIGNvbXBseSB3aXRoCiAgICAgdGhpcyBQdWJsaWMgTGljZW5zZSwgdGhlbiBZb3VyIHJpZ2h0cyB1bmRlciB0aGlzIFB1YmxpYyBMaWNlbnNlCiAgICAgdGVybWluYXRlIGF1dG9tYXRpY2FsbHkuCgogIGIuIFdoZXJlIFlvdXIgcmlnaHQgdG8gdXNlIHRoZSBMaWNlbnNlZCBNYXRlcmlhbCBoYXMgdGVybWluYXRlZCB1bmRlcgogICAgIFNlY3Rpb24gNihhKSwgaXQgcmVpbnN0YXRlczoKCiAgICAgICAxLiBhdXRvbWF0aWNhbGx5IGFzIG9mIHRoZSBkYXRlIHRoZSB2aW9sYXRpb24gaXMgY3VyZWQsIHByb3ZpZGVkCiAgICAgICAgICBpdCBpcyBjdXJlZCB3aXRoaW4gMzAgZGF5cyBvZiBZb3VyIGRpc2NvdmVyeSBvZiB0aGUKICAgICAgICAgIHZpb2xhdGlvbjsgb3IKCiAgICAgICAyLiB1cG9uIGV4cHJlc3MgcmVpbnN0YXRlbWVudCBieSB0aGUgTGljZW5zb3IuCgogICAgIEZvciB0aGUgYXZvaWRhbmNlIG9mIGRvdWJ0LCB0aGlzIFNlY3Rpb24gNihiKSBkb2VzIG5vdCBhZmZlY3QgYW55CiAgICAgcmlnaHQgdGhlIExpY2Vuc29yIG1heSBoYXZlIHRvIHNlZWsgcmVtZWRpZXMgZm9yIFlvdXIgdmlvbGF0aW9ucwogICAgIG9mIHRoaXMgUHVibGljIExpY2Vuc2UuCgogIGMuIEZvciB0aGUgYXZvaWRhbmNlIG9mIGRvdWJ0LCB0aGUgTGljZW5zb3IgbWF5IGFsc28gb2ZmZXIgdGhlCiAgICAgTGljZW5zZWQgTWF0ZXJpYWwgdW5kZXIgc2VwYXJhdGUgdGVybXMgb3IgY29uZGl0aW9ucyBvciBzdG9wCiAgICAgZGlzdHJpYnV0aW5nIHRoZSBMaWNlbnNlZCBNYXRlcmlhbCBhdCBhbnkgdGltZTsgaG93ZXZlciwgZG9pbmcgc28KICAgICB3aWxsIG5vdCB0ZXJtaW5hdGUgdGhpcyBQdWJsaWMgTGljZW5zZS4KCiAgZC4gU2VjdGlvbnMgMSwgNSwgNiwgNywgYW5kIDggc3Vydml2ZSB0ZXJtaW5hdGlvbiBvZiB0aGlzIFB1YmxpYwogICAgIExpY2Vuc2UuCgoKU2VjdGlvbiA3IC0tIE90aGVyIFRlcm1zIGFuZCBDb25kaXRpb25zLgoKICBhLiBUaGUgTGljZW5zb3Igc2hhbGwgbm90IGJlIGJvdW5kIGJ5IGFueSBhZGRpdGlvbmFsIG9yIGRpZmZlcmVudAogICAgIHRlcm1zIG9yIGNvbmRpdGlvbnMgY29tbXVuaWNhdGVkIGJ5IFlvdSB1bmxlc3MgZXhwcmVzc2x5IGFncmVlZC4KCiAgYi4gQW55IGFycmFuZ2VtZW50cywgdW5kZXJzdGFuZGluZ3MsIG9yIGFncmVlbWVudHMgcmVnYXJkaW5nIHRoZQogICAgIExpY2Vuc2VkIE1hdGVyaWFsIG5vdCBzdGF0ZWQgaGVyZWluIGFyZSBzZXBhcmF0ZSBmcm9tIGFuZAogICAgIGluZGVwZW5kZW50IG9mIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGlzIFB1YmxpYyBMaWNlbnNlLgoKClNlY3Rpb24gOCAtLSBJbnRlcnByZXRhdGlvbi4KCiAgYS4gRm9yIHRoZSBhdm9pZGFuY2Ugb2YgZG91YnQsIHRoaXMgUHVibGljIExpY2Vuc2UgZG9lcyBub3QsIGFuZAogICAgIHNoYWxsIG5vdCBiZSBpbnRlcnByZXRlZCB0bywgcmVkdWNlLCBsaW1pdCwgcmVzdHJpY3QsIG9yIGltcG9zZQogICAgIGNvbmRpdGlvbnMgb24gYW55IHVzZSBvZiB0aGUgTGljZW5zZWQgTWF0ZXJpYWwgdGhhdCBjb3VsZCBsYXdmdWxseQogICAgIGJlIG1hZGUgd2l0aG91dCBwZXJtaXNzaW9uIHVuZGVyIHRoaXMgUHVibGljIExpY2Vuc2UuCgogIGIuIFRvIHRoZSBleHRlbnQgcG9zc2libGUsIGlmIGFueSBwcm92aXNpb24gb2YgdGhpcyBQdWJsaWMgTGljZW5zZSBpcwogICAgIGRlZW1lZCB1bmVuZm9yY2VhYmxlLCBpdCBzaGFsbCBiZSBhdXRvbWF0aWNhbGx5IHJlZm9ybWVkIHRvIHRoZQogICAgIG1pbmltdW0gZXh0ZW50IG5lY2Vzc2FyeSB0byBtYWtlIGl0IGVuZm9yY2VhYmxlLiBJZiB0aGUgcHJvdmlzaW9uCiAgICAgY2Fubm90IGJlIHJlZm9ybWVkLCBpdCBzaGFsbCBiZSBzZXZlcmVkIGZyb20gdGhpcyBQdWJsaWMgTGljZW5zZQogICAgIHdpdGhvdXQgYWZmZWN0aW5nIHRoZSBlbmZvcmNlYWJpbGl0eSBvZiB0aGUgcmVtYWluaW5nIHRlcm1zIGFuZAogICAgIGNvbmRpdGlvbnMuCgogIGMuIE5vIHRlcm0gb3IgY29uZGl0aW9uIG9mIHRoaXMgUHVibGljIExpY2Vuc2Ugd2lsbCBiZSB3YWl2ZWQgYW5kIG5vCiAgICAgZmFpbHVyZSB0byBjb21wbHkgY29uc2VudGVkIHRvIHVubGVzcyBleHByZXNzbHkgYWdyZWVkIHRvIGJ5IHRoZQogICAgIExpY2Vuc29yLgoKICBkLiBOb3RoaW5nIGluIHRoaXMgUHVibGljIExpY2Vuc2UgY29uc3RpdHV0ZXMgb3IgbWF5IGJlIGludGVycHJldGVkCiAgICAgYXMgYSBsaW1pdGF0aW9uIHVwb24sIG9yIHdhaXZlciBvZiwgYW55IHByaXZpbGVnZXMgYW5kIGltbXVuaXRpZXMKICAgICB0aGF0IGFwcGx5IHRvIHRoZSBMaWNlbnNvciBvciBZb3UsIGluY2x1ZGluZyBmcm9tIHRoZSBsZWdhbAogICAgIHByb2Nlc3NlcyBvZiBhbnkganVyaXNkaWN0aW9uIG9yIGF1dGhvcml0eS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpDcmVhdGl2ZSBDb21tb25zIGlzIG5vdCBhIHBhcnR5IHRvIGl0cyBwdWJsaWMKbGljZW5zZXMuIE5vdHdpdGhzdGFuZGluZywgQ3JlYXRpdmUgQ29tbW9ucyBtYXkgZWxlY3QgdG8gYXBwbHkgb25lIG9mCml0cyBwdWJsaWMgbGljZW5zZXMgdG8gbWF0ZXJpYWwgaXQgcHVibGlzaGVzIGFuZCBpbiB0aG9zZSBpbnN0YW5jZXMKd2lsbCBiZSBjb25zaWRlcmVkIHRoZSDDouKCrMWTTGljZW5zb3Iuw6LigqzCnSBUaGUgdGV4dCBvZiB0aGUgQ3JlYXRpdmUgQ29tbW9ucwpwdWJsaWMgbGljZW5zZXMgaXMgZGVkaWNhdGVkIHRvIHRoZSBwdWJsaWMgZG9tYWluIHVuZGVyIHRoZSBDQzAgUHVibGljCkRvbWFpbiBEZWRpY2F0aW9uLiBFeGNlcHQgZm9yIHRoZSBsaW1pdGVkIHB1cnBvc2Ugb2YgaW5kaWNhdGluZyB0aGF0Cm1hdGVyaWFsIGlzIHNoYXJlZCB1bmRlciBhIENyZWF0aXZlIENvbW1vbnMgcHVibGljIGxpY2Vuc2Ugb3IgYXMKb3RoZXJ3aXNlIHBlcm1pdHRlZCBieSB0aGUgQ3JlYXRpdmUgQ29tbW9ucyBwb2xpY2llcyBwdWJsaXNoZWQgYXQKY3JlYXRpdmVjb21tb25zLm9yZy9wb2xpY2llcywgQ3JlYXRpdmUgQ29tbW9ucyBkb2VzIG5vdCBhdXRob3JpemUgdGhlCnVzZSBvZiB0aGUgdHJhZGVtYXJrICJDcmVhdGl2ZSBDb21tb25zIiBvciBhbnkgb3RoZXIgdHJhZGVtYXJrIG9yIGxvZ28Kb2YgQ3JlYXRpdmUgQ29tbW9ucyB3aXRob3V0IGl0cyBwcmlvciB3cml0dGVuIGNvbnNlbnQgaW5jbHVkaW5nLAp3aXRob3V0IGxpbWl0YXRpb24sIGluIGNvbm5lY3Rpb24gd2l0aCBhbnkgdW5hdXRob3JpemVkIG1vZGlmaWNhdGlvbnMKdG8gYW55IG9mIGl0cyBwdWJsaWMgbGljZW5zZXMgb3IgYW55IG90aGVyIGFycmFuZ2VtZW50cywKdW5kZXJzdGFuZGluZ3MsIG9yIGFncmVlbWVudHMgY29uY2VybmluZyB1c2Ugb2YgbGljZW5zZWQgbWF0ZXJpYWwuIEZvcgp0aGUgYXZvaWRhbmNlIG9mIGRvdWJ0LCB0aGlzIHBhcmFncmFwaCBkb2VzIG5vdCBmb3JtIHBhcnQgb2YgdGhlCnB1YmxpYyBsaWNlbnNlcy4KCkNyZWF0aXZlIENvbW1vbnMgbWF5IGJlIGNvbnRhY3RlZCBhdCBjcmVhdGl2ZWNvbW1vbnMub3JnLgoK |
| score |
15,228081 |