{"id":121654,"date":"2026-02-25T15:48:36","date_gmt":"2026-02-25T15:48:36","guid":{"rendered":"https:\/\/make.wordpress.org\/core\/?p=121654"},"modified":"2026-02-25T15:48:36","modified_gmt":"2026-02-25T15:48:36","slug":"developer-documentation-restored","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2026\/02\/25\/developer-documentation-restored\/","title":{"rendered":"Developer documentation restored."},"content":{"rendered":"<p class=\"wp-block-paragraph\">For those unaware, prior to this week, the documentation at https:\/\/developer.wordpress.org\/reference hadn\u2019t been updated since WordPress 6.4 \u2014 over two years out of date! Today, thankfully, this post is announcing that the reference documentation is now updated as of WordPress 6.9.1.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">WordPress has seen significant change since the documentation generation process stopped, so if you found that something was missing then it wasn\u2019t just you. Those new interfaces, classes, methods, functions, and <span tabindex='0' class='glossary-item-container'>hooks<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Hooks<\/span> <span class='glossary-item-description'>In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.<\/span><\/span><\/span> should be there now. Further, there was a pre-existing <span tabindex='0' class='glossary-item-container'>bug<span class='glossary-item-hidden-content'><span class='glossary-item-header'>bug<\/span> <span class='glossary-item-description'>A bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.<\/span><\/span><\/span> where source snippets for many symbols were offset; this has been fixed in Monday\u2019s update.<\/p>\n\n\n\n<figure class=\"wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"353\" data-attachment-id=\"121657\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/02\/25\/developer-documentation-restored\/image-89\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-2.png\" data-orig-size=\"2056,708\" data-comments-opened=\"1\" data-image-meta='{\"aperture\":\"0\",\"credit\":\"\",\"camera\":\"\",\"caption\":\"\",\"created_timestamp\":\"0\",\"copyright\":\"\",\"focal_length\":\"0\",\"iso\":\"0\",\"shutter_speed\":\"0\",\"title\":\"\",\"orientation\":\"0\"}' data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-300x103-1.png\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-1024x353-1.png\" data-id=\"121657\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-1024x353-1.png\" alt=\"The stale source block started and ended in the middle of a DocBlock comment, showing nothing of the associated function.\" class=\"wp-image-121657\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-1024x353-1.png 1024w, https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-300x103-1.png 300w, https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-767x264-1.png 767w, https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-1536x529-1.png 1536w, https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-2048x705-1.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/a><figcaption class=\"wp-element-caption\">Source <span tabindex='0' class='glossary-item-container'>block<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Block<\/span> <span class='glossary-item-description'>Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience.<\/span><\/span><\/span> for <code>wp_interactivity()<\/code> over the past two years.<\/figcaption><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"379\" data-attachment-id=\"121658\" data-permalink=\"https:\/\/make.wordpress.org\/core\/2026\/02\/25\/developer-documentation-restored\/image-90\/#main\" data-orig-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-3.png\" data-orig-size=\"1862,690\" data-comments-opened=\"1\" data-image-meta='{\"aperture\":\"0\",\"credit\":\"\",\"camera\":\"\",\"caption\":\"\",\"created_timestamp\":\"0\",\"copyright\":\"\",\"focal_length\":\"0\",\"iso\":\"0\",\"shutter_speed\":\"0\",\"title\":\"\",\"orientation\":\"0\"}' data-image-title=\"image\" data-image-description=\"\" data-image-caption=\"\" data-medium-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-300x111-1.png\" data-large-file=\"https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-1024x379-1.png\" data-id=\"121658\" src=\"https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-1024x379-1.png\" alt=\"In the updates the source block starts and ends with the symbol definition as expected.\" class=\"wp-image-121658\" srcset=\"https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-1024x379-1.png 1024w, https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-300x111-1.png 300w, https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-766x284-1.png 766w, https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-1536x569-1.png 1536w, https:\/\/make.wordpress.org\/core\/files\/2026\/02\/image-3.png 1862w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\"><\/a><figcaption class=\"wp-element-caption\">Source block for <code>wp_interactivity()<\/code> after the update.<\/figcaption><\/figure>\n<\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">This work was the result of collaboration between many people, most of whom have never worked with this process in the past. <a href=\"https:\/\/profiles.wordpress.org\/dd32\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>dd32<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/dmsnell\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>dmsnell<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/johnbillion\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>johnbillion<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/jonsurrell\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jonsurrell<\/a>, and <a href=\"https:\/\/profiles.wordpress.org\/tmdk\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>tmdk<\/a> all worked on various approaches to restoring the ability to parse WordPress\u2019 source code; and <a href=\"https:\/\/profiles.wordpress.org\/dd32\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>dd32<\/a> and <a href=\"https:\/\/profiles.wordpress.org\/coffee2code\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>coffee2code<\/a> made sure that the updates reached the public website; and of course, numerous people in the <a href=\"https:\/\/make.wordpress.org\/core\/tag\/docs\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>docs<\/a> team reported and triaged bug reports that were symptoms of this process breakdown.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There is still significant work to do, as there is no way (at the time of writing this note) to generate the documentation for the upcoming WordPress 7.0 release, but as the new issues are ironed out, you can expect the updates to come much sooner than 2028 \ud83d\ude09<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There still remain a number of known issues, particularly related to PHPStan type annotations. Work is ongoing to improve the overall build process and try to reduce the feedback <span tabindex='0' class='glossary-item-container'>loop<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Loop<\/span> <span class='glossary-item-description'>The Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. <a href=\"https:\/\/codex.wordpress.org\/The_Loop\">https:\/\/codex.wordpress.org\/The_Loop<\/a><\/span><\/span><\/span> between making code changes and seeing those reflected in the documentation online.<\/p>\n\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Timeline<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>August 1, 2023 \u2014 <a href=\"https:\/\/core.trac.wordpress.org\/changeset\/56345\">[56345]<\/a> introduces a code-styling change to replace <code>array_key_exists()<\/code> with <code>isset()<\/code> while indexing a class constant. This was known to be <a href=\"https:\/\/github.com\/WordPress\/phpdoc-parser\/issues\/199\">unsupported by the docs parser<\/a> but there was no indication that the updating process was broken. Because of a parsing error the process was blocked; the documentation generator needed to update its underlying dependency on <code>nikic\/php-parser<\/code> so that it could understand the new syntax in the underlying source code.<\/li>\n\n\n\n<li>April 15, 2024 \u2014 <a href=\"https:\/\/core.trac.wordpress.org\/changeset\/58009\">[58009]<\/a> introduces type annotations for optional types, <code>?array<\/code> instead of <code>array<\/code>, which the updated parser could parse, but which <code>phpDocumentor\/Reflection<\/code> did not recognize. The <code>Reflection<\/code> library extracts useful information from the parsed form of the source code, but had no code path for nullable types. Once the new syntax appeared in the source code, it <a href=\"https:\/\/github.com\/WordPress\/phpdoc-parser\/issues\/228\">needed to be updated <\/a>to add the missing handling.<\/li>\n\n\n\n<li>June 3, 2024 \u2014 <a href=\"https:\/\/core.trac.wordpress.org\/changeset\/58304\">[58304]<\/a> introduces a shorthand syntax for calling a <code>Callable<\/code> stored in a variable. This <em>should<\/em> be supported by the <span tabindex='0' class='glossary-item-container'>PHP<span class='glossary-item-hidden-content'><span class='glossary-item-header'>PHP<\/span> <span class='glossary-item-description'>The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher<\/span><\/span><\/span> parser and <code>Reflection<\/code>, but it isn\u2019t. It would need an update at least to the <code>Reflection<\/code> library to handle. Given that it is an odd construct with a semantically-equivalent counterpart, it was modified in <a href=\"https:\/\/core.trac.wordpress.org\/changeset\/61624\">[61624]<\/a> to prevent it from becoming an immediate issue going forward.<\/li>\n\n\n\n<li>August 27, 2025 \u2014 <a href=\"https:\/\/core.trac.wordpress.org\/changeset\/60684\">[60684]<\/a> introduces anonymous classes, which leads to a crash when <code>Reflection<\/code> tries to extract its name. There is no name, so it must make one up: <code>class@anonymous<\/code>.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">There have only been four kinds of new syntax that broke the documentation generation since WordPress 6.4, but the code in WordPress 7.0 introduces several new syntax forms which need updating before the documentation can be regenerated:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>The AI client introduces visibility on class constants and nullable types for class properties.<\/li>\n\n\n\n<li>The collaboration feature\u00a0introduce array initialization of class properties.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Work has already been explored for making another incremental step to update the underlying PHP parser, and this should hopefully resolve these new breakages.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The underlying PHP parser is somewhat comprehensive, but the adapter layer is more <em>as-needed<\/em>. When syntax forms aren\u2019t present in the WordPress codebase there\u2019s no need for them to exist in the documentation generator. Typically, when these new forms appear it shouldn\u2019t take too much effort to update the adapter to add support for them. It <em>can<\/em> be harder though when updating PHP versions introduces new deprecations and when dependency updates involve backwards-incompatible changes. For example, updating to the next version of the <code>phpDocumentor\/Reflections<\/code> library would require an almost complete rewrite of the adapter layer.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>July 13, 2025 \u2014 Work starts in <a href=\"https:\/\/github.com\/WordPress\/phpdoc-parser\/pull\/247\">PR#247<\/a> to rewrite the documentation generation with a new parser, a new adapter, and a new runner. This work incorporates PHPStan so that the more advanced types appear in the documentation.<\/li>\n\n\n\n<li>September 28, 2025 \u2014 An attempt is made in <a href=\"https:\/\/github.com\/WordPress\/phpdoc-parser\/pull\/248\">PR#248<\/a> to <span tabindex='0' class='glossary-item-container'>filter<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Filter<\/span> <span class='glossary-item-description'>Filters are one of the two types of Hooks <a href=\"https:\/\/codex.wordpress.org\/Plugin_API\/Hooks\">https:\/\/codex.wordpress.org\/Plugin_API\/Hooks<\/a>. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output.<\/span><\/span><\/span> out unsupported syntax using PCRE patterns.<\/li>\n\n\n\n<li>February 11, 2026 \u2014 Minimal updates are proposed in <a href=\"https:\/\/github.com\/WordPress\/phpdoc-parser\/pull\/250\">PR#250<\/a> (and in <a href=\"https:\/\/github.com\/WordPress\/phpdoc-parser\/pull\/249\">PR#249<\/a> and <a href=\"https:\/\/github.com\/WordPress\/phpdoc-parser\/pull\/251\">PR#251<\/a>) to update the underlying <code>nikic\/php-parser<\/code> dependency and liberate the process. The <code>Reflection<\/code> library is forked from its older version to adopt only those changes necessary to upgrade far enough to support <span tabindex='0' class='glossary-item-container'>Core<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Core<\/span> <span class='glossary-item-description'>Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span>\u2019s code (in <a href=\"https:\/\/github.com\/phpDocumentor\/Reflection\/pull\/721\">PR#721<\/a>).<\/li>\n\n\n\n<li>February 17\u201319, 2026 \u2014 The <span tabindex='0' class='glossary-item-container'>JSON<span class='glossary-item-hidden-content'><span class='glossary-item-header'>JSON<\/span> <span class='glossary-item-description'>JSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.<\/span><\/span><\/span> blob which represents the content of the documentation is generated from <code>6.9.1<\/code> and differences from the latest-working version are ironed out.<\/li>\n\n\n\n<li>February 23, 2026 \u2014 https:\/\/developer.wordpress.org\/reference is updated with documentation for WordPress as of <code>6.9.1<\/code>.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Future direction<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">What comes next is making sure that WordPress 7.0 can ship with updated reference documentation. That\u2019s essential.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After that, work will continue on supporting PHPStan type annotations and on being able to generate documentation previews. The existing process is tightly coupled to the production system which hosts the documentation. It needs to be isolated into a Playground blueprint, at which point a preview can be generated on every PR and developers will be able to see the impact of changes before the WordPress release, and hopefully notice and fix any issues that arise before they are published publicly.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The process for generating and <span tabindex='0' class='glossary-item-container'>deploying<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Deploy<\/span> <span class='glossary-item-description'>Launching code from a local development environment to the production web server, so that it's available to visitors.<\/span><\/span><\/span> documentation updates is in dire need of its own documentation. A challenge in this current crisis has been knowing where to run updates and what updates to run. It\u2019s one thing to parse the source code and produce the raw content, but another thing to have access to and awareness of the public servers.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A contributing factor to this breakdown was a failure to notify developers when source code changes broke the documentation generation process. A new CI job to run the parser could highlight these issues and raise awareness before problems escalate or cascade. That hopefully will not involve too much work, but needs to be undertaken by someone willing to push through the changes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finally, there is a backlog of feature requests for the documentation: new alerts, supporting pass-by-reference parameters, improving recognition of rarer code patterns, etc\u2026 Once the process is running smoothly and developers are able to recreate the system locally, the normal develop cycle should resume.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Props<\/h2>\n\n\n\n<p class=\"has-text-align-right wp-block-paragraph\">Thanks to <a href=\"https:\/\/profiles.wordpress.org\/jonsurrell\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jonsurrell<\/a> for reviewing this post prior to publishing.<\/p>\n<p class=\"o2-appended-tags\"><a href=\"https:\/\/make.wordpress.org\/core\/tag\/developer-documentation\/\" class=\"tag\"><span class=\"tag-prefix\">#<\/span>developer-documentation<\/a><\/p><nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F02%2F25%2Fdeveloper-documentation-restored%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>For those unaware, prior to this week, the documentation at https:\/\/developer.wordpress.org\/reference hadn\u2019t been updated since WordPress 6.4 \u2014 over two years out of date! Today, thankfully, this post is announcing that the reference documentation is now updated as of WordPress 6.9.1. WordPress has seen significant change since the documentation generation process stopped, so if you [&hellip;]<\/p>\n","protected":false},"author":13597958,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"{\"document\":\"AAD6BvyAlpMfhQuq8eCPFabiyoEN\/ICWkx8DpuLKgQ38gJaTHxHm4sqBDU28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx+m4sqBDbyAlpMfpuLKgQ38gJaTHwGm4sqBDfyAlpMfBebiyoENLbyAlpMfpuLKgQ28gJaTH6biyoENvICWkx\/m4sqBDS+8gJaTH+biyoENAPyAlpMfAObiyoENmQS8gJaTH6biyoENvICWkx\/m4sqBDZMH4xkaAQtUNoQBAQEIAEgKsgECPCqWAQQABCwEDgaWAboBiAEKAgYOAlgIOOgLrAsBAQgASAoYALwEOgkAmAEMFgAEigEehgEWmAEO+AaABzocpgGEAhYMjAEGJKYB1hagGAEBCABIAgQCAQAMTAEDGARkEAJKAQYGmAEBAQgBBEgAGgEBCAEESFIAGgDAAqwBigIiAiRmJgIkABr4A4IFAiRmJgIqAOYutlIyng0y\/mECrFOQDshhtmYEAgQC\/D+mRMxEiEnUS5hLAQEIAEgKggKcAboBpgIEMAQCBgIQCiIKAhACBgQCrAE0kgGYAtgCmgL8EI4RAQEIAEhCGLABAwAADCokNhDgBKIFBJYBgAHAAYABBhgEAwAESAqoAQQMBCYaAAYMAALCDKYMAQEIAEgKTJABLgDyBbQFqgEA1gOWAwZGCkoOThJSFlYaWh5eImImZipqLm4ycjZ2AQA6eoIBwgGGAcYBigHKAY4BzgGSAdIBAQCWAdYBngHeAaIB4gGmAeYBAQCqAeoBsgHyAbYB9gG6AfoBvgH+AYICwgKGAsYCigLKAgEAjgLOApYC1gKaAtoCngLeAqIC4gKmAuYCAQCqAuoCsgLyArYC9gK6AvoCvgL+AoIDwgOGA8YDigPKA44DzgOSA9IDlgPWA5oD2gMBAJ4D3gOmA+YDqgPqA64D7gOyA\/IDtgP2A7oD+gO+A\/4DggTCBIYExgSKBMoEjgTOBJIE0gSWBNYEmgTaBJ4E3gSiBOIEpgTmBKoE6gSuBO4EsgTyBLYE9gS6BPoEvgT+BIIFwgWGBcYFAQCKBcoFkgXSBZYF1gWaBdoFngXeBaIF4gWmBeYFqgXqBa4F7gWyBfIFtgX2BboF+gW+Bf4FAQGCBsIGjAbMBpAG0AaUBtQGmAbYBpwG3AagBuAGggbCBqgG6AasBuwGsAbwBrQG9Aa4BvgGvAb8BoAHwAeEB8QHAKQG5AaOB84HkgfSB5YH1geaB9oHngfeB6IH4gemB+YHqgfqB64H7geyB\/IHAQC2B\/YHvgf+B4IIwgiGCMYIigjKCI4IzgiSCNIIlgjWCJoI2gieCN4IogjiCKYI5giqCOoIrgjuCLII8gi2CPYIugj6CL4I\/giCCcIJhgnGCQECignKCZYJ1gmaCdoJngneCQEAogniCaoJ6gmuCe4JsgnyCbYJ9gm6CfoJvgn+CYIKwgqGCsYKigrKCo4KzgqSCtIKlgrWCpoK2gqeCt4KogriCqYK5gqqCuoKrgruCgEAsgryCroK+goBAL4K\/gqGC8YLigvKC44LzguSC9ILlgvWC5oL2gueC94LogviC6YL5guqC+oLrgvuCwEBsgvyC7wL\/AuADMAMhAzEDAEAiAzIDJAM0AyUDNQMmAzYDJwM3AygDOAMpAzkDKgM6AysDOwMsAzwDAC0DPQMAQC6DPoMgg3CDYYNxg2KDcoNjg3ODZIN0g2WDdYNmg3aDZ4N3g2iDeINpg3mDaoN6g2uDe4Nsg3yDbYN9g26DfoNAQC+Df4Nhg7GDooOyg6ODs4Okg7SDpYO1g6aDtoOng7eDqIO4g6mDuYOqg7qDq4O7g6yDvIOtg72DroO+g6+Dv4Ogg\/CD4YPxg+KD8oPjg\/OD5IP0g+WD9YPmg\/aD54P3g+iD+IPpg\/mD6oP6g+uD+4Psg\/yD7YP9g+6D\/oPAQC+D\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\/gaGCAEBCEgKEAKAAwQSAgpMDALCDQSgG\/QaAwCwGuwaAogIshIBAQhI4toBVIbbAQEBCABICkgEAgxUPAEBCABICqYLAA4IkAIElAHuD7IPAQEIAEgKBgJCFBgIigICggEKLAS8AQY8DogCBJQBAoACBBAADtwOqA8BAQgASEKSAQMBzCKuO+o7AwCmO+I7AoARsCoBAQgASAoangIINAqAAQQOAhoKqASGAR4UEhDCDaINAQEIAEgKPh4IFCKqAgKEAwi4AQMAAAyEAQjwC4QOAQEIAEgKEgK0AgIoBgUABgIcBAIECAIQBAAICgK+AQaWAQYOAgoCEBwCEA7OAZoBAgpY6CasTOhMAwCkTOBMAp5MBAMASAwC2PoFnvsFDIwCCggCCgTmpgcCBgQGMAIGEAQmCgIGAgYCDgcAAwAEDAaEnwcSAwBWGgL+9gUDAIgCnPsFAwAIRp0GgAeqBQgAngGACMoCqBYnAKQBJiyCJZAO0A6QDso7kFnQWYZevASAASKGAxL8Z55q8gWeBwIFDAMABQQDAAUCAwAFBgMABQQDAAUKAwAFGAMABQsDAQUEVhpaHl4iYiZmKmoubjJyNnY6BAIFCQMABRIDAgUCAwAFEQMABQADAAUKAwEFAgMABQgCBAMABQ4DAAUdAwAFCwMABQUDAAUlAwAFDgMABQQDAAUIzIIBkIIByFaQDopI7nYGuAKKDJICjgHQFgFIvCMyng0yvAUCph6gBIQEgAEg6JABsgOuAr4jAQugwQEChEgAnAwApgUAlAWSBQCWBQCoBQCUBbAK3gWeBewuAII2AKADAQCMBTLaAgCGByDiA4gEALwDAJwEAKwDALgDAL4DAKgDALoDAIIEAIIFALIDALoDAKgDAIIEpAMAlgQArAMAugMAvAMAsAMBAKwFKq4DAA6uAQCkAxLSAQCiAgCABd4BAKwCAKwCAESEAwEAlAUW4AIAogQApgOCAwCEBhjyAgC4AwC6AwCiAwCwAwC0AwCWB8gDAIAEAKoDAJ4DAIwHDOoCALoEAIoEAQCcBr4BAkLu1AI6mAkKAjQmAQLkgQGQDojpA5QBABCeAQCiAQC+AQCEAgEAtAMW4AEAhAYa2AMAmgUAlgMBAZwEBByUC6AFAQBGsgamBAECmAECCtwBAIAFAJwCAIoCALwCAJICAIgCAIYCAJ4DAI4CAJQCAKoGAAIKLgEAkAQi0AFGAJoFAKYCAKYCAI4FFuoBAIQDAIoDAIoDAIQDAIADALwCAIYDAIQDAJIEALoCAL4CALoCziwBA4wyAgxQFIQCxAKMAgDMApoCTAJE7kKsRgACMAC8AQCYAgCuAgDSpwEmAQLS9wOQDp7fBagDKgwA6AMAgAQAgAE+lAUMwA0EAMbtBZAOlvoFjA2SBL4N1B8A7ogGkA6Etgb6GgCEM8QzhjyOBAEBjgHgJgDcxAaQDrCCBwjIkQeQDr6CB9j6BQEGzqgBAgYEBjACBhAEJgoCBgIGAg4HAAMABAwGmp8H1pEHkA6miQfpFigAIQEnAigGJwAoDSEAKAAnAAQABwAhACgBJwEoACcABACBAIQAgQCEAIEBwQCEAIEAhACBAIQAgQCEAIEBhAGBAIQAxADBAMQAhwAhACgBJwEoACcAAQCBAMEAgQCEAIEAhACBAIQBxACEAIEAhACBAIQAgQCEAMEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIcAIQAoACEAJwAhAScAoQEhAScAoQAhBaEAqACBAAAAoQCoACgIBwAhACgBJwAoACEAJwAoAycAhwAhACgBJwAoACEAJwAoAycAIQMoAAEAhACBAIQAgQDEAYQAgQDEAIQABACBAIQAgQDEAYQBxAAEAIQDoQCoAMEBqAAhAagAxAGhAqgAoQCoAMcAIQAoAScBKAAnAAQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhACBAIQAgQCEAIEAhAGBAMQAgQDHACEAKAEnASgAJwCBAIQAgQCEAcQAhACBAIQAgQCEAAQAgQCEAsQBhACBAYQAgQCEAMEAhACBAIQAgQCEAIEBwQCBAcEAgQDHACEAKAEnASgAJwAEAIEAhACBAMEAxACEAIEAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAoQAwQCEAMEAhADBAIQAwQCEAMEAhADBAoQAwQCEAMEAhADBAIQAwQKEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAoQAwQCEAMEAhADBAIQAwQCEAMEAhADBAoQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAoQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAgQDBAIEAwQCBAMEAgQDBAIEAwQCBAMEAgQDBAIEAwQCBAMECgQDBAIEAwQCBAMEAgQDBAIEAwQCBAMEAgQDBAIEAwQCBAMEAgQDBAIEAwQCBAMEAgQDBA4QAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwROEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAoQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCBAMEAgQDBAIEAwQCBAMEEhADBAIQAwQCEAMEAhADBAoQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCBAMEAgQDBAIEAwQCBAMEAgQDBAIEAwQCBAMEAgQDBAIEAwQCBAMEAgQDBAIEAwQKBAMEAgQDBAoEAwQCBAMEAgQDBAIEAwQCBAMEAgQDBAIEAwQCBAMEAgQDBAIEAwQCBAMEAgQDBA4QAwQCEAMEAhADBAIQAwQKEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCBAMEBhADBAoQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQKEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEChADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAoQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQKEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQKEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEChADBAIQAwQCEAMEAhADBAIQAwQCEAMEChADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQCEAMEAhADBAIQAwQEAAMEAIQHEAYQBqAAoAKgAKACoACgAqAAoAKgAKACoACgAqAAoAMQAqAAoAKgApwAHACgBJwEoACcABACEAcQBhwAoAScBKAAnAAQAhADEAIQAhwAoACcCKAoHACgBJwAoACcAKAMnAIcAKAEnACgAJwAoAycAKAAEAIQAxACEAAQAhADEAIQBxABEAMRPKAGHACgBJwEoACcABACEAMQAhwAoAScBKAAnAIQBxACEAAQAhAHEAYQBhwAoAScBKAAnAAQAhADEAIQBxAIoDYQAKAGoAMQOqADEAKEBpwAHACgDJwEEACgAJwCHACgDJwEEAIQDKAAnAIcAKAMnACgDJwAoBicABwAoAycAKAEnAAQAKAMnAIcAKAMnACgBJwAEACgDJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwEEACgAJwCHACgDJwAoAScAhwAoAycBBAAoACcAhwAoAycAKAEnAAcAKAMnAQQAhAAnAIcAKAMnAQQAhAAnAIQAxAGEAMQBhADEBIQAxAGEAMQChAHEAoQAxAGEAMQBhADEAoQBxAGEAMQBhALEAYQAxAKEAMQBhADEAYQAxAGEAMQBhADEAYQAxAGEAMQBhADEAYQAxAGEAMQBhADEA4QAxAKEAMQBhADEAYQAxAGEAMQBhADEAoQCxAGHACgCJwIEAIQBxAKEAMQBhALEAYQAxAGEAMQBhAHEAIQAxAaEAMQChAHEAYQAxAGEAMQBhADEAoQBxAGEAMQBhADEAYQAxAGEAMQBhADEAYQAxAGEAcQAhADEAYQAxAGEAMQDhALEAYQAxAGEAMQBhADEAoQCxA6oAMQCoQGHACgCJwIEAIQCxAKEAMQBhADEA4QAxAKEAcQBhADEAYQCxAGEAMQBhADEAYQAxAOEAcQChACHACgCJwKoAIcAKAInASgAJwAEAIQRxACEAIcAKAInASgAJwAEAKgBKAEHACgCJwIEAIQFxAKEAcQAhwAoAicCBACEA4cAKAInAqgAhwAoAicBKAAnAAQAhADEAIQChwAoAicBKAAnAAQAqAEoAQcAKAInAgQAhAHEB4QAxAGEAMQBhADEAYQAxAGEAMQBhADEAYQAxAOEAMQBhADEAYQAxAGEAIcAKAInAgQAhALEA4QAxAKEAsQBhADEAIQAxAOEAMQBhADEAYQCxAGEAMQBhADEAYQAxAGEAMQBhADEAYQAxAGEAMQBhADEAYQAxAGEAMQDhADEAoQAxBPHACgCJwIEAIQBxAKEAMQBhADEAYQAxAGEAMQBhAHEBagAxAKhAYcAKAInAgQAhAXEAIQDxASEAMQBhADEAIQBxACEAIcAKAInAgQAhAbEAYQAxAKoAMQCoQGHACgCJwKoAIcAKAInASgAJwAEAKgBKACEAIcAKAInASgAJwAEAIQAxACEBIcAKAInASgAJwAEAIQBxACEE8QAhACHACgCJwEoACcAhATEAagAxAKhAccAKAInASgAJwAEAIQQxwAoAicBKAAnAAQAhAvEAIQCxwAoAicBKAAnAAQAhBHEAIQPxAaoAMQCoQHEAKgAxAKhAcQiqADEAqgDpwCoAqcABACopcoCjb4Cc3RhdGV2ZXJzaW9uZG9jdW1lbnRkYXRlZG9jdW1lbnRzdGF0dXNkb2N1bWVudHRpdGxlZG9jdW1lbnRjb250ZW50ZG9jdW1lbnRleGNlcnB0ZG9jdW1lbnRhdXRob3Jkb2N1bWVudGZlYXR1cmVkX21lZGlhZG9jdW1lbnRjb21tZW50X3N0YXR1c2RvY3VtZW50cGluZ19zdGF0dXNkb2N1bWVudHN0aWNreWRvY3VtZW50dGVtcGxhdGVkb2N1bWVudGZvcm1hdGRvY3VtZW50bWV0YWFkdmFuY2VkX3Nlb19kZXNjcmlwdGlvbmpldHBhY2tfc2VvX2h0bWxfdGl0bGVqZXRwYWNrX3Nlb19ub2luZGV4amV0cGFja19wb3N0X3dhc19ldmVyX3B1Ymxpc2hlZF9qZXRwYWNrX25ld3NsZXR0ZXJfYWNjZXNzX2pldHBhY2tfZG9udF9lbWFpbF9wb3N0X3RvX3N1YnNfamV0cGFja19uZXdzbGV0dGVyX3RpZXJfaWRfamV0cGFja19tZW1iZXJzaGlwc19jb250YWluc19wYXl3YWxsZWRfY29udGVudF9qZXRwYWNrX21lbWJlcnNoaXBzX2NvbnRhaW5zX3BhaWRfY29udGVudGZvb3Rub3Rlc2pldHBhY2tfcHVibGljaXplX21lc3NhZ2VqZXRwYWNrX3B1YmxpY2l6ZV9mZWF0dXJlX2VuYWJsZWRqZXRwYWNrX3NvY2lhbF9wb3N0X2FscmVhZHlfc2hhcmVkamV0cGFja19zb2NpYWxfb3B0aW9uc2RvY3VtZW50Y2F0ZWdvcmllc2RvY3VtZW50dGFnc2RvY3VtZW50YmxvY2tzRGV2ZWxvcGVyIGRvY3VtZW50YXRpb24gcmVzdG9yZWQuY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzRm9yIHRob3NlIHVuYXdhcmUsIHRoZSBkb2N1bWVudGF0aW9uIGF0IGh0dHBzOi8vZGV2ZWxvcGVyLndvcmRwcmVzcy5vcmcvcmVmZXJlbmNlIGhhc27igJl0IGJlZW4gdXBkYXRlZCBzaW5jZSBXb3JkUHJlc3MgNi40IOKAlCB0aGF04oCZcyBvdmVyIHR3byB5ZWFycyBhZ28hIFRvZGF5LCB0aGFua2Z1bGx5LCB0aGlzIHBvc3QgaXMgYW5ub3VuY2luZyB0aGF0IHRoZSByZWZlcmVuY2UgZG9jdW1lbnRhdGlvbiBpcyBub3cgdWF0ZSBhcyBvZiBXb3JkUHJlc3MgNi45LjEucGRkY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzV29yZFByZXNzIGhhcyBzZWVuIHNpZ25pZmljYW50IGNoYW5nZSBzaW5jZSB0aGUgZG9jdW1lbnRhdGluIG9nZW5lcmF0aW9uIHByb2Nlc3Mgc3RvcHBlZCB3b3JraW5nLCBzbyBpZiB5b3UgZm91bmQgdGhhdCBzb21ldGhpbmcgd2FzIG1pc3NpbmcgdGhlbiBpdCB3YXNu4oCZdCBqdXN0IHlvdS4gVGhvc2UgbmV3IGludGVyZmFjZXMsIGNsYXNzZXMsIG1ldGhvZHMsIGZ1bmN0aW9ucywgYW5kIGhvb2tzIHNob3VsZCBiZSB0aGVyZSBub3cuIEZ1cnRoZXIsIGJlZm9yZSB0aGUgcHJvY2VzcyBzdG9wcGVkIGVudGlyZWx5LCBzb21ldGhpbmcgaGFkIGJlZW4gbGVhZGluZyB0byBjb2RlIGJsb2NrcyBzaG93aW5nIHRoZSB3cm9uZyBzb3VyY2UgZm9yIGVhY2ggaXRlbSBpbiB0aGUgcmVmZXJlbmNlLmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc2Jsb2JhbHRjYXB0aW9uaWRsaW5rdXJsaHJlZnNpemVTbHVnbGlua0Rlc3RpbmF0aW9uaW1hZ2VzaWRzbmF2aWdhdGlvbkJ1dHRvblR5cGVzaG9ydENvZGVUcmFuc2Zvcm1zaW1hZ2VDcm9wcmFuZG9tT3JkZXJmaXhlZEhlaWdodGFsbG93UmVzaXplYXNwZWN0UmF0aW9jbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc3VybGFsdGNhcHRpb25ocmVmaWRzaXplU2x1Z2xpbmtEZXN0aW5hdGlvbmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXN1cmxhbHRjYXB0aW9uaHJlZmlkc2l6ZVNsdWdsaW5rRGVzdGluYXRpb25pbm5lckJsb2Nrc2xpbmtmdWxsVXJsbGlua2Z1bGxVcmxsaW5rVG9Tb3VyY2UgYmxvY2sgZm9yIHdwX2ludGVyYWN0aXZpdHkoKTxjb2RlPjwvY29kZT4gb3ZlciB0aGUgcGFzdCB0d28geWVhcnMuU291cmNlIGJsb2NrIGZvciB3cF9pbnRlcmFjdGl2aXR5KCk8Y29kZT48L2NvZGU+IGFmdGVyIHRlIHVwZGF0ZS5oPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkZvciB0aG9zZSB1bmF3YXJlLCB0aGUgZG9jdW1lbnRhdGlvbiBhdCBodHRwczovL2RldmVsb3Blci53b3JkcHJlc3Mub3JnL3JlZmVyZW5jZSBoYXNu4oCZdCBiZWVuIHVwZGF0ZWQgc2luY2UgV29yZFByZXNzIDYuNCDigJQgdGhhdOKAmXMgb3ZlciB0d28geWVhcnMgYWdvISBUb2RheSwgdGhhbmtmdWxseSwgdGhpcyBwb3N0IGlzIGFubm91bmNpbmcgdGhhdCB0aGUgcmVmZXJlbmNlIGRvY3VtZW50YXRpb24gaXMgbm93IHVwZGF0ZWQgYXMgb2YgV29yZFByZXNzIDYuOS4xLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPldvcmRQcmVzcyBoYXMgc2VlbiBzaWduaWZpY2FudCBjaGFuZ2Ugc2luY2UgdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiBwcm9jZXNzIHN0b3BwZWQgd29ya2luZywgc28gaWYgeW91IGZvdW5kIHRoYXQgc29tZXRoaW5nIHdhcyBtaXNzaW5nIHRoZW4gaXQgd2FzbuKAmXQganVzdCB5b3UuIFRob3NlIG5ldyBpbnRlcmZhY2VzLCBjbGFzc2VzLCBtZXRob2RzLCBmdW5jdGlvbnMsIGFuZCBob29rcyBzaG91bGQgYmUgdGhlcmUgbm93LiBGdXJ0aGVyLCBiZWZvcmUgdGhlIHByb2Nlc3Mgc3RvcHBlZCBlbnRpcmVseSwgc29tZXRoaW5nIGhhZCBiZWVuIGxlYWRpbmcgdG8gY29kZSBibG9ja3Mgc2hvd2luZyB0aGUgd3Jvbmcgc291cmNlIGZvciBlYWNoIGl0ZW0gaW4gdGhlIHJlZmVyZW5jZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6Z2FsbGVyeSB7ImxpbmtUbyI6ImZpbGUifSAtLT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2stZ2FsbGVyeSBoYXMtbmVzdGVkLWltYWdlcyBjb2x1bW5zLWRlZmF1bHQgaXMtY3JvcHBlZCI+PCEtLSB3cDppbWFnZSB7ImlkIjoxMjE2NTcsInNpemVTbHVnIjoibGFyZ2UiLCJsaW5rRGVzdGluYXRpb24iOiJtZWRpYSJ9IC0tPgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWxhcmdlIj48YSBocmVmPSJodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9jb3JlL2ZpbGVzLzIwMjYvMDIvaW1hZ2UtMi5wbmciPjxpbWcgc3JjPSJodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9jb3JlL2ZpbGVzLzIwMjYvMDIvaW1hZ2UtMTAyNHgzNTMtMS5wbmciIGFsdD0iIiBjbGFzcz0id3AtaW1hZ2UtMTIxNjU3Ii8+PC9hPjxmaWdjYXB0aW9uIGNsYXNzPSJ3cC1lbGVtZW50LWNhcHRpb24iPlNvdXJjZSBibG9jayBmb3IgPGNvZGU+d3BfaW50ZXJhY3Rpdml0eSgpPC9jb2RlPiBvdmVyIHRoZSBwYXN0IHR3byB5ZWFycy48L2ZpZ2NhcHRpb24+PC9maWd1cmU+CjwhLS0gL3dwOmltYWdlIC0tPgoKPCEtLSB3cDppbWFnZSB7ImlkIjoxMjE2NTgsInNpemVTbHVnIjoibGFyZ2UiLCJsaW5rRGVzdGluYXRpb24iOiJtZWRpYSJ9IC0tPgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWxhcmdlIj48YSBocmVmPSJodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9jb3JlL2ZpbGVzLzIwMjYvMDIvaW1hZ2UtMy5wbmciPjxpbWcgc3JjPSJodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9jb3JlL2ZpbGVzLzIwMjYvMDIvaW1hZ2UtMTAyNHgzNzktMS5wbmciIGFsdD0iIiBjbGFzcz0id3AtaW1hZ2UtMTIxNjU4Ii8+PC9hPjxmaWdjYXB0aW9uIGNsYXNzPSJ3cC1lbGVtZW50LWNhcHRpb24iPlNvdXJjZSBibG9jayBmb3IgPGNvZGU+d3BfaW50ZXJhY3Rpdml0eSgpPC9jb2RlPiBhZnRlciB0aGUgdXBkYXRlLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT4KPCEtLSAvd3A6aW1hZ2UgLS0+PC9maWd1cmU+CjwhLS0gL3dwOmdhbGxlcnkgLS0+ZG9jdW1lbnRNZXRhc2F2ZWRBdGRvY3VtZW50TWV0YXNhdmVkQnkgIGNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc1RoaXMgd29yayB3YXMgdGhlIHJlc3VsdCBvZiBjb2xsYWJvcmF0aW9uIGJldHdlZW4gbWFueSBwZW9wbGUsIG1vc3Qgb2Ygd2hvbSBoYXZlIG5ldmVyIHdvcmtlZCB3aXRoIHRoaXMgcHJvY2VzcyBpbiB0aGUgcGFzdC4gQGpvaG5iaWxsaW9uLCBAam9uc3VycmVsbCwgYW5kIEB0bWRrIGFsbCB3b3JrZWQgb24gZGlmZmVyZW50IGFwcHJvYWNoZXMgdG8gcmVzdG9yaW5nIHRoZSBhYmlsaXR5IHRvIHBhcnNlIFdvcmRQcmVzc+KAmSBzb3VyY2UgY29kZTsgQGRkMzIgYW5kIEBjb2ZmZWUyY29kZSBtYWRlIHN1cmUgdGhhdCB0aGUgdXBkYXRlcyByZWFjaGVkIHRoZSBwdWJsaWMgd2Vic2l0ZWFuZCBjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwaW5uZXJCbG9ja3M7IGFuZCBvZiBjb3Vyc2UsIG51bWVyb3VzIHBlb3BsZSBpbiB0aGUgI2RvY3MgdGVhbSByZXBvcnRkIGFuZCBldHJpYWdlZCBidWcgcmVwb3J0cyB0aGF0IHdlcmUgc3ltcHRvbXMgb2YgdGhpcyBwcm9jZXNzIGJyZWFrZG93bi5UaGVyZSBpcyBzdGlsbCBzaWduaWZpY2FudCB3b3JrIHRvIGRvLCBhcyB0aGVyZSBpcyBubyB3YXkgYXQgdGhlIHRpbWUgb2Ygd3JpdGluZyB0aGlzIG5vdGUgdG8oKSBnZW5lcmF0ZSB0IGZvciB0aGUgdXBjb21pbmcgV29yZFByZXNzIDcuMCByZWxlYXNlLCBidXQgYXMgdGhlIG5ldyBpc3N1ZXMgYXJlIGlyb25lZCBvdXRjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwaW5uZXJCbG9ja3NUaCwgeW91IGNhbiBleHBlY3QgdGhlIHVwaGUgZG9jdW1lbnRhdGlvbmRhdGVzIHRvIGNvbWUgbXVjaCBzb29uZXIgdGhhbiAyMDI4IGVyZSBzdGlsbCByZW1haW4gYSBudW1iZXIgb2Yga25vd24gaXNzdWVzLCBwYXJ0aWN1bGFybHkgcmVsYXRlZCB0byBQSFBTdGFuIHR5cGUgYW5ub3RhdGlvbnMuIFdvcmsgaXMgb25nb2luZyB0byBpbXByb3ZlIHRoZSBvdmVyYWxsIGJ1aWxkIHByb2Nlc3MgYW5kIHRyeSB0byByZWR1Y2UgdGhlIGZlZWRiYWNrIGxvb3AgYmV0d2VlbiBtYWtpbmcgY29kZSBjaGFuZ2VzIGFuZCBzZWVpbmcgdGhvc2UgcmVmbGVjdGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIG9ubGluZS5zdGF0ZXZlcnNpb25zdGF0ZXZlcnNpb25UaGUgc3RhbGUgc291cmNlIGJsb2NrIHN0YXJ0ZWQgYW5kIGVuZGVkIGluIHRoZSBtaWRkbGUgb2YgYSBEb2NCbG9jayBjb21tZW50LCBzaG93aW5nIG5vdGhpbmcgb2YgdGhlIGFzc29jaWF0ZWQgZnVuY3Rpb24uSW4gdGhlIHVwZGF0ZXMgdGhlIHNvdXJjZSBibG9jayBzdGFydHMgYW5kIGVuZHMgd2l0aCB0aGUgc3ltYm9sIGRlZmluaXRpb24gYXMgZXhwZWN0ZWQuCgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhpcyB3b3JrIHdhcyB0aGUgcmVzdWx0IG9mIGNvbGxhYm9yYXRpb24gYmV0d2VlbiBtYW55IHBlb3BsZSwgbW9zdCBvZiB3aG9tIGhhdmUgbmV2ZXIgd29ya2VkIHdpdGggdGhpcyBwcm9jZXNzIGluIHRoZSBwYXN0LiBAam9obmJpbGxpb24sIEBqb25zdXJyZWxsLCBhbmQgQHRtZGsgYWxsIHdvcmtlZCBvbiBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byByZXN0b3JpbmcgdGhlIGFiaWxpdHkgdG8gcGFyc2UgV29yZFByZXNz4oCZIHNvdXJjZSBjb2RlOyBhbmQgQGRkMzIgYW5kIEBjb2ZmZWUyY29kZSBtYWRlIHN1cmUgdGhhdCB0aGUgdXBkYXRlcyByZWFjaGVkIHRoZSBwdWJsaWMgd2Vic2l0ZTsgYW5kIG9mIGNvdXJzZSwgbnVtZXJvdXMgcGVvcGxlIGluIHRoZSAjZG9jcyB0ZWFtIHJlcG9ydGVkIGFuZCB0cmlhZ2VkIGJ1ZyByZXBvcnRzIHRoYXQgd2VyZSBzeW1wdG9tcyBvZiB0aGlzIHByb2Nlc3MgYnJlYWtkb3duLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZXJlIGlzIHN0aWxsIHNpZ25pZmljYW50IHdvcmsgdG8gZG8sIGFzIHRoZXJlIGlzIG5vIHdheSAoYXQgdGhlIHRpbWUgb2Ygd3JpdGluZyB0aGlzIG5vdGUpIHRvIGdlbmVyYXRlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgdXBjb21pbmcgV29yZFByZXNzIDcuMCByZWxlYXNlLCBidXQgYXMgdGhlIG5ldyBpc3N1ZXMgYXJlIGlyb25lZCBvdXQsIHlvdSBjYW4gZXhwZWN0IHRoZSB1cGRhdGVzIHRvIGNvbWUgbXVjaCBzb29uZXIgdGhhbiAyMDI4IPCfmIk8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGVyZSBzdGlsbCByZW1haW4gYSBudW1iZXIgb2Yga25vd24gaXNzdWVzLCBwYXJ0aWN1bGFybHkgcmVsYXRlZCB0byBQSFBTdGFuIHR5cGUgYW5ub3RhdGlvbnMuIFdvcmsgaXMgb25nb2luZyB0byBpbXByb3ZlIHRoZSBvdmVyYWxsIGJ1aWxkIHByb2Nlc3MgYW5kIHRyeSB0byByZWR1Y2UgdGhlIGZlZWRiYWNrIGxvb3AgYmV0d2VlbiBtYWtpbmcgY29kZSBjaGFuZ2VzIGFuZCBzZWVpbmcgdGhvc2UgcmVmbGVjdGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIG9ubGluZS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLW9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudG9yaWdpbmFsQ29udGVudO+\/vW9yaWdpbmFsQ29udGVudGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwaW5uZXJCbG9ja3NGb3IgdGhvc2UgdW5hd2FyZSwgdGhlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9kZXZlbG9wZXIud29yZHByZXNzLm9yZy9yZWZlcmVuY2UgaGFzbuKAmXQgYmVlbiB1cGRhdGVkIHNpbmNlIFdvcmRQcmVzcyA2LjQg4oCUIHRoYXTigJlzIG92ZXIgdHdvIHllYXJzIGFnbyEgVG9kYXksIHRoYW5rZnVsbHksIHRoaXMgcG9zdCBpcyBhbm5vdW5jaW5nIHRoYXQgdGhlIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uIGlzIG5vdyB1YXRlIGFzIG9mIFdvcmRQcmVzcyA2LjkuMS5wZGRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzV29yZFByZXNzIGhhcyBzZWVuIHNpZ25pZmljYW50IGNoYW5nZSBzaW5jZSB0aGUgZG9jdW1lbnRhdGluIG9nZW5lcmF0aW9uIHByb2Nlc3Mgc3RvcHBlZCB3b3JraW5nLCBzbyBpZiB5b3UgZm91bmQgdGhhdCBzb21ldGhpbmcgd2FzIG1pc3NpbmcgdGhlbiBpdCB3YXNu4oCZdCBqdXN0IHlvdS4gVGhvc2UgbmV3IGludGVyZmFjZXMsIGNsYXNzZXMsIG1ldGhvZHMsIGZ1bmN0aW9ucywgYW5kIGhvb2tzIHNob3VsZCBiZSB0aGVyZSBub3cuIEZ1cnRoZXIsIGJlZm9yZSB0aGUgcHJvY2VzcyBzdG9wcGVkIGVudGlyZWx5LCBzb21ldGhpbmcgaGFkIGJlZW4gbGVhZGluZyB0byBjb2RlIGJsb2NrcyBzaG93aW5nIHRoZSB3cm9uZyBzb3VyY2UgZm9yIGVhY2ggaXRlbSBpbiB0aGUgcmVmZXJlbmNlLmlzVmFsaWRhdHRyaWJ1dGVzaW5uZXJCbG9ja3NjYXB0aW9uc2l6ZVNsdWduYW1laW1hZ2VzaWRzbmF2aWdhdGlvbkJ1dHRvblR5cGVzaG9ydENvZGVUcmFuc2Zvcm1zaW1hZ2VDcm9wcmFuZG9tT3JkZXJmaXhlZEhlaWdodGFsbG93UmVzaXplYXNwZWN0UmF0aW9pc1ZhbGlkbmFtZWF0dHJpYnV0ZXN1cmxjYXB0aW9uaHJlZmlkc2l6ZVNsdWdsaW5rRGVzdGluYXRpb25pbm5lckJsb2Nrc2lzVmFsaWRuYW1lYXR0cmlidXRlc3VybGNhcHRpb25ocmVmaWRzaXplU2x1Z2xpbmtEZXN0aW5hdGlvbmlubmVyQmxvY2tzbGlua1RvU291cmNlIGJsb2NrIGZvciB3cF9pbnRlcmFjdGl2aXR5KCk8Y29kZT48L2NvZGU+IG92ZXIgdGhlIHBhc3QgdHdvIHllYXJzLlNvdXJjZSBibG9jayBmb3Igd3BfaW50ZXJhY3Rpdml0eSgpPGNvZGU+PC9jb2RlPiBhZnRlciB0ZSB1cGRhdGUuaDwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Gb3IgdGhvc2UgdW5hd2FyZSwgdGhlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9kZXZlbG9wZXIud29yZHByZXNzLm9yZy9yZWZlcmVuY2UgaGFzbuKAmXQgYmVlbiB1cGRhdGVkIHNpbmNlIFdvcmRQcmVzcyA2LjQg4oCUIHRoYXTigJlzIG92ZXIgdHdvIHllYXJzIGFnbyEgVG9kYXksIHRoYW5rZnVsbHksIHRoaXMgcG9zdCBpcyBhbm5vdW5jaW5nIHRoYXQgdGhlIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uIGlzIG5vdyB1cGRhdGVkIGFzIG9mIFdvcmRQcmVzcyA2LjkuMS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5Xb3JkUHJlc3MgaGFzIHNlZW4gc2lnbmlmaWNhbnQgY2hhbmdlIHNpbmNlIHRoZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24gcHJvY2VzcyBzdG9wcGVkIHdvcmtpbmcsIHNvIGlmIHlvdSBmb3VuZCB0aGF0IHNvbWV0aGluZyB3YXMgbWlzc2luZyB0aGVuIGl0IHdhc27igJl0IGp1c3QgeW91LiBUaG9zZSBuZXcgaW50ZXJmYWNlcywgY2xhc3NlcywgbWV0aG9kcywgZnVuY3Rpb25zLCBhbmQgaG9va3Mgc2hvdWxkIGJlIHRoZXJlIG5vdy4gRnVydGhlciwgYmVmb3JlIHRoZSBwcm9jZXNzIHN0b3BwZWQgZW50aXJlbHksIHNvbWV0aGluZyBoYWQgYmVlbiBsZWFkaW5nIHRvIGNvZGUgYmxvY2tzIHNob3dpbmcgdGhlIHdyb25nIHNvdXJjZSBmb3IgZWFjaCBpdGVtIGluIHRoZSByZWZlcmVuY2UuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOmdhbGxlcnkgeyJsaW5rVG8iOiJmaWxlIn0gLS0+CjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWdhbGxlcnkgaGFzLW5lc3RlZC1pbWFnZXMgY29sdW1ucy1kZWZhdWx0IGlzLWNyb3BwZWQiPjwhLS0gd3A6aW1hZ2UgeyJpZCI6MTIxNjU3LCJzaXplU2x1ZyI6ImxhcmdlIiwibGlua0Rlc3RpbmF0aW9uIjoibWVkaWEifSAtLT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGEgaHJlZj0iaHR0cHM6Ly9tYWtlLndvcmRwcmVzcy5vcmcvY29yZS9maWxlcy8yMDI2LzAyL2ltYWdlLTIucG5nIj48aW1nIHNyYz0iaHR0cHM6Ly9tYWtlLndvcmRwcmVzcy5vcmcvY29yZS9maWxlcy8yMDI2LzAyL2ltYWdlLTEwMjR4MzUzLTEucG5nIiBhbHQ9IiIgY2xhc3M9IndwLWltYWdlLTEyMTY1NyIvPjwvYT48ZmlnY2FwdGlvbiBjbGFzcz0id3AtZWxlbWVudC1jYXB0aW9uIj5Tb3VyY2UgYmxvY2sgZm9yIDxjb2RlPndwX2ludGVyYWN0aXZpdHkoKTwvY29kZT4gb3ZlciB0aGUgcGFzdCB0d28geWVhcnMuPC9maWdjYXB0aW9uPjwvZmlndXJlPgo8IS0tIC93cDppbWFnZSAtLT4KCjwhLS0gd3A6aW1hZ2UgeyJpZCI6MTIxNjU4LCJzaXplU2x1ZyI6ImxhcmdlIiwibGlua0Rlc3RpbmF0aW9uIjoibWVkaWEifSAtLT4KPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGEgaHJlZj0iaHR0cHM6Ly9tYWtlLndvcmRwcmVzcy5vcmcvY29yZS9maWxlcy8yMDI2LzAyL2ltYWdlLTMucG5nIj48aW1nIHNyYz0iaHR0cHM6Ly9tYWtlLndvcmRwcmVzcy5vcmcvY29yZS9maWxlcy8yMDI2LzAyL2ltYWdlLTEwMjR4Mzc5LTEucG5nIiBhbHQ9IiIgY2xhc3M9IndwLWltYWdlLTEyMTY1OCIvPjwvYT48ZmlnY2FwdGlvbiBjbGFzcz0id3AtZWxlbWVudC1jYXB0aW9uIj5Tb3VyY2UgYmxvY2sgZm9yIDxjb2RlPndwX2ludGVyYWN0aXZpdHkoKTwvY29kZT4gYWZ0ZXIgdGhlIHVwZGF0ZS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+CjwhLS0gL3dwOmltYWdlIC0tPjwvZmlndXJlPgo8IS0tIC93cDpnYWxsZXJ5IC0tPiAgYWx0YWx0aXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc1RoaXMgd29yayB3YXMgdGhlIHJlc3VsdCBvZiBjb2xsYWJvcmF0aW9uIGJldHdlZW4gbWFueSBwZW9wbGUsIG1vc3Qgb2Ygd2hvbSBoYXZlIG5ldmVyIHdvcmtlZCB3aXRoIHRoaXMgcHJvY2VzcyBpbiB0aGUgcGFzdC4gQGpvaG5iaWxsaW9uLCBAam9uc3VycmVsbCwgYW5kIEB0bWRrIGFsbCB3b3JrZWQgb24gZGlmZmVyZW50IGFwcHJvYWNoZXMgdG8gcmVzdG9yaW5nIHRoZSBhYmlsaXR5IHRvIHBhcnNlIFdvcmRQcmVzc+KAmSBzb3VyY2UgY29kZTsgQGRkMzIgYW5kIEBjb2ZmZWUyY29kZSBtYWRlIHN1cmUgdGhhdCB0aGUgdXBkYXRlcyByZWFjaGVkIHRoZSBwdWJsaWMgd2Vic2l0ZWFuZCBpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzOyBhbmQgb2YgY291cnNlLCBudW1lcm91cyBwZW9wbGUgaW4gdGhlICNkb2NzIHRlYW0gcmVwb3J0ZCBhbmQgZXRyaWFnZWQgYnVnIHJlcG9ydHMgdGhhdCB3ZXJlIHN5bXB0b21zIG9mIHRoaXMgcHJvY2VzcyBicmVha2Rvd24uVGhlcmUgaXMgc3RpbGwgc2lnbmlmaWNhbnQgd29yayB0byBkbywgYXMgdGhlcmUgaXMgbm8gd2F5IGF0IHRoZSB0aW1lIG9mIHdyaXRpbmcgdGhpcyBub3RlIHRvKCkgZ2VuZXJhdGUgdCBmb3IgdGhlIHVwY29taW5nIFdvcmRQcmVzcyA3LjAgcmVsZWFzZSwgYnV0IGFzIHRoZSBuZXcgaXNzdWVzIGFyZSBpcm9uZWQgb3V0aXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc1RoLCB5b3UgY2FuIGV4cGVjdCB0aGUgdXBoZSBkb2N1bWVudGF0aW9uZGF0ZXMgdG8gY29tZSBtdWNoIHNvb25lciB0aGFuIDIwMjggZXJlIHN0aWxsIHJlbWFpbiBhIG51bWJlciBvZiBrbm93biBpc3N1ZXMsIHBhcnRpY3VsYXJseSByZWxhdGVkIHRvIFBIUFN0YW4gdHlwZSBhbm5vdGF0aW9ucy4gV29yayBpcyBvbmdvaW5nIHRvIGltcHJvdmUgdGhlIG92ZXJhbGwgYnVpbGQgcHJvY2VzcyBhbmQgdHJ5IHRvIHJlZHVjZSB0aGUgZmVlZGJhY2sgbG9vcCBiZXR3ZWVuIG1ha2luZyBjb2RlIGNoYW5nZXMgYW5kIHNlZWluZyB0aG9zZSByZWZsZWN0ZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gb25saW5lLlRoZSBzdGFsZSBzb3VyY2UgYmxvY2sgc3RhcnRlZCBhbmQgZW5kZWQgaW4gdGhlIG1pZGRsZSBvZiBhIERvY0Jsb2NrIGNvbW1lbnQsIHNob3dpbmcgbm90aGluZyBvZiB0aGUgYXNzb2NpYXRlZCBmdW5jdGlvbi5JbiB0aGUgdXBkYXRlcyB0aGUgc291cmNlIGJsb2NrIHN0YXJ0cyBhbmQgZW5kcyB3aXRoIHRoZSBzeW1ib2wgZGVmaW5pdGlvbiBhcyBleHBlY3RlZC4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGlzIHdvcmsgd2FzIHRoZSByZXN1bHQgb2YgY29sbGFib3JhdGlvbiBiZXR3ZWVuIG1hbnkgcGVvcGxlLCBtb3N0IG9mIHdob20gaGF2ZSBuZXZlciB3b3JrZWQgd2l0aCB0aGlzIHByb2Nlc3MgaW4gdGhlIHBhc3QuIEBqb2huYmlsbGlvbiwgQGpvbnN1cnJlbGwsIGFuZCBAdG1kayBhbGwgd29ya2VkIG9uIGRpZmZlcmVudCBhcHByb2FjaGVzIHRvIHJlc3RvcmluZyB0aGUgYWJpbGl0eSB0byBwYXJzZSBXb3JkUHJlc3PigJkgc291cmNlIGNvZGU7IGFuZCBAZGQzMiBhbmQgQGNvZmZlZTJjb2RlIG1hZGUgc3VyZSB0aGF0IHRoZSB1cGRhdGVzIHJlYWNoZWQgdGhlIHB1YmxpYyB3ZWJzaXRlOyBhbmQgb2YgY291cnNlLCBudW1lcm91cyBwZW9wbGUgaW4gdGhlICNkb2NzIHRlYW0gcmVwb3J0ZWQgYW5kIHRyaWFnZWQgYnVnIHJlcG9ydHMgdGhhdCB3ZXJlIHN5bXB0b21zIG9mIHRoaXMgcHJvY2VzcyBicmVha2Rvd24uPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+VGhlcmUgaXMgc3RpbGwgc2lnbmlmaWNhbnQgd29yayB0byBkbywgYXMgdGhlcmUgaXMgbm8gd2F5IChhdCB0aGUgdGltZSBvZiB3cml0aW5nIHRoaXMgbm90ZSkgdG8gZ2VuZXJhdGUgdGhlIGRvY3VtZW50YXRpb24gZm9yIHRoZSB1cGNvbWluZyBXb3JkUHJlc3MgNy4wIHJlbGVhc2UsIGJ1dCBhcyB0aGUgbmV3IGlzc3VlcyBhcmUgaXJvbmVkIG91dCwgeW91IGNhbiBleHBlY3QgdGhlIHVwZGF0ZXMgdG8gY29tZSBtdWNoIHNvb25lciB0aGFuIDIwMjgg8J+YiTwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZXJlIHN0aWxsIHJlbWFpbiBhIG51bWJlciBvZiBrbm93biBpc3N1ZXMsIHBhcnRpY3VsYXJseSByZWxhdGVkIHRvIFBIUFN0YW4gdHlwZSBhbm5vdGF0aW9ucy4gV29yayBpcyBvbmdvaW5nIHRvIGltcHJvdmUgdGhlIG92ZXJhbGwgYnVpbGQgcHJvY2VzcyBhbmQgdHJ5IHRvIHJlZHVjZSB0aGUgZmVlZGJhY2sgbG9vcCBiZXR3ZWVuIG1ha2luZyBjb2RlIGNoYW5nZXMgYW5kIHNlZWluZyB0aG9zZSByZWZsZWN0ZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gb25saW5lLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC1jbGllbnRJZG9yaWdpbmFsQ29udGVudGNsaWVudElkb3JpZ2luYWxDb250ZW50Y2xpZW50SWRvcmlnaW5hbENvbnRlbnRjbGllbnRJZG9yaWdpbmFsQ29udGVudGNsaWVudElkb3JpZ2luYWxDb250ZW50Y2xpZW50SWRvcmlnaW5hbENvbnRlbnRjbGllbnRJZG9yaWdpbmFsQ29udGVudO+\/vWNsaWVudElkb3JpZ2luYWxDb250ZW50LT4KCjwhLS0gd3A6bW9yZSAtLT4KPCEtLW1vcmUtLT4KPCEtLSAvd3A6bW9yZSAtLT4KCjwhLS0gd3A6aGVhZGluZyAtLT4KPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIj5UaW1lbGluZTwvaDI+CjwhLS0gL3dwOmhlYWRpbmcgLS0+Cgo8IS0tIHdwOmxpc3QgLS0+Cjx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+PCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5BdWd1c3QgMSwgMjAyMyDigJQgPGEgaHJlZj0iaHR0cHM6Ly9jb3JlLnRyYWMud29yZHByZXNzLm9yZy9jaGFuZ2VzZXQvNTYzNDUiPls1NjM0NV08L2E+IGludHJvZHVjZXMgYSBjb2RlLXN0eWxpbmcgY2hhbmdlIHRvIHJlcGxhY2UgPGNvZGU+YXJyYXlfa2V5X2V4aXN0cygpPC9jb2RlPiB3aXRoIDxjb2RlPmlzc2V0KCk8L2NvZGU+LiBUaGlzIHdhcyBrbm93biB0byBiZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vV29yZFByZXNzL3BocGRvYy1wYXJzZXIvaXNzdWVzLzE5OSI+dW5zdXBwb3J0ZWQgYnkgdGhlIGRvY3MgcGFyc2VyPC9hPiBidXQgdGhlcmUgd2FzIG5vIGluZGljYXRpb24gdGhhdCB0aGUgdXBkYXRpbmcgcHJvY2VzcyB3YXMgYnJva2VuLiBCZWNhdXNlIG9mIGEgcGFyc2luZyBlcnJvciB0aGUgcHJvY2VzcyB3YXMgYmxvY2tlZDsgdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIG5lZWRlZCB0byB1cGRhdGUgaXRzIHVuZGVybHlpbmcgZGVwZW5kZW5jeSBvbiA8Y29kZT5uaWtpYy9waHAtcGFyc2VyPC9jb2RlPiB3aGljaCBpcyB3aGF0IHR1cm5zIHNvdXJjZSBjb2RlIGludG8gYSBzdHJ1Y3R1cmUgdG8gYmUgYW5hbHl6ZWQuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPgoKPCEtLSB3cDpsaXN0LWl0ZW0gLS0+CjxsaT5BcHJpbCAxNSwgMjAyNCDigJQgPGEgaHJlZj0iaHR0cHM6Ly9jb3JlLnRyYWMud29yZHByZXNzLm9yZy9jaGFuZ2VzZXQvNTgwMDkiPls1ODAwOV08L2E+IGludHJvZHVjZXMgdHlwZSBhbm5vdGF0aW9ucyBmb3Igb3B0aW9uYWwgdHlwZXMsIDxjb2RlPj9hcnJheTwvY29kZT4gaW5zdGVhZCBvZiA8Y29kZT5hcnJheTwvY29kZT4sIHdoaWNoIHRoZSBwYXJzZXIgY291bGQgbm90IDwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tLS1jbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRGb3IgdGhvc2UgdW5hd2FyZSwgdGhlIGRvY3VtZW50YXRpb24gYXQgaHR0cHM6Ly9kZXZlbG9wZXIud29yZHByZXNzLm9yZy9yZWZlcmVuY2UgaGFzbuKAmXQgYmVlbiB1cGRhdGVkIHNpbmNlIFdvcmRQcmVzcyA2LjQg4oCUIHRoYXTigJlzIG92ZXIgdHdvIHllYXJzIGFnbyEgVG9kYXksIHRoYW5rZnVsbHksIHRoaXMgcG9zdCBpcyBhbm5vdW5jaW5nIHRoYXQgdGhlIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uIGlzIG5vdyB1cGRhdGVkIGFzIG9mIFdvcmRQcmVzcyA2LjkuMS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRXb3JkUHJlc3MgaGFzIHNlZW4gc2lnbmlmaWNhbnQgY2hhbmdlIHNpbmNlIHRoZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24gcHJvY2VzcyBzdG9wcGVkIHdvcmtpbmcsIHNvIGlmIHlvdSBmb3VuZCB0aGF0IHNvbWV0aGluZyB3YXMgbWlzc2luZyB0aGVuIGl0IHdhc27igJl0IGp1c3QgeW91LiBUaG9zZSBuZXcgaW50ZXJmYWNlcywgY2xhc3NlcywgbWV0aG9kcywgZnVuY3Rpb25zLCBhbmQgaG9va3Mgc2hvdWxkIGJlIHRoZXJlIG5vdy4gRnVydGhlciwgYmVmb3JlIHRoZSBwcm9jZXNzIHN0b3BwZWQgZW50aXJlbHksIHNvbWV0aGluZyBoYWQgYmVlbiBsZWFkaW5nIHRvIGNvZGUgYmxvY2tzIHNob3dpbmcgdGhlIHdyb25nIHNvdXJjZSBmb3IgZWFjaCBpdGVtIGluIHRoZSByZWZlcmVuY2UuZHJvcENhcGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNpbWFnZXNpZHNuYXZpZ2F0aW9uQnV0dG9uVHlwZXNob3J0Q29kZVRyYW5zZm9ybXNjYXB0aW9uaW1hZ2VDcm9wcmFuZG9tT3JkZXJmaXhlZEhlaWdodGxpbmtUb3NpemVTbHVnYWxsb3dSZXNpemVhc3BlY3RSYXRpb2lubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXN1cmxhbHRjYXB0aW9uU291cmNlIGJsb2NrIGZvciA8Y29kZT53cF9pbnRlcmFjdGl2aXR5KCk8L2NvZGU+IG92ZXIgdGhlIHBhc3QgdHdvIHllYXJzLmhyZWZpZHNpemVTbHVnbGlua0Rlc3RpbmF0aW9uaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc3VybGFsdGNhcHRpb25Tb3VyY2UgYmxvY2sgZm9yIDxjb2RlPndwX2ludGVyYWN0aXZpdHkoKTwvY29kZT4gYWZ0ZXIgdGhlIHVwZGF0ZS5ocmVmaWRzaXplU2x1Z2xpbmtEZXN0aW5hdGlvbmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGhpcyB3b3JrIHdhcyB0aGUgcmVzdWx0IG9mIGNvbGxhYm9yYXRpb24gYmV0d2VlbiBtYW55IHBlb3BsZSwgbW9zdCBvZiB3aG9tIGhhdmUgbmV2ZXIgd29ya2VkIHdpdGggdGhpcyBwcm9jZXNzIGluIHRoZSBwYXN0LiBAam9obmJpbGxpb24sIEBqb25zdXJyZWxsLCBhbmQgQHRtZGsgYWxsIHdvcmtlZCBvbiBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byByZXN0b3JpbmcgdGhlIGFiaWxpdHkgdG8gcGFyc2UgV29yZFByZXNz4oCZIHNvdXJjZSBjb2RlOyBhbmQgQGRkMzIgYW5kIEBjb2ZmZWUyY29kZSBtYWRlIHN1cmUgdGhhdCB0aGUgdXBkYXRlcyByZWFjaGVkIHRoZSBwdWJsaWMgd2Vic2l0ZTsgYW5kIG9mIGNvdXJzZSwgbnVtZXJvdXMgcGVvcGxlIGluIHRoZSAjZG9jcyB0ZWFtIHJlcG9ydGVkIGFuZCB0cmlhZ2VkIGJ1ZyByZXBvcnRzIHRoYXQgd2VyZSBzeW1wdG9tcyBvZiB0aGlzIHByb2Nlc3MgYnJlYWtkb3duLmRyb3BDYXBpbm5lckJsb2Nrc2NsaWVudElkaXNWYWxpZG9yaWdpbmFsQ29udGVudG5hbWVhdHRyaWJ1dGVzY29udGVudFRoZXJlIGlzIHN0aWxsIHNpZ25pZmljYW50IHdvcmsgdG8gZG8sIGFzIHRoZXJlIGlzIG5vIHdheSAoYXQgdGhlIHRpbWUgb2Ygd3JpdGluZyB0aGlzIG5vdGUpIHRvIGdlbmVyYXRlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgdXBjb21pbmcgV29yZFByZXNzIDcuMCByZWxlYXNlLCBidXQgYXMgdGhlIG5ldyBpc3N1ZXMgYXJlIGlyb25lZCBvdXQsIHlvdSBjYW4gZXhwZWN0IHRoZSB1cGRhdGVzIHRvIGNvbWUgbXVjaCBzb29uZXIgdGhhbiAyMDI4IPCfmIlkcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRUaGVyZSBzdGlsbCByZW1haW4gYSBudW1iZXIgb2Yga25vd24gaXNzdWVzLCBwYXJ0aWN1bGFybHkgcmVsYXRlZCB0byBQSFBTdGFuIHR5cGUgYW5ub3RhdGlvbnMuIFdvcmsgaXMgb25nb2luZyB0byBpbXByb3ZlIHRoZSBvdmVyYWxsIGJ1aWxkIHByb2Nlc3MgYW5kIHRyeSB0byByZWR1Y2UgdGhlIGZlZWRiYWNrIGxvb3AgYmV0d2VlbiBtYWtpbmcgY29kZSBjaGFuZ2VzIGFuZCBzZWVpbmcgdGhvc2UgcmVmbGVjdGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIG9ubGluZS5kcm9wQ2FwaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2N1c3RvbVRleHRub1RlYXNlcmlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNjb250ZW50VGltZWxpbmVsZXZlbGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkb3JpZ2luYWxDb250ZW50bmFtZWF0dHJpYnV0ZXNvcmRlcmVkdmFsdWVzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBdWd1c3QgMSwgMjAyMyDigJQgPGEgaHJlZj0iaHR0cHM6Ly9jb3JlLnRyYWMud29yZHByZXNzLm9yZy9jaGFuZ2VzZXQvNTYzNDUiPls1NjM0NV08L2E+IGludHJvZHVjZXMgYSBjb2RlLXN0eWxpbmcgY2hhbmdlIHRvIHJlcGxhY2UgPGNvZGU+YXJyYXlfa2V5X2V4aXN0cygpPC9jb2RlPiB3aXRoIDxjb2RlPmlzc2V0KCk8L2NvZGU+LiBUaGlzIHdhcyBrbm93biB0byBiZSA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vV29yZFByZXNzL3BocGRvYy1wYXJzZXIvaXNzdWVzLzE5OSI+dW5zdXBwb3J0ZWQgYnkgdGhlIGRvY3MgcGFyc2VyPC9hPiBidXQgdGhlcmUgd2FzIG5vIGluZGljYXRpb24gdGhhdCB0aGUgdXBkYXRpbmcgcHJvY2VzcyB3YXMgYnJva2VuLiBCZWNhdXNlIG9mIGEgcGFyc2luZyBlcnJvciB0aGUgcHJvY2VzcyB3YXMgYmxvY2tlZDsgdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIG5lZWRlZCB0byB1cGRhdGUgaXRzIHVuZGVybHlpbmcgZGVwZW5kZW5jeSBvbiA8Y29kZT5uaWtpYy9waHAtcGFyc2VyPC9jb2RlPiBzaW5uZXJCbG9ja3NjbGllbnRJZGlzVmFsaWRvcmlnaW5hbENvbnRlbnRuYW1lYXR0cmlidXRlc2NvbnRlbnRBcHJpbCAxNSwgMjAyNCDigJQgPGEgaHJlZj0iaHR0cHM6Ly9jb3JlLnRyYWMud29yZHByZXNzLm9yZy9jaGFuZ2VzZXQvNTgwMDkiPls1ODAwOV08L2E+IGludHJvZHVjZXMgdHlwZSBhbm5vdGF0aW9ucyBmb3Igb3B0aW9uYWwgdHlwZXMsIDxjb2RlPj9hcnJheTwvY29kZT4gaW5zdGVhZCBvZiA8Y29kZT5hcnJheTwvY29kZT4sIHdoaWNoIHRoZSBwYXJzZXIgY291bGQgbm90IGlubmVyQmxvY2tzbyB0aGF0IGl0IGNvdWxkIHVzZSBvZiBhIHBhcnNpbmcgZXJyb3IgdGhlIHByb2Nlc3Mgd2FzIGJsb2NrZWQ7IHRoZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvciBuZWVkZWQgdG8gdXBkYXRlIGl0cyB1bmRlcmx5aW5nIGRlcGVuZGVuY3kgb24gPGNvZGU+bmlraWMvcGhwLXBhcnNlcjwvY29kZT4gc28gdGhhdCBpdCBjb3VsZCB1bmRlcnN0YSBwYXJzaW5nIGVycm9yIHRoZSBwcm9jZXNzIHdhcyBibG9ja2VkOyB0aGUgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3IgbmVlZGVkIHRvIHVwZGF0ZSBpdHMgdW5kZXJseWluZyBkZXBlbmRlbmN5IG9uIDxjb2RlPm5pa2ljL3BocC1wYXJzZXI8L2NvZGU+IHNvIHRoYXQgaXQgY291bGQgdW5kZXJzdGFuZCB0aGUgdW5lcnJvciB0aGUgcHJvY2VzcyB3YXMgYmxvY2tlZDsgdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIG5lZWRlZCB0byB1cGRhdGUgaXRzIHVuZGVybHlpbmcgZGVwZW5kZW5jeSBvbiA8Y29kZT5uaWtpYy9waHAtcGFyc2VyPC9jb2RlPiBzbyB0aGF0IGl0IGNvdWxkIHVuZGVyc3RhbmQgdGhlIHVuZXJyb3IgdGhlIHByb2Nlc3Mgd2FzIGJsb2NrZWQ7IHRoZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvciBuZWVkZWQgdG8gdXBkYXRlIGl0cyB1bmRlcmx5aW5nIGRlcGVuZGVuY3kgb24gPGNvZGU+bmlraWMvcGhwLXBhcnNlcjwvY29kZT4gc28gdGhhdCBpdCBjb3VsZCB1bmRlcnN0YW5kIHRoZSB1bmVycnJvciB0aGUgcHJvY2VzcyB3YXMgYmxvY2tlZDsgdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIG5lZWRlZCB0byB1cGRhdGUgaXRzIHVuZGVybHlpbmcgZGVwZW5kZW5jeSBvbiA8Y29kZT5uaWtpYy9waHAtcGFyc2VyPC9jb2RlPiBzbyB0aGF0IGl0IGNvdWxkIHVuZGVyc3RhbmQgdGhlIHVuZGVyb3IgdGhlIHByb2Nlc3Mgd2FzIGJsb2NrZWQ7IHRoZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvciBuZWVkZWQgdG8gdXBkYXRlIGl0cyB1bmRlcmx5aW5nIGRlcGVuZGVuY3kgb24gPGNvZGU+bmlraWMvcGhwLXBhcnNlcjwvY29kZT4gc28gdGhhdCBpdCBjb3VsZCB1bmRlcnN0YW5kIHRoZSB1bmRlcmx5aW5nIHNvdXJjZXNzIHdhcyBibG9ja2VkOyB0aGUgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3IgbmVlZGVkIHRvIHVwZGF0ZSBpdHMgdW5kZXJseWluZyBkZXBlbmRlbmN5IG9uIDxjb2RlPm5pa2ljL3BocC1wYXJzZXI8L2NvZGU+IHNvIHRoYXQgaXQgY291bGQgdW5kZXJzdGFuZCB0aGUgdW5kZXJseWluZyBzb3VyY2VzcyB3YXMgYmxvY2tlZDsgdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdG9yIG5lZWRlZCB0byB1cGRhdGUgaXRzIHVuZGVybHlpbmcgZGVwZW5kZW5jeSBvbiA8Y29kZT5uaWtpYy9waHAtcGFyc2VyPC9jb2RlPiBzbyB0aGF0IGl0IGNvdWxkIHVuZGVyc3RhbmQgdGhlIHVuZGVybHlpbmcgc291cmNlIGNvZGUudG5ldyBzeW50YXggaW4gdGhlc3Mgd2FzIGJsb2NrZWQ7IHRoZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRvciBuZWVkZWQgdG8gdXBkYXRlIGl0cyB1bmRlcmx5aW5nIGRlcGVuZGVuY3kgb24gPGNvZGU+bmlraWMvcGhwLXBhcnNlcjwvY29kZT4gc28gdGhhdCBpdCBjb3VsZCB1bmRlcnN0YW5kIHRoZSBuZXcgc3ludGF4IGluIHRoZSB1bmRlcmx5aW5nIHNvdXJjZSBjb2RldXBkYXRlZCBwYXJzZXIgY291bCB0eXBlcywgPGNvZGU+P2FycmF5PC9jb2RlPiBpbnN0ZWFkIG9mIDxjb2RlPmFycmF5PC9jb2RlPiwgd2hpY2ggdGhlIHVwZGF0ZWQgcGFyc2VyIGNvdWxkIHBhcnMsIDxjb2RlPj9hcnJheTwvY29kZT4gaW5zdGVhZCBvZiA8Y29kZT5hcnJheTwvY29kZT4sIHdoaWNoIHRoZSB1cGRhdGVkIHBhcnNlciBjb3VsZCBwYXJzZSwgYnV0IHdoaWNoIGBwaHBEb2N1bWVuc3RlYWQgb2YgPGNvZGU+YXJyYXk8L2NvZGU+LCB3aGljaCB0aGUgdXBkYXRlZCBwYXJzZXIgY291bGQgcGFyc2UsIGJ1dCB3aGljaCBgcGhwRG9jdW1lbnRvci9SZWZsZWN0aW9uYDxjb2RlPjwvY29kZT4gZGlkIG5vdCBoYXZlPiwgd2hpY2ggdGhlIHVwZGF0ZWQgcGFyc2VyIGNvdWxkIHBhcnNlLCBidXQgd2hpY2ggPGNvZGU+cGhwRG9jdW1lbnRvci9SZWZsZWN0aW9uPC9jb2RlPiBkaWQgbm90IGhhdmUgcmVjb2duaXplLiBgUmVmbGVUaGUgYFJFZmxlbGZmbGVjdGlvbmA8Y29kZT48L2NvZGU+IGxpYmFyIGNvdWxkIHBhcnNlLCBidXQgd2hpY2ggPGNvZGU+cGhwRG9jdW1lbnRvci9SZWZsZWN0aW9uPC9jb2RlPiBkaWQgbm90IHJlY29nbml6ZS4gVGhlIDxjb2RlPlJlZmxlY3Rpb248L2NvZGU+IGxpYmFyciBjb3VsZCBwYXJzZSwgYnV0IHdoaWNoIDxjb2RlPnBocERvY3VtZW50b3IvUmVmbGVjdGlvbjwvY29kZT4gZGlkIG5vdCByZWNvZ25pemUuIFRoZSA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiBsaWJyYXJ5IGV4dHJhY3RzZSwgYnV0IHdoaWNoIDxjb2RlPnBocERvY3VtZW50b3IvUmVmbGVjdGlvbjwvY29kZT4gZGlkIG5vdCByZWNvZ25pemUuIFRoZSA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiBsaWJyYXJ5IGV4dHJhY3RzIHVzZWZ1bCBpbmZvcm1hdGlvbiBmcm9tIHRoZW50b3IvUmVmbGVjdGlvbjwvY29kZT4gZGlkIG5vdCByZWNvZ25pemUuIFRoZSA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiBsaWJyYXJ5IGV4dHJhY3RzIHVzZWZ1bCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBwYXIvUmVmbGVjdGlvbjwvY29kZT4gZGlkIG5vdCByZWNvZ25pemUuIFRoZSA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiBsaWJyYXJ5IGV4dHJhY3RzIHVzZWZ1bCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBwYXJzZWQgZm9ybSBvbjwvY29kZT4gZGlkIG5vdCByZWNvZ25pemUuIFRoZSA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiBsaWJyYXJ5IGV4dHJhY3RzIHVzZWZ1bCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBwYXJzZWQgZm9ybSBvZiB0aGUgc291cmNlIG5vdCByZWNvZ25pemUuIFRoZSA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiBsaWJyYXJ5IGV4dHJhY3RzIHVzZWZ1bCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBwYXJzZWQgZm9ybSBvZiB0aGUgc291cmNlIGNvdCByZWNvZ25pemUuIFRoZSA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiBsaWJyYXJ5IGV4dHJhY3RzIHVzZWZ1bCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBwYXJzZWQgZm9ybSBvZiB0aGUgc291cmNlIGNvZGUsIGJ1dCB0aGUuIFRoZSA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiBsaWJyYXJ5IGV4dHJhY3RzIHVzZWZ1bCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBwYXJzZWQgZm9ybSBvZiB0aGUgc291cmNlIGNvZGUsIGJ1dCB0aGUgbnXDuGxhYmxidXQgaGFkIG5vIGNvZGUgcGF0aCBmbGVjdGlvbjwvY29kZT4gbGlicmFyeSBleHRyYWN0cyB1c2VmdWwgaW5mb3JtYXRpb24gZnJvbSB0aGUgcGFyc2VkIGZvcm0gb2YgdGhlIHNvdXJjZSBjb2RlLCBidXQgaGFkIG5vIGNvZGUgcGF0aCBmb3IgbnVsbGFibGUgdHlwZXMuIE9uY2UgdGhlIG5ldyB1c2VmdWwgaW5mb3JtYXRpb24gZnJvbSB0aGUgcGFyc2VkIGZvcm0gb2YgdGhlIHNvdXJjZSBjb2RlLCBidXQgaGFkIG5vIGNvZGUgcGF0aCBmb3IgbnVsbGFibGUgdHlwZXMuIE9uY2UgdGhlIG5ldyBzeW50YXggaW5mb3JtYXRpb24gZnJvbSB0aGUgcGFyc2VkIGZvcm0gb2YgdGhlIHNvdXJjZSBjb2RlLCBidXQgaGFkIG5vIGNvZGUgcGF0aCBmb3IgbnVsbGFibGUgdHlwZXMuIE9uY2UgdGhlIG5ldyBzeW50YXggYXBwZWFyZGVkIGluIGZyb20gdGhlIHBhcnNlZCBmb3JtIG9mIHRoZSBzb3VyY2UgY29kZSwgYnV0IGhhZCBubyBjb2RlIHBhdGggZm9yIG51bGxhYmxlIHR5cGVzLiBPbmNlIHRoZSBuZXcgc3ludGF4IGFwcGVhcmVkIGluIGZyb20gdGhlIHBhcnNlZCBmb3JtIG9mIHRoZSBzb3VyY2UgY29kZSwgYnV0IGhhZCBubyBjb2RlIHBhdGggZm9yIG51bGxhYmxlIHR5cGVzLiBPbmNlIHRoZSBuZXcgc3ludGF4IGFwcGVhcmVkIGluIHRoZSBzb3VyY2UgZWNvZCBmb3JtIG9mIHRoZSBzb3VyY2UgY29kZSwgYnV0IGhhZCBubyBjb2RlIHBhdGggZm9yIG51bGxhYmxlIHR5cGVzLiBPbmNlIHRoZSBuZXcgc3ludGF4IGFwcGVhcmVkIGluIHRoZSBzb3VyY2UgZWNvZGQgZm9ybSBvZiB0aGUgc291cmNlIGNvZGUsIGJ1dCBoYWQgbm8gY29kZSBwYXRoIGZvciBudWxsYWJsZSB0eXBlcy4gT25jZSB0aGUgbmV3IHN5bnRheCBhcHBlYXJlZCBpbiB0aGUgc291cmNlIGVjY29kZSwgaXQgbmVlZGVkIHRvIGJlIHVwZGF0ZSwgYnV0IGhhZCBubyBjb2RlIHBhdGggZm9yIG51bGxhYmxlIHR5cGVzLiBPbmNlIHRoZSBuZXcgc3ludGF4IGFwcGVhcmVkIGluIHRoZSBzb3VyY2UgY29kZSwgaXQgbmVlZGVkIHRvIGJlIHVwZGF0ZWQgYnV0IGhhZCBubyBjb2RlIHBhdGggZm9yIG51bGxhYmxlIHR5cGVzLiBPbmNlIHRoZSBuZXcgc3ludGF4IGFwcGVhcmVkIGluIHRoZSBzb3VyY2UgY29kZSwgaXQgbmVlZGVkIHRvIGJlIHVwZGF0ZWQgdG8gc3VwYWRkIHRoZSBjb2RlIHBhdGggZm9yIG51bGxhYmxlIHR5cGVzLiBPbmNlIHRoZSBuZXcgc3ludGF4IGFwcGVhcmVkIGluIHRoZSBzb3VyY2UgY29kZSwgaXQgbmVlZGVkIHRvIGJlIHVwZGF0ZWQgdG8gYWRkIHRoZSBtaXNzaW5nIGggZm9yIG51bGxhYmxlIHR5cGVzLiBPbmNlIHRoZSBuZXcgc3ludGF4IGFwcGVhcmVkIGluIHRoZSBzb3VyY2UgY29kZSwgaXQgbmVlZGVkIHRvIGJlIHVwZGF0ZWQgdG8gYWRkIHRoZSBtaXNzaW5nIGhhbmRsaW51bGxhYmxlIHR5cGVzLiBPbmNlIHRoZSBuZXcgc3ludGF4IGFwcGVhcmVkIGluIHRoZSBzb3VyY2UgY29kZSwgaXQgbmVlZGVkIHRvIGJlIHVwZGF0ZWQgdG8gYWRkIHRoZSBtaXNzaW5nIGhhbmRsaW5nIC48YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vV29yZFByZXNzL3BocGRvYy1wYXJzZXIvaXNzdWVzLzIyOCI+PC9hPmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGlubmVyQmxvY2tzSnVuZSAzLCAyMDI0IOKAlCBbNTgzMDRdIGludHJvZHVjZXMgPGEgaHJlZj0iaHR0cHM6Ly9jb3JlLnRyYWMud29yZHByZXNzLm9yZy9jaGFuZ2VzZXQvNTgzMDQiPjwvYT5hIHNob3J0aGFuZCBzeW50YXggZm9yIGNhbmdlc2V0LzU4MzA0Ij5bNTgzMDRdPC9hPiBpbnRyb2R1Y2VzIGEgc2hvcnRoYW5kIHN5bnRheCBmb3IgY2FsbGluZyBhIGBDYWxsYWJsZWA8Y29kZT48L2NvZGU+IHN0b3JlcyBkIGluIGEgdmFyaWFibGUuIHNob3J0aGFuZCBzeW50YXggZm9yIGNhbGxpbmcgYSA8Y29kZT5DYWxsYWJsZTwvY29kZT4gc3RvcmVkIGluIGEgdmFyaWFibGUuIFRob3J0aGFuZCBzeW50YXggZm9yIGNhbGxpbmcgYSA8Y29kZT5DYWxsYWJsZTwvY29kZT4gc3RvcmVkIGluIGEgdmFyaWFibGUuIFRoy4ZpcyA8ZW0+czwvZW0+aG91bGQgYmUgc3VwcG9ydGVkICBieSB0aGUgcGFyc2VyIGxsYWJsZTwvY29kZT4gc3RvcmVkIGluIGEgdmFyaWFibGUuIFRoaXMgPGVtPnNob3VsZDwvZW0+IGJlIHN1cHBvcnRlZCBieSB0aGUgcGFyc2VyIGxsbGFibGU8L2NvZGU+IHN0b3JlZCBpbiBhIHZhcmlhYmxlLiBUaGlzIDxlbT5zaG91bGQ8L2VtPiBiZSBzdXBwb3J0ZWQgYnkgdGhlIHBhcnNlcmxhYmxlPC9jb2RlPiBzdG9yZWQgaW4gYSB2YXJpYWJsZS4gVGhpcyA8ZW0+c2hvdWxkPC9lbT4gYmUgc3VwcG9ydGVkIGJ5IHRoZSBwYXJzZXIgUEhQSFAgcGFyc2VyIGFuZCBgUmVmbGVjdG9yZWQgaW4gYSB2YXJpYWJsZS4gVGhpcyA8ZW0+c2hvdWxkPC9lbT4gYmUgc3VwcG9ydGVkIGJ5IHRoZSBQSFAgcGFyc2VyIGFuZCBgUmVmbGVjdGlvbmA8Y29kZT48L2NvZGU+LCBidXQgYSB2YXJpYWJsZS4gVGhpcyA8ZW0+c2hvdWxkPC9lbT4gYmUgc3VwcG9ydGVkIGJ5IHRoZSBQSFAgcGFyc2VyIGFuZCA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiwgYnV0IGl0IGlzbuKAmXQuIFNpbmNlIGl04oCZcyBsSXQgd291bGQgbmVlZCBhbiB1cGRhdGUgYXQgbGVhc3QgdG8gYnkgdGhlIFBIUCBwYXJzZXIgYW5kIDxjb2RlPlJlZmxlY3Rpb248L2NvZGU+LCBidXQgaXQgaXNu4oCZdC4gSXQgd291bGQgbmVlZCBhbiB1cGRhdGUgYXQgbGVhc3QgdG8gdGhlIFJlIFBIUCBwYXJzZXIgYW5kIDxjb2RlPlJlZmxlY3Rpb248L2NvZGU+LCBidXQgaXQgaXNu4oCZdC4gSXQgd291bGQgbmVlZCBhbiB1cGRhdGUgYXQgbGVhc3QgdG8gdGhlIFJlZSBQSFAgcGFyc2VyIGFuZCA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiwgYnV0IGl0IGlzbuKAmXQuIEl0IHdvdWxkIG5lZWQgYW4gdXBkYXRlIGF0IGxlYXN0IHRvIHRoZSBgUmVmbGVjdGlvbiBgPGNvZGU+PC9jb2RlPiBsaWJyYXJ5IHRvZGU+UmVmbGVjdGlvbjwvY29kZT4sIGJ1dCBpdCBpc27igJl0LiBJdCB3b3VsZCBuZWVkIGFuIHVwZGF0ZSBhdCBsZWFzdCB0byB0aGUgPGNvZGU+UmVmbGVjdGlvbjwvY29kZT4gbGlicmFyeSB0byBoYW5kbGUuIEdpb248L2NvZGU+LCBidXQgaXQgaXNu4oCZdC4gSXQgd291bGQgbmVlZCBhbiB1cGRhdGUgYXQgbGVhc3QgdG8gdGhlIDxjb2RlPlJlZmxlY3Rpb248L2NvZGU+IGxpYnJhcnkgdG8gaGFuZGxlLiBHaXZlbiB0aGF0IGl0IGlzIGl0IGlzbuKAmXQuIEl0IHdvdWxkIG5lZWQgYW4gdXBkYXRlIGF0IGxlYXN0IHRvIHRoZSA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiBsaWJyYXJ5IHRvIGhhbmRsZS4gR2l2ZW4gdGhhdCBpdCBpcyBhIG4gaXNu4oCZdC4gSXQgd291bGQgbmVlZCBhbiB1cGRhdGUgYXQgbGVhc3QgdG8gdGhlIDxjb2RlPlJlZmxlY3Rpb248L2NvZGU+IGxpYnJhcnkgdG8gaGFuZGxlLiBHaXZlbiB0aGF0IGl0IGlzIGFuIG9kZCBjb25zdCB3b3VsZCBuZWVkIGFuIHVwZGF0ZSBhdCBsZWFzdCB0byB0aGUgPGNvZGU+UmVmbGVjdGlvbjwvY29kZT4gbGlicmFyeSB0byBoYW5kbGUuIEdpdmVuIHRoYXQgaXQgaXMgYW4gb2RkIGNvbnN0cnVjdCwgIHdpdGggYSBhbiB1cGRhdGUgYXQgbGVhc3QgdG8gdGhlIDxjb2RlPlJlZmxlY3Rpb248L2NvZGU+IGxpYnJhcnkgdG8gaGFuZGxlLiBHaXZlbiB0aGF0IGl0IGlzIGFuIG9kZCBjb25zdHJ1Y3Qgd2l0aCBhIHNlbWFudGljYcKlLWx5bC1lcXVpdmFsZW50aGUgPGNvZGU+UmVmbGVjdGlvbjwvY29kZT4gbGlicmFyeSB0byBoYW5kbGUuIEdpdmVuIHRoYXQgaXQgaXMgYW4gb2RkIGNvbnN0cnVjdCB3aXRoIGEgc2VtYW50aWNhbGx5LWVxdWl2YWxlbnQgY291bnRlcnBhcnQsIGl0aW9uPC9jb2RlPiBsaWJyYXJ5IHRvIGhhbmRsZS4gR2l2ZW4gdGhhdCBpdCBpcyBhbiBvZGQgY29uc3RydWN0IHdpdGggYSBzZW1hbnRpY2FsbHktZXF1aXZhbGVudCBjb3VudGVycGFydCwgaXQgd2FzIG1vZGU+IGxpYnJhcnkgdG8gaGFuZGxlLiBHaXZlbiB0aGF0IGl0IGlzIGFuIG9kZCBjb25zdHJ1Y3Qgd2l0aCBhIHNlbWFudGljYWxseS1lcXVpdmFsZW50IGNvdW50ZXJwYXJ0LCBpdCB3YXMgbW9kZT4gbGlicmFyeSB0byBoYW5kbGUuIEdpdmVuIHRoYXQgaXQgaXMgYW4gb2RkIGNvbnN0cnVjdCB3aXRoIGEgc2VtYW50aWNhbGx5LWVxdWl2YWxlbnQgY291bnRlcnBhcnQsIGl0IHdhcyBtb2RpZmllZCBpbiBgdHJ1bmtgPGNvZGU+PC9jb2RlPiB0byB1bmJsb2NrIHRoZSBwYWRvY3VtZW50YXRpb25wcmV2ZW50IGl0IGZyb20gYmVjb21pbiBvZGQgY29uc3RydWN0IHdpdGggYSBzZW1hbnRpY2FsbHktZXF1aXZhbGVudCBjb3VudGVycGFydCwgaXQgd2FzIG1vZGlmaWVkIGluIDxjb2RlPnRydW5rPC9jb2RlPiB0byBwcmV2ZW50IGl0IGZyb20gYmVjb21pbmcgYW4gY29uc3RydWN0IHdpdGggYSBzZW1hbnRpY2FsbHktZXF1aXZhbGVudCBjb3VudGVycGFydCwgaXQgd2FzIG1vZGlmaWVkIGluIDxjb2RlPnRydW5rPC9jb2RlPiB0byBwcmV2ZW50IGl0IGZyb20gYmVjb21pbmcgYW4gaW1tZWRpYXRlIHdpdGggYSBzZW1hbnRpY2FsbHktZXF1aXZhbGVudCBjb3VudGVycGFydCwgaXQgd2FzIG1vZGlmaWVkIGluIDxjb2RlPnRydW5rPC9jb2RlPiB0byBwcmV2ZW50IGl0IGZyb20gYmVjb21pbmcgYW4gaW1tZWRpYXRlIGlzc3VlIGdvaW5nIGZvcndhcmQuIC4gWzYxNjI0XTxhIGhyZWY9Imh0dHBzOi8vY29yZS50cmFjLndvcmRwcmVzcy5vcmcvY2hhbmdlc2V0LzYxNjI0Ij48L2E+IHNvIHRoYXQgaXQgb3VsZCB1bmRlcnN0YW5kIHRoZSBuZXcgc3ludGF4IGluIHRoZSB1bmRlcmx5aW5nIHNvdXJjZSBjb2RlLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QXByaWwgMTUsIDIwMjQg4oCUIDxhIGhyZWY9Imh0dHBzOi8vY29yZS50cmFjLndvcmRwcmVzcy5vcmcvY2hhbmdlc2V0LzU4MDA5Ij5bNTgwMDldPC9hPiBpbnRyb2R1Y2VzIHR5cGUgYW5ub3RhdGlvbnMgZm9yIG9wdGlvbmFsIHR5cGVzLCA8Y29kZT4\/YXJyYXk8L2NvZGU+IGluc3RlYWQgb2YgPGNvZGU+YXJyYXk8L2NvZGU+LCB3aGljaCB0aGUgdXBkYXRlZCBwIHBhcnNlLCBidXQgd2hpY2ggPGNvZGU+cGhwRG9jdW1lbnRvci9SZWZsZWN0aW9uPC9jb2RlPiBkaWQgbm90IHJlY29nbml6ZS4gVGhlPGNvZGU+UmVmbGVjdGlvbi9jb2RlPiBsaWJyYXJ5IGV4dHJhY3RzIHVzZWZ1bCBpbmZvcm1hdGlvbiBmcm9tIHRoZSBwYXJzZWQgZm9ybSBvZiB0aGUgc291cmNlIGNvZGUsIGJ1dCBoYWQgbm8gY29kZSBwYXRoIGZvciBudWxsYWJsZSB0eXBlcy4gT25jZSB0aGUgbmV3IHN5bnRheCBhcHBlYXJlZCBpbiB0aGUgc291cmNlIGNvZGUsIGl0IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Xb3JkUHJlc3MvcGhwZG9jLXBhcnNlci9pc3N1ZXMvMjI4Ij5uZWVkZWQgdG8gYmUgdXBkYXRlZCA8L2E+dG8gYWRkIHRoZSBtaXNzaW5nIGhhbmRsaW5nLjwvbGk+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkp1bmUgMywgMjAyNCDigJQgPGEgaHJlZj0iaHR0cHM6Ly9jb3JlLnRyYWMud29yZHByZXNzLm9yZy9jaGFuZ2VzZXQvNTgzMDQiPls1ODMwNF08L2E+IGludHJvZHVjZXMgYSBzaG9ydGhhbmQgc3ludGF4IGZvciBjYWxsaW5nIGEgPGNvZGU+Q2FsbGFibGU8L2NvZGU+IHN0b3JlZCBpbiBhIHZhcmlhYmxlLiBUaGlzIDxlbT5zaG91bGQ8L2VtPiBiZSBzdXBwb3J0ZWQgYnkgdGhlIFBIUCBwYXJzZXIgYW5kIDxjb2RlPlJlZmxlY3Rpb248L2NvZGU+LCBidXQgaXQgaXNu4oCZdC4gSXQgd291bGQgbmVlZCBhbiB1cGRhdGUgYXQgbGVhc3QgdG8gdGhlIDxjb2RlPlJlZmxlY3Rpb248L2NvZGU+IGxpYnJhcnkgdG8gaGFuZGxlLiBHaXZlbiB0aGF0IGl0IGlzIGFuIG9kZCBjb25zdHJ1Y3Qgd2l0aCBhIHNlbWFudGljYWxseS1lcXVpdmFsZW50IGNvdW50ZXJwYXJ0LCBpdCB3YXMgbW9kaWZpZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9jb3JlLnRyYWMud29yZHByZXNzLm9yZy9jaGFuZ2VzZXQvNjE2MjQiPls2MTYyNF08L2E+IHRvIHByZXZlbnQgaXQgZnJvbSBiZWNvbWluZyBhbiBpbW1lZGlhdGUgaXNzdWUgZ29pbmcgZm9yd2FyZC48L2xpdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0gIC1jbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbm5lckJsb2Nrc0F1Z3VzdCAyNywgMjAyNSDigJQgbmVhcmx5IGrCqOKAoFs2MDY4ODRdIGludHJvZHVjZXMgPGEgaHJlZj0iaHR0cHM6Ly9jb3JlLnRyYWMud29yZHByZXNzLm9yZy9jaGFuZ2VzZXQvNjA2ODQiPjwvYT5hbm9ueW1vdXMgY2xhc3Nlcy5vcmcvY2hhbmdlc2V0LzYwNjg0Ij5bNjA2ODRdPC9hPiBpbnRyb2R1Y2VzIGFub255bW91cyBjbGFzc2VzLCB3aGljaGFuZ2VzZXQvNjA2ODQiPls2MDY4NF08L2E+IGludHJvZHVjZXMgYW5vbnltb3VzIGNsYXNzZXMsIHdoaWNoYW5nZXNldC82MDY4NCI+WzYwNjg0XTwvYT4gaW50cm9kdWNlcyBhbm9ueW1vdXMgY2xhc3Nlcywgd2hpY2ggYFJlc2V0LzYwNjg0Ij5bNjA2ODRdPC9hPiBpbnRyb2R1Y2VzIGFub255bW91cyBjbGFzc2VzLCB3aGljaCBgUmVmbGVjdGlvbmA8Y29kZT48L2NvZGU+IGNhbuKAmXQgZ2VuZXJhdGUgaW50cm9kdWNlcyBhbm9ueW1vdXMgY2xhc3Nlcywgd2hpY2ggPGNvZGU+UmVmbGVjdGlvbjwvY29kZT4gY2Fu4oCZdCBnZW5lcmF0ZSBhIG5hbWUgZm9yLiBJdCBjYWxsbGVhZHMgdG8gYSBjcmFzaCB3aGVuIGBSZWxlZmxlY3Rpb25gPGNvZGU+PC9jb2RlPiB0cmllcyB0byBleHRyYWNsYXNzZXMsIHdoaWNoIGxlYWRzIHRvIGEgY3Jhc2ggd2hlbiA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiB0cmllcyB0byBleHRyYWN0IGl0cyBuYW1lLiBUaGVyZSBpcyBubyBuYW1lLCBzbyBpdCA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiB0cmllcyB0byBleHRyYWN0IGl0cyBuYW1lLiBUaGVyZSBpcyBubyBuYW1lLCBzbyBpdCBtdXN0IG1ha2Ugb25lIHVwOiBgY8Olw59zQGNsYXNzQGFub255bW8gZXh0cmFjdCBpdHMgbmFtZS4gVGhlcmUgaXMgbm8gbmFtZSwgc28gaXQgbXVzdCBtYWtlIG9uZSB1cDogYGNsYXNzQGFub255bW91c2A8b2RlPmM8L2NvZGU+LmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzSW4gdHdvIHllYXJzIHNpbmNlIHRoZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24gZmlyc3QgYnJva2UgdGhlcmUgaGF2ZSBvbmx5IGJlZW4gZm91ciBzeW50YXhuZXcgc3ludGF4IGNvbnN0cnVjdHMgdGhhdCBUaGVyZSBoYXZlIG9wbmx5IGJlZW4gZm91ciBuZXcga2lOUyBvZiBuZHMgb2Ygc3ludGF4IHRoYXQgYnJva2UgdGhlIGRvY3VtZW50YXRpb24gZ25lbmVyYXRpb24gaW5zaW5jZSBhbmQgaW5jbHVkaW5nIHRoZSBpdCBmaXJzdCBicm9rZSAsIGluY2x1ZGluZyB0aGUgZmlyc3QgLCBidXQgV29yZHRoZSBjb2RlIGluIFdvcmRQcmVzcyA3LjAgaW50cm9kdWNlcyBldmVyc2V2ZWFsIHJuZXcgc3ludGF4IGZvcm1zIHdoaWNoIG5lZWQgdXBkYXRpbmcgYmVmb3JlIHRoZSBkb2N1bWVudGF0aW9uIGNhbiBiZSByZWdlbmVyYXRlZDpjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwaW5uZXJCbG9ja3MtIG9yZGVyZWR2YWx1ZXNjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbm5lckJsb2Nrc1RoZSBBSSBjbGllbnQgaW50cm9kdWNlcyB2aXNpYmlsaXR5IG9uIGNsYXNzIHByb3BlcmNvbnN0YW50cywgb3B0aW9uYWwgdHlwZXMgZm9yIGNsYXNzIHByb3BlcnRpZXN1bGx0YWJsZSwgLmFuZCBjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbm5lckJsb2Nrc1RoZSBjb2xsYWJvcmF0aW9uIGZlYXR1cmXCoMuGbnRyb2R1aW50cmlvZHVjZSBhcnJheSBpbml0aWFsaXphdGlvbiBvZiBjbGFzcyBwcm9wZXJ0aWVzLmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzV29yayBoYXMgYWxyZWFkeSBiZWVuIGV4cGxvcmVkIGZvciBtYWtpbmcgYW5vdGhlciBpbmNyZW1lbnRhbCBzdHAgZXRvIHVwZGF0ZSB0aGUgdW5kZXJseWluZyBQSFAgcGFyc2VyLCBhbmQgdGhpcyBzaG91bGQgaG9wZWZ1bGx5IHJlc29sdmUgdGhlc2VlZXNlIG5ldyBicmVha2FnZXMuY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzLSBvcmRlcmVkdmFsdWVzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW5uZXJCbG9ja3NKdWx5IDEzLCAyMDI1IOKAlCBXb3JrIHN0YXJ0cyB0byByZXdyaXRlIHRoZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24gaW4gW1BSIzI0NyA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vV29yZHJlc3MvcGhwZG9jLXBhcnNlci9wdWxsLzI0NyI+UDwvYT53aXRoIGEgbmV3IHBhcnNlciwgYSBuZXcgYWRhcHRld3JpdGUgdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiB3aXRoIGEgbmV3IHBhcnNlciwgYSBuZXcgYWRhcHRlciwgYW5kIGEgbmV3IHJ1bm50YXRpb24gZ2VuZXJhdGlvbiB3aXRoIGEgbmV3IHBhcnNlciwgYSBuZXcgYWRhcHRlciwgYW5kIGEgbmV3IHJ1bm5lci4gVGhpcyB3b3JhdGlvbiB3aXRoIGEgbmV3IHBhcnNlciwgYSBuZXcgYWRhcHRlciwgYW5kIGEgbmV3IHJ1bm5lci4gVGhpcyB3b3JrIGlvbiB3aXRoIGEgbmV3IHBhcnNlciwgYSBuZXcgYWRhcHRlciwgYW5kIGEgbmV3IHJ1bm5lci4gVGhpcyB3b3JrIGluY29ycG9yYXRlcyBQSFBTdGFuIHNvIHRoYXQgYWRhcHRlciwgYW5kIGEgbmV3IHJ1bm5lci4gVGhpcyB3b3JrIGluY29ycG9yYXRlcyBQSFBTdGFuIHNvIHRoYXQgdGhlIG1vciwgYW5kIGEgbmV3IHJ1bm5lci4gVGhpcyB3b3JrIGluY29ycG9yYXRlcyBQSFBTdGFuIHNvIHRoYXQgdGhlIG1vcmUgYW5kIGEgbmV3IHJ1bm5lci4gVGhpcyB3b3JrIGluY29ycG9yYXRlcyBQSFBTdGFuIHNvIHRoYXQgdGhlIG1vcmUgYW5kIGEgbmV3IHJ1bm5lci4gVGhpcyB3b3JrIGluY29ycG9yYXRlcyBQSFBTdGFuIHNvIHRoYXQgdGhlIG1vcmUgYWR2YW5jZWQgdHlwZXMgYXBwZWFyIGluIHRoZSBkb2N1bWVudGF0aW9uLCAuIEl0YW4gc28gdGhhdCB0aGUgbW9yZSBhZHZhbmNlZCB0eXBlcyBhcHBlYXIgaW4gdGhlIGRvY3VtZW50YXRpb24uIEl04oCZcyBzbyB0aGF0IHRoZSBtb3JlIGFkdmFuY2VkIHR5cGVzIGFwcGVhciBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gSXTigJlzIGhhcmQgdG8gdGhlIG1vcmUgYWR2YW5jZWQgdHlwZXMgYXBwZWFyIGluIHRoZSBkb2N1bWVudGF0aW9uLiBJdOKAmXMgaGFyZCB0byBhc3Nlc3MgdGhlIG92ZXJ3YWFsbCBjbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbm5lckJsb2Nrc0ZlYnJ1YXJ5IDExLCAyMDI2IOKAlCBNaW5pbWFsIHVwZGF0ZXMgYXJlIHByb3Bvc2VkIGluIFBSIzI1MCBzPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1dvcmRyZXNzL3BocGRvYy1wYXJzZXIvcHVsbC8yNTAiPlA8L2E+dG8gdXBkYXRlIHRoZSB1Yi5jb20vV29yZFByZXNzL3BocGRvYy1wYXJzZXIvcHVsbC8yNTAiPlBSIzI1MDwvYT4gdG8gdXBkYXRlIHRoZSB1bmRlcmx5aW5nIGBuaWtpYy9waHAtcGFyc2VyYDxjb2RlPjwvY29kZT4gZGVwZW5kZW5jeSBhbmQgdW5zdGljayB0aGUgdXBkYXRlIHRoZSB1bmRlcmx5aW5nIDxjb2RlPm5pa2ljL3BocC1wYXJzZXI8L2NvZGU+IGRlcGVuZGVuY3kgYW5kIHVuc3RpY2sgdGhlIGxpYmVyYXRlIHRvIHVwZGF0ZSB0aGUgdW5kZXJseWluZyA8Y29kZT5uaWtpYy9waHAtcGFyc2VyPC9jb2RlPiBkZXBlbmRlbmN5IGFuZCBsaWJlcmF0ZSB0byB1cGRhdGUgdGhlIHVuZGVybHlpbmcgPGNvZGU+bmlraWMvcGhwLXBhcnNlcjwvY29kZT4gZGVwZW5kZW5jeSBhbmQgbGliZXJhdGUgdGhlIHBkYXRlIHRoZSB1bmRlcmx5aW5nIDxjb2RlPm5pa2ljL3BocC1wYXJzZXI8L2NvZGU+IGRlcGVuZGVuY3kgYW5kIGxpYmVyYXRlIHRoZSBwcm9jZSB0aGUgdW5kZXJseWluZyA8Y29kZT5uaWtpYy9waHAtcGFyc2VyPC9jb2RlPiBkZXBlbmRlbmN5IGFuZCBsaWJlcmF0ZSB0aGUgcHJvY2Vzcy4gVGhlIGBSZWZsZWN0aW9uYDxjb2RlPjwvY29kZT4gbGlicmFyeSBpcyBmb3JrZWQgZnJvbSBpdHMgZGVwZW5kZW5jeSBhbmQgbGliZXJhdGUgdGhlIHByb2Nlc3MuIFRoZSA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiBsaWJyYXJ5IGlzIGZvcmtlZCBmcm9tIGl0cyBvbGRlbmRlbmN5IGFuZCBsaWJlcmF0ZSB0aGUgcHJvY2Vzcy4gVGhlIDxjb2RlPlJlZmxlY3Rpb248L2NvZGU+IGxpYnJhcnkgaXMgZm9ya2VkIGZyb20gaXRzIG9sZGVyIHZlcnNpb25kIGxpYmVyYXRlIHRoZSBwcm9jZXNzLiBUaGUgPGNvZGU+UmVmbGVjdGlvbjwvY29kZT4gbGlicmFyeSBpcyBmb3JrZWQgZnJvbSBpdHMgb2xkZXIgdmVyc2lvbiB0byBhZG9wdGUgdGhlIHByb2Nlc3MuIFRoZSA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiBsaWJyYXJ5IGlzIGZvcmtlZCBmcm9tIGl0cyBvbGRlciB2ZXJzaW9uIHRvIGFkb3B0IHRvbmx5IHByb2Nlc3MuIFRoZSA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiBsaWJyYXJ5IGlzIGZvcmtlZCBmcm9tIGl0cyBvbGRlciB2ZXJzaW9uIHRvIGFkb3B0IG9ubHkgdGhvY2Vzcy4gVGhlIDxjb2RlPlJlZmxlY3Rpb248L2NvZGU+IGxpYnJhcnkgaXMgZm9ya2VkIGZyb20gaXRzIG9sZGVyIHZlcnNpb24gdG8gYWRvcHQgb25seSB0aG9zZXNzLiBUaGUgPGNvZGU+UmVmbGVjdGlvbjwvY29kZT4gbGlicmFyeSBpcyBmb3JrZWQgZnJvbSBpdHMgb2xkZXIgdmVyc2lvbiB0byBhZG9wdCBvbmx5IHRob3NlIGNoYW5nZSA8Y29kZT5SZWZsZWN0aW9uPC9jb2RlPiBsaWJyYXJ5IGlzIGZvcmtlZCBmcm9tIGl0cyBvbGRlciB2ZXJzaW9uIHRvIGFkb3B0IG9ubHkgdGhvc2UgY2hhbmdlcyBuZWNlPlJlZmxlY3Rpb248L2NvZGU+IGxpYnJhcnkgaXMgZm9ya2VkIGZyb20gaXRzIG9sZGVyIHZlcnNpb24gdG8gYWRvcHQgb25seSB0aG9zZSBjaGFuZ2VzIG5lY2Vzc2FyeSB0byB1cGdyYWRlIGZhciBlbm91Z2ggdG8gc3VwcG9ydCBDb3Jl4oCZcyBvbGRlciB2ZXJzaW9uIHRvIGFkb3B0IG9ubHkgdGhvc2UgY2hhbmdlcyBuZWNlc3NhcnkgdG8gdXBncmFkZSBmYXIgZW5vdWdoIHRvIHN1cHBvcnQgQ29yZeKAmXMgb2xkZXIgdmVyc2lvbiB0byBhZG9wdCBvbmx5IHRob3NlIGNoYW5nZXMgbmVjZXNzYXJ5IHRvIHVwZ3JhZGUgZmFyIGVub3VnaCB0byBzdXBwb3J0IENvcmXigJlzIGNvZGVyIHZlcnNpb24gdG8gYWRvcHQgb25seSB0aG9zZSBjaGFuZ2VzIG5lY2Vzc2FyeSB0byB1cGdyYWRlIGZhciBlbm91Z2ggdG8gc3VwcG9ydCBDb3Jl4oCZcyBjb2RlciB2ZXJzaW9uIHRvIGFkb3B0IG9ubHkgdGhvc2UgY2hhbmdlcyBuZWNlc3NhcnkgdG8gdXBncmFkZSBmYXIgZW5vdWdoIHRvIHN1cHBvcnQgQ29yZeKAmXMgY29kZS4oYW5kIFBSIzI1MV0pIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Xb3JkcmVzcy9waHBkb2MtcGFyc2VyL3B1bGwvMjUxIj5QPC9hPmluICAgUFIjMjQ5IGFuZDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Xb3JkcmVzcy9waHBkb2MtcGFyc2VyL3B1bGwvMjQ5Ij5QPC9hPmNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGlubmVyQmxvY2tzU2VwdGVtYmVyIDI4LCAyMDI1IOKAlCBBbiBhdHRlbXB0IGlzIG1hZGUgaW4gUFIjMjQ4PGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1dvcmRyZXNzL3BocGRvYy1wYXJzZXIvcHVsbC8yNDgiPlA8L2E+IHRvIGZpbHRlciBvdXRodWIuY29tL1dvcmRQcmVzcy9waHBkb2MtcGFyc2VyL3B1bGwvMjQ4Ij5QUiMyNDg8L2E+IHRvIGZpbHRlciBvdXQgdWIuY29tL1dvcmRQcmVzcy9waHBkb2MtcGFyc2VyL3B1bGwvMjQ4Ij5QUiMyNDg8L2E+IHRvIGZpbHRlciBvdXQgdW5zdXBwb3J0ZWRQcmVzcy9waHBkb2MtcGFyc2VyL3B1bGwvMjQ4Ij5QUiMyNDg8L2E+IHRvIGZpbHRlciBvdXQgdW5zdXBwb3J0ZWQgc3ludGF4IHVzaW5nIFBDUkUgYXB1bGwvMjQ4Ij5QUiMyNDg8L2E+IHRvIGZpbHRlciBvdXQgdW5zdXBwb3J0ZWQgc3ludGF4IHVzaW5nIFBDUkUgYXB0dGVybnBhdHRlcm5zLj4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+QXVndXN0IDI3LCAyMDI1IOKAlCA8YSBocmVmPSJodHRwczovL2NvcmUudHJhYy53b3JkcHJlc3Mub3JnL2NoYW5nZXNldC82MDY4NCI+WzYwNjg0XTwvYT4gaW50cm9kdWNlcyBhbm9ueW1vdXMgY2xhc3Nlcywgd2hpY2ggbGVhZHMgdG8gYSBjcmFzaCB3aGVuIDxjb2RlPlJlZmxlY3Rpb248L2NvZGU+IHRyaWVzIHRvIGV4dHJhY3QgaXRzIG5hbWUuIFRoZXJlIGlzIG5vIG5hbWUsIHNvIGl0IG11c3QgbWFrZSBvbmUgdXA6IDxjb2RlPmNsYXNzQGFub255bW91czwvY29kZT4uPC9saXQtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPlRoZXJlIGhhdmUgb25seSBiZWVuIGZvdXIgbmV3IGtpbmRzIG9mIHN5bnRheCB0aGF0IGJyb2tlIHRoZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24gc2luY2UgaXQgZmlyc3QgYnJva2UsIGJ1dCB0aGUgY29kZSBpbiBXb3JkUHJlc3MgNy4wIGludHJvZHVjZXMgc2V2ZXJhbCBuZXcgc3ludGF4IGZvcm1zIHdoaWNoIG5lZWQgdXBkYXRpbmcgYmVmb3JlIHRoZSBkb2N1bWVudGF0aW9uIGNhbiBiZSByZWdlbmVyYXRlZDo8L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlRoZSBBSSBjbGllbnQgaW50cm9kdWNlcyB2aXNpYmlsaXR5IG9uIGNsYXNzIGNvbnN0YW50cywgYW5kIG51bGxhYmxlIHR5cGVzIGZvciBjbGFzcyBwcm9wZXJ0aWVzLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+VGhlIGNvbGxhYm9yYXRpb24gZmVhdHVyZcKgaW50cm9kdWNlIGFycmF5IGluaXRpYWxpemF0aW9uIG9mIGNsYXNzIHByb3BlcnRpZXMuPC9saT4KPCEtLSAvd3A6bGlzdC1pdGVtIC0tPjwvdWw+CjwhLS0gL3dwOmxpc3QgLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+V29yayBoYXMgYWxyZWFkeSBiZWVuIGV4cGxvcmVkIGZvciBtYWtpbmcgYW5vdGhlciBpbmNyZW1lbnRhbCBzdGVwIHRvIHVwZGF0ZSB0aGUgdW5kZXJseWluZyBQSFAgcGFyc2VyLCBhbmQgdGhpcyBzaG91bGQgaG9wZWZ1bGx5IHJlc29sdmUgdGhlc2UgbmV3IGJyZWFrYWdlcy48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLT4KCjwhLS0gd3A6bGlzdCAtLT4KPHVsIGNsYXNzPSJ3cC1ibG9jay1saXN0Ij48IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkp1bHkgMTMsIDIwMjUg4oCUIFdvcmsgc3RhcnRzIGluIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Xb3JkUHJlc3MvcGhwZG9jLXBhcnNlci9wdWxsLzI0NyI+UFIjMjQ3PC9hPiB0byByZXdyaXRlIHRoZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24gd2l0aCBhIG5ldyBwYXJzZXIsIGEgbmV3IGFkYXB0ZXIsIGFuZCBhIG5ldyBydW5uZXIuIFRoaXMgd29yayBpbmNvcnBvcmF0ZXMgUEhQU3RhbiBzbyB0aGF0IHRoZSBtb3JlIGFkdmFuY2VkIHR5cGVzIGFwcGVhciBpbiB0aGUgZG9jdW1lbnRhdGlvbi48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPlNlcHRlbWJlciAyOCwgMjAyNSDigJQgQW4gYXR0ZW1wdCBpcyBtYWRlIGluIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Xb3JkUHJlc3MvcGhwZG9jLXBhcnNlci9wdWxsLzI0OCI+UFIjMjQ4PC9hPiB0byBmaWx0ZXIgb3V0IHVuc3VwcG9ydGVkIHN5bnRheCB1c2luZyBQQ1JFIHBhdHRlcm5zLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT4KCjwhLS0gd3A6bGlzdC1pdGVtIC0tPgo8bGk+RmVicnVhcnkgMTEsIDIwMjYg4oCUIE1pbmltYWwgdXBkYXRlcyBhcmUgcHJvcG9zZWQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1dvcmRQcmVzcy9waHBkb2MtcGFyc2VyL3B1bGwvMjUwIj5QUiMyNTA8L2E+IChhbmQgaW4gPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIuY29tL1dvcmRQcmVzcy9waHBkb2MtcGFyc2VyL3B1bGwvMjQ5Ij5QUiMyNDk8L2E+IGFuZCA8YSBocmVmPSJodHRwczovL2dpdGh1Yi5jb20vV29yZFByZXNzL3BocGRvYy1wYXJzZXIvcHVsbC8yNTEiPlBSIzI1MTwvYT4pIHRvIHVwZGF0ZSB0aGUgdW5kZXJseWluZyA8Y29kZT5uaWtpYy9waHAtcGFyc2VyPC9jb2RlPiBkZXBlbmRlbmN5IGFuZCBsaWJlcmF0ZSB0aGUgcHJvY2Vzcy4gVGhlIDxjb2RlPlJlZmxlY3Rpb248L2NvZGU+IGxpYnJhcnkgaXMgZm9ya2VkIGZyb20gaXRzIG9sZGVyIHZlcnNpb24gdG8gYWRvcHQgb25seSB0aG9zZSBjaGFuZ2VzIG5lY2Vzc2FyeSB0byB1cGdyYWRlIGZhciBlbm91Z2ggdG8gc3VwcG9ydCBDb3Jl4oCZcyBjb2RlLjwvbGk+CjwhLS0gL3dwOmxpc3QtaXRlbSAtLT48L3VsPgo8IS0tIC93cDpsaXN0IC0tICAtY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50aW5uZXJCbG9ja3NGZWJ1cnJ1YXJ5IDE3LCAyMDI2IOKAlCBVcGRhdGVzIHRvIHRoZSBgNi45VGhlIEpTT04gYmxvYiB3aGljaCByZXByZXNlbnRzIHRoZSBjb250ZW50IG9mIHRoZSBkb2N1bWVudGF0aW4gb2lzIGdlbmVyYXRlZCBmcm9tIGA2LjkuMWA8Y29kZT48L2NvZGU+4oCUMTnigJMxOSBhbmQgZGlmZmVyZT4gYW5kIGRpZmZlcmVuY2VzIGZyb20gdGhlbmNlcyBmcm9tIHRoZSBsYXRlc3Qtd29ya2luZyB2ZXN0LXdvcmtpbmcgdmVyc2lvbiBhcmUgaXJvbmVkIG91dC5jbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRpbm5lckJsb2Nrc0ZlYnJ1YXJleSAyMywgMjAyNiDigJQgaHR0cHM6Ly9kZXZlbG9wZXIud29yZHByZXNzLm9yZy9yZWZlcmVuY2UgaXMgdXBkYXRlZCB3aXRoIGRvY3VtZW50YXRpb24gZm9yIFdvcmRQcmXCtHNzcyBhcyBvZiBgNi45LjFgPGNvZGU+PC9jb2RlPi4+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkZlYnJ1YXJ5IDE34oCTMTksIDIwMjYg4oCUIFRoZSBKU09OIGJsb2Igd2hpY2ggcmVwcmVzZW50cyB0aGUgY29udGVudCBvZiB0aGUgZG9jdW1lbnRhdGlvbiBpcyBnZW5lcmF0ZWQgZnJvbSA8Y29kZT42LjkuMS9jb2RlPiBhbmQgZGlmZmVyZW5jZXMgZnJvbSB0aGUgbGF0ZXN0LXdvcmtpbmcgdmVyc2lvbiBhcmUgaXJvbmVkIG91dC48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+Cgo8IS0tIHdwOmxpc3QtaXRlbSAtLT4KPGxpPkZlYnJ1YXJ5IDIzLCAyMDI2IOKAlCBodHRwczovL2RldmVsb3Blci53b3JkcHJlc3Mub3JnL3JlZmVyZW5jZSBpcyB1cGRhdGVkIHdpdGggZG9jdW1lbnRhdGlvbiBmb3IgV29yZFByZXNzIGFzIG9mIDxjb2RlPjYuOS4xPC9jb2RlPi48L2xpPgo8IS0tIC93cDpsaXN0LWl0ZW0gLS0+PC91bD4KPCEtLSAvd3A6bGlzdCAtLSAgLWNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGlubmVyQmxvY2tzY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzIyMgbGV2ZWxGdXR1cmUgZGlyZWN0aW9uY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzVGhlIHN0YXRlIG9mIHRoaXMgcHJvY2VzcyBpcyBkaXJlIG5lZWQgdG9vZiBoZWxwLiBBdCBBIGZldyBhdHRlbXB0cyBoYXZlIGJlZW4gbWFkZSB0byBnZW5lcmF0ZSBhIFBsYXlncm91bmQgbGluayBmb3IgZG9jdW1lbnRhdGlvbiB1cGRhdGVzIHNvIHRoYXQgZGV2ZWxvcGVycyBjYW4gc2VlIHRoZSBpbXBhY3Qgb2YgdGhlaXIgY2hhbmdlcyBiZWZvcmUgd29yZFdvcmRQcmVzcyByZWxlYXNlcywgd2hpY2ggaXMgd2hlbiBob3cgbG9uZyBub3JtYWxseSBob3cgbG9uZyBvbmUgbXVzdCB3YWl0IHRvIHNlZSB1cGRhdGVzLiBUaGUgZXhpc3RpbmcgcHJvY2VzcyBpcyBub3QgdGhhdCBlYXN5IHRvIGlzb2xhdGUgYW5kIHJlcGxpY2F0ZSwgaG91bmZvcnV0bmF0ZWx5LHUgbFdXaGF0IGNvbWVzIG5leHQgaXMgbWFraW5nIHN1cmUgdGhhdCBXb3JkUHJlc3MgNy4wIGNhbiBzaGlwIHdpdGggdXBkYXRlZCBlZnJlZmVyZW5jZSBkb2N1bWVudGF0aW9uLiBUaGF04oCZcyBlc3NlbnRpYWwuIGNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc0FGdGVyIHRoYXQsZiB3b3JrIHdpbGwgbGlrZWNvbnRpbnVlIG9uIHN1cHBvcnRpbmcgUEhQU3RhbiB0eXBlIGFubm90YXRpb25zIGFuZCBvbiBiZWluZyBhYmxlIHRvIHBnZW5lcmF0ZSBkb2N1bWVudGF0aW9uIHByZXZpZXdzLiBJdOKAmXMgVGhlIGV4aXN0aW5nIHByb2Nlc3MgaXQgcyB0aWdodGx5IGNvdXBsZWQgdG8gdGhlIHByb2R1Y3Rpb24gc3lzdGVtIHdoaWNoIGhvc3RzIHRoZSBkb2NzLiB1bWVudGF0aW9uLiBJdCBuZWVkcyB0byBiZSBpc2\/DpeKAoGVkIGFubGF0ZWQgaW50byBhIFBsYXlncm91bmQgYmx1ZXByaW50LCBhdCB3aGljaCBwb2ludCBhIHByZXZpZXcgY2FuIGJlIGduZWVuZXJhdGVkIG9uIGV2ZXJ5IFBSIGFuZCBkZXZlbG9wZXJzIHdpbGwgYmdlIGFibGUgdG8gc2VlIHRoZSBpbXBhY3Qgb2YgY2hhbmdlcyBiZWZvcmUgdGhlIFdvcmRQcmVzcyByZWxlYXNlLi4sIGFuZCBob2VmdWxseSBwbm90aWNlIGFuZCBmaXggYW55IGlzc3VlcyB0aGF0IGFyaXNlY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzIGJlZm9yZSB0aGV5IGFyZSBwdWJsaXNoZWQgcHVibGljYWxseS4tPgoKPCEtLSB3cDpoZWFkaW5nIC0tPgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciPkZ1dHVyZSBkaXJlY3Rpb248L2gyPgo8IS0tIC93cDpoZWFkaW5nIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPldoYXQgY29tZXMgbmV4dCBpcyBtYWtpbmcgc3VyZSB0aGF0IFdvcmRQcmVzcyA3LjAgY2FuIHNoaXAgd2l0aCB1cGRhdGVkIHJlZmVyZW5jZSBkb2N1bWVudGF0aW9uLiBUaGF04oCZcyBlc3NlbnRpYWwuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QWZ0ZXIgdGhhdCwgd29yayB3aWxsIGNvbnRpbnVlIG9uIHN1cHBvcnRpbmcgUEhQU3RhbiB0eXBlIGFubm90YXRpb25zIGFuZCBvbiBiZWluZyBhYmxlIHRvIGdlbmVyYXRlIGRvY3VtZW50YXRpb24gcHJldmlld3MuIFRoZSBleGlzdGluZyBwcm9jZXNzIGlzIHRpZ2h0bHkgY291cGxlZCB0byB0aGUgcHJvZHVjdGlvbiBzeXN0ZW0gd2hpY2ggaG9zdHMgdGhlIGRvY3VtZW50YXRpb24uIEl0IG5lZWRzIHRvIGJlIGlzb2xhdGVkIGludG8gYSBQbGF5Z3JvdW5kIGJsdWVwcmludCwgYXQgd2hpY2ggcG9pbnQgYSBwcmV2aWV3IGNhbiBiZSBnZW5lcmF0ZWQgb24gZXZlcnkgUFIgYW5kIGRldmVsb3BlcnMgd2lsbCBiZSBhYmxlIHRvIHNlZSB0aGUgaW1wYWN0IG9mIGNoYW5nZXMgYmVmb3JlIHRoZSBXb3JkUHJlc3MgcmVsZWFzZSwgYW5kIGhvcGVmdWxseSBub3RpY2UgYW5kIGZpeCBhbnkgaXNzdWVzIHRoYXQgYXJpc2UgYmVmb3JlIHRoZXkgYXJlIHB1Ymxpc2hlZCBwdWJsaWNseS48L3A+CjwhLS0gL3dwOnBhcmFncmFwaCAtLSAgLWNsaWVudElkaXNWYWxpZG5hbWVhdHRyaWJ1dGVzY29udGVudGRyb3BDYXBpbm5lckJsb2Nrc1VsdGltYXRlbHkgVGhlIHByb2Nlc3MgZm9yIGdlbmVyYXRpbmcgYW5kIGRlcGxveWluZyBkb2N1bWVudGF0aW9uIHVwZGF0ZXMgaXMgaW4gZGlyZSBuZWVkIHRvIG9vZiBpdHMgb3duIGRvY3VtZW50YXRpb24uICBBIGNoQSBjaGFsbGVuZ2UgaW4gdGhpcyBjdXJyZW50IGNyaXNzIGlzIGhhcyBlYmVlbiBrbm93aW5nIHdoYXQgd2hlcmUgdG8gcnVuIHVwZGF0ZXMgYW5kIHdoYXQgdXBkYXRlcyB0byBydW4uIEl04oCZcyBvbmUgdGhpbmcgdG8gcGFyc2UgdGhlIHNvdXJjZSBjb2RlIGFuZCBwcm9kdWNlIHRoZSByYXcgY29udGVudCwgYnV0IGFub3RoZXIgdGhpbmcgdG8gaGF2ZSBhY2Nlc3MgdG8gdGhlIHNlcnZlcnMgd2hpY2ggbmVlZCB0byBydW4gdGh0byBhbmQgYXdhcmVuZXMgb2YgdGhlIHMgcyBvZiB0aGUgc2VydmVycyBwdWJsaWMgc2VydmVycy5jbGllbnRJZGlzVmFsaWRuYW1lYXR0cmlidXRlc2NvbnRlbnRkcm9wQ2FwaW5uZXJCbG9ja3NGaW5hbGx5LCB0aGVyZSB3ZXJlIHVsdGltYXRlbEEgY29udHJpYnV0aW5nIGFjdG9mYWN0b3IgdG8gdGhlIGJyZWFrZG93biBpbiB0aGlzIGJyZWFrZG93biB3YXMgYSBmYWlsdXJlIHRvIG5vdGlmeSBkZXZlbG9wZXJzIHdoZW4gc291cmNlIGNvZGUgY2hhbmdlcyBicm9rZSB0aGUgbGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiBwcm9jZXNzLiBBIG5ldyBDSSBqb2IgdG8gcnVuIHRoZSBwYXJzZXIgY291bGQgaGlnaGxpZ2h0IHRoZXNlIGlzc3VlcyBhbmQgYnJpbnJhaXNlIGF3YXJlbmVzcyBiZWZvcmUgcHJvYmxlbXMgZXNjYWxhdGUgb3IgY2FzY2FkZS4gVGhhdCBob2VwZnVsbHkgZXdpbGwgbm90IGludm9sdmUgdG9vIG11Y2ggd29yaywgYmVjdWF1dCBuZWVkcyB0byBiZSB1bmRlcnRha2VuIGJ5IHNvbWVvbmUgd2lsbGluZyB0byBwdXNoIHRocm91Z2ggdGhlIGNoYW5nZXMuY2xpZW50SWRpc1ZhbGlkbmFtZWF0dHJpYnV0ZXNjb250ZW50ZHJvcENhcGlubmVyQmxvY2tzRmluYWxseSAsIHRoZXJlIGlzIGEgYmFja2xvZyBvZiBmZWF0dXJlIHJlcXVlc3RzIGZvciB0aGUgZG9jdW1lbnRhdGlvbjogbmV3IGFsZXJ0cywgc3VwcG9ydGluZyBwYXN0cy1ieS1yZWZlcmVuY2UgcGFyYW10ZXJldHNyZXJzLSwgaW1wcm92aW5nIHJlZ29jZ29vZ25penRpb24gb2YgYXJlcmUgbXJhcmUgciBjb2RlIHBhdHRlcm5zLCBldGPigKYgT25jZSB0aGUgcHJvY2VzcyBpcyBydW5uaW5nIHNtb290aGx5IGFuZCBlZGRkZXZlbG9wZXJzIGFyZSBhYmxlIHRvIHJlY3JlYXRlIHRoZSBzeXN0ZW0gb24gbG9jYWxseSAsIHRoZSBvdmVyYWxsIGRldmVsb3AgY3ljbGUgd3Nob3VsZCByZXN0YXJ0IC5ub3JtYSBubW9ybW5vcm1hbGVzdW1lLT4KCjwhLS0gd3A6cGFyYWdyYXBoIC0tPgo8cD5UaGUgcHJvY2VzcyBmb3IgZ2VuZXJhdGluZyBhbmQgZGVwbG95aW5nIGRvY3VtZW50YXRpb24gdXBkYXRlcyBpcyBpbiBkaXJlIG5lZWQgb2YgaXRzIG93biBkb2N1bWVudGF0aW9uLiBBIGNoYWxsZW5nZSBpbiB0aGlzIGN1cnJlbnQgY3Jpc2lzIGhhcyBiZWVuIGtub3dpbmcgd2hlcmUgdG8gcnVuIHVwZGF0ZXMgYW5kIHdoYXQgdXBkYXRlcyB0byBydW4uIEl04oCZcyBvbmUgdGhpbmcgdG8gcGFyc2UgdGhlIHNvdXJjZSBjb2RlIGFuZCBwcm9kdWNlIHRoZSByYXcgY29udGVudCwgYnV0IGFub3RoZXIgdGhpbmcgdG8gaGF2ZSBhY2Nlc3MgdG8gYW5kIGF3YXJlbmVzcyBvZiB0aGUgcHVibGljIHNlcnZlcnMuPC9wPgo8IS0tIC93cDpwYXJhZ3JhcGggLS0+Cgo8IS0tIHdwOnBhcmFncmFwaCAtLT4KPHA+QSBjb250cmlidXRpbmcgZmFjdG9yIHRvIHRoaXMgYnJlYWtkb3duIHdhcyBhIGZhaWx1cmUgdG8gbm90aWZ5IGRldmVsb3BlcnMgd2hlbiBzb3VyY2UgY29kZSBjaGFuZ2VzIGJyb2tlIHRoZSBkb2N1bWVudGF0aW9uIGdlbmVyYXRpb24gcHJvY2Vzcy4gQSBuZXcgQ0kgam9iIHRvIHJ1biB0aGUgcGFyc2VyIGNvdWxkIGhpZ2hsaWdodCB0aGVzZSBpc3N1ZXMgYW5kIHJhaXNlIGF3YXJlbmVzcyBiZWZvcmUgcHJvYmxlbXMgZXNjYWxhdGUgb3IgY2FzY2FkZS4gVGhhdCBob3BlZnVsbHkgd2lsbCBub3QgaW52b2x2ZSB0b28gbXVjaCB3b3JrLCBidXQgbmVlZHMgdG8gYmUgdW5kZXJ0YWtlbiBieSBzb21lb25lIHdpbGxpbmcgdG8gcHVzaCB0aHJvdWdoIHRoZSBjaGFuZ2VzLjwvcD4KPCEtLSAvd3A6cGFyYWdyYXBoIC0tPgoKPCEtLSB3cDpwYXJhZ3JhcGggLS0+CjxwPkZpbmFsbHksIHRoZXJlIGlzIGEgYmFja2xvZyBvZiBmZWF0dXJlIHJlcXVlc3RzIGZvciB0aGUgZG9jdW1lbnRhdGlvbjogbmV3IGFsZXJ0cywgc3VwcG9ydGluZyBwYXNzLWJ5LXJlZmVyZW5jZSBwYXJhbWV0ZXJzLCBpbXByb3ZpbmcgcmVjb2duaXRpb24gb2YgcmFyZXIgY29kZSBwYXR0ZXJucywgZXRj4oCmIE9uY2UgdGhlIH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zLzIwMjYvMDIvaW1hZ2UtMi5wbmd9uewOdwVsYXJnZXcFbWVkaWF4dwpjb3JlL2ltYWdld0JodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9jb3JlL2ZpbGVzLzIwMjYvMDIvaW1hZ2UtMTAyNHgzNzktMS5wbmd3OWh0dHBzOi8vbWFrZS53b3JkcHJlc3Mub3JnL2NvcmUvZmlsZXMvMjAyNi8wMi9pbWFnZS0zLnBuZ3267A53BWxhcmdldwVtZWRpYXcEZmlsZXcFZHJhZnR1AX2XEncTMjAyNi0wMi0yNFQyMDo0NDozOXd5VGhlIHN0YWxlIHNvdXJjZSBibG9jayBzdGFydGVkIGFuZCBlbmRlZCBpbiB0aGUgbWlkZGxlIG9mIGEgRG9jQmxvY2sgY29tbWVudCwgc2hvd2luZyBub3RoaW5nIG9mIHRoZSBhc3NvY2lhdGVkIGZ1bmN0aW9uLndXSW4gdGhlIHVwZGF0ZXMgdGhlIHNvdXJjZSBibG9jayBzdGFydHMgYW5kIGVuZHMgd2l0aCB0aGUgc3ltYm9sIGRlZmluaXRpb24gYXMgZXhwZWN0ZWQueHcOY29yZS9wYXJhZ3JhcGh5eHcOY29yZS9wYXJhZ3JhcGh5eHcOY29yZS9wYXJhZ3JhcGh5AQCyCgB3JDA3NWZiM2Y0LTBhYzYtNGJiZS04YTc1LTUyZjQyN2VjNzc1N3eVAjxwPkZvciB0aG9zZSB1bmF3YXJlLCB0aGUgZG9jdW1lbnRhdGlvbiBhdCBodHRwczovL2RldmVsb3Blci53b3JkcHJlc3Mub3JnL3JlZmVyZW5jZSBoYXNu4oCZdCBiZWVuIHVwZGF0ZWQgc2luY2UgV29yZFByZXNzIDYuNCDigJQgdGhhdOKAmXMgb3ZlciB0d28geWVhcnMgYWdvISBUb2RheSwgdGhhbmtmdWxseSwgdGhpcyBwb3N0IGlzIGFubm91bmNpbmcgdGhhdCB0aGUgcmVmZXJlbmNlIGRvY3VtZW50YXRpb24gaXMgbm93IHVwZGF0ZWQgYXMgb2YgV29yZFByZXNzIDYuOS4xLjwvcD53JDk3OWQzOWI2LTMzZDAtNDMxYi1iNTMzLWIwZTQyYTM4OGVkZHeRAzxwPldvcmRQcmVzcyBoYXMgc2VlbiBzaWduaWZpY2FudCBjaGFuZ2Ugc2luY2UgdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiBwcm9jZXNzIHN0b3BwZWQgd29ya2luZywgc28gaWYgeW91IGZvdW5kIHRoYXQgc29tZXRoaW5nIHdhcyBtaXNzaW5nIHRoZW4gaXQgd2FzbuKAmXQganVzdCB5b3UuIFRob3NlIG5ldyBpbnRlcmZhY2VzLCBjbGFzc2VzLCBtZXRob2RzLCBmdW5jdGlvbnMsIGFuZCBob29rcyBzaG91bGQgYmUgdGhlcmUgbm93LiBGdXJ0aGVyLCBiZWZvcmUgdGhlIHByb2Nlc3Mgc3RvcHBlZCBlbnRpcmVseSwgc29tZXRoaW5nIGhhZCBiZWVuIGxlYWRpbmcgdG8gY29kZSBibG9ja3Mgc2hvd2luZyB0aGUgd3Jvbmcgc291cmNlIGZvciBlYWNoIGl0ZW0gaW4gdGhlIHJlZmVyZW5jZS48L3A+dyQyYTMxZmIzMS05NjMxLTQ3MjUtYThmOC1lNzQ4M2ZiZmNjMjh3WTxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWdhbGxlcnkgaGFzLW5lc3RlZC1pbWFnZXMgY29sdW1ucy1kZWZhdWx0IGlzLWNyb3BwZWQiPgoKPC9maWd1cmU+dyQwYmZhODQ2Zi0zNWZhLTQ4MjUtOGE3NS05YjBlMjBjOTRmYWR34AM8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWxhcmdlIj48YSBocmVmPSJodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9jb3JlL2ZpbGVzLzIwMjYvMDIvaW1hZ2UtMi5wbmciPjxpbWcgc3JjPSJodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9jb3JlL2ZpbGVzLzIwMjYvMDIvaW1hZ2UtMTAyNHgzNTMtMS5wbmciIGFsdD0iVGhlIHN0YWxlIHNvdXJjZSBibG9jayBzdGFydGVkIGFuZCBlbmRlZCBpbiB0aGUgbWlkZGxlIG9mIGEgRG9jQmxvY2sgY29tbWVudCwgc2hvd2luZyBub3RoaW5nIG9mIHRoZSBhc3NvY2lhdGVkIGZ1bmN0aW9uLiIgY2xhc3M9IndwLWltYWdlLTEyMTY1NyIgLz48L2E+PGZpZ2NhcHRpb24gY2xhc3M9IndwLWVsZW1lbnQtY2FwdGlvbiI+U291cmNlIGJsb2NrIGZvciA8Y29kZT53cF9pbnRlcmFjdGl2aXR5KCk8L2NvZGU+IG92ZXIgdGhlIHBhc3QgdHdvIHllYXJzLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT53JGEzYzJmN2ZmLTYyMDktNGNjOC04NDA1LTA0MzIyZGVjY2MxM3e3AzxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UiPjxhIGhyZWY9Imh0dHBzOi8vbWFrZS53b3JkcHJlc3Mub3JnL2NvcmUvZmlsZXMvMjAyNi8wMi9pbWFnZS0zLnBuZyI+PGltZyBzcmM9Imh0dHBzOi8vbWFrZS53b3JkcHJlc3Mub3JnL2NvcmUvZmlsZXMvMjAyNi8wMi9pbWFnZS0xMDI0eDM3OS0xLnBuZyIgYWx0PSJJbiB0aGUgdXBkYXRlcyB0aGUgc291cmNlIGJsb2NrIHN0YXJ0cyBhbmQgZW5kcyB3aXRoIHRoZSBzeW1ib2wgZGVmaW5pdGlvbiBhcyBleHBlY3RlZC4iIGNsYXNzPSJ3cC1pbWFnZS0xMjE2NTgiIC8+PC9hPjxmaWdjYXB0aW9uIGNsYXNzPSJ3cC1lbGVtZW50LWNhcHRpb24iPlNvdXJjZSBibG9jayBmb3IgPGNvZGU+d3BfaW50ZXJhY3Rpdml0eSgpPC9jb2RlPiBhZnRlciB0aGUgdXBkYXRlLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT53JDE0OTM4NWJjLWJhMTAtNGRmMi1iM2Q4LWZhMTI1OTc3NGNlN3fZAzxwPlRoaXMgd29yayB3YXMgdGhlIHJlc3VsdCBvZiBjb2xsYWJvcmF0aW9uIGJldHdlZW4gbWFueSBwZW9wbGUsIG1vc3Qgb2Ygd2hvbSBoYXZlIG5ldmVyIHdvcmtlZCB3aXRoIHRoaXMgcHJvY2VzcyBpbiB0aGUgcGFzdC4gQGpvaG5iaWxsaW9uLCBAam9uc3VycmVsbCwgYW5kIEB0bWRrIGFsbCB3b3JrZWQgb24gZGlmZmVyZW50IGFwcHJvYWNoZXMgdG8gcmVzdG9yaW5nIHRoZSBhYmlsaXR5IHRvIHBhcnNlIFdvcmRQcmVzc+KAmSBzb3VyY2UgY29kZTsgYW5kIEBkZDMyIGFuZCBAY29mZmVlMmNvZGUgbWFkZSBzdXJlIHRoYXQgdGhlIHVwZGF0ZXMgcmVhY2hlZCB0aGUgcHVibGljIHdlYnNpdGU7IGFuZCBvZiBjb3Vyc2UsIG51bWVyb3VzIHBlb3BsZSBpbiB0aGUgI2RvY3MgdGVhbSByZXBvcnRlZCBhbmQgdHJpYWdlZCBidWcgcmVwb3J0cyB0aGF0IHdlcmUgc3ltcHRvbXMgb2YgdGhpcyBwcm9jZXNzIGJyZWFrZG93bi48L3A+dyQxNTgwZDkyOC03ODAwLTQwZTEtOTMzNy0wMzRiNDExYzgwMDZ3jQI8cD5UaGVyZSBpcyBzdGlsbCBzaWduaWZpY2FudCB3b3JrIHRvIGRvLCBhcyB0aGVyZSBpcyBubyB3YXkgKGF0IHRoZSB0aW1lIG9mIHdyaXRpbmcgdGhpcyBub3RlKSB0byBnZW5lcmF0ZSB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgdGhlIHVwY29taW5nIFdvcmRQcmVzcyA3LjAgcmVsZWFzZSwgYnV0IGFzIHRoZSBuZXcgaXNzdWVzIGFyZSBpcm9uZWQgb3V0LCB5b3UgY2FuIGV4cGVjdCB0aGUgdXBkYXRlcyB0byBjb21lIG11Y2ggc29vbmVyIHRoYW4gMjAyOCDwn5iJPC9wPnckMDU5YzFmOGMtY2Q4MC00NDFlLWI3MzctZjBhYTZlYjliYTE5d5ICPHA+VGhlcmUgc3RpbGwgcmVtYWluIGEgbnVtYmVyIG9mIGtub3duIGlzc3VlcywgcGFydGljdWxhcmx5IHJlbGF0ZWQgdG8gUEhQU3RhbiB0eXBlIGFubm90YXRpb25zLiBXb3JrIGlzIG9uZ29pbmcgdG8gaW1wcm92ZSB0aGUgb3ZlcmFsbCBidWlsZCBwcm9jZXNzIGFuZCB0cnkgdG8gcmVkdWNlIHRoZSBmZWVkYmFjayBsb29wIGJldHdlZW4gbWFraW5nIGNvZGUgY2hhbmdlcyBhbmQgc2VlaW5nIHRob3NlIHJlZmxlY3RlZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBvbmxpbmUuPC9wPn94dw5jb3JlL3BhcmFncmFwaHl4dw5jb3JlL3BhcmFncmFwaHl4dwVsYXJnZXcMY29yZS9nYWxsZXJ5dQB1AHcEaWNvbnUAeHl4eXcEYXV0b3h3CmNvcmUvaW1hZ2V3Qmh0dHBzOi8vbWFrZS53b3JkcHJlc3Mub3JnL2NvcmUvZmlsZXMvMjAyNi8wMi9pbWFnZS0xMDI0eDM1My0xLnBuZ3c5aHR0cHM6Ly9tYWtlLndvcmRwcmVzcy5vcmcvY29yZS9maWxlcy8yMDI2LzAyL2ltYWdlLTIucG5nfbnsDncFbGFyZ2V3BW1lZGlheHcKY29yZS9pbWFnZXdCaHR0cHM6Ly9tYWtlLndvcmRwcmVzcy5vcmcvY29yZS9maWxlcy8yMDI2LzAyL2ltYWdlLTEwMjR4Mzc5LTEucG5ndzlodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9jb3JlL2ZpbGVzLzIwMjYvMDIvaW1hZ2UtMy5wbmd9uuwOdwVsYXJnZXcFbWVkaWF3BGZpbGV3eVRoZSBzdGFsZSBzb3VyY2UgYmxvY2sgc3RhcnRlZCBhbmQgZW5kZWQgaW4gdGhlIG1pZGRsZSBvZiBhIERvY0Jsb2NrIGNvbW1lbnQsIHNob3dpbmcgbm90aGluZyBvZiB0aGUgYXNzb2NpYXRlZCBmdW5jdGlvbi53V0luIHRoZSB1cGRhdGVzIHRoZSBzb3VyY2UgYmxvY2sgc3RhcnRzIGFuZCBlbmRzIHdpdGggdGhlIHN5bWJvbCBkZWZpbml0aW9uIGFzIGV4cGVjdGVkLnh3DmNvcmUvcGFyYWdyYXBoeXh3DmNvcmUvcGFyYWdyYXBoeXh3DmNvcmUvcGFyYWdyYXBoeXckMDc1ZmIzZjQtMGFjNi00YmJlLThhNzUtNTJmNDI3ZWM3NzU3d5UCPHA+Rm9yIHRob3NlIHVuYXdhcmUsIHRoZSBkb2N1bWVudGF0aW9uIGF0IGh0dHBzOi8vZGV2ZWxvcGVyLndvcmRwcmVzcy5vcmcvcmVmZXJlbmNlIGhhc27igJl0IGJlZW4gdXBkYXRlZCBzaW5jZSBXb3JkUHJlc3MgNi40IOKAlCB0aGF04oCZcyBvdmVyIHR3byB5ZWFycyBhZ28hIFRvZGF5LCB0aGFua2Z1bGx5LCB0aGlzIHBvc3QgaXMgYW5ub3VuY2luZyB0aGF0IHRoZSByZWZlcmVuY2UgZG9jdW1lbnRhdGlvbiBpcyBub3cgdXBkYXRlZCBhcyBvZiBXb3JkUHJlc3MgNi45LjEuPC9wPnckOTc5ZDM5YjYtMzNkMC00MzFiLWI1MzMtYjBlNDJhMzg4ZWRkd5EDPHA+V29yZFByZXNzIGhhcyBzZWVuIHNpZ25pZmljYW50IGNoYW5nZSBzaW5jZSB0aGUgZG9jdW1lbnRhdGlvbiBnZW5lcmF0aW9uIHByb2Nlc3Mgc3RvcHBlZCB3b3JraW5nLCBzbyBpZiB5b3UgZm91bmQgdGhhdCBzb21ldGhpbmcgd2FzIG1pc3NpbmcgdGhlbiBpdCB3YXNu4oCZdCBqdXN0IHlvdS4gVGhvc2UgbmV3IGludGVyZmFjZXMsIGNsYXNzZXMsIG1ldGhvZHMsIGZ1bmN0aW9ucywgYW5kIGhvb2tzIHNob3VsZCBiZSB0aGVyZSBub3cuIEZ1cnRoZXIsIGJlZm9yZSB0aGUgcHJvY2VzcyBzdG9wcGVkIGVudGlyZWx5LCBzb21ldGhpbmcgaGFkIGJlZW4gbGVhZGluZyB0byBjb2RlIGJsb2NrcyBzaG93aW5nIHRoZSB3cm9uZyBzb3VyY2UgZm9yIGVhY2ggaXRlbSBpbiB0aGUgcmVmZXJlbmNlLjwvcD53JDJhMzFmYjMxLTk2MzEtNDcyNS1hOGY4LWU3NDgzZmJmY2MyOHdZPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2stZ2FsbGVyeSBoYXMtbmVzdGVkLWltYWdlcyBjb2x1bW5zLWRlZmF1bHQgaXMtY3JvcHBlZCI+Cgo8L2ZpZ3VyZT53JDBiZmE4NDZmLTM1ZmEtNDgyNS04YTc1LTliMGUyMGM5NGZhZHfgAzxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UiPjxhIGhyZWY9Imh0dHBzOi8vbWFrZS53b3JkcHJlc3Mub3JnL2NvcmUvZmlsZXMvMjAyNi8wMi9pbWFnZS0yLnBuZyI+PGltZyBzcmM9Imh0dHBzOi8vbWFrZS53b3JkcHJlc3Mub3JnL2NvcmUvZmlsZXMvMjAyNi8wMi9pbWFnZS0xMDI0eDM1My0xLnBuZyIgYWx0PSJUaGUgc3RhbGUgc291cmNlIGJsb2NrIHN0YXJ0ZWQgYW5kIGVuZGVkIGluIHRoZSBtaWRkbGUgb2YgYSBEb2NCbG9jayBjb21tZW50LCBzaG93aW5nIG5vdGhpbmcgb2YgdGhlIGFzc29jaWF0ZWQgZnVuY3Rpb24uIiBjbGFzcz0id3AtaW1hZ2UtMTIxNjU3IiAvPjwvYT48ZmlnY2FwdGlvbiBjbGFzcz0id3AtZWxlbWVudC1jYXB0aW9uIj5Tb3VyY2UgYmxvY2sgZm9yIDxjb2RlPndwX2ludGVyYWN0aXZpdHkoKTwvY29kZT4gb3ZlciB0aGUgcGFzdCB0d28geWVhcnMuPC9maWdjYXB0aW9uPjwvZmlndXJlPnckYTNjMmY3ZmYtNjIwOS00Y2M4LTg0MDUtMDQzMjJkZWNjYzEzd7cDPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGEgaHJlZj0iaHR0cHM6Ly9tYWtlLndvcmRwcmVzcy5vcmcvY29yZS9maWxlcy8yMDI2LzAyL2ltYWdlLTMucG5nIj48aW1nIHNyYz0iaHR0cHM6Ly9tYWtlLndvcmRwcmVzcy5vcmcvY29yZS9maWxlcy8yMDI2LzAyL2ltYWdlLTEwMjR4Mzc5LTEucG5nIiBhbHQ9IkluIHRoZSB1cGRhdGVzIHRoZSBzb3VyY2UgYmxvY2sgc3RhcnRzIGFuZCBlbmRzIHdpdGggdGhlIHN5bWJvbCBkZWZpbml0aW9uIGFzIGV4cGVjdGVkLiIgY2xhc3M9IndwLWltYWdlLTEyMTY1OCIgLz48L2E+PGZpZ2NhcHRpb24gY2xhc3M9IndwLWVsZW1lbnQtY2FwdGlvbiI+U291cmNlIGJsb2NrIGZvciA8Y29kZT53cF9pbnRlcmFjdGl2aXR5KCk8L2NvZGU+IGFmdGVyIHRoZSB1cGRhdGUuPC9maWdjYXB0aW9uPjwvZmlndXJlPnckMTQ5Mzg1YmMtYmExMC00ZGYyLWIzZDgtZmExMjU5Nzc0Y2U3d9kDPHA+VGhpcyB3b3JrIHdhcyB0aGUgcmVzdWx0IG9mIGNvbGxhYm9yYXRpb24gYmV0d2VlbiBtYW55IHBlb3BsZSwgbW9zdCBvZiB3aG9tIGhhdmUgbmV2ZXIgd29ya2VkIHdpdGggdGhpcyBwcm9jZXNzIGluIHRoZSBwYXN0LiBAam9obmJpbGxpb24sIEBqb25zdXJyZWxsLCBhbmQgQHRtZGsgYWxsIHdvcmtlZCBvbiBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byByZXN0b3JpbmcgdGhlIGFiaWxpdHkgdG8gcGFyc2UgV29yZFByZXNz4oCZIHNvdXJjZSBjb2RlOyBhbmQgQGRkMzIgYW5kIEBjb2ZmZWUyY29kZSBtYWRlIHN1cmUgdGhhdCB0aGUgdXBkYXRlcyByZWFjaGVkIHRoZSBwdWJsaWMgd2Vic2l0ZTsgYW5kIG9mIGNvdXJzZSwgbnVtZXJvdXMgcGVvcGxlIGluIHRoZSAjZG9jcyB0ZWFtIHJlcG9ydGVkIGFuZCB0cmlhZ2VkIGJ1ZyByZXBvcnRzIHRoYXQgd2VyZSBzeW1wdG9tcyBvZiB0aGlzIHByb2Nlc3MgYnJlYWtkb3duLjwvcD53JDE1ODBkOTI4LTc4MDAtNDBlMS05MzM3LTAzNGI0MTFjODAwNneNAjxwPlRoZXJlIGlzIHN0aWxsIHNpZ25pZmljYW50IHdvcmsgdG8gZG8sIGFzIHRoZXJlIGlzIG5vIHdheSAoYXQgdGhlIHRpbWUgb2Ygd3JpdGluZyB0aGlzIG5vdGUpIHRvIGdlbmVyYXRlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgdXBjb21pbmcgV29yZFByZXNzIDcuMCByZWxlYXNlLCBidXQgYXMgdGhlIG5ldyBpc3N1ZXMgYXJlIGlyb25lZCBvdXQsIHlvdSBjYW4gZXhwZWN0IHRoZSB1cGRhdGVzIHRvIGNvbWUgbXVjaCBzb29uZXIgdGhhbiAyMDI4IPCfmIk8L3A+dyQwNTljMWY4Yy1jZDgwLTQ0MWUtYjczNy1mMGFhNmViOWJhMTl3kgI8cD5UaGVyZSBzdGlsbCByZW1haW4gYSBudW1iZXIgb2Yga25vd24gaXNzdWVzLCBwYXJ0aWN1bGFybHkgcmVsYXRlZCB0byBQSFBTdGFuIHR5cGUgYW5ub3RhdGlvbnMuIFdvcmsgaXMgb25nb2luZyB0byBpbXByb3ZlIHRoZSBvdmVyYWxsIGJ1aWxkIHByb2Nlc3MgYW5kIHRyeSB0byByZWR1Y2UgdGhlIGZlZWRiYWNrIGxvb3AgYmV0d2VlbiBtYWtpbmcgY29kZSBjaGFuZ2VzIGFuZCBzZWVpbmcgdGhvc2UgcmVmbGVjdGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIG9ubGluZS48L3A+f3cTMjAyNi0wMi0yNFQyMTozMzowMnckODkyMGViNGEtN2MyMy00ODBiLWFhY2YtOThhMGFlZmQ5MTU1eHeVAjxwPkZvciB0aG9zZSB1bmF3YXJlLCB0aGUgZG9jdW1lbnRhdGlvbiBhdCBodHRwczovL2RldmVsb3Blci53b3JkcHJlc3Mub3JnL3JlZmVyZW5jZSBoYXNu4oCZdCBiZWVuIHVwZGF0ZWQgc2luY2UgV29yZFByZXNzIDYuNCDigJQgdGhhdOKAmXMgb3ZlciB0d28geWVhcnMgYWdvISBUb2RheSwgdGhhbmtmdWxseSwgdGhpcyBwb3N0IGlzIGFubm91bmNpbmcgdGhhdCB0aGUgcmVmZXJlbmNlIGRvY3VtZW50YXRpb24gaXMgbm93IHVwZGF0ZWQgYXMgb2YgV29yZFByZXNzIDYuOS4xLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNDA5MTVmZjQtZjc0NS00YzU3LWFhZDctNmEwYTRkMDk2YWEyeHeRAzxwPldvcmRQcmVzcyBoYXMgc2VlbiBzaWduaWZpY2FudCBjaGFuZ2Ugc2luY2UgdGhlIGRvY3VtZW50YXRpb24gZ2VuZXJhdGlvbiBwcm9jZXNzIHN0b3BwZWQgd29ya2luZywgc28gaWYgeW91IGZvdW5kIHRoYXQgc29tZXRoaW5nIHdhcyBtaXNzaW5nIHRoZW4gaXQgd2FzbuKAmXQganVzdCB5b3UuIFRob3NlIG5ldyBpbnRlcmZhY2VzLCBjbGFzc2VzLCBtZXRob2RzLCBmdW5jdGlvbnMsIGFuZCBob29rcyBzaG91bGQgYmUgdGhlcmUgbm93LiBGdXJ0aGVyLCBiZWZvcmUgdGhlIHByb2Nlc3Mgc3RvcHBlZCBlbnRpcmVseSwgc29tZXRoaW5nIGhhZCBiZWVuIGxlYWRpbmcgdG8gY29kZSBibG9ja3Mgc2hvd2luZyB0aGUgd3Jvbmcgc291cmNlIGZvciBlYWNoIGl0ZW0gaW4gdGhlIHJlZmVyZW5jZS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDc2ZmI3NmM1LTljNDMtNDIyOC1iOTA5LTVmZDc3ZTIxZDhlM3h3WTxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWdhbGxlcnkgaGFzLW5lc3RlZC1pbWFnZXMgY29sdW1ucy1kZWZhdWx0IGlzLWNyb3BwZWQiPgoKPC9maWd1cmU+dwxjb3JlL2dhbGxlcnl1AHUAdwRpY29udQB4eXh3BGZpbGV3BWxhcmdleXcEYXV0b3ckNmQxYjZkZGUtMGU2MC00NmU1LWI1YzAtYmY4YzRiNjJhYjAxeHfgAzxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UiPjxhIGhyZWY9Imh0dHBzOi8vbWFrZS53b3JkcHJlc3Mub3JnL2NvcmUvZmlsZXMvMjAyNi8wMi9pbWFnZS0yLnBuZyI+PGltZyBzcmM9Imh0dHBzOi8vbWFrZS53b3JkcHJlc3Mub3JnL2NvcmUvZmlsZXMvMjAyNi8wMi9pbWFnZS0xMDI0eDM1My0xLnBuZyIgYWx0PSJUaGUgc3RhbGUgc291cmNlIGJsb2NrIHN0YXJ0ZWQgYW5kIGVuZGVkIGluIHRoZSBtaWRkbGUgb2YgYSBEb2NCbG9jayBjb21tZW50LCBzaG93aW5nIG5vdGhpbmcgb2YgdGhlIGFzc29jaWF0ZWQgZnVuY3Rpb24uIiBjbGFzcz0id3AtaW1hZ2UtMTIxNjU3IiAvPjwvYT48ZmlnY2FwdGlvbiBjbGFzcz0id3AtZWxlbWVudC1jYXB0aW9uIj5Tb3VyY2UgYmxvY2sgZm9yIDxjb2RlPndwX2ludGVyYWN0aXZpdHkoKTwvY29kZT4gb3ZlciB0aGUgcGFzdCB0d28geWVhcnMuPC9maWdjYXB0aW9uPjwvZmlndXJlPncKY29yZS9pbWFnZXdCaHR0cHM6Ly9tYWtlLndvcmRwcmVzcy5vcmcvY29yZS9maWxlcy8yMDI2LzAyL2ltYWdlLTEwMjR4MzUzLTEucG5nd3lUaGUgc3RhbGUgc291cmNlIGJsb2NrIHN0YXJ0ZWQgYW5kIGVuZGVkIGluIHRoZSBtaWRkbGUgb2YgYSBEb2NCbG9jayBjb21tZW50LCBzaG93aW5nIG5vdGhpbmcgb2YgdGhlIGFzc29jaWF0ZWQgZnVuY3Rpb24udzlodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9jb3JlL2ZpbGVzLzIwMjYvMDIvaW1hZ2UtMi5wbmd9uewOdwVsYXJnZXcFbWVkaWF3JGQ0ZjdiNmQxLThiZjctNDJkNS04YzU1LWMyNzQzZTI3MzkyNHh3twM8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWxhcmdlIj48YSBocmVmPSJodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9jb3JlL2ZpbGVzLzIwMjYvMDIvaW1hZ2UtMy5wbmciPjxpbWcgc3JjPSJodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9jb3JlL2ZpbGVzLzIwMjYvMDIvaW1hZ2UtMTAyNHgzNzktMS5wbmciIGFsdD0iSW4gdGhlIHVwZGF0ZXMgdGhlIHNvdXJjZSBibG9jayBzdGFydHMgYW5kIGVuZHMgd2l0aCB0aGUgc3ltYm9sIGRlZmluaXRpb24gYXMgZXhwZWN0ZWQuIiBjbGFzcz0id3AtaW1hZ2UtMTIxNjU4IiAvPjwvYT48ZmlnY2FwdGlvbiBjbGFzcz0id3AtZWxlbWVudC1jYXB0aW9uIj5Tb3VyY2UgYmxvY2sgZm9yIDxjb2RlPndwX2ludGVyYWN0aXZpdHkoKTwvY29kZT4gYWZ0ZXIgdGhlIHVwZGF0ZS48L2ZpZ2NhcHRpb24+PC9maWd1cmU+dwpjb3JlL2ltYWdld0JodHRwczovL21ha2Uud29yZHByZXNzLm9yZy9jb3JlL2ZpbGVzLzIwMjYvMDIvaW1hZ2UtMTAyNHgzNzktMS5wbmd3V0luIHRoZSB1cGRhdGVzIHRoZSBzb3VyY2UgYmxvY2sgc3RhcnRzIGFuZCBlbmRzIHdpdGggdGhlIHN5bWJvbCBkZWZpbml0aW9uIGFzIGV4cGVjdGVkLnc5aHR0cHM6Ly9tYWtlLndvcmRwcmVzcy5vcmcvY29yZS9maWxlcy8yMDI2LzAyL2ltYWdlLTMucG5nfbrsDncFbGFyZ2V3BW1lZGlhdyQyMjVlYWUzZS0xNzY0LTRjMzUtOWFlYi0yZmEzYzU2ZmExYmN4d9kDPHA+VGhpcyB3b3JrIHdhcyB0aGUgcmVzdWx0IG9mIGNvbGxhYm9yYXRpb24gYmV0d2VlbiBtYW55IHBlb3BsZSwgbW9zdCBvZiB3aG9tIGhhdmUgbmV2ZXIgd29ya2VkIHdpdGggdGhpcyBwcm9jZXNzIGluIHRoZSBwYXN0LiBAam9obmJpbGxpb24sIEBqb25zdXJyZWxsLCBhbmQgQHRtZGsgYWxsIHdvcmtlZCBvbiBkaWZmZXJlbnQgYXBwcm9hY2hlcyB0byByZXN0b3JpbmcgdGhlIGFiaWxpdHkgdG8gcGFyc2UgV29yZFByZXNz4oCZIHNvdXJjZSBjb2RlOyBhbmQgQGRkMzIgYW5kIEBjb2ZmZWUyY29kZSBtYWRlIHN1cmUgdGhhdCB0aGUgdXBkYXRlcyByZWFjaGVkIHRoZSBwdWJsaWMgd2Vic2l0ZTsgYW5kIG9mIGNvdXJzZSwgbnVtZXJvdXMgcGVvcGxlIGluIHRoZSAjZG9jcyB0ZWFtIHJlcG9ydGVkIGFuZCB0cmlhZ2VkIGJ1ZyByZXBvcnRzIHRoYXQgd2VyZSBzeW1wdG9tcyBvZiB0aGlzIHByb2Nlc3MgYnJlYWtkb3duLjwvcD53DmNvcmUvcGFyYWdyYXBoeXckNjcxZTY3OTItOTU4NC00MDBhLTkyYjktOGViNjJhNDAzOThkeHeNAjxwPlRoZXJlIGlzIHN0aWxsIHNpZ25pZmljYW50IHdvcmsgdG8gZG8sIGFzIHRoZXJlIGlzIG5vIHdheSAoYXQgdGhlIHRpbWUgb2Ygd3JpdGluZyB0aGlzIG5vdGUpIHRvIGdlbmVyYXRlIHRoZSBkb2N1bWVudGF0aW9uIGZvciB0aGUgdXBjb21pbmcgV29yZFByZXNzIDcuMCByZWxlYXNlLCBidXQgYXMgdGhlIG5ldyBpc3N1ZXMgYXJlIGlyb25lZCBvdXQsIHlvdSBjYW4gZXhwZWN0IHRoZSB1cGRhdGVzIHRvIGNvbWUgbXVjaCBzb29uZXIgdGhhbiAyMDI4IPCfmIk8L3A+dw5jb3JlL3BhcmFncmFwaHl3JDM3ZTkzZjIyLWRjODktNGI1Yi05MDMwLTcwNzg4M2E5OWNlNHh3kgI8cD5UaGVyZSBzdGlsbCByZW1haW4gYSBudW1iZXIgb2Yga25vd24gaXNzdWVzLCBwYXJ0aWN1bGFybHkgcmVsYXRlZCB0byBQSFBTdGFuIHR5cGUgYW5ub3RhdGlvbnMuIFdvcmsgaXMgb25nb2luZyB0byBpbXByb3ZlIHRoZSBvdmVyYWxsIGJ1aWxkIHByb2Nlc3MgYW5kIHRyeSB0byByZWR1Y2UgdGhlIGZlZWRiYWNrIGxvb3AgYmV0d2VlbiBtYWtpbmcgY29kZSBjaGFuZ2VzIGFuZCBzZWVpbmcgdGhvc2UgcmVmbGVjdGVkIGluIHRoZSBkb2N1bWVudGF0aW9uIG9ubGluZS48L3A+dw5jb3JlL3BhcmFncmFwaHl3JDI1ODQ2MmQyLTRmZGYtNDY3ZC04NGQ5LTVlNjY0NmU5OWM1N3h3CzwhLS1tb3JlLS0+dwljb3JlL21vcmV3AHl3JGRkZGE2Y2I4LTc1OTYtNDA2ZC1hNzU4LWUzYzQwZmYwOGFmMHh3KjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyI+VGltZWxpbmU8L2gyPncMY29yZS9oZWFkaW5nfQJ3JDFiODQyOTM5LTdjZWMtNDFhYy1hZGUwLWM1N2FlMTZkZTc2ZXh3ITx1bCBjbGFzcz0id3AtYmxvY2stbGlzdCI+Cgo8L3VsPncJY29yZS9saXN0eXcAdyQyYmYxYzRiYy01ZjY4LTQ4NDItYTQ4ZC02YjY1OGNiOGIwZGV4d98EPGxpPkF1Z3VzdCAxLCAyMDIzIOKAlCA8YSBocmVmPSJodHRwczovL2NvcmUudHJhYy53b3JkcHJlc3Mub3JnL2NoYW5nZXNldC81NjM0NSI+WzU2MzQ1XTwvYT4gaW50cm9kdWNlcyBhIGNvZGUtc3R5bGluZyBjaGFuZ2UgdG8gcmVwbGFjZSA8Y29kZT5hcnJheV9rZXlfZXhpc3RzKCk8L2NvZGU+IHdpdGggPGNvZGU+aXNzZXQoKTwvY29kZT4uIFRoaXMgd2FzIGtub3duIHRvIGJlIDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9Xb3JkUHJlc3MvcGhwZG9jLXBhcnNlci9pc3N1ZXMvMTk5Ij51bnN1cHBvcnRlZCBieSB0aGUgZG9jcyBwYXJzZXI8L2E+IGJ1dCB0aGVyZSB3YXMgbm8gaW5kaWNhdGlvbiB0aGF0IHRoZSB1cGRhdGluZyBwcm9jZXNzIHdhcyBicm9rZW4uIEJlY2F1c2Ugb2YgYSBwYXJzaW5nIGVycm9yIHRoZSBwcm9jZXNzIHdhcyBibG9ja2VkOyB0aGUgZG9jdW1lbnRhdGlvbiBnZW5lcmF0b3IgbmVlZGVkIHRvIHVwZGF0ZSBpdHMgdW5kZXJseWluZyBkZXBlbmRlbmN5IG9uIDxjb2RlPm5pa2ljL3BocC1wYXJzZXI8L2NvZGU+IHdoaWNoIGlzIHdoYXQgdHVybnMgc291cmNlIGNvZGUgaW50byBhIHN0cnVjdHVyZSB0byBiZSBhbmFseXplZC48L2xpPncOY29yZS9saXN0LWl0ZW13JDgwODdhM2VjLTIwZDYtNDk5ZC04ZjhlLWEyOTdjNjM2YmQzZXh34AE8bGk+QXByaWwgMTUsIDIwMjQg4oCUIDxhIGhyZWY9Imh0dHBzOi8vY29yZS50cmFjLndvcmRwcmVzcy5vcmcvY2hhbmdlc2V0LzU4MDA5Ij5bNTgwMDldPC9hPiBpbnRyb2R1Y2VzIHR5cGUgYW5ub3RhdGlvbnMgZm9yIG9wdGlvbmFsIHR5cGVzLCA8Y29kZT4\/YXJyYXk8L2NvZGU+IGluc3RlYWQgb2YgPGNvZGU+YXJyYXk8L2NvZGU+LCB3aGljaCB0aGUgcGFyc2VyIGNvdWxkIG5vdCA8L2xpPncOY29yZS9saXN0LWl0ZW13JGVlYWU0MGQwLTE1ZTctNDljNS1hNGNmLWE4NzJjMTc5MTVhN3h3DmNvcmUvbGlzdC1pdGVtdxMyMDI2LTAyLTI0VDIxOjQ2OjI2dyRiYTlhYTQyZC04ZjE3LTQxZTgtYmQzMy0wOTE3YTgxMTQ5MmJ4dw5jb3JlL2xpc3QtaXRlbXckMDQwN2NkZmUtZDUzNC00ODU3LWEyMTAtMTdhNjNkMjFlNDBieHcOY29yZS9saXN0LWl0ZW13JDY2MWMwZDUyLTEwNmEtNDE3ZS1hMjdlLTIxYTMxNDUxNTEyMXckMjRlMzE3ZmYtMjM3Zi00Yjc5LWJmMGQtYmQ5NzdhNTJkZjFleHcOY29yZS9wYXJhZ3JhcGh5dyQ4MDdiM2VlOC0yMWVlLTRiZjEtOWNmMy0yZDc1OWU1YzM0OGR4dw5jb3JlL3BhcmFncmFwaHl3JGMxZDgyMjFhLTYzZWYtNDZlZC05ZTg5LWVhNjAyYmRlOTQ3NncJY29yZS9saXN0eXcAdyRiZjM5Mjc5YS01MGEwLTQzM2ItOWM3OC1kZjI1OTZjZmY2NzZ4dw5jb3JlL2xpc3QtaXRlbXckZGJkZThhZmMtODFhMS00YmI1LThiZDMtOGQ1MzFhNGVmYjU5eHcOY29yZS9saXN0LWl0ZW13JDA0MDc0MGE1LTk3ZGYtNDYyNi1iM2I3LWZlZjllYmEwNDg4N3h3DmNvcmUvbGlzdC1pdGVtdyQ3OTRkZDViOC02OGM1LTRhMDMtYjUxZC02YWYwZWIyYTU1YjN3JDYwYjNkMjU3LWNlZjEtNDk4MS04N2Y5LWUyNTQxMzU4NzJkZHh3DmNvcmUvcGFyYWdyYXBoeXckNzMwNmE1MDMtYzdiNi00NWRiLThkMDgtOTFjZmZkNDhlYjc5eHcOY29yZS9wYXJhZ3JhcGh5dyQ1ODlkN2NjYi0xNDk1LTQ4NzUtYjE4YS02NDllYTkzMmM1NWZ3CWNvcmUvbGlzdHl3AHckMWRmYWMwM2YtNWY3Yy00ODcwLWExN2MtZTA1MjA1ZWNkNzE3eHcOY29yZS9saXN0LWl0ZW13JGQ1NjMxY2VkLTA2ZDMtNGM0Ni04YjJlLTY2ODE4YjhmMjcxNXh3DmNvcmUvbGlzdC1pdGVtdyQzNWE2MzQ4OS0xNGM0LTQ3YmEtOTE2Zi0yMTkxZWM0YTc1MWF4dw5jb3JlL2xpc3QtaXRlbXcTMjAyNi0wMi0yNFQyMjoxMDo0MnckMzIwNTBlYmQtM2JmMy00Zjk5LWI3YzAtMDI1OTEwYmVkYzAweHcOY29yZS9saXN0LWl0ZW13JGYxMTI2NmE2LWE2NTctNDRiMi1iNTQ2LTQ3NDFmNjNjMmM4N3h3DmNvcmUvbGlzdC1pdGVtdxMyMDI2LTAyLTI0VDIyOjEzOjMwdyRjNjE3NWUxZS0wMzZhLTQ2MDYtOTc3NC1lNjgzNGJlMzA4ZGV4dw5jb3JlL2xpc3QtaXRlbXckODVmNDZmZjEtODQwMC00NjFiLWFjY2EtNjUxNWJjNjlkMDMwdyQ2Y2ViZWFiMi1jMDdhLTRhY2QtOTk4YS1mMmFiY2Y3MDUwMGV4dw5jb3JlL3BhcmFncmFwaHl3JGY2NGY3MzYxLTBlMzYtNDRmNy1iZjYxLWJhZjkwNTU1Nzk5OHcMY29yZS9oZWFkaW5nfQJ3JDg2MDQ1NzllLThmYmQtNGZiYS1hMjI2LTQ0NDZkNzA0MGRiM3h3DmNvcmUvcGFyYWdyYXBoeXckODJiYjRlODYtMTI0Mi00MTRkLTg5ZGMtMWI0NTk3ZWJiNWYweHcOY29yZS9wYXJhZ3JhcGh5dyRmYmJhNjY5OS1kMjQxLTQyODQtOTRlZi04ZDcyY2JjZDQ0Y2N4dw5jb3JlL3BhcmFncmFwaHl3EzIwMjYtMDItMjRUMjI6MTc6MjB3JGU5MjY5OTQwLWYzOWMtNDIwYi04MjhjLTllZTczYzVjNTdlYXh3DmNvcmUvcGFyYWdyYXBoeXckMGEyOGUzZjEtNTI3NC00Y2E0LWFhOTMtMzVkN2UxNjYyOTdkeHcOY29yZS9wYXJhZ3JhcGh5dyQwNzY5ZTVkZi0xNWFmLTQ1ZTUtOWY2YS1mOWU0OGEzMWY3YTR4dw5jb3JlL3BhcmFncmFwaHl3EzIwMjYtMDItMjRUMjI6MjE6NDl3EzIwMjYtMDItMjRUMjI6MjE6NTJ3EzIwMjYtMDItMjRUMjI6MjM6MDN7QnnJG\/rpIAB9puLKgQ1\/f393Qmh0dHBzOi8vbWFrZS53b3JkcHJlc3Mub3JnL2NvcmUvZmlsZXMvMjAyNi8wMi9pbWFnZS0xMDI0eDM3OS0xLnBuZ3dXSW4gdGhlIHVwZGF0ZXMgdGhlIHNvdXJjZSBibG9jayBzdGFydHMgYW5kIGVuZHMgd2l0aCB0aGUgc3ltYm9sIGRlZmluaXRpb24gYXMgZXhwZWN0ZWQufbrsDgO8gMvJDwYBARkAAQAhtxkBAQGxEOq48McKAQAAprHlwAaJAgDPCgHiBtgEBgMBAQEBAQIBAQABAQEBAQUBAgEABAMDAAEAAQQBAAEAAQECBAEFAQMCAQIAAwABAAIAAQEBAQMAAQAFAQEAAQa3CPUHzwoR4QUbAaACCwMCAhcEDgiaBAYBfXNEAQCYCACKA5gBhgFWAQ8HqAEKqAEB0gIBqAELqAEB1wIBEMEBEQZXGFcaZhv2AQtxHHEEcQpxDXECcQtxD4ABIHEHcQtyAXEP5AEYcwJxC3QJcQZxdABbEisqJ04CSiaqAQFRDlwIYi5sBsIBE3ALbQ9tA24JbQxvF28QbQdtAW0plwEFegp6QBI8AYoLBA4JGR0jKgY9AT0EPRdMFogBJEogTz4ADwAOBgl2DAAUBSwACgEGEQ4WBgMlA1oAAQABAQECNwULBAEBHgAEASYGBAAvBpUBAxMAAQABAQECKiMDAEkdEUEMQQNBHEEHQQJBAUEtQwNBCEE1IjsHFTozqwEBTgROBE4uXQRbCVsJWwZcA1sCWwdbBlstWwFbA1sBW2kARgCAAQUTOwJBCkEVQUEG2BIAARoKARESUgAFAAsEAwoNDBIMMQBgAQkABQDRAw0CAAEAAgABAhv7AkgBKgAJABUDRQAhBBYBPgIeBkQBKgBAATQHIQABALEGBggKTwMaBCABBwANBJQBIg8JCQcXHA8DChBVAGIDPAApA1gAWgAUAgIBAwAOAQEBBAAIBgQAPwIrAgcABgcOAAgGAQQBBLYJDRwFRgQEAAUBVAAGAw==\",\"updateId\":565664776}","advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1175],"tags":[3453,2636],"class_list":["post-121654","post","type-post","status-publish","format-standard","hentry","category-general","tag-developer-documentation","tag-docs","mentions-coffee2code","mentions-dd32","mentions-dmsnell","mentions-johnbillion","mentions-jonsurrell","mentions-tmdk","author-dmsnell"],"revision_note":"","jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-vEa","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/121654","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/13597958"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=121654"}],"version-history":[{"count":32,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/121654\/revisions"}],"predecessor-version":[{"id":121714,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/121654\/revisions\/121714"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=121654"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=121654"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=121654"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}